Patch level :

Files correlati     :
Ricompilazione Demo : [ ]
Commento            : Convocazioni: possibilita di selezionare mod. di convoc. e se convocare tutti quelli col punto (anche di altre sezioni); aggiunto in elenco sogg. convocati la data ultima donazione


git-svn-id: svn://10.65.10.50/trunk@7780 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
cris 1999-02-12 12:26:59 +00:00
parent 758bd65930
commit bc2a58a893
3 changed files with 110 additions and 70 deletions

View File

@ -46,6 +46,7 @@ class TGestioneConvocazioni: public TRelation_application
TString16 _tipo; // tipo donazione TString16 _tipo; // tipo donazione
TString16 _codsez; // codice sezione convocata TString16 _codsez; // codice sezione convocata
TString16 _codsot; // codice sottogruppo TString16 _codsot; // codice sottogruppo
TString16 _modconv; // modalita di convocazione
TDate _dataini; TDate _dataini;
bool _tutti, _ritarda; bool _tutti, _ritarda;
int _maxrit; int _maxrit;
@ -97,7 +98,11 @@ void TGestioneConvocazioni::init_modify_mode(TMask& m)
m.show(-1); m.show(-1);
m.hide(-2); m.hide(-2);
if (app()._inserimento) if (app()._inserimento)
{
m.enable(-3); m.enable(-3);
m.set(F_TUTTI, TRUE);
m.set(F_MODCONV, "PO");
}
else else
m.disable(-3); m.disable(-3);
} }
@ -114,7 +119,7 @@ bool TGestioneConvocazioni::filter_func_convoc(const TRelation* rel)
const bool dimesso = rel->lfile(ALIAS_CTD).get_bool("B0"); const bool dimesso = rel->lfile(ALIAS_CTD).get_bool("B0");
filtrato = (cat.not_empty() && (stato == 'I' || stato == 'F') && !dimesso && escluso.empty()); filtrato = (cat.not_empty() && (stato == 'I' || stato == 'F') && !dimesso && escluso.empty());
if (filtrato) if (filtrato)
filtrato = ((modconv.empty()) || (modconv == "PO") || (modconv == "IN")); filtrato = ((modconv.empty()) || (modconv == app()._modconv) || (modconv == "IN"));
if (filtrato) if (filtrato)
{ {
filtrato = FALSE; filtrato = FALSE;
@ -174,11 +179,10 @@ bool TGestioneConvocazioni::filter_func_convoc(const TRelation* rel)
bool TGestioneConvocazioni::sezione_handler(TMask_field& f, KEY k) bool TGestioneConvocazioni::sezione_handler(TMask_field& f, KEY k)
{ {
if (f.to_check(k)) if (f.to_check(k))
//if (f.to_check(k))
{ {
TMask& m = f.mask(); TMask& m = f.mask();
//if (m.get(F_DATAINI).empty() && (m.mode() == MODE_INS)) if (m.get(F_DATAINI).empty() && (m.mode() == MODE_INS))
if (m.mode() == MODE_INS) //if (m.mode() == MODE_INS)
{ {
//const TString16 codsez = m.get(F_CODSEZ); //const TString16 codsez = m.get(F_CODSEZ);
//const TString16 codsot = m.get(F_CODSOT); //const TString16 codsot = m.get(F_CODSOT);
@ -281,13 +285,14 @@ bool TGestioneConvocazioni::esegui_handler(TMask_field& f, KEY k)
{ {
if (k == K_SPACE) if (k == K_SPACE)
{ {
f.disable();
TMask& m = f.mask(); TMask& m = f.mask();
TCursor* cur = app()._cur; TCursor* cur = app()._cur;
app()._numero = m.get_long(F_NUMERO); app()._numero = m.get_long(F_NUMERO);
app()._data = m.get(F_DATA); app()._data = m.get(F_DATA);
app()._punto = m.get(F_PUNTO); app()._punto = m.get(F_PUNTO);
//app()._tutti = m.get_bool(F_TUTTI); app()._tutti = m.get_bool(F_TUTTI);
app()._tutti = TRUE; //app()._tutti = TRUE;
app()._tipo = m.get(F_TIPO); app()._tipo = m.get(F_TIPO);
app()._codsez = m.get(F_CODSEZ); app()._codsez = m.get(F_CODSEZ);
app()._codsot = m.get(F_CODSOT); app()._codsot = m.get(F_CODSOT);
@ -296,6 +301,7 @@ bool TGestioneConvocazioni::esegui_handler(TMask_field& f, KEY k)
app()._dataini = app()._data; app()._dataini = app()._data;
app()._ritarda = m.get_bool(F_RITARDA); app()._ritarda = m.get_bool(F_RITARDA);
app()._maxrit = m.get_int(F_MAXRIT); app()._maxrit = m.get_int(F_MAXRIT);
app()._modconv = m.get(F_MODCONV);
if (app()._numero == 0 || !app()._data.ok() || app()._punto.empty() || app()._tipo.empty()) if (app()._numero == 0 || !app()._data.ok() || app()._punto.empty() || app()._tipo.empty())
return f.error_box("Mancano i dati fondamentali per la convocazione"); return f.error_box("Mancano i dati fondamentali per la convocazione");
// filtro per sezione // filtro per sezione
@ -408,57 +414,61 @@ bool TGestioneConvocazioni::esegui_handler(TMask_field& f, KEY k)
} }
} }
} }
switch (chiamata) if (dataprossi<=data)
{ {
case 'C': switch (chiamata)
nconv++;
break;
case 'S':
nsoll++;
break;
case 'R':
nrit++;
break;
}
if (giorni > 0)
{
datasog = NULLDATE;
int partenza;
if (datarif <= dataini)
partenza = 0;
else
partenza = (int)(datarif-dataini);
for (int r=partenza;r<=giorni;r++)
{ {
if ((numperdata[r]<quanti) && (!datasog.ok())) case 'C':
nconv++;
break;
case 'S':
nsoll++;
break;
case 'R':
nrit++;
break;
}
if (giorni > 0)
{
datasog = NULLDATE;
int partenza;
if (datarif <= dataini)
partenza = 0;
else
partenza = (int)(datarif-dataini);
for (int r=partenza;r<=giorni;r++)
{ {
datasog = dataini+(long)(r); if ((numperdata[r]<quanti) && (!datasog.ok()))
numperdata[r]++; {
datasog = dataini+(long)(r);
numperdata[r]++;
}
}
if (!datasog.ok())
{
if (dataprossi < dataini)
datasog = dataini;
else
datasog = dataprossi;
} }
} }
if (!datasog.ok()) TToken_string& row = s.row(r);
{ row.add(rec.get(SOG_CODICE));
if (dataprossi < dataini) row.add(rec.get(SOG_COGNOME));
datasog = dataini; row.add(rec.get(SOG_NOME));
else row.add(datasog);
datasog = dataprossi; row.add(chiamata);
} row.add(' '); // stampato
row.add(' '); // annullato
row.add(rec.get(SOG_DATANASC));
row.add(rec.get(SOG_CATDON));
row.add(rec.get(SOG_TESSAVIS));
row.add(rec.get(SOG_CODSEZ));
row.add(rec.get(SOG_CODSOT));
row.add(rec.get(SOG_DATAULTDON));
r++;
} }
TToken_string& row = s.row(r);
row.add(rec.get(SOG_CODICE));
row.add(rec.get(SOG_COGNOME));
row.add(rec.get(SOG_NOME));
row.add(datasog);
row.add(chiamata);
row.add(' '); // stampato
row.add(' '); // annullato
row.add(rec.get(SOG_DATANASC));
row.add(rec.get(SOG_CATDON));
row.add(rec.get(SOG_TESSAVIS));
row.add(rec.get(SOG_CODSEZ));
row.add(rec.get(SOG_CODSOT));
r++;
} }
m.set(F_NUMCONV,nconv); m.set(F_NUMCONV,nconv);
m.set(F_NUMSOLL,nsoll); m.set(F_NUMSOLL,nsoll);
@ -505,6 +515,7 @@ bool TGestioneConvocazioni::codice_handler(TMask_field& f, KEY k)
m.set(F_S_CODSEZ, sog.get(SOG_CODSEZ)); m.set(F_S_CODSEZ, sog.get(SOG_CODSEZ));
m.set(F_S_CODSOT, sog.get(SOG_CODSOT)); m.set(F_S_CODSOT, sog.get(SOG_CODSOT));
m.set(F_S_CATDON, sog.get(SOG_CATDON)); m.set(F_S_CATDON, sog.get(SOG_CATDON));
m.set(F_S_DATAULTDON, sog.get(SOG_DATAULTDON));
} }
else else
ok = FALSE; // codice non esistente ok = FALSE; // codice non esistente
@ -696,6 +707,7 @@ int TGestioneConvocazioni::read(TMask& m)
row.add(soggetti.get(SOG_TESSAVIS)); row.add(soggetti.get(SOG_TESSAVIS));
row.add(soggetti.get(SOG_CODSEZ)); row.add(soggetti.get(SOG_CODSEZ));
row.add(soggetti.get(SOG_CODSOT)); row.add(soggetti.get(SOG_CODSOT));
row.add(soggetti.get(SOG_DATAULTDON));
} }
} }
else else

