Merge branch 'mod/envio_resumen_admin' into 'main'

Mod/envio resumen admin

See merge request jjimenez/safekat!640
This commit is contained in:
2025-04-02 16:39:49 +00:00
3 changed files with 25 additions and 14 deletions

View File

@ -18,6 +18,7 @@ return [
'cantidad' => 'Cantidad', 'cantidad' => 'Cantidad',
'proveedor' => 'Proveedor', 'proveedor' => 'Proveedor',
'precio' => 'Precio', 'precio' => 'Precio',
'costePrecio' => 'Coste/Precio',
'saveDirection' => 'Guardar en direcciones de cliente', 'saveDirection' => 'Guardar en direcciones de cliente',
'entregaPieCalle' => 'Entrega a pie de calle (enviado en palets)', 'entregaPieCalle' => 'Entrega a pie de calle (enviado en palets)',
'validation' => [ 'validation' => [

View File

@ -36,7 +36,7 @@
<th class="lp-header"><?= lang('PresupuestosDirecciones.telefono') ?></th> <th class="lp-header"><?= lang('PresupuestosDirecciones.telefono') ?></th>
<th class="lp-header"><?= lang('PresupuestosDirecciones.proveedor') ?></th> <th class="lp-header"><?= lang('PresupuestosDirecciones.proveedor') ?></th>
<th class="lp-header">Proveedor_id</th> <th class="lp-header">Proveedor_id</th>
<th class="lp-header"><?= lang('PresupuestosDirecciones.precio') ?></th> <th class="lp-header"><?= lang('PresupuestosDirecciones.costePrecio') ?></th>
<th class="lp-header"><?= lang('Tarifaacabado.margen') ?></th> <th class="lp-header"><?= lang('Tarifaacabado.margen') ?></th>
<th class="lp-header">Pallets?</th> <th class="lp-header">Pallets?</th>
<th style="min-width:120px !important;" class="lp-header"><?= lang('Basic.global.Action') ?></th> <th style="min-width:120px !important;" class="lp-header"><?= lang('Basic.global.Action') ?></th>

View File

@ -63,7 +63,13 @@ class Envios {
{ 'data': 'telefono' }, { 'data': 'telefono' },
{ 'data': 'proveedor' }, { 'data': 'proveedor' },
{ 'data': 'proveedor_id', visible: false }, { 'data': 'proveedor_id', visible: false },
{ 'data': 'precio' }, {
'data': 'precio', render: function (data, type, row) {
let coste = parseFloat(data).toFixed(2);
let precio = parseFloat(data * (1 + row.margen / 100.0)).toFixed(2);
return coste + "/" + precio;
}
},
{ 'data': 'margen', render: function (data, type, row) { return Math.round(data) } }, { 'data': 'margen', render: function (data, type, row) { return Math.round(data) } },
{ 'data': 'entregaPieCalle' }, { 'data': 'entregaPieCalle' },
{ {
@ -236,9 +242,9 @@ class Envios {
await $.post('/presupuestodirecciones/datatable', await $.post('/presupuestodirecciones/datatable',
Object.assign({ tipo: "clear_lineas", presupuesto_id: id }, window.token_ajax)) Object.assign({ tipo: "clear_lineas", presupuesto_id: id }, window.token_ajax))
.done(function (data) { .done(async function (data) {
$('#tableOfDireccionesEnvio').DataTable().rows().every(async function (rowIdx, tableLoop, rowLoop) { await $('#tableOfDireccionesEnvio').DataTable().rows().every(async function (rowIdx, tableLoop, rowLoop) {
var data = this.data(); var data = this.data();
await $.post('/presupuestos/presupuestodirecciones/add', await $.post('/presupuestos/presupuestodirecciones/add',
{ {
@ -261,6 +267,8 @@ class Envios {
entregaPieCalle: data.entregaPieCalle entregaPieCalle: data.entregaPieCalle
}) })
}); });
}) })
} }
@ -291,8 +299,10 @@ class Envios {
let b = parseFloat(datos_tarifa.precio_max) - m * parseFloat(datos_tarifa.peso_max); let b = parseFloat(datos_tarifa.precio_max) - m * parseFloat(datos_tarifa.peso_max);
datos_tarifa.precio = parseFloat(m * peso_envio + b); datos_tarifa.precio = parseFloat(m * peso_envio + b);
} }
let coste = parseFloat(datos_tarifa.precio).toFixed(2);
let precio = parseFloat(coste * (1 + datos_tarifa.margen / 100.0)).toFixed(2);
$('#envio_base').val(datos_tarifa.precio.toFixed(2)); $('#envio_base').val(precio);
} }
} }
@ -324,7 +334,7 @@ class Envios {
if (datos_tarifa.id != null) { if (datos_tarifa.id != null) {
if (peso_envio > parseFloat(datos_tarifa.peso_max) || parseFloat(datos_tarifa.peso_max) == 0) { if (peso_envio > parseFloat(datos_tarifa.peso_max) || parseFloat(datos_tarifa.peso_max) == 0) {
datos_tarifa.precio = parseFloat(datos_tarifa.peso_min) + (peso_envio - parseFloat(datos_tarifa.peso_min)) * parseFloat(datos_tarifa.precio_adicional); datos_tarifa.precio = parseFloat(datos_tarifa.precio_max) + (peso_envio - parseFloat(datos_tarifa.peso_max)) * parseFloat(datos_tarifa.precio_adicional);
} }
// si no se calcula linealmente // si no se calcula linealmente
else { else {
@ -506,7 +516,7 @@ class Envios {
let precios = [] let precios = []
for (let i = 0; i < data.length; i++) { for (let i = 0; i < data.length; i++) {
if (peso_envio > data[i].peso_max || data[i].precio_max == 0) { if (peso_envio > data[i].peso_max || data[i].precio_max == 0) {
data[i].precio = (parseFloat(data[i].precio_min) + (peso_envio - parseFloat(data[i].peso_min)) * parseFloat(data[i].precio_adicional)).toFixed(2); data[i].precio = (parseFloat(data[i].precio_max) + (peso_envio - parseFloat(data[i].peso_max)) * parseFloat(data[i].precio_adicional)).toFixed(2);
} }
else { else {
@ -576,8 +586,8 @@ class Envios {
$(document).trigger('ckeck-lineas-envios'); $(document).trigger('ckeck-lineas-envios');
$(document).trigger('update-presupuesto', { $(document).trigger('update-presupuesto', {
update_lineas : false, update_lineas: false,
update_servicios : true, update_servicios: true,
update_envios: false, update_envios: false,
update_resumen: true, update_resumen: true,
update_tiradas_alternativas: true update_tiradas_alternativas: true
@ -645,7 +655,7 @@ class Envios {
check_unidades_enviadas(event, recogerTaller = null) { check_unidades_enviadas(event, recogerTaller = null) {
if(recogerTaller === null) { if (recogerTaller === null) {
recogerTaller = this.recogerTaller.prop('checked'); recogerTaller = this.recogerTaller.prop('checked');
} }