Patch level : at 1.7 702

Files correlati     : at2.exe
Ricompilazione Demo : [ ]
Commento            : aggiutna possibiltia' di stampare sospesi per singola tipologia di donazione


git-svn-id: svn://10.65.10.50/trunk@12138 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
cris 2004-06-03 10:41:39 +00:00
parent 6f88b57991
commit 8c8c3427d6
3 changed files with 76 additions and 8 deletions

View File

@ -52,7 +52,7 @@ class TStampaSospesi : public TPrintapp
int _contatore, _totale;
int _etlarghezza, _etcolonne, _etrighe, _etbordoini, _etbordofin, _netichette;
int _caxpag, _cabordoini, _cabordofin, _ncartoline;
bool _motivi, _pergruppo;
bool _motivi, _pergruppo, _sosingole;
TString16 _orario, _datacart;
TString80 _invitoper, _data, _presso1, _presso2, _presso3, _presso4;
TString80 _note, _intest1, _intest2, _intest3, _intest4;
@ -329,6 +329,7 @@ void TStampaSospesi::set_page(int file, int cnt)
bool TStampaSospesi::filter_func_sospesi(const TRelation* rel)
{
bool filtrato = TRUE;
bool filtrocat = TRUE;
TRectype recsog = rel->lfile().curr();
// filtro per categorie
TAssoc_array& categorie = app()._categorie;
@ -336,6 +337,7 @@ bool TStampaSospesi::filter_func_sospesi(const TRelation* rel)
{
const TString16 cat = recsog.get(SOG_CATDON);
filtrato = categorie.is_key((const char*) cat);
filtrocat = filtrato;
}
if ((filtrato) && (app()._sodataini.ok()))
{
@ -344,7 +346,7 @@ bool TStampaSospesi::filter_func_sospesi(const TRelation* rel)
}
if ((filtrato) && (app()._sodatafin.ok()))
{
const TDate datastato = recsog.get_date(SOG_DATASTATO);
TDate datastato = recsog.get_date(SOG_DATASTATO);
filtrato = (datastato <= app()._sodatafin);
}
if ((filtrato) && (app()._dataini.ok()))
@ -375,6 +377,58 @@ bool TStampaSospesi::filter_func_sospesi(const TRelation* rel)
else
filtrato = FALSE;
}
if (!filtrato && filtrocat && app()._sosingole)
{
// verifico se e' sospeso per una singola tipologia di donazione
// Sangue intero
filtrato = TRUE;
if ((filtrato) && (app()._sodataini.ok()))
{
const TDate datastato = recsog.get_date(SOG_DATASI);
filtrato = (datastato >= app()._sodataini);
}
if ((filtrato) && (app()._sodatafin.ok()))
{
TDate datastato = recsog.get_date(SOG_DATASI);
filtrato = (datastato <= app()._sodatafin);
}
if ((filtrato) && (app()._dataini.ok()))
{
const TDate datapross = recsog.get_date(SOG_FINESOSSI);
filtrato = (datapross >= app()._dataini);
}
if ((filtrato) && (app()._datafin.ok()))
{
const TDate datapross = recsog.get_date(SOG_FINESOSSI);
filtrato = (datapross <= app()._datafin);
}
}
if (!filtrato && filtrocat && app()._sosingole)
{
// verifico se e' sospeso per una singola tipologia di donazione
// Aferesi
filtrato = TRUE;
if ((filtrato) && (app()._sodataini.ok()))
{
const TDate datastato = recsog.get_date(SOG_DATAAF);
filtrato = (datastato >= app()._sodataini);
}
if ((filtrato) && (app()._sodatafin.ok()))
{
TDate datastato = recsog.get_date(SOG_DATAAF);
filtrato = (datastato <= app()._sodatafin);
}
if ((filtrato) && (app()._dataini.ok()))
{
const TDate datapross = recsog.get_date(SOG_FINESOSAF);
filtrato = (datapross >= app()._dataini);
}
if ((filtrato) && (app()._datafin.ok()))
{
const TDate datapross = recsog.get_date(SOG_FINESOSAF);
filtrato = (datapross <= app()._datafin);
}
}
return filtrato;
}
@ -585,6 +639,7 @@ bool TStampaSospesi::set_print(int m)
_motivo5 = _msk->get(F_MOTIVO5);
_motivi = (_motivo1.not_empty() || _motivo2.not_empty() || _motivo3.not_empty() || _motivo4.not_empty() || _motivo5.not_empty());
_pergruppo = _msk->get_bool(F_PERGRUPPO);
_sosingole = _msk->get_bool(F_SOSINGOLE);
TString256 filtro = "";
// filtro per gruppo aziendale
if (_pergruppo)
@ -598,10 +653,15 @@ bool TStampaSospesi::set_print(int m)
}
// filtro per tipo sospensione
_tiposo = _msk->get(F_TIPO);
if (_sosingole)
filtro << "((" << SOG_STATOSI << "== \"SO\") || (" << SOG_STATOAF << "== \"SO\") || " ;
if (_tiposo.not_empty())
filtro << '(' << SOG_STATO << "== \"" << _tiposo << "\")";
else
filtro << "((TCS->S6 == \"S\") || (TCS->S6 == \"B\"))";
filtro << "((TCS->S6 == \"S\") || (TCS->S6 == \"B\"))";
if (_sosingole)
filtro << ')';
_prosstipo = _msk->get(F_PROSSTIPO);
if (_prosstipo.not_empty())
filtro << " && (" << SOG_PROS_STATO << "== \"" << _prosstipo << "\")";

View File

@ -41,6 +41,7 @@
#define F_D_MOTIVO4 316
#define F_MOTIVO5 317
#define F_D_MOTIVO5 318
#define F_SOSINGOLE 319
#define F_PERGRUPPO 401
#define F_GRUPPOAZIE 402

View File

@ -36,7 +36,7 @@ BEGIN
END
ENDPAGE
PAGE "Stampa soggetti sospesi" -1 -1 78 21
PAGE "Stampa soggetti sospesi" -1 -1 78 22
GROUPBOX DLG_NULL 77 4
BEGIN
@ -280,7 +280,7 @@ BEGIN
FLAGS "D"
END
GROUPBOX DLG_NULL 77 12
GROUPBOX DLG_NULL 77 13
BEGIN
PROMPT 1 10 "Opzioni per la stampa"
END
@ -452,16 +452,23 @@ BEGIN
FLAGS "D"
END
BOOLEAN F_SOSINGOLE
BEGIN
PROMPT 2 20 "Stampa anche sospesi su singola tipologia di donazione"
END
BOOLEAN F_PERGRUPPO
BEGIN
PROMPT 2 20 "Stampa per gruppo aziendale"
PROMPT 2 21 "Stampa per gruppo aziendale"
MESSAGE TRUE ENABLE,F_GRUPPOAZIE|ENABLE,F_D_GRUPPOAZIE
MESSAGE FALSE RESET,F_GRUPPOAZIE|RESET,F_D_GRUPPOAZIE|DISABLE,F_GRUPPOAZIE|DISABLE,F_D_GRUPPOAZIE
END
STRING F_GRUPPOAZIE 4
BEGIN
PROMPT 35 20 ""
PROMPT 35 21 ""
FLAGS "U"
USE GAZ
INPUT CODTAB F_GRUPPOAZIE
@ -476,7 +483,7 @@ END
STRING F_D_GRUPPOAZIE 30
BEGIN
PROMPT 43 20 ""
PROMPT 43 21 ""
FLAGS "U"
USE GAZ KEY 2
INPUT S0 F_D_GRUPPOAZIE