trabajando en lineas presupuesto

This commit is contained in:
2024-12-27 18:10:35 +01:00
parent ef58fe7209
commit 1ccade47a3
12 changed files with 974 additions and 766 deletions

View File

@ -582,6 +582,7 @@ $routes->group('presupuestoadmin', ['namespace' => 'App\Controllers\Presupuestos
$routes->get('cargar/(:any)', 'Presupuestoadmin::cargar/$1');
$routes->post('comparadorinterior', 'Presupuestoadmin::obtenerComparadorInterior');
$routes->post('comparadorexteriores', 'Presupuestoadmin::obtenerComparadorExteriores');
$routes->post('comparadorguardas', 'Presupuestoadmin::obtenerComparadorGuardas');
$routes->get('papelgenerico', 'Presupuestoadmin::getPapelGenerico');
$routes->get('papelgramaje', 'Presupuestoadmin::getGramaje');
});

View File

@ -538,6 +538,8 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
$item['papel_nombre'] = $modelPapelGenerico->getNombre($item['papel_id'])['nombre'];
}
$data['comparador']['posPagColor'] = $presupuesto->comp_pos_paginas_color;
$data['comparador']['lomoRedondo'] = $presupuesto->lomo_redondo;
$data['comparador']['cabezada'] = $presupuesto->cabezada;
/*
@ -689,8 +691,8 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
'papel_generico' => $papel_generico,
'gramaje' => $gramaje,
'paginas_color' => $paginas_color,
'isColor' => $isColor,
'isHq' => $isHq,
'isColor' => 1, // cubierta y sobre cubierta colorhq
'isHq' => 1, // cubierta y sobre cubierta colorhq
'tipo_impresion_id' => $tipo_impresion_id,
'uso' => $uso,
'lomoRedondo' => $lomoRedondo
@ -714,8 +716,8 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
'papel_generico' => $papel_generico,
'gramaje' => $gramaje,
'paginas_color' => $paginas_color,
'isColor' => $isColor,
'isHq' => $isHq,
'isColor' => 1, // cubierta y sobre cubierta colorhq
'isHq' => 1, // cubierta y sobre cubierta colorhq
'tipo_impresion_id' => $tipo_impresion_id,
'uso' => $uso
);
@ -737,6 +739,58 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
}
public function obtenerComparadorGuardas()
{
if ($this->request->isAJAX()) {
$cliente_id = $this->request->getPost('cliente_id');
$datosPedido = $this->request->getPost('datosPedido');
$papel_generico = $this->request->getPost('papel_generico');
$gramaje = $this->request->getPost('gramaje');
$paginas_color = $this->request->getPost('paginas_color');
$isColor = $this->request->getPost('isColor');
$isHq = $this->request->getPost('isHq');
$tipo_impresion_id = $this->request->getPost('tipo_impresion_id');
$uso = $this->request->getPost('uso');
// Para el caso de Fresado y Cosido tapa dura, las guardas son un diptico
// y hay que imprimirlas como "cosido" (dos hojas pegadas). En el caso de espiral
// o wire-o tapa dura, las guardas se imprimen como hojas sueltas
if ($tipo_impresion_id == 1 || $tipo_impresion_id == 3) {
$datosPedido['isCosido'] = true;
} else if ($tipo_impresion_id == 5 || $tipo_impresion_id == 7) {
$datosPedido['isCosido'] = false;
}
$datosPedido['paginas_impresion'] = $datosPedido['paginas'];
$data = array(
'cliente_id' => $cliente_id,
'datosPedido' => (object) $datosPedido,
'papel_generico' => $papel_generico,
'gramaje' => $gramaje,
'papelInteriorDiferente' => true,
'paginas_color' => $paginas_color,
'isColor' => $isColor,
'isHq' => $isHq,
'tipo_impresion_id' => $tipo_impresion_id,
'uso' => $uso
);
$lineas = PresupuestoClienteService::obtenerGuardas($data, true);
return $this->respond(
[
'status' => 1,
'data' => $lineas
]
);
} else {
return $this->failUnauthorized('Invalid request', 403);
}
}
public function datatable()
{
if ($this->request->isAJAX()) {

View File

@ -1205,9 +1205,17 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$data['datosGenerales']['retractilado5'] = $presupuesto->retractilado5;
$datos_papel = $this->obtenerDatosPapel($presupuesto->id);
$data['interior'] = $datos_papel['interior'] ? $datos_papel['interior'] : [];
if (array_key_exists('interior', $datos_papel)) {
$data['interior'] = $datos_papel['interior'];
} else {
$data['interior'] = [];
}
$data['cubierta'] = $datos_papel['cubierta'] ? $datos_papel['cubierta'] : [];
if (array_key_exists('cubierta', $datos_papel)) {
$data['cubierta'] = $datos_papel['cubierta'];
} else {
$data['cubierta'] = [];
}
$data['cubierta']['tapa'] = $this->obtenerTipoTapa($presupuesto->tipo_impresion_id ?? null);
$data['cubierta']['lomoRedondo'] = $presupuesto->lomo_redondo ? 1 : 0;
$data['cubierta']['solapas'] = $presupuesto->solapas ? 1 : 0;

View File

@ -186,7 +186,7 @@ class PresupuestoClienteService extends BaseService
return $lineas_sobrecubierta;
}
public static function obtenerGuardas($data)
public static function obtenerGuardas($data, $return_raw=false)
{
$uso = $data['uso'];
@ -220,6 +220,14 @@ class PresupuestoClienteService extends BaseService
}
if (count($lineas_guardas) > 0) {
if($return_raw){
$lineas_guardas = array_values(array_unique($lineas_guardas, SORT_REGULAR));
return[
'guardas' => $lineas_guardas
];
}
usort(
$lineas_guardas,
function ($a, $b) {

View File

@ -222,27 +222,46 @@
</div>
<?php if ($tipo_impresion_id == 1 || $tipo_impresion_id == 3): ?>
<div class="col-md-12 col-lg-2 px-4">
<div class="col-md-12 col-lg-2 px-4">
</div>
</div>
<div class="col-md-12 col-lg-2 px-4">
<label id="label_compLomoRedondo" for="compLomoRedondo" class="form-label">
<?= lang('Presupuestos.lomoRedondo') ?>*
</label>
<select id="compLomoRedondo" name="lomo_redondo" class="form-control select2bs2 comp_cubierta_items"
style="width: 100%;">
<option value="2">
<p>
<?= lang('Presupuestos.no') ?>
</p>
</option>
<option value="4">
<p>
<?= lang('Presupuestos.si') ?>
</p>
</option>
</select>
</div>
<div class="col-md-12 col-lg-2 px-4">
<label id="label_compLomoRedondo" for="compLomoRedondo" class="form-label">
<?= lang('Presupuestos.lomoRedondo') ?>*
</label>
<select id="compLomoRedondo" name="lomo_redondo"
class="form-control select2bs2 comp_cubierta_items" style="width: 100%;">
<option value="0">
<p>
<?= lang('Presupuestos.no') ?>
</p>
</option>
<option value="1">
<p>
<?= lang('Presupuestos.si') ?>
</p>
</option>
</select>
</div>
<div class="col-md-12 col-lg-2 px-4">
<label for="cabezada" class="form-label">
<?= lang('Presupuestos.cabezada') ?>
</label>
<select class="form-select select2bs2" id="cabezada" name="cabezada">
<option value="WHI">
<?= lang('Presupuestos.blanca') ?>
</option>
<option value="GRE">
<?= lang('Presupuestos.verde') ?>
</option>
<option value="BLUE">
<?= lang('Presupuestos.azul') ?>
</option>
<option value="REDYEL">
<?= lang('Presupuestos.rojaAmarilla') ?>
</option>
</select>
</div>
<?php endif; ?>
<div>
<hr class="my-1">
@ -322,9 +341,11 @@
</select>
</div>
<div class="col-md-12 col-lg-2 px-4">
<input readonly type="text" id="compGramajeGuardas" name="comp_gramaje_guardas" placeholder="0"
maxLength="5" class="form-control comp_guardas_items" value='170'>
<select id="compGramajeGuardas" name="comp_gramaje_guardas"
class="form-control select2bs2 comp_guardas_items" style="width: 100%;">
</select>
</div>
<div>
<hr class="my-1">
</div>

View File

@ -652,270 +652,8 @@ function format(d) {
return $(value).toArray();
}
const lastColNr_lp = $('#tableLineasPresupuesto').find("tr:first th").length - 1;
const actionBtns_lp = function(data) {
return `
<a href="javascript:void(0);"><i class="ti ti-trash ti-sm btn-delete-lp mx-2" data-id="${data.row_id}"></i></a>
`;
};
var tableLineasPresupuesto = new DataTable('#tableLineasPresupuesto',{
scrollX: true,
searching: false,
paging: false,
info: false,
ordering: true,
responsive: true,
select: false,
rowId: 'row_id',
language: {
url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
},
columnDefs: [
{
targets: 0,
className: 'dt-control',
orderable: false,
data: null,
defaultContent: ''
},
{
targets: [1,2,3,4,5,6,7,8,9],
orderable: false,
visible: false,
},
{
targets: [11,12,13,14,15,16,17,18,19,20],
orderable: false,
},
{
targets: [10],
orderable: true,
visible: false,
},
{
orderable: false,
searchable: false,
targets: [lastColNr_lp]
},
],
columns: [
{data: null},
{data: 'tarifa_impresion_id'},
{data: 'maquina_ancho'},
{data: 'maquina_alto'},
{data: 'maquina_impresion_ancho'},
{data: 'maquina_impresion_alto'},
{data: 'formas'},
{data: 'formas_v'},
{data: 'formas_h'},
{data: 'formas_orientacion'},
{data: 'position',
type: "num" ,
render: function (data, type, row, meta){
if(row.row_id.includes('_bn')){
return 0;
}
else if(row.row_id.includes('_color')){
return 1;
}
else if(row.row_id.includes('_cubierta')){
return 2;
}
else if(row.row_id.includes('_sobrecubierta')){
return 3;
}
else if(row.row_id.includes('_guardas')){
return 4;
}
}
},
{data: 'icon',
render: function ( data, type, row, meta ){
return '<img style="padding: 0; margin:0;" src="' + data + '" />'
}
},
{data: 'paginas',
render: function ( data, type, row, meta ) {
if(row.row_id != "lp_cubierta" && row.row_id != "lp_sobrecubierta" && row.row_id != "lp_guardas")
return '<td class="lp-td"><input id="' + row.row_id + '_paginas" name="' + row.row_id + '_paginas" class="lp-cell lp-input paginas-lp" type="text" value="' + data + '"></td>';
else if(row.row_id == "lp_cubierta"){
select = '<select id="lp_cubierta_paginas" name="comp_paginas_cubierta" class="form-control form-select-sm lp-cell lp-select" style="min-width:50px;">'
if(data==2){
select += '<option value="2" selected >'
}
else{
select += '<option value="2">'
}
select +='<p>' + window.Presupuestos.unaCara + '</p>'
select += '</option>'
if(data==4){
select += '<option value="4" selected >'
}
else{
select += '<option value="4">'
}
select +='<p>' + window.Presupuestos.dosCaras + '</p>'
select += '</option>'
select += '</select>'
return select;
}
else if(row.row_id == "lp_guardas"){
select = '<select id="lp_guardas_paginas" name="comp_paginas_guardas" class="form-control form-select-sm lp-cell lp-select" style="min-width:50px;">'
if(row.paginas_impresion==0){
select += '<option value="0" selected >'
}
else{
select += '<option value="0">'
}
select +='<p>' + window.Presupuestos.sinImpresion + '</p>'
select += '</option>'
if(row.paginas_impresion==4){
select += '<option value="4" selected >'
}
else{
select += '<option value="4">'
}
select +='<p>' + window.Presupuestos.unaCara + '</p>'
select += '</option>'
if(row.paginas_impresion==8){
select += '<option value="8" selected >'
}
else{
select += '<option value="8">'
}
select +='<p>' + window.Presupuestos.dosCaras + '</p>'
select += '</option>'
select += '</select>'
return select;
}
else{
return '';
}
}
},
{data: 'papel',
render: function ( data, type, row, meta ) {
var select = $('<select>')
.attr('id', row.row_id + '_papel')
.attr('name', row.row_id + '_papel')
.addClass('form-control form-select-sm lp-cell lp-select')
.css('min-width', '150px')
var papelList
if(row.row_id == 'lp_bn'){
papelList = window.papelGenericoNegroList
}
else if (row.row_id == 'lp_bnhq'){
papelList = window.papelGenericoNegroHQList
}
else if (row.row_id == 'lp_color'){
papelList = window.papelGenericoColorList
}
else if (row.row_id == 'lp_colorhq'){
papelList = window.papelGenericoColorHQList
}
else if (row.row_id == 'lp_cubierta'){
papelList = window.papelGenericoCubiertaList
}
else if (row.row_id == 'lp_sobrecubierta'){
papelList = window.papelGenericoSobrecubiertaList
}
else if (row.row_id == 'lp_guardas'){
papelList = window.papelGenericoGuardasList
}
else if (row.row_id == 'lp_rot_bn'){
papelList = window.papelGenericoRotativaNegroList
}
else if (row.row_id == 'lp_rot_color'){
papelList = window.papelGenericoRotativaColorList
}
papelList.forEach((element) => {
var option
if(element.id == data)
option = '<option value="'+element.id+'" selected>'+element.nombre+'</option>';
else
option = '<option value="'+element.id+'">'+element.nombre+'</option>';
select.append(option);
});
return select[0].outerHTML
}
},
{data: 'gramaje',
render: function ( data, type, row, meta ) {
var select = $('<select>')
.attr('id', row.row_id + '_gramaje')
.attr('name', row.row_id + '_gramaje')
.addClass('form-control form-select-sm lp-cell lp-select ' )//+ row.row_class + '-select')
.css('min-width', '40px')
var option = '<option value="" selected>'+ parseInt(data)+'</option>';
select.append(option);
return select[0].outerHTML
}
},
{data: 'papel_impresion',
render: function ( data, type, row, meta ) {
var select = $('<select>')
.attr('id', row.row_id + '_papelImpresion')
.attr('name', row.row_id + '_papelImpresion')
.addClass('form-control form-select-sm lp-cell lp-select ' + row.row_class + '-select')
.css('min-width', '150px')
var option = '<option value="' + row.papel_impresion_id+ '" selected>'+ data +'</option>';
select.append(option);
return select[0].outerHTML
}
},
{data: 'maquina',
render: function ( data, type, row, meta ) {
var select = $('<select>')
.attr('id', row.row_id + '_maquina')
.attr('name', row.row_id + '_maquina')
.addClass('form-control form-select-sm lp-cell lp-select ' + row.row_class + '-select')
.css('min-width', '110px')
var option = '<option value="' + row.maquina_id+ '" selected>'+ data +'</option>';
select.append(option);
return select[0].outerHTML
}
},
{data: 'tiempo',
render: function ( data, type, row, meta ) {
return '<td class="lp-td"><input id="' + row.row_id + '_tiempo" name="' + row.row_id + '_tiempo" readonly class="lp-cell lp-cell-disabled lp-input ' + row.row_class + '-input " type="text" value="' + data + '"></td>';
}
},
{data: 'lomo',
render: function ( data, type, row, meta ) {
return '<td class="lp-td"><input id="' + row.row_id + '_lomo" name="' + row.row_id + '_lomo" readonly class="lp-cell lp-cell-disabled lp-input ' + row.row_class + '-input" type="text" value="' + data + '"></td>';
}
},
{data: 'peso',
render: function ( data, type, row, meta ) {
return '<td class="lp-td"><input id="' + row.row_id + '_peso" name="' + row.row_id + '_peso" readonly class="lp-cell lp-cell-disabled lp-input ' + row.row_class + '-input" type="text" value="' + data + '"></td>';
}
},
{data: 'total_linea',
render: function ( data, type, row, meta ) {
return '<td class="lp-td"><input id="' + row.row_id + '_total_linea" name="' + row.row_id + '_total_linea" readonly class="lp-cell lp-cell-disabled lp-input ' + row.row_class + '-input " type="text" value="' + data + '"></td>';
}
},
{
data: actionBtns_lp,
className: 'row-edit dt-center'
}
],
"order": [ 10, 'asc' ]
});
tableLineasPresupuesto.on( 'draw.dt', function () {
checkPaginasPresupuesto()
@ -949,20 +687,7 @@ $(document).on('click', '.btn-delete-lp', function(e) {
// Add event listener for opening and closing details
tableLineasPresupuesto.on('click', 'td.dt-control', function (e) {
let tr = e.target.closest('tr');
let row = tableLineasPresupuesto.row(tr);
if (row.child.isShown()) {
// This row is already open - close it
row.child.hide();
}
else {
// Open this row
row.child(format(row.data())).show();
}
});
function processRowData(row, rowId, rowClass){

View File

@ -1,49 +0,0 @@
/*******************************
* Metodos
*******************************/
function selectGuardasLineas() {
$("#tableCompGuardas").DataTable().rows('.selected').deselect();
let value_total = 0.00;
if ($("#tableCompGuardas").DataTable().rows().count() > 0) {
$("#tableCompGuardas").DataTable().row(0).nodes().to$().toggleClass('selected');
value_total = parseFloat($("#tableCompGuardas").DataTable().rows(0).data()[0]['total'])
};
$('#total_comp_guardas').html(value_total.toFixed(2));
}
function fillGuardas(data) {
let sorted = data.lineas.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")
$('#tableCompGuardas').DataTable().row
.add(getRowFromLineaInt('guardas', linea))
.draw()
})
}

