The costing migration process is needed for instances that need to upgrade from maintenance packs earlier than MP13 which uses the "legacy" costing engine.
It is recommend to migrate these instances to the new costing engine as it includes several improvements over the old (legacy) one.
This process has to be executed with the System Administrator role and migrates the costs of all the Clients of the instance.
During this first step:
- a Costing Rule is created for each legal entity of the instance
- and a closing and an initial (opening) inventory balance are created for each organization and warehouse with stocked products or items:
- the closing balances are calculated using the "legacy" cost engine and the currency of the Client.
- the initial balances are calculated using the cost calculated on the closing balance exchanged to the currency of the legal entity (organization).
To calculate the costs all products included in a material transaction must have a cost defined in the Costing tab of the product window. That is the cost used by the "legacy" costing engine.
A validation is executed during this first phase to check that.
In case there is at least one material transaction whose cost cannot be calculated the process terminates with an error message.
The validation creates a new alert rule that is "Products with transactions without available cost on date" per each material transaction found without a cost.
The way to fix that is described below:
- log in with the Administrator role of each client and check the existing alerts:
- each alert shows the product name with the issue and the min and max dates when the material transactions have been found without an available cost.
- creates a new record in the "Costing" tab of the product with a cost valid within the date range.
Notice that there could be more transactions with no available cost in other dates between the given dates.
Alternatively, if it is not desired to setup costs for the products it is possible to deactivate the alert rule.
This action will ignore these material transactions and will assign a zero cost to them.
Be aware that this option might cause inaccuracies in the calculated unit cost of the opening and closing balances as this cost is calculated summing up all the material transactions costs of each product.
During the first step the inventories balances are created leaving the "Opening" balances in draft status (unprocessed) therefore the calculated unit cost and the stock can be reviewed.
To access and review the balances it is possible to go to the Initialization tab of the "Costing Rule" window logged with the Client Administrator Role.
Notice that this review needs to be done for each Costing Rule of each Client.
- the "Closing" balance sets the product stock to zero
- and the "Opening" balance restores the stock back to its corresponding value and calculated cost.
It is also possible to review them in the Physical Inventory window, filtering by its name. All of them have the same name:
- Cost Rule Opening Inventory
- Cost Rule Closing Inventory
Ensure that the Organization and the Warehouse are shown to differentiate them.
This step finishes the process.
This step checks that the "Opening" balances are processed, therefore if there is an unprocessed opening balance an error message is shown.
Once the migration process is finished all the "Costing Rules" are set as "Validated" and a "Cost_Eng_Ins_Migrated" preference is created at System level to indicate that the instance has been migrated.
This process also updates role access to some processes and reports that have been updated to use the new costing engine. Those are:
- the Valued Stock Report
- the Sales Invoice Dimensional Report
- the Pareto Product Report
- and the "M_Update_Pareto_Product" process
Note that this process only updates the roles that are managed manually.
Finally the alert rule created in the first step ("Products with transactions without available cost on date") is deleted as it is no longer needed.
Instances not using costing
Openbravo instances do not using the "legacy" costing engine do not need to migrate to the new costing engine but just to create the desire Costing Rules per each legal entity and start using the new costing engine.
In this scenario the Starting Date set in the costing rule is very important as it defines which transactions are going to be cost calculated.
A blank starting date means that the cost of all the existing transactions will be calculated.
For instance, let's take an instance running since 2009 for which it is required to calculate transactions costs starting from 2012.
In that case the Starting Date of the costing rule should be set to January 1st, 2012.