mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
haciendo pruebas
This commit is contained in:
@ -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;
|
||||
}
|
||||
|
||||
@ -1117,7 +1117,7 @@ class PresupuestoService extends BaseService
|
||||
|
||||
if( str_contains($linea->tipo, 'guardas') ){
|
||||
$datos['uso'] = 'guardas';
|
||||
$datos['datosPedido']->paginas_impresion = linea->paginas_impresion;
|
||||
$datos['datosPedido']->paginas_impresion = $linea->paginas_impresion;
|
||||
}
|
||||
|
||||
$comp_data = PresupuestoService::obtenerComparadorPlana($datos);
|
||||
@ -1468,9 +1468,9 @@ class PresupuestoService extends BaseService
|
||||
}
|
||||
// Si el presupuesto no es duplicado, se comprueba que
|
||||
// no ha cambiado el precio unidad
|
||||
if(round($nueva_tarifa[0]->precio_unidad, 2) != $servicio->precio_unidad ||
|
||||
$nueva_tarifa[0]->margen != $servicio->margen ||
|
||||
$nueva_tarifa[0]->tiempo != $servicio->tiempo){
|
||||
if(round($nueva_tarifa[0]->precio_unidad, 2) != floatval($servicio->precio_unidad) ||
|
||||
$nueva_tarifa[0]->margen != floatval($servicio->margen) ||
|
||||
$nueva_tarifa[0]->tiempo != floatval($servicio->tiempo)){
|
||||
|
||||
$servicio->precio_unidad = round($nueva_tarifa[0]->precio_unidad, 2);
|
||||
$servicio->tiempo = $nueva_tarifa[0]->tiempo==null?"": round($nueva_tarifa[0]->tiempo, 2);
|
||||
|
||||
@ -62,7 +62,7 @@ async function get_coste_envio_tiradasAlternativas(tirada){
|
||||
if(datos_tarifa.id!=null){
|
||||
|
||||
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
|
||||
else{
|
||||
@ -130,7 +130,7 @@ async function updateTablaEnvios(tirada_inicial = null, tirada = 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);
|
||||
}
|
||||
// si no se calcula linealmente
|
||||
|
||||
@ -590,14 +590,18 @@ function init_servicio_encuadernado(){
|
||||
}
|
||||
|
||||
function convertirTiempo(horas){
|
||||
if(horas != null){
|
||||
|
||||
const seconds = parseFloat(horas) * 3600;
|
||||
// se convierte a formato hh:mm:ss
|
||||
const h = Math.floor(seconds / 3600);
|
||||
const minutos = Math.floor((seconds % 3600) / 60);
|
||||
const segundos = seconds % 60;
|
||||
return h + ':' + minutos + ':' + segundos;
|
||||
if(horas != null && horas.length>0){
|
||||
if(parseFloat(horas)>0){
|
||||
const seconds = parseFloat(horas) * 3600;
|
||||
// se convierte a formato hh:mm:ss
|
||||
const h = Math.floor(seconds / 3600);
|
||||
const minutos = Math.floor((seconds % 3600) / 60);
|
||||
const segundos = seconds % 60;
|
||||
return h + ':' + minutos + ':' + segundos;
|
||||
}
|
||||
else{
|
||||
return "";
|
||||
}
|
||||
}
|
||||
else{
|
||||
return "";
|
||||
|
||||
@ -186,14 +186,14 @@ $('#saveDireccionEnvio').on('click', function(){
|
||||
|
||||
var precios = []
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
if(peso_envio>data[i].peso_max){
|
||||
data[i].precio = (data[i].peso_min + (peso_envio-data[i].peso_min)*data[i].precio_adicional).toFixed(2);
|
||||
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);
|
||||
}
|
||||
// si no se calcula linealmente
|
||||
else{
|
||||
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
|
||||
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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user