diff --git a/account_financial_report/report/abstract_report_xlsx.py b/account_financial_report/report/abstract_report_xlsx.py
index 64fc5d15..984b659c 100644
--- a/account_financial_report/report/abstract_report_xlsx.py
+++ b/account_financial_report/report/abstract_report_xlsx.py
@@ -449,10 +449,10 @@ class AbstractReportXslx(models.AbstractModel):
def _get_currency_amt_format(self, line_object):
""" Return amount format specific for each currency. """
if "account_group_id" in line_object and line_object["account_group_id"]:
- format_amt = getattr(self, "format_amount_bold")
+ format_amt = self.format_amount_bold
field_prefix = "format_amount_bold"
else:
- format_amt = getattr(self, "format_amount")
+ format_amt = self.format_amount
field_prefix = "format_amount"
if "currency_id" in line_object and line_object.get("currency_id", False):
field_name = "{}_{}".format(field_prefix, line_object["currency_id"].name)
@@ -460,7 +460,7 @@ class AbstractReportXslx(models.AbstractModel):
format_amt = getattr(self, field_name)
else:
format_amt = self.workbook.add_format()
- setattr(self, "field_name", format_amt)
+ self.field_name = format_amt
format_amount = "#,##0." + (
"0" * line_object["currency_id"].decimal_places
)
@@ -473,7 +473,7 @@ class AbstractReportXslx(models.AbstractModel):
format_amt = self.format_amount_bold
field_prefix = "format_amount_bold"
else:
- format_amt = getattr(self, "format_amount")
+ format_amt = self.format_amount
field_prefix = "format_amount"
if line_dict.get("currency_id", False) and line_dict["currency_id"]:
if isinstance(line_dict["currency_id"], int):
diff --git a/account_financial_report/report/aged_partner_balance.py b/account_financial_report/report/aged_partner_balance.py
index d24ef85b..0713259d 100644
--- a/account_financial_report/report/aged_partner_balance.py
+++ b/account_financial_report/report/aged_partner_balance.py
@@ -386,6 +386,7 @@ class AgedPartnerBalanceReport(models.AbstractModel):
)
self._compute_maturity_date(ml, date_at_oject)
move_lines.append(ml)
+ move_lines = sorted(move_lines, key=lambda k: (k["date"]))
partner.update({"move_lines": move_lines})
account["partners"].append(partner)
aged_partner_data.append(account)
diff --git a/account_financial_report/report/general_ledger.py b/account_financial_report/report/general_ledger.py
index 9ebaae34..74884af6 100644
--- a/account_financial_report/report/general_ledger.py
+++ b/account_financial_report/report/general_ledger.py
@@ -6,7 +6,7 @@ import calendar
import datetime
import operator
-from odoo import api, models
+from odoo import _, api, models
class GeneralLedgerReport(models.AbstractModel):
@@ -556,7 +556,7 @@ class GeneralLedgerReport(models.AbstractModel):
move_line["balance"] += last_cumul_balance
last_cumul_balance = move_line["balance"]
if move_line["rec_id"] in rec_after_date_to_ids:
- move_line["rec_name"] = str("*") + move_line["rec_name"]
+ move_line["rec_name"] = "(" + _("future") + ") " + move_line["rec_name"]
return move_lines
@api.model
@@ -763,6 +763,7 @@ class GeneralLedgerReport(models.AbstractModel):
account["move_lines"] = self._recalculate_cumul_balance(
account["move_lines"],
gen_ld_data[account["id"]]["init_bal"]["balance"],
+ rec_after_date_to_ids,
)
if account["partners"]:
account["partners"] = False
diff --git a/account_financial_report/report/general_ledger_xlsx.py b/account_financial_report/report/general_ledger_xlsx.py
index d4deffd6..6cc876b3 100644
--- a/account_financial_report/report/general_ledger_xlsx.py
+++ b/account_financial_report/report/general_ledger_xlsx.py
@@ -31,7 +31,7 @@ class GeneralLedgerXslx(models.AbstractModel):
6: {"header": _("Ref - Label"), "field": "ref_label", "width": 40},
7: {"header": _("Cost center"), "field": "cost_center", "width": 15},
8: {"header": _("Tags"), "field": "tags", "width": 10},
- 9: {"header": _("Rec."), "field": "rec_name", "width": 5},
+ 9: {"header": _("Rec."), "field": "rec_name", "width": 15},
10: {
"header": _("Debit"),
"field": "debit",
diff --git a/account_financial_report/report/trial_balance.py b/account_financial_report/report/trial_balance.py
index f6bad477..147978e0 100644
--- a/account_financial_report/report/trial_balance.py
+++ b/account_financial_report/report/trial_balance.py
@@ -207,6 +207,128 @@ class TrialBalanceReport(models.AbstractModel):
)
return pl_initial_balance, pl_initial_currency_balance
+ @api.model
+ def _compute_account_amount(
+ self, total_amount, tb_initial_acc, tb_period_acc, foreign_currency
+ ):
+ for tb in tb_period_acc:
+ acc_id = tb["account_id"][0]
+ total_amount[acc_id] = {}
+ total_amount[acc_id]["credit"] = tb["credit"]
+ total_amount[acc_id]["debit"] = tb["debit"]
+ total_amount[acc_id]["balance"] = tb["balance"]
+ total_amount[acc_id]["initial_balance"] = 0.0
+ total_amount[acc_id]["ending_balance"] = tb["balance"]
+ if foreign_currency:
+ total_amount[acc_id]["initial_currency_balance"] = 0.0
+ total_amount[acc_id]["ending_currency_balance"] = round(
+ tb["amount_currency"], 2
+ )
+ for tb in tb_initial_acc:
+ acc_id = tb["account_id"]
+ if acc_id not in total_amount.keys():
+ total_amount[acc_id] = {}
+ total_amount[acc_id]["credit"] = 0.0
+ total_amount[acc_id]["debit"] = 0.0
+ total_amount[acc_id]["balance"] = 0.0
+ total_amount[acc_id]["initial_balance"] = tb["balance"]
+ total_amount[acc_id]["ending_balance"] = tb["balance"]
+ if foreign_currency:
+ total_amount[acc_id]["initial_currency_balance"] = round(
+ tb["amount_currency"], 2
+ )
+ total_amount[acc_id]["ending_currency_balance"] = round(
+ tb["amount_currency"], 2
+ )
+ else:
+ total_amount[acc_id]["initial_balance"] = tb["balance"]
+ total_amount[acc_id]["ending_balance"] += tb["balance"]
+ if foreign_currency:
+ total_amount[acc_id]["initial_currency_balance"] = round(
+ tb["amount_currency"], 2
+ )
+ total_amount[acc_id]["ending_currency_balance"] += round(
+ tb["amount_currency"], 2
+ )
+ return total_amount
+
+ @api.model
+ def _compute_partner_amount(
+ self, total_amount, tb_initial_prt, tb_period_prt, foreign_currency
+ ):
+ partners_ids = set()
+ partners_data = {}
+ for tb in tb_period_prt:
+ acc_id = tb["account_id"][0]
+ if tb["partner_id"]:
+ prt_id = tb["partner_id"][0]
+ if tb["partner_id"] not in partners_ids:
+ partners_data.update(
+ {prt_id: {"id": prt_id, "name": tb["partner_id"][1]}}
+ )
+ total_amount[acc_id][prt_id] = {}
+ total_amount[acc_id][prt_id]["credit"] = tb["credit"]
+ total_amount[acc_id][prt_id]["debit"] = tb["debit"]
+ total_amount[acc_id][prt_id]["balance"] = tb["balance"]
+ total_amount[acc_id][prt_id]["initial_balance"] = 0.0
+ total_amount[acc_id][prt_id]["ending_balance"] = tb["balance"]
+ if foreign_currency:
+ total_amount[acc_id][prt_id]["initial_currency_balance"] = 0.0
+ total_amount[acc_id][prt_id]["ending_currency_balance"] = round(
+ tb["amount_currency"], 2
+ )
+ partners_ids.add(tb["partner_id"])
+ for tb in tb_initial_prt:
+ acc_id = tb["account_id"][0]
+ if tb["partner_id"]:
+ prt_id = tb["partner_id"][0]
+ if tb["partner_id"] not in partners_ids:
+ partners_data.update(
+ {prt_id: {"id": prt_id, "name": tb["partner_id"][1]}}
+ )
+ if acc_id not in total_amount.keys():
+ total_amount[acc_id][prt_id] = {}
+ total_amount[acc_id][prt_id]["credit"] = 0.0
+ total_amount[acc_id][prt_id]["debit"] = 0.0
+ total_amount[acc_id][prt_id]["balance"] = 0.0
+ total_amount[acc_id][prt_id]["initial_balance"] = tb["balance"]
+ total_amount[acc_id][prt_id]["ending_balance"] = tb["balance"]
+ if foreign_currency:
+ total_amount[acc_id][prt_id][
+ "initial_currency_balance"
+ ] = round(tb["amount_currency"], 2)
+ total_amount[acc_id][prt_id]["ending_currency_balance"] = round(
+ tb["amount_currency"], 2
+ )
+ partners_ids.add(tb["partner_id"])
+ elif prt_id not in total_amount[acc_id].keys():
+ total_amount[acc_id][prt_id] = {}
+ total_amount[acc_id][prt_id]["credit"] = 0.0
+ total_amount[acc_id][prt_id]["debit"] = 0.0
+ total_amount[acc_id][prt_id]["balance"] = 0.0
+ total_amount[acc_id][prt_id]["initial_balance"] = tb["balance"]
+ total_amount[acc_id][prt_id]["ending_balance"] = tb["balance"]
+ if foreign_currency:
+ total_amount[acc_id][prt_id][
+ "initial_currency_balance"
+ ] = round(tb["amount_currency"], 2)
+ total_amount[acc_id][prt_id]["ending_currency_balance"] = round(
+ tb["amount_currency"], 2
+ )
+ partners_ids.add(tb["partner_id"])
+ else:
+ total_amount[acc_id][prt_id]["initial_balance"] += tb["balance"]
+ total_amount[acc_id][prt_id]["ending_balance"] += tb["balance"]
+ if foreign_currency:
+ total_amount[acc_id][prt_id][
+ "initial_currency_balance"
+ ] += round(tb["amount_currency"], 2)
+ total_amount[acc_id][prt_id][
+ "ending_currency_balance"
+ ] += round(tb["amount_currency"], 2)
+ return total_amount, partners_data
+
+ @api.model
def _get_data(
self,
account_ids,
@@ -321,116 +443,13 @@ class TrialBalanceReport(models.AbstractModel):
)
total_amount = {}
partners_data = []
- for tb in tb_period_acc:
- acc_id = tb["account_id"][0]
- total_amount[acc_id] = {}
- total_amount[acc_id]["credit"] = tb["credit"]
- total_amount[acc_id]["debit"] = tb["debit"]
- total_amount[acc_id]["balance"] = tb["balance"]
- total_amount[acc_id]["initial_balance"] = 0.0
- total_amount[acc_id]["ending_balance"] = tb["balance"]
- if foreign_currency:
- total_amount[acc_id]["initial_currency_balance"] = 0.0
- total_amount[acc_id]["ending_currency_balance"] = round(
- tb["amount_currency"], 2
- )
- for tb in tb_initial_acc:
- acc_id = tb["account_id"]
- if acc_id not in total_amount.keys():
- total_amount[acc_id] = {}
- total_amount[acc_id]["credit"] = 0.0
- total_amount[acc_id]["debit"] = 0.0
- total_amount[acc_id]["balance"] = 0.0
- total_amount[acc_id]["initial_balance"] = tb["balance"]
- total_amount[acc_id]["ending_balance"] = tb["balance"]
- if foreign_currency:
- total_amount[acc_id]["initial_currency_balance"] = round(
- tb["amount_currency"], 2
- )
- total_amount[acc_id]["ending_currency_balance"] = round(
- tb["amount_currency"], 2
- )
- else:
- total_amount[acc_id]["initial_balance"] = tb["balance"]
- total_amount[acc_id]["ending_balance"] += tb["balance"]
- if foreign_currency:
- total_amount[acc_id]["initial_currency_balance"] = round(
- tb["amount_currency"], 2
- )
- total_amount[acc_id]["ending_currency_balance"] += round(
- tb["amount_currency"], 2
- )
+ total_amount = self._compute_account_amount(
+ total_amount, tb_initial_acc, tb_period_acc, foreign_currency
+ )
if show_partner_details:
- partners_ids = set()
- partners_data = {}
- for tb in tb_period_prt:
- acc_id = tb["account_id"][0]
- if tb["partner_id"]:
- prt_id = tb["partner_id"][0]
- if tb["partner_id"] not in partners_ids:
- partners_data.update(
- {prt_id: {"id": prt_id, "name": tb["partner_id"][1]}}
- )
- total_amount[acc_id][prt_id] = {}
- total_amount[acc_id][prt_id]["credit"] = tb["credit"]
- total_amount[acc_id][prt_id]["debit"] = tb["debit"]
- total_amount[acc_id][prt_id]["balance"] = tb["balance"]
- total_amount[acc_id][prt_id]["initial_balance"] = 0.0
- total_amount[acc_id][prt_id]["ending_balance"] = tb["balance"]
- if foreign_currency:
- total_amount[acc_id][prt_id]["initial_currency_balance"] = 0.0
- total_amount[acc_id][prt_id]["ending_currency_balance"] = round(
- tb["amount_currency"], 2
- )
- partners_ids.add(tb["partner_id"])
- for tb in tb_initial_prt:
- acc_id = tb["account_id"][0]
- if tb["partner_id"]:
- prt_id = tb["partner_id"][0]
- if tb["partner_id"] not in partners_ids:
- partners_data.update(
- {prt_id: {"id": prt_id, "name": tb["partner_id"][1]}}
- )
- if acc_id not in total_amount.keys():
- total_amount[acc_id][prt_id] = {}
- total_amount[acc_id][prt_id]["credit"] = 0.0
- total_amount[acc_id][prt_id]["debit"] = 0.0
- total_amount[acc_id][prt_id]["balance"] = 0.0
- total_amount[acc_id][prt_id]["initial_balance"] = tb["balance"]
- total_amount[acc_id][prt_id]["ending_balance"] = tb["balance"]
- if foreign_currency:
- total_amount[acc_id][prt_id][
- "initial_currency_balance"
- ] = round(tb["amount_currency"], 2)
- total_amount[acc_id][prt_id][
- "ending_currency_balance"
- ] = round(tb["amount_currency"], 2)
- partners_ids.add(tb["partner_id"])
- elif prt_id not in total_amount[acc_id].keys():
- total_amount[acc_id][prt_id] = {}
- total_amount[acc_id][prt_id]["credit"] = 0.0
- total_amount[acc_id][prt_id]["debit"] = 0.0
- total_amount[acc_id][prt_id]["balance"] = 0.0
- total_amount[acc_id][prt_id]["initial_balance"] = tb["balance"]
- total_amount[acc_id][prt_id]["ending_balance"] = tb["balance"]
- if foreign_currency:
- total_amount[acc_id][prt_id][
- "initial_currency_balance"
- ] = round(tb["amount_currency"], 2)
- total_amount[acc_id][prt_id][
- "ending_currency_balance"
- ] = round(tb["amount_currency"], 2)
- partners_ids.add(tb["partner_id"])
- else:
- total_amount[acc_id][prt_id]["initial_balance"] += tb["balance"]
- total_amount[acc_id][prt_id]["ending_balance"] += tb["balance"]
- if foreign_currency:
- total_amount[acc_id][prt_id][
- "initial_currency_balance"
- ] += round(tb["amount_currency"], 2)
- total_amount[acc_id][prt_id][
- "ending_currency_balance"
- ] += round(tb["amount_currency"], 2)
+ total_amount, partners_data = self._compute_partner_amount(
+ total_amount, tb_initial_prt, tb_period_prt, foreign_currency
+ )
accounts_ids = list(total_amount.keys())
unaffected_id = unaffected_earnings_account
if unaffected_id not in accounts_ids:
diff --git a/account_financial_report/report/vat_report.py b/account_financial_report/report/vat_report.py
index 26d69dd8..9db78b78 100644
--- a/account_financial_report/report/vat_report.py
+++ b/account_financial_report/report/vat_report.py
@@ -22,57 +22,82 @@ class VATReport(models.AbstractModel):
"name": tax.name,
"tax_group_id": tax.tax_group_id.id,
"type_tax_use": tax.type_tax_use,
+ "amount_type": tax.amount_type,
+ "tags_ids": tax.invoice_repartition_line_ids.tag_ids.ids,
}
}
)
return tax_data
@api.model
- def _get_vat_report_domain(self, company_id, date_from, date_to):
+ def _get_tax_report_domain(self, company_id, date_from, date_to, only_posted_moves):
domain = [
("company_id", "=", company_id),
("date", ">=", date_from),
- ("date", "<", date_to),
+ ("date", "<=", date_to),
("tax_line_id", "!=", False),
("tax_exigible", "=", True),
]
+ if only_posted_moves:
+ domain += [("move_id.state", "=", "posted")]
return domain
- def _get_vat_report_data(self, company_id, date_from, date_to):
- domain = self._get_vat_report_domain(company_id, date_from, date_to)
+ @api.model
+ def _get_net_report_domain(self, company_id, date_from, date_to, only_posted_moves):
+ domain = [
+ ("company_id", "=", company_id),
+ ("date", ">=", date_from),
+ ("date", "<=", date_to),
+ ("tax_ids", "!=", False),
+ ("tax_exigible", "=", True),
+ ]
+ if only_posted_moves:
+ domain += [("move_id.state", "=", "posted")]
+ return domain
+
+ def _get_vat_report_data(self, company_id, date_from, date_to, only_posted_moves):
+ tax_domain = self._get_tax_report_domain(
+ company_id, date_from, date_to, only_posted_moves
+ )
ml_fields = [
"id",
"tax_base_amount",
"balance",
"tax_line_id",
- "tax_repartition_line_id",
+ "tax_ids",
"analytic_tag_ids",
+ "tag_ids",
]
tax_move_lines = self.env["account.move.line"].search_read(
- domain=domain, fields=ml_fields
+ domain=tax_domain, fields=ml_fields,
)
- vat_data = {}
- tax_ids = list(map(operator.itemgetter("tax_line_id"), tax_move_lines))
- tax_ids = [i[0] for i in tax_ids]
- tax_data = self._get_tax_data(tax_ids)
+ net_domain = self._get_net_report_domain(
+ company_id, date_from, date_to, only_posted_moves
+ )
+ taxed_move_lines = self.env["account.move.line"].search_read(
+ domain=net_domain, fields=ml_fields,
+ )
+ vat_data = []
for tax_move_line in tax_move_lines:
- tax_ml_id = tax_move_line["id"]
- repartition = self.env["account.tax.repartition.line"].browse(
- tax_move_line["tax_repartition_line_id"][0]
- )
- tax_id = tax_move_line["tax_line_id"][0]
- vat_data[tax_ml_id] = {}
- vat_data[tax_ml_id].update(
+ vat_data.append(
{
- "id": tax_ml_id,
- "net": tax_move_line["tax_base_amount"],
- "tax": (-1) * tax_move_line["balance"]
- if tax_data[tax_id]["type_tax_use"] == "sale"
- else tax_move_line["balance"],
- "tax_line_id": tax_move_line["tax_line_id"],
- "tags_ids": repartition.tag_ids.ids,
+ "net": 0.0,
+ "tax": tax_move_line["balance"],
+ "tax_line_id": tax_move_line["tax_line_id"][0],
}
)
+ for taxed_move_line in taxed_move_lines:
+ for tax_id in taxed_move_line["tax_ids"]:
+ vat_data.append(
+ {
+ "net": taxed_move_line["balance"],
+ "tax": 0.0,
+ "tax_line_id": tax_id,
+ }
+ )
+ tax_ids = list(map(operator.itemgetter("tax_line_id"), vat_data))
+ tax_ids = list(set(tax_ids))
+ tax_data = self._get_tax_data(tax_ids)
return vat_data, tax_data
def _get_tax_group_data(self, tax_group_ids):
@@ -92,23 +117,28 @@ class VATReport(models.AbstractModel):
def _get_vat_report_group_data(self, vat_report_data, tax_data, tax_detail):
vat_report = {}
- for tax_move_line in vat_report_data.values():
- tax_id = tax_move_line["tax_line_id"][0]
- tax_group_id = tax_data[tax_id]["tax_group_id"]
- if tax_group_id not in vat_report.keys():
- vat_report[tax_group_id] = {}
- vat_report[tax_group_id]["net"] = 0.0
- vat_report[tax_group_id]["tax"] = 0.0
- vat_report[tax_group_id][tax_id] = dict(tax_data[tax_id])
- vat_report[tax_group_id][tax_id].update({"net": 0.0, "tax": 0.0})
+ for tax_move_line in vat_report_data:
+ tax_id = tax_move_line["tax_line_id"]
+ if tax_data[tax_id]["amount_type"] == "group":
+ pass
else:
- if tax_id not in vat_report[tax_group_id].keys():
+ tax_group_id = tax_data[tax_id]["tax_group_id"]
+ if tax_group_id not in vat_report.keys():
+ vat_report[tax_group_id] = {}
+ vat_report[tax_group_id]["net"] = 0.0
+ vat_report[tax_group_id]["tax"] = 0.0
vat_report[tax_group_id][tax_id] = dict(tax_data[tax_id])
vat_report[tax_group_id][tax_id].update({"net": 0.0, "tax": 0.0})
- vat_report[tax_group_id]["net"] += tax_move_line["net"]
- vat_report[tax_group_id]["tax"] += tax_move_line["tax"]
- vat_report[tax_group_id][tax_id]["net"] += tax_move_line["net"]
- vat_report[tax_group_id][tax_id]["tax"] += tax_move_line["tax"]
+ else:
+ if tax_id not in vat_report[tax_group_id].keys():
+ vat_report[tax_group_id][tax_id] = dict(tax_data[tax_id])
+ vat_report[tax_group_id][tax_id].update(
+ {"net": 0.0, "tax": 0.0}
+ )
+ vat_report[tax_group_id]["net"] += tax_move_line["net"]
+ vat_report[tax_group_id]["tax"] += tax_move_line["tax"]
+ vat_report[tax_group_id][tax_id]["net"] += tax_move_line["net"]
+ vat_report[tax_group_id][tax_id]["tax"] += tax_move_line["tax"]
tax_group_data = self._get_tax_group_data(vat_report.keys())
vat_report_list = []
for tax_group_id in vat_report.keys():
@@ -133,25 +163,30 @@ class VATReport(models.AbstractModel):
def _get_vat_report_tag_data(self, vat_report_data, tax_data, tax_detail):
vat_report = {}
- for tax_move_line in vat_report_data.values():
- tax_id = tax_move_line["tax_line_id"][0]
- tags_ids = tax_move_line["tags_ids"]
- if tags_ids:
- for tag_id in tags_ids:
- if tag_id not in vat_report.keys():
- vat_report[tag_id] = {}
- vat_report[tag_id]["net"] = 0.0
- vat_report[tag_id]["tax"] = 0.0
- vat_report[tag_id][tax_id] = dict(tax_data[tax_id])
- vat_report[tag_id][tax_id].update({"net": 0.0, "tax": 0.0})
- else:
- if tax_id not in vat_report[tag_id].keys():
+ for tax_move_line in vat_report_data:
+ tax_id = tax_move_line["tax_line_id"]
+ tags_ids = tax_data[tax_id]["tags_ids"]
+ if tax_data[tax_id]["amount_type"] == "group":
+ continue
+ else:
+ if tags_ids:
+ for tag_id in tags_ids:
+ if tag_id not in vat_report.keys():
+ vat_report[tag_id] = {}
+ vat_report[tag_id]["net"] = 0.0
+ vat_report[tag_id]["tax"] = 0.0
vat_report[tag_id][tax_id] = dict(tax_data[tax_id])
vat_report[tag_id][tax_id].update({"net": 0.0, "tax": 0.0})
- vat_report[tag_id][tax_id]["net"] += tax_move_line["net"]
- vat_report[tag_id][tax_id]["tax"] += tax_move_line["tax"]
- vat_report[tag_id]["net"] += tax_move_line["net"]
- vat_report[tag_id]["tax"] += tax_move_line["tax"]
+ else:
+ if tax_id not in vat_report[tag_id].keys():
+ vat_report[tag_id][tax_id] = dict(tax_data[tax_id])
+ vat_report[tag_id][tax_id].update(
+ {"net": 0.0, "tax": 0.0}
+ )
+ vat_report[tag_id][tax_id]["net"] += tax_move_line["net"]
+ vat_report[tag_id][tax_id]["tax"] += tax_move_line["tax"]
+ vat_report[tag_id]["net"] += tax_move_line["net"]
+ vat_report[tag_id]["tax"] += tax_move_line["tax"]
tags_data = self._get_tags_data(vat_report.keys())
vat_report_list = []
for tag_id in vat_report.keys():
@@ -173,8 +208,9 @@ class VATReport(models.AbstractModel):
date_to = data["date_to"]
based_on = data["based_on"]
tax_detail = data["tax_detail"]
+ only_posted_moves = data["only_posted_moves"]
vat_report_data, tax_data = self._get_vat_report_data(
- company_id, date_from, date_to
+ company_id, date_from, date_to, only_posted_moves
)
if based_on == "taxgroups":
vat_report = self._get_vat_report_group_data(
diff --git a/account_financial_report/tests/test_vat_report.py b/account_financial_report/tests/test_vat_report.py
index 7ee15f9c..4dd8980d 100644
--- a/account_financial_report/tests/test_vat_report.py
+++ b/account_financial_report/tests/test_vat_report.py
@@ -267,16 +267,16 @@ class TestVATReport(common.TransactionCase):
tax_10_net, tax_10_tax = self._get_tax_line(self.tax_10.name, vat_report)
tax_20_net, tax_20_tax = self._get_tax_line(self.tax_20.name, vat_report)
- self.assertEqual(tag_01_net, 100)
- self.assertEqual(tag_01_tax, 10)
- self.assertEqual(tag_02_net, 350)
- self.assertEqual(tag_02_tax, 60)
- self.assertEqual(tag_03_net, 250)
- self.assertEqual(tag_03_tax, 50)
- self.assertEqual(tax_10_net, 100)
- self.assertEqual(tax_10_tax, 10)
- self.assertEqual(tax_20_net, 250)
- self.assertEqual(tax_20_tax, 50)
+ self.assertEqual(tag_01_net, -100)
+ self.assertEqual(tag_01_tax, -10)
+ self.assertEqual(tag_02_net, -350)
+ self.assertEqual(tag_02_tax, -60)
+ self.assertEqual(tag_03_net, -250)
+ self.assertEqual(tag_03_tax, -50)
+ self.assertEqual(tax_10_net, -100)
+ self.assertEqual(tax_10_tax, -10)
+ self.assertEqual(tax_20_net, -250)
+ self.assertEqual(tax_20_tax, -50)
# Check report based on taxgroups
res_data = self._get_report_lines(taxgroups=True)
@@ -304,14 +304,14 @@ class TestVATReport(common.TransactionCase):
tax_10_net, tax_10_tax = self._get_tax_line(self.tax_10.name, vat_report)
tax_20_net, tax_20_tax = self._get_tax_line(self.tax_20.name, vat_report)
- self.assertEqual(group_10_net, 100)
- self.assertEqual(group_10_tax, 10)
- self.assertEqual(group_20_net, 250)
- self.assertEqual(group_20_tax, 50)
- self.assertEqual(tax_10_net, 100)
- self.assertEqual(tax_10_tax, 10)
- self.assertEqual(tax_20_net, 250)
- self.assertEqual(tax_20_tax, 50)
+ self.assertEqual(group_10_net, -100)
+ self.assertEqual(group_10_tax, -10)
+ self.assertEqual(group_20_net, -250)
+ self.assertEqual(group_20_tax, -50)
+ self.assertEqual(tax_10_net, -100)
+ self.assertEqual(tax_10_tax, -10)
+ self.assertEqual(tax_20_net, -250)
+ self.assertEqual(tax_20_tax, -50)
def test_wizard_date_range(self):
vat_wizard = self.env["vat.report.wizard"]
diff --git a/account_financial_report/wizard/general_ledger_wizard.py b/account_financial_report/wizard/general_ledger_wizard.py
index ab0963f0..cd254b4d 100644
--- a/account_financial_report/wizard/general_ledger_wizard.py
+++ b/account_financial_report/wizard/general_ledger_wizard.py
@@ -47,7 +47,7 @@ class GeneralLedgerReportWizard(models.TransientModel):
"If partners are filtered, "
"debits and credits totals will not match the trial balance.",
)
- show_analytic_tags = fields.Boolean(string="Show analytic tags")
+ show_analytic_tags = fields.Boolean(string="Show analytic tags",)
receivable_accounts_only = fields.Boolean()
payable_accounts_only = fields.Boolean()
partner_ids = fields.Many2many(
diff --git a/account_financial_report/wizard/vat_report_wizard.py b/account_financial_report/wizard/vat_report_wizard.py
index 49bec66c..0b2771d2 100644
--- a/account_financial_report/wizard/vat_report_wizard.py
+++ b/account_financial_report/wizard/vat_report_wizard.py
@@ -25,6 +25,12 @@ class VATReportWizard(models.TransientModel):
default="taxtags",
)
tax_detail = fields.Boolean("Detail Taxes")
+ target_move = fields.Selection(
+ [("posted", "All Posted Entries"), ("all", "All Entries")],
+ string="Target Moves",
+ required=True,
+ default="posted",
+ )
@api.onchange("company_id")
def onchange_company_id(self):
@@ -105,6 +111,7 @@ class VATReportWizard(models.TransientModel):
"date_from": self.date_from,
"date_to": self.date_to,
"based_on": self.based_on,
+ "only_posted_moves": self.target_move == "posted",
"tax_detail": self.tax_detail,
}
diff --git a/account_financial_report/wizard/vat_report_wizard_view.xml b/account_financial_report/wizard/vat_report_wizard_view.xml
index ed82894c..7421a4dc 100644
--- a/account_financial_report/wizard/vat_report_wizard_view.xml
+++ b/account_financial_report/wizard/vat_report_wizard_view.xml
@@ -18,10 +18,11 @@
-
-
-
-
+
+
+
+
+