Merge pull request #6275 from expsa/samir_aladawi_global_extension
[UPD] odex_takaful
This commit is contained in:
commit
f55681a17d
|
|
@ -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',
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
},
|
||||
}
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<odoo>
|
||||
|
||||
<!-- Global Extension Wizard Form View -->
|
||||
<record id="view_global_extension_wizard_form" model="ir.ui.view">
|
||||
<field name="name">global.extension.wizard.form</field>
|
||||
<field name="model">global.extension.wizard</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Global Extension" create="false" edit="false">
|
||||
|
||||
<notebook>
|
||||
<group string="Donation Lines">
|
||||
<field name="line_ids"
|
||||
options="{'no_create': True, 'no_create_edit': True}">
|
||||
<tree string="Donation Lines" selectable="1">
|
||||
<field name="sequence_no"/>
|
||||
<field name="sponsor_id"/>
|
||||
<field name="sponsor_phone"/>
|
||||
<field name="state"/>
|
||||
<field name="end_date"/>
|
||||
<field name="donation_amount"/>
|
||||
</tree>
|
||||
</field>
|
||||
|
||||
</group>
|
||||
</notebook>
|
||||
|
||||
<footer>
|
||||
<button name="action_confirm"
|
||||
string="Confirm"
|
||||
type="object"
|
||||
class="btn-primary"/>
|
||||
|
||||
<button string="Cancel"
|
||||
special="cancel"
|
||||
class="btn-secondary"/>
|
||||
</footer>
|
||||
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
|
|
@ -6,16 +6,17 @@
|
|||
<field name="name">global.extension.wizard.form</field>
|
||||
<field name="model">global.extension.wizard</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Global Extension">
|
||||
<form string="Global Extension" create="false" edit="false">
|
||||
<sheet>
|
||||
<group>
|
||||
<group>
|
||||
<field name="number_of_months"/>
|
||||
</group>
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="Donation Lines">
|
||||
<field name="line_ids" context="{'wizard_force_show_all': True, 'active_test': False}">
|
||||
<field name="line_ids" options="{'no_create': True, 'no_open': True, 'no_create_edit': True}"
|
||||
context="{'wizard_force_show_all': True, 'active_test': False}"
|
||||
domain="[
|
||||
('record_type', '=', 'sponsorship'),
|
||||
('sponsorship_duration', '=', 'temporary'),
|
||||
('state', 'in', ['active', 'replace'])
|
||||
]">
|
||||
<tree string="Donation Lines">
|
||||
<field name="sequence_no"/>
|
||||
<field name="sponsor_id"/>
|
||||
|
|
@ -50,6 +51,10 @@
|
|||
<field name="view_mode">form</field>
|
||||
<field name="view_id" ref="view_global_extension_wizard_form"/>
|
||||
<field name="target">new</field>
|
||||
<field name="context">{
|
||||
'wizard_force_show_all': True,
|
||||
'active_test': False
|
||||
}</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
Loading…
Reference in New Issue