Overslaan naar inhoud
Odoo Menu
  • Aanmelden
  • Probeer het gratis
  • Apps
    Financiën
    • Boekhouding
    • Facturatie
    • Onkosten
    • Spreadsheet (BI)
    • Documenten
    • Ondertekenen
    Verkoop
    • CRM
    • Verkoop
    • Kassasysteem winkel
    • Kassasysteem Restaurant
    • Abonnementen
    • Verhuur
    Websites
    • Websitebouwer
    • E-commerce
    • Blog
    • Forum
    • Live Chat
    • E-learning
    Bevoorradingsketen
    • Voorraad
    • Productie
    • PLM
    • Inkoop
    • Onderhoud
    • Kwaliteit
    Personeelsbeheer
    • Werknemers
    • Werving & Selectie
    • Verlof
    • Evaluaties
    • Aanbevelingen
    • Wagenpark
    Marketing
    • Sociale media-marketing
    • E-mailmarketing
    • Sms-marketing
    • Evenementen
    • Marketingautomatisering
    • Enquêtes
    Diensten
    • Project
    • Urenstaten
    • Buitendienst
    • Helpdesk
    • Planning
    • Afspraken
    Productiviteit
    • Chat
    • Goedkeuringen
    • IoT
    • VoIP
    • Kennis
    • WhatsApp
    Apps van derden Odoo Studio Odoo Cloud Platform
  • Bedrijfstakken
    Detailhandel
    • Boekhandel
    • kledingwinkel
    • Meubelzaak
    • Supermarkt
    • Bouwmarkt
    • Speelgoedwinkel
    Horeca & Hospitality
    • Bar en café
    • Restaurant
    • Fastfood
    • Gastenverblijf
    • Drankenhandelaar
    • Hotel
    Vastgoed
    • Makelaarskantoor
    • Architectenbureau
    • Bouw
    • Vastgoedbeheer
    • Tuinieren
    • Vereniging van mede-eigenaren
    Consulting
    • Accountantskantoor
    • Odoo Partner
    • Marketingbureau
    • Advocatenkantoor
    • Talentenwerving
    • Audit & Certificering
    Productie
    • Textiel
    • Metaal
    • Meubels
    • Eten
    • Brouwerij
    • Relatiegeschenken
    Gezondheid & Fitness
    • Sportclub
    • Opticien
    • Fitnesscentrum
    • Wellness-medewerkers
    • Apotheek
    • Kapper
    Diensten
    • Klusjesman
    • IT-hardware & ondersteuning
    • Zonne-energiesystemen
    • Schoenmaker
    • Schoonmaakdiensten
    • HVAC-diensten
    Andere
    • Non-profitorganisatie
    • Milieuagentschap
    • Verhuur van Billboards
    • Fotograaf
    • Fietsleasing
    • Softwareverkoper
    Alle bedrijfstakken bekijken
  • Community
    Leren
    • Tutorials
    • Documentatie
    • Certificeringen
    • Training
    • Blog
    • Podcast
    Versterk het onderwijs
    • Onderwijsprogramma
    • Scale Up! Business Game
    • Odoo bezoeken
    Download de Software
    • Downloaden
    • Vergelijk edities
    • Releases
    Werk samen
    • Github
    • Forum
    • Evenementen
    • Vertalingen
    • Partner worden
    • Diensten voor partners
    • Registreer je accountantskantoor
    Diensten
    • Vind een partner
    • Vind een boekhouder
    • Een adviseur ontmoeten
    • Implementatiediensten
    • Klantreferenties
    • Ondersteuning
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Vraag een demo aan
  • Prijzen
  • Help
Je moet geregistreerd zijn om te kunnen communiceren met de community.
Alle posts Personen Badges
Labels (Bekijk alle)
odoo accounting v14 pos v15
Over dit forum
Je moet geregistreerd zijn om te kunnen communiceren met de community.
Alle posts Personen Badges
Labels (Bekijk alle)
odoo accounting v14 pos v15
Over dit forum
Help

Write method called in the create method

Inschrijven

Ontvang een bericht wanneer er activiteit is op deze post

Deze vraag is gerapporteerd
createv7write
1 Beantwoorden
9202 Weergaven
Avatar
N

I have created a custom module and i am redefining the create and write methods. When i create a new sale order, the method create is called, but also the write method.. How it is possible ? Thanks

def create(self, cr, uid, vals, context=None):
    # creation du devis par heritage(et des lignes de commandes du devis) // obligatoire de creer le devis pour acceder aux lignes du devis
    id = super(sale_order, self).create(cr, uid, vals, context)
    # creation d'une liste vide qui contiendra tous les numeros de sections saisis dans la vue
