我为Odoo PoS编写了一个Javascript函数,在这个函数中我使用查询从后端python代码中声明的模型中获取数据。在此查询功能中,我想使用检索到的折扣并将其添加到我的订单行。
但由于某种原因,下面的代码片段总是首先生成,这导致折扣已经设置为0.
" 2"总是首先打印,然后是" 1",任何想法?
render_orderline: function(orderline){
var prodgroup;
var discounts= new openerp.Model('discountgroup');
discounts.query(["discount_field"])
.filter([['productgroup','=', prodgroup]])
.first()
.then(function(discountObj){
console.log("1")
var discount;
var disc;
discount = discountObj.discount_field;
disc = Math.min(Math.max(parseFloat(discount) || 0, 0),100);
orderline.discount = disc;
orderline.discountStr = '' + disc;
});
console.log("2")
var el_str = openerp.qweb.render('Orderline',{widget:this, line:orderline});
var el_node = document.createElement('div');
el_node.innerHTML = _.str.trim(el_str);
el_node = el_node.childNodes[0];
el_node.orderline = orderline;
el_node.addEventListener('click',this.line_click_handler);
orderline.node = el_node;
return el_node;