[MERGE] account financial report type=account_type, honor user_type sign
bzr revid: al@openerp.com-20110922002113-1t1qutvu9mntmcd8
This commit is contained in:
commit
3b64352133
|
@ -139,7 +139,7 @@ class account_account_type(osv.osv):
|
|||
'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, 'Negative'), (1, 'Positive')], 'Sign on Reports', required=True, help='Allows you to change the sign of the balance amount displayed in the reports, so that you can see positive figures instead of negative ones in expenses accounts.'),
|
||||
'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)'),
|
||||
|
@ -2637,6 +2637,10 @@ class account_fiscal_position_account_template(osv.osv):
|
|||
|
||||
account_fiscal_position_account_template()
|
||||
|
||||
# ---------------------------------------------------------
|
||||
# Account Financial Report
|
||||
# ---------------------------------------------------------
|
||||
|
||||
class account_financial_report(osv.osv):
|
||||
_name = "account.financial.report"
|
||||
_description = "Account Report"
|
||||
|
@ -2691,17 +2695,19 @@ class account_financial_report(osv.osv):
|
|||
'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([
|
||||
('sum','Sum'),
|
||||
('sum','View'),
|
||||
('accounts','Accounts'),
|
||||
('account_report','Account Report'),
|
||||
('account_type','Account Type'),
|
||||
('account_report','Report Value'),
|
||||
],'Type'),
|
||||
'account_ids': fields.many2many('account.account', 'account_account_financial_report', 'report_line_id', 'account_id', 'Accounts'),
|
||||
'note': fields.text('Notes'),
|
||||
'account_report_id': fields.many2one('account.financial.report', 'Account Report'),
|
||||
'balance': fields.function(_get_balance, 'Balance'),
|
||||
'display_detail': fields.boolean('Display the account list'),
|
||||
'level': fields.function(_get_level, string='Level', store=True, type='integer'),
|
||||
'display_detail': fields.boolean('Display details', help='Display every account with its balance instead of the sum.'),
|
||||
'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'),
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
|
@ -2710,7 +2716,9 @@ class account_financial_report(osv.osv):
|
|||
|
||||
account_financial_report()
|
||||
|
||||
# Multi charts of Accounts wizard
|
||||
# ---------------------------------------------------------
|
||||
# Account generation from template wizards
|
||||
# ---------------------------------------------------------
|
||||
|
||||
class wizard_multi_charts_accounts(osv.osv_memory):
|
||||
"""
|
||||
|
|
|
@ -749,6 +749,7 @@
|
|||
<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"/>
|
||||
|
@ -2713,16 +2714,27 @@ action = pool.get('res.config').next(cr, uid, [], context)
|
|||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Account Report">
|
||||
<field name="name"/>
|
||||
<field name="parent_id"/>
|
||||
<field name="sequence"/>
|
||||
<field name="type"/>
|
||||
<field name="account_report_id" attrs="{'readonly': [('type', '!=', 'account_report')]}"/>
|
||||
<separator string="Accounts" colspan="4"/>
|
||||
<field name="display_detail" attrs="{'readonly': [('type', '!=', 'accounts')]}"/>
|
||||
<field name="account_ids" nolabel="1" colspan="4" attrs="{'readonly': [('type', '!=', 'accounts')]}"/>
|
||||
<separator string="Notes" colspan="4"/>
|
||||
<field name="note" nolabel="1" colspan="4"/>
|
||||
<group col="6" colspan="4">
|
||||
<field name="name"/>
|
||||
<field name="parent_id"/>
|
||||
<field name="sequence"/>
|
||||
<field name="type"/>
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
<page string="Report" attrs="{'invisible': [('state','!=','confirm')]}">
|
||||
<field name="display_detail" attrs="{'invisible': [('type','!=','accounts')]}"/>
|
||||
<newline/>
|
||||
<field name="account_ids" nolabel="1" colspan="6" attrs="{'invisible': [('type', '!=', 'accounts')]}"/>
|
||||
<newline/>
|
||||
<field name="account_report_id" attrs="{'invisible': [('type', '!=', 'account_report')]}"/>
|
||||
<newline/>
|
||||
<field name="account_type_ids" nolabel="1" attrs="{'invisible': [('type', '!=', 'account_type')]}"/>
|
||||
<newline/>
|
||||
</page>
|
||||
<page string="Notes" attrs="{'invisible': [('state','!=','confirm')]}">
|
||||
<field name="note" nolabel="1" colspan="4"/>
|
||||
</page>
|
||||
</notebook>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
@ -2763,7 +2775,7 @@ action = pool.get('res.config').next(cr, uid, [], context)
|
|||
</record>
|
||||
|
||||
<record id="action_account_financial_report_tree" model="ir.actions.act_window">
|
||||
<field name="name">Account Reports</field>
|
||||
<field name="name">Financial Reports</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">account.financial.report</field>
|
||||
<field name="view_type">form</field>
|
||||
|
@ -2790,7 +2802,7 @@ action = pool.get('res.config').next(cr, uid, [], context)
|
|||
</field>
|
||||
</record>
|
||||
<record id="action_account_report_tree_hierarchy" model="ir.actions.act_window">
|
||||
<field name="name">Account Reports Hierarchy</field>
|
||||
<field name="name">Financial Reports Hierarchy</field>
|
||||
<field name="res_model">account.financial.report</field>
|
||||
<field name="view_type">tree</field>
|
||||
<field name="view_id" ref="view_account_report_tree_hierarchy"/>
|
||||
|
|
|
@ -136,7 +136,7 @@ class report_balancesheet_horizontal(report_sxw.rml_parse, common_report_header)
|
|||
'code': account.code,
|
||||
'name': account.name,
|
||||
'level': account.level,
|
||||
'balance':account.balance,
|
||||
'balance': account.balance != 0 and account.balance * account.user_type.sign or account.balance,
|
||||
'type': account.type,
|
||||
}
|
||||
currency = account.currency_id and account.currency_id or account.company_id.currency_id
|
||||
|
|
|
@ -63,14 +63,18 @@ class report_account_common(report_sxw.rml_parse, common_report_header):
|
|||
if data['form']['enable_filter']:
|
||||
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])
|
||||
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])])
|
||||
if account_ids:
|
||||
for account in account_obj.browse(self.cr, self.uid, account_ids, context=data['form']['used_context']):
|
||||
if account.type != 'view':
|
||||
flag = False
|
||||
vals = {
|
||||
'name': account.code + ' ' + account.name,
|
||||
'balance': account.balance,
|
||||
'balance': account.balance != 0 and account.balance * account.user_type.sign or account.balance,
|
||||
'type': 'account',
|
||||
'level': 6,
|
||||
'account_type': account.type,
|
||||
|
|
|
@ -141,11 +141,15 @@ class report_pl_account_horizontal(report_sxw.rml_parse, common_report_header):
|
|||
'code': cal_list['expense'][i].code,
|
||||
'name': cal_list['expense'][i].name,
|
||||
'level': cal_list['expense'][i].level,
|
||||
'balance':cal_list['expense'][i].balance,
|
||||
'balance': cal_list['expense'][i].balance != 0 and \
|
||||
cal_list['expense'][i].balance * cal_list['expense'][i].user_type.sign or \
|
||||
cal_list['expense'][i].balance,
|
||||
'code1': cal_list['income'][i].code,
|
||||
'name1': cal_list['income'][i].name,
|
||||
'level1': cal_list['income'][i].level,
|
||||
'balance1':cal_list['income'][i].balance,
|
||||
'balance1': cal_list['income'][i].balance != 0 and \
|
||||
cal_list['income'][i].balance * cal_list['income'][i].user_type.sign or \
|
||||
cal_list['income'][i].balance,
|
||||
}
|
||||
self.result_temp.append(temp)
|
||||
else:
|
||||
|
@ -158,7 +162,9 @@ class report_pl_account_horizontal(report_sxw.rml_parse, common_report_header):
|
|||
'code1': cal_list['income'][i].code,
|
||||
'name1': cal_list['income'][i].name,
|
||||
'level1': cal_list['income'][i].level,
|
||||
'balance1':cal_list['income'][i].balance,
|
||||
'balance1': cal_list['income'][i].balance != 0 and \
|
||||
cal_list['income'][i].balance * cal_list['income'][i].user_type.sign \
|
||||
or cal_list['income'][i].balance,
|
||||
}
|
||||
self.result_temp.append(temp)
|
||||
if i < len(cal_list['expense']):
|
||||
|
@ -166,7 +172,9 @@ class report_pl_account_horizontal(report_sxw.rml_parse, common_report_header):
|
|||
'code': cal_list['expense'][i].code,
|
||||
'name': cal_list['expense'][i].name,
|
||||
'level': cal_list['expense'][i].level,
|
||||
'balance':cal_list['expense'][i].balance,
|
||||
'balance': cal_list['expense'][i].balance != 0 and \
|
||||
cal_list['expense'][i].balance * cal_list['expense'][i].user_type.sign \
|
||||
or cal_list['expense'][i].balance,
|
||||
'code1': '',
|
||||
'name1': '',
|
||||
'level1': False,
|
||||
|
|
|
@ -228,8 +228,8 @@
|
|||
[[ setTag('tr','tr',{'style': 'Table'+str(min(3,a.level))}) ]]
|
||||
<td><para style="terp_level_3_code">[[ (a.type =='view' and a.level >= 3) and setTag('para','para',{'style': 'terp_level_3_code_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(3,a.level))+'_code'}) ]]<i>[[ a.code ]]</i></para></td>
|
||||
<td><para style="terp_level_3_name">[[ (a.type =='view' and a.level >= 3) and setTag('para','para',{'style': 'terp_level_'+str(min(3,a.level))+'_name_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(4,a.level))+'_name'}) ]][[ a.name ]]</para></td>
|
||||
<td>[[ (a.level <>2) or removeParentNode('td') ]]<para style="terp_level_3_balance">[[ (a.type =='view' and a.level >= 3) and setTag('para','para',{'style': 'terp_level_3_balance_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(3,a.level))+'_balance'}) ]][[ formatLang(a.balance, currency_obj=company.currency_id) ]]</para></td>
|
||||
<td>[[ a.level == 2 or removeParentNode('td') ]]<para style="terp_level_2_balance"><u>[[ formatLang(a.balance, currency_obj=company.currency_id) ]]</u></para></td>
|
||||
<td>[[ (a.level <>2) or removeParentNode('td') ]]<para style="terp_level_3_balance">[[ (a.type =='view' and a.level >= 3) and setTag('para','para',{'style': 'terp_level_3_balance_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(3,a.level))+'_balance'}) ]][[ formatLang(a.balance * a.user_type.sign, currency_obj=company.currency_id.symbol)</para></td>
|
||||
<td>[[ a.level == 2 or removeParentNode('td') ]]<para style="terp_level_2_balance"><u>[[ formatLang(a.balance * a.user_type.sign, currency_obj=company.currency_id) ]]</u></para></td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<blockTable colWidths="100.0,326.0,113.0" style="Table_Net_Profit_Loss">
|
||||
|
@ -277,8 +277,8 @@
|
|||
[[ setTag('tr','tr',{'style': 'Table'+str(min(3,a.level))}) ]]
|
||||
<td><para style="terp_level_3_code">[[ (a.type =='view' and a.level >= 3) and setTag('para','para',{'style': 'terp_level_3_code_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(3,a.level))+'_code'}) ]]<i>[[ a.code ]]</i></para></td>
|
||||
<td><para style="terp_level_3_name">[[ (a.type =='view' and a.level >= 3) and setTag('para','para',{'style': 'terp_level_'+str(min(3,a.level))+'_name_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(4,a.level))+'_name'}) ]][[ a.name ]]</para></td>
|
||||
<td>[[ (a.level <>2) or removeParentNode('td') ]]<para style="terp_level_3_balance">[[ (a.type =='view' and a.level >= 3) and setTag('para','para',{'style': 'terp_level_3_balance_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(3,a.level))+'_balance'}) ]][[ formatLang(a.balance, currency_obj=company.currency_id) ]]</para></td>
|
||||
<td>[[ a.level == 2 or removeParentNode('td') ]]<para style="terp_level_2_balance"><u>[[ formatLang(a.balance, currency_obj=company.currency_id) ]]</u></para></td>
|
||||
<td>[[ (a.level <>2) or removeParentNode('td') ]]<para style="terp_level_3_balance">[[ (a.type =='view' and a.level >= 3) and setTag('para','para',{'style': 'terp_level_3_balance_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(3,a.level))+'_balance'}) ]][[ formatLang(a.balance * a.user_type.sign, currency_obj=company.currency_id) ]]</para></td>
|
||||
<td>[[ a.level == 2 or removeParentNode('td') ]]<para style="terp_level_2_balance"><u>[[ formatLang(a.balance * a.user_type.sign, currency_obj=company.currency_id) ]]</u></para></td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<blockTable colWidths="100.0,326.0,113.0" style="Table4">
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
</record>
|
||||
|
||||
<record id="action_account_report" model="ir.actions.act_window">
|
||||
<field name="name">Financial Report</field>
|
||||
<field name="name">Financial Reports</field>
|
||||
<field name="res_model">accounting.report</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_type">form</field>
|
||||
|
|
Loading…
Reference in New Issue