Patch level :
Files correlati : Ricompilazione Demo : [ ] Commento : Statistiche soggetti alla data: corretto calcolo in base alle date di iscrizione e dimissione git-svn-id: svn://10.65.10.50/trunk@6692 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
df3fa7cd21
commit
7017b9be2f
@ -479,6 +479,7 @@ bool TStatSogxEta::riepilogo()
|
||||
TString256 filtro = "";
|
||||
|
||||
// filtro per categoria
|
||||
/*
|
||||
if (_catdon.not_empty())
|
||||
{
|
||||
if (filtro.empty())
|
||||
@ -502,6 +503,7 @@ bool TStatSogxEta::riepilogo()
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
// filtro per sezione/sottogruppo
|
||||
if (_sezini.not_empty())
|
||||
{
|
||||
@ -545,50 +547,86 @@ bool TStatSogxEta::riepilogo()
|
||||
}
|
||||
|
||||
_cur->setfilter((const char*) filtro, TRUE);
|
||||
TString16 codsez, codsot;
|
||||
TString16 codsez, codsot, catdon, catcoll;
|
||||
long numero;
|
||||
TString16 sesso;
|
||||
int eta, fascia;
|
||||
TDate datanasc;
|
||||
|
||||
TDate datanasc, dataisc, datadim;
|
||||
bool catdim, ok;
|
||||
const TDate oggi(TODAY);
|
||||
const int anno = oggi.year();
|
||||
TTable ctd("CTD");
|
||||
ctd.put("CODTAB", _catdon);
|
||||
if (ctd.read() == NOERR)
|
||||
catdim = ctd.get_bool("B0");
|
||||
TRectype& recsog = _cur->curr();
|
||||
long last = _cur->items();
|
||||
TProgind prg (last, "Elaborazione in corso... Prego attendere", FALSE, TRUE, 30);
|
||||
for ( *_cur=0; _cur->pos() < last; ++(*_cur) )
|
||||
{
|
||||
prg.addstatus(1);
|
||||
codsez = recsog.get(SOG_CODSEZ);
|
||||
codsot = recsog.get(SOG_CODSOT);
|
||||
datanasc = recsog.get_date(SOG_DATANASC);
|
||||
eta = _data.year() - datanasc.year();
|
||||
fascia = data2row(eta);
|
||||
sesso = recsog.get(SOG_SESSO);
|
||||
if (sesso.empty())
|
||||
sesso = "9";
|
||||
stat.zero();
|
||||
stat.put(ATSS_CODSEZ, codsez);
|
||||
stat.put(ATSS_CODSOT, codsot);
|
||||
stat.put(ATSS_SESSO, sesso);
|
||||
stat.put(ATSS_FASCIA, fascia);
|
||||
if (stat.read() == NOERR)
|
||||
catdon = recsog.get(SOG_CATDON);
|
||||
catcoll = "";
|
||||
dataisc = NULLDATE;
|
||||
datadim = NULLDATE;
|
||||
ok = FALSE;
|
||||
if (catdon.not_empty())
|
||||
{
|
||||
numero = stat.get_long(ATSS_NUMERO);
|
||||
numero++;
|
||||
stat.put(ATSS_NUMERO, numero);
|
||||
stat.rewrite();
|
||||
}
|
||||
else
|
||||
if (catdim)
|
||||
{
|
||||
datadim = recsog.get_date(SOG_DATADIM);
|
||||
ok = ((catdon == _catdon) && (datadim <= _data));
|
||||
}
|
||||
else
|
||||
{
|
||||
dataisc = recsog.get_date(SOG_DATAISC);
|
||||
ok = ((catdon == _catdon) && (dataisc <= _data));
|
||||
if (!ok)
|
||||
{
|
||||
ctd.put("CODTAB", catdon);
|
||||
if (ctd.read() == NOERR)
|
||||
{
|
||||
catcoll = ctd.get("S6");
|
||||
datadim = recsog.get_date(SOG_DATADIM);
|
||||
ok = ((catcoll == _catdon) && (dataisc <= _data) && (datadim > _data));
|
||||
}
|
||||
// se la categoria collegata è vuota occorre esaminare lo storico
|
||||
}
|
||||
}
|
||||
}
|
||||
if (ok)
|
||||
{
|
||||
codsez = recsog.get(SOG_CODSEZ);
|
||||
codsot = recsog.get(SOG_CODSOT);
|
||||
datanasc = recsog.get_date(SOG_DATANASC);
|
||||
eta = _data.year() - datanasc.year();
|
||||
fascia = data2row(eta);
|
||||
sesso = recsog.get(SOG_SESSO);
|
||||
if (sesso.empty())
|
||||
sesso = "9";
|
||||
stat.zero();
|
||||
stat.put(ATSS_CODSEZ, codsez);
|
||||
stat.put(ATSS_CODSOT, codsot);
|
||||
stat.put(ATSS_SESSO, sesso);
|
||||
stat.put(ATSS_SESSO, sesso);
|
||||
stat.put(ATSS_FASCIA, fascia);
|
||||
numero = 1;
|
||||
stat.put(ATSS_NUMERO, numero);
|
||||
stat.write();
|
||||
}
|
||||
if (stat.read() == NOERR)
|
||||
{
|
||||
numero = stat.get_long(ATSS_NUMERO);
|
||||
numero++;
|
||||
stat.put(ATSS_NUMERO, numero);
|
||||
stat.rewrite();
|
||||
}
|
||||
else
|
||||
{
|
||||
stat.put(ATSS_CODSEZ, codsez);
|
||||
stat.put(ATSS_CODSOT, codsot);
|
||||
stat.put(ATSS_SESSO, sesso);
|
||||
stat.put(ATSS_FASCIA, fascia);
|
||||
numero = 1;
|
||||
stat.put(ATSS_NUMERO, numero);
|
||||
stat.write();
|
||||
}
|
||||
}
|
||||
}
|
||||
return (stat.eod() > 0);
|
||||
}
|
||||
|
@ -477,7 +477,7 @@ bool TStatSogxCat::riepilogo()
|
||||
cati = ctd.get("S6");
|
||||
dataisc = recsog.get_date(SOG_DATAISC);
|
||||
nuovoi = (dataisc >= _dataini && dataisc <= _datafin);
|
||||
totalei = (dataisc <= _datafin && datadim >= _datafin);
|
||||
totalei = (dataisc <= _datafin && datadim > _datafin);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
103
at/at3700.cpp
103
at/at3700.cpp
@ -474,7 +474,8 @@ bool TStatisticaSog::riepilogo()
|
||||
stat.setkey(1);
|
||||
_cur = new TCursor(_rel, "", 1);
|
||||
TString256 filtro = "";
|
||||
|
||||
|
||||
/*
|
||||
// filtro per categoria
|
||||
if (_catdon.not_empty())
|
||||
{
|
||||
@ -499,6 +500,7 @@ bool TStatisticaSog::riepilogo()
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
// filtro per sezione/sottogruppo
|
||||
if (_sezini.not_empty())
|
||||
{
|
||||
@ -541,51 +543,88 @@ bool TStatisticaSog::riepilogo()
|
||||
}
|
||||
}
|
||||
_cur->setfilter((const char*) filtro, TRUE);
|
||||
TString16 codsez, codsot;
|
||||
TString16 codsez, codsot, catdon, catcoll;
|
||||
long numero;
|
||||
TString16 gruppo, rh, sesso;
|
||||
|
||||
TDate dataisc, datadim;
|
||||
bool catdim, ok;
|
||||
TTable ctd("CTD");
|
||||
ctd.put("CODTAB", _catdon);
|
||||
if (ctd.read() == NOERR)
|
||||
catdim = ctd.get_bool("B0");
|
||||
TRectype& recsog = _cur->curr();
|
||||
long last = _cur->items();
|
||||
TProgind prg (last, "Elaborazione in corso... Prego attendere", FALSE, TRUE, 30);
|
||||
for ( *_cur=0; _cur->pos() < last; ++(*_cur) )
|
||||
{
|
||||
prg.addstatus(1);
|
||||
codsez = recsog.get(SOG_CODSEZ);
|
||||
codsot = recsog.get(SOG_CODSOT);
|
||||
gruppo = recsog.get(SOG_GRUPPOAB0);
|
||||
rh = recsog.get(SOG_RHANTID);
|
||||
sesso = recsog.get(SOG_SESSO);
|
||||
if (sesso.empty())
|
||||
sesso = "9";
|
||||
if (gruppo == "A1" || gruppo == "A2")
|
||||
gruppo = "A";
|
||||
if (gruppo == "A1B" || gruppo == "A2B")
|
||||
gruppo = "AB";
|
||||
stat.zero();
|
||||
stat.put(ATSS_CODSEZ, codsez);
|
||||
stat.put(ATSS_CODSOT, codsot);
|
||||
stat.put(ATSS_SESSO, sesso);
|
||||
stat.put(ATSS_GRUPPO, gruppo);
|
||||
stat.put(ATSS_RH, rh);
|
||||
if (stat.read() == NOERR)
|
||||
catdon = recsog.get(SOG_CATDON);
|
||||
catcoll = "";
|
||||
dataisc = NULLDATE;
|
||||
datadim = NULLDATE;
|
||||
ok = FALSE;
|
||||
if (catdon.not_empty())
|
||||
{
|
||||
numero = stat.get_long(ATSS_NUMERO);
|
||||
numero++;
|
||||
stat.put(ATSS_NUMERO, numero);
|
||||
stat.rewrite();
|
||||
}
|
||||
else
|
||||
if (catdim)
|
||||
{
|
||||
datadim = recsog.get_date(SOG_DATADIM);
|
||||
ok = ((catdon == _catdon) && (datadim <= _data));
|
||||
}
|
||||
else
|
||||
{
|
||||
dataisc = recsog.get_date(SOG_DATAISC);
|
||||
ok = ((catdon == _catdon) && (dataisc <= _data));
|
||||
if (!ok)
|
||||
{
|
||||
ctd.put("CODTAB", catdon);
|
||||
if (ctd.read() == NOERR)
|
||||
{
|
||||
catcoll = ctd.get("S6");
|
||||
datadim = recsog.get_date(SOG_DATADIM);
|
||||
ok = ((catcoll == _catdon) && (dataisc <= _data) && (datadim > _data));
|
||||
}
|
||||
// se la categoria collegata è vuota occorre esaminare lo storico
|
||||
}
|
||||
}
|
||||
}
|
||||
if (ok)
|
||||
{
|
||||
codsez = recsog.get(SOG_CODSEZ);
|
||||
codsot = recsog.get(SOG_CODSOT);
|
||||
gruppo = recsog.get(SOG_GRUPPOAB0);
|
||||
rh = recsog.get(SOG_RHANTID);
|
||||
sesso = recsog.get(SOG_SESSO);
|
||||
if (sesso.empty())
|
||||
sesso = "9";
|
||||
if (gruppo == "A1" || gruppo == "A2")
|
||||
gruppo = "A";
|
||||
if (gruppo == "A1B" || gruppo == "A2B")
|
||||
gruppo = "AB";
|
||||
stat.zero();
|
||||
stat.put(ATSS_CODSEZ, codsez);
|
||||
stat.put(ATSS_CODSOT, codsot);
|
||||
stat.put(ATSS_SESSO, sesso);
|
||||
stat.put(ATSS_SESSO, sesso);
|
||||
stat.put(ATSS_GRUPPO, gruppo);
|
||||
stat.put(ATSS_RH, rh);
|
||||
numero = 1;
|
||||
stat.put(ATSS_NUMERO, numero);
|
||||
stat.write();
|
||||
}
|
||||
if (stat.read() == NOERR)
|
||||
{
|
||||
numero = stat.get_long(ATSS_NUMERO);
|
||||
numero++;
|
||||
stat.put(ATSS_NUMERO, numero);
|
||||
stat.rewrite();
|
||||
}
|
||||
else
|
||||
{
|
||||
stat.put(ATSS_CODSEZ, codsez);
|
||||
stat.put(ATSS_CODSOT, codsot);
|
||||
stat.put(ATSS_SESSO, sesso);
|
||||
stat.put(ATSS_GRUPPO, gruppo);
|
||||
stat.put(ATSS_RH, rh);
|
||||
numero = 1;
|
||||
stat.put(ATSS_NUMERO, numero);
|
||||
stat.write();
|
||||
}
|
||||
}
|
||||
}
|
||||
return (stat.eod() > 0);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user