5 changed files with 136 additions and 77 deletions
@ -0,0 +1,11 @@ |
|||
//@odoo-module
|
|||
import { PosGlobalState} from 'point_of_sale.models'; |
|||
import Registries from 'point_of_sale.Registries'; |
|||
const StockLotGlobalState = (PosGlobalState) => class StockLotGlobalState extends PosGlobalState { |
|||
async _processData(loadedData) { |
|||
await super._processData(...arguments); |
|||
this.db.product_by_lot = loadedData['multi.barcode.products']; |
|||
this.db.product_by_lot_id = loadedData['multi_barcode'] |
|||
} |
|||
} |
|||
Registries.Model.extend(PosGlobalState, StockLotGlobalState); |
@ -0,0 +1,38 @@ |
|||
odoo.define('pos_product_search_by_ref.product_product', function (require) { |
|||
'use strict'; |
|||
const DB = require('point_of_sale.DB'); |
|||
var core = require('web.core'); |
|||
var utils = require('web.utils'); |
|||
DB.include({ |
|||
search_product_in_category: function(category_id, query){ |
|||
var old_query = query |
|||
try { |
|||
query = query.replace(/[\[\]\(\)\+\*\?\.\-\!\&\^\$\|\~\_\{\}\:\,\\\/]/g,'.'); |
|||
query = query.replace(/ /g,'.+'); |
|||
var re = RegExp("([0-9]+):.*?"+utils.unaccent(query),"gi"); |
|||
}catch(_e){ |
|||
return []; |
|||
} |
|||
var results = []; |
|||
for(var i = 0; i < this.limit; i++){ |
|||
var r = re.exec(this.category_search_string[category_id]); |
|||
if(r){ |
|||
var id = Number(r[1]); |
|||
const product = this.get_product_by_id(id); |
|||
if (!(product.active && product.available_in_pos)) continue; |
|||
results.push(product); |
|||
}else if(this.product_by_lot_id[old_query]){ |
|||
const product = this.get_product_by_id(this.product_by_lot_id[old_query]); |
|||
if (!(product.active && product.available_in_pos)) continue; |
|||
if(!results.includes(product)){ |
|||
results.push(product); |
|||
} |
|||
}else{ |
|||
break; |
|||
} |
|||
} |
|||
return results; |
|||
} |
|||
}) |
|||
return DB; |
|||
}); |
Loading…
Reference in new issue