trabajando en los envios

This commit is contained in:
75134972k
2024-03-26 14:01:13 +01:00
parent 799a9a10df
commit 848bf90a6e
2 changed files with 64 additions and 2 deletions

View File

@ -371,7 +371,9 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
$this->viewData['serviciosPreimpresionList'] = (new PresupuestoPreimpresionesModel())->getResource($id)->get()->getResultObject();
// Direciones presupuesto
$this->getLineasDirecciones($presupuestoEntity);
$this->viewData['presupuestoDirecciones'] = (new PresupuestoDireccionesModel())->getResource("", $id)->get()->getResultObject();
$this->viewData['POD'] = $this->getPOD();
@ -1379,4 +1381,13 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
return PresupuestoService::checkLineasServicios($input_data, $serviciosPresupuesto);
}
protected function getLineasDirecciones($presupuestoEntity){
$direccionesEnvio = (new PresupuestoDireccionesModel())->getResource("", $presupuestoEntity->id)->get()->getResultObject();
$nuevasDirecciones = PresupuestoService::checkLineasEnvios($direccionesEnvio);
return $direccionesEnvio;
}
}

View File

@ -18,7 +18,8 @@ use App\Models\Presupuestos\PresupuestoAcabadosModel;
use App\Models\Presupuestos\PresupuestoManipuladosModel;
use App\Models\Presupuestos\PresupuestoEncuadernacionesModel;
use App\Models\Tarifas\TarifaEncuadernacionModel;
use App\Models\Tarifas\TarifaEnvioModel;
class PresupuestoService extends BaseService
{
@ -1171,7 +1172,7 @@ class PresupuestoService extends BaseService
$model = new PresupuestoAcabadosModel();
foreach ($servicios as $servicio) {
$count = 0;
$nueva_tarifa = $model->getPrecioTarifa($servicio->tarifa_acabado_id, $input_data['tirada'], $input_data['POD']);
if($nueva_tarifa && count($nueva_tarifa)>0){
if(round($nueva_tarifa[0]->precio_unidad, 2) != $servicio->precio_unidad ||
@ -1313,6 +1314,56 @@ class PresupuestoService extends BaseService
return [$cambio, $serviciosUpdated];
}
public static function checkLineasEnvios($envios){
$cambio = false;
if(count($envios)>0){
$model = new TarifaEnvioModel();
foreach ($envios as $envio) {
$paisId = $envio->pais_id;
$cp= $envio->cp;
$peso= $envio->peso;
$tipo_envio= $envio->entregaPieCalle==1?'palets':'cajas';
$nueva_tarifa = $model->getTarifaEnvio($paisId, $cp, $peso, $tipo_envio);
//$nueva_tarifa = $model->getPrecioTarifa($envio->tarifa_envio_id, $input_data['tirada'], $input_data['POD']);
if($nueva_tarifa && count($nueva_tarifa)>0){
$coste = 0;
$margen = 0;
if($peso>$nueva_tarifa[0]->peso_max){
$coste += floatval($nueva_tarifa[0]->peso_min) + ($peso-floatval($nueva_tarifa[0]->peso_min))*floatval($nueva_tarifa[0]->precio_adicional);
}
// si no se calcula linealmente
else{
$m=(floatval($nueva_tarifa[0]->precio_max)-floatval($nueva_tarifa[0]->precio_min)) / ((floatval($nueva_tarifa[0]->peso_max)-floatval($nueva_tarifa[0]->peso_min)));
$b=floatval($nueva_tarifa[0]->precio_max)-$m*floatval($nueva_tarifa[0]->peso_max);
$coste += floatval($m*$peso+$b);
}
$margen += $coste*floatval($nueva_tarifa[0]->margen)/100.0;
if(round($coste, 2) != $envio->precio ||
$margen != $envio->margen){
$envio->precio = round($coste, 2);
$envio->margen = $margen;
$envio->tarifa_id = $nueva_tarifa[0]->id;
$cambio = true;
}
//$model->updateTarifas($input_data['presupuesto_id'], array($envio_temp));
}
}
}
return [$cambio, $envios];
}
// Funcion que comprueba si existe una maquina
private static function checkMaquina($maquina_id){