View File

@ -21,12 +21,12 @@ class PresupuestoAdminEdit {
this.cosido = $("#isCosido");
this.datosGenerales = new DatosGenerales(this.domItem.find('#accordionDatosPresupuestoTip'));
this.datosLibro = new DatosLibro(this.domItem.find('#accordionDatosLibroTip',
this.datosLibro = new DatosLibro(this.domItem.find('#accordionDatosLibroTip'),
{
addService: this.addService,
removeService: this.removeService,
checkPaginasPresupuesto: this.checkPaginasPresupuesto,
}));
});
this.comparador = new Comparador(this.domItem.find('#accordionDatosPresupuestoClienteTip'));
this.calcularPresupuesto = false;
@ -126,8 +126,10 @@ class PresupuestoAdminEdit {
checkPaginasPresupuesto() {
cantidad_total = 0
let cantidad_total = 0;
// TO-DO
/*
tableLineasPresupuesto.rows().every(function (rowIdx, tableLoop, rowLoop) {
var rowData = this.data();
if (rowData.row_id != 'lp_cubierta' && rowData.row_id != 'lp_sobrecubierta' && rowData.row_id != 'lp_guardas')
@ -148,7 +150,7 @@ class PresupuestoAdminEdit {
</div>
</div>`;
}
$('#divAlarmasLineasPresupuesto').html(htmlString)
$('#divAlarmasLineasPresupuesto').html(htmlString)*/
}
getDimensionLibro() {

View File

@ -145,13 +145,28 @@ class Comparador {
[this.csrf_token]: this.csrf_hash,
tipo_impresion: this.tipo_impresion_id,
tirada: () => $('#tirada').val(),
tipo: 'guardas',
tipo: 'colorhq',
uso: 'guardas',
});
this.gramajeGuardas = new ClassSelect($('#compGramajeGuardas'),
'/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(),
tipo: 'colorhq',
uso: 'guardas',
});
this.carasGuardas = $('#compCarasGuardas');
this.gramajeGuardas = $('#compGramajeGuardas');
this.btnInsertarGuardas = $('#insertarGuardasBtn');
}
if (this.tipo_impresion_id == 1 || this.tipo_impresion_id == 3){
this.lomoRedondo = $('#compLomoRedondo');
this.cabezada = $('#cabezada');
}
this.posPagColor = $('#compPosPaginasColor');
this.calculatedColorPages = $('#compCalPaginasColor');
@ -188,9 +203,7 @@ class Comparador {
if ($('#tipo_impresion_id').val() == 1 || $('#tipo_impresion_id').val() == 3 ||
$('#tipo_impresion_id').val() == 5 || $('#tipo_impresion_id').val() == 7) {
this.papelGuardas.select2({
allowClear: false,
});
this.papelGuardas.init();
this.carasGuardas.select2({
allowClear: false,
@ -207,6 +220,18 @@ class Comparador {
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.cabezada.select2({
allowClear: false,
minimumResultsForSearch: Infinity,
});
}
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({
@ -233,6 +258,8 @@ class Comparador {
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.onChange(() => this.gramajeGuardas.setVal(0))
}
this.papelNegro.onChange(() => this.gramajeNegro.setVal(0))
@ -282,6 +309,10 @@ class Comparador {
$('.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));
}
}
#changePaginasComparador(element) {
@ -349,8 +380,18 @@ class Comparador {
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.posPagColor.length > 0) {
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);
}
@ -358,6 +399,10 @@ class Comparador {
this.cargando = false;
this.paginasNegro.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');
}
}
@ -743,6 +788,9 @@ class Comparador {
$('#total_comp_plana').html("0.00");
}
}
if(!this.cargando)
$('#paginas').trigger('change');
}
getDataForComp(uso = 'interior') {
@ -874,6 +922,22 @@ class Comparador {
}
else if (uso == 'guardas') {
if (this.papelGuardas.getVal() == 0 || this.papelGuardas.getVal() == null) {
popErrorAlert(window.language.Presupuestos.errores.seleccionePapel, 'divAlarmasComparador');
return { error: true, data: {} };
}
if (this.gramajeGuardas.getVal() == 0 || this.gramajeGuardas.getVal() == null) {
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 = this.carasGuardas.val();
}
const datosPedido = {
paginas: paginas,
tirada: $('#tirada').val(),
@ -906,20 +970,24 @@ class Comparador {
datos.datosPedido.lomo = this.getLomoLineasPresupuesto('interior');
datos.datosPedido.solapas = $('#solapas').prop('checked') ? 1 : 0;
datos.datosPedido.solapas_ancho = $('#solapas').prop('checked') ? parseInt($('#solapas_ancho').val()) : 0;
// TO-DO
datos.lomoRedondo = false;
datos.lomoRedondo = this.lomoRedondo.val();
}
else if (uso == 'sobrecubierta') {
datos.datosPedido.lomo = this.getLomoLineasPresupuesto() + this.getLomoLineasPresupuesto('cubierta');
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 == 'guardas') {
datos.datosPedido.isCosido = 1;
datos.datosPedido.isHq = 1;
datos.paginas_color = datos.datosPedido.paginas;
}
return { error: false, data: datos };
}
getLomoLineasPresupuesto(tipo_lomo='interior') {
getLomoLineasPresupuesto(tipo_lomo = 'interior') {
let lomoTotal = 0
try {
@ -1163,6 +1231,66 @@ class Comparador {
}
}
obtenerComparadorGuardas(event, actualizarLineaPlana = false, actualizarLineaRot = false) {
try {
const self = this;
if (this.cargando) {
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;
new Ajax('/presupuestoadmin/comparadorguardas',
datosComp.data,
{},
(response) => {
if (response.data && Object.keys(response.data).length > 0) {
let sorted = Object.values(response.data).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.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');
}
},
(error) => {
console.log(error);
}
).post();
} catch (e) {
console.log(e)
}
}
selectLineas(tabla) {
@ -1173,6 +1301,12 @@ class Comparador {
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';
@ -1407,402 +1541,7 @@ class Comparador {
data_str = JSON.stringify(data)
$('#comparador_json_data').val(data_str)
}
}
/*
function checkComparadorGuardas(actualizarLinea = false){
if ($('#compPapelGuardas').select2('data')[0].id > 0 ){
const dimension = getDimensionLibro();
let datos = {
tipo_impresion_id: <?php echo $tipo_impresion_id ?>,
type: 'guardas',
paginas: 8,
paginas_impresion: parseInt($('#compCarasGuardas').select2('data')[0].id),
tirada: parseInt($('#tirada').val()),
merma: parseInt($('#mermacubierta').val()),
color: 1,
hq: 1,
ancho: dimension.ancho,
alto: dimension.alto,
papel_generico_id: $('#compPapelGuardas').select2('data')[0].id,
papel_generico: $('#compPapelGuardas').select2('data')[0].text.trim(),
gramaje: parseInt($('#compGramajeGuardas').val()),
cliente_id: $('#clienteId').find(":selected").val(),
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
};
$.ajax({
type: "POST",
url: "/presupuestoadmin/datatable",
data: datos,
success: function (data) {
clearGuardas();
if(data.lineas.length >0){
fillGuardas(data);
selectGuardasLineas();
$('#title_guardas').html('<?= lang("Presupuestos.Guardas") ?>' + ' (' + tableCompGuardas.rows().count() + ')');
$('#insertarGuardasBtn').removeClass('d-none')
if(actualizarLinea){
var rows = $("#tableCompCubierta").DataTable().rows( '.selected' ).data().toArray();
for(row of rows){
fill_lp_guardas(row, true);
}
}
}
else{
$('#title_guardas').html('<?= lang("Presupuestos.Guardas") ?>');
$('#insertarGuardasBtn').addClass('d-none')
$('#total_comp_guardas').html('0.00')
}
yeniden(data.<?= csrf_token() ?>);
return true;
},
error: function(e){
return false;
}
})
}
else{
clearGuardas();
}
}
}
$('.comp_guardas_items').on('change', function (e) {
checkComparadorGuardas(false);
});
<?php endif; ?>
async function getLineasIntPlana(is_color, is_hq, actualizarLinea){
const dimension = getDimensionLibro();
let datos = {
tipo_impresion_id: <?php echo $tipo_impresion_id ?>,
type: 'interior',
color: is_color?1:0,
hq: is_hq?1:0,
paginas: parseInt($(''+ elementos.paginas).val()),
tirada: parseInt($('#tirada').val()),
merma: parseInt($('#merma').val()),
ancho: dimension.ancho,
alto: dimension.alto,
papel_generico_id: $(''+ elementos.papel).select2('data')[0].id,
papel_generico: $(''+ elementos.papel).select2('data')[0].text.trim(),
gramaje: $(''+ elementos.gramaje).select2('data')[0].text.trim() ,
cliente_id: $('#clienteId').find(":selected").val(),
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
};
$.ajax({
type: "POST",
url: "/presupuestoadmin/datatable",
data: datos,
success: function (data) {
clearIntLineas(is_color);
if(data.lineas.length >0){
fillIntPlana(data, is_color, is_hq);
selectIntLineas();
$('#title_int_plana').html('<?= lang("Presupuestos.compInteriorPlana") ?>' + ' (' + tableCompIntPlana.rows().count() + ')');
$('#insertarPlanaBtn').removeClass('d-none')
if(actualizarLinea){
var rows = $("#tableCompIntPlana").DataTable().rows( '.selected' ).data().toArray();
for(row of rows){
if(row['tipo'] =='bn' && !is_color && !is_hq){
if($('#lp_bn').css('display')!='none')
fill_lp_bn(row, true);
}
else if(row['tipo'] =='bnhq' && !is_color && is_hq){
if($('#lp_bnhq').css('display')!='none')
fill_lp_bnhq(row, true);
}
else if(row['tipo'] =='color' && is_color && !is_hq){
if($('#lp_color').css('display')!='none')
fill_lp_color(row, true);
}
else if(row['tipo'] =='colorhq' && is_color && is_hq){
if($('#lp_colorhq').css('display')!='none')
fill_lp_colorhq(row, true);
}
}
}
}
else{
$('#title_int_plana').html('<?= lang("Presupuestos.compInteriorPlana") ?>');
$('#insertarPlanaBtn').addClass('d-none')
$('#total_comp_plana').html('0.00');
}
yeniden(data.<?= csrf_token() ?>);
return true;
},
error: function(e){
return false;
}
})
return false;
}
async function getLineasIntRot(is_hq, actualizarLinea=false){
const dimension = getDimensionLibro();
// Rotativa solo negro o color (no hq)
if ( is_hq==false){
if(checkInputsForRotativa()){
let datos = {
tipo_impresion_id: <?php echo $tipo_impresion_id ?>,
type: 'interior_rot',
paginas: parseInt($('#paginas').val()),
paginas_negro: parseInt($('#compPaginasNegro').val()),
paginas_color: parseInt($('#compPaginasColor').val()),
tirada: parseInt($('#tirada').val()),
merma: parseInt($('#merma').val()),
ancho: dimension.ancho,
alto: dimension.alto,
// el papel y el gramaje se coge del negro (siempre estará)
papel_generico_id: $('#compPapelNegro').select2('data')[0].id,
papel_generico: $('#compPapelNegro').select2('data')[0].text.trim(),
gramaje: $('#compGramajeNegro').select2('data')[0].text.trim() ,
cliente_id: $('#clienteId').find(":selected").val(),
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
};
$.ajax({
type: "POST",
url: "/presupuestoadmin/datatable",
data: datos,
success: function (data) {
clearIntRot();
if(data.lineas.length >0){
fillIntRot(data);
selectIntRotLineas();
$('#title_int_rot').html('<?= lang("Presupuestos.compInteriorRotativa") ?>' + ' (' + tableCompIntRotativa.rows().count() + ')');
$('#insertarRotativaBtn').removeClass('d-none')
if(actualizarLinea){
var rows = $("#tableCompIntRotativa").DataTable().rows( '.selected' ).data().toArray();
for(row of rows){
if(row['paginasColor'] ==0){
if($('#lp_rot_bn').css('display')!='none')
fill_lp_rot_bn(row, true);
}
else if(row['paginasColor'] >0){
if($('#lp_rot_color').css('display')!='none')
fill_lp_rot_color(row, true);
}
}
}
}
else{
$('#title_int_rot').html('<?= lang("Presupuestos.compInteriorRotativa") ?>');
$('#insertarRotativaBtn').addClass('d-none')
$('#total_comp_rot').html('0.00')
}
yeniden(data.<?= csrf_token() ?>);
return true;
},
error: function(e){
return false;
}
})
}
}
return false;
}
$('.comp_cubierta_items').on('change', function (){
checkComparadorCubierta()
});
function checkComparadorCubierta(actualizarLinea = false){
if ($('#compCarasCubierta option:selected').val().length > 0 &&
$('#compPapelCubierta').select2('data').length > 0 &&
$('#compGramajeCubierta').select2('data').length > 0 ){
const dimension = getDimensionLibro();
let datos = {
tipo_impresion_id: <?php echo $tipo_impresion_id ?>,
type: 'cubierta',
paginas: parseInt($('#compCarasCubierta option:selected').val()),
tirada: parseInt($('#tirada').val()),
merma: parseInt($('#mermacubierta').val()),
color: 1,
ancho: dimension.ancho,
alto: dimension.alto,
lomo: getLomoLineasPresupuesto(),
solapas: $('#solapas').is(':checked')?1:0,
solapas_ancho: $('#solapas').is(':checked')?parseInt($('#solapas_ancho').val()):0,
papel_generico_id: $('#compPapelCubierta').select2('data')[0].id,
papel_generico: $('#compPapelCubierta').select2('data')[0].text.trim(),
gramaje: $('#compGramajeCubierta').select2('data')[0].text.trim() ,
cliente_id: $('#clienteId').find(":selected").val(),
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
};
$.ajax({
type: "POST",
url: "/presupuestoadmin/datatable",
data: datos,
success: function (data) {
clearCubierta();
if(data.lineas.length >0){
fillCubierta(data);
selectCubiertaLineas();
tableCompCubierta.order([0, 'asc']).draw()
$('#title_cubierta').html('<?= lang("Presupuestos.compCubiertaSobrecubierta") ?>' + (tableCompCubierta.rows().count()>0 ?(' (' + tableCompCubierta.rows().count() + ')'):''));
$('#insertarCubiertaBtn').removeClass('d-none')
if(actualizarLinea){
var rows = $("#tableCompCubierta").DataTable().rows( '.selected' ).data().toArray();
for(row of rows){
if (row.tipo=='cubierta')
fill_lp_cubierta(row, true);
}
}
}
else{
$('#title_cubierta').html('<?= lang("Presupuestos.compCubiertaSobrecubierta") ?>' + (tableCompCubierta.rows().count()>0 ?(' (' + tableCompCubierta.rows().count() + ')'):''));
if(tableCompCubierta.rows().count()==0){
$('#insertarCubiertaBtn').addClass('d-none')
$('#total_comp_cubierta').html('0.00')
}
else{
selectCubiertaLineas();
}
}
yeniden(data.<?= csrf_token() ?>);
return true;
},
error: function(e){
return false;
}
})
}
else{
clearCubierta();
}
}
$('.comp_sobrecubierta_items').on('change', function (){
checkComparadorSobrecubierta()
});
function checkComparadorSobrecubierta(actualizarLinea = false){
if ($('#compSobrecubierta option:selected').val() == 1 &&
$('#compPapelSobrecubierta').select2('data').length > 0 &&
$('#compGramajeSobrecubierta').select2('data').length > 0 ){
const dimension = getDimensionLibro();
let datos = {
tipo_impresion_id: <?php echo $tipo_impresion_id ?>,
type: 'sobrecubierta',
paginas: 4,
tirada: parseInt($('#tirada').val()),
merma: parseInt($('#mermacubierta').val()),
color: 1,
ancho: dimension.ancho,
alto: dimension.alto,
lomo: getLomoLineasPresupuesto() + getLomoCubiertaLineasPresupuesto(),
solapas: $('#solapas_sobrecubierta').is(':checked')?1:0,
solapas_ancho: $('#solapas_sobrecubierta').is(':checked')?parseInt($('#solapas_ancho_sobrecubierta').val()):0,
papel_generico_id: $('#compPapelSobrecubierta').select2('data')[0].id,
papel_generico: $('#compPapelSobrecubierta').select2('data')[0].text.trim(),
gramaje: $('#compGramajeSobrecubierta').select2('data')[0].text.trim() ,
cliente_id: $('#clienteId').find(":selected").val(),
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
};
$.ajax({
type: "POST",
url: "/presupuestoadmin/datatable",
data: datos,
success: function (data) {
clearSobrecubierta();
if(data.lineas.length >0){
fillSobrecubierta(data);
selectCubiertaLineas();
tableCompCubierta.order([ [0, 'asc'],[15, 'asc'] ]).draw()
$('#title_cubierta').html('<?= lang("Presupuestos.compCubiertaSobrecubierta") ?>' + (tableCompCubierta.rows().count()>0 ?(' (' + tableCompCubierta.rows().count() + ')'):''));
$('#insertarCubiertaBtn').removeClass('d-none')
if(actualizarLinea){
var rows = $("#tableCompCubierta").DataTable().rows( '.selected' ).data().toArray();
for(row of rows){
if (row.tipo=='sobrecubierta')
fill_lp_sobrecubierta(row, true);
}
}
}
else{
$('#title_cubierta').html('<?= lang("Presupuestos.compCubiertaSobrecubierta") ?>' + (tableCompCubierta.rows().count()>0 ?(' (' + tableCompCubierta.rows().count() + ')'):''));
if(tableCompCubierta.rows().count()==0){
$('#insertarCubiertaBtn').addClass('d-none')
$('#total_comp_cubierta').html('0.00')
}
else{
selectCubiertaLineas();
}
}
yeniden(data.<?= csrf_token() ?>);
return true;
},
error: function(e){
return false;
}
})
}
else{
clearSobrecubierta();
}
}
$('#tipoImpresion').on("select2:close", function () {
$('#paginas').change()
})
*/
export default Comparador;

View File

@ -228,7 +228,7 @@ class DatosLibro {
if(window.location.href.includes('edit')){
checkPaginasPresupuesto()
this.checkPaginasPresupuesto();
// Si es negro o color
if ($('#tipoImpresion').select2('data')[0].id == 'negro' ||

View File

@ -0,0 +1,689 @@
import Ajax from "../../../components/ajax";
import ClassSelect from "../../../components/select2";
class LineasPresupuesto {
constructor(domItem, functions = {}) {
this.domItem = domItem;
this.functions = functions;
this.table = null;
this.addLineaManual = this.domItem.find("#btn_addLinea");
}
init() {
this.#initTable();
this.addLineaManual.on('click',
}
#initTable() {
const lastColNr_lp = $('#tableLineasPresupuesto').find("tr:first th").length - 1;
const actionBtns_lp = function (data) {
return `
<a href="javascript:void(0);"><i class="ti ti-trash ti-sm btn-delete-lp mx-2" data-id="${data.row_id}"></i></a>
`;
};
this.table = new DataTable('#tableLineasPresupuesto', {
scrollX: true,
searching: false,
paging: false,
info: false,
ordering: true,
responsive: true,
select: false,
rowId: 'row_id',
language: {
url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
},
columnDefs: [
{
targets: 0,
className: 'dt-control',
orderable: false,
data: null,
defaultContent: ''
},
{
targets: [1, 2, 3, 4, 5, 6, 7, 8, 9],
orderable: false,
visible: false,
},
{
targets: [11, 12, 13, 14, 15, 16, 17, 18, 19, 20],
orderable: false,
},
{
targets: [10],
orderable: true,
visible: false,
},
{
orderable: false,
searchable: false,
targets: [lastColNr_lp]
},
],
columns: [
{ data: null },
{ data: 'tarifa_impresion_id' },
{ data: 'maquina_ancho' },
{ data: 'maquina_alto' },
{ data: 'maquina_impresion_ancho' },
{ data: 'maquina_impresion_alto' },
{ data: 'formas' },
{ data: 'formas_v' },
{ data: 'formas_h' },
{ data: 'formas_orientacion' },
{
data: 'position',
type: "num",
render: function (data, type, row, meta) {
if (row.row_id.includes('_bn')) {
return 0;
}
else if (row.row_id.includes('_color')) {
return 1;
}
else if (row.row_id.includes('_cubierta')) {
return 2;
}
else if (row.row_id.includes('_sobrecubierta')) {
return 3;
}
else if (row.row_id.includes('_guardas')) {
return 4;
}
}
},
{
data: 'icon',
render: function (data, type, row, meta) {
return '<img style="padding: 0; margin:0;" src="' + data + '" />'
}
},
{
data: 'paginas',
render: function (data, type, row, meta) {
if (row.row_id != "lp_cubierta" && row.row_id != "lp_sobrecubierta" && row.row_id != "lp_guardas")
return '<td class="lp-td"><input id="' + row.row_id + '_paginas" name="' + row.row_id + '_paginas" class="lp-cell lp-input paginas-lp" type="text" value="' + data + '"></td>';
else if (row.row_id == "lp_cubierta") {
select = '<select id="lp_cubierta_paginas" name="comp_paginas_cubierta" class="form-control form-select-sm lp-cell lp-select" style="min-width:50px;">'
if (data == 2) {
select += '<option value="2" selected >'
}
else {
select += '<option value="2">'
}
select += '<p>' + window.language.Presupuestos.unaCara + '</p>'
select += '</option>'
if (data == 4) {
select += '<option value="4" selected >'
}
else {
select += '<option value="4">'
}
select += '<p>' + window.language.Presupuestos.dosCaras + '</p>'
select += '</option>'
select += '</select>'
return select;
}
else if (row.row_id == "lp_guardas") {
select = '<select id="lp_guardas_paginas" name="comp_paginas_guardas" class="form-control form-select-sm lp-cell lp-select" style="min-width:50px;">'
if (row.paginas_impresion == 0) {
select += '<option value="0" selected >'
}
else {
select += '<option value="0">'
}
select += '<p>' + window.language.Presupuestos.sinImpresion + '</p>'
select += '</option>'
if (row.paginas_impresion == 4) {
select += '<option value="4" selected >'
}
else {
select += '<option value="4">'
}
select += '<p>' + window.language.Presupuestos.unaCara + '</p>'
select += '</option>'
if (row.paginas_impresion == 8) {
select += '<option value="8" selected >'
}
else {
select += '<option value="8">'
}
select += '<p>' + window.language.Presupuestos.dosCaras + '</p>'
select += '</option>'
select += '</select>'
return select;
}
else {
return '';
}
}
},
{
data: 'papel',
render: function (data, type, row, meta) {
var select = $('<select>')
.attr('id', row.row_id + '_papel')
.attr('name', row.row_id + '_papel')
.addClass('form-control form-select-sm lp-cell lp-select')
.css('min-width', '150px')
let tipo = 'negro';
switch(row.row_id){
case 'lp_negrohq':
tipo = 'negrohq';
break;
case 'lp_rot_color':
case 'lp_color':
tipo = 'color';
break;
case 'lp_colorhq':
case 'lp_guardas':
case 'lp_cubierta':
case 'lp_sobrecubierta':
tipo='colorhq';
break
default:
break;
}
let papelGenerico = new ClassSelect('#' + row.row_id + '_papel',
'/presupuestoadmin/papelgenerico', 'Seleccione papel', false,
{
[this.csrf_token]: this.csrf_hash,
tipo_impresion: this.tipo_impresion_id,
tirada: () => $('#tirada').val(),
tipo: tipo,
});
if(data){
papelGenerico.setOption(data, data);
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
}
return select[0].outerHTML
}
},
{
data: 'gramaje',
render: function (data, type, row, meta) {
var select = $('<select>')
.attr('id', row.row_id + '_gramaje')
.attr('name', row.row_id + '_gramaje')
.addClass('form-control form-select-sm lp-cell lp-select ')//+ row.row_class + '-select')
.css('min-width', '40px')
var option = '<option value="" selected>' + parseInt(data) + '</option>';
select.append(option);
return select[0].outerHTML
}
},
{
data: 'papel_impresion',
render: function (data, type, row, meta) {
var select = $('<select>')
.attr('id', row.row_id + '_papelImpresion')
.attr('name', row.row_id + '_papelImpresion')
.addClass('form-control form-select-sm lp-cell lp-select ' + row.row_class + '-select')
.css('min-width', '150px')
var option = '<option value="' + row.papel_impresion_id + '" selected>' + data + '</option>';
select.append(option);
return select[0].outerHTML
}
},
{
data: 'maquina',
render: function (data, type, row, meta) {
var select = $('<select>')
.attr('id', row.row_id + '_maquina')
.attr('name', row.row_id + '_maquina')
.addClass('form-control form-select-sm lp-cell lp-select ' + row.row_class + '-select')
.css('min-width', '110px')
var option = '<option value="' + row.maquina_id + '" selected>' + data + '</option>';
select.append(option);
return select[0].outerHTML
}
},
{
data: 'tiempo',
render: function (data, type, row, meta) {
return '<td class="lp-td"><input id="' + row.row_id + '_tiempo" name="' + row.row_id + '_tiempo" readonly class="lp-cell lp-cell-disabled lp-input ' + row.row_class + '-input " type="text" value="' + data + '"></td>';
}
},
{
data: 'lomo',
render: function (data, type, row, meta) {
return '<td class="lp-td"><input id="' + row.row_id + '_lomo" name="' + row.row_id + '_lomo" readonly class="lp-cell lp-cell-disabled lp-input ' + row.row_class + '-input" type="text" value="' + data + '"></td>';
}
},
{
data: 'peso',
render: function (data, type, row, meta) {
return '<td class="lp-td"><input id="' + row.row_id + '_peso" name="' + row.row_id + '_peso" readonly class="lp-cell lp-cell-disabled lp-input ' + row.row_class + '-input" type="text" value="' + data + '"></td>';
}
},
{
data: 'total_linea',
render: function (data, type, row, meta) {
return '<td class="lp-td"><input id="' + row.row_id + '_total_linea" name="' + row.row_id + '_total_linea" readonly class="lp-cell lp-cell-disabled lp-input ' + row.row_class + '-input " type="text" value="' + data + '"></td>';
}
},
{
data: actionBtns_lp,
className: 'row-edit dt-center'
}
],
"order": [10, 'asc']
});
this.table.on('click', 'td.dt-control', function (e) {
let tr = e.target.closest('tr');
let row = tableLineasPresupuesto.row(tr);
if (row.child.isShown()) {
// This row is already open - close it
row.child.hide();
}
else {
// Open this row
row.child(format(row.data())).show();
}
});
}
#insertLineaManual() {
let dataRows = this.table.rows().data();
switch ($('#addLineasPresupuesto').val()) {
// Se chequean todas las lineas de negro y todas las de color
// (solo una de cada en interior)
case 'lp_bn':
var hayLinea = false
for (let number = 0; number < dataRows.length; number++) {
if (dataRows[number].row_id == 'lp_bn' ||
dataRows[number].row_id == 'lp_bnhq' ||
dataRows[number].row_id == 'lp_rot_bn') {
hayLinea = true
continue
}
}
if (hayLinea) {
popErrorAlert(window.language.Presupuestos.errores.lineaDuplicada, 'divAlarmasLineasPresupuesto');
break
}
var data = processRowData({ tipo_maquina: 'toner' }, 'lp_bn', 'lp-bn');
tableLineasPresupuesto.row.add(data).draw()
eventos_lp_bn()
break
case 'lp_bnhq':
var hayLinea = false
for (let number = 0; number < dataRows.length; number++) {
if (dataRows[number].row_id == 'lp_bn' ||
dataRows[number].row_id == 'lp_bnhq' ||
dataRows[number].row_id == 'lp_rot_bn') {
hayLinea = true
continue
}
}
if (hayLinea) {
popErrorAlert(window.language.Presupuestos.errores.lineaDuplicada, 'divAlarmasLineasPresupuesto');
break
}
var data = processRowData({ tipo_maquina: 'toner' }, 'lp_bnhq', 'lp-bnhq');
tableLineasPresupuesto.row.add(data).draw()
eventos_lp_bnhq()
break
case 'lp_color':
var hayLinea = false
for (let number = 0; number < dataRows.length; number++) {
if (dataRows[number].row_id == 'lp_color' ||
dataRows[number].row_id == 'lp_colorhq' ||
dataRows[number].row_id == 'lp_rot_color') {
hayLinea = true
continue
}
}
if (hayLinea) {
popErrorAlert(window.language.Presupuestos.errores.lineaDuplicada, 'divAlarmasLineasPresupuesto');
break
}
var data = processRowData({ tipo_maquina: 'toner' }, 'lp_color', 'lp-color');
tableLineasPresupuesto.row.add(data).draw()
eventos_lp_color()
break
case 'lp_colorhq':
var hayLinea = false
for (let number = 0; number < dataRows.length; number++) {
if (dataRows[number].row_id == 'lp_color' ||
dataRows[number].row_id == 'lp_colorhq' ||
dataRows[number].row_id == 'lp_rot_color') {
hayLinea = true
continue
}
}
if (hayLinea) {
popErrorAlert(window.language.Presupuestos.errores.lineaDuplicada, 'divAlarmasLineasPresupuesto');
break
}
var data = processRowData({ tipo_maquina: 'toner' }, 'lp_colorhq', 'lp-colorhq');
tableLineasPresupuesto.row.add(data).draw()
eventos_lp_colorhq()
break
case 'lp_rot_bn':
var hayLinea = false
for (let number = 0; number < dataRows.length; number++) {
if (dataRows[number].row_id == 'lp_bn' ||
dataRows[number].row_id == 'lp_bnhq' ||
dataRows[number].row_id == 'lp_rot_bn') {
hayLinea = true
continue
}
}
if (hayLinea) {
popErrorAlert(window.language.Presupuestos.errores.lineaDuplicada, 'divAlarmasLineasPresupuesto');
break
}
var data = processRowData({ tipo_maquina: 'toner' }, 'lp_rot_bn', 'lp-rot-bn');
tableLineasPresupuesto.row.add(data).draw()
eventos_lp_rot_bn()
break
case 'lp_rot_color':
var hayLinea = false
for (let number = 0; number < dataRows.length; number++) {
if (dataRows[number].row_id == 'lp_color' ||
dataRows[number].row_id == 'lp_colorhq' ||
dataRows[number].row_id == 'lp_rot_color') {
hayLinea = true
continue
}
}
if (hayLinea) {
popErrorAlert(window.language.Presupuestos.errores.lineaDuplicada, 'divAlarmasLineasPresupuesto');
break
}
var data = processRowData({ tipo_maquina: 'toner' }, 'lp_rot_color', 'lp-rot-color');
tableLineasPresupuesto.row.add(data).draw()
eventos_lp_rot_color()
break
case 'lp_cubierta':
var hayLinea = false
for (let number = 0; number < dataRows.length; number++) {
if (dataRows[number].row_id == 'lp_cubierta') {
hayLinea = true
continue
}
}
if (hayLinea) {
popErrorAlert(window.language.Presupuestos.errores.lineaDuplicada, 'divAlarmasLineasPresupuesto');
break
}
var data = processRowData({ tipo_maquina: 'toner' }, 'lp_cubierta', 'lp-cubierta');
tableLineasPresupuesto.row.add(data).draw()
eventos_lp_cubierta()
break
case 'lp_sobrecubierta':
var hayLinea = false
for (let number = 0; number < dataRows.length; number++) {
if (dataRows[number].row_id == 'lp_sobrecubierta') {
hayLinea = true
continue
}
}
if (hayLinea) {
popErrorAlert(window.language.Presupuestos.errores.lineaDuplicada, 'divAlarmasLineasPresupuesto');
break
}
var data = processRowData({ tipo_maquina: 'toner' }, 'lp_sobrecubierta', 'lp-sobrecubierta');
tableLineasPresupuesto.row.add(data).draw()
eventos_lp_sobrecubierta()
break
case 'lp_guardas':
var hayLinea = false
for (let number = 0; number < dataRows.length; number++) {
if (dataRows[number].row_id == 'lp_guardas') {
hayLinea = true
continue
}
}
if (hayLinea) {
popErrorAlert(window.language.Presupuestos.errores.lineaDuplicada, 'divAlarmasLineasPresupuesto');
break
}
var data = processRowData({ tipo_maquina: 'toner' }, 'lp_guardas', 'lp-guardas');
tableLineasPresupuesto.row.add(data).draw()
$('#lp_guardas_gramaje').empty()
var o = new Option("170", "170");
$('#lp_guardas_gramaje').append(o)
eventos_lp_guardas()
servicioGuardas(true)
break
default:
break
}
$("#tableLineasPresupuesto").DataTable().columns.adjust();
}
#processRowData(row, rowId, rowClass) {
var icon = ""
if (rowId == 'lp_bn') {
if (row.tipo_maquina == 'toner')
icon = '<?= site_url("themes/vuexy/img/safekat/presupuestos/icon_bn.png") ?>'
else
icon = '<?= site_url("themes/vuexy/img/safekat/presupuestos/icon_inkjet_bn.png") ?>'
}
else if (rowId == 'lp_bnhq') {
if (row.tipo_maquina == 'toner')
icon = '<?= site_url("themes/vuexy/img/safekat/presupuestos/icon_bnhq.png") ?>'
else
icon = '<?= site_url("themes/vuexy/img/safekat/presupuestos/icon_inkjet_bn.png") ?>'
}
else if (rowId == 'lp_color') {
if (row.tipo_maquina == 'toner')
icon = '<?= site_url("themes/vuexy/img/safekat/presupuestos/icon_color.png") ?>'
else
icon = '<?= site_url("themes/vuexy/img/safekat/presupuestos/icon_inkjet_color.png") ?>'
}
else if (rowId == 'lp_colorhq') {
if (row.tipo_maquina == 'toner')
icon = '<?= site_url("themes/vuexy/img/safekat/presupuestos/icon_colorhq.png") ?>'
else
icon = '<?= site_url("themes/vuexy/img/safekat/presupuestos/icon_inkjet_color.png") ?>'
}
else if (rowId == 'lp_cubierta')
icon = '<?= site_url("themes/vuexy/img/safekat/presupuestos/icon_cubierta.png") ?>'
else if (rowId == 'lp_sobrecubierta')
icon = '<?= site_url("themes/vuexy/img/safekat/presupuestos/icon_sobrecubierta.png") ?>'
else if (rowId == 'lp_guardas')
icon = '<?= site_url("themes/vuexy/img/safekat/presupuestos/icon_guardas.png") ?>'
else if (rowId == 'lp_rot_bn')
icon = '<?= site_url("themes/vuexy/img/safekat/presupuestos/icon_rotativa_bn.png") ?>'
else if (rowId == 'lp_rot_color')
icon = '<?= site_url("themes/vuexy/img/safekat/presupuestos/icon_rotativa_color.png") ?>'
const blank_line = (typeof row.tarifa_impresion_id === 'undefined') ? 1 : 0;
var data = {
'row_id': rowId,
'row_class': rowClass,
'tarifa_impresion_id': blank_line ? 0 : isNaN(parseInt(row.tarifa_impresion_id)) ? "" : parseInt(row.tarifa_impresion_id),
'maquina_ancho': blank_line ? 0 : isNaN(parseFloat(row.dimensiones_maquina[0])) ? "" : parseFloat(row.dimensiones_maquina[0]),
'maquina_alto': blank_line ? 0 : isNaN(parseFloat(row.dimensiones_maquina[1])) ? "" : parseFloat(row.dimensiones_maquina[1]),
'maquina_impresion_ancho': blank_line ? 0 : isNaN(parseFloat(row.dimensiones_maquina_impresion[0])) ? "" : parseFloat(row.dimensiones_maquina_impresion[0]),
'maquina_impresion_alto': blank_line ? 0 : isNaN(parseFloat(row.dimensiones_maquina_impresion[1])) ? "" : parseFloat(row.dimensiones_maquina_impresion[1]),
'formas': blank_line ? 0 : isNaN(parseInt(row.num_formas.value)) ? 0 : parseInt(row.num_formas.value),
'formas_v': blank_line ? 0 : isNaN(parseInt(row.num_formas.num_formas_verticales)) ? 0 : parseInt(row.num_formas.num_formas_verticales),
'formas_h': blank_line ? 0 : isNaN(parseInt(row.num_formas.num_formas_horizontales)) ? 0 : parseInt(row.num_formas.num_formas_horizontales),
'formas_orientacion': blank_line ? 0 : row.num_formas.posicion_formas,
'icon': icon,
'paginas': blank_line ? 0 : row.paginas,
'paginas_impresion': rowId == 'lp_guardas' ? row.paginas_impresion : 0,
'papel': blank_line ? "" : row.papel_generico_id,
'gramaje': blank_line ? "" : row.gramaje,
'papel_impresion': blank_line ? "" : row.papel_impresion,
'papel_impresion_id': blank_line ? "" : row.papel_impresion_id,
'maquina': blank_line ? "" : row.maquina,
'maquina_id': blank_line ? "" : row.maquina_id,
'tiempo': blank_line ? "" : row.tiempo_maquina,
'lomo': isNaN(parseFloat(row.mano)) ? "" : parseFloat(row.mano).toFixed(2),
'peso': isNaN(parseFloat(row.peso)) ? "" : parseFloat(row.peso).toFixed(2),
'total_linea': isNaN(parseFloat(row.total_impresion)) ? "" : parseFloat(row.total_impresion).toFixed(2),
'numeroPliegos': isNaN(parseFloat(row.pliegos_libro)) ? "" : parseFloat(row.pliegos_libro).toFixed(0),
'pliegosPedido': isNaN(parseFloat(row.pliegos_pedido)) ? "" : parseFloat(row.pliegos_pedido).toFixed(0),
'precioPliego': isNaN(parseFloat(row.precios_pliegos)) ? "" : parseFloat(row.precios_pliegos).toFixed(6),
'libro': isNaN(parseFloat(row.precio_libro)) ? "" : parseFloat(row.precio_libro).toFixed(2),
'totalPapelPedido': isNaN(parseFloat(row.precio_pedido)) ? "" : parseFloat(row.precio_pedido).toFixed(2),
'margenPapelPedido': isNaN(parseFloat(row.margen_papel_pedido)) ? "" : parseFloat(row.margen_papel_pedido).toFixed(2),
'click': isNaN(parseFloat(row.precio_click)) ? "" : parseFloat(row.precio_click).toFixed(6),
'totalClicks': isNaN(parseFloat(row.precio_click_pedido)) ? "" : parseFloat(row.precio_click_pedido).toFixed(2),
'margenClicks': isNaN(parseFloat(row.margen_click_pedido)) ? "" : parseFloat(row.margen_click_pedido).toFixed(2),
'horasMaquina': isNaN(parseFloat(row.horas_maquina)) ? "" : parseFloat(row.horas_maquina).toFixed(4),
'precioHora': isNaN(parseFloat(row.precio_hora)) ? "" : parseFloat(row.precio_hora).toFixed(2),
'precioImpresion': isNaN(parseFloat(row.precio_impresion_horas)) ? "" : parseFloat(row.precio_impresion_horas).toFixed(2),
'margenImpresion': isNaN(parseFloat(row.margen_impresion_horas)) ? "" : parseFloat(row.margen_impresion_horas).toFixed(2),
'maquinaTipo': row.tipo_maquina,
'check_papel_total': row.check_papel_total,
'check_impresion_total': row.check_impresion_total,
}
if (row.tipo_maquina == 'inkjet') {
data.numPagColor = row.paginas_color
data.aFavorFibra = row.a_favor_fibra
data.cobNegro = isNaN(parseFloat(row.datosTipologias.negro)) ? "" : parseFloat(row.datosTipologias.negro).toFixed(2)
data.cobCyan = isNaN(parseFloat(row.datosTipologias.cyan)) ? "" : parseFloat(row.datosTipologias.cyan).toFixed(2)
data.cobMagenta = isNaN(parseFloat(row.datosTipologias.magenta)) ? "" : parseFloat(row.datosTipologias.magenta).toFixed(2)
data.cobAmarillo = isNaN(parseFloat(row.datosTipologias.amarillo)) ? "" : parseFloat(row.datosTipologias.amarillo).toFixed(2)
data.gotaNegro = isNaN(parseFloat(row.datosTipologias.gota_negro)) ? "" : parseFloat(row.datosTipologias.gota_negro).toFixed(2)
data.gotaColor = isNaN(parseFloat(row.datosTipologias.gota_color)) ? "" : parseFloat(row.datosTipologias.gota_color).toFixed(2)
data.resolucion = isNaN(parseFloat(row.resolucion)) ? "" : parseFloat(row.resolucion).toFixed(0)
data.areaPaginas = isNaN(parseFloat(row.superficie)) ? "" : parseFloat(row.superficie).toFixed(2)
data.gotasNegro = isNaN(parseFloat(row.num_gotas_negro)) ? "" : parseFloat(row.num_gotas_negro).toFixed(0)
data.gotasCyan = isNaN(parseFloat(row.num_gotas_cyan)) ? "" : parseFloat(row.num_gotas_cyan).toFixed(0)
data.gotasMagenta = isNaN(parseFloat(row.num_gotas_magenta)) ? "" : parseFloat(row.num_gotas_magenta).toFixed(0)
data.gotasAmarillo = isNaN(parseFloat(row.num_gotas_amarillo)) ? "" : parseFloat(row.num_gotas_amarillo).toFixed(0)
data.precioPagNegro = isNaN(parseFloat(row.precio_pagina_negro)) ? "" : parseFloat(row.precio_pagina_negro).toFixed(6)
data.precioPagColor = isNaN(parseFloat(row.precio_pagina_color)) ? "" : parseFloat(row.precio_pagina_color).toFixed(6)
data.factorAltura = isNaN(parseFloat(row.factor_altura)) ? "" : parseFloat(row.factor_altura).toFixed(2)
data.factorAnchura = isNaN(parseFloat(row.factor_anchura)) ? "" : parseFloat(row.factor_anchura).toFixed(2)
data.paginasPliego = isNaN(parseFloat(row.paginas_por_pliego)) ? "" : parseFloat(row.paginas_por_pliego).toFixed(2)
if (rowId.includes('rot')) {
data.metrosMinuto = isNaN(parseFloat(row.maquina_velocidad)) ? "" : parseFloat(row.maquina_velocidad).toFixed(2)
data.metrosPapelLibro = isNaN(parseFloat(row.metros_papel_libro)) ? "" : parseFloat(row.metros_papel_libro).toFixed(2)
data.metrosPapelTotal = isNaN(parseFloat(row.metros_papel_total)) ? "" : parseFloat(row.metros_papel_total).toFixed(2)
data.velocidadCorte = isNaN(parseFloat(row.velocidad_corte)) ? "" : parseFloat(row.velocidad_corte).toFixed(2)
data.precioHoraCorte = isNaN(parseFloat(row.precio_hora_corte)) ? "" : parseFloat(row.precio_hora_corte).toFixed(2)
data.tiempoCorte = isNaN(parseFloat(row.tiempo_corte)) ? "" : parseFloat(row.tiempo_corte).toFixed(2)
data.totalCorte = isNaN(parseFloat(row.total_corte)) ? "" : parseFloat(row.total_corte).toFixed(2)
}
else {
data.totalCorte = 0
}
data.clicksLibro = isNaN(parseFloat(row.clicks_libro)) ? "" : parseFloat(row.clicks_libro).toFixed(0)
data.gTintaNegro = isNaN(parseFloat(row.peso_gotas_negro)) ? "" : parseFloat(row.peso_gotas_negro).toFixed(2)
data.gTintaCyan = isNaN(parseFloat(row.peso_gotas_cyan)) ? "" : parseFloat(row.peso_gotas_cyan).toFixed(2)
data.gTintaMagenta = isNaN(parseFloat(row.peso_gotas_magenta)) ? "" : parseFloat(row.peso_gotas_magenta).toFixed(2)
data.gTintaAmarillo = isNaN(parseFloat(row.peso_gotas_amarillo)) ? "" : parseFloat(row.peso_gotas_amarillo).toFixed(2)
data.clicksPedido = isNaN(parseFloat(row.clicks_pedido)) ? "" : parseFloat(row.clicks_pedido).toFixed(0)
data.totalClicksPedido = isNaN(parseFloat(row.precio_click_pedido)) ? "" : parseFloat(row.precio_click_pedido).toFixed(2)
data.totalTinta = isNaN(parseFloat(row.precio_tinta)) ? "" : parseFloat(row.precio_tinta).toFixed(2)
data.totalImpresion = isNaN(parseFloat(row.precio_click_pedido + row.precio_tinta + data.totalCorte)) ? "" : parseFloat(row.precio_click_pedido + row.precio_tinta + data.totalCorte).toFixed(2)
data.gTintaNegroPed = isNaN(parseFloat(row.peso_gotas_negro_pedido)) ? "" : parseFloat(row.peso_gotas_negro_pedido).toFixed(2)
data.gTintaCyanPed = isNaN(parseFloat(row.peso_gotas_cyan_pedido)) ? "" : parseFloat(row.peso_gotas_cyan_pedido).toFixed(2)
data.gTintaMagentaPed = isNaN(parseFloat(row.peso_gotas_magenta_pedido)) ? "" : parseFloat(row.peso_gotas_magenta_pedido).toFixed(2)
data.gTintaAmarilloPed = isNaN(parseFloat(row.peso_gotas_amarillo_pedido)) ? "" : parseFloat(row.peso_gotas_amarillo_pedido).toFixed(2)
if (!rowId.includes('rot')) {
data.cobCG = isNaN(parseFloat(row.datosTipologias.cg)) ? "" : parseFloat(row.datosTipologias.cg).toFixed(2)
data.gotasCG = isNaN(parseFloat(row.num_gotas_cg)) ? "" : parseFloat(row.num_gotas_cg).toFixed(2)
data.gTintaCG = isNaN(parseFloat(row.peso_gotas_cg)) ? "" : parseFloat(row.peso_gotas_cg).toFixed(2)
data.gTintaCGPed = isNaN(parseFloat(row.peso_gotas_cg_pedido)) ? "" : parseFloat(row.peso_gotas_cg_pedido).toFixed(2)
}
data.alto_click = row.alto_click
}
return data
}
#addEventosLineas(tipoLinea, isInkjet = false) {
$('#' + tipoLinea + '_papel').on("change", change_papelGenerico_lp_bn);
$('#' + tipoLinea + '_gramaje').on("focus", { mantenerSeleccion: true }, set_lp_bn_gramaje);
$('#' + tipoLinea + '_gramaje').on('change', function () {
var previous = $(this).data('val');
const selected = $("select#lp_bn_gramaje option:selected");
if (selected.text() != previous) {
clear_lp_bn(true)
}
});
$('#' + tipoLinea + '_papelImpresion').on("focus", set_lp_bn_papelImpresion);
$('#' + tipoLinea + '_maquina').on("focus", set_lp_bn_maquina);
$('#' + tipoLinea + '_maquina').on("change", change_lp_bn_maquina);
$('#' + tipoLinea + '_vercalculos').on("click", { rowId: 'lp_bn' }, verCalculosInkjet);
if (isInkjet) {
$('.' + tipoLinea + '-tipologia').on("change", change_lp_bn_tipologia);
$('#' + tipoLinea + '_defecto').on("click", por_defecto_lp_bn);
$('#' + tipoLinea + '_aFavorFibra').on("change", change_lp_bn_aFavorFibra);
}
}
}
export default LineasPresupuesto;

View File

@ -780,8 +780,18 @@ class PresupuestoCliente {
self.direcciones.cargarDatos(response.data.direcciones, response.data.datosGenerales);
self.disenioInterior.cargarDatos(response.data.interior, response.data.datosGenerales.papelInteriorDiferente);
self.disenioCubierta.cargarDatos(response.data.cubierta, response.data.guardas, response.data.sobrecubierta);
try{
self.disenioInterior.cargarDatos(response.data.interior, response.data.datosGenerales.papelInteriorDiferente);
}
catch(e){
console.log("Error al cargar diseño interior: " + e);
}
try{
self.disenioCubierta.cargarDatos(response.data.cubierta, response.data.guardas, response.data.sobrecubierta);
}
catch(e){
console.log("Error al cargar diseño cubierta: " + e);
}
setTimeout(() => {