32 lines
1.2 KiB
PHP
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'));
|
|
}
|
|
}
|