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...");
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;
while (_trasfile->read(curr) == NOERR)
{
pi.setstatus(_trasfile->read_file()->tellg());
//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.....)
str = curr.get(31); //donatore della concorrenza -> lo salta
str.trim();
if (str == "ADVS")
@ -373,60 +377,94 @@ void TCtbo2at::transfer()
{
curr.add("NI",0);
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)
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í.....)
str = curr.get(0);
str.trim();
TString8 str1;
str1 = curr.get(1);
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 TDate oggi(TODAY);
sogg.put(SOG_DATAULTAGG,oggi);
sogg.put(SOG_UTENULTAGG,"WINSIT");
rel.rewrite();
const char* tipo[] = { "SI", "PL", "PI", "PP" };
for (int i = 0; i < 4; i++)
{
bool update = FALSE;
TDate datadon(TODAY);
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";
update |= test_donation(sogg, tipo[i], datadon, str);
}
str = curr.get(27+i);
if (!real::is_null(str))
update |= test_inter(sogg, tipo[i], datadon, atoi(str));
if (update)
{
calcola_categoria(sogg);
rel.rewrite();
}
}
//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);
recsog.put(SOG_CODICE, str);
str = curr.get(3);
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;
//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;
str1 = curr.get(1);
str1.trim();
if (str != recsog.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 TDate oggi(TODAY);
recsog.put(SOG_DATAULTAGG,oggi);
recsog.put(SOG_UTENULTAGG,"WINSIT");
rel.rewrite();
const char* tipo[] = { "SI", "PL", "PI", "PP" };
for (int i = 0; i < 4; i++)
{
bool update = FALSE;
TDate datadon(TODAY);
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();
message_box("Operazione terminata");