51 lines
1.4 KiB
PHP
51 lines
1.4 KiB
PHP
<?php
|
|
namespace Contabilidad;
|
|
|
|
use DateTime;
|
|
use Carbon\Carbon;
|
|
use ProVM\Common\Alias\Model;
|
|
|
|
/**
|
|
* @property int $id
|
|
* @property Cuenta $debito_id
|
|
* @property Cuenta $credito_id
|
|
* @property DateTime $fecha
|
|
* @property string $glosa
|
|
* @property string $detalle
|
|
* @property double $valor
|
|
*/
|
|
class Transaccion extends Model {
|
|
public static $_table = 'transacciones';
|
|
protected static $fields = ['debito_id', 'credito_id', 'fecha', 'glosa', 'detalle', 'valor'];
|
|
|
|
protected $debito;
|
|
public function debito() {
|
|
if ($this->debito === null) {
|
|
$this->debito = $this->childOf(Cuenta::class, [Model::SELF_KEY => 'debito_id']);
|
|
}
|
|
return $this->debito;
|
|
}
|
|
protected $credito;
|
|
public function credito() {
|
|
if ($this->credito === null) {
|
|
$this->credito = $this->childOf(Cuenta::class, [Model::SELF_KEY => 'credito_id']);
|
|
}
|
|
return $this->credito;
|
|
}
|
|
public function fecha(DateTime $fecha = null) {
|
|
if ($fecha === null) {
|
|
return Carbon::parse($this->fecha);
|
|
}
|
|
$this->fecha = $fecha->format('Y-m-d');
|
|
}
|
|
|
|
public function toArray(): array {
|
|
$arr = parent::toArray();
|
|
$arr['debito'] = $this->debito()->toArray();
|
|
$arr['credito'] = $this->credito()->toArray();
|
|
$arr['fechaFormateada'] = $this->fecha()->format('d-m-Y');
|
|
$arr['valorFormateado'] = $this->debito()->moneda()->format($this->valor);
|
|
return $arr;
|
|
}
|
|
}
|