Files
safekat/ci4/app/Models/OrdenTrabajo/OrdenTrabajoModel.php
2024-12-11 10:19:55 +01:00

125 lines
3.9 KiB
PHP

<?php
namespace App\Models\OrdenTrabajo;
use App\Entities\Produccion\OrdenTrabajoEntity;
use CodeIgniter\Database\BaseBuilder;
use CodeIgniter\Model;
class OrdenTrabajoModel extends Model
{
protected $table = 'ordenes_trabajo';
protected $primaryKey = 'id';
protected $useAutoIncrement = true;
protected $returnType = OrdenTrabajoEntity::class;
protected $useSoftDeletes = true;
protected $protectFields = true;
protected $allowedFields = [
"pedido_id",
"maquina_orden_negro_id",
"maquina_orden_color_id",
"maquina_orden_portada_id",
"maquina_orden_cubierta_id",
"negro_forma_id",
"color_forma_id",
"portada_forma_id",
"cubierta_forma_id",
"tirada",
"negro_pliegos_pedido",
"color_pliegos_pedido",
"portada_pliegos_pedido",
"cubierta_pliegos_pedido",
"negro_clicks_pedido",
"color_clicks_pedido",
"portada_clicks_pedido",
"cubierta_clicks_pedido",
"pliegos1",
"paginas1",
"pliegos2",
"paginas2",
"negro_proveedor_nombre",
"color_proveedor_nombre",
"portada_proveedor_nombre",
"corte_pie",
"lomo",
"tipo_entrada",
"fecha_entrega_real_warning",
"fecha_entrega_warning",
"fecha_entrega_warning_revised",
"ferro_disponible",
"ferro_disponible_thread_id",
"ferro_cp",
"ferro_proveedor",
"ferro_tracking",
"pre_formato",
"pre_lomo",
"pre_solapa",
"pre_isbn",
"pre_codbarras",
"pre_imposicion",
"pre_imprimir",
"pre_faltan_materiales",
"pre_faltan_materiales_note",
"progreso",
"message_production_send",
"finalizado",
"comentarios"
];
protected bool $allowEmptyInserts = false;
protected bool $updateOnlyChanged = true;
protected array $casts = [];
protected array $castHandlers = [];
// Dates
protected $useTimestamps = true;
protected $dateFormat = 'datetime';
protected $createdField = 'created_at';
protected $updatedField = 'updated_at';
protected $deletedField = 'deleted_at';
// Validation
protected $validationRules = [];
protected $validationMessages = [];
protected $skipValidation = false;
protected $cleanValidationRules = true;
// Callbacks
protected $allowCallbacks = true;
protected $beforeInsert = [];
protected $afterInsert = [];
protected $beforeUpdate = [];
protected $afterUpdate = [];
protected $beforeFind = [];
protected $afterFind = [];
protected $beforeDelete = [];
protected $afterDelete = [];
public function getDatatableQuery() : BaseBuilder
{
$q = $this->builder("ordenes_trabajo ot")
->select([
"pedidos.id",
"orden_trabajo_dates.fecha_encuadernado_at",
"clientes.nombre as client_name",
"presupuestos.titulo as presupuesto_title",
"tp.codigo as tipo_presupuesto_impresion",
"ubicaciones.nombre as ubicacion_name",
])
->join("orden_trabajo_dates otdates","otdates.orden_trabajo_id = ot.id","left")
->join("pedidos","pedidos.id = ot.pedido_id","left")
->join("pedidos_linea","pedidos.id = pedidos_linea.pedido_id","left")
->join("presupuestos","presupuestos.id = pedidos_linea.presupuesto_id","left")
->join("clientes","clientes.id = presupuestos.cliente_id","left")
->join("tipos_presupuestos tp","presupuestos.tipo_impresion_id = tp.id","left")
->join("ubicaciones","ubicaciones.id = pedidos_linea.ubicacion_id","left")
->groupBy("ot.id");
return $q;
}
public function updateMaquinas(OrdenTrabajoEntity $ot)
{
}
}