From def4acae205da83282fbd471381a1c9e40c8d025 Mon Sep 17 00:00:00 2001 From: Pierre Masereel Date: Thu, 29 Aug 2019 13:58:18 +0000 Subject: [PATCH] [FIX] point_of_sale: make partner creation work Since changes made in the ORM, we cannot pass anymore string of integer to many2One. We are now parsing the fields from the formular to reprensent the integer as integer. Since changes made on image fields, the "image" field name was not correct so we renamed it in imgage_1920. TASK-ID: 2058650 closes odoo/odoo#36219 Signed-off-by: pimodoo --- addons/point_of_sale/static/src/js/screens.js | 36 +++++++++++-------- 1 file changed, 21 insertions(+), 15 deletions(-) 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',{