Files
api/common/Controller/Proyectos/Cierres.php
2021-12-25 23:17:15 -03:00

32 lines
1.2 KiB
PHP

<?php
namespace Incoviba\API\Common\Controller\Proyectos;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use Incoviba\API\Common\Factory\Model as Factory;
use Incoviba\API\Common\Define\Controller\Json;
use Incoviba\Proyecto\Proyecto;
class Cierres {
use Json;
public function __invoke(Request $request, Response $response, Factory $factory): Response {
$proyectos = $factory->find(Proyecto::class)->many();
$cierres = [];
foreach ($proyectos as $proyecto) {
if (count($proyecto->cierres()) == 0) {
continue;
}
$cierres[$proyecto->descripcion] = [
'proyecto' => $proyecto->descripcion,
'total' => count($proyecto->cierres()),
'promesados' => count($proyecto->cierres(3)),
'rechazados' => count($proyecto->cierres(-1)),
'pendientes' => count($proyecto->cierres(2)),
'ultimo_pendiente' => (count($proyecto->cierres(2)) > 0) ? $proyecto->cierres(2)[0]->periodo() : 0
];
}
return $this->withJson($response, compact('cierres'));
}
}