[IMP] account: Improved report.
bzr revid: uco@tinyerp.com-20110812112321-3q1vfylgojz0s91h
This commit is contained in:
parent
27a0a2c059
commit
d4ee49e658
|
@ -1331,7 +1331,7 @@ class account_move(osv.osv):
|
||||||
|
|
||||||
def _centralise(self, cr, uid, move, mode, context=None):
|
def _centralise(self, cr, uid, move, mode, context=None):
|
||||||
assert mode in ('debit', 'credit'), 'Invalid Mode' #to prevent sql injection
|
assert mode in ('debit', 'credit'), 'Invalid Mode' #to prevent sql injection
|
||||||
currency_obj = self.pool.get('res.currency')
|
currency_obj = self.pool.get('res.currency')
|
||||||
if context is None:
|
if context is None:
|
||||||
context = {}
|
context = {}
|
||||||
|
|
||||||
|
@ -1593,7 +1593,7 @@ class account_tax_code(osv.osv):
|
||||||
(parent_ids,) + where_params)
|
(parent_ids,) + where_params)
|
||||||
res=dict(cr.fetchall())
|
res=dict(cr.fetchall())
|
||||||
obj_precision = self.pool.get('decimal.precision')
|
obj_precision = self.pool.get('decimal.precision')
|
||||||
res2 = {}
|
res2 = {}
|
||||||
for record in self.browse(cr, uid, ids, context=context):
|
for record in self.browse(cr, uid, ids, context=context):
|
||||||
def _rec_get(record):
|
def _rec_get(record):
|
||||||
amount = res.get(record.id, 0.0)
|
amount = res.get(record.id, 0.0)
|
||||||
|
@ -2607,6 +2607,30 @@ class account_fiscal_position_account_template(osv.osv):
|
||||||
|
|
||||||
account_fiscal_position_account_template()
|
account_fiscal_position_account_template()
|
||||||
|
|
||||||
|
class account_report(osv.osv):
|
||||||
|
_name = "account.report"
|
||||||
|
_description = "Account Report"
|
||||||
|
|
||||||
|
_columns = {
|
||||||
|
'name': fields.char('Report Name', size=64, required=True),
|
||||||
|
'parent_id': fields.many2one('account.report', 'Parent Report'),
|
||||||
|
'sequence': fields.integer('Sequence'),
|
||||||
|
'type': fields.selection([
|
||||||
|
('sum','Sum'),
|
||||||
|
('accounts','Accounts'),
|
||||||
|
('account_report','Account Report'),
|
||||||
|
],'Type'),
|
||||||
|
'account_ids': fields.many2many('account.account', 'account_account_report', 'report_line_id', 'account_id', 'Accounts'),
|
||||||
|
'note': fields.text('Notes'),
|
||||||
|
'account_report_id': fields.many2one('account.report', 'Account Report'),
|
||||||
|
}
|
||||||
|
|
||||||
|
_defaults = {
|
||||||
|
'type': 'sum',
|
||||||
|
}
|
||||||
|
|
||||||
|
account_report()
|
||||||
|
|
||||||
# Multi charts of Accounts wizard
|
# Multi charts of Accounts wizard
|
||||||
|
|
||||||
class wizard_multi_charts_accounts(osv.osv_memory):
|
class wizard_multi_charts_accounts(osv.osv_memory):
|
||||||
|
|
|
@ -30,6 +30,7 @@
|
||||||
<menuitem id="base.menu_action_currency_form" parent="menu_configuration_misc" sequence="20"/>
|
<menuitem id="base.menu_action_currency_form" parent="menu_configuration_misc" sequence="20"/>
|
||||||
<menuitem id="menu_finance_generic_reporting" name="Generic Reporting" parent="menu_finance_reporting" sequence="100"/>
|
<menuitem id="menu_finance_generic_reporting" name="Generic Reporting" parent="menu_finance_reporting" sequence="100"/>
|
||||||
<menuitem id="menu_finance_entries" name="Journal Entries" parent="menu_finance" sequence="5" groups="group_account_user,group_account_manager"/>
|
<menuitem id="menu_finance_entries" name="Journal Entries" parent="menu_finance" sequence="5" groups="group_account_user,group_account_manager"/>
|
||||||
|
<menuitem id="menu_account_reports" name="Reports" parent="menu_finance_accounting" sequence="18"/>
|
||||||
|
|
||||||
<menuitem id="account.menu_finance_recurrent_entries" name="Recurring Entries"
|
<menuitem id="account.menu_finance_recurrent_entries" name="Recurring Entries"
|
||||||
parent="menu_finance_periodical_processing" sequence="15"
|
parent="menu_finance_periodical_processing" sequence="15"
|
||||||
|
|
|
@ -2703,5 +2703,54 @@ action = self.pool.get('res.config').next(cr, uid, [], context)
|
||||||
parent="menu_finance_payables"
|
parent="menu_finance_payables"
|
||||||
action="base.action_partner_supplier_form" sequence="100"/>
|
action="base.action_partner_supplier_form" sequence="100"/>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Account Reports
|
||||||
|
-->
|
||||||
|
|
||||||
|
<record id="view_account_report_form" model="ir.ui.view">
|
||||||
|
<field name="name">account.report.form</field>
|
||||||
|
<field name="model">account.report</field>
|
||||||
|
<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"/>
|
||||||
|
<separator string="Accounts" colspan="4"/>
|
||||||
|
<field name="account_ids" nolabel="1" colspan="4"/>
|
||||||
|
<separator string="Notes" colspan="4"/>
|
||||||
|
<field name="note" nolabel="1" colspan="4"/>
|
||||||
|
</form>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="view_account_report_tree" model="ir.ui.view">
|
||||||
|
<field name="name">account.report.tree</field>
|
||||||
|
<field name="model">account.report</field>
|
||||||
|
<field name="type">tree</field>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<tree string="Account Report">
|
||||||
|
<field name="sequence"/>
|
||||||
|
<field name="name"/>
|
||||||
|
<field name="parent_id"/>
|
||||||
|
<field name="type"/>
|
||||||
|
<field name="account_report_id"/>
|
||||||
|
</tree>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="action_account_report_tree" model="ir.actions.act_window">
|
||||||
|
<field name="name">Account Reports</field>
|
||||||
|
<field name="type">ir.actions.act_window</field>
|
||||||
|
<field name="res_model">account.report</field>
|
||||||
|
<field name="view_type">form</field>
|
||||||
|
<field name="view_mode">tree,form</field>
|
||||||
|
<field name="view_id" ref="view_account_report_tree"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<menuitem id="menu_account_reports_tree" name="Account Reports" parent="menu_account_reports" action="action_account_report_tree"/>
|
||||||
|
|
||||||
</data>
|
</data>
|
||||||
</openerp>
|
</openerp>
|
||||||
|
|
|
@ -42,6 +42,7 @@ import account_analytic_entries_report
|
||||||
import account_balance_sheet
|
import account_balance_sheet
|
||||||
import account_profit_loss
|
import account_profit_loss
|
||||||
import account_treasury_report
|
import account_treasury_report
|
||||||
|
import account_report_common
|
||||||
|
|
||||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,83 @@
|
||||||
|
##############################################################################
|
||||||
|
#
|
||||||
|
# OpenERP, Open Source Management Solution
|
||||||
|
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as
|
||||||
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
|
# License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
##############################################################################
|
||||||
|
|
||||||
|
import time
|
||||||
|
import pooler
|
||||||
|
from report import report_sxw
|
||||||
|
from common_report_header import common_report_header
|
||||||
|
from tools.translate import _
|
||||||
|
|
||||||
|
class report_account_common(report_sxw.rml_parse, common_report_header):
|
||||||
|
|
||||||
|
def __init__(self, cr, uid, name, context=None):
|
||||||
|
super(report_account_common, self).__init__(cr, uid, name, context=context)
|
||||||
|
self.localcontext.update( {
|
||||||
|
'time': time,
|
||||||
|
'get_report_name': self._get_report_name,
|
||||||
|
'get_fiscalyear': self._get_fiscalyear,
|
||||||
|
'get_account': self._get_account,
|
||||||
|
'get_start_period': self.get_start_period,
|
||||||
|
'get_end_period': self.get_end_period,
|
||||||
|
'get_sortby': self._get_sortby,
|
||||||
|
'get_filter': self._get_filter,
|
||||||
|
'get_start_date':self._get_start_date,
|
||||||
|
'get_end_date':self._get_end_date,
|
||||||
|
'get_company':self._get_company,
|
||||||
|
'get_account_details': self.get_account_details,
|
||||||
|
})
|
||||||
|
self.context = context
|
||||||
|
|
||||||
|
def set_context(self, objects, data, ids, report_type=None):
|
||||||
|
new_ids = ids
|
||||||
|
if (data['model'] == 'ir.ui.menu'):
|
||||||
|
new_ids = 'chart_account_id' in data['form'] and [data['form']['chart_account_id']] or []
|
||||||
|
objects = self.pool.get('account.account').browse(self.cr, self.uid, new_ids)
|
||||||
|
return super(report_account_common, self).set_context(objects, data, new_ids, report_type=report_type)
|
||||||
|
|
||||||
|
def _get_report_name(self, data):
|
||||||
|
cr, uid = self.cr, self.uid
|
||||||
|
db_pool = pooler.get_pool(self.cr.dbname)
|
||||||
|
|
||||||
|
report_obj = db_pool.get('account.report')
|
||||||
|
children = []
|
||||||
|
name = data['form'].get('account_report_id') and data['form']['account_report_id'][1] or ''
|
||||||
|
report_id = data['form'].get('account_report_id') and data['form']['account_report_id'][0] or False
|
||||||
|
children.append({'id': report_id, 'name': name})
|
||||||
|
if report_id:
|
||||||
|
child_ids = report_obj.search(cr, uid, [('parent_id','=',report_id)])
|
||||||
|
for chld in report_obj.browse(cr, uid, child_ids):
|
||||||
|
children.append({'id': chld.id, 'name': chld.name})
|
||||||
|
return children
|
||||||
|
|
||||||
|
def get_account_details(self, acc_id):
|
||||||
|
cr, uid = self.cr, self.uid
|
||||||
|
db_pool = pooler.get_pool(self.cr.dbname)
|
||||||
|
|
||||||
|
report_obj = db_pool.get('account.report')
|
||||||
|
accounts = []
|
||||||
|
if acc_id:
|
||||||
|
for rpt in report_obj.browse(cr, uid, [acc_id]):
|
||||||
|
for acc in rpt.account_ids:
|
||||||
|
accounts.append({'code': acc.code, 'name': acc.name, 'bal': acc.balance})
|
||||||
|
return accounts
|
||||||
|
|
||||||
|
report_sxw.report_sxw('report.account.common', 'account.account',
|
||||||
|
'addons/account/report/account_report_common.rml', parser=report_account_common, header='internal')
|
||||||
|
|
|
@ -0,0 +1,187 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<document filename="Account Reports.pdf">
|
||||||
|
<template pageSize="(595.0,842.0)" title="Account Reports" author="Martin Simon" allowSplitting="20">
|
||||||
|
<pageTemplate id="first">
|
||||||
|
<frame id="first" x1="57.0" y1="57.0" width="481" height="728"/>
|
||||||
|
</pageTemplate>
|
||||||
|
</template>
|
||||||
|
<stylesheet>
|
||||||
|
<blockTableStyle id="Standard_Outline">
|
||||||
|
<blockAlignment value="LEFT"/>
|
||||||
|
<blockValign value="TOP"/>
|
||||||
|
</blockTableStyle>
|
||||||
|
<blockTableStyle id="Table1">
|
||||||
|
<blockAlignment value="LEFT"/>
|
||||||
|
<blockValign value="TOP"/>
|
||||||
|
<lineStyle kind="GRID" colorName="black"/>
|
||||||
|
</blockTableStyle>
|
||||||
|
<blockTableStyle id="Table2">
|
||||||
|
<blockAlignment value="LEFT"/>
|
||||||
|
<blockValign value="TOP"/>
|
||||||
|
<lineStyle kind="GRID" colorName="black"/>
|
||||||
|
</blockTableStyle>
|
||||||
|
<blockTableStyle id="Table8">
|
||||||
|
<blockAlignment value="LEFT"/>
|
||||||
|
<blockValign value="TOP"/>
|
||||||
|
<lineStyle kind="GRID" colorName="black"/>
|
||||||
|
</blockTableStyle>
|
||||||
|
<blockTableStyle id="Table10">
|
||||||
|
<blockAlignment value="LEFT"/>
|
||||||
|
<blockValign value="TOP"/>
|
||||||
|
<lineStyle kind="GRID" colorName="black"/>
|
||||||
|
</blockTableStyle>
|
||||||
|
<blockTableStyle id="Table11">
|
||||||
|
<blockAlignment value="LEFT"/>
|
||||||
|
<blockValign value="TOP"/>
|
||||||
|
</blockTableStyle>
|
||||||
|
<blockTableStyle id="Table3">
|
||||||
|
<blockAlignment value="LEFT"/>
|
||||||
|
<blockValign value="TOP"/>
|
||||||
|
<lineStyle kind="GRID" colorName="black"/>
|
||||||
|
</blockTableStyle>
|
||||||
|
<initialize>
|
||||||
|
<paraStyle name="all" alignment="justify"/>
|
||||||
|
</initialize>
|
||||||
|
<paraStyle name="P1" fontName="Helvetica" fontSize="11.0" leading="14" alignment="CENTER"/>
|
||||||
|
<paraStyle name="P2" fontName="Helvetica-Bold" fontSize="11.0" leading="14" alignment="CENTER"/>
|
||||||
|
<paraStyle name="P3" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||||
|
<paraStyle name="P4" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||||
|
<paraStyle name="P5" fontName="Helvetica-Bold" fontSize="2.0" leading="3" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||||
|
<paraStyle name="P6" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||||
|
<paraStyle name="Standard" fontName="Times-Roman"/>
|
||||||
|
<paraStyle name="Heading" fontName="Helvetica" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||||
|
<paraStyle name="Text body" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||||
|
<paraStyle name="List" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||||
|
<paraStyle name="Caption" fontName="Times-Roman" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||||
|
<paraStyle name="Index" fontName="Times-Roman"/>
|
||||||
|
<paraStyle name="Preformatted Text" fontName="Helvetica" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||||
|
<paraStyle name="Table Contents" fontName="Times-Roman"/>
|
||||||
|
<paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||||
|
<paraStyle name="terp_tblheader_General" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||||
|
<paraStyle name="terp_tblheader_General_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||||
|
<paraStyle name="terp_default_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||||
|
<paraStyle name="terp_default_Centre_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||||
|
<paraStyle name="terp_tblheader_Details" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||||
|
<paraStyle name="Table Heading" fontName="Times-Roman" alignment="CENTER"/>
|
||||||
|
</stylesheet>
|
||||||
|
<story>
|
||||||
|
<para style="Preformatted Text">
|
||||||
|
<font color="white"> </font>
|
||||||
|
</para>
|
||||||
|
<blockTable colWidths="56.0,53.0,380.0" style="Table8">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<para style="P3">Chart of Account</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="P3">Fiscal Year</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="P3">Filters By [[ get_filter(data)!='No Filter' and get_filter(data) ]]</para>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_Centre_8">[[ get_account(data) or '' ]]</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_Centre_8">[[ get_fiscalyear(data) or '' ]]</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<blockTable colWidths="179.0,195.0" style="Table10">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<para style="P5">[[ get_filter(data)=='Date' or removeParentNode('blockTable') ]]</para>
|
||||||
|
<para style="P6">Start Date</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="P6">End Date</para>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_Centre_8">[[ get_start_date(data) ]]</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_Centre_8">[[ get_end_date(data) ]]</para>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</blockTable>
|
||||||
|
<blockTable colWidths="176.0,195.0" style="Table11">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<para style="P5">[[ get_filter(data)=='Periods' or removeParentNode('blockTable')]] </para>
|
||||||
|
<para style="P6">]]Start Period</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="P6">End Period</para>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<para style="P4">[[ get_start_period(data) or removeParentNode('para') ]]</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="P4">[[ get_end_period(data) or removeParentNode('para') ]]</para>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</blockTable>
|
||||||
|
<para style="terp_default_Centre_8">
|
||||||
|
<font color="white"> </font>
|
||||||
|
</para>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</blockTable>
|
||||||
|
<para style="Preformatted Text">
|
||||||
|
<font color="white"> </font>
|
||||||
|
</para>
|
||||||
|
<blockTable colWidths="490.0" style="Table1">
|
||||||
|
<para style="P2">[[ repeatIn(get_report_name(data),'r') ]] </para>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<para style="P2">[[ r['name'] ]]</para>
|
||||||
|
<blockTable colWidths="482.0" style="Table2">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<para style="P3">Account Details</para>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</blockTable>
|
||||||
|
<blockTable colWidths="95.0,223.0,163.0" style="Table3">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<para style="P3">Code</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="P3">Name</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="P3">Balance</para>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_8">
|
||||||
|
[[ repeatIn(get_account_details(r['id']), 'a') ]] [[ a['code'] ]]
|
||||||
|
</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_8">
|
||||||
|
[[ a['name'] ]]
|
||||||
|
</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_8">
|
||||||
|
[[ a['bal'] ]]
|
||||||
|
</para>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</blockTable>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</blockTable>
|
||||||
|
<para style="Standard">
|
||||||
|
<font color="white"> </font>
|
||||||
|
</para>
|
||||||
|
</story>
|
||||||
|
</document>
|
|
@ -21,25 +21,27 @@
|
||||||
|
|
||||||
from osv import fields, osv
|
from osv import fields, osv
|
||||||
|
|
||||||
class account_report(osv.osv_memory):
|
class accounting_report(osv.osv_memory):
|
||||||
_name = "account.report"
|
_name = "accounting.report"
|
||||||
_inherit = "account.common.report"
|
_inherit = "account.common.report"
|
||||||
_description = "Account Report"
|
_description = "Account Report"
|
||||||
|
|
||||||
_columns = {
|
_columns = {
|
||||||
'parent_id': fields.many2one('account.report', 'Report'),
|
|
||||||
'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of invoice tax."),
|
|
||||||
'type': fields.selection([
|
|
||||||
('sum','Sum'),
|
|
||||||
('accounts','Accounts'),
|
|
||||||
('account_report','Account Report'),
|
|
||||||
],'Type'),
|
|
||||||
'account_ids': fields.many2many('account.account', 'account_account_report', 'report_line_id', 'account_id', 'Accounts'),
|
|
||||||
'note': fields.text('Notes'),
|
|
||||||
'account_report_id': fields.many2one('account.report', 'Account Reports'),
|
|
||||||
'enable_comparison': fields.boolean('Enable Comparison'),
|
'enable_comparison': fields.boolean('Enable Comparison'),
|
||||||
|
'display_details_per_account': fields.boolean('Display Details per Account'),
|
||||||
|
'account_report_id': fields.many2one('account.report', 'Account Reports', required=True),
|
||||||
}
|
}
|
||||||
|
|
||||||
account_report()
|
def _print_report(self, cr, uid, ids, data, context=None):
|
||||||
|
if context is None:
|
||||||
|
context = {}
|
||||||
|
data['form'].update(self.read(cr, uid, ids, ['account_report_id'], context=context)[0])
|
||||||
|
return {
|
||||||
|
'type': 'ir.actions.report.xml',
|
||||||
|
'report_name': 'account.common',
|
||||||
|
'datas': data,
|
||||||
|
}
|
||||||
|
|
||||||
|
accounting_report()
|
||||||
|
|
||||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||||
|
|
|
@ -2,19 +2,16 @@
|
||||||
<openerp>
|
<openerp>
|
||||||
<data>
|
<data>
|
||||||
|
|
||||||
<record id="account_report_view" model="ir.ui.view">
|
<record id="accounting_report_view" model="ir.ui.view">
|
||||||
<field name="name">Account Report</field>
|
<field name="name">Account Report</field>
|
||||||
<field name="model">account.report</field>
|
<field name="model">accounting.report</field>
|
||||||
<field name="type">form</field>
|
<field name="type">form</field>
|
||||||
<field name="inherit_id" ref="account.account_common_report_view"/>
|
<field name="inherit_id" ref="account.account_common_report_view"/>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<xpath expr="//field[@name='chart_account_id']" position="replace">
|
<xpath expr="//field[@name='target_move']" position="after">
|
||||||
<field name="account_report_id"/>
|
<field name="account_report_id" domain="[('parent_id','=',False)]"/>
|
||||||
<field name="sequence"/>
|
|
||||||
<field name="type"/>
|
|
||||||
</xpath>
|
|
||||||
<xpath expr="//field[@name='target_move']" position="replace">
|
|
||||||
<field name="enable_comparison"/>
|
<field name="enable_comparison"/>
|
||||||
|
<field name="display_details_per_account"/>
|
||||||
</xpath>
|
</xpath>
|
||||||
<xpath expr="//notebook/page[@string='Filters']" position="replace">
|
<xpath expr="//notebook/page[@string='Filters']" position="replace">
|
||||||
<page string="Comparison" attrs="{'invisible': [('enable_comparison','=',False)]}">
|
<page string="Comparison" attrs="{'invisible': [('enable_comparison','=',False)]}">
|
||||||
|
@ -28,25 +25,22 @@
|
||||||
</page>
|
</page>
|
||||||
</xpath>
|
</xpath>
|
||||||
<xpath expr="//notebook/page[@string='Journals']" position="replace">
|
<xpath expr="//notebook/page[@string='Journals']" position="replace">
|
||||||
<page string="Accounts">
|
|
||||||
<field name="account_ids" nolabel="1"/>
|
|
||||||
</page>
|
|
||||||
</xpath>
|
</xpath>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="action_account_report" model="ir.actions.act_window">
|
<record id="action_account_report" model="ir.actions.act_window">
|
||||||
<field name="name">Mail Report</field>
|
<field name="name">Report</field>
|
||||||
<field name="res_model">account.report</field>
|
<field name="res_model">accounting.report</field>
|
||||||
<field name="type">ir.actions.act_window</field>
|
<field name="type">ir.actions.act_window</field>
|
||||||
<field name="view_type">form</field>
|
<field name="view_type">form</field>
|
||||||
<field name="view_mode">form</field>
|
<field name="view_mode">form</field>
|
||||||
<field name="view_id" ref="account_report_view"/>
|
<field name="view_id" ref="accounting_report_view"/>
|
||||||
<field name="target">new</field>
|
<field name="target">new</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<menuitem icon="STOCK_PRINT"
|
<menuitem icon="STOCK_PRINT"
|
||||||
name="Mail Report"
|
name="Report"
|
||||||
action="action_account_report"
|
action="action_account_report"
|
||||||
groups="group_account_user,group_account_manager"
|
groups="group_account_user,group_account_manager"
|
||||||
id="menu_account_report"
|
id="menu_account_report"
|
||||||
|
|
Loading…
Reference in New Issue