Difference between revisions of "Sponsored Development: Libero Costing Engine"

From ADempiere
Jump to: navigation, search
This Wiki is read-only for reference purposes to avoid broken links.
(Important Changes)
(Important Changes)
Line 332: Line 332:
  
 
* Now an Cost Element can be setting as default, the default Cost Elements will be used to create the Cost Dimension for a new products.
 
* Now an Cost Element can be setting as default, the default Cost Elements will be used to create the Cost Dimension for a new products.
 
 
* A new Cost Element Type was added "Landed Cost" this is used to define an element of cost to manage Landend Cost
 
* A new Cost Element Type was added "Landed Cost" this is used to define an element of cost to manage Landend Cost
 
 
* The field Costing Method was moved to the Cost Type Window.  The new Cost Engine a Cost Element is used for all Cost Type defined, now is not necessary create a cost element for each costing method.
 
* The field Costing Method was moved to the Cost Type Window.  The new Cost Engine a Cost Element is used for all Cost Type defined, now is not necessary create a cost element for each costing method.
  
Line 340: Line 338:
  
 
* When a new company is created, the system creates a Cost Element automatically with the name of "Material".
 
* When a new company is created, the system creates a Cost Element automatically with the name of "Material".
 +
 +
""Product Cost Window""
 +
 +
* The Cost tab was renamed Product Size Cost
 +
* The field Accumulated Amt LL "was added to manage costs at lower levels
 +
* The "Costing Method" is displayed based on the type of cost
 +
 +
Product Cost Window
 +
 +
* Product Costs
 +
** The Cost tab was renamed Product Size Cost
 +
** The field Accumulated Amt LL "was added to manage costs at lower levels
 +
** The "Costing Method" is displayed based on the type of cost
 +
 +
*Cost Detail
 +
**A new field (Cost Value) was added to keep the of the  cost transaction, this new field is used to determine the adjustment cost on a given date.
 +
**To manage of the cost adjustments have been added fields "Cost Adjustment and Cost Adjustment Date" These new fields allow to record Cost Adjustment on a timeline.
 +
**In order to keep a precise control of inventory transactions, the field (M_Transaction_ID) generated  was added to the detail of costs.
 +
**To discriminate  the void transaction the new field "IsReversal" was added. This allows the records  canceled can be ignored for calculating costs.
 +
**For the management of manufacturing costs new fields were added (AmtLL, CurrentCostPriceLL, LL Accumulated Amt, Cost Value LL, LL Adjustment Cost, Cost Cost Adjustment), these fields are used to maintain the historic values of the costs to lower levels .
 +
**The new field "Landed Cost Allocation" is used to track the source that generated documents landed cost.
 +
**The new field "Account Date" is used by the "Engine Cost" to determine whether a transaction is earlier Transaction, if a transaction is earlier transaction and "COGS Adjust" is enabled , the Cost Engine  regenerates the cost layers  and restores the accounting fact of all documents generated after the earlier transaction .
  
 
===Business Test Case===
 
===Business Test Case===

Revision as of 11:25, 15 October 2010

Logo e-Evolution.png


Project

Source Code

Tracker

How to Install?

  • Apply the cost engine script in a new ADempiere Instance based on 360 from: Cost Engine SQL Script
  • Download the binary liberoCE.jar and patchs.jar files from: Binary files
  • Open Terminal command
  • Change the ADempiere Home directory
    #cd $ADEMPIERE_HOME
  • Copy the liberoCE.jar file to package directory
    #cp liberoCE.jar $ADEMPIERE_HOME/package
  • Copy the patchs.jar file to Lib directory
    #cp patchs.jar $ADEMPIERE_HOME/lib
  • Run ADempiere setup
    #RUN_setup.sh

Sysnova logo.jpg

Sysnova




Development & Consulting

Roadmap Document

Functionality / Feature Status Developer Priority Milestone Release Date Summary
Performance Analysis -> Costing -> Cost Engine
Implement method in parallel Implemented Victor Perez High 354 -- implemented
* Implement cost method by organization Implemented Victor Perez High 354 -- Implemented
* Implement cost layer and history Implemented Victor Perez High 354 -- Implemented
Material Management
Inventory revaluation (all methods) Under development Teo Sarca High 354 2010/05/31 ...
Inventory reports Implemented Victor Perez High 354 -- Implemented
Performance Analysis -> Costing -> Average Costing Method
Implement to Average Cost fix when an user entry the data error Implemented Victor Perez High 354 -- Implemented
Implement the layer to solve the reverse documents Implemented Victor Perez High 354 -- Implemented
Implement the Average cost to Manufacturing functionality Implemented Victor Perez High 354 -- Implemented
Review and fix the current algoritm Implemented Victor Perez High 354 -- Implemented
Performance Analysis -> Costing -> FIFO/LIFO Costing Method
Separate the Policy Material of FIFO/LIFO Cost Implemented Teo Sarca High 354 2010/05/31 ...
Review and fix the current algoritm Under development Teo Sarca High 354 2010/05/31 ...
Performance Analysis -> Costing -> Standard Costing Method
Implement the frozen/unfrozen Cost Under development Victor Perez High 354 2010/05/31 ...

