2016-07-20 18 views
0

Ich bin ein default value zu analytic distribution Feld in account.invoice.line von unten Code zuweisenAssign Standardwert zu einem Many2one Feld für bestimmte Benutzergruppe in odoo

 def _get_default_account(self, cr, uid, context=None): 
      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, 
      } 

aber jetzt will ich Standardwert für bestimmte Gruppe von Benutzern einzustellen. Ich möchte einen Wert für eine Gruppe und einen anderen Wert für eine andere Gruppe festlegen. Bedeutet, dass ich zwei verschiedene Standardwerte für verschiedene Benutzer einstellen möchte. Jemand bitte geben Sie mir eine Idee darüber. Ich werde sehr dankbar sein ...

Antwort

1

Der einfachste Weg zu nähern, die has_group Methode verwendet. Sie sollten es tun, wie:

if self.env['res.users'].has_group('base.group1'): 
    res = self.pool.get('account.analytic.plan.instance').search(cr, uid, [('code','=','LAL')], context=context) 
    return res and res[0] or False 
elif self.env['res.users'].has_group('base.group2'): 
    res = self.pool.get('account.analytic.plan.instance').search(cr, uid, [('code','=','SAS')], context=context) 
    return res and res[0] or False 

Und so weiter und so fort.

+0

Sir gibt mir diesen Fehler 'AttributError: 'account.invoice.line' Objekt hat kein Attribut 'env'' –

+0

Dank *** Ariusz Mizgier *** ich brauchte' self.pool [' res.users ' ] .has_group (cr, uid, 'base.group1') ' –

+0

SIR es funktioniert gut für' account.invoice.line', aber es tut nichts für 'account.move.line', können Sie bitte erklären, was passiert. .. ??? –