Browse Source

May 12 : [ADD] Initial Commit 'amount_in_words_invoice'

dependabot/npm_and_yarn/odoo_website_helpdesk/static/src/cdn/minimist-1.2.8
Sayooj 2 years ago
parent
commit
8a3047433a
  1. 44
      amount_in_words_invoice/README.rst
  2. 23
      amount_in_words_invoice/__init__.py
  3. 51
      amount_in_words_invoice/__manifest__.py
  4. 63
      amount_in_words_invoice/data/credit_note_mail_template.xml
  5. 76
      amount_in_words_invoice/data/invoice_mail_template.xml
  6. 54
      amount_in_words_invoice/data/payment_mail_template.xml
  7. 54
      amount_in_words_invoice/data/purchase_order_mail_template.xml
  8. 74
      amount_in_words_invoice/data/sale_order_confirm_mail_template.xml
  9. 306
      amount_in_words_invoice/data/sale_order_mail_template.xml
  10. 6
      amount_in_words_invoice/doc/RELEASE_NOTES.md
  11. 25
      amount_in_words_invoice/models/__init__.py
  12. 44
      amount_in_words_invoice/models/account_move.py
  13. 44
      amount_in_words_invoice/models/purchase_order.py
  14. 44
      amount_in_words_invoice/models/sale_order.py
  15. 39
      amount_in_words_invoice/report/reports.xml
  16. BIN
      amount_in_words_invoice/static/description/assets/icons/check.png
  17. BIN
      amount_in_words_invoice/static/description/assets/icons/chevron.png
  18. BIN
      amount_in_words_invoice/static/description/assets/icons/cogs.png
  19. BIN
      amount_in_words_invoice/static/description/assets/icons/consultation.png
  20. BIN
      amount_in_words_invoice/static/description/assets/icons/ecom-black.png
  21. BIN
      amount_in_words_invoice/static/description/assets/icons/education-black.png
  22. BIN
      amount_in_words_invoice/static/description/assets/icons/hotel-black.png
  23. BIN
      amount_in_words_invoice/static/description/assets/icons/license.png
  24. BIN
      amount_in_words_invoice/static/description/assets/icons/lifebuoy.png
  25. BIN
      amount_in_words_invoice/static/description/assets/icons/logo.png
  26. BIN
      amount_in_words_invoice/static/description/assets/icons/manufacturing-black.png
  27. BIN
      amount_in_words_invoice/static/description/assets/icons/pos-black.png
  28. BIN
      amount_in_words_invoice/static/description/assets/icons/puzzle.png
  29. BIN
      amount_in_words_invoice/static/description/assets/icons/restaurant-black.png
  30. BIN
      amount_in_words_invoice/static/description/assets/icons/service-black.png
  31. BIN
      amount_in_words_invoice/static/description/assets/icons/trading-black.png
  32. BIN
      amount_in_words_invoice/static/description/assets/icons/training.png
  33. BIN
      amount_in_words_invoice/static/description/assets/icons/update.png
  34. BIN
      amount_in_words_invoice/static/description/assets/icons/user.png
  35. BIN
      amount_in_words_invoice/static/description/assets/icons/wrench.png
  36. BIN
      amount_in_words_invoice/static/description/assets/misc/categories.png
  37. BIN
      amount_in_words_invoice/static/description/assets/misc/check-box.png
  38. BIN
      amount_in_words_invoice/static/description/assets/misc/compass.png
  39. BIN
      amount_in_words_invoice/static/description/assets/misc/corporate.png
  40. BIN
      amount_in_words_invoice/static/description/assets/misc/customer-support.png
  41. BIN
      amount_in_words_invoice/static/description/assets/misc/cybrosys-logo.png
  42. BIN
      amount_in_words_invoice/static/description/assets/misc/features.png
  43. BIN
      amount_in_words_invoice/static/description/assets/misc/logo.png
  44. BIN
      amount_in_words_invoice/static/description/assets/misc/pictures.png
  45. BIN
      amount_in_words_invoice/static/description/assets/misc/pie-chart.png
  46. BIN
      amount_in_words_invoice/static/description/assets/misc/right-arrow.png
  47. BIN
      amount_in_words_invoice/static/description/assets/misc/star.png
  48. BIN
      amount_in_words_invoice/static/description/assets/misc/support.png
  49. BIN
      amount_in_words_invoice/static/description/assets/misc/whatsapp.png
  50. BIN
      amount_in_words_invoice/static/description/assets/modules/1.png
  51. BIN
      amount_in_words_invoice/static/description/assets/modules/2.png
  52. BIN
      amount_in_words_invoice/static/description/assets/modules/3.png
  53. BIN
      amount_in_words_invoice/static/description/assets/modules/4.png
  54. BIN
      amount_in_words_invoice/static/description/assets/modules/5.png
  55. BIN
      amount_in_words_invoice/static/description/assets/modules/6.png
  56. BIN
      amount_in_words_invoice/static/description/assets/screenshots/amount1.png
  57. BIN
      amount_in_words_invoice/static/description/assets/screenshots/amount2.png
  58. BIN
      amount_in_words_invoice/static/description/assets/screenshots/amount3.png
  59. BIN
      amount_in_words_invoice/static/description/assets/screenshots/amount4.png
  60. BIN
      amount_in_words_invoice/static/description/assets/screenshots/amount5.png
  61. BIN
      amount_in_words_invoice/static/description/assets/screenshots/hero.gif
  62. BIN
      amount_in_words_invoice/static/description/banner.png
  63. BIN
      amount_in_words_invoice/static/description/icon.png
  64. 696
      amount_in_words_invoice/static/description/index.html
  65. 18
      amount_in_words_invoice/views/account_move_views.xml
  66. 19
      amount_in_words_invoice/views/purchase_order_views.xml
  67. 21
      amount_in_words_invoice/views/sale_order_views.xml

