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:
parent
a7b78a64f8
commit
ed76a67e25
146
at/at8800.cpp
146
at/at8800.cpp
@ -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");
|
||||
|
Loading…
x
Reference in New Issue
Block a user