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
    • Approvals
    • 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
    • Estate 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 Industries
  • 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
      • Get a Tailored Demo
    • Implementation Services
    • Customer References
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +32 2 290 34 90
    • Get a Tailored Demo
  • Pricing
  • Help
  1. APPS
  2. Inventory
  3. Inventory Adjustments | Stock Adjustments | Stock Approval Rule | Inventory Approval Rule v 19.0
  4. Sales Conditions FAQ

Inventory Adjustments | Stock Adjustments | Stock Approval Rule | Inventory Approval Rule

by Khichdi InfoTech https://khichdiinfotech.com/
Odoo
v 19.0 Third Party 430
Download for v 19.0 Deploy on Odoo.sh
Apps purchases are linked to your Odoo account, please sign in or sign up first.
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Inventory (stock)
• Discuss (mail)
Lines of code 919
Technical Name inventory_stock_adjustments
LicenseLGPL-3
Websitehttps://khichdiinfotech.com/
Versions 16.0 17.0 18.0 19.0
You bought this module and need support? Click here!
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Inventory (stock)
• Discuss (mail)
Lines of code 919
Technical Name inventory_stock_adjustments
LicenseLGPL-3
Websitehttps://khichdiinfotech.com/
Versions 16.0 17.0 18.0 19.0
  • Community
  • Enterprise
Enterprise Community

Stock Adjustments with Approval System

Streamline your inventory management with our advanced Stock Adjustments module, featuring a robust approval workflow for enhanced control and accuracy.

Key Features

  • **Role-Based Workflow:** Differentiate between 'User' and 'Manager' roles for stock adjustment creation and approval.
  • **Approval Mechanism:** Implement mandatory approval for all stock quantity changes.
  • **Clear Status Tracking:** Monitor the status of each adjustment (Draft, Waiting for Approval, Approved, Done, Cancelled).
  • **Notification System:** Users are notified upon approval or rejection of their adjustment requests. Managers receive notifications for pending approvals.
  • **Detailed Adjustment Lines:** Easily add and manage product quantities, locations, and lot/serial numbers.
  • **Comprehensive Reporting:** Export stock adjustment reports to Excel for analysis.

How It Works

1. User Role Configuration

Configure user roles by assigning them to the 'Stock Adjustments / User' or 'Stock Adjustments / Manager' groups. Managers have the authority to approve stock changes.

2. Accessing Inventory Adjustments

Navigate to the 'Inventory' module and find the 'Inventory Adjustments' menu under 'Operations'.

3. Initiating a New Inventory Adjustment

Click 'Create' to start a new inventory adjustment. Specify the location for the adjustment.

4. Detailing the Adjustment Lines

Add specific products to the adjustment. For each product, you can see the available quantity, quantity on hand, and enter the new counted quantity.

  • Inventory adjustments are based on a comparison of the **Available Quantity**, **Quantity On Hand**, and the **Counted Quantity**.
  • If you do not change anything in a product line, its stock quantity will remain unaffected after the adjustment.
  • To add products manually, simply click 'Create a new line' and add the product details.
  • Here, you can also see the **Reserved Quantity**, which allows you to adjust stock accordingly or use a button to unreserve it.
  • For products tracked by serial number, you can efficiently add multiple lines at once and assign individual serial numbers.
  • You can filter or search for products using many options, including:
    • All products
    • One product category
    • One product only
    • Select products manually
    • One Lot Number
  • The system also allows you to load products with 0 On Hand quantity for comprehensive inventory counts.

5. Requesting Approval

Once the adjustment details are entered, click 'Request for Approval'. The designated manager will receive a notification.

6. Manager Approval

Managers can review the requested stock changes. They can either 'Approve' the changes, which then applies the inventory adjustment, or 'Reject' it.

7. Process Completion

Once approved, Validate the inventory and stock quantities are updated.

8. Exporting Stock Adjustment Reports

Generate comprehensive reports of your stock adjustments and export them directly to Excel for easy analysis and record-keeping.

