Skip to Content

Numrat e dokumenteve të Odoo 19 nga prefiksi, viti dhe numëruesi – moduli document_number_prefix_year dhe kurthi gjatë krijimit të njëkohshëm

3 nëntor 2026 | Odoo 19 Community | Zhvillim i brendshëm
3 nëntor 2026 by
Numrat e dokumenteve të Odoo 19 nga prefiksi, viti dhe numëruesi – moduli document_number_prefix_year dhe kurthi gjatë krijimit të njëkohshëm

Moduli Odoo 19 document_number_prefix_year: numra dokumentesh nga prefiksi, viti dhe numëruesi

„AN26000001“ thotë më shumë se „S00001“: është një ofertë, vjen nga viti 2026 dhe është e para. Shumë ndërmarrje, sidomos ato që kalojnë nga një sistem më i vjetër në Odoo, duan t'i mbajnë numrat e dokumenteve pikërisht kështu. Vetë Odoo i numëron ofertat, porositë dhe fletë-dorëzimet me sekuenca të veta (S00001, WH/OUT/00001, P00001) dhe faturat me prefiksin e ditarit dhe vitin (INV/2026/00001).

Për këtë kemi shkruar modulin Document Numbering by Prefix and Year (document_number_prefix_year) për Odoo 19. Ai është në GitHub si softuer i lirë nën licencën LGPL-3:

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

Së pari një vlerësim i ndershëm: Moduli nuk e përdorim te Biricon IT Services. E publikojmë sepse është i gatshëm, i dokumentuar dhe i pajisur me teste dhe mund t'u kursejë punë të tjerëve. Kush e përdor, duhet të lexojë seksionet mbi Kufizimet dhe Testet .

Skema e numërimit

Çdo numër përbëhet nga tri pjesë: një prefiks për çdo lloj dokumenti, viti dhe një numërues me numër fiks shifrash. Prefiksin, formatin e vitit (26 ose 2026) dhe numrin e shifrave i caktoni për çdo firmë te Cilësimet → Numërimi i dokumenteve.

Ndërtimi i numrit të dokumentit AN26000001 nga prefiksi, viti dhe numëruesi, me tabelën e llojeve të dokumenteve

Trajtohen ofertat, porositë e klientëve, faturat dhe notat e kreditit të klientëve, fletë-dorëzimet, pranimet e mallrave dhe porositë e blerjes. Prefiksat në pamje janë vetëm shembuj: AN, AU, RE, GU, LI, WE, BE. Kush e lë një prefiks bosh, e ruan për këtë lloj dokumenti numërimin standard të Odoo. Pra moduli nuk bën asgjë derisa ta konfiguroni.

Si sillen numrat

  • Çdo vit nga e para. Numëruesi fillon sërish nga 1 me ndërrimin e vitit.
  • Vazhdim pas numrave të importuar. Moduli kërkon numrin më të lartë ekzistues të të njëjtit prefiks dhe viti, pavarësisht sa i gjatë është. Nëse nga sistemi i vjetër ndodhet në bazën e të dhënave AN26119, oferta e radhës quhet AN26000120. Ky është shkaku pse moduli është i përshtatshëm për kalime: dokumentet e vjetra importohen me numrat e tyre origjinalë dhe dokumentet e reja vazhdojnë pa ndërprerje.
  • Numër i ri porosie gjatë konfirmimit. Një ofertë e konfirmuar merr, sipas dëshirës, një numër nga sekuenca e porosive. Numri i ofertës mbetet në fushën Numri i ofertës te porosia dhe është i dukshëm në formular, listë dhe kërkim.
  • Faturat gjatë regjistrimit. Faturat dhe notat e kreditit të klientëve marrin numrin e tyre vetëm gjatë regjistrimit, jo gjatë krijimit. Draftet e fshira prandaj nuk lënë asnjë boshllëk. Viti vjen nga data e faturës: një faturë e 30.12.2025, e regjistruar më 2.1.2026, quhet RE25….
  • Gjithçka tjetër mbetet. Faturat e furnitorëve, pagesat, regjistrimet kontabël dhe porositë e prodhimit mbajnë sekuencat standarde të Odoo. Emrat ekzistues nuk rishkruhen kurrë, as nëse e çaktivizoni modulin sërish.

Pjesa e ndjeshme: dy përdorues njëkohësisht

Një dhënie numrash e vetë duket e thjeshtë: gjej numrin më të lartë, shto një. Nuk është e tillë sapo dy përdorues krijojnë një ofertë në të njëjtin çast. Të dy lexojnë „numri më i lartë = 0“, të dy japin AN26000001. Odoo për sekuencat e veta ka sekuenca të bazës së të dhënave. Te një numër i ndërtuar vetë kjo mungon, dhe për ofertat dhe porositë e blerjes në Odoo nuk ka as kontroll unikaliteti mbi emrin: Dy dokumente me të njëjtin numër thjesht ruhen.

