【问题标题】:Odoo PoS get orderline productOdoo PoS 获取有序产品
【发布时间】:2016-06-16 09:12:34
【问题描述】:

我正在更新 Point_Of_Sale 中的 update_payment_summary 函数,该函数是 PaymentScreenWidget 的一部分。 现在我想从订单中检索产品。

我试过了

var order = this.pos.get('selectedOrder');
var orderlines = order.get('orderLines').models;

但是当我打印订单时,我得到 [object Object]

任何想法如何获取每个订单行的产品对象?

【问题讨论】:

    标签: javascript python openerp product point-of-sale


    【解决方案1】:

    是的,它显示对象是有原因的。

    OrderlineCollection 定义。

    module.OrderlineCollection = Backbone.Collection.extend({
            model: module.Orderline,
    });
    

    订单模型中的订单线定义。

    orderLines:     new module.OrderlineCollection()
    

    因此,如果您观察上面的代码,它表明 orderline 是 OrderlineCollection 模型的对象,当您从 order 模型中获取 orderlines 时,它会为您提供 OrderlineCollection 的对象。

    为了识别对象内部的内容,您可以遍历它,或者您可以从该对象打印键值。

    alert(orderline.forEach(function(k,v){k + " => + v}));
    

    或者你可以遍历订单线。

    for (line in orderline){
        alert(line.product_id);
    }
    

    【讨论】:

      【解决方案2】:

      使用get_orderlines() 函数从特定订单中获取订单行。

      var order = this.pos.get_order();
      var products = _.map(order.get_orderlines(), function (line) {return line.product; });
      console.log(products);
      

      我在这里使用 Underscore.js 创建产品列表。

      您可以使用产品列表迭代循环,例如,

      for(var i =0; i < products.length; i++)
          console.log(products[i].id);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-12-03
        • 2020-07-02
        • 1970-01-01
        • 1970-01-01
        • 2020-01-29
        • 2014-09-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多