2016-10-27 5 views
0

解除one2many継続:1レコードのリンクを解除包みはOne2Many数ondefaultは私が法を使用して行うことができる午前たone2manyレコードの何をカウントする必要はありません

def update_cust(self,cr,uid,ids,context=None): 
    current_obj = self.browse(cr,uid,ids[0]) 
    one2many_ids=self.pool.get('customer.test').search(cr,uid,[], count=True) 

    if one2many_ids==0: 
     one2many_ids=1 
     count=one2many_ids 
    elif one2many_ids<11: 
     one2many_ids=one2many_ids+1 
     count=one2many_ids 
    elif one2many_ids==11: 
     return True 
    elif not one2many_ids: 
     count=one2many_ids=11 
    else: 
     one2many_ids=12 
     count=one2many_ids 
    self.pool.get('customer.test').create(cr,uid,{ 
          'cust_id':current_obj.id, 
          'customer':current_obj.customer.id, 
          'street':current_obj.street, 
          'phone':current_obj.phone, 
          'cust_address':current_obj.cust_address.id, 
          'code':count-1 
        }) 
    return True 

私は何をする必要があること、であるが、そしてone2many内のレコードの合計数が10で最も one2many定義&クラス定義でなければなりません次のレコードが11から継続しなければならない新しいレコード... &を追加します。

class customer_test(osv.osv): 
    _name="customer.test" 
    _columns={ 
      'customer':fields.many2one('res.partner','Customers',ondelete="cascade"), 
      'cust_id':fields.many2one('customer.test','CustId'), 
      'street':fields.char('Street',size=40), 
      'phone':fields.integer('Phone'), 
      'cust_address':fields.many2one('res.partner.address','Address'), 
      'cust_address2':fields.many2one('res.partner.address','Secondary Address'), 
      'cust_one2many':fields.one2many('customer.test','cust_id',''), 
      'code' : fields.integer('Code'), 
} 

答えて

0
def update_cust(self,cr,uid,ids,context=None): 
    current_obj = self.pool.get('customer.test').browse(cr,uid,ids[0]) 
    code=current_obj.code+1 
    count=one2many_ids=self.pool.get('customer.test').search(cr,uid,[('cust_id','=',current_obj.id)], count=True) 
    vals=self.pool.get('customer.test').search(cr,uid,[('id','=',current_obj.id)]) 
    sequence_obj = self.pool.get('customer.test') 
    seq_id = sequence_obj.search(cr, uid, [('id', '=', current_obj.id)]) 
    if count==0: 
     sequence_obj.write(cr, uid, seq_id, {'code': 1})  
    while current_obj.id in vals and count < 10: 
     sequence=self.pool.get('customer.test').browse(cr,uid,ids[0]).code 
     self.pool.get('customer.test').create(cr,uid,{ 
       'cust_id':current_obj.id, 
       'customer':current_obj.customer.id, 
       'street':current_obj.street, 
       'phone':current_obj.phone, 
       'cust_address':current_obj.cust_address.id, 
       'code':sequence}) 
     sequence_obj.write(cr, uid, seq_id, {'code': sequence+1})  
     return True 
    return True 

私の質問の解決策

関連する問題