Browse Source

[ADD] Aug 06 : Initial Commit 'amount_in_words_invoice'

pull/219/head
AjmalCybro 3 years ago
parent
commit
7c110ac39b
  1. 45
      amount_in_words_invoice/README.rst
  2. 23
      amount_in_words_invoice/__init__.py
  3. 52
      amount_in_words_invoice/__manifest__.py
  4. 6
      amount_in_words_invoice/doc/RELEASE_NOTES.md
  5. 23
      amount_in_words_invoice/models/__init__.py
  6. 62
      amount_in_words_invoice/models/amount_to_word.py
  7. 39
      amount_in_words_invoice/report/report.xml
  8. BIN
      amount_in_words_invoice/static/description/assets/icons/check.png
  9. BIN
      amount_in_words_invoice/static/description/assets/icons/chevron.png
  10. BIN
      amount_in_words_invoice/static/description/assets/icons/cogs.png
  11. BIN
      amount_in_words_invoice/static/description/assets/icons/consultation.png
  12. BIN
      amount_in_words_invoice/static/description/assets/icons/ecom-black.png
  13. BIN
      amount_in_words_invoice/static/description/assets/icons/education-black.png
  14. BIN
      amount_in_words_invoice/static/description/assets/icons/hotel-black.png
  15. BIN
      amount_in_words_invoice/static/description/assets/icons/license.png
  16. BIN
      amount_in_words_invoice/static/description/assets/icons/lifebuoy.png
  17. BIN
      amount_in_words_invoice/static/description/assets/icons/logo.png
  18. BIN
      amount_in_words_invoice/static/description/assets/icons/manufacturing-black.png
  19. BIN
      amount_in_words_invoice/static/description/assets/icons/pos-black.png
  20. BIN
      amount_in_words_invoice/static/description/assets/icons/puzzle.png
  21. BIN
      amount_in_words_invoice/static/description/assets/icons/restaurant-black.png
  22. BIN
      amount_in_words_invoice/static/description/assets/icons/service-black.png
  23. BIN
      amount_in_words_invoice/static/description/assets/icons/trading-black.png
  24. BIN
      amount_in_words_invoice/static/description/assets/icons/training.png
  25. BIN
      amount_in_words_invoice/static/description/assets/icons/update.png
  26. BIN
      amount_in_words_invoice/static/description/assets/icons/user.png
  27. BIN
      amount_in_words_invoice/static/description/assets/icons/wrench.png
  28. BIN
      amount_in_words_invoice/static/description/assets/modules/budget_image.png
  29. BIN
      amount_in_words_invoice/static/description/assets/modules/credit_image.png
  30. BIN
      amount_in_words_invoice/static/description/assets/modules/employee_image.png
  31. BIN
      amount_in_words_invoice/static/description/assets/modules/export_image.png
  32. BIN
      amount_in_words_invoice/static/description/assets/modules/gantt_image.png
  33. BIN
      amount_in_words_invoice/static/description/assets/modules/quotation_image.png
  34. BIN
      amount_in_words_invoice/static/description/assets/screenshots/1.sale_form.png
  35. BIN
      amount_in_words_invoice/static/description/assets/screenshots/2.purchase_form.png
  36. BIN
      amount_in_words_invoice/static/description/assets/screenshots/3.invoice_form.png
  37. BIN
      amount_in_words_invoice/static/description/assets/screenshots/4.reports.png
  38. BIN
      amount_in_words_invoice/static/description/assets/screenshots/5.mail_templates.png
  39. BIN
      amount_in_words_invoice/static/description/assets/screenshots/hero.gif
  40. BIN
      amount_in_words_invoice/static/description/banner.png
  41. BIN
      amount_in_words_invoice/static/description/icon.png
  42. 587
      amount_in_words_invoice/static/description/index.html
  43. 17
      amount_in_words_invoice/views/account_move.xml
  44. 64
      amount_in_words_invoice/views/credit_note_mail_send.xml
  45. 76
      amount_in_words_invoice/views/invoice_send_mail.xml
  46. 55
      amount_in_words_invoice/views/payment_send_mail.xml
  47. 54
      amount_in_words_invoice/views/purchase_order_po_send_mail.xml
  48. 18
      amount_in_words_invoice/views/purchase_order_view.xml
  49. 313
      amount_in_words_invoice/views/sale_order_send_mail.xml
  50. 63
      amount_in_words_invoice/views/sale_order_send_without_confirm_mail.xml
  51. 17
      amount_in_words_invoice/views/sale_order_view.xml

45
amount_in_words_invoice/README.rst

@ -0,0 +1,45 @@
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
Amount in Words in Invoice, Sale Order and Purchase Order
=========================================================
This module helps you to convert the amount to words in invoices, sales orders and in purchase orders
Configuration
=============
* No additional configurations needed
Company
-------
* `Cybrosys Techno Solutions <https://cybrosys.com/>`__
Credits
-------
* Developers:
version 15: Sonu Soman K P @cybrosys
Contacts
--------
* Mail Contact : odoo@cybrosys.com
* Website : https://cybrosys.com
Bug Tracker
-----------
Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported.
Maintainer
==========
.. image:: https://cybrosys.com/images/logo.png
:target: https://cybrosys.com
This module is maintained by Cybrosys Technologies.
For support and more information, please visit `Our Website <https://cybrosys.com/>`__
Further information
===================
HTML Description: `<static/description/index.html>`__

23
amount_in_words_invoice/__init__.py

@ -0,0 +1,23 @@
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2022-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 . import models

52
amount_in_words_invoice/__manifest__.py

