47 lines
1.4 KiB
PHP
47 lines
1.4 KiB
PHP
<?php
|
|
namespace Incoviba\Model\Inmobiliaria;
|
|
|
|
use Incoviba\Common\Ideal;
|
|
use Incoviba\Common\Implement\Exception\EmptyResult;
|
|
use Incoviba\Model;
|
|
|
|
class Cuenta extends Ideal\Model
|
|
{
|
|
public Model\Inmobiliaria $inmobiliaria;
|
|
public Model\Banco $banco;
|
|
public string $cuenta;
|
|
|
|
protected array $estados;
|
|
public function getEstados(): array
|
|
{
|
|
if (!isset($this->estados)) {
|
|
$this->estados = $this->runFactory('estados');
|
|
}
|
|
return $this->estados;
|
|
}
|
|
protected Model\Inmobiliaria\Cuenta\Estado $currentEstado;
|
|
public function currentEstado(): Model\Inmobiliaria\Cuenta\Estado
|
|
{
|
|
if (!isset($this->currentEstado)) {
|
|
$estados = $this->getEstados();
|
|
if (count($estados) === 0) {
|
|
throw new EmptyResult('Current Estado Cuenta');
|
|
}
|
|
usort($estados, function(Model\Inmobiliaria\Cuenta\Estado $a, Model\Inmobiliaria\Cuenta\Estado $b) {
|
|
return $a->id - $b->id;
|
|
});
|
|
$this->currentEstado = end($estados);
|
|
}
|
|
return $this->currentEstado;
|
|
}
|
|
|
|
public function jsonSerialize(): mixed
|
|
{
|
|
return array_merge(parent::jsonSerialize(), [
|
|
'inmobiliaria_rut' => $this->inmobiliaria->rut,
|
|
'banco' => $this->banco,
|
|
'cuenta' => $this->cuenta
|
|
]);
|
|
}
|
|
}
|