Listado proyectos

This commit is contained in:
2023-10-13 10:45:21 -03:00
parent 0d558b7980
commit c2a3192b32
26 changed files with 612 additions and 58 deletions

View File

@ -1,13 +1,32 @@
<?php
namespace Incoviba\Service;
use Incoviba\Common\Implement;
use Incoviba\Repository;
use Incoviba\Model;
class Proyecto
{
public function __construct(protected Repository\Proyecto $proyectoRepository) {}
public function __construct(
protected Repository\Proyecto $proyectoRepository,
protected Repository\Proyecto\EstadoProyecto $estadoProyecto
) {}
public function getVendibles(): array
{
return $this->proyectoRepository->fetchAllActive();
}
public function getById(int $venta_id): Model\Proyecto
{
return $this->process($this->proyectoRepository->fetchById($venta_id));
}
protected function process(Model\Proyecto $proyecto): Model\Proyecto
{
$proyecto->addFactory('estados', (new Implement\Repository\Factory())
->setCallable([$this->estadoProyecto, 'fetchByProyecto'])
->setArgs([$proyecto->id]));
$proyecto->addFactory('currentEstado', (new Implement\Repository\Factory())
->setCallable([$this->estadoProyecto, 'fetchCurrentByProyecto'])
->setArgs([$proyecto->id]));
return $proyecto;
}
}