From f4ef87456876893cf195be300bd542c8bc7136f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaime=20Jim=C3=A9nez?= Date: Thu, 8 May 2025 20:16:40 +0200 Subject: [PATCH] =?UTF-8?q?a=C3=B1adido=20cambio=20de=20calidad=20en=20imp?= =?UTF-8?q?ortador=20erp=20antiguo.=20falta=20a=C3=B1adirlo=20a=20rama=20y?= =?UTF-8?q?=20bubok?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Presupuestos/Importadorpresupuestos.php | 9 +++ .../Presupuestos/Presupuestocliente.php | 16 +--- ...-190000_CreateSelectorCalidadImpresion.php | 76 +++++++++++++++++++ .../Seeds/SelectorCalidadImpresionSeeder.php | 55 ++++++++++++++ .../SelectorCalidadImpresion.php | 28 +++++++ .../SelectorCalidadImpresionModel.php | 71 +++++++++++++++++ .../Models/Presupuestos/ImportadorModel.php | 2 +- ci4/app/Services/PresupuestoService.php | 11 +++ 8 files changed, 254 insertions(+), 14 deletions(-) create mode 100755 ci4/app/Database/Migrations/2025-05-08-190000_CreateSelectorCalidadImpresion.php create mode 100644 ci4/app/Database/Seeds/SelectorCalidadImpresionSeeder.php create mode 100644 ci4/app/Entities/Configuracion/SelectorCalidadImpresion.php create mode 100644 ci4/app/Models/Configuracion/SelectorCalidadImpresionModel.php diff --git a/ci4/app/Controllers/Presupuestos/Importadorpresupuestos.php b/ci4/app/Controllers/Presupuestos/Importadorpresupuestos.php index 1974e6b8..5d78d9df 100755 --- a/ci4/app/Controllers/Presupuestos/Importadorpresupuestos.php +++ b/ci4/app/Controllers/Presupuestos/Importadorpresupuestos.php @@ -4,6 +4,7 @@ namespace App\Controllers\Presupuestos; use App\Models\Presupuestos\ImportadorModel; use App\Models\Clientes\ClienteModel; +use App\Services\PresupuestoService; use stdClass; class Importadorpresupuestos extends \App\Controllers\BaseResourceController @@ -484,6 +485,14 @@ class Importadorpresupuestos extends \App\Controllers\BaseResourceController $isColor = true; } + // se recalcula isColor y isHq + [$isColor, $isHq] = PresupuestoService::getCalidad( + 'admin', + null, + $isColor, + $isHq, + intval($this->request->getPost('tirada') ?? 0)); + $tapaCubierta = model('App\Models\Configuracion\TipoPresupuestoModel')-> select("is_tapa_dura")->where('id', $tipo_presupuesto_id)->first(); $tapaCubierta = $tapaCubierta->is_tapa_dura == 0 ? "tapaBlanda" : "tapaDura"; diff --git a/ci4/app/Controllers/Presupuestos/Presupuestocliente.php b/ci4/app/Controllers/Presupuestos/Presupuestocliente.php index 5db5ad6b..41395737 100755 --- a/ci4/app/Controllers/Presupuestos/Presupuestocliente.php +++ b/ci4/app/Controllers/Presupuestos/Presupuestocliente.php @@ -332,10 +332,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController $cliente_model = model(('App\Models\Clientes\ClienteModel')); $cliente = $cliente_model->find($cliente_id); - // Para POD siempre es HQ - if ($tirada[0] <= $POD && $isColor && !$cliente->forzar_rotativa_pod) { - $isHq = true; - } + $forzarRotativa = false; if ($tirada[0] <= $POD && $cliente->forzar_rotativa_pod) { $forzarRotativa = true; @@ -467,7 +464,6 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController //$reqData = $this->request->getPost(); $modelPapelGenerico = new PapelGenericoModel(); - $id = $reqData['id'] ?? 0; $cliente_id = $reqData['clienteId'] ?? -1; @@ -764,10 +760,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController $cliente_model = model(('App\Models\Clientes\ClienteModel')); $cliente = $cliente_model->find($cliente_id); - // Para POD siempre es HQ cuando es color - if ($tirada[0] <= $POD && $isColor && !$cliente->forzar_rotativa_pod) { - $isHq = true; - } + $forzarRotativa = false; if ($tirada[0] <= $POD && $cliente->forzar_rotativa_pod) { $forzarRotativa = true; @@ -2087,10 +2080,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController $cliente_model = model(('App\Models\Clientes\ClienteModel')); $cliente = $cliente_model->find($cliente_id); - // Para POD siempre es HQ - if ($tirada[$t] <= $POD && $isColor && !$cliente->forzar_rotativa_pod) { - $isHq = true; - } + $forzarRotativa = false; if ($tirada[$t] <= $POD && $cliente->forzar_rotativa_pod) { $forzarRotativa = true; diff --git a/ci4/app/Database/Migrations/2025-05-08-190000_CreateSelectorCalidadImpresion.php b/ci4/app/Database/Migrations/2025-05-08-190000_CreateSelectorCalidadImpresion.php new file mode 100755 index 00000000..ab484ab4 --- /dev/null +++ b/ci4/app/Database/Migrations/2025-05-08-190000_CreateSelectorCalidadImpresion.php @@ -0,0 +1,76 @@ +forge->addField([ + 'id' => [ + 'type' => 'INT', + 'constraint' => 11, + 'unsigned' => true, + 'auto_increment' => true, + ], + 'alias' => [ + 'type' => 'VARCHAR', + 'constraint' => 255, + ], + 'cliente_id' => [ + 'type' => 'INT', + 'constraint' => 10, + 'unsigned' => true, + 'null' => true, + ], + 'isPod' => [ + 'type' => 'TINYINT', + 'constraint' => 1, + 'default' => 0, + ], + 'input_isColor' => [ + 'type' => 'TINYINT', + 'constraint' => 1, + 'default' => 0, + ], + 'input_isHq' => [ + 'type' => 'TINYINT', + 'constraint' => 1, + 'default' => 0, + ], + 'output_isColor' => [ + 'type' => 'TINYINT', + 'constraint' => 1, + 'default' => 0, + ], + 'output_isHq' => [ + 'type' => 'TINYINT', + 'constraint' => 1, + 'default' => 0, + ], + 'created_at' => [ + 'type' => 'DATETIME', + 'null' => true, + ], + 'updated_at' => [ + 'type' => 'DATETIME', + 'null' => true, + ], + 'deleted_at' => [ + 'type' => 'DATETIME', + 'null' => true, + ], + ]); + + $this->forge->addKey('id', true); + $this->forge->addForeignKey('cliente_id', 'clientes', 'id', 'CASCADE', 'SET NULL'); + $this->forge->createTable('selector_calidad_impresion'); + } + + public function down() + { + $this->forge->dropTable('selector_calidad_impresion'); + } +} diff --git a/ci4/app/Database/Seeds/SelectorCalidadImpresionSeeder.php b/ci4/app/Database/Seeds/SelectorCalidadImpresionSeeder.php new file mode 100644 index 00000000..e647115b --- /dev/null +++ b/ci4/app/Database/Seeds/SelectorCalidadImpresionSeeder.php @@ -0,0 +1,55 @@ + 'admin', 'cliente_id' => null, 'isPod' => 0, 'input_isColor' => 0, 'input_isHq' => 0, 'output_isColor' => 0, 'output_isHq' => 0], + ['alias' => 'admin', 'cliente_id' => null, 'isPod' => 0, 'input_isColor' => 1, 'input_isHq' => 0, 'output_isColor' => 1, 'output_isHq' => 0], + ['alias' => 'admin', 'cliente_id' => null, 'isPod' => 0, 'input_isColor' => 0, 'input_isHq' => 1, 'output_isColor' => 0, 'output_isHq' => 1], + ['alias' => 'admin', 'cliente_id' => null, 'isPod' => 0, 'input_isColor' => 1, 'input_isHq' => 1, 'output_isColor' => 1, 'output_isHq' => 1], + ['alias' => 'admin', 'cliente_id' => null, 'isPod' => 1, 'input_isColor' => 0, 'input_isHq' => 0, 'output_isColor' => 0, 'output_isHq' => 0], + ['alias' => 'admin', 'cliente_id' => null, 'isPod' => 1, 'input_isColor' => 1, 'input_isHq' => 0, 'output_isColor' => 1, 'output_isHq' => 0], + ['alias' => 'admin', 'cliente_id' => null, 'isPod' => 1, 'input_isColor' => 0, 'input_isHq' => 1, 'output_isColor' => 0, 'output_isHq' => 1], + ['alias' => 'admin', 'cliente_id' => null, 'isPod' => 1, 'input_isColor' => 1, 'input_isHq' => 1, 'output_isColor' => 1, 'output_isHq' => 1], + + // cliente + ['alias' => 'cliente', 'cliente_id' => null, 'isPod' => 0, 'input_isColor' => 0, 'input_isHq' => 0, 'output_isColor' => 0, 'output_isHq' => 0], + ['alias' => 'cliente', 'cliente_id' => null, 'isPod' => 0, 'input_isColor' => 1, 'input_isHq' => 0, 'output_isColor' => 1, 'output_isHq' => 0], + ['alias' => 'cliente', 'cliente_id' => null, 'isPod' => 0, 'input_isColor' => 0, 'input_isHq' => 1, 'output_isColor' => 0, 'output_isHq' => 1], + ['alias' => 'cliente', 'cliente_id' => null, 'isPod' => 0, 'input_isColor' => 1, 'input_isHq' => 1, 'output_isColor' => 1, 'output_isHq' => 1], + ['alias' => 'cliente', 'cliente_id' => null, 'isPod' => 1, 'input_isColor' => 0, 'input_isHq' => 0, 'output_isColor' => 0, 'output_isHq' => 0], + ['alias' => 'cliente', 'cliente_id' => null, 'isPod' => 1, 'input_isColor' => 1, 'input_isHq' => 0, 'output_isColor' => 1, 'output_isHq' => 0], + ['alias' => 'cliente', 'cliente_id' => null, 'isPod' => 1, 'input_isColor' => 0, 'input_isHq' => 1, 'output_isColor' => 0, 'output_isHq' => 1], + ['alias' => 'cliente', 'cliente_id' => null, 'isPod' => 1, 'input_isColor' => 1, 'input_isHq' => 1, 'output_isColor' => 1, 'output_isHq' => 1], + + // importador-rama + ['alias' => 'importador-rama', 'cliente_id' => null, 'isPod' => 0, 'input_isColor' => 0, 'input_isHq' => 0, 'output_isColor' => 0, 'output_isHq' => 0], + ['alias' => 'importador-rama', 'cliente_id' => null, 'isPod' => 0, 'input_isColor' => 1, 'input_isHq' => 0, 'output_isColor' => 0, 'output_isHq' => 0], + ['alias' => 'importador-rama', 'cliente_id' => null, 'isPod' => 0, 'input_isColor' => 0, 'input_isHq' => 1, 'output_isColor' => 0, 'output_isHq' => 0], + ['alias' => 'importador-rama', 'cliente_id' => null, 'isPod' => 0, 'input_isColor' => 1, 'input_isHq' => 1, 'output_isColor' => 1, 'output_isHq' => 0], + ['alias' => 'importador-rama', 'cliente_id' => null, 'isPod' => 1, 'input_isColor' => 0, 'input_isHq' => 0, 'output_isColor' => 0, 'output_isHq' => 0], + ['alias' => 'importador-rama', 'cliente_id' => null, 'isPod' => 1, 'input_isColor' => 1, 'input_isHq' => 0, 'output_isColor' => 1, 'output_isHq' => 0], + ['alias' => 'importador-rama', 'cliente_id' => null, 'isPod' => 1, 'input_isColor' => 0, 'input_isHq' => 1, 'output_isColor' => 0, 'output_isHq' => 0], + ['alias' => 'importador-rama', 'cliente_id' => null, 'isPod' => 1, 'input_isColor' => 1, 'input_isHq' => 1, 'output_isColor' => 1, 'output_isHq' => 0], + + // importador-bubok + ['alias' => 'importador-bubok', 'cliente_id' => null, 'isPod' => 0, 'input_isColor' => 0, 'input_isHq' => 0, 'output_isColor' => 0, 'output_isHq' => 0], + ['alias' => 'importador-bubok', 'cliente_id' => null, 'isPod' => 0, 'input_isColor' => 1, 'input_isHq' => 0, 'output_isColor' => 1, 'output_isHq' => 1], + ['alias' => 'importador-bubok', 'cliente_id' => null, 'isPod' => 0, 'input_isColor' => 0, 'input_isHq' => 1, 'output_isColor' => 0, 'output_isHq' => 1], + ['alias' => 'importador-bubok', 'cliente_id' => null, 'isPod' => 0, 'input_isColor' => 1, 'input_isHq' => 1, 'output_isColor' => 1, 'output_isHq' => 1], + ['alias' => 'importador-bubok', 'cliente_id' => null, 'isPod' => 1, 'input_isColor' => 0, 'input_isHq' => 0, 'output_isColor' => 1, 'output_isHq' => 1], + ['alias' => 'importador-bubok', 'cliente_id' => null, 'isPod' => 1, 'input_isColor' => 1, 'input_isHq' => 0, 'output_isColor' => 1, 'output_isHq' => 1], + ['alias' => 'importador-bubok', 'cliente_id' => null, 'isPod' => 1, 'input_isColor' => 0, 'input_isHq' => 1, 'output_isColor' => 1, 'output_isHq' => 1], + ['alias' => 'importador-bubok', 'cliente_id' => null, 'isPod' => 1, 'input_isColor' => 1, 'input_isHq' => 1, 'output_isColor' => 1, 'output_isHq' => 1], + ]; + + $this->db->table('selector_calidad_impresion')->insertBatch($registros); + } +} diff --git a/ci4/app/Entities/Configuracion/SelectorCalidadImpresion.php b/ci4/app/Entities/Configuracion/SelectorCalidadImpresion.php new file mode 100644 index 00000000..c5dabbac --- /dev/null +++ b/ci4/app/Entities/Configuracion/SelectorCalidadImpresion.php @@ -0,0 +1,28 @@ + null, + 'cliente_id' => null, + 'isPod' => 0, + 'input_isColor' => 0, + 'input_isHq' => 0, + 'output_isColor' => 0, + 'output_isHq' => 0, + ]; + + protected $datamap = []; + protected $dates = ['created_at', 'updated_at', 'deleted_at']; + protected $casts = [ + 'isPod' => 'boolean', + 'input_isColor' => 'boolean', + 'input_isHq' => 'boolean', + 'output_isColor' => 'boolean', + 'output_isHq' => 'boolean', + ]; +} diff --git a/ci4/app/Models/Configuracion/SelectorCalidadImpresionModel.php b/ci4/app/Models/Configuracion/SelectorCalidadImpresionModel.php new file mode 100644 index 00000000..f0d54847 --- /dev/null +++ b/ci4/app/Models/Configuracion/SelectorCalidadImpresionModel.php @@ -0,0 +1,71 @@ +getVariable('POD')->value); + $isPoD = $tirada <= $pod ? 1 : 0; + $builder = $this->db + ->table($this->table . " t1") + ->select('output_isColor, output_isHq') + ->where('alias', $alias) + ->where('input_isColor', $isColor) + ->where('input_isHq', $isHq) + ->where('isPod', $isPoD) + ->where('deleted_at', null); + if ($cliente_id) { + $builder->where('cliente_id', $cliente_id); + } + + $output_isColor = 0; + $output_isHq = 0; + + $result = $builder->get()->getRowArray(); + if ($result){ + $output_isColor = $result['output_isColor']; + $output_isHq = $result['output_isHq']; + + return [ + 'status' => true, + 'isColor' => $output_isColor, + 'isHq' => $output_isHq, + ]; + } else { + return [ + 'status' => false, + 'isColor' => $output_isColor, + 'isHq' => $output_isHq, + ]; + } + } + +} diff --git a/ci4/app/Models/Presupuestos/ImportadorModel.php b/ci4/app/Models/Presupuestos/ImportadorModel.php index 76d01904..0a0a6ab5 100755 --- a/ci4/app/Models/Presupuestos/ImportadorModel.php +++ b/ci4/app/Models/Presupuestos/ImportadorModel.php @@ -41,7 +41,7 @@ class ImportadorModel extends \App\Models\BaseModel $db = \Config\Database::connect($this->DBGroup); // Conectar a olderp $builder = $db->table('pedido_libro t1') - ->select('t1.paginas, t1.tirada, t1.papel_formato_personalizado, + ->select('t1.paginas, t1.tirada, t1.papel_formato_personalizado, t1.customer_id, t1.papel_formato_ancho as papel_formato_personalizado_ancho, t1.papel_formato_alto as papel_formato_personalizado_alto, t2.ancho as papel_formato_ancho, t2.alto as papel_formato_alto, diff --git a/ci4/app/Services/PresupuestoService.php b/ci4/app/Services/PresupuestoService.php index b2871e58..a6a80356 100755 --- a/ci4/app/Services/PresupuestoService.php +++ b/ci4/app/Services/PresupuestoService.php @@ -2076,4 +2076,15 @@ class PresupuestoService extends BaseService return round($merma, 0); } + + + public static function getCalidad($alias, $cliente_id, $isColor, $isHq, $tirada) + { + $model = model('App\Models\Configuracion\SelectorCalidadImpresionModel'); + $calidad = $model->getCalidadImpresion($alias, $cliente_id, $isColor, $isHq, $tirada); + if ($calidad) { + return [$calidad['isColor'], $calidad['isHq']]; + } + return null; + } }