@ -1,27 +1,30 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<odoo> |
|||
<data noupdate="1"> |
|||
<record id="Modern" model="doc.layout"> |
|||
<field name="name">Modern</field> |
|||
<field name="base_color">#732673</field> |
|||
<field name="heading_text_color">#ffffff</field> |
|||
<field name="text_color">#000000</field> |
|||
<field name="customer_text_color">#000000</field> |
|||
<field name="logo_position">right</field> |
|||
<field name="customer_position">right</field> |
|||
<field name="company_position">left</field> |
|||
<field name="company_text_color">#808080</field> |
|||
</record> |
|||
<record id="standard" model="doc.layout"> |
|||
<field name="name">Standard</field> |
|||
<field name="base_color">#ff7733</field> |
|||
<field name="heading_text_color">#ffffff</field> |
|||
<field name="text_color">#000000</field> |
|||
<field name="customer_text_color">#000000</field> |
|||
<field name="logo_position">left</field> |
|||
<field name="customer_position">left</field> |
|||
<field name="company_position">right</field> |
|||
<field name="company_text_color">#808080</field> |
|||
</record> |
|||
<!--Demo records within the doc layout model--> |
|||
<record id="Modern" model="doc.layout"> |
|||
<field name="name">Modern</field> |
|||
<field name="base_color">#732673</field> |
|||
<field name="heading_text_color">#ffffff</field> |
|||
<field name="text_color">#000000</field> |
|||
<field name="customer_text_color">#d117d1</field> |
|||
<field name="logo_position">right</field> |
|||
<field name="tagline_position">right</field> |
|||
<field name="customer_position">right</field> |
|||
<field name="company_position">left</field> |
|||
<field name="company_text_color">#2439d6</field> |
|||
</record> |
|||
<record id="standard" model="doc.layout"> |
|||
<field name="name">Standard</field> |
|||
<field name="base_color">#ff7733</field> |
|||
<field name="heading_text_color">#ffffff</field> |
|||
<field name="text_color">#000000</field> |
|||
<field name="customer_text_color">#0c1d75</field> |
|||
<field name="logo_position">left</field> |
|||
<field name="tagline_position">left</field> |
|||
<field name="customer_position">left</field> |
|||
<field name="company_position">right</field> |
|||
<field name="company_text_color">#17822f</field> |
|||
</record> |
|||
</data> |
|||
</odoo> |
@ -1,6 +1,6 @@ |
|||
## Module <invoice_format_editor> |
|||
|
|||
#### 20.11.2021 |
|||
#### 31.07.2023 |
|||
#### Version 16.0.1.0.0 |
|||
#### ADD |
|||
- Initial commit for invoice_format_editor |
|||
- Initial commit for Invoice Format Editor |
|||
|
@ -0,0 +1,39 @@ |
|||
# -*- coding: utf-8 -*- |
|||
############################################################################# |
|||
# |
|||
# Cybrosys Technologies Pvt. Ltd. |
|||
# |
|||
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) |
|||
# Author: Jumana Jabin MK(<https://www.cybrosys.com>) |
|||
# |
|||
# You can modify it under the terms of the GNU AFFERO |
|||
# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. |
|||
# |
|||
# 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 (AGPL v3) for more details. |
|||
# |
|||
# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE |
|||
# (AGPL v3) along with this program. |
|||
# If not, see <http://www.gnu.org/licenses/>. |
|||
# |
|||
############################################################################# |
|||
"""Inherit account move model""" |
|||
from odoo import models, fields |
|||
|
|||
|
|||
class TemplateInvoice(models.Model): |
|||
"""Inheriting the account move model and added the base layout model and |
|||
a relational field to doc layout model""" |
|||
_inherit = 'account.move' |
|||
|
|||
base_layout = fields.Selection(selection=[('default', 'Default'), |
|||
('modern', 'Modern'), |
|||
('normal', 'Normal'), |
|||
('old', 'Old Standard')], |
|||
required=True, |
|||
string="Invoice Document Layout", |
|||
default="default") |
|||
theme_id = fields.Many2one('doc.layout', |
|||
related='company_id.document_layout_id') |
@ -0,0 +1,82 @@ |
|||
# -*- coding: utf-8 -*- |
|||
############################################################################# |
|||
# |
|||
# Cybrosys Technologies Pvt. Ltd. |
|||
# |
|||
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) |
|||
# Author: Jumana Jabin MK(<https://www.cybrosys.com>) |
|||
# |
|||
# You can modify it under the terms of the GNU AFFERO |
|||
# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. |
|||
# |
|||
# 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 (AGPL v3) for more details. |
|||
# |
|||
# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE |
|||
# (AGPL v3) along with this program. |
|||
# If not, see <http://www.gnu.org/licenses/>. |
|||
# |
|||
############################################################################# |
|||
"""Base document layout""" |
|||
from odoo import api, models, fields |
|||
|
|||
|
|||
class BaseDocumentLayout(models.TransientModel): |
|||
"""Inheriting the base document layout model""" |
|||
_inherit = 'base.document.layout' |
|||
|
|||
base_layout = fields.Selection(related='company_id.base_layout', |
|||
readonly=False, |
|||
help="Base layout selection field inside " |
|||
"document layout model") |
|||
document_layout_id = fields.Many2one( |
|||
related='company_id.document_layout_id', readonly=False, |
|||
help="custom document layouts") |
|||
|
|||
@api.depends('report_layout_id', 'logo', 'font', 'primary_color', |
|||
'secondary_color', 'report_header', 'report_footer', |
|||
'base_layout', 'document_layout_id') |
|||
def _compute_preview(self): |
|||
""" compute a qweb based preview to display on the wizard """ |
|||
|
|||
styles = self._get_asset_style() |
|||
|
|||
for wizard in self: |
|||
if wizard.report_layout_id: |
|||
if wizard.base_layout == 'default': |
|||
preview_css = self._get_css_for_preview(styles, wizard.id) |
|||
ir_ui_view = wizard.env['ir.ui.view'] |
|||
wizard.preview = ir_ui_view._render_template( |
|||
'web.report_invoice_wizard_preview', |
|||
{'company': wizard, 'preview_css': preview_css}) |
|||
elif wizard.base_layout == 'normal': |
|||
preview_css = self._get_css_for_preview(styles, wizard.id) |
|||
ir_ui_view = wizard.env['ir.ui.view'] |
|||
wizard.preview = ir_ui_view._render_template( |
|||
'invoice_format_editor.report_preview_normal', |
|||
{'company': wizard, 'preview_css': preview_css, }) |
|||
|
|||
elif wizard.base_layout == 'modern': |
|||
preview_css = self._get_css_for_preview(styles, wizard.id) |
|||
ir_ui_view = wizard.env['ir.ui.view'] |
|||
wizard.preview = ir_ui_view._render_template( |
|||
'invoice_format_editor.report_preview_modern', |
|||
{'company': wizard, 'preview_css': preview_css, }) |
|||
|
|||
elif wizard.base_layout == 'old': |
|||
preview_css = self._get_css_for_preview(styles, wizard.id) |
|||
ir_ui_view = wizard.env['ir.ui.view'] |
|||
wizard.preview = ir_ui_view._render_template( |
|||
'invoice_format_editor.report_preview_old', |
|||
{'company': wizard, 'preview_css': preview_css, }) |
|||
else: |
|||
wizard.preview = False |
|||
else: |
|||
wizard.preview = False |
|||
|
|||
@api.onchange('paperformat_id') |
|||
def _onchange_paperformat_id(self): |
|||
if self.paperformat_id.id == 3: |
|||
self.base_layout = 'default' |
@ -0,0 +1,70 @@ |
|||
# -*- coding: utf-8 -*- |
|||
############################################################################# |
|||
# |
|||
# Cybrosys Technologies Pvt. Ltd. |
|||
# |
|||
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) |
|||
# Author: Jumana Jabin MK(<https://www.cybrosys.com>) |
|||
# |
|||
# You can modify it under the terms of the GNU AFFERO |
|||
# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. |
|||
# |
|||
# 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 (AGPL v3) for more details. |
|||
# |
|||
# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE |
|||
# (AGPL v3) along with this program. |
|||
# If not, see <http://www.gnu.org/licenses/>. |
|||
# |
|||
############################################################################# |
|||
"""doc layout""" |
|||
from odoo import models, fields |
|||
|
|||
|
|||
class AddDocumentTemplate(models.Model): |
|||
"""Doc layout model""" |
|||
_name = "doc.layout" |
|||
_description = 'Adding the fields for customization' |
|||
_rec_name = 'name' |
|||
|
|||
name = fields.Char("Name") |
|||
base_color = fields.Char(srting="Base Color", |
|||
help="Background color for the invoice") |
|||
heading_text_color = fields.Char(srting="Heading text Color", |
|||
help="Heading Text color") |
|||
text_color = fields.Char(srting="Text Color", help="Text color of items") |
|||
customer_text_color = fields.Char(srting="Customer Text Color", |
|||
help="Customer address text color") |
|||
company_text_color = fields.Char(srting="Company Text Color", |
|||
help="Company address Text color") |
|||
logo_position = fields.Selection(selection=[('left', 'Left'), ('right', 'Right')], |
|||
string="Logo Position", |
|||
help="Company logo position") |
|||
tagline_position = fields.Selection(selection=[('left', 'Left'), ('right', 'Right')], |
|||
string="Tagline Position", |
|||
help="Company Tagline position") |
|||
customer_position = fields.Selection( |
|||
selection=[('left', 'Left'), ('right', 'Right')], string="Customer position", |
|||
help="Customer address position") |
|||
company_position = fields.Selection(selection=[('left', 'Left'), ('right', 'Right')], |
|||
string="Company Address Position", |
|||
help="Company address position") |
|||
sales_person = fields.Boolean(string='Sales person', default=True, |
|||
help="Sales Person") |
|||
description = fields.Boolean(string='Description', default=True, |
|||
help="Description") |
|||
tax_value = fields.Boolean(string='Tax', default=True, help="Tax") |
|||
reference = fields.Boolean(string='Customer Reference', default=True, |
|||
help="Customer Reference") |
|||
source = fields.Boolean(string='Source', default=False, |
|||
help="Source Document") |
|||
address = fields.Boolean(string='Address', default=True, |
|||
help="Address") |
|||
city = fields.Boolean(string='City', default=True, |
|||
help="City") |
|||
country = fields.Boolean(string='Country', default=True, |
|||
help="Country") |
|||
vat = fields.Boolean(string='VAT', default=True, |
|||
help='Customer vat id') |
@ -1,74 +0,0 @@ |
|||
# -*- coding: utf-8 -*- |
|||
############################################################################# |
|||
# |
|||
# Cybrosys Technologies Pvt. Ltd. |
|||
# |
|||
# Copyright (C) 2021-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) |
|||
# Author: Cybrosys Techno Solutions(<https://www.cybrosys.com>) |
|||
# |
|||
# You can modify it under the terms of the GNU LESSER |
|||
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. |
|||
# |
|||
# 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. |
|||
# |
|||
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE |
|||
# (LGPL v3) along with this program. |
|||
# If not, see <http://www.gnu.org/licenses/>. |
|||
# |
|||
############################################################################# |
|||
|
|||
from odoo import models, fields, api |
|||
|
|||
|
|||
class AddDocumentTemplate(models.Model): |
|||
_name = "doc.layout" |
|||
_description = 'Adding the fields for customization' |
|||
_rec_name = 'name' |
|||
|
|||
name = fields.Char("Name") |
|||
|
|||
base_color = fields.Char("Base Color", |
|||
help="Background color for the invoice") |
|||
|
|||
heading_text_color = fields.Char("Heading text Color", |
|||
help="Heading Text color") |
|||
|
|||
text_color = fields.Char("Text Color", help="Text color of items") |
|||
|
|||
customer_text_color = fields.Char("Customer Text Color", |
|||
help="Customer address text color") |
|||
|
|||
company_text_color = fields.Char("Company Text Color", |
|||
help="Company address Text color") |
|||
|
|||
logo_position = fields.Selection([('left', 'Left'), ('right', 'Right')], |
|||
string="Logo Position", |
|||
help="Company logo position") |
|||
|
|||
customer_position = fields.Selection( |
|||
[('left', 'Left'), ('right', 'Right')], string="Customer position", |
|||
help="Customer address position") |
|||
|
|||
company_position = fields.Selection([('left', 'Left'), ('right', 'Right')], |
|||
string="Company Address Position", |
|||
help="Company address position") |
|||
|
|||
sales_person = fields.Boolean('Sales person', default=False, |
|||
help="Sales Person") |
|||
description = fields.Boolean('Description', default=False, |
|||
help="Description") |
|||
hsn_code = fields.Boolean('HSN Code', default=False, help="HSN code") |
|||
tax_value = fields.Boolean('Tax', default=False, help="Tax") |
|||
reference = fields.Boolean('Reference', default=False, |
|||
help="Customer Reference") |
|||
source = fields.Boolean('Source', default=False, |
|||
help="Source Document") |
|||
address = fields.Boolean('Address', default=False, |
|||
help="Address") |
|||
city = fields.Boolean('City', default=False, |
|||
help="City") |
|||
country = fields.Boolean('Country', default=False, |
|||
help="Country") |
@ -0,0 +1,278 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<odoo> |
|||
<data> |
|||
<!--Modern Template Preview--> |
|||
<template id="report_preview_modern"> |
|||
<t t-call="web.html_preview_container"> |
|||
<t t-call="web.external_layout"> |
|||
<t t-set="model" t-value="'account.move'"/> |
|||
<div class="page" style="overflow: hidden;"> |
|||
<br/><br/> |
|||
<!--Invoice details--> |
|||
<div class="row"> |
|||
<div t-attf-style=" background-color:#{company.document_layout_id.base_color};padding:2% ;color:#{company.document_layout_id.customer_text_color};"> |
|||
<h2> |
|||
<div |
|||
t-attf-style="color:#{company.document_layout_id.heading_text_color};"> |
|||
Invoice INV/2021/07/0003 |
|||
</div> |
|||
</h2><br/> |
|||
<div id="informations" |
|||
class="row mt32 mb32"> |
|||
<div class="col-auto mw-100 mb-2" |
|||
name="invoice_date"> |
|||
<p t-attf-style="color:#{company.document_layout_id.heading_text_color};"> |
|||
Invoice Date:</p> |
|||
<p class="m-0" |
|||
t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
07/08/2021</p> |
|||
</div> |
|||
<div class="col-auto mw-100 mb-2" |
|||
name="due_date"> |
|||
<p t-attf-style="color:#{company.document_layout_id.heading_text_color};"> |
|||
Due Date:</p> |
|||
<p t-attf-style="color:#{company.document_layout_id.text_color};" |
|||
class="m-0">08/07/2021</p> |
|||
</div> |
|||
<div class="col-auto mw-100 mb-2" |
|||
name="due_date"> |
|||
<p t-attf-style="color:#{company.document_layout_id.heading_text_color};"> |
|||
Payment Term:</p> |
|||
<p t-attf-style="color:#{company.document_layout_id.text_color};" |
|||
class="m-0">30 Days</p> |
|||
</div> |
|||
<div t-if="company.document_layout_id.sales_person" |
|||
class="col-auto mw-100 mb-2" |
|||
name="due_date"> |
|||
<p t-attf-style="color:#{company.document_layout_id.heading_text_color};"> |
|||
Sales Person:</p> |
|||
<p t-attf-style="color:#{company.document_layout_id.text_color};" |
|||
class="m-0">Mitchell Admin</p> |
|||
</div> |
|||
<div t-if="company.document_layout_id.reference" |
|||
class="col-auto mw-100 mb-2" |
|||
name="sales"> |
|||
<p t-attf-style="color:#{company.document_layout_id.heading_text_color};"> |
|||
Reference:</p> |
|||
<p t-attf-style="color:#{company.document_layout_id.text_color};" |
|||
class="m-0">SA0023021</p> |
|||
</div> |
|||
<div t-if="company.document_layout_id.source" |
|||
class="col-auto mw-100 mb-2" |
|||
name="sales"> |
|||
<p t-attf-style="color:#{company.document_layout_id.heading_text_color};"> |
|||
Source</p> |
|||
<p t-attf-style="color:#{company.document_layout_id.text_color};" |
|||
class="m-0">LinkedIn</p> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div><br/> |
|||
<!--Customer Address--> |
|||
<div t-if="company.document_layout_id.address" |
|||
id="customer_address" |
|||
t-attf-style="color:#{company.document_layout_id.customer_text_color}"> |
|||
<div class="row"> |
|||
<div style="width:50%;" |
|||
t-attf-class="{{'ms-auto' if company.document_layout_id.customer_position == 'right' else ''}}"> |
|||
<div itemprop="address" |
|||
class="address" > |
|||
<div> |
|||
<span>Deco Addict</span> |
|||
</div> |
|||
<div> |
|||
<span>77 Santa Barbara Rd</span> |
|||
</div> |
|||
<div> |
|||
<span t-if="company.document_layout_id.city"> |
|||
Pleasant Hill CA 94523 |
|||
</span> |
|||
</div> |
|||
<div> |
|||
<span t-if="company.document_layout_id.country"> |
|||
United States |
|||
</span> |
|||
</div> |
|||
<div> |
|||
<span t-if="company.document_layout_id.vat"> |
|||
VAT00214 |
|||
</span> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div><br/> |
|||
<!--Product Table--> |
|||
<div class="row"> |
|||
<table class="table table-sm table-borderless"> |
|||
<tr> |
|||
<th class='text-center' |
|||
t-attf-style=" background-color:#{company.document_layout_id.base_color};color:#{company.document_layout_id.heading_text_color};"> |
|||
Product |
|||
</th> |
|||
<th t-if="company.document_layout_id.description" |
|||
class='text-center' |
|||
t-attf-style=" background-color:#{company.document_layout_id.base_color};color:#{company.document_layout_id.heading_text_color};"> |
|||
Description |
|||
</th> |
|||
<th class='text-center' |
|||
t-attf-style=" background-color:#{company.document_layout_id.base_color};color:#{company.document_layout_id.heading_text_color};"> |
|||
Quantity |
|||
</th> |
|||
<th class='text-center' |
|||
t-attf-style=" background-color:#{company.document_layout_id.base_color};color:#{company.document_layout_id.heading_text_color};"> |
|||
Unit Price |
|||
</th> |
|||
<th t-if="company.document_layout_id.tax_value" |
|||
class='text-center' |
|||
t-attf-style=" background-color:#{company.document_layout_id.base_color};color:#{company.document_layout_id.heading_text_color};"> |
|||
Taxes |
|||
</th> |
|||
<th class='text-center' |
|||
t-attf-style=" background-color:#{company.document_layout_id.base_color};color:#{company.document_layout_id.heading_text_color};"> |
|||
Price |
|||
</th> |
|||
</tr> |
|||
<!--Invoice lines body--> |
|||
<tr> |
|||
<td t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<font> |
|||
<p class="text-center">Three-Seat Sofa</p> |
|||
</font> |
|||
</td> |
|||
|
|||
<td t-if="company.document_layout_id.description" |
|||
t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<font> |
|||
<p class="text-center">[FURN_8999] Three-Seat Sofa</p> |
|||
</font> |
|||
</td> |
|||
<td t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<font> |
|||
<p class="text-center">5.000</p> |
|||
</font> |
|||
</td> |
|||
<td t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<font> |
|||
<p class="text-center">1,500.00</p> |
|||
</font> |
|||
</td> |
|||
<td t-if="company.document_layout_id.tax_value" |
|||
t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<font> |
|||
<p class="text-center">15.00%</p> |
|||
</font> |
|||
</td> |
|||
<td t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<font> |
|||
<p class="text-center">7,500.00</p> |
|||
</font> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<font> |
|||
<p class="text-center">Four Person Desk</p> |
|||
</font> |
|||
</td> |
|||
<td t-if="company.document_layout_id.description" |
|||
t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<font> |
|||
<p class="text-center">FURN_8220] Four Person Desk |
|||
<br/> |
|||
Four person modern office |
|||
workstation</p> |
|||
</font> |
|||
</td> |
|||
<td t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<font> |
|||
<p class="text-center">5.000</p> |
|||
</font> |
|||
</td> |
|||
<td t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<font> |
|||
<p class="text-center">23,500.00</p> |
|||
</font> |
|||
</td> |
|||
<td t-if="company.document_layout_id.tax_value" |
|||
t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<font> |
|||
<p class="text-center">15.00%</p> |
|||
</font> |
|||
</td> |
|||
<td t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<font> |
|||
<p class="text-center">117,500.00</p> |
|||
</font> |
|||
</td> |
|||
</tr> |
|||
</table> |
|||
</div> |
|||
<!--Payment details--> |
|||
<div class="clearfix mb-4"> |
|||
<div id="total" class="row"> |
|||
<div t-attf-class="#{'col-6' if report_type != 'html' else 'col-sm-7 col-md-6'} ms-auto"> |
|||
<table class="table table-sm table-borderless" style="page-break-inside: avoid;"> |
|||
<tbody> |
|||
<tr class="border-black o_subtotal" |
|||
t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<td> |
|||
<strong t-attf-style="color:#{company.document_layout_id.text_color};">Untaxed Amount</strong> |
|||
</td> |
|||
<td class="text-end"> |
|||
<span>$ |
|||
<span class="oe_currency_value"> |
|||
125,000.00 |
|||
</span> |
|||
</span> |
|||
</td> |
|||
</tr> |
|||
<tr style=""> |
|||
<td t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<span class="text-nowrap"> |
|||
Tax 15% |
|||
</span> |
|||
</td> |
|||
<td class="text-end o_price_total" t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<span class="text-nowrap">$ |
|||
18,750.00 |
|||
</span> |
|||
</td> |
|||
</tr> |
|||
<tr class="border-black o_total"> |
|||
<td> |
|||
<strong t-attf-style="color:#{company.document_layout_id.customer_text_color};">Total</strong> |
|||
</td> |
|||
<td class="text-end"> |
|||
<span class="text-nowrap" t-attf-style="color:#{company.document_layout_id.customer_text_color};">$ |
|||
<span class="oe_currency_value"> |
|||
143,750.00 |
|||
</span> |
|||
</span> |
|||
</td> |
|||
</tr> |
|||
</tbody> |
|||
</table> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div style="padding-top: 10%;" class="col-12"> |
|||
<p t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
Please use the following communication for your |
|||
payment : |
|||
<b> |
|||
<span> |
|||
INV/2021/07/0003 |
|||
</span> |
|||
</b> |
|||
</p> |
|||
<p name="payment_term" t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<span>Payment terms: 30 Days</span> |
|||
</p> |
|||
</div> |
|||
</div> |
|||
</t> |
|||
</t> |
|||
</template> |
|||
</data> |
|||
</odoo> |
@ -0,0 +1,293 @@ |
|||
<odoo> |
|||
<data> |
|||
<!--Normal Template Preview--> |
|||
<template id="report_preview_normal"> |
|||
<t t-call="web.html_preview_container"> |
|||
<t t-call="web.external_layout"> |
|||
<t t-set="model" t-value="'account.move'"/> |
|||
<div><br/> |
|||
<!--Customer Address--> |
|||
<div t-if="company.document_layout_id.address" |
|||
class="row" |
|||
id="customer address" |
|||
t-attf-style="color:#{company.document_layout_id.customer_text_color}"> |
|||
<div style="width:50%;" |
|||
t-attf-class="{{'ms-auto' if company.document_layout_id.customer_position == 'right' else ''}}"> |
|||
<div itemprop="address" |
|||
class="address" > |
|||
<div> |
|||
<span>Deco Addict</span> |
|||
</div> |
|||
<div> |
|||
<span>77 Santa Barbara Rd</span> |
|||
</div> |
|||
<div> |
|||
<span t-if="company.document_layout_id.city"> |
|||
Pleasant Hill CA 94523 |
|||
</span> |
|||
</div> |
|||
<div> |
|||
<span t-if="company.document_layout_id.country"> |
|||
United States |
|||
</span> |
|||
</div> |
|||
<div> |
|||
<span t-if="company.document_layout_id.vat"> |
|||
VAT00214 |
|||
</span> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div><br/> |
|||
<!--Customer details table--> |
|||
<table class="table table-sm table-borderless" |
|||
style="padding-top:20px;width:100%"> |
|||
<tr> |
|||
<th class='text-center' |
|||
t-attf-style=" background-color:#{company.document_layout_id.base_color};color:#{company.document_layout_id.heading_text_color};"> |
|||
Invoice Date |
|||
</th> |
|||
<th class='text-center' |
|||
t-attf-style=" background-color:#{company.document_layout_id.base_color};color:#{company.document_layout_id.heading_text_color};"> |
|||
Due Date |
|||
</th> |
|||
<th class='text-center' |
|||
t-attf-style=" background-color:#{company.document_layout_id.base_color};color:#{company.document_layout_id.heading_text_color};"> |
|||
Payment Term |
|||
</th> |
|||
<th t-if="company.document_layout_id.sales_person" |
|||
class='text-center' |
|||
t-attf-style=" background-color:#{company.document_layout_id.base_color};color:#{company.document_layout_id.heading_text_color};"> |
|||
Sales Person |
|||
</th> |
|||
<th t-if="company.document_layout_id.reference" |
|||
class='text-center' |
|||
t-attf-style=" background-color:#{company.document_layout_id.base_color};color:#{company.document_layout_id.heading_text_color};"> |
|||
Reference |
|||
</th> |
|||
<th t-if="company.document_layout_id.source" |
|||
class='text-center' |
|||
t-attf-style=" background-color:#{company.document_layout_id.base_color};color:#{company.document_layout_id.heading_text_color};"> |
|||
Source |
|||
</th> |
|||
</tr> |
|||
<tr> |
|||
<td t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<font> |
|||
<p class="text-center">07/08/2021</p> |
|||
</font> |
|||
</td> |
|||
<td t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<font> |
|||
<p class="text-center">08/08/2021</p> |
|||
</font> |
|||
</td> |
|||
<td t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<font> |
|||
<p class="text-center">30 Days</p> |
|||
</font> |
|||
</td> |
|||
<td t-if="company.document_layout_id.sales_person" |
|||
t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<font> |
|||
<p class="text-center">Mitchell admin</p> |
|||
</font> |
|||
</td> |
|||
<td t-if="company.document_layout_id.reference" |
|||
t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<font> |
|||
<p class="text-center">SA0023021</p> |
|||
</font> |
|||
</td> |
|||
<td t-if="company.document_layout_id.source" |
|||
t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<font> |
|||
<p class="text-center">LinkedIn</p> |
|||
</font> |
|||
</td> |
|||
</tr> |
|||
</table> |
|||
<!--Invoice Number--> |
|||
<div class="page" style="text-align: center"> |
|||
<h2 t-attf-style="color:#{company.document_layout_id.customer_text_color};"> |
|||
<span t-attf-style="color:#{company.document_layout_id.customer_text_color};">Invoice</span> |
|||
<span t-attf-style="color:#{company.document_layout_id.customer_text_color};">INV/2021/07/0003</span> |
|||
</h2> |
|||
</div><br/> |
|||
<!--Invoice Product details--> |
|||
<table class="table table-sm table-borderless" |
|||
style="padding-top:20px;width:100%"> |
|||
<tr> |
|||
<th class='text-center' |
|||
t-attf-style=" background-color:#{company.document_layout_id.base_color};color:#{company.document_layout_id.heading_text_color};"> |
|||
Product |
|||
</th> |
|||
<th t-if="company.document_layout_id.description" |
|||
class='text-center' |
|||
t-attf-style=" background-color:#{company.document_layout_id.base_color};color:#{company.document_layout_id.heading_text_color};"> |
|||
Description |
|||
</th> |
|||
<th class='text-center' |
|||
t-attf-style=" background-color:#{company.document_layout_id.base_color};color:#{company.document_layout_id.heading_text_color};"> |
|||
Quantity |
|||
</th> |
|||
<th class='text-center' |
|||
t-attf-style=" background-color:#{company.document_layout_id.base_color};color:#{company.document_layout_id.heading_text_color};"> |
|||
Unit Price |
|||
</th> |
|||
<th t-if="company.document_layout_id.tax_value" |
|||
class='text-center' |
|||
t-attf-style=" background-color:#{company.document_layout_id.base_color};color:#{company.document_layout_id.heading_text_color};"> |
|||
Taxes |
|||
</th> |
|||
<th class='text-center' |
|||
t-attf-style=" background-color:#{company.document_layout_id.base_color};color:#{company.document_layout_id.heading_text_color};"> |
|||
Price |
|||
</th> |
|||
</tr> |
|||
<!--Invoice lines body--> |
|||
<tr> |
|||
<td t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
|
|||
<font> |
|||
<p class="text-center">Three-Seat Sofa</p> |
|||
</font> |
|||
</td> |
|||
|
|||
<td t-if="company.document_layout_id.description" |
|||
t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<font> |
|||
<p class="text-center">[FURN_8999] Three-Seat Sofa</p> |
|||
</font> |
|||
</td> |
|||
<td t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<font> |
|||
<p class="text-center">5.000</p> |
|||
</font> |
|||
</td> |
|||
<td t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<font> |
|||
<p class="text-center">1,500.00</p> |
|||
</font> |
|||
</td> |
|||
<td t-if="company.document_layout_id.tax_value" |
|||
t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<font> |
|||
<p class="text-center">15.00%</p> |
|||
</font> |
|||
</td> |
|||
<td t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<font> |
|||
<p class="text-center">7,500.00</p> |
|||
</font> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<font> |
|||
<p class="text-center">Four Person Desk</p> |
|||
</font> |
|||
</td> |
|||
<td t-if="company.document_layout_id.description" |
|||
t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<font> |
|||
<p class="text-center">FURN_8220] Four Person Desk |
|||
<br/> |
|||
Four person modern office |
|||
workstation</p> |
|||
</font> |
|||
</td> |
|||
<td t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<font> |
|||
<p class="text-center">5.000</p> |
|||
</font> |
|||
</td> |
|||
<td t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<font> |
|||
<p class="text-center">23,500.00</p> |
|||
</font> |
|||
</td> |
|||
<td t-if="company.document_layout_id.tax_value" |
|||
t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<font> |
|||
<p class="text-center">15.00%</p> |
|||
</font> |
|||
</td> |
|||
<td t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<font> |
|||
<p class="text-center">117,500.00</p> |
|||
</font> |
|||
</td> |
|||
</tr> |
|||
</table> |
|||
<!--Payment details--> |
|||
<div> |
|||
<div class="clearfix mb-4"> |
|||
<div id="total" class="row"> |
|||
<div t-attf-class="#{'col-6' if report_type != 'html' else 'col-sm-7 col-md-6'} ms-auto"> |
|||
<table class="table table-sm table-borderless" style="page-break-inside: avoid;"> |
|||
<tbody> |
|||
<tr class="border-black o_subtotal"> |
|||
<td t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<strong t-attf-style="color:#{company.document_layout_id.text_color};">Untaxed Amount</strong> |
|||
</td> |
|||
<td class="text-end" t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<span>$ |
|||
<span class="oe_currency_value"> |
|||
125,000.00 |
|||
</span> |
|||
</span> |
|||
</td> |
|||
</tr> |
|||
<tr style=""> |
|||
<td> |
|||
<span class="text-nowrap"> |
|||
Tax 15% |
|||
</span> |
|||
</td> |
|||
<td class="text-end o_price_total"> |
|||
<span class="text-nowrap">$ |
|||
18,750.00 |
|||
</span> |
|||
</td> |
|||
</tr> |
|||
<tr class="border-black o_total"> |
|||
<td> |
|||
<strong t-attf-style="color:#{company.document_layout_id.customer_text_color};">Total</strong> |
|||
</td> |
|||
<td class="text-end"> |
|||
<span class="text-nowrap" |
|||
t-attf-style="color:#{company.document_layout_id.customer_text_color};">$ |
|||
<span class="oe_currency_value"> |
|||
143,750.00 |
|||
</span> |
|||
</span> |
|||
</td> |
|||
</tr> |
|||
</tbody> |
|||
</table> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<!--More description--> |
|||
<div style="padding-top:10%;" class="col-12"> |
|||
<p t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
Please use the following communication for your |
|||
payment : |
|||
<b> |
|||
<span> |
|||
INV/2021/07/0003 |
|||
</span> |
|||
</b> |
|||
</p> |
|||
<p name="payment_term" t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<span>Payment terms: 30 Days</span> |
|||
</p> |
|||
</div> |
|||
</div> |
|||
</t> |
|||
</t> |
|||
</template> |
|||
</data> |
|||
</odoo> |
@ -0,0 +1,282 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<odoo> |
|||
<data> |
|||
<!--Old Template Preview--> |
|||
<template id="report_preview_old"> |
|||
<t t-call="web.html_preview_container"> |
|||
<t t-call="web.external_layout"> |
|||
<t t-set="model" t-value="'account.move'"/> |
|||
<div class="page" style="overflow: hidden;"> |
|||
<!--Customer Address--> |
|||
<div t-if="company.document_layout_id.address" |
|||
id="customer address" |
|||
t-attf-style="color:#{company.document_layout_id.customer_text_color}"> |
|||
<div class="row"> |
|||
<div style="width:50%;" |
|||
t-attf-class="{{'ms-auto' if company.document_layout_id.customer_position == 'right' else ''}}"> |
|||
<div itemprop="address" |
|||
class="address" > |
|||
<div> |
|||
<span>Deco Addict</span> |
|||
</div> |
|||
<div> |
|||
<span>77 Santa Barbara Rd</span> |
|||
</div> |
|||
<div> |
|||
<span t-if="company.document_layout_id.city"> |
|||
Pleasant Hill CA 94523 |
|||
</span> |
|||
</div> |
|||
<div> |
|||
<span t-if="company.document_layout_id.country"> |
|||
United States |
|||
</span> |
|||
</div> |
|||
<div> |
|||
<span t-if="company.document_layout_id.vat"> |
|||
VAT00214 |
|||
</span> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<br/><br/> |
|||
</div> |
|||
<!--Invoice details--> |
|||
<div class="row"> |
|||
<div t-attf-style=" background-color:#{company.document_layout_id.base_color};padding:2% ;color:#{company.document_layout_id.customer_text_color};"> |
|||
<h2> |
|||
<div |
|||
t-attf-style="color:#{company.document_layout_id.heading_text_color};"> |
|||
Invoice INV/2021/07/0003 |
|||
</div> |
|||
</h2><br/> |
|||
<div id="informations" |
|||
class="row mt32 mb32"> |
|||
<div class="col-auto mw-100 mb-2" |
|||
name="invoice_date"> |
|||
<p t-attf-style="color:#{company.document_layout_id.heading_text_color};"> |
|||
Invoice Date:</p> |
|||
<p class="m-0" |
|||
t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
07/08/2021</p> |
|||
</div> |
|||
<div class="col-auto mw-100 mb-2" |
|||
name="due_date"> |
|||
<p t-attf-style="color:#{company.document_layout_id.heading_text_color};"> |
|||
Due Date:</p> |
|||
<p t-attf-style="color:#{company.document_layout_id.text_color};" |
|||
class="m-0">08/07/2021</p> |
|||
</div> |
|||
<div class="col-auto mw-100 mb-2" |
|||
name="due_date"> |
|||
<p t-attf-style="color:#{company.document_layout_id.heading_text_color};"> |
|||
Payment Term:</p> |
|||
<p t-attf-style="color:#{company.document_layout_id.text_color};" |
|||
class="m-0">30 Days</p> |
|||
</div> |
|||
<div t-if="company.document_layout_id.sales_person" |
|||
class="col-auto mw-100 mb-2" |
|||
name="due_date"> |
|||
<p t-attf-style="color:#{company.document_layout_id.heading_text_color};"> |
|||
Sales Person</p> |
|||
<p t-attf-style="color:#{company.document_layout_id.text_color};" |
|||
class="m-0">Mitchell Admin</p> |
|||
</div> |
|||
<div t-if="company.document_layout_id.reference" |
|||
class="col-auto mw-100 mb-2" |
|||
name="sales"> |
|||
<p t-attf-style="color:#{company.document_layout_id.heading_text_color};"> |
|||
Reference</p> |
|||
<p t-attf-style="color:#{company.document_layout_id.text_color};" |
|||
class="m-0">SA0023021</p> |
|||
</div> |
|||
<div t-if="company.document_layout_id.source" |
|||
class="col-auto mw-100 mb-2" |
|||
name="sales"> |
|||
<p t-attf-style="color:#{company.document_layout_id.heading_text_color};"> |
|||
Source</p> |
|||
<p t-attf-style="color:#{company.document_layout_id.text_color};" |
|||
class="m-0">LinkedIn</p> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div><br/><br/> |
|||
<!--Product Table--> |
|||
<div class="row"> |
|||
<table class="table table-sm table-borderless"> |
|||
<tr> |
|||
<th class='text-center' |
|||
t-attf-style=" background-color:#{company.document_layout_id.base_color};color:#{company.document_layout_id.heading_text_color};"> |
|||
Product |
|||
</th> |
|||
<th t-if="company.document_layout_id.description" |
|||
class='text-center' |
|||
t-attf-style=" background-color:#{company.document_layout_id.base_color};color:#{company.document_layout_id.heading_text_color};"> |
|||
Description |
|||
</th> |
|||
<th class='text-center' |
|||
t-attf-style=" background-color:#{company.document_layout_id.base_color};color:#{company.document_layout_id.heading_text_color};"> |
|||
Quantity |
|||
</th> |
|||
<th class='text-center' |
|||
t-attf-style=" background-color:#{company.document_layout_id.base_color};color:#{company.document_layout_id.heading_text_color};"> |
|||
Unit Price |
|||
</th> |
|||
<th t-if="company.document_layout_id.tax_value" |
|||
class='text-center' |
|||
t-attf-style=" background-color:#{company.document_layout_id.base_color};color:#{company.document_layout_id.heading_text_color};"> |
|||
Taxes |
|||
</th> |
|||
<th class='text-center' |
|||
t-attf-style=" background-color:#{company.document_layout_id.base_color};color:#{company.document_layout_id.heading_text_color};"> |
|||
Price |
|||
</th> |
|||
</tr> |
|||
<!--Invoice lines body--> |
|||
<tr> |
|||
<td t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<font> |
|||
<p class="text-center">Three-Seat Sofa</p> |
|||
</font> |
|||
</td> |
|||
|
|||
<td t-if="company.document_layout_id.description" |
|||
t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<font> |
|||
<p class="text-center">[FURN_8999] Three-Seat Sofa</p> |
|||
</font> |
|||
</td> |
|||
<td t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<font> |
|||
<p class="text-center">5.000</p> |
|||
</font> |
|||
</td> |
|||
<td t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<font> |
|||
<p class="text-center">1,500.00</p> |
|||
</font> |
|||
</td> |
|||
<td t-if="company.document_layout_id.tax_value" |
|||
t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<font> |
|||
<p class="text-center">15.00%</p> |
|||
</font> |
|||
</td> |
|||
<td t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<font> |
|||
<p class="text-center">7,500.00</p> |
|||
</font> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<font> |
|||
<p class="text-center">Four Person Desk</p> |
|||
</font> |
|||
</td> |
|||
<td t-if="company.document_layout_id.description" |
|||
t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<font> |
|||
<p class="text-center">FURN_8220] Four Person Desk |
|||
<br/> |
|||
Four person modern office |
|||
workstation</p> |
|||
</font> |
|||
</td> |
|||
<td t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<font> |
|||
<p class="text-center">5.000</p> |
|||
</font> |
|||
</td> |
|||
<td t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<font> |
|||
<p class="text-center">23,500.00</p> |
|||
</font> |
|||
</td> |
|||
<td t-if="company.document_layout_id.tax_value" |
|||
t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<font> |
|||
<p class="text-center">15.00%</p> |
|||
</font> |
|||
</td> |
|||
<td t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<font> |
|||
<p class="text-center">117,500.00</p> |
|||
</font> |
|||
</td> |
|||
</tr> |
|||
</table> |
|||
</div> |
|||
<!--Payment details--> |
|||
<div class="clearfix mb-4"> |
|||
<div id="total" class="row"> |
|||
<div t-attf-class="#{'col-6' if report_type != 'html' else 'col-sm-7 col-md-6'} ms-auto" |
|||
t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<table class="table table-sm table-borderless" |
|||
style="page-break-inside: avoid;"> |
|||
<tbody> |
|||
<tr class="border-black o_subtotal" |
|||
t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<td> |
|||
<strong t-attf-style="color:#{company.document_layout_id.text_color};">Untaxed Amount</strong> |
|||
</td> |
|||
<td class="text-end"> |
|||
<span>$ |
|||
<span class="oe_currency_value"> |
|||
125,000.00 |
|||
</span> |
|||
</span> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<span class="text-nowrap"> |
|||
Tax 15% |
|||
</span> |
|||
</td> |
|||
<td class="text-end o_price_total"> |
|||
<span class="text-nowrap"> |
|||
$ |
|||
18,750.00 |
|||
</span> |
|||
</td> |
|||
</tr> |
|||
<tr class="border-black o_total"> |
|||
<td> |
|||
<strong t-attf-style="color:#{company.document_layout_id.customer_text_color};">Total</strong> |
|||
</td> |
|||
<td class="text-end"> |
|||
<span class="text-nowrap" |
|||
t-attf-style="color:#{company.document_layout_id.customer_text_color};">$ |
|||
<span class="oe_currency_value"> |
|||
143,750.00 |
|||
</span> |
|||
</span> |
|||
</td> |
|||
</tr> |
|||
</tbody> |
|||
</table> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div style="padding-top:10%;" class="col-12"> |
|||
<p t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
Please use the following communication for your |
|||
payment : |
|||
<b> |
|||
<span> |
|||
INV/2021/07/0003 |
|||
</span> |
|||
</b> |
|||
</p> |
|||
<p name="payment_term" t-attf-style="color:#{company.document_layout_id.text_color};"> |
|||
<span>Payment terms: 30 Days</span> |
|||
</p> |
|||
</div> |
|||
</div> |
|||
</t> |
|||
</t> |
|||
</template> |
|||
</data> |
|||
</odoo> |
@ -1,463 +0,0 @@ |
|||
<odoo> |
|||
<data> |
|||
<!--Normal Template View--> |
|||
<template id="custom_template_report_invoice_normal"> |
|||
<t t-if="o and 'company_id' in o"> |
|||
<t t-set="company" t-value="o.company_id"/> |
|||
</t> |
|||
<t t-if="not o or not 'company_id' in o"> |
|||
<t t-set="company" t-value="res_company"/> |
|||
</t> |
|||
<div class="header row mt32 mb32"> |
|||
<div class="page-header col-12"> |
|||
<div t-attf-class="pull-left"> |
|||
<img t-if="company.logo" t-att-src="image_data_uri(company.logo)" style="max-height: 45px;" |
|||
alt="Logo"/> |
|||
</div> |
|||
<div t-attf-class="pull-left" |
|||
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> |
|||
<t t-call="web.external_layout"> |
|||
<t t-set="o" |
|||
t-value="o.with_context({'lang':o.partner_id.lang})"/> |
|||
<table class="table table-borderless"> |
|||
<tr> |
|||
<th scope="col" |
|||
t-attf-style=" background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color};"> |
|||
<font> |
|||
<strong>Customer Address</strong> |
|||
</font> |
|||
</th> |
|||
<span t-if="o.invoice_date"> |
|||
<th scope="col" |
|||
t-attf-style=" background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color};"> |
|||
<font> |
|||
<strong>Invoice Date</strong> |
|||
</font> |
|||
</th> |
|||
</span> |
|||
<span t-if="o.invoice_date_due"> |
|||
<th scope="col" |
|||
t-attf-style=" background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color};"> |
|||
<font> |
|||
<strong>Due Date</strong> |
|||
</font> |
|||
</th> |
|||
</span> |
|||
<span t-if="o.invoice_payment_term_id"> |
|||
<th scope="col" |
|||
t-attf-style=" background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color};"> |
|||
<font> |
|||
<strong>Payment Term</strong> |
|||
</font> |
|||
</th> |
|||
</span> |
|||
|
|||
<span t-if="o.theme_id.sales_person"> |
|||
<span t-if="o.user_id"> |
|||
<th scope="col" |
|||
t-attf-style=" background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color};"> |
|||
<font> |
|||
<strong>SalesPerson</strong> |
|||
</font> |
|||
</th> |
|||
</span> |
|||
</span> |
|||
<span t-if="o.theme_id.reference"> |
|||
<span t-if="o.ref"> |
|||
<th scope="col" |
|||
t-attf-style=" background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color};"> |
|||
<font> |
|||
<strong>Reference</strong> |
|||
</font> |
|||
</th> |
|||
</span> |
|||
</span> |
|||
<span t-if="o.theme_id.source"> |
|||
<span t-if="o.invoice_origin"> |
|||
<th scope="col" |
|||
t-attf-style=" background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color};"> |
|||
<font> |
|||
<strong>Source</strong> |
|||
</font> |
|||
</th> |
|||
</span> |
|||
</span> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<span style="color:#{o.theme_id.customer_text_color} !important;" |
|||
t-field="o.partner_id"/> |
|||
<br/> |
|||
<span t-if="o.theme_id.address"> |
|||
<span t-attf-style="color:#{o.theme_id.customer_text_color} !important;" |
|||
t-field="o.partner_id.street"/> |
|||
<br/> |
|||
<span t-attf-style="color:#{o.theme_id.customer_text_color} !important;" |
|||
t-field="o.partner_id.street2"/> |
|||
<br/> |
|||
</span> |
|||
|
|||
<span t-if="o.theme_id.city"> |
|||
<span t-attf-style="color:#{o.theme_id.customer_text_color} !important;" |
|||
t-field="o.partner_id.city"/> |
|||
<br/> |
|||
</span> |
|||
|
|||
<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"/> |
|||
<br/> |
|||
</span> |
|||
<span t-attf-style="color:#{o.theme_id.customer_text_color} !important;" |
|||
t-field="o.partner_id.vat"/> |
|||
<br/> |
|||
</td> |
|||
<span t-if="o.invoice_date"> |
|||
<td> |
|||
<font> |
|||
<p t-field="o.invoice_date"/> |
|||
</font> |
|||
</td> |
|||
</span> |
|||
<span t-if="o.invoice_date_due"> |
|||
<td> |
|||
<font> |
|||
<p t-field="o.invoice_date_due"/> |
|||
</font> |
|||
</td> |
|||
</span> |
|||
<span t-if="o.invoice_payment_term_id"> |
|||
<td> |
|||
<font> |
|||
<p t-field="o.invoice_payment_term_id"/> |
|||
</font> |
|||
</td> |
|||
</span> |
|||
<span t-if="o.theme_id.sales_person"> |
|||
<span t-if="o.user_id"> |
|||
<td> |
|||
<font> |
|||
<p t-field="o.user_id"/> |
|||
</font> |
|||
</td> |
|||
</span> |
|||
</span> |
|||
<span t-if="o.theme_id.reference"> |
|||
<span t-if="o.ref"> |
|||
<td> |
|||
<font> |
|||
<p t-field="o.ref"/> |
|||
</font> |
|||
</td> |
|||
</span> |
|||
</span> |
|||
<span t-if="o.theme_id.source"> |
|||
<span t-if="o.invoice_origin"> |
|||
<td> |
|||
<font> |
|||
<p t-field="o.invoice_origin"/> |
|||
</font> |
|||
</td> |
|||
</span> |
|||
</span> |
|||
</tr> |
|||
</table> |
|||
<div class="page"> |
|||
<div t-attf-style="padding:2%"> |
|||
<h2> |
|||
<center> |
|||
<span t-if="o.move_type == 'out_invoice' and (o.state == 'draft' or o.state == 'posted')"> |
|||
<font>Invoice</font> |
|||
</span> |
|||
<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.heading_text_color}"> |
|||
Vendor Bill |
|||
</font> |
|||
</span> |
|||
<!-- <font>--> |
|||
<!-- <span t-field="o.name"/>--> |
|||
<!-- </font>--> |
|||
</center> |
|||
</h2> |
|||
</div> |
|||
<div style="padding-top:20px;width:100%"> |
|||
<div style="padding-top:20px;"/> |
|||
<t t-set="display_discount" |
|||
t-value="any([l.discount for l in o.invoice_line_ids])"/> |
|||
<table class="table table"> |
|||
<thead> |
|||
<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};"> |
|||
Description |
|||
</th> |
|||
</span> |
|||
<span t-if="o.theme_id.hsn_code"> |
|||
<th class="text-right" |
|||
t-attf-style=" background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color};"> |
|||
HSN/SAC |
|||
</th> |
|||
</span> |
|||
<th class="text-right" |
|||
t-attf-style=" background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color};"> |
|||
Quantity |
|||
</th> |
|||
<th class="text-right" |
|||
t-attf-style=" background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color};"> |
|||
Unit Price |
|||
</th> |
|||
<th t-if="display_discount" |
|||
class="text-right" |
|||
t-attf-style=" background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color};"> |
|||
Disc.(%) |
|||
</th> |
|||
<span t-if="o.theme_id.tax_value"> |
|||
<th class="text-right" |
|||
t-attf-style=" background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color};"> |
|||
Taxes |
|||
</th> |
|||
</span> |
|||
<th class="text-right" |
|||
t-attf-style=" background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color};"> |
|||
Price |
|||
</th> |
|||
</tr> |
|||
</thead> |
|||
<tbody class="invoice_tbody"> |
|||
<tr t-foreach="o.invoice_line_ids" t-as="l"> |
|||
<td t-attf-style="color:#{o.theme_id.text_color};"> |
|||
<span t-field="l.product_id.name"/> |
|||
</td> |
|||
<span t-if="o.theme_id.description"> |
|||
<td t-attf-style="color:#{o.theme_id.text_color};"> |
|||
<span t-field="l.name"/> |
|||
</td> |
|||
</span> |
|||
<span t-if="o.theme_id.hsn_code"> |
|||
<td class="text-right" |
|||
t-attf-style="color:#{o.theme_id.text_color};"> |
|||
<t t-if="l.product_id.l10n_in_hsn_code"> |
|||
<span t-field="l.product_id.l10n_in_hsn_code"/> |
|||
</t> |
|||
</td> |
|||
</span> |
|||
<td class="text-right" |
|||
t-attf-style="color:#{o.theme_id.text_color};"> |
|||
<t t-if="l.quantity"> |
|||
<span t-field="l.quantity"/> |
|||
</t> |
|||
</td> |
|||
<td class="text-right" |
|||
t-attf-style="color:#{o.theme_id.text_color};"> |
|||
<t t-if="l.price_unit"> |
|||
<span t-field="l.price_unit"/> |
|||
</t> |
|||
</td> |
|||
<td t-if="display_discount" |
|||
class="text-right" |
|||
t-attf-style="color:#{o.theme_id.text_color};"> |
|||
<span t-field="l.discount"/> |
|||
</td> |
|||
<span t-if="o.theme_id.tax_value"> |
|||
<td t-attf-style="color:#{o.theme_id.text_color};"> |
|||
<span t-esc="', '.join(map(lambda x: (x.description or x.name), l.tax_ids))"/> |
|||
</td> |
|||
</span> |
|||
<td class="text-right" |
|||
t-attf-style="color:#{o.theme_id.text_color};"> |
|||
<t t-if="l.price_subtotal"> |
|||
<span t-field="l.price_subtotal" |
|||
t-field-options="{'widget': 'monetary','display_currency':'o.currency_id'}"/> |
|||
</t> |
|||
</td> |
|||
</tr> |
|||
</tbody> |
|||
</table> |
|||
</div> |
|||
<div> |
|||
<div class="d-flex w-100 justify-content-end"> |
|||
<div class=""> |
|||
<!-- <div class="clearfix mb-4" style="margin-left:auto;">--> |
|||
<table class="table table-condensed"> |
|||
<t t-set="tax_totals" t-value="o.tax_totals"/> |
|||
<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-end"> |
|||
<span |
|||
t-att-class="oe_subtotal_footer_separator" |
|||
t-esc="subtotal['formatted_amount']"/> |
|||
</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"> |
|||
<td> |
|||
<strong>Total</strong> |
|||
</td> |
|||
<td class="text-end"> |
|||
<span t-esc="tax_totals['formatted_amount_total']"/> |
|||
</td> |
|||
</tr> |
|||
</table> |
|||
</div> |
|||
</div> |
|||
|
|||
</div> |
|||
<div style="padding-top:10%;" class="col-12"> |
|||
<p t-if="not is_html_empty(o.narration)"> |
|||
<strong>Comment:</strong> |
|||
<span t-field="o.narration"/> |
|||
</p> |
|||
<p t-if="o.fiscal_position_id.note"> |
|||
<strong>Fiscal Position Remark:</strong> |
|||
<span t-field="o.fiscal_position_id.note"/> |
|||
</p> |
|||
<br/> |
|||
<br/> |
|||
<p t-if="o.move_type in ('out_invoice','in_refund')"> |
|||
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> |
|||
<p t-if="o.fiscal_position_id.note" name="note"> |
|||
<span t-field="o.fiscal_position_id.note"/> |
|||
</p> |
|||
<t t-if="o.company_id.country_id.code == 'IN'"> |
|||
<p id="total_in_words" class="mb16"> |
|||
<strong>Total (In Words):</strong> |
|||
<span t-field="o.amount_total_words"/> |
|||
</p> |
|||
</t> |
|||
<div id="qrcode" |
|||
t-if="(o.company_id.qr_code) and (o.currency_id.name == 'EUR') and (o.invoice_partner_bank_id.acc_number != False)"> |
|||
<p t-if="(o.invoice_partner_bank_id.qr_code_valid)"> |
|||
<strong class="text-center">Scan me with your |
|||
banking app. |
|||
</strong> |
|||
<br/> |
|||
<br/> |
|||
<img class="border border-dark rounded" |
|||
t-att-src="o.invoice_partner_bank_id.build_qr_code_url(o.amount_residual, o.ref or o.name)"/> |
|||
</p> |
|||
<p t-if="(o.invoice_partner_bank_id.qr_code_valid == False)"> |
|||
<strong class="text-center">The SEPA QR Code |
|||
informations are not set correctly. |
|||
</strong> |
|||
<br/> |
|||
</p> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</t> |
|||
</template> |
|||
<template id="report_invoice_with_payments_inherit" inherit_id="account.report_invoice_with_payments"> |
|||
<xpath expr="//t[@t-call='web.html_container']" position="replace"> |
|||
<t t-call="web.html_container"> |
|||
<t t-foreach="docs" t-as="o"> |
|||
<t t-set="lang" |
|||
t-value="o.invoice_user_id.sudo().lang if o.move_type in ('in_invoice', 'in_refund') else o.partner_id.lang"/> |
|||
<t t-set="print_with_payments" t-value="True"/> |
|||
<t t-if="o.company_id.base_layout == 'normal'"> |
|||
<t t-call="invoice_format_editor.custom_template_report_invoice_normal" |
|||
t-lang="o.partner_id.lang"/> |
|||
</t> |
|||
<t t-if="o.company_id.base_layout == 'old'"> |
|||
<t t-call="invoice_format_editor.old_std_report_invoice_document" |
|||
t-lang="o.partner_id.lang"/> |
|||
</t> |
|||
<t t-if="o.company_id.base_layout == 'modern'"> |
|||
<t t-call="invoice_format_editor.custom_template_report_invoice_modern" |
|||
t-lang="o.partner_id.lang"/> |
|||
</t> |
|||
<t t-if="o.company_id.base_layout == 'default'"> |
|||
<t t-call="invoice_format_editor.report_invoice_document" |
|||
t-lang="o.partner_id.lang"/> |
|||
</t> |
|||
</t> |
|||
</t> |
|||
</xpath> |
|||
</template> |
|||
<template id="report_invoice_inherit" inherit_id="account.report_invoice"> |
|||
<xpath expr="//t[@t-call='web.html_container']" position="replace"> |
|||
<t t-call="web.html_container"> |
|||
<t t-foreach="docs" t-as="o"> |
|||
<t t-set="lang" |
|||
t-value="o.invoice_user_id.sudo().lang if o.move_type in ('in_invoice', 'in_refund') else o.partner_id.lang"/> |
|||
<t t-set="print_with_payments" t-value="True"/> |
|||
<t t-if="o.company_id.base_layout == 'normal'"> |
|||
<t t-call="invoice_format_editor.custom_template_report_invoice_normal" |
|||
t-lang="o.partner_id.lang"/> |
|||
</t> |
|||
<t t-if="o.company_id.base_layout == 'old'"> |
|||
<t t-call="invoice_format_editor.old_std_report_invoice_document" |
|||
t-lang="o.partner_id.lang"/> |
|||
</t> |
|||
<t t-if="o.company_id.base_layout == 'modern'"> |
|||
<t t-call="invoice_format_editor.custom_template_report_invoice_modern" |
|||
t-lang="o.partner_id.lang"/> |
|||
</t> |
|||
<t t-if="o.company_id.base_layout == 'default'"> |
|||
<t t-call="invoice_format_editor.report_invoice_document" |
|||
t-lang="o.partner_id.lang"/> |
|||
</t> |
|||
</t> |
|||
</t> |
|||
</xpath> |
|||
</template> |
|||
</data> |
|||
</odoo> |
@ -1,389 +0,0 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<odoo> |
|||
<data> |
|||
<!--modern Template View--> |
|||
<template id="custom_template_report_invoice_modern"> |
|||
<t t-if="o and 'company_id' in o"> |
|||
<t t-set="company" t-value="o.company_id"/> |
|||
</t> |
|||
<t t-if="not o or not 'company_id' in o"> |
|||
<t t-set="company" t-value="res_company"/> |
|||
</t> |
|||
<div class="header row mt32 mb32"> |
|||
<div class="page-header col-12"> |
|||
<div t-attf-class="pull-#{o.theme_id.logo_position}"> |
|||
<img t-if="company.logo" t-att-src="image_data_uri(company.logo)" style="max-height: 45px;" |
|||
alt="Logo"/> |
|||
</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> |
|||
<t t-call="web.external_layout"> |
|||
<t t-set="o" |
|||
t-value="o.with_context({'lang':o.partner_id.lang})"/> |
|||
<div class="page"> |
|||
<div t-attf-style=" background-color:#{o.theme_id.base_color};padding:2%"> |
|||
<h2> |
|||
<span t-if="o.move_type == 'out_invoice' and (o.state == 'draft' or o.state == 'posted')"> |
|||
<font t-attf-style="color:#{o.theme_id.heading_text_color}"> |
|||
Invoice |
|||
</font> |
|||
</span> |
|||
<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.heading_text_color}"> |
|||
Vendor Bill |
|||
</font> |
|||
</span> |
|||
<font t-attf-style=" color:#{o.theme_id.heading_text_color}"> |
|||
<span t-field="o.name"/> |
|||
</font> |
|||
</h2> |
|||
<div class="row mt32 mb32"> |
|||
<div class="col-3" t-if="o.invoice_date"> |
|||
<font t-attf-style="color:#{o.theme_id.heading_text_color}"> |
|||
<strong>Invoice Date:</strong> |
|||
<p t-field="o.invoice_date"/> |
|||
</font> |
|||
</div> |
|||
<div class="col-3" |
|||
t-if="o.invoice_date_due and o.move_type == 'out_invoice' and (o.state == 'draft' or o.state == 'posted')"> |
|||
<font t-attf-style="color:#{o.theme_id.heading_text_color}"> |
|||
<strong>Due Date:</strong> |
|||
<p t-field="o.invoice_date_due"/> |
|||
</font> |
|||
</div> |
|||
<div class="col-3" t-if="o.invoice_payment_term_id"> |
|||
<font t-attf-style="color:#{o.theme_id.heading_text_color}"> |
|||
<strong>Payment Term:</strong> |
|||
<p t-field="o.invoice_payment_term_id"/> |
|||
</font> |
|||
</div> |
|||
<div class="col-3" t-if="o.user_id"> |
|||
<div t-if="o.theme_id.sales_person"> |
|||
<font t-attf-style="color:#{o.theme_id.heading_text_color}"> |
|||
<strong>SalesPerson:</strong> |
|||
<p t-field="o.user_id"/> |
|||
</font> |
|||
</div> |
|||
</div> |
|||
<div class="col-3" t-if="o.ref"> |
|||
<div t-if="o.theme_id.reference"> |
|||
<font t-attf-style="color:#{o.theme_id.heading_text_color}"> |
|||
<strong>Reference:</strong> |
|||
<p t-field="o.ref"/> |
|||
</font> |
|||
</div> |
|||
</div> |
|||
<div class="col-3" t-if="o.invoice_origin"> |
|||
<div t-if="o.theme_id.source"> |
|||
<font t-attf-style="color:#{o.theme_id.heading_text_color}"> |
|||
<strong>Source:</strong> |
|||
<p t-field="o.invoice_origin"/> |
|||
</font> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div style="padding-top:20px;width:100%"> |
|||
<div t-attf-class="col-12 text-#{o.theme_id.customer_position} " |
|||
style="font:15px lucida-console,sans-serif !important;color:#{o.theme_id.heading_text_color};"> |
|||
<strong>Customer Address</strong> |
|||
<br/> |
|||
<span style="color:#{o.theme_id.customer_text_color} !important;" |
|||
t-field="o.partner_id"/> |
|||
<br/> |
|||
<span t-if="o.theme_id.address"> |
|||
<span t-attf-style="color:#{o.theme_id.customer_text_color} !important;" |
|||
t-field="o.partner_id.street"/> |
|||
<br/> |
|||
<span t-attf-style="color:#{o.theme_id.customer_text_color} !important;" |
|||
t-field="o.partner_id.street2"/> |
|||
<br/> |
|||
</span> |
|||
<span t-if="o.theme_id.city"> |
|||
<span t-attf-style="color:#{o.theme_id.customer_text_color} !important;" |
|||
t-field="o.partner_id.city"/> |
|||
</span> |
|||
<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 style="padding-top:20px;"/> |
|||
<!-- Is there a discount on at least one line? --> |
|||
<t t-set="display_discount" |
|||
t-value="any([l.discount for l in o.invoice_line_ids])"/> |
|||
<table class="table table "> |
|||
<thead> |
|||
<tr> |
|||
<th t-attf-style="background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color}"> |
|||
Product |
|||
</th> |
|||
<th t-attf-style="background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color}"> |
|||
Quantity |
|||
</th> |
|||
<th t-attf-style="background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color}"> |
|||
Unit Price |
|||
</th> |
|||
<th name="th_price_unit" t-if="display_discount" |
|||
t-attf-style="background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color}"> |
|||
<span>Disc.%</span> |
|||
</th> |
|||
<th name="th_taxes" |
|||
t-attf-style="background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color}"> |
|||
<span> |
|||
Taxes |
|||
</span> |
|||
</th> |
|||
<th name="th_subtotal" class="text-right" |
|||
t-attf-style="background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color}"> |
|||
<span groups="account.group_show_line_subtotals_tax_excluded">Amount</span> |
|||
<span groups="account.group_show_line_subtotals_tax_included">Total Price</span> |
|||
</th> |
|||
</tr> |
|||
</thead> |
|||
<!-- <thead>--> |
|||
<!-- <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};">--> |
|||
<!-- Description--> |
|||
<!-- </th>--> |
|||
<!-- </span>--> |
|||
<!-- <span t-if="o.theme_id.hsn_code">--> |
|||
<!-- <th class="text-right"--> |
|||
<!-- t-attf-style=" background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color};">--> |
|||
<!-- HSN/SAC--> |
|||
<!-- </th>--> |
|||
<!-- </span>--> |
|||
<!-- <th class="text-right"--> |
|||
<!-- t-attf-style=" background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color};">--> |
|||
<!-- Quantity--> |
|||
<!-- </th>--> |
|||
<!-- <th class="text-right"--> |
|||
<!-- t-attf-style=" background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color};">--> |
|||
<!-- Unit Price--> |
|||
<!-- </th>--> |
|||
<!-- <th t-if="display_discount"--> |
|||
<!-- class="text-right"--> |
|||
<!-- t-attf-style=" background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color};">--> |
|||
<!-- Disc.(%)--> |
|||
<!-- </th>--> |
|||
<!-- <span t-if="o.theme_id.tax_value">--> |
|||
<!-- <th class="text-right"--> |
|||
<!-- t-attf-style=" background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color};">--> |
|||
<!-- Taxes--> |
|||
<!-- </th>--> |
|||
<!-- </span>--> |
|||
<!-- <th class="text-right"--> |
|||
<!-- t-attf-style=" background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color};">--> |
|||
<!-- Price--> |
|||
<!-- </th>--> |
|||
<!-- </tr>--> |
|||
<!-- </thead>--> |
|||
<tbody class="invoice_tbody"> |
|||
<t t-set="current_subtotal" t-value="0"/> |
|||
<t t-set="lines" |
|||
t-value="o.invoice_line_ids.sorted(key=lambda l: (-l.sequence, l.date, l.move_name, -l.id), reverse=True)"/> |
|||
|
|||
<t t-foreach="lines" t-as="line"> |
|||
<t t-set="current_subtotal" t-value="current_subtotal + line.price_subtotal" |
|||
groups="account.group_show_line_subtotals_tax_excluded"/> |
|||
<t t-set="current_subtotal" t-value="current_subtotal + line.price_total" |
|||
groups="account.group_show_line_subtotals_tax_included"/> |
|||
|
|||
<tr t-att-class="'bg-200 fw-bold o_line_section' if line.display_type == 'line_section' else 'fst-italic o_line_note' if line.display_type == 'line_note' else ''"> |
|||
<t t-if="line.display_type == 'product'" |
|||
name="account_invoice_line_accountable"> |
|||
<td name="account_invoice_line_name"> |
|||
<span t-field="line.name" t-options="{'widget': 'text'}"/> |
|||
</td> |
|||
<td class="text-end"> |
|||
<span t-field="line.quantity"/> |
|||
<span t-field="line.product_uom_id" groups="uom.group_uom"/> |
|||
</td> |
|||
<td t-attf-class="text-end {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}"> |
|||
<span class="text-nowrap" t-field="line.price_unit"/> |
|||
</td> |
|||
<td t-if="display_discount" |
|||
t-attf-class="text-end {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}"> |
|||
<span class="text-nowrap" t-field="line.discount"/> |
|||
</td> |
|||
<td t-attf-class="text-start {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}"> |
|||
<span t-esc="', '.join(map(lambda x: (x.description or x.name), line.tax_ids))" |
|||
id="line_tax_ids"/> |
|||
</td> |
|||
<td class="text-end o_price_total"> |
|||
<span class="text-nowrap" t-field="line.price_subtotal" |
|||
groups="account.group_show_line_subtotals_tax_excluded"/> |
|||
<span class="text-nowrap" t-field="line.price_total" |
|||
groups="account.group_show_line_subtotals_tax_included"/> |
|||
</td> |
|||
</t> |
|||
<t t-if="line.display_type == 'line_section'"> |
|||
<td colspan="99"> |
|||
<span t-field="line.name" t-options="{'widget': 'text'}"/> |
|||
</td> |
|||
<t t-set="current_section" t-value="line"/> |
|||
<t t-set="current_subtotal" t-value="0"/> |
|||
</t> |
|||
<t t-if="line.display_type == 'line_note'"> |
|||
<td colspan="99"> |
|||
<span t-field="line.name" t-options="{'widget': 'text'}"/> |
|||
</td> |
|||
</t> |
|||
</tr> |
|||
|
|||
<t t-if="current_section and (line_last or lines[line_index+1].display_type == 'line_section')"> |
|||
<tr class="is-subtotal text-end"> |
|||
<td colspan="99"> |
|||
<strong class="mr16">Subtotal</strong> |
|||
<span |
|||
t-esc="current_subtotal" |
|||
t-options='{"widget": "monetary", "display_currency": o.currency_id}' |
|||
/> |
|||
</td> |
|||
</tr> |
|||
</t> |
|||
</t> |
|||
</tbody> |
|||
</table> |
|||
</div> |
|||
<div> |
|||
<div class="d-flex w-100 justify-content-end"> |
|||
<div> |
|||
<!-- <div class="clearfix mb-4" style="margin-left:auto;">--> |
|||
<table class="table table-condensed"> |
|||
<t t-set="tax_totals" t-value="o.tax_totals"/> |
|||
<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-end"> |
|||
<span |
|||
t-att-class="oe_subtotal_footer_separator" |
|||
t-esc="subtotal['formatted_amount']"/> |
|||
</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"> |
|||
<td> |
|||
<strong>Total</strong> |
|||
</td> |
|||
<td class="text-end"> |
|||
<span t-esc="tax_totals['formatted_amount_total']"/> |
|||
</td> |
|||
</tr> |
|||
</table> |
|||
</div> |
|||
</div> |
|||
|
|||
</div> |
|||
<div style="padding-top:10%;" class="col-12"> |
|||
<p t-if="not is_html_empty(o.narration)"> |
|||
<strong>Comment:</strong> |
|||
<span t-field="o.narration"/> |
|||
</p> |
|||
<p t-if="o.fiscal_position_id.note"> |
|||
<strong>Fiscal Position Remark:</strong> |
|||
<span t-field="o.fiscal_position_id.note"/> |
|||
</p> |
|||
<br/> |
|||
<br/> |
|||
<p t-if="o.move_type in ('out_invoice','in_refund')"> |
|||
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> |
|||
<p t-if="o.fiscal_position_id.note" name="note"> |
|||
<span t-field="o.fiscal_position_id.note"/> |
|||
</p> |
|||
<t t-if="o.company_id.country_id.code == 'IN'"> |
|||
<p id="total_in_words" class="mb16"> |
|||
<strong>Total (In Words):</strong> |
|||
<span t-field="o.amount_total_words"/> |
|||
</p> |
|||
</t> |
|||
<div id="qrcode" |
|||
t-if="(o.company_id.qr_code) and (o.currency_id.name == 'EUR') and (o.invoice_partner_bank_id.acc_number != False)"> |
|||
<p t-if="(o.invoice_partner_bank_id.qr_code_valid)"> |
|||
<strong class="text-center">Scan me with your |
|||
banking app. |
|||
</strong> |
|||
<br/> |
|||
<br/> |
|||
<img class="border border-dark rounded" |
|||
t-att-src="o.invoice_partner_bank_id.build_qr_code_url(o.amount_residual, o.ref or o.name)"/> |
|||
</p> |
|||
<p t-if="(o.invoice_partner_bank_id.qr_code_valid == False)"> |
|||
<strong class="text-center">The SEPA QR Code |
|||
informations are not set |
|||
correctly. |
|||
</strong> |
|||
<br/> |
|||
</p> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</t> |
|||
</template> |
|||
</data> |
|||
</odoo> |
@ -1,289 +0,0 @@ |
|||
<odoo> |
|||
<data> |
|||
<!--old Template View--> |
|||
<template id="old_std_report_invoice_document"> |
|||
<t t-if="o and 'company_id' in o"> |
|||
<t t-set="company" t-value="o.company_id"/> |
|||
</t> |
|||
<t t-if="not o or not 'company_id' in o"> |
|||
<t t-set="company" t-value="res_company"/> |
|||
</t> |
|||
<div class="header row mt32 mb32"> |
|||
<div class="page-header col-12"> |
|||
<div t-attf-class="pull-#{o.theme_id.logo_position}"> |
|||
<img t-if="company.logo" t-att-src="image_data_uri(company.logo)" style="max-height: 45px;" |
|||
alt="Logo"/> |
|||
</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> |
|||
<t t-call="web.external_layout"> |
|||
<t t-set="o" |
|||
t-value="o.with_context({'lang':o.partner_id.lang})"/> |
|||
<div class="page"> |
|||
<div class=" row mt32 mb32"> |
|||
<div class="col-12" style="padding-top:20px;"> |
|||
<div t-attf-class=" pull-#{o.theme_id.customer_position} text-#{o.theme_id.customer_position}" |
|||
style="font:15px lucida-console,sans-serif !important;"> |
|||
<span t-attf-style="color:#{o.theme_id.customer_text_color} !important;" |
|||
t-field="o.partner_id"/> |
|||
<br/> |
|||
<span t-if="o.theme_id.address"> |
|||
<span t-attf-style="color:#{o.theme_id.customer_text_color} !important;" |
|||
t-field="o.partner_id.street"/> |
|||
<br/> |
|||
<span t-attf-style="color:#{o.theme_id.customer_text_color} !important;" |
|||
t-field="o.partner_id.street2"/> |
|||
</span> |
|||
<br/> |
|||
<span t-if="o.theme_id.city"> |
|||
<span t-attf-style="color:#{o.theme_id.customer_text_color} !important;" |
|||
t-field="o.partner_id.city"/> |
|||
</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 t-attf-class="pull-right" |
|||
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%"> |
|||
<h2> |
|||
<span t-if="o.move_type == 'out_invoice' and (o.state == 'draft' or o.state == 'posted')"> |
|||
<font t-attf-style="color:#{o.theme_id.heading_text_color}"> |
|||
Invoice |
|||
</font> |
|||
</span> |
|||
<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}"> |
|||
<span t-field="o.name"/> |
|||
</font> |
|||
</h2> |
|||
<div t-if="o.invoice_date"> |
|||
<font t-attf-style="color:#{o.theme_id.heading_text_color}"> |
|||
<strong>Invoice Date:</strong> |
|||
<p t-field="o.invoice_date"/> |
|||
</font> |
|||
</div> |
|||
<div t-if="o.name"> |
|||
<font t-attf-style="color:#{o.theme_id.heading_text_color}"> |
|||
<strong>Due Date:</strong> |
|||
<p t-field="o.invoice_date_due"/> |
|||
</font> |
|||
</div> |
|||
|
|||
<div t-if="o.theme_id.reference"> |
|||
<div t-if="o.ref"> |
|||
<font t-attf-style="color:#{o.theme_id.heading_text_color}"> |
|||
<strong>Reference:</strong> |
|||
<p t-field="o.ref"/> |
|||
</font> |
|||
</div> |
|||
</div> |
|||
<div t-if="o.theme_id.source"> |
|||
<div t-if="o.invoice_origin"> |
|||
<font t-attf-style="color:#{o.theme_id.heading_text_color}"> |
|||
<strong>Source:</strong> |
|||
<p t-field="o.invoice_origin"/> |
|||
</font> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div style="padding-top:20px;"/> |
|||
<t t-set="display_discount" |
|||
t-value="any([l.discount for l in o.invoice_line_ids])"/> |
|||
<table class="table table-sm"> |
|||
<thead> |
|||
<tr> |
|||
<th t-attf-style="background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color}"> |
|||
Product |
|||
</th> |
|||
<th t-attf-style="background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color}"> |
|||
Quantity |
|||
</th> |
|||
<th t-attf-style="background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color}"> |
|||
Unit Price |
|||
</th> |
|||
<th name="th_price_unit" t-if="display_discount" |
|||
t-attf-style="background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color}"> |
|||
<span>Disc.%</span> |
|||
</th> |
|||
<th name="th_taxes" |
|||
t-attf-style="background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color}"><span> |
|||
Taxes</span></th> |
|||
<th name="th_subtotal" class="text-right" t-attf-style="background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color}"> |
|||
<span groups="account.group_show_line_subtotals_tax_excluded">Amount</span> |
|||
<span groups="account.group_show_line_subtotals_tax_included">Total Price</span> |
|||
</th> |
|||
</tr> |
|||
</thead> |
|||
<tbody class="invoice_tbody"> |
|||
<t t-set="current_subtotal" t-value="0"/> |
|||
<t t-set="lines" |
|||
t-value="o.invoice_line_ids.sorted(key=lambda l: (-l.sequence, l.date, l.move_name, -l.id), reverse=True)"/> |
|||
|
|||
<t t-foreach="lines" t-as="line"> |
|||
<t t-set="current_subtotal" t-value="current_subtotal + line.price_subtotal" |
|||
groups="account.group_show_line_subtotals_tax_excluded"/> |
|||
<t t-set="current_subtotal" t-value="current_subtotal + line.price_total" |
|||
groups="account.group_show_line_subtotals_tax_included"/> |
|||
|
|||
<tr t-att-class="'bg-200 fw-bold o_line_section' if line.display_type == 'line_section' else 'fst-italic o_line_note' if line.display_type == 'line_note' else ''"> |
|||
<t t-if="line.display_type == 'product'" name="account_invoice_line_accountable"> |
|||
<td name="account_invoice_line_name"><span t-field="line.name" |
|||
t-options="{'widget': 'text'}"/></td> |
|||
<td class="text-end"> |
|||
<span t-field="line.quantity"/> |
|||
<span t-field="line.product_uom_id" groups="uom.group_uom"/> |
|||
</td> |
|||
<td t-attf-class="text-end {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}"> |
|||
<span class="text-nowrap" t-field="line.price_unit"/> |
|||
</td> |
|||
<td t-if="display_discount" |
|||
t-attf-class="text-end {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}"> |
|||
<span class="text-nowrap" t-field="line.discount"/> |
|||
</td> |
|||
<td t-attf-class="text-start {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}"> |
|||
<span t-esc="', '.join(map(lambda x: (x.description or x.name), line.tax_ids))" |
|||
id="line_tax_ids"/> |
|||
</td> |
|||
<td class="text-end o_price_total"> |
|||
<span class="text-nowrap" t-field="line.price_subtotal" |
|||
groups="account.group_show_line_subtotals_tax_excluded"/> |
|||
<span class="text-nowrap" t-field="line.price_total" |
|||
groups="account.group_show_line_subtotals_tax_included"/> |
|||
</td> |
|||
</t> |
|||
<t t-if="line.display_type == 'line_section'"> |
|||
<td colspan="99"> |
|||
<span t-field="line.name" t-options="{'widget': 'text'}"/> |
|||
</td> |
|||
<t t-set="current_section" t-value="line"/> |
|||
<t t-set="current_subtotal" t-value="0"/> |
|||
</t> |
|||
<t t-if="line.display_type == 'line_note'"> |
|||
<td colspan="99"> |
|||
<span t-field="line.name" t-options="{'widget': 'text'}"/> |
|||
</td> |
|||
</t> |
|||
</tr> |
|||
|
|||
<t t-if="current_section and (line_last or lines[line_index+1].display_type == 'line_section')"> |
|||
<tr class="is-subtotal text-end"> |
|||
<td colspan="99"> |
|||
<strong class="mr16">Subtotal</strong> |
|||
<span |
|||
t-esc="current_subtotal" |
|||
t-options='{"widget": "monetary", "display_currency": o.currency_id}' |
|||
/> |
|||
</td> |
|||
</tr> |
|||
</t> |
|||
</t> |
|||
</tbody> |
|||
</table> |
|||
<div> |
|||
<div class="d-flex w-100 justify-content-end"> |
|||
<div> |
|||
<!-- <div class="clearfix mb-4" style="margin-left:auto;">--> |
|||
<table class="table table-condensed"> |
|||
<t t-set="tax_totals" t-value="o.tax_totals"/> |
|||
<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-end"> |
|||
<span |
|||
t-att-class="oe_subtotal_footer_separator" |
|||
t-esc="subtotal['formatted_amount']"/> |
|||
</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"> |
|||
<td><strong>Total</strong></td> |
|||
<td class="text-end"> |
|||
<span t-esc="tax_totals['formatted_amount_total']"/> |
|||
</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> |
|||
|
|||
</div> |
|||
<br/> |
|||
<br/> |
|||
<br/> |
|||
<br/> |
|||
<br/> |
|||
</div> |
|||
</t> |
|||
</template> |
|||
</data> |
|||
</odoo> |
@ -1,294 +0,0 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<odoo> |
|||
<data> |
|||
<template id="report_invoice_document"> |
|||
<t t-call="web.external_layout"> |
|||
<t t-set="o" t-value="o.with_context(lang=lang)"/> |
|||
<t t-set="address"> |
|||
<address t-field="o.partner_id" |
|||
t-options='{"widget": "contact", "fields": ["address", "name"], "no_marker": True}'/> |
|||
<div t-if="o.partner_id.vat" class="mt16"> |
|||
<t t-if="o.company_id.country_id.vat_label" t-esc="o.company_id.country_id.vat_label" |
|||
id="inv_tax_id_label"/> |
|||
<t t-else="">Tax ID</t>: |
|||
<span t-field="o.partner_id.vat"/> |
|||
</div> |
|||
</t> |
|||
<div class="page"> |
|||
<h2> |
|||
<span t-if="o.move_type == 'out_invoice' and o.state == 'posted'">Invoice</span> |
|||
<span t-if="o.move_type == 'out_invoice' and o.state == 'draft'">Draft Invoice</span> |
|||
<span t-if="o.move_type == 'out_invoice' and o.state == 'cancel'">Cancelled Invoice</span> |
|||
<span t-if="o.move_type == 'out_refund'">Credit Note</span> |
|||
<span t-if="o.move_type == 'in_refund'">Vendor Credit Note</span> |
|||
<span t-if="o.move_type == 'in_invoice'">Vendor Bill</span> |
|||
<span t-if="o.name != '/'" t-field="o.name"/> |
|||
</h2> |
|||
|
|||
<div id="informations" class="row mt32 mb32"> |
|||
<div class="col-auto col-3 mw-100 mb-2" t-if="o.invoice_date" name="invoice_date"> |
|||
<strong>Invoice Date:</strong> |
|||
<p class="m-0" 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>Due Date:</strong> |
|||
<p class="m-0" t-field="o.invoice_date_due"/> |
|||
</div> |
|||
<div class="col-auto col-3 mw-100 mb-2" t-if="o.invoice_origin" name="origin"> |
|||
<strong>Source:</strong> |
|||
<p class="m-0" t-field="o.invoice_origin"/> |
|||
</div> |
|||
<div class="col-auto col-3 mw-100 mb-2" t-if="o.partner_id.ref" name="customer_code"> |
|||
<strong>Customer Code:</strong> |
|||
<p class="m-0" t-field="o.partner_id.ref"/> |
|||
</div> |
|||
<div class="col-auto col-3 mw-100 mb-2" t-if="o.ref" name="reference"> |
|||
<strong>Reference:</strong> |
|||
<p class="m-0" t-field="o.ref"/> |
|||
</div> |
|||
</div> |
|||
|
|||
<t t-set="display_discount" t-value="any(l.discount for l in o.invoice_line_ids)"/> |
|||
|
|||
<table class="table table-sm o_main_table" name="invoice_line_table"> |
|||
<thead> |
|||
<tr> |
|||
<th name="th_description" class="text-left"> |
|||
<span>Description</span> |
|||
</th> |
|||
<th name="th_quantity" class="text-right"> |
|||
<span>Quantity</span> |
|||
</th> |
|||
<th name="th_priceunit" |
|||
t-attf-class="text-right {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}"> |
|||
<span> |
|||
Unit Price |
|||
</span> |
|||
</th> |
|||
<th name="th_price_unit" t-if="display_discount" |
|||
t-attf-class="text-right {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}"> |
|||
<span>Disc.%</span> |
|||
</th> |
|||
<th name="th_taxes" |
|||
t-attf-class="text-left {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}"> |
|||
<span> |
|||
Taxes |
|||
</span> |
|||
</th> |
|||
<th name="th_subtotal" class="text-right"> |
|||
<span groups="account.group_show_line_subtotals_tax_excluded">Amount</span> |
|||
<span groups="account.group_show_line_subtotals_tax_included">Total Price</span> |
|||
</th> |
|||
</tr> |
|||
</thead> |
|||
<tbody class="invoice_tbody"> |
|||
<t t-set="current_subtotal" t-value="0"/> |
|||
<t t-set="lines" |
|||
t-value="o.invoice_line_ids.sorted(key=lambda l: (-l.sequence, l.date, l.move_name, -l.id), reverse=True)"/> |
|||
|
|||
<t t-foreach="lines" t-as="line"> |
|||
<t t-set="current_subtotal" t-value="current_subtotal + line.price_subtotal" |
|||
groups="account.group_show_line_subtotals_tax_excluded"/> |
|||
<t t-set="current_subtotal" t-value="current_subtotal + line.price_total" |
|||
groups="account.group_show_line_subtotals_tax_included"/> |
|||
|
|||
<tr t-att-class="'bg-200 fw-bold o_line_section' if line.display_type == 'line_section' else 'fst-italic o_line_note' if line.display_type == 'line_note' else ''"> |
|||
<t t-if="line.display_type == 'product'" name="account_invoice_line_accountable"> |
|||
<td name="account_invoice_line_name"> |
|||
<span t-field="line.name" |
|||
t-options="{'widget': 'text'}"/> |
|||
</td> |
|||
<td class="text-end"> |
|||
<span t-field="line.quantity"/> |
|||
<span t-field="line.product_uom_id" groups="uom.group_uom"/> |
|||
</td> |
|||
<td t-attf-class="text-end {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}"> |
|||
<span class="text-nowrap" t-field="line.price_unit"/> |
|||
</td> |
|||
<td t-if="display_discount" |
|||
t-attf-class="text-end {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}"> |
|||
<span class="text-nowrap" t-field="line.discount"/> |
|||
</td> |
|||
<td t-attf-class="text-start {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}"> |
|||
<span t-esc="', '.join(map(lambda x: (x.description or x.name), line.tax_ids))" |
|||
id="line_tax_ids"/> |
|||
</td> |
|||
<td class="text-end o_price_total"> |
|||
<span class="text-nowrap" t-field="line.price_subtotal" |
|||
groups="account.group_show_line_subtotals_tax_excluded"/> |
|||
<span class="text-nowrap" t-field="line.price_total" |
|||
groups="account.group_show_line_subtotals_tax_included"/> |
|||
</td> |
|||
</t> |
|||
<t t-if="line.display_type == 'line_section'"> |
|||
<td colspan="99"> |
|||
<span t-field="line.name" t-options="{'widget': 'text'}"/> |
|||
</td> |
|||
<t t-set="current_section" t-value="line"/> |
|||
<t t-set="current_subtotal" t-value="0"/> |
|||
</t> |
|||
<t t-if="line.display_type == 'line_note'"> |
|||
<td colspan="99"> |
|||
<span t-field="line.name" t-options="{'widget': 'text'}"/> |
|||
</td> |
|||
</t> |
|||
</tr> |
|||
|
|||
<t t-if="current_section and (line_last or lines[line_index+1].display_type == 'line_section')"> |
|||
<tr class="is-subtotal text-end"> |
|||
<td colspan="99"> |
|||
<strong class="mr16">Subtotal</strong> |
|||
<span |
|||
t-esc="current_subtotal" |
|||
t-options='{"widget": "monetary", "display_currency": o.currency_id}' |
|||
/> |
|||
</td> |
|||
</tr> |
|||
</t> |
|||
</t> |
|||
</tbody> |
|||
</table> |
|||
<div class="d-flex w-100 justify-content-end"> |
|||
<div class=""> |
|||
<!-- <div class="clearfix mb-4" style="margin-left:auto;">--> |
|||
<div id="total" class="row"> |
|||
<div t-attf-class="#{'col-6' if report_type != 'html' else 'col-sm-7 col-md-6'} ms-auto"> |
|||
<table class="table table-sm" style="page-break-inside: avoid;"> |
|||
<t t-set="tax_totals" t-value="o.tax_totals"/> |
|||
<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-end"> |
|||
<span |
|||
t-att-class="oe_subtotal_footer_separator" |
|||
t-esc="subtotal['formatted_amount']"/> |
|||
</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"> |
|||
<td> |
|||
<strong>Total</strong> |
|||
</td> |
|||
<td class="text-end"> |
|||
<span t-esc="tax_totals['formatted_amount_total']"/> |
|||
</td> |
|||
</tr> |
|||
<t t-if="print_with_payments"> |
|||
<t t-if="o.payment_state != 'invoicing_legacy'"> |
|||
<t t-set="payments_vals" |
|||
t-value="o.sudo().invoice_payments_widget and o.sudo().invoice_payments_widget['content'] or []"/> |
|||
<t t-foreach="payments_vals" t-as="payment_vals"> |
|||
<tr> |
|||
<td> |
|||
<i class="oe_form_field text-right oe_payment_label">Paid on |
|||
<t |
|||
t-esc="payment_vals['date']" |
|||
t-options='{"widget": "date"}'/> |
|||
</i> |
|||
</td> |
|||
<td class="text-right"> |
|||
<span t-esc="payment_vals['amount']" |
|||
t-options='{"widget": "monetary", "display_currency": o.currency_id}'/> |
|||
</td> |
|||
</tr> |
|||
</t> |
|||
<t t-if="len(payments_vals) > 0"> |
|||
<tr class="border-black"> |
|||
<td> |
|||
<strong>Amount Due</strong> |
|||
</td> |
|||
<td class="text-right"> |
|||
<span t-field="o.amount_residual"/> |
|||
</td> |
|||
</tr> |
|||
</t> |
|||
</t> |
|||
</t> |
|||
</table> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<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> |
|||
<p t-if="not is_html_empty(o.narration)" name="comment"> |
|||
<span t-field="o.narration"/> |
|||
</p> |
|||
<p t-if="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"> |
|||
<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> |
|||
</t> |
|||
</template> |
|||
|
|||
<template id="report_invoice"> |
|||
<t t-call="web.html_container"> |
|||
<t t-foreach="docs" t-as="o"> |
|||
<t t-set="lang" |
|||
t-value="o.invoice_user_id.sudo().lang if o.move_type in ('in_invoice', 'in_refund') else o.partner_id.lang"/> |
|||
<t t-if="o._get_name_invoice_report() == 'account.report_invoice_document'" |
|||
t-call="account.report_invoice_document" t-lang="lang"/> |
|||
</t> |
|||
</t> |
|||
</template> |
|||
|
|||
<template id="report_invoice_with_payments"> |
|||
<t t-call="web.html_container"> |
|||
<t t-foreach="docs" t-as="o"> |
|||
<t t-set="lang" |
|||
t-value="o.invoice_user_id.sudo().lang if o.move_type in ('in_invoice', 'in_refund') else o.partner_id.lang"/> |
|||
<t t-set="print_with_payments" t-value="True"/> |
|||
<t t-if="o._get_name_invoice_report() == 'account.report_invoice_document'" |
|||
t-call="account.report_invoice_document" t-lang="lang"/> |
|||
</t> |
|||
</t> |
|||
</template> |
|||
|
|||
<!--We need to create the following empty report template for the action report |
|||
"action_account_original_vendor_bill" to work. The action is merging the |
|||
original vendor bill(s) that were used to create the vendor bill(s) into one PDF. --> |
|||
<template id="report_original_vendor_bill"> |
|||
<t t-call="web.html_container"> |
|||
<t t-foreach="docs" t-as="o"> |
|||
<div class="article" t-att-data-oe-model="o and o._name" t-att-data-oe-id="o and o.id" |
|||
t-att-data-oe-lang="o and o.env.context.get('lang')"></div> |
|||
</t> |
|||
</t> |
|||
</template> |
|||
</data> |
|||
</odoo> |
|||
|
@ -0,0 +1,365 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<odoo> |
|||
<data> |
|||
<!--modern Template View--> |
|||
<template id="custom_template_report_invoice_modern"> |
|||
<!--External layout template--> |
|||
<t t-call="web.external_layout"> |
|||
<!--Invoice Reference--> |
|||
<t t-set="o" t-value="o.with_context({'lang':o.partner_id.lang})"/> |
|||
<t t-set="model" t-value="'account.move'"/> |
|||
<div class="page" style="overflow: hidden;"> |
|||
<br/><br/><br/><br/> |
|||
<!--Invoice details--> |
|||
<div class="row"> |
|||
<div t-attf-style=" background-color:#{o.theme_id.base_color};padding:2% ;color:#{o.theme_id.customer_text_color};"> |
|||
<h2 t-attf-style="color:#{o.theme_id.heading_text_color};"> |
|||
<span t-if="o.move_type == 'out_invoice' and (o.state == 'draft' or o.state == 'posted')"> |
|||
<font t-attf-style="color:#{o.theme_id.heading_text_color};">Invoice</font> |
|||
</span> |
|||
<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.heading_text_color}"> |
|||
Vendor Bill |
|||
</font> |
|||
</span> |
|||
|
|||
<font> |
|||
<span t-field="o.name" t-attf-style="color:#{o.theme_id.heading_text_color};"/> |
|||
</font> |
|||
</h2><br/> |
|||
<!--Invoice information--> |
|||
<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.source_id"> |
|||
<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.source_id"/> |
|||
</font> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div><br/> |
|||
<!--Customer Address--> |
|||
<div t-if="o.theme_id.address" |
|||
id="customer address" |
|||
t-attf-style="color:#{o.theme_id.customer_text_color}"> |
|||
<div class="row"> |
|||
<div style="width:50%;" |
|||
t-attf-class="{{'ms-auto' if o.theme_id.customer_position == 'right' else ''}}"> |
|||
<div itemprop="address" |
|||
class="address"> |
|||
<div> |
|||
<span t-if="o.partner_id"> |
|||
<span style="color:#{o.theme_id.customer_text_color} !important;" |
|||
t-field="o.partner_id"/> |
|||
</span> |
|||
</div> |
|||
<div> |
|||
<span t-if="o.partner_id.street"> |
|||
<span style="color:#{o.theme_id.customer_text_color} !important;" |
|||
t-field="o.partner_id.street"/> |
|||
</span> |
|||
</div> |
|||
<div> |
|||
<span t-if="o.partner_id.street2"> |
|||
<span style="color:#{o.theme_id.customer_text_color} !important;" |
|||
t-field="o.partner_id.street2"/> |
|||
</span> |
|||
</div> |
|||
<div t-if="o.theme_id.city"> |
|||
<span t-if="o.partner_id.city"> |
|||
<span style="color:#{o.theme_id.customer_text_color} !important;" |
|||
t-field="o.partner_id.city"/> |
|||
</span> |
|||
</div> |
|||
<div t-if="o.theme_id.country"> |
|||
<span t-if="o.partner_id.country_id"> |
|||
<span style="color:#{o.theme_id.customer_text_color} !important;" |
|||
t-field="o.partner_id.country_id"/> |
|||
</span> |
|||
</div> |
|||
<div t-if="o.theme_id.vat"> |
|||
<span t-if="o.partner_id.vat"> |
|||
<span style="color:#{o.theme_id.customer_text_color} !important;" |
|||
t-field="o.partner_id.vat"/> |
|||
</span> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<!--Product Table--> |
|||
<div style="padding-top:20px;width:100%"> |
|||
<t t-set="display_discount" |
|||
t-value="any([l.discount for l in o.invoice_line_ids])"/> |
|||
<!--Product Details--> |
|||
<table class="table table-sm table-borderless"> |
|||
<tr> |
|||
<th class="text-right" |
|||
t-attf-style=" background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color};"> |
|||
Product |
|||
</th> |
|||
<th class="text-right" |
|||
t-if="o.theme_id.description" |
|||
t-attf-style=" background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color};"> |
|||
Description |
|||
</th> |
|||
<th class="text-left" |
|||
t-attf-style=" background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color};"> |
|||
Quantity |
|||
</th> |
|||
<th class="text-left" |
|||
t-attf-style=" background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color};"> |
|||
Unit Price |
|||
</th> |
|||
<th t-if="display_discount" |
|||
class="text-left" |
|||
t-attf-style=" background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color};"> |
|||
Disc.(%) |
|||
</th> |
|||
<th t-if="o.theme_id.tax_value" |
|||
class="text-center" |
|||
t-attf-style=" background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color};"> |
|||
Taxes |
|||
</th> |
|||
<th class="text-left" |
|||
t-attf-style=" background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color};"> |
|||
Price |
|||
</th> |
|||
</tr> |
|||
<tr t-foreach="o.invoice_line_ids" t-as="l"> |
|||
<td class="text-right" |
|||
t-attf-style="color:#{o.theme_id.text_color};"> |
|||
<span t-field="l.product_id.name"/> |
|||
</td> |
|||
<td t-if="o.theme_id.description" |
|||
class="text-right" |
|||
t-attf-style="color:#{o.theme_id.text_color};"> |
|||
<span t-field="l.name"/> |
|||
</td> |
|||
<td class="text-end" |
|||
t-attf-style="color:#{o.theme_id.text_color};"> |
|||
<t t-if="l.quantity"> |
|||
<span t-field="l.quantity"/> |
|||
</t> |
|||
</td> |
|||
<td class="text-end" |
|||
t-attf-style="color:#{o.theme_id.text_color};"> |
|||
<t t-if="l.price_unit"> |
|||
<span t-field="l.price_unit"/> |
|||
</t> |
|||
</td> |
|||
<td t-if="display_discount" |
|||
class="text-end" |
|||
t-attf-style="color:#{o.theme_id.text_color};"> |
|||
<span t-field="l.discount"/> |
|||
</td> |
|||
<td t-if="(o.theme_id.tax_value) and (l.tax_ids)" |
|||
class="text-end" |
|||
t-attf-style="color:#{o.theme_id.text_color};"> |
|||
<span t-esc="', '.join(map(lambda x: (x.description or x.name), l.tax_ids))"/> |
|||
</td> |
|||
<td t-if="l.price_subtotal" |
|||
class="text-end" |
|||
t-attf-style="color:#{o.theme_id.text_color};"> |
|||
<span t-field="l.price_subtotal" |
|||
t-field-options="{'widget': 'monetary','display_currency':'o.currency_id'}"/> |
|||
</td> |
|||
</tr> |
|||
</table> |
|||
<!--Payment details--> |
|||
<div class="clearfix mb-4"> |
|||
<div id="total" class="row"> |
|||
<div t-attf-class="#{'col-6' if report_type != 'html' else 'col-sm-7 col-md-6'} ms-auto"> |
|||
<table class="table table-sm table-borderless" style="page-break-inside: avoid;"> |
|||
<tbody> |
|||
<tr class="border-black o_subtotal" style=""> |
|||
<t t-set="tax_totals" t-value="o.tax_totals"/> |
|||
<t t-foreach="tax_totals['subtotals']" t-as="subtotal"> |
|||
<tr class="border-black o_subtotal" |
|||
t-attf-style="color:#{o.theme_id.text_color};"> |
|||
<td t-attf-style="color:#{o.theme_id.text_color};"> |
|||
<strong t-esc="subtotal['name']" t-attf-style="color:#{o.theme_id.text_color};"/> |
|||
</td> |
|||
<td class="text-end" t-attf-style="color:#{o.theme_id.text_color};"> |
|||
<span t-att-class="oe_subtotal_footer_separator" |
|||
t-attf-style="color:#{o.theme_id.text_color};" |
|||
t-esc="subtotal['formatted_amount']"/> |
|||
</td> |
|||
</tr> |
|||
<t t-set="subtotal_to_show" t-value="subtotal['name']"/> |
|||
<t t-call="account.tax_groups_totals" t-attf-style="color:#{o.theme_id.text_color};"/> |
|||
</t> |
|||
</tr> |
|||
<!--Total amount with all taxes--> |
|||
<tr class="border-black o_total"> |
|||
<td><strong t-attf-style="color:#{o.theme_id.customer_text_color}">Total</strong></td> |
|||
<td class="text-end"> |
|||
<span t-esc="tax_totals['formatted_amount_total']" t-attf-style="color:#{o.theme_id.customer_text_color}"/> |
|||
</td> |
|||
</tr> |
|||
<!--Paid amount details--> |
|||
<t t-if="print_with_payments"> |
|||
<t t-if="o.payment_state != 'invoicing_legacy'"> |
|||
<t t-set="payments_vals" |
|||
t-value="o.sudo().invoice_payments_widget and o.sudo().invoice_payments_widget['content'] or []"/> |
|||
<t t-foreach="payments_vals" t-as="payment_vals"> |
|||
<tr> |
|||
<td> |
|||
<i class="oe_form_field text-end oe_payment_label" t-attf-style="color:#{o.theme_id.text_color}">Paid on |
|||
<t |
|||
t-esc="payment_vals['date']" |
|||
t-options='{"widget": "date"}' t-attf-style="color:#{o.theme_id.text_color}"/> |
|||
</i> |
|||
</td> |
|||
<td class="text-end" t-attf-style="color:#{o.theme_id.text_color}"> |
|||
<span t-esc="payment_vals['amount']" |
|||
t-options='{"widget": "monetary", "display_currency": o.currency_id}'/> |
|||
</td> |
|||
</tr> |
|||
</t> |
|||
<t t-if="len(payments_vals) > 0"> |
|||
<tr class="border-black o_total"> |
|||
<td> |
|||
<strong t-attf-style="color:#{o.theme_id.customer_text_color}">Amount Due</strong> |
|||
</td> |
|||
<td class="text-end"> |
|||
<span t-field="o.amount_residual" t-attf-style="color:#{o.theme_id.customer_text_color}"/> |
|||
</td> |
|||
</tr> |
|||
</t> |
|||
</t> |
|||
</t> |
|||
</tbody> |
|||
</table> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<br/><br/><br/><br/> |
|||
<div t-attf-style="color:#{o.theme_id.text_color};padding-top:10%;" class="col-12"> |
|||
<p t-if="not is_html_empty(o.narration)"> |
|||
<strong>Comment:</strong> |
|||
<span t-field="o.narration"/> |
|||
</p> |
|||
<p t-if="o.fiscal_position_id.note"> |
|||
<strong>Fiscal Position Remark:</strong> |
|||
<span t-field="o.fiscal_position_id.note"/> |
|||
</p> |
|||
<p t-if="o.move_type in ('out_invoice','in_refund')"> |
|||
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> |
|||
<p t-if="o.fiscal_position_id.note" name="note"> |
|||
<span t-field="o.fiscal_position_id.note"/> |
|||
</p> |
|||
<t t-if="o.company_id.country_id.code == 'IN'"> |
|||
<p id="total_in_words" class="mb16"> |
|||
<strong>Total (In Words):</strong> |
|||
<span t-field="o.amount_total_words"/> |
|||
</p> |
|||
</t> |
|||
<div id="qrcode" |
|||
t-if="(o.company_id.qr_code) and (o.currency_id.name == 'EUR') and (o.invoice_partner_bank_id.acc_number != False)"> |
|||
<p t-if="(o.invoice_partner_bank_id.qr_code_valid)"> |
|||
<strong class="text-center">Scan me with your banking app.</strong> |
|||
<br/><br/> |
|||
<img class="border border-dark rounded" |
|||
t-att-src="o.invoice_partner_bank_id.build_qr_code_url(o.amount_residual, o.ref or o.name)"/> |
|||
</p> |
|||
<p t-if="(o.invoice_partner_bank_id.qr_code_valid == False)"> |
|||
<strong class="text-center">The SEPA QR Code information are not set correctly. |
|||
</strong> |
|||
<br/> |
|||
</p> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</t> |
|||
</template> |
|||
</data> |
|||
</odoo> |
@ -0,0 +1,375 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<odoo> |
|||
<data> |
|||
<!--Normal Template View--> |
|||
<template id="custom_template_report_invoice_normal"> |
|||
<t t-call="web.external_layout"> |
|||
<t t-set="model" t-value="'account.move'"/> |
|||
<div><br/><br/> |
|||
<!--Customer address--> |
|||
<t t-if="o and 'company_id' in o"> |
|||
<t t-set="company" t-value="o.company_id"/> |
|||
</t> |
|||
<t t-if="not o or not 'company_id' in o"> |
|||
<t t-set="company" t-value="res_company"/> |
|||
</t> |
|||
<div t-if="o.theme_id.address" |
|||
id="customer address" |
|||
t-attf-style="color:#{o.theme_id.customer_text_color}"> |
|||
<div class="row"> |
|||
<div style="width:50%;" |
|||
t-attf-class="{{'ms-auto' if o.theme_id.customer_position == 'right' else ''}}"> |
|||
<div itemprop="address" |
|||
class="address"> |
|||
<div> |
|||
<span t-if="o.partner_id"> |
|||
<span style="color:#{o.theme_id.customer_text_color} !important;" |
|||
t-field="o.partner_id"/> |
|||
</span> |
|||
</div> |
|||
<div> |
|||
<span t-if="o.partner_id.street"> |
|||
<span style="color:#{o.theme_id.customer_text_color} !important;" |
|||
t-field="o.partner_id.street"/> |
|||
</span> |
|||
</div> |
|||
<div> |
|||
<span t-if="o.partner_id.street2"> |
|||
<span style="color:#{o.theme_id.customer_text_color} !important;" |
|||
t-field="o.partner_id.street2"/> |
|||
</span> |
|||
</div> |
|||
<div t-if="o.theme_id.city"> |
|||
<span t-if="o.partner_id.city"> |
|||
<span style="color:#{o.theme_id.customer_text_color} !important;" |
|||
t-field="o.partner_id.city"/> |
|||
</span> |
|||
</div> |
|||
<div t-if="o.theme_id.country"> |
|||
<span t-if="o.partner_id.country_id"> |
|||
<span style="color:#{o.theme_id.customer_text_color} !important;" |
|||
t-field="o.partner_id.country_id"/> |
|||
</span> |
|||
</div> |
|||
<div t-if="o.theme_id.vat"> |
|||
<span t-if="o.partner_id.vat"> |
|||
<span style="color:#{o.theme_id.customer_text_color} !important;" |
|||
t-field="o.partner_id.vat"/> |
|||
</span> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div><br/> |
|||
<!--Customer details table--> |
|||
<t t-set="o" t-value="o.with_context({'lang':o.partner_id.lang})"/> |
|||
<table class="table table-sm table-borderless" |
|||
style="padding-top:20px;width:100%"> |
|||
<tr> |
|||
<th t-if="o.invoice_date" |
|||
class='text-center' |
|||
t-attf-style=" background-color:#{o.theme_id.base_color};color:#{company.document_layout_id.heading_text_color};"> |
|||
Invoice Date |
|||
</th> |
|||
<th t-if="o.invoice_date_due" |
|||
class='text-center' |
|||
t-attf-style=" background-color:#{o.theme_id.base_color};color:#{company.document_layout_id.heading_text_color};"> |
|||
Due Date |
|||
</th> |
|||
<th t-if="o.invoice_payment_term_id" |
|||
class='text-center' |
|||
t-attf-style=" background-color:#{o.theme_id.base_color};color:#{company.document_layout_id.heading_text_color};"> |
|||
Payment Term |
|||
</th> |
|||
<th t-if="(o.theme_id.sales_person) and (o.user_id)" |
|||
class='text-center' |
|||
t-attf-style=" background-color:#{o.theme_id.base_color};color:#{company.document_layout_id.heading_text_color};"> |
|||
Sales Person |
|||
</th> |
|||
<th t-if="(o.theme_id.reference) and (o.ref)" |
|||
class='text-center' |
|||
t-attf-style=" background-color:#{o.theme_id.base_color};color:#{company.document_layout_id.heading_text_color};"> |
|||
Reference |
|||
</th> |
|||
<th t-if="(o.theme_id.source) and (o.invoice_origin)" |
|||
class='text-center' |
|||
t-attf-style=" background-color:#{o.theme_id.base_color};color:#{company.document_layout_id.heading_text_color};"> |
|||
Source |
|||
</th> |
|||
</tr> |
|||
<!--Details value--> |
|||
<tr> |
|||
<td t-if="o.invoice_date"> |
|||
<font t-attf-style="color:#{o.theme_id.text_color};"> |
|||
<p class="text-center" |
|||
t-field="o.invoice_date"/> |
|||
</font> |
|||
</td> |
|||
<td t-if="o.invoice_date_due"> |
|||
<font t-attf-style="color:#{o.theme_id.text_color};"> |
|||
<p class="text-center" |
|||
t-field="o.invoice_date_due"/> |
|||
</font> |
|||
</td> |
|||
<td t-if="o.invoice_payment_term_id"> |
|||
<font t-attf-style="color:#{o.theme_id.text_color};"> |
|||
<p class="text-center" |
|||
t-field="o.invoice_payment_term_id"/> |
|||
</font> |
|||
</td> |
|||
<td t-if="(o.theme_id.sales_person) and (o.user_id)"> |
|||
<font t-attf-style="color:#{o.theme_id.text_color};"> |
|||
<p class="text-center" |
|||
t-field="o.user_id"/> |
|||
</font> |
|||
</td> |
|||
<td t-if="(o.theme_id.reference) and (o.ref)"> |
|||
<font t-attf-style="color:#{o.theme_id.text_color};"> |
|||
<p class="text-center" |
|||
t-field="o.ref"/> |
|||
</font> |
|||
</td> |
|||
<td t-if="(o.theme_id.source) and (o.source_id)"> |
|||
<font t-attf-style="color:#{o.theme_id.text_color};"> |
|||
<p class="text-center" |
|||
t-field="o.source_id"/> |
|||
</font> |
|||
</td> |
|||
</tr> |
|||
</table> |
|||
<!--Invoice Number--> |
|||
<div class="page" style="text-align: center"> |
|||
<h2 t-attf-style="color:#{company.document_layout_id.customer_text_color};"> |
|||
<center> |
|||
<span t-if="o.move_type == 'out_invoice' and (o.state == 'draft' or o.state == 'posted')"> |
|||
<font>Invoice</font> |
|||
</span> |
|||
<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.heading_text_color}"> |
|||
Vendor Bill |
|||
</font> |
|||
</span> |
|||
<font> |
|||
<span t-field="o.name"/> |
|||
</font> |
|||
</center> |
|||
</h2> |
|||
</div> |
|||
<!--Invoice Product details--> |
|||
<div style="padding-top:20px;width:100%"> |
|||
<t t-set="display_discount" |
|||
t-value="any([l.discount for l in o.invoice_line_ids])"/> |
|||
<!--Product Details--> |
|||
<table class="table table-sm table-borderless"> |
|||
<tr> |
|||
<th class="text-right" |
|||
t-attf-style=" background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color};"> |
|||
Product |
|||
</th> |
|||
<th class="text-right" |
|||
t-if="o.theme_id.description" |
|||
t-attf-style=" background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color};"> |
|||
Description |
|||
</th> |
|||
<th class="text-left" |
|||
t-attf-style=" background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color};"> |
|||
Quantity |
|||
</th> |
|||
<th class="text-left" |
|||
t-attf-style=" background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color};"> |
|||
Unit Price |
|||
</th> |
|||
<th t-if="display_discount" |
|||
class="text-left" |
|||
t-attf-style=" background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color};"> |
|||
Disc.(%) |
|||
</th> |
|||
<th t-if="o.theme_id.tax_value" |
|||
class="text-center" |
|||
t-attf-style=" background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color};"> |
|||
Taxes |
|||
</th> |
|||
<th class="text-left" |
|||
t-attf-style=" background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color};"> |
|||
Price |
|||
</th> |
|||
</tr> |
|||
<tr t-foreach="o.invoice_line_ids" t-as="l"> |
|||
<td class="text-right" |
|||
t-attf-style="color:#{o.theme_id.text_color};"> |
|||
<span t-field="l.product_id.name"/> |
|||
</td> |
|||
<td t-if="o.theme_id.description" |
|||
class="text-right" |
|||
t-attf-style="color:#{o.theme_id.text_color};"> |
|||
<span t-field="l.name"/> |
|||
</td> |
|||
<td class="text-end" |
|||
t-attf-style="color:#{o.theme_id.text_color};"> |
|||
<t t-if="l.quantity"> |
|||
<span t-field="l.quantity"/> |
|||
</t> |
|||
</td> |
|||
<td class="text-end" |
|||
t-attf-style="color:#{o.theme_id.text_color};"> |
|||
<t t-if="l.price_unit"> |
|||
<span t-field="l.price_unit"/> |
|||
</t> |
|||
</td> |
|||
<td t-if="display_discount" |
|||
class="text-end" |
|||
t-attf-style="color:#{o.theme_id.text_color};"> |
|||
<span t-field="l.discount"/> |
|||
</td> |
|||
<td t-if="(o.theme_id.tax_value) and (l.tax_ids)" |
|||
class="text-end" |
|||
t-attf-style="color:#{o.theme_id.text_color};"> |
|||
<span t-esc="', '.join(map(lambda x: (x.description or x.name), l.tax_ids))"/> |
|||
</td> |
|||
<td t-if="l.price_subtotal" |
|||
class="text-end" |
|||
t-attf-style="color:#{o.theme_id.text_color};"> |
|||
<span t-field="l.price_subtotal" |
|||
t-field-options="{'widget': 'monetary','display_currency':'o.currency_id'}"/> |
|||
</td> |
|||
</tr> |
|||
</table> |
|||
</div> |
|||
<!--Payment details--> |
|||
<div class="clearfix mb-4"> |
|||
<div id="total" class="row"> |
|||
<div t-attf-class="#{'col-6' if report_type != 'html' else 'col-sm-7 col-md-6'} ms-auto"> |
|||
<table class="table table-sm table-borderless"> |
|||
<t t-set="tax_totals" t-value="o.tax_totals"/> |
|||
<t t-foreach="tax_totals['subtotals']" t-as="subtotal"> |
|||
<tr class="border-black o_subtotal"> |
|||
<td><strong t-esc="subtotal['name']" t-attf-style="color:#{o.theme_id.text_color}"/></td> |
|||
|
|||
<td class="text-end" t-attf-style="color:#{o.theme_id.text_color}"> |
|||
<span t-attf-style="color:#{o.theme_id.text_color}" |
|||
t-att-class="oe_subtotal_footer_separator" |
|||
t-esc="subtotal['formatted_amount']"/> |
|||
</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"> |
|||
<td><strong t-attf-style="color:#{o.theme_id.customer_text_color}">Total</strong></td> |
|||
<td class="text-end"> |
|||
<span t-esc="tax_totals['formatted_amount_total']" t-attf-style="color:#{o.theme_id.customer_text_color}"/> |
|||
</td> |
|||
</tr> |
|||
<!--Paid amount details--> |
|||
<t t-if="print_with_payments"> |
|||
<t t-if="o.payment_state != 'invoicing_legacy'"> |
|||
<t t-set="payments_vals" |
|||
t-value="o.sudo().invoice_payments_widget and o.sudo().invoice_payments_widget['content'] or []"/> |
|||
<t t-foreach="payments_vals" t-as="payment_vals"> |
|||
<tr> |
|||
<td> |
|||
<i class="oe_form_field text-end oe_payment_label" t-attf-style="color:#{o.theme_id.text_color}">Paid on |
|||
<t |
|||
t-esc="payment_vals['date']" |
|||
t-options='{"widget": "date"}' t-attf-style="color:#{o.theme_id.text_color}"/> |
|||
</i> |
|||
</td> |
|||
<td class="text-end" t-attf-style="color:#{o.theme_id.text_color}"> |
|||
<span t-esc="payment_vals['amount']" |
|||
t-options='{"widget": "monetary", "display_currency": o.currency_id}'/> |
|||
</td> |
|||
</tr> |
|||
</t> |
|||
<t t-if="len(payments_vals) > 0"> |
|||
<tr class="border-black o_total"> |
|||
<td> |
|||
<strong t-attf-style="color:#{o.theme_id.customer_text_color}">Amount Due</strong> |
|||
</td> |
|||
<td class="text-end"> |
|||
<span t-field="o.amount_residual" t-attf-style="color:#{o.theme_id.customer_text_color}"/> |
|||
</td> |
|||
</tr> |
|||
</t> |
|||
</t> |
|||
</t> |
|||
</table> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<!--More description--> |
|||
<div t-attf-style="color:#{o.theme_id.text_color};padding-top:10%;" class="col-12"> |
|||
<p t-if="not is_html_empty(o.narration)"> |
|||
<strong>Comment:</strong> |
|||
<span t-field="o.narration"/> |
|||
</p> |
|||
<p t-if="o.fiscal_position_id.note"> |
|||
<strong>Fiscal Position Remark:</strong> |
|||
<span t-field="o.fiscal_position_id.note"/> |
|||
</p> |
|||
<p t-if="o.move_type in ('out_invoice','in_refund')"> |
|||
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> |
|||
<p t-if="o.fiscal_position_id.note" name="note"> |
|||
<span t-field="o.fiscal_position_id.note"/> |
|||
</p> |
|||
<t t-if="o.company_id.country_id.code == 'IN'"> |
|||
<p id="total_in_words" class="mb16"> |
|||
<strong>Total (In Words):</strong> |
|||
<span t-field="o.amount_total_words"/> |
|||
</p> |
|||
</t> |
|||
<div id="qrcode" |
|||
t-if="(o.company_id.qr_code) and (o.currency_id.name == 'EUR') and (o.invoice_partner_bank_id.acc_number != False)"> |
|||
<p t-if="(o.invoice_partner_bank_id.qr_code_valid)"> |
|||
<strong class="text-center">Scan me with your |
|||
banking app. |
|||
</strong> |
|||
<img class="border border-dark rounded" |
|||
t-att-src="o.invoice_partner_bank_id.build_qr_code_url(o.amount_residual, o.ref or o.name)"/> |
|||
</p> |
|||
<p t-if="(o.invoice_partner_bank_id.qr_code_valid == False)"> |
|||
<strong class="text-center">The SEPA QR Code |
|||
information are not set correctly. |
|||
</strong> |
|||
</p> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</t> |
|||
</template> |
|||
</data> |
|||
</odoo> |
@ -0,0 +1,366 @@ |
|||
<odoo> |
|||
<data> |
|||
<!--old Template View--> |
|||
<template id="old_std_report_invoice_document"> |
|||
<t t-set="model" t-value="'account.move'"/> |
|||
<t t-if="o and 'company_id' in o"> |
|||
<t t-set="company" t-value="o.company_id"/> |
|||
</t> |
|||
<t t-if="not o or not 'company_id' in o"> |
|||
<t t-set="company" t-value="res_company"/> |
|||
</t> |
|||
<t t-call="web.external_layout"> |
|||
<t t-set="o" t-value="o.with_context({'lang':o.partner_id.lang})"/> |
|||
<div class="page"> |
|||
<!--Customer Address--> |
|||
<div t-if="o.theme_id.address" |
|||
id="customer address" |
|||
t-attf-style="color:#{o.theme_id.customer_text_color}"> |
|||
<div class="row"> |
|||
<div style="width:50%;" |
|||
t-attf-class="{{'ms-auto' if o.theme_id.customer_position == 'right' else ''}}"> |
|||
<div itemprop="address" |
|||
class="address"> |
|||
<div> |
|||
<span t-if="o.partner_id"> |
|||
<span style="color:#{o.theme_id.customer_text_color} !important;" |
|||
t-field="o.partner_id"/> |
|||
</span> |
|||
</div> |
|||
<div> |
|||
<span t-if="o.partner_id.street"> |
|||
<span style="color:#{o.theme_id.customer_text_color} !important;" |
|||
t-field="o.partner_id.street"/> |
|||
</span> |
|||
</div> |
|||
<div> |
|||
<span t-if="o.partner_id.street2"> |
|||
<span style="color:#{o.theme_id.customer_text_color} !important;" |
|||
t-field="o.partner_id.street2"/> |
|||
</span> |
|||
</div> |
|||
<div t-if="o.theme_id.city"> |
|||
<span t-if="o.partner_id.city"> |
|||
<span style="color:#{o.theme_id.customer_text_color} !important;" |
|||
t-field="o.partner_id.city"/> |
|||
</span> |
|||
</div> |
|||
<div t-if="o.theme_id.country"> |
|||
<span t-if="o.partner_id.country_id"> |
|||
<span style="color:#{o.theme_id.customer_text_color} !important;" |
|||
t-field="o.partner_id.country_id"/> |
|||
</span> |
|||
</div> |
|||
<div t-if="o.theme_id.vat"> |
|||
<span t-if="o.partner_id.vat"> |
|||
<span style="color:#{o.theme_id.customer_text_color} !important;" |
|||
t-field="o.partner_id.vat"/> |
|||
</span> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<br/><br/> |
|||
<!--Invoice details--> |
|||
<div class="page"> |
|||
<div t-attf-style=" background-color:#{company.document_layout_id.base_color};padding:2% ;color:#{company.document_layout_id.customer_text_color};"> |
|||
<!--Invoice sl no--> |
|||
<h2> |
|||
<span t-if="o.move_type == 'out_invoice' and (o.state == 'draft' or o.state == 'posted')"> |
|||
<font t-attf-style="color:#{o.theme_id.heading_text_color}"> |
|||
Invoice |
|||
</font> |
|||
</span> |
|||
<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.heading_text_color}"> |
|||
Vendor Bill |
|||
</font> |
|||
</span> |
|||
<font> |
|||
<span t-field="o.name" t-attf-style="color:#{o.theme_id.heading_text_color}"/> |
|||
</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.source_id"> |
|||
<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.source_id"/> |
|||
</font> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<!--Product Lines--> |
|||
<div style="padding-top:20px;width:100%"> |
|||
<div style="padding-top:20px;"/> |
|||
<t t-set="display_discount" |
|||
t-value="any([l.discount for l in o.invoice_line_ids])"/> |
|||
<!--Product Details--> |
|||
<table class="table table-sm table-borderless"> |
|||
<tr> |
|||
<th class="text-right" |
|||
t-attf-style=" background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color};"> |
|||
Product |
|||
</th> |
|||
<th class="text-right" |
|||
t-if="o.theme_id.description" |
|||
t-attf-style=" background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color};"> |
|||
Description |
|||
</th> |
|||
<th class="text-left" |
|||
t-attf-style=" background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color};"> |
|||
Quantity |
|||
</th> |
|||
<th class="text-left" |
|||
t-attf-style=" background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color};"> |
|||
Unit Price |
|||
</th> |
|||
<th t-if="display_discount" |
|||
class="text-left" |
|||
t-attf-style=" background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color};"> |
|||
Disc.(%) |
|||
</th> |
|||
<th t-if="o.theme_id.tax_value" |
|||
class="text-center" |
|||
t-attf-style=" background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color};"> |
|||
Taxes |
|||
</th> |
|||
<th class="text-left" |
|||
t-attf-style=" background-color:#{o.theme_id.base_color};color:#{o.theme_id.heading_text_color};"> |
|||
Price |
|||
</th> |
|||
</tr> |
|||
<tr t-foreach="o.invoice_line_ids" t-as="l"> |
|||
<td class="text-right" |
|||
t-attf-style="color:#{o.theme_id.text_color};"> |
|||
<span t-field="l.product_id.name"/> |
|||
</td> |
|||
<td t-if="o.theme_id.description" |
|||
class="text-right" |
|||
t-attf-style="color:#{o.theme_id.text_color};"> |
|||
<span t-field="l.name"/> |
|||
</td> |
|||
<td class="text-end" |
|||
t-attf-style="color:#{o.theme_id.text_color};"> |
|||
<t t-if="l.quantity"> |
|||
<span t-field="l.quantity"/> |
|||
</t> |
|||
</td> |
|||
<td class="text-end" |
|||
t-attf-style="color:#{o.theme_id.text_color};"> |
|||
<t t-if="l.price_unit"> |
|||
<span t-field="l.price_unit"/> |
|||
</t> |
|||
</td> |
|||
<td t-if="display_discount" |
|||
class="text-end" |
|||
t-attf-style="color:#{o.theme_id.text_color};"> |
|||
<span t-field="l.discount"/> |
|||
</td> |
|||
<td t-if="(o.theme_id.tax_value) and (l.tax_ids)" |
|||
class="text-end" |
|||
t-attf-style="color:#{o.theme_id.text_color};"> |
|||
<span t-esc="', '.join(map(lambda x: (x.description or x.name), l.tax_ids))"/> |
|||
</td> |
|||
<td t-if="l.price_subtotal" |
|||
class="text-end" |
|||
t-attf-style="color:#{o.theme_id.text_color};"> |
|||
<span t-field="l.price_subtotal" |
|||
t-field-options="{'widget': 'monetary','display_currency':'o.currency_id'}"/> |
|||
</td> |
|||
</tr> |
|||
</table> |
|||
<!--Payment Details--> |
|||
<div class="clearfix mb-4"> |
|||
<div id="total" class="row"> |
|||
<div t-attf-class="#{'col-6' if report_type != 'html' else 'col-sm-7 col-md-6'} ms-auto"> |
|||
<table class="table table-sm table-borderless"> |
|||
<t t-set="tax_totals" t-value="o.tax_totals"/> |
|||
<t t-foreach="tax_totals['subtotals']" t-as="subtotal"> |
|||
<tr class="border-black o_subtotal"> |
|||
<td><strong t-esc="subtotal['name']" t-attf-style="color:#{o.theme_id.text_color}"/></td> |
|||
|
|||
<td class="text-end" t-attf-style="color:#{o.theme_id.text_color}"> |
|||
<span t-attf-style="color:#{o.theme_id.text_color}" |
|||
t-att-class="oe_subtotal_footer_separator" |
|||
t-esc="subtotal['formatted_amount']"/> |
|||
</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"> |
|||
<td><strong t-attf-style="color:#{o.theme_id.customer_text_color}">Total</strong></td> |
|||
<td class="text-end"> |
|||
<span t-esc="tax_totals['formatted_amount_total']" t-attf-style="color:#{o.theme_id.customer_text_color}"/> |
|||
</td> |
|||
</tr> |
|||
<!--Paid amount details--> |
|||
<t t-if="print_with_payments"> |
|||
<t t-if="o.payment_state != 'invoicing_legacy'"> |
|||
<t t-set="payments_vals" |
|||
t-value="o.sudo().invoice_payments_widget and o.sudo().invoice_payments_widget['content'] or []"/> |
|||
<t t-foreach="payments_vals" t-as="payment_vals"> |
|||
<tr> |
|||
<td> |
|||
<i class="oe_form_field text-end oe_payment_label" t-attf-style="color:#{o.theme_id.text_color}">Paid on |
|||
<t |
|||
t-esc="payment_vals['date']" |
|||
t-options='{"widget": "date"}' t-attf-style="color:#{o.theme_id.text_color}"/> |
|||
</i> |
|||
</td> |
|||
<td class="text-end" t-attf-style="color:#{o.theme_id.text_color}"> |
|||
<span t-esc="payment_vals['amount']" |
|||
t-options='{"widget": "monetary", "display_currency": o.currency_id}'/> |
|||
</td> |
|||
</tr> |
|||
</t> |
|||
<t t-if="len(payments_vals) > 0"> |
|||
<tr class="border-black o_total"> |
|||
<td> |
|||
<strong t-attf-style="color:#{o.theme_id.customer_text_color}">Amount Due</strong> |
|||
</td> |
|||
<td class="text-end"> |
|||
<span t-field="o.amount_residual" t-attf-style="color:#{o.theme_id.customer_text_color}"/> |
|||
</td> |
|||
</tr> |
|||
</t> |
|||
</t> |
|||
</t> |
|||
</table> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<!--More details--> |
|||
<div t-attf-style="color:#{o.theme_id.text_color};padding-top:10%;" class="col-12"> |
|||
<p t-if="not is_html_empty(o.narration)"> |
|||
<strong>Comment:</strong> |
|||
<span t-field="o.narration"/> |
|||
</p> |
|||
<p t-if="o.fiscal_position_id.note"> |
|||
<strong>Fiscal Position Remark:</strong> |
|||
<span t-field="o.fiscal_position_id.note"/> |
|||
</p> |
|||
<p t-if="o.move_type in ('out_invoice','in_refund')"> |
|||
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> |
|||
<p t-if="o.fiscal_position_id.note" name="note"> |
|||
<span t-field="o.fiscal_position_id.note"/> |
|||
</p> |
|||
<t t-if="o.company_id.country_id.code == 'IN'"> |
|||
<p id="total_in_words" class="mb16"> |
|||
<strong>Total (In Words):</strong> |
|||
<span t-field="o.amount_total_words"/> |
|||
</p> |
|||
</t> |
|||
<div id="qrcode" |
|||
t-if="(o.company_id.qr_code) and (o.currency_id.name == 'EUR') and (o.invoice_partner_bank_id.acc_number != False)"> |
|||
<p t-if="(o.invoice_partner_bank_id.qr_code_valid)"> |
|||
<strong class="text-center">Scan me with your banking app.</strong> |
|||
<br/><br/> |
|||
<img class="border border-dark rounded" |
|||
t-att-src="o.invoice_partner_bank_id.build_qr_code_url(o.amount_residual, o.ref or o.name)"/> |
|||
</p> |
|||
<p t-if="(o.invoice_partner_bank_id.qr_code_valid == False)"> |
|||
<strong class="text-center">The SEPA QR Code information are not set correctly. |
|||
</strong> |
|||
<br/> |
|||
</p> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</t> |
|||
</template> |
|||
</data> |
|||
</odoo> |
@ -0,0 +1,20 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<odoo> |
|||
<template id="preview_layout_report" inherit_id="web.preview_layout_report" name="Invoice report preview"> |
|||
<xpath expr="//t[@t-call='web.report_invoice_wizard_preview']" position="replace"> |
|||
<t t-set="o" t-value="res_company"/> |
|||
<t t-if="o.base_layout == 'normal'"> |
|||
<t t-call="invoice_format_editor.report_preview_normal"/> |
|||
</t> |
|||
<t t-if="o.base_layout == 'old'"> |
|||
<t t-call="invoice_format_editor.report_preview_old"/> |
|||
</t> |
|||
<t t-if="o.base_layout == 'modern'"> |
|||
<t t-call="invoice_format_editor.report_preview_modern"/> |
|||
</t> |
|||
<t t-if="o.base_layout == 'default'"> |
|||
<t t-call="web.report_invoice_wizard_preview"/> |
|||
</t> |
|||
</xpath> |
|||
</template> |
|||
</odoo> |
@ -0,0 +1,59 @@ |
|||
<odoo> |
|||
<data> |
|||
<!--Report invoice template without payment--> |
|||
<template id="report_invoice_inherit" inherit_id="account.report_invoice"> |
|||
<xpath expr="//t[@t-call='web.html_container']" position="replace"> |
|||
<t t-call="web.html_container"> |
|||
<t t-foreach="docs" t-as="o"> |
|||
<t t-set="lang" |
|||
t-value="o.invoice_user_id.sudo().lang if o.move_type in ('in_invoice', 'in_refund') else o.partner_id.lang"/> |
|||
<t t-if="o.company_id.base_layout == 'normal'"> |
|||
<t t-call="invoice_format_editor.custom_template_report_invoice_normal" |
|||
t-lang="o.partner_id.lang"/> |
|||
</t> |
|||
<t t-if="o.company_id.base_layout == 'old'"> |
|||
<t t-call="invoice_format_editor.old_std_report_invoice_document" |
|||
t-lang="o.partner_id.lang"/> |
|||
</t> |
|||
<t t-if="o.company_id.base_layout == 'modern'"> |
|||
<t t-call="invoice_format_editor.custom_template_report_invoice_modern" |
|||
t-lang="o.partner_id.lang"/> |
|||
</t> |
|||
<t t-if="o.company_id.base_layout == 'default'"> |
|||
<t t-call="account.report_invoice_document" |
|||
t-lang="o.partner_id.lang"/> |
|||
</t> |
|||
</t> |
|||
</t> |
|||
</xpath> |
|||
</template> |
|||
<!--Report invoice template with payment--> |
|||
<template id="report_invoice_with_payments_inherit" inherit_id="account.report_invoice_with_payments"> |
|||
<xpath expr="//t[@t-call='web.html_container']" position="replace"> |
|||
<t t-call="web.html_container"> |
|||
<t t-foreach="docs" t-as="o"> |
|||
<t t-set="lang" |
|||
t-value="o.invoice_user_id.sudo().lang if o.move_type in ('in_invoice', 'in_refund') else o.partner_id.lang"/> |
|||
<t t-set="print_with_payments" t-value="True"/> |
|||
<t t-if="o.company_id.base_layout == 'normal'"> |
|||
<t t-call="invoice_format_editor.custom_template_report_invoice_normal" |
|||
t-lang="o.partner_id.lang"/> |
|||
</t> |
|||
<t t-if="o.company_id.base_layout == 'old'"> |
|||
<t t-call="invoice_format_editor.old_std_report_invoice_document" |
|||
t-lang="o.partner_id.lang"/> |
|||
</t> |
|||
<t t-if="o.company_id.base_layout == 'modern'"> |
|||
<t t-call="invoice_format_editor.custom_template_report_invoice_modern" |
|||
t-lang="o.partner_id.lang"/> |
|||
</t> |
|||
<t t-if="o.company_id.base_layout == 'default'"> |
|||
<t t-call="account.report_invoice_document" |
|||
t-lang="o.partner_id.lang"/> |
|||
</t> |
|||
</t> |
|||
</t> |
|||
</xpath> |
|||
</template> |
|||
</data> |
|||
</odoo> |
|
Before Width: | Height: | Size: 59 KiB |
Before Width: | Height: | Size: 60 KiB |
Before Width: | Height: | Size: 60 KiB |
Before Width: | Height: | Size: 60 KiB |
Before Width: | Height: | Size: 56 KiB |
Before Width: | Height: | Size: 58 KiB |
After Width: | Height: | Size: 678 KiB |
After Width: | Height: | Size: 96 KiB |
After Width: | Height: | Size: 96 KiB |
After Width: | Height: | Size: 20 KiB |
After Width: | Height: | Size: 83 KiB |
After Width: | Height: | Size: 80 KiB |
After Width: | Height: | Size: 269 KiB |
After Width: | Height: | Size: 162 KiB |
After Width: | Height: | Size: 217 KiB |
After Width: | Height: | Size: 161 KiB |
After Width: | Height: | Size: 130 KiB |
After Width: | Height: | Size: 152 KiB |
Before Width: | Height: | Size: 361 KiB After Width: | Height: | Size: 234 KiB |
Before Width: | Height: | Size: 215 KiB |
Before Width: | Height: | Size: 144 KiB |
Before Width: | Height: | Size: 207 KiB |
Before Width: | Height: | Size: 56 KiB |
Before Width: | Height: | Size: 55 KiB |
Before Width: | Height: | Size: 51 KiB |
Before Width: | Height: | Size: 49 KiB |
@ -1,3 +0,0 @@ |
|||
body{ |
|||
color:red; |
|||
} |
@ -1,204 +0,0 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<odoo> |
|||
<data> |
|||
<!--Default Template Preview--> |
|||
<template id="report_preview_default"> |
|||
<t t-call="web.html_preview_container"> |
|||
<t t-call="web.external_layout"> |
|||
<div class="pt-5"> |
|||
<div class="address row"> |
|||
<div name="address" class="col-md-5 ml-auto"> |
|||
<address> |
|||
<address class="mb-0" itemscope="itemscope" |
|||
itemtype="http://schema.org/Organization"> |
|||
<div> |
|||
<span itemprop="name">Deco Addict |
|||
</span> |
|||
</div> |
|||
<div itemprop="address" |
|||
itemscope="itemscope" |
|||
itemtype="http://schema.org/PostalAddress"> |
|||
<div class="d-flex align-items-baseline"> |
|||
<span class="w-100 o_force_ltr" |
|||
itemprop="streetAddress"> |
|||
77 Santa Barbara |
|||
Rd<br/>Pleasant Hill CA |
|||
94523<br/>United States |
|||
</span> |
|||
</div> |
|||
</div> |
|||
</address> |
|||
</address> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="page"> |
|||
<h2> |
|||
<span>Invoice</span> |
|||
<span>INV/2021/07/0003</span> |
|||
</h2> |
|||
<div id="informations" class="row mt32 mb32"> |
|||
<div class="col-auto mw-100 mb-2" |
|||
name="invoice_date"> |
|||
<strong>Invoice Date:</strong> |
|||
<p class="m-0">07/08/2021</p> |
|||
</div> |
|||
<div class="col-auto mw-100 mb-2" name="due_date"> |
|||
<strong>Due Date:</strong> |
|||
<p class="m-0">08/07/2021</p> |
|||
</div> |
|||
</div> |
|||
<table class="table table-sm o_main_table" |
|||
name="invoice_line_table"> |
|||
<thead> |
|||
<tr> |
|||
<th name="th_description" class="text-left"> |
|||
<span>Product</span> |
|||
</th> |
|||
<th name="th_description" class="text-left"> |
|||
<span>Description</span> |
|||
</th> |
|||
<th name="th_quantity" class="text-right"> |
|||
<span>Quantity</span> |
|||
</th> |
|||
<th name="th_priceunit" |
|||
class="text-right d-none d-md-table-cell"> |
|||
<span>Unit Price</span> |
|||
</th> |
|||
<th name="th_taxes" |
|||
class="text-left d-none d-md-table-cell"> |
|||
<span>Taxes</span> |
|||
</th> |
|||
<th name="th_subtotal" class="text-right"> |
|||
<span>Amount</span> |
|||
</th> |
|||
</tr> |
|||
</thead> |
|||
<tbody class="invoice_tbody"> |
|||
<tr> |
|||
<td name="account_invoice_line_pro"> |
|||
Three-Seat Sofa |
|||
</td> |
|||
<td name="account_invoice_line_name"> |
|||
<span>[FURN_8999] Three-Seat Sofa |
|||
<br/> |
|||
Three Seater Sofa with Lounger in |
|||
Steel Grey Colour |
|||
</span> |
|||
</td> |
|||
<td class="text-right"> |
|||
<span>5.000</span> |
|||
</td> |
|||
<td class="text-right d-none d-md-table-cell"> |
|||
<span class="text-nowrap">1,500.00 |
|||
</span> |
|||
</td> |
|||
<td class="text-left d-none d-md-table-cell"> |
|||
<span id="line_tax_ids">15.00%</span> |
|||
</td> |
|||
<td class="text-right o_price_total"> |
|||
<span class="text-nowrap">$ |
|||
<span class="oe_currency_value"> |
|||
7,500.00 |
|||
</span> |
|||
</span> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td name="account_invoice_line_name"> |
|||
<span>Four Person Desk |
|||
</span> |
|||
</td> |
|||
<td name="account_invoice_line_name_des"> |
|||
<span>[FURN_8220] Four Person Desk |
|||
<br/> |
|||
Four person modern office |
|||
workstation |
|||
</span> |
|||
</td> |
|||
<td class="text-right"> |
|||
<span>5.000</span> |
|||
</td> |
|||
<td class="text-right d-none d-md-table-cell"> |
|||
<span class="text-nowrap">23,500.00 |
|||
</span> |
|||
</td> |
|||
<td class="text-left d-none d-md-table-cell"> |
|||
<span id="line_tax_ids">15.00%</span> |
|||
</td> |
|||
<td class="text-right o_price_total"> |
|||
<span class="text-nowrap">$ |
|||
<span class="oe_currency_value"> |
|||
117,500.00 |
|||
</span> |
|||
</span> |
|||
</td> |
|||
</tr> |
|||
</tbody> |
|||
</table> |
|||
<div class="clearfix mb-4" style="margin-left:auto;"> |
|||
<div id="total" class="row"> |
|||
<div class="col-sm-7 col-md-6 ms-auto" > |
|||
<table class="table table-sm" |
|||
style="page-break-inside: avoid;"> |
|||
<tbody> |
|||
<tr class="border-black o_subtotal" |
|||
style=""> |
|||
<td> |
|||
<strong>Subtotal</strong> |
|||
</td> |
|||
<td class="text-end"> |
|||
<span>$ |
|||
<span class="oe_currency_value"> |
|||
125,000.00 |
|||
</span> |
|||
</span> |
|||
</td> |
|||
</tr> |
|||
<tr style=""> |
|||
<td> |
|||
<span class="text-nowrap"> |
|||
Tax 15% |
|||
</span> |
|||
</td> |
|||
<td class="text-end o_price_total"> |
|||
<span class="text-nowrap">$ |
|||
18,750.00 |
|||
</span> |
|||
</td> |
|||
</tr> |
|||
<tr class="border-black o_total"> |
|||
<td> |
|||
<strong>Total</strong> |
|||
</td> |
|||
<td class="text-end"> |
|||
<span class="text-nowrap">$ |
|||
<span class="oe_currency_value"> |
|||
143,750.00 |
|||
</span> |
|||
</span> |
|||
</td> |
|||
</tr> |
|||
</tbody> |
|||
</table> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<p> |
|||
Please use the following communication for your |
|||
payment : |
|||
<b> |
|||
<span> |
|||
INV/2021/07/0003 |
|||
</span> |
|||
</b> |
|||
</p> |
|||
<p name="payment_term"> |
|||
<span>Payment terms: 30 Days</span> |
|||
</p> |
|||
</div> |
|||
</t> |
|||
</t> |
|||
</template> |
|||
</data> |
|||
</odoo> |
@ -1,233 +0,0 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<odoo> |
|||
<data> |
|||
<!--Modern Template Preview--> |
|||
<template id="report_preview_modern"> |
|||
<t t-call="web.html_preview_container"> |
|||
<t t-call="web.external_layout"> |
|||
<div class="pt-5"> |
|||
<div class="address row"> |
|||
<div name="address" class="col-md-5 ml-auto"> |
|||
<address> |
|||
<address class="mb-0" itemscope="itemscope" |
|||
itemtype="http://schema.org/Organization"> |
|||
</address> |
|||
</address> |
|||
</div> |
|||
|
|||
</div> |
|||
</div> |
|||
<div class="page"> |
|||
<div t-attf-style=" background-color:#{company.document_layout_id.base_color};padding:2% ;color:#{company.document_layout_id.heading_text_color};"> |
|||
<h2> |
|||
<div t-attf-style="color:##FFFFFF"> |
|||
Invoice INV/2021/07/0003 |
|||
</div> |
|||
</h2> |
|||
<div id="informations" |
|||
class="row mt32 mb32"> |
|||
<div class="col-auto mw-100 mb-2" |
|||
name="invoice_date" |
|||
t-attf-style="color:##FFFFFF;"> |
|||
<p>Invoice Date: |
|||
</p> |
|||
<p class="m-0">07/08/2021 |
|||
</p> |
|||
</div> |
|||
<div class="col-auto mw-100 mb-2" |
|||
name="due_date" |
|||
t-attf-style="color:##FFFFFF;"> |
|||
<p>Due Date:</p> |
|||
<p class="m-0">08/07/2021 |
|||
</p> |
|||
</div> |
|||
<div class="col-auto mw-100 mb-2" |
|||
name="sales" |
|||
t-attf-style="color:##FFFFFF;"> |
|||
<p>Sales Person |
|||
</p> |
|||
<p class="m-0">Mitchell |
|||
Admin |
|||
</p> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="pt-5"> |
|||
<div class="address row"> |
|||
<div name="address" class="col-md-5 ml-auto"> |
|||
<div itemprop="address" |
|||
itemscope="itemscope" |
|||
itemtype="http://schema.org/PostalAddress"> |
|||
<div class="d-flex align-items-baseline"> |
|||
<span class="w-100 o_force_ltr" |
|||
itemprop="streetAddress"> |
|||
Deco Addict |
|||
<br/> |
|||
77 Santa Barbara |
|||
Rd<br/>Pleasant Hill CA |
|||
94523<br/>United States |
|||
<br/> |
|||
</span> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="page"> |
|||
<br/> |
|||
<br/> |
|||
<table class="table table-sm o_main_table" |
|||
name="invoice_line_table"> |
|||
<thead> |
|||
<tr t-attf-style=" background-color:#{company.document_layout_id.base_color};padding:2% ;color:#{company.document_layout_id.heading_text_color};"> |
|||
<th name="th_description" class="text-left"> |
|||
<span>Product</span> |
|||
</th> |
|||
<th name="th_description" class="text-left"> |
|||
<span>Description</span> |
|||
</th> |
|||
<th name="th_quantity" class="text-right"> |
|||
<span>Quantity</span> |
|||
</th> |
|||
<th name="th_priceunit" |
|||
class="text-right d-none d-md-table-cell"> |
|||
<span>Unit Price</span> |
|||
</th> |
|||
<th name="th_taxes" |
|||
class="text-left d-none d-md-table-cell"> |
|||
<span>Taxes</span> |
|||
</th> |
|||
<th name="th_subtotal" class="text-right"> |
|||
<span>Amount</span> |
|||
</th> |
|||
</tr> |
|||
</thead> |
|||
<tbody class="invoice_tbody"> |
|||
<tr> |
|||
<td name="account_invoice_line_pro"> |
|||
Three-Seat Sofa |
|||
</td> |
|||
<td name="account_invoice_line_name"> |
|||
<span>[FURN_8999] Three-Seat Sofa |
|||
<br/> |
|||
Three Seater Sofa with Lounger in |
|||
Steel Grey Colour |
|||
</span> |
|||
</td> |
|||
<td class="text-right"> |
|||
<span>5.000</span> |
|||
</td> |
|||
<td class="text-right d-none d-md-table-cell"> |
|||
<span class="text-nowrap">1,500.00 |
|||
</span> |
|||
</td> |
|||
<td class="text-left d-none d-md-table-cell"> |
|||
<span id="line_tax_ids">15.00%</span> |
|||
</td> |
|||
<td class="text-right o_price_total"> |
|||
<span class="text-nowrap">$ |
|||
<span class="oe_currency_value"> |
|||
7,500.00 |
|||
</span> |
|||
</span> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td name="account_invoice_line_name"> |
|||
<span>Four Person Desk |
|||
</span> |
|||
</td> |
|||
<td name="account_invoice_line_name_des"> |
|||
<span>[FURN_8220] Four Person Desk |
|||
<br/> |
|||
Four person modern office |
|||
workstation |
|||
</span> |
|||
</td> |
|||
<td class="text-right"> |
|||
<span>5.000</span> |
|||
</td> |
|||
<td class="text-right d-none d-md-table-cell"> |
|||
<span class="text-nowrap">23,500.00 |
|||
</span> |
|||
</td> |
|||
<td class="text-left d-none d-md-table-cell"> |
|||
<span id="line_tax_ids">15.00%</span> |
|||
</td> |
|||
<td class="text-right o_price_total"> |
|||
<span class="text-nowrap">$ |
|||
<span class="oe_currency_value"> |
|||
117,500.00 |
|||
</span> |
|||
</span> |
|||
</td> |
|||
</tr> |
|||
</tbody> |
|||
</table> |
|||
<div class="clearfix mb-4" style="margin-left:auto;"> |
|||
<div id="total" class="row"> |
|||
<div class="col-sm-7 col-md-6 ms-auto"> |
|||
<table class="table table-sm" |
|||
style="page-break-inside: avoid;"> |
|||
<tbody> |
|||
<tr class="border-black o_subtotal" |
|||
style=""> |
|||
<td> |
|||
<strong>Subtotal</strong> |
|||
</td> |
|||
<td class="text-right"> |
|||
<span>$ |
|||
<span class="oe_currency_value"> |
|||
125,000.00 |
|||
</span> |
|||
</span> |
|||
</td> |
|||
</tr> |
|||
<tr style=""> |
|||
<td> |
|||
<span class="text-nowrap"> |
|||
Tax 15% |
|||
</span> |
|||
</td> |
|||
<td class="text-right o_price_total"> |
|||
<span class="text-nowrap">$ |
|||
18,750.00 |
|||
</span> |
|||
</td> |
|||
</tr> |
|||
<tr class="border-black o_total"> |
|||
<td> |
|||
<strong>Total</strong> |
|||
</td> |
|||
<td class="text-right"> |
|||
<span class="text-nowrap">$ |
|||
<span class="oe_currency_value"> |
|||
143,750.00 |
|||
</span> |
|||
</span> |
|||
</td> |
|||
</tr> |
|||
</tbody> |
|||
</table> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<p> |
|||
Please use the following communication for your |
|||
payment : |
|||
<b> |
|||
<span> |
|||
INV/2020/07/0003 |
|||
</span> |
|||
</b> |
|||
</p> |
|||
<p name="payment_term"> |
|||
<span>Payment terms: 30 Days</span> |
|||
</p> |
|||
</div> |
|||
</t> |
|||
</t> |
|||
</template> |
|||
</data> |
|||
</odoo> |
@ -1,223 +0,0 @@ |
|||
<odoo> |
|||
<data> |
|||
<!--Normal Template Preview--> |
|||
<template id="report_preview_normal"> |
|||
<t t-call="web.html_preview_container"> |
|||
<t t-call="web.external_layout"> |
|||
<div class="pt-5"> |
|||
<div class="pull-right"> |
|||
<div name="address" class="col-md-5 ml-auto"> |
|||
<address> |
|||
<address class="mb-0" itemscope="itemscope" |
|||
itemtype="http://schema.org/Organization"> |
|||
</address> |
|||
</address> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<table class="table table-borderless" |
|||
style="padding-top:20px;width:100%"> |
|||
<tr> |
|||
<th t-attf-style=" background-color:#{company.document_layout_id.base_color};color:#{company.document_layout_id.heading_text_color};"> |
|||
Customer Address |
|||
</th> |
|||
|
|||
<th t-attf-style=" background-color:#{company.document_layout_id.base_color};color:#{company.document_layout_id.heading_text_color};"> |
|||
Invoice Date |
|||
</th> |
|||
<th t-attf-style=" background-color:#{company.document_layout_id.base_color};color:#{company.document_layout_id.heading_text_color};"> |
|||
Due Date |
|||
</th> |
|||
<th t-attf-style=" background-color:#{company.document_layout_id.base_color};color:#{company.document_layout_id.heading_text_color};"> |
|||
Sales Person |
|||
</th> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
Gemini Furniture |
|||
<br/> |
|||
317 Fairchild Dr |
|||
<br/> |
|||
Fairfield |
|||
<br/> |
|||
United States |
|||
<br/> |
|||
</td> |
|||
<td> |
|||
<font> |
|||
<p class="m-0">07/08/2021</p> |
|||
</font> |
|||
</td> |
|||
<td> |
|||
<font> |
|||
<p class="m-0">08/08/2021</p> |
|||
</font> |
|||
</td> |
|||
<td> |
|||
<font> |
|||
<p class="m-0">Mitchell admin</p> |
|||
</font> |
|||
</td> |
|||
</tr> |
|||
</table> |
|||
<div class="page" style="text-align: center"> |
|||
<h2> |
|||
<span>Invoice</span> |
|||
<span>INV/2021/07/0003</span> |
|||
</h2> |
|||
</div> |
|||
<div style="padding-top:20px;width:100%"> |
|||
<div style="padding-top:20px;"/> |
|||
<table class="table table"> |
|||
<thead> |
|||
<tr> |
|||
<th t-attf-style=" background-color:#{company.document_layout_id.base_color};color:#{company.document_layout_id.heading_text_color};"> |
|||
Product |
|||
</th> |
|||
<th t-attf-style=" background-color:#{company.document_layout_id.base_color};color:#{company.document_layout_id.heading_text_color};"> |
|||
Description |
|||
</th> |
|||
<th t-attf-style=" background-color:#{company.document_layout_id.base_color};color:#{company.document_layout_id.heading_text_color};"> |
|||
Quantity |
|||
</th> |
|||
<th t-attf-style=" background-color:#{company.document_layout_id.base_color};color:#{company.document_layout_id.heading_text_color};"> |
|||
Unit Price |
|||
</th> |
|||
<th t-attf-style=" background-color:#{company.document_layout_id.base_color};color:#{company.document_layout_id.heading_text_color};"> |
|||
Taxes |
|||
</th> |
|||
<th t-attf-style=" background-color:#{company.document_layout_id.base_color};color:#{company.document_layout_id.heading_text_color};"> |
|||
Price |
|||
</th> |
|||
</tr> |
|||
</thead> |
|||
<tbody class="invoice_tbody"> |
|||
<tr> |
|||
<td name="account_invoice_line_pro"> |
|||
Three-Seat Sofa |
|||
</td> |
|||
<td name="account_invoice_line_name"> |
|||
<span>[FURN_8999] Three-Seat Sofa |
|||
<br/> |
|||
Three Seater Sofa with Lounger in |
|||
Steel Grey Colour |
|||
</span> |
|||
</td> |
|||
<td class="text-right"> |
|||
<span>5.000</span> |
|||
</td> |
|||
<td class="text-right d-none d-md-table-cell"> |
|||
<span class="text-nowrap">1,500.00 |
|||
</span> |
|||
</td> |
|||
<td class="text-left d-none d-md-table-cell"> |
|||
<span id="line_tax_ids">15.00%</span> |
|||
</td> |
|||
<td class="text-right o_price_total"> |
|||
<span class="text-nowrap">$ |
|||
<span class="oe_currency_value"> |
|||
7,500.00 |
|||
</span> |
|||
</span> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td name="account_invoice_line_name"> |
|||
<span>Four Person Desk |
|||
</span> |
|||
</td> |
|||
<td name="account_invoice_line_name_des"> |
|||
<span>[FURN_8220] Four Person Desk |
|||
<br/> |
|||
Four person modern office |
|||
workstation |
|||
</span> |
|||
</td> |
|||
<td class="text-right"> |
|||
<span>5.000</span> |
|||
</td> |
|||
<td class="text-right d-none d-md-table-cell"> |
|||
<span class="text-nowrap">23,500.00 |
|||
</span> |
|||
</td> |
|||
<td class="text-left d-none d-md-table-cell"> |
|||
<span id="line_tax_ids">15.00%</span> |
|||
</td> |
|||
<td class="text-right o_price_total"> |
|||
<span class="text-nowrap">$ |
|||
<span class="oe_currency_value"> |
|||
117,500.00 |
|||
</span> |
|||
</span> |
|||
</td> |
|||
</tr> |
|||
</tbody> |
|||
</table> |
|||
</div> |
|||
<div> |
|||
<div class="clearfix mb-4" style="margin-left:auto;"> |
|||
<div id="total" class="row"> |
|||
<div class="col-sm-7 col-md-6 ms-auto"> |
|||
<table class="table table-sm" |
|||
style="page-break-inside: avoid;"> |
|||
<tbody> |
|||
<tr class="border-black o_subtotal" |
|||
style=""> |
|||
<td> |
|||
<strong>Subtotal</strong> |
|||
</td> |
|||
<td class="text-right"> |
|||
<span>$ |
|||
<span class="oe_currency_value"> |
|||
125,000.00 |
|||
</span> |
|||
</span> |
|||
</td> |
|||
</tr> |
|||
<tr style=""> |
|||
<td> |
|||
<span class="text-nowrap"> |
|||
Tax 15% |
|||
</span> |
|||
</td> |
|||
<td class="text-right o_price_total"> |
|||
<span class="text-nowrap">$ |
|||
18,750.00 |
|||
</span> |
|||
</td> |
|||
</tr> |
|||
<tr class="border-black o_total"> |
|||
<td> |
|||
<strong>Total</strong> |
|||
</td> |
|||
<td class="text-right"> |
|||
<span class="text-nowrap">$ |
|||
<span class="oe_currency_value"> |
|||
143,750.00 |
|||
</span> |
|||
</span> |
|||
</td> |
|||
</tr> |
|||
</tbody> |
|||
</table> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<p> |
|||
Please use the following communication for your |
|||
payment : |
|||
<b> |
|||
<span> |
|||
INV/2021/07/0003 |
|||
</span> |
|||
</b> |
|||
</p> |
|||
<p name="payment_term"> |
|||
<span>Payment terms: 30 Days</span> |
|||
</p> |
|||
</div> |
|||
</t> |
|||
</t> |
|||
</template> |
|||
</data> |
|||
</odoo> |
@ -1,249 +0,0 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<odoo> |
|||
<data> |
|||
<!--Old Template Preview--> |
|||
<template id="report_preview_old"> |
|||
<t t-call="web.html_preview_container"> |
|||
<t t-call="web.external_layout"> |
|||
<div class="pt-5"> |
|||
<div class="address row"> |
|||
<div name="address" class="col-md-5 ml-auto"> |
|||
<address> |
|||
<address class="mb-0" itemscope="itemscope" |
|||
itemtype="http://schema.org/Organization"> |
|||
</address> |
|||
</address> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="new"> |
|||
<div class=" row mt32 mb32" t-attf-class="pull-right"> |
|||
<div class="col-12" style="padding-top:20px;"> |
|||
<div itemprop="address" |
|||
itemscope="itemscope" |
|||
itemtype="http://schema.org/PostalAddress"> |
|||
<div class="d-flex align-items-baseline"> |
|||
<span class="w-100 o_force_ltr" |
|||
itemprop="streetAddress"> |
|||
Deco Addict |
|||
<br/> |
|||
77 Santa Barbara |
|||
Rd<br/>Pleasant Hill CA |
|||
94523<br/>United States |
|||
<br/> |
|||
</span> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div t-attf-class="pull-right" |
|||
t-attf-style="font:15px lucida-console,sans-serif !important;background-color:#{company.document_layout_id.base_color};color:#{company.document_layout_id.heading_text_color};padding:2%"> |
|||
<h2> |
|||
<div t-attf-style="color:##FFFFFF"> |
|||
Invoice INV/2021/07/0003 |
|||
</div> |
|||
</h2> |
|||
<div id="informations" |
|||
class="row mt32 mb32"> |
|||
<div class="col-auto mw-100 mb-2" |
|||
name="invoice_date" |
|||
t-attf-style="color:##FFFFFF;"> |
|||
<p>Invoice Date: |
|||
</p> |
|||
<p class="m-0">07/08/2021 |
|||
</p> |
|||
</div> |
|||
<div class="col-auto mw-100 mb-2" |
|||
name="due_date" |
|||
t-attf-style="color:##FFFFFF;"> |
|||
<p>Due Date:</p> |
|||
<p class="m-0">08/07/2021 |
|||
</p> |
|||
</div> |
|||
<div class="col-auto mw-100 mb-2" |
|||
name="sales" |
|||
t-attf-style="color:##FFFFFF;"> |
|||
<p>Sales Person |
|||
</p> |
|||
<p class="m-0">Mitchell |
|||
Admin |
|||
</p> |
|||
</div> |
|||
|
|||
</div> |
|||
</div> |
|||
<br/> |
|||
<br/> |
|||
<br/> |
|||
<br/> |
|||
<br/> |
|||
<br/> |
|||
<br/> |
|||
<br/> |
|||
<div class="page" t-attf-style="padding-top:36px;"> |
|||
<table class="table table-sm o_main_table" |
|||
name="invoice_line_table"> |
|||
<thead> |
|||
<tr t-attf-style=" background-color:#{company.document_layout_id.base_color};padding:2% ;color:#{company.document_layout_id.heading_text_color};"> |
|||
<th name="th_description" |
|||
class="text-left"> |
|||
<span>Product</span> |
|||
</th> |
|||
<th name="th_description" |
|||
class="text-left"> |
|||
<span>Description</span> |
|||
</th> |
|||
<th name="th_quantity" |
|||
class="text-right"> |
|||
<span>Quantity</span> |
|||
</th> |
|||
<th name="th_priceunit" |
|||
class="text-right d-none d-md-table-cell"> |
|||
<span>Unit Price</span> |
|||
</th> |
|||
<th name="th_taxes" |
|||
class="text-left d-none d-md-table-cell"> |
|||
<span>Taxes</span> |
|||
</th> |
|||
<th name="th_subtotal" |
|||
class="text-right"> |
|||
<span>Amount</span> |
|||
</th> |
|||
</tr> |
|||
</thead> |
|||
<tbody class="invoice_tbody"> |
|||
<tr> |
|||
<td name="account_invoice_line_pro"> |
|||
Three-Seat Sofa |
|||
</td> |
|||
<td name="account_invoice_line_name"> |
|||
<span>[FURN_8999] Three-Seat Sofa |
|||
<br/> |
|||
Three Seater Sofa with Lounger |
|||
in |
|||
Steel Grey Colour |
|||
</span> |
|||
</td> |
|||
<td class="text-right"> |
|||
<span>5.000</span> |
|||
</td> |
|||
<td class="text-right d-none d-md-table-cell"> |
|||
<span class="text-nowrap">1,500.00 |
|||
</span> |
|||
</td> |
|||
<td class="text-left d-none d-md-table-cell"> |
|||
<span id="line_tax_ids">15.00% |
|||
</span> |
|||
</td> |
|||
<td class="text-right o_price_total"> |
|||
<span class="text-nowrap">$ |
|||
<span class="oe_currency_value"> |
|||
7,500.00 |
|||
</span> |
|||
</span> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td name="account_invoice_line_name"> |
|||
<span>Four Person Desk |
|||
</span> |
|||
</td> |
|||
<td name="account_invoice_line_des"> |
|||
<span>[FURN_8220] Four Person Desk |
|||
<br/> |
|||
Four person modern office |
|||
workstation |
|||
</span> |
|||
</td> |
|||
<td class="text-right"> |
|||
<span>5.000</span> |
|||
</td> |
|||
<td class="text-right d-none d-md-table-cell"> |
|||
<span class="text-nowrap">23,500.00 |
|||
</span> |
|||
</td> |
|||
<td class="text-left d-none d-md-table-cell"> |
|||
<span id="line_tax_ids">15.00% |
|||
</span> |
|||
</td> |
|||
<td class="text-right o_price_total"> |
|||
<span class="text-nowrap">$ |
|||
<span class="oe_currency_value"> |
|||
117,500.00 |
|||
</span> |
|||
</span> |
|||
</td> |
|||
</tr> |
|||
</tbody> |
|||
</table> |
|||
<div class="clearfix mb-4" style="margin-left:auto;"> |
|||
<div id="total" class="row"> |
|||
<div class="col-sm-7 col-md-6 ms-auto"> |
|||
<table class="table table-sm" |
|||
style="page-break-inside: avoid;"> |
|||
<tbody> |
|||
<tr class="border-black o_subtotal" |
|||
style=""> |
|||
<td> |
|||
<strong>Subtotal |
|||
</strong> |
|||
</td> |
|||
<td class="text-right"> |
|||
<span>$ |
|||
<span class="oe_currency_value"> |
|||
125,000.00 |
|||
</span> |
|||
</span> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<span class="text-nowrap"> |
|||
Tax 15% |
|||
</span> |
|||
</td> |
|||
<td class="text-right o_price_total"> |
|||
<span class="text-nowrap"> |
|||
$ |
|||
18,750.00 |
|||
</span> |
|||
</td> |
|||
</tr> |
|||
<tr class="border-black o_total" |
|||
t-attf-style=" background-color:#{company.document_layout_id.base_color};padding:2% ;color:#{company.document_layout_id.heading_text_color};"> |
|||
<td> |
|||
<strong>Total</strong> |
|||
</td> |
|||
<td class="text-right"> |
|||
<span class="text-nowrap"> |
|||
$ |
|||
<span class="oe_currency_value"> |
|||
143,750.00 |
|||
</span> |
|||
</span> |
|||
</td> |
|||
</tr> |
|||
</tbody> |
|||
</table> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<p> |
|||
Please use the following communication for your |
|||
payment : |
|||
<b> |
|||
<span> |
|||
INV/2021/07/0003 |
|||
</span> |
|||
</b> |
|||
</p> |
|||
<p name="payment_term"> |
|||
<span>Payment terms: 30 Days</span> |
|||
</p> |
|||
</div> |
|||
</div> |
|||
</t> |
|||
</t> |
|||
</template> |
|||
</data> |
|||
</odoo> |
@ -0,0 +1,310 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<odoo> |
|||
<!--STANDARD Layout--> |
|||
<!--Inherited the standard external layout for changing company address position--> |
|||
<template id="custom_external_layout_standard" inherit_id="web.external_layout_standard"> |
|||
<xpath expr="//div/div[1]" position="replace"> |
|||
<t t-if="model == 'account.move'"> |
|||
<div class="row"> |
|||
<div style="width:50%;" |
|||
t-attf-class="{{'ms-auto' if company.document_layout_id.logo_position == 'right' else 'd-flex justify-content-start'}}"> |
|||
<div class="d-flex justify-content-end"> |
|||
<img t-if="company.logo" t-att-src="image_data_uri(company.logo)" style="max-height:40px;max-width:140%" alt="Logo"/> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div> |
|||
<t t-if="company.report_header"> |
|||
<div style="width:50%;" |
|||
t-attf-class="{{'ms-auto' if company.document_layout_id.tagline_position == 'right' else 'd-flex justify-content-start'}}"> |
|||
<div class="d-flex justify-content-end"> |
|||
<div t-esc="company.report_header"/> |
|||
</div> |
|||
</div> |
|||
</t> |
|||
</div> |
|||
</t> |
|||
<t t-else=""> |
|||
<div class="row"> |
|||
<div class="col-3 mb4"> |
|||
<img t-if="company.logo" t-att-src="image_data_uri(company.logo)" style="max-height: 45px;" alt="Logo"/> |
|||
</div> |
|||
<div class="col-9 text-end" style="margin-top:22px;" t-field="company.report_header" name="moto"/> |
|||
</div> |
|||
</t> |
|||
</xpath> |
|||
<xpath expr="//div[@name='company_address']" position="replace"> |
|||
<t t-if="model == 'account.move'"> |
|||
<div class="row" |
|||
t-attf-style="color:#{company.document_layout_id.company_text_color};"> |
|||
<div style="width:50%;" |
|||
t-attf-class="{{'ms-auto' if company.document_layout_id.company_position == 'right' else ''}}"> |
|||
<div itemprop="address" |
|||
class="address" > |
|||
<ul class="list-unstyled"> |
|||
<li t-if="company.is_company_details_empty"> |
|||
<t t-esc="company.partner_id" |
|||
t-options='{"widget": "contact", "fields": ["address", "name"], "no_marker": true}'/> |
|||
</li> |
|||
<li t-else=""> |
|||
<t t-esc="company.company_details"/> |
|||
</li> |
|||
<li t-if="forced_vat"> |
|||
<t t-esc="company.country_id.vat_label or 'Tax ID'"/>: |
|||
<span t-esc="forced_vat"/> |
|||
</li> |
|||
</ul> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</t> |
|||
<t t-else=""> |
|||
<div class="col-6" name="company_address"> |
|||
<ul class="list-unstyled"> |
|||
<li t-if="company.is_company_details_empty"><t t-esc="company.partner_id" t-options='{"widget": "contact", "fields": ["address", "name"], "no_marker": true}'/></li> |
|||
<li t-else=""><t t-esc="company.company_details"/></li> |
|||
<li t-if="forced_vat"> |
|||
<t t-esc="company.country_id.vat_label or 'Tax ID'"/>: |
|||
<span t-esc="forced_vat"/> |
|||
</li> |
|||
</ul> |
|||
</div> |
|||
</t> |
|||
</xpath> |
|||
</template> |
|||
|
|||
<!--BOXED Layout--> |
|||
<!--Inherited the boxed external layout for changing company address position--> |
|||
<template id="custom_external_layout_boxed" inherit_id="web.external_layout_boxed"> |
|||
<xpath expr="//div[hasclass('o_boxed_header')]" position="replace"> |
|||
<t t-if="model == 'account.move'"> |
|||
<div> |
|||
<div id="boxed_header"> |
|||
<div class="row" > |
|||
<div style="width:50%;" |
|||
t-attf-class="{{'ms-auto' if company.document_layout_id.logo_position == 'right' else 'd-flex justify-content-start'}}"> |
|||
<div class="d-flex justify-content-end"> |
|||
<img t-if="company.logo" t-att-src="image_data_uri(company.logo)" style="max-height:40px;max-width:140%" alt="Logo"/> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div> |
|||
<t t-if="company.report_header"> |
|||
<div style="width:50%;" |
|||
t-attf-class="{{'ms-auto' if company.document_layout_id.tagline_position == 'right' else 'd-flex justify-content-start'}}"> |
|||
<div class="d-flex justify-content-end"> |
|||
<div t-esc="company.report_header"/> |
|||
</div> |
|||
</div> |
|||
</t> |
|||
</div> |
|||
<div class="row" t-attf-style="color:#{company.document_layout_id.company_text_color};"> |
|||
<div style="width:50%;" |
|||
t-attf-class="{{'ms-auto' if company.document_layout_id.company_position == 'right' else ''}}"> |
|||
<div itemprop="address" |
|||
class="address" > |
|||
<ul class="list-unstyled"> |
|||
<li t-if="company.is_company_details_empty"> |
|||
<t t-esc="company.partner_id" |
|||
t-options='{"widget": "contact", "fields": ["address", "name"], "no_marker": true}'/> |
|||
</li> |
|||
<li t-else=""> |
|||
<t t-esc="company.company_details"/> |
|||
</li> |
|||
<li t-if="forced_vat"> |
|||
<t t-esc="company.country_id.vat_label or 'Tax ID'"/>: |
|||
<span t-esc="forced_vat"/> |
|||
</li> |
|||
</ul> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</t> |
|||
<t t-else=""> |
|||
<div class="boxed_header"> |
|||
<div class="row"> |
|||
<div class="col-6"> |
|||
<img t-if="company.logo" |
|||
t-att-src="image_data_uri(company.logo)" |
|||
style="max-height:65pt;max-width:140%" |
|||
alt="Logo"/> |
|||
</div> |
|||
<div class="col-6 text-end mb4"> |
|||
<div class="mt0 h4" t-field="company.report_header"/> |
|||
<div name="company_address" class="float-end mb4"> |
|||
<ul class="list-unstyled"> |
|||
<li t-if="company.is_company_details_empty"><t t-esc="company.partner_id" t-options='{"widget": "contact", "fields": ["address", "name"], "no_marker": true}'/></li> |
|||
<li t-else=""><t t-esc="company.company_details"/></li> |
|||
<li t-if="forced_vat"> |
|||
<t t-esc="company.country_id.vat_label or 'Tax ID'"/>: |
|||
<span t-esc="forced_vat"/> |
|||
</li> |
|||
</ul> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</t> |
|||
</xpath> |
|||
</template> |
|||
|
|||
<!--BOLD Layout--> |
|||
<!--Inherited the bold external layout for changing company address position--> |
|||
<template id="custom_external_layout_bold" inherit_id="web.external_layout_bold"> |
|||
<xpath expr="//div[hasclass('o_clean_header')]" position="replace"> |
|||
<t t-if="model == 'account.move'"> |
|||
<div> |
|||
<div class="bold_header"> |
|||
<div class="row"> |
|||
<div style="width:50%;" |
|||
t-attf-class="{{'ms-auto' if company.document_layout_id.logo_position == 'right' else 'd-flex justify-content-start'}}"> |
|||
<div class="d-flex justify-content-end"> |
|||
<img t-if="company.logo" |
|||
t-att-src="image_data_uri(company.logo)" |
|||
style="max-height:40px;max-width:140%" |
|||
alt="Logo"/> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div> |
|||
<t t-if="company.report_header"> |
|||
<div style="width:50%;" |
|||
t-attf-class="{{'ms-auto' if company.document_layout_id.tagline_position == 'right' else 'd-flex justify-content-start'}}"> |
|||
<div class="d-flex justify-content-end"> |
|||
<div t-esc="company.report_header"/> |
|||
</div> |
|||
</div> |
|||
</t> |
|||
</div> |
|||
<div class="row" |
|||
t-attf-style="color:#{company.document_layout_id.company_text_color};"> |
|||
<div style="width:50%;" |
|||
t-attf-class="{{'ms-auto' if company.document_layout_id.company_position == 'right' else ''}}"> |
|||
<div itemprop="address" |
|||
class="address"> |
|||
<ul class="list-unstyled"> |
|||
<li t-if="company.is_company_details_empty"> |
|||
<t t-esc="company.partner_id" |
|||
t-options='{"widget": "contact", "fields": ["address", "name"], "no_marker": true}'/> |
|||
</li> |
|||
<li t-else=""> |
|||
<t t-esc="company.company_details"/> |
|||
</li> |
|||
<li t-if="forced_vat"> |
|||
<t t-esc="company.country_id.vat_label or 'Tax ID'"/> |
|||
: |
|||
<span t-esc="forced_vat"/> |
|||
</li> |
|||
</ul><br/><br/><br/> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</t> |
|||
<t t-else=""> |
|||
<div class="bold_header"> |
|||
<div class="row"> |
|||
<div class="col-6"> |
|||
<img t-if="company.logo" |
|||
t-att-src="image_data_uri(company.logo)" |
|||
style="max-height:65pt;max-width:140%" |
|||
alt="Logo"/> |
|||
</div> |
|||
<div class="col-5 offset-1" name="company_address"> |
|||
<ul class="list-unstyled"> |
|||
<li t-if="company.is_company_details_empty"> |
|||
<t t-esc="company.partner_id" |
|||
t-options='{"widget": "contact", "fields": ["address", "name"], "no_marker": true}'/> |
|||
</li> |
|||
<li t-else=""> |
|||
<t t-esc="company.company_details"/> |
|||
</li> |
|||
<li t-if="forced_vat"> |
|||
<t t-esc="company.country_id.vat_label or 'Tax ID'"/> |
|||
: |
|||
<span t-esc="forced_vat"/> |
|||
</li><br/><br/> |
|||
</ul> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</t> |
|||
</xpath> |
|||
</template> |
|||
|
|||
<!--STRIPED Layout--> |
|||
<!--Inherited the striped external layout for changing company address position--> |
|||
<template id="custom_external_layout_striped" inherit_id="web.external_layout_striped"> |
|||
<xpath expr="//div[hasclass('o_background_header')]" position="replace"> |
|||
<t t-if="model == 'account.move'"> |
|||
<div id="striped_header"> |
|||
<div class="row"> |
|||
<div style="width:50%;" |
|||
t-attf-class="{{'ms-auto' if company.document_layout_id.logo_position == 'right' else 'd-flex justify-content-start'}}"> |
|||
<div class="d-flex justify-content-end"> |
|||
<img t-if="company.logo" t-att-src="image_data_uri(company.logo)" style="max-height:40px;max-width:140%" alt="Logo"/> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div> |
|||
<t t-if="company.report_header"> |
|||
<div style="width:50%;" |
|||
t-attf-class="{{'ms-auto' if company.document_layout_id.tagline_position == 'right' else 'd-flex justify-content-start'}}"> |
|||
<div class="d-flex justify-content-end"> |
|||
<div t-esc="company.report_header"/> |
|||
</div> |
|||
</div> |
|||
</t> |
|||
</div> |
|||
<div class="row" |
|||
t-attf-style="color:#{company.document_layout_id.company_text_color};"> |
|||
<div style="width: 50%" |
|||
t-attf-class="{{'ms-auto' if company.document_layout_id.company_position == 'right' else ''}}"> |
|||
<div itemprop="address" |
|||
class="address" > |
|||
<ul class="list-unstyled"> |
|||
<li t-if="company.is_company_details_empty"> |
|||
<t t-esc="company.partner_id" |
|||
t-options='{"widget": "contact", "fields": ["address", "name"], "no_marker": true}'/> |
|||
</li> |
|||
<li t-else=""> |
|||
<t t-esc="company.company_details"/> |
|||
</li> |
|||
<li t-if="forced_vat"> |
|||
<t t-esc="company.country_id.vat_label or 'Tax ID'"/>: |
|||
<span t-esc="forced_vat"/> |
|||
</li> |
|||
</ul> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</t> |
|||
<t t-else=""> |
|||
<div class="striped_header"> |
|||
<div class="float-end"> |
|||
<div class="mt0 text-end h3" t-field="company.report_header"/> |
|||
</div> |
|||
<img t-if="company.logo" |
|||
t-att-src="image_data_uri(company.logo)" |
|||
style="max-height:65pt;max-width:140%" |
|||
class="float-start" alt="Logo"/> |
|||
<div class="float-start company_address"> |
|||
<ul class="list-unstyled"> |
|||
<li t-if="company.is_company_details_empty"><t t-esc="company.partner_id" t-options='{"widget": "contact", "fields": ["address", "name"], "no_marker": true}'/></li> |
|||
<li t-else=""><t t-esc="company.company_details"/></li> |
|||
<li t-if="forced_vat"> |
|||
<t t-esc="company.country_id.vat_label or 'Tax ID'"/>: |
|||
<span t-esc="forced_vat"/> |
|||
</li> |
|||
</ul> |
|||
</div> |
|||
<div class="clearfix mb8"/> |
|||
</div> |
|||
</t> |
|||
</xpath> |
|||
</template> |
|||
</odoo> |