Patch level :
Files correlati : Ricompilazione Demo : [ ] Commento : Programmi per collegamento altre procedure (per ora Rimini, CT e comunale/portatile) git-svn-id: svn://10.65.10.50/trunk@7732 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
47aa76bf3a
commit
1ee5dca507
27
at/at8.cpp
Executable file
27
at/at8.cpp
Executable file
@ -0,0 +1,27 @@
|
||||
#include <xvt.h>
|
||||
#include <strings.h>
|
||||
#include <checks.h>
|
||||
|
||||
#include "at8.h"
|
||||
|
||||
#define usage "Error - usage : %s -{0|1|2}"
|
||||
|
||||
int main(int argc,char** argv)
|
||||
|
||||
{
|
||||
int rt = -1 ;
|
||||
const int r = (argc > 1) ? atoi(&argv[1][1]) : -1;
|
||||
|
||||
switch (r)
|
||||
{
|
||||
case 0:
|
||||
rt = at8100(argc,argv) ; break;
|
||||
case 1:
|
||||
rt = at8200(argc,argv) ; break;
|
||||
case 2:
|
||||
rt = at8300(argc,argv) ; break;
|
||||
default:
|
||||
error_box(usage, argv[0]) ; break;
|
||||
}
|
||||
return rt;
|
||||
}
|
9
at/at8.h
Executable file
9
at/at8.h
Executable file
@ -0,0 +1,9 @@
|
||||
#ifndef __AT8_H
|
||||
#define __AT8_H
|
||||
|
||||
int at8100(int argc, char* argv[]);
|
||||
int at8200(int argc, char* argv[]);
|
||||
int at8300(int argc, char* argv[]);
|
||||
|
||||
#endif // __AT8_H
|
||||
|
19
at/at8.url
Executable file
19
at/at8.url
Executable file
@ -0,0 +1,19 @@
|
||||
#define LIBDIR f:\xvt.403\win_x86\ptk\lib
|
||||
#define QFIRMNAME "AGA Informatica S.r.l."
|
||||
|
||||
#include <default.url>
|
||||
|
||||
/* at8 -0 aggiornamento stato soggetti da CT */
|
||||
MENU TASK_MENUBAR
|
||||
SUBMENU MENU_FILE "~File"
|
||||
|
||||
/* at8 -1 aggiornamento controlli da portatili */
|
||||
MENUBAR MENU_BAR(1)
|
||||
MENU MENU_BAR(1)
|
||||
SUBMENU MENU_FILE "~File"
|
||||
|
||||
/* at8 -2 aggiornamento donazioni da CT */
|
||||
MENUBAR MENU_BAR(2)
|
||||
MENU MENU_BAR(2)
|
||||
SUBMENU MENU_FILE "~File"
|
||||
|
352
at/at8100.cpp
Executable file
352
at/at8100.cpp
Executable file
@ -0,0 +1,352 @@
|
||||
#include <applicat.h>
|
||||
#include <execp.h>
|
||||
#include <mask.h>
|
||||
#include <msksheet.h>
|
||||
#include <mailbox.h>
|
||||
#include <prefix.h>
|
||||
#include <progind.h>
|
||||
#include <recarray.h>
|
||||
#include <relation.h>
|
||||
#include <tabutil.h>
|
||||
#include <urldefid.h>
|
||||
#include <validate.h>
|
||||
#include <lffiles.h>
|
||||
|
||||
#include "at8.h"
|
||||
|
||||
// nomi campi maschera
|
||||
#include "atlib.h"
|
||||
|
||||
// nomi dei campi
|
||||
#include "soggetti.h"
|
||||
#include "donaz.h"
|
||||
#include "contsan.h"
|
||||
#include "idoneita.h"
|
||||
|
||||
class TCTStato2AT : public TApplication
|
||||
{
|
||||
TMask* _msk;
|
||||
TRelation* _rel;
|
||||
|
||||
TLocalisamfile* _soggetti;
|
||||
TLocalisamfile* _donaz;
|
||||
TLocalisamfile* _contsan;
|
||||
TLocalisamfile* _idoneita;
|
||||
TRecord_array* _sdonazioni;
|
||||
TRecord_array* _scontrolli;
|
||||
TRecord_array* _sidoneita;
|
||||
// parametri di sezione
|
||||
int _intsi_f1, _intsi_f2, _intsi_m, _intaf_m, _etadonne;
|
||||
int _numdon1, _numdon2;
|
||||
TString16 _catini1, _catfin1, _catini2, _catfin2, _motivoid;
|
||||
bool _sttess2, _dataisc, _nomessage, _autoid;
|
||||
|
||||
|
||||
protected:
|
||||
virtual bool create();
|
||||
virtual bool destroy();
|
||||
virtual bool menu(MENU_TAG m);
|
||||
virtual TMask& get_mask() { return *_msk; }
|
||||
virtual TRelation* get_relation() const { return _rel; }
|
||||
|
||||
int write(TSheet_field& s);
|
||||
|
||||
public:
|
||||
TCTStato2AT() {}
|
||||
|
||||
};
|
||||
|
||||
HIDDEN inline TCTStato2AT& app() { return (TCTStato2AT&) main_app(); }
|
||||
|
||||
bool TCTStato2AT::create()
|
||||
{
|
||||
TApplication::create();
|
||||
_msk = new TMask("at8100a");
|
||||
_rel = new TRelation(LF_SOGGETTI);
|
||||
//_rel->add("CTD", "CODTAB==CATDON",1,0,ALIAS_CTD);
|
||||
_donaz = new TLocalisamfile(LF_DONAZ);
|
||||
_contsan = new TLocalisamfile(LF_CONTSAN);
|
||||
_idoneita = new TLocalisamfile(LF_IDONEITA);
|
||||
_sdonazioni = new TRecord_array(LF_DONAZ,DON_PROGDON);
|
||||
_scontrolli = new TRecord_array(LF_CONTSAN,CON_PROGCON);
|
||||
_sidoneita = new TRecord_array(LF_IDONEITA,IDO_PROGIDO);
|
||||
TConfig config(CONFIG_STUDIO);
|
||||
_numdon1 = config.get_int("NumDon1");
|
||||
_numdon2 = config.get_int("NumDon2");
|
||||
_catini1 = config.get("CatIni1");
|
||||
_catfin1 = config.get("CatFin1");
|
||||
_catini2 = config.get("CatIni2");
|
||||
_catfin2 = config.get("CatFin2");
|
||||
_sttess2 = config.get_bool("StTess2");
|
||||
_dataisc = config.get_bool("DataIsc");
|
||||
_nomessage = config.get_bool("NoMessage");
|
||||
_etadonne = config.get_int("EtaDonne");
|
||||
_intsi_f1 = config.get_int("IntSI_F1");
|
||||
_intsi_f2 = config.get_int("IntSI_F2");
|
||||
_intsi_m = config.get_int("IntSI_M");
|
||||
_intaf_m = config.get_int("IntAF_M");
|
||||
dispatch_e_menu(BAR_ITEM(1));
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TCTStato2AT::destroy()
|
||||
{
|
||||
delete _sidoneita;
|
||||
delete _scontrolli;
|
||||
delete _sdonazioni;
|
||||
delete _idoneita;
|
||||
delete _contsan;
|
||||
delete _donaz;
|
||||
delete _rel;
|
||||
delete _msk;
|
||||
return TApplication::destroy();
|
||||
}
|
||||
|
||||
bool TCTStato2AT::menu(MENU_TAG m)
|
||||
{
|
||||
KEY tasto = _msk->run();
|
||||
if (tasto == K_ENTER)
|
||||
{
|
||||
_rel->lfile().setkey(2);
|
||||
bool modificato = FALSE;
|
||||
bool modifanagr = FALSE;
|
||||
TDate oggi(TODAY);
|
||||
TRectype recsog = _rel->curr();
|
||||
TExternisamfile* f = new TExternisamfile("$ctdon");
|
||||
TProgind *pi;
|
||||
pi = new TProgind(f->eod(),"Aggiornamento stato soggetti da CT", FALSE, TRUE, 10);
|
||||
pi->setstatus(1);
|
||||
for(f->first(); !f->eof(); f->next())
|
||||
{
|
||||
pi->addstatus(1);
|
||||
modificato = FALSE;
|
||||
modifanagr = FALSE;
|
||||
const TString80 cognome = f->get("COGNOME");
|
||||
const TString80 nome = f->get("NOME");
|
||||
const TDate datanasc = f->get_date("DATANASC");
|
||||
const donaz_anno = f->get_int("DONAZ_ANNO");
|
||||
recsog.zero();
|
||||
recsog.put(SOG_COGNOME, cognome);
|
||||
recsog.put(SOG_NOME, nome);
|
||||
recsog.put(SOG_DATANASC, datanasc);
|
||||
if (recsog.read(_rel->lfile())==NOERR)
|
||||
{
|
||||
// aggiorna anagrafica soggetto
|
||||
TString16 tel_casa = f->get("TEL_CASA");
|
||||
TString16 tel_lavoro = f->get("TEL_LAVORO");
|
||||
if (tel_casa.not_empty())
|
||||
{
|
||||
recsog.put(SOG_TELABI,tel_casa);
|
||||
modifanagr = TRUE;
|
||||
}
|
||||
if (tel_lavoro.not_empty())
|
||||
{
|
||||
recsog.put(SOG_TELLAV,tel_lavoro);
|
||||
modifanagr = TRUE;
|
||||
}
|
||||
TString16 stato = f->get("STATO");
|
||||
TString16 statoavis = recsog.get(SOG_STATO);
|
||||
TDate dataini = f->get_date("DATAINI");
|
||||
TDate datafin = f->get_date("DATAFIN");
|
||||
TString16 idon = "";
|
||||
if ((stato=="08") || (stato=="03") || (stato=="09"))
|
||||
{
|
||||
if (statoavis != "DE")
|
||||
{
|
||||
TRectype* key = new TRectype(LF_CONTSAN);
|
||||
key->put(CON_CODICE, recsog.get(SOG_CODICE));
|
||||
_scontrolli->read(key);
|
||||
int progcon = _scontrolli->rows()+1;
|
||||
TRectype& reccon = _contsan->curr();
|
||||
reccon.zero();
|
||||
reccon.put(CON_CODICE, recsog.get(SOG_CODICE));
|
||||
reccon.put(CON_PROGCON, progcon);
|
||||
if (dataini.ok())
|
||||
reccon.put(CON_DATACON, dataini);
|
||||
else
|
||||
reccon.put(CON_DATACON, oggi);
|
||||
reccon.put(CON_TIPOCON, "DE");
|
||||
if (datafin.ok())
|
||||
{
|
||||
reccon.put(CON_PROSSTIPO, "FS");
|
||||
reccon.put(CON_PROSSDATA, datafin);
|
||||
}
|
||||
TString80 resp = "AGGIORNAMENTO DA CENTRO TRASF.";
|
||||
reccon.put(CON_RESPONSAB, resp);
|
||||
//reccon.put(IDO_MOTIVO, _motivoid);
|
||||
modificato = TRUE;
|
||||
_scontrolli->insert_row(reccon);
|
||||
_scontrolli->write(TRUE);
|
||||
}
|
||||
}
|
||||
if (stato=="05")
|
||||
{
|
||||
if (statoavis != "E")
|
||||
{
|
||||
TRectype* key = new TRectype(LF_CONTSAN);
|
||||
key->put(CON_CODICE, recsog.get(SOG_CODICE));
|
||||
int err = _scontrolli->read(key);
|
||||
int progcon = _scontrolli->rows()+1;
|
||||
TRectype& reccon = _contsan->curr();
|
||||
reccon.zero();
|
||||
reccon.put(CON_CODICE, recsog.get(SOG_CODICE));
|
||||
reccon.put(CON_PROGCON, progcon);
|
||||
if (dataini.ok())
|
||||
reccon.put(CON_DATACON, dataini);
|
||||
else
|
||||
reccon.put(CON_DATACON, oggi);
|
||||
reccon.put(CON_TIPOCON, "E");
|
||||
if (datafin.ok())
|
||||
{
|
||||
reccon.put(CON_PROSSTIPO, "FS");
|
||||
reccon.put(CON_PROSSDATA, datafin);
|
||||
}
|
||||
TString80 resp = "AGGIORNAMENTO DA CENTRO TRASF.";
|
||||
reccon.put(CON_RESPONSAB, resp);
|
||||
//reccon.put(IDO_MOTIVO, _motivoid);
|
||||
modificato = TRUE;
|
||||
_scontrolli->insert_row(reccon);
|
||||
_scontrolli->write(TRUE);
|
||||
}
|
||||
}
|
||||
if ((stato=="022") || (stato=="04"))
|
||||
{
|
||||
if (modstato_tcs(statoavis) != 'S')
|
||||
{
|
||||
TRectype* key = new TRectype(LF_CONTSAN);
|
||||
key->put(CON_CODICE, recsog.get(SOG_CODICE));
|
||||
int err = _scontrolli->read(key);
|
||||
int progcon = _scontrolli->rows()+1;
|
||||
TRectype& reccon = _contsan->curr();
|
||||
reccon.zero();
|
||||
reccon.put(CON_CODICE, recsog.get(SOG_CODICE));
|
||||
reccon.put(CON_PROGCON, progcon);
|
||||
if (dataini.ok())
|
||||
reccon.put(CON_DATACON, dataini);
|
||||
else
|
||||
reccon.put(CON_DATACON, oggi);
|
||||
reccon.put(CON_TIPOCON, "SO");
|
||||
if (datafin.ok())
|
||||
{
|
||||
reccon.put(CON_PROSSTIPO, "FS");
|
||||
reccon.put(CON_PROSSDATA, datafin);
|
||||
}
|
||||
TString80 resp = "AGGIORNAMENTO DA CENTRO TRASF.";
|
||||
reccon.put(CON_RESPONSAB, resp);
|
||||
//reccon.put(IDO_MOTIVO, _motivoid);
|
||||
modificato = TRUE;
|
||||
_scontrolli->insert_row(reccon);
|
||||
_scontrolli->write(TRUE);
|
||||
}
|
||||
}
|
||||
if (stato=="021")
|
||||
{
|
||||
const char modstato = modstato_tcs(statoavis);
|
||||
bool id_soloaf = ((recsog.get(SOG_STATOSI)!="ID") && (recsog.get(SOG_STATOAF)=="ID"));
|
||||
if ((modstato != 'I') && (modstato != 'F') && (!id_soloaf) )
|
||||
{
|
||||
TRectype* key = new TRectype(LF_CONTSAN);
|
||||
key->put(CON_CODICE, recsog.get(SOG_CODICE));
|
||||
_scontrolli->read(key);
|
||||
int progcon = _scontrolli->rows()+1;
|
||||
TRectype& reccon = _contsan->curr();
|
||||
reccon.zero();
|
||||
reccon.put(CON_CODICE, recsog.get(SOG_CODICE));
|
||||
reccon.put(CON_PROGCON, progcon);
|
||||
reccon.put(CON_DATACON, oggi);
|
||||
reccon.put(CON_TIPOCON, "PI");
|
||||
reccon.put(CON_IDON1, "PL");
|
||||
if (recsog.get_int(SOG_INTAF)==0)
|
||||
reccon.put(CON_INTAF, _intaf_m);
|
||||
else
|
||||
reccon.put(CON_INTAF, recsog.get_int(SOG_INTAF));
|
||||
TString80 resp = "AGGIORNAMENTO DA CENTRO TRASF.";
|
||||
reccon.put(CON_RESPONSAB, resp);
|
||||
//reccon.put(IDO_MOTIVO, _motivoid);
|
||||
modificato = TRUE;
|
||||
_scontrolli->insert_row(reccon);
|
||||
_scontrolli->write(TRUE);
|
||||
}
|
||||
}
|
||||
if ((stato=="02") || (stato=="01") || (stato=="011"))
|
||||
{
|
||||
if ((modstato_tcs(statoavis) != 'I') && (modstato_tcs(statoavis) != 'F'))
|
||||
{
|
||||
TRectype* key = new TRectype(LF_CONTSAN);
|
||||
key->put(CON_CODICE, recsog.get(SOG_CODICE));
|
||||
_scontrolli->read(key);
|
||||
int progcon = _scontrolli->rows()+1;
|
||||
TRectype& reccon = _contsan->curr();
|
||||
reccon.zero();
|
||||
reccon.put(CON_CODICE, recsog.get(SOG_CODICE));
|
||||
reccon.put(CON_PROGCON, progcon);
|
||||
reccon.put(CON_DATACON, oggi);
|
||||
reccon.put(CON_TIPOCON, "PI");
|
||||
reccon.put(CON_IDON1, "SI");
|
||||
if (donaz_anno==0)
|
||||
{
|
||||
if (recsog.get_int(SOG_INTSI)==0)
|
||||
{
|
||||
const TString16 sesso = recsog.get(SOG_SESSO);
|
||||
if (sesso == "2")
|
||||
{
|
||||
TDate datanasc = recsog.get_date(SOG_DATANASC);
|
||||
int eta = oggi.year() - datanasc.year();
|
||||
if(eta <= _etadonne)
|
||||
reccon.put(CON_INTSI, _intsi_f1);
|
||||
else
|
||||
reccon.put(CON_INTSI, _intsi_f2);
|
||||
}
|
||||
else
|
||||
reccon.put(CON_INTSI, _intsi_m);
|
||||
}
|
||||
else
|
||||
reccon.put(CON_INTSI, recsog.get_int(SOG_INTSI));
|
||||
}
|
||||
else
|
||||
{
|
||||
const int intsi = (360/donaz_anno);
|
||||
reccon.put(CON_INTSI, intsi);
|
||||
}
|
||||
TString80 resp = "AGGIORNAMENTO DA CENTRO TRASF.";
|
||||
reccon.put(CON_RESPONSAB, resp);
|
||||
//reccon.put(IDO_MOTIVO, _motivoid);
|
||||
modificato = TRUE;
|
||||
_scontrolli->insert_row(reccon);
|
||||
_scontrolli->write(TRUE);
|
||||
}
|
||||
}
|
||||
if (modificato)
|
||||
{
|
||||
TRectype* key = new TRectype(LF_IDONEITA);
|
||||
key->put(IDO_CODICE, recsog.get(SOG_CODICE));
|
||||
_sidoneita->read(key);
|
||||
con_reord(recsog,_scontrolli,_sidoneita);
|
||||
modifanagr = TRUE;
|
||||
}
|
||||
if (modifanagr)
|
||||
{
|
||||
recsog.put(SOG_DATAULTAGG, oggi);
|
||||
recsog.put(SOG_UTENULTAGG, "CT");
|
||||
recsog.rewrite(_rel->lfile());
|
||||
}
|
||||
}
|
||||
}
|
||||
delete pi;
|
||||
delete f;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
int TCTStato2AT::write(TSheet_field& s)
|
||||
{
|
||||
return NOERR;
|
||||
}
|
||||
|
||||
|
||||
int at8100(int argc, char* argv[])
|
||||
{
|
||||
TCTStato2AT a;
|
||||
a.run(argc, argv, "Aggiornamento stato soggetti da CT");
|
||||
return 0;
|
||||
}
|
13
at/at8100a.uml
Executable file
13
at/at8100a.uml
Executable file
@ -0,0 +1,13 @@
|
||||
PAGE "Aggiornamento stato soggetti da CT" -1 -1 78 20
|
||||
BUTTON DLG_OK 9 2
|
||||
BEGIN
|
||||
PROMPT -12 14 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 9 2
|
||||
BEGIN
|
||||
PROMPT -22 14 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
ENDMASK
|
367
at/at8200.cpp
Executable file
367
at/at8200.cpp
Executable file
@ -0,0 +1,367 @@
|
||||
#include <applicat.h>
|
||||
#include <execp.h>
|
||||
#include <mask.h>
|
||||
#include <msksheet.h>
|
||||
#include <mailbox.h>
|
||||
#include <printer.h>
|
||||
#include <prefix.h>
|
||||
#include <progind.h>
|
||||
#include <recarray.h>
|
||||
#include <relation.h>
|
||||
#include <tabutil.h>
|
||||
#include <urldefid.h>
|
||||
#include <validate.h>
|
||||
#include <lffiles.h>
|
||||
|
||||
#include "at8.h"
|
||||
#include "at8200a.h"
|
||||
|
||||
// nomi campi maschera
|
||||
#include "atlib.h"
|
||||
|
||||
// nomi dei campi
|
||||
#include "soggetti.h"
|
||||
#include "donaz.h"
|
||||
#include "contsan.h"
|
||||
#include "idoneita.h"
|
||||
|
||||
class TAggConSan : public TApplication
|
||||
{
|
||||
TMask* _msk;
|
||||
TRelation* _rel;
|
||||
TLocalisamfile* _soggetti;
|
||||
TLocalisamfile* _donaz;
|
||||
TLocalisamfile* _contsan;
|
||||
TLocalisamfile* _idoneita;
|
||||
TRecord_array* _sdonazioni;
|
||||
TRecord_array* _scontrolli;
|
||||
TRecord_array* _sidoneita;
|
||||
// parametri di sezione
|
||||
int _intsi_f1, _intsi_f2, _intsi_m, _intaf_m, _etadonne;
|
||||
int _numdon1, _numdon2;
|
||||
TString16 _catini1, _catfin1, _catini2, _catfin2, _motivoid;
|
||||
bool _sttess2, _dataisc, _nomessage, _autoid;
|
||||
|
||||
protected:
|
||||
virtual bool create();
|
||||
virtual bool destroy();
|
||||
virtual bool menu(MENU_TAG m);
|
||||
virtual TMask& get_mask() { return *_msk; }
|
||||
virtual TRelation* get_relation() const { return _rel; }
|
||||
int write(TSheet_field& s);
|
||||
|
||||
public:
|
||||
TAggConSan() {}
|
||||
};
|
||||
|
||||
HIDDEN inline TAggConSan& app() { return (TAggConSan&) main_app(); }
|
||||
|
||||
bool TAggConSan::create()
|
||||
{
|
||||
TApplication::create();
|
||||
_msk = new TMask("at8200a");
|
||||
_rel = new TRelation(LF_SOGGETTI);
|
||||
//_rel->add("CTD", "CODTAB==CATDON",1,0,ALIAS_CTD);
|
||||
_soggetti = new TLocalisamfile(LF_SOGGETTI);
|
||||
_donaz = new TLocalisamfile(LF_DONAZ);
|
||||
_contsan = new TLocalisamfile(LF_CONTSAN);
|
||||
_idoneita = new TLocalisamfile(LF_IDONEITA);
|
||||
_sdonazioni = new TRecord_array(LF_DONAZ,DON_PROGDON);
|
||||
_scontrolli = new TRecord_array(LF_CONTSAN,CON_PROGCON);
|
||||
_sidoneita = new TRecord_array(LF_IDONEITA,IDO_PROGIDO);
|
||||
TConfig config(CONFIG_STUDIO);
|
||||
_numdon1 = config.get_int("NumDon1");
|
||||
_numdon2 = config.get_int("NumDon2");
|
||||
_catini1 = config.get("CatIni1");
|
||||
_catfin1 = config.get("CatFin1");
|
||||
_catini2 = config.get("CatIni2");
|
||||
_catfin2 = config.get("CatFin2");
|
||||
_sttess2 = config.get_bool("StTess2");
|
||||
_dataisc = config.get_bool("DataIsc");
|
||||
_nomessage = config.get_bool("NoMessage");
|
||||
_etadonne = config.get_int("EtaDonne");
|
||||
_intsi_f1 = config.get_int("IntSI_F1");
|
||||
_intsi_f2 = config.get_int("IntSI_F2");
|
||||
_intsi_m = config.get_int("IntSI_M");
|
||||
_intaf_m = config.get_int("IntAF_M");
|
||||
dispatch_e_menu(BAR_ITEM(1));
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TAggConSan::destroy()
|
||||
{
|
||||
delete _sidoneita;
|
||||
delete _scontrolli;
|
||||
delete _sdonazioni;
|
||||
delete _idoneita;
|
||||
delete _contsan;
|
||||
delete _donaz;
|
||||
delete _soggetti;
|
||||
delete _rel;
|
||||
delete _msk;
|
||||
return TApplication::destroy();
|
||||
}
|
||||
|
||||
bool TAggConSan::menu(MENU_TAG m)
|
||||
{
|
||||
KEY tasto = _msk->run();
|
||||
if (tasto == K_ENTER)
|
||||
{
|
||||
bool anagrafe = _msk->get_bool(F_ANAGRAFE);
|
||||
_rel->lfile().setkey(2);
|
||||
bool modificato = FALSE;
|
||||
TDate oggi(TODAY);
|
||||
TPrintrow row;
|
||||
TString256 rigastampa;
|
||||
rigastampa = "SOGGETTI NON TROVATI SU ARCHIVIO PROVINCIALE";
|
||||
rigastampa << oggi.string();
|
||||
rigastampa.center_just(120);
|
||||
row.put(rigastampa);
|
||||
row.put("@>", 1);
|
||||
row.put("Pag. @#", 105);
|
||||
printer().setheaderline(2, row);
|
||||
rigastampa = "";
|
||||
rigastampa.fill('-',120);
|
||||
row.reset();
|
||||
row.put(rigastampa);
|
||||
printer().setheaderline(3, row);
|
||||
TRectype recsog = _rel->curr();
|
||||
TExternisamfile* fc = new TExternisamfile("$portacon");
|
||||
TProgind *pi;
|
||||
pi = new TProgind(fc->eod(),"Aggiornamento controlli sanitari da portatile", FALSE, TRUE, 10);
|
||||
pi->setstatus(1);
|
||||
for(fc->first(); !fc->eof(); fc->next())
|
||||
{
|
||||
pi->addstatus(1);
|
||||
modificato = FALSE;
|
||||
const TString80 cognome = fc->get("COGNOME");
|
||||
const TString80 nome = fc->get("NOME");
|
||||
const TDate datanasc = fc->get_date("DATANASC");
|
||||
recsog.zero();
|
||||
recsog.put(SOG_COGNOME, cognome);
|
||||
recsog.put(SOG_NOME, nome);
|
||||
recsog.put(SOG_DATANASC, datanasc);
|
||||
if (recsog.read(_rel->lfile())==NOERR)
|
||||
{
|
||||
TDate datacon = fc->get_date("DATACON");
|
||||
bool esiste = FALSE;
|
||||
TRectype* key = new TRectype(LF_CONTSAN);
|
||||
key->put(CON_CODICE, recsog.get(SOG_CODICE));
|
||||
_scontrolli->read(key);
|
||||
for (int r=1; r<=_scontrolli->rows(); r++)
|
||||
{
|
||||
const TRectype& riga = _scontrolli->row(r);
|
||||
TDate datacon1 = riga.get(CON_DATACON);
|
||||
if (datacon==datacon1)
|
||||
esiste = TRUE;
|
||||
}
|
||||
if (!esiste)
|
||||
{
|
||||
int progcon = _scontrolli->rows()+1;
|
||||
TRectype& reccon = _contsan->curr();
|
||||
reccon.zero();
|
||||
reccon.put(CON_CODICE, recsog.get(SOG_CODICE));
|
||||
reccon.put(CON_PROGCON, progcon);
|
||||
reccon.put(CON_DATACON, datacon);
|
||||
reccon.put(CON_TIPOCON, fc->get("TIPOCON"));
|
||||
reccon.put(CON_IDON1, fc->get("IDON1"));
|
||||
reccon.put(CON_IDON2, fc->get("IDON2"));
|
||||
reccon.put(CON_IDON3, fc->get("IDON3"));
|
||||
reccon.put(CON_IDON4, fc->get("IDON4"));
|
||||
reccon.put(CON_INTSI, fc->get("INTSI"));
|
||||
reccon.put(CON_INTAF, fc->get("INTAF"));
|
||||
reccon.put(CON_PROSSTIPO, fc->get("PROSSTIPO"));
|
||||
reccon.put(CON_PROSSDATA, fc->get("PROSSDATA"));
|
||||
reccon.put(CON_MOTIVO, fc->get("MOTIVO"));
|
||||
TString80 resp = "port.-" ;
|
||||
resp << fc->get("RESPONSAB");
|
||||
reccon.put(CON_RESPONSAB, resp);
|
||||
modificato = TRUE;
|
||||
_scontrolli->insert_row(reccon);
|
||||
_scontrolli->write(TRUE);
|
||||
}
|
||||
if (modificato)
|
||||
{
|
||||
TRectype* key = new TRectype(LF_IDONEITA);
|
||||
key->put(IDO_CODICE, recsog.get(SOG_CODICE));
|
||||
_sidoneita->read(key);
|
||||
con_reord(recsog,_scontrolli,_sidoneita);
|
||||
recsog.put(SOG_DATAULTAGG, oggi);
|
||||
recsog.put(SOG_UTENULTAGG, "PORT.");
|
||||
recsog.rewrite(_rel->lfile());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
rigastampa = "";
|
||||
rigastampa << cognome;
|
||||
rigastampa << " " << nome;
|
||||
rigastampa << " " << datanasc.string();
|
||||
row.reset();
|
||||
row.put((const char*) rigastampa);
|
||||
printer().print(row);
|
||||
}
|
||||
}
|
||||
delete pi;
|
||||
delete fc;
|
||||
TExternisamfile* fi = new TExternisamfile("$portaido");
|
||||
TProgind *pi1;
|
||||
pi1 = new TProgind(fi->eod(),"Aggiornamento controlli sanitari da portatile", FALSE, TRUE, 10);
|
||||
pi1->setstatus(1);
|
||||
for(fi->first(); !fi->eof(); fi->next())
|
||||
{
|
||||
pi1->addstatus(1);
|
||||
modificato = FALSE;
|
||||
const TString80 cognome = fi->get("COGNOME");
|
||||
const TString80 nome = fi->get("NOME");
|
||||
const TDate datanasc = fi->get_date("DATANASC");
|
||||
recsog.zero();
|
||||
recsog.put(SOG_COGNOME, cognome);
|
||||
recsog.put(SOG_NOME, nome);
|
||||
recsog.put(SOG_DATANASC, datanasc);
|
||||
if (recsog.read(_rel->lfile())==NOERR)
|
||||
{
|
||||
TDate dataido = fi->get_date("DATAIDO");
|
||||
bool esiste = FALSE;
|
||||
TRectype* key = new TRectype(LF_IDONEITA);
|
||||
key->put(IDO_CODICE, recsog.get(SOG_CODICE));
|
||||
_sidoneita->read(key);
|
||||
for (int r=1; r<=_sidoneita->rows(); r++)
|
||||
{
|
||||
const TRectype& riga = _sidoneita->row(r);
|
||||
TDate dataido1 = riga.get(IDO_DATAIDO);
|
||||
if (dataido==dataido1)
|
||||
esiste = TRUE;
|
||||
}
|
||||
if (!esiste)
|
||||
{
|
||||
int progido = _sidoneita->rows()+1;
|
||||
TRectype& recido = _idoneita->curr();
|
||||
recido.zero();
|
||||
recido.put(IDO_CODICE, recsog.get(SOG_CODICE));
|
||||
recido.put(IDO_PROGIDO, progido);
|
||||
recido.put(IDO_DATAIDO, dataido);
|
||||
recido.put(IDO_TIPOIDO, fi->get("TIPOIDO"));
|
||||
recido.put(IDO_IDO_SOS, fi->get("IDO_SOS"));
|
||||
recido.put(IDO_INTERVALLO, fi->get("INTERVALLO"));
|
||||
recido.put(IDO_FINESOS, fi->get("FINESOS"));
|
||||
recido.put(IDO_MOTIVO, fi->get("MOTIVO"));
|
||||
TString80 resp = "port.-" ;
|
||||
resp << fi->get("RESPONSAB");
|
||||
recido.put(IDO_RESPONSAB, resp);
|
||||
modificato = TRUE;
|
||||
_sidoneita->insert_row(recido);
|
||||
_sidoneita->write(TRUE);
|
||||
}
|
||||
if (modificato)
|
||||
{
|
||||
TRectype* key = new TRectype(LF_CONTSAN);
|
||||
key->put(CON_CODICE, recsog.get(SOG_CODICE));
|
||||
_scontrolli->read(key);
|
||||
con_reord(recsog,_scontrolli,_sidoneita);
|
||||
recsog.put(SOG_DATAULTAGG, oggi);
|
||||
recsog.put(SOG_UTENULTAGG, "PORT.");
|
||||
recsog.rewrite(_rel->lfile());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
rigastampa = "";
|
||||
rigastampa << cognome;
|
||||
rigastampa << " " << nome;
|
||||
rigastampa << " " << datanasc.string();
|
||||
row.reset();
|
||||
row.put((const char*) rigastampa);
|
||||
printer().print(row);
|
||||
}
|
||||
}
|
||||
delete pi1;
|
||||
delete fi;
|
||||
if (anagrafe)
|
||||
{
|
||||
TExternisamfile* fs = new TExternisamfile("$portasog");
|
||||
TProgind *pi2;
|
||||
pi2 = new TProgind(fs->eod(),"Aggiornamento dati anagrafici da portatile", FALSE, TRUE, 10);
|
||||
pi2->setstatus(1);
|
||||
for(fs->first(); !fs->eof(); fs->next())
|
||||
{
|
||||
pi2->addstatus(1);
|
||||
modificato = FALSE;
|
||||
const TString80 cognome = fs->get("COGNOME");
|
||||
const TString80 nome = fs->get("NOME");
|
||||
const TDate datanasc = fs->get_date("DATANASC");
|
||||
recsog.zero();
|
||||
recsog.put(SOG_COGNOME, cognome);
|
||||
recsog.put(SOG_NOME, nome);
|
||||
recsog.put(SOG_DATANASC, datanasc);
|
||||
if (recsog.read(_rel->lfile())==NOERR)
|
||||
{
|
||||
recsog.put(SOG_TESSAVIS, fs->get("TESSAVIS"));
|
||||
recsog.put(SOG_COGNOME_SP, fs->get("COGNOME_SP"));
|
||||
recsog.put(SOG_DOM_INDIR, fs->get("DOM_INDIR"));
|
||||
recsog.put(SOG_DOM_CODCOM, fs->get("DOM_CODCOM"));
|
||||
recsog.put(SOG_DOM_CODLOC, fs->get("DOM_CODLOC"));
|
||||
recsog.put(SOG_DOM_STRADA, fs->get("DOM_STRADA"));
|
||||
recsog.put(SOG_DOM_DISTRI, fs->get("DOM_DISTRI"));
|
||||
recsog.put(SOG_DOM_CAP, fs->get("DOM_CAP"));
|
||||
recsog.put(SOG_RES_INDIR, fs->get("RES_INDIR"));
|
||||
recsog.put(SOG_RES_CODCOM, fs->get("RES_CODCOM"));
|
||||
recsog.put(SOG_RES_CODLOC, fs->get("RES_CODLOC"));
|
||||
recsog.put(SOG_RES_CAP, fs->get("RES_CAP"));
|
||||
recsog.put(SOG_COMNASC, fs->get("COMNASC"));
|
||||
recsog.put(SOG_SESSO, fs->get("SESSO"));
|
||||
recsog.put(SOG_CF, fs->get("CF"));
|
||||
recsog.put(SOG_DOCID, fs->get("DOCID"));
|
||||
recsog.put(SOG_TELABI, fs->get("TELABI"));
|
||||
recsog.put(SOG_TELLAV, fs->get("TELLAV"));
|
||||
recsog.put(SOG_TELALT, fs->get("TELALT"));
|
||||
recsog.put(SOG_CATNOND1, fs->get("CATNOND1"));
|
||||
recsog.put(SOG_CATNOND2, fs->get("CATNOND2"));
|
||||
recsog.put(SOG_CODMED, fs->get("CODMED"));
|
||||
recsog.put(SOG_NOTIZIARIO, fs->get("NOTIZIARIO"));
|
||||
recsog.put(SOG_BENEM, fs->get("BENEM"));
|
||||
recsog.put(SOG_CONSENSO, fs->get("CONSENSO"));
|
||||
recsog.put(SOG_MODCONV, fs->get("MODCONV"));
|
||||
recsog.put(SOG_GIOPREDON, fs->get("GIOPREDON"));
|
||||
recsog.put(SOG_GIOPRECON, fs->get("GIOPRECON"));
|
||||
recsog.put(SOG_CONDOCC, fs->get("CONDOCC"));
|
||||
recsog.put(SOG_POSPROF, fs->get("POSPROF"));
|
||||
recsog.put(SOG_RAMOATT, fs->get("RAMOATT"));
|
||||
recsog.put(SOG_TITSTUD, fs->get("TITSTUD"));
|
||||
recsog.put(SOG_PROFESS, fs->get("PROFESS"));
|
||||
recsog.put(SOG_ESCLUSO, fs->get("ESCLUSO"));
|
||||
recsog.put(SOG_TERMESCL, fs->get("TERMESCL"));
|
||||
recsog.put(SOG_MOTESCL, fs->get("MOTESCL"));
|
||||
recsog.put(SOG_DATAULTAGG, oggi);
|
||||
recsog.put(SOG_UTENULTAGG, "PORT.");
|
||||
recsog.rewrite(_rel->lfile());
|
||||
}
|
||||
else
|
||||
{
|
||||
rigastampa = "";
|
||||
rigastampa << cognome;
|
||||
rigastampa << " " << nome;
|
||||
rigastampa << " " << datanasc.string();
|
||||
row.reset();
|
||||
row.put((const char*) rigastampa);
|
||||
printer().print(row);
|
||||
}
|
||||
}
|
||||
delete pi2;
|
||||
delete fs;
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
int TAggConSan::write(TSheet_field& s)
|
||||
{
|
||||
return NOERR;
|
||||
}
|
||||
|
||||
int at8200(int argc, char* argv[])
|
||||
{
|
||||
TAggConSan a;
|
||||
a.run(argc, argv, "Aggiornamento archivio da portatile");
|
||||
return 0;
|
||||
}
|
4
at/at8200a.h
Executable file
4
at/at8200a.h
Executable file
@ -0,0 +1,4 @@
|
||||
// aggiornamento archivio da portatili
|
||||
// definizione campi per maschera di selezione
|
||||
|
||||
#define F_ANAGRAFE 101
|
19
at/at8200a.uml
Executable file
19
at/at8200a.uml
Executable file
@ -0,0 +1,19 @@
|
||||
#include "at8200a.h"
|
||||
PAGE "Aggiornamento archivio da portatili" -1 -1 78 20
|
||||
BOOLEAN F_ANAGRAFE
|
||||
BEGIN
|
||||
PROMPT 2 5 "Aggiorna anche dati anagrafici"
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 9 2
|
||||
BEGIN
|
||||
PROMPT -12 14 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 9 2
|
||||
BEGIN
|
||||
PROMPT -22 14 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
ENDMASK
|
184
at/at8300.cpp
Executable file
184
at/at8300.cpp
Executable file
@ -0,0 +1,184 @@
|
||||
#include <applicat.h>
|
||||
#include <execp.h>
|
||||
#include <mask.h>
|
||||
#include <msksheet.h>
|
||||
#include <mailbox.h>
|
||||
#include <prefix.h>
|
||||
#include <progind.h>
|
||||
#include <recarray.h>
|
||||
#include <relation.h>
|
||||
#include <tabutil.h>
|
||||
#include <urldefid.h>
|
||||
#include <validate.h>
|
||||
#include <lffiles.h>
|
||||
|
||||
#include "at8.h"
|
||||
|
||||
#include "atlib.h"
|
||||
|
||||
// nomi dei campi
|
||||
#include "soggetti.h"
|
||||
#include "donaz.h"
|
||||
#include "contsan.h"
|
||||
#include "idoneita.h"
|
||||
|
||||
class TCTDon2AT : public TApplication
|
||||
{
|
||||
TMask* _msk;
|
||||
TRelation* _rel;
|
||||
|
||||
TLocalisamfile* _soggetti;
|
||||
TLocalisamfile* _donaz;
|
||||
TLocalisamfile* _contsan;
|
||||
TLocalisamfile* _idoneita;
|
||||
TRecord_array* _sdonazioni;
|
||||
TRecord_array* _scontrolli;
|
||||
TRecord_array* _sidoneita;
|
||||
// parametri di sezione
|
||||
int _intsi_f1, _intsi_f2, _intsi_m, _intaf_m, _etadonne;
|
||||
int _numdon1, _numdon2;
|
||||
TString16 _catini1, _catfin1, _catini2, _catfin2, _motivoid;
|
||||
bool _sttess2, _dataisc, _nomessage, _autoid;
|
||||
|
||||
|
||||
protected:
|
||||
virtual bool create();
|
||||
virtual bool destroy();
|
||||
virtual bool menu(MENU_TAG m);
|
||||
virtual TMask& get_mask() { return *_msk; }
|
||||
virtual TRelation* get_relation() const { return _rel; }
|
||||
|
||||
int write(TSheet_field& s);
|
||||
|
||||
public:
|
||||
TCTDon2AT() {}
|
||||
|
||||
};
|
||||
|
||||
HIDDEN inline TCTDon2AT& app() { return (TCTDon2AT&) main_app(); }
|
||||
|
||||
bool TCTDon2AT::create()
|
||||
{
|
||||
TApplication::create();
|
||||
_msk = new TMask("at8300a");
|
||||
_rel = new TRelation(LF_SOGGETTI);
|
||||
//_rel->add("CTD", "CODTAB==CATDON",1,0,ALIAS_CTD);
|
||||
_donaz = new TLocalisamfile(LF_DONAZ);
|
||||
_contsan = new TLocalisamfile(LF_CONTSAN);
|
||||
_idoneita = new TLocalisamfile(LF_IDONEITA);
|
||||
_sdonazioni = new TRecord_array(LF_DONAZ,DON_PROGDON);
|
||||
_scontrolli = new TRecord_array(LF_CONTSAN,CON_PROGCON);
|
||||
_sidoneita = new TRecord_array(LF_IDONEITA,IDO_PROGIDO);
|
||||
TConfig config(CONFIG_STUDIO);
|
||||
_numdon1 = config.get_int("NumDon1");
|
||||
_numdon2 = config.get_int("NumDon2");
|
||||
_catini1 = config.get("CatIni1");
|
||||
_catfin1 = config.get("CatFin1");
|
||||
_catini2 = config.get("CatIni2");
|
||||
_catfin2 = config.get("CatFin2");
|
||||
_sttess2 = config.get_bool("StTess2");
|
||||
_dataisc = config.get_bool("DataIsc");
|
||||
_nomessage = config.get_bool("NoMessage");
|
||||
_etadonne = config.get_int("EtaDonne");
|
||||
_intsi_f1 = config.get_int("IntSI_F1");
|
||||
_intsi_f2 = config.get_int("IntSI_F2");
|
||||
_intsi_m = config.get_int("IntSI_M");
|
||||
_intaf_m = config.get_int("IntAF_M");
|
||||
dispatch_e_menu(BAR_ITEM(1));
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TCTDon2AT::destroy()
|
||||
{
|
||||
delete _sidoneita;
|
||||
delete _scontrolli;
|
||||
delete _sdonazioni;
|
||||
delete _idoneita;
|
||||
delete _contsan;
|
||||
delete _donaz;
|
||||
delete _rel;
|
||||
delete _msk;
|
||||
return TApplication::destroy();
|
||||
}
|
||||
|
||||
bool TCTDon2AT::menu(MENU_TAG m)
|
||||
{
|
||||
KEY tasto = _msk->run();
|
||||
if (tasto == K_ENTER)
|
||||
{
|
||||
_rel->lfile().setkey(1);
|
||||
bool modificato = FALSE;
|
||||
TDate oggi(TODAY);
|
||||
TRectype recsog = _rel->curr();
|
||||
TExternisamfile* f = new TExternisamfile("$appoggio");
|
||||
TProgind *pi;
|
||||
pi = new TProgind(f->eod(),"Aggiornamento donazioni da CT", FALSE, TRUE, 10);
|
||||
pi->setstatus(1);
|
||||
for(f->first(); !f->eof(); f->next())
|
||||
{
|
||||
pi->addstatus(1);
|
||||
const long codsog = f->get_long("CODICE");
|
||||
recsog.zero();
|
||||
recsog.put(SOG_CODICE, codsog);
|
||||
if (recsog.read(_rel->lfile())==NOERR)
|
||||
{
|
||||
TRectype* key = new TRectype(LF_DONAZ);
|
||||
key->put(DON_CODICE, codsog);
|
||||
int err = _sdonazioni->read(key);
|
||||
if (err == NOERR)
|
||||
{
|
||||
calcola_donazioni_lib(recsog, _sdonazioni);
|
||||
recsog.rewrite(_rel->lfile());
|
||||
}
|
||||
TTable ctd("CTD");
|
||||
TString16 catdon = recsog.get(SOG_CATDON);
|
||||
const int totdon = recsog.get_int(SOG_TOTDON);
|
||||
ctd.put("CODTAB",catdon);
|
||||
if (ctd.read() == NOERR)
|
||||
{
|
||||
bool dimissione = ctd.get_bool("B0");
|
||||
if (dimissione)
|
||||
{
|
||||
recsog.put(SOG_CATDON,ctd.get("S6"));
|
||||
if (ctd.get("S6").not_empty())
|
||||
catdon = ctd.get("S6");
|
||||
}
|
||||
if ((catdon == _catini1 || _catini1.empty()) && (totdon==_numdon1) && _catfin1.not_empty())
|
||||
recsog.put(SOG_CATDON, _catfin1);
|
||||
if ((catdon == _catini2 || _catini2.empty()) && (totdon>=_numdon2) && _catfin2.not_empty() && (!_sttess2 || dimissione))
|
||||
recsog.put(SOG_CATDON, _catfin2);
|
||||
}
|
||||
TDate dataiscsog = recsog.get_date(SOG_DATAISC);
|
||||
if (!dataiscsog.ok() && _dataisc)
|
||||
{
|
||||
if (!recsog.get_date(SOG_DATAPRISI) == NULLDATE)
|
||||
recsog.put(SOG_DATAISC,recsog.get(SOG_DATAPRISI));
|
||||
else
|
||||
{
|
||||
const TRectype& riga = _sdonazioni->row(1);
|
||||
recsog.put(SOG_DATAISC,riga.get(DON_DATADON));
|
||||
}
|
||||
}
|
||||
recsog.put(SOG_DATAULTAGG, oggi);
|
||||
recsog.put(SOG_UTENULTAGG, "CT");
|
||||
recsog.rewrite(_rel->lfile());
|
||||
}
|
||||
}
|
||||
delete pi;
|
||||
delete f;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
int TCTDon2AT::write(TSheet_field& s)
|
||||
{
|
||||
return NOERR;
|
||||
}
|
||||
|
||||
|
||||
int at8300(int argc, char* argv[])
|
||||
{
|
||||
TCTDon2AT a;
|
||||
a.run(argc, argv, "Aggiornamento donazioni da CT");
|
||||
return 0;
|
||||
}
|
13
at/at8300a.uml
Executable file
13
at/at8300a.uml
Executable file
@ -0,0 +1,13 @@
|
||||
PAGE "Aggiornamento donazioni da CT" -1 -1 78 20
|
||||
BUTTON DLG_OK 9 2
|
||||
BEGIN
|
||||
PROMPT -12 14 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 9 2
|
||||
BEGIN
|
||||
PROMPT -22 14 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
ENDMASK
|
Loading…
x
Reference in New Issue
Block a user