diff --git a/account_loan/models/account_loan_line.py b/account_loan/models/account_loan_line.py index dfd719af3..6946a52b5 100644 --- a/account_loan/models/account_loan_line.py +++ b/account_loan/models/account_loan_line.py @@ -263,6 +263,7 @@ class AccountLoanLine(models.Model): ) def _move_vals(self, journal=False, account=False): + self.ensure_one() return { "loan_line_id": self.id, "loan_id": self.loan_id.id, @@ -274,8 +275,8 @@ class AccountLoanLine(models.Model): ], } - def _move_line_vals(self, account=False): - vals = [] + def _add_basic_values(self, vals, account): + self.ensure_one() partner = self.loan_id.partner_id.with_company(self.loan_id.company_id) vals.append( { @@ -286,14 +287,21 @@ class AccountLoanLine(models.Model): "debit": 0, } ) - if self.interests_amount: - vals.append( - { - "account_id": self.loan_id.interest_expenses_account_id.id, - "credit": 0, - "debit": self.interests_amount, - } - ) + return vals + + def _add_interests_values(self, vals): + self.ensure_one() + vals.append( + { + "account_id": self.loan_id.interest_expenses_account_id.id, + "credit": 0, + "debit": self.interests_amount, + } + ) + return vals + + def _add_short_term_account_values(self, vals): + self.ensure_one() vals.append( { "account_id": self.loan_id.short_term_loan_account_id.id, @@ -301,6 +309,10 @@ class AccountLoanLine(models.Model): "debit": self.payment_amount - self.interests_amount, } ) + return vals + + def _add_long_term_account_values(self, vals): + self.ensure_one() if self.long_term_loan_account_id and self.long_term_principal_amount: vals.append( { @@ -318,7 +330,20 @@ class AccountLoanLine(models.Model): ) return vals + def _move_line_vals(self, account=False): + self.ensure_one() + vals = [] + vals = self._add_basic_values(vals, account) + if self.interests_amount: + vals = self._add_interests_values(vals) + + vals = self._add_short_term_account_values(vals) + vals = self._add_long_term_account_values(vals) + + return vals + def _invoice_vals(self): + self.ensure_one() return { "loan_line_id": self.id, "loan_id": self.loan_id.id, @@ -332,8 +357,7 @@ class AccountLoanLine(models.Model): ], } - def _invoice_line_vals(self): - vals = list() + def _add_basic_values_invoice_line(self, vals): vals.append( { "product_id": self.loan_id.product_id.id, @@ -343,6 +367,9 @@ class AccountLoanLine(models.Model): "account_id": self.loan_id.short_term_loan_account_id.id, } ) + return vals + + def _add_interests_values_invoice_line(self, vals): vals.append( { "product_id": self.loan_id.interests_product_id.id, @@ -354,6 +381,12 @@ class AccountLoanLine(models.Model): ) return vals + def _invoice_line_vals(self): + vals = list() + vals = self._add_basic_values_invoice_line(vals) + vals = self._add_interests_values_invoice_line(vals) + return vals + def _generate_move(self, journal=False, account=False): """ Computes and post the moves of loans