Skip to Content

Odoo 19 dokumentu-zenbakiak aurrizkiarekin, urtearekin eta kontagailuarekin – document_number_prefix_year modulua eta aldi bereko sorrerako tranpa

2026ko azaroaren 3a | Odoo 19 Community | Garapen propioa
2026(e)ko azaroakren 3(a) by
Odoo 19 dokumentu-zenbakiak aurrizkiarekin, urtearekin eta kontagailuarekin – document_number_prefix_year modulua eta aldi bereko sorrerako tranpa

Odoo 19 document_number_prefix_year modulua: aurrizkiz, urtez eta kontagailuz osatutako dokumentu-zenbakiak

“AN26000001”-ek “S00001”-ek baino gehiago esaten du: eskaintza bat da, 2026koa, eta lehena da. Enpresa askok, batez ere sistema zahar batetik Odoora aldatzen direnek, beren dokumentu-zenbakiak horrela mantendu nahi dituzte. Odoo-k berak eskaintzak, eskaerak eta albaranak bere sekuentzia propioekin zenbakitzen ditu (S00001, WH/OUT/00001, P00001) eta fakturak egunkariaren aurrizkiarekin eta urtearekin (INV/2026/00001).

Horretarako Document Numbering by Prefix and Year modulua (document_number_prefix_year) idatzi dugu Odoo 19rako. Software librea da, LGPL-3 lizentziapean, GitHuben:

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

Aldez aurreko sailkapen zintzo bat: Biricon IT Servicesen modulu hau ez dugu erabiltzen. Argitaratzen dugu amaitua, dokumentatua eta probekin hornitua dagoelako, eta besteen lana aurrez dezakeelako. Erabiltzen duenak Mugak eta Probak atalak irakurri beharko lituzke.

Zenbaki-eskema

Zenbaki bakoitza hiru zatiz osatuta dago: dokumentu-mota bakoitzeko aurrizkia, urtea eta zifra-kopuru finkoa duen kontagailua. Aurrizkia, urte-formatua (26 edo 2026) eta zifra-kopurua enpresa bakoitzeko ezartzen dituzu Ezarpenak → Dokumentuen zenbakitzea atalean.

AN26000001 dokumentu-zenbakiaren egitura aurrizkiaz, urtez eta kontagailuz, dokumentu-moten taulatik

Eskaintzak, bezeroen eskaerak, bezeroen fakturak eta abonuak, albaranak, salgai-sarrerak eta erosketa-eskaerak tratatzen dira. Irudiko aurrizkiak adibide hutsak dira: AN, AU, RE, GU, LI, WE, BE. Aurrizkia hutsik uzten duenak dokumentu-mota horrentzat Odoo-ren zenbakitze estandarra mantentzen du. Beraz, moduluak ez du ezer egiten zuk ezarri arte.

Zenbakiek nola jokatzen duten

  • Urtero berria. Kontagailua urte-aldaketarekin berriro 1etik hasten da.
  • Inportatutako zenbakien ondoren jarraitu. Moduluak aurrizki eta urte bereko lehendik dagoen zenbaki handiena bilatzen du, luzera edozein dela ere. Sistema zaharretik AN26119 datu-basean badago, hurrengo eskaintza AN26000120 izango da. Hori da moduluak migrazioetarako balio duen arrazoia: dokumentu zaharrak jatorrizko zenbakiekin inportatzen dira, eta dokumentu berriak etenik gabe jarraitzen dute.
  • Eskaera-zenbaki berria berresterakoan. Berretsitako eskaintza batek, nahi izanez gero, eskaera-sekuentziako zenbaki bat jasotzen du. Eskaintza-zenbakia eskaeraren Eskaintza-zenbakia eremuan mantentzen da eta formularioan, zerrendan eta bilaketan ikusgai dago.
  • Fakturak kontabilizatzean. Bezeroen fakturek eta abonuek zenbakia kontabilizatzean jasotzen dute, ez sortzean. Ezabatutako zirriborroek, beraz, ez dute hutsunerik uzten. Urtea faktura-datatik dator: 2025-12-30eko faktura bat 2026-1-2an kontabilizatzen bada, RE25… deituko da.
  • Gainerako guztia mantentzen da. Hornitzaileen fakturek, ordainketek, idazpen kontableek eta fabrikazio-aginduek Odoo-ren sekuentzia estandarrak mantentzen dituzte. Lehendik dauden izenak ez dira inoiz berridazten, modulua berriro itzaltzen baduzu ere.