@ -0,0 +1,52 @@
# -*- coding: utf-8 -*-
###################################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2022-TODAY Cybrosys Technologies (<https://www.cybrosys.com>).
# Author: Cybrosys Technologies (<https://www.cybrosys.com>)
#
# This program is free software: you can modify
# it under the terms of the GNU Affero General Public License (AGPL) as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
###################################################################################
{
'name': "Amount in Words in Invoice, Sale Order and Purchase Order",
'version': '15.0.1.0.0',
'summary': """Amount in Words in Invoice, Sale Order and Purchase Order""",
'description': """Amount in Words in Invoice, Sale Order and Purchase Order""",
'author': 'Cybrosys Techno Solutions',
'company': 'Cybrosys Techno Solutions',
'maintainer': 'Cybrosys Techno Solutions',
'website': "https://www.cybrosys.com",
'category': 'Sales',
'depends': ['sale_management', 'account', 'purchase'],
'data': [
'views/account_move.xml',
'views/sale_order_view.xml',
'views/sale_order_send_mail.xml',
'views/sale_order_send_without_confirm_mail.xml',
'views/purchase_order_view.xml',
'views/purchase_order_po_send_mail.xml',
'views/payment_send_mail.xml',
'views/invoice_send_mail.xml',
'views/credit_note_mail_send.xml',
'report/report.xml',
],
'images': ['static/description/banner.png'],
'installable': True,
'application': False,
'auto_install': False,
'license': 'AGPL-3',
}

6
amount_in_words_invoice/doc/RELEASE_NOTES.md

@ -0,0 +1,6 @@
## Module <amount_in_words_invoice>
#### 05.08.2022
#### Version 15.0.1.0.0
##### ADD
- Initial commit for Amount in words module

23
amount_in_words_invoice/models/__init__.py

@ -0,0 +1,23 @@
# -*- coding: utf-8 -*-
###################################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2022-TODAY Cybrosys Technologies (<https://www.cybrosys.com>).
# Author: Cybrosys Technologies (<https://www.cybrosys.com>)
#
# This program is free software: you can modify
# it under the terms of the GNU Affero General Public License (AGPL) as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
###################################################################################
from . import amount_to_word

62
amount_in_words_invoice/models/amount_to_word.py

@ -0,0 +1,62 @@
# -*- coding: utf-8 -*-
###################################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2022-TODAY Cybrosys Technologies (<https://www.cybrosys.com>).
# Author: Cybrosys Technologies (<https://www.cybrosys.com>)
#
# This program is free software: you can modify
# it under the terms of the GNU Affero General Public License (AGPL) as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
###################################################################################
from odoo import fields, models
class SaleOrder(models.Model):
_inherit = 'sale.order'
number_to_words = fields.Char(string="Amount in Words (Total) :",
compute='_compute_number_to_words')
def _compute_number_to_words(self):
"""Compute the amount to words in Sale Order"""
for rec in self:
rec.number_to_words = rec.currency_id.amount_to_text(
rec.amount_total)
class PurchaseOrder(models.Model):
_inherit = 'purchase.order'
number_to_words = fields.Char(string="Amount in Words (Total) : ",
compute='_compute_number_to_words')
def _compute_number_to_words(self):
"""Compute the amount to words in Purchase Order"""
for rec in self:
rec.number_to_words = rec.currency_id.amount_to_text(
rec.amount_total)
class InvoiceOrder(models.Model):
_inherit = 'account.move'
number_to_words = fields.Char(string="Amount in Words (Total) : ",
compute='_compute_number_to_words')
def _compute_number_to_words(self):
"""Compute the amount to words in Invoice"""
for rec in self:
rec.number_to_words = rec.currency_id.amount_to_text(
rec.amount_total)

39
amount_in_words_invoice/report/report.xml

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<template id="invoice_report_view_amount_in_words"
inherit_id="account.report_invoice_document">
<xpath expr="//div[@class='clearfix']" position="after">
<div style="font-size:15px; padding-top:15px; padding-bottom:15px;">
<span>
<strong>Amount in Words (Total) :</strong>
</span>
<span t-field="o.number_to_words"/>
</div>
</xpath>
</template>
<template id="purchase_report_view_amount_in_words"
inherit_id="purchase.report_purchaseorder_document">
<xpath expr="//div[@class='row justify-content-end']" position="after">
<div style="font-size:15px; padding-top:15px; padding-bottom:15px;">
<span>
<strong>Amount in Words (Total) :</strong>
</span>
<span t-field="o.number_to_words"/>
</div>
</xpath>
</template>
<template id="sale_report_view_amount_in_words"
inherit_id="sale.report_saleorder_document">
<xpath expr="//div[@class='clearfix']" position="after">
<div style="font-size:15px; padding-top:15px; padding-bottom:15px;">
<span>
<strong>Amount in Words (Total) :</strong>
</span>
<span t-field="doc.number_to_words"/>
</div>
</xpath>
</template>
</odoo>

BIN
amount_in_words_invoice/static/description/assets/icons/check.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

BIN
amount_in_words_invoice/static/description/assets/icons/chevron.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 310 B

BIN
amount_in_words_invoice/static/description/assets/icons/cogs.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
amount_in_words_invoice/static/description/assets/icons/consultation.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
amount_in_words_invoice/static/description/assets/icons/ecom-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 576 B

BIN
amount_in_words_invoice/static/description/assets/icons/education-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 733 B

BIN
amount_in_words_invoice/static/description/assets/icons/hotel-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 911 B

BIN
amount_in_words_invoice/static/description/assets/icons/license.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
amount_in_words_invoice/static/description/assets/icons/lifebuoy.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
amount_in_words_invoice/static/description/assets/icons/logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

BIN
amount_in_words_invoice/static/description/assets/icons/manufacturing-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 673 B

BIN
amount_in_words_invoice/static/description/assets/icons/pos-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 878 B

BIN
amount_in_words_invoice/static/description/assets/icons/puzzle.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 653 B

BIN
amount_in_words_invoice/static/description/assets/icons/restaurant-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 905 B

BIN
amount_in_words_invoice/static/description/assets/icons/service-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 839 B

BIN
amount_in_words_invoice/static/description/assets/icons/trading-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 427 B

BIN
amount_in_words_invoice/static/description/assets/icons/training.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 627 B

BIN
amount_in_words_invoice/static/description/assets/icons/update.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
amount_in_words_invoice/static/description/assets/icons/user.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 988 B

BIN
amount_in_words_invoice/static/description/assets/icons/wrench.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
amount_in_words_invoice/static/description/assets/modules/budget_image.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

BIN
amount_in_words_invoice/static/description/assets/modules/credit_image.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

BIN
amount_in_words_invoice/static/description/assets/modules/employee_image.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

BIN
amount_in_words_invoice/static/description/assets/modules/export_image.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

BIN
amount_in_words_invoice/static/description/assets/modules/gantt_image.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

