Browse Source

May 09: [ADD] Initital Commit 'payment_status_in_sale'

pull/320/head
RisvanaCybro 12 months ago
parent
commit
d478e7e6fd
  1. 46
      payment_status_in_sale/README.rst
  2. 23
      payment_status_in_sale/__init__.py
  3. 42
      payment_status_in_sale/__manifest__.py
  4. 6
      payment_status_in_sale/doc/RELEASE_NOTES.md
  5. 23
      payment_status_in_sale/models/__init__.py
  6. 169
      payment_status_in_sale/models/sale_order.py
  7. BIN
      payment_status_in_sale/static/description/assets/icons/check.png
  8. BIN
      payment_status_in_sale/static/description/assets/icons/chevron.png
  9. BIN
      payment_status_in_sale/static/description/assets/icons/cogs.png
  10. BIN
      payment_status_in_sale/static/description/assets/icons/consultation.png
  11. BIN
      payment_status_in_sale/static/description/assets/icons/ecom-black.png
  12. BIN
      payment_status_in_sale/static/description/assets/icons/education-black.png
  13. BIN
      payment_status_in_sale/static/description/assets/icons/hotel-black.png
  14. BIN
      payment_status_in_sale/static/description/assets/icons/license.png
  15. BIN
      payment_status_in_sale/static/description/assets/icons/lifebuoy.png
  16. BIN
      payment_status_in_sale/static/description/assets/icons/manufacturing-black.png
  17. BIN
      payment_status_in_sale/static/description/assets/icons/pos-black.png
  18. BIN
      payment_status_in_sale/static/description/assets/icons/puzzle.png
  19. BIN
      payment_status_in_sale/static/description/assets/icons/restaurant-black.png
  20. BIN
      payment_status_in_sale/static/description/assets/icons/service-black.png
  21. BIN
      payment_status_in_sale/static/description/assets/icons/trading-black.png
  22. BIN
      payment_status_in_sale/static/description/assets/icons/training.png
  23. BIN
      payment_status_in_sale/static/description/assets/icons/update.png
  24. BIN
      payment_status_in_sale/static/description/assets/icons/user.png
  25. BIN
      payment_status_in_sale/static/description/assets/icons/wrench.png
  26. BIN
      payment_status_in_sale/static/description/assets/misc/categories.png
  27. BIN
      payment_status_in_sale/static/description/assets/misc/check-box.png
  28. BIN
      payment_status_in_sale/static/description/assets/misc/compass.png
  29. BIN
      payment_status_in_sale/static/description/assets/misc/corporate.png
  30. BIN
      payment_status_in_sale/static/description/assets/misc/customer-support.png
  31. BIN
      payment_status_in_sale/static/description/assets/misc/cybrosys-logo.png
  32. BIN
      payment_status_in_sale/static/description/assets/misc/features.png
  33. BIN
      payment_status_in_sale/static/description/assets/misc/logo.png
  34. BIN
      payment_status_in_sale/static/description/assets/misc/pictures.png
  35. BIN
      payment_status_in_sale/static/description/assets/misc/pie-chart.png
  36. BIN
      payment_status_in_sale/static/description/assets/misc/right-arrow.png
  37. BIN
      payment_status_in_sale/static/description/assets/misc/star.png
  38. BIN
      payment_status_in_sale/static/description/assets/misc/support.png
  39. BIN
      payment_status_in_sale/static/description/assets/misc/whatsapp.png
  40. BIN
      payment_status_in_sale/static/description/assets/modules/1.png
  41. BIN
      payment_status_in_sale/static/description/assets/modules/2.png
  42. BIN
      payment_status_in_sale/static/description/assets/modules/3.png
  43. BIN
      payment_status_in_sale/static/description/assets/modules/4.png
  44. BIN
      payment_status_in_sale/static/description/assets/modules/5.png
  45. BIN
      payment_status_in_sale/static/description/assets/modules/6.png
  46. BIN
      payment_status_in_sale/static/description/assets/screenshots/1.png
  47. BIN
      payment_status_in_sale/static/description/assets/screenshots/amount_due.png
  48. BIN
      payment_status_in_sale/static/description/assets/screenshots/hero.gif
  49. BIN
      payment_status_in_sale/static/description/assets/screenshots/not_paid.png
  50. BIN
      payment_status_in_sale/static/description/assets/screenshots/paid.png
  51. BIN
      payment_status_in_sale/static/description/assets/screenshots/partial.png
  52. BIN
      payment_status_in_sale/static/description/assets/screenshots/pay_details.png
  53. BIN
      payment_status_in_sale/static/description/assets/screenshots/register.png
  54. BIN
      payment_status_in_sale/static/description/assets/screenshots/tree.png
  55. BIN
      payment_status_in_sale/static/description/banner.png
  56. BIN
      payment_status_in_sale/static/description/icon.png
  57. 661
      payment_status_in_sale/static/description/index.html
  58. 86
      payment_status_in_sale/views/sale_order_views.xml

