mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
Merge branch 'main' into refactor/sk-21
This commit is contained in:
@ -638,6 +638,7 @@ $routes->group('presupuestoadmin', ['namespace' => 'App\Controllers\Presupuestos
|
|||||||
$routes->get('papelimpresion', 'Presupuestoadmin::getPapelImpresion');
|
$routes->get('papelimpresion', 'Presupuestoadmin::getPapelImpresion');
|
||||||
$routes->get('maquinas', 'Presupuestoadmin::getMaquinas');
|
$routes->get('maquinas', 'Presupuestoadmin::getMaquinas');
|
||||||
$routes->post('getlinea', 'Presupuestoadmin::getLineaPresupuesto');
|
$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']);
|
$routes->resource('presupuestoadmin', ['namespace' => 'App\Controllers\Presupuestos', 'controller' => 'Presupuestoadmin', 'except' => 'show,new,create,update']);
|
||||||
|
|
||||||
|
|||||||
@ -24,7 +24,7 @@ return [
|
|||||||
"global_disable" => "Desactivar",
|
"global_disable" => "Desactivar",
|
||||||
"global_active" => "Activo",
|
"global_active" => "Activo",
|
||||||
"global_inactive" => "Inactivo",
|
"global_inactive" => "Inactivo",
|
||||||
"global_copy" => "Dupdo",
|
"global_copy" => "Duplicar",
|
||||||
"global_print" => "Impresión",
|
"global_print" => "Impresión",
|
||||||
"global_print2" => "Imprimir",
|
"global_print2" => "Imprimir",
|
||||||
"global_confirm" => "Confirmar",
|
"global_confirm" => "Confirmar",
|
||||||
|
|||||||
@ -337,6 +337,10 @@ return [
|
|||||||
|
|
||||||
'actualizacionSolapasCubierta' => 'El tamaño de las solapas de la cubierta se ha actualizado debido a que supera el máximo permitido (este valor depende del ancho del libro y del número de páginas).',
|
'actualizacionSolapasCubierta' => 'El tamaño de las solapas de la cubierta se ha actualizado debido a que supera el máximo permitido (este valor depende del ancho del libro y del número de páginas).',
|
||||||
'actualizacionSolapasSobrecubierta' => 'El tamaño de las solapas de la sobrecubierta se ha actualizado debido a que supera el máximo permitido (este valor depende del ancho del libro y del número de páginas).',
|
'actualizacionSolapasSobrecubierta' => 'El tamaño de las solapas de la sobrecubierta se ha actualizado debido a que supera el máximo permitido (este valor depende del ancho del libro y del número de páginas).',
|
||||||
|
|
||||||
|
'cubiertaSinAcabado' => 'Cubierta sin acabado',
|
||||||
|
'cubiertaSinAcabadoText' => 'La falta de plastificado en la cubierta puede comprometer su calidad, ya que aumenta el riesgo de agrietamiento en los pliegues o hendidos, afectando su apariencia y resistencia',
|
||||||
|
|
||||||
'files' => 'Ficheros',
|
'files' => 'Ficheros',
|
||||||
'titulos' => [
|
'titulos' => [
|
||||||
'libroFresadoTapaDura' => 'Rústica Fresado tapa dura',
|
'libroFresadoTapaDura' => 'Rústica Fresado tapa dura',
|
||||||
|
|||||||
@ -18,8 +18,14 @@
|
|||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="ms-auto">
|
<div class="ms-auto">
|
||||||
|
|
||||||
|
<div id="cloneForm" class="btn mt-3 btn-info waves-effect waves-light ml-2 d-none">
|
||||||
|
<span class="align-middle d-sm-inline-block d-none me-sm-1"></i><?= lang('App.global_copy') ?></span>
|
||||||
|
</div>
|
||||||
|
|
||||||
<?php if ($state != 2): ?>
|
<?php if ($state != 2): ?>
|
||||||
|
|
||||||
<div id="btnConfirm" class="btn mt-3 btn-success waves-effect waves-light ml-2 d-none">
|
<div id="btnConfirm" class="btn mt-3 btn-success waves-effect waves-light ml-2 d-none">
|
||||||
|
|||||||
@ -191,19 +191,23 @@
|
|||||||
Ferro</li>
|
Ferro</li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="list-group list-group-timeline">
|
<ul class="list-group list-group-timeline">
|
||||||
<li id="rl_ferroDigital" class="list-group-item list-group-timeline-primary texto-resumen-lateral d-none">
|
<li id="rl_ferroDigital"
|
||||||
|
class="list-group-item list-group-timeline-primary texto-resumen-lateral d-none">
|
||||||
Ferro digital</li>
|
Ferro digital</li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="list-group list-group-timeline">
|
<ul class="list-group list-group-timeline">
|
||||||
<li id="rl_marcapaginas" class="list-group-item list-group-timeline-primary texto-resumen-lateral d-none">
|
<li id="rl_marcapaginas"
|
||||||
|
class="list-group-item list-group-timeline-primary texto-resumen-lateral d-none">
|
||||||
Marcapáginas</li>
|
Marcapáginas</li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="list-group list-group-timeline">
|
<ul class="list-group list-group-timeline">
|
||||||
<li id="rl_retractilado" class="list-group-item list-group-timeline-primary texto-resumen-lateral d-none">
|
<li id="rl_retractilado"
|
||||||
|
class="list-group-item list-group-timeline-primary texto-resumen-lateral d-none">
|
||||||
Retractilado</li>
|
Retractilado</li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="list-group list-group-timeline">
|
<ul class="list-group list-group-timeline">
|
||||||
<li id="rl_retractilado5" class="list-group-item list-group-timeline-primary texto-resumen-lateral d-none">
|
<li id="rl_retractilado5"
|
||||||
|
class="list-group-item list-group-timeline-primary texto-resumen-lateral d-none">
|
||||||
Retractilado de 5</li>
|
Retractilado de 5</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@ -290,6 +294,9 @@
|
|||||||
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/dropzone/dropzone.css') ?>" />
|
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/dropzone/dropzone.css') ?>" />
|
||||||
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/css/pages/app-chat.css') ?>">
|
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/css/pages/app-chat.css') ?>">
|
||||||
<link rel="stylesheet" href="<?= site_url('themes/vuexy/css/presupuestoCliente.css') ?>">
|
<link rel="stylesheet" href="<?= site_url('themes/vuexy/css/presupuestoCliente.css') ?>">
|
||||||
|
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/animate-css/animate.css') ?>">
|
||||||
|
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/sweetalert2/sweetalert2.css') ?>">
|
||||||
|
|
||||||
|
|
||||||
<?= $this->endSection() ?>
|
<?= $this->endSection() ?>
|
||||||
|
|
||||||
@ -302,6 +309,7 @@
|
|||||||
<script src="<?= site_url('themes/vuexy/vendor/libs/autosize/autosize.js') ?>"></script>
|
<script src="<?= site_url('themes/vuexy/vendor/libs/autosize/autosize.js') ?>"></script>
|
||||||
<script src="<?= site_url('themes/vuexy/vendor/libs/two/two.js') ?>"></script>
|
<script src="<?= site_url('themes/vuexy/vendor/libs/two/two.js') ?>"></script>
|
||||||
<script src="<?= site_url('themes/vuexy/vendor/libs/perfect-scrollbar/perfect-scrollbar.js') ?>"></script>
|
<script src="<?= site_url('themes/vuexy/vendor/libs/perfect-scrollbar/perfect-scrollbar.js') ?>"></script>
|
||||||
|
<script src="<?= site_url('themes/vuexy/vendor/libs/sweetalert2/sweetalert2.js') ?>"></script>
|
||||||
|
|
||||||
<script type="module"
|
<script type="module"
|
||||||
src="<?= site_url('assets/js/safekat/pages/presupuestoCliente/presupuestoCliente.js') ?>"></script>
|
src="<?= site_url('assets/js/safekat/pages/presupuestoCliente/presupuestoCliente.js') ?>"></script>
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
export const alertConfirmationDelete = (title,type="primary") => {
|
export const alertConfirmationDelete = (title,type="primary") => {
|
||||||
return Swal.fire({
|
return Swal.fire({
|
||||||
title: '¿Estás seguro?',
|
title: '¿Está seguro?',
|
||||||
text: "Esta acción es irreversible.",
|
text: "Esta acción es irreversible.",
|
||||||
icon: 'warning',
|
icon: 'warning',
|
||||||
showCancelButton: true,
|
showCancelButton: true,
|
||||||
@ -29,3 +29,15 @@ export const alertSuccessMessage = (title,type="primary") => {
|
|||||||
timer : 2000
|
timer : 2000
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const alertWarningMessage = (title,message,type="primary") => {
|
||||||
|
return Swal.fire({
|
||||||
|
title: title,
|
||||||
|
text: message,
|
||||||
|
icon: "warning",
|
||||||
|
customClass: {
|
||||||
|
confirmButton: 'btn btn-primary'
|
||||||
|
},
|
||||||
|
buttonsStyling: false
|
||||||
|
})
|
||||||
|
}
|
||||||
@ -4,6 +4,7 @@ import DisenioCubierta from './disenioCubierta.js';
|
|||||||
import Direcciones from './direcciones.js';
|
import Direcciones from './direcciones.js';
|
||||||
import Resumen from './resumen.js';
|
import Resumen from './resumen.js';
|
||||||
import Ajax from '../../components/ajax.js';
|
import Ajax from '../../components/ajax.js';
|
||||||
|
import { alertWarningMessage } from '../../components/alerts/sweetAlert.js';
|
||||||
|
|
||||||
|
|
||||||
import tarjetaTiradasPrecio from './tarjetaTiradasPrecio.js';
|
import tarjetaTiradasPrecio from './tarjetaTiradasPrecio.js';
|
||||||
@ -22,6 +23,7 @@ class PresupuestoCliente {
|
|||||||
this.btnPrev = $('#btnPrev');
|
this.btnPrev = $('#btnPrev');
|
||||||
this.btnPrint = $('#btnPrint');
|
this.btnPrint = $('#btnPrint');
|
||||||
this.btnSave = $('#btnSave');
|
this.btnSave = $('#btnSave');
|
||||||
|
this.btnDuplicate = $('#cloneForm');
|
||||||
this.btnConfirm = $('#btnConfirm');
|
this.btnConfirm = $('#btnConfirm');
|
||||||
this.btnUploadFile = $('#btnUploadFile')
|
this.btnUploadFile = $('#btnUploadFile')
|
||||||
|
|
||||||
@ -90,6 +92,7 @@ class PresupuestoCliente {
|
|||||||
this.btnNext.on('click', this.#nextStep.bind(this));
|
this.btnNext.on('click', this.#nextStep.bind(this));
|
||||||
this.btnPrev.on('click', this.#prevtStep.bind(this));
|
this.btnPrev.on('click', this.#prevtStep.bind(this));
|
||||||
this.btnSave.on('click', this.#savePresupuesto.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.btnConfirm.on('click', this.#confirmPresupuesto.bind(this));
|
||||||
this.btnPrint.on('click', this.#printPresupuesto.bind(this));
|
this.btnPrint.on('click', this.#printPresupuesto.bind(this));
|
||||||
this.btnUploadFile.on('click', () => {
|
this.btnUploadFile.on('click', () => {
|
||||||
@ -288,6 +291,10 @@ class PresupuestoCliente {
|
|||||||
|
|
||||||
if (currentElement !== 'resumen-libro') {
|
if (currentElement !== 'resumen-libro') {
|
||||||
this.#validateCurrentForm(currentElement, nextElement);
|
this.#validateCurrentForm(currentElement, nextElement);
|
||||||
|
if (currentElement === 'cubierta-libro' && this.disenioCubierta.acabadoCubierta.getVal() == 0) {
|
||||||
|
alertWarningMessage(window.translations.cubiertaSinAcabado, window.translations.cubiertaSinAcabadoText);
|
||||||
|
}
|
||||||
|
this.#goToForm(nextElement);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
this.#goToForm(nextElement);
|
this.#goToForm(nextElement);
|
||||||
@ -417,6 +424,7 @@ class PresupuestoCliente {
|
|||||||
this.btnPrev.addClass('d-none');
|
this.btnPrev.addClass('d-none');
|
||||||
this.btnNext.removeClass('d-none');
|
this.btnNext.removeClass('d-none');
|
||||||
this.btnSave.addClass('d-none');
|
this.btnSave.addClass('d-none');
|
||||||
|
this.btnDuplicate.addClass('d-none');
|
||||||
this.btnPrint.addClass('d-none');
|
this.btnPrint.addClass('d-none');
|
||||||
this.btnConfirm.addClass('d-none');
|
this.btnConfirm.addClass('d-none');
|
||||||
break;
|
break;
|
||||||
@ -427,6 +435,7 @@ class PresupuestoCliente {
|
|||||||
this.btnPrev.removeClass('d-none');
|
this.btnPrev.removeClass('d-none');
|
||||||
this.btnNext.removeClass('d-none');
|
this.btnNext.removeClass('d-none');
|
||||||
this.btnSave.removeClass('d-none');
|
this.btnSave.removeClass('d-none');
|
||||||
|
this.btnDuplicate.addClass('d-none');
|
||||||
this.btnPrint.addClass('d-none');
|
this.btnPrint.addClass('d-none');
|
||||||
this.btnConfirm.addClass('d-none');
|
this.btnConfirm.addClass('d-none');
|
||||||
break;
|
break;
|
||||||
@ -434,6 +443,7 @@ class PresupuestoCliente {
|
|||||||
case 'resumen-libro':
|
case 'resumen-libro':
|
||||||
this.btnPrev.removeClass('d-none');
|
this.btnPrev.removeClass('d-none');
|
||||||
this.btnNext.addClass('d-none');
|
this.btnNext.addClass('d-none');
|
||||||
|
this.btnDuplicate.removeClass('d-none');
|
||||||
this.btnSave.removeClass('d-none');
|
this.btnSave.removeClass('d-none');
|
||||||
this.btnPrint.removeClass('d-none');
|
this.btnPrint.removeClass('d-none');
|
||||||
this.btnConfirm.removeClass('d-none');
|
this.btnConfirm.removeClass('d-none');
|
||||||
@ -469,6 +479,33 @@ class PresupuestoCliente {
|
|||||||
this.#solicitudGuardarPresupuesto(true);
|
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() {
|
#savePresupuesto() {
|
||||||
|
|
||||||
@ -573,7 +610,7 @@ class PresupuestoCliente {
|
|||||||
popAlert2Hide();
|
popAlert2Hide();
|
||||||
|
|
||||||
for (let i = 0; i < response.tiradas.length; i++) {
|
for (let i = 0; i < response.tiradas.length; i++) {
|
||||||
if(i==0){
|
if (i == 0) {
|
||||||
$('#eb').val(response.eb[i]);
|
$('#eb').val(response.eb[i]);
|
||||||
}
|
}
|
||||||
new tarjetaTiradasPrecio(
|
new tarjetaTiradasPrecio(
|
||||||
@ -586,7 +623,7 @@ class PresupuestoCliente {
|
|||||||
|
|
||||||
if (this.actualizarTiradasEnvio) {
|
if (this.actualizarTiradasEnvio) {
|
||||||
this.direcciones.insertTirada(response.tiradas[i]);
|
this.direcciones.insertTirada(response.tiradas[i]);
|
||||||
if(i==0){
|
if (i == 0) {
|
||||||
$('#tiradaEnvios-' + response.tiradas[i]).trigger('click');
|
$('#tiradaEnvios-' + response.tiradas[i]).trigger('click');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -618,6 +655,9 @@ class PresupuestoCliente {
|
|||||||
|
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
|
if (this.disenioCubierta.acabadoCubierta.getVal() == 0) {
|
||||||
|
alertWarningMessage(window.translations.cubiertaSinAcabado, window.translations.cubiertaSinAcabadoText);
|
||||||
|
}
|
||||||
this.disenioCubierta.formValidation.validate();
|
this.disenioCubierta.formValidation.validate();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -634,6 +674,11 @@ class PresupuestoCliente {
|
|||||||
|
|
||||||
#prevtStep() {
|
#prevtStep() {
|
||||||
if (this.validationStepper._currentIndex >= 1 && this.validationStepper._currentIndex <= 4) {
|
if (this.validationStepper._currentIndex >= 1 && this.validationStepper._currentIndex <= 4) {
|
||||||
|
if(this.validationStepper._currentIndex == 2){
|
||||||
|
if (this.disenioCubierta.acabadoCubierta.getVal() == 0) {
|
||||||
|
alertWarningMessage(window.translations.cubiertaSinAcabado, window.translations.cubiertaSinAcabadoText);
|
||||||
|
}
|
||||||
|
}
|
||||||
this.validationStepper.previous();
|
this.validationStepper.previous();
|
||||||
}
|
}
|
||||||
$('html, body').animate({ scrollTop: 0 }, 'slow');
|
$('html, body').animate({ scrollTop: 0 }, 'slow');
|
||||||
@ -687,7 +732,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();
|
this.datos.selectedTirada = this.direcciones.getSelectedTirada();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user