Merge pull request #1168 from expsa/bugs

Update end_rental_contract.py
This commit is contained in:
zainab2097 2024-09-15 19:39:38 +03:00 committed by GitHub
commit 6eab013a64
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 24 additions and 25 deletions

View File

@ -58,11 +58,11 @@ class EndOfRent(models.Model):
'account_id': end.contract_id.debit_account_id.id, 'account_id': end.contract_id.debit_account_id.id,
})], })],
'line_ids': [(0, 0, {'account_id':end.contract_id.debit_account_id.id, 'debit': 0.0, 'credit': amount, # 'line_ids': [(0, 0, {'account_id':end.contract_id.debit_account_id.id, 'debit': 0.0, 'credit': amount,
'name': end.name + ' - ' + str(end.date), # 'name': end.name + ' - ' + str(end.date),
'quantity': 1}), # 'quantity': 1}),
(0, 0, # (0, 0,
{'account_id': end.contract_id.accrued_account_id.id , 'debit': amount, 'credit': 0.0, 'quantity': 1})] # {'account_id': end.contract_id.accrued_account_id.id , 'debit': amount, 'credit': 0.0, 'quantity': 1})]
} }
return invoice_vals return invoice_vals
@ -84,11 +84,11 @@ class EndOfRent(models.Model):
})], })],
'line_ids': [(0, 0, {'account_id':end.contract_id.revenue_account_id.id, 'debit': 0.0, 'credit': amount, # 'line_ids': [(0, 0, {'account_id':end.contract_id.revenue_account_id.id, 'debit': 0.0, 'credit': amount,
'name': end.name + ' - ' + str(end.date), # 'name': end.name + ' - ' + str(end.date),
'quantity': 1}), # 'quantity': 1}),
(0, 0, # (0, 0,
{'account_id': end.contract_id.debit_account_id.id, 'debit': amount, 'credit': 0.0, 'quantity': 1})] # {'account_id': end.contract_id.debit_account_id.id, 'debit': amount, 'credit': 0.0, 'quantity': 1})]
} }
return invoice_vals return invoice_vals
@ -109,10 +109,10 @@ class EndOfRent(models.Model):
if (rec.remain_amount > 0.0) or (rec.remain_amount > 0.0 and rec.maintenance): if (rec.remain_amount > 0.0) or (rec.remain_amount > 0.0 and rec.maintenance):
invoice_vals = rec._prepare_out_refund_invoice_values(rec, rec.remain_amount) invoice_vals = rec._prepare_out_refund_invoice_values(rec, rec.remain_amount)
invoice = self.env['account.move'].sudo().create(invoice_vals).with_user(self.env.uid) invoice = self.env['account.move'].sudo().create(invoice_vals).with_user(self.env.uid)
if len(invoice.invoice_line_ids) > 1: # if len(invoice.invoice_line_ids) > 1:
line_id = invoice.invoice_line_ids[1].id # line_id = invoice.invoice_line_ids[1].id
commands = [(2, line_id, 0)] # commands = [(2, line_id, 0)]
invoice.write({'invoice_line_ids': commands}) # invoice.write({'invoice_line_ids': commands})
rec.invoice_id = invoice.id rec.invoice_id = invoice.id
rec.write({'state': 'done'}) rec.write({'state': 'done'})
elif (rec.insurance_amount == 0.0 or rec.remain_amount==0.0) and not rec.maintenance: elif (rec.insurance_amount == 0.0 or rec.remain_amount==0.0) and not rec.maintenance:
@ -120,20 +120,20 @@ class EndOfRent(models.Model):
elif (rec.insurance_amount == 0.0 or rec.remain_amount==0.0) and rec.maintenance: elif (rec.insurance_amount == 0.0 or rec.remain_amount==0.0) and rec.maintenance:
invoice_vals = rec._prepare_invoice_values(rec, abs(rec.remain_amount)) invoice_vals = rec._prepare_invoice_values(rec, abs(rec.remain_amount))
invoice = self.env['account.move'].sudo().create(invoice_vals).with_user(self.env.uid) invoice = self.env['account.move'].sudo().create(invoice_vals).with_user(self.env.uid)
if len(invoice.invoice_line_ids) > 1: # if len(invoice.invoice_line_ids) > 1:
line_id = invoice.invoice_line_ids[1].id # line_id = invoice.invoice_line_ids[1].id
commands = [(2, line_id, 0)] # commands = [(2, line_id, 0)]
invoice.write({'invoice_line_ids': commands}) # invoice.write({'invoice_line_ids': commands})
rec.invoice_id = invoice.id rec.invoice_id = invoice.id
rec.write({'state': 'done'}) rec.write({'state': 'done'})
elif (rec.remain_amount < 0.0) or (rec.remain_amount<0.0 and rec.maintenance): elif (rec.remain_amount < 0.0) or (rec.remain_amount<0.0 and rec.maintenance):
invoice_vals = rec._prepare_invoice_values(rec, abs(rec.remain_amount)) invoice_vals = rec._prepare_invoice_values(rec, abs(rec.remain_amount))
invoice = self.env['account.move'].sudo().create(invoice_vals).with_user(self.env.uid) invoice = self.env['account.move'].sudo().create(invoice_vals).with_user(self.env.uid)
if len(invoice.invoice_line_ids) > 1: # if len(invoice.invoice_line_ids) > 1:
line_id = invoice.invoice_line_ids[1].id # line_id = invoice.invoice_line_ids[1].id
commands = [(2, line_id, 0)] # commands = [(2, line_id, 0)]
invoice.write({'invoice_line_ids': commands}) # invoice.write({'invoice_line_ids': commands})
rec.invoice_id = invoice.id rec.invoice_id = invoice.id
rec.write({'state': 'done'}) rec.write({'state': 'done'})
if rec.contract_state == 'before': if rec.contract_state == 'before':
@ -281,8 +281,8 @@ class PropertyManagementMaintenance(models.Model):
_('Hand Cost') + ' ' + maintenance.name +' '+self.property_id.name+' ' +unit_name+' ' + maintenance.vendor_id.name, _('Hand Cost') + ' ' + maintenance.name +' '+self.property_id.name+' ' +unit_name+' ' + maintenance.vendor_id.name,
'quantity': 1.0, 'quantity': 1.0,
'price_unit': self.hand_cost, 'price_unit': self.hand_cost,
'account_id': payment.contract_id.revenue_account_id.id, # 'account_id': maintenance.contract_id.revenue_account_id.id,
'analytic_account_id': payment.property_id.account_analy_id.id if payment.property_id.account_analy_id else False, 'analytic_account_id': maintenance.property_id.account_analy_id.id if payment.property_id.account_analy_id else False,
'tax_ids': [(6, 0, [payment.tax_id.id])] if payment.tax_id else False, # Assigning tax_id to tax_ids 'tax_ids': [(6, 0, [payment.tax_id.id])] if payment.tax_id else False, # Assigning tax_id to tax_ids
})) }))
invoice_vals = { invoice_vals = {
@ -351,6 +351,5 @@ class PropertyManagementMaintenance(models.Model):
@api.depends('maintenance_cost', 'hand_cost', 'end_line_ids','end_line_ids.cost', 'end_line_ids.total') @api.depends('maintenance_cost', 'hand_cost', 'end_line_ids','end_line_ids.cost', 'end_line_ids.total')
def _get_total_amount(self): def _get_total_amount(self):
for rec in self: for rec in self:
# تأكد من إعادة حساب maintenance_cost باستخدام المجموع الصحيح لجميع الأسطر
rec.maintenance_cost = sum(line.total for line in rec.end_line_ids) rec.maintenance_cost = sum(line.total for line in rec.end_line_ids)
rec.total_amount = rec.maintenance_cost + rec.hand_cost rec.total_amount = rec.maintenance_cost + rec.hand_cost