Skip to Content
Menu
This question has been flagged
1 Reply
2919 Views

How can  i assign a vendor a certain warehouse to deliver to  in odoo 13?

Avatar
Discard
Best Answer

Hi Yash,

There is no default option to do the mentioned process. But we can do a modification in both the vendor model and purchase module to set a default warehouse for a vendor.

First, let's inherit the 'res.partner' to add a new field to select the warehouse operation

class DefaultWarehouse(models.Model):
_inherit = 'res.partner'

default_warehouse_id = fields.Many2one('stock.picking.type',                         string="DefaultWarehouse",domain=[('code', '=', 'incoming')])


Then let's add this in the view 

<record id="default_warehouse" model="ir.ui.view">
  <field name="name">default.warehouse</field>
  <field name="model">res.partner</field>
  <field name="inherit_id" ref="base.view_partner_form"/>
  <field name="arch" type="xml">
  <xpath expr="//group[@name='purchase']" position="inside">
  <field name="default_warehouse_id"/>
  </xpath>
  </field>
</record>

Next, we can inherit the purchase.order model so that when we select a vendor the delivery location will get assigned automatically

class PurchaseOrder(models.Model):
  _inherit = 'purchase.order'

    @api.onchange('partner_id')
    def get_warehouse(self):
        if self.partner_id.default_warehouse_id:
            self.picking_type_id = self.partner_id.default_warehouse_id

Like this, we can assign a default warehouse for a vendor. Hope this helps. Thank you.

Avatar
Discard
Related Posts Replies Views Activity
1
Jun 21
1954
1
Apr 21
1179
7
Mar 24
31893
0
Nov 24
8
0
Nov 24
142