Chi ha avuto l’opportunità di sviluppare applicazioni per trasportare i prodotti da un luogo ad un altro, ha appreso che per gestire in modo efficiente la movimentazione delle merci all’interno di un magazzino è necessario adottare un sistema di movimentazione basato su codici a barre.
Il codice a barre è la rappresentazione grafica di una sequenza di numeri e altri simboli. La rappresentazione consiste di linee (barre) e spazi. Un codice a barre è tipicamente composto da cinque parti, una di queste è la cifra di controllo, nota anche come check digit. L’algoritmo di calcolo della cifra di controllo è descritto in questa pagina del sito di GS1, l’associazione internazionale che si occupa di diffondere gli standard progettati per migliorare l’efficienza della filiera domanda-offerta, tra questi c’è anche lo standard relativo ai codici a barre. In questo articolo abbiamo descritto una possibile implementazione dell’algoritmo di calcolo della cifra di controllo in TSQL, in quell’occasione abbiamo trattato il calcolo del check digit per un barcode EAN13. Recentemente, ho avuto l’occasione di migliorare la soluzione implementando le funzioni mancanti che permettono di calcolare il check digit per i seguenti tipi di barcode:
- EAN8
- EAN12
- EAN13
- EAN14
- SSCC
La soluzione consiste di funzioni “private”, una per ogni tipologia di barcode supportata, invocate dalla funzione “pubblica” GS1CDC.GetCheckDigit che ricevuto in input il codice a barre privo della cifra di controllo, fornisce in output il check digit calcolato. Lo script GS1CDC.class.sql effettua l’installazione delle funzioni nello schema dedicato GS1CDC. La funzione GS1CDC.Uninstall permette di rimuovere facilmente gli oggetti creati per questa soluzione.
Tutto il codice è disponibile nel repository GS1-barcode-check-digit-calculator su GitHub.
Buon divertimento! Se qualcuno desidera contribuire è il benvenuto!