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;
|
||||
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;
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user