Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 值是JS Odoo POS中未定义的返回模型_Javascript_Xml_Openerp_Odoo 10 - Fatal编程技术网

Javascript 值是JS Odoo POS中未定义的返回模型

Javascript 值是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

我正在尝试覆盖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.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值?。

您的代码中有很多问题,我可以列出一些:

  • 在扩展订单线模型的price.js中,您从后端调用了函数“caculate_price=>这是一个异步函数,因此我不能立即为您返回值=>您的函数在调用成功之前返回
    未定义的
  • 您不需要
    将\u导出为\u JSON()
    ,您可以直接从Orderline对象获取所需的值(字段:product\u id、uom、qty、price\u unit)
  • 在“price.xml”中,如果您想从模型中调用一个函数,您错过了父项,它应该是这样的
    行。get\u unit\u display\u price()
  • 如何在执行新模型函数后从js设置xml值 (模型中的js值)

    有两种选择:

    • 选项1:通过
      rpc
      调用服务器上py文件的方法,然后像您一样等待响应结果(我不推荐这种方式)。所以当调用完成后,您应该得到一个DOM,其中的值应该以HTML显示,然后将值更新到它
    • 选项2:我建议您实施一种“计算价格”的方法,该方法将执行与
      订单行
      模型中的服务器相同的逻辑,因此您的POS可以在没有互联网的情况下工作(半脱机模式)。然后您可以从xml文件轻松调用它。这意味着您在
      price.js中编写函数
      calculate\u price
      ,然后在
      get\u unit\u display\u price
    希望它有帮助,我希望您能执行选项2。

    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