diff --git a/ci4/app/Controllers/Presupuestos/Presupuestocliente.php b/ci4/app/Controllers/Presupuestos/Presupuestocliente.php
index e7741ab0..b25d3db9 100755
--- a/ci4/app/Controllers/Presupuestos/Presupuestocliente.php
+++ b/ci4/app/Controllers/Presupuestos/Presupuestocliente.php
@@ -605,8 +605,16 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
}
}
+ // para el calculo del precio unidad, sólo se tiene en cuenta el envío base
+ for ($i = 0; $i < count($tirada); $i++) {
+ $coste_envio = 0.0;
+ $coste_envio += ($return_data['eb'][$i] / $tirada[$i]);
+ $return_data['precio_u'][$i] = round(floatval($return_data['precio_u'][$i]) + $coste_envio, 4);
+ }
$envio_base = true;
+ $coste_envio = 0.0; // se inicializa para calcular los costes de envíos restantes si es que hay
+ $return_data['coste_envio'] = [];
if (count($direcciones) > 0) {
for ($i = 0; $i < count($tirada); $i++) {
@@ -614,8 +622,6 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
foreach ($direcciones as $direccion) {
// El primer envio no se calcula ya que se añade el base
if ($envio_base) {
- //aporte del envio al precio unidad
- $coste_envio += ($return_data['eb'][$i] / $tirada[$i]);
$envio_base = false;
continue;
}
@@ -651,19 +657,17 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
];
return $return_data;
} else {
- //aporte del envio al precio unidad
- $coste_envio += ($coste_direccion->coste / $tirada[$i]);
+ // Se añade a los costes de envío
+ $coste_envio += $coste_direccion->coste;
}
}
- $return_data['precio_u'][$i] = round(floatval($return_data['precio_u'][$i]) + $coste_envio, 4);
+
+ $return_data['coste_envio'][$i] = round($coste_envio, 2);
}
- } else {
- for ($i = 0; $i < count($tirada); $i++) {
- $coste_envio = 0.0;
- $coste_envio += ($return_data['eb'][$i] / $tirada[$i]);
- $return_data['precio_u'][$i] = round(floatval($return_data['precio_u'][$i]) + $coste_envio, 4);
- }
- }
+ }
+
+
+
if ($this->request) {
if ($this->request->isAJAX())
return $this->respond($return_data);
@@ -1158,6 +1162,18 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$resultado_presupuesto['info']['totales'][$i]['coste_envio'] = 0.0;
$resultado_presupuesto['info']['totales'][$i]['margen_envio'] = 0.0;
}
+
+ // para el calculo del precio unidad, sólo se tiene en cuenta el envío base
+ for ($i = 0; $i < count($tirada); $i++) {
+ $coste_envio = 0.0;
+ $coste_envio += ($resultado_presupuesto['eb'][$i] / $tirada[$i]);
+ $resultado_presupuesto['info']['totales'][$i]['envio_base_coste'] = $resultado_presupuesto['eb'][$i] - $resultado_presupuesto['eb_margen'][$i];
+ $resultado_presupuesto['info']['totales'][$i]['envio_base_margen'] = $resultado_presupuesto['eb_margen'][$i];
+ $resultado_presupuesto['precio_u'][$i] = round(floatval($resultado_presupuesto['precio_u'][$i]) + $coste_envio, 4);
+ }
+
+ $coste_envio = 0.0; // se inicializa para calcular los costes de envíos restantes si es que hay
+ $resultado_presupuesto['coste_envio'] = [];
if (count($direcciones) > 0) {
for ($i = 0; $i < count($tirada); $i++) {
@@ -1168,11 +1184,6 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
foreach ($direcciones as $direccion) {
// El primer envio no se calcula ya que se añade el base
if ($envio_base) {
- //aporte del envio al precio unidad
- $coste_envio += ($resultado_presupuesto['eb'][$i] / $tirada[$i]);
- $margen_envio += ($resultado_presupuesto['eb_margen'][$i] / $tirada[$i]);
- $resultado_presupuesto['info']['totales'][$i]['coste_envio'] += $resultado_presupuesto['eb'][$i] - $resultado_presupuesto['eb_margen'][$i];
- $resultado_presupuesto['info']['totales'][$i]['margen_envio'] += $resultado_presupuesto['eb_margen'][$i];
$envio_base = false;
continue;
}
@@ -1212,18 +1223,9 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
}
}
- $resultado_presupuesto['precio_u'][$i] = round(floatval($resultado_presupuesto['precio_u'][$i]) + $coste_envio, 4);
+ $resultado_presupuesto['coste_envio'][$i] = round($coste_envio, 2);
}
- } else {
- for ($i = 0; $i < count($tirada); $i++) {
- $coste_envio = 0.0;
- $coste_envio += ($resultado_presupuesto['eb'][$i] / $tirada[$i]);
- $resultado_presupuesto['info']['totales'][$i]['coste_envio'] = $resultado_presupuesto['eb'][$i] - $resultado_presupuesto['eb_margen'][$i];
- $resultado_presupuesto['info']['totales'][$i]['margen_envio'] = $resultado_presupuesto['eb_margen'][$i];
- $resultado_presupuesto['precio_u'][$i] = round(floatval($resultado_presupuesto['precio_u'][$i]) + $coste_envio, 4);
- }
- }
-
+ }
$model_presupuesto = new PresupuestoModel();
$tiradas_alternativas = [];
@@ -1240,7 +1242,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$resultado_presupuesto['info']['totales'][$i]['margenPapel'] +
$resultado_presupuesto['info']['totales'][$i]['margen_envio']) / ($coste_total + $coste_envio) * 100.0, 2);
$total_pedido = round(($coste_total + $resultado_presupuesto['info']['totales'][$i]['totalServicios'] + $resultado_presupuesto['info']['totales'][$i]['margenServicios'] + $coste_envio), 2);
- $precio_u = round(($coste_total + $resultado_presupuesto['info']['totales'][$i]['totalServicios'] + $resultado_presupuesto['info']['totales'][$i]['margenServicios'] + $coste_envio) / $tirada[$i], 4);
+ $precio_u = round( $resultado_presupuesto['precio_u'][$i], 4);
array_push($tiradas_alternativas, (object) array(
'tirada' => $tirada[$i],
@@ -1252,6 +1254,8 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
));
} else {
$resumen_totales = $resultado_presupuesto['info']['totales'][$i];
+ $resumen_totales['precio_unidad'] = round($resultado_presupuesto['precio_u'][$i], 4);
+
}
}
@@ -1607,7 +1611,10 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
}
if (intval($presupuesto->estado_id) == 2) {
- $data['resumen']['base'] = $presupuesto->total_aceptado;
+ $data['resumen']['base'] = $presupuesto->total_antes_descuento;
+ $data['resumen']['total_envio'] = round(
+ floatval($presupuesto->total_coste_envios) +
+ floatval($presupuesto->total_margen_envios), 2);
$data['resumen']['precio_unidad'] = $presupuesto->total_precio_unidad;
}
diff --git a/ci4/app/Language/es/App.php b/ci4/app/Language/es/App.php
index 3bb95036..5fad7c09 100755
--- a/ci4/app/Language/es/App.php
+++ b/ci4/app/Language/es/App.php
@@ -754,6 +754,7 @@ return [
"menu_presupuestos_clientes" => "Presupuestos (Clientes)",
"menu_presupuesto" => "Libros",
"menu_presupuesto_buscador" => "Buscador",
+ "menu_presupuesto_importador" => "Importador ERP antiguo",
"menu_libros" => "Libros",
"menu_libros_fresasdo_tapa_dura" => "Fresado tapa dura",
"menu_libros_fresasdo_tapa_blanda" => "Fresado tapa blanda",
diff --git a/ci4/app/Models/Presupuestos/PresupuestoModel.php b/ci4/app/Models/Presupuestos/PresupuestoModel.php
index 341b10b9..de3a817b 100755
--- a/ci4/app/Models/Presupuestos/PresupuestoModel.php
+++ b/ci4/app/Models/Presupuestos/PresupuestoModel.php
@@ -404,9 +404,9 @@ class PresupuestoModel extends \App\Models\BaseModel
$is_cosido = (new TipoPresupuestoModel())->get_isCosido($data['tipo_impresion_id']);
$totalCostes = $resumen_totales['totalPapel'] + $resumen_totales['totalImpresion'] +
- $resumen_totales['totalServicios'] + $resumen_totales['coste_envio'];
+ $resumen_totales['totalServicios'] + $resumen_totales['envio_base_coste'];
$totalMargenes = $resumen_totales['margenPapel'] + $resumen_totales['margenImpresion'] +
- $resumen_totales['margenServicios'] + $resumen_totales['margen_envio'];
+ $resumen_totales['margenServicios'] + $resumen_totales['envio_base_margen'];
$fields = [
'cliente_id' => $data['clienteId'],
@@ -486,9 +486,9 @@ class PresupuestoModel extends \App\Models\BaseModel
'total_descuento' => 0,
'total_descuentoPercent' => 0,
- 'total_precio_unidad' => round(($totalCostes + $totalMargenes) / $tirada, 4),
- 'total_presupuesto' => round($totalCostes + $totalMargenes, 2),
- 'total_aceptado' => round($totalCostes + $totalMargenes, 2),
+ 'total_precio_unidad' => $resumen_totales['precio_unidad'],
+ 'total_presupuesto' => round($totalCostes + $totalMargenes + $resumen_totales['coste_envio']+$resumen_totales['margen_envio'], 2),
+ 'total_aceptado' => round($totalCostes + $totalMargenes + $resumen_totales['coste_envio']+$resumen_totales['margen_envio'], 2),
'total_factor' => round(($totalCostes + $totalMargenes - $resumen_totales['coste_envio'] - $resumen_totales['margen_envio']) / $resumen_totales['sumForFactor'], 2),
'total_factor_ponderado' => round(($totalCostes + $totalMargenes - $resumen_totales['coste_envio'] - $resumen_totales['margen_envio']) / $resumen_totales['sumForFactorPonderado'], 2),
diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/items/_resumen.php b/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/items/_resumen.php
index 7eb9dee7..3f447a46 100644
--- a/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/items/_resumen.php
+++ b/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/items/_resumen.php
@@ -5,9 +5,11 @@
Precio unidad: €
- Total base: €
- Iva (%): €
- Total: €
+ Total base: €
+ Envío: €
+ Total antes de I.V.A: €
+ Iva (%): €
+ Total: €
diff --git a/ci4/app/Views/themes/vuexy/main/menus/presupuesto_menu.php b/ci4/app/Views/themes/vuexy/main/menus/presupuesto_menu.php
index 0b253bdb..52af9ab7 100644
--- a/ci4/app/Views/themes/vuexy/main/menus/presupuesto_menu.php
+++ b/ci4/app/Views/themes/vuexy/main/menus/presupuesto_menu.php
@@ -23,27 +23,23 @@ if (auth()->user()->can('presupuesto.menu')) {
-
-
-
+
\ No newline at end of file
diff --git a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/resumen.js b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/resumen.js
index cbc1c042..1e152889 100644
--- a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/resumen.js
+++ b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/resumen.js
@@ -18,7 +18,7 @@ class Resumen {
await self.updateTotales();
$(document).trigger('update-totales-completed');
});
- $("#totalDespuesDecuento").on('change',this.updateToastSummary.bind(this))
+ $("#totalDespuesDecuento").on('change', this.updateToastSummary.bind(this))
}
cargar(resumen) {
@@ -26,7 +26,7 @@ class Resumen {
// Mapear los valores a los elementos HTML por ID
$("#totalCostePapel").text(resumen.total_coste_papel.toString().replace('.', ',') + "€" || "0€");
$("#porcentajeMargenPapel").text(resumen.total_margenPercent_papel ? resumen.total_margenPercent_papel.toString().replace('.', ',') + "%" : "0%");
- $("#margenPapel").text(resumen.total_margen_papel.toString().replace('.', ',')+ "€" || "0€");
+ $("#margenPapel").text(resumen.total_margen_papel.toString().replace('.', ',') + "€" || "0€");
$("#totalCosteImpresion").text(resumen.total_coste_impresion.toString().replace('.', ',') + "€" || "0€");
$("#porcentajeMargenImpresion").text(resumen.total_margenPercent_impresion ? resumen.total_margenPercent_impresion.toString().replace('.', ',') + "%" : "0%");
@@ -56,7 +56,7 @@ class Resumen {
$("#totalAceptado").val(resumen.total_aceptado.toString().replace('.', ',') + "€" || "0€");
}
- $('#ivaReducido').val(resumen.iva_reducido ? 1: 0);
+ $('#ivaReducido').val(resumen.iva_reducido ? 1 : 0);
}
@@ -100,6 +100,7 @@ class Resumen {
let margenServicios = parseFloat(0);
let totalEnvios = 0;
+ let totalEnvios_base = 0;
let margenEnvios = 0;
let sumForFactor = 0.0;
@@ -134,7 +135,7 @@ class Resumen {
if (rowData.maquinaTipo == 'inkjet') {
totalImpresion += parseFloat(rowData.totalTinta)
- totalImpresion += parseFloat(rowData.totalCorte)?? 0;
+ totalImpresion += parseFloat(rowData.totalCorte) ?? 0;
//sumForFactor += (parseFloat(rowData.totalTinta) + parseFloat(rowData.totalCorte))
}
@@ -189,7 +190,7 @@ class Resumen {
let margen_servicio = parseFloat(rowData.margen);
totalServicios += total_servicio
let base = self.roundToTwoDecimals(total_servicio / (1 + margen_servicio / 100.0));
- base = self.roundToTwoDecimals(base / parseInt($('#tirada').val()))*parseInt($('#tirada').val());
+ base = self.roundToTwoDecimals(base / parseInt($('#tirada').val())) * parseInt($('#tirada').val());
margenServicios += self.roundToTwoDecimals(parseFloat(total_servicio - base));
});
}
@@ -201,7 +202,7 @@ class Resumen {
let margen_servicio = parseFloat(rowData.margen);
totalServicios += total_servicio
let base = self.roundToTwoDecimals(total_servicio / (1 + margen_servicio / 100.0));
- base = self.roundToTwoDecimals(base / parseInt($('#tirada').val()))*parseInt($('#tirada').val());
+ base = self.roundToTwoDecimals(base / parseInt($('#tirada').val())) * parseInt($('#tirada').val());
margenServicios += self.roundToTwoDecimals(parseFloat(total_servicio - base));
});
}
@@ -211,7 +212,7 @@ class Resumen {
let rowData = this.data();
let total_servicio = self.roundToTwoDecimals(parseFloat(rowData.precio));
let base = (parseFloat(rowData.precio / (1 + parseFloat(rowData.margen) / 100.0)).toFixed(2));
- base = self.roundToTwoDecimals(base / parseInt($('#tirada').val()))*parseInt($('#tirada').val());
+ base = self.roundToTwoDecimals(base / parseInt($('#tirada').val())) * parseInt($('#tirada').val());
margenServicios += self.roundToTwoDecimals(parseFloat(total_servicio - base));
totalServicios += total_servicio
});
@@ -222,7 +223,7 @@ class Resumen {
let rowData = this.data();
let total_servicio = self.roundToTwoDecimals(parseFloat(rowData.precio));
let base = (parseFloat(rowData.precio / (1 + parseFloat(rowData.margen) / 100.0)).toFixed(2));
- base = self.roundToTwoDecimals(base / parseInt($('#tirada').val()))*parseInt($('#tirada').val());
+ base = self.roundToTwoDecimals(base / parseInt($('#tirada').val())) * parseInt($('#tirada').val());
margenServicios += self.roundToTwoDecimals(parseFloat(total_servicio - base));
totalServicios += total_servicio;
});
@@ -235,7 +236,7 @@ class Resumen {
let margen_servicio = parseFloat(rowData.margen);
totalServicios += total_servicio
let base = self.roundToTwoDecimals(total_servicio / (1 + margen_servicio / 100.0));
- base = self.roundToTwoDecimals(base / parseInt($('#tirada').val()))*parseInt($('#tirada').val());
+ base = self.roundToTwoDecimals(base / parseInt($('#tirada').val())) * parseInt($('#tirada').val());
margenServicios += self.roundToTwoDecimals(parseFloat(total_servicio - base));
});
}
@@ -262,15 +263,16 @@ class Resumen {
if (updateEnvio) {
- totalEnvios = parseFloat($('#envio_base').val());
+ totalEnvios_base = parseFloat($('#envio_base').val());
if (typeof $('#tableOfDireccionesEnvio').DataTable() !== 'undefined' && $('#tableOfDireccionesEnvio').DataTable().rows().count() > 0) {
$('#tableOfDireccionesEnvio').DataTable().rows().every(function (rowIdx, tableLoop, rowLoop) {
- if (rowIdx == 0) {
- return;
+ // el primer envio es el base, y no se debe de cobrar
+ if (rowIdx != 0) {
+
+ let data = this.data()
+ totalEnvios += parseFloat(data.precio)
+ margenEnvios += parseFloat((data.precio) * data.margen / 100)
}
- let data = this.data()
- totalEnvios += parseFloat(data.precio)
- margenEnvios += parseFloat((data.precio) * data.margen / 100)
});
}
@@ -298,10 +300,11 @@ class Resumen {
if ($('#total_descuentoPercent').val() < 0) {
$('#total_descuentoPercent').val(0)
}
- let totalAntesDescuento = totalCostes + totalMargenes
+ let totalAntesDescuento = totalCostes + totalMargenes - parseFloat(totalEnvios.toFixed(2)) + totalEnvios_base;
let totalDescuento = totalAntesDescuento * parseInt($('#total_descuentoPercent').val() || 0) / 100
- let totalPresupuesto = totalAntesDescuento - totalDescuento
+ 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').text((this.addSeparatorsNF(totalAntesDescuento.toFixed(2), ".", ",", ".")) + "€")
$('#descuentoTotal').text((this.addSeparatorsNF(totalDescuento.toFixed(2), ".", ",", ".")) + "€")
@@ -313,15 +316,15 @@ class Resumen {
$('#precioUnidadPresupuesto').attr('val', (precioUnidad).toFixed(4))
$('#totalDespuesDecuento').trigger("change")
- $('#factor').text(this.addSeparatorsNF(((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').attr('val', ((totalPresupuesto - totalEnvios - margenEnvios) / sumForFactorPonderado).toFixed(2))
+ $('#factor').text(this.addSeparatorsNF(((totalPresupuesto - totalEnvios - totalEnvios_base - margenEnvios) / sumForFactor).toFixed(2), ".", ",", "."))
+ $('#factor').attr('val', ((totalPresupuesto - totalEnvios - totalEnvios_base - margenEnvios) / sumForFactor).toFixed(2))
+ $('#factor_ponderado').text(this.addSeparatorsNF(((totalPresupuesto - totalEnvios - totalEnvios_base - margenEnvios) / sumForFactorPonderado).toFixed(2), ".", ",", "."))
+ $('#factor_ponderado').attr('val', ((totalPresupuesto - totalEnvios - totalEnvios_base - margenEnvios) / sumForFactorPonderado).toFixed(2))
}
- getData(){
+ getData() {
let data = {
'total_coste_papel': $('#totalCostePapel').text().replace('€', '').replace(',', '.'),
@@ -354,7 +357,7 @@ class Resumen {
'iva_reducido': $('#ivaReducido').val()
};
- if($('#confirmar_presupuesto').prop('checked')){
+ if ($('#confirmar_presupuesto').prop('checked')) {
data.confirmar = '1';
data.total_aceptado = $('#totalDespuesDecuento').text().replace('€', '').replace(',', '.');
}
@@ -365,15 +368,14 @@ class Resumen {
roundToTwoDecimals(num) {
return parseFloat(num.toFixed(2));
}
- updateToastSummary()
- {
- if(this.toastPresupuestoTotal){
+ updateToastSummary() {
+ if (this.toastPresupuestoTotal) {
this.toastPresupuestoTotal.close()
}
this.toastPresupuestoTotal = toastPresupuestoSummary($("#totalDespuesDecuento").text() ?? 0)
this.toastPresupuestoTotal.fire().then((result) => {
- if(result.isDismissed && result.dismiss == 'close'){
+ if (result.isDismissed && result.dismiss == 'close') {
this.updateToastSummary()
$('html, body').animate(
{
diff --git a/httpdocs/assets/js/safekat/pages/presupuestoCliente/presupuestoCliente.js b/httpdocs/assets/js/safekat/pages/presupuestoCliente/presupuestoCliente.js
index 8965dea4..fa45b210 100644
--- a/httpdocs/assets/js/safekat/pages/presupuestoCliente/presupuestoCliente.js
+++ b/httpdocs/assets/js/safekat/pages/presupuestoCliente/presupuestoCliente.js
@@ -622,7 +622,8 @@ class PresupuestoCliente {
('precio-tiradas-' + response.tiradas[i]),
response.tiradas[i],
precio,
- response.precio_u[i]
+ response.precio_u[i],
+ response.coste_envio[i]
);
if (this.actualizarTiradasEnvio) {
@@ -895,7 +896,10 @@ class PresupuestoCliente {
$('#menu_resumen_button').trigger('click');
setTimeout(() => {
self.resumen.init_dropzone();
- self.resumen.generate_total(response.data.resumen.base, response.data.resumen.precio_unidad, response.data.datosGenerales.ivaReducido);
+ self.resumen.generate_total(response.data.resumen.base,
+ response.data.resumen.precio_unidad,
+ response.data.resumen.total_envio,
+ response.data.datosGenerales.ivaReducido);
}, 0);
}
}, 0);
diff --git a/httpdocs/assets/js/safekat/pages/presupuestoCliente/resumen.js b/httpdocs/assets/js/safekat/pages/presupuestoCliente/resumen.js
index 4c297776..0ccd5839 100644
--- a/httpdocs/assets/js/safekat/pages/presupuestoCliente/resumen.js
+++ b/httpdocs/assets/js/safekat/pages/presupuestoCliente/resumen.js
@@ -48,6 +48,8 @@ class Resumen {
this.precio_unidad = $(this.domItem.find("#resumenPrecioU"));
this.total_base = $(this.domItem.find("#resumenTotalBase"));
+ this.total_envios = $(this.domItem.find("#resumenTotalEnvio"));
+ this.total_antes_iva = $(this.domItem.find("#resumenTotalAntesIVA"));
this.iva_porcentaje = $(this.domItem.find("#resumenIvaPorcentaje"));
this.iva = $(this.domItem.find("#resumenIva"));
this.total = $(this.domItem.find("#resumenTotal"));
@@ -308,19 +310,26 @@ class Resumen {
return parseInt($(this).find('.tarjeta-tiradas-precios-tirada').attr('data')) == unidades;
});
+
+ let envios = tarjetaPrecio.find('.tarjeta-tiradas-precios-envio').val();
+ this.total_envios.text(this.#changeDecimalFormat(parseFloat(envios).toFixed(2)));
+
let precio_u_text = tarjetaPrecio.find('.tarjeta-tiradas-precios-precio-unidad').text();
precio_u_text = precio_u_text.replace('€/ud', '');
const base = tarjetaPrecio.find('.tarjeta-tiradas-precios-precio').attr('data');
let base_text = this.#changeDecimalFormat(parseFloat(base).toFixed(2));
+ const total_antes_iva_text = this.#changeDecimalFormat((parseFloat(base) + parseFloat(envios)).toFixed(2));
+
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) + parseFloat(envios))* iva_porcentaje).toFixed(2);
let iva_text = this.#changeDecimalFormat(iva);
- const total = (parseFloat(base) + parseFloat(iva)).toFixed(2);
+ const total = (parseFloat(base) + parseFloat(envios) +parseFloat(iva)).toFixed(2);
let total_text = this.#changeDecimalFormat(total);
+
this.precio_unidad.text(precio_u_text);
this.total_base.text(base_text);
this.iva_porcentaje.text(this.datosGenerales.ivaReducido.find('option:selected').val() == 1 ? '4' : '21');
@@ -329,23 +338,28 @@ class Resumen {
}
- generate_total(base, precio_u, iva_reducido) {
+ generate_total(base, precio_u, total_envio, iva_reducido) {
let precio_u_text = String(precio_u);
precio_u_text = precio_u_text.replace('€/u', '');
precio_u_text = this.#changeDecimalFormat(precio_u_text);
let base_text = this.#changeDecimalFormat(String(base));
+ let envios_text = this.#changeDecimalFormat(total_envio.toFixed(2));
+ let total_antes_iva = parseFloat(base) + parseFloat(total_envio);
+ let total_antes_iva_text = this.#changeDecimalFormat(total_antes_iva.toFixed(2));
const iva_porcentaje = !iva_reducido? 0.21 : 0.04;
- const iva = (parseFloat(base) * iva_porcentaje).toFixed(2);
+ const iva = ((parseFloat(base) + parseFloat(total_envio)) * iva_porcentaje).toFixed(2);
let iva_text = this.#changeDecimalFormat(iva);
- const total = (parseFloat(base) + parseFloat(iva)).toFixed(2);
+ const total = (parseFloat(base) + parseFloat(total_envio) + parseFloat(iva)).toFixed(2);
let total_text = this.#changeDecimalFormat(total);
this.precio_unidad.text(precio_u_text);
this.total_base.text(base_text);
+ this.total_envios.text(envios_text);
+ this.total_antes_iva.text(total_antes_iva_text);
this.iva_porcentaje.text(!iva_reducido? '21' : '4');
this.iva.text(iva_text);
this.total.text(total_text);
diff --git a/httpdocs/assets/js/safekat/pages/presupuestoCliente/tarjetaTiradasPrecio.js b/httpdocs/assets/js/safekat/pages/presupuestoCliente/tarjetaTiradasPrecio.js
index 25e11ef5..1fbeead7 100644
--- a/httpdocs/assets/js/safekat/pages/presupuestoCliente/tarjetaTiradasPrecio.js
+++ b/httpdocs/assets/js/safekat/pages/presupuestoCliente/tarjetaTiradasPrecio.js
@@ -1,13 +1,14 @@
class tarjetaTiradasPrecio {
- constructor(domItem, id, tirada, precio, precio_unidad) {
+ constructor(domItem, id, tirada, precio, precio_unidad, envio) {
this.domItem = domItem;
this.id = id;
this.tirada = tirada;
this.precio = precio;
this.precio_unidad = precio_unidad;
+ this.envio = envio;
- this.card = this.#generateHTML(id, tirada, precio, precio_unidad);
+ this.card = this.#generateHTML(id, tirada, precio, precio_unidad, envio);
this.domItem.append(this.card);
}
@@ -15,7 +16,7 @@ class tarjetaTiradasPrecio {
return value.toLocaleString("de-DE", { minimumFractionDigits: digits, maximumFractionDigits: digits });
}
- #generateHTML(id, tirada, precio, precio_unidad) {
+ #generateHTML(id, tirada, precio, precio_unidad, envio) {
let $html = $('
', {
id: id,
@@ -37,6 +38,7 @@ class tarjetaTiradasPrecio {
const formattedPrecio = this.formatNumber(precio, 2);
const formattedPrecioUnidad = this.formatNumber(precio_unidad, 4);
+
$listContent.append($('', {
id: 'ud_' + id,
@@ -56,6 +58,12 @@ class tarjetaTiradasPrecio {
text: formattedPrecioUnidad + '€/ud'
}).attr('data', precio_unidad));
+ $listContent.append($('', {
+ id: 'envio_' + id,
+ type: 'hidden',
+ class: 'mb-1 tarjeta-tiradas-precios-envio',
+ }).val(envio));
+
$liWrapper.append($listContent);
$link.append($liWrapper);
$html.append($link);