From a44bb0559769f225f566c9b3671e15a45d6c047e Mon Sep 17 00:00:00 2001 From: cris Date: Thu, 18 Dec 2003 16:12:30 +0000 Subject: [PATCH] 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 --- at/agaat.men | 2 + at/at9300.cpp | 124 ++++++++++++++++++++++++++++++++++++++++++++----- at/at9300a.ini | 95 +++++++++++++++++++++++++++++++++++++ 3 files changed, 209 insertions(+), 12 deletions(-) create mode 100755 at/at9300a.ini diff --git a/at/agaat.men b/at/agaat.men index efbf06ce4..9fdd2a48b 100755 --- a/at/agaat.men +++ b/at/agaat.men @@ -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" diff --git a/at/at9300.cpp b/at/at9300.cpp index ba8af4d33..04ca5af61 100755 --- a/at/at9300.cpp +++ b/at/at9300.cpp @@ -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++;iget(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); + } } } diff --git a/at/at9300a.ini b/at/at9300a.ini new file mode 100755 index 000000000..a722bb3c7 --- /dev/null +++ b/at/at9300a.ini @@ -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 +