Mbrojtja e parë që vjen ndërmend është një bllokim. Moduli merr për çdo firmë, prefiks dhe vit një bllokim të bazës së të dhënave (PostgreSQL Advisory Lock), që mbahet deri në fund të transaksionit. Përdoruesi i dytë pret derisa i pari të përfundojë. Por kjo nuk mjafton, dhe këtë e gjetëm përmes një prove në një kopje të bazës së të dhënave produktive:

Rrjedha kohore e dy përdoruesve: pa leximin e dytë të dy japin të njëjtin numër, me leximin e dytë i dyti merr numrin pasardhës

Odoo punon me nivelin e izolimit REPEATABLE READ. Gjendja e bazës së të dhënave që sheh një transaksion ngrin me pyetjen e tij të parë. Përdoruesi B e ka këtë gjendje tashmë para se A të përfundojë. Nëse B pastaj pret për bllokimin dhe e merr, ai lexon me gjendjen e vjetër „numri më i lartë = 0“ dhe e jep numrin për herë të dytë. Bllokimi e ka rregulluar radhën, por jo e ka përditësuar dijen.

Zgjidhja është një lexim i dytë përmes një lidhjeje të veçantë, jetëshkurtër me bazën e të dhënave, që sheh të gjitha rreshtat tashmë të konfirmuar. Vlera më e madhe nga të dyja fiton. Leximi i parë mbetet i nevojshëm, sepse vetëm ai njeh numrat që i ka dhënë tashmë i njëjti transaksion, por që ende nuk janë konfirmuar, për shembull gjatë importit të disa dokumenteve në një rresht.

Këtë e kemi kontrolluar me dy transaksione, në të cilat i dyti e ka marrë gjendjen e tij provueshëm para commit-it të të parit dhe pastaj ka pritur për bllokimin. Pa leximin e dytë të dyja porositë morën të njëjtin numër, me të ato morën numrat 1 dhe 2.

E rëndësishme për vlerësimin: Kjo provë është një kontroll me dorë. Ajo nuk është pjesë e testeve automatike, sepse për të nevojiten dy lidhje reale me bazën e të dhënave, që mjedisi i testimit të Odoo (një transaksion i vetëm për çdo test) nuk i ofron.

Zbatimi teknik

DokumentiPika e lidhjes
Ofertasale.order.create, kur emri është bosh, / ose New
Porosia e klientitsale.order.action_confirm, para konfirmimit standard
Fatura, nota e kredititaccount.move._set_next_sequence, thirret gjatë regjistrimit
Fletë-dorëzimi, pranimi i mallravestock.picking.create sipas llojit të operacionit
Porosia e blerjespurchase.order.create
  • Numëruesi. Numrin më të lartë e gjen një shprehje e rregullt (^<Stamm>([0-9]{1,15})$, rrënja maskohet) për çdo firmë, përfshirë emrat pa firmë.
  • Faturat. _set_next_sequence shkruan emrin dhe thërret _compute_split_sequence, që logjika e sekuencës e Odoo (prefiksi, numri, njohja e vitit për faturën e radhës të ditarit) të mbetet koherente.
  • Cilësimet. Fushat e firmës document_number_* pasqyrohen në res.config.settings. Cilësimet refuzojnë prefiksat me hapësirë ose me një shifër në fund.
  • Përkthimi. Përkthimi gjerman është i përfshirë.

Instalimi dhe konfigurimi

  1. Vendosni dosjen document_number_prefix_year në shtegun e addons.
  2. Përditësoni listën e aplikacioneve, instaloni modulin. Kusht paraprak janë Shitje, Blerje, Magazinë dhe Kontabilitet.
  3. Te Cilësimet → Numërimi i dokumenteve futni prefiksat, formatin e vitit dhe numrin e shifrave.
  4. Së pari provojeni në një kopje. Numri i një dokumenti nuk mund të kthehet më vonë automatikisht, dhe te faturat numri lidhet me detyrimin e ruajtjes dhe të kontrollit.

Kufizimet

Gjashtë kufizime të modulit: shporta blerjesh, formati i vitit, një seri për firmë, rregullat e prefiksit, pak teste, vetëm dokumentet e përmendura

  • Ofertat numërohen gjatë krijimit. Ofertat e fshira ose të anuluara lënë boshllëqe. E njëjta vlen për çdo porosi klienti që krijohet nga një modul tjetër: shportat e blerjes të dyqanit të uebit (website_sale) janë porosi në statusin Ofertë dhe konsumojnë secila një numër. Pa boshllëqe janë vetëm faturat dhe notat e kreditit, sepse numërohen gjatë regjistrimit.
  • Mos e ndryshoni formatin e vitit gjatë punës. Me rrënjën AN26 moduli e lexon një AN2026000001 ekzistuese si numërues 26000001. Caktojeni formatin para dokumentit të parë.
  • Numëruesi maksimumi 15 shifra. Vargjet më të gjata shifrash pas rrënjës injorohen gjatë kërkimit të numrit më të lartë.
  • Asnjë seri e ndarë për çdo ditar ose magazinë. Numëruesi vlen për çdo firmë, prefiks dhe vit. Disa ditarë shitjesh e ndajnë numëruesin e faturave.
  • Prefiksat nuk lejohet të përmbajnë hapësirë dhe nuk duhet të përfundojnë me një shifër, përndryshe prefiksi, viti dhe numëruesi nuk mund të ndahen më.
  • Trajtohen vetëm llojet e përmendura të dokumenteve.