BIN
amount_in_words_invoice/static/description/assets/modules/quotation_image.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

BIN
amount_in_words_invoice/static/description/assets/screenshots/1.sale_form.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

BIN
amount_in_words_invoice/static/description/assets/screenshots/2.purchase_form.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

BIN
amount_in_words_invoice/static/description/assets/screenshots/3.invoice_form.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

BIN
amount_in_words_invoice/static/description/assets/screenshots/4.reports.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

BIN
amount_in_words_invoice/static/description/assets/screenshots/5.mail_templates.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

BIN
amount_in_words_invoice/static/description/assets/screenshots/hero.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 228 KiB

BIN
amount_in_words_invoice/static/description/banner.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

BIN
amount_in_words_invoice/static/description/icon.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

587
amount_in_words_invoice/static/description/index.html

@ -0,0 +1,587 @@
<div class="container" style="padding: 1rem !important; margin-bottom: 1rem !important;">
<div class="row">
<div class="col-sm-12 col-md-12 col-lg-12 d-flex justify-content-between" style="border-bottom: 1px solid #d5d5d5;">
<div class="my-3">
<img src="./assets/icons/logo.png" style="width: auto !important; height: 40px !important;">
</div>
<div class="my-3 d-flex align-items-center">
<div
style="background-color: #7C7BAD !important; color: #fff !important; font-weight: 600 !important; padding: 5px 15px 8px !important; margin: 0 5px !important;">
<i class="fa fa-check mr-1"></i>Community
</div>
<div
style="background-color: #875A7B !important; color: #fff !important; font-weight: 600 !important; padding: 5px 15px 8px !important; margin: 0 5px !important;">
<i class="fa fa-check mr-1"></i>Enterprise
</div>
</div>
</div>
</div>
</div>
<div class="container" style="padding: 0rem 1.5rem 4rem !important">
<div class="row" style="height: 900px !important;">
<div class="col-sm-12 col-md-12 col-lg-12"
style="padding: 4rem 1rem !important; background-color: #714B67 !important; height: 600px !important; border-radius: 20px !important;">
<h1
style="font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; color: #FFFFFF !important; font-size: 3.5rem !important; text-align: center !important;">
Amount in Words in Invoice, Sale Order and Purchase Order</h1>
<p
style="font-family: 'Montserrat', sans-serif !important; font-weight: 300 !important; color: #FFFFFF !important; font-size: 1.4rem !important; text-align: center !important;">
This module helps to convert the amount to words in Invoice, Sale Order and Purchase Order
</p>
<img src="./assets/screenshots/hero.gif" class="img-responsive" width="100%" height="auto" />
</div>
</div>
<div class="row">
<div class="col-md-12" style="border-bottom: 1px solid #d5d5d5 !important; margin-bottom: 2rem !important">
<h2
style="font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; color: #714B67 !important; font-size: 1.5rem !important;">
<i class="fa fa-compass mr-2"></i>Explore this module
</h2>
<div class="row">
<div class="col-md-6">
<a href="#overview" style="text-decoration: none !important;">
<div class="row"
style="background-color: #f5f2f5 !important; border-radius: 10px !important; margin: 1rem !important; padding: 1.5em !important; height: 100px !important;">
<div class="col-8">
<h3
style="font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; color: #714B67 !important; font-size: 1.2rem !important;">
Overview</h3>
<p
style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #714B67 !important; font-size: 0.9rem !important;">
Learn more about this module</p>
</div>
<div class="col-4 text-right d-flex justify-content-end align-items-center">
<i class="fa fa-chevron-right" style="color: #714B67 !important;"></i>
</div>
</div>
</a>
</div>
<div class="col-md-6">
<a href="#features" style="text-decoration: none !important;">
<div class="row"
style="background-color: #f5f2f5 !important; border-radius: 10px !important; margin: 1rem !important; padding: 1.5em !important; height: 100px !important;">
<div class="col-8">
<h3
style="font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; color: #714B67 !important; font-size: 1.2rem !important;">
Features</h3>
<p
style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #714B67 !important; font-size: 0.9rem !important;">
View features of this module</p>
</div>
<div class="col-4 text-right d-flex justify-content-end align-items-center">
<i class="fa fa-chevron-right" style="color: #714B67 !important;"></i>
</div>
</div>
</a>
</div>
<div class="col-md-6">
<a href="#screenshots" style="text-decoration: none !important;">
<div class="row"
style="background-color: #f5f2f5 !important; border-radius: 10px !important; margin: 1rem !important; padding: 1.5em !important; height: 100px !important;">
<div class="col-8">
<h3
style="font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; color: #714B67 !important; font-size: 1.2rem !important;">
Screenshots</h3>
<p
style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #714B67 !important; font-size: 0.9rem !important;">
See key screenshots of this module</p>
</div>
<div class="col-4 text-right d-flex justify-content-end align-items-center">
<i class="fa fa-chevron-right" style="color: #714B67 !important;"></i>
</div>
</div>
</a>
</div>
</div>
</div>
</div>
<div class="row" id="overview">
<div class="col-md-12" style="border-bottom: 1px solid #d5d5d5 !important; margin: 2rem 0 !important">
<h2
style="font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; color: #714B67 !important; font-size: 1.5rem !important;">
<i class="fa fa-pie-chart mr-2"></i>Overview
</h2>
</div>
<div class="col-mg-12 pl-3">
<p
style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important; line-height: 30px !important;">
In the Amount in words invoice App, We can convert the total amount into the corresponding words.
This feature can be available in sale, purchase, invoice modules. The amount in words will be available in forms, reports and email templates. </p>
</div>
</p>
</div>
<div class="row" id="features">
<div class="col-md-12" style="border-bottom: 1px solid #d5d5d5 !important; margin: 2rem 0 !important">
<h2
style="font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; color: #714B67 !important; font-size: 1.5rem !important;">
<i class="fa fa-star mr-2"></i>Features
</h2>
</div>
<div class="col-md-6 pl-3 py-3 d-flex">
<div>
<img src="assets/icons/check.png">
</div>
<div>
<h4
style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;">
Convert Amount into Words</h4>
</div>
</div>
<div class="col-md-6 pl-3 py-3 d-flex">
<div>
<img src="assets/icons/check.png">
</div>
<div>
<h4
style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;">
Available in invoice forms</h4>
</div>
</div>
<div class="col-md-6 pl-3 py-3 d-flex">
<div>
<img src="assets/icons/check.png">
</div>
<div>
<h4
style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;">
Available in invoice reports</h4>
</div>
</div>
<div class="col-md-6 pl-3 py-3 d-flex">
<div>
<img src="assets/icons/check.png">
</div>
<div>
<h4
style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;">
Available in email templates</h4>
</div>
</div>
</div>
<div class="row" id="screenshots">
<div class="col-md-12" style="border-bottom: 1px solid #d5d5d5 !important; margin: 2rem 0 !important">
<h2
style="font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; color: #714B67 !important; font-size: 1.5rem !important;">
<i class="fa fa-image mr-2"></i>Screenshots
</h2>
</div>
<div class="col-lg-12 my-2">
<h4 class="mt-2"
style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;">
Sale Invoice Form Layout </h4>
<img src="assets/screenshots/1.sale_form.png" class="img-responsive img-thumbnail border" width="100%"
height="auto" />
</div>
<div class="col-lg-12 my-3">
<h4 class="mt-3"
style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;">
Purchase Invoice Form Layout</h4>
<img src="assets/screenshots/2.purchase_form.png" class="img-responsive img-thumbnail border" width="100%"
height="auto" />
</div>
<div class="col-lg-12 my-3">
<h4 class="mt-3"
style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;">
Invoice Form Layout</h4>
<img src="assets/screenshots/3.invoice_form.png" class="img-responsive img-thumbnail border" width="100%"
height="auto" />
</div>
<div class="col-lg-12 my-3">
<h4 class="mt-3"
style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;">
Report View</h4>
<img src="assets/screenshots/4.reports.png" class="img-responsive img-thumbnail border" width="100%"
height="auto" />
</div>
<div class="col-lg-12 my-3">
<h4 class="mt-3"
style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;">
Mail Template View</h4>
<img src="assets/screenshots/5.mail_templates.png" class="img-responsive img-thumbnail border" width="100%"
height="auto" />
</div>
</div>
<!-- SUGGESTED PRODUCTS -->
<div class="row">
<div class="col-lg-12 d-flex flex-column justify-content-center"
style="text-align: center; padding: 2.5rem 1rem !important;">
<h2 style="color: #212529 !important;">Suggested Products</h2>
<hr
style="border: 3px solid #714B67 !important; background-color: #714B67 !important; width: 80px !important; margin-bottom: 2rem !important;" />
<div id="demo1" class="row carousel slide" data-ride="carousel">
<!-- The slideshow -->
<div class="carousel-inner">
<div class="carousel-item active" style="min-height:0px">
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float:left">
<a href="https://apps.odoo.com/apps/modules/15.0/export_stockinfo_xls/" target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-top-left-radius:10px; border-top-right-radius:10px"
src="./assets/modules/export_image.png">
</div>
</a>
</div>
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float:left">
<a href="https://apps.odoo.com/apps/modules/15.0/custom_gantt_view/" target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-top-left-radius:10px; border-top-right-radius:10px"
src="./assets/modules/gantt_image.png">
</div>
</a>
</div>
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float:left">
<a href="https://apps.odoo.com/apps/modules/15.0/sales_credit_limit/" target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-top-left-radius:10px; border-top-right-radius:10px"
src="./assets/modules/credit_image.png">
</div>
</a>
</div>
</div>
<div class="carousel-item" style="min-height:0px">
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float:left">
<a href="https://apps.odoo.com/apps/modules/15.0/base_account_budget/" target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-top-left-radius:10px; border-top-right-radius:10px"
src="./assets/modules/budget_image.png">
</div>
</a>
</div>
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float:left">
<a href="https://apps.odoo.com/apps/modules/15.0/product_to_quotation/" target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-top-left-radius:10px; border-top-right-radius:10px"
src="./assets/modules/quotation_image.png">
</div>
</a>
</div>
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float:left">
<a href="https://apps.odoo.com/apps/modules/15.0/employee_documents_expiry/" target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-top-left-radius:10px; border-top-right-radius:10px"
src="./assets/modules/employee_image.png">
</div>
</a>
</div>
</div>
</div>
<!-- Left and right controls -->
<a class="carousel-control-prev" href="#demo1" data-slide="prev" style="left:-25px;width: 35px;color: #000;">
<span class="carousel-control-prev-icon"><i class="fa fa-chevron-left" style="font-size:24px"></i></span> </a>
<a class="carousel-control-next" href="#demo1" data-slide="next" style="right:-25px;width: 35px;color: #000;">
<span class="carousel-control-next-icon"><i class="fa fa-chevron-right" style="font-size:24px"></i></span>
</a>
</div>
</div>
</div>
<!-- END OF SUGGESTED PRODUCTS -->
<!-- OUR SERVICES -->
<section class="container" style="margin-top: 6rem !important;">
<div class="row">
<div class="col-lg-12 d-flex flex-column justify-content-center align-items-center">
<h2 style="color: #212529 !important;">Our Services</h2>
<hr
style="border: 3px solid #714B67 !important; background-color: #714B67 !important; width: 80px !important; margin-bottom: 2rem !important;" />
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #1dd1a1 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/cogs.png" class="img-responsive" height="48px" width="48px">
</div>
<h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Customization</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #ff6b6b !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/wrench.png" class="img-responsive" height="48px" width="48px">
</div>
<h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Implementation</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #6462CD !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/lifebuoy.png" class="img-responsive" height="48px" width="48px">
</div>
<h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Support</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #ffa801 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/user.png" class="img-responsive" height="48px" width="48px">
</div>
<h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Hire
Odoo
Developer</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #54a0ff !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/puzzle.png" class="img-responsive" height="48px" width="48px">
</div>
<h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Integration</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #6d7680 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/update.png" class="img-responsive" height="48px" width="48px">
</div>
<h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Migration</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #786fa6 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/consultation.png" class="img-responsive" height="48px" width="48px">
</div>
<h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Consultancy</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #f8a5c2 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/training.png" class="img-responsive" height="48px" width="48px">
</div>
<h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Implementation</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #e6be26 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/license.png" class="img-responsive" height="48px" width="48px">
</div>
<h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Licensing Consultancy</h6>
</div>
</div>
</section>
<!-- END OF OUR SERVICES -->
<!-- OUR INDUSTRIES -->
<section class="container" style="margin-top: 6rem !important;">
<div class="row">
<div class="col-lg-12 d-flex flex-column justify-content-center align-items-center">
<h2 style="color: #212529 !important;">Our Industries</h2>
<hr
style="border: 3px solid #714B67 !important; background-color: #714B67 !important; width: 80px !important; margin-bottom: 2rem !important;" />
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;">
<img src="./assets/icons/trading-black.png" class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Trading
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Easily procure
and
sell your products</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;">
<img src="./assets/icons/pos-black.png" class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
POS
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Easy
configuration
and convivial experience</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;">
<img src="./assets/icons/education-black.png" class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Education
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
A platform for
educational management</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;">
<img src="./assets/icons/manufacturing-black.png" class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Manufacturing
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Plan, track and
schedule your operations</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;">
<img src="./assets/icons/ecom-black.png" class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
E-commerce &amp; Website
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Mobile
friendly,
awe-inspiring product pages</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;">
<img src="./assets/icons/service-black.png" class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Service Management
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Keep track of
services and invoice</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;">
<img src="./assets/icons/restaurant-black.png" class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Restaurant
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Run your bar or
restaurant methodically</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;">
<img src="./assets/icons/hotel-black.png" class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Hotel Management
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
An
all-inclusive
hotel management application</p>
</div>
</div>
</div>
</section>
<!-- END OF END OF OUR INDUSTRIES -->
<!-- FOOTER -->
<!-- Footer Section -->
<section class="container" style="margin: 5rem auto 2rem;">
<div class="row" style="max-width:1540px;">
<div class="col-lg-12 d-flex flex-column justify-content-center align-items-center">
<h2 style="color: #212529 !important;">Need Help?</h2>
<hr
style="border: 3px solid #714B67 !important; background-color: #714B67 !important; width: 80px !important; margin-bottom: 2rem !important;" />
</div>
</div>
<!-- Contact Cards -->
<div class="row d-flex justify-content-center align-items-center"
style="max-width:1540px; margin: 0 auto 2rem auto;">
<div class="col-lg-12" style="padding: 0rem 3rem 2rem; border-radius: 10px; margin-right: 3rem; ">
<div class="row mt-4">
<div class="col-lg-6">
<a href="mailto:odoo@cybrosys.com" target="_blank" class="btn btn-block mb-2 deep_hover"
style="text-decoration: none; background-color: #4d4d4d; color: #FFF; border-radius: 4px;"><i
class="fa fa-envelope mr-2"></i>odoo@cybrosys.com</a>
</div>
<div class="col-lg-6">
<a href="https://api.whatsapp.com/send?phone=918606827707" target="_blank"
class="btn btn-block mb-2 deep_hover"
style="text-decoration: none; background-color: #25D366; color: #FFF; border-radius: 4px;"><i
class="fa fa-whatsapp mr-2"></i>+91 86068 27707</a>
</div>
</div>
</div>
</div>
<!-- End of Contact Cards -->
</section>
<!-- Footer -->
<section class="oe_container" style="padding: 2rem 3rem 1rem;">
<div class="row" style="max-width:1540px; margin: 0 auto; margin-right: 3rem; ">
<!-- Logo -->
<div class="col-lg-12 d-flex justify-content-center align-items-center" style="margin-top: 3rem;">
<img src="https://www.cybrosys.com/images/logo.png" width="200px" height="auto" />
</div>
<!-- End of Logo -->
<div class="col-lg-12">
<hr
style="margin-top: 3rem;background: linear-gradient(90deg, rgba(2,0,36,0) 0%, rgba(229,229,229,1) 33%, rgba(229,229,229,1) 58%, rgba(0,212,255,0) 100%); height: 2px; border-style: none;">
<!-- End of Footer Section -->
</div>
</div>
</section>
<!-- END OF FOOTER -->
</div>

