/// <summary> /// Returns amount of batches and production in each batch, calculated from workload "Zeit" input /// </summary> /// <param name="workload"></param> /// <returns></returns> public static Batch[] CalculateBatches(double workload, LineCompatibility line) { var batches = new List <Batch>(); if (workload < BATCHDAYSLIMIT) { batches.Add(new Batch(workload, line)); } else { int batchCount = (int)(workload / WORKHOURS_PER_WEEK); batches.AddRange(Enumerable.Range(0, batchCount).Select(i => new Batch(WORKHOURS_PER_WEEK, line))); batches.Add(new Batch(workload - batchCount * WORKHOURS_PER_WEEK, line)); } return(batches.ToArray()); }
public Batch(double usedWorkHours, LineCompatibility compatibility) { UsedWorkHours = usedWorkHours; Compatibility = compatibility; }