Our Services

Odoo Customization
Odoo Implementation
Odoo Support
Odoo Migration
Odoo Integration
Odoo Consultancy
Odoo Licensing
Hire Odoo Developer

Get Support, For Free!

60 Days Free Support


In case any bugs or issue (Except data recovery)

At Khichdi InfoTech we offer end to end solution for Odoo services. Which includes analysis & consultation on the workflows and integration part.

Have Any Question ?

+91-9974768675


Write Email

Sales : contact@khichdiinfotech.com
Support : support@khichdiinfotech.com

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author, please use the developer contact information. They can usually be found in the description.
Please choose a rating from 1 to 5 for this module.
  • Ratings
  • Discuss
There are no ratings yet!
Hello Ahmed Abbas
by
contact@khichdiinfotech.com
on 1/20/26, 12:21 AM Author

Please verify the version our latest version of the module is 19.0.1.1
If you have not this then download latest and let us know if you have any issue
Thanks


Inventory Adjustment Approval – Broken Process & Security Issues (Odoo 19)
by
Ahmed Abbas
on 1/19/26, 11:16 AM

After your confirmation yesterday that the installation issue was fixed, I reinstalled the module successfully.

However, after real usage, I discovered multiple critical issues affecting the entire inventory adjustment process, not just isolated errors.

I would like to summarize the problems clearly so the full workflow can be reviewed and corrected.

1️⃣ Approval & Validation Errors

  • Initially, clicking Approve caused an error related to mail.channel / chat.

  • After fixing that, Validate raised another error.

  • Both were technical issues inside the module logic, not configuration issues.

2️⃣ Validation Does NOT Update Stock Quantities ❌

  • After clicking Validate, the adjustment state changes to Validated.

  • BUT stock quantities remain unchanged (0 or previous value).

  • This breaks the core purpose of inventory adjustment and makes the module unreliable for accounting & stock control.

3️⃣ Security & Access Rights Issue (CRITICAL) 🔴

  • A user with User (not Inventory Manager) access:

    • Can enter Physical Inventory

    • Can click Select All

    • Sees the Apply button (top action button)

    • Can apply stock quantities successfully

⚠️ Even though:

  • The module removes Apply on product line

  • The global Apply button still exists and bypasses the approval workflow entirely

This completely defeats:

  • Approval control

  • Stock governance

  • Internal audit requirements

4️⃣ Expected Behavior

  • Only authorized roles should be able to:

    • Apply inventory adjustments

    • Validate quantities

  • The Apply / Apply All action must be:

    • Hidden

    • Disabled

    • Or overridden

      for non-authorized users once the module is installed

  • Validation must:

    • Actually update stock quantities

    • Not only change the state

5️⃣ Request

I kindly ask you to:

  • Review the entire inventory adjustment process flow, not only individual errors

  • Verify:

    • Approval → Validation → Stock Move creation

    • Button visibility & access rights

    • Proper override of core Odoo actions

  • Provide either:

    • A corrected version of the module

    • Or clear documentation of supported behavior & limitations

At this point, the module is not safe for production use due to stock integrity and security risks.

Looking forward to your feedback and fixes.

Best regards,

Ahmed Abbas

Inventory Adjustment Approval – Broken Process & Security Issues (Odoo 19)
by
contact@khichdiinfotech.com
on 1/19/26, 1:06 PM Author

Please download latest version, As last upgrade was not updated in Codebase 
We have updated latest module 


by
contact@khichdiinfotech.com
on 1/18/26, 9:40 AM Author

Hello Ahmed Abbas
As per your suggestion we have updated our module please download latest version 


Error While Installing The Module
by
Ahmed Abbas
on 1/18/26, 8:57 AM
RPC_ERROR

Odoo Server Error

Occured on localhost:8069 on model ir.module.module on 2026-01-18 13:56:41 GMT

