|
@ -1,6 +1,6 @@ |
|
|
<odoo> |
|
|
<odoo> |
|
|
<data> |
|
|
<data> |
|
|
<!--old Template View--> |
|
|
<!--old Template View--> |
|
|
<template id="old_std_report_invoice_document"> |
|
|
<template id="old_std_report_invoice_document"> |
|
|
<t t-if="o and 'company_id' in o"> |
|
|
<t t-if="o and 'company_id' in o"> |
|
|
<t t-set="company" t-value="o.company_id"/> |
|
|
<t t-set="company" t-value="o.company_id"/> |
|
@ -15,254 +15,310 @@ |
|
|
t-att-src="'data:image/png;base64,%s' % to_text(company.logo)" |
|
|
t-att-src="'data:image/png;base64,%s' % to_text(company.logo)" |
|
|
style="max-height: 80px;"/> |
|
|
style="max-height: 80px;"/> |
|
|
</div> |
|
|
</div> |
|
|
<div t-attf-class="pull-#{o.theme_id.company_position} " |
|
|
|
|
|
t-attf-style="font:14px lucida-console,sans-serif; color:#{o.theme_id.company_text_color} !important;"> |
|
|
|
|
|
<span t-field="company.partner_id"/> |
|
|
|
|
|
<br/> |
|
|
|
|
|
<span t-field="company.partner_id.street"/> |
|
|
|
|
|
<br/> |
|
|
|
|
|
<span t-field="company.partner_id.street2"/> |
|
|
|
|
|
<br/> |
|
|
|
|
|
<span t-field="company.partner_id.city"/> |
|
|
|
|
|
<br/> |
|
|
|
|
|
<span t-field="company.partner_id.country_id"/> |
|
|
|
|
|
<br/> |
|
|
|
|
|
<span t-field="company.partner_id.vat"/> |
|
|
|
|
|
<br/> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
<t t-call="web.external_layout"> |
|
|
<t t-call="web.external_layout"> |
|
|
<t t-set="o" |
|
|
<t t-set="o" |
|
|
t-value="o.with_context({'lang':o.partner_id.lang})"/> |
|
|
t-value="o.with_context({'lang':o.partner_id.lang})"/> |
|
|
<div class="page"> |
|
|
<div class="page"> |
|
|
<div class=" row mt32 mb32"> |
|
|
<div id="customer_address" |
|
|
<div class="col-12" style="padding-top:20px;"> |
|
|
t-attf-style="color:#{o.theme_id.customer_text_color}"> |
|
|
<div t-attf-class=" pull-#{o.theme_id.customer_position} text-#{o.theme_id.customer_position}" |
|
|
<div class="row"> |
|
|
style="font:15px lucida-console,sans-serif !important;"> |
|
|
<div t-attf-class="col-12 text-#{o.theme_id.customer_position} "> |
|
|
<span t-attf-style="color:#{o.theme_id.customer_text_color} !important;" |
|
|
<div itemprop="address" class="address"> |
|
|
t-field="o.partner_id"/> |
|
|
<div> |
|
|
<br/> |
|
|
<span t-if="o.partner_id"> |
|
|
<span t-if="o.theme_id.address"> |
|
|
<span style="color:#{o.theme_id.customer_text_color} !important;" |
|
|
<span t-attf-style="color:#{o.theme_id.customer_text_color} !important;" |
|
|
t-field="o.partner_id" t-options='{"widget": "contact", "fields": ["address", "name"], "no_marker": True}'/> |
|
|
t-field="o.partner_id.street"/> |
|
|
</span> |
|
|
<br/> |
|
|
</div> |
|
|
<span t-attf-style="color:#{o.theme_id.customer_text_color} !important;" |
|
|
<div> |
|
|
t-field="o.partner_id.street2"/> |
|
|
<span t-if="o.partner_id.vat"> |
|
|
</span> |
|
|
<span style="color:#{o.theme_id.customer_text_color} !important;" |
|
|
<br/> |
|
|
t-field="o.partner_id.vat"/> |
|
|
<span t-if="o.theme_id.city"> |
|
|
</span> |
|
|
<span t-attf-style="color:#{o.theme_id.customer_text_color} !important;" |
|
|
</div> |
|
|
t-field="o.partner_id.city"/> |
|
|
</div> |
|
|
</span> |
|
|
|
|
|
<br/> |
|
|
|
|
|
<span t-attf-style="color:#{o.theme_id.customer_text_color} !important;" |
|
|
|
|
|
t-field="o.partner_id.state_id"/> |
|
|
|
|
|
<br/> |
|
|
|
|
|
<span t-if="o.theme_id.country"> |
|
|
|
|
|
<span t-attf-style="color:#{o.theme_id.customer_text_color} !important;" |
|
|
|
|
|
t-field="o.partner_id.country_id"/> |
|
|
|
|
|
</span> |
|
|
|
|
|
<br/> |
|
|
|
|
|
<span t-attf-style="color:#{o.theme_id.customer_text_color} !important;" |
|
|
|
|
|
t-field="o.partner_id.vat"/> |
|
|
|
|
|
<br/> |
|
|
|
|
|
</div> |
|
|
</div> |
|
|
<div t-attf-class="pull-right" |
|
|
</div> |
|
|
t-attf-style="font:15px lucida-console,sans-serif !important;background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color};padding:2%"> |
|
|
</div> |
|
|
<h2> |
|
|
<br/> |
|
|
<span t-if="o.move_type == 'out_invoice' and (o.state == 'draft' or o.state == 'posted')"> |
|
|
<div class="page"> |
|
|
<font t-attf-style="color:#{o.theme_id.heading_text_color}"> |
|
|
<div |
|
|
Invoice |
|
|
t-attf-style="font:15px lucida-console,sans-serif !important;background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color};padding:2%"> |
|
|
</font> |
|
|
<h2> |
|
|
</span> |
|
|
<span t-if="o.move_type == 'out_invoice' and (o.state == 'draft' or o.state == 'posted')"> |
|
|
<span t-if="o.move_type == 'out_invoice' and o.state == 'proforma2'"> |
|
|
|
|
|
<font t-attf-style="color:#{o.theme_id.heading_text_color}"> |
|
|
|
|
|
PRO-FORMA |
|
|
|
|
|
</font> |
|
|
|
|
|
</span> |
|
|
|
|
|
<span t-if="o.move_type == 'out_invoice' and o.state == 'draft'"> |
|
|
|
|
|
<font t-attf-style="color:#{o.theme_id.heading_text_color}"> |
|
|
|
|
|
Draft Invoice |
|
|
|
|
|
</font> |
|
|
|
|
|
</span> |
|
|
|
|
|
<span t-if="o.move_type == 'out_invoice' and o.state == 'cancel'"> |
|
|
|
|
|
<font t-attf-style="color:#{o.theme_id.heading_text_color}"> |
|
|
|
|
|
Cancelled |
|
|
|
|
|
Invoice |
|
|
|
|
|
</font> |
|
|
|
|
|
</span> |
|
|
|
|
|
<span t-if="o.move_type == 'out_refund'"> |
|
|
|
|
|
<font t-attf-style="color:#{o.theme_id.heading_text_color}"> |
|
|
|
|
|
Refund |
|
|
|
|
|
</font> |
|
|
|
|
|
</span> |
|
|
|
|
|
<span t-if="o.move_type == 'in_refund'"> |
|
|
|
|
|
<font t-attf-style="color:#{o.theme_id.heading_text_color}"> |
|
|
|
|
|
Vendor Refund |
|
|
|
|
|
</font> |
|
|
|
|
|
</span> |
|
|
|
|
|
<span t-if="o.move_type == 'in_invoice'"> |
|
|
|
|
|
<font t-attf-style="color:#{o.theme_id.text_color}"> |
|
|
|
|
|
Vendor Bill |
|
|
|
|
|
</font> |
|
|
|
|
|
</span> |
|
|
|
|
|
<font t-attf-style="color:#{o.theme_id.heading_text_color}"> |
|
|
<font t-attf-style="color:#{o.theme_id.heading_text_color}"> |
|
|
<span t-field="o.name"/> |
|
|
Invoice |
|
|
</font> |
|
|
</font> |
|
|
</h2> |
|
|
</span> |
|
|
<div t-if="o.invoice_date"> |
|
|
<span t-if="o.move_type == 'out_invoice' and o.state == 'proforma2'"> |
|
|
<font t-attf-style="color:#{o.theme_id.heading_text_color}"> |
|
|
<font t-attf-style="color:#{o.theme_id.heading_text_color}"> |
|
|
<strong>Invoice Date:</strong> |
|
|
PRO-FORMA |
|
|
<p t-field="o.invoice_date"/> |
|
|
|
|
|
</font> |
|
|
</font> |
|
|
</div> |
|
|
</span> |
|
|
<div t-if="o.name"> |
|
|
<span t-if="o.move_type == 'out_invoice' and o.state == 'draft'"> |
|
|
<font t-attf-style="color:#{o.theme_id.heading_text_color}"> |
|
|
<font t-attf-style="color:#{o.theme_id.heading_text_color}"> |
|
|
<strong>Due Date:</strong> |
|
|
Draft Invoice |
|
|
<p t-field="o.invoice_date_due"/> |
|
|
|
|
|
</font> |
|
|
</font> |
|
|
</div> |
|
|
</span> |
|
|
|
|
|
<span t-if="o.move_type == 'out_invoice' and o.state == 'cancel'"> |
|
|
<div t-if="o.theme_id.reference"> |
|
|
|
|
|
<div t-if="o.ref"> |
|
|
|
|
|
<font t-attf-style="color:#{o.theme_id.heading_text_color}"> |
|
|
<font t-attf-style="color:#{o.theme_id.heading_text_color}"> |
|
|
<strong>Reference:</strong> |
|
|
Cancelled |
|
|
<p t-field="o.ref"/> |
|
|
Invoice |
|
|
</font> |
|
|
</font> |
|
|
</div> |
|
|
</span> |
|
|
</div> |
|
|
<span t-if="o.move_type == 'out_refund'"> |
|
|
<div t-if="o.theme_id.source"> |
|
|
|
|
|
<div t-if="o.invoice_origin"> |
|
|
|
|
|
<font t-attf-style="color:#{o.theme_id.heading_text_color}"> |
|
|
<font t-attf-style="color:#{o.theme_id.heading_text_color}"> |
|
|
<strong>Source:</strong> |
|
|
Refund |
|
|
<p t-field="o.invoice_origin"/> |
|
|
|
|
|
</font> |
|
|
</font> |
|
|
</div> |
|
|
</span> |
|
|
|
|
|
<span t-if="o.move_type == 'in_refund'"> |
|
|
|
|
|
<font t-attf-style="color:#{o.theme_id.heading_text_color}"> |
|
|
|
|
|
Vendor Refund |
|
|
|
|
|
</font> |
|
|
|
|
|
</span> |
|
|
|
|
|
<span t-if="o.move_type == 'in_invoice'"> |
|
|
|
|
|
<font t-attf-style="color:#{o.theme_id.text_color}"> |
|
|
|
|
|
Vendor Bill |
|
|
|
|
|
</font> |
|
|
|
|
|
</span> |
|
|
|
|
|
<font t-attf-style="color:#{o.theme_id.heading_text_color}"> |
|
|
|
|
|
<span t-field="o.name"/> |
|
|
|
|
|
</font> |
|
|
|
|
|
</h2> |
|
|
|
|
|
<br/> |
|
|
|
|
|
<div id="invoice_information"> |
|
|
|
|
|
<div class="row mt32 mb32" id="informations"> |
|
|
|
|
|
<div class="col-auto col-3 mw-100 mb-2" |
|
|
|
|
|
t-if="o.invoice_date" |
|
|
|
|
|
name="invoice_date"> |
|
|
|
|
|
<strong t-attf-style="color:#{o.theme_id.heading_text_color}"> |
|
|
|
|
|
Invoice Date: |
|
|
|
|
|
</strong> |
|
|
|
|
|
<p class="m-0" |
|
|
|
|
|
t-attf-style="color:#{o.theme_id.text_color}" |
|
|
|
|
|
t-field="o.invoice_date"/> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="col-auto col-3 mw-100 mb-2" |
|
|
|
|
|
t-if="o.invoice_date_due and o.move_type == 'out_invoice' and o.state == 'posted'" |
|
|
|
|
|
name="due_date"> |
|
|
|
|
|
<strong t-attf-style="color:#{o.theme_id.heading_text_color}"> |
|
|
|
|
|
Due Date: |
|
|
|
|
|
</strong> |
|
|
|
|
|
<p class="m-0" |
|
|
|
|
|
t-attf-style="color:#{o.theme_id.text_color}" |
|
|
|
|
|
t-field="o.invoice_date_due"/> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="col-auto col-3 mw-100 mb-2" |
|
|
|
|
|
t-if="o.invoice_payment_term_id" |
|
|
|
|
|
name="payment_term"> |
|
|
|
|
|
<strong t-attf-style="color:#{o.theme_id.heading_text_color}"> |
|
|
|
|
|
Payment Term: |
|
|
|
|
|
</strong> |
|
|
|
|
|
<p class="m-0" |
|
|
|
|
|
t-attf-style="color:#{o.theme_id.text_color}" |
|
|
|
|
|
t-field="o.invoice_payment_term_id"/> |
|
|
|
|
|
</div> |
|
|
|
|
|
<!--optional information--> |
|
|
|
|
|
<div class="col-auto col-3 mw-100 mb-2" |
|
|
|
|
|
t-if="o.user_id"> |
|
|
|
|
|
<div t-if="o.theme_id.sales_person"> |
|
|
|
|
|
<font t-attf-style="color:#{o.theme_id.text_color}"> |
|
|
|
|
|
<strong t-attf-style="color:#{o.theme_id.heading_text_color}"> |
|
|
|
|
|
Sales Person: |
|
|
|
|
|
</strong> |
|
|
|
|
|
<p t-field="o.user_id"/> |
|
|
|
|
|
</font> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="col-auto col-3 mw-100 mb-2" |
|
|
|
|
|
t-if="o.ref"> |
|
|
|
|
|
<div t-if="o.theme_id.reference"> |
|
|
|
|
|
<font t-attf-style="color:#{o.theme_id.text_color}"> |
|
|
|
|
|
<strong t-attf-style="color:#{o.theme_id.heading_text_color}"> |
|
|
|
|
|
Customer Reference: |
|
|
|
|
|
</strong> |
|
|
|
|
|
<p t-field="o.ref"/> |
|
|
|
|
|
</font> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="col-auto col-3 mw-100 mb-2" |
|
|
|
|
|
t-if="o.invoice_origin"> |
|
|
|
|
|
<div t-if="o.theme_id.source"> |
|
|
|
|
|
<font t-attf-style="color:#{o.theme_id.text_color}"> |
|
|
|
|
|
<strong t-attf-style="color:#{o.theme_id.heading_text_color}"> |
|
|
|
|
|
Source: |
|
|
|
|
|
</strong> |
|
|
|
|
|
<p t-field="o.invoice_origin"/> |
|
|
|
|
|
</font> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
<div style="padding-top:20px;"/> |
|
|
<div style="padding-top:20px;"/> |
|
|
<t t-set="display_discount" |
|
|
<t t-set="display_discount" |
|
|
t-value="any([l.discount for l in o.invoice_line_ids])"/> |
|
|
t-value="any([l.discount for l in o.invoice_line_ids])"/> |
|
|
<table class="table table-sm"> |
|
|
<table class="table table-sm"> |
|
|
<thead> |
|
|
<thead> |
|
|
<tr> |
|
|
<tr> |
|
|
|
|
|
<th t-attf-style="background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color}"> |
|
|
|
|
|
Product |
|
|
|
|
|
</th> |
|
|
|
|
|
<span t-if="o.theme_id.description"> |
|
|
|
|
|
<th t-attf-style="background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color}"> |
|
|
<th t-attf-style="background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color}"> |
|
|
Description |
|
|
Product |
|
|
</th> |
|
|
</th> |
|
|
</span> |
|
|
<span t-if="o.theme_id.description"> |
|
|
<th t-attf-style="background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color}"> |
|
|
<th t-attf-style="background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color}"> |
|
|
Quantity |
|
|
Description |
|
|
</th> |
|
|
</th> |
|
|
<th t-attf-style="background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color}"> |
|
|
</span> |
|
|
Unit Price |
|
|
|
|
|
</th> |
|
|
|
|
|
<th t-attf-style="background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color}" |
|
|
|
|
|
t-if="display_discount" class="text-right" |
|
|
|
|
|
groups="sale.group_discount_per_so_line"> |
|
|
|
|
|
Disc.(%) |
|
|
|
|
|
</th> |
|
|
|
|
|
<span t-if="o.theme_id.tax_value"> |
|
|
|
|
|
<th t-attf-style="background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color}"> |
|
|
<th t-attf-style="background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color}"> |
|
|
Taxes |
|
|
Quantity |
|
|
</th> |
|
|
</th> |
|
|
</span> |
|
|
<th t-attf-style="background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color}"> |
|
|
<th t-attf-style="background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color}"> |
|
|
Unit Price |
|
|
Price |
|
|
</th> |
|
|
</th> |
|
|
<th t-attf-style="background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color}" |
|
|
</tr> |
|
|
t-if="display_discount" |
|
|
</thead> |
|
|
class="text-right" |
|
|
<tbody class="invoice_tbody"> |
|
|
groups="sale.group_discount_per_so_line"> |
|
|
<tr t-foreach="o.invoice_line_ids" t-as="l"> |
|
|
Disc.(%) |
|
|
<td t-if="l.product_id.name"> |
|
|
</th> |
|
|
<span t-field="l.product_id.name"/> |
|
|
<span t-if="o.theme_id.tax_value"> |
|
|
</td> |
|
|
<th t-attf-style="background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color}"> |
|
|
<span t-if="o.theme_id.description"> |
|
|
Taxes |
|
|
<td t-if="l.name"> |
|
|
</th> |
|
|
<span t-field="l.name"/> |
|
|
</span> |
|
|
</td> |
|
|
<th t-attf-style="background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color}"> |
|
|
</span> |
|
|
Price |
|
|
<td class="text-right" t-if="l.quantity"> |
|
|
</th> |
|
|
<span t-field="l.quantity"/> |
|
|
</tr> |
|
|
<span t-field="l.uom_id" |
|
|
</thead> |
|
|
groups="product.group_uom"/> |
|
|
<tbody class="invoice_tbody"> |
|
|
</td> |
|
|
<tr t-foreach="o.invoice_line_ids" t-as="l"> |
|
|
<td class="text-right" t-if="l.price_unit"> |
|
|
<td t-if="l.product_id.name"> |
|
|
<span t-field="l.price_unit"/> |
|
|
<span t-field="l.product_id.name"/> |
|
|
</td> |
|
|
|
|
|
<td t-if="l.discount" class="text-right" |
|
|
|
|
|
groups="sale.group_discount_per_so_line"> |
|
|
|
|
|
<span t-field="l.discount"/> |
|
|
|
|
|
</td> |
|
|
|
|
|
<span t-if="o.theme_id.tax_value"> |
|
|
|
|
|
<td> |
|
|
|
|
|
<span t-esc="', '.join(map(lambda x: (x.description or x.name), l.tax_ids))"/> |
|
|
|
|
|
</td> |
|
|
</td> |
|
|
</span> |
|
|
<span t-if="o.theme_id.description"> |
|
|
<td class="text-right" t-if="l.price_subtotal"> |
|
|
<td t-if="l.name"> |
|
|
<span t-field="l.price_subtotal" |
|
|
<span t-field="l.name"/> |
|
|
t-field-options='{"widget": "monetary", "display_currency": "o.currency_id"}'/> |
|
|
|
|
|
</td> |
|
|
|
|
|
</tr> |
|
|
|
|
|
</tbody> |
|
|
|
|
|
</table> |
|
|
|
|
|
<div> |
|
|
|
|
|
<div class="col-4 pull-right"> |
|
|
|
|
|
<table class="table table-condensed"> |
|
|
|
|
|
<t t-set="tax_totals" t-value="json.loads(o.tax_totals_json)"/> |
|
|
|
|
|
<t t-foreach="tax_totals['subtotals']" t-as="subtotal"> |
|
|
|
|
|
<tr class="border-black o_subtotal"> |
|
|
|
|
|
<td> |
|
|
|
|
|
<strong t-esc="subtotal['name']"/> |
|
|
|
|
|
</td> |
|
|
</td> |
|
|
|
|
|
</span> |
|
|
<td class="text-right"> |
|
|
<td class="text-right" t-if="l.quantity"> |
|
|
<span |
|
|
<span t-field="l.quantity"/> |
|
|
t-att-class="oe_subtotal_footer_separator" |
|
|
<span t-field="l.uom_id" |
|
|
t-esc="subtotal['amount']" |
|
|
groups="product.group_uom"/> |
|
|
t-options='{"widget": "monetary", "display_currency": o.currency_id}' |
|
|
|
|
|
/> |
|
|
|
|
|
</td> |
|
|
|
|
|
</tr> |
|
|
|
|
|
|
|
|
|
|
|
<t t-set="subtotal_to_show" t-value="subtotal['name']"/> |
|
|
|
|
|
<t t-call="account.tax_groups_totals"/> |
|
|
|
|
|
</t> |
|
|
|
|
|
|
|
|
|
|
|
<!--Total amount with all taxes--> |
|
|
|
|
|
<tr class="border-black o_total" |
|
|
|
|
|
t-attf-style="background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color}"> |
|
|
|
|
|
<td> |
|
|
|
|
|
<strong>Total</strong> |
|
|
|
|
|
</td> |
|
|
</td> |
|
|
<td class="text-right"> |
|
|
<td class="text-right" t-if="l.price_unit"> |
|
|
<span t-esc="tax_totals['amount_total']" |
|
|
<span t-field="l.price_unit"/> |
|
|
t-options='{"widget": "monetary", "display_currency": o.currency_id}'/> |
|
|
|
|
|
</td> |
|
|
</td> |
|
|
</tr> |
|
|
<td t-if="l.discount" class="text-right" |
|
|
<tr class="border-black"> |
|
|
groups="sale.group_discount_per_so_line"> |
|
|
<td> |
|
|
<span t-field="l.discount"/> |
|
|
<strong>Amount Due</strong> |
|
|
|
|
|
</td> |
|
|
</td> |
|
|
<td class="text-right"> |
|
|
<span t-if="o.theme_id.tax_value"> |
|
|
<span t-field="o.amount_residual" |
|
|
<td> |
|
|
|
|
|
<span t-esc="', '.join(map(lambda x: (x.description or x.name), l.tax_ids))"/> |
|
|
|
|
|
</td> |
|
|
|
|
|
</span> |
|
|
|
|
|
<td class="text-right" |
|
|
|
|
|
t-if="l.price_subtotal"> |
|
|
|
|
|
<span t-field="l.price_subtotal" |
|
|
t-field-options='{"widget": "monetary", "display_currency": "o.currency_id"}'/> |
|
|
t-field-options='{"widget": "monetary", "display_currency": "o.currency_id"}'/> |
|
|
</td> |
|
|
</td> |
|
|
</tr> |
|
|
</tr> |
|
|
</table> |
|
|
</tbody> |
|
|
|
|
|
</table> |
|
|
|
|
|
<div class="clearfix mb-4"> |
|
|
|
|
|
<div class="col-4 pull-right"> |
|
|
|
|
|
<table class="table table-condensed"> |
|
|
|
|
|
<t t-set="tax_totals" |
|
|
|
|
|
t-value="json.loads(o.tax_totals_json)"/> |
|
|
|
|
|
<t t-foreach="tax_totals['subtotals']" |
|
|
|
|
|
t-as="subtotal"> |
|
|
|
|
|
<tr class="border-black o_subtotal"> |
|
|
|
|
|
<td> |
|
|
|
|
|
<strong t-esc="subtotal['name']"/> |
|
|
|
|
|
</td> |
|
|
|
|
|
|
|
|
|
|
|
<td class="text-right"> |
|
|
|
|
|
<span |
|
|
|
|
|
t-att-class="oe_subtotal_footer_separator" |
|
|
|
|
|
t-esc="subtotal['amount']" |
|
|
|
|
|
t-options='{"widget": "monetary", "display_currency": o.currency_id}' |
|
|
|
|
|
/> |
|
|
|
|
|
</td> |
|
|
|
|
|
</tr> |
|
|
|
|
|
|
|
|
|
|
|
<t t-set="subtotal_to_show" |
|
|
|
|
|
t-value="subtotal['name']"/> |
|
|
|
|
|
<t t-call="account.tax_groups_totals"/> |
|
|
|
|
|
</t> |
|
|
|
|
|
|
|
|
|
|
|
<!--Total amount with all taxes--> |
|
|
|
|
|
<tr class="border-black o_total" |
|
|
|
|
|
t-attf-style="background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color}"> |
|
|
|
|
|
<td> |
|
|
|
|
|
<strong>Total</strong> |
|
|
|
|
|
</td> |
|
|
|
|
|
<td class="text-right"> |
|
|
|
|
|
<span t-esc="tax_totals['amount_total']" |
|
|
|
|
|
t-options='{"widget": "monetary", "display_currency": o.currency_id}'/> |
|
|
|
|
|
</td> |
|
|
|
|
|
</tr> |
|
|
|
|
|
<tr class="border-black"> |
|
|
|
|
|
<td> |
|
|
|
|
|
<strong>Amount Due</strong> |
|
|
|
|
|
</td> |
|
|
|
|
|
<td class="text-right"> |
|
|
|
|
|
<span t-field="o.amount_residual" |
|
|
|
|
|
t-field-options='{"widget": "monetary", "display_currency": "o.currency_id"}'/> |
|
|
|
|
|
</td> |
|
|
|
|
|
</tr> |
|
|
|
|
|
</table> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div style="padding-top:15%;" class="col-12"> |
|
|
|
|
|
<p t-if="o.move_type in ('out_invoice', 'in_refund') and o.payment_reference" |
|
|
|
|
|
name="payment_communication"> |
|
|
|
|
|
Please use the following communication for |
|
|
|
|
|
your |
|
|
|
|
|
payment : |
|
|
|
|
|
<b> |
|
|
|
|
|
<span t-field="o.payment_reference"/> |
|
|
|
|
|
</b> |
|
|
|
|
|
</p> |
|
|
|
|
|
<p t-if="o.invoice_payment_term_id" |
|
|
|
|
|
name="payment_term"> |
|
|
|
|
|
<span t-field="o.invoice_payment_term_id.note"/> |
|
|
|
|
|
</p> |
|
|
|
|
|
<div t-if="not is_html_empty(o.narration)" |
|
|
|
|
|
name="comment"> |
|
|
|
|
|
<span t-field="o.narration"/> |
|
|
|
|
|
</div> |
|
|
|
|
|
<p t-if="not is_html_empty(o.fiscal_position_id.note)" |
|
|
|
|
|
name="note"> |
|
|
|
|
|
<span t-field="o.fiscal_position_id.note"/> |
|
|
|
|
|
</p> |
|
|
|
|
|
<p t-if="o.invoice_incoterm_id" name="incoterm"> |
|
|
|
|
|
<strong>Incoterm:</strong> |
|
|
|
|
|
<span t-field="o.invoice_incoterm_id.code"/> |
|
|
|
|
|
- |
|
|
|
|
|
<span t-field="o.invoice_incoterm_id.name"/> |
|
|
|
|
|
</p> |
|
|
|
|
|
<div id="qrcode" |
|
|
|
|
|
t-if="o.display_qr_code and o.amount_residual > 0"> |
|
|
|
|
|
<p t-if="qr_code_urls.get(o.id)"> |
|
|
|
|
|
<strong class="text-center">Scan me with |
|
|
|
|
|
your banking app. |
|
|
|
|
|
</strong> |
|
|
|
|
|
<br/> |
|
|
|
|
|
<br/> |
|
|
|
|
|
<img class="border border-dark rounded" |
|
|
|
|
|
t-att-src="qr_code_urls[o.id]"/> |
|
|
|
|
|
</p> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
<br/> |
|
|
|
|
|
<br/> |
|
|
|
|
|
<br/> |
|
|
|
|
|
<br/> |
|
|
|
|
|
<br/> |
|
|
|
|
|
</div> |
|
|
</div> |
|
|
</t> |
|
|
</t> |
|
|
</template> |
|
|
</template> |
|
|