diff --git a/at/at0400.cpp b/at/at0400.cpp index 93e5c1506..86ec3aa7e 100755 --- a/at/at0400.cpp +++ b/at/at0400.cpp @@ -562,6 +562,7 @@ bool TGestioneConvocazioni::remove() // cancella convocati // prima cancella dall'archivio soggetti la data ultima convocazione TLocalisamfile soggetti(LF_SOGGETTI); + soggetti.setkey(1); TLocalisamfile rconvoc(LF_RCONVOC); rconvoc.setkey(3); for (int r=1; r<=_sconvocati->rows(); r++) @@ -585,10 +586,25 @@ bool TGestioneConvocazioni::remove() const long codprec = rconvoc.get_long(RCV_CODICE); if (codprec == codice) soggetti.put(SOG_DATACONV, rconvoc.get(RCV_DATACONV)); + else + { + soggetti.put(SOG_DATACONV, NULLDATE); + soggetti.put(SOG_DATAULTSOL, NULLDATE); + } + if (numconv == 1) + soggetti.put(SOG_DATAULTSOL, NULLDATE); + } + else + { + soggetti.put(SOG_DATACONV, NULLDATE); + soggetti.put(SOG_DATAULTSOL, NULLDATE); } } else + { soggetti.put(SOG_DATACONV, NULLDATE); + soggetti.put(SOG_DATAULTSOL, NULLDATE); + } soggetti.rewrite(); } } diff --git a/at/at0500.cpp b/at/at0500.cpp index 93f47a041..9d751754a 100755 --- a/at/at0500.cpp +++ b/at/at0500.cpp @@ -83,6 +83,9 @@ bool TSpostamentoConv::preprocess_page(int file, int counter) const int err = current_cursor()->file().rewrite(); current_cursor()->file().setkey(2); current_cursor()->curr(LF_SOGGETTI).put(SOG_DATACONV,data); + TDate dataultsol = current_cursor()->curr(LF_SOGGETTI).get_date(SOG_DATAULTSOL); + if (dataultsol == data) + current_cursor()->curr(LF_SOGGETTI).put(SOG_DATAULTSOL,data); current_cursor()->file(LF_SOGGETTI).rewrite(); return app()._stampa; }