Patch level :

Files correlati     :
Ricompilazione Demo : [ ]
Commento            : Modifiche di Marco (annullamento di una convocazione) + messaggio a fine registrazione sulle convocazioni punto prelievo


git-svn-id: svn://10.65.10.50/trunk@9224 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
cris 2000-10-10 07:57:16 +00:00
parent 97270ae0c0
commit eac2ab700d

View File

@ -784,10 +784,10 @@ int TGestioneConvocazioni::scrivi(const TMask& m, bool ri)
}
TLocalisamfile soggetti(LF_SOGGETTI);
_sconvocati->destroy_rows();
TSheet_field& s = (TSheet_field&)m.field(F_CONVOCATI);
TRectype* key = new TRectype(LF_RCONVOC);
key->put(RCV_NUMERO, m.get(F_NUMERO));
_sconvocati->set_key(key);
TSheet_field& s = (TSheet_field&)m.field(F_CONVOCATI);
TProgind prg (s.items(), "Registrazione in corso... Prego attendere", FALSE, TRUE, 30);
for (int r=s.items(); r>0; r--)
{
@ -803,136 +803,157 @@ 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));
// aggiornamento archivio soggetti
soggetti.put(SOG_CODICE,codice);
/* Messo il < invece del != nel primo if, spostato il controllo se sollecito
o meno all'interno del controllo sulla data da Marco in data 23/08/99
*/
if (soggetti.read() == NOERR)
}
err = ri ? _sconvocati->rewrite() : _sconvocati->write();
if (err == NOERR)
{
for (int r=s.items(); r>0; r--)
{
if (soggetti.get_date(SOG_DATACONV) < dataconv) //Aggiungo 30/08/99 da qui
prg.addstatus(1);
TToken_string& row = s.row(r-1);
//TRectype& rec = _sconvocati->row(r,TRUE);
const long codice = row.get_long(0);
const TDate dataconv = row.get(3);
const char chiamata = row.get_char(4);
const bool annullato = (row.get(6)[0] == 'X');
//rec.put(RCV_CODICE,codice);
//rec.put(RCV_DATACONV,dataconv);
//rec.put(RCV_CHIAMATA,chiamata);
//rec.put(RCV_STAMPATO,row.get(5));
//rec.put(RCV_ANNULLATO,row.get(6));
// aggiornamento archivio soggetti
soggetti.put(SOG_CODICE,codice);
/* Messo il < invece del != nel primo if, spostato il controllo se sollecito
o meno all'interno del controllo sulla data da Marco in data 23/08/99
*/
if (soggetti.read() == NOERR)
{
if (!_modified[r-1] && (!annullato))
{ //Fino a qui
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);
} //Aggiungo 30/08/99 da qui
else
if (soggetti.get_date(SOG_DATACONV) < dataconv) //Aggiungo 30/08/99 da qui
{
if (_modified[r-1] && (!annullato))
{
if (!_modified[r-1] && (!annullato))
{ //Fino a qui
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);
} //Aggiungo 30/08/99 da qui
else
{
if (_modified[r-1] && (annullato))
if (_modified[r-1] && (!annullato))
{
const TDate dataprossi = soggetti.get_date(SOG_DATAPROSSI);
int numconv = soggetti.get_int(SOG_NUMCONV);
numconv--;
soggetti.put(SOG_NUMCONV,numconv);
TRectype da(LF_RCONVOC);
da.put(RCV_CODICE,codice);
TRectype a(LF_RCONVOC);
a.put(RCV_CODICE,codice);
TRelation rel(LF_RCONVOC);
TCursor cur(&rel,"",3,&da,&a);
const TRecnotype convocazioni = cur.items();
for (TRecnotype pos = convocazioni-2; pos>=0; pos--)
if (chiamata == 'S')
soggetti.put(SOG_DATAULTSOL,dataconv);
soggetti.put(SOG_DATACONV,dataconv);
}
else
{
if (_modified[r-1] && (annullato))
{
const TDate dataprossi = soggetti.get_date(SOG_DATAPROSSI);
int numconv = soggetti.get_int(SOG_NUMCONV);
numconv--;
soggetti.put(SOG_NUMCONV,numconv);
TRectype da(LF_RCONVOC);
da.put(RCV_CODICE,codice);
TRectype a(LF_RCONVOC);
a.put(RCV_CODICE,codice);
TRelation rel(LF_RCONVOC);
TCursor cur(&rel,"",3,&da,&a);
const TRecnotype convocazioni = cur.items();
TRectype& rec = cur.curr();
for (TRecnotype pos = convocazioni-2; pos>=0; pos--)
{
cur = pos;
TRectype& rec = cur.curr();
//TRectype& rec = cur.curr();
if (rec.get(RCV_ANNULLATO)[0] != 'X')
{
soggetti.put(SOG_DATACONV, rec.get(RCV_DATACONV));
break;
}
}
if (pos < 0)
{
soggetti.put(SOG_NUMCONV, 0);
soggetti.put(SOG_DATACONV, NULLDATE);
soggetti.put(SOG_DATAULTSOL, NULLDATE);
}
else
{
if (numconv > 1)
soggetti.put(SOG_DATAULTSOL, rec.get(RCV_DATACONV));
if (pos < 0)
{
soggetti.put(SOG_NUMCONV, 0);
soggetti.put(SOG_DATACONV, NULLDATE);
soggetti.put(SOG_DATAULTSOL, NULLDATE);
}
else
soggetti.put(SOG_DATAULTSOL, NULLDATE);
}
const TDate dataconvsog = soggetti.get_date(SOG_DATACONV);
if (dataconvsog < dataprossi)
{
soggetti.put(SOG_NUMCONV, 0);
soggetti.put(SOG_DATACONV, NULLDATE);
soggetti.put(SOG_DATAULTSOL, NULLDATE);
}
}
}
}
}
else
{
if ((annullato) && (dataconv == soggetti.get_date(SOG_DATACONV)))
{
if (numconv > 1)
soggetti.put(SOG_DATAULTSOL, rec.get(RCV_DATACONV));
else
soggetti.put(SOG_DATAULTSOL, NULLDATE);
}
const TDate dataconvsog = soggetti.get_date(SOG_DATACONV);
if (dataconvsog < dataprossi)
{
soggetti.put(SOG_NUMCONV, 0);
soggetti.put(SOG_DATACONV, NULLDATE);
soggetti.put(SOG_DATAULTSOL, NULLDATE);
}
}
}
}
}
else
{
const TDate dataprossi = soggetti.get_date(SOG_DATAPROSSI);
int numconv = soggetti.get_int(SOG_NUMCONV);
numconv--;
soggetti.put(SOG_NUMCONV,numconv);
TLocalisamfile rconvoc(LF_RCONVOC);
rconvoc.setkey(3);
rconvoc.put(RCV_CODICE,codice);
rconvoc.put(RCV_DATACONV,dataconv);
if (rconvoc.read() == NOERR)
{
bool ok = TRUE;
while (ok)
{
--rconvoc;
const long codprec = rconvoc.get_long(RCV_CODICE);
if (codprec == codice)
if ((annullato) && (dataconv == soggetti.get_date(SOG_DATACONV)))
{
const TDate dataprossi = soggetti.get_date(SOG_DATAPROSSI);
int numconv = soggetti.get_int(SOG_NUMCONV);
numconv--;
soggetti.put(SOG_NUMCONV,numconv);
TLocalisamfile rconvoc(LF_RCONVOC);
rconvoc.setkey(3);
rconvoc.put(RCV_CODICE,codice);
rconvoc.put(RCV_DATACONV,dataconv);
if (rconvoc.read() == NOERR)
{
bool ok = TRUE;
while (ok)
{
if (rconvoc.get(RCV_ANNULLATO)[0] != 'X')
--rconvoc;
const long codprec = rconvoc.get_long(RCV_CODICE);
if (codprec == codice)
{
if (rconvoc.get(RCV_ANNULLATO)[0] != 'X')
{
ok = FALSE;
soggetti.put(SOG_DATACONV, rconvoc.get(RCV_DATACONV));
}
}
else
{
ok = FALSE;
soggetti.put(SOG_DATACONV, rconvoc.get(RCV_DATACONV));
}
soggetti.put(SOG_NUMCONV, 0);
soggetti.put(SOG_DATACONV, NULLDATE);
soggetti.put(SOG_DATAULTSOL, NULLDATE);
}
}
if (numconv > 1)
soggetti.put(SOG_DATAULTSOL, rconvoc.get(RCV_DATACONV));
else
{
ok = FALSE;
soggetti.put(SOG_NUMCONV, 0);
soggetti.put(SOG_DATACONV, NULLDATE);
soggetti.put(SOG_DATAULTSOL, NULLDATE);
}
}
if (numconv > 1)
soggetti.put(SOG_DATAULTSOL, rconvoc.get(RCV_DATACONV));
else
}
const TDate dataconvsog = soggetti.get_date(SOG_DATACONV);
if (dataconvsog < dataprossi)
{
soggetti.put(SOG_NUMCONV, 0);
soggetti.put(SOG_DATACONV, NULLDATE);
soggetti.put(SOG_DATAULTSOL, NULLDATE);
}
const TDate dataconvsog = soggetti.get_date(SOG_DATACONV);
if (dataconvsog < dataprossi)
{
soggetti.put(SOG_NUMCONV, 0);
soggetti.put(SOG_DATACONV, NULLDATE);
soggetti.put(SOG_DATAULTSOL, NULLDATE);
}
}
}
} //Fino a qui
soggetti.rewrite();
}
} //Fino a qui
soggetti.rewrite();
}
}
//err = ri ? _sconvocati->rewrite() : _sconvocati->write();
message_box("Convocazione registrata");
}
err = ri ? _sconvocati->rewrite() : _sconvocati->write();
}
if (err == NOERR)
message_box("Convocazione registrata");
else
error_box("Errore %d durante la scrittura. Convocazione non registrata correttamente", err);
}
else
error_box("Errore %d durante la scrittura. Convocazione non registrata correttamente", err);
return err;