[MERGE] merge from lp:~openerp/openobject-addons/5.0/

bzr revid: hmo@tinyerp.com-20091128110526-yen7frgcg9nkbn7h
This commit is contained in:
Harry (Open ERP) 2009-11-28 16:35:26 +05:30
commit 4d6d553d17
31 changed files with 1208 additions and 642 deletions

View File

@ -1413,7 +1413,7 @@
</record>
<record id="action_tax_code_line_open" model="ir.actions.act_window">
<field name="name">account.move.line</field>
<field name="name">Account Entry Lines</field>
<field name="res_model">account.move.line</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>

View File

@ -318,6 +318,7 @@ class account_invoice(osv.osv):
self.pool.get('res.users').browse(cr, uid, uid,
context=context).company_id.id,
'reference_type': lambda *a: 'none',
'check_total': lambda *a: 0.0,
}
def unlink(self, cr, uid, ids, context=None):

View File

@ -1,3 +1,4 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
##############################################################################
#
@ -26,6 +27,25 @@ import copy
from report import report_sxw
import re
def _get_country(record):
if record.partner_id \
and record.partner_id.address \
and record.partner_id.address[0].country_id:
return record.partner_id.address[0].country_id.code
else:
return ''
def _record_to_report_line(record):
return {'date': record.date,
'ref': record.ref,
'acode': record.account_id.code,
'name': record.name,
'debit': record.debit,
'credit': record.credit,
'pname': record.partner_id and record.partner_id.name or '',
'country': _get_country(record)
}
class account_tax_code_report(rml_parse.rml_parse):
#_name = 'report.account.tax.code.entries'
@ -36,30 +56,14 @@ class account_tax_code_report(rml_parse.rml_parse):
'get_line':self.get_line,
})
def get_line(self,obj):
res = {}
result = []
line_ids = self.pool.get('account.move.line').search(self.cr,self.uid,[('tax_code_id','=',obj.id)])
if line_ids:
move_line_objs = self.pool.get('account.move.line').browse(self.cr,self.uid,line_ids)
for line in move_line_objs:
res['date'] = line.date
res['ref'] = line.ref
res['acode'] = line.account_id.code
res['pname'] = ''
res['country'] = ''
def get_line(self, obj):
line_ids = self.pool.get('account.move.line').search(self.cr, self.uid, [('tax_code_id','=',obj.id)])
if not line_ids: return []
if line.partner_id:
res['pname'] = line.partner_id.name
if line.partner_id.address and line.partner_id.address[0].country_id:
res['country'] = line.partner_id.address[0].country_id.code
res['name'] = line.name
res['debit'] = line.debit
res['credit'] = line.credit
result.append(res)
return map(_record_to_report_line,
self.pool.get('account.move.line')\
.browse(self.cr, self.uid, line_ids))
return result
report_sxw.report_sxw('report.account.tax.code.entries', 'account.tax.code',
'addons/account/report/account_tax_code.rml', parser=account_tax_code_report, header=False)

View File

@ -1,6 +1,6 @@
<?xml version="1.0"?>
<document filename="test.pdf">
<template pageSize="(1120.0,770.0)" title="Test" author="Martin Simon" allowSplitting="20" >
<template pageSize="(1120.5,767.8)" title="Test" author="Martin Simon" allowSplitting="20" >
<pageTemplate id="first">
<frame id="first" x1="22.0" y1="31.0" width="1080" height="680"/>
<pageGraphics>

View File

@ -21,6 +21,7 @@
import wizard
import pooler
from tools.translate import _
form = '''<?xml version="1.0"?>
<form string="Print Central Journal">

View File

@ -21,6 +21,7 @@
import wizard
import pooler
from tools.translate import _
form = '''<?xml version="1.0"?>
<form string="Print General Journal">

View File

