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

@ -21,6 +21,13 @@ class Inmobiliaria extends Model
$this->dv
]);
}
public function nombreCompleto(): string
{
return implode(' ', [
$this->razon,
$this->tipoSociedad->descripcion
]);
}
public function jsonSerialize(): mixed
{

View File

@ -13,6 +13,7 @@ class Proyecto extends Ideal\Model
public float $corredor;
public int $pisos;
public int $subterraneos;
protected Proyecto\Etapa $etapa;
public function inmobiliaria(): Inmobiliaria
{

View File

@ -0,0 +1,30 @@
<?php
namespace Incoviba\Model\Proyecto;
use DateTimeInterface;
use Incoviba\Common\Ideal;
use Incoviba\Model;
class EstadoProyecto extends Ideal\Model
{
protected ?Model\Proyecto $proyecto;
public TipoEstadoProyecto $tipoEstadoProyecto;
public DateTimeInterface $fecha;
public function proyecto(): Model\Proyecto
{
if (!isset($this->proyecto)) {
$this->proyecto = $this->runFactory('proyecto');
}
return $this->proyecto;
}
public function jsonSerialize(): mixed
{
return array_merge(parent::jsonSerialize(), [
'proyecto' => $this->proyecto(),
'tipo_estado_proyecto' => $this->tipoEstadoProyecto,
'fecha' => $this->fecha
]);
}
}

View File

@ -0,0 +1,18 @@
<?php
namespace Incoviba\Model\Proyecto;
use Incoviba\Common\Ideal;
class Etapa extends Ideal\Model
{
public string $descripcion;
public int $orden;
public function jsonSerialize(): mixed
{
return array_merge(parent::jsonSerialize(), [
'descripcion' => $this->descripcion,
'orden' => $this->orden
]);
}
}

View File

@ -0,0 +1,18 @@
<?php
namespace Incoviba\Model\Proyecto;
use Incoviba\Model\Tipo;
class TipoEstadoProyecto extends Tipo
{
public int $orden;
public Etapa $etapa;
public function jsonSerialize(): mixed
{
return array_merge(parent::jsonSerialize(), [
'orden' => $this->orden,
'etapa' => $this->etapa
]);
}
}