How do you invoice an order in O/E before shipping it? Sage 300 doesn't support it, but every once in a while, somebody needs it. You have to create a shipment, in order to create an invoice, but if items are not physically shipped at that time, it can easily mess up the inventory.
In manufacturing companies, the customer may be billed when the goods are produced, and then separately for the shipment. Once the customer is billed for the items, the manufacturing company doesn't own them anymore, so they have to come out of the inventory, even though they haven't been physically shipped yet.
The workaround is the following:
This is quite a lot of steps to be done manually, so I created an automation. The screenshot at the top of this article shows how it looks. For each inventory location, it allows defining a matching "prebill" location. When a prebill is created, the items are automatically received back into the prebill location at zero cost. This is because the company doesn't own the items anymore, so the cost of inventory is zero, but we still want to keep track of the quantities that are physically stocked. The automation also adds new lines to the original sales order, referencing the prebill location and quantities, so that items can later on be shipped.
Another feature is that prebill price can be different from the original price on the order. If the original price included the cost of shipping, user can override the price in the prebill, by taking the shipping cost out. The automation remembers the change, and when the items are physically shipped at a later point, it suggests the shipping price to be used for this shipping invoice.