2016-09-20 1 views
0

J'essaie de définir la valeur par défaut de 'on delivery order' à 'on demand' dans le champ de création de facture dans les citations autre onglet d'information dans odoo. Mais ce n'est pas la valeur par défaut à la demande. Quelqu'un peut-il m'aider sur la façon de définir la valeur par défaut de créer une facture dans «sur demande».Comment définir la valeur par défaut de «sur bon de livraison» à «sur demande» dans le champ de création de facture dans les citations dans odoo?

code:

'order_policy': fields.selection([ 
         ('manual', 'On Demand'), 
         ('picking', 'On Delivery Order'), 
         ('prepaid', 'Before Delivery'), 
        ], 
        'Create Invoice', 
        required=True, 
        readonly=True, 
        states={ 
         'draft': [('readonly', False)], 
         'sent': [('readonly', False)] 
        }, 
       ), 

Résultats

_defaults = { 
     'order_policy': 'manual', 
} 

Répondre

1

Vous pouvez le faire par deux voies.

1). Comme @KHELILI Hamza a suggéré que vous deviez redéfinir ce champ et définir la valeur par défaut.

2). Vous devez remplacer la méthode default_get.

Solution:

def default_get(self, cr, uid, fields, context=None): 
    res = super(class_name, self).default_get(cr, uid, fields, context=context) 
    res.update({'order_policy': 'manual'}) 
    return res 

Si vous souhaitez définir la valeur par défaut conditionnelle, vous pouvez gérer dans ce code facilement.

+0

Merci beaucoup c'est fait, et travaille pour moi maintenant ... –

1

Vous pouvez utiliser l'attribut par défaut dans le champ

'order_policy': fields.selection([ 
        ('manual', 'On Demand'), 
        ('picking', 'On Delivery Order'), 
        ('prepaid', 'Before Delivery'), 
       ], 
       'Create Invoice', 
       default='manual', 
       required=True, 
       readonly=True, 
       states={ 
        'draft': [('readonly', False)], 
        'sent': [('readonly', False)] 
       }, 
      ), 
+0

son code de champ par défaut odoo je ne peux pas le changer, dites-moi autre solution s'il vous plaît. –