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.
36 lines
1.4 KiB
36 lines
1.4 KiB
from odoo import models, api
|
|
|
|
|
|
class ResPartner(models.Model):
|
|
_inherit = "res.partner"
|
|
_order = "is_company desc, country_id, country_department_id, display_name, id"
|
|
|
|
@api.onchange("state_id")
|
|
def _onchange_state_id(self):
|
|
state = self.state_id
|
|
if state:
|
|
if self.partner_scale in ["dept", "loc"]:
|
|
crck = self.search(
|
|
[("partner_scale", "=", "reg"), ("state_id", "=", state)], limit=1
|
|
)
|
|
if crck and crck != self.crck_partner_id:
|
|
main = self.env.ref("base.main_partner")
|
|
if self.crck_partner_id != main:
|
|
self.crck_partner_id = main
|
|
elif self.partner_scale == "reg":
|
|
self.crck_partner_id = self
|
|
|
|
@api.onchange("country_department_id")
|
|
def _onchange_country_department_id(self):
|
|
dept = self.country_department_id
|
|
if dept and self.partner_scale == "loc":
|
|
cdck = self.search(
|
|
[("partner_scale", "=", "dep"), ("country_department_id", "=", dept)],
|
|
limit=1,
|
|
)
|
|
if cdck and cdck != self.cdck_partner_id:
|
|
main = self.env.ref("base.main_partner")
|
|
if self.cdck_partner_id != main:
|
|
self.cdck_partner_id = main
|
|
elif self.partner_scale == "dep":
|
|
self.cdck_partner_id = self
|