[IMP] account_financial_report: Add tax grouping in general ledger
TT38721pull/915/head
parent
ec5358ade6
commit
551042cb1f
|
@ -6,6 +6,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 13.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-09-20 07:00+0000\n"
|
||||
"PO-Revision-Date: 2022-09-20 07:00+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
|
@ -927,6 +929,11 @@ msgstr ""
|
|||
msgid "Group entries by"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_financial_report
|
||||
#: model:ir.model.fields,field_description:account_financial_report.field_general_ledger_report_wizard__grouped_by
|
||||
msgid "Grouped by"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_financial_report
|
||||
#: code:addons/account_financial_report/report/general_ledger_xlsx.py:0
|
||||
#: code:addons/account_financial_report/report/open_items_xlsx.py:0
|
||||
|
@ -1203,6 +1210,11 @@ msgstr ""
|
|||
msgid "No limit"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_financial_report
|
||||
#: model:ir.model.fields.selection,name:account_financial_report.selection__general_ledger_report_wizard__grouped_by__none
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_financial_report
|
||||
#: code:addons/account_financial_report/wizard/journal_ledger_wizard.py:0
|
||||
#, python-format
|
||||
|
@ -1330,6 +1342,11 @@ msgstr ""
|
|||
msgid "Partner ending balance"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_financial_report
|
||||
#: model:ir.model.fields.selection,name:account_financial_report.selection__general_ledger_report_wizard__grouped_by__partners
|
||||
msgid "Partners"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_financial_report
|
||||
#: model:ir.model.fields,field_description:account_financial_report.field_aged_partner_balance_report_wizard__payable_accounts_only
|
||||
#: model:ir.model.fields,field_description:account_financial_report.field_general_ledger_report_wizard__payable_accounts_only
|
||||
|
@ -1459,7 +1476,6 @@ msgid "Show Move Line Details"
|
|||
msgstr ""
|
||||
|
||||
#. module: account_financial_report
|
||||
#: model:ir.model.fields,field_description:account_financial_report.field_general_ledger_report_wizard__show_partner_details
|
||||
#: model:ir.model.fields,field_description:account_financial_report.field_open_items_report_wizard__show_partner_details
|
||||
#: model:ir.model.fields,field_description:account_financial_report.field_trial_balance_report_wizard__show_partner_details
|
||||
msgid "Show Partner Details"
|
||||
|
@ -1575,6 +1591,12 @@ msgstr ""
|
|||
msgid "Tax Groups"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_financial_report
|
||||
#: code:addons/account_financial_report/report/general_ledger_xlsx.py:0
|
||||
#, python-format
|
||||
msgid "Tax Initial balance"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_financial_report
|
||||
#: code:addons/account_financial_report/report/vat_report_xlsx.py:0
|
||||
#: model:ir.model.fields.selection,name:account_financial_report.selection__vat_report_wizard__based_on__taxtags
|
||||
|
@ -1582,9 +1604,16 @@ msgstr ""
|
|||
msgid "Tax Tags"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_financial_report
|
||||
#: code:addons/account_financial_report/report/general_ledger_xlsx.py:0
|
||||
#, python-format
|
||||
msgid "Tax ending balance"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_financial_report
|
||||
#: code:addons/account_financial_report/report/general_ledger_xlsx.py:0
|
||||
#: code:addons/account_financial_report/report/journal_ledger_xlsx.py:0
|
||||
#: model:ir.model.fields.selection,name:account_financial_report.selection__general_ledger_report_wizard__grouped_by__taxes
|
||||
#: model_terms:ir.ui.view,arch_db:account_financial_report.report_general_ledger_lines
|
||||
#: model_terms:ir.ui.view,arch_db:account_financial_report.report_journal_ledger_journal_table_header
|
||||
#, python-format
|
||||
|
|
|
@ -6,8 +6,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 12.0+e\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-09-01 13:35+0000\n"
|
||||
"PO-Revision-Date: 2022-09-01 15:36+0200\n"
|
||||
"POT-Creation-Date: 2022-09-20 07:00+0000\n"
|
||||
"PO-Revision-Date: 2022-09-20 09:01+0200\n"
|
||||
"Last-Translator: Pedro M. Baeza <pedro.baeza@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"Language: es\n"
|
||||
|
@ -956,6 +956,11 @@ msgstr ""
|
|||
msgid "Group entries by"
|
||||
msgstr "Agrupar por"
|
||||
|
||||
#. module: account_financial_report
|
||||
#: model:ir.model.fields,field_description:account_financial_report.field_general_ledger_report_wizard__grouped_by
|
||||
msgid "Grouped by"
|
||||
msgstr "Agrupado por"
|
||||
|
||||
#. module: account_financial_report
|
||||
#: code:addons/account_financial_report/report/general_ledger_xlsx.py:0
|
||||
#: code:addons/account_financial_report/report/open_items_xlsx.py:0
|
||||
|
@ -1233,6 +1238,11 @@ msgstr "Sin jerarquía"
|
|||
msgid "No limit"
|
||||
msgstr "Sin límite"
|
||||
|
||||
#. module: account_financial_report
|
||||
#: model:ir.model.fields.selection,name:account_financial_report.selection__general_ledger_report_wizard__grouped_by__none
|
||||
msgid "None"
|
||||
msgstr "Ninguna"
|
||||
|
||||
#. module: account_financial_report
|
||||
#: code:addons/account_financial_report/wizard/journal_ledger_wizard.py:0
|
||||
#, python-format
|
||||
|
@ -1360,6 +1370,11 @@ msgstr "Saldo acumulado de empresa"
|
|||
msgid "Partner ending balance"
|
||||
msgstr "Saldo final de empresa"
|
||||
|
||||
#. module: account_financial_report
|
||||
#: model:ir.model.fields.selection,name:account_financial_report.selection__general_ledger_report_wizard__grouped_by__partners
|
||||
msgid "Partners"
|
||||
msgstr "Contactos"
|
||||
|
||||
#. module: account_financial_report
|
||||
#: model:ir.model.fields,field_description:account_financial_report.field_aged_partner_balance_report_wizard__payable_accounts_only
|
||||
#: model:ir.model.fields,field_description:account_financial_report.field_general_ledger_report_wizard__payable_accounts_only
|
||||
|
@ -1491,7 +1506,6 @@ msgid "Show Move Line Details"
|
|||
msgstr "Mostrar Detalles Apuntes"
|
||||
|
||||
#. module: account_financial_report
|
||||
#: model:ir.model.fields,field_description:account_financial_report.field_general_ledger_report_wizard__show_partner_details
|
||||
#: model:ir.model.fields,field_description:account_financial_report.field_open_items_report_wizard__show_partner_details
|
||||
#: model:ir.model.fields,field_description:account_financial_report.field_trial_balance_report_wizard__show_partner_details
|
||||
msgid "Show Partner Details"
|
||||
|
@ -1607,6 +1621,12 @@ msgstr "Debe"
|
|||
msgid "Tax Groups"
|
||||
msgstr "Grupo de impuestos"
|
||||
|
||||
#. module: account_financial_report
|
||||
#: code:addons/account_financial_report/report/general_ledger_xlsx.py:0
|
||||
#, python-format
|
||||
msgid "Tax Initial balance"
|
||||
msgstr "Saldo inicial de impuesto"
|
||||
|
||||
#. module: account_financial_report
|
||||
#: code:addons/account_financial_report/report/vat_report_xlsx.py:0
|
||||
#: model:ir.model.fields.selection,name:account_financial_report.selection__vat_report_wizard__based_on__taxtags
|
||||
|
@ -1614,9 +1634,16 @@ msgstr "Grupo de impuestos"
|
|||
msgid "Tax Tags"
|
||||
msgstr "Etiquetas de impuestos"
|
||||
|
||||
#. module: account_financial_report
|
||||
#: code:addons/account_financial_report/report/general_ledger_xlsx.py:0
|
||||
#, python-format
|
||||
msgid "Tax ending balance"
|
||||
msgstr "Saldo final de impuesto"
|
||||
|
||||
#. module: account_financial_report
|
||||
#: code:addons/account_financial_report/report/general_ledger_xlsx.py:0
|
||||
#: code:addons/account_financial_report/report/journal_ledger_xlsx.py:0
|
||||
#: model:ir.model.fields.selection,name:account_financial_report.selection__general_ledger_report_wizard__grouped_by__taxes
|
||||
#: model_terms:ir.ui.view,arch_db:account_financial_report.report_general_ledger_lines
|
||||
#: model_terms:ir.ui.view,arch_db:account_financial_report.report_journal_ledger_journal_table_header
|
||||
#, python-format
|
||||
|
|
|
@ -50,16 +50,19 @@ class GeneralLedgerReport(models.AbstractModel):
|
|||
)
|
||||
return taxes_data
|
||||
|
||||
def _get_acc_prt_accounts_ids(self, company_id):
|
||||
def _get_account_internal_types(self, grouped_by):
|
||||
return ["receivable", "payable"] if grouped_by != "taxes" else ["other"]
|
||||
|
||||
def _get_acc_prt_accounts_ids(self, company_id, grouped_by):
|
||||
accounts_domain = [
|
||||
("company_id", "=", company_id),
|
||||
("internal_type", "in", ["receivable", "payable"]),
|
||||
("internal_type", "in", self._get_account_internal_types(grouped_by)),
|
||||
]
|
||||
acc_prt_accounts = self.env["account.account"].search(accounts_domain)
|
||||
return acc_prt_accounts.ids
|
||||
|
||||
def _get_initial_balances_bs_ml_domain(
|
||||
self, account_ids, company_id, date_from, base_domain, acc_prt=False
|
||||
self, account_ids, company_id, date_from, base_domain, grouped_by, acc_prt=False
|
||||
):
|
||||
accounts_domain = [
|
||||
("company_id", "=", company_id),
|
||||
|
@ -73,7 +76,8 @@ class GeneralLedgerReport(models.AbstractModel):
|
|||
accounts = self.env["account.account"].search(accounts_domain)
|
||||
domain += [("account_id", "in", accounts.ids)]
|
||||
if acc_prt:
|
||||
domain += [("account_id.internal_type", "in", ["receivable", "payable"])]
|
||||
internal_types = self._get_account_internal_types(grouped_by)
|
||||
domain += [("account_id.internal_type", "in", internal_types)]
|
||||
return domain
|
||||
|
||||
def _get_initial_balances_pl_ml_domain(
|
||||
|
@ -147,10 +151,10 @@ class GeneralLedgerReport(models.AbstractModel):
|
|||
return pl_initial_balance
|
||||
|
||||
def _get_gl_initial_acc(
|
||||
self, account_ids, company_id, date_from, fy_start_date, base_domain
|
||||
self, account_ids, company_id, date_from, fy_start_date, base_domain, grouped_by
|
||||
):
|
||||
initial_domain_bs = self._get_initial_balances_bs_ml_domain(
|
||||
account_ids, company_id, date_from, base_domain
|
||||
account_ids, company_id, date_from, base_domain, grouped_by
|
||||
)
|
||||
initial_domain_pl = self._get_initial_balances_pl_ml_domain(
|
||||
account_ids, company_id, date_from, fy_start_date, base_domain
|
||||
|
@ -209,6 +213,36 @@ class GeneralLedgerReport(models.AbstractModel):
|
|||
data[acc_id][grouped_by] = True
|
||||
return data
|
||||
|
||||
def _prepare_gen_ld_data_group_taxes(self, data, domain, grouped_by):
|
||||
gl_initial_acc_prt = self.env["account.move.line"].read_group(
|
||||
domain=domain,
|
||||
fields=[
|
||||
"account_id",
|
||||
"debit",
|
||||
"credit",
|
||||
"balance",
|
||||
"amount_currency",
|
||||
"tax_line_id",
|
||||
],
|
||||
groupby=["account_id"],
|
||||
lazy=False,
|
||||
)
|
||||
if gl_initial_acc_prt:
|
||||
for gl in gl_initial_acc_prt:
|
||||
if "tax_line_id" in gl and gl["tax_line_id"]:
|
||||
tax_id = gl["tax_line_id"][0]
|
||||
tax_name = gl["tax_line_id"][1]
|
||||
tax_name = tax_name._value
|
||||
else:
|
||||
tax_id = 0
|
||||
tax_name = "Missing Tax"
|
||||
acc_id = gl["account_id"][0]
|
||||
data[acc_id][tax_id] = self._prepare_gen_ld_data_item(gl)
|
||||
data[acc_id][tax_id]["id"] = tax_id
|
||||
data[acc_id][tax_id]["name"] = tax_name
|
||||
data[acc_id][grouped_by] = True
|
||||
return data
|
||||
|
||||
def _get_initial_balance_data(
|
||||
self,
|
||||
account_ids,
|
||||
|
@ -244,10 +278,10 @@ class GeneralLedgerReport(models.AbstractModel):
|
|||
if extra_domain:
|
||||
base_domain += extra_domain
|
||||
gl_initial_acc = self._get_gl_initial_acc(
|
||||
account_ids, company_id, date_from, fy_start_date, base_domain
|
||||
account_ids, company_id, date_from, fy_start_date, base_domain, grouped_by
|
||||
)
|
||||
domain = self._get_initial_balances_bs_ml_domain(
|
||||
account_ids, company_id, date_from, base_domain, acc_prt=True
|
||||
account_ids, company_id, date_from, base_domain, grouped_by, acc_prt=True
|
||||
)
|
||||
data = self._prepare_gen_ld_data(gl_initial_acc, domain, grouped_by)
|
||||
accounts_ids = list(data.keys())
|
||||
|
@ -391,6 +425,17 @@ class GeneralLedgerReport(models.AbstractModel):
|
|||
else "Missing Partner"
|
||||
)
|
||||
res.append({"id": item_id, "name": item_name})
|
||||
elif grouped_by == "taxes":
|
||||
if move_line["tax_line_id"]:
|
||||
item_id = move_line["tax_line_id"][0]
|
||||
item_name = move_line["tax_line_id"][1]
|
||||
res.append({"id": item_id, "name": item_name})
|
||||
elif move_line["tax_ids"]:
|
||||
for tax_id in move_line["tax_ids"]:
|
||||
tax_item = self.env["account.tax"].browse(tax_id)
|
||||
res.append({"id": tax_item.id, "name": tax_item.name})
|
||||
else:
|
||||
res.append({"id": 0, "name": "Missing Tax"})
|
||||
return res
|
||||
|
||||
def _get_period_ml_data(
|
||||
|
@ -449,7 +494,7 @@ class GeneralLedgerReport(models.AbstractModel):
|
|||
taxes_ids = set()
|
||||
tags_ids = set()
|
||||
full_reconcile_data = {}
|
||||
acc_prt_account_ids = self._get_acc_prt_accounts_ids(company_id)
|
||||
acc_prt_account_ids = self._get_acc_prt_accounts_ids(company_id, grouped_by)
|
||||
for move_line in move_lines:
|
||||
journal_ids.add(move_line["journal_id"][0])
|
||||
for tax_id in move_line["tax_ids"]:
|
||||
|
|
|
@ -326,6 +326,8 @@ class GeneralLedgerXslx(models.AbstractModel):
|
|||
if "account" not in my_object["type"] and "grouped_by" in my_object:
|
||||
if my_object["grouped_by"] == "partners":
|
||||
label = _("Partner Initial balance")
|
||||
elif my_object["grouped_by"] == "taxes":
|
||||
label = _("Tax Initial balance")
|
||||
label = label if label else _("Initial balance")
|
||||
super().write_initial_balance_from_dict(my_object, label)
|
||||
|
||||
|
@ -338,5 +340,7 @@ class GeneralLedgerXslx(models.AbstractModel):
|
|||
name = my_object["name"]
|
||||
if my_object["grouped_by"] == "partners":
|
||||
label = _("Partner ending balance")
|
||||
elif my_object["grouped_by"] == "taxes":
|
||||
label = _("Tax ending balance")
|
||||
label = label if label else _("Ending balance")
|
||||
super().write_ending_balance_from_dict(my_object, name, label)
|
||||
|
|
|
@ -81,7 +81,7 @@ class GeneralLedgerReportWizard(models.TransientModel):
|
|||
help="Ending account in a range",
|
||||
)
|
||||
grouped_by = fields.Selection(
|
||||
selection=[("none", "None"), ("partners", "Partners")],
|
||||
selection=[("none", "None"), ("partners", "Partners"), ("taxes", "Taxes")],
|
||||
default="partners",
|
||||
string="Grouped by",
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue