Merge pull request #6292 from expsa/samir_aladawi_global_extension_customizations

Samir aladawi global extension customizations
This commit is contained in:
SamirLADOUI-sa 2026-01-21 11:38:48 +01:00 committed by GitHub
commit 7a304ebeed
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 52 additions and 21 deletions

View File

@ -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'
})

View File

@ -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}")

View File

@ -30,7 +30,7 @@
<form create="0" edit="0" delete="0">
<header>
<field name="state" widget="statusbar" statusbar_visible="active,paid,cancel" />
<button string="Pay" name="action_pay_invoice" type="object" class="oe_highlight" states="active"/>
<button string="Pay" name="action_pay_invoice" type="object" class="oe_highlight" attrs="{'invisible': ['|', ('state', '!=', 'active'), ('new_direct_debit', '=', True)]}"/>
<button string="Cancel" name="action_cancel_invoice" type="object" states="active"/>
<button
name="action_print_extension_receipt"
@ -38,7 +38,7 @@
string="Print Extension Receipt"
class="btn-primary"
icon="fa-print"
attrs="{'invisible': [('state', '!=', 'paid')]}"
attrs="{'invisible': [('state', 'not in', ['wait_pay', 'paid'])]}"
groups="odex_takaful.group_print_receipt"
/>
</header>

View File

@ -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

View File

@ -2,6 +2,19 @@
<odoo>
<data>
<record id="donations_conditional_tree_odex_takaful" model="ir.ui.view">
<field name="name">donations.details.lines.view.form.inherit</field>
<field name="model">donations.details.lines</field>
<field name="inherit_id" ref="odex_takaful.donations_conditional_tree"/>
<field name="mode">primary</field>
<field name="active">False</field>
<field name="arch" type="xml">
<xpath expr="//field[@name='donation_amount']" position="replace" />
</field>
</record>
<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>
@ -11,7 +24,11 @@
<notebook>
<page string="Donation Lines">
<field name="line_ids" options="{'no_create': True, 'no_open': True, 'no_create_edit': True}"
context="{'wizard_force_show_all': True, 'active_test': False}"
context="{
'wizard_force_show_all': True,
'active_test': False,
'tree_view_ref': 'odex_takaful.donations_conditional_tree_odex_takaful'
}"
domain="[
('record_type', '=', 'sponsorship'),
('sponsorship_duration', '=', 'temporary'),
@ -22,7 +39,6 @@
<field name="sponsor_id"/>
<field name="family_id"/>
<field name="product_template_id"/>
<field name="donation_amount" widget="monetary"/>
<field name="create_date"/>
<field name="branch_custom_id"/>
</tree>