diff --git a/ci4/app/Controllers/Js_loader.php b/ci4/app/Controllers/Js_loader.php index d6600618..9abc5e22 100755 --- a/ci4/app/Controllers/Js_loader.php +++ b/ci4/app/Controllers/Js_loader.php @@ -21,12 +21,37 @@ class Js_loader extends BaseController } + function translate_js($translationFile) + { + $this->response->setHeader('Content-Type', 'text/javascript'); + + $locale = service('request')->getLocale(); + $path = "Language/{$locale}/$translationFile.php"; + $lang = require APPPATH.$path; + + return view('themes/_commonPartialsBs/translate.js', ['array_php' => $lang, 'var_name' => $translationFile]); + + } + + + function datosLibro_js() + { + $this->response->setHeader('Content-Type', 'text/javascript'); + return view('themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosLibroItems.js'); + } + function previsualizador_js() { $this->response->setHeader('Content-Type', 'text/javascript'); return view('themes/backend/vuexy/form/presupuestos/cosidotapablanda/previews.js'); } + function lineasPresupuesto_js() + { + $this->response->setHeader('Content-Type', 'text/javascript'); + return view('themes/backend/vuexy/form/presupuestos/cosidotapablanda/_lineasPresupuestoItems.js'); + } + function tiradasAlternativas_js() { $this->response->setHeader('Content-Type', 'text/javascript'); @@ -45,5 +70,17 @@ class Js_loader extends BaseController return view('themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosEnvios.js'); } + function resumenPresupuestos_js() + { + $this->response->setHeader('Content-Type', 'text/javascript'); + return view('themes/backend/vuexy/form/presupuestos/cosidotapablanda/_resumenPresupuestos.js'); + } + + function presupuestos_js() + { + $this->response->setHeader('Content-Type', 'text/javascript'); + return view('themes/backend/vuexy/form/presupuestos/cosidotapablanda/_presupuestos.js'); + } + } \ No newline at end of file diff --git a/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php b/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php index 41f5c28d..22d5d6eb 100755 --- a/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php +++ b/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php @@ -339,6 +339,8 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController $this->viewData['papelGenericoRotativaNegroList'] = $this->getPapelGenericoRotativaNegro(); $this->viewData['papelGenericoRotativaColorList'] = $this->getPapelGenericoRotativaColor(); + $this->viewData['direccionesList'] = $this->getDirecciones($id); + // Acabados exteriores $this->viewData['acabadosCubierta'] = $this->getAcabadosCubierta(); $this->viewData['acabadosSobrecubierta'] = $this->getAcabadosSobrecubierta(); @@ -1295,4 +1297,9 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController $model = model('App\Models\Configuracion\ConfiguracionSistemaModel'); return $model->getPOD(); } + + protected function getDirecciones($presupuesto_id){ + $model = model('App\Models\Presupuestos\PresupuestoDireccionesModel'); + return $model->where('presupuesto_id', $presupuesto_id)->findAll(); + } } diff --git a/ci4/app/Language/en/Presupuestos.php b/ci4/app/Language/en/Presupuestos.php index eba24c4a..4d514cfa 100755 --- a/ci4/app/Language/en/Presupuestos.php +++ b/ci4/app/Language/en/Presupuestos.php @@ -92,8 +92,8 @@ return [ 'encuadernacion' => 'Binding', 'solapasCubierta' => 'Cover dust jacket', 'solapasAnchoCubierta' => 'Cover dust jacket width', - '1cara' => '1 side', - '2caras' => '2 sides', + 'unaCara' => '1 side', + 'dosCaras' => '2 sides', 'bn' => 'BW', 'bnhq' => 'BWHQ', 'color' => 'Colour', diff --git a/ci4/app/Language/es/Presupuestos.php b/ci4/app/Language/es/Presupuestos.php index 2231446b..1b235c4d 100755 --- a/ci4/app/Language/es/Presupuestos.php +++ b/ci4/app/Language/es/Presupuestos.php @@ -108,8 +108,8 @@ return [ 'solapasAnchoCubierta' => 'Ancho solapas cub.', 'solapasAnchoSobrecubierta' => 'Ancho solapas sobrecub.', 'sinImpresion' => 'Sin impresion', - '1cara' => '1 cara', - '2caras' => '2 caras', + 'unaCara' => '1 cara', + 'dosCaras' => '2 caras', 'bn' => 'BN', 'bnhq' => 'BNHQ', 'color' => 'Color', @@ -257,6 +257,7 @@ return [ 'requerido' => 'El campo {field} es obligatorio.', 'max_length' => 'El campo {field} no puede exceder los {param} caracteres de longitud.', 'no_lp_for_merma' => 'Inserte líneas de presupuesto para calcular la merma', + 'ejemplares_envio' => 'El número de ejemplares enviados no coincide con la tirada', ], 'errores' => [ diff --git a/ci4/app/Language/es/TarifaEncuadernacionLineas.php b/ci4/app/Language/es/TarifaEncuadernacionLineas.php index f28bf657..bcc404dc 100755 --- a/ci4/app/Language/es/TarifaEncuadernacionLineas.php +++ b/ci4/app/Language/es/TarifaEncuadernacionLineas.php @@ -17,9 +17,9 @@ return [ 'paginasMax' => 'Páginas Max', 'paginasMin' => 'Páginas Min', 'dimensiones' => 'Dimensiones', - 'menor_a5' =>'Menor A5', + 'menor_a5' =>'Hasta A5', 'entre_a5_a4' =>'Entre A5 y A4', - 'mayor_a4' =>'Mayor A4', + 'mayor_a4' =>'Desde 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', diff --git a/ci4/app/Views/themes/_commonPartialsBs/translate.js b/ci4/app/Views/themes/_commonPartialsBs/translate.js new file mode 100644 index 00000000..0ebaad63 --- /dev/null +++ b/ci4/app/Views/themes/_commonPartialsBs/translate.js @@ -0,0 +1 @@ +window. = ; \ No newline at end of file diff --git a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosEnvios.js b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosEnvios.js index 5d584c1d..a353a6c8 100644 --- a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosEnvios.js +++ b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosEnvios.js @@ -1,3 +1,10 @@ +const actionBtns_direcciones = function(data) { + return ` + + + `; +}; + // Funcion para obtener el peso total del libro function get_peso_libro(){ @@ -51,7 +58,7 @@ async function get_coste_envio_tiradasAlternativas(tirada){ const cantidad = Math.floor(tirada*porcentaje/100.0); const peso_envio = cantidad*peso_libro/1000.0; const datos_tarifa = await get_precio_envio(peso_envio, rowData.paisId, rowData.cp, parseInt(rowData.entregaPieCalle)==1?'palets':'cajas'); - + if(datos_tarifa.id!=null){ if(peso_envio>parseFloat(datos_tarifa.peso_max)){ @@ -68,4 +75,345 @@ async function get_coste_envio_tiradasAlternativas(tirada){ } return {coste, margen}; -} \ No newline at end of file +} + + +function checkInsertar(){ + + var cantidad_total = 0 + $('#tableOfDireccionesEnvio').DataTable().rows().every( function ( rowIdx, tableLoop, rowLoop ) { + var data = this.data(); + cantidad_total += parseInt(data.cantidad ) + } ); + var htmlString = '' + if(cantidad_total < parseInt($('#tirada').val())){ + $('#rowInsertar').css('display', 'flex') + } + else{ + $('#rowInsertar').css('display', 'none') + } + + if(cantidad_total != parseInt($('#tirada').val())){ + htmlString = ` + `; + } + $('#alert-envios').html(htmlString) +} + + +async function updateTablaEnvios(tirada_inicial = null, tirada = null){ + + var peso_total_libro = get_peso_libro(); + + $('#tableOfDireccionesEnvio').DataTable().rows().every(async function ( rowIdx, tableLoop, rowLoop ) { + + var rowData = this.data(); + + if(tirada_inicial!=null && tirada!=null){ + const porcentaje = parseInt(rowData.cantidad)/tirada_inicial*100.0; + const cantidad = Math.floor(tirada*porcentaje/100.0); + rowData.cantidad = cantidad + } + const peso_envio = peso_total_libro*parseInt(rowData.cantidad)/1000.0; + + var datos_tarifa = await get_precio_envio(peso_envio, rowData.paisId, rowData.cp, parseInt(rowData.entregaPieCalle)==1?'palets':'cajas'); + + + if(datos_tarifa.id!=null){ + + if(peso_envio>parseFloat(datos_tarifa.peso_max)){ + datos_tarifa.precio = parseFloat(datos_tarifa.peso_min) + (peso_envio-parseFloat(datos_tarifa.peso_min))*parseFloat(datos_tarifa.precio_adicional); + } + // si no se calcula linealmente + else{ + m=((parseFloat(datos_tarifa.precio_max)-parseFloat(datos_tarifa.precio_min))/(parseFloat(datos_tarifa.peso_max)-parseFloat(datos_tarifa.peso_min))); + b=parseFloat(datos_tarifa.precio_max)-m*parseFloat(datos_tarifa.peso_max); + datos_tarifa.precio = parseFloat(m*peso_envio+b); + } + + + datos_tarifa.cantidad = parseInt($('#add_cantidad').val()); + datos_tarifa.peso = peso_envio; + + $('#tableOfDireccionesEnvio').DataTable().row(rowIdx) + .data({ + 'tarifa_id': datos_tarifa.id, + 'cantidad': rowData.cantidad, + 'peso': datos_tarifa.peso.toFixed(3), + 'att': rowData.att, + 'email': rowData.email, + 'direccion': rowData.direccion, + 'cp': rowData.cp, + 'municipio': rowData.municipio, + 'provincia': rowData.provincia, + 'paisId': rowData.paisId, + 'telefono': rowData.telefono, + 'proveedor': datos_tarifa.proveedor, + 'proveedor_id': datos_tarifa.proveedor_id, + 'precio': datos_tarifa.precio.toFixed(2), + 'margen': datos_tarifa.margen, + 'entregaPieCalle': rowData.entregaPieCalle, + 'actionBtns_direcciones': actionBtns_direcciones, + }) + .draw(); + + checkInsertar() + //updateTotales(false, false, true) + updatePresupuesto({ + update_lineas: false, + update_servicios: false, + update_envios: false, + update_resumen: true, + update_tiradas_alternativas: true + }) + } + else{ + popErrorAlert(window.error_no_tarifa_envio, 'error-tarifa') + } + }) +} + +$('#insertar_direccion').on('click', function(){ + + $("#addressForm").attr('action','create') + var $newAddDialog = $("#addressForm") + var maximaCantidad = parseInt($('#tirada').val()) + $("#add_cantidad").attr("max" , maximaCantidad); + $("#add_cantidad").val( maximaCantidad); + $("#add_cantidad").on('change', function(){ + $("#add_cantidad").val(parseInt($("#add_cantidad").val())>maximaCantidad ? maximaCantidad : $("#add_cantidad").val()) + }) + + cantidad_total = 0 + tableEnvios.rows().every( function ( rowIdx, tableLoop, rowLoop ) { + var data = this.data(); + cantidad_total += parseInt(data.cantidad) + } ); + $('#add_cantidad').attr('max-value', parseInt($('#tirada').val())-cantidad_total) + $('#add_cantidad').val(parseInt($('#tirada').val())-cantidad_total) + $newAddDialog.modal('show') +}) + +const lastColNr_direcciones = $('#tableOfDireccionesEnvio').find("tr:first th").length - 1; + + +$(document).on('click', '.delete-add-row', function(e) { + const row = $(this).closest('tr'); + tableEnvios.row( row ) + .remove() + .draw(); + checkInsertar() + //updateTotales(false, false, true) + updatePresupuesto({ + update_lineas: false, + update_servicios: false, + update_envios: false, + update_resumen: true, + update_tiradas_alternativas: true + }) + +}) + +$(document).on('click', '.btn-edit-add', function(e) { + const row = $(this).closest('tr'); + var data = tableEnvios.row( row ).data() + + $("#addressForm").attr('action','edit') + $("#addressForm").attr('row', row[0]._DT_RowIndex) + $("#addressForm").attr('presupuestodireccion_id', $(this).attr('data-id')) + var $newAddDialog = $("#addressForm") + var maximaCantidad = parseInt($('#tirada').val()) + $("#add_cantidad").attr("max" , maximaCantidad); + $("#add_cantidad").val( maximaCantidad); + $("#add_cantidad").on('change', function(){ + $("#add_cantidad").val(parseInt($("#add_cantidad").val())>maximaCantidad ? maximaCantidad : $("#add_cantidad").val()) + }) + + cantidad_total = 0 + tableEnvios.rows().every( function ( rowIdx, tableLoop, rowLoop ) { + var data2 = this.data(); + cantidad_total += parseInt(data2.cantidad) + } ); + cantidad_total -= parseInt(data.cantidad) // Si es editar tienes que restar los de la linea actual + $('#add_cantidad').attr('max-value', parseInt($('#tirada').val())-cantidad_total) + $('#add_cantidad').val(parseInt($('#tirada').val())-cantidad_total) + + $('#add_att').val(data.att) + $('#add_direccion').val(data.direccion) + $('#add_email').val(data.email) + $('#add_cp').val(data.cp) + $('#add_municipio').val(data.municipio) + $('#add_provincia').val(data.provincia) + $('#add_pais_id').val(data.paisId) + $('#add_telefono').val(data.telefono) + $('#add_cantidad').val(data.cantidad) + $('#add_entregaPieCalle').prop('checked', data.entregaPieCalle==1?true:false) + + $newAddDialog.modal('show') +}) + + + + + +$('#recoger_en_taller').change(function(){ + if(this.checked) { + $('#rowTable').css('display', 'none') + $('#rowInsertar').css('display', 'none') + tableEnvios.clear().draw() + } + else{ + $('#rowTable').css('display', 'flex') + $('#rowInsertar').css('display', 'flex') + tableEnvios.columns.adjust(); + } +}) + + +var tableEnvios = $('#tableOfDireccionesEnvio').DataTable( { + draw:5, + serverSide: false, + processing: true, + autoWidth: true, + responsive: true, + order: [[ 0, "asc" ]], + pageLength: 20, + lengthChange: false, + searching: false, + paging: false, + info: false, + scrollX: true, + + columns: [ + { 'data': 'tarifa_id' }, + { 'data': 'cantidad' }, + { 'data': 'peso' }, + { 'data': 'att' }, + { 'data': 'email' }, + { 'data': 'direccion' }, + { 'data': 'cp' }, + { 'data': 'municipio' }, + { 'data': 'paisId' , + render: function(data, type, row, meta) { + var pais = window.paisList.find(element => element.id == data); + return pais['nombre']; + }, + }, + { 'data': 'telefono' }, + { 'data': 'proveedor'}, + { 'data': 'proveedor_id'}, + { 'data': 'precio' }, + { 'data': 'margen' }, + { 'data': 'entregaPieCalle' }, + { + data: actionBtns_direcciones, + className: 'row-edit dt-center' + } + ], + columnDefs: [ + { + orderable: false, + searchable: false, + targets: [lastColNr_direcciones] + }, + {"orderData": [ 0], "targets": 0 }, + + ], + columnDefs: [ + { + target: [0,11,13,14], + visible: false, + searchable: false + }, + ], + language: { + url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json" + }, + + } ); + + + + + +function save_datos_envios(){ + $.post( window.routes_envios.dataTableOfPresupuestoDirecciones, + Object.assign({tipo: "clear_lineas", presupuesto_id: id}, window.token_ajax)) + .done(function( data ) { + + tableEnvios.rows().every( function ( rowIdx, tableLoop, rowLoop ) { + var data = this.data(); + $.post( '/presupuestos/presupuestodirecciones/add', + Object.assign({ + presupuesto_id : id, + tarifa_id : data.tarifa_id, + cantidad : data.cantidad, + peso : data.peso, + att : data.att, + email : data.email, + direccion : data.direccion, + paisId : data.paisId, + provincia : data.provincia, + municipio : data.municipio, + cp : data.cp, + telefono : data.telefono, + precio : data.precio, + margen : data.margen, + proveedor : data.proveedor, + proveedor_id : data.proveedor_id, + entregaPieCalle : data.entregaPieCalle}, window.token_ajax)) + }); + + }) + +} + + +function load_datos_envios(){ + + window.direccionesList.forEach((linea) => { + tableEnvios.row + .add({ + 'tarifa_id': linea.tarifa_id, + 'cantidad': linea.cantidad, + 'peso': linea.peso, + 'att': linea.att, + 'email': linea.email, + 'direccion': linea.direccion, + 'cp': linea.cp, + 'municipio': linea.municipio, + 'provincia': linea.provincia, + 'paisId': linea.pais_id, + 'telefono': linea.telefono, + 'proveedor': linea.proveedor, + 'proveedor_id': linea.proveedor_id, + 'precio': linea.precio, + 'margen': linea.margen, + 'entregaPieCalle': linea.entregaPieCalle, + 'actionBtns_direcciones': actionBtns_direcciones, + }) + .draw(); + checkInsertar() + + + }); + + updatePresupuesto({ + update_lineas: false, + update_servicios: false, + update_envios: false, + update_resumen: true, + update_tiradas_alternativas: false + }) + +} + diff --git a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosEnvios.php b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosEnvios.php index b973d9c5..9eb98ac5 100755 --- a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosEnvios.php +++ b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosEnvios.php @@ -60,335 +60,19 @@ section("additionalInlineJs") ?> -$('#insertar_direccion').on('click', function(){ - - $("#addressForm").attr('action','create') - var $newAddDialog = $("#addressForm") - var maximaCantidad = parseInt($('#tirada').val()) - $("#add_cantidad").attr("max" , maximaCantidad); - $("#add_cantidad").val( maximaCantidad); - $("#add_cantidad").on('change', function(){ - $("#add_cantidad").val(parseInt($("#add_cantidad").val())>maximaCantidad ? maximaCantidad : $("#add_cantidad").val()) - }) +window.paisList = ; +window.direccionesList = ; - cantidad_total = 0 - tableEnvios.rows().every( function ( rowIdx, tableLoop, rowLoop ) { - var data = this.data(); - cantidad_total += parseInt(data.cantidad) - } ); - $('#add_cantidad').attr('max-value', parseInt($('#tirada').val())-cantidad_total) - $('#add_cantidad').val(parseInt($('#tirada').val())-cantidad_total) - $newAddDialog.modal('show') -}) - -const lastColNr_direcciones = $('#tableOfDireccionesEnvio').find("tr:first th").length - 1; - -const actionBtns_direcciones = function(data) { - return ` - - - `; -}; - -function updateTablaEnvios(){ - - var peso_total_libro = get_peso_libro(); - - tableEnvios.rows().every(async function ( rowIdx, tableLoop, rowLoop ) { - - var rowData = this.data(); - const peso_envio = peso_total_libro*parseInt(rowData.cantidad)/1000.0; - - var datos_tarifa = await get_precio_envio(peso_envio, rowData.paisId, rowData.cp, parseInt(rowData.entregaPieCalle)==1?'palets':'cajas'); - - - if(datos_tarifa.id!=null){ - - if(peso_envio>parseFloat(datos_tarifa.peso_max)){ - datos_tarifa.precio = parseFloat(datos_tarifa.peso_min) + (peso_envio-parseFloat(datos_tarifa.peso_min))*parseFloat(datos_tarifa.precio_adicional); - } - // si no se calcula linealmente - else{ - m=((parseFloat(datos_tarifa.precio_max)-parseFloat(datos_tarifa.precio_min))/(parseFloat(datos_tarifa.peso_max)-parseFloat(datos_tarifa.peso_min))); - b=parseFloat(datos_tarifa.precio_max)-m*parseFloat(datos_tarifa.peso_max); - datos_tarifa.precio = parseFloat(m*peso_envio+b); - } - - - datos_tarifa.cantidad = parseInt($('#add_cantidad').val()); - datos_tarifa.peso = peso_envio; - - tableEnvios.row(rowIdx) - .data({ - 'tarifa_id': datos_tarifa.id, - 'cantidad': rowData.cantidad, - 'peso': datos_tarifa.peso.toFixed(3), - 'att': rowData.att, - 'email': rowData.email, - 'direccion': rowData.direccion, - 'cp': rowData.cp, - 'municipio': rowData.municipio, - 'provincia': rowData.provincia, - 'paisId': rowData.paisId, - 'telefono': rowData.telefono, - 'proveedor': datos_tarifa.proveedor, - 'proveedor_id': datos_tarifa.proveedor_id, - 'precio': datos_tarifa.precio.toFixed(2), - 'margen': datos_tarifa.margen, - 'entregaPieCalle': rowData.entregaPieCalle, - 'actionBtns_direcciones': actionBtns_direcciones, - }) - .draw(); - - checkInsertar() - updateTotales(false, false, true) - } - else{ - popErrorAlert('', 'error-tarifa') - } - }) +window.routes_envios = { + dataTableOfPresupuestoDirecciones: '' } -$(document).on('click', '.delete-add-row', function(e) { - const row = $(this).closest('tr'); - tableEnvios.row( row ) - .remove() - .draw(); - checkInsertar() - updateTotales(false, false, true) - -}) - -$(document).on('click', '.btn-edit-add', function(e) { - const row = $(this).closest('tr'); - var data = tableEnvios.row( row ).data() - - $("#addressForm").attr('action','edit') - $("#addressForm").attr('row', row[0]._DT_RowIndex) - $("#addressForm").attr('presupuestodireccion_id', $(this).attr('data-id')) - var $newAddDialog = $("#addressForm") - var maximaCantidad = parseInt($('#tirada').val()) - $("#add_cantidad").attr("max" , maximaCantidad); - $("#add_cantidad").val( maximaCantidad); - $("#add_cantidad").on('change', function(){ - $("#add_cantidad").val(parseInt($("#add_cantidad").val())>maximaCantidad ? maximaCantidad : $("#add_cantidad").val()) - }) - - cantidad_total = 0 - tableEnvios.rows().every( function ( rowIdx, tableLoop, rowLoop ) { - var data2 = this.data(); - cantidad_total += parseInt(data2.cantidad) - } ); - cantidad_total -= parseInt(data.cantidad) // Si es editar tienes que restar los de la linea actual - $('#add_cantidad').attr('max-value', parseInt($('#tirada').val())-cantidad_total) - $('#add_cantidad').val(parseInt($('#tirada').val())-cantidad_total) - - $('#add_att').val(data.att) - $('#add_direccion').val(data.direccion) - $('#add_email').val(data.email) - $('#add_cp').val(data.cp) - $('#add_municipio').val(data.municipio) - $('#add_provincia').val(data.provincia) - $('#add_pais_id').val(data.paisId) - $('#add_telefono').val(data.telefono) - $('#add_cantidad').val(data.cantidad) - $('#add_entregaPieCalle').prop('checked', data.entregaPieCalle==1?true:false) - - $newAddDialog.modal('show') -}) - - -const paisList = ; - - -$('#recoger_en_taller').change(function(){ - if(this.checked) { - $('#rowTable').css('display', 'none') - $('#rowInsertar').css('display', 'none') - tableEnvios.clear().draw() - } - else{ - $('#rowTable').css('display', 'flex') - $('#rowInsertar').css('display', 'flex') - tableEnvios.columns.adjust(); - } -}) - - -var tableEnvios = $('#tableOfDireccionesEnvio').DataTable( { - draw:5, - serverSide: false, - processing: true, - autoWidth: true, - responsive: true, - order: [[ 0, "asc" ]], - pageLength: 20, - lengthChange: false, - searching: false, - paging: false, - info: false, - scrollX: true, - - columns: [ - { 'data': 'tarifa_id' }, - { 'data': 'cantidad' }, - { 'data': 'peso' }, - { 'data': 'att' }, - { 'data': 'email' }, - { 'data': 'direccion' }, - { 'data': 'cp' }, - { 'data': 'municipio' }, - { 'data': 'paisId' , - render: function(data, type, row, meta) { - var value = paisList.find(element => element.id === data); - return value['nombre']; - }, - }, - { 'data': 'telefono' }, - { 'data': 'proveedor'}, - { 'data': 'proveedor_id'}, - { 'data': 'precio' }, - { 'data': 'margen' }, - { 'data': 'entregaPieCalle' }, - { - data: actionBtns_direcciones, - className: 'row-edit dt-center' - } - ], - columnDefs: [ - { - orderable: false, - searchable: false, - targets: [lastColNr_direcciones] - }, - {"orderData": [ 0], "targets": 0 }, - - ], - columnDefs: [ - { - target: [0,11,13,14], - visible: false, - searchable: false - }, - ], - language: { - url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json" - }, - - } ); - - - -function checkInsertar(){ - cantidad_total = 0 - tableEnvios.rows().every( function ( rowIdx, tableLoop, rowLoop ) { - var data = this.data(); - cantidad_total += parseInt(data.cantidad ) - } ); - htmlString = '' - if(cantidad_total < parseInt($('#tirada').val())){ - $('#rowInsertar').css('display', 'flex') - } - else{ - $('#rowInsertar').css('display', 'none') - } - - if(cantidad_total != parseInt($('#tirada').val())){ - htmlString = ` - `; - } - $('#alert-envios').html(htmlString) -} - -function save_datos_envios(){ - $.post( '', - { - tipo: "clear_lineas", - presupuesto_id: id, - : v, - }) - .done(function( data ) { - - tableEnvios.rows().every( function ( rowIdx, tableLoop, rowLoop ) { - var data = this.data(); - $.post( '/presupuestos/presupuestodirecciones/add', - { - presupuesto_id : id, - tarifa_id : data.tarifa_id, - cantidad : data.cantidad, - peso : data.peso, - att : data.att, - email : data.email, - direccion : data.direccion, - paisId : data.paisId, - provincia : data.provincia, - municipio : data.municipio, - cp : data.cp, - telefono : data.telefono, - precio : data.precio, - margen : data.margen, - proveedor : data.proveedor, - proveedor_id : data.proveedor_id, - entregaPieCalle : data.entregaPieCalle, - : v, - }) - }); - - }) - -} - -load_datos_envios() - -function load_datos_envios(){ - $.post( '', - { - draw: 1, - columns: 1, - search: { - value: "", - }, - presupuesto_id: id, - : v, - }) - .done(function( data ) { - data.data.forEach((linea) => { - tableEnvios.row - .add({ - 'tarifa_id': linea.tarifa_id, - 'cantidad': linea.cantidad, - 'peso': linea.peso, - 'att': linea.att, - 'email': linea.email, - 'direccion': linea.direccion, - 'cp': linea.cp, - 'municipio': linea.municipio, - 'provincia': linea.provincia, - 'paisId': linea.pais_id, - 'telefono': linea.telefono, - 'proveedor': linea.proveedor, - 'proveedor_id': linea.proveedor_id, - 'precio': linea.precio, - 'margen': linea.margen, - 'entregaPieCalle': linea.entregaPieCalle, - 'actionBtns_direcciones': actionBtns_direcciones, - }) - .draw(); - checkInsertar() - updateTotales(false, false, true) - }); - $('#tableOfDireccionesEnvio').bind('draw.dt', update_tiradas_alternativas); - }) -} - - window.url_get_precio_envio = ''; +window.error_no_tarifa_envio = '' +window.token_ajax= {: v}; + +$( document ).ready(function() { + load_datos_envios(); +}); endSection() ?> \ No newline at end of file diff --git a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosLibroItems.js b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosLibroItems.js new file mode 100644 index 00000000..242f1035 --- /dev/null +++ b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosLibroItems.js @@ -0,0 +1,146 @@ +$('#paginas').on("change", function () { + + const url2 = window.location.href; + const url_parts2 = url2.split('/'); + + if(url_parts2[url_parts2.length-2] == 'edit'){ + + 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'); + } + + //update_servicios(false) + //updateLineasPresupuesto() + updatePresupuesto({ + update_lineas: true, + update_servicios: true, + update_envios: true, + update_resumen: true, + update_tiradas_alternativas: true + }) + } +}); + +$('.solapas_cubierta').on('change', function(){ + $('#compGramajeCubierta').trigger('change') +}) + +$('.solapas_sobrecubierta').on('change', function(){ + $('#compGramajeSobrecubierta').trigger('change') +}) + +$('#tirada').on("change", function (update_tiradas_alternativas = true) { + + calcular_mermas() + + const url2 = window.location.href; + const url_parts2 = url2.split('/'); + + if(url_parts2[url_parts2.length-2] == 'edit'){ + //update_servicios(false) + //updateLineasPresupuesto() + if(update_tiradas_alternativas) + updatePresupuesto({ + update_lineas: true, + update_servicios: false, + update_envios: false, + update_resumen: false, + update_tiradas_alternativas: false + }) + else + updatePresupuesto({ + update_lineas: true, + update_servicios: false, + update_envios: false, + update_resumen: false, + update_tiradas_alternativas: false + }) + checkInsertar() + } +}) + +function calcular_mermas(){ + + const tirada = parseInt($('#tirada').val()) + var merma = 0 + htmlString = '' + + if(tirada> parseInt($('#POD').val())){ + merma = tirada*0.1<=30 ? tirada*0.1 : 30 + } + else{ + merma_lineas = [] + tableLineasPresupuesto.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) +} + + +$('#papelFormatoId').select2({ + allowClear: false, +}); + +$('#papelFormatoPersonalizado').on("click",function(){ + var checkbox = document.getElementById('papelFormatoPersonalizado'); + if(checkbox.checked == true){ + document.getElementById("papelFormatoAncho").style.display = "block"; + document.getElementById("papelFormatoAlto").style.display = "block"; + $('#papelFormatoId').next(".select2-container").hide(); + $('#papelFormatoId').val(0).change(); + document.getElementById("label_papelFormatoId").innerHTML = + " (" + + " x )*"; + } + else{ + document.getElementById("papelFormatoAncho").value= ""; + document.getElementById("papelFormatoAlto").value= ""; + document.getElementById("papelFormatoAncho").style.display = "none"; + document.getElementById("papelFormatoAlto").style.display = "none"; + $('#papelFormatoId').next(".select2-container").show(); + document.getElementById("label_papelFormatoId").innerHTML = + "*"; + } +}); \ No newline at end of file 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 543a1f26..96d02451 100755 --- a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosLibroItems.php +++ b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosLibroItems.php @@ -327,106 +327,6 @@ section("additionalInlineJs") ?> -$('#paginas').on("change", function () { - - const url2 = window.location.href; - const url_parts2 = url2.split('/'); - - if(url_parts2[url_parts2.length-2] == 'edit'){ - - checkPaginasPresupuesto() - updateLineasPresupuesto() - // 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'); - } - - update_servicios(false) - } -}); - -$('.solapas_cubierta').on('change', function(){ - $('#compGramajeCubierta').trigger('change') -}) - -$('.solapas_sobrecubierta').on('change', function(){ - $('#compGramajeSobrecubierta').trigger('change') -}) - -$('#tirada').on("change", function () { - - calcular_mermas() - - const url2 = window.location.href; - const url_parts2 = url2.split('/'); - - if(url_parts2[url_parts2.length-2] == 'edit'){ - update_servicios(false) - updateLineasPresupuesto() - checkInsertar() - } -}) - -function calcular_mermas(){ - - const tirada = parseInt($('#tirada').val()) - var merma = 0 - htmlString = '' - - if(tirada>){ - merma = tirada*0.1<=30 ? tirada*0.1 : 30 - } - else{ - merma_lineas = [] - tableLineasPresupuesto.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 = ==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) -} - - -$('#papelFormatoId').select2({ - allowClear: false, -}); let initTamanioPersonalizado = papel_formato_personalizado==true?1:0); ?>; if(initTamanioPersonalizado != null){ @@ -435,27 +335,7 @@ if(initTamanioPersonalizado != null){ } } -$('#papelFormatoPersonalizado').on("click",function(){ - var checkbox = document.getElementById('papelFormatoPersonalizado'); - if(checkbox.checked == true){ - document.getElementById("papelFormatoAncho").style.display = "block"; - document.getElementById("papelFormatoAlto").style.display = "block"; - $('#papelFormatoId').next(".select2-container").hide(); - $('#papelFormatoId').val(0).change(); - document.getElementById("label_papelFormatoId").innerHTML = - " (" + - " x )*"; - } - else{ - document.getElementById("papelFormatoAncho").value= ""; - document.getElementById("papelFormatoAlto").value= ""; - document.getElementById("papelFormatoAncho").style.display = "none"; - document.getElementById("papelFormatoAlto").style.display = "none"; - $('#papelFormatoId').next(".select2-container").show(); - document.getElementById("label_papelFormatoId").innerHTML = - "*"; - } -}); + var ancho_libro = getDimensionLibro().ancho; @@ -493,8 +373,7 @@ function event_change_formato(){ ancho_libro = getDimensionLibro().ancho; alto_libro = getDimensionLibro().alto; - checkPaginasPresupuesto() - updateLineasPresupuesto() + // Si es negro o color if ($('#tipoImpresion').select2('data')[0].id == 'negro' || $('#tipoImpresion').select2('data')[0].id == 'color') { @@ -509,7 +388,17 @@ function event_change_formato(){ $('#compPapelCubierta').trigger('change'); $('#compPapelSobrecubierta').trigger('change'); - update_servicios(false) + checkPaginasPresupuesto() + + updatePresupuesto({ + update_lineas: true, + update_servicios: true, + update_envios: true, + update_resumen: true, + update_tiradas_alternativas: true + }) + //updateLineasPresupuesto() + //update_servicios(false) } diff --git a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosPresupuestoClienteItems.php b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosPresupuestoClienteItems.php index 5fc39e41..070989c7 100755 --- a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosPresupuestoClienteItems.php +++ b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosPresupuestoClienteItems.php @@ -188,10 +188,10 @@
@@ -261,10 +261,10 @@

