Skip to Content

Odoo 19 dokumendinumbrid prefiksist, aastast ja loendurist – moodul document_number_prefix_year ja lõks samaaegsel loomisel

3. november 2026 | Odoo 19 Community | Omaarendus
3. november 2026 by
Odoo 19 dokumendinumbrid prefiksist, aastast ja loendurist – moodul document_number_prefix_year ja lõks samaaegsel loomisel

Odoo 19 moodul document_number_prefix_year: dokumendinumbrid prefiksist, aastast ja loendurist

„AN26000001“ ütleb rohkem kui „S00001“: see on pakkumine, see pärineb aastast 2026 ja see on esimene. Paljud ettevõtted, eelkõige need, kes lähevad vanemalt süsteemilt üle Odoole, tahavad oma dokumendinumbrid just selliseks jätta. Odoo ise nummerdab pakkumisi, tellimusi ja saatelehti oma järjestustega (S00001, WH/OUT/00001, P00001) ning arveid päevikuprefiksi ja aastaga (INV/2026/00001).

Selleks kirjutasime mooduli Document Numbering by Prefix and Year (document_number_prefix_year) Odoo 19 jaoks. See on vaba tarkvarana LGPL-3 litsentsi all GitHubis:

github.com/Alex0176/odoo-document-number-prefix-year

Ausalt ette öeldes: Me ei kasuta seda moodulit Biricon IT Services'is. Avaldame selle, sest see on valmis, dokumenteeritud ja testidega varustatud ning võib teistele tööd säästa. Kes seda kasutab, peaks lugema jaotisi Piirangud ja Testid .

Nummerdusskeem

Iga number koosneb kolmest osast: dokumendiliigi prefiksist, aastast ja kindla kohtade arvuga loendurist. Prefiksi, aasta vormingu (26 või 2026) ja kohtade arvu seate firma kohta menüüs Seaded → Dokumendinumbrid.

Dokumendinumbri AN26000001 ülesehitus prefiksist, aastast ja loendurist, koos dokumendiliikide tabeliga

Käsitletakse pakkumisi, kliendi tellimusi, kliendiarveid ja kreeditarveid, saatelehti, kauba vastuvõtte ja ostutellimusi. Illustratsiooni prefiksid on vaid näited: AN, AU, RE, GU, LI, WE, BE. Kes jätab prefiksi tühjaks, säilitab selle dokumendiliigi puhul Odoo standardse nummerdamise. Moodul ei tee seega midagi, kuni te seda seadistate.

Kuidas numbrid käituvad

  • Igal aastal uuesti. Loendur algab aastavahetusel taas ühest.
  • Jätkamine imporditud numbrite järel. Moodul otsib sama prefiksi ja aasta suurima olemasoleva numbri, olenemata selle pikkusest. Kui andmebaasis on vanast süsteemist AN26119, on järgmine pakkumine AN26000120. See on põhjus, miks moodul sobib üleminekuteks: vanad dokumendid imporditakse nende algsete numbritega ja uued dokumendid jätkavad sujuvalt.
  • Uus tellimuse number kinnitamisel. Kinnitatud pakkumine saab soovi korral numbri tellimuste järjestusest. Pakkumise number säilib tellimuse väljal Pakkumise number ning on nähtav vormis, loendis ja otsingus.
  • Arved raamatupidamisse kandmisel. Kliendiarved ja kreeditarved saavad oma numbri alles kandmisel, mitte loomisel. Kustutatud mustandid ei jäta seetõttu auku. Aasta pärineb arve kuupäevast: arve kuupäevaga 30.12.2025, mis kantakse 2.1.2026, kannab numbrit RE25….
  • Kõik muu jääb. Tarnijaarved, maksed, kandekirjed ja tootmistellimused säilitavad Odoo standardjärjestused. Olemasolevaid nimesid ei kirjutata kunagi ümber, isegi kui mooduli uuesti välja lülitate.

Kriitiline osa: kaks kasutajat korraga

Oma numbrite andmine näib lihtne: leia suurim number, liida üks. Seda see ei ole, kui kaks kasutajat loovad samal hetkel pakkumise. Mõlemad loevad „suurim number = 0“, mõlemad annavad numbri AN26000001. Odool on oma järjestuste jaoks selleks andmebaasi järjestused. Ise ehitatud numbri puhul seda pole ja pakkumiste ning ostutellimuste jaoks pole Odoos ka nime kordumatuse kontrolli: kaks sama numbriga dokumenti salvestatakse lihtsalt ära.

