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