getParsedBody(); $output = [ 'venta_id' => $venta_id, 'input' => $body, 'status' => false ]; try { $venta = $ventaService->getById($venta_id); if (isset($venta->formaPago()->escritura)) { throw new EmptyResult(''); } $fecha = new DateTimeImmutable($body['fecha']); $uf = $ufService->get($fecha); $valor = $body['valor']; if (str_contains($valor, ',')) { $valor = str_replace(['.', ','], ['', '.'], $valor); } $valor = ((float) $valor) * (($body['uf']) ? $uf : 1); $data = [ 'fecha' => $fecha->format('Y-m-d'), 'valor' => $valor, 'banco' => $body['banco'], 'tipo' => $body['tipo'], 'uf' => $uf ]; $pago = $pagoService->add($data); $data = [ 'valor' => $valor, 'fecha' => $fecha->format('Y-m-d'), 'uf' => $uf, 'pago' => $pago->id ]; $escritura = $escrituraRepository->create($data); $escrituraRepository->save($escritura); $ventaRepository->edit($venta, ['escritura' => $escritura->id]); $output['status'] = true; } catch (EmptyResult) {} return $this->withJson($response, $output); } 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); } }