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 @@
-
diff --git a/odex25_takaful/odex_takaful/wizards/donation_extension_wizard.py b/odex25_takaful/odex_takaful/wizards/donation_extension_wizard.py index 018f3d60d..87212309c 100644 --- a/odex25_takaful/odex_takaful/wizards/donation_extension_wizard.py +++ b/odex25_takaful/odex_takaful/wizards/donation_extension_wizard.py @@ -505,32 +505,32 @@ class DonationExtensionWizardLine(models.TransientModel): def cancel_extension(self): self.ensure_one() - if self.extension_invoice_id: - invoice = self.extension_invoice_id + # if self.extension_invoice_id: + # invoice = self.extension_invoice_id - if invoice.state == 'posted': - invoice.button_draft() - invoice.button_cancel() + # if invoice.state == 'posted': + # invoice.button_draft() + # invoice.button_cancel() - else: - invoice.button_cancel() + # else: + # invoice.button_cancel() - scheduling_lines = self.env['sponsorship.scheduling.line'].search([ - ('donation_detail_linked_id', '=', self.donation_line_id.id), - ('scheduled_date', '>', self.old_end_date) - ]) - scheduling_lines.sudo().unlink() + # scheduling_lines = self.env['sponsorship.scheduling.line'].search([ + # ('donation_detail_linked_id', '=', self.donation_line_id.id), + # ('scheduled_date', '>', self.old_end_date) + # ]) + # scheduling_lines.sudo().unlink() - self.donation_line_id.write({ - 'end_date': self.old_end_date, - 'payment_month_count': self.old_payment_month_count, - }) + # self.donation_line_id.write({ + # 'end_date': self.old_end_date, + # 'payment_month_count': self.old_payment_month_count, + # }) history_records = self.env['donation.extension.history'].search([ ('donation_detail_id', '=', self.donation_line_id.id), ('invoice_id', '=', self.extension_invoice_id.id if self.extension_invoice_id else False), ('new_end_date', '=', self.new_end_date), ]) - history_records.sudo().unlink() + history_records.sudo().action_cancel_invoice() return True diff --git a/odex25_takaful/odex_takaful/wizards/global_extension_wizard_view.xml b/odex25_takaful/odex_takaful/wizards/global_extension_wizard_view.xml index ee2c1d23d..e1ddb4a64 100644 --- a/odex25_takaful/odex_takaful/wizards/global_extension_wizard_view.xml +++ b/odex25_takaful/odex_takaful/wizards/global_extension_wizard_view.xml @@ -2,6 +2,19 @@ + + donations.details.lines.view.form.inherit + donations.details.lines + + primary + False + + + + + + + global.extension.wizard.form global.extension.wizard @@ -11,7 +24,11 @@ -