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 @@
+
+
+
+ = lang('App.global_copy') ?>
+
+
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();