diff --git a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosServiciosItems.js b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosServiciosItems.js index f70e6d8b..00c5b624 100644 --- a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosServiciosItems.js +++ b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosServiciosItems.js @@ -1,6 +1,384 @@ +/**************************************************************************************** + * Seccion para las funciones generales de la pagina + ***************************************************************************************/ + + +$('.nav-servicios button').on('shown.bs.tab', function(){ + $("#tableOfServiciosEncuadernacion").DataTable().columns.adjust(); + $("#tableOfServiciosPreimpresion").DataTable().columns.adjust(); + $("#tableOfServiciosManipulado").DataTable().columns.adjust(); + $("#tableOfServiciosAcabado").DataTable().columns.adjust(); +}) + + +$('#serv_default').on('click', function(){ + get_tarifas_enc('default').then( + get_tarifas_manipulado('default') + ) +}) + +// Delete row +$(document).on('click', '.btn-delete-serv', function(e) { + const dataId = $(this).attr('data-id'); + const rowId = $(this).closest('td').parent()[0].sectionRowIndex; + var dataText = null; + + var table = ""; + if($(this).closest('table').attr('id').includes('tableOfServiciosEncuadernacion')){ + table = "tableOfServiciosEncuadernacion"; + } + else if($(this).closest('table').attr('id').includes('tableOfServiciosAcabado')){ + table = "tableOfServiciosAcabado"; + dataText = $(this).attr('data-text'); + } + else if($(this).closest('table').attr('id').includes('tableOfServiciosManipulado')){ + table = "tableOfServiciosManipulado"; + } + else if($(this).closest('table').attr('id').includes('tableOfServiciosPreimpresion')){ + table = "tableOfServiciosPreimpresion"; + } + else{ + table = ""; + } + + if(table != ""){ + if(dataText==null){ + $('#' + table).DataTable().rows( function ( idx, data, node ) { + return data[0] === dataId; + } ) + .remove() + .draw(); + } + $('#' + table).DataTable().rows( function ( idx, data, node ) { + return ((data[0] === dataId) && (data[1]=== dataText)); + } ) + .remove() + .draw(); + } + + check_serv_enc_error() + check_serv_acabado_error() + check_serv_preimpresion_error() + check_serv_manipulado_error() + updatePresupuesto({ + update_lineas: false, + update_servicios: false, + update_envios: false, + update_resumen: true, + update_tiradas_alternativas: true + }) + //updateTotales(false, true, false) + +}); + +function save_servicios(){ + + var datosAcabado = get_datos_acabado() + var datosEnc = get_datos_encuadernacion() + var datosManipulado = get_datos_manipulado() + var datosPreimpresion = get_datos_preimpresion() + + const domain = window.location.origin + + const url = window.location.href; + const url_parts = url.split('/'); + if(url_parts[url_parts.length-2] == 'edit'){ + const id = url_parts[url_parts.length-1]; + } + else{ + const id = -1; + } + + fetch(domain + "/presupuestos/presupuestoencuadernaciones/edit/" + id , { + method: "POST", + body: JSON.stringify(Object.assign({datos: datosEnc}, window.token_ajax)), + headers: { + "Content-type": "application/json; charset=UTF-8" + } + }) + .then(response => response.json()) + .then(data => { + yeniden(data[window.csrf_token]); + }) + .then( + fetch(domain + "/presupuestos/presupuestomanipulados/edit/" + id , { + method: "POST", + body: JSON.stringify(Object.assign({datos: datosManipulado}, window.token_ajax)), + headers: { + "Content-type": "application/json; charset=UTF-8" + } + }) + .then(response => response.json()) + .then(data => { + yeniden(data[window.csrf_token]); + }) + ) + .then( + fetch(domain + "/presupuestos/presupuestoacabados/edit/" + id , { + method: "POST", + body: JSON.stringify(Object.assign({datos: datosAcabado}, window.token_ajax)), + headers: { + "Content-type": "application/json; charset=UTF-8" + } + }) + .then(response => response.json()) + .then(data => { + yeniden(data[window.csrf_token]); + }) + ) + .then( + fetch(domain + "/presupuestos/presupuestopreimpresiones/edit/" + id , { + method: "POST", + body: JSON.stringify(Object.assign({datos: datosPreimpresion}, window.token_ajax)), + headers: { + "Content-type": "application/json; charset=UTF-8" + } + }) + .then(response => response.json()) + .then(data => { + yeniden(data[window.csrf_token]); + }) + ) +} + + /**************************************************************************************** * Seccion para los servicios de acabado ***************************************************************************************/ +var tableServiciosAcabado = new DataTable('#tableOfServiciosAcabado',{ + scrollX: true, + searching: false, + paging: false, + info: false, + ordering: false, + responsive: true, + select: false, + language: { + url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json" + }, +}); + +function init_servicio_acabado(){ + + $('#add_servicio_acabado_list').select2({ + allowClear: false, + minimumResultsForSearch: -1, + placeholder: window.Presupuestos.servicioAcabadoList + }) + + window.serviciosacabadosList.forEach((element) =>{ + + nombre_completo = element.nombre + if (element.cubierta == 1){ + nombre_completo += ' (' + window.Presupuestos.cubierta + ')' + } + else if (element.sobrecubierta == 1){ + nombre_completo += ' (' + window.Presupuestos.sobrecubierta + ')' + } + tableServiciosAcabado.row.add([ + element.tarifa_acabado_id, + nombre_completo, + '' + parseFloat(element.precio_unidad).toFixed(2) + '', + '', + '', + '' + ]).draw(false) + + $('#precio_total_acabado_' + element.tarifa_acabado_id).on('change', function(){ + updatePresupuesto({ + update_lineas: false, + update_servicios: false, + update_envios: false, + update_resumen: true, + update_tiradas_alternativas: true}) + }) + + updatePresupuesto({ + update_lineas: false, + update_servicios: false, + update_envios: false, + update_resumen: true, + update_tiradas_alternativas: true + }) + + }) + check_serv_acabado_error() +} + +function check_serv_acabado_error(){ + + var htmlString = ''; + + $('#tableOfServiciosAcabado tr').each(function(){ + if($(this).find('td').eq(2).text() == '0.00'){ + htmlString = ` + `; + } + }) + $('#serv-acabado-error').html(htmlString) +} + +function get_tarifas_acabado(tarifa_id = -1, uso=null){ + + if(parseInt($('#tirada').val())>0){ + var tirada = parseInt($('#tirada').val()) + } + else{ + var tirada = 0 + } + + var datos = { + tarifa_acabado_id : tarifa_id, + tirada: tirada, + POD: parseInt($('#POD').val()) + }; + datos = Object.assign(datos, window.token_ajax) + + + $.ajax({ + type: "POST", + url: window.routes_servicios.dataTableOfPresupuestoAcabados, + data: datos, + success: function (data) { + + data.values.forEach((row) => { + + nombre = row.tarifa_nombre + if(uso!= null) + nombre += ' (' + uso + ')' + + tableServiciosAcabado.row.add([ + row.tarifa_id, + nombre, + '' + parseFloat(row.precio_unidad).toFixed(2) + '', + '', + '', + '' + ]).draw(false) + + $('#precio_total_acabado_' + row.tarifa_id).on('change', function(){ + updatePresupuesto({ + update_lineas: false, + update_servicios: false, + update_envios: false, + update_resumen: true, + update_tiradas_alternativas: true}) + }) + + }); + if(data.values.lenght > 0){ + //updateTotales(false, true, false) + updatePresupuesto({ + update_lineas: false, + update_servicios: false, + update_envios: false, + update_resumen: true, + update_tiradas_alternativas: true + }) + } + + check_serv_acabado_error() + yeniden(data[window.csrf_token]); + return true; + }, + error: function(e){ + return false; + } + }) + return false; +} + +function servicioRetractilado(){ + if($('#retractilado').prop('checked')){ + $('#add_servicio_acabado_list').val(window.serviciosAutomaticos.retractilado) + $('#insertar_serv_acabado').click() + } + else{ + var row_indexes = tableServiciosAcabado.rows().eq( 0 ).filter( function (rowIdx) { + return tableServiciosAcabado.cell( rowIdx, 0 ).data() == window.serviciosAutomaticos.retractilado ? true : false; + } ); + if(row_indexes.length > 0){ + tableServiciosAcabado.row(row_indexes[0]).remove().draw() + check_serv_acabado_error() + } + } +} + +function servicioRetractilado5(){ + if($('#retractilado5').prop('checked')){ + $('#add_servicio_acabado_list').val(window.serviciosAutomaticos.retractilado5) + $('#insertar_serv_acabado').click() + } + else{ + var row_indexes = tableServiciosAcabado.rows().eq( 0 ).filter( function (rowIdx) { + return tableServiciosAcabado.cell( rowIdx, 0 ).data() == window.serviciosAutomaticos.retractilado5 ? true : false; + } ); + if(row_indexes.length > 0){ + tableServiciosAcabado.row(row_indexes[0]).remove().draw() + check_serv_acabado_error() + } + } +} + +function servicioFajaColor(){ + if($('#fajaColor').prop('checked')){ + $('#add_servicio_acabado_list').val(window.serviciosAutomaticos.fajaColor) + $('#insertar_serv_acabado').click() + } + else{ + var row_indexes = tableServiciosAcabado.rows().eq( 0 ).filter( function (rowIdx) { + return tableServiciosAcabado.cell( rowIdx, 0 ).data() == window.serviciosAutomaticos.fajaColor ? true : false; + } ); + if(row_indexes.length > 0){ + tableServiciosAcabado.row(row_indexes[0]).remove().draw() + check_serv_acabado_error() + } + } +} + +$('#insertar_serv_acabado').on('click', function(){ + const tarifa_text = $('#add_servicio_acabado_list').select2('data')[0].text.trim(); + + if(tarifa_text.length > 0){ + var table = $("#tableOfServiciosAcabado").DataTable(); + var rows = table.rows().data().toArray(); + var found = rows.some(row => row[1] === tarifa_text); + + if(!found) + get_tarifas_acabado($('#add_servicio_acabado_list').select2('data')[0].id); + else + popErrorAlert(window.Presupuestos.errores.error_servicios_duplicados, 'serv-acabado-alert'); + } + check_serv_acabado_error(); +}) + + +function insertar_acabado_exterior($servicio_id, $uso=""){ + + const tarifa_text = '(' +$uso + ')' + + var tablaAcabados = $("#tableOfServiciosAcabado").DataTable() + tablaAcabados.rows().every(function () { + var data = this.data(); + if(data[1].includes(tarifa_text)){ + this.remove().draw(false); + } + }) + + get_tarifas_acabado($servicio_id, $uso); + tablaAcabados.draw(); + check_serv_acabado_error() +} + function get_datos_acabado(){ var datosAcabado = [] @@ -14,11 +392,11 @@ function get_datos_acabado(){ values['tarifa_id'] = $(this).text() break case 1: - if($(this).text().includes(' '+ lang_text_cubierta)) + if($(this).text().includes(' '+ window.Presupuestos.cubierta)) values['cubierta'] = 1 else values['cubierta'] = 0 - if($(this).text().includes(' '+ lang_text_sobrecubierta)) + if($(this).text().includes(' '+ window.Presupuestos.sobrecubierta)) values['sobrecubierta'] = 1 else values['sobrecubierta'] = 0 @@ -43,31 +421,48 @@ function get_datos_acabado(){ async function get_servAcabados_tiradasAlternativas(tirada){ - serviciosAcabados ={ + + const url = window.location.href; + const url_parts = url.split('/'); + if(url_parts[url_parts.length-2] == 'edit'){ + const id = url_parts[url_parts.length-1]; + } + else{ + const id = -1; + } + + var serviciosAcabados ={ coste: 0.0, margen: 0.0, } - json_data = { + var json_data = { datos: get_datos_acabado(), tirada: parseInt(tirada), POD: $('#POD').val() } - json_data = Object.assign(json_data, window.token_ajax); + if(json_data.datos.length>0){ + + json_data = Object.assign(json_data, window.token_ajax); - const response = await fetch(window.location.origin + "/presupuestos/presupuestoacabados/update/" + id , { - method: "POST", - body: JSON.stringify(json_data), - headers: { - "Content-type": "application/json; charset=UTF-8" - } - }) - const values = await response.json(); - yeniden(values[window.csrf_token]); - values.lines.forEach((line) => { - - serviciosAcabados.coste += parseFloat(line[0].total); - serviciosAcabados.margen += parseFloat(line[0].total)*parseFloat(line[0].margen)/100.0; - }); + await fetch(window.location.origin + "/presupuestos/presupuestoacabados/update/" + id , { + method: "POST", + body: JSON.stringify(json_data), + headers: { + "Content-type": "application/json; charset=UTF-8" + } + }) + .then(response => response.json()) + .then(data => { + + //const values = await response.json(); + yeniden(data[window.csrf_token]); + data.lines.forEach((line) => { + serviciosAcabados.coste += parseFloat(line[0].total); + serviciosAcabados.margen += parseFloat(line[0].total)*parseFloat(line[0].margen)/100.0; + }); + + }); + } return serviciosAcabados; } @@ -75,6 +470,319 @@ async function get_servAcabados_tiradasAlternativas(tirada){ /**************************************************************************************** * Seccion para los servicios de encuadernación ***************************************************************************************/ +var tableServiciosEnc = new DataTable('#tableOfServiciosEncuadernacion',{ + scrollX: true, + searching: false, + paging: false, + info: false, + ordering: false, + responsive: true, + select: false, + language: { + url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json" + }, +}); + + +function init_servicio_encuadernado(){ + + + $('#add_servicio_enc_list').select2({ + allowClear: false, + minimumResultsForSearch: -1, + placeholder: window.Presupuestos.servicioEncuadernadoList + }) + + window.serviciosencuadernadosList.forEach((element) =>{ + + const tarifa_id = element.tarifa_encuadernado_id + var proveedor_nombre = element.proveedor===null? window.Presupuestos.no_disponible: element.proveedor + + tableServiciosEnc.row.add([ + element.tarifa_encuadernado_id, + element.nombre, + '', + '' + parseFloat(element.precio_unidad).toFixed(2) + '', + '', + '', + '' + ]).draw(false) + + $('#precio_total_encuadernado_' + element.tarifa_encuadernado_id).on('change', function(){ + updatePresupuesto({ + update_lineas: false, + update_servicios: false, + update_envios: false, + update_resumen: true, + update_tiradas_alternativas: true}) + }) + + $('#proveedor_enc_' + element.tarifa_encuadernado_id).select2({ + allowClear: false, + minimumResultsForSearch: -1, + ajax: { + url: window.routes_servicios.menuItemsOfPresupuestoEncuadernaciones, + type: 'post', + dataType: 'json', + + data: function (params) { + + if(parseInt($('#tirada').val())>0){ + var tirada = parseInt($('#tirada').val()) + } + else{ + var tirada = 0 + } + + var return_data = { + tarifa_id: tarifa_id, + paginas: parseInt($('#paginas').val())>0?parseInt($('#paginas').val()):0, + tirada: tirada, + ancho: ancho_libro, + alto: alto_libro, + searchtxt: params.term, // search term + }; + return_data = Object.assign(return_data, window.token_ajax); + + return return_data; + }, + delay: 60, + processResults: function (response) { + yeniden(response[window.csrf_token]); + return { + results: response.menu + }; + }, + cache: true + } + }); + $('#proveedor_enc_' + element.tarifa_encuadernado_id).on('change', proveedor_enc_event) + }); + + updatePresupuesto({ + update_lineas: false, + update_servicios: false, + update_envios: false, + update_resumen: true, + update_tiradas_alternativas: true + }) + check_serv_enc_error() + +} + +function proveedor_enc_event(){ + const dimension = getDimensionLibro(); + if(parseInt($('#tirada').val())>0){ + var tirada = parseInt($('#tirada').val()) + } + else{ + var tirada = 0 + } + + var datos = { + tarifa_encuadernacion_id: this.id.split('_')[2], + paginas: parseInt($('#paginas').val())>0?parseInt($('#paginas').val()):0, + tirada: tirada, + ancho: dimension.ancho, + alto: dimension.alto, + proveedor_id: parseInt($('#' + this.id).select2('data')[0].id), + POD: parseInt($('#POD').val()) + }; + datos = Object.assign(datos, window.token_ajax); + + $.ajax({ + type: "POST", + url: window.routes_servicios.dataTableOfPresupuestoEncuadernaciones, + data: datos, + success: function (data) { + + $('#precio_unidad_encuadernado_' + datos.tarifa_encuadernacion_id).text(parseFloat(data.values[0].precio_unidad).toFixed(2)) + $('#precio_total_encuadernado_' + datos.tarifa_encuadernacion_id).val(parseFloat(data.values[0].total).toFixed(2)) + $('#enc_margen_' + datos.tarifa_encuadernacion_id).val(parseFloat(data.values[0].margen).toFixed(2)) + + updatePresupuesto({ + update_lineas: false, + update_servicios: false, + update_envios: false, + update_resumen: true, + update_tiradas_alternativas: true + }) + yeniden(data[window.csrf_token]); + return true; + }, + error: function(e){ + return false; + } + }) + return false; +} + + +function check_serv_enc_error(){ + + var htmlString = ''; + + $('#tableOfServiciosEncuadernacion tr').each(function(){ + if($(this).find('td').eq(3).text() == '0.00'){ + htmlString = ` + `; + } + }) + $('#serv-enc-error').html(htmlString) +} + + +async function get_tarifas_enc(tipo=null, tarifa_id = -1){ + const dimension = getDimensionLibro(); + + if(parseInt($('#tirada').val())>0){ + var tirada = parseInt($('#tirada').val()) + } + else{ + var tirada = 0 + } + + var datos = { + tarifa_encuadernacion_id : tarifa_id, + solapas: $('#solapas').is(':checked')?1:0, + paginas: parseInt($('#paginas').val())>0?parseInt($('#paginas').val()):0, + tirada: tirada, + ancho: dimension.ancho, + alto: dimension.alto, + POD: parseInt($('#POD').val()) + }; + datos = Object.assign(datos, window.token_ajax) + + if(tipo != null){ + datos['tipo'] = tipo; + datos['tipo_impresion_id'] = parseInt($('#tipo_impresion').val()) + } + + $.ajax({ + type: "POST", + url: window.routes_servicios.dataTableOfPresupuestoEncuadernaciones, + data: datos, + success: function (data) { + + if(tipo=='default') + tableServiciosEnc.clear().draw() + + data.values.forEach((row) => { + + tableServiciosEnc.row.add([ + row.tarifa_id, + row.tarifa_nombre, + '', + '' + parseFloat(row.precio_unidad).toFixed(2) + '', + '', + '', + '' + ]).draw(false) + + $('#precio_total_encuadernado_' + row.tarifa_id).on('change', function(){ + updatePresupuesto({ + update_lineas: false, + update_servicios: false, + update_envios: false, + update_resumen: true, + update_tiradas_alternativas: true}) + }) + + $('#proveedor_enc_' + row.tarifa_id).select2({ + allowClear: false, + minimumResultsForSearch: -1, + ajax: { + url: window.routes_servicios.menuItemsOfPresupuestoEncuadernaciones, + type: 'post', + dataType: 'json', + + data: function (params) { + + if( parseInt( $('#tirada').val() )>0){ + var tirada = parseInt($('#tirada').val()) + } + else{ + var tirada = 0 + } + + var return_data = { + tarifa_id: row.tarifa_id, + paginas: parseInt($('#paginas').val())>0?parseInt($('#paginas').val()):0, + tirada: tirada, + ancho: ancho_libro, + alto: alto_libro, + searchtxt: params.term, // search term + } + return_data = Object.assign(return_data, window.token_ajax); + return return_data; + }, + delay: 60, + processResults: function (response) { + yeniden(response[window.csrf_token]); + return { + results: response.menu + }; + }, + cache: true + } + }); + + $('#proveedor_enc_' + row.tarifa_id).on('change', proveedor_enc_event) + + + }); + + if(data.values.lenght > 0){ + + updatePresupuesto({ + update_lineas: false, + update_servicios: false, + update_envios: false, + update_resumen: true, + update_tiradas_alternativas: true + }) + } + check_serv_enc_error() + yeniden(data[window.csrf_token]); + return true; + }, + error: function(e){ + return false; + } + }) + return false; +} + + +$('#insertar_serv_enc').on('click', function(){ + const tarifa_text = $('#add_servicio_enc_list').select2('data')[0].text.trim() + + if( $('#add_servicio_enc_list').select2('data')[0].text.trim().length > 0){ + if($('#tableOfServiciosEncuadernacion tr > td:contains(' + tarifa_text + ')').length == 0) + get_tarifas_enc('tarifa', $('#add_servicio_enc_list').select2('data')[0].id); + else{ + popErrorAlert(window.Presupuestos.errores.error_servicios_duplicados, 'serv-enc-alert') + } + } + check_serv_enc_error() +}) function get_datos_encuadernacion(){ var datosEnc = [] @@ -111,11 +819,22 @@ function get_datos_encuadernacion(){ async function get_servEncuadernacion_tiradasAlternativas(tirada, paginas, ancho, alto){ - serviciosEncuadernacion ={ + + const url = window.location.href; + const url_parts = url.split('/'); + if(url_parts[url_parts.length-2] == 'edit'){ + const id = url_parts[url_parts.length-1]; + } + else{ + const id = -1; + } + + var serviciosEncuadernacion ={ coste: 0.0, margen: 0.0, } - json_data = { + + var json_data = { datos: get_datos_encuadernacion(), tirada: parseInt(tirada), paginas: parseInt(paginas), @@ -123,28 +842,210 @@ async function get_servEncuadernacion_tiradasAlternativas(tirada, paginas, ancho alto: alto, POD: $('#POD').val() } - json_data = Object.assign(json_data, window.token_ajax); - const response = await fetch(window.location.origin + "/presupuestos/presupuestoencuadernaciones/update/" + id , { - method: "POST", - body: JSON.stringify(json_data), - headers: { - "Content-type": "application/json; charset=UTF-8" - } - }) - const values = await response.json(); - yeniden(values[window.csrf_token]); - values.lines.forEach((line) => { - serviciosEncuadernacion.coste += parseFloat(line[0].total); - serviciosEncuadernacion.margen += parseFloat(line[0].total)*parseFloat(line[0].margen)/100.0; - }); + if(json_data.datos.length>0){ + json_data = Object.assign(json_data, window.token_ajax); + + await fetch(window.location.origin + "/presupuestos/presupuestoencuadernaciones/update/" + id , { + method: "POST", + body: JSON.stringify(json_data), + headers: { + "Content-type": "application/json; charset=UTF-8" + } + }) + .then(response => response.json()) + .then(data => { + + //const values = await response.json(); + yeniden(data[window.csrf_token]); + data.lines.forEach((line) => { + serviciosEncuadernacion.coste += parseFloat(line[0].total); + serviciosEncuadernacion.margen += parseFloat(line[0].total)*parseFloat(line[0].margen)/100.0; + }); + + }); + } return serviciosEncuadernacion; + } /**************************************************************************************** * Seccion para los servicios de manipulado ***************************************************************************************/ +var tableServiciosManipulado = new DataTable('#tableOfServiciosManipulado',{ + scrollX: true, + searching: false, + paging: false, + info: false, + ordering: false, + responsive: true, + select: false, + language: { + url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json" + }, +}); + +function init_servicio_manipulado(){ + + $('#add_servicio_manipulado_list').select2({ + allowClear: false, + minimumResultsForSearch: -1, + placeholder: window.Presupuestos.servicioManipuladoList + }) + + window.serviciosmanipuladoList.forEach((element) =>{ + + tableServiciosManipulado.row.add([ + element.tarifa_manipulado_id, + element.nombre, + '' + parseFloat(element.precio_unidad).toFixed(2) + '', + '', + '', + '' + ]).draw(false) + + $('#precio_total_manipulado_' + element.tarifa_manipulado_id).on('change', function(){ + updatePresupuesto({ + update_lineas: false, + update_servicios: false, + update_envios: false, + update_resumen: true, + update_tiradas_alternativas: true}) + }) + + }) + check_serv_manipulado_error() +} + +function check_serv_manipulado_error(){ + + var htmlString = ''; + + $('#tableOfServiciosManipulado tr').each(function(){ + if($(this).find('td').eq(2).text() == '0.00'){ + htmlString = ` + `; + } + }) + $('#serv-manipulado-error').html(htmlString) +} + +async function get_tarifas_manipulado(tipo=null, tarifa_id = -1){ + + if(parseInt($('#tirada').val())>0){ + var tirada = parseInt($('#tirada').val()) + } + else{ + var tirada = 0 + } + + var datos = { + tarifa_manipulado_id : tarifa_id, + tirada: tirada, + POD: parseInt($('#POD').val()) + }; + datos = Object.assign(datos, window.token_ajax) + + if(tipo != null){ + datos['tipo'] = tipo; + datos['solapas'] = $('#solapas').is(':checked')?1:0; + datos['tipo_impresion_id'] = parseInt($('#tipo_impresion').val()); + } + + + + $.ajax({ + type: "POST", + url: window.routes_servicios.dataTableOfPresupuestoManipulados, + data: datos, + success: function (data) { + + if(tipo=='default') + tableServiciosManipulado.clear().draw() + + data.values.forEach((row) => { + + tableServiciosManipulado.row.add([ + row.tarifa_id, + row.tarifa_nombre, + '' + parseFloat(row.precio_unidad).toFixed(2) + '', + '', + '', + '' + ]).draw(false) + + $('#precio_total_manipulado_' + row.tarifa_id).on('change', function(){ + updatePresupuesto({ + update_lineas: false, + update_servicios: false, + update_envios: false, + update_resumen: true, + update_tiradas_alternativas: true}) + }) + }); + + if(data.values.lenght > 0){ + + updatePresupuesto({ + update_lineas: false, + update_servicios: false, + update_envios: false, + update_resumen: true, + update_tiradas_alternativas: true + }) + } + check_serv_manipulado_error() + yeniden(data[window.csrf_token]); + return true; + }, + error: function(e){ + return false; + } + }) + return false; +} + +$('#insertar_serv_manipulado').on('click', function(){ + const tarifa_text = $('#add_servicio_manipulado_list').select2('data')[0].text.trim() + + if( $('#add_servicio_manipulado_list').select2('data')[0].text.trim().length > 0){ + if($('#tableOfServiciosManipulado tr > td:contains(' + tarifa_text + ')').length == 0){ + get_tarifas_manipulado(null, $('#add_servicio_manipulado_list').select2('data')[0].id); + } + else{ + popErrorAlert(window.Presupuestos.errores.error_servicios_duplicados, 'serv-manipulado-alert') + } + } + check_serv_manipulado_error() +}) + + +function servicioGuardas(add_service = false){ + if(add_service){ + $('#add_servicio_manipulado_list').val(window.serviciosAutomaticos.plegadoGuardas) + $('#insertar_serv_manipulado').click() + } + else{ + var row_indexes = tableServiciosManipulado.rows().eq( 0 ).filter( function (rowIdx) { + return tableServiciosManipulado.cell( rowIdx, 0 ).data() == window.serviciosAutomaticos.plegadoGuardas ? true : false; + } ); + if(row_indexes.length > 0){ + tableServiciosManipulado.row(row_indexes[0]).remove().draw() + check_serv_manipulado_error() + } + } +} + function get_datos_manipulado(){ var datosManipulado = [] @@ -179,36 +1080,234 @@ function get_datos_manipulado(){ async function get_servManipulado_tiradasAlternativas(tirada){ - serviciosManipulado ={ + + const url = window.location.href; + const url_parts = url.split('/'); + if(url_parts[url_parts.length-2] == 'edit'){ + const id = url_parts[url_parts.length-1]; + } + else{ + const id = -1; + } + + var serviciosManipulado ={ coste: 0.0, margen: 0.0, } - json_data = { + var json_data = { datos: get_datos_manipulado(), tirada: parseInt(tirada), POD: $('#POD').val() } - json_data = Object.assign(json_data, window.token_ajax); + if(json_data.datos.length>0){ + json_data = Object.assign(json_data, window.token_ajax); - const response = await fetch(window.location.origin + "/presupuestos/presupuestomanipulados/update/" + id , { - method: "POST", - body: JSON.stringify(json_data), - headers: { - "Content-type": "application/json; charset=UTF-8" - } - }) - const values = await response.json(); - yeniden(values[window.csrf_token]); - values.lines.forEach((line) => { - serviciosManipulado.coste += parseFloat(line[0].total); - serviciosManipulado.margen += parseFloat(line[0].total)*parseFloat(line[0].margen)/100.0; - }); + await fetch(window.location.origin + "/presupuestos/presupuestomanipulados/update/" + id , { + method: "POST", + body: JSON.stringify(json_data), + headers: { + "Content-type": "application/json; charset=UTF-8" + } + }) + .then(response => response.json()) + .then(data => { + //const values = await response.json(); + yeniden(data[window.csrf_token]); + data.lines.forEach((line) => { + serviciosManipulado.coste += parseFloat(line[0].total); + serviciosManipulado.margen += parseFloat(line[0].total)*parseFloat(line[0].margen)/100.0; + }); + + }); + } return serviciosManipulado; } /**************************************************************************************** * Seccion para los servicios de preimpresión ***************************************************************************************/ +var tableServiciosPreimpresion = new DataTable('#tableOfServiciosPreimpresion',{ + scrollX: true, + searching: false, + paging: false, + info: false, + ordering: false, + responsive: true, + select: false, + language: { + url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json" + } +}); + + +function init_servicio_preimpresion(){ + + + $('#add_servicio_preimpresion_list').select2({ + allowClear: false, + minimumResultsForSearch: -1, + placeholder: window.Presupuestos.servicioPreimpresionList + }) + + window.serviciospreimpresionList.forEach((element) =>{ + + tableServiciosPreimpresion.row.add([ + element.tarifa_preimpresion_id, + element.nombre, + '', + '', + '' + ]).draw(false) + + $('#precio_preimpresion_' + element.tarifa_preimpresion_id).on('change', function(){ + updatePresupuesto({ + update_lineas: false, + update_servicios: false, + update_envios: false, + update_resumen: true, + update_tiradas_alternativas: true}) + }) + + }) + + updatePresupuesto({ + update_lineas: false, + update_servicios: false, + update_envios: false, + update_resumen: true, + update_tiradas_alternativas: true + }) + check_serv_preimpresion_error() +} + +function check_serv_preimpresion_error(){ + + var htmlString = ''; + + $('#tableOfServiciosPreimpresion tr').each(function(){ + + if(parseFloat($(this).find('td:eq(2) input').val()) == '0'){ + htmlString = ` + `; + } + }) + $('#serv-preimpresion-error').html(htmlString) +} + +function get_tarifas_preimpresion(tarifa_id = -1){ + + var datos = { + tarifa_preimpresion_id : tarifa_id, + }; + datos = Object.assign(datos, window.token_ajax) + + + $.ajax({ + type: "POST", + url: window.routes_servicios.dataTableOfPresupuestoPreimpresiones, + data: datos, + success: function (data) { + + data.values.forEach((row) => { + + tableServiciosPreimpresion.row.add([ + row.tarifa_id, + row.tarifa_nombre, + '', + '', + '' + ]).draw(false) + + $('#precio_preimpresion_' + row.tarifa_id).on('change', function(){ + updatePresupuesto({ + update_lineas: false, + update_servicios: false, + update_envios: false, + update_resumen: true, + update_tiradas_alternativas: true}) + }) + + }); + + if(data.values.lenght > 0){ + + updatePresupuesto({ + update_lineas: false, + update_servicios: false, + update_envios: false, + update_resumen: true, + update_tiradas_alternativas: true + }) + } + check_serv_preimpresion_error() + yeniden(data[window.csrf_token]); + return true; + }, + error: function(e){ + return false; + } + }) + return false; +} + + +function servicioPrototipo(){ + if($('#prototipo').prop('checked')){ + $('#add_servicio_preimpresion_list').val(serviciosAutomaticos.prototipo) + $('#insertar_serv_preimpresion').click() + } + else{ + var row_indexes = tableServiciosPreimpresion.rows().eq( 0 ).filter( function (rowIdx) { + return tableServiciosPreimpresion.cell( rowIdx, 0 ).data() == serviciosAutomaticos.prototipo ? true : false; + } ); + if(row_indexes.length > 0){ + tableServiciosPreimpresion.row(row_indexes[0]).remove().draw() + check_serv_preimpresion_error() + } + } +} + +function servicioFerro(){ + var row_indexes = tableServiciosPreimpresion.rows().eq( 0 ).filter( function (rowIdx) { + return tableServiciosPreimpresion.cell( rowIdx, 0 ).data() == serviciosAutomaticos.ferro ? true : false; + } ); + if($('#ferro').prop('checked')){ + if(row_indexes.length == 0){ + $('#add_servicio_preimpresion_list').val(serviciosAutomaticos.ferro) + $('#insertar_serv_preimpresion').click() + } + } + else{ + if(row_indexes.length > 0){ + tableServiciosPreimpresion.row(row_indexes[0]).remove().draw() + check_serv_preimpresion_error() + } + } +} + +$('#insertar_serv_preimpresion').on('click', function(){ + const tarifa_text = $('#add_servicio_preimpresion_list').select2('data')[0].text.trim() + + if( $('#add_servicio_preimpresion_list').select2('data')[0].text.trim().length > 0){ + if($('#tableOfServiciosPreimpresion tr > td:contains(' + tarifa_text + ')').length == 0) + get_tarifas_preimpresion($('#add_servicio_preimpresion_list').select2('data')[0].id); + else{ + popErrorAlert(window.Presupuestos.errores.error_servicios_duplicados, 'serv-preimpresion-alert') + } + } + check_serv_preimpresion_error() +}) + + function get_datos_preimpresion(){ var datosPreimpresion = [] @@ -238,29 +1337,188 @@ function get_datos_preimpresion(){ return datosPreimpresion } + async function get_servPreimpresion_tiradasAlternativas(){ - serviciosPreimpresion ={ + + const url = window.location.href; + const url_parts = url.split('/'); + if(url_parts[url_parts.length-2] == 'edit'){ + const id = url_parts[url_parts.length-1]; + } + else{ + const id = -1; + } + + var serviciosPreimpresion ={ coste: 0.0, margen: 0.0, } - json_data = { + var json_data = { datos: get_datos_preimpresion(), POD: $('#POD').val() } - json_data = Object.assign(json_data, window.token_ajax); + if(json_data.datos.length>0){ - const response = await fetch(window.location.origin + "/presupuestos/presupuestopreimpresiones/update/" + id , { + json_data = Object.assign(json_data, window.token_ajax); + + await fetch(window.location.origin + "/presupuestos/presupuestopreimpresiones/update/" + id , { + method: "POST", + body: JSON.stringify(json_data), + headers: { + "Content-type": "application/json; charset=UTF-8" + } + }) + .then(response => response.json()) + .then(data => { + //const values = await response.json(); + yeniden(data[window.csrf_token]); + data.lines.forEach((line) => { + serviciosPreimpresion.coste += parseFloat(line[0].precio); + serviciosPreimpresion.margen += parseFloat(line[0].precio)*parseFloat(line[0].margen)/100.0; + }); + + }); + } + return serviciosPreimpresion; +} + + +async function actualizar_servicios(update_preimpresion=false){ + + const domain = window.location.origin + const url = window.location.href; + const url_parts = url.split('/'); + if(url_parts[url_parts.length-2] == 'edit'){ + const id = url_parts[url_parts.length-1]; + } + else{ + const id = -1; + } + + const dimension = getDimensionLibro(); + + if(parseInt($('#tirada').val())>0){ + var tirada = parseInt($('#tirada').val()) + } + else{ + var tirada = 0 + } + var paginas = parseInt($('#paginas').val())>0?parseInt($('#paginas').val()):0 + + var datos_json_acabados = { + datos: get_datos_acabado(), + tirada: tirada, + POD: parseInt($('#POD').val()), + } + datos_json_acabados = Object.assign(datos_json_acabados, window.token_ajax); + + var datos_json_encuadernacion = { + datos: get_datos_encuadernacion(), + tirada: tirada, + paginas: paginas, + ancho: dimension.ancho, + alto: dimension.alto, + POD: parseInt($('#POD').val()), + } + datos_json_encuadernacion = Object.assign(datos_json_encuadernacion, window.token_ajax); + + var datos_json_manipulado = { + datos: get_datos_manipulado(), + tirada: tirada, + POD: parseInt($('#POD').val()), + } + datos_json_manipulado = Object.assign(datos_json_manipulado, window.token_ajax); + + var datos_json_preimpresion = { + datos: get_datos_preimpresion(), + } + datos_json_preimpresion = Object.assign(datos_json_preimpresion, window.token_ajax); + + + fetch(domain + "/presupuestos/presupuestoacabados/update/" + id , { method: "POST", - body: JSON.stringify(json_data), + body: JSON.stringify(datos_json_acabados), headers: { "Content-type": "application/json; charset=UTF-8" } }) - const values = await response.json(); - yeniden(values[window.csrf_token]); - values.lines.forEach((line) => { - serviciosPreimpresion.coste += parseFloat(line[0].precio); - serviciosPreimpresion.margen += parseFloat(line[0].precio)*parseFloat(line[0].margen)/100.0; - }); - return serviciosPreimpresion; + .then(response => response.json()) + .then(data => { + data.lines.forEach((line) => { + $('#precio_unidad_acabado_' + line[0].tarifa_id).text(parseFloat(line[0].precio_unidad).toFixed(2)) + $('#precio_total_acabado_' + line[0].tarifa_id).val(parseFloat(line[0].total).toFixed(2)) + $('#acabado_margen_' + line[0].tarifa_id).text(parseFloat(line[0].margen).toFixed(2)) + }); + check_serv_acabado_error() + yeniden(data[window.csrf_token]); + }).then( + + fetch(domain + "/presupuestos/presupuestoencuadernaciones/update/" + id , { + method: "POST", + body: JSON.stringify(datos_json_encuadernacion), + headers: { + "Content-type": "application/json; charset=UTF-8" + } + }) + .then(response => response.json()) + .then(data => { + data.lines.forEach((line) => { + + $('#proveedor_enc_' + line[0].tarifa_id).off('change') + if(line[0].hasOwnProperty('proveedor_id')){ + $('#proveedor_enc_' + line[0].tarifa_id) + .append('') + } + else{ + $('#proveedor_enc_' + line[0].tarifa_id).empty() + .append('') + } + $('#precio_unidad_encuadernado_' + line[0].tarifa_id).text(parseFloat(line[0].precio_unidad).toFixed(2)) + $('#precio_total_encuadernado_' + line[0].tarifa_id).val(parseFloat(line[0].total).toFixed(2)) + $('#enc_margen_' + line[0].tarifa_id).val(parseFloat(line[0].margen).toFixed(2)) + $('#proveedor_enc_' + line[0].tarifa_id).on('change', proveedor_enc_event) + }); + check_serv_enc_error() + yeniden(data[window.csrf_token]); + }).then( + fetch(domain + "/presupuestos/presupuestomanipulados/update/" + id , { + method: "POST", + body: JSON.stringify(datos_json_manipulado), + headers: { + "Content-type": "application/json; charset=UTF-8" + } + }) + .then(response => response.json()) + .then(data => { + data.lines.forEach((line) => { + $('#precio_unidad_manipulado_' + line[0].tarifa_id).text(parseFloat(line[0].precio_unidad).toFixed(2)) + $('#precio_total_manipulado_' + line[0].tarifa_id).val(parseFloat(line[0].total).toFixed(2)) + $('#manipulado_margen_' + line[0].tarifa_id).val(parseFloat(line[0].margen).toFixed(2)) + }); + check_serv_manipulado_error() + yeniden(data[window.csrf_token]); + }).then(function(){ + if(update_preimpresion){ + fetch(domain + "/presupuestos/presupuestopreimpresiones/update/" + id , { + method: "POST", + body: JSON.stringify(datos_json_preimpresion), + headers: { + "Content-type": "application/json; charset=UTF-8" + } + }) + .then(response => response.json()) + .then(data => { + + data.lines.forEach((line) => { + $('#precio_preimpresion_' + line[0].tarifa_id).val(parseFloat(line[0].total).toFixed(2)) + $('#preimpresion_margen_' + line[0].tarifa_id).val(parseFloat(line[0].margen).toFixed(2)) + }); + check_serv_preimpresion_error() + yeniden(data[window.csrf_token]); + }) + } + }) + ) + ) + } \ No newline at end of file diff --git a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosServiciosItems.php b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosServiciosItems.php index dbc84863..22c58bdf 100755 --- a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosServiciosItems.php +++ b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosServiciosItems.php @@ -230,1084 +230,33 @@ -section("additionalInlineJs") ?> - - const url = window.location.href; - const url_parts = url.split('/'); - if(url_parts[url_parts.length-2] == 'edit'){ - id = url_parts[url_parts.length-1]; - } - else{ - id=-1 - } - - $('.nav-servicios button').on('shown.bs.tab', function(){ - $("#tableOfServiciosEncuadernacion").DataTable().columns.adjust(); - $("#tableOfServiciosPreimpresion").DataTable().columns.adjust(); - $("#tableOfServiciosManipulado").DataTable().columns.adjust(); - $("#tableOfServiciosAcabado").DataTable().columns.adjust(); - }) - - - $('#serv_default').on('click', function(){ - get_tarifas_enc('default').then( - get_tarifas_manipulado('default') - ) - }) - - // Delete row - $(document).on('click', '.btn-delete-serv', function(e) { - const dataId = $(this).attr('data-id'); - const rowId = $(this).closest('td').parent()[0].sectionRowIndex; - var dataText = null; - - var table = ""; - if($(this).closest('table').attr('id').includes('tableOfServiciosEncuadernacion')){ - table = "tableOfServiciosEncuadernacion"; - } - else if($(this).closest('table').attr('id').includes('tableOfServiciosAcabado')){ - table = "tableOfServiciosAcabado"; - dataText = $(this).attr('data-text'); - } - else if($(this).closest('table').attr('id').includes('tableOfServiciosManipulado')){ - table = "tableOfServiciosManipulado"; - } - else if($(this).closest('table').attr('id').includes('tableOfServiciosPreimpresion')){ - table = "tableOfServiciosPreimpresion"; - } - else{ - table = ""; - } - - if(table != ""){ - if(dataText==null){ - $('#' + table).DataTable().rows( function ( idx, data, node ) { - return data[0] === dataId; - } ) - .remove() - .draw(); - } - $('#' + table).DataTable().rows( function ( idx, data, node ) { - return ((data[0] === dataId) && (data[1]=== dataText)); - } ) - .remove() - .draw(); - } - - check_serv_enc_error() - check_serv_acabado_error() - check_serv_preimpresion_error() - check_serv_manipulado_error() - - }); - - function save_servicios(){ - - var datosAcabado = get_datos_acabado() - var datosEnc = get_datos_encuadernacion() - var datosManipulado = get_datos_manipulado() - var datosPreimpresion = get_datos_preimpresion() - - const domain = window.location.origin - - fetch(domain + "/presupuestos/presupuestoencuadernaciones/edit/" + id , { - method: "POST", - body: JSON.stringify({ - datos: datosEnc, - : v - }), - headers: { - "Content-type": "application/json; charset=UTF-8" - } - }) - .then(response => response.json()) - .then(data => { - yeniden(data.); - }) - .then( - fetch(domain + "/presupuestos/presupuestomanipulados/edit/" + id , { - method: "POST", - body: JSON.stringify({ - datos: datosManipulado, - : v - }), - headers: { - "Content-type": "application/json; charset=UTF-8" - } - }) - .then(response => response.json()) - .then(data => { - yeniden(data.); - }) - ) - .then( - fetch(domain + "/presupuestos/presupuestoacabados/edit/" + id , { - method: "POST", - body: JSON.stringify({ - datos: datosAcabado, - : v - }), - headers: { - "Content-type": "application/json; charset=UTF-8" - } - }) - .then(response => response.json()) - .then(data => { - yeniden(data.); - }) - ) - .then( - fetch(domain + "/presupuestos/presupuestopreimpresiones/edit/" + id , { - method: "POST", - body: JSON.stringify({ - datos: datosPreimpresion, - : v - }), - headers: { - "Content-type": "application/json; charset=UTF-8" - } - }) - .then(response => response.json()) - .then(data => { - yeniden(data.); - }) - ) - } - - function update_servicios(update_preimpresion=false){ - const domain = window.location.origin - const dimension = getDimensionLibro(); - - if(parseInt($('#tirada').val())>0){ - var tirada = parseInt($('#tirada').val()) - } - else{ - var tirada = 0 - } - var paginas = parseInt($('#paginas').val())>0?parseInt($('#paginas').val()):0 - - var datosAcabado = get_datos_acabado() - var datosEnc = get_datos_encuadernacion() - var datosManipulado = get_datos_manipulado() - if(update_preimpresion) - var datosPreimpresion = get_datos_preimpresion() - - fetch(domain + "/presupuestos/presupuestoacabados/update/" + id , { - method: "POST", - body: JSON.stringify({ - datos: datosAcabado, - tirada: tirada, - POD: , - : v - }), - headers: { - "Content-type": "application/json; charset=UTF-8" - } - }) - .then(response => response.json()) - .then(data => { - data.lines.forEach((line) => { - $('#precio_unidad_acabado_' + line[0].tarifa_id).text(parseFloat(line[0].precio_unidad).toFixed(2)) - $('#precio_total_acabado_' + line[0].tarifa_id).val(parseFloat(line[0].total).toFixed(2)) - $('#acabado_margen_' + line[0].tarifa_id).text(parseFloat(line[0].margen).toFixed(2)) - }); - check_serv_acabado_error() - yeniden(data.); - }).then( - fetch(domain + "/presupuestos/presupuestoencuadernaciones/update/" + id , { - method: "POST", - body: JSON.stringify({ - datos: datosEnc, - tirada: tirada, - paginas: paginas, - ancho: dimension.ancho, - alto: dimension.alto, - POD: , - : v - }), - headers: { - "Content-type": "application/json; charset=UTF-8" - } - }) - .then(response => response.json()) - .then(data => { - data.lines.forEach((line) => { - - $('#proveedor_enc_' + line[0].tarifa_id).off('change') - if(line[0].hasOwnProperty('proveedor_id')){ - $('#proveedor_enc_' + line[0].tarifa_id) - .append('') - } - else{ - $('#proveedor_enc_' + line[0].tarifa_id).empty() - .append('') - } - $('#precio_unidad_encuadernado_' + line[0].tarifa_id).text(parseFloat(line[0].precio_unidad).toFixed(2)) - $('#precio_total_encuadernado_' + line[0].tarifa_id).val(parseFloat(line[0].total).toFixed(2)) - $('#enc_margen_' + line[0].tarifa_id).val(parseFloat(line[0].margen).toFixed(2)) - $('#proveedor_enc_' + line[0].tarifa_id).on('change', proveedor_enc_event) - }); - check_serv_enc_error() - yeniden(data.); - }).then( - fetch(domain + "/presupuestos/presupuestomanipulados/update/" + id , { - method: "POST", - body: JSON.stringify({ - datos: datosManipulado, - tirada: tirada, - POD: , - : v - }), - headers: { - "Content-type": "application/json; charset=UTF-8" - } - }) - .then(response => response.json()) - .then(data => { - data.lines.forEach((line) => { - $('#precio_unidad_manipulado_' + line[0].tarifa_id).text(parseFloat(line[0].precio_unidad).toFixed(2)) - $('#precio_total_manipulado_' + line[0].tarifa_id).val(parseFloat(line[0].total).toFixed(2)) - $('#manipulado_margen_' + line[0].tarifa_id).val(parseFloat(line[0].margen).toFixed(2)) - }); - check_serv_manipulado_error() - yeniden(data.); - }).then(function(){ - if(update_preimpresion){ - fetch(domain + "/presupuestos/presupuestopreimpresiones/update/" + id , { - method: "POST", - body: JSON.stringify({ - datos: datosPreimpresion, - : v - }), - headers: { - "Content-type": "application/json; charset=UTF-8" - } - }) - .then(response => response.json()) - .then(data => { - - data.lines.forEach((line) => { - $('#precio_preimpresion_' + line[0].tarifa_id).val(parseFloat(line[0].total).toFixed(2)) - $('#preimpresion_margen_' + line[0].tarifa_id).val(parseFloat(line[0].margen).toFixed(2)) - }); - check_serv_preimpresion_error() - yeniden(data.); - }) - } - }) - ) - ) - - } - -endSection() ?> - - - - section("additionalInlineJs") ?> // Generación de la lista de servicios de acabado (id, nombre) - const acabadosList = ; + window.acabadosList = ; + window.serviciosacabadosList = ; + window.serviciosAutomaticos = ; - var tableServiciosAcabado = new DataTable('#tableOfServiciosAcabado',{ - scrollX: true, - searching: false, - paging: false, - info: false, - ordering: false, - responsive: true, - select: false, - language: { - url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json" - }, - "drawCallback": function(settings ) { - updateTotales(false, true, false) - } - - }); - - function init_servicio_acabado(){ - const serviciosacabadosList = ; - - $('#add_servicio_acabado_list').select2({ - allowClear: false, - minimumResultsForSearch: -1, - placeholder: '' - }) - - serviciosacabadosList.forEach((element) =>{ - - nombre_completo = element.nombre - if (element.cubierta == 1){ - nombre_completo += ' ()' - } - else if (element.sobrecubierta == 1){ - nombre_completo += ' ()' - } - tableServiciosAcabado.row.add([ - element.tarifa_acabado_id, - nombre_completo, - '' + parseFloat(element.precio_unidad).toFixed(2) + '', - '', - '', - '' - ]).draw(false) - - }) - check_serv_acabado_error() - } - - function check_serv_acabado_error(){ - - var htmlString = ''; - - $('#tableOfServiciosAcabado tr').each(function(){ - if($(this).find('td').eq(2).text() == '0.00'){ - htmlString = ` - `; - } - }) - $('#serv-acabado-error').html(htmlString) - } - - function get_tarifas_acabado(tarifa_id = -1, uso=null){ - - if(parseInt($('#tirada').val())>0){ - var tirada = parseInt($('#tirada').val()) - } - else{ - var tirada = 0 - } - - var datos = { - tarifa_acabado_id : tarifa_id, - tirada: tirada, - POD: , - : v - }; - - - $.ajax({ - type: "POST", - url: '', - data: datos, - success: function (data) { - - data.values.forEach((row) => { - - nombre = row.tarifa_nombre - if(uso!= null) - nombre += ' (' + uso + ')' - - tableServiciosAcabado.row.add([ - row.tarifa_id, - nombre, - '' + parseFloat(row.precio_unidad).toFixed(2) + '', - '', - '', - '' - ]).draw(false) - }); - - check_serv_acabado_error() - yeniden(data.); - return true; - }, - error: function(e){ - return false; - } - }) - return false; - } - - function servicioRetractilado(){ - if($('#retractilado').prop('checked')){ - $('#add_servicio_acabado_list').val() - $('#insertar_serv_acabado').click() - } - else{ - var row_indexes = tableServiciosAcabado.rows().eq( 0 ).filter( function (rowIdx) { - return tableServiciosAcabado.cell( rowIdx, 0 ).data() == ? true : false; - } ); - if(row_indexes.length > 0){ - tableServiciosAcabado.row(row_indexes[0]).remove().draw() - check_serv_acabado_error() - } - } - } - - function servicioRetractilado5(){ - if($('#retractilado5').prop('checked')){ - $('#add_servicio_acabado_list').val() - $('#insertar_serv_acabado').click() - } - else{ - var row_indexes = tableServiciosAcabado.rows().eq( 0 ).filter( function (rowIdx) { - return tableServiciosAcabado.cell( rowIdx, 0 ).data() == ? true : false; - } ); - if(row_indexes.length > 0){ - tableServiciosAcabado.row(row_indexes[0]).remove().draw() - check_serv_acabado_error() - } - } - } - - function servicioFajaColor(){ - if($('#fajaColor').prop('checked')){ - $('#add_servicio_acabado_list').val() - $('#insertar_serv_acabado').click() - } - else{ - var row_indexes = tableServiciosAcabado.rows().eq( 0 ).filter( function (rowIdx) { - return tableServiciosAcabado.cell( rowIdx, 0 ).data() == ? true : false; - } ); - if(row_indexes.length > 0){ - tableServiciosAcabado.row(row_indexes[0]).remove().draw() - check_serv_acabado_error() - } - } - } - - $('#insertar_serv_acabado').on('click', function(){ - const tarifa_text = $('#add_servicio_acabado_list').select2('data')[0].text.trim(); + window.serviciosencuadernadosList = ; - if(tarifa_text.length > 0){ - var table = $("#tableOfServiciosAcabado").DataTable(); - var rows = table.rows().data().toArray(); - var found = rows.some(row => row[1] === tarifa_text); - - if(!found) - get_tarifas_acabado($('#add_servicio_acabado_list').select2('data')[0].id); - else - popErrorAlert("", 'serv-acabado-alert'); - } - check_serv_acabado_error(); - }) + window.serviciosmanipuladoList = ; + window.serviciospreimpresionList = ; - function insertar_acabado_exterior($servicio_id, $uso=""){ - - const tarifa_text = '(' +$uso + ')' - - var tablaAcabados = $("#tableOfServiciosAcabado").DataTable() - tablaAcabados.rows().every(function () { - var data = this.data(); - if(data[1].includes(tarifa_text)){ - this.remove().draw(false); - } - }) - - get_tarifas_acabado($servicio_id, $uso); - tablaAcabados.draw(); - check_serv_acabado_error() + window.routes_servicios = { + dataTableOfPresupuestoAcabados: "", + dataTableOfPresupuestoPreimpresion: "", + dataTableOfPresupuestoEncuadernaciones: "", + dataTableOfPresupuestoManipulados: "", + menuItemsOfPresupuestoEncuadernaciones: '', } - - init_servicio_acabado() -endSection() ?> - - - - -section("additionalInlineJs") ?> - - var tableServiciosEnc = new DataTable('#tableOfServiciosEncuadernacion',{ - scrollX: true, - searching: false, - paging: false, - info: false, - ordering: false, - responsive: true, - select: false, - language: { - url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json" - }, - "drawCallback": function(settings ) { - updateTotales(false, true, false) - } - - }); - - - function init_servicio_encuadernado(){ - const serviciosencuadernadosList = ; - - $('#add_servicio_enc_list').select2({ - allowClear: false, - minimumResultsForSearch: -1, - placeholder: '' - }) - - serviciosencuadernadosList.forEach((element) =>{ - - const tarifa_id = element.tarifa_encuadernado_id - var proveedor_nombre = element.proveedor===null?'': element.proveedor - - tableServiciosEnc.row.add([ - element.tarifa_encuadernado_id, - element.nombre, - '', - '' + parseFloat(element.precio_unidad).toFixed(2) + '', - '', - '', - '' - ]).draw(false) - - $('#proveedor_enc_' + element.tarifa_encuadernado_id).select2({ - allowClear: false, - minimumResultsForSearch: -1, - ajax: { - url: '', - type: 'post', - dataType: 'json', - - data: function (params) { - - if(parseInt($('#tirada').val())>0){ - var tirada = parseInt($('#tirada').val()) - } - else{ - var tirada = 0 - } - return { - tarifa_id: tarifa_id, - paginas: parseInt($('#paginas').val())>0?parseInt($('#paginas').val()):0, - tirada: tirada, - ancho: ancho_libro, - alto: alto_libro, - searchtxt: params.term, // search term - : v - }; - }, - delay: 60, - processResults: function (response) { - yeniden(response.); - return { - results: response.menu - }; - }, - cache: true - } - }); - $('#proveedor_enc_' + element.tarifa_encuadernado_id).on('change', proveedor_enc_event) - }); - - check_serv_enc_error() - - } - - function proveedor_enc_event(){ - const dimension = getDimensionLibro(); - if(parseInt($('#tirada').val())>0){ - var tirada = parseInt($('#tirada').val()) - } - else{ - var tirada = 0 - } - - var datos = { - tarifa_encuadernacion_id: this.id.split('_')[2], - paginas: parseInt($('#paginas').val())>0?parseInt($('#paginas').val()):0, - tirada: tirada, - ancho: dimension.ancho, - alto: dimension.alto, - proveedor_id: parseInt($('#' + this.id).select2('data')[0].id), - POD: , - : v - }; - - $.ajax({ - type: "POST", - url: '', - data: datos, - success: function (data) { - - $('#precio_unidad_encuadernado_' + datos.tarifa_encuadernacion_id).text(parseFloat(data.values[0].precio_unidad).toFixed(2)) - $('#precio_total_encuadernado_' + datos.tarifa_encuadernacion_id).val(parseFloat(data.values[0].total).toFixed(2)) - $('#enc_margen_' + datos.tarifa_encuadernacion_id).val(parseFloat(data.values[0].margen).toFixed(2)) - yeniden(data.); - return true; - }, - error: function(e){ - return false; - } - }) - return false; - } - - - function check_serv_enc_error(){ - - var htmlString = ''; - - $('#tableOfServiciosEncuadernacion tr').each(function(){ - if($(this).find('td').eq(3).text() == '0.00'){ - htmlString = ` - `; - } - }) - $('#serv-enc-error').html(htmlString) - } - - - async function get_tarifas_enc(tipo=null, tarifa_id = -1){ - const dimension = getDimensionLibro(); - - if(parseInt($('#tirada').val())>0){ - var tirada = parseInt($('#tirada').val()) - } - else{ - var tirada = 0 - } - - var datos = { - tarifa_encuadernacion_id : tarifa_id, - solapas: $('#solapas').is(':checked')?1:0, - paginas: parseInt($('#paginas').val())>0?parseInt($('#paginas').val()):0, - tirada: tirada, - ancho: dimension.ancho, - alto: dimension.alto, - POD: , - : v - }; - - if(tipo != null){ - datos['tipo'] = tipo; - datos['tipo_impresion_id'] = ; - } - - $.ajax({ - type: "POST", - url: '', - data: datos, - success: function (data) { - - if(tipo=='default') - tableServiciosEnc.clear().draw() - - data.values.forEach((row) => { - - tableServiciosEnc.row.add([ - row.tarifa_id, - row.tarifa_nombre, - '', - '' + parseFloat(row.precio_unidad).toFixed(2) + '', - '', - '', - '' - ]).draw(false) - - $('#proveedor_enc_' + row.tarifa_id).select2({ - allowClear: false, - minimumResultsForSearch: -1, - ajax: { - url: '', - type: 'post', - dataType: 'json', - - data: function (params) { - - if( parseInt( $('#tirada').val() )>0){ - var tirada = parseInt($('#tirada').val()) - } - else{ - var tirada = 0 - } - return { - tarifa_id: row.tarifa_id, - paginas: parseInt($('#paginas').val())>0?parseInt($('#paginas').val()):0, - tirada: tirada, - ancho: ancho_libro, - alto: alto_libro, - searchtxt: params.term, // search term - : v - }; - }, - delay: 60, - processResults: function (response) { - yeniden(response.); - return { - results: response.menu - }; - }, - cache: true - } - }); - - $('#proveedor_enc_' + row.tarifa_id).on('change', proveedor_enc_event) - - - }); - - check_serv_enc_error() - yeniden(data.); - return true; - }, - error: function(e){ - return false; - } - }) - return false; - } - - - $('#insertar_serv_enc').on('click', function(){ - const tarifa_text = $('#add_servicio_enc_list').select2('data')[0].text.trim() - - if( $('#add_servicio_enc_list').select2('data')[0].text.trim().length > 0){ - if($('#tableOfServiciosEncuadernacion tr > td:contains(' + tarifa_text + ')').length == 0) - get_tarifas_enc('tarifa', $('#add_servicio_enc_list').select2('data')[0].id); - else{ - popErrorAlert("", 'serv-enc-alert') - } - } - check_serv_enc_error() - }) - init_servicio_encuadernado() -endSection() ?> - - - - -section("additionalInlineJs") ?> - - var tableServiciosManipulado = new DataTable('#tableOfServiciosManipulado',{ - scrollX: true, - searching: false, - paging: false, - info: false, - ordering: false, - responsive: true, - select: false, - language: { - url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json" - }, - "drawCallback": function(settings ) { - updateTotales(false, true, false) - } - - }); - - function init_servicio_manipulado(){ - const serviciosmanipuladoList = ; - - $('#add_servicio_manipulado_list').select2({ - allowClear: false, - minimumResultsForSearch: -1, - placeholder: '' - }) - - serviciosmanipuladoList.forEach((element) =>{ - - tableServiciosManipulado.row.add([ - element.tarifa_manipulado_id, - element.nombre, - '' + parseFloat(element.precio_unidad).toFixed(2) + '', - '', - '', - '' - ]).draw(false) - - }) - check_serv_manipulado_error() - } - - function check_serv_manipulado_error(){ - - var htmlString = ''; - - $('#tableOfServiciosManipulado tr').each(function(){ - if($(this).find('td').eq(2).text() == '0.00'){ - htmlString = ` - `; - } - }) - $('#serv-manipulado-error').html(htmlString) - } - - async function get_tarifas_manipulado(tipo=null, tarifa_id = -1){ - - if(parseInt($('#tirada').val())>0){ - var tirada = parseInt($('#tirada').val()) - } - else{ - var tirada = 0 - } - - var datos = { - tarifa_manipulado_id : tarifa_id, - tirada: tirada, - POD: , - : v - }; - - if(tipo != null){ - datos['tipo'] = tipo; - datos['solapas'] = $('#solapas').is(':checked')?1:0; - datos['tipo_impresion_id'] = ; - } - - - - $.ajax({ - type: "POST", - url: '', - data: datos, - success: function (data) { - - if(tipo=='default') - tableServiciosManipulado.clear().draw() - - data.values.forEach((row) => { - - tableServiciosManipulado.row.add([ - row.tarifa_id, - row.tarifa_nombre, - '' + parseFloat(row.precio_unidad).toFixed(2) + '', - '', - '', - '' - ]).draw(false) - }); - - check_serv_manipulado_error() - yeniden(data.); - return true; - }, - error: function(e){ - return false; - } - }) - return false; - } - - $('#insertar_serv_manipulado').on('click', function(){ - const tarifa_text = $('#add_servicio_manipulado_list').select2('data')[0].text.trim() - - if( $('#add_servicio_manipulado_list').select2('data')[0].text.trim().length > 0){ - if($('#tableOfServiciosManipulado tr > td:contains(' + tarifa_text + ')').length == 0){ - get_tarifas_manipulado(null, $('#add_servicio_manipulado_list').select2('data')[0].id); - } - else{ - popErrorAlert("", 'serv-manipulado-alert') - } - } - check_serv_manipulado_error() - }) - - - function servicioGuardas(add_service = false){ - if(add_service){ - $('#add_servicio_manipulado_list').val() - $('#insertar_serv_manipulado').click() - } - else{ - var row_indexes = tableServiciosManipulado.rows().eq( 0 ).filter( function (rowIdx) { - return tableServiciosManipulado.cell( rowIdx, 0 ).data() == ? true : false; - } ); - if(row_indexes.length > 0){ - tableServiciosManipulado.row(row_indexes[0]).remove().draw() - check_serv_manipulado_error() - } - } - } - init_servicio_manipulado() -endSection() ?> - - - - - -section("additionalInlineJs") ?> - - var tableServiciosPreimpresion = new DataTable('#tableOfServiciosPreimpresion',{ - scrollX: true, - searching: false, - paging: false, - info: false, - ordering: false, - responsive: true, - select: false, - language: { - url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json" - }, - "drawCallback": function(settings ) { - updateTotales(false, true, false) - } - - }); - - - function init_servicio_preimpresion(){ - const serviciospreimpresionList = ; - - $('#add_servicio_preimpresion_list').select2({ - allowClear: false, - minimumResultsForSearch: -1, - placeholder: '' - }) - - serviciospreimpresionList.forEach((element) =>{ - - tableServiciosPreimpresion.row.add([ - element.tarifa_preimpresion_id, - element.nombre, - '', - '', - '' - ]).draw(false) - - }) - check_serv_preimpresion_error() - } - - function check_serv_preimpresion_error(){ - - var htmlString = ''; - - $('#tableOfServiciosPreimpresion tr').each(function(){ - - if(parseFloat($(this).find('td:eq(2) input').val()) == '0'){ - htmlString = ` - `; - } - }) - $('#serv-preimpresion-error').html(htmlString) - } - - function get_tarifas_preimpresion(tarifa_id = -1){ - - var datos = { - tarifa_preimpresion_id : tarifa_id, - : v - }; - - - $.ajax({ - type: "POST", - url: '', - data: datos, - success: function (data) { - - data.values.forEach((row) => { - - tableServiciosPreimpresion.row.add([ - row.tarifa_id, - row.tarifa_nombre, - '', - '', - '' - ]).draw(false) - }); - - check_serv_preimpresion_error() - yeniden(data.); - return true; - }, - error: function(e){ - return false; - } - }) - return false; - } - - - function servicioPrototipo(){ - if($('#prototipo').prop('checked')){ - $('#add_servicio_preimpresion_list').val() - $('#insertar_serv_preimpresion').click() - } - else{ - var row_indexes = tableServiciosPreimpresion.rows().eq( 0 ).filter( function (rowIdx) { - return tableServiciosPreimpresion.cell( rowIdx, 0 ).data() == ? true : false; - } ); - if(row_indexes.length > 0){ - tableServiciosPreimpresion.row(row_indexes[0]).remove().draw() - check_serv_preimpresion_error() - } - } - } - - function servicioFerro(){ - var row_indexes = tableServiciosPreimpresion.rows().eq( 0 ).filter( function (rowIdx) { - return tableServiciosPreimpresion.cell( rowIdx, 0 ).data() == ? true : false; - } ); - if($('#ferro').prop('checked')){ - if(row_indexes.length == 0){ - $('#add_servicio_preimpresion_list').val() - $('#insertar_serv_preimpresion').click() - } - } - else{ - if(row_indexes.length > 0){ - tableServiciosPreimpresion.row(row_indexes[0]).remove().draw() - check_serv_preimpresion_error() - } - } - } - - $('#insertar_serv_preimpresion').on('click', function(){ - const tarifa_text = $('#add_servicio_preimpresion_list').select2('data')[0].text.trim() - - if( $('#add_servicio_preimpresion_list').select2('data')[0].text.trim().length > 0){ - if($('#tableOfServiciosPreimpresion tr > td:contains(' + tarifa_text + ')').length == 0) - get_tarifas_preimpresion($('#add_servicio_preimpresion_list').select2('data')[0].id); - else{ - popErrorAlert("", 'serv-preimpresion-alert') - } - } - check_serv_preimpresion_error() - }) - - init_servicio_preimpresion() - - - // Definición de varibles para el js (actualizar el lang) - lang_text_cubierta = ''; - lang_text_sobrecubierta = ''; endSection() ?> diff --git a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_lineasPresupuestoItems.js b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_lineasPresupuestoItems.js new file mode 100644 index 00000000..1b46bc0f --- /dev/null +++ b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_lineasPresupuestoItems.js @@ -0,0 +1,4432 @@ +/*********************** + * Funcionamiento general de la página + ************************/ +function fill_lp_from_bbdd(){ + + window.lineasPresupuestoList.forEach(function(lp) { + + const formas = JSON.parse(lp.formas) + lp.dimensiones_maquina = [formas.maquina_ancho, formas.maquina_alto] + lp.dimensiones_maquina_impresion = [formas.maquina_impresion_ancho, formas.maquina_impresion_alto] + lp.num_formas = { + value : formas.formas, + num_formas_verticales : formas.formas_v, + num_formas_horizontales : formas.formas_h, + posicion_formas : formas.formas_orientacion + } + lp['tipo_maquina'] = lp['maquina_tipo'] + lp['precio_impresion_horas'] = lp['precio_impresion'] + lp['margen_impresion_horas'] = lp['margen_impresion'] + lp['precio_libro'] = lp['libro'] + lp['precio_pedido'] = lp['total_papel_pedido'] + lp['total_impresion'] = lp['total_linea'] + lp['precios_pliegos'] = lp['pliegos_precio'] + lp['papel_generico_id'] = lp['papel_id'] + + dateObj = new Date(lp['tiempo_maquina'] * 1000); + hours = dateObj.getUTCHours(); + minutes = dateObj.getUTCMinutes(); + seconds = dateObj.getSeconds(); + lp['tiempo_maquina'] = hours.toString().padStart(2, '0') + ':' + + minutes.toString().padStart(2, '0') + ':' + + seconds.toString().padStart(2, '0'); + + if(lp.maquina_tipo=='inkjet'){ + + lp.datosTipologias = { + negro: lp.rotativa_negro, + cyan: lp.rotativa_cyan, + magenta: lp.rotativa_magenta, + amarillo: lp.rotativa_amarillo, + cg: lp.rotativa_cg, + gota_negro: lp.rotativa_gota_negro, + gota_color: lp.rotativa_gota_color, + } + + lp['paginas_color'] = lp['rotativa_pag_color'] + + lp['totalImpresion'] = lp['rotativa_total_impresion'] + lp['a_favor_fibra'] = lp['rotativa_a_favor_fibra'] + + lp['resolucion'] = lp['rotativa_resolucion'] + lp['superficie'] = lp['rotativa_area_paginas'] + + lp['num_gotas_negro'] = lp['rotativa_num_gotas_negro'] + lp['num_gotas_cyan'] = lp['rotativa_num_gotas_cyan'] + lp['num_gotas_magenta'] = lp['rotativa_num_gotas_magenta'] + lp['num_gotas_amarillo'] = lp['rotativa_num_gotas_amarillo'] + lp['num_gotas_cg'] = lp['rotativa_num_gotas_cg'] + + lp['precio_pagina_negro'] = lp['rotativa_precio_pag_negro'] + lp['precio_pagina_color'] = lp['rotativa_precio_pag_color'] + lp['factor_altura'] = lp['rotativa_factor_altura'] + lp['factor_anchura'] = lp['rotativa_factor_anchura'] + lp['paginas_por_pliego'] = lp['rotativa_pag_por_pliego'] + + lp['clicks_libro'] = lp['rotativa_clicks_libro'] + lp['peso_gotas_negro'] = lp['rotativa_peso_gotas_negro'] + lp['peso_gotas_cyan'] = lp['rotativa_peso_gotas_cyan'] + lp['peso_gotas_magenta'] = lp['rotativa_peso_gotas_magenta'] + lp['peso_gotas_amarillo'] = lp['rotativa_peso_gotas_amarillo'] + lp['peso_gotas_cg'] = lp['rotativa_peso_gotas_cg'] + lp['clicks_pedido'] = lp['rotativa_clicks_total'] + lp['precio_click_pedido'] = lp['precio_click_pedido'] + lp['margen_click_pedido'] = lp['margen_click_pedido'] + lp['precio_tinta'] = lp['rotativa_precio_tinta'] + + + lp['peso_gotas_negro_pedido'] = lp['rotativa_peso_gotas_negro_pedido'] + lp['peso_gotas_cyan_pedido'] = lp['rotativa_peso_gotas_cyan_pedido'] + lp['peso_gotas_magenta_pedido'] = lp['rotativa_peso_gotas_magenta_pedido'] + lp['peso_gotas_amarillo_pedido'] = lp['rotativa_peso_gotas_amarillo_pedido'] + lp['peso_gotas_cg_pedido'] = lp['rotativa_peso_gotas_cg_pedido'] + + } + if(lp.tipo.includes('rot')){ + + lp['maquina_velocidad'] = lp['rotativa_mxm'] + lp['metros_papel_libro'] = lp['rotativa_metros_libro'] + lp['metros_papel_total'] = lp['rotativa_metros_total'] + lp['velocidad_corte'] = lp['rotativa_velocidad_corte'] + lp['precio_hora_corte'] = lp['rotativa_precio_hora_corte'] + lp['tiempo_corte'] = lp['rotativa_tiempo_corte'] + lp['total_corte'] = lp['rotativa_total_corte'] + } + + lp['areaPaginas'] = lp['rotativa_superficie'] + + + data = processRowData(lp, lp.tipo, lp.tipo.replace(/_/g, '-')); + + var row = tableLineasPresupuesto.row("#" + lp.tipo); + + tableLineasPresupuesto.row.add(data).draw() + row = tableLineasPresupuesto.row("#" + lp.tipo); + + row.child(format(row.data())).show(); + + switch(lp.tipo){ + case 'lp_bn': + eventos_lp_bn(lp.maquina_tipo=='inkjet'?true:false) + break + case 'lp_bnhq': + eventos_lp_bnhq(lp.maquina_tipo=='inkjet'?true:false) + break + case 'lp_color': + eventos_lp_color(lp.maquina_tipo=='inkjet'?true:false) + break + case 'lp_colorhq': + eventos_lp_colorhq(lp.maquina_tipo=='inkjet'?true:false) + break + case 'lp_rot_bn': + eventos_lp_rot_bn() + break + case 'lp_rot_color': + eventos_lp_rot_color() + break + case 'lp_cubierta': + eventos_lp_cubierta() + break + case 'lp_sobrecubierta': + eventos_lp_sobrecubierta() + break + case 'lp_guardas': + eventos_lp_guardas() + lp['paginas_impresion'] = lp.paginas_impresion + break + } + + }) + +} + + +async function fill_bbdd_from_lp(presupuesto_id){ + + data=[]; + + tableLineasPresupuesto.rows().every( function ( rowIdx, tableLoop, rowLoop ) { + var rowData = this.data(); + const formas = { + maquina_ancho: rowData.maquina_ancho, + maquina_alto: rowData.maquina_alto, + maquina_impresion_ancho: rowData.maquina_impresion_ancho, + maquina_impresion_alto: rowData.maquina_impresion_alto, + formas: rowData.formas, + formas_v: rowData.formas_v, + formas_h: rowData.formas_h, + formas_orientacion: rowData.formas_orientacion, + } + + var t_maq_str = rowData.tiempo.split(':'); // split it at the colons + var t_maq = 0 + + if(t_maq_str.length == 3) + t_maq = (+t_maq_str[0]) * 3600 + (+t_maq_str[1]) * 60 + (+t_maq_str[2]); + + linea_data = { + presupuesto_id: presupuesto_id, + tipo: rowData.row_id, + paginas: (rowData.row_id=='lp_guardas')?(($('#tipo_impresion_id').val() == 1 || $('#tipo_impresion_id').val() == 3)?8:4):rowData.paginas, + papel_id: rowData.papel, + gramaje: rowData.gramaje, + papel_impresion_id: rowData.papel_impresion_id, + papel_impresion: rowData.papel_impresion, + maquina_id: rowData.maquina_id, + maquina: rowData.maquina, + maquina_tipo: rowData.maquinaTipo, + tiempo_maquina: t_maq, + pliegos_libro: rowData.numeroPliegos, + pliegos_pedido: rowData.pliegosPedido, + pliegos_precio: rowData.precioPliego, + libro: rowData.libro, + total_papel_pedido: rowData.totalPapelPedido, + margen_papel_pedido: rowData.margenPapelPedido, + mano: rowData.lomo, + peso: rowData.peso, + precio_click: rowData.click, + precio_click_pedido: rowData.totalClicks, + margen_click_pedido: rowData.margenClicks, + check_papel_total: $('#' + rowData.row_id + '_checkPapel').is(":checked")?1:0, + check_impresion_total: $('#' + rowData.row_id + '_checkClicks').is(":checked")?1:0, + tarifa_impresion_id: rowData.tarifa_impresion_id, + formas: JSON.stringify(formas), + + horas_maquina: rowData.horasMaquina, + precio_hora: rowData.precioHora, + precio_impresion: rowData.precioImpresion, + margen_impresion: rowData.margenImpresion, + total_linea: rowData.total_linea, + } + + if(rowData.row_id=='lp_guardas') + linea_data.paginas_impresion = rowData.paginas_impresion + + // maquina rotativa o inkjet + if(linea_data.maquina_tipo=='inkjet'){ + + linea_data.rotativa_pag_color = rowData.numPagColor + + linea_data.rotativa_total_impresion = rowData.totalImpresion + linea_data.rotativa_a_favor_fibra = rowData.aFavorFibra, + linea_data.rotativa_negro = rowData.cobNegro + linea_data.rotativa_cyan = rowData.cobCyan + linea_data.rotativa_magenta = rowData.cobMagenta + linea_data.rotativa_amarillo = rowData.cobAmarillo + linea_data.rotativa_cg = rowData.cobCG + linea_data.rotativa_gota_negro = rowData.gotaNegro + linea_data.rotativa_gota_color = rowData.gotaColor + + + linea_data.rotativa_resolucion = rowData.resolucion + linea_data.rotativa_area_paginas = rowData.areaPaginas + + linea_data.rotativa_num_gotas_negro = rowData.gotaNegro + linea_data.rotativa_num_gotas_cyan = rowData.gotasCyan + linea_data.rotativa_num_gotas_magenta = rowData.gotasMagenta + linea_data.rotativa_num_gotas_amarillo = rowData.gotasAmarillo + linea_data.rotativa_num_gotas_cg = rowData.gotasCG + + linea_data.rotativa_precio_pag_negro = rowData.precioPagNegro + linea_data.rotativa_precio_pag_color = rowData.precioPagColor + linea_data.rotativa_factor_altura = rowData.factorAltura + linea_data.rotativa_factor_anchura = rowData.factorAnchura + linea_data.rotativa_pag_por_pliego = rowData.paginasPliego + + linea_data.rotativa_clicks_libro = rowData.clicksLibro + linea_data.rotativa_peso_gotas_negro = rowData.gTintaNegro + linea_data.rotativa_peso_gotas_cyan = rowData.gTintaCyan + linea_data.rotativa_peso_gotas_magenta = rowData.gTintaMagenta + linea_data.rotativa_peso_gotas_amarillo = rowData.gTintaAmarillo + linea_data.rotativa_peso_gotas_cg = rowData.gTintaCG + linea_data.rotativa_clicks_total = rowData.clicksPedido + linea_data.precio_click_pedido = rowData.totalClicksPedido + linea_data.rotativa_precio_tinta = rowData.totalTinta + + + linea_data.rotativa_peso_gotas_negro_pedido = rowData.gTintaNegroPed + linea_data.rotativa_peso_gotas_cyan_pedido = rowData.gTintaCyanPed + linea_data.rotativa_peso_gotas_magenta_pedido = rowData.gTintaMagentaPed + linea_data.rotativa_peso_gotas_amarillo_pedido = rowData.gTintaAmarilloPed + linea_data.rotativa_peso_gotas_cg_pedido = rowData.gTintaCGPed + + } + if(linea_data.tipo.includes('rot')){ + + linea_data.rotativa_mxm = rowData.metrosMinuto + linea_data.rotativa_metros_libro = rowData.metrosPapelLibro + linea_data.rotativa_metros_total = rowData.metrosPapelTotal + linea_data.rotativa_velocidad_corte = rowData.velocidadCorte + linea_data.rotativa_precio_hora_corte = rowData.precioHoraCorte + linea_data.rotativa_tiempo_corte = rowData.tiempoCorte + linea_data.rotativa_total_corte = rowData.totalCorte + linea_data.rotativa_a_favor_fibra = rowData.aFavorFibra==true?1:0 + } + + data.push(linea_data) + } ); + + var datos = { + tipo: 'lineasPresupuesto', + datos: data, + presupuesto_id: presupuesto_id, + } + datos = Object.assign(datos, window.token_ajax); + + await $.ajax({ + type: 'post', + url: window.routes_lp.updateDataOfCosidotapablanda, + + data: datos, + dataType: 'json', + success:function(response){ + + token=response[window.csrf_token]; + yeniden(token); + } + }).fail(function (jqXHR, textStatus, error) { + // Handle error here + console.log(jqXHR) + }); + +} + +function checkPaginasPresupuesto(){ + + cantidad_total = 0 + + tableLineasPresupuesto.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 = ` + `; + } + $('#divAlarmasLineasPresupuesto').html(htmlString) +} + +// variable para controlar el foco en los inputs +let focused = 0; + +function change_focus(){ + // se comprueba que el elemento es un input + if($('#'+focused).is('input')){ + if(focused){ + $('#'+focused).focus(); + $('#'+focused).select(); + focused = 0; + } + } +} + + +// Formatting function for row details - modify as you need +function format(d) { + + var value = ''+ + ''+ + ''+ + ''+ + '
' + + '
' + + window.Presupuestos.numeroPliegos + + ''+ + '
'+ + '
' + + window.Presupuestos.pliegosPedido + + ''+ + '
'+ + '
' + + window.Presupuestos.precioPliego + + ''+ + '
'+ + '
' + + window.Presupuestos.libro + + ''+ + '
'+ + '
' + + window.Presupuestos.totalPapelPedido + + ''+ + '
'+ + '' + + '
' + + '' + + '
'+ + '
' + + window.Presupuestos.click + + ''+ + '
'+ + '
' + + window.Presupuestos.totalClicks + + ''+ + '
'+ + '
' + + window.Presupuestos.horas + + ''+ + '
'+ + '
' + + window.Presupuestos.precioHora + + ''+ + '
'+ + '
' + + window.Presupuestos.precioImpresion + + ''+ + '
'+ + '
' + + '' + + '
'+ + '' + + '' + + '
' + + '' + + + + + value += '' + + if(d.maquinaTipo=='inkjet'){ + value += + ''+ + ''+ + ''+ + ''+ + '
' + + '
' + + '' + + '
'+ + '
' + + window.Presupuestos.numPagColor + + '' + + '
' + + ((d.row_id.includes('rot'))?'
' + + window.Presupuestos.saturacion + + '' + + '
':'') + + '
' + + window.Presupuestos.cobNegro + + '' + + '
' + + '
' + + window.Presupuestos.cobCyan + + '' + + '
' + + '
' + + window.Presupuestos.cobMagenta + + '' + + '
' + + '
' + + window.Presupuestos.cobAmarillo + + '' + + '
' + + ((!d.row_id.includes('rot'))? + '
' + + window.Presupuestos.cobCG + + '' + + '
':'') + + '
' + + window.Presupuestos.gotaNegro + + '' + + '
' + + '
' + + window.Presupuestos.gotaColor + + '' + + '
' + + '
' + + window.Presupuestos.aFavorFibra + + '' + + '
' + + '
' + + '' + + '
' + + '
' + + + '' + + '' + + ''+ + ''+ + ''+ + ''+ + '
' + + ((!d.row_id.includes('rot'))? + '
' + + window.Presupuestos.factorAltura + + '' + + '
' + + '
' + + window.Presupuestos.factorAnchura + + '' + + '
':'') + + (d.row_id.includes('rot')?'
': '' + + + (d.row_id.includes('rot')?'
' + + window.Presupuestos.resolucion + + '' + + '
':'') + + (d.row_id.includes('rot')?'
' + + window.Presupuestos.areaPaginas + + '' + + '
':'') + + '
' + + window.Presupuestos.gotasNegro + + '' + + '
' + + '
' + + window.Presupuestos.gotasCyan + + '' + + '
' + + '
' + + window.Presupuestos.gotasMagenta + + '' + + '
' + + '
' + + window.Presupuestos.gotasAmarillo + + '' + + '
' + + (!(d.row_id.includes('rot'))?'
' + + window.Presupuestos.gotasCG + + '' + + '
':'') + + '
' + + window.Presupuestos.precioPagNegro + + '' + + '
' + + '
' + + window.Presupuestos.precioPagColor + + '' + + '
' + + (d.row_id.includes('rot')? + '
' + + window.Presupuestos.factorAltura + + '' + + '
' + + '
' + + window.Presupuestos.factorAnchura + + '' + + '
':'') + + (d.row_id.includes('rot')?'
' + + window.Presupuestos.paginasPliego + + '' + + '
':'') + + '
' + + '' + + '' + + ''+ + ''+ + ''+ + ''+ + '
' + + (d.row_id.includes('rot')?'
': '' + + (d.row_id.includes('rot')?'
': '' + + (d.row_id.includes('rot')?'
' + + window.Presupuestos.clicksLibro + + '' + + '
':'') + + ((!d.row_id.includes('rot'))?'
' + + window.Presupuestos.saturacion + + '' + + '
':'') + + ((!d.row_id.includes('rot'))?'
' + + window.Presupuestos.paginasPliego + + '' + + '
':'') + + '
' + + window.Presupuestos.gTintaNegro + + '' + + '
' + + '
' + + window.Presupuestos.gTintaCyan + + '' + + '
' + + '
' + + window.Presupuestos.gTintaMagenta + + '' + + '
' + + '
' + + window.Presupuestos.gTintaAmarillo + + '' + + '
' + + (!(d.row_id.includes('rot'))?'
' + + window.Presupuestos.gTintaCG + + '' + + '
':'') + + ((!d.row_id.includes('rot'))?'
' + + window.Presupuestos.clicksLibro + + '' + + '
':'') + + '
' + + window.Presupuestos.clicksPedido + + '' + + '
' + + '
' + + window.Presupuestos.totalClicks + + '' + + '
' + + '
' + + window.Presupuestos.totalTinta + + '' + + '
' + + (d.row_id.includes('rot')?'
': '' + + '
' + + window.Presupuestos.totalImpresion + + '' + + '
' + + '
' + + '' + + '' + + ''+ + ''+ + ''+ + ''+ + '
' + + ((!d.row_id.includes('rot'))?'
' + + window.Presupuestos.resolucion + + '' + + '
':'') + + ((!d.row_id.includes('rot'))?'
' + + window.Presupuestos.areaPaginas + + '' + + '
':'') + + (d.row_id.includes('rot')?'
': '' + + (d.row_id.includes('rot')?'
': '' + + (d.row_id.includes('rot')?'
': '' + + '
' + + window.Presupuestos.gTintaNegroPed + + '' + + '
' + + '
' + + window.Presupuestos.gTintaCyanPed + + '' + + '
' + + '
' + + window.Presupuestos.gTintaMagentaPed + + '' + + '
' + + '
' + + window.Presupuestos.gTintaAmarilloPed + + ''+ + '
' + + (!(d.row_id.includes('rot'))?'
' + + window.Presupuestos.gTintaCGPed + + ''+ + '
':'') + + '
' + + '' + + '' + } + + return $(value).toArray(); +} + +const lastColNr_lp = $('#tableLineasPresupuesto').find("tr:first th").length - 1; + +const actionBtns_lp = function(data) { + return ` + + `; +}; + +var tableLineasPresupuesto = new DataTable('#tableLineasPresupuesto',{ + scrollX: true, + searching: false, + paging: false, + info: false, + ordering: true, + responsive: true, + select: false, + rowId: 'row_id', + language: { + url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json" + }, + columnDefs: [ + { + targets: 0, + className: 'dt-control', + orderable: false, + data: null, + defaultContent: '' + }, + { + targets: [1,2,3,4,5,6,7,8,9], + orderable: false, + visible: false, + }, + { + targets: [11,12,13,14,15,16,17,18,19,20], + orderable: false, + }, + { + targets: [10], + orderable: true, + visible: false, + }, + { + orderable: false, + searchable: false, + targets: [lastColNr_lp] + }, + ], + columns: [ + {data: null}, + {data: 'tarifa_impresion_id'}, + {data: 'maquina_ancho'}, + {data: 'maquina_alto'}, + {data: 'maquina_impresion_ancho'}, + {data: 'maquina_impresion_alto'}, + {data: 'formas'}, + {data: 'formas_v'}, + {data: 'formas_h'}, + {data: 'formas_orientacion'}, + {data: 'position', + type: "num" , + render: function (data, type, row, meta){ + if(row.row_id.includes('_bn')){ + return 0; + } + else if(row.row_id.includes('_color')){ + return 1; + } + else if(row.row_id.includes('_cubierta')){ + return 2; + } + else if(row.row_id.includes('_sobrecubierta')){ + return 3; + } + else if(row.row_id.includes('_guardas')){ + return 4; + } + } + }, + {data: 'icon', + render: function ( data, type, row, meta ){ + return '' + } + }, + {data: 'paginas', + render: function ( data, type, row, meta ) { + if(row.row_id != "lp_cubierta" && row.row_id != "lp_sobrecubierta" && row.row_id != "lp_guardas") + return ''; + else if(row.row_id == "lp_cubierta"){ + select = '' + + return select; + } + else if(row.row_id == "lp_guardas"){ + select = '' + + return select; + + } + else{ + return ''; + } + } + }, + {data: 'papel', + render: function ( data, type, row, meta ) { + var select = $('') + .attr('id', row.row_id + '_gramaje') + .attr('name', row.row_id + '_gramaje') + .addClass('form-control form-select-sm lp-cell lp-select ' + row.row_class + '-select') + .css('min-width', '40px') + + var option = ''; + select.append(option); + + return select[0].outerHTML + } + }, + {data: 'papel_impresion', + render: function ( data, type, row, meta ) { + var select = $('') + .attr('id', row.row_id + '_maquina') + .attr('name', row.row_id + '_maquina') + .addClass('form-control form-select-sm lp-cell lp-select ' + row.row_class + '-select') + .css('min-width', '110px') + + var option = ''; + select.append(option); + + return select[0].outerHTML + } + }, + {data: 'tiempo', + render: function ( data, type, row, meta ) { + return ''; + } + }, + {data: 'lomo', + render: function ( data, type, row, meta ) { + return ''; + } + }, + {data: 'peso', + render: function ( data, type, row, meta ) { + return ''; + } + }, + {data: 'total_linea', + render: function ( data, type, row, meta ) { + return ''; + } + }, + { + data: actionBtns_lp, + className: 'row-edit dt-center' + } + ], + "order": [ 10, 'asc' ] +}); + +tableLineasPresupuesto.on( 'draw.dt', function () { + checkPaginasPresupuesto() + getVisibleTabs() +} ); + + +$(document).on('click', '.btn-delete-lp', function(e) { + + const row = $(this).closest('tr'); + data = tableLineasPresupuesto.row( row ).data() + tableLineasPresupuesto.row( row ) + .remove() + .draw(); + + //updateTablaEnvios() + updatePresupuesto({ + update_lineas: false, + update_servicios: true, + update_envios: true, + update_resumen: true, + update_tiradas_alternativas: true + }) + + if(data.row_id == 'lp_guardas') + servicioGuardas(false) + + // Si existe cubierta, hay que actualizar con el valor del lomo + check_update_cubierta() +}) + + + +// Add event listener for opening and closing details +tableLineasPresupuesto.on('click', 'td.dt-control', function (e) { + let tr = e.target.closest('tr'); + let row = tableLineasPresupuesto.row(tr); + + if (row.child.isShown()) { + // This row is already open - close it + row.child.hide(); + } + else { + // Open this row + row.child(format(row.data())).show(); + } +}); + +function processRowData(row, rowId, rowClass){ + + var icon = "" + if(rowId=='lp_bn'){ + if(row.tipo_maquina=='toner') + icon = '' + else + icon = '' + } + + else if(rowId=='lp_bnhq'){ + if(row.tipo_maquina=='toner') + icon = '' + else + icon = '' + } + else if(rowId=='lp_color'){ + if(row.tipo_maquina=='toner') + icon = '' + else + icon = '' + } + else if(rowId=='lp_colorhq'){ + if(row.tipo_maquina=='toner') + icon = '' + else + icon = '' + } + + else if(rowId=='lp_cubierta') + icon = '' + else if(rowId=='lp_sobrecubierta') + icon = '' + else if(rowId=='lp_guardas') + icon = '' + else if(rowId=='lp_rot_bn') + icon = '' + else if(rowId=='lp_rot_color') + icon = '' + + const blank_line = (typeof row.tarifa_impresion_id === 'undefined')?1:0; + var data = { + 'row_id': rowId, + 'row_class': rowClass, + + 'tarifa_impresion_id': blank_line?0:isNaN(parseInt(row.tarifa_impresion_id)) ? "" : parseInt(row.tarifa_impresion_id), + 'maquina_ancho': blank_line?0:isNaN(parseFloat(row.dimensiones_maquina[0])) ? "" : parseFloat(row.dimensiones_maquina[0]), + 'maquina_alto': blank_line?0:isNaN(parseFloat(row.dimensiones_maquina[1])) ? "" : parseFloat(row.dimensiones_maquina[1]), + 'maquina_impresion_ancho': blank_line?0:isNaN(parseFloat(row.dimensiones_maquina_impresion[0])) ? "" : parseFloat(row.dimensiones_maquina_impresion[0]), + 'maquina_impresion_alto': blank_line?0:isNaN(parseFloat(row.dimensiones_maquina_impresion[1])) ? "" : parseFloat(row.dimensiones_maquina_impresion[1]), + 'formas': blank_line?0:isNaN(parseInt(row.num_formas.value)) ? 0 : parseInt(row.num_formas.value), + 'formas_v': blank_line?0:isNaN(parseInt(row.num_formas.num_formas_verticales)) ? 0 : parseInt(row.num_formas.num_formas_verticales), + 'formas_h': blank_line?0:isNaN(parseInt(row.num_formas.num_formas_horizontales)) ? 0 : parseInt(row.num_formas.num_formas_horizontales), + 'formas_orientacion': blank_line?0:row.num_formas.posicion_formas, + + 'icon': icon, + 'paginas': blank_line?0:row.paginas, + 'paginas_impresion': rowId=='lp_guardas'?row.paginas_impresion:0, + 'papel': blank_line?"":row.papel_generico_id, + 'gramaje': blank_line?"":row.gramaje, + 'papel_impresion': blank_line?"":row.papel_impresion, + 'papel_impresion_id': blank_line?"":row.papel_impresion_id, + 'maquina': blank_line?"":row.maquina, + 'maquina_id': blank_line?"":row.maquina_id, + + 'tiempo': blank_line?"":row.tiempo_maquina, + 'lomo': isNaN(parseFloat(row.mano)) ? "" : parseFloat(row.mano).toFixed(2), + 'peso': isNaN(parseFloat(row.peso)) ? "" : parseFloat(row.peso).toFixed(2), + + 'total_linea': isNaN(parseFloat(row.total_impresion)) ? "" : parseFloat(row.total_impresion).toFixed(2), + + 'numeroPliegos':isNaN(parseFloat(row.pliegos_libro)) ? "" : parseFloat(row.pliegos_libro).toFixed(0), + 'pliegosPedido': isNaN(parseFloat(row.pliegos_pedido)) ? "" : parseFloat(row.pliegos_pedido).toFixed(0), + 'precioPliego': isNaN(parseFloat(row.precios_pliegos)) ? "" : parseFloat(row.precios_pliegos).toFixed(6), + 'libro': isNaN(parseFloat(row.precio_libro)) ? "" : parseFloat(row.precio_libro).toFixed(2), + 'totalPapelPedido': isNaN(parseFloat(row.precio_pedido)) ? "" : parseFloat(row.precio_pedido).toFixed(2), + 'margenPapelPedido': isNaN(parseFloat(row.margen_papel_pedido)) ? "": parseFloat(row.margen_papel_pedido).toFixed(2), + 'click': isNaN(parseFloat(row.precio_click)) ? "" : parseFloat(row.precio_click).toFixed(6), + 'totalClicks': isNaN(parseFloat(row.precio_click_pedido)) ? "" : parseFloat(row.precio_click_pedido).toFixed(2), + 'margenClicks': isNaN(parseFloat(row.margen_click_pedido)) ? "" : parseFloat(row.margen_click_pedido).toFixed(2), + 'horasMaquina': isNaN(parseFloat(row.horas_maquina)) ? "" : parseFloat(row.horas_maquina).toFixed(4), + 'precioHora': isNaN(parseFloat(row.precio_hora)) ? "" : parseFloat(row.precio_hora).toFixed(2), + 'precioImpresion': isNaN(parseFloat(row.precio_impresion_horas)) ? "" : parseFloat(row.precio_impresion_horas).toFixed(2), + 'margenImpresion': isNaN(parseFloat(row.margen_impresion_horas)) ? "" : parseFloat(row.margen_impresion_horas).toFixed(2), + 'maquinaTipo': row.tipo_maquina, + 'check_papel_total': row.check_papel_total, + 'check_impresion_total': row.check_impresion_total, + } + + if(row.tipo_maquina=='inkjet'){ + + data.numPagColor = row.paginas_color + data.aFavorFibra = row.a_favor_fibra + data.cobNegro = isNaN(parseFloat(row.datosTipologias.negro)) ? "" : parseFloat(row.datosTipologias.negro).toFixed(2) + data.cobCyan = isNaN(parseFloat(row.datosTipologias.cyan)) ? "" : parseFloat(row.datosTipologias.cyan).toFixed(2) + data.cobMagenta = isNaN(parseFloat(row.datosTipologias.magenta)) ? "" : parseFloat(row.datosTipologias.magenta).toFixed(2) + data.cobAmarillo = isNaN(parseFloat(row.datosTipologias.amarillo)) ? "" : parseFloat(row.datosTipologias.amarillo).toFixed(2) + data.gotaNegro = isNaN(parseFloat(row.datosTipologias.gota_negro)) ? "" : parseFloat(row.datosTipologias.gota_negro).toFixed(2) + data.gotaColor = isNaN(parseFloat(row.datosTipologias.gota_color)) ? "" : parseFloat(row.datosTipologias.gota_color).toFixed(2) + + data.resolucion = isNaN(parseFloat(row.resolucion)) ? "" : parseFloat(row.resolucion).toFixed(0) + data.areaPaginas = isNaN(parseFloat(row.superficie)) ? "" : parseFloat(row.superficie).toFixed(2) + + data.gotasNegro = isNaN(parseFloat(row.num_gotas_negro)) ? "" : parseFloat(row.num_gotas_negro).toFixed(0) + data.gotasCyan = isNaN(parseFloat(row.num_gotas_cyan)) ? "" : parseFloat(row.num_gotas_cyan).toFixed(0) + data.gotasMagenta = isNaN(parseFloat(row.num_gotas_magenta)) ? "" : parseFloat(row.num_gotas_magenta).toFixed(0) + data.gotasAmarillo = isNaN(parseFloat(row.num_gotas_amarillo)) ? "" : parseFloat(row.num_gotas_amarillo).toFixed(0) + data.precioPagNegro = isNaN(parseFloat(row.precio_pagina_negro)) ? "" : parseFloat(row.precio_pagina_negro).toFixed(6) + data.precioPagColor = isNaN(parseFloat(row.precio_pagina_color)) ? "" : parseFloat(row.precio_pagina_color).toFixed(6) + data.factorAltura = isNaN(parseFloat(row.factor_altura)) ? "" : parseFloat(row.factor_altura).toFixed(2) + data.factorAnchura = isNaN(parseFloat(row.factor_anchura)) ? "" : parseFloat(row.factor_anchura).toFixed(2) + data.paginasPliego = isNaN(parseFloat(row.paginas_por_pliego)) ? "" : parseFloat(row.paginas_por_pliego).toFixed(2) + + if(rowId.includes('rot')){ + data.metrosMinuto = isNaN(parseFloat(row.maquina_velocidad)) ? "" : parseFloat(row.maquina_velocidad).toFixed(2) + data.metrosPapelLibro = isNaN(parseFloat(row.metros_papel_libro)) ? "" : parseFloat(row.metros_papel_libro).toFixed(2) + data.metrosPapelTotal = isNaN(parseFloat(row.metros_papel_total)) ? "" : parseFloat(row.metros_papel_total).toFixed(2) + data.velocidadCorte = isNaN(parseFloat(row.velocidad_corte)) ? "" : parseFloat(row.velocidad_corte).toFixed(2) + data.precioHoraCorte = isNaN(parseFloat(row.precio_hora_corte)) ? "" : parseFloat(row.precio_hora_corte).toFixed(2) + data.tiempoCorte = isNaN(parseFloat(row.tiempo_corte)) ? "" : parseFloat(row.tiempo_corte).toFixed(2) + data.totalCorte = isNaN(parseFloat(row.total_corte)) ? "" : parseFloat(row.total_corte).toFixed(2) + } + else{ + data.totalCorte = 0 + } + + data.clicksLibro = isNaN(parseFloat(row.clicks_libro)) ? "" : parseFloat(row.clicks_libro).toFixed(0) + data.gTintaNegro = isNaN(parseFloat(row.peso_gotas_negro)) ? "" : parseFloat(row.peso_gotas_negro).toFixed(2) + data.gTintaCyan = isNaN(parseFloat(row.peso_gotas_cyan)) ? "" : parseFloat(row.peso_gotas_cyan).toFixed(2) + data.gTintaMagenta = isNaN(parseFloat(row.peso_gotas_magenta)) ? "" : parseFloat(row.peso_gotas_magenta).toFixed(2) + data.gTintaAmarillo = isNaN(parseFloat(row.peso_gotas_amarillo)) ? "" : parseFloat(row.peso_gotas_amarillo).toFixed(2) + data.clicksPedido = isNaN(parseFloat(row.clicks_pedido)) ? "" : parseFloat(row.clicks_pedido).toFixed(0) + data.totalClicksPedido = isNaN(parseFloat(row.precio_click_pedido)) ? "" : parseFloat(row.precio_click_pedido).toFixed(2) + data.totalTinta = isNaN(parseFloat(row.precio_tinta)) ? "" : parseFloat(row.precio_tinta).toFixed(2) + + data.totalImpresion = isNaN(parseFloat(row.precio_click_pedido+row.precio_tinta+data.totalCorte)) ? "" : parseFloat(row.precio_click_pedido+row.precio_tinta+data.totalCorte).toFixed(2) + + data.gTintaNegroPed = isNaN(parseFloat(row.peso_gotas_negro_pedido)) ? "" : parseFloat(row.peso_gotas_negro_pedido).toFixed(2) + data.gTintaCyanPed = isNaN(parseFloat(row.peso_gotas_cyan_pedido)) ? "" : parseFloat(row.peso_gotas_cyan_pedido).toFixed(2) + data.gTintaMagentaPed = isNaN(parseFloat(row.peso_gotas_magenta_pedido)) ? "" : parseFloat(row.peso_gotas_magenta_pedido).toFixed(2) + data.gTintaAmarilloPed = isNaN(parseFloat(row.peso_gotas_amarillo_pedido)) ? "" : parseFloat(row.peso_gotas_amarillo_pedido).toFixed(2) + + if(!rowId.includes('rot')){ + data.cobCG = isNaN(parseFloat(row.datosTipologias.cg)) ? "" : parseFloat(row.datosTipologias.cg).toFixed(2) + data.gotasCG = isNaN(parseFloat(row.num_gotas_cg)) ? "" : parseFloat(row.num_gotas_cg).toFixed(2) + data.gTintaCG = isNaN(parseFloat(row.peso_gotas_cg)) ? "" : parseFloat(row.peso_gotas_cg).toFixed(2) + data.gTintaCGPed = isNaN(parseFloat(row.peso_gotas_cg_pedido)) ? "" : parseFloat(row.peso_gotas_cg_pedido).toFixed(2) + } + + + data.alto_click = row.alto_click + } + + return data +} + + + +$('.paginas-lp').on('change', function(){ + checkPaginasPresupuesto() +}) + + +function verCalculosInkjet(e){ + if($( ".calculos_" + e.data.rowId ).css('display') == 'none') + $( ".calculos_" + e.data.rowId ).css('display', 'table-row') + else{ + $( ".calculos_" + e.data.rowId ).css('display', 'none') + } +}; + + + +function clear_interior(row_id = ''){ + switch(row_id) { + case 'lp_bn': + clear_lp_bn(true); + break; + case 'lp_color': + clear_lp_color(true); + break; + case 'lp_bnhq': + clear_lp_bnhq(true); + break; + case 'lp_colorhq': + clear_lp_colorhq(true); + break; + default: + clear_lp_bn(true); + clear_lp_color(true); + clear_lp_bnhq(true); + clear_lp_colorhq(true); + break; + } + if(row_id.length>0) + tableLineasPresupuesto.row( row_id ) + .remove() + .draw(); + else{ + tableLineasPresupuesto.row( '#lp_bn' ) + .remove().draw() + tableLineasPresupuesto.row( '#lp_bnhq' ) + .remove().draw() + tableLineasPresupuesto.row( '#lp_color' ) + .remove().draw() + tableLineasPresupuesto.row( '#lp_colorhq' ) + .remove().draw() + } +} + + +function clear_rotativa(row_id = ''){ + switch(row_id) { + case 'lp_rot_bn': + clear_lp_rot_bn(true); + break; + case 'lp_rot_color': + clear_lp_rot_color(true); + break; + default: + clear_lp_rot_bn(true); + clear_lp_rot_color(true); + break; + } + if(row_id.length>0) + tableLineasPresupuesto.row( row_id ) + .remove() + .draw(); + else{ + tableLineasPresupuesto.row( '#lp_rot_bn' ) + .remove().draw() + tableLineasPresupuesto.row( '#lp_rot_color' ) + .remove().draw() + } +} + + +function clear_cubierta(){ + clear_lp_cubierta(true); +} + +function clear_sobrecubierta(){ + clear_lp_sobrecubierta(true); +} + + +$('.insertarLinea').on("click", function (e) { + + if(e.target.id.includes("Plana")){ + + clear_interior(); + clear_rotativa(); + + var rows = $("#tableCompIntPlana").DataTable().rows( '.selected' ).data().toArray(); + + for(row of rows){ + if(row['tipo'] =='bn'){ + fill_lp_bn(row, true); + } + else if(row['tipo'] =='bnhq'){ + fill_lp_bnhq(row, true); + } + else if(row['tipo'] =='color'){ + fill_lp_color(row, true); + } + else if(row['tipo'] =='colorhq'){ + fill_lp_colorhq(row, true); + } + } + } + if(e.target.id.includes("Rotativa")){ + + clear_rotativa(); + clear_interior(); + + var rows = $("#tableCompIntRotativa").DataTable().rows( '.selected' ).data().toArray(); + for(row of rows){ + if(row['paginasColor'] ==0){ + fill_lp_rot_bn(row, true); + } + else if(row['paginasColor'] >0){ + fill_lp_rot_color(row, true); + } + } + } + + if(e.target.id.includes("Cubierta")){ + + clear_cubierta(); + + var rows = $("#tableCompCubierta").DataTable().rows( '.selected' ).data().toArray(); + for(row of rows){ + if(row.tipo == 'cubierta'){ + fill_lp_cubierta(row, true); + if($('#acabado_cubierta_id').val() > 0) + insertar_acabado_exterior($('#acabado_cubierta_id').val(), '') + } + } + + clear_sobrecubierta(); + + for(row of rows){ + if(row.tipo == 'sobrecubierta'){ + fill_lp_sobrecubierta(row, true); + if($('#acabado_sobrecubierta_id').val() > 0) + insertar_acabado_exterior($('#acabado_sobrecubierta_id').val(), '') + } + } + } + + if(e.target.id.includes("Guardas")){ + + clear_guardas(); + + var rows = $("#tableCompGuardas").DataTable().rows( '.selected' ).data().toArray(); + for(row of rows){ + fill_lp_guardas(row, true); + } + servicioGuardas(true) + } + + + update_servicios() + + +}); + + +$('#btn_addLinea').on("click", function (e) { + + var dataRows = tableLineasPresupuesto + .rows() + .data(); + + switch($('#addLineasPresupuesto').val()){ + // Se chequean todas las lineas de negro y todas las de color + // (solo una de cada en interior) + + case 'lp_bn': + var hayLinea = false + for(let number=0;number', {'value':data.menu[item].id, 'text':data.menu[item].text}) + $('#lp_bn_gramaje').append(option); + }); + $('#lp_bn_gramaje').val('') + } + }); +} + + + + +async function set_lp_bn_papelImpresion(){ + + var datos = { + tipo: 'papelImpresion', + uso: 'negro', + datos: $('#lp_bn_papel option:selected').val() , + gramaje: $('#lp_bn_gramaje option:selected').text().trim() , + tipoLinea: "negro", + }; + datos = Object.assign(datos, window.token_ajax); + + await $.ajax({ + type: 'post', + url: window.routes_lp.menuItemsOfCosidotapablanda, + beforeSend: function() { + $('#lp_bn_papelImpresion').empty() + $('#lp_bn_maquina').empty() + clear_lp_bn(false) + }, + data: datos, + dataType: 'json', + success: function (data) { + yeniden(data[window.csrf_token]); + $.each(data.menu, function(item){ + var option = $('