46
payment_status_in_sale/README.rst

@ -0,0 +1,46 @@
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
:target: https://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
Sale Order Payment Status
=========================
* This module provides sale order payment details such as invoice status, amount due, date of payment and amount etc.
Configuration
=============
* No additional configuration is needed to use this module.
Company
-------
* `Cybrosys Techno Solutions <https://cybrosys.com/>`__
License
=======
GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3)
(http://www.gnu.org/licenses/agpl-3.0-standalone.html)
Credits
-------
* Developer: (V16) Shyamgeeth PP, Contact : odoo@cybrosys.com
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
payment_status_in_sale/__init__.py

@ -0,0 +1,23 @@
# -*- coding: utf-8 -*-
################################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>).
# Author: Shyamgeeth P.P (<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 models

42
payment_status_in_sale/__manifest__.py

@ -0,0 +1,42 @@
# -*- coding: utf-8 -*-
###############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>).
# Author: Shyamgeeth P.P (<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': 'Sale Order Payment Status',
'version': '16.0.1.0.0',
'category': 'Sales',
'summary': 'Sale order payment status,payment details and amount due',
'description': """This module used to get the information regarding invoice
of the corresponding sale order in the sale order page. It includes sale
order payment status, payment details and amount due.""",
'author': 'Cybrosys Techno Solutions',
'company': 'Cybrosys Techno Solutions',
'maintainer': 'Cybrosys Techno Solutions',
'website': 'https://www.cybrosys.com',
'depends': ['sale_management', 'account'],
'data': ['views/sale_order_views.xml'],
'images': ['static/description/banner.png'],
'license': 'AGPL-3',
'installable': True,
'auto_install': False,
'application': False,
}

6
payment_status_in_sale/doc/RELEASE_NOTES.md

@ -0,0 +1,6 @@
## Module <payment_status_in_sale>
#### 16.03.2024
#### Version 16.0.1.0.0
##### ADD
- Initial commit for Sale Order Payment Status.

23
payment_status_in_sale/models/__init__.py

@ -0,0 +1,23 @@
# -*- coding: utf-8 -*-
###############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>).
# Author: Shyamgeeth P.P (<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 sale_order

169
payment_status_in_sale/models/sale_order.py

