2016-02-28 37 views
0

我希望客戶能夠強制在發票表單視圖中選擇日記帳,並且不要預先選擇第一個日記帳。如何在發票上將Odoo發票默認日記帳設置爲空?

哪個是remplace default的正確方法,在partner_id字段中更改默認日誌選擇事件是tigger。

編輯

如果我嘗試重寫onchange_partner_id功能我得到以下錯誤:

File "/opt/PycharmProjects/gca_odoo/clientes/client_PRINCE/models.py", line 22, in onchange_partner_id 
    self.journal_id = False 
    File "/opt/PycharmProjects/gca_odoo/3party/server/openerp/fields.py", line 847, in __set__ 
    record.ensure_one() 
    File "/opt/PycharmProjects/gca_odoo/3party/server/openerp/models.py", line 5306, in ensure_one 
    raise except_orm("ValueError", "Expected singleton: %s" % self) 
except_orm: ('ValueError', 'Expected singleton: account.invoice()') 

我使用下面的代碼:

class account_invoice(models.Model): 
    _inherit = 'account.invoice' 

    @api.multi 
    def onchange_partner_id(self, type, partner_id, date_invoice=False,payment_term=False, partner_bank_id=False, company_id=False): 
     ret = super(account_invoice,self).onchange_partner_id(type=type, partner_id= partner_id, 
     date_invoice=date_invoice,payment_term=payment_term, partner_bank_id=partner_bank_id, company_id=company_id) 
     self.journal_id = False 
     return ret 

回答

0

可以覆蓋平變化方法,調用超級,然後將jopurnal字段設置爲False,以清空它。

編輯: 您正在使用裝飾。您應該使用代替一個

+0

文件「/opt/PycharmProjects/gca_odoo/clientes/client_PRINCE/models.py」 22行,在onchange_partner_id self.journal_id =假 文件 「/opt/PycharmProjects/gca_odoo/3party/server/openerp/fields.py」,線路847,在__set__ record.ensure_one() 文件「/選擇/ PycharmProjects/gca_odoo/3party/server/openerp/models.py「,第5306行,在ensure_one中 raise except_orm(」ValueError「,」Expected singleton:%s「%self) –

+0

代碼I使用: @ api.multi DEF onchange_partner_id(個體,種類,PARTNER_ID,date_invoice =假,payment_term =假,partner_bank_id =假,COMPANY_ID =假): RET =超級(account_invoice,自我).onchange_partner_id(類型=類型,partner_id = partner_id, date_invoice = date_invoice,payment_term = payment_term,partner_bank_id = partner_bank_id,company_id = company_id) self.journal_id = False return ret –

+0

無法在評論中理解它。用代碼編輯問題(格式化) –

0

我會做類似下面的代碼,我假設你要重寫正確的方法:

@api.multi 
def onchange_partner_id(self, type, partner_id, date_invoice=False, payment_term=False, 
         partner_bank_id=False, company_id=False): 
    res = super(invoice, self).onchange_partner_id(
     type, partner_id, date_invoice, 
     payment_term, partner_bank_id, company_id 
    ) 
    if partner_id: 
     res['value'].update({ 
      'journal_id': False, 
     }) 
    return res