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:
parent
d1ee4c6565
commit
2bd8f65529
@ -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();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user