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,60 +377,94 @@ 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); //str = curr.get(2);
sogg.put(SOG_CODICE, atol(str)); //sogg.put(SOG_CODICE, atol(str));
if (rel.read(_isequal) != NOERR) //if (rel.read(_isequal) != NOERR)
sogg.zero();
//controlla se il donatore ha cambiato sezione spostandosi da Bologna in provincia; recsog.zero();
//in questo caso gli deve cancellare il sottogruppo (veramente un procedimento da str = curr.get(3);
//galera, ma se l'avis e winsit vogliono cosí.....) recsog.put(SOG_COGNOME, str);
str = curr.get(0); str = curr.get(4);
str.trim(); recsog.put(SOG_NOME, str);
TString8 str1; str = curr.get(5);
str1 = curr.get(1); if (!str.blank())
str1.trim(); {
if (str != sogg.get(SOG_CODSEZ) && str != "01" && str1 == "") recsog.put(SOG_DATANASC, str);
curr.add("@",1); if (recsog.read(rel.lfile())!=NOERR)
{
//esegue l'effettivo passaggio dati basandosi sulla formattazione del file .ini recsog.zero();
_trasfile->autosave(rel, curr);
const TDate oggi(TODAY); str = curr.get(2);
sogg.put(SOG_DATAULTAGG,oggi); recsog.put(SOG_CODICE, str);
sogg.put(SOG_UTENULTAGG,"WINSIT"); str = curr.get(3);
rel.rewrite(); recsog.put(SOG_COGNOME, str);
const char* tipo[] = { "SI", "PL", "PI", "PP" }; str = curr.get(4);
for (int i = 0; i < 4; i++) recsog.put(SOG_NOME, str);
{ str = curr.get(5);
bool update = FALSE; recsog.write(rel.lfile());
TDate datadon(TODAY); }
str = curr.get(23+i); //controlla se il donatore ha cambiato sezione spostandosi da Bologna in provincia;
if (!str.blank()) //in questo caso gli deve cancellare il sottogruppo (veramente un procedimento da
{ //galera, ma se l'avis e winsit vogliono cosí.....)
datadon = TDate(str); str = curr.get(0);
str = curr.get(32); str.trim();
str.trim(); TString8 str1;
//cambio codice del punto di prelievo per casi speciali (sarebbe necessaria una tabella, str1 = curr.get(1);
//ma con l'AVIS é tempo sprecato....) str1.trim();
if (str == "UROM") if (str != recsog.get(SOG_CODSEZ) && str != "01" && str1 == "")
str = "013"; else curr.add("@",1);
if (str == "UROB")
str = "O.BE"; else //esegue l'effettivo passaggio dati basandosi sulla formattazione del file .ini
if (str == "IMOLA") _trasfile->autosave(rel, curr);
str = "70"; const TDate oggi(TODAY);
update |= test_donation(sogg, tipo[i], datadon, str); recsog.put(SOG_DATAULTAGG,oggi);
} recsog.put(SOG_UTENULTAGG,"WINSIT");
str = curr.get(27+i); rel.rewrite();
if (!real::is_null(str)) const char* tipo[] = { "SI", "PL", "PI", "PP" };
update |= test_inter(sogg, tipo[i], datadon, atoi(str)); for (int i = 0; i < 4; i++)
if (update) {
{ bool update = FALSE;
calcola_categoria(sogg); TDate datadon(TODAY);
rel.rewrite(); str = curr.get(23+i);
} if (!str.blank())
} {
datadon = TDate(str);
str = curr.get(32);
str.trim();
//cambio codice del punto di prelievo per casi speciali (sarebbe necessaria una tabella,
//ma con l'AVIS é tempo sprecato....)
if (str == "UROM")
str = "013";
else if (str == "UROB")
str = "O.BE";
else if (str == "IMOLA")
str = "70";
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);
if ((datainisos.empty()) || (datafinesos <= oggi))
if (!real::is_null(str))
update |= test_inter(recsog, tipo[i], datadon, atoi(str));
if (update)
{
calcola_categoria(recsog);
rel.rewrite();
}
}
}
} }
_trasfile->close(); _trasfile->close();
message_box("Operazione terminata"); message_box("Operazione terminata");