@ -0,0 +1,169 @@
# -*- coding: utf-8 -*-
###############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>).
# Author: Shyamgeeth P.P (<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 api, fields, models, _
class SaleOrder(models.Model):
"""Extend the base Sale Order model to add custom fields and behaviors
for Sale Order Payment Status."""
_inherit = "sale.order"
_description = 'Sale order'
payment_status = fields.Char(string="Payment Status",
compute="_compute_payment_status",
help="Field to check the payment status of the"
" sale order")
payment_details = fields.Binary(string="Payment Details",
compute="_compute_payment_details",
help="Shows the payment done details "
"including date and amount")
amount_due = fields.Float(string="Amount Due",
compute='_compute_invoice_state_and_amount_due',
help="Shows the amount that in due for the "
"corresponding sale order")
invoice_state = fields.Char(string="Invoice State",
compute="_compute_invoice_state_and_amount_due",
help="Field to check the invoice state of "
"sale order")
@api.depends('invoice_ids')
def _compute_payment_status(self):
""" The function will compute the payment status of the sale order, if
an invoice is created for the corresponding sale order.Payment status
will be either in paid,not paid,partially paid, reversed etc."""
for order in self:
order.payment_status = 'No invoice'
payment_states = order.invoice_ids.mapped('payment_state')
status_length = len(payment_states)
if 'partial' in payment_states:
order.payment_status = 'Partially Paid'
elif 'not_paid' in payment_states and any(
(True for x in ['paid', 'in_payment', 'partial'] if
x in payment_states)):
order.payment_status = 'Partially Paid'
elif 'not_paid' in payment_states and status_length == \
payment_states.count('not_paid'):
order.payment_status = 'Not Paid'
elif 'paid' in payment_states and status_length == \
payment_states.count('paid') and order.amount_due == 0:
order.payment_status = 'Paid'
elif 'paid' in payment_states and status_length == \
payment_states.count('paid') and order.amount_due != 0:
order.payment_status = 'Partially Paid'
elif 'in_payment' in payment_states and status_length == \
payment_states.count('in_payment'):
order.payment_status = 'In Payment'
elif 'reversed' in payment_states and status_length == \
payment_states.count('reversed'):
order.payment_status = 'Reversed'
else:
order.payment_status = 'No invoice'
@api.depends('invoice_ids')
def _compute_invoice_state_and_amount_due(self):
""" The function will compute the state of the invoice , Once an invoice
is existing in a sale order. """
for rec in self:
amount_due = 0
rec.invoice_state = 'No invoice'
for order in rec.invoice_ids:
amount_due = amount_due + (order.amount_total -
order.amount_residual)
if order.state == 'posted':
rec.invoice_state = 'posted'
elif order.state != 'posted':
rec.invoice_state = 'draft'
else:
rec.invoice_state = 'No invoice'
rec.amount_due = rec.amount_total - amount_due
def action_open_business_doc(self):
""" This method is intended to be used in the context of an
account.move record.
It retrieves the associated payment record and opens it in a new window.
:return: A dictionary describing the action to be performed.
:rtype: dict """
name = _("Journal Entry")
move = self.env['account.move'].browse(self.id)
res_model = 'account.payment'
res_id = move.payment_id.id
return {
'name': name,
'type': 'ir.actions.act_window',
'view_mode': 'form',
'views': [(False, 'form')],
'res_model': res_model,
'res_id': res_id,
'target': 'current',
}
def js_remove_outstanding_partial(self, partial_id):
""" Called by the 'payment' widget to remove a reconciled entry to the
present invoice.
:param partial_id: The id of an existing partial reconciled with the
current invoice.
"""
self.ensure_one()
partial = self.env['account.partial.reconcile'].browse(partial_id)
return partial.unlink()
@api.depends('invoice_ids')
def _compute_payment_details(self):
""" Compute the payment details from invoices and added into the sale
order form view. """
for rec in self:
payment = []
rec.payment_details = False
if rec.invoice_ids:
for line in rec.invoice_ids:
if line.invoice_payments_widget:
for pay in line.invoice_payments_widget['content']:
payment.append(pay)
for line in rec.invoice_ids:
if line.invoice_payments_widget:
payment_line = line.invoice_payments_widget
payment_line['content'] = payment
rec.payment_details = payment_line
break
rec.payment_details = False
def action_register_payment(self):
""" Open the account.payment.register wizard to pay the selected journal
entries.
:return: An action opening the account.payment.register wizard.
"""
self.ensure_one()
return {
'name': _('Register Payment'),
'res_model': 'account.payment.register',
'view_mode': 'form',
'context': {
'active_model': 'account.move',
'active_ids': self.invoice_ids.ids,
},
'target': 'new',
'type': 'ir.actions.act_window',
}

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 310 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 576 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 733 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 911 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 673 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 878 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 653 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 905 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 839 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 427 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 627 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 988 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
payment_status_in_sale/static/description/assets/misc/categories.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 589 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 967 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

BIN
payment_status_in_sale/static/description/assets/screenshots/1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 KiB

BIN
payment_status_in_sale/static/description/assets/screenshots/amount_due.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 223 KiB

BIN
payment_status_in_sale/static/description/assets/screenshots/not_paid.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 KiB

BIN
payment_status_in_sale/static/description/assets/screenshots/paid.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB

BIN
payment_status_in_sale/static/description/assets/screenshots/partial.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

BIN
payment_status_in_sale/static/description/assets/screenshots/pay_details.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 141 KiB

BIN
payment_status_in_sale/static/description/assets/screenshots/register.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

BIN
payment_status_in_sale/static/description/assets/screenshots/tree.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 KiB

BIN
payment_status_in_sale/static/description/banner.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

