Brief
There was a mistake in the previous spec in which we modified duration calculations. The effective time cunsuption term was not well defined.
The current algorithms that calculates effective time consuption should only by used now for internal calculations of operations start and stop dates.
We remove this value from the GUI and reports of calculations and replace it with other better defined values.
Mockup - in order
Mockup - standalone calculator
Algorithms
Operations labor and machine work time
Abstract operations work time = Cycle time * Numer of cycles needed in order + if
- if include setup time then
- + Setup time * Number of workstations
- if include additional time them:
- + Additional time * Number of workstations
Operations machine work time = Abstract operations work time * Machine utilization
Operations labor work time = Abstract operations work time * Labor utilization
Order machine work time = SUM(Operations machine work time)
Order labor work time = SUM(Operations labor work time)
Same algorithm should be used in:
- cost calculations
- planned values in production balance
The Abstract operations work time is a very abstract value and should not be show to the user in any scenario. Only the machine work time and labor work time make perfect sense for the user.
Operations start and end dates
Operations start date = if
- has no children operations then
- Operations start date = Order start date
- else
- Operations start date = MAX(Next operations start date calculated for children operations)
Operations duration time without nonworking time = Setup time + Additional time + if
- not Divisible cycle time then
- + Cycle time * roundUp(Numer of cycles needed in order / Number of workstations)
- else
- +
- *
- /
Operations duration time = Operations duration time without nonworking time distributes across working time
Next operation after cycles = required number of cycles to produce Next operation after produced quantity
Next operation after cycles is only calculated if Next operation after type == Produced all
Next operations block duration without nonworking time = Operations start date + Setup time + if
- not Divisible cycle time then
- + Cycle time * roundUp(Next operation after cycles / Number of workstations)
- else Operations duration timethen
- + Cycle time * / Number of workstations