Zati delikatua: bi erabiltzaile aldi berean

Zenbaki-esleipen propio batek erraza dirudi: zenbaki handiena bilatu, bat gehitu. Ez da hala, bi erabiltzailek une berean eskaintza bat sortzen dutenean. Biek “zenbaki handiena = 0” irakurtzen dute, biek AN26000001 esleitzen dute. Odoo-k bere sekuentzia propioetarako datu-baseko sekuentziak ditu horretarako. Norberak eraikitako zenbaki batean hori falta da, eta eskaintzetarako eta erosketa-eskaeretarako Odoon gainera ez dago izenaren gaineko berezitasun-egiaztapenik: zenbaki bera duten bi dokumentu gorde egiten dira besterik gabe.

Babes begibistakoa blokeo bat da. Moduluak enpresa, aurrizki eta urte bakoitzeko datu-basearen blokeo bat hartzen du (PostgreSQL Advisory Lock), transakzioaren amaierara arte irauten duena. Bigarren erabiltzaileak lehena amaitu arte itxaroten du. Hori ez da nahikoa, ordea, eta produkzioko datu-basearen kopia batean egindako saiakera baten bidez aurkitu genuen:

Bi erabiltzaileren denbora-lerroa: bigarren irakurketarik gabe biek zenbaki bera esleitzen dute, bigarren irakurketarekin bigarrenak hurrengo zenbakia jasotzen du

Odoo-k REPEATABLE READ isolamendu-maila erabiltzen du. Transakzio batek ikusten duen datu-basearen egoera bere lehen kontsultan izozten da. B erabiltzaileak egoera hori badauka A amaitu aurretik. Ondoren B blokeoaren zain geratzen bada eta lortzen badu, bere egoera zaharrarekin “zenbaki handiena = 0” irakurtzen du eta zenbakia bigarren aldiz esleitzen du. Blokeoak ordena arautu zuen, baina ez ezagutza eguneratu.

Konponbidea bigarren irakurketa bat da, datu-baserako sarbide propio eta iraupen laburreko baten bidez, jada berretsita dauden lerro guztiak ikusten dituena. Bi balioetatik handiena irabazten du. Lehen irakurketak beharrezkoa izaten jarraitzen du, bera baita transakzio berak jada esleitu baina oraindik berretsi ez dituen zenbakiak ezagutzen dituen bakarra, adibidez hainbat dokumentu aldi berean inportatzean.

Bi transakziorekin egiaztatu genuen; bigarrenak, frogatuta, lehenaren commit-a baino lehen hartu zuen bere egoera eta gero blokeoaren zain egon zen. Bigarren irakurketarik gabe bi eskaerek zenbaki bera jaso zuten; harekin, 1 eta 2 zenbakiak.

Sailkapenerako garrantzitsua: Saiakera hau eskuzko egiaztapen bat da. Ez da proba automatikoen parte, horretarako benetako bi datu-base konexio behar direlako, eta Odoo-ren proba-ingurunea (transakzio bakarra proba bakoitzeko) ez da gai horiek eskaintzeko.

Ezarpen teknikoa

