| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Purchase (purchase)
• Invoicing (account) • Discuss (mail) • Inventory (stock) |
| Lines of code | 498 |
| Technical Name |
default_warehouse_from_sale_team |
| License | OPL-1 |
| Website | http://www.vauxoo.com |
| Versions | 8.0 11.0 12.0 18.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Purchase (purchase)
• Invoicing (account) • Discuss (mail) • Inventory (stock) |
| Lines of code | 498 |
| Technical Name |
default_warehouse_from_sale_team |
| License | OPL-1 |
| Website | http://www.vauxoo.com |
| Versions | 8.0 11.0 12.0 18.0 |
DISCOVER EVERYTHING YOU CAN DO WITH OUR APP!
User: demo
Password: demo
App
Default Warehouse Automation by Sales Team
This module automates the assignment of warehouses in Odoo based on each user's Sales Team.
*Useful for: Sales Managers and Inventory Teams.
Keep your warehouse operations aligned automatically with every sales action.
Main Features Main Features

Automatically assign warehouse_id from the user's default Sales Team.

Validate team membership; prevent setting a team the user doesn't belong to.

Align permissions and visibility to the team's warehouse across flows.
Installation
Install via Apps and activate the module.
Usage
Default Warehouse from Sales Team
Usage
Add a field `Default Warehouse` in sales team.
Create sort kind of API where any object with field called warehouse_id will take the default value from the sales team field this taking into account the team defined in `Default Sale Teams` field defined in the res.user model.
To improve, consistency and usability we add the following features:
- If you try to add a default sales team where the user doesn't belongs wil throw you an error message:
Can not set default team is do not belongs to sale team
- Add an automated action/server action to update the user default sales team every time that a sales teams by:
- Adding user's default sale team if empty.
- Removing default sale team from user if not longer in sale team.
- Dummy write to update m2m in users to make new feature for filtering records.
Example of automatically added warehouse to sale order given the user
Currently this default warehouse feature applies for:
- Sale orders
- Transfers (``stock.picking``)
- Operation type (``stock.picking.type``)
Also add a new feature for Permissions and Security: Taking advantage of the default_warehouse field in the sales team model now we can filter the records (picking type and picking model) to only show those records that match with the user sale teams default_warehouse. To accomplish this I:
- Add new groups to manage the records access by user:
- Default Warehouse / Limited access to transfers (filtered by sales team)
- Default Warehouse / Limited access to operation types (filtered by sales team)
- Default Warehouse / Access to all operation types
- Default Warehouse / Access to all transfers
- Add a new M2M field in the res.user model used in the new ir.rules, this one is showed as a readonly field (only informative) to know the teams were the sale user belongs.
- Add new ir.rule records, one for each default warehouse group. This one will let us to only show the records for the current user sal teams default_warehouse or to do not take into account the sale team and show all the records to the user.
To add more models use it simple do this:
1. Inherit the class that you want to set the field warehouse_id
class SomeClass(models.Model):
_name = 'some.class'
_inherit = ['some.class', 'default.warehouse']
warehouse_id = fields.Many2one('stock.warehouse', help='Warehouse were'
'this object will belong to')
- Create two ir.rule to filter stock.picking and stock.picking.type taking
into account the current user warehouses. When a user is part of warehouse
teams will be able to access only the records related to that warehouses
<record id="rule_group_model" model="ir.rule">
<field name="name">Limited access to model (filtered by sales teams)</field>
<field name="model_id" search="[('model','=','model')]" model="ir.model"/>
<field name="groups" eval"[Command.set([ref('xml_id_group')])]/>
<field name="domain_force">[('warehouse_id', 'in', [team.default_warehouse.id for team in user.sale_team_ids if team.default_warehouse])]</field>
</record>
<record id="rule_group_model_2" model="ir.rule">
<field name="name">Access to all model</field>
<field name="model_id" search="[('model','=','model')]" model="ir.model"/>
<field name="groups" eval"[Command.set([ref('xml_id_group')])]/>
<field name="domain_force">[(1, '=', 1)]</field>
</record>
3. Don't forget depends of this module adding it to the list into `__manifest__.py`
The default value from this field will be the warehouse setted in the section.
If the user is not related to a sales team or not warehouse setted on the section the default warehouse will be set using the default behavior of the system which is assign the main warehouse.Support
We are committed to the quality of our products and services, offering expert support for setup, customization, or troubleshooting.
How can we help?Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module