diff --git a/at/at0200.cpp b/at/at0200.cpp index 04065c9aa..3d1ca1b2b 100755 --- a/at/at0200.cpp +++ b/at/at0200.cpp @@ -685,25 +685,23 @@ int TGiornalieroDC::write(TSheet_field& s) // controllo la sua categoria // se dimesso diventa della categoria collegata // se non c'e' la categoria collegata ??? - TTable ctd("CTD"); TString16 catdon = sog.get(SOG_CATDON); - ctd.put("CODTAB",catdon); - if (ctd.read() == NOERR) - { - bool dimissione = ctd.get_bool("B0"); - if (dimissione) + const TRectype& ctd = cache().get("CTD", catdon); + if (ctd.get_bool("B0")) // categoria di dimissione + { + const TString16 catcoll = ctd.get("S6"); + if (catcoll.not_empty()) { - sog.put(SOG_CATDON,ctd.get("S6")); - if (ctd.get("S6").not_empty()) - catdon = ctd.get("S6"); + sog.put(SOG_CATDON, catcoll); sog.put(SOG_DATADIM,NULLDATE); - } - if ((catdon == _catini1 || _catini1.empty()) && (totdon+1>=_numdon1) && _catfin1.not_empty()) - sog.put(SOG_CATDON, _catfin1); - const bool tstampata = sog.get_bool(SOG_T_STAMPATA); - if ((catdon == _catini2 || _catini2.empty()) && (totdon+1>=_numdon2) && _catfin2.not_empty() && (!_sttess2 || tstampata)) - sog.put(SOG_CATDON, _catfin2); - } + catdon = catcoll; + } + } + if ((catdon == _catini1 || _catini1.empty()) && (totdon+1>=_numdon1) && _catfin1.not_empty()) + sog.put(SOG_CATDON, _catfin1); + const bool tstampata = sog.get_bool(SOG_T_STAMPATA); + if ((catdon == _catini2 || _catini2.empty()) && (totdon+1>=_numdon2) && _catfin2.not_empty() && (!_sttess2 || tstampata)) + sog.put(SOG_CATDON, _catfin2); TDate dataisc = sog.get_date(SOG_DATAISC); if (!dataisc.ok() && _dataisc) { @@ -914,23 +912,17 @@ bool TGiornalieroDC::tipodon_handler(TMask_field& f, KEY k) TDate dataultdon = sog.get(SOG_DATAULTDON); if (datadon > dataultdon) { - 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"; - } + const TRectype& ctd = cache().get("CTD", sog.get(SOG_CATDON)); + if (ctd.get_bool("B0")) + { + const 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); + const TString16 stato = sog.get(SOG_STATO); + const char modstato = modstato_tcs(stato); if (modstato == 'I' || modstato == 'F') // il soggetto è idoneo { TDate datapros(NULLDATE); @@ -950,15 +942,10 @@ bool TGiornalieroDC::tipodon_handler(TMask_field& f, KEY k) else { messaggio << "Stato soggetto " << stato << " non compatibile con la donazione\n"; - TTable tcs("TCS"); - tcs.put("CODTAB",stato); - if (tcs.read() == NOERR) - { - if (tcs.get("S7").empty()) - messaggio << "Verificare la situazione del soggetto"; - else - messaggio << "Cambio stato automatico"; - } + if (cache().get("TCS", stato).get("S7").empty()) + messaggio << "Verificare la situazione del soggetto"; + else + messaggio << "Cambio stato automatico"; } } else