2016-03-29 29 views
0

Varsayılan bomba satırlarından varsayılan değerler olarak varsayılan değerleri almak için mrp_bom_history adlı bir OpenERP eklentisini değiştirmeye çalışıyorum.OpenERP one2many varsayılan değeri

how to initialize a default one2many fields in OpenERP'a benzer bir bom_line kimlikleri listesi döndürmek için bir _read_line yöntemi hazırladım, ancak 'Kayıt düzgün yüklenmemiş' özel durumu alıyorum ve nedenini bulmakta zorlanıyorum. save_bom_history.py gelen

Python kodu:

class save_bom_history(osv.osv_memory): 
    def _read_line(self,cr,uid,context=None): 
     bom = self.pool.get('mrp.bom').browse(cr,uid,context['active_id']) 
     result = [] 
     for lines in bom.bom_lines: 
      result.append(lines.id) 
     return result 

    _name  = "save.bom.history" 
    _columns = { 
        'name'   : fields.char('Name'), 
        'cut_off_date' : fields.date('Cut-off Date'), 
        'new_bom_ids' : fields.one2many('save.bom.history.line','\ 
wizard_id','New Bill of Material'), 
        } 

    _defaults = { 
        'name'   : "History", 
        'cut_off_date' : time.strftime('%Y-%m-%d'), 
        'new_bom_ids' : _read_line, 
        } 
+0

nesne save.bom.history.line işe yapılan, bir sihirbaz mı? – yannicksoldati

+0

Save_bom_history, bir ad alanı ve bir kesim tarihi alanına sahip bir sihirbazdır ve daha sonra, ürün adı, ürün miktarı, ölçü birimi, geçerli olandan geçerli olan bir new_bom_ids satırına sahiptir. – MortenS

+0

Save.bom.history.line ayrıca bir ürüne BoM eklemek için kullanılan bir sihirbazdır. Yeni BoM oluşturulduğunda save_bom_history_line sihirbazı tarafından oluşturulan satırlardan gelen veriler kullanılır. Bu yüzden save.bom.history sihirbazına yerleştirilmiştir. – MortenS

cevap

0

One2many ve Many2many içinde/alanla ilişkili saklanan kayıtların setini işlemek için özel bir "komutları" biçimini kullanın.

bu deneyin:

result.append((0, 0, lines.id)) 
+0

Doğru yönde bir adımdır, ancak BoM'deki satırlara karşılık gelen boş çizgilerle bir sihirbazım var. Http://imgur.com/GPyQRDE 'de olduğu gibi düşünüyorum çünkü BoM satırlarında büyücüye yüklenmeye çalışıyorum. Çizgileri düzenlemeye çalıştığımda, değişikliklerin hemen atıldığını da eklemeliyim. – MortenS

0

Ben bir demet dönen yerine id

 for lines in bom.bom_lines: 
     line_data = { 
         'name'    : lines.name, 
         'date_start'  : lines.date_start, 
         'date_stop'  : time.strftime('%Y-%m-%d'), 
         'product_qty'  : lines.product_qty, 
         'product_id'  : lines.product_id and lines.product_id.id or False, 
         'product_uom'  : lines.product_uom and lines.product_uom.id or False, 
         'bom_id'   : bom and bom.id or False, 
         } 
     result.append((0,0,line_data)) 
    return result 
İlgili konular