diff --git a/ci4/app/Services/PresupuestoService.php b/ci4/app/Services/PresupuestoService.php index f73c08ae..9f470515 100755 --- a/ci4/app/Services/PresupuestoService.php +++ b/ci4/app/Services/PresupuestoService.php @@ -14,6 +14,8 @@ class PresupuestoService extends BaseService */ const MARGEN_PAGINAS_ROTATIVA = 15.0; + const SANGRE_FORMAS = 5.0; + const SANGRE_FORMAS_CUBIERTA = 20.0; /** @@ -322,9 +324,12 @@ class PresupuestoService extends BaseService // El ancho si es cosido es el doble $anchoForCalculo = $isCosido ? $ancho * 2 : $ancho; + // Hay que sumar la la sangre al alto y al ancho + $anchoForCalculo += (2*self::SANGRE_FORMAS); + $altoForCalculo = $alto + (2*self::SANGRE_FORMAS); $h1_temp = floor($maquina->ancho_impresion / $anchoForCalculo); - $h2_temp = floor($maquina->ancho_impresion / $alto); + $h2_temp = floor($maquina->ancho_impresion / $altoForCalculo); // horizontales if($a_favor_fibra){ @@ -336,15 +341,15 @@ class PresupuestoService extends BaseService else $h1 = $h1_temp; - $v1 = floor($maquina->alto_click / $alto); + $v1 = floor($maquina->alto_click / $altoForCalculo); $formas_h = $h1 * $v1; //p1 } // verticales 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; + $h2 = ($h2_temp * $altoForCalculo + 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); @@ -385,7 +390,11 @@ class PresupuestoService extends BaseService else{ $anchoForCalculo = $ancho; } - + + // Hay que sumar la la sangre al alto y al ancho + $anchoForCalculo += (2*self::SANGRE_FORMAS); + $altoForCalculo = $alto + (2*self::SANGRE_FORMAS); + if($uso == 'cubierta' || $uso == 'sobrecubierta') { if(property_exists($maquina, 'forzar_num_formas_horizontales_cubierta') && property_exists($maquina, 'forzar_num_formas_verticales_cubierta')){ @@ -405,7 +414,7 @@ class PresupuestoService extends BaseService else{ // horizontales $h1_temp = floor(floatval($maquina->ancho_impresion) / $anchoForCalculo); - $h2_temp = floor(floatval($maquina->ancho_impresion) / $alto); + $h2_temp = floor(floatval($maquina->ancho_impresion) / $altoForCalculo); } @@ -420,16 +429,16 @@ class PresupuestoService extends BaseService } - $v1 = floor($maquina->alto_impresion / $alto); + $v1 = floor($maquina->alto_impresion / $altoForCalculo); $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 * $alto + 2 * $calles[0]->externas + ($h2_temp - 1) * $calles[0]->internas < ($maquina->ancho)) ? $h2_temp : $h2_temp - 1; + $h2 = ($h2_temp * $altoForCalculo + 2 * $calles[0]->externas + ($h2_temp - 1) * $calles[0]->internas < ($maquina->ancho)) ? $h2_temp : $h2_temp - 1; else{ - $h2 = $alto<=$maquina->ancho_impresion?$h2_temp:0; + $h2 = $altoForCalculo<=$maquina->ancho_impresion?$h2_temp:0; } $v2 = floor($maquina->alto_impresion / $anchoForCalculo); @@ -552,13 +561,19 @@ class PresupuestoService extends BaseService if ($datosPedido->solapas) { $ancho_total += (floatval($datosPedido->solapas_ancho) * 2) + 6; } + // En cualquier otro caso se le suma 5mm de sangre por cada lado + $ancho_total += (2*self::SANGRE_FORMAS); } // Tapa dura cosido y fresado else if($tipo_impresion_id == 1 || $tipo_impresion_id == 3){ $ancho_total = floatval($datosPedido->ancho)*2 + floatval($datosPedido->lomo); $ancho_total += property_exists($datosPedido, 'lomo_cubierta')?$datosPedido->lomo_cubierta:0; // Se añaden 20mm de sangre por cada lado + 2 * 0.6mm de portada y contraportada -> total 41.2 - $ancho_total += 41.2; + $ancho_total += (1.2+2*self::SANGRE_FORMAS_CUBIERTA); + } + else{ + // En cualquier otro caso se le suma 5mm de sangre por cada lado + $ancho_total += (2*self::SANGRE_FORMAS); } } return $ancho_total; @@ -572,11 +587,15 @@ class PresupuestoService extends BaseService $alto_total = 0; if ($datosPedido) { - // Tapa blanda (cosido y fresado) $alto_total = floatval($datosPedido->alto); + // Tapa dura (cosido y fresado) if($tipo_impresion_id == 1 || $tipo_impresion_id == 3){ // Se añaden 20mm de sangre por cada lado + 0.7mm extra que sobresale -> total 40.7 - $alto_total += 40.7; + $alto_total += (0.7+2*self::SANGRE_FORMAS_CUBIERTA); + } + // En cualquier otro caso se le suma 5mm de sangre por cada lado + else{ + $alto_total += (2*self::SANGRE_FORMAS); } } return $alto_total;