Ich bräuchte bitte eine Prüfung auf plausibilität.
PHP-Code:
### PALETTEN LOGIK
function x_paletten($stck, $Fracht_x, $Fracht_y, $Fracht_z) {
$Palette_x = '120';
$Palette_y = '80';
$Palette_z = '140';
$a = 0;
$stck_['lang_1'] = floor($Palette_x / $Fracht_x); // P120 k60 breit 2
$stck_['lang_2'] = floor($Palette_x / $Fracht_y); // P120 k40 breit 1
$stck_['breit_1'] = floor($Palette_y / $Fracht_x); // P80 K60 lang 2
$stck_['breit_2'] = floor($Palette_y / $Fracht_y); // P80 K40 lang1
/* foreach ($stck_ as $k => $v){
echo $k . ': ' . $v . '<br>';
} */
## Passende zweite Palettenlänge ermitteln
if( array_search(max($stck_), $stck_) == 'lang_1'){
$a = $stck_['breit_2'];
}elseif(array_search(max($stck_), $stck_) == 'lang_2'){
$a = $stck_['breit_1'];
}elseif(array_search(max($stck_), $stck_) == 'breit_1'){
$a = $stck_['lang_2'];
}elseif(array_search(max($stck_), $stck_) == 'breit_2'){
$a = $stck_['lang_1'];
}
$max = $stck_[array_search(max($stck_), $stck_)]; // die längste seite
## Keine Übergrösse
if(($a == 0) || (count(array_keys($stck_, "0")) < 2) && ($Palette_z >= $Fracht_z) ) {
$a = 1;
}else {
return "Fehler";
break;
}
$schicht = ($max * $a); // Anzahl an Packware, je Schicht
#echo '<br>';
$schichten = ( ceil($stck / $schicht)); // Anzahl Schichten, der gesamten Packware
$hoch = ceil($Fracht_z * $schichten); // Höhe Palette
// Aufteilen auf mehr als eine Palette, wenn Höhe überschritten
if($hoch > $Palette_z){ $Paletten = ceil($hoch / $Palette_z) ; }else{ $Paletten = 1; }
return array('Schichten' => $schichten, 'Hoch' => $hoch, 'Paletten' => $Paletten);
}
Kommentar