我通过以下代码
在analytics_id
中设置account.move.line
的默认值
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 zero
或 credit field value less then zero
,则analytics_id
领域仍然是空的。
答案 0 :(得分: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]
同样的逻辑你可以应用于两个组条件(这意味着在if和else的当前代码下)。
希望这有帮助。