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:
parent
97270ae0c0
commit
eac2ab700d
227
at/at0400.cpp
227
at/at0400.cpp
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user