diff --git a/addons/point_of_sale/static/src/js/screens.js b/addons/point_of_sale/static/src/js/screens.js index 6db6b3980cc..42322607563 100644 --- a/addons/point_of_sale/static/src/js/screens.js +++ b/addons/point_of_sale/static/src/js/screens.js @@ -1139,6 +1139,7 @@ var ClientListScreenWidget = ScreenWidget.extend({ init: function(parent, options){ this._super(parent, options); this.partner_cache = new DomCache(); + this.integer_client_details = ['country_id', 'state_id', 'property_product_pricelist']; }, auto_back: true, @@ -1339,29 +1340,34 @@ var ClientListScreenWidget = ScreenWidget.extend({ // save was successfull. save_client_details: function(partner) { var self = this; - + var fields = {}; this.$('.client-details-contents .detail').each(function(idx,el){ - fields[el.name] = el.value || false; + if (self.integer_client_details.includes(el.name)){ + var parsed_value = parseInt(el.value, 10); + if (isNaN(parsed_value)){ + fields[el.name] = false; + } + else{ + fields[el.name] = parsed_value + } + } + else{ + fields[el.name] = el.value || false; + } }); if (!fields.name) { this.gui.show_popup('error',_t('A Customer Name Is Required')); return; } - + if (this.uploaded_picture) { - fields.image = this.uploaded_picture; + fields.image_1920 = this.uploaded_picture; } - fields.id = partner.id || false; - fields.country_id = fields.country_id || false; + fields.id = partner.id || false; - if (fields.property_product_pricelist) { - fields.property_product_pricelist = parseInt(fields.property_product_pricelist, 10); - } else { - fields.property_product_pricelist = false; - } var contents = this.$(".client-details-contents"); contents.off("click", ".button.save"); @@ -1373,11 +1379,11 @@ var ClientListScreenWidget = ScreenWidget.extend({ }) .then(function(partner_id){ self.saved_client_details(partner_id); - },function(err,ev){ - ev.preventDefault(); + }).catch(function(error){ + error.event.preventDefault(); var error_body = _t('Your Internet connection is probably down.'); - if (err.data) { - var except = err.data; + if (error.message.data) { + var except = error.message.data; error_body = except.arguments && except.arguments[0] || except.message || error_body; } self.gui.show_popup('error',{