[FIX] point_of_sale: don't race order destruction in customer display

By the time the product images are downloaded the current order object
may have already been destroyed. This can happen when e.g. clicking on
the 'Next order' button.
This commit is contained in:
Joren Van Onder
2017-06-14 15:28:24 -07:00
parent 7b4748835c
commit 86cf4f41b7
+3 -1
View File
@@ -731,6 +731,7 @@ exports.PosModel = Backbone.Model.extend({
return $.when.apply($, get_image_deferreds).then(function () {
var rendered_order_lines = "";
var rendered_payment_lines = "";
var order_total_with_tax = self.chrome.format_currency(0);
if (order) {
rendered_order_lines = QWeb.render('CustomerFacingDisplayOrderLines', {
@@ -741,11 +742,12 @@ exports.PosModel = Backbone.Model.extend({
'order': order,
'widget': self.chrome,
});
order_total_with_tax = self.chrome.format_currency(order.get_total_with_tax());
}
var $rendered_html = $(rendered_html);
$rendered_html.find('.pos_orderlines_list').html(rendered_order_lines);
$rendered_html.find('.pos-total').find('.pos_total-amount').html(self.chrome.format_currency(order.get_total_with_tax()));
$rendered_html.find('.pos-total').find('.pos_total-amount').html(order_total_with_tax);
var pos_change_title = $rendered_html.find('.pos-change_title').text();
$rendered_html.find('.pos-paymentlines').html(rendered_payment_lines);
$rendered_html.find('.pos-change_title').text(pos_change_title);