Roles

  • Analyst
  • Any Role
  • Architect
  • Developer
  • Project Manager
  • Stakeholder
  • Tester

[Tasks]

[Develop Vision]

[Document Specification in process ---]

Identify Stakeholders Ok

  • Warehouse Clerk
  • Accountant Cost Clerk
  • Financial Management Clerk
  • Purchase Manager Clerk
  • Implementor Clerk

Gain agreement on the problem to resolve

  • You can not give to tracking and monitoring the costs for any costing method. ie currently you can not generated a valuation of inventories at a effective date. solved
  • All documents reverted with cost are created with accounting incorrectly. solved.
  • In the average cost is not possible to process correction of incorrect entry of quantities or prices. solved
  • Can not generate of transaction cost accounting for any revaluation or change cost. solved.
  • Only is possible to management a method costing by company or organization, solved.
  • The FIFO/LIFO costs, currently not working properly.
  • Currently is not possible to have different method cost by organization, solved
  • Currently is not possible have a good historial cost for all method cost, solved

Also add some new functionality.

  • Development the functionality that support manufacturing support Average and FIFO/LIFO cost, solved.
  • Allow that the ADempiere support different costing method by organization, this way a organization can have the average cost and the other is standard cost, solved.
  • New Inventory report valuation, solved
  • Revaluation Cost. solved
  • COGS Adjustment. solved

Gather stakeholder requests

  • Optimize the Calculated Cost
  • Optimize the Calculated Sales Price based on % margin
  • Optimize the Right General Ledger record
  • Optimize the Right Record the COGs for Income Statement
  • Optimize the Right inventory valuation with different method cost. solved

Define the scope of the solution

The objectives to reach within the first milestone of the project are:

  • Create New Cost Engine, ready & solved
  • Get the right calculated and register of cost , ready & solved
  • Implement Average Cost (ready & solved) and FIFO/LIFO Cost for Manufacturing Management
  • Get the right Inventory Cost Valuation , ready & solved
  • Get the right General Ledger Cost records, ready & solved
  • Get the right Current Cost for each cost element , ready & solved

Define features of the system

  • Define Multiples Cost Element with different Cost Method, implemented
  • New Inventory Valuation Report , implemented
  • New cost collector cost for cost adjustment and revaluation, implemented
  • New option to generate the posting in batch process , implemented
  • New option to generate the adjustment cost in batch process , implemented
  • New transaction valuation report, implemented

Important questions

When I reviewed the FIFO/LIFO cost found Questions and Cases :

Well is here where I have some doubt about the Business Logic:

We need define the strategy about that How should work the Material Policy and Costing Method, current do not is clear?

I think that the Material Policy and Costing Method should work the way independent so that in general the Material Policy is focus to the logic material issue and the costing method is focus to Cost Account
Victor Perez
www.e-evolution.com
  • What is the logic to consumed the FIFO/LIFO Cost Layers , we should sort by?
    • Account Date
    • Movement Date
    • ID ASI
    • Guarantee Date
I think that for FIFO/LIFO Cost Layers should be consumed based in the Account Date , the reason is because exist a lot the business that can entry your material movement in time left. other important reason is because when you revert some document it should reverting using the same date that original document and the same original cost. so this way we can complaint the requirement the Accountant Costs.
Victor Perez
www.e-evolution.com
  • What is the Logic to consumed the Material considering the Material Policy?
    • Accounts Date
    • Movement Date
    • ID ASI
    • Guarantee Date
I think that the FIFO/LIFO Material Policy should be consumed based in of the Guarrantee Date and discarding the Layer that do not have complaint with the Min Guarantee Days , next we would use the Movement Date. The reason is because the must important for this business case is that the raw material more old and a good status should be issue first. this way we can complaint the requirement the Production man.
Victor Perez
www.e-evolution.com
  • We should mix the Material Policy FIFO/LIFO with Costing Method FIFO/LIFO?
No I think that the Material Policy FIFO/LIFO and Costing Method FIFO/LIFO are different , the first is focus to material and next to Cost. So I think that we need change the current logic where the Material Policy FIFO/LIFO is use to calculate the Cost.
Victor Perez
www.e-evolution.com
  • We should adding the costing method to level Product Category the same way that Material Policy?
