Skip to Content
Odoo Menu
  • Sign in
  • Try it free
  • Apps
    Finance
    • Accounting
    • Invoicing
    • Expenses
    • Spreadsheet (BI)
    • Documents
    • Sign
    Sales
    • CRM
    • Sales
    • POS Shop
    • POS Restaurant
    • Subscriptions
    • Rental
    Websites
    • Website Builder
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Supply Chain
    • Inventory
    • Manufacturing
    • PLM
    • Purchase
    • Maintenance
    • Quality
    Human Resources
    • Employees
    • Recruitment
    • Time Off
    • Appraisals
    • Referrals
    • Fleet
    Marketing
    • Social Marketing
    • Email Marketing
    • SMS Marketing
    • Events
    • Marketing Automation
    • Surveys
    Services
    • Project
    • Timesheets
    • Field Service
    • Helpdesk
    • Planning
    • Appointments
    Productivity
    • Discuss
    • Artificial Intelligence
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Industries
    Retail
    • Book Store
    • Clothing Store
    • Furniture Store
    • Grocery Store
    • Hardware Store
    • Toy Store
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Beverage Distributor
    • Hotel
    Real Estate
    • Real Estate Agency
    • Architecture Firm
    • Construction
    • Property Management
    • Gardening
    • Property Owner Association
    Consulting
    • Accounting Firm
    • Odoo Partner
    • Marketing Agency
    • Law firm
    • Talent Acquisition
    • Audit & Certification
    Manufacturing
    • Textile
    • Metal
    • Furnitures
    • Food
    • Brewery
    • Corporate Gifts
    Health & Fitness
    • Sports Club
    • Eyewear Store
    • Fitness Center
    • Wellness Practitioners
    • Pharmacy
    • Hair Salon
    Trades
    • Handyman
    • IT Hardware & Support
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Others
    • Nonprofit Organization
    • Environmental Agency
    • Billboard Rental
    • Photography
    • Bike Leasing
    • Software Reseller
    Browse all IndustriesInauguration Odoo Lyon
  • Community
    Learn
    • Tutorials
    • Documentation
    • Certifications
    • Training
    • Blog
    • Podcast
    Empower Education
    • Education Program
    • Scale Up! Business Game
    • Visit Odoo
    Get the Software
    • Download
    • Compare Editions
    • Releases
    Collaborate
    • Github
    • Forum
    • Events
    • Translations
    • Become a Partner
    • Services for Partners
    • Register your Accounting Firm
    Get Services
    • Find a Partner
    • Find an Accountant
    • Meet an advisor
    • Implementation Services
    • Customer References
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Get a demo
  • Pricing
  • Help
You need to be registered to interact with the community.
All Posts People Badges
Tags (View all)
odoo accounting v14 pos v15
About this forum
You need to be registered to interact with the community.
All Posts People Badges
Tags (View all)
odoo accounting v14 pos v15
About this forum
Help

Fix stock valuation layer issues

Subscribe

Get notified when there's activity on this post

This question has been flagged
2 Replies
7242 Views
Avatar
Collapick Oy

Hi,


Is there way to fix stock valuation layer issues, because we want to change costing method to FIFO and now the valuation layer is broken or some how way different then what we have in stock.

Valuation layer is negative - 300 000 units and -300 000€, so you cant fix valuation layer by stock.valuation.layer.revaluation wizard.  

How to set stock valuation layer to zero with stock.

0
Avatar
Discard
Terence Faul

Does anyone have the fix_value method

OMNIA SOLUTIONS S.n.c. di Boscolo Matteo & C.

you are missing the fix_value function

Enrique Gonzalez Sancho

Hi,

I want to save space in my database, because I have a LOT of stock movements and the size of the table "public.stock_valuation_layer" is almost 2GB...

Does it make sense to delete the records set to 0 by this function? If they are set to 0, I assume that they are not affecting the value of the stock, and they can be safely deleted without burning the house.

I really don't need the stock valuation feature, but I am concerned that this data is necessary for stock consistency and for accountability purposes.

Thanks in advance!

Avatar
Collapick Oy
Author Best Answer

Here is to fix stock valuation layer to current stock.
Issues what this will be fixing:

  • Stock Valuation layer doesn't match to qty in stok
  • AVCO and FIFO standard price calculations.

These issues might be because something is went wrong in configuration or stock.move's. Like bug in external module. 

