Browse Source

Merge PR #735 into 13.0

Signed-off-by pedrobaeza
pull/748/head
OCA-git-bot 4 years ago
parent
commit
12178a2e62
  1. 1
      account_financial_report/report/__init__.py
  2. 126
      account_financial_report/report/abstract_report.py
  3. 106
      account_financial_report/report/aged_partner_balance.py
  4. 31
      account_financial_report/report/general_ledger.py
  5. 2
      account_financial_report/report/journal_ledger.py
  6. 146
      account_financial_report/report/open_items.py
  7. 96
      account_financial_report/report/trial_balance.py
  8. 4
      account_financial_report/report/vat_report.py
  9. 15
      account_financial_report/wizard/abstract_wizard.py
  10. 15
      account_financial_report/wizard/aged_partner_balance_wizard.py
  11. 15
      account_financial_report/wizard/general_ledger_wizard.py
  12. 18
      account_financial_report/wizard/journal_ledger_wizard.py
  13. 15
      account_financial_report/wizard/open_items_wizard.py
  14. 15
      account_financial_report/wizard/trial_balance_wizard.py
  15. 22
      account_financial_report/wizard/vat_report_wizard.py

1
account_financial_report/report/__init__.py

@ -3,6 +3,7 @@
# © 2016 Julien Coux (Camptocamp) # © 2016 Julien Coux (Camptocamp)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).- # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).-
from . import abstract_report
from . import abstract_report_xlsx from . import abstract_report_xlsx
from . import aged_partner_balance from . import aged_partner_balance
from . import aged_partner_balance_xlsx from . import aged_partner_balance_xlsx

126
account_financial_report/report/abstract_report.py

@ -0,0 +1,126 @@
# Copyright 2020 ForgeFlow S.L. (https://www.forgeflow.com)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import api, models
class AgedPartnerBalanceReport(models.AbstractModel):
_name = "report.account_financial_report.abstract_report"
_description = "Abstract Report"
@api.model
def _get_move_lines_domain_not_reconciled(
self, company_id, account_ids, partner_ids, only_posted_moves, date_from
):
domain = [
("account_id", "in", account_ids),
("company_id", "=", company_id),
("reconciled", "=", False),
]
if partner_ids:
domain += [("partner_id", "in", partner_ids)]
if only_posted_moves:
domain += [("move_id.state", "=", "posted")]
else:
domain += [("move_id.state", "in", ["posted", "draft"])]
if date_from:
domain += [("date", ">", date_from)]
return domain
@api.model
def _get_new_move_lines_domain(
self, new_ml_ids, account_ids, company_id, partner_ids, only_posted_moves
):
domain = [
("account_id", "in", account_ids),
("company_id", "=", company_id),
("id", "in", new_ml_ids),
]
if partner_ids:
domain += [("partner_id", "in", partner_ids)]
if only_posted_moves:
domain += [("move_id.state", "=", "posted")]
else:
domain += [("move_id.state", "in", ["posted", "draft"])]
return domain
def _recalculate_move_lines(
self,
move_lines,
debit_ids,
credit_ids,
debit_amount,
credit_amount,
ml_ids,
account_ids,
company_id,
partner_ids,
only_posted_moves,
):
debit_ids = set(debit_ids)
credit_ids = set(credit_ids)
in_credit_but_not_in_debit = credit_ids - debit_ids
reconciled_ids = list(debit_ids) + list(in_credit_but_not_in_debit)
reconciled_ids = set(reconciled_ids)
ml_ids = set(ml_ids)
new_ml_ids = reconciled_ids - ml_ids
new_ml_ids = list(new_ml_ids)
new_domain = self._get_new_move_lines_domain(
new_ml_ids, account_ids, company_id, partner_ids, only_posted_moves
)
ml_fields = [
"id",
"name",
"date",
"move_id",
"journal_id",
"account_id",
"partner_id",
"amount_residual",
"date_maturity",
"ref",
"debit",
"credit",
"reconciled",
"currency_id",
"amount_currency",
"amount_residual_currency",
]
new_move_lines = self.env["account.move.line"].search_read(
domain=new_domain, fields=ml_fields
)
move_lines = move_lines + new_move_lines
for move_line in move_lines:
ml_id = move_line["id"]
if ml_id in debit_ids:
move_line["amount_residual"] += debit_amount[ml_id]
if ml_id in credit_ids:
move_line["amount_residual"] -= credit_amount[ml_id]
return move_lines
def _get_accounts_data(self, accounts_ids):
accounts = self.env["account.account"].browse(accounts_ids)
accounts_data = {}
for account in accounts:
accounts_data.update(
{
account.id: {
"id": account.id,
"code": account.code,
"name": account.name,
"hide_account": False,
"group_id": account.group_id.id,
"currency_id": account.currency_id or False,
"currency_name": account.currency_id.name,
"centralized": account.centralized,
}
}
)
return accounts_data
def _get_journals_data(self, journals_ids):
journals = self.env["account.journal"].browse(journals_ids)
journals_data = {}
for journal in journals:
journals_data.update({journal.id: {"id": journal.id, "code": journal.code}})
return journals_data

