trabajando en las direcciones ferro / prototipo

This commit is contained in:
2025-06-27 12:44:55 +02:00
parent 4a60bcdd61
commit 410d21dc5f
6 changed files with 159 additions and 92 deletions

View File

@ -1,6 +1,6 @@
class tarjetaDireccion {
constructor(container, id, direccion) {
constructor(container, id, direccion, isFerroPrototipo = false, numFerro = 0) {
this.container = container;
this.id = id;
@ -9,6 +9,8 @@ class tarjetaDireccion {
this.deleteBtn = this.card.find('.direccion-eliminar');
this.editBtn = this.card.find('.direccion-editar');
this.direccion = direccion;
this.isFerroPrototipo = direccion.isFerroPrototipo;
this.numFerro = this.numFerro || 0;
}
@ -109,6 +111,13 @@ class tarjetaDireccion {
entregaPalets: this.getEntregaPalets()
};
}
getIsFerroPrototipo() {
return this.isFerroPrototipo;
}
getNumFerro() {
return this.numFerro;
}
}
export default tarjetaDireccion;

View File

@ -22,13 +22,21 @@ class Direcciones {
this.entregaPieCallero = this.domItem.find('#entregaPieCalle');
this.direccionesCliente = new ClassSelect($("#direcciones"), '/misdirecciones/getSelect2');
this.direccionesClienteFP1 = new ClassSelect($("#direccionesFP1"), '/misdirecciones/getSelect2');
this.direccionesClienteFP2 = new ClassSelect($("#direccionesFP2"), '/misdirecciones/getSelect2');
this.divDirecciones = $(this.domItem.find('#divDirecciones'));
this.divTiradas = this.domItem.find('#containerTiradasEnvios');
this.sameAddPrincipalFP1 = this.domItem.find('#sameAddPrincipalFP1');
this.sameAddPrincipalFP2 = this.domItem.find('#sameAddPrincipalFP2');
this.sameAddFP1 = this.domItem.find('#sameAddFP1');
this.checksTiradasEnvio = $('.check-tirada-envio');
this.direcciones = [];
this.direccionesFP1 = [];
this.direccionesFP2 = [];
this.tiradaSeleccionada = null;
@ -57,6 +65,8 @@ class Direcciones {
this.direccionesCliente.init();
this.direccionesClienteFP1.init();
this.direccionesClienteFP2.init();
this.btnAdd.on('click', this.#insertDireccion.bind(this));
this.btnNew.on('click', this.#nuevaDireccion.bind(this));
@ -80,9 +90,14 @@ class Direcciones {
self.divTiradas.trigger('change');
}
});
this.sameAddPrincipalFP1.on('change', this.#handleSameAddPrincipalFP1.bind(this));
this.sameAddPrincipalFP2.on('change', this.#handleSameAddPrincipalFP2.bind(this));
this.sameAddFP1.on('change', this.#handleSameAddFP1.bind(this));
}
cargarDatos(datos, datosGenerales) {
self = this;
@ -223,72 +238,6 @@ class Direcciones {
}
}
initValidation() {
const stepper = this.validatorStepper;
this.formValidation = FormValidation.formValidation(this.wizardStep, {
fields: {
div_error_envios: {
validators: {
callback: {
callback: () => {
div.find('.fv-plugins-message-container').remove();
if ($('.check-tirada-envio:checked').length > 0) {
let unidades = parseInt($($('.check-tirada-envio:checked')[0]).attr('tirada'));
let total_envio = 0;
// se recorre el array this.direcciones
this.direcciones.forEach(direccion => {
total_envio += parseInt(direccion.getUnidades());
});
if (total_envio <= unidades) {
return true;
}
}
div.append(`
<div class="fv-plugins-message-container invalid-feedback">
<div data-field="div_tipo_cubierta" data-validator="callback">
El total de unidades enviadas no puede ser mayor que la tirada seleccionada
</div>
</div>
`);
return false;
},
}
}
}
},
plugins: {
trigger: new FormValidation.plugins.Trigger(),
bootstrap5: new FormValidation.plugins.Bootstrap5({
// Use this for enabling/changing valid/invalid class
// eleInvalidClass: '',
eleValidClass: '',
rowSelector: function (field, ele) {
// field is the field name
// ele is the field element
switch (field) {
case 'div_error_envios':
return '.col-sm-10';
default:
return '.col-sm-3';
}
}
}),
autoFocus: new FormValidation.plugins.AutoFocus(),
submitButton: new FormValidation.plugins.SubmitButton()
}
}).on('core.form.valid', () => {
if (this.allowNext)
stepper.next();
});
}
insertTirada(tirada) {
@ -449,6 +398,10 @@ class Direcciones {
this.direccionesCliente.setParams({ 'cliente_id': $("#clienteId").select2('data')[0].id })
this.direccionesCliente.empty();
this.direccionesClienteFP1.setParams({ 'cliente_id': $("#clienteId").select2('data')[0].id })
this.direccionesClienteFP1.empty();
this.direccionesClienteFP2.setParams({ 'cliente_id': $("#clienteId").select2('data')[0].id })
this.direccionesClienteFP2.empty();
this.domItem.find('.direccion-cliente').remove();
this.direcciones = [];
@ -500,6 +453,97 @@ class Direcciones {
this.divDirecciones.trigger('change');
}
#handleSameAddPrincipalFP1() {
if (this.sameAddPrincipalFP2.is(':checked')) {
$('.div-direcciones-fp1').addClass('d-none');
$('#divDireccionesFerroPrototipo').empty();
if (this.direcciones.length > 0) {
// get first element
let firstDireccion = this.direcciones[0];
let tarjeta = new tarjetaDireccion(
$("#divDireccionesFerroPrototipo"),
'dirEnvio-FP-1',
firstDireccion.getData(), true, 1);
tarjeta.setUnidades(1);
$('#divDireccionesFerroPrototipo').append(tarjeta.card);
this.direccionesFP1 = [];
this.direccionesFP1.push(tarjeta);
$('#divDireccionesFerroPrototipo').removeClass('d-none');
}
else {
// mostrar alerta de que no hay direcciones
}
}
else {
$('.div-direcciones-fp1').removeClass('d-none');
$('#divDireccionesFerroPrototipo').removeClass('d-none');
$('#divDireccionesFerroPrototipo').empty();
}
}
#handleSameAddPrincipalFP2() {
if (this.sameAddPrincipalFP2.is(':checked')) {
$('.div-direcciones-fp2').addClass('d-none');
$('#divDireccionesFerroPrototipo2').empty();
if (this.direcciones.length > 0) {
// get first element
let firstDireccion = this.direcciones[0];
let tarjeta = new tarjetaDireccion(
$("#divDireccionesFerroPrototipo2"),
'dirEnvio-FP-2',
firstDireccion.getData(), true, 1);
tarjeta.setUnidades(1);
$('#divDireccionesFerroPrototipo2').append(tarjeta.card);
this.direccionesFP2 = [];
this.direccionesFP2.push(tarjeta);
$('#divDireccionesFerroPrototipo2').removeClass('d-none');
}
else {
// mostrar alerta de que no hay direcciones
}
}
else {
$('.div-direcciones-fp2').removeClass('d-none');
$('#divDireccionesFerroPrototipo2').removeClass('d-none');
$('#divDireccionesFerroPrototipo2').empty();
}
}
#handleSameAddFP1() {
if (this.sameAddFP1.is(':checked')) {
$('.div-direcciones-fp2').addClass('d-none');
$('#divDireccionesFerroPrototipo2').empty();
if (this.direccionesFP1.length > 0) {
// get first element
let firstDireccion = this.direccionesFP1[0];
let tarjeta = new tarjetaDireccion(
$("#divDireccionesFerroPrototipo2"),
'dirEnvio-FP-2',
firstDireccion.getData(), true, 1);
tarjeta.setUnidades(1);
$('#divDireccionesFerroPrototipo2').append(tarjeta.card);
this.direccionesFP2 = [];
this.direccionesFP2.push(tarjeta);
$('#divDireccionesFerroPrototipo2').removeClass('d-none');
}
else {
// mostrar alerta de que no hay direcciones
}
}
else {
$('.div-direcciones-fp2').removeClass('d-none');
$('#divDireccionesFerroPrototipo2').removeClass('d-none');
$('#divDireccionesFerroPrototipo2').empty();
}
}
getSelectedTirada() {
if ($('.check-tirada-envio:checked').length > 0)
return parseInt($($('.check-tirada-envio:checked')[0]).attr('tirada'));

View File

@ -86,6 +86,8 @@ class PresupuestoCliente {
if (this.datosGenerales.excluirRotativa.length == 0) {
this.direcciones.direccionesCliente.setParams({ 'cliente_id': $("#clienteId").val() })
this.direcciones.direccionesClienteFP1.setParams({ 'cliente_id': $("#clienteId").val() })
this.direcciones.direccionesClienteFP2.setParams({ 'cliente_id': $("#clienteId").val() })
}