Browse Source

Jun 12: [ADD] Initial Commit 'barcode_for_work_centers'

pull/320/head
RisvanaCybro 11 months ago
parent
commit
7882f41a85
  1. 48
      barcode_for_work_centers/README.rst
  2. 22
      barcode_for_work_centers/__init__.py
  3. 54
      barcode_for_work_centers/__manifest__.py
  4. 10
      barcode_for_work_centers/data/barcode_for_work_centers.xml
  5. 6
      barcode_for_work_centers/doc/RELEASE_NOTES.md
  6. 23
      barcode_for_work_centers/models/__init__.py
  7. 37
      barcode_for_work_centers/models/mrp_routing_workcenter.py
  8. 94
      barcode_for_work_centers/models/mrp_workorder.py
  9. BIN
      barcode_for_work_centers/static/description/assets/icons/check.png
  10. BIN
      barcode_for_work_centers/static/description/assets/icons/chevron.png
  11. BIN
      barcode_for_work_centers/static/description/assets/icons/cogs.png
  12. BIN
      barcode_for_work_centers/static/description/assets/icons/consultation.png
  13. BIN
      barcode_for_work_centers/static/description/assets/icons/ecom-black.png
  14. BIN
      barcode_for_work_centers/static/description/assets/icons/education-black.png
  15. BIN
      barcode_for_work_centers/static/description/assets/icons/hotel-black.png
  16. BIN
      barcode_for_work_centers/static/description/assets/icons/license.png
  17. BIN
      barcode_for_work_centers/static/description/assets/icons/lifebuoy.png
  18. BIN
      barcode_for_work_centers/static/description/assets/icons/manufacturing-black.png
  19. BIN
      barcode_for_work_centers/static/description/assets/icons/pos-black.png
  20. BIN
      barcode_for_work_centers/static/description/assets/icons/puzzle.png
  21. BIN
      barcode_for_work_centers/static/description/assets/icons/restaurant-black.png
  22. BIN
      barcode_for_work_centers/static/description/assets/icons/service-black.png
  23. BIN
      barcode_for_work_centers/static/description/assets/icons/trading-black.png
  24. BIN
      barcode_for_work_centers/static/description/assets/icons/training.png
  25. BIN
      barcode_for_work_centers/static/description/assets/icons/update.png
  26. BIN
      barcode_for_work_centers/static/description/assets/icons/user.png
  27. BIN
      barcode_for_work_centers/static/description/assets/icons/wrench.png
  28. BIN
      barcode_for_work_centers/static/description/assets/misc/categories.png
  29. BIN
      barcode_for_work_centers/static/description/assets/misc/check-box.png
  30. BIN
      barcode_for_work_centers/static/description/assets/misc/compass.png
  31. BIN
      barcode_for_work_centers/static/description/assets/misc/corporate.png
  32. BIN
      barcode_for_work_centers/static/description/assets/misc/customer-support.png
  33. BIN
      barcode_for_work_centers/static/description/assets/misc/cybrosys-logo.png
  34. BIN
      barcode_for_work_centers/static/description/assets/misc/features.png
  35. BIN
      barcode_for_work_centers/static/description/assets/misc/logo.png
  36. BIN
      barcode_for_work_centers/static/description/assets/misc/pictures.png
  37. BIN
      barcode_for_work_centers/static/description/assets/misc/pie-chart.png
  38. BIN
      barcode_for_work_centers/static/description/assets/misc/right-arrow.png
  39. BIN
      barcode_for_work_centers/static/description/assets/misc/star.png
  40. BIN
      barcode_for_work_centers/static/description/assets/misc/support.png
  41. BIN
      barcode_for_work_centers/static/description/assets/misc/whatsapp.png
  42. BIN
      barcode_for_work_centers/static/description/assets/modules/1.png
  43. BIN
      barcode_for_work_centers/static/description/assets/modules/2.png
  44. BIN
      barcode_for_work_centers/static/description/assets/modules/3.png
  45. BIN
      barcode_for_work_centers/static/description/assets/modules/4.png
  46. BIN
      barcode_for_work_centers/static/description/assets/modules/5.gif
  47. BIN
      barcode_for_work_centers/static/description/assets/modules/6.png
  48. BIN
      barcode_for_work_centers/static/description/assets/screenshots/1.png
  49. BIN
      barcode_for_work_centers/static/description/assets/screenshots/2.png
  50. BIN
      barcode_for_work_centers/static/description/assets/screenshots/3.png
  51. BIN
      barcode_for_work_centers/static/description/assets/screenshots/4.png
  52. BIN
      barcode_for_work_centers/static/description/assets/screenshots/5.png
  53. BIN
      barcode_for_work_centers/static/description/assets/screenshots/6.png
  54. BIN
      barcode_for_work_centers/static/description/assets/screenshots/7.png
  55. BIN
      barcode_for_work_centers/static/description/assets/screenshots/8.png
  56. BIN
      barcode_for_work_centers/static/description/assets/screenshots/9.png
  57. BIN
      barcode_for_work_centers/static/description/assets/screenshots/hero.gif
  58. BIN
      barcode_for_work_centers/static/description/banner.png
  59. BIN
      barcode_for_work_centers/static/description/icon.png
  60. 588
      barcode_for_work_centers/static/description/index.html
  61. 123
      barcode_for_work_centers/static/src/css/barcode_for_work_centers.scss
  62. 227
      barcode_for_work_centers/static/src/js/barcode_template.js
  63. 72
      barcode_for_work_centers/static/src/xml/barcode_scan_templates.xml
  64. 15
      barcode_for_work_centers/static/src/xml/manufacture_button_templates.xml
  65. 38
      barcode_for_work_centers/views/mrp_routing_workcenter_views.xml

