4
4
<style type="text/css">
8
8
border:thin solid #E3E4EA;
10
10
border-collapse: collapse;
12
table.list_main_table {
18
.list_main_headers th {
19
border: thin solid #000000;
13
22
background-color: #EEEEEE;
14
border: thin solid #000000;
22
border-top: thin solid #EEEEEE;
28
31
padding-bottom:3px;
30
.list_sale_table thead {
31
display:table-header-group;
41
.list_main_footers td,
42
.list_main_footers th {
48
.list_main_footers th {
52
td .total_empty_cell {
60
page-break-inside: avoid;
62
caption.formatted_note {
36
64
border-right:thin solid #EEEEEE;
37
65
border-left:thin solid #EEEEEE;
38
66
border-top:thin solid #EEEEEE;
46
border-top: thin solid #ffffff ;
71
caption.formatted_note p {
78
131
def carriage_returns(text):
79
132
return text.replace('\n', '<br />')
135
<%def name="address(partner)">
137
XXX add a helper for address in report_webkit module as this won't be suported in v8.0
139
%if partner.parent_id:
140
<tr><td class="name">${partner.parent_id.name or ''}</td></tr>
141
<tr><td>${partner.title and partner.title.name or ''} ${partner.name}</td></tr>
142
<% address_lines = partner.contact_address.split("\n")[1:] %>
144
<tr><td class="name">${partner.title and partner.title.name or ''} ${partner.name}</td></tr>
145
<% address_lines = partner.contact_address.split("\n") %>
147
%for part in address_lines:
149
<tr><td>${part}</td></tr>
82
154
%for order in objects:
83
155
<% setLang(order.partner_id.lang) %>
87
159
<div class="address">
88
160
<table class="recipient">
89
%if order.partner_id.parent_id:
90
<tr><td class="name">${order.partner_id.parent_id.name or ''}</td></tr>
91
<tr><td>${order.partner_id.title and order.partner_id.title.name or ''} ${order.partner_id.name }</td></tr>
92
<% address_lines = order.partner_id.contact_address.split("\n")[1:] %>
94
<tr><td class="name">${order.partner_id.title and order.partner_id.title.name or ''} ${order.partner_id.name }</td></tr>
95
<% address_lines = order.partner_id.contact_address.split("\n") %>
97
%for part in address_lines:
99
<tr><td>${part}</td></tr>
161
${address(partner=order.partner_id)}
104
164
<table class="shipping">
105
<tr><td class="address_title">${_("Shipping address:")}</td></tr>
106
%if order.partner_shipping_id.parent_id:
107
<tr><td>${order.partner_shipping_id.parent_id.name or ''}</td></tr>
108
<tr><td>${order.partner_shipping_id.title and order.partner_shipping_id.title.name or ''} ${order.partner_shipping_id.name }</td></tr>
109
<% address_lines = order.partner_shipping_id.contact_address.split("\n")[1:] %>
111
<tr><td>${order.partner_shipping_id.title and order.partner_shipping_id.title.name or ''} ${order.partner_shipping_id.name }</td></tr>
112
<% address_lines = order.partner_shipping_id.contact_address.split("\n") %>
114
%for part in address_lines:
116
<tr><td>${part}</td></tr>
165
<tr><td class="address_title">${_("Shipping address:")}</td></tr>
166
${address(partner=order.partner_shipping_id)}
121
169
<table class="invoice">
122
<tr><td class="address_title">${_("Invoice address:")}</td></tr>
123
%if order.partner_invoice_id.parent_id:
124
<tr><td>${order.partner_invoice_id.parent_id.name or ''}</td></tr>
125
<tr><td>${order.partner_invoice_id.title and order.partner_invoice_id.title.name or ''} ${order.partner_invoice_id.name }</td></tr>
126
<% address_lines = order.partner_invoice_id.contact_address.split("\n")[1:] %>
128
<tr><td>${order.partner_invoice_id.title and order.partner_invoice_id.title.name or ''} ${order.partner_invoice_id.name }</td></tr>
129
<% address_lines = order.partner_invoice_id.contact_address.split("\n") %>
131
%for part in address_lines:
133
<tr><td>${part}</td></tr>
170
<tr><td class="address_title">${_("Invoice address:")}</td></tr>
171
${address(partner=order.partner_invoice_id)}
141
177
<table class="basic_table" width="100%">
143
<td style="font-weight:bold;">${quotation and _("Date Ordered") or _("Quotation Date")}</td>
144
<td style="font-weight:bold;">${_("Your Reference")}</td>
145
<td style="font-weight:bold;">${_("Salesman")}</td>
146
<td style="font-weight:bold;">${_('Payment Term')}</td>
179
<th class="date">${quotation and _("Date Ordered") or _("Quotation Date")}</td>
180
<th>${_("Your Reference")}</td>
181
<th>${_("Salesman")}</td>
182
<th>${_('Payment Term')}</td>
149
<td>${formatLang(order.date_order, date=True)}</td>
185
<td class="date">${formatLang(order.date_order, date=True)}</td>
150
186
<td>${order.client_order_ref or ''}</td>
151
187
<td>${order.user_id and order.user_id.name or ''}</td>
152
188
<td>${order.payment_term and order.payment_term.note or ''}</td>
158
<p class="std_text"> ${order.note1| n} </p>
194
<p class="std_text"> ${order.note1 | n} </p>
162
<table class="list_sale_table" width="100%" style="margin-top: 20px;">
165
<th>${_("Description")}</th>
166
<th class="amount">${_("Quantity")}</th>
167
<th class="amount">${_("UoM")}</th>
168
<th class="amount">${_("Unit Price")}</th>
170
<th class="amount">${_("Disc.(%)")}</th>
171
<th class="amount">${_("Price")}</th>
198
<table class="list_main_table" width="100%">
201
<th class="list_main_headers" style="width: 100%">
202
<table style="width:100%">
204
<th class="main_col1">${_("Description")}</th>
205
<th class="amount main_col2">${_("Quantity")}</th>
206
<th class="amount main_col3">${_("UoM")}</th>
207
<th class="amount main_col4">${_("Unit Price")}</th>
208
<th class="main_col5">${_("VAT")}</th>
209
<th class="amount main_col6">${_("Disc.(%)")}</th>
210
<th class="amount main_col7">${_("Price")}</th>
175
217
%for line in order.order_line:
177
<td style="text-align:left; " >${ line.name }</td>
178
<td class="amount" width="7.5%">${ formatLang(line.product_uos and line.product_uos_qty or line.product_uom_qty) }</td>
179
<td style="text-align:center;">${ line.product_uos and line.product_uos.name or line.product_uom.name }</td>
180
<td class="amount" width="8%">${formatLang(line.price_unit)}</td>
181
<td style="font-style:italic; font-size: 10;">${ ', '.join([tax.description or tax.name for tax in line.tax_id]) }</td>
182
<td class="amount" width="10%">${line.discount and formatLang(line.discount, digits=get_digits(dp='Sale Price')) or ''} ${line.discount and '%' or ''}</td>
183
<td class="amount" width="13%">${formatLang(line.price_subtotal, digits=get_digits(dp='Sale Price'))} ${order.pricelist_id.currency_id.symbol}</td>
185
%if line.formatted_note:
187
<td class="formatted_note" colspan="7">
188
${line.formatted_note| n}
219
<td class="list_main_lines" style="width: 100%">
220
<div class="nobreak">
221
<table style="width:100%">
223
<td class="main_col1">${ line.name }</td>
224
<td class="amount main_col2">${ formatLang(line.product_uos and line.product_uos_qty or line.product_uom_qty) }</td>
225
<td class="amount main_col3">${ line.product_uos and line.product_uos.name or line.product_uom.name }</td>
226
<td class="amount main_col4">${formatLang(line.price_unit)}</td>
227
<td class="main_col5">${ ', '.join([tax.description or tax.name for tax in line.tax_id]) }</td>
228
<td class="amount main_col6">${line.discount and formatLang(line.discount, digits=get_digits(dp='Sale Price')) or ''} ${line.discount and '%' or ''}</td>
229
<td class="amount main_col7">${formatLang(line.price_subtotal, digits=get_digits(dp='Sale Price'))} ${order.pricelist_id.currency_id.symbol}</td>
231
%if line.formatted_note:
232
<caption class="formatted_note">
233
${line.formatted_note| n}
194
<tfoot class="totals">
196
<td colspan="5" style="border-style:none"/>
197
<td style="border-style:none"><b>${_("Net Total:")}</b></td>
198
<td class="amount" style="border-style:none">${formatLang(order.amount_untaxed, get_digits(dp='Sale Price'))} ${order.pricelist_id.currency_id.symbol}</td>
201
<td colspan="5" style="border-style:none"/>
202
<td style="border-style:none" ><b>${_("Taxes:")}</b></td>
203
<td class="amount"style="border-style:none" >${formatLang(order.amount_tax, get_digits(dp='Sale Price'))} ${order.pricelist_id.currency_id.symbol}</td>
206
<td colspan="5" style="border-style:none"/>
207
<td style="border-style:none"><b>${_("Total:")}</b></td>
208
<td class="amount" style="border-style:none">${formatLang(order.amount_total, get_digits(dp='Sale Price'))} ${order.pricelist_id.currency_id.symbol}</td>
242
<tfoot class="totals">
244
<td class="list_main_footers" style="width: 100%">
245
<div class="nobreak">
246
<table style="width:100%">
248
<td class="total_empty_cell"/>
252
<td class="amount total_sum_cell">
253
${formatLang(order.amount_untaxed, get_digits(dp='Sale Price'))} ${order.pricelist_id.currency_id.symbol}
257
<td class="total_empty_cell"/>
261
<td class="amount total_sum_cell">
262
${formatLang(order.amount_tax, get_digits(dp='Sale Price'))} ${order.pricelist_id.currency_id.symbol}
266
<td class="total_empty_cell"/>
270
<td class="amount total_sum_cell">
271
<b>${formatLang(order.amount_total, get_digits(dp='Sale Price'))} ${order.pricelist_id.currency_id.symbol}</b>