106
account_financial_report/report/aged_partner_balance.py

@ -12,6 +12,7 @@ from odoo.tools import float_is_zero
class AgedPartnerBalanceReport(models.AbstractModel): class AgedPartnerBalanceReport(models.AbstractModel):
_name = "report.account_financial_report.aged_partner_balance" _name = "report.account_financial_report.aged_partner_balance"
_description = "Aged Partner Balance Report" _description = "Aged Partner Balance Report"
_inherit = "report.account_financial_report.abstract_report"
@api.model @api.model
def _initialize_account(self, ag_pb_data, acc_id): def _initialize_account(self, ag_pb_data, acc_id):
@ -40,45 +41,6 @@ class AgedPartnerBalanceReport(models.AbstractModel):
ag_pb_data[acc_id][prt_id]["move_lines"] = [] ag_pb_data[acc_id][prt_id]["move_lines"] = []
return ag_pb_data return ag_pb_data
def _get_journals_data(self, journals_ids):
journals = self.env["account.journal"].browse(journals_ids)
journals_data = {}
for journal in journals:
journals_data.update({journal.id: {"id": journal.id, "code": journal.code}})
return journals_data
def _get_accounts_data(self, accounts_ids):
accounts = self.env["account.account"].browse(accounts_ids)
accounts_data = {}
for account in accounts:
accounts_data.update(
{
account.id: {
"id": account.id,
"code": account.code,
"name": account.name,
}
}
)
return accounts_data
@api.model
def _get_move_lines_domain(
self, company_id, account_ids, partner_ids, only_posted_moves, date_from
):
domain = [
("account_id", "in", account_ids),
("company_id", "=", company_id),
("reconciled", "=", False),
]
if partner_ids:
domain += [("partner_id", "in", partner_ids)]
if only_posted_moves:
domain += [("move_id.state", "=", "posted")]
if date_from:
domain += [("date", ">", date_from)]
return domain
@api.model @api.model
def _calculate_amounts( def _calculate_amounts(
self, ag_pb_data, acc_id, prt_id, residual, due_date, date_at_object self, ag_pb_data, acc_id, prt_id, residual, due_date, date_at_object
@ -128,70 +90,6 @@ class AgedPartnerBalanceReport(models.AbstractModel):
) )
return accounts_partial_reconcile, debit_amount, credit_amount return accounts_partial_reconcile, debit_amount, credit_amount
@api.model
def _get_new_move_lines_domain(
self, new_ml_ids, account_ids, company_id, partner_ids, only_posted_moves
):
domain = [
("account_id", "in", account_ids),
("company_id", "=", company_id),
("id", "in", new_ml_ids),
]
if partner_ids:
domain += [("partner_id", "in", partner_ids)]
if only_posted_moves:
domain += [("move_id.state", "=", "posted")]
return domain
def _recalculate_move_lines(
self,
move_lines,
debit_ids,
credit_ids,
debit_amount,
credit_amount,
ml_ids,
account_ids,
company_id,
partner_ids,
only_posted_moves,
):
debit_ids = set(debit_ids)
credit_ids = set(credit_ids)
in_credit_but_not_in_debit = credit_ids - debit_ids
reconciled_ids = list(debit_ids) + list(in_credit_but_not_in_debit)
reconciled_ids = set(reconciled_ids)
ml_ids = set(ml_ids)
new_ml_ids = reconciled_ids - ml_ids
new_ml_ids = list(new_ml_ids)
new_domain = self._get_new_move_lines_domain(
new_ml_ids, account_ids, company_id, partner_ids, only_posted_moves
)
ml_fields = [
"id",
"name",
"date",
"move_id",
"journal_id",
"account_id",
"partner_id",
"amount_residual",
"date_maturity",
"ref",
"reconciled",
]
new_move_lines = self.env["account.move.line"].search_read(
domain=new_domain, fields=ml_fields
)
move_lines = move_lines + new_move_lines
for move_line in move_lines:
ml_id = move_line["id"]
if ml_id in debit_ids:
move_line["amount_residual"] += debit_amount[ml_id]
if ml_id in credit_ids:
move_line["amount_residual"] -= credit_amount[ml_id]
return move_lines
def _get_move_lines_data( def _get_move_lines_data(
self, self,
company_id, company_id,
@ -202,7 +100,7 @@ class AgedPartnerBalanceReport(models.AbstractModel):
only_posted_moves, only_posted_moves,
show_move_line_details, show_move_line_details,
): ):
domain = self._get_move_lines_domain(
domain = self._get_move_lines_domain_not_reconciled(
company_id, account_ids, partner_ids, only_posted_moves, date_from company_id, account_ids, partner_ids, only_posted_moves, date_from
) )
ml_fields = [ ml_fields = [

31
account_financial_report/report/general_ledger.py

@ -13,32 +13,7 @@ from odoo.tools import float_is_zero
class GeneralLedgerReport(models.AbstractModel): class GeneralLedgerReport(models.AbstractModel):
_name = "report.account_financial_report.general_ledger" _name = "report.account_financial_report.general_ledger"
_description = "General Ledger Report" _description = "General Ledger Report"
def _get_accounts_data(self, account_ids):
accounts = self.env["account.account"].browse(account_ids)
accounts_data = {}
for account in accounts:
accounts_data.update(
{
account.id: {
"id": account.id,
"code": account.code,
"name": account.name,
"group_id": account.group_id.id,
"currency_id": account.currency_id or False,
"currency_name": account.currency_id.name,
"centralized": account.centralized,
}
}
)
return accounts_data
def _get_journals_data(self, journals_ids):
journals = self.env["account.journal"].browse(journals_ids)
journals_data = {}
for journal in journals:
journals_data.update({journal.id: {"id": journal.id, "code": journal.code}})
return journals_data
_inherit = "report.account_financial_report.abstract_report"
def _get_tags_data(self, tags_ids): def _get_tags_data(self, tags_ids):
tags = self.env["account.analytic.tag"].browse(tags_ids) tags = self.env["account.analytic.tag"].browse(tags_ids)
@ -191,6 +166,8 @@ class GeneralLedgerReport(models.AbstractModel):
base_domain += [("partner_id", "in", partner_ids)] base_domain += [("partner_id", "in", partner_ids)]
if only_posted_moves: if only_posted_moves:
base_domain += [("move_id.state", "=", "posted")] base_domain += [("move_id.state", "=", "posted")]
else:
base_domain += [("move_id.state", "in", ["posted", "draft"])]
if analytic_tag_ids: if analytic_tag_ids:
base_domain += [("analytic_tag_ids", "in", analytic_tag_ids)] base_domain += [("analytic_tag_ids", "in", analytic_tag_ids)]
if cost_center_ids: if cost_center_ids:
@ -371,6 +348,8 @@ class GeneralLedgerReport(models.AbstractModel):
domain += [("partner_id", "in", partner_ids)] domain += [("partner_id", "in", partner_ids)]
if only_posted_moves: if only_posted_moves:
domain += [("move_id.state", "=", "posted")] domain += [("move_id.state", "=", "posted")]
else:
domain += [("move_id.state", "in", ["posted", "draft"])]
if analytic_tag_ids: if analytic_tag_ids:
domain += [("analytic_tag_ids", "in", analytic_tag_ids)] domain += [("analytic_tag_ids", "in", analytic_tag_ids)]
if cost_center_ids: if cost_center_ids:

2
account_financial_report/report/journal_ledger.py

@ -49,6 +49,8 @@ class JournalLedgerReport(models.AbstractModel):
] ]
if wizard.move_target != "all": if wizard.move_target != "all":
domain += [("state", "=", wizard.move_target)] domain += [("state", "=", wizard.move_target)]
else:
domain += [("state", "in", ["posted", "draft"])]
return domain return domain
def _get_moves_order(self, wizard, journal_ids): def _get_moves_order(self, wizard, journal_ids):

