diff --git a/at/at0700.cpp b/at/at0700.cpp index f664b0348..1ed870a6c 100755 --- a/at/at0700.cpp +++ b/at/at0700.cpp @@ -18,6 +18,7 @@ // nomi dei campi #include "soggetti.h" #include "contsan.h" +#include "idoneita.h" #include "sezioni.h" class TSbloccoSospesi : public TPrintapp @@ -25,7 +26,9 @@ class TSbloccoSospesi : public TPrintapp TMask* _msk; TRelation* _rel; TLocalisamfile* _contsan; + TLocalisamfile* _idoneita; TRecord_array* _scontrolli; + TRecord_array* _sidoneita; int _cur; int _contatore, _totale; TDate _data_sblocco; // data scadenza sospensione fino a _data_sblocco @@ -141,22 +144,63 @@ bool TSbloccoSospesi::preprocess_page(int file, int counter) _operazione = operazione; if (_definitiva) { - TRectype* key = new TRectype(LF_CONTSAN); - long codice = recsog.get_long(SOG_CODICE); - key->put(CON_CODICE, codice); - int err = _scontrolli->read(key); - int progcon = _scontrolli->rows()+1; - TRectype& reccon = _contsan->curr(); - reccon.zero(); - reccon.put(CON_CODICE, codice); - reccon.put(CON_PROGCON, progcon); - reccon.put(CON_DATACON, _data_stampa); - reccon.put(CON_TIPOCON, FINE_SOSPENSIONE); - _scontrolli->add_row(reccon); - _scontrolli->rewrite(); - con_reord(recsog, _scontrolli); - current_cursor()->file().rewrite(); - } + if (stato == "SO" && datafine.ok() && datafine <= app()._data_sblocco) + { + TRectype* key = new TRectype(LF_CONTSAN); + long codice = recsog.get_long(SOG_CODICE); + key->put(CON_CODICE, codice); + int err = _scontrolli->read(key); + int progcon = _scontrolli->rows()+1; + TRectype& reccon = _contsan->curr(); + reccon.zero(); + reccon.put(CON_CODICE, codice); + reccon.put(CON_PROGCON, progcon); + reccon.put(CON_DATACON, _data_stampa); + reccon.put(CON_TIPOCON, FINE_SOSPENSIONE); + _scontrolli->add_row(reccon); + _scontrolli->rewrite(); + con_reord(recsog, _scontrolli); + current_cursor()->file().rewrite(); + } + if ((statosi == "SO" && datafinesi.ok() && datafinesi <= app()._data_sblocco) || (statoaf == "SO" && datafineaf.ok() && datafineaf <= app()._data_sblocco)) + { + TRectype* key = new TRectype(LF_IDONEITA); + long codice = recsog.get_long(SOG_CODICE); + key->put(IDO_CODICE, codice); + if (statosi == "SO" && datafinesi.ok() && datafinesi <= app()._data_sblocco) + { + int err = _sidoneita->read(key); + int progido = _sidoneita->rows()+1; + TRectype& recido = _idoneita->curr(); + recido.zero(); + recido.put(IDO_CODICE, codice); + recido.put(IDO_PROGIDO, progido); + recido.put(IDO_DATAIDO, _data_stampa); + recido.put(IDO_IDO_SOS, "ID"); + recido.put(IDO_TIPOIDO, "SI"); + recido.put(IDO_INTERVALLO, recsog.get(SOG_INTSI)); + _sidoneita->add_row(recido); + _sidoneita->rewrite(); + } + if (statoaf == "SO" && datafineaf.ok() && datafineaf <= app()._data_sblocco) + { + int err = _sidoneita->read(key); + int progido = _sidoneita->rows()+1; + TRectype& recido = _idoneita->curr(); + recido.zero(); + recido.put(IDO_CODICE, codice); + recido.put(IDO_PROGIDO, progido); + recido.put(IDO_DATAIDO, _data_stampa); + recido.put(IDO_IDO_SOS, "ID"); + recido.put(IDO_TIPOIDO, "AF"); + recido.put(IDO_INTERVALLO, recsog.get(SOG_INTAF)); + _sidoneita->add_row(recido); + _sidoneita->rewrite(); + } + ido_reord(recsog, _sidoneita); + current_cursor()->file().rewrite(); + } + } // salto pagina se cambio sezione const TString16 codsez = recsog.get(SOG_CODSEZ); const TString16 codsot = recsog.get(SOG_CODSOT); @@ -326,7 +370,9 @@ bool TSbloccoSospesi::user_create() //cursore ordinamento per sezione+sottogruppo+cognome+nome _cur = add_cursor(new TCursor(_rel, "", 3)); _contsan = new TLocalisamfile(LF_CONTSAN); + _idoneita = new TLocalisamfile(LF_IDONEITA); _scontrolli = new TRecord_array(LF_CONTSAN, CON_PROGCON); + _sidoneita = new TRecord_array(LF_IDONEITA, IDO_PROGIDO); return TRUE; } @@ -335,7 +381,9 @@ bool TSbloccoSospesi::user_destroy() delete _rel; delete _msk; delete _contsan; + delete _idoneita; delete _scontrolli; + delete _sidoneita; return TRUE; } diff --git a/at/atlib.h b/at/atlib.h index b7bf929fa..f47bb270e 100755 --- a/at/atlib.h +++ b/at/atlib.h @@ -6,4 +6,5 @@ bool is_idon(TString16 id1, TString16 id2, TString16 id3, TString16 id4, const c bool is_donaz(TString16 don, const char* tipo); char modstato_tcs(TString16 tipo); void con_reord(TRectype& soggetto, TRecord_array* controlli); +void ido_reord(TRectype& soggetto, TRecord_array* idoneita); void don_datepross(TRectype& soggetto); diff --git a/at/atlib1.cpp b/at/atlib1.cpp index 3a277f571..2d8469dff 100755 --- a/at/atlib1.cpp +++ b/at/atlib1.cpp @@ -4,7 +4,13 @@ #include "soggetti.h" #include "contsan.h" +#include "idoneita.h" +#define IDON_SI "SI" +#define IDON_AF "AF" +#define IDONEITA "ID" +#define SOSPENSIONE "SO" + bool is_idon_one(TString16 idon, const char* tipo) // verifica che l'idoneità "idon" sia del tipo "tipo" // esempio: se passo PL, AF restituisce TRUE @@ -127,8 +133,12 @@ void con_reord(TRectype& soggetto, TRecord_array* controlli) soggetto.put(SOG_IDON2,id2); soggetto.put(SOG_IDON3,id3); soggetto.put(SOG_IDON4,id4); - soggetto.put(SOG_INTSI,intsi); - soggetto.put(SOG_INTAF,intaf); + const int intsisog = soggetto.get_int(SOG_INTSI); + if (intsi > 0 || intsisog == 0) + soggetto.put(SOG_INTSI,intsi); + const int intafsog = soggetto.get_int(SOG_INTAF); + if (intaf > 0 || intafsog == 0) + soggetto.put(SOG_INTAF,intaf); tipo = ' '; if (r_ultstato != -1) @@ -166,6 +176,80 @@ void con_reord(TRectype& soggetto, TRecord_array* controlli) } } +void ido_reord(TRectype& soggetto, TRecord_array* idoneita) +{ + TDate dataido, finesos; + TString16 tipoido, ido_sos; + int intervallo; + bool fattoSI = FALSE; + bool fattoAF = FALSE; + TString16 id1 = soggetto.get(SOG_IDON1); + TString16 id2 = soggetto.get(SOG_IDON2); + TString16 id3 = soggetto.get(SOG_IDON3); + TString16 id4 = soggetto.get(SOG_IDON4); + const TDate datastato = soggetto.get_date(SOG_DATASTATO); + for (int r=idoneita->rows(); r>=1; r--) + { + const TRectype& row = idoneita->row(r); + dataido = row.get_date(IDO_DATAIDO); + if (dataido >= datastato) + { + tipoido = row.get(IDO_TIPOIDO); + ido_sos = row.get(IDO_IDO_SOS); + intervallo = row.get_int(IDO_INTERVALLO); + finesos = row.get_date(IDO_FINESOS); + if (tipoido == IDON_SI && !fattoSI) + { + fattoSI = TRUE; + soggetto.put(SOG_DATASI,dataido); + soggetto.put(SOG_STATOSI,ido_sos); + soggetto.put(SOG_FINESOSSI,finesos); + if (intervallo != 0 && ido_sos == IDONEITA) + soggetto.put(SOG_INTSI,intervallo); + // sistemare le idoneita idon1,2,3,4 + } + if (tipoido == IDON_AF && !fattoAF) + { + fattoAF = TRUE; + soggetto.put(SOG_DATAAF,dataido); + soggetto.put(SOG_STATOAF,ido_sos); + soggetto.put(SOG_FINESOSAF,finesos); + if (intervallo != 0 && ido_sos == IDONEITA) + soggetto.put(SOG_INTAF,intervallo); + // sistemare le idoneita idon1,2,3,4 + } + } + } + if (fattoSI || fattoAF) + { + TDate datastato = soggetto.get_date(SOG_DATASTATO); + TDate datastatosi = soggetto.get_date(SOG_DATASI); + TDate datastatoaf = soggetto.get_date(SOG_DATAAF); + if (datastato < datastatosi || datastato < datastatoaf) + { + TString16 stato = soggetto.get(SOG_STATO); + TString16 statosi = soggetto.get(SOG_STATOSI); + TString16 statoaf = soggetto.get(SOG_STATOAF); + if (statosi == SOSPENSIONE && statoaf == SOSPENSIONE) + stato = SOSPENSIONE; + else + stato = IDONEITA; + soggetto.put(SOG_STATO,stato); + don_datepross(soggetto); + } + } + else + { + soggetto.put(SOG_STATOSI," "); + soggetto.put(SOG_DATASI,NULLDATE); + soggetto.put(SOG_FINESOSSI,NULLDATE); + soggetto.put(SOG_STATOAF," "); + soggetto.put(SOG_DATAAF,NULLDATE); + soggetto.put(SOG_FINESOSAF,NULLDATE); + don_datepross(soggetto); + } +} + void don_datepross(TRectype& soggetto) // calcola le date di prossima donazione in base a: donazioni, stato attuale, idoneità { diff --git a/at/batbmed.h b/at/batbmed.h new file mode 100755 index 000000000..a242cfbd4 --- /dev/null +++ b/at/batbmed.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/batbmed.uml b/at/batbmed.uml new file mode 100755 index 000000000..649baffbd --- /dev/null +++ b/at/batbmed.uml @@ -0,0 +1,156 @@ +#include "batbmed.h" + +TOOLBAR "" 0 20 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/batbsez.h b/at/batbsez.h new file mode 100755 index 000000000..13333cb29 --- /dev/null +++ b/at/batbsez.h @@ -0,0 +1,46 @@ +// 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 diff --git a/at/batbsez.uml b/at/batbsez.uml new file mode 100755 index 000000000..371ed1c18 --- /dev/null +++ b/at/batbsez.uml @@ -0,0 +1,469 @@ +#include "batbsez.h" + +TOOLBAR "" 0 20 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 7 +BEGIN + PROMPT 1 4 "Dati anagrafici" +END + +STRING F_INDIRIZZO 50 +BEGIN + PROMPT 2 5 "Indirizzo " + FIELD INDIRIZZO +END + +STRING F_COM 4 +BEGIN + PROMPT 2 6 "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 6 "" + USE LF_COMUNI KEY 2 + INPUT DENCOM F_DENCOM +#include + COPY OUTPUT F_COM + CHECKTYPE NORMAL +END + +STRING F_LOCALITA 4 +BEGIN + PROMPT 2 7 "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 7 "" + 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 6 "" + FLAGS "D" +END + +STRING F_CAPCOM 5 +BEGIN + PROMPT 67 7 "CAP " + FLAGS "D" +END + +STRING F_CAPLOC 5 +BEGIN + PROMPT 67 7 "CAP " + FLAGS "D" +END + +STRING F_TELEFONO 15 +BEGIN + PROMPT 2 8 "Telefono " + FIELD TELEFONO +END + +STRING F_FAX 15 +BEGIN + PROMPT 32 8 "Fax " + FIELD FAX +END + +STRING F_REFERCED 50 +BEGIN + PROMPT 2 9 "Referente CED " + FIELD REFERCED +END + +RADIOBUTTON F_STATO 13 +BEGIN + PROMPT 1 11 "Stato" + FIELD STATO + ITEM "A|Attiva" + ITEM "E|Estinta" +END + +GROUPBOX DLG_NULL 25 6 +BEGIN + PROMPT 16 11 "Intestazione tessere" +END + +STRING F_INTESTAZ1 20 +BEGIN + PROMPT 17 12 "" + FIELD INTESTAZ1 +END + +STRING F_INTESTAZ2 20 +BEGIN + PROMPT 17 13 "" + FIELD INTESTAZ2 +END + +STRING F_INTESTAZ3 20 +BEGIN + PROMPT 17 14 "" + FIELD INTESTAZ3 +END + +STRING F_INTESTAZ4 20 +BEGIN + PROMPT 17 15 "" + FIELD INTESTAZ4 +END + +GROUPBOX DLG_NULL 35 8 +BEGIN + PROMPT 43 11 "Dati per stampa cartolina" +END + +STRING F_CONVORA 20 +BEGIN + PROMPT 44 12 "Orario " + FIELD CONVORA +END + +STRING F_CONVSEDE1 25 +BEGIN + PROMPT 44 13 "Sede " + FIELD CONVSEDE1 +END + +STRING F_CONVSEDE2 25 +BEGIN + PROMPT 44 14 " " + FIELD CONVSEDE2 +END + +STRING F_CONVSEDE3 25 +BEGIN + PROMPT 44 15 " " + FIELD CONVSEDE3 +END + +STRING F_CONVSEDE4 25 +BEGIN + PROMPT 44 16 " " + FIELD CONVSEDE4 +END + +STRING F_CONVNOTE 25 +BEGIN + PROMPT 44 17 "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 7 +BEGIN + PROMPT 1 4 "Parametri convocazione" +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 + +DATE F_DATAULTCON +BEGIN + PROMPT 2 9 "Data ultima conv. " + FIELD DATAULTCON + FLAGS "D" +END + +GROUPBOX DLG_NULL 35 7 +BEGIN + PROMPT 1 11 "Parametri convocazione BO" +END + +NUMBER F_GIOCARSOL 3 +BEGIN + PROMPT 2 12 "Gio. tra cart. e soll. " + FIELD GIOCARSOL + HELP "Intervallo in giorni tra cartolina e primo sollecito" +END + +NUMBER F_GIOSOLSOL 3 +BEGIN + PROMPT 2 13 "Gio. tra soll. e soll. " + FIELD GIOSOLSOL + HELP "Intervallo in giorni tra solleciti" +END + +NUMBER F_GIOULTSOL 3 +BEGIN + PROMPT 2 14 "Gio. tra penult. e ult. soll. " + FIELD GIOULTSOL + HELP "Intervallo tra penultimo e ultimo sollecito" +END + +NUMBER F_GIOPERRIT 3 +BEGIN + PROMPT 2 15 "Gio. tra chiamate per ritard. " + FIELD GIOPERRIT + HELP "Giorni tra le chiamate per ritardatari" +END + +NUMBER F_NUMMAXSOL 2 +BEGIN + PROMPT 2 16 "Num. max di solleciti " + FIELD NUMMAXSOL + HELP "Numero massimo di solleciti inviabili per soggetto" +END + +GROUPBOX DLG_NULL 41 8 +BEGIN + PROMPT 37 4 "Parametri per chiusura fine anno" +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 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 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 20 +BEGIN + PROMPT 56 10 "" + FLAGS "D" +END + + +ENDPAGE + +ENDMASK diff --git a/at/idoneita.h b/at/idoneita.h new file mode 100755 index 000000000..b84ef92b7 --- /dev/null +++ b/at/idoneita.h @@ -0,0 +1,11 @@ +// definizione campi dell'archivio IDONEITA + +#define IDO_CODICE "CODICE" +#define IDO_PROGIDO "PROGIDO" +#define IDO_DATAIDO "DATAIDO" +#define IDO_TIPOIDO "TIPOIDO" +#define IDO_IDO_SOS "IDO_SOS" +#define IDO_INTERVALLO "INTERVALLO" +#define IDO_FINESOS "FINESOS" +#define IDO_MOTIVO "MOTIVO" +#define IDO_RESPONSAB "RESPONSAB"