Traceback (most recent call last):
  File "C:\Program Files\Odoo 19.0e.20250927\server\odoo\http.py", line 2279, in _serve_db
    return service_model.retrying(serve_func, env=self.env)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\Odoo 19.0e.20250927\server\odoo\service\model.py", line 184, in retrying
    result = func()
             ^^^^^^
  File "C:\Program Files\Odoo 19.0e.20250927\server\odoo\http.py", line 2326, in _serve_ir_http
    response = self.dispatcher.dispatch(rule.endpoint, args)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\Odoo 19.0e.20250927\server\odoo\http.py", line 2541, in dispatch
    result = self.request.registry['ir.http']._dispatch(endpoint)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\Odoo 19.0e.20250927\server\odoo\addons\base\models\ir_http.py", line 357, in _dispatch
    result = endpoint(**request.params)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\Odoo 19.0e.20250927\server\odoo\http.py", line 788, in route_wrapper
    result = endpoint(self, *args, **params_ok)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\Odoo 19.0e.20250927\server\odoo\addons\web\controllers\dataset.py", line 38, in call_button
    action = call_kw(request.env[model], method, args, kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\Odoo 19.0e.20250927\server\odoo\service\model.py", line 93, in call_kw
    result = method(recs, *args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\Odoo 19.0e.20250927\server\odoo\addons\base\models\ir_module.py", line 70, in check_and_log
    return method(self, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\Odoo 19.0e.20250927\server\odoo\addons\base\models\ir_module.py", line 479, in button_immediate_install
    return self._button_immediate_function(self.env.registry[self._name].button_install)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\Odoo 19.0e.20250927\server\odoo\addons\base\models\ir_module.py", line 620, in _button_immediate_function
    registry = modules.registry.Registry.new(self.env.cr.dbname, update_module=True)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\Odoo 19.0e.20250927\server\odoo\tools\func.py", line 88, in locked
    return func(inst, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\Odoo 19.0e.20250927\server\odoo\orm\registry.py", line 185, in new
    load_modules(
  File "C:\Program Files\Odoo 19.0e.20250927\server\odoo\modules\loading.py", line 449, in load_modules
    load_module_graph(
  File "C:\Program Files\Odoo 19.0e.20250927\server\odoo\modules\loading.py", line 204, in load_module_graph
    load_data(env, idref, 'init', kind='data', package=package)
  File "C:\Program Files\Odoo 19.0e.20250927\server\odoo\modules\loading.py", line 58, in load_data
    convert_file(env, package.name, filename, idref, mode, noupdate=kind == 'demo')
  File "C:\Program Files\Odoo 19.0e.20250927\server\odoo\tools\convert.py", line 646, in convert_file
    convert_xml_import(env, module, fp, idref, mode, noupdate)
  File "C:\Program Files\Odoo 19.0e.20250927\server\odoo\tools\convert.py", line 745, in convert_xml_import
    obj.parse(doc.getroot())
  File "C:\Program Files\Odoo 19.0e.20250927\server\odoo\tools\convert.py", line 616, in parse
    self._tag_root(de)
  File "C:\Program Files\Odoo 19.0e.20250927\server\odoo\tools\convert.py", line 570, in _tag_root
    raise ParseError(msg) from None  # Restart with "--log-handler odoo.tools.convert:DEBUG" for complete traceback
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
odoo.tools.convert.ParseError: while parsing file:/c:/program%20files/odoo%2019.0e.20250927/server/custom/inventory_stock_adjustments/views/inventory_adjustments_form_view.xml:3
Invalid view inventory.adjustments.search_view definition in inventory_stock_adjustments/views/inventory_adjustments_form_view.xml

View error context:
'-no context-'


The above server error caused the following client error:
RPC_ERROR: Odoo Server Error
    RPCError@http://localhost:8069/web/assets/2c03d42/web.assets_web.min.js:3177:78
    makeErrorFromResponse@http://localhost:8069/web/assets/2c03d42/web.assets_web.min.js:3180:163
    rpc._rpc/promise</<@http://localhost:8069/web/assets/2c03d42/web.assets_web.min.js:3186:34

   


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

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