Merge branch 'fix/confirmar_presupuesto' into 'main'

Fix/confirmar presupuesto

See merge request jjimenez/safekat!568
This commit is contained in:
2025-02-23 20:26:12 +00:00
5 changed files with 73 additions and 57 deletions

10
.vscode/sftp.json vendored
View File

@ -5,19 +5,19 @@
"remotePath": "/", "remotePath": "/",
"uploadOnSave": true, "uploadOnSave": true,
"useTempFile": false, "useTempFile": false,
"openSsh": false, "openSsh": false,
"profiles": { "profiles": {
"jjo": { "jjo": {
"host": "sk-jjo.imnavajas.es", "host": "sk-jjo.imnavajas.es",
"username": "sk-jjo", "username": "sk-jjo",
"password": "Snwi1660%" "password": "Snwi1660%"
}, },
"imn": { "imn": {
"host": "sk-imn.imnavajas.es", "host": "sk-imn.imnavajas.es",
"username": "sk-imn", "username": "sk-imn",
"password": "GVBbgdwlvn7_p02?" "password": "GVBbgdwlvn7_p02?"
}, },
"dev":{ "dev":{
"host": "sk-dev.imnavajas.es", "host": "sk-dev.imnavajas.es",

View File

@ -1439,6 +1439,9 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$data['lsc'] = $presupuesto->lomo_sobrecubierta; $data['lsc'] = $presupuesto->lomo_sobrecubierta;
$data['eb'] = $presupuesto->envio_base; $data['eb'] = $presupuesto->envio_base;
$data['state'] = intval($presupuesto->estado_id); $data['state'] = intval($presupuesto->estado_id);
if($presupuesto->estado_id == 2){ // confirmado
$data['datosGenerales']['selectedTirada'] = $presupuesto->tirada;
}
$data['datosGenerales']['titulo'] = $presupuesto->titulo; $data['datosGenerales']['titulo'] = $presupuesto->titulo;
$data['datosGenerales']['autor'] = $presupuesto->autor; $data['datosGenerales']['autor'] = $presupuesto->autor;
$data['datosGenerales']['isbn'] = $presupuesto->isbn; $data['datosGenerales']['isbn'] = $presupuesto->isbn;
@ -2403,8 +2406,8 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
if ($extra_info) { if ($extra_info) {
$totalPapel -= $margenPapel; /*$totalPapel -= $margenPapel;
$totalImpresion -= $margenImpresion; $totalImpresion -= $margenImpresion;*/
$porcentajeMargenPapel = is_numeric($margenPapel / ($totalPapel) * 100.0) ? $margenPapel / ($totalPapel) * 100.0 : 0; $porcentajeMargenPapel = is_numeric($margenPapel / ($totalPapel) * 100.0) ? $margenPapel / ($totalPapel) * 100.0 : 0;
$porcentajeMargenImpresion = is_numeric($margenImpresion / ($totalImpresion) * 100.0) ? $margenImpresion / ($totalImpresion) * 100.0 : 0; $porcentajeMargenImpresion = is_numeric($margenImpresion / ($totalImpresion) * 100.0) ? $margenImpresion / ($totalImpresion) * 100.0 : 0;
@ -2880,11 +2883,13 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
if (count($linea) == 0) if (count($linea) == 0)
return; return;
$totalPapel += round($linea['precio_pedido'], 2); $totalPapel += round($linea['precio_pedido'], 2);
$totalPapel -= round($linea['margen_papel_pedido'], 2);
$margenPapel += round($linea['margen_papel_pedido'], 2); $margenPapel += round($linea['margen_papel_pedido'], 2);
$sumForFactor += round($linea['precio_pedido'], 2); $sumForFactor += round($linea['precio_pedido'], 2);
$sumForFactor -= round($linea['precio_pedido'], 2); $sumForFactor -= round($linea['precio_pedido'], 2);
$totalImpresion += round($linea['precio_click_pedido'], 2); $totalImpresion += round($linea['precio_click_pedido'], 2);
$totalImpresion -= round($linea['margen_click_pedido'], 2);
$sumForFactor += round($linea['precio_click_pedido'], 2); $sumForFactor += round($linea['precio_click_pedido'], 2);
if ($linea['tipo_maquina'] == 'inkjet') { if ($linea['tipo_maquina'] == 'inkjet') {
@ -2897,7 +2902,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$margenImpresion += round($linea['precio_impresion_horas'], 2); // coste de maquina y magen son MARGEN, no COSTE $margenImpresion += round($linea['precio_impresion_horas'], 2); // coste de maquina y magen son MARGEN, no COSTE
$margenImpresion += round($linea['margen_impresion_horas'], 2); $margenImpresion += round($linea['margen_impresion_horas'], 2);
$margenImpresion += round($linea['margen_click_pedido'], 2); $margenImpresion += round($linea['margen_click_pedido'], 2);
$sumForFactor -= round($linea['margen_click_pedido'], 2);
} }
protected function calcular_lomo($lineas, $lomo_inicial) protected function calcular_lomo($lineas, $lomo_inicial)

View File

@ -24,38 +24,38 @@ class Resumen {
cargar(resumen) { cargar(resumen) {
// Mapear los valores a los elementos HTML por ID // Mapear los valores a los elementos HTML por ID
$("#totalCostePapel").text(resumen.total_coste_papel + "€" || "0€"); $("#totalCostePapel").text(resumen.total_coste_papel.toString().replace('.', ',') + "€" || "0€");
$("#porcentajeMargenPapel").text(resumen.total_margenPercent_papel ? resumen.total_margenPercent_papel + "%" : "0%"); $("#porcentajeMargenPapel").text(resumen.total_margenPercent_papel ? resumen.total_margenPercent_papel.toString().replace('.', ',') + "%" : "0%");
$("#margenPapel").text(resumen.total_margen_papel + "€" || "0€"); $("#margenPapel").text(resumen.total_margen_papel.toString().replace('.', ',')+ "€" || "0€");
$("#totalCosteImpresion").text(resumen.total_coste_impresion + "€" || "0€"); $("#totalCosteImpresion").text(resumen.total_coste_impresion.toString().replace('.', ',') + "€" || "0€");
$("#porcentajeMargenImpresion").text(resumen.total_margenPercent_impresion ? resumen.total_margenPercent_impresion + "%" : "0%"); $("#porcentajeMargenImpresion").text(resumen.total_margenPercent_impresion ? resumen.total_margenPercent_impresion.toString().replace('.', ',') + "%" : "0%");
$("#margenImpresion").text(resumen.total_margen_impresion + "€" || "0€"); $("#margenImpresion").text(resumen.total_margen_impresion.toString().replace('.', ',') + "€" || "0€");
$("#totalServicios").text(resumen.total_coste_servicios + "€" || "0€"); $("#totalServicios").text(resumen.total_coste_servicios.toString().replace('.', ',') + "€" || "0€");
$("#porcentajeMargenServicios").text(resumen.total_margenPercent_servicios ? resumen.total_margenPercent_servicios + "%" : "0%"); $("#porcentajeMargenServicios").text(resumen.total_margenPercent_servicios ? resumen.total_margenPercent_servicios.toString().replace('.', ',') + "%" : "0%");
$("#margenServicios").text(resumen.total_margen_servicios + "€" || "0€"); $("#margenServicios").text(resumen.total_margen_servicios + "€" || "0€");
//$("#costeEnvios").text(resumen.total_coste_envios + "€" || "0€"); //$("#costeEnvios").text(resumen.total_coste_envios + "€" || "0€");
$("#totalEnvios").text(resumen.total_coste_envios + "€" || "0€"); $("#totalEnvios").text(resumen.total_coste_envios.toString().replace('.', ',') + "€" || "0€");
$("#margenEnvios").text(resumen.total_margen_envios + "€" || "0€"); $("#margenEnvios").text(resumen.total_margen_envios.toString().replace('.', ',') + "€" || "0€");
$("#totalCostes").text(resumen.total_costes + "€" || "0€"); $("#totalCostes").text(resumen.total_costes.toString().replace('.', ',') + "€" || "0€");
$("#porcentajeMargen").text(resumen.porcentajeMargen ? resumen.porcentajeMargen + "%" : "0%"); $("#porcentajeMargen").text(resumen.porcentajeMargen ? resumen.porcentajeMargen.toString().replace('.', ',') + "%" : "0%");
$("#totalMargenes").text(resumen.total_margenes + "€" || "0€"); $("#totalMargenes").text(resumen.total_margenes.toString().replace('.', ',') + "€" || "0€");
$("#totalAntesDescuento").text(resumen.total_antes_descuento + "€" || "0€"); $("#totalAntesDescuento").text(resumen.total_antes_descuento.toString().replace('.', ',') + "€" || "0€");
$("#total_descuentoPercent").val(resumen.total_descuentoPercent || "0"); $("#total_descuentoPercent").val(resumen.total_descuentoPercent.toString().replace('.', ',') || "0");
$("#descuentoTotal").text(resumen.total_descuento + "€" || "0€"); $("#descuentoTotal").text(resumen.total_descuento.toString().replace('.', ',') + "€" || "0€");
$("#totalDespuesDecuento").text(resumen.total_presupuesto + "€" || "0€").trigger("change") $("#totalDespuesDecuento").text(resumen.total_presupuesto.toString().replace('.', ',') + "€" || "0€").trigger("change")
$("#precioUnidadPresupuesto").text(resumen.total_precio_unidad + "€" || "0€"); $("#precioUnidadPresupuesto").text(resumen.total_precio_unidad.toString().replace('.', ',') + "€" || "0€");
$("#factor").text(resumen.total_factor || "0"); $("#factor").text(resumen.total_factor.toString().replace('.', ',') || "0");
$("#factor_ponderado").text(resumen.total_factor_ponderado || "0"); $("#factor_ponderado").text(resumen.total_factor_ponderado.toString().replace('.', ',') || "0");
if (resumen.total_aceptado !== undefined) { if (resumen.total_aceptado !== undefined) {
$("#totalAceptado").val(resumen.total_aceptado + "€" || "0€"); $("#totalAceptado").val(resumen.total_aceptado.toString().replace('.', ',') + "€" || "0€");
} }
} }
update() { update() {
@ -122,7 +122,7 @@ class Resumen {
} }
if (rowData.check_impresion_total) { if (rowData.check_impresion_total) {
costeMaquinaHoras += parseFloat($('#' + rowData.row_id + '_precioImpresion').val()) costeMaquinaHoras += parseFloat($('#' + rowData.row_id + '_precioImpresion').val())
margenPorHoras += parseFloat($('#' + rowData.row_id + '_margenImpresion').val()) margenPorHoras += parseFloat($('#' + rowData.row_id + '_margenImpresion').val())
totalImpresion += parseFloat($('#' + rowData.row_id + '_totalClicks').val()) totalImpresion += parseFloat($('#' + rowData.row_id + '_totalClicks').val())
@ -135,7 +135,7 @@ class Resumen {
totalImpresion += parseFloat(rowData.totalCorte)?? 0; totalImpresion += parseFloat(rowData.totalCorte)?? 0;
//sumForFactor += (parseFloat(rowData.totalTinta) + parseFloat(rowData.totalCorte)) //sumForFactor += (parseFloat(rowData.totalTinta) + parseFloat(rowData.totalCorte))
} }
//sumForFactor -= parseFloat($('#' + rowData.row_id + '_margenClicks').val()) //sumForFactor -= parseFloat($('#' + rowData.row_id + '_margenClicks').val())
/*if (!isNaN(parseFloat($('#' + rowData.row_id + '_totalTinta').val()))) { /*if (!isNaN(parseFloat($('#' + rowData.row_id + '_totalTinta').val()))) {
@ -183,7 +183,7 @@ class Resumen {
if (typeof $("#tableOfServiciosEncuadernacion").DataTable() !== 'undefined' && $("#tableOfServiciosEncuadernacion").DataTable().rows().count() > 0) { if (typeof $("#tableOfServiciosEncuadernacion").DataTable() !== 'undefined' && $("#tableOfServiciosEncuadernacion").DataTable().rows().count() > 0) {
$('#tableOfServiciosEncuadernacion').DataTable().rows().every(function (rowIdx, tableLoop, rowLoop) { $('#tableOfServiciosEncuadernacion').DataTable().rows().every(function (rowIdx, tableLoop, rowLoop) {
let rowData = this.data(); let rowData = this.data();
let total_servicio = self.roundToTwoDecimals(parseFloat(rowData.precio_total)); let total_servicio = self.roundToTwoDecimals(parseFloat(rowData.precio_total));
let margen_servicio = parseFloat(rowData.margen); let margen_servicio = parseFloat(rowData.margen);
totalServicios += total_servicio totalServicios += total_servicio
let base = self.roundToTwoDecimals(total_servicio / (1 + margen_servicio / 100.0)); let base = self.roundToTwoDecimals(total_servicio / (1 + margen_servicio / 100.0));
@ -313,36 +313,36 @@ class Resumen {
$('#factor').attr('val', ((totalPresupuesto - totalEnvios - margenEnvios) / sumForFactor).toFixed(2)) $('#factor').attr('val', ((totalPresupuesto - totalEnvios - margenEnvios) / sumForFactor).toFixed(2))
$('#factor_ponderado').text(this.addSeparatorsNF(((totalPresupuesto - totalEnvios - margenEnvios) / sumForFactorPonderado).toFixed(2), ".", ",", ".")) $('#factor_ponderado').text(this.addSeparatorsNF(((totalPresupuesto - totalEnvios - margenEnvios) / sumForFactorPonderado).toFixed(2), ".", ",", "."))
$('#factor_ponderado').attr('val', ((totalPresupuesto - totalEnvios - margenEnvios) / sumForFactorPonderado).toFixed(2)) $('#factor_ponderado').attr('val', ((totalPresupuesto - totalEnvios - margenEnvios) / sumForFactorPonderado).toFixed(2))
} }
getData(){ getData(){
let data = { let data = {
'total_coste_papel': $('#totalCostePapel').text().replace('€', '').replace('.', '').replace(',', '.'), 'total_coste_papel': $('#totalCostePapel').text().replace('€', '').replace(',', '.'),
'total_margen_papel': $('#margenPapel').text().replace('€', '').replace('.', '').replace(',', '.'), 'total_margen_papel': $('#margenPapel').text().replace('€', '').replace(',', '.'),
'total_margenPercent_papel': $('#porcentajeMargenPapel').text().replace('%', '').replace('.', '').replace(',', '.'), 'total_margenPercent_papel': $('#porcentajeMargenPapel').text().replace('%', '').replace(',', '.'),
'total_coste_impresion': $('#totalCosteImpresion').text().replace('€', '').replace('.', '').replace(',', '.'), 'total_coste_impresion': $('#totalCosteImpresion').text().replace('€', '').replace(',', '.'),
'total_margen_impresion': $('#margenImpresion').text().replace('€', '').replace('.', '').replace(',', '.'), 'total_margen_impresion': $('#margenImpresion').text().replace('€', '').replace(',', '.'),
'total_margenPercent_impresion': $('#porcentajeMargenImpresion').text().replace('%', '').replace('.', '').replace(',', '.'), 'total_margenPercent_impresion': $('#porcentajeMargenImpresion').text().replace('%', '').replace(',', '.'),
'total_coste_servicios': $('#totalServicios').text().replace('€', '').replace('.', '').replace(',', '.'), 'total_coste_servicios': $('#totalServicios').text().replace('€', '').replace(',', '.'),
'total_margen_servicios': $('#margenServicios').text().replace('€', '').replace('.', '').replace(',', '.'), 'total_margen_servicios': $('#margenServicios').text().replace('€', '').replace(',', '.'),
'total_margenPercent_servicios': $('#porcentajeMargenServicios').text().replace('%', '').replace('.', '').replace(',', '.'), 'total_margenPercent_servicios': $('#porcentajeMargenServicios').text().replace('%', '').replace(',', '.'),
'total_coste_envios': $('#totalEnvios').text().replace('€', '').replace('.', '').replace(',', '.'), 'total_coste_envios': $('#totalEnvios').text().replace('€', '').replace(',', '.'),
'total_margen_envios': $('#margenEnvios').text().replace('€', '').replace('.', '').replace(',', '.'), 'total_margen_envios': $('#margenEnvios').text().replace('€', '').replace(',', '.'),
'total_costes': $('#totalCostes').text().replace('€', '').replace('.', '').replace(',', '.'), 'total_costes': $('#totalCostes').text().replace('€', '').replace(',', '.'),
'total_margenes': $('#totalMargenes').text().replace('€', '').replace('.', '').replace(',', '.'), 'total_margenes': $('#totalMargenes').text().replace('€', '').replace(',', '.'),
'total_antes_descuento': $('#totalAntesDescuento').text().replace('€', '').replace('.', '').replace(',', '.'), 'total_antes_descuento': $('#totalAntesDescuento').text().replace('€', '').replace(',', '.'),
'total_descuento': $('#descuentoTotal').text().replace('€', '').replace('.', '').replace(',', '.'), 'total_descuento': $('#descuentoTotal').text().replace('€', '').replace(',', '.'),
'total_descuentoPercent': $('#total_descuentoPercent').val().replace('€', '').replace('.', '').replace(',', '.'), 'total_descuentoPercent': $('#total_descuentoPercent').val().replace('€', '').replace(',', '.'),
'total_presupuesto': $('#totalDespuesDecuento').text().replace('€', '').replace('.', '').replace(',', '.'), 'total_presupuesto': $('#totalDespuesDecuento').text().replace('€', '').replace(',', '.'),
'total_precio_unidad': $('#precioUnidadPresupuesto').text().replace('€', '').replace('.', '').replace(',', '.'), 'total_precio_unidad': $('#precioUnidadPresupuesto').text().replace('€', '').replace(',', '.'),
'total_factor': $('#factor').text().replace(/,/g, '.'), 'total_factor': $('#factor').text().replace(/,/g, '.'),
'total_factor_ponderado': $('#factor_ponderado').text().replace(/,/g, '.') 'total_factor_ponderado': $('#factor_ponderado').text().replace(/,/g, '.')
@ -350,9 +350,9 @@ class Resumen {
if($('#confirmar_presupuesto').prop('checked')){ if($('#confirmar_presupuesto').prop('checked')){
data.confirmar = '1'; data.confirmar = '1';
data.total_aceptado = $('#totalDespuesDecuento').text().replace('€', '').replace('.', '').replace(',', '.'); data.total_aceptado = $('#totalDespuesDecuento').text().replace('€', '').replace(',', '.');
} }
return data; return data;
} }

View File

@ -74,6 +74,8 @@ class DatosGenerales {
this.rl_retractilado = $("#rl_retractilado"); this.rl_retractilado = $("#rl_retractilado");
this.rl_retractilado5 = $("#rl_retractilado5"); this.rl_retractilado5 = $("#rl_retractilado5");
this.selectedTirada = null;
this.cargando = false; this.cargando = false;
this.initValidation(); this.initValidation();
@ -547,6 +549,10 @@ class DatosGenerales {
this.cliente.setOption(datos.clienteId, datos.clienteNombre); this.cliente.setOption(datos.clienteId, datos.clienteNombre);
this.cliente.setVal(datos.clienteId); this.cliente.setVal(datos.clienteId);
if(datos.selectedTirada){
this.selectedTirada = datos.selectedTirada;
}
$(this.cliente).trigger('change'); $(this.cliente).trigger('change');
if (datos.excluirRotativa) { if (datos.excluirRotativa) {

View File

@ -238,7 +238,12 @@ class Resumen {
this.paginas.text(this.datosGenerales.paginas.val()); this.paginas.text(this.datosGenerales.paginas.val());
this.paginasColor.text(this.datosGenerales.paginasColor.val()); this.paginasColor.text(this.datosGenerales.paginasColor.val());
this.paginasNegro.text(this.datosGenerales.paginasNegro.val()); this.paginasNegro.text(this.datosGenerales.paginasNegro.val());
this.tirada.text(parseInt($($('.check-tirada-envio:checked')[0]).attr('tirada'))); if(this.datosGenerales.selectedTirada){
this.tirada.text(this.datosGenerales.selectedTirada);
}
else{
this.tirada.text(parseInt($($('.check-tirada-envio:checked')[0]).attr('tirada')));
}
this.prototipo.text(this.datosGenerales.prototipo.is(':checked') ? 'Sí' : 'No'); this.prototipo.text(this.datosGenerales.prototipo.is(':checked') ? 'Sí' : 'No');
const HQ = this.disenioInterior.getIsHq(); const HQ = this.disenioInterior.getIsHq();
@ -307,7 +312,7 @@ class Resumen {
precio_u_text = precio_u_text.replace('€/ud', ''); precio_u_text = precio_u_text.replace('€/ud', '');
const base = tarjetaPrecio.find('.tarjeta-tiradas-precios-precio').attr('data'); const base = tarjetaPrecio.find('.tarjeta-tiradas-precios-precio').attr('data');
let base_text = this.#changeDecimalFormat(base); let base_text = this.#changeDecimalFormat(parseFloat(base).toFixed(2));
const iva_porcentaje = parseInt(this.datosGenerales.ivaReducido.find('option:selected').val()) == 1 ? 0.04 : 0.21; const iva_porcentaje = parseInt(this.datosGenerales.ivaReducido.find('option:selected').val()) == 1 ? 0.04 : 0.21;
const iva = (parseFloat(base) * iva_porcentaje).toFixed(2); const iva = (parseFloat(base) * iva_porcentaje).toFixed(2);