Passa al contenuto
Menu
È necessario essere registrati per interagire con la community.
La domanda è stata contrassegnata
2 Risposte
10486 Visualizzazioni

When i want to print a sale order, i have the error : AttributeError: 'NoneType' object has no attribute 'search'

i have created a custom module that overwrite the method create of a sale order, i think this is why i have this error, but i dont know why.. Any ideas ?

Avatar
Abbandona

Hi,

Please post code of your new function

Risposta migliore

Hi,

variable section_pool is defined only in your "if" section with :

section_pool = self.pool.get('sale.order.section') #recuperation de l'objet section

but not in the "else" section.

bye

Avatar
Abbandona
Autore Risposta migliore
    def create(self, cr, uid, vals, context=None):
    id = super(sale_order, self).create(cr, uid, vals, context) # creation du devis (et des lignes de commandes du devis)
    liste_numeros_section = [] # creation d'une liste vide qui contiendra tous les numeros de sections saisis dans la vue
    order_line_ids = self.pool.get('sale.order.line').search(cr, uid, [('order_id', '=', id), ('is_option', '=', False)], context=context) # recuperation de toutes les lignes du devis (qui ne sont pas des options)
    for i in self.pool.get('sale.order.line').browse(cr,uid,order_line_ids, context=context): # pour chaque ligne du devis
        if not(i.number_section in liste_numeros_section): # si nouveau numero de section, alors creation section + lien avec ligne de devis actuelle
            liste_numeros_section.append(i.number_section)
            dict_section = {
                                'order_id': id,
                                'order_line': [(4, i.id)], # lier ligne du devis actuelle a la section (creation d'une relation)
                                'number': i.number_section,
            }
            section_pool = self.pool.get('sale.order.section') #recuperation de l'objet section
            section_pool.create(cr,uid,dict_section, context=context)
        else: # si le numero de section existe deja, alors creation lien ligne du devis actuelle / section
            id_section = section_pool.search(cr,uid, [('number', '=', i.number_section), ('order_id' , '=', id)], context=context) #recupere section qui correspond a la ligne du devis
            dict_section = {
                                'order_line': [(4, i.id)], # lier ligne du devis actuelle a la section (creation d'une relation)
            }
            section_pool.write(cr,uid,id_section,dict_section, context=context) #mise a jour de la section (cad ajout lien avec ligne devis)
    return id
Avatar
Abbandona

everything seems correct. remove this function and try print a sale order .if ok try to keep your code by print.

dont post ur query in answer post it as comment

Post correlati Risposte Visualizzazioni Attività
8
lug 24
16155
1
mar 15
3752
2
mar 15
5586
0
mar 15
8268
0
dic 23
4982