<"mt-4 mb-3"p>',
ajax : $.fn.dataTable.pipeline( {
url: '= route_to('dataTableOfTarifaManipuladoLineas') ?>',
data: {
diff --git a/ci4/app/Views/themes/vuexy/form/tarifas/preimpresion/viewTarifapreimpresionForm.php b/ci4/app/Views/themes/vuexy/form/tarifas/preimpresion/viewTarifapreimpresionForm.php
index 8eb895fa..a3f3f0dc 100644
--- a/ci4/app/Views/themes/vuexy/form/tarifas/preimpresion/viewTarifapreimpresionForm.php
+++ b/ci4/app/Views/themes/vuexy/form/tarifas/preimpresion/viewTarifapreimpresionForm.php
@@ -1,4 +1,5 @@
= $this->include("themes/_commonPartialsBs/select2bs5") ?>
+= $this->include("themes/_commonPartialsBs/datatables") ?>
= $this->include("themes/_commonPartialsBs/sweetalert") ?>
= $this->extend('themes/vuexy/main/defaultlayout') ?>
= $this->section("content") ?>
@@ -26,25 +27,6 @@
-
-
-
-
-
-
- = view("themes/vuexy/components/forms/tarifa_maquinas", ["id" => "tarifa_maquina_component", "tarifaId" => $tarifapreimpresionEntity?->id]) ?>
-
-
-
-
-
-= $this->endSection() ?>
-= $this->section("additionalExternalJs") ?>
-
= $this->endSection() ?>
\ No newline at end of file
diff --git a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/presupuestoAdminEdit.js b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/presupuestoAdminEdit.js
index 5cf763c8..efd004f7 100644
--- a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/presupuestoAdminEdit.js
+++ b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/presupuestoAdminEdit.js
@@ -367,6 +367,8 @@ class PresupuestoAdminEdit {
}, 0);
+ this.calcularSolapas();
+
// Funciones para detectar cambios en el formulario
this.#checkChangesPresupuesto();
$('#bc-save').on("click", function () {
@@ -387,15 +389,13 @@ class PresupuestoAdminEdit {
let cantidad_total = 0;
- // TO-DO
- /*
- tableLineasPresupuesto.rows().every(function (rowIdx, tableLoop, rowLoop) {
+ this.lineasPresupuesto.table.rows().every(function (rowIdx, tableLoop, rowLoop) {
var rowData = this.data();
if (rowData.row_id != 'lp_cubierta' && rowData.row_id != 'lp_sobrecubierta' && rowData.row_id != 'lp_guardas')
cantidad_total += parseInt(rowData.paginas)
})
htmlString = ''
-
+
if (cantidad_total != parseInt($('#paginas').val())) {
htmlString = `
@@ -408,8 +408,64 @@ class PresupuestoAdminEdit {
`
`;
- }
- $('#divAlarmasLineasPresupuesto').html(htmlString)*/
+ }
+ $('#divAlarmasLineasPresupuesto').html(htmlString)
+ }
+
+
+ getPaginasColor() {
+
+ let paginasColor = 0;
+ this.lineasPresupuesto.table.rows().every(function (rowIdx, tableLoop, rowLoop) {
+ var rowData = this.data();
+ if (rowData.row_id === 'lp_color' || rowData.row_id === 'lp_colorhq') {
+ return parseInt(rowData.paginas);
+ }
+ if (rowData.row_id === 'lp_rot_color') {
+ return parseInt(rowData.numPagColor);
+ }
+ });
+ return paginasColor;
+ }
+
+ calcularSolapas() {
+
+ let anchoTotal = 2*this.getDimensionLibro().ancho;
+ let maxSolapas = 120;
+
+ let mano = 0;
+ this.lineasPresupuesto.table.rows().every(function (rowIdx, tableLoop, rowLoop) {
+ var rowData = this.data();
+ if (rowData.row_id != 'lp_cubierta' || rowData.row_id === 'lp_sobrecubierta'
+ || rowData.row_id === 'lp_guardas' || rowData.row_id === 'lp_faja'
+ ) {
+ mano += parseInt(rowData.mano);
+ }
+ });
+
+ if (mano > 0) {
+ anchoTotal += 6 + 5; // dobleces + sangre
+ maxSolapas = Math.min(Math.floor((865-anchoTotal)/2), 0.75*this.getDimensionLibro().ancho);
+ }
+ else{
+ maxSolapas = 0.75*this.getDimensionLibro().ancho;
+ }
+ if($('#solapas_ancho').length>0 && $('#solapas_ancho').attr('max') != maxSolapas){
+ $('#solapas_ancho').attr('max', maxSolapas);
+ $('#solapas_ancho').trigger('change');
+ $('#solapas_ancho').closest('.mb-1').find('.form-text').text('Entre 60 y ' + maxSolapas + ' mm');
+ }
+ if($('#solapas_ancho_sobrecubierta').length>0 && $('#solapas_ancho_sobrecubierta').attr('max') != maxSolapas){
+ $('#solapas_ancho_sobrecubierta').attr('max', maxSolapas);
+ $('#solapas_ancho_sobrecubierta').trigger('change');
+ $('#solapas_ancho_sobrecubierta').closest('.mb-1').find('.form-text').text('Entre 60 y ' + maxSolapas + ' mm');
+ }
+ if($('#solapas_ancho_faja').length>0 && $('#solapas_ancho_faja').attr('max') != maxSolapas){
+ $('#solapas_ancho_faja').attr('max', maxSolapas);
+ $('#solapas_ancho_faja').trigger('change');
+ $('#solapas_ancho_faja').closest('.mb-1').find('.form-text').text('Entre 60 y ' + maxSolapas + ' mm');
+ }
+ console.log('maxSolapas', maxSolapas);
}
getDimensionLibro() {
diff --git a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/datosLibro.js b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/datosLibro.js
index 8bd7c1bc..b14e3026 100644
--- a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/datosLibro.js
+++ b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/datosLibro.js
@@ -95,6 +95,24 @@ class DatosLibro {
this.paginas.on('change', this.changePaginas.bind(this));
this.tirada.on('change', this.changeTirada.bind(this));
+
+ this.anchoSolapasCubierta.on('focusout', this.checkSolapasMax.bind(this));
+ this.anchoSolapasSobrecubierta.on('focusout', this.checkSolapasMax.bind(this));
+ }
+ }
+
+ checkSolapasMax(event) {
+ const el = event.target;
+ if (el.value != "") {
+ if (parseInt(el.value) < parseInt(el.min)) {
+ el.value = el.min;
+ }
+ if (parseInt(el.value) > parseInt(el.max)) {
+ el.value = el.max;
+ }
+ }
+ else{
+ el.value = el.min;
}
}
@@ -172,8 +190,8 @@ class DatosLibro {
this.checkPaginasPresupuesto();
$(document).trigger('update-presupuesto', {
- update_lineas : true,
- update_servicios : true,
+ update_lineas: true,
+ update_servicios: true,
update_envios: true,
update_resumen: true,
update_tiradas_alternativas: true
@@ -199,10 +217,10 @@ class DatosLibro {
$("#label_papelFormatoId").text(
window.language.Presupuestos.papelFormatoId + '*');
}
-
+
$(document).trigger('update-presupuesto', {
- update_lineas : true,
- update_servicios : false,
+ update_lineas: true,
+ update_servicios: false,
update_envios: false,
update_resumen: false,
update_tiradas_alternativas: false
@@ -225,20 +243,20 @@ class DatosLibro {
}, 100);
// para que se actualice el comparador
- $('paginas').trigger('change');
+ this.updateComparador();
}
- changeAnchoSolapasCubierta(){
+ changeAnchoSolapasCubierta() {
- if(this.checkSolapasGrandes('cubierta')){
+ if (this.checkSolapasGrandes('cubierta')) {
$(document).trigger('add-servicio-lineas', 'solapas_grandes_cubierta');
}
- else{
+ else {
$(document).trigger('remove-servicio-lineas', 'solapas_grandes_cubierta');
}
// para que se actualice el comparador
- $('paginas').trigger('change');
+ this.updateComparador();
}
@@ -259,39 +277,39 @@ class DatosLibro {
}
- changeAnchoSolapasSobrecubierta(){
+ changeAnchoSolapasSobrecubierta() {
- if(this.checkSolapasGrandes('cubierta')){
+ if (this.checkSolapasGrandes('cubierta')) {
$(document).trigger('add-servicio-lineas', 'solapas_grandes_sobrecubierta');
}
- else{
+ else {
$(document).trigger('remove-servicio-lineas', 'solapas_grandes_sobrecubierta');
}
// para que se actualice el comparador
- $('paginas').trigger('change');
+ this.updateComparador();
}
checkSolapasGrandes(elemento) {
-
+
const ancho_libro = 2 * this.getDimensionLibro().ancho;
let ancho_solapas = 0.0;
let lomo = 0.0;
- if(elemento == 'cubierta'){
- ancho_solapas = 2 * parseFloat($('solapas_ancho').val());
- lomo = parseFloat($('lomo_cubierta').val());
+ if (elemento == 'cubierta') {
+ ancho_solapas = 2 * parseFloat($('solapas_ancho').val());
+ lomo = parseFloat($('lomo_cubierta').val());
}
- else if (elemento == 'sobrecubierta'){
- ancho_solapas = 2 * parseFloat($('solapas_ancho_sobrecubierta').val());
- lomo = parseFloat($('lomo_sobrecubierta').val());
+ else if (elemento == 'sobrecubierta') {
+ ancho_solapas = 2 * parseFloat($('solapas_ancho_sobrecubierta').val());
+ lomo = parseFloat($('lomo_sobrecubierta').val());
}
- else
+ else
return false;
- if (ancho_libro + ancho_solapas + lomo > 630)
+ if (ancho_libro + ancho_solapas + lomo > 630)
return true;
- else
+ else
return false
}
@@ -320,35 +338,54 @@ class DatosLibro {
$('#compPaginasNegrohq').trigger('change');
}
-
+
$(document).trigger('update-presupuesto', {
- update_lineas : true,
- update_servicios : true,
+ update_lineas: true,
+ update_servicios: true,
update_envios: true,
update_resumen: true,
update_tiradas_alternativas: true
});
-
+
}
}
+ updateComparador() {
+
+ if ($("#compPaginasNegro").hasClass('d-none')) {
+ $('#compPaginasNegrohq').trigger('change');
+ }
+ else {
+ $('#compPaginasNegro').trigger('change');
+ }
+ $('#compCarasCubierta').trigger('change');
+
+ if ($('#compSobrecubierta').length) {
+ $('#compSobrecubierta').trigger('change');
+ }
+ if ($('#compCarasGuardas').length) {
+ $('#compCarasGuardas').trigger('change');
+ }
+ }
changeTirada(update_tiradas_alternativas = true) {
- this.calcular_mermas()
+ this.calcular_mermas();
+
+ this.updateComparador();
const url2 = window.location.href;
const url_parts2 = url2.split('/');
if (url_parts2[url_parts2.length - 2] == 'edit') {
$(document).trigger('update-presupuesto', {
- update_lineas : true,
- update_servicios : false,
+ update_lineas: true,
+ update_servicios: false,
update_envios: false,
update_resumen: false,
update_tiradas_alternativas: false
});
-
+
$(document).trigger('ckeck-lineas-envios');
}
}
diff --git a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/envios.js b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/envios.js
index e4126ce3..4217cc10 100644
--- a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/envios.js
+++ b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/envios.js
@@ -108,7 +108,7 @@ class Envios {
$("#costeEnvios").text(total.toFixed(2) + "€" || "0€");
- self.check_unidades_enviadas();
+ self.check_unidades_enviadas(null, self.recogerTaller.prop('checked'));
}
});
@@ -169,11 +169,10 @@ class Envios {
self.modalYesNo.init();
self.modalYesNo.show(() => {
self.table.clear().draw();
- self.check_unidades_enviadas();
+ self.check_unidades_enviadas(null, true);
self.recogerTaller.prop('checked', true);
- self.modalYesNo.hide();
self.insertarEnvio.addClass('d-none');
-
+ self.modalYesNo.hide();
});
}
else {
@@ -641,7 +640,11 @@ class Envios {
}
}
- check_unidades_enviadas() {
+ check_unidades_enviadas(event, recogerTaller = null) {
+
+ if(recogerTaller === null) {
+ recogerTaller = this.recogerTaller.prop('checked');
+ }
let cantidad_total = 0
this.table.rows().every(function (rowIdx, tableLoop, rowLoop) {
@@ -650,7 +653,7 @@ class Envios {
const tirada = parseInt($('#tirada').val());
let htmlString = '';
- if (cantidad_total < tirada && this.recogerTaller.prop('checked') === false) {
+ if (cantidad_total < tirada && recogerTaller === false) {
htmlString = `
diff --git a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/servicios.js b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/servicios.js
index bdb46ae2..c7e25b1b 100644
--- a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/servicios.js
+++ b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/servicios.js
@@ -320,7 +320,9 @@ class ServiciosAcabado {
},
{
data: 'precio_total', render: function (data, type, row) {
- const total = parseFloat(data).toLocaleString('es-ES', { minimumFractionDigits: 2, maximumFractionDigits: 2 });
+ let total = 0;
+ if(data !==undefined)
+ total = parseFloat(data).toLocaleString('es-ES', { minimumFractionDigits: 2, maximumFractionDigits: 2 });
return `
`;
}
@@ -644,9 +646,11 @@ class ServiciosPreimpresion {
{
data: 'precio', render: function (data, type, row) {
- const total = parseFloat(data).toLocaleString('es-ES', { minimumFractionDigits: 2, maximumFractionDigits: 2 });
+ let total = 0;
+ if(data !==undefined)
+ total = parseFloat(data).toLocaleString('es-ES', { minimumFractionDigits: 2, maximumFractionDigits: 2 });
return `
- `;
+ `;
}
},
@@ -675,6 +679,22 @@ class ServiciosPreimpresion {
});
+ $('#tableOfServiciosPreimpresion tbody').on('change', '.totales-preimpresion', function () {
+
+ let input = $(this);
+ let tarifa_id = input.attr('id').replace('precio_preimpresion_', '');
+ let newValue = parseFloat(input.val().replace(/\./g, '').replace(',', '.')) || 0;
+
+ let table = $('#tableOfServiciosPreimpresion').DataTable();
+ let row = table.rows().data().toArray().find(r => r.tarifa_id == tarifa_id);
+
+ if (row) {
+ row.precio = newValue;
+ table.row($(this).closest('tr')).data(row).draw(false);
+ self.check_serv_preimpresion_error();
+ }
+ });
+
$(document).on('click', '.btn-delete-servpreimpresion', function () {
const rowId = $(this).closest('td').parent()[0].sectionRowIndex;
@@ -743,7 +763,7 @@ class ServiciosPreimpresion {
const rows = this.table.rows().data().toArray();
for (let i = 0; i < rows.length; i++) {
- if (rows[i]['precio_total'] == 0) {
+ if (rows[i]['precio'] == 0) {
error = true;
break;
}
@@ -860,7 +880,9 @@ class ServiciosEncuadernacion {
},
{
data: 'precio_total', render: function (data, type, row) {
- const total = parseFloat(data).toLocaleString('es-ES', { minimumFractionDigits: 2, maximumFractionDigits: 2 });
+ let total = 0;
+ if(data !==undefined)
+ total = parseFloat(data).toLocaleString('es-ES', { minimumFractionDigits: 2, maximumFractionDigits: 2 });
return `
`;
}
@@ -1287,9 +1309,13 @@ class ServiciosManipulado {
},
{
data: 'precio_total', render: function (data, type, row) {
- const total = parseFloat(data).toLocaleString('es-ES', { minimumFractionDigits: 2, maximumFractionDigits: 2 });
+ let total = 0;
+ if(data !==undefined)
+ total = parseFloat(data).toLocaleString('es-ES', { minimumFractionDigits: 2, maximumFractionDigits: 2 });
+ else
+ data = 0;
return `
- `;
+ `;
}
},
{ data: 'margen' },
@@ -1315,6 +1341,21 @@ class ServiciosManipulado {
}
});
+ $('#tableOfServiciosManipulado tbody').on('change', '.totales-manipulado', function () {
+ let input = $(this);
+ let tarifa_id = input.attr('id').replace('precio_manipulado_', '');
+ let newValue = parseFloat(input.val().replace(/\./g, '').replace(',', '.')) || 0;
+
+ let table = $('#tableOfServiciosManipulado').DataTable();
+ let row = table.rows().data().toArray().find(r => r.tarifa_id == tarifa_id);
+
+ if (row) {
+ row.precio_total = newValue;
+ table.row($(this).closest('tr')).data(row).draw(false);
+ self.check_serv_manipulado_error();
+ }
+ });
+
this.addServicio.on('click', this.addServicioManipulado.bind(this));
$(document).on('click', '.btn-delete-servmanipulado', function () {
@@ -1534,9 +1575,11 @@ class ServiciosExtra {
{
data: 'precio', render: function (data, type, row) {
- const total = parseFloat(data).toLocaleString('es-ES', { minimumFractionDigits: 2, maximumFractionDigits: 2 });
+ let total = 0;
+ if(data !==undefined)
+ total = parseFloat(data).toLocaleString('es-ES', { minimumFractionDigits: 2, maximumFractionDigits: 2 });
return `
- `;
+ `;
}
},
@@ -1563,6 +1606,22 @@ class ServiciosExtra {
}
});
+ $('#tableOfServiciosExtra tbody').on('change', '.totales-extra', function () {
+
+ let input = $(this);
+ let tarifa_id = input.attr('id').replace('precio_extra_', '');
+ let newValue = parseFloat(input.val().replace(/\./g, '').replace(',', '.')) || 0;
+
+ let table = $('#tableOfServiciosExtra').DataTable();
+ let row = table.rows().data().toArray().find(r => r.tarifa_id == tarifa_id);
+
+ if (row) {
+ row.precio = newValue;
+ table.row($(this).closest('tr')).data(row).draw(false);
+ self.check_serv_extra_error();
+ }
+ });
+
$(document).on('click', '.btn-delete-servextra', function () {
const rowId = $(this).closest('td').parent()[0].sectionRowIndex;
self.table.row(rowId).remove().draw();
@@ -1644,7 +1703,7 @@ class ServiciosExtra {
const rows = this.table.rows().data().toArray();
for (let i = 0; i < rows.length; i++) {
- if (rows[i]['precio_total'] == 0) {
+ if (rows[i]['precio'] == 0) {
error = true;
break;
}
diff --git a/httpdocs/assets/js/safekat/pages/presupuestoCliente/presupuestoCliente.js b/httpdocs/assets/js/safekat/pages/presupuestoCliente/presupuestoCliente.js
index 2476ba59..2623ce40 100644
--- a/httpdocs/assets/js/safekat/pages/presupuestoCliente/presupuestoCliente.js
+++ b/httpdocs/assets/js/safekat/pages/presupuestoCliente/presupuestoCliente.js
@@ -171,7 +171,7 @@ class PresupuestoCliente {
{},
(response) => {
if (response === null || response === undefined || response === "") {
- console.log("Error en el calculo máximo de solapas.");
+ console.error("Error en el calculo máximo de solapas.");
return;
}
this.disenioCubierta.tamanioSolapasCubierta.attr('max', response);