$pago_id, 'pago' => null ]; try { $output['pago'] = json_decode(json_encode($pagoService->getById($pago_id)), JSON_OBJECT_AS_ARRAY); $output['pago']['valor_uf'] = $formatService->ufs($output['pago']['valor_uf']); } catch (EmptyResult) {} return $this->withJson($response, $output); } /** * @param ServerRequestInterface $request * @param ResponseInterface $response * @param Repository\Venta\Pago $pagoRepository * @param int $pago_id * @return ResponseInterface * @throws Exception */ public function edit(ServerRequestInterface $request, ResponseInterface $response, Repository\Venta\Pago $pagoRepository, int $pago_id): ResponseInterface { $body = $request->getParsedBody(); $output = [ 'input' => $body, 'pago_id' => $pago_id, 'pago' => null, 'editado' => false ]; try { $pago = $pagoRepository->fetchById($pago_id); if (isset($body['fecha'])) { $fecha = new DateTimeImmutable($body['fecha']); $body['fecha'] = $fecha->format('Y-m-d'); } $output['pago'] = $pagoRepository->edit($pago, $body); $output['editado'] = true; } catch (EmptyResult) {} return $this->withJson($response, $output); } public function estado(ServerRequestInterface $request, ResponseInterface $response, Service\Venta\Pago $pagoService, Repository\Venta\EstadoPago $estadoPagoRepository, int $pago_id): ResponseInterface { $body = $request->getParsedBody(); $output = [ 'pago_id' => $pago_id, 'input' => $body, 'pago' => null, 'editado' => false ]; try { $pago = $pagoService->getById($pago_id); $output['pago'] = $pago; $estado = $estadoPagoRepository->create([ 'pago' => $pago->id, 'estado' => $body['estado'], 'fecha' => $body['fecha'] ]); $estadoPagoRepository->save($estado); $output['editado'] = true; } catch (EmptyResult) {} return $this->withJson($response, $output); } /** * @param ServerRequestInterface $request * @param ResponseInterface $response * @param Service\Venta\Pago $pagoService * @param Service\Format $formatService * @param int $pago_id * @return ResponseInterface * @throws Exception */ public function depositar(ServerRequestInterface $request, ResponseInterface $response, Service\Venta\Pago $pagoService, Service\Format $formatService, int $pago_id): ResponseInterface { $body = $request->getParsedBody(); $output = [ 'pago_id' => $pago_id, 'input' => $body, 'pago' => null, 'depositado' => false ]; try { $pago = $pagoService->getById($pago_id); $fecha = new DateTimeImmutable($body['fecha']); $output['depositado'] = $pagoService->depositar($pago, $fecha); $output['pago'] = json_decode(json_encode($pagoService->getById($pago_id)), JSON_OBJECT_AS_ARRAY); $output['pago']['valor_uf'] = $formatService->ufs($output['pago']['valor_uf']); } catch (EmptyResult) {} return $this->withJson($response, $output); } /** * @param ServerRequestInterface $request * @param ResponseInterface $response * @param Service\Venta\Pago $pagoService * @param Service\Format $formatService * @param int $pago_id * @return ResponseInterface * @throws Exception */ public function abonar(ServerRequestInterface $request, ResponseInterface $response, Service\Venta\Pago $pagoService, Service\Format $formatService, int $pago_id): ResponseInterface { $body = $request->getParsedBody(); $output = [ 'pago_id' => $pago_id, 'input' => $body, 'pago' => null, 'abonado' => false ]; try { $pago = $pagoService->getById($pago_id); $fecha = new DateTimeImmutable($body['fecha']); $output['abonado'] = $pagoService->abonar($pago, $fecha); $output['pago'] = json_decode(json_encode($pagoService->getById($pago_id)), JSON_OBJECT_AS_ARRAY); $output['pago']['valor_uf'] = $formatService->ufs($output['pago']['valor_uf']); $output['input']['fecha'] = $fecha->format('d-m-Y'); } catch (EmptyResult) {} return $this->withJson($response, $output); } /** * @param ServerRequestInterface $request * @param ResponseInterface $response * @param Service\Venta\Pago $pagoService * @param int $pago_id * @return ResponseInterface * @throws Exception */ public function devolver(ServerRequestInterface $request, ResponseInterface $response, Service\Venta\Pago $pagoService, int $pago_id): ResponseInterface { $body = $request->getParsedBody(); $output = [ 'pago_id' => $pago_id, 'input' => $body, 'devuelto' => false ]; try { $pago = $pagoService->getById($pago_id); $fecha = new DateTimeImmutable($body->fecha); $output['devuelto'] = $pagoService->devolver($pago, $fecha); $output['input']['fecha'] = $fecha->format('d-m-Y'); } catch (EmptyResult) {} return $this->withJson($response, $output); } public function para_pendientes(ServerRequestInterface $request, ResponseInterface $response, Service\Venta\Pago $pagoService): ResponseInterface { $pagos = $pagoService->getPendientes(); $pagos_pendientes = array_map(function(Pago $pago) { return [ 'id' => $pago->id ]; }, $pagos); /*$pagos_pendientes = []; foreach ($pagos as $pago) { $pagos_pendientes []= [ 'id' => $pago->id ]; }*/ return $this->withJson($response, ['pagos' => $pagos_pendientes, 'total' => count($pagos_pendientes)]); } public function para_abonar(ServerRequestInterface $request, ResponseInterface $response, Service\Venta\Pago $pagoService): ResponseInterface { $pagos = $pagoService->getDepositados(); $pagos_depositados = array_map(function(Pago $pago) { return [ 'id' => $pago->id ]; }, $pagos); /*$pagos_depositados = []; foreach ($pagos as $pago) { $pagos_depositados []= [ 'id' => $pago->id ]; }*/ return $this->withJson($response, ['pagos' => $pagos_depositados, 'total' => count($pagos_depositados)]); } public function rebotes(ServerRequestInterface $request, ResponseInterface $response, Service\Venta\Pago $pagoService): ResponseInterface { $pagos = $pagoService->getRebotes(); $rebotes = array_map(function(Pago $pago) { return [ 'id' => $pago->id ]; }, $pagos); /*$rebotes = []; foreach ($pagos as $pago) { $rebotes []= [ 'id' => $pago->id ]; }*/ return $this->withJson($response, ['pagos' => $rebotes, 'total' => count($rebotes)]); } public function anular(ServerRequestInterface $request, ResponseInterface $response, Service\Venta\Pago $pagoService, int $pago_id): ResponseInterface { $fecha = new DateTimeImmutable(); $output = [ 'pago_id' => $pago_id, 'fecha' => $fecha->format('d-m-Y'), 'anulado' => false ]; try { $pago = $pagoService->getById($pago_id); $output['anulado'] = $pagoService->anular($pago, $fecha); } catch (EmptyResult) {} return $this->withJson($response, $output); } }