Now that we've established a basic framework for how job costing works in xTuple ERP, let's explore a custom manufacturing scenario to show how xTuple ERP supports engineer to order (ETO) requirements. For our example, we'll continue to refer to the job costing item CTRUCK1, which can be found in the xTuple ERP demo database. This is an item which comes with a bill of materials (BOMs) and a routing—and while neither is necessary for custom manufacturing jobs, we'll show how they can be used as templates for building custom jobs on top of.
Let's imagine, then, that we get a special order for 5,000 toy trucks. The customer wants the trucks painted to match their company colors—and they want a custom decal attached representing their company logo. Once the sales order is entered, the associated work order is also created:
As you can see on the work order, the basic materials have already been added to the list of material requirements. These basic requirements come from the BOM for CTRUCK1. These requirements are the fundamental building blocks of a toy truck, but they do not include any customizations yet.
Now that we have a beginning list of material requirements, we can add the additional requirements needed to complete the custom job:
On top of the already-existing requirements, we have added the custom decal and custom paint which the customer requested. While these are inventory items, we've defined the parts in a generic way to allow us the maximum latitude. The specific details—and pricing for each—can vary from job to job.
Our options relative to material requirements are either to backflush them all at once when the job sales order is issued to shipping or we can manually issue the materials to the work order while it's in process. For this scenario, let's take the manual issue route:
Issuing materials to job work orders is no different than issuing materials to regular work orders. In this case we are issuing materials one at a time. But you can also issue all the materials at once in batch mode using a different screen. When materials are issued to a work order, they are removed from inventory and placed into WIP. The WIP value of materials and labor posted to job work orders make up the total cost of job items.
Speaking of labor costs, let's look at the operations associated with our sample work order:
The ability to track and post labor costs to work orders is functionality that is found in the Manufacturing and Enterprise editions of xTuple ERP. In our example here, the work order operations were generated from the routing for CTRUCK1. As with our materials example, the operations listed here are relatively generic. This allows us maximum flexibility to adapt to the conditions of each unique job.
As we move through the manufacturing process, we record our time using the Post Operations screen:
We want to track our labor so that labor costs can be added to the cost of the job. Like materials, operations can be posted in whole or in part. We have the opportunity to distinguish between set up time and run time. We can also identify the particular users who have performed the specific tasks. At the end of the manufacturing process, when the job is done, we will issue and ship the job sales order. As we saw before, these shipping steps will handle the job cost accounting and close the work order for us.