48
barcode_for_work_centers/README.rst

@ -0,0 +1,48 @@
.. image:: https://img.shields.io/badge/licence-OPL--1-red.svg
:target: https://www.odoo.com/documentation/16.0/legal/licenses.html#odoo-apps
:alt: License: OPL-1
Barcode for work centers
========================
Enable the ability to start and stop the work order using barcode scanning.
Configuration
=============
* No additional configurations needed
* Barcode modules are only available in enterprise edition
Company
=======
* `Cybrosys Techno Solutions <https://cybrosys.com/>`__
License
=======
Odoo Proprietary License v1.0 (OPL-1)
(https://www.odoo.com/documentation/16.0/legal/licenses.html#odoo-apps)
Credits
=======
Developer: (V16) Jaseem Sadiq K, 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
barcode_for_work_centers/__init__.py

@ -0,0 +1,22 @@
# -*- coding: utf-8 -*-
###############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Jaseem (odoo@cybrosys.com)
#
# This program is under the terms of the Odoo Proprietary License v1.0 (OPL-1)
# It is forbidden to publish, distribute, sublicense, or sell copies of the
# Software or modified copies of the Software.
#
# THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.
#
###############################################################################
from . import models

54
barcode_for_work_centers/__manifest__.py

@ -0,0 +1,54 @@
# -*- coding: utf-8 -*-
###############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Jaseem (odoo@cybrosys.com)
#
# This program is under the terms of the Odoo Proprietary License v1.0 (OPL-1)
# It is forbidden to publish, distribute, sublicense, or sell copies of the
# Software or modified copies of the Software.
#
# THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.
#
###############################################################################
{
'name': "Barcode for work centers",
'version': '16.0.1.0.0',
'category': 'Manufacturing',
'summary': 'Start and stop the work ordr using barcode',
'description': """This module enables the functionality to initiate and
halt work orders using barcode scanning. It allows users to commence work
orders by scanning barcodes and provides buttons to pause and resume work
order activities.""",
'author': 'Cybrosys Techno Solutions',
'company': 'Cybrosys Techno Solutions',
'maintainer': 'Cybrosys Techno Solutions',
'website': 'https://www.cybrosys.com',
'depends': ["stock_barcode", "stock", "mrp"],
'data': [
"data/barcode_for_work_centers.xml",
"views/mrp_routing_workcenter_views.xml",
],
'assets': {
'web.assets_backend': [
'/barcode_for_work_centers/static/src/js/barcode_template.js',
'/barcode_for_work_centers/static/src/xml/manufacture_button_templates.xml',
'/barcode_for_work_centers/static/src/xml/barcode_scan_templates.xml',
'/barcode_for_work_centers/static/src/css/barcode_for_work_centers.scss',
],
},
'images': ['static/description/banner.jpg'],
'license': 'OPL-1',
'installable': True,
'application': False,
'auto_install': False,
}

10
barcode_for_work_centers/data/barcode_for_work_centers.xml

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- This record is created a client action for creating client action for opening barcode scanning template -->
<record id="barcode_for_work_centers.barcode_for_work_centers_scanning_template"
model="ir.actions.client">
<field name="name">Barcode scanning view</field>
<field name="tag">barcode_for_work_centers_scanning_template</field>
<field name="target">current</field>
</record>
</odoo>

6
barcode_for_work_centers/doc/RELEASE_NOTES.md

@ -0,0 +1,6 @@
## Module <barcode_for_work_centers>
##### 07.02.2024
##### Version 16.0.1.0.0
##### ADD
- Initial commit for Barcode for work centers

23
barcode_for_work_centers/models/__init__.py

@ -0,0 +1,23 @@
# -*- coding: utf-8 -*-
###############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Jaseem (odoo@cybrosys.com)
#
# This program is under the terms of the Odoo Proprietary License v1.0 (OPL-1)
# It is forbidden to publish, distribute, sublicense, or sell copies of the
# Software or modified copies of the Software.
#
# THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.
#
###############################################################################
from . import mrp_routing_workcenter
from . import mrp_workorder

37
barcode_for_work_centers/models/mrp_routing_workcenter.py

@ -0,0 +1,37 @@
# -*- coding: utf-8 -*-
###############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Jaseem (odoo@cybrosys.com)
#
# This program is under the terms of the Odoo Proprietary License v1.0 (OPL-1)
# It is forbidden to publish, distribute, sublicense, or sell copies of the
# Software or modified copies of the Software.
#
# THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.
#
###############################################################################
from odoo import models
class MrpRoutingWorkCenter(models.Model):
"""This class represents an extension of 'mrp.routing.workcenter' to add a
function called 'action_barcode_scanner_template'. This function allows the
user to click on the records of all kanban views of operations in a work
order."""
_inherit = "mrp.routing.workcenter"
def action_barcode_scanner_template(self):
"""This function is used to invoke a client action that calls the
barcode template."""
return {'type': 'ir.actions.client',
'tag': 'barcode_for_work_centers_scanning_template',
'params': {'name': self.name, 'id': self.id}}

94
barcode_for_work_centers/models/mrp_workorder.py

@ -0,0 +1,94 @@
# -*- coding: utf-8 -*-
###############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Jaseem (odoo@cybrosys.com)
#
# This program is under the terms of the Odoo Proprietary License v1.0 (OPL-1)
# It is forbidden to publish, distribute, sublicense, or sell copies of the
# Software or modified copies of the Software.
#
# THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.
#
###############################################################################
from odoo import models
class MrpWorkOrder(models.Model):
"""This class represents the inheriting add the all rpc function for js
such as action_work_order_start_stop,action_puase,action_continue and
action_done"""
_inherit = "mrp.workorder"
def action_work_order_start_stop(self, clicked_record, man_order):
"""This function is used to start and stop the work order after scanning
barcode in barcode template , it returns the message that 'start' or '
stop'."""
record = self.env["mrp.routing.workcenter"].browse(int(clicked_record))
mrp_order = self.env["mrp.production"].search(
[("name", "=", man_order)])
params_for_template = {}
if record.workorder_ids and mrp_order:
for wo in record.workorder_ids:
if wo.production_id.id == mrp_order.id:
if wo.production_state not in ['draft', 'done',
'cancel', ] and \
wo.working_state != "blocked" and wo.state not in \
["done", "cancel", "progress"]:
wo.button_start()
params_for_template.update(
{"pop_up": "start", "duration": wo.duration})
elif wo.state != "done":
wo.button_finish()
params_for_template.update({"pop_up": "end"})
elif wo.state == "done":
params_for_template.update({"pop_up": "already done"})
else:
params_for_template.update({"pop_up": "not match"})
else:
params_for_template.update({"pop_up": "not match"})
return params_for_template
def action_pause(self, clicked_record, man_order):
"""This function is used to perform action pause while clicking the
pause button from barcode scanning template """
record = self.env["mrp.routing.workcenter"].browse(int(clicked_record))
mrp_order = self.env["mrp.production"].search(
[("name", "=", man_order)])
if record.workorder_ids and mrp_order:
for wo in record.workorder_ids:
if wo.production_id.id == mrp_order.id:
wo.button_pending()
return "paused"
def action_continue(self, clicked_record, man_order):
"""This function is used to continue the work order after clicking the
continue button"""
record = self.env["mrp.routing.workcenter"].browse(int(clicked_record))
mrp_order = self.env["mrp.production"].search(
[("name", "=", man_order)])
if record.workorder_ids and mrp_order:
for wo in record.workorder_ids:
if wo.production_id.id == mrp_order.id:
wo.button_start()
return "continue"
def action_done(self, clicked_record, man_order):
"""This function is used to stop the work order after clicking the
done button"""
record = self.env["mrp.routing.workcenter"].browse(int(clicked_record))
mrp_order = self.env["mrp.production"].search(
[("name", "=", man_order)])
if record.workorder_ids and mrp_order:
for wo in record.workorder_ids:
if wo.production_id.id == mrp_order.id:
wo.button_finish()
return "done"

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 310 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 576 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 733 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 911 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 673 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 878 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 653 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 905 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 839 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 427 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 627 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 988 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 589 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 967 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

BIN
barcode_for_work_centers/static/description/assets/modules/5.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 KiB

BIN
barcode_for_work_centers/static/description/assets/screenshots/6.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

BIN
barcode_for_work_centers/static/description/assets/screenshots/7.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

BIN
barcode_for_work_centers/static/description/assets/screenshots/8.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

BIN
barcode_for_work_centers/static/description/assets/screenshots/9.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 KiB

BIN
barcode_for_work_centers/static/description/banner.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

BIN
barcode_for_work_centers/static/description/icon.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

588
barcode_for_work_centers/static/description/index.html

@ -0,0 +1,588 @@
<div style="background-color: #00438B; min-height: 600px; 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: #875A7B; font-size: 14px; font-family: 'Montserrat', sans-serif; font-weight: bold; background-color: white; display: inline-block; padding: 3px 10px; border-radius: 50px;"
class="mr-2">
<i class="fa fa-check mr-1"></i>Enterprise
</div>
</div>
</div>
<!-- END OF TITLE BAR -->
<div class="container">
<div class="row">
<div class="col-sm-12 col-md-12 col-lg-12">
<!-- APP HERO -->
<h1 style="color: #FFFFFF; font-weight: bolder; font-size: 50px; text-align: center; margin-top: 50px;">
Barcode For Work Centers</h1>
<p style="color:#FFFFFF; padding: 8px 15px; text-align: center; font-size: 24px;">
Start And Stop Work Order With Barcode</p>
<!-- END OF APP HERO -->
<img src="assets/screenshots/hero.gif" class="img-responsive"
style="width: 100%; margin-left: auto; margin-right: auto;"/>
</div>
</div>
</div>
</div>
<!-- NAVIGATION SECTION -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px; margin-top: 300px;">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/compass.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Explore This Module</h2>
</div>
<div class="row my-4" style="font-family: 'Montserrat', sans-serif;">
<div class="col-sm-12 col-md-6 my-3">
<a href="#overview">
<div class="d-flex justify-content-between align-items-center"
style="background-color: #f5f5f5; padding: 30px; width: 100%;">
<div>
<span style="color: #714B67; font-size: 24px; font-weight: 500; display: block;">Overview</span>
<span style="color: #714B67; font-size: 16px; font-weight: 400; color:#282F33; display: block;">Learn more about this module</span>
</div>
<img src="assets/misc/right-arrow.png" width="36" height="36"/>
</div>
</a>
</div>
<div class="col-sm-12 col-md-6 my-3">
<a href="#features">
<div class="d-flex justify-content-between align-items-center"
style="background-color: #f5f5f5; padding: 30px; width: 100%;">
<div>
<span style="color: #714B67; font-size: 24px; font-weight: 500; display: block;">Features</span>
<span style="color: #714B67; font-size: 16px; font-weight: 400; color:#282F33; display: block;">View features of this module</span>
</div>
<img src="assets/misc/right-arrow.png" width="36" height="36"/>
</div>
</a>
</div>
<div class="col-sm-12 col-md-6 my-3">
<a href="#screenshots">
<div class="d-flex justify-content-between align-items-center"
style="background-color: #f5f5f5; padding: 30px; width: 100%;">
<div>
<span style="color: #714B67; font-size: 24px; font-weight: 500; display: block;">Screenshots</span>
<span style="color: #714B67; font-size: 16px; font-weight: 400; color:#282F33; display: block;">View screenshots for this module</span>
</div>
<img src="assets/misc/right-arrow.png" width="36" height="36"/>
</div>
</a>
</div>
</div>
<!-- END OF NAVIGATION SECTION -->
<!-- OVERVIEW SECTION -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px;" id="overview">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/pie-chart.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Overview </h2>
</div>
<div class="row"
style="font-family: 'Montserrat', sans-serif; font-weight: 400; font-size: 14px; line-height: 200%;">
<div class="col-sm-12 py-4"> This app help to start and stop work order of
manufacturing order using barcode
</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;">Support in odoo Enterprise</span>
</div>
</div>
</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;">We can use barcode scanning to begin and end work orders.
</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;">
Go to Barcode Module</h3>
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">
Open WORK ORDER <br>
</p>
<img src="assets/screenshots/1.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;">
Here we can see all operations.</h3>
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">
Choose correct operation <br>
</p>
<img src="assets/screenshots/2.png" class="img-thumbnail">
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">
<br>
</p>
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
</h3>
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">
</p>
<img src="assets/screenshots/3.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;">Fill the Bill of materials with the Operations can add the Work Order and operations in the Operations Tab
</h3>
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;"></p>
<img src="assets/screenshots/4.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;"> Create the Manufacture Order and Scan the barcode of the manufacture
</h3>
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;"></p>
<img src="assets/screenshots/5.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;">
Click start stop Button</h3>
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;"></p>
<p style="font-weight: 400; font-family: 'Montserrat',sans-serif; font-size: 14px;">
The work for the corresponding work order will be started.</p>
<img src="assets/screenshots/6.png" class="img-thumbnail">
<br>
<br>
<br>
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
We have the ability to pause and resume the work order.</h3>
<p style="font-weight: 400; font-family: 'Montserrat',sans-serif; font-size: 14px;">
We can stop the work order by either clicking the 'Done' button
or scanning the barcode on the input field.</p>
<img src="assets/screenshots/7.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;">
After Clicking the Done Button can close the Work Order</h3>
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">
Now, the Manufacturing comes done, and we can move to the next step, Also the work order comes completed</p>
<img src="assets/screenshots/8.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Shows the Completed work order in the TO CLOSE state</h3>
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;"></p>
<img src="assets/screenshots/9.png" class="img-thumbnail">
</div>
</div>
</div>
<!-- END OF SCREENSHOTS SECTION -->
<!-- RELATED PRODUCTS -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px;">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/categories.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Related Products </h2>
</div>
<div class="row">
<div class="col-sm-12">
<div id="demo1" class="row carousel slide" data-ride="carousel">
<!-- The slideshow -->
<div class="carousel-inner" style="padding:30px">
<div class="carousel-item" style="min-height:198.656px">
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
style="float:left">
<a href="https://apps.odoo.com/apps/modules/16.0/simple_mrp_order/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-radius:0px"
src="//apps.odoocdn.com/apps/assets/16.0/hide_all_print_button/assets/modules/1.png?6d5ca15">
</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/bom_multiple_product/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-radius:0px"
src="//apps.odoocdn.com/apps/assets/16.0/hide_all_print_button/assets/modules/2.png?6d5ca15">
</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/cw_mrp/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-radius:0px"
src="//apps.odoocdn.com/apps/assets/16.0/hide_all_print_button/assets/modules/3.png?6d5ca15">
</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/manufacturing_reports/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-radius:0px"
src="//apps.odoocdn.com/apps/assets/16.0/hide_all_print_button/assets/modules/4.png?6d5ca15">
</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/mrp_work_order_print/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-radius:0px"
src="//apps.odoocdn.com/apps/assets/16.0/hide_all_print_button/assets/modules/5.png?6d5ca15">
</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/bom_total_cost/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-radius:0px"
src="//apps.odoocdn.com/apps/assets/16.0/hide_all_print_button/assets/modules/6.png?6d5ca15">
</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"/>F
</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 -->

123
barcode_for_work_centers/static/src/css/barcode_for_work_centers.scss

@ -0,0 +1,123 @@
body {
background-color: #714B67;
}
#work_order_timer_id {
color: red;
font-size: 50px;
font-family: "Orbitron", sans-serif;
}
.header-text {
color: black;
font-family: "Abril Fatface";
font-size: 70px;
font-weight: 600;
padding-top: 10px;
}
.button_for_barcode {
display: flex;
margin-left: 72%;
padding-top: 5%;
gap: 5px;
border-radius: 6px;
}
.pause_workOrder {
display: inline-block;
outline: none;
cursor: pointer;
font-weight: 600;
border-radius: 3px;
padding: 12px 24px;
border: 0;
color: #fff;
background: #ff5000;
line-height: 1.15;
font-size: 16px;
:hover {
transition: all 0.1s ease;
box-shadow: 0 0 0 0 #fff, 0 0 0 3px #1de9b6;
}
}
.continue_workOrder {
display: inline-block;
outline: none;
cursor: pointer;
font-weight: 600;
border-radius: 3px;
padding: 12px 24px;
border: 0;
color: #000021;
background: #1de9b6;
line-height: 1.15;
font-size: 16px;
:hover {
transition: all 0.1s ease;
box-shadow: 0 0 0 0 #fff, 0 0 0 3px #1de9b6;
}
}
.done_workOrder {
display: inline-block;
outline: none;
cursor: pointer;
font-weight: 600;
border-radius: 3px;
padding: 12px 24px;
border: 0;
color: #fff;
background: #000a47;
line-height: 1.15;
font-size: 16px;
:hover {
transition: all 0.1s ease;
box-shadow: 0 0 0 0 #fff, 0 0 0 3px #1de9b6;
}
}
.timer-display {
margin-left: 75%;
padding-top: 22px;
padding-left: 70px;
}
.form-control{
width:100%;
border-width: 5px;
border-color: #13120d;
border-radius: 6px;
height: 70;
/* place-content: center; */
color: brown;
font-size: xx-large;
text-align: center;
}
#barcode_scan_button_id{
display: inline-block;
outline: 0;
border: 0;
cursor: pointer;
background: #000000;
color: #FFFFFF;
border-radius: 8px;
padding: 14px 24px 16px;
font-size: 18px;
font-weight: 700;
line-height: 1;
transition: transform 200ms,background 200ms;
:hover{
transform: translateY(-2px);
}
margin-top:3%;
}
.barcode_main_class{
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
margin-top: 17%;
}
@media (max-width: 390px){
.timer-display{
margin-left: -65px;
}
.button_for_barcode{
margin-left:87px;
}
}

