[FIX] odex_takaful: create bill for family
This commit is contained in:
parent
f97078a400
commit
6ec9eb09a0
|
|
@ -71,7 +71,7 @@ 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)
|
||||
|
||||
sponsorship = self.env['takaful.sponsorship'].browse(self.env.context.get('sponsorship_id'))
|
||||
payments = super(AccountRegisterPayment, self)._create_payments()
|
||||
if sponsorship_lines:
|
||||
|
||||
|
|
@ -85,7 +85,10 @@ class AccountRegisterPayment(models.TransientModel):
|
|||
else:
|
||||
state = 'paid'
|
||||
elif line.record_type == 'donation':
|
||||
state = 'paid'
|
||||
if line.donation_mechanism == 'with_conditions':
|
||||
state = 'active'
|
||||
else:
|
||||
state = 'paid'
|
||||
line.write({'state': state})
|
||||
if self.env.context.get('schedule_line_payment'):
|
||||
schedule_line = self.env['sponsorship.scheduling.line'].browse(self.env.context.get('schedule_line_id'))
|
||||
|
|
@ -95,39 +98,37 @@ class AccountRegisterPayment(models.TransientModel):
|
|||
if len(all_schedule_lines_paid) == len(
|
||||
schedule_line.donation_detail_linked_id.sponsorship_scheduling_line_ids):
|
||||
schedule_line.donation_detail_linked_id.state = 'paid'
|
||||
vendor_bill_vals = []
|
||||
benefit_journal_id = self.env.company.kafala_benefit_journal_id.id
|
||||
benefit_ids = sponsorship_lines.benefit_id | sponsorship_lines.benefit_ids
|
||||
for benefit in benefit_ids:
|
||||
benefit_lines = sponsorship_lines.filtered(
|
||||
lambda l: l.benefit_id == benefit or benefit in l.benefit_ids)
|
||||
sponsorship_id = (benefit_lines.sponsorship_id + benefit_lines.sponsorship_mechanism_id)[0]
|
||||
if sponsorship.record_type == 'donation' and sponsorship.donation_mechanism == 'with_conditions':
|
||||
benefit_journal_id = self.env.company.kafala_benefit_journal_id.id
|
||||
donation_line = schedule_line.donation_detail_linked_id
|
||||
family_id = donation_line.family_id
|
||||
|
||||
bill_values = {
|
||||
'takaful_sponsorship_id': sponsorship_id.id,
|
||||
'takaful_sponsorship_id': sponsorship.id,
|
||||
'name': self.env['ir.sequence'].next_by_code('account.move.accrsp'),
|
||||
'move_type': 'in_invoice',
|
||||
'journal_id': benefit_journal_id,
|
||||
'date': fields.Date.today(),
|
||||
'partner_id': benefit.partner_id.id,
|
||||
'invoice_date': fields.Date.today(),
|
||||
'partner_id': family_id.partner_id.id,
|
||||
'invoice_line_ids': [(0, 0, {
|
||||
'product_id': line.product_id.id,
|
||||
'product_id': donation_line.product_id.id,
|
||||
'price_unit': schedule_line.amount,
|
||||
'quantity': 1,
|
||||
'name': _("Benefit Number %s %s") % (line.sequence_no, f"Cheque Number: {self.check_number} Cheque Due Date: {self.check_due_date}" if self.takaful_payment_method == 'check' else " "),
|
||||
'analytic_account_id': sponsorship_id.branch_custom_id.branch.analytic_account_id.id,
|
||||
}) for line in benefit_lines]
|
||||
'name': _("Benefit Number %s %s") % (donation_line.sequence_no, f"Cheque Number: {self.check_number} Cheque Due Date: {self.check_due_date}" if self.takaful_payment_method == 'check' else " "),
|
||||
'analytic_account_id': sponsorship.branch_custom_id.branch.analytic_account_id.id,
|
||||
})]
|
||||
}
|
||||
vendor_bill_vals.append(bill_values)
|
||||
|
||||
bill_id = self.env['account.move'].sudo().create(vendor_bill_vals)
|
||||
for line in bill_id.invoice_line_ids:
|
||||
line.account_id = line._get_computed_account()
|
||||
taxes = line._get_computed_taxes()
|
||||
if taxes and line.move_id.fiscal_position_id:
|
||||
taxes = line.move_id.fiscal_position_id.map_tax(taxes, partner=line.partner_id)
|
||||
line.tax_ids = taxes
|
||||
line.product_uom_id = line._get_computed_uom()
|
||||
bill_id.action_post()
|
||||
bill_id = self.env['account.move'].sudo().create(bill_values)
|
||||
for line in bill_id.invoice_line_ids:
|
||||
line.account_id = line._get_computed_account()
|
||||
taxes = line._get_computed_taxes()
|
||||
if taxes and line.move_id.fiscal_position_id:
|
||||
taxes = line.move_id.fiscal_position_id.map_tax(taxes, partner=line.partner_id)
|
||||
line.tax_ids = taxes
|
||||
line.product_uom_id = line._get_computed_uom()
|
||||
bill_id.action_post()
|
||||
for line in sponsorship_lines:
|
||||
if line.record_type != 'sponsorship':
|
||||
continue
|
||||
|
|
@ -149,7 +150,7 @@ class AccountRegisterPayment(models.TransientModel):
|
|||
if self.env.context.get('is_direct_debit'):
|
||||
payments.write({'direct_debit': True})
|
||||
payments.move_id.write({
|
||||
'takaful_sponsorship_id': self.env.context.get('sponsorship_id')
|
||||
'takaful_sponsorship_id': sponsorship.id
|
||||
})
|
||||
|
||||
if self.transaction_file_attachment:
|
||||
|
|
|
|||
Loading…
Reference in New Issue