Files
contabilidad/api/src/Categoria.php

51 lines
1.2 KiB
PHP
Raw Normal View History

2021-07-27 22:29:56 -04:00
<?php
namespace Contabilidad;
use ProVM\Common\Alias\Model;
/**
* @property int $id
* @property string $nombre
2021-11-01 11:00:59 -03:00
* @property TipoCategoria $tipo_id
2021-07-27 22:29:56 -04:00
*/
class Categoria extends Model {
public static $_table = 'categorias';
protected static $fields = ['nombre'];
protected $cuentas;
public function cuentas() {
if ($this->cuentas === null) {
$this->cuentas = $this->parentOf(Cuenta::class, [Model::CHILD_KEY => 'categoria_id']);
}
return $this->cuentas;
}
2021-11-01 11:00:59 -03:00
protected $tipo;
public function tipo() {
if ($this->tipo === null) {
$this->tipo = $this->childOf(TipoCategoria::class, [Model::SELF_KEY => 'tipo_id']);
}
return $this->tipo;
}
2021-07-30 16:38:09 -04:00
protected $saldo;
public function saldo() {
if ($this->saldo === null) {
$this->saldo = 0;
if ($this->cuentas() !== null) {
$this->saldo = array_reduce($this->cuentas(), function($sum, $item) {
return $sum + $item->saldo();
});
}
}
return $this->saldo;
}
public function toArray(): array {
$arr = parent::toArray();
2021-11-01 11:00:59 -03:00
$arr['tipo'] = $this->tipo()->toArray();
2021-07-30 16:38:09 -04:00
$arr['saldo'] = $this->saldo();
$arr['saldoFormateado'] = '$' . number_format($this->saldo(), 0, ',', '.');
return $arr;
}
2021-07-27 22:29:56 -04:00
}