227
barcode_for_work_centers/static/src/js/barcode_template.js

@ -0,0 +1,227 @@
/** @odoo-module */
import { registry } from '@web/core/registry';
import { onWillStart, Component } from "@odoo/owl";
const actionRegistry = registry.category("actions");
import { useService } from "@web/core/utils/hooks";
import { useAutofocus } from "@web/core/utils/hooks";
const { useRef } = owl;
import rpc from "web.rpc";
var hours = 0;
var minutes = 0;
var seconds = 0;
var isPaused = true;
/**
* Represents a barcode scanning view component.
*/
class BarcodeScanningView extends Component {
/**
* Initializes the necessary services and references for the application.
* - Sets up action and notification services.
* - Sets up an input reference with autofocus.
* - Initializes references for manual order, pause, continue buttons, and a timer.
*
**/
setup() {
this.action = useService("action");
this.notification = useService("notification");
this.inputRef = useAutofocus();
this.man_order =useRef('autofocus')
this.pause_ref = useRef('pause-ref');
this.continue_ref = useRef('continue-ref')
this.buttons_ref = useRef('buttons-ref');
this.timer = useRef('timer');
super.setup(...arguments);
onWillStart(async () => {
});
}
/**
* Executes the scanning process.
*/
ScanNow() {
var self = this;
var man_order = this.man_order.el.value;
if (!man_order) {
self.notification.add(self.env._t("Scan the barcode on input field"), {
type: "success",
});
} else {
this.clicked_record = this.props.action.params.id;
var clicked_record = this.props.action.params.id;
rpc.query({
model: 'mrp.workorder',
method: 'action_work_order_start_stop',
args: [, clicked_record, man_order],
}).then(function (result) {
var state = result;
if (state["pop_up"] == "start") {
self.buttons_ref.el.classList.remove('d-none');
self.continue_ref.el.classList.add('d-none')
self.notification.add(self.env._t("Work order started"), {
type: "success",
});
self.TimerStart();
} else if (state["pop_up"] == "end") {
self.notification.add(self.env._t("Work order finished"), {
type: "success",
});
self.buttons_ref.el.classList.add('d-none')
self.PauseTimer();
} else if (state["pop_up"] == "already done") {
self.notification.add(self.env._t("It is already in a done state"), {
type: "success",
});
self.continue_ref.el.classList.add('d-none')
} else if (state["pop_up"] == "not match") {
self.pause_ref.el.classList.add('d-none')
self.notification.add(self.env._t("No matching manufacturing order for this barcode"), {
type: "danger",
});
}
});
}
}
/**
* Pauses the work order.
*/
pauseWorkOrder() {
var self = this;
var man_order = this.man_order.el.value;
var clicked_record = this.clicked_record;
rpc.query({
model: 'mrp.workorder',
method: 'action_pause',
args: [, clicked_record, man_order],
}).then(function (result) {
if (result == "paused") {
self.continue_ref.el.classList.remove('d-none');
self.pause_ref.el.classList.add('d-none')
self.notification.add(self.env._t("All work orders are paused"), {
type: "danger",
});
self.PauseTimer();
}
});
}
/**
* Continues the work order.
*/
ContinueWorkOrder() {
var self = this;
var man_order = this.man_order.el.value;
var clicked_record = this.clicked_record;
rpc.query({
model: 'mrp.workorder',
method: 'action_continue',
args: [, clicked_record, man_order],
}).then(function (result) {
if (result == "continue") {
self.pause_ref.el.classList.remove('d-none');
self.continue_ref.el.classList.add('d-none')
self.notification.add(self.env._t("Work order continued"), {
type: "success",
});
self.TimerStart();
}
});
}
/**
* Marks the work order as done.
*/
doneWorkOrder() {
var self = this
var man_order = this.man_order.el.value
var clicked_record = this.clicked_record
rpc.query({
model: 'mrp.workorder',
method: 'action_done',
args: [, clicked_record, man_order],
}).then(function(result) {
if (result == "done") {
self.buttons_ref.el.classList.add('d-none')
self.notification.add(self.env._t("Work order completed"), {
type: "success",
});
self.PauseTimer();
self.ResetTimer();
}
});
}
/**
* Starts the timer.
*/
TimerStart() {
if (isPaused) {
isPaused = false;
this.timer.el.classList.remove('d-none');
this.setInterval = setInterval(displayTimer, 1000);
}
}
/**
* Pauses the timer.
*/
PauseTimer() {
isPaused = true;
clearInterval(this.setInterval);
}
/**
* Resets the timer.
*/
ResetTimer() {
clearInterval(this.setInterval);
seconds = 0;
minutes = 0;
hours = 0;
this.timer.el.classList.add('d-none')
}
static template = "barcode_scanning_view";
}
/**
* Displays the timer.
*/
function displayTimer() {
this.$('.timer-display').empty();
seconds = seconds + 1;
if (seconds == 60) {
minutes = minutes + 1;
seconds = 0;
}
if (minutes == 60) {
hours = hours + 1;
minutes = 0;
}
if (seconds < 10) {
var s = "0" + seconds;
}
if (seconds >= 10) {
var s = seconds;
}
if (minutes < 10) {
var m = "0" + minutes;
}
if (minutes >= 10) {
var m = minutes;
}
if (hours < 10) {
var h = "0" + hours;
}
if (hours >= 10) {
var h = hours;
}
this.$('.timer-display').append(h + ':' + m + ':' + s);
}
/**
* Template for the barcode scanning view.
*/
BarcodeScanningView.template = "barcode_scanning_view";
// Add the barcode scanning view to the action registry
actionRegistry.add('barcode_for_work_centers_scanning_template', BarcodeScanningView);

