diff --git a/multi_barcodes_pos/__manifest__.py b/multi_barcodes_pos/__manifest__.py index d74d083da..cc6d9afc1 100644 --- a/multi_barcodes_pos/__manifest__.py +++ b/multi_barcodes_pos/__manifest__.py @@ -25,7 +25,7 @@ 'name': 'POS Product Multi Barcode', 'summary': """Allows to create multiple barcode for a single product""", 'description': """Allows to create multiple barcode for a single product""", - 'version': '15.0.1.0.1', + 'version': '15.0.1.0.2', 'author': 'Cybrosys Techno Solutions', 'company': 'Cybrosys Techno Solutions', 'maintainer': 'Cybrosys Techno Solutions', @@ -39,7 +39,10 @@ ], 'assets': { 'point_of_sale.assets': [ - 'multi_barcodes_pos/static/src/js/pos_scan.js' + 'multi_barcodes_pos/static/src/js/search_bar.js', + 'multi_barcodes_pos/static/src/js/ProductsWidgetControlPanel.js', + 'multi_barcodes_pos/static/src/js/pos_scan.js', + ], }, 'images': ['static/description/banner.png'], diff --git a/multi_barcodes_pos/models/product_product.py b/multi_barcodes_pos/models/product_product.py index 04c5291fe..be5aace7b 100644 --- a/multi_barcodes_pos/models/product_product.py +++ b/multi_barcodes_pos/models/product_product.py @@ -86,5 +86,4 @@ class ProductMultiBarcode(models.Model): template_multi = fields.Many2one('product.template') def get_barcode_val(self, product): - # returns barcode of record in self and product id return self.multi_barcode, product diff --git a/multi_barcodes_pos/static/src/js/ProductsWidgetControlPanel.js b/multi_barcodes_pos/static/src/js/ProductsWidgetControlPanel.js new file mode 100644 index 000000000..eb64a372b --- /dev/null +++ b/multi_barcodes_pos/static/src/js/ProductsWidgetControlPanel.js @@ -0,0 +1,36 @@ +odoo.define('multi_barcodes_pos.barcode_search_db', function(require) { + "use strict"; + +var PosDB = require('point_of_sale.DB'); + +PosDB.include({ + +_product_search_string: function(product) { + var result = product.pos.product_barcodes.filter(function(dataObj){ + return dataObj.product_multi[0] === product.id + }) + var str = product.display_name; + if (product.barcode) { + str += '|' + product.barcode; + } + if (product.default_code) { + str += '|' + product.default_code; + } + if (product.description) { + str += '|' + product.description; + } + if (product.description_sale) { + str += '|' + product.description_sale; + } + if (product.barcode_carton) { + str += '|' + product.barcode_carton; + } + if (result.length !=0) { + result.forEach(item => str += '|' + item.multi_barcode); + } + str = product.id + ':' + str.replace(/:/g, '') + '\n'; + return str; +}, + +}); + }); \ No newline at end of file diff --git a/multi_barcodes_pos/static/src/js/search_bar.js b/multi_barcodes_pos/static/src/js/search_bar.js new file mode 100644 index 000000000..5879ac9d2 --- /dev/null +++ b/multi_barcodes_pos/static/src/js/search_bar.js @@ -0,0 +1,15 @@ +odoo.define('multi_barcodes_pos.barcode_search', function(require) { + "use strict"; + + var models = require('point_of_sale.models'); + + models.load_models({ + model: 'multi.barcode.products', + fields: ['id','multi_barcode','product_multi'], + loaded: function(self, barcodes){ + self.set('multi_barcode',barcodes); + self.product_barcodes = barcodes; + self.db.product_barcodes = barcodes; + }, + },{'before': 'product.product'}); +});