146
account_financial_report/report/open_items.py

@ -12,23 +12,7 @@ from odoo.tools import float_is_zero
class OpenItemsReport(models.AbstractModel): class OpenItemsReport(models.AbstractModel):
_name = "report.account_financial_report.open_items" _name = "report.account_financial_report.open_items"
_description = "Open Items Report" _description = "Open Items Report"
@api.model
def get_html(self, given_context=None):
return self._get_html()
def _get_html(self):
result = {}
rcontext = {}
context = dict(self.env.context)
rcontext.update(context.get("data"))
active_id = context.get("active_id")
wiz = self.env["open.items.report.wizard"].browse(active_id)
rcontext["o"] = wiz
result["html"] = self.env.ref(
"account_financial_report.report_open_items"
).render(rcontext)
return result
_inherit = "report.account_financial_report.abstract_report"
def _get_account_partial_reconciled(self, company_id, date_at_object): def _get_account_partial_reconciled(self, company_id, date_at_object):
domain = [("max_date", ">", date_at_object), ("company_id", "=", company_id)] domain = [("max_date", ">", date_at_object), ("company_id", "=", company_id)]
@ -52,128 +36,17 @@ class OpenItemsReport(models.AbstractModel):
) )
return accounts_partial_reconcile, debit_amount, credit_amount return accounts_partial_reconcile, debit_amount, credit_amount
@api.model
def _get_new_move_lines_domain(
self, new_ml_ids, account_ids, company_id, partner_ids, target_moves
):
domain = [
("account_id", "in", account_ids),
("company_id", "=", company_id),
("id", "in", new_ml_ids),
]
if partner_ids:
domain += [("partner_id", "in", partner_ids)]
if target_moves == "posted":
domain += [("move_id.state", "=", "posted")]
return domain
def _recalculate_move_lines(
self,
move_lines,
debit_ids,
credit_ids,
debit_amount,
credit_amount,
ml_ids,
account_ids,
company_id,
partner_ids,
target_moves,
):
debit_ids = set(debit_ids)
credit_ids = set(credit_ids)
in_credit_but_not_in_debit = credit_ids - debit_ids
reconciled_ids = list(debit_ids) + list(in_credit_but_not_in_debit)
reconciled_ids = set(reconciled_ids)
ml_ids = set(ml_ids)
new_ml_ids = reconciled_ids - ml_ids
new_ml_ids = list(new_ml_ids)
new_domain = self._get_new_move_lines_domain(
new_ml_ids, account_ids, company_id, partner_ids, target_moves
)
ml_fields = [
"id",
"name",
"date",
"move_id",
"journal_id",
"account_id",
"partner_id",
"amount_residual",
"date_maturity",
"ref",
"debit",
"credit",
"reconciled",
"currency_id",
"amount_currency",
"amount_residual_currency",
]
new_move_lines = self.env["account.move.line"].search_read(
domain=new_domain, fields=ml_fields
)
move_lines = move_lines + new_move_lines
for move_line in move_lines:
ml_id = move_line["id"]
if ml_id in debit_ids:
move_line["amount_residual"] += debit_amount[ml_id]
if ml_id in credit_ids:
move_line["amount_residual"] -= credit_amount[ml_id]
return move_lines
@api.model
def _get_move_lines_domain(
self, company_id, account_ids, partner_ids, target_move, date_from
):
domain = [
("account_id", "in", account_ids),
("company_id", "=", company_id),
("reconciled", "=", False),
]
if partner_ids:
domain += [("partner_id", "in", partner_ids)]
if target_move == "posted":
domain += [("move_id.state", "=", "posted")]
if date_from:
domain += [("date", ">", date_from)]
return domain
def _get_accounts_data(self, accounts_ids):
accounts = self.env["account.account"].browse(accounts_ids)
accounts_data = {}
for account in accounts:
accounts_data.update(
{
account.id: {
"id": account.id,
"code": account.code,
"name": account.name,
"hide_account": False,
"currency_id": account.currency_id or False,
"currency_name": account.currency_id.name,
}
}
)
return accounts_data
def _get_journals_data(self, journals_ids):
journals = self.env["account.journal"].browse(journals_ids)
journals_data = {}
for journal in journals:
journals_data.update({journal.id: {"id": journal.id, "code": journal.code}})
return journals_data
def _get_data( def _get_data(
self, self,
account_ids, account_ids,
partner_ids, partner_ids,
date_at_object, date_at_object,
target_move,
only_posted_moves,
company_id, company_id,
date_from, date_from,
): ):
domain = self._get_move_lines_domain(
company_id, account_ids, partner_ids, target_move, date_from
domain = self._get_move_lines_domain_not_reconciled(
company_id, account_ids, partner_ids, only_posted_moves, date_from
) )
ml_fields = [ ml_fields = [
"id", "id",
@ -223,7 +96,7 @@ class OpenItemsReport(models.AbstractModel):
account_ids, account_ids,
company_id, company_id,
partner_ids, partner_ids,
target_move,
only_posted_moves,
) )
move_lines = [ move_lines = [
move_line move_line
@ -356,7 +229,7 @@ class OpenItemsReport(models.AbstractModel):
date_at = data["date_at"] date_at = data["date_at"]
date_at_object = datetime.strptime(date_at, "%Y-%m-%d").date() date_at_object = datetime.strptime(date_at, "%Y-%m-%d").date()
date_from = data["date_from"] date_from = data["date_from"]
target_move = data["target_move"]
only_posted_moves = data["only_posted_moves"]
show_partner_details = data["show_partner_details"] show_partner_details = data["show_partner_details"]
( (
@ -366,7 +239,12 @@ class OpenItemsReport(models.AbstractModel):
accounts_data, accounts_data,
open_items_move_lines_data, open_items_move_lines_data,
) = self._get_data( ) = self._get_data(
account_ids, partner_ids, date_at_object, target_move, company_id, date_from
account_ids,
partner_ids,
date_at_object,
only_posted_moves,
company_id,
date_from,
) )
total_amount = self._calculate_amounts(open_items_move_lines_data) total_amount = self._calculate_amounts(open_items_move_lines_data)

96
account_financial_report/report/trial_balance.py

@ -10,42 +10,7 @@ from odoo import api, models
class TrialBalanceReport(models.AbstractModel): class TrialBalanceReport(models.AbstractModel):
_name = "report.account_financial_report.trial_balance" _name = "report.account_financial_report.trial_balance"
_description = "Trial Balance Report" _description = "Trial Balance Report"
@api.model
def get_html(self, given_context=None):
return self._get_html()
def _get_html(self):
result = {}
rcontext = {}
context = dict(self.env.context)
rcontext.update(context.get("data"))
active_id = context.get("active_id")
wiz = self.env["open.items.report.wizard"].browse(active_id)
rcontext["o"] = wiz
result["html"] = self.env.ref(
"account_financial_report.report_trial_balance"
).render(rcontext)
return result
def _get_accounts_data(self, account_ids):
accounts = self.env["account.account"].browse(account_ids)
accounts_data = {}
for account in accounts:
accounts_data.update(
{
account.id: {
"id": account.id,
"code": account.code,
"name": account.name,
"group_id": account.group_id.id,
"hide_account": False,
"currency_id": account.currency_id or False,
"currency_name": account.currency_id.name,
}
}
)
return accounts_data
_inherit = "report.account_financial_report.abstract_report"
def _get_initial_balances_bs_ml_domain( def _get_initial_balances_bs_ml_domain(
self, self,
@ -74,6 +39,8 @@ class TrialBalanceReport(models.AbstractModel):
domain += [("partner_id", "in", partner_ids)] domain += [("partner_id", "in", partner_ids)]
if only_posted_moves: if only_posted_moves:
domain += [("move_id.state", "=", "posted")] domain += [("move_id.state", "=", "posted")]
else:
domain += [("move_id.state", "in", ["posted", "draft"])]
if show_partner_details: if show_partner_details:
domain += [("account_id.internal_type", "in", ["receivable", "payable"])] domain += [("account_id.internal_type", "in", ["receivable", "payable"])]
return domain return domain
@ -106,6 +73,8 @@ class TrialBalanceReport(models.AbstractModel):
domain += [("partner_id", "in", partner_ids)] domain += [("partner_id", "in", partner_ids)]
if only_posted_moves: if only_posted_moves:
domain += [("move_id.state", "=", "posted")] domain += [("move_id.state", "=", "posted")]
else:
domain += [("move_id.state", "in", ["posted", "draft"])]
if show_partner_details: if show_partner_details:
domain += [("account_id.internal_type", "in", ["receivable", "payable"])] domain += [("account_id.internal_type", "in", ["receivable", "payable"])]
return domain return domain
@ -137,6 +106,8 @@ class TrialBalanceReport(models.AbstractModel):
domain += [("partner_id", "in", partner_ids)] domain += [("partner_id", "in", partner_ids)]
if only_posted_moves: if only_posted_moves:
domain += [("move_id.state", "=", "posted")] domain += [("move_id.state", "=", "posted")]
else:
domain += [("move_id.state", "in", ["posted", "draft"])]
if show_partner_details: if show_partner_details:
domain += [("account_id.internal_type", "in", ["receivable", "payable"])] domain += [("account_id.internal_type", "in", ["receivable", "payable"])]
return domain return domain
@ -168,6 +139,8 @@ class TrialBalanceReport(models.AbstractModel):
domain += [("partner_id", "in", partner_ids)] domain += [("partner_id", "in", partner_ids)]
if only_posted_moves: if only_posted_moves:
domain += [("move_id.state", "=", "posted")] domain += [("move_id.state", "=", "posted")]
else:
domain += [("move_id.state", "in", ["posted", "draft"])]
if show_partner_details: if show_partner_details:
domain += [("account_id.internal_type", "in", ["receivable", "payable"])] domain += [("account_id.internal_type", "in", ["receivable", "payable"])]
return domain return domain
@ -252,6 +225,25 @@ class TrialBalanceReport(models.AbstractModel):
) )
return total_amount return total_amount
@api.model
def _compute_acc_prt_amount(
self, total_amount, tb, acc_id, prt_id, foreign_currency
):
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
)
return total_amount
@api.model @api.model
def _compute_partner_amount( def _compute_partner_amount(
self, total_amount, tb_initial_prt, tb_period_prt, foreign_currency self, total_amount, tb_initial_prt, tb_period_prt, foreign_currency
@ -287,34 +279,14 @@ class TrialBalanceReport(models.AbstractModel):
{prt_id: {"id": prt_id, "name": tb["partner_id"][1]}} {prt_id: {"id": prt_id, "name": tb["partner_id"][1]}}
) )
if acc_id not in total_amount.keys(): 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
)
total_amount = self._compute_acc_prt_amount(
total_amount, tb, acc_id, prt_id, foreign_currency
)
partners_ids.add(tb["partner_id"]) partners_ids.add(tb["partner_id"])
elif prt_id not in total_amount[acc_id].keys(): 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
)
total_amount = self._compute_acc_prt_amount(
total_amount, tb, acc_id, prt_id, foreign_currency
)
partners_ids.add(tb["partner_id"]) partners_ids.add(tb["partner_id"])
else: else:
total_amount[acc_id][prt_id]["initial_balance"] += tb["balance"] total_amount[acc_id][prt_id]["initial_balance"] += tb["balance"]

