From 5b35dc21d2781a8e6152f1331bd9fd06ba501614 Mon Sep 17 00:00:00 2001 From: luca Date: Wed, 24 Mar 2010 09:20:28 +0000 Subject: [PATCH] Patch level : Files correlati : Ricompilazione Demo : [ ] Commento : git-svn-id: svn://10.65.10.50/trunk@20268 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- at/at4900.cpp | 159 +++++++++ at/at4900a.uml | 14 + at/at8300.cpp | 214 ++++++++++++ at/at8300a.uml | 13 + at/at9700.cpp | 147 +++++++++ at/at9700a.h | 11 + at/at9700a.uml | 136 ++++++++ at/at9800.cpp | 842 ++++++++++++++++++++++++++++++++++++++++++++++++ at/at9800a.h | 8 + at/at9800a.uml | 98 ++++++ at/atstctd.rep | 47 +++ at/atstctd.uml | 36 +++ at/atstctn.rep | 41 +++ at/atstctn.uml | 36 +++ at/atstgaz.rep | 41 +++ at/atstgaz.uml | 36 +++ at/atstlcp.rep | 60 ++++ at/atstlcp.uml | 36 +++ at/atstldl.rep | 41 +++ at/atstldl.uml | 36 +++ at/atstldn.rep | 41 +++ at/atstldn.uml | 36 +++ at/atstmtc.rep | 41 +++ at/atstmtc.uml | 36 +++ at/atstprf.rep | 41 +++ at/atstprf.uml | 36 +++ at/atstscs.rep | 41 +++ at/atstscs.uml | 36 +++ at/atsttcs.rep | 66 ++++ at/atsttcs.uml | 36 +++ at/attab.txt | 21 ++ at/attabmod.txt | 66 ++++ at/attbbnz.h | 8 + at/attbbnz.uml | 84 +++++ at/attbctd.h | 6 + at/attbctd.uml | 68 ++++ at/attbctn.h | 3 + at/attbctn.uml | 40 +++ at/attbgaz.h | 3 + at/attbgaz.uml | 40 +++ at/attbido.h | 4 + at/attbido.uml | 48 +++ at/attblcp.h | 7 + at/attblcp.uml | 83 +++++ at/attbldl.h | 3 + at/attbldl.uml | 40 +++ at/attbldn.h | 14 + at/attbldn.uml | 141 ++++++++ at/attbmed.h | 14 + at/attbmed.uml | 156 +++++++++ at/attbmtc.h | 4 + at/attbmtc.uml | 47 +++ at/attbpr1.h | 18 ++ at/attbpr1.uml | 202 ++++++++++++ at/attbpr2.h | 5 + at/attbpr2.uml | 61 ++++ at/attbprf.h | 3 + at/attbprf.uml | 40 +++ at/attbscs.h | 3 + at/attbscs.uml | 40 +++ at/attbsez.h | 47 +++ at/attbsez.uml | 475 +++++++++++++++++++++++++++ at/attbtcs.h | 8 + at/attbtcs.uml | 85 +++++ at/attbtdn.h | 8 + at/attbtdn.uml | 88 +++++ at/f97.dir | 3 + 67 files changed, 4448 insertions(+) create mode 100755 at/at4900.cpp create mode 100755 at/at4900a.uml create mode 100755 at/at8300.cpp create mode 100755 at/at8300a.uml create mode 100755 at/at9700.cpp create mode 100755 at/at9700a.h create mode 100755 at/at9700a.uml create mode 100755 at/at9800.cpp create mode 100755 at/at9800a.h create mode 100755 at/at9800a.uml create mode 100755 at/atstctd.rep create mode 100755 at/atstctd.uml create mode 100755 at/atstctn.rep create mode 100755 at/atstctn.uml create mode 100755 at/atstgaz.rep create mode 100755 at/atstgaz.uml create mode 100755 at/atstlcp.rep create mode 100755 at/atstlcp.uml create mode 100755 at/atstldl.rep create mode 100755 at/atstldl.uml create mode 100755 at/atstldn.rep create mode 100755 at/atstldn.uml create mode 100755 at/atstmtc.rep create mode 100755 at/atstmtc.uml create mode 100755 at/atstprf.rep create mode 100755 at/atstprf.uml create mode 100755 at/atstscs.rep create mode 100755 at/atstscs.uml create mode 100755 at/atsttcs.rep create mode 100755 at/atsttcs.uml create mode 100755 at/attab.txt create mode 100755 at/attabmod.txt create mode 100755 at/attbbnz.h create mode 100755 at/attbbnz.uml create mode 100755 at/attbctd.h create mode 100755 at/attbctd.uml create mode 100755 at/attbctn.h create mode 100755 at/attbctn.uml create mode 100755 at/attbgaz.h create mode 100755 at/attbgaz.uml create mode 100755 at/attbido.h create mode 100755 at/attbido.uml create mode 100755 at/attblcp.h create mode 100755 at/attblcp.uml create mode 100755 at/attbldl.h create mode 100755 at/attbldl.uml create mode 100755 at/attbldn.h create mode 100755 at/attbldn.uml create mode 100755 at/attbmed.h create mode 100755 at/attbmed.uml create mode 100755 at/attbmtc.h create mode 100755 at/attbmtc.uml create mode 100755 at/attbpr1.h create mode 100755 at/attbpr1.uml create mode 100755 at/attbpr2.h create mode 100755 at/attbpr2.uml create mode 100755 at/attbprf.h create mode 100755 at/attbprf.uml create mode 100755 at/attbscs.h create mode 100755 at/attbscs.uml create mode 100755 at/attbsez.h create mode 100755 at/attbsez.uml create mode 100755 at/attbtcs.h create mode 100755 at/attbtcs.uml create mode 100755 at/attbtdn.h create mode 100755 at/attbtdn.uml create mode 100755 at/f97.dir diff --git a/at/at4900.cpp b/at/at4900.cpp new file mode 100755 index 000000000..aa54745cd --- /dev/null +++ b/at/at4900.cpp @@ -0,0 +1,159 @@ +#include +#include + +#include "at4.h" +#include "atlib.h" + +// nomi dei campi +#include "soggetti.h" +#include "contsan.h" +#include "idoneita.h" + +class TIntSI : public TPrintapp +{ + TMask* _msk; + TRelation* _rel; + int _cur; + TLocalisamfile* _contsan; + TRecord_array* _scontrolli; + TLocalisamfile* _idoneita; + TRecord_array* _sidoneita; + +protected: + virtual bool user_create(); + virtual bool user_destroy(); + virtual bool set_print(int m); + virtual void set_page(int file, int cnt); + virtual bool preprocess_page(int file, int counter); + +public: + TIntSI() {} +}; + +HIDDEN inline TIntSI& app() { return (TIntSI&) main_app(); } + +bool TIntSI::preprocess_page(int file, int counter) +{ + TDate oggi(TODAY); + bool rewrite = FALSE; + TRectype& recsog = current_cursor()->curr(); + const int intsi = recsog.get_int(SOG_INTSI); + if (intsi == 110 || intsi == 120 || intsi == 180 || intsi == 320 || intsi == 360) + { + if (intsi == 110 || intsi == 120) + recsog.put(SOG_INTSI, 100); + if (intsi == 180) + recsog.put(SOG_INTSI, 160); + if (intsi == 320 || intsi == 360) + recsog.put(SOG_INTSI, 330); + const long codice = recsog.get_long(SOG_CODICE); + TRectype* keyc = new TRectype(LF_CONTSAN); + keyc->put(CON_CODICE, codice); + int err = _scontrolli->read(keyc); + TRectype* keyi = new TRectype(LF_IDONEITA); + keyi->put(IDO_CODICE, codice); + int erri = _sidoneita->read(keyi); + if ((err == NOERR || erri == NOERR) && (_scontrolli->rows() > 0 || _sidoneita->rows() > 0)) + { + for (int c=1; c<=_scontrolli->rows(); c++) + { + TRectype& riga = _scontrolli->row(c, TRUE); + int intsi = riga.get_int(CON_INTSI); + if (intsi == 110 || intsi == 120) + riga.put(CON_INTSI, 100); + if (intsi == 180) + riga.put(CON_INTSI, 160); + if (intsi == 320) + riga.put(CON_INTSI, 330); + if (intsi == 360) + riga.put(CON_INTSI, 330); + } + /* + for (int r=1; r<=_sidoneita->rows(); r++) + { + TRectype& riga = _sidoneita->row(r, TRUE); + const TString16 tipoido = riga.get(IDO_TIPOIDO); + if (tipoido == "SI") + { + int intsi = riga.get_int(IDO_INTERVALLO); + if (intsi == 110 || intsi == 120) + riga.put(IDO_INTERVALLO, 100); + } + } + */ + _scontrolli->rewrite(); + //_sidoneita->rewrite(); + con_reord(recsog,_scontrolli, _sidoneita); + rewrite = TRUE; + } + } + if (rewrite) + { + recsog.put(SOG_UTENULTAGG, "PRASSI"); + recsog.put(SOG_DATAULTAGG, oggi); + current_cursor()->file().rewrite(); + } + return rewrite; +} + +void TIntSI::set_page(int file, int cnt) +{ + set_row(1,"@0g@pn", FLD(LF_SOGGETTI,SOG_CODICE,"########")); + //set_row(1,"@10g@S", FLD(LF_SOGGETTI,SOG_COGNOME)); + //set_row(1,"@36g@S", FLD(LF_SOGGETTI,SOG_NOME)); +} + +bool TIntSI::set_print(int) +{ + KEY tasto; + tasto = _msk->run(); + if (tasto == K_ENTER) + { + TRectype da(LF_SOGGETTI); + TRectype a(LF_SOGGETTI); + da.zero(); + a.zero(); + TString16 codsez = "10"; + da.put(SOG_CODSEZ, codsez); + a.put(SOG_CODSEZ, codsez); + current_cursor()->setregion(da,a); + //current_cursor()->setfilter(format("SESSO == '1'")); + reset_files(); + add_file(LF_SOGGETTI); + reset_print(); + return TRUE; + } + else + return FALSE; +} + +bool TIntSI::user_create() +{ + _msk = new TMask("at0900a"); + _rel = new TRelation(LF_SOGGETTI); + _contsan = new TLocalisamfile(LF_CONTSAN); + _scontrolli = new TRecord_array(LF_CONTSAN,CON_PROGCON); + _idoneita = new TLocalisamfile(LF_IDONEITA); + _sidoneita = new TRecord_array(LF_IDONEITA,IDO_PROGIDO); + _cur = add_cursor(new TCursor(_rel, "", 3)); + long items = _rel->lfile().items(); + return TRUE; +} + +bool TIntSI::user_destroy() +{ + delete _sidoneita; + delete _idoneita; + delete _scontrolli; + delete _contsan; + delete _rel; + delete _msk; + return TRUE; +} + +int at4900(int argc, char* argv[]) +{ + TIntSI a; + a.run(argc, argv, "Cambio intervalli donazioni SI"); + return 0; +} \ No newline at end of file diff --git a/at/at4900a.uml b/at/at4900a.uml new file mode 100755 index 000000000..63ef46a2d --- /dev/null +++ b/at/at4900a.uml @@ -0,0 +1,14 @@ +PAGE "Cambio intervalli donazioni SI" -1 -1 78 20 + +TEXT -1 +BEGIN + PROMPT 2 2 "Cambio intervalli donazioni SI" +END + +ENDPAGE + +TOOLBAR "" 0 0 0 2 +#include +ENDPAGE + +ENDMASK diff --git a/at/at8300.cpp b/at/at8300.cpp new file mode 100755 index 000000000..d13f0dc52 --- /dev/null +++ b/at/at8300.cpp @@ -0,0 +1,214 @@ +#include +#include +#include +#include +#include +#include + +#include "at8.h" + +#include "atlib.h" + +// nomi dei campi +#include "soggetti.h" +#include "donaz.h" +#include "contsan.h" +#include "idoneita.h" +#include "rconvoc.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(),"Acquisizione dati 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); + _sdonazioni->rewrite(); + recsog.rewrite(_rel->lfile()); + + TRectype* keyc = new TRectype(LF_CONTSAN); + keyc->put(CON_CODICE, codsog); + int err = _scontrolli->read(keyc); + + TRectype* keyi = new TRectype(LF_IDONEITA); + keyi->put(IDO_CODICE, codsog); + err = _sidoneita->read(keyi); + + con_reord(recsog,_scontrolli,_sidoneita); + + 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); + const bool tstampata = recsog.get_bool(SOG_T_STAMPATA); + if ((catdon == _catini2 || _catini2.empty()) && (totdon>=_numdon2) && _catfin2.not_empty() && (!_sttess2 || tstampata)) + 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)); + } + } + const TDate dataprossi = recsog.get_date(SOG_DATAPROSSI); + const TDate dataconv = recsog.get_date(SOG_DATACONV); + const char stato = modstato_tcs(recsog.get(SOG_STATO)); + const TString16 statosi = recsog.get(SOG_STATOSI); + if ((stato == 'S') || (statosi == SOSPENSIONE) || (dataprossi > dataconv) || !dataprossi.ok()) + { + TLocalisamfile rconvoc(LF_RCONVOC); + rconvoc.setkey(3); + rconvoc.zero(); + rconvoc.put(RCV_CODICE, recsog.get(SOG_CODICE)); + rconvoc.put(RCV_DATACONV, recsog.get(SOG_DATACONV)); + if (rconvoc.read() == NOERR) + { + rconvoc.put(RCV_ANNULLATO, TRUE); + int err = rconvoc.rewrite(); + } + const TDate datanulla(NULLDATE); + recsog.put(SOG_DATACONV, datanulla); + recsog.put(SOG_DATAULTSOL, datanulla); + const int numzero = 0; + recsog.put(SOG_NUMCONV,numzero); + } + 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, "Acquisizione dati da CT"); + return 0; +} \ No newline at end of file diff --git a/at/at8300a.uml b/at/at8300a.uml new file mode 100755 index 000000000..0184db858 --- /dev/null +++ b/at/at8300a.uml @@ -0,0 +1,13 @@ +PAGE "Acquisizione dati 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 diff --git a/at/at9700.cpp b/at/at9700.cpp new file mode 100755 index 000000000..9e628a2bc --- /dev/null +++ b/at/at9700.cpp @@ -0,0 +1,147 @@ +#include "at9.h" +#include "at9600a.h" + +#include +#include +#include +#include +#include +#include + +#include "benem.h" +#include "soggetti.h" +#include "sezioni.h" + +/////////////////////////////////////////////////////////// +// Maschera +/////////////////////////////////////////////////////////// + +class TSort_benem_mask : public TAutomask +{ + +public: + virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly); + TSort_benem_mask(); + ~TSort_benem_mask(); +}; + +bool TSort_benem_mask::on_field_event(TOperable_field& o, TField_event e, long jolly) +{ + return true; +} + +TSort_benem_mask::TSort_benem_mask() : TAutomask("at9700a") +{ +} + +TSort_benem_mask::~TSort_benem_mask() +{ +} + +/////////////////////////////////////////////////////////// +// Applicazione +/////////////////////////////////////////////////////////// + +class TSort_benem_app : public TSkeleton_application +{ + +protected: + virtual void main_loop(); + +public: + void riordina_benemerenze(const TMask& msk) const; + +}; + +static int compare_benem(const TObject** o1, const TObject** o2) +{ + TRectype* r1 = (TRectype*)*o1; + TRectype* r2 = (TRectype*)*o2; + + const TString b1(r1->get(BEN_TIPOBEN)); + const TString b2(r2->get(BEN_TIPOBEN)); + + int b=0; + if (b1>b2) b=+1; + else + if (b1curr(); + for (bool ok = soggetti.move_first(); ok; ok = soggetti.move_next()) + { + if (!pi.addstatus(1)) + break; + + //per ogni soggetto deve trovare le benemerenze, di norma ordinate alla cazzo + const long codice = rec_sog.get_long(SOG_CODICE); + + TString query_benem; + query_benem << "USE BENEM\nFROM CODICE=#CODICE\nTO CODICE=#CODICE"; + TISAM_recordset benemerenze(query_benem); + benemerenze.set_var("#CODICE", codice); + const long ben_items = benemerenze.items(); + + if (ben_items > 0) + { + //aggiunge le benemerenze ad un record_array + TRecord_array sogg_benem(LF_BENEM, BEN_PROGBEN); + TRectype rec_ben(LF_BENEM); + rec_ben.put(BEN_CODICE, codice); + /*const TRectype& rec_ben = benemerenze.cursor()->curr(); + for (bool ok = benemerenze.move_first(); ok; ok = benemerenze.move_next()) + { + sogg_benem.add_row(rec_ben); + }*/ + + sogg_benem.read(rec_ben); + //magicamente sorta il record_array! + sogg_benem.sort(compare_benem); + + for (int i = 1; i <= sogg_benem.rows(); i++) + sogg_benem[i].put(BEN_PROGBEN, i); + //ancora più magicamente riscrive le benemerenze in modo ordinato! + sogg_benem.rewrite(); + } + + } +} + +void TSort_benem_app::main_loop() +{ + TSort_benem_mask m; + while (m.run() == K_ENTER) + riordina_benemerenze(m); +} + +int at9700(int argc, char* argv[]) +{ + TSort_benem_app app; + app.run(argc, argv, TR("Riordinamento straordinario benemerenze")); + return 0; +} \ No newline at end of file diff --git a/at/at9700a.h b/at/at9700a.h new file mode 100755 index 000000000..9f185827e --- /dev/null +++ b/at/at9700a.h @@ -0,0 +1,11 @@ +// riordinamento straordinario benemerenze + +#define F_SEZINI 101 +#define F_D_SEZINI 102 +#define F_SOTINI 103 +#define F_D_SOTINI 104 +#define F_SEZFIN 105 +#define F_D_SEZFIN 106 +#define F_SOTFIN 107 +#define F_D_SOTFIN 108 + diff --git a/at/at9700a.uml b/at/at9700a.uml new file mode 100755 index 000000000..08c6a2dda --- /dev/null +++ b/at/at9700a.uml @@ -0,0 +1,136 @@ +#include "at9700a.h" + +TOOLBAR "" 0 -2 0 2 + +BUTTON DLG_OK 10 2 +BEGIN + PROMPT -12 -11 "" +END + + +BUTTON DLG_QUIT 10 2 +BEGIN + PROMPT -22 -11 "" +END + +ENDPAGE + +PAGE "Riordinamento straordinario benemerenze" -1 -1 78 20 + +GROUPBOX DLG_NULL 77 4 +BEGIN + PROMPT 1 0 "Scelta sezioni" +END + +STRING F_SEZINI 2 +BEGIN + PROMPT 2 1 "Da " + FLAGS "U" + USE LF_SEZIONI + INPUT CODSEZ F_SEZINI + INPUT CODSOT F_SOTINI + DISPLAY "Cod.sez" CODSEZ + DISPLAY "Cod.sot." CODSOT + DISPLAY "Sezione@25" DENSEZ + DISPLAY "Sottogruppo@25" DENSOT + OUTPUT F_SEZINI CODSEZ + OUTPUT F_D_SEZINI DENSEZ + OUTPUT F_SOTINI CODSOT + OUTPUT F_D_SOTINI DENSOT + CHECKTYPE SEARCH + HELP "Codice sezione da cui partire" +END + +STRING F_D_SEZINI 25 +BEGIN + PROMPT 11 1 "" + FLAGS "U" + USE LF_SEZIONI KEY 2 + INPUT DENSEZ F_D_SEZINI + DISPLAY "Sezione@25" DENSEZ + DISPLAY "Cod.sez" CODSEZ + DISPLAY "Sottogruppo@25" DENSOT + DISPLAY "Cod.sot." CODSOT + COPY OUTPUT F_SEZINI + CHECKTYPE NORMAL + HELP "Sezione da cui partire" +END + +STRING F_SOTINI 2 +BEGIN + PROMPT 2 2 " " + COPY ALL F_SEZINI + CHECKTYPE SEARCH + HELP "Codice sottogruppo da cui partire" +END + +STRING F_D_SOTINI 25 +BEGIN + PROMPT 11 2 "" + FLAGS "U" + COPY USE F_D_SEZINI + INPUT DENSEZ F_D_SEZINI + INPUT DENSOT F_D_SOTINI + COPY DISPLAY F_D_SEZINI + COPY OUTPUT F_D_SEZINI + CHECKTYPE NORMAL + HELP "Sottogruppo da cui partire" +END + +STRING F_SEZFIN 2 +BEGIN + PROMPT 41 1 "A " + FLAGS "U" + USE LF_SEZIONI + INPUT CODSEZ F_SEZFIN + INPUT CODSOT F_SOTFIN + DISPLAY "Cod.sez" CODSEZ + DISPLAY "Cod.sot." CODSOT + DISPLAY "Sezione@25" DENSEZ + DISPLAY "Sottogruppo@25" DENSOT + OUTPUT F_SEZFIN CODSEZ + OUTPUT F_D_SEZFIN DENSEZ + OUTPUT F_SOTFIN CODSOT + OUTPUT F_D_SOTFIN DENSOT + CHECKTYPE SEARCH + HELP "Codice sezione finale" +END + +STRING F_D_SEZFIN 25 +BEGIN + PROMPT 49 1 "" + FLAGS "U" + USE LF_SEZIONI KEY 2 + INPUT DENSEZ F_D_SEZFIN + DISPLAY "Sezione@25" DENSEZ + DISPLAY "Sottogruppo@25" DENSOT + DISPLAY "Cod.sez" CODSEZ + DISPLAY "Cod.sot." CODSOT + COPY OUTPUT F_SEZFIN + CHECKTYPE NORMAL + HELP "Sezione finale" +END + +STRING F_SOTFIN 2 +BEGIN + PROMPT 41 2 " " + COPY ALL F_SEZFIN + CHECKTYPE SEARCH + HELP "Codice sottogruppo finale" +END + +STRING F_D_SOTFIN 25 +BEGIN + PROMPT 49 2 "" + FLAGS "U" + COPY USE F_D_SEZFIN + INPUT DENSEZ F_D_SEZFIN + INPUT DENSOT F_D_SOTFIN + COPY DISPLAY F_D_SEZFIN + COPY OUTPUT F_D_SEZFIN + CHECKTYPE NORMAL + HELP "Sottogruppo finale" +END + +ENDPAGE +ENDMASK diff --git a/at/at9800.cpp b/at/at9800.cpp new file mode 100755 index 000000000..3800074e8 --- /dev/null +++ b/at/at9800.cpp @@ -0,0 +1,842 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "contsan.h" +#include "donaz.h" +#include "idoneita.h" +#include "rconvoc.h" +#include "soggetti.h" + +#include "atlib.h" +#include "at9800a.h" +//////////////////////////// +// Maschera +//////////////////////////// +class TImporta_ct_rn_mask : public TAutomask +{ +protected: + virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly); +public: + TImporta_ct_rn_mask(); +}; + +TImporta_ct_rn_mask::TImporta_ct_rn_mask() : TAutomask("at9800a") +{ +} + +bool TImporta_ct_rn_mask::on_field_event(TOperable_field& f, TField_event e, long jolly) +{ + switch (f.dlg()) + { + case F_NAME: + if (e == fe_button) + { + TArray_sheet as(-1, -1, 72, 20, TR("Selezione file"), "File@32"); + TFilename path = get(F_PATH); + path.add("*.txt"); + list_files(path, as.rows_array()); + TFilename name; + FOR_EACH_ARRAY_ROW(as.rows_array(), i, row) + { + name = *row; + *row = name.name(); + } + if (as.run() == K_ENTER) + { + f.set(as.row(as.selected())); + } + } + break; + default: + break; + } + return true; +} + +//////////////////////////// +// Recordset +//////////////////////////// +class TImporta_ct_rn_recordset : public TAS400_recordset +{ +protected: + long trova_riga(const TString& key); + +public: + TDate get_date(const char* field_name) const; + TImporta_ct_rn_recordset(const TFilename& name); +}; + +//in base al campo decide come ricavare la data; questo perchè quei geni dell'avis producono.. +//..un file con le date scritte in formato fritto misto! +TDate TImporta_ct_rn_recordset::get_date(const char* field_name) const +{ + /*l'unica data scritta in modo civile è la datadon: come non detto! hanno porcato anche questa! + if (xvt_str_compare_ignoring_case(field_name, "DATADON") == 0) + return get(field_name).as_date();*/ + + //le altre sono scritte in modo incivile e vanno girate + const TString& str_date = get(field_name).as_string(); + TDate output_date(atoi(str_date.left(2)), atoi(str_date.mid(2,2)), atoi(str_date.mid(4,4))); + return output_date; +} + +TImporta_ct_rn_recordset::TImporta_ct_rn_recordset(const TFilename& name) +: TAS400_recordset(TString("AS400(180)\nSELECT * FROM ") << name) +{ + create_field("COGNOME", -1, 20, _alfafld, true); + create_field("NOME", -1, 20, _alfafld, true); + create_field("DATANASC", -1, 8, _alfafld, true); + create_field("SESSO", -1, 1, _alfafld, true); + create_field("STATO", -1, 8, _alfafld, true); + create_field("DATAULTEC", -1, 8, _alfafld, false); + create_field("DATADON", -1, 8, _alfafld, true); //unica data scritta a rovescio (cioè corretta!) + create_field("TIPOPRE", -1, 8, _alfafld, true); + create_field("ANNOUNITA", -1, 4, _intfld, true); + create_field("NROUNITA", -1, 6, _intfld, true); + create_field("MOTIVOSOSP", -1, 8, _alfafld, false); + create_field("SOSPESODAL", -1, 8, _alfafld, false); + create_field("SOSPESOAL", -1, 8, _alfafld, false); + create_field("LUOGO1", -1, 8, _alfafld, false); + create_field("LUOGO2", -1, 8, _alfafld, false); + create_field("LUOGO3", -1, 8, _alfafld, true); + create_field("LUOGO4", -1, 8, _alfafld, true); + create_field("IDONEO_SI", -1, 1, _alfafld, true); + create_field("IDONEO_PL", -1, 1, _alfafld, true); + create_field("IDONEO_PI", -1, 1, _alfafld, true); + create_field("TIPO_ESAME", -1, 8, _alfafld, false); + create_field("RISULTATO", -1, 20, _alfafld, false); +} + +/////////////////////////////////////// +// Decodificatore +/////////////////////////////////////// +//classe per la trascodifica lampo dei codici CT in quelli AT.. +//..(secondo la tabella &C2A) +class TDecode_c2a : public TCache +{ +protected: + virtual TObject* key2obj(const char* key); + +public: + const TString& decode(const char* code, const char* prefix); +}; + +TObject* TDecode_c2a::key2obj(const char* key) +{ + TString* str = new TString; + + TModule_table tabmod("AT548C2A"); + tabmod.put("CODTAB", key); + if (tabmod.read() == NOERR) + *str = tabmod.get("S6"); + + return str; +} + +const TString& TDecode_c2a::decode(const char* code, const char* prefix) +{ + TString16 key; + key << prefix << code; + key.trim(); + return *(const TString*)objptr(key); +} + + +//////////////////////////// +// Applicazione +//////////////////////////// +class TImporta_ct_rn : public TSkeleton_application +{ + TImporta_ct_rn_mask* _mask; + TLog_report* _log; + TDecode_c2a _c2a; + TAssoc_array _nocontrol_sezioni; + +private: + virtual bool create(); + virtual void main_loop(); + +protected: + void msg_no_sog_error(const TImporta_ct_rn_recordset& recset) const; + void msg_esame_error(const TImporta_ct_rn_recordset& recset, const TString& tipo, const bool manca) const; + void msg_stato_error(const TImporta_ct_rn_recordset& recset, const int tipo, + const TString& stato_avis = "", const TString& stato_ct = "") const; + void msg_aggiunge_qualcosa(const TRectype& curr_rec) const; + const TString& decode(const char* code, const char* prefix); + long trova_prossimo(TLocalisamfile& file, const long sog_codice) const; + +public: + const TString& decode_stato(const char* code) { return decode(code, "14"); } + const TString& decode_prelievo(const char* code) { return decode(code, "19"); } + const TString& decode_esame(const char* code) { return decode(code, "32"); } + const TString& decode_luogo(const char* code) { return decode(code, "PU"); } + void aggiunge_contsan(const TImporta_ct_rn_recordset& recset, const long sog_codice); + void aggiunge_donazione(const TImporta_ct_rn_recordset& recset, const long sog_codice); + + bool importa_dati(const TFilename& name); + bool controlla_stato_ct_avis(const TImporta_ct_rn_recordset& recset, const long codsog); + bool aggiorna_soggetto(const long codsog); +}; + + +void TImporta_ct_rn::msg_no_sog_error(const TImporta_ct_rn_recordset& recset) const +{ + TString error_msg; + _log->log(2, "DONATORE NON PRESENTE NEGLI ARCHIVI !"); + error_msg << "Cognome: " << recset.get("COGNOME").as_string() << "\n"; + error_msg << "Nome: " << recset.get("NOME").as_string() << "\n"; + _log->log(0, error_msg); + error_msg.cut(0); + + error_msg << "Data nascita: " << recset.get_date("DATANASC") << "\n"; + error_msg << "Sesso: " << recset.get("SESSO").as_string() << "\n"; + error_msg << "Stato donatore: " << recset.get("STATO").as_string() << "\n"; + error_msg << "Data donazione: " << recset.get_date("DATADON") << "\n"; + _log->log(0, error_msg); + error_msg.cut(0); + + error_msg << "Tipo prelievo: " << recset.get("TIPOPRE").as_string() << "\n"; + error_msg << "Data ultimi esami controllo: " << recset.get_date("DATAULTEC") << "\n"; + _log->log(0, error_msg); + error_msg.cut(0); + + error_msg << "Sospeso dal: " << recset.get_date("SOSPESODAL") << " al: " << recset.get_date("SOSPESOAL") << "\n"; + error_msg << "Motivo sospensione: " << recset.get("MOTIVOSOSP").as_string() << "\n"; + _log->log(0, error_msg); + error_msg.cut(0); + + error_msg << " \n"; + _log->log(0, error_msg); + error_msg.cut(0); +} + + +void TImporta_ct_rn::msg_esame_error(const TImporta_ct_rn_recordset& recset, const TString& tipo, bool manca) const +{ + TString error_msg; + error_msg << tipo << " NON INSERIBILE !"; + _log->log(2, error_msg); + error_msg.cut(0); + + error_msg << "Data: " << recset.get_date("DATADON") << "\n"; + error_msg << "Tipo: " << recset.get("TIPO_ESAME").as_string() << "\n"; + if (manca) + error_msg << "Manca il codice " << tipo << " corrispondente" << "\n"; + else + error_msg << tipo << " già presente !" << "\n"; + _log->log(0, error_msg); + error_msg.cut(0); + + error_msg << "Cognome: " << recset.get("COGNOME").as_string() << "\n"; + error_msg << "Nome: " << recset.get("NOME").as_string() << "\n"; + error_msg << "Data nascita: " << recset.get_date("DATANASC") << "\n"; + _log->log(0, error_msg); + error_msg.cut(0); + + error_msg << " \n"; + _log->log(0, error_msg); +} + +void TImporta_ct_rn::msg_stato_error(const TImporta_ct_rn_recordset& recset, const int tipo, + const TString& stato_avis, const TString& stato_ct) const +{ + TString error_msg; + switch (tipo) + { + case 0: + error_msg << "STATO DONATORE NON PRESENTE IN TABELLA" << "\n"; + error_msg << "Stato: " << recset.get("STATO").as_string() << "\n"; + break; + case 1: + error_msg << "STATO DONATORE AVIS DIVERSO DA CT - VERIFICARE" << "\n"; + error_msg << "- AVIS: " << stato_avis << "\n"; + error_msg << "- CT: " << stato_ct << "\n"; + break; + case 2: + error_msg << "SOGGETTO DICHIARATO IDONEO DAL CT SENZA TIPI DI DONAZIONE" << "\n"; + break; + case 3: + error_msg << "SOGGETTO DICHIARATO DECEDUTO DA CT - VERIFICARE" << "\n"; + break; + default: + break; + } + + _log->log(2, error_msg); + error_msg.cut(0); + + error_msg << "Cognome: " << recset.get("COGNOME").as_string() << "\n"; + error_msg << "Nome: " << recset.get("NOME").as_string() << "\n"; + error_msg << "Data nascita: " << recset.get_date("DATANASC") << "\n"; + _log->log(0, error_msg); + error_msg.cut(0); + + error_msg << " \n"; + _log->log(0, error_msg); +} + +//metodo per scrivere sul log le avvenute registrazioni di donazioni e controlli +void TImporta_ct_rn::msg_aggiunge_qualcosa(const TRectype& curr_rec) const +{ + const bool is_donaz = curr_rec.num() == LF_DONAZ; + const char* tipo = is_donaz ? "DONAZIONE" : "ESAME"; + TString msg; + msg << "INSERIMENTO " << tipo << "\n"; + _log->log(2, msg); + msg.cut(0); + //data + const TDate data = is_donaz ? curr_rec.get_date(DON_DATADON) : curr_rec.get_date(CON_DATACON); + msg << "Data: " << data.string() << "\n"; + //tipo + const TString& tipodon = is_donaz ? curr_rec.get(DON_TIPODON) : curr_rec.get(CON_TIPOCON); + msg << "Tipo: " << tipodon << "\n"; + //luogo + if (is_donaz) + { + const TString& cod_luogo = curr_rec.get(DON_LUOGODON); + const TString& descr_luogo = cache().get("LDN", cod_luogo, "S0"); + msg << "Luogo: " << cod_luogo << " - " << descr_luogo << "\n"; + } + _log->log(0, msg); + msg.cut(0); + //progressivo + const int progressivo = is_donaz ? curr_rec.get_int(DON_PROGDON) : curr_rec.get_int(CON_PROGCON); + msg << "Prog. don.: " << progressivo << "\n"; + //soggetto + const long codsog = is_donaz ? curr_rec.get_long(DON_CODICE) : curr_rec.get_long(CON_CODICE); + const TRectype& recsog = cache().get(LF_SOGGETTI, codsog); + msg << "Cognome: " << recsog.get(SOG_COGNOME) << "\n"; + msg << "Nome: " << recsog.get(SOG_NOME) << "\n"; + msg << "Data nascita: " << recsog.get_date(SOG_DATANASC) << "\n"; + _log->log(0, msg); + msg.cut(0); + msg << " \n"; + _log->log(0, msg); +} + +//decodifica sulla tabella C2A (utilizza la classe apposita creata in precedenza) +const TString& TImporta_ct_rn::decode(const char* code, const char* prefix) +{ + return _c2a.decode(code, prefix); +} + + +static int compare_date(const TObject** o1, const TObject** o2) +{ + const TRectype& s1 = *((TRectype*)*o1); + const TRectype& s2 = *((TRectype*)*o2); + + const TDate d1(s1.get(IDO_DATAIDO)); + const TDate d2(s2.get(IDO_DATAIDO)); + + int d = d1 - d2; + return d; +} + +//metodo per cercare l'ultimo record di un soggetto in un file tipo donaz e contsan +long TImporta_ct_rn::trova_prossimo(TLocalisamfile& file, const long sog_codice) const +{ + long next = 1; + + file.put("CODICE", sog_codice + 1); //Guy mi perdoni se non uso la macro! + int err = file.read(_isgteq); + if (err == NOERR) + err = file.read(_isprev); + else + { + if (err == _iseof) + err = file.read(_islast); + } + if (err == NOERR && file.get_long("CODICE") == sog_codice) //Mi riperdoni! + { + const int filenum = file.num(); //Qui si rischia il linciaggio... + if (filenum == LF_CONTSAN) + next += file.get_long(CON_PROGCON); + if (filenum == LF_DONAZ) + next += file.get_long(DON_PROGDON); + } + + return next; +} + +//confronto stato donatore avis con quello ct +bool TImporta_ct_rn::controlla_stato_ct_avis(const TImporta_ct_rn_recordset& recset, const long codsog) +{ + //stato_ct = stato preso da file da importare + //stato_at = stato_ct decodificato per avis in base alla tabella di trascodifica + //stato_attuale = stato sul record del soggetto nel file dei soggetti + const TString& stato_ct = recset.get("STATO").as_string(); + if (stato_ct.full()) + { + const TString& stato_at = decode_stato(stato_ct); + //se non riesce a decodificare lo stato avverte ed esce + if (stato_at.blank()) + msg_stato_error(recset, 0); + else + { + TLocalisamfile soggetti(LF_SOGGETTI); + soggetti.put(SOG_CODICE, codsog); + int err = soggetti.read(); + if (err == NOERR) //e non possiamo aspettarci altro che NOERR, visto che il controllo lo ha già fatto prima + { + const TString& stato_attuale = soggetti.get(SOG_STATO); + //se lo stato sul record del soggetto risulta != dallo stato sul file adesso decodificato.. + //..procede al casino infernale dell'allineamento stati + //Questo casino può però farlo solo nel caso la sezione ammetta controlli;in caso contrario.. + //..deve semplicemente abbandonare la questione dando segnalazione dell'incongruenza tra gli.. + //..stati avis e ct (incongruenza che non può essere corretta causa la proprietà della sezione). + if (stato_at != stato_attuale) + { + const TString& sog_sez = soggetti.get(SOG_CODSEZ); + const bool sez_no_controlli = _nocontrol_sezioni.is_key(sog_sez); + //controlla se la sezione ammette i controlli + if (!sez_no_controlli) + { + //verifica se deve veramente elaborare il tutto o no + //Per prima cosa verifica se lo stato comporta una idoneità/sospensione/donazionabilità + //Deve controllare sulla tabella di trascodifica il campo S7 + TModule_table tabmod("AT548C2A"); + TString key; + key << "14" << stato_ct; + key.trim(); + tabmod.put("CODTAB", key); + TString4 i_s_d; //non è una droga, ma idoneità_sospensione_donatoreabile + if (tabmod.read() == NOERR) + i_s_d = tabmod.get("S7"); + + //controlla se sono state passate via file da importare una o più idoneità + const TString& ido_si = recset.get("IDONEO_SI").as_string(); + const TString& ido_pl = recset.get("IDONEO_PL").as_string(); + const TString& ido_pi = recset.get("IDONEO_PI").as_string(); + + //nessuno stato con idoneità -> salta + if (i_s_d[0] == 'I' && ido_si[0] != 'S' && ido_pl[0] != 'S' && ido_pi[0] != 'S') + msg_stato_error(recset, 2); + else + { + //giro sui contsan del soggetto + //per prima cosa cerca se già esiste un contsan in data letta dal recset + TDate datacon = recset.get_date("DATADON"); + TLocalisamfile contsan(LF_CONTSAN); + contsan.setkey(2); + contsan.put(CON_DATACON, datacon); + contsan.put(CON_CODICE, codsog); + int err = contsan.read(); + //se esiste deve spostare di un giorno in avanti la data del controllo da inserire + if (err == NOERR) + ++datacon; + const long next_contsan = trova_prossimo(contsan, codsog); + + //dopo essersi posizionato correttamente, agiunge il contsan + contsan.zero(); + contsan.put(CON_CODICE, codsog); + contsan.put(CON_PROGCON, next_contsan); + contsan.put(CON_DATACON, datacon); + contsan.put(CON_TIPOCON, stato_at); + contsan.put(CON_RESPONSAB, "AGGIORNAMENTO DA CENTRO TRASF."); + + //campi speciali in base a parametri allucinanti + //se il soggetto è dichiarato idoneo... + if (i_s_d[0] == 'I') + { + int ido_num = 0; //questa è da seguire perchè esempio di mentalità contorta! + TString8 nome_campo_ido; + + //idoneità SI + if (ido_si[0] == 'S') + { + ido_num++; + nome_campo_ido.format("IDON%d", ido_num); + contsan.put(nome_campo_ido, "SI"); + if (soggetti.get_int(SOG_INTSI) == 0) + { + if (soggetti.get_int(SOG_SESSO) == 1) + contsan.put(CON_INTSI, 94); + else + contsan.put(CON_INTSI, 180); + } + } + //idoneità PL-AF + if (ido_pl[0] == 'S') + { + ido_num++; + nome_campo_ido.format("IDON%d", ido_num); + contsan.put(nome_campo_ido, "PL"); + const int intaf = soggetti.get_int(SOG_INTAF); + if (intaf == 0) + contsan.put(CON_INTAF, 30); + else + contsan.put(CON_INTAF, intaf); + } + + //idoneità PI + if (ido_pi[0] == 'S') + { + ido_num++; + nome_campo_ido.format("IDON%d", ido_num); + contsan.put(nome_campo_ido, "PI"); + if (contsan.get_int(CON_INTAF) == 0) + { + const int intaf = soggetti.get_int(SOG_INTAF); + if (intaf == 0) + contsan.put(CON_INTAF, 30); + else + contsan.put(CON_INTAF, intaf); + } + } + } //if (i_s_d[0] == 'I' &&... + //e alla fine della storia scrive il record! + err = contsan.write(); + + //comunque sia, effettua il controllo della morte del soggetto + //Ebbene si, anche se lo ha aggiornato, non si sa mai che risorga... + const bool sog_kaputt = tabmod.get_bool("B1"); + if (sog_kaputt) + msg_stato_error(recset, 3); + } + } + else //if (!sez_no_controlli)... + { + msg_stato_error(recset, 1, stato_at, stato_attuale); + } ////if (!sez_no_controlli)... + } //if (stato_at != stato_attuale)... + } //if (err == NOERR)... + } //if (stato_at.blank()).. + } //if (stato_ct.full())... + return true; +} + +//aggiorna i files di atwin (donazioni,idoneità,controlli,soggetti) del.. +//..soggetto di cui ha importato donazione o contsan +bool TImporta_ct_rn::aggiorna_soggetto(const long codsog) +{ + TLocalisamfile soggetti(LF_SOGGETTI); + TRectype& recsog = soggetti.curr(); + recsog.put(SOG_CODICE, codsog); + int err = soggetti.read(); + //se non trova il soggetto c'è qualcosa che non quadra ed esce (impossibile) + if (err != NOERR) + return false; + + //codice del soggetto in formato alfanumerico per i TRecord_array + const TString8 sog_codice = recsog.get(SOG_CODICE); + + //riordino delle donazioni + TRecord_array sdonazioni(sog_codice, LF_DONAZ); + calcola_donazioni_lib(recsog, &sdonazioni); + sdonazioni.rewrite(); + + //riordino delle idoneità + TRecord_array sidoneita(sog_codice, LF_IDONEITA); + sidoneita.sort(compare_date); + sidoneita.rewrite(); + + //riordino dei controlli + TRecord_array scontrolli(sog_codice, LF_CONTSAN); + if (scontrolli.rows() > 0 || sidoneita.rows() > 0) + con_reord(recsog, &scontrolli, &sidoneita); + + //riordino del soggetto + TConfig config(CONFIG_STUDIO); + const bool dataisc = config.get_bool("DataIsc"); + + 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)); + } + } //if (!dataiscsog.ok()... + + //riordino convocazioni + const TDate dataprossi = recsog.get_date(SOG_DATAPROSSI); + const TDate dataconv = recsog.get_date(SOG_DATACONV); + const char stato = modstato_tcs(recsog.get(SOG_STATO)); + const TString& statosi = recsog.get(SOG_STATOSI); + if ((stato == 'S') || (statosi == SOSPENSIONE) || (dataprossi > dataconv) || !dataprossi.ok()) + { + TLocalisamfile rconvoc(LF_RCONVOC); + rconvoc.setkey(3); + rconvoc.zero(); + rconvoc.put(RCV_CODICE, recsog.get(SOG_CODICE)); + rconvoc.put(RCV_DATACONV, recsog.get(SOG_DATACONV)); + if (rconvoc.read() == NOERR) + { + rconvoc.put(RCV_ANNULLATO, TRUE); + rconvoc.write(); + } + + recsog.zero(SOG_DATACONV); + recsog.zero(SOG_DATAULTSOL); + recsog.zero(SOG_NUMCONV); + + } //if(stato=='S'... + recsog.put(SOG_DATAULTAGG, TDate(TODAY)); + recsog.put(SOG_UTENULTAGG, "CONVE"); + + //e alla fine riscrive il file dei soggetti + soggetti.rewrite(); + + return true; +} + + +void TImporta_ct_rn::aggiunge_contsan(const TImporta_ct_rn_recordset& recset, const long sog_codice) +{ + //cerca, per il soggetto in questione, quale è l'ultimo controllo sanitario e aggiunge quello nuovo + TLocalisamfile contsan(LF_CONTSAN); + const long next_contsan = trova_prossimo(contsan, sog_codice); + + //dopo essersi posizionato correttamente, agiunge il contsan + contsan.zero(); + contsan.put(CON_CODICE, sog_codice); + contsan.put(CON_PROGCON, next_contsan); + const TDate& dataesame = recset.get_date("DATADON"); + contsan.put(CON_DATACON, dataesame); + const TString& tipopre = decode_prelievo(recset.get("TIPOPRE").as_string()); + contsan.put(CON_TIPOCON, tipopre); + contsan.put(CON_RESPONSAB, "AGGIORNAMENTO DA CENTRO TRASF."); + + int err = contsan.write(); + //se riesce a scrivere il nuovo contsan, aggiorna il log ed il soggetto + if (err == NOERR) + msg_aggiunge_qualcosa(contsan.curr()); +} + + +void TImporta_ct_rn::aggiunge_donazione(const TImporta_ct_rn_recordset& recset, const long sog_codice) +{ + //cerca, per il soggetto in questione, quale è l'ultima donazione e aggiunge quella nuova + TLocalisamfile donaz(LF_DONAZ); + const long next_donaz = trova_prossimo(donaz, sog_codice); + + //dopo essersi posizionato correttamente, agiunge la donazione + donaz.zero(); + donaz.put(DON_CODICE, sog_codice); + donaz.put(DON_PROGDON, next_donaz); + const TDate& dataesame = recset.get_date("DATADON"); + donaz.put(DON_DATADON, dataesame); + const TString& tipopre = decode_prelievo(recset.get("TIPOPRE").as_string()); + donaz.put(DON_TIPODON, tipopre); + const int unita = recset.get("NROUNITA").as_int(); + donaz.put(DON_ETICHETTA, unita); + //controllo soggetto-sezione-sottosezione + TLocalisamfile soggetti(LF_SOGGETTI); + soggetti.put(SOG_CODICE, sog_codice); + int err = soggetti.read(); + if (err == NOERR) //dovrebbe esserlo sempre, perchè il controllo è stato fatto all'inizio di elabora + { + const TString& codsez = soggetti.get(SOG_CODSEZ); + donaz.put(DON_CODSEZ, codsez); + const TString& codsot = soggetti.get(SOG_CODSOT); + donaz.put(DON_CODSOT, codsot); + } + //caso della prima donazione (donatore vergine e martire) + if (next_donaz == 1 && soggetti.get_int(SOG_DONPRECSI) == 0 && soggetti.get_int(SOG_DONPRECAF) == 0) + donaz.put(DON_PRIMADON, 'X'); + + //controllo del luogo donazione + const TString& luogodon2 = decode_luogo(recset.get("LUOGO2").as_string()); + if (luogodon2.full()) + donaz.put(DON_LUOGODON, luogodon2); + else + { + const TString& luogodon4 = decode_luogo(recset.get("LUOGO4").as_string()); + if (luogodon4.full()) + donaz.put(DON_LUOGODON, luogodon4); + else + donaz.put(DON_LUOGODON, "1A"); + } + + err = donaz.write(); + //se riesce a scrivere la nuova donazione, aggiorna il log ed il soggetto + if (err == NOERR) + msg_aggiunge_qualcosa(donaz.curr()); +} + + +bool TImporta_ct_rn::importa_dati(const TFilename& name) +{ + //lista sezioni senza controlli (viene riempita una volta per tutte all'inizio) + //è qui e non nella create perchè dopo una esecuzione del programma si potrebbe modificare.. + //..la lista delle sezioni (non capita da 15 anni, però non si sa mai...) + TSheet_field& sf_nocontrol_sez = _mask->sfield(F_SEZIONI); + const int righe_sheet = sf_nocontrol_sez.items(); + + FOR_EACH_SHEET_ROW(sf_nocontrol_sez, i, row) + { + TString4 sh_sezione = row->get(0); + _nocontrol_sezioni.add(sh_sezione, sh_sezione); + } + + //recordset di importazione + TImporta_ct_rn_recordset recset(name); + TLocalisamfile soggetti(LF_SOGGETTI); + soggetti.setkey(2); + + TProgind pi(recset.items(), TR("Importazione dati da file..."), true, true); + + for (bool ok = recset.move_first(); ok; ok = recset.move_next()) + { + if (!pi.addstatus(1)) + break; + + //ciclo di importazione e controllo dati + //va ricavato dalla procedura foxprow dacentro.prg + + //CONTROLLO ESISTENZA DEL SOGGETTO + //-------------------------------- + TString80 sog_cognome = recset.get("COGNOME").as_string(); + sog_cognome.trim(); + TString80 sog_nome = recset.get("NOME").as_string(); + sog_nome.trim(); + TDate sog_datanasc = recset.get_date("DATANASC"); + + //cerca il soggetto nel file dei soggetti + soggetti.put(SOG_COGNOME, sog_cognome); + soggetti.put(SOG_NOME, sog_nome); + soggetti.put(SOG_DATANASC, sog_datanasc); + + int err = soggetti.read(); + //se trova il soggetto in anagrafica parte con l'elaborazione... + if (err == NOERR) + { + const long sog_codice = soggetti.get_long(SOG_CODICE); + + //controllo il tipo di prelievo nella tabella di modulo avis C2A + //il tipoprelievo è nella subtabella 19 + const TString& at_tipopre = decode_prelievo(recset.get("TIPOPRE").as_string()); + + //ESAMI E CONTROLLI SANITARI + //-------------------------- + //se il tipoprelievo è in realtà un esame.. + if (at_tipopre == "****") + { + //controlla se la sez del soggetto rifiuta i controlli (lista sezioni sullo sheet) + const TString& sog_sez = soggetti.get(SOG_CODSEZ); + const bool sez_no_controlli = _nocontrol_sezioni.is_key(sog_sez); + //se la sezione ammette i controlli + if (!sez_no_controlli) + { + const TString& at_tipoesame = decode_esame(recset.get("TIPO_ESAME").as_string()); + //se non c'è una decodifica dell'esame avverte sul log + if (at_tipoesame.blank()) + msg_esame_error(recset, "CONTROLLO", true); + else + //controlla se l'esame (detto controllo sanitario in gergo vampiresco) è già stato.. + //..inserito oppure lo aggiunge al file dei controlli sanitari + { + const TDate& datadon = recset.get_date("DATADON"); + + TLocalisamfile contsan(LF_CONTSAN); + contsan.setkey(2); + contsan.put(CON_DATACON, datadon); + contsan.put(CON_CODICE, sog_codice); + err = contsan.read(); + //se trova il controllo nella lista segnala che esiste già.. + if (err == NOERR) + msg_esame_error(recset, "CONTROLLO", false); + else //sennò aggiunge il controllo sanitario..olè! + { + aggiunge_contsan(recset, sog_codice); + } + } + } //if(!sez_no_controlli... + } //if(at_tipopre=="**.. + + //DONAZIONI + //--------- + else + { + //se non c'è una decodifica della donazione avverte sul log + if (at_tipopre.blank()) + msg_esame_error(recset, "DONAZIONE", true); + else + { + const TDate& datadon = recset.get_date("DATADON"); + const long sog_codice = soggetti.get_long(SOG_CODICE); + + TLocalisamfile donaz(LF_DONAZ); + donaz.setkey(2); + donaz.put(DON_DATADON, datadon); + donaz.put(DON_CODICE, sog_codice); + err = donaz.read(); + + //se trova la donazione nella lista segnala che esiste già.. + if (err == NOERR) + msg_esame_error(recset, "DONAZIONE", false); + else //sennò aggiunge la donazione..olè! + { + aggiunge_donazione(recset, sog_codice); + } + } //else di if (at_tipopre.blank()) + } //else di if(at_tipopre=="** + + //indipendentemente da ogni cosa controlla contsan avis/ct per lo stato donatore + controlla_stato_ct_avis(recset, sog_codice); + //aggiorna tutti i files legati al soggetto + aggiorna_soggetto(sog_codice); + + } + else //if(err==NOERR)...se non trova il soggetto lo deve aggiungere? Per adesso si incazza e avverte l'operatore + msg_no_sog_error(recset); + + } //for (bool ok = recset.move_first... + + return true; +} + + + +void TImporta_ct_rn::main_loop() +{ + _mask = new TImporta_ct_rn_mask; + + if (_mask->run() == K_ENTER) + { + //ricava il nome del file da importare + TFilename name = _mask->get(F_PATH); + name.add(_mask->get(F_NAME)); + //crea il log di importazione + _log = new TLog_report("SEGNALAZIONI IMPORTAZIONE"); + + //importazione dati ed elaborazione soggetti + if (importa_dati(name)) + { + const int items = _log->recordset()->items(); + if (items > 0) + _log->preview(); + message_box(TR("Importazione file completata")); + } + + delete _log; + _log = NULL; + } + + delete _mask; + _mask = NULL; +} + +bool TImporta_ct_rn::create() +{ + return TSkeleton_application::create(); +} + + +int at9800(int argc, char* argv[]) +{ + TImporta_ct_rn app; + app.run(argc, argv, "Importazione da CT Rimini"); + return 0; +} \ No newline at end of file diff --git a/at/at9800a.h b/at/at9800a.h new file mode 100755 index 000000000..49215521e --- /dev/null +++ b/at/at9800a.h @@ -0,0 +1,8 @@ +//campi maschera at9800a.uml + +#define F_PATH 201 +#define F_NAME 202 +#define F_SEZIONI 203 + +#define SF_CODSEZ 101 +#define SF_DESCR 102 diff --git a/at/at9800a.uml b/at/at9800a.uml new file mode 100755 index 000000000..89541134e --- /dev/null +++ b/at/at9800a.uml @@ -0,0 +1,98 @@ +#include "at9800a.h" + +PAGE "Importazione da CT - Rimini" -1 -1 80 13 + +GROUPBOX DLG_NULL 76 4 +BEGIN + PROMPT 1 1 "@bfile da importare" +END + +STRING F_PATH 256 60 +BEGIN + PROMPT 2 2 "Cartella " + DSELECT + FLAGS "M" + CHECKTYPE REQUIRED +END + +STRING F_NAME 12 +BEGIN + PROMPT 2 3 "File (*.txt)" + FLAGS "B" + CHECKTYPE REQUIRED +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 5 "@bSezioni che non importano i controlli" +END + +SPREADSHEET F_SEZIONI -1 5 +BEGIN + PROMPT 2 6 "@bSezioni" + ITEM "Codice" + ITEM "Descrizione@50" +END + +STRING DLG_PROFILE 256 60 +BEGIN + PROMPT 2 -1 "Profilo " + PSELECT +END + +ENDPAGE + +TOOLBAR "" 0 0 0 2 +#include +ENDPAGE + +ENDMASK + +//maschera di riga +PAGE "Sezione" -1 -1 78 8 + +STRING SF_CODSEZ 2 +BEGIN + PROMPT 1 1 "Codice " + USE LF_SEZIONI + CHECKTYPE REQUIRED + INPUT CODSEZ SF_CODSEZ + DISPLAY "Codice" CODSEZ + DISPLAY "Descrizione@25" DENSEZ + OUTPUT SF_CODSEZ CODSEZ + OUTPUT SF_DESCR DENSEZ + FLAGS "UZ" +END + +STRING SF_DESCR 50 +BEGIN + PROMPT 1 3 "Descrizione " + USE LF_SEZIONI KEY 2 + INPUT S0 SF_DESCR + DISPLAY "Descrizione@50" DENSEZ + DISPLAY "Codice" CODSEZ + COPY OUTPUT SF_CODSEZ +END + +ENDPAGE + +TOOLBAR "topbar" 0 0 0 2 + +BUTTON DLG_OK 10 2 +BEGIN + PROMPT -13 -1 "" +END + +BUTTON DLG_DELREC 10 2 +BEGIN + PROMPT -23 -1 "" +END + +BUTTON DLG_CANCEL 10 2 +BEGIN + PROMPT -33 -1 "" +END + +ENDPAGE + +ENDMASK \ No newline at end of file diff --git a/at/atstctd.rep b/at/atstctd.rep new file mode 100755 index 000000000..db08c81da --- /dev/null +++ b/at/atstctd.rep @@ -0,0 +1,47 @@ + + + +
+ + + + + + + + + + + + + + +
+
+
+
+ + CODTAB + + + S0 + + + B0 + +
+
+ + + #SYSTEM.DATE + + + #PAGE + + +
+
+ USE CTD + FROM CODTAB=#FROM + TO CODTAB=#TO + \ No newline at end of file diff --git a/at/atstctd.uml b/at/atstctd.uml new file mode 100755 index 000000000..963c33732 --- /dev/null +++ b/at/atstctd.uml @@ -0,0 +1,36 @@ +#include "ba3200.h" + +TOOLBAR "topbar" 0 0 0 2 +#include +ENDPAGE + +PAGE "Stampa tabella categorie donatori" 0 2 0 0 + +STRING F_INIZIO1 3 +BEGIN + PROMPT 2 1 "Da codice " + FLAGS "UZ" + FIELD FROM + USE CTD + INPUT CODTAB F_INIZIO1 + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_INIZIO1 CODTAB + GROUP 1 +END + +STRING F_FINE1 3 +BEGIN + PROMPT 20 1 "A codice " + FLAGS "UZ" + FIELD TO + COPY USE F_INIZIO1 + INPUT CODTAB F_FINE1 + COPY DISPLAY F_INIZIO1 + OUTPUT F_FINE1 CODTAB + GROUP 2 +END + +ENDPAGE + +ENDMASK diff --git a/at/atstctn.rep b/at/atstctn.rep new file mode 100755 index 000000000..bf82f598c --- /dev/null +++ b/at/atstctn.rep @@ -0,0 +1,41 @@ + + + +
+ + + + + + + + + + + +
+
+
+
+ + CODTAB + + + S0 + +
+
+ + + #SYSTEM.DATE + + + #PAGE + + +
+
+ USE CTN + FROM CODTAB=#FROM + TO CODTAB=#TO + \ No newline at end of file diff --git a/at/atstctn.uml b/at/atstctn.uml new file mode 100755 index 000000000..4290f26a2 --- /dev/null +++ b/at/atstctn.uml @@ -0,0 +1,36 @@ +#include "ba3200.h" + +TOOLBAR "topbar" 0 0 0 2 +#include +ENDPAGE + +PAGE "Stampa tabella categorie NON donatori" 0 2 0 0 + +STRING F_INIZIO1 3 +BEGIN + PROMPT 2 1 "Da codice " + FLAGS "UZ" + FIELD FROM + USE CTN + INPUT CODTAB F_INIZIO1 + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_INIZIO1 CODTAB + GROUP 1 +END + +STRING F_FINE1 3 +BEGIN + PROMPT 20 1 "A codice " + FLAGS "UZ" + FIELD TO + COPY USE F_INIZIO1 + INPUT CODTAB F_FINE1 + COPY DISPLAY F_INIZIO1 + OUTPUT F_FINE1 CODTAB + GROUP 2 +END + +ENDPAGE + +ENDMASK diff --git a/at/atstgaz.rep b/at/atstgaz.rep new file mode 100755 index 000000000..d87afc8a0 --- /dev/null +++ b/at/atstgaz.rep @@ -0,0 +1,41 @@ + + + +
+ + + + + + + + + + + +
+
+
+
+ + CODTAB + + + S0 + +
+
+ + + #SYSTEM.DATE + + + #PAGE + + +
+
+ USE GAZ + FROM CODTAB=#FROM + TO CODTAB=#TO + \ No newline at end of file diff --git a/at/atstgaz.uml b/at/atstgaz.uml new file mode 100755 index 000000000..1ef11c017 --- /dev/null +++ b/at/atstgaz.uml @@ -0,0 +1,36 @@ +#include "ba3200.h" + +TOOLBAR "topbar" 0 0 0 2 +#include +ENDPAGE + +PAGE "Stampa tabella gruppi aziendali" 0 2 0 0 + +STRING F_INIZIO1 3 +BEGIN + PROMPT 2 1 "Da codice " + FLAGS "UZ" + FIELD FROM + USE GAZ + INPUT CODTAB F_INIZIO1 + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_INIZIO1 CODTAB + GROUP 1 +END + +STRING F_FINE1 3 +BEGIN + PROMPT 20 1 "A codice " + FLAGS "UZ" + FIELD TO + COPY USE F_INIZIO1 + INPUT CODTAB F_FINE1 + COPY DISPLAY F_INIZIO1 + OUTPUT F_FINE1 CODTAB + GROUP 2 +END + +ENDPAGE + +ENDMASK diff --git a/at/atstlcp.rep b/at/atstlcp.rep new file mode 100755 index 000000000..1fa7a67fe --- /dev/null +++ b/at/atstlcp.rep @@ -0,0 +1,60 @@ + + + +
+ + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + CODTAB + + + S0 + + + S6 + + + COMUNI.DENCOM + + + COMUNI.PROVCOM + +
+
+ + + #SYSTEM.DATE + + + #PAGE + + +
+
+ USE LCP +JOIN COMUNI INTO COM=S7 +FROM CODTAB=#FROM +TO CODTAB=#TO + \ No newline at end of file diff --git a/at/atstlcp.uml b/at/atstlcp.uml new file mode 100755 index 000000000..88e8473cd --- /dev/null +++ b/at/atstlcp.uml @@ -0,0 +1,36 @@ +#include "ba3200.h" + +TOOLBAR "topbar" 0 0 0 2 +#include +ENDPAGE + +PAGE "Stampa tabella localita' postali" 0 2 0 0 + +STRING F_INIZIO1 3 +BEGIN + PROMPT 2 1 "Da codice " + FLAGS "UZ" + FIELD FROM + USE LCP + INPUT CODTAB F_INIZIO1 + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_INIZIO1 CODTAB + GROUP 1 +END + +STRING F_FINE1 3 +BEGIN + PROMPT 20 1 "A codice " + FLAGS "UZ" + FIELD TO + COPY USE F_INIZIO1 + INPUT CODTAB F_FINE1 + COPY DISPLAY F_INIZIO1 + OUTPUT F_FINE1 CODTAB + GROUP 2 +END + +ENDPAGE + +ENDMASK diff --git a/at/atstldl.rep b/at/atstldl.rep new file mode 100755 index 000000000..7e514524a --- /dev/null +++ b/at/atstldl.rep @@ -0,0 +1,41 @@ + + + +
+ + + + + + + + + + + +
+
+
+
+ + CODTAB + + + S0 + +
+
+ + + #SYSTEM.DATE + + + #PAGE + + +
+
+ USE LDL + FROM CODTAB=#FROM + TO CODTAB=#TO + \ No newline at end of file diff --git a/at/atstldl.uml b/at/atstldl.uml new file mode 100755 index 000000000..99c98fc99 --- /dev/null +++ b/at/atstldl.uml @@ -0,0 +1,36 @@ +#include "ba3200.h" + +TOOLBAR "topbar" 0 0 0 2 +#include +ENDPAGE + +PAGE "Stampa tabella luoghi di lavoro" 0 2 0 0 + +STRING F_INIZIO1 3 +BEGIN + PROMPT 2 1 "Da codice " + FLAGS "UZ" + FIELD FROM + USE LDL + INPUT CODTAB F_INIZIO1 + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_INIZIO1 CODTAB + GROUP 1 +END + +STRING F_FINE1 3 +BEGIN + PROMPT 20 1 "A codice " + FLAGS "UZ" + FIELD TO + COPY USE F_INIZIO1 + INPUT CODTAB F_FINE1 + COPY DISPLAY F_INIZIO1 + OUTPUT F_FINE1 CODTAB + GROUP 2 +END + +ENDPAGE + +ENDMASK diff --git a/at/atstldn.rep b/at/atstldn.rep new file mode 100755 index 000000000..e7b92bdb4 --- /dev/null +++ b/at/atstldn.rep @@ -0,0 +1,41 @@ + + + +
+ + + + + + + + + + + +
+
+
+
+ + CODTAB + + + S0 + +
+
+ + + #SYSTEM.DATE + + + #PAGE + + +
+
+ USE LDN + FROM CODTAB=#FROM + TO CODTAB=#TO + \ No newline at end of file diff --git a/at/atstldn.uml b/at/atstldn.uml new file mode 100755 index 000000000..22234ce3a --- /dev/null +++ b/at/atstldn.uml @@ -0,0 +1,36 @@ +#include "ba3200.h" + +TOOLBAR "topbar" 0 0 0 2 +#include +ENDPAGE + +PAGE "Stampa tabella punti di prelievo" 0 2 0 0 + +STRING F_INIZIO1 3 +BEGIN + PROMPT 2 1 "Da codice " + FLAGS "UZ" + FIELD FROM + USE LDN + INPUT CODTAB F_INIZIO1 + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_INIZIO1 CODTAB + GROUP 1 +END + +STRING F_FINE1 3 +BEGIN + PROMPT 20 1 "A codice " + FLAGS "UZ" + FIELD TO + COPY USE F_INIZIO1 + INPUT CODTAB F_FINE1 + COPY DISPLAY F_INIZIO1 + OUTPUT F_FINE1 CODTAB + GROUP 2 +END + +ENDPAGE + +ENDMASK diff --git a/at/atstmtc.rep b/at/atstmtc.rep new file mode 100755 index 000000000..4ff002edc --- /dev/null +++ b/at/atstmtc.rep @@ -0,0 +1,41 @@ + + + +
+ + + + + + + + + + + +
+
+
+
+ + CODTAB + + + S0 + +
+
+ + + #SYSTEM.DATE + + + #PAGE + + +
+
+ USE MTC + FROM CODTAB=#FROM + TO CODTAB=#TO + \ No newline at end of file diff --git a/at/atstmtc.uml b/at/atstmtc.uml new file mode 100755 index 000000000..e6e49beeb --- /dev/null +++ b/at/atstmtc.uml @@ -0,0 +1,36 @@ +#include "ba3200.h" + +TOOLBAR "topbar" 0 0 0 2 +#include +ENDPAGE + +PAGE "Stampa tabella motivi per controlli" 0 2 0 0 + +STRING F_INIZIO1 3 +BEGIN + PROMPT 2 1 "Da codice " + FLAGS "UZ" + FIELD FROM + USE MTC + INPUT CODTAB F_INIZIO1 + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_INIZIO1 CODTAB + GROUP 1 +END + +STRING F_FINE1 3 +BEGIN + PROMPT 20 1 "A codice " + FLAGS "UZ" + FIELD TO + COPY USE F_INIZIO1 + INPUT CODTAB F_FINE1 + COPY DISPLAY F_INIZIO1 + OUTPUT F_FINE1 CODTAB + GROUP 2 +END + +ENDPAGE + +ENDMASK diff --git a/at/atstprf.rep b/at/atstprf.rep new file mode 100755 index 000000000..79f072b47 --- /dev/null +++ b/at/atstprf.rep @@ -0,0 +1,41 @@ + + + +
+ + + + + + + + + + + +
+
+
+
+ + CODTAB + + + S0 + +
+
+ + + #SYSTEM.DATE + + + #PAGE + + +
+
+ USE PRF + FROM CODTAB=#FROM + TO CODTAB=#TO + \ No newline at end of file diff --git a/at/atstprf.uml b/at/atstprf.uml new file mode 100755 index 000000000..18568ee23 --- /dev/null +++ b/at/atstprf.uml @@ -0,0 +1,36 @@ +#include "ba3200.h" + +TOOLBAR "topbar" 0 0 0 2 +#include +ENDPAGE + +PAGE "Stampa tabella professioni" 0 2 0 0 + +STRING F_INIZIO1 3 +BEGIN + PROMPT 2 1 "Da codice " + FLAGS "UZ" + FIELD FROM + USE PRF + INPUT CODTAB F_INIZIO1 + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_INIZIO1 CODTAB + GROUP 1 +END + +STRING F_FINE1 3 +BEGIN + PROMPT 20 1 "A codice " + FLAGS "UZ" + FIELD TO + COPY USE F_INIZIO1 + INPUT CODTAB F_FINE1 + COPY DISPLAY F_INIZIO1 + OUTPUT F_FINE1 CODTAB + GROUP 2 +END + +ENDPAGE + +ENDMASK diff --git a/at/atstscs.rep b/at/atstscs.rep new file mode 100755 index 000000000..6f6cfde60 --- /dev/null +++ b/at/atstscs.rep @@ -0,0 +1,41 @@ + + + +
+ + + + + + + + + + + +
+
+
+
+ + CODTAB + + + S0 + +
+
+ + + #SYSTEM.DATE + + + #PAGE + + +
+
+ USE SCS + FROM CODTAB=#FROM + TO CODTAB=#TO + \ No newline at end of file diff --git a/at/atstscs.uml b/at/atstscs.uml new file mode 100755 index 000000000..b5581fe1f --- /dev/null +++ b/at/atstscs.uml @@ -0,0 +1,36 @@ +#include "ba3200.h" + +TOOLBAR "topbar" 0 0 0 2 +#include +ENDPAGE + +PAGE "Stampa tabella singoli controlli sanitari" 0 2 0 0 + +STRING F_INIZIO1 3 +BEGIN + PROMPT 2 1 "Da codice " + FLAGS "UZ" + FIELD FROM + USE SCS + INPUT CODTAB F_INIZIO1 + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_INIZIO1 CODTAB + GROUP 1 +END + +STRING F_FINE1 3 +BEGIN + PROMPT 20 1 "A codice " + FLAGS "UZ" + FIELD TO + COPY USE F_INIZIO1 + INPUT CODTAB F_FINE1 + COPY DISPLAY F_INIZIO1 + OUTPUT F_FINE1 CODTAB + GROUP 2 +END + +ENDPAGE + +ENDMASK diff --git a/at/atsttcs.rep b/at/atsttcs.rep new file mode 100755 index 000000000..e502f1194 --- /dev/null +++ b/at/atsttcs.rep @@ -0,0 +1,66 @@ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + CODTAB + + + S0 + + + S7 + + + S6 + + + S3 + +
+
+ + + #SYSTEM.DATE + + + #PAGE + + +
+
+ USE TCS + FROM CODTAB=#FROM + TO CODTAB=#TO + \ No newline at end of file diff --git a/at/atsttcs.uml b/at/atsttcs.uml new file mode 100755 index 000000000..d54be29d5 --- /dev/null +++ b/at/atsttcs.uml @@ -0,0 +1,36 @@ +#include "ba3200.h" + +TOOLBAR "topbar" 0 0 0 2 +#include +ENDPAGE + +PAGE "Stampa tabella tipi\esiti dei controlli sanitari" 0 2 0 0 + +STRING F_INIZIO1 3 +BEGIN + PROMPT 2 1 "Da codice " + FLAGS "UZ" + FIELD FROM + USE TCS + INPUT CODTAB F_INIZIO1 + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_INIZIO1 CODTAB + GROUP 1 +END + +STRING F_FINE1 3 +BEGIN + PROMPT 20 1 "A codice " + FLAGS "UZ" + FIELD TO + COPY USE F_INIZIO1 + INPUT CODTAB F_FINE1 + COPY DISPLAY F_INIZIO1 + OUTPUT F_FINE1 CODTAB + GROUP 2 +END + +ENDPAGE + +ENDMASK diff --git a/at/attab.txt b/at/attab.txt new file mode 100755 index 000000000..e2aec031a --- /dev/null +++ b/at/attab.txt @@ -0,0 +1,21 @@ +[Header] +Version=199519 +File=5 +Fields=COD,3|CODTAB,25|S0,70|S1,70|S2,70|S3,70|S4,25|S5,25|S6,5|S7,5 +Fields=S8,5|S9,5|S10,5|S11,5|I0,7|I1,7|I2,7|I3,7|I4,7|I5,7 +Fields=I6,7|I7,7|I8,7|I9,7|I10,7|I11,7|I12,7|I13,7|I14,7|R0,18 +Fields=R1,18|R2,18|R3,18|R4,18|R5,18|R6,18|R7,18|R8,18|R9,18|R10,18 +Fields=R11,18|R12,18|R13,18|R14,18|R15,18|R16,18|R17,18|R18,18|R19,18|R20,18 +Fields=R21,18|R22,18|R23,18|R24,18|R25,18|R26,18|R27,18|R28,18|R29,18|R30,18 +Fields=R31,18|R32,18|R33,18|R34,18|D0,10|D1,10|D2,10|D3,10|D4,10|B0,1 +Fields=B1,1|B2,1|B3,1|B4,1|B5,1|B6,1|B7,1|B8,1|B9,1|B10,1 +Fields=B11,1|B12,1|B13,1|B14,1|B15,1|FPC,1 + +[Data] +IDO|PI|Piastrinoaferesi||||||AF|||||||||||||||||||||0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000||||||||||||||| | | | | | | | | | | | | | | | | +IDO|PL|Plasmaferesi||||||AF|||||||||||||||||||||0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000||||||||||||||| | | | | | | | | | | | | | | | | +IDO|SI|Sangue intero||||||SI|||||||||||||||||||||0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000||||||||||||||| | | | | | | | | | | | | | | | | +TDN|PI|Piastrinoaferesi||||||AF|PI||||||||||||||||||||0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000||||||||||||||| | | | | | | | | | | | | | | | | +TDN|PL|Plasmaferesi||||||AF|PL||||||||||||||||||||0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000||||||||||||||| | | | | | | | | | | | | | | | | +TDN|PP|Plasma-piastrinoaferesi||||||AF|PL|PI|||||||||||||||||||0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000||||||||||||||| | | | | | | | | | | | | | | | | +TDN|SI|Sangue intero||||||SI|SI||||||||||||||||||||0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000||||||||||||||| | | | | | | | | | | | | | | | | diff --git a/at/attabmod.txt b/at/attabmod.txt new file mode 100755 index 000000000..4d33483d3 --- /dev/null +++ b/at/attabmod.txt @@ -0,0 +1,66 @@ +[Header] +Version=199519 +File=163 +Fields=MOD,2|CUST,6|COD,3|CODTAB,20|S0,70|S1,50|S2,50|S3,50|S4,20|S5,20 +Fields=S6,5|S7,5|I0,8|I1,8|I2,8|R0,18|R1,18|R2,18|D0,10|D1,10 +Fields=D2,10|B0,1|B1,1|B2,1|B3,1|B4,1|B5,1|B6,1|B7,1|B8,1 +Fields=B9,1|B10,1|FPC,1 + +[Data] +AT|548|C2A|1401|IDONEO||||||PI I||||||||||| | | | | | | | | | | | +AT|548|C2A|1402|SOSP. TEMPORANEAMENTE||||||SO S||||||||||| | | | | | | | | | | | +AT|548|C2A|1403|Sospeso Def. (dimesso)||||||DE D||||||||||| | | | | | | | | | | | +AT|548|C2A|1404|DIMESSO||||||DE D||||||||||| | | | | | | | | | | | +AT|548|C2A|1405|Deceduto||||||DE*D||||||||||| | | | | | | | | | | | +AT|548|C2A|1406|PAZIENTE||||||||||||||||| | | | | | | | | | | | +AT|548|C2A|1407|AUTOCONVOCAZIONE||||||||||||||||| | | | | | | | | | | | +AT|548|C2A|1411|Autoconvocazione||||||*||||||||||| | | | | | | | | | | | +AT|548|C2A|1412|ASPIRANTE||||||*||||||||||| | | | | | | | | | | | +AT|548|C2A|1413|Tolto asterisco||||||*||||||||||| | | | | | | | | | | | +AT|548|C2A|1416|SOSPESO DEF. ASP (DIMESSO)||||||DE D||||||||||| | | | | | | | | | | | +AT|548|C2A|1417|SOSPESO TEMP. ASP||||||SO S||||||||||| | | | | | | | | | | | +AT|548|C2A|1901|Prelievi di sangue intero||||||SI||||||||||| | | | | | | | | | | | +AT|548|C2A|1902|Plasmaferesi||||||PL||||||||||| | | | | | | | | | | | +AT|548|C2A|1903|Piastrinoaferesi||||||PI||||||||||| | | | | | | | | | | | +AT|548|C2A|1904|PlasmaPiastrinoaferesi||||||PP||||||||||| | | | | | | | | | | | +AT|548|C2A|1905|Aferesi terapeutica||||||||||||||||| | | | | | | | | | | | +AT|548|C2A|1906|Autodonazione||||||||||||||||| | | | | | | | | | | | +AT|548|C2A|1907|Esami di controllo||||||****|||||0.000|0.000|0.000||||X| | | | | | | | | | | +AT|548|C2A|1908|Salasso Terapeutico||||||||||||||||| | | | | | | | | | | | +AT|548|C2A|1909|Plasma Autoaferesi||||||||||||||||| | | | | | | | | | | | +AT|548|C2A|1910|Piastrino Autoaferesi||||||||||||||||| | | | | | | | | | | | +AT|548|C2A|1914|Non idonei||||||||||||||||| | | | | | | | | | | | +AT|548|C2A|1915|Aferesi Staminali||||||||||||||||| | | | | | | | | | | | +AT|548|C2A|1916|Recupero Intraoperatorio||||||||||||||||| | | | | | | | | | | | +AT|548|C2A|1920|Piastrinoaferesi filtrata||||||PH||||||||||| | | | | | | | | | | | +AT|548|C2A|1921|Eritroplasmaferesi||||||EA||||||||||| | | | | | | | | | | | +AT|548|C2A|1922|Eritropiastrinoaferesi||||||ER||||||||||| | | | | | | | | | | | +AT|548|C2A|3250|Elettrocardiogramma||||||EL||||||||||| | | | | | | | | | | | +AT|548|C2A|3251|Rx Torace||||||RX||||||||||| | | | | | | | | | | | +AT|548|C2A|3271|Esito esami 1||||||AE||||||||||| | | | | | | | | | | | +AT|548|C2A|3272|Esito esami 2||||||2||||||||||| | | | | | | | | | | | +AT|548|C2A|3273|Esito esami 3||||||R1||||||||||| | | | | | | | | | | | +AT|548|C2A|3274|Esito esami 4||||||4||||||||||| | | | | | | | | | | | +AT|548|C2A|3275|Esito esami 5||||||5||||||||||| | | | | | | | | | | | +AT|548|C2A|3276|Esito esami 6||||||6||||||||||| | | | | | | | | | | | +AT|548|C2A|32111|Esami di controllo||||||R1||||||||||| | | | | | | | | | | | +AT|548|C2A|32112|Visita||||||V1||||||||||| | | | | | | | | | | | +AT|548|C2A|PU01|RIMINI||||||1D||||||||||| | | | | | | | | | | | +AT|548|C2A|PU02|BELLARIA-IGEA MARINA||||||2A||||||||||| | | | | | | | | | | | +AT|548|C2A|PU03|CATTOLICA||||||3A||||||||||| | | | | | | | | | | | +AT|548|C2A|PU04|CORIANO||||||4A||||||||||| | | | | | | | | | | | +AT|548|C2A|PU05|MISANO ADRIATICO||||||5A||||||||||| | | | | | | | | | | | +AT|548|C2A|PU06|MORCIANO DI ROMAGNA||||||6A||||||||||| | | | | | | | | | | | +AT|548|C2A|PU07|NOVAFELTRIA||||||SCO||||||||||| | | | | | | | | | | | +AT|548|C2A|PU08|RICCIONE||||||8A||||||||||| | | | | | | | | | | | +AT|548|C2A|PU09|SAN GIOVANNI IN MARIGNANO||||||9A||||||||||| | | | | | | | | | | | +AT|548|C2A|PU10|SANTARCANGELO DI ROMAGNA||||||10A||||||||||| | | | | | | | | | | | +AT|548|C2A|PU11|VERUCCHIO||||||11A||||||||||| | | | | | | | | | | | +AT|548|C2A|PU12|FUORI PROVINCIA||||||SCO||||||||||| | | | | | | | | | | | +AT|548|C2A|PU13|AVIS SCUOLE||||||1D||||||||||| | | | | | | | | | | | +AT|548|C2A|PU14|CASERMA RN||||||1C||||||||||| | | | | | | | | | | | +AT|548|C2A|PU15|MISANO SCUOLE||||||5B||||||||||| | | | | | | | | | | | +AT|548|C2A|PU16|MORCIANO SCUOLE||||||6B||||||||||| | | | | | | | | | | | +AT|548|C2A|PU17|RICCIONE SCUOLE||||||8B||||||||||| | | | | | | | | | | | +AT|548|C2A|PU18|SANTARCANGELO SCUOLE||||||10B||||||||||| | | | | | | | | | | | +AT|548|C2A|PU19|SCONOSCIUTO||||||SCO||||||||||| | | | | | | | | | | | diff --git a/at/attbbnz.h b/at/attbbnz.h new file mode 100755 index 000000000..bfadb4c37 --- /dev/null +++ b/at/attbbnz.h @@ -0,0 +1,8 @@ +#define F_TABBNZ_CODTAB 100 +#define F_TABBNZ_DESCR 101 +#define F_TABBNZ_NDON 102 +#define F_TABBNZ_STATUTO 103 +#define F_TABBNZ_M_NDON 104 +#define F_TABBNZ_M_ANNI 105 +#define F_TABBNZ_CATDON 106 +#define DLG_DEL 108 diff --git a/at/attbbnz.uml b/at/attbbnz.uml new file mode 100755 index 000000000..9a2a4ce9a --- /dev/null +++ b/at/attbbnz.uml @@ -0,0 +1,84 @@ +#include "attbbnz.h" + +TOOLBAR "" 0 0 0 2 +#include +ENDPAGE + +PAGE "Benemerenze" -1 -1 78 7 + +STRING F_TABBNZ_CODTAB 2 +BEGIN + PROMPT 2 1 "Codice " + FIELD CODTAB + HELP "Inserire il codice della benemerenza" + USE BNZ + CHECKTYPE REQUIRED + INPUT CODTAB F_TABBNZ_CODTAB + DISPLAY "Codice " CODTAB + DISPLAY "Descrizione@30" S0 + OUTPUT F_TABBNZ_CODTAB CODTAB + OUTPUT F_TABBNZ_DESCR S0 + KEY 1 + FLAGS "U" +END + +STRING F_TABBNZ_DESCR 30 +BEGIN + PROMPT 2 3 "Descrizione " + FIELD S0 + HELP "Inserire la descrizione della benemerenza" + USE BNZ KEY 2 + CHECKTYPE REQUIRED + INPUT S0 F_TABBNZ_DESCR + DISPLAY "Descrizione@30" S0 + DISPLAY "Codice " CODTAB + COPY OUTPUT F_TABBNZ_CODTAB + KEY 2 +END + +NUMBER F_TABBNZ_NDON 3 +BEGIN + PROMPT 2 5 "Num. donazioni " + FIELD I0 + HELP "Inserire il numero di donazioni necessarie per ottenere la benemerenza" + CHECKTYPE REQUIRED + FLAGS "U" +END + +BOOLEAN F_TABBNZ_STATUTO +BEGIN + PROMPT 30 5 "Da statuto " + FIELD B0 + HELP "La benemerenza Š prevista nello statuto AVIS?" +END + +GROUPBOX DLG_NULL 77 4 +BEGIN + PROMPT 1 7 "Nuovi criteri per benemerenza" +END + +NUMBER F_TABBNZ_M_NDON 3 +BEGIN + PROMPT 2 8 "Numero donazioni " + FIELD I1 + HELP "Inserire il numero di donazioni necessarie per ottenere la benemerenza" + FLAGS "U" +END + +NUMBER F_TABBNZ_M_ANNI 2 +BEGIN + PROMPT 2 9 "Anni di iscrizione " + FIELD I2 + HELP "Inserire il numero di anni di iscrizione necessari" + FLAGS "U" +END + +BOOLEAN F_TABBNZ_CATDON +BEGIN + PROMPT 50 9 "Attribuisci solo ai dimessi" + FIELD B0 + HELP "Inserire se la benemerenza va attribuita solo ai dimessi" +END + +ENDPAGE +ENDMASK diff --git a/at/attbctd.h b/at/attbctd.h new file mode 100755 index 000000000..67a3fdac9 --- /dev/null +++ b/at/attbctd.h @@ -0,0 +1,6 @@ +#define F_TABCTD_CODTAB 100 +#define F_TABCTD_DESCR 101 +#define F_TABCTD_DIMESSI 102 +#define F_TABCTD_CATCOLL 103 +#define F_DESCR_CATCOLL 104 +#define DLG_DEL 105 diff --git a/at/attbctd.uml b/at/attbctd.uml new file mode 100755 index 000000000..a31a5da5c --- /dev/null +++ b/at/attbctd.uml @@ -0,0 +1,68 @@ +#include "attbctd.h" + +TOOLBAR "" 0 0 0 2 +#include +ENDPAGE + +PAGE "Categorie donatori" -1 -1 78 7 + +STRING F_TABCTD_CODTAB 2 +BEGIN + PROMPT 2 1 "Codice " + FIELD CODTAB + HELP "Inserire il codice della categoria" + USE CTD + CHECKTYPE REQUIRED + INPUT CODTAB F_TABCTD_CODTAB + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@30" S0 + OUTPUT F_TABCTD_CODTAB CODTAB + OUTPUT F_TABCTD_DESCR S0 + KEY 1 + FLAGS "U" +END + +STRING F_TABCTD_DESCR 30 +BEGIN + PROMPT 2 3 "Descrizione " + FIELD S0 + HELP "Inserire la descrizione della categoria" + USE CTD KEY 2 + CHECKTYPE REQUIRED + INPUT S0 F_TABCTD_DESCR + DISPLAY "Descrizione@30" S0 + DISPLAY "Codice" CODTAB + COPY OUTPUT F_TABCTD_CODTAB + KEY 2 +END + +BOOLEAN F_TABCTD_DIMESSI +BEGIN + PROMPT 2 5 "Categoria di dimissione" + FIELD B0 + HELP "Indicare se la categoria è di dimissione" +END + +STRING F_TABCTD_CATCOLL 2 +BEGIN + PROMPT 2 7 "Cat. collegata " + FIELD S6 + FLAGS "U" + USE CTD SELECT B0!=#F_TABCTD_DIMESSI + INPUT CODTAB F_TABCTD_CATCOLL + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@30" S0 + OUTPUT F_TABCTD_CATCOLL CODTAB + OUTPUT F_DESCR_CATCOLL S0 + CHECKTYPE NORMAL + WARNING "Codice non presente" +END + +STRING F_DESCR_CATCOLL 30 +BEGIN + PROMPT 23 7 "" + FLAGS "D" +END + +ENDPAGE +ENDMASK diff --git a/at/attbctn.h b/at/attbctn.h new file mode 100755 index 000000000..9e8f0f854 --- /dev/null +++ b/at/attbctn.h @@ -0,0 +1,3 @@ +#define F_TABCTN_CODTAB 100 +#define F_TABCTN_DESCR 101 +#define DLG_DEL 105 diff --git a/at/attbctn.uml b/at/attbctn.uml new file mode 100755 index 000000000..cf339d375 --- /dev/null +++ b/at/attbctn.uml @@ -0,0 +1,40 @@ +#include "attbctn.h" + +TOOLBAR "" 0 0 0 2 +#include +ENDPAGE + +PAGE "Categorie non donatori" -1 -1 78 7 + +STRING F_TABCTN_CODTAB 2 +BEGIN + PROMPT 2 1 "Codice " + FIELD CODTAB + HELP "Inserire il codice della categoria" + USE CTN + CHECKTYPE REQUIRED + INPUT CODTAB F_TABCTN_CODTAB + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@30" S0 + OUTPUT F_TABCTN_CODTAB CODTAB + OUTPUT F_TABCTN_DESCR S0 + KEY 1 + FLAGS "U" +END + +STRING F_TABCTN_DESCR 30 +BEGIN + PROMPT 2 3 "Descrizione " + FIELD S0 + HELP "Inserire la descrizione della categoria" + USE CTN KEY 2 + CHECKTYPE REQUIRED + INPUT S0 F_TABCTN_DESCR + DISPLAY "Descrizione@30" S0 + DISPLAY "Codice" CODTAB + COPY OUTPUT F_TABCTN_CODTAB + KEY 2 +END + +ENDPAGE +ENDMASK diff --git a/at/attbgaz.h b/at/attbgaz.h new file mode 100755 index 000000000..0a061cce5 --- /dev/null +++ b/at/attbgaz.h @@ -0,0 +1,3 @@ +#define F_TABGAZ_CODTAB 100 +#define F_TABGAZ_DESCR 101 +#define DLG_DEL 105 diff --git a/at/attbgaz.uml b/at/attbgaz.uml new file mode 100755 index 000000000..ce13b85aa --- /dev/null +++ b/at/attbgaz.uml @@ -0,0 +1,40 @@ +#include "attbgaz.h" + +TOOLBAR "" 0 0 0 2 +#include +ENDPAGE + +PAGE "Gruppi Aziendali" -1 -1 78 7 + +STRING F_TABGAZ_CODTAB 4 +BEGIN + PROMPT 2 1 "Codice " + FIELD CODTAB + HELP "Inserire il codice del gruppo aziendale" + USE GAZ + CHECKTYPE REQUIRED + INPUT CODTAB F_TABGAZ_CODTAB + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@30" S0 + OUTPUT F_TABGAZ_CODTAB CODTAB + OUTPUT F_TABGAZ_DESCR S0 + KEY 1 + FLAGS "U" +END + +STRING F_TABGAZ_DESCR 30 +BEGIN + PROMPT 2 3 "Denominazione " + FIELD S0 + HELP "Inserire la denominazione del gruppo aziendale" + USE GAZ KEY 2 + CHECKTYPE REQUIRED + INPUT S0 F_TABGAZ_DESCR + DISPLAY "Descrizione@30" S0 + DISPLAY "Codice" CODTAB + COPY OUTPUT F_TABGAZ_CODTAB + KEY 2 +END + +ENDPAGE +ENDMASK diff --git a/at/attbido.h b/at/attbido.h new file mode 100755 index 000000000..24a775154 --- /dev/null +++ b/at/attbido.h @@ -0,0 +1,4 @@ +#define F_TABIDO_CODTAB 100 +#define F_TABIDO_DESCR 101 +#define F_TABIDO_PROCDON 102 +#define DLG_DEL 105 diff --git a/at/attbido.uml b/at/attbido.uml new file mode 100755 index 000000000..a2488768c --- /dev/null +++ b/at/attbido.uml @@ -0,0 +1,48 @@ +#include "attbido.h" + +TOOLBAR "" 0 0 0 2 +#include +ENDPAGE + +PAGE "Idoneita' alla donazione" -1 -1 78 7 + +STRING F_TABIDO_CODTAB 2 +BEGIN + PROMPT 2 1 "Codice " + FIELD CODTAB + HELP "Inserire il codice della idoneità" + USE IDO + CHECKTYPE REQUIRED + INPUT CODTAB F_TABIDO_CODTAB + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@30" S0 + OUTPUT F_TABIDO_CODTAB CODTAB + OUTPUT F_TABIDO_DESCR S0 + KEY 1 + FLAGS "U" +END + +STRING F_TABIDO_DESCR 30 +BEGIN + PROMPT 2 3 "Descrizione " + FIELD S0 + HELP "Inserire la descrizione della idoneita'" + USE IDO KEY 2 + CHECKTYPE REQUIRED + INPUT S0 F_TABIDO_DESCR + DISPLAY "Descrizione@30" S0 + DISPLAY "Codice" CODTAB + COPY OUTPUT F_TABIDO_CODTAB + KEY 2 +END + +LISTBOX F_TABIDO_PROCDON 17 +BEGIN + PROMPT 2 5 "Procedura di don. " + FIELD S6 +#include "procdon.h" + HELP "Indicare la procedura di donazione collegata alla idoneita'" +END + +ENDPAGE +ENDMASK diff --git a/at/attblcp.h b/at/attblcp.h new file mode 100755 index 000000000..99dbbb635 --- /dev/null +++ b/at/attblcp.h @@ -0,0 +1,7 @@ +#define F_TABLCP_CODTAB 100 +#define F_TABLCP_LOCALITA 101 +#define F_TABLCP_CAP 102 +#define F_TABLCP_COM 103 +#define F_DENCOM 104 +#define F_PROVCOM 105 +#define DLG_DEL 106 diff --git a/at/attblcp.uml b/at/attblcp.uml new file mode 100755 index 000000000..757931cce --- /dev/null +++ b/at/attblcp.uml @@ -0,0 +1,83 @@ +#include "attblcp.h" + +TOOLBAR "" 0 0 0 2 +#include +ENDPAGE + +PAGE "Localita' postali" -1 -1 78 7 + +STRING F_TABLCP_CODTAB 4 +BEGIN + PROMPT 2 1 "Codice " + FIELD CODTAB + HELP "Inserire il codice della localita'" + USE LCP + CHECKTYPE REQUIRED + INPUT CODTAB F_TABLCP_CODTAB + DISPLAY "Codice" CODTAB + DISPLAY "Denominazione@30" S0 + DISPLAY "CAP@5" S6 + OUTPUT F_TABLCP_CODTAB CODTAB + OUTPUT F_TABLCP_LOCALITA S0 + KEY 1 + FLAGS "U" +END + +STRING F_TABLCP_LOCALITA 30 +BEGIN + PROMPT 2 3 "Localita' " + FIELD S0 + HELP "Inserire la denominazione della localita'" + USE LCP KEY 2 + CHECKTYPE REQUIRED + INPUT S0 F_TABLCP_LOCALITA + DISPLAY "Denominazione@30" S0 + DISPLAY "CAP@5" S6 + DISPLAY "Codice" CODTAB + COPY OUTPUT F_TABLCP_CODTAB + KEY 2 +END + +STRING F_TABLCP_CAP 5 +BEGIN + PROMPT 2 5 "CAP " + FIELD S6 + HELP "Inserire il CAP della località" + CHECKTYPE REQUIRED + FLAGS "U" +END + +STRING F_TABLCP_COM 4 +BEGIN + PROMPT 2 7 "Comune " + FIELD S7 + FLAGS "U" + USE LF_COMUNI + INPUT STATO "" + INPUT COM F_TABLCP_COM +#include + OUTPUT F_TABLCP_COM COM + OUTPUT F_DENCOM DENCOM + OUTPUT F_PROVCOM PROVCOM + CHECKTYPE NORMAL + WARNING "Comune assente" +END + +STRING F_DENCOM 50 +BEGIN + PROMPT 19 7 "" + USE LF_COMUNI KEY 2 + INPUT DENCOM F_DENCOM +#include + COPY OUTPUT F_TABLCP_COM + CHECKTYPE NORMAL +END + +STRING F_PROVCOM 5 +BEGIN + PROMPT 73 7 "" + FLAGS "D" +END + +ENDPAGE +ENDMASK diff --git a/at/attbldl.h b/at/attbldl.h new file mode 100755 index 000000000..8671763ce --- /dev/null +++ b/at/attbldl.h @@ -0,0 +1,3 @@ +#define F_TABLDL_CODTAB 100 +#define F_TABLDL_DESCR 101 +#define DLG_DEL 105 diff --git a/at/attbldl.uml b/at/attbldl.uml new file mode 100755 index 000000000..946ba15a7 --- /dev/null +++ b/at/attbldl.uml @@ -0,0 +1,40 @@ +#include "attbldl.h" + +TOOLBAR "" 0 0 0 2 +#include +ENDPAGE + +PAGE "Luoghi di lavoro" -1 -1 78 7 + +STRING F_TABLDL_CODTAB 4 +BEGIN + PROMPT 2 1 "Codice " + FIELD CODTAB + HELP "Inserire il codice del luogo di lavoro" + USE LDL + CHECKTYPE REQUIRED + INPUT CODTAB F_TABLDL_CODTAB + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@40" S0 + OUTPUT F_TABLDL_CODTAB CODTAB + OUTPUT F_TABLDL_DESCR S0 + KEY 1 + FLAGS "U" +END + +STRING F_TABLDL_DESCR 40 +BEGIN + PROMPT 2 3 "Descrizione " + FIELD S0 + HELP "Inserire la descrizione del luogo di lavoro" + USE LDL KEY 2 + CHECKTYPE REQUIRED + INPUT S0 F_TABLDL_DESCR + DISPLAY "Descrizione@40" S0 + DISPLAY "Codice" CODTAB + COPY OUTPUT F_TABLDL_CODTAB + KEY 2 +END + +ENDPAGE +ENDMASK diff --git a/at/attbldn.h b/at/attbldn.h new file mode 100755 index 000000000..0c87cc1f0 --- /dev/null +++ b/at/attbldn.h @@ -0,0 +1,14 @@ +#define F_TABLDN_CODTAB 100 +#define F_TABLDN_DESCR 101 +#define F_TABLDN_INDIR 102 +#define F_TABLDN_LOC 103 +#define F_TABLDN_COM 104 +#define F_TABLDN_DENCOM 105 +#define F_TABLDN_DENLOC 106 +#define F_TABLDN_PROVCOM 107 +#define F_TABLDN_CAPCOM 108 +#define F_TABLDN_TELEFONO 109 +#define F_TABLDN_ORARIO 110 +#define F_TABLDN_NOTE1 111 +#define F_TABLDN_NOTE2 112 +#define DLG_DEL 115 diff --git a/at/attbldn.uml b/at/attbldn.uml new file mode 100755 index 000000000..24aff35f6 --- /dev/null +++ b/at/attbldn.uml @@ -0,0 +1,141 @@ +#include "attbldn.h" + +TOOLBAR "" 0 0 0 2 +#include +ENDPAGE + +PAGE "Punti di prelievo" -1 -1 78 7 + +STRING F_TABLDN_CODTAB 4 +BEGIN + PROMPT 2 1 "Codice " + FIELD CODTAB + KEY 1 + FLAGS "U" + USE LDN + INPUT CODTAB F_TABLDN_CODTAB + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_TABLDN_CODTAB CODTAB + OUTPUT F_TABLDN_DESCR S0 + CHECKTYPE REQUIRED + HELP "Codice del punto di prelievo" +END + +STRING F_TABLDN_DESCR 50 +BEGIN + PROMPT 2 2 "Punto " + FIELD S0 + KEY 2 + USE LDN KEY 2 + INPUT S0 F_TABLDN_DESCR + DISPLAY "Descrizione@50" S0 + DISPLAY "Codice" CODTAB + COPY OUTPUT F_TABLDN_CODTAB + CHECKTYPE REQUIRED + HELP "Denominazione del punto di prelievo" +END + +STRING F_TABLDN_INDIR 50 +BEGIN + PROMPT 2 4 "Indirizzo " + FIELD S1 +END + +STRING F_TABLDN_COM 4 +BEGIN + PROMPT 2 5 "Comune " + FIELD S6 + FLAGS "U" + USE LF_COMUNI + INPUT STATO "" + INPUT COM F_TABLDN_COM + #include + OUTPUT F_TABLDN_COM COM + OUTPUT F_TABLDN_DENCOM DENCOM + OUTPUT F_TABLDN_PROVCOM PROVCOM + OUTPUT F_TABLDN_CAPCOM CAPCOM + CHECKTYPE NORMAL + WARNING "Comune assente" +END + +STRING F_TABLDN_DENCOM 48 +BEGIN + PROMPT 21 5 "" + USE LF_COMUNI KEY 2 + INPUT DENCOM F_TABLDN_DENCOM + #include + COPY OUTPUT F_TABLDN_COM + CHECKTYPE NORMAL +END + +STRING F_TABLDN_LOC 4 +BEGIN + PROMPT 2 6 "Localita' " + FIELD S7 + FLAGS "U" + USE LCP SELECT S7=#F_TABLDN_COM + INPUT CODTAB F_TABLDN_LOC + DISPLAY "Codice" CODTAB + DISPLAY "Localita'@30" S0 + DISPLAY "CAP@5" S6 + OUTPUT F_TABLDN_LOC CODTAB + OUTPUT F_TABLDN_DENLOC S0 + OUTPUT F_TABLDN_CAPCOM S6 + OUTPUT F_TABLDN_COM S7 + CHECKTYPE NORMAL + HELP "Codice localita' postale se diversa dal comune" +END + +STRING F_TABLDN_DENLOC 30 +BEGIN + PROMPT 21 6 "" + USE LCP KEY 2 SELECT S7=#F_TABLDN_COM + INPUT S0 F_TABLDN_DENLOC + DISPLAY "Localita'@30" S0 + DISPLAY "CAP@5" S6 + DISPLAY "Codice" CODTAB + COPY OUTPUT F_TABLDN_LOC + CHECKTYPE NORMAL + HELP "Localita' postale se diversa dal comune" +END + +STRING F_TABLDN_PROVCOM 5 +BEGIN + PROMPT 73 5 "" + FLAGS "D" +END + +STRING F_TABLDN_CAPCOM 5 +BEGIN + PROMPT 69 6 "CAP " + FIELD S8 + //FLAGS "D" +END + +STRING F_TABLDN_TELEFONO 20 +BEGIN + PROMPT 2 8 "Telefono " + FIELD S4 +END + +STRING F_TABLDN_ORARIO 50 +BEGIN + PROMPT 2 9 "Orario " + FIELD S2 +END + +STRING F_TABLDN_NOTE1 35 +BEGIN + PROMPT 2 10 "Note " + FIELD S3[1,35] +END + +STRING F_TABLDN_NOTE2 35 +BEGIN + PROMPT 2 11 " " + FIELD S3[36,70] +END + +ENDPAGE +ENDMASK diff --git a/at/attbmed.h b/at/attbmed.h new file mode 100755 index 000000000..a242cfbd4 --- /dev/null +++ b/at/attbmed.h @@ -0,0 +1,14 @@ +// definizione campi della maschera tabella medici + +#define F_CODMED 101 +#define F_COGNOME 102 +#define F_NOME 103 +#define F_INDIRIZZO 104 +#define F_COM 105 +#define F_DENCOM 106 +#define F_LOCALITA 107 +#define F_DENLOC 108 +#define F_CAPCOM 109 +#define F_PROVCOM 110 +#define F_TELAMB 111 +#define F_TELABI 112 diff --git a/at/attbmed.uml b/at/attbmed.uml new file mode 100755 index 000000000..f3eacb77d --- /dev/null +++ b/at/attbmed.uml @@ -0,0 +1,156 @@ +#include "attbmed.h" + +TOOLBAR "" 0 0 0 2 +#include +ENDPAGE + +PAGE "Medici" -1 -1 78 20 + +GROUPBOX DLG_NULL 77 5 +BEGIN + PROMPT 1 1 "" + FLAGS "R" +END + +NUMBER F_CODMED 6 +BEGIN + PROMPT 2 2 "Cod. medico " + FIELD CODMED + FLAGS "U" + KEY 1 + USE LF_MEDICI + INPUT CODMED F_CODMED + DISPLAY "Codice " CODMED + DISPLAY "Cognome@25" COGNOME + DISPLAY "Nome@25" NOME + OUTPUT F_CODMED CODMED + OUTPUT F_COGNOME COGNOME + OUTPUT F_NOME NOME + CHECKTYPE REQUIRED +END + +STRING F_COGNOME 25 +BEGIN + PROMPT 2 3 "Cognome " + FIELD COGNOME + KEY 2 + USE LF_MEDICI KEY 2 + INPUT COGNOME F_COGNOME + INPUT NOME F_NOME + DISPLAY "Cognome@25" COGNOME + DISPLAY "Nome@25" NOME + DISPLAY "Codice " CODMED + COPY OUTPUT F_CODMED + CHECKTYPE REQUIRED + WARNING "Inserire il cognome del medico" +END + +STRING F_NOME 25 +BEGIN + PROMPT 2 4 "Nome " + FIELD NOME + KEY 2 + COPY ALL F_COGNOME + CHECKTYPE NORMAL +END + +GROUPBOX DLG_NULL 77 5 +BEGIN + PROMPT 1 6 "Indirizzo" +END + +STRING F_INDIRIZZO 50 +BEGIN + PROMPT 2 7 "Indirizzo " + FIELD INDIRIZZO +END + +STRING F_COM 4 +BEGIN + PROMPT 2 8 "Comune " + FIELD COM + FLAGS "U" + USE LF_COMUNI + INPUT STATO "" + INPUT COM F_COM +#include + OUTPUT F_COM COM + OUTPUT F_DENCOM DENCOM + OUTPUT F_PROVCOM PROVCOM + OUTPUT F_CAPCOM CAPCOM + CHECKTYPE NORMAL + WARNING "Comune assente" +END + +STRING F_DENCOM 48 +BEGIN + PROMPT 19 8 "" + USE LF_COMUNI KEY 2 + INPUT DENCOM F_DENCOM +#include + COPY OUTPUT F_COM + CHECKTYPE NORMAL +END + +STRING F_LOCALITA 4 +BEGIN + PROMPT 2 9 "Località " + FIELD LOCALITA + FLAGS "U" + USE LCP SELECT S7=#F_COM + INPUT CODTAB F_LOCALITA + DISPLAY "Codice" CODTAB + DISPLAY "Località@30" S0 + DISPLAY "CAP@5" S6 + OUTPUT F_LOCALITA CODTAB + OUTPUT F_DENLOC S0 + OUTPUT F_CAPCOM S6 + OUTPUT F_COM S7 + CHECKTYPE NORMAL + HELP "Codice localit… postale se diversa dal comune" +END + +STRING F_DENLOC 30 +BEGIN + PROMPT 19 9 "" + USE LCP KEY 2 SELECT S7=#F_COM + INPUT S0 F_DENLOC + DISPLAY "Località@30" S0 + DISPLAY "CAP@5" S6 + DISPLAY "Codice" CODTAB + COPY OUTPUT F_LOCALITA + CHECKTYPE NORMAL + HELP "Localit… postale se diversa dal comune" +END + +STRING F_PROVCOM 5 +BEGIN + PROMPT 71 8 "" + FLAGS "D" +END + +STRING F_CAPCOM 5 +BEGIN + PROMPT 67 9 "CAP " + FLAGS "D" +END + +GROUPBOX DLG_NULL 77 3 +BEGIN + PROMPT 1 11 "Telefoni" +END + +STRING F_TELAMB 15 +BEGIN + PROMPT 2 12 "Ambulatorio " + FIELD TELAMB +END + +STRING F_TELABI 15 +BEGIN + PROMPT 40 12 "Abitazione " + FIELD TELABI +END + +ENDPAGE +ENDMASK diff --git a/at/attbmtc.h b/at/attbmtc.h new file mode 100755 index 000000000..d9e280a09 --- /dev/null +++ b/at/attbmtc.h @@ -0,0 +1,4 @@ +#define F_TABMTC_CODTAB 100 +#define F_TABMTC_DESCR 101 +#define F_TABMTC_SEGNALA 102 +#define DLG_DEL 105 diff --git a/at/attbmtc.uml b/at/attbmtc.uml new file mode 100755 index 000000000..3ba33f36b --- /dev/null +++ b/at/attbmtc.uml @@ -0,0 +1,47 @@ +#include "attbmtc.h" + +TOOLBAR "" 0 0 0 2 +#include +ENDPAGE + +PAGE "Motivi per controlli sanitari" -1 -1 78 7 + +STRING F_TABMTC_CODTAB 4 +BEGIN + PROMPT 2 1 "Codice " + FIELD CODTAB + HELP "Inserire il codice del motivo" + USE MTC + CHECKTYPE REQUIRED + INPUT CODTAB F_TABMTC_CODTAB + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@25" S0 + OUTPUT F_TABMTC_CODTAB CODTAB + OUTPUT F_TABMTC_DESCR S0 + KEY 1 + FLAGS "U" +END + +STRING F_TABMTC_DESCR 25 +BEGIN + PROMPT 2 3 "Descrizione " + FIELD S0 + HELP "Inserire la descrizione del motivo" + USE MTC KEY 2 + CHECKTYPE REQUIRED + INPUT S0 F_TABMTC_DESCR + DISPLAY "Descrizione@25" S0 + DISPLAY "Codice" CODTAB + COPY OUTPUT F_TABMTC_CODTAB + KEY 2 +END + +BOOLEAN F_TABMTC_SEGNALA +BEGIN + PROMPT 2 5 "Segnala la sospensione per questo motivo" + FIELD B0 + HELP "Indicare se occorre segnalare che il soggetto e' sospeso per questo motivo" +END + +ENDPAGE +ENDMASK diff --git a/at/attbpr1.h b/at/attbpr1.h new file mode 100755 index 000000000..c4f1432c3 --- /dev/null +++ b/at/attbpr1.h @@ -0,0 +1,18 @@ +// tabella di conversione CT Rimini- AVIS per stato trasfusionale +#define F_TABPR1_CODTAB 100 +#define F_TABPR1_DESCR 101 +#define F_TABPR1_OPERAZIONE 102 +#define F_TABPR1_TIPOCON 104 +#define F_TABPR1_CATDON 105 +#define F_TABPR1_IDON1 106 +#define F_TABPR1_IDON2 107 +#define F_TABPR1_IDON3 108 +#define F_TABPR1_IDON4 109 +#define F_TABPR1_MOTIVO 110 +#define F_TABPR1_DESC_CATDON 201 +#define F_TABPR1_DESC_TIPOCON 202 +#define F_TABPR1_DESC_IDON1 203 +#define F_TABPR1_DESC_IDON2 204 +#define F_TABPR1_DESC_IDON3 205 +#define F_TABPR1_DESC_IDON4 206 +#define F_TABPR1_DESC_MOTIVO 207 diff --git a/at/attbpr1.uml b/at/attbpr1.uml new file mode 100755 index 000000000..cfb43b4eb --- /dev/null +++ b/at/attbpr1.uml @@ -0,0 +1,202 @@ +#include "attbpr1.h" + +TOOLBAR "" 0 0 0 2 +#include +ENDPAGE + +PAGE "Tabella conversione stato trasfusionale CETRAPLUS" -1 -1 78 18 + +STRING F_TABPR1_CODTAB 3 +BEGIN + PROMPT 2 1 "Codice " + FIELD CODTAB + USE PR1 + CHECKTYPE REQUIRED + INPUT CODTAB F_TABPR1_CODTAB + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@30" S0 + OUTPUT F_TABPR1_CODTAB CODTAB + OUTPUT F_TABPR1_DESCR S0 + KEY 1 + FLAGS "U" + HELP "Inserire il codice dello stato trasfusionale" +END + +STRING F_TABPR1_DESCR 50 +BEGIN + PROMPT 2 3 "Descrizione " + FIELD S0 + USE PR1 KEY 2 + CHECKTYPE REQUIRED + INPUT S0 F_TABPR1_DESCR + DISPLAY "Descrizione@30" S0 + DISPLAY "Codice" CODTAB + COPY OUTPUT F_TABPR1_CODTAB + KEY 2 + HELP "Inserire la descrizione dello stato trasfusionale" +END + +RADIOBUTTON F_TABPR1_OPERAZIONE 35 +BEGIN + PROMPT 2 5 "Operazione " + FIELD I0 + ITEM "0|Sostituire senza segnalazione" + ITEM "1|Sostituire con segnalazione" + ITEM "2|Segnalare" + ITEM "3|Ignorare" +END + +STRING F_TABPR1_CATDON 2 +BEGIN + PROMPT 2 11 "Categoria " + FIELD S6 + FLAGS "U" + USE CTD + INPUT CODTAB F_TABPR1_CATDON + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@30" S0 + OUTPUT F_TABPR1_CATDON CODTAB + OUTPUT F_TABPR1_DESC_CATDON S0 + CHECKTYPE NORMAL + WARNING "Codice non presente" +END + +STRING F_TABPR1_DESC_CATDON 30 +BEGIN + PROMPT 23 11 "" + FLAGS "D" +END + +STRING F_TABPR1_TIPOCON 2 +BEGIN + PROMPT 2 12 "Tipo controllo " + FIELD S7 + FLAGS "U" + USE TCS + INPUT CODTAB F_TABPR1_TIPOCON + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@30" S0 + OUTPUT F_TABPR1_TIPOCON CODTAB + OUTPUT F_TABPR1_DESC_TIPOCON S0 + CHECKTYPE NORMAL + WARNING "Codice non presente" +END + +STRING F_TABPR1_DESC_TIPOCON 30 +BEGIN + PROMPT 23 12 "" + FLAGS "D" +END + +STRING F_TABPR1_IDON1 2 +BEGIN + PROMPT 2 13 "Tipi donazione " + FIELD S8 + FLAGS "U" + USE IDO + INPUT CODTAB F_TABPR1_IDON1 + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@40" S0 + OUTPUT F_TABPR1_IDON1 CODTAB + OUTPUT F_TABPR1_DESC_IDON1 S0 + CHECKTYPE NORMAL + WARNING "Codice idoneita' non presente" + HELP "Idoneita' alla donazione" +END + +STRING F_TABPR1_IDON2 2 +BEGIN + PROMPT 17 14 "" + FIELD S9 + FLAGS "U" + USE IDO + INPUT CODTAB F_TABPR1_IDON2 + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@40" S0 + OUTPUT F_TABPR1_IDON2 CODTAB + OUTPUT F_TABPR1_DESC_IDON2 S0 + CHECKTYPE NORMAL + WARNING "Codice idoneita' non presente" + HELP "Idoneita' alla donazione" +END + +STRING F_TABPR1_IDON3 2 +BEGIN + PROMPT 17 15 "" + FIELD S10 + FLAGS "U" + USE IDO + INPUT CODTAB F_TABPR1_IDON3 + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@40" S0 + OUTPUT F_TABPR1_IDON3 CODTAB + OUTPUT F_TABPR1_DESC_IDON3 S0 + CHECKTYPE NORMAL + WARNING "Codice idoneita' non presente" + HELP "Idoneita' alla donazione" +END + +STRING F_TABPR1_IDON4 2 +BEGIN + PROMPT 17 16 "" + FIELD S11 + FLAGS "U" + USE IDO + INPUT CODTAB F_TABPR1_IDON4 + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@40" S0 + OUTPUT F_TABPR1_IDON4 CODTAB + OUTPUT F_TABPR1_DESC_IDON4 S0 + CHECKTYPE NORMAL + WARNING "Codice idoneita' non presente" + HELP "Idoneita' alla donazione" +END + +STRING F_TABPR1_MOTIVO 4 +BEGIN + PROMPT 2 17 "Motivo " + FIELD S1 + FLAGS "U" + USE MTC + INPUT CODTAB F_TABPR1_MOTIVO + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_TABPR1_MOTIVO CODTAB + OUTPUT F_TABPR1_DESC_MOTIVO S0 + CHECKTYPE NORMAL + WARNING "Codice motivo non presente" + HELP "Motivo del controllo sanitario" +END + +STRING F_TABPR1_DESC_IDON1 25 +BEGIN + PROMPT 23 13 "" + FLAGS "D" +END + +STRING F_TABPR1_DESC_IDON2 25 +BEGIN + PROMPT 23 14 "" + FLAGS "D" +END + +STRING F_TABPR1_DESC_IDON3 25 +BEGIN + PROMPT 23 15 "" + FLAGS "D" +END + +STRING F_TABPR1_DESC_IDON4 25 +BEGIN + PROMPT 23 16 "" + FLAGS "D" +END + +STRING F_TABPR1_DESC_MOTIVO 25 +BEGIN + PROMPT 23 17 "" + FLAGS "D" +END + +ENDPAGE +ENDMASK diff --git a/at/attbpr2.h b/at/attbpr2.h new file mode 100755 index 000000000..7eb54bfc5 --- /dev/null +++ b/at/attbpr2.h @@ -0,0 +1,5 @@ +// tabella di conversione CT Parma- AVIS per tipo donazione +#define F_TABPR2_CODTAB 100 +#define F_TABPR2_DESCR 101 +#define F_TABPR2_TIPODON 102 +#define F_TABPR2_DESC_TIPODON 201 diff --git a/at/attbpr2.uml b/at/attbpr2.uml new file mode 100755 index 000000000..180791709 --- /dev/null +++ b/at/attbpr2.uml @@ -0,0 +1,61 @@ +#include "attbpr2.h" + +TOOLBAR "" 0 0 0 2 +#include +ENDPAGE + +PAGE "Tabella conversione tipi donazione" -1 -1 78 18 + +STRING F_TABPR2_CODTAB 3 +BEGIN + PROMPT 2 1 "Codice " + FIELD CODTAB + USE PR2 + CHECKTYPE REQUIRED + INPUT CODTAB F_TABPR2_CODTAB + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@30" S0 + OUTPUT F_TABPR2_CODTAB CODTAB + OUTPUT F_TABPR2_DESCR S0 + KEY 1 + FLAGS "U" + HELP "Inserire il codice del tipo donazione" +END + +STRING F_TABPR2_DESCR 50 +BEGIN + PROMPT 2 3 "Descrizione " + FIELD S0 + USE PR2 KEY 2 + CHECKTYPE REQUIRED + INPUT S0 F_TABPR2_DESCR + DISPLAY "Descrizione@30" S0 + DISPLAY "Codice" CODTAB + COPY OUTPUT F_TABPR2_CODTAB + KEY 2 + HELP "Inserire la descrizione del tipo donazione" +END + +STRING F_TABPR2_TIPODON 2 +BEGIN + PROMPT 2 5 "Tipo donazione " + FIELD S6 + FLAGS "U" + USE TDN + INPUT CODTAB F_TABPR2_TIPODON + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@30" S0 + OUTPUT F_TABPR2_TIPODON CODTAB + OUTPUT F_TABPR2_DESC_TIPODON S0 + CHECKTYPE NORMAL + WARNING "Codice non presente" +END + +STRING F_TABPR2_DESC_TIPODON 30 +BEGIN + PROMPT 23 5 "" + FLAGS "D" +END + +ENDPAGE +ENDMASK diff --git a/at/attbprf.h b/at/attbprf.h new file mode 100755 index 000000000..b101f7d00 --- /dev/null +++ b/at/attbprf.h @@ -0,0 +1,3 @@ +#define F_TABPRF_CODTAB 100 +#define F_TABPRF_DESCR 101 +#define DLG_DEL 105 diff --git a/at/attbprf.uml b/at/attbprf.uml new file mode 100755 index 000000000..1b179cb4c --- /dev/null +++ b/at/attbprf.uml @@ -0,0 +1,40 @@ +#include "attbprf.h" + +TOOLBAR "" 0 0 0 2 +#include +ENDPAGE + +PAGE "Professioni" -1 -1 78 7 + +STRING F_TABPRF_CODTAB 4 +BEGIN + PROMPT 2 1 "Codice " + FIELD CODTAB + HELP "Inserire il codice della professione" + USE PRF + CHECKTYPE REQUIRED + INPUT CODTAB F_TABPRF_CODTAB + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@40" S0 + OUTPUT F_TABPRF_CODTAB CODTAB + OUTPUT F_TABPRF_DESCR S0 + KEY 1 + FLAGS "U" +END + +STRING F_TABPRF_DESCR 40 +BEGIN + PROMPT 2 3 "Descrizione " + FIELD S0 + HELP "Inserire la descrizione della professione" + USE PRF KEY 2 + CHECKTYPE REQUIRED + INPUT S0 F_TABPRF_DESCR + DISPLAY "Descrizione@40" S0 + DISPLAY "Codice" CODTAB + COPY OUTPUT F_TABPRF_CODTAB + KEY 2 +END + +ENDPAGE +ENDMASK diff --git a/at/attbscs.h b/at/attbscs.h new file mode 100755 index 000000000..8caad6e08 --- /dev/null +++ b/at/attbscs.h @@ -0,0 +1,3 @@ +#define F_TABSCS_CODTAB 100 +#define F_TABSCS_DESCR 101 +#define DLG_DEL 105 diff --git a/at/attbscs.uml b/at/attbscs.uml new file mode 100755 index 000000000..3b2b5deb1 --- /dev/null +++ b/at/attbscs.uml @@ -0,0 +1,40 @@ +#include "attbscs.h" + +TOOLBAR "" 0 0 0 2 +#include +ENDPAGE + +PAGE "Singoli controlli sanitari" -1 -1 78 7 + +STRING F_TABSCS_CODTAB 2 +BEGIN + PROMPT 2 1 "Codice " + FIELD CODTAB + HELP "Inserire il codice del singolo controllo" + USE SCS + CHECKTYPE REQUIRED + INPUT CODTAB F_TABSCS_CODTAB + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@30" S0 + OUTPUT F_TABSCS_CODTAB CODTAB + OUTPUT F_TABSCS_DESCR S0 + KEY 1 + FLAGS "U" +END + +STRING F_TABSCS_DESCR 30 +BEGIN + PROMPT 2 3 "Descrizione " + FIELD S0 + HELP "Inserire la descrizione del singolo controllo" + USE SCS KEY 2 + CHECKTYPE REQUIRED + INPUT S0 F_TABSCS_DESCR + DISPLAY "Descrizione@30" S0 + DISPLAY "Codice" CODTAB + COPY OUTPUT F_TABSCS_CODTAB + KEY 2 +END + +ENDPAGE +ENDMASK diff --git a/at/attbsez.h b/at/attbsez.h new file mode 100755 index 000000000..291d8a789 --- /dev/null +++ b/at/attbsez.h @@ -0,0 +1,47 @@ +// definizione campi della maschera tabella sezioni + +#define F_CODSEZ 101 +#define F_CODSOT 103 +#define F_DENSEZ 102 +#define F_DENSOT 104 +#define F_INDIRIZZO 105 +#define F_COM 106 +#define F_DENCOM 107 +#define F_LOCALITA 108 +#define F_DENLOC 109 +#define F_CAPCOM 110 +#define F_CAPLOC 111 +#define F_PROVCOM 112 +#define F_TELEFONO 113 +#define F_FAX 114 +#define F_REFERCED 115 +#define F_STATO 116 +#define F_INTMINCONV 117 +#define F_INTMIN 118 +#define F_INTMAX 119 +#define F_TIPOCONV 120 +#define F_DATAULTCON 121 +#define F_INTESTAZ1 122 +#define F_INTESTAZ2 123 +#define F_INTESTAZ3 124 +#define F_INTESTAZ4 125 +#define F_CONVORA 126 +#define F_CONVSEDE1 127 +#define F_CONVSEDE2 128 +#define F_CONVSEDE3 129 +#define F_CONVSEDE4 130 +#define F_CONVNOTE 131 +#define F_DONEMER 132 +#define F_INTESTI 133 +#define F_CATEMER 134 +#define F_DESC_CATEMER 135 +#define F_CATESTI 136 +#define F_DESC_CATESTI 137 +#define F_CATCANC 138 +#define F_DESC_CATCANC 139 +#define F_GIOCARSOL 140 +#define F_GIOSOLSOL 141 +#define F_GIOULTSOL 142 +#define F_GIOPERRIT 143 +#define F_NUMMAXSOL 144 +#define F_DENOMINAZ 145 diff --git a/at/attbsez.uml b/at/attbsez.uml new file mode 100755 index 000000000..c16d30f87 --- /dev/null +++ b/at/attbsez.uml @@ -0,0 +1,475 @@ +#include "attbsez.h" + +TOOLBAR "" 0 0 0 2 +#include +ENDPAGE + +PAGE "Sezioni 1" -1 -1 78 20 + +GROUPBOX DLG_NULL 77 4 +BEGIN + PROMPT 1 0 "" + FLAGS "R" +END + +STRING F_CODSEZ 2 +BEGIN + PROMPT 2 1 "Cod. sezione " + FIELD CODSEZ + FLAGS "U" + KEY 1 + USE LF_SEZIONI + INPUT CODSEZ F_CODSEZ + INPUT CODSOT F_CODSOT + DISPLAY "Cod.sez. " CODSEZ + DISPLAY "Cod.sot. " CODSOT + DISPLAY "Sezione@25" DENSEZ + DISPLAY "Sottogruppo@25" DENSOT + OUTPUT F_CODSEZ CODSEZ + OUTPUT F_DENSEZ DENSEZ + OUTPUT F_CODSOT CODSOT + OUTPUT F_DENSOT DENSOT + MESSAGE COPY,1@ + CHECKTYPE REQUIRED +END + +STRING F_CODSOT 2 +BEGIN + PROMPT 2 2 "Cod. sottogruppo " + FIELD CODSOT + FLAGS "U" + KEY 1 + COPY ALL F_CODSEZ + MESSAGE COPY,2@ + CHECKTYPE NORMAL + WARNING "Inserire il codice della sezione" +END + +STRING F_DENSEZ 25 +BEGIN + PROMPT 29 1 "Denominazione sez. " + FIELD DENSEZ + KEY 2 + USE LF_SEZIONI KEY 2 + INPUT DENSEZ F_DENSEZ + INPUT DENSOT F_DENSOT + DISPLAY "Sezione@25" DENSEZ + DISPLAY "Sottogruppo@25" DENSOT + DISPLAY "Cod.sez. " CODSEZ + DISPLAY "Cod.sot. " CODSOT + COPY OUTPUT F_CODSEZ + MESSAGE COPY,3@ + CHECKTYPE REQUIRED + WARNING "Inserire la denominazione della sezione" +END + +STRING F_DENSOT 25 +BEGIN + PROMPT 29 2 "Denominazione sot. " + FIELD DENSOT + KEY 2 + COPY ALL F_DENSEZ + MESSAGE COPY,4@ + CHECKTYPE NORMAL + WARNING "Inserire la denominazione del sottogruppo" +END + +GROUPBOX DLG_NULL 77 8 +BEGIN + PROMPT 1 4 "Dati anagrafici" +END + +STRING F_DENOMINAZ 50 +BEGIN + PROMPT 2 5 "Denominazione " + FIELD DENOMINAZ +END + +STRING F_INDIRIZZO 50 +BEGIN + PROMPT 2 6 "Indirizzo " + FIELD INDIRIZZO +END + +STRING F_COM 4 +BEGIN + PROMPT 2 7 "Comune " + FIELD COM + FLAGS "U" + USE LF_COMUNI + INPUT STATO "" + INPUT COM F_COM +#include + OUTPUT F_COM COM + OUTPUT F_DENCOM DENCOM + OUTPUT F_PROVCOM PROVCOM + OUTPUT F_CAPCOM CAPCOM + CHECKTYPE NORMAL + MESSAGE SHOW,F_CAPCOM|SHOW,F_CAPLOC + WARNING "Comune assente" +END + +STRING F_DENCOM 48 +BEGIN + PROMPT 19 7 "" + USE LF_COMUNI KEY 2 + INPUT DENCOM F_DENCOM +#include + COPY OUTPUT F_COM + CHECKTYPE NORMAL +END + +STRING F_LOCALITA 4 +BEGIN + PROMPT 2 8 "Localita' " + FIELD LOCALITA + FLAGS "U" + USE LCP SELECT S7=#F_COM + INPUT CODTAB F_LOCALITA + DISPLAY "Codice" CODTAB + DISPLAY "Localita'@30" S0 + DISPLAY "CAP@5" S6 + OUTPUT F_LOCALITA CODTAB + OUTPUT F_DENLOC S0 + OUTPUT F_CAPLOC S6 + OUTPUT F_COM S7 + CHECKTYPE NORMAL + MESSAGE EMPTY HIDE,F_CAPLOC|SHOW,F_CAPCOM + HELP "Codice localit… postale se diversa dal comune" +END + +STRING F_DENLOC 30 +BEGIN + PROMPT 19 8 "" + USE LCP KEY 2 SELECT S7=#F_COM + INPUT S0 F_DENLOC + DISPLAY "Località@30" S0 + DISPLAY "CAP@5" S6 + DISPLAY "Codice" CODTAB + COPY OUTPUT F_LOCALITA + CHECKTYPE NORMAL + MESSAGE EMPTY HIDE,F_CAPLOC|SHOW,F_CAPCOM + HELP "Localit… postale se diversa dal comune" +END + + +STRING F_PROVCOM 5 +BEGIN + PROMPT 71 7 "" + FLAGS "D" +END + +STRING F_CAPCOM 5 +BEGIN + PROMPT 67 8 "CAP " + FLAGS "D" +END + +STRING F_CAPLOC 5 +BEGIN + PROMPT 67 8 "CAP " + FLAGS "D" +END + +STRING F_TELEFONO 15 +BEGIN + PROMPT 2 9 "Telefono " + FIELD TELEFONO +END + +STRING F_FAX 15 +BEGIN + PROMPT 32 9 "Fax " + FIELD FAX +END + +STRING F_REFERCED 50 +BEGIN + PROMPT 2 10 "Referente CED " + FIELD REFERCED +END + +RADIOBUTTON F_STATO 13 +BEGIN + PROMPT 1 12 "Stato" + FIELD STATO + ITEM "A|Attiva" + ITEM "E|Estinta" +END + +GROUPBOX DLG_NULL 25 6 +BEGIN + PROMPT 16 12 "Intestazione tessere" +END + +STRING F_INTESTAZ1 20 +BEGIN + PROMPT 17 13 "" + FIELD INTESTAZ1 +END + +STRING F_INTESTAZ2 20 +BEGIN + PROMPT 17 14 "" + FIELD INTESTAZ2 +END + +STRING F_INTESTAZ3 20 +BEGIN + PROMPT 17 15 "" + FIELD INTESTAZ3 +END + +STRING F_INTESTAZ4 20 +BEGIN + PROMPT 17 16 "" + FIELD INTESTAZ4 +END + +GROUPBOX DLG_NULL 35 8 +BEGIN + PROMPT 43 12 "Dati per stampa cartolina" +END + +STRING F_CONVORA 20 +BEGIN + PROMPT 44 13 "Orario " + FIELD CONVORA +END + +STRING F_CONVSEDE1 25 +BEGIN + PROMPT 44 14 "Sede " + FIELD CONVSEDE1 +END + +STRING F_CONVSEDE2 25 +BEGIN + PROMPT 44 15 " " + FIELD CONVSEDE2 +END + +STRING F_CONVSEDE3 25 +BEGIN + PROMPT 44 16 " " + FIELD CONVSEDE3 +END + +STRING F_CONVSEDE4 25 +BEGIN + PROMPT 44 17 " " + FIELD CONVSEDE4 +END + +STRING F_CONVNOTE 25 +BEGIN + PROMPT 44 18 "Note " + FIELD CONVNOTE +END + +ENDPAGE + +PAGE "Sezioni 2" -1 -1 78 20 + +GROUPBOX DLG_NULL 77 4 +BEGIN + PROMPT 1 0 "" + FLAGS "R" +END + +STRING DLG_NULL 2 +BEGIN + PROMPT 2 1 "Cod. sezione " + FLAGS "D" + GROUP 1 +END + +STRING DLG_NULL 2 +BEGIN + PROMPT 2 2 "Cod. sottogruppo " + FLAGS "D" + GROUP 2 +END + +STRING DLG_NULL 25 +BEGIN + PROMPT 29 1 "Denominazione sez. " + FLAGS "D" + GROUP 3 +END + +STRING DLG_NULL 25 +BEGIN + PROMPT 29 2 "Denominazione sot. " + FLAGS "D" + GROUP 4 +END + +GROUPBOX DLG_NULL 35 6 +BEGIN + PROMPT 1 4 "Parametri convoc. per sezione" +END + +NUMBER F_INTMINCONV 4 +BEGIN + PROMPT 2 5 "Int. min. convoc. " + FIELD INTMINCONV + HELP "Intervallo minimo di convocazione in giorni (dall'ultima don.)" +END + +NUMBER F_INTMIN 4 +BEGIN + PROMPT 2 6 "Int. avvisi: min. " + FIELD INTMIN +END + +NUMBER F_INTMAX 4 +BEGIN + PROMPT 2 7 " max. " + FIELD INTMAX +END + +LISTBOX F_TIPOCONV 11 +BEGIN + PROMPT 2 8 "Tipo convocazione " + FIELD TIPOCONV + ITEM "D|Data fissa" + ITEM "G|dal Giorno" +END + +GROUPBOX DLG_NULL 35 7 +BEGIN + PROMPT 1 10 "Parametri convoc. su punto prelievo" +END + +NUMBER F_GIOCARSOL 3 +BEGIN + PROMPT 2 11 "Gio. tra cart. e soll. " + FIELD GIOCARSOL + HELP "Intervallo in giorni tra cartolina e primo sollecito" +END + +NUMBER F_GIOSOLSOL 3 +BEGIN + PROMPT 2 12 "Gio. tra soll. e soll. " + FIELD GIOSOLSOL + HELP "Intervallo in giorni tra solleciti" +END + +NUMBER F_GIOULTSOL 3 +BEGIN + PROMPT 2 13 "Gio. tra penult. e ult. soll. " + FIELD GIOULTSOL + HELP "Intervallo tra penultimo e ultimo sollecito" +END + +NUMBER F_GIOPERRIT 3 +BEGIN + PROMPT 2 14 "Gio. tra chiamate per ritard. " + FIELD GIOPERRIT + HELP "Giorni tra le chiamate per ritardatari" +END + +NUMBER F_NUMMAXSOL 2 +BEGIN + PROMPT 2 15 "Num. max di solleciti " + FIELD NUMMAXSOL + HELP "Numero massimo di solleciti inviabili per soggetto" +END + +DATE F_DATAULTCON +BEGIN + PROMPT 2 17 "Data ultima conv. " + FIELD DATAULTCON + //FLAGS "D" +END + +GROUPBOX DLG_NULL 41 8 +BEGIN + PROMPT 37 4 "Parametri per chiusura periodica" +END + +NUMBER F_DONEMER 3 +BEGIN + PROMPT 38 5 "Donazioni per passaggio a emeriti " + FIELD DONEMER + FLAGS "U" +END + +NUMBER F_INTESTI 2 +BEGIN + PROMPT 38 6 "Intervallo di estinzione in anni " + FIELD INTESTI + FLAGS "U" +END + +TEXT DLG_NULL +BEGIN + PROMPT 38 7 "Categorie:" +END + +STRING F_CATEMER 2 +BEGIN + PROMPT 39 8 "emeriti " + FIELD CATEMER + FLAGS "U" + USE CTD + INPUT CODTAB F_CATEMER + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@30" S0 + OUTPUT F_CATEMER CODTAB + OUTPUT F_DESC_CATEMER S0 + CHECKTYPE NORMAL + WARNING "Codice non presente" +END + +STRING F_DESC_CATEMER 30 20 +BEGIN + PROMPT 56 8 "" + FLAGS "D" +END + +STRING F_CATESTI 2 +BEGIN + PROMPT 39 9 "estinti " + FIELD CATESTI + FLAGS "U" + USE CTD + INPUT CODTAB F_CATESTI + COPY DISPLAY F_CATEMER + OUTPUT F_CATESTI CODTAB + OUTPUT F_DESC_CATESTI S0 + CHECKTYPE NORMAL + WARNING "Codice non presente" +END + +STRING F_DESC_CATESTI 30 20 +BEGIN + PROMPT 56 9 "" + FLAGS "D" +END + +STRING F_CATCANC 2 +BEGIN + PROMPT 39 10 "cancellati " + FIELD CATCANC + FLAGS "U" + USE CTD + INPUT CODTAB F_CATCANC + COPY DISPLAY F_CATEMER + OUTPUT F_CATCANC CODTAB + OUTPUT F_DESC_CATCANC S0 + CHECKTYPE NORMAL + WARNING "Codice non presente" +END + +STRING F_DESC_CATCANC 30 20 +BEGIN + PROMPT 56 10 "" + FLAGS "D" +END + + +ENDPAGE + +ENDMASK diff --git a/at/attbtcs.h b/at/attbtcs.h new file mode 100755 index 000000000..94d17305f --- /dev/null +++ b/at/attbtcs.h @@ -0,0 +1,8 @@ +// tabella tipi/esiti controlli sanitari +#define F_TABTCS_CODTAB 100 +#define F_TABTCS_DESCR 101 +#define F_TABTCS_CATCOLL 102 +#define F_TABTCS_MODSTATO 103 +#define F_TABTCS_STATO 104 +#define F_DESCR_CATCOLL 105 +#define DLG_DEL 106 diff --git a/at/attbtcs.uml b/at/attbtcs.uml new file mode 100755 index 000000000..aeb35dccf --- /dev/null +++ b/at/attbtcs.uml @@ -0,0 +1,85 @@ +#include "attbtcs.h" + +TOOLBAR "" 0 0 0 2 +#include +ENDPAGE + +PAGE "Tipi/Esiti controlli sanitari" -1 -1 78 18 + +STRING F_TABTCS_CODTAB 2 +BEGIN + PROMPT 2 1 "Codice " + FIELD CODTAB + USE TCS + CHECKTYPE REQUIRED + INPUT CODTAB F_TABTCS_CODTAB + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@30" S0 + OUTPUT F_TABTCS_CODTAB CODTAB + OUTPUT F_TABTCS_DESCR S0 + KEY 1 + FLAGS "U" + HELP "Inserire il codice del controllo sanitario" +END + +STRING F_TABTCS_DESCR 30 +BEGIN + PROMPT 2 3 "Descrizione " + FIELD S0 + USE TCS KEY 2 + CHECKTYPE REQUIRED + INPUT S0 F_TABTCS_DESCR + DISPLAY "Descrizione@30" S0 + DISPLAY "Codice" CODTAB + COPY OUTPUT F_TABTCS_CODTAB + KEY 2 + HELP "Inserire la descrizione del controllo" +END + +STRING F_TABTCS_CATCOLL 2 +BEGIN + PROMPT 2 5 "Cat.collegata " + FIELD S7 + FLAGS "U" + USE CTD + INPUT CODTAB F_TABTCS_CATCOLL + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@30" S0 + OUTPUT F_TABTCS_CATCOLL CODTAB + OUTPUT F_DESCR_CATCOLL S0 + CHECKTYPE NORMAL + WARNING "Codice non presente" +END + +STRING F_DESCR_CATCOLL 30 +BEGIN + PROMPT 23 5 "" + FLAGS "D" +END + +RADIOBUTTON F_TABTCS_MODSTATO 35 +BEGIN + PROMPT 2 7 "Modifica stato" + FIELD S6 + ITEM "N|Non modifica" + MESSAGE CLEAR, F_TABTCS_STATO + MESSAGE DISABLE, F_TABTCS_STATO + ITEM "I|Idoneita'" + MESSAGE ENABLE, F_TABTCS_STATO + ITEM "S|Sospensione" + MESSAGE ENABLE, F_TABTCS_STATO + ITEM "B|Blocco (sosp. senza id. auto)" + MESSAGE ENABLE, F_TABTCS_STATO + ITEM "F|Fine sospensione" + MESSAGE ENABLE, F_TABTCS_STATO + HELP "Indicare se il controllo modifica lo stato e in che modo" +END + +STRING F_TABTCS_STATO 20 +BEGIN + PROMPT 40 8 "Stato " + FIELD S3 +END + +ENDPAGE +ENDMASK diff --git a/at/attbtdn.h b/at/attbtdn.h new file mode 100755 index 000000000..c3b97c5b7 --- /dev/null +++ b/at/attbtdn.h @@ -0,0 +1,8 @@ +#define F_TABTDN_CODTAB 100 +#define F_TABTDN_DESCR 101 +#define F_TABTDN_PROCDON 102 +#define F_TABTDN_IDON1 103 +#define F_DESC_I1 104 +#define F_TABTDN_IDON2 105 +#define F_DESC_I2 106 +#define DLG_DEL 107 diff --git a/at/attbtdn.uml b/at/attbtdn.uml new file mode 100755 index 000000000..d01cd2973 --- /dev/null +++ b/at/attbtdn.uml @@ -0,0 +1,88 @@ +#include "attbtdn.h" + +TOOLBAR "" 0 0 0 2 +#include +ENDPAGE + +PAGE "Tipi di donazione" -1 -1 78 7 + +STRING F_TABTDN_CODTAB 2 +BEGIN + PROMPT 2 1 "Codice " + FIELD CODTAB + HELP "Inserire il codice del tipo di donazione" + USE TDN + CHECKTYPE REQUIRED + INPUT CODTAB F_TABTDN_CODTAB + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@30" S0 + OUTPUT F_TABTDN_CODTAB CODTAB + OUTPUT F_TABTDN_DESCR S0 + KEY 1 + FLAGS "U" +END + +STRING F_TABTDN_DESCR 30 +BEGIN + PROMPT 2 3 "Descrizione " + FIELD S0 + HELP "Inserire la descrizione del tipo di donazione" + USE TDN KEY 2 + CHECKTYPE REQUIRED + INPUT S0 F_TABTDN_DESCR + DISPLAY "Descrizione@30" S0 + DISPLAY "Codice" CODTAB + COPY OUTPUT F_TABTDN_CODTAB + KEY 2 +END + +LISTBOX F_TABTDN_PROCDON 17 +BEGIN + PROMPT 2 5 "Procedura di donazione " + FIELD S6 +#include "procdon.h" + HELP "Indicare la procedura di donazione" +END + +STRING F_TABTDN_IDON1 2 +BEGIN + PROMPT 2 7 "Idoneità necessarie: 1 " + FIELD S7 + USE IDO SELECT S6==#F_TABTDN_PROCDON + INPUT CODTAB F_TABTDN_IDON1 + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@30" S0 + OUTPUT F_TABTDN_IDON1 CODTAB + OUTPUT F_DESC_I1 S0 + CHECKTYPE REQUIRED + FLAGS "U" +END + +STRING F_DESC_I1 30 +BEGIN + PROMPT 31 7 "" + FLAGS "D" +END + +STRING F_TABTDN_IDON2 2 +BEGIN + PROMPT 2 9 " 2 " + FIELD S8 + USE IDO SELECT S6==#F_TABTDN_PROCDON + INPUT CODTAB F_TABTDN_IDON2 + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@30" S0 + OUTPUT F_TABTDN_IDON2 CODTAB + OUTPUT F_DESC_I2 S0 + CHECKTYPE NORMAL + FLAGS "U" +END + +STRING F_DESC_I2 30 +BEGIN + PROMPT 31 9 "" + FLAGS "D" +END + +ENDPAGE +ENDMASK diff --git a/at/f97.dir b/at/f97.dir new file mode 100755 index 000000000..2259c1112 --- /dev/null +++ b/at/f97.dir @@ -0,0 +1,3 @@ +97 +1 +%medici|0|0|145|0|Medici di base AVIS|||