diff --git a/at/at8800.cpp b/at/at8800.cpp index 412f76c18..21d9cf045 100755 --- a/at/at8800.cpp +++ b/at/at8800.cpp @@ -271,6 +271,15 @@ bool TCtbo2at::test_inter(TRectype& recsog, const char* tipo, const TDate& datad TRecord_array idoneita(LF_IDONEITA,IDO_PROGIDO); idoneita.read(key); + TString16 stato = recsog.get(SOG_STATO); + if (modstato_tcs(stato) != 'S' && stato.not_empty()) + return FALSE; + if (tipo == "SI") + stato = recsog.get(SOG_STATOSI); + else + stato = recsog.get(SOG_STATOAF); + if (modstato_tcs(stato) != 'S' && stato.not_empty()) + return FALSE; const int r = idoneita.last_row(); //se trova una data idoneita >= di quella in esame, quest'ultima viene ignorata if (r > 0) { @@ -286,10 +295,16 @@ bool TCtbo2at::test_inter(TRectype& recsog, const char* tipo, const TDate& datad rec->put(IDO_TIPOIDO, stricmp(tipo, "SI") != 0 ? "AF" : "SI"); // Il mondo č bello perchč c'é l'AVIS (tutte le donaz. non SI sono AF! mah?!) rec->put(IDO_IDO_SOS, "ID"); rec->put(IDO_INTERVALLO, inter); + // aggiunto da cristina il 18/09/2002 altrimenti non so che quella riga é stata aggiunta da CT + rec->put(IDO_RESPONSAB, "TRASF. DA CT"); idoneita.add_row(rec); idoneita.write(); con_reord(recsog, &controlli, &idoneita); + // aggiorno data e utente ultimo aggiornamento (Cristina 18/09/2002) + const TDate oggi(TODAY); + recsog.put(SOG_DATAULTAGG,oggi); + recsog.put(SOG_UTENULTAGG,"WINSIT"); return TRUE; } @@ -326,13 +341,12 @@ void TCtbo2at::transfer() } str = curr.get(2); - sogg.put(SOG_CODICE, str); + sogg.put(SOG_CODICE, atol(str)); if (rel.read(_isequal) != NOERR) sogg.zero(); - - //controlla se il donatore ha cambiato sezione spostandosi da Bologna in provincia; - //in questo caso gli deve cancellare il sottogruppo (veramente un procedimento da - //galera, ma se l'avis e winsit vogliono cosí.....) + //controlla se il donatore ha cambiato sezione spostandosi da Bologna in provincia; + //in questo caso gli deve cancellare il sottogruppo (veramente un procedimento da + //galera, ma se l'avis e winsit vogliono cosí.....) str = curr.get(0); str.trim(); TString8 str1; @@ -340,10 +354,10 @@ void TCtbo2at::transfer() str1.trim(); if (str != sogg.get(SOG_CODSEZ) && str != "01" && str1 == "") curr.add("@",1); - + //esegue l'effettivo passaggio dati basandosi sulla formattazione del file .ini _trasfile->autosave(rel, curr); - + const char* tipo[] = { "SI", "PL", "PI", "PP" }; for (int i = 0; i < 4; i++) { @@ -369,8 +383,21 @@ void TCtbo2at::transfer() str = curr.get(27+i); if (!real::is_null(str)) update |= test_inter(sogg, tipo[i], datadon, atoi(str)); - } + else + { + int intervallo; + if (tipo[i] == "SI") + intervallo = sogg.get_int(SOG_INTSI); + else + intervallo = sogg.get_int(SOG_INTAF); + str = curr.get(27+i); + if ((!real::is_null(str)) && (intervallo != atoi(str))) + { + TDate oggi(TODAY); + update |= test_inter(sogg, tipo[i], oggi, atoi(str)); + } + } if (update) rel.rewrite(); }