50 lines
1.3 KiB
PHP
50 lines
1.3 KiB
PHP
|
<?php
|
||
|
namespace Contabilidad;
|
||
|
|
||
|
use Carbon\Carbon;
|
||
|
use ProVM\Common\Alias\Model;
|
||
|
|
||
|
/**
|
||
|
* @property int $id
|
||
|
* @property Cuenta $desde_id
|
||
|
* @property Cuenta $hasta_id
|
||
|
* @property \DateTime $fecha
|
||
|
* @property string $glosa
|
||
|
* @property string $detalle
|
||
|
* @property double $valor
|
||
|
*/
|
||
|
class Transaccion extends Model {
|
||
|
public static $_table = 'transacciones';
|
||
|
protected static $fields = ['desde_id', 'hasta_id', 'fecha', 'glosa', 'detalle', 'valor'];
|
||
|
|
||
|
protected $desde;
|
||
|
public function desde() {
|
||
|
if ($this->desde === null) {
|
||
|
$this->desde = $this->childOf(Cuenta::class, [Model::SELF_KEY => 'desde_id']);
|
||
|
}
|
||
|
return $this->desde;
|
||
|
}
|
||
|
protected $hasta;
|
||
|
public function hasta() {
|
||
|
if ($this->hasta === null) {
|
||
|
$this->hasta = $this->childOf(Cuenta::class, [Model::SELF_KEY => 'hasta_id']);
|
||
|
}
|
||
|
return $this->hasta;
|
||
|
}
|
||
|
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['desde'] = $this->desde()->toArray();
|
||
|
$arr['hasta'] = $this->hasta()->toArray();
|
||
|
$arr['fechaFormateada'] = $this->fecha()->format('d-m-Y');
|
||
|
$arr['valorFormateado'] = '$' . number_format($this->valor, 0, ',', '.');
|
||
|
return $arr;
|
||
|
}
|
||
|
}
|