17
amount_in_words_invoice/views/account_move.xml

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="invoice_amount_in_words" model="ir.ui.view">
<field name="name">Amount in words invoice form</field>
<field name="model">account.move</field>
<field name="inherit_id" ref="account.view_move_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='narration']" position="after">
<group colspan="2">
<div style="padding-top:15px; padding-bottom:15px;">
<b><label for="number_to_words"/></b><field name="number_to_words"/>
</div>
</group>
</xpath>
</field>
</record>
</odoo>

64
amount_in_words_invoice/views/credit_note_mail_send.xml

@ -0,0 +1,64 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<data noupdate="1">
<function name="write" model="ir.model.data">
<function name="search" model="ir.model.data">
<value eval="[('name', '=', 'email_template_edi_credit_note'), ('module', '=', 'account')]"/>
</function>
<value eval="{'noupdate': False}"/>
</function>
<record id="account.email_template_edi_credit_note" model="mail.template">
<field name="body_html" type="html">
<div style="margin: 0px; padding: 0px;">
<p style="margin: 0px; padding: 0px; font-size: 13px;">
Dear
<t t-if="object.partner_id.parent_id">
<t t-out="object.partner_id.name or ''">Brandon Freeman</t>
(<t t-out="object.partner_id.parent_id.name or ''">Azure Interior</t>),
</t>
<t t-else="">
<t t-out="object.partner_id.name or ''">Brandon Freeman</t>,
</t>
<br/>
<br/>
Here is your
<t t-if="object.name">
credit note
<strong t-out="object.name or ''">RINV/2021/05/0001</strong>
</t>
<t t-else="">
credit note
</t>
<t t-if="object.invoice_origin">
(with reference: <t t-out="object.invoice_origin or ''">SUB003</t>)
</t>
amounting in
<strong t-out="format_amount(object.amount_total, object.currency_id) or ''">$ 143,750.00
</strong>
<span>
<strong t-out="object.number_to_words"/>
</span>
from <t t-out="object.company_id.name or ''">YourCompany</t>.
<br/>
<br/>
Do not hesitate to contact us if you have any questions.
<t t-if="object.invoice_user_id.signature">
<br/>
<t t-out="object.invoice_user_id.signature or ''">--<br/>Mitchell Admin
</t>
</t>
</p>
</div>
</field>
</record>
<function name="write" model="ir.model.data">
<function name="search" model="ir.model.data">
<value eval="[('name', '=', 'email_template_edi_credit_note'), ('module', '=', 'account')]"/>
</function>
<value eval="{'noupdate': True}"/>
</function>
</data>
</odoo>

