terminada faja

This commit is contained in:
2025-02-02 21:10:29 +01:00
parent 27c1e511b3
commit b4fa79cc5c
19 changed files with 384 additions and 72 deletions

View File

@ -48,6 +48,15 @@ class DatosLibro {
"sobrecubierta": 1
}
);
this.acabadoFaja = new ClassSelect($("#acabado_faja_id"),
'/serviciosacabados/getacabados',
'',
false,
{
[this.csrf_token]: this.csrf_hash,
"sobrecubierta": 1
}
);
this.retractilado = this.domItem.find('#retractilado');
this.retractilado5 = this.domItem.find('#retractilado5');
@ -70,13 +79,32 @@ class DatosLibro {
this.tamanio.init();
this.acabadoCubierta.init();
this.acabadoSobrecubierta.init();
this.acabadoFaja.init();
this.acabadoCubierta.item.on('select2:select', function () {
$(document).trigger('add-servicio-lineas', 'acabadoCubierta');
if(self.acabadoCubierta.getVal() == 0){
$(document).trigger('remove-servicio-lineas', 'acabadoCubierta');
}
else{
$(document).trigger('add-servicio-lineas', 'acabadoCubierta');
}
});
this.acabadoSobrecubierta.item.on('select2:select', function () {
$(document).trigger('add-servicio-lineas', 'acabadoSobrecubierta');
if(self.acabadoCubierta.getVal() == 0){
$(document).trigger('remove-servicio-lineas', 'acabadoSobrecubierta');
}
else{
$(document).trigger('add-servicio-lineas', 'acabadoSobrecubierta');
}
});
this.acabadoFaja.item.on('select2:select', function () {
if(self.acabadoFaja.getVal() == 0){
$(document).trigger('remove-servicio-lineas', 'acabadoFaja');
}
else{
$(document).trigger('add-servicio-lineas', 'acabadoFaja');
}
});
if (window.location.href.includes("edit")) {
@ -118,12 +146,15 @@ class DatosLibro {
this.div_faja.removeClass('d-none');
$('#compFaja').val(1).trigger('change');
$(document).trigger('add-servicio-lineas', 'solapas_faja');
$('.acabado-faja').removeClass('d-none');
}
else {
this.div_faja.addClass('d-none');
$('#compFaja').val(0).trigger('change');
$(document).trigger('remove-servicio-lineas', 'solapas_faja');
$(document).trigger('remove-servicio-lineas', 'solapas_grandes_faja');
$('.acabado-faja').addClass('d-none');
$(document).trigger('remove-servicio-lineas', 'acabadoFaja');
}
}
@ -539,6 +570,7 @@ class DatosLibro {
this.div_faja.removeClass('d-none');
this.fajaAlto.val(datos.fajaColorAlto).trigger('change');
this.fajaSolapasAncho.val(datos.fajaColorSolapasAncho).trigger('change');
$('.acabado-faja').removeClass('d-none');
}
@ -554,6 +586,8 @@ class DatosLibro {
this.acabadoSobrecubierta.setOption(datos.acabadoSobrecubierta.id, datos.acabadoSobrecubierta.text);
}
this.acabadoFaja.setOption(datos.acabadoFaja.id, datos.acabadoFaja.text);
this.retractilado.prop('checked', datos.retractilado);
this.retractilado5.prop('checked', datos.retractilado5);
this.prototipo.prop('checked', datos.prototipo);

View File

@ -105,10 +105,13 @@ class Servicios {
addServicio(event, servicio) {
if (servicio == 'acabadoCubierta') {
this.serviciosAcabado.updateAcabadosExteriores(1, 0);
this.serviciosAcabado.updateAcabadosExteriores(1, 0, 0);
}
else if (servicio == 'acabadoSobrecubierta') {
this.serviciosAcabado.updateAcabadosExteriores(0, 1);
this.serviciosAcabado.updateAcabadosExteriores(0, 1, 0);
}
else if (servicio == 'acabadoFaja') {
this.serviciosAcabado.updateAcabadosExteriores(0, 0, 1);
}
else if (servicio == 'ferro'){
const id = $('#ferro').attr('service-id');
@ -234,6 +237,16 @@ class Servicios {
});
this.ServiciosManipulado.table.draw();
}
else if (servicio == 'solapas_faja'){
const id = $('#solapas_faja').attr('service-id');
this.ServiciosManipulado.table.rows().every(function () {
let data = this.data();
if (data && data.tarifa_id == id) {
this.remove().draw();
}
});
this.ServiciosManipulado.table.draw();
}
else if (servicio == 'solapas_grandes_cubierta'){
const id = $('#solapas_grandes_cubierta').attr('service-id');
this.ServiciosManipulado.table.rows().every(function () {
@ -254,6 +267,43 @@ class Servicios {
});
this.ServiciosManipulado.table.draw();
}
else if (servicio == 'solapas_grandes_faja'){
const id = $('#solapas_grandes_faja').attr('service-id');
this.ServiciosManipulado.table.rows().every(function () {
var data = this.data();
if (data && data.tarifa_id == id) {
this.remove();
}
});
this.ServiciosManipulado.table.draw();
}
else if (servicio == 'acabadoCubierta') {
for (let i = 0; i < this.serviciosAcabado.table.rows().count(); i++) {
let data = this.serviciosAcabado.table.row(i).data();
if (data.cubierta == 1) {
this.serviciosAcabado.table.row(i).remove();
}
};
this.serviciosAcabado.table.draw();
}
else if (servicio == 'acabadoSobrecubierta') {
for (let i = 0; i < this.serviciosAcabado.table.rows().count(); i++) {
let data = this.serviciosAcabado.table.row(i).data();
if (data.sobrecubierta == 1) {
this.serviciosAcabado.table.row(i).remove();
}
};
this.serviciosAcabado.table.draw();
}
else if (servicio == 'acabadoFaja') {
for (let i = 0; i < this.serviciosAcabado.table.rows().count(); i++) {
let data = this.serviciosAcabado.table.row(i).data();
if (data.faja == 1) {
this.serviciosAcabado.table.row(i).remove();
}
};
this.serviciosAcabado.table.draw();
}
}
async updateServicios() {
@ -304,6 +354,9 @@ class ServiciosAcabado {
else if (row.sobrecubierta == 1) {
return row.nombre + ' (' + window.language.Presupuestos.sobrecubierta + ')';
}
else if (row.faja == 1) {
return row.nombre + ' (' + window.language.Presupuestos.faja + ')';
}
else {
return row.nombre;
}
@ -338,6 +391,7 @@ class ServiciosAcabado {
{ data: 'margen' },
{ data: 'cubierta', visible: false },
{ data: 'sobrecubierta', visible: false },
{ data: 'faja', visible: false },
{
data: function (row) {
return `
@ -422,10 +476,11 @@ class ServiciosAcabado {
const proveedor_ids = this.table.rows().data().toArray().map(row => row.proveedor_id);
const cubiertas = this.table.rows().data().toArray().map(row => row.cubierta);
const sobrecubiertas = this.table.rows().data().toArray().map(row => row.sobrecubierta);
const fajas = this.table.rows().data().toArray().map(row => row.fajas);
// emparejar los tarifa_ids con los proveedor_ids
let tarifa_data = [];
for (let i = 0; i < tarifa_ids.length; i++) {
tarifa_data.push({ tarifa_id: tarifa_ids[i], proveedor_id: proveedor_ids[i], cubierta: cubiertas[i], sobrecubierta: sobrecubiertas[i] });
tarifa_data.push({ tarifa_id: tarifa_ids[i], proveedor_id: proveedor_ids[i], cubierta: cubiertas[i], sobrecubierta: sobrecubiertas[i], faja: fajas[i] });
}
let tirada = 0;
@ -452,25 +507,33 @@ class ServiciosAcabado {
}
updateAcabadosExteriores(cubierta, sobrecubierta) {
updateAcabadosExteriores(cubierta, sobrecubierta, faja) {
this.table.rows().every(function () {
var data = this.data();
if (data.cubierta == cubierta && data.sobrecubierta == sobrecubierta) {
if (data && (data.cubierta == cubierta && data.sobrecubierta == sobrecubierta && data.faja == faja)) {
this.remove().draw();
}
});
let tarifa_id = 0;
let uso = 'cubierta';
if (cubierta == 1) {
tarifa_id = $('#acabado_cubierta_id').val();
}
else if (sobrecubierta == 1) {
tarifa_id = $('#acabado_sobrecubierta_id').val();
uso = 'sobrecubierta';
}
else if (faja == 1) {
tarifa_id = $('#acabado_faja_id').val();
uso = 'faja';
}
this.getPresupuestoAcabado(tarifa_id, cubierta == 1 ? 'cubierta' : 'sobrecubierta', null);
this.getPresupuestoAcabado(tarifa_id, uso, null);
}
getPresupuestoAcabado(tarifa_id = -1, uso = null, updateSelect = null) {
@ -499,12 +562,16 @@ class ServiciosAcabado {
if (response.values) {
response.values[0].cubierta = 0;
response.values[0].sobrecubierta = 0;
response.values[0].faja = 0;
if (uso == 'cubierta') {
response.values[0].cubierta = 1;
}
else if (uso == 'sobrecubierta') {
response.values[0].sobrecubierta = 1;
}
else if (uso == 'faja') {
response.values[0].faja = 1;
}
if (updateSelect != null) {
self.table.row(updateSelect.closest('tr')).data(response.values[0]).draw();

View File

@ -190,6 +190,8 @@ class TiradasAlernativas {
solapas_sobrecubierta: $('#solapas_sobrecubierta').is(':checked') ? 1 : 0,
solapas_sobrecubierta_ancho: $('#solapas_sobrecubierta').is(':checked') ? parseInt($('#solapas_ancho_sobrecubierta').val()) : 0,
lomo: $('#lomo_cubierta').val(),
faja_alto: $('#faja_alto').val(),
solapas_faja: $('#faja_solapas_ancho').val(),
};
$.ajax({

View File

@ -111,6 +111,7 @@ class DisenioCubierta {
}
);
this.solapasSobrecubierta = this.domItem.find("#solapasSobrecubierta");
this.textoSolapasSobrecubierta = this.domItem.find("#textoLimitesSolapasSobrecubierta");
@ -152,6 +153,16 @@ class DisenioCubierta {
}
);
this.acabadoFaja = new ClassSelect($("#acabadoFaja"),
'/serviciosacabados/getacabados',
'',
false,
{
[this.csrf_token]: this.csrf_hash,
"sobrecubierta": 1
}
);
this.initValidation();
// Creamos un nuevo observador que detecta cambios en los atributos
@ -188,6 +199,7 @@ class DisenioCubierta {
this.papelEspecial.init();
this.acabadoCubierta.init();
this.acabadoSobrecubierta.init();
this.acabadoFaja.init();
this.papelFaja.init();
this.gramajeFaja.init();
@ -225,7 +237,7 @@ class DisenioCubierta {
}
cargarDatos(datosCubierta, datosGuardas, datosSobrecubierta) {
cargarDatos(datosCubierta, datosGuardas, datosSobrecubierta, datosFaja) {
this.papelCubierta = datosCubierta.papel.id;
this.gramaje = datosCubierta.gramaje;
@ -274,6 +286,15 @@ class DisenioCubierta {
this.acabadoSobrecubierta.setOption(datosSobrecubierta.acabado.id, datosSobrecubierta.acabado.text);
}
if (datosFaja) {
this.faja.trigger('click');
this.papelFaja.setOption(datosFaja.papel.papel_id, datosFaja.papel.papel);
this.gramajeFaja.setOption(datosFaja.papel.gramaje, datosFaja.papel.gramaje);
this.solapasFaja.val(datosFaja.solapas_ancho);
this.altoFaja.val(datosFaja.alto);
this.acabadoFaja.setOption(datosFaja.acabado.id, datosFaja.acabado.text);
}
}
@ -716,7 +737,7 @@ class DisenioCubierta {
faja.papel = this.papelFaja.getVal();
faja.gramaje = this.gramajeFaja.getVal();
faja.solapas = this.domItem.find("#solapasFaja").val();
faja.plastificado = this.domItem.find("#plastificadoFaja").children("option:selected").val();
faja.acabado = this.acabadoFaja.getVal();
return faja;
}

View File

@ -811,7 +811,7 @@ class PresupuestoCliente {
console.log("Error al cargar diseño interior: " + e);
}
try {
self.disenioCubierta.cargarDatos(response.data.cubierta, response.data.guardas, response.data.sobrecubierta);
self.disenioCubierta.cargarDatos(response.data.cubierta, response.data.guardas, response.data.sobrecubierta, response.data.faja);
}
catch (e) {
console.log("Error al cargar diseño cubierta: " + e);