Processo di generazione automatica codici clienti e fornitori

Da SIGLAkb.

Dp-ingranaggio3.png La creazione automatica dei codici dell'anagrafica cliente/fornitore viene attivata dal programma di Configurazione alla voce Contabilità accendendo l'opzione Generaz. autom. codici cli/fo. Il codice generato prevede la possibilità di richiedere all'utente alcuni caratteri da utilizzare come prefisso per il codice (Numero di bytes protocollo). Naturalmente questa possibilità è utilizzabile solo se, in fase dI configurazione della ditta, è stato deciso di utilizzare una codifica alfanumerica per i codici dei sottoconti.

L'algoritmo di generazione dei codici dipende dal numero di caratteri indicati come prefisso e dal numero di caratteri complessivo previsto per la lunghezza del codice sottoconto oppure solo dal numero di caratteri massimo del codice sottoconto se la codifica è numerica.

Codifica alfanumerica Codifica numerica
Stringa con prefisso seguita da un progressivo numerico completato con zeri a sinistra fino alla lunghezza max (XXX9999999) Numero (9999999999)

Ad esempio nel caso di codifica alfanumerica e lunghezza pari a 6 caratteri, supponendo di utilizzare un solo carattere di prefisso, 'C' per i clienti e 'F' per i fornitori, i codici clienti generati vanno da C00001 a C99999 e quelli fornitori da F00001 a F99999.

Il progressivo numerico è determinato sulla base dell'ultimo codice generato o, nel caso di codifica alfanumerica, dell'ultimo codice generato a parità di prefisso.

Per comprendere l'algoritmo si consideri il seguente esempio:

Tipologia codice sottoconto alfanumerica
Lunghezza codice sottoconto 10 caratteri
Lunghezza prefisso 1 carattere

Supponendo di utilizzare come prefisso la lettera C [1] come prefisso il nuovo codice sarà ottenuto incrementando il progressivo numerico dell'ultimo codice che ha il carattere C come carattere iniziale. Pertanto per prima cosa si deve ricavare dalla tabella dei sottoconti (Piano dei Conti) il maggiore tra i codici che iniziano col carattere C. Per questo scopo viene utilizzato il seguente statement SQL:

 
 
 select SOTTOCONTO
 from PIACON
 where SOTTOCONTO<='C999999999'
 order by SOTTOCONTO desc
 


Il primo codice restituito dalla query è processato in modo da eliminare i caratteri di prefisso (la C in questo caso). La porzione di stringa ottenuta è convertita in numero e incrementata 1 ottenendo così il progressivo numerico per il prossimo codice.

Dp-editn72x72.png Quindi in generale:
  • la procedura elabora una stringa del tipo YXXXXXXXXX
  • Y deve essere uguale al prefisso (C nell'esempio)
  • XXXXXXXXX deve essere una stringa numerica alla quale sommare 1
  • il codice generato è YXXXXXXXXX+1.

Le eccezioni possibili sono:

  • se Y non è uguale al prefisso (C nell'esempio) non esiste nessun codice precedente e quindi il codice generato è Y000000001 (C000000001 nell'esempio)
  • se XXXXXXXXX=999999999 il protocollo è terminato quindi non è generato nessun codice (SIGLA® mostra un messaggio di avvertimento del tipo:Raggiunto numero massimo di clienti/fornitori)
  • se XXXXXXXXX non è una stringa numerica la sua conversione in numero da come risultato zero e quindi il codice generato è Y000000001 (C000000001 nell'esempio).
Dp-removen72x72.png

Inoltre visto che la ricerca è eseguita nella tabella dei sottoconti (Piano dei Conti) è opportuno che non esistano sottoconti che hanno i caratteri iniziali coincidenti con la stringa indicata come prefisso. Nell'esempio presentato non dovrebbero esistere codici sottoconto, che non siano clienti, inizianti con la lettera C.

Note

  1. La logica potrebbe essere che in fase di immissione di un nuovo codice cliente si utilizza il prefisso C mentre in fase di immissione di un nuovo fornitore la lettera F.

Voci correlate

Anagrafica cliente/fornitore
Piano dei Conti
Configurazione