Jump to content
  • 0

België Betalingskenmerk


dudematters

Question

Ik heb een klein probleem met het genereren van een belgisch betalingskenmerk. Ik heb er een functie voor die 80% van de tijd goed werkt maar een enkele keer niet. Nu ben ik erachter waarom het niet goed werkt maar ik weet niet precies hoe ik het moet aanpassen om een geldig kenmerk te genereren.

 

De functie: BEPaymentNr [invoiceNr]

Let ( 
[OGM = InvoiceNr & If(Length(Mod( InvoiceNr; 97))=1; "0" & Mod( InvoiceNr; 97); Mod( InvoiceNr; 97))];

"+++" & Middle(OGM;1;3) & "/" & Middle(OGM;4;4) & "/" & Middle(OGM;8;5) & "+++" 
)

 

Nu in sommige gevallen bestaat het resultaat van Mod(InvoiceNr; 97) niet uit twee getallen maar uit 1 getal. Dat resulteert in een 4 cijferig resultaat in de laatste reeks Middle(OGM;8;5) wat niet klopt.

 

Wat ik geprobeerd heb is er een 0 (nul) voor te zetten, zodat ik twee getallen heb, maar dat werkt niet (Geen geldig betalingskenmerk voor de bank).

 

Heeft iemand hier een goede oplossing voor?

Link to comment

2 answers to this question

Recommended Posts

  • 0

Ik heb even gekeken op:http://nl.wikipedia.org/wiki/Gestructureerde_mededeling

 

dus aan de hand daarvan heb ik jouw formule iets aangepast:

Let ( [ 
kenmerk = Left ( Filter ( InvoiceNr ; "0123456789" ) & "0000000000" ; 10 ) ; // Filteren van InvoiceNr zodat alleen getallen overblijven en de lengte altijd 10 karakters is
mod97 = Mod ( kenmerk ; 97 ) ; // Bepalen modulo
cogm = If ( mod97 = 0 ; 97 ; Right ( "0" & mod97 ; 2 ) ) // bepalen complete controlegetal
] ; 
// OGM samenstellen:
"+++" & 
Left ( kenmerk ; 3 ) & "/" & 
middle ( kenmerk ; 4 ; 4 ) & "/" & 
Middle ( kenmerk ; 8 ; 3 ) & 
cogm & 
"+++"
)

Mogelijk werkt dat wel als de modulo maar uit één cijfer bestaat. Overigens houdt deze formule ook rekening met Modulo=0, dan moet het controlegetal namelijk 97 zijn.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...