“AN26000001” jgħid aktar minn “S00001”: Huwa offerta, ġej mill-2026, u huwa l-ewwel. Ħafna kumpaniji, speċjalment dawk li jaqilbu minn sistema eqdem għal Odoo, jixtiequ jżommu n-numri tad-dokumenti tagħhom eżattament hekk. Odoo nnifsu jinnumera offerti, ordnijiet u noti ta' kunsinna bis-sekwenzi tiegħu stess (S00001, WH/OUT/00001, P00001) u l-fatturi bil-prefiss tal-ġurnal u s-sena (INV/2026/00001).
Għal dan ktibna l-modulu Document Numbering by Prefix and Year (document_number_prefix_year) għal Odoo 19. Huwa disponibbli bħala softwer ħieles taħt il-liċenzja LGPL-3 fuq GitHub:
github.com/Alex0176/odoo-document-number-prefix-year
Klassifikazzjoni onesta minn qabel: Aħna ma nużawx il-modulu f'Biricon IT Services. Aħna nippubblikawh għax huwa lest, dokumentat u bit-testijiet, u jista' jiffranka xogħol lil oħrajn. Min juża, għandu jaqra t-taqsimiet dwar il-limiti u Testijiet .
Is-skema tan-numri
Kull numru jikkonsisti minn tliet partijiet: prefiss għal kull tip ta' dokument, is-sena u kontatur b'numru fiss ta' ċifri. Il-prefiss, il-format tas-sena (26 jew 2026) u n-numru taċ-ċifri tistabbilixxuhom għal kull ditta taħt Impostazzjonijiet → Numerazzjoni tad-dokumenti.
Jiġu trattati offerti, ordnijiet tal-klijenti, fatturi tal-klijenti u noti ta' kreditu, noti ta' kunsinna, dħul tal-oġġetti u ordnijiet tax-xiri. Il-prefissi fl-illustrazzjoni huma eżempji biss: AN, AU, RE, GU, LI, WE, BE. Min iħalli prefiss vojt, iżomm għal dak it-tip ta' dokument in-numerazzjoni standard ta' Odoo. Il-modulu għalhekk ma jagħmel xejn sakemm tistabbilixxih.
Kif jaġixxu n-numri
- Kull sena mill-ġdid. Il-kontatur jibda mill-ġdid minn 1 mal-bidla tas-sena.
- Kontinwazzjoni wara numri importati. Il-modulu jfittex l-ogħla numru eżistenti bl-istess prefiss u sena, kemm jista' jkun twil. Jekk mis-sistema antika hemm
AN26119fid-database, l-offerta li jmiss tkunAN26000120. Din hija r-raġuni għala l-modulu jaqbel għall-migrazzjonijiet: Dokumenti antiki jiġu importati bin-numri oriġinali tagħhom, u dokumenti ġodda jibqgħu jkomplu mingħajr qtugħ. - Numru ġdid tal-ordni mal-konferma. Offerta kkonfermata tkun tista' tikseb, jekk jinħtieġ, numru mis-sekwenza tal-ordnijiet. In-numru tal-offerta jibqa' fil-qasam Numru tal-offerta fuq l-ordni u jidher fil-formola, fil-lista u fit-tfittxija.
- Fatturi meta jiġu rreġistrati. Fatturi tal-klijenti u noti ta' kreditu jirċievu n-numru tagħhom biss meta jiġu rreġistrati, mhux meta jinħolqu. Abbozzi mħassra għalhekk ma jħallu l-ebda lakuna. Is-sena tiġi mid-data tal-fattura: Fattura tat-30.12.2025 li tiġi rreġistrata fit-2.1.2026 tissejjaħ
RE25…. - Kollox jibqa' l-bqija. Fatturi tal-fornituri, ħlasijiet, entrati kontabbli u ordnijiet tal-produzzjoni jżommu s-sekwenzi standard ta' Odoo. Ismijiet eżistenti qatt ma jinkitbu mill-ġdid, anke jekk terġa' titfi l-modulu.
Il-parti delikata: Żewġ utenti fl-istess ħin
Numerazzjoni tiegħek stess tidher sempliċi: tfittex l-ogħla numru u żżid wieħed. Mhijiex hekk malli żewġ utenti joħolqu offerta fl-istess mument. It-tnejn jaqraw “l-ogħla numru = 0”, it-tnejn jagħtu AN26000001. Odoo għal dan għandu sekwenzi tad-database għas-serje tiegħu stess. Numru magħmul minnek ma jkollux dan, u għall-offerti u l-ordnijiet tax-xiri f'Odoo m'hemm lanqas kontroll tal-unicità fuq l-isem: Żewġ dokumenti bl-istess numru jinħażnu sempliċement.
Il-protezzjoni ovvja hija lock. Il-modulu jieħu għal kull ditta, prefiss u sena lock tad-database (PostgreSQL Advisory Lock) li żżomm sa tmiem it-transazzjoni. It-tieni utent jistenna sakemm l-ewwel ikun lest. Dan madankollu mhuwiex biżżejjed, u sibnieh permezz ta' test fuq kopja tad-database produttiva:
Odoo jaħdem bil-livell ta' iżolament REPEATABLE READ. L-istat tad-database li tara transazzjoni jiġi ffriżat mal-ewwel mistoqsija tagħha. L-utent B diġà għandu dan l-istat qabel ma A ikun lest. Jekk B imbagħad jistenna l-lock u jirċevuha, jaqra bl-istat l-antik tiegħu “l-ogħla numru = 0” u jagħti n-numru għat-tieni darba. Il-lock irregola s-sekwenza, iżda ma aġġornax l-għarfien.
Is-soluzzjoni hija tieni qari permezz ta' aċċess tad-database separat u ta' ħajja qasira, li jara l-linji kollha diġà kkonfermati. L-ikbar miż-żewġ valuri jirbaħ. L-ewwel qari jibqa' meħtieġ, għax huwa biss jaf in-numri li l-istess transazzjoni diġà tat iżda għadha ma kkonfermatx, pereżempju meta jiġu importati diversi dokumenti f'daqqa.
Ivverifikajna dan b'żewġ transazzjonijiet, li fihom it-tieni, b'mod ippruvat, ġibdet l-istat tagħha qabel il-commit tal-ewwel u mbagħad stenniet il-lock. Mingħajr it-tieni qari ż-żewġ ordnijiet irċevew l-istess numru, bit-tieni qari rċevew in-numri 1 u 2.
Importanti għall-klassifikazzjoni: Dan it-test huwa verifika manwali. Mhuwiex parti mit-testijiet awtomatiċi, għax għalih huma meħtieġa żewġ konnessjonijiet reali tad-database li l-ambjent tat-test ta' Odoo (transazzjoni waħda biss għal kull test) ma jipprovdix.
Implimentazzjoni teknika
| Dokument | Punt ta' integrazzjoni |
|---|---|
| Offerta | sale.order.create, meta l-isem ikun vojt, / jew New |
| Ordni tal-klijent | sale.order.action_confirm, qabel il-konferma standard |
| Fattura, nota ta' kreditu | account.move._set_next_sequence, jissejjaħ meta jiġi rreġistrat |
| Nota ta' kunsinna, dħul tal-oġġetti | stock.picking.create skont it-tip ta' operazzjoni |
| Ordni tax-xiri | purchase.order.create |
- Kontatur. L-ogħla numru jinstab minn espressjoni regolari (
^<Stamm>([0-9]{1,15})$, il-għerq jiġi maskerat) għal kull ditta, inklużi ismijiet mingħajr ditta. - Fatturi.
_set_next_sequencejikteb l-isem u jsejjaħ_compute_split_sequence, biex il-loġika tas-sekwenza ta' Odoo (prefiss, numru, rikonoxximent tas-sena għall-fattura li jmiss tal-ġurnal) tibqa' koerenti. - Impostazzjonijiet. Il-kampi tad-ditta
document_number_*jiġu rriflessi f'res.config.settings. L-impostazzjonijiet jirrifjutaw prefissi bi spazju jew b'ċifra fl-aħħar. - Traduzzjoni. It-traduzzjoni Ġermaniża hija inkluża.
Installazzjoni u twaqqif
- Poġġi l-folder
document_number_prefix_yearfil-path tal-addons. - Aġġorna l-lista tal-apps, installa l-modulu. Il-prerekwiżiti huma Bejgħ, Xiri, Inventarju u Kontabilità.
- Taħt Impostazzjonijiet → Numerazzjoni tad-dokumenti daħħal il-prefissi, il-format tas-sena u n-numru taċ-ċifri.
- Ipprova l-ewwel fuq kopja. In-numru ta' dokument ma jistax jiġi mreġġa' lura awtomatikament aktar tard, u fil-każ tal-fatturi man-numru hemm marbuta l-obbligu ta' konservazzjoni u ta' verifika.
il-limiti
- L-offerti jiġu nnumerati meta jinħolqu. Offerti mħassra jew ikkanċellati jħallu lakuni. L-istess japplika għal kull ordni tal-klijent li joħloq modulu ieħor: Il-karrijiet tax-xiri tal-webshop (
website_sale) huma ordnijiet fl-istatus Offerta u kull wieħed jikkonsma numru. Mingħajr lakuni huma biss il-fatturi u n-noti ta' kreditu, għax jiġu nnumerati meta jiġu rreġistrati. - Tibdilx il-format tas-sena waqt it-tħaddim. Bil-għerq
AN26il-modulu jaqraAN2026000001eżistenti bħala kontatur26000001. Iddefinixxi l-format qabel l-ewwel dokument. - Kontatur b'mhux aktar minn 15-il ċifra. Sekwenzi ta' ċifri itwal wara l-għerq jiġu injorati fit-tfittxija tal-ogħla numru.
- Ebda serje separata għal kull ġurnal jew maħżen. Il-kontatur japplika għal kull ditta, prefiss u sena. Diversi ġurnali tal-bejgħ jaqsmu l-kontatur tal-fatturi.
- Il-prefissi m'għandhomx ikun fihom spazju u m'għandhomx jispiċċaw b'ċifra, inkella l-prefiss, is-sena u l-kontatur ma jibqgħux jistgħu jinfirdu.
- Biss it-tipi ta' dokumenti msemmija jiġu trattati.
Testijiet
Il-modulu jiġi b'għaxar testijiet awtomatiċi. Jivverifikaw:
- Offerta u konferma: in-numru tal-offerta u tal-ordni, żamma tan-numru tal-offerta
- Kontinwazzjoni tal-għadd wara numru importat (
AN26119→AN26000120) - l-ebda tibdil tan-numri ta' dokumenti eżistenti aktar tard
- Fattura, nota ta' kreditu u bidla tas-sena skont id-data tal-fattura
- Ordni tax-xiri u noti ta' kunsinna
- prefiss vojt: in-numru standard ta' Odoo jibqa'
- sena b'erba' ċifri
- Prefiss b'karattri speċjali
- diversi numri f'transazzjoni waħda
- sekwenzi ta' ċifri twal ħafna jiġu injorati
Sejħa:
odoo-bin -d <Testdatenbank> -i document_number_prefix_year --test-enable --test-tags=/document_number_prefix_year --stop-after-init
It-testijiet jaħdmu b'transazzjonijiet tas-soltu. L-imġiba fil-ħolqien simultanju minn żewġ utenti mhijiex parti minnhom, ġiet ivverifikata bl-idejn fuq kopja tad-database kif deskritt hawn fuq. Min juża l-modulu f'sistema b'ħafna utenti simultanji, għandu jirrepeti dan it-test fuq id-database tiegħu stess.
Avviż legali dwar in-numru tal-fattura
Skont il-§ 11 UStG il-fatturi jridu jkollhom numru sekwenzjali, mogħti darba biss biex tiġi identifikata l-fattura. Il-modulu jinnumera l-fatturi meta jiġu rreġistrati u b'kontatur tiegħu stess għal kull prefiss u sena, li jaqbel ma' dan. Jekk l-impostazzjoni konkreta tiegħek (diversi ġurnali, noti ta' kreditu bi prefiss tagħhom, bidla tas-sena) tissodisfax ir-rekwiżiti tal-konsulent tat-taxxa tiegħek, trid tikkjarifikah miegħu. Dan l-artikolu mhuwiex konsulenza legali.
Mistoqsijiet frekwenti
Għala ma naġġustawx sempliċement is-sekwenzi ta' Odoo?
Għall-fatturi dan jista' jsir permezz tal-prefiss tal-ġurnal. Għall-offerti, l-ordnijiet, in-noti ta' kunsinna u l-ordnijiet tax-xiri, madankollu, m'hemm l-ebda skema komuni ta' prefiss, sena u kontatur bi bidla tas-sena, u l-kontatur ma jafx numri antiki importati. Hawn jidħol il-modulu.
In-numerazzjoni eżistenti tiġi sovrascritta?
Le. Il-modulu jagħti biss numri ġodda. Ismijiet diġà maħżuna jibqgħu bla tibdil, anke meta jitfi.
Kif nitfih mill-ġdid?
Żvojta l-prefiss tat-tip ta' dokument. Allura Odoo jerġa' jinnumerah waħdu. Anke t-tneħħija tal-installazzjoni ma tbiddel l-ebda numru mogħti.
Intom tużawh intom stess?
Le. Għandna taħdem in-numerazzjoni standard ta' Odoo. Ivverifikajna l-modulu bit-testijiet awtomatiċi u bit-test manwali deskritt, iżda mhux f'operazzjoni li taħdem b'ħafna utenti.
Jaħdem ma' Odoo 17 jew 18?
Ittestjajnih biss ma' Odoo 19.0 Community. Għal verżjonijiet oħra jista' jaqbel jew le, ma ivverifikajnihx.
Taħt liema liċenzja huwa?
Taħt l-LGPL-3. Żbalji u titjib huma milqugħa bħala issue fuq repożitorju GitHub .
Appoġġ minn Biricon IT Services
Aħna nieħdu ħsieb installazzjonijiet Odoo għal impriżi żgħar u medji: mill-introduzzjoni, permezz ta' adattamenti u migrazzjonijiet, sat-tħaddim kontinwu. Jekk tixtiequ żżommu n-numri tad-dokumenti tagħkom fil-migrazzjoni, tkunu tixtiequ li jiġi vverifikat il-ġbir tan-numri taħt tagħbija jew tixtiequ ġġibu modulu bħal dan b'mod sigur fl-istanza produttiva tagħkom, aħna lesti ngħinukom. Żviluppi oħra tagħna stess: Firmenbuch u verifika tal-indirizzi għal klijenti Awstrijaċi, Settijiet tal-prodotti fl-offerta bħala sezzjoni u Web RBL, il-lista ta' ċaħda għat-traffiku ta' attakk.
Data: 3 ta' Novembru 2026. Verżjoni tal-modulu 19.0.1.0.0. In-numri kollha fl-eżempji u fl-illustrazzjonijiet huma magħżula liberament.