Ilmne kaitse on lukk. Moodul võtab iga firma, prefiksi ja aasta kohta andmebaasi luku (PostgreSQL Advisory Lock), mis kehtib tehingu lõpuni. Teine kasutaja ootab, kuni esimene on valmis. See aga ei piisa ja avastasime selle katsega tootmisandmebaasi koopial:

Kahe kasutaja ajaline kulg: ilma teise lugemispäringuta annavad mõlemad sama numbri, teise lugemispäringuga saab teine järgmise numbri

Odoo töötab isolatsioonitasemega REPEATABLE READ. Andmebaasi seis, mida tehing näeb, külmutatakse selle esimese päringu hetkel. Kasutajal B on see seis juba olemas, enne kui A on valmis. Kui B seejärel luku peale ootab ja selle saab, loeb ta oma vana seisuga „suurim number = 0“ ja annab numbri teist korda. Lukk reguleeris järjekorda, kuid ei uuendanud teadmist.

Lahendus on teine lugemispäring oma lühiealise andmebaasiühenduse kaudu, mis näeb kõiki juba kinnitatud ridu. Suurem kahest väärtusest võidab. Esimene lugemispäring jääb vajalikuks, sest ainult see teab numbreid, mille sama tehing on juba andnud, kuid pole veel kinnitanud, näiteks mitme dokumendi ühekorraga importimisel.

Kontrollisime seda kahe tehinguga, kus teine on tõendatult enne esimese kinnitamist (commit) oma seisu võtnud ja seejärel luku peale oodanud. Ilma teise lugemispäringuta said mõlemad tellimused sama numbri, sellega numbrid 1 ja 2.

Oluline mõistmiseks: See katse on käsitsi tehtud kontroll. See ei kuulu automaattestide hulka, sest selleks on vaja kahte päris andmebaasiühendust, mida Odoo testikeskkond (üks tehing testi kohta) ei paku.

Tehniline teostus

DokumentHaakepunkt
Pakkuminesale.order.create, kui nimi on tühi, / või New
Kliendi tellimussale.order.action_confirm, enne standardset kinnitust
Arve, kreeditarveaccount.move._set_next_sequence, kutsutakse välja kandmisel
Saateleht, kauba vastuvõttstock.picking.create toimingutüübi järgi
Ostutellimuspurchase.order.create
  • Loendur. Suurima numbri leiab regulaaravaldis (^<Stamm>([0-9]{1,15})$, tüvi maskeeritakse) iga firma kohta, firmata nimed kaasa arvatud.
  • Arved. _set_next_sequence kirjutab nime ja kutsub välja _compute_split_sequence, et Odoo järjestusloogika (prefiks, number, aasta tuvastamine päeviku järgmise arve jaoks) jääks kooskõlaliseks.
  • Seaded. Firma väljad document_number_* peegeldatakse mudelis res.config.settings. Seaded lükkavad tagasi prefiksid, milles on tühik või lõpus number.
  • Tõlge. Saksakeelne tõlge on kaasas.

Paigaldus ja seadistamine

  1. Pange kaust document_number_prefix_year addons-teele.
  2. Uuendage rakenduste loend, paigaldage moodul. Eeldused on Müük, Ost, Ladu ja Raamatupidamine.
  3. Sisestage menüüs Seaded → Dokumendinumbrid prefiksid, aasta vorming ja kohtade arv.
  4. Proovige esmalt koopial. Dokumendi numbrit ei saa hiljem automaatselt tagasi keerata ja arvete puhul on numbriga seotud säilitamis- ja kontrollikohustus.

Piirangud

Mooduli kuus piirangut: ostukorvid, aasta vorming, üks seeria firma kohta, prefiksi reeglid, vähe teste, ainult nimetatud dokumendid

  • Pakkumised nummerdatakse loomisel. Kustutatud või tühistatud pakkumised jätavad auke. Sama kehtib iga kliendi tellimuse kohta, mille loob mõni teine moodul: veebipoe ostukorvid (website_sale) on staatuses Pakkumine tellimused ja kulutavad igaüks ühe numbri. Aukudeta on ainult arved ja kreeditarved, sest need nummerdatakse kandmisel.
  • Ärge muutke aasta vormingut jooksvalt. Tüvega AN26 loeb moodul olemasoleva AN2026000001 loendurina 26000001. Määrake vorming enne esimest dokumenti.
  • Loendur kuni 15 kohta. Pikemad numbrijadad pärast tüve jäetakse suurima numbri otsimisel arvestamata.
  • Eraldi seeriaid päeviku või lao kohta pole. Loendur kehtib firma, prefiksi ja aasta kohta. Mitu müügipäevikut jagavad arvete loendurit.
  • Prefiksid ei tohi sisaldada tühikut ega lõppeda numbriga, muidu ei saa prefiksit, aastat ja loendurit enam eraldada.
  • Käsitletakse ainult nimetatud dokumendiliike.

