import ClassSelect from '../../../components/select2.js'; import { getToken } from '../../../common/common.js'; class DatosLibro { constructor(domItem, functions = {}) { this.domItem = domItem; this.checkPaginasPresupuesto = functions.checkPaginasPresupuesto; this.csrf_token = getToken(); this.csrf_hash = $('#mainContainer').find('input[name="' + this.csrf_token + '"]').val(); this.paginas = this.domItem.find('#paginas'); this.tirada = this.domItem.find('#tirada'); this.tamanio = new ClassSelect($("#papelFormatoId"), '/papel-formato/getSelect2', window.language.Presupuestos.formatoLibro); this.tamanioPersonalizado = this.domItem.find('#papelFormatoPersonalizado'); this.anchoPersonalizado = this.domItem.find('#papelFormatoAncho'); this.altoPersonalizado = this.domItem.find('#papelFormatoAlto'); this.merma = this.domItem.find('#merma'); this.mermaCubierta = this.domItem.find('#mermacubierta'); this.solapasCubierta = this.domItem.find('#solapas'); this.solapasSobrecubierta = this.domItem.find('#solapas_sobrecubierta'); this.anchoSolapasCubierta = this.domItem.find('#solapas_ancho'); this.anchoSolapasSobrecubierta = this.domItem.find('#solapas_ancho_sobrecubierta'); this.divSolapasCubierta = this.domItem.find('#div_solapas_ancho'); this.divSolapasSobrecubierta = this.domItem.find('#div_solapas_ancho_sobrecubierta'); this.acabadoCubierta = new ClassSelect($("#acabado_cubierta_id"), '/serviciosacabados/getacabados', '', false, { [this.csrf_token]: this.csrf_hash, "cubierta": 1 } ); this.acabadoSobrecubierta = new ClassSelect($("#acabado_sobrecubierta_id"), '/serviciosacabados/getacabados', '', false, { [this.csrf_token]: this.csrf_hash, "sobrecubierta": 1 } ); this.retractilado = this.domItem.find('#retractilado'); this.retractilado5 = this.domItem.find('#retractilado5'); this.prototipo = this.domItem.find('#prototipo'); this.ferro = this.domItem.find('#ferro'); this.ferroDigital = this.domItem.find('#ferroDigital'); this.marcapaginas = this.domItem.find('#marcapaginas'); } init() { const self = this; this.tamanio.init(); this.acabadoCubierta.init(); this.acabadoSobrecubierta.init(); this.acabadoCubierta.item.on('select2:select', function () { $(document).trigger('add-servicio-lineas', 'acabadoCubierta'); }); this.acabadoSobrecubierta.item.on('select2:select', function () { $(document).trigger('add-servicio-lineas', 'acabadoSobrecubierta'); }); if (window.location.href.includes("edit")) { this.retractilado.on('change', this.checkRetractilado.bind(this)); this.retractilado5.on('change', this.checkRetractilado.bind(this)); this.ferro.on('change', this.changeFerro.bind(this)); this.prototipo.on('change', this.changePrototipo.bind(this)); this.tamanio.item.on('select2:select', this.changeFormato.bind(this)); $('.formato_libro').on('change', this.changeFormato.bind(this)); if ($('#tipo_impresion_id').val() != 1 && $('#tipo_impresion_id').val() != 3 && $('#tipo_impresion_id').val() != 5 && $('#tipo_impresion_id').val() != 7) { this.solapasCubierta.on('change', this.changeSolapasCubierta.bind(this)); } this.solapasSobrecubierta.on('change', this.changeSolapasSobrecubierta.bind(this)); this.tamanioPersonalizado.on('change', this.changeTipoTamanio.bind(this)); this.anchoSolapasCubierta.on('change', this.changeAnchoSolapasCubierta.bind(this)); this.anchoSolapasSobrecubierta.on('change', this.changeAnchoSolapasSobrecubierta.bind(this)); this.paginas.on('change', this.changePaginas.bind(this)); this.tirada.on('change', this.changeTirada.bind(this)); } } changeFajaColor() { if (this.imprimirFajaColor.prop('checked')) { $(document).trigger('add-servicio-lineas', 'facaColor'); } else { $(document).trigger('remove-servicio-lineas', 'fajaColor'); } } changeFerro() { if (this.ferro.prop('checked')) { $(document).trigger('add-servicio-lineas', 'ferro'); } else { $(document).trigger('remove-servicio-lineas', 'ferro'); } } changePrototipo() { if (this.prototipo.prop('checked')) { $(document).trigger('add-servicio-lineas', 'prototipo'); } else { $(document).trigger('remove-servicio-lineas', 'prototipo'); } } checkRetractilado(event) { switch (event.currentTarget.id) { case 'retractilado': if ($('#' + event.currentTarget.id).prop('checked')) { $('#retractilado5').prop('checked', false); $(document).trigger('remove-servicio-lineas', 'retractilado5'); $(document).trigger('add-servicio-lineas', 'retractilado'); } break; case 'retractilado5': if ($('#' + event.currentTarget.id).prop('checked')) { $('#retractilado').prop('checked', false); $(document).trigger('remove-servicio-lineas', 'retractilado'); $(document).trigger('add-servicio-lineas', 'retractilado5'); } break; default: break; } } changeFormato() { // Si es negro o color if ($('#tipoImpresion').select2('data')[0].id == 'negro' || $('#tipoImpresion').select2('data')[0].id == 'color') { $('#compPaginasNegro').trigger('change') } // Si es negrohq o colorhq if ($('#tipoImpresion').select2('data')[0].id == 'negrohq' || $('#tipoImpresion').select2('data')[0].id == 'colorhq') { $('#compPaginasNegrohq').trigger('change'); } $('.solapas_cubierta').trigger('change'); $('.solapas_sobrecubierta').trigger('change'); this.checkPaginasPresupuesto(); $(document).trigger('update-presupuesto', { update_lineas : true, update_servicios : true, update_envios: true, update_resumen: true, update_tiradas_alternativas: true }); } changeTipoTamanio() { if (this.tamanioPersonalizado.prop('checked')) { $('.tamanio-personalizado').removeClass('d-none'); $('.tamanio-estandar').addClass('d-none'); this.tamanio.setVal(''); $("#label_papelFormatoId").text( window.language.Presupuestos.papelFormatoId + " (" + window.language.Presupuestos.papelFormatoAncho + " x " + window.language.Presupuestos.papelFormatoAncho + ")*"); } else { this.anchoPersonalizado.val(""); this.altoPersonalizado.val(""); $('.tamanio-personalizado').addClass('d-none'); $('.tamanio-estandar').removeClass('d-none'); $("#label_papelFormatoId").text( window.language.Presupuestos.papelFormatoId + '*'); } $(document).trigger('update-presupuesto', { update_lineas : true, update_servicios : false, update_envios: false, update_resumen: false, update_tiradas_alternativas: false }); } changeSolapasCubierta() { setTimeout(() => { if (this.solapasCubierta.prop('checked')) { $('#div_solapas_ancho').removeClass('d-none'); $(document).trigger('add-servicio-lineas', 'solapas_cubierta'); } else { $('#div_solapas_ancho').addClass('d-none'); $(document).trigger('remove-servicio-lineas', 'solapas_cubierta'); $(document).trigger('remove-servicio-lineas', 'solapas_grandes_cubierta'); } }, 100); // para que se actualice el comparador $('paginas').trigger('change'); } changeAnchoSolapasCubierta(){ if(this.checkSolapasGrandes('cubierta')){ $(document).trigger('add-servicio-lineas', 'solapas_grandes_cubierta'); } else{ $(document).trigger('remove-servicio-lineas', 'solapas_grandes_cubierta'); } // para que se actualice el comparador $('paginas').trigger('change'); } changeSolapasSobrecubierta() { if (this.solapasSobrecubierta.prop('checked')) { this.divSolapasSobrecubierta.removeClass('d-none'); $(document).trigger('add-servicio-lineas', 'solapas_sobrecubierta'); } else { this.divSolapasSobrecubierta.addClass('d-none'); $(document).trigger('remove-servicio-lineas', 'solapas_sobrecubierta'); $(document).trigger('remove-servicio-lineas', 'solapas_grandes_sobrecubierta'); if ($('#compSobrecubierta').length) { $('#compSobrecubierta').val(0).trigger('change'); } } } changeAnchoSolapasSobrecubierta(){ if(this.checkSolapasGrandes('cubierta')){ $(document).trigger('add-servicio-lineas', 'solapas_grandes_sobrecubierta'); } else{ $(document).trigger('remove-servicio-lineas', 'solapas_grandes_sobrecubierta'); } // para que se actualice el comparador $('paginas').trigger('change'); } 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()); } else if (elemento == 'sobrecubierta'){ ancho_solapas = 2 * parseFloat($('solapas_ancho_sobrecubierta').val()); lomo = parseFloat($('lomo_sobrecubierta').val()); } else return false; if (ancho_libro + ancho_solapas + lomo > 630) return true; else return false } changePaginas() { if ($('#tipo_impresion_id').val() == 21) { if (parseInt($('#paginas').val()) > 80) { $('#paginas').val(80) } } if (window.location.href.includes('edit')) { this.checkPaginasPresupuesto(); // Si es negro o color if ($('#tipoImpresion').select2('data')[0].id == 'negro' || $('#tipoImpresion').select2('data')[0].id == 'color') { $('#compPaginasNegro').val(parseInt($('#paginas').val()) - parseInt($('#compPaginasColor').val())); $('#compPaginasNegro').trigger('change') } // Si es negrohq o colorhq if ($('#tipoImpresion').select2('data')[0].id == 'negrohq' || $('#tipoImpresion').select2('data')[0].id == 'colorhq') { $('#compPaginasNegrohq').val(parseInt($('#paginas').val()) - parseInt($('#compPaginasColorhq').val())); $('#compPaginasNegrohq').trigger('change'); } $(document).trigger('update-presupuesto', { update_lineas : true, update_servicios : true, update_envios: true, update_resumen: true, update_tiradas_alternativas: true }); } } changeTirada(update_tiradas_alternativas = true) { this.calcular_mermas() 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_envios: false, update_resumen: false, update_tiradas_alternativas: false }); $(document).trigger('ckeck-lineas-envios'); } } calcular_mermas() { const tirada = parseInt($('#tirada').val()); const POD = parseInt($('#POD').val()); let merma = 0; let htmlString = ''; if (tirada > POD) { merma = tirada * 0.1 <= POD ? tirada * 0.1 : POD; } else { let merma_lineas = [] $('#tableLineasPresupuesto').DataTable().rows().every(function (rowIdx, tableLoop, rowLoop) { var rowData = this.data(); if (rowData.row_id != 'lp_guardas' && rowData.row_id != 'lp_cubierta' && rowData.row_id != 'lp_sobrecubierta') { const formas_linea = parseInt($('#isCosido').val()) == 0 ? parseInt(rowData.formas) : parseInt(rowData.formas) / 2 if (formas_linea > tirada) merma_lineas.push(formas_linea - tirada) else merma_lineas.push(tirada % formas_linea) } }) if (merma_lineas.length > 0) merma = Math.max(...merma_lineas) else { htmlString = ` `; merma = 0 } } $('#mermacubierta').val(parseInt(merma)) $('#merma').val(parseInt(merma)) $('#alert-datosLibro').html(htmlString) } cargarDatos(datos) { this.paginas.val(datos.paginas); this.tirada.val(datos.tirada); this.calcular_mermas(); if (datos.papelFormatoPersonalizado) { this.tamanioPersonalizado.prop('checked', true); $(".tamanio-personalizado").removeClass('d-none'); $(".tamanio-estandar").addClass('d-none'); this.anchoPersonalizado.val(datos.papelFormatoAlto); this.altoPersonalizado.val(datos.papelFormatoAncho); } else { $(".tamanio-personalizado").addClass('d-none'); $(".tamanio-estandar").removeClass('d-none'); this.tamanio.setOption(datos.papelFormatoId, datos.papelFormatoNombre); } this.merma.val(datos.merma); this.mermaCubierta.val(datos.mermaCubierta); if ($('#tipo_impresion_id').val() == 1 || $('#tipo_impresion_id').val() == 3 || $('#tipo_impresion_id').val() == 5 || $('#tipo_impresion_id').val() == 7) { $(".solapas-cubierta-div").addClass('d-none'); } else { if (datos.solapasCubierta) { this.solapasCubierta.prop('checked', true); this.anchoSolapasCubierta.val(datos.solapasCubiertaAncho); this.divSolapasCubierta.removeClass('d-none'); } else { this.solapasCubierta.prop('checked', false); this.anchoSolapasCubierta.val(60); this.divSolapasSobrecubierta.addClass('d-none'); } } if (datos.solapasSobrecubierta) { this.solapasSobrecubierta.prop('checked', true); this.anchoSolapasSobrecubierta.val(datos.solapasSobrecubiertaAncho); $('#div_solapas_ancho_sobrecubierta').removeClass('d-none'); } else { this.solapasSobrecubierta.prop('checked', false); this.anchoSolapasSobrecubierta.val(60); $('#div_solapas_ancho_sobrecubierta').addClass('d-none'); } this.acabadoCubierta.setOption(datos.acabadoCubierta.id, datos.acabadoCubierta.text); if ($('#tipo_impresion_id').val() == 5 || $('#tipo_impresion_id').val() == 6 || $('#tipo_impresion_id').val() == 7 || $('#tipo_impresion_id').val() == 8 || $('#tipo_impresion_id').val() == 21) { $(".impresion-con-sobrecubierta").addClass('d-none'); } else { this.acabadoSobrecubierta.setOption(datos.acabadoSobrecubierta.id, datos.acabadoSobrecubierta.text); } this.retractilado.prop('checked', datos.retractilado); this.retractilado5.prop('checked', datos.retractilado5); this.prototipo.prop('checked', datos.prototipo); this.ferro.prop('checked', datos.ferro); this.ferroDigital.prop('checked', datos.ferroDigital); this.marcapaginas.prop('checked', datos.marcapaginas); } } export default DatosLibro;