Salve,
qualcuno potrebbe darmi una mano a risolvere questo calcolo?
in pratica deve produrre una stringa numerica (17) che inizialmente viene composta facilmente in base al soggetto dotato di codice univoco:
Supponiamo che il mio codice personale:
codice personale
27159010
anno di riferimento
18
cod. progressivo (sempre 1)
1
altro codice (sempre 10)
10
numero rata (01/02/03/04)
04
fatto cio ottengo
27159010 18 1 10 04
a questa stringa però è necessario aggiungere altri 3 numeri; i primi 2 sono il controcodice ed il finale il Check DIGIT come qui di seguito:
(come faccio a suddividere la sequenza numerica nei primi 32 bytes ????)
a questa stringa si dovrebbe aggiungere il CONTROCODICE INPS che si calcola cosi:
- suddividere i primi 32 bytes delle CodeLine da sinistra in 4 gruppi di 8 cifre;
- dividere ogni gruppo per 99;
- sommare quozienti e resti;
- dividere il risultato per 99;
- il resto della divisione costituisce il codice di controllo INPS.
infine si ottiene l' ultimo numero da aggiungere alla sequeza
SPECIFICHE CALCOLO CHECK DIGIT FINALE
- si considera la CodeLine da destra verso sinistra escludendo il Check Digit finale;
- si moltiplica la prima cifra di destra per ‘2’, la seconda per ‘3’, la terza per ‘4’, la quarta per ‘5’, la quinta per ‘6’, la sesta per ‘7’; e così via fino all’ esaurimento delle cifre della CodeLine;
- si sommano tutti i prodotti così ottenuti;
- si divide il risultato per 11;
- se il resto della divisione Š 0 o 1 il Check Digit finale deve essere posto = 0; in caso contrario sottraendo il resto da 11, si ottiene il Check Digit.
grazie