diff --git a/multi_barcode_for_products/README.rst b/multi_barcode_for_products/README.rst new file mode 100644 index 000000000..0320daccd --- /dev/null +++ b/multi_barcode_for_products/README.rst @@ -0,0 +1,43 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +Multi Barcode for Products +========================== +Multi Barcode for Products helps to assign multiple barcodes for products + +Company +------- +* `Cybrosys Techno Solutions `__ + +License +------- +General Public License, Version 3 (AGPL v3). +(https://www.odoo.com/documentation/user/16.0/legal/licenses/licenses.html) + +Credits +------- +Developers: Ammu Raj @cybrosys, Contact: odoo@cybrosys.com + Version 14:Mruthul Raj @cybrosys + +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 `__ + +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..f777a8395 --- /dev/null +++ b/multi_barcode_for_products/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Mruthul Raj (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..1e3997340 --- /dev/null +++ b/multi_barcode_for_products/__manifest__.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Mruthul Raj (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': '14.0.1.0.0', + '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/', + 'license': 'AGPL-3', + 'category': 'Inventory', + '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/product_template_search.xml', + 'views/purchase_order_views.xml', + 'views/sale_order_views.xml', + 'views/stock_picking_views.xml', + ], + 'images': ['static/description/banner.jpg'], + 'installable': True, + 'application': False, + 'auto_install': 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..ab5dd7306 --- /dev/null +++ b/multi_barcode_for_products/doc/RELEASE_NOTES.md @@ -0,0 +1,6 @@ +## Module + +#### 08.05.2023 +#### Version 14.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..2b724a488 --- /dev/null +++ b/multi_barcode_for_products/models/__init__.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Mruthul Raj (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..72bdcf892 --- /dev/null +++ b/multi_barcode_for_products/models/account_move_line.py @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Mruthul Raj (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 Invoice Lines + + This model inherits from the `account.move.line` model and adds a new + field `scan_barcode` for scanning product barcodes. The `_onchange_scan + _barcode` method is triggered whenever the `scan_barcode` field is + changed, and it searches for a `product.multiple.barcodes` record + that matches the scanned barcode. If a matching record is found, it sets + the `product_id` field to the corresponding product barcode ID. + + Attributes: + _inherit (str): Name of the parent model to inherit from. + scan_barcode (fields.Char): Field for scanning product barcodes. + """ + + _inherit = 'account.move.line' + + scan_barcode = fields.Char(string='Product Barcode', + help="You can scan the barcode here") + + @api.onchange('scan_barcode') + def _onchange_scan_barcode(self): + """For getting the scanned barcode product + This method is triggered whenever the `scan_barcode` field is changed. + It searches for a `product.multiple.barcodes` record that matches the + scanned barcode. If a matching record is found, it sets the + `product_id` field to the corresponding product barcode ID. + """ + if self.scan_barcode: + self.product_id = self.env['product.multiple.barcodes'].search( + [('product_multi_barcode', '=', + self.scan_barcode)]).product_barcode_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..d1b82712d --- /dev/null +++ b/multi_barcode_for_products/models/product_multiple_barcodes.py @@ -0,0 +1,76 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Mruthul Raj (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): + """Model for creating multiple Barcodes per product. + + This model is used to store alternate barcodes for a product. It includes + fields for the barcode value, the corresponding product and template + barcodes, and a constraint to ensure that each barcode is unique. + + Attributes: + _name (str): Technical name of the model. + _rec_name (str): Name of the field to use as the record name. + product_multi_barcode (fields.Char): Field for storing the barcode value. + product_barcode_id (fields.Many2one): Field for linking to the + corresponding `product.product` record. + template_barcode_id (fields.Many2one): Field for linking to the + corresponding `product.template` record. + _sql_constraints (list): List of SQL constraints to apply to the model. + """ + + _name = 'product.multiple.barcodes' + _rec_name = 'product_multi_barcode' + _description = 'Model for managing multiple barcodes for products,' + + product_multi_barcode = fields.Char(string="Barcode", + help="Provide alternate " + "barcodes for this product") + product_barcode_id = fields.Many2one('product.product', + string='Product Barcode', + help='Select the product associated' + ' with this barcode.') + template_barcode_id = fields.Many2one('product.template', + string='Template Barcode', + help='Select the product template ' + 'associated with this barcode.') + + _sql_constraints = [ + ('field_unique', 'unique(product_multi_barcode)', + 'Existing barcode is not allowed !'), + ] + + def get_barcode_val(self, product): + """Get the barcode value and corresponding product ID. + + This method returns a tuple with the barcode value and the ID of the corresponding + `product.product` record. + + Args: + product (product.product): The product to get the barcode value for. + + Returns: + tuple: A tuple containing the barcode value and the product ID. + """ + 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..497c95d5f --- /dev/null +++ b/multi_barcode_for_products/models/product_product.py @@ -0,0 +1,121 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Mruthul Raj (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): + """ + This class inherits the `product.product`model and adds the functionality to + set multiple barcodes for a product. + + """ + + _inherit = 'product.product' + + multi_barcodes_ids = fields.One2many('product.multiple.barcodes', + 'product_barcode_id', string='Barcodes', + help='Set multiple barcode') + + def _check_multi_barcode(self, domain): + """ + Private method that checks if the product has multiple barcodes and + returns the product id. + + Args: + domain (list): A list of tuples containing the search criteria. + + Returns: + int or None: The ID of the product if multiple barcodes are found, + None otherwise. + """ + product_id = None + if len(domain) > 1: + if 'barcode' in domain[0]: + barcode = domain[0][2] + product_multi_barcode = self.env['product.multiple.barcodes'].search( + [('product_multi_barcode', '=', barcode)]) + if product_multi_barcode: + product_id = product_multi_barcode.product_barcode_id.id + return product_id + + @api.model + def search_read(self, domain=None, fields=None, offset=0, limit=None, + order=None): + """ + This method overrides the `search_read` method of the `product.product` + model to search for products with alternate barcodes. + + Args: + domain (list): A list of tuples containing the search criteria. + fields (list): A list of fields to include in the search results. + offset (int): The starting index of the search results. + limit (int): The maximum number of search results to return. + order (str): The order in which to return the search results. + + Returns: + list: A list of dictionaries representing the search results. + """ + 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): + """ + This method overrides the `create` method of the `product.product` + model to add the product template ID to the alternate barcodes. + + Args: + vals (dict): A dictionary containing the values to create the + product with. + + Returns: + product.product: The created product. + """ + res = super(ProductProduct, self).create(vals) + res.multi_barcodes_ids.update({ + 'template_barcode_id': res.product_tmpl_id.id + }) + return res + + def write(self, vals): + """ + This method overrides the `write` method of the `product.product` model + to update the product template ID in the alternate barcodes. + + Args: + vals (dict): A dictionary containing the values to update the + product with. + + Returns: + bool: True if the write operation is successful, False otherwise. + """ + res = super(ProductProduct, self).write(vals) + if self.multi_barcodes_ids: + self.multi_barcodes_ids.update({ + 'template_barcode_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..d4fcf4580 --- /dev/null +++ b/multi_barcode_for_products/models/product_template.py @@ -0,0 +1,79 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Mruthul Raj (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): + """ + Model for managing product templates. + + Inherits: + product.template (product.template): The default Odoo product template + model. + """ + + _inherit = 'product.template' + + template_multi_barcodes_ids = fields.One2many('product.multiple.barcodes', + 'template_barcode_id', + string='Barcodes', + help='Set multiple' + ' barcodes for this ' + 'product template') + + def write(self, vals): + """ + Overrides the write method of the Odoo model. + + Args: + vals (dict): A dictionary of field names and their new values to + write to the record. + + Returns: + object: A reference to the updated record. + + """ + res = super(ProductTemplate, self).write(vals) + if self.template_multi_barcodes_ids: + self.template_multi_barcodes_ids.update({ + 'product_barcode_id': self.product_variant_id.id + }) + return res + + @api.model + def create(self, vals): + """ + Overrides the create method of the Odoo model. + + Args: + vals (dict): A dictionary of field names and their values to create + the new record with. + + Returns: + object: A reference to the newly created record. + + """ + res = super(ProductTemplate, self).create(vals) + res.template_multi_barcodes_ids.update({ + 'product_barcode_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..d25c72a72 --- /dev/null +++ b/multi_barcode_for_products/models/purchase_order_line.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Mruthul Raj (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): + _inherit = "purchase.order.line" + """ + This model inherits 'purchase.order.line' model to extend its functionality + with a new field 'scan_barcode'. + """ + + 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): + """ + This function is called when the 'scan_barcode' field is changed. It + searches for the product with the scanned barcode in the + 'product.multiple.barcodes' model and sets the 'product_id' field + of the current record to the found product. + """ + if self.scan_barcode: + self.product_id = self.env['product.multiple.barcodes'].search( + [('product_multi_barcode', '=', + self.scan_barcode)]).product_barcode_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..c1b0729be --- /dev/null +++ b/multi_barcode_for_products/models/sale_order_line.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Mruthul Raj (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 SaleOrderLines(models.Model): + """ + This class is used to inherit Sale Order Line and add a new field + "scan_barcode" which can be used to scan the barcode of a product and + set the corresponding product in the sale order line. + """ + _inherit = 'sale.order.line' + + scan_barcode = fields.Char(string='Product Barcode', + help="Enter the barcode for the product to " + "add it to the sale order line") + + @api.onchange('scan_barcode') + def _onchange_scan_barcode(self): + """ + This method is triggered when the value of the "scan_barcode" field + changes. It searches the product with the given barcode in the + "product.multiple.barcodes" model and sets the corresponding product in + the sale order line. + """ + if self.scan_barcode: + self.product_id = self.env['product.multiple.barcodes'].search( + [('product_multi_barcode', '=', + self.scan_barcode)]).product_barcode_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..7456e5fce --- /dev/null +++ b/multi_barcode_for_products/models/stock_move.py @@ -0,0 +1,46 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Mruthul Raj (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): + """Extends the Stock Move model to add a new field for scanning barcodes.""" + + _inherit = 'stock.move' + + scan_barcode = fields.Char(string='Product Barcode', + help="Scan the barcode of the product to" + " automatically set its ID.") + + @api.onchange('scan_barcode') + def _onchange_scan_barcode(self): + """Updates the product_id field when a barcode is scanned. + + This method searches for a product with the scanned barcode using the + product.multiple.barcodes model, and sets the product_id field to the + product_barcode_id of the matching product. + + """ + if self.scan_barcode: + self.product_id = self.env['product.multiple.barcodes'].search( + [('product_multi_barcode', '=', + self.scan_barcode)]).product_barcode_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..df225ddc7 --- /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 +multiple_barcode_products_id,product.multiple.barcodes,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/logo.png b/multi_barcode_for_products/static/description/assets/icons/logo.png new file mode 100644 index 000000000..478462d3e Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/icons/logo.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/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/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/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.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.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/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/modules/1.png b/multi_barcode_for_products/static/description/assets/modules/1.png new file mode 100644 index 000000000..7f8cf1ee1 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..4be2248a4 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.gif b/multi_barcode_for_products/static/description/assets/modules/3.gif new file mode 100644 index 000000000..69bf230e7 Binary files /dev/null and b/multi_barcode_for_products/static/description/assets/modules/3.gif 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..3afc14722 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..cea66b05f 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..0c9bb377e 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..10dc339a7 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..1185b9cfc 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..b84e9ed2e 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..7309c80ec 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/multi3.png b/multi_barcode_for_products/static/description/assets/screenshots/multi3.png new file mode 100644 index 000000000..fa49f0b1b 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..a7ed2c115 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..92c3b416e 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..6210fa0a9 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..5cfa40390 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..5ee8d3e1a 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..9219b729b 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..7763fb02f 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..450b34dfb 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..49270e768 --- /dev/null +++ b/multi_barcode_for_products/static/description/index.html @@ -0,0 +1,618 @@ +
+ +
+ +
+
+ Community +
+
+ Enterprise +
+
+
+ + + +

+ Multi Barcode for Products

+

Product Multiple Barcode Odoo App is allowed to create unique multiple barcodes for products and their variants under the 'Barcodes' tab. You can search the products based on the multi barcode. By scanning this multi barcode you can choose the required product from sales, purchase, inventory operation, and invoicing.

+ + + +
+ + +
+
+ +
+

Explore This + Module

+
+ + + + +
+
+ +
+

Overview +

+
+
+
+ This module allows you to create unique multiple barcode per product and product variants. +
+
+ + + +
+
+ +
+

Features +

+
+
+
+
+ +
+ Unique multiple barcodes + Easy to create unique multiple barcodes for products. +
+
+ +
+ +
+ + Searching of products + + Easy to search the products in the basis of multi barcode in product page. +
+
+
+
+
+ +
+ + Direct scanning + + Direct scanning of multi barcode of a product for searching. + +
+
+
+ +
+ + Multi Barcode in Sales,Purchase, Operations and Invoicing + + + Easy to select the product having multi barcode from sales,purchase,operations and invoices. +
+
+
+
+ + + +
+
+ +
+

Screenshots +

+
+
+
+ +
+

Multiple barcode for products

+

Under the "Barcode" 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.

+ +
+ +
+

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 Sales.

+ +
+ +
+

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 operations 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

+ +
+ +
+
+ + + +
+
+

Suggested Products

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

Our Services +

+
+ +
+
+
+
+ +
+
+ Odoo + Customization
+
+ +
+
+ +
+
+ Odoo + Implementation
+
+ +
+
+ +
+
+ Odoo + Support
+
+ + +
+
+ +
+
+ Hire + Odoo + Developer
+
+ +
+
+ +
+
+ Odoo + Integration
+
+ +
+
+ +
+
+ Odoo + Migration
+
+ + +
+
+ +
+
+ Odoo + Consultancy
+
+ +
+
+ +
+
+ Odoo + Implementation
+
+ +
+
+ +
+
+ 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 86068 + 27707

+
+
+
+
+
+
+
+ +
+
+
+ \ No newline at end of file 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..32c6b0c0a --- /dev/null +++ b/multi_barcode_for_products/views/account_move_views.xml @@ -0,0 +1,15 @@ + + + + + account.move.view.form.inherit.multi.barcode + account.move + + + + + + + + \ No newline at end of file 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..0874a941d --- /dev/null +++ b/multi_barcode_for_products/views/product_product_views.xml @@ -0,0 +1,22 @@ + + + + + + product.product.view.form.inherit.multi.barcode + + product.product + + + + + + + + + + + + + + \ No newline at end of file diff --git a/multi_barcode_for_products/views/product_template_search.xml b/multi_barcode_for_products/views/product_template_search.xml new file mode 100644 index 000000000..78652b549 --- /dev/null +++ b/multi_barcode_for_products/views/product_template_search.xml @@ -0,0 +1,24 @@ + + + + + product.template.search.inherit.multi.barcode + product.template + + + + + + + + + + + \ No newline at end of file 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..8f9928336 --- /dev/null +++ b/multi_barcode_for_products/views/product_template_views.xml @@ -0,0 +1,24 @@ + + + + + product.template.form.inherit.multi.barcode + product.template + + + + + + + + + + + + + + + + \ No newline at end of file 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..355204280 --- /dev/null +++ b/multi_barcode_for_products/views/purchase_order_views.xml @@ -0,0 +1,16 @@ + + + + + purchase.order.view.form.inherit.multi.barcode + + purchase.order + + + + + + + + \ No newline at end of file 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..860bfc27c --- /dev/null +++ b/multi_barcode_for_products/views/sale_order_views.xml @@ -0,0 +1,16 @@ + + + + + sale.order.view.form.inherit.multi.barcode + + sale.order + + + + + + + + \ No newline at end of file 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..d31b63dbd --- /dev/null +++ b/multi_barcode_for_products/views/stock_picking_views.xml @@ -0,0 +1,15 @@ + + + + + stock.picking.view.form.inherit.multi.barcode + stock.picking + + + + + + + + \ No newline at end of file