Files
safekat/ci4/app/Entities/Produccion/OrdenTrabajoEntity.php
amazuecos d5719b70a1 ots
2024-12-15 16:07:54 +01:00

74 lines
2.0 KiB
PHP

<?php
namespace App\Entities\Produccion;
use App\Database\Migrations\OrdenTrabajoDatesTable;
use App\Entities\Pedidos\PedidoEntity;
use App\Models\OrdenTrabajo\OrdenTrabajoTarea;
use App\Models\Pedidos\PedidoModel;
use CodeIgniter\Entity\Entity;
class OrdenTrabajoEntity extends Entity
{
protected $attributes = [
"pedido_id" => null,
"user_created_id" => null,
"user_updated_id" => null,
"total_tirada" => null,
"total_precio" => null,
"tipo_entrada" => "out",
"progreso" => 0.00,
"estado" => "I",
"comentarios" => null,
];
protected $casts = [
"pedido_id" => "integer",
"user_created_id" => "integer",
"user_updated_id" => "?integer",
"total_tirada" => "float",
"total_precio" => "float",
"tipo_entrada" => "string",
"progreso" => "float",
"estado" => "string",
"comentarios" => "string",
];
/**
* Devuelve las tareas de la orden de trabajo.
*
* @return array<OrdenTrabajoTarea>
*/
public function tareas(): array
{
$m = model(OrdenTrabajoTarea::class);
return $m->where("orden_trabajo_id", $this->attributes["id"])->findAll();
}
/**
* Devuelve el pedido de la orden de trabajo
*
* @return PedidoEntity
*/
public function pedido(): PedidoEntity
{
$m = model(PedidoModel::class);
return $m->find($this->attributes["pedido_id"]);
}
/**
* Almacena en la tabla `orden_trabajo_dates` las fechas correspondientes del pedido.
* Se almacenan en una tabla externa porque puede haber modificaciones de estas fechas
* en la orden del trabajo, pero en el pedido quedarán fijas.
*
* @todo Falta implementacion
* @return boolean
*/
public function storeDates($data): self
{
$ot_dates = new OrdenTrabajoDateEntity();
$this->attributes["dates"] = $ot_dates->fill($data);
return $this;
}
}