[MIG] account_financial_report: Migration to 12.0
[IMP] Reformated one query to avoid one sql injection warning message - but no sql injection was possible herepull/559/head
parent
605f67e055
commit
91361ef042
|
@ -4,7 +4,7 @@
|
||||||
# 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).
|
||||||
{
|
{
|
||||||
'name': 'Account Financial Reports',
|
'name': 'Account Financial Reports',
|
||||||
'version': '11.0.2.5.0',
|
'version': '12.0.1.0.0',
|
||||||
'category': 'Reporting',
|
'category': 'Reporting',
|
||||||
'summary': 'OCA Financial Reports',
|
'summary': 'OCA Financial Reports',
|
||||||
'author': 'Camptocamp SA,'
|
'author': 'Camptocamp SA,'
|
||||||
|
@ -15,7 +15,6 @@
|
||||||
"website": "https://odoo-community.org/",
|
"website": "https://odoo-community.org/",
|
||||||
'depends': [
|
'depends': [
|
||||||
'account',
|
'account',
|
||||||
'account_invoicing',
|
|
||||||
'date_range',
|
'date_range',
|
||||||
'report_xlsx',
|
'report_xlsx',
|
||||||
],
|
],
|
||||||
|
|
|
@ -58,6 +58,7 @@
|
||||||
groups="base.group_erp_manager"
|
groups="base.group_erp_manager"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
<!--
|
||||||
<menuitem
|
<menuitem
|
||||||
id="account.menu_general_ledger"
|
id="account.menu_general_ledger"
|
||||||
name="General Ledger"
|
name="General Ledger"
|
||||||
|
@ -96,6 +97,6 @@
|
||||||
action="account.action_account_aged_balance_view"
|
action="account.action_account_aged_balance_view"
|
||||||
parent="account.menu_finance_legal_statement"
|
parent="account.menu_finance_legal_statement"
|
||||||
groups="base.group_erp_manager"
|
groups="base.group_erp_manager"
|
||||||
/>
|
/>-->
|
||||||
|
|
||||||
</odoo>
|
</odoo>
|
||||||
|
|
|
@ -14,9 +14,9 @@ class AbstractReport(models.AbstractModel):
|
||||||
# Never delete rows used in last 5 minutes
|
# Never delete rows used in last 5 minutes
|
||||||
seconds = max(seconds, 300)
|
seconds = max(seconds, 300)
|
||||||
query = """
|
query = """
|
||||||
DELETE FROM """ + self._table + """
|
DELETE FROM %s
|
||||||
WHERE COALESCE(
|
WHERE COALESCE(
|
||||||
write_date, create_date, (now() at time zone 'UTC'))::timestamp
|
write_date, create_date, (now() at time zone 'UTC'))::timestamp
|
||||||
< ((now() at time zone 'UTC') - interval %s)
|
< ((now() at time zone 'UTC') - interval %s)
|
||||||
"""
|
"""
|
||||||
self.env.cr.execute(query, ("%s seconds" % seconds,))
|
self.env.cr.execute(query, (self._table, "%s seconds" % seconds,))
|
||||||
|
|
|
@ -3,6 +3,8 @@
|
||||||
# Copyright 2016 Camptocamp SA
|
# Copyright 2016 Camptocamp SA
|
||||||
# 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 odoo import models
|
from odoo import models
|
||||||
|
from odoo.tools import DEFAULT_SERVER_DATE_FORMAT
|
||||||
|
import datetime
|
||||||
|
|
||||||
|
|
||||||
class AbstractReportXslx(models.AbstractModel):
|
class AbstractReportXslx(models.AbstractModel):
|
||||||
|
@ -188,6 +190,8 @@ class AbstractReportXslx(models.AbstractModel):
|
||||||
"""
|
"""
|
||||||
for col_pos, column in self.columns.items():
|
for col_pos, column in self.columns.items():
|
||||||
value = getattr(line_object, column['field'])
|
value = getattr(line_object, column['field'])
|
||||||
|
if isinstance(value, datetime.date):
|
||||||
|
value = datetime.datetime.strftime(value, DEFAULT_SERVER_DATE_FORMAT)
|
||||||
cell_type = column.get('type', 'string')
|
cell_type = column.get('type', 'string')
|
||||||
if cell_type == 'many2one':
|
if cell_type == 'many2one':
|
||||||
self.sheet.write_string(
|
self.sheet.write_string(
|
||||||
|
|
|
@ -195,7 +195,7 @@ class AgedPartnerBalanceReportCompute(models.TransientModel):
|
||||||
report = self.env['ir.actions.report'].search(
|
report = self.env['ir.actions.report'].search(
|
||||||
[('report_name', '=', report_name),
|
[('report_name', '=', report_name),
|
||||||
('report_type', '=', report_type)], limit=1)
|
('report_type', '=', report_type)], limit=1)
|
||||||
return report.report_action(self)
|
return report.report_action(self, config=False)
|
||||||
|
|
||||||
def _get_html(self):
|
def _get_html(self):
|
||||||
result = {}
|
result = {}
|
||||||
|
|
|
@ -224,7 +224,7 @@ class GeneralLedgerReportCompute(models.TransientModel):
|
||||||
'report_general_ledger_qweb'
|
'report_general_ledger_qweb'
|
||||||
return self.env['ir.actions.report'].search(
|
return self.env['ir.actions.report'].search(
|
||||||
[('report_name', '=', report_name),
|
[('report_name', '=', report_name),
|
||||||
('report_type', '=', report_type)], limit=1).report_action(self)
|
('report_type', '=', report_type)], limit=1).report_action(self, config=False)
|
||||||
|
|
||||||
def _get_html(self):
|
def _get_html(self):
|
||||||
result = {}
|
result = {}
|
||||||
|
|
|
@ -594,7 +594,7 @@ class ReportJournalLedger(models.TransientModel):
|
||||||
'report_journal_ledger_qweb'
|
'report_journal_ledger_qweb'
|
||||||
return self.env['ir.actions.report'].search(
|
return self.env['ir.actions.report'].search(
|
||||||
[('report_name', '=', report_name),
|
[('report_name', '=', report_name),
|
||||||
('report_type', '=', report_type)], limit=1).report_action(self)
|
('report_type', '=', report_type)], limit=1).report_action(self, config=False)
|
||||||
|
|
||||||
def _get_html(self):
|
def _get_html(self):
|
||||||
result = {}
|
result = {}
|
||||||
|
|
|
@ -160,7 +160,7 @@ class OpenItemsReportCompute(models.TransientModel):
|
||||||
'report_open_items_qweb'
|
'report_open_items_qweb'
|
||||||
return self.env['ir.actions.report'].search(
|
return self.env['ir.actions.report'].search(
|
||||||
[('report_name', '=', report_name),
|
[('report_name', '=', report_name),
|
||||||
('report_type', '=', report_type)], limit=1).report_action(self)
|
('report_type', '=', report_type)], limit=1).report_action(self, config=False)
|
||||||
|
|
||||||
def _get_html(self):
|
def _get_html(self):
|
||||||
result = {}
|
result = {}
|
||||||
|
|
|
@ -209,7 +209,7 @@ class TrialBalanceReportCompute(models.TransientModel):
|
||||||
'report_trial_balance_qweb'
|
'report_trial_balance_qweb'
|
||||||
return self.env['ir.actions.report'].search(
|
return self.env['ir.actions.report'].search(
|
||||||
[('report_name', '=', report_name),
|
[('report_name', '=', report_name),
|
||||||
('report_type', '=', report_type)], limit=1).report_action(self)
|
('report_type', '=', report_type)], limit=1).report_action(self, config=False)
|
||||||
|
|
||||||
def _get_html(self):
|
def _get_html(self):
|
||||||
result = {}
|
result = {}
|
||||||
|
@ -410,7 +410,7 @@ SELECT
|
||||||
accgroup.parent_id,
|
accgroup.parent_id,
|
||||||
coalesce(accgroup.code_prefix, accgroup.name),
|
coalesce(accgroup.code_prefix, accgroup.name),
|
||||||
accgroup.name,
|
accgroup.name,
|
||||||
accgroup.parent_left * 100000,
|
accgroup.id * 100000,
|
||||||
accgroup.level
|
accgroup.level
|
||||||
FROM
|
FROM
|
||||||
account_group accgroup"""
|
account_group accgroup"""
|
||||||
|
|
|
@ -112,7 +112,7 @@ class VATReportCompute(models.TransientModel):
|
||||||
action = self.env['ir.actions.report'].search(
|
action = self.env['ir.actions.report'].search(
|
||||||
[('report_name', '=', report_name),
|
[('report_name', '=', report_name),
|
||||||
('report_type', '=', report_type)], limit=1)
|
('report_type', '=', report_type)], limit=1)
|
||||||
return action.with_context(context).report_action(self)
|
return action.with_context(context).report_action(self, config=False)
|
||||||
|
|
||||||
def _get_html(self):
|
def _get_html(self):
|
||||||
result = {}
|
result = {}
|
||||||
|
|
|
@ -63,6 +63,31 @@ odoo.define('account_financial_report.account_financial_report_backend', functio
|
||||||
return $.when.apply($, defs);
|
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
|
// Updates the control panel and render the elements that have yet
|
||||||
// to be rendered
|
// to be rendered
|
||||||
update_cp: function () {
|
update_cp: function () {
|
||||||
|
@ -101,6 +126,9 @@ odoo.define('account_financial_report.account_financial_report_backend', functio
|
||||||
self.do_action(result);
|
self.do_action(result);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
canBeRemoved: function () {
|
||||||
|
return $.when();
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
core.action_registry.add(
|
core.action_registry.add(
|
||||||
|
|
|
@ -36,7 +36,7 @@ class AbstractTest(common.TransactionCase):
|
||||||
'bank_account_code_prefix': 1014,
|
'bank_account_code_prefix': 1014,
|
||||||
'cash_account_code_prefix': 1014,
|
'cash_account_code_prefix': 1014,
|
||||||
'currency_id': self.ref('base.USD'),
|
'currency_id': self.ref('base.USD'),
|
||||||
'transfer_account_id': transfer_account_id.id,
|
'transfer_account_code_prefix': '000',
|
||||||
})
|
})
|
||||||
transfer_account_id.update({
|
transfer_account_id.update({
|
||||||
'chart_template_id': self.chart.id,
|
'chart_template_id': self.chart.id,
|
||||||
|
@ -98,7 +98,6 @@ class AbstractTest(common.TransactionCase):
|
||||||
def _add_chart_of_accounts(self):
|
def _add_chart_of_accounts(self):
|
||||||
self.company = self.env['res.company'].create({
|
self.company = self.env['res.company'].create({
|
||||||
'name': 'Spanish test company',
|
'name': 'Spanish test company',
|
||||||
'external_report_layout': 'standard',
|
|
||||||
})
|
})
|
||||||
self.env.ref('base.group_multi_company').write({
|
self.env.ref('base.group_multi_company').write({
|
||||||
'users': [(4, self.env.uid)],
|
'users': [(4, self.env.uid)],
|
||||||
|
@ -109,15 +108,7 @@ class AbstractTest(common.TransactionCase):
|
||||||
})
|
})
|
||||||
self.with_context(
|
self.with_context(
|
||||||
company_id=self.company.id, force_company=self.company.id)
|
company_id=self.company.id, force_company=self.company.id)
|
||||||
wizard = self.env['wizard.multi.charts.accounts'].create({
|
self.chart.try_loading_for_current_company()
|
||||||
'company_id': self.company.id,
|
|
||||||
'chart_template_id': self.chart.id,
|
|
||||||
'code_digits': 4,
|
|
||||||
'currency_id': self.ref('base.USD'),
|
|
||||||
'transfer_account_id': self.chart.transfer_account_id.id,
|
|
||||||
})
|
|
||||||
wizard.onchange_chart_template_id()
|
|
||||||
wizard.execute()
|
|
||||||
self.revenue = self.env['account.account'].search(
|
self.revenue = self.env['account.account'].search(
|
||||||
[('user_type_id', '=', self.ref(
|
[('user_type_id', '=', self.ref(
|
||||||
"account.data_account_type_revenue"))], limit=1)
|
"account.data_account_type_revenue"))], limit=1)
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
# Copyright 2016 Camptocamp SA
|
# Copyright 2016 Camptocamp SA
|
||||||
# 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).
|
||||||
|
|
||||||
import time
|
from datetime import date
|
||||||
from . import abstract_test
|
from . import abstract_test
|
||||||
|
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@ class TestAgedPartnerBalance(abstract_test.AbstractTest):
|
||||||
|
|
||||||
def _getBaseFilters(self):
|
def _getBaseFilters(self):
|
||||||
return {
|
return {
|
||||||
'date_at': time.strftime('%Y-12-31'),
|
'date_at': date(date.today().year, 12, 31),
|
||||||
'company_id': self.company.id,
|
'company_id': self.company.id,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
import time
|
import time
|
||||||
|
|
||||||
from odoo.tests import common
|
from odoo.tests import common
|
||||||
|
from datetime import date, datetime
|
||||||
from . import abstract_test_foreign_currency as a_t_f_c
|
from . import abstract_test_foreign_currency as a_t_f_c
|
||||||
|
|
||||||
|
|
||||||
|
@ -31,10 +32,10 @@ class TestGeneralLedger(a_t_f_c.AbstractTestForeignCurrency):
|
||||||
|
|
||||||
def _getBaseFilters(self):
|
def _getBaseFilters(self):
|
||||||
return {
|
return {
|
||||||
'date_from': time.strftime('%Y-01-01'),
|
'date_from': date(date.today().year, 1, 1),
|
||||||
'date_to': time.strftime('%Y-12-31'),
|
'date_to': date(date.today().year, 12, 31),
|
||||||
'company_id': self.company.id,
|
'company_id': self.company.id,
|
||||||
'fy_start_date': time.strftime('%Y-01-01'),
|
'fy_start_date': date(date.today().year, 1, 1),
|
||||||
'foreign_currency': True,
|
'foreign_currency': True,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -87,11 +88,11 @@ class TestGeneralLedgerReport(common.TransactionCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestGeneralLedgerReport, self).setUp()
|
super(TestGeneralLedgerReport, self).setUp()
|
||||||
self.before_previous_fy_year = '2014-05-05'
|
self.before_previous_fy_year = datetime.strptime('2014-05-05', '%Y-%m-%d')
|
||||||
self.previous_fy_date_start = '2015-01-01'
|
self.previous_fy_date_start = datetime.strptime('2015-01-01', '%Y-%m-%d')
|
||||||
self.previous_fy_date_end = '2015-12-31'
|
self.previous_fy_date_end = datetime.strptime('2015-12-31', '%Y-%m-%d')
|
||||||
self.fy_date_start = '2016-01-01'
|
self.fy_date_start = datetime.strptime('2016-01-01', '%Y-%m-%d')
|
||||||
self.fy_date_end = '2016-12-31'
|
self.fy_date_end = datetime.strptime('2016-12-31', '%Y-%m-%d')
|
||||||
self.receivable_account = self.env['account.account'].search([
|
self.receivable_account = self.env['account.account'].search([
|
||||||
('user_type_id.name', '=', 'Receivable')
|
('user_type_id.name', '=', 'Receivable')
|
||||||
], limit=1)
|
], limit=1)
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
import time
|
import time
|
||||||
|
|
||||||
from datetime import datetime
|
from datetime import datetime, date
|
||||||
from dateutil.relativedelta import relativedelta
|
from dateutil.relativedelta import relativedelta
|
||||||
|
|
||||||
from odoo.fields import Date
|
from odoo.fields import Date
|
||||||
|
@ -34,8 +34,8 @@ class TestJournalLedger(a_t_f_c.AbstractTestForeignCurrency):
|
||||||
|
|
||||||
def _getBaseFilters(self):
|
def _getBaseFilters(self):
|
||||||
return {
|
return {
|
||||||
'date_from': time.strftime('%Y-01-01'),
|
'date_from': date(date.today().year, 1, 1),
|
||||||
'date_to': time.strftime('%Y-12-31'),
|
'date_to': date(date.today().year, 12, 31),
|
||||||
'company_id': self.company.id,
|
'company_id': self.company.id,
|
||||||
'journal_ids': [(6, 0, self.journal_sale.ids)]
|
'journal_ids': [(6, 0, self.journal_sale.ids)]
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
# Copyright 2016 Camptocamp SA
|
# Copyright 2016 Camptocamp SA
|
||||||
# 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).
|
||||||
|
|
||||||
import time
|
from datetime import date
|
||||||
from . import abstract_test_foreign_currency as a_t_f_c
|
from . import abstract_test_foreign_currency as a_t_f_c
|
||||||
|
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ class TestOpenItems(a_t_f_c.AbstractTestForeignCurrency):
|
||||||
|
|
||||||
def _getBaseFilters(self):
|
def _getBaseFilters(self):
|
||||||
return {
|
return {
|
||||||
'date_at': time.strftime('%Y-12-31'),
|
'date_at': date(date.today().year, 12, 31),
|
||||||
'company_id': self.company.id,
|
'company_id': self.company.id,
|
||||||
'foreign_currency': True,
|
'foreign_currency': True,
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
# 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).
|
||||||
|
|
||||||
import time
|
import time
|
||||||
|
from datetime import date
|
||||||
from odoo.tests import common
|
from odoo.tests import common
|
||||||
from . import abstract_test_foreign_currency as a_t_f_c
|
from . import abstract_test_foreign_currency as a_t_f_c
|
||||||
|
|
||||||
|
@ -30,10 +30,10 @@ class TestTrialBalance(a_t_f_c.AbstractTestForeignCurrency):
|
||||||
|
|
||||||
def _getBaseFilters(self):
|
def _getBaseFilters(self):
|
||||||
return {
|
return {
|
||||||
'date_from': time.strftime('%Y-01-01'),
|
'date_from': date(date.today().year, 1, 1),
|
||||||
'date_to': time.strftime('%Y-12-31'),
|
'date_to': date(date.today().year, 12, 31),
|
||||||
'company_id': self.company.id,
|
'company_id': self.company.id,
|
||||||
'fy_start_date': time.strftime('%Y-01-01'),
|
'fy_start_date': date(date.today().year, 1, 1),
|
||||||
'foreign_currency': True,
|
'foreign_currency': True,
|
||||||
'show_partner_details': True,
|
'show_partner_details': True,
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
# 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).
|
||||||
|
|
||||||
import time
|
import time
|
||||||
|
from datetime import date
|
||||||
from odoo.tests import common
|
from odoo.tests import common
|
||||||
from . import abstract_test_tax_report
|
from . import abstract_test_tax_report
|
||||||
|
|
||||||
|
@ -29,8 +29,8 @@ class TestVAT(abstract_test_tax_report.AbstractTest):
|
||||||
|
|
||||||
def _getBaseFilters(self):
|
def _getBaseFilters(self):
|
||||||
return {
|
return {
|
||||||
'date_from': time.strftime('%Y-01-01'),
|
'date_from': date(date.today().year, 1, 1),
|
||||||
'date_to': time.strftime('%Y-12-31'),
|
'date_to': date(date.today().year, 12, 31),
|
||||||
'company_id': self.env.user.company_id.id,
|
'company_id': self.env.user.company_id.id,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -157,7 +157,7 @@ class TestVATReport(common.TransactionCase):
|
||||||
|
|
||||||
def _get_report_lines(self):
|
def _get_report_lines(self):
|
||||||
self.cbinvoice.pay_and_reconcile(
|
self.cbinvoice.pay_and_reconcile(
|
||||||
self.bank_journal.id, 300, time.strftime('%Y-%m-10'))
|
self.bank_journal.id, 300, date(date.today().year, date.today().month, 10))
|
||||||
vat_report = self.env['report_vat_report'].create({
|
vat_report = self.env['report_vat_report'].create({
|
||||||
'date_from': self.date_from,
|
'date_from': self.date_from,
|
||||||
'date_to': self.date_to,
|
'date_to': self.date_to,
|
||||||
|
@ -274,8 +274,8 @@ class TestVATReport(common.TransactionCase):
|
||||||
'date_to': time.strftime('%Y-%m-01'),
|
'date_to': time.strftime('%Y-%m-01'),
|
||||||
'tax_detail': True})
|
'tax_detail': True})
|
||||||
wizard.onchange_date_range_id()
|
wizard.onchange_date_range_id()
|
||||||
self.assertEqual(wizard.date_from, time.strftime('%Y-%m-01'))
|
self.assertEqual(wizard.date_from, date(date.today().year, 1, 1))
|
||||||
self.assertEqual(wizard.date_to, time.strftime('%Y-%m-28'))
|
self.assertEqual(wizard.date_to, date(date.today().year, date.today().month, 28))
|
||||||
wizard._export('qweb-pdf')
|
wizard._export('qweb-pdf')
|
||||||
wizard.button_export_html()
|
wizard.button_export_html()
|
||||||
wizard.button_export_pdf()
|
wizard.button_export_pdf()
|
||||||
|
@ -287,8 +287,8 @@ class TestVATReport(common.TransactionCase):
|
||||||
'based_on': 'taxgroups',
|
'based_on': 'taxgroups',
|
||||||
'tax_detail': True})
|
'tax_detail': True})
|
||||||
wizard.onchange_date_range_id()
|
wizard.onchange_date_range_id()
|
||||||
self.assertEqual(wizard.date_from, time.strftime('%Y-%m-01'))
|
self.assertEqual(wizard.date_from, date(date.today().year, 1, 1))
|
||||||
self.assertEqual(wizard.date_to, time.strftime('%Y-%m-28'))
|
self.assertEqual(wizard.date_to, date(date.today().year, date.today().month, 28))
|
||||||
wizard._export('qweb-pdf')
|
wizard._export('qweb-pdf')
|
||||||
wizard.button_export_html()
|
wizard.button_export_html()
|
||||||
wizard.button_export_pdf()
|
wizard.button_export_pdf()
|
||||||
|
|
|
@ -9,9 +9,10 @@
|
||||||
|
|
||||||
from odoo import api, fields, models, _
|
from odoo import api, fields, models, _
|
||||||
from odoo.tools.safe_eval import safe_eval
|
from odoo.tools.safe_eval import safe_eval
|
||||||
from odoo.tools import pycompat
|
from odoo.tools import pycompat, DEFAULT_SERVER_DATE_FORMAT
|
||||||
from odoo.exceptions import ValidationError
|
from odoo.exceptions import ValidationError
|
||||||
import time
|
import time
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
|
||||||
class GeneralLedgerReportWizard(models.TransientModel):
|
class GeneralLedgerReportWizard(models.TransientModel):
|
||||||
|
@ -121,7 +122,7 @@ class GeneralLedgerReportWizard(models.TransientModel):
|
||||||
for wiz in self.filtered('date_from'):
|
for wiz in self.filtered('date_from'):
|
||||||
date = fields.Datetime.from_string(wiz.date_from)
|
date = fields.Datetime.from_string(wiz.date_from)
|
||||||
res = self.company_id.compute_fiscalyear_dates(date)
|
res = self.company_id.compute_fiscalyear_dates(date)
|
||||||
wiz.fy_start_date = res['date_from']
|
wiz.fy_start_date = datetime.strftime(res['date_from'], DEFAULT_SERVER_DATE_FORMAT)
|
||||||
|
|
||||||
@api.onchange('company_id')
|
@api.onchange('company_id')
|
||||||
def onchange_company_id(self):
|
def onchange_company_id(self):
|
||||||
|
|
|
@ -6,9 +6,9 @@
|
||||||
|
|
||||||
from odoo import api, fields, models, _
|
from odoo import api, fields, models, _
|
||||||
from odoo.tools.safe_eval import safe_eval
|
from odoo.tools.safe_eval import safe_eval
|
||||||
from odoo.tools import pycompat
|
from odoo.tools import pycompat, DEFAULT_SERVER_DATE_FORMAT
|
||||||
from odoo.exceptions import UserError, ValidationError
|
from odoo.exceptions import UserError, ValidationError
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
class TrialBalanceReportWizard(models.TransientModel):
|
class TrialBalanceReportWizard(models.TransientModel):
|
||||||
"""Trial balance report wizard."""
|
"""Trial balance report wizard."""
|
||||||
|
@ -98,7 +98,7 @@ class TrialBalanceReportWizard(models.TransientModel):
|
||||||
for wiz in self.filtered('date_from'):
|
for wiz in self.filtered('date_from'):
|
||||||
date = fields.Datetime.from_string(wiz.date_from)
|
date = fields.Datetime.from_string(wiz.date_from)
|
||||||
res = self.company_id.compute_fiscalyear_dates(date)
|
res = self.company_id.compute_fiscalyear_dates(date)
|
||||||
wiz.fy_start_date = res['date_from']
|
wiz.fy_start_date = datetime.strftime(res['date_from'], DEFAULT_SERVER_DATE_FORMAT)
|
||||||
|
|
||||||
@api.onchange('company_id')
|
@api.onchange('company_id')
|
||||||
def onchange_company_id(self):
|
def onchange_company_id(self):
|
||||||
|
|
|
@ -1 +1,2 @@
|
||||||
server-ux
|
server-ux
|
||||||
|
reporting-engine
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../account_financial_report
|
|
@ -0,0 +1,6 @@
|
||||||
|
import setuptools
|
||||||
|
|
||||||
|
setuptools.setup(
|
||||||
|
setup_requires=['setuptools-odoo'],
|
||||||
|
odoo_addon=True,
|
||||||
|
)
|
Loading…
Reference in New Issue