EgtLock 2.6a1 :

- aggiunta funzione GetKeyLevelEx con i giorni mancanti alla scadenza dell'assistenza.
This commit is contained in:
Dario Sassi
2024-01-25 18:19:03 +01:00
parent a9eff6ff4b
commit cf274d21b0
+37 -1
View File
@@ -1,7 +1,7 @@
//----------------------------------------------------------------------------
// EgalTech 2014-2024
//----------------------------------------------------------------------------
// File : KeyProc.cpp Data : 16.01.23 Versione : 2.6a1
// File : KeyProc.cpp Data : 24.01.24 Versione : 2.6a1
// Contenuto : Funzioni per la gestione della chiave.
//
//
@@ -10,6 +10,7 @@
// 29.02.16 DS Controllo prodotti con & (and bit a bit).
// 12.07.16 DS In recupero opzioni, se chiave ko azzero risultati.
// 26.12.20 DS Gestione versione MMmm (vecchie chiavi convertite).
// 24.01.24 DS Aggiunta GetKeyLevelEx con anche giorni scadenza assistenza.
//
//----------------------------------------------------------------------------
@@ -197,6 +198,41 @@ GetKeyLevel( const string& sKey, int nProd, int nVer, int nLev,
return nErr ;
}
//----------------------------------------------------------------------------
int
GetKeyLevelEx( const string& sKey, int nProd, int nVer, int nLev,
int& nKLev, int& nKExpDays, int& nKAssExpDays)
{
int nKProd, nKVer ;
unsigned int nKOpt1, nKOpt2 ;
int nKOptExpDays ;
int nErr = VerifyKey( sKey, nProd, nVer, nLev,
nKProd, nKVer, nKLev, nKExpDays,
nKOpt1, nKOpt2, nKOptExpDays) ;
if ( nErr != KEY_OK) {
nKLev = 0 ;
nKExpDays = 0 ;
nKAssExpDays = 0 ;
}
else {
// sistemazioni per vecchie gestioni chiavi
// 16xx -> 17xx, 18xx -> 18xx, 19xx -> 19xx, 21xx -> 20xx, 22xx -> 21xx, ...
int nKAssEnd = nKVer + ( nKVer < 1800 ? 100 : ( nKVer < 2000 ? 0 : -100)) ;
// si considera il primo giorno del mese successivo (mesi sono 0-based, con dicembre si va a gennaio anno dopo)
int nKAssEndM = Clamp( nKAssEnd % 100, 1, 12) ;
int nKAssEndY = nKAssEnd / 100 + 100 ;
if ( nKAssEndM == 12) {
nKAssEndM = 0 ;
nKAssEndY += 1 ;
}
struct tm tmAssEnd = { 0, 0, 0, 1, nKAssEndM, nKAssEndY, 0, 0, 0} ;
time_t nClock = mktime( &tmAssEnd) ;
nKAssExpDays = int( nClock / ( 24 * 3600)) ; // (24*3600) secondi in un giorno
nKAssExpDays = min( nKAssExpDays, nKExpDays) ;
}
return nErr ;
}
//----------------------------------------------------------------------------
int
GetKeyOptions( const string& sKey, int nProd, int nVer, int nLev,