2016-07-22 21 views
0

I Standardwert von analytics_id in account.move.line von Code unten am EinrichtenSet Standardwert des Feldes hängt von anderem Feld in 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, 
    } 

es funktioniert gut für mich, aber jetzt will ich diesen Standardwert setzen, wenn debit field value is greater then zeroODERcredit field value less then zero ansonsten analytics_id Feld bleiben leer.

+0

hallo tahir Sie fragen, aber Sie nicht wählen, wenn einige Ihnen helfen mmmmmmmm nicht guten Mann – Cherif

+0

Sorry Herr, ich werde mich für das nächste Mal erinnern ... –

+0

Vielen Dank, dass Sie dieses Problem beheben! – Cherif

Antwort

0

Versuchen Sie, diese Art von Code

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] 

Die gleiche Logik, die beiden Gruppen Bedingung kann verwenden (es heißt, unter, wenn und sonst auf Ihrem aktuellen Code) Sie gelten.

Hoffe, das hilft.

+0

In der Kontobewegungszeile sind zwei Felder 'debit' und' credit' mit dem Feld 'analytics_id' vorhanden. Ich möchte den Standardwert etwas in analytics_id setzen, wenn Debit> 0 oder Kredit <0 –