find(Proyecto::class)->many(); $cuotas = []; foreach ($proyectos as $proyecto) { foreach ($proyecto->cuotas() as $cuota) { $cuotas []= $cuota->toArray(); } } return $this->withJson($response, ['cuotas' => $cuotas]); } public function mes(Request $request, Response $response, Factory $factory): Response { $proyectos = $factory->find(Proyecto::class)->many(); $dias = []; foreach ($proyectos as $proyecto) { foreach ($proyecto->cuotasMes() as $cuota) { $f = $cuota->pago()->fecha(); if ($f->isoWeekday() == 6 or $f->isoWeekDay() == 7) { $f = $f->copy()->addDays(2)->startOfWeek(); } $dia = $f->format('Y-m-d'); if (!isset($dias[$dia])) { $dias[$dia] = ['dia' => $dia, 'proyectos' => [$proyecto->descripcion => ['proyecto' => $proyecto->descripcion, 'cantidad' => 0]]]; } if (!isset($dias[$dia]['proyectos'][$proyecto->descripcion])) { $dias[$dia]['proyectos'][$proyecto->descripcion] = ['proyecto' => $proyecto->descripcion, 'cantidad' => 0]; } $dias[$dia]['proyectos'][$proyecto->descripcion]['cantidad'] ++; } } uksort($dias, function($a, $b) { return strcmp($a, $b); }); return $this->withJson($response, ['proyecto' => $proyecto->toArray(), 'dias' => $dias]); } public function hoy(Request $request, Response $response, Factory $factory): Response { $proyectos = $factory->find(Proyecto::class)->many(); $hoy = 0; foreach ($proyectos as $proyecto) { $hoy += count($proyecto->cuotasHoy()); } return $this->withJson($response, ['hoy' => $hoy]); } public function pendientes(Request $request, Response $response, Factory $factory): Response { $proyectos = $factory->find(Proyecto::class)->many(); $pendientes = 0; foreach ($proyectos as $proyecto) { $pendientes += count($proyecto->cuotasPendientes()); } return $this->withJson($response, ['pendientes' => $pendientes]); } }