resuelto problema presupuesto cliente

This commit is contained in:
2025-03-21 18:27:31 +01:00
parent af25237fa5
commit e1d208a4dd
9 changed files with 134 additions and 92 deletions

View File

@ -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;
}

View File

@ -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",

View File

@ -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),

View File

@ -5,9 +5,11 @@
<div class="col-sm-8 mb-3 d-flex flex-column align-items-center">
<h5 class="mb-1 "> Precio unidad: <span id="resumenPrecioU"></span> </h5>
<h4 class="mb-1 "> Total base: <span id="resumenTotalBase"></span> </h>
<h4 class="mb-1 "> Iva (<span id="resumenIvaPorcentaje"></span>%): <span id="resumenIva"></span> </h>
<h3 class="mt-3 mb-1 fw-bold"> Total: <span id="resumenTotal"></span> </h>
<h4 class="mb-1 "> Total base: <span id="resumenTotalBase"></span> </h4>
<h4 class="mb-1 "> Envío: <span id="resumenTotalEnvio"></span> </h4>
<h4 class="mb-1 "> Total antes de I.V.A: <span id="resumenTotalAntesIVA"></span> </h4>
<h4 class="mb-1 "> Iva (<span id="resumenIvaPorcentaje"></span>%): <span id="resumenIva"></span> </h4>
<h3 class="mt-3 mb-1 fw-bold"> Total: <span id="resumenTotal"></span> </h3>
</div><!--//.mb-3 -->
<div id="divFormaCubierta" class="col-sm-12 mb-3 d-flex flex-column align-items-center">

View File

@ -23,27 +23,23 @@ if (auth()->user()->can('presupuesto.menu')) {
</a>
<ul class="menu-sub">
<li class="menu-item">
<a href="<?= site_url("presupuestoadmin/list/1") ?>"
class="menu-link">
<a href="<?= site_url("presupuestoadmin/list/1") ?>" class="menu-link">
<?= lang("App.menu_libros_fresasdo_tapa_dura") ?>
</a>
</li>
<li class="menu-item">
<a href="<?= site_url("presupuestoadmin/list/2") ?>"
class="menu-link">
<a href="<?= site_url("presupuestoadmin/list/2") ?>" class="menu-link">
<?= lang("App.menu_libros_fresasdo_tapa_blanda") ?>
</a>
</li>
<li class="menu-item">
<a href="<?= site_url("presupuestoadmin/list/3") ?>"
class="menu-link">
<a href="<?= site_url("presupuestoadmin/list/3") ?>" class="menu-link">
<?= lang("App.menu_libros_cosido_tapa_dura") ?>
</a>
</li>
<li class="menu-item">
<a href="<?= site_url("presupuestoadmin/list/4") ?>"
class="menu-link">
<a href="<?= site_url("presupuestoadmin/list/4") ?>" class="menu-link">
<?= lang("App.menu_libros_cosido_tapa_blanda") ?>
</a>
</li>
@ -59,8 +55,7 @@ if (auth()->user()->can('presupuesto.menu')) {
</li>
<li class="menu-item">
<a href="<?= site_url("presupuestoadmin/list/6") ?>"
class="menu-link">
<a href="<?= site_url("presupuestoadmin/list/6") ?>" class="menu-link">
<?= lang("App.menu_libros_espiral_tapa_blanda") ?>
</a>
</li>
@ -96,7 +91,8 @@ if (auth()->user()->can('presupuesto.menu')) {
<li class="menu-item">
<a href="<?= site_url("presupuestos/tarjetascomerciales") ?>" class="menu-link">
<div data-i18n="<?= lang("App.menu_tarjetas_comerciales") ?>"><?= lang("App.menu_tarjetas_comerciales") ?></div>
<div data-i18n="<?= lang("App.menu_tarjetas_comerciales") ?>">
<?= lang("App.menu_tarjetas_comerciales") ?></div>
</a>
</li>
@ -119,18 +115,21 @@ if (auth()->user()->can('presupuesto.menu')) {
<ul class="menu-sub">
<li class="menu-item">
<a href="<?= site_url("presupuestos/dipticos") ?>" class="menu-link">
<div data-i18n="<?= lang("App.menu_folleto_diptico") ?>"><?= lang("App.menu_folleto_diptico") ?></div>
<div data-i18n="<?= lang("App.menu_folleto_diptico") ?>"><?= lang("App.menu_folleto_diptico") ?>
</div>
</a>
</li>
<li class="menu-item">
<a href="<?= site_url("presupuestos/tripticos") ?>" class="menu-link">
<div data-i18n="<?= lang("App.menu_folleto_triptico") ?>"><?= lang("App.menu_folleto_triptico") ?></div>
<div data-i18n="<?= lang("App.menu_folleto_triptico") ?>">
<?= lang("App.menu_folleto_triptico") ?></div>
</a>
</li>
<li class="menu-item">
<a href="<?= site_url("presupuestos/cuadripticos") ?>" class="menu-link">
<div data-i18n="<?= lang("App.menu_folleto_cuadriptico") ?>"><?= lang("App.menu_folleto_cuadriptico") ?></div>
<div data-i18n="<?= lang("App.menu_folleto_cuadriptico") ?>">
<?= lang("App.menu_folleto_cuadriptico") ?></div>
</a>
</li>
</ul>
@ -140,8 +139,13 @@ if (auth()->user()->can('presupuesto.menu')) {
<div data-i18n="<?= lang("App.menu_calendarios") ?>"><?= lang("App.menu_calendarios") ?></div>
</a>
</li>
<li class="menu-item">
<a href="<?= site_url("/importador") ?>" class="menu-link">
<?= lang("App.menu_presupuesto_importador") ?>
</a>
</li>
</ul>
</li>
<?php } ?>
<?php } ?>