Testid

Moodul sisaldab kümmet automaattesti. Need kontrollivad:

  • Pakkumine ja kinnitus: pakkumise ja tellimuse number, pakkumise numbri säilimine
  • Jätkamine pärast imporditud numbrit (AN26119 → AN26000120)
  • olemasolevate dokumentide hilisemat ümbernummerdamist ei toimu
  • Arve, kreeditarve ja aastavahetus arve kuupäeva järgi
  • Ostutellimus ja saatelehed
  • tühi prefiks: Odoo standardnumber jääb
  • neljakohaline aasta
  • Prefiks erimärkidega
  • mitu numbrit ühes tehingus
  • väga pikki numbrijadasid ignoreeritakse

Väljakutse:

odoo-bin -d <Testdatenbank> -i document_number_prefix_year --test-enable --test-tags=/document_number_prefix_year --stop-after-init

Testid töötavad tavaliste tehingutega. Käitumine kahe kasutaja samaaegsel loomisel ei kuulu nende hulka, seda kontrolliti käsitsi andmebaasi koopial, nagu eespool kirjeldatud. Kes kasutab moodulit süsteemis, kus on palju samaaegseid kasutajaid, peaks selle katse oma andmebaasil kordama.

Õiguslik märkus arve numbri kohta

Arvetel peab UStG § 11 kohaselt olema järjestikune number, mis antakse arve tuvastamiseks ühekordselt. Moodul nummerdab arved kandmisel ja oma loenduriga prefiksi ja aasta kohta, mis sellega kokku sobib. Kas teie konkreetne seadistus (mitu päevikut, oma prefiksiga kreeditarved, aastavahetus) vastab teie maksunõustaja nõuetele, peate temaga selgitama. See artikkel ei ole õigusnõustamine.

Korduma kippuvad küsimused

Miks mitte lihtsalt Odoo järjestusi kohandada?

Arvete puhul saab seda teha päeviku prefiksi kaudu. Pakkumiste, tellimuste, saatelehtede ja ostutellimuste puhul pole aga prefiksist, aastast ja loendurist koosnevat ühtset skeemi koos aastavahetusega ning loendur ei tunne imporditud vanu numbreid. Just siin moodul rakendub.

Kas olemasolev nummerdus kirjutatakse üle?

Ei. Moodul annab ainult uusi numbreid. Juba salvestatud nimed jäävad muutumatuks, ka väljalülitamisel.

Kuidas selle uuesti välja lülitan?

Tühjendage dokumendiliigi prefiks. Siis nummerdab Odoo selle taas ise. Ka desinstallimine ei muuda juba antud numbreid.

Kas kasutate seda ise?

Ei. Meil töötavad Odoo standardnumbrid. Oleme moodulit kontrollinud automaattestide ja kirjeldatud käsitsikatsega, kuid mitte jooksvas tegevuses paljude kasutajatega.

Kas see töötab Odoo 17 või 18-ga?

Oleme seda testinud ainult Odoo 19.0 Community'ga. Teiste versioonide puhul võib see sobida või mitte, me pole seda kontrollinud.

Mis litsentsi all see on?

LGPL-3 all. Vead ja parendused on teretulnud issue'na GitHubi hoidlas .

Biricon IT Services'i tugi

Hooldame Odoo paigaldusi väikestele ja keskmise suurusega ettevõtetele: kasutuselevõtust ja kohandustest migratsioonide ja jooksva käitamiseni. Kui soovite üleminekul oma dokumendinumbrid säilitada, lasta numbrite andmist koormuse all kontrollida või tuua sellist moodulit turvaliselt oma tootmisinstantsi, aitame hea meelega. Muud omaarendused: Firmenbuch ja aadressikontroll Austria klientide jaoks, Tootekomplektid pakkumises jaotisena ja Web RBL, ründeliikluse blokeerimisloend.

Võtke meiega ühendust

Seisuga: 3. november 2026. Mooduli versioon 19.0.1.0.0. Kõik näidete ja illustratsioonide numbrid on vabalt valitud.