From 76185dee2ae2bd9fbac0da0f9b5c502a72355481 Mon Sep 17 00:00:00 2001 From: luciano Date: Mon, 13 Jan 1997 08:52:09 +0000 Subject: [PATCH] Continuano gli aggiustamenti per i videi veloci git-svn-id: svn://10.65.10.50/trunk@4063 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- m770/771230.cpp | 8 +- m770/771230a.uml | 17 +- m770/771230b.uml | 62 +- m770/771230e.uml | 25 +- m770/771230f.uml | 7 +- m770/771230g.uml | 23 +- m770/771230h.uml | 7 +- m770/771230i.uml | 31 +- m770/771230l.uml | 9 +- m770/771231.cpp | 71 +- m770/771231a.h | 37 +- m770/771231a.uml | 15 +- m770/771232.cpp | 17 +- m770/771232a.uml | 9 +- m770/771233a.uml | 9 +- m770/771233b.uml | 8 +- m770/771234a.uml | 143 ++-- m770/771290.cpp | 13 +- m770/771290a.uml | 35 +- m770/771295a.uml | 44 +- m770/776600.cpp | 432 +++++------ m770/77g1.cpp | 6 +- m770/77g1a.uml | 11 +- m770/77lib01.cpp | 1748 ++++++++++++++++++++++----------------------- m770/77qb.h | 138 ++-- m770/77qb1.h | 54 +- m770/77qb1a.uml | 250 +++---- m770/77qb1b.uml | 424 +++++------ m770/77qba.uml | 252 +++---- m770/77qbb.uml | 1422 ++++++++++++++++++------------------ m770/77qe2a.uml | 27 +- m770/77qe2b.uml | 35 +- m770/77qgda.uml | 27 +- m770/quadb_b1.cpp | 1252 ++++++++++++++++---------------- 34 files changed, 3337 insertions(+), 3331 deletions(-) diff --git a/m770/771230.cpp b/m770/771230.cpp index a93a00b47..f5c2eec84 100755 --- a/m770/771230.cpp +++ b/m770/771230.cpp @@ -105,10 +105,10 @@ TQuadroC_E2::TQuadroC_E2(char tipo): _rel(NULL), _mode(0), _tipoq(tipo) bool TQuadroC_E2::changing_mask(int mode) { - if (mode == MODE_QUERY) - return _mode != MODE_QUERY; - else - return TRUE; + if ((mode == MODE_MOD) && (_mode == MODE_INS)) + return FALSE; + else + return _mode != mode; } TMask* TQuadroC_E2::get_mask(int mode) diff --git a/m770/771230a.uml b/m770/771230a.uml index d1c7bd497..0f70f6580 100755 --- a/m770/771230a.uml +++ b/m770/771230a.uml @@ -11,7 +11,7 @@ END ENDPAGE -PAGE "MODULO 770 - QUADRO D" -1 -1 78 18 +PAGE "Quadro D" -1 -1 78 18 GROUPBOX DLG_NULL 78 3 BEGIN @@ -38,7 +38,7 @@ END NUMBER F_ANNODIC 4 BEGIN - PROMPT 52 4 "Anno dichiarazione " + PROMPT 52 3 "Anno dichiarazione " FLAGS "DR" END @@ -55,7 +55,6 @@ BEGIN ITEM "G|Giuridica" MESSAGE COPY,F_TIPOAF FIELD LF_QUAD->TIPOA - CHECKTYPE REQUIRED KEY 1 END @@ -78,7 +77,7 @@ END NUMBER F_CODANAGRPERC 5 BEGIN - PROMPT 15 8 "" + PROMPT 16 8 "" USE LF_PERC KEY 1 SELECT ((CODDITTA=#F_CODDITTA)&&(TIPOA=#F_TIPOA)) JOIN LF_ANAG TO LF_PERC KEY 1 INTO TIPOA=TIPOA CODANAGR=CODANAGR INPUT CODDITTA F_CODDITTA @@ -98,7 +97,7 @@ END NUMBER F_CODANAGRCOM 5 BEGIN - PROMPT 15 8 "" + PROMPT 16 8 "" USE LF_ANAG KEY 1 SELECT (TIPOA=#F_TIPOA) INPUT TIPOA F_TIPOA INPUT CODANAGR F_CODANAGRCOM @@ -153,16 +152,14 @@ BEGIN CHECKTYPE REQUIRED KEY 1 FIELD LF_QUAD->NPROG - USE LF_QUAD - JOIN LF_ANAG TO LF_QUAD KEY 1 INTO TIPOA=TIPOA CODANAGR=CODANAGR + USE LF_QUAD INPUT CODDITTA F_CODDITTA SELECT - INPUT TIPOA F_TIPOA SELECT - INPUT CODANAGR F_CODANAGR SELECT + INPUT TIPOA F_TIPOA + INPUT CODANAGR F_CODANAGR INPUT NPROG F_NPROG DISPLAY "N°" NPROG DISPLAY "Tipo" TIPOA DISPLAY "Codice@10" CODANAGR - //DISPLAY "Ragione@50" LF_ANAG->RAGSOC DISPLAY "Causale" CODCAUS DISPLAY "Totale@15" TOTALE DISPLAY "Somme n/sogg rit" SOMME diff --git a/m770/771230b.uml b/m770/771230b.uml index 4f4ee0a10..bd3af7e97 100755 --- a/m770/771230b.uml +++ b/m770/771230b.uml @@ -3,21 +3,19 @@ TOOLBAR "" 0 19 0 3 #include ENDPAGE -// Lista modifiche: -// 22.5.96 Output di S2 (causale D) invece di S0 (descrizione) - PAGE "Quadro D" -1 -1 78 18 NUMBER F_CODDITTA 5 -BEGIN - FLAGS "H" +BEGIN + PROMPT 80 80 "" + FLAGS "D" FIELD LF_QUAD->CODDITTA KEY 1 END LIST F_TIPOA 1 12 BEGIN - PROMPT 3 0 "" + PROMPT 2 0 "" FIELD LF_QUAD->TIPOA ITEM "F|Fisica" ITEM "G|Giuridica" @@ -29,9 +27,7 @@ LIST F_TIPOAF 1 12 BEGIN PROMPT 3 1 "" ITEM "F|Fisica" - MESSAGE SHOW,F_IC ITEM "G|Giuridica" - MESSAGE HIDE,F_IC|RESET,F_IC FLAGS "HG" END @@ -97,26 +93,42 @@ BEGIN FLAGS "D" END -LISTBOX F_DESCRCAUS 55 +LISTBOX F_DESCRCAUS 57 BEGIN PROMPT 20 3 "" ITEM "|" - ITEM "A|Prestazione di lavoro autonomo rientranti nell'esercizio di arte o professione abituale" - ITEM "B|Per prestazioni rese da amministratori, sindaci e revisori di società, associazione ed altri enti con o senza personalità giuridica" - ITEM "C|Per prestazioni rese da collaboratori a giornali, riviste, enciclopedie e simili" - ITEM "D|Per prestazioni rese da partecipanti a collegi e commissioni" - ITEM "E|Per prestazioni rese dagli sportivi con contratto di lavoro autonomo" - ITEM "F|Per prestazioni rese nell'ambito di rapporti di collaborazione coordinata e continuativa diversi da quelli sopra elencati" - ITEM "G|Per l'utilizzazione economica da parte dell'autore o dell'inventore, di opere dell'ingegno, di brevetti industriali e di processi, formule o informazioni relativi ad esperienze acquisite in campo industriale.." - ITEM "H|A titolo di utili derivanti da contratti di associazione in partecipazione e da contratti di cointeresenza quando l'apporto è costituito esclusivamente dalla prestazione di lavoro" - ITEM "I|A titolo di utili spettanti ai soci promotori ed ai soci fondatori delle società di capitali" - ITEM "L|Per la levata di protesti cambiari da parte dei segretari comunali" - ITEM "M|Per l'utilizzazione economica da parte di soggetto diverso dall'autore o dall'inventore di opere dell'ingegno, brevetti, formule .." - ITEM "N|A titolo di indennità corrisposte per la cessazione di rapporti di collaborazione coordinata e continuativa, se il diritto all'indennità risulta da atto di data certa anteriore .." - ITEM "P|A titolo di indennità corrisposte per la cessazione da funzioni notarili" - ITEM "R|A titolo di indennità corrisposte per la cessazione di attività sportiva professionale" - ITEM "S|A titolo di indennità di trasferta o di rimborso forfetario di spese spettanti a soggetti che svolgono attività sportiva dilettantistica di cui L.25.3.86 n.80" - FLAGS "D" + ITEM "A|Prestazione di arte o professione abituale" + ITEM "B|Prestazioni rese da amministratori,sindaci e .." + ITEM "C|Prestazioni rese da collaboratori a giornali,.." + ITEM "D|Prestazioni rese da partecipanti a collegi e commissioni" + ITEM "E|Prestazioni rese da sportivi con contratto di lavoro .." + ITEM "F|Prestazioni rese nell'ambito di rapporti di collaboraz.." + ITEM "G|Utilizzazione economica da parte dell'autore o .." + ITEM "H|Utili derivanti da contratti di associazione .." + ITEM "I|Utili spettanti ai soci promotori e soci fondatori .." + ITEM "L|Levata di protesti cambiari da segretari comunali" + ITEM "M|Utilizzazione economica da parte di soggetto diverso .." + ITEM "N|Indennità corrisposte per la cessaz.di rapporti di .." + ITEM "P|Indennità corrisposte per la cessaz.da funzioni notarili" + ITEM "R|Indennità corrisposte per la cessaz.di attività sportiva" + ITEM "S|Indennità di trasferta o di rimborso L.25.3.86 n.80" + FLAGS "D" +// LASCIATI PERCHE' NON SI SA MAI OMERO ... +// ITEM "A|Prestazione di lavoro autonomo rientranti nell'esercizio di arte o professione abituale" +// ITEM "B|Per prestazioni rese da amministratori, sindaci e revisori di società, associazione ed altri enti con o senza personalità giuridica" +// ITEM "C|Per prestazioni rese da collaboratori a giornali, riviste, enciclopedie e simili" +// ITEM "D|Per prestazioni rese da partecipanti a collegi e commissioni" +// ITEM "E|Per prestazioni rese dagli sportivi con contratto di lavoro autonomo" +// ITEM "F|Per prestazioni rese nell'ambito di rapporti di collaborazione coordinata e continuativa diversi da quelli sopra elencati" +// ITEM "G|Per l'utilizzazione economica da parte dell'autore o dell'inventore, di opere dell'ingegno, di brevetti industriali e di processi, formule o informazioni relativi ad esperienze acquisite in campo industriale.." +// ITEM "H|A titolo di utili derivanti da contratti di associazione in partecipazione e da contratti di cointeresenza quando l'apporto è costituito esclusivamente dalla prestazione di lavoro" +// ITEM "I|A titolo di utili spettanti ai soci promotori ed ai soci fondatori delle società di capitali" +// ITEM "L|Per la levata di protesti cambiari da parte dei segretari comunali" +// ITEM "M|Per l'utilizzazione economica da parte di soggetto diverso dall'autore o dall'inventore di opere dell'ingegno, brevetti, formule .." +// ITEM "N|A titolo di indennità corrisposte per la cessazione di rapporti di collaborazione coordinata e continuativa, se il diritto all'indennità risulta da atto di data certa anteriore .." +// ITEM "P|A titolo di indennità corrisposte per la cessazione da funzioni notarili" +// ITEM "R|A titolo di indennità corrisposte per la cessazione di attività sportiva professionale" +// ITEM "S|A titolo di indennità di trasferta o di rimborso forfetario di spese spettanti a soggetti che svolgono attività sportiva dilettantistica di cui L.25.3.86 n.80" END NUMBER F_CODTRIB 4 diff --git a/m770/771230e.uml b/m770/771230e.uml index 08230e842..b163b157d 100755 --- a/m770/771230e.uml +++ b/m770/771230e.uml @@ -11,7 +11,7 @@ END ENDPAGE -PAGE "MODULO 770 - QUADRO D1" -1 -1 78 18 +PAGE "Quadro D1" -1 -1 78 18 GROUPBOX DLG_NULL 78 3 BEGIN @@ -38,7 +38,7 @@ END NUMBER F_ANNODIC 4 BEGIN - PROMPT 52 4 "Anno dichiarazione " + PROMPT 52 3 "Anno dichiarazione " FLAGS "DR" END @@ -55,7 +55,6 @@ BEGIN ITEM "G|Giuridica" MESSAGE COPY,F_TIPOAF FIELD LF_QUAD1->TIPOA - CHECKTYPE REQUIRED KEY 1 END @@ -78,7 +77,7 @@ END NUMBER F_CODANAGRPERC 5 BEGIN - PROMPT 15 8 "" + PROMPT 16 8 "" USE LF_PERC KEY 1 SELECT ((CODDITTA=#F_CODDITTA)&&(TIPOA=#F_TIPOA)) JOIN LF_ANAG TO LF_PERC KEY 1 INTO TIPOA=TIPOA CODANAGR=CODANAGR INPUT CODDITTA F_CODDITTA @@ -90,17 +89,16 @@ BEGIN OUTPUT F_TIPOA TIPOA OUTPUT F_CODANAGRPERC CODANAGR OUTPUT F_RAGSOCPER LF_ANAG->RAGSOC - MESSAGE COPY, F_CODANAGR - //FLAGS "P" + MESSAGE COPY, F_CODANAGR ADD RUN 775 -0 GROUP 2 END NUMBER F_CODANAGRCOM 5 BEGIN - PROMPT 15 8 "" + PROMPT 16 8 "" USE LF_ANAG KEY 1 - INPUT TIPOA F_TIPOA SELECT (TIPOA=#F_TIPOA) + INPUT TIPOA F_TIPOA SELECT INPUT CODANAGR F_CODANAGRCOM DISPLAY "Tipo " TIPOA DISPLAY "Codice " CODANAGR @@ -110,7 +108,6 @@ BEGIN OUTPUT F_RAGSOCCOM RAGSOC MESSAGE COPY, F_CODANAGR ADD RUN BA4 -1 - //FLAGS "HP" FLAGS "H" GROUP 1 END @@ -132,7 +129,6 @@ BEGIN OUTPUT F_RAGSOCCOM RAGSOC OUTPUT F_CODANAGRCOM CODANAGR OUTPUT F_TIPOA TIPOA - //FLAGS "P" ADD RUN BA4 -1 MESSAGE COPY, F_RAGSOC GROUP 1 @@ -141,7 +137,6 @@ END STRING F_RAGSOCPER 50 BEGIN PROMPT 25 8 "" - //FLAGS "DP" FLAGS "D" GROUP 2 MESSAGE COPY, F_RAGSOC @@ -153,16 +148,14 @@ BEGIN CHECKTYPE REQUIRED KEY 1 FIELD LF_QUAD1->NPROG - USE LF_QUAD1 - JOIN LF_ANAG TO LF_QUAD1 KEY 1 INTO TIPOA=TIPOA CODANAGR=CODANAGR + USE LF_QUAD1 INPUT CODDITTA F_CODDITTA SELECT - INPUT TIPOA F_TIPOA SELECT - INPUT CODANAGR F_CODANAGR SELECT + INPUT TIPOA F_TIPOA + INPUT CODANAGR F_CODANAGR INPUT NPROG F_NPROG DISPLAY "N°" NPROG DISPLAY "Tipo" TIPOA DISPLAY "Codice@10" CODANAGR - //DISPLAY "Ragione@50" LF_ANAG->RAGSOC DISPLAY "Causale" CODCAUS DISPLAY "Totale@15" TOTALE DISPLAY "Quota provvigioni" QUOTAPRO diff --git a/m770/771230f.uml b/m770/771230f.uml index 058e95c68..65b528671 100755 --- a/m770/771230f.uml +++ b/m770/771230f.uml @@ -6,15 +6,16 @@ ENDPAGE PAGE "Quadro C" -1 -1 78 18 NUMBER F_CODDITTA 5 -BEGIN - FLAGS "H" +BEGIN + PROMPT 80 80 "" + FLAGS "D" FIELD LF_QUAC->CODDITTA KEY 1 END LIST F_TIPOA 1 12 BEGIN - PROMPT 3 0 "" + PROMPT 2 0 "" FIELD LF_QUAC->TIPOA ITEM "F|Fisica" ITEM "G|Giuridica" diff --git a/m770/771230g.uml b/m770/771230g.uml index b3892ad90..b0e5674ed 100755 --- a/m770/771230g.uml +++ b/m770/771230g.uml @@ -11,7 +11,7 @@ END ENDPAGE -PAGE "MODULO 770 - QUADRO E" -1 -1 78 18 +PAGE "Quadro E" -1 -1 78 18 GROUPBOX DLG_NULL 78 3 BEGIN @@ -38,7 +38,7 @@ END NUMBER F_ANNODIC 4 BEGIN - PROMPT 52 4 "Anno dichiarazione " + PROMPT 52 3 "Anno dichiarazione " FLAGS "DR" END @@ -55,7 +55,6 @@ BEGIN ITEM "G|Giuridica" MESSAGE COPY,F_TIPOAF FIELD LF_QUAE->TIPOA - CHECKTYPE REQUIRED KEY 1 END @@ -78,7 +77,7 @@ END NUMBER F_CODANAGRPERC 5 BEGIN - PROMPT 15 8 "" + PROMPT 16 8 "" USE LF_PERC KEY 1 SELECT ((CODDITTA=#F_CODDITTA)&&(TIPOA=#F_TIPOA)) JOIN LF_ANAG TO LF_PERC KEY 1 INTO TIPOA=TIPOA CODANAGR=CODANAGR INPUT CODDITTA F_CODDITTA @@ -90,15 +89,14 @@ BEGIN OUTPUT F_TIPOA TIPOA OUTPUT F_CODANAGRPERC CODANAGR OUTPUT F_RAGSOCPER LF_ANAG->RAGSOC - MESSAGE COPY, F_CODANAGR - //FLAGS "P" + MESSAGE COPY, F_CODANAGR ADD RUN 775 -0 GROUP 2 END NUMBER F_CODANAGRCOM 5 BEGIN - PROMPT 15 8 "" + PROMPT 16 8 "" USE LF_ANAG KEY 1 SELECT (TIPOA=#F_TIPOA) INPUT TIPOA F_TIPOA INPUT CODANAGR F_CODANAGRCOM @@ -110,7 +108,6 @@ BEGIN OUTPUT F_RAGSOCCOM RAGSOC MESSAGE COPY, F_CODANAGR ADD RUN BA4 -1 - //FLAGS "HP" FLAGS "H" GROUP 1 END @@ -132,7 +129,6 @@ BEGIN OUTPUT F_RAGSOCCOM RAGSOC OUTPUT F_CODANAGRCOM CODANAGR OUTPUT F_TIPOA TIPOA - //FLAGS "P" ADD RUN BA4 -1 MESSAGE COPY, F_RAGSOC GROUP 1 @@ -141,7 +137,6 @@ END STRING F_RAGSOCPER 50 BEGIN PROMPT 25 8 "" - //FLAGS "DP" FLAGS "D" GROUP 2 MESSAGE COPY, F_RAGSOC @@ -153,16 +148,14 @@ BEGIN CHECKTYPE REQUIRED KEY 1 FIELD LF_QUAE->NPROG - USE LF_QUAE - JOIN LF_ANAG TO LF_QUAE KEY 1 INTO TIPOA=TIPOA CODANAGR=CODANAGR + USE LF_QUAE INPUT CODDITTA F_CODDITTA SELECT - INPUT TIPOA F_TIPOA SELECT - INPUT CODANAGR F_CODANAGR SELECT + INPUT TIPOA F_TIPOA + INPUT CODANAGR F_CODANAGR INPUT NPROG F_NPROG DISPLAY "N°" NPROG DISPLAY "Tipo" TIPOA DISPLAY "Codice@10" CODANAGR - //DISPLAY "Ragione@50" LF_ANAG->RAGSOC DISPLAY "Causale" CODCAUS DISPLAY "Imponibile@15" IMPONIBILE DISPLAY "Aliquota" PERC diff --git a/m770/771230h.uml b/m770/771230h.uml index 99d62f822..58764176e 100755 --- a/m770/771230h.uml +++ b/m770/771230h.uml @@ -9,15 +9,16 @@ ENDPAGE PAGE "Quadro E" -1 -1 78 18 NUMBER F_CODDITTA 5 -BEGIN - FLAGS "H" +BEGIN + PROMPT 80 80 "" + FLAGS "D" FIELD LF_QUAE->CODDITTA KEY 1 END LIST F_TIPOA 1 12 BEGIN - PROMPT 3 0 "" + PROMPT 2 0 "" FIELD LF_QUAE->TIPOA ITEM "F|Fisica" ITEM "G|Giuridica" diff --git a/m770/771230i.uml b/m770/771230i.uml index 95c9c245e..f898d0127 100755 --- a/m770/771230i.uml +++ b/m770/771230i.uml @@ -17,7 +17,7 @@ END ENDPAGE -PAGE "MODULO 770 - QUADRO E1" -1 -1 78 18 +PAGE "Quadro E1" -1 -1 78 18 GROUPBOX DLG_NULL 78 3 BEGIN @@ -44,7 +44,7 @@ END NUMBER F_ANNODIC 4 BEGIN - PROMPT 52 4 "Anno dichiarazione " + PROMPT 52 3 "Anno dichiarazione " FLAGS "DR" END @@ -61,7 +61,6 @@ BEGIN ITEM "G|Giuridica" MESSAGE COPY,F_TIPOAF FIELD LF_QUAE1->TIPOA - //CHECKTYPE REQUIRED FLAGS "D" KEY 1 END @@ -86,10 +85,10 @@ END NUMBER F_CODANAGRPERC 5 BEGIN PROMPT 16 8 "" - USE LF_PERC KEY 1 SELECT ((CODDITTA=#F_CODDITTA)&&(TIPOA="F")) + USE LF_PERC JOIN LF_ANAG TO LF_PERC KEY 1 INTO TIPOA=TIPOA CODANAGR=CODANAGR - INPUT CODDITTA F_CODDITTA - INPUT TIPOA F_TIPOA + INPUT CODDITTA F_CODDITTA SELECT + INPUT TIPOA F_TIPOA SELECT INPUT CODANAGR F_CODANAGRPERC DISPLAY "Tipo " TIPOA DISPLAY "Codice " CODANAGR @@ -97,8 +96,7 @@ BEGIN OUTPUT F_TIPOA TIPOA OUTPUT F_CODANAGRPERC CODANAGR OUTPUT F_RAGSOCPER LF_ANAG->RAGSOC - MESSAGE COPY, F_CODANAGR - //FLAGS "P" + MESSAGE COPY, F_CODANAGR ADD RUN 775 -0 GROUP 2 END @@ -106,8 +104,8 @@ END NUMBER F_CODANAGRCOM 5 BEGIN PROMPT 15 8 "" - USE LF_ANAG KEY 1 SELECT (TIPOA="F") - INPUT TIPOA F_TIPOA + USE LF_ANAG + INPUT TIPOA F_TIPOA SELECT INPUT CODANAGR F_CODANAGRCOM DISPLAY "Tipo " TIPOA DISPLAY "Codice " CODANAGR @@ -117,7 +115,6 @@ BEGIN OUTPUT F_RAGSOCCOM RAGSOC MESSAGE COPY, F_CODANAGR ADD RUN BA4 -1 - //FLAGS "HP" FLAGS "H" GROUP 1 END @@ -138,8 +135,7 @@ BEGIN DISPLAY "Codice" CODANAGR OUTPUT F_RAGSOCCOM RAGSOC OUTPUT F_CODANAGRCOM CODANAGR - OUTPUT F_TIPOA TIPOA - //FLAGS "P" + OUTPUT F_TIPOA TIPOA ADD RUN BA4 -1 MESSAGE COPY, F_RAGSOC GROUP 1 @@ -148,7 +144,6 @@ END STRING F_RAGSOCPER 50 BEGIN PROMPT 25 8 "" - //FLAGS "DP" FLAGS "D" GROUP 2 MESSAGE COPY, F_RAGSOC @@ -160,16 +155,14 @@ BEGIN CHECKTYPE REQUIRED KEY 1 FIELD LF_QUAE1->NPROG - USE LF_QUAE1 - JOIN LF_ANAG TO LF_QUAE1 KEY 1 INTO TIPOA=TIPOA CODANAGR=CODANAGR + USE LF_QUAE1 INPUT CODDITTA F_CODDITTA SELECT - INPUT TIPOA F_TIPOA SELECT - INPUT CODANAGR F_CODANAGR SELECT + INPUT TIPOA F_TIPOA + INPUT CODANAGR F_CODANAGR INPUT NPROG F_NPROG DISPLAY "N°" NPROG DISPLAY "Tipo" TIPOA DISPLAY "Codice@10" CODANAGR - //DISPLAY "Ragione@50" LF_ANAG->RAGSOC DISPLAY "Causale" CODCAUS DISPLAY "Ammontare complessivo" AMMONTARE DISPLAY "Aliquota" PERC diff --git a/m770/771230l.uml b/m770/771230l.uml index 468ab8d36..da326cd79 100755 --- a/m770/771230l.uml +++ b/m770/771230l.uml @@ -9,15 +9,16 @@ ENDPAGE PAGE "Quadro E1" -1 -1 78 18 NUMBER F_CODDITTA 5 -BEGIN - FLAGS "H" +BEGIN + PROMPT 80 80 "" + FLAGS "D" FIELD LF_QUAE1->CODDITTA KEY 1 END LIST F_TIPOA 1 12 BEGIN - PROMPT 3 0 "" + PROMPT 2 0 "" FIELD LF_QUAE1->TIPOA ITEM "F|Fisica" ITEM "G|Giuridica" @@ -70,7 +71,7 @@ END STRING F_CODCAUS 2 BEGIN PROMPT 3 3 "Causale " - USE %CA7 SELECT ((I0!="1015")&&(S1="E1")&&(B0="X") + USE %CA7 SELECT ((I0!="1015")&&(S1="E1")&&(B0="X")) INPUT CODTAB F_CODCAUS DISPLAY "Codice " CODTAB DISPLAY "Descrizione @60" S0 diff --git a/m770/771231.cpp b/m770/771231.cpp index 7682f1741..8dcf01093 100755 --- a/m770/771231.cpp +++ b/m770/771231.cpp @@ -84,6 +84,7 @@ class TQuadroF : public TRelation_application virtual TMask* get_mask(int mode) { return _msk; } virtual bool changing_mask(int mode) { return FALSE; } virtual void init_query_mode (TMask&); + virtual void init_insert_mode (TMask&); virtual void init_modify_mode (TMask&); void init_mask (TMask&); void fill_ss(TMask& m); @@ -139,12 +140,12 @@ TQuadroF::TQuadroF(const char quadro) break; case '1': _quadro = "F1"; - _title = "Quadro F-1"; + _title = "Quadro F1"; _tipo_prosp = 'B'; break; case '2': _quadro = "F2"; - _title = "Quadro F-2"; + _title = "Quadro F2"; _tipo_prosp = 'B'; break; default: @@ -153,23 +154,25 @@ TQuadroF::TQuadroF(const char quadro) } inline TQuadroF& app() { return (TQuadroF&) main_app(); } - -void TQuadroF::init_modify_mode (TMask& m) -{ + +void TQuadroF::init_insert_mode (TMask& m) +{ init_mask(m); - m.disable(DLG_DELREC); +} + +void TQuadroF::init_modify_mode (TMask& m) +{ + m.disable(DLG_DELREC); // disabilito Elimina nella toolbar } void TQuadroF::init_query_mode (TMask& m) { - TString16 codditta; codditta << _codditta; - if (codditta != "0") - { - m.field(F_CODDITTA).set(codditta); - m.field(F_CODDITTA).check(); - } + TString16 codditta; + codditta << _codditta; + TMask_field& f = m.field(F_CODDITTA); + f.set(codditta); + f.check(); m.send_key(K_AUTO_ENTER,0); - init_mask(m); } void TQuadroF::init_mask (TMask& m) @@ -182,7 +185,10 @@ bool TQuadroF::user_create() if (_quadro == "F") { _msk = new TMask("771231a"); - _msk->disable(DLG_CANCEL); // disabilito Annulla nella toolbar + _msk->disable(DLG_CANCEL); // disabilito Annulla nella toolbar + _msk->disable(DLG_NEWREC); // disabilito Nuovo nella toolbar + _msk->disable(DLG_DELREC); // disabilito Elimina nella toolbar + _msk->disable(DLG_FINDREC); // disabilito Ricerca nella toolbar _msk->set_handler(E_PROVENTI, eprov_handler); _msk->set_handler(E_ALI, ealiq_handler); _msk->set_handler(F_SOGG, fsogg_handler); @@ -231,7 +237,11 @@ bool TQuadroF::user_create() if (_quadro == "F1") { _msk = new TMask("771232a"); - _msk->disable(DLG_CANCEL); // disabilito Annulla nella toolbar + _msk->disable(DLG_CANCEL); // disabilito Annulla nella toolbar + _msk->disable(DLG_NEWREC); // disabilito Nuovo nella toolbar + _msk->disable(DLG_DELREC); // disabilito Elimina nella toolbar + _msk->disable(DLG_FINDREC); // disabilito Ricerca nella toolbar + TSheet_field& p_b = (TSheet_field&) _msk->field(F_B); p_b.sheet_mask().set_handler(S_CODC, codc_handler); p_b.sheet_mask().set_handler(S_ALIQ, aliq_handler); @@ -251,7 +261,11 @@ bool TQuadroF::user_create() if (_quadro == "F2") { _msk = new TMask("771233a"); - _msk->disable(DLG_CANCEL); // disabilito Annulla nella toolbar + _msk->disable(DLG_CANCEL); // disabilito Annulla nella toolbar + _msk->disable(DLG_NEWREC); // disabilito Nuovo nella toolbar + _msk->disable(DLG_DELREC); // disabilito Elimina nella toolbar + _msk->disable(DLG_FINDREC); // disabilito Ricerca nella toolbar + TSheet_field& p_b = (TSheet_field&) _msk->field(F_B); p_b.sheet_mask().set_handler(S_CODC, codc_handler); p_b.sheet_mask().set_handler(S_ALIQ, aliq_handler); @@ -336,8 +350,9 @@ void TQuadroF::riempi_prospetto(TMask& m, const char prosp) row.add(ecc); } for (i = last_a; i < PROSP_RIGHE; i++) - ss.row(i); - ss.force_update(); + ss.row(i); +// dava origine ad una indesiderata doppia visualizzazione +// ss.force_update(); break; } case 'B': { @@ -362,9 +377,10 @@ void TQuadroF::riempi_prospetto(TMask& m, const char prosp) row.add(rope); } for (i = last_b+1; i < PROSP_RIGHE; i++) - ss.row(i); - if (_quadro != "F") - ss.force_update(); + ss.row(i); +// dava origine ad una indesiderata doppia visualizzazione +// if (_quadro != "F") +// ss.force_update(); break; } case 'C': { TSheet_field& ss = (TSheet_field&)m.field(F_C); @@ -835,9 +851,9 @@ bool TQuadroF::aliq_handler(TMask_field& f, KEY k) bool TQuadroF::sogg_handler(TMask_field& f, KEY k) { - if (k == K_TAB) + if (k == K_TAB) { - const real sogg(f.mask().get(S_SOGG)); + const real sogg(f.mask().get(S_SOGG)); calcola_rope(f, sogg, f.focusdirty()); } return TRUE; @@ -938,11 +954,12 @@ real TQuadroF::calcola_rope(TMask_field& f, const real& sogg, const bool force) else m.reset(id_rope); -// Nel prospetto A oltre alla ritenuta operata setto anche S_SALD - if (app()._tipo_prosp == 'A') +// Nel prospetto A oltre alla ritenuta operata setto anche S_SALD + if ((app()._tipo_prosp == 'E') && (m.get_sheet()->dlg() == F_A)) { - const real pa_col5(m.get(S_TACC)); - real pa_col6 = pa_col4 - pa_col5; + const real pa_col5(f.mask().get(S_TACC)); + real pa_col6 = pa_col4 - pa_col5; + if (pa_col6 > ZERO) { TString col6_st(pa_col6.string()); diff --git a/m770/771231a.h b/m770/771231a.h index 5432eafcb..7e3453daf 100755 --- a/m770/771231a.h +++ b/m770/771231a.h @@ -1,24 +1,25 @@ -// 771231a.h - quadro F +// 771231a.h - quadro F +// *NOTA* gli identificatori fino al 119 sono per spreadsheet #define F_CODDITTA 101 #define F_RAGDITTA 102 -#define F_A 103 -#define F_B 104 -#define F_C 105 -#define F_D 106 -#define F_A1 107 -#define F_A2 108 -#define F_A3 109 -#define F_A4 110 -#define E_CAMBIAL 111 -#define E_PROVENTI 112 -#define E_ALI 113 -#define E_ROP 114 -#define F_DESCRCAUS 115 -#define F_ALI 116 -#define F_SOGG 117 -#define F_ROP 118 -#define F_CODCAU 119 +#define F_A 103 +#define F_B 104 +#define F_C 105 +#define F_D 106 +#define F_A1 120 +#define F_A2 121 +#define F_A3 122 +#define F_A4 123 +#define E_CAMBIAL 124 +#define E_PROVENTI 125 +#define E_ALI 126 +#define E_ROP 127 +#define F_DESCRCAUS 128 +#define F_ALI 129 +#define F_SOGG 130 +#define F_ROP 131 +#define F_CODCAU 132 diff --git a/m770/771231a.uml b/m770/771231a.uml index 35a0c8040..7756664b4 100755 --- a/m770/771231a.uml +++ b/m770/771231a.uml @@ -1,9 +1,10 @@ -#include "771231a.h" +#include "771231a.h" + TOOLBAR "" 0 20 0 2 -#include "toolb_77.h" +#include "toolbar.h" ENDPAGE -PAGE "Modello 770 - Quadro F" -1 -1 78 18 +PAGE "Prospetto A" -1 -1 78 18 GROUPBOX DLG_NULL 78 3 BEGIN @@ -13,13 +14,13 @@ END NUMBER F_CODDITTA 5 BEGIN PROMPT 3 1 "Ditta " - USE LF_NDITTE KEY 1 + USE LF_NDITTE INPUT CODDITTA F_CODDITTA OUTPUT F_RAGDITTA RAGSOC FIELD LF_QUAF->CODDITTA KEY 1 CHECKTYPE REQUIRED - FLAGS "GR" + FLAGS "GRD" END STRING F_RAGDITTA 50 @@ -101,7 +102,7 @@ END ENDPAGE -PAGE "Modello 770 - Quadro F" -1 -1 78 18 +PAGE "Prospetto B,C" -1 -1 78 18 TEXT DLG_NULL BEGIN @@ -135,7 +136,7 @@ END ENDPAGE -PAGE "Modello 770 - Quadro F" -1 -1 78 18 +PAGE "Prospetto D,E,F" -1 -1 78 18 TEXT DLG_NULL BEGIN diff --git a/m770/771232.cpp b/m770/771232.cpp index ea8a741d9..99034b318 100755 --- a/m770/771232.cpp +++ b/m770/771232.cpp @@ -133,12 +133,11 @@ void TQuadroG::init_modify_mode (TMask& m) void TQuadroG::init_query_mode (TMask& m) { - TString16 codditta; codditta << _codditta; - if (codditta != "0") - { - m.field(F_CODDITTA).set(codditta); - m.field(F_CODDITTA).check(); - } + TString16 codditta; + codditta << _codditta; + TMask_field& f = m.field(F_CODDITTA); + f.set(codditta); + f.check(); m.send_key(K_AUTO_ENTER,0); } @@ -298,7 +297,11 @@ bool TQuadroG::user_create() { _msk = new TMask("771234a"); _rel = new TRelation(LF_QUAG); - _codditta = get_firm_770(); + _codditta = get_firm_770(); + _msk->disable(DLG_CANCEL); // disabilito Annulla nella toolbar + _msk->disable(DLG_NEWREC); // disabilito Nuovo nella toolbar + _msk->disable(DLG_DELREC); // disabilito Elimina nella toolbar + _msk->disable(DLG_FINDREC); // disabilito Ricerca nella toolbar _msk->set_handler(DLG_DISTINTA, exec_distinta); TSheet_field& p1 = (TSheet_field&) _msk->field(F_P1); p1.set_notify(p1_notify); diff --git a/m770/771232a.uml b/m770/771232a.uml index 1521d64da..8951b4b32 100755 --- a/m770/771232a.uml +++ b/m770/771232a.uml @@ -1,9 +1,10 @@ -#include "771231a.h" +#include "771231a.h" + TOOLBAR "" 0 20 0 2 -#include "toolb_77.h" +#include "toolbar.h" ENDPAGE -PAGE "Modello 770 - Quadro F-1" -1 -1 78 18 +PAGE "Quadro F1" -1 -1 78 18 GROUPBOX DLG_NULL 78 3 BEGIN @@ -19,7 +20,7 @@ BEGIN FIELD LF_QUAF1->CODDITTA KEY 1 CHECKTYPE REQUIRED - FLAGS "GR" + FLAGS "GRD" END STRING F_RAGDITTA 50 diff --git a/m770/771233a.uml b/m770/771233a.uml index d846ec075..f544ed17d 100755 --- a/m770/771233a.uml +++ b/m770/771233a.uml @@ -1,9 +1,10 @@ -#include "771231a.h" +#include "771231a.h" + TOOLBAR "" 0 20 0 2 -#include "toolb_77.h" +#include "toolbar.h" ENDPAGE -PAGE "Modello 770 - Quadro F-2" -1 -1 78 18 +PAGE "Quadro F2" -1 -1 78 18 GROUPBOX DLG_NULL 78 3 BEGIN @@ -19,7 +20,7 @@ BEGIN FIELD LF_QUAF2->CODDITTA KEY 1 CHECKTYPE REQUIRED - FLAGS "GR" + FLAGS "GRD" END STRING F_RAGDITTA 50 diff --git a/m770/771233b.uml b/m770/771233b.uml index 15f046ed2..75499c03a 100755 --- a/m770/771233b.uml +++ b/m770/771233b.uml @@ -1,4 +1,4 @@ -// 771233b.uml - quadro F2 prospetto delle ... +// 771232b.uml - quadro F2 prospetto B PAGE "Prospetto B" -1 -1 76 9 @@ -6,24 +6,24 @@ NUMBER 101 2 BEGIN PROMPT 1 1 "Causale " USE %CA7 SELECT (S1="F2") + VALIDATE REQIF_FUNC 4 102 103 104 105 INPUT CODTAB 101 DISPLAY "Codice " CODTAB DISPLAY "Descrizione @60" S0 DISPLAY "Codice tributo" I0 DISPLAY "Articolo di bilancio" I3 OUTPUT 101 CODTAB - OUTPUT 102 S0 + OUTPUT 102 S0 OUTPUT 103 R0 FLAGS "Z" WARNING "Manca la causale" - VALIDATE REQIF_FUNC 6 102 103 104 105 ADD RUN 773mod -3 %CA7 GROUP 1 END STRING 102 60 BEGIN - PROMPT 15 1 "" + PROMPT 15 1 "" FLAGS "D" GROUP 1 END diff --git a/m770/771234a.uml b/m770/771234a.uml index af71d882f..27ce1412f 100755 --- a/m770/771234a.uml +++ b/m770/771234a.uml @@ -1,50 +1,61 @@ -#include "771234a.h" +#include "771234a.h" + TOOLBAR "" 0 20 0 2 BUTTON DLG_SAVEREC 8 2 BEGIN -PROMPT -16 -1 "" -MESSAGE EXIT,K_SAVE -PICTURE BMP_SAVEREC -PICTURE BMP_SAVERECDN + PROMPT -17 -1 "~Registra" + MESSAGE EXIT,K_SAVE + PICTURE BMP_SAVEREC + PICTURE BMP_SAVERECDN END -BUTTON DLG_DISTINTA 8 2 +BUTTON DLG_NEWREC 8 2 BEGIN - PROMPT -26 -1 "~Distinta" -// MESSAGE EXIT,K_SAVE + PROMPT -27 -1 "~Nuovo" + MESSAGE EXIT,K_INS + PICTURE BMP_NEWREC + PICTURE BMP_NEWRECDN END BUTTON DLG_DELREC 8 2 BEGIN -PROMPT -36 -1 "~Elimina" -MESSAGE EXIT,K_DEL -FLAGS "D" + PROMPT -37 -1 "~Elimina" + MESSAGE EXIT,K_DEL + PICTURE BMP_DELREC + PICTURE BMP_DELRECDN END BUTTON DLG_FINDREC 8 2 BEGIN -PROMPT -46 -1 "Ri~cerca" -MESSAGE EXIT,K_F9 -FLAGS "D" + PROMPT -47 -1 "Ri~cerca" + MESSAGE EXIT,K_F9 + PICTURE 126 END BUTTON DLG_CANCEL 8 2 BEGIN -PROMPT -56 -1 "" -MESSAGE EXIT,K_ESC -FLAGS "D" + PROMPT -57 -1 "~Annulla" + MESSAGE EXIT,K_ESC + PICTURE 102 END BUTTON DLG_QUIT 8 2 BEGIN -PROMPT -66 -1 "" -MESSAGE EXIT,K_QUIT + PROMPT -67 -1 "~Fine" + MESSAGE EXIT,K_QUIT + PICTURE BMP_QUIT + PICTURE BMP_QUITDN +END + +BUTTON DLG_DISTINTA 8 2 +BEGIN + PROMPT -77 -1 "~Distinta" END ENDPAGE -PAGE "Modello 770 - Quadro G" -1 -1 78 18 +PAGE "Prospetto 1" -1 -1 78 18 GROUPBOX DLG_NULL 78 3 BEGIN @@ -60,7 +71,7 @@ BEGIN FIELD LF_QUAG->CODDITTA KEY 1 CHECKTYPE REQUIRED - FLAGS "GR" + FLAGS "GRD" MESSAGE COPY,1@ END @@ -73,15 +84,15 @@ END TEXT DLG_NULL BEGIN - PROMPT 1 3 "@bPROSPETTO N. 1 DETERMINAZIONE DELL'AMMONTARE DEGLI UTILI " -END + PROMPT 1 3 "@bDeterminazione dell'ammontare degli utili" +END TEXT DLG_NULL BEGIN - PROMPT 1 4 "I - UTILI IN DENARO" + PROMPT 1 4 "I - Utili in denaro" END -SPREADSHEET F_P1 0 6 +SPREADSHEET F_P1 78 5 BEGIN PROMPT 0 5 "" ITEM "Data delib." @@ -94,7 +105,7 @@ END TEXT DLG_NULL BEGIN - PROMPT 1 11 "II - UTILI IN NATURA" + PROMPT 1 11 "II - Utili in natura" END DATE F_DATADELIB @@ -109,7 +120,6 @@ BEGIN FIELD LF_QUAG->P2DATADI END -//SPREADSHEET F_PII 0 6 SPREADSHEET F_PII 78 5 BEGIN PROMPT 0 13 "" @@ -120,14 +130,14 @@ END NUMBER F_P1II_35 15 BEGIN - PROMPT 12 18 "IMPORTO IMPUTABILE A CIASCUNA AZIONE O QUOTA " + PROMPT 1 20 "Importo imputabile a ciascuna quota o azione " PICTURE "." FIELD LF_QUAG->P2IMPQ END ENDPAGE -PAGE "Modello 770 - Quadro G" -1 -1 78 18 +PAGE "Prospetto 2" -1 -1 78 18 #define COL1 0 #define COL2 16 @@ -137,7 +147,7 @@ PAGE "Modello 770 - Quadro G" -1 -1 78 18 TEXT DLG_NULL BEGIN - PROMPT COL1 1 "@bPROSPETTO N. 2 PROSPETTO UTILI PAGATI " + PROMPT COL1 1 "@bProspetto utili pagati" END SPREADSHEET F_P2 0 8 @@ -153,11 +163,11 @@ END ENDPAGE -PAGE "Modello 770 - Quadro G" -1 -1 78 18 +PAGE "Prospetto 3" -1 -1 78 18 TEXT DLG_NULL BEGIN - PROMPT 1 1 "@bPROSPETTO N. 3 PROSPETTO DELLE RITENUTE " + PROMPT 1 1 "@bProspetto delle ritenute" END SPREADSHEET F_PIII 0 15 @@ -177,24 +187,29 @@ ENDPAGE #define CP31 1 #define CP32 12 #define CP33 29 -#define CP34 36 -#define CP35 53 +#define CP34 52 +#define CP35 63 -PAGE "Modello 770 - Quadro G" -1 -1 78 18 +PAGE "Prospetto 4" -1 -1 78 18 TEXT DLG_NULL BEGIN - PROMPT 1 1 "@bPROSPETTO N. 4 PROSPETTO DEI VERSAMENTI DELLE RITENUTE " + PROMPT 1 1 "@bProspetto dei versamenti delle ritenute" END TEXT DLG_NULL BEGIN - PROMPT CP31 2 "Causale dei versamenti Importo versato " + PROMPT CP31 3 "Causale dei versamenti" END - + +TEXT DLG_NULL +BEGIN + PROMPT CP35 3 "Importo versato" +END + NUMBER F_P411 15 BEGIN - PROMPT CP35 4 "" + PROMPT CP35 5 "" PICTURE "." FIELD LF_QUAG->P421 MESSAGE K_TAB,F_P41TOT @@ -202,7 +217,7 @@ END NUMBER F_P412 15 BEGIN - PROMPT CP35 7 "" + PROMPT CP35 8 "" PICTURE "." FIELD LF_QUAG->P422 MESSAGE K_TAB,F_P41TOT @@ -210,7 +225,7 @@ END NUMBER F_P413 15 BEGIN - PROMPT CP35 8 "" + PROMPT CP35 9 "" PICTURE "." FIELD LF_QUAG->P423 MESSAGE K_TAB,F_P41TOT @@ -218,7 +233,7 @@ END NUMBER F_P414 15 BEGIN - PROMPT CP35 10 "" + PROMPT CP35 11 "" PICTURE "." FIELD LF_QUAG->P424 MESSAGE K_TAB,F_P41TOT @@ -226,7 +241,7 @@ END NUMBER F_P415 15 BEGIN - PROMPT CP35 11 "" + PROMPT CP35 12 "" PICTURE "." FIELD LF_QUAG->P425 MESSAGE K_TAB,F_P41TOT @@ -234,7 +249,7 @@ END NUMBER F_P416 15 BEGIN - PROMPT CP35 12 "" + PROMPT CP35 13 "" PICTURE "." FIELD LF_QUAG->P426 MESSAGE K_TAB,F_P41TOT @@ -242,7 +257,7 @@ END NUMBER F_P417 15 BEGIN - PROMPT CP35 13 "" + PROMPT CP35 14 "" PICTURE "." FIELD LF_QUAG->P427 MESSAGE K_TAB,F_P41TOT @@ -250,7 +265,7 @@ END NUMBER F_P418 15 BEGIN - PROMPT CP35 16 "" + PROMPT CP35 17 "" PICTURE "." FIELD LF_QUAG->P428 MESSAGE K_TAB,F_P41TOT @@ -258,7 +273,7 @@ END NUMBER F_P419 15 BEGIN - PROMPT CP35 17 "" + PROMPT CP35 18 "" PICTURE "." FIELD LF_QUAG->P429 MESSAGE K_TAB,F_P41TOT @@ -266,7 +281,7 @@ END NUMBER F_P41TOT 15 BEGIN - PROMPT CP35 18 "" + PROMPT CP35 19 "" PICTURE "." FLAGS "D" FIELD LF_QUAG->P42TOT @@ -275,82 +290,82 @@ END TEXT DLG_NULL BEGIN - PROMPT CP31 3 "1) Ritenute 10% sugli utili di cui e' stata " + PROMPT CP31 4 "1) Ritenute 10% sugli utili di cui e' stata " END TEXT DLG_NULL BEGIN - PROMPT CP31 4 " deliberata la distribuzione nel 1995" + PROMPT CP31 5 " deliberata la distribuzione nel 1995" END TEXT DLG_NULL BEGIN - PROMPT CP31 5 "2) Ritenute 10%,12,50,15%,30%,32,4% o 50% sugli utili in denaro " + PROMPT CP31 6 "2) Ritenute 10%,12,50,15%,30%,32,4% o 50% sugli utili" END TEXT DLG_NULL BEGIN - PROMPT CP31 6 " o in natura, su azioni di risparmio ..." + PROMPT CP31 7 " in denaro o in natura, su azioni di risparmio ..." END TEXT DLG_NULL BEGIN - PROMPT CP31 7 " a) effettuate nel primo semestre 1995 " + PROMPT CP31 8 " a) effettuate nel primo semestre 1995 " END TEXT DLG_NULL BEGIN - PROMPT CP31 8 " b) effettuate nel secondo semestre 1995 " + PROMPT CP31 9 " b) effettuate nel secondo semestre 1995 " END TEXT DLG_NULL BEGIN - PROMPT CP31 9 "3) Versamento di conguaglio su utili in denaro " + PROMPT CP31 10 "3) Versamento di conguaglio su utili in denaro " END TEXT DLG_NULL BEGIN - PROMPT CP31 10 " a) effettuate nel primo semestre 1995 " + PROMPT CP31 11 " a) effettuate nel primo semestre 1995 " END TEXT DLG_NULL BEGIN - PROMPT CP31 11 " meno recuperi " + PROMPT CP31 12 " meno recuperi " END TEXT DLG_NULL BEGIN - PROMPT CP31 12 " b) effettuate nel secondo semestre 1995 " + PROMPT CP31 13 " b) effettuate nel secondo semestre 1995 " END TEXT DLG_NULL BEGIN - PROMPT CP31 13 " meno recuperi " + PROMPT CP31 14 " meno recuperi " END TEXT DLG_NULL BEGIN - PROMPT CP31 14 "4) Ritenuta 10% sugli utili corrisposti da società" + PROMPT CP31 15 "4) Ritenuta 10% sugli utili corrisposti da società" END TEXT DLG_NULL BEGIN - PROMPT CP31 15 " cooperative ai soci persone fisiche " + PROMPT CP31 16 " cooperative ai soci persone fisiche " END TEXT DLG_NULL BEGIN - PROMPT CP31 16 " a) effettuate nel primo semestre 1995 " + PROMPT CP31 17 " a) effettuate nel primo semestre 1995 " END TEXT DLG_NULL BEGIN - PROMPT CP31 17 " b) effettuate nel secondo semestre 1995 " + PROMPT CP31 18 " b) effettuate nel secondo semestre 1995 " END TEXT DLG_NULL BEGIN - PROMPT CP34 18 "@bTOTALE " + PROMPT CP34 19 "@bTotale" END ENDPAGE diff --git a/m770/771290.cpp b/m770/771290.cpp index 4371cc73b..2b16504db 100755 --- a/m770/771290.cpp +++ b/m770/771290.cpp @@ -27,8 +27,8 @@ class TQuadro_H_app : public TRelation_application long _codditta; int _anno; TString _ente; - bool _registra; - + bool _registra; + protected: virtual bool user_create(); virtual bool user_destroy(); @@ -54,7 +54,6 @@ public: static bool dettaglio (TMask_field& f , KEY k); static bool desc_ente (TMask_field& f , KEY k); static bool codditta_hnd(TMask_field& f , KEY k); - TQuadro_H_app() {} }; @@ -74,8 +73,8 @@ bool TQuadro_H_app::codditta_hnd(TMask_field& f, KEY k) } return TRUE; -} - +} + void TQuadro_H_app::refresh(TMask& m) { TEdit_field& datore = _msk->efield(F_DAT); @@ -236,12 +235,10 @@ void TQuadro_H_app::init_insert_mode(TMask& m) void TQuadro_H_app::init_query_mode(TMask& m) { on_config_change(); - m.set(F_H1ANNO, _anno); - +// m.field(F_H1ANNO).set_dirty(FALSE); m.disable(F_BTG_GENERA); m.disable(F_BTG_DETTAGLIO); - m.show(F_ENTE); m.hide(F_ENTEBIS); } diff --git a/m770/771290a.uml b/m770/771290a.uml index f5d1c87e3..2d3f05a96 100755 --- a/m770/771290a.uml +++ b/m770/771290a.uml @@ -16,17 +16,16 @@ END ENDPAGE -PAGE "Gestione quadro H" -1 -1 78 18 +PAGE "Quadro H" -1 -1 78 18 -GROUPBOX DLG_NULL 78 4 +GROUPBOX DLG_NULL 78 3 BEGIN - PROMPT 0 0 "" - FLAGS "R" + PROMPT 1 0 "" END NUMBER F_CODDITTA 5 BEGIN - PROMPT 2 1 "Ditta " + PROMPT 3 1 "Ditta " FLAGS "GRD" USE LF_NDITTE KEY 1 FIELD LF_QUAH->CODDITTA @@ -40,18 +39,18 @@ END STRING F_RAGSOC 50 BEGIN - PROMPT 2 2 "Ragione sociale " + PROMPT 17 1 "Ragione " FLAGS "D" END NUMBER F_H1ANNO 4 BEGIN - PROMPT 2 5 "Anno dichiarazione " + PROMPT 52 3 "Anno dichiarazione " FIELD LF_QUAH->H1ANNO KEY 1 - USE LF_QUAH KEY 1 SELECT ((CODDITTA=#F_CODDITTA) && (H1ANNO=#F_H1ANNO)) + USE LF_QUAH CHECKTYPE REQUIRED - INPUT CODDITTA F_CODDITTA + INPUT CODDITTA F_CODDITTA SELECT INPUT H1ANNO F_H1ANNO DISPLAY "Ditta" CODDITTA DISPLAY "Anno" H1ANNO @@ -63,20 +62,20 @@ BEGIN OUTPUT F_DAT H1DAT OUTPUT F_LAV H1LAV FLAGS "R" -END +END TEXT DLG_NULL BEGIN - PROMPT 2 7 "Ente previdenziale" + PROMPT 2 7 "Ente previdenziale assistenza percettore" END - + NUMBER F_ENTE 2 BEGIN - PROMPT 2 8 "e assistenza percettore " + PROMPT 2 8 "" COPY USE F_H1ANNO CHECKTYPE REQUIRED - INPUT CODDITTA F_CODDITTA - INPUT H1ANNO F_H1ANNO + INPUT CODDITTA F_CODDITTA SELECT + INPUT H1ANNO F_H1ANNO SELECT INPUT H1ENTE F_ENTE COPY DISPLAY F_H1ANNO COPY OUTPUT F_H1ANNO @@ -87,9 +86,9 @@ END NUMBER F_ENTEBIS 2 BEGIN - PROMPT 2 8 "e assistenza percettore tabella " + PROMPT 2 8 "" FLAGS "G" - USE %ENT KEY 1 + USE %ENT CHECKTYPE FORCED INPUT CODTAB F_ENTEBIS DISPLAY "Codice" CODTAB @@ -104,7 +103,7 @@ END STRING F_DESCENTE 60 BEGIN - PROMPT 2 9 "Descrizione " + PROMPT 7 8 "" FLAGS "D" END diff --git a/m770/771295a.uml b/m770/771295a.uml index 01b24693f..ccadaf5b1 100755 --- a/m770/771295a.uml +++ b/m770/771295a.uml @@ -6,17 +6,16 @@ TOOLBAR "" 0 20 0 2 ENDPAGE -PAGE "Gestione dettaglio quadro H" -1 -1 78 18 +PAGE "Dettaglio quadro H" -1 -1 78 18 -GROUPBOX DLG_NULL 78 4 +GROUPBOX DLG_NULL 78 3 BEGIN - PROMPT 0 0 "" - FLAGS "R" + PROMPT 1 0 "" END NUMBER F_CODDITTA 5 BEGIN - PROMPT 2 1 "Ditta " + PROMPT 3 1 "Ditta " FLAGS "FRD" USE LF_NDITTE KEY 1 FIELD LF_DETH->CODDITTA @@ -30,13 +29,13 @@ END STRING F_RAGSOC 50 BEGIN - PROMPT 2 2 "Ragione sociale " + PROMPT 17 1 "Ragione " FLAGS "D" END NUMBER F_ANNO 4 BEGIN - PROMPT 2 4 "Anno dichiarazione " + PROMPT 52 3 "Anno dichiarazione " FIELD LF_DETH->ANNO KEY 1 USE LF_DETH KEY 1 SELECT ((CODDITTA=#F_CODDITTA) && (ANNO=#F_ANNO) && (ENTE=#F_ENTE)) @@ -52,12 +51,17 @@ BEGIN OUTPUT F_ENTE ENTE OUTPUT F_DATAVERS DATAVERS OUTPUT F_NUMVERS NUMVERS - FLAGS "R" + FLAGS "RD" END - + +TEXT DLG_NULL +BEGIN + PROMPT 2 7 "Ente previdenziale assistenza percettore" +END + NUMBER F_ENTE 2 BEGIN - PROMPT 2 5 "Ente " + PROMPT 2 8 "" COPY USE F_ANNO CHECKTYPE REQUIRED INPUT CODDITTA F_CODDITTA @@ -67,19 +71,19 @@ BEGIN COPY OUTPUT F_ANNO FIELD LF_DETH->ENTE VALIDATE NOT_EMPTY_FUNC - FLAGS "G" + FLAGS "GD" KEY 1 END STRING F_DESCRENTE 60 BEGIN - PROMPT 2 6 "Descrizione " + PROMPT 7 8 "" FLAGS "D" END DATE F_DATAVERS BEGIN - PROMPT 2 7 "Data versamento " + PROMPT 2 10 "Data versamento " COPY USE F_ANNO CHECKTYPE REQUIRED INPUT CODDITTA F_CODDITTA @@ -94,7 +98,7 @@ END NUMBER F_NUMVERS 5 BEGIN - PROMPT 2 8 "Numero versamento " + PROMPT 2 11 "Numero versamento " COPY USE F_ANNO CHECKTYPE REQUIRED INPUT CODDITTA F_CODDITTA @@ -111,14 +115,14 @@ END NUMBER F_NREGINOTA 7 BEGIN - PROMPT 2 10 "N.ro registr. I nota " + PROMPT 2 12 "N.ro registr. I nota " FLAGS "R" FIELD LF_DETH->NREGINOTA END NUMBER F_IMPVERS 15 BEGIN - PROMPT 2 11 "Importo versato " + PROMPT 2 13 "Importo versato " PICTURE "." FLAGS "R" FIELD LF_DETH->IMPVERS @@ -126,12 +130,12 @@ END TEXT DLG_NULL BEGIN - PROMPT 2 12 "Contributi obbligatori" + PROMPT 2 14 "Contributi obbligatori" END NUMBER F_CONTRDAT 15 BEGIN - PROMPT 2 13 "a carico del datore di lavoro " + PROMPT 2 15 "a carico del datore di lavoro " FIELD LF_DETH->CONTRDAT PICTURE "." FLAGS "R" @@ -139,12 +143,12 @@ END TEXT DLG_NULL BEGIN - PROMPT 2 14 "Contributi obbligatori a" + PROMPT 2 16 "Contributi obbligatori a" END NUMBER F_CONTRLAV 15 BEGIN - PROMPT 2 15 "carico del lavoratore dipendente " + PROMPT 2 17 "carico del lavoratore dipendente " FIELD LF_DETH->CONTRLAV PICTURE "." FLAGS "R" diff --git a/m770/776600.cpp b/m770/776600.cpp index a66610568..b11a36ecb 100755 --- a/m770/776600.cpp +++ b/m770/776600.cpp @@ -1,216 +1,216 @@ -// 776600.cpp - Gestione estinti -#include -#include -#include -#include -#include -#include -#include "776600a.h" -#include "77lib.h" -// -// Lista modifiche -// 3.4.96 Aggiunto controllo in save() per impedire la creazione di un record-dichiarazione -// anche quando si vuol solo cancellare il codice dichiarante senza immetterne un altro -// - -class TEstinti_app : public TApplication -{ - long _codditta; - TMask* _msk; - TLocalisamfile* _base, *_basebis; - TRelation* _rel; - TCursor* _cur; - TBrowse_sheet* _estint_sheet; - static bool show_estinti(TMask_field& f, KEY k); - void force_output(int dlg, const long cod); - -protected: - virtual bool create(); - virtual bool destroy(); - virtual bool menu(MENU_TAG m); - bool save(TMask& m, const long coddic_prec); - bool set_codditta(TMask_field& f); - bool main_loop(); - -public: - TEstinti_app(); - ~TEstinti_app() {}; -}; - -TEstinti_app& app() { return (TEstinti_app&) main_app(); } - -TEstinti_app::TEstinti_app(): - _base(NULL), - _basebis(NULL), - _rel(NULL), - _msk(NULL), - _cur(NULL), - _estint_sheet(NULL) - {} - - -bool TEstinti_app::set_codditta(TMask_field& f) -{ - TString16 codditta; - codditta << get_firm_770(); - if (codditta != "0") - { - f.set(codditta); -// f.set_dirty(); - f.check(); - } - return TRUE; -} - -bool TEstinti_app::show_estinti(TMask_field& f, KEY k) -{ - if (k == K_SPACE) - app()._estint_sheet->run(); - return TRUE; -} - -bool TEstinti_app::create() -{ - TApplication::create(); - _base = new TLocalisamfile(LF_BASE); - _basebis = new TLocalisamfile(LF_BASEBIS); - _msk = new TMask("776600a"); - _rel = new TRelation(LF_BASE); - _rel->add(LF_NDITTE, "CODDITTA=CODDITTA"); - - _codditta = get_firm_770(); - set_codditta(_msk->field(F_CODDITTA)); - TString16 filt; - filt.format("CODDIC=%ld", _codditta); - _cur = new TCursor(_rel, filt); - TEdit_field& dummy = (TEdit_field&)_msk->field(F_CODDIC_DUMMY); - TToken_string siblings; - _estint_sheet = new TBrowse_sheet(_cur,"CODDITTA|9->RAGSOC", "Elenco estinti", - "Codice|Ragione sociale@50", 8, &dummy, siblings); - _msk->set_handler(F_ESTINTI, show_estinti); - dispatch_e_menu (BAR_ITEM(1)); - return TRUE; -} - -bool TEstinti_app::destroy() -{ - delete _estint_sheet; - delete _rel; delete _cur; - delete _msk; delete _base; delete _basebis; - return TApplication::destroy(); -} - -void TEstinti_app::force_output(int dlg, const long codditta) -{ - TLocalisamfile ditte(LF_NDITTE); - ditte.zero(); - ditte.put("CODDITTA", (long)codditta); - int ret = ditte.read(_isequal); - if (ret == NOERR) - { - TString80 ragsoc(ditte.get("RAGSOC")); - _msk->set(dlg, ragsoc); - } -} - -bool TEstinti_app::save(TMask& m, const long codic_prec) -{ - const long new_codic = m.get_long(F_CODDIC); - TRectype _rec = _base->curr(); - _base->setkey(1); - _rec.zero(); - _rec.put("TIPOQUA", ' '); - _rec.put("CODDITTA",(long)_codditta); - if (_base->read(_rec) == NOERR) - { - _rec.put("CODDIC",(long)new_codic); - _base->rewrite(_rec); - } - -// Stessa cosa su basebis - TRectype _recbis = _basebis->curr(); - _basebis->setkey(1); - _recbis.zero(); - _recbis.put("TIPOQUA", ' '); - _recbis.put("CODDITTA",(long)_codditta); - - if (_basebis->read(_recbis) == NOERR) - { - _recbis.put("CODDIC",(long)new_codic); - _basebis->rewrite(_rec); - } - -// Crea il record globale per il dichiarante scelto se non esiste -// 3.4.96 - Solo se il dichiarante e' diverso da 0, senno' quando si vuol cancellare -// il dichiarante crea un record duplicato! - if (new_codic != 0L) - if (!exist_dichiar_770(new_codic, TRUE)) - enter_dichiar_770(new_codic, anno_770(), TRUE); - - return TRUE; -} - -bool TEstinti_app::main_loop() -{ - KEY tasto = K_ESC; - - const long codditta = _msk->get_long(F_CODDITTA); - _base->zero(); - _base->setkey(1); - _base->put("CODDITTA", (long)codditta); - _base->read(); - _msk->open_modal(); - - while (tasto != K_QUIT) - { - const bool dichiarante = sogg_dic(_codditta); - long coddic = 0L; - if (!dichiarante) - coddic = sogg_estinto(_codditta); - _msk->set(F_CODDIC, coddic); - - force_output(F_RAGSOC, coddic); - _msk->enable(F_CODDIC, !dichiarante); - _msk->enable(F_ESTINTI, dichiarante); - _msk->enable(DLG_SAVEREC,!dichiarante); - - tasto = _msk->run(); - - switch (tasto) { - case K_ENTER: - if (_msk->dirty()) -// Se e' un dichiarante F_CODDIC e' disabilitato e non c'e' nulla da salvare - if (!dichiarante) - save(*_msk, coddic); - break; - case K_ESC : - tasto = K_QUIT; - break; - case K_QUIT : - break; - case K_SAVE : - if (!dichiarante) - save(*_msk, coddic); - break; - default: - break; - } - } - _msk->close(); - return FALSE; -} - -bool TEstinti_app::menu(MENU_TAG m) -{ - if (m == BAR_ITEM(1)) - return main_loop(); - return FALSE; -} - -int Estinti(int argc, char* argv[]) -{ - TEstinti_app a; - a.run(argc, argv, "Gestione dichiarante / estinti"); - return 0; -} - +// 776600.cpp - Gestione estinti +#include +#include +#include +#include +#include +#include +#include "776600a.h" +#include "77lib.h" +// +// Lista modifiche +// 3.4.96 Aggiunto controllo in save() per impedire la creazione di un record-dichiarazione +// anche quando si vuol solo cancellare il codice dichiarante senza immetterne un altro +// + +class TEstinti_app : public TApplication +{ + long _codditta; + TMask* _msk; + TLocalisamfile* _base, *_basebis; + TRelation* _rel; + TCursor* _cur; + TBrowse_sheet* _estint_sheet; + static bool show_estinti(TMask_field& f, KEY k); + void force_output(int dlg, const long cod); + +protected: + virtual bool create(); + virtual bool destroy(); + virtual bool menu(MENU_TAG m); + bool save(TMask& m, const long coddic_prec); + bool set_codditta(TMask_field& f); + bool main_loop(); + +public: + TEstinti_app(); + ~TEstinti_app() {}; +}; + +TEstinti_app& app() { return (TEstinti_app&) main_app(); } + +TEstinti_app::TEstinti_app(): + _base(NULL), + _basebis(NULL), + _rel(NULL), + _msk(NULL), + _cur(NULL), + _estint_sheet(NULL) + {} + + +bool TEstinti_app::set_codditta(TMask_field& f) +{ + TString16 codditta; + codditta << get_firm_770(); + if (codditta != "0") + { + f.set(codditta); +// f.set_dirty(); + f.check(); + } + return TRUE; +} + +bool TEstinti_app::show_estinti(TMask_field& f, KEY k) +{ + if (k == K_SPACE) + app()._estint_sheet->run(); + return TRUE; +} + +bool TEstinti_app::create() +{ + TApplication::create(); + _base = new TLocalisamfile(LF_BASE); + _basebis = new TLocalisamfile(LF_BASEBIS); + _msk = new TMask("776600a"); + _rel = new TRelation(LF_BASE); + _rel->add(LF_NDITTE, "CODDITTA=CODDITTA"); + + _codditta = get_firm_770(); + set_codditta(_msk->field(F_CODDITTA)); + TString16 filt; + filt.format("CODDIC=%ld", _codditta); + _cur = new TCursor(_rel, filt); + TEdit_field& dummy = (TEdit_field&)_msk->field(F_CODDIC_DUMMY); + TToken_string siblings; + _estint_sheet = new TBrowse_sheet(_cur,"CODDITTA|9->RAGSOC", "Elenco estinti", + "Codice|Ragione sociale@50", 8, &dummy, siblings); + _msk->set_handler(F_ESTINTI, show_estinti); + dispatch_e_menu (BAR_ITEM(1)); + return TRUE; +} + +bool TEstinti_app::destroy() +{ + delete _estint_sheet; + delete _rel; delete _cur; + delete _msk; delete _base; delete _basebis; + return TApplication::destroy(); +} + +void TEstinti_app::force_output(int dlg, const long codditta) +{ + TLocalisamfile ditte(LF_NDITTE); + ditte.zero(); + ditte.put("CODDITTA", (long)codditta); + int ret = ditte.read(_isequal); + if (ret == NOERR) + { + TString80 ragsoc(ditte.get("RAGSOC")); + _msk->set(dlg, ragsoc); + } +} + +bool TEstinti_app::save(TMask& m, const long codic_prec) +{ + const long new_codic = m.get_long(F_CODDIC); + TRectype _rec = _base->curr(); + _base->setkey(1); + _rec.zero(); + _rec.put("TIPOQUA", ' '); + _rec.put("CODDITTA",(long)_codditta); + if (_base->read(_rec) == NOERR) + { + _rec.put("CODDIC",(long)new_codic); + _base->rewrite(_rec); + } + +// Stessa cosa su basebis + TRectype _recbis = _basebis->curr(); + _basebis->setkey(1); + _recbis.zero(); + _recbis.put("TIPOQUA", ' '); + _recbis.put("CODDITTA",(long)_codditta); + + if (_basebis->read(_recbis) == NOERR) + { + _recbis.put("CODDIC",(long)new_codic); + _basebis->rewrite(_rec); + } + +// Crea il record globale per il dichiarante scelto se non esiste +// 3.4.96 - Solo se il dichiarante e' diverso da 0, senno' quando si vuol cancellare +// il dichiarante crea un record duplicato! + if (new_codic != 0L) + if (!exist_dichiar_770(new_codic, TRUE)) + enter_dichiar_770(new_codic, anno_770(), TRUE); + + return TRUE; +} + +bool TEstinti_app::main_loop() +{ + KEY tasto = K_ESC; + + const long codditta = _msk->get_long(F_CODDITTA); + _base->zero(); + _base->setkey(1); + _base->put("CODDITTA", (long)codditta); + _base->read(); + _msk->open_modal(); + + while (tasto != K_QUIT) + { + const bool dichiarante = sogg_dic(_codditta); + long coddic = 0L; + if (!dichiarante) + coddic = sogg_estinto(_codditta); + _msk->set(F_CODDIC, coddic); + + force_output(F_RAGSOC, coddic); + _msk->enable(F_CODDIC, !dichiarante); + _msk->enable(F_ESTINTI, dichiarante); + _msk->enable(DLG_SAVEREC,!dichiarante); + + tasto = _msk->run(); + + switch (tasto) { + case K_ENTER: + if (_msk->dirty()) +// Se e' un dichiarante F_CODDIC e' disabilitato e non c'e' nulla da salvare + if (!dichiarante) + save(*_msk, coddic); + break; + case K_ESC : + tasto = K_QUIT; + break; + case K_QUIT : + break; + case K_SAVE : + if (!dichiarante) + save(*_msk, coddic); + break; + default: + break; + } + } + _msk->close(); + return FALSE; +} + +bool TEstinti_app::menu(MENU_TAG m) +{ + if (m == BAR_ITEM(1)) + return main_loop(); + return FALSE; +} + +int Estinti(int argc, char* argv[]) +{ + TEstinti_app a; + a.run(argc, argv, "Gestione dichiarante / estinti"); + return 0; +} + diff --git a/m770/77g1.cpp b/m770/77g1.cpp index aebc720f6..c85bbc411 100755 --- a/m770/77g1.cpp +++ b/m770/77g1.cpp @@ -20,7 +20,7 @@ TQuadroG1::TQuadroG1() { _registra = FALSE; _quadro = "G1"; - _title = "Quadro G-1"; + _title = "Quadro G1"; } inline TQuadroG1& app() { return (TQuadroG1&) main_app(); } @@ -94,6 +94,10 @@ bool TQuadroG1::user_create() _msk = new TMask("77g1a"); _rel = new TRelation(LF_QUAG1); _codditta = get_firm_770(); + _msk->disable(DLG_CANCEL); // disabilito Annulla nella toolbar + _msk->disable(DLG_NEWREC); // disabilito Nuovo nella toolbar + _msk->disable(DLG_DELREC); // disabilito Elimina nella toolbar + _msk->disable(DLG_FINDREC); // disabilito Ricerca nella toolbar TSheet_field& p1 = (TSheet_field&) _msk->field(F_PI); p1.set_notify(p1_notify); return TRUE; diff --git a/m770/77g1a.uml b/m770/77g1a.uml index 7b98b5dbf..c46e284c6 100755 --- a/m770/77g1a.uml +++ b/m770/77g1a.uml @@ -1,9 +1,10 @@ -#include "77g1a.h" +#include "77g1a.h" + TOOLBAR "" 0 20 0 2 -#include "77toolb.h" +#include "toolbar.h" ENDPAGE -PAGE "Modello 770 - Quadro G-1" -1 -1 78 18 +PAGE "Quadro G1" -1 -1 78 18 GROUPBOX DLG_NULL 78 3 BEGIN @@ -19,7 +20,7 @@ BEGIN FIELD LF_QUAG1->CODDITTA KEY 1 CHECKTYPE REQUIRED - FLAGS "GR" + FLAGS "GRD" MESSAGE COPY,1@ END @@ -32,7 +33,7 @@ END TEXT DLG_NULL BEGIN - PROMPT 1 3 "@bPROSPETTO DEGLI UTILI E DELLE RITENUTE " + PROMPT 1 3 "@bProspetto degli utili e delle ritenute" END SPREADSHEET F_PI 0 13 diff --git a/m770/77lib01.cpp b/m770/77lib01.cpp index 2db76c287..28f9bf605 100755 --- a/m770/77lib01.cpp +++ b/m770/77lib01.cpp @@ -1,874 +1,874 @@ -// 77lib01.cpp -#include -#include -#include -#include -#include -#include -#include "scperc.h" -#include "perc.h" -#include "rver.h" -#include "rpag.h" -#include "quadrol.h" -#include "dipend.h" // per is_erede -// #include "770101.h" // per TSchedaPE (sembra non servire) -#include "77lib.h" - -HIDDEN real __dep; -HIDDEN TString80 __tmp; -HIDDEN const char* _build_key(TVersamento& vers); -// La ditta corrente 770 -HIDDEN long _codditta_770 = 0L; - -#define QUALIF_EREDE "11" - -////////////////////////////////////////////////////////////////////////////// -// Utility varie -////////////////////////////////////////////////////////////////////////////// -bool ricerca(const TMask& m) -{ - return (m.mode() == MODE_QUERY) || (m.mode() == MODE_QUERYINS); -} - -bool modifica(const TMask& m) -{ - return m.mode() == MODE_MOD; -} - -bool inserimento(const TMask& m) -{ - return m.mode() == MODE_INS; -} - -bool esiste_perc(char tipoa, const long codanagr) -{ -// Controllo che l'anagrafica esista - TLocalisamfile anag(LF_ANAG); - anag.zero(); - anag.put("TIPOA", tipoa); - anag.put("CODANAGR", (long)codanagr); - const bool esiste_anagr = anag.read() == NOERR; - return esiste_anagr; - /* - bool ok=FALSE; - TLocalisamfile fp(LF_PERC); - fp.zero(); - fp.put("CODDITTA", (long)codditta); - fp.put("TIPOA", tipoa); - fp.put("CODANAGR", (long) codanag); - ok = fp.read(); - return ok;*/ -} - -// Ritorna il codice fiscale del titolare di codditta -const char* cod_fis(const long codditta) -{ - TLocalisamfile ditte(LF_NDITTE); - ditte.zero(); - ditte.put("CODDITTA", (long)codditta); - int err = ditte.read(); - if (err) return NULL; - const char tipoa = ditte.get("TIPOA")[0]; - const long codanagr = ditte.get_long("CODANAGR"); - TLocalisamfile anagr(LF_ANAG); - anagr.zero(); - anagr.put(ANA_TIPOA, tipoa); - anagr.put(ANA_CODANAGR,(long)codanagr); - err = anagr.read(); - if (err) return NULL; - __tmp = anagr.get(ANA_COFI); - return __tmp; -} - -const char* get_desc_cau(const char* codcau) -{ - TTable ca7("%ca7"); - __tmp = ""; - ca7.zero(); - ca7.put("CODTAB", codcau); - const int rc = ca7.read(); - if (rc == NOERR) - __tmp = ca7.get("S0"); - return __tmp; -} - - -// -// Round_770 -// -// Round adattata per 770 - 1.12.95 -// Arrotonda cosi': -// se importo >= 500 importo -> 1000 -// se importo < 500 importo -> 0 -// L'unica differenza con round(-3) e' il comportamento -// alle 500 lire. -// -real& round_770(const real& importo) -{ - __dep = ZERO; - __dep = importo / 1000.00; - __dep = __dep + 0.499; - __dep.trunc(); - __dep *= 1000.00; - return __dep; -} - -int conta_tipiper(const long codit, TString& quadro, int* NumFisiche, int* NumNoFisiche) -{ - int file; - int ctrf=0, ctr_nof=0; - - if (quadro == "C") - file = LF_QUAC; - - if (quadro == "D") - file = LF_QUAD; - - if (quadro == "D1") - file = LF_QUAD1; - - if (quadro == "E") - file = LF_QUAE; - - if (quadro == "E1") - file = LF_QUAE1; - - if (quadro == "G") - file = LF_QUAGD; - - TLocalisamfile fl(file); - fl.zero(); - fl.put("CODDITTA", (long) codit); - TRectype dep(fl.curr()); - for (fl.read(); !fl.eof(); fl.next()) - { - if (fl.curr() > dep) - break; - const char tipoa = fl.get("TIPOA")[0]; - if (tipoa == 'F') - ctrf++; - else - ctr_nof++; - } - *NumFisiche = ctrf; - *NumNoFisiche = ctr_nof; - return 0; -} - -////////////////////////////////////////////////////////////////////////////// -// Gestione ditta 770 -////////////////////////////////////////////////////////////////////////////// -// Ritorna l'anno di dichiarazione sui parametri di studio -int anno_770() -{ - TConfig conf(CONFIG_STUDIO); - const int anno = (int)conf.get_long(ANNO_SEL, NULL, -1, TDate(TODAY).year()); - return anno; -} - -long get_firm_770() -{ - if (!_codditta_770) - { - const char* section = "77"; - TConfig cnf(CONFIG_USER, section); - _codditta_770 = cnf.get_long(DITTA_770, section); - } - - return _codditta_770; -} - -void set_firm_770(const long codditta) -{ - if (_codditta_770 == 0 || codditta != _codditta_770) - { - const char* section = "77"; - TConfig cnf(CONFIG_USER, section); - cnf.set(DITTA_770, codditta); - } - _codditta_770 = codditta; -} - -// Cerca di stabilire se il titolare della ditta e' PF o PG -char tipo_persona(long codditta) -{ - TLocalisamfile nditte(LF_NDITTE); - - nditte.zero(); - nditte.put("CODDITTA", (long)codditta); - - if (nditte.read() == NOERR) - return nditte.get_char("TIPOA"); - else - return NULL; -} - -// Stabilisce se coddip esiste -bool esiste_dipendente(const long codditta, const long coddip) -{ - TLocalisamfile dip (LF_DIPEND); - dip.zero(); - dip.put(DIP_CODDITTA, codditta); - dip.put(DIP_CODIP, coddip); - return dip.read() == NOERR; -} - -// Stabilisce se coddip e' un dipendente non erede e non deceduto -bool is_dipendente(const long codditta, const long coddip) -{ - return !(is_erede(codditta,coddip) || is_deceduto(codditta,coddip)); -} - -// Stabilisce se il dipendente e' un erede -// SE QUALIFICA=11 17.7.96 -bool is_erede(const long codditta, const long coddip) -{ - TLocalisamfile dip (LF_DIPEND); - TString sQualif; - dip.setkey(1); - dip.zero(); - dip.put(DIP_CODDITTA, (long)codditta); - dip.put(DIP_CODIP, (long)coddip); - if (dip.read() == NOERR) - sQualif = dip.get(DIP_QUALIFICA); - sQualif.trim(); - return sQualif == QUALIF_EREDE; -} - -// Stabilisce se il dipendente e' un deceduto -// Se un qualunque codice erede e' stato compilato => e' un deceduto -bool is_deceduto(const long codditta, const long coddip) -{ - TLocalisamfile dip (LF_DIPEND); - dip.zero(); - dip.put(DIP_CODDITTA, codditta); - dip.put(DIP_CODIP, coddip); - bool ok = dip.read() == NOERR; - if (!ok) return FALSE; - for (int i=0; i < 10; i++) - { - TString campo("CODEREDE"); - campo << i; - TString16 dep; - dep = dip.get(campo); - if (dep.not_empty()) - return TRUE; - } - return FALSE; -} - -const int MAX_EREDI = 10; - -bool scrivi_erede(const long codditta, const long deceduto, const long coddip) -{ - bool esiste=FALSE, trovato=FALSE; - TLocalisamfile dip (LF_DIPEND); - - dip.zero(); - dip.put(DIP_CODDITTA, (long)codditta); - dip.put(DIP_CODIP, (long)deceduto); - esiste = dip.read(_isequal, _lock) == NOERR; - - if (!esiste) return FALSE; - - for (int i=0; izero(); - rpag->put(PAG_CODDITTA, sch.codditta()); - rpag->put(PAG_TIPOA, sch.tipoa()); - rpag->put(PAG_CODANAGR, sch.codanagr()); - rpag->put(PAG_NPROG, sch.nprog()); - TRectype mst(rpag->curr()); - for (rpag->read(_isgteq); !rpag->eof(); rpag->next()) - { - if (rpag->curr() > mst) break; - const TDate datapag = rpag->get_date(PAG_DATAPAG); - const int annopag = datapag.year(); - if (filtra_anno) - { - const int annopag = datapag.year(); - if (annopag == annodic) - return TRUE; - } - - if (filtra_periodo) - { - if (datapag <= data_a && datapag >= data_da) - return TRUE; - } - } - return FALSE; -} - -////////////////////////////////////////////////////////////////////////////// -// Dichiarazioni -////////////////////////////////////////////////////////////////////////////// -// -// Controlla se esiste il record sul base. Se (dichiarante) => controlla se c'e' -// il record del quadro I "globale" di codditta (che deve essere quindi -// un dichiarante) -// -bool exist_dichiar_770(long codditta, bool dichiarante) -{ - int status; - TLocalisamfile base(LF_BASE); - - base.zero(); - base.setkey(1); - if (dichiarante) - base.put("TIPOQUA", COD_QUA_I_DIC); - base.put("CODDITTA", (long)codditta); - status = base.read(); - return status == NOERR; -} - -// -// Idem come sopra. Se (sogg_dich) s'intende che voglio creare il quadro I -// "globale" per un sogg. dichiarante -// -bool enter_dichiar_770(long codditta, int anno_dic, bool sogg_dich) -{ - int rc1, rc1wr, rc1rw, rc2, rc2wr, rc2rw; - TLocalisamfile base(LF_BASE); - TLocalisamfile basebis(LF_BASEBIS); - - rc1wr = NOERR; - rc1rw = NOERR; - rc2wr = NOERR; - rc2rw = NOERR; - - base.zero(); - base.put("CODDITTA", (long)codditta); - base.put("ANNODIC", (long)anno_dic); - if (sogg_dich) - base.put("TIPOQUA", COD_QUA_I_DIC); - TRectype dep1(base.curr()); - - rc1 = base.read(); - if (rc1 == NOERR) - rc1rw = base.rewrite(); - else - { - base.curr() = dep1; - rc1wr = base.write(); - } - -#ifdef DBG - if (rc1wr != NOERR) - warning_box("write su base fallita codice %d", rc1wr); - if (rc1rw != NOERR) - warning_box("rewrite su base fallita codice %d", rc1rw); -#endif - -// Devo scrivere anche su BASEBIS ! - basebis.zero(); - basebis.put("CODDITTA", (long)codditta); - if (sogg_dich) - basebis.put("TIPOQUA", COD_QUA_I_DIC); - TRectype dep2(basebis.curr()); - rc2 = basebis.read(); - if (rc2 == NOERR) - rc2rw = basebis.rewrite(); - else - { - basebis.curr() = dep2; - rc2wr = basebis.write(); - } - -#ifdef DBG - if (rc2wr != NOERR) - warning_box("write su basebis fallita codice %d", rc2wr); - if (rc2rw != NOERR) - warning_box("rewrite su basebis fallita codice %d", rc2rw); -#endif - -// return (rc1 == NOERR && rc2 == NOERR); - return TRUE; -} - -// 20.12.95 flag di quadro compilato legato all'anno dich. -bool esiste_record_L(const long codditta, const int annodic) -{ - TLocalisamfile qual(LF_QUAL); - bool found = FALSE; - qual.zero(); - qual.put(QUL_CODDITTA, (long)codditta); - for (qual.read(); !qual.eof(); qual.next()) - { - const long cod = qual.get_long(QUL_CODDITTA); - if (cod != codditta) break; - const int adic = qual.get_int(QUL_QLAP); - found = adic == annodic; - if (found) break; - } - return found; -} - -long sogg_estinto(const long codditta) -{ - TLocalisamfile base(LF_BASE); - long coddic = 0L; - - base.zero(); - base.setkey(1); - base.put("TIPOQUA", ""); - base.put("CODDITTA", (long)codditta); - const int rc = base.read(); - if (rc != NOERR) - base.zero(); - coddic = base.get_long("CODDIC"); - return coddic; -} - -bool sogg_dic(const long codditta) -{ - TLocalisamfile base(LF_BASE); - - base.zero(); - base.setkey(2); - base.put("CODDIC", codditta); - const int rc = base.read(); - if (rc == _iseof) base.zero(); - const long codic = base.get_long("CODDIC"); - return codic == codditta; -} - -//////////////////////////////////////////////////////////////////////////// -// Array sheet 'modificato' -//////////////////////////////////////////////////////////////////////////// -TToken_string& TNikArray_sheet::row(int i) -{ - return (TToken_string&)_interno[i]; -} - -long TNikArray_sheet::add(TToken_string& s) -{ - _interno.add(s); - TToken_string vis(40); - for (int i = 0; i < _visible_items; i++) - { - const char* tmp = s.get(i); - vis.add(tmp); - } - - return TArray_sheet::add(vis); -} - -bool TNikArray_sheet::destroy(int i) -{ - _interno.destroy(); - return TArray_sheet::destroy(i); -} - -//////////////////////////////////////////////////////////////////////////// -// Collegamento CG - 770 -//////////////////////////////////////////////////////////////////////////// -TLink770::TLink770() -{ - _tipo_coll = nessuno; - _immissione = _tipo = NULL; - _codanagr = _numreg = 0L; - _totdoc = _spese = _compenso = _imposte = _ritenute = ZERO; -} - -bool TLink770::read(const char* msg) -{ - TToken_string mesg(msg); - - _tipo_coll = (TTipo_coll)mesg.get_int(0); - _immissione = mesg.get_char(1); - _tipo = mesg.get_char(2); - _codanagr = mesg.get_long(3); - _numreg = mesg.get_long(4); - _numdoc = mesg.get(5); - _datadoc = mesg.get(6); - _totdoc = real(mesg.get(7)); - _spese = real(mesg.get(8)); - _compenso = real(mesg.get(9)); - _imposte = real(mesg.get(10)); - _ritenute = real(mesg.get(11)); - - if (_tipo_coll == fattura) - if ( (_tipo != 'F' && _tipo != 'G') || _codanagr <= 0L ) - return FALSE; - - return TRUE; -} - -TPercipiente::TPercipiente(const TRectype& rec) -{ - _codditta = rec.get_long(PRC_CODDITTA); - _tipoa = rec.get(PRC_TIPOA)[0]; - _codanagr = rec.get_long(PRC_CODANAGR); -} - -// Determina se per il percipiente esiste almeno una scheda -bool TPercipiente::esiste_scheda() -{ - TLocalisamfile sch(LF_SCPERC); - sch.zero(); - sch.put(SCH_CODDITTA, _codditta); - sch.put(SCH_TIPOA, _tipoa); - sch.put(SCH_CODANAGR, _codanagr); - TRectype dep(sch.curr()); - sch.read(); - return sch.curr() == dep; -} - -bool TPercipiente::elimina_schede() -{ - TLocalisamfile sch(LF_SCPERC); - sch.zero(); - sch.put(SCH_CODDITTA, codditta()); - sch.put(SCH_TIPOA, tipoa()); - sch.put(SCH_CODANAGR, codanagr()); - TRectype dep(sch.curr()); - for (sch.read(); !sch.eof(); sch.next()) - { - if (sch.curr() > dep) - break; - TSchedaP scheda(sch.curr()); - scheda.remove(); - } - return TRUE; -} - -int TSchedaP::anno_doc() const -{ - int anno_doc; - anno_doc = _data_doc.year(); - return anno_doc; -} - -real TSchedaP::compenso_doc() const -{ - return _compenso_doc; -} - -real TSchedaP::spese_doc() const -{ - return _spese_doc; -} - - -int TSchedaP::remove() -{ - int err1=0, err2=0; - - TLocalisamfile sch(LF_SCPERC); - sch.put(SCH_CODDITTA, codditta()); - sch.put(SCH_TIPOA, tipoa()); - sch.put(SCH_CODANAGR, codanagr()); - sch.put(SCH_NPROG, nprog()); - err1 = sch.read(_isequal, _testandlock); - bool esiste = err1 == NOERR; - if (!esiste) - { - sch.reread(_unlock); - return SCHEDA_NON_ESISTENTE; - } - -// Elimino i pagamenti - TLocalisamfile rpag(LF_RPAG); - rpag.put(PAG_CODDITTA, codditta()); - rpag.put(PAG_TIPOA, tipoa()); - rpag.put(PAG_CODANAGR, codanagr()); - rpag.put(PAG_NPROG, nprog()); - TRectype pagrec(rpag.curr()); - for (rpag.read(_isgteq); !rpag.eof(); rpag.next()) - { - if (rpag.curr() > pagrec) - break; - rpag.reread(_testandlock); - err1 = rpag.remove(); - if (err1 != NOERR) - { - warning_box("Elimina righe pag. errore: %d", err1); - rpag.reread(_unlock); - break; - } - rpag.reread(_unlock); - } - -// E poi i versamenti - TLocalisamfile rver(LF_RVER); - rver.put(VER_CODDITTA, codditta()); - rver.put(VER_TIPOA, tipoa()); - rver.put(VER_CODANAGR, codanagr()); - rver.put(VER_NPROG, nprog()); - TRectype verrec(rver.curr()); - for (rver.read(_isgteq); !rver.eof(); rver.next()) - { - if (rver.curr() > verrec) - break; - rver.reread(_testandlock); - err2 = rver.remove(); - if (err2 != NOERR) - { - warning_box("Elimina righe ver. errore: %d", err2); - rver.reread(_unlock); - break; - } - rver.reread(_unlock); - } - -// Alla fine se tutto e' andato bene rimuovo la testata della scheda - if (err1 == NOERR && err2 == NOERR) err1 = sch.remove(); - return err1 + err2; // (NOERR e' 0) -} - -bool TSchedaP::read() -{ - bool ok = FALSE; - TLocalisamfile sch(LF_SCPERC); - sch.put(SCH_CODDITTA, codditta()); - sch.put(SCH_TIPOA, tipoa()); - sch.put(SCH_CODANAGR, codanagr()); - sch.put(SCH_NPROG, nprog()); - const int rc = sch.read(); - ok = rc == NOERR; - if (ok) - { - _compenso_doc = sch.get_real(SCH_COMPENSO); - _spese_doc = sch.get_real(SCH_SPESE); - _data_doc = sch.get_date(SCH_DATADOC); - } - return ok; -} - -TSchedaP::~TSchedaP() -{ -} - -TSchedaP::TSchedaP (const long codditta, const char tipoa, const long codanagr, const int nprog) - : _codditta(codditta), _tipoa(tipoa), _codanagr(codanagr), _nprog(nprog) -{ - _compenso_doc = _spese_doc = ZERO; -} - -TSchedaP::TSchedaP(TRectype& rec) -{ - _codditta = rec.get_long("CODDITTA"); - _tipoa = rec.get("TIPOA")[0]; - _codanagr = rec.get_long("CODANAGR"); - _nprog = rec.get_int("NPROG"); -} - -TVersamento::TVersamento(TRectype& rec) -{ - _codditta = rec.get_long(VER_CODDITTA); - _tipoa = rec.get(VER_TIPOA)[0]; - _codanagr = rec.get_long(VER_CODANAGR); - _nprog = rec.get_int(VER_NPROG); - _nriga = rec.get_int(VER_NRIGA); -} - -void TVersamento::set(TToken_string& row) -{ - _codditta = atol(row.get(0)); - _tipoa = row.get()[0]; - _codanagr = atol(row.get()); - _nprog = atoi(row.get()); - _nriga = atoi(row.get()); - _importo_versato = real(row.get()); -} - -void TVersamento::set(const long codditta, const char tipoa, const long codanagr, - const int nprog, const int nriga, const real& impvers) -{ - _codditta=codditta; - _tipoa=tipoa; - _codanagr=codanagr; - _nprog=nprog; - _nriga = nriga; - _importo_versato = impvers; -} - - -TVersamento_stampa::TVersamento_stampa(const long codditta, const char tipoa, const long codanagr, const int nprog, const int nriga, const real& impvers) : - TVersamento(codditta, tipoa, codanagr, nprog, nriga, impvers) -{ - _gia_letti_pag = FALSE; - _num_last_pag = 0; -} - - -void TVersamento_stampa::set(const long codditta, const char tipoa, const long codanagr, - const int nprog, const int nriga, const real& impvers) -{ -// se sto cambiando versamento resetto il flag "pagamenti gia' letti" - if ((_nriga && nriga != _nriga) || (_nprog && nprog != _nprog) || - (_tipoa != '\0' && tipoa != _tipoa) || (_codditta != 0 && _codditta != codditta) || - (_codanagr != 0 && _codanagr != codanagr) ) - { - _gia_letti_pag = FALSE; - _importo_versato = ZERO; - _importo_versato_residuo = ZERO; - } - - _codditta = codditta; - _tipoa = tipoa; - _codanagr = codanagr; - _nprog = nprog; - _nriga = nriga; - _importo_versato = impvers; -} - -int TVersamento_stampa::num_pags(TLocalisamfile* pag) -{ - if (!_gia_letti_pag) - _num_pags = read_pags(pag); - return _num_pags; -} - -int TVersamento_stampa::read_pags(TLocalisamfile* frpag) -{ - TLocalisamfile* tmp = frpag ? NULL : new TLocalisamfile(LF_RPAG); - TLocalisamfile& rpag = frpag ? *frpag : *tmp; - int ctr = 0; - TRecnotype recno = frpag ? frpag->recno() : 0L; - - rpag.zero(); - rpag.put(PAG_CODDITTA, (long)_codditta); - rpag.put(PAG_TIPOA, _tipoa); - rpag.put(PAG_CODANAGR, (long)_codanagr); - rpag.put(PAG_NPROG, _nprog); - TRectype mst(rpag.curr()); - for (rpag.read(_isgteq); !rpag.eof(); rpag.next()) - { - if (rpag.curr() > mst) break; - const int numvers = rpag.get_int(PAG_NUMVERS); - if (numvers != _nriga) continue; - const int nriga = rpag.get_int(PAG_NRIGA); - _num_last_pag = nriga; - ctr++; - } - _gia_letti_pag = TRUE; - if (frpag) frpag->readat(recno); // ripristina la posizione prec. - return ctr; -} - -HIDDEN TVersamento __vers; - -// stampa solo la quota di versamento corrispondente al pagamento -real TVersamento_stampa::vers_stampa(TLocalisamfile* rpag, const int nriga_pag, - const real& impvers, const real& ritenpag) -{ - real vers_stampa = ZERO; - real vers_residuo = ZERO; - const int numpags = num_pags(rpag); - -// se l'importo versato e' minore della ritenuta oppure c'e' solo un -// pagamento collegato stampo l'intera somma versata, altrimenti solo -// quella che copre la ritenuta - const bool ultimo_pagamento = numpags == 1 || last_pag(nriga_pag); - vers_stampa = ultimo_pagamento || (impvers < ritenpag) ? impvers : ritenpag; - _importo_versato_residuo = impvers - vers_stampa; - return vers_stampa; -} - -HIDDEN const char* _build_key(TVersamento& vers) -{ - __tmp.format("%5ld%c%5ld%d%d", vers.codditta(),vers.tipoa(),vers.codanagr(),vers.nprog(),vers.nriga()); - return __tmp; -} - -void TVersamento_stampa::add(TVersamento& vers) -{ - TString80 key; - real dep(vers.importo_versato()); - TString vvv(dep.string()); - key = _build_key(vers); - _vers.add(key, vvv, TRUE); -} - -bool TVersamento_stampa::find(TVersamento& vers) -{ - TString80 key; - bool truovato = FALSE; - - key = _build_key(vers); - truovato = _vers.is_key(key); - - if (truovato) - { - TString& vvv = (TString&)_vers.find(key); - real dep(vvv); - _importo_versato_residuo = dep; - } - return truovato; -} - +// 77lib01.cpp +#include +#include +#include +#include +#include +#include +#include "scperc.h" +#include "perc.h" +#include "rver.h" +#include "rpag.h" +#include "quadrol.h" +#include "dipend.h" // per is_erede +// #include "770101.h" // per TSchedaPE (sembra non servire) +#include "77lib.h" + +HIDDEN real __dep; +HIDDEN TString80 __tmp; +HIDDEN const char* _build_key(TVersamento& vers); +// La ditta corrente 770 +HIDDEN long _codditta_770 = 0L; + +#define QUALIF_EREDE "11" + +////////////////////////////////////////////////////////////////////////////// +// Utility varie +////////////////////////////////////////////////////////////////////////////// +bool ricerca(const TMask& m) +{ + return (m.mode() == MODE_QUERY) || (m.mode() == MODE_QUERYINS); +} + +bool modifica(const TMask& m) +{ + return m.mode() == MODE_MOD; +} + +bool inserimento(const TMask& m) +{ + return m.mode() == MODE_INS; +} + +bool esiste_perc(char tipoa, const long codanagr) +{ +// Controllo che l'anagrafica esista + TLocalisamfile anag(LF_ANAG); + anag.zero(); + anag.put("TIPOA", tipoa); + anag.put("CODANAGR", (long)codanagr); + const bool esiste_anagr = anag.read() == NOERR; + return esiste_anagr; + /* + bool ok=FALSE; + TLocalisamfile fp(LF_PERC); + fp.zero(); + fp.put("CODDITTA", (long)codditta); + fp.put("TIPOA", tipoa); + fp.put("CODANAGR", (long) codanag); + ok = fp.read(); + return ok;*/ +} + +// Ritorna il codice fiscale del titolare di codditta +const char* cod_fis(const long codditta) +{ + TLocalisamfile ditte(LF_NDITTE); + ditte.zero(); + ditte.put("CODDITTA", (long)codditta); + int err = ditte.read(); + if (err) return NULL; + const char tipoa = ditte.get("TIPOA")[0]; + const long codanagr = ditte.get_long("CODANAGR"); + TLocalisamfile anagr(LF_ANAG); + anagr.zero(); + anagr.put(ANA_TIPOA, tipoa); + anagr.put(ANA_CODANAGR,(long)codanagr); + err = anagr.read(); + if (err) return NULL; + __tmp = anagr.get(ANA_COFI); + return __tmp; +} + +const char* get_desc_cau(const char* codcau) +{ + TTable ca7("%ca7"); + __tmp = ""; + ca7.zero(); + ca7.put("CODTAB", codcau); + const int rc = ca7.read(); + if (rc == NOERR) + __tmp = ca7.get("S0"); + return __tmp; +} + + +// +// Round_770 +// +// Round adattata per 770 - 1.12.95 +// Arrotonda cosi': +// se importo >= 500 importo -> 1000 +// se importo < 500 importo -> 0 +// L'unica differenza con round(-3) e' il comportamento +// alle 500 lire. +// +real& round_770(const real& importo) +{ + __dep = ZERO; + __dep = importo / 1000.00; + __dep = __dep + 0.499; + __dep.trunc(); + __dep *= 1000.00; + return __dep; +} + +int conta_tipiper(const long codit, TString& quadro, int* NumFisiche, int* NumNoFisiche) +{ + int file; + int ctrf=0, ctr_nof=0; + + if (quadro == "C") + file = LF_QUAC; + + if (quadro == "D") + file = LF_QUAD; + + if (quadro == "D1") + file = LF_QUAD1; + + if (quadro == "E") + file = LF_QUAE; + + if (quadro == "E1") + file = LF_QUAE1; + + if (quadro == "G") + file = LF_QUAGD; + + TLocalisamfile fl(file); + fl.zero(); + fl.put("CODDITTA", (long) codit); + TRectype dep(fl.curr()); + for (fl.read(); !fl.eof(); fl.next()) + { + if (fl.curr() > dep) + break; + const char tipoa = fl.get("TIPOA")[0]; + if (tipoa == 'F') + ctrf++; + else + ctr_nof++; + } + *NumFisiche = ctrf; + *NumNoFisiche = ctr_nof; + return 0; +} + +////////////////////////////////////////////////////////////////////////////// +// Gestione ditta 770 +////////////////////////////////////////////////////////////////////////////// +// Ritorna l'anno di dichiarazione sui parametri di studio +int anno_770() +{ + TConfig conf(CONFIG_STUDIO); + const int anno = (int)conf.get_long(ANNO_SEL, NULL, -1, TDate(TODAY).year()); + return anno; +} + +long get_firm_770() +{ + if (!_codditta_770) + { + const char* section = "77"; + TConfig cnf(CONFIG_USER, section); + _codditta_770 = cnf.get_long(DITTA_770, section); + } + + return _codditta_770; +} + +void set_firm_770(const long codditta) +{ + if (_codditta_770 == 0 || codditta != _codditta_770) + { + const char* section = "77"; + TConfig cnf(CONFIG_USER, section); + cnf.set(DITTA_770, codditta); + } + _codditta_770 = codditta; +} + +// Cerca di stabilire se il titolare della ditta e' PF o PG +char tipo_persona(long codditta) +{ + TLocalisamfile nditte(LF_NDITTE); + + nditte.zero(); + nditte.put("CODDITTA", (long)codditta); + + if (nditte.read() == NOERR) + return nditte.get_char("TIPOA"); + else + return NULL; +} + +// Stabilisce se coddip esiste +bool esiste_dipendente(const long codditta, const long coddip) +{ + TLocalisamfile dip (LF_DIPEND); + dip.zero(); + dip.put(DIP_CODDITTA, codditta); + dip.put(DIP_CODIP, coddip); + return dip.read() == NOERR; +} + +// Stabilisce se coddip e' un dipendente non erede e non deceduto +bool is_dipendente(const long codditta, const long coddip) +{ + return !(is_erede(codditta,coddip) || is_deceduto(codditta,coddip)); +} + +// Stabilisce se il dipendente e' un erede +// SE QUALIFICA=11 17.7.96 +bool is_erede(const long codditta, const long coddip) +{ + TLocalisamfile dip (LF_DIPEND); + TString sQualif; + dip.setkey(1); + dip.zero(); + dip.put(DIP_CODDITTA, (long)codditta); + dip.put(DIP_CODIP, (long)coddip); + if (dip.read() == NOERR) + sQualif = dip.get(DIP_QUALIFICA); + sQualif.trim(); + return sQualif == QUALIF_EREDE; +} + +// Stabilisce se il dipendente e' un deceduto +// Se un qualunque codice erede e' stato compilato => e' un deceduto +bool is_deceduto(const long codditta, const long coddip) +{ + TLocalisamfile dip (LF_DIPEND); + dip.zero(); + dip.put(DIP_CODDITTA, codditta); + dip.put(DIP_CODIP, coddip); + bool ok = dip.read() == NOERR; + if (!ok) return FALSE; + for (int i=0; i < 10; i++) + { + TString campo("CODEREDE"); + campo << i; + TString16 dep; + dep = dip.get(campo); + if (dep.not_empty()) + return TRUE; + } + return FALSE; +} + +const int MAX_EREDI = 10; + +bool scrivi_erede(const long codditta, const long deceduto, const long coddip) +{ + bool esiste=FALSE, trovato=FALSE; + TLocalisamfile dip (LF_DIPEND); + + dip.zero(); + dip.put(DIP_CODDITTA, (long)codditta); + dip.put(DIP_CODIP, (long)deceduto); + esiste = dip.read(_isequal, _lock) == NOERR; + + if (!esiste) return FALSE; + + for (int i=0; izero(); + rpag->put(PAG_CODDITTA, sch.codditta()); + rpag->put(PAG_TIPOA, sch.tipoa()); + rpag->put(PAG_CODANAGR, sch.codanagr()); + rpag->put(PAG_NPROG, sch.nprog()); + TRectype mst(rpag->curr()); + for (rpag->read(_isgteq); !rpag->eof(); rpag->next()) + { + if (rpag->curr() > mst) break; + const TDate datapag = rpag->get_date(PAG_DATAPAG); + const int annopag = datapag.year(); + if (filtra_anno) + { + const int annopag = datapag.year(); + if (annopag == annodic) + return TRUE; + } + + if (filtra_periodo) + { + if (datapag <= data_a && datapag >= data_da) + return TRUE; + } + } + return FALSE; +} + +////////////////////////////////////////////////////////////////////////////// +// Dichiarazioni +////////////////////////////////////////////////////////////////////////////// +// +// Controlla se esiste il record sul base. Se (dichiarante) => controlla se c'e' +// il record del quadro I "globale" di codditta (che deve essere quindi +// un dichiarante) +// +bool exist_dichiar_770(long codditta, bool dichiarante) +{ + int status; + TLocalisamfile base(LF_BASE); + + base.zero(); + base.setkey(1); + if (dichiarante) + base.put("TIPOQUA", COD_QUA_I_DIC); + base.put("CODDITTA", (long)codditta); + status = base.read(); + return status == NOERR; +} + +// +// Idem come sopra. Se (sogg_dich) s'intende che voglio creare il quadro I +// "globale" per un sogg. dichiarante +// +bool enter_dichiar_770(long codditta, int anno_dic, bool sogg_dich) +{ + int rc1, rc1wr, rc1rw, rc2, rc2wr, rc2rw; + TLocalisamfile base(LF_BASE); + TLocalisamfile basebis(LF_BASEBIS); + + rc1wr = NOERR; + rc1rw = NOERR; + rc2wr = NOERR; + rc2rw = NOERR; + + base.zero(); + base.put("CODDITTA", (long)codditta); + base.put("ANNODIC", (long)anno_dic); + if (sogg_dich) + base.put("TIPOQUA", COD_QUA_I_DIC); + TRectype dep1(base.curr()); + + rc1 = base.read(); + if (rc1 == NOERR) + rc1rw = base.rewrite(); + else + { + base.curr() = dep1; + rc1wr = base.write(); + } + +#ifdef DBG + if (rc1wr != NOERR) + warning_box("write su base fallita codice %d", rc1wr); + if (rc1rw != NOERR) + warning_box("rewrite su base fallita codice %d", rc1rw); +#endif + +// Devo scrivere anche su BASEBIS ! + basebis.zero(); + basebis.put("CODDITTA", (long)codditta); + if (sogg_dich) + basebis.put("TIPOQUA", COD_QUA_I_DIC); + TRectype dep2(basebis.curr()); + rc2 = basebis.read(); + if (rc2 == NOERR) + rc2rw = basebis.rewrite(); + else + { + basebis.curr() = dep2; + rc2wr = basebis.write(); + } + +#ifdef DBG + if (rc2wr != NOERR) + warning_box("write su basebis fallita codice %d", rc2wr); + if (rc2rw != NOERR) + warning_box("rewrite su basebis fallita codice %d", rc2rw); +#endif + +// return (rc1 == NOERR && rc2 == NOERR); + return TRUE; +} + +// 20.12.95 flag di quadro compilato legato all'anno dich. +bool esiste_record_L(const long codditta, const int annodic) +{ + TLocalisamfile qual(LF_QUAL); + bool found = FALSE; + qual.zero(); + qual.put(QUL_CODDITTA, (long)codditta); + for (qual.read(); !qual.eof(); qual.next()) + { + const long cod = qual.get_long(QUL_CODDITTA); + if (cod != codditta) break; + const int adic = qual.get_int(QUL_QLAP); + found = adic == annodic; + if (found) break; + } + return found; +} + +long sogg_estinto(const long codditta) +{ + TLocalisamfile base(LF_BASE); + long coddic = 0L; + + base.zero(); + base.setkey(1); + base.put("TIPOQUA", ""); + base.put("CODDITTA", (long)codditta); + const int rc = base.read(); + if (rc != NOERR) + base.zero(); + coddic = base.get_long("CODDIC"); + return coddic; +} + +bool sogg_dic(const long codditta) +{ + TLocalisamfile base(LF_BASE); + + base.zero(); + base.setkey(2); + base.put("CODDIC", codditta); + const int rc = base.read(); + if (rc == _iseof) base.zero(); + const long codic = base.get_long("CODDIC"); + return codic == codditta; +} + +//////////////////////////////////////////////////////////////////////////// +// Array sheet 'modificato' +//////////////////////////////////////////////////////////////////////////// +TToken_string& TNikArray_sheet::row(int i) +{ + return (TToken_string&)_interno[i]; +} + +long TNikArray_sheet::add(TToken_string& s) +{ + _interno.add(s); + TToken_string vis(40); + for (int i = 0; i < _visible_items; i++) + { + const char* tmp = s.get(i); + vis.add(tmp); + } + + return TArray_sheet::add(vis); +} + +bool TNikArray_sheet::destroy(int i) +{ + _interno.destroy(); + return TArray_sheet::destroy(i); +} + +//////////////////////////////////////////////////////////////////////////// +// Collegamento CG - 770 +//////////////////////////////////////////////////////////////////////////// +TLink770::TLink770() +{ + _tipo_coll = nessuno; + _immissione = _tipo = NULL; + _codanagr = _numreg = 0L; + _totdoc = _spese = _compenso = _imposte = _ritenute = ZERO; +} + +bool TLink770::read(const char* msg) +{ + TToken_string mesg(msg); + + _tipo_coll = (TTipo_coll)mesg.get_int(0); + _immissione = mesg.get_char(1); + _tipo = mesg.get_char(2); + _codanagr = mesg.get_long(3); + _numreg = mesg.get_long(4); + _numdoc = mesg.get(5); + _datadoc = mesg.get(6); + _totdoc = real(mesg.get(7)); + _spese = real(mesg.get(8)); + _compenso = real(mesg.get(9)); + _imposte = real(mesg.get(10)); + _ritenute = real(mesg.get(11)); + + if (_tipo_coll == fattura) + if ( (_tipo != 'F' && _tipo != 'G') || _codanagr <= 0L ) + return FALSE; + + return TRUE; +} + +TPercipiente::TPercipiente(const TRectype& rec) +{ + _codditta = rec.get_long(PRC_CODDITTA); + _tipoa = rec.get(PRC_TIPOA)[0]; + _codanagr = rec.get_long(PRC_CODANAGR); +} + +// Determina se per il percipiente esiste almeno una scheda +bool TPercipiente::esiste_scheda() +{ + TLocalisamfile sch(LF_SCPERC); + sch.zero(); + sch.put(SCH_CODDITTA, _codditta); + sch.put(SCH_TIPOA, _tipoa); + sch.put(SCH_CODANAGR, _codanagr); + TRectype dep(sch.curr()); + sch.read(); + return sch.curr() == dep; +} + +bool TPercipiente::elimina_schede() +{ + TLocalisamfile sch(LF_SCPERC); + sch.zero(); + sch.put(SCH_CODDITTA, codditta()); + sch.put(SCH_TIPOA, tipoa()); + sch.put(SCH_CODANAGR, codanagr()); + TRectype dep(sch.curr()); + for (sch.read(); !sch.eof(); sch.next()) + { + if (sch.curr() > dep) + break; + TSchedaP scheda(sch.curr()); + scheda.remove(); + } + return TRUE; +} + +int TSchedaP::anno_doc() const +{ + int anno_doc; + anno_doc = _data_doc.year(); + return anno_doc; +} + +real TSchedaP::compenso_doc() const +{ + return _compenso_doc; +} + +real TSchedaP::spese_doc() const +{ + return _spese_doc; +} + + +int TSchedaP::remove() +{ + int err1=0, err2=0; + + TLocalisamfile sch(LF_SCPERC); + sch.put(SCH_CODDITTA, codditta()); + sch.put(SCH_TIPOA, tipoa()); + sch.put(SCH_CODANAGR, codanagr()); + sch.put(SCH_NPROG, nprog()); + err1 = sch.read(_isequal, _testandlock); + bool esiste = err1 == NOERR; + if (!esiste) + { + sch.reread(_unlock); + return SCHEDA_NON_ESISTENTE; + } + +// Elimino i pagamenti + TLocalisamfile rpag(LF_RPAG); + rpag.put(PAG_CODDITTA, codditta()); + rpag.put(PAG_TIPOA, tipoa()); + rpag.put(PAG_CODANAGR, codanagr()); + rpag.put(PAG_NPROG, nprog()); + TRectype pagrec(rpag.curr()); + for (rpag.read(_isgteq); !rpag.eof(); rpag.next()) + { + if (rpag.curr() > pagrec) + break; + rpag.reread(_testandlock); + err1 = rpag.remove(); + if (err1 != NOERR) + { + warning_box("Elimina righe pag. errore: %d", err1); + rpag.reread(_unlock); + break; + } + rpag.reread(_unlock); + } + +// E poi i versamenti + TLocalisamfile rver(LF_RVER); + rver.put(VER_CODDITTA, codditta()); + rver.put(VER_TIPOA, tipoa()); + rver.put(VER_CODANAGR, codanagr()); + rver.put(VER_NPROG, nprog()); + TRectype verrec(rver.curr()); + for (rver.read(_isgteq); !rver.eof(); rver.next()) + { + if (rver.curr() > verrec) + break; + rver.reread(_testandlock); + err2 = rver.remove(); + if (err2 != NOERR) + { + warning_box("Elimina righe ver. errore: %d", err2); + rver.reread(_unlock); + break; + } + rver.reread(_unlock); + } + +// Alla fine se tutto e' andato bene rimuovo la testata della scheda + if (err1 == NOERR && err2 == NOERR) err1 = sch.remove(); + return err1 + err2; // (NOERR e' 0) +} + +bool TSchedaP::read() +{ + bool ok = FALSE; + TLocalisamfile sch(LF_SCPERC); + sch.put(SCH_CODDITTA, codditta()); + sch.put(SCH_TIPOA, tipoa()); + sch.put(SCH_CODANAGR, codanagr()); + sch.put(SCH_NPROG, nprog()); + const int rc = sch.read(); + ok = rc == NOERR; + if (ok) + { + _compenso_doc = sch.get_real(SCH_COMPENSO); + _spese_doc = sch.get_real(SCH_SPESE); + _data_doc = sch.get_date(SCH_DATADOC); + } + return ok; +} + +TSchedaP::~TSchedaP() +{ +} + +TSchedaP::TSchedaP (const long codditta, const char tipoa, const long codanagr, const int nprog) + : _codditta(codditta), _tipoa(tipoa), _codanagr(codanagr), _nprog(nprog) +{ + _compenso_doc = _spese_doc = ZERO; +} + +TSchedaP::TSchedaP(TRectype& rec) +{ + _codditta = rec.get_long("CODDITTA"); + _tipoa = rec.get("TIPOA")[0]; + _codanagr = rec.get_long("CODANAGR"); + _nprog = rec.get_int("NPROG"); +} + +TVersamento::TVersamento(TRectype& rec) +{ + _codditta = rec.get_long(VER_CODDITTA); + _tipoa = rec.get(VER_TIPOA)[0]; + _codanagr = rec.get_long(VER_CODANAGR); + _nprog = rec.get_int(VER_NPROG); + _nriga = rec.get_int(VER_NRIGA); +} + +void TVersamento::set(TToken_string& row) +{ + _codditta = atol(row.get(0)); + _tipoa = row.get()[0]; + _codanagr = atol(row.get()); + _nprog = atoi(row.get()); + _nriga = atoi(row.get()); + _importo_versato = real(row.get()); +} + +void TVersamento::set(const long codditta, const char tipoa, const long codanagr, + const int nprog, const int nriga, const real& impvers) +{ + _codditta=codditta; + _tipoa=tipoa; + _codanagr=codanagr; + _nprog=nprog; + _nriga = nriga; + _importo_versato = impvers; +} + + +TVersamento_stampa::TVersamento_stampa(const long codditta, const char tipoa, const long codanagr, const int nprog, const int nriga, const real& impvers) : + TVersamento(codditta, tipoa, codanagr, nprog, nriga, impvers) +{ + _gia_letti_pag = FALSE; + _num_last_pag = 0; +} + + +void TVersamento_stampa::set(const long codditta, const char tipoa, const long codanagr, + const int nprog, const int nriga, const real& impvers) +{ +// se sto cambiando versamento resetto il flag "pagamenti gia' letti" + if ((_nriga && nriga != _nriga) || (_nprog && nprog != _nprog) || + (_tipoa != '\0' && tipoa != _tipoa) || (_codditta != 0 && _codditta != codditta) || + (_codanagr != 0 && _codanagr != codanagr) ) + { + _gia_letti_pag = FALSE; + _importo_versato = ZERO; + _importo_versato_residuo = ZERO; + } + + _codditta = codditta; + _tipoa = tipoa; + _codanagr = codanagr; + _nprog = nprog; + _nriga = nriga; + _importo_versato = impvers; +} + +int TVersamento_stampa::num_pags(TLocalisamfile* pag) +{ + if (!_gia_letti_pag) + _num_pags = read_pags(pag); + return _num_pags; +} + +int TVersamento_stampa::read_pags(TLocalisamfile* frpag) +{ + TLocalisamfile* tmp = frpag ? NULL : new TLocalisamfile(LF_RPAG); + TLocalisamfile& rpag = frpag ? *frpag : *tmp; + int ctr = 0; + TRecnotype recno = frpag ? frpag->recno() : 0L; + + rpag.zero(); + rpag.put(PAG_CODDITTA, (long)_codditta); + rpag.put(PAG_TIPOA, _tipoa); + rpag.put(PAG_CODANAGR, (long)_codanagr); + rpag.put(PAG_NPROG, _nprog); + TRectype mst(rpag.curr()); + for (rpag.read(_isgteq); !rpag.eof(); rpag.next()) + { + if (rpag.curr() > mst) break; + const int numvers = rpag.get_int(PAG_NUMVERS); + if (numvers != _nriga) continue; + const int nriga = rpag.get_int(PAG_NRIGA); + _num_last_pag = nriga; + ctr++; + } + _gia_letti_pag = TRUE; + if (frpag) frpag->readat(recno); // ripristina la posizione prec. + return ctr; +} + +HIDDEN TVersamento __vers; + +// stampa solo la quota di versamento corrispondente al pagamento +real TVersamento_stampa::vers_stampa(TLocalisamfile* rpag, const int nriga_pag, + const real& impvers, const real& ritenpag) +{ + real vers_stampa = ZERO; + real vers_residuo = ZERO; + const int numpags = num_pags(rpag); + +// se l'importo versato e' minore della ritenuta oppure c'e' solo un +// pagamento collegato stampo l'intera somma versata, altrimenti solo +// quella che copre la ritenuta + const bool ultimo_pagamento = numpags == 1 || last_pag(nriga_pag); + vers_stampa = ultimo_pagamento || (impvers < ritenpag) ? impvers : ritenpag; + _importo_versato_residuo = impvers - vers_stampa; + return vers_stampa; +} + +HIDDEN const char* _build_key(TVersamento& vers) +{ + __tmp.format("%5ld%c%5ld%d%d", vers.codditta(),vers.tipoa(),vers.codanagr(),vers.nprog(),vers.nriga()); + return __tmp; +} + +void TVersamento_stampa::add(TVersamento& vers) +{ + TString80 key; + real dep(vers.importo_versato()); + TString vvv(dep.string()); + key = _build_key(vers); + _vers.add(key, vvv, TRUE); +} + +bool TVersamento_stampa::find(TVersamento& vers) +{ + TString80 key; + bool truovato = FALSE; + + key = _build_key(vers); + truovato = _vers.is_key(key); + + if (truovato) + { + TString& vvv = (TString&)_vers.find(key); + real dep(vvv); + _importo_versato_residuo = dep; + } + return truovato; +} + diff --git a/m770/77qb.h b/m770/77qb.h index 8637a4f2d..b629836ad 100755 --- a/m770/77qb.h +++ b/m770/77qb.h @@ -1,69 +1,69 @@ -// 77qb.h -#define QBF_CODDITTA 181 -#define QBF_ANNODIC 182 -#define QBF_CODDIP 183 -#define QBF_NPROG 184 -#define QBF_DATAINI 185 -#define QBF_DATAFIN 186 -#define QBF_ANNICOMM 187 -#define QBF_MESICOMM 188 -#define QBF_ANNICONV 189 -#define QBF_MESICONV 190 -#define QBF_ANNIPARZ 191 -#define QBF_MESIPARZ 192 -#define QBF_PERCPARZ 193 -#define QBF_QUOTAECC 194 -#define QBF_MESEEROG 195 -#define QBF_TITEROG 196 -#define QBF_PERCABB 197 -#define QBF_AMMNETTO 198 -#define QBF_MESEEROG2 199 -#define QBF_TITEROG2 200 -#define QBF_PERCABB2 201 -#define QBF_AMMNETTO2 202 -#define QBF_CONTLAV 203 -#define QBF_TFR7494 204 -#define QBF_INDEN7494 205 -#define QBF_TIND7494 206 -#define QBF_TRID 207 -#define QBF_TFRIND 208 -#define QBF_ALIQUOTA 209 -#define QBF_RETRMEDIA 210 -#define QBF_ALIQUOTA2 211 -#define QBF_IMPTFR 212 -#define QBF_IMPIND 213 -#define QBF_IMPANNO 214 -#define QBF_TOTIMP 215 -#define QBF_ROPEACC 216 -#define QBF_IMPDOV 217 -#define QBF_RITECC 218 -#define QBF_QUOTASPET 219 -#define QBF_INDSPETT 220 -#define QBF_ROPE 221 -#define QBF_IMPOCSSN 222 -#define QBF_RAGDITTA 223 -#define QBF_ANADIP_CODDIP 224 -#define QBF_QUAB_CODDIP 225 - -#define QBF_COGNOME 226 -#define QBF_NOME 227 - -#define GROUP_EREDE 2 -#define GROUP_DIPDEC 3 -#define RICERCA_DIP 4 -#define RICERCA_QB 5 -#define GROUP_ALL 6 -#define G_DISABILI 7 - -#define QBG_ANADIP 1 -#define QBG_QUADROB 2 - -#define QBF_CODDIP_ANAG 228 -#define QBF_CODDIP_QB 229 - -#define CODDITTA77 181 -#define ANNODIC77 182 - - - - +// 77qb.h +#define QBF_CODDITTA 181 +#define QBF_ANNODIC 182 +#define QBF_CODDIP 183 +#define QBF_NPROG 184 +#define QBF_DATAINI 185 +#define QBF_DATAFIN 186 +#define QBF_ANNICOMM 187 +#define QBF_MESICOMM 188 +#define QBF_ANNICONV 189 +#define QBF_MESICONV 190 +#define QBF_ANNIPARZ 191 +#define QBF_MESIPARZ 192 +#define QBF_PERCPARZ 193 +#define QBF_QUOTAECC 194 +#define QBF_MESEEROG 195 +#define QBF_TITEROG 196 +#define QBF_PERCABB 197 +#define QBF_AMMNETTO 198 +#define QBF_MESEEROG2 199 +#define QBF_TITEROG2 200 +#define QBF_PERCABB2 201 +#define QBF_AMMNETTO2 202 +#define QBF_CONTLAV 203 +#define QBF_TFR7494 204 +#define QBF_INDEN7494 205 +#define QBF_TIND7494 206 +#define QBF_TRID 207 +#define QBF_TFRIND 208 +#define QBF_ALIQUOTA 209 +#define QBF_RETRMEDIA 210 +#define QBF_ALIQUOTA2 211 +#define QBF_IMPTFR 212 +#define QBF_IMPIND 213 +#define QBF_IMPANNO 214 +#define QBF_TOTIMP 215 +#define QBF_ROPEACC 216 +#define QBF_IMPDOV 217 +#define QBF_RITECC 218 +#define QBF_QUOTASPET 219 +#define QBF_INDSPETT 220 +#define QBF_ROPE 221 +#define QBF_IMPOCSSN 222 +#define QBF_RAGDITTA 223 +#define QBF_ANADIP_CODDIP 224 +#define QBF_QUAB_CODDIP 225 + +#define QBF_COGNOME 226 +#define QBF_NOME 227 + +#define GROUP_EREDE 2 +#define GROUP_DIPDEC 3 +#define RICERCA_DIP 4 +#define RICERCA_QB 5 +#define GROUP_ALL 6 +#define G_DISABILI 7 + +#define QBG_ANADIP 1 +#define QBG_QUADROB 2 + +#define QBF_CODDIP_ANAG 228 +#define QBF_CODDIP_QB 229 + +#define CODDITTA77 181 +#define ANNODIC77 182 + + + + diff --git a/m770/77qb1.h b/m770/77qb1.h index 8ec9ba119..92ce41536 100755 --- a/m770/77qb1.h +++ b/m770/77qb1.h @@ -1,27 +1,27 @@ -// 77qb1.h -#define QB1F_CODDITTA 181 -#define QB1F_ANNODIC 182 -#define QB1F_NPROG 183 -#define QB1F_RAGDITTA 184 -#define QB1F_INDEN 185 -#define QB1F_AMMIMP 186 -#define QB1F_IMP4 187 -#define QB1F_IMP8 188 -#define QB1F_IMP10 189 -#define QB1F_IMP12 190 -#define QB1F_IMP15 191 -#define QB1F_IMPO15 192 -#define QB1F_IMPO4 193 -#define QB1F_IMPNETTO 194 -#define QB1F_ANADIP_CODDIP 195 -#define QB1F_QUAB1_CODDIP 196 -#define QB1F_CODDIP 197 - -#define QB1F_COGNOME 198 -#define QB1F_NOME 199 - -#define QB1G_ANADIP 1 -#define QB1G_QUADROB 2 - -#define QB1F_CODDIP_ANAG 201 -#define QB1F_CODDIP_QB1 202 +// 77qb1.h +#define QB1F_CODDITTA 181 +#define QB1F_ANNODIC 182 +#define QB1F_NPROG 183 +#define QB1F_RAGDITTA 184 +#define QB1F_INDEN 185 +#define QB1F_AMMIMP 186 +#define QB1F_IMP4 187 +#define QB1F_IMP8 188 +#define QB1F_IMP10 189 +#define QB1F_IMP12 190 +#define QB1F_IMP15 191 +#define QB1F_IMPO15 192 +#define QB1F_IMPO4 193 +#define QB1F_IMPNETTO 194 +#define QB1F_ANADIP_CODDIP 195 +#define QB1F_QUAB1_CODDIP 196 +#define QB1F_CODDIP 197 + +#define QB1F_COGNOME 198 +#define QB1F_NOME 199 + +#define QB1G_ANADIP 1 +#define QB1G_QUADROB 2 + +#define QB1F_CODDIP_ANAG 201 +#define QB1F_CODDIP_QB1 202 diff --git a/m770/77qb1a.uml b/m770/77qb1a.uml index 7925b9d73..bb861a679 100755 --- a/m770/77qb1a.uml +++ b/m770/77qb1a.uml @@ -1,125 +1,125 @@ -#include "77qb1.h" -TOOLBAR "" 0 20 0 2 -#include -ENDPAGE - -PAGE "Quadro B1" -1 -1 78 21 - -GROUPBOX DLG_NULL 78 3 -BEGIN - PROMPT 1 0 "" -END - -NUMBER QB1F_CODDITTA 5 -BEGIN - PROMPT 3 1 "Ditta " - FLAGS "GRD" - KEY 1 - CHECKTYPE REQUIRED - USE LF_NDITTE KEY 1 - INPUT CODDITTA QB1F_CODDITTA - OUTPUT QB1F_RAGDITTA RAGSOC - FIELD LF_QUAB1->CODDITTA -END - -STRING QB1F_RAGDITTA 50 -BEGIN - PROMPT 17 1 "Ragione " - FLAGS "D" -END - -NUMBER QB1F_ANNODIC 4 -BEGIN - PROMPT 52 3 "Anno dichiarazione " - FLAGS "DR" -END - -TEXT DLG_NULL -BEGIN - PROMPT 1 7 "@bDati dipendente" -END - -NUMBER QB1F_CODDIP 6 -BEGIN - PROMPT 80 80 "" - FLAGS "D" - FIELD LF_QUAB1->CODDIP - CHECKTYPE REQUIRED - KEY 1 -END - -NUMBER QB1F_CODDIP_ANAG 6 -BEGIN - PROMPT 1 8 "@bCodice " - USE LF_DIPEND KEY 1 - INPUT CODDITTA QB1F_CODDITTA SELECT - INPUT CODDIP QB1F_CODDIP_ANAG - DISPLAY "Codice " CODDIP - DISPLAY "Cognome@24" COGNOME - DISPLAY "Nome@20" NOME - OUTPUT QB1F_CODDIP_ANAG CODDIP - OUTPUT QB1F_COGNOME COGNOME - OUTPUT QB1F_NOME NOME - ADD RUN 773mod -1 771150a 45 "Anagrafica dipendenti" - MESSAGE COPY, QB1F_CODDIP - MESSAGE COPY,QB1F_CODDIP - FLAGS "H" - GROUP QB1G_ANADIP -END - -NUMBER QB1F_CODDIP_QB1 6 -BEGIN - PROMPT 1 8 "@bCodice " - USE LF_QUAB1 KEY 1 - JOIN LF_DIPEND KEY 1 INTO CODDITTA==CODDITTA CODDIP==CODDIP - INPUT CODDITTA QB1F_CODDITTA SELECT - INPUT CODDIP QB1F_CODDIP_QB1 - DISPLAY "Codice " CODDIP - DISPLAY "Cognome@24" LF_DIPEND->COGNOME - DISPLAY "Nome@20" LF_DIPEND->NOME - DISPLAY "N°@4" NPROG - OUTPUT QB1F_CODDIP_QB1 CODDIP - OUTPUT QB1F_COGNOME LF_DIPEND->COGNOME - OUTPUT QB1F_NOME LF_DIPEND->NOME - MESSAGE COPY, QB1F_CODDIP - GROUP QB1G_QUADROB - KEY 1 -END - -STRING QB1F_COGNOME 24 -BEGIN - PROMPT 25 8 "" - FLAGS "D" -END - -STRING QB1F_NOME 20 -BEGIN - PROMPT 49 8 "" - FLAGS "D" -END - -NUMBER QB1F_NPROG 4 -BEGIN - PROMPT 1 10 "@bNumero " - CHECKTYPE REQUIRED - USE LF_QUAB1 KEY 1 - JOIN LF_DIPEND KEY 1 INTO CODDITTA==CODDITTA CODDIP==CODDIP - INPUT CODDITTA QB1F_CODDITTA SELECT - INPUT CODDIP QB1F_CODDIP - INPUT NPROG QB1F_NPROG - DISPLAY "Codice@10" CODDIP - DISPLAY "Cognome@24" LF_DIPEND->COGNOME - DISPLAY "Nome@20" LF_DIPEND->NOME - DISPLAY "N°@4" NPROG - OUTPUT QB1F_CODDIP CODDIP - OUTPUT QB1F_NPROG NPROG - OUTPUT QB1F_COGNOME LF_DIPEND->COGNOME - OUTPUT QB1F_NOME LF_DIPEND->NOME - FIELD LF_QUAB1->NPROG - KEY 1 -END - -ENDPAGE - -ENDMASK - +#include "77qb1.h" +TOOLBAR "" 0 20 0 2 +#include +ENDPAGE + +PAGE "Quadro B1" -1 -1 78 21 + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 0 "" +END + +NUMBER QB1F_CODDITTA 5 +BEGIN + PROMPT 3 1 "Ditta " + FLAGS "GRD" + KEY 1 + CHECKTYPE REQUIRED + USE LF_NDITTE KEY 1 + INPUT CODDITTA QB1F_CODDITTA + OUTPUT QB1F_RAGDITTA RAGSOC + FIELD LF_QUAB1->CODDITTA +END + +STRING QB1F_RAGDITTA 50 +BEGIN + PROMPT 17 1 "Ragione " + FLAGS "D" +END + +NUMBER QB1F_ANNODIC 4 +BEGIN + PROMPT 52 3 "Anno dichiarazione " + FLAGS "DR" +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 7 "@bDati dipendente" +END + +NUMBER QB1F_CODDIP 6 +BEGIN + PROMPT 80 80 "" + FLAGS "D" + FIELD LF_QUAB1->CODDIP + CHECKTYPE REQUIRED + KEY 1 +END + +NUMBER QB1F_CODDIP_ANAG 6 +BEGIN + PROMPT 1 8 "@bCodice " + USE LF_DIPEND KEY 1 + INPUT CODDITTA QB1F_CODDITTA SELECT + INPUT CODDIP QB1F_CODDIP_ANAG + DISPLAY "Codice " CODDIP + DISPLAY "Cognome@24" COGNOME + DISPLAY "Nome@20" NOME + OUTPUT QB1F_CODDIP_ANAG CODDIP + OUTPUT QB1F_COGNOME COGNOME + OUTPUT QB1F_NOME NOME + ADD RUN 773mod -1 771150a 45 "Anagrafica dipendenti" + MESSAGE COPY, QB1F_CODDIP + MESSAGE COPY,QB1F_CODDIP + FLAGS "H" + GROUP QB1G_ANADIP +END + +NUMBER QB1F_CODDIP_QB1 6 +BEGIN + PROMPT 1 8 "@bCodice " + USE LF_QUAB1 KEY 1 + JOIN LF_DIPEND KEY 1 INTO CODDITTA==CODDITTA CODDIP==CODDIP + INPUT CODDITTA QB1F_CODDITTA SELECT + INPUT CODDIP QB1F_CODDIP_QB1 + DISPLAY "Codice " CODDIP + DISPLAY "Cognome@24" LF_DIPEND->COGNOME + DISPLAY "Nome@20" LF_DIPEND->NOME + DISPLAY "N°@4" NPROG + OUTPUT QB1F_CODDIP_QB1 CODDIP + OUTPUT QB1F_COGNOME LF_DIPEND->COGNOME + OUTPUT QB1F_NOME LF_DIPEND->NOME + MESSAGE COPY, QB1F_CODDIP + GROUP QB1G_QUADROB + KEY 1 +END + +STRING QB1F_COGNOME 24 +BEGIN + PROMPT 25 8 "" + FLAGS "D" +END + +STRING QB1F_NOME 20 +BEGIN + PROMPT 49 8 "" + FLAGS "D" +END + +NUMBER QB1F_NPROG 4 +BEGIN + PROMPT 1 10 "@bNumero " + CHECKTYPE REQUIRED + USE LF_QUAB1 KEY 1 + JOIN LF_DIPEND KEY 1 INTO CODDITTA==CODDITTA CODDIP==CODDIP + INPUT CODDITTA QB1F_CODDITTA SELECT + INPUT CODDIP QB1F_CODDIP + INPUT NPROG QB1F_NPROG + DISPLAY "Codice@10" CODDIP + DISPLAY "Cognome@24" LF_DIPEND->COGNOME + DISPLAY "Nome@20" LF_DIPEND->NOME + DISPLAY "N°@4" NPROG + OUTPUT QB1F_CODDIP CODDIP + OUTPUT QB1F_NPROG NPROG + OUTPUT QB1F_COGNOME LF_DIPEND->COGNOME + OUTPUT QB1F_NOME LF_DIPEND->NOME + FIELD LF_QUAB1->NPROG + KEY 1 +END + +ENDPAGE + +ENDMASK + diff --git a/m770/77qb1b.uml b/m770/77qb1b.uml index d02f82be3..c2503db35 100755 --- a/m770/77qb1b.uml +++ b/m770/77qb1b.uml @@ -1,212 +1,212 @@ -// Quadro B-1 -#include "77qb1.h" -TOOLBAR "" 0 20 0 2 -#include -ENDPAGE - -PAGE "1" -1 -1 78 18 - -NUMBER QB1F_CODDITTA 5 -BEGIN - PROMPT 80 80 "" - FLAGS "D" - USE LF_NDITTE KEY 1 - INPUT CODDITTA QB1F_CODDITTA - FIELD LF_QUAB1->CODDITTA - CHECKTYPE REQUIRED - KEY 1 -END - -TEXT DLG_NULL -BEGIN - PROMPT 1 1 "@bDipendente" -END - -NUMBER QB1F_CODDIP 5 -BEGIN - PROMPT 17 1 "" - USE LF_DIPEND KEY 1 - FIELD LF_QUAB1->CODDIP - INPUT CODDITTA QB1F_CODDITTA - INPUT CODDIP QB1F_CODDIP - DISPLAY "Cognome@24" COGNOME - DISPLAY "Nome@20" NOME - OUTPUT QB1F_COGNOME COGNOME - OUTPUT QB1F_NOME NOME - CHECKTYPE REQUIRED - FLAGS "DG" - KEY 1 -END - -STRING QB1F_COGNOME 24 -BEGIN - PROMPT 25 1 "" - FLAGS "DG" -END - -STRING QB1F_NOME 20 -BEGIN - PROMPT 49 1 "" - FLAGS "DG" -END - -NUMBER QB1F_NPROG 4 -BEGIN - PROMPT 72 1 "" - FIELD LF_QUAB1->NPROG - FLAGS "DG" - KEY 1 -END - -NUMBER QB1F_INDEN 15 -BEGIN - PROMPT 1 6 "11 Ammontare indennita' di anzianita' di previdenza " - PICTURE "." - FLAGS "R" - FIELD LF_QUAB1->INDEN -END - -TEXT DLG_NULL -BEGIN - PROMPT 1 7 "@bImposta di ricchezza mobile " -END - -GROUPBOX DLG_NULL 78 7 -BEGIN - PROMPT 1 7 "" -END - -#define COL1 3 -#define COL2 33 -#define COL3 60 - -TEXT DLG_NULL -BEGIN - PROMPT COL1 8 "12 Ammontare impon. " -END - -NUMBER QB1F_AMMIMP 15 -BEGIN - PROMPT COL1 9 "" - PICTURE "." - FLAGS "R" - FIELD LF_QUAB1->AMMIMP -END - -TEXT DLG_NULL -BEGIN - PROMPT COL2 8 "13 Imponibile 4%" -END - -NUMBER QB1F_IMP4 15 -BEGIN - PROMPT COL2 9 "" - FIELD LF_QUAB1->IMP4 - PICTURE "." - FLAGS "R" -END - -TEXT DLG_NULL -BEGIN - PROMPT COL3 8 "14 Imponibile 8% " -END - -NUMBER QB1F_IMP8 15 -BEGIN - PROMPT COL3 9 "" - FIELD LF_QUAB1->IMP8 - PICTURE "." - FLAGS "R" -END - -TEXT DLG_NULL -BEGIN - PROMPT COL1 10 "15 Imponibile 10% " -END - -NUMBER QB1F_IMP10 15 -BEGIN - PROMPT COL1 11 "" - FIELD LF_QUAB1->IMP10 - PICTURE "." - FLAGS "R" -END - -TEXT DLG_NULL -BEGIN - PROMPT COL2 10 "16 Imponibile 12% " -END - -NUMBER QB1F_IMP12 15 -BEGIN - PROMPT COL2 11 "" - FIELD LF_QUAB1->IMP12 - PICTURE "." - FLAGS "R" -END - -TEXT DLG_NULL -BEGIN - PROMPT COL3 10 "17 Imponibile 15% " -END - -NUMBER QB1F_IMP15 15 -BEGIN - PROMPT COL3 11 "" - FIELD LF_QUAB1->IMP15 - PICTURE "." - FLAGS "R" -END - -NUMBER QB1F_IMPNETTO 15 -BEGIN - PROMPT COL1 12 "18 Amm. impon. (al netto delle rit.di ricchezza mobile) " - FIELD LF_QUAB1->IMPNETTO - PICTURE "." - FLAGS "R" -END - -#define RIGA1 14 -#define RIGA2 15 -#define RIGA3 16 - -TEXT DLG_NULL -BEGIN - PROMPT 1 RIGA1 "@bImposta complementare " -END - -GROUPBOX DLG_NULL 78 4 -BEGIN - PROMPT 1 RIGA1 "" -END - -TEXT DLG_NULL -BEGIN - PROMPT COL1 RIGA2 "19 Imponibile 1,5%" -END - -NUMBER QB1F_IMPO15 15 -BEGIN - PROMPT COL1 RIGA3 "" - PICTURE "." - FLAGS "R" - FIELD LF_QUAB1->IMPO15 -END - -TEXT DLG_NULL -BEGIN - PROMPT COL2 RIGA2 "20 Imponibile 4%" -END - -NUMBER QB1F_IMPO4 15 -BEGIN - PROMPT COL2 RIGA3 "" - FIELD LF_QUAB1->IMPO4 - PICTURE "." - FLAGS "R" -END - -ENDPAGE - -ENDMASK - +// Quadro B-1 +#include "77qb1.h" +TOOLBAR "" 0 20 0 2 +#include +ENDPAGE + +PAGE "1" -1 -1 78 18 + +NUMBER QB1F_CODDITTA 5 +BEGIN + PROMPT 80 80 "" + FLAGS "D" + USE LF_NDITTE KEY 1 + INPUT CODDITTA QB1F_CODDITTA + FIELD LF_QUAB1->CODDITTA + CHECKTYPE REQUIRED + KEY 1 +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 1 "@bDipendente" +END + +NUMBER QB1F_CODDIP 5 +BEGIN + PROMPT 17 1 "" + USE LF_DIPEND KEY 1 + FIELD LF_QUAB1->CODDIP + INPUT CODDITTA QB1F_CODDITTA + INPUT CODDIP QB1F_CODDIP + DISPLAY "Cognome@24" COGNOME + DISPLAY "Nome@20" NOME + OUTPUT QB1F_COGNOME COGNOME + OUTPUT QB1F_NOME NOME + CHECKTYPE REQUIRED + FLAGS "DG" + KEY 1 +END + +STRING QB1F_COGNOME 24 +BEGIN + PROMPT 25 1 "" + FLAGS "DG" +END + +STRING QB1F_NOME 20 +BEGIN + PROMPT 49 1 "" + FLAGS "DG" +END + +NUMBER QB1F_NPROG 4 +BEGIN + PROMPT 72 1 "" + FIELD LF_QUAB1->NPROG + FLAGS "DG" + KEY 1 +END + +NUMBER QB1F_INDEN 15 +BEGIN + PROMPT 1 6 "11 Ammontare indennita' di anzianita' di previdenza " + PICTURE "." + FLAGS "R" + FIELD LF_QUAB1->INDEN +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 7 "@bImposta di ricchezza mobile " +END + +GROUPBOX DLG_NULL 78 7 +BEGIN + PROMPT 1 7 "" +END + +#define COL1 3 +#define COL2 33 +#define COL3 60 + +TEXT DLG_NULL +BEGIN + PROMPT COL1 8 "12 Ammontare impon. " +END + +NUMBER QB1F_AMMIMP 15 +BEGIN + PROMPT COL1 9 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB1->AMMIMP +END + +TEXT DLG_NULL +BEGIN + PROMPT COL2 8 "13 Imponibile 4%" +END + +NUMBER QB1F_IMP4 15 +BEGIN + PROMPT COL2 9 "" + FIELD LF_QUAB1->IMP4 + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT COL3 8 "14 Imponibile 8% " +END + +NUMBER QB1F_IMP8 15 +BEGIN + PROMPT COL3 9 "" + FIELD LF_QUAB1->IMP8 + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT COL1 10 "15 Imponibile 10% " +END + +NUMBER QB1F_IMP10 15 +BEGIN + PROMPT COL1 11 "" + FIELD LF_QUAB1->IMP10 + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT COL2 10 "16 Imponibile 12% " +END + +NUMBER QB1F_IMP12 15 +BEGIN + PROMPT COL2 11 "" + FIELD LF_QUAB1->IMP12 + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT COL3 10 "17 Imponibile 15% " +END + +NUMBER QB1F_IMP15 15 +BEGIN + PROMPT COL3 11 "" + FIELD LF_QUAB1->IMP15 + PICTURE "." + FLAGS "R" +END + +NUMBER QB1F_IMPNETTO 15 +BEGIN + PROMPT COL1 12 "18 Amm. impon. (al netto delle rit.di ricchezza mobile) " + FIELD LF_QUAB1->IMPNETTO + PICTURE "." + FLAGS "R" +END + +#define RIGA1 14 +#define RIGA2 15 +#define RIGA3 16 + +TEXT DLG_NULL +BEGIN + PROMPT 1 RIGA1 "@bImposta complementare " +END + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 1 RIGA1 "" +END + +TEXT DLG_NULL +BEGIN + PROMPT COL1 RIGA2 "19 Imponibile 1,5%" +END + +NUMBER QB1F_IMPO15 15 +BEGIN + PROMPT COL1 RIGA3 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB1->IMPO15 +END + +TEXT DLG_NULL +BEGIN + PROMPT COL2 RIGA2 "20 Imponibile 4%" +END + +NUMBER QB1F_IMPO4 15 +BEGIN + PROMPT COL2 RIGA3 "" + FIELD LF_QUAB1->IMPO4 + PICTURE "." + FLAGS "R" +END + +ENDPAGE + +ENDMASK + diff --git a/m770/77qba.uml b/m770/77qba.uml index b101ea1c9..e6c043aeb 100755 --- a/m770/77qba.uml +++ b/m770/77qba.uml @@ -1,126 +1,126 @@ -#include "77qb.h" -TOOLBAR "" 0 20 0 2 -#include -ENDPAGE - -PAGE "Quadro B" -1 -1 78 21 - -GROUPBOX DLG_NULL 78 3 -BEGIN - PROMPT 1 0 "" -END - -NUMBER QBF_CODDITTA 5 -BEGIN - PROMPT 3 1 "Ditta " - FLAGS "GRD" - KEY 1 - CHECKTYPE REQUIRED - USE LF_NDITTE KEY 1 - INPUT CODDITTA QBF_CODDITTA - OUTPUT QBF_RAGDITTA RAGSOC - FIELD LF_QUAB->CODDITTA -END - -STRING QBF_RAGDITTA 50 -BEGIN - PROMPT 17 1 "Ragione " - FLAGS "D" -END - -NUMBER QBF_ANNODIC 4 -BEGIN - PROMPT 52 3 "Anno dichiarazione " - FLAGS "DR" -END - -TEXT DLG_NULL -BEGIN - PROMPT 1 7 "@bDati dipendente" -END - -NUMBER QBF_CODDIP 6 -BEGIN - PROMPT 80 80 "" - FLAGS "D" - FIELD LF_QUAB->CODDIP - CHECKTYPE REQUIRED - KEY 1 -END - -NUMBER QBF_CODDIP_ANAG 6 -BEGIN - PROMPT 1 8 "@bCodice " - USE LF_DIPEND KEY 1 - INPUT CODDITTA QBF_CODDITTA SELECT - INPUT CODDIP QBF_CODDIP_ANAG - DISPLAY "Codice " CODDIP - DISPLAY "Cognome@24" COGNOME - DISPLAY "Nome@20" NOME - OUTPUT QBF_CODDIP_ANAG CODDIP - OUTPUT QBF_COGNOME COGNOME - OUTPUT QBF_NOME NOME - ADD RUN 773mod -1 771150a 45 "Anagrafica dipendenti" - MESSAGE COPY,QBF_CODDIP - FLAGS "H" - GROUP QBG_ANADIP - KEY 1 -END - -NUMBER QBF_CODDIP_QB 6 -BEGIN - PROMPT 1 8 "@bCodice " - USE LF_QUAB KEY 1 - JOIN LF_DIPEND KEY 1 INTO CODDITTA==CODDITTA CODDIP==CODDIP - INPUT CODDITTA QBF_CODDITTA SELECT - INPUT CODDIP QBF_CODDIP_QB - DISPLAY "Codice " CODDIP - DISPLAY "Cognome@24" LF_DIPEND->COGNOME - DISPLAY "Nome@20" LF_DIPEND->NOME - DISPLAY "N°@4" NPROG - OUTPUT QBF_CODDIP_QB CODDIP - OUTPUT QBF_COGNOME LF_DIPEND->COGNOME - OUTPUT QBF_NOME LF_DIPEND->NOME - MESSAGE COPY, QBF_CODDIP - GROUP QBG_QUADROB - KEY 1 -END - -STRING QBF_COGNOME 24 -BEGIN - PROMPT 25 8 "" - FLAGS "D" -END - -STRING QBF_NOME 20 -BEGIN - PROMPT 49 8 "" - FLAGS "D" -END - -NUMBER QBF_NPROG 4 -BEGIN - PROMPT 1 10 "@bNumero " - CHECKTYPE REQUIRED - USE LF_QUAB KEY 1 - JOIN LF_DIPEND KEY 1 INTO CODDITTA=CODDITTA CODDIP=CODDIP - INPUT CODDITTA QBF_CODDITTA SELECT - INPUT CODDIP QBF_CODDIP - INPUT NPROG QBF_NPROG - DISPLAY "Codice@10" CODDIP - DISPLAY "Cognome@24" LF_DIPEND->COGNOME - DISPLAY "Nome@20" LF_DIPEND->NOME - DISPLAY "N°@4" NPROG - OUTPUT QBF_CODDIP CODDIP - OUTPUT QBF_COGNOME LF_DIPEND->COGNOME - OUTPUT QBF_NOME LF_DIPEND->NOME - OUTPUT QBF_NPROG NPROG - FIELD LF_QUAB->NPROG - CHECKTYPE REQUIRED - KEY 1 -END - -ENDPAGE - -ENDMASK - +#include "77qb.h" +TOOLBAR "" 0 20 0 2 +#include +ENDPAGE + +PAGE "Quadro B" -1 -1 78 21 + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 0 "" +END + +NUMBER QBF_CODDITTA 5 +BEGIN + PROMPT 3 1 "Ditta " + FLAGS "GRD" + KEY 1 + CHECKTYPE REQUIRED + USE LF_NDITTE KEY 1 + INPUT CODDITTA QBF_CODDITTA + OUTPUT QBF_RAGDITTA RAGSOC + FIELD LF_QUAB->CODDITTA +END + +STRING QBF_RAGDITTA 50 +BEGIN + PROMPT 17 1 "Ragione " + FLAGS "D" +END + +NUMBER QBF_ANNODIC 4 +BEGIN + PROMPT 52 3 "Anno dichiarazione " + FLAGS "DR" +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 7 "@bDati dipendente" +END + +NUMBER QBF_CODDIP 6 +BEGIN + PROMPT 80 80 "" + FLAGS "D" + FIELD LF_QUAB->CODDIP + CHECKTYPE REQUIRED + KEY 1 +END + +NUMBER QBF_CODDIP_ANAG 6 +BEGIN + PROMPT 1 8 "@bCodice " + USE LF_DIPEND KEY 1 + INPUT CODDITTA QBF_CODDITTA SELECT + INPUT CODDIP QBF_CODDIP_ANAG + DISPLAY "Codice " CODDIP + DISPLAY "Cognome@24" COGNOME + DISPLAY "Nome@20" NOME + OUTPUT QBF_CODDIP_ANAG CODDIP + OUTPUT QBF_COGNOME COGNOME + OUTPUT QBF_NOME NOME + ADD RUN 773mod -1 771150a 45 "Anagrafica dipendenti" + MESSAGE COPY,QBF_CODDIP + FLAGS "H" + GROUP QBG_ANADIP + KEY 1 +END + +NUMBER QBF_CODDIP_QB 6 +BEGIN + PROMPT 1 8 "@bCodice " + USE LF_QUAB KEY 1 + JOIN LF_DIPEND KEY 1 INTO CODDITTA==CODDITTA CODDIP==CODDIP + INPUT CODDITTA QBF_CODDITTA SELECT + INPUT CODDIP QBF_CODDIP_QB + DISPLAY "Codice " CODDIP + DISPLAY "Cognome@24" LF_DIPEND->COGNOME + DISPLAY "Nome@20" LF_DIPEND->NOME + DISPLAY "N°@4" NPROG + OUTPUT QBF_CODDIP_QB CODDIP + OUTPUT QBF_COGNOME LF_DIPEND->COGNOME + OUTPUT QBF_NOME LF_DIPEND->NOME + MESSAGE COPY, QBF_CODDIP + GROUP QBG_QUADROB + KEY 1 +END + +STRING QBF_COGNOME 24 +BEGIN + PROMPT 25 8 "" + FLAGS "D" +END + +STRING QBF_NOME 20 +BEGIN + PROMPT 49 8 "" + FLAGS "D" +END + +NUMBER QBF_NPROG 4 +BEGIN + PROMPT 1 10 "@bNumero " + CHECKTYPE REQUIRED + USE LF_QUAB KEY 1 + JOIN LF_DIPEND KEY 1 INTO CODDITTA=CODDITTA CODDIP=CODDIP + INPUT CODDITTA QBF_CODDITTA SELECT + INPUT CODDIP QBF_CODDIP + INPUT NPROG QBF_NPROG + DISPLAY "Codice@10" CODDIP + DISPLAY "Cognome@24" LF_DIPEND->COGNOME + DISPLAY "Nome@20" LF_DIPEND->NOME + DISPLAY "N°@4" NPROG + OUTPUT QBF_CODDIP CODDIP + OUTPUT QBF_COGNOME LF_DIPEND->COGNOME + OUTPUT QBF_NOME LF_DIPEND->NOME + OUTPUT QBF_NPROG NPROG + FIELD LF_QUAB->NPROG + CHECKTYPE REQUIRED + KEY 1 +END + +ENDPAGE + +ENDMASK + diff --git a/m770/77qbb.uml b/m770/77qbb.uml index 0bd39aff5..390b68745 100755 --- a/m770/77qbb.uml +++ b/m770/77qbb.uml @@ -1,711 +1,711 @@ -// Quadro B -#include "77qb.h" - -TOOLBAR "" 0 20 0 2 -#include -ENDPAGE - -PAGE "1" -1 -1 78 18 - -NUMBER QBF_CODDITTA 5 -BEGIN - PROMPT 80 80 "" - FLAGS "D" - USE LF_NDITTE KEY 1 - INPUT CODDITTA QBF_CODDITTA - FIELD LF_QUAB->CODDITTA - CHECKTYPE REQUIRED - KEY 1 -END - -TEXT DLG_NULL -BEGIN - PROMPT 1 1 "@bDipendente" -END - -NUMBER QBF_CODDIP 6 -BEGIN - PROMPT 17 1 "" - USE LF_DIPEND KEY 1 - FIELD LF_QUAB->CODDIP - INPUT CODDITTA QBF_CODDITTA - INPUT CODDIP QBF_CODDIP - DISPLAY "Cognome@24" COGNOME - DISPLAY "Nome@20" NOME - OUTPUT QBF_COGNOME COGNOME - OUTPUT QBF_NOME NOME - CHECKTYPE REQUIRED - FLAGS "DG" - KEY 1 -END - -STRING QBF_COGNOME 24 -BEGIN - PROMPT 25 1 "" - FLAGS "DG" -END - -STRING QBF_NOME 20 -BEGIN - PROMPT 49 1 "" - FLAGS "DG" -END - -NUMBER QBF_NPROG 4 -BEGIN - PROMPT 72 1 "" - FIELD LF_QUAB->NPROG - FLAGS "DG" - KEY 1 -END - -GROUPBOX DLG_NULL 25 4 -BEGIN - PROMPT 0 4 "Rapporto di lavoro " -END - -TEXT DLG_NULL -BEGIN - PROMPT 1 5 "11 Inizio" -END - -DATE QBF_DATAINI -BEGIN - PROMPT 1 6 "" - FIELD LF_QUAB->DATAINI - GROUP GROUP_ALL -END - -TEXT DLG_NULL -BEGIN - PROMPT 13 5 "12 Cessaz." -END - -DATE QBF_DATAFIN -BEGIN - PROMPT 13 6 "" - FIELD LF_QUAB->DATAFIN - GROUP GROUP_ALL -END - -#define COLCOMM 27 -#define COLCOMM1 28 -#define COLCOMM6 34 - -TEXT DLG_NULL -BEGIN - PROMPT COLCOMM 3 "13 Periodo " -END - -GROUPBOX DLG_NULL 14 4 -BEGIN - PROMPT COLCOMM 4 "commisurazione " -END - -TEXT DLG_NULL -BEGIN - PROMPT COLCOMM1 5 "Anni" -END - -NUMBER QBF_ANNICOMM 2 -BEGIN - PROMPT COLCOMM1 6 "" - FIELD LF_QUAB->ANNICOMM - GROUP GROUP_ALL -END - -TEXT DLG_NULL -BEGIN - PROMPT COLCOMM6 5 "Mesi" -END - -NUMBER QBF_MESICOMM 2 -BEGIN - PROMPT COLCOMM6 6 "" - FIELD LF_QUAB->MESICOMM - GROUP GROUP_ALL -END - -#define COLCONV 43 -#define COLCONV1 44 -#define COLCONV6 51 - -TEXT DLG_NULL -BEGIN - PROMPT COLCONV 3 "14 Periodo " -END - -GROUPBOX DLG_NULL 14 4 -BEGIN - PROMPT COLCONV 4 "convenzionale " -END - -TEXT DLG_NULL -BEGIN - PROMPT COLCONV1 5 "Anni" -END - -NUMBER QBF_ANNICONV 2 -BEGIN - PROMPT COLCONV1 6 "" - FIELD LF_QUAB->ANNICONV - GROUP GROUP_ALL -END - -TEXT DLG_NULL -BEGIN - PROMPT COLCONV6 5 "Mesi" -END - -NUMBER QBF_MESICONV 2 -BEGIN - PROMPT COLCONV6 6 "" - FIELD LF_QUAB->MESICONV - GROUP GROUP_ALL -END - -#define COLPAR0 58 -#define COLPAR1 59 -#define COLPAR2 64 -#define COLPAR3 69 - -GROUPBOX DLG_NULL 20 4 -BEGIN - PROMPT COLPAR0 4 "15 Tempo parziale" -END - -TEXT DLG_NULL -BEGIN - PROMPT COLPAR1 5 "Anni" -END - -NUMBER QBF_ANNIPARZ 2 -BEGIN - PROMPT COLPAR1 6 "" - FIELD LF_QUAB->ANNIPARZ - GROUP GROUP_ALL -END - -TEXT DLG_NULL -BEGIN - PROMPT COLPAR2 5 "Mesi" -END - -NUMBER QBF_MESIPARZ 2 -BEGIN - PROMPT COLPAR2 6 "" - FIELD LF_QUAB->MESIPARZ - GROUP GROUP_ALL -END - -TEXT DLG_NULL -BEGIN - PROMPT COLPAR3 5 " %" -END - -NUMBER QBF_PERCPARZ 6 -BEGIN - PROMPT COLPAR3 6 "" - FIELD LF_QUAB->PERCPARZ - PICTURE ".2" - GROUP GROUP_ALL -END - -TEXT DLG_NULL -BEGIN - PROMPT 1 8 "16 Quota eccedente" -END - -NUMBER QBF_QUOTAECC 15 -BEGIN - PROMPT 1 9 "" - FIELD LF_QUAB->QUOTAECC - FLAGS "R" - PICTURE "." - GROUP GROUP_ALL -END - -#define COLTFR0 25 -#define COLTFR1 26 -#define COLTFR2 35 //27 -#define COLTFR3 49 //33 -#define COLTFR4 59 //40 - -#define RIGTFR1 9 -#define RIGTFR2 10 - -GROUPBOX DLG_NULL 53 4 -BEGIN - PROMPT COLTFR0 8 "TFR o ind.equip. corrisposti nel 1995 " -END - -TEXT DLG_NULL -BEGIN - PROMPT COLTFR1 RIGTFR1 "17 Mese" -END - -NUMBER QBF_MESEEROG 2 -BEGIN - PROMPT 28 RIGTFR2 "" - NUM_EXPR {(#THIS>=0) && (#THIS<13)} - WARNING "Mese non valido" - FIELD LF_QUAB->MESEEROG - GROUP GROUP_ALL -END - -TEXT DLG_NULL -BEGIN - PROMPT COLTFR2 RIGTFR1 "18 Titolo" -END - -STRING QBF_TITEROG 1 -BEGIN - PROMPT 39 RIGTFR2 "" - SHEET "Codice|Descrizione@15" - INPUT QBF_TITEROG - ITEM "|" - ITEM "A|Anticipazione" - ITEM "B|Saldo" - ITEM "C|Acconto" - OUTPUT QBF_TITEROG - FIELD LF_QUAB->TITEROG - FLAGS "U" - GROUP GROUP_ALL -END - -TEXT DLG_NULL -BEGIN - PROMPT COLTFR3 RIGTFR1 "19 % abb." -END - -NUMBER QBF_PERCABB 6 -BEGIN - PROMPT COLTFR3 RIGTFR2 "" - FIELD LF_QUAB->PERCABB - PICTURE ".2" - GROUP GROUP_ALL -END - -TEXT DLG_NULL -BEGIN - PROMPT COLTFR4 RIGTFR1 "20 Ammontare netto" -END - -NUMBER QBF_AMMNETTO 15 -BEGIN - PROMPT COLTFR4 RIGTFR2 "" - PICTURE "." - FLAGS "R" - FIELD LF_QUAB->AMMNETTO - GROUP GROUP_ALL -END - -#define COLTFRB0 2 -#define COLTFRB1 2 -#define COLTFRB2 7 -#define COLTFRB3 14 -#define COLTFRB4 31 - -#define RIGTFRB0 14 -#define RIGTFRB1 15 -#define RIGTFRB2 16 - -GROUPBOX DLG_NULL 48 6 -BEGIN - PROMPT 1 13 "Altre indennità corrisposte nel 1995" -END - -TEXT DLG_NULL -BEGIN - PROMPT COLTFRB1 RIGTFRB0 "21" -END - -TEXT DLG_NULL -BEGIN - PROMPT COLTFRB1 RIGTFRB1 "Mese" -END - - -NUMBER QBF_MESEEROG2 2 -BEGIN - PROMPT COLTFRB1 RIGTFRB2 "" - FIELD LF_QUAB->MESEEROG2 - NUM_EXPR {(#THIS>=0) && (#THIS<13)} - WARNING "Mese non valido" - GROUP GROUP_ALL -END - -TEXT DLG_NULL -BEGIN - PROMPT COLTFRB2 RIGTFRB0 "22" -END - -TEXT DLG_NULL -BEGIN - PROMPT COLTFRB2 RIGTFRB1 "Titolo" -END - -STRING QBF_TITEROG2 1 -BEGIN - PROMPT /*COLTFR2*/ 8 RIGTFRB2 "" - SHEET "Codice|Descrizione@15" - INPUT QBF_TITEROG2 - ITEM "|" - ITEM "A|Anticipazione" - ITEM "B|Saldo" - ITEM "C|Acconto" - OUTPUT QBF_TITEROG2 - FIELD LF_QUAB->TITEROG2 - FLAGS "U" - GROUP GROUP_ALL -END - -TEXT DLG_NULL -BEGIN - PROMPT COLTFRB3 RIGTFRB0 "23" -END - -TEXT DLG_NULL -BEGIN - PROMPT COLTFRB3 RIGTFRB1 "Abbattimento" -END - -NUMBER QBF_PERCABB2 15 -BEGIN - PROMPT COLTFRB3 RIGTFRB2 "" - FIELD LF_QUAB->ABBATT - PICTURE "." - GROUP GROUP_ALL -END - -TEXT DLG_NULL -BEGIN - PROMPT COLTFRB4 RIGTFRB0 "24" -END - -TEXT DLG_NULL -BEGIN - PROMPT COLTFRB4 RIGTFRB1 "Ammontare netto" -END - -NUMBER QBF_AMMNETTO2 15 -BEGIN - PROMPT COLTFRB4 RIGTFRB2 "" - PICTURE "." - FLAGS "R" - FIELD LF_QUAB->AMMNETTO2 - GROUP GROUP_ALL -END - -TEXT DLG_NULL -BEGIN - PROMPT 57 RIGTFRB1 "25 Cont.obblig.lav." -END - -NUMBER QBF_CONTLAV 15 -BEGIN - PROMPT 59 RIGTFRB2 "" - PICTURE "." - FLAGS "R" - FIELD LF_QUAB->CONTLAV - GROUP GROUP_ALL -END - -ENDPAGE - -PAGE "2" -1 -1 78 18 - -#define C1 2 -#define C2 22 -#define C3 57 - -GROUPBOX DLG_NULL 41 4 -BEGIN - PROMPT 1 1 "Acconti e anticipazioni erogati dal 74 al 94" -END - -TEXT DLG_NULL -BEGIN - PROMPT C1 2 "26 TFR ind.equi." -END - -NUMBER QBF_TFR7494 15 -BEGIN - PROMPT C1 3 "" - PICTURE "." - FLAGS "R" - FIELD LF_QUAB->TFR7494 - GROUP GROUP_ALL -END - -TEXT DLG_NULL -BEGIN - PROMPT C2 2 "27 Altre inden." -END - -NUMBER QBF_INDEN7494 15 -BEGIN - PROMPT C2 3 "" - PICTURE "." - FLAGS "R" - FIELD LF_QUAB->INDEN7494 - GROUP GROUP_ALL -END - -TEXT DLG_NULL -BEGIN - PROMPT C3 2 "28 Tot.indennità" -END - -NUMBER QBF_TIND7494 15 -BEGIN - PROMPT C3 3 "" - PICTURE "." - FLAGS "R" - FIELD LF_QUAB->TIND7494 - GROUP GROUP_ALL -END - -TEXT DLG_NULL -BEGIN - PROMPT C1 5 "29 Tot.riduzioni" -END - -NUMBER QBF_TRID 15 -BEGIN - PROMPT C1 6 "" - PICTURE "." - FLAGS "R" - FIELD LF_QUAB->TRID - GROUP GROUP_ALL -END - -TEXT DLG_NULL -BEGIN - PROMPT 30 5 "30 TFR o inden. equipollenti" -END - -NUMBER QBF_TFRIND 15 -BEGIN - PROMPT 30 6 "per reddito di riferimento " - PICTURE "." - FLAGS "R" - FIELD LF_QUAB->TFRIND - GROUP GROUP_ALL -END - -TEXT DLG_NULL -BEGIN - PROMPT C1 7 "31 Aliq." -END - -NUMBER QBF_ALIQUOTA 6 -BEGIN - PROMPT C1 8 "" - FIELD LF_QUAB->ALIQUOTA - PICTURE ".2" - GROUP GROUP_ALL -END - -#define GD0 24 //11 -#define GD1 25 //12 -#define GD2 64 //51 - -GROUPBOX DLG_NULL 49 4 -BEGIN - PROMPT GD0 7 "Art.4 3° comma L.482/1985" -END - -TEXT DLG_NULL -BEGIN - PROMPT GD1 8 "32 Retrib. media " -END - -NUMBER QBF_RETRMEDIA 15 -BEGIN - PROMPT GD1 9 "biennio precedente " - PICTURE "." - FLAGS "R" - FIELD LF_QUAB->RETRMEDIA - GROUP GROUP_ALL -END - -TEXT DLG_NULL -BEGIN - PROMPT GD2 8 "33 Aliq." -END - -NUMBER QBF_ALIQUOTA2 6 -BEGIN - PROMPT GD2 9 "" - FIELD LF_QUAB->ALIQUOTA2 - PICTURE ".2" - GROUP GROUP_ALL -END - -// QUARTA RIGA -TEXT DLG_NULL -BEGIN - PROMPT 1 11 "34 Impon. TFR " -END - -NUMBER QBF_IMPTFR 15 -BEGIN - PROMPT 1 12 "" - PICTURE "." - FLAGS "R" - FIELD LF_QUAB->IMPTFR - GROUP GROUP_ALL -END - -TEXT DLG_NULL -BEGIN - PROMPT 19 11 "35 Imp.altre ind." -END - -NUMBER QBF_IMPIND 15 -BEGIN - PROMPT 19 12 "" - PICTURE "." - FLAGS "R" - FIELD LF_QUAB->IMPIND - GROUP GROUP_ALL -END - -TEXT DLG_NULL -BEGIN - PROMPT 37 11 "36 Impon. anno " -END - -NUMBER QBF_IMPANNO 15 -BEGIN - PROMPT 37 12 "" - PICTURE "." - FLAGS "R" - FIELD LF_QUAB->IMPANNO - GROUP GROUP_ALL -END - -TEXT DLG_NULL -BEGIN - PROMPT 54 11 "37 Totale reddito impon. " -END - -NUMBER QBF_TOTIMP 15 -BEGIN - PROMPT 57 12 "" - PICTURE "." - FLAGS "R" - FIELD LF_QUAB->TOTIMP - GROUP GROUP_ALL -END - -// QUINTA RIGA -TEXT DLG_NULL -BEGIN - PROMPT 1 13 "38 Rit. operate su acc.ant. erogati " -END - -NUMBER QBF_ROPEACC 15 -BEGIN - PROMPT 1 14 "dal 74 al 93 " - PICTURE "." - FLAGS "R" - FIELD LF_QUAB->ROPEACC - GROUP GROUP_ALL -END - -TEXT DLG_NULL -BEGIN - PROMPT 37 13 "39 Impos. dov." -END - -NUMBER QBF_IMPDOV 15 -BEGIN - PROMPT 37 14 "" - PICTURE "." - FLAGS "R" - FIELD LF_QUAB->IMPDOV - GROUP GROUP_ALL -END - -TEXT DLG_NULL -BEGIN - PROMPT 57 13 "40 Ritenute in ecced." -END - -NUMBER QBF_RITECC 15 -BEGIN - PROMPT 57 14 "" - PICTURE "." - FLAGS "R" - FIELD LF_QUAB->RITECC - GROUP GROUP_ALL -END - -// SESTA RIGA -GROUPBOX DLG_NULL 38 4 -BEGIN - PROMPT 1 15 "Art.2122 COD. CIV." -END - -TEXT DLG_NULL -BEGIN - PROMPT 2 16 "41 Quota spett." -END - -NUMBER QBF_QUOTASPET 15 -BEGIN - PROMPT 2 17 "" - PICTURE "." - FLAGS "R" - FIELD LF_QUAB->QUOTASPET - GROUP GROUP_DIPDEC GROUP_EREDE -END - -TEXT DLG_NULL -BEGIN - PROMPT 19 16 "42 Indennità spett." -END - -NUMBER QBF_INDSPETT 15 -BEGIN - PROMPT 19 17 "" - PICTURE "." - FLAGS "R" - FIELD LF_QUAB->INDSPETT - GROUP GROUP_DIPDEC GROUP_EREDE -END - -TEXT DLG_NULL -BEGIN - PROMPT 40 16 "43 Rit. operate " -END - -NUMBER QBF_ROPE 15 -BEGIN - PROMPT 40 17 "" - PICTURE "." - FLAGS "R" - FIELD LF_QUAB->ROPE - GROUP GROUP_EREDE -END - -TEXT DLG_NULL -BEGIN - PROMPT 57 16 "44 Impon. CSSN " -END - -NUMBER QBF_IMPOCSSN 15 -BEGIN - PROMPT 57 17 "" - PICTURE "." - FLAGS "R" - FIELD LF_QUAB->IMPOCSSN - GROUP GROUP_ALL -END - -ENDPAGE - -ENDMASK - +// Quadro B +#include "77qb.h" + +TOOLBAR "" 0 20 0 2 +#include +ENDPAGE + +PAGE "1" -1 -1 78 18 + +NUMBER QBF_CODDITTA 5 +BEGIN + PROMPT 80 80 "" + FLAGS "D" + USE LF_NDITTE KEY 1 + INPUT CODDITTA QBF_CODDITTA + FIELD LF_QUAB->CODDITTA + CHECKTYPE REQUIRED + KEY 1 +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 1 "@bDipendente" +END + +NUMBER QBF_CODDIP 6 +BEGIN + PROMPT 17 1 "" + USE LF_DIPEND KEY 1 + FIELD LF_QUAB->CODDIP + INPUT CODDITTA QBF_CODDITTA + INPUT CODDIP QBF_CODDIP + DISPLAY "Cognome@24" COGNOME + DISPLAY "Nome@20" NOME + OUTPUT QBF_COGNOME COGNOME + OUTPUT QBF_NOME NOME + CHECKTYPE REQUIRED + FLAGS "DG" + KEY 1 +END + +STRING QBF_COGNOME 24 +BEGIN + PROMPT 25 1 "" + FLAGS "DG" +END + +STRING QBF_NOME 20 +BEGIN + PROMPT 49 1 "" + FLAGS "DG" +END + +NUMBER QBF_NPROG 4 +BEGIN + PROMPT 72 1 "" + FIELD LF_QUAB->NPROG + FLAGS "DG" + KEY 1 +END + +GROUPBOX DLG_NULL 25 4 +BEGIN + PROMPT 0 4 "Rapporto di lavoro " +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 5 "11 Inizio" +END + +DATE QBF_DATAINI +BEGIN + PROMPT 1 6 "" + FIELD LF_QUAB->DATAINI + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT 13 5 "12 Cessaz." +END + +DATE QBF_DATAFIN +BEGIN + PROMPT 13 6 "" + FIELD LF_QUAB->DATAFIN + GROUP GROUP_ALL +END + +#define COLCOMM 27 +#define COLCOMM1 28 +#define COLCOMM6 34 + +TEXT DLG_NULL +BEGIN + PROMPT COLCOMM 3 "13 Periodo " +END + +GROUPBOX DLG_NULL 14 4 +BEGIN + PROMPT COLCOMM 4 "commisurazione " +END + +TEXT DLG_NULL +BEGIN + PROMPT COLCOMM1 5 "Anni" +END + +NUMBER QBF_ANNICOMM 2 +BEGIN + PROMPT COLCOMM1 6 "" + FIELD LF_QUAB->ANNICOMM + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT COLCOMM6 5 "Mesi" +END + +NUMBER QBF_MESICOMM 2 +BEGIN + PROMPT COLCOMM6 6 "" + FIELD LF_QUAB->MESICOMM + GROUP GROUP_ALL +END + +#define COLCONV 43 +#define COLCONV1 44 +#define COLCONV6 51 + +TEXT DLG_NULL +BEGIN + PROMPT COLCONV 3 "14 Periodo " +END + +GROUPBOX DLG_NULL 14 4 +BEGIN + PROMPT COLCONV 4 "convenzionale " +END + +TEXT DLG_NULL +BEGIN + PROMPT COLCONV1 5 "Anni" +END + +NUMBER QBF_ANNICONV 2 +BEGIN + PROMPT COLCONV1 6 "" + FIELD LF_QUAB->ANNICONV + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT COLCONV6 5 "Mesi" +END + +NUMBER QBF_MESICONV 2 +BEGIN + PROMPT COLCONV6 6 "" + FIELD LF_QUAB->MESICONV + GROUP GROUP_ALL +END + +#define COLPAR0 58 +#define COLPAR1 59 +#define COLPAR2 64 +#define COLPAR3 69 + +GROUPBOX DLG_NULL 20 4 +BEGIN + PROMPT COLPAR0 4 "15 Tempo parziale" +END + +TEXT DLG_NULL +BEGIN + PROMPT COLPAR1 5 "Anni" +END + +NUMBER QBF_ANNIPARZ 2 +BEGIN + PROMPT COLPAR1 6 "" + FIELD LF_QUAB->ANNIPARZ + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT COLPAR2 5 "Mesi" +END + +NUMBER QBF_MESIPARZ 2 +BEGIN + PROMPT COLPAR2 6 "" + FIELD LF_QUAB->MESIPARZ + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT COLPAR3 5 " %" +END + +NUMBER QBF_PERCPARZ 6 +BEGIN + PROMPT COLPAR3 6 "" + FIELD LF_QUAB->PERCPARZ + PICTURE ".2" + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 8 "16 Quota eccedente" +END + +NUMBER QBF_QUOTAECC 15 +BEGIN + PROMPT 1 9 "" + FIELD LF_QUAB->QUOTAECC + FLAGS "R" + PICTURE "." + GROUP GROUP_ALL +END + +#define COLTFR0 25 +#define COLTFR1 26 +#define COLTFR2 35 //27 +#define COLTFR3 49 //33 +#define COLTFR4 59 //40 + +#define RIGTFR1 9 +#define RIGTFR2 10 + +GROUPBOX DLG_NULL 53 4 +BEGIN + PROMPT COLTFR0 8 "TFR o ind.equip. corrisposti nel 1995 " +END + +TEXT DLG_NULL +BEGIN + PROMPT COLTFR1 RIGTFR1 "17 Mese" +END + +NUMBER QBF_MESEEROG 2 +BEGIN + PROMPT 28 RIGTFR2 "" + NUM_EXPR {(#THIS>=0) && (#THIS<13)} + WARNING "Mese non valido" + FIELD LF_QUAB->MESEEROG + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT COLTFR2 RIGTFR1 "18 Titolo" +END + +STRING QBF_TITEROG 1 +BEGIN + PROMPT 39 RIGTFR2 "" + SHEET "Codice|Descrizione@15" + INPUT QBF_TITEROG + ITEM "|" + ITEM "A|Anticipazione" + ITEM "B|Saldo" + ITEM "C|Acconto" + OUTPUT QBF_TITEROG + FIELD LF_QUAB->TITEROG + FLAGS "U" + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT COLTFR3 RIGTFR1 "19 % abb." +END + +NUMBER QBF_PERCABB 6 +BEGIN + PROMPT COLTFR3 RIGTFR2 "" + FIELD LF_QUAB->PERCABB + PICTURE ".2" + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT COLTFR4 RIGTFR1 "20 Ammontare netto" +END + +NUMBER QBF_AMMNETTO 15 +BEGIN + PROMPT COLTFR4 RIGTFR2 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->AMMNETTO + GROUP GROUP_ALL +END + +#define COLTFRB0 2 +#define COLTFRB1 2 +#define COLTFRB2 7 +#define COLTFRB3 14 +#define COLTFRB4 31 + +#define RIGTFRB0 14 +#define RIGTFRB1 15 +#define RIGTFRB2 16 + +GROUPBOX DLG_NULL 48 6 +BEGIN + PROMPT 1 13 "Altre indennità corrisposte nel 1995" +END + +TEXT DLG_NULL +BEGIN + PROMPT COLTFRB1 RIGTFRB0 "21" +END + +TEXT DLG_NULL +BEGIN + PROMPT COLTFRB1 RIGTFRB1 "Mese" +END + + +NUMBER QBF_MESEEROG2 2 +BEGIN + PROMPT COLTFRB1 RIGTFRB2 "" + FIELD LF_QUAB->MESEEROG2 + NUM_EXPR {(#THIS>=0) && (#THIS<13)} + WARNING "Mese non valido" + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT COLTFRB2 RIGTFRB0 "22" +END + +TEXT DLG_NULL +BEGIN + PROMPT COLTFRB2 RIGTFRB1 "Titolo" +END + +STRING QBF_TITEROG2 1 +BEGIN + PROMPT /*COLTFR2*/ 8 RIGTFRB2 "" + SHEET "Codice|Descrizione@15" + INPUT QBF_TITEROG2 + ITEM "|" + ITEM "A|Anticipazione" + ITEM "B|Saldo" + ITEM "C|Acconto" + OUTPUT QBF_TITEROG2 + FIELD LF_QUAB->TITEROG2 + FLAGS "U" + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT COLTFRB3 RIGTFRB0 "23" +END + +TEXT DLG_NULL +BEGIN + PROMPT COLTFRB3 RIGTFRB1 "Abbattimento" +END + +NUMBER QBF_PERCABB2 15 +BEGIN + PROMPT COLTFRB3 RIGTFRB2 "" + FIELD LF_QUAB->ABBATT + PICTURE "." + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT COLTFRB4 RIGTFRB0 "24" +END + +TEXT DLG_NULL +BEGIN + PROMPT COLTFRB4 RIGTFRB1 "Ammontare netto" +END + +NUMBER QBF_AMMNETTO2 15 +BEGIN + PROMPT COLTFRB4 RIGTFRB2 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->AMMNETTO2 + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT 57 RIGTFRB1 "25 Cont.obblig.lav." +END + +NUMBER QBF_CONTLAV 15 +BEGIN + PROMPT 59 RIGTFRB2 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->CONTLAV + GROUP GROUP_ALL +END + +ENDPAGE + +PAGE "2" -1 -1 78 18 + +#define C1 2 +#define C2 22 +#define C3 57 + +GROUPBOX DLG_NULL 41 4 +BEGIN + PROMPT 1 1 "Acconti e anticipazioni erogati dal 74 al 94" +END + +TEXT DLG_NULL +BEGIN + PROMPT C1 2 "26 TFR ind.equi." +END + +NUMBER QBF_TFR7494 15 +BEGIN + PROMPT C1 3 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->TFR7494 + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT C2 2 "27 Altre inden." +END + +NUMBER QBF_INDEN7494 15 +BEGIN + PROMPT C2 3 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->INDEN7494 + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT C3 2 "28 Tot.indennità" +END + +NUMBER QBF_TIND7494 15 +BEGIN + PROMPT C3 3 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->TIND7494 + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT C1 5 "29 Tot.riduzioni" +END + +NUMBER QBF_TRID 15 +BEGIN + PROMPT C1 6 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->TRID + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT 30 5 "30 TFR o inden. equipollenti" +END + +NUMBER QBF_TFRIND 15 +BEGIN + PROMPT 30 6 "per reddito di riferimento " + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->TFRIND + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT C1 7 "31 Aliq." +END + +NUMBER QBF_ALIQUOTA 6 +BEGIN + PROMPT C1 8 "" + FIELD LF_QUAB->ALIQUOTA + PICTURE ".2" + GROUP GROUP_ALL +END + +#define GD0 24 //11 +#define GD1 25 //12 +#define GD2 64 //51 + +GROUPBOX DLG_NULL 49 4 +BEGIN + PROMPT GD0 7 "Art.4 3° comma L.482/1985" +END + +TEXT DLG_NULL +BEGIN + PROMPT GD1 8 "32 Retrib. media " +END + +NUMBER QBF_RETRMEDIA 15 +BEGIN + PROMPT GD1 9 "biennio precedente " + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->RETRMEDIA + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT GD2 8 "33 Aliq." +END + +NUMBER QBF_ALIQUOTA2 6 +BEGIN + PROMPT GD2 9 "" + FIELD LF_QUAB->ALIQUOTA2 + PICTURE ".2" + GROUP GROUP_ALL +END + +// QUARTA RIGA +TEXT DLG_NULL +BEGIN + PROMPT 1 11 "34 Impon. TFR " +END + +NUMBER QBF_IMPTFR 15 +BEGIN + PROMPT 1 12 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->IMPTFR + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT 19 11 "35 Imp.altre ind." +END + +NUMBER QBF_IMPIND 15 +BEGIN + PROMPT 19 12 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->IMPIND + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT 37 11 "36 Impon. anno " +END + +NUMBER QBF_IMPANNO 15 +BEGIN + PROMPT 37 12 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->IMPANNO + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT 54 11 "37 Totale reddito impon. " +END + +NUMBER QBF_TOTIMP 15 +BEGIN + PROMPT 57 12 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->TOTIMP + GROUP GROUP_ALL +END + +// QUINTA RIGA +TEXT DLG_NULL +BEGIN + PROMPT 1 13 "38 Rit. operate su acc.ant. erogati " +END + +NUMBER QBF_ROPEACC 15 +BEGIN + PROMPT 1 14 "dal 74 al 93 " + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->ROPEACC + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT 37 13 "39 Impos. dov." +END + +NUMBER QBF_IMPDOV 15 +BEGIN + PROMPT 37 14 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->IMPDOV + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT 57 13 "40 Ritenute in ecced." +END + +NUMBER QBF_RITECC 15 +BEGIN + PROMPT 57 14 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->RITECC + GROUP GROUP_ALL +END + +// SESTA RIGA +GROUPBOX DLG_NULL 38 4 +BEGIN + PROMPT 1 15 "Art.2122 COD. CIV." +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 16 "41 Quota spett." +END + +NUMBER QBF_QUOTASPET 15 +BEGIN + PROMPT 2 17 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->QUOTASPET + GROUP GROUP_DIPDEC GROUP_EREDE +END + +TEXT DLG_NULL +BEGIN + PROMPT 19 16 "42 Indennità spett." +END + +NUMBER QBF_INDSPETT 15 +BEGIN + PROMPT 19 17 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->INDSPETT + GROUP GROUP_DIPDEC GROUP_EREDE +END + +TEXT DLG_NULL +BEGIN + PROMPT 40 16 "43 Rit. operate " +END + +NUMBER QBF_ROPE 15 +BEGIN + PROMPT 40 17 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->ROPE + GROUP GROUP_EREDE +END + +TEXT DLG_NULL +BEGIN + PROMPT 57 16 "44 Impon. CSSN " +END + +NUMBER QBF_IMPOCSSN 15 +BEGIN + PROMPT 57 17 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->IMPOCSSN + GROUP GROUP_ALL +END + +ENDPAGE + +ENDMASK + diff --git a/m770/77qe2a.uml b/m770/77qe2a.uml index a2c3ff72a..4d73fe0ba 100755 --- a/m770/77qe2a.uml +++ b/m770/77qe2a.uml @@ -3,7 +3,7 @@ TOOLBAR "" 0 20 0 2 #include "toolbar.h" ENDPAGE -PAGE "MODULO 770 - QUADRO E2" -1 -1 78 18 +PAGE "Quadro E2" -1 -1 78 18 GROUPBOX DLG_NULL 78 3 BEGIN @@ -30,7 +30,7 @@ END NUMBER F_ANNODIC 4 BEGIN - PROMPT 52 4 "Anno dichiarazione " + PROMPT 52 3 "Anno dichiarazione " FLAGS "DR" END @@ -47,7 +47,6 @@ BEGIN ITEM "G|Giuridica" MESSAGE COPY,F_TIPOAF FIELD LF_QUAE2->TIPOA - CHECKTYPE REQUIRED KEY 1 END @@ -70,11 +69,11 @@ END NUMBER F_CODANAGRPERC 5 BEGIN - PROMPT 15 8 "" - USE LF_PERC KEY 1 SELECT ((CODDITTA=#F_CODDITTA)&&(TIPOA=#F_TIPOA)) + PROMPT 16 8 "" + USE LF_PERC JOIN LF_ANAG TO LF_PERC KEY 1 INTO TIPOA=TIPOA CODANAGR=CODANAGR - INPUT CODDITTA F_CODDITTA - INPUT TIPOA F_TIPOA + INPUT CODDITTA F_CODDITTA SELECT + INPUT TIPOA F_TIPOA SELECT INPUT CODANAGR F_CODANAGRPERC DISPLAY "Tipo " TIPOA DISPLAY "Codice " CODANAGR @@ -89,9 +88,9 @@ END NUMBER F_CODANAGRCOM 5 BEGIN - PROMPT 15 8 "" - USE LF_ANAG KEY 1 SELECT (TIPOA=#F_TIPOA) - INPUT TIPOA F_TIPOA + PROMPT 16 8 "" + USE LF_ANAG + INPUT TIPOA F_TIPOA SELECT INPUT CODANAGR F_CODANAGRCOM DISPLAY "Tipo " TIPOA DISPLAY "Codice " CODANAGR @@ -141,16 +140,14 @@ BEGIN CHECKTYPE REQUIRED KEY 1 FIELD LF_QUAE2->NPROG - USE LF_QUAE2 - JOIN LF_ANAG TO LF_QUAE2 KEY 1 INTO TIPOA=TIPOA CODANAGR=CODANAGR + USE LF_QUAE2 INPUT CODDITTA F_CODDITTA SELECT - INPUT TIPOA F_TIPOA SELECT - INPUT CODANAGR F_CODANAGR SELECT + INPUT TIPOA F_TIPOA + INPUT CODANAGR F_CODANAGR INPUT NPROG F_NPROG DISPLAY "N°" NPROG DISPLAY "Tipo" TIPOA DISPLAY "Codice@10" CODANAGR - //DISPLAY "Ragione@50" LF_ANAG->RAGSOC DISPLAY "Causale" CODCAUS DISPLAY "Somme soggette a ritenuta" SOGGRIT DISPLAY "Aliquota" PERC diff --git a/m770/77qe2b.uml b/m770/77qe2b.uml index 0ed0d7022..afed35b71 100755 --- a/m770/77qe2b.uml +++ b/m770/77qe2b.uml @@ -6,15 +6,16 @@ ENDPAGE PAGE "Quadro E2" -1 -1 78 18 NUMBER F_CODDITTA 5 -BEGIN - FLAGS "H" +BEGIN + PROMPT 80 80 "" + FLAGS "D" FIELD LF_QUAE2->CODDITTA KEY 1 END LIST F_TIPOA 1 12 BEGIN - PROMPT 3 0 "" + PROMPT 2 0 "" FIELD LF_QUAE2->TIPOA ITEM "F|Fisica" ITEM "G|Giuridica" @@ -106,35 +107,9 @@ BEGIN FIELD LF_QUAE2->SOGGRIT PICTURE "." FLAGS "R" - MESSAGE K_TAB,F_PERC +// MESSAGE K_TAB,F_PERC END -/**************** -TEXT DLG_NULL -BEGIN - PROMPT 38 6 "Amm. compl. premi riscossi" -END - -TEXT DLG_NULL -BEGIN - PROMPT 38 7 "sui quali le ritenute sono" -END - -TEXT DLG_NULL -BEGIN - PROMPT 38 8 "state commisurate" -END - -NUMBER F_IMPONIBILE 15 -BEGIN - PROMPT 38 9 "" - FIELD LF_QUAE1->AMMONTARE - PICTURE "." - FLAGS "R" - MESSAGE K_TAB,F_IMPORTO|K_TAB,F_NETTO -END -*******************************/ - GROUPBOX DLG_NULL 32 5 BEGIN PROMPT 3 11 "@bRitenute operate" diff --git a/m770/77qgda.uml b/m770/77qgda.uml index 418283daa..a5b773603 100755 --- a/m770/77qgda.uml +++ b/m770/77qgda.uml @@ -1,5 +1,6 @@ // Distinta quadro G -#include "77qgd.h" +#include "77qgd.h" + TOOLBAR "" 0 20 0 2 #include ENDPAGE @@ -11,7 +12,7 @@ ENDPAGE #define LF_QUAGD 101 -PAGE "MODULO 770 - QUADRO G" -1 -1 78 18 +PAGE "Distinta quadro G" -1 -1 78 18 GROUPBOX DLG_NULL 78 3 BEGIN @@ -38,7 +39,7 @@ END NUMBER F_ANNODIC 4 BEGIN - PROMPT 52 4 "Anno dichiarazione " + PROMPT 52 3 "Anno dichiarazione " FLAGS "DR" END @@ -60,7 +61,6 @@ BEGIN ITEM "G|Giuridica" MESSAGE COPY,F_TIPOAF FIELD LF_QUAGD->TIPOA - CHECKTYPE REQUIRED KEY 1 END @@ -83,11 +83,11 @@ END NUMBER F_CODANAGRPERC 5 BEGIN - PROMPT 15 7 "" - USE LF_PERC KEY 1 SELECT ((CODDITTA=#F_CODDITTA)&&(TIPOA=#F_TIPOA)) + PROMPT 17 7 "" + USE LF_PERC JOIN LF_ANAG TO LF_PERC KEY 1 INTO TIPOA=TIPOA CODANAGR=CODANAGR - INPUT CODDITTA F_CODDITTA - INPUT TIPOA F_TIPOA + INPUT CODDITTA F_CODDITTA SELECT + INPUT TIPOA F_TIPOA SELECT INPUT CODANAGR F_CODANAGRPERC DISPLAY "Tipo " TIPOA DISPLAY "Codice " CODANAGR @@ -103,9 +103,9 @@ END NUMBER F_CODANAGRCOM 5 BEGIN - PROMPT 15 7 "" - USE LF_ANAG KEY 1 SELECT (TIPOA=#F_TIPOA) - INPUT TIPOA F_TIPOA + PROMPT 17 7 "" + USE LF_ANAG + INPUT TIPOA F_TIPOA SELECT INPUT CODANAGR F_CODANAGRCOM DISPLAY "Tipo " TIPOA DISPLAY "Codice " CODANAGR @@ -154,11 +154,10 @@ NUMBER F_NPROG 4 BEGIN PROMPT 2 9 "@bNumero " FIELD LF_QUAGD->NPROG - USE LF_QUAGD - JOIN LF_ANAG TO LF_QUAGD KEY 1 INTO TIPOA=TIPOA CODANAGR=CODANAGR + USE LF_QUAGD INPUT CODDITTA F_CODDITTA SELECT INPUT TIPOA F_TIPOA SELECT - INPUT CODANAGR F_CODANAGR SELECT + INPUT CODANAGR F_CODANAGR INPUT NPROG F_NPROG DISPLAY "N°" NPROG DISPLAY "Tipo" TIPOA diff --git a/m770/quadb_b1.cpp b/m770/quadb_b1.cpp index 3edc10cac..79de40336 100755 --- a/m770/quadb_b1.cpp +++ b/m770/quadb_b1.cpp @@ -1,626 +1,626 @@ -// quadb_b1.cpp -#include -#include -#include -#include -#include "dipend.h" -#include "774200.h" -#include "77lib.h" -#include "quadrob.h" -#include "quadrob1.h" -#include "77qb.h" -#include "77qb1.h" - -class TQuadriBB1_application : public TRelation_application -{ - static bool codditta77_handler (TMask_field& m, KEY k); - static bool PrimoNprogLibero (TMask& m, const long codditta, const long coddip); - static bool CodDipHandler (TMask_field& m, KEY k); - static bool NprogExitHandler (TMask_field& m, KEY k); - static bool QBTotRedImpHandler (TMask_field& f, KEY k); - static bool QBAmmRopeHandler (TMask_field& f, KEY k); - static bool QBTotIndennHandler (TMask_field& f, KEY k); - static bool QBCalcola37 (TMask_field& f, KEY k); - static void BB1SettaCognomeNome(TMask& m); - const char* _maskname; - int _num; - int _pos_quadro; // posizione nell'array dei quadri. Usato in set_comp - TString16 _quadro; - TRiporti _rip; - TRelation* _rel; - TMask* _msk[2]; - bool _registra; - int _anno_dic; - int _mode; - bool _MaskConAnnoDic, _MaskConCodditta; - bool MaskConAnnoDic() const; - bool MaskConCodditta() const { return _MaskConCodditta; } - bool QuadroB() const { return _num == LF_QUAB; } - bool QuadroB1() const { return _num == LF_QUAB1; } - bool CheckImporti(const TMask& m); - bool EsisteGiaCodDip(const TMask& m); - bool EsisteGiaRecordDip(const TMask& m); - long _codditta; - long _lCodDip; - int _iNprog; - TString _sCognome, _sNome; - void init_mask(TMask&); - - protected: - virtual bool user_create(); - virtual bool user_destroy(); -// virtual int read(TMask& m); - virtual int rewrite(const TMask& m); - virtual int write (const TMask& m); - virtual bool remove(); - virtual void on_config_change(); - virtual TMask* get_mask(int); - virtual bool changing_mask(int); - TMask* load_mask(int n); - virtual TRelation* get_relation() const { return _rel; } - virtual void init_query_mode(TMask&); - virtual void init_query_insert_mode(TMask&); - virtual void init_insert_mode(TMask&); - virtual void init_modify_mode(TMask&); - - public: - TQuadriBB1_application(const char* name, const int num, const char* quadro); -}; - -TQuadriBB1_application::TQuadriBB1_application(const char* name, const int num, const char* quadro) -: _maskname(name), _num(num), _mode(0), - _MaskConCodditta(FALSE), _MaskConAnnoDic(FALSE), - _rel(NULL), _quadro(quadro) -{ - memset(_msk, 0, sizeof(_msk)); - switch (_num) - { - case LF_QUAB: - _pos_quadro = B; - break; - case LF_QUAB1: - _pos_quadro = B1; - break; - } -} - -TQuadriBB1_application& app() { return (TQuadriBB1_application&)main_app(); } - -bool TQuadriBB1_application::changing_mask(int mode) -{ - if ((mode == MODE_MOD) && (_mode == MODE_INS)) - return FALSE; - else - return _mode != mode; -} - -TMask* TQuadriBB1_application::get_mask(int mode) -{ - const int m = (mode == MODE_QUERY) ? 0 : 1; - _mode = mode; - return load_mask(m); -} - -TMask* TQuadriBB1_application::load_mask(int n) -{ - if (_msk[n] != NULL) - return _msk[n]; - - TFilename name("77qb"); - - if (n == 0) - { - switch (_num) - { - case LF_QUAB: - name << 'a'; - break; - case LF_QUAB1: - name << "1a"; - break; - default: - break; - } - } - else - { - switch (_num) - { - case LF_QUAB: - name << 'b'; - break; - case LF_QUAB1: - name << "1b"; - break; - default: - break; - } - } - - TMask* m = new TMask(name); - m->set_handler(CODDITTA77, codditta77_handler); - - switch (n) - { - case 0: - if (QuadroB()) - { - m->set_handler(QBF_CODDIP_QB, CodDipHandler); - m->set_handler(QBF_CODDIP_ANAG, CodDipHandler); - set_search_field(QBF_NPROG); - } - else - { - m->set_handler(QB1F_CODDIP_QB1, CodDipHandler); - m->set_handler(QB1F_CODDIP_ANAG, CodDipHandler); - set_search_field(QB1F_NPROG); - } - m->set_handler(QuadroB() ? QBF_NPROG : QB1F_NPROG, NprogExitHandler); - break; - case 1: - if (m) - if (QuadroB()) - { - m->set_handler(QBF_TOTIMP, QBTotRedImpHandler); - m->set_handler(QBF_ROPE, QBAmmRopeHandler); - m->set_handler(QBF_AMMNETTO, QBTotIndennHandler); - m->set_handler(QBF_AMMNETTO2, QBTotIndennHandler); - m->set_handler(QBF_CONTLAV, QBTotIndennHandler); - m->set_handler(QBF_TFR7494, QBTotIndennHandler); - m->set_handler(QBF_INDEN7494, QBTotIndennHandler); - m->set_handler(QBF_TIND7494, QBCalcola37); // 28 - m->set_handler(QBF_TRID, QBCalcola37); // 29 - } - m->disable(DLG_FINDREC); - break; - default: - break; - } - return _msk[n] = m; -} - -bool TQuadriBB1_application::QBCalcola37(TMask_field& f, KEY k) -{ - TMask& m=f.mask(); - if (k==K_TAB && m.is_running()) - { - real c28=m.get_real(QBF_TIND7494); - real c29=m.get_real(QBF_TRID); - real c37 = c28 - c29; - if (c37 < ZERO) - c37 = ZERO; - TString c37s(c37.string()); - m.set(QBF_TOTIMP,c37s); - } - return TRUE; -} - -bool TQuadriBB1_application::MaskConAnnoDic() const -{ - return _MaskConAnnoDic; -} - -void TQuadriBB1_application::on_config_change() -{ - TConfig conf(CONFIG_STUDIO); - _anno_dic = (int)conf.get_long(ANNO_SEL, NULL, -1, TDate(TODAY).year()); -} - -bool TQuadriBB1_application::user_create() -{ - _registra = FALSE; - _rel = new TRelation(_num); - _codditta = get_firm_770(); - return TRUE; -} - -bool TQuadriBB1_application::user_destroy() -{ - if (_quadro != "") - if (_registra) - _rip.set(_quadro); - if (_msk[1] != NULL) delete _msk[1]; - if (_msk[0] != NULL) delete _msk[0]; - delete _rel; - return TRUE; -} - -// Q.B. Controlla che ci sia diverso da ZERO il tot.red.imp. -bool TQuadriBB1_application::CheckImporti(const TMask& m) -{ - real TotRedImp(m.get(QBF_TOTIMP)); - return TotRedImp != ZERO; -} - -// Controlla se esiste gia' un record con lo stesso cod.dip. -bool TQuadriBB1_application::EsisteGiaCodDip(const TMask& m) -{ - TLocalisamfile q(_num); - const long codip = m.get_long(QuadroB()? QBF_CODDIP : QB1F_CODDIP); - q.zero(); - q.put(QB_CODDITTA, _codditta); - q.put(QB_CODDIP, codip); - TRectype dep(q.curr()); - q.read(_isgteq); - const bool bEq = q.curr() == dep; - return bEq; -} - -// Controlla se esiste gia' una chiave completa -bool TQuadriBB1_application::EsisteGiaRecordDip(const TMask& m) -{ - TLocalisamfile q(_num); - const long codip = m.get_long(QuadroB()? QBF_CODDIP : QB1F_CODDIP); - const long nprog = m.get_long(QuadroB()? QBF_NPROG : QB1F_NPROG); - q.zero(); - q.put(QB_CODDITTA, _codditta); - q.put(QB_CODDIP, codip); - q.put(QB_NPROG, nprog); - TRectype dep(q.curr()); - const bool bEq = q.read() == NOERR; - return bEq; -} - -int TQuadriBB1_application::rewrite(const TMask& m) -{ - m.autosave(*_rel); - const int err = _rel->rewrite(); - _registra = err == NOERR; - return err; -} - -/* -int TQuadriBB1_application::read(TMask& m) -{ - int err; - _rel->lfile().put("CODDITTA", (long)_codditta); - _rel->lfile().put("CODDIP", (long)_lCodDip); - _rel->lfile().put("NPROG", _iNprog); - err = _rel->read(); - return err; -} -*/ - -int TQuadriBB1_application::write(const TMask& m) -{ - m.autosave(*_rel); - if (QuadroB1()) - if (EsisteGiaRecordDip(m)) - return warning_box("E' già presente un record per questo dipendente"); - const int err = _rel->write(); - _registra = err == NOERR; - return err; -} - -bool TQuadriBB1_application::remove() -{ - _registra = TRUE; - return TRelation_application::remove(); -} - -void TQuadriBB1_application::init_mask(TMask& m) -{ - if (QuadroB()) - { -// leggi dalla maschera di query, che' dovrebbero li' esservi sempre.. - const long codditta = _msk[0]->get_long(QBF_CODDITTA); - const long codip = _msk[0]->get_long(QBF_CODDIP); - if (codip==0L) - return; - if (is_erede(codditta,codip)) // && modifica(m)) - { - m.disable(-GROUP_ALL); - m.enable(-GROUP_EREDE); - } - else - { - m.enable(-GROUP_ALL); - if (is_deceduto(codditta,codip) || is_dipendente(codditta,codip)) - m.disable(-GROUP_DIPDEC); - else - m.enable(-GROUP_DIPDEC); - } - } -} - -void TQuadriBB1_application::init_modify_mode(TMask& m) -{ - init_mask(m); -/* - if (QuadroB()) - { - m.set(QBF_CODDIP, _lCodDip); - m.set(QBF_COGNOME, _sCognome); - m.set(QBF_NOME, _sNome); - m.set(QBF_NPROG, _iNprog); - } - else - { - m.set(QB1F_CODDIP, _lCodDip); - m.set(QB1F_COGNOME, _sCognome); - m.set(QB1F_NOME, _sNome); - m.set(QB1F_NPROG, _iNprog); - }*/ -} - -void TQuadriBB1_application::init_insert_mode(TMask& m) -{ - init_mask(m); -} - -void TQuadriBB1_application::init_query_mode(TMask& m) -{ - m.set(ANNODIC77, _anno_dic); - if (QuadroB()) - { - m.show(-QBG_QUADROB); - m.hide(-QBG_ANADIP); - } - else - { - m.show(-QB1G_QUADROB); - m.hide(-QB1G_ANADIP); - } -} - -void TQuadriBB1_application::init_query_insert_mode(TMask& m) -{ - m.set(ANNODIC77, _anno_dic); - if (QuadroB()) - { - m.hide(-QBG_QUADROB); - m.show(-QBG_ANADIP); - } - else - { - m.hide(-QB1G_QUADROB); - m.show(-QB1G_ANADIP); - } -} - -bool TQuadriBB1_application::codditta77_handler(TMask_field& f, KEY k) -{ - if (k == K_TAB) - { - TMask& m = f.mask(); - TString16 codditta; codditta << app()._codditta; - if (codditta != "0") - { - m.set(CODDITTA77, codditta); - m.field(CODDITTA77).check(); - } - } - return TRUE; -} - - -/////////////////////////////////////////////////////////// -// 2 modi : -// RUN,773,-1,771230m,89,"Prospetto del Quadro E1","E1" [771230i.uml] -// oppure -// 773 -1 menu_st "Stampe dichiarazioni" [prassi.mnu] -// QUADRO N: -// 773,-2,77qn,72,"Quadro N","N" -/////////////////////////////////////////////////////////// -int quadriB_B1(int argc, char* argv[]) -{ - TFilename mask; - int num = 0; - if (argc > 1) - mask = argv[2]; - num = atoi(argv[3]); - const char* title = argv[4]; - const char* quadro = argv[5]; - TQuadriBB1_application a(mask, num, quadro); - a.run(argc, argv, title ? title : "Test Relation Application"); - return 0; -} - -// -// CodDipHandler -// -// 1 - Controlla che il codice dipendente esista -// 2 - Propone il primo progressivo disponibile per quel codice -// -bool TQuadriBB1_application::CodDipHandler(TMask_field& f, KEY k) -{ - TMask& m = f.mask(); - if (!m.is_running()) return TRUE; - - if (k == K_ENTER) - { - const long codip = atol(f.get()); - if (codip==0L) - return TRUE; - - if (!esiste_dipendente(app()._codditta, codip)) - return f.warning_box("Dipendente inesistente"); - } - - if (k == K_TAB) - { - const long codip = atol(f.get()); - if (codip==0L) - return TRUE; - - if (!esiste_dipendente(app()._codditta, codip)) - return f.warning_box("Dipendente inesistente"); - - PrimoNprogLibero(m, app()._codditta, codip); - } - return TRUE; -} - -// Compila cognome e nome se vuoti -void TQuadriBB1_application::BB1SettaCognomeNome(TMask& m) -{ - const int iDlgCognome = app().QuadroB() ? QBF_COGNOME : QB1F_COGNOME; - const int iDlgNome = app().QuadroB() ? QBF_NOME : QB1F_NOME; - const int iDlgNProg = app().QuadroB() ? QBF_NPROG : QB1F_NPROG; - const int iProg = m.get_int(iDlgNProg); - TString sCognome(m.get(iDlgCognome)); - TString sNome; - if (app()._lCodDip != 0L) - { - TLocalisamfile dip (LF_DIPEND); - dip.zero(); - dip.put(DIP_CODDITTA, app()._codditta); - dip.put(DIP_CODIP, app()._lCodDip); - if (dip.read() == NOERR) - { - sCognome = dip.get("COGNOME"); - sNome = dip.get("NOME"); - app()._sCognome = sCognome; - app()._sNome = sNome; - app()._iNprog = iProg; - m.set(iDlgCognome, sCognome); - m.set(iDlgNome, sNome); - } - } -} - -bool TQuadriBB1_application::NprogExitHandler(TMask_field& f, KEY k) -{ - TMask& m = f.mask(); - if (!m.is_running()) return TRUE; - - if (k == K_CTRL+K_TAB) - { - f.set_dirty(); - return TRUE; - } - - if (k == K_TAB) - { - TString nprog(f.get()); - if (nprog.not_empty()) - { - const int ID_CODDIP = app().QuadroB()? QBF_CODDIP : QB1F_CODDIP; - const long codip = app()._lCodDip = m.get_long(ID_CODDIP); - const long codditta = app()._codditta; -// const long codip = m.get_long(ID_CODDIP); -// const long codditta = app()._codditta; - - if (codip==0L) - return TRUE; - -// Nel B1 e nel B (per gli eredi) può esserci un solo record per dipendente - if (app().QuadroB1() || (app().QuadroB() && is_erede(codditta,codip)) ) -// Se esiste gia' un record per questo dipendente MA NON la chiave completa -// (ora presente nella maschera) rifiuta il record -// (impedisce cioe' di andare in inserimento, a meno che non sia la prima -// volta, cioe' a meno che non esista ancora nessun record per il dip. -// (questo caso e' segnalato dal fallimento della EsisteGiaCodDip) ) - if (app().EsisteGiaCodDip(m) && !app().EsisteGiaRecordDip(m)) - return f.warning_box("Esiste già una riga per questo dipendente"); - -// Compila cognome e nome se vuoti - BB1SettaCognomeNome(m); -// m.stop_run(K_AUTO_ENTER); - } - } - return TRUE; -} - -bool TQuadriBB1_application::PrimoNprogLibero(TMask& m, const long codditta, const long codip) -{ -// Propone il primo numero disponibile - if (codip != 0L) - { - long nprog = 0L; - const int id_nprog = app().QuadroB() ? QBF_NPROG : QB1F_NPROG; - const bool erede = is_erede(codditta,codip); - bool EsisteGiaDip = FALSE; - TLocalisamfile qb(app()._num); - qb.zero(); - qb.put(QB_CODDITTA, codditta); - qb.put(QB_CODDIP, codip); - TRectype dep(qb.curr()); - qb.read(_isgteq); - TRecnotype lPosPrec = qb.recno(); - for ( ; !qb.eof(); qb.next()) - { - if (qb.curr() > dep) break; - EsisteGiaDip = TRUE; - nprog = qb.get_long(QB_NPROG); - } - qb.readat(lPosPrec); - -// Nel B se e' un erede si puo' solo andare in modifica -// Nel B1 è consentito un solo record per dipendente - if ( (nprog == 0) || (app().QuadroB1() && !EsisteGiaDip) || - (app().QuadroB() && !erede) ) - nprog++; - - TString16 nprog_str; nprog_str << nprog; - m.set(id_nprog, nprog_str); - } - return TRUE; -} - -/////////////////////////////////////////////////////////////////////////////////// -// QUADRO B -/////////////////////////////////////////////////////////////////////////////////// -bool TQuadriBB1_application::QBTotRedImpHandler(TMask_field& f, KEY k) -{ - TMask& m = f.mask(); - if (k == K_ENTER && !ricerca(m)) - { - const long codditta = m.get_long(QBF_CODDITTA); - const long codip = m.get_long(QBF_CODDIP); - if (!is_erede(codditta,codip)) - { - real totimp(f.get()); - if (totimp == ZERO) - return f.warning_box("Il totale reddito imponibile non può essere nullo"); - } - } - return TRUE; -} - -bool TQuadriBB1_application::QBAmmRopeHandler(TMask_field& f, KEY k) -{ - TMask& m = f.mask(); - if (k == K_ENTER && !ricerca(m)) - { - TMask& m = f.mask(); - const long codditta = m.get_long(QBF_CODDITTA); - const long codip = m.get_long(QBF_CODDIP); - if (!is_erede(codditta,codip)) - { - real totimp(m.get(QBF_TOTIMP)); - real rope(f.get()); - if (rope > totimp) - return f.warning_box("Il totale ritenute non può essere maggiore del totale reddito imponibile"); - } - } - return TRUE; -} - -// 23.5.96 Calcola totale indennità -bool TQuadriBB1_application::QBTotIndennHandler(TMask_field& f, KEY k) -{ - if (k == K_TAB) - { - const bool ricalcola = f.focusdirty(); - if (ricalcola) - { - TMask& m = f.mask(); - real c20 = m.get_real(QBF_AMMNETTO); - real c24 = m.get_real(QBF_AMMNETTO2); - real c25 = m.get_real(QBF_CONTLAV); - real c26 = m.get_real(QBF_TFR7494); - real c27 = m.get_real(QBF_INDEN7494); - - real c28 = c20 + c24 - c25 + c26 + c27; - if (c28 < ZERO) - c28 = ZERO; - TString c28s(c28.string()); - m.set(QBF_TIND7494, c28s); -// Ricalcola il 37 da qui perche' il 28 e' disabilitato - QBCalcola37(f,k); - } - } - return TRUE; -} - +// quadb_b1.cpp +#include +#include +#include +#include +#include "dipend.h" +#include "774200.h" +#include "77lib.h" +#include "quadrob.h" +#include "quadrob1.h" +#include "77qb.h" +#include "77qb1.h" + +class TQuadriBB1_application : public TRelation_application +{ + static bool codditta77_handler (TMask_field& m, KEY k); + static bool PrimoNprogLibero (TMask& m, const long codditta, const long coddip); + static bool CodDipHandler (TMask_field& m, KEY k); + static bool NprogExitHandler (TMask_field& m, KEY k); + static bool QBTotRedImpHandler (TMask_field& f, KEY k); + static bool QBAmmRopeHandler (TMask_field& f, KEY k); + static bool QBTotIndennHandler (TMask_field& f, KEY k); + static bool QBCalcola37 (TMask_field& f, KEY k); + static void BB1SettaCognomeNome(TMask& m); + const char* _maskname; + int _num; + int _pos_quadro; // posizione nell'array dei quadri. Usato in set_comp + TString16 _quadro; + TRiporti _rip; + TRelation* _rel; + TMask* _msk[2]; + bool _registra; + int _anno_dic; + int _mode; + bool _MaskConAnnoDic, _MaskConCodditta; + bool MaskConAnnoDic() const; + bool MaskConCodditta() const { return _MaskConCodditta; } + bool QuadroB() const { return _num == LF_QUAB; } + bool QuadroB1() const { return _num == LF_QUAB1; } + bool CheckImporti(const TMask& m); + bool EsisteGiaCodDip(const TMask& m); + bool EsisteGiaRecordDip(const TMask& m); + long _codditta; + long _lCodDip; + int _iNprog; + TString _sCognome, _sNome; + void init_mask(TMask&); + + protected: + virtual bool user_create(); + virtual bool user_destroy(); +// virtual int read(TMask& m); + virtual int rewrite(const TMask& m); + virtual int write (const TMask& m); + virtual bool remove(); + virtual void on_config_change(); + virtual TMask* get_mask(int); + virtual bool changing_mask(int); + TMask* load_mask(int n); + virtual TRelation* get_relation() const { return _rel; } + virtual void init_query_mode(TMask&); + virtual void init_query_insert_mode(TMask&); + virtual void init_insert_mode(TMask&); + virtual void init_modify_mode(TMask&); + + public: + TQuadriBB1_application(const char* name, const int num, const char* quadro); +}; + +TQuadriBB1_application::TQuadriBB1_application(const char* name, const int num, const char* quadro) +: _maskname(name), _num(num), _mode(0), + _MaskConCodditta(FALSE), _MaskConAnnoDic(FALSE), + _rel(NULL), _quadro(quadro) +{ + memset(_msk, 0, sizeof(_msk)); + switch (_num) + { + case LF_QUAB: + _pos_quadro = B; + break; + case LF_QUAB1: + _pos_quadro = B1; + break; + } +} + +TQuadriBB1_application& app() { return (TQuadriBB1_application&)main_app(); } + +bool TQuadriBB1_application::changing_mask(int mode) +{ + if ((mode == MODE_MOD) && (_mode == MODE_INS)) + return FALSE; + else + return _mode != mode; +} + +TMask* TQuadriBB1_application::get_mask(int mode) +{ + const int m = (mode == MODE_QUERY) ? 0 : 1; + _mode = mode; + return load_mask(m); +} + +TMask* TQuadriBB1_application::load_mask(int n) +{ + if (_msk[n] != NULL) + return _msk[n]; + + TFilename name("77qb"); + + if (n == 0) + { + switch (_num) + { + case LF_QUAB: + name << 'a'; + break; + case LF_QUAB1: + name << "1a"; + break; + default: + break; + } + } + else + { + switch (_num) + { + case LF_QUAB: + name << 'b'; + break; + case LF_QUAB1: + name << "1b"; + break; + default: + break; + } + } + + TMask* m = new TMask(name); + m->set_handler(CODDITTA77, codditta77_handler); + + switch (n) + { + case 0: + if (QuadroB()) + { + m->set_handler(QBF_CODDIP_QB, CodDipHandler); + m->set_handler(QBF_CODDIP_ANAG, CodDipHandler); + set_search_field(QBF_NPROG); + } + else + { + m->set_handler(QB1F_CODDIP_QB1, CodDipHandler); + m->set_handler(QB1F_CODDIP_ANAG, CodDipHandler); + set_search_field(QB1F_NPROG); + } + m->set_handler(QuadroB() ? QBF_NPROG : QB1F_NPROG, NprogExitHandler); + break; + case 1: + if (m) + if (QuadroB()) + { + m->set_handler(QBF_TOTIMP, QBTotRedImpHandler); + m->set_handler(QBF_ROPE, QBAmmRopeHandler); + m->set_handler(QBF_AMMNETTO, QBTotIndennHandler); + m->set_handler(QBF_AMMNETTO2, QBTotIndennHandler); + m->set_handler(QBF_CONTLAV, QBTotIndennHandler); + m->set_handler(QBF_TFR7494, QBTotIndennHandler); + m->set_handler(QBF_INDEN7494, QBTotIndennHandler); + m->set_handler(QBF_TIND7494, QBCalcola37); // 28 + m->set_handler(QBF_TRID, QBCalcola37); // 29 + } + m->disable(DLG_FINDREC); + break; + default: + break; + } + return _msk[n] = m; +} + +bool TQuadriBB1_application::QBCalcola37(TMask_field& f, KEY k) +{ + TMask& m=f.mask(); + if (k==K_TAB && m.is_running()) + { + real c28=m.get_real(QBF_TIND7494); + real c29=m.get_real(QBF_TRID); + real c37 = c28 - c29; + if (c37 < ZERO) + c37 = ZERO; + TString c37s(c37.string()); + m.set(QBF_TOTIMP,c37s); + } + return TRUE; +} + +bool TQuadriBB1_application::MaskConAnnoDic() const +{ + return _MaskConAnnoDic; +} + +void TQuadriBB1_application::on_config_change() +{ + TConfig conf(CONFIG_STUDIO); + _anno_dic = (int)conf.get_long(ANNO_SEL, NULL, -1, TDate(TODAY).year()); +} + +bool TQuadriBB1_application::user_create() +{ + _registra = FALSE; + _rel = new TRelation(_num); + _codditta = get_firm_770(); + return TRUE; +} + +bool TQuadriBB1_application::user_destroy() +{ + if (_quadro != "") + if (_registra) + _rip.set(_quadro); + if (_msk[1] != NULL) delete _msk[1]; + if (_msk[0] != NULL) delete _msk[0]; + delete _rel; + return TRUE; +} + +// Q.B. Controlla che ci sia diverso da ZERO il tot.red.imp. +bool TQuadriBB1_application::CheckImporti(const TMask& m) +{ + real TotRedImp(m.get(QBF_TOTIMP)); + return TotRedImp != ZERO; +} + +// Controlla se esiste gia' un record con lo stesso cod.dip. +bool TQuadriBB1_application::EsisteGiaCodDip(const TMask& m) +{ + TLocalisamfile q(_num); + const long codip = m.get_long(QuadroB()? QBF_CODDIP : QB1F_CODDIP); + q.zero(); + q.put(QB_CODDITTA, _codditta); + q.put(QB_CODDIP, codip); + TRectype dep(q.curr()); + q.read(_isgteq); + const bool bEq = q.curr() == dep; + return bEq; +} + +// Controlla se esiste gia' una chiave completa +bool TQuadriBB1_application::EsisteGiaRecordDip(const TMask& m) +{ + TLocalisamfile q(_num); + const long codip = m.get_long(QuadroB()? QBF_CODDIP : QB1F_CODDIP); + const long nprog = m.get_long(QuadroB()? QBF_NPROG : QB1F_NPROG); + q.zero(); + q.put(QB_CODDITTA, _codditta); + q.put(QB_CODDIP, codip); + q.put(QB_NPROG, nprog); + TRectype dep(q.curr()); + const bool bEq = q.read() == NOERR; + return bEq; +} + +int TQuadriBB1_application::rewrite(const TMask& m) +{ + m.autosave(*_rel); + const int err = _rel->rewrite(); + _registra = err == NOERR; + return err; +} + +/* +int TQuadriBB1_application::read(TMask& m) +{ + int err; + _rel->lfile().put("CODDITTA", (long)_codditta); + _rel->lfile().put("CODDIP", (long)_lCodDip); + _rel->lfile().put("NPROG", _iNprog); + err = _rel->read(); + return err; +} +*/ + +int TQuadriBB1_application::write(const TMask& m) +{ + m.autosave(*_rel); + if (QuadroB1()) + if (EsisteGiaRecordDip(m)) + return warning_box("E' già presente un record per questo dipendente"); + const int err = _rel->write(); + _registra = err == NOERR; + return err; +} + +bool TQuadriBB1_application::remove() +{ + _registra = TRUE; + return TRelation_application::remove(); +} + +void TQuadriBB1_application::init_mask(TMask& m) +{ + if (QuadroB()) + { +// leggi dalla maschera di query, che' dovrebbero li' esservi sempre.. + const long codditta = _msk[0]->get_long(QBF_CODDITTA); + const long codip = _msk[0]->get_long(QBF_CODDIP); + if (codip==0L) + return; + if (is_erede(codditta,codip)) // && modifica(m)) + { + m.disable(-GROUP_ALL); + m.enable(-GROUP_EREDE); + } + else + { + m.enable(-GROUP_ALL); + if (is_deceduto(codditta,codip) || is_dipendente(codditta,codip)) + m.disable(-GROUP_DIPDEC); + else + m.enable(-GROUP_DIPDEC); + } + } +} + +void TQuadriBB1_application::init_modify_mode(TMask& m) +{ + init_mask(m); +/* + if (QuadroB()) + { + m.set(QBF_CODDIP, _lCodDip); + m.set(QBF_COGNOME, _sCognome); + m.set(QBF_NOME, _sNome); + m.set(QBF_NPROG, _iNprog); + } + else + { + m.set(QB1F_CODDIP, _lCodDip); + m.set(QB1F_COGNOME, _sCognome); + m.set(QB1F_NOME, _sNome); + m.set(QB1F_NPROG, _iNprog); + }*/ +} + +void TQuadriBB1_application::init_insert_mode(TMask& m) +{ + init_mask(m); +} + +void TQuadriBB1_application::init_query_mode(TMask& m) +{ + m.set(ANNODIC77, _anno_dic); + if (QuadroB()) + { + m.show(-QBG_QUADROB); + m.hide(-QBG_ANADIP); + } + else + { + m.show(-QB1G_QUADROB); + m.hide(-QB1G_ANADIP); + } +} + +void TQuadriBB1_application::init_query_insert_mode(TMask& m) +{ + m.set(ANNODIC77, _anno_dic); + if (QuadroB()) + { + m.hide(-QBG_QUADROB); + m.show(-QBG_ANADIP); + } + else + { + m.hide(-QB1G_QUADROB); + m.show(-QB1G_ANADIP); + } +} + +bool TQuadriBB1_application::codditta77_handler(TMask_field& f, KEY k) +{ + if (k == K_TAB) + { + TMask& m = f.mask(); + TString16 codditta; codditta << app()._codditta; + if (codditta != "0") + { + m.set(CODDITTA77, codditta); + m.field(CODDITTA77).check(); + } + } + return TRUE; +} + + +/////////////////////////////////////////////////////////// +// 2 modi : +// RUN,773,-1,771230m,89,"Prospetto del Quadro E1","E1" [771230i.uml] +// oppure +// 773 -1 menu_st "Stampe dichiarazioni" [prassi.mnu] +// QUADRO N: +// 773,-2,77qn,72,"Quadro N","N" +/////////////////////////////////////////////////////////// +int quadriB_B1(int argc, char* argv[]) +{ + TFilename mask; + int num = 0; + if (argc > 1) + mask = argv[2]; + num = atoi(argv[3]); + const char* title = argv[4]; + const char* quadro = argv[5]; + TQuadriBB1_application a(mask, num, quadro); + a.run(argc, argv, title ? title : "Test Relation Application"); + return 0; +} + +// +// CodDipHandler +// +// 1 - Controlla che il codice dipendente esista +// 2 - Propone il primo progressivo disponibile per quel codice +// +bool TQuadriBB1_application::CodDipHandler(TMask_field& f, KEY k) +{ + TMask& m = f.mask(); + if (!m.is_running()) return TRUE; + + if (k == K_ENTER) + { + const long codip = atol(f.get()); + if (codip==0L) + return TRUE; + + if (!esiste_dipendente(app()._codditta, codip)) + return f.warning_box("Dipendente inesistente"); + } + + if (k == K_TAB) + { + const long codip = atol(f.get()); + if (codip==0L) + return TRUE; + + if (!esiste_dipendente(app()._codditta, codip)) + return f.warning_box("Dipendente inesistente"); + + PrimoNprogLibero(m, app()._codditta, codip); + } + return TRUE; +} + +// Compila cognome e nome se vuoti +void TQuadriBB1_application::BB1SettaCognomeNome(TMask& m) +{ + const int iDlgCognome = app().QuadroB() ? QBF_COGNOME : QB1F_COGNOME; + const int iDlgNome = app().QuadroB() ? QBF_NOME : QB1F_NOME; + const int iDlgNProg = app().QuadroB() ? QBF_NPROG : QB1F_NPROG; + const int iProg = m.get_int(iDlgNProg); + TString sCognome(m.get(iDlgCognome)); + TString sNome; + if (app()._lCodDip != 0L) + { + TLocalisamfile dip (LF_DIPEND); + dip.zero(); + dip.put(DIP_CODDITTA, app()._codditta); + dip.put(DIP_CODIP, app()._lCodDip); + if (dip.read() == NOERR) + { + sCognome = dip.get("COGNOME"); + sNome = dip.get("NOME"); + app()._sCognome = sCognome; + app()._sNome = sNome; + app()._iNprog = iProg; + m.set(iDlgCognome, sCognome); + m.set(iDlgNome, sNome); + } + } +} + +bool TQuadriBB1_application::NprogExitHandler(TMask_field& f, KEY k) +{ + TMask& m = f.mask(); + if (!m.is_running()) return TRUE; + + if (k == K_CTRL+K_TAB) + { + f.set_dirty(); + return TRUE; + } + + if (k == K_TAB) + { + TString nprog(f.get()); + if (nprog.not_empty()) + { + const int ID_CODDIP = app().QuadroB()? QBF_CODDIP : QB1F_CODDIP; + const long codip = app()._lCodDip = m.get_long(ID_CODDIP); + const long codditta = app()._codditta; +// const long codip = m.get_long(ID_CODDIP); +// const long codditta = app()._codditta; + + if (codip==0L) + return TRUE; + +// Nel B1 e nel B (per gli eredi) può esserci un solo record per dipendente + if (app().QuadroB1() || (app().QuadroB() && is_erede(codditta,codip)) ) +// Se esiste gia' un record per questo dipendente MA NON la chiave completa +// (ora presente nella maschera) rifiuta il record +// (impedisce cioe' di andare in inserimento, a meno che non sia la prima +// volta, cioe' a meno che non esista ancora nessun record per il dip. +// (questo caso e' segnalato dal fallimento della EsisteGiaCodDip) ) + if (app().EsisteGiaCodDip(m) && !app().EsisteGiaRecordDip(m)) + return f.warning_box("Esiste già una riga per questo dipendente"); + +// Compila cognome e nome se vuoti + BB1SettaCognomeNome(m); +// m.stop_run(K_AUTO_ENTER); + } + } + return TRUE; +} + +bool TQuadriBB1_application::PrimoNprogLibero(TMask& m, const long codditta, const long codip) +{ +// Propone il primo numero disponibile + if (codip != 0L) + { + long nprog = 0L; + const int id_nprog = app().QuadroB() ? QBF_NPROG : QB1F_NPROG; + const bool erede = is_erede(codditta,codip); + bool EsisteGiaDip = FALSE; + TLocalisamfile qb(app()._num); + qb.zero(); + qb.put(QB_CODDITTA, codditta); + qb.put(QB_CODDIP, codip); + TRectype dep(qb.curr()); + qb.read(_isgteq); + TRecnotype lPosPrec = qb.recno(); + for ( ; !qb.eof(); qb.next()) + { + if (qb.curr() > dep) break; + EsisteGiaDip = TRUE; + nprog = qb.get_long(QB_NPROG); + } + qb.readat(lPosPrec); + +// Nel B se e' un erede si puo' solo andare in modifica +// Nel B1 è consentito un solo record per dipendente + if ( (nprog == 0) || (app().QuadroB1() && !EsisteGiaDip) || + (app().QuadroB() && !erede) ) + nprog++; + + TString16 nprog_str; nprog_str << nprog; + m.set(id_nprog, nprog_str); + } + return TRUE; +} + +/////////////////////////////////////////////////////////////////////////////////// +// QUADRO B +/////////////////////////////////////////////////////////////////////////////////// +bool TQuadriBB1_application::QBTotRedImpHandler(TMask_field& f, KEY k) +{ + TMask& m = f.mask(); + if (k == K_ENTER && !ricerca(m)) + { + const long codditta = m.get_long(QBF_CODDITTA); + const long codip = m.get_long(QBF_CODDIP); + if (!is_erede(codditta,codip)) + { + real totimp(f.get()); + if (totimp == ZERO) + return f.warning_box("Il totale reddito imponibile non può essere nullo"); + } + } + return TRUE; +} + +bool TQuadriBB1_application::QBAmmRopeHandler(TMask_field& f, KEY k) +{ + TMask& m = f.mask(); + if (k == K_ENTER && !ricerca(m)) + { + TMask& m = f.mask(); + const long codditta = m.get_long(QBF_CODDITTA); + const long codip = m.get_long(QBF_CODDIP); + if (!is_erede(codditta,codip)) + { + real totimp(m.get(QBF_TOTIMP)); + real rope(f.get()); + if (rope > totimp) + return f.warning_box("Il totale ritenute non può essere maggiore del totale reddito imponibile"); + } + } + return TRUE; +} + +// 23.5.96 Calcola totale indennità +bool TQuadriBB1_application::QBTotIndennHandler(TMask_field& f, KEY k) +{ + if (k == K_TAB) + { + const bool ricalcola = f.focusdirty(); + if (ricalcola) + { + TMask& m = f.mask(); + real c20 = m.get_real(QBF_AMMNETTO); + real c24 = m.get_real(QBF_AMMNETTO2); + real c25 = m.get_real(QBF_CONTLAV); + real c26 = m.get_real(QBF_TFR7494); + real c27 = m.get_real(QBF_INDEN7494); + + real c28 = c20 + c24 - c25 + c26 + c27; + if (c28 < ZERO) + c28 = ZERO; + TString c28s(c28.string()); + m.set(QBF_TIND7494, c28s); +// Ricalcola il 37 da qui perche' il 28 e' disabilitato + QBCalcola37(f,k); + } + } + return TRUE; +} +