← Back to team overview

openerp-community-reviewer team mailing list archive

[Merge] lp:~camptocamp/sale-reports/vre-sale_order_proformat into lp:sale-reports

 

Vincent Renaville@camptocamp has proposed merging lp:~camptocamp/sale-reports/vre-sale_order_proformat into lp:sale-reports.

Requested reviews:
  Sale Core Editors (sale-core-editors)

For more details, see:
https://code.launchpad.net/~camptocamp/sale-reports/vre-sale_order_proformat/+merge/223563

Hello,

This add a report for proforma required for the customs.

Thanks,

Vincent
-- 
https://code.launchpad.net/~camptocamp/sale-reports/vre-sale_order_proformat/+merge/223563
Your team OpenERP Community Reviewer/Maintainer is subscribed to branch lp:sale-reports.
=== added directory 'sale_order_proforma_webkit'
=== added file 'sale_order_proforma_webkit/__init__.py'
--- sale_order_proforma_webkit/__init__.py	1970-01-01 00:00:00 +0000
+++ sale_order_proforma_webkit/__init__.py	2014-06-18 13:58:46 +0000
@@ -0,0 +1,21 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+#   Copyright (c) 2014 Camptocamp SA (http://www.camptocamp.com)
+#   @author Romain Deheele ,Vincent Renaville 
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU Affero General Public License as
+#    published by the Free Software Foundation, either version 3 of the
+#    License, or (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU Affero General Public License for more details.
+#
+#    You should have received a copy of the GNU Affero General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+from . import report

=== added file 'sale_order_proforma_webkit/__openerp__.py'
--- sale_order_proforma_webkit/__openerp__.py	1970-01-01 00:00:00 +0000
+++ sale_order_proforma_webkit/__openerp__.py	2014-06-18 13:58:46 +0000
@@ -0,0 +1,43 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+#   Copyright (c) 2014 Camptocamp SA (http://www.camptocamp.com)
+#     @author Romain Deheele ,Vincent Renaville 
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU Affero General Public License as
+#    published by the Free Software Foundation, either version 3 of the
+#    License, or (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU Affero General Public License for more details.
+#
+#    You should have received a copy of the GNU Affero General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+{'name': 'Sales Order ProFormat Report using Webkit Library',
+ 'version': '1.1.1',
+ 'category': 'Reports/Webkit',
+ 'description': """
+Sale order webkit
+#################
+
+* Add a sale proforma report in webkit .
+
+Depends on base_header_webkit community addon available here:
+`https://launchpad.net/webkit-utils <https://launchpad.net/webkit-utils>`_
+    """,
+ 'author': 'Camptocamp',
+ 'website': 'http://www.camptocamp.com',
+ 'depends': ['base', 'report_webkit', 'base_headers_webkit', 'sale'],
+ 'data': ['report.xml',
+          ],
+ 'demo_xml': [],
+ 'test': [],
+ 'installable': True,
+ 'active': False,
+ }

