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.
84 lines
3.1 KiB
84 lines
3.1 KiB
from odoo import api, fields, models
|
|
|
|
|
|
class PartnerUpdateInfo(models.TransientModel):
|
|
_name = "partner.update.info"
|
|
_description = "Update Partner Info"
|
|
|
|
@api.model
|
|
def _get_partner(self):
|
|
active_id = self.env.context.get("active_id")
|
|
return self.env["res.partner"].browse(active_id)
|
|
|
|
@api.model
|
|
def _get_register_number(self):
|
|
partner = self._get_partner()
|
|
if partner.is_company:
|
|
return partner.company_register_number
|
|
|
|
@api.model
|
|
def _get_is_company(self):
|
|
return self._get_partner().is_company
|
|
|
|
is_company = fields.Boolean(string="Is company", default=_get_is_company)
|
|
register_number = fields.Char(
|
|
string="Register Company Number", default=_get_register_number
|
|
)
|
|
cooperator = fields.Many2one(
|
|
"res.partner", string="Cooperator", default=_get_partner
|
|
)
|
|
all = fields.Boolean(string="Update from subscription request")
|
|
birthdate = fields.Boolean(string="Set missing birth date")
|
|
legal_form = fields.Boolean(string="Set legal form")
|
|
representative_function = fields.Boolean(string="Set function")
|
|
|
|
@api.multi
|
|
def update(self):
|
|
partner_obj = self.env["res.partner"]
|
|
cooperator = self.cooperator
|
|
coop_vals = {}
|
|
|
|
if self.all:
|
|
if self.legal_form or self.representative_function:
|
|
coops = partner_obj.search(
|
|
[("cooperator", "=", True), ("is_company", "=", True)]
|
|
)
|
|
for coop in coops:
|
|
coop_vals = {}
|
|
sub_reqs = coop.subscription_request_ids.filtered(
|
|
lambda r: r.state in ["done", "paid"]
|
|
)
|
|
if sub_reqs:
|
|
sub_req = sub_reqs[0]
|
|
if self.legal_form:
|
|
coop_vals["legal_form"] = sub_req.company_type
|
|
coop.write(coop_vals)
|
|
if self.representative_function:
|
|
contact = coop.get_representative()
|
|
contact.function = sub_req.contact_person_function
|
|
else:
|
|
coops = partner_obj.search(
|
|
[
|
|
("cooperator", "=", True),
|
|
("birthdate_date", "=", False),
|
|
("is_company", "=", False),
|
|
]
|
|
)
|
|
for coop in coops:
|
|
coop_vals = {}
|
|
sub_reqs = coop.subscription_request_ids.filtered(
|
|
lambda r: r.state in ["done", "paid"]
|
|
)
|
|
if sub_reqs:
|
|
sub_req = sub_reqs[0]
|
|
if self.birthdate:
|
|
coop_vals["birthdate_date"] = sub_req.birthdate
|
|
coop.write(coop_vals)
|
|
else:
|
|
if cooperator:
|
|
if cooperator.is_company:
|
|
coop_vals["company_register_number"] = self.register_number
|
|
if coop_vals:
|
|
cooperator.write(coop_vals)
|
|
|
|
return True
|