arreglado bug rotativa. Trabajando en bug inkjet

This commit is contained in:
Jaime Jiménez
2024-02-03 20:19:48 +01:00
parent f82228f8be
commit 0813abfb10
4 changed files with 141 additions and 80 deletions

View File

@ -45,7 +45,7 @@ class PresupuestoService extends BaseService
if ($uso!='rotativa') {
$ancho_calculo = ($uso=='cubierta' || $uso=='sobrecubierta') ? $datosPedido->anchoExteriores : $datosPedido->ancho;
$formas = PresupuestoService::getNumFormasPlana($uso, $maquina, $ancho_calculo, $datosPedido->alto, $datosPedido->isCosido);
$formas = PresupuestoService::getNumFormasPlana($uso, $maquina, $ancho_calculo, $datosPedido->alto, $datosPedido->isCosido,);
$response['fields'] = $formas;
}
@ -387,13 +387,18 @@ class PresupuestoService extends BaseService
$data['alto_click'] = $maquina->alto_click;
$formas = PresupuestoService::getNumFormasRot($maquina, $datosPedido->ancho, $datosPedido->alto, $datosPedido->isCosido);
$formas = PresupuestoService::getNumFormasRot(
$maquina,
$datosPedido->ancho,
$datosPedido->alto,
$datosPedido->isCosido,
$parametrosRotativa->a_favor_fibra);
$data['num_formas'] = $formas;
return $data;
}
public static function getNumFormasRot($maquina, $ancho, $alto, $isCosido)
public static function getNumFormasRot($maquina, $ancho, $alto, $isCosido, $a_favor_fibra = true)
{
// El ancho si es cosido es el doble
$anchoForCalculo = $isCosido ? $ancho * 2 : $ancho;
@ -403,35 +408,38 @@ class PresupuestoService extends BaseService
$h2_temp = floor($maquina->ancho_impresion / $alto);
// horizontales
$calles = (new \App\Models\Configuracion\MaquinasCallesModel())->getCallesForMaquina($maquina->maquina_id, $h1_temp);
// Si son mas de 2 formas
if(count($calles)>0)
$h1 = ($h1_temp * $anchoForCalculo + 2 * $calles[0]->externas + ($h1_temp - 1) * $calles[0]->internas < ($maquina->ancho)) ? $h1_temp : $h1_temp - 1;
else
$h1 = $h1_temp;
$v1 = floor($maquina->alto_click / $alto);
$formas_h = $h1 * $v1; //p1
if($a_favor_fibra){
$calles = (new \App\Models\Configuracion\MaquinasCallesModel())->getCallesForMaquina($maquina->maquina_id, $h1_temp);
// Si son mas de 2 formas
if(count($calles)>0)
$h1 = ($h1_temp * $anchoForCalculo + 2 * $calles[0]->externas + ($h1_temp - 1) * $calles[0]->internas < ($maquina->ancho)) ? $h1_temp : $h1_temp - 1;
else
$h1 = $h1_temp;
$v1 = floor($maquina->alto_click / $alto);
$formas_h = $h1 * $v1; //p1
}
// verticales
$calles = (new \App\Models\Configuracion\MaquinasCallesModel())->getCallesForMaquina($maquina->maquina_id, $h2_temp);
if(count($calles)>0)
$h2 = ($h2_temp * $anchoForCalculo + 2 * $calles[0]->externas + ($h2_temp - 1) * $calles[0]->internas < ($maquina->ancho)) ? $h2_temp : $h2_temp - 1;
else
$h2 = $h2_temp;
$v2 = floor($maquina->alto_click / $anchoForCalculo);
$formas_v = $h2 * $v2; //p2
else{
$calles = (new \App\Models\Configuracion\MaquinasCallesModel())->getCallesForMaquina($maquina->maquina_id, $h2_temp);
if(count($calles)>0)
$h2 = ($h2_temp * $alto + 2 * $calles[0]->externas + ($h2_temp - 1) * $calles[0]->internas < ($maquina->ancho)) ? $h2_temp : $h2_temp - 1;
else
$h2 = $h2_temp;
$v2 = floor($maquina->alto_click / $anchoForCalculo);
$formas_v = $h2 * $v2; //p2
}
$num_formas = ($formas_h > $formas_v) ? $formas_h : $formas_v;
$num_formas = $a_favor_fibra ? $formas_h : $formas_v;
$num_formas = $isCosido ? $num_formas * 2 : $num_formas;
// si no hay formas se devuelve n/a
if ($num_formas == 0) {
$response['posicion_formas'] = 'n/a'; // not available
} else if ($formas_h > $formas_v) {
} else if ($a_favor_fibra) {
$response['posicion_formas'] = 'h';
$response['num_formas_horizontales'] = $h1;
$response['num_formas_verticales'] = $v1;