This commit is contained in:
amazuecos
2024-12-15 16:07:54 +01:00
parent 71157bfda5
commit d5719b70a1
31 changed files with 970 additions and 502 deletions

View File

@ -1,6 +1,11 @@
<?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;
@ -8,107 +13,61 @@ class OrdenTrabajoEntity extends Entity
{
protected $attributes = [
"pedido_id" => null,
"maquina_orden_negro_id" => null,
"maquina_orden_color_id" => null,
"maquina_orden_portada_id" => null,
"maquina_orden_cubierta_id" => null,
"negro_forma_id" => null,
"color_forma_id" => null,
"portada_forma_id" => null,
"cubierta_forma_id" => null,
"tirada" => null,
"negro_pliegos_pedido" => null,
"color_pliegos_pedido" => null,
"portada_pliegos_pedido" => null,
"cubierta_pliegos_pedido" => null,
"negro_clicks_pedido" => null,
"color_clicks_pedido" => null,
"portada_clicks_pedido" => null,
"cubierta_clicks_pedido" => null,
"pliegos1" => null,
"paginas1" => null,
"pliegos2" => null,
"paginas2" => null,
"negro_proveedor_nombre" => null,
"color_proveedor_nombre" => null,
"portada_proveedor_nombre" => null,
"corte_pie" => null,
"lomo" => null,
"tipo_entrada" => null,
"fecha_entrega_real_warning" => null,
"fecha_entrega_warning" => null,
"fecha_entrega_warning_revised" => null,
"ferro_disponible" => null,
"ferro_disponible_thread_id" => null,
"ferro_cp" => null,
"ferro_proveedor" => null,
"ferro_tracking" => null,
"pre_formato" => null,
"pre_lomo" => null,
"pre_solapa" => null,
"pre_isbn" => null,
"pre_codbarras" => null,
"pre_imposicion" => null,
"pre_imprimir" => null,
"pre_faltan_materiales" => null,
"pre_faltan_materiales_note" => null,
"progreso" => null,
"message_production_send" => null,
"finalizado" => null,
"comentarios" => 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',
"maquina_orden_negro_id" => '?integer',
"maquina_orden_color_id" => '?integer',
"maquina_orden_portada_id" => '?integer',
"maquina_orden_cubierta_id" => '?integer',
"negro_forma_id" => '?integer',
"color_forma_id" => '?integer',
"portada_forma_id" => '?integer',
"cubierta_forma_id" => '?integer',
"tirada" => 'integer',
"negro_pliegos_pedido" => '?integer',
"color_pliegos_pedido" => 'string',
"portada_pliegos_pedido" => 'string',
"cubierta_pliegos_pedido" => 'string',
"negro_clicks_pedido" => '?integer',
"color_clicks_pedido" => '?integer',
"portada_clicks_pedido" => '?integer',
"cubierta_clicks_pedido" => null,
"pliegos1" => '?integer',
"paginas1" => '?integer',
"pliegos2" => '?integer',
"paginas2" => '?integer',
"negro_proveedor_nombre" => null,
"color_proveedor_nombre" => null,
"portada_proveedor_nombre" => null,
"corte_pie" => null,
"lomo" => null,
"tipo_entrada" => 'string',
"fecha_entrega_real_warning" => 'boolean',
"fecha_entrega_warning" => 'boolean',
"fecha_entrega_warning_revised" => 'boolean',
"ferro_disponible" => 'boolean',
"ferro_disponible_thread_id" => '?integer',
"ferro_cp" => '?string',
"ferro_proveedor" => '?string',
"ferro_tracking" => '?string',
"pre_formato" => '?string',
"pre_lomo" => '?string',
"pre_solapa" => '?string',
"pre_isbn" => '?string',
"pre_codbarras" => '?string',
"pre_imposicion" => '?string',
"pre_imprimir" => 'boolean',
"pre_faltan_materiales" => 'boolean',
"pre_faltan_materiales_note" => '?string',
"progreso" => 'float',
"message_production_send" => 'boolean',
"finalizado" => 'boolean',
"comentarios" => 'string'
"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;
}
}