diff --git a/addons/point_of_sale/static/src/css/pos.css b/addons/point_of_sale/static/src/css/pos.css index f9b79713069..4ce4ea18eb1 100644 --- a/addons/point_of_sale/static/src/css/pos.css +++ b/addons/point_of_sale/static/src/css/pos.css @@ -2088,7 +2088,7 @@ td { margin-top: 20px; } .pos .popup .body.traceback { - height: 264px; + height: 238px; overflow: auto; font-size: 14px; text-align: left; diff --git a/addons/point_of_sale/static/src/js/models.js b/addons/point_of_sale/static/src/js/models.js index ad2edf147ee..77e37c06d61 100644 --- a/addons/point_of_sale/static/src/js/models.js +++ b/addons/point_of_sale/static/src/js/models.js @@ -650,7 +650,7 @@ exports.PosModel = Backbone.Model.extend({ var invoiced = new $.Deferred(); if(!order.get_client()){ - invoiced.reject('error-no-client'); + invoiced.reject({code:400, message:'Missing Customer', data:{}}); return invoiced; } @@ -668,8 +668,8 @@ exports.PosModel = Backbone.Model.extend({ var transfer = self._flush_orders([self.db.get_order(order_id)], {timeout:30000, to_invoice:true}); - transfer.fail(function(){ - invoiced.reject('error-transfer'); + transfer.fail(function(error){ + invoiced.reject(error); done.reject(); }); diff --git a/addons/point_of_sale/static/src/js/screens.js b/addons/point_of_sale/static/src/js/screens.js index f5e953f4872..5c3349cda07 100644 --- a/addons/point_of_sale/static/src/js/screens.js +++ b/addons/point_of_sale/static/src/js/screens.js @@ -1804,7 +1804,7 @@ var PaymentScreenWidget = ScreenWidget.extend({ invoiced.fail(function(error){ self.invoicing = false; - if (error === 'error-no-client') { + if (error.message === 'Missing Customer') { self.gui.show_popup('confirm',{ 'title': _t('Please select the Customer'), 'body': _t('You need to select the customer before you can invoice an order.'), @@ -1812,11 +1812,21 @@ var PaymentScreenWidget = ScreenWidget.extend({ self.gui.show_screen('clientlist'); }, }); - } else { + } else if (error.code < 0) { // XmlHttpRequest Errors self.gui.show_popup('error',{ 'title': _t('The order could not be sent'), 'body': _t('Check your internet connection and try again.'), }); + } else if (error.code === 200) { // OpenERP Server Errors + self.gui.show_popup('error-traceback',{ + 'title': error.data.message || _t("Server Error"), + 'body': error.data.debug || _t('The server encountered an error while receiving your order.'), + }); + } else { // ??? + self.gui.show_popup('error',{ + 'title': _t("Unknown Error"), + 'body': _t("The order could not be sent to the server due to an unknown error"), + }); } });