haciendo pruebas

This commit is contained in:
2024-05-18 10:19:25 +02:00
parent efa327fb48
commit 6c748a8a2d
6 changed files with 57845 additions and 33 deletions

View File

@ -870,12 +870,11 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$proporcion = intval($direccion['unidades'])/$selected_tirada*100.0;
$unidades_calculo = floor($tirada[$i] * $proporcion / 100.0);
$peso_calculo = $peso_libro / $selected_tirada * $unidades_calculo;
$coste_envio = $this->calcular_coste_envio(
$direccion['id'], $peso_calculo, $unidades_calculo, $direccion['tipo']=='cajas'?0:1);
$direccion['id'], $peso_libro, $unidades_calculo, $direccion['tipo']=='cajas'?0:1);
if(count($coste_envio)> 0){
$coste = $coste_envio[0]->coste;
$margen = ($coste_envio[0]->coste * $coste_envio[0]->margen)/100.0;
$coste = floatval($coste_envio[0]->coste);
$margen = ($coste * floatval($coste_envio[0]->margen))/100.0;
$coste -= $margen;
$resultado_presupuesto['totales'][$i]['coste_envio'] += $coste;
$resultado_presupuesto['totales'][$i]['margen_envio'] += $margen;
@ -916,9 +915,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$selected_tirada, $datos_presupuesto, $datosCabecera, $resultado_presupuesto['info'],
$resumen_totales, $iva_reducido, $tiradas_alternativas);
// Lineas Presupuesto
/*
foreach ($resultado_presupuesto['info']['interior'] as $linea){
if(count($linea) > 0)
@ -949,11 +946,10 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$this->guardarServicio($id, $servicio, 'manipulado');
}
}
*/
foreach ($reqData['direcciones'] as $direccion){
$this->guardarLineaEnvio($id, $direccion, $peso_libro);
}
return $this->respond([
'value' => $id,
@ -979,9 +975,13 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
protected function guardarLineaEnvio($presupuestoId, $direccion, $peso_libro){
$unidades = intval($direccion['unidades']);
$peso_envio = $peso_libro * $unidades / 1000.0;
$data = $this->calcular_coste_envio($direccion['id'], $peso_libro, $direccion['unidades'], $direccion['tipo']=='cajas'?0:1);
if(count($data)>0){
$data[0]->presupuesto_id = $presupuestoId;
$data[0]->tarifa_id = $data[0]->id;
unset($data[0]->id);
@ -989,14 +989,14 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
unset($data[0]->coste);
$data[0]->entregaPieCalle = $direccion['tipo']=='cajas'?0:1;
unset($data[0]->tipo);
$data[0]->peso = $peso_envio;
$data[0]->cantidad = $unidades;
$model = new PresupuestoDireccionesModel();
$model->insert($data[0]);
}
}
protected function guardarTiradas($presupuestoId, $direccion){
}
protected function guardarServicio($presupuestoId, $servicio, $tipo){
@ -1063,17 +1063,17 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$margen = 0;
if ($data > 0) {
$peso_envio = $peso * $unidades / 1000.0; // peso libro * unidades y se pasa a gramos
$peso_envio = $peso * $unidades / 1000.0; // peso libro * unidades y se pasa a kilogramos
$tarifas_envio = $modelTarifaEnvio->getTarifaEnvio($data[0]->pais_id, $data[0]->cp, $peso_envio, $entregaPieCalle ? 'palets' : 'cajas');
for ($i = 0; $i < count($tarifas_envio); $i++) {
if ($peso > $tarifas_envio[$i]->peso_max) {
$tarifas_envio[$i]->precio = number_format($tarifas_envio[$i]->peso_min + ($peso - $tarifas_envio[$i]->peso_min) * $tarifas_envio[$i]->precio_adicional, 2);
if ($peso_envio > $tarifas_envio[$i]->peso_max || floatval($tarifas_envio[$i]->precio_max) == 0) {
$tarifas_envio[$i]->precio = number_format(floatval($tarifas_envio[$i]->precio_min) + ($peso_envio - floatval($tarifas_envio[$i]->peso_min)) * floatval($tarifas_envio[$i]->precio_adicional), 2);
}
// si no se calcula linealmente
else {
$m = (($tarifas_envio[$i]->precio_max - $tarifas_envio[$i]->precio_min) / ($tarifas_envio[$i]->peso_max - $tarifas_envio[$i]->peso_min));
$b = $tarifas_envio[$i]->precio_max - $m * $tarifas_envio[$i]->peso_max;
$tarifas_envio[$i]->precio = number_format($m * $peso + $b, 2);
$tarifas_envio[$i]->precio = number_format($m * $peso_envio + $b, 2);
}
$margen = $tarifas_envio[$i]->margen;
}