Patch level :1.7 nopatch
Files correlati :at8.exe ctbo2at.ini Ricompilazione Demo : [ ] Commento :sistemate ultime menate importazione winsit file git-svn-id: svn://10.65.10.50/trunk@9934 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
4a5230b19a
commit
20a39f0bba
@ -119,6 +119,9 @@ class TCtbo2at: public TSkeleton_application
|
|||||||
{
|
{
|
||||||
TMask* _msk;
|
TMask* _msk;
|
||||||
TCtbo2at_file* _trasfile;
|
TCtbo2at_file* _trasfile;
|
||||||
|
int _numdon1, _numdon2;
|
||||||
|
TString16 _catini1, _catfin1, _catini2, _catfin2;
|
||||||
|
bool _sttess2, _dataisc;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual bool create(void);
|
virtual bool create(void);
|
||||||
@ -129,10 +132,9 @@ protected:
|
|||||||
static bool annulla_handler(TMask_field& f, KEY k);
|
static bool annulla_handler(TMask_field& f, KEY k);
|
||||||
bool test_donation(TRectype& recsog, const char* tipo, const TDate& datadon, const TString& luogodon);
|
bool test_donation(TRectype& recsog, const char* tipo, const TDate& datadon, const TString& luogodon);
|
||||||
bool test_inter(TRectype& recsog, const char* tipo, const TDate& datadon, int inter);
|
bool test_inter(TRectype& recsog, const char* tipo, const TDate& datadon, int inter);
|
||||||
|
void calcola_categoria(TRectype& recsog);
|
||||||
public:
|
public:
|
||||||
const TMask& msk() const { return *_msk; }
|
const TMask& msk() const { return *_msk; }
|
||||||
|
|
||||||
TCtbo2at() {}
|
TCtbo2at() {}
|
||||||
virtual ~TCtbo2at() {}
|
virtual ~TCtbo2at() {}
|
||||||
};
|
};
|
||||||
@ -147,6 +149,15 @@ bool TCtbo2at::create()
|
|||||||
_msk = new TMask("at8800a");
|
_msk = new TMask("at8800a");
|
||||||
_msk->set(F_FILENAME,ATFILENAME);
|
_msk->set(F_FILENAME,ATFILENAME);
|
||||||
_trasfile = NULL;
|
_trasfile = NULL;
|
||||||
|
TConfig config(CONFIG_STUDIO);
|
||||||
|
_numdon1 = config.get_int("NumDon1");
|
||||||
|
_numdon2 = config.get_int("NumDon2");
|
||||||
|
_catini1 = config.get("CatIni1");
|
||||||
|
_catfin1 = config.get("CatFin1");
|
||||||
|
_catini2 = config.get("CatIni2");
|
||||||
|
_catfin2 = config.get("CatFin2");
|
||||||
|
_sttess2 = config.get_bool("StTess2");
|
||||||
|
_dataisc = config.get_bool("DataIsc");
|
||||||
return TSkeleton_application::create();
|
return TSkeleton_application::create();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -201,9 +212,43 @@ bool TCtbo2at::test_donation(TRectype& recsog, const char* tipo, const TDate& da
|
|||||||
donazioni.insert_row(rec);
|
donazioni.insert_row(rec);
|
||||||
donazioni.write(TRUE);
|
donazioni.write(TRUE);
|
||||||
calcola_donazioni_lib(recsog, &donazioni); // questo metodo sistema tutto!!!
|
calcola_donazioni_lib(recsog, &donazioni); // questo metodo sistema tutto!!!
|
||||||
|
calcola_categoria(recsog);
|
||||||
|
// aggiorno data e utente ultimo aggiornamento
|
||||||
|
const TDate oggi(TODAY);
|
||||||
|
recsog.put(SOG_DATAULTAGG,oggi);
|
||||||
|
recsog.put(SOG_UTENULTAGG,"WINSIT");
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TCtbo2at::calcola_categoria(TRectype& recsog)
|
||||||
|
{
|
||||||
|
TTable ctd("CTD");
|
||||||
|
TString16 catdon = recsog.get(SOG_CATDON);
|
||||||
|
const int totdon = recsog.get_int(SOG_TOTDON);
|
||||||
|
ctd.put("CODTAB",catdon);
|
||||||
|
if (ctd.read() == NOERR)
|
||||||
|
{
|
||||||
|
bool dimissione = ctd.get_bool("B0");
|
||||||
|
if (dimissione)
|
||||||
|
{
|
||||||
|
recsog.put(SOG_CATDON,ctd.get("S6"));
|
||||||
|
if (ctd.get("S6").not_empty())
|
||||||
|
catdon = ctd.get("S6");
|
||||||
|
}
|
||||||
|
if ((catdon == _catini1 || _catini1.empty()) && (totdon>=_numdon1) && _catfin1.not_empty())
|
||||||
|
{
|
||||||
|
recsog.put(SOG_CATDON, _catfin1);
|
||||||
|
catdon = _catfin1;
|
||||||
|
}
|
||||||
|
bool tstampata = recsog.get_bool(SOG_T_STAMPATA);
|
||||||
|
if ((catdon == _catini2 || _catini2.empty()) && (totdon>=_numdon2) && _catfin2.not_empty() && (!_sttess2 || tstampata))
|
||||||
|
{
|
||||||
|
recsog.put(SOG_CATDON, _catfin2);
|
||||||
|
catdon = _catfin2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bool TCtbo2at::test_inter(TRectype& recsog, const char* tipo, const TDate& datadon, int inter)
|
bool TCtbo2at::test_inter(TRectype& recsog, const char* tipo, const TDate& datadon, int inter)
|
||||||
{
|
{
|
||||||
TRectype* key_cont = new TRectype(LF_CONTSAN);
|
TRectype* key_cont = new TRectype(LF_CONTSAN);
|
||||||
@ -318,11 +363,9 @@ void TCtbo2at_file::validate(TCursor& cur,TRecord_text &rec, TToken_string &s, T
|
|||||||
{
|
{
|
||||||
const TString code(s.get(0));
|
const TString code(s.get(0));
|
||||||
TString valore;
|
TString valore;
|
||||||
if (code == "_TOTALE")
|
if (code == "_UPPERCASE")
|
||||||
{
|
|
||||||
}
|
|
||||||
else if (code == "_ULTIMA")
|
|
||||||
{
|
{
|
||||||
|
valore.upper();
|
||||||
}
|
}
|
||||||
else NFCHECK("Macro non definita: %s", (const char *)code);
|
else NFCHECK("Macro non definita: %s", (const char *)code);
|
||||||
str = valore;
|
str = valore;
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
#include "contsan.h"
|
#include "contsan.h"
|
||||||
#include "donaz.h"
|
#include "donaz.h"
|
||||||
#include "idoneita.h"
|
#include "idoneita.h"
|
||||||
|
#include "rconvoc.h"
|
||||||
|
|
||||||
bool is_idon_one(TString16 idon, const char* tipo)
|
bool is_idon_one(TString16 idon, const char* tipo)
|
||||||
// verifica che l'idoneità "idon" sia del tipo "tipo"
|
// verifica che l'idoneità "idon" sia del tipo "tipo"
|
||||||
@ -383,25 +384,43 @@ void don_datepross(TRectype& soggetto)
|
|||||||
statoparziale = soggetto.get(SOG_STATOSI);
|
statoparziale = soggetto.get(SOG_STATOSI);
|
||||||
datastatoparziale = soggetto.get_date(SOG_DATASI);
|
datastatoparziale = soggetto.get_date(SOG_DATASI);
|
||||||
tipostato = modstato_tcs(statoparziale);
|
tipostato = modstato_tcs(statoparziale);
|
||||||
//if (statoparziale == SOSPENSIONE)
|
|
||||||
if (tipostato == 'S')
|
if (tipostato == 'S')
|
||||||
datasi = NULLDATE;
|
datasi = NULLDATE;
|
||||||
//if (statoparziale == IDONEITA)
|
|
||||||
if (tipostato == 'I')
|
if (tipostato == 'I')
|
||||||
if (datastatoparziale > datasi)
|
if (datastatoparziale > datasi)
|
||||||
datasi = datastatoparziale;
|
datasi = datastatoparziale;
|
||||||
statoparziale = soggetto.get(SOG_STATOAF);
|
statoparziale = soggetto.get(SOG_STATOAF);
|
||||||
datastatoparziale = soggetto.get_date(SOG_DATAAF);
|
datastatoparziale = soggetto.get_date(SOG_DATAAF);
|
||||||
tipostato = modstato_tcs(statoparziale);
|
tipostato = modstato_tcs(statoparziale);
|
||||||
//if (statoparziale == SOSPENSIONE)
|
|
||||||
if (tipostato == 'S')
|
if (tipostato == 'S')
|
||||||
dataaf = NULLDATE;
|
dataaf = NULLDATE;
|
||||||
//if (statoparziale == IDONEITA)
|
|
||||||
if (tipostato = 'I')
|
if (tipostato = 'I')
|
||||||
if (datastatoparziale > dataaf)
|
if (datastatoparziale > dataaf)
|
||||||
dataaf = datastatoparziale;
|
dataaf = datastatoparziale;
|
||||||
soggetto.put(SOG_DATAPROSSI,datasi);
|
soggetto.put(SOG_DATAPROSSI,datasi);
|
||||||
soggetto.put(SOG_DATAPROSAF,dataaf);
|
soggetto.put(SOG_DATAPROSAF,dataaf);
|
||||||
|
// se la data prossima SI è superiore all'ultima convocazione
|
||||||
|
// va cancellata, anche dall'archivio convocazioni
|
||||||
|
TDate dataconv = soggetto.get_date(SOG_DATACONV);
|
||||||
|
if (datasi >= dataconv)
|
||||||
|
{
|
||||||
|
TLocalisamfile rconv(LF_RCONVOC);
|
||||||
|
const long codsog = soggetto.get_long(SOG_CODICE);
|
||||||
|
rconv.setkey(2);
|
||||||
|
rconv.zero();
|
||||||
|
rconv.put(RCV_DATACONV, dataconv);
|
||||||
|
rconv.put(RCV_CODICE, codsog);
|
||||||
|
int err = rconv.read();
|
||||||
|
if (err == NOERR)
|
||||||
|
{
|
||||||
|
rconv.put(RCV_ANNULLATO,TRUE);
|
||||||
|
rconv.rewrite();
|
||||||
|
}
|
||||||
|
soggetto.put(SOG_DATACONV, NULLDATE);
|
||||||
|
soggetto.put(SOG_DATAULTSOL, NULLDATE);
|
||||||
|
const int zeroconv = 0;
|
||||||
|
soggetto.put(SOG_NUMCONV, zeroconv);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void calcola_donazioni_lib(TRectype& soggetto, TRecord_array* donazioni)
|
void calcola_donazioni_lib(TRectype& soggetto, TRecord_array* donazioni)
|
||||||
|
@ -64,12 +64,14 @@ TYPE(3) = STRINGA
|
|||||||
FIELD(3) = 90->COGNOME
|
FIELD(3) = 90->COGNOME
|
||||||
POSITION(3) = 12
|
POSITION(3) = 12
|
||||||
LENGTH(3) = 25
|
LENGTH(3) = 25
|
||||||
|
MESSAGE(3) = _UPPERCASE
|
||||||
|
|
||||||
NAME(4) = NOME
|
NAME(4) = NOME
|
||||||
TYPE(4) = STRINGA
|
TYPE(4) = STRINGA
|
||||||
FIELD(4) = 90->NOME
|
FIELD(4) = 90->NOME
|
||||||
POSITION(4) = 37
|
POSITION(4) = 37
|
||||||
LENGTH(4) = 25
|
LENGTH(4) = 25
|
||||||
|
MESSAGE(4) = _UPPERCASE
|
||||||
|
|
||||||
NAME(5) = DATA NASCITA
|
NAME(5) = DATA NASCITA
|
||||||
TYPE(5) = DATA
|
TYPE(5) = DATA
|
||||||
@ -82,30 +84,35 @@ TYPE(6) = STRINGA
|
|||||||
FIELD(6) = 90->COMNASC
|
FIELD(6) = 90->COMNASC
|
||||||
POSITION(6) = 71
|
POSITION(6) = 71
|
||||||
LENGTH(6) = 4
|
LENGTH(6) = 4
|
||||||
|
MESSAGE(6) = _UPPERCASE
|
||||||
|
|
||||||
NAME(7) = SESSO
|
NAME(7) = SESSO
|
||||||
TYPE(7) = STRINGA
|
TYPE(7) = STRINGA
|
||||||
FIELD(7) = 90->SESSO
|
FIELD(7) = 90->SESSO
|
||||||
POSITION(7) = 75
|
POSITION(7) = 75
|
||||||
LENGTH(7) = 1
|
LENGTH(7) = 1
|
||||||
|
MESSAGE(7) = _UPPERCASE
|
||||||
|
|
||||||
NAME(8) = TESSERA SSN
|
NAME(8) = TESSERA SSN
|
||||||
TYPE(8) = STRINGA
|
TYPE(8) = STRINGA
|
||||||
FIELD(8) = 90->TESSSSN
|
FIELD(8) = 90->TESSSSN
|
||||||
POSITION(8) = 76
|
POSITION(8) = 76
|
||||||
LENGTH(8) = 16
|
LENGTH(8) = 16
|
||||||
|
MESSAGE(8) = _UPPERCASE
|
||||||
|
|
||||||
NAME(9) = CODICE FISCALE
|
NAME(9) = CODICE FISCALE
|
||||||
TYPE(9) = STRINGA
|
TYPE(9) = STRINGA
|
||||||
FIELD(9) = 90->CF
|
FIELD(9) = 90->CF
|
||||||
POSITION(9) = 92
|
POSITION(9) = 92
|
||||||
LENGTH(9) = 16
|
LENGTH(9) = 16
|
||||||
|
MESSAGE(9) = _UPPERCASE
|
||||||
|
|
||||||
NAME(10) = INDIRIZZO DOMICILIO
|
NAME(10) = INDIRIZZO DOMICILIO
|
||||||
TYPE(10) = STRINGA
|
TYPE(10) = STRINGA
|
||||||
FIELD(10) = 90->DOM_INDIR
|
FIELD(10) = 90->DOM_INDIR
|
||||||
POSITION(10) = 108
|
POSITION(10) = 108
|
||||||
LENGTH(10) = 30
|
LENGTH(10) = 30
|
||||||
|
MESSAGE(10) = _UPPERCASE
|
||||||
|
|
||||||
NAME(11) = CAP DOMICILIO
|
NAME(11) = CAP DOMICILIO
|
||||||
TYPE(11) = STRINGA
|
TYPE(11) = STRINGA
|
||||||
@ -118,12 +125,14 @@ TYPE(12) = STRINGA
|
|||||||
FIELD(12) = 90->DOM_CODCOM
|
FIELD(12) = 90->DOM_CODCOM
|
||||||
POSITION(12) = 143
|
POSITION(12) = 143
|
||||||
LENGTH(12) = 4
|
LENGTH(12) = 4
|
||||||
|
MESSAGE(12) = _UPPERCASE
|
||||||
|
|
||||||
NAME(13) = INDIRIZZO RESIDENZA
|
NAME(13) = INDIRIZZO RESIDENZA
|
||||||
TYPE(13) = STRINGA
|
TYPE(13) = STRINGA
|
||||||
FIELD(13) = 90->RES_INDIR
|
FIELD(13) = 90->RES_INDIR
|
||||||
POSITION(13) = 148
|
POSITION(13) = 148
|
||||||
LENGTH(13) = 30
|
LENGTH(13) = 30
|
||||||
|
MESSAGE(13) = _UPPERCASE
|
||||||
|
|
||||||
NAME(14) = CAP RESIDENZA
|
NAME(14) = CAP RESIDENZA
|
||||||
TYPE(14) = STRINGA
|
TYPE(14) = STRINGA
|
||||||
@ -136,6 +145,7 @@ TYPE(15) = STRINGA
|
|||||||
FIELD(15) = 90->RES_CODCOM
|
FIELD(15) = 90->RES_CODCOM
|
||||||
POSITION(15) = 183
|
POSITION(15) = 183
|
||||||
LENGTH(15) = 4
|
LENGTH(15) = 4
|
||||||
|
MESSAGE(15) = _UPPERCASE
|
||||||
|
|
||||||
NAME(16) = TELEFONO ABITAZIONE
|
NAME(16) = TELEFONO ABITAZIONE
|
||||||
TYPE(16) = STRINGA
|
TYPE(16) = STRINGA
|
||||||
@ -160,24 +170,28 @@ TYPE(19) = STRINGA
|
|||||||
FIELD(19) = 90->GRUPPOAB0
|
FIELD(19) = 90->GRUPPOAB0
|
||||||
POSITION(19) = 229
|
POSITION(19) = 229
|
||||||
LENGTH(19) = 3
|
LENGTH(19) = 3
|
||||||
|
MESSAGE(19) = _UPPERCASE
|
||||||
|
|
||||||
NAME(20) = RH/ANTID
|
NAME(20) = RH/ANTID
|
||||||
TYPE(20) = STRINGA
|
TYPE(20) = STRINGA
|
||||||
FIELD(20) = 90->RHANTID
|
FIELD(20) = 90->RHANTID
|
||||||
POSITION(20) = 232
|
POSITION(20) = 232
|
||||||
LENGTH(20) = 3
|
LENGTH(20) = 3
|
||||||
|
MESSAGE(20) = _UPPERCASE
|
||||||
|
|
||||||
NAME(21) = KELL
|
NAME(21) = KELL
|
||||||
TYPE(21) = STRINGA
|
TYPE(21) = STRINGA
|
||||||
FIELD(21) = 90->KELL
|
FIELD(21) = 90->KELL
|
||||||
POSITION(21) = 235
|
POSITION(21) = 235
|
||||||
LENGTH(21) = 3
|
LENGTH(21) = 3
|
||||||
|
MESSAGE(21) = _UPPERCASE
|
||||||
|
|
||||||
NAME(22) = FENOTIPO RH
|
NAME(22) = FENOTIPO RH
|
||||||
TYPE(22) = STRINGA
|
TYPE(22) = STRINGA
|
||||||
FIELD(22) = 90->FENOTIPORH
|
FIELD(22) = 90->FENOTIPORH
|
||||||
POSITION(22) = 238
|
POSITION(22) = 238
|
||||||
LENGTH(22) = 6
|
LENGTH(22) = 6
|
||||||
|
MESSAGE(22) = _UPPERCASE
|
||||||
|
|
||||||
NAME(23) = DATA ULTIMA SI
|
NAME(23) = DATA ULTIMA SI
|
||||||
TYPE(23) = DATA
|
TYPE(23) = DATA
|
||||||
@ -223,8 +237,10 @@ NAME(31) = ASSOCIAZIONE
|
|||||||
TYPE(31) = STRINGA
|
TYPE(31) = STRINGA
|
||||||
POSITION(31) = 304
|
POSITION(31) = 304
|
||||||
LENGTH(31) = 8
|
LENGTH(31) = 8
|
||||||
|
MESSAGE(31) = _UPPERCASE
|
||||||
|
|
||||||
NAME(32) = LUOGO DONAZIONE
|
NAME(32) = LUOGO DONAZIONE
|
||||||
TYPE(32) = STRINGA
|
TYPE(32) = STRINGA
|
||||||
POSITION(32) = 312
|
POSITION(32) = 312
|
||||||
LENGTH(32) = 8
|
LENGTH(32) = 8
|
||||||
|
MESSAGE(32) = _UPPERCASE
|
||||||
|
Loading…
x
Reference in New Issue
Block a user