morning ha scritto:
Bene m2 abbi pazienza sono un pò dura,
credo adotterò tua soluzione 1) uso un contatore di 5 cifre numerico semplicissimo confidando che il cliente non faccia più di 99999 invi l'anno (non credo proprio ci arrivi..)
Non è "per anno", è "PER SEMPRE".
Se fai un invio 00027 non potrai mai più farne un secondo 00027.
Sagaci, eh?
per la soluzione 2) forse il mio software è un pò vecchiotto non saprei come usare la base 62 e non ho capito bene il tuo esempio a12aBc come distingui anno da invio e da numero documento
E' in realtà banale, puoi usare ad esempio la base 16 (esadecimale) per "risparmiare caratteri".
Così invece di mettere "1000" (base 10) puoi metterci "3E8" (esadecimale), 3 caratteri invece di 4.
Nulla ti vieta di usare una base più estesa, ad esempio la 62, cioè 10+26+26 (cifre+minuscole+maiuscole).
In sostanza questa "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
A quel punto "1000" base 10 diventa "g8" (base 62), con 2 caratteri invece di 4.
Avendo uno "spazio" maggiore, suddivido i 5 caratteri in 3 porzioni:
primo-carattere: tipo documento e # invio
secondo: anno (base sul 2018)
terzo-quarto-quinto: numero doc (base 62)
a10g8 = primo invio di fattura, anno 2019, del documento nr. 1000