76
amount_in_words_invoice/views/invoice_send_mail.xml

@ -0,0 +1,76 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<data noupdate="1">
<function name="write" model="ir.model.data">
<function name="search" model="ir.model.data">
<value eval="[('name', '=', 'email_template_edi_invoice'), ('module', '=', 'account')]"/>
</function>
<value eval="{'noupdate': False}"/>
</function>
<record id="account.email_template_edi_invoice" model="mail.template">
<field name="body_html" type="html">
<div style="margin: 0px; padding: 0px;">
<p style="margin: 0px; padding: 0px; font-size: 13px;">
Dear
<t t-if="object.partner_id.parent_id">
<t t-out="object.partner_id.name or ''">Brandon Freeman</t>
(<t t-out="object.partner_id.parent_id.name or ''">Azure Interior</t>),
</t>
<t t-else="">
<t t-out="object.partner_id.name or ''">Brandon Freeman</t>,
</t>
<br/>
<br/>
Here is your
<t t-if="object.name">
invoice
<strong t-out="object.name or ''">INV/2021/05/0005</strong>
</t>
<t t-else="">
invoice
</t>
<t t-if="object.invoice_origin">
(with reference: <t t-out="object.invoice_origin or ''">SUB003</t>)
</t>
amounting in
<strong t-out="format_amount(object.amount_total, object.currency_id) or ''">$ 143,750.00
</strong>
<span>
<strong t-out="object.number_to_words"/>
</span>
from <t t-out="object.company_id.name or ''">YourCompany</t>.
<t t-if="object.payment_state in ('paid', 'in_payment')">
This invoice is already paid.
</t>
<t t-else="">
Please remit payment at your earliest convenience.
<t t-if="object.payment_reference">
<br/>
<br/>
Please use the following communication for your payment: <strong
t-out="object.payment_reference or ''">INV/2021/05/0005</strong>.
</t>
</t>
<br/>
<br/>
Do not hesitate to contact us if you have any questions.
<t t-if="object.invoice_user_id.signature">
<br/>
<t t-out="object.invoice_user_id.signature or ''">--<br/>Mitchell Admin
</t>
</t>
</p>
</div>
</field>
</record>
<function name="write" model="ir.model.data">
<function name="search" model="ir.model.data">
<value eval="[('name', '=', 'email_template_edi_invoice'), ('module', '=', 'account')]"/>
</function>
<value eval="{'noupdate': True}"/>
</function>
</data>
</odoo>

