2016-06-16 12 views
3

Ich Aktualisierung der update_payment_summary Funktion im Point_Of_Sale bekommen, ist diese Funktion Teil des PaymentScreenWidget. Jetzt möchte ich die Produkte aus den Bestellzeilen abrufen.Odoo PoS order Produkt

Ich habe versucht, mit

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

Aber wenn ich Auftragszeilen drucken ich [object Object]

Irgendwelche Ideen, wie ich das Produkt Gegenstand eines jeden Bestellposten bekommen?

Antwort

2

Ja, es gibt einen Grund, warum es Objekt zeigt.

OrderlineCollection Definition.

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

Bestelldefinition im Bestellmodell.

orderLines:  new module.OrderlineCollection() 

Also, wenn Sie über Code beobachten es zeigt, dass order ein Objekt von OrderlineCollection Modell ist und während Sie Orderlines von der Bestellung Modell bekommen es gibt Ihnen ein Objekt von OrderlineCollection.

Um zu identifizieren, was sich innerhalb des Objekts befindet, können Sie es durchlaufen oder Sie können den Schlüsselwert von diesem Objekt drucken.

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

Oder Sie können die Bestellzeilen durchlaufen.

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

Verwenden Sie die get_orderlines() Funktion, OrderLines aus bestimmten Auftrag zu erhalten.

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

hier ich Benutzer Underscore.js für eine Liste von Produkten erstellen.

können Sie Schleife mit Produkten Liste wie iterieren,

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