=== added directory 'sale_order_proforma_webkit/i18n'
=== added file 'sale_order_proforma_webkit/i18n/en.po'
--- sale_order_proforma_webkit/i18n/en.po	1970-01-01 00:00:00 +0000
+++ sale_order_proforma_webkit/i18n/en.po	2014-06-18 13:58:46 +0000
@@ -0,0 +1,114 @@
+#. module: sale_report_proforma
+#: report:addons/sale_report_proforma/report/sale_proforma.mako:301
+msgid "Thank you for your prompt payment"
+msgstr "Thank you for your prompt payment"
+
+ 
+#. module: sale_report_proforma
+#: report:addons/sale_report_proforma/report/sale_proforma.mako:218
+msgid "Responsible"
+msgstr "Responsible"
+
+#. module: sale_report_proforma
+#: report:addons/sale_report_proforma/report/sale_proforma.mako:211
+msgid "Subject : "
+msgstr "Subject : "
+
+ 
+#. module: sale_report_proforma
+#: report:addons/sale_report_proforma/report/sale_proforma.mako:243
+msgid "Unit Price"
+msgstr "Unit Price"
+
+ 
+#. module: sale_report_proforma
+#: report:addons/sale_report_proforma/report/sale_proforma.mako:245
+msgid "Disc.(%)"
+msgstr "Disc.(%)"
+
+#. module: sale_report_proforma
+#: report:addons/sale_report_proforma/report/sale_proforma.mako:208
+msgid "PRO-FORMA"
+msgstr "PRO-FORMA"
+
+#. module: sale_report_proforma
+#: report:addons/sale_report_proforma/report/sale_proforma.mako:280
+msgid "Taxes:"
+msgstr "Taxes:"
+
+ 
+#. module: sale_report_proforma
+#: report:addons/sale_report_proforma/report/sale_proforma.mako:240
+msgid "Description"
+msgstr "Description"
+
+#. module: sale_report_proforma
+#: report:addons/sale_report_proforma/report/sale_proforma.mako:220
+msgid "Our reference"
+msgstr "Our reference"
+
+ 
+#. module: sale_report_proforma
+#: report:addons/sale_report_proforma/report/sale_proforma.mako:216
+msgid "Invoice Date"
+msgstr "Invoice Date"
+
+ 
+#. module: sale_report_proforma
+#: report:addons/sale_report_proforma/report/sale_proforma.mako:217
+msgid "Due Date"
+msgstr "Due Date"
+
+ 
+#. module: sale_report_proforma
+#: report:addons/sale_report_proforma/report/sale_proforma.mako:242
+msgid "UoM"
+msgstr "UoM"
+
+#. module: sale_report_proforma
+#: report:addons/sale_report_proforma/report/sale_proforma.mako:244
+msgid "Taxes"
+msgstr "Taxes"
+
+ 
+#. module: sale_report_proforma
+#: report:addons/sale_report_proforma/report/sale_proforma.mako:187
+msgid "Shipping address:"
+msgstr "Shipping address:"
+
+ 
+#. module: sale_report_proforma
+#: report:addons/sale_report_proforma/report/sale_proforma.mako:288
+msgid "Total:"
+msgstr "Total:"
+
+ 
+#. module: sale_report_proforma
+#: report:addons/sale_report_proforma/report/sale_proforma.mako:219
+msgid "Payment Term"
+msgstr "Payment Term"
+
+#. module: sale_report_proforma
+#: report:addons/sale_report_proforma/report/sale_proforma.mako:241
+msgid "Qty"
+msgstr "Qty"
+
+ 
+
+#. module: sale_report_proforma
+#: report:addons/sale_report_proforma/report/sale_proforma.mako:205
+msgid "Identification number : "
+msgstr "Identification number : "
+
+ 
+#. module: sale_report_proforma
+#: report:addons/sale_report_proforma/report/sale_proforma.mako:246
+msgid "Net Sub Total"
+msgstr "Net Sub Total"
+
+ 
+#. module: sale_report_proforma
+#: report:addons/sale_report_proforma/report/sale_proforma.mako:272
+msgid "Net :"
+msgstr "Net :"
+

