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 _codsez; // codice sezione convocata
TString16 _codsot; // codice sottogruppo
TString16 _modconv; // modalita di convocazione
TDate _dataini;
bool _tutti, _ritarda;
int _maxrit;
@ -97,7 +98,11 @@ void TGestioneConvocazioni::init_modify_mode(TMask& m)
m.show(-1);
m.hide(-2);
if (app()._inserimento)
m.enable(-3);
{
m.enable(-3);
m.set(F_TUTTI, TRUE);
m.set(F_MODCONV, "PO");
}
else
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");
filtrato = (cat.not_empty() && (stato == 'I' || stato == 'F') && !dimesso && escluso.empty());
if (filtrato)
filtrato = ((modconv.empty()) || (modconv == "PO") || (modconv == "IN"));
filtrato = ((modconv.empty()) || (modconv == app()._modconv) || (modconv == "IN"));
if (filtrato)
{
filtrato = FALSE;
@ -174,11 +179,10 @@ bool TGestioneConvocazioni::filter_func_convoc(const TRelation* rel)
bool TGestioneConvocazioni::sezione_handler(TMask_field& f, KEY k)
{
if (f.to_check(k))
//if (f.to_check(k))
{
TMask& m = f.mask();
//if (m.get(F_DATAINI).empty() && (m.mode() == MODE_INS))
if (m.mode() == MODE_INS)
if (m.get(F_DATAINI).empty() && (m.mode() == MODE_INS))
//if (m.mode() == MODE_INS)
{
//const TString16 codsez = m.get(F_CODSEZ);
//const TString16 codsot = m.get(F_CODSOT);
@ -281,13 +285,14 @@ bool TGestioneConvocazioni::esegui_handler(TMask_field& f, KEY k)
{
if (k == K_SPACE)
{
f.disable();
TMask& m = f.mask();
TCursor* cur = app()._cur;
app()._numero = m.get_long(F_NUMERO);
app()._data = m.get(F_DATA);
app()._punto = m.get(F_PUNTO);
//app()._tutti = m.get_bool(F_TUTTI);
app()._tutti = TRUE;
app()._tutti = m.get_bool(F_TUTTI);
//app()._tutti = TRUE;
app()._tipo = m.get(F_TIPO);
app()._codsez = m.get(F_CODSEZ);
app()._codsot = m.get(F_CODSOT);
@ -296,6 +301,7 @@ bool TGestioneConvocazioni::esegui_handler(TMask_field& f, KEY k)
app()._dataini = app()._data;
app()._ritarda = m.get_bool(F_RITARDA);
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())
return f.error_box("Mancano i dati fondamentali per la convocazione");
// filtro per sezione
@ -408,57 +414,61 @@ bool TGestioneConvocazioni::esegui_handler(TMask_field& f, KEY k)
}
}
}
switch (chiamata)
if (dataprossi<=data)
{
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++)
switch (chiamata)
{
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);
numperdata[r]++;
}
}
if (!datasog.ok())
{
if (dataprossi < dataini)
datasog = dataini;
else
datasog = dataprossi;
}
}
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++;
if ((numperdata[r]<quanti) && (!datasog.ok()))
{
datasog = dataini+(long)(r);
numperdata[r]++;
}
}
if (!datasog.ok())
{
if (dataprossi < dataini)
datasog = dataini;
else
datasog = dataprossi;
}
}
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));
row.add(rec.get(SOG_DATAULTDON));
r++;
}
}
m.set(F_NUMCONV,nconv);
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_CODSOT, sog.get(SOG_CODSOT));
m.set(F_S_CATDON, sog.get(SOG_CATDON));
m.set(F_S_DATAULTDON, sog.get(SOG_DATAULTDON));
}
else
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_CODSEZ));
row.add(soggetti.get(SOG_CODSOT));
row.add(soggetti.get(SOG_DATAULTDON));
}
}
else

View File

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

View File

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