mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
terminada modificacion
This commit is contained in:
@ -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,
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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"
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user