mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
trabajando en los envios
This commit is contained in:
@ -371,7 +371,9 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
|||||||
$this->viewData['serviciosPreimpresionList'] = (new PresupuestoPreimpresionesModel())->getResource($id)->get()->getResultObject();
|
$this->viewData['serviciosPreimpresionList'] = (new PresupuestoPreimpresionesModel())->getResource($id)->get()->getResultObject();
|
||||||
|
|
||||||
// Direciones presupuesto
|
// Direciones presupuesto
|
||||||
|
$this->getLineasDirecciones($presupuestoEntity);
|
||||||
$this->viewData['presupuestoDirecciones'] = (new PresupuestoDireccionesModel())->getResource("", $id)->get()->getResultObject();
|
$this->viewData['presupuestoDirecciones'] = (new PresupuestoDireccionesModel())->getResource("", $id)->get()->getResultObject();
|
||||||
|
|
||||||
|
|
||||||
$this->viewData['POD'] = $this->getPOD();
|
$this->viewData['POD'] = $this->getPOD();
|
||||||
|
|
||||||
@ -1379,4 +1381,13 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
|||||||
|
|
||||||
return PresupuestoService::checkLineasServicios($input_data, $serviciosPresupuesto);
|
return PresupuestoService::checkLineasServicios($input_data, $serviciosPresupuesto);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected function getLineasDirecciones($presupuestoEntity){
|
||||||
|
|
||||||
|
$direccionesEnvio = (new PresupuestoDireccionesModel())->getResource("", $presupuestoEntity->id)->get()->getResultObject();
|
||||||
|
|
||||||
|
$nuevasDirecciones = PresupuestoService::checkLineasEnvios($direccionesEnvio);
|
||||||
|
|
||||||
|
return $direccionesEnvio;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -18,7 +18,8 @@ use App\Models\Presupuestos\PresupuestoAcabadosModel;
|
|||||||
use App\Models\Presupuestos\PresupuestoManipuladosModel;
|
use App\Models\Presupuestos\PresupuestoManipuladosModel;
|
||||||
use App\Models\Presupuestos\PresupuestoEncuadernacionesModel;
|
use App\Models\Presupuestos\PresupuestoEncuadernacionesModel;
|
||||||
|
|
||||||
use App\Models\Tarifas\TarifaEncuadernacionModel;
|
use App\Models\Tarifas\TarifaEnvioModel;
|
||||||
|
|
||||||
|
|
||||||
class PresupuestoService extends BaseService
|
class PresupuestoService extends BaseService
|
||||||
{
|
{
|
||||||
@ -1171,7 +1172,7 @@ class PresupuestoService extends BaseService
|
|||||||
|
|
||||||
$model = new PresupuestoAcabadosModel();
|
$model = new PresupuestoAcabadosModel();
|
||||||
foreach ($servicios as $servicio) {
|
foreach ($servicios as $servicio) {
|
||||||
$count = 0;
|
|
||||||
$nueva_tarifa = $model->getPrecioTarifa($servicio->tarifa_acabado_id, $input_data['tirada'], $input_data['POD']);
|
$nueva_tarifa = $model->getPrecioTarifa($servicio->tarifa_acabado_id, $input_data['tirada'], $input_data['POD']);
|
||||||
if($nueva_tarifa && count($nueva_tarifa)>0){
|
if($nueva_tarifa && count($nueva_tarifa)>0){
|
||||||
if(round($nueva_tarifa[0]->precio_unidad, 2) != $servicio->precio_unidad ||
|
if(round($nueva_tarifa[0]->precio_unidad, 2) != $servicio->precio_unidad ||
|
||||||
@ -1313,6 +1314,56 @@ class PresupuestoService extends BaseService
|
|||||||
return [$cambio, $serviciosUpdated];
|
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
|
// Funcion que comprueba si existe una maquina
|
||||||
private static function checkMaquina($maquina_id){
|
private static function checkMaquina($maquina_id){
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user