diff --git a/multi_barcode_for_products/README.rst b/multi_barcode_for_products/README.rst new file mode 100644 index 000000000..a9b1e6743 --- /dev/null +++ b/multi_barcode_for_products/README.rst @@ -0,0 +1,49 @@ +.. image:: https://img.shields.io/badge/license-AGPL--3-blue.svg + :target: https://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +Multi Barcode for Products +================================================================== +Allows you to create Product multi barcode for Sales, Purchase, Inventory and Invoicing + +Configuration +============= + - www.odoo.com/documentation/17.0/setup/install.html + - Install our custom addon + +Company +------- +* `Cybrosys Techno Solutions `__ + +License +------- +General Public License, Version 3 (AGPL v3). +(https://www.gnu.org/licenses/agpl-3.0-standalone.html) + +Credits +------- +Developers: (V16) Ammu Raj @ Cybrosys, + (V17) Advaith BG @ Cybrosys +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 +========== +This module is maintained by Cybrosys Technologies. + +For support and more information, please visit https://www.cybrosys.com + +.. image:: https://cybrosys.com/images/logo.png + :target: https://cybrosys.com" + +Further information +=================== +HTML Description: ``__ diff --git a/multi_barcode_for_products/__init__.py b/multi_barcode_for_products/__init__.py new file mode 100644 index 000000000..eee9909d2 --- /dev/null +++ b/multi_barcode_for_products/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies(). +# Author: ADVAITH B G (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL 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 AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +from . import models diff --git a/multi_barcode_for_products/__manifest__.py b/multi_barcode_for_products/__manifest__.py new file mode 100644 index 000000000..1e3f3acb7 --- /dev/null +++ b/multi_barcode_for_products/__manifest__.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies(). +# Author: ADVAITH B G (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL 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 AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +{ + 'name': 'Multi Barcode for Products', + 'version': '17.0.1.0.0', + 'category': 'Warehouse', + 'summary': """Allows to create multiple barcode for a single product""", + 'description': "Allows to create Product multi barcode for Sales, Purchase," + "Inventory and Invoicing", + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'website': 'https://www.cybrosys.com/', + 'depends': ['stock', 'sale_management', 'purchase', 'account'], + 'data': [ + 'security/ir.model.access.csv', + 'views/account_move_views.xml', + 'views/product_product_views.xml', + 'views/product_template_views.xml', + 'views/purchase_order_views.xml', + 'views/sale_order_views.xml', + 'views/stock_picking_views.xml', + ], + 'images': ['static/description/banner.jpg'], + 'license': 'AGPL-3', + 'installable': True, + 'auto_install': False, + 'application': False, +} diff --git a/multi_barcode_for_products/doc/RELEASE_NOTES.md b/multi_barcode_for_products/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..9a3d10cfd --- /dev/null +++ b/multi_barcode_for_products/doc/RELEASE_NOTES.md @@ -0,0 +1,5 @@ +## Module +#### 15.01.2024 +#### Version 17.0.1.0.0 +#### ADD +- Initial commit for Multi Barcode for Products diff --git a/multi_barcode_for_products/models/__init__.py b/multi_barcode_for_products/models/__init__.py new file mode 100644 index 000000000..4036821b2 --- /dev/null +++ b/multi_barcode_for_products/models/__init__.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies(). +# Author: ADVAITH B G (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL 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 AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +from . import account_move_line +from . import product_multiple_barcodes +from . import product_product +from . import product_template +from . import purchase_order_line +from . import sale_order_line +from . import stock_move diff --git a/multi_barcode_for_products/models/account_move_line.py b/multi_barcode_for_products/models/account_move_line.py new file mode 100644 index 000000000..ad3ef46fb --- /dev/null +++ b/multi_barcode_for_products/models/account_move_line.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies(). +# Author: ADVAITH B G (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL 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 AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +from odoo import api, fields, models + + +class AccountMoveLine(models.Model): + """Inherits Account move line for scanning multi barcode""" + _inherit = 'account.move.line' + + scan_barcode = fields.Char(string='Product Barcode', + compute="_compute_scan_barcode", + inverse="_inverse_scan_barcode", store=True, + help="You can scan the barcode here") + + @api.depends('purchase_line_id') + def _compute_scan_barcode(self): + """For updating the Product Barcode field in move line while it's + generating from a Purchase order""" + for line in self: + if line.purchase_line_id: + line.scan_barcode = line.purchase_line_id.scan_barcode + + def _inverse_scan_barcode(self): + """Inverse function for scan_barcode""" + for account in self: + account.scan_barcode = account.scan_barcode + + @api.onchange('scan_barcode') + def _onchange_scan_barcode(self): + """For getting the scanned barcode product""" + if self.scan_barcode: + product = self.env['product.multiple.barcodes'].search( + [('product_multi_barcode', '=', self.scan_barcode)]) + self.product_id = product.product_id.id diff --git a/multi_barcode_for_products/models/product_multiple_barcodes.py b/multi_barcode_for_products/models/product_multiple_barcodes.py new file mode 100644 index 000000000..49b56d5ad --- /dev/null +++ b/multi_barcode_for_products/models/product_multiple_barcodes.py @@ -0,0 +1,54 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies(). +# Author: ADVAITH B G (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL 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 AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +from odoo import fields, models + + +class ProductMultiBarcode(models.Model): + """Creating multiple barcode for products""" + _name = 'product.multiple.barcodes' + _description = 'Product Multiple Barcodes' + _rec_name = 'product_multi_barcode' + + product_multi_barcode = fields.Char(string="Barcode", + help="Provide alternate barcodes for " + "the product") + product_id = fields.Many2one('product.product', string="Product Variant", + help="This will be the Product " + "variants") + product_template_id = fields.Many2one('product.template', string="Product", + help="This will be the products") + _sql_constraints = [ + ('field_unique', 'unique(product_multi_barcode)', + 'Existing barcode is not allowed !'), + ] + + def get_barcode_val(self, product): + """ + Summary: + get barcode of record in self and product id + Args: + product(int):current product + Returns: + barcode of the record in self and product + """ + + return self.product_multi_barcode, product diff --git a/multi_barcode_for_products/models/product_product.py b/multi_barcode_for_products/models/product_product.py new file mode 100644 index 000000000..a9184429d --- /dev/null +++ b/multi_barcode_for_products/models/product_product.py @@ -0,0 +1,71 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies(). +# Author: ADVAITH B G (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL 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 AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +from odoo import api, fields, models + + +class ProductProduct(models.Model): + """Inherits Products for multiple barcodes""" + _inherit = 'product.product' + + multi_barcode_ids = fields.One2many('product.multiple.barcodes', + 'product_id', string='Barcodes', + help='Set multiple barcode') + + def _check_multi_barcode(self, domain): + """Check product have multi barcode or not""" + product_id = None + if len(domain) > 1: + if 'barcode' in domain[0]: + barcode = domain[0][2] + bi_line = self.env['product.multiple.barcodes'].search( + [('product_multi_barcode', '=', barcode)]) + if bi_line: + product_id = bi_line.product_id.id + return product_id + + @api.model + def search_read(self, domain=None, fields=None, offset=0, limit=None, + order=None): + """For searching the product with multi barcode""" + product_id = self._check_multi_barcode(domain) + if product_id: + domain = [('id', '=', product_id)] + res = super().search_read(domain=domain, fields=fields, offset=offset, + limit=limit, order=order) + return res + + @api.model + def create(self, vals): + """Creating multi barcodes""" + res = super(ProductProduct, self).create(vals) + res.multi_barcode_ids.update({ + 'product_template_id': res.product_tmpl_id.id + }) + return res + + def write(self, vals): + """Updating multi barcodes""" + res = super(ProductProduct, self).write(vals) + self.multi_barcode_ids.update({ + 'product_template_id': self.product_tmpl_id.id + }) + return res diff --git a/multi_barcode_for_products/models/product_template.py b/multi_barcode_for_products/models/product_template.py new file mode 100644 index 000000000..9b92c0ab0 --- /dev/null +++ b/multi_barcode_for_products/models/product_template.py @@ -0,0 +1,51 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies(). +# Author: ADVAITH B G (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL 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 AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +from odoo import api, fields, models + + +class ProductTemplate(models.Model): + """Inherits Product template for multi barcode feature""" + _inherit = 'product.template' + + template_multi_barcode_ids = fields.One2many('product.multiple.barcodes', + 'product_template_id', + string='Multi Barcodes', + help="Multi barcode for " + "product template") + + def write(self, vals): + """Updating the multi barcodes""" + res = super(ProductTemplate, self).write(vals) + if self.template_multi_barcode_ids: + self.template_multi_barcode_ids.update({ + 'product_id': self.product_variant_id.id + }) + return res + + @api.model + def create(self, vals): + """Creating the multi barcodes""" + res = super(ProductTemplate, self).create(vals) + res.template_multi_barcode_ids.update({ + 'product_id': res.product_variant_id.id + }) + return res diff --git a/multi_barcode_for_products/models/purchase_order_line.py b/multi_barcode_for_products/models/purchase_order_line.py new file mode 100644 index 000000000..5fa8ba97b --- /dev/null +++ b/multi_barcode_for_products/models/purchase_order_line.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies(). +# Author: ADVAITH B G (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL 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 AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +from odoo import api, fields, models + + +class PurchaseOrderLines(models.Model): + """Inherits Purchase order line for scanning multi barcode""" + _inherit = "purchase.order.line" + + scan_barcode = fields.Char(string='Product Barcode', + help="Here you can provide the barcode for the " + "product") + + @api.onchange('scan_barcode') + def _onchange_scan_barcode(self): + """For getting the scanned barcode product""" + if self.scan_barcode: + product = self.env['product.multiple.barcodes'].search( + [('product_multi_barcode', '=', self.scan_barcode)]) + self.product_id = product.product_id.id diff --git a/multi_barcode_for_products/models/sale_order_line.py b/multi_barcode_for_products/models/sale_order_line.py new file mode 100644 index 000000000..a2d06f383 --- /dev/null +++ b/multi_barcode_for_products/models/sale_order_line.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies(). +# Author: ADVAITH B G (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL 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 AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +from odoo import api, fields, models + + +class SaleOrderLine(models.Model): + """Inherits Sale order line for scanning multi barcode""" + _inherit = 'sale.order.line' + + scan_barcode = fields.Char(string='Product Barcode', + help="Here you can provide the barcode for " + "the product") + + def _prepare_invoice_line(self, **optional_values): + """For adding the scanned barcode in the invoice""" + res = super()._prepare_invoice_line(**optional_values) + res['scan_barcode'] = self.move_ids.scan_barcode + return res + + @api.onchange('scan_barcode') + def _onchange_scan_barcode(self): + """For getting the scanned barcode product""" + if self.scan_barcode: + product = self.env['product.multiple.barcodes'].search( + [('product_multi_barcode', '=', self.scan_barcode)]) + self.product_id = product.product_id.id diff --git a/multi_barcode_for_products/models/stock_move.py b/multi_barcode_for_products/models/stock_move.py new file mode 100644 index 000000000..b87d8dc92 --- /dev/null +++ b/multi_barcode_for_products/models/stock_move.py @@ -0,0 +1,57 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies(). +# Author: ADVAITH B G (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL 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 AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +from odoo import api, fields, models + + +class StockMove(models.Model): + """Inherits Stock move for scanning multi barcode""" + _inherit = 'stock.move' + + scan_barcode = fields.Char(string='Product Barcode', + compute='_compute_scan_barcode', + inverse='_inverse_scan_barcode', + store=True, + help="Here you can provide the barcode for the " + "product") + + @api.depends('sale_line_id', 'purchase_line_id') + def _compute_scan_barcode(self): + """For updating the Product Barcode field in delivery while it's + generating from a Purchase order or sale order""" + for stock in self: + if stock.sale_line_id: + stock.scan_barcode = stock.sale_line_id.scan_barcode + if stock.purchase_line_id: + stock.scan_barcode = stock.purchase_line_id.scan_barcode + + def _inverse_scan_barcode(self): + """Inverse function for scan_barcode""" + for stock in self: + stock.scan_barcode = stock.scan_barcode + + @api.onchange('scan_barcode') + def _onchange_scan_barcode(self): + """For getting the scanned barcode product""" + if self.scan_barcode: + product = self.env['product.multiple.barcodes'].search( + [('product_multi_barcode', '=', self.scan_barcode)]) + self.product_id = product.product_id.id diff --git a/multi_barcode_for_products/security/ir.model.access.csv b/multi_barcode_for_products/security/ir.model.access.csv new file mode 100644 index 000000000..9d9bd9585 --- /dev/null +++ b/multi_barcode_for_products/security/ir.model.access.csv @@ -0,0 +1,2 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_product_multi_barcodes_user,access.product.multi.barcodes.user,model_product_multiple_barcodes,base.group_user,1,1,1,1 diff --git a/multi_barcode_for_products/static/description/assets/icons/check.png b/multi_barcode_for_products/static/description/assets/icons/check.png new file mode 100644 index 000000000..c8e85f51d Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/icons/check.png differ diff --git a/multi_barcode_for_products/static/description/assets/icons/chevron.png b/multi_barcode_for_products/static/description/assets/icons/chevron.png new file mode 100644 index 000000000..2089293d6 Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/icons/chevron.png differ diff --git a/multi_barcode_for_products/static/description/assets/icons/cogs.png b/multi_barcode_for_products/static/description/assets/icons/cogs.png new file mode 100644 index 000000000..95d0bad62 Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/icons/cogs.png differ diff --git a/multi_barcode_for_products/static/description/assets/icons/consultation.png b/multi_barcode_for_products/static/description/assets/icons/consultation.png new file mode 100644 index 000000000..8319d4baa Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/icons/consultation.png differ diff --git a/multi_barcode_for_products/static/description/assets/icons/ecom-black.png b/multi_barcode_for_products/static/description/assets/icons/ecom-black.png new file mode 100644 index 000000000..a9385ff13 Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/icons/ecom-black.png differ diff --git a/multi_barcode_for_products/static/description/assets/icons/education-black.png b/multi_barcode_for_products/static/description/assets/icons/education-black.png new file mode 100644 index 000000000..3eb09b27b Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/icons/education-black.png differ diff --git a/multi_barcode_for_products/static/description/assets/icons/hotel-black.png b/multi_barcode_for_products/static/description/assets/icons/hotel-black.png new file mode 100644 index 000000000..130f613be Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/icons/hotel-black.png differ diff --git a/multi_barcode_for_products/static/description/assets/icons/license.png b/multi_barcode_for_products/static/description/assets/icons/license.png new file mode 100644 index 000000000..a5869797e Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/icons/license.png differ diff --git a/multi_barcode_for_products/static/description/assets/icons/lifebuoy.png b/multi_barcode_for_products/static/description/assets/icons/lifebuoy.png new file mode 100644 index 000000000..658d56ccc Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/icons/lifebuoy.png differ diff --git a/multi_barcode_for_products/static/description/assets/icons/manufacturing-black.png b/multi_barcode_for_products/static/description/assets/icons/manufacturing-black.png new file mode 100644 index 000000000..697eb0e9f Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/icons/manufacturing-black.png differ diff --git a/multi_barcode_for_products/static/description/assets/icons/pos-black.png b/multi_barcode_for_products/static/description/assets/icons/pos-black.png new file mode 100644 index 000000000..97c0f90c1 Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/icons/pos-black.png differ diff --git a/multi_barcode_for_products/static/description/assets/icons/puzzle.png b/multi_barcode_for_products/static/description/assets/icons/puzzle.png new file mode 100644 index 000000000..65cf854e7 Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/icons/puzzle.png differ diff --git a/multi_barcode_for_products/static/description/assets/icons/restaurant-black.png b/multi_barcode_for_products/static/description/assets/icons/restaurant-black.png new file mode 100644 index 000000000..4a35eb939 Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/icons/restaurant-black.png differ diff --git a/multi_barcode_for_products/static/description/assets/icons/service-black.png b/multi_barcode_for_products/static/description/assets/icons/service-black.png new file mode 100644 index 000000000..301ab51cb Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/icons/service-black.png differ diff --git a/multi_barcode_for_products/static/description/assets/icons/trading-black.png b/multi_barcode_for_products/static/description/assets/icons/trading-black.png new file mode 100644 index 000000000..9398ba2f1 Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/icons/trading-black.png differ diff --git a/multi_barcode_for_products/static/description/assets/icons/training.png b/multi_barcode_for_products/static/description/assets/icons/training.png new file mode 100644 index 000000000..884ca024d Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/icons/training.png differ diff --git a/multi_barcode_for_products/static/description/assets/icons/update.png b/multi_barcode_for_products/static/description/assets/icons/update.png new file mode 100644 index 000000000..ecbc5a01a Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/icons/update.png differ diff --git a/multi_barcode_for_products/static/description/assets/icons/user.png b/multi_barcode_for_products/static/description/assets/icons/user.png new file mode 100644 index 000000000..6ffb23d9f Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/icons/user.png differ diff --git a/multi_barcode_for_products/static/description/assets/icons/wrench.png b/multi_barcode_for_products/static/description/assets/icons/wrench.png new file mode 100644 index 000000000..6c04dea0f Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/icons/wrench.png differ diff --git a/multi_barcode_for_products/static/description/assets/misc/Cybrosys R.png b/multi_barcode_for_products/static/description/assets/misc/Cybrosys R.png new file mode 100644 index 000000000..da4058087 Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/misc/Cybrosys R.png differ diff --git a/multi_barcode_for_products/static/description/assets/misc/categories.png b/multi_barcode_for_products/static/description/assets/misc/categories.png new file mode 100644 index 000000000..bedf1e0b1 Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/misc/categories.png differ diff --git a/multi_barcode_for_products/static/description/assets/misc/check-box.png b/multi_barcode_for_products/static/description/assets/misc/check-box.png new file mode 100644 index 000000000..42caf24b9 Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/misc/check-box.png differ diff --git a/multi_barcode_for_products/static/description/assets/misc/compass.png b/multi_barcode_for_products/static/description/assets/misc/compass.png new file mode 100644 index 000000000..d5fed8faa Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/misc/compass.png differ diff --git a/multi_barcode_for_products/static/description/assets/misc/corporate.png b/multi_barcode_for_products/static/description/assets/misc/corporate.png new file mode 100644 index 000000000..2eb13edbf Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/misc/corporate.png differ diff --git a/multi_barcode_for_products/static/description/assets/misc/customer-support.png b/multi_barcode_for_products/static/description/assets/misc/customer-support.png new file mode 100644 index 000000000..79efc72ed Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/misc/customer-support.png differ diff --git a/multi_barcode_for_products/static/description/assets/misc/cybrosys-logo.png b/multi_barcode_for_products/static/description/assets/misc/cybrosys-logo.png new file mode 100644 index 000000000..cc3cc0ccf Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/misc/cybrosys-logo.png differ diff --git a/multi_barcode_for_products/static/description/assets/misc/email.svg b/multi_barcode_for_products/static/description/assets/misc/email.svg new file mode 100644 index 000000000..15291cdc3 --- /dev/null +++ b/multi_barcode_for_products/static/description/assets/misc/email.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/multi_barcode_for_products/static/description/assets/misc/features.png b/multi_barcode_for_products/static/description/assets/misc/features.png new file mode 100644 index 000000000..b41769f77 Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/misc/features.png differ diff --git a/multi_barcode_for_products/static/description/assets/misc/logo.png b/multi_barcode_for_products/static/description/assets/misc/logo.png new file mode 100644 index 000000000..478462d3e Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/misc/logo.png differ diff --git a/multi_barcode_for_products/static/description/assets/misc/phone.svg b/multi_barcode_for_products/static/description/assets/misc/phone.svg new file mode 100644 index 000000000..b7bd7f251 --- /dev/null +++ b/multi_barcode_for_products/static/description/assets/misc/phone.svg @@ -0,0 +1,3 @@ + + + diff --git a/multi_barcode_for_products/static/description/assets/misc/pictures.png b/multi_barcode_for_products/static/description/assets/misc/pictures.png new file mode 100644 index 000000000..56d255fe9 Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/misc/pictures.png differ diff --git a/multi_barcode_for_products/static/description/assets/misc/pie-chart.png b/multi_barcode_for_products/static/description/assets/misc/pie-chart.png new file mode 100644 index 000000000..426e05244 Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/misc/pie-chart.png differ diff --git a/multi_barcode_for_products/static/description/assets/misc/right-arrow.png b/multi_barcode_for_products/static/description/assets/misc/right-arrow.png new file mode 100644 index 000000000..730984a06 Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/misc/right-arrow.png differ diff --git a/multi_barcode_for_products/static/description/assets/misc/star (1) 2.svg b/multi_barcode_for_products/static/description/assets/misc/star (1) 2.svg new file mode 100644 index 000000000..5ae9f507a --- /dev/null +++ b/multi_barcode_for_products/static/description/assets/misc/star (1) 2.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/multi_barcode_for_products/static/description/assets/misc/star.png b/multi_barcode_for_products/static/description/assets/misc/star.png new file mode 100644 index 000000000..2eb9ab29f Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/misc/star.png differ diff --git a/multi_barcode_for_products/static/description/assets/misc/support (1) 1.svg b/multi_barcode_for_products/static/description/assets/misc/support (1) 1.svg new file mode 100644 index 000000000..7d37a8f30 --- /dev/null +++ b/multi_barcode_for_products/static/description/assets/misc/support (1) 1.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/multi_barcode_for_products/static/description/assets/misc/support-email.svg b/multi_barcode_for_products/static/description/assets/misc/support-email.svg new file mode 100644 index 000000000..eb70370d6 --- /dev/null +++ b/multi_barcode_for_products/static/description/assets/misc/support-email.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/multi_barcode_for_products/static/description/assets/misc/support.png b/multi_barcode_for_products/static/description/assets/misc/support.png new file mode 100644 index 000000000..4f18b8b82 Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/misc/support.png differ diff --git a/multi_barcode_for_products/static/description/assets/misc/tick-mark.svg b/multi_barcode_for_products/static/description/assets/misc/tick-mark.svg new file mode 100644 index 000000000..2dbb40187 --- /dev/null +++ b/multi_barcode_for_products/static/description/assets/misc/tick-mark.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/multi_barcode_for_products/static/description/assets/misc/whatsapp 1.svg b/multi_barcode_for_products/static/description/assets/misc/whatsapp 1.svg new file mode 100644 index 000000000..0bfaf8fc6 --- /dev/null +++ b/multi_barcode_for_products/static/description/assets/misc/whatsapp 1.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/multi_barcode_for_products/static/description/assets/misc/whatsapp.png b/multi_barcode_for_products/static/description/assets/misc/whatsapp.png new file mode 100644 index 000000000..d513a5356 Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/misc/whatsapp.png differ diff --git a/multi_barcode_for_products/static/description/assets/misc/whatsapp.svg b/multi_barcode_for_products/static/description/assets/misc/whatsapp.svg new file mode 100644 index 000000000..b618aea1d --- /dev/null +++ b/multi_barcode_for_products/static/description/assets/misc/whatsapp.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/multi_barcode_for_products/static/description/assets/modules/1.png b/multi_barcode_for_products/static/description/assets/modules/1.png new file mode 100644 index 000000000..ab375ff3a Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/modules/1.png differ diff --git a/multi_barcode_for_products/static/description/assets/modules/2.png b/multi_barcode_for_products/static/description/assets/modules/2.png new file mode 100644 index 000000000..e257ddb23 Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/modules/2.png differ diff --git a/multi_barcode_for_products/static/description/assets/modules/3.png b/multi_barcode_for_products/static/description/assets/modules/3.png new file mode 100644 index 000000000..fd64cf8ca Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/modules/3.png differ diff --git a/multi_barcode_for_products/static/description/assets/modules/4.png b/multi_barcode_for_products/static/description/assets/modules/4.png new file mode 100644 index 000000000..612be4b77 Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/modules/4.png differ diff --git a/multi_barcode_for_products/static/description/assets/modules/5.png b/multi_barcode_for_products/static/description/assets/modules/5.png new file mode 100644 index 000000000..eba886e6a Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/modules/5.png differ diff --git a/multi_barcode_for_products/static/description/assets/modules/6.png b/multi_barcode_for_products/static/description/assets/modules/6.png new file mode 100644 index 000000000..c8e6c355a Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/modules/6.png differ diff --git a/multi_barcode_for_products/static/description/assets/screenshots/hero.gif b/multi_barcode_for_products/static/description/assets/screenshots/hero.gif new file mode 100644 index 000000000..3ce705931 Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/screenshots/hero.gif differ diff --git a/multi_barcode_for_products/static/description/assets/screenshots/multi1.png b/multi_barcode_for_products/static/description/assets/screenshots/multi1.png new file mode 100644 index 000000000..bb94d1803 Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/screenshots/multi1.png differ diff --git a/multi_barcode_for_products/static/description/assets/screenshots/multi2.png b/multi_barcode_for_products/static/description/assets/screenshots/multi2.png new file mode 100644 index 000000000..a25e675b8 Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/screenshots/multi2.png differ diff --git a/multi_barcode_for_products/static/description/assets/screenshots/multi3.png b/multi_barcode_for_products/static/description/assets/screenshots/multi3.png new file mode 100644 index 000000000..67039a0d2 Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/screenshots/multi3.png differ diff --git a/multi_barcode_for_products/static/description/assets/screenshots/multi4.png b/multi_barcode_for_products/static/description/assets/screenshots/multi4.png new file mode 100644 index 000000000..8fcd8ca31 Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/screenshots/multi4.png differ diff --git a/multi_barcode_for_products/static/description/assets/screenshots/multi5.png b/multi_barcode_for_products/static/description/assets/screenshots/multi5.png new file mode 100644 index 000000000..59c837a5d Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/screenshots/multi5.png differ diff --git a/multi_barcode_for_products/static/description/assets/screenshots/multi6.png b/multi_barcode_for_products/static/description/assets/screenshots/multi6.png new file mode 100644 index 000000000..f25223a62 Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/screenshots/multi6.png differ diff --git a/multi_barcode_for_products/static/description/assets/screenshots/multi7.png b/multi_barcode_for_products/static/description/assets/screenshots/multi7.png new file mode 100644 index 000000000..11b3e9dfe Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/screenshots/multi7.png differ diff --git a/multi_barcode_for_products/static/description/assets/screenshots/multi8.png b/multi_barcode_for_products/static/description/assets/screenshots/multi8.png new file mode 100644 index 000000000..20683b717 Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/screenshots/multi8.png differ diff --git a/multi_barcode_for_products/static/description/assets/screenshots/multi9.png b/multi_barcode_for_products/static/description/assets/screenshots/multi9.png new file mode 100644 index 000000000..aa97715db Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/screenshots/multi9.png differ diff --git a/multi_barcode_for_products/static/description/banner.jpg b/multi_barcode_for_products/static/description/banner.jpg new file mode 100644 index 000000000..292ccda24 Binary files /dev/null and b/multi_barcode_for_products/static/description/banner.jpg differ diff --git a/multi_barcode_for_products/static/description/icon.png b/multi_barcode_for_products/static/description/icon.png new file mode 100644 index 000000000..e062b112e Binary files /dev/null and b/multi_barcode_for_products/static/description/icon.png differ diff --git a/multi_barcode_for_products/static/description/index.html b/multi_barcode_for_products/static/description/index.html new file mode 100644 index 000000000..6c601f64e --- /dev/null +++ b/multi_barcode_for_products/static/description/index.html @@ -0,0 +1,793 @@ + + + + + + Odoo App 3 Index + + + + + + + + +
+
+
+
+
+ +
+
+
+ Community +
+
+ Enterprise +
+
+ Odoo.sh +
+
+
+
+
+
+