55
amount_in_words_invoice/views/payment_send_mail.xml

@ -0,0 +1,55 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<data noupdate="1">
<function name="write" model="ir.model.data">
<function name="search" model="ir.model.data">
<value eval="[('name', '=', 'mail_template_data_payment_receipt'), ('module', '=', 'account')]"/>
</function>
<value eval="{'noupdate': False}"/>
</function>
<record id="account.mail_template_data_payment_receipt" model="mail.template">
<field name="body_html" type="html">
<div style="margin: 0px; padding: 0px;">
<p style="margin: 0px; padding: 0px; font-size: 13px;">
Dear
<t t-out="object.partner_id.name or ''">Azure Interior</t>
<br/>
<br/>
Thank you for your payment.
Here is your payment receipt <strong t-out="(object.name or '').replace('/','-') or ''">
BNK1-2021-05-0002
</strong> amounting
to
<strong t-out="format_amount(object.amount, object.currency_id) or ''">$ 10.00</strong>
<span>
<strong t-out="object.number_to_words"/>
</span>
from <t
t-out="object.company_id.name or ''">YourCompany</t>.
<br/>
<br/>
Do not hesitate to contact us if you have any questions.
<br/>
<br/>
Best regards,
<t t-if="user.signature">
<br/>
<t t-out="user.signature or ''">--<br/>Mitchell Admin
</t>
</t>
</p>
</div>
</field>
</record>
<function name="write" model="ir.model.data">
<function name="search" model="ir.model.data">
<value eval="[('name', '=', 'mail_template_data_payment_receipt'), ('module', '=', 'account')]"/>
</function>
<value eval="{'noupdate': True}"/>
</function>
</data>
</odoo>

54
amount_in_words_invoice/views/purchase_order_po_send_mail.xml

@ -0,0 +1,54 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<data noupdate="1">
<function name="write" model="ir.model.data">
<function name="search" model="ir.model.data">
<value eval="[('name', '=', 'email_template_edi_purchase_done'), ('module', '=', 'purchase')]"/>
</function>
<value eval="{'noupdate': False}"/>
</function>
<record id="purchase.email_template_edi_purchase_done" model="mail.template">
<field name="body_html" type="html">
<div style="margin: 0px; padding: 0px;">
<p style="margin: 0px; padding: 0px; font-size: 13px;">
Dear
<t t-out="object.partner_id.name or ''">Brandon Freeman</t>
<t t-if="object.partner_id.parent_id">
(<t t-out="object.partner_id.parent_id.name or ''">Azure Interior</t>)
</t>
<br/>
<br/>
Here is in attachment a purchase order
<strong t-out="object.name or ''">P00015</strong>
<t t-if="object.partner_ref">
with reference:
<t t-out="object.partner_ref or ''">REF_XXX</t>
</t>
amounting in
<strong t-out="format_amount(object.amount_total, object.currency_id) or ''">$ 10.00</strong>
<span> <strong t-out="object.number_to_words"/></span>
from <t t-out="object.company_id.name or ''">YourCompany</t>.
<br/>
<br/>
<t t-if="object.date_planned">
The receipt is expected for <strong t-out="format_date(object.date_planned) or ''">
05/05/2021</strong>.
<br/>
<br/>
Could you please acknowledge the receipt of this order?
</t>
</p>
</div>
</field>
</record>
<function name="write" model="ir.model.data">
<function name="search" model="ir.model.data">
<value eval="[('name', '=', 'email_template_edi_purchase_done'), ('module', '=', 'purchase')]"/>
</function>
<value eval="{'noupdate': True}"/>
</function>
</data>
</odoo>

