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); 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_NUMCONV, 0);
soggetti.put(SOG_DATACONV, NULLDATE); soggetti.put(SOG_DATACONV, NULLDATE);
soggetti.put(SOG_DATAULTSOL, NULLDATE); soggetti.put(SOG_DATAULTSOL, NULLDATE);
} }
else
{
if (numconv > 1)
soggetti.put(SOG_DATAULTSOL, rec.get(RCV_DATACONV));
else else
soggetti.put(SOG_DATAULTSOL, NULLDATE); {
} if (numconv > 1)
const TDate dataconvsog = soggetti.get_date(SOG_DATACONV); soggetti.put(SOG_DATAULTSOL, rec.get(RCV_DATACONV));
if (dataconvsog < dataprossi) else
{ soggetti.put(SOG_DATAULTSOL, NULLDATE);
soggetti.put(SOG_NUMCONV, 0); }
soggetti.put(SOG_DATACONV, NULLDATE); const TDate dataconvsog = soggetti.get_date(SOG_DATACONV);
soggetti.put(SOG_DATAULTSOL, NULLDATE); 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))) }
}
else
{ {
const TDate dataprossi = soggetti.get_date(SOG_DATAPROSSI); if ((annullato) && (dataconv == soggetti.get_date(SOG_DATACONV)))
int numconv = soggetti.get_int(SOG_NUMCONV); {
numconv--; const TDate dataprossi = soggetti.get_date(SOG_DATAPROSSI);
soggetti.put(SOG_NUMCONV,numconv); int numconv = soggetti.get_int(SOG_NUMCONV);
TLocalisamfile rconvoc(LF_RCONVOC); numconv--;
rconvoc.setkey(3); soggetti.put(SOG_NUMCONV,numconv);
rconvoc.put(RCV_CODICE,codice); TLocalisamfile rconvoc(LF_RCONVOC);
rconvoc.put(RCV_DATACONV,dataconv); rconvoc.setkey(3);
if (rconvoc.read() == NOERR) rconvoc.put(RCV_CODICE,codice);
{ rconvoc.put(RCV_DATACONV,dataconv);
bool ok = TRUE; if (rconvoc.read() == NOERR)
while (ok) {
{ bool ok = TRUE;
--rconvoc; while (ok)
const long codprec = rconvoc.get_long(RCV_CODICE);
if (codprec == codice)
{ {
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; 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 else
{
ok = FALSE;
soggetti.put(SOG_NUMCONV, 0);
soggetti.put(SOG_DATACONV, NULLDATE);
soggetti.put(SOG_DATAULTSOL, NULLDATE); soggetti.put(SOG_DATAULTSOL, NULLDATE);
} }
} const TDate dataconvsog = soggetti.get_date(SOG_DATACONV);
if (numconv > 1) if (dataconvsog < dataprossi)
soggetti.put(SOG_DATAULTSOL, rconvoc.get(RCV_DATACONV)); {
else soggetti.put(SOG_NUMCONV, 0);
soggetti.put(SOG_DATACONV, NULLDATE);
soggetti.put(SOG_DATAULTSOL, 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
} //Fino a qui soggetti.rewrite();
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;