terminada modificacion

This commit is contained in:
2025-04-04 17:03:08 +02:00
parent a0cb703991
commit cddf64b025
9 changed files with 129 additions and 58 deletions

View File

@ -68,7 +68,7 @@ class Chat {
}
if (this.chatHistoryBody[0]) {
console.log("History body");
//console.log("History body");
this.scrollbarChatHistory = new PerfectScrollbar(this.chatHistoryBody[0], {
wheelPropagation: false,
suppressScrollX: true,

View File

@ -120,9 +120,28 @@ class PresupuestoAdminEdit {
this.tiradasAlternativas.init();
this.resumen.init();
$('#btn_aceptar_revisado').on('click', function () {
this.resumen.updateTotales({ updateLP: true, updateServicios: true, updateEnvio: true });
$('#btn_ajustar_revisado').on('click', function () {
this.resumen.updateTotales({ updateLP: true, updateServicios: true, updateEnvio: true }, true);
}.bind(this));
$('#total_aceptado_revisado').on('change', function () {
let totalCostes = AutoNumeric.getAutoNumericElement($('#totalCostes')[0]);
let envio_base = AutoNumeric.getAutoNumericElement($('#precioEnvios')[0]);
let autoTotalAceptado = AutoNumeric.getAutoNumericElement($('#total_aceptado_revisado')[0]);
let total_aceptado_revisado = autoTotalAceptado.getNumber();
if (total_aceptado_revisado && total_aceptado_revisado != 0) {
const nuevoTotal = totalCostes.getNumber() + envio_base.getNumber();
if (total_aceptado_revisado < nuevoTotal) {
// Solo usá .set(), no .val() ni .html()
autoTotalAceptado.set(nuevoTotal);
total_aceptado_revisado = nuevoTotal;
}
totalMargenes = total_aceptado_revisado - nuevoTotal;
}
}.bind(this));
if (window.location.href.includes("edit")) {
@ -147,7 +166,7 @@ class PresupuestoAdminEdit {
target.removeClass('d-none');
}
});
$(document).on('update-presupuesto', this.updatePresupuesto.bind(this));
@ -380,9 +399,10 @@ class PresupuestoAdminEdit {
self.tipo_impresion.val(response.data.tipo_impresion);
self.POD.val(response.data.POD);
$('#total_aceptado_revisado').val(response.data.total_aceptado_revisado);
AutoNumeric.getAutoNumericElement($('#total_aceptado_revisado')[0]).set(response.data.total_aceptado_revisado);
$('#aprobado_by_at').html(response.data.aprobado_by_at);
$('#created_by').html(response.data.created_by);
$('#updated_by').html(response.data.updated_by);
$('#created_at').html(response.data.created_at);
@ -628,7 +648,7 @@ class PresupuestoAdminEdit {
const svgData = serializer.serializeToString(shapeSvgEl);
const svgBlob = new Blob([svgData], { type: 'image/svg+xml;charset=utf-8' });
const svgUrl = URL.createObjectURL(svgBlob);
const img = new Image(shapeSvgEl.getBoundingClientRect().width,shapeSvgEl.getBoundingClientRect().height);
const img = new Image(shapeSvgEl.getBoundingClientRect().width, shapeSvgEl.getBoundingClientRect().height);
img.onload = () => {
const scaleFactor = 3; // Increase resolution (e.g., 2x, 3x)
const canvas = document.createElement('canvas');
@ -639,7 +659,7 @@ class PresupuestoAdminEdit {
canvas.height = height * scaleFactor;
const ctx = canvas.getContext('2d');
ctx.scale(scaleFactor, scaleFactor);
ctx.drawImage(img, 0,0,width,height);
ctx.drawImage(img, 0, 0, width, height);
const pngUrl = canvas.toDataURL('image/png');
const downloadLink = document.createElement('a');
downloadLink.href = pngUrl;

View File

@ -41,14 +41,13 @@ class Envios {
processing: true,
autoWidth: true,
responsive: true,
order: [[0, "asc"]],
pageLength: 20,
lengthChange: false,
searching: false,
paging: false,
info: false,
scrollX: true,
ordering: false,
columns: [
{ 'data': 'tarifa_id' },
{ 'data': 'cantidad' },
@ -87,10 +86,10 @@ class Envios {
{
orderable: false,
searchable: false,
targets: [$('#tableOfDireccionesEnvio').find("tr:first th").length - 1]
// all columns
targets: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
//targets: [$('#tableOfDireccionesEnvio').find("tr:first th").length - 1]
},
{ "orderData": [0], "targets": 0 },
],
language: {
url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"

View File

@ -26,22 +26,22 @@ class Resumen {
// Mapear los valores a los elementos HTML por ID
$("#totalCostePapel").val(resumen.total_coste_papel || 0);
$("#totalCostePapel").html(resumen.total_coste_papel || 0);
$("#porcentajeMargenPapel").val(resumen.total_margenPercent_papel ? resumen.total_margenPercent_papel: 0);
$("#porcentajeMargenPapel").html(resumen.total_margenPercent_papel ? resumen.total_margenPercent_papel: 0);
$("#porcentajeMargenPapel").val(resumen.total_margenPercent_papel ? resumen.total_margenPercent_papel : 0);
$("#porcentajeMargenPapel").html(resumen.total_margenPercent_papel ? resumen.total_margenPercent_papel : 0);
$("#margenPapel").val(resumen.total_margen_papel || 0);
$("#margenPapel").html(resumen.total_margen_papel || 0);
$("#totalCosteImpresion").val(resumen.total_coste_impresion || 0);
$("#totalCosteImpresion").html(resumen.total_coste_impresion || 0);
$("#porcentajeMargenImpresion").val(resumen.total_margenPercent_impresion ? resumen.total_margenPercent_impresion: 0);
$("#porcentajeMargenImpresion").html(resumen.total_margenPercent_impresion ? resumen.total_margenPercent_impresion: 0);
$("#porcentajeMargenImpresion").val(resumen.total_margenPercent_impresion ? resumen.total_margenPercent_impresion : 0);
$("#porcentajeMargenImpresion").html(resumen.total_margenPercent_impresion ? resumen.total_margenPercent_impresion : 0);
$("#margenImpresion").val(resumen.total_margen_impresion || 0);
$("#margenImpresion").html(resumen.total_margen_impresion || 0);
$("#totalServicios").html(resumen.total_coste_servicios || 0);
$("#totalServicios").val(resumen.total_coste_servicios || 0);
$("#porcentajeMargenServicios").val(resumen.total_margenPercent_servicios ? resumen.total_margenPercent_servicios: 0);
$("#porcentajeMargenServicios").html(resumen.total_margenPercent_servicios ? resumen.total_margenPercent_servicios: 0);
$("#porcentajeMargenServicios").val(resumen.total_margenPercent_servicios ? resumen.total_margenPercent_servicios : 0);
$("#porcentajeMargenServicios").html(resumen.total_margenPercent_servicios ? resumen.total_margenPercent_servicios : 0);
$("#margenServicios").val(resumen.total_margen_servicios || 0);
$("#margenServicios").html(resumen.total_margen_servicios || 0);
@ -53,10 +53,10 @@ class Resumen {
$("#margenEnvios").val(resumen.total_margen_envios || 0);
$("#totalCostes").html(resumen.total_costes || 0).val();
$("#porcentajeMargen").html(resumen.porcentajeMargen ? resumen.porcentajeMargen: 0);
$("#porcentajeMargen").html(resumen.porcentajeMargen ? resumen.porcentajeMargen : 0);
$("#totalMargenes").html(resumen.total_margenes || 0);
$("#totalCostes").val(resumen.total_costes || 0);
$("#porcentajeMargen").val(resumen.porcentajeMargen ? resumen.porcentajeMargen: 0);
$("#porcentajeMargen").val(resumen.porcentajeMargen ? resumen.porcentajeMargen : 0);
$("#totalMargenes").val(resumen.total_margenes || 0);
$("#totalAntesDescuento").html(resumen.total_antes_descuento || 0);
@ -64,14 +64,14 @@ class Resumen {
$("#descuentoTotal").html(resumen.total_descuento || 0);
$("#totalDespuesDecuento").html(resumen.total_presupuesto || 0).trigger("change")
$("#precioUnidadPresupuesto").html(resumen.total_precio_unidad || 0);
$("#factor").html(resumen.total_factor|| 0);
$("#factor_ponderado").html(resumen.total_factor_ponderado|| 0);
$("#factor").html(resumen.total_factor || 0);
$("#factor_ponderado").html(resumen.total_factor_ponderado || 0);
$("#totalAntesDescuento").val(resumen.total_antes_descuento || 0);
$("#descuentoTotal").val(resumen.total_descuento || 0);
$("#totalDespuesDecuento").val(resumen.total_presupuesto || 0).trigger("change")
$("#precioUnidadPresupuesto").val(resumen.total_precio_unidad || 0);
$("#factor").val(resumen.total_factor|| 0);
$("#factor_ponderado").val(resumen.total_factor_ponderado|| 0);
$("#factor").val(resumen.total_factor || 0);
$("#factor_ponderado").val(resumen.total_factor_ponderado || 0);
if (resumen.total_aceptado !== undefined) {
$("#totalAceptado").html(resumen.total_aceptado || 0);
@ -94,7 +94,7 @@ class Resumen {
async updateTotales(data = {}) {
async updateTotales(data = {}, ajustar = false) {
const self = this;
@ -181,7 +181,7 @@ class Resumen {
$('#porcentajeMargenImpresion').html(porcentajeMargenImpresion).val(porcentajeMargenImpresion.toFixed(2))
$('#totalCosteImpresion').html(totalImpresion).val(totalImpresion.toFixed(2))
$('#margenImpresion').html(margenImpresion).val(margenImpresion.toFixed(2))
}
else {
@ -297,18 +297,45 @@ class Resumen {
margenEnvios = parseFloat($('#margenEnvios').attr('val'))
}
let totalCostes = parseFloat(totalPapel.toFixed(2)) + parseFloat(totalImpresion.toFixed(2))
let totalCostes = parseFloat(totalPapel.toFixed(2)) + parseFloat(totalImpresion.toFixed(2))
+ parseFloat(totalServicios.toFixed(2)) + parseFloat(totalEnvios.toFixed(2))
let totalMargenes = parseFloat(margenPapel.toFixed(2)) + parseFloat(margenImpresion.toFixed(2)) + parseFloat(margenServicios.toFixed(2)) + parseFloat(margenEnvios.toFixed(2))
let total_aceptado_revisado = AutoNumeric.getAutoNumericElement($('#total_aceptado_revisado')[0]).getNumber()
if(total_aceptado_revisado != '' && total_aceptado_revisado != undefined &&
total_aceptado_revisado != null && total_aceptado_revisado != 0){
if(total_aceptado_revisado < totalCostes){
total_aceptado_revisado = totalCoste ;
let autoTotalAceptado = AutoNumeric.getAutoNumericElement($('#total_aceptado_revisado')[0]);
let total_aceptado_revisado = autoTotalAceptado.getNumber();
if (ajustar) {
if (total_aceptado_revisado && total_aceptado_revisado != 0) {
const nuevoTotal = totalCostes + totalEnvios_base;
if (total_aceptado_revisado < nuevoTotal) {
if($('#total_aceptado')){
$('#div_ajustar_error').removeClass('d-none');
$('#error_recalcular_margen').hide().empty().
html('El presupuesto está confirmado y el total coste + precio de envio es menor que el total aceptado y revisado').
fadeIn("slow", function(){
setTimeout(function(){
$('#div_ajustar_error').addClass('d-none');
}, 5000);
});
}
else{
autoTotalAceptado.set(nuevoTotal);
total_aceptado_revisado = nuevoTotal;
}
}
totalMargenes = parseFloat(total_aceptado_revisado)- totalCostes;
if(!($('#total_aceptado') && total_aceptado_revisado < nuevoTotal)){
totalMargenes = total_aceptado_revisado - nuevoTotal;
}
}
}
let porcentajeMargen = totalCostes + totalMargenes > 0 ? (100 * totalMargenes / (totalCostes + totalMargenes)).toFixed(0) : 0
@ -319,11 +346,10 @@ class Resumen {
if ($('#total_descuentoPercent').val() < 0) {
$('#total_descuentoPercent').val(0)
}
let totalAntesDescuento = totalCostes + totalMargenes + parseFloat(totalEnvios.toFixed(2)) + totalEnvios_base;
let totalAntesDescuento = totalCostes + totalMargenes + totalEnvios_base;
let totalDescuento = totalAntesDescuento * parseInt($('#total_descuentoPercent').val() || 0) / 100
let totalPresupuesto = totalAntesDescuento - totalDescuento; // para el calculo del precio_u solo se tiene en cuenta el base
let precioUnidad = totalPresupuesto / parseInt($('#tirada').val())
totalPresupuesto += totalEnvios;
$('#totalAntesDescuento').html(totalAntesDescuento).val(totalAntesDescuento.toFixed(2))
$('#descuentoTotal').html(totalDescuento).val(totalDescuento.toFixed(2))
@ -381,6 +407,12 @@ class Resumen {
data.total_aceptado = $('#totalDespuesDecuento').val();
}
let autoTotalAceptado = AutoNumeric.getAutoNumericElement($('#total_aceptado_revisado')[0]);
let total_aceptado_revisado = autoTotalAceptado.getNumber();
if (total_aceptado_revisado && total_aceptado_revisado != 0) {
data.total_aceptado_revisado = total_aceptado_revisado;
}
return data;
}