Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

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.  

The feed plan fixed date feature will force the regeneration process to lock down specific delivery dates and prioritize creating records with those dates.



Adding Single Fixed Dates


During an in progress feed plan, users may want to fix one or more dates. To fix a single date from the feed plan, right click that date and choose "Set Fixed Delivery Date" from the context menu. This can only be done for records that are not committed or actual deliveries.


If the flock is configured to auto recalculate, the feed plan will regenerate.


This can be done at any point before approval, or during an in-progress feed plan.


Unlike the "Regenerate" option, which will only recalculate records after an updated feed plan record, adding a fixed date will also recalculate records prior to the date being added. The reason, is that planned deliveries in progress that can afford to be edited will need to be re-adjusted to account for feed that we are committing to deliver on a fixed date. Otherwise, we may deliver more than the bins can accommodate on the date we arrive with the schedule delivery.


The record selected, and any others on the same delivery date, will be marked as having a fixed date. Regardless of changes to the feed plan, our goal is to deliver as much as we can on this date.


If the flock is configured to auto recalculate, the feed plan will regenerate.


Fixed delivery dates edited on the main feed plan form will also update the fixed delivery date saved to the database.



Fixed delivery dates can be removed, too. Right click a fixed delivery date (they are distinguishable by  icon next to the delivery date) to reveal the context menu option "Remove Fixed Delivery Date". This will remove that date from the list of fixed dates for this flock, and prompt a recalculation for the feed plan.


Fixed dates, and the recalculated feed plan, are not committed to the database until users click "Save".



Adding Fixed Dates During Initial Feed Plan

Before a feed plan has been approved, or while it's in process, all fixed dates can be accessed via the "Fixed Dates" button on the Tools menu.


This screen will allow you to enter many fixed dates at a time, without requiring the feed plan to have already been generated. If we know a set of dates that we must deliver on before even generating the initial feed plan we can enter them here. We can also enter comments for any committed date from this screen- something we can't do when managing them from the feed plan view.


It is important to note, that this list includes any dates that were created or edited from the feed plan view, as well. We can add dates using the context menus, and then manage them and include comments from this dialog.

When the dialog closes, and if the feed plan is configured to regenerate, the whole plan will recalculate to consider the new fixed dates.

Changes to fixed dates and the feed plan will not be committed until we click "Save" from the main form.

Right-clicking any date in the list will allow users to delete that selected date, or clear all dates in the list. Cancelling out of this screen will undo any changes, including deletes. Clicking "Accept" will commit the changes and prompt the user to recalculate, if configured.


While they will not be labeled in the "Approved" feed plan tab, Fixed dates that are created during the approval process will be applied to the in-progress feed plan.


Fixing Every Date in the Initial Feed Plan

You can create Fixed dates by committing every approved delivery as a fixed date when the plan is approved. We are already familiar with the dialog to confirm approval, but after this, we will be prompted with a new option.

Configuration


You can turn on a Fix Date prompt by clicking the checkbox, This will allow Feed Plan to set all created records to fixed dates on Feed Plan approval.


System → Setting →Feed Mill/Scheduling



Initial Approval Prompt


Fixed Date Prompt

The new prompt will ask us if we want to commit every date as a fixed date. This happens after the plan has been saved, but before the in progress records are copied and created.


If the user clicks "Yes", the feed plan will be approved and saved with dates created for each distinct delivery date.



Calculating Fixed Delivery Dates

During 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.

  1. Withdrawal Feed
  2. Withdrawal Additives
  3. Feed Profile Condition Met (move to next ration)
  4. Additive Profile Condition Met (move to next mix of additives)
  5. Bin Capacity Reached
  6. Max Delivery Size Achieved
  7. 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.ProcessFor 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
  • We created a new reason event that checks for the time when the current date in the flock life cycle matches an existing fixed date. 
  • Unlike other reason events, this process does not trigger the generation of a feed plan. 
  • Instead, it will assign the matching fixed date as the 'next' delivery date and place it on hold.   No other action is taken at this time
  • The process will continue consuming for the current feed plan until completed.
FplFixedDates.PushNextFixedDateThe 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.PopNextFixedDateIf 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
  • If there is currently a fixed date held in FplFixedDates.TargetFixedDate, the new order request will use it as the delivery date. 
  • It will supersede the delivery date calculated by adjusting the required date by the buffer time
  • Any feed plans created for this order request will have the target fixed date as the FeedPlan.DeliveryDate and the fixed date's ID assigned to FeedPlan.FeedPlanFixedDateID



  • No labels