View File

@ -14,13 +14,15 @@
#define F_DENSOT 111 #define F_DENSOT 111
#define F_DATAINI 112 #define F_DATAINI 112
#define F_DATAINIGIO 113 #define F_DATAINIGIO 113
#define F_RITARDA 114 #define F_TUTTI 114
#define F_MAXRIT 115 #define F_RITARDA 115
#define F_NOTE 116 #define F_MAXRIT 116
#define F_NUMCONV 117 #define F_MODCONV 117
#define F_NUMSOLL 118 #define F_NOTE 118
#define F_NUMRIT 119 #define F_NUMCONV 119
#define F_CONVOCATI 120 #define F_NUMSOLL 120
#define F_NUMRIT 121
#define F_CONVOCATI 122
#define F_CODSEZH 151 #define F_CODSEZH 151
#define F_CODSOTH 152 #define F_CODSOTH 152
@ -39,6 +41,7 @@
#define F_S_TESSAVIS 110 #define F_S_TESSAVIS 110
#define F_S_CODSEZ 111 #define F_S_CODSEZ 111
#define F_S_CODSOT 112 #define F_S_CODSOT 112
#define F_S_DATAULTDON 113
#define F_S_DENSEZ 151 #define F_S_DENSEZ 151
#define F_S_DENSOT 152 #define F_S_DENSOT 152

