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