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
-