añadido margen a tarifas impresion

This commit is contained in:
Jaime Jiménez
2024-02-24 14:05:01 +01:00
parent c6b7a1712b
commit a44ee4e4ed
9 changed files with 71 additions and 31 deletions

View File

@ -40,7 +40,7 @@ class PresupuestoService extends BaseService
*
* @return [type]
*/
public static function getCostesLinea($uso, $datosPedido, $maquina, $papel_impresion, $opciones_papel, $tarifa, $forzar_a_favor_fibra = false)
public static function getCostesLinea($uso, $datosPedido, $maquina, $papel_impresion, $opciones_papel, $tarifa, $tarifa_margen, $forzar_a_favor_fibra = false)
{
$response['fields'] = [];
@ -64,12 +64,17 @@ class PresupuestoService extends BaseService
$precio_click = 0;
$precio_click_pedido = 0;
$margen_click_pedido = 0;
$pliegos_libro = 0;
$cubierta = array_key_exists('cubierta', $opciones_papel) ? $opciones_papel['cubierta'] : 0;
$sobrecubierta = array_key_exists('sobrecubierta', $opciones_papel) ? $opciones_papel['sobrecubierta'] : 0;
$rotativa = array_key_exists('rotativa', $opciones_papel) ? $opciones_papel['rotativa'] : 0;
$precio_click = $tarifa * (1 + $tarifa_margen / 100.0);
$margen_click = $tarifa * ($tarifa_margen / 100.0);
//interior (bn o color)
if ($cubierta == 0 && $sobrecubierta == 0 && $rotativa == 0) {
// precio papel
@ -92,17 +97,22 @@ class PresupuestoService extends BaseService
);
// impresion
$precio_click = $tarifa;
if($uso=='guardas'){
if(floatval($datosPedido->paginas_impresion)==0)
$precio_click_pedido = 0;
elseif (floatval($datosPedido->paginas_impresion)==4) // Una cara
elseif (floatval($datosPedido->paginas_impresion)==4){ // Una cara
$precio_click_pedido = $pliegos_pedido * $precio_click;
else // dos caras (impresion normal)
$margen_click_pedido = $pliegos_pedido * $margen_click;
}
else{ // dos caras (impresion normal)
$precio_click_pedido = $pliegos_pedido * 2 * $precio_click;
$margen_click_pedido = $pliegos_pedido * 2 * $margen_click;
}
}
else
else {
$precio_click_pedido = $pliegos_pedido * 2 * $precio_click;
$margen_click_pedido = $pliegos_pedido * 2 * $margen_click;
}
}
// cubierta o sobrecubierta (siempre a color)
@ -112,7 +122,7 @@ class PresupuestoService extends BaseService
// En cubierta y sobrecubierta siempre el mínimo pliego es 1
$pliegos_libro = $pliegos_libro<1?1:$pliegos_libro;
$pliegos_pedido = $pliegos_libro * ($datosPedido->tirada + $datosPedido->merma);
$precio_libro = $pliegos_libro * $precio_pliego_impresion;
$precio_libro = $pliegos_libro * ($precio_pliego_impresion + $margen_pliego_impresion);
$margen_papel_pedido = $pliegos_libro * $margen_pliego_impresion * ($datosPedido->tirada + $datosPedido->merma);
$precio_pedido = $precio_libro * ($datosPedido->tirada + $datosPedido->merma);
@ -124,12 +134,13 @@ class PresupuestoService extends BaseService
// impresion
if ($tarifa) {
$precio_click = $tarifa;
$precio_click_pedido = $pliegos_pedido * $precio_click;
$margen_click_pedido = $pliegos_pedido * $margen_click;
// dos caras
if($datosPedido->paginas > 2) {
$precio_click_pedido *= 2.0;
$margen_click_pedido *= 2.0;
}
}
}
@ -138,7 +149,7 @@ class PresupuestoService extends BaseService
// response
$response['fields']['pliegos_libro'] = $pliegos_libro;
$response['fields']['pliegos_pedido'] = $pliegos_pedido;
$response['fields']['precios_pliegos'] = $precio_pliego_impresion;
$response['fields']['precios_pliegos'] = $precio_pliego_impresion+$margen_pliego_impresion;
$response['fields']['precio_libro'] = $precio_libro;
$response['fields']['margen_papel_pedido'] = $margen_papel_pedido;
$response['fields']['precio_pedido'] = $precio_pedido;
@ -146,6 +157,7 @@ class PresupuestoService extends BaseService
$response['fields']['peso'] = $peso;
$response['fields']['precio_click'] = $precio_click;
$response['fields']['precio_click_pedido'] = $precio_click_pedido;
$response['fields']['margen_click_pedido'] = $margen_click_pedido;
$response['fields']['dimensiones_maquina'] = [$maquina->ancho, $maquina->alto];
$response['fields']['dimensiones_maquina_impresion'] = [$maquina->ancho_impresion, $maquina->alto_impresion];
@ -538,7 +550,7 @@ class PresupuestoService extends BaseService
else
$horas = 0;
return round($horas,2);
return $horas;
} catch (Exception $e) {
return 0;