4
account_financial_report/report/vat_report.py

@ -40,6 +40,8 @@ class VATReport(models.AbstractModel):
] ]
if only_posted_moves: if only_posted_moves:
domain += [("move_id.state", "=", "posted")] domain += [("move_id.state", "=", "posted")]
else:
domain += [("move_id.state", "in", ["posted", "draft"])]
return domain return domain
@api.model @api.model
@ -52,6 +54,8 @@ class VATReport(models.AbstractModel):
] ]
if only_posted_moves: if only_posted_moves:
domain += [("move_id.state", "=", "posted")] domain += [("move_id.state", "=", "posted")]
else:
domain += [("move_id.state", "in", ["posted", "draft"])]
return domain return domain
def _get_vat_report_data(self, company_id, date_from, date_to, only_posted_moves): def _get_vat_report_data(self, company_id, date_from, date_to, only_posted_moves):

15
account_financial_report/wizard/abstract_wizard.py

@ -34,3 +34,18 @@ class AbstractWizard(models.AbstractModel):
required=False, required=False,
string="Company", string="Company",
) )
def button_export_html(self):
self.ensure_one()
report_type = "qweb-html"
return self._export(report_type)
def button_export_pdf(self):
self.ensure_one()
report_type = "qweb-pdf"
return self._export(report_type)
def button_export_xlsx(self):
self.ensure_one()
report_type = "xlsx"
return self._export(report_type)