18
amount_in_words_invoice/views/purchase_order_view.xml

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="purchase_order_amount_in_words" model="ir.ui.view">
<field name="name">Amount in words purchase order form</field>
<field name="model">purchase.order</field>
<field name="inherit_id" ref="purchase.purchase_order_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='notes']" position="before">
<group colspan="2">
<div style="padding-top:15px; padding-bottom:15px;">
<b><label for="number_to_words"/></b>
<field name="number_to_words"/>
</div>
</group>
</xpath>
</field>
</record>
</odoo>

313
amount_in_words_invoice/views/sale_order_send_mail.xml

@ -0,0 +1,313 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<data noupdate="1">
<function name="write" model="ir.model.data">
<function name="search" model="ir.model.data">
<value eval="[('name', '=', 'mail_template_sale_confirmation'), ('module', '=', 'sale')]"/>
</function>
<value eval="{'noupdate': False}"/>
</function>
<record id="sale.mail_template_sale_confirmation" model="mail.template">
<field name="body_html" type="html">
<div style="margin: 0px; padding: 0px;">
<p style="margin: 0px; padding: 0px; font-size: 12px;">
Hello,
<br/>
<br/>
<t t-set="transaction"
t-value="object.get_portal_last_transaction()"/>
Your order <strong t-out="object.name or ''">S00049
</strong> amounting in
<strong t-out="format_amount(object.amount_total, object.currency_id) or ''">
$ 10.00
</strong>
<span> <strong t-out="object.number_to_words"/></span>
<t t-if="object.state == 'sale' or (transaction and transaction.state in ('done', 'authorized'))">
has been confirmed.
<br/>
Thank you for your trust!
</t>
<t t-elif="transaction and transaction.state == 'pending'">
is pending. It will be confirmed when the payment is
received.
<t t-if="object.reference">
Your payment reference is <strong
t-out="object.reference or ''"></strong>.
</t>
</t>
<br/>
<br/>
Do not hesitate to contact us if you have any questions.
<br/>
<br/>
</p>
<t t-if="hasattr(object, 'website_id') and object.website_id">
<div style="margin: 0px; padding: 0px;">
<table width="100%"
style="color: #454748; font-size: 12px; border-collapse: collapse;">
<tr style="border-bottom: 2px solid #dee2e6;">
<td style="width: 150px;">
<strong>Products</strong>
</td>
<td></td>
<td width="15%" align="center">
<strong>Quantity</strong>
</td>
<td width="20%" align="right">
<strong>
<t t-if="object.user_id.has_group('account.group_show_line_subtotals_tax_excluded')">
VAT Excl.
</t>
<t t-else="">
VAT Incl.
</t>
</strong>
</td>
</tr>
</table>
<t t-foreach="object.order_line" t-as="line">
<t t-if="(not hasattr(line, 'is_delivery') or not line.is_delivery) and line.display_type in ['line_section', 'line_note']">
<table width="100%"
style="color: #454748; font-size: 12px; border-collapse: collapse;">
<t t-set="loop_cycle_number"
t-value="0"/>
<tr t-att-style="'background-color: #f2f2f2' if loop_cycle_number % 2 == 0 else 'background-color: #ffffff'">
<t t-set="loop_cycle_number"
t-value="loop_cycle_number + 1"/>
<td colspan="4">
<t t-if="line.display_type == 'line_section'">
<strong t-out="line.name or ''">
Taking care of Trees
Course
</strong>
</t>
<t t-elif="line.display_type == 'line_note'">
<i t-out="line.name or ''">
Taking care of Trees
Course
</i>
</t>
</td>
</tr>
</table>
</t>
<t t-elif="(not hasattr(line, 'is_delivery') or not line.is_delivery)">
<table width="100%"
style="color: #454748; font-size: 12px; border-collapse: collapse;">
<t t-set="loop_cycle_number"
t-value="0"/>
<tr t-att-style="'background-color: #f2f2f2' if loop_cycle_number % 2 == 0 else 'background-color: #ffffff'">
<t t-set="loop_cycle_number"
t-value="loop_cycle_number + 1"/>
<td style="width: 150px;">
<img t-attf-src="/web/image/product.product/{{ line.product_id.id }}/image_128"
style="width: 64px; height: 64px; object-fit: contain;"
alt="Product image"></img>
</td>
<td align="left"
t-out="line.product_id.name or ''">
Taking care of Trees Course
</td>
<td width="15%" align="center"
t-out="line.product_uom_qty or ''">
1
</td>
<td width="20%" align="right">
<strong>
<t t-if="object.user_id.has_group('account.group_show_line_subtotals_tax_excluded')">
<t t-out="format_amount(line.price_reduce_taxexcl, object.currency_id) or ''">
$ 10.00
</t>
</t>
<t t-else="">
<t t-out="format_amount(line.price_reduce_taxinc, object.currency_id) or ''">
$ 10.00
</t>
</t>
</strong>
</td>
</tr>
</table>
</t>
</t>
</div>
<div style="margin: 0px; padding: 0px;"
t-if="hasattr(object, 'carrier_id') and object.carrier_id">
<table width="100%"
style="color: #454748; font-size: 12px; border-spacing: 0px 4px;"
align="right">
<tr>
<td style="width: 60%"/>
<td style="width: 30%; border-top: 1px solid #dee2e6;"
align="right">
<strong>Delivery:</strong>
</td>
<td style="width: 10%; border-top: 1px solid #dee2e6;"
align="right"
t-out="format_amount(object.amount_delivery, object.currency_id) or ''">
$ 0.00
</td>
</tr>
<tr>
<td style="width: 60%"/>
<td style="width: 30%;" align="right">
<strong>SubTotal:</strong>
</td>
<td style="width: 10%;" align="right"
t-out="format_amount(object.amount_untaxed, object.currency_id) or ''">
$ 10.00
</td>
</tr>
</table>
</div>
<div style="margin: 0px; padding: 0px;" t-else="">
<table width="100%"
style="color: #454748; font-size: 12px; border-spacing: 0px 4px;"
align="right">
<tr>
<td style="width: 60%"/>
<td style="width: 30%; border-top: 1px solid #dee2e6;"
align="right">
<strong>SubTotal:</strong>
</td>
<td style="width: 10%; border-top: 1px solid #dee2e6;"
align="right"
t-out="format_amount(object.amount_untaxed, object.currency_id) or ''">
$ 10.00
</td>
</tr>
</table>
</div>
<div style="margin: 0px; padding: 0px;">
<table width="100%"
style="color: #454748; font-size: 12px; border-spacing: 0px 4px;"
align="right">
<tr>
<td style="width: 60%"/>
<td style="width: 30%;" align="right">
<strong>Taxes:</strong>
</td>
<td style="width: 10%;" align="right"
t-out="format_amount(object.amount_tax, object.currency_id) or ''">
$ 0.00
</td>
</tr>
<tr>
<td style="width: 60%"/>
<td style="width: 30%; border-top: 1px solid #dee2e6;"
align="right">
<strong>Total:</strong>
</td>
<td style="width: 10%; border-top: 1px solid #dee2e6;"
align="right"
t-out="format_amount(object.amount_total, object.currency_id) or ''">
$ 10.00
</td>
</tr>
</table>
</div>
<div t-if="object.partner_invoice_id"
style="margin: 0px; padding: 0px;">
<table width="100%"
style="color: #454748; font-size: 12px;">
<tr>
<td style="padding-top: 10px;">
<strong>Bill to:</strong>
<t t-out="object.partner_invoice_id.street or ''">
1201 S Figueroa St
</t>
<t t-out="object.partner_invoice_id.city or ''">
Los Angeles
</t>
<t t-out="object.partner_invoice_id.state_id.name or ''">
California
</t>
<t t-out="object.partner_invoice_id.zip or ''">
90015
</t>
<t t-out="object.partner_invoice_id.country_id.name or ''">
United States
</t>
</td>
</tr>
<tr>
<td>
<strong>Payment Method:</strong>
<t t-if="transaction.token_id">
<t t-out="transaction.token_id.name or ''"></t>
</t>
<t t-else="">
<t t-out="transaction.acquirer_id.sudo().name or ''"></t>
</t>
(<t t-out="format_amount(transaction.amount, object.currency_id) or ''">
$ 10.00</t>)
</td>
</tr>
</table>
</div>
<div t-if="object.partner_shipping_id and not object.only_services"
style="margin: 0px; padding: 0px;">
<table width="100%"
style="color: #454748; font-size: 12px;">
<tr>
<td>
<br/>
<strong>Ship to:</strong>
<t t-out="object.partner_shipping_id.street or ''">
1201 S Figueroa St
</t>
<t t-out="object.partner_shipping_id.city or ''">
Los Angeles
</t>
<t t-out="object.partner_shipping_id.state_id.name or ''">
California
</t>
<t t-out="object.partner_shipping_id.zip or ''">
90015
</t>
<t t-out="object.partner_shipping_id.country_id.name or ''">
United States
</t>
</td>
</tr>
</table>
<table t-if="hasattr(object, 'carrier_id') and object.carrier_id"
width="100%"
style="color: #454748; font-size: 12px;">
<tr>
<td>
<strong>Shipping Method:</strong>
<t t-out="object.carrier_id.name or ''"></t>
<t t-if="object.carrier_id.fixed_price == 0.0">
(Free)
</t>
<t t-else="">
(<t t-out="format_amount(object.carrier_id.fixed_price, object.currency_id) or ''">
$ 10.00</t>)
</t>
</td>
</tr>
</table>
</div>
</t>
</div>
</field>
</record>
<function name="write" model="ir.model.data">
<function name="search" model="ir.model.data">
<value eval="[('name', '=', 'mail_template_sale_confirmation'), ('module', '=', 'sale')]"/>
</function>
<value eval="{'noupdate': True}"/>
</function>
</data>
</odoo>