72
barcode_for_work_centers/static/src/xml/barcode_scan_templates.xml

@ -0,0 +1,72 @@
<?xml version="1.0" encoding="UTF-8" ?>
<template id="barcode_scan_view_template_id">
<t t-name="barcode_scanning_view" owl="1">
<head>
<!-- Link to Google Fonts -->
<link href='https://fonts.googleapis.com/css?family=Lato'/>
<link rel="stylesheet"
href="https://fonts.googleapis.com/css?family=Sofia"/>
<link href='https://fonts.googleapis.com/css?family=Orbitron'
rel='stylesheet' type='text/css'/>
<link rel="stylesheet" type="text/css"
href="https://fonts.googleapis.com/css?family=Abril+Fatface"/>
<meta charset="UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<meta name="viewport"
content="width=device-width, initial-scale=1.0"/>
<!-- Include jQuery library -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"/>
</head>
<body>
<center>
<div class="seven">
<h1>
<span class="header-text"
t-esc="this.props.action.params.name"/>
</h1>
</div>
<div class="container">
<div class="timer-display d-none" t-ref="timer"
id="work_order_timer_id">00:00:00
</div>
</div>
</center>
<!-- Buttons Section -->
<div class="container button_for_barcode d-none"
t-ref="buttons-ref">
<!-- Pause Work Order Button -->
<div t-on-click="pauseWorkOrder" t-ref="pause-ref"
class="btn-info pause_workOrder"
id="button_for_barcode_pause">Pause
</div>
<!-- Continue Work Order Button -->
<button t-on-click="ContinueWorkOrder"
id="button_for_barcode_continue" t-ref="continue-ref"
class="btn-success continue_workOrder">Continue
</button>
<!-- Done Work Order Button -->
<button t-on-click="doneWorkOrder"
class="btn-info done_workOrder">Done
</button>
</div>
<!-- Barcode Scanning Section -->
<div class="barcode_main_class">
<br/>
<center>
<div class="text-box">
<!-- Input Field for Scanning -->
<input type='text' class="form-control"
t-ref="autofocus" id="mf_order_name_id"
placeholder="Scan Your Barcode Here"
required="1"/>
</div>
</center>
<!-- Scan Button -->
<button class="button-54" id="barcode_scan_button_id"
role="button" t-on-click="ScanNow">Start or Stop
</button>
</div>
<div class='spacer'/>
</body>
</t>
</template>

