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:
cris 2001-11-06 09:48:07 +00:00
parent 4a5230b19a
commit 20a39f0bba
3 changed files with 91 additions and 13 deletions

View File

@ -119,6 +119,9 @@ class TCtbo2at: public TSkeleton_application
{
TMask* _msk;
TCtbo2at_file* _trasfile;
int _numdon1, _numdon2;
TString16 _catini1, _catfin1, _catini2, _catfin2;
bool _sttess2, _dataisc;
protected:
virtual bool create(void);
@ -129,10 +132,9 @@ protected:
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_inter(TRectype& recsog, const char* tipo, const TDate& datadon, int inter);
void calcola_categoria(TRectype& recsog);
public:
const TMask& msk() const { return *_msk; }
TCtbo2at() {}
virtual ~TCtbo2at() {}
};
@ -147,6 +149,15 @@ bool TCtbo2at::create()
_msk = new TMask("at8800a");
_msk->set(F_FILENAME,ATFILENAME);
_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();
}
@ -201,9 +212,43 @@ bool TCtbo2at::test_donation(TRectype& recsog, const char* tipo, const TDate& da
donazioni.insert_row(rec);
donazioni.write(TRUE);
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;
}
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)
{
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));
TString valore;
if (code == "_TOTALE")
{
}
else if (code == "_ULTIMA")
if (code == "_UPPERCASE")
{
valore.upper();
}
else NFCHECK("Macro non definita: %s", (const char *)code);
str = valore;

View File

@ -8,6 +8,7 @@
#include "contsan.h"
#include "donaz.h"
#include "idoneita.h"
#include "rconvoc.h"
bool is_idon_one(TString16 idon, const char* tipo)
// verifica che l'idoneità "idon" sia del tipo "tipo"
@ -383,25 +384,43 @@ void don_datepross(TRectype& soggetto)
statoparziale = soggetto.get(SOG_STATOSI);
datastatoparziale = soggetto.get_date(SOG_DATASI);
tipostato = modstato_tcs(statoparziale);
//if (statoparziale == SOSPENSIONE)
if (tipostato == 'S')
datasi = NULLDATE;
//if (statoparziale == IDONEITA)
if (tipostato == 'I')
if (datastatoparziale > datasi)
datasi = datastatoparziale;
statoparziale = soggetto.get(SOG_STATOAF);
datastatoparziale = soggetto.get_date(SOG_DATAAF);
tipostato = modstato_tcs(statoparziale);
//if (statoparziale == SOSPENSIONE)
if (tipostato == 'S')
dataaf = NULLDATE;
//if (statoparziale == IDONEITA)
if (tipostato = 'I')
if (datastatoparziale > dataaf)
dataaf = datastatoparziale;
soggetto.put(SOG_DATAPROSSI,datasi);
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)

View File

@ -63,13 +63,15 @@ NAME(3) = COGNOME
TYPE(3) = STRINGA
FIELD(3) = 90->COGNOME
POSITION(3) = 12
LENGTH(3) = 25
LENGTH(3) = 25
MESSAGE(3) = _UPPERCASE
NAME(4) = NOME
TYPE(4) = STRINGA
FIELD(4) = 90->NOME
POSITION(4) = 37
LENGTH(4) = 25
MESSAGE(4) = _UPPERCASE
NAME(5) = DATA NASCITA
TYPE(5) = DATA
@ -82,30 +84,35 @@ TYPE(6) = STRINGA
FIELD(6) = 90->COMNASC
POSITION(6) = 71
LENGTH(6) = 4
MESSAGE(6) = _UPPERCASE
NAME(7) = SESSO
TYPE(7) = STRINGA
FIELD(7) = 90->SESSO
POSITION(7) = 75
LENGTH(7) = 1
MESSAGE(7) = _UPPERCASE
NAME(8) = TESSERA SSN
TYPE(8) = STRINGA
FIELD(8) = 90->TESSSSN
POSITION(8) = 76
LENGTH(8) = 16
MESSAGE(8) = _UPPERCASE
NAME(9) = CODICE FISCALE
TYPE(9) = STRINGA
FIELD(9) = 90->CF
POSITION(9) = 92
LENGTH(9) = 16
MESSAGE(9) = _UPPERCASE
NAME(10) = INDIRIZZO DOMICILIO
TYPE(10) = STRINGA
FIELD(10) = 90->DOM_INDIR
POSITION(10) = 108
LENGTH(10) = 30
MESSAGE(10) = _UPPERCASE
NAME(11) = CAP DOMICILIO
TYPE(11) = STRINGA
@ -118,12 +125,14 @@ TYPE(12) = STRINGA
FIELD(12) = 90->DOM_CODCOM
POSITION(12) = 143
LENGTH(12) = 4
MESSAGE(12) = _UPPERCASE
NAME(13) = INDIRIZZO RESIDENZA
TYPE(13) = STRINGA
FIELD(13) = 90->RES_INDIR
POSITION(13) = 148
LENGTH(13) = 30
MESSAGE(13) = _UPPERCASE
NAME(14) = CAP RESIDENZA
TYPE(14) = STRINGA
@ -136,6 +145,7 @@ TYPE(15) = STRINGA
FIELD(15) = 90->RES_CODCOM
POSITION(15) = 183
LENGTH(15) = 4
MESSAGE(15) = _UPPERCASE
NAME(16) = TELEFONO ABITAZIONE
TYPE(16) = STRINGA
@ -160,24 +170,28 @@ TYPE(19) = STRINGA
FIELD(19) = 90->GRUPPOAB0
POSITION(19) = 229
LENGTH(19) = 3
MESSAGE(19) = _UPPERCASE
NAME(20) = RH/ANTID
TYPE(20) = STRINGA
FIELD(20) = 90->RHANTID
POSITION(20) = 232
LENGTH(20) = 3
MESSAGE(20) = _UPPERCASE
NAME(21) = KELL
TYPE(21) = STRINGA
FIELD(21) = 90->KELL
POSITION(21) = 235
LENGTH(21) = 3
MESSAGE(21) = _UPPERCASE
NAME(22) = FENOTIPO RH
TYPE(22) = STRINGA
FIELD(22) = 90->FENOTIPORH
POSITION(22) = 238
LENGTH(22) = 6
MESSAGE(22) = _UPPERCASE
NAME(23) = DATA ULTIMA SI
TYPE(23) = DATA
@ -223,8 +237,10 @@ NAME(31) = ASSOCIAZIONE
TYPE(31) = STRINGA
POSITION(31) = 304
LENGTH(31) = 8
MESSAGE(31) = _UPPERCASE
NAME(32) = LUOGO DONAZIONE
TYPE(32) = STRINGA
POSITION(32) = 312
LENGTH(32) = 8
LENGTH(32) = 8
MESSAGE(32) = _UPPERCASE