añadido cambio de calidad en importador erp antiguo. falta añadirlo a rama y bubok

This commit is contained in:
2025-05-08 20:16:40 +02:00
parent 6537e16a0a
commit f4ef874568
8 changed files with 254 additions and 14 deletions

View File

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

View File

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

View File

@ -0,0 +1,76 @@
<?php
namespace App\Database\Migrations;
use CodeIgniter\Database\Migration;
class CreateSelectorCalidadImpresion extends Migration
{
public function up()
{
$this->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');
}
}

View File

@ -0,0 +1,55 @@
<?php
namespace App\Database\Seeds;
use CodeIgniter\Database\Seeder;
class SelectorCalidadImpresionSeeder extends Seeder
{
public function run()
{
$registros = [
// admin
['alias' => '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);
}
}

View File

@ -0,0 +1,28 @@
<?php
namespace App\Entities\Configuracion;
use CodeIgniter\Entity\Entity;
class SelectorCalidadImpresion extends Entity
{
protected $attributes = [
'alias' => 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',
];
}

View File

@ -0,0 +1,71 @@
<?php
namespace App\Models\Configuracion;
use CodeIgniter\Model;
use App\Entities\Configuracion\SelectorCalidadImpresion;
class SelectorCalidadImpresionModel extends Model
{
protected $table = 'selector_calidad_impresion';
protected $primaryKey = 'id';
protected $returnType = SelectorCalidadImpresion::class;
protected $useSoftDeletes = true;
protected $allowedFields = [
'alias',
'cliente_id',
'isPod',
'input_isColor',
'input_isHq',
'output_isColor',
'output_isHq',
];
protected $useTimestamps = true;
protected $createdField = 'created_at';
protected $updatedField = 'updated_at';
protected $deletedField = 'deleted_at';
protected $validationRules = [];
protected $validationMessages = [];
protected $skipValidation = false;
public function getCalidadImpresion($alias = 'cliente', $cliente_id = null, $isColor = 0, $isHq = 0, $tirada = 100)
{
$pod = intval(model('App\Models\Configuracion\ConfigVariableModel')->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,
];
}
}
}

View File

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

View File

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