+ Multi Barcode for Products

+

+ Allows you to create Product multi barcode for Sales, Purchase, Inventory and Invoicing.

+ +
+ +
+
+
+
+
+

+ Key Highlights +

+
+
+
+
+
+ +
+
+

Easy to create unique Multiple Barcodes for Products.

+
+
+
+
+
+
+ +
+
+

Easy to search the products in the basis of Multi Barcode in product page.

+
+
+
+
+
+
+
+
+ +
+
+

Direct scanning of Multi Barcode of a product for searching.

+
+
+
+
+
+
+ +
+
+

Easy to select the product having Multi Barcode from Sales, Purchase, Operations and Invoices.

+
+
+
+
+
+
+
+ +
+
+
+
+
+ + +
+
+

Multiple Barcode for products

+

Under the "Barcodes" tab we can create unique Multi Barcode for a product.

+
+
+
+
+
+
+ + +
+
+

Multiple Barcode for product variants

+

Also, we can create Multi Barcodes per product variants Under the "Barcodes" tab.

+
+
+
+
+
+
+ + +
+
+

Searching of products

+

We can search product having Multi Barcode.

+
+
+
+
+
+
+ + +
+
+

Direct Scanning of Multi Barcode

+

Also, we can scan the Multi Barcode for searching the product.

