Files
modelos/src/old/Proyecto/AvanceConstruccion.php

87 lines
2.0 KiB
PHP
Raw Normal View History

2019-12-23 18:01:23 -03:00
<?php
namespace Incoviba\old\Proyecto;
use Carbon\Carbon;
use Incoviba\Common\Alias\OldModel as Model;
/**
* @property int $id
* @property int $proyecto
* @property \DateTime $fecha
* @property double $avance
* @property double $estado_pago
* @property int $pagado
* @property double $uf
* @property \DateTime $fecha_pagado
*/
class AvanceConstruccion extends Model
{
public static $_table = 'avance_construccion';
public function proyecto()
{
return $this->belongsTo(Proyecto::class, 'proyecto')->findOne();
}
public function fecha(\DateTime $fecha = null)
{
if ($fecha == null) {
return Carbon::parse($this->fecha, config('app.timezone'));
}
$this->fecha = $fecha->format('Y-m-d');
}
protected $pagare;
public function pagare()
{
if ($this->pagare == null) {
$this->pagare = $this->hasMany(Pagare::class, 'estado_pago', 'numero')
->where('proyecto', $this->proyecto)
->findOne();
}
return $this->pagare;
}
protected $pagares;
public function pagares()
{
if ($this->pagares == null) {
$this->pagares = $this->hasMany(Pagare::class, 'estado_pago', 'numero')
->where('proyecto', $this->proyecto)
->findMany();
}
return $this->pagares;
}
public function uf()
{
if ($this->uf == 0) {
$uf = uf($this->fecha());
if ($uf->total > 0) {
$this->uf = $uf->uf->value;
$this->save();
}
}
return $this->uf;
}
public function pagado($tipo = 'ufs')
{
if ($tipo == 'ufs') {
return $this->pagado / $this->uf();
}
return $this->pagado;
}
public function fechaPago(\DateTime $fecha = null)
{
if ($fecha == null) {
return Carbon::parse($this->fecha_pagado, config('app.timezone'));
}
$this->fecha_pagado = $fecha->format('Y-m-d');
}
public function edit(array $data)
{
foreach ($data as $column => $value) {
if (isset($this->$column) and $this->$column != $value) {
$this->$column = $value;
}
}
$this->save();
}
}