Üretim Plan
Merhaba arkadaşlar,
Üretimi takip etmek amaçlı birşey yapmak istiyorum ama nasıl yapacağımı bilemiyorum yardımcı olurmusunuz?
7.15 de mesai başlıyor. 17.00 de bitiyor. 9.00 - 09.15 , 12.00 - 12.45 , 15.15 - 15.30 gibi üç molamız bulunuyor.
yapmak istediğim olay şu. zaman = 100 saniye. iş adedi: 130 adet 100x130 = 13000 saniye ediyor. 3saat 36 dakika sonra işi bitirecek yapan kişi.
ama bu süre uzayada bilir yada molaya denk gelebilir molayıda baslagıc saatine göre eklesin süreye istiyorum. işi 3 saatte değilde 12 saattede bitirebilir yani bir gün sonraya sarkacak. 17:00 a kadar olan çıkacak adedi bana bulsun bir sonraki güne aktarsın saat kaçta biteceğini yazdırayım istiyorum..
Umarım açıklayıcı olmuştur yardımlarınızı bekliyorum.
function calculate(string $start, int $count, int $time, array & $k): string
{
$to = $count * $time;
$workingDays = [1, 2, 3, 4, 5];
$from = new DateTime($start);
$interval = new DateInterval("PT1S");
$r = ($to * 10) + 172800;
$periods = new DatePeriod($from, $interval, $r);
$sec = 0;
$x = -1;
$z = 0;
foreach ($periods as $period) {
if (!in_array($period->format('N'), $workingDays)) continue;
$h = intval($period->format('H'));
$m = intval($period->format('i'));
if($period->format('N') != $x){
$x = $period->format('N');
if($z > 0){
array_push($k, $count - $z);
$z = 0;
}
}
if($sec >= $to){
return $period->format('Y-m-d H:i:s');
break;
}
if(($h >= 7 && $h <= 9)){
if($h == 7 && $m < 15){
continue;
} else if($h == 9 && $m >= 30 && $m < 45){
continue;
} else {
$sec++;
}
} else if(($h >= 9 && $h <= 12)){
if($h == 9 && $m < 45){
continue;
} else if($h == 12 && $m >= 15){
continue;
} else {
$sec++;
}
} else if(($h >= 13 && $h <= 15)){
if($h == 15 && $m >= 30 && $m < 45){
continue;
} else {
$sec++;
}
} else if(($h >= 15 && $h <= 17)){
if($h == 15 && $m >= 30 && $m < 45){
continue;
} else if($h == 17 && $m >= 30){
continue;
} else {
$sec++;
}
}
if($sec % $time == 0){
$z++;
}
}
}