Modification : gère point_of_sale.patch dans ce module.
[burette/pos_membership.git] / static / src / js / screens.js
1 function openerp_pos_membership_screens(instance, module){
2 module.PartnerScreenWidget = module.ScreenWidget.extend({
3 template:'PartnerScreenWidget',
4
5 next_screen: 'products',
6
7 show_numpad: false,
8 show_leftpane: false,
9 init: function(parent, options) {
10 //console.log("[pos_membership] [PartnerScreenWidget] [init]");
11 this._super(parent, options);
12 this.model = options.model;
13 // TODO: this.pos.bind('change:selectedOrder', this.change_selected_order, this);
14 },
15 start: function(){
16 //console.log("[pos_membership] [PartnerScreenWidget] [start]");
17 var self = this;
18
19 this.partner_search_widget = new module.PartnerSearchWidget(this,{});
20 this.partner_search_widget.replace($('.placeholder-PartnerSearchWidget'));
21
22 this.partner_list_widget = new module.PartnerListWidget(this,{
23 click_partner_action: function(partner){
24 self.pos.get('selectedOrder').addPartner(partner);
25 self.pos_widget.screen_selector.set_current_screen(self.next_screen);
26 },
27 });
28 this.partner_list_widget.replace($('.placeholder-PartnerListWidget'));
29 },
30 show: function(){
31 //console.log("[pos_membership] [PartnerScreenWidget] [show]");
32 this._super();
33
34 this.partner_search_widget.renderElement();
35
36 if(this.pos.iface_vkeyboard){
37 this.pos_widget.onscreen_keyboard.connect();
38 }
39 },
40 close: function(){
41 this._super();
42 this.pos_widget.order_widget.set_numpad_state(null);
43 this.pos_widget.payment_screen.set_numpad_state(null);
44 },
45 });
46 module.ProductScreenWidget = module.ProductScreenWidget.extend({
47 back_screen: 'partner',
48 show: function(){
49 this._super();
50 var self = this;
51 this.back_button = this.add_action_button({
52 label: 'Back',
53 icon: '/point_of_sale/static/src/img/icons/png48/go-previous.png',
54 click: function(){
55 self.pos.get('selectedOrder').get('orderLines').reset([]);
56 self.pos_widget.numpad.state.trigger('set_value','remove');
57 self.pos_widget.screen_selector.set_current_screen(self.back_screen);
58 },
59 });
60 },
61 });
62 module.PartnerCreateScreenWidget = module.ScreenWidget.extend({
63 template: 'PartnerCreateScreenWidget',
64 show_numpad: false,
65 show_leftpane: false,
66 back_screen: 'partner',
67 next_screen: 'products',
68 init: function(parent, options) {
69 this._super(parent, options);
70 this.model = options.model;
71 },
72 show: function(){
73 //console.log("[pos_membership] [PartnerCreateScreenWidget] [show]");
74 this._super();
75 var self = this;
76
77 this.back_button = this.add_action_button({
78 label: 'Back',
79 icon: '/point_of_sale/static/src/img/icons/png48/go-previous.png',
80 click: function(){
81 self.pos_widget.screen_selector.set_current_screen(self.back_screen);
82 },
83 });
84 this.validate_button = this.add_action_button({
85 label: 'Validate',
86 name: 'validation',
87 icon: '/point_of_sale/static/src/img/icons/png48/validate.png',
88 click: function(){
89 self.validatePartner();
90 },
91 });
92 this.updatePartnerCreateSummary();
93 },
94 close: function(){
95 this._super();
96 },
97 back: function() {
98 this.pos_widget.screen_selector.set_current_screen(self.back_screen);
99 },
100 validatePartner: function() {
101 var partner = this.pos.get('selectedPartner');
102
103 this.pos.push_partner(partner.exportAsJSON());
104 this.pos.get('selectedOrder').addPartner({name:partner.name}); // NOTE: .id set asynchronously in .done()
105 this.pos_widget.screen_selector.set_current_screen(this.next_screen);
106 },
107 renderElement: function() {
108 //console.log("[pos_membership] [PartnerCreateScreenWidget] [renderElement]");
109 this._super();
110 this.updatePartnerCreateSummary();
111 },
112 updatePartnerCreateSummary: function() {
113 var partner = this.pos.get('selectedPartner');
114 if(partner){
115 //console.log("[pos_membership] [PartnerCreateScreenWidget] [updatePartnerCreateSummary] partner=",partner.get('name'));
116 this.$('#partner-create-name').html(partner.get('name'));
117 }
118 },
119 });
120 }