[FIX] hr_fleet: no duplicate contract renewal activity reminder
Step to reproduce: - Have a fleet contract that need renewal Current Behaviour: - A new activity is created everytime the scheduler is called Behaviour after PR: - A new activity is only created if there is no current renewal activity present when the scheduler is called opw-2713537 closes odoo/odoo#81919 X-original-commit: 3610069ea2c10fccf8fcc82c384a2194c4702e06 Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com> Signed-off-by: Damhaut Florian (flda) <flda@odoo.com>
This commit is contained in:
@@ -120,9 +120,17 @@ class FleetVehicleLogContract(models.Model):
|
||||
delay_alert_contract = int(params.get_param('hr_fleet.delay_alert_contract', default=30))
|
||||
date_today = fields.Date.from_string(fields.Date.today())
|
||||
outdated_days = fields.Date.to_string(date_today + relativedelta(days=+delay_alert_contract))
|
||||
nearly_expired_contracts = self.search([('state', '=', 'open'), ('expiration_date', '<', outdated_days)])
|
||||
reminder_activity_type = self.env.ref('fleet.mail_act_fleet_contract_to_renew', raise_if_not_found=False) or self.env['mail.activity.type']
|
||||
nearly_expired_contracts = self.search([
|
||||
('state', '=', 'open'),
|
||||
('expiration_date', '<', outdated_days),
|
||||
('user_id', '!=', False)
|
||||
]
|
||||
).filtered(
|
||||
lambda nec: reminder_activity_type not in nec.activity_ids.activity_type_id
|
||||
)
|
||||
|
||||
for contract in nearly_expired_contracts.filtered(lambda contract: contract.user_id):
|
||||
for contract in nearly_expired_contracts:
|
||||
contract.activity_schedule(
|
||||
'fleet.mail_act_fleet_contract_to_renew', contract.expiration_date,
|
||||
user_id=contract.user_id.id)
|
||||
|
||||
Reference in New Issue
Block a user