=== added file 'sale_order_proforma_webkit/i18n/fr.po'
--- sale_order_proforma_webkit/i18n/fr.po	1970-01-01 00:00:00 +0000
+++ sale_order_proforma_webkit/i18n/fr.po	2014-06-18 13:58:46 +0000
@@ -0,0 +1,116 @@
+#. module: sale_order_proforma_webkit
+#: report:addons/sale_order_proforma_webkit/report/template/sale_proforma.mako:301
+msgid "Thank you for your prompt payment"
+msgstr "Avec nos remerciements"
+
+
+#. module: sale_order_proforma_webkit
+#: report:addons/sale_order_proforma_webkit/report/template/sale_proforma.mako:218
+msgid "Responsible"
+msgstr "Responsable"
+
+#. module: sale_order_proforma_webkit
+#: report:addons/sale_order_proforma_webkit/report/template/sale_proforma.mako:211
+msgid "Subject : "
+msgstr "Description : "
+
+
+#. module: sale_order_proforma_webkit
+#: report:addons/sale_order_proforma_webkit/report/template/sale_proforma.mako:243
+msgid "Unit Price"
+msgstr "Prix unitaire"
+
+
+#. module: sale_order_proforma_webkit
+#: report:addons/sale_order_proforma_webkit/report/template/sale_proforma.mako:245
+#, fuzzy
+msgid "Disc.(%)"
+msgstr "Rem.(%)"
+
+#. module: sale_order_proforma_webkit
+#: report:addons/sale_order_proforma_webkit/report/template/account_invoice.mako:233
+#: report:addons/sale_order_proforma_webkit/report/template/sale_proforma.mako:208
+msgid "PRO-FORMA"
+msgstr "PRO-FORMA"
+
+#. module: sale_order_proforma_webkit
+#: report:addons/sale_order_proforma_webkit/report/template/sale_proforma.mako:280
+msgid "Taxes:"
+msgstr "Taxes :"
+
+
+#. module: sale_order_proforma_webkit
+#: report:addons/sale_order_proforma_webkit/report/template/sale_proforma.mako:240
+msgid "Description"
+msgstr "Description"
+
+#. module: sale_order_proforma_webkit
+#: report:addons/sale_order_proforma_webkit/report/template/sale_proforma.mako:220
+msgid "Our reference"
+msgstr "Notre référence"
+
+
+#. module: sale_order_proforma_webkit
+#: report:addons/sale_order_proforma_webkit/report/template/sale_proforma.mako:216
+msgid "Invoice Date"
+msgstr "Date de facturation"
+
+
+#. module: sale_order_proforma_webkit
+#: report:addons/sale_order_proforma_webkit/report/template/sale_proforma.mako:217
+msgid "Due Date"
+msgstr "Echéance"
+
+
+#. module: sale_order_proforma_webkit
+#: report:addons/sale_order_proforma_webkit/report/template/sale_proforma.mako:242
+msgid "UoM"
+msgstr "UdM"
+
+#. module: sale_order_proforma_webkit
+#: report:addons/sale_order_proforma_webkit/report/template/sale_proforma.mako:244
+msgid "Taxes"
+msgstr "Taxes"
+
+
+#. module: sale_order_proforma_webkit
+#: report:addons/sale_order_proforma_webkit/report/template/sale_proforma.mako:187
+msgid "Shipping address:"
+msgstr "Adresse de livraison :"
+
+
+#. module: sale_order_proforma_webkit
+#: report:addons/sale_order_proforma_webkit/report/template/sale_proforma.mako:288
+msgid "Total:"
+msgstr "Total :"
+
+
+#. module: sale_order_proforma_webkit
+#: report:addons/sale_order_proforma_webkit/report/template/sale_proforma.mako:219
+msgid "Payment Term"
+msgstr "Condition de règlement"
+
+#. module: sale_order_proforma_webkit
+#: report:addons/sale_order_proforma_webkit/report/template/sale_proforma.mako:241
+msgid "Qty"
+msgstr "Quantité"
+
+
+
+#. module: sale_order_proforma_webkit
+#: report:addons/sale_order_proforma_webkit/report/template/sale_proforma.mako:205
+msgid "Identification number : "
+msgstr "Numéro d'identification : "
+
+
+#. module: sale_order_proforma_webkit
+#: report:addons/sale_order_proforma_webkit/report/template/sale_proforma.mako:246
+msgid "Net Sub Total"
+msgstr "Sous total"
+
+
+#. module: sale_order_proforma_webkit
+#: report:addons/sale_order_proforma_webkit/report/template/sale_proforma.mako:272
+msgid "Net :"
+msgstr "HT :"
+