BIN
payment_status_in_sale/static/description/icon.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

661
payment_status_in_sale/static/description/index.html

@ -0,0 +1,661 @@
<div 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>
<!-- END OF TITLE BAR -->
<div class="container">
<div class="row">
<div class="col-sm-12 col-md-12 col-lg-12">
<!-- APP HERO -->
<h1 style="color: #FFFFFF; font-weight: bolder; font-size: 50px; text-align: center; margin-top: 50px;">
Sale Order Payment Status</h1>
<p
style="color:#FFFFFF; padding: 8px 15px; text-align: center; font-size: 24px;">Shows the payment status of the sale order</p>
<!-- END OF APP HERO -->
<img src="assets/screenshots/hero.gif" class="img-responsive"
style="width: 100%; margin-left: auto; margin-right: auto;"/>
</div>
</div>
</div>
</div>
<!-- NAVIGATION SECTION -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px; margin-top: 300px;">
<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/compass.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Explore This
Module</h2>
</div>
<div class="row my-4" style="font-family: 'Montserrat', sans-serif;">
<div class="col-sm-12 col-md-6 my-3">
<a href="#overview">
<div class="d-flex justify-content-between align-items-center"
style="background-color: #f5f5f5; padding: 30px; width: 100%;">
<div>
<span style="color: #714B67; font-size: 24px; font-weight: 500; display: block;">Overview</span>
<span style="color: #714B67; font-size: 16px; font-weight: 400; color:#282F33; display: block;">Learn
more about this
module</span>
</div>
<img src="assets/misc/right-arrow.png" width="36" height="36"/>
</div>
</a>
</div>
<div class="col-sm-12 col-md-6 my-3">
<a href="#features">
<div class="d-flex justify-content-between align-items-center"
style="background-color: #f5f5f5; padding: 30px; width: 100%;">
<div>
<span style="color: #714B67; font-size: 24px; font-weight: 500; display: block;">Features</span>
<span style="color: #714B67; font-size: 16px; font-weight: 400; color:#282F33; display: block;">View
features of this
module</span>
</div>
<img src="assets/misc/right-arrow.png" width="36" height="36"/>
</div>
</a>
</div>
<div class="col-sm-12 col-md-6 my-3">
<a href="#screenshots">
<div class="d-flex justify-content-between align-items-center"
style="background-color: #f5f5f5; padding: 30px; width: 100%;">
<div>
<span style="color: #714B67; font-size: 24px; font-weight: 500; display: block;">Screenshots</span>
<span style="color: #714B67; font-size: 16px; font-weight: 400; color:#282F33; display: block;">View
screenshots for this
module</span>
</div>
<img src="assets/misc/right-arrow.png" width="36" height="36"/>
</div>
</a>
</div>
</div>
<!-- END OF NAVIGATION SECTION -->
<!-- OVERVIEW SECTION -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px;" id="overview">
<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/pie-chart.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Overview
</h2>
</div>
<div class="row"
style="font-family: 'Montserrat', sans-serif; font-weight: 400; font-size: 14px; line-height: 200%;">
<div class="col-sm-12 py-4">This module will help you to know the payment
status in the sales page.
</div>
</div>
<!-- END OF OVERVIEW SECTION -->
<!-- FEATURES SECTION -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px;" id="features">
<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/features.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Features
</h2>
</div>
<div class="row"
style="font-family: 'Montserrat', sans-serif; font-weight: 400; font-size: 14px; line-height: 200%;">
<div class="col-sm-12 col-md-6">
<div class="d-flex align-items-center"
style="margin-top: 30px; margin-bottom: 30px">
<img src="assets/misc/check-box.png" class="mr-2"/>
<span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">Available in Odoo 16.0
Community and Enterprise.</span>
</div>
<div class="d-flex align-items-center"
style="margin-top: 30px; margin-bottom: 30px">
<img src="assets/misc/check-box.png" class="mr-2"/>
<span
style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">Shows Payment Status in Sale Order tree view.</span>
</div>
<div class="d-flex align-items-center"
style="margin-top: 30px; margin-bottom: 30px">
<img src="assets/misc/check-box.png" class="mr-2"/>
<span
style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">Shows Amount Due in Sale Order form.</span>
</div>
</div>
<div class="col-sm-12 col-md-6">
<div class="d-flex align-items-center"
style="margin-top: 30px; margin-bottom: 30px">
<img src="assets/misc/check-box.png" class="mr-2"/>
<span
style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">Shows Payment Details in the Sale Order form.</span>
</div>
<div class="d-flex align-items-center"
style="margin-top: 30px; margin-bottom: 30px">
<img src="assets/misc/check-box.png" class="mr-2"/>
<span
style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">Payment can do from Sale Order form.</span>
</div>
<div class="d-flex align-items-center"
style="margin-top: 30px; margin-bottom: 30px">
<img src="assets/misc/check-box.png" class="mr-2"/>
<span
style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">Shows Payment Status in the Sale Order form view.</span>
</div>
</div>
</div>
<!-- END OF FEATURES SECTION -->
<!-- SCREENSHOTS SECTION -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px;"
id="screenshots">
<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/pictures.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Screenshots
</h2>
</div>
<div class="row">
<div class="col-sm-12">
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Shows Payment Status in Sale Order tree view.
</h3>
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">
It will show the status of payment in the tree view of Sales
module.</p>
<img src="assets/screenshots/tree.png"
class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Shows Amount Due in Sale Order form. </h3>
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">
Once an invoice is created, the payment status is changed
to "Not Paid" and Amount due was
showed on the form. </p>
<img src="assets/screenshots/not_paid.png"
class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Shows Payment Details in the Sale Order form.</h3>
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">
Upon creating an invoice and registering the payment using "REGISTER PAYMENT" Button.The status will be
changed to either "PAID" or "PARTIALLY PAID" state and Payment details will showed on the form. </p>
<img src="assets/screenshots/pay_details.png"
class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Payment can do from Sale Order form. </h3>
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">
Once an invoice is created and confirmed.Then the "REGISTER PAYMENT"
button enable on the Sale Order form view and user can register the payment from the
Sale Order form.</p>
<img src="assets/screenshots/register.png"
class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Shows Payment status in the Sale Order form view. </h3>
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">
Once an invoice is created and confirmed,
it will shows the Payment status on the Sale Order form view.</p>
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">
1.PAID</p>
<img src="assets/screenshots/paid.png"
class="img-thumbnail">
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">
2.NOT PAID</p>
<img src="assets/screenshots/not_paid.png"
class="img-thumbnail">
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">
3.PARTIALLY PAID</p>
<img src="assets/screenshots/partial.png"
class="img-thumbnail">
</div>
</div>
</div>
<!-- END OF SCREENSHOTS SECTION -->
<!-- RELATED 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="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/sale_product_image/" 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/sale_discount_total/" 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/sale_customer_product_history/" 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 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/sale_report_format_editor/" 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 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/edit_order_date/" 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/sale_recurring/" 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>
</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>
<!-- END OF RELATED PRODUCTS -->
<!-- OUR SERVICES -->
<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/star.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Our Services
</h2>
</div>
<div class="container my-5">
<div class="row">
<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>
</div>
<!-- END OF END OF OUR SERVICES -->
<!-- OUR INDUSTRIES -->
<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/corporate.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Our
Industries
</h2>
</div>
<div class="container my-5">
<div class="row">
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; 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: 0px; 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: 0px; 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: 0px; 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: 0px; 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: 0px; 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: 0px; 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: 0px; 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>
</div>
<!-- END OF END OF OUR INDUSTRIES -->
<!-- SUPPORT -->
<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/customer-support.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Support
</h2>
</div>
<div class="container mt-5">
<div class="row">
<div class="col-sm-12 col-md-6">
<div style="background-color: #F6F8F9; padding: 30px; display: flex; align-items: center;">
<div class="mr-4 d-flex justify-content-center align-items-center"
style="background-color: #714B67; display: inline-block; height: 70px; width: 70px; display: flex; align-items: center; justify-content: center;">
<img src="assets/misc/support.png" height="48" width="48"
style="width: 42px; height: 42px;"/>
</div>
<div>
<h4>Need Help?</h4>
<p style="line-height: 100%;">Got questions or need help?
Get in touch.</p>
<a href="mailto:odoo@cybrosys.com">
<p style="font-weight: 400; font-size: 28px; line-height: 80%; color: #714B67;">
odoo@cybrosys.com</p>
</a>
</div>
</div>
</div>
<div class="col-sm-12 col-md-6">
<div style="background-color: #F6F8F9; padding: 30px; display: flex; align-items: center;">
<div class="mr-4 d-flex justify-content-center align-items-center"
style="background-color: #2AC44D; display: inline-block; height: 70px; width: 70px; display: flex; align-items: center; justify-content: center;">
<img src="assets/misc/whatsapp.png" height="52" width="52"
style="width: 52px; height: 52px;"/>
</div>
<div>
<h4>WhatsApp</h4>
<p style="line-height: 100%;">Say hi to us on WhatsApp!</p>
<a href="https://api.whatsapp.com/send?phone=918606827707">
<p style="font-weight: 400; font-size: 28px; line-height: 80%; color: #714B67;">
+91 86068
27707</p>
</a>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-12 my-5 d-flex justify-content-center align-items-center">
<img src="assets/misc/logo.png" width="144" height="31"
style="width:144px; height: 31px; margin-top: 40px;"/>
</div>
</div>
</div>
<!-- END OF SUPPORT -->

