Mae “AN26000001” yn dweud mwy na “S00001”: dyfynbris ydyw, mae’n dyddio o 2026, a hwn yw’r cyntaf. Mae llawer o fusnesau, yn enwedig y rhai sy’n symud o system hŷn i Odoo, am gadw rhifau eu dogfennau yn yr union ffurf honno. Mae Odoo ei hun yn rhifo dyfynbrisiau, archebion a nodiadau dosbarthu gan ddefnyddio ei ddilyniannau ei hun (S00001, WH/OUT/00001, P00001), ac anfonebau gan ddefnyddio rhagddodiad y dyddlyfr a’r flwyddyn (INV/2026/00001).
Rydym wedi ysgrifennu’r modiwl Document Numbering by Prefix and Year (document_number_prefix_year) ar gyfer Odoo 19 at y diben hwn. Mae ar gael fel meddalwedd rydd o dan drwydded LGPL-3 ar GitHub:
github.com/Alex0176/odoo-document-number-prefix-year
Gair gonest i ddechrau: Nid ydym yn defnyddio’r modiwl yn Biricon IT Services. Rydym yn ei gyhoeddi am ei fod yn gyflawn, wedi’i ddogfennu ac yn cynnwys profion, ac y gall arbed gwaith i eraill. Dylai unrhyw un sy’n ei ddefnyddio ddarllen yr adrannau Cyfyngiadau a Profion .
Y cynllun rhifo
Mae pob rhif yn cynnwys tair rhan: rhagddodiad ar gyfer pob math o ddogfen, y flwyddyn a rhifydd â nifer sefydlog o ddigidau. Gallwch osod y rhagddodiad, fformat y flwyddyn (26 neu 2026) a nifer y digidau ar gyfer pob cwmni o dan Gosodiadau → Rhifo dogfennau.
Mae’r modiwl yn ymdrin â dyfynbrisiau, archebion gwerthu, anfonebau cwsmeriaid a nodiadau credyd, nodiadau dosbarthu, derbyniadau nwyddau ac archebion prynu. Enghreifftiau yn unig yw’r rhagddodiaid yn y llun: AN, AU, RE, GU, LI, WE, BE. Os gadewch ragddodiad yn wag, cedwir trefn rifo safonol Odoo ar gyfer y math hwnnw o ddogfen. Felly nid yw’r modiwl yn gwneud dim nes i chi ei ffurfweddu.
Sut mae’r rhifau’n gweithio
- Dechrau o’r newydd bob blwyddyn. Mae’r rhifydd yn ailddechrau o 1 ar droad y flwyddyn.
- Parhau ar ôl rhifau a fewnforiwyd. Mae’r modiwl yn chwilio am y rhif uchaf sydd eisoes yn bodoli gyda’r un rhagddodiad a blwyddyn, waeth beth fo’i hyd. Os yw
AN26119o’r hen system yn y gronfa ddata,AN26000120fydd rhif y dyfynbris nesaf. Dyna pam mae’r modiwl yn addas ar gyfer symud rhwng systemau: mewnforir hen ddogfennau gyda’u rhifau gwreiddiol, ac mae dogfennau newydd yn parhau’n ddi-dor o’r fan honno. - Rhif archeb newydd wrth gadarnhau. Os dymunwch, mae dyfynbris a gadarnheir yn cael rhif o ddilyniant yr archebion. Cedwir rhif y dyfynbris ym maes Rhif y dyfynbris ar yr archeb, ac mae’n weladwy yn y ffurflen, y rhestr a’r chwiliad.
- Anfonebau wrth eu postio. Dim ond wrth eu postio y mae anfonebau cwsmeriaid a nodiadau credyd yn cael eu rhif, nid wrth eu creu. Felly nid yw drafftiau a ddilëir yn gadael bwlch. Daw’r flwyddyn o Ddyddiad yr anfoneb: bydd anfoneb â’r dyddiad 30.12.2025 a bostir ar 2.1.2026 yn cael y rhif
RE25…. - Mae popeth arall yn aros fel y mae. Mae anfonebau cyflenwyr, taliadau, cofnodion dyddlyfr ac archebion gweithgynhyrchu yn cadw dilyniannau safonol Odoo. Ni chaiff enwau presennol byth eu hailysgrifennu, hyd yn oed os diffoddwch y modiwl eto.
Y rhan anodd: dau ddefnyddiwr ar yr un pryd
Mae creu eich trefn rifo eich hun yn edrych yn syml: chwilio am y rhif uchaf ac ychwanegu un. Nid yw mor syml pan fydd dau ddefnyddiwr yn creu dyfynbris ar yr un foment. Mae’r ddau’n darllen “rhif uchaf = 0”, ac mae’r ddau’n neilltuo AN26000001. Mae Odoo yn defnyddio dilyniannau cronfa ddata ar gyfer ei ddilyniannau ei hun. Nid yw hynny ar gael gyda rhif rydych wedi’i lunio eich hun, ac ar ben hynny nid oes gwiriad unigrywiaeth ar yr enw yn Odoo ar gyfer dyfynbrisiau ac archebion prynu: caiff dwy ddogfen â’r un rhif eu cadw heb wrthwynebiad.
Y mesur diogelu amlwg yw clo. Mae’r modiwl yn cymryd clo cronfa ddata (PostgreSQL Advisory Lock) ar gyfer pob cyfuniad o gwmni, rhagddodiad a blwyddyn, ac mae’r clo’n para tan ddiwedd y trafodiad. Mae’r ail ddefnyddiwr yn aros nes bod y cyntaf wedi gorffen. Ond nid yw hynny’n ddigon, a daethom i wybod hyn drwy arbrawf ar gopi o’r gronfa ddata gynhyrchu:
Mae Odoo yn gweithio ar y lefel ynysu REPEATABLE READ. Caiff cyflwr y gronfa ddata y mae trafodiad yn ei weld ei rewi wrth ei ymholiad cyntaf. Mae defnyddiwr B eisoes wedi cael y cyflwr hwn cyn i A orffen. Os yw B wedyn yn aros am y clo ac yn ei gael, mae’n darllen “rhif uchaf = 0” o’i hen gyflwr ac yn neilltuo’r rhif am yr ail dro. Mae’r clo wedi rheoli’r drefn, ond nid yw wedi diweddaru’r wybodaeth.
Yr ateb yw ail ddarlleniad drwy gysylltiad cronfa ddata byrhoedlog ar wahân, sy’n gweld pob rhes sydd eisoes wedi’i chadarnhau. Defnyddir yr uchaf o’r ddau werth. Mae angen y darlleniad cyntaf o hyd, oherwydd dim ond hwnnw sy’n gwybod am rifau y mae’r un trafodiad eisoes wedi’u neilltuo ond heb eu cadarnhau eto, er enghraifft wrth fewnforio sawl dogfen ar yr un pryd.
Gwnaethom brofi hyn gyda dau drafodiad lle’r oedd modd dangos bod yr ail wedi cael ei giplun cyn i’r cyntaf gadarnhau ei newidiadau, ac yna wedi aros am y clo. Heb yr ail ddarlleniad, cafodd y ddwy archeb yr un rhif; gydag ef, cawsant y rhifau 1 a 2.
Pwynt pwysig i’w gadw mewn cof: Gwiriad â llaw yw’r arbrawf hwn. Nid yw’n rhan o’r profion awtomataidd, oherwydd mae angen dau gysylltiad cronfa ddata go iawn arno, ac nid yw amgylchedd profi Odoo (un trafodiad fesul prawf) yn darparu hynny.
Gweithrediad technegol
| Dogfen | Pwynt integreiddio |
|---|---|
| Dyfynbris | sale.order.create, pan fo’r enw’n wag, yn / neu’n New |
| Archeb cwsmer | sale.order.action_confirm, cyn y cadarnhad safonol |
| Anfoneb, nodyn credyd | account.move._set_next_sequence, a elwir wrth bostio |
| Nodyn dosbarthu, derbyn nwyddau | stock.picking.create yn ôl y math o weithrediad |
| Archeb brynu | purchase.order.create |
- Rhifydd. Mae mynegiad rheolaidd (
^<Stamm>([0-9]{1,15})$, gyda nodau arbennig y bôn wedi’u dianc) yn canfod y rhif uchaf ar gyfer pob cwmni, gan gynnwys enwau heb gwmni. - Anfonebau. Mae
_set_next_sequenceyn ysgrifennu’r enw ac yn galw_compute_split_sequencefel bod rhesymeg dilyniannau Odoo (rhagddodiad, rhif, adnabod y flwyddyn ar gyfer anfoneb nesaf y dyddlyfr) yn aros yn gyson. - Gosodiadau. Mae meysydd y cwmni
document_number_*yn cael eu hadlewyrchu ynres.config.settings. Mae’r gosodiadau’n gwrthod rhagddodiaid sy’n cynnwys bylchau neu’n gorffen â digid. - Cyfieithiad. Mae cyfieithiad Almaeneg wedi’i gynnwys.
Gosod a ffurfweddu
- Rhowch y ffolder
document_number_prefix_yearyn y llwybr ychwanegion. - Diweddarwch y rhestr apiau a gosodwch y modiwl. Mae angen Gwerthu, Prynu, Stoc a Cyfrifyddu.
- Rhowch y rhagddodiaid, fformat y flwyddyn a nifer y digidau o dan Gosodiadau → Rhifo dogfennau.
- Rhowch gynnig arno ar gopi yn gyntaf. Ni ellir dadwneud rhif dogfen yn awtomatig wedyn, ac yn achos anfonebau mae’r rhif yn gysylltiedig â’r gofynion cadw cofnodion ac archwilio.
Cyfyngiadau
- Caiff dyfynbrisiau eu rhifo wrth eu creu. Mae dyfynbrisiau sy’n cael eu dileu neu eu canslo yn gadael bylchau. Mae’r un peth yn wir am bob archeb cwsmer a grëir gan fodiwl arall: mae basgedi siopa’r siop we (
website_sale) yn archebion â’r statws Dyfynbris ac mae pob un yn defnyddio rhif. Dim ond anfonebau a nodiadau credyd sydd heb fylchau, gan eu bod yn cael eu rhifo wrth eu postio. - Peidiwch â newid fformat y flwyddyn tra bo’r system ar waith. Gyda’r bôn
AN26, mae’r modiwl yn darllenAN2026000001sydd eisoes yn bodoli fel rhifydd26000001. Pennwch y fformat cyn creu’r ddogfen gyntaf. - Uchafswm o 15 digid i’r rhifydd. Anwybyddir llinynnau hirach o ddigidau ar ôl y bôn wrth chwilio am y rhif uchaf.
- Dim cyfresi ar wahân i bob dyddlyfr neu warws. Mae’r rhifydd yn berthnasol i bob cyfuniad o gwmni, rhagddodiad a blwyddyn. Mae sawl dyddlyfr gwerthu yn rhannu’r un rhifydd anfonebau.
- Ni chaiff rhagddodiaid gynnwys bylchau na gorffen â digid, neu ni fydd modd gwahanu’r rhagddodiad, y flwyddyn a’r rhifydd.
- Dim ond y mathau o ddogfennau a restrir sy’n cael eu trin.
Profion
Mae’r modiwl yn cynnwys deg prawf awtomatig. Maent yn gwirio:
- Dyfynbris a chadarnhad: rhifau’r dyfynbris a’r archeb, cadw rhif y dyfynbris
- Parhau i gyfrif ar ôl rhif wedi’i fewnforio (
AN26119→AN26000120) - nad yw dogfennau presennol yn cael eu hailrifo wedyn
- Anfoneb, nodyn credyd a newid blwyddyn yn ôl dyddiad yr anfoneb
- Archeb brynu a nodiadau dosbarthu
- rhagddodiad gwag: cedwir rhif safonol Odoo
- blwyddyn pedwar digid
- rhagddodiad â nodau arbennig
- sawl rhif mewn un trafodiad
- bod llinynnau hir iawn o ddigidau yn cael eu hanwybyddu
Gorchymyn:
odoo-bin -d <Testdatenbank> -i document_number_prefix_year --test-enable --test-tags=/document_number_prefix_year --stop-after-init
Mae’r profion yn rhedeg gyda thrafodiadau arferol. Nid ydynt yn cynnwys yr ymddygiad pan fydd dau ddefnyddiwr yn creu cofnodion ar yr un pryd; profwyd hynny â llaw ar gopi o’r gronfa ddata fel y disgrifir uchod. Dylai unrhyw un sy’n defnyddio’r modiwl mewn system â llawer o ddefnyddwyr cydamserol ailadrodd yr arbrawf hwn ar ei gronfa ddata ei hun.
Nodyn cyfreithiol ar rifau anfonebau
Yn ôl § 11 UStG, rhaid i anfonebau gynnwys rhif dilyniannol a neilltuir unwaith yn unig er mwyn adnabod yr anfoneb. Mae’r modiwl yn rhifo anfonebau wrth eu postio, gyda rhifydd ar wahân i bob rhagddodiad a blwyddyn, sy’n cyd-fynd â hyn. Rhaid i chi drafod â’ch cynghorydd treth a yw eich gosodiadau penodol (sawl dyddlyfr, nodiadau credyd â’u rhagddodiad eu hunain, newid blwyddyn) yn bodloni ei ofynion. Nid cyngor cyfreithiol yw’r erthygl hon.
Cwestiynau cyffredin
Pam na wnewch chi addasu dilyniannau Odoo yn syml?
Ar gyfer anfonebau, gellir gwneud hynny drwy ragddodiad y dyddlyfr. Ond ar gyfer dyfynbrisiau, archebion cwsmeriaid, nodiadau dosbarthu ac archebion prynu, nid oes cynllun cyffredin sy’n cyfuno rhagddodiad, blwyddyn a rhifydd ac yn trin newid blwyddyn, ac nid yw’r rhifydd yn adnabod hen rifau wedi’u mewnforio. Dyna lle mae’r modiwl yn helpu.
A gaiff y rhifo presennol ei drosysgrifo?
Na chaiff. Dim ond rhifau newydd y mae’r modiwl yn eu neilltuo. Mae enwau sydd eisoes wedi’u cadw yn aros yr un fath, hyd yn oed ar ôl ei ddiffodd.
Sut mae ei ddiffodd eto?
Cliriwch ragddodiad y math o ddogfen. Yna bydd Odoo yn ei rifo ei hun eto. Nid yw dadosod y modiwl yn newid unrhyw rifau sydd eisoes wedi’u neilltuo chwaith.
Ydych chi’n ei ddefnyddio eich hunain?
Nac ydym. Rydym yn defnyddio rhifau safonol Odoo. Rydym wedi gwirio’r modiwl gyda’r profion awtomatig a’r arbrawf llaw a ddisgrifir, ond nid mewn system fyw â llawer o ddefnyddwyr.
A yw’n gweithio gydag Odoo 17 neu 18?
Dim ond gydag Odoo 19.0 Community yr ydym wedi’i brofi. Gallai fod yn addas ar gyfer fersiynau eraill neu beidio; nid ydym wedi gwirio hynny.
O dan ba drwydded y mae ar gael?
O dan LGPL-3. Mae croeso i adroddiadau am wallau ac awgrymiadau am welliannau fel materion yn yr ystorfa GitHub .
Cymorth gan Biricon IT Services
Rydym yn gofalu am osodiadau Odoo ar gyfer busnesau bach a chanolig: o’u cyflwyno, drwy addasiadau a mudo, i’w gweithredu o ddydd i ddydd. Os ydych am gadw eich rhifau dogfennau wrth newid system, cael profi neilltuo rhifau dan lwyth neu gyflwyno modiwl fel hwn yn ddiogel i’ch amgylchedd cynhyrchu, byddwn yn falch o helpu. Datblygiadau mewnol eraill: Cofrestr gwmnïau a gwirio cyfeiriadau ar gyfer cwsmeriaid o Awstria, Setiau cynhyrchion fel adran yn y dyfynbris a Web RBL, y rhestr rwystro ar gyfer traffig ymosodol.
Diweddarwyd: 3 Tachwedd 2026. Fersiwn y modiwl: 19.0.1.0.0. Mae’r holl rifau yn yr enghreifftiau a’r delweddau wedi’u dewis at ddibenion enghreifftiol.