View File

@ -51,7 +51,7 @@ ENDPAGE
PAGE "Testata" -1 -1 78 20 PAGE "Testata" -1 -1 78 20
GROUPBOX DLG_NULL 77 13 GROUPBOX DLG_NULL 77 15
BEGIN BEGIN
PROMPT 1 0 "Opzioni per la convocazione" PROMPT 1 0 "Opzioni per la convocazione"
END END
@ -265,43 +265,62 @@ BEGIN
FLAGS "D" FLAGS "D"
END END
BOOLEAN F_TUTTI
BEGIN
PROMPT 2 10 "Convoca anche donatori di altre sezioni con questo punto prelievo"
FIELD TUTTI
END
BOOLEAN F_RITARDA BOOLEAN F_RITARDA
BEGIN BEGIN
PROMPT 2 9 "Ritardatari" PROMPT 2 11 "Ritardatari"
FIELD RITARDA FIELD RITARDA
GROUP 3 GROUP 3
END END
NUMBER F_MAXRIT 3 NUMBER F_MAXRIT 3
BEGIN BEGIN
PROMPT 20 9 "Massimo ritardo in giorni " PROMPT 20 11 "Massimo ritardo in giorni "
FIELD MAXRIT FIELD MAXRIT
GROUP 3 GROUP 3
END END
LISTBOX F_MODCONV 13
BEGIN
PROMPT 2 12 "Modalita' convoc. "
FIELD MODCONV
#include "modalita.h"
GROUP 3
END
STRING F_NOTE 100 50 STRING F_NOTE 100 50
BEGIN BEGIN
PROMPT 2 10 "Note " PROMPT 2 13 "Note "
FIELD NOTE FIELD NOTE
END END
GROUPBOX DLG_NULL 77 3
BEGIN
PROMPT 1 15 "Risultato della convocazione"
END
NUMBER F_NUMCONV 4 NUMBER F_NUMCONV 4
BEGIN BEGIN
PROMPT 2 11 "Numero convocati " PROMPT 2 16 "Numero convocati "
FIELD NUMCONV FIELD NUMCONV
FLAGS "D" FLAGS "D"
END END
NUMBER F_NUMSOLL 4 NUMBER F_NUMSOLL 4
BEGIN BEGIN
PROMPT 27 11 "sollecitati " PROMPT 27 16 "sollecitati "
FIELD NUMSOLL FIELD NUMSOLL
FLAGS "D" FLAGS "D"
END END
NUMBER F_NUMRIT 4 NUMBER F_NUMRIT 4
BEGIN BEGIN
PROMPT 50 11 "ritardatari " PROMPT 50 16 "ritardatari "
FIELD NUMRIT FIELD NUMRIT
FLAGS "D" FLAGS "D"
END END
@ -331,6 +350,7 @@ BEGIN
ITEM "Tessera" ITEM "Tessera"
ITEM "Se" ITEM "Se"
ITEM "So" ITEM "So"
ITEM "Data u.d."
END END
ENDPAGE ENDPAGE
@ -481,6 +501,12 @@ BEGIN
CHECKTYPE NORMAL CHECKTYPE NORMAL
END END
DATE F_S_DATAULTDON
BEGIN
PROMPT 2 5 ""
FLAGS "D"
END
STRING F_S_DENSOT 25 23 STRING F_S_DENSOT 25 23
BEGIN BEGIN
PROMPT 49 4 "" PROMPT 49 4 ""
@ -493,7 +519,6 @@ BEGIN
FLAGS "D" FLAGS "D"
END END
//STRING F_S_DESC_CATDON 25 //STRING F_S_DESC_CATDON 25
//BEGIN //BEGIN
// PROMPT 12 8 "" // PROMPT 12 8 ""