diff --git a/ci4/app/Config/Routes.php b/ci4/app/Config/Routes.php index 40d2641b..3b03dfa2 100644 --- a/ci4/app/Config/Routes.php +++ b/ci4/app/Config/Routes.php @@ -638,6 +638,7 @@ $routes->group('presupuestoadmin', ['namespace' => 'App\Controllers\Presupuestos $routes->get('papelimpresion', 'Presupuestoadmin::getPapelImpresion'); $routes->get('maquinas', 'Presupuestoadmin::getMaquinas'); $routes->post('getlinea', 'Presupuestoadmin::getLineaPresupuesto'); + $routes->post('clone', 'Presupuestoadmin::datatable_2'); }); $routes->resource('presupuestoadmin', ['namespace' => 'App\Controllers\Presupuestos', 'controller' => 'Presupuestoadmin', 'except' => 'show,new,create,update']); diff --git a/ci4/app/Language/es/App.php b/ci4/app/Language/es/App.php index d41d02fe..44552d73 100755 --- a/ci4/app/Language/es/App.php +++ b/ci4/app/Language/es/App.php @@ -24,7 +24,7 @@ return [ "global_disable" => "Desactivar", "global_active" => "Activo", "global_inactive" => "Inactivo", - "global_copy" => "Dupdo", + "global_copy" => "Duplicar", "global_print" => "Impresión", "global_print2" => "Imprimir", "global_confirm" => "Confirmar", diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/items/_buttons.php b/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/items/_buttons.php index aad9101e..62e7237c 100644 --- a/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/items/_buttons.php +++ b/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/items/_buttons.php @@ -18,8 +18,14 @@ + +
+
+ +
+
diff --git a/httpdocs/assets/js/safekat/pages/presupuestoCliente/presupuestoCliente.js b/httpdocs/assets/js/safekat/pages/presupuestoCliente/presupuestoCliente.js index 3cc4fd97..abb65479 100644 --- a/httpdocs/assets/js/safekat/pages/presupuestoCliente/presupuestoCliente.js +++ b/httpdocs/assets/js/safekat/pages/presupuestoCliente/presupuestoCliente.js @@ -22,6 +22,7 @@ class PresupuestoCliente { this.btnPrev = $('#btnPrev'); this.btnPrint = $('#btnPrint'); this.btnSave = $('#btnSave'); + this.btnDuplicate = $('#cloneForm'); this.btnConfirm = $('#btnConfirm'); this.btnUploadFile = $('#btnUploadFile') @@ -90,6 +91,7 @@ class PresupuestoCliente { this.btnNext.on('click', this.#nextStep.bind(this)); this.btnPrev.on('click', this.#prevtStep.bind(this)); this.btnSave.on('click', this.#savePresupuesto.bind(this)); + this.btnDuplicate.on('click', this.#clonePresupuesto.bind(this)); this.btnConfirm.on('click', this.#confirmPresupuesto.bind(this)); this.btnPrint.on('click', this.#printPresupuesto.bind(this)); this.btnUploadFile.on('click', () => { @@ -417,6 +419,7 @@ class PresupuestoCliente { this.btnPrev.addClass('d-none'); this.btnNext.removeClass('d-none'); this.btnSave.addClass('d-none'); + this.btnDuplicate.addClass('d-none'); this.btnPrint.addClass('d-none'); this.btnConfirm.addClass('d-none'); break; @@ -427,6 +430,7 @@ class PresupuestoCliente { this.btnPrev.removeClass('d-none'); this.btnNext.removeClass('d-none'); this.btnSave.removeClass('d-none'); + this.btnDuplicate.addClass('d-none'); this.btnPrint.addClass('d-none'); this.btnConfirm.addClass('d-none'); break; @@ -434,6 +438,7 @@ class PresupuestoCliente { case 'resumen-libro': this.btnPrev.removeClass('d-none'); this.btnNext.addClass('d-none'); + this.btnDuplicate.removeClass('d-none'); this.btnSave.removeClass('d-none'); this.btnPrint.removeClass('d-none'); this.btnConfirm.removeClass('d-none'); @@ -469,6 +474,33 @@ class PresupuestoCliente { this.#solicitudGuardarPresupuesto(true); } + #clonePresupuesto() { + + const id = window.location.href.split("/").pop(); + new Ajax('/presupuestoadmin/clone', + { + tipo: 'duplicar', + presupuesto_id: id + }, + {}, + (response) => { + // check if response object has a property named 'id' + if (response.id) { + + const new_location = window.location.href.replace(id, response.id); + window.location.href = new_location; + } + else { + popErrorAlert("No se ha podido duplicar el presupuesto"); + } + }, + (error) => { + console.error('Error al duplicar el presupuesto:', error); + } + ).post(); + + } + #savePresupuesto() { @@ -573,7 +605,7 @@ class PresupuestoCliente { popAlert2Hide(); for (let i = 0; i < response.tiradas.length; i++) { - if(i==0){ + if (i == 0) { $('#eb').val(response.eb[i]); } new tarjetaTiradasPrecio( @@ -586,7 +618,7 @@ class PresupuestoCliente { if (this.actualizarTiradasEnvio) { this.direcciones.insertTirada(response.tiradas[i]); - if(i==0){ + if (i == 0) { $('#tiradaEnvios-' + response.tiradas[i]).trigger('click'); } } @@ -687,7 +719,7 @@ class PresupuestoCliente { }, } - if(this.direcciones.getSelectedTirada() != null && this.direcciones.getSelectedTirada() != undefined && this.direcciones.getSelectedTirada() > 0){ + if (this.direcciones.getSelectedTirada() != null && this.direcciones.getSelectedTirada() != undefined && this.direcciones.getSelectedTirada() > 0) { this.datos.selectedTirada = this.direcciones.getSelectedTirada(); } @@ -717,7 +749,7 @@ class PresupuestoCliente { carasImpresion: this.disenioCubierta.carasCubierta.val(), }; - + this.datos.sobrecubierta = this.disenioCubierta.getSobrecubierta(); this.datos.faja = this.disenioCubierta.getFaja();