39 lines
1.3 KiB
PHP
39 lines
1.3 KiB
PHP
|
<?php
|
||
|
namespace Incoviba\Controller\API\Ventas;
|
||
|
|
||
|
use DateTimeImmutable;
|
||
|
use Psr\Http\Message\ResponseInterface;
|
||
|
use Psr\Http\Message\ServerRequestInterface;
|
||
|
use Incoviba\Common\Implement\Exception\EmptyResult;
|
||
|
use Incoviba\Controller\API\withJson;
|
||
|
use Incoviba\Repository;
|
||
|
use Incoviba\Service;
|
||
|
|
||
|
class Escrituras
|
||
|
{
|
||
|
use withJson;
|
||
|
|
||
|
public function edit(ServerRequestInterface $request, ResponseInterface $response,
|
||
|
Service\Venta $ventaService, Repository\Venta\EstadoVenta $estadoVentaRepository,
|
||
|
int $venta_id): ResponseInterface
|
||
|
{
|
||
|
$body = $request->getParsedBody();
|
||
|
$output = [
|
||
|
'venta_id' => $venta_id,
|
||
|
'input' => $body,
|
||
|
'edited' => false
|
||
|
];
|
||
|
try {
|
||
|
$venta = $ventaService->getById($venta_id);
|
||
|
$estado = $venta->currentEstado();
|
||
|
if (!in_array($estado->tipoEstadoVenta->descripcion, ['escriturando', 'firmado por inmobiliaria'])) {
|
||
|
throw new EmptyResult('');
|
||
|
}
|
||
|
$body['fecha'] = (new DateTimeImmutable($body['fecha']))->format('Y-m-d');
|
||
|
$estadoVentaRepository->edit($estado, $body);
|
||
|
$output['edited'] = true;
|
||
|
} catch (EmptyResult) {}
|
||
|
return $this->withJson($response, $output);
|
||
|
}
|
||
|
}
|