diff --git a/odex25_takaful/odex_takaful/models/donation_extension_history.py b/odex25_takaful/odex_takaful/models/donation_extension_history.py index 677571e65..92d5b97d8 100644 --- a/odex25_takaful/odex_takaful/models/donation_extension_history.py +++ b/odex25_takaful/odex_takaful/models/donation_extension_history.py @@ -107,6 +107,7 @@ class DonationExtensionHistory(models.Model): state = fields.Selection([ ('active', 'Active'), + ('wait_pay', 'Wait Pay'), ('paid', 'Paid'), ('cancel', 'Canceled') ], string='State', default='active', tracking=True) @@ -263,6 +264,13 @@ class DonationExtensionHistory(models.Model): self.sudo().invoice_id.button_draft() self.sudo().invoice_id.button_cancel() + if self.new_direct_debit: + scheduling_lines = self.env['sponsorship.scheduling.line'].search([ + ('donation_detail_linked_id', '=', self.donation_detail_id.id), + ('scheduled_date', '>', self.old_end_date) + ]) + scheduling_lines.sudo().unlink() + self.write({ 'state': 'cancel' }) diff --git a/odex25_takaful/odex_takaful/models/sponsorship_scheduling_line.py b/odex25_takaful/odex_takaful/models/sponsorship_scheduling_line.py index 5b6abd620..90b5522fd 100644 --- a/odex25_takaful/odex_takaful/models/sponsorship_scheduling_line.py +++ b/odex25_takaful/odex_takaful/models/sponsorship_scheduling_line.py @@ -158,6 +158,13 @@ class SchedulingLine(models.Model): elif line.donation_detail_linked_id.state != 'waiting' and line.donation_detail_linked_id.record_type != 'donation' and line.donation_detail_linked_id.record_type == 'sponsorship': line.donation_detail_linked_id.sudo().write({'state': 'active'}) line.donation_detail_linked_id.sponsorship_id.sudo().write({'state': 'wait_pay'}) + histories = self.env['donation.extension.history'].sudo().search([ + ('donation_detail_id', '=', line.donation_detail_linked_id.id), + ('old_end_date', '<', line.scheduled_date), + ('new_end_date', '>=', line.scheduled_date) + ]) + if len(histories): + histories.write({'state': 'wait_pay'}) _logger.info(f"Successfully processed scheduled payment for line {line.sequence_no}") diff --git a/odex25_takaful/odex_takaful/views/donation_extension_history_views.xml b/odex25_takaful/odex_takaful/views/donation_extension_history_views.xml index bf8f285d5..cf8c87a96 100644 --- a/odex25_takaful/odex_takaful/views/donation_extension_history_views.xml +++ b/odex25_takaful/odex_takaful/views/donation_extension_history_views.xml @@ -30,7 +30,7 @@