DokumentuaLotura-puntua
Eskaintzasale.order.create, izena hutsik dagoenean, / denean edo New denean
Bezeroaren eskaerasale.order.action_confirm, berrespen estandarraren aurretik
Faktura, abonuaaccount.move._set_next_sequence, kontabilizatzean deitzen da
Albarana, salgai-sarrerastock.picking.create eragiketa-motaren arabera
Erosketa-eskaerapurchase.order.create
  • Kontagailua. Zenbaki handiena adierazpen erregular batek aurkitzen du (^<Oinarria>([0-9]{1,15})$, oinarria maskaratzen da) enpresa bakoitzeko, enpresarik gabeko izenak barne.
  • Fakturak. _set_next_sequence-ek izena idazten du eta _compute_split_sequence deitzen du, Odoo-ren sekuentzia-logikak (aurrizkia, zenbakia, egunkariko hurrengo fakturarako urte-detekzioa) koherente jarrai dezan.
  • Ezarpenak. document_number_* enpresa-eremuak res.config.settings-en islatzen dira. Ezarpenek zuriunea duten edo zifra batekin amaitzen diren aurrizkiak baztertzen dituzte.
  • Itzulpena. Alemanerazko itzulpena barne dago.

Instalazioa eta konfigurazioa

  1. document_number_prefix_year karpeta addons bidean jarri.
  2. Aplikazio-zerrenda eguneratu, modulua instalatu. Baldintzak Salmentak, Erosketak, Biltegia eta Kontabilitatea dira.
  3. Ezarpenak → Dokumentuen zenbakitzea atalean aurrizkiak, urte-formatua eta zifra-kopurua sartu.
  4. Probatu lehenik kopia batean. Dokumentu baten zenbakia gero ezin da automatikoki atzera egin, eta fakturetan zenbakiari gordetze- eta ikuskapen-betebeharra lotuta dago.

Mugak

Moduluaren sei muga: erosketa-saskiak, urte-formatua, serie bat enpresa bakoitzeko, aurrizki-arauak, proba gutxi, aipatutako dokumentuak soilik

  • Eskaintzak sortzean zenbakitzen dira. Ezabatutako edo bertan behera utzitako eskaintzek hutsuneak uzten dituzte. Gauza bera aplikatzen zaio beste modulu batek sortzen duen bezeroaren eskaera bakoitzari: webshopeko erosketa-saskiak (website_sale) Eskaintza egoerako eskaerak dira eta zenbaki bana kontsumitzen dute. Hutsunerik gabeak fakturak eta abonuak soilik dira, kontabilizatzean zenbakitzen direlako.
  • Ez aldatu urte-formatua martxan dagoen bitartean. AN26 oinarriarekin, moduluak lehendik dagoen AN2026000001 26000001 kontagailu gisa irakurtzen du. Finkatu formatua lehen dokumentuaren aurretik.
  • Kontagailua gehienez 15 zifra. Oinarriaren ondorengo zifra-segida luzeagoak ez dira kontuan hartzen zenbaki handiena bilatzean.
  • Egunkari edo biltegi bakoitzeko serie bereizirik ez. Kontagailua enpresa, aurrizki eta urte bakoitzekoa da. Hainbat salmenta-egunkarik faktura-kontagailua partekatzen dute.
  • Aurrizkiek ezin dute zuriunerik izan eta ezin dute zifra batekin amaitu; bestela, aurrizkia, urtea eta kontagailua ezin dira gehiago bereizi.
  • Aipatutako dokumentu-motak soilik tratatzen dira.

Probak

Moduluak hamar proba automatiko ekartzen ditu. Hauek egiaztatzen dituzte:

  • Eskaintza eta berrespena: eskaintza- eta eskaera-zenbakia, eskaintza-zenbakiaren mantentzea
  • Inportatutako zenbaki baten ondoren zenbatzen jarraitzea (AN26119 → AN26000120)
  • lehendik dauden dokumentuen gerorako berrizenbakitzerik ez
  • Faktura, abonua eta urte-aldaketa faktura-dataren arabera
  • Erosketa-eskaera eta albaranak
  • aurrizki hutsa: Odoo-ren zenbaki estandarra mantentzen da
  • lau digituko urtea
  • karaktere bereziak dituen aurrizkia
  • hainbat zenbaki transakzio bakarrean
  • oso luzeak diren zifra-segidak ez dira kontuan hartzen

