When feed plan is approved, farm managers will plan operations around expected delivery dates. There may be logistical and planning reasons which require the feed mill to commit to the agreed upon dates, one such an example provided is when it snows, and farmers have to plan for plowing services to clear the road for scheduled deliveries. Once something like this has to be coordinated, deliveries optimized by flock performance take a lower priority to showing up at a certain times and dates.
...
Calculating Fixed Delivery Dates
Fulfilled Fixed Dates
Calculating Delivery Date Every Interval
Fixed Dates Bypass Delivery Optimization
Update to Inspection Criteria
Changes to The Audit Detail
ProcessDuring the calculation of the feed plan, fixed dates are treated as two things: An inspection criteria and an override for delivery date buffers.
A new delivery cause was added with the creation of this new feature. "Fixed Date Max Delivery Size" is a reason that we might see as we approach an upcoming fixed delivery date. Uncommitted, past deliveries may recalculate to recommend less feed to be delivered, so that more can be scheduled on the fixed date, or so that we do not get a bin return on that date.
This new reason has been added as the lowest priority reason to package and schedule a delivery.
Update to Inspection Criteria
To implement fixed delivery dates, we made them a new check in the inspection criteria. This is the list of reasons that can justify the creation of a feed plan record at any point in the hourly consumption of a flock.
The fixed delivery date criteria is checked only after withdrawal criteria has been checked; because withdrawals are higher priority than fixed dates, deliveries can still be planned when the flock hits a configured withdrawal outside of a fixed delivery date.
- Withdrawal Feed
- Withdrawal Additives
- Feed Profile Condition Met (move to next ration)
- Additive Profile Condition Met (move to next mix of additives)
- Bin Capacity Reached
- Max Delivery Size Achieved
- Fixed Delivery Date
Changes to The Audit Detail
A new key can be added to the app.config. This key, "FeedPlanAuditPath" will enable the audit of each feed plan to be written to a file on the local machine.
<
add
key
=
"FeedPlanAuditPath"
value
=
"C:\imp\fp\"
/>
Process
Once a user creates fixed dates, the generation process will factor them to ensure there are feed plan records with the corresponding delivery dates. It does so by performing the following logic | |
FplHouseProcess.Process | For every hour in the life of the flock, calculate consumption and check for reason events that trigger the creation of a feed plan. When reason criteria are met, generate a feed plan record |
FplConditionInspector.Inspect | Check every order event reason supported by the feed plan generate process |
FplConditionInspector.FixedDateIsNext |
|
FplFixedDates.PushNextFixedDate | The property FplFixedDates.TargetFixedDate is the placeholder for the date to be used as the next delivery date. This is a read-only property that can be populated by FplFixedDates.PushNextFixedDate |
FplConditionInspector.Inspect | When a reason criterion is met, the process will check if there are any fixed dates assigned to the next delivery date placeholder. If there are, it will force a hard completion of the current order request. |
FplHouseProcess.CreateNewRequest | After creating the current feed plans, the process creates a new order request. It is at this point that the fixed date placed on hold by FplConditionInspector.FixedDateIsNext is used |
FplFixedDates.PopNextFixedDate | If the target fixed date is populated, this method returns its value and also sets the field to null so that it is not used by subsequent order requests. |
OrderRequest.SetFixedDates |
|