Patch level : 1.7 at 660

Files correlati     : agaat.men at9.exe
Ricompilazione Demo : [ ]
Commento            : Modifiche sostanziali al programma di aggiornamento dati da estrazione


git-svn-id: svn://10.65.10.50/trunk@11675 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
cris 2003-12-18 16:12:30 +00:00
parent 598ccda5e2
commit a44bb05597
3 changed files with 209 additions and 12 deletions

View File

@ -205,6 +205,8 @@ Item_01 = "Aggiornamento archivi da SIT", "at8 -8", ""
Item_02 = "Acquisizione donazioni da SIT", "at8 -9", ""
Item_03 = "Conversione stati trasfusionali", "ba3 -0 pr1", ""
Item_04 = "Conversione tipi donazione", "ba3 -0 pr2", ""
Item_04 = "Estrazione dati per aggiornamento", "at9 -1", ""
Item_04 = "Aggiornamento archivi da estrazione", "at9 -2", ""
[PRASSI_001]
Caption = "Gestione Anagrafiche"

View File

@ -19,6 +19,12 @@
#include "benem.h"
#include "storico.h"
#define X_SOS_CONAVVISO 'A'
#define X_SOS_NONAVVISO 'S'
#define X_INS_SEVUOTO 'R'
#define X_VIS_SEDIVERSO 'V'
#define X_IGNORA 'I'
class TProv2com: public TSkeleton_application
{
TMask* _msk;
@ -32,13 +38,15 @@ class TProv2com: public TSkeleton_application
TIsamtempfile* _fileben;
TIsamtempfile* _filesto;
TLocalisamfile* _soggetti;
long _lastcod;
protected:
virtual bool create(void);
virtual void main_loop();
virtual bool destroy(void) ;
void agg_anagrafica(const TRectype& recsog);
void transfer();
void print_line(const TString& message="");
public:
const TMask& msk() const { return *_msk; }
@ -74,16 +82,20 @@ void TProv2com::main_loop()
KEY key = _msk->run();
if (key == K_ENTER)
{
transfer();
_configfile->set("PERCORSO", _msk->get(F_PERCORSO), "ARCHIVIO");
TDate oggi(TODAY);
_configfile->set("DATA", oggi, "ARCHIVIO");
if (printer().open())
{
transfer();
_configfile->set("PERCORSO", _msk->get(F_PERCORSO), "ARCHIVIO");
TDate oggi(TODAY);
_configfile->set("DATA", oggi, "ARCHIVIO");
printer().close();
}
}
}
// trasferimento dati da file CT su programma avis
void TProv2com::transfer()
{
{
bool anagrafica = _msk->get_bool(F_ANAGRAFICA);
const bool donazioni = _msk->get_bool(F_DONAZIONI);
const bool controlli = _msk->get_bool(F_CONTROLLI);
@ -126,6 +138,9 @@ void TProv2com::transfer()
_rel->add(LF_STORICO, "CODICE==CODICE");
_reltmp = new TRelation(LF_SOGGETTI);
_reltmp->lfile().last();
_lastcod = _reltmp->lfile().get_long(SOG_CODICE);
//_reltmp->add(LF_DONAZ, "CODICE==CODICE");
//_reltmp->add(LF_CONTSAN, "CODICE==CODICE");
//_reltmp->add(LF_IDONEITA, "CODICE==CODICE");
@ -199,25 +214,110 @@ void TProv2com::transfer()
}
}
}
}
void TProv2com::print_line(const TString& message)
{
TPrintrow row;
row.reset();
row.put((const char*) message);
printer().print(row);
}
void TProv2com::agg_anagrafica(const TRectype& recsog)
{
{
bool print_intest = FALSE;
TString intestazione = "";
TString message = "";
const TString80 cognome = recsog.get(SOG_COGNOME);
const TString80 nome = recsog.get(SOG_NOME);
const TDate datanasc = recsog.get_date(SOG_DATANASC);
_soggetti->setkey(3);
_soggetti->setkey(2);
TRectype& rec = _rel->curr();
rec.zero();
rec.put(SOG_COGNOME, cognome);
rec.put(SOG_NOME, nome);
rec.put(SOG_DATANASC, datanasc);
intestazione = cognome;
intestazione << " ";
intestazione << nome;
intestazione << " ";
intestazione << datanasc.string();
if (_soggetti->read(rec)==NOERR)
{
TString80 cog = rec.get(SOG_COGNOME);
TString80 nom = rec.get(SOG_NOME);
int a = 1;
a++;
for (int i=1;i++;i<recsog.items())
{
message = " ";
TString80 campo(recsog.fieldname(i));
if (campo.not_empty())
{
const char operazione = _configfile->get(campo, "SOGGETTI")[0];
TString esterno = recsog.get(campo);
TString interno = rec.get(campo);
if (esterno != interno)
{
if (!print_intest)
{
print_line();
print_line(intestazione);
print_intest = TRUE;
}
switch (operazione)
{
case X_SOS_CONAVVISO:
{
rec.put(campo, esterno);
message << campo;
message << " da ";
message << interno;
message << " a ";
message << esterno;
print_line(message);
}
break;
case X_SOS_NONAVVISO:
{
rec.put(campo, esterno);
}
break;
case X_INS_SEVUOTO:
{
if (interno.empty())
rec.put(campo, esterno);
}
break;
case X_VIS_SEDIVERSO:
{
message << campo;
message << " originale ";
message << interno;
message << " aggiornamento ";
message << esterno;
print_line(message);
}
break;
case X_IGNORA:
default:
break;
}
}
}
}
}
else
{
TString16 catdon = recsog.get(SOG_CATDON);
const char xcatdon = _configfile->get(catdon, "CATDON")[0];
if (xcatdon == X_SOS_CONAVVISO)
{
_lastcod = _lastcod + 1;
rec = recsog;
rec.put(SOG_CODICE, _lastcod);
_soggetti->write(rec);
message << " INSERITO ";
print_line(message);
}
}
}

95
at/at9300a.ini Executable file
View File

@ -0,0 +1,95 @@
FILE DI CONFIGURAZIONE PER AGGIORNAMENTO DATI COMUNALI DA AVIS PROVINCIALE
[LEGENDA]
A=SOSTITUISCI CON AVVISO
S=SOSTITUISCI SENZA CONDIZIONI
R=INSERISCI SOLO SE IL CAMPO DESTINAZIONE E' VUOTO (ALTRIMENTI VISUALIZZA DIFFERENZA)
V=VISUALIZZA SE DIVERSO
I=IGNORA
[ARCHIVIO]
DATA = 18-12-2003
PERCORSO = c:\tmp\
[SOGGETTI]
CODSEZ = V
CODSOT = V
COMNASC = A
CATDON = V
SESSO = V
DATAISC = V
DATADIM = V
CATNOND = I
CATNOND2 = I
TESSAVIS = S
TESSSSN = R
CODCT = S
CODCL = S
DOCID = V
CF = S
DOM_INDIR = V
DOM_CODCOM = V
DOM_CODLOC = V
DOM_STRADA = V
DOM_DISTRI = V
DOM_CAP = V
RES_INDIR = V
RES_CODCOM = V
RES_CODLOC = V
RES_CAP = V
TELABI = V
TELLAV = V
TELALT = V
TITINDIR = V
ESCLUSO = V
TERMESCL = V
MOTESCL = V
DONPRECSI = V
DONPRECAF = V
DATAPRISI = V
DATAPRIAF = V
GRUPPOAB0 = S
RHANTID = S
KELL = S
FENOTIPORH = S
DU = S
ANTICORPI = S
CMV = S
PUNTORACC = I
CODMED = V
MODCONV = I
GIOPREDON = V
GIOPRECON = V
CONDOCC = V
POSPROF = V
RAMOATT = V
TITSTUD = V
LUOGOLAV = V
PROFESS = V
T_STAMPATA = S
GRUPPOAZIE = V
NOTIZIARIO = V
BENEM = V
COGNOME_SP = V
CONSENSO = V
NOTE = I
[DONAZIONI]
DATADON=V
TIPODON=V
[CONTROLLI]
DATACON=V
TIPOCON=V
[STORICO]
DATAISC=V
[CATDON]
AV=A
AS=A
NU=A