15
account_financial_report/wizard/aged_partner_balance_wizard.py

@ -127,21 +127,6 @@ class AgedPartnerBalanceWizard(models.TransientModel):
.report_action(self, data=data) .report_action(self, data=data)
) )
def button_export_html(self):
self.ensure_one()
report_type = "qweb-html"
return self._export(report_type)
def button_export_pdf(self):
self.ensure_one()
report_type = "qweb-pdf"
return self._export(report_type)
def button_export_xlsx(self):
self.ensure_one()
report_type = "xlsx"
return self._export(report_type)
def _prepare_report_aged_partner_balance(self): def _prepare_report_aged_partner_balance(self):
self.ensure_one() self.ensure_one()
return { return {

15
account_financial_report/wizard/general_ledger_wizard.py

@ -279,21 +279,6 @@ class GeneralLedgerReportWizard(models.TransientModel):
.report_action(self, data=data) .report_action(self, data=data)
) )
def button_export_html(self):
self.ensure_one()
report_type = "qweb-html"
return self._export(report_type)
def button_export_pdf(self):
self.ensure_one()
report_type = "qweb-pdf"
return self._export(report_type)
def button_export_xlsx(self):
self.ensure_one()
report_type = "xlsx"
return self._export(report_type)
def _prepare_report_general_ledger(self): def _prepare_report_general_ledger(self):
self.ensure_one() self.ensure_one()
return { return {

18
account_financial_report/wizard/journal_ledger_wizard.py

@ -94,20 +94,6 @@ class JournalLedgerReportWizard(models.TransientModel):
.report_action(self, data=data) .report_action(self, data=data)
) )
def button_export_html(self):
self.ensure_one()
report_type = "qweb-html"
return self._export(report_type)
def button_export_pdf(self):
report_type = "qweb-pdf"
return self._export(report_type)
def button_export_xlsx(self):
self.ensure_one()
report_type = "xlsx"
return self._export(report_type)
def _prepare_report_journal_ledger(self): def _prepare_report_journal_ledger(self):
self.ensure_one() self.ensure_one()
journals = self.journal_ids journals = self.journal_ids
@ -152,8 +138,8 @@ class JournalLedgerReportWizard(models.TransientModel):
@api.model @api.model
def _get_partner_name(self, partner_id, partner_data): def _get_partner_name(self, partner_id, partner_data):
if str(partner_id) in partner_data.keys():
return partner_data[str(partner_id)]["name"]
if partner_id in partner_data.keys():
return partner_data[partner_id]["name"]
else: else:
return "" return ""