+
+
+
+
+
+
+ + +
+
+

Searching of products

+

We can search product having Multi Barcode.

+
+
+
+
+
+
+ + +
+
+

Selection of product having Multi Barcode in Sale Order Line

+

We can scan the multi Barcode in the field "Product Barcode",then the product having that Barcode will appear in Sale Order Lines.(On clicking the field we can scan the product or enter the barcode value).

+
+
+
+
+
+
+ + +
+
+

Selection of product having Multi Barcode in Purchase Order Line

+

We can scan the Multi Barcode in the field "Product Barcode",then the product having that Barcode will appear in Purchase

+
+
+
+
+
+
+ + +
+
+

Selection of product having Multi Barcode in Operations

+

We can scan the Multi Barcode in the field "Product Barcode",then the product having that Barcode will appear in every operation in Inventory module

+
+
+
+
+
+
+ + +
+
+

Selection of product having Multi Barcode in Invoices

+

We can scan the Multi Barcode in the field "Product Barcode",then the product having that Barcode will appear in Invoicing module

+
+
+
+
+ +
+
+
    +
  • + + Product Multiple Barcode Odoo app is allowed to create unique Multiple Barcodes for Products and their Variants Under the 'Barcodes' Tab. +
  • +
+
+
+
+
+
+
Version + 17.0.1.0.0|Released on: 15th January 2024 +
+

