Improved reports (ref:nch)
bzr revid: hda@hda-20090603053754-hfdhh4mj0idel36s
This commit is contained in:
@@ -65,90 +65,44 @@
|
||||
</stylesheet>
|
||||
<images/>
|
||||
<story>
|
||||
<para style="P1">[[ repeatIn(objects,'o') ]]</para>
|
||||
<blockTable colWidths="146.0,223.0,158.0" repeatRows="1" style="Table2">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P9">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P10">Accounting Report</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P2">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P5">[[ company.name ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P4">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P2">Currency: <font face="Times-Roman" size="11.0">[[ company.currency_id.name]]</font>
|
||||
</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="P3">Printing date: [[ time.strftime('%Y-%m-%d') ]] at [[ time.strftime('%H:%M:%S') ]]</para>
|
||||
<blockTable colWidths="361.0,73.0,93.0" repeatRows="1" style="Table4">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P6">Name</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P6">Code</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P6">Amount</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="P3">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<section>
|
||||
<para style="P7">[[repeatIn(childs(o.id),'obj')]]</para>
|
||||
<blockTable colWidths="362.0,73.0,93.0" repeatRows="1" style="Table3">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P11"><font color="white">[[ '....'*(obj['level']) ]]</font>[[ obj['name'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P11">[[obj['code'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P12">[['%.2f' % obj['amount'] ]] </para>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P13">[[ repeatIn((obj['note'] and obj['note'].splitlines()) or [], 'l') ]]</para>
|
||||
<para style="P14">[[ l or removeParentNode('table') ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P14">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P8">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="P1">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</section>
|
||||
<para style="P1">[[ repeatIn(objects,'o') ]]</para>
|
||||
<blockTable colWidths="146.0,223.0,158.0" repeatRows="1" style="Table2">
|
||||
<tr>
|
||||
<td><para style="P9"><font color="white"> </font></para></td>
|
||||
<td><para style="P10">Accounting Report</para></td>
|
||||
<td><para style="P2"><font color="white"> </font></para></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><para style="P5">[[ company.name ]]</para></td>
|
||||
<td><para style="P4"><font color="white"> </font></para></td>
|
||||
<td><para style="P2">Currency: <font face="Times-Roman" size="11.0">[[ company.currency_id.name]]</font></para></td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="P3">Printing date: [[ time.strftime('%Y-%m-%d') ]] at [[ time.strftime('%H:%M:%S') ]]</para>
|
||||
<blockTable colWidths="361.0,73.0,93.0" repeatRows="1" style="Table4">
|
||||
<tr>
|
||||
<td><para style="P6">Name</para></td>
|
||||
<td><para style="P6">Code</para></td>
|
||||
<td><para style="P6">Amount</para></td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="P3"><font color="white"> </font></para>
|
||||
<section>
|
||||
<para style="P7">[[repeatIn(childs(o.id),'obj')]]</para>
|
||||
<blockTable colWidths="362.0,73.0,93.0" repeatRows="1" style="Table3">
|
||||
<tr>
|
||||
<td><para style="P11"><font color="white">[[ '....'*(obj['level']) ]]</font><font>[[ obj['name'] ]]</font></para></td>
|
||||
<td><para style="P11">[[obj['code'] ]]</para></td>
|
||||
<td><para style="P12">[['%.2f' % obj['amount'] ]] </para></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><para style="P13">[[ repeatIn((obj['note'] and obj['note'].splitlines()) or [], 'l') ]]</para><para style="P14">[[ l or removeParentNode('table') ]]</para></td>
|
||||
<td><para style="P14"><font color="white"> </font></para></td>
|
||||
<td><para style="P8"><font color="white"> </font></para></td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="P1"><font color="white"> </font></para>
|
||||
</section>
|
||||
</story>
|
||||
</document>
|
||||
|
||||
|
||||
@@ -73,13 +73,6 @@ import tools
|
||||
import os
|
||||
|
||||
|
||||
parents = {
|
||||
'tr':1,
|
||||
'li':1,
|
||||
'story': 0,
|
||||
'section': 0
|
||||
}
|
||||
|
||||
class accounting_report_indicator(report_sxw.rml_parse):
|
||||
|
||||
def __init__(self, cr, uid, name, context):
|
||||
@@ -91,6 +84,7 @@ class accounting_report_indicator(report_sxw.rml_parse):
|
||||
'lines':self.lines,
|
||||
'getarray':self.getarray,
|
||||
'gettree':self.gettree,
|
||||
'getarray_head':self.getarray_head,
|
||||
})
|
||||
self.count = 0
|
||||
self.treecount = 0
|
||||
@@ -98,61 +92,8 @@ class accounting_report_indicator(report_sxw.rml_parse):
|
||||
self.header_name = []
|
||||
self.header_val = []
|
||||
self.main_dict = {}
|
||||
|
||||
def repeatIn(self, lst, name, nodes_parent=False,td=False,width=[],value=[],type=[],data=''):
|
||||
self._node.data = ''
|
||||
node = self._find_parent(self._node, nodes_parent or parents)
|
||||
ns = node.nextSibling
|
||||
#start
|
||||
if (not name in ['array','array_header']):
|
||||
return super(accounting_report_indicator,self).repeatIn(lst, name, nodes_parent=False)
|
||||
|
||||
array_header = eval(data,{'year':'Fiscal Year','periods':'Periods'})
|
||||
# value = [array_header]
|
||||
value = []
|
||||
value.extend(self.header_name)
|
||||
|
||||
if name=='array':
|
||||
type = ['float']*len(self.header_name)
|
||||
else:
|
||||
type = ['lable'] * (len(self.header_name))
|
||||
|
||||
width = [438/float(len(value))]*(len(value))
|
||||
|
||||
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)
|
||||
for v in range(len(width)):
|
||||
width_str +=',%d'%width[v]
|
||||
|
||||
ns.setAttribute('colWidths',width_str)
|
||||
|
||||
child_list = ns.childNodes
|
||||
for child in child_list:
|
||||
if child.nodeName=='tr':
|
||||
lc = child.childNodes[1]
|
||||
i=0
|
||||
for v in value:
|
||||
newnode = lc.cloneNode(1)
|
||||
if type[i] == 'float':
|
||||
t1="[[ '%.2f' % " + "%s['%s'] ]]"%(name,v)
|
||||
if type[i] == 'lable':
|
||||
t1="%s"%(v)
|
||||
else:
|
||||
t1="[[ %s['%s'] ]]"%(name,v)
|
||||
newnode.childNodes[1].lastChild.data = t1
|
||||
child.appendChild(newnode)
|
||||
newnode=False
|
||||
i+=1
|
||||
return super(accounting_report_indicator,self).repeatIn(lst, name, nodes_parent=False)
|
||||
#
|
||||
|
||||
def lines(self,data):
|
||||
res={}
|
||||
@@ -193,12 +134,30 @@ class accounting_report_indicator(report_sxw.rml_parse):
|
||||
result.append(res)
|
||||
return result
|
||||
|
||||
def getarray_head(self,data,object,array_header=''):
|
||||
self.getgraph(data,object,intercall=True)
|
||||
self.header_val=[str(x) for x in self.header_val]
|
||||
if data['select_base'] == 'year':
|
||||
year = [1,2,3,4,5,6,7,8]
|
||||
temp_head = [str(x) for x in self.header_name]
|
||||
head_dict = dict(zip(year,temp_head))
|
||||
else:
|
||||
temp_head = [str(x[0:3]) for x in self.header_name]
|
||||
head_dict = dict(zip(temp_head,temp_head))
|
||||
print "head_dict",head_dict
|
||||
return [head_dict]
|
||||
|
||||
def getarray(self,data,object,array_header=''):
|
||||
res={}
|
||||
result=[]
|
||||
self.getgraph(data,object,intercall=True)
|
||||
self.header_val=[str(x) for x in self.header_val]
|
||||
temp_dict=zip(self.header_name,self.header_val)
|
||||
self.header_val = [str(x) for x in self.header_val]
|
||||
if data['select_base'] == 'year':
|
||||
year = [1,2,3,4,5,6,7,8]
|
||||
temp_dict = zip(year,self.header_val)
|
||||
else:
|
||||
temp_head = [str(x[0:3]) for x in self.header_name]
|
||||
temp_dict = zip(temp_head,self.header_val)
|
||||
res=dict(temp_dict)
|
||||
array_header = eval(array_header,{'year':'Fiscal Year','periods':'Periods'})
|
||||
res[array_header]=object['name']
|
||||
|
||||
@@ -81,101 +81,93 @@
|
||||
</stylesheet>
|
||||
<images/>
|
||||
<story>
|
||||
<blockTable colWidths="520.0" style="Standard_Outline">
|
||||
<blockTable colWidths="520.0" style="Standard_Outline">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_header_Centre">Indicators</para>
|
||||
</td>
|
||||
<td><para style="terp_header_Centre">Indicators</para></td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<blockTable colWidths="264.0,264.0" style="Table2">
|
||||
</blockTable>
|
||||
<blockTable colWidths="264.0,264.0" style="Table2">
|
||||
<tr>
|
||||
<td><para style="P14">[[ company.name ]]</para></td>
|
||||
<td><para style="P4">Currency: <font face="Times-Roman" size="11.0">[[ company.currency_id.name]]</font></para></td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="P4"><font color="white"> </font></para>
|
||||
<para style="P1">Printing date: [[ time.strftime('%Y-%m-%d') ]] at [[ time.strftime('%H:%M:%S') ]]</para>
|
||||
<blockTable colWidths="528.0" style="Table4">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P14">[[ company.name ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P4">Currency: <font face="Times-Roman" size="11.0">[[ company.currency_id.name]]</font>
|
||||
</para>
|
||||
</td>
|
||||
<para style="P6">Name</para></td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="P4">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<para style="P1">Printing date: [[ time.strftime('%Y-%m-%d') ]] at [[ time.strftime('%H:%M:%S') ]]</para>
|
||||
<blockTable colWidths="528.0" style="Table4">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P6">Name</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="P3">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<para style="P3"><seqReset/></para>
|
||||
<section>
|
||||
<para style="P1">[[ repeatIn(lines(data['form']),'o')]]</para>
|
||||
<blockTable colWidths="528.0" style="Table7">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P11"><font>[['.....'*(o['level']) ]][[ setTag('font','font',{'color':'white'}) ]]</font><b>(<seq/>)</b> [[ o['type']=='view' and setTag('para','para',{'fontName':'Helvetica-Bold','fontSize':'10.5'}) ]][[ o['name'] ]] ([[ o['code'] ]])</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="P1">[[ o['disp_tree'] and setTag('para','image',{'file':gettree(data['form'],o)}) or removeParentNode('para') ]]</para>
|
||||
<para style="P1">[[ o['disp_graph'] and setTag('para','image',{'width':'450.00','height':'215.00','file':getgraph(data['form'],o)}) or removeParentNode('para') ]]</para>
|
||||
<para style="P3">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<blockTable colWidths="528.0" repeatRows="1" style="Table7">
|
||||
<tr><td>
|
||||
<para style="P5"><font>[['..........'*(o['level']) ]][[ setTag('font','font',{'color':'white'}) ]]</font><b>Expression :</b> [[ o['expression'] ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<blockTable colWidths="528.0" repeatRows="1" style="Table7">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P5"> <font>[['..........'*(o['level']) ]][[ setTag('font','font',{'color':'white'}) ]]</font> [[ format(o['note']) or removeParentNode('blockTable') ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
</section>
|
||||
<pageBreak/>
|
||||
<para style="P10">
|
||||
<u>Tabular Summary</u>
|
||||
</para>
|
||||
<section>
|
||||
<para style="P13">[[ repeatIn(getarray(data['form'],o,array_header=data['form']['select_base']),'array_header',td=len(data['form']['base_selection'][0][2]),data=data['form']['select_base']) or removeParentNode('section') ]]</para>
|
||||
<blockTable colWidths="0.00,90.00" style="Table4">
|
||||
</blockTable>
|
||||
<para style="P3"><font color="white"> </font></para>
|
||||
<para style="P3"><seqReset/></para>
|
||||
<section>
|
||||
<para style="P1">[[ repeatIn(lines(data['form']),'o')]]</para>
|
||||
<blockTable colWidths="528.0" style="Table7">
|
||||
<tr>
|
||||
<td><para style="P11"><font color="white">[['.....'*(o['level']) ]]</font><font>[[ o['type']=='view' and setTag('para','para',{'fontName':'Helvetica-Bold','fontSize':'10.5'}) ]]</font>(<seq/>)<font>[[ o['name'] ]] ([[ o['code'] ]])</font></para></td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="P1">[[ o['disp_tree'] and setTag('para','image',{'file':gettree(data['form'],o)}) or removeParentNode('para') ]]</para>
|
||||
<para style="P1">[[ o['disp_graph'] and setTag('para','image',{'width':'450.00','height':'215.00','file':getgraph(data['form'],o)}) or removeParentNode('para') ]]</para>
|
||||
<para style="P3"><font color="white"> </font></para>
|
||||
<blockTable colWidths="528.0" repeatRows="1" style="Table7">
|
||||
<tr>
|
||||
<td><para style="P5"><font color="white">[['..........' *(o['level']) ]]</font><b>Expression :</b>[[ o['expression'] ]]</para></td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<blockTable colWidths="528.0" repeatRows="1" style="Table7">
|
||||
<tr>
|
||||
<td><para style="P5"> <font color="white">[['..........'*(o['level']) ]]</font> <font>[[ format(o['note']) or removeParentNode('blockTable') ]]</font></para></td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
</section>
|
||||
<pageBreak/>
|
||||
<para style="P10"><u>Tabular Summary</u></para>
|
||||
<section>
|
||||
<para style="P13">[[ repeatIn(getarray_head(data['form'],o,array_header=data['form']['select_base']),'array_header')]]</para>
|
||||
<blockTable colWidths="90,36,36,36,36,36,36,36,36,36,36,36,36" style="Table4">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P3"> </para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P3">Indicators</para>
|
||||
</td>
|
||||
<td><para style="P3">Indicators</para></td>
|
||||
<td><para style="P3">[[ array_header['Jan'] or '' ]][[ array_header[1] or '' ]]</para></td>
|
||||
<td><para style="P3">[[ array_header['Feb'] or '' ]][[ array_header[2] or '' ]]</para></td>
|
||||
<td><para style="P3">[[ array_header['Mar'] or '' ]][[ array_header[3] or '' ]]</para></td>
|
||||
<td><para style="P3">[[ array_header['Apr'] or '' ]][[ array_header[4] or '' ]]</para></td>
|
||||
<td><para style="P3">[[ array_header['May'] or '' ]][[ array_header[5] or '' ]]</para></td>
|
||||
<td><para style="P3">[[ array_header['Jun'] or '' ]][[ array_header[6] or '' ]]</para></td>
|
||||
<td><para style="P3">[[ array_header['Jul'] or '' ]][[ array_header[7] or '' ]]</para></td>
|
||||
<td><para style="P3">[[ array_header['Aug'] or '' ]][[ array_header[8] or '' ]]</para></td>
|
||||
<td><para style="P3">[[ array_header['Sep'] or '' ]]</para></td>
|
||||
<td><para style="P3">[[ array_header['Oct'] or '' ]]</para></td>
|
||||
<td><para style="P3">[[ array_header['Nov'] or '' ]]</para></td>
|
||||
<td><para style="P3">[[ array_header['Dec'] or '' ]]</para></td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
</section>
|
||||
<section>
|
||||
</section>
|
||||
<section>
|
||||
<para style="P1">[[ repeatIn(lines(data['form']),'obj')]]</para>
|
||||
<para style="P13">[[ repeatIn(getarray(data['form'],obj,array_header=data['form']['select_base']),'array',td=len(data['form']['base_selection'][0][2]),data=data['form']['select_base']) or removeParentNode('section') ]]</para>
|
||||
<blockTable colWidths="0.00,90.00" style="Table3">
|
||||
<section>
|
||||
<para style="P13">[[ repeatIn(getarray(data['form'],obj,array_header=data['form']['select_base']),'array')]]</para>
|
||||
<blockTable colWidths="90,36,36,36,36,36,36,36,36,36,36,36,36" style="Table3">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P9"> </para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P5"><font>[['.....'*(obj['level']) ]][[ setTag('font','font',{'color':'white'}) ]]</font>[[ obj['code'] ]]</para>
|
||||
</td>
|
||||
<td><para style="P5"><font color="white">[['.....'*(obj['level']) ]]</font><font>[[ obj['code'] ]]</font></para></td>
|
||||
<td><para style="P3">[[ array['Jan'] or '' ]][[ array[1] or '' ]]</para></td>
|
||||
<td><para style="P3">[[ array['Feb'] or '' ]][[ array[2] or '' ]]</para></td>
|
||||
<td><para style="P3">[[ array['Mar'] or '' ]][[ array[3] or '' ]]</para></td>
|
||||
<td><para style="P3">[[ array['Apr'] or '' ]][[ array[4] or '' ]]</para></td>
|
||||
<td><para style="P3">[[ array['May'] or '' ]][[ array[5] or '' ]]</para></td>
|
||||
<td><para style="P3">[[ array['Jun'] or '' ]][[ array[6] or '' ]]</para></td>
|
||||
<td><para style="P3">[[ array['Jul'] or '' ]][[ array[7] or '' ]]</para></td>
|
||||
<td><para style="P3">[[ array['Aug'] or '' ]][[ array[8] or '' ]]</para></td>
|
||||
<td><para style="P3">[[ array['Sep'] or '' ]]</para></td>
|
||||
<td><para style="P3">[[ array['Oct'] or '' ]]</para></td>
|
||||
<td><para style="P3">[[ array['Nov'] or '' ]]</para></td>
|
||||
<td><para style="P3">[[ array['Dec'] or '' ]]</para></td>
|
||||
</tr>
|
||||
|
||||
</blockTable>
|
||||
|
||||
</section>
|
||||
|
||||
</section>
|
||||
</section>
|
||||
</story>
|
||||
</document>
|
||||
|
||||
|
||||
@@ -82,7 +82,7 @@
|
||||
<para style="P5">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<para style="P6">[[ setTag('para','image',{'width':'100.0','height':'80.0','name':str(o.id)}) ]][[ o.image or setTag('image','para') ]]</para>
|
||||
<para style="P6">[[ o.image and setTag('para','image',{'width':'100.0','height':'80.0','name':str(o.id)}) ]][[ o.image ]]</para>
|
||||
<para style="P7">
|
||||
<font face="Times-Roman"/>
|
||||
</para>
|
||||
|
||||
@@ -49,6 +49,7 @@
|
||||
<paraStyle name="P10a" fontName="Helvetica-Bold" fontSize="10.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P11" fontName="Helvetica-Bold" fontSize="8.0" leading="10" 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="P121" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" 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"/>
|
||||
@@ -60,20 +61,19 @@
|
||||
<images/>
|
||||
<story>
|
||||
<section>
|
||||
<blockTable colWidths="201.0,235.0,91.0" repeatRows="1" style="Table1">
|
||||
<tr>
|
||||
<td><para style="P6">Location</para></td>
|
||||
<td><para style="P6">Product</para></td>
|
||||
<td><para style="P7">Quantity</para></td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="P41"><font color="white">[[ repeatIn(objects,'o') ]]</font></para>
|
||||
<para style="P121"><font color="white">[[ repeatIn(objects,'o') ]]</font></para>
|
||||
<section>
|
||||
<para style="P41"><font color="white">[[ repeatIn(process(o.id),'ob') ]]</font></para>
|
||||
<para style="P121"><font color="white">[[ repeatIn(process(o.id),'ob') ]]</font></para>
|
||||
<blockTable colWidths="202.0,234.0,65.0,25" repeatRows="1" style="Table4">
|
||||
<tr>
|
||||
<td><para style="P6">[[ ob['product'] or removeParentNode('blockTable') ]] Location</para></td>
|
||||
<td><para style="P6">Product</para></td>
|
||||
<td><para style="P7">Quantity</para></td>
|
||||
<td><para><font color="white"> </font></para></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><para style="P5">[[ ob['location_name'] ]]</para></td>
|
||||
<td><para style="Standard">[[ ob['product'] or 'No products in this Location !' ]]</para></td>
|
||||
<td><para><font color="white"> </font></para></td>
|
||||
<td><para><font color="white"> </font></para></td>
|
||||
<td><para><font color="white"> </font></para></td>
|
||||
</tr>
|
||||
@@ -83,27 +83,14 @@
|
||||
<td><para style="P12">[[ p['prod_qty'] ]]</para></td>
|
||||
<td><para style="P12">[[ p['uom'] ]]</para></td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<blockTable colWidths="200.0,235.0,60.0,25" style="Table2">
|
||||
<tr>
|
||||
<td><para style="P10"></para></td>
|
||||
<td><para style="P10a">Total : </para></td>
|
||||
<td><para style="P10">[[ ob['total'] ]]</para></td>
|
||||
<td><para style="P10">Units</para></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><para style="P10"></para></td>
|
||||
<td><para style="P10"></para></td>
|
||||
<td><para style="P10"></para></td>
|
||||
<td><para style="P10"></para></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><para style="P10"></para></td>
|
||||
<td><para style="P10"></para></td>
|
||||
<td><para style="P10"></para></td>
|
||||
<td><para style="P10"></para></td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="P10"></para>
|
||||
</section>
|
||||
</section>
|
||||
<blockTable colWidths="200.0,235.0,60.0,25" style="Table3">
|
||||
|
||||
@@ -10,11 +10,6 @@
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table1">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="1,0" stop="-1,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table2">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
@@ -24,18 +19,7 @@
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="0,0" stop="-1,-1"/>
|
||||
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table4">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="3,0" stop="3,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="4,0" stop="4,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="5,0" stop="5,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="6,0" stop="6,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,0" stop="-1,-1"/>
|
||||
</blockTableStyle>
|
||||
<initialize>
|
||||
<paraStyle name="all" alignment="justify"/>
|
||||
@@ -57,6 +41,7 @@
|
||||
<paraStyle name="P10c" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="P11" fontName="Helvetica-Bold" fontSize="10.0" leading="13" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P12" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="P121" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" 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"/>
|
||||
@@ -69,9 +54,12 @@
|
||||
<images/>
|
||||
<story>
|
||||
<section>
|
||||
<blockTable colWidths="60.0,190.0,61.0,55.0,59.0,56.0,61.0" repeatRows="1" style="Table1">
|
||||
<para style="P121"><font color="white">[[ repeatIn(objects,'o') ]]</font></para>
|
||||
<section>
|
||||
<para style="P121">[[ repeatIn(process(o.id),'ob') ]]</para>
|
||||
<blockTable colWidths="60.0,200.0,56.0,55.0,52.0,56.0,68.0" repeatRows="1" style="Table2">
|
||||
<tr>
|
||||
<td><para style="P1">Location</para></td>
|
||||
<td><para style="P1">[[ ob['product'] or removeParentNode('blockTable') ]] Location</para></td>
|
||||
<td><para style="P1">Product</para></td>
|
||||
<td><para style="P1">Variants</para></td>
|
||||
<td><para style="P10a">Quantity</para></td>
|
||||
@@ -79,14 +67,9 @@
|
||||
<td><para style="P10c">Unit Price</para></td>
|
||||
<td><para style="P10a">Value</para></td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="P9">[[ repeatIn(objects,'o') ]]</para>
|
||||
<section>
|
||||
<para style="P12">[[ repeatIn(process(o.id),'ob') ]]</para>
|
||||
<blockTable colWidths="60.0,200.0,56.0,55.0,52.0,56.0,68.0" repeatRows="1" style="Table2">
|
||||
<tr>
|
||||
<td><para style="P41">[[ ob['location_name'] ]]</para></td>
|
||||
<td><para style="Standard">[[ ob['product'] or 'No products in this Location !' ]]</para></td>
|
||||
<td><para><font color="white"></font></para></td>
|
||||
<td><para><font color="white"></font></para></td>
|
||||
<td><para><font color="white"></font></para></td>
|
||||
<td><para><font color="white"></font></para></td>
|
||||
@@ -94,7 +77,7 @@
|
||||
<td><para><font color="white"></font></para></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><para style="P7">[[ repeatIn(ob['product'],'p') ]]</para></td>
|
||||
<td><para style="P121">[[ repeatIn(ob['product'],'p') ]]</para></td>
|
||||
<td><para style="P12">[[ p['prod_name'] ]]</para></td>
|
||||
<td><para style="P4">[[ p['variants'] ]]</para></td>
|
||||
<td><para style="P10b">[[ p['prod_qty'] ]]</para></td>
|
||||
@@ -102,9 +85,7 @@
|
||||
<td><para style="P10b">[[ p['price'] ]]</para></td>
|
||||
<td><para style="P10b">[[ p['price_value'] ]]</para></td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<blockTable colWidths="60.0,200.0,56.0,55.0,52.0,56.0,68.0" style="Table4">
|
||||
<tr>
|
||||
<tr>
|
||||
<td><para style="P8"></para></td>
|
||||
<td><para style="P8">Total:</para></td>
|
||||
<td><para style="P8"></para></td>
|
||||
@@ -115,9 +96,6 @@
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="P11"><font color="white"> </font></para>
|
||||
<para style="P11"><font color="white"> </font></para>
|
||||
<para style="P11"><font color="white"> </font></para>
|
||||
<para style="P11"><font color="white"> </font></para>
|
||||
</section>
|
||||
</section>
|
||||
<blockTable colWidths="180,60,61.0,55.0,59.0,56.0,68.0" style="Table3">
|
||||
@@ -128,7 +106,7 @@
|
||||
<td><para style="P8"></para></td>
|
||||
<td><para style="P8"></para></td>
|
||||
<td><para style="P8"></para></td>
|
||||
<td><para style="P8a"><u>[[ grand_total_price() ]]</u></para></td>
|
||||
<td><para style="P8a">[[ grand_total_price() ]]</para></td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
</story>
|
||||
|
||||
@@ -10,45 +10,16 @@
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table1">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="5,-1" stop="5,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="6,-1" stop="6,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="7,-1" stop="7,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table3">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="0,0" stop="0,0"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,0"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table4">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#d4d4d4" start="1,0" stop="-1,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table2">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="3,0" stop="3,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="4,0" stop="4,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="5,0" stop="5,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="6,0" stop="6,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="7,0" stop="7,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table3">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="0,0" stop="-1,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,0" stop="-1,-1"/>
|
||||
</blockTableStyle>
|
||||
<initialize>
|
||||
<paraStyle name="all" alignment="justify"/>
|
||||
@@ -68,6 +39,7 @@
|
||||
<paraStyle name="P102" fontName="Helvetica-Bold" fontSize="10.0" leading="13" alignment="LEFT" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P11" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P12" fontName="Helvetica" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P121" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="1.0"/>
|
||||
<paraStyle name="P13" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P14" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Standard" fontName="Times-Roman"/>
|
||||
@@ -80,13 +52,13 @@
|
||||
</stylesheet>
|
||||
<images/>
|
||||
<story>
|
||||
<para style="P1">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<section>
|
||||
<blockTable colWidths="80,35.0,140.0,50.0,50.0,42.0,56.0,58.0" repeatRows="1" style="Table1">
|
||||
<tr>
|
||||
<td><para style="P2">Location</para></td>
|
||||
<para style="P121"><font color="white">[[ repeatIn(objects,'o') ]] </font></para>
|
||||
<section>
|
||||
<para style="P121"><font color="white">[[ repeatIn(process(o.id),'ob') ]]</font></para>
|
||||
<blockTable colWidths="80,35.0,140.0,50.0,50.0,42.0,56.0,58.0" style="Table4">
|
||||
<tr>
|
||||
<td><para style="P2">[[ ob['product'] or removeParentNode('blockTable') ]] Location</para></td>
|
||||
<td><para style="P2">Code</para></td>
|
||||
<td><para style="P2">Product</para></td>
|
||||
<td><para style="P2">Variants</para></td>
|
||||
@@ -94,16 +66,11 @@
|
||||
<td><para style="P4">UoM</para></td>
|
||||
<td><para style="P3">UnitPrice</para></td>
|
||||
<td><para style="P3">Value</para></td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para>[[repeatIn(objects,'o')]]</para>
|
||||
<section>
|
||||
<para style="P12">[[ repeatIn(process(o.id),'ob') ]]</para>
|
||||
<blockTable colWidths="80,35.0,140.0,50.0,50.0,42.0,56.0,58.0" repeatRows="1" style="Table4">
|
||||
</tr>
|
||||
<tr>
|
||||
<td><para style="P102">[[ ob['location_name'] ]]</para></td>
|
||||
<td><para style="Standard"><font color="white"></font></para></td>
|
||||
<td><para style="Standard">[[ ob['product'] or 'No products in this Location' ]]</para></td>
|
||||
<td><para style="Standard"><font color="white"></font></para></td>
|
||||
<td><para style="Standard"><font color="white"></font></para></td>
|
||||
<td><para style="Standard"><font color="white"></font></para></td>
|
||||
<td><para style="Standard"><font color="white"></font></para></td>
|
||||
@@ -120,36 +87,29 @@
|
||||
<td><para style="P12">[[ p['price'] ]]</para></td>
|
||||
<td><para style="P12">[[ p['price_value'] ]]</para></td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="P10">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<blockTable colWidths="80,35.0,140.0,50.0,50.0,42.0,56.0,58.0" style="Table2">
|
||||
<tr>
|
||||
<td><para style="P5"></para></td>
|
||||
<tr>
|
||||
<td><para style="P5"><font color="white"> </font></para></td>
|
||||
<td><para style="P5">Total:</para></td>
|
||||
<td><para style="P5"></para></td>
|
||||
<td><para style="P5"></para></td>
|
||||
<td><para style="P5"></para></td>
|
||||
<td><para style="P5"></para></td>
|
||||
<td><para style="P5"></para></td>
|
||||
<td><para style="P5"><font color="white"> </font></para></td>
|
||||
<td><para style="P5"><font color="white"> </font></para></td>
|
||||
<td><para style="P5"><font color="white"> </font></para></td>
|
||||
<td><para style="P5"><font color="white"> </font></para></td>
|
||||
<td><para style="P5"><font color="white"> </font></para></td>
|
||||
<td><para style="P5a"><u>[[ price_total() ]]</u></para></td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="P1"><font color="white"> </font></para>
|
||||
<para style="P1"><font color="white"> </font></para>
|
||||
</section>
|
||||
</section>
|
||||
<blockTable colWidths="80,35.0,140.0,50.0,50.0,42.0,56.0,58.0" style="Table3">
|
||||
<tr>
|
||||
<td><para style="P5">Grand Total:</para></td>
|
||||
<td><para style="P5"></para></td>
|
||||
<td><para style="P5"></para></td>
|
||||
<td><para style="P5"></para></td>
|
||||
<td><para style="P5"></para></td>
|
||||
<td><para style="P5"></para></td>
|
||||
<td><para style="P5"></para></td>
|
||||
<td><para style="P5a"><u>[[ grand_total_price() ]]</u></para></td>
|
||||
<td><para style="P5"><font color="white"> </font></para></td>
|
||||
<td><para style="P5"><font color="white"> </font></para></td>
|
||||
<td><para style="P5"><font color="white"> </font></para></td>
|
||||
<td><para style="P5"><font color="white"> </font></para></td>
|
||||
<td><para style="P5"><font color="white"> </font></para></td>
|
||||
<td><para style="P5"><font color="white"> </font></para></td>
|
||||
<td><para style="P5a">[[ grand_total_price() ]]</para></td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
</story>
|
||||
|
||||
Reference in New Issue
Block a user