diff --git a/gn_financial_report/README.md b/gn_financial_report/README.md index d949799..2ee2c64 100644 --- a/gn_financial_report/README.md +++ b/gn_financial_report/README.md @@ -26,6 +26,7 @@ It is based on modules: ## ChangeLog +- v16.0.0.0.9: no cumulative initial balance in general ledger - v16.0.0.0.8: computing for init and end balance for unaffected in general ledger - v16.0.0.0.7: unaffected earnings movements in general ledger - v16.0.0.0.6: unaffected earnings movements in journal ledger diff --git a/gn_financial_report/__manifest__.py b/gn_financial_report/__manifest__.py index c5339a8..ffd15d7 100644 --- a/gn_financial_report/__manifest__.py +++ b/gn_financial_report/__manifest__.py @@ -1,6 +1,6 @@ { 'name': "Gn Financial Report", - 'version': '16.0.0.0.8', + 'version': '16.0.0.0.9', 'author': 'Garage Numérique', 'category': 'Accounting', 'description': """ diff --git a/gn_financial_report/report/general_ledger.py b/gn_financial_report/report/general_ledger.py index 9d7652d..91d19fe 100644 --- a/gn_financial_report/report/general_ledger.py +++ b/gn_financial_report/report/general_ledger.py @@ -87,16 +87,17 @@ class GnGeneralLedgerReport(models.AbstractModel): account[grouped_by] = False del account["list_grouped"] general_ledger = sorted(general_ledger, key=lambda k: k["code"]) - - unaffected_loss_account = self.env['account.account'].search([('code', '=', '119000')]) - if unaffected_loss_account and len(unaffected_loss_account) == 1: - unaffected_loss_id = unaffected_loss_account[0].id - - unaffected_profit_account = self.env['account.account'].search([('code', '=', '110000')]) - if unaffected_profit_account and len(unaffected_profit_account) == 1: - unaffected_profit_id = unaffected_profit_account[0].id + # Unaffected earnings treatement if general_ledger[-1]['code'] == '999999': + unaffected_loss_account = self.env['account.account'].search([('code', '=', '119000')]) + if unaffected_loss_account and len(unaffected_loss_account) == 1: + unaffected_loss_id = unaffected_loss_account[0].id + + unaffected_profit_account = self.env['account.account'].search([('code', '=', '110000')]) + if unaffected_profit_account and len(unaffected_profit_account) == 1: + unaffected_profit_id = unaffected_profit_account[0].id + unaffected_id = unaffected_loss_id unaffected_account = unaffected_loss_account[0] if general_ledger[-1]['fin_bal']['balance'] < 0: @@ -113,8 +114,33 @@ class GnGeneralLedgerReport(models.AbstractModel): for move_line in general_ledger[-1]['move_lines']: move_line['account_id'] = unaffected_id + general_ledger = sorted(general_ledger, key=lambda k: k["code"]) + # No cumul in initial balance + for elem in general_ledger: + if elem['init_bal']['balance'] < 0: + elem['init_bal']['debit'] = float(0.0) + elem['init_bal']['credit'] = elem['init_bal']['balance'] * -1 + elif elem['init_bal']['balance'] > 0: + elem['init_bal']['credit'] = float(0.0) + elem['init_bal']['debit'] = elem['init_bal']['balance'] + else: + elem['init_bal']['debit'] = float(0.0) + elem['init_bal']['credit'] = float(0.0) + if elem.get('list_grouped'): + for partner in elem['list_grouped']: + if partner['init_bal']['balance'] < 0: + partner['init_bal']['debit'] = float(0.0) + partner['init_bal']['credit'] = partner['init_bal']['balance'] * -1 + elif partner['init_bal']['balance'] > 0: + partner['init_bal']['credit'] = float(0.0) + partner['init_bal']['debit'] = partner['init_bal']['balance'] + else: + partner['init_bal']['debit'] = float(0.0) + partner['init_bal']['credit'] = float(0.0) + + return { "doc_ids": [wizard_id], "doc_model": "general.ledger.report.wizard",