2016-07-22 74 views
0

我对下面的代码在account.move.line设立的analytics_id默认值设置默认值取决于其他领域odoo

class account_move_line(models.Model): 
    _inherit = 'account.move.line' 
    _name = "account.move.line" 

    def _get_default_account(self, cr, uid, context=None): 
     obj = self.pool.get('account.move') 
     value = obj.browse(cr, uid, uid) 
     if value.move_id.debit>0 or value.move_id.credit<0: 
      res = self.pool.get('account.analytic.plan.instance').search(cr, uid, [('code','=','LAL')], context=context) 
      return res and res[0] or False 

    _defaults = { 
     'analytics_id': _get_default_account, 
    } 

它工作很适合我,但现在我想设置,如果这个默认值debit field value is greater then zerocredit field value less then zero否则analytics_id字段保持空白。

+0

你好塔希尔你问,但你不投票时,一些帮助你mmmmmmmm不好男人 – Cherif

+0

对不起,先生,我会记住下一次... –

+0

谢谢你,你解决了这个问题! – Cherif

回答

0

尝试使用这种类型的代码

res = self.pool.get('account.analytic.plan.instance').search(cr, uid, [('code','=','LAL')], context=context) 
if res:  
    br_analytic_plan=self.pool.get('account.analytic.plan.instance').browse(cr,uid,res[0],context=context) 
    if ---your Condition---- # You can access For example. br_analytic_plan.amount > 0 
     return res[0] 

这可以应用到这两个群体的条件相同的逻辑(这意味着如果在其他和你目前的代码)。

希望这会有所帮助。

+0

考虑到移动行两个字段'debit'和'credit'存在'analytics_id'字段。我想在借方> 0或贷方<0时在analytics_id中设置默认值 –