=== added file 'sale_order_proforma_webkit/i18n/sale_order_proforma_webkit.pot'
--- sale_order_proforma_webkit/i18n/sale_order_proforma_webkit.pot	1970-01-01 00:00:00 +0000
+++ sale_order_proforma_webkit/i18n/sale_order_proforma_webkit.pot	2014-06-18 13:58:46 +0000
@@ -0,0 +1,114 @@
+#. module: sale_report_proforma_webkit
+#: report:addons/sale_report_proforma_webkit/report/sale_proforma.mako:301
+msgid "Thank you for your prompt payment"
+msgstr ""
+
+
+#. module: sale_report_proforma_webkit
+#: report:addons/sale_report_proforma_webkit/report/sale_proforma.mako:218
+msgid "Responsible"
+msgstr ""
+
+#. module: sale_report_proforma_webkit
+#: report:addons/sale_report_proforma_webkit/report/sale_proforma.mako:211
+msgid "Subject : "
+msgstr ""
+
+
+#. module: sale_report_proforma_webkit
+#: report:addons/sale_report_proforma_webkit/report/sale_proforma.mako:243
+msgid "Unit Price"
+msgstr ""
+
+
+#. module: sale_report_proforma_webkit
+#: report:addons/sale_report_proforma_webkit/report/sale_proforma.mako:245
+msgid "Disc.(%)"
+msgstr ""
+
+#. module: sale_report_proforma_webkit
+#: report:addons/sale_report_proforma_webkit/report/sale_proforma.mako:208
+msgid "PRO-FORMA"
+msgstr ""
+
+#. module: sale_report_proforma_webkit
+#: report:addons/sale_report_proforma_webkit/report/sale_proforma.mako:280
+msgid "Taxes:"
+msgstr ""
+
+
+#. module: sale_report_proforma_webkit
+#: report:addons/sale_report_proforma_webkit/report/sale_proforma.mako:240
+msgid "Description"
+msgstr ""
+
+#. module: sale_report_proforma_webkit
+#: report:addons/sale_report_proforma_webkit/report/sale_proforma.mako:220
+msgid "Our reference"
+msgstr ""
+
+
+#. module: sale_report_proforma_webkit
+#: report:addons/sale_report_proforma_webkit/report/sale_proforma.mako:216
+msgid "Invoice Date"
+msgstr ""
+
+
+#. module: sale_report_proforma_webkit
+#: report:addons/sale_report_proforma_webkit/report/sale_proforma.mako:217
+msgid "Due Date"
+msgstr ""
+
+
+#. module: sale_report_proforma_webkit
+#: report:addons/sale_report_proforma_webkit/report/sale_proforma.mako:242
+msgid "UoM"
+msgstr ""
+
+#. module: sale_report_proforma_webkit
+#: report:addons/sale_report_proforma_webkit/report/sale_proforma.mako:244
+msgid "Taxes"
+msgstr ""
+
+
+#. module: sale_report_proforma_webkit
+#: report:addons/sale_report_proforma_webkit/report/sale_proforma.mako:187
+msgid "Shipping address:"
+msgstr ""
+
+
+#. module: sale_report_proforma_webkit
+#: report:addons/sale_report_proforma_webkit/report/sale_proforma.mako:288
+msgid "Total:"
+msgstr ""
+
+
+#. module: sale_report_proforma_webkit
+#: report:addons/sale_report_proforma_webkit/report/sale_proforma.mako:219
+msgid "Payment Term"
+msgstr ""
+
+#. module: sale_report_proforma_webkit
+#: report:addons/sale_report_proforma_webkit/report/sale_proforma.mako:241
+msgid "Qty"
+msgstr ""
+
+
+
+#. module: sale_report_proforma_webkit
+#: report:addons/sale_report_proforma_webkit/report/sale_proforma.mako:205
+msgid "Identification number : "
+msgstr ""
+
+
+#. module: sale_report_proforma_webkit
+#: report:addons/sale_report_proforma_webkit/report/sale_proforma.mako:246
+msgid "Net Sub Total"
+msgstr ""
+
+
+#. module: sale_report_proforma_webkit
+#: report:addons/sale_report_proforma_webkit/report/sale_proforma.mako:272
+msgid "Net :"
+msgstr ""
+

=== added directory 'sale_order_proforma_webkit/report'
=== added file 'sale_order_proforma_webkit/report.xml'
--- sale_order_proforma_webkit/report.xml	1970-01-01 00:00:00 +0000
+++ sale_order_proforma_webkit/report.xml	2014-06-18 13:58:46 +0000
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<openerp>
+    <data>
+
+        <report id="sale_sale_proforma"
+                model="sale.order"
+                name="sale.proforma"
+                auto="False"
+                file="sale_order_proforma_webkit/report/sale_proforma.mako"
+                string="Pro Forma"
+                webkit_header="base_headers_webkit.base_reports_portrait_header"
+                report_type="webkit"/>
+
+        <record id="property_sale_proforma_webkit" model="ir.property">
+            <field name="name">webkit_header</field>
+            <field eval="0" name="company_id"/>
+            <field name="fields_id" ref="report_webkit.field_ir_act_report_xml_webkit_header"/>
+            <field eval="'ir.header_webkit,'+str(ref('base_headers_webkit.base_reports_portrait_header'))" model="ir.header_webkit" name="value"/>
+            <field eval="'ir.actions.report.xml,'+str(ref('sale_order_proforma_webkit.sale_sale_proforma'))" model="ir.actions.report.xml" name="res_id"/>
+        </record>
+
+    </data>
+</openerp>