Yes, is very necessary so that exist business that need have a costing method for specific Product Category. Here I do not sure if with different account cost.
Victor Perez
www.e-evolution.com
  • We should create a record into Cost Detail for each Cost Element and Material Transaction?
Yes, I think that it would be very useful to implement the FIFO/LIFO cost in Manufacturing Cost and can use other Cost Element Type as (Labor, Burden , Overhead , Outside Processing, etc),
Victor Perez
www.e-evolution.com
  • We should include the Current Cost Price and Current Cost Price LL into Cost Detail?
Yes, I think that it would be very useful to implement report Effective Date Valuation, Calculate Cost Revelation and Reversal Documents
Victor Perez
www.e-evolution.com
  • We should include the account date in the logic to Costing Method FIFO/LIFO?
Yes,I think that is very important it date is mandatory to create reversal and correction cost for error in entry quantity.
Victor Perez
www.e-evolution.com
  • How should include the landed cost be based on the FIFO/LIFO Costing Method?

Achieve concurrence

Capture a common vocabulary

  • Glossary

Identify and Outline Requirements

Detail Use-Case Scenarios

Detail System-Cost Management

Implementation

Important Changes

Cost Type Window.

  • To setting a Costing Method now need to create a Cost Type. The new Cost Engine now allows generate the cost detail for multiple Costing Method in parallel.


Cost Element Window

  • Now an Cost Element can be setting as default, the default Cost Elements will be used to create the Cost Dimension for a new products.
  • A new Cost Element Type was added "Landed Cost" this is used to define an element of cost to manage Landend Cost
  • The field Costing Method was moved to the Cost Type Window. The new Cost Engine a Cost Element is used for all Cost Type defined, now is not necessary create a cost element for each costing method.

for example the Cost Element "Material" is used for all Cost Type defined ("Standard, Average Invoice").

  • When a new company is created, the system creates a Cost Element automatically with the name of "Material".

""Product Cost Window""

  • The Cost tab was renamed Product Size Cost
  • The field Accumulated Amt LL "was added to manage costs at lower levels
  • The "Costing Method" is displayed based on the type of cost

Product Cost Window

  • Product Costs
    • The Cost tab was renamed Product Size Cost
    • The field Accumulated Amt LL "was added to manage costs at lower levels
    • The "Costing Method" is displayed based on the type of cost
  • Cost Detail
    • A new field (Cost Value) was added to keep the of the cost transaction, this new field is used to determine the adjustment cost on a given date.
    • To manage of the cost adjustments have been added fields "Cost Adjustment and Cost Adjustment Date" These new fields allow to record Cost Adjustment on a timeline.
    • In order to keep a precise control of inventory transactions, the field (M_Transaction_ID) generated was added to the detail of costs.
    • To discriminate the void transaction the new field "IsReversal" was added. This allows the records canceled can be ignored for calculating costs.
    • For the management of manufacturing costs new fields were added (AmtLL, CurrentCostPriceLL, LL Accumulated Amt, Cost Value LL, LL Adjustment Cost, Cost Cost Adjustment), these fields are used to maintain the historic values of the costs to lower levels .
    • The new field "Landed Cost Allocation" is used to track the source that generated documents landed cost.
    • The new field "Account Date" is used by the "Engine Cost" to determine whether a transaction is earlier Transaction, if a transaction is earlier transaction and "COGS Adjust" is enabled , the Cost Engine regenerates the cost layers and restores the accounting fact of all documents generated after the earlier transaction .

Business Test Case

How to Test?

  • Modify the AdempiereLiberoCE/test.properties and setting the variables
  • AdempiereProperties,Email,EmailPassword
  • Apply the migration script(adempiereLiberoCE/extension/costengine/src/main/resources/script) in a new ADempiere Instance
  • Open adempiereLiberoCE/extension/costengine/src/test/java/org/adempiere/AverageInvoiceCostTest.java , Click Right -> Run As -> JUnit Test
  • You should receipt email with the result.

Test Result

Images

Generate Cost Transaction

GenerateCostTransaction.png


  • Parameters Generate Cost Transaction

Transaction Value

TransactionValueDialog.png


  • Transaction Value Report Paramaters

TransactionValueReport.png

  • Transaction Value Report

Valuation Effective date Report

ValuationEffectiveDate.png

  • Parameters for Valuation Effective date Report

InventoryValuationEffective.png

Discussion Chats

Cost Engine Chat Bayu and Victor 23/09/2010

Cost Engine Chat Colin and Victor 24/09/2010

Cost Engine Chat Susanne and Victor 24/09/2010

Cost Engine Chat Luis and Victor 25/09/2010

Cost Engine Chat Fernando and Victor 29/09/2010

following using google wave here