User Manual- Costing
Costing Level
Vienna Advantage contains the following Costing Levels and based on Costing level setting, system will calculate the costing:
Org + Batch
When user selects this level on Product Category/Accounting Schema then system create record on "Product Costs" in transaction organization. Also attribute set instance id will set as per the transaction. If record is already present, system will update the same.
Lot/Batch
When there is 'Lot/Batch' costing level attached with Product Category/Accounting Schema and attribute is bind on the product. If transaction is completed with any of the attribute set instance then system creates ''Product Costs'' record in * organization and set attribute set instance id as per transaction. If record is already present, system will update the same.
Client/Tenant
If Product Category/Accounting Schema has costing value 'Tenant/Client' then system creates the "Product Costs" record in transaction tenant with * organization. If record is already present, system will update the same.
Warehouse + Batch
When user selects this level on Product Category/Accounting Schema then system creates "Product Costs" with combination of transaction warehouse and attribute instance of product on the transaction window. System will create Product costs record in Transaction organization. If record is already present, system will update the same.
Organization
When Product Category/Accounting Schema has costing value 'Organization' then system creates the "Product Costs" record in transaction Organization. If record is already present, system will update the same.
Warehouse
If Product Category/Accounting Schema has costing value 'Warehouse' then system creates the "Product Costs" for particular warehouse, in which transaction is completed. System will create Product costs record in Transaction organization. If record is already present, system will update the same.
Costing Elements
In Vienna System there are 9 basic predefined costing elements and 10th costing element can be created by user as per requirement.
Last PO
Average PO
Last Invoice
Average Invoice
LIFO
FIFO
Standard Costing
Weighted Average Invoice
Weighted Average PO
Cost Combination
Setting
If user wants to calculate the costing on document completion. User needs to set “Cost Immediately” and "Cost Mandatory on Completion" Checkbox True on “Tenant” window.
When 'Cost Mandatory on Completion' checkbox is true then system will not complete the transaction until system doesn't calculate the cost.
User can define costing method and costing level either on “Product category” or on “Accounting Schema” Window. System always gives preference to Product Category. If costing method and costing level is not defined on product category then only system will check “Accounting Schema”.
For few products those do not deliver as per the order qty like Petrol, Water etc. We have taken a checkbox on Product window with name “Cost Adjustment of Normal Loss”.
For Example: Product Name Crude Oil - purchase order created for 100LT. However, in transit 2LT got evaporate. In this case Customer only got 98 LT (Material Receipt will be created for 98LT), However he need to pay for 100LT. When above mentioned checkbox is true (We have distribute the cost of 100LT into 98LT).
There is a 'Treat as Discount' checkbox on Document type window, which is only visible when DocBaseType= APC. This checkbox helps the user to consider AP Credit Memo Invoice as discount invoice while calculating product costing. Also the system will not allow to create return to vendor invoice against APC invoice where we mark Treat as Discount as True on selected Document type .
For Example: Product has current cost = 30, Current quantity = 50, Accumulated amount = 1500 & Accumulated quantity = 50
User make AP Credit Memo with quantity = 40 & price = 15 then system will directly subtracts 600 from the accumulated amount and it automatically affects the current cost of the product.
current cost = 18, Current quantity = 50, Accumulated amount = 900 & Accumulated quantity = 50
Logic for costing elements
Accumulated Amount:
The total value which is invested to buy the items up to till date. This amount will not reduce (Only reduce at the time of Material Return or Reverse)
Accumulated Qty:
The total quantity of product which bought till date. This qty will not reduce (Only reduce at the time of Material Return or Reverse)
Current Cost:
Current Cost is calculated for one unit of product as per base UOM defined on the product header. This amount will not reduce (Only reduce when material goes out from the warehouse or reverse transaction.). This cost is used for further calculations.
Current Qty:
Current Quantity is defined as available quantity of product. It cannot be negative.
Last PO
In this case, system will pick up the last unit price of the product which came on the Purchase Order and that automatically becomes the cost of the Product. When Material Receipt created against Purchase order than only last PO will be calculated.
Last Invoice
In this case, system will pick up the last unit price of the product which came on the Invoice (Vendor) and that automatically becomes the cost of the Product. When Invoice (Vendor) created against Material Receipt than only last Invoice will be calculated.
Standard Costing
System only calculates once if any product contains the zero cost than unit price of first Invoice /Physical Inventory/ Independent Material Receipt becomes the cost of Standard Costing and thereafter it will never change.
Average PO
During Completion of Material Receipt which is created with reference of Purchase Order, system needs to calculate the following and same can be seen on “Product Costs” window:
Accumulated Amount
Accumulated Qty
Current Qty
Current Cost Price
Average PO(Current Cost Price) = Accumulated Amount/Accumulated Qty
Average Invoice
During Completion of Invoice (Vendor) which is created with reference of Material Receipt, system needs to calculate the following:
Accumulated Amount
Accumulated Qty
Current Qty
Current Cost Price
LIFO
A product cost is the actual value of any receipt of the item, selected by the LIFO rule.
At the time of valuation, it is always assumed that the sale made out of those stock which purchased last.
FIFO
A product cost is the actual value of any receipt of the item, selected by the FIFO rule.
At the time of valuation, it is always assumed that the sale made out of those stock which purchased first.
Weighted Average Cost (Invoice)
System will calculate WAC for those invoices, which is created with reference to Material Receipt.
Weighted average uses the formula: Total invoice cost of items in inventory available for sale divided by total number of units available for sale.
Formula: [(Current Qty * Current Cost Price) + (MR qty * Inv Price)] / (Current Qty + MR Qty)
Weighted Average PO
System will calculate WAP for those Material Receipts, which is created with reference to Purchase Order.
Weighted average PO uses the same formula as used for WAC.
Cost Combination
It is combination of cost element and Landed Costs i.e. Freight charges, Duty paid on receipts etc. Landed costs that are distributed against the Material Receipts from vendor invoice. Below is explained how to create cost combination.
Create Cost element for Freight
Go to “Cost Element” window.
Add New record, enter the name (Freight) and select “Material” as “Cost
Keep “Costing Method” field blank.
Create Cost element for Cost Combination
Go to “Cost Element” window.
Add New record, enter the name (Average Invoice + Freight) and select “Cost Combination” as “Cost Element Type”
Select “Cost Combination” as “Costing Method”
Go to “Element Line” Tab
Add New record and select “Average Invoice” as “Cost Element”
Again Add New record select “Freight” as “Cost Element”
Note: Element Line tab do not save multiple record of “Material” type Costing Element.
Formula: Current Cost Price = (Current Cost Price of Weighted Average PO) +
((Freight Current Cost from record 2 * Freight Current Qty from record 2) / Current Qty of Weighted Average PO)
Note
If Currency on accounting schema is different than transaction currency. Costing will not calculate if conversion rate not found.
On tenant window if "Cost Immediately" check box is true. System calculate costing for one element that is bind with Product Category/Accounting Schema rest will be calculated once “Costing Calculation Process” run through scheduler.
On tenant window if "Cost Immediately" check box is true/false. User can’t change this checkbox setting. If costing for any transaction is not completed
In case of independent Material Receipt or Physical inventory first time, if it’s first transaction of respective product. System will check the transaction org. and look for a “Purchase Price List” created in same org. If product price found than use this price for costing else, it will check for a “Purchase Price List” at (*) org. if product price found than use this for costing else system will not calculate the product cost.
Product has two “Purchase Price List” in system. Physical inventory done first time. System will pick the price from pricelist that have least ID.
If Product price is not defined, systems don’t calculate costing.
Enhancement 1.1
In this enhancement, Vienna changes the calculation methods for FIFO and LIFO.
Introduces new child tab of Cost Queue tab.
Introduces new field on Cost Queue tab.
Change 1: Added child tab of cost queue tab on product costs window.
Added new tab with name of 'Cost Queue Transaction'.
Below is the screenshot for respective tab:
When inventory comes in the warehouse, quantity will be in positive.
When inventory goes out from the warehouse, quantity will be in negative.
When there is transaction related to sales side, then system will mark IsSoTrx checkbox true and if there is a return transaction then system will make IsReturnTrx checkbox true.
When there is a transaction from Internal Use Inventory then system will mark 'IsInternalUse' checkbox true.
Change 2: Product Costs/ Cost Queue tab
Added 'Actual Quantity' field on Cost Queue tab (Description : Actual Quantity of product in respective Transaction.)
Below are the new calculation for the respective windows:
Post Current Cost Price remains same for every window – it will be picked from Product costs.
Current cost price should be zero for independent invoice.
Existing flow: System calculates and update the current cost of product on product costs by dividing sum of all Cost Queue (LIFO/FIFO) lines with Sum of all quantity of Cost queue lines
Current cost of Product= Sum of Current Cost of all the cost queue lines/Sum of Current Quantity of all the cost queue lines
New Flow: System should set current cost on Product Costs tab as per the costing method FIFO/LIFO, Where Current Quantity is not zero on 'Cost Queue' tab.
As below table shows, three GRNs made and system creates three lines on cost queue tab
Sr. No. | Current Qty | Current Cost | Actual Qty |
1 | 5 | 5.5 | 5 |
2 | 5 | 6 | 5 |
3 | 5 | 7 | 5 |
If there is movement of the quantity then system updates the Current quantity but Actual quantity remains the same.
Like, there is 5 quantity in first row, user moves the 4 quantity then system should update 1 in the current quantity field and Actual Quantity remains the same as 5
But in case of FIFO and LIFO, below are the calculation methods with respect to different windows.
For Material Receipt
When user enters three lines for the same product from MR then system will create three lines on the Cost Queue tab and it also creates the child record on the Cost Queue Transaction tab.
Like, user enters one line with 100 quantity, second line with 90 quantity and third line with 80 quantity for the same product.
FIFO: In this case, system will update 10 as a current cost on product cost tab.
LIFO: In this case, system will update 15 as a current cost on product cost tab.
Cost Queue Tab:
Sr. No. | Product | Cost Element | Current Qty | Current Cost | Actual Qty |
1 | Product A | FIFO | 100 | 10 | 100 |
2 | Product A | FIFO | 90 | 12 | 90 |
3 | Product A | FIFO | 80 | 15 | 80 |
4 | Product A | LIFO | 100 | 10 | 100 |
5 | Product A | LIFO | 90 | 12 | 90 |
6 | Product A | LIFO | 80 | 15 | 80 |
Cost Queue Transaction Tab: System will create six child records on this tab.
For FIFO
Sr. No. | MR | Product | Movement Qty |
1 | 101 | Product A | 100 |
For FIFO
Sr. No. | MR | Product | Movement Qty |
1 | 102 | Product A | 90 |
For FIFO
Sr. No. | MR | Product | Movement Qty |
1 | 103 | Product A | 80 |
For LIFO
Sr. No. | MR | Product | Movement Qty |
1 | 101 | Product A | 100 |
For LIFO
Sr. No. | MR | Product | Movement Qty |
1 | 102 | Product A | 90 |
For LIFO
Sr. No. | MR | Product | Movement Qty |
1 | 103 | Product A | 80 |
For Shipment
If user do the shipment of the product of 120 quantity for the same product then system updates the quantity as per FIFO/LIFO and creates the child record on cost queue transaction tab.
For FIFO: When user shipped the same product with a quantity of 120 then system first picks the 100 quantity from the first line and 30 quantity from the second line in case of FIFO
System creates new child records against line of 100 quantity and line of 90 quantity
In this case, system will update 12 as a current cost on product cost tab
For LIFO: When user shipped the same product with a quantity of 120 then system first picks the 100 quantity from the last line and 30 quantity from the second last line in case of FIFO.
In this case, system will update 12 as a current cost on product cost tab
Cost Queue Tab:
Sr. No. | Product | Cost Element | Current Qty | Current Cost | Actual Qty |
1 | Product A | FIFO | 0 | 10 | 100 |
2 | Product A | FIFO | 70 | 12 | 90 |
3 | Product A | FIFO | 80 | 15 | 80 |
4 | Product A | LIFO | 100 | 10 | 100 |
5 | Product A | LIFO | 50 | 12 | 90 |
6 | Product A | LIFO | 0 | 15 | 80 |
Cost Queue Transaction tab: System creates new child records for 1st line, 2nd line, 5th line and 6th line.
For FIFO: Against 1st line of 100 quantity
Sr. No. | Shipment | IsSoTrx | Product | Movement Qty |
1 | 501 | Y | Product A | -100 |
For FIFO: Against 2nd line of 90 quantity
Sr. No. | Shipment | IsSoTrx | Product | Movement Qty |
1 | 501 | Y | Product A | -20 |
For LIFO: Against last line of 80 quantity
Sr. No. | Shipment | IsSoTrx | Product | Movement Qty |
1 | 501 | Y | Product A | -80 |
For LIFO: Against 2nd last line of 90 quantity
Sr. No. | Shipment | IsSoTrx | Product | Movement Qty |
1 | 501 | Y | Product A | -40 |
For Customer Return
If user do the customer return of 20 quantity for the same product then updates the quantity as per FIFO/LIFO and creates the child record on cost queue transaction tab.
For FIFO: When user returns the product with a quantity of 20 for the same product then system checks the Shipment reference of Customer Return then increases the 20 quantity in the respective line.
Suppose, customer return is against Shipment=502, then system increases 20 quantity in the 2nd line
System creates new child record against line of 90 quantity.
In this case, system will update 12 as a current cost on product cost tab
For LIFO: When user returns the product with a quantity of 20 for the same product then system checks the Shipment reference of Customer Return then increases the 20 quantity in the respective line.
Suppose, customer return is against Shipment=502, then system increases 20 quantity in the 2nd last line. System creates new child record against line of 90 quantity.
In this case, system will update 12 as a current cost on product cost tab
Cost Queue tab:
Sr. No. | Product | Cost Element | Current Qty | Current Cost | Actual Qty |
1 | Product A | FIFO | 0 | 0 | 100 |
2 | Product A | FIFO | 90 | 12 | 90 |
3 | Product A | FIFO | 80 | 15 | 80 |
4 | Product A | LIFO | 100 | 10 | 100 |
5 | Product A | LIFO | 70 | 12 | 90 |
6 | Product A | LIFO | 0 | 0 | 80 |
Cost Queue Transaction tab: System creates the child on this tab as per quantity and cost element.
For FIFO: Against 2nd line of 90 quantity
Sr. No. | Shipment | IsSoTrx | IsReturnTrx | Product | Movement Qty |
1 | 1101 | Y | Y | Product A | 20 |
For LIFO: Against 2nd last line of 90 quantity
Sr. No. | Shipment | IsSoTrx | IsReturnTrx | Product | Movement Qty |
1 | 1101 | Y | Y | Product A | 20 |
For Vendor Return
If user do the vendor return of 40 quantity for the same product. In this case system updates the quantity as per FIFO/LIFO and creates the child record on cost queue transaction tab.
For FIFO: When user returns the product with a quantity of 40 for the same product then system checks the MR reference of vendor return then reduces the 40 quantity from the respective line.
Suppose, vendor Return is against MR=102, then system reduces the 40 quantity from the 2nd line
System creates new child record against line of 90 quantity.
In this case, system will update 12 as a current cost on product cost tab
For LIFO: When user returns the product with a quantity of 40 then system checks the MR reference of vendor return then reduces the 40 quantity from the respective line.
Suppose, vendor Return is against MR=102, then system reduces the 40 quantity from the 2nd line
System creates new child record against line of 90 quantity.
In this case, system will update 12 as a current cost on product cost tab
Cost Queue tab:
Sr. No. | Product | Cost Element | Current Qty | Current Cost | Actual Qty |
1 | Product A | FIFO | 0 | 0 | 100 |
2 | Product A | FIFO | 50 | 12 | 90 |
3 | Product A | FIFO | 80 | 15 | 80 |
4 | Product A | LIFO | 100 | 10 | 100 |
5 | Product A | LIFO | 30 | 12 | 90 |
6 | Product A | LIFO | 0 | 0 | 80 |
Cost Queue Transaction:
For FIFO: Against 2nd line of 90 quantity
Sr. No. | Shipment | IsSoTrx | IsReturnTrx | Product | Movement Qty |
1 | 2101 | N | Y | Product A | -40 |
For LIFO: Against 2nd last line of 90 quantity
Sr. No. | Shipment | IsSoTrx | IsReturnTrx | Product | Movement Qty |
1 | 2101 | N | Y | Product A | -40 |
For Physical Inventory
If user do the Physical Inventory of 60 quantity for the same product. In this case, system updates the quantity as per FIFO/LIFO and creates the child record on cost queue transaction tab.
Case 1: If the quantity of the product reduces then below are the calculations:
For FIFO: When user reduces the quantity of the product and update it with a quantity of 60 then system reduces the 50 quantity from the 2nd line and 10 quantity from the 3rd line.
System creates new child record against line of 90 quantity and line of 80 quantity
In this case, system will update 15 as a current cost on product cost tab
For LIFO: When user reduces the quantity of the product and update it with a quantity of 60 then system reduces the 50 quantity from the 2nd last line and 10 from the 3rd last line.
System creates new child record against line of 90 quantity and line of 100 quantity.
In this case, system will update 10 as a current cost on product cost tab
Cost Queue:
Sr. No. | Product | Cost Element | Current Qty | Current Cost | Actual Qty |
1 | Product A | FIFO | 0 | 0 | 100 |
2 | Product A | FIFO | 0 | 0 | 90 |
3 | Product A | FIFO | 70 | 15 | 80 |
4 | Product A | LIFO | 70 | 10 | 100 |
5 | Product A | LIFO | 0 | 0 | 90 |
6 | Product A | LIFO | 0 | 0 | 80 |
Cost Queue Transaction:
For FIFO: Against 2nd line of 90 quantity
Sr. No. | Phys Inv | Product | Movement Qty |
1 | 9001 | Product A | -50 |
For FIFO: Against 3rd line of 80 quantity
Sr. No. | Phys Inv | Product | Movement Qty |
1 | 9001 | Product A | -10 |
For LIFO: Against 2nd last line of 90 quantity
Sr. No. | Phys Inv | Product | Movement Qty |
1 | 9001 | Product A | -30 |
For LIFO: Against 3rd last line of 100 quantity
Sr. No. | Phys Inv | Product | Movement Qty |
1 | 9001 | Product A | -30 |
Case 2: If the quantity of the product increases then below are the calculations:
For FIFO: When user increases the quantity of the product and update it with a quantity of 100 then system increases the 10 quantity in the 3rd line and 90 quantity in the 2nd line. In this case, system checks the difference between current quantity and actual quantity and update the current quantity accordingly.
In this case, system will update 12 as a current cost on product cost tab
For LIFO: When user increases the quantity of the product and update it with a quantity of 100 then system increases the 30 quantity in third last line and 70 quantity 2nd last line. In this case, system checks the difference between current quantity and actual quantity and update the current quantity accordingly.
In this case, system will update 12 as a current cost on product cost tab
Cost Queue:
Sr. No. | Product | Cost Element | Current Qty | Current Cost | Actual Qty |
1 | Product A | FIFO | 0 | 0 | 100 |
2 | Product A | FIFO | 90 | 12 | 90 |
3 | Product A | FIFO | 80 | 15 | 80 |
4 | Product A | LIFO | 100 | 10 | 100 |
5 | Product A | LIFO | 70 | 12 | 90 |
6 | Product A | LIFO | 0 | 0 | 80 |
Cost Queue Transaction:
For FIFO: Against 3rd line of 80 quantity
Sr. No. | Phys Inv | Product | Movement Qty |
1 | 9002 | Product A | 10 |
For FIFO: Against 2nd line of 90 quantity
Sr. No. | Phys Inv | Product | Movement Qty |
1 | 9002 | Product A | 90 |
For LIFO: Against 3rd last line of 100 quantity
Sr. No. | Phys Inv | Product | Movement Qty |
1 | 9002 | Product A | 30 |
For LIFO: Against 2nd last line of 90 quantity
Sr. No. | Phys Inv | Product | Movement Qty |
1 | 9002 | Product A | 70 |
For Inventory Move
If user move the product of 80 quantity for the same product. In this case system updates the quantity as per FIFO/LIFO and creates the child record on cost queue transaction tab.
Case 1: If the quantity of the product moves out from the warehouse, then below are the calculations:
For FIFO: When user reduces the 80 quantity of the product from the warehouse then system reduces the 80 quantity from the 2nd line
System creates new child record against line of 90 quantity.
In this case, system will update 12 as a current cost on product cost tab
For LIFO: When user reduces the 80 quantity of the product from the warehouse then system reduces the 70 quantity from the second last line and 10 quantity from 3rd last line.
System creates new child record against line of 90 quantity.
In this case, system will update 12 as a current cost on product cost tab
Cost Queue:
Sr. No. | Product | Cost Element | Current Qty | Current Cost | Actual Qty |
1 | Product A | FIFO | 0 | 0 | 100 |
2 | Product A | FIFO | 10 | 12 | 90 |
3 | Product A | FIFO | 80 | 15 | 80 |
4 | Product A | LIFO | 90 | 10 | 100 |
5 | Product A | LIFO | 0 | 12 | 90 |
6 | Product A | LIFO | 0 | 0 | 80 |
Cost Queue Transaction:
For FIFO: Against 2nd line of 90 quantity
Sr. No. | Move Line | Product | Movement Qty |
1 | 5001 | Product A | 80 |
For LIFO: Against 2nd last line of 90 quantity
Sr. No. | Move Line | Product | Movement Qty |
1 | 5001 | Product A | 70 |
For LIFO: Against 3rd last line of 100 quantity
Sr. No. | Move Line | Product | Movement Qty |
1 | 5001 | Product A | 10 |
Case 2: If the quantity of the product moves in the warehouse, then below are the calculations:
For FIFO: When user increases the 130 quantity of the product in the warehouse then system increases the 80 quantity in the 2nd line and 50 quantity in the 1st line. Because system checks the difference between current quantity and actual quantity and update the lines accordingly.
System creates new child record against line of 100 quantity and line of 90 quantity.
In this case, system will update 10 as a current cost on product cost tab
For LIFO: When user increases the 130 quantity of the product in the warehouse then system increases the 10 quantity in 3rd last line, 90 quantity in the 2nd last line and 30 quantity in the last line
System creates new child record against all the lines.
In this case, system will update 15 as a current cost on product cost tab
Cost Queue:
Sr. No. | Product | Cost Element | Current Qty | Current Cost | Actual Qty |
1 | Product A | FIFO | 50 | 10 | 100 |
2 | Product A | FIFO | 90 | 12 | 90 |
3 | Product A | FIFO | 80 | 15 | 80 |
4 | Product A | LIFO | 100 | 10 | 100 |
5 | Product A | LIFO | 90 | 12 | 90 |
6 | Product A | LIFO | 30 | 15 | 80 |
Cost Queue Transaction:
For FIFO: Against 2nd line of 90 quantity
Sr. No. | Move Line | Product | Movement Qty |
1 | 5002 | Product A | 80 |
For FIFO: Against 1st line of 100 quantity
Sr. No. | Move Line | Product | Movement Qty |
1 | 5002 | Product A | 50 |
For LIFO: Against 3rd last line of 100 quantity
Sr. No. | Move Line | Product | Movement Qty |
1 | 5002 | Product A | 10 |
For LIFO: Against 2nd last line of 90 quantity
Sr. No. | Move Line | Product | Movement Qty |
1 | 5002 | Product A | 90 |
For LIFO: Against last line of 80 quantity
Sr. No. | Move Line | Product | Movement Qty |
1 | 5002 | Product A | 30 |
For Internal Use Inventory
If the user use 50 quantity of the same product. In this case system updates the quantity as per FIFO/LIFO and creates the child record on cost queue transaction tab.
While updating the record of internal use inventory on cost queue transaction tab, system should mark Internal Use checkbox true.
For FIFO: When user reduces the 50 quantity of the product from the warehouse then system reduces the 50 quantity from the 1st line.
System creates new child record against line of 100 quantity.
In this case, system will update 10 as a current cost on product cost tab
For LIFO: When user reduces the 50 quantity of the product from the warehouse then system reduces the 30 quantity from the last line and 20 quantity from the second last line.
System creates new child record against line of 80 Quantity and line of 90 quantity.
In this case, system will update 12 as a current cost on product cost tab
Cost Queue:
Sr. No. | Product | Cost Element | Current Qty | Current Cost | Actual Qty |
1 | Product A | FIFO | 0 | 10 | 100 |
2 | Product A | FIFO | 90 | 12 | 90 |
3 | Product A | FIFO | 80 | 15 | 80 |
4 | Product A | LIFO | 100 | 10 | 100 |
5 | Product A | LIFO | 70 | 12 | 90 |
6 | Product A | LIFO | 0 | 15 | 80 |
Cost Queue Transaction:
For FIFO: Against 1st line of 100 quantity
Sr. No. | Phys Inv Line | Internal Use | Product | Movement Qty |
1 | 1901 | True | Product A | 50 |
For LIFO: Against 3rd last line of 80 quantity
Sr. No. | Phys Inv Line | Internal Use | Product | Movement Qty |
1 | 1901 | True | Product A | 30 |
For LIFO: Against 2nd last line of 90 quantity
Sr. No. | Phys Inv Line | Internal Use | Product | Movement Qty |
1 | 1901 | True | Product A | 20 |
For Production
If the user use 30 quantity of the same product. In this case, system updates the quantity as per FIFO/LIFO and creates the child record on cost queue transaction tab.
For FIFO: When user reduces the 30 quantity of the product from the warehouse then system reduces the 30 quantity from the 2nd line only
System creates new child record against line of 90 quantity.
In this case, system will update 12 as a current cost on product cost tab
For LIFO: When user reduces the 30 quantity of the product from the warehouse then system reduces the 30 quantity from the second last line.
System creates new child record against line of 90 quantity.
In this case, system will update 12 as a current cost on product cost tab
Cost Queue:
Sr. No. | Product | Cost Element | Current Qty | Current Cost | Actual Qty |
1 | Product A | FIFO | 0 | 10 | 100 |
2 | Product A | FIFO | 60 | 12 | 90 |
3 | Product A | FIFO | 80 | 15 | 80 |
4 | Product A | LIFO | 100 | 15 | 100 |
5 | Product A | LIFO | 40 | 12 | 90 |
6 | Product A | LIFO | 0 | 0 | 80 |
Cost Queue Transaction:
For FIFO: Against 2nd last line of 90 quantity
Sr. No. | Production Line | Product | Movement Qty |
1 | 50001 | Product A | 30 |
For LIFO: Against 2nd last line of 90 quantity
Sr. No. | Production Line | Product | Movement Qty |
1 | 50001 | Product A | 30 |
For Asset Disposal
If the user use 10 quantity of the same product. In this case system updates the quantity as per FIFO/LIFO and creates the child record on cost queue transaction tab.
For FIFO: When user reduces the 10 quantity of the product from the warehouse then system reduces the 10 quantity from the 2nd line
System creates new child record against line of 90 quantity.
In this case, system will update 12 as a current cost on product cost tab
For LIFO: When user reduces the 10 quantity of the product from the warehouse then system reduces the 10 quantity from the 2nd last line.
System creates new child record against line of 90 quantity.
In this case, system will update 12 as a current cost on product cost tab
Cost Queue:
Sr. No. | Product | Cost Element | Current Qty | Current Cost | Actual Qty |
1 | Product A | FIFO | 0 | 0 | 100 |
2 | Product A | FIFO | 60 | 12 | 90 |
3 | Product A | FIFO | 80 | 15 | 80 |
4 | Product A | LIFO | 100 | 10 | 100 |
5 | Product A | LIFO | 10 | 12 | 90 |
6 | Product A | LIFO | 0 | 0 | 80 |
Cost Queue Transaction:
For FIFO: Against 2nd line of 90 quantity
Sr. No. | Asset Disposal | Product | Movement Qty |
1 | 100001 | Product A | 10 |
For FIFO: Against 2nd last line of 90 quantity
Sr. No. | Asset Disposal | Product | Movement Qty |
1 | 100001 | Product A | 10 |
Production Order Execution
In this window, system should calculate the costing on the basis of transaction type.
To link the Component Return transaction with the Component Issue transaction. Find below the following points which needs to be executed:
Create a new field called 'Original Component Issue Transaction'. Mark this field as Mandatory UI. (Header as well on Line)
Place a display logic when the user selects the Component Return type as Transaction Type then system will display the 'Original Component Issue Transaction' fields.
Dynamic validation required - Only the selected Production Order component issue transaction will come in the drop down.
A callout is required - When the user selects the Original Component Issue Transaction then the system will pull the Quantities accordingly i.e. assume if the Component issue transaction has 10 Quantity and the user already returns the 4 quantities and again tries to return the quantities then by default the system will pull the 6 quantity.
When we create line, need to copy original line reference to be copied here
Cost Queue: User has the following quantity of the product on Cost Queue tab.
Sr. No. | Product | Cost Element | Current Qty | Current Cost | Actual Qty |
1 | Product A | FIFO | 100 | 10 | 100 |
2 | Product A | FIFO | 90 | 12 | 90 |
3 | Product A | FIFO | 80 | 15 | 80 |
4 | Product A | LIFO | 100 | 10 | 100 |
5 | Product A | LIFO | 90 | 12 | 90 |
6 | Product A | LIFO | 80 | 15 | 80 |
Transaction type= Component issues to Work order
If user use of 60 quantity of the same product as a Raw Material. In this case, system updates the quantity as per FIFO/LIFO and creates the child record on cost queue transaction tab.
For FIFO: When user reduces the quantity of the product and update it with a quantity of 60 then system reduces the 60 quantity from the 1st line
System creates new child record against line of 100 quantity
In this case, system will update 10 as a current cost on product cost tab
For LIFO: When user reduces the quantity of the product and update it with a quantity of 60 then system reduces the 60 quantity from the last line
System creates new child record against line of 80 quantity
In this case, system will update 15 as a current cost on product cost tab
Cost Queue: After using quantity in Production execution, system will update below quantities on Cost Queue tab.
Sr. No. | Product | Cost Element | Current Qty | Current Cost | Actual Qty |
1 | Product A | FIFO | 40 | 10 | 100 |
2 | Product A | FIFO | 90 | 12 | 90 |
3 | Product A | FIFO | 80 | 15 | 80 |
4 | Product A | LIFO | 100 | 10 | 100 |
5 | Product A | LIFO | 90 | 12 | 90 |
6 | Product A | LIFO | 20 | 15 | 80 |
Cost Queue Transaction:
For FIFO: Against 1st line of 100 quantity
Sr. No. | Work Order Txn Line | Product | Movement Qty |
1 | 20001 | Product A | 60 |
For LIFO: Against last line of 80 quantity
Sr. No. | Work Order Txn Line | Product | Movement Qty |
1 | 20001 | Product A | 60 |
Transaction type= Transfer Assembly to Store
System will work same like Material Receipt.
If user manufactured 60 quantity of the finished product. In this case, system updates the quantity as per FIFO/LIFO and creates the child record on cost queue transaction tab.
For FIFO: When user increases the quantity of the product and update it with a quantity of 60 then system create a record on Cost Queue tab with a quantity of 60.
System creates new child record against line of 60 quantity
In this case, system will update 10 as a current cost on product cost tab
For LIFO: When user increases the quantity of the product and update it with a quantity of 60 then system create a record on Cost Queue tab with a quantity of 60.
System creates new child record against line of 60 quantity
In this case, system will update 15 as a current cost on product cost tab
Cost Queue: After using quantity in Production execution, system will update below quantities on Cost Queue tab.
Sr. No. | Product | Cost Element | Current Qty | Current Cost | Actual Qty |
1 | Finished Good | FIFO | 60 | 10 | 60 |
2 | Finished Good | LIFO | 60 | 15 | 60 |
Cost Queue Transaction:
For FIFO: Against 1st line of 100 quantity
Sr. No. | Work Order Txn Line | Product | Movement Qty |
1 | 20001 | Product A | 60 |
For LIFO: Against last line of 80 quantity
Sr. No. | Work Order Txn Line | Product | Movement Qty |
1 | 20001 | Product A | 60 |
Enhancement 1.2
In this enhancement, Vienna introduces cost adjustment in reference to decrease the cost of material via AP Credit Memo whereas marked as “Treat as Discount” to adjust the cost for those costing level where warehouse is involved such as “Warehouse” and “Warehouse and Batch”. Earlier it was handled for other costing levels.
Vienna bring the reference of warehouse with name of 'Cost Adjustment Warehouse' on AP Invoice header and AP Invoice line, so that user can select the respective warehouse while recording such transactions.
This field will only display on AP Invoice Screen in case the selected document type on the record is marked as “Treat as Discount”.
Preference will be given to the warehouse selected on the Line. If there is null value on line then system will pick warehouse from the Invoice header.
On Completion of Invoice record, cost adjustment effects will be updated only on the selected warehouse or selected warehouse + batch.