Browse Source

[ADD] Initial Commit 'low_stocks_product_alert/'

pull/268/head
AjmalCybro 2 years ago
parent
commit
76b96b12be
  1. 46
      low_stocks_product_alert/README.rst
  2. 22
      low_stocks_product_alert/__init__.py
  3. 53
      low_stocks_product_alert/__manifest__.py
  4. 7
      low_stocks_product_alert/doc/RELEASE_NOTES.md
  5. 25
      low_stocks_product_alert/models/__init__.py
  6. 44
      low_stocks_product_alert/models/pos_session.py
  7. 51
      low_stocks_product_alert/models/product_product.py
  8. 61
      low_stocks_product_alert/models/product_template.py
  9. 45
      low_stocks_product_alert/models/res_config_settings.py
  10. BIN
      low_stocks_product_alert/static/description/assets/icons/check.png
  11. BIN
      low_stocks_product_alert/static/description/assets/icons/chevron.png
  12. BIN
      low_stocks_product_alert/static/description/assets/icons/cogs.png
  13. BIN
      low_stocks_product_alert/static/description/assets/icons/consultation.png
  14. BIN
      low_stocks_product_alert/static/description/assets/icons/ecom-black.png
  15. BIN
      low_stocks_product_alert/static/description/assets/icons/education-black.png
  16. BIN
      low_stocks_product_alert/static/description/assets/icons/hotel-black.png
  17. BIN
      low_stocks_product_alert/static/description/assets/icons/license.png
  18. BIN
      low_stocks_product_alert/static/description/assets/icons/lifebuoy.png
  19. BIN
      low_stocks_product_alert/static/description/assets/icons/manufacturing-black.png
  20. BIN
      low_stocks_product_alert/static/description/assets/icons/pos-black.png
  21. BIN
      low_stocks_product_alert/static/description/assets/icons/puzzle.png
  22. BIN
      low_stocks_product_alert/static/description/assets/icons/restaurant-black.png
  23. BIN
      low_stocks_product_alert/static/description/assets/icons/service-black.png
  24. BIN
      low_stocks_product_alert/static/description/assets/icons/trading-black.png
  25. BIN
      low_stocks_product_alert/static/description/assets/icons/training.png
  26. BIN
      low_stocks_product_alert/static/description/assets/icons/update.png
  27. BIN
      low_stocks_product_alert/static/description/assets/icons/user.png
  28. BIN
      low_stocks_product_alert/static/description/assets/icons/wrench.png
  29. BIN
      low_stocks_product_alert/static/description/assets/misc/categories.png
  30. BIN
      low_stocks_product_alert/static/description/assets/misc/check-box.png
  31. BIN
      low_stocks_product_alert/static/description/assets/misc/compass.png
  32. BIN
      low_stocks_product_alert/static/description/assets/misc/corporate.png
  33. BIN
      low_stocks_product_alert/static/description/assets/misc/customer-support.png
  34. BIN
      low_stocks_product_alert/static/description/assets/misc/cybrosys-logo.png
  35. BIN
      low_stocks_product_alert/static/description/assets/misc/features.png
  36. BIN
      low_stocks_product_alert/static/description/assets/misc/logo.png
  37. BIN
      low_stocks_product_alert/static/description/assets/misc/pictures.png
  38. BIN
      low_stocks_product_alert/static/description/assets/misc/pie-chart.png
  39. BIN
      low_stocks_product_alert/static/description/assets/misc/right-arrow.png
  40. BIN
      low_stocks_product_alert/static/description/assets/misc/star.png
  41. BIN
      low_stocks_product_alert/static/description/assets/misc/support.png
  42. BIN
      low_stocks_product_alert/static/description/assets/misc/whatsapp.png
  43. BIN
      low_stocks_product_alert/static/description/assets/modules/1.gif
  44. BIN
      low_stocks_product_alert/static/description/assets/modules/2.png
  45. BIN
      low_stocks_product_alert/static/description/assets/modules/3.png
  46. BIN
      low_stocks_product_alert/static/description/assets/modules/4.png
  47. BIN
      low_stocks_product_alert/static/description/assets/modules/5.png
  48. BIN
      low_stocks_product_alert/static/description/assets/modules/6.png
  49. BIN
      low_stocks_product_alert/static/description/assets/modules/export_image.png
  50. BIN
      low_stocks_product_alert/static/description/assets/modules/gantt_image.png
  51. BIN
      low_stocks_product_alert/static/description/assets/modules/quotation_image.png
  52. BIN
      low_stocks_product_alert/static/description/assets/screenshots/1.png
  53. BIN
      low_stocks_product_alert/static/description/assets/screenshots/2.png
  54. BIN
      low_stocks_product_alert/static/description/assets/screenshots/3.png
  55. BIN
      low_stocks_product_alert/static/description/assets/screenshots/4.png
  56. BIN
      low_stocks_product_alert/static/description/assets/screenshots/5.png
  57. BIN
      low_stocks_product_alert/static/description/assets/screenshots/low-stock-product-alert-v16-gif.gif
  58. BIN
      low_stocks_product_alert/static/description/banner.png
  59. BIN
      low_stocks_product_alert/static/description/icon.png
  60. 614
      low_stocks_product_alert/static/description/index.html
  61. 7
      low_stocks_product_alert/static/src/css/template_color.css
  62. 18
      low_stocks_product_alert/static/src/xml/product_item_template.xml
  63. 14
      low_stocks_product_alert/views/product_product_views.xml
  64. 41
      low_stocks_product_alert/views/product_template_views.xml
  65. 33
      low_stocks_product_alert/views/res_config_settings_views.xml

