mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
terminado comparador plana
This commit is contained in:
@ -162,6 +162,8 @@ class Comparador {
|
||||
this.btnInsertarPlana = $('#insertarPlanaBtn');
|
||||
this.btnInsertarRotativa = $('#insertarRotativaBtn');
|
||||
this.btnInsertarCubierta = $('#insertarCubiertaBtn');
|
||||
|
||||
this.cargando = false;
|
||||
}
|
||||
|
||||
init() {
|
||||
@ -261,10 +263,6 @@ class Comparador {
|
||||
$("#tableLineasPresupuesto").DataTable().columns.adjust();
|
||||
}
|
||||
});
|
||||
this.paginasNegro.on("change", this.#changePaginasComparador.bind(this));
|
||||
this.paginasNegrohq.on("change", this.#changePaginasComparador.bind(this));
|
||||
this.paginasColor.on("change", this.#changePaginasComparador.bind(this));
|
||||
this.paginasColorhq.on("change", this.#changePaginasComparador.bind(this));
|
||||
|
||||
$('.comp_negro_items').on('change', this.obtenerComparadorInterior.bind(this));
|
||||
$('.comp_negrohq_items').on('change', this.obtenerComparadorInterior.bind(this));
|
||||
@ -275,25 +273,25 @@ class Comparador {
|
||||
#changePaginasComparador(element) {
|
||||
|
||||
const paginas = parseInt($('#paginas').val());
|
||||
const newPaginas = parseInt($(element.currentTarget).val());
|
||||
const newPaginas = parseInt($('#' + element).val());
|
||||
|
||||
if (paginas < newPaginas) {
|
||||
$(element.currentTarget).val(paginas)
|
||||
$('#' + element).val(paginas)
|
||||
}
|
||||
if ($(element.currentTarget).attr('id') == this.paginasNegro.attr('id')) {
|
||||
if (element == this.paginasNegro.attr('id')) {
|
||||
if (!$('.comp-color-selected').hasClass('d-none')) {
|
||||
this.paginasColor.val((paginas - newPaginas) > 0 ? paginas - newPaginas : 0);
|
||||
}
|
||||
}
|
||||
else if ($(element.currentTarget).attr('id') == this.paginasNegro.attr('id')) {
|
||||
else if (element == this.paginasNegrohq.attr('id')) {
|
||||
if (!$('.comp-colorhq-selected').hasClass('d-none')) {
|
||||
this.paginasColorhq.val((paginas - newPaginas) > 0 ? paginas - newPaginas : 0);
|
||||
}
|
||||
}
|
||||
else if ($(element.currentTarget).attr('id') == this.paginasColor.attr('id')) {
|
||||
else if (element == this.paginasColor.attr('id')) {
|
||||
this.paginasNegro.val((paginas - newPaginas) > 0 ? paginas - newPaginas : 0);
|
||||
}
|
||||
else if ($(element.currentTarget).attr('id') == this.paginasColorhq.attr('id')) {
|
||||
else if (element == this.paginasColorhq.attr('id')) {
|
||||
this.paginasNegrohq.val((paginas - newPaginas) > 0 ? paginas - newPaginas : 0);
|
||||
}
|
||||
}
|
||||
@ -301,6 +299,8 @@ class Comparador {
|
||||
|
||||
cargarDatos(datos) {
|
||||
|
||||
this.cargando = true;
|
||||
|
||||
this.tipo_impresion.val(datos.tipo_impresion).trigger('change');
|
||||
this.updateOpcionesComparador();
|
||||
this.comparador_json.val(JSON.stringify(datos.json_data));
|
||||
@ -340,6 +340,9 @@ class Comparador {
|
||||
this.posPagColor.val(datos.posPagColor);
|
||||
this.#computarPaginasColor(datos.posPagColor);
|
||||
}
|
||||
|
||||
this.cargando = false;
|
||||
this.paginasNegro.trigger('change');
|
||||
}
|
||||
|
||||
|
||||
@ -763,7 +766,7 @@ class Comparador {
|
||||
gramajes.push(this.gramajeNegro);
|
||||
}
|
||||
for (let element of papeles) {
|
||||
if (element.getVal() == 0 || element.getVal() == null) {
|
||||
if (element.getVal() == 0 || element.getVal() == null) {
|
||||
popErrorAlert(window.language.Presupuestos.errores.seleccionePapel, 'divAlarmasComparador');
|
||||
return { error: true, data: {} };
|
||||
}
|
||||
@ -778,21 +781,21 @@ class Comparador {
|
||||
|
||||
if (this.tipo_impresion.val().includes('color')) {
|
||||
if (this.tipo_impresion.val().includes('hq')) {
|
||||
papel_generico.color= { id: this.papelColorhq.getVal(), nombre: this.papelColorhq.getText() };
|
||||
gramaje.color= this.gramajeColorhq.getVal();
|
||||
papel_generico.color = { id: this.papelColorhq.getVal(), nombre: this.papelColorhq.getText() };
|
||||
gramaje.color = this.gramajeColorhq.getVal();
|
||||
paginasColor = this.paginasColorhq.val();
|
||||
}
|
||||
papel_generico.negro= { id: this.papelNegrohq.getVal(), nombre: this.papelNegrohq.getText() } ;
|
||||
gramaje.negro= this.gramajeNegrohq.getVal() ;
|
||||
papel_generico.negro = { id: this.papelNegrohq.getVal(), nombre: this.papelNegrohq.getText() };
|
||||
gramaje.negro = this.gramajeNegrohq.getVal();
|
||||
}
|
||||
else {
|
||||
if (this.tipo_impresion.val().includes('hq')) {
|
||||
papel_generico.color = { id: this.papelColor.getVal(), nombre: this.papelColor.getText() } ;
|
||||
gramaje.color = this.gramajeColor.getVal() ;
|
||||
papel_generico.color = { id: this.papelColor.getVal(), nombre: this.papelColor.getText() };
|
||||
gramaje.color = this.gramajeColor.getVal();
|
||||
paginasColor = this.paginasColor.val();
|
||||
}
|
||||
papel_generico.negro= { id: this.papelNegro.getVal(), nombre: this.papelNegro.getText() } ;
|
||||
gramaje.negro= this.gramajeNegro.getVal() ;
|
||||
papel_generico.negro = { id: this.papelNegro.getVal(), nombre: this.papelNegro.getText() };
|
||||
gramaje.negro = this.gramajeNegro.getVal();
|
||||
}
|
||||
}
|
||||
|
||||
@ -817,7 +820,6 @@ class Comparador {
|
||||
uso: uso,
|
||||
tipo_impresion_id: this.tipo_impresion_id,
|
||||
cliente_id: $('#clienteId').select2('data')[0].id,
|
||||
papelInteriorDiferente: 1,
|
||||
papel_generico: papel_generico,
|
||||
gramaje: gramaje,
|
||||
isColor: this.tipo_impresion.val().includes('color'),
|
||||
@ -829,11 +831,20 @@ class Comparador {
|
||||
return { error: false, data: datos };
|
||||
}
|
||||
|
||||
obtenerComparadorInterior(actualizarLineaPlana = false, actualizarLineaRot = false) {
|
||||
|
||||
obtenerComparadorInterior(event, actualizarLineaPlana = false, actualizarLineaRot = false) {
|
||||
|
||||
try {
|
||||
|
||||
const self = this;
|
||||
|
||||
if (this.cargando) {
|
||||
return
|
||||
}
|
||||
|
||||
if (event.currentTarget.id.includes('Paginas')) {
|
||||
this.#changePaginasComparador(event.currentTarget.id);
|
||||
}
|
||||
|
||||
this.tableCompIntPlana.clear().draw();
|
||||
this.tableCompIntRotativa.clear().draw();
|
||||
this.btnInsertarPlana.addClass('d-none');
|
||||
@ -841,19 +852,51 @@ class Comparador {
|
||||
$('#title_int_plana').html(window.language.Presupuestos.compInteriorPlana);
|
||||
|
||||
const datosComp = this.getDataForComp('interior');
|
||||
if(datosComp.error){
|
||||
if (datosComp.error) {
|
||||
return;
|
||||
}
|
||||
else{
|
||||
else {
|
||||
|
||||
datosComp.data[this.csrf_token] = this.csrf_hash;
|
||||
new Ajax('/presupuestoadmin/comparadorplana',
|
||||
datosComp.data,
|
||||
{},
|
||||
(response) =>{
|
||||
console.log(response);
|
||||
(response) => {
|
||||
if (response.data.negro.length > 0) {
|
||||
const isHq = response.data.negro[0].fields.tipo_linea.includes('hq');
|
||||
let sorted = response.data.negro.sort(
|
||||
(p1, p2) => ((p1.fields.precio_pedido + p1.fields.precio_click_pedido) < (p2.fields.precio_pedido + p2.fields.precio_click_pedido)) ?
|
||||
-1 : ((p1.fields.precio_pedido + p1.fields.precio_click_pedido) > (p2.fields.precio_pedido + p2.fields.precio_click_pedido)) ? 1 : 0);
|
||||
sorted.forEach(function (linea) {
|
||||
if (typeof linea.error == "undefined")
|
||||
$('#tableCompIntPlana').DataTable().row
|
||||
.add(self.getRowFromLineaInt(isHq ? 'bnhq' : 'bn', linea))
|
||||
.draw()
|
||||
});
|
||||
}
|
||||
if (response.data.color.length > 0) {
|
||||
const isHq = response.data.color[0].fields.tipo_linea.includes('hq');
|
||||
let sorted = response.data.color.sort(
|
||||
(p1, p2) => ((p1.fields.precio_pedido + p1.fields.precio_click_pedido) < (p2.fields.precio_pedido + p2.fields.precio_click_pedido)) ?
|
||||
-1 : ((p1.fields.precio_pedido + p1.fields.precio_click_pedido) > (p2.fields.precio_pedido + p2.fields.precio_click_pedido)) ? 1 : 0);
|
||||
sorted.forEach(function (linea) {
|
||||
if (typeof linea.error == "undefined")
|
||||
$('#tableCompIntPlana').DataTable().row
|
||||
.add(self.getRowFromLineaInt(isHq ? 'colorhq' : 'color', linea))
|
||||
.draw()
|
||||
});
|
||||
}
|
||||
this.selectIntLineas();
|
||||
if ($('#tableCompIntPlana').DataTable().rows().count() > 0) {
|
||||
$('#title_int_plana').html(window.language.Presupuestos.compInteriorPlana + ' (' + self.tableCompIntPlana.rows().count() + ')');
|
||||
$('#insertarPlanaBtn').removeClass('d-none');
|
||||
}
|
||||
else{
|
||||
$('#title_int_plana').html(window.language.Presupuestos.compInteriorPlana);
|
||||
$('#insertarPlanaBtn').addClass('d-none');
|
||||
}
|
||||
},
|
||||
(error) =>{
|
||||
(error) => {
|
||||
console.log(error);
|
||||
}
|
||||
).post();
|
||||
@ -895,6 +938,70 @@ class Comparador {
|
||||
|
||||
|
||||
}
|
||||
|
||||
selectIntLineas() {
|
||||
var negro_selected = false;
|
||||
var color_selected = false;
|
||||
$("#tableCompIntPlana").DataTable().rows('.selected').deselect();
|
||||
$("#tableCompIntPlana").DataTable().rows().every(function (rowIdx, tableLoop, rowLoop) {
|
||||
if (!negro_selected && $('#tableCompIntPlana').DataTable().cell(rowIdx, 0).data().includes('bn')) {
|
||||
$("#tableCompIntPlana").DataTable().row(rowIdx).nodes().to$().toggleClass('selected');
|
||||
negro_selected = true;
|
||||
}
|
||||
if (!color_selected && $('#tableCompIntPlana').DataTable().cell(rowIdx, 0).data().includes('color')) {
|
||||
$("#tableCompIntPlana").DataTable().row(rowIdx).nodes().to$().toggleClass('selected');
|
||||
color_selected = true;
|
||||
}
|
||||
});
|
||||
|
||||
var table = $("#tableCompIntPlana").DataTable();
|
||||
var rows = table.rows('.selected').indexes();
|
||||
var data = table.rows(rows).data();
|
||||
|
||||
var value_total = 0.00;
|
||||
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
|
||||
value_total += parseFloat(data[i]['total'])
|
||||
}
|
||||
|
||||
$('#total_comp_plana').html(value_total.toFixed(2));
|
||||
}
|
||||
|
||||
getRowFromLineaInt(tipo, linea) {
|
||||
|
||||
const precio_impresion = isNaN(parseFloat(linea.fields.precio_impresion_horas + linea.fields.margen_impresion_horas + linea.fields.precio_click_pedido)) ? "" :
|
||||
parseFloat(linea.fields.precio_impresion_horas + linea.fields.margen_impresion_horas + linea.fields.precio_click_pedido).toFixed(2);
|
||||
|
||||
|
||||
let data = {
|
||||
'tipo': tipo,
|
||||
'paginas': linea.fields.paginas,
|
||||
'papel': linea.fields.papel_generico,
|
||||
'gramaje': linea.fields.gramaje,
|
||||
'marca': linea.fields.papel_impresion,
|
||||
'maquina': linea.fields.maquina,
|
||||
'numeroPliegos': isNaN(parseFloat(linea.fields.pliegos_libro)) ? "" : parseFloat(linea.fields.pliegos_libro).toFixed(2),
|
||||
'pliegosPedido': isNaN(parseFloat(linea.fields.pliegos_pedido)) ? "" : parseFloat(linea.fields.pliegos_pedido).toFixed(2),
|
||||
'precioPliego': isNaN(parseFloat(linea.fields.precios_pliegos)) ? "" : parseFloat(linea.fields.precios_pliegos).toFixed(6),
|
||||
'libro': isNaN(parseFloat(linea.fields.precio_libro)) ? "" : parseFloat(linea.fields.precio_libro).toFixed(2),
|
||||
'totalPapelPedido': isNaN(parseFloat(linea.fields.precio_pedido)) ? "" : parseFloat(linea.fields.precio_pedido).toFixed(2),
|
||||
'lomo': isNaN(parseFloat(linea.fields.mano)) ? "" : parseFloat(linea.fields.mano).toFixed(2),
|
||||
'peso': isNaN(parseFloat(linea.fields.peso)) ? "" : parseFloat(linea.fields.peso).toFixed(2),
|
||||
'horasMaquina': isNaN(parseFloat(linea.fields.horas_maquina)) ? "" : parseFloat(linea.fields.horas_maquina).toFixed(2),
|
||||
'precioImpresion': precio_impresion,
|
||||
'total': isNaN(parseFloat(linea.fields.total_impresion).toFixed(2)) ? "" : parseFloat(linea.fields.total_impresion).toFixed(2),
|
||||
'maquinaId': linea.fields.maquina_id,
|
||||
'maquinaVelocidad': linea.fields.maquina_velocidad,
|
||||
'tiempoMaquina': linea.fields.tiempo_maquina,
|
||||
'papelGenericoId': linea.fields.papel_generico_id,
|
||||
'papelImpresionId': linea.fields.papel_impresion_id,
|
||||
'tarifa_impresion_id': linea.fields.tarifa_impresion_id,
|
||||
}
|
||||
if (data['tipo'] == 'guardas')
|
||||
data['paginas_impresion'] = linea.fields.paginas_impresion;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
/*
|
||||
|
||||
|
||||
Reference in New Issue
Block a user