Testet

Moduli vjen me dhjetë teste automatike. Ato kontrollojnë:

  • Oferta dhe konfirmimi: numri i ofertës dhe i porosisë, ruajtja e numrit të ofertës
  • Vazhdimi i numërimit pas një numri të importuar (AN26119 → AN26000120)
  • asnjë rinumërim i mëvonshëm i dokumenteve ekzistuese
  • Fatura, nota e kreditit dhe ndërrimi i vitit sipas datës së faturës
  • Porosia e blerjes dhe fletë-dorëzimet
  • prefiks bosh: numri standard i Odoo mbetet
  • vit me katër shifra
  • Prefiks me karaktere speciale
  • disa numra në një transaksion
  • vargjet shumë të gjata shifrash injorohen

Thirrja:

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

Testet punojnë me transaksione të zakonshme. Sjellja gjatë krijimit të njëkohshëm nga dy përdorues nuk është pjesë e tyre, ajo u kontrollua me dorë në një kopje të bazës së të dhënave siç përshkruhet më lart. Kush e përdor modulin në një sistem me shumë përdorues të njëkohshëm, duhet ta përsërisë këtë provë në bazën e vet të të dhënave.

Shënim ligjor për numrin e faturës

Faturat duhet të mbajnë sipas § 11 UStG një numër rendor, që jepet një herë për identifikimin e faturës. Moduli i numëron faturat gjatë regjistrimit dhe me numërues të vetin për çdo prefiks dhe vit, çka përputhet me këtë. Nëse cilësimi juaj konkret (disa ditarë, nota krediti me prefiks të vet, ndërrimi i vitit) i plotëson kërkesat e këshilltarit tuaj tatimor, duhet ta sqaroni me të. Ky shkrim nuk është këshillë ligjore.

Pyetje të shpeshta

Pse të mos i përshtatim thjesht sekuencat e Odoo?

Për faturat kjo bëhet përmes prefiksit të ditarit. Por te ofertat, porositë, fletë-dorëzimet dhe blerjet nuk ka skemë të përbashkët me prefiks, vit dhe numërues me ndërrim viti, dhe numëruesi nuk njeh numra të vjetër të importuar. Aty ndërhyn moduli.

A mbishkruhet numërimi ekzistues?

Jo. Moduli jep vetëm numra të rinj. Emrat e ruajtur tashmë mbeten të pandryshuar, edhe gjatë çaktivizimit.

Si e çaktivizoj përsëri?

Zbrazni prefiksin e llojit të dokumentit. Atëherë Odoo e numëron përsëri vetë. Edhe çinstalimi nuk ndryshon asnjë numër të dhënë.

A e përdorni vetë?

Jo. Te ne punojnë numrat standardë të Odoo. Moduli e kemi kontrolluar me testet automatike dhe provën me dorë të përshkruar, por jo në një funksionim real me shumë përdorues.

A punon me Odoo 17 ose 18?

Vetëm me Odoo 19.0 Community e kemi testuar. Për versione të tjera mund të përshtatet ose jo, nuk e kemi kontrolluar.

Nën cilën licencë është?

Nën LGPL-3. Gabimet dhe përmirësimet janë të mirëpritura si issue në repozitorin GitHub .

Mbështetje nga Biricon IT Services

Ne mirëmbajmë instalime Odoo për ndërmarrje të vogla dhe të mesme: nga futja në përdorim, përshtatjet dhe migrimet deri te funksionimi i vazhdueshëm. Nëse gjatë kalimit dëshironi t'i ruani numrat e dokumenteve, ta kontrolloni dhënien e numrave nën ngarkesë ose ta sillni në mënyrë të sigurt një modul si ky në instancën tuaj produktive, ju ndihmojmë me kënaqësi. Zhvillime të tjera të brendshme: Firmenbuch dhe kontrolli i adresave për klientët austriakë, Sete produktesh në ofertë si seksion dhe Web RBL, lista e bllokimit për trafikun sulmues.

Na kontaktoni tani

Gjendja: 3 nëntor 2026. Versioni i modulit 19.0.1.0.0. Të gjithë numrat në shembuj dhe në pamje janë të zgjedhur lirisht.