2013-06-03 33 views
0

我需要使用付款方式更改發票的狀態。使用「if」在openerp上更改「狀態」

def _payment_type_get(self, cr, uid, ids, field_name, arg, context={}): 
    result = {} 
    invoice_obj = self.pool.get('account.move.line') 
    for rec in self.browse(cr, uid, ids, context): 
     result[rec.id] = (0, 0) 
     invoice_id = invoice_obj.search(cr, uid, [(
      'move_id', '=', rec.move_id.id)], context=context) 
     if invoice_id: 
      inv = invoice_obj.browse(cr, uid, invoice_id[0], context) 
      if inv.payment_type: 
       result[rec.id] = (inv.payment_type.id, self.pool.get(
        'payment.type').browse(cr, uid, inv.payment_type.id, context).name) 
     else: 
      result[rec.id] = (0, 0) 
    return result 
    if result != '1': 
     return self.write(cr, uid, ids, {'state_cheque': 'usado'}) 
    else: 
     return self.write(cr, uid, ids, {'state_cheque': 'caixa'}) 

我需要在創建拿到支付類型的「檢查」,發票關閉過程中,這樣我就可以將其設置爲儲蓄銀行,如果它是一個檢查或Usado如果事實並非如此。我不知道是否所有的名字都是正確的,因爲我從一個人那裏複製它,他說這會(如果我讓它通過,我會感到羞恥)。

檢查,就像任何付款被保存在日記中一樣,如果我可以使用它來創建默認狀態,那麼檢查將被保存在特定日記中(ChequeJournal),它會更好。

我試圖做到的每一種方式都失敗了。最近我發現支付類型保存爲int,而不是字符或字符串,但改變它仍然沒有結果。

我無法使用self.write,因爲我在編輯account_move_line.py,OpenERP無法找到我想要添加狀態的內容。所以,我需要獲得發票ID才能更改該狀態。新問題出現了嗎?

回答

0

一旦return聲明被調用,函數立即退出,所以你最後4行不會被執行。 (或者這可能是格式錯誤?)