This question has been flagged
7 Replies
7272 Views

Odoo evaluate returned products with current cost not original cost (using FIFO - Real price) any one can help ? 

Avatar
Discard

Did you find any solution for this?

We have the same issue..

Thanks

Author

we try to develope a new function to calculate accurate cost and it now under testing

We have it in our que now

Hi Mohamed,

You found any solution for this?

What if we follow real time valuation in all issuance instead of FIFO, will it work?

If you have multiple products in stock for different values, and you need to return one of the inbound receipts, the value of the product delivered should be returned. Today, the value of the one returned is given that of the costing method defined on the product. This makes no sense to our customers CFO's. It leaves a balance in the interim account that can only be resolved through a manual JE.

Fabien, the example you have given doesn't really make sense. What you are describing is what Odoo does today, leaving a balance and could be corrected through using the original value on returns.

Example:

1. Receive a widget for $100 into inventory. (You already have one in inventory for $90.)

2. Manager rejects the widget on the next day (still not billed by vendor).

3. Return widget but Odoo will only credit the interim account for $90 (FIFO).

4. Now you have a balance in the interim account for goods you do not have and the FIFO unit of $90 no longer exists in your inventory. If I sell the remaining unit in inventory Odoo will assign a COGS of $100 but the $100 unit is really what was returned to the vendor.

https://apps.odoo.com/apps/modules/14.0/cost_method_lot/
This module will work in case of Lot/Serial Management valuation layer is fine accounting entries are fine on lot/serial level just cost in product master is showing wrong value but all accounting and valuation entries are ok.

Best Answer

Totally agree with Mohamed & Talal. 

Simple scenario Odoo v13. Product with AVCO - Realtime. 

- You purchase have 10U in stock with AVCO 10$ (+100$).

- Next you purchase 10 U at 6$, receive them, result: 20U at 8$. (+160$)

- Then you return this whole purchase, it was made by mistake. 10U at 8$(-80$) so resulting AVCO is 8$ per 10 ud (+80$)

Without any effective purchase, your stock value changes, -20$


This happens to some of our customers frequently, some mistakes with units (ie 100U in place of 10U) and similar situations.


Is there any change planned on this??


Thanks!


Avatar
Discard
Best Answer

We decided to add the function which lets a user to choose the lot/SN or product move that costs should be returned.

For example, a user made a mistake and purchased 100qty per $5.00 instead of $0.5. In that case you may select what exactly lot should be returned. The return cost has to be equal to received cost. https://erpixel.com/

Avatar
Discard
Best Answer

Any luck on this??

Avatar
Discard

You can use this application https://apps.odoo.com/apps/modules/14.0/real_costing_method/#attr=
it works fine, but it requires Lots/Serial Numbers

@Fabian, you have to fix this problem

Thanks brother i checked this app https://apps.odoo.com/apps/modules/14.0/cost_method_lot/ this also seems fine

Best Answer

We have the same problem. I've checked v10 model stock_quant and can propose "basic dirty fix".

In database returned moves have id in origin_returned_move_id. So if we want limit domain to related quants we can extend domain in 

 def _quants_get_reservation_domain
        ....
        if move.origin_returned_move_id:
            domain += [('id', 'in', move.origin_returned_move_id.quant_ids.ids)]

        return domain

and we should get domain on "action done":

[('qty', '>', 0), ('product_id', '=', 300), ('location_id', '=', 9), ('package_id', '=', False), ('company_id', '=', 1), ('id', 'in', [467722])]

Without limiting to related quants we got FIFO/LIFO for selected product from whole customer zone (what is wrong).

Avatar
Discard
Best Answer

we have the same problem in our company . what is your solution ?

Avatar
Discard
Author

till now i haven't any solutions and i didn't recommend to make any developement for this part

hi miladmahdavi ,u use Odoo in your company with developer helps or by your ability,i think we are in same country ,maybe we could help eachother. axial4(at)yahoo.com

Author Best Answer

i follow all info and every thing is ok but still get wrong value for return

Avatar
Discard
Best Answer

Returned goods have to follow the regular costing method (whether it's FIFO or Avg), instead of using "Original Cost", otherwise your accounting valuation gets wrong.

Have a look at the following scenario:

  • 1 product in stock, accounting value: 100$

  • return it to supplier at 90$, it's original cost

  • result: 0 product in stock, value in accounting: $10

That would be not correct, as a Gaap point of view. Odoo follows the accounting principle, which is to follow FIFO, or average price, instead of "price of original order before return".

Avatar
Discard

Well, you can always return the original cost, unless the stock is going to zero, then you exceptionally use the proper cost.

Other wise, you'll always post different values in the stock and supplier.

So, I strongly vote to use the regular costing method for returns only on the exception mentioned above.

Or, when you reach a 0 stock with value, you simply need to force run a cost adjustment entry

Author

i try your mentioned scenario and here is the result :-

buy 1 unit with 100 $ now inventory = 100

and then buy another one with 120 $ Now inventory valuation = 220

sold 2 units inventory valuation = zero

till now every thing is correct

Customer return 2 items was sold before

and i return the first unit that i purchased with 100 $ to the vendor due to some diffects

the valuation created from sales return with 240 and we acctually evaluate it before with 220

also returned purchase vlaluation c reated with 120 $ and debit not for the vendor bill created with 100 $ and it get different result

all of this cases caused balance in interm and outterm account for stock and this account will not be zero because i found odoo will evalute returned item with current cost on product profile and not consider the original cost for move

Sorry for long describtion

I told you once Fabien, the costing system needs a revisit and revision

Strongly agree with the issue and scenario mentioned by Mohamed ALnawasany and Kyle Robinson.
Was this resolved in v14?
Thanks.