FIX replacement process for sponsorship

This commit is contained in:
Nossibaelhadi 2025-11-06 12:02:17 +03:00
parent 9f509964f0
commit 410cbabe2f
4 changed files with 78 additions and 23 deletions

View File

@ -7321,4 +7321,36 @@ msgid "Kafala Information"
msgstr "بيانات الكفالة"
#. module: odex_takaful
#: model:ir.model.fields,field_description:odex_takaful.field_donation_replacement_log__new_benefit
#: model:ir.model.fields,field_description:odex_takaful.field_replacement_wiz__new_members_id
msgid "New Benefit"
msgstr "المستفيد الجديد"
#. module: odex_takaful
#: model:ir.model.fields,field_description:odex_takaful.field_replacement_wiz__new_family_id
msgid "New Family"
msgstr "المستفيد الجديد عائلة"
#. module: odex_takaful
#: model:ir.model.fields,field_description:odex_takaful.field_donation_replacement_log__old_benefit
msgid "old Benefit"
msgstr "المستفيد القديم"
#. module: odex_takaful
#: model:ir.model.fields,field_description:odex_takaful.field_replacement_wiz__old_family_id
msgid "Old Family"
msgstr "المستفيد القديم عائلة"
#. module: odex_takaful
#: model:ir.model.fields,field_description:odex_takaful.field_donation_replacement_log__replacement_ref
msgid "replacement Reference"
msgstr "المرجع"
#. module: odex_takaful
#: model:ir.model.fields,field_description:odex_takaful.field_donation_replacement_log__replacement_date
msgid "Replacement Date"
msgstr "تاريخ الاستبدال"

View File

@ -825,7 +825,7 @@ class DonationsDetailsLines(models.Model):
wizard = self.env['replacement.wiz'].create({
'old_family_id': self.family_id.id,
'old_members_id': self.benefit_id.id,
'old_members_id': self.benefit_ids[0].id,
'record_type': self.record_type,
'sponsorship_id': self.id,
})
@ -1008,7 +1008,6 @@ class DonationsDetailsLines(models.Model):
'domain': [('donation_detail_id', '=', self.id)],
'context': {
'default_donation_detail_id': self.id,
'create': False,
},
}

View File

@ -720,6 +720,7 @@ class TakafulSponsorship(models.Model):
'date': fields.Date.today(),
'invoice_date': fields.Date.today(),
'partner_id': family.partner_id.id,
'invoice_origin': sponsorship.code,
'invoice_line_ids': [(0, 0, {
'product_id': line.product_id.id,
'price_unit': line.donation_amount,

View File

@ -212,28 +212,51 @@ class ReplacementWiz(models.TransientModel):
rec.compute_domain_ids()
def replacement_benefit_action(self):
if self.sponsorship_id:
donation_line = self.sponsorship_id
old_benefit = new_benefit = ''
if self.record_type == "donation":
donation_line.sudo().write({'family_id': self.new_family_id.id})
new_benefit = self.new_family_id.name
old_benefit = self.old_family_id.name
if self.record_type == "sponsorship":
donation_line.write({
'benefit_id': self.new_members_id.id
})
new_benefit = self.new_members_id.name
old_benefit = self.old_members_id.name
replacement = self.env['donation.replacement.log'].create({
'user_id': self.env.user.id,
'donation_detail_id': donation_line.id,
'old_benefit': old_benefit,
'new_benefit': new_benefit,
'record_type': donation_line.record_type,
'replacement_reason_id': self.replacement_reason_id.id,
})
self.ensure_one()
if not self.sponsorship_id:
raise UserError(_("Please determine sponsorship."))
donation_line = self.sponsorship_id
old_benefit = new_benefit = False
try:
if self.record_type == "donation":
donation_line.sudo().write({
'family_id': self.new_family_id.id
})
old_benefit = self.old_family_id.name
new_benefit = self.new_family_id.name
elif self.record_type == "sponsorship":
self.old_members_id.benefit_ids.sudo().write({
'sponsor_related_id': False,
'kafala_status': 'have_not_kafala'
})
donation_line.sudo().write({
'benefit_ids': [(4, self.new_members_id.id)]
})
old_benefit = self.old_members_id.name
new_benefit = self.new_members_id.name
else:
raise UserError(_("type of record not determine."))
self.env['donation.replacement.log'].create({
'user_id': self.env.user.id,
'donation_detail_id': donation_line.id,
'old_benefit': old_benefit or '',
'new_benefit': new_benefit or '',
'record_type': donation_line.record_type,
'replacement_reason_id': self.replacement_reason_id.id,
})
except Exception as e:
raise UserError(_("Error in replacement:\n%s") % str(e))
# def replacement_action(self):
# active_id = self.env.context.get('active_id')