--- /dev/null
+function openerp_pos_membership_screens(instance, module){
+ module.PartnerScreenWidget = module.ScreenWidget.extend({
+ template:'PartnerScreenWidget',
+
+ next_screen: 'products',
+
+ show_numpad: false,
+ show_leftpane: false,
+ init: function(parent, options) {
+ //console.log("[pos_membership] [PartnerScreenWidget] [init]");
+ this._super(parent, options);
+ this.model = options.model;
+ // TODO: this.pos.bind('change:selectedOrder', this.change_selected_order, this);
+ },
+ start: function(){
+ //console.log("[pos_membership] [PartnerScreenWidget] [start]");
+ var self = this;
+
+ this.partner_search_widget = new module.PartnerSearchWidget(this,{});
+ this.partner_search_widget.replace($('.placeholder-PartnerSearchWidget'));
+
+ this.partner_list_widget = new module.PartnerListWidget(this,{
+ click_partner_action: function(partner){
+ self.pos.get('selectedOrder').addPartner(partner);
+ self.pos_widget.screen_selector.set_current_screen(self.next_screen);
+ },
+ });
+ this.partner_list_widget.replace($('.placeholder-PartnerListWidget'));
+ },
+ show: function(){
+ //console.log("[pos_membership] [PartnerScreenWidget] [show]");
+ this._super();
+
+ this.partner_search_widget.renderElement();
+
+ if(this.pos.iface_vkeyboard){
+ this.pos_widget.onscreen_keyboard.connect();
+ }
+ },
+ close: function(){
+ this._super();
+ this.pos_widget.order_widget.set_numpad_state(null);
+ this.pos_widget.payment_screen.set_numpad_state(null);
+ },
+ });
+ module.ProductScreenWidget = module.ProductScreenWidget.extend({
+ back_screen: 'partner',
+ show: function(){
+ this._super();
+ var self = this;
+ this.back_button = this.add_action_button({
+ label: 'Back',
+ icon: '/point_of_sale/static/src/img/icons/png48/go-previous.png',
+ click: function(){
+ self.pos.get('selectedOrder').get('orderLines').reset([]);
+ self.pos_widget.numpad.state.trigger('set_value','remove');
+ self.pos_widget.screen_selector.set_current_screen(self.back_screen);
+ },
+ });
+ },
+ });
+ module.PartnerCreateScreenWidget = module.ScreenWidget.extend({
+ template: 'PartnerCreateScreenWidget',
+ show_numpad: false,
+ show_leftpane: false,
+ back_screen: 'partner',
+ next_screen: 'products',
+ init: function(parent, options) {
+ this._super(parent, options);
+ this.model = options.model;
+ },
+ show: function(){
+ //console.log("[pos_membership] [PartnerCreateScreenWidget] [show]");
+ this._super();
+ var self = this;
+
+ this.back_button = this.add_action_button({
+ label: 'Back',
+ icon: '/point_of_sale/static/src/img/icons/png48/go-previous.png',
+ click: function(){
+ self.pos_widget.screen_selector.set_current_screen(self.back_screen);
+ },
+ });
+ this.validate_button = this.add_action_button({
+ label: 'Validate',
+ name: 'validation',
+ icon: '/point_of_sale/static/src/img/icons/png48/validate.png',
+ click: function(){
+ self.validatePartner();
+ },
+ });
+ this.updatePartnerCreateSummary();
+ },
+ close: function(){
+ this._super();
+ },
+ back: function() {
+ this.pos_widget.screen_selector.set_current_screen(self.back_screen);
+ },
+ validatePartner: function() {
+ var partner = this.pos.get('selectedPartner');
+
+ this.pos.push_partner(partner.exportAsJSON());
+ this.pos.get('selectedOrder').addPartner({name:partner.name}); // NOTE: .id set asynchronously in .done()
+ this.pos_widget.screen_selector.set_current_screen(this.next_screen);
+ },
+ renderElement: function() {
+ //console.log("[pos_membership] [PartnerCreateScreenWidget] [renderElement]");
+ this._super();
+ this.updatePartnerCreateSummary();
+ },
+ updatePartnerCreateSummary: function() {
+ var partner = this.pos.get('selectedPartner');
+ if(partner){
+ //console.log("[pos_membership] [PartnerCreateScreenWidget] [updatePartnerCreateSummary] partner=",partner.get('name'));
+ this.$('#partner-create-name').html(partner.get('name'));
+ }
+ },
+ });
+ }