15
barcode_for_work_centers/static/src/xml/manufacture_button_templates.xml

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--Inheriting for the template for the add a button in barcode module as Work Order,and call a ir.action_window for
the opening kanban view using Do action-->
<templates xml:space="preserve">
<t t-inherit="stock_barcode.MainMenu" t-inherit-mode="extension" owl="1">
<xpath expr="//div[hasclass('o_main_menu_buttons')]" position="inside">
<div class="col">
<button class="button_for_work_centers btn btn-block btn-primary mb-4 w-100"
t-on-click="() => this.actionService.doAction('barcode_for_work_centers.action_barcode_for_work_centers_kanban')">
Work Order
</button>
</div>
</xpath>
</t>
</templates>

38
barcode_for_work_centers/views/mrp_routing_workcenter_views.xml

@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<!-- This record created for customized kanban view of operations in manufacturing-->
<record id="mrp_routing_workcenter_view_kanban" model="ir.ui.view">
<field name="name">mrp.routing.workcenters.view.kanban</field>
<field name="model">mrp.routing.workcenter</field>
<field name="mode">primary</field>
<field name="priority">20</field>
<field name="arch" type="xml">
<kanban create="False" action="action_barcode_scanner_template"
type="object">
<templates>
<t t-name="kanban-box">
<div>
<div class="o_kanban_card_header">
<div class="o_primary o_kanban_record_title">
<field name="name"/>
</div>
<div class="o_secondary"/>
</div>
<div class="container o_kanban_card_content o_kanban_button">
<div class="row text-muted"/>
</div>
</div>
</t>
</templates>
</kanban>
</field>
</record>
<!-- This record is created for action of ir.actions.act_window of operations in manufacturing-->
<record id="action_barcode_for_work_centers_kanban" model="ir.actions.act_window">
<field name="name">Operations of work centers</field>
<field name="res_model">mrp.routing.workcenter</field>
<field name="view_mode">kanban,form</field>
<field name="context">{ 'form_view_initial_mode': 'edit', 'force_detailed_view': True,}
</field>
</record>
</odoo>
Loading…
Cancel
Save