Javascript 值是JS Odoo POS中未定义的返回模型
我正在尝试覆盖POS Odoo中的订单行价格 我的价格.jsJavascript 值是JS Odoo POS中未定义的返回模型,javascript,xml,openerp,odoo-10,Javascript,Xml,Openerp,Odoo 10,我正在尝试覆盖POS Odoo中的订单行价格 我的价格.js get_unit_display_price: function(){ var self = this; var line = self.export_as_JSON(); var product = this.pos.db.get_product_by_id(line.product_id); fields.product_id = line.prod
get_unit_display_price: function(){
var self = this;
var line = self.export_as_JSON();
var product = this.pos.db.get_product_by_id(line.product_id);
fields.product_id = line.product_id;
fields.pricelist_id = this.pos.config.pricelist_id[0];
fields.uom = product.uom_id;
fields.line_qty = line.qty;
fields.price_unit = line.price_unit;
var model = new Model('pos.order');
this.total_price = model.call('calculate_price',
[0, fields]).done(function(result){
total_price = result['total_price'];
return result['total_price'];
});
}
price.xml
<t t-jquery=".price" t-operation="append">
<t t-esc="widget.format_currency(line.get_unit_display_price)"/>
</t>
我正在从模型(price.py)中获取价值总价
但在xml文件中的get\U unit\U display\U price中返回的是未定义的
在执行新模型函数(js value from model)后,如何从js设置xml值?。您的代码中有很多问题,我可以列出一些:
未定义的
将\u导出为\u JSON()
,您可以直接从Orderline对象获取所需的值(字段:product\u id、uom、qty、price\u unit)行。get\u unit\u display\u price()
- 选项1:通过
调用服务器上py文件的方法,然后像您一样等待响应结果(我不推荐这种方式)。所以当调用完成后,您应该得到一个DOM,其中的值应该以HTML显示,然后将值更新到它rpc
- 选项2:我建议您实施一种“计算价格”的方法,该方法将执行与
模型中的服务器相同的逻辑,因此您的POS可以在没有互联网的情况下工作(半脱机模式)。然后您可以从xml文件轻松调用它。这意味着您在订单行
price.js中编写函数
,然后在calculate\u price
get\u unit\u display\u price
get\u orderline:function(){
get_orderline: function() {
var order = this.pos.get_order();
var orderlines = order.orderlines.models;
var all_lines = [];
for (var i = 0; i < orderlines.length; i++) {
var line = orderlines[i]
if (line) {
all_lines.push({
'product_id': line.product.id,
'qty': line.quantity,
'price': line.get_display_price(),
})
}
}
return all_lines
},
var order=这个.pos.get_order();
var orderlines=order.orderlines.models;
var所有_行=[];
对于(var i=0;i