Integrazione di SSA nel repository

Ora la versione DEMO permette di utilizzare il modulo base per consentire attivazione SSA

git-svn-id: svn://10.65.10.50/branches/R_10_00@22613 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2012-03-23 09:53:09 +00:00
parent 4dc843a0a2
commit 432bb34728
28 changed files with 138 additions and 71 deletions

View File

@ -319,10 +319,7 @@ bool TManutenzione_app::create() // initvar e arrmask
if (_superprassi)
{
const int type = ini_get_int(CONFIG_INSTALL, "Main", "Type");
if (type == 1 || type == 2)
_superprassi = true;
else
_superprassi = ini_get_bool(CONFIG_INSTALL, "Main", "TestDatabase");
_superprassi = (type == 1) || (type == 2)
}
if (argc() > 2 && sw == "-C")

View File

@ -505,22 +505,8 @@ bool TGeneric_table_app::valute_decimals_handler(TMask_field& f, KEY k)
exc.set_decimals(dec);
exc.set(exc.get());
}
if (!m.is_running() && exc.empty())
exc.set(m.get(VAL_CHANGE_OLD));
}
if (k == K_ENTER)
{
TMask& m = f.mask();
real cambio(m.get(VAL_CHANGE));
if (cambio > ZERO && m.get_bool(VAL_INEURO))
{
// Se il cambio e' espresso in EURO metto in R10 il valore in lire
cambio = 1936.27 / cambio;
cambio.round(5);
}
m.set(VAL_CHANGE_OLD, cambio);
}
return TRUE;
return true;
}
bool TGeneric_table_app::change_decimals_handler(TMask_field& f, KEY k)

View File

@ -4,6 +4,5 @@
#define VAL_DECIMALS_PRICES 111
#define VAL_DECIMALS_CHANGE 112
#define VAL_CHANGE 121
#define VAL_CHANGE_OLD 122
#define VAL_LASTDATE 130
#define VAL_EURO 131

View File

@ -108,13 +108,6 @@ BEGIN
WARINING "E' necessario specificare un cambio di riferimento"
END
NUMBER VAL_CHANGE_OLD 15 5
BEGIN
PROMPT 2 80 "Cambio "
FIELD R10
FLAGS "D"
END
DATE VAL_LASTDATE
BEGIN
PROMPT 40 12 "Data "

View File

