diff --git a/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php b/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php index 33f3924f..f5c70f9c 100644 --- a/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php +++ b/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php @@ -140,6 +140,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController $this->viewData['clienteList'] = $this->getClienteListItems($presupuestoEntity->cliente_id ?? null); $this->viewData['incReiList'] = array('incidencia' => lang('Presupuestos.incidencia'), 'reimpresion' => lang('Presupuestos.reimpresion'), 'sin_cargo' => lang('Presupuestos.sinCargo')); $this->viewData['paisList'] = $this->getPaisListItems(); + $this->viewData['papelFormatoList'] = $this->getPapelFormatoListItems($presupuestoEntity->papel_formato_id ?? null); $this->viewData['tipo_impresion_id'] = 4; // Cosido tapa blanda JJO diff --git a/ci4/app/Controllers/Tarifas/Tarifaencuadernacionlineas.php b/ci4/app/Controllers/Tarifas/Tarifaencuadernacionlineas.php index 416776b0..256db11c 100644 --- a/ci4/app/Controllers/Tarifas/Tarifaencuadernacionlineas.php +++ b/ci4/app/Controllers/Tarifas/Tarifaencuadernacionlineas.php @@ -257,6 +257,7 @@ class Tarifaencuadernacionlineas extends \App\Controllers\GoBaseResourceControll Field::inst('updated_at'), Field::inst('is_deleted'), Field::inst('deleted_at'), + Field::inst('dimensiones_id'), ) ->validator(function ($editor, $action, $data) { @@ -266,6 +267,7 @@ class Tarifaencuadernacionlineas extends \App\Controllers\GoBaseResourceControll if ($data['data'][$pkey]['is_deleted'] != 1) { $process_data['paginas_libro_min'] = $data['data'][$pkey]['paginas_libro_min']; $process_data['paginas_libro_max'] = $data['data'][$pkey]['paginas_libro_max']; + $process_data['dimensiones_id'] = $data['data'][$pkey]['dimensiones_id']; $response = $this->model->checkIntervals($process_data, $pkey, $data['data'][$pkey]['tirada_encuadernacion_id']); // No se pueden duplicar valores al crear o al editar if (!empty($response)) { diff --git a/ci4/app/Controllers/Tarifas/Tarifasencuadernacion.php b/ci4/app/Controllers/Tarifas/Tarifasencuadernacion.php index 96665d10..a0210a38 100644 --- a/ci4/app/Controllers/Tarifas/Tarifasencuadernacion.php +++ b/ci4/app/Controllers/Tarifas/Tarifasencuadernacion.php @@ -10,6 +10,7 @@ use App\Entities\Tarifas\TarifaEncuadernacionEntity; use App\Models\Tarifas\TarifaEncuadernacionModel; use App\Models\Compras\ProveedorModel; use App\Models\Compras\ProveedorTipoModel; +use App\Models\Tarifas\TarifaEncuadernacionDimensionesModel; class Tarifasencuadernacion extends \App\Controllers\GoBaseResourceController @@ -221,6 +222,7 @@ class Tarifasencuadernacion extends \App\Controllers\GoBaseResourceController //JJO $this->viewData['proveedores'] = $this->getProveedores(); + $this->viewData['dimensiones'] = $this->getDimensiones(); return $this->displayForm(__METHOD__, $id); } // end function edit(...) @@ -311,4 +313,14 @@ class Tarifasencuadernacion extends \App\Controllers\GoBaseResourceController $tipoId = $provTipoModel->getTipoId("Encuadernacion"); return $provModel->getProvList($tipoId); } + + private function getDimensiones(){ + $dimensionModel = new TarifaEncuadernacionDimensionesModel(); + + $dimensiones = $dimensionModel->getDimensiones(); + foreach($dimensiones as $dim){ + $dim->label= lang("TarifaEncuadernacionLineas." . $dim->label); + } + return $dimensiones; + } } diff --git a/ci4/app/Controllers/Test.php b/ci4/app/Controllers/Test.php index 99036a03..580b8843 100644 --- a/ci4/app/Controllers/Test.php +++ b/ci4/app/Controllers/Test.php @@ -17,7 +17,20 @@ class Test extends BaseController public function index() { - var_dump($this->get_tarifas_encuadernacion(4, true)); + echo '
'; + $this->get_dimensiones_enc(); + echo ''; + } + + public function get_dimensiones_enc(){ + $dimensionModel = model('App\Models\Tarifas\TarifaEncuadernacionDimensionesModel'); + + $dimensiones = $dimensionModel->getDimensiones(); + var_dump($dimensiones); + foreach($dimensiones as $dim){ + $dim->label= lang("TarifaEncuadernacionLineas." . $dim->label); + } + var_dump($dimensiones); } diff --git a/ci4/app/Entities/Tarifas/TarifaEncuadernacionDimensionesEntity.php b/ci4/app/Entities/Tarifas/TarifaEncuadernacionDimensionesEntity.php new file mode 100644 index 00000000..a16f6573 --- /dev/null +++ b/ci4/app/Entities/Tarifas/TarifaEncuadernacionDimensionesEntity.php @@ -0,0 +1,24 @@ + null, + "keyword" => "", + "descripcion" => "", + "ancho_min" => 0, + "ancho_max" => 0, + "alto_min" => 0, + "alto_max" => 0, + ]; + protected $casts = [ + "id" => "int", + "ancho_min" => "float", + "ancho_max" => "float", + "alto_min" => "float", + "alto_max" => "float", + ]; +} diff --git a/ci4/app/Language/en/Presupuestos.php b/ci4/app/Language/en/Presupuestos.php index aa954702..b676c730 100644 --- a/ci4/app/Language/en/Presupuestos.php +++ b/ci4/app/Language/en/Presupuestos.php @@ -142,6 +142,8 @@ return [ 'addLineaPresupuesto' => 'Add line...', + 'serviciosEncDefault' => 'Default binding services', + 'validation' => [ 'decimal' => 'The {field} field must contain a decimal number.', 'integer' => 'The {field} field must contain an integer.', diff --git a/ci4/app/Language/en/TarifaEncuadernacionLineas.php b/ci4/app/Language/en/TarifaEncuadernacionLineas.php index 9194f806..47ae5942 100644 --- a/ci4/app/Language/en/TarifaEncuadernacionLineas.php +++ b/ci4/app/Language/en/TarifaEncuadernacionLineas.php @@ -11,6 +11,11 @@ return [ 'precioUnidad' => 'Price Unit', 'paginasMax' => 'Max Pages', 'paginasMin' => 'Min Pages', + 'dimensiones' => 'Dimensions', + 'menor_a5' =>'Less than A5', + 'entre_a5_a4' =>'Between A5 and A4', + 'mayor_a4' =>'Greater than A4', + 'por_defecto' =>'Generic', 'moduleExplanation' => 'The number of pages indicated in this section refers per copy, not to the total of the order.', 'margen' => 'Margin', 'validation' => [ diff --git a/ci4/app/Language/es/Presupuestos.php b/ci4/app/Language/es/Presupuestos.php index f233802d..e1cc95d0 100644 --- a/ci4/app/Language/es/Presupuestos.php +++ b/ci4/app/Language/es/Presupuestos.php @@ -167,6 +167,7 @@ return [ // Servicios 'precioUnidad' => 'Precio unitario', 'precioTotal' => 'Precio total', + 'serviciosEncDefault' => 'Servicios Enc. por defecto', 'validation' => [ diff --git a/ci4/app/Language/es/TarifaEncuadernacionLineas.php b/ci4/app/Language/es/TarifaEncuadernacionLineas.php index 48ee2062..3f79e50e 100644 --- a/ci4/app/Language/es/TarifaEncuadernacionLineas.php +++ b/ci4/app/Language/es/TarifaEncuadernacionLineas.php @@ -13,6 +13,11 @@ return [ 'precioUnidad' => 'Precio Unidad', 'paginasMax' => 'Páginas Max', 'paginasMin' => 'Páginas Min', + 'dimensiones' => 'Dimensiones', + 'menor_a5' =>'Menor A5', + 'entre_a5_a4' =>'Entre A5 y A4', + 'mayor_a4' =>'Mayor A4', + 'por_defecto' =>'Genérico', 'moduleExplanation' => 'El número de páginas reflejado en este apartado se refiere por ejemplar, no al total del pedido', 'margen' => 'Margen', 'validation' => [ diff --git a/ci4/app/Models/Presupuestos/PresupuestoEncuadernacionesModel.php b/ci4/app/Models/Presupuestos/PresupuestoEncuadernacionesModel.php index 94142246..9a26682b 100644 --- a/ci4/app/Models/Presupuestos/PresupuestoEncuadernacionesModel.php +++ b/ci4/app/Models/Presupuestos/PresupuestoEncuadernacionesModel.php @@ -46,10 +46,23 @@ class PresupuestoEncuadernacionesModel extends \App\Models\GoBaseModel - public function initPresupuesto($tipoPresupuesto, $solapas){ + public function initPresupuesto($id_presupuesto,$tipoPresupuesto, $solapas){ $model = model('App\Models\Presupuestos\TipoPresupuestoTarifaEncuadernacionModel'); $tarifas_ids = $model->get_tarifas($tipo_presupuesto,$solapas); + + $modelTarifa = model('App\Models\Tarifas\TarifaEncuadernacionModel'); + + foreach($tarifas_ids as $tarifa){ + /* $data = [ + 'id' => new RawSql('DEFAULT'), + 'title' => 'My title', + 'name' => 'My Name', + 'date' => '2022-01-01', + 'last_update' => new RawSql('CURRENT_TIMESTAMP()'), + ]; + $modelTarifa->getMejorPrecio($tirada, $paginas)*/ + } } public function delete($presupuesto_id){ diff --git a/ci4/app/Models/Tarifas/TarifaEncuadernacionDimensionesModel.php b/ci4/app/Models/Tarifas/TarifaEncuadernacionDimensionesModel.php new file mode 100644 index 00000000..2ed69bd0 --- /dev/null +++ b/ci4/app/Models/Tarifas/TarifaEncuadernacionDimensionesModel.php @@ -0,0 +1,46 @@ +db + ->table($this->table . " t1") + ->select("t1.id AS value, t1.keyword AS label") + ->orderBy('t1.id', 'asc'); + + return $builder->get()->getResultObject(); + } +} diff --git a/ci4/app/Models/Tarifas/TarifaEncuadernacionLineaModel.php b/ci4/app/Models/Tarifas/TarifaEncuadernacionLineaModel.php index ecabd071..f32ac9bf 100644 --- a/ci4/app/Models/Tarifas/TarifaEncuadernacionLineaModel.php +++ b/ci4/app/Models/Tarifas/TarifaEncuadernacionLineaModel.php @@ -13,10 +13,11 @@ class TarifaEncuadernacionLineaModel extends \App\Models\GoBaseModel protected $useAutoIncrement = true; const SORTABLE = [ - 0 => "t1.paginas_libro_min", - 1 => "t1.paginas_libro_max", - 2 => "t1.precio_min", - 3 => "t1.precio_max", + 0 => "t1.dimensiones_id", + 1 => "t1.paginas_libro_min", + 2 => "t1.paginas_libro_max", + 3 => "t1.precio_min", + 4 => "t1.precio_max", ]; protected $allowedFields = [ @@ -117,13 +118,16 @@ class TarifaEncuadernacionLineaModel extends \App\Models\GoBaseModel $builder = $this->db ->table($this->table . " t1") ->select( - "t1.id AS id, t1.tirada_encuadernacion_id AS tirada_encuadernacion_id, t1.paginas_libro_min AS paginas_libro_min, t1.paginas_libro_max AS paginas_libro_max, t1.precio_min AS precio_min, t1.precio_max AS precio_max, t1.tirada_min AS tirada_min, t1.tirada_max AS tirada_max, t1.margen AS margen, t2.id AS tarifa_encuadernacion" + "t1.id AS id, t1.tirada_encuadernacion_id AS tirada_encuadernacion_id, t1.paginas_libro_min AS paginas_libro_min, t1.paginas_libro_max AS paginas_libro_max, t1.precio_min AS precio_min, t1.precio_max AS precio_max, t1.tirada_min AS tirada_min, + t1.tirada_max AS tirada_max, t1.margen AS margen, t2.id AS tarifa_encuadernacion, t3.id AS dimensiones_id, t3.ancho_min, t3.ancho_max, , t3.alto_min, t3.alto_max" ); //JJO $builder->where('tirada_encuadernacion_id', $tirada_encuadernacion_id); $builder->where("t1.is_deleted", 0); $builder->join("tarifa_encuadernacion_tiradas t2", "t1.tirada_encuadernacion_id = t2.id", "left"); + $builder->join("tarifa_encuadernacion_dimensiones t3", "t1.dimensiones_id = t3.id", "left"); + return empty($search) @@ -151,7 +155,7 @@ class TarifaEncuadernacionLineaModel extends \App\Models\GoBaseModel $rows = $this->db ->table($this->table) - ->select("id, paginas_libro_min, paginas_libro_max") + ->select("id, paginas_libro_min, paginas_libro_max, dimensiones_id") ->where("is_deleted", 0) ->where("tirada_encuadernacion_id", $tirada_encuadernacion_id) ->get()->getResultObject(); @@ -163,9 +167,11 @@ class TarifaEncuadernacionLineaModel extends \App\Models\GoBaseModel continue; } } - if(check_overlap(floatval($data["paginas_libro_min"]), floatval($data["paginas_libro_max"]), - $row->paginas_libro_min, $row->paginas_libro_max)){ - return lang('TarifaEncuadernacionLineas.validation.error_paginas_overlap'); + if($data['dimensiones_id'] == $row->dimensiones_id){ + if(check_overlap(floatval($data["paginas_libro_min"]), floatval($data["paginas_libro_max"]), + $row->paginas_libro_min, $row->paginas_libro_max)){ + return lang('TarifaEncuadernacionLineas.validation.error_paginas_overlap'); + } } } diff --git a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosLibroItems.php b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosLibroItems.php index d53937ef..7e71d4f2 100644 --- a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosLibroItems.php +++ b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosLibroItems.php @@ -95,7 +95,7 @@ - + @@ -136,6 +136,7 @@ +
| ID | += lang('TarifaEncuadernacionLineas.dimensiones') ?> | = lang('TarifaEncuadernacionLineas.paginasMin') ?> | = lang('TarifaEncuadernacionLineas.precioMax') ?> | = lang('TarifaEncuadernacionLineas.paginasMax') ?> | @@ -171,7 +173,13 @@ }, table : "#tableOfTarifaencuadernacionlineas", idSrc: 'id', - fields: [ { + fields: [ + {name: "id"}, + { + name: "dimensiones_id", + "type": "select" + }, + { name: "paginas_libro_min" }, { name: "precio_max" @@ -194,6 +202,9 @@ ] } ); + // Generación de la lista de proveedores (id, nombre) para encuadernación + const dimensionesList = ; + editor.field( 'dimensiones_id' ).update( dimensionesList ); editor.on( 'preSubmit', function ( e, d, type ) { if ( type === 'create'){ @@ -243,6 +254,13 @@ async: true, }), columns: [ + { 'data': 'id' }, + { 'data': 'dimensiones_id', + render: function(data, type, row, meta) { + var value = dimensionesList.find(element => element.value === data); + return value['label']; + }, + }, { 'data': 'paginas_libro_min' }, { 'data': 'precio_max' }, { 'data': 'paginas_libro_max' }, @@ -401,6 +419,7 @@ // Tabla de tiradas var theTable2 = $('#tableOfTarifaencuadernaciontiradas').DataTable( { + draw:1, serverSide: true, processing: true, autoWidth: true,
|---|