44
amount_in_words_invoice/README.rst

@ -0,0 +1,44 @@
.. 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
16: Aswathi PN @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) 2023-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 v3) 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 models

51
amount_in_words_invoice/__manifest__.py

@ -0,0 +1,51 @@
# -*- coding: utf-8 -*-
###################################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2023-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 v3) 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': '16.0.1.0.0',
'summary': """Showing the subtotal amounts of invoice, sale order and purchase order in words""",
'description': """The Module to Shows The Subtotal Amount in Words on Invoice, Sale Order and Purchase Order""",
'author': 'Cybrosys Techno Solutions',
'company': 'Cybrosys Techno Solutions',
'maintainer': 'Cybrosys Techno Solutions',
'website': "https://www.cybrosys.com",
'category': 'Accounting,Sales,Purchase',
'depends': ['sale_management', 'account', 'purchase'],
'data': [
'data/credit_note_mail_template.xml',
'data/invoice_mail_template.xml',
'data/payment_mail_template.xml',
'data/purchase_order_mail_template.xml',
'data/sale_order_confirm_mail_template.xml',
'data/sale_order_mail_template.xml',
'views/account_move_views.xml',
'views/sale_order_views.xml',
'views/purchase_order_views.xml',
'report/reports.xml'
],
'images': ['static/description/banner.png'],
'installable': True,
'application': False,
'auto_install': False,
'license': 'AGPL-3',
}

63
amount_in_words_invoice/data/credit_note_mail_template.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_credit_note'), ('module', '=', 'account')]"/>
</function>
<value eval="{'noupdate': False}"/>
</function>
<!--showing the amount in words on the credit note sent mail-->
<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/data/invoice_mail_template.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>
<!-- to shows the amount in words on the invoice send mail-->
<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>

54
amount_in_words_invoice/data/payment_mail_template.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', '=', 'mail_template_data_payment_receipt'), ('module', '=', 'account')]"/>
</function>
<value eval="{'noupdate': False}"/>
</function>
<!-- to shows the amount in words on the payment send mail-->
<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/data/purchase_order_mail_template.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>
<!-- to shows the amount in words on the purchase order send mail-->
<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>

74
amount_in_words_invoice/data/sale_order_confirm_mail_template.xml

@ -0,0 +1,74 @@
<?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>
<!-- to shows the amount in words on the sale order confirmation send mail-->
<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>

306
amount_in_words_invoice/data/sale_order_mail_template.xml

@ -0,0 +1,306 @@
<?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>
<!-- to shows the amount in words on the sale order send mail-->
<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>

6
amount_in_words_invoice/doc/RELEASE_NOTES.md

@ -0,0 +1,6 @@
## Module <amount_in_words_invoice>
#### 05.05.2023
#### Version 16.0.1.0.0
##### ADD
- Initial commit for Amount In Words In Invoice, Sale Order And Purchase Order

25
amount_in_words_invoice/models/__init__.py

@ -0,0 +1,25 @@
# -*- coding: utf-8 -*-
###################################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2023-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 v3) 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 sale_order
from . import purchase_order
from . import account_move

44
amount_in_words_invoice/models/account_move.py

