fetchRedis($redisService, $redisKey); } catch (EmptyRedis) { try { $inmobiliarias = $inmobiliariaRepository->fetchAll('razon'); $this->saveRedis($redisService, $redisKey, $inmobiliarias, 30 * 24 * 60 * 60); } catch (EmptyResult) {} } $centrosCostos = $centroCostoRepository->fetchAll(); return $view->render($response, 'contabilidad.cartolas.diaria', compact('inmobiliarias', 'centrosCostos')); } public function importar(ServerRequestInterface $request, ResponseInterface $response, View $view, Repository\Inmobiliaria $inmobiliariaRepository, Repository\Contabilidad\Banco $bancoRepository): ResponseInterface { $inmobiliarias = []; try { $inmobiliarias = $inmobiliariaRepository->fetchAll('razon'); } catch (EmptyResult) {} $bancos = []; try { $bancos = $bancoRepository->fetchAll('nombre'); } catch (EmptyResult) {} return $view->render($response, 'contabilidad.cartolas.import', compact('inmobiliarias', 'bancos')); } public function depositos(ServerRequestInterface $request, ResponseInterface $response, View $view, Service\Redis $redisService, Repository\Inmobiliaria $inmobiliariaRepository, Repository\Contabilidad\Deposito $dapRepository): ResponseInterface { $redisKey = 'inmobiliarias'; $inmobiliarias = []; try { $inmobiliarias = $this->fetchRedis($redisService, $redisKey); } catch (EmptyRedis) { try { $inmobiliarias = $inmobiliariaRepository->fetchAll(); $this->saveRedis($redisService, $redisKey, $inmobiliarias, 30 * 24 * 60 * 60); } catch (EmptyResult) {} } $depositos = []; try { $depositos = $dapRepository->fetchAll(); } catch (EmptyResult) {} $fecha = new DateTimeImmutable('today'); $activos = array_filter($depositos, function(Model\Contabilidad\Deposito $deposito) use ($fecha) { return $deposito->termino >= $fecha; }); $mes = $fecha->sub(new DateInterval('P1M')); $vencidos = array_filter($depositos, function(Model\Contabilidad\Deposito $deposito) use ($fecha, $mes) { return $deposito->termino < $fecha and $deposito->termino >= $mes; }); return $view->render($response, 'contabilidad.depositos', compact('inmobiliarias', 'activos', 'vencidos')); } public function tesoreria(ServerRequestInterface $request, ResponseInterface $response, View $view, Service\Contabilidad\Informe\Tesoreria $contabilidadService, string $fecha = 'today'): ResponseInterface { $fecha = new DateTimeImmutable($fecha); $anterior = $contabilidadService->getOutput()->getAnterior($fecha); $yesterday = new DateTimeImmutable('yesterday'); $siguiente = null; if ($yesterday > $fecha) { $siguiente = $fecha->add(new DateInterval('P1D')); if ($siguiente->format('N') === '6') { $siguiente = $fecha->add(new DateInterval('P3D')); } } $informes = $contabilidadService->getOutput()->build($fecha); $filename = "Informe de TesorerĂ­a {$fecha->format('d.m.Y')}"; return $view->render($response, 'contabilidad.informes.tesoreria', compact('fecha', 'anterior', 'siguiente', 'informes', 'filename')); } /*public function semanal(ServerRequestInterface $request, ResponseInterface $response, View $view, Service\Contabilidad\Informe\Semanal $semanalService, string $fecha = 'today'): ResponseInterface { }*/ public function cuadratura(ServerRequestInterface $request, ResponseInterface $response, View $view, Repository\Inmobiliaria $inmobiliariaRepository): ResponseInterface { $inmobiliarias = []; try { $inmobiliarias = $inmobiliariaRepository->fetchAll('razon'); } catch (EmptyResult) {} return $view->render($response, 'contabilidad.cuadratura', compact('inmobiliarias')); } }