82 lines
2.1 KiB
PHP
82 lines
2.1 KiB
PHP
<?php
|
|
namespace Incoviba\old\Venta;
|
|
|
|
use Incoviba\Common\Alias\OldModel as Model;
|
|
|
|
/**
|
|
* @property int $id
|
|
* @property Unidad $unidad
|
|
* @property double $valor
|
|
*/
|
|
class Precio extends Model
|
|
{
|
|
public function unidad()
|
|
{
|
|
return $this->belongsTo(Unidad::class, 'unidad')->findOne();
|
|
}
|
|
public function estados()
|
|
{
|
|
return $this->hasMany(EstadoPrecio::class, 'precio')->findMany();
|
|
}
|
|
public function estado()
|
|
{
|
|
return \model(EstadoPrecio::class)
|
|
->select('estado_precio.*')
|
|
->rawJoin('JOIN (SELECT precio, MAX(id) AS id FROM estado_precio GROUP BY precio)', ['e0.id', '=', 'estado_precio.id'], 'e0')
|
|
->where('estado_precio.precio', $this->id)
|
|
->findOne();
|
|
}
|
|
public function inicio()
|
|
{
|
|
return \model(EstadoPrecio::class)
|
|
->where('estado_precio.precio', $this->id)
|
|
->orderByAsc('id')
|
|
->findOne();
|
|
}
|
|
public function vigente()
|
|
{
|
|
if ($this->estado()->estado()->descripcion == 'vigente') {
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
public function reemplazar($fecha)
|
|
{
|
|
if ($this->estado()->estado()->descripcion == 'reemplazado') {
|
|
return;
|
|
}
|
|
$tipo = model(TipoEstadoPrecio::class)->where('descripcion', 'reemplazado')->findOne();
|
|
$data = [
|
|
'precio' => $this->id,
|
|
'fecha' => $fecha->format('Y-m-d'),
|
|
'estado' => $tipo->id
|
|
];
|
|
$estado = model(EstadoPrecio::class)->create($data);
|
|
$estado->save();
|
|
}
|
|
public function actualizar($fecha)
|
|
{
|
|
$tipo = model(TipoEstadoPrecio::class)->where('descripcion', 'vigente')->findOne();
|
|
$data = [
|
|
'precio' => $this->id,
|
|
'fecha' => $fecha->format('Y-m-d'),
|
|
'estado' => $tipo->id
|
|
];
|
|
$estado = model(EstadoPrecio::class)->create($data);
|
|
$estado->save();
|
|
}
|
|
public function new($fecha)
|
|
{
|
|
$this->save();
|
|
|
|
$tipo = model(TipoEstadoPrecio::class)->where('descripcion', 'vigente')->findOne();
|
|
$data = [
|
|
'precio' => $this->id,
|
|
'fecha' => $fecha->format('Y-m-d'),
|
|
'estado' => $tipo->id
|
|
];
|
|
$estado = model(EstadoPrecio::class)->create($data);
|
|
$estado->save();
|
|
}
|
|
}
|