Hibou Odoo Suite: Inventory Modules: Stock Exceptions
This documentation covers the installation and configuration of the Hibou's Stock Exceptions module for Odoo.
The first step is to install the module. To do so, navigate to the Apps application..
Once there, remove the 'Apps' filter, then search for 'Stock Exception Rule'. When you're ready, click INSTALL.
Stock Exception Rules
Let's start by navigating to the Inventory app.
We will only be working with these 3 exception rules in order to see how this module functions. The Allow User Ignore option indicates whether a user with the Exception User permission is allowed to ignore a triggered exception.
Activate Exception Rules
You can toggle an exception on and off! So remember, even if you enable Allow User Ignore on an exception rule, it will not trigger if the active button is off.
Good to Know!
Example Stock Exception Rule
This stock exception rule applies to outgoing transfers:
partner = picking.partner_id.commercial_partner_id
if picking.picking_type_id.code == 'outgoing' and partner.credit_hold:
failed = True
Configure the User Permissions
Let's see how the user permission levels effect their ability to bypass exceptions. Start by going to the Settings app.
Under the ACCESS RIGHTS tab:
User or Administrator: A user with this permission level will not be able to bypass a triggered exception if not indicated otherwise on the exception rule (Allow User Ignore and has the Exception User permission enabled under Technical Settings) or has the Exception Manager enabled under Technical Settings.
Technical Settings ( debug mode)
Exception Manager: A user is able to override exceptions even if they have low level permissions in Inventory like User and Administrator.
Exception User: A user is able to override exceptions even if they have low level permissions in Inventory like User, as long as all triggered exceptions are capable of being ignored by a user.
Contact Configuration for Testing!
Let's take a look at the contact we are going to be using for testing! So if we look under the ACCOUNTING tab, you will see that our contact has a Credit Limit of $500.00 and has $0.00 of Credit Remaining. You will also notice that we have put this customer on Credit Hold for the time being.
The Total Receivable is sitting at $500.00, which indicates that this is an unpaid invoice. However, let's check to see if it is overdue but clicking on the $ Due smart button.
Effectively we see that this is indeed an overdue invoice. So, now you see that the contact has been setup in such a way where it will trigger all 3 exception rules in order to demonstrate how our module functions.
Exception Rules in Action!
We will start this process by going to the Inventory app.
From here, Group By > Warehouse then click on the Delivery Order operations # to Process.
Once you find the delivery order, click on it.
Fill in the done quantities, then click on Validate.
The way the user can interact with the exceptions will depend on their permission level.
Inventory: User or Inventory: Administrator & Is NOT an Exception Manager or Exception User
The user will see the exceptions go off for all 3 rules since this contact has hit the requirements to activate them. They will need to click CONFIRM on this popup window.
With these permission levels, the user will see the exceptions, however, he will not be able to ignore them (even if all exceptions did Allow User Ignore, as they have no permissions that would allow them to do so). As you will see, this will leave this record in the Ready state until a user with higher permissions ignores the exceptions.
Inventory: User or Inventory: Administrator & IS an Exception Manager
The user will see the exceptions go off for all 3 rules since this contact has hit the requirements to activate them. Since this user has the Exception Manager enabled for their user, they will simply need to check Ignore Exceptions, then click Close. This will immediately move the transfer to the Done status (or enter the user into modals for creating backorders, etc.).
Inventory User or Inventory: Administrator & IS an Exception User
This combination of permissions behaves similarly to the example above. Since, the current example will cause all the exceptions to trigger, and one of them does not Allow User Ignore, we will not be able to see the ignore button available for this user.
So let's tweak our scenario and only trigger the exceptions the user is Allowed to Ignore. Once the Delivery Order is validated, the user will see the following popup window, where they would need to click IGNORE. This will then move the delivery order into the Done status (or enter the user into modals for creating backorders, etc.).
The chatter will immediately add a note indicating which exceptions were ignored and by which user.