2013-10-25 57 views
1

我有一個與fields.property()有關的問題。 當我更改相關分公司的「股票輸入/輸出賬戶」時,其他分行數據將在ir.property表中丟失。如何做fields.property()?

我創建了我的內部模塊,其on_change功能用於「股票輸入/輸出帳戶」字段。當on_change函數完成時...如果表中沒有相關數據,它將保存在ir.property表中。 但是...當我點擊'保存'按鈕時,更新的數據(首先保存數據)和添加的數據將在表中。但他們只會使用更新的數據..不使用新增的數據。爲什麼?

on_change功能:

def onChangeAcc(self,cr,uid,ids,aid,name,context=None): 
      print "on chang acc......................" 
      print("IDS",ids,"AID",aid,"name",name) 
      if ids and aid: 
       val_ref = 'account.account,'+str(aid) 
       res_id = 'product.template,'+str(ids[0]) 
       company_id = self.pool.get('res.users').browse(cr, uid, uid, context).company_id.id 
       cr.execute("SELECT id FROM ir_property WHERE name='"+name+"' AND value_reference='"+val_ref+"' AND res_id='"+res_id+"' AND company_id="+str(company_id))   
       result = cr.fetchall() 
       if not result: 
        print "if not result..................." 
        company_id = self.pool.get('res.users').browse(cr, uid, uid, context).company_id.id 
        fields_id = self.pool.get('ir.model.fields').search(cr, uid, [('name','=',name)])[0] 
        vals = { 
         'name':name, 
         'value_reference':val_ref, 
         'res_id':res_id, 
         'company_id':company_id, 
         'fields_id':fields_id, 
        } 
        print("vals",vals) 
        self.pool.get('ir.property').create(cr,uid,vals,context) 

如果我需要多公司的任何配置..請,給我解釋一下。 我不知道任何配置。 。:( 感謝

回答