+ + Initial Commit for Multi Barcode for Products

+
+
+
+
+
+
+
+

+ Related Products

+
+
+ +
+
+

+ Our Services

+ +
+
+
+
+
+
+
+
+ service-icon +
+
+

Odoo + Customization

+
+
+
+
+
+
+ service-icon +
+
+

Odoo + Implementation

+
+
+
+
+
+
+ service-icon +
+
+

Odoo + Support

+
+
+
+
+
+
+ service-icon +
+
+

Hire + Odoo Developer

+
+
+
+
+ +
+
+ service-icon +
+
+

Odoo + Integration

+
+
+
+
+
+
+ service-icon +
+
+

Odoo + Migration

+
+
+
+
+
+
+ service-icon +
+
+

Odoo + Consultancy

+
+
+
+
+
+
+ service-icon +
+
+

Odoo + Implementation

+
+
+
+
+
+
+ service-icon +
+
+

Odoo + Licensing Consultancy

+
+
+
+
+
+
+

+ Our Industries

+ +
+
+
+
+
+
+ +

Trading

+

Easily procure and sell your products

+
+
+
+
+ +

POS

+

Easy configuration and convivial experience

+
+
+
+
+ +

+ Education

+

A platform for educational management

+
+
+
+
+ +

+ Manufacturing

