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 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
    • 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

Disallow negative stock at subcontracting locations

Subscribe

Get notified when there's activity on this post

This question has been flagged
subcontractingv15NegativeStockKeepItSimple
1 Reply
6399 Views
Avatar
Ricardo Gross

Using the subcontracting feature, it's possible to receive the subcontracted products before you have replenished the subcontractor with the required components.

How to allow the receipt of the subcontracted products only after the components have been resupplied at the subcontractor location?

Thanks

BR

Ricardo

(I know there are the very nice OCA module that solves the question, but how to solve it in a SaaS environment?)


4
Avatar
Discard
Chris Parker

Did you ever find a solution to this, Ricardo?

Avatar
Ray Carnes (ray)
Best Answer
We don't recommend this.
Allowing negative inventory (with good monitoring) reveals problems that need fixing—like mismatched transactions, theft, or process lags. If you block users, some issues may just get hidden instead of addressed.

If negative inventory is disallowed, users may:

  • Start inflating inventory with fake Receipts
  • Delay validating transfers in Odoo
  • Create unnecessary inventory adjustments
  • Adjust transfers to the quantity available but ship the original quantity requested
  • Might ship or transact using similar or incorrect SKUs
  • Give up on Odoo and use manual or shadow systems

Each of these makes reconciliation even harder and introduces audit/compliance risks.

Your Users are smart, empower them with good tools and get out of their way. Train them on what to do when inventory goes negative and create robust processes to resolve the issues it uncovers.


This is not a complete solution but a prototype. Work with your Odoo Digital Advisor or Odoo Partner if you don't have the skills to create this yourself and to ensure it does not need modifications to work in your database.


1) In Developer Mode, visit Settings --> Technical --> Automation --> Automation Rules

2) Create an Automation Rule like this:


3) Add an Action of type Execute Code like this:

accuracy = env["decimal.precision"].precision_get("Product Unit of Measure")
for record in records:
    diff = round(record.quantity, accuracy)
    if (diff < 0 and record.product_id.is_storable and
            record.location_id.usage in ["internal", "transit"]):
        raise UserError(f'You need {-diff} more {record.product_id.name}(s) to complete this Transfer!')


You will then see an blocking message like this:


Be ready to ARCHIVE this Automation Rule if it blocks Users from doing things they need to do. 




1
Avatar
Discard
Chris Parker

Ray, you're right that those things can come up but that's a personell issue not a technical one. With a more strict system, staff are subverting policy but the ERP is stable and JEs flow well. Staff behavior can be dealt with later.

Complex systems like ERPs should not be so flexible. In some cases, it's good and right to be rigid and have strict guardrails. We're currently on day five of trying to undo a problem with prematurely receiving finished goods before completing the component MO and resupplying. Staff know they must complete the MO+resupply first but it was forgotten this time and they immediately went on to consume those finished goods in other MOs and ship+invoice pending orders. Now we have journal entries of which we can't make sense.

We didn't contact Odoo support or our partner because we thought we'd seen this before and a quick fix would be found but now more time has gone by than expected and we're still not sure.

Turns out this scenario is slightly different than last time and that's why we're struggling. That _and_ being <1 year of Odoo experience and troubleshooting.

Having said all that, thanks for your proposed solution! I will try implementing it once we get this worked out.

Chris Parker

To be clear, I'm not advocating for all negative movements to be clocked. I'm advocating specifically for Odoo to reject the receipt of subcontracted goods before the underlying MO(s) have been completed and the subcontractor has been resupplied. It should be safe for Odoo to assume that because the finished good is able to be received, it must also be true that the subcontractor was resupplied.

Perhaps a middle ground is, "You are about to receive a subcontracted item for which the subcontractor has not been resupplied. This may cause an imbalance in your system. Do you wish to proceed?"

The operator would then have the opportunity to go and complete the unfinished MO and Resupply.

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
Related Posts Replies Views Activity
Link between Manufacturing Order and subcontractor
mrp subcontracting v15
Avatar
0
Apr 25
2893
Pricelists for product category with minimal quantity conditions
pricelist productcategory v15 KeepItSimple
Avatar
Avatar
Avatar
Avatar
4
Feb 24
5504
Different home page for mobile access
mobile homepage v15 KeepItSimple
Avatar
0
Apr 23
3636
(v14) How do I get a subcontracted product to be delivered directly to an external address chosen in a Purchase Order? Solved
dropship subcontracting deliveries-warehouse KeepItSimple
Avatar
Avatar
Avatar
3
Oct 22
4896
Edit header and footer of email templates
header footer emailtemplate v15 KeepItSimple
Avatar
Avatar
Avatar
Avatar
3
Mar 25
10652
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