diff --git a/odex25_takaful/odex_takaful/__manifest__.py b/odex25_takaful/odex_takaful/__manifest__.py index 0970a8719..eb21b1319 100644 --- a/odex25_takaful/odex_takaful/__manifest__.py +++ b/odex25_takaful/odex_takaful/__manifest__.py @@ -84,10 +84,9 @@ 'views/product_views.xml', 'views/payment_machine_views.xml', 'views/account_payment_views.xml', - 'views/global_extension_wizard_view.xml', + 'wizards/global_extension_wizard_view.xml', 'views/takaful_menus_actions.xml', 'views/benefit_category_views.xml', - 'wizards/global_extension_wizard.xml', 'data/message_template_data.xml', 'wizards/transfer_deduction_wizard_views.xml', diff --git a/odex25_takaful/odex_takaful/models/donation_details_lines.py b/odex25_takaful/odex_takaful/models/donation_details_lines.py index 587624e0a..d1ec0031d 100644 --- a/odex25_takaful/odex_takaful/models/donation_details_lines.py +++ b/odex25_takaful/odex_takaful/models/donation_details_lines.py @@ -1441,3 +1441,8 @@ class DonationsDetailsLines(models.Model): if self.env.context.get('wizard_force_show_all'): self = self.sudo() return super(DonationsDetailsLines, self).search(args, offset, limit, order, count) + + def read(self, fields=None, load='_classic_read'): + if self.env.context.get('wizard_force_show_all'): + self = self.sudo() + return super(DonationsDetailsLines, self).read(fields, load) diff --git a/odex25_takaful/odex_takaful/wizards/account_payment_register.py b/odex25_takaful/odex_takaful/wizards/account_payment_register.py index 59748b28f..fdfe4078e 100644 --- a/odex25_takaful/odex_takaful/wizards/account_payment_register.py +++ b/odex25_takaful/odex_takaful/wizards/account_payment_register.py @@ -58,6 +58,8 @@ class AccountRegisterPayment(models.TransientModel): sponsorship_id = self.env.context.get('default_takaful_sponsorship_id') or self.env.context.get('active_id') if sponsorship_id: sponsorship = self.env['takaful.sponsorship'].browse(sponsorship_id) + if self.env.context.get('wizard_force_show_all'): + sponsorship = sponsorship.sudo() if sponsorship.exists() and sponsorship.branch_custom_id: return self.env['payment.machine'].search([ ('branch_custom_id', '=', sponsorship.branch_custom_id.id), @@ -193,8 +195,12 @@ class AccountRegisterPayment(models.TransientModel): def _create_payments(self): sponsorship_line_ids = self.env.context.get('sponsorship_line_ids') - sponsorship_lines = self.env['donations.details.lines'].browse(sponsorship_line_ids).filtered( - lambda r: r.display_type == False) + if self.env.context.get('wizard_force_show_all'): + sponsorship_lines = self.env['donations.details.lines'].sudo().browse(sponsorship_line_ids).filtered( + lambda r: r.display_type == False) + else: + sponsorship_lines = self.env['donations.details.lines'].browse(sponsorship_line_ids).filtered( + lambda r: r.display_type == False) sponsorship = self.env['takaful.sponsorship'].browse(self.env.context.get('sponsorship_id')) payments = super(AccountRegisterPayment, self)._create_payments() if sponsorship_lines: diff --git a/odex25_takaful/odex_takaful/wizards/donation_extension_wizard.py b/odex25_takaful/odex_takaful/wizards/donation_extension_wizard.py index 21c0c55a5..018f3d60d 100644 --- a/odex25_takaful/odex_takaful/wizards/donation_extension_wizard.py +++ b/odex25_takaful/odex_takaful/wizards/donation_extension_wizard.py @@ -68,6 +68,8 @@ class DonationExtensionWizard(models.TransientModel): def _compute_line_ids(self): extension_line_ids = [(5,)] donation_detail_ids = self.env['donations.details.lines'].browse(self.env.context.get('donation_detail_ids')) + if self.env.context.get('wizard_force_show_all'): + donation_detail_ids = donation_detail_ids.sudo() for line in donation_detail_ids: if line.record_type == 'donation' or line.sponsorship_duration == 'permanent': raise ValidationError(_("Only donation with direct debit or sponsorship can be extended. Line: %s") % line.name) @@ -115,8 +117,11 @@ class DonationExtensionWizard(models.TransientModel): donation_line_ids += result[1] if invoice_ids: + line_ids = self.line_ids + if self.env.context.get('wizard_force_show_all'): + line_ids = line_ids.sudo() # Get unique sponsorship IDs and take the first one (they should be same in normal use) - sponsorship_ids = list(set(self.line_ids.mapped('donation_line_id.sponsorship_mechanism_id.id'))) + sponsorship_ids = list(set(line_ids.mapped('donation_line_id.sponsorship_mechanism_id.id'))) sponsorship_id = sponsorship_ids[0] if sponsorship_ids else False return { @@ -129,13 +134,13 @@ class DonationExtensionWizard(models.TransientModel): 'default_amount': amount, 'sponsorship_payment_skip_compute_amount': True, 'dont_redirect_to_payments': True, - 'sponsorship_line_ids': self.line_ids.donation_line_id.ids, + 'sponsorship_line_ids': line_ids.donation_line_id.ids, 'sponsorship_payment': True, 'default_sponsorship_payment': True, 'wiz_id': self.id, 'sponsorship_id': sponsorship_id, 'default_takaful_sponsorship_id': sponsorship_id, - 'force_sponsorship_line_partner_id': self.line_ids.mapped('partner_id')[:1].id, + 'force_sponsorship_line_partner_id': line_ids.mapped('partner_id')[:1].id, }, 'target': 'new', 'type': 'ir.actions.act_window', @@ -344,10 +349,15 @@ class DonationExtensionWizardLine(models.TransientModel): if not self.donation_line_id: raise ValidationError(_("No donation detail line selected.")) + + donation_line_id = self.donation_line_id + if self.env.context.get('wizard_force_show_all'): + donation_line_id = self.donation_line_id.sudo() + if not self.extension_invoice_id: # Update the donation detail line self.old_end_date = self.current_end_date - self.old_payment_month_count = self.donation_line_id.payment_month_count + self.old_payment_month_count = donation_line_id.payment_month_count new_end_date = self.current_end_date + relativedelta(months=self.months) old_end_date = self.current_end_date @@ -355,7 +365,7 @@ class DonationExtensionWizardLine(models.TransientModel): # Update end date # donation_line_new_vals = { # 'end_date': new_end_date, - # 'payment_month_count': self.donation_line_id.payment_month_count + self.months, + # 'payment_month_count': donation_line_id.payment_month_count + self.months, # } # if self.direct_debit: # donation_line_new_vals.update({ @@ -365,9 +375,9 @@ class DonationExtensionWizardLine(models.TransientModel): # 'debit_payment_file_attachment': self.debit_payment_file_attachment, # 'debit_payment_attachment_file_name': self.debit_payment_attachment_file_name, # }) - # self.donation_line_id.write(donation_line_new_vals) + # donation_line_id.write(donation_line_new_vals) - # benefit_ids = self.donation_line_id.benefit_ids | self.donation_line_id.benefit_id + # benefit_ids = donation_line_id.benefit_ids | donation_line_id.benefit_id # benefit_ids.write({ # 'sponsorship_end_date': new_end_date, # 'kafala_status': 'have_kafala', @@ -383,14 +393,14 @@ class DonationExtensionWizardLine(models.TransientModel): # Create extension history record self.env['donation.extension.history'].create({ - 'donation_detail_id': self.donation_line_id.id, - 'sponsorship_id': self.donation_line_id.sponsorship_id.id or self.donation_line_id.sponsorship_mechanism_id.id, + 'donation_detail_id': donation_line_id.id, + 'sponsorship_id': donation_line_id.sponsorship_id.id or donation_line_id.sponsorship_mechanism_id.id, 'extension_amount': self.total_donation_amount, 'extension_months': self.months, 'old_end_date': old_end_date, 'new_end_date': new_end_date, 'invoice_id': invoice_id.id if invoice_id else False, - 'old_direct_debit': self.donation_line_id.direct_debit, + 'old_direct_debit': donation_line_id.direct_debit, 'new_direct_debit': self.direct_debit, 'direct_debit_partner_bank_id': self.direct_debit_partner_bank_id.id, @@ -402,7 +412,7 @@ class DonationExtensionWizardLine(models.TransientModel): }) if not self.direct_debit: - return self.extension_invoice_id, self.donation_line_id + return self.extension_invoice_id, donation_line_id return False @@ -446,6 +456,8 @@ class DonationExtensionWizardLine(models.TransientModel): self.ensure_one() donation_line = self.donation_line_id + if self.env.context.get('wizard_force_show_all'): + donation_line = self.donation_line_id.sudo() sponsorship = donation_line.sponsorship_id or donation_line.sponsorship_mechanism_id # Get journal from settings diff --git a/odex25_takaful/odex_takaful/wizards/global_extension_wizard.py b/odex25_takaful/odex_takaful/wizards/global_extension_wizard.py index 72f3bd81e..62e5f23c7 100644 --- a/odex25_takaful/odex_takaful/wizards/global_extension_wizard.py +++ b/odex25_takaful/odex_takaful/wizards/global_extension_wizard.py @@ -6,41 +6,28 @@ class GlobalExtensionWizard(models.TransientModel): _name = 'global.extension.wizard' _description = 'Global Extension Wizard' - # Field for number of months - number_of_months = fields.Integer( - string='Number of Months', - required=True, - default=1 - ) - - # Field to select multiple donation lines - # Assumes the target model is 'donations.details.lines' as specified line_ids = fields.Many2many( comodel_name='donations.details.lines', - string='Donation Lines', - domain=[] + string='Donation Lines' ) - @api.onchange('line_ids') - def _onchange_line_ids_domain(self): - allowed_ids = self.env['donations.details.lines'].sudo().search([ - ('record_type', '=', 'sponsorship'), - ('sponsorship_duration', '=', 'temporary'), - ('state', 'in', ['active', 'replace']) - ]).ids - return {'domain': {'line_ids': [('id', 'in', allowed_ids)]}} + @api.model + def create(self, vals): + return super(GlobalExtensionWizard, self.sudo()).create(vals) def action_confirm(self): + wizard_sudo = self.sudo() + return { 'type': 'ir.actions.act_window', - 'name': _('Extend Donation'), + 'name': ('Extend Donation'), 'res_model': 'donation.extension.wizard', 'view_mode': 'form', 'target': 'new', 'context': { - 'donation_detail_ids': self.line_ids.ids, - 'default_months': self.number_of_months, - 'no_quick_close': True + 'donation_detail_ids': wizard_sudo.line_ids.ids, + 'no_quick_close': True, + 'wizard_force_show_all': True }, } \ No newline at end of file diff --git a/odex25_takaful/odex_takaful/wizards/global_extension_wizard.xml b/odex25_takaful/odex_takaful/wizards/global_extension_wizard.xml deleted file mode 100644 index 8fecc6c13..000000000 --- a/odex25_takaful/odex_takaful/wizards/global_extension_wizard.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - global.extension.wizard.form - global.extension.wizard - -
- - - - - - - - - - - - - - - - - - - -
-
-
- -
diff --git a/odex25_takaful/odex_takaful/views/global_extension_wizard_view.xml b/odex25_takaful/odex_takaful/wizards/global_extension_wizard_view.xml similarity index 73% rename from odex25_takaful/odex_takaful/views/global_extension_wizard_view.xml rename to odex25_takaful/odex_takaful/wizards/global_extension_wizard_view.xml index 1f6e58163..ee2c1d23d 100644 --- a/odex25_takaful/odex_takaful/views/global_extension_wizard_view.xml +++ b/odex25_takaful/odex_takaful/wizards/global_extension_wizard_view.xml @@ -6,16 +6,17 @@ global.extension.wizard.form global.extension.wizard -
+ - - - - - - + @@ -50,6 +51,10 @@ form new + { + 'wizard_force_show_all': True, + 'active_test': False + }