+

Plan, track and schedule your operations

+
+
+
+
+ +

E-commerce & + Website

+

Mobile friendly, awe-inspiring product pages

+
+
+
+
+ +

Service + Management

+

Keep track of services and invoice

+
+
+
+
+ +

+ Restaurant

+

Run your bar or restaurant methodically

+
+
+
+
+ +

Hotel + Management

+

An all-inclusive hotel management application

+
+
+
+
+
+
+

+ Support

+
+
+
+
+
+
+
+ +
+ Need + Help? +

Got + questions or need help? Get in touch.

+
odoo@cybrosys.com +
+
+
+
+
+
+
+
+ +
+ WhatsApp +

Say hi to + us on WhatsApp!

+
+91 + 99456767686 +
+
+
+
+
+
+
+ +
+ + + + + + diff --git a/multi_barcode_for_products/views/account_move_views.xml b/multi_barcode_for_products/views/account_move_views.xml new file mode 100644 index 000000000..1ab517840 --- /dev/null +++ b/multi_barcode_for_products/views/account_move_views.xml @@ -0,0 +1,17 @@ + + + + + + account.move.view.form.inherit.multi.barcode.for.products + + account.move + + + + + + + + diff --git a/multi_barcode_for_products/views/product_product_views.xml b/multi_barcode_for_products/views/product_product_views.xml new file mode 100644 index 000000000..86dd95efc --- /dev/null +++ b/multi_barcode_for_products/views/product_product_views.xml @@ -0,0 +1,22 @@ + + + + + + product.product.view.form.inherit.multi.barcode.for.products + + product.product + + + + + + + + + + + + + + diff --git a/multi_barcode_for_products/views/product_template_views.xml b/multi_barcode_for_products/views/product_template_views.xml new file mode 100644 index 000000000..facab2058 --- /dev/null +++ b/multi_barcode_for_products/views/product_template_views.xml @@ -0,0 +1,44 @@ + + + + + + product.template.view.search.inherit.multi.barcode.for.products + + product.template + + + + + + + + + + + + + + product.template.view.form.multi.barcode.for.products + + product.template + + + + + + + + + + + + + + + + diff --git a/multi_barcode_for_products/views/purchase_order_views.xml b/multi_barcode_for_products/views/purchase_order_views.xml new file mode 100644 index 000000000..22bd2a5ab --- /dev/null +++ b/multi_barcode_for_products/views/purchase_order_views.xml @@ -0,0 +1,17 @@ + + + + + + purchase.order.view.form.inherit.multi.barcode.for.products + + purchase.order + + + + + + + + diff --git a/multi_barcode_for_products/views/sale_order_views.xml b/multi_barcode_for_products/views/sale_order_views.xml new file mode 100644 index 000000000..daf1e2e5f --- /dev/null +++ b/multi_barcode_for_products/views/sale_order_views.xml @@ -0,0 +1,17 @@ + + + + + + sale.order.view.form.inherit.multi.barcode.for.products + + sale.order + + + + + + + + diff --git a/multi_barcode_for_products/views/stock_picking_views.xml b/multi_barcode_for_products/views/stock_picking_views.xml new file mode 100644 index 000000000..106968090 --- /dev/null +++ b/multi_barcode_for_products/views/stock_picking_views.xml @@ -0,0 +1,17 @@ + + + + + + stock.picking.view.form.inherit.multi.barcode.for.products + + stock.picking + + + + + + + +