[MIG] account_financial_report: Finalize migration to 12.0
* Move back to CSS and FIX NameError: variable @odoo-view-background-color is undefined in - on line 99, column 23: 98 .o_account_financial_reports_page { 99 background-color: @odoo-view-background-color; 100 color: @odoo-main-text-color; * Porting: parent_left does not exist anymore. Using parent_path + account code to sort report lines * FIX js error with date object not converted to string while clicking on initial balance amount See https://user-images.githubusercontent.com/1033131/58337566-5d525c80-7e46-11e9-913a-3c3e0115fb3e.gif * IMP style and metadata * FIX tests about new date format and partner_id computed field of account.move * FIX errors like 2019-06-03 16:11:51,406 17857 ERROR dev_12_account_financial_report odoo.sql_db: bad query: b"\nDELETE FROM 'report_vat_report_tax'\nWHERE COALESCE(\n write_date, create_date, (now() at time zone 'UTC'))::timestamp\n < ((now() at time zone 'UTC') - interval '3600.0 seconds')\n" ERROR: syntax error at or near "'report_vat_report_tax'" LINE 2: DELETE FROM 'report_vat_report_tax' ^ * IMP translation template and IMP Italian translation * Remove useless comments * Use AsIs to avoid SQL injection * Use fields.Date methods * Remove useless data from tests * Improve comments * Fix wizard.multi.charts.accounts * Move _get_partner_ids_domain to abstract wizard * Refactor default partners in wizard to use recordsets * Improve js stylepull/749/head
parent
a54d7422d1
commit
f3ab79a9e9
|
@ -14,13 +14,13 @@ Account Financial Reports
|
|||
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
|
||||
:alt: License: AGPL-3
|
||||
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Faccount--financial--reporting-lightgray.png?logo=github
|
||||
:target: https://github.com/OCA/account-financial-reporting/tree/11.0/account_financial_report
|
||||
:target: https://github.com/OCA/account-financial-reporting/tree/12.0/account_financial_report
|
||||
:alt: OCA/account-financial-reporting
|
||||
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
|
||||
:target: https://translation.odoo-community.org/projects/account-financial-reporting-11-0/account-financial-reporting-11-0-account_financial_report
|
||||
:target: https://translation.odoo-community.org/projects/account-financial-reporting-12-0/account-financial-reporting-12-0-account_financial_report
|
||||
:alt: Translate me on Weblate
|
||||
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
|
||||
:target: https://runbot.odoo-community.org/runbot/91/11.0
|
||||
:target: https://runbot.odoo-community.org/runbot/91/12.0
|
||||
:alt: Try me on Runbot
|
||||
|
||||
|badge1| |badge2| |badge3| |badge4| |badge5|
|
||||
|
@ -76,7 +76,7 @@ Bug Tracker
|
|||
Bugs are tracked on `GitHub Issues <https://github.com/OCA/account-financial-reporting/issues>`_.
|
||||
In case of trouble, please check there if your issue has already been reported.
|
||||
If you spotted it first, help us smashing it by providing a detailed and welcomed
|
||||
`feedback <https://github.com/OCA/account-financial-reporting/issues/new?body=module:%20account_financial_report%0Aversion:%2011.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
|
||||
`feedback <https://github.com/OCA/account-financial-reporting/issues/new?body=module:%20account_financial_report%0Aversion:%2012.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
|
||||
|
||||
Do not contact contributors directly about support or help with technical issues.
|
||||
|
||||
|
@ -105,7 +105,7 @@ Contributors
|
|||
* Robert Rottermann <robert@redcor.ch>
|
||||
* Ciro Urselli <c.urselli@apuliasoftware.it>
|
||||
* Francesco Apruzzese <opencode@e-ware.org>
|
||||
* Lorenzo Battistini <lorenzo.battistini@agilebg.com>
|
||||
* Lorenzo Battistini <https://github.com/eLBati>
|
||||
* Julien Coux <julien.coux@camptocamp.com>
|
||||
* Akim Juillerat <akim.juillerat@camptocamp.com>
|
||||
* Alexis de Lattre <alexis@via.ecp.fr>
|
||||
|
@ -128,6 +128,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose
|
|||
mission is to support the collaborative development of Odoo features and
|
||||
promote its widespread use.
|
||||
|
||||
This module is part of the `OCA/account-financial-reporting <https://github.com/OCA/account-financial-reporting/tree/11.0/account_financial_report>`_ project on GitHub.
|
||||
This module is part of the `OCA/account-financial-reporting <https://github.com/OCA/account-financial-reporting/tree/12.0/account_financial_report>`_ project on GitHub.
|
||||
|
||||
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -50,53 +50,4 @@
|
|||
sequence="50"
|
||||
/>
|
||||
|
||||
<!-- Hide odoo PDF reports menu -->
|
||||
<menuitem
|
||||
id="account.menu_finance_legal_statement"
|
||||
name="PDF Reports"
|
||||
parent="account.menu_finance_reports"
|
||||
groups="base.group_erp_manager"
|
||||
/>
|
||||
|
||||
<!--
|
||||
<menuitem
|
||||
id="account.menu_general_ledger"
|
||||
name="General Ledger"
|
||||
parent="account.menu_finance_legal_statement"
|
||||
action="account.action_account_general_ledger_menu"
|
||||
groups="base.group_erp_manager"
|
||||
/>
|
||||
|
||||
<menuitem
|
||||
id="account.menu_general_Balance_report"
|
||||
name="Trial Balance"
|
||||
parent="account.menu_finance_legal_statement"
|
||||
action="account.action_account_balance_menu"
|
||||
groups="base.group_erp_manager"
|
||||
/>
|
||||
|
||||
<menuitem
|
||||
id="account.menu_account_report_bs"
|
||||
name="Balance Sheet"
|
||||
action="account.action_account_report_bs"
|
||||
parent="account.menu_finance_legal_statement"
|
||||
groups="base.group_erp_manager"
|
||||
/>
|
||||
|
||||
<menuitem
|
||||
id="account.menu_account_report_pl"
|
||||
name="Profit and Loss"
|
||||
action="account.action_account_report_pl"
|
||||
parent="account.menu_finance_legal_statement"
|
||||
groups="base.group_erp_manager"
|
||||
/>
|
||||
|
||||
<menuitem
|
||||
id="account.menu_aged_trial_balance"
|
||||
name="Aged Partner Balance"
|
||||
action="account.action_account_aged_balance_view"
|
||||
parent="account.menu_finance_legal_statement"
|
||||
groups="base.group_erp_manager"
|
||||
/>-->
|
||||
|
||||
</odoo>
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
* Robert Rottermann <robert@redcor.ch>
|
||||
* Ciro Urselli <c.urselli@apuliasoftware.it>
|
||||
* Francesco Apruzzese <opencode@e-ware.org>
|
||||
* Lorenzo Battistini <lorenzo.battistini@agilebg.com>
|
||||
* Lorenzo Battistini <https://github.com/eLBati>
|
||||
* Julien Coux <julien.coux@camptocamp.com>
|
||||
* Akim Juillerat <akim.juillerat@camptocamp.com>
|
||||
* Alexis de Lattre <alexis@via.ecp.fr>
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
from odoo import models
|
||||
from psycopg2.extensions import AsIs
|
||||
|
||||
|
||||
class AbstractReport(models.AbstractModel):
|
||||
|
@ -13,10 +14,10 @@ class AbstractReport(models.AbstractModel):
|
|||
"Model %s is not transient, it cannot be vacuumed!" % self._name
|
||||
# Never delete rows used in last 5 minutes
|
||||
seconds = max(seconds, 300)
|
||||
query = """
|
||||
DELETE FROM %s
|
||||
WHERE COALESCE(
|
||||
write_date, create_date, (now() at time zone 'UTC'))::timestamp
|
||||
< ((now() at time zone 'UTC') - interval %s)
|
||||
"""
|
||||
self.env.cr.execute(query, (self._table, "%s seconds" % seconds,))
|
||||
query = (
|
||||
"DELETE FROM %s"
|
||||
" WHERE COALESCE("
|
||||
"write_date, create_date, (now() at time zone 'UTC'))"
|
||||
"::timestamp < ((now() at time zone 'UTC') - interval %s)"
|
||||
)
|
||||
self.env.cr.execute(query, (AsIs(self._table), "%s seconds" % seconds))
|
||||
|
|
|
@ -2,8 +2,7 @@
|
|||
# Author: Julien Coux
|
||||
# Copyright 2016 Camptocamp SA
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||||
from odoo import models
|
||||
from odoo.tools import DEFAULT_SERVER_DATE_FORMAT
|
||||
from odoo import models, fields
|
||||
import datetime
|
||||
|
||||
|
||||
|
@ -191,7 +190,7 @@ class AbstractReportXslx(models.AbstractModel):
|
|||
for col_pos, column in self.columns.items():
|
||||
value = getattr(line_object, column['field'])
|
||||
if isinstance(value, datetime.date):
|
||||
value = datetime.datetime.strftime(value, DEFAULT_SERVER_DATE_FORMAT)
|
||||
value = fields.Date.to_string(value)
|
||||
cell_type = column.get('type', 'string')
|
||||
if cell_type == 'many2one':
|
||||
self.sheet.write_string(
|
||||
|
|
|
@ -224,7 +224,8 @@ class GeneralLedgerReportCompute(models.TransientModel):
|
|||
'report_general_ledger_qweb'
|
||||
return self.env['ir.actions.report'].search(
|
||||
[('report_name', '=', report_name),
|
||||
('report_type', '=', report_type)], limit=1).report_action(self, config=False)
|
||||
('report_type', '=', report_type)],
|
||||
limit=1).report_action(self, config=False)
|
||||
|
||||
def _get_html(self):
|
||||
result = {}
|
||||
|
|
|
@ -594,7 +594,8 @@ class ReportJournalLedger(models.TransientModel):
|
|||
'report_journal_ledger_qweb'
|
||||
return self.env['ir.actions.report'].search(
|
||||
[('report_name', '=', report_name),
|
||||
('report_type', '=', report_type)], limit=1).report_action(self, config=False)
|
||||
('report_type', '=', report_type)],
|
||||
limit=1).report_action(self, config=False)
|
||||
|
||||
def _get_html(self):
|
||||
result = {}
|
||||
|
|
|
@ -160,7 +160,8 @@ class OpenItemsReportCompute(models.TransientModel):
|
|||
'report_open_items_qweb'
|
||||
return self.env['ir.actions.report'].search(
|
||||
[('report_name', '=', report_name),
|
||||
('report_type', '=', report_type)], limit=1).report_action(self, config=False)
|
||||
('report_type', '=', report_type)],
|
||||
limit=1).report_action(self, config=False)
|
||||
|
||||
def _get_html(self):
|
||||
result = {}
|
||||
|
@ -638,21 +639,6 @@ ORDER BY
|
|||
self._compute_account_cumul()
|
||||
|
||||
def _compute_partner_cumul(self):
|
||||
# pylint: disable=sql-injection
|
||||
where_condition_partner_by_account = """
|
||||
WHERE
|
||||
id IN
|
||||
(
|
||||
SELECT
|
||||
rp.id
|
||||
FROM
|
||||
report_open_items_account ra
|
||||
INNER JOIN
|
||||
report_open_items_partner rp
|
||||
ON ra.id = rp.report_account_id
|
||||
WHERE
|
||||
ra.report_id = %s
|
||||
)"""
|
||||
query_computer_partner_residual_cumul = """
|
||||
UPDATE
|
||||
report_open_items_partner
|
||||
|
@ -666,7 +652,20 @@ SET
|
|||
WHERE
|
||||
rml.report_partner_id = report_open_items_partner.id
|
||||
)
|
||||
""" + where_condition_partner_by_account
|
||||
WHERE
|
||||
id IN
|
||||
(
|
||||
SELECT
|
||||
rp.id
|
||||
FROM
|
||||
report_open_items_account ra
|
||||
INNER JOIN
|
||||
report_open_items_partner rp
|
||||
ON ra.id = rp.report_account_id
|
||||
WHERE
|
||||
ra.report_id = %s
|
||||
)
|
||||
"""
|
||||
params_compute_partners_residual_cumul = (self.id,)
|
||||
self.env.cr.execute(query_computer_partner_residual_cumul,
|
||||
params_compute_partners_residual_cumul)
|
||||
|
@ -684,13 +683,6 @@ SET
|
|||
WHERE
|
||||
rml.report_partner_id = report_open_items_partner.id
|
||||
)
|
||||
""" + where_condition_partner_by_account
|
||||
params_compute_partner_due_cumul = (self.id,)
|
||||
self.env.cr.execute(query_compute_partners_due_cumul,
|
||||
params_compute_partner_due_cumul)
|
||||
|
||||
# Manage currency in partner
|
||||
where_condition_partner_by_account_cur = """
|
||||
WHERE
|
||||
id IN
|
||||
(
|
||||
|
@ -702,9 +694,14 @@ WHERE
|
|||
report_open_items_partner rp
|
||||
ON ra.id = rp.report_account_id
|
||||
WHERE
|
||||
ra.report_id = %s AND ra.currency_id IS NOT NULL
|
||||
ra.report_id = %s
|
||||
)
|
||||
"""
|
||||
"""
|
||||
params_compute_partner_due_cumul = (self.id,)
|
||||
self.env.cr.execute(query_compute_partners_due_cumul,
|
||||
params_compute_partner_due_cumul)
|
||||
|
||||
# Manage currency in partner
|
||||
query_compute_partners_cur_id_cumul = """
|
||||
UPDATE
|
||||
report_open_items_partner
|
||||
|
@ -718,7 +715,20 @@ SET
|
|||
WHERE
|
||||
rml.report_partner_id = report_open_items_partner.id
|
||||
)
|
||||
""" + where_condition_partner_by_account_cur
|
||||
WHERE
|
||||
id IN
|
||||
(
|
||||
SELECT
|
||||
rp.id
|
||||
FROM
|
||||
report_open_items_account ra
|
||||
INNER JOIN
|
||||
report_open_items_partner rp
|
||||
ON ra.id = rp.report_account_id
|
||||
WHERE
|
||||
ra.report_id = %s AND ra.currency_id IS NOT NULL
|
||||
)
|
||||
"""
|
||||
params_compute_partners_cur_id_cumul = (self.id,)
|
||||
self.env.cr.execute(query_compute_partners_cur_id_cumul,
|
||||
params_compute_partners_cur_id_cumul)
|
||||
|
@ -737,7 +747,20 @@ SET
|
|||
WHERE
|
||||
rml.report_partner_id = report_open_items_partner.id
|
||||
)
|
||||
""" + where_condition_partner_by_account_cur
|
||||
WHERE
|
||||
id IN
|
||||
(
|
||||
SELECT
|
||||
rp.id
|
||||
FROM
|
||||
report_open_items_account ra
|
||||
INNER JOIN
|
||||
report_open_items_partner rp
|
||||
ON ra.id = rp.report_account_id
|
||||
WHERE
|
||||
ra.report_id = %s AND ra.currency_id IS NOT NULL
|
||||
)
|
||||
"""
|
||||
params_compute_partners_cur_residual_cumul = (self.id,)
|
||||
self.env.cr.execute(query_compute_partners_cur_residual_cumul,
|
||||
params_compute_partners_cur_residual_cumul)
|
||||
|
@ -756,7 +779,20 @@ SET
|
|||
WHERE
|
||||
rml.report_partner_id = report_open_items_partner.id
|
||||
)
|
||||
""" + where_condition_partner_by_account_cur
|
||||
WHERE
|
||||
id IN
|
||||
(
|
||||
SELECT
|
||||
rp.id
|
||||
FROM
|
||||
report_open_items_account ra
|
||||
INNER JOIN
|
||||
report_open_items_partner rp
|
||||
ON ra.id = rp.report_account_id
|
||||
WHERE
|
||||
ra.report_id = %s AND ra.currency_id IS NOT NULL
|
||||
)
|
||||
"""
|
||||
params_compute_partners_cur_due_cumul = (self.id,)
|
||||
self.env.cr.execute(query_compute_partners_cur_due_cumul,
|
||||
params_compute_partners_cur_due_cumul)
|
||||
|
|
|
@ -189,7 +189,7 @@
|
|||
<t t-if="type == 'account_type'">
|
||||
<t t-set="domain"
|
||||
t-value="[('account_id', '=', account_or_partner_object.account_id.id),
|
||||
('date', '<', o.date_from),
|
||||
('date', '<', o.date_from.strftime('%Y-%m-%d')),
|
||||
('debit', '<>', 0)]"/>
|
||||
<span>
|
||||
<a t-att-data-domain="domain"
|
||||
|
@ -203,7 +203,7 @@
|
|||
<t t-set="domain"
|
||||
t-value="[('account_id', '=', account_or_partner_object.report_account_id.account_id.id),
|
||||
('partner_id', '=', account_or_partner_object.partner_id.id),
|
||||
('date', '<', o.date_from),
|
||||
('date', '<', o.date_from.strftime('%Y-%m-%d')),
|
||||
('debit', '<>', 0)]"/>
|
||||
<span>
|
||||
<a t-att-data-domain="domain"
|
||||
|
@ -219,7 +219,7 @@
|
|||
<t t-if="type == 'account_type'">
|
||||
<t t-set="domain"
|
||||
t-value="[('account_id', '=', account_or_partner_object.account_id.id),
|
||||
('date', '<', o.date_from),
|
||||
('date', '<', o.date_from.strftime('%Y-%m-%d')),
|
||||
('credit', '<>', 0)]"/>
|
||||
<span>
|
||||
<a t-att-data-domain="domain"
|
||||
|
@ -233,7 +233,7 @@
|
|||
<t t-set="domain"
|
||||
t-value="[('account_id', '=', account_or_partner_object.report_account_id.account_id.id),
|
||||
('partner_id', '=', account_or_partner_object.partner_id.id),
|
||||
('date', '<', o.date_from),
|
||||
('date', '<', o.date_from.strftime('%Y-%m-%d')),
|
||||
('credit', '<>', 0)]"/>
|
||||
<span>
|
||||
<a t-att-data-domain="domain"
|
||||
|
@ -249,7 +249,7 @@
|
|||
<t t-if="type == 'account_type'">
|
||||
<t t-set="domain"
|
||||
t-value="[('account_id', '=', account_or_partner_object.account_id.id),
|
||||
('date', '<', o.date_from)]"/>
|
||||
('date', '<', o.date_from.strftime('%Y-%m-%d'))]"/>
|
||||
<span>
|
||||
<a t-att-data-domain="domain"
|
||||
t-att-data-res-model="'account.move.line'"
|
||||
|
@ -262,7 +262,7 @@
|
|||
<t t-set="domain"
|
||||
t-value="[('account_id', '=', account_or_partner_object.report_account_id.account_id.id),
|
||||
('partner_id', '=', account_or_partner_object.partner_id.id),
|
||||
('date', '<', o.date_from)]"/>
|
||||
('date', '<', o.date_from.strftime('%Y-%m-%d'))]"/>
|
||||
<span>
|
||||
<a t-att-data-domain="domain"
|
||||
t-att-data-res-model="'account.move.line'"
|
||||
|
|
|
@ -246,7 +246,7 @@
|
|||
<t t-if="line.account_id">
|
||||
<t t-set="domain"
|
||||
t-value="[('account_id', '=', line.account_id.id),
|
||||
('date', '<', o.date_from)]"/>
|
||||
('date', '<', o.date_from.strftime('%Y-%m-%d'))]"/>
|
||||
<span>
|
||||
<a t-att-data-domain="domain"
|
||||
t-att-data-res-model="'account.move.line'"
|
||||
|
@ -258,7 +258,7 @@
|
|||
<t t-if="line.account_group_id">
|
||||
<t t-set="domain"
|
||||
t-value="[('account_id', 'in', line.compute_account_ids.ids),
|
||||
('date', '<', o.date_from)]"/>
|
||||
('date', '<', o.date_from.strftime('%Y-%m-%d'))]"/>
|
||||
<span>
|
||||
<a t-att-data-domain="domain"
|
||||
t-att-data-res-model="'account.move.line'"
|
||||
|
@ -272,7 +272,7 @@
|
|||
<t t-set="domain"
|
||||
t-value="[('account_id', '=', line.report_account_id.account_id.id),
|
||||
('partner_id', '=', line.partner_id.id),
|
||||
('date', '<', o.date_from)]"/>
|
||||
('date', '<', o.date_from.strftime('%Y-%m-%d'))]"/>
|
||||
<span>
|
||||
<a t-att-data-domain="domain"
|
||||
t-att-data-res-model="'account.move.line'"
|
||||
|
@ -288,8 +288,8 @@
|
|||
<t t-if="line.account_id">
|
||||
<t t-set="domain"
|
||||
t-value="[('account_id', '=', line.account_id.id),
|
||||
('date', '>=', line.report_id.date_from),
|
||||
('date', '<=', line.report_id.date_to),
|
||||
('date', '>=', line.report_id.date_from.strftime('%Y-%m-%d')),
|
||||
('date', '<=', line.report_id.date_to.strftime('%Y-%m-%d')),
|
||||
('debit', '<>', 0)]"/>
|
||||
<span>
|
||||
<a t-att-data-domain="domain"
|
||||
|
@ -302,8 +302,8 @@
|
|||
<t t-if="line.account_group_id">
|
||||
<t t-set="domain"
|
||||
t-value="[('account_id', 'in', line.compute_account_ids.ids),
|
||||
('date', '>=', line.report_id.date_from),
|
||||
('date', '<=', line.report_id.date_to),
|
||||
('date', '>=', line.report_id.date_from.strftime('%Y-%m-%d')),
|
||||
('date', '<=', line.report_id.date_to.strftime('%Y-%m-%d')),
|
||||
('debit', '<>', 0)]"/>
|
||||
<span>
|
||||
<a t-att-data-domain="domain"
|
||||
|
@ -318,8 +318,8 @@
|
|||
<t t-set="domain"
|
||||
t-value="[('account_id', '=', line.report_account_id.account_id.id),
|
||||
('partner_id', '=', line.partner_id.id),
|
||||
('date', '>=', line.report_account_id.report_id.date_from),
|
||||
('date', '<=', line.report_account_id.report_id.date_to),
|
||||
('date', '>=', line.report_account_id.report_id.date_from.strftime('%Y-%m-%d')),
|
||||
('date', '<=', line.report_account_id.report_id.date_to.strftime('%Y-%m-%d')),
|
||||
('debit', '<>', 0)]"/>
|
||||
<span>
|
||||
<a t-att-data-domain="domain"
|
||||
|
@ -336,8 +336,8 @@
|
|||
<t t-if="line.account_id">
|
||||
<t t-set="domain"
|
||||
t-value="[('account_id', '=', line.account_id.id),
|
||||
('date', '>=', line.report_id.date_from),
|
||||
('date', '<=', line.report_id.date_to),
|
||||
('date', '>=', line.report_id.date_from.strftime('%Y-%m-%d')),
|
||||
('date', '<=', line.report_id.date_to.strftime('%Y-%m-%d')),
|
||||
('credit', '<>', 0)]"/>
|
||||
<span>
|
||||
<a t-att-data-domain="domain"
|
||||
|
@ -350,8 +350,8 @@
|
|||
<t t-if="line.account_group_id">
|
||||
<t t-set="domain"
|
||||
t-value="[('account_id', 'in', line.compute_account_ids.ids),
|
||||
('date', '>=', line.report_id.date_from),
|
||||
('date', '<=', line.report_id.date_to),
|
||||
('date', '>=', line.report_id.date_from.strftime('%Y-%m-%d')),
|
||||
('date', '<=', line.report_id.date_to.strftime('%Y-%m-%d')),
|
||||
('credit', '<>', 0)]"/>
|
||||
<span>
|
||||
<a t-att-data-domain="domain"
|
||||
|
@ -366,8 +366,8 @@
|
|||
<t t-set="domain"
|
||||
t-value="[('account_id', '=', line.report_account_id.account_id.id),
|
||||
('partner_id', '=', line.partner_id.id),
|
||||
('date', '>=', line.report_account_id.report_id.date_from),
|
||||
('date', '<=', line.report_account_id.report_id.date_to),
|
||||
('date', '>=', line.report_account_id.report_id.date_from.strftime('%Y-%m-%d')),
|
||||
('date', '<=', line.report_account_id.report_id.date_to.strftime('%Y-%m-%d')),
|
||||
('credit', '<>', 0)]"/>
|
||||
<span>
|
||||
<a t-att-data-domain="domain"
|
||||
|
@ -384,8 +384,8 @@
|
|||
<t t-if="line.account_id">
|
||||
<t t-set="domain"
|
||||
t-value="[('account_id', '=', line.account_id.id),
|
||||
('date', '>=', line.report_id.date_from),
|
||||
('date', '<=', line.report_id.date_to)]"/>
|
||||
('date', '>=', line.report_id.date_from.strftime('%Y-%m-%d')),
|
||||
('date', '<=', line.report_id.date_to.strftime('%Y-%m-%d'))]"/>
|
||||
<span>
|
||||
<a t-att-data-domain="domain"
|
||||
t-att-data-res-model="'account.move.line'"
|
||||
|
@ -397,8 +397,8 @@
|
|||
<t t-if="line.account_group_id">
|
||||
<t t-set="domain"
|
||||
t-value="[('account_id', 'in', line.compute_account_ids.ids),
|
||||
('date', '>=', line.report_id.date_from),
|
||||
('date', '<=', line.report_id.date_to)]"/>
|
||||
('date', '>=', line.report_id.date_from.strftime('%Y-%m-%d')),
|
||||
('date', '<=', line.report_id.date_to.strftime('%Y-%m-%d'))]"/>
|
||||
<span>
|
||||
<a t-att-data-domain="domain"
|
||||
t-att-data-res-model="'account.move.line'"
|
||||
|
@ -412,8 +412,8 @@
|
|||
<t t-set="domain"
|
||||
t-value="[('account_id', '=', line.report_account_id.account_id.id),
|
||||
('partner_id', '=', line.partner_id.id),
|
||||
('date', '>=', line.report_account_id.report_id.date_from),
|
||||
('date', '<=', line.report_account_id.report_id.date_to)]"/>
|
||||
('date', '>=', line.report_account_id.report_id.date_from.strftime('%Y-%m-%d')),
|
||||
('date', '<=', line.report_account_id.report_id.date_to.strftime('%Y-%m-%d'))]"/>
|
||||
<span>
|
||||
<a t-att-data-domain="domain"
|
||||
t-att-data-res-model="'account.move.line'"
|
||||
|
@ -576,7 +576,7 @@
|
|||
<div class="act_as_cell amount" style="width: 9.64%;">
|
||||
<t t-set="domain"
|
||||
t-value="[('account_id', '=', account.account_id.id),
|
||||
('date', '<', o.date_from)]"/>
|
||||
('date', '<', o.date_from.strftime('%Y-%m-%d'))]"/>
|
||||
<span>
|
||||
<a t-att-data-domain="domain"
|
||||
t-att-data-res-model="'account.move.line'"
|
||||
|
@ -589,8 +589,8 @@
|
|||
<div class="act_as_cell amount" style="width: 9.64%;">
|
||||
<t t-set="domain"
|
||||
t-value="[('account_id', '=', account.account_id.id),
|
||||
('date', '>=', account.report_id.date_from),
|
||||
('date', '<=', account.report_id.date_to),
|
||||
('date', '>=', account.report_id.date_from.strftime('%Y-%m-%d')),
|
||||
('date', '<=', account.report_id.date_to.strftime('%Y-%m-%d')),
|
||||
('debit', '<>', 0)]"/>
|
||||
<span>
|
||||
<a t-att-data-domain="domain"
|
||||
|
@ -604,8 +604,8 @@
|
|||
<div class="act_as_cell amount" style="width: 9.64%;">
|
||||
<t t-set="domain"
|
||||
t-value="[('account_id', '=', account.account_id.id),
|
||||
('date', '>=', account.report_id.date_from),
|
||||
('date', '<=', account.report_id.date_to),
|
||||
('date', '>=', account.report_id.date_from.strftime('%Y-%m-%d')),
|
||||
('date', '<=', account.report_id.date_to.strftime('%Y-%m-%d')),
|
||||
('credit', '<>', 0)]"/>
|
||||
<span>
|
||||
<a t-att-data-domain="domain"
|
||||
|
@ -619,8 +619,8 @@
|
|||
<div class="act_as_cell amount" style="width: 9.64%;">
|
||||
<t t-set="domain"
|
||||
t-value="[('account_id', '=', account.account_id.id),
|
||||
('date', '>=', account.report_id.date_from),
|
||||
('date', '<=', account.report_id.date_to),
|
||||
('date', '>=', account.report_id.date_from.strftime('%Y-%m-%d')),
|
||||
('date', '<=', account.report_id.date_to.strftime('%Y-%m-%d')),
|
||||
('period_balance', '<>', 0)]"/>
|
||||
<span>
|
||||
<a t-att-data-domain="domain"
|
||||
|
@ -654,7 +654,7 @@
|
|||
<div class="act_as_cell amount" style="width: 8.86%;">
|
||||
<t t-set="domain"
|
||||
t-value="[('account_id', '=', account.account_id.id),
|
||||
('date', '<', o.date_from)]"/>
|
||||
('date', '<', o.date_from.strftime('%Y-%m-%d'))]"/>
|
||||
<span>
|
||||
<a t-att-data-domain="domain"
|
||||
t-att-data-res-model="'account.move.line'"
|
||||
|
|
|
@ -74,8 +74,10 @@ class TrialBalanceReportAccount(models.TransientModel):
|
|||
index=True
|
||||
)
|
||||
hide_line = fields.Boolean(compute='_compute_hide_line')
|
||||
# Data fields, used to keep link with real object
|
||||
sequence = fields.Integer(index=True, default=1)
|
||||
# Data fields, used to keep link with real object.
|
||||
# Sequence is a Char later built with 'parent_path' for groups
|
||||
# and parent_path + account code for accounts
|
||||
sequence = fields.Char(index=True, default='1')
|
||||
level = fields.Integer(index=True, default=1)
|
||||
|
||||
# Data fields, used to keep link with real object
|
||||
|
@ -209,7 +211,8 @@ class TrialBalanceReportCompute(models.TransientModel):
|
|||
'report_trial_balance_qweb'
|
||||
return self.env['ir.actions.report'].search(
|
||||
[('report_name', '=', report_name),
|
||||
('report_type', '=', report_type)], limit=1).report_action(self, config=False)
|
||||
('report_type', '=', report_type)],
|
||||
limit=1).report_action(self, config=False)
|
||||
|
||||
def _get_html(self):
|
||||
result = {}
|
||||
|
@ -410,7 +413,7 @@ SELECT
|
|||
accgroup.parent_id,
|
||||
coalesce(accgroup.code_prefix, accgroup.name),
|
||||
accgroup.name,
|
||||
accgroup.id * 100000,
|
||||
accgroup.parent_path,
|
||||
accgroup.level
|
||||
FROM
|
||||
account_group accgroup"""
|
||||
|
@ -557,7 +560,7 @@ WHERE report_trial_balance_account.account_group_id = accgroup.id
|
|||
"""Compute sequence, level for report_trial_balance_account account."""
|
||||
query_update_account_group = """
|
||||
UPDATE report_trial_balance_account
|
||||
SET sequence = newline.sequence + 1,
|
||||
SET sequence = CONCAT(newline.sequence, newline.code),
|
||||
level = newline.level + 1
|
||||
FROM report_trial_balance_account as newline
|
||||
WHERE newline.account_group_id = report_trial_balance_account.parent_id
|
||||
|
|
|
@ -367,7 +367,7 @@ ul.auto-toc {
|
|||
!! This file is generated by oca-gen-addon-readme !!
|
||||
!! changes will be overwritten. !!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
||||
<p><a class="reference external" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external" href="https://github.com/OCA/account-financial-reporting/tree/11.0/account_financial_report"><img alt="OCA/account-financial-reporting" src="https://img.shields.io/badge/github-OCA%2Faccount--financial--reporting-lightgray.png?logo=github" /></a> <a class="reference external" href="https://translation.odoo-community.org/projects/account-financial-reporting-11-0/account-financial-reporting-11-0-account_financial_report"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external" href="https://runbot.odoo-community.org/runbot/91/11.0"><img alt="Try me on Runbot" src="https://img.shields.io/badge/runbot-Try%20me-875A7B.png" /></a></p>
|
||||
<p><a class="reference external" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external" href="https://github.com/OCA/account-financial-reporting/tree/12.0/account_financial_report"><img alt="OCA/account-financial-reporting" src="https://img.shields.io/badge/github-OCA%2Faccount--financial--reporting-lightgray.png?logo=github" /></a> <a class="reference external" href="https://translation.odoo-community.org/projects/account-financial-reporting-12-0/account-financial-reporting-12-0-account_financial_report"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external" href="https://runbot.odoo-community.org/runbot/91/12.0"><img alt="Try me on Runbot" src="https://img.shields.io/badge/runbot-Try%20me-875A7B.png" /></a></p>
|
||||
<p>This module adds a set of financial reports. They are accessible under
|
||||
Accounting / Reporting / OCA Reports.</p>
|
||||
<ul class="simple">
|
||||
|
@ -431,7 +431,7 @@ currency balances are not available.</p>
|
|||
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/account-financial-reporting/issues">GitHub Issues</a>.
|
||||
In case of trouble, please check there if your issue has already been reported.
|
||||
If you spotted it first, help us smashing it by providing a detailed and welcomed
|
||||
<a class="reference external" href="https://github.com/OCA/account-financial-reporting/issues/new?body=module:%20account_financial_report%0Aversion:%2011.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
|
||||
<a class="reference external" href="https://github.com/OCA/account-financial-reporting/issues/new?body=module:%20account_financial_report%0Aversion:%2012.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
|
||||
<p>Do not contact contributors directly about support or help with technical issues.</p>
|
||||
</div>
|
||||
<div class="section" id="credits">
|
||||
|
@ -459,7 +459,7 @@ If you spotted it first, help us smashing it by providing a detailed and welcome
|
|||
<li>Robert Rottermann <<a class="reference external" href="mailto:robert@redcor.ch">robert@redcor.ch</a>></li>
|
||||
<li>Ciro Urselli <<a class="reference external" href="mailto:c.urselli@apuliasoftware.it">c.urselli@apuliasoftware.it</a>></li>
|
||||
<li>Francesco Apruzzese <<a class="reference external" href="mailto:opencode@e-ware.org">opencode@e-ware.org</a>></li>
|
||||
<li>Lorenzo Battistini <<a class="reference external" href="mailto:lorenzo.battistini@agilebg.com">lorenzo.battistini@agilebg.com</a>></li>
|
||||
<li>Lorenzo Battistini <<a class="reference external" href="https://github.com/eLBati">https://github.com/eLBati</a>></li>
|
||||
<li>Julien Coux <<a class="reference external" href="mailto:julien.coux@camptocamp.com">julien.coux@camptocamp.com</a>></li>
|
||||
<li>Akim Juillerat <<a class="reference external" href="mailto:akim.juillerat@camptocamp.com">akim.juillerat@camptocamp.com</a>></li>
|
||||
<li>Alexis de Lattre <<a class="reference external" href="mailto:alexis@via.ecp.fr">alexis@via.ecp.fr</a>></li>
|
||||
|
@ -476,7 +476,7 @@ April 2016.</p>
|
|||
<p>OCA, or the Odoo Community Association, is a nonprofit organization whose
|
||||
mission is to support the collaborative development of Odoo features and
|
||||
promote its widespread use.</p>
|
||||
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/account-financial-reporting/tree/11.0/account_financial_report">OCA/account-financial-reporting</a> project on GitHub.</p>
|
||||
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/account-financial-reporting/tree/12.0/account_financial_report">OCA/account-financial-reporting</a> project on GitHub.</p>
|
||||
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -95,8 +95,6 @@
|
|||
}
|
||||
|
||||
.o_account_financial_reports_page {
|
||||
background-color: @odoo-view-background-color;
|
||||
color: @odoo-main-text-color;
|
||||
padding-top: 10px;
|
||||
width: 90%;
|
||||
margin-right: auto;
|
|
@ -6,7 +6,7 @@ odoo.define('account_financial_report.account_financial_report_backend', functio
|
|||
var ControlPanelMixin = require('web.ControlPanelMixin');
|
||||
var ReportWidget = require(
|
||||
'account_financial_report.account_financial_report_widget'
|
||||
);
|
||||
);
|
||||
|
||||
|
||||
var report_backend = Widget.extend(ControlPanelMixin, {
|
||||
|
@ -27,7 +27,7 @@ odoo.define('account_financial_report.account_financial_report_backend', functio
|
|||
action.params.active_id;
|
||||
this.given_context.model = action.context.active_model || false;
|
||||
this.given_context.ttype = action.context.ttype || false;
|
||||
return this._super.apply (this, arguments);
|
||||
return this._super.apply(this, arguments);
|
||||
},
|
||||
willStart: function () {
|
||||
return $.when(this.get_html());
|
||||
|
@ -43,12 +43,13 @@ odoo.define('account_financial_report.account_financial_report_backend', functio
|
|||
self.report_widget.$el.html(self.html);
|
||||
});
|
||||
},
|
||||
start: function() {
|
||||
start: function () {
|
||||
this.set_html();
|
||||
return this._super();
|
||||
},
|
||||
// Fetches the html and is previous report.context if any, else create it
|
||||
get_html: function() {
|
||||
// Fetches the html and is previous report.context if any,
|
||||
// else create it
|
||||
get_html: function () {
|
||||
var self = this;
|
||||
var defs = [];
|
||||
return this._rpc({
|
||||
|
@ -63,31 +64,6 @@ odoo.define('account_financial_report.account_financial_report_backend', functio
|
|||
return $.when.apply($, defs);
|
||||
});
|
||||
},
|
||||
// Updates the control panel and render the elements that have yet to be rendered
|
||||
update_cp: function() {
|
||||
if (this.$buttons) {
|
||||
var status = {
|
||||
breadcrumbs: this.actionManager.get_breadcrumbs(),
|
||||
cp_content: {$buttons: this.$buttons},
|
||||
};
|
||||
return this.update_control_panel(status);
|
||||
}
|
||||
},
|
||||
do_show: function() {
|
||||
this._super();
|
||||
this.update_cp();
|
||||
},
|
||||
print: function() {
|
||||
var self = this;
|
||||
this._rpc({
|
||||
model: this.given_context.model,
|
||||
method: 'print_report',
|
||||
args: [this.given_context.active_id, 'qweb-pdf'],
|
||||
context: self.odoo_context,
|
||||
}).then(function(result){
|
||||
self.do_action(result);
|
||||
});
|
||||
},
|
||||
// Updates the control panel and render the elements that have yet
|
||||
// to be rendered
|
||||
update_cp: function () {
|
||||
|
@ -110,7 +86,7 @@ odoo.define('account_financial_report.account_financial_report_backend', functio
|
|||
method: 'print_report',
|
||||
args: [this.given_context.active_id, 'qweb-pdf'],
|
||||
context: self.odoo_context,
|
||||
}).then(function(result){
|
||||
}).then(function (result) {
|
||||
self.do_action(result);
|
||||
});
|
||||
},
|
||||
|
@ -121,8 +97,7 @@ odoo.define('account_financial_report.account_financial_report_backend', functio
|
|||
method: 'print_report',
|
||||
args: [this.given_context.active_id, 'xlsx'],
|
||||
context: self.odoo_context,
|
||||
})
|
||||
.then(function(result){
|
||||
}).then(function (result) {
|
||||
self.do_action(result);
|
||||
});
|
||||
},
|
||||
|
@ -134,6 +109,6 @@ odoo.define('account_financial_report.account_financial_report_backend', functio
|
|||
core.action_registry.add(
|
||||
"account_financial_report_backend",
|
||||
report_backend
|
||||
);
|
||||
);
|
||||
return report_backend;
|
||||
});
|
||||
|
|
|
@ -5,7 +5,8 @@
|
|||
import time
|
||||
|
||||
from odoo.tests import common
|
||||
from datetime import date, datetime
|
||||
from odoo import fields
|
||||
from datetime import date
|
||||
from . import abstract_test_foreign_currency as a_t_f_c
|
||||
|
||||
|
||||
|
@ -88,11 +89,11 @@ class TestGeneralLedgerReport(common.TransactionCase):
|
|||
|
||||
def setUp(self):
|
||||
super(TestGeneralLedgerReport, self).setUp()
|
||||
self.before_previous_fy_year = datetime.strptime('2014-05-05', '%Y-%m-%d')
|
||||
self.previous_fy_date_start = datetime.strptime('2015-01-01', '%Y-%m-%d')
|
||||
self.previous_fy_date_end = datetime.strptime('2015-12-31', '%Y-%m-%d')
|
||||
self.fy_date_start = datetime.strptime('2016-01-01', '%Y-%m-%d')
|
||||
self.fy_date_end = datetime.strptime('2016-12-31', '%Y-%m-%d')
|
||||
self.before_previous_fy_year = fields.Date.from_string('2014-05-05')
|
||||
self.previous_fy_date_start = fields.Date.from_string('2015-01-01')
|
||||
self.previous_fy_date_end = fields.Date.from_string('2015-12-31')
|
||||
self.fy_date_start = fields.Date.from_string('2016-01-01')
|
||||
self.fy_date_end = fields.Date.from_string('2016-12-31')
|
||||
self.receivable_account = self.env['account.account'].search([
|
||||
('user_type_id.name', '=', 'Receivable')
|
||||
], limit=1)
|
||||
|
@ -121,7 +122,6 @@ class TestGeneralLedgerReport(common.TransactionCase):
|
|||
partner = self.env.ref('base.res_partner_12')
|
||||
move_vals = {
|
||||
'journal_id': journal.id,
|
||||
'partner_id': partner.id,
|
||||
'name': move_name,
|
||||
'date': date,
|
||||
'line_ids': [
|
||||
|
@ -129,17 +129,20 @@ class TestGeneralLedgerReport(common.TransactionCase):
|
|||
'name': move_name,
|
||||
'debit': receivable_debit,
|
||||
'credit': receivable_credit,
|
||||
'account_id': self.receivable_account.id}),
|
||||
'account_id': self.receivable_account.id,
|
||||
'partner_id': partner.id}),
|
||||
(0, 0, {
|
||||
'name': move_name,
|
||||
'debit': income_debit,
|
||||
'credit': income_credit,
|
||||
'account_id': self.income_account.id}),
|
||||
'account_id': self.income_account.id,
|
||||
'partner_id': partner.id}),
|
||||
(0, 0, {
|
||||
'name': move_name,
|
||||
'debit': unaffected_debit,
|
||||
'credit': unaffected_credit,
|
||||
'account_id': self.unaffected_account.id}),
|
||||
'account_id': self.unaffected_account.id,
|
||||
'partner_id': partner.id}),
|
||||
]}
|
||||
move = self.env['account.move'].create(move_vals)
|
||||
move.post()
|
||||
|
@ -546,5 +549,5 @@ class TestGeneralLedgerReport(common.TransactionCase):
|
|||
wizard = self.env["general.ledger.report.wizard"].create({
|
||||
'date_range_id': dr.id})
|
||||
wizard.onchange_date_range_id()
|
||||
self.assertEqual(wizard.date_from, '2018-01-01')
|
||||
self.assertEqual(wizard.date_to, '2018-12-31')
|
||||
self.assertEqual(wizard.date_from, date(2018, 1, 1))
|
||||
self.assertEqual(wizard.date_to, date(2018, 12, 31))
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
# Copyright 2017 ACSONE SA/NV
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
import time
|
||||
|
||||
from datetime import datetime, date
|
||||
from dateutil.relativedelta import relativedelta
|
||||
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
# Copyright 2016 Camptocamp SA
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
import time
|
||||
from datetime import date
|
||||
from odoo.tests import common
|
||||
from . import abstract_test_foreign_currency as a_t_f_c
|
||||
|
@ -131,7 +130,6 @@ class TestTrialBalanceReport(common.TransactionCase):
|
|||
partner = self.env.ref('base.res_partner_12')
|
||||
move_vals = {
|
||||
'journal_id': journal.id,
|
||||
'partner_id': partner.id,
|
||||
'name': move_name,
|
||||
'date': date,
|
||||
'line_ids': [
|
||||
|
@ -139,26 +137,31 @@ class TestTrialBalanceReport(common.TransactionCase):
|
|||
'name': move_name,
|
||||
'debit': receivable_debit,
|
||||
'credit': receivable_credit,
|
||||
'partner_id': partner.id,
|
||||
'account_id': self.account100.id}),
|
||||
(0, 0, {
|
||||
'name': move_name,
|
||||
'debit': income_debit,
|
||||
'credit': income_credit,
|
||||
'partner_id': partner.id,
|
||||
'account_id': self.account200.id}),
|
||||
(0, 0, {
|
||||
'name': move_name,
|
||||
'debit': unaffected_debit,
|
||||
'credit': unaffected_credit,
|
||||
'partner_id': partner.id,
|
||||
'account_id': self.account110.id}),
|
||||
(0, 0, {
|
||||
'name': move_name,
|
||||
'debit': receivable_debit,
|
||||
'credit': receivable_credit,
|
||||
'partner_id': partner.id,
|
||||
'account_id': self.account300.id}),
|
||||
(0, 0, {
|
||||
'name': move_name,
|
||||
'debit': receivable_credit,
|
||||
'credit': receivable_debit,
|
||||
'partner_id': partner.id,
|
||||
'account_id': self.account301.id})
|
||||
]}
|
||||
move = self.env['account.move'].create(move_vals)
|
||||
|
|
|
@ -110,7 +110,7 @@ class TestVATReport(common.TransactionCase):
|
|||
'account_id': self.tax_account.id,
|
||||
'company_id': self.company.id,
|
||||
'refund_account_id': self.tax_account.id,
|
||||
'cash_basis_account': self.tax_account.id,
|
||||
'cash_basis_account_id': self.tax_account.id,
|
||||
'tax_group_id': self.tax_group_20.id,
|
||||
'tag_ids': [(6, 0, [self.tax_tag_02.id, self.tax_tag_03.id])]
|
||||
})
|
||||
|
@ -157,7 +157,8 @@ class TestVATReport(common.TransactionCase):
|
|||
|
||||
def _get_report_lines(self):
|
||||
self.cbinvoice.pay_and_reconcile(
|
||||
self.bank_journal.id, 300, date(date.today().year, date.today().month, 10))
|
||||
self.bank_journal.id, 300, date(
|
||||
date.today().year, date.today().month, 10))
|
||||
vat_report = self.env['report_vat_report'].create({
|
||||
'date_from': self.date_from,
|
||||
'date_to': self.date_to,
|
||||
|
@ -274,8 +275,10 @@ class TestVATReport(common.TransactionCase):
|
|||
'date_to': time.strftime('%Y-%m-01'),
|
||||
'tax_detail': True})
|
||||
wizard.onchange_date_range_id()
|
||||
self.assertEqual(wizard.date_from, date(date.today().year, 1, 1))
|
||||
self.assertEqual(wizard.date_to, date(date.today().year, date.today().month, 28))
|
||||
self.assertEqual(wizard.date_from, date(
|
||||
date.today().year, date.today().month, 1))
|
||||
self.assertEqual(wizard.date_to, date(
|
||||
date.today().year, date.today().month, 28))
|
||||
wizard._export('qweb-pdf')
|
||||
wizard.button_export_html()
|
||||
wizard.button_export_pdf()
|
||||
|
@ -287,8 +290,10 @@ class TestVATReport(common.TransactionCase):
|
|||
'based_on': 'taxgroups',
|
||||
'tax_detail': True})
|
||||
wizard.onchange_date_range_id()
|
||||
self.assertEqual(wizard.date_from, date(date.today().year, 1, 1))
|
||||
self.assertEqual(wizard.date_to, date(date.today().year, date.today().month, 28))
|
||||
self.assertEqual(wizard.date_from, date(
|
||||
date.today().year, date.today().month, 1))
|
||||
self.assertEqual(wizard.date_to, date(
|
||||
date.today().year, date.today().month, 28))
|
||||
wizard._export('qweb-pdf')
|
||||
wizard.button_export_html()
|
||||
wizard.button_export_pdf()
|
||||
|
|
|
@ -4,13 +4,14 @@
|
|||
<template id="account_financial_report_assets_backend"
|
||||
name="account_financial_report assets" inherit_id="web.assets_backend">
|
||||
<xpath expr="." position="inside">
|
||||
<link href="/account_financial_report/static/src/less/report.less" rel="stylesheet"/>
|
||||
<link href="/account_financial_report/static/src/css/report.css" rel="stylesheet"/>
|
||||
<script type="text/javascript"
|
||||
src="/account_financial_report/static/src/js/account_financial_report_backend.js"/>
|
||||
<script type="text/javascript"
|
||||
src="/account_financial_report/static/src/js/account_financial_report_widgets.js"/>
|
||||
</xpath>
|
||||
</template>
|
||||
|
||||
<template id="report_buttons">
|
||||
<div class="button_row">
|
||||
<button class="o_account_financial_reports_print btn btn-sm oe_button"><span class="fa fa-print"/> Print</button>
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
from . import abstract_wizard
|
||||
from . import aged_partner_balance_wizard
|
||||
from . import general_ledger_wizard
|
||||
from . import journal_ledger_wizard
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
# Copyright 2019 Lorenzo Battistini @ TAKOBI
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
from odoo import models
|
||||
|
||||
|
||||
class AbstractWizard(models.AbstractModel):
|
||||
_name = 'account_financial_report_abstract_wizard'
|
||||
_description = 'Abstract Wizard'
|
||||
|
||||
def _get_partner_ids_domain(self):
|
||||
return [
|
||||
'&',
|
||||
'|',
|
||||
('company_id', '=', self.company_id.id),
|
||||
('company_id', '=', False),
|
||||
'|',
|
||||
('parent_id', '=', False),
|
||||
('is_company', '=', True),
|
||||
]
|
||||
|
||||
def _default_partners(self):
|
||||
context = self.env.context
|
||||
if (
|
||||
context.get('active_ids') and
|
||||
context.get('active_model') == 'res.partner'
|
||||
):
|
||||
partners = self.env['res.partner'].browse(context['active_ids'])
|
||||
corp_partners = partners.filtered('parent_id')
|
||||
partners -= corp_partners
|
||||
partners |= corp_partners.mapped('commercial_partner_id')
|
||||
return partners.ids
|
|
@ -13,6 +13,7 @@ class AgedPartnerBalanceWizard(models.TransientModel):
|
|||
|
||||
_name = 'aged.partner.balance.wizard'
|
||||
_description = 'Aged Partner Balance Wizard'
|
||||
_inherit = 'account_financial_report_abstract_wizard'
|
||||
|
||||
company_id = fields.Many2one(
|
||||
comodel_name='res.company',
|
||||
|
@ -59,11 +60,7 @@ class AgedPartnerBalanceWizard(models.TransientModel):
|
|||
else:
|
||||
res['domain']['account_ids'] += [
|
||||
('company_id', '=', self.company_id.id)]
|
||||
res['domain']['partner_ids'] += [
|
||||
'&',
|
||||
'|', ('company_id', '=', self.company_id.id),
|
||||
('company_id', '=', False),
|
||||
('parent_id', '=', False)]
|
||||
res['domain']['partner_ids'] += self._get_partner_ids_domain()
|
||||
return res
|
||||
|
||||
@api.onchange('receivable_accounts_only', 'payable_accounts_only')
|
||||
|
|
|
@ -9,10 +9,9 @@
|
|||
|
||||
from odoo import api, fields, models, _
|
||||
from odoo.tools.safe_eval import safe_eval
|
||||
from odoo.tools import pycompat, DEFAULT_SERVER_DATE_FORMAT
|
||||
from odoo.tools import pycompat
|
||||
from odoo.exceptions import ValidationError
|
||||
import time
|
||||
from datetime import datetime
|
||||
|
||||
|
||||
class GeneralLedgerReportWizard(models.TransientModel):
|
||||
|
@ -20,6 +19,7 @@ class GeneralLedgerReportWizard(models.TransientModel):
|
|||
|
||||
_name = "general.ledger.report.wizard"
|
||||
_description = "General Ledger Report Wizard"
|
||||
_inherit = 'account_financial_report_abstract_wizard'
|
||||
|
||||
company_id = fields.Many2one(
|
||||
comodel_name='res.company',
|
||||
|
@ -104,25 +104,12 @@ class GeneralLedgerReportWizard(models.TransientModel):
|
|||
def _default_foreign_currency(self):
|
||||
return self.env.user.has_group('base.group_multi_currency')
|
||||
|
||||
def _default_partners(self):
|
||||
context = self.env.context
|
||||
|
||||
if context.get('active_ids') and context.get('active_model') \
|
||||
== 'res.partner':
|
||||
partner_ids = context['active_ids']
|
||||
corp_partners = self.env['res.partner'].browse(partner_ids). \
|
||||
filtered(lambda p: p.parent_id)
|
||||
|
||||
partner_ids = set(partner_ids) - set(corp_partners.ids)
|
||||
partner_ids |= set(corp_partners.mapped('parent_id.id'))
|
||||
return list(partner_ids)
|
||||
|
||||
@api.depends('date_from')
|
||||
def _compute_fy_start_date(self):
|
||||
for wiz in self.filtered('date_from'):
|
||||
date = fields.Datetime.from_string(wiz.date_from)
|
||||
res = self.company_id.compute_fiscalyear_dates(date)
|
||||
wiz.fy_start_date = datetime.strftime(res['date_from'], DEFAULT_SERVER_DATE_FORMAT)
|
||||
wiz.fy_start_date = fields.Date.to_string(res['date_from'])
|
||||
|
||||
@api.onchange('company_id')
|
||||
def onchange_company_id(self):
|
||||
|
@ -168,11 +155,7 @@ class GeneralLedgerReportWizard(models.TransientModel):
|
|||
('company_id', '=', self.company_id.id)]
|
||||
res['domain']['account_journal_ids'] += [
|
||||
('company_id', '=', self.company_id.id)]
|
||||
res['domain']['partner_ids'] += [
|
||||
'&',
|
||||
'|', ('company_id', '=', self.company_id.id),
|
||||
('company_id', '=', False),
|
||||
('parent_id', '=', False)]
|
||||
res['domain']['partner_ids'] += self._get_partner_ids_domain()
|
||||
res['domain']['cost_center_ids'] += [
|
||||
('company_id', '=', self.company_id.id)]
|
||||
res['domain']['date_range_id'] += [
|
||||
|
|
|
@ -13,6 +13,7 @@ class OpenItemsReportWizard(models.TransientModel):
|
|||
|
||||
_name = "open.items.report.wizard"
|
||||
_description = "Open Items Report Wizard"
|
||||
_inherit = 'account_financial_report_abstract_wizard'
|
||||
|
||||
company_id = fields.Many2one(
|
||||
comodel_name='res.company',
|
||||
|
@ -57,19 +58,6 @@ class OpenItemsReportWizard(models.TransientModel):
|
|||
def _default_foreign_currency(self):
|
||||
return self.env.user.has_group('base.group_multi_currency')
|
||||
|
||||
def _default_partners(self):
|
||||
context = self.env.context
|
||||
|
||||
if context.get('active_ids') and context.get('active_model') \
|
||||
== 'res.partner':
|
||||
partner_ids = context['active_ids']
|
||||
corp_partners = self.env['res.partner'].browse(partner_ids). \
|
||||
filtered(lambda p: p.parent_id)
|
||||
|
||||
partner_ids = set(partner_ids) - set(corp_partners.ids)
|
||||
partner_ids |= set(corp_partners.mapped('parent_id.id'))
|
||||
return list(partner_ids)
|
||||
|
||||
@api.onchange('company_id')
|
||||
def onchange_company_id(self):
|
||||
"""Handle company change."""
|
||||
|
@ -90,11 +78,7 @@ class OpenItemsReportWizard(models.TransientModel):
|
|||
else:
|
||||
res['domain']['account_ids'] += [
|
||||
('company_id', '=', self.company_id.id)]
|
||||
res['domain']['partner_ids'] += [
|
||||
'&',
|
||||
'|', ('company_id', '=', self.company_id.id),
|
||||
('company_id', '=', False),
|
||||
('parent_id', '=', False)]
|
||||
res['domain']['partner_ids'] += self._get_partner_ids_domain()
|
||||
return res
|
||||
|
||||
@api.onchange('receivable_accounts_only', 'payable_accounts_only')
|
||||
|
|
|
@ -6,15 +6,16 @@
|
|||
|
||||
from odoo import api, fields, models, _
|
||||
from odoo.tools.safe_eval import safe_eval
|
||||
from odoo.tools import pycompat, DEFAULT_SERVER_DATE_FORMAT
|
||||
from odoo.tools import pycompat
|
||||
from odoo.exceptions import UserError, ValidationError
|
||||
from datetime import datetime
|
||||
|
||||
|
||||
class TrialBalanceReportWizard(models.TransientModel):
|
||||
"""Trial balance report wizard."""
|
||||
|
||||
_name = "trial.balance.report.wizard"
|
||||
_description = "Trial Balance Report Wizard"
|
||||
_inherit = 'account_financial_report_abstract_wizard'
|
||||
|
||||
company_id = fields.Many2one(
|
||||
comodel_name='res.company',
|
||||
|
@ -98,7 +99,7 @@ class TrialBalanceReportWizard(models.TransientModel):
|
|||
for wiz in self.filtered('date_from'):
|
||||
date = fields.Datetime.from_string(wiz.date_from)
|
||||
res = self.company_id.compute_fiscalyear_dates(date)
|
||||
wiz.fy_start_date = datetime.strftime(res['date_from'], DEFAULT_SERVER_DATE_FORMAT)
|
||||
wiz.fy_start_date = fields.Date.to_string(res['date_from'])
|
||||
|
||||
@api.onchange('company_id')
|
||||
def onchange_company_id(self):
|
||||
|
@ -137,11 +138,7 @@ class TrialBalanceReportWizard(models.TransientModel):
|
|||
else:
|
||||
res['domain']['account_ids'] += [
|
||||
('company_id', '=', self.company_id.id)]
|
||||
res['domain']['partner_ids'] += [
|
||||
'&',
|
||||
'|', ('company_id', '=', self.company_id.id),
|
||||
('company_id', '=', False),
|
||||
('parent_id', '=', False)]
|
||||
res['domain']['partner_ids'] += self._get_partner_ids_domain()
|
||||
res['domain']['date_range_id'] += [
|
||||
'|', ('company_id', '=', self.company_id.id),
|
||||
('company_id', '=', False)]
|
||||
|
|
Loading…
Reference in New Issue