improved Lunch Order

bzr revid: apa@tinyerp.com-20101015094413-3eblkjmbx82100aw
This commit is contained in:
apa-tiny 2010-10-15 15:14:13 +05:30
parent 7015214c0a
commit 9a2527a5fe
2 changed files with 104 additions and 155 deletions

View File

@ -26,18 +26,38 @@ from osv import osv
class order(report_sxw.rml_parse):
def sum_price(self, orders):
res = 0.0
for o in orders:
res += o.price
return res
def get_lines(self, user,objects):
lines=[]
for obj in objects:
if user.id==obj.user_id.id:
lines.append(obj)
return lines
def get_total(self, user,objects):
lines=[]
for obj in objects:
if user.id==obj.user_id.id:
lines.append(obj)
total=0.0
for line in lines:
total+=line.price
return total
def get_users(self, objects):
users=[]
for obj in objects:
if obj.user_id not in users:
users.append(obj.user_id)
return users
def __init__(self, cr, uid, name, context):
super(order, self).__init__(cr, uid, name, context)
self.localcontext.update({
'time': time,
'sum_price': self.sum_price,
'get_lines': self.get_lines,
'get_users': self.get_users,
'get_total': self.get_total,
})
report_sxw.report_sxw('report.lunch.order', 'lunch.order',

View File

@ -1,6 +1,6 @@
<?xml version="1.0"?>
<document filename="test.pdf">
<template pageSize="(595.0,842.0)" title="Lunch Order" author="OpenERP S.A. (sales@openerp.com)" allowSplitting="20">
<document filename="Lunch Order.pdf">
<template pageSize="(595.0,842.0)" title="Lunch Order" author="OpenERP S.A.(sales@openerp.com)" allowSplitting="20">
<pageTemplate id="first">
<frame id="first" x1="34.0" y1="42.0" width="527" height="758"/>
</pageTemplate>
@ -10,89 +10,37 @@
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table5">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBEFORE" colorName="#ffffff" start="0,0" stop="0,-1"/>
<lineStyle kind="LINEABOVE" colorName="#ffffff" start="0,0" stop="0,0"/>
<lineStyle kind="LINEBELOW" colorName="#ffffff" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#ffffff" start="1,0" stop="1,-1"/>
<lineStyle kind="LINEABOVE" colorName="#ffffff" start="1,0" stop="1,0"/>
<lineStyle kind="LINEBELOW" colorName="#ffffff" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#ffffff" start="2,0" stop="2,-1"/>
<lineStyle kind="LINEAFTER" colorName="#ffffff" start="2,0" stop="2,-1"/>
<lineStyle kind="LINEABOVE" colorName="#ffffff" start="2,0" stop="2,0"/>
<lineStyle kind="LINEBELOW" colorName="#ffffff" start="2,-1" stop="2,-1"/>
</blockTableStyle>
<blockTableStyle id="Table4">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBEFORE" colorName="#ffffff" start="0,0" stop="0,-1"/>
<lineStyle kind="LINEAFTER" colorName="#ffffff" start="0,0" stop="0,-1"/>
<lineStyle kind="LINEABOVE" colorName="#ffffff" start="0,0" stop="0,0"/>
<lineStyle kind="LINEBELOW" colorName="#ffffff" start="0,-1" stop="0,-1"/>
</blockTableStyle>
<blockTableStyle id="Table3">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="2,0" stop="2,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="2,0" stop="2,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="3,0" stop="3,-1"/>
<lineStyle kind="LINEAFTER" colorName="#cccccc" start="3,0" stop="3,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="3,0" stop="3,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/>
</blockTableStyle>
<blockTableStyle id="Table1">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBEFORE" colorName="#b3b3b3" start="0,0" stop="0,-1"/>
<lineStyle kind="LINEABOVE" colorName="#b3b3b3" start="0,0" stop="0,0"/>
<lineStyle kind="LINEBELOW" colorName="#b3b3b3" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#b3b3b3" start="1,0" stop="1,-1"/>
<lineStyle kind="LINEABOVE" colorName="#b3b3b3" start="1,0" stop="1,0"/>
<lineStyle kind="LINEBELOW" colorName="#b3b3b3" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="2,0" stop="2,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="2,0" stop="2,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="3,0" stop="3,-1"/>
<lineStyle kind="LINEAFTER" colorName="#cccccc" start="3,0" stop="3,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="3,0" stop="3,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/>
</blockTableStyle>
<blockTableStyle id="Table2">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#ffffff" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#ffffff" start="1,0" stop="1,-1"/>
<lineStyle kind="LINEBELOW" colorName="#ffffff" start="1,-1" stop="1,-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"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/>
</blockTableStyle>
<blockTableStyle id="Table3">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="3,-1" stop="3,-1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="4,-1" stop="4,-1"/>
</blockTableStyle>
<blockTableStyle id="Table4">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,0"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="3,0" stop="3,0"/>
</blockTableStyle>
<initialize>
<paraStyle name="all" alignment="justify"/>
</initialize>
<paraStyle name="P1" fontName="Helvetica-BoldOblique" fontSize="9.0" leading="11" alignment="LEFT"/>
<paraStyle name="P2" fontName="Helvetica-BoldOblique" fontSize="9.0" leading="11"/>
<paraStyle name="P3" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="CENTER"/>
<paraStyle name="P4" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT"/>
<paraStyle name="P5" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT"/>
<paraStyle name="P6" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT"/>
<paraStyle name="P7" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER"/>
<paraStyle name="P8" fontName="Helvetica" fontSize="9.0" leading="11"/>
<paraStyle name="P9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT"/>
<paraStyle name="P10" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT"/>
<paraStyle name="P11" fontName="Helvetica-Bold" fontSize="14.0" leading="17" alignment="CENTER"/>
<paraStyle name="P12" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER"/>
<paraStyle name="P13" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT"/>
<paraStyle name="P14" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P15" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="Standard" fontName="Helvetica"/>
<paraStyle name="Text body" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Heading" fontName="Helvetica" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
@ -108,111 +56,92 @@
<paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_tbl_detail_header" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_tbl_detail_header_right" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_tbl_detail_header_center" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_9_right" fontName="Helvetica" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_9_right_bold" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_header_center" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_9_center" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<images/>
</stylesheet>
<story>
<para style="P15">[[repeatIn(objects,'o')]]</para>
<para style="terp_default_8">[[repeatIn(get_users(objects),'o')]]</para>
<blockTable colWidths="293.0,235.0" style="Table1">
<tr>
<td>
<para style="terp_default_8">
<font color="white"> </font>
</para>
</td>
<td>
<para style="terp_default_8">[[ (o.address_id and o.address_id.partner_id and o.address_id.partner_id.title and o.address_id.partner_id.title.name) or '' ]] [[ (o.address_id and o.address_id.partner_id and o.address_id.partner_id.name) or '' ]]</para>
<para style="terp_default_8">[[ (o.address_id and o.address_id.street) or '' ]]</para>
<para style="terp_default_8">[[ (o.address_id and o.address_id.street2) or removeParentNode('para') ]]</para>
<para style="terp_default_8">[[ (o.address_id and o.address_id.zip) or '' ]] [[ (o.address_id and o.user_id.address_id.city) or '' ]]</para>
<para style="terp_default_8">[[ (o.address_id and o.address_id.state_id and o.address_id.state_id.name) or removeParentNode('para')]]</para>
<para style="terp_default_8">[[ (o.address_id and o.address_id.country_id and o.address_id.country_id.name) or '' ]]</para>
</td>
</tr>
</blockTable>
<para style="terp_header">Lunch Order</para>
<blockTable colWidths="80.0,70.0,141.0,172.0,65.0" style="Table2">
<tr>
<td>
<para style="terp_tbl_detail_header">Name</para>
</td>
<td>
<para style="terp_tbl_detail_header_center">Date</para>
</td>
<td>
<para style="terp_tbl_detail_header">Order</para>
</td>
<td>
<para style="terp_tbl_detail_header">Description</para>
</td>
<td>
<para style="terp_tbl_detail_header_right">Unit Price</para>
</td>
</tr>
</blockTable>
<section>
<para style="P15">
<font color="white"> </font>
</para>
<blockTable colWidths="262.0,6.0,260.0" style="Table5">
<para style="terp_default_8">[[ repeatIn(get_lines(o,objects),'lines') ]]</para>
<blockTable colWidths="80.0,70.0,141.0,172.0,64.0" style="Table3">
<tr>
<td>
<para style="P15">
<font color="white"> </font>
</para>
<para style="terp_default_9">[[ (lines.user_id and lines.user_id.name) or '']]</para>
</td>
<td>
<para style="P9">
<font color="white"> </font>
</para>
<para style="terp_default_9_center">[[ formatLang(lines.date,date='True') ]]</para>
</td>
<td>
<para style="P14">[[ o.user_id.address_id.partner_id.title.name or '' ]] [[ o.user_id.address_id.partner_id.name ]]</para>
<para style="P14">[[ o.user_id.address_id.street ]]</para>
<para style="P14">[[ o.user_id.address_id.street2 or removeParentNode('para') ]]</para>
<para style="P14">[[ o.user_id.address_id.zip or '' ]] [[ o.user_id.address_id.city or '' ]]</para>
<para style="P14">[[ (o.user_id.address_id.state_id and o.user_id.address_id.state_id.name) or removeParentNode('para')]] [[ (o.user_id.address_id.country_id and o.user_id.address_id.country_id.name) or '' ]]</para>
<para style="P14">
<font color="white"> </font>
</para>
</td>
</tr>
</blockTable>
<para style="P1">
<font color="white"> </font>
</para>
<para style="P1">
<font color="white"> </font>
</para>
<blockTable colWidths="527.0" style="Table4">
<tr>
<td>
<para style="P11">Lunch Order</para>
</td>
</tr>
</blockTable>
<para style="P1">
<font color="white"> </font>
</para>
<para style="P1">
<font color="white"> </font>
</para>
<blockTable colWidths="132.0,153.0,141.0,101.0" style="Table3">
<tr>
<td>
<para style="P10">Name</para>
<para style="terp_default_9">[[ (lines.product and lines.product.name) or '' ]]</para>
</td>
<td>
<para style="P3">Order</para>
<para style="terp_default_9">[[ lines.descript]]</para>
</td>
<td>
<para style="P3">Description</para>
</td>
<td>
<para style="P4">Unit Price</para>
<para style="terp_default_9_right">[[ lines.price ]] [[ (o.company_id and o.company_id.currency_id and o.company_id.currency_id.symbol) or '' ]]</para>
</td>
</tr>
</blockTable>
</section>
<blockTable colWidths="132.0,153.0,142.0,101.0" style="Table1">
<blockTable colWidths="409.0,55.0,64.0" style="Table4">
<tr>
<td>
<para style="P5">[[ o.user_id.name ]]</para>
</td>
<td>
<para style="P7">[[o.product.name ]]</para>
</td>
<td>
<para style="P12">[[ o.descript ]]</para>
</td>
<td>
<para style="P6">[[formatLang(o.price) ]] [[company.currency_id.symbol]]</para>
</td>
</tr>
</blockTable>
<blockTable colWidths="132.0,153.0,142.0,101.0" style="Table2">
<tr>
<td>
<para style="P8">
<para style="terp_default_8">
<font color="white"> </font>
</para>
</td>
<td>
<para style="P8">
<font color="white"> </font>
</para>
<para style="terp_tbl_detail_header">Total:</para>
</td>
<td>
<para style="P3">Total:</para>
</td>
<td>
<para style="P13">[[ formatLang(sum_price(objects)) ]] <font face="Helvetica">[[company.currency_id.symbol]]</font></para>
<para style="terp_default_9_right_bold">[[ formatLang(get_total(o,objects)) ]] [[ (o.company_id and o.company_id.currency_id and o.company_id.currency_id.symbol) or '' ]]</para>
</td>
</tr>
</blockTable>
<para style="P2">
<para style="terp_default_8">
<font color="white"> </font>
</para>
</story>