Ü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.
$birinciMola = '09:00-09:15'; //15 Dakika Mola
$ikinciMola = '12:00-12:75'; // 45 Dakika Mola
$ucuncuMola = '15:15-15:30'; // 15 Dakika Mola
$isbaslangictarih = "18-10-2021";//İş başlangıç tarih
$isbaslangic = '07:15';
$isbitis = '17:00';
$toplamcalismadk = strtotime($isbitis) - strtotime($isbaslangic); // İş Başlangıc ve bitiş saati arasıbdaki saniye farkı
$toplamcalismadk = floor($toplamcalismadk/60) - 75; // saniye farkını dakikaya çevirme ve toplam mola saati çıkarıldı.
$ismiktari = 450;
$uretimsuresi = 100; // iş süresi saniye cinsinden hesaplandı
//İş Süresini Saniye Cinsinden hesaplama
$toplamsure_Sn = $ismiktari * $uretimsuresi;
$toplamsure_Dk =floor($toplamsure_Sn/60); // İşin Toplam sürecek zamanı dakika
$kacgun = floor($toplamsure_Dk / $toplamcalismadk); // İşin Kaç gün süreceğini hesaplamak
$toplamsure_Dk = floor($toplamsure_Dk % $toplamcalismadk); //
$isbitistarih = date("d-m-Y", strtotime($kacgun.' day', strtotime($isbaslangictarih))); // İş başlangıc tarihine iş sürecek gün sayısı eklendi
if ($toplamsure_Dk <=105) { //İş başlangıcından birinci molaya kadar ise
$bitis = date('H:i', strtotime('+'.$toplamsure_Dk.' minutes', strtotime($isbaslangic)));
}else if ($toplamsure_Dk > 105 && $toplamsure_Dk <= 270 ) {// İş 2. molaya kadar yapılacaksa
$toplamsure_Dk = $toplamsure_Dk + 15;
$bitis = date('H:i', strtotime('+'.$toplamsure_Dk.' minutes', strtotime($isbaslangic)));
}else if ($toplamsure_Dk > 270 && $toplamsure_Dk <= 420 ) { //İş 2. molaya kadar yapılacaksa
//toplam süreye 60 eklenecek
$toplamsure_Dk = $toplamsure_Dk + 60;
$bitis = date('H:i', strtotime('+'.$toplamsure_Dk.' minutes', strtotime($isbaslangic)));
}else if ($toplamsure_Dk > 420 && $toplamsure_Dk <= 510 ) { // İş 3. moladan sonra bitecekse
//toplam süreye 75 eklenecek
$toplamsure_Dk = $toplamsure_Dk + 75;
$bitis = date('H:i', strtotime('+'.$toplamsure_Dk.' minutes', strtotime($isbaslangic)));
}
echo 'İş Bitiş Tarihi : '.$isbitistarih.' - '.$bitis;
Daha dinamik hale getirilebilir Mola saatleri farklılık gösterilecekse molalar arası dakika farkı alınır.