63
amount_in_words_invoice/views/sale_order_send_without_confirm_mail.xml

@ -0,0 +1,63 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<data noupdate="1">
<function name="write" model="ir.model.data">
<function name="search" model="ir.model.data">
<value eval="[('name', '=', 'email_template_edi_sale'), ('module', '=', 'sale')]"/>
</function>
<value eval="{'noupdate': False}"/>
</function>
<record id="sale.email_template_edi_sale" model="mail.template">
<field name="body_html" type="html">
<div style="margin: 0px; padding: 0px;">
<p style="margin: 0px; padding: 0px; font-size: 13px;">
<t t-set="doc_name" t-value="'quotation' if object.state in ('draft', 'sent') else 'order'"/>
Hello,
<br/>
<br/>
Your
<t t-if="ctx.get('proforma')">
Pro forma invoice for <t t-out="doc_name or ''">quotation</t>
<strong t-out="object.name or ''">S00052</strong>
<t t-if="object.origin">
(with reference: <t t-out="object.origin or ''"></t> )
</t>
amounting in <strong
t-out="format_amount(object.amount_total, object.pricelist_id.currency_id) or ''">$
10.00
</strong>
<span> <strong t-out="object.number_to_words"/></span>
is available.
</t>
<t t-else="">
<t t-out="doc_name or ''">quotation</t>
<strong t-out="object.name or ''"></strong>
<t t-if="object.origin">
(with reference: <t t-out="object.origin or ''">S00052</t> )
</t>
amounting in <strong
t-out="format_amount(object.amount_total, object.pricelist_id.currency_id) or ''">$
10.00
</strong>
<span> <strong t-out="object.number_to_words"/></span>
is ready for review.
</t>
<br/>
<br/>
Do not hesitate to contact us if you have any questions.
<br/>
</p>
</div>
</field>
</record>
<function name="write" model="ir.model.data">
<function name="search" model="ir.model.data">
<value eval="[('name', '=', 'email_template_edi_sale'), ('module', '=', 'sale')]"/>
</function>
<value eval="{'noupdate': True}"/>
</function>
</data>
</odoo>

17
amount_in_words_invoice/views/sale_order_view.xml

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="sale_order_amount_in_words" model="ir.ui.view">
<field name="name">Amount in words sale order form</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_order_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='note']" position="before">
<group colspan="2">
<div style="padding-top:15px; padding-bottom:15px;">
<b><label for="number_to_words"/></b><field name="number_to_words"/>
</div>
</group>
</xpath>
</field>
</record>
</odoo>
Loading…
Cancel
Save