Patch level : at 1.7 702

Files correlati     : at8.exe
Ricompilazione Demo : [ ]
Commento            : Acquisizione dati da WINSIT per BO: sistemate sospensioni e idoneita (speriamo che vadano bene, perche' prima tornavamo a chiamare i morti!!)


git-svn-id: svn://10.65.10.50/trunk@12142 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
cris 2004-06-03 10:50:37 +00:00
parent a7b78a64f8
commit ed76a67e25

View File

@ -356,15 +356,19 @@ void TCtbo2at::transfer()
TProgind pi(dimension,"Acquisizione in corso..."); TProgind pi(dimension,"Acquisizione in corso...");
TRelation rel(LF_SOGGETTI); TRelation rel(LF_SOGGETTI);
TRectype& sogg = rel.curr(); TRectype& recsog = rel.curr();
TString8 str; // Stringa jolly di lavoro TLocalisamfile& soggetti = rel.lfile();
rel.lfile().setkey(2);
TString80 str; // Stringa jolly di lavoro
TRecord_text curr; TRecord_text curr;
while (_trasfile->read(curr) == NOERR) while (_trasfile->read(curr) == NOERR)
{ {
pi.setstatus(_trasfile->read_file()->tellg()); pi.setstatus(_trasfile->read_file()->tellg());
//controlla se il donatore é AVIS oppure un cane sciolto o, peggio ancora, un adepto della //controlla se il donatore é AVIS oppure un cane sciolto o, peggio ancora, un adepto della
//concorrenza!!!(ovviamente si va a stringhe fisse e non a tabelle! roba da avis.....) //concorrenza!!!(ovviamente si va a stringhe fisse e non a tabelle! roba da avis.....)
str = curr.get(31); //donatore della concorrenza -> lo salta str = curr.get(31); //donatore della concorrenza -> lo salta
str.trim(); str.trim();
if (str == "ADVS") if (str == "ADVS")
@ -373,13 +377,35 @@ void TCtbo2at::transfer()
{ {
curr.add("NI",0); curr.add("NI",0);
curr.add("@",1); curr.add("@",1);
sogg.put(SOG_CATDON,"NI"); //sogg.put(SOG_CATDON,"NI");
} }
//str = curr.get(2);
//sogg.put(SOG_CODICE, atol(str));
//if (rel.read(_isequal) != NOERR)
recsog.zero();
str = curr.get(3);
recsog.put(SOG_COGNOME, str);
str = curr.get(4);
recsog.put(SOG_NOME, str);
str = curr.get(5);
if (!str.blank())
{
recsog.put(SOG_DATANASC, str);
if (recsog.read(rel.lfile())!=NOERR)
{
recsog.zero();
str = curr.get(2); str = curr.get(2);
sogg.put(SOG_CODICE, atol(str)); recsog.put(SOG_CODICE, str);
if (rel.read(_isequal) != NOERR) str = curr.get(3);
sogg.zero(); recsog.put(SOG_COGNOME, str);
str = curr.get(4);
recsog.put(SOG_NOME, str);
str = curr.get(5);
recsog.write(rel.lfile());
}
//controlla se il donatore ha cambiato sezione spostandosi da Bologna in provincia; //controlla se il donatore ha cambiato sezione spostandosi da Bologna in provincia;
//in questo caso gli deve cancellare il sottogruppo (veramente un procedimento da //in questo caso gli deve cancellare il sottogruppo (veramente un procedimento da
//galera, ma se l'avis e winsit vogliono cosí.....) //galera, ma se l'avis e winsit vogliono cosí.....)
@ -388,14 +414,14 @@ void TCtbo2at::transfer()
TString8 str1; TString8 str1;
str1 = curr.get(1); str1 = curr.get(1);
str1.trim(); str1.trim();
if (str != sogg.get(SOG_CODSEZ) && str != "01" && str1 == "") if (str != recsog.get(SOG_CODSEZ) && str != "01" && str1 == "")
curr.add("@",1); curr.add("@",1);
//esegue l'effettivo passaggio dati basandosi sulla formattazione del file .ini //esegue l'effettivo passaggio dati basandosi sulla formattazione del file .ini
_trasfile->autosave(rel, curr); _trasfile->autosave(rel, curr);
const TDate oggi(TODAY); const TDate oggi(TODAY);
sogg.put(SOG_DATAULTAGG,oggi); recsog.put(SOG_DATAULTAGG,oggi);
sogg.put(SOG_UTENULTAGG,"WINSIT"); recsog.put(SOG_UTENULTAGG,"WINSIT");
rel.rewrite(); rel.rewrite();
const char* tipo[] = { "SI", "PL", "PI", "PP" }; const char* tipo[] = { "SI", "PL", "PI", "PP" };
for (int i = 0; i < 4; i++) for (int i = 0; i < 4; i++)
@ -411,23 +437,35 @@ void TCtbo2at::transfer()
//cambio codice del punto di prelievo per casi speciali (sarebbe necessaria una tabella, //cambio codice del punto di prelievo per casi speciali (sarebbe necessaria una tabella,
//ma con l'AVIS é tempo sprecato....) //ma con l'AVIS é tempo sprecato....)
if (str == "UROM") if (str == "UROM")
str = "013"; else str = "013";
if (str == "UROB") else if (str == "UROB")
str = "O.BE"; else str = "O.BE";
if (str == "IMOLA") else if (str == "IMOLA")
str = "70"; str = "70";
update |= test_donation(sogg, tipo[i], datadon, str); else if (str.empty())
str = "70";
update |= test_donation(recsog, tipo[i], datadon, str);
} }
str = curr.get(35);
TDate datainisos(NULLDATE);
if (!str.blank())
datainisos = TDate(str);
str = curr.get(36);
TDate datafinesos(NULLDATE);
if (!str.blank())
datafinesos = TDate(str);
str = curr.get(27+i); str = curr.get(27+i);
if ((datainisos.empty()) || (datafinesos <= oggi))
if (!real::is_null(str)) if (!real::is_null(str))
update |= test_inter(sogg, tipo[i], datadon, atoi(str)); update |= test_inter(recsog, tipo[i], datadon, atoi(str));
if (update) if (update)
{ {
calcola_categoria(sogg); calcola_categoria(recsog);
rel.rewrite(); rel.rewrite();
} }
} }
} }
}
_trasfile->close(); _trasfile->close();
message_box("Operazione terminata"); message_box("Operazione terminata");
} }