@ -0,0 +1,44 @@
# -*- coding: utf-8 -*-
###################################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2023-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 v3) 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 AccountMove(models.Model):
"""
Inherit the Account Move to add amount in words in account move.
Methods:
_compute_number_to_words(self):
Function to convert the invoice subtotal amount to words.
"""
_inherit = 'account.move'
number_to_words = fields.Char(string="Amount in Words (Total) : ",
compute='_compute_number_to_words',
help="To showing total amount in 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)

44
amount_in_words_invoice/models/purchase_order.py

@ -0,0 +1,44 @@
# -*- coding: utf-8 -*-
###################################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2023-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 v3) 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 PurchaseOrder(models.Model):
"""
Inherit the Purchase Order model to add amount in words in purchase order.
Methods:
_compute_number_to_words(self):
Function to Change the purchase order total amount to words.
"""
_inherit = 'purchase.order'
number_to_words = fields.Char(string="Amount in Words (Total) : ",
compute='_compute_number_to_words',
help="To showing total amount in 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)

44
amount_in_words_invoice/models/sale_order.py

@ -0,0 +1,44 @@
# -*- coding: utf-8 -*-
###################################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2023-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 v3) 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):
"""
Inherited the Sale Order model to add amount in words on sale order form view.
Methods:
_compute_number_to_words(self):
Function to convert the sale order subtotal amount to words.
"""
_inherit = 'sale.order'
number_to_words = fields.Char(string="Amount in Words (Total) :",
compute='_compute_number_to_words',
help="To showing total amount in 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)

39
amount_in_words_invoice/report/reports.xml

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<!-- to showing the amount in words in invoice report-->
<template id="invoice_report_view_amount_in_words"
inherit_id="account.report_invoice_document">
<xpath expr="//div[hasclass('clearfix')]" position="after">
<div style="font-size:15px; padding15px;border:1px solid black;">
<span>
<strong>Amount in Words (Total) :</strong>
</span>
<span t-field="o.number_to_words"/>
</div>
</xpath>
</template>
<!--to shows the amount in words on purchase report-->
<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>
<!--to shows the amount in words to the sales report-->
<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/misc/categories.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
amount_in_words_invoice/static/description/assets/misc/check-box.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
amount_in_words_invoice/static/description/assets/misc/compass.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

BIN
amount_in_words_invoice/static/description/assets/misc/corporate.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
amount_in_words_invoice/static/description/assets/misc/customer-support.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
amount_in_words_invoice/static/description/assets/misc/cybrosys-logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

BIN
amount_in_words_invoice/static/description/assets/misc/features.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 589 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

BIN
amount_in_words_invoice/static/description/assets/misc/pictures.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
amount_in_words_invoice/static/description/assets/misc/pie-chart.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
amount_in_words_invoice/static/description/assets/misc/right-arrow.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 967 B

BIN
amount_in_words_invoice/static/description/assets/misc/star.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
amount_in_words_invoice/static/description/assets/misc/support.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
amount_in_words_invoice/static/description/assets/misc/whatsapp.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

BIN
amount_in_words_invoice/static/description/assets/screenshots/amount1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

BIN
amount_in_words_invoice/static/description/assets/screenshots/amount2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

BIN
amount_in_words_invoice/static/description/assets/screenshots/amount3.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

BIN
amount_in_words_invoice/static/description/assets/screenshots/amount4.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

BIN
amount_in_words_invoice/static/description/assets/screenshots/amount5.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 KiB

BIN
amount_in_words_invoice/static/description/banner.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

BIN
amount_in_words_invoice/static/description/icon.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

696
amount_in_words_invoice/static/description/index.html

@ -0,0 +1,696 @@
<div class="container" style="background-color: #714B67; height: 810px; width: 100%; padding: 15px; position: relative;">
<!-- TITLE BAR -->
<div class="d-flex align-items-center justify-content-between"
style="border-bottom: 1px solid #875A7B; padding: 15px; display: flex; justify-content: space-between; align-items: center;">
<img src="assets/misc/cybrosys-logo.png" width="42" height="42"
style="width: 42px; height: 42px;"/>
<div>
<div
style="color: #7C7BAD; font-size: 14px; font-family: 'Montserrat', sans-serif; font-weight: bold; background-color: white; display: inline-block; padding: 3px 10px; border-radius: 50px;"
class="mr-2">
<i class="fa fa-check mr-1"></i>Community
</div>
<div
style="color: #875A7B; font-size: 14px; font-family: 'Montserrat', sans-serif; font-weight: bold; background-color: white; display: inline-block; padding: 3px 10px; border-radius: 50px;"
class="mr-2">
<i class="fa fa-check mr-1"></i>Enterprise
</div>
</div>
</div>
<!--</div>-->
<!-- END OF TITLE BAR -->
<!-- APP HERO -->
<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>
<!-- END OF APP HERO -->
<img src="./assets/screenshots/hero.gif" class="img-responsive" width="100%" height="auto"/>
</div>
</div>
<!-- NAVIGATION SECTION -->
<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>
<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="#configuration" 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;">
Configuration</h3>
<p
style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #714B67 !important; font-size: 0.9rem !important;">
View configurations for 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>
<!-- END OF NAVIGATION SECTION -->
<!-- OVERVIEW SECTION -->
<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>
</div>
<!-- END OF OVERVIEW SECTION -->
<!-- FEATURES SECTION -->
<div class="row" id="configuration">
<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>Configuration
</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;">
No additional configuration required</p>
</div>
</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;">
Community &amp; Enterprise Support</h4>
<p
style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;">
Available in Odoo 16.0 Community and Enterprise.</p>
</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;">
Convert Amount into Words</h4>
<!-- <p-->
<!-- style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;">-->
<!-- Make a product as age restricted.</p>-->
</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>
<!-- END OF FEATURES SECTION -->
<!-- SCREENSHOTS SECTION -->
<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="my-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/amount1.png"
class="img-responsive img-thumbnail border" width="100%"
height="auto"/>
</div>
<div class="col-lg-12 my-2">
<h4 class="my-2"
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/amount2.png"
class="img-responsive img-thumbnail border" width="100%"
height="auto"/>
</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;">
Invoice Form Layout</h4>
<img src="assets/screenshots/amount3.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/amount4.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/amount5.png" class="img-responsive img-thumbnail border" width="100%"
height="auto"/>
</div>
</div>
<!-- END OF SCREENSHOTS SECTION -->
<!-- SUGGESTED PRODUCTS -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px;">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/categories.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Related
Products
</h2>
</div>
<div class="row">
<div class="row">
<div class="col-sm-12">
<div id="demo1" class="row carousel slide" data-ride="carousel">
<!-- The slideshow -->
<div class="carousel-inner" style="padding: 30px;">
<div class="carousel-item" style="min-height: 198.656px;">
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
style="float:left">
<a href="https://apps.odoo.com/apps/modules/16.0/dashboard_pos/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-radius: 0px;"
src="assets/modules/6.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/16.0/custom_receipts_for_pos/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-radius: 0px;"
src="assets/modules/5.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/16.0/pos_report_generator/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-radius: 0px;"
src="assets/modules/4.png">
</div>
</a>
</div>
</div>
<div class="carousel-item active"
style="min-height: 198.656px;">
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
style="float:left">
<a href="https://apps.odoo.com/apps/modules/16.0/multi_barcodes_pos/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-radius: 0px;"
src="assets/modules/1.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/16.0/pos_order_line_image/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-radius: 0px;"
src="assets/modules/2.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/16.0/pos_magnify_image/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-radius: 0px;"
src="assets/modules/3.png">
</div>
</a>
</div>
</div>
</div>
<!-- Left and right controls -->
<a class="carousel-control-prev" href="#demo1" data-slide="prev"
style="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="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>
</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 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>

18
amount_in_words_invoice/views/account_move_views.xml

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- to inherit the account.move to showing the invoice subtotal in words-->
<record id="account_move_view_form" model="ir.ui.view">
<field name="name">account.move.view.form.inherit.amount.in.words.invoice</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:15px;width: 500px;display: flex;flex-direction: row;">
<b><label for="number_to_words"/></b><field name="number_to_words"/>
</div>
</group>
</xpath>
</field>
</record>
</odoo>

19
amount_in_words_invoice/views/purchase_order_views.xml

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- to inherit the account.move to showing the purchase order subtotal in words-->
<record id="purchase_order_view_form" model="ir.ui.view">
<field name="name">purchase.order.view.form.inherit.amount.in.words.invoice</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:15px;width: 500px;display: flex;flex-direction: row;">
<b><label for="number_to_words"/></b>
<field name="number_to_words"/>
</div>
</group>
</xpath>
</field>
</record>
</odoo>

21
amount_in_words_invoice/views/sale_order_views.xml

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- to inherit the account.move to showing the sale order subtotal in words-->
<record id="sale_order_view_form" model="ir.ui.view">
<field name="name">sale.order.view.form.inherit.amount.in.words.invoice</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:15px;width: 500px;display: flex;flex-direction: row;">
<b>
<label for="number_to_words"/>
</b>
<field name="number_to_words"/>
</div>
</group>
</xpath>
</field>
</record>
</odoo>
Loading…
Cancel
Save