[IMP] account_balance Module : Modified reports.
bzr revid: vra@tinyerp.com-20090612050904-p19sa6ggn385mfzy
This commit is contained in:
parent
4dda860f35
commit
e92b88df7c
|
@ -20,5 +20,6 @@
|
|||
#
|
||||
##############################################################################
|
||||
import account_balance
|
||||
import account_balance_landscape
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
|
|
|
@ -37,6 +37,8 @@ class account_balance(report_sxw.rml_parse):
|
|||
def __init__(self, cr, uid, name, context):
|
||||
super(account_balance, self).__init__(cr, uid, name, 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
|
||||
|
@ -47,268 +49,278 @@ class account_balance(report_sxw.rml_parse):
|
|||
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 repeatIn(self, lst, name, nodes_parent=False,td=False,width=[],value=[],type=[]):
|
||||
self._node.data = ''
|
||||
node = self._find_parent(self._node, nodes_parent or parents)
|
||||
ns = node.nextSibling
|
||||
#start
|
||||
if value==['Cash','%']:
|
||||
if show==1:
|
||||
if perc==1:
|
||||
if pattern=='none':
|
||||
value=['','Cash','%']
|
||||
type=['lable','lable','lable']
|
||||
width=[130,65,65]
|
||||
else:
|
||||
value=[' ','','Cash','%']
|
||||
type=['string','lable','lable','lable']
|
||||
width=[65,130,65,65]
|
||||
else:
|
||||
if pattern=='none':
|
||||
value=['']
|
||||
type=['lable']
|
||||
width=[195]
|
||||
else:
|
||||
value=[' ','']
|
||||
type=['string','lable']
|
||||
width=[65,195]
|
||||
else:
|
||||
if perc==1:
|
||||
if pattern=='none':
|
||||
value=['Cash','%']
|
||||
type=['lable','lable']
|
||||
width=[65,65]
|
||||
else:
|
||||
value=[' ','Cash','%']
|
||||
type=['string','lable','lable']
|
||||
width=[65,65,65]
|
||||
else:
|
||||
if pattern=='none':
|
||||
value=['']
|
||||
type=['lable']
|
||||
width=[65]
|
||||
else:
|
||||
value=[' ','']
|
||||
type=['string','lable']
|
||||
width=[65,65]
|
||||
|
||||
|
||||
if value==['year']:
|
||||
if show==1:
|
||||
if perc==1:
|
||||
if pattern=='none':
|
||||
width=[260]
|
||||
else:
|
||||
value=[' ','year']
|
||||
type=['string','string']
|
||||
width=[65,260]
|
||||
else:
|
||||
if pattern=='none':
|
||||
width=[195]
|
||||
else:
|
||||
value=[' ','year']
|
||||
type=['string','string']
|
||||
width=[65,195]
|
||||
else:
|
||||
if perc==1:
|
||||
if pattern=='none':
|
||||
width=[130]
|
||||
else:
|
||||
value=[' ','year']
|
||||
type=['string','string']
|
||||
width=[65,130]
|
||||
|
||||
else:
|
||||
if pattern=='none':
|
||||
width=[65]
|
||||
else:
|
||||
value=[' ','year']
|
||||
type=['string','string']
|
||||
width=[65,65]
|
||||
|
||||
if value==['Debit','Credit','Balance']:
|
||||
if show==1:
|
||||
if perc==1:
|
||||
if pattern=='none':
|
||||
width=[65,65,130]
|
||||
else:
|
||||
value=[' ','Debit','Credit','Balance']
|
||||
type=['string','lable','lable','lable']
|
||||
width=[65,65,65,130]
|
||||
else:
|
||||
if pattern=='none':
|
||||
width=[65,65,65]
|
||||
else:
|
||||
value=[' ','Debit','Credit','Balance']
|
||||
type=['string','lable','lable','lable']
|
||||
width=[65,65,65,65]
|
||||
|
||||
else:
|
||||
if perc==1:
|
||||
if pattern=='none':
|
||||
value=['Balance']
|
||||
type=['lable']
|
||||
width=[130]
|
||||
else:
|
||||
value=[' ','Balance']
|
||||
type=['string','lable']
|
||||
width=[65,130]
|
||||
else:
|
||||
if pattern=='none':
|
||||
value=['Balance']
|
||||
type=['lable']
|
||||
width=[65]
|
||||
else:
|
||||
value=[' ','Balance']
|
||||
type=['string','lable']
|
||||
width=[65,65]
|
||||
|
||||
if value==['debit','credit','balance']:
|
||||
if show==1:
|
||||
if perc==1:
|
||||
if pattern=='none':
|
||||
value=['debit','credit','balance','balance_perc']
|
||||
type=['string','string','string','string']
|
||||
width=[65,65,65,65]
|
||||
else:
|
||||
value=[pattern,'debit','credit','balance','balance_perc']
|
||||
type=['string','string','string','string','string']
|
||||
width=[65,65,65,65,65]
|
||||
else:
|
||||
if pattern=='none':
|
||||
value=['debit','credit','balance']
|
||||
type=['string','string','string']
|
||||
width=[65,65,65]
|
||||
else:
|
||||
value=[pattern,'debit','credit','balance']
|
||||
type=['string','string','string','string']
|
||||
width=[65,65,65,65]
|
||||
|
||||
else:
|
||||
if perc==1:
|
||||
if pattern=='none':
|
||||
value=['balance','balance_perc']
|
||||
type=['string','string']
|
||||
width=[65,65]
|
||||
else:
|
||||
value=[pattern,'balance','balance_perc']
|
||||
type=['string','string','string']
|
||||
width=[65,65,65]
|
||||
else:
|
||||
if pattern=='none':
|
||||
value=['balance']
|
||||
type=['string']
|
||||
width=[65]
|
||||
else:
|
||||
value=[pattern,'balance']
|
||||
type=['string','string']
|
||||
width=[65,65]
|
||||
|
||||
if value==['sum_debit','sum_credit','']:
|
||||
if show==1:
|
||||
if perc==1:
|
||||
if pattern=='none':
|
||||
width=[65,65,130]
|
||||
else:
|
||||
value=[' ','sum_debit','sum_credit','']
|
||||
type=['string','string','string','lable']
|
||||
width=[65,65,65,130]
|
||||
else:
|
||||
if pattern=='none':
|
||||
width=[65,65,65]
|
||||
else:
|
||||
value=[' ','sum_debit','sum_credit','']
|
||||
type=['string','string','string','lable']
|
||||
width=[65,65,65,65]
|
||||
else:
|
||||
if perc==1:
|
||||
if pattern=='none':
|
||||
value=['']
|
||||
type=['lable']
|
||||
width=[130]
|
||||
else:
|
||||
value=[' ','']
|
||||
type=['string','lable']
|
||||
width=[65,130]
|
||||
else:
|
||||
if pattern=='none':
|
||||
value=['']
|
||||
type=['lable']
|
||||
width=[65]
|
||||
else:
|
||||
value=[' ','']
|
||||
type=['string','lable']
|
||||
width=[65,65]
|
||||
|
||||
if not lst:
|
||||
lst.append(1)
|
||||
for ns in node.childNodes :
|
||||
if ns and ns.nodeName!='#text' and ns.tagName=='blockTable' and td :
|
||||
width_str = ns._attrs['colWidths'].nodeValue
|
||||
ns.removeAttribute('colWidths')
|
||||
total_td = td * len(value)
|
||||
|
||||
if not width:
|
||||
for v in value:
|
||||
width.append(30)
|
||||
check1=0
|
||||
for t in range(td):
|
||||
for v in range(len(value)):
|
||||
if type[v] in ('String','STRING','string'):
|
||||
if (value[v]==" " or value[0]==pattern):
|
||||
if check1==0:
|
||||
check1=1
|
||||
width_str +=',0.0'
|
||||
else:
|
||||
width_str +=',%d'%width[v]
|
||||
else:
|
||||
width_str +=',%d'%width[v]
|
||||
else:
|
||||
width_str +=',%d'%width[v]
|
||||
ns.setAttribute('colWidths',width_str)
|
||||
|
||||
child_list = ns.childNodes
|
||||
|
||||
check=0
|
||||
for child in child_list:
|
||||
if child.nodeName=='tr':
|
||||
lc = child.childNodes[1]
|
||||
for t in range(td):
|
||||
i=0
|
||||
for v in value:
|
||||
|
||||
newnode = lc.cloneNode(1)
|
||||
temp2="%s['status']==1 and ( setTag('para','para',{'fontName':'Times-bold'})) ]]"%(name)
|
||||
# def repeatIn(self, lst, name, nodes_parent=False,td=False,width=[],value=[],type=[]):
|
||||
# self._node.data = ''
|
||||
# node = self._find_parent(self._node, nodes_parent or parents)
|
||||
# ns = node.nextSibling
|
||||
##start
|
||||
# if value==['Cash','%']:
|
||||
# if show==1:
|
||||
# if perc==1:
|
||||
# if pattern=='none':
|
||||
# value=['','Cash','%']
|
||||
# type=['lable','lable','lable']
|
||||
# width=[130,65,65]
|
||||
# else:
|
||||
# value=[' ','','Cash','%']
|
||||
# type=['string','lable','lable','lable']
|
||||
# width=[65,130,65,65]
|
||||
# else:
|
||||
# if pattern=='none':
|
||||
# value=['']
|
||||
# type=['lable']
|
||||
# width=[195]
|
||||
# else:
|
||||
# value=[' ','']
|
||||
# type=['string','lable']
|
||||
# width=[65,195]
|
||||
# else:
|
||||
# if perc==1:
|
||||
# if pattern=='none':
|
||||
# value=['Cash','%']
|
||||
# type=['lable','lable']
|
||||
# width=[65,65]
|
||||
# else:
|
||||
# value=[' ','Cash','%']
|
||||
# type=['string','lable','lable']
|
||||
# width=[65,65,65]
|
||||
# else:
|
||||
# if pattern=='none':
|
||||
# value=['']
|
||||
# type=['lable']
|
||||
# width=[65]
|
||||
# else:
|
||||
# value=[' ','']
|
||||
# type=['string','lable']
|
||||
# width=[65,65]
|
||||
#
|
||||
if type[i] in ('String','STRING','string'):
|
||||
if (v==" " or v==pattern) and i==0 and check==0:
|
||||
check=1
|
||||
newnode.childNodes[1].lastChild.data=""
|
||||
else:
|
||||
if v==" ":
|
||||
newnode.childNodes[1].lastChild.data=""
|
||||
else:
|
||||
t1= "[[ %s['%s%d'] ]]"%(name,v,t)
|
||||
if v=="year" or v=="sum_debit" or v=="sum_credit":
|
||||
newnode.childNodes[1].lastChild.data = t1
|
||||
else:
|
||||
newnode.childNodes[1].lastChild.data = t1+"[["+temp2
|
||||
# newnode.childNodes[1].lastChild.data=[[ a['status']==1 and ( setTag('para','para',{'fontName':'Times-bold'})) ]]
|
||||
elif type[i] in ('Lable','LABLE','lable'):
|
||||
|
||||
newnode.childNodes[1].lastChild.data= v
|
||||
|
||||
child.appendChild(newnode)
|
||||
|
||||
newnode=False
|
||||
i+=1
|
||||
return super(account_balance,self).repeatIn(lst, name, nodes_parent=False)
|
||||
#
|
||||
# if value==['year']:
|
||||
# if show==1:
|
||||
# if perc==1:
|
||||
# if pattern=='none':
|
||||
# width=[260]
|
||||
# else:
|
||||
# value=[' ','year']
|
||||
# type=['string','string']
|
||||
# width=[65,260]
|
||||
# else:
|
||||
# if pattern=='none':
|
||||
# width=[195]
|
||||
# else:
|
||||
# value=[' ','year']
|
||||
# type=['string','string']
|
||||
# width=[65,195]
|
||||
# else:
|
||||
# if perc==1:
|
||||
# if pattern=='none':
|
||||
# width=[130]
|
||||
# else:
|
||||
# value=[' ','year']
|
||||
# type=['string','string']
|
||||
# width=[65,130]
|
||||
#
|
||||
# else:
|
||||
# if pattern=='none':
|
||||
# width=[65]
|
||||
# else:
|
||||
# value=[' ','year']
|
||||
# type=['string','string']
|
||||
# width=[65,65]
|
||||
#
|
||||
# if value==['Debit','Credit','Balance']:
|
||||
# if show==1:
|
||||
# if perc==1:
|
||||
# if pattern=='none':
|
||||
# width=[65,65,130]
|
||||
# else:
|
||||
# value=[' ','Debit','Credit','Balance']
|
||||
# type=['string','lable','lable','lable']
|
||||
# width=[65,65,65,130]
|
||||
# else:
|
||||
# if pattern=='none':
|
||||
# width=[65,65,65]
|
||||
# else:
|
||||
# value=[' ','Debit','Credit','Balance']
|
||||
# type=['string','lable','lable','lable']
|
||||
# width=[65,65,65,65]
|
||||
#
|
||||
# else:
|
||||
# if perc==1:
|
||||
# if pattern=='none':
|
||||
# value=['Balance']
|
||||
# type=['lable']
|
||||
# width=[130]
|
||||
# else:
|
||||
# value=[' ','Balance']
|
||||
# type=['string','lable']
|
||||
# width=[65,130]
|
||||
# else:
|
||||
# if pattern=='none':
|
||||
# value=['Balance']
|
||||
# type=['lable']
|
||||
# width=[65]
|
||||
# else:
|
||||
# value=[' ','Balance']
|
||||
# type=['string','lable']
|
||||
# width=[65,65]
|
||||
#
|
||||
# if value==['debit','credit','balance']:
|
||||
# if show==1:
|
||||
# if perc==1:
|
||||
# if pattern=='none':
|
||||
# value=['debit','credit','balance','balance_perc']
|
||||
# type=['string','string','string','string']
|
||||
# width=[65,65,65,65]
|
||||
# else:
|
||||
# value=[pattern,'debit','credit','balance','balance_perc']
|
||||
# type=['string','string','string','string','string']
|
||||
# width=[65,65,65,65,65]
|
||||
# else:
|
||||
# if pattern=='none':
|
||||
# value=['debit','credit','balance']
|
||||
# type=['string','string','string']
|
||||
# width=[65,65,65]
|
||||
# else:
|
||||
# value=[pattern,'debit','credit','balance']
|
||||
# type=['string','string','string','string']
|
||||
# width=[65,65,65,65]
|
||||
#
|
||||
# else:
|
||||
# if perc==1:
|
||||
# if pattern=='none':
|
||||
# value=['balance','balance_perc']
|
||||
# type=['string','string']
|
||||
# width=[65,65]
|
||||
# else:
|
||||
# value=[pattern,'balance','balance_perc']
|
||||
# type=['string','string','string']
|
||||
# width=[65,65,65]
|
||||
# else:
|
||||
# if pattern=='none':
|
||||
# value=['balance']
|
||||
# type=['string']
|
||||
# width=[65]
|
||||
# else:
|
||||
# value=[pattern,'balance']
|
||||
# type=['string','string']
|
||||
# width=[65,65]
|
||||
#
|
||||
# if value==['sum_debit','sum_credit','']:
|
||||
# if show==1:
|
||||
# if perc==1:
|
||||
# if pattern=='none':
|
||||
# width=[65,65,130]
|
||||
# else:
|
||||
# value=[' ','sum_debit','sum_credit','']
|
||||
# type=['string','string','string','lable']
|
||||
# width=[65,65,65,130]
|
||||
# else:
|
||||
# if pattern=='none':
|
||||
# width=[65,65,65]
|
||||
# else:
|
||||
# value=[' ','sum_debit','sum_credit','']
|
||||
# type=['string','string','string','lable']
|
||||
# width=[65,65,65,65]
|
||||
# else:
|
||||
# if perc==1:
|
||||
# if pattern=='none':
|
||||
# value=['']
|
||||
# type=['lable']
|
||||
# width=[130]
|
||||
# else:
|
||||
# value=[' ','']
|
||||
# type=['string','lable']
|
||||
# width=[65,130]
|
||||
# else:
|
||||
# if pattern=='none':
|
||||
# value=['']
|
||||
# type=['lable']
|
||||
# width=[65]
|
||||
# else:
|
||||
# value=[' ','']
|
||||
# type=['string','lable']
|
||||
# width=[65,65]
|
||||
#
|
||||
# if not lst:
|
||||
# lst.append(1)
|
||||
# for ns in node.childNodes :
|
||||
# if ns and ns.nodeName!='#text' and ns.tagName=='blockTable' and td :
|
||||
# width_str = ns._attrs['colWidths'].nodeValue
|
||||
# ns.removeAttribute('colWidths')
|
||||
# total_td = td * len(value)
|
||||
#
|
||||
# if not width:
|
||||
# for v in value:
|
||||
# width.append(30)
|
||||
# check1=0
|
||||
# for t in range(td):
|
||||
# for v in range(len(value)):
|
||||
# if type[v] in ('String','STRING','string'):
|
||||
# if (value[v]==" " or value[0]==pattern):
|
||||
# if check1==0:
|
||||
# check1=1
|
||||
# width_str +=',0.0'
|
||||
# else:
|
||||
# width_str +=',%d'%width[v]
|
||||
# else:
|
||||
# width_str +=',%d'%width[v]
|
||||
# else:
|
||||
# width_str +=',%d'%width[v]
|
||||
# ns.setAttribute('colWidths',width_str)
|
||||
#
|
||||
# child_list = ns.childNodes
|
||||
#
|
||||
# check=0
|
||||
# for child in child_list:
|
||||
# if child.nodeName=='tr':
|
||||
# lc = child.childNodes[1]
|
||||
# for t in range(td):
|
||||
# i=0
|
||||
# for v in value:
|
||||
#
|
||||
# newnode = lc.cloneNode(1)
|
||||
# temp2="%s['status']==1 and ( setTag('para','para',{'fontName':'Helvetica-bold'})) ]]"%(name)
|
||||
##
|
||||
# if type[i] in ('String','STRING','string'):
|
||||
# if (v==" " or v==pattern) and i==0 and check==0:
|
||||
# check=1
|
||||
# if newnode.childNodes[1].lastChild:
|
||||
# newnode.childNodes[1].lastChild.data=""
|
||||
# else:
|
||||
# if v==" ":
|
||||
# if newnode.childNodes[1].lastChild:
|
||||
# newnode.childNodes[1].lastChild.data=""
|
||||
# else:
|
||||
# t1= "[[ %s['%s%d'] ]]"%(name,v,t)
|
||||
# if v=="year" or v=="sum_debit" or v=="sum_credit":
|
||||
# if newnode.childNodes[1].lastChild:
|
||||
# newnode.childNodes[1].lastChild.data = t1
|
||||
# else:
|
||||
# if newnode.childNodes[1].lastChild:
|
||||
# newnode.childNodes[1].lastChild.data = t1+"[["+temp2
|
||||
## newnode.childNodes[1].lastChild.data=[[ a['status']==1 and ( setTag('para','para',{'fontName':'Times-bold'})) ]]
|
||||
# elif type[i] in ('Lable','LABLE','lable'):
|
||||
# if newnode.childNodes[1].lastChild:
|
||||
# newnode.childNodes[1].lastChild.data= v
|
||||
#
|
||||
# child.appendChild(newnode)
|
||||
#
|
||||
# newnode=False
|
||||
# i+=1
|
||||
# return super(account_balance,self).repeatIn(lst, name, nodes_parent=False)
|
||||
#end
|
||||
|
||||
def linesForYear(self,form):
|
||||
temp=0
|
||||
years={}
|
||||
|
@ -405,7 +417,6 @@ class account_balance(report_sxw.rml_parse):
|
|||
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
|
||||
|
@ -416,7 +427,6 @@ class account_balance(report_sxw.rml_parse):
|
|||
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
|
||||
|
@ -533,7 +543,6 @@ class account_balance(report_sxw.rml_parse):
|
|||
|
||||
res["bal_perc"+str(j)]=locale.format("%.2f", temp_perc) + "%"
|
||||
|
||||
|
||||
if ref_bal=='nothing':
|
||||
if level==1:
|
||||
self.parent_bal=1
|
||||
|
@ -586,7 +595,69 @@ class account_balance(report_sxw.rml_parse):
|
|||
|
||||
return result
|
||||
|
||||
def get_years(self,form):
|
||||
result =[]
|
||||
res={}
|
||||
for temp in range(0,len(form['fiscalyear'][0][2])):
|
||||
res={}
|
||||
fy=self.pool.get('account.fiscalyear').name_get(self.cr,self.uid,form['fiscalyear'][0][2][temp])
|
||||
res['year']=fy[0][1][12:16]
|
||||
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_balance/report/account_balance.rml', parser=account_balance, header=False)
|
||||
report_sxw.report_sxw('report.account.account.balance.landscape', 'account.account', 'addons/account_balance/report/account_balance_landscape.rml', parser=account_balance, header=False)
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<?xml version="1.0"?>
|
||||
<document filename="test.pdf">
|
||||
<template pageSize="(635.0,842.0)" title="Test" author="Martin Simon" allowSplitting="20">
|
||||
<template pageSize="(595.0,842.0)" title="Test" author="Martin Simon" allowSplitting="20">
|
||||
<pageTemplate id="first">
|
||||
<frame id="first" x1="15.0" y1="15.0" width="615" height="772"/>
|
||||
<frame id="first" x1="57.0" y1="57.0" width="481" height="728"/>
|
||||
</pageTemplate>
|
||||
</template>
|
||||
<stylesheet>
|
||||
|
@ -10,170 +10,336 @@
|
|||
<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"/>
|
||||
<blockBackground colorName="#b3b3b3" start="0,0" stop="0,-1"/>
|
||||
<blockBackground colorName="#b3b3b3" start="1,0" stop="1,-1"/>
|
||||
<blockBackground colorName="#b3b3b3" start="2,0" stop="2,-1"/>
|
||||
<blockBackground colorName="#b3b3b3" start="3,0" stop="3,-1"/>
|
||||
<blockBackground colorName="#b3b3b3" start="4,0" stop="4,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table1">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<blockBackground colorName="#e6e6e6" start="0,0" stop="0,0"/>
|
||||
<blockBackground colorName="#e6e6e6" start="1,0" stop="1,0"/>
|
||||
<blockBackground colorName="#e6e6e6" start="2,0" stop="2,0"/>
|
||||
<blockBackground colorName="#e6e6e6" start="0,1" stop="0,1"/>
|
||||
<blockBackground colorName="#e6e6e6" start="1,1" stop="1,1"/>
|
||||
<blockBackground colorName="#e6e6e6" start="2,1" stop="2,1"/>
|
||||
<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"/>
|
||||
<blockBackground colorName="#b3b3b3" start="0,0" stop="0,-1"/>
|
||||
<blockBackground colorName="#b3b3b3" start="1,0" stop="1,-1"/>
|
||||
<blockBackground colorName="#b3b3b3" start="2,0" stop="2,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table6">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="GRID" colorName="black"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table61">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="GRID" colorName="red"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table2">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="GRID" colorName="black"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table5">
|
||||
<blockTableStyle id="Table8">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<blockBackground colorName="#b3b3b3" start="0,0" stop="0,-1"/>
|
||||
<blockBackground colorName="#b3b3b3" start="1,0" stop="1,-1"/>
|
||||
<blockBackground colorName="#b3b3b3" start="2,0" stop="2,-1"/>
|
||||
<blockBackground colorName="#b3b3b3" start="3,0" stop="3,-1"/>
|
||||
<blockBackground colorName="#b3b3b3" start="4,0" stop="4,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table4">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="GRID" colorName="black"/>
|
||||
<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="#cccccc" start="0,0" stop="0,-1"/>
|
||||
<blockBackground colorName="#cccccc" start="1,0" stop="1,-1"/>
|
||||
<blockBackground colorName="#cccccc" start="2,0" stop="2,-1"/>
|
||||
<blockBackground colorName="#cccccc" start="3,0" stop="3,-1"/>
|
||||
<blockBackground colorName="#cccccc" start="4,0" stop="4,-1"/>
|
||||
</blockTableStyle>
|
||||
<initialize>
|
||||
<paraStyle name="all" alignment="justify"/>
|
||||
</initialize>
|
||||
<paraStyle name="P1" fontName="Times-Roman" fontSize="12.0" leading="18" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P2" fontName="Times-Roman" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0"/>
|
||||
<paraStyle name="P3" fontName="Times-Roman" fontSize="8.0" leading="10" alignment="RIGHT" />
|
||||
<paraStyle name="P4" fontName="Times-Roman" fontSize="9.0" alignment="CENTER"/>
|
||||
<paraStyle name="P5" fontName="Times-Roman" fontSize="11.0" leading="14" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P6" fontName="Times-Roman" fontSize="9.0" leading="12" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P7" fontName="Times-Roman" fontSize="8.0" leading="10" alignment="LEFT"/>
|
||||
<paraStyle name="P8" fontName="Times-Roman" alignment="CENTER"/>
|
||||
<paraStyle name="P9" fontName="Times-Roman" fontSize="11.0" leading="14" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P10" fontName="Times-Roman" fontSize="11.0" leading="14" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P11" fontName="Times-Roman" fontSize="11.0" leading="14" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P12" fontName="Times-Roman" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P13" rightIndent="17.0" leftIndent="-0.0" fontName="Times-Bold" fontSize="8.0" leading="10" spaceBefore="0.0" spaceAfter="1.0"/>
|
||||
<paraStyle name="Standard" fontName="Times-Roman"/>
|
||||
<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="Table Contents" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Table Heading" fontName="Times-Roman" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Caption" fontName="Times-Roman" fontSize="10.0" leading="13" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Index" fontName="Times-Roman"/>
|
||||
<paraStyle name="Standard" fontName="Helvetica"/>
|
||||
<paraStyle name="Heading" fontName="Helvetica" fontSize="12.0" leading="15" 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-Oblique" fontSize="8.0" leading="10" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Index" fontName="Helvetica" fontSize="9.0" leading="11"/>
|
||||
<paraStyle name="Footer" fontName="Helvetica"/>
|
||||
<paraStyle name="Table Contents" fontName="Helvetica"/>
|
||||
<paraStyle name="Table Heading" fontName="Helvetica" alignment="CENTER"/>
|
||||
<paraStyle name="Horizontal Line" fontName="Helvetica" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="14.0"/>
|
||||
<paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="12.0" leading="15" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Heading 9" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" 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_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_default_Bold_8" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.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_tblheader_General_Right" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_tblheader_Details_Centre" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.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_Right_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" 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_header_Right" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.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_default_address" fontName="Helvetica" fontSize="10.0" leading="13" 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_Bold_9" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_Centre_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" 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"/>
|
||||
<paraStyle name="terp_default_2" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
</stylesheet>
|
||||
<images/>
|
||||
<story>
|
||||
<blockTable colWidths="143.0,226.0,156.0" repeatRows="1" style="Table1">
|
||||
<para style="terp_default_8">[[ repeatIn(get_years(data['form']), 'y') ]]</para>
|
||||
<blockTable colWidths="482.0" style="Table_Tiltle">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="Table Contents">
|
||||
<para style="terp_header_Centre">Account Balance - [[ company.currency_id.name ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="terp_default_space">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<para style="terp_header">Year : [[ y['year'] ]]</para>
|
||||
<blockTable colWidths="57.0,185.0,62.0,67.0,111.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_Right">Debit</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Right">Credit</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Centre">Balance</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="terp_default_2">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<blockTable colWidths="56.0,247.0,178.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_Centre">Balance</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="terp_default_2">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<blockTable colWidths="56.0,135.0,50.0,128.0,112.0" style="Table8">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details">[[ data['form']['compare_pattern'] == 'none' and removeParentNode('blockTable') ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P1">Account balance</para>
|
||||
<para style="terp_tblheader_Details">Compare Selected Years In Terms of Cash/Perc</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P3">
|
||||
<para style="terp_tblheader_Details_Centre">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="terp_default_2">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<section>
|
||||
<para style="terp_default_8">[[ repeatIn(get_lines(y,data['form']), 'a') ]]</para>
|
||||
<blockTable colWidths="56.0,134.0,51.0,61.0,69.0,110.0" style="Table4">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_default_9"><font>[[ (data['form']['format_perc'] or not data['form']['show_columns']) and removeParentNode('blockTable') ]]</font>[[ a['code'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ a['name'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ a['pattern'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[ a['debit'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[ a['credit'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[ a['balance'] ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="terp_default_2">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<blockTable colWidths="56.0,134.0,52.0,61.0,69.0,74.0,36.0" style="Table2">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_default_9"><font>[[ (not data['form']['format_perc'] or not data['form']['show_columns']) and removeParentNode('blockTable') ]]</font>[[ a['code'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ a['name'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ a['pattern'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[ a['debit'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[ a['credit'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[ a['balance'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[ a['balance_perc'] ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="terp_default_2">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<blockTable colWidths="55.0,135.0,113.0,178.0" style="Table6">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_default_9"><font>[[ (data['form']['format_perc'] or data['form']['show_columns']) and removeParentNode('blockTable') ]]</font>[[ a['code'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ a['name'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ a['pattern'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[ a['balance'] ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="terp_default_2"/>
|
||||
<blockTable colWidths="54.0,135.0,113.0,130.0,49.0" style="Table5">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_default_9"><font>[[ (not data['form']['format_perc'] or data['form']['show_columns']) and removeParentNode('blockTable') ]]</font>[[ a['code'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ a['name'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ a['pattern'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[ a['balance'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[ a['balance_perc'] ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="terp_default_2">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</section>
|
||||
<para style="terp_default_9">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<blockTable colWidths="52.0,189.0,61.0,69.0,110.0" style="Table3">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="Table Contents">[[ company.name ]]</para>
|
||||
<para style="terp_default_9">[[ not data['form']['show_columns'] and removeParentNode('blockTable') ]] </para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P4">
|
||||
<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>
|
||||
<td>
|
||||
<para style="P5">Currency: [[ company.currency_id.name ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="Standard">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<para style="P8">Printing date: [[ time.strftime('%Y-%m-%d') ]] at [[ time.strftime('%H:%M:%S') ]]</para>
|
||||
<para style="P8">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<section>
|
||||
<para style="P13"> [[repeatIn(linesForYear(data['form']),'year_header',td=len(data['form']['fiscalyear'][0][2]),width=[126],value=['year'],type=['string']) ]]</para>
|
||||
<blockTable colWidths="190.0" style="Table6">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P1">Account Information</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
</section>
|
||||
<section>
|
||||
<para style="P13">[[ repeatIn([],'title',td=len(data['form']['fiscalyear'][0][2]),width=[42,42,42],value=['Debit','Credit','Balance'],type=['lable','lable','lable']) ]]</para>
|
||||
<blockTable colWidths="30.0,160.0" style="Table6">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P1">Code</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P1">Account Name</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
</section>
|
||||
<section>
|
||||
<para style="P13">[[ repeatIn([],'title',td=len(data['form']['fiscalyear'][0][2]),width=[84,42],value=['Cash','%'],type=['lable','lable']) ]]</para>
|
||||
<blockTable colWidths="190.0" style="Table5">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P4"> </para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
</section>
|
||||
<para style="P8">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<section>
|
||||
<para style="P13">[[ repeatIn(lines(data['form']),'a',td=len(data['form']['fiscalyear'][0][2]),width=[42,42,42],value=['debit','credit','balance'],type=['string','string','string']) ]]</para>
|
||||
<blockTable colWidths="0.0,28.0,162.0" style="Table5">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P3"> </para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P7">[[ a['status']==1 and ( setTag('para','para',{'fontName':'Times-bold'})) ]][[ a['code'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P2"><font>[['.....'*(a['level']-1) ]][[ setTag('font','font',{'color':'white'}) ]]</font><font>[[ a['status']==1 and ( setTag('font','font',{'name':'Times-bold'})) ]][[ a['name'] ]]</font></para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
</section>
|
||||
<para style="P8">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<section>
|
||||
<para style="P13">[[ repeatIn(linesForTotal(data['form']),'total',td=len(data['form']['fiscalyear'][0][2]),width=[42,42,42],value=['sum_debit','sum_credit',''],type=['string','string','lable'] ) ]]</para>
|
||||
<blockTable colWidths="190.0" style="Table6">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P3">Total:[[ data['form']['show_columns']==0 and removeParentNode('section')]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
</section>
|
||||
|
||||
<para style="Standard">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</story>
|
||||
</document>
|
||||
|
|
|
@ -0,0 +1,666 @@
|
|||
# -*- encoding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
|
||||
# $Id$
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU 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 General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import time
|
||||
import locale
|
||||
from report import report_sxw
|
||||
import rml_parse
|
||||
|
||||
#from addons.account.wizard import wizard_account_balance_report
|
||||
|
||||
parents = {
|
||||
'tr':1,
|
||||
'li':1,
|
||||
'story': 0,
|
||||
'section': 0
|
||||
}
|
||||
|
||||
class account_balance_landscape(rml_parse.rml_parse):
|
||||
def __init__(self, cr, uid, name, context):
|
||||
super(account_balance_landscape, self).__init__(cr, uid, name, 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 repeatIn(self, lst, name, nodes_parent=False,td=False,width=[],value=[],type=[]):
|
||||
# self._node.data = ''
|
||||
# node = self._find_parent(self._node, nodes_parent or parents)
|
||||
# ns = node.nextSibling
|
||||
##start
|
||||
# if value==['Cash','%']:
|
||||
# if show==1:
|
||||
# if perc==1:
|
||||
# if pattern=='none':
|
||||
# value=['','Cash','%']
|
||||
# type=['lable','lable','lable']
|
||||
# width=[130,65,65]
|
||||
# else:
|
||||
# value=[' ','','Cash','%']
|
||||
# type=['string','lable','lable','lable']
|
||||
# width=[65,130,65,65]
|
||||
# else:
|
||||
# if pattern=='none':
|
||||
# value=['']
|
||||
# type=['lable']
|
||||
# width=[195]
|
||||
# else:
|
||||
# value=[' ','']
|
||||
# type=['string','lable']
|
||||
# width=[65,195]
|
||||
# else:
|
||||
# if perc==1:
|
||||
# if pattern=='none':
|
||||
# value=['Cash','%']
|
||||
# type=['lable','lable']
|
||||
# width=[65,65]
|
||||
# else:
|
||||
# value=[' ','Cash','%']
|
||||
# type=['string','lable','lable']
|
||||
# width=[65,65,65]
|
||||
# else:
|
||||
# if pattern=='none':
|
||||
# value=['']
|
||||
# type=['lable']
|
||||
# width=[65]
|
||||
# else:
|
||||
# value=[' ','']
|
||||
# type=['string','lable']
|
||||
# width=[65,65]
|
||||
#
|
||||
#
|
||||
# if value==['year']:
|
||||
# if show==1:
|
||||
# if perc==1:
|
||||
# if pattern=='none':
|
||||
# width=[260]
|
||||
# else:
|
||||
# value=[' ','year']
|
||||
# type=['string','string']
|
||||
# width=[65,260]
|
||||
# else:
|
||||
# if pattern=='none':
|
||||
# width=[195]
|
||||
# else:
|
||||
# value=[' ','year']
|
||||
# type=['string','string']
|
||||
# width=[65,195]
|
||||
# else:
|
||||
# if perc==1:
|
||||
# if pattern=='none':
|
||||
# width=[130]
|
||||
# else:
|
||||
# value=[' ','year']
|
||||
# type=['string','string']
|
||||
# width=[65,130]
|
||||
#
|
||||
# else:
|
||||
# if pattern=='none':
|
||||
# width=[65]
|
||||
# else:
|
||||
# value=[' ','year']
|
||||
# type=['string','string']
|
||||
# width=[65,65]
|
||||
#
|
||||
# if value==['Debit','Credit','Balance']:
|
||||
# if show==1:
|
||||
# if perc==1:
|
||||
# if pattern=='none':
|
||||
# width=[65,65,130]
|
||||
# else:
|
||||
# value=[' ','Debit','Credit','Balance']
|
||||
# type=['string','lable','lable','lable']
|
||||
# width=[65,65,65,130]
|
||||
# else:
|
||||
# if pattern=='none':
|
||||
# width=[65,65,65]
|
||||
# else:
|
||||
# value=[' ','Debit','Credit','Balance']
|
||||
# type=['string','lable','lable','lable']
|
||||
# width=[65,65,65,65]
|
||||
#
|
||||
# else:
|
||||
# if perc==1:
|
||||
# if pattern=='none':
|
||||
# value=['Balance']
|
||||
# type=['lable']
|
||||
# width=[130]
|
||||
# else:
|
||||
# value=[' ','Balance']
|
||||
# type=['string','lable']
|
||||
# width=[65,130]
|
||||
# else:
|
||||
# if pattern=='none':
|
||||
# value=['Balance']
|
||||
# type=['lable']
|
||||
# width=[65]
|
||||
# else:
|
||||
# value=[' ','Balance']
|
||||
# type=['string','lable']
|
||||
# width=[65,65]
|
||||
#
|
||||
# if value==['debit','credit','balance']:
|
||||
# if show==1:
|
||||
# if perc==1:
|
||||
# if pattern=='none':
|
||||
# value=['debit','credit','balance','balance_perc']
|
||||
# type=['string','string','string','string']
|
||||
# width=[65,65,65,65]
|
||||
# else:
|
||||
# value=[pattern,'debit','credit','balance','balance_perc']
|
||||
# type=['string','string','string','string','string']
|
||||
# width=[65,65,65,65,65]
|
||||
# else:
|
||||
# if pattern=='none':
|
||||
# value=['debit','credit','balance']
|
||||
# type=['string','string','string']
|
||||
# width=[65,65,65]
|
||||
# else:
|
||||
# value=[pattern,'debit','credit','balance']
|
||||
# type=['string','string','string','string']
|
||||
# width=[65,65,65,65]
|
||||
#
|
||||
# else:
|
||||
# if perc==1:
|
||||
# if pattern=='none':
|
||||
# value=['balance','balance_perc']
|
||||
# type=['string','string']
|
||||
# width=[65,65]
|
||||
# else:
|
||||
# value=[pattern,'balance','balance_perc']
|
||||
# type=['string','string','string']
|
||||
# width=[65,65,65]
|
||||
# else:
|
||||
# if pattern=='none':
|
||||
# value=['balance']
|
||||
# type=['string']
|
||||
# width=[65]
|
||||
# else:
|
||||
# value=[pattern,'balance']
|
||||
# type=['string','string']
|
||||
# width=[65,65]
|
||||
#
|
||||
# if value==['sum_debit','sum_credit','']:
|
||||
# if show==1:
|
||||
# if perc==1:
|
||||
# if pattern=='none':
|
||||
# width=[65,65,130]
|
||||
# else:
|
||||
# value=[' ','sum_debit','sum_credit','']
|
||||
# type=['string','string','string','lable']
|
||||
# width=[65,65,65,130]
|
||||
# else:
|
||||
# if pattern=='none':
|
||||
# width=[65,65,65]
|
||||
# else:
|
||||
# value=[' ','sum_debit','sum_credit','']
|
||||
# type=['string','string','string','lable']
|
||||
# width=[65,65,65,65]
|
||||
# else:
|
||||
# if perc==1:
|
||||
# if pattern=='none':
|
||||
# value=['']
|
||||
# type=['lable']
|
||||
# width=[130]
|
||||
# else:
|
||||
# value=[' ','']
|
||||
# type=['string','lable']
|
||||
# width=[65,130]
|
||||
# else:
|
||||
# if pattern=='none':
|
||||
# value=['']
|
||||
# type=['lable']
|
||||
# width=[65]
|
||||
# else:
|
||||
# value=[' ','']
|
||||
# type=['string','lable']
|
||||
# width=[65,65]
|
||||
#
|
||||
# if not lst:
|
||||
# lst.append(1)
|
||||
# for ns in node.childNodes :
|
||||
# if ns and ns.nodeName!='#text' and ns.tagName=='blockTable' and td :
|
||||
# width_str = ns._attrs['colWidths'].nodeValue
|
||||
# ns.removeAttribute('colWidths')
|
||||
# total_td = td * len(value)
|
||||
#
|
||||
# if not width:
|
||||
# for v in value:
|
||||
# width.append(30)
|
||||
# check1=0
|
||||
# for t in range(td):
|
||||
# for v in range(len(value)):
|
||||
# if type[v] in ('String','STRING','string'):
|
||||
# if (value[v]==" " or value[0]==pattern):
|
||||
# if check1==0:
|
||||
# check1=1
|
||||
# width_str +=',0.0'
|
||||
# else:
|
||||
# width_str +=',%d'%width[v]
|
||||
# else:
|
||||
# width_str +=',%d'%width[v]
|
||||
# else:
|
||||
# width_str +=',%d'%width[v]
|
||||
# ns.setAttribute('colWidths',width_str)
|
||||
#
|
||||
# child_list = ns.childNodes
|
||||
#
|
||||
# check=0
|
||||
# for child in child_list:
|
||||
# if child.nodeName=='tr':
|
||||
# lc = child.childNodes[1]
|
||||
# for t in range(td):
|
||||
# i=0
|
||||
# for v in value:
|
||||
#
|
||||
# newnode = lc.cloneNode(1)
|
||||
# temp2="%s['status']==1 and ( setTag('para','para',{'fontName':'Helvetica-bold'})) ]]"%(name)
|
||||
##
|
||||
# if type[i] in ('String','STRING','string'):
|
||||
# if (v==" " or v==pattern) and i==0 and check==0:
|
||||
# check=1
|
||||
# if newnode.childNodes[1].lastChild:
|
||||
# newnode.childNodes[1].lastChild.data=""
|
||||
# else:
|
||||
# if v==" ":
|
||||
# if newnode.childNodes[1].lastChild:
|
||||
# newnode.childNodes[1].lastChild.data=""
|
||||
# else:
|
||||
# t1= "[[ %s['%s%d'] ]]"%(name,v,t)
|
||||
# if v=="year" or v=="sum_debit" or v=="sum_credit":
|
||||
# if newnode.childNodes[1].lastChild:
|
||||
# newnode.childNodes[1].lastChild.data = t1
|
||||
# else:
|
||||
# if newnode.childNodes[1].lastChild:
|
||||
# newnode.childNodes[1].lastChild.data = t1+"[["+temp2
|
||||
## newnode.childNodes[1].lastChild.data=[[ a['status']==1 and ( setTag('para','para',{'fontName':'Times-bold'})) ]]
|
||||
# elif type[i] in ('Lable','LABLE','lable'):
|
||||
# if newnode.childNodes[1].lastChild:
|
||||
# newnode.childNodes[1].lastChild.data= v
|
||||
#
|
||||
# child.appendChild(newnode)
|
||||
#
|
||||
# newnode=False
|
||||
# i+=1
|
||||
# return super(account_balance_landscape,self).repeatIn(lst, name, nodes_parent=False)
|
||||
#end
|
||||
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=[]
|
||||
# if perc==1:
|
||||
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'][0][2])):
|
||||
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)
|
||||
# self.flag=1
|
||||
# self.result_total = {}
|
||||
|
||||
for temp in range(0,len(form['fiscalyear'][0][2])):
|
||||
fy=self.pool.get('account.fiscalyear').name_get(self.cr,self.uid,form['fiscalyear'][0][2][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'][0][2]:
|
||||
tmp=[]
|
||||
|
||||
ctx['fiscalyear'] = id
|
||||
ctx['periods'] = form['periods'][0][2]
|
||||
ctx['period_manner']=form['period_manner']
|
||||
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
|
||||
|
||||
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'][0][2]:
|
||||
|
||||
ctx['fiscalyear'] = id
|
||||
ctx['periods'] = form['periods'][0][2]
|
||||
ctx['period_manner']=form['period_manner']
|
||||
|
||||
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'][0][2])):
|
||||
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'][0][2])):
|
||||
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'][0][2])):
|
||||
res={}
|
||||
fy=self.pool.get('account.fiscalyear').name_get(self.cr,self.uid,form['fiscalyear'][0][2][temp])
|
||||
res['year']=fy[0][1][12:16]
|
||||
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.account.balance.landscape', 'account.account', 'addons/account_balance/report/account_balance_landscape.rml', parser=account_balance_landscape, header=False)
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
<?xml version="1.0"?>
|
||||
<document filename="test.pdf">
|
||||
<template pageSize="(1120.0,570.0)" title="Test" author="Martin Simon" allowSplitting="20">
|
||||
<template pageSize="(1120.0,770.0)" title="Test" author="Martin Simon" allowSplitting="20" >
|
||||
<pageTemplate id="first">
|
||||
<frame id="first" x1="15.0" y1="15.0" width="1080" height="530"/>
|
||||
<frame id="first" x1="22.0" y1="31.0" width="1080" height="680"/>
|
||||
</pageTemplate>
|
||||
</template>
|
||||
<stylesheet>
|
||||
|
@ -10,170 +10,338 @@
|
|||
<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"/>
|
||||
<blockBackground colorName="#b3b3b3" start="0,0" stop="0,-1"/>
|
||||
<blockBackground colorName="#b3b3b3" start="1,0" stop="1,-1"/>
|
||||
<blockBackground colorName="#b3b3b3" start="2,0" stop="2,-1"/>
|
||||
<blockBackground colorName="#b3b3b3" start="3,0" stop="3,-1"/>
|
||||
<blockBackground colorName="#b3b3b3" start="4,0" stop="4,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table1">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<blockBackground colorName="#e6e6e6" start="0,0" stop="0,0"/>
|
||||
<blockBackground colorName="#e6e6e6" start="1,0" stop="1,0"/>
|
||||
<blockBackground colorName="#e6e6e6" start="2,0" stop="2,0"/>
|
||||
<blockBackground colorName="#e6e6e6" start="0,1" stop="0,1"/>
|
||||
<blockBackground colorName="#e6e6e6" start="1,1" stop="1,1"/>
|
||||
<blockBackground colorName="#e6e6e6" start="2,1" stop="2,1"/>
|
||||
<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"/>
|
||||
<blockBackground colorName="#b3b3b3" start="0,0" stop="0,-1"/>
|
||||
<blockBackground colorName="#b3b3b3" start="1,0" stop="1,-1"/>
|
||||
<blockBackground colorName="#b3b3b3" start="2,0" stop="2,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table6">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="GRID" colorName="black"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table61">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="GRID" colorName="red"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table2">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="GRID" colorName="black"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table5">
|
||||
<blockTableStyle id="Table8">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<blockBackground colorName="#b3b3b3" start="0,0" stop="0,-1"/>
|
||||
<blockBackground colorName="#b3b3b3" start="1,0" stop="1,-1"/>
|
||||
<blockBackground colorName="#b3b3b3" start="2,0" stop="2,-1"/>
|
||||
<blockBackground colorName="#b3b3b3" start="3,0" stop="3,-1"/>
|
||||
<blockBackground colorName="#b3b3b3" start="4,0" stop="4,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table4">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="GRID" colorName="black"/>
|
||||
<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="#cccccc" start="0,0" stop="0,-1"/>
|
||||
<blockBackground colorName="#cccccc" start="1,0" stop="1,-1"/>
|
||||
<blockBackground colorName="#cccccc" start="2,0" stop="2,-1"/>
|
||||
<blockBackground colorName="#cccccc" start="3,0" stop="3,-1"/>
|
||||
<blockBackground colorName="#cccccc" start="4,0" stop="4,-1"/>
|
||||
</blockTableStyle>
|
||||
<initialize>
|
||||
<paraStyle name="all" alignment="justify"/>
|
||||
</initialize>
|
||||
<paraStyle name="P1" fontName="Times-Roman" fontSize="12.0" leading="18" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P2" fontName="Times-Roman" fontSize="9.0" leading="11" alignment="LEFT"/>
|
||||
<paraStyle name="P3" fontName="Times-Roman" fontSize="8.0" leading="10" alignment="RIGHT"/>
|
||||
<paraStyle name="P4" fontName="Times-Roman" fontSize="9.0" alignment="CENTER"/>
|
||||
<paraStyle name="P5" fontName="Times-Roman" fontSize="11.0" leading="14" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P6" fontName="Times-Roman" fontSize="9.0" leading="12" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P7" fontName="Times-Roman" fontSize="8.0" leading="10" alignment="LEFT"/>
|
||||
<paraStyle name="P8" fontName="Times-Roman" alignment="CENTER"/>
|
||||
<paraStyle name="P9" fontName="Times-Roman" fontSize="11.0" leading="14" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P10" fontName="Times-Roman" fontSize="11.0" leading="14" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P11" fontName="Times-Roman" fontSize="11.0" leading="14" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P12" fontName="Times-Roman" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P13" rightIndent="17.0" leftIndent="-0.0" fontName="Times-Bold" fontSize="8.0" leading="10" spaceBefore="0.0" spaceAfter="1.0"/>
|
||||
<paraStyle name="Standard" fontName="Times-Roman"/>
|
||||
<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="Table Contents" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Table Heading" fontName="Times-Roman" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Caption" fontName="Times-Roman" fontSize="10.0" leading="13" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Index" fontName="Times-Roman"/>
|
||||
<paraStyle name="Standard" fontName="Helvetica"/>
|
||||
<paraStyle name="Heading" fontName="Helvetica" fontSize="12.0" leading="15" 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-Oblique" fontSize="8.0" leading="10" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Index" fontName="Helvetica" fontSize="9.0" leading="11"/>
|
||||
<paraStyle name="Footer" fontName="Helvetica"/>
|
||||
<paraStyle name="Table Contents" fontName="Helvetica"/>
|
||||
<paraStyle name="Table Heading" fontName="Helvetica" alignment="CENTER"/>
|
||||
<paraStyle name="Horizontal Line" fontName="Helvetica" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="14.0"/>
|
||||
<paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="12.0" leading="15" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Heading 9" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" 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_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_default_Bold_8" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.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_tblheader_General_Right" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_tblheader_Details_Centre" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.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_Right_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" 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_header_Right" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.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_default_address" fontName="Helvetica" fontSize="10.0" leading="13" 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_Bold_9" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_Centre_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" 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"/>
|
||||
<paraStyle name="terp_default_2" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
</stylesheet>
|
||||
<images/>
|
||||
<story>
|
||||
<blockTable colWidths="143.0,226.0,156.0" repeatRows="1" style="Table1">
|
||||
<para style="terp_default_8">[[ repeatIn(get_years(data['form']), 'y') ]]</para>
|
||||
<blockTable colWidths="728.0" style="Table_Tiltle">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="Table Contents">
|
||||
<para style="terp_header_Centre">Account Balance - [[ company.currency_id.name ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="terp_default_space">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<para style="terp_header">Year : [[ y['year'] ]]</para>
|
||||
<blockTable colWidths="56.0,293.0,110.0,105.0,164.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_Right">Debit</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Right">Credit</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Centre">Balance</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="terp_default_2">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<blockTable colWidths="56.0,404.0,268.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_Centre">Balance</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="terp_default_2">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<blockTable colWidths="56.0,200.0,93.0,110.0,268.0" style="Table8">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details">[[ data['form']['compare_pattern'] == 'none' and removeParentNode('blockTable') ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P1">Account balance</para>
|
||||
<para style="terp_tblheader_Details">Compare Selected Years In Terms of Cash/Perc</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P3">
|
||||
<para style="terp_tblheader_Details_Centre">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="terp_default_2">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<section>
|
||||
<para style="terp_default_8">[[ repeatIn(get_lines(y,data['form']), 'a') ]]</para>
|
||||
<blockTable colWidths="56.0,197.0,94.0,110.0,106.0,162.0" style="Table4">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_default_9"><font>[[ (data['form']['format_perc'] or not data['form']['show_columns']) and removeParentNode('blockTable') ]]</font>[[ a['code'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ a['name'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ a['pattern'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[ a['debit'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[ a['credit'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[ a['balance'] ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="terp_default_2">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<blockTable colWidths="56.0,197.0,94.0,110.0,107.0,119.0,43.0" style="Table2">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_default_9"><font>[[ (not data['form']['format_perc'] or not data['form']['show_columns']) and removeParentNode('blockTable') ]]</font>[[ a['code'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ a['name'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ a['pattern'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[ a['debit'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[ a['credit'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[ a['balance'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[ a['balance_perc'] ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="terp_default_2">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<blockTable colWidths="55.0,197.0,94.0,380.0" style="Table6">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_default_9"><font>[[ (data['form']['format_perc'] or data['form']['show_columns']) and removeParentNode('blockTable') ]]</font>[[ a['code'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ a['name'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ a['pattern'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[ a['balance'] ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="terp_default_2">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<blockTable colWidths="54.0,197.0,94.0,337.0,44.0" style="Table5">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_default_9"><font>[[ (not data['form']['format_perc'] or data['form']['show_columns']) and removeParentNode('blockTable') ]]</font>[[ a['code'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ a['name'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ a['pattern'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[ a['balance'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[ a['balance_perc'] ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="terp_default_2">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</section>
|
||||
<para style="terp_default_9">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<blockTable colWidths="52.0,291.0,112.0,107.0,164.0" style="Table3">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="Table Contents">[[ company.name ]]</para>
|
||||
<para style="terp_default_9">[[ not data['form']['show_columns'] and removeParentNode('blockTable') ]] </para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P4">
|
||||
<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>
|
||||
<td>
|
||||
<para style="P5">Currency: [[ company.currency_id.name ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="Standard">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<para style="P8">Printing date: [[ time.strftime('%Y-%m-%d') ]] at [[ time.strftime('%H:%M:%S') ]]</para>
|
||||
<para style="P8">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<section>
|
||||
<para style="P13"> [[repeatIn(linesForYear(data['form']),'year_header',td=len(data['form']['fiscalyear'][0][2]),width=[126],value=['year'],type=['string']) ]]</para>
|
||||
<blockTable colWidths="180.0" style="Table6">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P1">Account Information</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
</section>
|
||||
<section>
|
||||
<para style="P13">[[ repeatIn([],'title',td=len(data['form']['fiscalyear'][0][2]),width=[42,42,42],value=['Debit','Credit','Balance'],type=['lable','lable','lable']) ]]</para>
|
||||
<blockTable colWidths="30.0,150.0" style="Table6">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P1">Code</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P1">Account Name</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
</section>
|
||||
<section>
|
||||
<para style="P13">[[ repeatIn([],'title',td=len(data['form']['fiscalyear'][0][2]),width=[84,42],value=['Cash','%'],type=['lable','lable']) ]]</para>
|
||||
<blockTable colWidths="180.0" style="Table5">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P4"> </para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
</section>
|
||||
<para style="P8">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<section>
|
||||
<para style="P13">[[ repeatIn(lines(data['form']),'a',td=len(data['form']['fiscalyear'][0][2]),width=[42,42,42],value=['debit','credit','balance'],type=['string','string','string']) ]]</para>
|
||||
<blockTable colWidths="0.0,28.0,152.0" style="Table5">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P3"> </para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P7">[[ a['status']==1 and ( setTag('para','para',{'fontName':'Times-bold'})) ]][[ a['code'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P2"><font>[['.....'*(a['level']-1) ]][[ setTag('font','font',{'color':'white'}) ]]</font><font>[[ a['status']==1 and ( setTag('font','font',{'name':'Times-bold'})) ]][[ a['name'] ]]</font></para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
</section>
|
||||
<para style="P8">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<section>
|
||||
<para style="P13">[[ repeatIn(linesForTotal(data['form']),'total',td=len(data['form']['fiscalyear'][0][2]),width=[42,42,42],value=['sum_debit','sum_credit',''],type=['string','string','lable'] ) ]]</para>
|
||||
<blockTable colWidths="180.0" style="Table6">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P3">Total:[[ data['form']['show_columns']==0 and removeParentNode('section')]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
</section>
|
||||
|
||||
<para style="Standard">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</story>
|
||||
</document>
|
||||
|
|
|
@ -0,0 +1,182 @@
|
|||
<?xml version="1.0"?>
|
||||
<document filename="test.pdf">
|
||||
<template pageSize="(1120.0,770.0)" title="Test" author="Martin Simon" allowSplitting="20" >
|
||||
<pageTemplate id="first">
|
||||
<frame id="first" x1="22.0" y1="31.0" width="1080" height="680"/>
|
||||
</pageTemplate>
|
||||
</template>
|
||||
<stylesheet>
|
||||
<blockTableStyle id="Standard_Outline">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table1">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<blockBackground colorName="#e6e6e6" start="0,0" stop="-1,-1"/>
|
||||
<blockBackground colorName="#e6e6e6" start="1,0" stop="-1,-1"/>
|
||||
<blockBackground colorName="#e6e6e6" start="2,0" stop="-1,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table6">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<blockBackground colorName="#e6e6e6" start="0,0" stop="-1,-1"/>
|
||||
<blockBackground colorName="#e6e6e6" start="1,0" stop="-1,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,0" stop="-1,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,0" stop="-1,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table61">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="GRID" colorName="red"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table2">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="GRID" colorName="black"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table5">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,0" stop="-1,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,0" stop="-1,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,0" stop="-1,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table4">
|
||||
<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="12.0" leading="18" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P2" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT"/>
|
||||
<paraStyle name="P3" fontName="Helvetica-Bold" fontSize="9.0" leading="10" alignment="RIGHT"/>
|
||||
<paraStyle name="P4" fontName="Helvetica" fontSize="9.0" alignment="CENTER"/>
|
||||
<paraStyle name="P5" fontName="Helvetica" fontSize="11.0" leading="14" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P6" fontName="Helvetica" fontSize="9.0" leading="12" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P7" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT"/>
|
||||
<paraStyle name="P8" fontName="Helvetica" alignment="CENTER"/>
|
||||
<paraStyle name="P9" fontName="Helvetica" fontSize="11.0" leading="14" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P10" fontName="Helvetica" fontSize="11.0" leading="14" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P11" fontName="Helvetica" fontSize="11.0" leading="14" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P12" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P13" rightIndent="17.0" leftIndent="-0.0" fontName="Helvetica-Bold" fontSize="8.0" leading="10" spaceBefore="0.0" spaceAfter="1.0"/>
|
||||
<paraStyle name="Standard" fontName="Helvetica"/>
|
||||
<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="Table Contents" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Table Heading" fontName="Helvetica" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Caption" fontName="Helvetica" fontSize="10.0" leading="13" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Index" fontName="Helvetica"/>
|
||||
</stylesheet>
|
||||
<story>
|
||||
<blockTable colWidths="143.0,226.0,156.0" repeatRows="1" style="Table1">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="Table Contents">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P1">Account balance</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P3">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<para style="Table Contents">[[ company.name ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P4">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P5">Currency: [[ company.currency_id.name ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="Standard">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<para style="P8">Printing date: [[ time.strftime('%Y-%m-%d') ]] at [[ time.strftime('%H:%M:%S') ]]</para>
|
||||
<para style="P8">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<section>
|
||||
<para style="P13"> [[repeatIn(linesForYear(data['form']),'year_header',td=len(data['form']['fiscalyear'][0][2]),width=[126],value=['year'],type=['string']) ]]</para>
|
||||
<blockTable colWidths="180.0" style="Table6">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P1">Account Information</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
</section>
|
||||
<section>
|
||||
<para style="P13">[[ repeatIn([],'title',td=len(data['form']['fiscalyear'][0][2]),width=[42,42,42],value=['Debit','Credit','Balance'],type=['lable','lable','lable']) ]]</para>
|
||||
<blockTable colWidths="30.0,150.0" style="Table6">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P1">Code</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P1">Account Name</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
</section>
|
||||
<section>
|
||||
<para style="P13">[[ repeatIn([],'title',td=len(data['form']['fiscalyear'][0][2]),width=[84,42],value=['Cash','%'],type=['lable','lable']) ]]</para>
|
||||
<blockTable colWidths="180.0" style="Table5">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P4"></para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
</section>
|
||||
<para style="P8">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<section>
|
||||
<para style="P13">[[ repeatIn(lines(data['form']),'a',td=len(data['form']['fiscalyear'][0][2]),width=[42,42,42],value=['debit','credit','balance'],type=['string','string','string']) ]]</para>
|
||||
<blockTable colWidths="0.0,28.0,152.0" style="Table5">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P3"> </para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P7">[[ a['status']==1 and ( setTag('para','para',{'fontName':'Helvetica-bold'})) ]][[ a['code'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P2"><font color="white">[['.....'*(a['level']-1) ]]</font><font>[[ a['status']==1 and ( setTag('font','font',{'name':'Helvetica-bold'})) ]][[ a['name'] ]]</font></para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
</section>
|
||||
<para style="P8">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<section>
|
||||
<para style="P13">[[ repeatIn(linesForTotal(data['form']),'total',td=len(data['form']['fiscalyear'][0][2]),width=[42,42,42],value=['sum_debit','sum_credit',''],type=['string','string','lable'] ) ]]</para>
|
||||
<blockTable colWidths="180.0" style="Table6">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P3">Total:[[ data['form']['show_columns']==0 and removeParentNode('section')]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
</section>
|
||||
|
||||
<para style="Standard">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</story>
|
||||
</document>
|
|
@ -0,0 +1,179 @@
|
|||
<?xml version="1.0"?>
|
||||
<document filename="test.pdf">
|
||||
<template pageSize="(635.0,842.0)" title="Test" author="Martin Simon" allowSplitting="20">
|
||||
<pageTemplate id="first">
|
||||
<frame id="first" x1="15.0" y1="15.0" width="615" height="772"/>
|
||||
</pageTemplate>
|
||||
</template>
|
||||
<stylesheet>
|
||||
<blockTableStyle id="Standard_Outline">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table1">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<blockBackground colorName="#e6e6e6" start="0,0" stop="-1,-1"/>
|
||||
<blockBackground colorName="#e6e6e6" start="1,0" stop="-1,-1"/>
|
||||
<blockBackground colorName="#e6e6e6" start="2,0" stop="-1,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table6">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<blockBackground colorName="#e6e6e6" start="0,0" stop="-1,-1"/>
|
||||
<blockBackground colorName="#e6e6e6" start="1,0" stop="-1,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,0" stop="-1,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,0" stop="-1,-1"/>
|
||||
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table61">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="GRID" colorName="red"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table2">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="GRID" colorName="black"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table5">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,0" stop="-1,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,0" stop="-1,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,0" stop="-1,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table4">
|
||||
<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="12.0" leading="18" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P2" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0"/>
|
||||
<paraStyle name="P3" fontName="Helvetica-Bold" fontSize="9.0" leading="10" alignment="RIGHT" />
|
||||
<paraStyle name="P4" fontName="Helvetica" fontSize="9.0" alignment="CENTER"/>
|
||||
<paraStyle name="P5" fontName="Helvetica" fontSize="11.0" leading="14" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P6" fontName="Helvetica" fontSize="9.0" leading="12" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P7" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT"/>
|
||||
<paraStyle name="P8" fontName="Helvetica" alignment="CENTER"/>
|
||||
<paraStyle name="P9" fontName="Helvetica" fontSize="11.0" leading="14" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P10" fontName="Helvetica" fontSize="11.0" leading="14" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P11" fontName="Helvetica" fontSize="11.0" leading="14" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P12" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P13" rightIndent="17.0" leftIndent="-0.0" fontName="Helvetica-Bold" fontSize="8.0" leading="10" spaceBefore="0.0" spaceAfter="1.0"/>
|
||||
<paraStyle name="Standard" fontName="Helvetica"/>
|
||||
<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="Table Contents" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Table Heading" fontName="Helvetica" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Caption" fontName="Helvetica" fontSize="10.0" leading="13" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Index" fontName="Helvetica"/>
|
||||
</stylesheet>
|
||||
<story>
|
||||
<blockTable colWidths="143.0,226.0,156.0" repeatRows="1" style="Table1">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="Table Contents"><font color="white"> </font></para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P1">Account balance</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P3"><font color="white"> </font></para>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<para style="Table Contents">[[ company.name ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P4"><font color="white"> </font></para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P5">Currency: [[ company.currency_id.name ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="Standard">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<para style="P8">Printing date: [[ time.strftime('%Y-%m-%d') ]] at [[ time.strftime('%H:%M:%S') ]]</para>
|
||||
<para style="P8">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<section>
|
||||
<para style="P13"> [[repeatIn(linesForYear(data['form']),'year_header',td=len(data['form']['fiscalyear'][0][2]),width=[126],value=['year'],type=['string']) ]]</para>
|
||||
<blockTable colWidths="190.0" style="Table6">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P1">Account Information</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
</section>
|
||||
<section>
|
||||
<para style="P13">[[ repeatIn([],'title',td=len(data['form']['fiscalyear'][0][2]),width=[42,42,42],value=['Debit','Credit','Balance'],type=['lable','lable','lable']) ]]</para>
|
||||
<blockTable colWidths="30.0,160.0" style="Table6">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P1">Code</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P1">Account Name</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
</section>
|
||||
<section>
|
||||
<para style="P13">[[ repeatIn([],'title',td=len(data['form']['fiscalyear'][0][2]),width=[84,42],value=['Cash','%'],type=['lable','lable']) ]]</para>
|
||||
<blockTable colWidths="190.0" style="Table5">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P4"><font color="white"> </font></para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
</section>
|
||||
<para style="P8">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<section>
|
||||
<para style="P13">[[ repeatIn(lines(data['form']),'a',td=len(data['form']['fiscalyear'][0][2]),width=[42,42,42],value=['debit','credit','balance'],type=['string','string','string']) ]]</para>
|
||||
<condPageBreak height="2cm"/>
|
||||
<blockTable colWidths="0.0,28.0,162.0" style="Table5">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P3">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P7">[[ a['status']==1 and ( setTag('para','para',{'fontName':'Helvetica-bold'})) ]][[ a['code'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P2"><font color="white">[['.....'*(a['level']-1) ]]</font><font>[[ a['status']==1 and ( setTag('font','font',{'name':'Helvetica-bold'})) ]][[ a['name'] ]]</font></para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
</section>
|
||||
<para style="P8">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<section>
|
||||
<para style="P13">[[ repeatIn(linesForTotal(data['form']),'total',td=len(data['form']['fiscalyear'][0][2]),width=[42,42,42],value=['sum_debit','sum_credit',''],type=['string','string','lable'] ) ]]</para>
|
||||
<blockTable colWidths="190.0" style="Table6">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P3">Total:[[ data['form']['show_columns']==0 and removeParentNode('section')]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
</section>
|
||||
<para style="Standard">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</story>
|
||||
</document>
|
|
@ -0,0 +1,170 @@
|
|||
# -*- encoding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
|
||||
# $Id$
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU 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 General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
from report import report_sxw
|
||||
import xml.dom.minidom
|
||||
import os, time
|
||||
import osv
|
||||
import re
|
||||
import tools
|
||||
import pooler
|
||||
import re
|
||||
import sys
|
||||
|
||||
|
||||
class rml_parse(report_sxw.rml_parse):
|
||||
def __init__(self, cr, uid, name, context):
|
||||
super(rml_parse, self).__init__(cr, uid, name, context=None)
|
||||
self.localcontext.update({
|
||||
'comma_me': self.comma_me,
|
||||
'format_date': self._get_and_change_date_format_for_swiss,
|
||||
'strip_name' : self._strip_name,
|
||||
'explode_name' : self._explode_name,
|
||||
})
|
||||
|
||||
def comma_me(self,amount):
|
||||
#print "#" + str(amount) + "#"
|
||||
if not amount:
|
||||
amount = 0.0
|
||||
if type(amount) is float :
|
||||
amount = str('%.2f'%amount)
|
||||
else :
|
||||
amount = str(amount)
|
||||
if (amount == '0'):
|
||||
return ' '
|
||||
orig = amount
|
||||
new = re.sub("^(-?\d+)(\d{3})", "\g<1>'\g<2>", amount)
|
||||
if orig == new:
|
||||
return new
|
||||
else:
|
||||
return self.comma_me(new)
|
||||
|
||||
def _ellipsis(self, string, maxlen=100, ellipsis = '...'):
|
||||
ellipsis = ellipsis or ''
|
||||
try:
|
||||
return string[:maxlen - len(ellipsis) ] + (ellipsis, '')[len(string) < maxlen]
|
||||
except Exception, e:
|
||||
return False
|
||||
|
||||
def _strip_name(self, name, maxlen=50):
|
||||
return self._ellipsis(name, maxlen, '...')
|
||||
|
||||
def _get_and_change_date_format_for_swiss (self,date_to_format):
|
||||
date_formatted=''
|
||||
if date_to_format:
|
||||
date_formatted = strptime (date_to_format,'%Y-%m-%d').strftime('%d.%m.%Y')
|
||||
return date_formatted
|
||||
|
||||
def _explode_name(self,chaine,length):
|
||||
# We will test if the size is less then account
|
||||
full_string = ''
|
||||
if (len(str(chaine)) <= length):
|
||||
return chaine
|
||||
#
|
||||
else:
|
||||
chaine = unicode(chaine,'utf8').encode('iso-8859-1')
|
||||
rup = 0
|
||||
for carac in chaine:
|
||||
rup = rup + 1
|
||||
if rup == length:
|
||||
full_string = full_string + '\n'
|
||||
full_string = full_string + carac
|
||||
rup = 0
|
||||
else:
|
||||
full_string = full_string + carac
|
||||
|
||||
return full_string
|
||||
|
||||
def makeAscii(self,str):
|
||||
try:
|
||||
Stringer = str.encode("utf-8")
|
||||
except UnicodeDecodeError:
|
||||
try:
|
||||
Stringer = str.encode("utf-16")
|
||||
except UnicodeDecodeError:
|
||||
print "UTF_16 Error"
|
||||
Stringer = str
|
||||
else:
|
||||
return Stringer
|
||||
else:
|
||||
return Stringer
|
||||
return Stringer
|
||||
|
||||
def explode_this(self,chaine,length):
|
||||
#chaine = self.repair_string(chaine)
|
||||
chaine = rstrip(chaine)
|
||||
ast = list(chaine)
|
||||
i = length
|
||||
while i <= len(ast):
|
||||
ast.insert(i,'\n')
|
||||
i = i + length
|
||||
chaine = str("".join(ast))
|
||||
return chaine
|
||||
|
||||
def repair_string(self,chaine):
|
||||
ast = list(chaine)
|
||||
UnicodeAst = []
|
||||
_previouslyfound = False
|
||||
i = 0
|
||||
#print str(ast)
|
||||
while i < len(ast):
|
||||
elem = ast[i]
|
||||
try:
|
||||
Stringer = elem.encode("utf-8")
|
||||
except UnicodeDecodeError:
|
||||
to_reencode = elem + ast[i+1]
|
||||
print str(to_reencode)
|
||||
Good_char = to_reencode.decode('utf-8')
|
||||
UnicodeAst.append(Good_char)
|
||||
i += i +2
|
||||
else:
|
||||
UnicodeAst.append(elem)
|
||||
i += i + 1
|
||||
|
||||
|
||||
return "".join(UnicodeAst)
|
||||
|
||||
def ReencodeAscii(self,str):
|
||||
print sys.stdin.encoding
|
||||
try:
|
||||
Stringer = str.decode("ascii")
|
||||
except UnicodeEncodeError:
|
||||
print "REENCODING ERROR"
|
||||
return str.encode("ascii")
|
||||
except UnicodeDecodeError:
|
||||
print "DECODING ERROR"
|
||||
return str.encode("ascii")
|
||||
|
||||
else:
|
||||
print Stringer
|
||||
return Stringer
|
||||
|
||||
def _add_header(self, node, header=1):
|
||||
if header==2:
|
||||
rml_head = self.rml_header2
|
||||
else:
|
||||
rml_head = self.rml_header
|
||||
rml_head = rml_head.replace('<pageGraphics>','''<pageGraphics> <image x="10" y="26cm" height="770.0" width="1120.0" >[[company.logo]] </image> ''')
|
||||
return True
|
||||
|
||||
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
Loading…
Reference in New Issue