46
low_stocks_product_alert/README.rst

@ -0,0 +1,46 @@
.. image:: https://img.shields.io/badge/licence-LGPL--3-green.svg
:target: https://www.gnu.org/licenses/lgpl-3.0-standalone.html
:alt: License: LGPL-3
Product Low Stock Alert
=======================
* Product low stock alert display in Point of Sale and Product Views.
Installation
============
- www.odoo.com/documentation/16.0/setup/install.html
- Install our custom addon
License
-------
General Public License, Version 3 (LGPL v3).
(https://www.odoo.com/documentation/user/16.0/legal/licenses/licenses.html)
Company
-------
* `Cybrosys Techno Solutions <https://cybrosys.com/>`__
Credits
-------
* Developer:
(v16) anfas @ Cybrosys
Contacts
--------
* Mail Contact : odoo@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 https://www.cybrosys.com
Further information
===================
HTML Description: `<static/description/index.html>`__

22
low_stocks_product_alert/__init__.py

@ -0,0 +1,22 @@
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Anfas Faisal K (<https://www.cybrosys.com>)
#
# You can modify it under the terms of the GNU LESSER
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details.
#
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE
# (LGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
#############################################################################
from . import models

53
low_stocks_product_alert/__manifest__.py

@ -0,0 +1,53 @@
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Anfas Faisal K (<https://www.cybrosys.com>)
#
# You can modify it under the terms of the GNU LESSER
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details.
#
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE
# (LGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
#############################################################################
{
'name': "Product Low Stock Alert",
'version': '16.0.1.0.0',
'summary': """Product Low Stock Alert Display in Point of Sale and
Product Views""",
"category": 'Warehouse,Point of Sale',
'description': """Module adds functionality to display product stock
alerts in the point of sale interface, indicating low stock levels for
products and also in the product template kanban and list view.""",
'author': 'Cybrosys Techno Solutions',
'company': 'Cybrosys Techno Solutions',
'maintainer': 'Cybrosys Techno Solutions',
'website': 'https://www.cybrosys.com',
'depends': ['stock', 'point_of_sale'],
'data': [
'views/res_config_settings_views.xml',
'views/product_product_views.xml',
'views/product_template_views.xml'
],
'assets': {
'web.assets_backend': [
'low_stocks_product_alert/static/src/css/template_color.css',
],
'point_of_sale.assets': [
'low_stocks_product_alert/static/src/xml/product_item_template.xml',
],
},
'images': ['static/description/banner.png'],
'license': "LGPL-3",
'installable': True,
'application': False
}

7
low_stocks_product_alert/doc/RELEASE_NOTES.md

@ -0,0 +1,7 @@
## Module <low_stocks_product_alert>
#### 27.07.2023
#### Version 16.0.1.0.0
#### ADD
- Initial commit for Product Low Stock Alert

25
low_stocks_product_alert/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: Anfas Faisal K (<https://www.cybrosys.com>)
#
# You can modify it under the terms of the GNU LESSER
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details.
#
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE
# (LGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
#############################################################################
from . import product_product
from . import product_template
from . import pos_session
from . import res_config_settings

44
low_stocks_product_alert/models/pos_session.py

@ -0,0 +1,44 @@
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Anfas Faisal K (<https://www.cybrosys.com>)
#
# You can modify it under the terms of the GNU LESSER
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details.
#
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE
# (LGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
#############################################################################
from odoo import models
class PosSession(models.Model):
"""
This is an Odoo model for Point of Sale (POS) sessions.
It inherits from the 'pos.session' model and extends its functionality.
Methods: _loader_params_product_product(): Adds the 'alert_tag' field to
the search parameters for the product loader.
"""
_inherit = 'pos.session'
def _loader_params_product_product(self):
""" Adds the 'alert_tag' field to the search parameters for the
product loader.
Returns:
dict: The updated search parameters for the product loader.
"""
result = super()._loader_params_product_product()
result['search_params']['fields'].append('alert_tag')
return result

51
low_stocks_product_alert/models/product_product.py

@ -0,0 +1,51 @@
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Anfas Faisal K (<https://www.cybrosys.com>)
#
# You can modify it under the terms of the GNU LESSER
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details.
#
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE
# (LGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
#############################################################################
from odoo import api, fields, models
class ProductProduct(models.Model):
"""
This is an Odoo model for product products. It inherits from the
'product.product' model and extends its functionality by adding a
computed field for product alert state.
Methods:
_compute_alert_tag(): Computes the value of the 'alert_tag' field based on the
product's stock quantity and configured low stock alert parameters
"""
_inherit = 'product.product'
alert_tag = fields.Char(
string='Product Alert Tag', compute='_compute_alert_tag',
help='This field represents the alert tag of the product.')
@api.depends('qty_available')
def _compute_alert_tag(self):
"""Computes the value of the 'alert_tag' field based on the product's
stock quantity and configured low stock alert parameters."""
if self.env['ir.config_parameter'].sudo().get_param(
'low_stocks_product_alert.is_low_stock_alert'):
for rec in self:
is_low_stock = rec.detailed_type == 'product' and rec.qty_available <= int(
self.env['ir.config_parameter'].sudo().get_param(
'low_stocks_product_alert.min_low_stock_alert'))
rec.alert_tag = rec.qty_available if is_low_stock else False

61
low_stocks_product_alert/models/product_template.py

@ -0,0 +1,61 @@
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Anfas Faisal K (<https://www.cybrosys.com>)
#
# You can modify it under the terms of the GNU LESSER
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details.
#
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE
# (LGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
#############################################################################
from odoo import api, fields, models
class ProductTemplate(models.Model):
"""
This is an Odoo model for product templates. It inherits from the
'product.template' model and extends its functionality by adding computed
fields for product alert state and color field.
Methods:
_compute_alert_state: Computes the 'alert_state' and 'color_field'
fields based on the product's stock quantity and low stock
alert parameters
"""
_inherit = 'product.template'
alert_state = fields.Boolean(string='Product Alert State', default=False,
compute='_compute_alert_state',
help='This field represents the alert state'
'of the product')
color_field = fields.Char(string='Background color',
help='This field represents the background '
'color of the product.')
@api.depends('qty_available')
def _compute_alert_state(self):
""" Computes the 'alert_state' and 'color_field' fields based on
the product's stock quantity and low stock alert parameters."""
if self.env['ir.config_parameter'].sudo().get_param(
'low_stocks_product_alert.is_low_stock_alert'):
for rec in self:
rec.alert_state, rec.color_field = (False, 'white') if \
rec.detailed_type != 'product' or rec.qty_available > int(
self.env['ir.config_parameter'].sudo().get_param(
'low_stocks_product_alert.min_low_stock_alert')) \
else (True, '#fdc6c673')
else:
self.alert_state = False
self.color_field = 'white'

45
low_stocks_product_alert/models/res_config_settings.py

@ -0,0 +1,45 @@
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Anfas Faisal K (<https://www.cybrosys.com>)
#
# You can modify it under the terms of the GNU LESSER
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details.
#
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE
# (LGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
#############################################################################
from odoo import fields, models
class ResConfig(models.TransientModel):
"""
This is an Odoo model for configuration settings. It inherits from the
'res.config.settings' model and extends its functionality by adding
fields for low stock alert configuration
"""
_inherit = 'res.config.settings'
is_low_stock_alert = fields.Boolean(
string="Low Stock Alert",
help='This field determines the minimum stock quantity at which a low '
'stock alert will be triggered.When the product quantity falls '
'below this value, the background color for the product will be '
'changed based on the alert state.',
config_parameter='low_stocks_product_alert.is_low_stock_alert')
min_low_stock_alert = fields.Integer(
string='Alert Quantity', default=0,
help='Change the background color for the product based'
'on the Alert Quant.',
config_parameter='low_stocks_product_alert.min_low_stock_alert')

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 310 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 576 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 733 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 911 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 673 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 878 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 653 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 905 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 839 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 427 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 627 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 988 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 589 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 967 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

BIN
low_stocks_product_alert/static/description/assets/modules/1.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 284 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 KiB

BIN
low_stocks_product_alert/static/description/assets/screenshots/2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 365 KiB

BIN
low_stocks_product_alert/static/description/assets/screenshots/3.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 192 KiB

BIN
low_stocks_product_alert/static/description/assets/screenshots/4.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 455 KiB

BIN
low_stocks_product_alert/static/description/assets/screenshots/5.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 338 KiB

BIN
low_stocks_product_alert/static/description/assets/screenshots/low-stock-product-alert-v16-gif.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 266 KiB

BIN
low_stocks_product_alert/static/description/banner.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

BIN
low_stocks_product_alert/static/description/icon.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

614
low_stocks_product_alert/static/description/index.html

@ -0,0 +1,614 @@
<div style="background-color: #714B67; min-height: 600px; width: 100%; padding: 15px; position: relative;">
<!-- TITLE BAR -->
<div
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 style="color: #017E84; 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>Odoo.sh
</div>
</div>
</div>
<!-- END OF TITLE BAR -->
<!-- APP HERO -->
<h1 style="color: #FFFFFF; font-weight: bolder; font-size: 50px; text-align: center; margin-top: 50px;">Product Low Stock Alert</h1>
<p style="color:#FFFFFF; padding: 8px 15px; text-align: center; font-size: 24px;">Simplify your stock management by promptly recognizing low stock items through highlighted red color.</p>
<!-- END OF APP HERO -->
<img src="assets/screenshots/low-stock-product-alert-v16-gif.gif"
style="width: 75%; height: auto; position: absolute; margin-left: auto; margin-right: auto; top: 45%; left: 12%; right: auto;" />
</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 of 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">
The Product Low Stock Alert module helps you to handle product stock in effective way. The product get highlighted when stock for a particular product falls below the defined minimum quantity.
</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: 40px; margin-bottom: 40px">
<img src="assets/misc/check-box.png" class="mr-2" />
<span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">Stock Alert in List & Kanban View</span>
<p style="margin-left: 20px; font-size: 14px;">Product details get highlighted in red color when the product quantity goes below the alert quantity defined.</p>
</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;">Alert Tag in POS</span>
<p style="margin-left: 20px; font-size: 14px;">Display the quantity and alert tag when the products go below the alert quantity defined.</p>
</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">
<h3 class="mt-2"
style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.7rem !important;">
Enable the "Low Stock Alert "button.</h3>
<p
style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1.3rem !important;">
Go to Settings --> Enable "Low Stock Alert" button and enter
Alert Quantity.
</p>
<img src="assets/screenshots/1.png"
class="img-responsive img-thumbnail border" width="100%"
height="auto"/>
</div>
<div class="col-sm-12">
<h3 class="mt-3"
style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.7rem !important;">
List View</h3>
<p
style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1.3rem !important;">
If the quantity of the product is less than the quantity of
the alert quantity defined in the settings, the list view of
the product will display a red background color.
</p>
<img src="assets/screenshots/3.png"
class="img-responsive img-thumbnail border" width="100%"
height="auto"/>
</div>
<div class="col-sm-12">
<div style="display: block; margin: 30px auto;">
<h3 class="mt-3"
style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.7rem !important;">
Kanban View</h3>
<p
style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1.3rem !important;">
If the quantity of the product is less than the quantity of
the alert quantity defined in the settings, the kanban view
of the product will display a red background color.
</p>
<img src="assets/screenshots/2.png"
class="img-responsive img-thumbnail border" width="100%"
height="auto"/>
</div>
<div class="col-sm-12">
<div style="display: block; margin: 30px auto;">
<h2 class="mt-3"
style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.7rem !important;">
Point of Sale</h2>
<p
style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1.3rem !important;">
If the quantity of the product is less than the quantity of
the alert quantity defined in the settings, the pos session
of the product will display an alert tag with quantity.
</p>
<img src="assets/screenshots/5.png"
class="img-responsive img-thumbnail border" width="100%"
height="auto"/>
</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-lg-12 d-flex flex-column justify-content-center"
style="text-align: center; padding: 2.5rem 1rem !important;">
<hr
style="border: 3px solid #714B67 !important; background-color: #714B67 !important; width: 80px !important; margin-bottom: 2rem !important;"/>
<div id="demo1" class="row carousel slide" data-ride="carousel">
<!-- The slideshow -->
<div class="carousel-inner">
<div class="carousel-item active"
style="min-height:0px">
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
style="float:left">
<a href="https://apps.odoo.com/apps/modules/16.0/auto_database_backup/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-top-left-radius:10px; border-top-right-radius:10px"
src="./assets/modules/1.gif">
</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/export_stockinfo_xls/#"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-top-left-radius:10px; border-top-right-radius:10px"
src="./assets/modules/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/hr_zk_attendance/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-top-left-radius:10px; border-top-right-radius:10px"
src="./assets/modules/3.png">
</div>
</a>
</div>
</div>
<div class="carousel-item" style="min-height:0px">
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
style="float:left">
<a href="https://apps.odoo.com/apps/modules/16.0/product_barcode/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-top-left-radius:10px; border-top-right-radius:10px"
src="./assets/modules/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/inventory_stock_dashboard_odoo/#"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-top-left-radius:10px; border-top-right-radius:10px"
src="./assets/modules/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/customer_product_qrcode/#"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-top-left-radius:10px; border-top-right-radius:10px"
src="./assets/modules/6.png">
</div>
</a>
</div>
</div>
</div>
<!-- Left and right controls -->
<a class="carousel-control-prev" href="#demo1"
data-slide="prev"
style="left:-25px;width: 35px;color: #000;">
<span class="carousel-control-prev-icon"><i
class="fa fa-chevron-left"
style="font-size:24px"></i></span> </a>
<a class="carousel-control-next" href="#demo1"
data-slide="next"
style="right:-25px;width: 35px;color: #000;">
<span class="carousel-control-next-icon"><i
class="fa fa-chevron-right"
style="font-size:24px"></i></span>
</a>
</div>
</div>
</div>
<!-- END OF 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 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 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"
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"
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>
</div></div>
<!-- END OF SUPPORT -->

7
low_stocks_product_alert/static/src/css/template_color.css

@ -0,0 +1,7 @@
.d-color {
background-color: red !important;
}
tr.o_data_row.text-danger.o_row_draggable {
background-color: rgba(253, 198, 198, 0.39);
}

18
low_stocks_product_alert/static/src/xml/product_item_template.xml

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- This is a template extending the 'point_of_sale.ProductItem' template. -->
<t t-name="low_product_stock" t-inherit="point_of_sale.ProductItem" t-inherit-mode="extension" owl="1">
<xpath expr="//div[hasclass('product-img')]" position="inside">
<t t-if="props.product.alert_tag">
<span class="alert_tag position-absolute top-0 start-0 translate-middle"
style="background-color: #7f82ac; padding: 2px 5px; border-radius: 2px; position: absolute; left: 0; top: 0;">
<i class="fa fa-warning text-danger" style="color: red;"></i>
<t t-esc="props.product.alert_tag"/>
</span>
</t>
</xpath>
</t>
</odoo>

14
low_stocks_product_alert/views/product_product_views.xml

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!--Inherit product.product view form to add field-->
<record id="product_normal_form_view" model="ir.ui.view">
<field name="name">product.product.view.form.inherit.low.stocks.product.alert</field>
<field name="model">product.product</field>
<field name="inherit_id" ref="product.product_normal_form_view" />
<field name="arch" type="xml">
<field name="pos_categ_id" position="after">
<field name="alert_tag" />
</field>
</field>
</record>
</odoo>

41
low_stocks_product_alert/views/product_template_views.xml

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!--Inherit product.template.tree.view to add field and attribute-->
<record id="product_template_tree_view" model="ir.ui.view">
<field name="name">
product.template.view.tree.inherit.low.stocks.product.alert
</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="product.product_template_tree_view"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='qty_available']" position="after">
<field name="alert_state"/>
</xpath>
<tree position="attributes">
<attribute name="decoration-danger">alert_state == True
</attribute>
</tree>
</field>
</record>
<!--Inherit product.template.kanban.view to add fields and attributes-->
<record id="product_template_kanban_view" model="ir.ui.view">
<field name="name">
product.template.view.kanban.inherit.low.stocks.product.alert
</field>
<field name="inherit_id" ref="product.product_template_kanban_view"/>
<field name="model">product.template</field>
<field name="arch" type="xml">
<xpath expr="//kanban" position="inside">
<field name="alert_state"/>
<field name="color_field"/>
</xpath>
<xpath expr="//div[hasclass('oe_kanban_card')]"
position="attributes">
<attribute name="t-attf-style">
background-color:#{record.color_field.raw_value}
!important;
</attribute>
</xpath>
</field>
</record>
</odoo>

33
low_stocks_product_alert/views/res_config_settings_views.xml

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!--Inherited the res.config setting to add the fields-->
<record id="res_config_settings_view_form" model="ir.ui.view">
<field name="name">
res.config.settings.view.form.inherit.low.stocks.product.alert
</field>
<field name="model">res.config.settings</field>
<field name="inherit_id" ref="stock.res_config_settings_view_form"/>
<field name="arch" type="xml">
<xpath expr="//div[@id='product_attributes']" position="after">
<div class="col-12 col-lg-6 o_setting_box"
id="low_stock_setting">
<div class="o_setting_left_pane">
<field name="is_low_stock_alert"/>
</div>
<div class="o_setting_right_pane">
<span class="o_form_label">Low Stock Alert</span>
<div class="text-muted">Quantity for Low Stock Alert
</div>
<div class="row mt-16"
attrs="{'invisible': [('is_low_stock_alert', '=', False)]}">
<label for="min_low_stock_alert"
class="col-lg-4 o_light_label"/>
<field name="min_low_stock_alert"
class="oe_inline"/>
</div>
</div>
</div>
</xpath>
</field>
</record>
</odoo>
Loading…
Cancel
Save