git-svn-id: svn://10.65.10.50/branches/R_10_00@22737 c028cbd2-c16b-5b4b-a496-9718f37d4682

This commit is contained in:
guy 2012-10-26 08:26:30 +00:00
parent a188f840dc
commit 3a98d37f2b

View File

@ -196,7 +196,7 @@ bool TAttribuzioneBenemerenze::set_print(int)
tasto = _msk->run();
if (tasto == K_ENTER)
{
const TDate datarif = TDate("16/05/2004");
const TDate datarif(16, 5, 2004);
_oldben = "**";
_contatore = 0;
_prevista = (_msk->get(F_SITUAZIONE)[0] == 'P');
@ -208,12 +208,12 @@ bool TAttribuzioneBenemerenze::set_print(int)
_definitiva = _msk->get_bool(F_DEFINITIVA);
_nuovicriteri = _msk->get_bool(F_NUOVICRITERI);
_catdon.destroy();
const TString16 catpri = _msk->get(F_CAT1);
const TString16 catsec = _msk->get(F_CAT2);
const TString16 catter = _msk->get(F_CAT3);
const TString16 catqua = _msk->get(F_CAT4);
const TString16 catqui = _msk->get(F_CAT5);
const TString16 catses = _msk->get(F_CAT6);
const TString4 catpri = _msk->get(F_CAT1);
const TString4 catsec = _msk->get(F_CAT2);
const TString4 catter = _msk->get(F_CAT3);
const TString4 catqua = _msk->get(F_CAT4);
const TString4 catqui = _msk->get(F_CAT5);
const TString4 catses = _msk->get(F_CAT6);
if (catpri.not_empty())
_catdon.add((const char*) catpri);
if (catsec.not_empty())
@ -235,34 +235,36 @@ bool TAttribuzioneBenemerenze::set_print(int)
int m_numdon = ben.get_int("I1");
int m_anni = ben.get_int("I2");
bool solodim = ben.get_bool("B0");
TToken_string* condizioni = new TToken_string();;
TToken_string* condizioni = new TToken_string();
condizioni->add(numdonben);
condizioni->add(m_numdon);
condizioni->add(m_anni);
condizioni->add(solodim);
_tabben.add((const char*)codben, (TObject*) condizioni);
_tabben.add(codben, condizioni);
}
TString80 filtro;
if (_attgruppi)
{
if (_gruppoazie.not_empty())
if (_gruppoazie.full())
filtro.format("(90->GRUPPOAZIE == \"%s\")",(const char*)_gruppoazie);
else
filtro.format("(90->GRUPPOAZIE != \"\")");
}
else
{
if (!_anchegruppi)
filtro.format("(90->GRUPPOAZIE == \"\")");
}
if (filtro.not_empty())
filtro << " && ";
filtro << "(90->BENEM == \"X\")";
// filtro per sezioni
const TString16 sezini = _msk->get(F_SEZINI);
const TString16 sotini = _msk->get(F_SOTINI);
const TString& sezini = _msk->get(F_SEZINI);
const TString& sotini = _msk->get(F_SOTINI);
TRectype da(LF_SOGGETTI);
if (sezini.not_empty())
if (sezini.full())
da.put(SOG_CODSEZ, sezini);
if (sotini.not_empty())
if (sotini.full())
da.put(SOG_CODSOT, sotini);
_cur = new TCursor(_rel, "", 3, &da, &da);
_cur->setfilter(filtro, TRUE);
@ -285,20 +287,20 @@ bool TAttribuzioneBenemerenze::set_print(int)
atopera.write();
TLocalisamfile atropera(LF_ATROPERA);
TRectype& sog = _cur->curr();
long last = _cur->items();
const long last = _cur->items();
_benem->setkey(3);
TProgind prg (last, "Elaborazione in corso... Prego attendere", FALSE, TRUE, 30);
TProgind prg(last, TR("Elaborazione in corso... Prego attendere"), FALSE, TRUE);
for ( *_cur=0; _cur->pos() < last; ++(*_cur) )
{
prg.addstatus(1);
// controllare la categoria
bool filtrato = TRUE;
long codice = sog.get_long(SOG_CODICE);
const long codice = sog.get_long(SOG_CODICE);
if (_catdon.items() != 0)
{
const TString16 cat = sog.get(SOG_CATDON);
filtrato = _catdon.is_key((const char*) cat);
const TString& cat = sog.get(SOG_CATDON);
filtrato = _catdon.is_key(cat);
}
if (filtrato)
{
@ -319,7 +321,7 @@ bool TAttribuzioneBenemerenze::set_print(int)
{
const TRectype& riga = _sdonazioni->row(r);
const TDate datadon = riga.get_date(DON_DATADON);
const TString16 tipodon = riga.get(DON_TIPODON);
const TString4 tipodon = riga.get(DON_TIPODON);
if (datadon<=_dataela)
{
if (_nuovicriteri && datadon>datarif) // 16/05/2004
@ -333,15 +335,21 @@ bool TAttribuzioneBenemerenze::set_print(int)
anno = datadon.year();
}
donxanno++;
int eta = datadon.year() - datanasc.year();
if (datadon.month() < datanasc.month())
eta--;
else
if (datadon.month() == datanasc.month())
if (datadon.day() < datanasc.day())
eta--;
if ((tipodon == "SI" || tipodon=="SN") && (sesso == '2') && (eta < 50))
donxanno++;
if (sesso == '2' && (tipodon == "SI" || tipodon=="SN"))
{
int eta = datadon.year() - datanasc.year();
if (datadon.month() < datanasc.month())
eta--;
else
{
if (datadon.month() == datanasc.month() && datadon.day() < datanasc.day())
eta--;
}
// Le donne 'giovani' hanno il bonus (2x1 donazioni)
if (eta < 50)
donxanno++;
}
}
else
numdon++;
@ -422,12 +430,12 @@ bool TAttribuzioneBenemerenze::set_print(int)
attribuisci = true;
if (_nuovicriteri && !attribuisci && (m_bonus > 0 || m_anni > 0)) // se uso nuovi criteri e non ne ha diritto col vecchio sistema quardo se ne ha diritto con i nuovi criteri
{
const int anniisc = (_dataela - dataisc)/360;
const int anniisc = int((_dataela - dataisc)/360.25);
attribuisci = (numdon >= m_bonus) && (anniisc >= m_anni);
}
if (attribuisci && solodim)
{
const TString16 cat = sog.get(SOG_CATDON);
const TString4 cat = sog.get(SOG_CATDON);
attribuisci = cache().get("CTD", cat).get_bool("B0");
}
if (attribuisci)
@ -436,7 +444,7 @@ bool TAttribuzioneBenemerenze::set_print(int)
_benem->zero();
_benem->put(BEN_CODICE, codice);
_benem->put(BEN_TIPOBEN, tipoben);
_benem->read();
_benem->read();
if (_benem->bad())
{
atropera.zero();
@ -457,7 +465,7 @@ bool TAttribuzioneBenemerenze::set_print(int)
TString80 chiave = "131->S0|UPPER(90->COGNOME)|UPPER(90->NOME)";
TString80 filtroope = format("131->PROGOPE==%d", _progope);
int curope = add_cursor(new TSorted_cursor(relope, (const char*) chiave, "", 1));
current_cursor()->setfilter((const char*) filtroope, TRUE);
current_cursor()->setfilter(filtroope, TRUE);
add_file(LF_ATROPERA);
add_file(LF_SOGGETTI,LF_ATROPERA);
reset_print();
@ -538,6 +546,6 @@ bool TAttribuzioneBenemerenze::user_destroy()
int at1200(int argc, char* argv[])
{
TAttribuzioneBenemerenze a;
a.run(argc, argv, "Attribuzione complessiva");
a.run(argc, argv, TR("Attribuzione complessiva"));
return 0;
}