You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

28 lines
983 B

  1. # Copyright 2020 Tecnativa - Carlos Dauden
  2. # Copyright 2020 Tecnativa - Sergio Teruel
  3. # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
  4. from odoo import fields, models
  5. class ResPartner(models.Model):
  6. _inherit = "res.partner"
  7. partner_delivery_id = fields.Many2one(
  8. comodel_name="res.partner", string="Shipping address",
  9. )
  10. partner_invoice_id = fields.Many2one(
  11. comodel_name="res.partner", string="Invoice address",
  12. )
  13. def get_address_default_type(self):
  14. return ["delivery", "invoice"]
  15. def address_get(self, adr_pref=None):
  16. res = super().address_get(adr_pref)
  17. default_address_type_list = self.get_address_default_type()
  18. for partner in self:
  19. for addr_type in default_address_type_list:
  20. default_address_id = partner["partner_{}_id".format(addr_type)]
  21. if default_address_id:
  22. res[addr_type] = default_address_id
  23. return res