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 @@
-
+
= lang('Pedidos.generarAlbaranes') ?>
@@ -31,6 +35,8 @@
=$this->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('= site_url('print-albaran/generar/') ?>' + 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('= lang('Pedidos.validation.errorCantidadAlbaranes') ?>'
+ .replace('{0}', unidades_albaranes)
+ .replace('{1}', $('#total_tirada').val()));
+ }
+ else{
+ $('#alert-albaranes').addClass('d-none');
+ $('#error-albaranes').html('');
+ }
+}
+
=$this->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 @@
= lang('Pedidos.cancelar') ?>
+ estado == 'validacion' && auth()->user()->can('pedidos-gestion.toprod')) : ?>
+
+ = lang("Produccion.btn_pedido_produccion_accion") ?>
+
+
+
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 @@
= anchor(route_to("listaPresupuestos"), lang("Basic.global.Cancel"), ["class" => "btn btn-secondary float-start"]) ?>
- estado == 'finalizado') : ?>
-
-
-
-