From e44421fb4d16d2dfa52044011a1132e92e53b874 Mon Sep 17 00:00:00 2001 From: amazuecos Date: Wed, 26 Mar 2025 23:29:19 +0100 Subject: [PATCH] fix store ot --- ...25-03-26-210001_AlterOrdenTrabajoUsers.php | 222 ++++++++++++++++++ ...25-03-26-210002_AlterOrdenTrabajoDates.php | 174 ++++++++++++++ .../Produccion/OrdenTrabajoDateEntity.php | 33 ++- .../Produccion/OrdenTrabajoUserEntity.php | 28 ++- .../Models/OrdenTrabajo/OrdenTrabajoDate.php | 15 +- .../Models/OrdenTrabajo/OrdenTrabajoUser.php | 30 +-- ci4/app/Services/ProductionService.php | 8 +- 7 files changed, 466 insertions(+), 44 deletions(-) create mode 100644 ci4/app/Database/Migrations/2025-03-26-210001_AlterOrdenTrabajoUsers.php create mode 100644 ci4/app/Database/Migrations/2025-03-26-210002_AlterOrdenTrabajoDates.php diff --git a/ci4/app/Database/Migrations/2025-03-26-210001_AlterOrdenTrabajoUsers.php b/ci4/app/Database/Migrations/2025-03-26-210001_AlterOrdenTrabajoUsers.php new file mode 100644 index 00000000..6c964abc --- /dev/null +++ b/ci4/app/Database/Migrations/2025-03-26-210001_AlterOrdenTrabajoUsers.php @@ -0,0 +1,222 @@ + [ + 'type' => 'INT', + 'unsigned' => true, + 'auto_increment' => true, + ], + "orden_trabajo_id" => [ + "type" => "INT", + "unsigned" => true, + ], + + "user_created_id" => [ + "type" => "INT", + "unsigned" => true, + "constraint" => 10, + "null" => true, + ], + "user_update_id" => [ + "type" => "INT", + "unsigned" => true, + "constraint" => 10, + "null" => true, + ], + "inaplazable_revised_change_user_id" => [ + "type" => "INT", + "unsigned" => true, + "constraint" => 10, + "null" => true, + ], + + + "ferro_disponible_hecho_user_id" => [ + "type" => "INT", + "unsigned" => true, + "constraint" => 10, + "null" => true, + ], + + "ferro_disponible_ok_user_id" => [ + "type" => "INT", + "unsigned" => true, + "constraint" => 10, + "null" => true, + ], + "ferro_entregado_user_id" => [ + "type" => "INT", + "unsigned" => true, + "constraint" => 10, + "null" => true, + ], + + "pendiente_ferro_user_id" => [ + "type" => "INT", + "unsigned" => true, + "constraint" => 10, + "null" => true, + ], + "ferro_en_cliente_user_id" => [ + "type" => "INT", + "unsigned" => true, + "constraint" => 10, + "null" => true, + ], + "ferro_ok_user_id" => [ + "type" => "INT", + "unsigned" => true, + "constraint" => 10, + "null" => true, + ], + + + + "interior_bn_user_id" => [ + "type" => "INT", + "unsigned" => true, + "constraint" => 10, + "null" => true, + ], + "interior_color_user_id" => [ + "type" => "INT", + "unsigned" => true, + "constraint" => 10, + "null" => true, + ], + "preparacion_interior_user_id" => [ + "type" => "INT", + "unsigned" => true, + "constraint" => 10, + "null" => true, + ], + "cubierta_user_id" => [ + "type" => "INT", + "unsigned" => true, + "constraint" => 10, + "null" => true, + ], + "plastificado_user_id" => [ + "type" => "INT", + "unsigned" => true, + "constraint" => 10, + "null" => true, + ], + "encuadernacion_user_id" => [ + "type" => "INT", + "unsigned" => true, + "constraint" => 10, + "null" => true, + ], + "corte_user_id" => [ + "type" => "INT", + "unsigned" => true, + "constraint" => 10, + "null" => true, + ], + "embalaje_user_id" => [ + "type" => "INT", + "unsigned" => true, + "constraint" => 10, + "null" => true, + ], + "envio_user_id" => [ + "type" => "INT", + "unsigned" => true, + "constraint" => 10, + "null" => true, + ], + "entrada_manipulado_user_id" => [ + "type" => "INT", + "unsigned" => true, + "constraint" => 10, + "null" => true, + ], + + + "pre_formato_user_id" => [ + "type" => "INT", + "unsigned" => true, + "constraint" => 10, + "null" => true, + ], + + + "pre_lomo_user_id" => [ + "type" => "INT", + "unsigned" => true, + "constraint" => 10, + "null" => true, + ], + + "pre_solapa_user_id" => [ + "type" => "INT", + "unsigned" => true, + "constraint" => 10, + "null" => true, + ], + + + "pre_codbarras_user_id" => [ + "type" => "INT", + "unsigned" => true, + "constraint" => 10, + "null" => true, + ], + + "pre_imposicion_user_id" => [ + "type" => "INT", + "unsigned" => true, + "constraint" => 10, + "null" => true, + ], + "pre_imprimir_user_id" => [ + "type" => "INT", + "unsigned" => true, + "constraint" => 10, + "null" => true, + ], + "pre_imprimir_user_id" => [ + "type" => "INT", + "unsigned" => true, + "constraint" => 10, + "null" => true, + ], + ]; + + public function up() + { + $this->forge->dropTable('orden_trabajo_users',true); + $currenttime = new RawSql("CURRENT_TIMESTAMP"); + $this->forge->addField($this->USER_COLUMNS); + $this->forge->addField([ + "created_at" => [ + "type" => "TIMESTAMP", + "default" => $currenttime, + ], + "updated_at" => [ + "type" => "TIMESTAMP", + "null" => true, + ], + "deleted_at" => [ + "type" => "TIMESTAMP", + "null" => true, + ], + ]); + $this->forge->addPrimaryKey('id'); + $this->forge->addForeignKey("orden_trabajo_id", "ordenes_trabajo","id"); + $this->forge->createTable("orden_trabajo_users"); + } + + public function down() + { + $this->forge->dropTable('orden_trabajo_users'); + } +} diff --git a/ci4/app/Database/Migrations/2025-03-26-210002_AlterOrdenTrabajoDates.php b/ci4/app/Database/Migrations/2025-03-26-210002_AlterOrdenTrabajoDates.php new file mode 100644 index 00000000..89a22aed --- /dev/null +++ b/ci4/app/Database/Migrations/2025-03-26-210002_AlterOrdenTrabajoDates.php @@ -0,0 +1,174 @@ + [ + 'type' => 'INT', + 'unsigned' => true, + 'auto_increment' => true, + ], + "orden_trabajo_id" => [ + "type" => "INT", + "unsigned" => true, + ], + "fecha_entrada_at" => [ + "type" => "DATE", + "null" => true, + ], + "fecha_entrega_at" => [ + "type" => "DATE", + "null" => true, + ], + "fecha_entrega_change_at" => [ + "type" => "DATE", + "null" => true, + ], + + "fecha_entrega_real_at" => [ + "type" => "DATE", + "null" => true, + ], + + "fecha_impresion_at" => [ + "type" => "DATE", + "null" => true, + ], + "fecha_encuadernado_at" => [ + "type" => "DATE", + "null" => true, + ], + "fecha_entrega_externo" => [ + "type" => "DATE", + "null" => true, + ], + + "pendiente_ferro_at" => [ + "type" => "DATE", + "null" => true, + ], + "ferro_en_cliente_at" => [ + "type" => "DATE", + "null" => true, + ], + "ferro_ok_at" => [ + "type" => "DATE", + "null" => true, + ], + "interior_bn_at" => [ + "type" => "DATE", + "null" => true, + ], + "interior_color_at" => [ + "type" => "DATE", + "null" => true, + ], + "preparacion_interiores_at" => [ + "type" => "DATE", + "null" => true, + ], + "cubierta_at" => [ + "type" => "DATE", + "null" => true, + ], + "plastificado_at" => [ + "type" => "DATE", + "null" => true, + ], + "encuadernacion_at" => [ + "type" => "DATE", + "null" => true, + ], + "corte_at" => [ + "type" => "DATE", + "null" => true, + ], + "embalaje_at" => [ + "type" => "DATE", + "null" => true, + ], + "envio_at" => [ + "type" => "DATE", + "null" => true, + ], + "entrada_manipulado_at" => [ + "type" => "DATE", + "null" => true, + ], + + + "ferro_disponible_hecho_at" => [ + "type" => "DATE", + "null" => true, + ], + + "ferro_disponible_ok_at" => [ + "type" => "DATE", + "null" => true, + ], + + "ferro_entregado_at" => [ + "type" => "DATE", + "null" => true, + ], + "pre_formato_at" => [ + "type" => "DATE", + "null" => true, + ], + + "pre_lomo_at" => [ + "type" => "DATE", + "null" => true, + ], + + "pre_solapa_at" => [ + "type" => "DATE", + "null" => true, + ], + + "pre_codbarras_at" => [ + "type" => "DATE", + "null" => true, + ], + + "pre_imposicion_at" => [ + "type" => "DATE", + "null" => true, + ], + ]; + public function up() + { + $this->forge->dropTable('orden_trabajo_dates',true); + $currenttime = new RawSql("CURRENT_TIMESTAMP"); + $this->forge->addField($this->COLUMNS); + $this->forge->addField([ + "created_at" => [ + "type" => "TIMESTAMP", + "default" => $currenttime, + ], + "updated_at" => [ + "type" => "TIMESTAMP", + "null" => true, + ], + "deleted_at" => [ + "type" => "TIMESTAMP", + "null" => true, + ], + ]); + $this->forge->addPrimaryKey('id'); + $this->forge->addForeignKey("orden_trabajo_id", "ordenes_trabajo","id"); + $this->forge->createTable("orden_trabajo_dates"); + + } + + public function down() + { + $this->forge->dropTable('orden_trabajo_dates'); + } +} diff --git a/ci4/app/Entities/Produccion/OrdenTrabajoDateEntity.php b/ci4/app/Entities/Produccion/OrdenTrabajoDateEntity.php index bf4d8f5f..ab72cb56 100644 --- a/ci4/app/Entities/Produccion/OrdenTrabajoDateEntity.php +++ b/ci4/app/Entities/Produccion/OrdenTrabajoDateEntity.php @@ -7,8 +7,8 @@ use CodeIgniter\Entity\Entity; class OrdenTrabajoDateEntity extends Entity { protected $attributes = [ + "orden_trabajo_id" => null, "fecha_entrada_at" => null, - "fecha_entrega_at" => null, "fecha_entrega_change_at" => null, "fecha_entrega_real_at" => null, "fecha_entrega_real_warning" => null, @@ -29,14 +29,39 @@ class OrdenTrabajoDateEntity extends Entity "corte_at" => null, "embalaje_at" => null, "envio_at" => null, - "entrada_manipulado_at" => null + "entrada_manipulado_at" => null ]; protected $datamap = []; - protected $dates = ['created_at', 'updated_at', 'deleted_at']; + protected $dates = [ + 'created_at', + 'updated_at', + 'deleted_at', + 'fecha_entrega_at', + 'fecha_entrega_change_at', + 'fecha_entrega_real_at', + 'fecha_entrega_real_warning', + 'fecha_impresion_at', + 'fecha_encuadernado_at', + 'fecha_externo_at', + 'fecha_entrega_warning', + 'fecha_entrega_warning_revised', + 'pendiente_ferro_at', + 'ferro_en_cliente_at', + 'ferro_ok_at', + 'interior_bn_at', + 'interior_color_at', + 'preparacion_interiores_at', + 'cubierta_at', + 'plastificado_at', + 'encuadernacion_at', + 'corte_at', + 'embalaje_at', + 'envio_at', + 'entrada_manipulado_at' + ]; protected $casts = [ // "fecha_entrada_at" => "?datetime", - // "fecha_entrega_at" => "?datetime", // "fecha_entrega_change_at" => "?datetime", // "fecha_entrega_real_at" => "?datetime", // "fecha_entrega_real_warning" => "?bool", diff --git a/ci4/app/Entities/Produccion/OrdenTrabajoUserEntity.php b/ci4/app/Entities/Produccion/OrdenTrabajoUserEntity.php index 138c5d56..5a8b8d4e 100644 --- a/ci4/app/Entities/Produccion/OrdenTrabajoUserEntity.php +++ b/ci4/app/Entities/Produccion/OrdenTrabajoUserEntity.php @@ -8,7 +8,33 @@ class OrdenTrabajoUserEntity extends Entity { protected $datamap = []; protected $dates = ['created_at', 'updated_at', 'deleted_at']; - protected $casts = []; + protected array $casts = [ + "orden_trabajo_id" => "integer", + "user_created_id" => "?integer", + "user_update_id" => "?integer", + "inaplazable_revised_change_user_id" => "?integer", + "ferro_disponible_hecho_user_id" => "?integer", + "ferro_disponible_ok_user_id" => "?integer", + "ferro_entregado_user_id" => "?integer", + "pendiente_ferro_user_id" => "?integer", + "ferro_en_cliente_user_id" => "?integer", + "ferro_ok_user_id" => "?integer", + "interior_bn_user_id" => "?integer", + "interior_color_user_id" => "?integer", + "preparacion_interior_user_id" => "?integer", + "cubierta_user_id" => "?integer", + "plastificado_user_id" => "?integer", + "encuadernacion_user_id" => "?integer", + "corte_user_id" => "?integer", + "embalaje_user_id" => "?integer", + "entrada_manipulado_user_id" => "?integer", + "pre_formato_user_id" => "?integer", + "pre_lomo_user_id" => "?integer", + "pre_solapa_user_id" => "?integer", + "pre_codbarras_user_id" => "?integer", + "pre_imposicion_user_id" => "?integer", + "pre_imprimir_user_id" => "?integer" + ]; protected $attributes = [ "orden_trabajo_id"=> null, "user_created_id"=> null, diff --git a/ci4/app/Models/OrdenTrabajo/OrdenTrabajoDate.php b/ci4/app/Models/OrdenTrabajo/OrdenTrabajoDate.php index 0fb1ab3a..e99bc959 100644 --- a/ci4/app/Models/OrdenTrabajo/OrdenTrabajoDate.php +++ b/ci4/app/Models/OrdenTrabajo/OrdenTrabajoDate.php @@ -9,8 +9,8 @@ use CodeIgniter\Model; class OrdenTrabajoDate extends Model { protected $table = 'orden_trabajo_dates'; - protected $primaryKey = 'orden_trabajo_id'; - protected $useAutoIncrement = false; + protected $primaryKey = 'id'; + protected $useAutoIncrement = true; protected $returnType = OrdenTrabajoDateEntity::class; protected $useSoftDeletes = true; protected $protectFields = true; @@ -62,8 +62,8 @@ class OrdenTrabajoDate extends Model protected $allowCallbacks = true; protected $beforeInsert = []; protected $afterInsert = ["updateOrdenTrabajoUser"]; - protected $beforeUpdate = ["updateOrdenTrabajoUser"]; - protected $afterUpdate = []; + protected $beforeUpdate = []; + protected $afterUpdate = ["updateOrdenTrabajoUser"]; protected $beforeFind = []; protected $afterFind = []; protected $beforeDelete = []; @@ -106,7 +106,7 @@ class OrdenTrabajoDate extends Model $mapping = [ "fecha_encuadernado_at" => "encuadernacion_user_id", // "fecha_externo_at" => "null", - "fecha_impresion_at" => "null", + "fecha_impresion_at" => null, "pendiente_ferro_at" => "pendiente_ferro_user_id", "ferro_en_cliente_at" => "ferro_en_cliente_user_id", "ferro_ok_at" => "ferro_ok_user_id", @@ -124,9 +124,12 @@ class OrdenTrabajoDate extends Model foreach ($data as $key => $value) { if(isset($mapping[$key])){ if($value){ - $otUser->update($data["orden_trabajo_id"],[$mapping[$key] => $auth_user_id]); + $otUser->where('orden_trabajo_id',$data['orden_trabajo_id']) + ->set([$mapping[$key] => $auth_user_id]) + ->update(); } } } + return $data; } } diff --git a/ci4/app/Models/OrdenTrabajo/OrdenTrabajoUser.php b/ci4/app/Models/OrdenTrabajo/OrdenTrabajoUser.php index 2c56c3c6..1c4d239a 100644 --- a/ci4/app/Models/OrdenTrabajo/OrdenTrabajoUser.php +++ b/ci4/app/Models/OrdenTrabajo/OrdenTrabajoUser.php @@ -9,8 +9,8 @@ use CodeIgniter\Model; class OrdenTrabajoUser extends Model { protected $table = 'orden_trabajo_users'; - protected $primaryKey = 'orden_trabajo_id'; - protected $useAutoIncrement = false; + protected $primaryKey = 'id'; + protected $useAutoIncrement = true; protected $returnType = OrdenTrabajoUserEntity::class; protected $useSoftDeletes = true; protected $protectFields = true; @@ -46,31 +46,7 @@ class OrdenTrabajoUser extends Model protected bool $updateOnlyChanged = true; protected array $casts = [ - "orden_trabajo_id" => "integer", - "user_created_id" => "?integer", - "user_update_id" => "?integer", - "inaplazable_revised_change_user_id" => "?integer", - "ferro_disponible_hecho_user_id" => "?integer", - "ferro_disponible_ok_user_id" => "?integer", - "ferro_entregado_user_id" => "?integer", - "pendiente_ferro_user_id" => "?integer", - "ferro_en_cliente_user_id" => "?integer", - "ferro_ok_user_id" => "?integer", - "interior_bn_user_id" => "?integer", - "interior_color_user_id" => "?integer", - "preparacion_interior_user_id" => "?integer", - "cubierta_user_id" => "?integer", - "plastificado_user_id" => "?integer", - "encuadernacion_user_id" => "?integer", - "corte_user_id" => "?integer", - "embalaje_user_id" => "?integer", - "entrada_manipulado_user_id" => "?integer", - "pre_formato_user_id" => "?integer", - "pre_lomo_user_id" => "?integer", - "pre_solapa_user_id" => "?integer", - "pre_codbarras_user_id" => "?integer", - "pre_imposicion_user_id" => "?integer", - "pre_imprimir_user_id" => "?integer" + ]; protected array $castHandlers = []; diff --git a/ci4/app/Services/ProductionService.php b/ci4/app/Services/ProductionService.php index ff2a28d7..affa2e62 100644 --- a/ci4/app/Services/ProductionService.php +++ b/ci4/app/Services/ProductionService.php @@ -110,7 +110,6 @@ class ProductionService extends BaseService { $auth_user = auth()->user(); - $ot = new OrdenTrabajoEntity(); $ot_exists = $this->pedido->orden_trabajo(); if ($ot_exists) { return $ot_exists; @@ -122,11 +121,8 @@ class ProductionService extends BaseService "total_tirada" => $this->pedido->total_tirada, "total_precio" => $this->pedido->total_precio ]; - $ot->fill($data); - $this->otModel->save($ot); - $ot_id = $this->otModel->getInsertID(); - $ot->id = $ot_id; - $this->init($ot_id); + $id = $this->otModel->insert($data); + $this->init($id); $this->storeOrdenTrabajoUsers(); $this->storeOrdenTrabajoDates(); $this->storeAllTareas();