Deia:

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

Probak transakzio arruntekin exekutatzen dira. Bi erabiltzailek aldi berean sortzean duen portaera ez dago horien artean; goian azaldu bezala eskuz egiaztatu zen datu-basearen kopia batean. Modulua aldi bereko erabiltzaile askoko sistema batean erabiltzen duenak saiakera hori errepikatu beharko luke bere datu-basean.

Faktura-zenbakiari buruzko ohar juridikoa

Fakturek UStG-ren 11. §-ren arabera zenbaki jarraitu bat izan behar dute, faktura identifikatzeko behin esleitzen dena. Moduluak fakturak kontabilizatzean zenbakitzen ditu, eta aurrizki eta urte bakoitzeko kontagailu propioarekin, eta hori bat dator. Zure ezarpen zehatzak (hainbat egunkari, aurrizki propioa duten abonuak, urte-aldaketa) zure zerga-aholkulariaren eskakizunak betetzen dituen, harekin argitu behar duzu. Artikulu hau ez da lege-aholkularitza.

Maiz egiten diren galderak

Zergatik ez Odoo-ren sekuentziak egokitu besterik gabe?

Fakturetarako hori egunkariaren aurrizkiaren bidez egin daiteke. Baina eskaintzetan, eskaeretan, albaranetan eta erosketa-eskaeretan ez dago aurrizkiaz, urteaz eta kontagailuaz osatutako eskema partekaturik urte-aldaketarekin, eta kontagailuak ez ditu inportatutako zenbaki zaharrak ezagutzen. Hor eragiten du moduluak.

Lehendik dagoen zenbakitzea gainidazten da?

Ez. Moduluak zenbaki berriak soilik esleitzen ditu. Dagoeneko gordetako izenak aldatu gabe geratzen dira, baita desaktibatzean ere.

Nola desaktibatzen dut berriro?

Hustu dokumentu-motaren aurrizkia. Orduan Odoo-k berriro zenbakitzen du berak. Desinstalatzeak ere ez ditu esleitutako zenbakiak aldatzen.

Zuek zeuek erabiltzen duzue?

Ez. Gurean Odoo-ren zenbaki estandarrak dabiltza. Modulua proba automatikoekin eta azaldutako eskuzko saiakerarekin egiaztatu dugu, baina ez erabiltzaile askoko funtzionamendu errealean.

Odoo 17 edo 18rekin funtzionatzen du?

Odoo 19.0 Community-rekin soilik probatu dugu. Beste bertsioetarako egokia izan daiteke edo ez; ez dugu egiaztatu.

Zer lizentziapean dago?

LGPL-3pean. Akatsak eta hobekuntzak Issue gisa ongi etorriak dira hemen: GitHub biltegia .

Biricon IT Services-en laguntza

Enpresa txiki eta ertainen Odoo instalazioak zaintzen ditugu: ezarpenetik hasita, egokitzapenetatik eta migrazioetatik eguneroko funtzionamendura arte. Migrazioan zure dokumentu-zenbakiak mantendu nahi badituzu, zenbaki-esleipena karga pean egiaztatu nahi baduzu edo horrelako modulu bat zure produkzio-instantziara seguru eraman nahi baduzu, pozik lagunduko dizugu. Beste garapen propio batzuk: Firmenbuch eta helbide-egiaztapena Austriako bezeroentzat, Produktu-sortak eskaintzan atal gisa eta Web RBL, eraso-trafikoarentzako blokeo-zerrenda.

Jarri gurekin harremanetan orain

Egoera: 2026ko azaroaren 3a. Moduluaren bertsioa 19.0.1.0.0. Adibideetako eta irudietako zenbaki guztiak libreki aukeratuak dira.