Modification : gère point_of_sale.patch dans ce module.
[burette/pos_membership.git] / static / src / js / db.js
1 function openerp_pos_membership_db(instance, module){
2 module.PosLS = module.PosLS.extend({
3 init: function(options){
4 //console.log("[pos_membership] [PosLS] [init]: options=", options, "this=", this);
5 this._super(this, options);
6 this.partner_search_string = '';
7 this.partner_by_id = {};
8 this.partner_list = [];
9 },
10 _partner_search_string: function(partner){
11 var str = '' + partner.id + ':' + partner.name;
12 return str + '\n';
13 },
14 add_partners: function(partners){
15 if(!partners instanceof Array){
16 partners = [partners];
17 }
18 //console.log("[pos_membership] [add_partners] :", partners);
19 for(var i = 0, len = partners.length; i < len; i++){
20 var partner = partners[i];
21 //console.log("[db] [add_partners] partner.name:",partner.name);
22 this.partner_by_id[partner.id] = partner;
23 this.partner_list.push(partner);
24 this.partner_search_string += this._partner_search_string(partner);
25 }
26 //console.log("[db] [add_partners] partner_search_string:", this.partner_search_string);
27 },
28 get_partner_by_id: function(id){
29 return this.partner_by_id[id];
30 },
31 search_partner: function(query){
32 var re = RegExp("([0-9]+):.*?"+query,"gi");
33 var results = [];
34 //console.log("[db] [search_partner] query:",query);
35 for(var i = 0; i < this.limit; i++){
36 r = re.exec(this.partner_search_string);
37 if(r){
38 var id = Number(r[1]);
39 //console.log("[db] [search_partner] id:",id);
40 results.push(this.get_partner_by_id(id));
41 }
42 else{
43 break;
44 }
45 }
46 return results;
47 },
48 get_partner_list: function(){
49 return this.partner_list;
50 },
51 add_partner: function(partner){
52 //console.log("[pos_membership] [PosLS] [add_partner] partner=", partner.name);
53 var last_id = this.load('last_partner_id',0);
54 var partners = this.load('partners',[]);
55 partners.push({id: last_id + 1, data: partner});
56 this.save('last_partner_id',last_id+1);
57 this.save('partners',partners);
58 },
59 remove_partner: function(partner_id){
60 var partners = this.load('partners',[]);
61 partners = _.filter(partners, function(partner){
62 return partner.id !== partner_id;
63 });
64 this.save('partners',partners);
65 },
66 get_partners: function(){
67 return this.load('partners',[]);
68 },
69 });
70 }