[REM] account: removed compare account balance report from account module.
bzr revid: vra@tinyerp.com-20100924051812-0z62syveozpcjy05
This commit is contained in:
parent
6fac725fec
commit
8ba08a76bc
|
@ -80,7 +80,6 @@ module named account_voucher.
|
|||
'wizard/account_report_partner_balance_view.xml',
|
||||
'wizard/account_report_account_balance_view.xml',
|
||||
'wizard/account_report_aged_partner_balance_view.xml',
|
||||
'wizard/account_compare_account_balance_report_view.xml',
|
||||
'wizard/account_report_partner_ledger_view.xml',
|
||||
'wizard/account_reconcile_view.xml',
|
||||
'wizard/account_reconcile_partner_process_view.xml',
|
||||
|
|
|
@ -32,7 +32,6 @@ import account_aged_partner_balance
|
|||
import tax_report
|
||||
import account_tax_code
|
||||
import account_balance_landscape
|
||||
import compare_account_balance
|
||||
import account_invoice_report
|
||||
import account_report
|
||||
import account_entries_report
|
||||
|
|
|
@ -1,397 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 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 locale
|
||||
from report import report_sxw
|
||||
|
||||
#from addons.account.wizard import wizard_account_balance_report
|
||||
|
||||
parents = {
|
||||
'tr':1,
|
||||
'li':1,
|
||||
'story': 0,
|
||||
'section': 0
|
||||
}
|
||||
|
||||
class account_balance(report_sxw.rml_parse):
|
||||
def __init__(self, cr, uid, name, context):
|
||||
super(account_balance, self).__init__(cr, uid, name, context=context)
|
||||
self.flag=1
|
||||
self.dr_total= 0.00
|
||||
self.cr_total= 0.00
|
||||
self.parent_bal=0
|
||||
self.status=0
|
||||
self.done_total=0
|
||||
self.baldiv={}
|
||||
self.empty_parent=0
|
||||
self.result_total = {}
|
||||
self.total_for_perc=[]
|
||||
self.localcontext.update({
|
||||
'time': time,
|
||||
'lines': self.lines,
|
||||
'get_lines':self.get_lines,
|
||||
'linesForTotal': self.linesForTotal,
|
||||
'linesForYear': self.linesForYear,
|
||||
'get_years':self.get_years,
|
||||
'cal_total':self.cal_total,
|
||||
'total_dr':self.total_dr,
|
||||
'total_cr':self.total_cr
|
||||
})
|
||||
self.context = context
|
||||
|
||||
def linesForYear(self, form):
|
||||
temp=0
|
||||
years={}
|
||||
|
||||
global pattern
|
||||
global show
|
||||
global perc
|
||||
global bal_zero
|
||||
global ref_bal
|
||||
|
||||
pattern=form['compare_pattern']
|
||||
|
||||
if form['show_columns']!=1:
|
||||
show=0
|
||||
else:
|
||||
show=form['show_columns']
|
||||
|
||||
if form['format_perc']!=1:
|
||||
perc=0
|
||||
else:
|
||||
perc=form['format_perc']
|
||||
|
||||
if form['account_choice']=='bal_zero':
|
||||
bal_zero=0
|
||||
else:
|
||||
bal_zero=1
|
||||
|
||||
ctx = self.context.copy()
|
||||
|
||||
if perc==1:
|
||||
if form['select_account']!=False:
|
||||
ref_ac=self.pool.get('account.account').browse(self.cr, self.uid, form['select_account'], ctx.copy())
|
||||
if ref_ac.balance<>0.00:
|
||||
ref_bal=ref_ac.balance
|
||||
else:
|
||||
ref_bal=1.00
|
||||
else:
|
||||
ref_bal='nothing'
|
||||
else:
|
||||
ref_bal='nothing'
|
||||
|
||||
|
||||
total_for_perc=[]
|
||||
self.done_total=1
|
||||
self.total_for_perc=self.linesForTotal(form, ids={}, doneAccount={}, level=1)
|
||||
self.done_total=0
|
||||
|
||||
for t1 in range(0,len(form['fiscalyear'])):
|
||||
locale.setlocale(locale.LC_ALL, '')
|
||||
self.result_total["sum_credit" + str(t1)]=locale.format("%.2f", self.result_total["sum_credit" + str(t1)], grouping=True)
|
||||
self.result_total["sum_debit" + str(t1)]=locale.format("%.2f", self.result_total["sum_debit" + str(t1)], grouping=True)
|
||||
|
||||
for temp in range(0,len(form['fiscalyear'])):
|
||||
fy=self.pool.get('account.fiscalyear').name_get(self.cr, self.uid, form['fiscalyear'][temp])
|
||||
years["year"+str(temp)]=fy[0][1][12:16]
|
||||
|
||||
return [years]
|
||||
|
||||
|
||||
def linesForTotal(self, form, ids={}, doneAccount={}, level=1):
|
||||
if self.done_total==1:
|
||||
self.done_total==1
|
||||
else:
|
||||
return [self.result_total]
|
||||
accounts=[]
|
||||
if not ids:
|
||||
ids = self.ids
|
||||
if not ids:
|
||||
return []
|
||||
ctx = self.context.copy()
|
||||
result_total_parent=[]
|
||||
|
||||
for id in form['fiscalyear']:
|
||||
tmp=[]
|
||||
|
||||
ctx['fiscalyear'] = id
|
||||
ctx['periods'] = form['periods']
|
||||
ctx['period_manner'] = form['period_manner']
|
||||
ctx['state'] = form['context'].get('state','all')
|
||||
tmp = self.pool.get('account.account').browse(self.cr, self.uid, ids, ctx.copy())
|
||||
|
||||
if len(tmp):
|
||||
accounts.append(tmp)
|
||||
|
||||
merged_accounts=zip(*accounts)
|
||||
# used to check for the frst record so all sum_credit and sum_debit r set to 0.00
|
||||
if level==1:
|
||||
doneAccount={}
|
||||
for entry in merged_accounts:
|
||||
|
||||
if entry[0].id in doneAccount:
|
||||
continue
|
||||
doneAccount[entry[0].id] = 1
|
||||
for k in range(0,len(entry)):
|
||||
temp_credit=0.00
|
||||
temp_debit=0.00
|
||||
if entry[0].type <> 'view':
|
||||
temp_credit+=entry[k].credit
|
||||
temp_debit+=entry[k].debit
|
||||
|
||||
if self.flag==1:
|
||||
self.result_total["sum_credit" + str(k)]=0.00
|
||||
self.result_total["sum_debit" + str(k)]=0.00
|
||||
if form['account_choice']=='bal_zero':
|
||||
if temp_credit<>temp_debit:
|
||||
self.result_total["sum_credit" + str(k)]+=temp_credit
|
||||
self.result_total["sum_debit" + str(k)]+=temp_debit
|
||||
else:
|
||||
self.result_total["sum_credit" + str(k)]+=temp_credit
|
||||
self.result_total["sum_debit" + str(k)]+=temp_debit
|
||||
|
||||
self.flag=2
|
||||
|
||||
if entry[0].child_id:
|
||||
ids2 = [(x.code,x.id) for x in entry[0].child_id]
|
||||
ids2.sort()
|
||||
|
||||
result_total_parent = self.linesForTotal(form, [x[1] for x in ids2], doneAccount, level+1)
|
||||
|
||||
return [self.result_total]
|
||||
|
||||
def lines(self, form, ids={}, done={}, level=1):
|
||||
accounts=[]
|
||||
if not ids:
|
||||
ids = self.ids
|
||||
if not ids:
|
||||
return []
|
||||
result = []
|
||||
ctx = self.context.copy()
|
||||
tmp1=[]
|
||||
for id in form['fiscalyear']:
|
||||
|
||||
ctx['fiscalyear'] = id
|
||||
ctx['periods'] = form['periods']
|
||||
ctx['period_manner']=form['period_manner']
|
||||
ctx['state'] = form['context'].get('state','all')
|
||||
tmp1 = self.pool.get('account.account').browse(self.cr, self.uid, ids, ctx.copy())
|
||||
|
||||
if len(tmp1):
|
||||
accounts.append(tmp1)
|
||||
|
||||
if level==1: #if parent is called,done is not empty when called again.
|
||||
done={}
|
||||
|
||||
def cmp_code(x, y):
|
||||
return cmp(x.code, y.code)
|
||||
for n in range(0,len(accounts)):
|
||||
accounts[n].sort(cmp_code)
|
||||
common={}
|
||||
merged_accounts=zip(*accounts)
|
||||
|
||||
for entry in merged_accounts:
|
||||
j=0
|
||||
checked=1
|
||||
|
||||
if form['account_choice']!='all': # if checked,include empty a/c;not otherwise
|
||||
checked=0
|
||||
|
||||
if entry[0].id in done:
|
||||
continue
|
||||
done[entry[0].id] = 1
|
||||
|
||||
if entry[0].child_id: # this is for parent account,dont check 0 for it
|
||||
checked=4
|
||||
self.status=1 # for displaying it Bold
|
||||
else:
|
||||
self.status=0
|
||||
if checked==0:
|
||||
i=0
|
||||
for i in range(0,len(entry)):
|
||||
if bal_zero==0:
|
||||
if entry[i].balance<>0.0:
|
||||
checked=4
|
||||
break
|
||||
else:
|
||||
checked=3
|
||||
i=i+1
|
||||
else:
|
||||
if entry[i].credit <> 0.0 or entry[i].debit <> 0.0:
|
||||
checked=4
|
||||
break
|
||||
else:
|
||||
checked=3
|
||||
i=i+1
|
||||
|
||||
if checked==3:
|
||||
# this is the point where we skip those accounts which are encountered as empty ones
|
||||
continue
|
||||
self.empty_parent=0
|
||||
else:
|
||||
self.empty_parent=1
|
||||
res = {
|
||||
'code': entry[0].code,
|
||||
'name': entry[0].name,
|
||||
'level': level,
|
||||
'status': self.status,
|
||||
}
|
||||
|
||||
for j in range(0,len(entry)):
|
||||
|
||||
locale.setlocale(locale.LC_ALL, '')
|
||||
res["debit"+str(j)]=locale.format("%.2f", entry[j].debit, grouping=True)
|
||||
res["credit"+str(j)]=locale.format("%.2f", entry[j].credit, grouping=True)
|
||||
res["balance"+str(j)]=locale.format("%.2f", entry[j].balance, grouping=True)
|
||||
|
||||
|
||||
if j==0:
|
||||
res["bal_cash"+str(j)]="0.00"
|
||||
res["bal_perc"+str(j)]="0.00%"
|
||||
else:
|
||||
temp_cash=entry[j].balance - entry[j-1].balance
|
||||
res["bal_cash"+str(j)]=locale.format("%.2f", temp_cash, grouping=True)
|
||||
if entry[j-1].balance<>0.00:
|
||||
temp_perc=(entry[j].balance - entry[j-1].balance )*100/entry[j-1].balance
|
||||
else:
|
||||
temp_perc=(entry[j].balance) *100
|
||||
|
||||
res["bal_perc"+str(j)]=locale.format("%.2f", temp_perc) + "%"
|
||||
|
||||
if ref_bal=='nothing':
|
||||
if level==1:
|
||||
self.parent_bal=1
|
||||
else:
|
||||
self.parent_bal=0
|
||||
|
||||
if self.parent_bal==1:
|
||||
res["balance_perc"+str(j)]="/"
|
||||
else:
|
||||
if entry[j].balance==0.00:
|
||||
if self.baldiv["baldiv"+str(level-1)+str(j)]<>0.00:
|
||||
res["balance_perc"+str(j)]="0.00%"
|
||||
else:
|
||||
res["balance_perc"+str(j)]="/"
|
||||
else:
|
||||
if self.baldiv["baldiv"+str(level-1)+str(j)]<>0.00:
|
||||
temp=self.baldiv["baldiv"+str(level-1)+str(j)]
|
||||
temp1=(entry[j].balance * 100 )/ float(temp)
|
||||
temp1=round(temp1,2)
|
||||
res["balance_perc" + str(j)]=str(temp1)+"%"
|
||||
else:
|
||||
res["balance_perc"+str(j)]="/"
|
||||
else:
|
||||
res["balance_perc"+str(j)]=str( (entry[j].balance * 100 )/ float(ref_bal)) + "%"
|
||||
|
||||
result.append(res)
|
||||
|
||||
if entry[0].child_id:
|
||||
|
||||
for q in range(0,len(form['fiscalyear'])):
|
||||
self.baldiv["baldiv"+str(level)+str(q)]=entry[q].balance
|
||||
|
||||
ids2 = [(x.code,x.id) for x in entry[0].child_id]
|
||||
ids2.sort()
|
||||
dir=[]
|
||||
dir += self.lines(form, [x[1] for x in ids2], done, level+1)
|
||||
if dir==[]:
|
||||
for w in range(0,len(form['fiscalyear'])):
|
||||
if entry[w].credit <> 0.0 or entry[w].debit <> 0.0 or entry[w].balance<>0.00:
|
||||
dont_pop=1
|
||||
break
|
||||
else:
|
||||
dont_pop=0
|
||||
if dont_pop==1:
|
||||
result +=dir
|
||||
else:
|
||||
result.pop(-1) # here we pop up the parent having its children as emprty accounts
|
||||
else:
|
||||
result +=dir
|
||||
|
||||
return result
|
||||
|
||||
def get_years(self, form):
|
||||
result =[]
|
||||
res={}
|
||||
for temp in range(0,len(form['fiscalyear'])):
|
||||
res={}
|
||||
fy=self.pool.get('account.fiscalyear').name_get(self.cr, self.uid, form['fiscalyear'][temp])
|
||||
res['year']=fy[0][1]
|
||||
res['last_str']=temp
|
||||
|
||||
result.append(res)
|
||||
self.linesForYear(form)
|
||||
return result
|
||||
|
||||
def get_lines(self, year_dict, form):
|
||||
final_result = []
|
||||
line_l =[]
|
||||
res = {}
|
||||
line_l = self.lines(form)
|
||||
self.cal_total(year_dict)
|
||||
if line_l:
|
||||
for l in line_l:
|
||||
res = {}
|
||||
res['code'] = l['code']
|
||||
res['name'] = l['name']
|
||||
res['level'] = l['level']
|
||||
for k,v in l.items():
|
||||
if k.startswith('debit'+str(year_dict['last_str'])):
|
||||
res['debit'] = v
|
||||
if k.startswith('credit'+str(year_dict['last_str'])):
|
||||
res['credit'] = v
|
||||
if k.startswith('balance'+str(year_dict['last_str'])) and not k.startswith('balance_perc'+str(year_dict['last_str'])):
|
||||
res['balance'] =v
|
||||
if k.startswith('balance_perc'+str(year_dict['last_str'])) and not k.startswith('balance'+str(year_dict['last_str'])):
|
||||
res['balance_perc'] = v
|
||||
if form['compare_pattern'] == 'bal_perc':
|
||||
if k.startswith('bal_perc'+str(year_dict['last_str'])):
|
||||
res['pattern'] = v
|
||||
elif form['compare_pattern'] == 'bal_cash':
|
||||
if k.startswith('bal_cash'+str(year_dict['last_str'])):
|
||||
res['pattern'] = v
|
||||
else:
|
||||
res['pattern'] = ''
|
||||
final_result.append(res)
|
||||
return final_result
|
||||
|
||||
def cal_total(self, year_dict):
|
||||
total_l = self.result_total
|
||||
if total_l:
|
||||
for k,v in total_l.items():
|
||||
if k.startswith('sum_debit'+str(year_dict['last_str'])):
|
||||
self.dr_total = v
|
||||
elif k.startswith('sum_credit'+str(year_dict['last_str'])):
|
||||
self.cr_total = v
|
||||
else:
|
||||
continue
|
||||
return True
|
||||
|
||||
def total_dr(self):
|
||||
return self.dr_total
|
||||
|
||||
def total_cr(self):
|
||||
return self.cr_total
|
||||
|
||||
report_sxw.report_sxw('report.account.balance.account.balance', 'account.account', 'addons/account/report/account_balance.rml', parser=account_balance, header="internal")
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
@ -1,287 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<document filename="test.pdf">
|
||||
<template pageSize="(595.0,842.0)" title="Test" 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="Table_Tiltle">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table_header_account">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="5,-1" stop="5,-1"/>
|
||||
<blockBackground colorName="#ffffff" start="0,0" stop="0,-1"/>
|
||||
<blockBackground colorName="#ffffff" start="1,0" stop="1,-1"/>
|
||||
<blockBackground colorName="#ffffff" start="2,0" stop="2,-1"/>
|
||||
<blockBackground colorName="#ffffff" start="3,0" stop="3,-1"/>
|
||||
<blockBackground colorName="#ffffff" start="4,0" stop="4,-1"/>
|
||||
<blockBackground colorName="#ffffff" start="5,0" stop="5,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table1">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
|
||||
<blockBackground colorName="#ffffff" start="0,0" stop="0,-1"/>
|
||||
<blockBackground colorName="#ffffff" start="1,0" stop="1,-1"/>
|
||||
<blockBackground colorName="#ffffff" start="2,0" stop="2,-1"/>
|
||||
<blockBackground colorName="#ffffff" start="3,0" stop="3,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table4">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table2">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="6,-1" stop="6,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table6">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table5">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table3">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="0,0" stop="0,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="3,0" stop="3,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="4,0" stop="4,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/>
|
||||
<blockBackground colorName="#ffffff" start="0,0" stop="0,-1"/>
|
||||
<blockBackground colorName="#ffffff" start="1,0" stop="1,-1"/>
|
||||
<blockBackground colorName="#ffffff" start="2,0" stop="2,-1"/>
|
||||
<blockBackground colorName="#ffffff" start="3,0" stop="3,-1"/>
|
||||
<blockBackground colorName="#ffffff" start="4,0" stop="4,-1"/>
|
||||
</blockTableStyle>
|
||||
<initialize>
|
||||
<paraStyle name="all" alignment="justify"/>
|
||||
</initialize>
|
||||
<paraStyle name="Standard" fontName="Helvetica"/>
|
||||
<paraStyle name="Heading" fontName="Helvetica" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Text body" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="List" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Caption" fontName="Helvetica" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Index" fontName="Helvetica"/>
|
||||
<paraStyle name="terp_default_Right_9_Bold" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_Bold_9" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="12.0" leading="15" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="terp_tblheader_Details" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_header_Centre" fontName="Helvetica-Bold" fontSize="12.0" leading="15" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="terp_tblheader_Details_Right" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_2" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_Right_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_Right_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_space" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<images/>
|
||||
</stylesheet>
|
||||
<story>
|
||||
<para style="terp_default_8">[[ repeatIn(get_years(data['form']), 'y') ]]</para>
|
||||
<blockTable colWidths="482.0" style="Table_Tiltle">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_header_Centre">Account Balance - [[ company.currency_id.name ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="terp_header">Year : [[ y['year'] ]]</para>
|
||||
<blockTable colWidths="57.0,214.0,54.0,46.0,57.0,52.0" style="Table_header_account">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details">[[ data['form']['show_columns'] and 'Code' or removeParentNode('blockTable') ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details">Account Name </para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details">[[ data['form']['compare_pattern']!='none' and 'C.S.Y.T.(C./P)' or removeParentNode('para') ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Right">Debit</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Right">Credit</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Right">Balance</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<blockTable colWidths="56.0,315.0,56.0,53.0" style="Table1">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details">[[ (data['form']['show_columns'] and removeParentNode('blockTable')) or 'Code' ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details">Account Name </para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details">[[ data['form']['compare_pattern']!='none' and 'C.S.Y.T.(C./P)' or removeParentNode('para') ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Right">Balance</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<section>
|
||||
<para style="terp_default_8">[[ repeatIn(get_lines(y,data['form']), 'a') ]]</para>
|
||||
<blockTable colWidths="56.0,208.0,58.0,49.0,55.0,54.0" style="Table4">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ (data['form']['format_perc'] or not data['form']['show_columns']) and removeParentNode('blockTable') ]] <font>[[ a['level']<4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font')]]</font>[[ a['code'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9"><font face="Helvetica" color="white">[['...'*(a['level']-1) ]]</font> <font>[[ a['level']<4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font')]]</font>[[ a['name'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9"><font>[[ a['level']<4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font')]]</font>[[ a['pattern'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9"><font>[[ a['level']<4 and ( setTag('para','para',{'style':'terp_default_Right_9_Bold'})) or removeParentNode('font')]]</font>[[ a['debit'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9"><font>[[ a['level']<4 and ( setTag('para','para',{'style':'terp_default_Right_9_Bold'})) or removeParentNode('font')]]</font>[[ a['credit'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9"><font>[[ a['level']<4 and ( setTag('para','para',{'style':'terp_default_Right_9_Bold'})) or removeParentNode('font')]]</font>[[ a['balance'] ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<blockTable colWidths="56.0,153.0,55.0,54.0,54.0,56.0,54.0" style="Table2">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ (not data['form']['format_perc'] or not data['form']['show_columns']) and removeParentNode('blockTable') ]] <font>[[ a['level']<4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font')]]</font>[[ a['code'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9"><font face="Helvetica" color="white">[['...'*(a['level']-1) ]]</font> <font>[[ a['level']<4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font')]]</font>[[ a['name'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9"><font>[[ a['level']<4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font')]]</font>[[ a['pattern'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9"><font>[[ a['level']<4 and ( setTag('para','para',{'style':'terp_default_Right_9_Bold'})) or removeParentNode('font')]]</font>[[ a['debit'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9"><font>[[ a['level']<4 and ( setTag('para','para',{'style':'terp_default_Right_9_Bold'})) or removeParentNode('font')]]</font>[[ a['credit'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9"><font>[[ a['level']<4 and ( setTag('para','para',{'style':'terp_default_Right_9_Bold'})) or removeParentNode('font')]]</font>[[ a['balance'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9"><font>[[ a['level']<4 and ( setTag('para','para',{'style':'terp_default_Right_9_Bold'})) or removeParentNode('font')]]</font>[[ a['balance_perc'] ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<blockTable colWidths="55.0,154.0,218.0,54.0" style="Table6">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ (data['form']['format_perc'] or data['form']['show_columns']) and removeParentNode('blockTable') ]] <font>[[ a['level']<4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font')]]</font>[[ a['code'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9"><font face="Helvetica" color="white">[['...'*(a['level']-1) ]]</font> <font>[[ a['level']<4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font')]]</font>[[ a['name'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9"><font>[[ a['level']<4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font')]]</font>[[ a['pattern'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9"><font>[[ a['level']<4 and ( setTag('para','para',{'style':'terp_default_Right_9_Bold'})) or removeParentNode('font')]]</font>[[ a['balance'] ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<blockTable colWidths="54.0,135.0,113.0,130.0,49.0" style="Table5">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ (not data['form']['format_perc'] or data['form']['show_columns']) and removeParentNode('blockTable') ]]<font>[[ a['level']<4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font')]]</font> [[ a['code'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9"><font face="Helvetica" color="white">[['...'*(a['level']-1) ]]</font> <font>[[ a['level']<4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font')]]</font>[[ a['name'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9"><font>[[ a['level']<4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font')]]</font>[[ a['pattern'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9"><font>[[ a['level']<4 and ( setTag('para','para',{'style':'terp_default_Right_9_Bold'})) or removeParentNode('font')]]</font>[[ a['balance'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9"><font>[[ a['level']<4 and ( setTag('para','para',{'style':'terp_default_Right_9_Bold'})) or removeParentNode('font')]]</font>[[ a['balance_perc'] ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="terp_default_2">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</section>
|
||||
<blockTable colWidths="54.0,135.0,113.0,130.0,49.0" style="Table3">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ not data['form']['show_columns'] and removeParentNode('blockTable') ]] </para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details">Total :</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Right">[[ total_dr() ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Right">[[ total_cr() ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="terp_default_space">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<para style="terp_tblheader_Details">[[ data['form']['compare_pattern']!='none' and "C.S.Y.T.(C./P) : Compare Selected Years In Terms of Cash/Perc" or removeParentNode('font') ]]</para>
|
||||
</story>
|
||||
</document>
|
|
@ -44,7 +44,6 @@ import account_fiscalyear_close_state
|
|||
import account_vat
|
||||
import account_open_closed_fiscalyear
|
||||
|
||||
import account_compare_account_balance_report
|
||||
import account_invoice_state
|
||||
import account_chart
|
||||
import account_tax_chart
|
||||
|
|
|
@ -1,135 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 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
|
||||
|
||||
from osv import osv, fields
|
||||
from tools.translate import _
|
||||
|
||||
class account_compare_account_balance_report(osv.osv_memory):
|
||||
"""
|
||||
This wizard will provide the account balance comparision report by fiscal years.
|
||||
"""
|
||||
_name = 'account.compare.account.balance.report'
|
||||
_description = 'Account Balance Report'
|
||||
_columns = {
|
||||
'fiscalyear': fields.many2many('account.fiscalyear', 'account_fiscalyear_rel','account_id','fiscalyear_id','Fiscal year', help='Keep empty for all open fiscal year'),
|
||||
'select_account': fields.many2one('account.account','Select Reference Account(for % comparision)',help='Keep empty for comparison to its parent'),
|
||||
'account_choice': fields.selection([('all','All accounts'),
|
||||
('bal_zero','With balance is not equal to 0'),
|
||||
('moves','With movements')],'Show Accounts'),
|
||||
'show_columns': fields.boolean('Show Debit/Credit Information'),
|
||||
'landscape': fields.boolean('Show Report in Landscape Form'),
|
||||
'format_perc': fields.boolean('Show Comparision in %'),
|
||||
'compare_pattern': fields.selection([('bal_cash','Cash'),
|
||||
('bal_perc','Percentage'),
|
||||
('none','Don'+ "'" +'t Compare')],'Compare Selected Years In Terms Of'),
|
||||
'period_manner': fields.selection([('actual','Financial Period'),('created','Creation Date')],'Entries Selection Based on'),
|
||||
'periods': fields.many2many('account.period', 'period_account_balance_rel',
|
||||
'report_id', 'period_id', 'Periods',
|
||||
help='Keep empty for all open fiscal year'),
|
||||
}
|
||||
|
||||
_defaults={
|
||||
'compare_pattern': 'none',
|
||||
'account_choice': 'moves',
|
||||
'period_manner': 'actual',
|
||||
}
|
||||
|
||||
def check(self, cr, uid, ids, context=None):
|
||||
data={}
|
||||
if context is None:
|
||||
context = {}
|
||||
data = {
|
||||
'ids':context['active_ids'],
|
||||
'form': self.read(cr, uid, ids, ['fiscalyear', 'select_account', 'account_choice', 'periods', 'show_columns', 'landscape', 'format_perc','compare_pattern','period_manner'])[0],
|
||||
}
|
||||
|
||||
data['form']['context'] = context
|
||||
if (len(data['form']['fiscalyear'])==0) or (len(data['form']['fiscalyear'])>1 and (data['form']['compare_pattern']!='none') and (data['form']['format_perc']==1) and (data['form']['show_columns']==1) and (data['form']['landscape']!=1)):
|
||||
raise osv.except_osv(_('Warning !'), _('You have to select at least 1 Fiscal Year. \nYou may have selected the compare options with more than 1 year with credit/debit columns and % option.This can lead contents to be printed out of the paper.Please try again.'))
|
||||
|
||||
|
||||
if ((len(data['form']['fiscalyear'])==3) and (data['form']['format_perc']!=1) and (data['form']['show_columns']!=1)):
|
||||
if data['form']['landscape']==1:
|
||||
return {
|
||||
'type': 'ir.actions.report.xml',
|
||||
'report_name': 'account.account.balance.landscape',
|
||||
'datas': data,
|
||||
}
|
||||
else:
|
||||
return {
|
||||
'type': 'ir.actions.report.xml',
|
||||
'report_name': 'account.balance.account.balance',
|
||||
'datas': data,
|
||||
}
|
||||
if data['form']['format_perc']==1:
|
||||
if len(data['form']['fiscalyear'])<=2:
|
||||
if data['form']['landscape']==1:
|
||||
return {
|
||||
'type': 'ir.actions.report.xml',
|
||||
'report_name': 'account.account.balance.landscape',
|
||||
'datas': data,
|
||||
}
|
||||
else:
|
||||
return {
|
||||
'type': 'ir.actions.report.xml',
|
||||
'report_name': 'account.balance.account.balance',
|
||||
'datas': data,
|
||||
}
|
||||
else:
|
||||
if len(data['form']['fiscalyear'])==3:
|
||||
if data['form']['landscape']==1:
|
||||
return {
|
||||
'type': 'ir.actions.report.xml',
|
||||
'report_name': 'account.account.balance.landscape',
|
||||
'datas': data,
|
||||
}
|
||||
else:
|
||||
raise osv.except_osv(_('Warning !'), _('You might have done following mistakes. Please correct them and try again. \n 1. You have selected more than 3 years in any case. \n 2. You have not selected Percentage option, but you have selected more than 2 years. \n You can select maximum 3 years. Please check again. \n 3. You have selected Percentage option with more than 2 years, but you have not selected landscape format. You have to select Landscape option. Please Check it.'))
|
||||
else:
|
||||
raise osv.except_osv(_('Warning !'), _('You might have done following mistakes. Please correct them and try again. \n 1. You have selected more than 3 years in any case. \n 2. You have not selected Percentage option, but you have selected more than 2 years. \n You can select maximum 3 years. Please check again. \n 3. You have selected Percentage option with more than 2 years, but you have not selected landscape format. You have to select Landscape option. Please Check it.'))
|
||||
else:
|
||||
if len(data['form']['fiscalyear'])>2:
|
||||
if data['form']['landscape']==1:
|
||||
return {
|
||||
'type': 'ir.actions.report.xml',
|
||||
'report_name': 'account.account.balance.landscape',
|
||||
'datas': data,
|
||||
}
|
||||
else:
|
||||
raise osv.except_osv(_('Warning !'), _('You might have done following mistakes. Please correct them and try again. \n 1. You have selected more than 3 years in any case. \n 2. You have not selected Percentage option, but you have selected more than 2 years. \n You can select maximum 3 years. Please check again. \n 3. You have selected Percentage option with more than 2 years, but you have not selected landscape format. You have to select Landscape option. Please Check it.'))
|
||||
else:
|
||||
if data['form']['landscape']==1:
|
||||
return {
|
||||
'type': 'ir.actions.report.xml',
|
||||
'report_name': 'account.account.balance.landscape',
|
||||
'datas': data,
|
||||
}
|
||||
else:
|
||||
return {
|
||||
'type': 'ir.actions.report.xml',
|
||||
'report_name': 'account.balance.account.balance',
|
||||
'datas': data,
|
||||
}
|
||||
account_compare_account_balance_report()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -1,47 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<record id="account_compare_account_balance_report_view" model="ir.ui.view">
|
||||
<field name="name">account.compare.account.balance.report.form</field>
|
||||
<field name="model">account.compare.account.balance.report</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Customize Report">
|
||||
<notebook tabpos="up">
|
||||
<page string="Report Options">
|
||||
<separator string="Select Fiscal Year(s)(Maximum Three Years)" colspan="4"/>
|
||||
<label align="0.7" colspan="6" string="(If you do not select Fiscal year it will take all open fiscal years)"/>
|
||||
<field name="fiscalyear" colspan="5" nolabel="1"/>
|
||||
<field name="landscape" colspan="4"/>
|
||||
<field name="show_columns" colspan="4"/>
|
||||
<field name="format_perc" colspan="4"/>
|
||||
<field name="select_account" colspan="4"/>
|
||||
<field name="account_choice" colspan="4"/>
|
||||
<field name="compare_pattern" colspan="4"/>
|
||||
</page>
|
||||
<page string="Select Period">
|
||||
<field name="period_manner" colspan="4"/>
|
||||
<separator string="Select Period(s)" colspan="4"/>
|
||||
<field name="periods" colspan="4" nolabel="1"/>
|
||||
</page>
|
||||
</notebook>
|
||||
<newline/>
|
||||
<group colspan="4" col="6">
|
||||
<label string ="" colspan="2"/>
|
||||
<button special="cancel" string="Cancel" icon="gtk-cancel"/>
|
||||
<button name="check" string="Print" type="object" icon="gtk-print" default_focus="1"/>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<act_window name="Account balance-Compare Years"
|
||||
res_model="account.compare.account.balance.report"
|
||||
src_model="account.account"
|
||||
view_mode="form"
|
||||
target="new"
|
||||
key2="client_print_multi"
|
||||
id="action_view_account_compare_account_balance_report"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
Loading…
Reference in New Issue