Subcontracting Part 4: Warehouse Receipts
This is the fourth post related to subcontracting in Dynamics NAV. The topic is how to use warehouse receipts together with subcontracting purchase orders (previous parts are here: Part 1, Part 2, Part 3).
It is a quite common requirement to be able to use the warehouse receipts to process receipts of subcontracting purchase orders. It could for example be that your location is setup to use the ‘Directed Put-Away and Pick’ (sometimes referred to as advanced warehousing) and therefore you are required to use the warehouse receipts or it could simply be that the warehouse receipts are used standalone and you want your receiving personnel to receive subcontracting purchase orders the same way as they are receiving regular purchase orders (and transfer receipts and sales return receipts).
In standard Dynamics NAV it is only possible to receive inventory on purchase orders through warehouse receipts. A purchase order with just a subcontracting operation on the line does not even create a warehouse request.
This is how it is (and always have been) in Dynamics NAV. But Microsoft has also (many years ago) provided a solution that can enable the warehouse receipts for subcontracting purchase orders (don’t ask me why this is not part of standard Dynamics NAV). It is at PartnerSource as article 916968 for Navision 4.0, but it still applies to version 5, 2009 and 2013.
The way it is suggested to do it is as follows:
Add a Boolean field called Subcontracting to the warehouse receipt line table (you might also want to add it to the page as an indication to the user, then make it non-editable).
It also makes sense to add the above field to the posted warehouse receipt table to be part of history after the receipt has been posted.
Then make the following two changes to codeunit 5750 (Whse.-Create Source Document).
The above change is to be able to insert the purchase line on the warehouse receipt.
The above change is to insert a 1 in the quantity per unit of measure field in the warehouse receipt table instead of the 0 value that is on subcontracting purchase orders and also to set the Boolean subcontracting field that will be used later when posting the receipt.
Then also do the following two changes to codeunit 5760 (Whse.-Post Receipt).
The above change is in order to only post inventory transaction if the Boolean subcontracting field is false. In other words don’t post inventory transactions when receiving a subcontracting purchase order since you are not really receiving inventory (just finishing the operation).
The above change is to not create a put-away document for received subcontracting purchase order.
The third and last codeunit to change is codeunit 5772 (Whse.-Purch. Release). This is so that a warehouse request is created even for subcontracting purchase orders. Without the warehouse request you will not be able to retrieve the purchase line into the warehouse receipt.
That’s it, time to test it! 🙂
We create a subcontracting production order on the WHITE location in a Cronus database (which as you might know is a location setup to use ‘Directed Put-Away and Pick’). In my example I will use the FIFA painted bicycle also used in Part 1, Part 2 and Part 3.
We then use the subcontracting worksheet to create a purchase order on the WHITE location, which is released and sent to the vendor along with the parts.
The next step is then to receive the purchase order when the material is returned from the subcontracting. To do this we create a new warehouse receipt and use the Get Source Documents function to retrieve the purchase order line (see blog post about how to work with warehouse receipts).
The purchase line is retrieved and the field Subcontracting is checked on the line. This way the receiving personnel can verify that this is a subcontracting purchase order that they are about to receive and they also know that no put-away will be created.
The receipt is confirmed by posting it.
The subcontracting purchase order has now been received.
And the operation on the production order has also been updated accordingly and the capacity ledger entries has been created, just like it would if we were receiving directly on the purchase order.
With this modification the receiving personnel can receive subcontracting purchase orders the same way as regular purchase orders (with the exception that you don’t get a warehouse put-away). This is great and I think a lot less confusing compared to having to have separate procedures for receiving subcontracting purchase orders or to use a different location just to work around the issue.