Patch level :
Files correlati : Ricompilazione Demo : [ ] Commento : Statistica soggetti per categoria: corretto nel caso di iscrizione e dimissione nel periodo scelto git-svn-id: svn://10.65.10.50/trunk@6674 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
9f58f6898e
commit
b5997b3a23
136
at/at3300.cpp
136
at/at3300.cpp
@ -443,9 +443,9 @@ bool TStatSogxCat::riepilogo()
|
||||
_cur->setfilter((const char*) filtro, TRUE);
|
||||
TString16 codsez, codsot;
|
||||
long numero,numero2;
|
||||
TString16 catdon;
|
||||
TString16 catdon, cati, catd;
|
||||
TDate dataisc, datadim;
|
||||
bool nuovo, totale;
|
||||
bool nuovoi, totalei, nuovod, totaled;
|
||||
TTable ctd("CTD");
|
||||
TRectype& recsog = _cur->curr();
|
||||
long last = _cur->items();
|
||||
@ -453,11 +453,15 @@ bool TStatSogxCat::riepilogo()
|
||||
for ( *_cur=0; _cur->pos() < last; ++(*_cur) )
|
||||
{
|
||||
prg.addstatus(1);
|
||||
nuovo = FALSE;
|
||||
totale = FALSE;
|
||||
nuovoi = FALSE;
|
||||
totalei = FALSE;
|
||||
nuovod = FALSE;
|
||||
totaled = FALSE;
|
||||
codsez = recsog.get(SOG_CODSEZ);
|
||||
codsot = recsog.get(SOG_CODSOT);
|
||||
catdon = recsog.get(SOG_CATDON);
|
||||
cati = "";
|
||||
catd = "";
|
||||
if (catdon.not_empty())
|
||||
{
|
||||
ctd.put("CODTAB",catdon);
|
||||
@ -465,52 +469,98 @@ bool TStatSogxCat::riepilogo()
|
||||
{
|
||||
bool dimissione = ctd.get_bool("B0");
|
||||
if (dimissione)
|
||||
{
|
||||
{
|
||||
catd = catdon;
|
||||
datadim = recsog.get_date(SOG_DATADIM);
|
||||
nuovo = (datadim >= _dataini && datadim <= _datafin);
|
||||
totale = (datadim <= _datafin);
|
||||
}
|
||||
else
|
||||
{
|
||||
nuovod = (datadim >= _dataini && datadim <= _datafin);
|
||||
totaled = (datadim <= _datafin);
|
||||
cati = ctd.get("S6");
|
||||
dataisc = recsog.get_date(SOG_DATAISC);
|
||||
nuovo = (dataisc >= _dataini && dataisc <= _datafin);
|
||||
totale = (dataisc <= _datafin);
|
||||
}
|
||||
nuovoi = (dataisc >= _dataini && dataisc <= _datafin);
|
||||
totalei = (dataisc <= _datafin && datadim >= _datafin);
|
||||
}
|
||||
else
|
||||
{
|
||||
cati = catdon;
|
||||
dataisc = recsog.get_date(SOG_DATAISC);
|
||||
nuovoi = (dataisc >= _dataini && dataisc <= _datafin);
|
||||
totalei = (dataisc <= _datafin);
|
||||
}
|
||||
}
|
||||
}
|
||||
stat.zero();
|
||||
stat.put(ATSS_CODSEZ, codsez);
|
||||
stat.put(ATSS_CODSOT, codsot);
|
||||
stat.put(ATSS_CATDON, catdon);
|
||||
if (stat.read() == NOERR)
|
||||
{
|
||||
numero = stat.get_long(ATSS_NUMERO);
|
||||
numero2 = stat.get_long(ATSS_NUMERO2);
|
||||
if (nuovo)
|
||||
numero++;
|
||||
if (totale)
|
||||
numero2++;
|
||||
stat.put(ATSS_NUMERO, numero);
|
||||
stat.put(ATSS_NUMERO2, numero2);
|
||||
stat.rewrite();
|
||||
}
|
||||
else
|
||||
{
|
||||
}
|
||||
if (cati.not_empty())
|
||||
{
|
||||
stat.zero();
|
||||
stat.put(ATSS_CODSEZ, codsez);
|
||||
stat.put(ATSS_CODSOT, codsot);
|
||||
stat.put(ATSS_CATDON, catdon);
|
||||
if (nuovo)
|
||||
numero = 1;
|
||||
stat.put(ATSS_CATDON, cati);
|
||||
if (stat.read() == NOERR)
|
||||
{
|
||||
numero = stat.get_long(ATSS_NUMERO);
|
||||
numero2 = stat.get_long(ATSS_NUMERO2);
|
||||
if (nuovoi)
|
||||
numero++;
|
||||
if (totalei)
|
||||
numero2++;
|
||||
stat.put(ATSS_NUMERO, numero);
|
||||
stat.put(ATSS_NUMERO2, numero2);
|
||||
stat.rewrite();
|
||||
}
|
||||
else
|
||||
numero = 0;
|
||||
if (totale)
|
||||
numero2 = 1;
|
||||
{
|
||||
stat.put(ATSS_CODSEZ, codsez);
|
||||
stat.put(ATSS_CODSOT, codsot);
|
||||
stat.put(ATSS_CATDON, cati);
|
||||
if (nuovoi)
|
||||
numero = 1;
|
||||
else
|
||||
numero = 0;
|
||||
if (totalei)
|
||||
numero2 = 1;
|
||||
else
|
||||
numero2 = 0;
|
||||
stat.put(ATSS_NUMERO, numero);
|
||||
stat.put(ATSS_NUMERO2, numero2);
|
||||
stat.write();
|
||||
}
|
||||
}
|
||||
|
||||
if (catd.not_empty())
|
||||
{
|
||||
stat.zero();
|
||||
stat.put(ATSS_CODSEZ, codsez);
|
||||
stat.put(ATSS_CODSOT, codsot);
|
||||
stat.put(ATSS_CATDON, catd);
|
||||
if (stat.read() == NOERR)
|
||||
{
|
||||
numero = stat.get_long(ATSS_NUMERO);
|
||||
numero2 = stat.get_long(ATSS_NUMERO2);
|
||||
if (nuovod)
|
||||
numero++;
|
||||
if (totaled)
|
||||
numero2++;
|
||||
stat.put(ATSS_NUMERO, numero);
|
||||
stat.put(ATSS_NUMERO2, numero2);
|
||||
stat.rewrite();
|
||||
}
|
||||
else
|
||||
numero2 = 0;
|
||||
stat.put(ATSS_NUMERO, numero);
|
||||
stat.put(ATSS_NUMERO2, numero2);
|
||||
stat.write();
|
||||
}
|
||||
{
|
||||
stat.put(ATSS_CODSEZ, codsez);
|
||||
stat.put(ATSS_CODSOT, codsot);
|
||||
stat.put(ATSS_CATDON, catd);
|
||||
if (nuovod)
|
||||
numero = 1;
|
||||
else
|
||||
numero = 0;
|
||||
if (totaled)
|
||||
numero2 = 1;
|
||||
else
|
||||
numero2 = 0;
|
||||
stat.put(ATSS_NUMERO, numero);
|
||||
stat.put(ATSS_NUMERO2, numero2);
|
||||
stat.write();
|
||||
}
|
||||
}
|
||||
}
|
||||
return (stat.eod() > 0);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user