[UPD] odex_takaful
This commit is contained in:
parent
f97b8b14a4
commit
35c6bf2c75
|
|
@ -84,10 +84,9 @@
|
||||||
'views/product_views.xml',
|
'views/product_views.xml',
|
||||||
'views/payment_machine_views.xml',
|
'views/payment_machine_views.xml',
|
||||||
'views/account_payment_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/takaful_menus_actions.xml',
|
||||||
'views/benefit_category_views.xml',
|
'views/benefit_category_views.xml',
|
||||||
'wizards/global_extension_wizard.xml',
|
|
||||||
'data/message_template_data.xml',
|
'data/message_template_data.xml',
|
||||||
|
|
||||||
'wizards/transfer_deduction_wizard_views.xml',
|
'wizards/transfer_deduction_wizard_views.xml',
|
||||||
|
|
|
||||||
|
|
@ -1441,3 +1441,8 @@ class DonationsDetailsLines(models.Model):
|
||||||
if self.env.context.get('wizard_force_show_all'):
|
if self.env.context.get('wizard_force_show_all'):
|
||||||
self = self.sudo()
|
self = self.sudo()
|
||||||
return super(DonationsDetailsLines, self).search(args, offset, limit, order, count)
|
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')
|
sponsorship_id = self.env.context.get('default_takaful_sponsorship_id') or self.env.context.get('active_id')
|
||||||
if sponsorship_id:
|
if sponsorship_id:
|
||||||
sponsorship = self.env['takaful.sponsorship'].browse(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:
|
if sponsorship.exists() and sponsorship.branch_custom_id:
|
||||||
return self.env['payment.machine'].search([
|
return self.env['payment.machine'].search([
|
||||||
('branch_custom_id', '=', sponsorship.branch_custom_id.id),
|
('branch_custom_id', '=', sponsorship.branch_custom_id.id),
|
||||||
|
|
@ -193,8 +195,12 @@ class AccountRegisterPayment(models.TransientModel):
|
||||||
|
|
||||||
def _create_payments(self):
|
def _create_payments(self):
|
||||||
sponsorship_line_ids = self.env.context.get('sponsorship_line_ids')
|
sponsorship_line_ids = self.env.context.get('sponsorship_line_ids')
|
||||||
sponsorship_lines = self.env['donations.details.lines'].browse(sponsorship_line_ids).filtered(
|
if self.env.context.get('wizard_force_show_all'):
|
||||||
lambda r: r.display_type == False)
|
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'))
|
sponsorship = self.env['takaful.sponsorship'].browse(self.env.context.get('sponsorship_id'))
|
||||||
payments = super(AccountRegisterPayment, self)._create_payments()
|
payments = super(AccountRegisterPayment, self)._create_payments()
|
||||||
if sponsorship_lines:
|
if sponsorship_lines:
|
||||||
|
|
|
||||||
|
|
@ -68,6 +68,8 @@ class DonationExtensionWizard(models.TransientModel):
|
||||||
def _compute_line_ids(self):
|
def _compute_line_ids(self):
|
||||||
extension_line_ids = [(5,)]
|
extension_line_ids = [(5,)]
|
||||||
donation_detail_ids = self.env['donations.details.lines'].browse(self.env.context.get('donation_detail_ids'))
|
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:
|
for line in donation_detail_ids:
|
||||||
if line.record_type == 'donation' or line.sponsorship_duration == 'permanent':
|
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)
|
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]
|
donation_line_ids += result[1]
|
||||||
|
|
||||||
if invoice_ids:
|
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)
|
# 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
|
sponsorship_id = sponsorship_ids[0] if sponsorship_ids else False
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|
@ -129,13 +134,13 @@ class DonationExtensionWizard(models.TransientModel):
|
||||||
'default_amount': amount,
|
'default_amount': amount,
|
||||||
'sponsorship_payment_skip_compute_amount': True,
|
'sponsorship_payment_skip_compute_amount': True,
|
||||||
'dont_redirect_to_payments': 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,
|
'sponsorship_payment': True,
|
||||||
'default_sponsorship_payment': True,
|
'default_sponsorship_payment': True,
|
||||||
'wiz_id': self.id,
|
'wiz_id': self.id,
|
||||||
'sponsorship_id': sponsorship_id,
|
'sponsorship_id': sponsorship_id,
|
||||||
'default_takaful_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',
|
'target': 'new',
|
||||||
'type': 'ir.actions.act_window',
|
'type': 'ir.actions.act_window',
|
||||||
|
|
@ -344,10 +349,15 @@ class DonationExtensionWizardLine(models.TransientModel):
|
||||||
|
|
||||||
if not self.donation_line_id:
|
if not self.donation_line_id:
|
||||||
raise ValidationError(_("No donation detail line selected."))
|
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:
|
if not self.extension_invoice_id:
|
||||||
# Update the donation detail line
|
# Update the donation detail line
|
||||||
self.old_end_date = self.current_end_date
|
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)
|
new_end_date = self.current_end_date + relativedelta(months=self.months)
|
||||||
old_end_date = self.current_end_date
|
old_end_date = self.current_end_date
|
||||||
|
|
@ -355,7 +365,7 @@ class DonationExtensionWizardLine(models.TransientModel):
|
||||||
# Update end date
|
# Update end date
|
||||||
# donation_line_new_vals = {
|
# donation_line_new_vals = {
|
||||||
# 'end_date': new_end_date,
|
# '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:
|
# if self.direct_debit:
|
||||||
# donation_line_new_vals.update({
|
# donation_line_new_vals.update({
|
||||||
|
|
@ -365,9 +375,9 @@ class DonationExtensionWizardLine(models.TransientModel):
|
||||||
# 'debit_payment_file_attachment': self.debit_payment_file_attachment,
|
# 'debit_payment_file_attachment': self.debit_payment_file_attachment,
|
||||||
# 'debit_payment_attachment_file_name': self.debit_payment_attachment_file_name,
|
# '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({
|
# benefit_ids.write({
|
||||||
# 'sponsorship_end_date': new_end_date,
|
# 'sponsorship_end_date': new_end_date,
|
||||||
# 'kafala_status': 'have_kafala',
|
# 'kafala_status': 'have_kafala',
|
||||||
|
|
@ -383,14 +393,14 @@ class DonationExtensionWizardLine(models.TransientModel):
|
||||||
|
|
||||||
# Create extension history record
|
# Create extension history record
|
||||||
self.env['donation.extension.history'].create({
|
self.env['donation.extension.history'].create({
|
||||||
'donation_detail_id': self.donation_line_id.id,
|
'donation_detail_id': donation_line_id.id,
|
||||||
'sponsorship_id': self.donation_line_id.sponsorship_id.id or self.donation_line_id.sponsorship_mechanism_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_amount': self.total_donation_amount,
|
||||||
'extension_months': self.months,
|
'extension_months': self.months,
|
||||||
'old_end_date': old_end_date,
|
'old_end_date': old_end_date,
|
||||||
'new_end_date': new_end_date,
|
'new_end_date': new_end_date,
|
||||||
'invoice_id': invoice_id.id if invoice_id else False,
|
'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,
|
'new_direct_debit': self.direct_debit,
|
||||||
|
|
||||||
'direct_debit_partner_bank_id': self.direct_debit_partner_bank_id.id,
|
'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:
|
if not self.direct_debit:
|
||||||
return self.extension_invoice_id, self.donation_line_id
|
return self.extension_invoice_id, donation_line_id
|
||||||
|
|
||||||
|
|
||||||
return False
|
return False
|
||||||
|
|
@ -446,6 +456,8 @@ class DonationExtensionWizardLine(models.TransientModel):
|
||||||
self.ensure_one()
|
self.ensure_one()
|
||||||
|
|
||||||
donation_line = self.donation_line_id
|
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
|
sponsorship = donation_line.sponsorship_id or donation_line.sponsorship_mechanism_id
|
||||||
|
|
||||||
# Get journal from settings
|
# Get journal from settings
|
||||||
|
|
|
||||||
|
|
@ -6,41 +6,28 @@ class GlobalExtensionWizard(models.TransientModel):
|
||||||
_name = 'global.extension.wizard'
|
_name = 'global.extension.wizard'
|
||||||
_description = '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(
|
line_ids = fields.Many2many(
|
||||||
comodel_name='donations.details.lines',
|
comodel_name='donations.details.lines',
|
||||||
string='Donation Lines',
|
string='Donation Lines'
|
||||||
domain=[]
|
|
||||||
)
|
)
|
||||||
|
|
||||||
@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):
|
def action_confirm(self):
|
||||||
|
wizard_sudo = self.sudo()
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'type': 'ir.actions.act_window',
|
'type': 'ir.actions.act_window',
|
||||||
'name': _('Extend Donation'),
|
'name': ('Extend Donation'),
|
||||||
'res_model': 'donation.extension.wizard',
|
'res_model': 'donation.extension.wizard',
|
||||||
'view_mode': 'form',
|
'view_mode': 'form',
|
||||||
'target': 'new',
|
'target': 'new',
|
||||||
'context': {
|
'context': {
|
||||||
'donation_detail_ids': self.line_ids.ids,
|
'donation_detail_ids': wizard_sudo.line_ids.ids,
|
||||||
'default_months': self.number_of_months,
|
'no_quick_close': True,
|
||||||
'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="name">global.extension.wizard.form</field>
|
||||||
<field name="model">global.extension.wizard</field>
|
<field name="model">global.extension.wizard</field>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<form string="Global Extension">
|
<form string="Global Extension" create="false" edit="false">
|
||||||
<sheet>
|
<sheet>
|
||||||
<group>
|
|
||||||
<group>
|
|
||||||
<field name="number_of_months"/>
|
|
||||||
</group>
|
|
||||||
</group>
|
|
||||||
<notebook>
|
<notebook>
|
||||||
<page string="Donation Lines">
|
<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">
|
<tree string="Donation Lines">
|
||||||
<field name="sequence_no"/>
|
<field name="sequence_no"/>
|
||||||
<field name="sponsor_id"/>
|
<field name="sponsor_id"/>
|
||||||
|
|
@ -50,6 +51,10 @@
|
||||||
<field name="view_mode">form</field>
|
<field name="view_mode">form</field>
|
||||||
<field name="view_id" ref="view_global_extension_wizard_form"/>
|
<field name="view_id" ref="view_global_extension_wizard_form"/>
|
||||||
<field name="target">new</field>
|
<field name="target">new</field>
|
||||||
|
<field name="context">{
|
||||||
|
'wizard_force_show_all': True,
|
||||||
|
'active_test': False
|
||||||
|
}</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
</data>
|
</data>
|
||||||
Loading…
Reference in New Issue