These will happen, and I don't know why theres no fix tool built in odoo. 
Or I haven't found it.


 def action_fix_category_svl(self):        
​self.ensure_one()
if self.property_cost_method != 'standard':
​ ​​raise ValidationError(_('You must change valuation type to standard to run this method'))
​
products = self.env['product.product'].search([('categ_id', '=', self.id)])
​for product in products:
​ ​#1. Getting Stock Valuation Layer value and quantity
​ ​valuation_quantity = product.quantity_svl
​ ​valuation_value = product.value_svl
​ ​#2. Getting in stock value and quantity
​ ​qty_available = product.qty_available
​ ​qty_value = product.standard_price * qty_available
company_id = self.env.company.id
​ ​#3. Finding all the stock layers that has remaining qty and remaining value and setting it to zero
​ ​#This is for avco and fifo calculations. When setting those 0 they are not effecting in standard price
​ ​#Caluculations
​ ​domain = [
​ ​ ​('product_id', '=', product.id),
​ ​ ​('company_id', '=', company_id),
​ ​ ​('remaining_qty', '!=', 0)
​ ​]
​ ​svls = self.env['stock.valuation.layer'].search(domain)
​for svl in svls:
​ ​ ​svl.write({"remaining_qty": 0})
​ ​
domain = [
​ ​ ​('product_id', '=', product.id),
('company_id', '=', company_id),
​ ​ ​('remaining_value', '!=', 0)
​ ​]
​ ​svls = self.env['stock.valuation.layer'].search(domain)
​for svl in svls:
​ ​ ​svl.write({"remaining_value": 0})

​#5. Calculating real stock adjustment for stock valuation layer
​ ​#This method makes adjustment for example adjustment to 20 from -20 would be 40
​ ​qty_to_svl = self.fix_value(qty_available, valuation_quantity)
​ ​value_to_svl = self.fix_value(qty_value, valuation_value)
​vals = {
​ ​ ​'product_id': product.id,
​ ​ ​'value': value_to_svl,
​ ​ ​'unit_cost': 0,
​ ​ ​'quantity': qty_to_svl,
​ ​ ​'remaining_qty': 0,
​ ​ ​'remaining_value':0,
​ ​ ​'company_id': self.env.company.id,
​ ​ ​'description': _('Fixing of %s to match stock.quant valuation %s with qty %s', product.name, qty_value, qty_available) ​ ​}
​ ​self.env['stock.valuation.layer'].sudo().create(vals)





0
Avatar
Discard
Avatar
meher
Best Answer

here's the fix_value method:


def fix_value(self, current_value, target_value):

"""

Adjusts the difference between current and target values.

Ensures correct valuation when reversing stock or revaluating.

:param current_value: The current quantity/value in stock

:param target_value: The target quantity/value for revaluation

:return: The adjustment required to reach the target

"""

# Compute the absolute difference between the two values

adjustment = target_value - current_value

# Example logic to handle revaluation from negative to positive or similar cases

if current_value < 0 and target_value > 0:

adjustment = abs(target_value) + abs(current_value)

return adjustment

0
Avatar
Discard
Bekon, caleb ignatius

Hi, where do you put this code?

Enjoying the discussion? Don't just read, join in!

Create an account today to enjoy exclusive features and engage with our awesome community!

Sign up
Community
  • Tutorials
  • Documentation
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Translations
Services
  • Odoo.sh Hosting
  • Support
  • Upgrade
  • Custom Developments
  • Education
  • Find an Accountant
  • Find a Partner
  • Become a Partner
About us
  • Our company
  • Brand Assets
  • Contact us
  • Jobs
  • Events
  • Podcast
  • Blog
  • Customers
  • Legal • Privacy
  • Security
الْعَرَبيّة Català 简体中文 繁體中文 (台灣) Čeština Dansk Nederlands English Suomi Français Deutsch हिंदी Bahasa Indonesia Italiano 日本語 한국어 (KR) Lietuvių kalba Język polski Português (BR) română русский язык Slovenský jazyk Slovenščina Español (América Latina) Español Svenska ภาษาไทย Türkçe українська Tiếng Việt

Odoo is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc.

Odoo's unique value proposition is to be at the same time very easy to use and fully integrated.

Website made with

Odoo Experience on YouTube

1. Use the live chat to ask your questions.
2. The operator answers within a few minutes.

Live support on Youtube
Watch now