corregidas direfencias en totales presupuestos. tiradas alternativas ok. corregido calculo envio base

This commit is contained in:
2025-02-04 20:31:04 +01:00
parent 430cf0fd6c
commit 2149796cbb
18 changed files with 568 additions and 431 deletions

View File

@ -1722,8 +1722,8 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
'tarifa_encuadernado_id' => $servicio->tarifa_id,
'proveedor_id' => $servicio->proveedor_id,
'tiempo' => $servicio->tiempo,
'precio_total' => $servicio->total,
'precio_unidad' => $servicio->precio_unidad,
'precio_total' => round($servicio->total, 2),
'precio_unidad' => round($servicio->precio_unidad, 2),
'margen' => $servicio->margen,
];
@ -1739,7 +1739,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$data = [
'presupuesto_id' => $presupuestoId,
'tarifa_extra_id' => $servicio->tarifa_id,
'precio' => $servicio->precio,
'precio' => round($servicio->precio, 2),
'margen' => $servicio->margen,
];
$model->insert($data);
@ -1764,8 +1764,8 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$data = [
'presupuesto_id' => $presupuestoId,
'tarifa_manipulado_id' => $servicio->tarifa_id,
'precio_total' => $servicio->total,
'precio_unidad' => $servicio->precio_unidad,
'precio_total' => round($servicio->total, 2),
'precio_unidad' => round($servicio->precio_unidad, 2),
'margen' => $servicio->margen,
];
$model->insert($data);
@ -1792,7 +1792,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$margen = 0;
$peso_envio = round(floatval(floatval($peso) * floatval($unidades) / 1000.0)); // peso libro * unidades y se pasa a kilogramos
$peso_envio = round(floatval(floatval($peso) * floatval($unidades) / 1000.0), 3); // peso libro * unidades y se pasa a kilogramos
$tarifas_envio = $modelTarifaEnvio->getTarifaEnvio($pais_id, $cp, $peso_envio, $entregaPieCalle ? 'palets' : 'cajas');
for ($i = 0; $i < count($tarifas_envio); $i++) {
if ($peso_envio > $tarifas_envio[$i]->peso_max || floatval($tarifas_envio[$i]->precio_max) == 0) {
@ -2021,7 +2021,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
}
foreach ($interior as $linea) {
if (count($linea) > 0) {
$costeInterior += round(floatval($linea['total_impresion']),2);
$costeInterior += round(floatval($linea['total_impresion']), 2);
$peso_interior += floatval($linea['peso']);
$lomo += floatval($linea['mano']);
if ($extra_info) {
@ -2131,6 +2131,12 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
return $return_data;
}
$coste_servicios += round(floatval($acabadoCubierta[0]->total), 2);
if ($extra_info) {
$totalServicios += round(floatval($acabadoCubierta[0]->total), 2);
$base = round(floatval($acabadoCubierta[0]->total / (1 + $acabadoCubierta[0]->margen / 100.0)), 2);
$base = round(floatval($base / $datosPedido->tirada) , 2)* $datosPedido->tirada;
$margenServicios += round(floatval($acabadoCubierta[0]->total - $base), 2);
}
}
}
@ -2157,7 +2163,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$linea_sobrecubierta = PresupuestoClienteService::obtenerSobrecubierta($input_data);
if (count($linea_sobrecubierta) > 0) {
$coste_sobrecubierta += round(floatval($linea_sobrecubierta['total_impresion']),2);
$coste_sobrecubierta += round(floatval($linea_sobrecubierta['total_impresion']), 2);
$peso_sobrecubierta += floatval($linea_sobrecubierta['peso']);
if ($extra_info) {
@ -2216,6 +2222,12 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
}
$coste_servicios += round(floatval($acabadoSobrecubierta[0]->total), 2);
if ($extra_info) {
$totalServicios += round(floatval($acabadoSobrecubierta[0]->total), 2);
$base = round(floatval($acabadoSobrecubierta[0]->total / (1 + $acabadoSobrecubierta[0]->margen / 100.0)), 2);
$base = round(floatval($base / $datosPedido->tirada) , 2)* $datosPedido->tirada;
$margenServicios += round(floatval($acabadoSobrecubierta[0]->total - $base), 2);
}
}
}
}
@ -2363,6 +2375,12 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
}
$coste_servicios += round(floatval($acabadoFaja[0]->total), 2);
if ($extra_info) {
$totalServicios += round(floatval($acabadoFaja[0]->total), 2);
$base = round(floatval($acabadoFaja[0]->total / (1 + $acabadoFaja[0]->margen / 100.0)), 2);
$base = round(floatval($base / $datosPedido->tirada) , 2)* $datosPedido->tirada;
$margenServicios += round(floatval($acabadoFaja[0]->total - $base), 2);
}
}
}
}
@ -2413,7 +2431,9 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$costeServiciosDefecto += round(floatval($servicio->total), 2);
if ($extra_info) {
$totalServicios += round(floatval($servicio->total), 2);
$margenServicios += round(floatval($servicio->total) * floatval($servicio->margen) / 100.0, 2);
$base = round(floatval($servicio->total / (1 + $servicio->margen / 100.0)), 2);
$base = round(floatval($base / $datosPedido->tirada), 2)*$datosPedido->tirada;
$margenServicios += round(floatval($servicio->total -$base), 2);
}
}
@ -2448,7 +2468,9 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$costeServiciosDefecto += round(floatval($servicio->total), 2);
if ($extra_info) {
$totalServicios += round(floatval($servicio->total), 2);
$margenServicios += round(floatval($servicio->total) * floatval($servicio->margen) / 100.0, 2);
$base = round(floatval($servicio->total / (1 + $servicio->margen / 100.0)), 2);
$base = round(floatval($base / $datosPedido->tirada), 2)*$datosPedido->tirada;
$margenServicios += round(floatval($servicio->total -$base), 2);
}
}
@ -2563,7 +2585,9 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$coste_servicios += round(floatval($resultado[0]->total), 2);
if ($extra_info) {
$totalServicios += round(floatval($resultado[0]->total), 2);
$margenServicios += round(floatval($resultado[0]->total) * floatval($resultado[0]->margen) / 100.0, 2);
$base = round(floatval($resultado[0]->total / (1 + $resultado[0]->margen / 100.0)), 2);
$base = round(floatval($base / $datosPedido->tirada) , 2)* $datosPedido->tirada;
$margenServicios += round(floatval($resultado[0]->total - $base), 2);
}
} else if ($servicio->nombre == "ferro" || $servicio->nombre == "prototipo") {
// Extra
@ -2593,7 +2617,9 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$coste_servicios += round(floatval($resultado[0]->precio), 2);
if ($extra_info) {
$totalServicios += round(floatval($resultado[0]->precio), 2);
$margenServicios += round(floatval($resultado[0]->precio) * floatval($resultado[0]->margen) / 100.0, 2);
$base = round(floatval($resultado[0]->total / (1 + $resultado[0]->margen / 100.0)), 2);
$base = round(floatval($base / $datosPedido->tirada) , 2)* $datosPedido->tirada;
$margenServicios += round(floatval($resultado[0]->total - $base), 2);
}
} else if ($servicio->nombre == 'solapas_cubierta' || $servicio->nombre == 'solapas_sobrecubierta' || $servicio->nombre == 'solapas_faja') {
// Servicios manipulado
@ -2625,7 +2651,9 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$coste_servicios += round(floatval($resultado[0]->total), 2);
if ($extra_info) {
$totalServicios += round(floatval($resultado[0]->total), 2);
$margenServicios += round(floatval($resultado[0]->total) * floatval($resultado[0]->margen) / 100.0, 2);
$base = round(floatval($resultado[0]->total / (1 + $resultado[0]->margen / 100.0)), 2);
$base = round(floatval($base / $datosPedido->tirada) , 2)* $datosPedido->tirada;
$margenServicios += round(floatval($resultado[0]->total - $base), 2);
}
}
}
@ -2661,7 +2689,9 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$coste_servicios += round(floatval($resultado[0]->total), 2);
if ($extra_info) {
$totalServicios += round(floatval($resultado[0]->total), 2);
$margenServicios += round(floatval($resultado[0]->total) * floatval($resultado[0]->margen) / 100.0, 2);
$base = round(floatval($resultado[0]->total / (1 + $resultado[0]->margen / 100.0)), 2);
$base = round(floatval($base / $datosPedido->tirada) , 2)* $datosPedido->tirada;
$margenServicios += round(floatval($resultado[0]->total - $base), 2);
}
}
@ -2696,7 +2726,9 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$coste_servicios += round(floatval($resultado[0]->total), 2);
if ($extra_info) {
$totalServicios += round(floatval($resultado[0]->total), 2);
$margenServicios += round(floatval($resultado[0]->total) * floatval($resultado[0]->margen) / 100.0, 2);
$base = round(floatval($resultado[0]->total / (1 + $resultado[0]->margen / 100.0)), 2);
$base = round(floatval($base / $datosPedido->tirada) , 2)* $datosPedido->tirada;
$margenServicios += round(floatval($resultado[0]->total - $base), 2);
}
}
@ -2731,7 +2763,9 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$coste_servicios += round(floatval($resultado[0]->total), 2);
if ($extra_info) {
$totalServicios += round(floatval($resultado[0]->total), 2);
$margenServicios += round(floatval($resultado[0]->total) * floatval($resultado[0]->margen) / 100.0, 2);
$base = round(floatval($resultado[0]->total / (1 + $resultado[0]->margen / 100.0)), 2);
$base = round(floatval($base / $datosPedido->tirada) , 2)* $datosPedido->tirada;
$margenServicios += round(floatval($resultado[0]->total - $base), 2);
}
}
@ -2745,12 +2779,12 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$precio_u,
round(($total_por_tirada) / $tirada[$t], 4)
);
array_push($peso, round($peso_interior + $peso_cubierta + $peso_sobrecubierta + $peso_guardas, 2));
array_push($peso, round($peso_interior + $peso_cubierta + $peso_sobrecubierta + $peso_guardas + $peso_faja, 2));
if ($extra_info) {
$totalServicios -= $margenServicios;
if (($margenServicios + $totalServicios) > 0) {
$porcentajeMargenServicios = $margenServicios / ($margenServicios + $totalServicios) * 100;
$porcentajeMargenServicios = $margenServicios / ($totalServicios) * 100;
} else {
$porcentajeMargenServicios = 0;
}

View File

@ -115,7 +115,7 @@ class Presupuestomanipulados extends \App\Controllers\BaseResourceController
if (count($datos_tarifas) > 0) {
foreach ($datos_tarifas as $tarifa) {
$values = $model->getPrecioTarifa($tarifa, $tirada, $POD);
$values = $model->getPrecioTarifa($tarifa['tarifa_manipulado_id'], $tirada, $POD);
$values[0]->cubierta = $tarifa['cubierta'] ?? 0;
$values[0]->sobrecubierta = $tarifa['sobrecubierta'] ?? 0;
array_push($result, $values[0]);

View File

@ -86,6 +86,21 @@ class Presupuestopreimpresiones extends \App\Controllers\BaseResourceController
return $this->respond($data);
}
public function getServiciosPreimpresion($datos_tarifas)
{
$result = [];
$model = model('App\Models\Presupuestos\Presupuestopreimpresiones');
if (count($datos_tarifas) > 0) {
foreach ($datos_tarifas as $tarifa) {
$values = $model->getPrecioTarifa($tarifa);
array_push($result, $values[0]);
}
}
return $result;
}
public function datatable()
{
if ($this->request->isAJAX()) {

View File

@ -86,6 +86,20 @@ class Presupuestoserviciosextra extends \App\Controllers\BaseResourceController
return $this->respond($data);
}
public function getServiciosExtra($datos_tarifas)
{
$result = [];
$model = model('App\Models\Presupuestos\PresupuestoServiciosExtraModel');
if (count($datos_tarifas) > 0) {
foreach ($datos_tarifas as $tarifa) {
$values = $model->getPrecioTarifa($tarifa);
array_push($result, $values[0]);
}
}
return $result;
}
public function datatable()
{
if ($this->request->isAJAX()) {

View File

@ -88,6 +88,8 @@ class Presupuestotiradasalternativas extends \App\Controllers\BaseResourceContro
$json_data_acabados = $reqData['json_acabados'] ?? null;
$json_data_encuadernacion = $reqData['json_encuadernaciones'] ?? null;
$json_data_manipulado = $reqData['json_manipulado'] ?? null;
$json_data_preimpresion = $reqData['json_preimpresion'] ?? null;
$json_data_extra = $reqData['json_extra'] ?? null;
$cliente_id = $reqData['cliente_id'] ?? 0;
$faja_alto = $reqData['faja_alto'] ?? 0;
@ -95,6 +97,8 @@ class Presupuestotiradasalternativas extends \App\Controllers\BaseResourceContro
$tipo_impresion_id = $reqData['tipo_impresion_id'] ?? 4;
$tirada = $reqData['tirada'] ?? 0;
$values = [];
if ($json_data) {
@ -126,7 +130,9 @@ class Presupuestotiradasalternativas extends \App\Controllers\BaseResourceContro
} else if ($linea['row_id'] == 'lp_sobrecubierta' || $linea['row_id'] == 'lp_cubierta' || $linea['row_id'] == 'lp_faja') {
$datosPedido->solapas = $reqData['solapas_cubierta'];
if ($linea['row_id'] == 'lp_faja') {
$datosPedido->solapas = $solapas_faja;
$datosPedido->solapas = 1;
$datosPedido->alto = $faja_alto;
} else if ($linea['row_id'] == 'lp_sobrecubierta') {
$datosPedido->solapas = $reqData['solapas_sobrecubierta'];
}
@ -252,10 +258,6 @@ class Presupuestotiradasalternativas extends \App\Controllers\BaseResourceContro
$datosLinea['gramaje'] = $linea['gramaje'] ?? 0;
if ($linea['row_id'] != 'lp_rot_bn' && $linea['row_id'] != 'lp_rot_color') {
$data = $datosLinea;
if($uso=='faja'){
$data['datosPedido']->alto = $faja_alto;
}
$linea_coste = PresupuestoService::getLineaPresupuestoPlana($datosLinea);
} else {
$linea_coste = PresupuestoService::getLineaPresupuestoRotativa($datosLinea);
@ -311,10 +313,10 @@ class Presupuestotiradasalternativas extends \App\Controllers\BaseResourceContro
$result = $acabados->getServiciosAcabados($json_data_acabados, $reqData['tirada'], $POD);
if (count($result) > 0) {
foreach ($result as $servicio) {
$coste = round($servicio->total / (1 + $servicio->margen / 100), 2);
$margen = round($servicio->total - $coste, 2);
$servicios->coste += $coste;
$servicios->margen += $margen;
$servicios->coste += round(floatval($servicio->total), 2);
$base = round(floatval($servicio->total / (1 + $servicio->margen / 100.0)), 2);
$base = round(floatval($base / $datosPedido->tirada) , 2)* $datosPedido->tirada;
$servicios->margen += round(floatval($servicio->total - $base), 2);
}
}
}
@ -329,10 +331,10 @@ class Presupuestotiradasalternativas extends \App\Controllers\BaseResourceContro
$result = $encuadernacion->getServiciosEncuadernacion($json_data_encuadernacion, $reqData['tirada'], $reqData['paginas'], $reqData['ancho'], $reqData['alto'], $POD);
if (count($result) > 0) {
foreach ($result as $servicio) {
$coste = round($servicio->total / (1 + $servicio->margen / 100), 2);
$margen = round($servicio->total - $coste, 2);
$servicios->coste += $coste;
$servicios->margen += $margen;
$servicios->coste += round(floatval($servicio->total), 2);
$base = round(floatval($servicio->total / (1 + $servicio->margen / 100.0)), 2);
$base = round(floatval($base / $datosPedido->tirada) , 2)* $datosPedido->tirada;
$servicios->margen += round(floatval($servicio->total - $base), 2);
}
}
}
@ -346,10 +348,44 @@ class Presupuestotiradasalternativas extends \App\Controllers\BaseResourceContro
$result = $manipulados->getServiciosManipulado($json_data_manipulado, $reqData['tirada'], $POD);
if (count($result) > 0) {
foreach ($result as $servicio) {
$coste = round($servicio->total / (1 + $servicio->margen / 100), 2);
$margen = round($servicio->total - $coste, 2);
$servicios->coste += $coste;
$servicios->margen += $margen;
$servicios->coste += round(floatval($servicio->total), 2);
$base = round(floatval($servicio->total / (1 + $servicio->margen / 100.0)), 2);
$base = round(floatval($base / $datosPedido->tirada) , 2)* $datosPedido->tirada;
$servicios->margen += round(floatval($servicio->total - $base), 2);
}
}
}
}
if($json_data_preimpresion){
$json_data_preimpresion = json_decode($json_data_preimpresion, true);
if (count($json_data_preimpresion) > 0) {
$preimpresion = new Presupuestopreimpresiones();
$POD = (new \App\Models\Configuracion\ConfigVariableModel())->getVariable('POD')->value;
$result = $preimpresion->getServiciosPreimpresion($json_data_preimpresion);
if (count($result) > 0) {
foreach ($result as $servicio) {
$servicios->coste += round(floatval($servicio->total), 2);
$base = round(floatval($servicio->total / (1 + $servicio->margen / 100.0)), 2);
$base = round(floatval($base / $datosPedido->tirada) , 2)* $datosPedido->tirada;
$servicios->margen += round(floatval($servicio->total - $base), 2);
}
}
}
}
if($json_data_extra){
$json_data_extra = json_decode($json_data_extra, true);
if (count($json_data_extra) > 0) {
$extra = new Presupuestoserviciosextra();
$POD = (new \App\Models\Configuracion\ConfigVariableModel())->getVariable('POD')->value;
$result = $extra->getServiciosExtra($json_data_extra, $reqData['tirada'], $POD);
if (count($result) > 0) {
foreach ($result as $servicio) {
$servicios->coste += round(floatval($servicio->total), 2);
$base = round(floatval($servicio->total / (1 + $servicio->margen / 100.0)), 2);
$base = round(floatval($base / $datosPedido->tirada) , 2)* $datosPedido->tirada;
$servicios->margen += round(floatval($servicio->total - $base), 2);
}
}
}

View File

@ -26,13 +26,13 @@ class Test extends BaseController
public function index()
{
$model = model("\App\Models\Clientes\ClientePreciosModel");
/*$model = model("\App\Models\Clientes\ClientePreciosModel");
$model->debug_all_clientes_to_defecto();
echo '<pre>';
echo 'OK';
echo '</pre>';
echo '</pre>';*/
//xdebug_info();
xdebug_info();