Skip to content

Commit

Permalink
[IMP] crm_last_dates: Improve depends
Browse files Browse the repository at this point in the history
  • Loading branch information
unaiberis committed Oct 10, 2024
1 parent f916228 commit 525df91
Showing 1 changed file with 17 additions and 26 deletions.
43 changes: 17 additions & 26 deletions crm_last_dates/models/res_partner.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,41 +5,32 @@ class ResPartner(models.Model):
_inherit = "res.partner"

last_lead_date = fields.Datetime(
compute="_compute_last_dates",
compute="_compute_last_lead_date",
store=True,
)
last_meeting_date = fields.Datetime(
compute="_compute_last_dates",
compute="_compute_last_meeting_date",
store=True,
)
last_invoice_date = fields.Datetime(
compute="_compute_last_dates",
compute="_compute_last_invoice_date",
store=True,
)

@api.depends("commercial_partner_id")
def _compute_last_dates(self):
@api.depends("commercial_partner_id", "opportunity_ids")
def _compute_last_lead_date(self):
for partner in self:
lead = self.env["crm.lead"].search(
[("partner_id", "=", partner.commercial_partner_id.id)],
order="create_date desc",
limit=1,
)
partner.last_lead_date = lead.create_date if lead else False
lead_dates = partner.mapped("opportunity_ids.create_date")
partner.last_lead_date = max(lead_dates) if lead_dates else False

meeting = self.env["calendar.event"].search(
[("partner_ids", "in", partner.commercial_partner_id.id)],
order="create_date desc",
limit=1,
)
partner.last_meeting_date = meeting.create_date if meeting else False
@api.depends("commercial_partner_id", "meeting_ids")
def _compute_last_meeting_date(self):
for partner in self:
meeting_dates = partner.mapped("meeting_ids.create_date")
partner.last_meeting_date = max(meeting_dates) if meeting_dates else False

invoice = self.env["account.move"].search(
[
("partner_id", "=", partner.commercial_partner_id.id),
("move_type", "=", "out_invoice"),
],
order="invoice_date desc",
limit=1,
)
partner.last_invoice_date = invoice.invoice_date if invoice else False
@api.depends("commercial_partner_id", "invoice_ids")
def _compute_last_invoice_date(self):
for partner in self:
invoice_dates = partner.mapped("invoice_ids.create_date")
partner.last_invoice_date = max(invoice_dates) if invoice_dates else False

0 comments on commit 525df91

Please sign in to comment.