Browse Source

Sep 28 : [ADD] Initial Commit 'product_detail_search'

pull/284/head
RisvanaCybro 2 years ago
parent
commit
6fc48b6ac7
  1. 46
      product_detail_search/README.rst
  2. 22
      product_detail_search/__init__.py
  3. 67
      product_detail_search/__manifest__.py
  4. 6
      product_detail_search/doc/RELEASE_NOTES.md
  5. 22
      product_detail_search/models/__init__.py
  6. 54
      product_detail_search/models/product_template.py
  7. BIN
      product_detail_search/static/description/assets/icons/check.png
  8. BIN
      product_detail_search/static/description/assets/icons/chevron.png
  9. BIN
      product_detail_search/static/description/assets/icons/cogs.png
  10. BIN
      product_detail_search/static/description/assets/icons/consultation.png
  11. BIN
      product_detail_search/static/description/assets/icons/ecom-black.png
  12. BIN
      product_detail_search/static/description/assets/icons/education-black.png
  13. BIN
      product_detail_search/static/description/assets/icons/hotel-black.png
  14. BIN
      product_detail_search/static/description/assets/icons/license.png
  15. BIN
      product_detail_search/static/description/assets/icons/lifebuoy.png
  16. BIN
      product_detail_search/static/description/assets/icons/manufacturing-black.png
  17. BIN
      product_detail_search/static/description/assets/icons/pos-black.png
  18. BIN
      product_detail_search/static/description/assets/icons/puzzle.png
  19. BIN
      product_detail_search/static/description/assets/icons/restaurant-black.png
  20. BIN
      product_detail_search/static/description/assets/icons/service-black.png
  21. BIN
      product_detail_search/static/description/assets/icons/trading-black.png
  22. BIN
      product_detail_search/static/description/assets/icons/training.png
  23. BIN
      product_detail_search/static/description/assets/icons/update.png
  24. BIN
      product_detail_search/static/description/assets/icons/user.png
  25. BIN
      product_detail_search/static/description/assets/icons/wrench.png
  26. BIN
      product_detail_search/static/description/assets/misc/categories.png
  27. BIN
      product_detail_search/static/description/assets/misc/check-box.png
  28. BIN
      product_detail_search/static/description/assets/misc/compass.png
  29. BIN
      product_detail_search/static/description/assets/misc/corporate.png
  30. BIN
      product_detail_search/static/description/assets/misc/customer-support.png
  31. BIN
      product_detail_search/static/description/assets/misc/cybrosys-logo.png
  32. BIN
      product_detail_search/static/description/assets/misc/features.png
  33. BIN
      product_detail_search/static/description/assets/misc/logo.png
  34. BIN
      product_detail_search/static/description/assets/misc/pictures.png
  35. BIN
      product_detail_search/static/description/assets/misc/pie-chart.png
  36. BIN
      product_detail_search/static/description/assets/misc/right-arrow.png
  37. BIN
      product_detail_search/static/description/assets/misc/star.png
  38. BIN
      product_detail_search/static/description/assets/misc/support.png
  39. BIN
      product_detail_search/static/description/assets/misc/whatsapp.png
  40. BIN
      product_detail_search/static/description/assets/modules/1.png
  41. BIN
      product_detail_search/static/description/assets/modules/2.png
  42. BIN
      product_detail_search/static/description/assets/modules/3.png
  43. BIN
      product_detail_search/static/description/assets/modules/4.png
  44. BIN
      product_detail_search/static/description/assets/modules/5.png
  45. BIN
      product_detail_search/static/description/assets/modules/6.png
  46. BIN
      product_detail_search/static/description/assets/screenshots/Scan_product_pos.png
  47. BIN
      product_detail_search/static/description/assets/screenshots/cybrosys-logo.png
  48. BIN
      product_detail_search/static/description/assets/screenshots/find_product_pos.png
  49. BIN
      product_detail_search/static/description/assets/screenshots/hero.gif
  50. BIN
      product_detail_search/static/description/assets/screenshots/product_details.png
  51. BIN
      product_detail_search/static/description/assets/screenshots/product_details_inventory.png
  52. BIN
      product_detail_search/static/description/assets/screenshots/product_find_inventory.png
  53. BIN
      product_detail_search/static/description/banner.png
  54. BIN
      product_detail_search/static/description/icon.png
  55. 682
      product_detail_search/static/description/index.html
  56. 86
      product_detail_search/static/src/css/barcode.css
  57. 65
      product_detail_search/static/src/css/pos.css
  58. 67
      product_detail_search/static/src/js/dashboard.js
  59. 42
      product_detail_search/static/src/js/find_product.js
  60. 18
      product_detail_search/static/src/js/find_product_button.js
  61. 23
      product_detail_search/static/src/js/product_details.js
  62. 10
      product_detail_search/static/src/xml/chrome_templates.xml
  63. 132
      product_detail_search/static/src/xml/dashboard_templates.xml
  64. 10
      product_detail_search/static/src/xml/find_product_button_templates.xml
  65. 19
      product_detail_search/static/src/xml/find_product_screen_templates.xml
  66. 114
      product_detail_search/static/src/xml/product_details_templates.xml
  67. 15
      product_detail_search/views/stock_views.xml