liste_numeros_section = []
    # recuperation des id de chaque ligne du devis (qui ne sont pas des options)
    order_line_ids = self.pool.get('sale.order.line').search(cr, uid, [('order_id', '=', id), ('is_option', '=', False)], context=context)
    #recuperation de l'objet section
    section_pool = self.pool.get('sale.order.section') 
    for i in self.pool.get('sale.order.line').browse(cr,uid,order_line_ids, context=context): # pour chaque ligne du devis
        # si nouveau numero de section, alors creation section + lien avec ligne de devis actuelle
        if not(i.number_section in liste_numeros_section):
            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.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 = self.pool.get('sale.order.section').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)
        return id

    def write(self, cr, user, ids, vals, context=None):
        raise osv.except_osv(_('Erreur!'),_('Vous ne pouvez pas confirmer une commande qui contient une ou des options'))
        # mise a jour du devis par heritage
        super(sale_order, self).write(cr, user, ids, vals, context)
        order_id = ids[0] # recuperation de l'id du devis courant
        # recuperation de l'objet ligne de devis
        order_line_pool = self.pool.get('sale.order.line')
        # recuperation de l'objet section
        section_pool = self.pool.get('sale.order.section')
# recuperation des id de chaque ligne du devis (qui ne sont pas des options)
        order_line_ids = order_line_pool.search(cr, user, [('order_id', '=', order_id), ('is_option', '=', False)], context=context)
        # recuperation des id de chaque section du devis
        section_ids = section_pool.search(cr, user, [('order_id', '=', order_id)], context=context)
# creation d'une liste vide qui contiendra tous les numeros de sections saisis dans la vue
            liste_numeros_section = []
        # pour chaque ligne du devis
        for i in self.pool.get('sale.order.line').browse(cr,user,order_line_ids, context=context):
            if not (i.section_id in section_ids): # si nouvelle section
                dict_section = {
                    'order_id': order_id,
    # lier ligne du devis actuelle a la section (creation d'une relation)
                    'order_line': [(4, i.id)],
                    'number': i.number_section,
                }
                section_pool.create(cr,user,dict_section, context=context)
            else:
                dict_section = {
                # mise a jour de la relation entre la section et la ligne du devis
                    'order_line': [(6, 0, i.id)],
                    'number': i.number_section,
                }
                section_pool.write(cr,user,i.section_id,dict_section, context=context)
        return True
2
Avatar
Annuleer
Avatar
patrick
Beste antwoord

In order to create a new record, you have to write it to the database. I think that the call to super(sale.order).create(..) will do a call to write (or self.write(..)). At the moment I do not have the code of openERP with me to check this.

0
Avatar
Annuleer
Geniet je van het gesprek? Blijf niet alleen lezen, doe ook mee!

Maak vandaag nog een account aan om te profiteren van exclusieve functies en deel uit te maken van onze geweldige community!

Aanmelden
Gerelateerde posts Antwoorden Weergaven Activiteit
update fields on write() method Opgelost
create write
Avatar
Avatar
Avatar
2
jan. 16
37253
launch a wizard before saving a record
wizard create write
Avatar
Avatar
1
aug. 20
5878
Odoo 13 Create() Write() stores old values
create write 13.0
Avatar
Avatar
1
apr. 20
6533
How to create and write multiple records by overriding create and write method of odoo12 Opgelost
create write odoo12
Avatar
Avatar
1
sep. 19
10157
Creating a record or editing an existing record? How to know?
create write odoo12.0
Avatar
Avatar
Avatar
Avatar
3
feb. 19
10634
Community
  • Tutorials
  • Documentatie
  • Forum
Open Source
  • Downloaden
  • Github
  • Runbot
  • Vertalingen
Diensten
  • Odoo.sh Hosting
  • Ondersteuning
  • Upgrade
  • Gepersonaliseerde ontwikkelingen
  • Onderwijs
  • Vind een boekhouder
  • Vind een partner
  • Partner worden
Over ons
  • Ons bedrijf
  • Merkelementen
  • Neem contact met ons op
  • Vacatures
  • Evenementen
  • Podcast
  • Blog
  • Klanten
  • Juridisch • Privacy
  • Beveiliging
الْعَرَبيّة Català 简体中文 繁體中文 (台灣) Čeština Dansk Nederlands English Suomi Français Deutsch हिंदी Bahasa Indonesia Italiano 日本語 한국어 (KR) Lietuvių kalba Język polski Português (BR) română русский язык Slovenský jazyk slovenščina Español (América Latina) Español Svenska ภาษาไทย Türkçe українська Tiếng Việt

Odoo is een suite van open source zakelijke apps die aan al je bedrijfsbehoeften voldoet: CRM, E-commerce, boekhouding, inventaris, kassasysteem, projectbeheer, enz.

Odoo's unieke waardepropositie is om tegelijkertijd zeer gebruiksvriendelijk en volledig geïntegreerd te zijn.

Website made with

Odoo Experience on YouTube

1. Use the live chat to ask your questions.
2. The operator answers within a few minutes.

Live support on Youtube
Watch now