15
account_financial_report/wizard/open_items_wizard.py

@ -148,21 +148,6 @@ class OpenItemsReportWizard(models.TransientModel):
.report_action(self, data=data) .report_action(self, data=data)
) )
def button_export_html(self):
self.ensure_one()
report_type = "qweb-html"
return self._export(report_type)
def button_export_pdf(self):
self.ensure_one()
report_type = "qweb-pdf"
return self._export(report_type)
def button_export_xlsx(self):
self.ensure_one()
report_type = "xlsx"
return self._export(report_type)
def _prepare_report_open_items(self): def _prepare_report_open_items(self):
self.ensure_one() self.ensure_one()
return { return {

15
account_financial_report/wizard/trial_balance_wizard.py

@ -247,21 +247,6 @@ class TrialBalanceReportWizard(models.TransientModel):
.report_action(self, data=data) .report_action(self, data=data)
) )
def button_export_html(self):
self.ensure_one()
report_type = "qweb-html"
return self._export(report_type)
def button_export_pdf(self):
self.ensure_one()
report_type = "qweb-pdf"
return self._export(report_type)
def button_export_xlsx(self):
self.ensure_one()
report_type = "xlsx"
return self._export(report_type)
def _prepare_report_trial_balance(self): def _prepare_report_trial_balance(self):
self.ensure_one() self.ensure_one()
return { return {

22
account_financial_report/wizard/vat_report_wizard.py

@ -8,13 +8,8 @@ from odoo.exceptions import ValidationError
class VATReportWizard(models.TransientModel): class VATReportWizard(models.TransientModel):
_name = "vat.report.wizard" _name = "vat.report.wizard"
_description = "VAT Report Wizard" _description = "VAT Report Wizard"
_inherit = "account_financial_report_abstract_wizard"
company_id = fields.Many2one(
comodel_name="res.company",
default=lambda self: self.env.company.id,
required=False,
string="Company",
)
date_range_id = fields.Many2one(comodel_name="date.range", string="Date range") date_range_id = fields.Many2one(comodel_name="date.range", string="Date range")
date_from = fields.Date("Start Date", required=True) date_from = fields.Date("Start Date", required=True)
date_to = fields.Date("End Date", required=True) date_to = fields.Date("End Date", required=True)
@ -88,21 +83,6 @@ class VATReportWizard(models.TransientModel):
.report_action(self, data=data) .report_action(self, data=data)
) )
def button_export_html(self):
self.ensure_one()
report_type = "qweb-html"
return self._export(report_type)
def button_export_pdf(self):
self.ensure_one()
report_type = "qweb-pdf"
return self._export(report_type)
def button_export_xlsx(self):
self.ensure_one()
report_type = "xlsx"
return self._export(report_type)
def _prepare_vat_report(self): def _prepare_vat_report(self):
self.ensure_one() self.ensure_one()
return { return {

Loading…
Cancel
Save