@ -21,6 +21,7 @@
import wizard
import pooler
from tools.translate import _
form = '''<?xml version="1.0"?>
<form string="Print Journal">

View File

@ -1,263 +1,525 @@
<?xml version="1.0"?>
<document filename="test.pdf">
<template pageSize="(595.0,842.0)" title="Test" author="Martin Simon" allowSplitting="20">
<pageTemplate id="first">
<frame id="first" x1="34.0" y1="28.0" width="527" height="786"/>
</pageTemplate>
</template>
<stylesheet>
<blockTableStyle id="Standard_Outline">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Tableau2">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Tableau6">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,0" stop="0,0"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="1,0" stop="1,0"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="2,0" stop="2,0"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="3,0" stop="3,0"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="4,0" stop="4,0"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="5,0" stop="5,0"/>
</blockTableStyle>
<blockTableStyle id="Tableau7">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,0" stop="-1,0"/>
<lineStyle kind="LINEABOVE" colorName="#ffffff" start="0,1" stop="-1,-1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,1" stop="-1,-1"/>
</blockTableStyle>
<blockTableStyle id="Tableau8">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Tableau3">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Tableau4">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,0" stop="0,0"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="1,0" stop="1,0"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="2,0" stop="2,0"/>
<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"/>
</blockTableStyle>
<blockTableStyle id="Tableau5">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="0,0" stop="2,0"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="0,2" stop="2,2"/>
</blockTableStyle>
<initialize>
<paraStyle name="all" alignment="justify"/>
</initialize>
<paraStyle name="P1" fontName="Helvetica" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P2" fontName="Helvetica" alignment="LEFT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P3" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P4" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P4a" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P5" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P6" fontName="Helvetica" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P7" fontName="Helvetica" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P7a" fontName="Helvetica" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P8" fontName="Helvetica-Bold" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0" />
<paraStyle name="P8b" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="0.0"/>
<paraStyle name="P8a" fontName="Helvetica" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0" />
<paraStyle name="P9" fontName="Times-Italic" fontSize="8.0" leading="10" spaceBefore="0.0" spaceAfter="3.0"/>
<paraStyle name="P10" fontName="Helvetica-Bold" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P11" fontName="Helvetica-Bold" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P11a" fontName="Helvetica" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P12" fontName="Helvetica-Bold" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P13" fontName="Helvetica-Bold" alignment="LEFT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P14" fontName="Helvetica" fontSize="12.0" leading="13" alignment="LEFT"/>
<paraStyle name="P15" fontName="Helvetica" fontSize="12.0" leading="13" alignment="CENTER"/>
<paraStyle name="P16" fontName="Helvetica" fontSize="14.0" leading="15" alignment="LEFT"/>
<paraStyle name="P17" fontName="Helvetica" fontSize="9.0" leading="11"/>
<paraStyle name="P18" fontName="Helvetica" fontSize="9.0" leading="11"/>
<paraStyle name="P19" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT"/>
<paraStyle name="P20" fontName="Helvetica" fontSize="6.0" leading="4" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P21" fontName="Helvetica-Bold" fontSize="8.0" leading="8" alignment="LEFT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P22" fontName="Helvetica-Bold" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P23" fontName="Helvetica" fontSize="14.0" leading="15" alignment="LEFT"/>
<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" alignment="CENTER" spaceBefore="2.0" spaceAfter="3.0" leading="10"/>
<paraStyle name="Table Contents1" fontName="Helvetica" alignment="RIGHT" spaceBefore="2.0" spaceAfter="3.0" leading="10"/>
<paraStyle name="Table Heading" fontName="Helvetica" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Caption" fontName="Helvetica" fontSize="9.0" leading="11" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="Index" fontName="Helvetica"/>
<paraStyle name="terp_default_Note" rightIndent="0.0" leftIndent="9.0" fontName="Helvetica-Oblique" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
</stylesheet>
<images/>
<story>
<para style="P1">[[ repeatIn(objects,'o') ]]</para>
<para style="P1">[[ setLang(o.partner_id.lang) ]]</para>
<blockTable colWidths="295.0,232.0" style="Tableau2">
<tr>
<td><para style="P8b"><font color="white"> </font></para></td>
<td>
<para style="Standard">[[ o.partner_id.title or '' ]] [[ o.partner_id.name ]]</para>
<para style="Standard">[[ o.address_invoice_id.title or '' ]] [[ o.address_invoice_id.name ]]</para>
<para style="Standard">[[ o.address_invoice_id.street ]]</para>
<para style="Standard">[[ o.address_invoice_id.street2 or '' ]]</para>
<para style="Standard">[[ o.address_invoice_id.zip or '' ]] [[ o.address_invoice_id.city or '' ]]</para>
<para style="Standard">[[ o.address_invoice_id.state_id and o.address_invoice_id.state_id.name or '' ]]</para>
<para style="Standard">[[ o.address_invoice_id.country_id and o.address_invoice_id.country_id.name or '' ]]</para>
<para style="P8b"><font color="white"> </font></para>
<para style="Standard">Tel.&#xA0;: [[ o.address_invoice_id.phone or removeParentNode('para') ]]</para>
<para style="Standard">Fax&#xA0;: [[ o.address_invoice_id.fax or removeParentNode('para') ]]</para>
<para style="Standard">VAT&#xA0;: [[ o.partner_id.vat or removeParentNode('para') ]]</para>
</td>
</tr>
</blockTable>
<para style="P8b">
<font color="white"></font>
</para>
<para style="P23">Invoice [[ ((o.type == 'out_invoice' and (o.state == 'open' or o.state == 'paid')) or removeParentNode('para')) and '' ]] [[ o.number ]]</para>
<para style="P23">PRO-FORMA [[ ((o.type == 'out_invoice' and o.state == 'proforma') or removeParentNode('para')) and '' ]]</para>
<para style="P23">Draft Invoice [[ ((o.type == 'out_invoice' and o.state == 'draft') or removeParentNode('para')) and '' ]]</para>
<para style="P23">Cancelled Invoice [[ ((o.type == 'out_invoice' and o.state == 'cancel') or removeParentNode('para')) and '' ]]</para>
<para style="P23">Refund [[ (o.type=='out_refund' or removeParentNode('para')) and '' ]] [[ o.number ]]</para>
<para style="P23">Supplier Refund [[ (o.type=='in_refund' or removeParentNode('para')) and '' ]] [[ o.number ]]</para>
<para style="P16"><font>Supplier Invoice [[ (o.type=='in_invoice' or removeParentNode('para')) and '' ]]</font><font>[[ o.number ]]</font></para>
<para style="P8b">
<font color="white"></font>
</para>
<para style="P17"><font>Document:</font><font>[[ o.name ]]</font></para>
<para style="P8b"><font color="white"></font></para>
<para style="P17"><font>Invoice Date: </font><font>[[ formatLang(o.date_invoice,date=True) ]]</font></para>
<para style="P18"><font>Customer Ref:</font>[[ o.address_invoice_id.partner_id.ref or '/' ]]</para>
<para style="P8b">
<font color="white"></font>
</para>
<blockTable colWidths="274.0,62.0,70.0,67.0,68.0" style="Tableau6">
<tr>
<td><para style="P3">Description / Taxes</para></td>
<td><para style="P3">Quantity</para></td>
<td><para style="P4">Unit Price</para></td>
<td><para style="P4">Disc. (%)</para></td>
<td><para style="P3">Price</para></td>
</tr>
</blockTable>
<section>
<para style="P20">[[ repeatIn(invoice_lines(o), 'a') ]]</para>
<blockTable colWidths="0.0,240.0,77.5,41.0,39.0,50.0,79.0" style="Tableau7">
<tr>
<td><para style="P8">[[ a['type']=='text' and removeParentNode('blockTable')]]</para></td>
<td><para style="P8a">[[ (a['type']=='title' or a['type']=='subtotal') and ( setTag('para','para',{'fontName':'Helvetica-bold'})) ]][[ a['name'] ]] / ( [[ a['tax_types'] ]] )</para></td>
<td><para style="P7a">[[ a['type']=='subtotal' and ( setTag('para','para',{'fontName':'Helvetica-bold'})) ]][[ a['quantity'] ]]</para></td>
<td><para style="P5">[[ a['uos'] ]]</para></td>
<td><para style="P7">[[ a['type']=='subtotal' and ( setTag('para','para',{'fontName':'Helvetica-bold'})) ]][[ a['price_unit'] ]]</para></td>
<td><para style="P7">[[ a['type']=='subtotal' and ( setTag('para','para',{'fontName':'Helvetica-bold'})) ]][[ a['discount'] ]]</para></td>
<td><para style="P7">[[ a['type']=='subtotal' and ( setTag('para','para',{'fontName':'Helvetica-bold'})) ]]<font>[[ a['price_subtotal'] ]]</font><font> [[ a['currency'] ]]</font></para></td>
</tr>
<tr>
<td><para style="P8"><font color="white"></font></para></td>
<td><para style="terp_default_Note">Note : [[ format(a['note']) or removeParentNode('tr') ]]</para></td>
<td><para style="Table Contents"><font color="white"></font></para></td>
<td><para><font color="white"></font></para></td>
<td><para style="P7"><font color="white"></font></para></td>
<td><para style="Table Contents1"><font color="white"></font></para></td>
<td><para style="Table Contents"><font color="white"></font></para></td>
</tr>
</blockTable>
<blockTable colWidths="453.0,74.0" style="Tableau8">
<tr>
<td><para style="Table Contents">[[ a['type']=='text' and format(a['name']) or removeParentNode('blockTable') ]]</para></td>
<td><para style="P8">[[ a['type']=='text' and '' ]]</para></td>
</tr>
</blockTable>
<pageBreak>[[ a['type']!='break' and removeParentNode('pageBreak')]]</pageBreak>
<blockTable colWidths="274.0,62.0,70.0,67.0,68.0" style="Tableau6">
<tr>
<td><para style="P3">Description/Taxes [[ a['type']!='break' and removeParentNode('blockTable')]]</para></td>
<td><para style="P4">Quantity</para></td>
<td><para style="P4">Unit Price</para></td>
<td><para style="P4">Disc. (%)</para></td>
<td><para style="P3">Price</para></td>
</tr>
</blockTable>
</section>
<blockTable colWidths="321.0,210.0" style="Tableau3">
<tr>
<td>
<blockTable colWidths="100.0,73.0,100.0" style="Tableau8">
<tr>
<td><para style="P10"><font color="white"></font></para></td>
<td><para style="P8"><font color="white"></font></para></td>
<td><para style="P8"><font color="white"></font></para></td>
</tr>
<tr>
<td><para style="P11a"><font color="white"></font></para></td>
<td><para style="P11"><font color="white"></font></para></td>
<td><para style="P11"><font color="white"></font></para></td>
</tr>
</blockTable>
</td>
<td>
<blockTable colWidths="110.0,90.0" style="Tableau5">
<tr>
<td><para style="P13">Total (Excl. taxes):</para></td>
<td><para style="P12"><u>[[ '%.2f' % o.amount_untaxed ]] [[o.currency_id.code ]]</u></para></td>
</tr>
<tr>
<td><para style="P13">Taxes:</para></td>
<td><para style="P11a">[[ '%.2f' % o.amount_tax ]] [[o.currency_id.code ]]</para></td>
</tr>
<tr>
<td><para style="P13">Total <font>(Incl. taxes):</font></para></td>
<td><para style="P12"><u>[[ '%.2f' % o.amount_total ]] [[o.currency_id.code ]]</u></para></td>
</tr>
</blockTable>
</td>
</tr>
</blockTable>
<blockTable colWidths="251.0,290.0" style="Tableau3">
<tr>
<td>
<blockTable colWidths="81.0,73.0,65.0" style="Tableau4">
<tr>
<td><para style="P10">Tax</para></td>
<td><para style="P8">Base</para></td>
<td><para style="P8">Amount</para></td>
</tr>
<tr>
<td><para style="P10"><font>[[ repeatIn(o.tax_line,'t') ]]</font><font>[[ t.name ]]</font></para></td>
<td><para style="P11">[[ '%.2f' % t.base ]]</para></td>
<td><para style="P11">[[ '%.2f' % t.amount]]</para></td>
</tr>
</blockTable>
</td>
<td>
<blockTable colWidths="81.0,73.0,65.0" style="Tableau8">
<tr>
<td><para style="P10"><font color="white"></font></para></td>
<td><para style="P8"><font color="white"></font></para></td>
<td><para style="P8"><font color="white"></font></para></td>
</tr>
<tr>
<td><para style="P11a"><font color="white"></font></para></td>
<td><para style="P11"><font color="white"></font></para></td>
<td><para style="P11"><font color="white"></font></para></td>
</tr>
</blockTable>
</td>
</tr>
</blockTable>
<para style="P8b">
<font color="white"></font>
</para>
<para style="P19">[[ format(o.comment) or removeParentNode('para') ]]</para>
<para style="P19">[[ format(o.payment_term and o.payment_term.note) or removeParentNode('para') ]]</para>
</story>
</document>
<template pageSize="(595.0,842.0)" title="Test" author="Martin Simon" allowSplitting="20">
<pageTemplate id="first">
<frame id="first" x1="28.0" y1="28.0" width="539" height="786"/>
</pageTemplate>
</template>
<stylesheet>
<blockTableStyle id="Standard_Outline">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Tableau2">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table_Invoice_General_Header">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="0,0" stop="0,-1"/>
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="0,0" stop="0,0"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="1,0" stop="1,-1"/>
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="1,0" stop="1,0"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="2,0" stop="2,-1"/>
<lineStyle kind="LINEAFTER" colorName="#e6e6e6" start="2,0" stop="2,-1"/>
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="2,0" stop="2,0"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
</blockTableStyle>
<blockTableStyle id="Table_General_Detail_Content">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="0,0" stop="0,-1"/>
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="0,0" stop="0,0"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="1,0" stop="1,-1"/>
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="1,0" stop="1,0"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="2,0" stop="2,-1"/>
<lineStyle kind="LINEAFTER" colorName="#e6e6e6" start="2,0" stop="2,-1"/>
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="2,0" stop="2,0"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
</blockTableStyle>
<blockTableStyle id="Tableau6">
<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"/>
</blockTableStyle>
<blockTableStyle id="Table_Invoice_Line_Content">
<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"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="5,-1" stop="5,-1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="6,-1" stop="6,-1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="7,-1" stop="7,-1"/>
</blockTableStyle>
<blockTableStyle id="Table1">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table2">
<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"/>
</blockTableStyle>
<blockTableStyle id="Tableau3">
<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>
<blockTableStyle id="Table4">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table6">
<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>
<blockTableStyle id="Table7">
<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"/>
</blockTableStyle>
<blockTableStyle id="Table8">
<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"/>
</blockTableStyle>
<blockTableStyle id="Table_Coment_Payment_Term">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table_Payment_Terms">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<initialize>
<paraStyle name="all" alignment="justify"/>
</initialize>
<paraStyle name="P1" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="3.0" spaceAfter="0.0"/>
<paraStyle name="P2" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P3" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="3.0" spaceAfter="0.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="Heading" fontName="Helvetica" fontSize="12.0" leading="15" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="15.0" leading="19" 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_default_Bold_9" fontName="Helvetica-Bold" fontSize="9.0" leading="11" 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_tblheader_General" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_General_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_Centre_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_tblheader_Details" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="Footer" fontName="Times-Roman"/>
<paraStyle name="Horizontal Line" fontName="Times-Roman" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="14.0"/>
<paraStyle name="Heading 9" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_General_Right" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.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_header_Right" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_header_Centre" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.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_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_1" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Right_9_Bold" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_8_Italic" fontName="Helvetica-Oblique" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="Drawing" fontName="Times-Roman" fontSize="10.0" leading="13" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="Header" fontName="Times-Roman"/>
<paraStyle name="Endnote" rightIndent="0.0" leftIndent="14.0" fontName="Times-Roman" fontSize="10.0" leading="13"/>
<paraStyle name="Addressee" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="3.0"/>
<paraStyle name="Signature" fontName="Times-Roman"/>
<paraStyle name="Heading 8" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Heading 7" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Heading 6" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Heading 5" fontName="Helvetica-Bold" fontSize="85%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Heading 4" fontName="Helvetica-BoldOblique" fontSize="85%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Heading 1" fontName="Helvetica-Bold" fontSize="115%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Heading 10" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Heading 2" fontName="Helvetica-BoldOblique" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="First line indent" rightIndent="0.0" leftIndent="0.0" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Hanging indent" rightIndent="0.0" leftIndent="28.0" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Salutation" fontName="Times-Roman"/>
<paraStyle name="Text body indent" rightIndent="0.0" leftIndent="0.0" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Heading 3" fontName="Helvetica-Bold" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="List Indent" rightIndent="0.0" leftIndent="142.0" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Marginalia" rightIndent="0.0" leftIndent="113.0" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_space" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="3.0" spaceAfter="0.0"/>
<paraStyle name="terp_tblheader_Detail_another" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Note" rightIndent="0.0" leftIndent="9.0" fontName="Helvetica-Oblique" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_2" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
</stylesheet>
<images/>
<story>
<para style="terp_default_8">[[ repeatIn(objects,'o') ]]</para>
<para style="terp_default_8">[[ setLang(o.partner_id.lang) ]]</para>
<blockTable colWidths="302.0,237.0" style="Tableau2">
<tr>
<td>
<para style="terp_default_9">
<font color="white"> </font>
</para>
</td>
<td>
<para style="terp_default_9">[[ o.partner_id.title or '' ]] [[ o.partner_id.name ]]</para>
<para style="terp_default_9">[[ o.address_invoice_id.title or '' ]] [[ o.address_invoice_id.name ]]</para>
<para style="terp_default_9">[[ o.address_invoice_id.street ]]</para>
<para style="terp_default_9">[[ o.address_invoice_id.street2 or '' ]]</para>
<para style="terp_default_9">[[ o.address_invoice_id.zip or '' ]] [[ o.address_invoice_id.city or '' ]]</para>
<para style="terp_default_9">[[ o.address_invoice_id.state_id and o.address_invoice_id.state_id.name or '' ]]</para>
<para style="terp_default_9">[[ o.address_invoice_id.country_id and o.address_invoice_id.country_id.name or '' ]]</para>
<para style="terp_default_9">
<font color="white"> </font>
</para>
<para style="terp_default_9">Tel. : [[ o.address_invoice_id.phone or removeParentNode('para') ]]</para>
<para style="terp_default_9">Fax : [[ o.address_invoice_id.fax or removeParentNode('para') ]]</para>
<para style="terp_default_9">VAT : [[ o.partner_id.vat or removeParentNode('para') ]]</para>
</td>
</tr>
</blockTable>
<para style="terp_default_space">
<font color="white"> </font>
</para>
<para style="terp_header">Invoice [[ ((o.type == 'out_invoice' and (o.state == 'open' or o.state == 'paid')) or removeParentNode('para')) and '' ]] [[ o.number ]]</para>
<para style="terp_header">PRO-FORMA [[ ((o.type == 'out_invoice' and o.state == 'proforma2') or removeParentNode('para')) and '' ]]</para>
<para style="terp_header">Draft Invoice [[ ((o.type == 'out_invoice' and o.state == 'draft') or removeParentNode('para')) and '' ]]</para>
<para style="terp_header">Cancelled Invoice [[ ((o.type == 'out_invoice' and o.state == 'cancel') or removeParentNode('para')) and '' ]] [[ o.number ]]</para>
<para style="terp_header">Refund [[ (o.type=='out_refund' or removeParentNode('para')) and '' ]] [[ o.number ]]</para>
<para style="terp_header">Supplier Refund [[ (o.type=='in_refund' or removeParentNode('para')) and '' ]] [[ o.number ]]</para>
<para style="P2">Supplier Invoice [[ (o.type=='in_invoice' or removeParentNode('para')) and '' ]] [[ o.number ]]</para>
<para style="terp_default_space">
<font color="white"> </font>
</para>
<para style="P3">
<font color="white"> </font>
</para>
<blockTable colWidths="180.0,179.0,180.0" style="Table_Invoice_General_Header">
<tr>
<td>
<para style="terp_tblheader_General_Centre">Document</para>
</td>
<td>
<para style="terp_tblheader_General_Centre">Invoice Date</para>
</td>
<td>
<para style="terp_tblheader_General_Centre">Partner Ref.</para>
</td>
</tr>
</blockTable>
<blockTable colWidths="179.0,179.0,180.0" style="Table_General_Detail_Content">
<tr>
<td>
<para style="terp_default_Centre_9">[[ o.name ]]</para>
</td>
<td>
<para style="terp_default_Centre_9">[[ formatLang(o.date_invoice,date=True) ]]</para>
</td>
<td>
<para style="terp_default_Centre_9">[[ o.address_invoice_id.partner_id.ref or '' ]]</para>
</td>
</tr>
</blockTable>
<para style="Standard">
<font color="white"> </font>
</para>
<blockTable colWidths="284.0,64.0,64.0,52.0,75.0" style="Tableau6">
<tr>
<td>
<para style="terp_tblheader_Details">Description / Taxes</para>
</td>
<td>
<para style="terp_tblheader_Details_Centre">Quantity</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">Unit Price</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">Disc. (%)</para>
</td>
<td>
<para style="terp_tblheader_Details_Centre">Price</para>
</td>
</tr>
</blockTable>
<section>
<para style="terp_default_8">[[ repeatIn(invoice_lines(o), 'a') ]]</para>
<blockTable colWidths="4.0,280.0,44.0,21.0,66.0,53.0,51.0,19.0" style="Table_Invoice_Line_Content">
<tr>
<td>
<para style="terp_default_9">[[ a['type']=='text' and removeParentNode('blockTable')]]</para>
</td>
<td>
<para style="terp_default_9">[[ (a['type']=='title' or a['type']=='subtotal') and ( setTag('para','para',{'fontName':'Helvetica-bold'})) ]][[ a['name'] ]] [[ a['type']=='article' and ('/ (' + a['tax_types'] + ')' ) ]]</para>
</td>
<td>
<para style="terp_default_Right_9">[[ a['type']=='subtotal' and ( setTag('para','para',{'fontName':'Helvetica-bold'})) ]][[ a['quantity'] ]]</para>
</td>
<td>
<para style="terp_default_Right_9">[[ a['uos'] ]]</para>
</td>
<td>
<para style="terp_default_Right_9">[[ a['type']=='subtotal' and ( setTag('para','para',{'fontName':'Helvetica-bold'})) ]][[ a['price_unit'] ]]</para>
</td>
<td>
<para style="terp_default_Centre_9">[[ a['type']=='subtotal' and ( setTag('para','para',{'fontName':'Helvetica-bold'})) ]][[ a['discount'] ]]</para>
</td>
<td>
<para style="terp_default_Right_9">[[ a['type']=='subtotal' and ( setTag('para','para',{'fontName':'Helvetica-bold'})) ]] [[ a['price_subtotal'] ]]</para>
</td>
<td>
<para style="terp_default_Right_9">[[ a['currency'] ]]</para>
</td>
</tr>
<tr>
<td>
<para style="terp_default_Note">
<font color="white"> </font>
</para>
</td>
<td>
<para style="terp_default_Note">Note: [[ format(a['note']) or removeParentNode('tr') ]]</para>
<para style="terp_default_Note">
<font color="white"> </font>
</para>
</td>
<td>
<para style="terp_default_Note">
<font color="white"> </font>
</para>
</td>
<td>
<para style="terp_default_Note">
<font color="white"> </font>
</para>
</td>
<td>
<para style="terp_default_Note">
<font color="white"> </font>
</para>
</td>
<td>
<para style="terp_default_Note">
<font color="white"> </font>
</para>
</td>
<td>
<para style="terp_default_Note">
<font color="white"> </font>
</para>
</td>
<td>
<para style="terp_default_Note">
<font color="white"> </font>
</para>
</td>
</tr>
</blockTable>
<para style="terp_default_1">
<font color="white"> </font>
</para>
<blockTable colWidths="4.0,278.0,257.0" style="Table1">
<tr>
<td>
<para style="terp_default_9">
<font color="white"> </font>
</para>
</td>
<td>
<para style="terp_default_9">[[ a['type']=='text' and format(a['name']) or removeParentNode('blockTable') ]]</para>
</td>
<td>
<para style="terp_default_9">[[ a['type']=='text' and '' ]]</para>
</td>
</tr>
</blockTable>
<pageBreak>[[ a['type']!='break' and removeParentNode('pageBreak')]]</pageBreak>
<blockTable colWidths="284.0,64.0,64.0,52.0,75.0" style="Table2">
<tr>
<td>
<para style="terp_tblheader_Details">Description / Taxes [[ a['type']!='break' and removeParentNode('blockTable')]]</para>
</td>
<td>
<para style="terp_tblheader_Details_Centre">Quantity</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">Unit Price</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">Disc. (%)</para>
</td>
<td>
<para style="terp_tblheader_Details_Centre">Price</para>
</td>
</tr>
</blockTable>
<para style="terp_default_1"/>
</section>
<para style="terp_default_1">
<font color="white"> </font>
</para>
<blockTable colWidths="405.0,59.0,54.0,20.0" style="Tableau3">
<tr>
<td>
<para style="terp_default_9">
<font color="white"> </font>
</para>
</td>
<td>
<para style="terp_default_Bold_9">Net Total:</para>
</td>
<td>
<para style="terp_default_Right_9">[[ formatLang(o.amount_untaxed) ]]</para>
</td>
<td>
<para style="terp_default_Right_9">[[ o.currency_id.code ]]</para>
</td>
</tr>
</blockTable>
<para style="terp_default_1">
<font color="white"> </font>
</para>
<blockTable colWidths="405.0,59.0,54.0,20.0" style="Table4">
<tr>
<td>
<para style="terp_default_9">
<font color="white"> </font>
</para>
</td>
<td>
<para style="terp_default_Bold_9">Taxes:</para>
</td>
<td>
<para style="terp_default_Right_9">[[ formatLang(o.amount_tax) ]]</para>
</td>
<td>
<para style="terp_default_Right_9">[[ o.currency_id.code ]]</para>
</td>
</tr>
</blockTable>
<para style="terp_default_1">
<font color="white"> </font>
</para>
<blockTable colWidths="405.0,59.0,54.0,20.0" style="Table6">
<tr>
<td>
<para style="terp_default_9">
<font color="white"> </font>
</para>
</td>
<td>
<para style="terp_default_Bold_9">Total:</para>
</td>
<td>
<para style="terp_default_Right_9">[[ formatLang(o.amount_total) ]]</para>
</td>
<td>
<para style="terp_default_Right_9">[[ o.currency_id.code ]]</para>
</td>
</tr>
</blockTable>
<para style="P1">
<font color="white"> </font>
</para>
<para style="terp_default_9">
<font color="white"> </font>
</para>
<blockTable colWidths="57.0,61.0,60.0,360.0" style="Table7">
<tr>
<td>
<para style="terp_tblheader_Details_Centre">Tax</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">Base</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">Amount</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">
<font color="white"> </font>
</para>
</td>
</tr>
</blockTable>
<para style="terp_default_1">
<font color="white"> </font>
</para>
<section>
<para style="terp_default_8">[[ repeatIn(o.tax_line,'t') ]]</para>
<blockTable colWidths="54.0,61.0,67.0,357.0" style="Table8">
<tr>
<td>
<para style="terp_default_Centre_8">[[ t.name ]]</para>
</td>
<td>
<para style="terp_default_Right_8">[[ formatLang(t.base) ]]</para>
</td>
<td>
<para style="terp_default_Right_8">[[ (t.tax_code_id and t.tax_code_id.notprintable) and removeParentNode('blockTable') or '' ]] [[ formatLang(t.amount) ]]</para>
</td>
<td>
<para style="terp_default_Right_8">
<font color="white"> </font>
</para>
</td>
</tr>
</blockTable>
<para style="terp_default_1">
<font color="white"> </font>
</para>
</section>
<para style="terp_default_space">
<font color="white"> </font>
</para>
<blockTable colWidths="539.0" style="Table_Coment_Payment_Term">
<tr>
<td>
<para style="terp_default_9">[[ format(o.comment or removeParentNode('blockTable')) ]]</para>
</td>
</tr>
</blockTable>
<para style="terp_default_1">
<font color="white"> </font>
</para>
<blockTable colWidths="539.0" style="Table_Payment_Terms">
<tr>
<td>
<para style="terp_default_9">[[ format((o.payment_term and o.payment_term.note) or removeParentNode('blockTable')) ]]</para>
</td>
</tr>
</blockTable>
<para style="Standard">
<font color="white"> </font>
</para>
</story>
</document>

View File

@ -131,14 +131,14 @@ class account_invoice_with_message(report_sxw.rml_parse):
res['price_subtotal']=''
res['currency']=''
elif entry.state=='line':
res['quantity']='___________________'
res['price_unit']='______________________'
res['discount']='____________________________________'
res['tax_types']='_____________________'
res['quantity']='_______________'
res['price_unit']='______________'
res['discount']='____________'
res['tax_types']='____________________'
res['uos']='_____'
res['name']='______________________________________'
res['price_subtotal']='___________'
res['currency']='_'
res['name']='_______________________________________________'
res['price_subtotal']='____________'
res['currency']='____'
elif entry.state=='break':
res['type']=entry.state
res['name']=entry.name

View File

@ -1,272 +1,540 @@
<?xml version="1.0"?>
<document filename="test.pdf">
<template pageSize="(595.0,842.0)" title="Test" author="Martin Simon" allowSplitting="20">
<pageTemplate id="first">
<frame id="first" x1="34.0" y1="28.0" width="527" height="786"/>
</pageTemplate>
</template>
<stylesheet>
<blockTableStyle id="Standard_Outline">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Tableau2">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Tableau6">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,0" stop="0,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="1,0" stop="1,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="2,0" stop="2,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="3,0" stop="3,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="4,0" stop="4,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="5,0" stop="5,-1"/>
</blockTableStyle>
<blockTableStyle id="Tableau7">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,0" stop="-1,0"/>
<lineStyle kind="LINEABOVE" colorName="#ffffff" start="0,1" stop="-1,1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,1" stop="-1,1"/>
<lineStyle kind="LINEABOVE" colorName="#ffffff" start="0,2" stop="-1,-1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,2" stop="-1,-1"/>
</blockTableStyle>
<blockTableStyle id="Tableau8">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Tableau3">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Tableau4">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,0" stop="0,0"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="1,0" stop="1,0"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="2,0" stop="2,0"/>
<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"/>
</blockTableStyle>
<blockTableStyle id="Tableau5">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="0,0" stop="2,0"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="0,2" stop="2,2"/>
</blockTableStyle>
<initialize>
<paraStyle name="all" alignment="justify"/>
</initialize>
<paraStyle name="P1" fontName="Helvetica" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P2" fontName="Helvetica" alignment="LEFT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P3" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P4" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P4a" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P5" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P6" fontName="Helvetica" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P7" fontName="Helvetica" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P7a" fontName="Helvetica" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P8" fontName="Helvetica-Bold" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0" />
<paraStyle name="P8b" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="0.0"/>
<paraStyle name="P8a" fontName="Helvetica" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0" />
<paraStyle name="P9" fontName="Times-Italic" fontSize="8.0" leading="10" spaceBefore="0.0" spaceAfter="3.0"/>
<paraStyle name="P10" fontName="Helvetica-Bold" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P11" fontName="Helvetica-Bold" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P11a" fontName="Helvetica" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P12" fontName="Helvetica-Bold" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P13" fontName="Helvetica-Bold" alignment="LEFT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P14" fontName="Helvetica" fontSize="12.0" leading="13" alignment="LEFT"/>
<paraStyle name="P15" fontName="Helvetica" fontSize="12.0" leading="13" alignment="CENTER"/>
<paraStyle name="P16" fontName="Helvetica" fontSize="14.0" leading="15" alignment="LEFT"/>
<paraStyle name="P17" fontName="Helvetica" fontSize="9.0" leading="11"/>
<paraStyle name="P18" fontName="Helvetica" fontSize="9.0" leading="11"/>
<paraStyle name="P19" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT"/>
<paraStyle name="P20" fontName="Helvetica" fontSize="6.0" leading="4" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P21" fontName="Helvetica-Bold" fontSize="8.0" leading="8" alignment="LEFT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P22" fontName="Helvetica-Bold" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P23" fontName="Helvetica" fontSize="14.0" leading="15" alignment="LEFT"/>
<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" alignment="CENTER" spaceBefore="2.0" spaceAfter="3.0" leading="10"/>
<paraStyle name="Table Contents1" fontName="Helvetica" alignment="RIGHT" spaceBefore="2.0" spaceAfter="3.0" leading="10"/>
<paraStyle name="Table Heading" fontName="Helvetica" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Caption" fontName="Helvetica" fontSize="9.0" leading="11" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="Index" fontName="Helvetica"/>
<paraStyle name="terp_default_Note" rightIndent="0.0" leftIndent="9.0" fontName="Helvetica-Oblique" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
</stylesheet>
<images/>
<story>
<para style="P1">[[ repeatIn(objects,'o') ]]</para>
<para style="P1">[[ setLang(o.partner_id.lang) ]]</para>
<blockTable colWidths="295.0,232.0" style="Tableau2">
<tr>
<td><para style="P2"><font color="white"> </font></para></td>
<td>
<para style="Standard">[[ o.partner_id.title or '' ]] [[ o.partner_id.name ]]</para>
<para style="Standard">[[ o.address_invoice_id.title or '' ]] [[ o.address_invoice_id.name ]]</para>
<para style="Standard">[[ o.address_invoice_id.street ]]</para>
<para style="Standard">[[ o.address_invoice_id.street2 or '' ]]</para>
<para style="Standard">[[ o.address_invoice_id.zip or '' ]] [[ o.address_invoice_id.city or '' ]]</para>
<para style="Standard">[[ o.address_invoice_id.state_id and o.address_invoice_id.state_id.name or '' ]]</para>
<para style="Standard">[[ o.address_invoice_id.country_id and o.address_invoice_id.country_id.name or '' ]]</para>
<para style="Standard">
<font color="white"> </font>
</para>
<para style="Standard">Tel.&#xA0;: [[ o.address_invoice_id.phone or removeParentNode('para') ]]</para>
<para style="Standard">Fax&#xA0;: [[ o.address_invoice_id.fax or removeParentNode('para') ]]</para>
<para style="Standard">VAT&#xA0;: [[ o.partner_id.vat or removeParentNode('para') ]]</para>
</td>
</tr>
</blockTable>
<para style="P8b">
<font color="white"> </font>
</para>
<para style="P23">Invoice [[ ((o.type == 'out_invoice' and (o.state == 'open' or o.state == 'paid')) or removeParentNode('para')) and '' ]] [[ o.number ]]</para>
<para style="P23">PRO-FORMA [[ ((o.type == 'out_invoice' and o.state == 'proforma') or removeParentNode('para')) and '' ]]</para>
<para style="P23">Draft Invoice [[ ((o.type == 'out_invoice' and o.state == 'draft') or removeParentNode('para')) and '' ]]</para>
<para style="P23">Cancelled Invoice [[ ((o.type == 'out_invoice' and o.state == 'cancel') or removeParentNode('para')) and '' ]] [[ o.number ]]</para>
<para style="P23">Refund [[ (o.type=='out_refund' or removeParentNode('para')) and '' ]] [[ o.number ]]</para>
<para style="P23">Supplier Refund [[ (o.type=='in_refund' or removeParentNode('para')) and '' ]] [[ o.number ]]</para>
<para style="P16"><font>Supplier Invoice [[ (o.type=='in_invoice' or removeParentNode('para')) and '' ]]</font><font>[[ o.number ]]</font></para>
<para style="P8b">
<font color="white"> </font>
</para>
<para style="P17"><font>Document:</font><font>[[o.name]]</font></para>
<para style="P8b"><font color="white"> </font></para>
<para style="P17"><font>Invoice Date: </font><font>[[ formatLang(o.date_invoice,date=True) ]]</font></para>
<para style="P18"><font>Customer Ref:</font> [[ o.address_invoice_id.partner_id.ref or '/' ]]</para>
<para style="P8b"><font color="white"> </font></para>
<blockTable colWidths="274.0,62.0,70.0,67.0,68.0" style="Tableau6">
<tr>
<td><para style="P3">Description / Taxes</para></td>
<td><para style="P3">Quantity</para></td>
<td><para style="P4">Unit Price</para></td>
<td><para style="P4">Disc. (%)</para></td>
<td><para style="P3">Price</para></td>
</tr>
</blockTable>
<section>
<para style="P20">[[ repeatIn(invoice_lines(o), 'a') ]]</para>
<blockTable colWidths="0.0,240.0,77.5,41.0,39.0,50.0,79.0" style="Tableau7">
<tr>
<td><para style="P8">[[ a['type']=='text' and removeParentNode('blockTable')]]</para></td>
<td><para style="P8a">[[ (a['type']=='title' or a['type']=='subtotal') and ( setTag('para','para',{'fontName':'Helvetica-bold'})) ]][[ a['name'] ]] / ( [[ a['tax_types'] ]] )</para></td>
<td><para style="P7a">[[ a['type']=='subtotal' and ( setTag('para','para',{'fontName':'Helvetica-bold'})) ]][[ a['quantity'] ]]</para></td>
<td><para style="P5">[[ a['uos'] ]]</para></td>
<td><para style="P7">[[ a['type']=='subtotal' and ( setTag('para','para',{'fontName':'Helvetica-bold'})) ]][[ a['price_unit'] ]]</para></td>
<td><para style="P7">[[ a['type']=='subtotal' and ( setTag('para','para',{'fontName':'Helvetica-bold'})) ]][[ a['discount'] ]]</para></td>
<td><para style="P7">[[ a['type']=='subtotal' and ( setTag('para','para',{'fontName':'Helvetica-bold'})) ]]<font>[[ a['price_subtotal'] ]]</font><font> [[ a['currency'] ]]</font></para></td>
</tr>
<tr>
<td><para style="P8"><font color="white"></font></para></td>
<td><para style="terp_default_Note">Note : [[ format(a['note']) or removeParentNode('tr') ]]</para></td>
<td><para style="Table Contents"><font color="white"></font></para></td>
<td><para><font color="white"></font></para></td>
<td><para style="P7"><font color="white"></font></para></td>
<td><para style="Table Contents1"><font color="white"></font></para></td>
<td><para style="Table Contents"><font color="white"></font></para></td>
</tr>
</blockTable>
<blockTable colWidths="453.0,74.0" style="Tableau8">
<tr>
<td><para style="Table Contents">[[ a['type']=='text' and format(a['name']) or removeParentNode('blockTable') ]]</para></td>
<td><para style="P8">[[ a['type']=='text' and '' ]]</para></td>
</tr>
</blockTable>
<pageBreak>[[ a['type']!='break' and removeParentNode('pageBreak')]]</pageBreak>
<blockTable colWidths="274.0,62.0,70.0,67.0,68.0" style="Tableau6">
<tr>
<td><para style="P3">Description/Taxes [[ a['type']!='break' and removeParentNode('blockTable')]]</para></td>
<td><para style="P4">Quantity</para></td>
<td><para style="P4">Unit Price</para></td>
<td><para style="P4">Disc. (%)</para></td>
<td><para style="P3">Price</para></td>
</tr>
</blockTable>
</section>
<blockTable colWidths="321.0,210.0" style="Tableau3">
<tr>
<td>
<blockTable colWidths="100.0,73.0,100.0" style="Tableau8">
<tr>
<td><para style="P10"><font color="white"></font></para></td>
<td><para style="P8"><font color="white"></font></para></td>
<td><para style="P8"><font color="white"></font></para></td>
</tr>
<tr>
<td><para style="P11a"><font color="white"></font></para></td>
<td><para style="P11"><font color="white"></font></para></td>
<td><para style="P11"><font color="white"></font></para></td>
</tr>
</blockTable>
</td>
<td>
<blockTable colWidths="110.0,90.0" style="Tableau5">
<tr>
<td><para style="P13">Total (Excl. taxes):</para></td>
<td><para style="P12"><u>[[ '%.2f' % o.amount_untaxed ]] [[o.currency_id.code ]]</u></para></td>
</tr>
<tr>
<td><para style="P13">Taxes:</para></td>
<td><para style="P11a">[[ '%.2f' % o.amount_tax ]] [[o.currency_id.code ]]</para></td>
</tr>
<tr>
<td><para style="P13">Total <font>(Incl. taxes):</font></para></td>
<td><para style="P12"><u>[[ '%.2f' % o.amount_total ]] [[o.currency_id.code ]]</u></para></td>
</tr>
</blockTable>
</td>
</tr>
</blockTable>
<blockTable colWidths="251.0,290.0" style="Tableau3">
<tr>
<td>
<blockTable colWidths="81.0,73.0,65.0" style="Tableau4">
<tr>
<td><para style="P10">Tax</para></td>
<td><para style="P8">Base</para></td>
<td><para style="P8">Amount</para></td>
</tr>
<tr>
<td><para style="P10"><font>[[ repeatIn(o.tax_line,'t') ]]</font><font>[[ t.name ]]</font></para></td>
<td><para style="P11">[[ '%.2f' % t.base ]]</para></td>
<td><para style="P11">[[ '%.2f' % t.amount]]</para></td>
</tr>
</blockTable>
</td>
<td>
<blockTable colWidths="81.0,73.0,65.0" style="Tableau8">
<tr>
<td><para style="P10"><font color="white"></font></para></td>
<td><para style="P8"><font color="white"></font></para></td>
<td><para style="P8"><font color="white"></font></para></td>
</tr>
<tr>
<td><para style="P11a"><font color="white"></font></para></td>
<td><para style="P11"><font color="white"></font></para></td>
<td><para style="P11"><font color="white"></font></para></td>
</tr>
</blockTable>
</td>
</tr>
</blockTable>
<para style="P8b">
<font color="white"> </font>
</para>
<para style="P19">[[ format(o.comment) or removeParentNode('para') ]]</para>
<para style="P19">[[ format(o.payment_term and o.payment_term.note) or removeParentNode('para') ]]</para>
<para style="P8b">
<font color="white"> </font>
</para>
<section>
<para style="P19">[[ repeatIn((spcl_msg(data['form']) and spcl_msg(data['form']).splitlines()) or [], 'note') ]]</para>
<para style="P19">[[ format(note) or removeParentNode('para') ]]</para>
</section>
</story>
<template pageSize="(595.0,842.0)" title="Test" author="Martin Simon" allowSplitting="20">
<pageTemplate id="first">
<frame id="first" x1="28.0" y1="28.0" width="539" height="786"/>
</pageTemplate>
</template>
<stylesheet>
<blockTableStyle id="Standard_Outline">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Tableau2">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table_Invoice_General_Header">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="0,0" stop="0,-1"/>
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="0,0" stop="0,0"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="1,0" stop="1,-1"/>
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="1,0" stop="1,0"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="2,0" stop="2,-1"/>
<lineStyle kind="LINEAFTER" colorName="#e6e6e6" start="2,0" stop="2,-1"/>
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="2,0" stop="2,0"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
</blockTableStyle>
<blockTableStyle id="Table_General_Detail_Content">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="0,0" stop="0,-1"/>
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="0,0" stop="0,0"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="1,0" stop="1,-1"/>
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="1,0" stop="1,0"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="2,0" stop="2,-1"/>
<lineStyle kind="LINEAFTER" colorName="#e6e6e6" start="2,0" stop="2,-1"/>
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="2,0" stop="2,0"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
</blockTableStyle>
<blockTableStyle id="Tableau6">
<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"/>
</blockTableStyle>
<blockTableStyle id="Table_Invoice_Line_Content">
<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"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="5,-1" stop="5,-1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="6,-1" stop="6,-1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="7,-1" stop="7,-1"/>
</blockTableStyle>
<blockTableStyle id="Table1">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table2">
<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"/>
</blockTableStyle>
<blockTableStyle id="Tableau3">
<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>
<blockTableStyle id="Table4">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table6">
<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>
<blockTableStyle id="Table7">
<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"/>
</blockTableStyle>
<blockTableStyle id="Table8">
<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"/>
</blockTableStyle>
<blockTableStyle id="Table_Coment_Payment_Term">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table_Payment_Terms">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table3">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<initialize>
<paraStyle name="all" alignment="justify"/>
</initialize>
<paraStyle name="P1" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="3.0" spaceAfter="0.0"/>
<paraStyle name="P2" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="3.0" spaceAfter="0.0"/>
<paraStyle name="P3" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.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="Heading" fontName="Helvetica" fontSize="12.0" leading="15" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="15.0" leading="19" 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_default_Bold_9" fontName="Helvetica-Bold" fontSize="9.0" leading="11" 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_tblheader_General" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_General_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_Centre_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_tblheader_Details" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="Footer" fontName="Times-Roman"/>
<paraStyle name="Horizontal Line" fontName="Times-Roman" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="14.0"/>
<paraStyle name="Heading 9" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_General_Right" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.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_header_Right" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_header_Centre" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.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_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_1" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Right_9_Bold" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_8_Italic" fontName="Helvetica-Oblique" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="Drawing" fontName="Times-Roman" fontSize="10.0" leading="13" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="Header" fontName="Times-Roman"/>
<paraStyle name="Endnote" rightIndent="0.0" leftIndent="14.0" fontName="Times-Roman" fontSize="10.0" leading="13"/>
<paraStyle name="Addressee" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="3.0"/>
<paraStyle name="Signature" fontName="Times-Roman"/>
<paraStyle name="Heading 8" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Heading 7" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Heading 6" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Heading 5" fontName="Helvetica-Bold" fontSize="85%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Heading 4" fontName="Helvetica-BoldOblique" fontSize="85%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Heading 1" fontName="Helvetica-Bold" fontSize="115%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Heading 10" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Heading 2" fontName="Helvetica-BoldOblique" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="First line indent" rightIndent="0.0" leftIndent="0.0" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Hanging indent" rightIndent="0.0" leftIndent="28.0" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Salutation" fontName="Times-Roman"/>
<paraStyle name="Text body indent" rightIndent="0.0" leftIndent="0.0" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Heading 3" fontName="Helvetica-Bold" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="List Indent" rightIndent="0.0" leftIndent="142.0" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Marginalia" rightIndent="0.0" leftIndent="113.0" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_space" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="3.0" spaceAfter="0.0"/>
<paraStyle name="terp_tblheader_Detail_another" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Note" rightIndent="0.0" leftIndent="9.0" fontName="Helvetica-Oblique" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_2" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
</stylesheet>
<images/>
<story>
<para style="terp_default_8">[[ repeatIn(objects,'o') ]]</para>
<para style="terp_default_8">[[ setLang(o.partner_id.lang) ]]</para>
<blockTable colWidths="302.0,237.0" style="Tableau2">
<tr>
<td>
<para style="terp_default_9">
<font color="white"> </font>
</para>
</td>
<td>
<para style="terp_default_9">[[ o.partner_id.title or '' ]] [[ o.partner_id.name ]]</para>
<para style="terp_default_9">[[ o.address_invoice_id.title or '' ]] [[ o.address_invoice_id.name ]]</para>
<para style="terp_default_9">[[ o.address_invoice_id.street ]]</para>
<para style="terp_default_9">[[ o.address_invoice_id.street2 or '' ]]</para>
<para style="terp_default_9">[[ o.address_invoice_id.zip or '' ]] [[ o.address_invoice_id.city or '' ]]</para>
<para style="terp_default_9">[[ o.address_invoice_id.state_id and o.address_invoice_id.state_id.name or '' ]]</para>
<para style="terp_default_9">[[ o.address_invoice_id.country_id and o.address_invoice_id.country_id.name or '' ]]</para>
<para style="terp_default_9">
<font color="white"> </font>
</para>
<para style="terp_default_9">Tel. : [[ o.address_invoice_id.phone or removeParentNode('para') ]]</para>
<para style="terp_default_9">Fax : [[ o.address_invoice_id.fax or removeParentNode('para') ]]</para>
<para style="terp_default_9">VAT : [[ o.partner_id.vat or removeParentNode('para') ]]</para>
</td>
</tr>
</blockTable>
<para style="terp_default_space">
<font color="white"> </font>
</para>
<para style="terp_header">Invoice [[ ((o.type == 'out_invoice' and (o.state == 'open' or o.state == 'paid')) or removeParentNode('para')) and '' ]] [[ o.number ]]</para>
<para style="terp_header">PRO-FORMA [[ ((o.type == 'out_invoice' and o.state == 'proforma2') or removeParentNode('para')) and '' ]]</para>
<para style="terp_header">Draft Invoice [[ ((o.type == 'out_invoice' and o.state == 'draft') or removeParentNode('para')) and '' ]]</para>
<para style="terp_header">Cancelled Invoice [[ ((o.type == 'out_invoice' and o.state == 'cancel') or removeParentNode('para')) and '' ]] [[ o.number ]]</para>
<para style="terp_header">Refund [[ (o.type=='out_refund' or removeParentNode('para')) and '' ]] [[ o.number ]]</para>
<para style="terp_header">Supplier Refund [[ (o.type=='in_refund' or removeParentNode('para')) and '' ]] [[ o.number ]]</para>
<para style="P3">Supplier Invoice [[ (o.type=='in_invoice' or removeParentNode('para')) and '' ]] [[ o.number ]]</para>
<para style="terp_default_space">
<font color="white"> </font>
</para>
<para style="P2">
<font color="white"> </font>
</para>
<blockTable colWidths="180.0,179.0,180.0" style="Table_Invoice_General_Header">
<tr>
<td>
<para style="terp_tblheader_General_Centre">Document</para>
</td>
<td>
<para style="terp_tblheader_General_Centre">Invoice Date</para>
</td>
<td>
<para style="terp_tblheader_General_Centre">Partner Ref.</para>
</td>
</tr>
</blockTable>
<blockTable colWidths="179.0,179.0,180.0" style="Table_General_Detail_Content">
<tr>
<td>
<para style="terp_default_Centre_9">[[ o.name ]]</para>
</td>
<td>
<para style="terp_default_Centre_9">[[ formatLang(o.date_invoice,date=True) ]]</para>
</td>
<td>
<para style="terp_default_Centre_9">[[ o.address_invoice_id.partner_id.ref or '' ]]</para>
</td>
</tr>
</blockTable>
<para style="Standard">
<font color="white"> </font>
</para>
<blockTable colWidths="284.0,64.0,64.0,52.0,75.0" style="Tableau6">
<tr>
<td>
<para style="terp_tblheader_Details">Description / Taxes</para>
</td>
<td>
<para style="terp_tblheader_Details_Centre">Quantity</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">Unit Price</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">Disc. (%)</para>
</td>
<td>
<para style="terp_tblheader_Details_Centre">Price</para>
</td>
</tr>
</blockTable>
<section>
<para style="terp_default_8">[[ repeatIn(invoice_lines(o), 'a') ]]</para>
<blockTable colWidths="4.0,280.0,44.0,21.0,66.0,53.0,51.0,19.0" style="Table_Invoice_Line_Content">
<tr>
<td>
<para style="terp_default_9">[[ a['type']=='text' and removeParentNode('blockTable')]]</para>
</td>
<td>
<para style="terp_default_9">[[ (a['type']=='title' or a['type']=='subtotal') and ( setTag('para','para',{'fontName':'Helvetica-bold'})) ]][[ a['name'] ]] [[ a['type']=='article' and ('/ (' + a['tax_types'] +')' ) ]]</para>
</td>
<td>
<para style="terp_default_Right_9">[[ a['type']=='subtotal' and ( setTag('para','para',{'fontName':'Helvetica-bold'})) ]][[ a['quantity'] ]]</para>
</td>
<td>
<para style="terp_default_Right_9">[[ a['uos'] ]]</para>
</td>
<td>
<para style="terp_default_Right_9">[[ a['type']=='subtotal' and ( setTag('para','para',{'fontName':'Helvetica-bold'})) ]][[ a['price_unit'] ]]</para>
</td>
<td>
<para style="terp_default_Centre_9">[[ a['type']=='subtotal' and ( setTag('para','para',{'fontName':'Helvetica-bold'})) ]][[ a['discount'] ]]</para>
</td>
<td>
<para style="terp_default_Right_9">[[ a['type']=='subtotal' and ( setTag('para','para',{'fontName':'Helvetica-bold'})) ]] [[ a['price_subtotal'] ]]</para>
</td>
<td>
<para style="terp_default_Right_9">[[ a['currency'] ]]</para>
</td>
</tr>
<tr>
<td>
<para style="terp_default_Note">
<font color="white"> </font>
</para>
</td>
<td>
<para style="terp_default_Note">Note: [[ format(a['note']) or removeParentNode('tr') ]]</para>
<para style="terp_default_Note">
<font color="white"> </font>
</para>
</td>
<td>
<para style="terp_default_Note">
<font color="white"> </font>
</para>
</td>
<td>
<para style="terp_default_Note">
<font color="white"> </font>
</para>
</td>
<td>
<para style="terp_default_Note">
<font color="white"> </font>
</para>
</td>
<td>
<para style="terp_default_Note">
<font color="white"> </font>
</para>
</td>
<td>
<para style="terp_default_Note">
<font color="white"> </font>
</para>
</td>
<td>
<para style="terp_default_Note">
<font color="white"> </font>
</para>
</td>
</tr>
</blockTable>
<para style="terp_default_1">
<font color="white"> </font>
</para>
<blockTable colWidths="4.0,278.0,257.0" style="Table1">
<tr>
<td>
<para style="terp_default_9">
<font color="white"> </font>
</para>
</td>
<td>
<para style="terp_default_9">[[ a['type']=='text' and format(a['name']) or removeParentNode('blockTable') ]]</para>
</td>
<td>
<para style="terp_default_9">[[ a['type']=='text' and '' ]]</para>
</td>
</tr>
</blockTable>
<pageBreak>[[ a['type']!='break' and removeParentNode('pageBreak')]]</pageBreak>
<blockTable colWidths="284.0,64.0,64.0,52.0,75.0" style="Table2">
<tr>
<td>
<para style="terp_tblheader_Details">Description / Taxes [[ a['type']!='break' and removeParentNode('blockTable')]]</para>
</td>
<td>
<para style="terp_tblheader_Details_Centre">Quantity</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">Unit Price</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">Disc. (%)</para>
</td>
<td>
<para style="terp_tblheader_Details_Centre">Price</para>
</td>
</tr>
</blockTable>
<para style="terp_default_1"/>
</section>
<para style="terp_default_1">
<font color="white"> </font>
</para>
<blockTable colWidths="405.0,59.0,54.0,20.0" style="Tableau3">
<tr>
<td>
<para style="terp_default_9">
<font color="white"> </font>
</para>
</td>
<td>
<para style="terp_default_Bold_9">Net Total:</para>
</td>
<td>
<para style="terp_default_Right_9">[[ formatLang(o.amount_untaxed) ]]</para>
</td>
<td>
<para style="terp_default_Right_9">[[ o.currency_id.code ]]</para>
</td>
</tr>
</blockTable>
<para style="terp_default_1">
<font color="white"> </font>
</para>
<blockTable colWidths="405.0,59.0,54.0,20.0" style="Table4">
<tr>
<td>
<para style="terp_default_9">
<font color="white"> </font>
</para>
</td>
<td>
<para style="terp_default_Bold_9">Taxes:</para>
</td>
<td>
<para style="terp_default_Right_9">[[ formatLang(o.amount_tax) ]]</para>
</td>
<td>
<para style="terp_default_Right_9">[[ o.currency_id.code ]]</para>
</td>
</tr>
</blockTable>
<para style="terp_default_1">
<font color="white"> </font>
</para>
<blockTable colWidths="405.0,59.0,54.0,20.0" style="Table6">
<tr>
<td>
<para style="terp_default_9">
<font color="white"> </font>
</para>
</td>
<td>
<para style="terp_default_Bold_9">Total:</para>
</td>
<td>
<para style="terp_default_Right_9">[[ formatLang(o.amount_total) ]]</para>
</td>
<td>
<para style="terp_default_Right_9">[[ o.currency_id.code ]]</para>
</td>
</tr>
</blockTable>
<para style="P1">
<font color="white"> </font>
</para>
<para style="terp_default_9">
<font color="white"> </font>
</para>
<blockTable colWidths="57.0,61.0,60.0,360.0" style="Table7">
<tr>
<td>
<para style="terp_tblheader_Details_Centre">Tax</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">Base</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">Amount</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">
<font color="white"> </font>
</para>
</td>
</tr>
</blockTable>
<para style="terp_default_1">
<font color="white"> </font>
</para>
<section>
<para style="terp_default_8">[[ repeatIn(o.tax_line,'t') ]]</para>
<blockTable colWidths="54.0,61.0,67.0,357.0" style="Table8">
<tr>
<td>
<para style="terp_default_Centre_8">[[ t.name ]]</para>
</td>
<td>
<para style="terp_default_Right_8">[[ formatLang(t.base) ]]</para>
</td>
<td>
<para style="terp_default_Right_8">[[ (t.tax_code_id and t.tax_code_id.notprintable) and removeParentNode('blockTable') or '' ]] [[ formatLang(t.amount) ]]</para>
</td>
<td>
<para style="terp_default_Right_8">
<font color="white"> </font>
</para>
</td>
</tr>
</blockTable>
<para style="terp_default_1">
<font color="white"> </font>
</para>
</section>
<para style="terp_default_space">
<font color="white"> </font>
</para>
<blockTable colWidths="539.0" style="Table_Coment_Payment_Term">
<tr>
<td>
<para style="terp_default_9">[[ format(o.comment or removeParentNode('blockTable')) ]]</para>
</td>
</tr>
</blockTable>
<para style="terp_default_1">
<font color="white"> </font>
</para>
<blockTable colWidths="539.0" style="Table_Payment_Terms">
<tr>
<td>
<para style="terp_default_9">[[ format((o.payment_term and o.payment_term.note) or removeParentNode('blockTable')) ]]</para>
</td>
</tr>
</blockTable>
<para style="terp_default_1">
<font color="white"> </font>
</para>
<blockTable colWidths="539.0" style="Table3">
<tr>
<td>
<para style="terp_default_9">[[ repeatIn((spcl_msg(data['form']) and spcl_msg(data['form']).splitlines()) or [], 'note') ]]</para>
<para style="terp_default_9">[[ note or removeParentNode('para') ]]</para>
</td>
</tr>
</blockTable>
<para style="terp_default_9">
<font color="white"> </font>
</para>
</story>
</document>

View File

@ -40,10 +40,10 @@
"update_xml" : [
"voucher_sequence.xml",
"account_view.xml",
"account_report.xml",
"voucher_wizard.xml",
"voucher_view.xml",
"account_view.xml",
],
'certificate': '0037580727101',
"active": False,

View File

@ -219,17 +219,7 @@ class AccountMove(osv.osv):
_inherit = "account.move"
_columns = {
'name':fields.char('Name', size=256, required=True, readonly=True, states={'draft':[('readonly',False)]}),
'voucher_type': fields.selection([
('pay_voucher','Cash Payment Voucher'),
('bank_pay_voucher','Bank Payment Voucher'),
('rec_voucher','Cash Receipt Voucher'),
('bank_rec_voucher','Bank Receipt Voucher'),
('cont_voucher','Contra Voucher'),
('journal_sale_vou','Journal Sale Voucher'),
('journal_pur_voucher','Journal Purchase Voucher'),
('journal_voucher','Journal Voucher'),
],'Voucher Type', readonly=True, select=True, states={'draft':[('readonly',False)]}),
'narration':fields.text('Narration'),
'narration':fields.text('Narration', readonly=True, select=True, states={'draft':[('readonly',False)]}),
}
AccountMove()

View File

@ -1,26 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record model="ir.ui.view" id="account_move_inherit">
<field name="name">account.move.type.form.inherit1</field>
<record model="ir.ui.view" id="account_move_inherit_new">
<field name="name">account.move.type.form.inherit2</field>
<field name="inherit_id" ref="account.view_move_form"/>
<field name="model">account.move</field>
<field name="type">form</field>
<field name="arch" type="xml">
<field name="journal_id" position="after">
<field name="voucher_type" groups="base.group_extended" select="2"/>
</field>
</field>
</record>
<record model="ir.ui.view" id="account_move_inherit_new">
<field name="name">account.move.type.form.inherit2</field>
<field name="inherit_id" ref="account_move_inherit"/>
<field name="model">account.move</field>
<field name="type">form</field>
<field name="arch" type="xml">
<field name="line_id" position="replace">
<field colspan="4" default_get="{'lines':line_id ,'journal':journal_id }" name="line_id" nolabel="1" widget="one2many_list" height="275">
<field colspan="4" default_get="{'lines':line_id ,'journal':journal_id }" name="line_id" nolabel="1" widget="one2many_list" height="250">
<form string="Account Entry Line">
<separator colspan="4" string="General Information"/>
<field name="name" select="1"/>
@ -120,7 +108,7 @@
</field>
</record>
<!-- sub_currency -->
<!-- sub_currency -->
<record model="ir.ui.view" id="sub_currency_form">
<field name="name">sub.currency.form</field>
<field name="inherit_id" ref="base.view_currency_form" />

View File

@ -915,7 +915,8 @@ class res_partner(osv.osv):
except:
return False
if len(vat) == 10:
if len(vat) >= 2 and len(vat) <= 10:
vat = (10 - len(vat)) * '0' + vat
sum = 7 * int(vat[0]) + 5 * int(vat[1]) + 3 * int(vat[2]) + \
2 * int(vat[3]) + 1 * int(vat[4]) + 7 * int(vat[5]) + \
5 * int(vat[6]) + 3 * int(vat[7]) + 2 * int(vat[8])

View File

@ -348,6 +348,7 @@
<field name="name">crm.case.form</field>
<field name="model">crm.case</field>
<field name="type">form</field>
<field name="priority" eval="1"/>
<field name="arch" type="xml">
<form string="Cases">
<field colspan="4" name="name" select="1"/>
@ -501,7 +502,7 @@
</record>
<record id="crm_case_section_open_act" model="ir.actions.act_window">
<field name="name">crm.case.section.open</field>
<field name="name">Cases</field>
<field name="res_model">crm.case</field>
<field name="domain">[('section_id','child_of',[active_id])]</field>
<field name="view_type">form</field>

View File

@ -164,7 +164,7 @@
<record id="process_transition_action_reufse0" model="process.transition.action">
<field eval="&quot;&quot;&quot;holidays_refuse&quot;&quot;&quot;" name="action"/>
<field eval="&quot;&quot;&quot;object&quot;&quot;&quot;" name="state"/>
<field eval="&quot;&quot;&quot;Reufse&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Refuse&quot;&quot;&quot;" name="name"/>
<field name="transition_id" ref="process_transition_refusedrequest0"/>
</record>

View File

@ -266,7 +266,7 @@ class Partner(osv.osv):
s = 3
if s==4:
for mline in partner_data.member_lines:
if mline.date_from < today and mline.date_to < today and mline.date_from<=mline.date_to and mline.account_invoice_line.invoice_id.state == 'paid':
if mline.date_from < today and mline.date_to < today and mline.date_from<=mline.date_to and (mline.account_invoice_line and mline.account_invoice_line.invoice_id.state) == 'paid':
s = 5
else:
s = 6

View File

@ -128,7 +128,7 @@ class mrp_routing_workcenter(osv.osv):
'cycle_nbr': fields.float('Number of Cycle', required=True,
help="Time in hours for doing one cycle."),
'hour_nbr': fields.float('Number of Hours', required=True, help="Cost per hour"),
'routing_id': fields.many2one('mrp.routing', 'Parent Routing', select=True,
'routing_id': fields.many2one('mrp.routing', 'Parent Routing', select=True, ondelete='cascade',
help="routing indicates all the workcenters used, for how long and/or cycles." \
"If Routing is indicated then,the third tab of a production order (workcenters) will be automatically pre-completed."),
'note': fields.text('Description')

View File

@ -328,8 +328,8 @@ class mrp_operations_operation(osv.osv):
if not i: continue
if code_lst[i-1] not in ('resume','start'):
continue
a = datetime.datetime.strptime(time_lst[i-1],'%Y:%m:%d %H:%M:%S')
b = datetime.datetime.strptime(time_lst[i],'%Y:%m:%d %H:%M:%S')
a = datetime.datetime.strptime(time_lst[i-1],'%Y-%m-%d %H:%M:%S')
b = datetime.datetime.strptime(time_lst[i],'%Y-%m-%d %H:%M:%S')
diff += (b-a).days * 24
diff += (b-a).seconds / (60*60)
return diff

View File

@ -92,7 +92,7 @@
<para style="terp_default_8">[[ setLang(o.user_id.context_lang) ]]</para>
<para style="terp_header_Centre">[[o.user_id.company_id.name]]</para>
<para style="terp_default_Centre_9">[[ address and address.street ]], [[ address and address.zip ]] [[ address and address.city ]]</para>
<para style="terp_default_Centre_9">Tel : + 32 (0) 2 231 04 35</para>
<para style="terp_default_Centre_9">Tel : [[ address and address.phone ]]</para>
<para style="terp_default_Centre_9">Fax : [[ address and address.fax ]]</para>
<para style="terp_default_Centre_9">E-mail : [[ address and address.email ]]</para>
<para style="terp_default_Centre_9">
@ -158,18 +158,17 @@
</td>
</tr>
</blockTable>
<blockTable colWidths="105.0,78.0" style="Table_Amount">
<tr>
<td>
<para style="terp_default_2">[[ repeatIn(o.payments,'d') ]]</para>
<para style="terp_default_Bold_9_Right1">[[ d.journal_id.name ]]:</para>
</td>
<td>
<para style="terp_default_Bold_9_Right2">[[ d.amount ]]</para>
</td>
</tr>
</blockTable>
<blockTable colWidths="105.0,78.0" style="Table_Amount">
<tr>
<td>
<para style="terp_default_2">[[ repeatIn(o.payments,'d') or removeParentNode('blockTable') ]]</para>
<para style="terp_default_Bold_9_Right1">[[ d.journal_id.name ]]:</para>
</td>
<td>
<para style="terp_default_Bold_9_Right2">[[ d.amount ]]</para>
</td>
</tr>
</blockTable>
<para style="terp_default_2">
<font color="white"> </font>
</para>

View File

@ -326,9 +326,14 @@ class task(osv.osv):
# Override view according to the company definition
#
def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
res = super(task, self).fields_view_get(cr, uid, view_id, view_type, context, toolbar=toolbar, submenu=submenu)
tm = self.pool.get('res.users').browse(cr, uid, uid, context).company_id.project_time_mode_id
if not tm:
tm = self.pool.get('res.users').browse(cr, uid, uid, context).company_id.project_time_mode or False
f = self.pool.get('res.company').fields_get(cr, uid, ['project_time_mode'], context)
word = 'Hours'
if tm:
word = dict(f['project_time_mode']['selection'])[tm]
res = super(task, self).fields_view_get(cr, uid, view_id, view_type, context, toolbar, submenu=submenu)
if (not tm) or (tm=='hours'):
return res
tm = tm.name
f = self.pool.get('res.company').fields_get(cr, uid, ['project_time_mode_id'], context)

View File

@ -180,15 +180,15 @@ class purchase_order(osv.osv):
"Manual: no invoice will be pre-generated. The accountant will have to encode manually."
),
'minimum_planned_date':fields.function(_minimum_planned_date, fnct_inv=_set_minimum_planned_date, method=True,store=True, string='Planned Date', type='datetime', help="This is computed as the minimum scheduled date of all purchase order lines' products."),
'amount_untaxed': fields.function(_amount_all, method=True, string='Untaxed Amount',
'amount_untaxed': fields.function(_amount_all, method=True, digits=(16, int(config['price_accuracy'])), string='Untaxed Amount',
store={
'purchase.order.line': (_get_order, None, 10),
}, multi="sums"),
'amount_tax': fields.function(_amount_all, method=True, string='Taxes',
'amount_tax': fields.function(_amount_all, method=True, digits=(16, int(config['price_accuracy'])), string='Taxes',
store={
'purchase.order.line': (_get_order, None, 10),
}, multi="sums"),
'amount_total': fields.function(_amount_all, method=True, string='Total',
'amount_total': fields.function(_amount_all, method=True, digits=(16, int(config['price_accuracy'])), string='Total',
store={
'purchase.order.line': (_get_order, None, 10),
}, multi="sums"),

View File

@ -232,19 +232,19 @@ class sale_order(osv.osv):
fnct_search=_invoiced_search, type='boolean'),
'note': fields.text('Notes'),
'amount_untaxed': fields.function(_amount_all, method=True, string='Untaxed Amount',
'amount_untaxed': fields.function(_amount_all, method=True, digits=(16, int(config['price_accuracy'])), string='Untaxed Amount',
store = {
'sale.order': (lambda self, cr, uid, ids, c={}: ids, ['order_line'], 10),
'sale.order.line': (_get_order, ['price_unit', 'tax_id', 'discount', 'product_uom_qty'], 10),
},
multi='sums'),
'amount_tax': fields.function(_amount_all, method=True, string='Taxes',
'amount_tax': fields.function(_amount_all, method=True, digits=(16, int(config['price_accuracy'])), string='Taxes',
store = {
'sale.order': (lambda self, cr, uid, ids, c={}: ids, ['order_line'], 10),
'sale.order.line': (_get_order, ['price_unit', 'tax_id', 'discount', 'product_uom_qty'], 10),
},
multi='sums'),
'amount_total': fields.function(_amount_all, method=True, string='Total',
'amount_total': fields.function(_amount_all, method=True, digits=(16, int(config['price_accuracy'])), string='Total',
store = {
'sale.order': (lambda self, cr, uid, ids, c={}: ids, ['order_line'], 10),
'sale.order.line': (_get_order, ['price_unit', 'tax_id', 'discount', 'product_uom_qty'], 10),

View File

@ -130,13 +130,19 @@ class stock_picking(osv.osv):
for invoice in invoice_obj.browse(cursor, user, invoice_ids,
context=context):
invoices[invoice.id] = invoice
for picking in picking_obj.browse(cursor, user, picking_ids,
context=context):
if not picking.sale_id:
continue
sale_lines = picking.sale_id.order_line
invoice_created = invoices[result[picking.id]]
if picking.sale_id.client_order_ref:
inv_name = picking.sale_id.client_order_ref + " : " + invoice_created.name
invoice_obj.write(cursor, user, [invoice_created.id], {'name': inv_name}, context=context)
for sale_line in sale_lines:
if sale_line.product_id.type == 'service' and sale_line.invoiced == False:
if group:

View File

@ -56,6 +56,8 @@ class report_stock(report_int):
dt_to = now
names = dict(pooler.get_pool(cr.dbname).get('product.product').name_get(cr, uid, product_ids))
for name in names:
names[name] = names[name].encode('utf8')
products = {}
prods = pooler.get_pool(cr.dbname).get('stock.location')._product_all_get(cr, uid, location_id, product_ids)

View File

@ -767,6 +767,11 @@ class stock_picking(osv.osv):
tax_ids = self._get_taxes_invoice(cursor, user, move_line, type)
account_analytic_id = self._get_account_analytic_invoice(cursor,
user, picking, move_line)
#set UoS if it's a sale and the picking doesn't have one
uos_id = move_line.product_uos and move_line.product_uos.id or False
if not uos_id and type in ('out_invoice', 'out_refund'):
uos_id = move_line.product_uom.id
account_id = self.pool.get('account.fiscal.position').map_account(cursor, user, partner.property_account_position, account_id)
notes = False
@ -779,7 +784,7 @@ class stock_picking(osv.osv):
'name': name,
'origin': origin,
'invoice_id': invoice_id,
'uos_id': move_line.product_uos.id,
'uos_id': uos_id,
'product_id': move_line.product_id.id,
'account_id': account_id,
'price_unit': price_unit,
@ -1056,15 +1061,38 @@ class stock_move(osv.osv):
'message': 'You are moving %.2f products but only %.2f available in this lot.' % (product_qty, prodlot.stock_available or 0.0)
}
return {'warning': warning}
def onchange_quantity(self, cr, uid, ids, product_id, product_qty, product_uom, product_uos):
result = {
'product_uos_qty': 0.00
}
if (not product_id) or (product_qty <=0.0):
return {'value': result}
product_obj = self.pool.get('product.product')
uos_coeff = product_obj.read(cr, uid, product_id, ['uos_coeff'])
if product_uos and product_uom and (product_uom != product_uos):
result['product_uos_qty'] = product_qty * uos_coeff['uos_coeff']
else:
result['product_uos_qty'] = product_qty
return {'value': result}
def onchange_product_id(self, cr, uid, ids, prod_id=False, loc_id=False, loc_dest_id=False):
if not prod_id:
return {}
product = self.pool.get('product.product').browse(cr, uid, [prod_id])[0]
uos_id = product.uos_id and product.uos_id.id or False
result = {
'name': product.name,
'name': product.partner_ref,
'product_uom': product.uom_id.id,
'product_uos': uos_id,
'product_qty': 1.00,
'product_uos_qty' : self.pool.get('stock.move').onchange_quantity(cr, uid, ids, prod_id, 1.00, product.uom_id.id, uos_id)['value']['product_uos_qty']
}
if loc_id:
result['location_id'] = loc_id
if loc_dest_id:

View File

@ -231,7 +231,7 @@
# Lot composition (history)
#
<record id="stock_move_tree" model="ir.ui.view">
<field name="name">stock.move.tree2</field>
<field name="name">Stock Moves</field>
<field name="model">stock.move</field>
<field name="type">tree</field>
<field name="field_parent">move_history_ids</field>
@ -253,7 +253,7 @@
</record>
<record id="stock_move_tree2" model="ir.ui.view">
<field name="name">stock.move.tree2</field>
<field name="name">Stock Moves</field>
<field name="model">stock.move</field>
<field name="type">tree</field>
<field name="field_parent">move_history_ids2</field>
@ -538,9 +538,9 @@
<field name="location_id" select="1" domain="[('usage','=','internal')]"/>
<field name="location_dest_id" select="1" domain="[('usage','=','internal')]"/>
<field colspan="4" context="location=location_id" name="product_id" on_change="onchange_product_id(product_id, location_id, location_dest_id)" select="1"/>
<field name="product_qty" select="1"/>
<field name="product_qty" select="1" on_change="onchange_quantity(product_id, product_qty, product_uom, product_uos)"/>
<field name="product_uom" select="1"/>
<field groups="product.group_uos" name="product_uos"/>
<field groups="product.group_uos" name="product_uos" on_change="onchange_quantity(product_id, product_qty, product_uom, product_uos)"/>
<field groups="product.group_uos" name="product_uos_qty"/>
<field colspan="4" invisible="1" name="name" select="1"/>
<field invisible="1" name="date"/>
@ -637,9 +637,9 @@
<field name="location_id" select="1" domain="[('usage','=','internal')]"/>
<field name="location_dest_id" select="1" domain="[('usage','&lt;&gt;','view')]"/>
<field colspan="4" context="location=location_id" name="product_id" on_change="onchange_product_id(product_id, location_id, location_dest_id)" select="1"/>
<field name="product_qty" select="1"/>
<field name="product_qty" select="1" on_change="onchange_quantity(product_id, product_qty, product_uom, product_uos)"/>
<field name="product_uom" select="1"/>
<field groups="product.group_uos" name="product_uos"/>
<field groups="product.group_uos" name="product_uos" on_change="onchange_quantity(product_id, product_qty, product_uom, product_uos)"/>
<field groups="product.group_uos" name="product_uos_qty"/>
<field colspan="4" invisible="1" name="name" select="1"/>
<field invisible="1" name="date"/>
@ -849,9 +849,9 @@
<field name="location_id" select="1" domain="[('usage','=','internal')]"/>
<field name="location_dest_id" select="1" domain="[('usage','&lt;&gt;','view')]"/>
<field colspan="4" context="location=location_id" name="product_id" on_change="onchange_product_id(product_id, location_id, location_dest_id)" select="1"/>
<field name="product_qty" select="1"/>
<field name="product_qty" select="1" on_change="onchange_quantity(product_id, product_qty, product_uom, product_uos)" />
<field name="product_uom" select="1"/>
<field groups="product.group_uos" name="product_uos"/>
<field groups="product.group_uos" name="product_uos" on_change="onchange_quantity(product_id, product_qty, product_uom, product_uos)"/>
<field groups="product.group_uos" name="product_uos_qty"/>
<field colspan="4" invisible="1" name="name" select="1"/>
<field invisible="1" name="date"/>
@ -1042,9 +1042,9 @@
<field name="location_id" select="1" domain="[('usage','&lt;&gt;','view')]"/>
<field domain="[('usage','=','internal')]" name="location_dest_id" select="1"/>
<field colspan="4" context="location=location_id" name="product_id" on_change="onchange_product_id(product_id, location_id, location_dest_id)" select="1"/>
<field name="product_qty" select="1"/>
<field name="product_qty" select="1" on_change="onchange_quantity(product_id, product_qty, product_uom, product_uos)"/>
<field name="product_uom" select="1"/>
<field groups="product.group_uos" name="product_uos"/>
<field groups="product.group_uos" name="product_uos" on_change="onchange_quantity(product_id, product_qty, product_uom, product_uos)"/>
<field groups="product.group_uos" name="product_uos_qty"/>
<field colspan="4" invisible="1" name="name" select="1"/>
<field groups="base.group_extended" name="date_planned"/>
@ -1246,7 +1246,7 @@
<tree color="grey:state=='cancel'" string="Moves">
<field name="name"/>
<field name="product_id"/>
<field name="product_qty"/>
<field name="product_qty" on_change="onchange_quantity(product_id, product_qty, product_uom, product_uos)"/>
<field name="product_uom" string="UOM"/>
<field name="picking_id" select="1"/>
<field name="prodlot_id"/>
@ -1271,8 +1271,9 @@
<field name="location_id" select="1"/>
<field name="location_dest_id" select="1"/>
<field colspan="4" name="product_id" select="1"/>
<field name="product_qty" select="2"/>
<field name="product_qty" select="2" on_change="onchange_quantity(product_id, product_qty, product_uom, product_uos)"/>
<field name="product_uom" select="2"/>
<field name="product_uos" select="2"/>
<field colspan="4" name="name" select="2"/>
<field name="date"/>
<field name="date_planned"/>

View File

@ -27,6 +27,7 @@ import pooler
import wizard
from osv import osv
import tools
from tools.translate import _
_moves_arch = UpdateableStr()
_moves_fields = UpdateableDict()
@ -63,7 +64,7 @@ def _get_moves(self, cr, uid, data, context):
_moves_arch_lst.append('<field name="move%s" />' % (m.id,))
_moves_fields['move%s' % m.id] = {
'string': '%s - %s' % (_to_xml(m.product_id.code or '/'), _to_xml(m.product_id.name)),
'string': _to_xml(m.name),
'type' : 'float', 'required' : True, 'default' : make_default(quantity)}
if (pick.type == 'in') and (m.product_id.cost_method == 'average'):

View File

@ -46,7 +46,7 @@ def _get_returns(self, cr, uid, data, context):
for m in [line for line in pick.move_lines]:
quantity=m.product_qty
arch_lst.append('<field name="return%s"/>\n<newline/>' % (m.id,))
fields['return%s' % m.id]={'string':m.product_id.name, 'type':'float', 'required':True, 'default':make_default(quantity)}
fields['return%s' % m.id]={'string':m.name, 'type':'float', 'required':True, 'default':make_default(quantity)}
res.setdefault('returns', []).append(m.id)
arch_lst.append('<field name="invoice_state"/>\n<newline/>')
if pick.invoice_state=='invoiced':

View File

@ -39,6 +39,12 @@ class subscription_document(osv.osv):
_defaults = {
'active' : lambda *a: True,
}
def write(self, cr, uid, ids, vals, context=None):
if 'model' in vals:
raise osv.except_osv(_('Error !'),_('You cannot modify the Object linked to the Document Type!\nCreate another Document instead !'))
return super(subscription_document, self).write(cr, uid, ids, vals, context=context)
subscription_document()
class subscription_document_fields(osv.osv):

View File

@ -78,7 +78,7 @@ class sale_order(osv.osv):
warning['title'] = title and title +' & '+ result['warning']['title'] or result['warning']['title']
warning['message'] = message and message + ' ' + result['warning']['message'] or result['warning']['message']
return {'value': result['value'], 'warning':warning}
return {'value': result.get('value',{}), 'warning':warning}
sale_order()
@ -106,7 +106,7 @@ class purchase_order(osv.osv):
warning['title'] = title and title +' & '+ result['warning']['title'] or result['warning']['title']
warning['message'] = message and message + ' ' + result['warning']['message'] or result['warning']['message']
return {'value': result['value'], 'warning':warning}
return {'value': result.get('value',{}), 'warning':warning}
purchase_order()
@ -145,7 +145,7 @@ class account_invoice(osv.osv):
warning['title'] = title and title +' & '+ result['warning']['title'] or result['warning']['title']
warning['message'] = message and message + ' ' + result['warning']['message'] or result['warning']['message']
return {'value': result['value'], 'warning':warning}
return {'value': result.get('value',{}), 'warning':warning}
account_invoice()
@ -173,7 +173,7 @@ class stock_picking(osv.osv):
warning['title'] = title and title +' & '+ result['warning']['title'] or result['warning']['title']
warning['message'] = message and message + ' ' + result['warning']['message'] or result['warning']['message']
return {'value': result['value'], 'warning':warning}
return {'value': result.get('value',{}), 'warning':warning}
stock_picking()
@ -228,7 +228,7 @@ class sale_order_line(osv.osv):
warning['title'] = title and title +' & '+result['warning']['title'] or result['warning']['title']
warning['message'] = message and message +'\n\n'+result['warning']['message'] or result['warning']['message']
return {'value': result['value'], 'warning':warning}
return {'value': result.get('value',{}), 'warning':warning}
sale_order_line()
@ -259,7 +259,7 @@ class purchase_order_line(osv.osv):
warning['title'] = title and title +' & '+result['warning']['title'] or result['warning']['title']
warning['message'] = message and message +'\n\n'+result['warning']['message'] or result['warning']['message']
return {'value': result['value'], 'warning':warning}
return {'value': result.get('value',{}), 'warning':warning}
purchase_order_line()