From 03a50e9d658339469e4f3c2289acd263835ffb37 Mon Sep 17 00:00:00 2001 From: Cybrosys Technologies Date: Tue, 8 Oct 2024 17:38:08 +0530 Subject: [PATCH] Oct 08: [FIX] Bug Fixed 'account_journal_discount' --- account_journal_discount/__manifest__.py | 2 +- account_journal_discount/doc/RELEASE_NOTES.md | 6 ++ .../models/account_move.py | 94 ++++++++++--------- 3 files changed, 55 insertions(+), 47 deletions(-) diff --git a/account_journal_discount/__manifest__.py b/account_journal_discount/__manifest__.py index 70127fb15..51840bd9d 100644 --- a/account_journal_discount/__manifest__.py +++ b/account_journal_discount/__manifest__.py @@ -21,7 +21,7 @@ ############################################################################# { 'name': 'Journal Discount on Invoices And Bills', - 'version': '16.0.1.0.1', + 'version': '16.0.1.0.2', 'category': 'Accounting', 'summary': """Create discount journal items for discounts in invoices and bills""", diff --git a/account_journal_discount/doc/RELEASE_NOTES.md b/account_journal_discount/doc/RELEASE_NOTES.md index 0daae642a..62eb200da 100644 --- a/account_journal_discount/doc/RELEASE_NOTES.md +++ b/account_journal_discount/doc/RELEASE_NOTES.md @@ -11,3 +11,9 @@ #### UPDT - Fixed the issue in calculation of debit and credit value of discounted journal + +#### 04.10.2024 +#### Version 16.0.1.0.2 +#### UPDT + +- Fixed the looping issue in action_post method diff --git a/account_journal_discount/models/account_move.py b/account_journal_discount/models/account_move.py index 44156dc2b..023802b8e 100644 --- a/account_journal_discount/models/account_move.py +++ b/account_journal_discount/models/account_move.py @@ -33,63 +33,65 @@ class AccountMove(models.Model): """Redefining the function to create new journal entries whenever journal discounts are provided. """ - if self.move_type == 'out_invoice': - for line in self.invoice_line_ids: - if line.discount > 0 and \ - line.product_id.categ_id.customer_account_discount_id: - debit_credit_value = abs( - float_round((line.price_subtotal - (line.quantity * line.price_unit)), - precision_digits= - self.currency_id.decimal_places)) - self.env['account.move.line'].create({ - 'move_id': self.id, - 'currency_id': self.currency_id.id, - 'display_type': 'tax', - 'name': line.name, - 'account_id': line.product_id.categ_id.customer_account_discount_id.id, - 'journal_id': self.journal_id, - 'credit': 0, - 'debit': debit_credit_value, - }) - self.env['account.move.line'].create({ - 'move_id': self.id, - 'display_type': 'tax', - 'currency_id': self.currency_id.id, - 'name': line.name, - 'account_id': line.account_id.id, - 'journal_id': self.journal_id, - 'credit': debit_credit_value, - 'debit': 0, - }) - elif self.move_type == 'in_invoice': - for line in self.invoice_line_ids: - if line.discount > 0 and \ - line.product_id.categ_id.vendor_account_discount_id: - debit_credit_value = abs( - float_round((line.price_subtotal - (line.quantity * line.price_unit)), - precision_digits= - self.currency_id.decimal_places)) - self.env['account.move.line'].with_context( - check_move_validity=False).create({ - 'move_id': self.id, + for move in self: + if move.move_type == 'out_invoice': + for line in move.invoice_line_ids: + if line.discount > 0 and \ + line.product_id.categ_id.customer_account_discount_id: + debit_credit_value = abs( + float_round((line.price_subtotal - (line.quantity * line.price_unit)), + precision_digits= + move.currency_id.decimal_places)) + move.env['account.move.line'].create({ + 'move_id': move.id, + 'currency_id': move.currency_id.id, + 'display_type': 'tax', + 'name': line.name, + 'account_id': line.product_id.categ_id.customer_account_discount_id.id, + 'journal_id': move.journal_id.id, + 'credit': 0, + 'debit': debit_credit_value, + }) + move.env['account.move.line'].create({ + 'move_id': move.id, + 'display_type': 'tax', + 'currency_id': move.currency_id.id, + 'name': line.name, + 'account_id': line.account_id.id, + 'journal_id': move.journal_id.id, + 'credit': debit_credit_value, + 'debit': 0, + }) + elif move.move_type == 'in_invoice': + for line in move.invoice_line_ids: + if line.discount > 0 and \ + line.product_id.categ_id.vendor_account_discount_id: + debit_credit_value = abs( + float_round((line.price_subtotal - (line.quantity * line.price_unit)), + precision_digits= + move.currency_id.decimal_places)) + move.env['account.move.line'].with_context( + check_move_validity=False).create({ + 'move_id': move.id, 'display_type': 'tax', 'name': line.name, 'account_id': line.product_id.categ_id.vendor_account_discount_id.id, - 'journal_id': self.journal_id, - 'currency_id': self.currency_id.id, + 'journal_id': move.journal_id.id, + 'currency_id': move.currency_id.id, 'credit': 0, 'debit': debit_credit_value, }) - self.env['account.move.line'].with_context( - check_move_validity=False).create({ - 'move_id': self.id, + move.env['account.move.line'].with_context( + check_move_validity=False).create({ + 'move_id': move.id, 'display_type': 'tax', 'name': line.name, 'account_id': line.account_id.id, - 'journal_id': self.journal_id, - 'currency_id': self.currency_id.id, + 'journal_id': move.journal_id.id, + 'currency_id': move.currency_id.id, 'credit': debit_credit_value, 'debit': 0, }) + res = super(AccountMove, self).action_post() return res