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

View File

@ -1117,7 +1117,7 @@ class PresupuestoService extends BaseService
if( str_contains($linea->tipo, 'guardas') ){ if( str_contains($linea->tipo, 'guardas') ){
$datos['uso'] = 'guardas'; $datos['uso'] = 'guardas';
$datos['datosPedido']->paginas_impresion = linea->paginas_impresion; $datos['datosPedido']->paginas_impresion = $linea->paginas_impresion;
} }
$comp_data = PresupuestoService::obtenerComparadorPlana($datos); $comp_data = PresupuestoService::obtenerComparadorPlana($datos);
@ -1468,9 +1468,9 @@ class PresupuestoService extends BaseService
} }
// Si el presupuesto no es duplicado, se comprueba que // Si el presupuesto no es duplicado, se comprueba que
// no ha cambiado el precio unidad // no ha cambiado el precio unidad
if(round($nueva_tarifa[0]->precio_unidad, 2) != $servicio->precio_unidad || if(round($nueva_tarifa[0]->precio_unidad, 2) != floatval($servicio->precio_unidad) ||
$nueva_tarifa[0]->margen != $servicio->margen || $nueva_tarifa[0]->margen != floatval($servicio->margen) ||
$nueva_tarifa[0]->tiempo != $servicio->tiempo){ $nueva_tarifa[0]->tiempo != floatval($servicio->tiempo)){
$servicio->precio_unidad = round($nueva_tarifa[0]->precio_unidad, 2); $servicio->precio_unidad = round($nueva_tarifa[0]->precio_unidad, 2);
$servicio->tiempo = $nueva_tarifa[0]->tiempo==null?"": round($nueva_tarifa[0]->tiempo, 2); $servicio->tiempo = $nueva_tarifa[0]->tiempo==null?"": round($nueva_tarifa[0]->tiempo, 2);

View File

@ -62,7 +62,7 @@ async function get_coste_envio_tiradasAlternativas(tirada){
if(datos_tarifa.id!=null){ if(datos_tarifa.id!=null){
if(peso_envio>parseFloat(datos_tarifa.peso_max)){ if(peso_envio>parseFloat(datos_tarifa.peso_max)){
coste += parseFloat(datos_tarifa.peso_min) + (peso_envio-parseFloat(datos_tarifa.peso_min))*parseFloat(datos_tarifa.precio_adicional); coste += (parseFloat(datos_tarifa.precio_min) + (peso_envio-parseFloat(datos_tarifa.peso_min)) * parseFloat(datos_tarifa.precio_adicional)).toFixed(2);
} }
// si no se calcula linealmente // si no se calcula linealmente
else{ else{
@ -130,7 +130,7 @@ async function updateTablaEnvios(tirada_inicial = null, tirada = null){
if(datos_tarifa.id!=null){ if(datos_tarifa.id!=null){
if(peso_envio>parseFloat(datos_tarifa.peso_max)){ 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.peso_min) + (peso_envio-parseFloat(datos_tarifa.peso_min))*parseFloat(datos_tarifa.precio_adicional);
} }
// si no se calcula linealmente // si no se calcula linealmente

View File

@ -590,14 +590,18 @@ function init_servicio_encuadernado(){
} }
function convertirTiempo(horas){ function convertirTiempo(horas){
if(horas != null){ if(horas != null && horas.length>0){
if(parseFloat(horas)>0){
const seconds = parseFloat(horas) * 3600; const seconds = parseFloat(horas) * 3600;
// se convierte a formato hh:mm:ss // se convierte a formato hh:mm:ss
const h = Math.floor(seconds / 3600); const h = Math.floor(seconds / 3600);
const minutos = Math.floor((seconds % 3600) / 60); const minutos = Math.floor((seconds % 3600) / 60);
const segundos = seconds % 60; const segundos = seconds % 60;
return h + ':' + minutos + ':' + segundos; return h + ':' + minutos + ':' + segundos;
}
else{
return "";
}
} }
else{ else{
return ""; return "";

View File

@ -186,14 +186,14 @@ $('#saveDireccionEnvio').on('click', function(){
var precios = [] var precios = []
for (var i = 0; i < data.length; i++) { for (var i = 0; i < data.length; i++) {
if(peso_envio>data[i].peso_max){ if(peso_envio>data[i].peso_max || data[i].precio_max == 0){
data[i].precio = (data[i].peso_min + (peso_envio-data[i].peso_min)*data[i].precio_adicional).toFixed(2); data[i].precio = (parseFloat(data[i].precio_min) + (peso_envio-parseFloat(data[i].peso_min))*parseFloat(data[i].precio_adicional)).toFixed(2);
} }
// si no se calcula linealmente // si no se calcula linealmente
else{ else{
m=((data[i].precio_max-data[i].precio_min)/(data[i].peso_max-data[i].peso_min)) m=((data[i].precio_max-data[i].precio_min)/(data[i].peso_max-data[i].peso_min))
b=data[i].precio_max-m*data[i].peso_max b=data[i].precio_max-m*data[i].peso_max
data[i].precio = (m*peso_envio+b).toFixed(2); data[i].precio = parseFloat(m*peso_envio+b).toFixed(2);
} }
data[i].margen = data[i].margen data[i].margen = data[i].margen
} }

57808
xdebug.log

File diff suppressed because one or more lines are too long