fix store ot

This commit is contained in:
amazuecos
2025-03-26 23:29:19 +01:00
parent 09e8af15cc
commit e44421fb4d
7 changed files with 466 additions and 44 deletions

View File

@ -0,0 +1,222 @@
<?php
namespace App\Database\Migrations;
use CodeIgniter\Database\Migration;
use CodeIgniter\Database\RawSql;
class OrdenTrabajoUsersTable extends Migration
{
protected array $USER_COLUMNS = [
'id' => [
'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');
}
}

View File

@ -0,0 +1,174 @@
<?php
namespace App\Database\Migrations;
use CodeIgniter\Database\Migration;
use CodeIgniter\Database\RawSql;
class OrdenTrabajoDatesTable extends Migration
{
protected array $COLUMNS = [
'id' => [
'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');
}
}

View File

@ -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",

View File

@ -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,

View File

@ -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;
}
}

View File

@ -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 = [];

View File

@ -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();