In addition to its support for custom manufacturing, xTuple ERP also supports service or repair orders—which are, in themselves, a different form of custom job. In this section, we'll explore how to process repair orders. Our example will rely on features only available in commercial editions of xTuple ERP—namely, return authorizations and multiple site support. Toward the end of the section we'll offer a scenario for users of the free PostBooks edition.
To give you a quick overview of the process flow for repair orders, these are the basic steps you would follow:
Create a return authorization
Receive damaged item into repair site
Perform repair work
Ship repaired item to customer
If you are familiar with xTuple's return authorization functionality, then you already know that return authorizations can be linked to original sales orders. Having this linkage simplifies the process of identifying which specific items may need to be serviced or repaired. For this example, the original sales order we are linking to had a yellow toy truck (item # YTRUCK1) on it. Let's imagine that the problem with the truck is the wheels fell off and need to be replaced.
In the screenshot you can see the link to the original sales order. You can also see the disposition for the return authorization is Service—and that the receiving and shipping sites are both specified as the repair warehouse. Let's pause for a moment here to discuss the significance of the receiving and shipping warehouse in this scenario.
As we have shown in previous sections, the configuration for job items is made at the item site level. This means that an item may be an inventory item in one site, but a job item in another site. That is precisely the case in this example. Our yellow toy truck is a stocked inventory item, which we sell to customers through sales orders all the time. It has standard cost, as specified on the costing method for its primary item site.
However, in addition to its primary site location, the yellow toy truck also has an item site in the repair site. In this repair warehouse, the item site for the yellow truck indicates that it uses the job costing method. This type of variation is perfectly possible in multi-site environments. One item—in this case, the yellow toy truck—can be either an inventory item or a job item, depending on the business need.
So, getting back to our scenario, we sold the yellow truck as an inventory item. But now that we have to repair it, we don't want it back in inventory. Instead, we need to process it as a job item—that is, as a custom job having materials and labor connected directly to it. To accomplish this, we must first receive the yellow truck into a site which recognizes it as a job item. From that point forward, the repair work will proceed just as it would for any job work order.
Because the return authorization recognizes the item site as a job costing site, a work order is automatically created for this repair job. A sales order linked to the work order is also created. Again, as discussed previously, job items require both a sales order and a linked work order. In the case of a repair order, we need the sales order to both close the job and ship out the repair to the customer once the work is done.
The yellow truck has a complete bill of materials (BOM), but for this scenario only the wheels need to be replaced. As a result, the wheels are the only material requirement on the work order:
We can issue the wheels manually to the order or backflush them automatically when the sales order is shipped. If we want, we can also add labor to the job by creating and posting work order operations. And finally, as we've seen before, all the job cost accounting is wrapped up when we finally ship the sales order out to the customer.
If you are running the PostBooks edition of xTuple ERP—and you don't have access to multiple sites or the return authorization capability—you can still use job costing to perform repairs or service. Rather than create multiple item sites for a single item, you can create separate job costing items. The demo database contains one such item: #REPAIRT1. This is an item whose item site specifies the job costing method. Any time you need to repair a truck, simply create a sales order for this alternate job item. Add materials to the linked work order, as needed. And when you ship it out to the customer, it will be handled just like any other job order.
Of course, the best way to perform repair work using the full range of functionality described in this chapter—return authorizations, multiple-site support, project accounting, routings, and more—is to upgrade to xTuple ERP Enterprise edition. The Enterprise edition includes all the best features found xTuple ERP. And if you are already running xTuple ERP, there are easy upgrade paths from all editions.