46
product_detail_search/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
Find Products in Pos and Stock using Barcode
============================================
Find the product using barcode in the pos and inventory
Configuration
=============
No additional configuration required
Company
-------
* `Cybrosys Techno Solutions <https://cybrosys.com/>`__
License
-------
General Public License, Version 3 (LGPL v3).
(https://www.gnu.org/licenses/lgpl-3.0-standalone.html)
Credits
-------
Developer: (V16) Gokul P I , 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>`__

22
product_detail_search/__init__.py

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

67
product_detail_search/__manifest__.py

@ -0,0 +1,67 @@
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Gokul P I (odoo@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': 'Find Products in Pos and Stock using Barcode',
'version': '16.0.1.0.0',
'category': 'Point of Sale',
'summary': 'Find Products in Pos and Stock using Barcode utilizes barcode'
' scanning to quickly identify and track items. Each product'
' is assigned a unique barcode,',
'description': 'Find Products in Pos and Stock using Barcode in the POS'
' and inventory modules brings numerous benefits to '
'retailers.It enhances operational efficiency, reduces '
'manual errors, improves customer service, and provides '
'valuable insights for better inventory management and '
'business decision-making.',
'author': 'Cybrosys Techno Solutions',
'company': 'Cybrosys Techno Solutions',
'maintainer': 'Cybrosys Techno Solutions',
'website': "https://www.cybrosys.com",
'depends': ['point_of_sale', 'stock'],
'data': [
'views/stock_views.xml'
],
'images': [
'static/description/banner.png',
],
'assets': {
'point_of_sale.assets': [
'product_detail_search/static/src/css/pos.css',
'product_detail_search/static/src/js/find_product_button.js',
'product_detail_search/static/src/js/find_product.js',
'product_detail_search/static/src/js/product_details.js',
'product_detail_search/static/src/xml/find_product_button_templates.xml',
'product_detail_search/static/src/xml/find_product_screen_templates.xml',
'product_detail_search/static/src/xml/product_details_templates.xml',
'product_detail_search/static/src/xml/chrome_templates.xml',
],
'web.assets_backend': [
'product_detail_search/static/src/css/barcode.css',
'product_detail_search/static/src/js/dashboard.js',
'product_detail_search/static/src/xml/dashboard_templates.xml',
],
},
'license': 'LGPL-3',
'installable': True,
'application': True,
'auto_install': False,
}

6
product_detail_search/doc/RELEASE_NOTES.md

@ -0,0 +1,6 @@
## Module <product_detail_search>
#### 20.09.2023
#### Version 16.0.1.0.0
#### ADD
- Initial commit for Find Products in Pos and Stock using Barcode

22
product_detail_search/models/__init__.py

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

54
product_detail_search/models/product_template.py

@ -0,0 +1,54 @@
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Gokul P I (odoo@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 ProductTemplate(models.Model):
"""Inheriting The product template for adding the product_detail_search
method"""
_inherit = 'product.template'
def product_detail_search(self, barcode):
"""Find the details for the product When the barcode Scan is
Detected"""
product = self.env['product.product'].search(
[('barcode', '=', barcode)])
if product:
product_details = product.read()
specification = [color.strip() for color in
product_details[0]['display_name'].split("(")[
-1].split(")")[0].split(",")]
symbol = self.env['res.currency'].browse(
int(product_details[0]['currency_id'][0]))
extra_details = {'symbol': str(symbol.symbol)}
if product_details[0]['taxes_id']:
extra_details.update({'tax_amount': str(
self.env['account.tax'].browse(
int(product_details[0]['taxes_id'][0])).name)})
else:
extra_details.update({'tax_amount': 'No tax',
'specification': specification})
product_details[0].update(extra_details)
return product_details
else:
product_details = False
return product_details

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 310 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 576 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 733 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 911 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 673 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 878 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 653 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 905 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 839 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 427 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 627 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 988 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 589 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 967 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 KiB

BIN
product_detail_search/static/description/assets/screenshots/Scan_product_pos.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

BIN
product_detail_search/static/description/assets/screenshots/cybrosys-logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

BIN
product_detail_search/static/description/assets/screenshots/find_product_pos.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 KiB

BIN
product_detail_search/static/description/assets/screenshots/product_details.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 181 KiB

BIN
product_detail_search/static/description/assets/screenshots/product_details_inventory.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 KiB

BIN
product_detail_search/static/description/assets/screenshots/product_find_inventory.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

BIN
product_detail_search/static/description/banner.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

BIN
product_detail_search/static/description/icon.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

682
product_detail_search/static/description/index.html

@ -0,0 +1,682 @@
<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
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 -->
<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;">
Find Products in Pos and Stock using Barcode</h1>
<p style="color:#FFFFFF; padding: 8px 15px; text-align: center; font-size: 24px;">
Find Products in Pos and Stock Using Barcode is a
Solution that Revolutionizes Product Identification and
Inventory Management in Retail Settings</p>
<img src="assets/screenshots/hero.gif" class="img-responsive"
style="width: 100%; margin-left: -13px;"/>
<!-- END OF APP HERO -->
</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">
Find Products in Pos and Stock using Barcode App for Odoo 16 is a
powerful tool designed to streamline and simplify the process of
retrieving product information by scanning barcodes. By harnessing
the power of barcode scanning technology, this feature enables
businesses to streamline operations and enhance efficiency. In the POS
module, the Find Products in POS and Stock using Barcode simplifies
the checkout experience for both cashiers and customers. Instead of
manually searching for products or entering item details, cashiers
can quickly scan the barcodes, which automatically add the products
to the transaction, calculate the total cost, and generate a receipt.
</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" style="margin-bottom: auto"
class="mr-2"/>
<span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">Efficient Product Identification: A barcode-based Find Products in Pos and Stock using Barcode in the Point of Sale (POS) and inventory module offers a quick and accurate way to identify products. By scanning the barcode, the system instantly retrieves the product information, eliminating the need for manual searching or data entry. </span>
</div>
<div class="d-flex align-items-center"
style="margin-top: 30px; margin-bottom: 30px">
<img src="assets/misc/check-box.png" style="margin-bottom: auto"
class="mr-2"/>
<span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">Reduced Training Time: Barcode-based Find Products in Pos and Stock using Barcode simplify the training process for new employees. Instead of memorizing product codes or searching through a complex inventory system, they can quickly learn to use the barcode scanner.</span>
</div>
<div class="d-flex align-items-center"
style="margin-top: 30px; margin-bottom: 30px">
<img src="assets/misc/check-box.png" style="margin-bottom: auto"
class="mr-2"/>
<span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">Compliance and Regulatory Requirements: Barcode-based systems can assist businesses in meeting compliance and regulatory requirements. For instance, in industries such as healthcare or pharmaceuticals, barcodes can be used to comply with track-and-trace regulations, ensuring the proper identification and tracing of products throughout the supply chain.</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" style="margin-bottom: auto"
class="mr-2"/>
<span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">Enhanced Product Traceability: With a barcode-based system, each product can be uniquely identified and tracked throughout its lifecycle. This enables businesses to monitor product movement, trace batches or lots, and facilitate recalls or warranty processes if necessary. It enhances transparency, quality control, and customer safety.</span>
</div>
<div class="d-flex align-items-center"
style="margin-top: 30px; margin-bottom: 30px">
<img src="assets/misc/check-box.png" style="margin-bottom: auto"
class="mr-2"/>
<span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">Increased Operational Efficiency: By leveraging barcode scanning technology in the POS and inventory module, businesses can achieve higher operational efficiency. Employees spend less time manually searching for products, reconciling inventory, or correcting errors. This frees up time for more critical tasks, improves productivity, and contributes to a smoother overall workflow.</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;">
Find Product Details in the Inventory
</h3>
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">
Goto the inventory and there we can see the find product menu.
click the menu and scan the barcode into that text field
<div>
<img src="assets/screenshots/product_find_inventory.png"
class="img-thumbnail">
<p>
When you scan the product then you can see the
corresponding
product details below
</p>
<img src="assets/screenshots/product_details_inventory.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;">
Find Product Details in the POS
</h3>
<p>
In Pos We can see a Find product button in the top
</p>
<img src="assets/screenshots/find_product_pos.png"
class="img-thumbnail">
<p>
After you can see a window to scan your product
</p>
<img src="assets/screenshots/Scan_product_pos.png"
class="img-thumbnail">
<p>
After you can see a corresponding product details there
</p>
<img src="assets/screenshots/product_details.png"
class="img-thumbnail">
</div>
</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/hide_product_pos_receipt/"
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/inventory_barcode_scanning/"
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/product_barcode/"
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/customer_product_qrcode/"
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/product_management_app/"
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/multiple_product_selection/"
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 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 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
product_detail_search/static/src/css/barcode.css

@ -0,0 +1,86 @@
.barcode_inventory{
justify-content:center;
}
.barcode_inventory header h2{
width: 50%;
text-align:right;
padding-right:27px;
float: left;
}
.barcode_inventory header #barcode{
float: left;
width: 40%;
}
.barcode_screen{
margin-top: 80px;
}
.barcode_screen h1{
margin: 29px 0px;
text-align: center;
}
.barcode_scan{
display: flex;
justify-content: left;
margin-top: 31px;
}
.container_product_info{
align-items: center;
display: flex;
width: 100%;
justify-content: center;
}
.category-img{
margin-right:21px;
background-color: #f7f7f7;
height: 377px;
display: flex;
}
.category-img img{
width:300px;
height:300px;
object-fit: cover;
}
.
.clientlist-screen h1 {
text-align: center;
}
.clientlist-screen img {
display: block;
margin: 0 auto;
max-width: 300px;
height: auto;
margin-bottom: 20px;
}
.clientlist-screen table {
width: 100%;
border-collapse: collapse;
}
.clientlist-screen td.label {
font-weight: bold;
width: 200px;
padding: 10px;
vertical-align: top;
}
.clientlist-screen td.value {
padding: 10px;
vertical-align: top;
max-width: 300px;
}
@media (max-width: 600px) {
/* Responsive styles */
.clientlist-screen td.label {
width: 100%;
text-align: left;
}
.clientlist-screen td.value {
width: 100%;
text-align: left;
}
}

65
product_detail_search/static/src/css/pos.css

@ -0,0 +1,65 @@
.form_scan_product{
text-align: center;
margin-top:80px;
}
.form_scan_product h2
{
font-size: 28px;
}
.form_scan_product h4{
font-size: 18px;
}
.container_product_info{
align-items: center;
display: flex;
width: 100%;
justify-content: center;
}
.category-img{
margin-right:21px;
background-color: #f7f7f7;
height: 377px;
display: flex;
}
.category-img img{
width:300px;
height:300px;
object-fit: cover;
}
.
.clientlist-screen h1 {
text-align: center;
}
.clientlist-screen img {
display: block;
margin: 0 auto;
max-width: 300px;
height: auto;
margin-bottom: 20px;
}
.clientlist-screen table {
width: 100%;
border-collapse: collapse;
}
.clientlist-screen td.label {
font-weight: bold;
width: 200px;
padding: 10px;
vertical-align: top;
}
.clientlist-screen td.value {
padding: 10px;
vertical-align: top;
max-width: 300px;
}
@media (max-width: 600px) {
/* Responsive styles */
.clientlist-screen td.label {
width: 100%;
text-align: left;
}
.clientlist-screen td.value {
width: 100%;
text-align: left;
}
}

67
product_detail_search/static/src/js/dashboard.js

@ -0,0 +1,67 @@
/** @odoo-module **/
var AbstractAction = require('web.AbstractAction');
var core = require('web.core');
var rpc = require('web.rpc');
var BarcodeScanner = require("@web/webclient/barcode/barcode_scanner");
//extending abstract actions for the dashboard
var product_detail_search_barcode_dashboard = AbstractAction.extend({
template: 'CustomDashBoardFindProduct',
events: {
'keypress': '_onKeypress',
'change': '_onChange'
},
//set up the dashboard template
init: function(parent, context) {
var self = this;
this._super(parent, context);
this.dashboards_templates = ['product_detail_search_template'];
},
//For getting the corresponding barcode of the product
//when detect barcode scan
_onKeypress: function(data) {
this.typed_into = true;
},
//For detect the barcode scan after the keypress event and getting the
//corresponding product details from the backend
_onChange: function(data) {
var self=this;
var barcode_value = this.$("#" + data.target.id).val();
if (this.typed_into) {
var def1 = self._rpc({
model: 'product.template',
method: 'product_detail_search',
args: [[], barcode_value],
}).then(function(result) {
self.barcode_value = barcode_value;
if (result==false) {
self.product_details=false
}
else {
self.product_details = result
}
self.render_dashboards();
});
this.typed_into = false;
}
},
//Used to call the render_dashboards when the start function called
start: function() {
var self = this;
this.set("title", 'Dashboard');
return this._super().then(function() {
self.render_dashboards();
});
},
//Used to render the dashboard
render_dashboards: function() {
var self = this;
_.each(this.dashboards_templates, function(template) {
self.$('.o_pj_dashboard').html(core.qweb.render(template, {
widget: self
}));
});
},
});
core.action_registry.add('product_detail_search_barcode_main_menu', product_detail_search_barcode_dashboard);
return product_detail_search_barcode_dashboard;

42
product_detail_search/static/src/js/find_product.js

@ -0,0 +1,42 @@
/** @odoo-module **/
const PosComponent = require('point_of_sale.PosComponent');
const Registries = require('point_of_sale.Registries');
var rpc = require('web.rpc');
const { useBarcodeReader } = require('point_of_sale.custom_hooks');
class FindProductScreen extends PosComponent {
setup(){
super.setup();
useBarcodeReader({
product: this._barcodeProductAction
});
}
//Barcode scan detect function
async _barcodeProductAction(code) {
var self = this;
rpc.query({
model: 'product.template',
method: 'product_detail_search',
args: [[], code.base_code],
}).then(function(result) {
if (result==false) {
self.showScreen('ProductDetails', {
'product_details' : false,
});
}
else {
self.product_details = result
self.showScreen('ProductDetails', {
'product_details' : self.product_details,
});
}
});
}
//Returning the Product Screen
back() {
this.showScreen('ProductScreen');
}
};
FindProductScreen.template = 'FindProductScreen';
Registries.Component.add(FindProductScreen);
return FindProductScreen;

18
product_detail_search/static/src/js/find_product_button.js

@ -0,0 +1,18 @@
/** @odoo-module **/
const PosComponent = require('point_of_sale.PosComponent');
const { useListener } = require("@web/core/utils/hooks");
const Registries = require('point_of_sale.Registries');
class FindProductButton extends PosComponent {
setup() {
super.setup();
useListener('click', this.onClick);
}
//To see the Find Product Screen
async onClick() {
this.showScreen('FindProductScreen');
}
}
FindProductButton.template = 'FindProductButton';
Registries.Component.add(FindProductButton);
return FindProductButton;

23
product_detail_search/static/src/js/product_details.js

@ -0,0 +1,23 @@
/** @odoo-module **/
const PosComponent = require('point_of_sale.PosComponent');
const Registries = require('point_of_sale.Registries');
class ProductDetails extends PosComponent {
setup(){
super.setup();
if (this.props.product_details==false){
this.product_details=false
}
else
{
this.product_details = this.props.product_details;
}
}
//To see the Find product Screen
back() {
this.showScreen('FindProductScreen');
}
};
ProductDetails.template = 'ProductDetails';
Registries.Component.add(ProductDetails);
return ProductDetails;

10
product_detail_search/static/src/xml/chrome_templates.xml

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--For adding the Find product button in the top of the pos session-->
<templates id="template" xml:space="preserve">
<t t-name="FindProductChrome" t-inherit="point_of_sale.Chrome"
t-inherit-mode="extension" owl="1">
<xpath expr="//TicketButton" position="after">
<FindProductButton/>
</xpath>
</t>
</templates>

132
product_detail_search/static/src/xml/dashboard_templates.xml

@ -0,0 +1,132 @@
<?xml version="1.0" encoding="utf-8" ?>
<template>
<!--Template for Find Product in the inventory -->
<t t-name="CustomDashBoardFindProduct">
<div class="oh_dashboards container"
style="margin-top: 20px;">
<div style="display:flex;"
class="container-fluid o_pj_dashboard barcode_inventory">
</div>
</div>
</t>
<t t-name="product_detail_search_template">
<header>
<div class="barcode_scan">
<h2>Scan Your Barcode</h2>
<input type="text" id="barcode" name="barcode"
placeholder="Please Scan your barcode"/>
</div>
<t t-if="widget.barcode_value">
<t t-if="widget.product_details==false">
<h1 style="margin:100px">No Product Found</h1>
</t>
<t t-else="">
<div class="clientlist-screen screen">
<div class="screen-content barcode_screen">
<h1>Product Information</h1>
<div class="container_product_info">
<div class="category-img">
<img style="width:300px;height:300px"
t-attf-src="/web/image?model=product.product&amp;field=image_1920&amp;id=#{widget.product_details[0].id}"/>
</div>
<div class="container-fluid" style="
display: flex;
justify-content: center;">
<table style="margin: 0 auto;
table-layout: fixed;
width: auto;font-size: 14px;">
<tr>
<td class="label">Product Name:
</td>
<td class="value"
t-esc="widget.product_details[0].name"/>
</tr>
<tr>
<td class="label">Product
Specification:
</td>
<td class="value"
t-esc="widget.product_details[0].specification"/>
</tr>
<tr>
<td class="label">Product Type:
</td>
<td class="value"
t-esc="widget.product_details[0].detailed_type"/>
</tr>
<t t-if="widget.product_details[0].taxes_id">
<tr>
<td class="label">Product Tax:
</td>
<td class="value"
t-esc="widget.product_details[0].tax_amount"/>
</tr>
</t>
<tr>
<td class="label">Barcode:</td>
<td class="value"
t-esc="widget.product_details[0].barcode"/>
</tr>
<tr>
<td class="label">Code:</td>
<t t-if="widget.product_details[0].default_code">
<td class="value"
t-esc="widget.product_details[0].default_code"/>
</t>
<t t-else="">
<td class="value">No code</td>
</t>
</tr>
<tr>
<td class="label">Product
Category:
</td>
<td class="value"
t-esc="widget.product_details[0].categ_id[1]"/>
</tr>
<tr>
<td class="label">Available
Stock:
</td>
<td class="value"
t-esc="widget.product_details[0].qty_available"/>
</tr>
<tr>
<td class="label">Sales Price:</td>
<td>
<table>
<tr>
<td class="value"
style="width: 10%;
max-width: 0px;"
t-esc="widget.product_details[0].symbol">
</td>
<td class="value"
style="width: 95%;
padding: 10px 0px;"
t-esc="widget.product_details[0].list_price"/>
</tr>
</table>
</td>
</tr>
<tr>
<td class="label">Company:</td>
<t t-if="widget.product_details[0].company_id==false">
<td class="value">No company
</td>
</t>
<t t-else="">
<td class="value"
t-esc="widget.product_details[0].company_id[1]"/>
</t>
</tr>
</table>
</div>
</div>
</div>
</div>
</t>
</t>
</header>
</t>
</template>

10
product_detail_search/static/src/xml/find_product_button_templates.xml

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--Template for find product in the top of pos-->
<templates id="template" xml:space="preserve">
<t t-name="FindProductButton" owl="1">
<span class="cash-move-button">
<i class="fa fa-product-hunt"/>
<span>Find Product</span>
</span>
</t>
</templates>

19
product_detail_search/static/src/xml/find_product_screen_templates.xml

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--Template for find product in the pos-->
<templates id="template" xml:space="preserve">
<t t-name="FindProductScreen" owl="1">
<div class="clientlist-screen screen">
<div class="screen-content">
<div class="top-content">
<div class="button back" t-on-click="back">
Back
</div>
</div>
<form class="form_scan_product">
<h2>Scan Your Product</h2>
<h4>Please Scan a Product To get the details</h4>
</form>
</div>
</div>
</t>
</templates>

114
product_detail_search/static/src/xml/product_details_templates.xml

@ -0,0 +1,114 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--Template For getting the product details-->
<templates id="template" xml:space="preserve">
<t t-name="ProductDetails" owl="1">
<div class="clientlist-screen screen">
<div class="screen-content">
<div class="top-content">
<div class="button back" t-on-click="back">
Back
</div>
</div>
<h1 style="text-align: center;
font-size: 28px;
margin-bottom: 31px;
margin-top: 31px;">Product Information</h1>
<t t-if="product_details==false">
<h2 style="margin-left: 600px;">No products Found</h2>
</t>
<t t-else="">
<div class="container_product_info">
<div class="category-img">
<img t-attf-src="/web/image?model=product.product&amp;field=image_1920&amp;id=#{product_details[0].id}"/>
</div>
<div class="container-fluid pt-3">
<table style="margin: 0 auto;
table-layout: fixed;width: auto;font-size:16px;">
<tr>
<td class="label">Product Name:</td>
<td class="value"
t-esc="product_details[0].name"/>
</tr>
<tr>
<td class="label">Product Specification:
</td>
<td class="value"
t-esc="product_details[0].specification"/>
</tr>
<tr>
<td class="label">Product Type:
</td>
<td class="value"
t-esc="product_details[0].detailed_type"/>
</tr>
<t t-if="product_details[0].taxes_id">
<tr>
<td class="label">Product Tax:
</td>
<td class="value"
t-esc="product_details[0].tax_amount"/>
</tr>
</t>
<tr>
<td class="label">Barcode:</td>
<td class="value"
t-esc="product_details[0].barcode"/>
</tr>
<tr>
<td class="label">Code:</td>
<t t-if="product_details[0].default_code">
<td class="value"
t-esc="product_details[0].default_code"/>
</t>
<t t-else="">
<td class="value">No code</td>
</t>
</tr>
<tr>
<td class="label">Product Category:</td>
<td class="value"
t-esc="product_details[0].categ_id[1]"/>
</tr>
<tr>
<td class="label">Available Stock:</td>
<td class="value"
t-esc="product_details[0].qty_available"/>
</tr>
<tr>
<td class="label">Sales Price:</td>
<td>
<table>
<tr>
<td class="value" style="width: 10%;
max-width: 0px;"
t-esc="product_details[0].symbol">
</td>
<td class="value" style="width: 95%;
padding: 10px 0px;"
t-esc="product_details[0].list_price"/>
</tr>
</table>
</td>
</tr>
<tr>
<td class="label">Company:</td>
<t t-if="product_details[0].company_id==false">
<td class="value">
<td class="value"
style="padding-left: 0px;">No company</td>
</td>
</t>
<t t-else="">
<td class="value"
t-esc="product_details[0].company_id[1]"/>
</t>
</tr>
</table>
</div>
</div>
</t>
</div>
</div>
</t>
</templates>

15
product_detail_search/views/stock_views.xml

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<!--Client action for the dashboard -->
<record id="product_detail_search_barcode_action_main_menu"
model="ir.actions.client">
<field name="name">Find Product Barcode</field>
<field name="tag">product_detail_search_barcode_main_menu</field>
</record>
<!-- Menu item for the find product-->
<menuitem
id="product_detail_search_barcode_menu"
name="Find Product"
action="product_detail_search_barcode_action_main_menu"
parent="stock.menu_stock_root"/>
</odoo>
Loading…
Cancel
Save