86
payment_status_in_sale/views/sale_order_views.xml

@ -0,0 +1,86 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- Inherited sale order form view. -->
<record id="view_order_form" model="ir.ui.view">
<field name="name">sales.order.view.form.inherit.payment.status.in
.sale
</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='payment_term_id']" position="after">
<field name="payment_status" invisible="1"/>
<field name="invoice_state" invisible="1"/>
<field name="payment_details" widget="payment"
style="width: 60%"/>
<field name="amount_due"/>
</xpath>
<xpath expr="//sheet//div[hasclass('oe_button_box')]"
position="after">
<widget name="web_ribbon" title="Not Paid"
bg_color="bg-danger"
attrs="{'invisible': [('payment_status', '!=', 'Not Paid')]}"/>
<widget name="web_ribbon" title="Paid"
bg_color="bg-success"
attrs="{'invisible': [('payment_status', '!=', 'Paid')]}"/>
<widget name="web_ribbon" title="Partially Paid"
bg_color="bg-warning"
attrs="{'invisible': [('payment_status', '!=', 'Partially Paid')]}"/>
<widget name="web_ribbon" title="In Payment"
bg_color="bg-info"
attrs="{'invisible': [('payment_status', '!=', 'In Payment')]}"/>
<widget name="web_ribbon" title="Reversed"
bg_color="bg-success"
attrs="{'invisible': [('payment_status', '!=', 'Reversed')]}"/>
</xpath>
<xpath expr="//button[@name='action_confirm']"
position="after">
<button name="action_register_payment"
string="Register Payment" class="btn-primary"
type="object"
attrs="{'invisible': ['|', '|', ('state', '!=', 'sale'),
('invoice_state', '!=', 'posted'),
('payment_status', 'not in', ('Not Paid', 'Partially Paid'))]}"/>
</xpath>
</field>
</record>
<!-- Inherited sale order tree view. -->
<record id="view_order_tree" model="ir.ui.view">
<field name="name">sale.order.view.tree.inherit.payment.status.in
.sale
</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_order_tree"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='invoice_status']" position="after">
<field name="payment_status" optional="show"
decoration-success="payment_status in ['Paid', 'Reversed']"
decoration-danger="payment_status == 'Not Paid'"
decoration-info="payment_status == 'In Payment'"
decoration-bf="payment_status == 'No invoice'"
decoration-warning="payment_status == 'Partially Paid'"
widget="badge"/>
</xpath>
</field>
</record>
<!-- Inherited sale order quotation tree view. -->
<record id="view_quotation_tree_with_onboarding" model="ir.ui.view">
<field name="name">sale.order.view.tree.inherit.payment.status
.in.sale
</field>
<field name="model">sale.order</field>
<field name="inherit_id"
ref="sale.view_quotation_tree_with_onboarding"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='invoice_status']" position="after">
<field name="payment_status" optional="show"
decoration-success="payment_status in ['Paid', 'Reversed']"
decoration-danger="payment_status == 'Not Paid'"
decoration-info="payment_status == 'In Payment'"
decoration-bf="payment_status == 'No invoice'"
decoration-warning="payment_status == 'Partially Paid'"
widget="badge"/>
</xpath>
</field>
</record>
</odoo>
Loading…
Cancel
Save