diff --git a/ci4/app/Config/RBAC/permissionMatrix.php b/ci4/app/Config/RBAC/permissionMatrix.php index adc25c5b..e0b0fec1 100644 --- a/ci4/app/Config/RBAC/permissionMatrix.php +++ b/ci4/app/Config/RBAC/permissionMatrix.php @@ -29,6 +29,8 @@ const SK_PERMISSION_MATRIX = [ "pedidos-cancelados.menu", "pedidos-todos.view", "pedidos-todos.menu", + "pedidos-gestion.toprod", + "pedidos-gestion.menu", "tarifa-preimpresion.create", "tarifa-preimpresion.edit", "tarifa-preimpresion.delete", @@ -169,6 +171,29 @@ const SK_PERMISSION_MATRIX = [ "token.menu", ], "director" => [ + "clientes.create", + "clientes.edit", + "clientes.menu", + "plantilla-tarifa.create", + "plantilla-tarifa.edit", + "plantilla-tarifa.menu", + "direcciones.create", + "direcciones.edit", + "direcciones.menu", + "presupuesto.create", + "presupuesto.edit", + "presupuesto.menu", + "presupuesto-cliente.create", + "presupuesto-cliente.edit", + "presupuesto-cliente.menu", + "pedidos-activos.view", + "pedidos-activos.menu", + "pedidos-finalizados.view", + "pedidos-finalizados.menu", + "pedidos-cancelados.view", + "pedidos-cancelados.menu", + "pedidos-todos.view", + "pedidos-todos.menu", "tarifa-preimpresion.create", "tarifa-preimpresion.edit", "tarifa-preimpresion.menu", @@ -190,6 +215,11 @@ const SK_PERMISSION_MATRIX = [ "servicio-acabado.create", "servicio-acabado.edit", "servicio-acabado.menu", + "proveedores.create", + "proveedores.edit", + "proveedores.menu", + "tickets.edit", + "tickets.menu", ], "contabilidad" => [ "token.token", diff --git a/ci4/app/Config/RBAC/permissions.php b/ci4/app/Config/RBAC/permissions.php index ac95e36a..b38701ba 100644 --- a/ci4/app/Config/RBAC/permissions.php +++ b/ci4/app/Config/RBAC/permissions.php @@ -29,6 +29,8 @@ const SK_PERMISSIONS = [ 'pedidos-cancelados.menu' => 'Menu shall be visualize', 'pedidos-todos.view' => 'Can view', 'pedidos-todos.menu' => 'Menu shall be visualize', + 'pedidos-gestion.toprod' => 'Can toprod', + 'pedidos-gestion.menu' => 'Menu shall be visualize', 'tarifa-preimpresion.create' => 'Can create', 'tarifa-preimpresion.edit' => 'Can edit', 'tarifa-preimpresion.delete' => 'Can delete', diff --git a/ci4/app/Config/RBAC/roles.php b/ci4/app/Config/RBAC/roles.php index 5ce300a9..d39a912a 100644 --- a/ci4/app/Config/RBAC/roles.php +++ b/ci4/app/Config/RBAC/roles.php @@ -31,7 +31,7 @@ const SK_ROLES = [ ], 'director' => [ 'title' => 'Director', - 'description' => '', + 'description' => 'Para los directores de área', ], 'contabilidad' => [ 'title' => 'Contabilidad', diff --git a/ci4/app/Language/es/Pedidos.php b/ci4/app/Language/es/Pedidos.php index bfcb9f79..bb9fc447 100644 --- a/ci4/app/Language/es/Pedidos.php +++ b/ci4/app/Language/es/Pedidos.php @@ -81,7 +81,8 @@ return [ 'showTotal' => 'Mostrar totales', - 'validation' => [ + 'validation' => [ + 'errorCantidadAlbaranes' => 'Total en albaranes {0} no coincide con la tirada {1}', ], diff --git a/ci4/app/Language/es/RolesPermisos.php b/ci4/app/Language/es/RolesPermisos.php index 9fbe24ba..9964d943 100644 --- a/ci4/app/Language/es/RolesPermisos.php +++ b/ci4/app/Language/es/RolesPermisos.php @@ -24,6 +24,8 @@ return [ 'editPermission' => 'Editar', 'deletePermission' => 'Eliminar', + 'toprodPermission' => 'Pasar a Producción', + // System sections 'clientesSection' => 'Clientes', 'plantillaTarifaSection' => 'Plantilla de tarifas', @@ -35,6 +37,7 @@ return [ 'pedidosFinalizadosSection' => 'Finalizados', 'pedidosCanceladosSection' => 'Cancelados', 'pedidosTodosSection' => 'Todos', + 'pedidosGestionSection' => 'Gestion', 'tarifaPreimpresionSection' => 'Tarifas de preimpresión', 'tarifaManipuladoSection' => 'Tarifas de manipulado', 'tarifaAcabadoSection' => 'Tarifas de acabado', diff --git a/ci4/app/Views/themes/vuexy/form/pedidos/_albaranesItems.php b/ci4/app/Views/themes/vuexy/form/pedidos/_albaranesItems.php index d9306818..12049a0f 100644 --- a/ci4/app/Views/themes/vuexy/form/pedidos/_albaranesItems.php +++ b/ci4/app/Views/themes/vuexy/form/pedidos/_albaranesItems.php @@ -10,7 +10,11 @@
- +
@@ -31,6 +35,8 @@ section('additionalInlineJs') ?> + + $('#generar_albaranes').on('click', function(){ var lineasPedido = $('#tableOfLineasPedido').DataTable(); @@ -51,6 +57,7 @@ $('#generar_albaranes').on('click', function(){ generarAlbaran(item); }); } + calcular_cantidades_albaranes(); } }); }) @@ -163,7 +170,7 @@ function generarAlbaran(item){ `; const table = $('', - { id: 'tablaAlbaran' + item.albaran.id, width:'100%', class: 'table table-responsive table-striped table-hover' }) + { id: 'tablaAlbaran' + item.albaran.id, width:'100%', class: 'table table-responsive table-striped table-hover table-albaran' }) .css({ 'width': '100%', }).append( @@ -238,7 +245,6 @@ function generarAlbaran(item){ $('#bonotes_albaranes').before(accordion); - const datatableAlbaran = new DataTable('#tablaAlbaran' + item.albaran.id,{ scrollX: true, searching: false, @@ -264,7 +270,7 @@ function generarAlbaran(item){ var input = $('', { id: 'cantidad_' + row.id, name: 'cantidad_' + row.id, - class: 'lp-cell lp-input albaran_linea', + class: 'lp-cell lp-input albaran_linea cantidad-albaran', albaran: item.albaran.numero_albaran, type: 'text', value: data, @@ -434,38 +440,6 @@ function generarAlbaran(item){ } }, - footerCallback: function (row, data, start, end, display) { - - /* - let api = this.api(); - var numColumns = api.columns().count(); - - if(item.albaran.mostrar_precios == 1){ - - // Remove the formatting to get integer data for summation - let intVal = function (i) { - return typeof i === 'string' - ? i.replace(/[\$,]/g, '') * 1 - : typeof i === 'number' - ? i - : 0; - }; - - // Total over all pages - total = api - .column(9) - .data() - .reduce((a, b) => intVal(a) + intVal(b), 0); - - // Update footer - api.column(numColumns-1).footer().innerHTML = - 'Total: ' + total.toFixed(2); - } - else{ - api.column(numColumns-1).footer().innerHTML = ''; - } - */ - }, }); // Añadir la nueva fila a la tabla @@ -474,6 +448,17 @@ function generarAlbaran(item){ datatableAlbaran.row.add(linea).draw(); }); } + + + $(document).on('change', '#tablaAlbaran' + item.albaran.id + ' .cantidad-albaran', function(){ + let table = $('#tablaAlbaran' + item.albaran.id).DataTable(); + let row = $(this).closest('tr'); // Encuentra la fila actual + let rowIndex = table.row(row).index(); // Obtiene el índice de la fila + let newValue = $(this).val(); // Obtiene el nuevo valor del input + // Actualiza el DataTable + table.cell(rowIndex, 2).data(newValue); + calcular_cantidades_albaranes(); + }); } $(document).on('click', '.accordion-button', function(){ @@ -712,7 +697,6 @@ $(document).on('click', '.imprimir-albaran', function(){ var albaran_id = $(this).attr('id').split('_').slice(-1)[0]; - //NACHO AQUI window.open('' + albaran_id, '_blank'); }); @@ -726,7 +710,37 @@ $.ajax({ Object.values(response.data).forEach(function(item){ generarAlbaran(item); }); + + calcular_cantidades_albaranes(); } } }); + + +function calcular_cantidades_albaranes(){ + let cantidad_albaranes = 0; + const tablas = $('.table.table-albaran'); + for(var i = 0; i < tablas.length; i++){ + var table = $(tablas[i]).DataTable(); + table.rows().every(function(){ + cantidad_albaranes += parseInt(this.data().cantidad) || 0; + }); + } + check_cantidad_albaranes(cantidad_albaranes); +} + +function check_cantidad_albaranes(unidades_albaranes){ + if(unidades_albaranes != parseInt($('#total_tirada').val()) ){ + $('#alert-albaranes').removeClass('d-none'); + $('#error-albaranes'). + html('' + .replace('{0}', unidades_albaranes) + .replace('{1}', $('#total_tirada').val())); + } + else{ + $('#alert-albaranes').addClass('d-none'); + $('#error-albaranes').html(''); + } +} + endSection() ?> \ No newline at end of file diff --git a/ci4/app/Views/themes/vuexy/form/pedidos/_cabeceraItems.php b/ci4/app/Views/themes/vuexy/form/pedidos/_cabeceraItems.php index 3f255b31..9af77005 100644 --- a/ci4/app/Views/themes/vuexy/form/pedidos/_cabeceraItems.php +++ b/ci4/app/Views/themes/vuexy/form/pedidos/_cabeceraItems.php @@ -152,6 +152,12 @@ + estado == 'validacion' && auth()->user()->can('pedidos-gestion.toprod')) : ?> +
+ + +
+ diff --git a/ci4/app/Views/themes/vuexy/form/pedidos/viewPedidoForm.php b/ci4/app/Views/themes/vuexy/form/pedidos/viewPedidoForm.php index f69c0203..be518321 100644 --- a/ci4/app/Views/themes/vuexy/form/pedidos/viewPedidoForm.php +++ b/ci4/app/Views/themes/vuexy/form/pedidos/viewPedidoForm.php @@ -31,11 +31,6 @@
"btn btn-secondary float-start"]) ?>
- estado == 'finalizado') : ?> -
- -
-