From 6bc8a90848df5c6d2125b7a62860c027f7a11305 Mon Sep 17 00:00:00 2001 From: cris Date: Fri, 6 Feb 1998 09:59:32 +0000 Subject: [PATCH] Corretti messaggi per donatori non idonei, tolta la possiblita' di fare una ricerca senza aver inserito la data donazione git-svn-id: svn://10.65.10.50/trunk@6137 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- at/at0200.cpp | 62 +++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 53 insertions(+), 9 deletions(-) diff --git a/at/at0200.cpp b/at/at0200.cpp index 27660723a..7030b00e6 100755 --- a/at/at0200.cpp +++ b/at/at0200.cpp @@ -16,6 +16,7 @@ // nomi campi maschera #include "at0200a.h" +#include "atlib.h" // nomi dei campi #include "soggetti.h" @@ -24,8 +25,6 @@ #include "idoneita.h" #include "rconvoc.h" -#include "atlib.h" - #define ALIAS_CTD 700 class TGiornalieroDC : public TApplication @@ -158,7 +157,6 @@ bool TGiornalieroDC::menu(MENU_TAG m) if (s.items() == 0) add_rows_soggetti(s); _asoggetti->destroy(); - //msk.set(F_DATADON,oggi); _ricerca = FALSE; tasto = msk.run(); _datadon = msk.get(F_DATADON); @@ -172,8 +170,13 @@ bool TGiornalieroDC::menu(MENU_TAG m) if (yesno_box("Registrare le modifiche?")) TGiornalieroDC::write(s); _modified = FALSE; - _ricerca = TRUE; - TGiornalieroDC::read(s); + if (_datadon.ok()) + { + _ricerca = TRUE; + TGiornalieroDC::read(s); + } + else + message_box("Inserire almeno la data donazione per effettuare la ricerca"); } break; @@ -667,6 +670,8 @@ bool TGiornalieroDC::soggetti_notify(TSheet_field& s, int r, KEY k) if (codsog == row.get_long(0)) return s.sheet_mask().field(F_S_CODICE).error_box("Soggetto gia' inserito"); else + { + // controllo sull'etichetta if (etichetta != 0) { if (etichetta == row.get_long(5)) @@ -686,6 +691,7 @@ bool TGiornalieroDC::soggetti_notify(TSheet_field& s, int r, KEY k) } } } + } } } else @@ -718,7 +724,8 @@ bool TGiornalieroDC::codice_handler(TMask_field& f, KEY k) { bool ok = TRUE; if (f.to_check(k)) - { + { + TString256 messaggio = ""; TMask& m = f.mask(); long codsog = m.get_long(F_S_CODICE); if (codsog != 0) @@ -737,13 +744,50 @@ bool TGiornalieroDC::codice_handler(TMask_field& f, KEY k) m.set(F_S_CODSEZ, sog.get(SOG_CODSEZ)); m.set(F_S_CODSOT, sog.get(SOG_CODSOT)); m.set(F_S_CATDON, sog.get(SOG_CATDON)); - const int totdon = sog.get_int(SOG_TOTDON); - if (totdon == 0) - m.set(F_S_PRIMADON, 'X'); + if (!(app()._ricerca)) + { + const int totdon = sog.get_int(SOG_TOTDON); + if (totdon == 0) + m.set(F_S_PRIMADON, 'X'); + TTable ctd("CTD"); + ctd.zero(); + ctd.put("CODTAB", sog.get(SOG_CATDON)); + if (ctd.read() == NOERR) + { + bool dimissione = ctd.get_bool("B0"); + if (dimissione) + { + TString16 catcoll = ctd.get("S6"); + if (catcoll.empty()) + messaggio << "Soggetto dimesso senza categoria collegata\n"; + else + messaggio << "Soggetto dimesso, cambio categoria automatico\n"; + } + } + TString16 stato = sog.get(SOG_STATO); + char modstato = modstato_tcs(stato); + if (modstato == 'I' || modstato == 'F') // il soggetto è idoneo + { + TDate datapros; + if (is_donaz(app()._tipodon,IDON_SI)) + datapros = sog.get_date(SOG_DATAPROSSI); + else + datapros = sog.get_date(SOG_DATAPROSAF); + if (datapros.empty()) + messaggio << "Soggetto non idoneo al tipo donazione\n"; + else + if (datapros > app()._datadon) + messaggio << "Il soggetto ha donato prima della scadenza\n"; + } + else + messaggio << "Stato soggetto non compatibile con la donazione\n"; + } } else ok = FALSE; // codice non esistente } + if (messaggio.not_empty() && !app()._ricerca) + f.message_box(messaggio); } return ok; }