odoo.define('product_library', function (require) { "use strict"; var db = require("point_of_sale.DB"); db.include({ normalize_characters: function (product) { // The normalization extract out combining diacritical marks // All those diacritics in range [\u0300-\u036f]. // See https://en.wikipedia.org/wiki/Combining_Diacritical_Marks. // All the diacritics are removed by the code below. return product.normalize("NFD") .replace(/[\u0300-\u036f]/g, "") .replace(/[\u0152-\u0153]/g, "oe"); }, add_custom_fields: function(product) { if(product) { var str = product.display_name; if(product.default_code){ str += '|' + product.default_code; } if(product.autor){ str += '|' + product.autor; } if(product.genero){ str += '|' + product.genero; } if(product.editorial){ str += '|' + product.editorial; } /* if (product.description) { str += '|' + product.description; } if (product.description_sale) { str += '|' + product.description_sale; } */ str = product.id + ':' + str.replace(':','') + '\n'; } return str; }, _product_search_string: function(product) { console.log("product : " + JSON.stringify(product, null, 4)); var str = this.add_custom_fields(product); console.log("string : " + str); var norm = this.normalize_characters(str); console.log("normalizado : " + norm); return norm; }, /* search_product_in_category: function (category_id, query) { return this._super(category_id, this.add_custom_fields(query)); },*/ }); return db; });