@ -97,13 +97,11 @@ void TAdvanced_property_sheet::edit()
TFilename n = value.as_string();
if (n.exist())
{
#ifdef WIN32
if (n.ends_with(".msk", true) || n.ends_with(".ini", true))
{
n.insert("notepad ");
xvt_sys_execute(n, FALSE, FALSE);
} else
#endif
xvt_sys_goto_url(n, "open");
}
}
@ -255,7 +253,8 @@ KEY TProperty_sheet::run()
TProperty_sheet::TProperty_sheet(const char* title, int width, int height)
{
_power = is_power_reseller();
const int nAssYear = xvt_vobj_get_attr(NULL_WIN, ATTR_APPL_VERSION_YEAR);
_power = nAssYear >= 2121;
if (_power)
_ps = new TAdvanced_property_sheet(title, width, height);
else

View File

@ -979,15 +979,8 @@ int TBaseisamfile::_write(const TRectype& rec)
if (key.blank())
return _iskeyerr;
if (dongle().demo())
{
const int logicnum = num();
if ((logicnum > LF_COMUNI && logicnum < LF_ANALISI) || logicnum > LF_RELANA)
{
if (items() > 979L)
return _isfilefull;
}
}
if (dongle().demo() && items() > 979L)
return _isfilefull;
// Forza l'uso della chiave principale (per chiavi duplicate?)
const int fhnd = handle(_curr_key > 0 ? 1 : 0);

View File

@ -2,7 +2,7 @@
#define __KEYS_H
#ifndef XVT_INCL_DEFS
#include <xvt_defs.h>
#include "../xvaga/xvt_defs.h"
#endif
/* @M */

View File

@ -949,13 +949,6 @@ TPrefix::TPrefix() : _filelevel(0), _stdlevel(0), _items(0), _firm(NULL)
if (!fexist(__ptprf) || strchr(__ptprf, ' ') != NULL)
fatal_box(FR("Percorso dati non valido: '%s'"), __ptprf);
if (dongle().demo())
{
const bool dati_demo = ini_get_bool(CONFIG_STUDIO, "Main", "Demo");
if (!dati_demo)
fatal_box(FR("Area dati '%s' non utilizzabile in DEMO!"), __ptprf);
}
const TFilename dir(prfx);
long primaditta = atol(dir.name());
if (primaditta > 0L && !exist(primaditta))

View File

@ -1,7 +1,9 @@
#ifndef __WIZARD_H
#define __WIZARD_H
#ifndef __UTILS_H
#include "utils.h"
#endif
///////////////////////////////////////////////////////////
// CampoWizardPage

View File

@ -46,4 +46,4 @@ wxString Theme();
#define PRODUCT Product()
#define RESELLER Reseller()
#define APPNAME Appname()
#define APPVERSION wxT("10.0")
#define APPVERSION wxT("11.0")

26
ssa/h/ssadll.h Normal file
View File

@ -0,0 +1,26 @@
#ifndef SSADLL_H
#define SSADLL_H
#ifndef SSA_EXPORT
#define DECLSPEC __declspec(dllimport)
#else
#define DECLSPEC __declspec(dllexport)
#endif
extern "C"
{
DECLSPEC const char* SSA_DecodificaUltimoErrore();
DECLSPEC int SSA_VerificaModulo(const char* prodotto, const char* modulo);
DECLSPEC int SSA_Login(const char* idClient, const char* prodotto);
DECLSPEC int SSA_ApriModulo(const char* idClient, const char* modulo);
DECLSPEC int SSA_ChiudiModulo(const char* idClient, const char* modulo);
DECLSPEC int SSA_Logout(const char* idClient, const char* prodotto);
DECLSPEC int SSA_Ping(const char* idClient);
DECLSPEC int SSA_XMLProdottiConfigurati(char* buf, int bufSize);
DECLSPEC int SSA_XMLUtentiCorrenti(char* buf, int bufSize);
DECLSPEC int SSA_Id(char* buf, int bufSize);
DECLSPEC int SSA_NumeroSerie(const char* prodotto);
}
#endif

13
ssa/h/ssaerr.h Normal file
View File

@ -0,0 +1,13 @@
#define SSA_OK 0 //ok
#define SSA_IDCLIENT_ERRATO -1 //idclient errato
#define SSA_NOTLOADED -100 //file di permessi non caricato (requisiti hw non verificati)
#define SSA_PROD_NOTFOUND -101 //prodotto non trovato
#define SSA_PROD_MAXUSERS -102 //raggiunto numero massimo di connessioni al prodotto
#define SSA_PROD_EXPDATE -103 //superata exp date prodotto
#define SSA_MOD_NOTFOUND -201 //modulo non trovato
#define SSA_MOD_MAXUSERS -202 //raggiunto numero massimo di connessioni al modulo
#define SSA_MOD_EXPDATE -203 //superata exp date modulo
#define SSA_UTENTE_NON_LOGGATO -301 //utente non loggato

7
ssa/moduli.txt Normal file
View File

@ -0,0 +1,7 @@
<PRODOTTO nome="PROVA" data-scad="2999-12-31" num-abilitazioni="-1" numero-serie="1234">
<MODULO nome="prova1" data-scad="2999-12-31" num-abilitazioni="1" />
<MODULO nome="prova2" data-scad="2999-12-31" num-abilitazioni="2" />
<MODULO nome="scaduto1" data-scad="2011-08-12" num-abilitazioni="2" />
</PRODOTTO>
<PRODOTTO nome="SCADUTO" data-scad="2011-08-12" num-abilitazioni="-1" numero-serie="9999">
</PRODOTTO>

BIN
ssa/release/SSAAgent.exe Normal file

Binary file not shown.

Binary file not shown.

BIN
ssa/release/SSADll.dll Normal file

Binary file not shown.

BIN
ssa/release/SSADll.lib Normal file

Binary file not shown.

BIN
ssa/release/SSAGetInfo.exe Normal file

Binary file not shown.

BIN
ssa/release/TestDll.exe Normal file

Binary file not shown.

BIN
ssa/sicurezza.V1.5.doc Normal file

Binary file not shown.

15
ssa/ssa.ini Normal file
View File

@ -0,0 +1,15 @@
# LIVELLO DI DEBUG
# 0 = No debug
# 1 = Livello ERRORE
# 2 = Livello ERRORE + INFO
# 3 = Livello ERRORE + INFO + DEBUG
SSA-DEBUG=2
# ATTIVAZIONE MODALITA' CLIENT-SERVER
# IP_SERVER:PORTA
SSA-PORT=127.0.0.1:1234
#Tempo in secondi dopo il quale un utente puo' essere dichiarato scaduto
PING-MAXTIME=300
#Tempo in secondi ogni quanto pingare
PING-DELAY=60

23
ssa/test.bat Normal file
View File

@ -0,0 +1,23 @@
copy release\SsaDll.dll test\client
copy release\TestDll.exe test\client
copy release\SSAGetInfo.exe test\client
copy release\SSACreaLicenza.exe test\client
copy ssa.ini test\client
cd test\client
del ssa.log
rem -pause per farlo fermare
rem -dump per dumpare lo stato
rem -generalicenza per generare il file di licenze da zero
rem -loop n ripete il test n volte.
rem -sleep n dorme n secondi tra un loop e l'altro
rem TestDll.exe -pause -dump -generalicenza -loop 5
TestDll.exe -generalicenza -loop 10 -pause
pause
more ssa.log
cd..\..

24
ssa/testServer.bat Normal file
View File

@ -0,0 +1,24 @@
copy release\SsaDll.dll test\server
copy release\TestDll.exe test\server
copy release\SSAGetInfo.exe test\server
copy release\SSACreaLicenza.exe test\server
copy release\SSAAgent.exe test\server
copy ssa.ini test\server
cd test\server
del ssa.log
rem -pause per farlo fermare
rem -dump per dumpare lo stato
rem -generalicenza per generare il file di licenze da zero
rem -loop n ripete il test n volte.
rem -sleep n dorme n secondi tra un loop e l'altro
TestDll.exe -generalicenza -loop -1
SSAAgent.exe
pause
more ssa.log
cd..\..

View File

@ -80,7 +80,10 @@ bool aga_unzip(const char* zipfile, const char* destdir)
}
else
{
wxZipInputStream fin(zipfile, strFileName);
wxFileInputStream file(zipfile);
wxZipInputStream fin(file);
wxZipEntry entry(strFileName);
fin.OpenEntry(entry);
wxString strOutFile = destdir;
if (!wxEndsWithPathSeparator(strOutFile) && !wxIsPathSeparator(strFileName[0]))

View File

@ -10,15 +10,8 @@
#define WINVER 0x0500
#define STRICT
#define WXUSINGDLL 1
#endif
#include <wx/wxprec.h>
#else
#define _FILE_OFFSET_BITS 64
#define _LARGE_FILES
#define __WXGTK__
#define GTK_NO_CHECK_CASTS
#define _IODBC
#include <wx/wx.h>
#endif
#endif
#endif

View File

@ -1,8 +1,8 @@
#include "wxinc.h"
#include "xvt.h"
#include "../../ssa/h/ssadll.h"
#include "../../ssa/h/ssaerr.h"
#include "../ssa/h/ssadll.h"
#include "../ssa/h/ssaerr.h"
#include <errno.h>

View File

@ -251,18 +251,19 @@ TMessageBox::TMessageBox(wxWindow* pParent, const wxString& msg, int nStyle, int
if (!bTerminalino)
{
const int nAssYear = xvt_vobj_get_attr(NULL_WIN, ATTR_APPL_VERSION_YEAR);
if (nAssYear > 2091)
if (nAssYear >= 2121)
{
const wxBitmap bmpCopy = wxArtProvider::GetBitmap(wxART_COPY, wxART_BUTTON);
wxBitmapButton* btnCopy = new wxBitmapButton(this, wxID_COPY, bmpCopy);
pSmallSizer->Add(btnCopy, 0, wxALIGN_TOP);
/*
if (xvt_mail_installed())
{
const wxBitmap bmpMail = wxArtProvider::GetBitmap("139", wxART_BUTTON, wxSize(bmpCopy.GetWidth(), bmpCopy.GetHeight()));
wxBitmapButton* btnMail = new wxBitmapButton(this, wxID_SAVEAS, bmpMail);
pSmallSizer->Add(btnMail, 0, wxALIGN_TOP);
}
*/
}
}

View File

@ -594,14 +594,14 @@ void TwxWindow::OnChar(wxKeyEvent& evt)
}
break;
case WXK_NUMPAD_ADD: k = '+';break;
case WXK_DOWN : k = K_DOWN; break;
case WXK_END : k = K_LEND; break;
case WXK_HOME : k = K_LHOME; break;
case WXK_LEFT : k = K_LEFT; break;
case WXK_NEXT : k = K_NEXT; break;
case WXK_PRIOR: k = K_PREV; break;
case WXK_RIGHT: k = K_RIGHT; break;
case WXK_UP : k = K_UP; break;
case WXK_DOWN : k = K_DOWN; break;
case WXK_END : k = K_LEND; break;
case WXK_HOME : k = K_LHOME; break;
case WXK_LEFT : k = K_LEFT; break;
case WXK_PAGEDOWN : k = K_NEXT; break;
case WXK_PAGEUP : k = K_PREV; break;
case WXK_RIGHT : k = K_RIGHT; break;
case WXK_UP : k = K_UP; break;
case WXK_TAB:
if (evt.ShiftDown())
k = K_BTAB;