Ujjvala Collins (OpenERP) has proposed merging
lp:~openerp-dev/openobject-addons/trunk-financial_report_v61-uco into
lp:~openerp/openobject-addons/trunk-financial_report-tde.
Requested reviews:
qdp (OpenERP) (qdp)
OpenERP Core Team (openerp)
For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-financial_report_v61-uco/+merge/84099
[IMP] account:
---------------------
- Moved 'sign' on report field from account.account.type to financial report
object
- Removed note field on financial report.
- Converted 'Display detail' to a selection box instead of a boolean (because
we add one more value), it is now also available for account type. Values are:
- "no detail" (current behavior with False)
- "display children flat" (current behavior with True)
- "display children with hiearchy". Default value. This new option allow to
display all the children keeping their structure and their hierarchy (accounts
must be shown in a different style in the rml)
- Created demo data in the account module in order to have the following
financial reports structure defined
- balance sheet (type: view)
- assets (type: account_type, display with hierarchy)
- liabilty (type: account_type, display with hierarchy)
- p&l (type: view)
- income (type: account_type, display with hierarchy)
- expense (type: account_type, display with hierarchy)
- The existing menus launching the reports p&l and balance sheet must be
replaced by new instance of the menu launching the financial report wizard, but
with the financial report hardcoded (thus, the user will still see "balance
sheet" as report but when he clicks on it, he will see the current wizard to
launch the account financial report with the balance sheet report already
selected).
[For now files are just commented in __init__.py and __openerp__.py]
- In order to have the financial reports well configured at l10n modules, we
must replace the current selection box on account.account.type (/, asset (bs),
liability (bs), profit (pl), loss (pl)) by a functional field (type=selection)
that will
- read and display the first financial report found in the m2m field
account_type_ids for this account type and one of the 4 data financial report
(asset, liability, income, expense)
- write on the m2m field of its related financial report if we change the
value of this selection field in account types
in other words, we want to replace teh current selection field by a
functional field that will simulate the old behavior (for the user it will be
the same) but that will read and write into the m2m field between financial
reports and account types
--
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-financial_report_v61-uco/+merge/84099
Your team OpenERP R&D Team is subscribed to branch
lp:~openerp-dev/openobject-addons/trunk-financial_report_v61-uco.
=== modified file 'account/__openerp__.py'
--- account/__openerp__.py 2011-11-28 16:28:17 +0000
+++ account/__openerp__.py 2011-12-01 12:57:16 +0000
@@ -121,8 +121,8 @@
'ir_sequence_view.xml',
'company_view.xml',
'board_account_view.xml',
- "wizard/account_report_profit_loss_view.xml",
- "wizard/account_report_balance_sheet_view.xml",
+ #"wizard/account_report_profit_loss_view.xml",
+ #"wizard/account_report_balance_sheet_view.xml",
"edi/invoice_action_data.xml",
"account_bank_view.xml",
"account_pre_install.yml"
=== modified file 'account/account.py'
--- account/account.py 2011-11-25 17:49:08 +0000
+++ account/account.py 2011-12-01 12:57:16 +0000
@@ -130,6 +130,21 @@
class account_account_type(osv.osv):
_name = "account.account.type"
_description = "Account Type"
+
+ def _get_report_type(self, cr, uid, context=None):
+ report_obj = self.pool.get('account.financial.report')
+ report_ids = report_obj.search(cr, uid, [], context=context)
+ report_type = [('none','/')]
+ for report in report_obj.browse(cr, uid, report_ids, context=context):
+ type = report.account_type_ids and report.account_type_ids[0] or False
+ if type:
+ if type.code in ('income', 'expense'):
+ report_name = 'Profit & Loss ('+type.code+' accounts)'
+ elif type.code in ('asset','liability'):
+ report_name = 'Balance Sheet ('+type.code+' accounts)'
+ report_type.append((type.code, report_name))
+ return report_type
+
_columns = {
'name': fields.char('Account Type', size=64, required=True),
'code': fields.char('Code', size=32, required=True),
@@ -139,23 +154,25 @@
'Balance' will generally be used for cash accounts.
'Detail' will copy each existing journal item of the previous year, even the reconciled ones.
'Unreconciled' will copy only the journal items that were unreconciled on the first day of the new fiscal year."""),
- 'sign': fields.selection([(-1, 'Reverse balance sign'), (1, 'Preserve balance sign')], 'Sign on Reports', required=True, help='For accounts that are typically more debited than credited and that you would like to print as negative amounts in your reports, you should reverse the sign of the balance; e.g.: Expense account. The same applies for accounts that are typically more credited than debited and that you would like to print as positive amounts in your reports; e.g.: Income account.'),
- 'report_type':fields.selection([
- ('none','/'),
- ('income','Profit & Loss (Income Accounts)'),
- ('expense','Profit & Loss (Expense Accounts)'),
- ('asset','Balance Sheet (Asset Accounts)'),
- ('liability','Balance Sheet (Liability Accounts)')
- ],'P&L / BS Category', select=True, readonly=False, help="This field is used to generate legal reports: profit and loss, balance sheet.", required=True),
+ 'report_type': fields.selection(_get_report_type, 'P&L / BS Category', help="This field is used to generate legal reports: profit and loss, balance sheet.", required=True),
'note': fields.text('Description'),
}
_defaults = {
'close_method': 'none',
- 'sign': 1,
'report_type': 'none',
}
_order = "code"
+ def write(self, cr, uid, ids, vals, context=None):
+ report_obj = self.pool.get('account.financial.report')
+ if vals.get('report_type'):
+ type_ids = self.search(cr, uid, [('code','=',vals['report_type'])], context=context)
+ report_ids = report_obj.search(cr, uid, [('account_type_ids','in',ids)])
+ for report in report_obj.browse(cr, uid, report_ids, context=context):
+ type_ids += [x.id for x in report.account_type_ids if x.id not in type_ids]
+ report_obj.write(cr, uid, [report.id], {'account_type_ids': [(6,0,type_ids)]}, context=context)
+ return super(account_account_type, self).write(cr, uid, ids, vals, context)
+
account_account_type()
def _code_get(self, cr, uid, context=None):
@@ -2754,7 +2771,6 @@
'parent_id': fields.many2one('account.financial.report', 'Parent'),
'children_ids': fields.one2many('account.financial.report', 'parent_id', 'Account Report'),
'sequence': fields.integer('Sequence'),
- 'note': fields.text('Notes'),
'balance': fields.function(_get_balance, 'Balance'),
'level': fields.function(_get_level, string='Level', store=True, type='integer'),
'type': fields.selection([
@@ -2764,13 +2780,20 @@
('account_report','Report Value'),
],'Type'),
'account_ids': fields.many2many('account.account', 'account_account_financial_report', 'report_line_id', 'account_id', 'Accounts'),
- 'display_detail': fields.boolean('Display details', help='Display every account with its balance instead of the sum.'),
+ 'display_detail': fields.selection([
+ ('no_detail','No detail'),
+ ('only_detail','Display children flat'),
+ ('detail_with_hierarchy','Display children with hierarchy')
+ ], 'Display details'),
'account_report_id': fields.many2one('account.financial.report', 'Report Value'),
'account_type_ids': fields.many2many('account.account.type', 'account_account_financial_report_type', 'report_id', 'account_type_id', 'Account Types'),
+ 'sign': fields.selection([(-1, 'Reverse balance sign'), (1, 'Preserve balance sign')], 'Sign on Reports', required=True, help='For accounts that are typically more debited than credited and that you would like to print as negative amounts in your reports, you should reverse the sign of the balance; e.g.: Expense account. The same applies for accounts that are typically more credited than debited and that you would like to print as positive amounts in your reports; e.g.: Income account.'),
}
_defaults = {
'type': 'sum',
+ 'display_detail': 'only_detail',
+ 'sign': 1,
}
account_financial_report()
=== modified file 'account/account_view.xml'
--- account/account_view.xml 2011-11-29 10:15:23 +0000
+++ account/account_view.xml 2011-12-01 12:57:16 +0000
@@ -786,7 +786,6 @@
<group col="2" colspan="2">
<separator string="Reporting Configuration" colspan="4"/>
<field name="report_type" select="2"/>
- <field name="sign" />
</group>
<group col="2" colspan="2">
<separator string="Closing Method" colspan="4"/>
@@ -2767,10 +2766,14 @@
<field name="parent_id"/>
<field name="sequence"/>
<field name="type"/>
+ <field name="sign"/>
</group>
- <notebook colspan="4">
+ <notebook colspan="6">
<page string="Report">
- <field name="display_detail" attrs="{'invisible': [('type','!=','accounts')]}"/>
+ <group colspan="4" col="4">
+ <field name="display_detail" attrs="{'invisible': [('type','not in',['accounts','account_type'])]}" colspan="2"/>
+ <label string="" colspan="2"/>
+ </group>
<newline/>
<field name="account_ids" nolabel="1" colspan="6" attrs="{'invisible': [('type', '!=', 'accounts')]}"/>
<newline/>
@@ -2779,9 +2782,6 @@
<field name="account_type_ids" nolabel="1" attrs="{'invisible': [('type', '!=', 'account_type')]}"/>
<newline/>
</page>
- <page string="Notes">
- <field name="note" nolabel="1" colspan="4"/>
- </page>
</notebook>
</form>
</field>
=== modified file 'account/configurable_account_chart.xml'
--- account/configurable_account_chart.xml 2011-11-09 18:12:56 +0000
+++ account/configurable_account_chart.xml 2011-12-01 12:57:16 +0000
@@ -4,14 +4,12 @@
<record model="account.account.type" id="conf_account_type_receivable">
<field name="name">Receivable</field>
<field name="code">receivable</field>
- <field name="report_type">income</field>
<field name="close_method">unreconciled</field>
</record>
<record model="account.account.type" id="conf_account_type_payable">
<field name="name">Payable</field>
<field name="code">payable</field>
- <field name="report_type">expense</field>
<field name="close_method">unreconciled</field>
</record>
@@ -24,86 +22,159 @@
<record model="account.account.type" id="account_type_income_view1">
<field name="name">Income View</field>
<field name="code">view</field>
- <field name="report_type">income</field>
</record>
<record model="account.account.type" id="account_type_expense_view1">
<field name="name">Expense View</field>
<field name="code">expense</field>
- <field name="report_type">expense</field>
</record>
<record model="account.account.type" id="account_type_asset_view1">
<field name="name">Asset View</field>
<field name="code">asset</field>
- <field name="report_type">asset</field>
</record>
<record model="account.account.type" id="account_type_liability_view1">
<field name="name">Liability View</field>
<field name="code">liability</field>
- <field name="report_type">liability</field>
</record>
<record model="account.account.type" id="conf_account_type_income">
<field name="name">Income</field>
<field name="code">income</field>
- <field name="report_type">income</field>
<field name="close_method">none</field>
</record>
<record model="account.account.type" id="conf_account_type_expense">
<field name="name">Expense</field>
<field name="code">expense</field>
- <field name="report_type">expense</field>
<field name="close_method">none</field>
</record>
<record model="account.account.type" id="conf_account_type_tax">
<field name="name">Tax</field>
<field name="code">tax</field>
- <field name="report_type">expense</field>
<field name="close_method">unreconciled</field>
</record>
<record model="account.account.type" id="conf_account_type_cash">
<field name="name">Cash</field>
<field name="code">cash</field>
- <field name="report_type">asset</field>
<field name="close_method">balance</field>
</record>
<record model="account.account.type" id="conf_account_type_liability">
<field name="name">Liability</field>
<field name="code">liability</field>
- <field name="report_type">liability</field>
<field name="close_method">balance</field>
</record>
<record model="account.account.type" id="conf_account_type_asset">
<field name="name">Asset</field>
<field name="code">asset</field>
- <field name="report_type">asset</field>
<field name="close_method">balance</field>
</record>
<record model="account.account.type" id="conf_account_type_equity">
<field name="name">Equity</field>
<field name="code">equity</field>
- <field name="report_type">liability</field>
<field name="close_method">balance</field>
</record>
- <record model="account.account.type" id="conf_account_type_bnk">
+ <record model="account.account.type" id="conf_account_type_bnk">
<field name="name">Bank</field>
<field name="code">bank</field>
- <field name="report_type">asset</field>
<field name="close_method">balance</field>
</record>
- <record model="account.account.type" id="conf_account_type_chk">
+ <record model="account.account.type" id="conf_account_type_chk">
<field name="name">Check</field>
<field name="code">check</field>
- <field name="report_type">asset</field>
<field name="close_method">balance</field>
</record>
+ <!-- Financial Reports -->
+ <record id="conf_account_financial_report_balancesheet0" model="account.financial.report">
+ <field name="name">Balance Sheet</field>
+ <field name="type">sum</field>
+ </record>
+ <record id="conf_account_financial_report_assets0" model="account.financial.report">
+ <field name="name">Assets</field>
+ <field name="parent_id" ref="conf_account_financial_report_balancesheet0"/>
+ <field name="account_type_ids" eval="[(6,0,[ref('account.conf_account_type_asset')])]"/>
+ <field name="display_detail">detail_with_hierarchy</field>
+ <field name="type">account_type</field>
+ </record>
+ <record id="conf_account_financial_report_liability0" model="account.financial.report">
+ <field name="name">Liability</field>
+ <field name="parent_id" ref="conf_account_financial_report_balancesheet0"/>
+ <field name="account_type_ids" eval="[(6,0,[ref('account.conf_account_type_liability')])]"/>
+ <field name="display_detail">detail_with_hierarchy</field>
+ <field name="type">account_type</field>
+ </record>
+
+ <record id="conf_account_financial_report_profitandloss0" model="account.financial.report">
+ <field name="name">Profit and Loss</field>
+ <field name="type">sum</field>
+ </record>
+ <record id="account_financial_report_income0" model="account.financial.report">
+ <field name="name">Income</field>
+ <field name="parent_id" ref="conf_account_financial_report_profitandloss0"/>
+ <field name="account_type_ids" eval="[(6,0,[ref('account.conf_account_type_income')])]"/>
+ <field name="display_detail">detail_with_hierarchy</field>
+ <field name="type">account_type</field>
+ </record>
+ <record id="conf_account_financial_report_expense0" model="account.financial.report">
+ <field name="name">Expense</field>
+ <field name="parent_id" ref="conf_account_financial_report_profitandloss0"/>
+ <field name="account_type_ids" eval="[(6,0,[ref('account.conf_account_type_expense')])]"/>
+ <field name="display_detail">detail_with_hierarchy</field>
+ <field name="type">account_type</field>
+ </record>
+
+ <!-- Update Account Type -->
+
+ <record id="account.conf_account_type_asset" model="account.account.type">
+ <field name="report_type">asset</field>
+ </record>
+ <record id="account.conf_account_type_liability" model="account.account.type">
+ <field name="report_type">liability</field>
+ </record>
+ <record id="account.conf_account_type_income" model="account.account.type">
+ <field name="report_type">income</field>
+ </record>
+ <record id="account.conf_account_type_expense" model="account.account.type">
+ <field name="report_type">expense</field>
+ </record>
+ <record id="account.conf_account_type_receivable" model="account.account.type">
+ <field name="report_type">asset</field>
+ </record>
+ <record id="account.conf_account_type_payable" model="account.account.type">
+ <field name="report_type">liability</field>
+ </record>
+ <record id="account.conf_account_type_equity" model="account.account.type">
+ <field name="report_type">liability</field>
+ </record>
+ <record id="account.conf_account_type_cash" model="account.account.type">
+ <field name="report_type">asset</field>
+ </record>
+ <record model="account.account.type" id="account_type_income_view1">
+ <field name="report_type">income</field>
+ </record>
+ <record model="account.account.type" id="account_type_expense_view1">
+ <field name="report_type">expense</field>
+ </record>
+ <record model="account.account.type" id="account_type_asset_view1">
+ <field name="report_type">asset</field>
+ </record>
+ <record model="account.account.type" id="account_type_liability_view1">
+ <field name="report_type">liability</field>
+ </record>
+ <record model="account.account.type" id="conf_account_type_tax">
+ <field name="report_type">expense</field>
+ </record>
+ <record model="account.account.type" id="conf_account_type_bnk">
+ <field name="report_type">asset</field>
+ </record>
+ <record model="account.account.type" id="conf_account_type_chk">
+ <field name="report_type">asset</field>
+ </record>
<!-- Account Templates-->
=== modified file 'account/demo/account_minimal.xml'
--- account/demo/account_minimal.xml 2011-11-11 20:00:36 +0000
+++ account/demo/account_minimal.xml 2011-12-01 12:57:16 +0000
@@ -13,49 +13,41 @@
<record id="account_type_asset" model="account.account.type">
<field name="name">Asset</field>
<field name="code">asset</field>
- <field name="report_type">asset</field>
<field name="close_method">balance</field>
</record>
<record id="account_type_receivable" model="account.account.type">
<field name="name">Receivable</field>
<field name="code">receivable</field>
- <field name="report_type">asset</field>
<field name="close_method">unreconciled</field>
</record>
<record id="account_type_liability" model="account.account.type">
<field name="name">Liability</field>
<field name="code">liability</field>
- <field name="report_type">liability</field>
<field name="close_method">balance</field>
</record>
<record id="account_type_payable" model="account.account.type">
<field name="name">Payable</field>
<field name="code">payable</field>
- <field name="report_type">liability</field>
<field name="close_method">unreconciled</field>
</record>
<record id="account_type_income" model="account.account.type">
<field name="name">Income</field>
<field name="code">income</field>
- <field name="report_type">income</field>
<field name="close_method">none</field>
</record>
<record id="account_type_expense" model="account.account.type">
<field name="name">Expense</field>
<field name="code">expense</field>
- <field name="report_type">expense</field>
<field name="close_method">none</field>
</record>
<record id="account_type_cash_equity" model="account.account.type">
<field name="name">Equity</field>
<field name="code">equity</field>
- <field name="report_type">liability</field>
<field name="close_method">balance</field>
</record>
<record id="account_type_cash_moves" model="account.account.type">
<field name="name">Cash</field>
<field name="code">cash</field>
- <field name="report_type">asset</field>
<field name="close_method">balance</field>
</record>
@@ -471,5 +463,76 @@
<field eval="'account.account,'+str(ref('account.a_sale'))" model="account.account" name="value"/>
<field name="company_id" ref="base.main_company"/>
</record>
+
+ <!--
+ Financial Reports
+ -->
+ <record id="account_financial_report_balancesheet0" model="account.financial.report">
+ <field name="name">Balance Sheet</field>
+ <field name="type">sum</field>
+ </record>
+ <record id="account_financial_report_assets0" model="account.financial.report">
+ <field name="name">Assets</field>
+ <field name="parent_id" ref="account_financial_report_balancesheet0"/>
+ <field name="account_type_ids" eval="[(6,0,[ref('account.account_type_asset')])]"/>
+ <field name="display_detail">detail_with_hierarchy</field>
+ <field name="type">account_type</field>
+ </record>
+ <record id="account_financial_report_liability0" model="account.financial.report">
+ <field name="name">Liability</field>
+ <field name="parent_id" ref="account_financial_report_balancesheet0"/>
+ <field name="account_type_ids" eval="[(6,0,[ref('account.account_type_liability')])]"/>
+ <field name="display_detail">detail_with_hierarchy</field>
+ <field name="type">account_type</field>
+ </record>
+
+ <record id="account_financial_report_profitandloss0" model="account.financial.report">
+ <field name="name">Profit and Loss</field>
+ <field name="type">sum</field>
+ </record>
+ <record id="account_financial_report_income0" model="account.financial.report">
+ <field name="name">Income</field>
+ <field name="parent_id" ref="account_financial_report_profitandloss0"/>
+ <field name="account_type_ids" eval="[(6,0,[ref('account.account_type_income')])]"/>
+ <field name="display_detail">detail_with_hierarchy</field>
+ <field name="type">account_type</field>
+ </record>
+ <record id="account_financial_report_expense0" model="account.financial.report">
+ <field name="name">Expense</field>
+ <field name="parent_id" ref="account_financial_report_profitandloss0"/>
+ <field name="account_type_ids" eval="[(6,0,[ref('account.account_type_expense')])]"/>
+ <field name="display_detail">detail_with_hierarchy</field>
+ <field name="type">account_type</field>
+ </record>
+
+ <!--
+ Update Account Type
+ -->
+
+ <record id="account.account_type_asset" model="account.account.type">
+ <field name="report_type">asset</field>
+ </record>
+ <record id="account.account_type_liability" model="account.account.type">
+ <field name="report_type">liability</field>
+ </record>
+ <record id="account.account_type_income" model="account.account.type">
+ <field name="report_type">income</field>
+ </record>
+ <record id="account.account_type_expense" model="account.account.type">
+ <field name="report_type">expense</field>
+ </record>
+ <record id="account.account_type_receivable" model="account.account.type">
+ <field name="report_type">asset</field>
+ </record>
+ <record id="account.account_type_payable" model="account.account.type">
+ <field name="report_type">liability</field>
+ </record>
+ <record id="account.account_type_cash_equity" model="account.account.type">
+ <field name="report_type">liability</field>
+ </record>
+ <record id="account.account_type_cash_moves" model="account.account.type">
+ <field name="report_type">asset</field>
+ </record>
+
</data>
</openerp>
=== modified file 'account/report/__init__.py'
--- account/report/__init__.py 2011-10-16 01:28:00 +0000
+++ account/report/__init__.py 2011-12-01 12:57:16 +0000
@@ -33,13 +33,13 @@
import account_aged_partner_balance
#import tax_report
import account_tax_report
-import account_balance_landscape
+#import account_balance_landscape
import account_invoice_report
import account_report
import account_entries_report
import account_analytic_entries_report
-import account_balance_sheet
-import account_profit_loss
+#import account_balance_sheet
+#import account_profit_loss
import account_treasury_report
import account_financial_report
=== modified file 'account/report/account_financial_report.py'
--- account/report/account_financial_report.py 2011-11-22 08:51:38 +0000
+++ account/report/account_financial_report.py 2011-12-01 12:57:16 +0000
@@ -64,17 +64,21 @@
vals['balance_cmp'] = self.pool.get('account.financial.report').browse(self.cr, self.uid, report.id, context=data['form']['comparison_context']).balance
lines.append(vals)
account_ids = []
- if report.type == 'accounts' and report.display_detail and report.account_ids:
- account_ids = account_obj._get_children_and_consol(self.cr, self.uid, [x.id for x in report.account_ids])
+ if report.type == 'accounts' and report.account_ids:
+ if report.display_detail == 'only_detail':
+ account_ids = account_obj._get_children_and_consol(self.cr, self.uid, [x.id for x in report.account_ids])
+ elif report.display_detail == 'detail_with_hierarchy':
+ account_ids = [x.id for x in report.account_ids]
elif report.type == 'account_type' and report.account_type_ids:
account_ids = account_obj.search(self.cr, self.uid, [('user_type','in', [x.id for x in report.account_type_ids])])
+ account_ids.sort()
if account_ids:
for account in account_obj.browse(self.cr, self.uid, account_ids, context=data['form']['used_context']):
- if account.type != 'view':
+ if report.display_detail == 'detail_with_hierarchy' or account.type != 'view':
flag = False
vals = {
'name': account.code + ' ' + account.name,
- 'balance': account.balance != 0 and account.balance * account.user_type.sign or account.balance,
+ 'balance': account.balance != 0 and account.balance * report.sign or account.balance,
'type': 'account',
'level': 6,
'account_type': account.type,
=== modified file 'account/report/account_financial_report.rml'
--- account/report/account_financial_report.rml 2011-11-08 10:07:00 +0000
+++ account/report/account_financial_report.rml 2011-12-01 12:57:16 +0000
@@ -130,15 +130,13 @@
<paraStyle name="terp_level_1_name" fontName="Helvetica-Bold" fontSize="9.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_1_balance" fontName="Helvetica-Bold" fontSize="9.0" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_2_name" fontName="Helvetica-Bold" fontSize="8.0" leftIndent="10.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
- <paraStyle name="terp_level_2_balance" fontName="Helvetica-Bold" fontSize="8.0" leftIndent=".0" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
- <paraStyle name="terp_level_3_name" fontName="Helvetica-Bold" fontSize="8.0" leftIndent="20.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
- <paraStyle name="terp_level_3_balance" fontName="Helvetica-Bold" fontSize="8.0" leftIndent=".0" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
+ <paraStyle name="terp_level_2_balance" fontName="Helvetica-Bold" fontSize="8.0" leftIndent="10.0" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
+ <paraStyle name="terp_level_3_name" fontName="Helvetica" fontSize="8.0" leftIndent="20.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+ <paraStyle name="terp_level_3_name_bold" fontName="Helvetica-Bold" fontSize="8.0" leftIndent="20.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+ <paraStyle name="terp_level_3_balance" fontName="Helvetica" fontSize="8.0" leftIndent="0.0" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
+ <paraStyle name="terp_level_3_balance_bold" fontName="Helvetica-Bold" fontSize="8.0" leftIndent="0.0" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_4_name" fontName="Helvetica" fontSize="8.0" leftIndent="30.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
- <paraStyle name="terp_level_4_balance" fontName="Helvetica" fontSize="8.0" leftIndent="0.0" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
- <paraStyle name="terp_level_5_name" fontName="Helvetica" fontSize="8.0" leftIndent="40.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
- <paraStyle name="terp_level_5_balance" fontName="Helvetica-Oblique" fontSize="8.0" leftIndent="0.0" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
- <paraStyle name="terp_level_6_name" fontName="Helvetica" fontSize="8.0" leftIndent="50.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
- <paraStyle name="terp_level_6_balance" fontName="Helvetica" fontSize="8.0" leftIndent="0.0" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
+ <paraStyle name="terp_level_4_name_bold" fontName="Helvetica-Bold" fontSize="8.0" leftIndent="30.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<blockTableStyle id="Table1">
<blockTopPadding start="0,0" stop="-1,0" length="15"/>
@@ -229,13 +227,13 @@
<para style="terp_tblheader_Details_Right">Balance</para>
</td>
</tr>
- <tr style="Table1">
+ <tr style="Table3">
[[ repeatIn(get_lines(data), 'a') ]]
[[ (a.get('level') <> 0) or removeParentNode('tr') ]]
[[ setTag('tr','tr',{'style': 'Table'+str(min(3,'level' in a and a.get('level') or 1))}) ]]
- <td><para style="terp_level_1_name">[[ setTag('para','para',{'style': 'terp_level_'+str(min(6,a['level']))+'_name'}) ]] [[ a.get('name') ]]</para></td>
- <td>[[ a.get('level') == 4 or removeParentNode('td') ]]<para style="terp_level_1_balance"><u>[[ setTag('para','para',{'style': 'terp_level_'+str(min(6,a['level']))+'_balance'}) ]][[ formatLang(a.get('balance'))]] [[company.currency_id.symbol]]</u></para></td>
- <td>[[ a.get('level') <> 4 or removeParentNode('td') ]]<para style="terp_level_1_balance">[[ setTag('para','para',{'style': 'terp_level_'+str(min(6,a['level']))+'_balance'}) ]][[ formatLang(a.get('balance'))]] [[company.currency_id.symbol]]</para></td>
+ <td><para style="terp_level_3_name">[[ (a.get('account_type') =='view' and a.get('level') >= 3) and setTag('para','para',{'style': 'terp_level_'+str(min(3,a.get('level')))+'_name_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(4,a.get('level')))+'_name'}) ]][[ a.get('name') ]]</para></td>
+ <td>[[ (a.get('level') <>2) or removeParentNode('td') ]]<para style="terp_level_3_balance">[[ (a.get('account_type') =='view' and a.get('level') >= 3) and setTag('para','para',{'style': 'terp_level_3_balance_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(3,a.get('level')))+'_balance'}) ]][[ formatLang(a.get('balance'), currency_obj = company.currency_id) ]]</para></td>
+ <td>[[ a.get('level') == 2 or removeParentNode('td') ]]<para style="terp_level_2_balance"><u>[[ formatLang(a.get('balance'), currency_obj = company.currency_id) ]]</u></para></td>
</tr>
</blockTable>
<para style="Standard">
@@ -258,11 +256,11 @@
[[ repeatIn(get_lines(data), 'a') ]]
[[ (a.get('level') <> 0) or removeParentNode('tr') ]]
[[ setTag('tr','tr',{'style': 'Table'+str(min(3,'level' in a and a.get('level') or 1))}) ]]
- <td><para style="terp_level_1_name">[[ setTag('para','para',{'style': 'terp_level_'+str(min(6,a['level']))+'_name'}) ]] [[ a.get('name') ]]</para></td>
- <td>[[ a.get('level') == 4 or removeParentNode('td') ]]<para style="terp_level_1_balance"><u>[[ setTag('para','para',{'style': 'terp_level_'+str(min(6,a['level']))+'_balance'}) ]][[ formatLang(a.get('balance'))]] [[company.currency_id.symbol]]</u></para></td>
- <td>[[ a.get('level') <> 4 or removeParentNode('td') ]]<para style="terp_level_1_balance">[[ setTag('para','para',{'style': 'terp_level_'+str(min(6,a['level']))+'_balance'}) ]][[ formatLang(a.get('balance'))]] [[company.currency_id.symbol]]</para></td>
- <td>[[ a.get('level') == 4 or removeParentNode('td') ]]<para style="terp_level_1_balance"><u>[[ setTag('para','para',{'style': 'terp_level_'+str(min(6,a['level']))+'_balance'}) ]][[ formatLang(a.get('balance_cmp'))]] [[company.currency_id.symbol]]</u></para></td>
- <td>[[ a.get('level') <> 4 or removeParentNode('td') ]]<para style="terp_level_1_balance">[[ setTag('para','para',{'style': 'terp_level_'+str(min(6,a['level']))+'_balance'}) ]][[ formatLang(a.get('balance_cmp'))]] [[company.currency_id.symbol]]</para></td>
+ <td><para style="terp_level_3_name">[[ (a.get('account_type') =='view' and a.get('level') >= 3) and setTag('para','para',{'style': 'terp_level_'+str(min(3,a.get('level')))+'_name_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(4,a.get('level')))+'_name'}) ]][[ a.get('name') ]]</para></td>
+ <td>[[ (a.get('level') <>2) or removeParentNode('td') ]]<para style="terp_level_3_balance">[[ (a.get('account_type') =='view' and a.get('level') >= 3) and setTag('para','para',{'style': 'terp_level_3_balance_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(3,a.get('level')))+'_balance'}) ]][[ formatLang(a.get('balance'), currency_obj = company.currency_id) ]]</para></td>
+ <td>[[ a.get('level') == 2 or removeParentNode('td') ]]<para style="terp_level_2_balance"><u>[[ formatLang(a.get('balance'), currency_obj = company.currency_id) ]]</u></para></td>
+ <td>[[ (a.get('level') <>2) or removeParentNode('td') ]]<para style="terp_level_3_balance">[[ (a.get('account_type') =='view' and a.get('level') >= 3) and setTag('para','para',{'style': 'terp_level_3_balance_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(3,a.get('level')))+'_balance'}) ]][[ formatLang(a.get('balance_cmp'), currency_obj = company.currency_id) ]]</para></td>
+ <td>[[ a.get('level') == 2 or removeParentNode('td') ]]<para style="terp_level_2_balance"><u>[[ formatLang(a.get('balance_cmp'), currency_obj = company.currency_id) ]]</u></para></td>
</tr>
</blockTable>
<para style="Standard">
=== modified file 'account/test/account_report.yml'
--- account/test/account_report.yml 2011-10-16 01:28:00 +0000
+++ account/test/account_report.yml 2011-12-01 12:57:16 +0000
@@ -38,23 +38,14 @@
from tools import test_reports
test_reports.try_report_action(cr, uid, 'action_account_aged_balance_view',wiz_data=data_dict, context=ctx, our_module='account')
-
- Print the Account Balance Sheet in Horizontal mode
--
- !python {model: account.account}: |
- ctx={}
- ctx.update({'model': 'account.account','active_ids':[ref('account.chart0')]})
- data_dict = {'chart_account_id':ref('account.chart0'),'display_type': True}
- from tools import test_reports
- test_reports.try_report_action(cr, uid, 'action_account_bs_report',wiz_data=data_dict, context=ctx, our_module='account')
--
Print the Account Balance Sheet in Normal mode
-
!python {model: account.account}: |
ctx={}
ctx.update({'model': 'account.account','active_ids':[ref('account.chart0')]})
- data_dict = {'chart_account_id':ref('account.chart0'),'display_type': False}
+ data_dict = {'chart_account_id':ref('account.chart0'),'display_type': False, 'account_report_id': ref('account_financial_report_balancesheet0')}
from tools import test_reports
- test_reports.try_report_action(cr, uid, 'action_account_bs_report',wiz_data=data_dict, context=ctx, our_module='account')
+ test_reports.try_report_action(cr, uid, 'action_account_report',wiz_data=data_dict, context=ctx, our_module='account')
-
Print the Account Balance Report in Normal mode through the wizard - From Account Chart
-
@@ -147,18 +138,9 @@
!python {model: account.account}: |
ctx={}
ctx.update({'model': 'account.account','active_ids':[ref('account.chart0')]})
- data_dict = {'chart_account_id':ref('account.chart0'),'display_type': False,'target_move': 'all'}
- from tools import test_reports
- test_reports.try_report_action(cr, uid, 'action_account_pl_report',wiz_data=data_dict, context=ctx, our_module='account')
--
- Print the Profit-Loss Report in Horizontal Mode
--
- !python {model: account.account}: |
- ctx={}
- ctx.update({'model': 'account.account','active_ids':[ref('account.chart0')]})
- data_dict = {'chart_account_id':ref('account.chart0'),'display_type': True,'target_move': 'all'}
- from tools import test_reports
- test_reports.try_report_action(cr, uid, 'action_account_pl_report',wiz_data=data_dict, context=ctx, our_module='account')
+ data_dict = {'chart_account_id':ref('account.chart0'),'display_type': False,'target_move': 'all', 'account_report_id': ref('account_financial_report_balancesheet0')}
+ from tools import test_reports
+ test_reports.try_report_action(cr, uid, 'action_account_report',wiz_data=data_dict, context=ctx, our_module='account')
-
Print the Analytic Balance Report through the wizard
-
=== modified file 'account/wizard/__init__.py'
--- account/wizard/__init__.py 2011-09-29 11:08:56 +0000
+++ account/wizard/__init__.py 2011-12-01 12:57:16 +0000
@@ -64,8 +64,8 @@
import account_change_currency
-import account_report_balance_sheet
-import account_report_profit_loss
+#import account_report_balance_sheet
+#import account_report_profit_loss
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
=== modified file 'account/wizard/account_financial_report.py'
--- account/wizard/account_financial_report.py 2011-09-19 14:12:51 +0000
+++ account/wizard/account_financial_report.py 2011-12-01 12:57:16 +0000
@@ -38,9 +38,19 @@
'date_to_cmp': fields.date("End Date"),
}
+ def _get_account_report(self, cr, uid, context=None):
+ menu_obj = self.pool.get('ir.ui.menu')
+ report_obj = self.pool.get('account.financial.report')
+ report_ids = []
+ if context.get('active_id'):
+ menu = menu_obj.browse(cr, uid, context.get('active_id')).name
+ report_ids = report_obj.search(cr, uid, [('name','ilike',menu)])
+ return report_ids and report_ids[0] or False
+
_defaults = {
'filter_cmp': 'filter_no',
'target_move': 'posted',
+ 'account_report_id': _get_account_report,
}
def _build_comparison_context(self, cr, uid, ids, data, context=None):
=== modified file 'account/wizard/account_financial_report_view.xml'
--- account/wizard/account_financial_report_view.xml 2011-09-22 00:13:01 +0000
+++ account/wizard/account_financial_report_view.xml 2011-12-01 12:57:16 +0000
@@ -40,6 +40,24 @@
<field name="target">new</field>
</record>
+ <menuitem
+ parent="account.menu_finance_legal_statement"
+ id="final_accounting_reports"
+ name="Accounting Reports"/>
+
+ <menuitem icon="STOCK_PRINT"
+ name="Profit And Loss"
+ action="account.action_account_report"
+ id="menu_account_pl_report"
+ parent="final_accounting_reports"/>
+
+ <menuitem icon="STOCK_PRINT"
+ name="Balance Sheet"
+ action="account.action_account_report"
+ groups="group_account_user,group_account_manager"
+ id="menu_account_bs_report"
+ parent="final_accounting_reports"/>
+
<menuitem icon="STOCK_PRINT"
name="Financial Report"
action="action_account_report"
_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help : https://help.launchpad.net/ListHelp