Patch level :

Files correlati     :
Ricompilazione Demo : [ ]
Commento            : in caso di cancellazione convocazione riporta indietro la datat ultima convocazione sulla sezione interessata; corretto ordine nella destroy(); visualizza anche il giorno 'domenica'; corretta la rewrite (non aggiunge 1 al numero cartoline di ogni soggetto)


git-svn-id: svn://10.65.10.50/trunk@6912 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
cris 1998-08-07 09:35:35 +00:00
parent d1ee4c6565
commit 2bd8f65529

View File

@ -47,9 +47,9 @@ class TGestioneConvocazioni: public TRelation_application
TString16 _codsez; // codice sezione convocata
TString16 _codsot; // codice sottogruppo
TDate _dataini;
bool _ritarda;
bool _tutti, _ritarda;
int _maxrit;
bool _inserimento;
bool _inserimento;
protected:
virtual bool user_create();
@ -126,6 +126,9 @@ bool TGestioneConvocazioni::filter_func_convoc(const TRelation* rel)
}
else
filtrato = (punto == app()._punto);
if (app()._tutti && !filtrato)
filtrato = (punto == app()._punto);
// filtro per data prossima donazione
//const TDate dataprossi = sog.get(SOG_DATAPROSSI);
//filtrato = (dataprossi.ok()) && (dataprossi <= data) && filtrato;
@ -164,11 +167,13 @@ 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.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);
@ -182,8 +187,11 @@ bool TGestioneConvocazioni::sezione_handler(TMask_field& f, KEY k)
{
TDate data = sez.get_date(SEZ_DATAULTCON);
++data;
m.set(F_DATAINI, data);
m.check_field(F_DATAINI);
if (data <= m.get_date(F_DATA))
{
m.set(F_DATAINI, data);
m.check_field(F_DATAINI);
}
}
}
}
@ -199,9 +207,6 @@ bool TGestioneConvocazioni::data_handler(TMask_field& f, KEY k)
TString16 datagio = "";
switch (giorno)
{
case 0:
datagio = "Domenica";
break;
case 1:
datagio = "Lunedi";
break;
@ -220,6 +225,9 @@ bool TGestioneConvocazioni::data_handler(TMask_field& f, KEY k)
case 6:
datagio = "Sabato";
break;
case 7:
datagio = "Domenica";
break;
}
f.mask().set(F_DATAGIO,datagio);
}
@ -237,9 +245,6 @@ bool TGestioneConvocazioni::dataini_handler(TMask_field& f, KEY k)
TString16 datagio = "";
switch (giorno)
{
case 0:
datagio = "Domenica";
break;
case 1:
datagio = "Lunedi";
break;
@ -258,6 +263,9 @@ bool TGestioneConvocazioni::dataini_handler(TMask_field& f, KEY k)
case 6:
datagio = "Sabato";
break;
case 7:
datagio = "Domenica";
break;
}
f.mask().set(F_DATAINIGIO,datagio);
}
@ -273,6 +281,8 @@ bool TGestioneConvocazioni::esegui_handler(TMask_field& f, KEY k)
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()._tipo = m.get(F_TIPO);
app()._codsez = m.get(F_CODSEZ);
app()._codsot = m.get(F_CODSOT);
@ -535,22 +545,24 @@ bool TGestioneConvocazioni::user_create()
bool TGestioneConvocazioni::user_destroy()
{
delete _tmpconv;
delete _tmprconv;
delete _tmprel;
delete _rel;
delete _relsog;
delete _msk;
delete _cur;
delete _rconvoc;
delete _soggetti;
delete _sconvocati;
delete _soggetti;
delete _rconvoc;
delete _cur;
delete _relsog;
delete _rel;
delete _msk;
delete _tmprel;
delete _tmprconv;
delete _tmpconv;
return TRUE;
}
const char* TGestioneConvocazioni::get_next_key()
{
// autonumerazione progressiva delle convocazioni
_rel->lfile().last();
_lastcod = _rel->lfile().get_long(COV_NUMERO);
return format("%d|%ld", F_NUMERO, _lastcod+1 );
}
@ -611,6 +623,36 @@ bool TGestioneConvocazioni::remove()
int err = _sconvocati->remove();
if (err == _iseof || err == _isemptyfile)
err = NOERR;
if (err == NOERR)
{
TLocalisamfile sez(LF_SEZIONI);
sez.setkey(1);
sez.zero();
sez.put(SEZ_CODSEZ, app()._codsez);
sez.put(SEZ_CODSOT, app()._codsot);
if (sez.read() == NOERR)
{
TLocalisamfile convoc(LF_CONVOC);
convoc.setkey(3);
convoc.put(COV_CODSEZ, app()._codsez);
convoc.put(COV_CODSOT, app()._codsot);
convoc.put(COV_DATA, app()._data);
convoc.read();
--convoc;
TDate dataini = convoc.get_date(COV_DATAINI);
TDate datanulla(NULLDATE);
while (!convoc.eof() && (dataini == datanulla))
{
--convoc;
dataini = convoc.get_date(COV_DATAINI);
}
if ((convoc.get(COV_CODSEZ) == app()._codsez) && (convoc.get(COV_CODSOT) == app()._codsot))
sez.put(SEZ_DATAULTCON, convoc.get_date(COV_DATA));
else
sez.put(SEZ_DATAULTCON,NULLDATE);
sez.rewrite();
}
}
// cancella la testata
if (err == NOERR) ok = TRelation_application::remove();
return (ok && err == NOERR);
@ -709,20 +751,20 @@ int TGestioneConvocazioni::scrivi(const TMask& m, bool ri)
rec.put(RCV_CHIAMATA,chiamata);
rec.put(RCV_STAMPATO,row.get(5));
rec.put(RCV_ANNULLATO,row.get(6));
//if (!ri)
//{
// aggiornamento archivio soggetti
soggetti.put(SOG_CODICE,codice);
if (soggetti.read() == NOERR)
{
if (chiamata == 'S')
soggetti.put(SOG_DATAULTSOL,dataconv);
soggetti.put(SOG_DATACONV,dataconv);
int numconv = soggetti.get_int(SOG_NUMCONV);
soggetti.put(SOG_NUMCONV,numconv+1);
if (!(soggetti.get_date(SOG_DATACONV) == dataconv))
{
soggetti.put(SOG_DATACONV,dataconv);
int numconv = soggetti.get_int(SOG_NUMCONV);
soggetti.put(SOG_NUMCONV,numconv+1);
}
soggetti.rewrite();
}
//}
}
err = ri ? _sconvocati->rewrite() : _sconvocati->write();
}