mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
1942 lines
82 KiB
JavaScript
1942 lines
82 KiB
JavaScript
import ClassSelect from '../../../components/select2.js';
|
|
import { getToken } from '../../../common/common.js';
|
|
import Ajax from '../../../components/ajax.js';
|
|
|
|
class Comparador {
|
|
|
|
constructor(domItem, cargando, functions = {}) {
|
|
|
|
this.domItem = domItem;
|
|
|
|
this.cargando = cargando;
|
|
|
|
this.getDimensionLibro = functions.getDimensionLibro;
|
|
|
|
this.tipo_impresion_id = parseInt($('#tipo_impresion_id').val());
|
|
|
|
this.csrf_token = getToken();
|
|
this.csrf_hash = $('#mainContainer').find('input[name="' + this.csrf_token + '"]').val();
|
|
|
|
this.comparador_json = this.domItem.find("#comparador_json_data");
|
|
this.tipo_impresion = $("#tipoImpresion");
|
|
|
|
this.paginasNegro = $('#compPaginasNegro');
|
|
this.papelNegro = new ClassSelect($('#compPapelNegro'),
|
|
'/presupuestoadmin/papelgenerico', 'Seleccione papel', false,
|
|
{
|
|
[this.csrf_token]: this.csrf_hash,
|
|
tipo_impresion: this.tipo_impresion_id,
|
|
tirada: () => $('#tirada').val(),
|
|
ancho: () => this.getDimensionLibro().ancho,
|
|
alto: () => this.getDimensionLibro().alto,
|
|
sopalas: 0,
|
|
lomo: 0,
|
|
tipo: 'negro',
|
|
});
|
|
|
|
this.gramajeNegro = new ClassSelect($('#compGramajeNegro'),
|
|
'/presupuestoadmin/papelgramaje', 'Seleccione gramaje', false,
|
|
{
|
|
[this.csrf_token]: this.csrf_hash,
|
|
papel_generico: () => this.papelNegro.getVal(),
|
|
tipo_impresion: this.tipo_impresion_id,
|
|
tirada: () => $('#tirada').val(),
|
|
ancho: () => this.getDimensionLibro().ancho,
|
|
alto: () => this.getDimensionLibro().alto,
|
|
sopalas: 0,
|
|
lomo: 0,
|
|
tipo: 'negro',
|
|
});
|
|
this.paginasColor = $('#compPaginasColor');
|
|
this.papelColor = new ClassSelect($('#compPapelColor'),
|
|
'/presupuestoadmin/papelgenerico', 'Seleccione papel', false,
|
|
{
|
|
[this.csrf_token]: this.csrf_hash,
|
|
tipo_impresion: this.tipo_impresion_id,
|
|
tirada: () => $('#tirada').val(),
|
|
ancho: () => this.getDimensionLibro().ancho,
|
|
alto: () => this.getDimensionLibro().alto,
|
|
sopalas: 0,
|
|
lomo: 0,
|
|
tipo: 'color',
|
|
});
|
|
|
|
this.gramajeColor = new ClassSelect($('#compGramajeColor'),
|
|
'/presupuestoadmin/papelgramaje', 'Seleccione gramaje', false,
|
|
{
|
|
[this.csrf_token]: this.csrf_hash,
|
|
papel_generico: () => this.papelColor.getVal(),
|
|
tipo_impresion: this.tipo_impresion_id,
|
|
tirada: () => $('#tirada').val(),
|
|
ancho: () => this.getDimensionLibro().ancho,
|
|
alto: () => this.getDimensionLibro().alto,
|
|
sopalas: 0,
|
|
lomo: 0,
|
|
tipo: 'color',
|
|
});
|
|
|
|
this.paginasNegrohq = $('#compPaginasNegrohq');
|
|
this.papelNegrohq = new ClassSelect($('#compPapelNegrohq'),
|
|
'/presupuestoadmin/papelgenerico', 'Seleccione papel', false,
|
|
{
|
|
[this.csrf_token]: this.csrf_hash,
|
|
tipo_impresion: this.tipo_impresion_id,
|
|
tirada: () => $('#tirada').val(),
|
|
ancho: () => this.getDimensionLibro().ancho,
|
|
alto: () => this.getDimensionLibro().alto,
|
|
sopalas: 0,
|
|
lomo: 0,
|
|
tipo: 'negrohq',
|
|
});
|
|
|
|
this.gramajeNegrohq = new ClassSelect($('#compGramajeNegrohq'),
|
|
'/presupuestoadmin/papelgramaje', 'Seleccione gramaje', false,
|
|
{
|
|
[this.csrf_token]: this.csrf_hash,
|
|
papel_generico: () => this.papelNegrohq.getVal(),
|
|
tipo_impresion: this.tipo_impresion_id,
|
|
tirada: () => $('#tirada').val(),
|
|
ancho: () => this.getDimensionLibro().ancho,
|
|
alto: () => this.getDimensionLibro().alto,
|
|
sopalas: 0,
|
|
lomo: 0,
|
|
tipo: 'negrohq',
|
|
});
|
|
|
|
this.paginasColorhq = $('#compPaginasColorhq');
|
|
this.papelColorhq = new ClassSelect($('#compPapelColorhq'),
|
|
'/presupuestoadmin/papelgenerico', 'Seleccione papel', false,
|
|
{
|
|
[this.csrf_token]: this.csrf_hash,
|
|
tipo_impresion: this.tipo_impresion_id,
|
|
tirada: () => $('#tirada').val(),
|
|
ancho: () => this.getDimensionLibro().ancho,
|
|
alto: () => this.getDimensionLibro().alto,
|
|
sopalas: 0,
|
|
lomo: 0,
|
|
tipo: 'colorhq',
|
|
});
|
|
|
|
this.gramajeColorhq = new ClassSelect($('#compGramajeColorhq'),
|
|
'/presupuestoadmin/papelgramaje', 'Seleccione gramaje', false,
|
|
{
|
|
[this.csrf_token]: this.csrf_hash,
|
|
papel_generico: () => this.papelColorhq.getVal(),
|
|
tipo_impresion: this.tipo_impresion_id,
|
|
tirada: () => $('#tirada').val(),
|
|
ancho: () => this.getDimensionLibro().ancho,
|
|
alto: () => this.getDimensionLibro().alto,
|
|
sopalas: 0,
|
|
lomo: 0,
|
|
tipo: 'colorhq',
|
|
});
|
|
|
|
this.paginasCubierta = $('#compCarasCubierta');
|
|
this.papelCubierta = new ClassSelect($('#compPapelCubierta'),
|
|
'/presupuestoadmin/papelgenerico', 'Seleccione papel', false,
|
|
{
|
|
[this.csrf_token]: this.csrf_hash,
|
|
tipo_impresion: this.tipo_impresion_id,
|
|
tirada: () => $('#tirada').val(),
|
|
ancho: () => this.getDimensionLibro().ancho,
|
|
alto: () => this.getDimensionLibro().alto,
|
|
sopalas: () => $('#solapas').prop('checked') ? $('#solapas_ancho').val() : 0,
|
|
lomo: () => $('#lomo_cubierta').val(),
|
|
tipo: 'colorhq',
|
|
uso: 'cubierta',
|
|
});
|
|
this.gramajeCubierta = new ClassSelect($('#compGramajeCubierta'),
|
|
'/presupuestoadmin/papelgramaje', 'Seleccione gramaje', false,
|
|
{
|
|
[this.csrf_token]: this.csrf_hash,
|
|
papel_generico: () => this.papelCubierta.getVal(),
|
|
tipo_impresion: this.tipo_impresion_id,
|
|
tirada: () => $('#tirada').val(),
|
|
ancho: () => this.getDimensionLibro().ancho,
|
|
alto: () => this.getDimensionLibro().alto,
|
|
sopalas: () => $('#solapas').prop('checked') ? $('#solapas_ancho').val() : 0,
|
|
lomo: () => $('#lomo_cubierta').val(),
|
|
tipo: 'colorhq',
|
|
uso: 'cubierta',
|
|
});
|
|
if (this.tipo_impresion_id != 5 && this.tipo_impresion_id != 6 && this.tipo_impresion_id != 7 && this.tipo_impresion_id != 8 && this.tipo_impresion_id != 21) {
|
|
this.sobrecubierta = $('#compSobrecubierta');
|
|
this.papelSobrecubierta = new ClassSelect($('#compPapelSobrecubierta'),
|
|
'/presupuestoadmin/papelgenerico', 'Seleccione papel', false,
|
|
{
|
|
[this.csrf_token]: this.csrf_hash,
|
|
tipo_impresion: this.tipo_impresion_id,
|
|
tirada: () => $('#tirada').val(),
|
|
ancho: () => this.getDimensionLibro().ancho,
|
|
alto: () => this.getDimensionLibro().alto,
|
|
sopalas: () => $('#solapas').prop('checked') ? $('#solapas_ancho').val() : 0,
|
|
lomo: () => $('#lomo_sobrecubierta').val(),
|
|
tipo: 'colorhq',
|
|
uso: 'sobrecubierta',
|
|
});
|
|
this.gramajeSobrecubierta = new ClassSelect($('#compGramajeSobrecubierta'),
|
|
'/presupuestoadmin/papelgramaje', 'Seleccione gramaje', false,
|
|
{
|
|
[this.csrf_token]: this.csrf_hash,
|
|
papel_generico: () => this.papelSobrecubierta.getVal(),
|
|
tipo_impresion: this.tipo_impresion_id,
|
|
tirada: () => $('#tirada').val(),
|
|
ancho: () => this.getDimensionLibro().ancho,
|
|
alto: () => this.getDimensionLibro().alto,
|
|
sopalas: () => $('#solapas').prop('checked') ? $('#solapas_ancho').val() : 0,
|
|
lomo: () => $('#lomo_sobrecubierta').val(),
|
|
tipo: 'colorhq',
|
|
uso: 'sobrecubierta',
|
|
});
|
|
}
|
|
|
|
if (this.tipo_impresion_id == 1 || this.tipo_impresion_id == 3 || this.tipo_impresion_id == 5 || this.tipo_impresion_id == 7) {
|
|
this.papelGuardas = new ClassSelect($('#compPapelGuardas'),
|
|
'/presupuestoadmin/papelgenerico', 'Seleccione papel', false,
|
|
{
|
|
[this.csrf_token]: this.csrf_hash,
|
|
tipo_impresion: this.tipo_impresion_id,
|
|
tirada: () => $('#tirada').val(),
|
|
ancho: () => this.getDimensionLibro().ancho,
|
|
alto: () => this.getDimensionLibro().alto,
|
|
sopalas: 0,
|
|
lomo: 0,
|
|
tipo: 'colorhq',
|
|
uso: 'guardas',
|
|
});
|
|
this.gramajeGuardas = new ClassSelect($('#compGramajeGuardas'),
|
|
'/presupuestoadmin/papelgramaje', 'Seleccione gramaje', false,
|
|
{
|
|
[this.csrf_token]: this.csrf_hash,
|
|
papel_generico: () => this.papelGuardas.getVal(),
|
|
tipo_impresion: this.tipo_impresion_id,
|
|
tirada: () => $('#tirada').val(),
|
|
ancho: () => this.getDimensionLibro().ancho,
|
|
alto: () => this.getDimensionLibro().alto,
|
|
sopalas: 0,
|
|
lomo: 0,
|
|
tipo: 'colorhq',
|
|
uso: 'guardas',
|
|
});
|
|
this.carasGuardas = $('#compCarasGuardas');
|
|
this.btnInsertarGuardas = $('#insertarGuardasBtn');
|
|
}
|
|
|
|
this.faja = $('#compFaja');
|
|
this.papelFaja = new ClassSelect($('#compPapelFaja'),
|
|
'/presupuestoadmin/papelgenerico', 'Seleccione papel', false,
|
|
{
|
|
[this.csrf_token]: this.csrf_hash,
|
|
tipo_impresion: this.tipo_impresion_id,
|
|
tirada: () => $('#tirada').val(),
|
|
ancho: () => this.getDimensionLibro().ancho,
|
|
alto: () => $('faja_alto').val(),
|
|
sopalas: () => $('#faja_solapas_ancho').val(),
|
|
lomo: () => $('#lomo_sobrecubierta').val(),
|
|
tipo: 'colorhq',
|
|
uso: 'sobrecubierta',
|
|
});
|
|
this.gramajeFaja = new ClassSelect($('#compGramajeFaja'),
|
|
'/presupuestoadmin/papelgramaje', 'Seleccione gramaje', false,
|
|
{
|
|
[this.csrf_token]: this.csrf_hash,
|
|
papel_generico: () => this.papelFaja.getVal(),
|
|
tipo_impresion: this.tipo_impresion_id,
|
|
tirada: () => $('#tirada').val(),
|
|
ancho: () => this.getDimensionLibro().ancho,
|
|
alto: () => $('faja_alto').val(),
|
|
sopalas: () => $('#faja_solapas_ancho').val(),
|
|
lomo: () => $('#lomo_sobrecubierta').val(),
|
|
tipo: 'colorhq',
|
|
uso: 'sobrecubierta',
|
|
});
|
|
|
|
if (this.tipo_impresion_id == 1 || this.tipo_impresion_id == 3) {
|
|
this.lomoRedondo = $('#compLomoRedondo');
|
|
this.cabezada = $('#cabezada');
|
|
}
|
|
|
|
this.posPagColor = $('#compPosPaginasColor');
|
|
this.calculatedColorPages = $('#compCalPaginasColor');
|
|
|
|
this.tableCompCubierta = null;
|
|
this.tableCompGuardas = null;
|
|
this.tableCompIntPlana = null;
|
|
this.tableCompIntRotativa = null;
|
|
this.tableCompFaja = null;
|
|
this.btnInsertarPlana = $('#insertarPlanaBtn');
|
|
this.btnInsertarRotativa = $('#insertarRotativaBtn');
|
|
this.btnInsertarCubierta = $('#insertarCubiertaBtn');
|
|
this.btnInsertarFaja = $('#insertarFajaBtn');
|
|
|
|
this.comparadorPlanaRunning = false;
|
|
this.comparadorExterioresRunning = false;
|
|
this.comparadorGuardasRunning = false;
|
|
this.comparadorFajaRunning = false;
|
|
}
|
|
|
|
init() {
|
|
|
|
autosize($('#compCalPaginasColor'));
|
|
|
|
this.generateTables();
|
|
|
|
this.initSelect2();
|
|
|
|
this.initEvents();
|
|
}
|
|
|
|
initSelect2() {
|
|
|
|
const self = this;
|
|
|
|
this.paginasCubierta.select2({
|
|
allowClear: false,
|
|
minimumResultsForSearch: Infinity,
|
|
});
|
|
|
|
if ($('#tipo_impresion_id').val() == 1 || $('#tipo_impresion_id').val() == 3 ||
|
|
$('#tipo_impresion_id').val() == 5 || $('#tipo_impresion_id').val() == 7) {
|
|
|
|
this.papelGuardas.init();
|
|
|
|
this.carasGuardas.select2({
|
|
allowClear: false,
|
|
minimumResultsForSearch: Infinity,
|
|
});
|
|
}
|
|
this.papelNegro.init();
|
|
this.gramajeNegro.init();
|
|
this.papelColor.init();
|
|
this.gramajeColor.init();
|
|
this.papelNegrohq.init();
|
|
this.gramajeNegrohq.init();
|
|
this.papelColorhq.init();
|
|
this.gramajeColorhq.init();
|
|
this.papelCubierta.init();
|
|
this.gramajeCubierta.init();
|
|
|
|
if (this.tipo_impresion_id == 1 || this.tipo_impresion_id == 3) {
|
|
this.lomoRedondo.select2({
|
|
allowClear: false,
|
|
minimumResultsForSearch: Infinity,
|
|
});
|
|
|
|
this.lomoRedondo.on('change', function () {
|
|
if (!self.cargando && self.lomoRedondo.select2('data').length > 0) {
|
|
|
|
if (self.lomoRedondo.select2('data')[0].id == 1) {
|
|
$(document).trigger('add-servicio-lineas', 'lomo_redondo');
|
|
}
|
|
else {
|
|
$(document).trigger('remove-servicio-lineas', 'lomo_redondo');
|
|
}
|
|
}
|
|
});
|
|
this.cabezada.select2({
|
|
allowClear: false,
|
|
minimumResultsForSearch: Infinity,
|
|
});
|
|
}
|
|
|
|
this.faja.select2({
|
|
allowClear: false,
|
|
minimumResultsForSearch: Infinity,
|
|
});
|
|
this.papelFaja.init();
|
|
this.gramajeFaja.init();
|
|
this.papelFaja.onChange(() => self.gramajeFaja.empty());
|
|
|
|
if (this.tipo_impresion_id != 5 && this.tipo_impresion_id != 6 && this.tipo_impresion_id != 7 && this.tipo_impresion_id != 8 && this.tipo_impresion_id != 21) {
|
|
|
|
this.sobrecubierta.select2({
|
|
allowClear: false,
|
|
minimumResultsForSearch: Infinity,
|
|
});
|
|
this.papelSobrecubierta.init();
|
|
this.gramajeSobrecubierta.init();
|
|
this.papelSobrecubierta.item.on('select2:select', function () {
|
|
self.gramajeSobrecubierta.empty()
|
|
});
|
|
this.sobrecubierta.on('change', () => {
|
|
if (this.sobrecubierta.select2('data')[0].id == 1) {
|
|
if ($('#solapas_sobrecubierta').prop('checked') == false) {
|
|
this.sobrecubierta.val(0);
|
|
popErrorAlert(window.language.Presupuestos.errores.error_sobrecubierta_sin_solapas, 'divAlarmasComparador')
|
|
}
|
|
$('#solapas_sobrecubierta').prop('checked', true);
|
|
$('#div_solapas_ancho_sobrecubierta').removeClass('d-none');
|
|
$('#solapas_ancho_sobrecubierta').val(60);
|
|
$('#compPapelSobrecubierta').prop('disabled', false);
|
|
$('#compGramajeSobrecubierta').prop('disabled', false);
|
|
}
|
|
else {
|
|
this.papelSobrecubierta.setVal(0);
|
|
this.gramajeSobrecubierta.setVal(0);
|
|
$('#compPapelSobrecubierta').prop('disabled', true);
|
|
$('#compGramajeSobrecubierta').prop('disabled', true);
|
|
|
|
}
|
|
});
|
|
}
|
|
|
|
this.faja.on('change', () => {
|
|
if (this.faja.select2('data')[0].id == 1) {
|
|
if ($('#faja').prop('checked') == false) {
|
|
this.faja.val(0);
|
|
popErrorAlert(window.language.Presupuestos.errores.error_faja_sin_solapas, 'divAlarmasComparador');
|
|
}
|
|
$('#faja').prop('checked', true);
|
|
$('.faja-div').removeClass('d-none');
|
|
$('#compPapelFaja').prop('disabled', false);
|
|
$('#compGramajeFaja').prop('disabled', false);
|
|
}
|
|
else {
|
|
this.papelFaja.setVal(0);
|
|
this.gramajeFaja.setVal(0);
|
|
$('#compPapelFaja').prop('disabled', true);
|
|
$('#compGramajeFaja').prop('disabled', true);
|
|
}
|
|
});
|
|
|
|
|
|
if (this.tipo_impresion_id == 1 || this.tipo_impresion_id == 3 || this.tipo_impresion_id == 5 || this.tipo_impresion_id == 7) {
|
|
this.papelGuardas.init();
|
|
this.gramajeGuardas.init();
|
|
this.papelGuardas.item.on('select2:select', function () {
|
|
self.gramajeGuardas.empty()
|
|
});
|
|
}
|
|
|
|
this.papelNegro.item.on('select2:select', function () {
|
|
self.gramajeNegro.empty()
|
|
});
|
|
this.papelNegrohq.item.on('select2:select', function () {
|
|
self.gramajeNegrohq.empty()
|
|
});
|
|
this.papelColor.item.on('select2:select', function () {
|
|
self.gramajeColor.empty()
|
|
});
|
|
this.papelColorhq.item.on('select2:select', function () {
|
|
self.gramajeColorhq.empty()
|
|
});
|
|
this.papelCubierta.item.on('select2:select', function () {
|
|
self.gramajeCubierta.empty()
|
|
});
|
|
|
|
this.papelFaja.item.on('select2:select', function () {
|
|
self.gramajeFaja.empty()
|
|
});
|
|
|
|
|
|
this.tipo_impresion.select2({
|
|
allowClear: false,
|
|
});
|
|
|
|
this.posPagColor.on('keyup', () => this.#computarPaginasColor(this.posPagColor.val()));
|
|
}
|
|
|
|
initEvents() {
|
|
|
|
this.tipo_impresion.on("change", this.#handleTipoImpresion.bind(this));
|
|
$('.accordion-button').on('click', function (e) {
|
|
|
|
if (e.target.id.includes("plana")) {
|
|
$("#tableCompIntPlana").DataTable().columns.adjust();
|
|
}
|
|
else if (e.target.id.includes("rotativa")) {
|
|
$("#tableCompIntRotativa").DataTable().columns.adjust();
|
|
}
|
|
else if (e.target.id.includes("cubierta")) {
|
|
$("#tableCompCubierta").DataTable().columns.adjust();
|
|
}
|
|
else if (e.target.id.includes("guardas")) {
|
|
$("#tableCompGuardas").DataTable().columns.adjust();
|
|
}
|
|
else if (e.target.id.includes("faja")) {
|
|
$("#tableCompFaja").DataTable().columns.adjust();
|
|
}
|
|
else if (e.target.id.includes("LineasPresupuesto")) {
|
|
$("#tableLineasPresupuesto").DataTable().columns.adjust();
|
|
}
|
|
});
|
|
|
|
$('.comp_negro_items').on('change', this.obtenerComparadorInterior.bind(this));
|
|
$('.comp_negrohq_items').on('change', this.obtenerComparadorInterior.bind(this));
|
|
$('.comp_color_items').on('change', this.obtenerComparadorInterior.bind(this));
|
|
$('.comp_colorhq_items').on('change', this.obtenerComparadorInterior.bind(this));
|
|
|
|
$('.comp_cubierta_items').on('change', this.obtenerComparadorExteriores.bind(this));
|
|
if (this.tipo_impresion_id != 5 && this.tipo_impresion_id != 6 && this.tipo_impresion_id != 7 && this.tipo_impresion_id != 8 && this.tipo_impresion_id != 21) {
|
|
$('.comp_sobrecubierta_items').on('change', this.obtenerComparadorExteriores.bind(this));
|
|
}
|
|
|
|
if (this.tipo_impresion_id == 1 || this.tipo_impresion_id == 3 || this.tipo_impresion_id == 5 || this.tipo_impresion_id == 7) {
|
|
$('.comp_guardas_items').on('change', this.obtenerComparadorGuardas.bind(this));
|
|
}
|
|
|
|
$('.comp_faja_items').on('change', this.obtenerComparadorFaja.bind(this));
|
|
}
|
|
|
|
#changePaginasComparador(element) {
|
|
|
|
const paginas = parseInt($('#paginas').val());
|
|
const newPaginas = parseInt($('#' + element).val());
|
|
|
|
if (paginas < newPaginas) {
|
|
$('#' + element).val(paginas)
|
|
}
|
|
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 == this.paginasNegrohq.attr('id')) {
|
|
if (!$('.comp-colorhq-selected').hasClass('d-none')) {
|
|
this.paginasColorhq.val((paginas - newPaginas) > 0 ? paginas - newPaginas : 0);
|
|
}
|
|
}
|
|
else if (element == this.paginasColor.attr('id')) {
|
|
this.paginasNegro.val((paginas - newPaginas) > 0 ? paginas - newPaginas : 0);
|
|
}
|
|
else if (element == this.paginasColorhq.attr('id')) {
|
|
this.paginasNegrohq.val((paginas - newPaginas) > 0 ? paginas - newPaginas : 0);
|
|
}
|
|
}
|
|
|
|
|
|
cargarDatos(datos) {
|
|
|
|
this.tipo_impresion.val(datos.tipo_impresion).trigger('change');
|
|
this.updateOpcionesComparador();
|
|
|
|
if (datos.json_data != null) {
|
|
this.comparador_json.val(JSON.stringify(datos.json_data));
|
|
|
|
if (datos.json_data.bn) {
|
|
this.paginasNegro.val(datos.json_data.bn.paginas);
|
|
this.papelNegro.setOption(datos.json_data.bn.papel_id, datos.json_data.bn.papel_nombre);
|
|
this.gramajeNegro.setOption(datos.json_data.bn.gramaje, datos.json_data.bn.gramaje);
|
|
}
|
|
else {
|
|
this.paginasNegro.val(0);
|
|
}
|
|
if (datos.json_data.bnhq) {
|
|
this.paginasNegrohq.val(datos.json_data.bnhq.paginas);
|
|
this.papelNegrohq.setOption(datos.json_data.bnhq.papel_id, datos.json_data.bnhq.papel_nombre);
|
|
this.gramajeNegrohq.setOption(datos.json_data.bnhq.gramaje, datos.json_data.bnhq.gramaje);
|
|
}
|
|
else {
|
|
this.paginasNegrohq.val(0);
|
|
}
|
|
if (datos.json_data.color) {
|
|
this.paginasColor.val(datos.json_data.color.paginas);
|
|
this.papelColor.setOption(datos.json_data.color.papel_id, datos.json_data.color.papel_nombre);
|
|
this.gramajeColor.setOption(datos.json_data.color.gramaje, datos.json_data.color.gramaje);
|
|
}
|
|
else {
|
|
this.paginasColor.val(0);
|
|
}
|
|
if (datos.json_data.colorhq) {
|
|
this.paginasColorhq.val(datos.json_data.colorhq.paginas);
|
|
this.papelColorhq.setOption(datos.json_data.colorhq.papel_id, datos.json_data.colorhq.papel_nombre);
|
|
this.gramajeColorhq.setOption(datos.json_data.colorhq.gramaje, datos.json_data.colorhq.gramaje);
|
|
}
|
|
else {
|
|
this.paginasColorhq.val(0);
|
|
}
|
|
if (datos.json_data.cubierta) {
|
|
this.paginasCubierta.val(datos.json_data.cubierta.paginas);
|
|
this.papelCubierta.setOption(datos.json_data.cubierta.papel_id, datos.json_data.cubierta.papel_nombre);
|
|
this.gramajeCubierta.setOption(datos.json_data.cubierta.gramaje, datos.json_data.cubierta.gramaje);
|
|
}
|
|
if (datos.json_data.sobrecubierta) {
|
|
this.sobrecubierta.val(datos.json_data.sobrecubierta.imprimir).trigger('change');
|
|
this.papelSobrecubierta.setOption(datos.json_data.sobrecubierta.papel_id, datos.json_data.sobrecubierta.papel_nombre);
|
|
this.gramajeSobrecubierta.setOption(datos.json_data.sobrecubierta.gramaje, datos.json_data.sobrecubierta.gramaje);
|
|
}
|
|
if (datos.json_data.guardas) {
|
|
this.carasGuardas.val(datos.json_data.guardas.paginas).trigger('change');
|
|
this.papelGuardas.setOption(datos.json_data.guardas.papel_id, datos.json_data.guardas.papel_nombre);
|
|
this.gramajeGuardas.setOption(datos.json_data.guardas.gramaje, datos.json_data.guardas.gramaje);
|
|
}
|
|
if (datos.json_data.faja) {
|
|
this.faja.val(1).trigger('change');
|
|
this.papelFaja.setOption(datos.json_data.faja.papel_id, datos.json_data.faja.papel_nombre);
|
|
this.gramajeFaja.setOption(datos.json_data.faja.gramaje, datos.json_data.faja.gramaje);
|
|
}
|
|
|
|
if (this.tipo_impresion_id == 1 || this.tipo_impresion_id == 3) {
|
|
this.lomoRedondo.val(datos.lomoRedondo ? 1 : 0).trigger('change');
|
|
this.cabezada.val(datos.cabezada).trigger('change');
|
|
}
|
|
|
|
if (datos.posPagColor != null && datos.posPagColor.length > 0) {
|
|
this.posPagColor.val(datos.posPagColor);
|
|
this.#computarPaginasColor(datos.posPagColor);
|
|
}
|
|
}
|
|
}
|
|
|
|
updateComparador() {
|
|
|
|
if (this.paginasColor.val() > 0) {
|
|
this.paginasColor.trigger('change');
|
|
}
|
|
else if (this.paginasColorhq.val() > 0) {
|
|
this.paginasColorhq.trigger('change');
|
|
}
|
|
else if (this.paginasNegro.val() > 0) {
|
|
this.paginasNegro.trigger('change');
|
|
}
|
|
else if (this.paginasNegrohq.val() > 0) {
|
|
this.paginasNegrohq.trigger('change');
|
|
}
|
|
|
|
this.paginasCubierta.trigger('change');
|
|
if (this.tipo_impresion_id == 1 || this.tipo_impresion_id == 3 || this.tipo_impresion_id == 5 || this.tipo_impresion_id == 7) {
|
|
this.carasGuardas.trigger('change');
|
|
}
|
|
this.faja.trigger('change');
|
|
}
|
|
|
|
|
|
generateTables() {
|
|
|
|
this.tableCompIntPlana = new DataTable('#tableCompIntPlana', {
|
|
scrollX: true,
|
|
searching: false,
|
|
paging: false,
|
|
info: false,
|
|
ordering: false,
|
|
responsive: true,
|
|
select: false,
|
|
language: {
|
|
url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
|
|
},
|
|
columns: [
|
|
{
|
|
'data': 'tipo',
|
|
'render': function (data, type, row, meta) {
|
|
if (data == 'bn')
|
|
return window.language.Presupuestos.bn;
|
|
else if (data == 'bnhq')
|
|
return window.language.Presupuestos.bnhq;
|
|
else if (data == 'color')
|
|
return window.language.Presupuestos.color;
|
|
else if (data == 'colorhq')
|
|
return window.language.Presupuestos.colorhq;
|
|
}
|
|
},
|
|
{ 'data': 'paginas' },
|
|
{ 'data': 'papel' },
|
|
{ 'data': 'gramaje' },
|
|
{ 'data': 'marca' },
|
|
{ 'data': 'maquina' },
|
|
{ 'data': 'numeroPliegos' },
|
|
{ 'data': 'pliegosPedido' },
|
|
{ 'data': 'precioPliego' },
|
|
{ 'data': 'libro' },
|
|
{ 'data': 'totalPapelPedido' },
|
|
{ 'data': 'lomo' },
|
|
{ 'data': 'peso' },
|
|
{ 'data': 'horasMaquina' },
|
|
{ 'data': 'precioImpresion' },
|
|
{ 'data': 'total' },
|
|
{ 'data': 'maquinaId' },
|
|
{ 'data': 'maquinaVelocidad' },
|
|
{ 'data': 'tiempoMaquina' },
|
|
{ 'data': 'papelGenericoId' },
|
|
{ 'data': 'papelImpresionId' },
|
|
{ 'data': 'tarifa_impresion_id' }
|
|
],
|
|
columnDefs: [
|
|
{
|
|
target: [16, 17, 18, 19, 20, 21],
|
|
visible: false,
|
|
searchable: false
|
|
},
|
|
]
|
|
});
|
|
|
|
|
|
this.tableCompIntRotativa = new DataTable('#tableCompIntRotativa', {
|
|
scrollX: true,
|
|
searching: false,
|
|
paging: false,
|
|
info: false,
|
|
ordering: false,
|
|
responsive: true,
|
|
select: false,
|
|
language: {
|
|
url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
|
|
},
|
|
columns: [
|
|
{
|
|
'data': 'tipo',
|
|
'render': function (data, type, row, meta) {
|
|
if (data == 'rotativa')
|
|
return window.language.Presupuestos.rotativa;
|
|
}
|
|
},
|
|
{ 'data': 'paginas' },
|
|
{ 'data': 'papel' },
|
|
{ 'data': 'gramaje' },
|
|
{ 'data': 'marca' },
|
|
{
|
|
'data': 'aFavorFibra',
|
|
'render': function (data, type, row, meta) {
|
|
if (data == 'si')
|
|
return window.language.Presupuestos.si;
|
|
else if (data == 'no')
|
|
return window.language.Presupuestos.no;
|
|
}
|
|
},
|
|
{ 'data': 'maquina' },
|
|
{ 'data': 'numeroPliegos' },
|
|
{ 'data': 'pliegosPedido' },
|
|
{ 'data': 'precioPliego' },
|
|
{ 'data': 'libro' },
|
|
{ 'data': 'totalPapelPedido' },
|
|
{ 'data': 'lomo' },
|
|
{ 'data': 'peso' },
|
|
{ 'data': 'horasMaquina' },
|
|
{ 'data': 'precioImpresion' },
|
|
{ 'data': 'precioPagNegro' },
|
|
{ 'data': 'precioPagColor' },
|
|
{ 'data': 'totalTinta' },
|
|
{ 'data': 'totalCorte' },
|
|
{ 'data': 'total' },
|
|
{ 'data': 'maquinaId' },
|
|
{ 'data': 'maquinaVelocidad' },
|
|
{ 'data': 'tiempoMaquina' },
|
|
{ 'data': 'papelGenericoId' },
|
|
{ 'data': 'papelImpresionId' },
|
|
{ 'data': 'paginasColor' },
|
|
{ 'data': 'tarifa_impresion_id' }
|
|
],
|
|
columnDefs: [
|
|
{
|
|
target: [21, 22, 23, 24, 25, 26, 27],
|
|
visible: false,
|
|
searchable: false
|
|
},
|
|
]
|
|
});
|
|
|
|
this.tableCompCubierta = new DataTable('#tableCompCubierta', {
|
|
scrollX: true,
|
|
searching: false,
|
|
paging: false,
|
|
info: false,
|
|
ordering: true,
|
|
responsive: true,
|
|
select: false,
|
|
language: {
|
|
url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
|
|
},
|
|
columns: [
|
|
{
|
|
'data': 'tipo',
|
|
'render': function (data, type, row, meta) {
|
|
if (data == 'cubierta')
|
|
return window.language.Presupuestos.cubierta;
|
|
else if (data == 'sobrecubierta')
|
|
return window.language.Presupuestos.sobrecubierta;
|
|
}
|
|
},
|
|
{ 'data': 'paginas' },
|
|
{ 'data': 'papel' },
|
|
{ 'data': 'gramaje' },
|
|
{ 'data': 'marca' },
|
|
{ 'data': 'maquina' },
|
|
{ 'data': 'numeroPliegos' },
|
|
{ 'data': 'pliegosPedido' },
|
|
{ 'data': 'precioPliego' },
|
|
{ 'data': 'libro' },
|
|
{ 'data': 'totalPapelPedido' },
|
|
{ 'data': 'lomo' },
|
|
{ 'data': 'peso' },
|
|
{ 'data': 'horasMaquina' },
|
|
{ 'data': 'precioImpresion' },
|
|
{ 'data': 'total' },
|
|
{ 'data': 'maquinaId' },
|
|
{ 'data': 'maquinaVelocidad' },
|
|
{ 'data': 'tiempoMaquina' },
|
|
{ 'data': 'papelGenericoId' },
|
|
{ 'data': 'papelImpresionId' },
|
|
{ 'data': 'tarifa_impresion_id' }
|
|
],
|
|
columnDefs: [
|
|
{
|
|
target: [16, 17, 18, 19, 20, 21],
|
|
visible: false,
|
|
searchable: false
|
|
},
|
|
],
|
|
"order": [[0, 'asc'], [15, 'asc']]
|
|
});
|
|
|
|
this.tableCompFaja = new DataTable('#tableCompFaja', {
|
|
scrollX: true,
|
|
searching: false,
|
|
paging: false,
|
|
info: false,
|
|
ordering: true,
|
|
responsive: true,
|
|
select: false,
|
|
language: {
|
|
url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
|
|
},
|
|
columns: [
|
|
{
|
|
'data': 'tipo',
|
|
'render': function (data, type, row, meta) {
|
|
if (data == 'faja')
|
|
return window.language.Presupuestos.faja;
|
|
}
|
|
},
|
|
{ 'data': 'paginas' },
|
|
{ 'data': 'papel' },
|
|
{ 'data': 'gramaje' },
|
|
{ 'data': 'marca' },
|
|
{ 'data': 'maquina' },
|
|
{ 'data': 'numeroPliegos' },
|
|
{ 'data': 'pliegosPedido' },
|
|
{ 'data': 'precioPliego' },
|
|
{ 'data': 'libro' },
|
|
{ 'data': 'totalPapelPedido' },
|
|
{ 'data': 'lomo' },
|
|
{ 'data': 'peso' },
|
|
{ 'data': 'horasMaquina' },
|
|
{ 'data': 'precioImpresion' },
|
|
{ 'data': 'total' },
|
|
{ 'data': 'maquinaId' },
|
|
{ 'data': 'maquinaVelocidad' },
|
|
{ 'data': 'tiempoMaquina' },
|
|
{ 'data': 'papelGenericoId' },
|
|
{ 'data': 'papelImpresionId' },
|
|
{ 'data': 'tarifa_impresion_id' }
|
|
],
|
|
columnDefs: [
|
|
{
|
|
target: [16, 17, 18, 19, 20, 21],
|
|
visible: false,
|
|
searchable: false
|
|
},
|
|
],
|
|
"order": [[15, 'asc']]
|
|
});
|
|
|
|
if (this.tipo_impresion_id == 1 || this.tipo_impresion_id == 3 || this.tipo_impresion_id == 5 || this.tipo_impresion_id == 7) {
|
|
this.tableCompGuardas = new DataTable('#tableCompGuardas', {
|
|
scrollX: true,
|
|
searching: false,
|
|
paging: false,
|
|
info: false,
|
|
ordering: false,
|
|
responsive: true,
|
|
select: false,
|
|
language: {
|
|
url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
|
|
},
|
|
columns: [
|
|
{
|
|
'data': 'tipo',
|
|
'render': function (data, type, row, meta) {
|
|
|
|
return window.language.Presupuestos.Guardas;
|
|
}
|
|
|
|
},
|
|
{ 'data': 'paginas' },
|
|
{ 'data': 'papel' },
|
|
{ 'data': 'gramaje' },
|
|
{ 'data': 'marca' },
|
|
{ 'data': 'maquina' },
|
|
{ 'data': 'numeroPliegos' },
|
|
{ 'data': 'pliegosPedido' },
|
|
{ 'data': 'precioPliego' },
|
|
{ 'data': 'libro' },
|
|
{ 'data': 'totalPapelPedido' },
|
|
{ 'data': 'lomo' },
|
|
{ 'data': 'peso' },
|
|
{ 'data': 'horasMaquina' },
|
|
{ 'data': 'precioImpresion' },
|
|
{ 'data': 'total' },
|
|
{ 'data': 'maquinaId' },
|
|
{ 'data': 'maquinaVelocidad' },
|
|
{ 'data': 'tiempoMaquina' },
|
|
{ 'data': 'papelGenericoId' },
|
|
{ 'data': 'papelImpresionId' },
|
|
{ 'data': 'tarifa_impresion_id' },
|
|
{ 'data': 'paginas_impresion' },
|
|
],
|
|
columnDefs: [
|
|
{
|
|
target: [16, 17, 18, 19, 20, 21, 22],
|
|
visible: false,
|
|
searchable: false
|
|
},
|
|
]
|
|
});
|
|
}
|
|
|
|
}
|
|
|
|
updateOpcionesComparador() {
|
|
|
|
$('.comp_negro_items').off('change');
|
|
$('.comp_negrohq_items').off('change');
|
|
$('.comp_color_items').off('change');
|
|
$('.comp_colorhq_items').off('change');
|
|
|
|
this.tableCompIntPlana.clear().draw();
|
|
this.tableCompIntRotativa.clear().draw();
|
|
|
|
const selValue = this.tipo_impresion.val();
|
|
const elements_negro = $('.comp-negro-selected');
|
|
const elements_negrohq = $('.comp-negrohq-selected');
|
|
const elements_color = $('.comp-color-selected');
|
|
const elements_colorhq = $('.comp-colorhq-selected');
|
|
if (selValue.includes("hq")) {
|
|
Array.from(elements_negro).forEach(element => {
|
|
$(element).addClass('d-none');
|
|
});
|
|
Array.from(elements_color).forEach(element => {
|
|
$(element).addClass('d-none');
|
|
});
|
|
if (selValue.includes('color')) {
|
|
Array.from(elements_colorhq).forEach(element => {
|
|
$(element).removeClass('d-none');
|
|
});
|
|
}
|
|
else {
|
|
Array.from(elements_colorhq).forEach(element => {
|
|
$(element).addClass('d-none');
|
|
});
|
|
}
|
|
Array.from(elements_negrohq).forEach(element => {
|
|
$(element).removeClass('d-none');
|
|
});
|
|
}
|
|
else {
|
|
Array.from(elements_negrohq).forEach(element => {
|
|
$(element).addClass('d-none');
|
|
});
|
|
Array.from(elements_colorhq).forEach(element => {
|
|
$(element).addClass('d-none');
|
|
});
|
|
if (selValue.includes('color')) {
|
|
Array.from(elements_color).forEach(element => {
|
|
$(element).removeClass('d-none');
|
|
});
|
|
}
|
|
else {
|
|
Array.from(elements_color).forEach(element => {
|
|
$(element).addClass('d-none');
|
|
});
|
|
}
|
|
Array.from(elements_negro).forEach(element => {
|
|
$(element).removeClass('d-none');
|
|
});
|
|
}
|
|
|
|
$('.comp_negro_items').on('change', this.obtenerComparadorInterior.bind(this));
|
|
$('.comp_negrohq_items').on('change', this.obtenerComparadorInterior.bind(this));
|
|
$('.comp_color_items').on('change', this.obtenerComparadorInterior.bind(this));
|
|
$('.comp_colorhq_items').on('change', this.obtenerComparadorInterior.bind(this));
|
|
|
|
if (selValue.includes('color')) {
|
|
$('.pos-paginas-color').removeClass('d-none');
|
|
}
|
|
else {
|
|
$('.pos-paginas-color').addClass('d-none');
|
|
}
|
|
}
|
|
|
|
#computarPaginasColor(string) {
|
|
|
|
var numbers = [];
|
|
for (const [, beginStr, endStr] of string.matchAll(/(\d+)(?:-(\d+))?/g)) {
|
|
const [begin, end] = [beginStr, endStr].map(Number);
|
|
numbers.push(begin);
|
|
if (endStr !== undefined) {
|
|
for (let num = begin + 1; num <= end; num++) {
|
|
numbers.push(num);
|
|
}
|
|
}
|
|
}
|
|
var numbers2 = [];
|
|
numbers.forEach(function (value, i) {
|
|
// Si es impar y no está el siguiente par hay que añadirlo
|
|
if (value % 2 != 0 && numbers[i + 1] != value + 1) {
|
|
numbers2.push(value + 1);
|
|
}
|
|
});
|
|
numbers = numbers.concat(numbers2);
|
|
numbers.sort(function (a, b) {
|
|
return a - b;
|
|
});
|
|
this.calculatedColorPages.val(numbers);
|
|
autosize.update(this.calculatedColorPages);
|
|
}
|
|
|
|
#handleTipoImpresion() {
|
|
|
|
this.updateOpcionesComparador();
|
|
$('#title_int_rot').html(window.language.Presupuestos.compInteriorRotativa);
|
|
$('#title_int_plana').html(window.language.Presupuestos.compInteriorPlana);
|
|
if (($('#tipoImpresion').select2('data')[0].id == 'negro' ||
|
|
$('#tipoImpresion').select2('data')[0].id == 'color')) {
|
|
|
|
$('#tableCompIntRotativa').DataTable().clear().draw();
|
|
$('#total_comp_rot').html("0.00");
|
|
|
|
$('#compPaginasColor').val('0')
|
|
$('#compPaginasColorhq').val('0')
|
|
$('#compPaginasNegrohq').val('0');
|
|
$('#compPaginasNegro').val($('#paginas').val())
|
|
|
|
if ($('#tipoImpresion').select2('data')[0].id == 'negro') {
|
|
$('#compGramajeColor').val('').trigger('change')
|
|
$('#compPapelColor').val(0).trigger('change')
|
|
}
|
|
|
|
if ($('#tableCompIntPlana').DataTable().rows().count() > 0 &&
|
|
$('#tableCompIntPlana').DataTable().cell(0, 0).data().includes('hq')) {
|
|
|
|
$('#tableCompIntPlana').DataTable().clear().draw();
|
|
$('#total_comp_plana').html("0.00");
|
|
}
|
|
|
|
}
|
|
else if (($('#tipoImpresion').select2('data')[0].id == 'negrohq' ||
|
|
$('#tipoImpresion').select2('data')[0].id == 'colorhq')) {
|
|
|
|
$('#tableCompIntRotativa').DataTable().clear().draw();
|
|
$('#total_comp_rot').html("0.00");
|
|
|
|
$('#compPaginasColorhq').val('0')
|
|
$('#compPaginasColor').val('0')
|
|
$('#compPaginasNegro').val('0')
|
|
$('#compPaginasNegrohq').val($('#paginas').val())
|
|
|
|
if ($('#tipoImpresion').select2('data')[0].id == 'negrohq') {
|
|
$('#compGramajeColorhq').val('').trigger('change')
|
|
$('#compPapelColorhq').val(0).trigger('change')
|
|
}
|
|
|
|
if ($('#tableCompIntPlana').DataTable().rows().count() > 0 &&
|
|
!$('#tableCompIntPlana').DataTable().cell(0, 0).data().includes('hq')) {
|
|
|
|
$('#tableCompIntPlana').DataTable().clear().draw();
|
|
$('#total_comp_plana').html("0.00");
|
|
}
|
|
}
|
|
|
|
if (!this.cargando) {
|
|
$('#paginas').trigger('change');
|
|
this.updateComparador();
|
|
}
|
|
}
|
|
|
|
getDataForComp(uso = 'interior') {
|
|
|
|
if (this.cargando)
|
|
return { error: true, data: {} };
|
|
|
|
let ancho = 0;
|
|
let alto = 0;
|
|
let papel_generico = {};
|
|
let gramaje = {};
|
|
let paginasColor = 0;
|
|
let paginas = parseInt($('#paginas').val());
|
|
|
|
if (!$('#papelFormatoPersonalizado').prop('checked')) {
|
|
const selectedFormat = $('#papelFormatoId').select2('data')[0].text;
|
|
ancho = Math.round(parseFloat(selectedFormat.trim().split(" x ")[0]), 2);
|
|
alto = Math.round(parseFloat(selectedFormat.trim().split(" x ")[1]), 2);
|
|
|
|
}
|
|
else {
|
|
ancho = Math.round(parseFloat($('#papelFormatoAncho').val()), 2);
|
|
alto = Math.round(parseFloat($('#papelFormatoAlto').val()), 2);
|
|
}
|
|
|
|
if (parseInt($('#paginas').val()) <= 0) {
|
|
popErrorAlert(window.language.Presupuestos.errores.paginas, 'divAlarmasComparador');
|
|
return { error: true, data: {} };
|
|
}
|
|
if (parseInt($('#tirada').val()) <= 0) {
|
|
popErrorAlert(window.language.Presupuestos.errores.tiradas, 'divAlarmasComparador');
|
|
return { error: true, data: {} };
|
|
}
|
|
if (ancho && alto) {
|
|
|
|
if (alto < 60 || ancho < 60 || isNaN(alto) || isNaN(ancho)) {
|
|
popErrorAlert(window.language.Presupuestos.errores.dimension, 'divAlarmasComparador');
|
|
return { error: true, data: {} };
|
|
}
|
|
}
|
|
else {
|
|
popErrorAlert(window.language.Presupuestos.errores.dimension, 'divAlarmasComparador');
|
|
return { error: true, data: {} };
|
|
}
|
|
|
|
if (uso == 'interior') {
|
|
let papeles = [];
|
|
let gramajes = [];
|
|
if (this.tipo_impresion.val().includes('hq')) {
|
|
if (this.tipo_impresion.val().includes('color')) {
|
|
papeles.push(this.papelColorhq);
|
|
gramajes.push(this.gramajeColorhq);
|
|
}
|
|
papeles.push(this.papelNegrohq);
|
|
gramajes.push(this.gramajeNegrohq);
|
|
}
|
|
else {
|
|
if (this.tipo_impresion.val().includes('color')) {
|
|
papeles.push(this.papelColor);
|
|
gramajes.push(this.gramajeColor);
|
|
}
|
|
papeles.push(this.papelNegro);
|
|
gramajes.push(this.gramajeNegro);
|
|
}
|
|
for (let element of papeles) {
|
|
if (element.getVal() == 0 || element.getVal() == null) {
|
|
const tipo = element.item.attr('id').split('Papel')[1];
|
|
if ($('#compPaginas' + tipo).val() > 0 && !this.cargando) {
|
|
popErrorAlert(window.language.Presupuestos.errores.seleccionePapel, 'divAlarmasComparador');
|
|
return { error: true, data: {} };
|
|
}
|
|
}
|
|
};
|
|
for (let element of gramajes) {
|
|
|
|
if (element.getVal() == 0 || element.getVal() == null) {
|
|
const tipo = element.item.attr('id').split('Gramaje')[1];
|
|
if ($('#compPaginas' + tipo).val() > 0 && !this.cargando) {
|
|
popErrorAlert(window.language.Presupuestos.errores.seleccioneGramaje, 'divAlarmasComparador');
|
|
return { error: true, data: {} };
|
|
}
|
|
}
|
|
};
|
|
|
|
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();
|
|
paginasColor = this.paginasColorhq.val();
|
|
}
|
|
else {
|
|
papel_generico.color = { id: this.papelColor.getVal(), nombre: this.papelColor.getText() };
|
|
gramaje.color = this.gramajeColor.getVal();
|
|
paginasColor = this.paginasColor.val();
|
|
}
|
|
|
|
}
|
|
if (this.tipo_impresion.val().includes('hq')) {
|
|
papel_generico.negro = { id: this.papelNegrohq.getVal(), nombre: this.papelNegrohq.getText() };
|
|
gramaje.negro = this.gramajeNegrohq.getVal();
|
|
}
|
|
else {
|
|
papel_generico.negro = { id: this.papelNegro.getVal(), nombre: this.papelNegro.getText() };
|
|
gramaje.negro = this.gramajeNegro.getVal();
|
|
}
|
|
|
|
}
|
|
else if (uso == 'cubierta') {
|
|
if ((this.papelCubierta.getVal() == 0 || this.papelCubierta.getVal() == null) && !this.cargando) {
|
|
popErrorAlert(window.language.Presupuestos.errores.seleccionePapel, 'divAlarmasComparador');
|
|
return { error: true, data: {} };
|
|
}
|
|
if ((this.gramajeCubierta.getVal() == 0 || this.gramajeCubierta.getVal() == null) && !this.cargando) {
|
|
popErrorAlert(window.language.Presupuestos.errores.seleccioneGramaje, 'divAlarmasComparador');
|
|
return { error: true, data: {} };
|
|
}
|
|
|
|
|
|
papel_generico = { id: this.papelCubierta.getVal(), nombre: this.papelCubierta.getText() };
|
|
gramaje = this.gramajeCubierta.getVal();
|
|
paginas = this.paginasCubierta.select2('data')[0].id
|
|
}
|
|
|
|
else if (uso == 'sobrecubierta') {
|
|
if ((this.papelSobrecubierta.getVal() == 0 || this.papelSobrecubierta.getVal() == null) && !this.cargando) {
|
|
popErrorAlert(window.language.Presupuestos.errores.seleccionePapel, 'divAlarmasComparador');
|
|
return { error: true, data: {} };
|
|
}
|
|
if ((this.gramajeSobrecubierta.getVal() == 0 || this.gramajeSobrecubierta.getVal() == null) && !this.cargando) {
|
|
popErrorAlert(window.language.Presupuestos.errores.seleccioneGramaje, 'divAlarmasComparador');
|
|
return { error: true, data: {} };
|
|
}
|
|
|
|
papel_generico = { id: this.papelSobrecubierta.getVal(), nombre: this.papelSobrecubierta.getText() };
|
|
gramaje = this.gramajeSobrecubierta.getVal();
|
|
paginas = 4;
|
|
|
|
}
|
|
|
|
else if (uso == 'faja') {
|
|
if (this.papelFaja.getText() == "" && this.faja.val() > 0 && !this.cargando) {
|
|
popErrorAlert(window.language.Presupuestos.errores.seleccionePapel, 'divAlarmasComparador');
|
|
return { error: true, data: {} };
|
|
}
|
|
if (this.gramajeFaja.getText() == "" && this.faja.val() > 0 && !this.cargando) {
|
|
popErrorAlert(window.language.Presupuestos.errores.seleccioneGramaje, 'divAlarmasComparador');
|
|
return { error: true, data: {} };
|
|
}
|
|
|
|
papel_generico = { id: this.papelFaja.getVal(), nombre: this.papelFaja.getText() };
|
|
gramaje = this.gramajeFaja.getVal();
|
|
paginas = 4;
|
|
alto = $('#faja_alto').val();
|
|
|
|
}
|
|
|
|
else if (uso == 'guardas') {
|
|
|
|
if ((this.papelGuardas.getVal() == 0 || this.papelGuardas.getVal() == null) && !this.cargando) {
|
|
popErrorAlert(window.language.Presupuestos.errores.seleccionePapel, 'divAlarmasComparador');
|
|
return { error: true, data: {} };
|
|
}
|
|
if ((this.gramajeGuardas.getVal() == 0 || this.gramajeGuardas.getVal() == null) && !this.cargando) {
|
|
popErrorAlert(window.language.Presupuestos.errores.seleccioneGramaje, 'divAlarmasComparador');
|
|
return { error: true, data: {} };
|
|
}
|
|
|
|
papel_generico = { id: this.papelGuardas.getVal(), nombre: this.papelGuardas.getText() };
|
|
gramaje = this.gramajeGuardas.getVal();
|
|
paginas = 8;
|
|
|
|
}
|
|
|
|
const datosPedido = {
|
|
paginas: paginas,
|
|
tirada: $('#tirada').val(),
|
|
merma: $('#merma').val(),
|
|
ancho: ancho,
|
|
alto: alto,
|
|
isCosido: $('#isCosido').val(),
|
|
a_favor_fibra: 1,
|
|
};
|
|
|
|
|
|
if ($('#clienteId').select2('data').length == 0 || $('#clienteId').select2('data').id < 1) {
|
|
popErrorAlert(window.language.Presupuestos.errores.seleccioneCliente, 'divAlarmasComparador');
|
|
return { error: true, data: {} };
|
|
}
|
|
|
|
let datos = {
|
|
datosPedido: datosPedido,
|
|
uso: uso == 'faja' ? 'sobrecubierta' : uso,
|
|
tipo_impresion_id: this.tipo_impresion_id,
|
|
cliente_id: $('#clienteId').select2('data')[0].id,
|
|
papel_generico: papel_generico,
|
|
gramaje: gramaje,
|
|
isColor: this.tipo_impresion.val().includes('color') ? 1 : 0,
|
|
isHq: this.tipo_impresion.val().includes('hq') ? 1 : 0,
|
|
paginas_color: paginasColor
|
|
}
|
|
|
|
if (uso == 'cubierta') {
|
|
datos.datosPedido.lomo = $("#lomo_cubierta").val();
|
|
datos.datosPedido.solapas = $('#solapas').prop('checked') ? 1 : 0;
|
|
datos.datosPedido.solapas_ancho = $('#solapas').prop('checked') ? parseInt($('#solapas_ancho').val()) : 0;
|
|
if (this.tipo_impresion_id == 1 || this.tipo_impresion_id == 3) {
|
|
datos.lomoRedondo = this.lomoRedondo.val();
|
|
}
|
|
}
|
|
else if (uso == 'sobrecubierta') {
|
|
datos.datosPedido.lomo = $("#lomo_sobrecubierta").val();
|
|
datos.datosPedido.solapas = $('#solapas_sobrecubierta').prop('checked') ? 1 : 0;
|
|
datos.datosPedido.solapas_ancho = $('#solapas_sobrecubierta').prop('checked') ? parseInt($('#solapas_ancho_sobrecubierta').val()) : 0;
|
|
}
|
|
|
|
else if (uso == 'faja') {
|
|
datos.datosPedido.lomo = $("#lomo_sobrecubierta").val();
|
|
datos.datosPedido.solapas = 1;
|
|
datos.datosPedido.solapas_ancho = parseInt($('#faja_solapas_ancho').val());
|
|
}
|
|
|
|
else if (uso == 'guardas') {
|
|
datos.datosPedido.isCosido = 1;
|
|
datos.datosPedido.isHq = 1;
|
|
datos.paginas_color = datos.datosPedido.paginas;
|
|
datos.paginas_impresion = this.carasGuardas.val();
|
|
}
|
|
|
|
|
|
return { error: false, data: datos };
|
|
}
|
|
|
|
getLomoLineasPresupuesto(tipo_lomo = 'interior') {
|
|
|
|
let lomoTotal = 0
|
|
try {
|
|
$('#tableLineasPresupuesto').DataTable().rows().every(function (rowIdx, tableLoop, rowLoop) {
|
|
var rowData = this.data();
|
|
if (tipo_lomo = 'interior') {
|
|
if (rowData.row_id != 'lp_cubierta' && rowData.tipo != 'lp_sobrecubierta')
|
|
lomoTotal += parseFloat(rowData.lomo);
|
|
}
|
|
else if (tipo_lomo == 'cubierta') {
|
|
if (rowData.tipo != 'lp_sobrecubierta')
|
|
lomoTotal += parseFloat(rowData.lomo);
|
|
}
|
|
})
|
|
}
|
|
catch (error) {
|
|
lomoTotal = 0;
|
|
}
|
|
$('#lomo_cubierta').val(lomoTotal);
|
|
return lomoTotal;
|
|
}
|
|
|
|
obtenerComparadorInterior(event, actualizarLineaPlana = false, actualizarLineaRot = false) {
|
|
|
|
try {
|
|
|
|
const self = this;
|
|
|
|
if (this.cargando || this.comparadorPlanaRunning) {
|
|
return
|
|
}
|
|
this.comparadorPlanaRunning = true;
|
|
|
|
if (event.currentTarget.id.includes('Paginas')) {
|
|
this.#changePaginasComparador(event.currentTarget.id);
|
|
}
|
|
|
|
this.tableCompIntPlana.clear().draw();
|
|
this.tableCompIntRotativa.clear().draw();
|
|
this.btnInsertarPlana.addClass('d-none');
|
|
this.btnInsertarRotativa.addClass('d-none');
|
|
$('#title_int_rot').html(window.language.Presupuestos.compInteriorRotativa);
|
|
$('#title_int_plana').html(window.language.Presupuestos.compInteriorPlana);
|
|
|
|
const datosComp = this.getDataForComp('interior');
|
|
if (datosComp.error) {
|
|
this.comparadorPlanaRunning = false;
|
|
return;
|
|
}
|
|
else {
|
|
|
|
const isHq = this.tipo_impresion.val().includes('hq') ? 1 : 0;
|
|
const isColor = this.tipo_impresion.val().includes('color') ? 1 : 0;
|
|
|
|
datosComp.data['tipo_maquina'] = 'plana';
|
|
datosComp.data[this.csrf_token] = this.csrf_hash;
|
|
new Ajax('/presupuestoadmin/comparadorinterior',
|
|
datosComp.data,
|
|
{},
|
|
(response) => {
|
|
if (response.data.negro && response.data.negro.length > 0) {
|
|
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")
|
|
self.tableCompIntPlana.row
|
|
.add(self.getRowFromLinea(isHq ? 'bnhq' : 'bn', linea))
|
|
.draw()
|
|
});
|
|
}
|
|
if (response.data.color && response.data.color.length > 0) {
|
|
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")
|
|
self.tableCompIntPlana.row
|
|
.add(self.getRowFromLinea(isHq ? 'colorhq' : 'color', linea))
|
|
.draw()
|
|
});
|
|
}
|
|
|
|
self.selectLineas('plana');
|
|
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');
|
|
}
|
|
|
|
// Rotativa
|
|
if (!isHq) {
|
|
if (!isColor ||
|
|
(isColor && datosComp.data.papel_generico.negro.id == datosComp.data.papel_generico.color.id &&
|
|
datosComp.data.gramaje.negro == datosComp.data.gramaje.color) ||
|
|
(isColor && datosComp.data.datosPedido.paginas == parseInt(datosComp.data.paginas_color))) {
|
|
|
|
datosComp.data['tipo_maquina'] = 'rotativa';
|
|
if (isColor && datosComp.data.datosPedido.paginas == parseInt(datosComp.data.paginas_color)) {
|
|
datosComp.data.papel_generico.id = datosComp.data.papel_generico.color.id;
|
|
datosComp.data.papel_generico.nombre = datosComp.data.papel_generico.color.nombre;
|
|
datosComp.data.gramaje = datosComp.data.gramaje.color;
|
|
}
|
|
else {
|
|
datosComp.data.papel_generico.id = datosComp.data.papel_generico.negro.id;
|
|
datosComp.data.papel_generico.nombre = datosComp.data.papel_generico.negro.nombre;
|
|
datosComp.data.gramaje = datosComp.data.gramaje.negro;
|
|
}
|
|
|
|
|
|
new Ajax('/presupuestoadmin/comparadorinterior',
|
|
datosComp.data,
|
|
{},
|
|
(response) => {
|
|
if (response.data.rotativa && response.data.rotativa.length > 0) {
|
|
let sorted = response.data.rotativa.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")
|
|
self.tableCompIntRotativa.row
|
|
.add(self.getRowFromLineaRot(linea))
|
|
.draw()
|
|
});
|
|
}
|
|
self.selectLineas('rotativa');
|
|
if (self.tableCompIntRotativa.rows().count() > 0) {
|
|
self.btnInsertarRotativa.removeClass('d-none');
|
|
$('#title_int_rot').html(window.language.Presupuestos.compInteriorRotativa + ' (' + self.tableCompIntRotativa.rows().count() + ')');
|
|
}
|
|
else {
|
|
$('#title_int_rot').html(window.language.Presupuestos.compInteriorRotativa);
|
|
}
|
|
|
|
self.comparadorPlanaRunning = false;
|
|
},
|
|
(error) => {
|
|
console.log(error);
|
|
self.comparadorPlanaRunning = false;
|
|
}
|
|
).post();
|
|
}
|
|
else {
|
|
self.comparadorPlanaRunning = false;
|
|
}
|
|
}
|
|
else {
|
|
self.comparadorPlanaRunning = false;
|
|
}
|
|
},
|
|
(error) => {
|
|
console.error(error);
|
|
self.comparadorPlanaRunning = false;
|
|
}
|
|
).post();
|
|
}
|
|
} catch (e) {
|
|
console.error(e);
|
|
this.comparadorPlanaRunning = false;
|
|
}
|
|
}
|
|
|
|
obtenerComparadorExteriores(event, actualizarLineaPlana = false, actualizarLineaRot = false) {
|
|
|
|
try {
|
|
|
|
const self = this;
|
|
|
|
if (this.cargando || this.comparadorExterioresRunning) {
|
|
return
|
|
}
|
|
|
|
this.tableCompCubierta.clear().draw();
|
|
this.btnInsertarCubierta.addClass('d-none');
|
|
$('#title_cubierta').html(window.language.Presupuestos.compCubiertaSobrecubierta);
|
|
|
|
let datosComp = {};
|
|
datosComp.cubierta = this.getDataForComp('cubierta');
|
|
if (datosComp.cubierta.error) {
|
|
return;
|
|
}
|
|
if (this.tipo_impresion_id != 5 && this.tipo_impresion_id != 6 && this.tipo_impresion_id != 7 && this.tipo_impresion_id != 8 && this.tipo_impresion_id != 21) {
|
|
if (this.sobrecubierta.val() == 1) {
|
|
datosComp.sobrecubierta = this.getDataForComp('sobrecubierta');
|
|
if (datosComp.sobrecubierta.error) {
|
|
return;
|
|
}
|
|
}
|
|
else {
|
|
datosComp.sobrecubierta = {};
|
|
}
|
|
}
|
|
else {
|
|
datosComp.sobrecubierta = {};
|
|
}
|
|
datosComp.cubierta.data[this.csrf_token] = this.csrf_hash;
|
|
if (Object.keys(datosComp.sobrecubierta).length > 0) {
|
|
datosComp.sobrecubierta.data[this.csrf_token] = this.csrf_hash;
|
|
}
|
|
this.comparadorExterioresRunning = true;
|
|
new Ajax('/presupuestoadmin/comparadorexteriores',
|
|
{
|
|
cubierta: datosComp.cubierta.data,
|
|
sobrecubierta: datosComp.sobrecubierta.data
|
|
},
|
|
{},
|
|
(response) => {
|
|
this.tableCompCubierta.clear().draw();
|
|
if (response.data.cubierta && Object.keys(response.data.cubierta).length > 0) {
|
|
let sorted = Object.values(response.data.cubierta).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[0].forEach(function (linea) {
|
|
if (typeof linea.error == "undefined")
|
|
self.tableCompCubierta.row
|
|
.add(self.getRowFromLinea('cubierta', linea))
|
|
.draw();
|
|
});
|
|
}
|
|
if (response.data.sobrecubierta && Object.keys(response.data.sobrecubierta).length > 0) {
|
|
let sorted = Object.values(response.data.sobrecubierta).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[0].forEach(function (linea) {
|
|
if (typeof linea.error == "undefined")
|
|
self.tableCompCubierta.row
|
|
.add(self.getRowFromLinea('sobrecubierta', linea))
|
|
.draw()
|
|
});
|
|
}
|
|
|
|
self.selectLineas('cubierta');
|
|
if (self.tableCompCubierta.rows().count() > 0) {
|
|
$('#title_cubierta').html(window.language.Presupuestos.compCubiertaSobrecubierta +
|
|
(' (' + self.tableCompCubierta.rows().count() + ')'));
|
|
self.btnInsertarCubierta.removeClass('d-none');
|
|
}
|
|
else {
|
|
$('#title_cubierta').html(window.language.Presupuestos.compCubiertaSobrecubierta);
|
|
self.btnInsertarCubierta.addClass('d-none');
|
|
}
|
|
self.comparadorExterioresRunning = false;
|
|
},
|
|
(error) => {
|
|
console.error(error);
|
|
self.comparadorExterioresRunning = false;
|
|
}
|
|
).post();
|
|
|
|
} catch (e) {
|
|
console.error(e);
|
|
self.comparadorExterioresRunning = false;
|
|
}
|
|
}
|
|
|
|
|
|
obtenerComparadorFaja(event, actualizarLineaPlana = false, actualizarLineaRot = false) {
|
|
|
|
try {
|
|
|
|
const self = this;
|
|
|
|
if (this.cargando || this.comparadorFajaRunning) {
|
|
return
|
|
}
|
|
|
|
this.tableCompFaja.clear().draw();
|
|
this.btnInsertarFaja.addClass('d-none');
|
|
$('#title_faja').html(window.language.Presupuestos.faja);
|
|
|
|
let datosComp = {};
|
|
datosComp.sobrecubierta = this.getDataForComp('faja');
|
|
if (datosComp.sobrecubierta.error) {
|
|
return;
|
|
}
|
|
datosComp.sobrecubierta.data['faja'] = 1; // se indica que es faja para el calculo de formas
|
|
|
|
datosComp.sobrecubierta.data[this.csrf_token] = this.csrf_hash;
|
|
this.comparadorFajaRunning = true;
|
|
new Ajax('/presupuestoadmin/comparadorexteriores',
|
|
{
|
|
sobrecubierta: datosComp.sobrecubierta.data
|
|
},
|
|
{},
|
|
(response) => {
|
|
|
|
if (response.data.sobrecubierta && Object.keys(response.data.sobrecubierta).length > 0) {
|
|
let sorted = Object.values(response.data.sobrecubierta).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[0].forEach(function (linea) {
|
|
if (typeof linea.error == "undefined")
|
|
self.tableCompFaja.row
|
|
.add(self.getRowFromLinea('faja', linea))
|
|
.draw()
|
|
});
|
|
}
|
|
|
|
self.selectLineas('faja');
|
|
if (self.tableCompFaja.rows().count() > 0) {
|
|
$('#title_faja').html(window.language.Presupuestos.faja +
|
|
(' (' + self.tableCompFaja.rows().count() + ')'));
|
|
self.btnInsertarFaja.removeClass('d-none');
|
|
}
|
|
else {
|
|
$('#title_faja').html(window.language.Presupuestos.faja);
|
|
self.btnInsertarFaja.addClass('d-none');
|
|
}
|
|
self.comparadorFajaRunning = false;
|
|
},
|
|
(error) => {
|
|
console.error(error);
|
|
self.comparadorFajaRunning = false;
|
|
}
|
|
).post();
|
|
|
|
|
|
} catch (e) {
|
|
console.error(e);
|
|
self.comparadorFajaRunning = false;
|
|
}
|
|
}
|
|
|
|
obtenerComparadorGuardas(event, actualizarLineaPlana = false, actualizarLineaRot = false) {
|
|
|
|
try {
|
|
|
|
const self = this;
|
|
|
|
if (this.cargando || this.comparadorGuardasRunning) {
|
|
return
|
|
}
|
|
|
|
this.tableCompGuardas.clear().draw();
|
|
this.btnInsertarGuardas.addClass('d-none');
|
|
$('#title_guardas').html(window.language.Presupuestos.Guardas);
|
|
|
|
let datosComp = {};
|
|
datosComp = this.getDataForComp('guardas');
|
|
if (datosComp.error) {
|
|
return;
|
|
}
|
|
|
|
datosComp.data[this.csrf_token] = this.csrf_hash;
|
|
this.comparadorGuardasRunning = true;
|
|
new Ajax('/presupuestoadmin/comparadorguardas',
|
|
datosComp.data,
|
|
{},
|
|
(response) => {
|
|
if (response.data && Object.keys(response.data).length > 0) {
|
|
let sorted = Object.values(response.data.guardas).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")
|
|
self.tableCompGuardas.row
|
|
.add(self.getRowFromLinea('guardas', linea))
|
|
.draw();
|
|
});
|
|
}
|
|
|
|
self.selectLineas('guardas');
|
|
if (self.tableCompGuardas.rows().count() > 0) {
|
|
$('#title_guardas').html(window.language.Presupuestos.Guardas +
|
|
(' (' + self.tableCompGuardas.rows().count() + ')'));
|
|
self.btnInsertarGuardas.removeClass('d-none');
|
|
}
|
|
else {
|
|
$('#title_guardas').html(window.language.Presupuestos.Guardas);
|
|
self.btnInsertarGuardas.addClass('d-none');
|
|
}
|
|
self.comparadorGuardasRunning = false;
|
|
},
|
|
(error) => {
|
|
console.error(error);
|
|
self.comparadorGuardasRunning = false;
|
|
}
|
|
).post();
|
|
|
|
} catch (e) {
|
|
console.error(e);
|
|
self.comparadorGuardasRunning = false;
|
|
}
|
|
}
|
|
|
|
|
|
selectLineas(tabla) {
|
|
|
|
let table = this.tableCompIntPlana;
|
|
let select1 = false;
|
|
let select2 = false;
|
|
let tipo1 = 'bn';
|
|
let tipo2 = 'color';
|
|
let total_label = '#total_comp_plana'
|
|
switch (tabla) {
|
|
case 'guardas':
|
|
table = this.tableCompGuardas;
|
|
tipo1 = 'guardas';
|
|
total_label = '#total_comp_guardas';
|
|
break;
|
|
|
|
case 'cubierta':
|
|
table = this.tableCompCubierta;
|
|
tipo1 = 'cubierta';
|
|
tipo2 = 'sobrecubierta';
|
|
total_label = '#total_comp_cubierta';
|
|
break;
|
|
|
|
case 'faja':
|
|
table = this.tableCompFaja;
|
|
tipo1 = 'faja';
|
|
total_label = '#total_comp_faja';
|
|
break;
|
|
|
|
case 'rotativa':
|
|
table = this.tableCompIntRotativa;
|
|
tipo1 = 'rotativa';
|
|
total_label = '#total_comp_rot';
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
|
|
}
|
|
|
|
table.rows('.selected').deselect();
|
|
table.rows().every(function (rowIdx, tableLoop, rowLoop) {
|
|
if (!select1 && table.cell(rowIdx, 0).data().includes(tipo1)) {
|
|
table.row(rowIdx).nodes().to$().toggleClass('selected');
|
|
select1 = true;
|
|
}
|
|
if (tabla == 'plana' || tabla == 'cubierta')
|
|
if (!select2 && table.cell(rowIdx, 0).data().includes(tipo2)) {
|
|
table.row(rowIdx).nodes().to$().toggleClass('selected');
|
|
select2 = true;
|
|
}
|
|
});
|
|
|
|
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_label).html(value_total.toFixed(2));
|
|
}
|
|
|
|
getRowFromLinea(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;
|
|
}
|
|
|
|
getRowFromLineaRot(linea) {
|
|
|
|
const precio_impresion = isNaN(parseFloat(linea.fields.precio_impresion_horas + linea.fields.precio_click_pedido)) ? "" :
|
|
parseFloat(linea.fields.precio_impresion_horas + linea.fields.precio_click_pedido).toFixed(2);
|
|
|
|
return {
|
|
'tipo': 'rotativa',
|
|
'paginas': linea.fields.paginas,
|
|
'papel': linea.fields.papel_generico,
|
|
'gramaje': linea.fields.gramaje,
|
|
'marca': linea.fields.papel_impresion,
|
|
'aFavorFibra': linea.fields.a_favor_fibra == 1 ? 'si' : 'no',
|
|
'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,
|
|
'precioPagNegro': isNaN(parseFloat(linea.fields.precio_pagina_negro)) ? "" : parseFloat(linea.fields.precio_pagina_negro).toFixed(6),
|
|
'precioPagColor': isNaN(parseFloat(linea.fields.precio_pagina_color)) ? "" : parseFloat(linea.fields.precio_pagina_color).toFixed(6),
|
|
'totalTinta': isNaN(parseFloat(linea.fields.precio_tinta)) ? "" : parseFloat(linea.fields.precio_tinta).toFixed(2),
|
|
'totalCorte': isNaN(parseFloat(linea.fields.total_corte)) ? "" : parseFloat(linea.fields.total_corte).toFixed(2),
|
|
'total': isNaN(parseFloat(linea.fields.total_impresion)) ? "" : (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,
|
|
'paginasColor': linea.fields.paginas_color,
|
|
'tarifa_impresion_id': linea.fields.tarifa_impresion_id,
|
|
}
|
|
}
|
|
|
|
generateCompJSON() {
|
|
|
|
let data = {}
|
|
|
|
if ($('#tipoImpresion').select2('data')[0].id == 'negro' || $('#tipoImpresion').select2('data')[0].id == 'color') {
|
|
let bn_obj = {};
|
|
try {
|
|
bn_obj = {
|
|
"bn": {
|
|
'paginas': $('#compPaginasNegro').val(),
|
|
'papel_id': $('#compPapelNegro').select2('data')[0].id,
|
|
'gramaje': $('#compGramajeNegro').select2('data')[0].text.trim(),
|
|
}
|
|
}
|
|
}
|
|
catch (e) {
|
|
|
|
}
|
|
$.extend(data, bn_obj);
|
|
}
|
|
|
|
if ($('#tipoImpresion').select2('data')[0].id == 'negrohq' || $('#tipoImpresion').select2('data')[0].id == 'colorhq') {
|
|
let bnhq_obj = {};
|
|
try {
|
|
bnhq_obj = {
|
|
"bnhq": {
|
|
'paginas': $('#compPaginasNegrohq').val(),
|
|
'papel_id': $('#compPapelNegrohq').select2('data')[0].id,
|
|
'gramaje': $('#compGramajeNegrohq').select2('data')[0].text.trim(),
|
|
}
|
|
}
|
|
}
|
|
catch (e) {
|
|
}
|
|
$.extend(data, bnhq_obj);
|
|
}
|
|
|
|
if ($('#tipoImpresion').select2('data')[0].id == 'color') {
|
|
let color_obj = {};
|
|
try {
|
|
color_obj = {
|
|
"color": {
|
|
'paginas': $('#compPaginasColor').val(),
|
|
'papel_id': $('#compPapelColor').select2('data')[0].id,
|
|
'gramaje': $('#compGramajeColor').select2('data')[0].text.trim(),
|
|
},
|
|
}
|
|
}
|
|
catch (e) {
|
|
}
|
|
$.extend(data, color_obj);
|
|
|
|
}
|
|
|
|
|
|
if ($('#tipoImpresion').select2('data')[0].id == 'colorhq') {
|
|
let colorhq_obj = {};
|
|
try {
|
|
colorhq_obj = {
|
|
"colorhq": {
|
|
'paginas': $('#compPaginasColorhq').val(),
|
|
'papel_id': $('#compPapelColorhq').select2('data')[0].id,
|
|
'gramaje': $('#compGramajeColorhq').select2('data')[0].text.trim(),
|
|
},
|
|
}
|
|
}
|
|
catch (e) {
|
|
}
|
|
$.extend(data, colorhq_obj);
|
|
}
|
|
|
|
let cubierta_obj = {};
|
|
try {
|
|
cubierta_obj = {
|
|
"cubierta": {
|
|
'paginas': $('#compCarasCubierta option:selected').val(),
|
|
'papel_id': $('#compPapelCubierta').select2('data')[0].id,
|
|
'gramaje': $('#compGramajeCubierta').select2('data')[0].text.trim(),
|
|
},
|
|
}
|
|
}
|
|
catch (e) {
|
|
}
|
|
$.extend(data, cubierta_obj);
|
|
|
|
let sobrecubierta_obj = {};
|
|
try {
|
|
sobrecubierta_obj = {
|
|
"sobrecubierta": {
|
|
'imprimir': $('#compSobrecubierta option:selected').val(),
|
|
'papel_id': $('#compPapelSobrecubierta').select2('data')[0].id,
|
|
'gramaje': $('#compGramajeSobrecubierta').select2('data')[0].text.trim(),
|
|
},
|
|
}
|
|
}
|
|
catch (e) {
|
|
}
|
|
$.extend(data, sobrecubierta_obj);
|
|
|
|
if ($('#compCarasGuardas').length > 0) {
|
|
let guardas_obj = {};
|
|
try {
|
|
guardas_obj = {
|
|
"guardas": {
|
|
'paginas': $('#compCarasGuardas option:selected').val(),
|
|
'papel_id': $('#compPapelGuardas').select2('data')[0].id,
|
|
'gramaje': $('#compGramajeGuardas').select2('data')[0].text.trim(),
|
|
},
|
|
}
|
|
}
|
|
catch (e) {
|
|
}
|
|
$.extend(data, guardas_obj);
|
|
|
|
}
|
|
|
|
if (parseInt($('#compFaja').val()) == 1) {
|
|
let faja_obj = {};
|
|
try {
|
|
faja_obj = {
|
|
"faja": {
|
|
'papel_id': $('#compPapelFaja').select2('data')[0].id,
|
|
'gramaje': $('#compGramajeFaja').select2('data')[0].text.trim(),
|
|
},
|
|
}
|
|
}
|
|
catch (e) {
|
|
}
|
|
$.extend(data, faja_obj);
|
|
}
|
|
|
|
const data_str = JSON.stringify(data)
|
|
$('#comparador_json_data').val(data_str)
|
|
}
|
|
|
|
}
|
|
|
|
|
|
export default Comparador; |