Sale Team Warehouse

by
Odoo
v 8.0 v 11.0 v 12.0 Third Party 171
Download for v 8.0
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies Social Network (mail)
Sales Management (sale)
Online Billing (account_voucher)
Warehouse Management (stock)
Purchase Management (purchase)
Technical Name default_warehouse_from_sale_team
LicenseAGPL-3
Websitehttp://www.vauxoo.com
Versions 11.0 12.0 8.0
You bought this module and need support? Click here!

Sales Team Warehouse

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 next features:

  • If you try to add a default sale team where the user do not 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:

    • add user's default sale team if empty.
    • remove 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.

Currently this default warehouse feature applies for sale.order, stock.picking.type and stock.picking.

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 pickings (filtered by sale teams)
    • Default Warehouse / Limited access to stock pickings (filtered by sale teams)
    • Default Warehouse / Access to all picking types (filtered by sale teams)
    • Default Warehouse / Access to all pickings (filtered by sale teams)
  • add new m2m field in the res.user model used in the new ir.rules. this onw 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 sale teams default_warehouse or to do not take into account the sale teams 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')
    

2. 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"[(6, 0, [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"[(6, 0, [ref('xml_id_group')])]/>
    <field name="domain_force">[(1, '=', 1)]</field>
</record>
  1. Don't forget depends of this module adding it to the list into __openerp__.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.

Bug Tracker

Bugs are tracked on GitHub Issues . In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed feedback here

Credits

Contributors

Do you need help?

Let's offer you the best services!

Contact us by our official channels.

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.