mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
125 lines
3.9 KiB
PHP
125 lines
3.9 KiB
PHP
<?php
|
|
|
|
namespace App\Models\OrdenTrabajo;
|
|
|
|
use App\Entities\Presupuestos\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)
|
|
{
|
|
|
|
}
|
|
}
|