=== added file 'sale_order_proforma_webkit/report/sale_proforma.mako'
--- sale_order_proforma_webkit/report/sale_proforma.mako	1970-01-01 00:00:00 +0000
+++ sale_order_proforma_webkit/report/sale_proforma.mako	2014-06-18 13:58:46 +0000
@@ -0,0 +1,414 @@
+<html>
+<head>
+    <style type="text/css">
+        ${css}
+
+.list_main_table {
+    border:thin solid #E3E4EA;
+    text-align:center;
+    border-collapse: collapse;
+}
+table.list_main_table {
+    margin-top: 20px;
+}
+.list_main_headers {
+    padding: 0;
+}
+.list_main_headers th {
+    border: thin solid #000000;
+    padding-right:3px;
+    padding-left:3px;
+    background-color: #EEEEEE;
+    text-align:center;
+    font-size:12;
+    font-weight:bold;
+}
+.list_main_table td {
+    padding-right:3px;
+    padding-left:3px;
+    padding-top:3px;
+    padding-bottom:3px;
+}
+.list_main_lines,
+.list_main_footers {
+    padding: 0;
+}
+.list_main_footers {
+    padding-top: 15px;
+}
+.list_main_lines td,
+.list_main_footers td,
+.list_main_footers th {
+    border-style: none;
+    text-align:left;
+    font-size:12;
+    padding:0;
+}
+.list_main_footers th {
+    text-align:right;
+}
+
+td .total_empty_cell {
+    width: 77%;
+}
+td .total_sum_cell {
+    width: 13%;
+}
+
+.nobreak {
+    page-break-inside: avoid;
+}
+caption.formatted_note {
+    text-align:left;
+    border-right:thin solid #EEEEEE;
+    border-left:thin solid #EEEEEE;
+    border-top:thin solid #EEEEEE;
+    padding-left:10px;
+    font-size:11;
+    caption-side: bottom;
+}
+caption.formatted_note p {
+    margin: 0;
+}
+
+.main_col1 {
+    width: 40%;
+}
+td.main_col1 {
+    text-align:left;
+}
+.main_col2,
+.main_col3,
+.main_col4,
+.main_col6 {
+    width: 10%;
+}
+.main_col5 {
+    width: 7%;
+}
+td.main_col5 {
+    text-align: center;
+    font-style:italic;
+    font-size: 10;
+}
+.main_col7 {
+    width: 13%;
+}
+
+.list_bank_table {
+    text-align:center;
+    border-collapse: collapse;
+    page-break-inside: avoid;
+    display:table;
+}
+
+.act_as_row {
+   display:table-row;
+}
+.list_bank_table th {
+    background-color: #EEEEEE;
+    text-align:left;
+    font-size:12;
+    font-weight:bold;
+    padding-right:3px;
+    padding-left:3px;
+}
+.list_bank_table td {
+    text-align:left;
+    font-size:12;
+    padding-right:3px;
+    padding-left:3px;
+    padding-top:3px;
+    padding-bottom:3px;
+}
+
+
+.list_tax_table {
+}
+.list_tax_table td {
+    text-align:left;
+    font-size:12;
+}
+.list_tax_table th {
+}
+.list_tax_table thead {
+    display:table-header-group;
+}
+
+
+.list_total_table {
+    border:thin solid #E3E4EA;
+    text-align:center;
+    border-collapse: collapse;
+}
+.list_total_table td {
+    border-top : thin solid #EEEEEE;
+    text-align:left;
+    font-size:12;
+    padding-right:3px;
+    padding-left:3px;
+    padding-top:3px;
+    padding-bottom:3px;
+}
+.list_total_table th {
+    background-color: #EEEEEE;
+    border: thin solid #000000;
+    text-align:center;
+    font-size:12;
+    font-weight:bold;
+    padding-right:3px
+    padding-left:3px
+}
+.list_total_table thead {
+    display:table-header-group;
+}
+
+
+.no_bloc {
+    border-top: thin solid  #ffffff ;
+}
+
+.right_table {
+    right: 4cm;
+    width:"100%";
+}
+
+.std_text {
+    font-size:12;
+}
+
+tfoot.totals tr:first-child td{
+    padding-top: 15px;
+}
+
+th.date {
+    width: 90px;
+}
+
+td.amount, th.amount {
+    text-align: right;
+    white-space: nowrap;
+}
+.header_table {
+    text-align: center;
+    border: 1px solid lightGrey;
+    border-collapse: collapse;
+}
+.header_table th {
+    font-size: 12px;
+    border: 1px solid lightGrey;
+}
+.header_table td {
+    font-size: 12px;
+    border: 1px solid lightGrey;
+}
+
+td.date {
+    white-space: nowrap;
+    width: 90px;
+}
+
+td.vat {
+    white-space: nowrap;
+}
+.address .recipient {
+    font-size: 12px;
+    position: absolute;
+    left: 101mm;
+    width: 83mm;
+}
+.address .shipping {
+    margin-left: 0px;
+    margin-right: 500px;
+}
+
+    </style>
+</head>
+<body>
+    <%page expression_filter="entity"/>
+    <%
+    def carriage_returns(text):
+        return text.replace('\n', '<br />')
+    %>
+
+    <%def name="address(partner, commercial_partner=None)">
+        <%doc>
+            XXX add a helper for address in report_webkit module as this won't be suported in v8.0
+        </%doc>
+        <% company_partner = False %>
+        %if commercial_partner:
+            %if commercial_partner.id != partner.id:
+                <% company_partner = commercial_partner %>
+            %endif
+        %elif partner.parent_id:
+            <% company_partner = partner.parent_id %>
+        %endif
+
+        %if company_partner:
+            <tr><td class="name">${company_partner.name or ''}</td></tr>
+            <tr><td>${partner.title and partner.title.name or ''} ${partner.name}</td></tr>
+            <% address_lines = partner.contact_address.split("\n")[1:] %>
+        %else:
+            <tr><td class="name">${partner.title and partner.title.name or ''} ${partner.name}</td></tr>
+            <% address_lines = partner.contact_address.split("\n") %>
+        %endif
+        %for part in address_lines:
+            % if part:
+                <tr><td>${part}</td></tr>
+            % endif
+        %endfor
+    </%def>
+
+    %for inv in objects:
+    <% setLang(inv.partner_id.lang) %>
+    <div class="address">
+        <table class="recipient">
+          ${address(partner=inv.partner_id)}
+        </table>
+      %if inv.partner_shipping_id:
+        <table class="shipping">
+          <tr><td class="address_title">${_("Shipping address:")}</td></tr>
+          ${address(partner=inv.partner_shipping_id)}
+        </table>
+      %endif
+    </div>
+    <p class="std_text">
+        ${_("Identification number : ")} ${inv.partner_id.vat or ''}
+    </p>
+    <h1 style="clear: both; padding-top: 20px;">
+            ${_("PRO-FORMA")} ${inv.name or ''}
+    </h1>
+    <h3  style="clear: both; padding-top: 20px;">
+        ${_("Subject : ")} ${inv.client_order_ref or ''}
+    </h3>
+
+    <table class="basic_table" width="100%">
+        <tr>
+            <th class="date">${_("Invoice Date")}</td>
+            <th class="date">${_("Due Date")}</td>
+            <th style="text-align:center;width:120px;">${_("Responsible")}</td>
+            <th style="text-align:center">${_("Payment Term")}</td>
+            <th style="text-align:center">${_("Our reference")}</td>
+        </tr>
+        <tr>
+            <td class="date">${formatLang(inv.date_order, date=True)}</td>
+            <td class="date"></td>
+            <td style="text-align:center;width:120px;">${inv.user_id and inv.user_id.name or ''}</td>
+            <td style="text-align:center">${inv.payment_term and inv.payment_term.note or ''}</td>
+            <td style="text-align:center">${inv.name or ''}</td>
+        </tr>
+    </table>
+
+    <div>
+    %if inv.note1:
+        <p class="std_text"> ${inv.note1 | n} </p>
+    %endif
+    </div>
+
+    <table class="list_main_table" width="100%" style="margin-top: 20px;">
+      <thead>
+        <tr>
+          <th class="list_main_headers" style="width: 100%">
+            <table style="width:100%">
+              <tr>
+                <th class="main_col1">${_("Description")}</th>
+                <th class="amount main_col2">${_("Qty")}</th>
+                <th class="amount main_col3">${_("UoM")}</th>
+                <th class="amount main_col4">${_("Unit Price")}</th>
+                <th class="main_col5">${_("Taxes")}</th>
+                <th class="amount main_col6">${_("Disc.(%)")}</th>
+                <th class="amount main_col7">${_("Net Sub Total")}</th>
+              </tr>
+            </table>
+          </th>
+        </tr>
+      </thead>
+      <tbody>
+        %for line in inv.order_line:
+          <tr>
+            <td class="list_main_lines" style="width: 100%">
+              <div class="nobreak">
+                <table style="width:100%">
+                  <tr>
+                    <td class="main_col1">${line.name.replace('\n','<br/>') or '' | n}</td>
+                    <td class="amount main_col2">${formatLang(line.product_uom_qty or 0.0,digits=get_digits(dp='Account'))}</td>
+                    <td class="amount main_col3">${line.product_uos and line.product_uos.name or ''}</td>
+                    <td class="amount main_col4">${formatLang(line.price_unit)}</td>
+                    <td class="main_col5">${ ', '.join([tax.description or tax.name for tax in line.tax_id])}</td>
+                    <td class="amount main_col6">${line.discount and formatLang(line.discount, digits=get_digits(dp='Account')) or ''} ${line.discount and '%' or ''}</td>
+                    <td class="amount main_col7">${formatLang(line.price_subtotal, digits=get_digits(dp='Account'))} ${inv.currency_id.symbol}</td>
+                  </tr>
+                  %if line.formatted_note:
+                    <caption class="formatted_note">
+                      ${line.formatted_note| n}
+                    </caption>
+                  %endif
+                </table>
+              </div>
+            </td>
+          </tr>
+        %endfor
+      </tbody>
+      <tfoot class="totals">
+        <tr>
+          <td class="list_main_footers" style="width: 100%">
+            <div class="nobreak">
+              <table style="width:100%">
+                <tr>
+                  <td class="total_empty_cell"/>
+                  <th>
+                    ${_("Net :")}
+                  </th>
+                  <td class="amount total_sum_cell">
+                    ${formatLang(inv.amount_untaxed, digits=get_digits(dp='Account'))} ${inv.currency_id.symbol}
+                  </td>
+                </tr>
+                <tr>
+                  <td class="total_empty_cell"/>
+                  <th>
+                    ${_("Taxes:")}
+                  </th>
+                  <td class="amount total_sum_cell">
+                    ${formatLang(inv.amount_tax, digits=get_digits(dp='Account'))} ${inv.currency_id.symbol}
+                  </td>
+                </tr>
+                <tr>
+                  <td class="total_empty_cell"/>
+                  <th>
+                    ${_("Total:")}
+                  </th>
+                  <td class="amount total_sum_cell">
+                    <b>${formatLang(inv.amount_total, digits=get_digits(dp='Account'))} ${inv.currency_id.symbol}</b>
+                  </td>
+                </tr>
+              </table>
+            </div>
+          </td>
+        </tr>
+      </tfoot>
+    </table>
+        <br/>
+
+        <br/>
+        <br/>
+        <h4>
+                ${_("Thank you for your prompt payment")}
+        </h4>
+        <br/>
+    <br/>
+    %if inv.note :
+        <p class="std_text">${inv.note | carriage_returns}</p>
+    %endif
+    %if inv.note2 :
+        <p class="std_text">${inv.note2 | n}</p>
+    %endif
+    %if inv.fiscal_position :
+        <br/>
+        <p class="std_text">
+        ${inv.fiscal_position.note | n}
+        </p>
+    %endif
+    <p style="page-break-after:always"/>
+    %endfor
+</body>
+</html>


Follow ups