Subcontracting Part 1: The Basics
This is the first part of a series of blog posts about the subcontracting functionality in Microsoft Dynamics NAV. It describes how to setup and use the basic functionality, which is something that is very common to use for manufacturers (3 out of 4 places I go to uses some kind of subcontractors to perform operations that they can’t or don’t want to do in-house).
Future posts on the subject subcontracting will describe things like how to ship the products to the subcontractor in a proper way, how shipping charges can be applied, how to receive subcontracted parts using warehouse receipts, how the process can be enhanced with some simple tweaks and some other good stuff. As always, my posts are based on long time real life experience and I try to include as many useful tips that I can (at least people I talk to find them useful 🙂 ).
The basic subcontracting functionality to me includes four things:
1. Setting up a work center that is linked to a vendor and acts as a subcontractor.
2. Setting up a routing with an operation that uses the subcontracting work center.
3. Using the subcontracting worksheet to create purchase orders.
4. Receiving and invoicing the purchase orders.
The above is the basic you need to master to get started, they are described one by one below.
Subcontracting Work Center
To do subcontracting in Dynamics NAV you need a work center that is linked to a vendor through the Subcontractor No. field. I always recommend to setup such a work center with the same code as the vendor number if possible (I also typically recommend to have a prefix on all number series so that all vendors starts with ‘V-‘ for example), this way it becomes very clear that the work center is a subcontractor.
You have the option to use a generic work center for a group of subcontractors (something like a work center called SUBCONTRACT), but then you need to change the vendor for each purchase order that is created through the subcontracting worksheet (described later). So this way is really only useful if you have lots of subcontractors that you rarely use and you don’t want to setup too many work centers.
Typically a subcontractor gets paid based on the number of units that are processed (instead of the time that they spend). To setup this you set the Unit Cost Calculation field to Units instead of Time which is the default one. You typically also pay a different price based on what items that are processed, so instead of specifying the cost on the work center card you want to define it on the individual routings, this is done by checking the Specific Unit Cost field on the work center and then enter the costs on the routing line.
You normally also want to setup a separate posting group to control where in the P&L the subcontracting costs gets posted (see previous post related to production posting into the general ledger). An alternative or compliment would also be to define some specific dimensions for the subcontracting work centers (see previous post related to dimensions on production orders).
You also need a calendar on the work center even though no real scheduling of it will take place (we leave that to the vendor, all we want is to put in the total lead time in the routing).
The Shop Calendar Code has less importance (but is mandatory); I will use the Cronus ‘One shift Monday-Friday’ calendar for this example, it will at least give me a starting time and ending time that is within normal working hours. A valid option is to setup a special subcontracting calendar code that has a 24 h per day 7 days a week calendar, I have seen that lots of time and it will also work well. The downside of this is that you then might get funny looking start and ending times in the middle of night (although most companies are happy if the days are correct and does not worry that much about the time during the day that Dynamics NAV indicates).
You see further down in this post that we will use the wait time to define the lead time of the subcontractor, and by using the wait time Dynamics NAV does not look at the calendar at all (see my previous post about production order lead times).
Note; remember to also go and calculate the calendar.
This should be it for the work center.
Routing with Subcontracting
Now when we have our subcontracting work center define we can go and create the routings for the products that will use the subcontractor for part of the process. In this example I will use the Cronus bicycle that will be sent out to a subcontractor to get a special FIFA 2014 paint job on the frame. For this I have created a new item number (1000-FIFA2014) that has a production BOM that contains the Cronus bicycle (1000). The routing for the bicycle with the special paint is then created with an operation on the work center that was created previously (V-00001).
For the subcontracting operation we specify a Unit Cost Per equal to 95, which means that we expect to pay the subcontractor $95 per bicycle that they paint. We set the Wait Time to 14 Days meaning that we expect the bicycle to be painted and received back in 14 days (e.g. the lead time for the subcontractor).
When receiving a subcontracting purchase order (described later) Dynamics NAV finishes the related operation on the production order, this means that if the subcontracting operation is the last operation on the production order we will get the product into inventory (which in some cases are great). But if this is not wanted then we can add an additional operation after the subcontracting operation to the routing. This will give us some more flexibility when it comes to controlling scrap and the quantities that goes into inventory, and it also simplifies if you are using any kind of item tracking (lot and/or serial numbers) on the finished product. An operation like this can be either with or without any costs or times.
Both methods will work, my experience is that most companies benefits from having an operation after the subcontracting operation in the routing. But the method of choice should be from case to case.
In this example we add a quality inspection operation of 30 minutes after the subcontracting operation.
We also add a simple comment to the operation (to see this feature as well).
We then do a cost roll up on the FIFA 2014 painted bicycle (which is set to standard costing method) and we see the subcontracting cost in the Single-Level Subcontrd. Cost field in the item table (also described here).
Now the setup is done and we can start testing the functionality.
Creating a Subcontracting Purchase Order
Subcontracting purchase orders are created using the subcontracting worksheet based on released production orders (yes they need to be released, firm planned will not work, sometimes a bit unfortunately but possible to live with). So, we start with creating a released production order for 10 PCS of our FIFA 2014 painted bicycles. We can on the production order review the routing to make sure the starting dates make sense.
We enter a due date on 9/10/2015, this calculates backwards and ends up with a starting date for the subcontracting operation on 8/26/2015 (which is the 14 days lead time for the subcontractor and the 1 day default safety lead time that is defined in the manufacturing setup). This is as expected.
Note that the wait time can be updated on individual production orders if required (maybe larger orders takes more time for example).
Next step is now to create the purchase order for the subcontracting operation. We do this in the subcontracting worksheet using the function called calculate subcontracts. The calculate subcontracts function will insert a record for each released production order that has a subcontracting operation that is missing a related purchase order.
This is where you can change the vendor no. if you want to purchase the service from another vendor (if you for example using a generic work center for a group of subcontractors). When you are happy with the suggestion you press carry out action message to create the purchase order.
The purchase order that is created is a bit special compared to a regular purchase order. It has some references on the line to the operation in the production order routing (through the fields production order no., production order line no., operation no., and work center no.). The purchase order line has the item number of the item being produced on the line and an amount according to the cost defined in the routing (if not changed in the subcontracting worksheet).
If you zoom on the line (about this page in the newer versions of Dynamics NAV) you notice that the field Qty. per Unit of Measure is 0, which makes all the base quantity fields also 0. This is how NAV excludes this line from availability calculations (e.g. MRP etc.) since it is not a real purchase order for inventory.
As you noticed, the description of the purchase order line contains the description from the routing. What I typically do is to design the purchase order printout to include additional data from the production order (when linked to one); for example can the comments behind the operation and the production order number be included. Sometimes the components to be delivered to the vendor are also included so they know what to expect to be received. This is easy since we have a reference to the production order on the purchase order line. It could look something like below.
That’s it for creating a subcontracting purchase order.
Receiving and Invoicing a Subcontracting Purchase Order
Now the vendor is done with painting the bicycles and we receive them back. In Dynamics NAV we then open the purchase order and post them as received the same way we do on regular purchase orders (assuming we are receiving on purchase orders). I will in a later post describe how we can receive using warehouse receipts, which will require a small tweak to the code.
We enter the quantity to receive and press post and receive.
Posting the receipt of the subcontracting purchase order creates capacity ledger entries against the operation on the production order. If this was the last operation on the production order we would also get some output transactions of the finished product. In our case we still have the quality inspection operation left to complete before we get the product into inventory.
Next we finish the rest of the production order by posting the consumption of the bicycles, the output of the outstanding operation and changing the status to finished on the production order. We now have 10 additional pieces of our FIFA 2014 Bicycle in stock that has been produced by a subcontractor using 10 pieces of the regular bicycles.
We get the invoice from the subcontractor and post it as we do with regular invoices (e.g. enter the vendor invoice number, adjust the posting date and the amount to match the invoice received then post it as invoiced).
When looking at the statistics on the production order we can see that the subcontracting cost(s) are separated from the capacity and material costs on a production order. Note that I changed the amount slightly when I invoiced the purchase order (increased it from 950 to 990, forgot to make a screen shot of the invoice before I posted it 🙂 ).
This completes the basic subcontracting functionality. 🙂
Next blog post will be about how to ship the components to the subcontractor, the idea is to use the same FIFA 2014 Bicycle and apply a proper procedure to ship the regular bicycles (including picking and whatever procedure you might have during shipments).