diff --git a/ci4/app/Config/Routes.php b/ci4/app/Config/Routes.php
index df17c46b..74a9f57d 100644
--- a/ci4/app/Config/Routes.php
+++ b/ci4/app/Config/Routes.php
@@ -663,21 +663,25 @@ $routes->group('serviciosacabados', ['namespace' => 'App\Controllers\Presupuesto
$routes->post('menuitems', 'Presupuestoacabados::menuItems', ['as' => 'menuItemsOfPresupuestoAcabados']);
$routes->post('edit/(:num)', 'Presupuestoacabados::edit/$1', ['as' => 'updatePresupuestoacabados']);
$routes->get('cargar', 'Presupuestoacabados::cargar');
+ $routes->post('update/(:num)', 'Presupuestoacabados::update/$1');
});
+
$routes->group('serviciosencuadernaciones', ['namespace' => 'App\Controllers\Presupuestos'], function ($routes) {
$routes->post('datatable', 'Presupuestoencuadernaciones::datatable', ['as' => 'dataTableOfPresupuestoEncuadernaciones']);
$routes->post('getvalues', 'Presupuestoencuadernaciones::getRowValues');
$routes->post('menuitems', 'Presupuestoencuadernaciones::menuItems', ['as' => 'menuItemsOfPresupuestoEncuadernaciones']);
$routes->get('delete/(:num)', 'Presupuestoencuadernaciones::delete/$1', ['as' => 'deletePresupuestoencuadernaciones']);
$routes->post('edit/(:num)', 'Presupuestoencuadernaciones::edit/$1', ['as' => 'updatePresupuestoencuadernaciones']);
-
+ $routes->post('update/(:num)', 'Presupuestoencuadernaciones::update/$1');
});
$routes->group('serviciosmanipulados', ['namespace' => 'App\Controllers\Presupuestos'], function ($routes) {
$routes->post('getvalues', 'Presupuestomanipulados::getRowValues');
$routes->post('datatable', 'Presupuestomanipulados::datatable', ['as' => 'dataTableOfPresupuestoManipulados']);
$routes->post('edit/(:num)', 'Presupuestomanipulados::edit/$1', ['as' => 'updatePresupuestomanipulados']);
+ $routes->post('update/(:num)', 'Presupuestomanipulados::update/$1');
+ $routes->get('serviciosolapas', 'Presupuestomanipulados::getServicioSolapas');
});
$routes->group('serviciospreimpresiones', ['namespace' => 'App\Controllers\Presupuestos'], function ($routes) {
diff --git a/ci4/app/Controllers/Presupuestos/Presupuestoacabados.php b/ci4/app/Controllers/Presupuestos/Presupuestoacabados.php
index e39e9df1..097dcb39 100755
--- a/ci4/app/Controllers/Presupuestos/Presupuestoacabados.php
+++ b/ci4/app/Controllers/Presupuestos/Presupuestoacabados.php
@@ -69,23 +69,26 @@ class Presupuestoacabados extends \App\Controllers\BaseResourceController
return;
endif;
- $postData = $this->request->getJSON();
- $tarifas = array_column($postData->datos, 'tarifa_id');
- $tirada = $postData->tirada ?? 0;
- $POD = $postData->POD ?? 0;
+ $postData = $this->request->getPost();
+ $datos_tarifas = $postData['datos'] ?? [];
+ $tirada = $postData['tirada'] ?? 0;
+ $POD = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('POD')->value;
$result = [];
- if (count($tarifas) > 0) {
- foreach ($tarifas as $tarifa) {
- $values = $this->model->getPrecioTarifa($tarifa, $tirada, $POD);
- array_push($result, $values);
+ if (count($datos_tarifas) > 0) {
+ foreach ($datos_tarifas as $tarifa) {
+ $proveedor = $tarifa['proveedor_id'] == '' ? -1 : $tarifa['proveedor_id'];
+ $values = $this->model->getPrecioTarifa($tarifa['tarifa_id'], $tirada, $proveedor, $POD);
+ $values[0]->cubierta = $tarifa['cubierta'] ?? 0;
+ $values[0]->sobrecubierta = $tarifa['sobrecubierta'] ?? 0;
+ array_push($result, $values[0]);
}
}
$newTokenHash = csrf_hash();
$csrfTokenName = csrf_token();
$data = [
- 'lines' => $result,
+ 'lineas' => $result,
$csrfTokenName => $newTokenHash
];
diff --git a/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php b/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php
index bb989119..750083b9 100644
--- a/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php
+++ b/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php
@@ -510,6 +510,13 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
$data['servicios'] = $this->getLineasServicios($presupuesto)[1];
+ if (intval($presupuesto->envios_recoge_cliente) == 1) {
+ $data['direcciones']['entrega_taller'] = 1;
+ } else {
+ $data['direcciones']['entrega_taller'] = 0;
+ $data['direcciones'] = $this->obtenerDireccionesEnvio($id, $presupuesto->cliente_id);
+ }
+
/*
@@ -1422,4 +1429,17 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
return PresupuestoService::checkLineasEnvios($direccionesEnvio);
}
+
+ protected function obtenerDireccionesEnvio($id, $cliente_id)
+ {
+ $model = model('App\Models\Presupuestos\PresupuestoDireccionesModel');
+ $model_direcciones = model('App\Models\Clientes\ClienteDireccionesModel');
+ $direcciones = $model
+ ->join('lg_proveedores', 'presupuesto_direcciones.proveedor_id = lg_proveedores.id')
+ ->join('lg_paises', 'presupuesto_direcciones.pais_id = lg_paises.id')
+ ->select('presupuesto_direcciones.*, lg_proveedores.nombre AS proveedor, lg_paises.nombre AS pais')
+ ->where('presupuesto_id', $id)->findAll();
+
+ return $direcciones;
+ }
}
diff --git a/ci4/app/Controllers/Presupuestos/Presupuestocliente.php b/ci4/app/Controllers/Presupuestos/Presupuestocliente.php
index b398a9fe..dc493501 100755
--- a/ci4/app/Controllers/Presupuestos/Presupuestocliente.php
+++ b/ci4/app/Controllers/Presupuestos/Presupuestocliente.php
@@ -345,6 +345,53 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$lomo += floatval($linea['mano']);
}
}
+
+ //Guardas
+ $guardas = $reqData['guardas'] ?? [];
+ if ($guardas != "false" && $guardas != null) {
+ $datos_guardas = [
+ 'papel' => $modelPapelGenerico->getIdFromCode($guardas['papel']),
+ 'gramaje' => intval($guardas['gramaje']),
+ 'caras' => intval($guardas['caras']),
+ ];
+ } else
+ $datos_guardas = false;
+ $guardas = [];
+ $peso_guardas = 0.0;
+ $coste_guardas = 0.0;
+ if ($datos_guardas != 0) {
+ if (count($datos_guardas) != 0 && $datos_guardas) {
+
+ $guardas = $datos_guardas;
+ $input_data['papel_generico'] = $datos_guardas['papel'] ?? 0;
+ $input_data['gramaje'] = $datos_guardas['gramaje'] ?? 0;
+ $input_data['datosPedido']->paginas = 8;
+ $input_data['paginas_color'] = 8;
+ $input_data['datosPedido']->paginas_impresion = $datos_guardas['caras'] ?? 0;
+ $input_data['datosPedido']->solapas_ancho = 0;
+ $input_data['datosPedido']->solapas = 0;
+ $input_data['isColor'] = 1;
+ $input_data['isHq'] = 1;
+ $input_data['uso'] = 'guardas';
+
+ // Para el caso de Fresado y Cosido tapa dura, las guardas son un diptico
+ // y hay que imprimirlas como "cosido" (dos hojas pegadas). En el caso de espiral
+ // o wire-o tapa dura, las guardas se imprimen como hojas sueltas
+ if ($tipo_impresion_id == 1 || $tipo_impresion_id == 3) {
+ $input_data['datosPedido']->isCosido = true;
+ } else if ($tipo_impresion_id == 5 || $tipo_impresion_id == 7) {
+ $input_data['datosPedido']->isCosido = false;
+ }
+
+ $guardas = PresupuestoClienteService::obtenerGuardas($input_data);
+
+ foreach ($guardas as $linea) {
+ if (count($linea) > 0) {
+ $lomo += floatval($linea['mano']);
+ }
+ }
+ }
+ }
$lomo = round($lomo, 2);
$errors = [
'status' => 0,
@@ -659,7 +706,21 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
if ($interior == null) {
return $this->failServerError('Error al calcular el interior');
}
- $anchoTotal = $interior[0]['mano'];
+
+ $anchoTotal = 0;
+ if(count($interior) == 2) {
+
+ if(count($interior[0]) > 0)
+ $anchoTotal += $interior[0]['mano'];
+ if(count($interior[1]) > 0)
+ $anchoTotal += $interior[1]['mano'];
+ }
+ else{
+ if(count($interior) > 0)
+ $anchoTotal += $interior['mano'];
+ }
+
+
// le añadimos 2*ancho libro
$anchoTotal += 2 * $datosPedido->ancho;
// le añadimos los dobleces de las solapas
diff --git a/ci4/app/Controllers/Presupuestos/Presupuestoencuadernaciones.php b/ci4/app/Controllers/Presupuestos/Presupuestoencuadernaciones.php
index 09b577cd..ace1c37c 100755
--- a/ci4/app/Controllers/Presupuestos/Presupuestoencuadernaciones.php
+++ b/ci4/app/Controllers/Presupuestos/Presupuestoencuadernaciones.php
@@ -69,30 +69,30 @@ class Presupuestoencuadernaciones extends \App\Controllers\BaseResourceControlle
return;
endif;
- $postData = $this->request->getJSON();
- $tarifas = array_column($postData->datos, 'tarifa_id');
- $tirada = $postData->tirada ?? 0;
- $paginas = $postData->paginas ?? 0;
- $POD = $postData->POD ?? 0;
- $ancho = $postData->ancho ?? 0;
- $alto = $postData->alto ?? 0;
+ $postData = $this->request->getPost();
+ $datos_tarifas = $postData['datos'] ?? [];
+ $tirada = $postData['tirada'] ?? 0;
+ $paginas = $postData['paginas'] ?? 0;
+ $POD = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('POD')->value;
+ $ancho = $postData['ancho'] ?? 0;
+ $alto = $postData['alto'] ?? 0;
$result = [];
- if (count($tarifas) > 0) {
- foreach ($tarifas as $tarifa) {
- if ($tarifaModel->isTarifaPorHoras($tarifa)) {
- $values = $this->model->getPrecioTarifaHoras($tarifa, $paginas, $tirada, -1, $POD);
+ if (count($datos_tarifas) > 0) {
+ foreach ($datos_tarifas as $tarifa) {
+ if ($tarifaModel->isTarifaPorHoras($tarifa['tarifa_id'])) {
+ $values = $this->model->getPrecioTarifaHoras($tarifa['tarifa_id'], $paginas, $tirada, -1, $POD);
} else {
- $values = $this->model->getPrecioTarifa($tarifa, $paginas, $tirada, $ancho, $alto, -1, $POD);
+ $values = $this->model->getPrecioTarifa($tarifa['tarifa_id'], $paginas, $tirada, $ancho, $alto, -1, $POD);
}
- array_push($result, $values);
+ array_push($result, $values[0]);
}
}
$newTokenHash = csrf_hash();
$csrfTokenName = csrf_token();
$data = [
- 'lines' => $result,
+ 'lineas' => $result,
$csrfTokenName => $newTokenHash
];
diff --git a/ci4/app/Controllers/Presupuestos/Presupuestomanipulados.php b/ci4/app/Controllers/Presupuestos/Presupuestomanipulados.php
index e78b5191..fb00fe11 100755
--- a/ci4/app/Controllers/Presupuestos/Presupuestomanipulados.php
+++ b/ci4/app/Controllers/Presupuestos/Presupuestomanipulados.php
@@ -63,6 +63,27 @@ class Presupuestomanipulados extends \App\Controllers\BaseResourceController
return $this->respond($data);
}
+ public function getServicioSolapas(){
+
+ if($this->request->isAJAX()){
+
+ $servicio = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('servicio_solapas')->value;
+
+ $newTokenHash = csrf_hash();
+ $csrfTokenName = csrf_token();
+
+ $data = [
+ 'service' => $servicio,
+ $csrfTokenName => $newTokenHash
+ ];
+
+ return $this->respond($data);
+ }
+ else{
+ return $this->failUnauthorized('Invalid request', 403);
+ }
+ }
+
public function update($requestedId = null)
{
@@ -70,23 +91,23 @@ class Presupuestomanipulados extends \App\Controllers\BaseResourceController
return;
endif;
- $postData = $this->request->getJSON();
- $tarifas = array_column($postData->datos, 'tarifa_id');
- $tirada = $postData->tirada ?? 0;
- $POD = $postData->POD ?? 0;
+ $postData = $this->request->getPost();
+ $tarifas = $postData['datos'] ?? [];
+ $tirada = $postData['tirada'] ?? 0;
+ $POD = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('POD')->value;
$result = [];
if(count($tarifas)>0){
foreach ($tarifas as $tarifa){
$values = $this->model->getPrecioTarifa($tarifa, $tirada, $POD);
- array_push($result, $values);
+ array_push($result, $values[0]);
}
}
$newTokenHash = csrf_hash();
$csrfTokenName = csrf_token();
$data = [
- 'lines' => $result,
+ 'lineas' => $result,
$csrfTokenName => $newTokenHash
];
diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosEnvios.js b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosEnvios.js
index dcfde390..052213a2 100644
--- a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosEnvios.js
+++ b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosEnvios.js
@@ -1,9 +1,4 @@
-const actionBtns_direcciones = function(data) {
- return `
-
-
- `;
-};
+/*
// Funcion para obtener el peso total del libro
function get_peso_libro(){
@@ -203,7 +198,7 @@ $('#insertar_direccion').on('click', function(){
$newAddDialog.modal('show')
})
-const lastColNr_direcciones = $('#tableOfDireccionesEnvio').find("tr:first th").length - 1;
+
$(document).on('click', '.delete-add-row', function(e) {
@@ -280,67 +275,6 @@ $('#recoger_en_taller').change(function(){
})
-let 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"
- },
-
- } );
@@ -421,3 +355,4 @@ function load_datos_envios(){
}
+*/
\ No newline at end of file
diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosEnvios.php b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosEnvios.php
index b1aa33f1..d428143f 100644
--- a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosEnvios.php
+++ b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosEnvios.php
@@ -14,7 +14,7 @@
-
+
@@ -27,8 +27,8 @@
| Proveedor_id |
- Margen |
- Entrega a pie |
+ = lang('Tarifaacabado.margen') ?> |
+ Pallets? |
diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosServiciosItems.js b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosServiciosItems.js
deleted file mode 100644
index e19a166c..00000000
--- a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosServiciosItems.js
+++ /dev/null
@@ -1,2075 +0,0 @@
-/****************************************************************************************
- * Seccion para las funciones generales de la pagina
- ***************************************************************************************/
-/*
-
-
-
-$('#serv_default').on('click', function(){
- get_tarifas_enc('default').then(
- get_tarifas_manipulado('default')
- )
- showBreadCrumbSaveButton(true);
-})
-
-// 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 if($(this).closest('table').attr('id').includes('tableOfServiciosExtra')){
- table = "tableOfServiciosExtra";
- }
- 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()
- check_serv_extra_error()
- updatePresupuesto({
- update_lineas: false,
- update_servicios: false,
- update_envios: false,
- update_resumen: true,
- update_tiradas_alternativas: true
- })
- //updateTotales(false, true, false)
- showBreadCrumbSaveButton(true);
-
-});
-
-function save_servicios(){
-
- var datosAcabado = get_datos_acabado()
- var datosEnc = get_datos_encuadernacion()
- var datosManipulado = get_datos_manipulado()
- var datosPreimpresion = get_datos_preimpresion()
- var datosServiciosExtra = get_datos_serviciosextra()
-
- const domain = window.location.origin
-
- const url = window.location.href;
- const url_parts = url.split('/');
- var id = -1;
- if(url_parts[url_parts.length-2] == 'edit'){
- id = url_parts[url_parts.length-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]);
- })
- )
-
- .then(
- fetch(domain + "/presupuestos/presupuestoserviciosextra/edit/" + id , {
- method: "POST",
- body: JSON.stringify(Object.assign({datos: datosServiciosExtra}, 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"
- },
-});
-
-tableServiciosAcabado.on('draw', function(){
-
- updatePresupuesto({
- update_lineas: false,
- update_servicios: false,
- update_envios: false,
- update_resumen: true,
- update_tiradas_alternativas: true})
-})
-
-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 + ')'
- }
-
- var precio_unidad = parseFloat(element.precio_unidad).toFixed(2)
- var margen = parseFloat(element.margen).toFixed(2)
- var precio_unidad_coste = (precio_unidad/(1+margen/100)).toFixed(2)
-
- tableServiciosAcabado.row.add([
- element.tarifa_acabado_id,
- nombre_completo,
- '',
- '' + precio_unidad_coste + ' / ' + precio_unidad + '',
- '',
- '' + margen + '',
- ''
- ]).draw(false)
-
- $('#proveedor_acabado_' + element.tarifa_acabado_id).select2({
- allowClear: false,
- minimumResultsForSearch: -1,
- ajax: {
- url: window.routes_servicios.menuItemsOfPresupuestoAcabados,
- 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: element.tarifa_acabado_id,
- tirada: tirada,
- };
- 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_acabado_' + element.tarifa_acabado_id).on('change', select_acabado_event)
-
-
- $('#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})
- })
-
- })
-
- check_serv_acabado_error()
-}
-
-function select_acabado_event(){
-
- if(parseInt($('#tirada').val())>0){
- var tirada = parseInt($('#tirada').val())
- }
- else{
- var tirada = 0
- }
-
- var tarifa_id = null;
- if(this.id.includes('proveedor_acabado')){
- tarifa_id = this.id.split('_')[2];
- }
- else{
- tarifa_id = this.id.split('_')[1];
- }
-
- var datos = {
- tarifa_acabado_id: tarifa_id,
- tirada: tirada,
- proveedor_id: parseInt($('#proveedor_acabado_' + tarifa_id).select2('data')[0].id),
- POD: parseInt($('#POD').val())
- };
- datos = Object.assign(datos, window.token_ajax);
-
- $.ajax({
- type: "POST",
- url: window.routes_servicios.dataTableOfPresupuestoAcabados,
- data: datos,
- success: function (data) {
-
- var precio_unidad = parseFloat(data.values[0].precio_unidad).toFixed(2)
- var margen = parseFloat(data.values[0].margen).toFixed(2)
- var precio_unidad_coste = (precio_unidad/(1+margen/100)).toFixed(2)
-
- $('#precio_unidad_acabado_' + datos.tarifa_acabado_id).text(precio_unidad_coste + ' / ' + precio_unidad)
- $('#precio_total_acabado_' + datos.tarifa_acabado_id).val(parseFloat(data.values[0].total).toFixed(2))
- $('#acabado_margen_' + datos.tarifa_acabado_id).val(margen)
-
- yeniden(data[window.csrf_token]);
- return true;
- },
- error: function(e){
- return false;
- }
- })
- return false;
-}
-
-function check_serv_acabado_error(){
-
- var htmlString = '';
-
- $('#tableOfServiciosAcabado tr').each(function(){
- if($(this).find('td').eq(2).text() == '0.00'){
- htmlString = `
-
-
-
-
-
-
` +
- window.Presupuestos.errores.error_servicios_anadidos +
- `
-
-
`;
- }
- })
- $('#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 + ')'
-
- var precio_unidad = parseFloat(row.precio_unidad).toFixed(2)
- var margen = parseFloat(row.margen).toFixed(2)
- var precio_unidad_coste = (precio_unidad/(1+margen/100)).toFixed(2)
-
- tableServiciosAcabado.row.add([
- row.tarifa_id,
- nombre,
- '',
- '' + precio_unidad_coste + ' / ' + precio_unidad + '',
- '',
- '' + margen + '',
- ''
- ]).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})
- })
-
-
-
- $('#proveedor_acabado_' + row.tarifa_id).select2({
- allowClear: false,
- minimumResultsForSearch: -1,
- ajax: {
- url: window.routes_servicios.menuItemsOfPresupuestoAcabados,
- 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,
- tirada: tirada,
- };
- 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_acabado_' + row.tarifa_id).on('change', select_acabado_event)
- });
-
- 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();
- showBreadCrumbSaveButton(true);
-
-})
-
-
-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 = []
- if($('#tableOfServiciosAcabado').DataTable().rows().count()>0){
- $("#tableOfServiciosAcabado tr").each(function (index,tr) {
- var values = {}
- $(this).find("td").each(function (index2) {
-
- switch (index2) {
- case 0:
- values['tarifa_id'] = $(this).text()
- break
- case 1:
- if($(this).text().includes(window.Presupuestos.cubierta))
- values['cubierta'] = 1
- else
- values['cubierta'] = 0
- if($(this).text().includes(window.Presupuestos.sobrecubierta))
- values['sobrecubierta'] = 1
- else
- values['sobrecubierta'] = 0
- break
- case 2:
- values['proveedor_id'] = $(this).children(":first").select2('data')[0].id
- break
- case 3:
- values['precio_unidad'] = $(this).text().split('/')[1].trim()
- break
- case 4:
- values['precio_total'] = $(this).children(":first").val()
- break
- case 5:
- values['margen'] = $(this).text()
- break
- }
- })
- if(Object.keys(values).length>0)
- datosAcabado.push(values)
- })
- }
- return datosAcabado
-}
-
-
-async function get_servAcabados_tiradasAlternativas(tirada){
-
- const url = window.location.href;
- const url_parts = url.split('/');
- var id = -1;
- if(url_parts[url_parts.length-2] == 'edit'){
- id = url_parts[url_parts.length-1];
- }
-
- var serviciosAcabados ={
- coste: 0.0,
- margen: 0.0,
- }
- var json_data = {
- datos: get_datos_acabado(),
- tirada: parseInt(tirada),
- POD: $('#POD').val()
- }
- if(json_data.datos.length>0){
-
- json_data = Object.assign(json_data, window.token_ajax);
-
- 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;
-}
-
-*/
-/****************************************************************************************
- * 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"
- },
-
-});
-
-tableServiciosEnc.on('draw', function(){
- updatePresupuesto({
- update_lineas: false,
- update_servicios: false,
- update_envios: false,
- update_resumen: true,
- update_tiradas_alternativas: true})
-})
-
-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
-
- var precio_unidad = parseFloat(element.precio_unidad).toFixed(2)
- var margen = parseFloat(element.margen).toFixed(0)
- var precio_unidad_coste = (precio_unidad/(1+margen/100)).toFixed(2)
-
- var linea = [
- element.tarifa_encuadernado_id,
- element.nombre,
- '',
- '' + precio_unidad_coste + ' / ' + precio_unidad + '',
- (element.hasOwnProperty('paginas_por_cuadernillo') && element.paginas_por_cuadernillo!=null)?selectForCuadernillos(element.tarifa_encuadernado_id, element.paginas_por_cuadernillo):'',
- '' + convertirTiempo(element.tiempo) + '',
- '',
- '' + margen + '',
- ''
- ]
-
- tableServiciosEnc.row.add(linea).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) {
-
- const dimension = getDimensionLibro();
-
- 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: dimension.ancho,
- alto: dimension.alto,
- 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', select_enc_event)
-
- if(element.hasOwnProperty('paginas_por_cuadernillo') && element.paginas_por_cuadernillo!=null){
-
- $('#cuadernillos_' + element.tarifa_encuadernado_id).select2({
- allowClear: false,
- minimumResultsForSearch: -1,
- });
-
- $('#cuadernillos_' + element.tarifa_encuadernado_id).on('change', select_enc_event)
- }
-
- });
- check_serv_enc_error()
-
-}
-
-function selectForCuadernillos(tarifa_id, select_value){
- const value_list = [32, 28, 24, 20, 16];
- var string =
- '';
- return string;
-}
-
-function convertirTiempo(horas){
- if(horas != null){
- if(parseFloat(horas)>0){
- const seconds = parseFloat(horas) * 3600;
- // se convierte a formato hh:mm:ss
- const h = Math.floor(seconds / 3600);
- const minutos = Math.floor((seconds % 3600) / 60);
- const segundos = Math.round(seconds % 60, 0);
- return h + ':' + minutos + ':' + segundos;
- }
- else{
- return "";
- }
-
- }
- else{
- return "";
- }
-}
-
-function select_enc_event(){
-
- const dimension = getDimensionLibro();
-
- if(parseInt($('#tirada').val())>0){
- var tirada = parseInt($('#tirada').val())
- }
- else{
- var tirada = 0
- }
-
- var tarifa_id = null;
- if(this.id.includes('proveedor_enc')){
- tarifa_id = this.id.split('_')[2];
- }
- else{
- tarifa_id = this.id.split('_')[1];
- }
- // se checkea si el elemento #cuadernillos_ + tarifa_id existe
- var paginas_por_cuadernillo = null;
- if($('#cuadernillos_' + tarifa_id).length){
- paginas_por_cuadernillo = parseInt($('#cuadernillos_' + tarifa_id).select2('data')[0].id);
- }
-
- var datos = {
- tarifa_encuadernacion_id: tarifa_id,
- paginas: parseInt($('#paginas').val())>0?parseInt($('#paginas').val()):0,
- tirada: tirada,
- ancho: dimension.ancho,
- alto: dimension.alto,
- paginas_por_cuadernillo: paginas_por_cuadernillo,
- proveedor_id: parseInt($('#proveedor_enc_' + tarifa_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) {
-
- var precio_unidad = parseFloat(data.values[0].precio_unidad).toFixed(2)
- var margen = parseFloat(data.values[0].margen).toFixed(0)
- var precio_unidad_coste = (precio_unidad/(1+margen/100)).toFixed(2)
-
- $('#precio_unidad_encuadernado_' + datos.tarifa_encuadernacion_id).text(precio_unidad_coste + ' / ' + precio_unidad)
- $('#tiempo_encuadernado_' + datos.tarifa_encuadernacion_id).text(convertirTiempo(data.values[0].tiempo))
- $('#precio_total_encuadernado_' + datos.tarifa_encuadernacion_id).val(parseFloat(data.values[0].total).toFixed(2))
- $('#enc_margen_' + datos.tarifa_encuadernacion_id).val(margen)
-
- 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 = `
-
-
-
-
-
-
` +
- window.Presupuestos.errores.error_servicios_anadidos +
- `
-
-
`;
- }
- })
- $('#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,
- tirada: tirada,
- paginas: parseInt($('#paginas').val())>0?parseInt($('#paginas').val()):0,
- 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_id').val())
- }
-
- $.ajax({
- type: "POST",
- url: window.routes_servicios.dataTableOfPresupuestoEncuadernaciones,
- data: datos,
- success: function (data) {
-
- if(tipo=='default')
- tableServiciosEnc.clear().draw()
-
- data.values.forEach((row) => {
-
- var precio_unidad = parseFloat(row.precio_unidad).toFixed(2)
- var margen = parseFloat(row.margen).toFixed(0)
- var precio_unidad_coste = (precio_unidad/(1+margen/100)).toFixed(2)
-
- tableServiciosEnc.row.add([
- row.tarifa_id,
- row.tarifa_nombre,
- '',
- '' + precio_unidad_coste + ' / ' + precio_unidad + '',
- (row.hasOwnProperty('paginas_por_cuadernillo') && row.paginas_por_cuadernillo!=null)?selectForCuadernillos(row.tarifa_id, 32):'',
- '' + convertirTiempo(row.tiempo) + '',
- '',
- '' + margen + '',
- ''
- ]).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: dimension.ancho,
- alto: dimension.alto,
- 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', select_enc_event)
-
-
- if(row.hasOwnProperty('paginas_por_cuadernillo') && row.paginas_por_cuadernillo!=null){
- $('#cuadernillos_' + row.tarifa_id).select2({
- allowClear: false,
- minimumResultsForSearch: -1,
- });
-
- $('#cuadernillos_' + row.tarifa_id).on('change', select_enc_event)
- }
- });
- 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 = []
- if($("#tableOfServiciosEncuadernacion").DataTable().rows().count()>0){
- $("#tableOfServiciosEncuadernacion tr").each(function (index,tr) {
- var values = {}
- $(this).find("td").each(function (index2) {
-
- switch (index2) {
- case 0:
- values['tarifa_id'] = $(this).text()
- break
- case 2:
- values['proveedor_id'] = $(this).children(":first").select2('data')[0].id
- break
- case 3:
- values['precio_unidad'] = $(this).text().split('/')[1].trim()
- break
- case 4:
- values['paginas_por_cuadernillo'] = $(this).children(":first").val()
- // Si el valor es "undefined" se pone a null
- if(values['paginas_por_cuadernillo'] == "undefined")
- values['paginas_por_cuadernillo'] = null
- case 5:
- values['tiempo'] = $(this).text()
- // se pasa el string hh:mm:ss a horas
- if(values['tiempo'] != null)
- values['tiempo'] = parseInt(values['tiempo'].split(':')[0]) + parseInt(values['tiempo'].split(':')[1])/60 + parseInt(values['tiempo'].split(':')[2])/3600
- break
- case 6:
- values['precio_total'] = $(this).children(":first").val()
- break
- case 7:
- values['margen'] = $(this).text()
- break
- }
- })
- if(Object.keys(values).length>0)
- datosEnc.push(values)
- })
- }
-
- return datosEnc
-}
-
-
-async function get_servEncuadernacion_tiradasAlternativas(tirada, paginas, ancho, alto){
-
- const url = window.location.href;
- const url_parts = url.split('/');
- var id = -1;
- if(url_parts[url_parts.length-2] == 'edit'){
- id = url_parts[url_parts.length-1];
- }
-
- var serviciosEncuadernacion ={
- coste: 0.0,
- margen: 0.0,
- }
-
- var json_data = {
- datos: get_datos_encuadernacion(),
- tirada: parseInt(tirada),
- paginas: parseInt(paginas),
- ancho: ancho,
- alto: alto,
- POD: $('#POD').val()
- }
-
- 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"
- },
-});
-
-tableServiciosManipulado.on('draw', function(){
- updatePresupuesto({
- update_lineas: false,
- update_servicios: false,
- update_envios: false,
- update_resumen: true,
- update_tiradas_alternativas: true})
-})
-
-function init_servicio_manipulado(){
-
- $('#add_servicio_manipulado_list').select2({
- allowClear: false,
- minimumResultsForSearch: -1,
- placeholder: window.Presupuestos.servicioManipuladoList
- })
-
- window.serviciosmanipuladoList.forEach((element) =>{
-
- var precio_unidad = parseFloat(element.precio_unidad).toFixed(2)
- var margen = parseFloat(element.margen).toFixed(0)
- var precio_unidad_coste = (precio_unidad/(1+margen/100)).toFixed(2)
-
- tableServiciosManipulado.row.add([
- element.tarifa_manipulado_id,
- element.nombre,
- '' + precio_unidad_coste + ' / ' + precio_unidad + '',
- '',
- '' + margen + '',
- ''
- ]).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 = `
-
-
-
-
-
-
` +
- window.Presupuestos.errores.error_servicios_anadidos +
- `
-
-
`;
- }
- })
- $('#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_id').val());
- }
-
-
-
- $.ajax({
- type: "POST",
- url: window.routes_servicios.dataTableOfPresupuestoManipulados,
- data: datos,
- success: function (data) {
-
- if(tipo=='default')
- tableServiciosManipulado.clear().draw()
-
- data.values.forEach((row) => {
-
- var precio_unidad = parseFloat(row.precio_unidad).toFixed(2)
- var margen = parseFloat(row.margen).toFixed(0)
- var precio_unidad_coste = (precio_unidad/(1+margen/100)).toFixed(2)
-
- tableServiciosManipulado.row.add([
- row.tarifa_id,
- row.tarifa_nombre,
- '' + precio_unidad_coste + ' / ' + precio_unidad + '',
- '',
- '' + margen + '',
- ''
- ]).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})
- })
- });
- 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 = []
- if($("#tableOfServiciosManipulado").DataTable().rows().count()>0){
-
- $("#tableOfServiciosManipulado tr").each(function (index,tr) {
- var values = {}
- $(this).find("td").each(function (index2) {
-
- switch (index2) {
- case 0:
- values['tarifa_id'] = $(this).text()
- break
- case 2:
- values['precio_unidad'] = $(this).text().split('/')[1].trim()
- break
- case 3:
- values['precio_total'] = $(this).children(":first").val()
- break
- case 4:
- values['margen'] = $(this).text()
- break
- }
- })
- if(Object.keys(values).length>0)
- datosManipulado.push(values)
- })
- }
-
- return datosManipulado
-}
-
-
-async function get_servManipulado_tiradasAlternativas(tirada){
-
- const url = window.location.href;
- const url_parts = url.split('/');
- var id = -1;
- if(url_parts[url_parts.length-2] == 'edit'){
- id = url_parts[url_parts.length-1];
- }
-
- var serviciosManipulado ={
- coste: 0.0,
- margen: 0.0,
- }
- var json_data = {
- datos: get_datos_manipulado(),
- tirada: parseInt(tirada),
- POD: $('#POD').val()
- }
- if(json_data.datos.length>0){
- json_data = Object.assign(json_data, window.token_ajax);
-
- 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"
- }
-});
-
-tableServiciosPreimpresion.on('draw', function(){
- updatePresupuesto({
- update_lineas: false,
- update_servicios: false,
- update_envios: false,
- update_resumen: true,
- update_tiradas_alternativas: true})
-})
-
-
-function init_servicio_preimpresion(){
-
-
- $('#add_servicio_preimpresion_list').select2({
- allowClear: false,
- minimumResultsForSearch: -1,
- placeholder: window.Presupuestos.servicioPreimpresionList
- })
-
- window.serviciospreimpresionList.forEach((element) =>{
-
- var precio = parseFloat(element.precio).toFixed(2)
- var margen = parseFloat(element.margen).toFixed(2)
- var coste = (precio/(1+margen/100)).toFixed(2)
-
- tableServiciosPreimpresion.row.add([
- element.tarifa_preimpresion_id,
- element.nombre,
- '' + coste + '',
- '',
- '' + margen + '',
- ''
- ]).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})
- })
-
- })
- 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 = `
-
-
-
-
-
-
` +
- window.Presupuestos.errores.error_servicios_anadidos +
- `
-
-
`;
- }
- })
- $('#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.dataTableOfPresupuestoPreimpresion,
- data: datos,
- success: function (data) {
-
- data.values.forEach((row) => {
-
- var precio = parseFloat(row.precio).toFixed(2)
- var margen = parseFloat(row.margen).toFixed(2)
- var coste = (precio/(1+margen/100)).toFixed(2)
-
- tableServiciosPreimpresion.row.add([
- row.tarifa_id,
- row.tarifa_nombre,
- '' + coste + '',
- '',
- '' + parseFloat(row.margen).toFixed(2) + '',
- ''
- ]).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})
- })
-
- });
- 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_extra_list').val(serviciosAutomaticos.prototipo)
- $('#insertar_serv_extra').click()
- }
- else{
- var row_indexes = tableServiciosExtra.rows().eq( 0 ).filter( function (rowIdx) {
- return tableServiciosExtra.cell( rowIdx, 0 ).data() == serviciosAutomaticos.prototipo ? true : false;
- } );
- if(row_indexes.length > 0){
- tableServiciosExtra.row(row_indexes[0]).remove().draw()
- check_serv_preimpresion_error()
- }
- }
-}
-
-function servicioFerro(){
- var row_indexes = tableServiciosExtra.rows().eq( 0 ).filter( function (rowIdx) {
- return tableServiciosExtra.cell( rowIdx, 0 ).data() == serviciosAutomaticos.ferro ? true : false;
- } );
- if($('#ferro').prop('checked')){
- if(row_indexes.length == 0){
- $('#add_servicio_extra_list').val(serviciosAutomaticos.ferro)
- $('#insertar_serv_extra').click()
- }
- }
- else{
- if(row_indexes.length > 0){
- tableServiciosExtra.row(row_indexes[0]).remove().draw()
- check_serv_extra_error()
- }
- }
-}
-
-$('#insertar_serv_preimpresion').on('click', function(){
-
- let data = $('#add_servicio_preimpresion_list').select2('data');
- if (data.length > 0) {
- const tarifa_text = data[0].text.trim();
- if (tarifa_text.length > 0) {
- if ($('#tableOfServiciosPreimpresion tr > td:contains(' + tarifa_text + ')').length == 0)
- get_tarifas_preimpresion(data[0].id);
- else {
- popErrorAlert(window.Presupuestos.errores.error_servicios_duplicados, 'serv-preimpresion-alert');
- }
- }
- }
- check_serv_preimpresion_error()
-})
-
-
-function get_datos_preimpresion(){
-
- var datosPreimpresion = []
- if($("#tableOfServiciosPreimpresion").DataTable().rows().count()>0){
-
- $("#tableOfServiciosPreimpresion tr").each(function (index,tr) {
- var values = {}
- $(this).find("td").each(function (index2) {
-
- switch (index2) {
- case 0:
- values['tarifa_id'] = $(this).text()
- break
- case 3:
- values['precio'] = $(this).children(":first").val()
- break
- case 4:
- values['margen'] = $(this).text()
- break
- }
- })
- if(Object.keys(values).length>0)
- datosPreimpresion.push(values)
- })
- }
-
- return datosPreimpresion
-}
-
-
-async function get_servPreimpresion_tiradasAlternativas(){
-
- const url = window.location.href;
- const url_parts = url.split('/');
- var id = -1;
- if(url_parts[url_parts.length-2] == 'edit'){
- id = url_parts[url_parts.length-1];
- }
-
- var serviciosPreimpresion ={
- coste: 0.0,
- margen: 0.0,
- }
- var json_data = {
- datos: get_datos_preimpresion(),
- POD: $('#POD').val()
- }
- if(json_data.datos.length>0){
-
- 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;
-}
-
-
-
-
-
-/****************************************************************************************
- * Seccion para los servicios extra
- ***************************************************************************************/
-var tableServiciosExtra = new DataTable('#tableOfServiciosExtra',{
- 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"
- }
-});
-
-tableServiciosExtra.on('draw', function(){
- updatePresupuesto({
- update_lineas: false,
- update_servicios: false,
- update_envios: false,
- update_resumen: true,
- update_tiradas_alternativas: true})
-})
-
-function init_servicio_extra(){
-
-
- $('#add_servicio_extra_list').select2({
- allowClear: false,
- minimumResultsForSearch: -1,
- placeholder: window.Presupuestos.servicioextraList
- })
-
- window.serviciosextraList.forEach((element) =>{
-
- var precio = parseFloat(element.precio).toFixed(2)
- var margen = parseFloat(element.margen).toFixed(2)
- var coste = (precio/(1+margen/100)).toFixed(2)
-
- tableServiciosExtra.row.add([
- element.tarifa_extra_id,
- element.nombre,
- '',
- '',
- '',
- ''
- ]).draw(false)
-
- $('#precio_servicioextra_' + element.tarifa_extra_id).on('change', function(){
- updatePresupuesto({
- update_lineas: false,
- update_servicios: false,
- update_envios: false,
- update_resumen: true,
- update_tiradas_alternativas: true})
- })
-
- })
- check_serv_extra_error()
-}
-
-function check_serv_extra_error(){
-
- var htmlString = '';
-
- $('#tableOfServiciosExtra tr').each(function(){
-
- if(parseFloat($(this).find('td:eq(2) input').val()) == '0'){
- htmlString = `
-
-
-
-
-
-
` +
- window.Presupuestos.errores.error_servicios_anadidos +
- `
-
-
`;
- }
- })
- $('#serv-preimpresion-error').html(htmlString)
-}
-
-function get_tarifas_extra(tarifa_id = -1){
-
- var datos = {
- tarifa_extra_id : tarifa_id,
- };
- datos = Object.assign(datos, window.token_ajax)
-
-
- $.ajax({
- type: "POST",
- url: window.routes_servicios.dataTableOfPresupuestoServiciosExtra,
- data: datos,
- success: function (data) {
-
- data.values.forEach((row) => {
-
- var precio = parseFloat(row.precio).toFixed(2)
- var margen = parseFloat(row.margen).toFixed(2)
- var coste = (precio/(1+margen/100)).toFixed(2)
-
- tableServiciosExtra.row.add([
- row.tarifa_id,
- row.tarifa_nombre,
- '',
- '',
- '',
- ''
- ]).draw(false)
-
- $('#precio_servicioextra_' + row.tarifa_id).on('change', function(){
- updatePresupuesto({
- update_lineas: false,
- update_servicios: false,
- update_envios: false,
- update_resumen: true,
- update_tiradas_alternativas: true})
- })
-
- });
- check_serv_extra_error()
- yeniden(data[window.csrf_token]);
- return true;
- },
- error: function(e){
- return false;
- }
- })
- return false;
-}
-
-
-$('#insertar_serv_extra').on('click', function(){
- const tarifa_text = $('#add_servicio_extra_list').select2('data')[0].text.trim()
-
- if( $('#add_servicio_extra_list').select2('data')[0].text.trim().length > 0){
- if($('#tableOfServiciosExtra tr > td:contains(' + tarifa_text + ')').length == 0)
- get_tarifas_extra($('#add_servicio_extra_list').select2('data')[0].id);
- else{
- popErrorAlert(window.Presupuestos.errores.error_servicios_duplicados, 'serv-extra-alert')
- }
- }
- check_serv_extra_error()
-})
-
-
-function get_datos_serviciosextra(){
-
- var datosServiciosExtra = []
- if($("#tableOfServiciosExtra").DataTable().rows().count()>0){
-
- $("#tableOfServiciosExtra tr").each(function (index,tr) {
- var values = {}
- $(this).find("td").each(function (index2) {
-
- switch (index2) {
- case 0:
- values['tarifa_id'] = $(this).text()
- break
- case 3:
- values['precio'] = $(this).children(":first").val()
- break
- case 4:
- values['margen'] = $(this).text()
- break
- }
- })
- if(Object.keys(values).length>0)
- datosServiciosExtra.push(values)
- })
- }
-
- return datosServiciosExtra;
-}
-
-
-async function get_servExtra_tiradasAlternativas(){
-
- const url = window.location.href;
- const url_parts = url.split('/');
- var id = -1;
- if(url_parts[url_parts.length-2] == 'edit'){
- id = url_parts[url_parts.length-1];
- }
-
- var serviciosExtra ={
- coste: 0.0,
- margen: 0.0,
- }
- var json_data = {
- datos: get_datos_serviciosextra(),
- POD: $('#POD').val()
- }
- if(json_data.datos.length>0){
-
- json_data = Object.assign(json_data, window.token_ajax);
-
- await fetch(window.location.origin + "/presupuestos/presupuestoserviciosextra/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) => {
- serviciosExtra.coste += parseFloat(line[0].precio);
- serviciosExtra.margen += parseFloat(line[0].precio)*parseFloat(line[0].margen)/100.0;
- });
-
- });
- }
- return serviciosExtra;
-}
-
-
-/****************************************************************************************
- * Seccion para "otros"
- ***************************************************************************************/
-async function actualizar_servicios(update_preimpresion=false){
-
- const domain = window.location.origin
- const url = window.location.href;
- const url_parts = url.split('/');
- var id = -1;
- if(url_parts[url_parts.length-2] == 'edit'){
- id = url_parts[url_parts.length-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);
-
-
- var datos_json_serviciosextra = {
- datos: get_datos_serviciosextra(),
- }
- datos_json_preimpresion = Object.assign(datos_json_preimpresion, window.token_ajax);
-
- fetch(domain + "/presupuestos/presupuestoacabados/update/" + id , {
- method: "POST",
- body: JSON.stringify(datos_json_acabados),
- headers: {
- "Content-type": "application/json; charset=UTF-8"
- }
- })
- .then(response => response.json())
- .then(data => {
- data.lines.forEach((line) => {
-
- var precio_unidad = parseFloat(line[0].precio_unidad).toFixed(2)
- var margen = parseFloat(line[0].margen).toFixed(0)
- var precio_unidad_coste = (precio_unidad/(1+margen/100)).toFixed(2)
-
- $('#proveedor_acabado_' + line[0].tarifa_id).off('change')
- if(line[0].hasOwnProperty('proveedor_id')){
- $('#proveedor_acabado_' + line[0].tarifa_id)
- .append('')
- }
- else{
- $('#proveedor_acabado_' + line[0].tarifa_id).empty()
- .append('')
- }
- $('#precio_unidad_acabado_' + line[0].tarifa_id).text(precio_unidad_coste + " / " + precio_unidad)
- $('#precio_total_acabado_' + line[0].tarifa_id).val(parseFloat(line[0].total).toFixed(2))
- $('#acabado_margen_' + line[0].tarifa_id).text(margen)
- $('#proveedor_acabado_' + line[0].tarifa_id).on('change', select_enc_event)
- });
- 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) => {
-
- var precio_unidad = parseFloat(line[0].precio_unidad).toFixed(2)
- var margen = parseFloat(line[0].margen).toFixed(0)
- var precio_unidad_coste = (precio_unidad/(1+margen/100)).toFixed(2)
-
- $('#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(precio_unidad_coste + " / " + precio_unidad)
- $('#precio_total_encuadernado_' + line[0].tarifa_id).val(parseFloat(line[0].total).toFixed(2))
- $('#enc_margen_' + line[0].tarifa_id).val(margen)
- $('#proveedor_enc_' + line[0].tarifa_id).on('change', select_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) => {
-
- var precio_unidad = parseFloat(line[0].precio_unidad).toFixed(2)
- var margen = parseFloat(line[0].margen).toFixed(0)
- var precio_unidad_coste = (precio_unidad/(1+margen/100)).toFixed(2)
-
- $('#precio_unidad_manipulado_' + line[0].tarifa_id).text(precio_unidad_coste + " / " + precio_unidad)
- $('#precio_total_manipulado_' + line[0].tarifa_id).val(parseFloat(line[0].total).toFixed(2))
- $('#manipulado_margen_' + line[0].tarifa_id).val(margen)
- });
- 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) => {
-
- var precio = parseFloat(line[0].total).toFixed(2)
- var margen = parseFloat(line[0].margen).toFixed(2)
- var coste = (precio/(1+margen/100)).toFixed(2)
-
- $('#coste_preimprecion_' + line[0].tarifa_id).text(coste)
- $('#precio_preimpresion_' + line[0].tarifa_id).val(precio)
- $('#preimpresion_margen_' + line[0].tarifa_id).val(margen)
- });
- check_serv_preimpresion_error()
- yeniden(data[window.csrf_token]);
- })
- }
- }).then(function(){
- if(update_preimpresion){
- fetch(domain + "/presupuestos/presupuestoserviciosextra/update/" + id , {
- method: "POST",
- body: JSON.stringify(datos_json_serviciosextra),
- headers: {
- "Content-type": "application/json; charset=UTF-8"
- }
- })
- .then(response => response.json())
- .then(data => {
-
- var precio = parseFloat(data[0].total).toFixed(2)
- var margen = parseFloat(data[0].margen).toFixed(2)
- var coste = (precio/(1+margen/100)).toFixed(2)
-
- data.lines.forEach((line) => {
- $('#coste_servicioextra_' + line[0].tarifa_id).text(coste)
- $('#precio_serviciosextra_' + line[0].tarifa_id).val(precio)
- $('#serviciosextra_margen_' + line[0].tarifa_id).val(margen)
- });
- check_serv_preimpresion_error();
- yeniden(data[window.csrf_token]);
- })
- }
- })
- )
- )
-
-}
-
-function popAlert(message, alertClass, alertIcon, containerId = 'sk-alert'){
- var htmlString = `
- `;
- if(containerId == 'sk-alert'){
- $(window).scrollTop(0);
- }
- $('#' + containerId).hide().empty().html(htmlString).fadeIn("slow", function(){
- setTimeout(function(){
- $('#' + containerId).fadeOut("slow");
- }, 5000);
- });
-}
diff --git a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/presupuestoAdminEdit.js b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/presupuestoAdminEdit.js
index 3f0bf29b..7d1b80cc 100644
--- a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/presupuestoAdminEdit.js
+++ b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/presupuestoAdminEdit.js
@@ -7,6 +7,7 @@ import Comparador from './sections/comparador.js';
import LineasPresupuesto from './sections/lineasPresupuesto.js';
import PreviewFormasAdmin from './sections/previewFormasAdmin.js';
import Servicios from './sections/servicios.js';
+import Envios from './sections/envios.js';
class PresupuestoAdminEdit {
@@ -38,6 +39,7 @@ class PresupuestoAdminEdit {
this.previewFormasAdmin = null;
this.servicios = new Servicios();
+ this.envios = new Envios();
this.calcularPresupuesto = false;
}
@@ -67,6 +69,7 @@ class PresupuestoAdminEdit {
this.datosLibro.init();
this.comparador.init();
this.lineasPresupuesto.init();
+ this.envios.init();
this.previewFormasAdmin = new PreviewFormasAdmin(tipoLibro, this.tipoTapa,
{
@@ -124,6 +127,7 @@ class PresupuestoAdminEdit {
self.lineasPresupuesto.cargarDatos(response.data.lineasPresupuesto);
self.servicios.cargar(response.data.servicios);
+ self.envios.cargar(response.data.direcciones);
/*self.direcciones.handleChangeCliente();
self.direcciones.cargarDatos(response.data.direcciones, response.data.datosGenerales);
diff --git a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/datosLibro.js b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/datosLibro.js
index b7957ec0..9971f72d 100644
--- a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/datosLibro.js
+++ b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/datosLibro.js
@@ -66,8 +66,8 @@ class DatosLibro {
this.acabadoSobrecubierta.init();
this.acabadoCubierta.item.on('select2:select', function () {
-
- $(document).trigger('add-servicio-lineas', 'acabadoCubierta');
+
+ $(document).trigger('add-servicio-lineas', 'acabadoCubierta');
});
this.acabadoSobrecubierta.item.on('select2:select', function () {
$(document).trigger('add-servicio-lineas', 'acabadoSobrecubierta');
@@ -96,9 +96,10 @@ class DatosLibro {
$('.formato-libro').on('change', function () {
$(document).trigger('update-lineas-presupuesto');
+ $(document).trigger('update-servicios');
+
/* TO-DO
updatePresupuesto({
- update_servicios: true,
update_envios: true,
update_resumen: true,
update_tiradas_alternativas: true
@@ -116,7 +117,7 @@ class DatosLibro {
$(document).trigger('remove-servicio-lineas', 'fajaColor');
}
}
-
+
changeFerro() {
if (this.ferro.prop('checked')) {
@@ -130,7 +131,7 @@ class DatosLibro {
changePrototipo() {
if (this.prototipo.prop('checked')) {
-
+
$(document).trigger('add-servicio-lineas', 'prototipo');
this.ferro.prop('checked', true).trigger('change');
}
@@ -183,33 +184,32 @@ class DatosLibro {
this.checkPaginasPresupuesto();
$(document).trigger('update-lineas-presupuesto');
-
+ $(document).trigger('update-servicios');
// TO-DO
/*updatePresupuesto({
- update_servicios: true,
update_envios: true,
update_resumen: true,
update_tiradas_alternativas: true
})*/
}
-
- changeTipoTamanio(){
-
- if(this.tamanioPersonalizado.prop('checked')){
+
+ changeTipoTamanio() {
+
+ if (this.tamanioPersonalizado.prop('checked')) {
$('.tamanio-personalizado').removeClass('d-none');
$('.tamanio-estandar').addClass('d-none');
this.tamanio.setVal('');
- $("#label_papelFormatoId").text(
+ $("#label_papelFormatoId").text(
window.language.Presupuestos.papelFormatoId + " (" +
window.language.Presupuestos.papelFormatoAncho + " x " + window.language.Presupuestos.papelFormatoAncho + ")*");
}
- else{
+ else {
this.anchoPersonalizado.val("");
this.altoPersonalizado.val("");
$('.tamanio-personalizado').addClass('d-none');
$('.tamanio-estandar').removeClass('d-none');
- $("#label_papelFormatoId").text(
+ $("#label_papelFormatoId").text(
window.language.Presupuestos.papelFormatoId + '*');
}
$(document).trigger('update-lineas-presupuesto');
@@ -218,59 +218,67 @@ class DatosLibro {
changeSolapasCubierta() {
- if (this.solapasCubierta.prop('checked')) {
- $('#div_solapas_ancho').removeClass('d-none');
- }
- else {
- $('#div_solapas_ancho').divSolapasCubierta.addClass('d-none');
- this.anchoSolapasCubierta.val(0);
- }
- $('#serv_default').trigger('click');
+ setTimeout(() => {
+ if (this.solapasCubierta.prop('checked')) {
+ $('#div_solapas_ancho').removeClass('d-none');
+ $(document).trigger('add-servicio-lineas', 'solapas');
+ }
+ else {
+ $('#div_solapas_ancho').addClass('d-none');
+ this.anchoSolapasCubierta.val(60);
+ $(document).trigger('remove-servicio-lineas', 'solapas');
+ }
+ }, 100);
+ $(document).trigger('update-servicios');
}
changeSolapasSobrecubierta() {
-
+
if (this.solapasSobrecubierta.prop('checked')) {
this.divSolapasSobrecubierta.removeClass('d-none');
+ $(document).trigger('remove-servicio-lineas', 'solapas');
}
else {
this.divSolapasSobrecubierta.addClass('d-none');
- this.anchoSolapasSobrecubierta.val(0);
+ this.anchoSolapasSobrecubierta.val(60);
+ $(document).trigger('add-servicio-lineas', 'solapas');
}
- $('#serv_default').trigger('click');
+ $(document).trigger('update-servicios');
+
}
changePaginas() {
-
- if($('#tipo_impresion_id').val() == 21){
- if(parseInt($('#paginas').val()) > 80){
+
+ if ($('#tipo_impresion_id').val() == 21) {
+ if (parseInt($('#paginas').val()) > 80) {
$('#paginas').val(80)
}
}
-
- if(window.location.href.includes('edit')){
-
+
+ if (window.location.href.includes('edit')) {
+
this.checkPaginasPresupuesto();
-
+
// Si es negro o color
if ($('#tipoImpresion').select2('data')[0].id == 'negro' ||
$('#tipoImpresion').select2('data')[0].id == 'color') {
- $('#compPaginasNegro').val(parseInt($('#paginas').val())-parseInt($('#compPaginasColor').val()));
+ $('#compPaginasNegro').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').val(parseInt($('#paginas').val()) - parseInt($('#compPaginasColorhq').val()));
$('#compPaginasNegrohq').trigger('change');
}
-
+
+ $(document).trigger('update-lineas-presupuesto');
+ $(document).trigger('update-servicios');
+
// TO-DO
/*
updatePresupuesto({
- update_lineas: true,
- update_servicios: true,
update_envios: true,
update_resumen: true,
update_tiradas_alternativas: true
@@ -278,16 +286,16 @@ class DatosLibro {
*/
}
}
-
-
+
+
changeTirada(update_tiradas_alternativas = true) {
-
+
this.calcular_mermas()
-
+
const url2 = window.location.href;
const url_parts2 = url2.split('/');
-
- if(url_parts2[url_parts2.length-2] == 'edit'){
+
+ if (url_parts2[url_parts2.length - 2] == 'edit') {
$(document).trigger('update-lineas-presupuesto');
//update_servicios(false)
//updateLineasPresupuesto()
@@ -314,35 +322,35 @@ class DatosLibro {
*/
}
}
-
- calcular_mermas(){
-
+
+ calcular_mermas() {
+
const tirada = parseInt($('#tirada').val());
const POD = parseInt($('#POD').val());
let merma = 0;
let htmlString = '';
-
- if(tirada> POD){
- merma = tirada*0.1<=POD ? tirada*0.1 : POD;
+
+ if (tirada > POD) {
+ merma = tirada * 0.1 <= POD ? tirada * 0.1 : POD;
}
- else{
+ else {
let merma_lineas = []
- $('#tableLineasPresupuesto').DataTable().rows().every( function ( rowIdx, tableLoop, rowLoop ) {
+ $('#tableLineasPresupuesto').DataTable().rows().every(function (rowIdx, tableLoop, rowLoop) {
var rowData = this.data();
- if(rowData.row_id != 'lp_guardas' && rowData.row_id != 'lp_cubierta' && rowData.row_id != 'lp_sobrecubierta'){
- const formas_linea = parseInt($('#isCosido').val())==0?parseInt(rowData.formas):parseInt(rowData.formas)/2
- if(formas_linea > tirada)
- merma_lineas.push(formas_linea-tirada)
+ 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)
+ merma_lineas.push(tirada % formas_linea)
}
-
+
})
-
-
- if(merma_lineas.length>0)
+
+
+ if (merma_lineas.length > 0)
merma = Math.max(...merma_lineas)
- else{
+ else {
htmlString = `
@@ -350,16 +358,16 @@ class DatosLibro {
` +
- window.language.Presupuestos.validation.no_lp_for_merma +
- `
+ window.language.Presupuestos.validation.no_lp_for_merma +
+ `
-
`;
-
-
+ `;
+
+
merma = 0
-
+
}
-
+
}
$('#mermacubierta').val(parseInt(merma))
$('#merma').val(parseInt(merma))
@@ -392,15 +400,15 @@ class DatosLibro {
$('#tipo_impresion_id').val() == 5 || $('#tipo_impresion_id').val() == 7) {
$(".solapas-cubierta-div").addClass('d-none');
}
- else{
+ else {
if (datos.solapasCubierta) {
this.solapasCubierta.prop('checked', true);
this.anchoSolapasCubierta.val(datos.solapasCubiertaAncho);
this.divSolapasSobrecubierta.removeClass('d-none');
}
- else{
+ else {
this.solapasCubierta.prop('checked', false);
- this.anchoSolapasCubierta.val(0);
+ this.anchoSolapasCubierta.val(60);
this.divSolapasSobrecubierta.addClass('d-none');
}
}
@@ -409,12 +417,12 @@ class DatosLibro {
this.anchoSolapasSobrecubierta.val(datos.solapasSobrecubiertaAncho);
$('#div_solapas_ancho_sobrecubierta').removeClass('d-none');
}
- else{
+ else {
this.solapasSobrecubierta.prop('checked', false);
this.anchoSolapasSobrecubierta.val(60);
$('#div_solapas_ancho_sobrecubierta').addClass('d-none');
}
-
+
this.acabadoCubierta.setOption(datos.acabadoCubierta.id, datos.acabadoCubierta.text);
diff --git a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/envios.js b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/envios.js
new file mode 100644
index 00000000..ff58c712
--- /dev/null
+++ b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/envios.js
@@ -0,0 +1,125 @@
+import Ajax from "../../../components/ajax.js";
+import { getToken } from "../../../common/common.js";
+
+class Envios {
+
+ constructor() {
+
+ this.csrf_token = getToken();
+ this.csrf_hash = $('#mainContainer').find('input[name="' + this.csrf_token + '"]').val();
+
+ this.recogerTaller = $('#recoger_en_taller');
+
+ this.table = null;
+ }
+
+ init() {
+
+ const self = this;
+
+ this.table = $('#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': 'pais' },
+ { 'data': 'telefono' },
+ { 'data': 'proveedor' },
+ { 'data': 'proveedor_id' },
+ { 'data': 'precio' },
+ { 'data': 'margen' },
+ { 'data': 'entregaPieCalle' },
+ {
+ data: function (row, type, set, meta) {
+ return `
+
+
+ `;
+ },
+ className: 'row-edit dt-center'
+ }
+ ],
+ columnDefs: [
+ {
+ orderable: false,
+ searchable: false,
+ targets: [$('#tableOfDireccionesEnvio').find("tr:first th").length - 1]
+ },
+ { "orderData": [0], "targets": 0 },
+
+ ],
+ columnDefs: [
+ {
+ target: [11],
+ visible: false,
+ searchable: false
+ },
+ ],
+ language: {
+ url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
+ },
+
+ drawCallback: function (settings) {
+ self.check_unidades_enviadas();
+ }
+
+ });
+ }
+
+ cargar(datos) {
+ if (datos.entrega_taller) {
+ this.recogerTaller.prop('checked', true);
+ }
+ else {
+ this.table.rows.add(datos).draw();
+ }
+ }
+
+ check_unidades_enviadas() {
+
+ var cantidad_total = 0
+ this.table.rows().every(function (rowIdx, tableLoop, rowLoop) {
+ cantidad_total += parseInt(this.data().cantidad)
+ });
+
+ const tirada = parseInt($('#tirada').val());
+ let htmlString = '';
+ if (cantidad_total < tirada && this.recogerTaller.prop('checked') === false) {
+ htmlString = `
+
+
+
+
+
+
` +
+ window.language.Presupuestos.validation.ejemplares_envio +
+ `
+
+
`;
+ $('#alert-envios').html(htmlString);
+ return false;
+ }
+ $('#alert-envios').html(htmlString);
+ return true;
+ }
+}
+
+export default Envios;
\ No newline at end of file
diff --git a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/lineasPresupuesto.js b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/lineasPresupuesto.js
index 092cdcda..e6a4cd10 100644
--- a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/lineasPresupuesto.js
+++ b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/lineasPresupuesto.js
@@ -37,7 +37,6 @@ class LineasPresupuesto {
// TO-DO
/*updatePresupuesto({
- update_servicios: true,
update_envios: true,
update_resumen: true,
update_tiradas_alternativas: true
@@ -1605,8 +1604,6 @@ class LineasPresupuesto {
calcular_mermas()
updatePresupuesto({
- update_lineas: false,
- update_servicios: true,
update_envios: true,
update_resumen: true,
update_tiradas_alternativas: true
@@ -1923,10 +1920,10 @@ class LineasPresupuesto {
*/
}
+
+
/* TO-DO
updatePresupuesto({
- update_lineas: false,
- update_servicios: true,
update_envios: false,
update_resumen: true,
update_tiradas_alternativas: true
diff --git a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/servicios.js b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/servicios.js
index a6d64f93..6724c21a 100644
--- a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/servicios.js
+++ b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/servicios.js
@@ -53,9 +53,9 @@ class Servicios {
})
$(document).on('add-servicio-lineas', this.addServicio.bind(this));
- $(document).on('remove-servicio-lineas', this.addServicio.bind(this));
+ $(document).on('remove-servicio-lineas', this.removeServicio.bind(this));
+
-
$(document).on('change', '.update-totales-servicios', function () {
@@ -71,6 +71,7 @@ class Servicios {
showBreadCrumbSaveButton(true);
});
+ $(document).on('update-servicios', this.updateServicios.bind(this));
}
cargar(datos) {
@@ -96,13 +97,25 @@ class Servicios {
else if (servicio == 'acabadoSobrecubierta') {
this.serviciosAcabado.updateAcabadosExteriores(0, 1);
}
+ else if (servicio == 'solapas') {
+ this.ServiciosManipulado.addSolapas();
+ }
+
}
- removeServicio(servicio) {
+ removeServicio(event, servicio) {
+ if (servicio == 'solapas') {
+ this.ServiciosManipulado.removeSolapas();
+ }
}
+ updateServicios() {
+ this.serviciosAcabado.updateServicios();
+ this.ServiciosEncuadernacion.updateServicios();
+ this.ServiciosManipulado.updateServicios();
+ }
}
class ServiciosAcabado {
@@ -231,6 +244,11 @@ class ServiciosAcabado {
self.check_serv_acabado_error();
}
+ /* TO-DO
+ updatePresupuesto({
+ update_resumen: true,
+ update_tiradas_alternativas: true})
+ */
});
@@ -253,6 +271,45 @@ class ServiciosAcabado {
}); */
}
+ updateServicios() {
+
+ const self = this;
+
+ const id = window.location.href.split('/').pop();
+ const tarifa_ids = this.table.rows().data().toArray().map(row => row.tarifa_id);
+ const proveedor_ids = this.table.rows().data().toArray().map(row => row.proveedor_id);
+ const cubiertas = this.table.rows().data().toArray().map(row => row.cubierta);
+ const sobrecubiertas = this.table.rows().data().toArray().map(row => row.sobrecubierta);
+ // emparejar los tarifa_ids con los proveedor_ids
+ let tarifa_data = [];
+ for (let i = 0; i < tarifa_ids.length; i++) {
+ tarifa_data.push({ tarifa_id: tarifa_ids[i], proveedor_id: proveedor_ids[i], cubierta: cubiertas[i], sobrecubierta: sobrecubiertas[i] });
+ }
+
+ let tirada = 0;
+ if (parseInt($('#tirada').val()) > 0) {
+ tirada = parseInt($('#tirada').val())
+ }
+ if (tarifa_ids.length > 0 && tirada > 0) {
+ const data = {
+ datos: tarifa_data,
+ tirada: tirada
+ };
+ new Ajax('/serviciosacabados/update/' + id, data, {},
+ function (response) {
+ if (response.lineas) {
+ self.table.clear().draw();
+ self.table.rows.add(response.lineas).draw();
+ }
+ },
+ function (error) {
+ console.error(error);
+ }
+ ).post();
+ }
+
+ }
+
updateAcabadosExteriores(cubierta, sobrecubierta) {
this.table.rows().every(function () {
@@ -461,6 +518,11 @@ class ServiciosPreimpresion {
drawCallback: function (settings) {
self.check_serv_preimpresion_error();
+ /* TO-DO
+ updatePresupuesto({
+ update_resumen: true,
+ update_tiradas_alternativas: true})
+ */
}
@@ -750,6 +812,12 @@ class ServiciosEncuadernacion {
})
self.check_serv_enc_error();
+
+ /* TO-DO
+ updatePresupuesto({
+ update_resumen: true,
+ update_tiradas_alternativas: true})
+ */
}
});
@@ -772,6 +840,52 @@ class ServiciosEncuadernacion {
}); */
}
+ updateServicios() {
+
+ const self = this;
+
+ const id = window.location.href.split('/').pop();
+ const tarifa_ids = this.table.rows().data().toArray().map(row => row.tarifa_id);
+ const proveedor_ids = this.table.rows().data().toArray().map(row => row.proveedor_id);
+ const cuadernillos = this.table.rows().data().toArray().map(row => row.paginas_por_cuadernillo);
+
+ let tarifa_data = [];
+ for (let i = 0; i < tarifa_ids.length; i++) {
+ tarifa_data.push({ tarifa_id: tarifa_ids[i], proveedor_id: proveedor_ids[i], paginas_por_cuadernillo: cuadernillos[i] });
+ }
+
+ let tirada = 0;
+ if (parseInt($('#tirada').val()) > 0) {
+ tirada = parseInt($('#tirada').val())
+ }
+ let paginas = 0;
+ if (parseInt($('#paginas').val()) > 0) {
+ paginas = parseInt($('#paginas').val())
+ }
+
+ const dimension = self.getDimensionLibro();
+ if (tarifa_ids.length > 0 && tirada > 0) {
+ const data = {
+ datos: tarifa_data,
+ tirada: tirada,
+ paginas: paginas,
+ ancho: dimension.ancho,
+ alto: dimension.alto,
+ };
+ new Ajax('/serviciosencuadernaciones/update/' + id, data, {},
+ function (response) {
+ if (response.lineas) {
+ self.table.clear().draw();
+ self.table.rows.add(response.lineas).draw();
+ }
+ },
+ function (error) {
+ console.error(error);
+ }
+ ).post();
+ }
+ }
+
cargarServiciosEncuadernacion(datos) {
this.table.rows.add(datos).draw();
@@ -779,8 +893,6 @@ class ServiciosEncuadernacion {
async getServiciosDefecto() {
- this.table.clear().draw();
-
const self = this;
let tirada = 0;
@@ -806,6 +918,7 @@ class ServiciosEncuadernacion {
new Ajax('/serviciosencuadernaciones/datatable', datos, {},
function (response) {
if (response.values) {
+ self.table.clear().draw();
self.table.rows.add(response.values).draw();
}
},
@@ -1041,6 +1154,12 @@ class ServiciosManipulado {
drawCallback: function (settings) {
self.check_serv_manipulado_error();
+
+ /* TO-DO
+ updatePresupuesto({
+ update_resumen: true,
+ update_tiradas_alternativas: true})
+ */
}
});
@@ -1072,8 +1191,6 @@ class ServiciosManipulado {
async getServiciosDefecto() {
- this.table.clear().draw();
-
const self = this;
let tirada = 0;
@@ -1091,6 +1208,7 @@ class ServiciosManipulado {
new Ajax('/serviciosmanipulados/datatable', datos, {},
function (response) {
if (response.values) {
+ self.table.clear().draw();
self.table.rows.add(response.values).draw();
}
},
@@ -1104,6 +1222,86 @@ class ServiciosManipulado {
showBreadCrumbSaveButton(true);
}
+ addSolapas() {
+
+ const self = this;
+ new Ajax('/serviciosmanipulados/serviciosolapas', {}, {},
+ function (response) {
+ if (response.service) {
+
+ const tarifa_id = response.service;
+ var rows = self.table.rows().data().toArray();
+ var found = rows.some(row => row.tarifa_id === tarifa_id);
+
+ if (!found)
+ self.getPresupuestoManipulado(tarifa_id);
+
+ }
+ },
+ function (error) {
+ console.error(error);
+ }
+ ).get();
+ }
+
+ removeSolapas() {
+
+ const self = this;
+
+ new Ajax('/serviciosmanipulados/serviciosolapas', {}, {},
+ function (response) {
+ if (response.service) {
+
+ const tarifa_id = response.service;
+ var rows = self.table.rows().data().toArray();
+ for (let i = 0; i < rows.length; i++) {
+ if (rows[i]['tarifa_id'] == tarifa_id) {
+ self.table.row(i).remove().draw();
+ break;
+ }
+ }
+
+ }
+ },
+ function (error) {
+ console.error(error);
+ }
+ ).get();
+ }
+
+ updateServicios() {
+
+ const self = this;
+
+ const id = window.location.href.split('/').pop();
+ const tarifa_ids = this.table.rows().data().toArray().map(row => row.tarifa_id);
+
+ let tirada = 0;
+ if (parseInt($('#tirada').val()) > 0) {
+ tirada = parseInt($('#tirada').val())
+ }
+
+ if (tarifa_ids.length > 0) {
+ const data = {
+ datos: tarifa_ids,
+ solapas: $('#solapas').is(':checked') ? 1 : 0,
+ tirada: tirada
+ };
+ new Ajax('/serviciosmanipulados/update/' + id, data, {},
+ function (response) {
+ if (response.lineas) {
+ self.table.clear().draw();
+ self.table.rows.add(response.lineas).draw();
+ }
+ },
+ function (error) {
+ console.error(error);
+ }
+ ).post();
+ }
+
+ }
+
getPresupuestoManipulado(tarifa_id = -1) {
const self = this;
@@ -1238,6 +1436,12 @@ class ServiciosExtra {
drawCallback: function (settings) {
self.check_serv_extra_error();
+
+ /* TO-DO
+ updatePresupuesto({
+ update_resumen: true,
+ update_tiradas_alternativas: true})
+ */
}
diff --git a/httpdocs/assets/js/safekat/pages/presupuestoCliente/presupuestoCliente.js b/httpdocs/assets/js/safekat/pages/presupuestoCliente/presupuestoCliente.js
index b4ed5a8c..8ae649f8 100644
--- a/httpdocs/assets/js/safekat/pages/presupuestoCliente/presupuestoCliente.js
+++ b/httpdocs/assets/js/safekat/pages/presupuestoCliente/presupuestoCliente.js
@@ -677,6 +677,8 @@ class PresupuestoCliente {
},
}
+ this.datos.guardas = this.disenioCubierta.getGuardas();
+
if (calcularSolapas) {
return;
}
@@ -700,7 +702,7 @@ class PresupuestoCliente {
carasImpresion: this.disenioCubierta.carasCubierta.val(),
};
- this.datos.guardas = this.disenioCubierta.getGuardas();
+
this.datos.sobrecubierta = this.disenioCubierta.getSobrecubierta();
this.datos.faja = this.disenioCubierta.getFaja();