diff --git a/m770/771150a.uml b/m770/771150a.uml index e83b3eb55..05c7bc01f 100755 --- a/m770/771150a.uml +++ b/m770/771150a.uml @@ -201,7 +201,7 @@ END LISTBOX ADF_ASSFIS 1 40 BEGIN - PROMPT 1 17 "Si è avvalso dell'assist. fiscale " + PROMPT 1 17 "Assistenza fiscale per l'anno 97 " ITEM "0|Non si è avvalso dell'assistenza fiscale" ITEM "1|Del datore di lavoro" ITEM "2|Del CAAF" diff --git a/m770/771200.cpp b/m770/771200.cpp index b13d7c8ba..e91fbf726 100755 --- a/m770/771200.cpp +++ b/m770/771200.cpp @@ -47,7 +47,11 @@ bool QA_cerca_codA(const long codditta, const long coddip, const int curprog, TS return TRUE; // se rettifica C,D,E,F controllo se esiste un qualsiasi altro record if (ret == "C" || ret == "D" || ret == "E" || ret == "F") - return TRUE; + return TRUE; + // se senza rettifica controllo se esiste un record con rettifica C,D,E,F + if (ret == "") + if (retx == "C" || retx == "D" || retx == "E" || retx == "F") + return TRUE; } return FALSE; } @@ -556,11 +560,17 @@ bool TQuadroA::QA_qatitolo_hnd(TMask_field& f, KEY k) } bool TQuadroA::QA_A2_check_58(TMask_field& f, KEY k) -{ +{ + TMask& m = f.mask(); + TString16 cod(f.get()); + + // forzo a dirty il campo se sono in immissione e arriva un K_ENTER + if (m.mode() == MODE_INS && k == K_ENTER) + f.set_dirty(); + if (f.to_check(k,TRUE)) - { - TMask& m = f.mask(); - TString16 cod(f.get()); + { + // controllo se rettifica è congrua con altri record const long codditta = m.get_long(QAF_CODDITTA); const long coddip = m.get_long(F_CODIP); const int curprog = m.get_int(QAF_NPROG); @@ -577,30 +587,62 @@ bool TQuadroA::QA_A2_check_58(TMask_field& f, KEY k) if (QA_cerca_codA(codditta, coddip, curprog, cod, app()._quadro)) return f.error_box("Esiste già un altro quadro per questo dipendente"); - // se rettifica A abilito pagina relativa operazioni di conguaglio - if (cod == "A") - { - m.enable_page(5); - // controllo se compilato pagina operazioni di conguaglio - real ABB19 = m.get_real(F_QABRCB19); - real ABB20 = m.get_real(F_QABRCB20); - real ABB21 = m.get_real(F_QABRCB21); - real ABB22 = m.get_real(F_QABRCB22); - real ABB23 = m.get_real(F_QABRCB23); - real ABB24 = m.get_real(F_QABRCB24); - real ABB25 = m.get_real(F_QABRCB25); - real ABB26 = m.get_real(F_QABRCB26); - real ABB27 = m.get_real(F_QABRCB27); - real ABB28 = m.get_real(F_QABRCB28); - real ABB29 = m.get_real(F_QABRCB29); - real ABBTOT = ZERO; - ABBTOT += ABB19+ABB20+ABB21+ABB22+ABB23+ABB24; - ABBTOT += ABB25+ABB26+ABB27+ABB28+ABB29; - if (ABBTOT == ZERO) - f.warning_box("Compilare la pagina relativa alle operazioni di conguaglio"); - } - else - m.disable_page(5); + // controllo se stò immettendo un quadro con senza rettifica + // che non ne esista già uno con rettifica C,D,E,F + if (cod == "") + if (QA_cerca_codA(codditta, coddip, curprog, cod, app()._quadro)) + return f.error_box("Esiste già un quadro con rettifica C,D,E oppure F per questo dipendente"); + + // per quadro Abis + if (app().QuadroAB()) + // se rettifica A abilito pagina relativa operazioni di conguaglio + if (cod == "A") + { + m.enable_page(5); + // controllo se compilato pagina operazioni di conguaglio + real ABB19 = m.get_real(F_QABRCB19); + real ABB20 = m.get_real(F_QABRCB20); + real ABB21 = m.get_real(F_QABRCB21); + real ABB22 = m.get_real(F_QABRCB22); + real ABB23 = m.get_real(F_QABRCB23); + real ABB24 = m.get_real(F_QABRCB24); + real ABB25 = m.get_real(F_QABRCB25); + real ABB26 = m.get_real(F_QABRCB26); + real ABB27 = m.get_real(F_QABRCB27); + real ABB28 = m.get_real(F_QABRCB28); + real ABB29 = m.get_real(F_QABRCB29); + real ABBTOT = ZERO; + ABBTOT += ABB19+ABB20+ABB21+ABB22+ABB23+ABB24; + ABBTOT += ABB25+ABB26+ABB27+ABB28+ABB29; + if (ABBTOT == ZERO) + f.warning_box("Compilare la pagina relativa alle operazioni di conguaglio"); + } + else + m.disable_page(5); + + // per quadro A2 + if (app().QuadroA2()) + // se rettifica A abilito pagina relativa operazioni di conguaglio + if (cod == "A") + { + m.enable_page(3); + // controllo se compilato pagina operazioni di conguaglio + real A2B10 = m.get_real(F_QA2RCB10); + real A2B11 = m.get_real(F_QA2RCB11); + real A2B12 = m.get_real(F_QA2RCB12); + real A2B13 = m.get_real(F_QA2RCB13); + real A2B14 = m.get_real(F_QA2RCB14); + real A2B15 = m.get_real(F_QA2RCB15); + real A2B16 = m.get_real(F_QA2RCB16); + real A2B17 = m.get_real(F_QA2RCB17); + real A2BTOT = ZERO; + A2BTOT += A2B10+A2B11+A2B12+A2B13+A2B14; + A2BTOT += A2B15+A2B16+A2B17; + if (A2BTOT == ZERO) + f.warning_box("Compilare la pagina relativa alle operazioni di conguaglio"); + } + else + m.disable_page(3); } return TRUE; } @@ -953,7 +995,22 @@ void TQuadroA::init_query_insert_mode(TMask& m) void TQuadroA::init_modify_mode(TMask& m) { if (QuadroA1()) - m.set(QA1F_ANNORIF, _anno_dic); + m.set(QA1F_ANNORIF, _anno_dic); + + if (QuadroAB()) + { + TLocalisamfile dip(LF_DIPEND); + dip.setkey(1); + dip.zero(); + dip.put("CODDITTA", _codditta); + dip.put("CODDIP", _codip); + int assfis = 0; + if (dip.read() == NOERR) + assfis = dip.get_int("ASSFIS"); + if (!assfis) + warning_box("Dipendente che non si è avvalso dell'assistenza fiscale nel 1997"); + } + if (QuadroA3()) { _codditta = m.get_long(QAF_CODDITTA); @@ -975,6 +1032,20 @@ void TQuadroA::init_insert_mode(TMask& m) if (QuadroA1()) m.set(QA1F_ANNORIF, _anno_dic); + if (QuadroAB()) + { + TLocalisamfile dip(LF_DIPEND); + dip.setkey(1); + dip.zero(); + dip.put("CODDITTA", _codditta); + dip.put("CODDIP", _codip); + int assfis = 0; + if (dip.read() == NOERR) + assfis = dip.get_int("ASSFIS"); + if (!assfis) + warning_box("Dipendente che non si è avvalso dell'assistenza fiscale nel 1997"); + } + if (QuadroA3()) { _codditta = m.get_long(QAF_CODDITTA); diff --git a/m770/771200.h b/m770/771200.h index bd6630d22..3144785d8 100755 --- a/m770/771200.h +++ b/m770/771200.h @@ -115,7 +115,7 @@ #define F_QABRCB28 516 #define F_QABRCB29 517 -// 771200d.uml +// 771200d.uml (quadro A1) #define F_MESEANNO 200 #define F_IMPRIMB9 201 #define F_IMPVERS10 202 @@ -132,30 +132,45 @@ #define F_CONNEFF21 213 #define F_TIPOCONG22 214 #define F_DATARIC29 215 +#define QA1F_ANNORIF 410 -// 771200f.uml - -#define F_IIRPEFVER8 250 -#define F_IIRPEFRI9 251 -#define F_PRIRPEF10 252 -#define F_AIRPEFINT 253 -#define F_STASSA12 254 -#define F_CONTR13 255 -#define F_CONTR14 256 -#define F_PRCSSN15 257 -#define F_INTER16 258 -#define F_STASSA17 259 -#define F_VEFFCON18 260 -#define F_SDNLIQ19 261 -#define F_RETCON20 262 +// 771200f.uml (quadro A2) +#define F_IIRPEFVER8 250 +#define F_IIRPEFRI9 251 +#define F_PRIRPEF10 252 +#define F_AIRPEFINT 253 +#define F_STASSA12 254 +#define F_CONTR13 255 +#define F_CONTR14 256 +#define F_PRCSSN15 257 +#define F_INTER16 258 +#define F_STASSA17 259 +#define F_VEFFCON18 260 +#define F_SDNLIQ19 261 +#define F_RETCON20 262 +#define QA2F_CNEFF 411 +#define QA2F_RETCON 412 +#define QA2F_CSSNCRIMB 413 +#define QA2F_CSSNCVER 414 +#define QA2F_CSSNINT 415 +#define QA2F_CSSNAIV 416 +#define QA2F_CSSNAINT 417 +#define QA2F_STCSSN 418 +#define QA2F_730NLIQ 419 +#define F_QA2RCB10 420 +#define F_QA2RCB11 421 +#define F_QA2RCB12 422 +#define F_QA2RCB13 423 +#define F_QA2RCB14 424 +#define F_QA2RCB15 425 +#define F_QA2RCB16 426 +#define F_QA2RCB17 427 -// Campi maschera 771200g.uml - +// 771200g.uml (quadro A3) #define F_CODIPQUADRO 300 #define F_BASEOCCUPA 301 -// Campi maschera 771200h.uml - +// 771200h.uml (quadro A3) #define F_DIRAPTI 350 #define F_NGINC15 351 #define F_REDCOR16 352 @@ -176,36 +191,16 @@ #define F_COGNTRASF 367 #define F_NOMETRASF 368 -// Campi maschera 771200i.uml - +// 771200i.uml (base occupazionale) #define F_BSE_CONSBASOCC 400 #define F_BSE_LAVDIPCIN 401 #define F_BSE_DATAINPI 402 #define F_BSE_DATAFINPI 403 -// -// Modifiche 95->96 -// - -// Quadro A1 -#define QA1F_ANNORIF 410 - -// Quadro A2 -#define QA2F_CNEFF 411 -#define QA2F_RETCON 412 -#define QA2F_CSSNCRIMB 413 -#define QA2F_CSSNCVER 414 -#define QA2F_CSSNINT 415 -#define QA2F_CSSNAIV 416 -#define QA2F_CSSNAINT 417 -#define QA2F_STCSSN 418 -#define QA2F_730NLIQ 419 - - -#define F_CODANAGDIPQA 420 - +// gruppo operazioni di conguaglio (quadri Abis e A2) #define G_OPECONG 12 +#define F_CODANAGDIPQA 420 #define QAF_ALLEG_A 421 #define QA2F_ALLEG_A2 422 diff --git a/m770/771200f.uml b/m770/771200f.uml index e5eb2abb5..c0e0b442a 100755 --- a/m770/771200f.uml +++ b/m770/771200f.uml @@ -58,165 +58,134 @@ BEGIN MESSAGE COPY,5@ END -GROUPBOX DLG_NULL 78 3 +GROUPBOX DLG_NULL 78 4 BEGIN - PROMPT 1 3 "@bASSISTENZA 1995 " + PROMPT 1 3 "@bAssistenza 1996" +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 4 " 8 Conguagli non effettuati" END STRING QA2F_CNEFF 1 BEGIN - PROMPT 2 4 "8 Conguagli non effettuati " + PROMPT STDIMP 4 "" FIELD LF_QUAA2->CONEFF - FLAGS "U" - HELP "Conguagli non effettuati relativi all'assistenza 1995" SHEET "Codice|Descrizione@60" INPUT QA2F_CNEFF ITEM " |Niente" ITEM "A|Cessazione del rapporto di lavoro" - ITEM "B|Decesso" - ITEM "C|Richiesta di minore secondo acconto" - ITEM "D|Retribuzione insufficiente" - ITEM "E|Situaz. per le quali dovrebbero essere indicati piu' codici" - ITEM "F|Rimborso non effettuato o rimborso effettuato parzialmente" - OUTPUT QA2F_CNEFF - GROUP G_ALL -END + ITEM "B|Aspettativa senza retribuzione" + ITEM "C|Decesso" + ITEM "D|Richiesta di minore secondo acconto" + ITEM "E|Retribuzione insufficiente" + ITEM "F|Situaz.per le quali dovrebbero essere indicati più codici" + ITEM "G|Rimborso non effettuato o rimborso effettuato parzialmente" + OUTPUT QA2F_CNEFF + FLAGS "U" +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 5 " 9 Rettifica conguaglio" +END STRING QA2F_RETCON 1 BEGIN - PROMPT 38 4 "9 Rettifica conguaglio " + PROMPT STDIMP 5 "" FIELD LF_QUAA2->RETCON SHEET "Codice|Descrizione@60" INPUT QA2F_RETCON - ITEM " | " - ITEM "A|Rettifica importi da conguagliare... (I num. d'ordine)" - ITEM "B|Rettifica importi da conguagliare... (II num. d'ordine)" - ITEM "C|Conguaglio tardivamente effettuato nel mese di luglio" + ITEM " |Niente" + ITEM "A|Rettifica importi da conguagliare... (I num. d'ordine)" + ITEM "C|Cong. a seguito rett.prec.comunicaz.tardivam.perven..." + ITEM "D|Cong. a seguito rett.prec.comunicaz.tempestivam.perven..." + ITEM "E|Cong. tardivo per mod.730-4 pervenuto tardivamente" + ITEM "F|Cong. tardivo per causa dipendente dal sostituto d'imposta" OUTPUT QA2F_RETCON FLAGS "U" END -GROUPBOX DLG_NULL 78 4 +GROUPBOX DLG_NULL 78 5 BEGIN - PROMPT 1 6 "@bSALDO IRPEF PER IL 1994 " + PROMPT 1 8 "@bSaldo Irpef per il 1995 " END TEXT DLG_NULL BEGIN - PROMPT 2 7 "10 Imp.ver/tr.IRPEF" - GROUP G_730 + PROMPT 2 9 "10 Imposta rimborsata" END -TEXT DLG_NULL +NUMBER F_IIRPEFVER8 LENIMP BEGIN - PROMPT 2 7 "10 Imposta rimbor. " - GROUP G_770 -END - -NUMBER F_IIRPEFVER8 15 -BEGIN - PROMPT 21 7 "" + PROMPT STDIMP 9 "" FIELD LF_QUAA2->SIRPEFRIMB PICTURE "." END TEXT DLG_NULL BEGIN - PROMPT 41 7 "11 Imp.da rim.IRPEF" - GROUP G_730 + PROMPT 2 10 "11 Imposta versata" END -TEXT DLG_NULL -BEGIN - PROMPT 41 7 "11 Imposta versata " - GROUP G_770 -END -NUMBER F_IIRPEFRI9 15 +NUMBER F_IIRPEFRI9 LENIMP BEGIN - PROMPT 61 7 "" + PROMPT STDIMP 10 "" FIELD LF_QUAA2->VIRPEF PICTURE "." END TEXT DLG_NULL BEGIN - PROMPT 2 8 "12 Interessi " - GROUP G_770 + PROMPT 2 11 "12 Interessi" END -TEXT DLG_NULL +NUMBER F_INTER11 LENIMP BEGIN - PROMPT 2 8 "12 1rata ac.IRPEF95" - GROUP G_730 -END - -NUMBER F_INTER11 15 -BEGIN - PROMPT 21 8 "" + PROMPT STDIMP 11 "" FIELD LF_QUAA2->INTIRPEF PICTURE "." END -GROUPBOX DLG_NULL 78 3 +GROUPBOX DLG_NULL 78 4 BEGIN - PROMPT 1 10 "@bPRIMA RATA ACCONTO IRPEF PER IL 1995 " + PROMPT 1 14 "@bPrima rata acconto Irpef per il 1996" END TEXT DLG_NULL BEGIN - PROMPT 2 11 "13 Imposta versata " - GROUP G_770 + PROMPT 2 15 "13 Imposta versata" END -TEXT DLG_NULL +NUMBER F_PRIRPEF10 LENIMP BEGIN - PROMPT 2 11 "13 2rata ac.IRPEF95" - GROUP G_730 -END - -NUMBER F_PRIRPEF10 15 -BEGIN -// PROMPT 2 11 "Imposta versata " - PROMPT 21 11 "" + PROMPT STDIMP 15 "" FIELD LF_QUAA2->AIRPEFIV PICTURE "." END TEXT DLG_NULL BEGIN - PROMPT 41 11 "14 Interessi " - GROUP G_770 + PROMPT 2 16 "14 Interessi" END -TEXT DLG_NULL +NUMBER F_AIRPEFINT LENIMP BEGIN - PROMPT 41 11 "14 I.v.trat.CSSN " - GROUP G_730 -END - -NUMBER F_AIRPEFINT 15 -BEGIN - PROMPT 61 11 "" + PROMPT STDIMP 16 "" FIELD LF_QUAA2->AIRPEFINT PICTURE "." END TEXT DLG_NULL BEGIN - PROMPT 2 13 "15 Soprattasse IRPEF saldo 94 e prima rata acc.95 " - GROUP G_770 + PROMPT 2 19 "15 Soprattasse su Irpef saldo 95 e 1°rata acconto 96" END -TEXT DLG_NULL +NUMBER F_STASSA12 LENIMP BEGIN - PROMPT 2 13 "15 Importo da rimborsare CSSN " - GROUP G_730 -END - -NUMBER F_STASSA12 15 -BEGIN - PROMPT 61 13 "" + PROMPT STDIMP 19 "" FIELD LF_QUAA2->STASSA15 PICTURE "." END @@ -258,120 +227,162 @@ BEGIN GROUP 5 END -GROUPBOX DLG_NULL 78 4 +GROUPBOX DLG_NULL 78 5 BEGIN - PROMPT 1 4 "@bSALDO C.S.S.N. PER IL 1994 " + PROMPT 1 3 "@bSaldo C.s.s.n. per il 1995" END TEXT DLG_NULL BEGIN - PROMPT 2 5 "16 Cont.a rimborso " - GROUP G_770 + PROMPT 2 4 "16 Contributo a rimborso" END -TEXT DLG_NULL +NUMBER QA2F_CSSNCRIMB LENIMP BEGIN - PROMPT 2 5 "16 1r.acc.CSSN 95 " - GROUP G_730 -END - -NUMBER QA2F_CSSNCRIMB 15 -BEGIN - PROMPT 21 5 "" + PROMPT STDIMP 4 "" FIELD LF_QUAA2->CONTR16 PICTURE "." END TEXT DLG_NULL BEGIN - PROMPT 41 5 "17 Cont. versato " - GROUP G_770 + PROMPT 2 5 "17 Contributo versato" END +NUMBER QA2F_CSSNCVER LENIMP +BEGIN + PROMPT STDIMP 5 "" + FIELD LF_QUAA2->CONTRVER + PICTURE "." +END + TEXT DLG_NULL BEGIN - PROMPT 41 5 "17 2r.acc.CSSN 95 " - GROUP G_730 + PROMPT 2 6 "18 Interessi" END -NUMBER QA2F_CSSNCVER 15 +NUMBER QA2F_CSSNINT LENIMP BEGIN -// PROMPT 41 5 "Contr. versato " - PROMPT 61 5 "" - FIELD LF_QUAA2->CONTRVER - PICTURE "." -END - -NUMBER QA2F_CSSNINT 15 -BEGIN - PROMPT 2 6 "18 Interessi " + PROMPT STDIMP 6 "" FIELD LF_QUAA2->INTER18 - PICTURE "." - GROUP G_ALL -END - -GROUPBOX DLG_NULL 78 3 -BEGIN - PROMPT 1 8 "@bPRIMA RATA ACCONTO C.S.S.N. PER IL 1995 " -END - -NUMBER QA2F_CSSNAIV 15 -BEGIN - PROMPT 2 9 "19 Contrib.versato " - FIELD LF_QUAA2->CONTV19 PICTURE "." - GROUP G_ALL -END - -NUMBER QA2F_CSSNAINT 15 -BEGIN - PROMPT 41 9 "20 Interessi " - FIELD LF_QUAA2->INTE20 - PICTURE "." - GROUP G_ALL -END - -NUMBER QA2F_STCSSN 15 -BEGIN - PROMPT 2 11 "21 Soprattasse su C.S.S.N. saldo 94 e prima rata acc.95 " - FIELD LF_QUAA2->SOPRAT21 - PICTURE "." - GROUP G_ALL -END - -STRING QA2F_730NLIQ 2 -BEGIN - PROMPT 2 12 "22 Mod.730/95 non liquidabile " - SHEET "Codice|Descrizione@60" - INPUT QA2F_730NLIQ - ITEM "|" - ITEM "01|Errata o incomp. compilaz. dati anagr. e di res. del dich." - ITEM "02|Errata o incomp. compilaz. dati del coniuge e fam. a carico" - ITEM "03|Errata o incomp. compilaz. dati anagr. e di res. del coniuge" - ITEM "04|Errata o incomp. dichiaraz. q. A Mod.730/95 del dich." - ITEM "05|Errata o incomp. dichiaraz. q. A Mod.730/95 del coniuge" - ITEM "06|Errata o incomp. dichiaraz. q. B Mod.730/95 del dich." - ITEM "07|Errata o incomp. dichiaraz. q. B Mod.730/95 del coniuge" - ITEM "08|Errata o incomp. dichiaraz. q. C Mod.730/95 del dich." - ITEM "09|Errata o incomp. dichiaraz. q. D Mod.730/95 del dich." - ITEM "10|Errata o incomp. dichiaraz. q. E Mod.730/95 del dich." - ITEM "11|Errata o incomp. dichiaraz. q. E Mod.730/95 del coniuge" - ITEM "12|Errata o incomp. dichiaraz. q. F Mod.730/95 del dich." - ITEM "13|Errata o incomp. dichiaraz. q. F Mod.730/95 del coniuge" - FIELD LF_QUAA2->M730NLIQ - FLAGS "Z" - OUTPUT QA2F_730NLIQ - GROUP G_ALL END GROUPBOX DLG_NULL 78 4 BEGIN - PROMPT 1 14 "@bDati identificativi del C.A.A.F che ha prestato assistenza " + PROMPT 1 9 "@bPrima rata acconto C.s.s.n. per il 1996" +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 10 "19 Contributo versato" +END + +NUMBER QA2F_CSSNAIV LENIMP +BEGIN + PROMPT STDIMP 10 "" + FIELD LF_QUAA2->CONTV19 + PICTURE "." +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 11 "20 Interessi" +END + +NUMBER QA2F_CSSNAINT LENIMP +BEGIN + PROMPT STDIMP 11 "" + FIELD LF_QUAA2->INTE20 + PICTURE "." +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 14 "21 Soprattasse su C.s.s.n. saldo 95 e 1°rata acconto 96" +END + +NUMBER QA2F_STCSSN LENIMP +BEGIN + PROMPT STDIMP 14 "" + FIELD LF_QUAA2->SOPRAT21 + PICTURE "." +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 16 "22 Modello 730/96 non liquidabile" +END + +STRING QA2F_730NLIQ 2 +BEGIN + PROMPT STDIMP 16 "" + SHEET "Codice|Descrizione (Errata o incompleta ...)@60" + INPUT QA2F_730NLIQ + ITEM " |Niente" + ITEM "01|..compilazione dati anagrafici e residenza del dichiarante" + ITEM "02|..compilazione dati del coniuge e familiari a carico" + ITEM "03|..compilazione dati anagrafici e residenza del coniuge" + ITEM "04|..dichiarazione quadro A Mod.730/96 del dichiarante" + ITEM "05|..dichiarazione quadro A Mod.730/96 del coniuge" + ITEM "06|..dichiarazione quadro B Mod.730/96 del dichiarante" + ITEM "07|..dichiarazione quadro B Mod.730/96 del coniuge" + ITEM "08|..dichiarazione quadro C Mod.730/96 del dichiarante" + ITEM "09|..dichiarazione quadro D Mod.730/96 del dichiarante" + ITEM "10|..dichiarazione quadro E Mod.730/96 del dichiarante" + ITEM "11|..dichiarazione quadro E Mod.730/96 del coniuge" + ITEM "12|..dichiarazione quadro F Mod.730/96 del dichiarante" + ITEM "13|..dichiarazione quadro F Mod.730/96 del coniuge" + FIELD LF_QUAA2->M730NLIQ + OUTPUT QA2F_730NLIQ + FLAGS "Z" +END + +ENDPAGE + +PAGE "3" -1 -1 78 21 + +TEXT DLG_NULL +BEGIN + PROMPT 1 1 "@bDipendente" +END + +NUMBER DLG_NULL 6 +BEGIN + PROMPT 17 1 "" + FLAGS "DG" + GROUP 2 +END + +STRING DLG_NULL 24 +BEGIN + PROMPT 25 1 "" + FLAGS "DG" + GROUP 3 +END + +STRING DLG_NULL 20 +BEGIN + PROMPT 49 1 "" + FLAGS "DG" + GROUP 4 +END + +NUMBER DLG_NULL 4 +BEGIN + PROMPT 72 1 "" + FLAGS "DG" + GROUP 5 +END + +GROUPBOX DLG_NULL 78 7 +BEGIN + PROMPT 1 3 "@bDati identificativi del C.A.A.F che ha prestato assistenza" END NUMBER F_CODCAAF 5 BEGIN - PROMPT 2 15 "Codice " + PROMPT 2 4 "Codice " FIELD LF_QUAA2->CODCAAF USE %CAF CHECKTYPE NORMAL @@ -384,28 +395,188 @@ BEGIN OUTPUT F_DENCAAF S0 OUTPUT F_NISCRA I1 OUTPUT F_CODFISCAAF S1 - GROUP G_ALL FLAGS "Z" -END +END -STRING F_DENCAAF 50 +TEXT DLG_NULL BEGIN - PROMPT 26 15 "" - FLAGS "DU" + PROMPT 2 6 "23 Codice fiscale" END STRING F_CODFISCAAF 16 BEGIN - PROMPT 2 16 "23 Cod.fiscale " + PROMPT 25 6 "" FLAGS "D" +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 7 "24 Denominazione" END +STRING F_DENCAAF 50 +BEGIN + PROMPT 25 7 "" + FLAGS "DU" +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 8 "23 N°iscrizione albo" +END + NUMBER F_NISCRA 5 BEGIN - PROMPT 50 16 "25 N.iscrizione albo " + PROMPT 25 8 "" FLAGS "D" END +ENDPAGE + +PAGE "4" -1 -1 78 21 + +TEXT DLG_NULL +BEGIN + PROMPT 1 1 "@bDipendente" +END + +NUMBER DLG_NULL 6 +BEGIN + PROMPT 17 1 "" + FLAGS "DG" + GROUP 2 +END + +STRING DLG_NULL 24 +BEGIN + PROMPT 25 1 "" + FLAGS "DG" + GROUP 3 +END + +STRING DLG_NULL 20 +BEGIN + PROMPT 49 1 "" + FLAGS "DG" + GROUP 4 +END + +NUMBER DLG_NULL 4 +BEGIN + PROMPT 72 1 "" + FLAGS "DG" + GROUP 5 +END + +GROUPBOX DLG_NULL 78 10 +BEGIN + PROMPT 1 3 "@bOperazioni di conguaglio" +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 4 "10 Importo da versare/trattenere Irpef" +END + +NUMBER F_QA2RCB10 LENIMP +BEGIN + PROMPT STDIMP 4 "" + FIELD LF_QUAA2->QA2RCB10 + PICTURE "." + GROUP G_OPECONG +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 5 "11 Importo da rimborsare Irpef" +END + +NUMBER F_QA2RCB11 LENIMP +BEGIN + PROMPT STDIMP 5 "" + FIELD LF_QUAA2->QA2RCB11 + PICTURE "." + GROUP G_OPECONG +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 6 "12 Prima rata acconto Irpef 1996" +END + +NUMBER F_QA2RCB12 LENIMP +BEGIN + PROMPT STDIMP 6 "" + FIELD LF_QUAA2->QA2RCB12 + PICTURE "." + GROUP G_OPECONG +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 7 "13 Seconda rata acconto Irpef 1996" +END + +NUMBER F_QA2RCB13 LENIMP +BEGIN + PROMPT STDIMP 7 "" + FIELD LF_QUAA2->QA2RCB13 + PICTURE "." + GROUP G_OPECONG +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 8 "14 Importo da versare/trattenere C.s.s.n." +END + +NUMBER F_QA2RCB14 LENIMP +BEGIN + PROMPT STDIMP 8 "" + FIELD LF_QUAA2->QA2RCB14 + PICTURE "." + GROUP G_OPECONG +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 9 "15 Importo da rimborsare C.s.s.n." +END + +NUMBER F_QA2RCB15 LENIMP +BEGIN + PROMPT STDIMP 9 "" + FIELD LF_QUAA2->QA2RCB15 + PICTURE "." + GROUP G_OPECONG +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 10 "16 Prima rata acconto C.s.s.n. 1996" +END + +NUMBER F_QA2RCB16 LENIMP +BEGIN + PROMPT STDIMP 10 "" + FIELD LF_QUAA2->QA2RCB16 + PICTURE "." + GROUP G_OPECONG +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 11 "17 Seconda rata acconto C.s.s.n. 1996" +END + +NUMBER F_QA2RCB17 LENIMP +BEGIN + PROMPT STDIMP 11 "" + FIELD LF_QUAA2->QA2RCB17 + PICTURE "." + GROUP G_OPECONG +END + ENDPAGE ENDMASK \ No newline at end of file diff --git a/m770/771200g.uml b/m770/771200g.uml index a0d7f710c..54e50f6d3 100755 --- a/m770/771200g.uml +++ b/m770/771200g.uml @@ -10,7 +10,7 @@ ENDPAGE #define G_DIPEND 1 #define G_QUADROA 2 -PAGE "Quadro A3" -1 -1 78 18 +PAGE "Quadro A3" -1 -1 78 21 GROUPBOX DLG_NULL 78 3 BEGIN @@ -20,7 +20,7 @@ END NUMBER QAF_CODDITTA 5 BEGIN PROMPT 3 1 "Ditta " - FLAGS "GRD" + FLAGS "GRDP" USE LF_NDITTE KEY 1 INPUT CODDITTA QAF_CODDITTA OUTPUT QAF_RAGDITTA RAGSOC @@ -32,13 +32,13 @@ END STRING QAF_RAGDITTA 50 BEGIN PROMPT 17 1 "Ragione " - FLAGS "D" + FLAGS "DP" END NUMBER QAF_ANNODIC 4 BEGIN PROMPT 52 3 "Anno dichiarazione " - FLAGS "DR" + FLAGS "DRP" END TEXT DLG_NULL diff --git a/m770/771200h.uml b/m770/771200h.uml index bf9116fab..5ba4bf328 100755 --- a/m770/771200h.uml +++ b/m770/771200h.uml @@ -3,7 +3,7 @@ TOOLBAR "" 0 19 0 3 #include ENDPAGE -PAGE "Quadro A3" -1 -1 78 18 +PAGE "1" -1 -1 78 21 TEXT DLG_NULL BEGIN @@ -61,51 +61,76 @@ BEGIN FIELD LF_QUAA3->NPROG END +TEXT DLG_NULL +BEGIN + PROMPT 2 3 " 8 Data inizio rapporto a tempo indeterminato" +END + DATE F_DIRAPTI BEGIN - PROMPT 1 5 "8 Data inizio rapporto a tempo indeterminato " + PROMPT STDIMP 3 "" FIELD LF_QUAA3->DIRAPTI END GROUPBOX DLG_NULL 78 4 BEGIN - PROMPT 0 7 "@bDATI DAL 1/1/95 A FINE PERIODO D'IMPOSTA" + PROMPT 1 5 "@bDati dal 01/01/96 a fine periodo d'imposta" END +TEXT DLG_NULL +BEGIN + PROMPT 2 6 " 9 Numero giorni in incremento" +END + NUMBER F_NGINC15 3 BEGIN - PROMPT 1 8 "9 Num. giorni in incremento " + PROMPT STDIMP 6 "" FIELD LF_QUAA3->NGINC15 -END +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 7 "10 Reddito corrisposto" +END NUMBER F_REDCOR16 15 BEGIN - PROMPT 1 9 "10 Reddito corrisposto " + PROMPT STDIMP 7 "" FIELD LF_QUAA3->REDCOR16 PICTURE "." END GROUPBOX DLG_NULL 78 4 BEGIN - PROMPT 0 11 "@bDATI DA INIZIO SUCCESSIVO PERIODO D'IMPOSTA FINO AL 31/12/95" + PROMPT 1 10 "@bDati da inizio successivo periodo d'imposta fino al 31/12/96" END +TEXT DLG_NULL +BEGIN + PROMPT 2 11 "11 Numero giorni in incremento" +END + NUMBER F_NGINC17 3 BEGIN - PROMPT 1 12 "11 Num. giorni in incremento" + PROMPT STDIMP 11 "" FIELD LF_QUAA3->NGINC17 END +TEXT DLG_NULL +BEGIN + PROMPT 2 12 "12 Reddito corrisposto" +END + NUMBER F_REDCOR18 15 BEGIN - PROMPT 1 13 "12 Reddito corrisposto " + PROMPT STDIMP 12 "" FIELD LF_QUAA3->REDCOR18 PICTURE "." END ENDPAGE -PAGE "Societa' trasformata" -1 -1 78 21 +PAGE "2" -1 -1 78 21 TEXT DLG_NULL BEGIN @@ -162,7 +187,7 @@ END TEXT DLG_NULL BEGIN - PROMPT 1 3 "@bSocieta' trasformata " + PROMPT 1 3 "@bSocietà trasformata" END STRING F_DENTRASF 40 @@ -183,40 +208,65 @@ BEGIN FLAGS "D" END +TEXT DLG_NULL +BEGIN + PROMPT 2 5 " 8 Data inizio rapporto a tempo indeterminato" +END + DATE F_DIRAPTI_2 BEGIN - PROMPT 1 5 "8 Data inizio rapporto a tempo indeterminato " + PROMPT STDIMP 5 "" END GROUPBOX DLG_NULL 78 4 BEGIN - PROMPT 0 7 "@bDATI DAL 1/1/95 A FINE PERIODO D'IMPOSTA" + PROMPT 1 7 "@bDati dal 01/01/96 a fine periodo d'imposta" END +TEXT DLG_NULL +BEGIN + PROMPT 2 8 " 9 Numero giorni in incremento" +END + NUMBER F_NGINC15_2 3 BEGIN - PROMPT 1 8 "9 Num. giorni in incremento " + PROMPT STDIMP 8 "" END +TEXT DLG_NULL +BEGIN + PROMPT 2 9 "10 Reddito corrisposto" +END + NUMBER F_REDCOR16_2 15 BEGIN - PROMPT 1 9 "10 Reddito corrisposto " + PROMPT STDIMP 9 "" PICTURE "." END GROUPBOX DLG_NULL 78 4 BEGIN - PROMPT 0 11 "@bDATI DA INIZIO SUCCESSIVO PERIODO D'IMPOSTA FINO AL 31/12/95" + PROMPT 1 12 "@bDati da inizio successivo periodo d'imposta fino al 31/12/96" END +TEXT DLG_NULL +BEGIN + PROMPT 2 13 "11 Numero giorni in incremento" +END + NUMBER F_NGINC17_2 3 BEGIN - PROMPT 1 12 "11 Num. giorni in incremento" + PROMPT STDIMP 13 "" END +TEXT DLG_NULL +BEGIN + PROMPT 2 14 "12 Reddito corrisposto" +END + NUMBER F_REDCOR18_2 15 BEGIN - PROMPT 1 13 "12 Reddito corrisposto " + PROMPT STDIMP 14 "" PICTURE "." END diff --git a/m770/771200i.uml b/m770/771200i.uml index fa51d2e0b..58e5798c4 100755 --- a/m770/771200i.uml +++ b/m770/771200i.uml @@ -2,7 +2,7 @@ TOOLBAR "" 0 20 0 2 BUTTON DLG_SAVEREC 8 2 BEGIN -PROMPT -16 -1 "" +PROMPT -16 -1 "~Registra" FLAGS "D" MESSAGE EXIT,K_SAVE PICTURE BMP_SAVEREC @@ -22,6 +22,8 @@ BUTTON DLG_DELREC 8 2 BEGIN PROMPT -36 -1 "~Elimina" MESSAGE EXIT,K_DEL +PICTURE BMP_DELREC +PICTURE BMP_DELRECDN FLAGS "D" END @@ -35,14 +37,17 @@ END BUTTON DLG_CANCEL 8 2 BEGIN -PROMPT -56 -1 "" -MESSAGE EXIT,K_ESC +PROMPT -56 -1 "~Annulla" +MESSAGE EXIT,K_ESC +PICTURE BMP_CANCEL END BUTTON DLG_QUIT 8 2 BEGIN -PROMPT -66 -1 "" +PROMPT -66 -1 "~Fine" MESSAGE EXIT,K_QUIT +PICTURE BMP_QUIT +PICTURE BMP_QUITDN END ENDPAGE @@ -57,7 +62,7 @@ END NUMBER QAF_CODDITTA 5 BEGIN PROMPT 3 1 "Ditta " - FLAGS "GRD" + FLAGS "GRDP" KEY 1 CHECKTYPE REQUIRED USE LF_NDITTE KEY 1 @@ -69,7 +74,7 @@ END STRING QAF_RAGDITTA 50 BEGIN PROMPT 20 1 "" - FLAGS "D" + FLAGS "DP" END GROUPBOX DLG_NULL 78 5 diff --git a/m770/771230.cpp b/m770/771230.cpp index 57cbc2bf3..9e5d9a29c 100755 --- a/m770/771230.cpp +++ b/m770/771230.cpp @@ -1,935 +1,451 @@ -// 771230.cpp - Quadri C, D, D1, E, E1, E2 +// 771230.cpp - Quadri C, D, D bis, D1, E, E1, E2 #include -#include #include -#include -#include -#include #include "caus77.h" #include "77lib.h" #include "scperc.h" -#include "rpag.h" -#include "perc.h" -#include "prospe1.h" #include "defmask.h" -#include "771230a.h" +#include "771230.h" #include "774200.h" class TQuadroC_E2 : public TRelation_application { - private: - TString _quadro; // Codice del quadro in gestione - bool _registra; // Se TRUE fa i riporti - - struct righe_pag - { - char tipoa; - char codan[6]; - char codcau[3]; - char perc[7]; //3 + 2decimali + la virgola - real somme; - real impo; - real rite; - real comp; - bool acim; - bool bInps; - real inps; - }; - righe_pag* _rig; - TRelation* _rel; - TMask* _msk[2]; - TSort* _sort; - long _codanagr; - char _tipoa, _tipoq; - int _nproga; - int _mode; - int _anno_dic; // anno dichiarazione - TLocalisamfile* _per, *_scper, *_rpag, *_qd; - TTable* _ca7; - TRiporti _rip; - long _codditta; - int _file; - - private: - static bool nprog_handler (TMask_field& f, KEY key); - static bool codanagr_handler(TMask_field& f, KEY key); - static bool genera_handler (TMask_field& f, KEY key); - static bool codditta_hnd (TMask_field& f, KEY key); - static bool setta_nprog (TMask_field& f); - static bool imponibile_hnd (TMask_field& f, KEY key); - - bool QuadroC() const { return _tipoq == 'C'; } - bool QuadroD() const { return _tipoq == 'D'; } - bool QuadroD1() const { return _tipoq == '1'; } - bool QuadroE() const { return _tipoq == 'E'; } - bool QuadroE1() const { return _tipoq == '2'; } - bool QuadroE2() const { return _tipoq == '3'; } +private: + TString16 _quadro; // Codice del quadro in gestione + int _file; + bool _registra; // Se TRUE fa i riporti + TRelation* _rel; + TMask* _msk; + long _codditta; + +private: + bool QuadroC() const { return _quadro == "C"; } + bool QuadroD() const { return _quadro == "D"; } + bool QuadroDbis() const { return _quadro == "DB"; } + bool QuadroD1() const { return _quadro == "D1"; } + bool QuadroE() const { return _quadro == "E"; } + bool QuadroE1() const { return _quadro == "E1"; } + bool QuadroE2() const { return _quadro == "E2"; } - protected: - virtual bool user_create(); - virtual bool user_destroy(); - virtual int rewrite(const TMask& m); - virtual int write (const TMask& m); - virtual bool remove(); - virtual TRelation* get_relation() const { return _rel; } - virtual TMask* get_mask(int mode); - virtual bool changing_mask(int mode); - virtual void init_query_mode (TMask&); - virtual void init_query_insert_mode (TMask&); - virtual void on_config_change(); +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 TRelation* get_relation() const { return _rel; } + virtual bool changing_mask(int mode) { return FALSE; } + virtual TMask* get_mask(int mode) { return _msk; } + virtual void init_query_mode (TMask&); + virtual void init_insert_mode (TMask&); + virtual void init_modify_mode (TMask&); + +protected: + void fill_sheet(const TMask&); + void pack_sheet(const TMask&); + + static bool ricalcola_imposte_c(TMask_field& f, KEY key); + static bool ricalcola_imposte_d(TMask_field& f, KEY key); + static bool ricalcola_imposte_dbis(TMask_field& f, KEY key); + static bool ricalcola_imposte_e(TMask_field& f, KEY key); + static bool ricalcola_imposte_e1(TMask_field& f, KEY key); + static bool prospetto_e1_notify(TSheet_field& s, int r, KEY k); + void reset_prospetto_e1(); + void read_prospetto_e1(); + int write_prospetto_e1(); - TMask* load_mask(int n); - bool generazione(); - bool azzera_quadro(); - void riempi_record(char,long,int,const real&,const real&, - const real&,const real&,const real&,bool, - const real& inps_perc, bool bCinps=FALSE); - void init_sort(); - void leggi_sort(TProgind&); - TRectype& look_causali(int c); - int anno_dic() const { return _anno_dic; } - bool scrivi_dati_per(TRectype& rec); - void genera_prospetto(int,real&,real&,real&); - - public: - TQuadroC_E2(char tipo); - virtual ~TQuadroC_E2() {}; + static bool ricalcola_imposte_e2(TMask_field& f, KEY key); + static bool ritenute_handler_e2(TMask_field& f, KEY key); + +public: + TQuadroC_E2(const char* quadro); + virtual ~TQuadroC_E2() {}; }; -inline TQuadroC_E2& app() { return (TQuadroC_E2&) main_app(); } +inline TQuadroC_E2& app() { return (TQuadroC_E2&)main_app(); } -TQuadroC_E2::TQuadroC_E2(char tipo): _rel(NULL), _mode(0), _tipoq(tipo) +TQuadroC_E2::TQuadroC_E2(const char* quadro) + : _msk(NULL), _rel(NULL), _quadro(quadro), _file(0) { - memset(_msk, 0, sizeof(_msk)); -} - -bool TQuadroC_E2::changing_mask(int mode) -{ - if ((mode == MODE_MOD) && (_mode == MODE_INS)) - return FALSE; - else - return _mode != mode; -} - -TMask* TQuadroC_E2::get_mask(int mode) -{ - const int m = (mode == MODE_QUERY) ? 0 : 1; - _mode = mode; - return load_mask(m); -} - -TMask* TQuadroC_E2::load_mask(int n) -{ - if (_msk[n] != NULL) - return _msk[n]; - - TFilename name("771230"); - - if (n == 0) - { - switch (_tipoq) - { - case 'C': - name << 'd'; - break; - case 'D': - name << 'a'; - break; - case '1': - name << 'e'; - break; - case 'E' : - name << 'g'; - break; - case '2' : - name << 'i'; - break; - case '3': - name = "77qe2a"; - break; - default: - break; - } - } - else - { - switch (_tipoq) - { - case 'C': - name << 'f'; - break; - case 'D': - name << 'b'; - break; - case '1': - name << 'c'; - break; - case 'E': - name << 'h'; - break; - case '2' : - name << 'l'; - break; - case '3': - name = "77qe2b"; - break; - default: - break; - } - } - - TMask* m = new TMask(name); - - switch (n) - { - case 0: - if (m) - { - m->set_handler(F_CODDITTA, codditta_hnd); - m->set_handler(F_NPROG, nprog_handler); - m->set_handler(F_CODANAGRCOM, codanagr_handler); - m->set_handler(F_CODANAGRPERC, codanagr_handler); - if (_quadro != "E2") - m->set_handler(F_GENERA, genera_handler); - } - break; - case 1: - if (m) - { - m->set_handler(F_IMPONIBILE, imponibile_hnd); - m->set_handler(F_PERC, imponibile_hnd); - } - break; - default: - break; - } - m->disable(DLG_FINDREC); - - return _msk[n] = m; -} - -// Ricerca e output dell'ultimo nprog del percipiente scelto -bool TQuadroC_E2::setta_nprog(TMask_field& f) -{ - long nprog = 0L; - const char tipoa = f.mask().get(F_TIPOA)[0]; - const long codanagr = atol(f.get()); - const long codditta = get_firm_770(); - - TLocalisamfile quad(app()._file); - - quad.zero(); - quad.put("CODDITTA", codditta); - quad.put("TIPOA", tipoa); - quad.put("CODANAGR", codanagr); - - TRectype rec(quad.curr()); - - quad.read(); - - if (quad.curr() > rec) - { - f.mask().set(F_NPROG, nprog+1); - return TRUE; - } - - for ( ; !quad.eof(); quad.next()) - { - if (quad.curr() > rec) break; - nprog = quad.get_long("NPROG"); - } - - //app()._last_scheda = nprog; - - f.mask().set(F_NPROG, nprog+1); - return TRUE; -} - -bool TQuadroC_E2::codditta_hnd(TMask_field& f, KEY k) -{ - if (k == K_TAB && !f.mask().is_running()) - { - TString16 codditta; codditta << app()._codditta; - if (codditta != "0") - { - f.set(codditta); - f.check(); - } - } - return TRUE; -} - -bool TQuadroC_E2::imponibile_hnd(TMask_field& f, KEY k) -{ - if (k == K_TAB) - { - if (f.dlg() == F_PERC) - { - real perc (f.get()); - if (perc == ZERO) - { - int causale = f.mask().get_int(F_CODCAUS); - TRectype& cau = app().look_causali(causale); - real aliquota = cau.get_real(rPERC_RAC); - f.mask().set(F_PERC, aliquota.string()); - } - } - - real imponibile (f.mask().get(F_IMPONIBILE)); - real aliquota (f.mask().get(F_PERC)); - - real importo = ZERO; - - importo = imponibile * (aliquota/100); - - f.mask().set(app()._tipoq == 'C' ? F_RITENUTE : F_IMPORTO, importo.string()); - } - return TRUE; -} - -void TQuadroC_E2::init_sort() -{ - _rig = new righe_pag; - _sort = new TSort(sizeof(righe_pag)); - - _sort->addsortkey ((char*)&(_rig->tipoa) - (char*)&(_rig->tipoa), 1); - _sort->addsortkey ((char*)&(_rig->codan) - (char*)&(_rig->tipoa), 5); - _sort->addsortkey ((char*)&(_rig->codcau) - (char*)&(_rig->tipoa), 2); - _sort->addsortkey ((char*)&(_rig->perc) - (char*)&(_rig->tipoa), 6); - _sort->init(); -} - -void TQuadroC_E2::riempi_record(char t,long ca,int cc,const real& p, - const real& so,const real& im, - const real& ri,const real& co,bool acim, - const real& inps, bool bInps) -{ - _rig->tipoa = t; - sprintf(_rig->codan, "%5ld", ca); - sprintf(_rig->codcau, "%02d", cc); -// 22.5.96 Cambiato il formato @@@,@@ con @.@@@,@@ -// Ci vuole anche il punto delle migliaia se real::string() sbaglia -// a calcolare il numero di decimali. -// TString16 pp(p.string("@.@@@,@@")); - double ppd = atof(p.string()); - sprintf(_rig->perc, "%.2f", ppd); - _rig->somme = so; - _rig->impo = im; - _rig->rite = ri; - _rig->comp = co; - _rig->acim = acim; - _rig->inps = inps; - _rig->bInps = bInps; - _sort->sort((const char*)_rig); -} - -bool TQuadroC_E2::genera_handler(TMask_field& f , KEY k) -{ - if (k == K_SPACE) - { - app().generazione(); - app()._registra = TRUE; // Genera i riporti alla fine - } - return TRUE; -} - -TRectype& TQuadroC_E2::look_causali(int codc) -{ - TString16 dep; - _ca7->zero(); - dep.format("%02d", codc); - _ca7->put("CODTAB", dep); - _ca7->read(); - if (_ca7->bad()) - _ca7->zero(); - return _ca7->curr(); -} - -bool TQuadroC_E2::generazione() -{ - if (!yesno_box("Conferma la generazione ?")) - return FALSE; - - init_sort(); - - TToken_string exp; - exp.add("CODDITTA=CODDITTA"); - exp.add("TIPOA=TIPOA"); - exp.add("CODANAGR=CODANAGR"); - exp.add("NPROG=NPROG"); - - TRelation rel (LF_SCPERC); - rel.add(LF_RPAG, exp, 1); - TString16 filt; filt.format("CODDITTA=%ld", get_firm_770()); - - TCursor cur (&rel,filt,1); - - azzera_quadro(); - - TLocalisamfile& scperc = rel.lfile(); - TLocalisamfile& rpag = rel.lfile(LF_RPAG); - cur = 0L; - const long nitems = cur.items(); - - TProgind p(nitems ? nitems : 1, "Generazione in corso...", FALSE, TRUE, 70); - long codan, codditta; - char tipoa; - int codcaus, nprog; - TString16 qua; - TDate datapag; - real perc=ZERO,spesa=ZERO,impo=ZERO,rite=ZERO,comp=ZERO,inps=ZERO; - - for (; cur.pos() < nitems; ++cur) - { - p.addstatus(1); - - codditta = scperc.get_long(SPR_CODDITTA); - tipoa = scperc.get(SPR_TIPOA)[0]; - codan = scperc.get_long(SPR_CODANAGR); - codcaus = scperc.get_int(SPR_CODCAUS); - nprog = scperc.get_int(SPR_NPROG); - - TRectype cau = look_causali(codcaus); - TString16 qua = cau.get(bCODICE_QUADRO); - bool acc_imp = cau.get_bool(bSOMME_ASSOG_RAC); - bool bContrInps = cau.get_bool(bCONTRIBUTO_INPS); - - if (_tipoq == 'D' && qua != "D") continue; - if (_tipoq == 'C' && qua != "C") continue; - if (_tipoq == '1' && qua != "D1") continue; - if (_tipoq == 'E' && qua != "E") continue; - if (_tipoq == '2' && qua != "E1") continue; - - if (cur.is_first_match(LF_RPAG)) - { - TRecnotype nrec = rpag.recno(); - rpag.zero(); - rpag.setkey(1); - rpag.put(PAG_CODDITTA, (long)codditta); - rpag.put(PAG_TIPOA, tipoa); - rpag.put(PAG_CODANAGR, (long)codan); - rpag.put(PAG_NPROG, nprog); - TRectype recc (rpag.curr()); - for (rpag.read(_isgteq); !rpag.eof() ;rpag.next()) - { - TRectype rec (rpag.curr()); - if (rec > recc) break; - datapag = rpag.get(PAG_DATAPAG); - if (datapag.year() != _anno_dic) - continue; - //codtrib = cau.get_int("I0"); - perc = rpag.get_real(PAG_PERC); - spesa = rpag.get_real(PAG_SPESA); - rite = rpag.get_real(PAG_RITENUTA); - impo = rpag.get_real(PAG_IMPONIBILE); - comp = rpag.get_real(PAG_COMPENSO); - inps = rpag.get_real(PAG_INPSPERC); - - if (perc==ZERO && comp==ZERO && rite==ZERO && impo==ZERO - && spesa==ZERO) - continue; - riempi_record(tipoa,codan,codcaus,perc,spesa,impo,rite,comp,acc_imp,inps,bContrInps); - } - rpag.readat(nrec); - } - } - _sort->endsort(); - - leggi_sort(p); - - delete _rig; - delete _sort; - return TRUE; -} - -bool TQuadroC_E2::azzera_quadro() -{ - const char* title; - - if (_tipoq == 'C') - title = "Azzeramento quadro C"; - else - if (_tipoq == 'D') - title = "Azzeramento quadro D"; - else - if (_tipoq == '1') - title = "Azzeramento quadro D1"; - else - if (_tipoq == 'E') - title = "Azzeramento quadro E"; - else - title = "Azzeramento quadro E1"; - - -// Tutto cio' solo per contare gli items e far andare correttamente -// il "termometro" (sic..) - TRelation rel (_file); - TString16 filt; filt.format("CODDITTA=%ld", get_firm_770()); - TCursor cur (&rel,filt,1); -// TLocalisamfile& quadro = rel.lfile(); - TLocalisamfile quadro(_file); - cur = 0L; - const long nitems = cur.items(); - - TProgind prog(nitems, title, FALSE, TRUE); - - quadro.zero(); - quadro.put("CODDITTA", (long)get_firm_770()); - TRectype dep(quadro.curr()); - - for (quadro.read(); !quadro.eof(); quadro.next()) - { - prog.addstatus(1); - if (quadro.curr() > dep) break; - quadro.read(_isequal, _lock); - quadro.remove(); - } - - if (_tipoq == '2') - { - TLocalisamfile quadro(LF_PROSPE1); - - TProgind prog(quadro.items(), "Azzeramento prospetto del quadro E1", FALSE, TRUE); - - quadro.zero(); - quadro.put("CODDITTA", (long)get_firm_770()); - TRectype dep(quadro.curr()); - - for (quadro.read(); !quadro.eof(); quadro.next()) - { - prog.addstatus(1); - if (quadro.curr() > dep) break; - quadro.read(_isequal, _lock); - quadro.remove(); - } - } - return TRUE; -} - -void TQuadroC_E2::genera_prospetto(int cau, real& comp, real& impo, real& rite) -{ - TLocalisamfile pr (LF_PROSPE1); - - pr.setkey(1); - pr.zero(); - pr.put(PRE_CODDITTA, (long)get_firm_770()); - pr.put(PRE_CODCAUS, cau); - if (pr.read() == NOERR) - { - comp += pr.get_real(PRE_COMPENSO); - impo += pr.get_real(PRE_IMPONIBILE); - rite += pr.get_real(PRE_RITENUTA); - - pr.put(PRE_COMPENSO, comp); - pr.put(PRE_IMPONIBILE, impo); - pr.put(PRE_RITENUTA, rite); - pr.rewrite(); - } - else - { - pr.put(PRE_CODDITTA, (long)get_firm_770()); - pr.put(PRE_CODCAUS, cau); - pr.put(PRE_COMPENSO, comp); - pr.put(PRE_IMPONIBILE, impo); - pr.put(PRE_RITENUTA, rite); - pr.write(); - } -} - -void TQuadroC_E2::leggi_sort(TProgind& p) -{ - TLocalisamfile qd(_file); - const char* buf; - TString16 keyp, key, perc, perc_p; - char tipoa, tipoa_p; - long codanag, codanag_p; - int codcaus_p, codcaus, nprog; - real tot_somme=ZERO,tot_impo=ZERO,tot_rite=ZERO,tot_comp=ZERO, rQCInps=ZERO; - real rTotQCInps = ZERO; - bool esiste_record=FALSE, bAssoggettateRacc=FALSE,bFattoProspetto=FALSE; - struct righe_pag* rp; - - keyp = key = ""; - nprog = 1; - tot_somme = tot_impo = tot_rite = tot_comp = ZERO; - - while ((buf = _sort->retrieve()) != NULL) - { - p.addstatus(1); - esiste_record = TRUE; - rp = (struct righe_pag*)buf; - tipoa = rp->tipoa; - codanag = atol(rp->codan); - codcaus = atoi(rp->codcau); - perc = rp->perc; - bAssoggettateRacc = rp->acim; -// non frega un tubo bInps = rp->bInps; // se la riga aveva il contributo inps nella caus. - rQCInps = rp->inps; - - if (QuadroE1() && !bAssoggettateRacc) - { - genera_prospetto(codcaus,rp->comp,rp->impo,rp->rite); - bFattoProspetto = TRUE; - } - else - { - key.format("%c%5ld%2d%s", tipoa, codanag, codcaus, (const char*)perc); - if ( (key != keyp) && (keyp != "") ) - { - bFattoProspetto = FALSE; - qd.zero(); - qd.put("CODDITTA", (long)get_firm_770()); - qd.put("TIPOA", tipoa_p); - qd.put("CODANAGR", (long)codanag_p); - qd.put("CODCAUS", codcaus_p); - qd.put("NPROG", nprog++); - -// 12.6.96 aggiunto contributo inps - if (QuadroC()) - qd.put("CONTSSN", rTotQCInps); - - if (QuadroD() || QuadroC() || QuadroE()) - qd.put("SOMME", tot_somme + tot_comp - tot_impo); - else - if (QuadroD1()) - { - qd.put("QUOTAPRO", tot_comp - tot_impo); - qd.put("SPESEANT", tot_somme); - } - else - if (QuadroE1()) - qd.put("SOMME", tot_comp); - - if (QuadroE1()) - qd.put("AMMONTARE", tot_impo); - else - qd.put("IMPONIBILE", tot_impo); - - if (QuadroC()) - qd.put("RITENUTE", tot_rite); - else - qd.put("IMPORTO", tot_rite); - - qd.put("PERC", perc_p); - - if (!QuadroE() && !QuadroE1()) - qd.put("TOTALE", tot_comp + tot_somme); - - if (QuadroC()) - qd.put("TOTALE", tot_somme + tot_impo + rTotQCInps); - - if (QuadroE1()) - qd.put("NETTO", tot_comp - tot_rite); - else - qd.put("NETTO", tot_impo - tot_rite); - qd.write(); - rTotQCInps = tot_impo = tot_somme = tot_rite = tot_comp = ZERO; - } - - tot_somme += rp->somme; - tot_rite += rp->rite; - tot_impo += rp->impo; - tot_comp += rp->comp; - rTotQCInps += rQCInps; - - if (tipoa_p != tipoa || codanag != codanag_p) - nprog = 1; - - tipoa_p = tipoa; - codanag_p = codanag; - codcaus_p = codcaus; - perc_p = perc; - - keyp.format("%c%5ld%2d%s", tipoa_p, codanag_p, codcaus_p, (const char*)perc_p); - } - } // while (retrieve() != NULL) - - if (esiste_record || bFattoProspetto) - { - qd.zero(); - qd.put("CODDITTA", (long)_codditta); - qd.put("TIPOA", tipoa_p); - qd.put("CODANAGR", (long)codanag_p); - qd.put("CODCAUS", codcaus_p); - qd.put("NPROG", nprog++); - - if (QuadroD() || QuadroC() || QuadroE()) - qd.put("SOMME", tot_somme + tot_comp - tot_impo); - else - if (QuadroD1()) - { - qd.put("QUOTAPRO", tot_comp - tot_impo); - qd.put("SPESEANT", tot_somme); - } - else - if (QuadroE1()) - qd.put("SOMME", tot_comp); - - if (QuadroE1()) - qd.put("AMMONTARE", tot_impo); - else - qd.put("IMPONIBILE", tot_impo); - - if (QuadroC()) - qd.put("RITENUTE", tot_rite); - else - qd.put("IMPORTO", tot_rite); - - qd.put("PERC", perc_p); - -// 12.6.96 aggiunto contributo inps - if (QuadroC()) - qd.put("CONTSSN", rTotQCInps); - - if (!QuadroE() && !QuadroE1()) - qd.put("TOTALE", tot_comp + tot_somme); - - if (QuadroC()) - qd.put("TOTALE", tot_somme + tot_impo + rTotQCInps); - - if (QuadroE1()) - qd.put("NETTO", tot_comp - tot_rite); - else - qd.put("NETTO", tot_impo - tot_rite); - qd.write(); - } -} - -bool TQuadroC_E2::codanagr_handler(TMask_field& f, KEY k) -{ - if (k == K_TAB && f.focusdirty()) - { - TMask& m = f.mask(); - const long codanagr = atol(f.get()); - const char tipoa = m.get(F_TIPOA)[0]; -// 12.6.96 Non lascia andare avanti se il perc. non esiste - if (!esiste_perc(tipoa, codanagr)) - return f.warning_box("Percipiente inesistente"); - if (app()._quadro != "E2") - f.mask().disable(F_GENERA); - TString16 dummy(f.get()); - if (dummy.not_empty()) - setta_nprog(f); - } - return TRUE; -} - -// Passa al modo inserimento/modifica. -bool TQuadroC_E2::nprog_handler(TMask_field& f, KEY key) -{ - if (!f.mask().is_running()) return TRUE; - - if (key == K_CTRL+K_TAB) - { - f.set_dirty(); - return TRUE; - } - - if (key == K_TAB) - { - const int nprog = atoi(f.get()); - if (nprog==0) return TRUE; -// f.mask().stop_run(K_AUTO_ENTER); // entra in modo modifica (se il record che ha chiave specificata esiste gia') oppure - // inserimento (se trova che non esiste) - } - return TRUE; -} - -bool TQuadroC_E2::scrivi_dati_per(TRectype& rec) -{ - TLocalisamfile dati_per(LF_PERC); - const long codditta = rec.get_long("CODDITTA"); - char tipoa = rec.get_char("TIPOA"); - const long codanagr = rec.get_long("CODANAGR"); - - dati_per.zero(); - dati_per.put("CODDITTA", codditta); - dati_per.put("TIPOA", tipoa); - dati_per.put("CODANAGR", codanagr); - - const bool preesistente = (dati_per.read() == NOERR); - - if (!preesistente) - { - dati_per.zero(); - dati_per.put("CODDITTA", codditta); - dati_per.put("TIPOA", tipoa); - dati_per.put("CODANAGR", codanagr); - - dati_per.write(); - } - - return preesistente; } int TQuadroC_E2::rewrite(const TMask& m) { - m.autosave(*_rel); - const int err = _rel->rewrite(); - scrivi_dati_per(_rel->curr()); - _registra = TRUE; + pack_sheet(m); + int err = TRelation_application::rewrite(m); + if (err == NOERR && QuadroE1()) + err = write_prospetto_e1(); + if (err == NOERR) + _registra = TRUE; + return err; +} + +int TQuadroC_E2::read(TMask& m) +{ + int err = TRelation_application::read(m); + if (err == NOERR && QuadroE1()) + read_prospetto_e1(); return err; } int TQuadroC_E2::write(const TMask& m) -{ - m.autosave(*_rel); - const int err = _rel->write(); - scrivi_dati_per(_rel->curr()); - +{ + pack_sheet(m); + int err = TRelation_application::write(m); + if (err == NOERR && QuadroE1()) + err = write_prospetto_e1(); + if (err == NOERR) _registra = TRUE; - return err; } bool TQuadroC_E2::remove() -{ - _registra = TRUE; - return TRelation_application::remove(); +{ + bool ok = TRelation_application::remove(); + if (ok && QuadroE1()) + { + reset_prospetto_e1(); + write_prospetto_e1(); + _registra = TRUE; + } + return ok; } bool TQuadroC_E2::user_create() { - switch (_tipoq) - { - case 'C': - _file = LF_QUAC; - _quadro = "C"; - break; - case 'D': - _file = LF_QUAD; - _quadro = "D"; - break; - case '1': - _file = LF_QUAD1; - _quadro = "D1"; - break; - case 'E': - _file = LF_QUAE; - _quadro = "E"; - break; - case '2': - _file = LF_QUAE1; - _quadro = "E1"; - break; - case '3': - _file = LF_QUAE2; - _quadro = "E2"; - break; - default: - break; - } - - _qd = new TLocalisamfile(_file); - _rel = new TRelation(_file); - _rpag = new TLocalisamfile(LF_RPAG); - _ca7 = new TTable ("%CA7"); _codditta = get_firm_770(); - set_search_field(F_CODANAGRPERC); - _registra = FALSE; - load_mask(0); + TFilename name("771230"); + name << _quadro; + _msk = new TMask(name); + set_search_field(F_CODANAGR); + + TSheet_field& s = (TSheet_field&)_msk->field(F_RIGHE); + TMask& m = s.sheet_mask(); + if (QuadroC()) + { + _file = LF_QUAC; + m.set_handler(102, ricalcola_imposte_c); + m.set_handler(105, ricalcola_imposte_c); + m.set_handler(107, ricalcola_imposte_c); + m.set_handler(108, ricalcola_imposte_c); + } else + if (QuadroD()) + { + _file = LF_QUAD; + m.set_handler(102, ricalcola_imposte_d); + m.set_handler(104, ricalcola_imposte_d); + m.set_handler(105, ricalcola_imposte_d); + m.set_handler(106, ricalcola_imposte_d); + m.set_handler(107, ricalcola_imposte_d); + } else + if (QuadroD1()) + { + _file = LF_QUAD1; + m.set_handler(102, ricalcola_imposte_d); + m.set_handler(104, ricalcola_imposte_d); + m.set_handler(105, ricalcola_imposte_d); + m.set_handler(106, ricalcola_imposte_d); + m.set_handler(107, ricalcola_imposte_d); + } else + if (QuadroDbis()) + { + _file = LF_QUADBIS; + m.set_handler(102, ricalcola_imposte_dbis); + m.set_handler(104, ricalcola_imposte_dbis); + m.set_handler(105, ricalcola_imposte_dbis); + m.set_handler(106, ricalcola_imposte_dbis); + m.set_handler(107, ricalcola_imposte_dbis); + } else + if (QuadroE()) + { + _file = LF_QUAE; + m.set_handler(104, ricalcola_imposte_e); + m.set_handler(105, ricalcola_imposte_e); + } else + if (QuadroE1()) + { + _file = LF_QUAE1; + m.set_handler(105, ricalcola_imposte_e1); + m.set_handler(106, ricalcola_imposte_e1); + TSheet_field& s = (TSheet_field&)_msk->field(F_PROSPETTO); + s.set_notify(prospetto_e1_notify); + } else + if (QuadroE2()) + { + _file = LF_QUAE2; + m.set_handler(103, ricalcola_imposte_e2); + m.set_handler(104, ricalcola_imposte_e2); + m.set_handler(105, ritenute_handler_e2); + } + _rel = new TRelation(_file); + return TRUE; } bool TQuadroC_E2::user_destroy() { - if (_msk[1] != NULL) delete _msk[1]; - if (_msk[0] != NULL) delete _msk[0]; - - TString16 quadro = ""; - - switch (_tipoq) - { - case 'C': - quadro << "C"; - break; - case 'D': - quadro << "D"; - break; - case '1': - quadro << "D1"; - break; - case 'E': - quadro << "E"; - break; - case '2': - quadro << "E1"; - break; - case '3': - quadro << "E2"; - break; - default: - break; - } - if (_registra) - _rip.set(quadro); + { + TRiporti rip; + rip.set(_quadro); + } delete _rel; - delete _qd; - delete _rpag; - delete _ca7; + delete _msk; return TRUE; } -void TQuadroC_E2::on_config_change() -{ - TConfig conf(CONFIG_STUDIO); - _anno_dic = (int)conf.get_long(ANNO_SEL, NULL); -} - void TQuadroC_E2::init_query_mode(TMask& m) -{ - m.set(F_ANNODIC, _anno_dic); - if (_quadro != "E2") - m.enable(F_GENERA); +{ + m.set(F_CODDITTA, _codditta); + TSheet_field& sf = (TSheet_field&)m.field(F_RIGHE); + sf.destroy(); -// forza il ricalcolo dell'ultimo numero disponibile - TString16 dummy(m.get(F_NPROG)); - if (dummy.not_empty()) - setta_nprog(m.field(F_NPROG)); - - m.hide(-1); // nasconde (hide) group 1 - Scelta ANAGR - m.show(-2); // abilita (show) group 2 - Ricerca su DATI PERC + if (QuadroE1()) + reset_prospetto_e1(); } -void TQuadroC_E2::init_query_insert_mode(TMask& m) -{ - m.set(F_ANNODIC, _anno_dic); - - m.hide(-2); // group 3 Nasconde ricerca su PERC - m.show(-1); // group 1 Ricerca su ANAGR +void TQuadroC_E2::init_insert_mode(TMask& m) +{ + fill_sheet(m); } +void TQuadroC_E2::init_modify_mode(TMask& m) +{ + fill_sheet(m); +} + +void TQuadroC_E2::fill_sheet(const TMask& m) +{ + TSheet_field& sf = (TSheet_field&)m.field(F_RIGHE); + for (int r = sf.items(); r < 16; r++) + sf.row(r); +} + +void TQuadroC_E2::pack_sheet(const TMask& m) +{ + TSheet_field& sf = (TSheet_field&)m.field(F_RIGHE); + for (int r = sf.items(); r >= 0; r--) + { + TToken_string& row = sf.row(r); + if (row.empty_items()) + sf.destroy(r); + } +} + +bool TQuadroC_E2::ricalcola_imposte_c(TMask_field& f, KEY key) +{ + if (key == K_TAB && f.focusdirty()) + { + TMask& m = f.mask(); + if (m.get_bool(115) == FALSE) // Calcola solo se non generata dalle schede + { + if (f.dlg() == 105 || f.dlg() == 107) + { + real amm_lordo = m.get(105); + real somme_non = m.get(107); + real imponibile = amm_lordo - somme_non; + m.set(108, imponibile); + } + + real aliquota = m.get(102); + real imponibile = m.get(108); + real imposta = aliquota * imponibile / 100.0; + m.set(109, imposta, TRUE); + } + } + return TRUE; +} + +bool TQuadroC_E2::ricalcola_imposte_d(TMask_field& f, KEY key) +{ + if (key == K_TAB && f.focusdirty()) + { + TMask& m = f.mask(); + if (m.get_bool(109) == FALSE) // Calcola solo se non generata dalle schede + { + if (f.dlg() >= 104 && f.dlg() <= 106 ) + { + real imponibile = m.get(104); // Ammontare lordo + imponibile -= m.get_real(105); // Somme non soggette + imponibile -= m.get_real(106); // " " " reg. conv. + m.set(107, imponibile); + } + + real aliquota = m.get(102); + real imponibile = m.get(107); + real imposta = imponibile * aliquota / 100.0; + m.set(108, imposta); + } + } + return TRUE; +} + +bool TQuadroC_E2::ricalcola_imposte_dbis(TMask_field& f, KEY key) +{ + if (key == K_TAB && f.focusdirty()) + { + TMask& m = f.mask(); + if (m.get_bool(110) == FALSE) // Calcola solo se non generata dalle schede + { + if (f.dlg() >= 104 && f.dlg() <= 106 ) + { + real imponibile = m.get(104); // Ammontare lordo + imponibile -= m.get_real(105); // Somme non soggette + imponibile -= m.get_real(106); // " " " reg. conv. + m.set(107, imponibile); + } + + real aliquota = m.get(102); + real imponibile = m.get(107); + real imposta = imponibile * aliquota / 100.0; + m.set(108, imposta); + } + } + return TRUE; +} + +bool TQuadroC_E2::ricalcola_imposte_e(TMask_field& f, KEY key) +{ + if (key == K_TAB && f.focusdirty()) + { + TMask& m = f.mask(); + real aliquota = m.get(105); + real imponibile = m.get(104); + real imposta = imponibile * aliquota / 100.0; + m.set(106, imposta, TRUE); + } + return TRUE; +} + +bool TQuadroC_E2::ricalcola_imposte_e1(TMask_field& f, KEY key) +{ + if (key == K_TAB && f.focusdirty()) + { + TMask& m = f.mask(); + real imponibile = m.get(105); + real aliquota = m.get(106); + real imposta = imponibile * aliquota / 100.0; + m.set(107, imposta, TRUE); + } + return TRUE; +} + + +bool TQuadroC_E2::ricalcola_imposte_e2(TMask_field& f, KEY key) +{ + if (key == K_TAB && f.focusdirty()) + { + TMask& m = f.mask(); + real imponibile = m.get(103); + real aliquota = m.get(104); + real imposta = imponibile * aliquota / 100.0; + m.set(105, imposta); + } + return TRUE; +} + +bool TQuadroC_E2::ritenute_handler_e2(TMask_field& f, KEY key) +{ + if (key == K_TAB && f.focusdirty() || key == K_ENTER) + { + TMask& m = f.mask(); + real imponibile = m.get(103); + real aliquota = m.get(104); + real imposta = imponibile * aliquota / 100.0; + real imp = f.get(); + if (imposta != imp) + f.warning_box("Importo ritenuta non corretto"); + } + return TRUE; +} + + +bool TQuadroC_E2::prospetto_e1_notify(TSheet_field& s, int r, KEY k) +{ + bool ok = TRUE; + if (k == K_INS || k == K_DEL) + ok = FALSE; + return ok; +} + +void TQuadroC_E2::reset_prospetto_e1() +{ + TSheet_field& s = (TSheet_field&)_msk->field(F_PROSPETTO); + s.row(0) = "C"; + s.row(1) = "D"; +} + +void TQuadroC_E2::read_prospetto_e1() +{ + TSheet_field& s = (TSheet_field&)_msk->field(F_PROSPETTO); + TLocalisamfile prosp(LF_PROSPE1); + TRectype& curr = prosp.curr(); + curr.put("CODDITTA", _codditta); + for (int r = 0; r < 2; r++) + { + curr.put("CODCAUS", char('C'+r)); + if (prosp.read() == NOERR) + { + TToken_string& row = s.row(r); + row.cut(0); + row << char('C'+r); + row.add(curr.get("COMPENSO")); + row.add(curr.get("IMPONIBILE")); + row.add(curr.get("RITENUTA")); + } + } +} + +int TQuadroC_E2::write_prospetto_e1() +{ + int error = NOERR; + TSheet_field& s = (TSheet_field&)_msk->field(F_PROSPETTO); + TLocalisamfile prosp(LF_PROSPE1); + TRectype& curr = prosp.curr(); + for (int r = 0; r < 2; r++) + { + TToken_string& row = s.row(r); + real compenso = row.get(1); + real imponibile = row.get(); + real ritenuta = row.get(); + bool empty = compenso.is_zero() && imponibile.is_zero() && ritenuta.is_zero(); + + curr.put("CODDITTA", _codditta); + curr.put("CODCAUS", char('C'+r)); + if (!empty) + { + curr.put("COMPENSO", compenso); + curr.put("IMPONIBILE", imponibile); + curr.put("RITENUTA", ritenuta); + int err = prosp.rewrite(); + if (err != NOERR) + err = prosp.write(); + if (err != NOERR) + error = err; + } + else + prosp.remove(); + } + + return error; +} + + int quadriC_E2(int argc, char* argv[]) { - const char tipo = toupper(*argv[2]); - const char* title = "Quadro D"; - TQuadroC_E2 a(tipo); - switch (tipo) - { - case '1': - title = "Quadro D1"; - break; - case 'C': - title = "Quadro C"; - break; - case 'E': - title = "Quadro E"; - break; - case '2': - title = "Quadro E1"; - break; - case '3': - title = "Quadro E2"; - break; - default: - break; - } - a.run(argc, argv, title); + TString16 taitol; + taitol << "Quadro "; + if (strnicmp(argv[2], "DB", 2) == 0) + taitol << "D bis"; + else + taitol << argv[2]; + TQuadroC_E2 a(argv[2]); + a.run(argc, argv, taitol); return TRUE; } diff --git a/m770/771230.h b/m770/771230.h new file mode 100755 index 000000000..1b5fda130 --- /dev/null +++ b/m770/771230.h @@ -0,0 +1,17 @@ +#ifndef _771230_H +#define _771230_H + +// 71230 +#define F_CODDITTA 101 +#define F_RAGDITTA 102 +#define F_TIPOA 103 +#define F_CODANAGR 104 +#define F_NUMPROG 105 +#define F_RAGSOC 106 +#define F_RIGHE 107 + +#define F_GENERA 201 +#define F_PROSPETTO 202 + +#endif + diff --git a/m770/771230a.uml b/m770/771230a.uml deleted file mode 100755 index 0f70f6580..000000000 --- a/m770/771230a.uml +++ /dev/null @@ -1,178 +0,0 @@ -#include "771230a.h" - -TOOLBAR "" 0 18 0 4 - -BUTTON F_GENERA 21 2 -BEGIN - PROMPT -13 -3 "~Generazione" -END - -#include - -ENDPAGE - -PAGE "Quadro D" -1 -1 78 18 - -GROUPBOX DLG_NULL 78 3 -BEGIN - PROMPT 1 0 "" -END - -NUMBER F_CODDITTA 5 -BEGIN - PROMPT 3 1 "Ditta " - FLAGS "GRD" - KEY 1 - CHECKTYPE REQUIRED - USE LF_NDITTE KEY 1 - INPUT CODDITTA F_CODDITTA - OUTPUT F_RAGDITTA RAGSOC - FIELD LF_QUAD->CODDITTA -END - -STRING F_RAGDITTA 50 -BEGIN - PROMPT 17 1 "Ragione " - FLAGS "D" -END - -NUMBER F_ANNODIC 4 -BEGIN - PROMPT 52 3 "Anno dichiarazione " - FLAGS "DR" -END - -TEXT DLG_NULL -BEGIN - PROMPT 1 7 "@bDati percipiente" -END - -LIST F_TIPOA 1 12 -BEGIN - PROMPT 1 8 "" - ITEM "F|Fisica" - MESSAGE COPY,F_TIPOAF - ITEM "G|Giuridica" - MESSAGE COPY,F_TIPOAF - FIELD LF_QUAD->TIPOA - KEY 1 -END - -LIST F_TIPOAF 1 12 -BEGIN - PROMPT 1 9 "" - ITEM "F|Fisica" - ITEM "G|Giuridica" - FLAGS "H" -END - -NUMBER F_CODANAGR 5 -BEGIN - PROMPT 80 80 "" - FLAGS "D" - FIELD LF_QUAD->CODANAGR - CHECKTYPE REQUIRED - KEY 1 -END - -NUMBER F_CODANAGRPERC 5 -BEGIN - 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 - INPUT TIPOA F_TIPOA - INPUT CODANAGR F_CODANAGRPERC - DISPLAY "Tipo " TIPOA - DISPLAY "Codice " CODANAGR - DISPLAY "Cognome - Nome o Ragione sociale@50" LF_ANAG->RAGSOC - OUTPUT F_TIPOA TIPOA - OUTPUT F_CODANAGRPERC CODANAGR - OUTPUT F_RAGSOCPER LF_ANAG->RAGSOC - MESSAGE COPY, F_CODANAGR - //FLAGS "P" - ADD RUN 775 -0 - GROUP 2 -END - -NUMBER F_CODANAGRCOM 5 -BEGIN - PROMPT 16 8 "" - USE LF_ANAG KEY 1 SELECT (TIPOA=#F_TIPOA) - INPUT TIPOA F_TIPOA - INPUT CODANAGR F_CODANAGRCOM - DISPLAY "Tipo " TIPOA - DISPLAY "Codice " CODANAGR - DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC - OUTPUT F_TIPOA TIPOA - OUTPUT F_CODANAGRCOM CODANAGR - OUTPUT F_RAGSOCCOM RAGSOC - MESSAGE COPY, F_CODANAGR - ADD RUN BA4 -1 - //FLAGS "HP" - FLAGS "H" - GROUP 1 -END - -STRING F_RAGSOC 50 -BEGIN - PROMPT 25 8 "" - FLAGS "H" -END - -STRING F_RAGSOCCOM 50 -BEGIN - PROMPT 25 8 "" - USE LF_ANAG KEY 2 - INPUT RAGSOC F_RAGSOCCOM - DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC - DISPLAY "Tipo" TIPOA - DISPLAY "Codice" CODANAGR - OUTPUT F_RAGSOCCOM RAGSOC - OUTPUT F_CODANAGRCOM CODANAGR - OUTPUT F_TIPOA TIPOA - //FLAGS "P" - ADD RUN BA4 -1 - MESSAGE COPY, F_RAGSOC - GROUP 1 -END - -STRING F_RAGSOCPER 50 -BEGIN - PROMPT 25 8 "" - //FLAGS "DP" - FLAGS "D" - GROUP 2 - MESSAGE COPY, F_RAGSOC -END - -NUMBER F_NPROG 4 -BEGIN - PROMPT 1 10 "@bNumero " - CHECKTYPE REQUIRED - KEY 1 - FIELD LF_QUAD->NPROG - USE LF_QUAD - INPUT CODDITTA F_CODDITTA SELECT - INPUT TIPOA F_TIPOA - INPUT CODANAGR F_CODANAGR - INPUT NPROG F_NPROG - DISPLAY "N°" NPROG - DISPLAY "Tipo" TIPOA - DISPLAY "Codice@10" CODANAGR - DISPLAY "Causale" CODCAUS - DISPLAY "Totale@15" TOTALE - DISPLAY "Somme n/sogg rit" SOMME - DISPLAY "Imponibile@15" IMPONIBILE - DISPLAY "Aliquota" PERC - DISPLAY "Importo@15" IMPORTO - DISPLAY "Netto corrisposto" NETTO - OUTPUT F_TIPOA TIPOA - OUTPUT F_CODANAGR CODANAGR - OUTPUT F_NPROG NPROG -END - -ENDPAGE - -ENDMASK - diff --git a/m770/771230b.uml b/m770/771230b.uml deleted file mode 100755 index e588c987b..000000000 --- a/m770/771230b.uml +++ /dev/null @@ -1,240 +0,0 @@ -#include "771230a.h" -TOOLBAR "" 0 19 0 3 -#include -ENDPAGE - -PAGE "Quadro D" -1 -1 78 18 - -NUMBER F_CODDITTA 5 -BEGIN - PROMPT 80 80 "" - FLAGS "D" - FIELD LF_QUAD->CODDITTA - KEY 1 -END - -LIST F_TIPOA 1 12 -BEGIN - PROMPT 2 0 "" - FIELD LF_QUAD->TIPOA - ITEM "F|Fisica" - ITEM "G|Giuridica" - FLAGS "D" - KEY 1 -END - -LIST F_TIPOAF 1 12 -BEGIN - PROMPT 3 1 "" - ITEM "F|Fisica" - ITEM "G|Giuridica" - FLAGS "HG" -END - -NUMBER F_CODANAGR 5 -BEGIN - PROMPT 17 0 "" - FIELD LF_QUAD->CODANAGR - MESSAGE COPY,F_CODANAGR2 - FLAGS "D" - KEY 1 -END - -NUMBER F_CODANAGR2 5 -BEGIN - USE LF_ANAG KEY 1 - INPUT TIPOA F_TIPOA - INPUT CODANAGR F_CODANAGR - DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC - OUTPUT F_RAGSOC2 RAGSOC - CHECKTYPE REQUIRED - FLAGS "HG" -END - -STRING F_RAGSOC2 50 45 -BEGIN - PROMPT 24 0 "" - FLAGS "D" -END - -NUMBER F_NPROG 4 -BEGIN - PROMPT 71 0 "" - FIELD LF_QUAD->NPROG - FLAGS "D" - KEY 1 -END - -TEXT DLG_NULL -BEGIN -PROMPT 3 2 "Causale" -END - -STRING F_CODCAUS 2 -BEGIN - PROMPT 3 3 "" - USE %CA7 SELECT ((I0!="1015")&&(S1="D")) - INPUT CODTAB F_CODCAUS - DISPLAY "Codice " CODTAB - DISPLAY "Descrizione @60" S0 - DISPLAY "Causale D" S2 - DISPLAY "Codice tributo" I0 - DISPLAY "I.C." B1 - OUTPUT F_CODCAUS CODTAB - OUTPUT F_CODTRIB I0 - OUTPUT F_DESCRCAUS S2 - OUTPUT QDF_CODCAUSD S2 - OUTPUT F_PERC R0 - CHECKTYPE REQUIRED - FLAGS "Z" - WARNING "Manca la causale" - FIELD LF_QUAD->CODCAUS - ADD RUN 773mod -3 %CA7 -END - -NUMBER F_CODTRIB 4 -BEGIN - PROMPT 8 3 "" - FLAGS "D" -END - -STRING QDF_CODCAUSD 1 -BEGIN - PROMPT 14 3 "" - SHEET "Codice|Descrizione@60" - INPUT QDF_CODCAUSD - ITEM " | " - ITEM "A|prestaz. di lav. aut. ... nell’es. arti o prof. abituale" - ITEM "B|prestaz. rese da amministratori, sindaci e revisori..." - ITEM "C|prestaz. rese da collaboratori a giornali, riviste, ..." - ITEM "D|prestaz. rese da partecipanti a collegi e commissioni" - ITEM "E|prestaz. rese dagli sportivi con contratto di lav. autonomo" - ITEM "F|prestaz. ... di rapp. di coll. coord. e c. diversi dai prec" - ITEM "G|utiliz. economica, da parte dell’autore o dell’inventore..." - ITEM "H|utili ... da contratti di associazione in partecipazioni..." - ITEM "I|utili ... ai soci promot. e/o fond. delle soc. di capitale" - ITEM "L|per la levata di protesti cambiari da parte dei segretar..." - ITEM "M|utiliz. economica, ... di soggetto diverso dall’autore o..." - ITEM "N|indennità corrisp. per la cessaz. di rapporti di coll..." - ITEM "P|indennità corrisp. per la cessaz. dei rapporti di agenzia" - ITEM "Q|indennità corrisp. per la cessaz. da funzioni notarili" - ITEM "R|indennità corrisp. per la cessaz. di attività sportiva prof" - ITEM "S|indennità di trasf. o di rimborso forfettario di spese..." - ITEM "T|altro titolo diverso dai precedenti" - OUTPUT QDF_CODCAUSD - OUTPUT F_DESCRCAUS - FLAGS "D" -END - -STRING F_DESCRCAUS 60 -BEGIN - PROMPT 17 3 "" - FLAGS "D" -END - -GROUPBOX DLG_NULL 58 5 -BEGIN - PROMPT 3 6 "@bAmmontare corrisposto" -END - -TEXT DLG_NULL -BEGIN - PROMPT 5 8 "Totale" -END - -NUMBER F_TOTALE 15 -BEGIN - PROMPT 5 9 "" - FIELD LF_QUAD->TOTALE - PICTURE "." - FLAGS "R" - MESSAGE K_TAB,F_IMPONIBILE|K_TAB,F_IMPORTO|K_TAB,F_NETTO -END - -TEXT DLG_NULL -BEGIN - PROMPT 24 7 "Somme non soggette" -END - -TEXT DLG_NULL -BEGIN - PROMPT 24 8 "a ritenuta" -END - -NUMBER F_SOMME 15 -BEGIN - PROMPT 24 9 "" - FIELD LF_QUAD->SOMME - PICTURE "." - FLAGS "R" - MESSAGE K_TAB,F_IMPONIBILE|K_TAB,F_IMPORTO|K_TAB,F_NETTO -END - -TEXT DLG_NULL -BEGIN - PROMPT 43 8 "Imponibile" -END - -NUMBER F_IMPONIBILE 15 -BEGIN - PROMPT 43 9 "" - FIELD LF_QUAD->IMPONIBILE - PICTURE "." - FLAGS "DR" - NUM_CALC {#F_TOTALE-#F_SOMME} -END - -GROUPBOX DLG_NULL 39 5 -BEGIN - PROMPT 3 11 "@bRitenute operate" -END - -TEXT DLG_NULL -BEGIN - PROMPT 5 13 "Aliquota" -END - -NUMBER F_PERC 6 2 -BEGIN - PROMPT 5 14 "" - FIELD LF_QUAD->PERC - MESSAGE K_TAB,F_IMPORTO - PICTURE ".2" - MESSAGE K_TAB,F_IMPORTO|K_TAB,F_NETTO -END - -TEXT DLG_NULL -BEGIN - PROMPT 24 13 "Importo" -END - -NUMBER F_IMPORTO 15 -BEGIN - PROMPT 24 14 "" - FIELD LF_QUAD->IMPORTO - PICTURE "." - FLAGS "R" - //NUM_CALC {#F_IMPONIBILE*#F_PERC/100} - MESSAGE K_TAB,F_NETTO -END - -TEXT DLG_NULL -BEGIN - PROMPT 43 13 "Netto corrisposto" -END - -NUMBER F_NETTO 15 -BEGIN - PROMPT 43 14 "" - FIELD LF_QUAD->NETTO - PICTURE "." - FLAGS "DR" - NUM_CALC {#F_IMPONIBILE-#F_IMPORTO} -END - - -ENDPAGE - -ENDMASK - - diff --git a/m770/771230c.uml b/m770/771230c.uml new file mode 100755 index 000000000..dff8f614b --- /dev/null +++ b/m770/771230c.uml @@ -0,0 +1,277 @@ +#include "771230.h" +TOOLBAR "" 0 19 0 3 +#include +ENDPAGE + +PAGE "Quadro C" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 1 1 "Percipiente" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 4 2 "Ditta " + USE LF_NDITTE + INPUT CODDITTA F_CODDITTA + OUTPUT F_RAGDITTA RAGSOC + CHECKTYPE REQUIRED + FLAGS "DG" + FIELD CODDITTA + KEY 1 +END + +STRING F_RAGDITTA 50 +BEGIN + PROMPT 24 2 "" + FLAGS "D" +END + +LIST F_TIPOA 1 6 +BEGIN + PROMPT 0 80 "Tipo " + FIELD TIPOA + ITEM "F|Fisica" + FLAGS "D" + KEY 1 +END + +LIST F_NUMPROG 1 6 +BEGIN + PROMPT 0 80 "Numero " + FIELD NPROG + ITEM "1|Riga 1" + FLAGS "D" + KEY 1 +END + + +NUMBER F_CODANAGR 5 +BEGIN + PROMPT 4 3 "Codice " + FIELD CODANAGR + USE LF_ANAG + INPUT TIPOA F_TIPOA SELECT + INPUT CODANAGR F_CODANAGR + DISPLAY "Codice" CODANAGR + DISPLAY "Denominazione@50" RAGSOC + OUTPUT F_CODANAGR CODANAGR + OUTPUT F_RAGSOC RAGSOC + CHECKTYPE REQUIRED + ADD RUN ba4 -1 F + KEY 1 +END + +STRING F_RAGSOC 50 +BEGIN + PROMPT 24 3 "" + FLAGS "D" + USE LF_ANAG KEY 2 + INPUT TIPOA F_TIPOA SELECT + INPUT RAGSOC F_RAGSOC + DISPLAY "Denominazione@50" RAGSOC + DISPLAY "Codice" CODANAGR + COPY OUTPUT F_CODANAGR + CHECKTYPE NORMAL + ADD RUN ba4 -1 F +END + +SPREADSHEET F_RIGHE 0 14 +BEGIN + PROMPT 0 6 "" + ITEM "Cod.\ncau.@4" + ITEM "Aliq." + ITEM "Cau." + ITEM "Tassazione\nseparata@10" + ITEM "Ammotare lordo\ncorrisposto@15" + ITEM "Contributi\nobbligatori@15" + ITEM "Somme non sogg.\nritenute@15" + ITEM "Imponibile@15" + ITEM "Imposta@15" + ITEM "Detrazioni\ncar. fam.@15" + ITEM "N. gg. det.\nlavoro dip.@11" + ITEM "Detrazioni\nlavoro dip.@15" + ITEM "Totale\ndetrazioni@15" + ITEM "Ritenute\nOperate@15" + ITEM "Generata\nda schede@10" + FLAGS "A" + USE LF_QUAC KEY NPROG + INPUT CODDITTA F_CODDITTA + INPUT TIPOA F_TIPOA + INPUT CODANAGR F_CODANAGR +END + +ENDPAGE + +ENDMASK + +PAGE "RIGA 1" -1 -1 54 15 + +NUMBER 101 2 +BEGIN + PROMPT 1 1 "Codice causale " + USE %CA7 SELECT ((I0!="1015")&&(S1="C")) + INPUT CODTAB 101 + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@35" S0 + OUTPUT 101 CODTAB + OUTPUT 102 R0 + OUTPUT 104 S4 + CHECKTYPE NORMAL + FLAGS "Z" + WARNING "Manca la causale" + FIELD CODCAUS + ADD RUN 773mod -3 %CA7 + FIELD CODCAUS +END + +NUMBER 102 6 2 +BEGIN + PROMPT 25 1 "Aliquota applicata " + NUM_EXPR {(#102>=0)&&(#102<=100)} + WARNING "L'aliquota deve essere compresa tra 0 e 100" + FIELD ALIQUOTA +END + +STRING 103 1 +BEGIN + PROMPT 1 2 "Causale " + FLAGS "U" + SHEET "Cod.|Descrizione@256" + INPUT 103 + ITEM "A|Indennita' e compensi erogati ai prestatori di lavoro dipendente per incrichi svolti in relazione a tale qualita' e comunicati al datore di lavoro del percettore ai fini del conguaglio di fine anno" + ITEM "B|Somme corrisposte a titolo di borsa di studio o di assegno, premio o sussidio per fini di studio o di addestramento professionale, se il beneficiario non e' legato da rapporti di lavoro dipendenti nei confronti del soggetto erogante" + ITEM "C|Indennita', gettoni di presenza ed altri compensi corrisposti dallo Stato, dalle regioni, dalle province e dai comuni per l'esercizio di pubbliche funzioni" + ITEM "D|Indennita', comunque denominate, percepite per le cariche elettive di cui all'art.114 della Costituzione e alla L. 27 dicembre 1985, n. 186" + ITEM "E|Rendite vitalizie e rendite a tempo determinato, costituite a titolo oneroso" + ITEM "F|Prestazioni comunque erogate in forma di trattamento periodico ai sensi del decreto legislativo 21 aprile 1993, n. 124" + ITEM "G|assegni periodici, comunque denominati, al cui produzione non concorrono ne' capitale ne' lavoro" + ITEM "H|compensi corrisposti ai lavoratori impegnati in lavori socialmente utili anteriormente all'entrata in vigore dell'art.9, comma 20, del D.L. 1 ottobre 1996, n.510, convertito dalla L. 98 novembre 1996, n. 608" + OUTPUT 103 + WANING "La causale e' compresa tra A ed H" + FIELD CAUSALE +END + +NUMBER 104 1 +BEGIN + PROMPT 25 2 "Tassazione separata " + SHEET "Codice|Descrizione@60" + INPUT 104 + ITEM " | " + ITEM "1|Legge" + ITEM "2|Contratti collettivi" + ITEM "3|Sentenze" + ITEM "4|Atti amministrativi" + ITEM "5|Altre cause non dipendenti dalla volontà delle parti" + ITEM "6|Se concorrono due o più dei codici precedenti" + OUTPUT 104 + FIELD TASSAZIONE +END + +NUMBER 105 15 +BEGIN + PROMPT 1 3 "Ammontare lordo " + PICTURE "." + FIELD AMMLORDO +END + +NUMBER 106 15 +BEGIN + PROMPT 1 4 "Contributi obbligatori " + PICTURE "." + FIELD CONTROBB +END + +NUMBER 107 15 +BEGIN + PROMPT 1 5 "Somme non soggette a ritenuta " + PICTURE "." + FIELD SOMNONSOGG +END + +NUMBER 108 15 +BEGIN + PROMPT 1 6 "Imponibile " + PICTURE "." + FIELD IMPONIBILE +END + +NUMBER 109 15 +BEGIN + PROMPT 1 7 "Imposta " + PICTURE "." + FIELD IMPOSTA + MESSAGE CHECK,113 +END + +NUMBER 110 15 +BEGIN + PROMPT 1 8 "Detrazioni per carichi di famiglia " + PICTURE "." + FIELD DETCARFAM + MESSAGE CHECK,113 +END + +NUMBER 111 3 +BEGIN + PROMPT 1 9 "N. gg. detraz. lavoro dipendente " + NUM_EXPR {(#111>=0)&&(#111<=366)} + WARNINIG "Inserire un valore compreso tra 0 e 366" + FIELD GGLAVDIP +END + +NUMBER 112 15 +BEGIN + PROMPT 1 10 "Detrazioni da lavoro dipendente " + PICTURE "." + FIELD DETLAVDIP + MESSAGE CHECK,113 +END + +NUMBER 113 15 +BEGIN + PROMPT 1 11 "Totale detrazioni " + PICTURE "." + FLAGS "DG" + NUM_CALC {min(#109,(#110+#112))} + MESSAGE CHECK,114 + FIELD TOTDET +END + +NUMBER 114 15 +BEGIN + PROMPT 1 12 "Ritenute operate " + NUM_CALC {#109-#113} + PICTURE "." + FLAGS "D" + FIELD RITENUTE +END + +BOOLEAN 115 +BEGIN + PROMPT 1 13 "Riga generata dalle schede" + FLAGS "D" + FIELD GENERATA +END + +BUTTON DLG_OK 10 2 +BEGIN + PROMPT -13 -1 "~Conferma" +END + +BUTTON DLG_DELREC 10 2 +BEGIN + PROMPT -23 -1 "~Elimina" +END + +BUTTON DLG_CANCEL 10 2 +BEGIN + PROMPT -33 -1 "Annulla" +END + +ENDPAGE + +ENDMASK + + diff --git a/m770/771230d.uml b/m770/771230d.uml new file mode 100755 index 000000000..002bda866 --- /dev/null +++ b/m770/771230d.uml @@ -0,0 +1,217 @@ +#include "771230.h" +TOOLBAR "" 0 19 0 3 +#include +ENDPAGE + +PAGE "Quadro D" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 1 1 "Percipiente" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 4 2 "Ditta " + USE LF_NDITTE + INPUT CODDITTA F_CODDITTA + OUTPUT F_RAGDITTA RAGSOC + CHECKTYPE REQUIRED + FLAGS "DG" + FIELD CODDITTA + KEY 1 +END + +STRING F_RAGDITTA 50 +BEGIN + PROMPT 24 2 "" + FLAGS "D" +END + +LIST F_TIPOA 1 6 +BEGIN + PROMPT 0 80 "Tipo " + FIELD TIPOA + ITEM "F|Fisica" + FLAGS "D" + KEY 1 +END + +LIST F_NUMPROG 1 6 +BEGIN + PROMPT 0 80 "Numero " + FIELD NPROG + ITEM "1|Riga 1" + FLAGS "D" + KEY 1 +END + + +NUMBER F_CODANAGR 5 +BEGIN + PROMPT 4 3 "Codice " + FIELD CODANAGR + USE LF_ANAG + INPUT TIPOA F_TIPOA SELECT + INPUT CODANAGR F_CODANAGR + DISPLAY "Codice" CODANAGR + DISPLAY "Denominazione@50" RAGSOC + OUTPUT F_CODANAGR CODANAGR + OUTPUT F_RAGSOC RAGSOC + CHECKTYPE REQUIRED + ADD RUN ba4 -1 F + KEY 1 +END + +STRING F_RAGSOC 50 +BEGIN + PROMPT 24 3 "" + FLAGS "D" + USE LF_ANAG KEY 2 + INPUT TIPOA F_TIPOA SELECT + INPUT RAGSOC F_RAGSOC + DISPLAY "Denominazione@50" RAGSOC + DISPLAY "Codice" CODANAGR + COPY OUTPUT F_CODANAGR + CHECKTYPE NORMAL + ADD RUN ba4 -1 F +END + +SPREADSHEET F_RIGHE 0 14 +BEGIN + PROMPT 0 6 "" + ITEM "Cod.\ncau.@4" + ITEM "Aliq." + ITEM "Cau." + ITEM "Ammotare lordo\ncorrisposto@15" + ITEM "Somme non sogg.\nritenute@15" + ITEM "Somme non sogg.\nrit. reg. conv.@15" + ITEM "Imponibile@15" + ITEM "Ritenute\nOperate@15" + ITEM "Generata\nda schede@9" + FLAGS "A" + USE LF_QUAD KEY NPROG + INPUT CODDITTA F_CODDITTA + INPUT TIPOA F_TIPOA + INPUT CODANAGR F_CODANAGR +END + +ENDPAGE + +ENDMASK + +PAGE "RIGA 1" -1 -1 58 12 + +NUMBER 101 2 +BEGIN + PROMPT 1 1 "Codice causale " + USE %CA7 SELECT ((I0!="1015")&&(S1="D")) + INPUT CODTAB 101 + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@35" S0 + OUTPUT 101 CODTAB + OUTPUT 102 R0 + OUTPUT 103 S2 + CHECKTYPE NORMAL + FLAGS "Z" + WARNING "Manca la causale" + FIELD CODCAUS + ADD RUN 773mod -3 %CA7 + FIELD CODCAUS +END + +NUMBER 102 6 2 +BEGIN + PROMPT 25 1 "Aliquota applicata " + NUM_EXPR {(#102>=0)&&(#102<=100)} + WARNING "L'aliquota deve essere compresa tra 0 e 100" + FIELD PERC +END + +STRING 103 1 +BEGIN + PROMPT 1 2 "Causale " + FLAGS "U" + SHEET "Cod.|Descrizione@256" + INPUT 103 + ITEM "A|per prestazioni di lavoro autonomo rientranti nell'esercizio di arti o professione abituale" + ITEM "B|per l'utilizzazione economica, da parte dell'autore o inventore, di opere dell'ingegno, di brevetti industriali e di processi, formule o informazioni relativi ad esperienze acquisite in campo industriale, commerciale o scientifico" + ITEM "C|a titolo di utili derivanti da contratti di associazioni in partecipazione e da contratti di cointeressenza, quando l'apporto e' costituito esclusivamente dalla prestazione di lavoro" + ITEM "D|a titolo di utili spettanti ai soci promotori ed ai soci fondatori delle societa' di capitali" + ITEM "E|per la levata di protesti cambiari da parte di segretari comunali" + ITEM "F|per l'utilizzazione economica da parte di sogg. diverso dall'autore o dall'inventore, di opere dell'ingegno, di brevetti industriali e di processi, formule o informazioni relativi ad esperienze acquisite in campo ind., comm, scient." + ITEM "G|a titolo di indennita' corrisposte per la cessazione di rapporti di agenzia delle persone fisiche" + ITEM "H|a titolo di indennita' corrisposte per la cessazione da funzioni notarili" + ITEM "I|a titolo di indennita' di trasferta o di rimborso forfetario di spese spettanti a soggetti che svolgono attivita' sportiva dilettantistica di cui alla legge 25 marzo 1986, n. 80" + ITEM "L|per prestazioni di lavoro autonomo non esercitate abitualmente" + ITEM "M|per prestazioni rese dagli sportivi con contratto di lavoro autonomo" + ITEM "N|a titolo di indennita' corrisposte per la cessazione di attivita' sportiva professionale" + ITEM "T|altro titolo diverso dai precedenti" + OUTPUT 103 + WANING "La causale deve essere compresa tra A ed T" + FIELD CAUSALE +END + +NUMBER 104 15 +BEGIN + PROMPT 1 3 "Ammontare lordo " + PICTURE "." + FIELD TOTALE +END + +NUMBER 105 15 +BEGIN + PROMPT 1 4 "Somme non soggette a ritenuta " + PICTURE "." + FIELD SOMME +END + +NUMBER 106 15 +BEGIN + PROMPT 1 5 "Somme non sogg. a rit. per reg. conv. " + PICTURE "." + FIELD SOMREGCONV +END + +NUMBER 107 15 +BEGIN + PROMPT 1 6 "Imponibile " + PICTURE "." + FIELD IMPONIBILE +END + +NUMBER 108 15 +BEGIN + PROMPT 1 7 "Ritenute operate " + PICTURE "." + FIELD IMPORTO +END + +BOOLEAN 109 +BEGIN + PROMPT 1 8 "Riga generata dalle schede" + FLAGS "D" + FIELD GENERATA +END + + +BUTTON DLG_OK 10 2 +BEGIN + PROMPT -13 -1 "~Conferma" +END + +BUTTON DLG_DELREC 10 2 +BEGIN + PROMPT -23 -1 "~Elimina" +END + +BUTTON DLG_CANCEL 10 2 +BEGIN + PROMPT -33 -1 "Annulla" +END + +ENDPAGE + +ENDMASK + + diff --git a/m770/771230d1.uml b/m770/771230d1.uml new file mode 100755 index 000000000..b4af65f00 --- /dev/null +++ b/m770/771230d1.uml @@ -0,0 +1,209 @@ +#include "771230.h" +TOOLBAR "" 0 19 0 3 +#include +ENDPAGE + +PAGE "Quadro D1" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 1 1 "Percipiente" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 4 2 "Ditta " + USE LF_NDITTE + INPUT CODDITTA F_CODDITTA + OUTPUT F_RAGDITTA RAGSOC + CHECKTYPE REQUIRED + FLAGS "DG" + FIELD CODDITTA + KEY 1 +END + +STRING F_RAGDITTA 50 +BEGIN + PROMPT 24 2 "" + FLAGS "D" +END + +LIST F_TIPOA 1 6 +BEGIN + PROMPT 0 80 "Tipo " + FIELD TIPOA + ITEM "F|Fisica" + FLAGS "D" + KEY 1 +END + +LIST F_NUMPROG 1 6 +BEGIN + PROMPT 0 80 "Numero " + FIELD NPROG + ITEM "1|Riga 1" + FLAGS "D" + KEY 1 +END + + +NUMBER F_CODANAGR 5 +BEGIN + PROMPT 4 3 "Codice " + FIELD CODANAGR + USE LF_ANAG + INPUT TIPOA F_TIPOA SELECT + INPUT CODANAGR F_CODANAGR + DISPLAY "Codice" CODANAGR + DISPLAY "Denominazione@50" RAGSOC + OUTPUT F_CODANAGR CODANAGR + OUTPUT F_RAGSOC RAGSOC + CHECKTYPE REQUIRED + ADD RUN ba4 -1 F + KEY 1 +END + +STRING F_RAGSOC 50 +BEGIN + PROMPT 24 3 "" + FLAGS "D" + USE LF_ANAG KEY 2 + INPUT TIPOA F_TIPOA SELECT + INPUT RAGSOC F_RAGSOC + DISPLAY "Denominazione@50" RAGSOC + DISPLAY "Codice" CODANAGR + COPY OUTPUT F_CODANAGR + CHECKTYPE NORMAL + ADD RUN ba4 -1 F +END + +SPREADSHEET F_RIGHE 0 14 +BEGIN + PROMPT 0 6 "" + ITEM "Cod.\ncau.@4" + ITEM "Aliq." + ITEM "Cau." + ITEM "Ammotare lordo\ncorrisposto@15" + ITEM "Somme non sogg.\nritenute@15" + ITEM "Somme non sogg.\nrit. reg. conv.@15" + ITEM "Imponibile@15" + ITEM "Ritenute\nOperate@15" + ITEM "Generata\nda schede@9" + FLAGS "A" + USE LF_QUAD1 KEY NPROG + INPUT CODDITTA F_CODDITTA + INPUT TIPOA F_TIPOA + INPUT CODANAGR F_CODANAGR +END + +ENDPAGE + +ENDMASK + +PAGE "RIGA 1" -1 -1 58 11 + +NUMBER 101 2 +BEGIN + PROMPT 1 1 "Codice causale " + USE %CA7 SELECT ((I0!="1015")&&(S1="D1")) + INPUT CODTAB 101 + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@35" S0 + OUTPUT 101 CODTAB + OUTPUT 102 R0 + OUTPUT 103 S3 + CHECKTYPE NORMAL + FLAGS "Z" + WARNING "Causale errata" + FIELD CODCAUS + ADD RUN 773mod -3 %CA7 + FIELD CODCAUS +END + +NUMBER 102 6 2 +BEGIN + PROMPT 28 1 "Aliquota applicata " + NUM_EXPR {(#THIS_FIELD>=0)&&(#THIS_FIELD<=100)} + WARNING "L'aliquota deve essere compresa tra 0 e 100" + FIELD PERC +END + +STRING 103 1 +BEGIN + PROMPT 1 2 "Causale " + FLAGS "U" + SHEET "Cod.|Descrizione@256" + INPUT 103 + ITEM "A|Agente o rappresentante di commercio monomandatario" + ITEM "B|Agente o rappresentante plurimandatario" + ITEM "C|Commissionario" + ITEM "D|Mediatore" + ITEM "E|Procacciatore di affari" + OUTPUT 103 + WANING "La causale deve essere compresa tra A ed E" + FIELD CAUSALE +END + +NUMBER 104 15 +BEGIN + PROMPT 1 3 "Ammontare lordo corrisposto " + PICTURE "." + FIELD TOTALE +END + +NUMBER 105 15 +BEGIN + PROMPT 1 4 "Spese anticipate " + PICTURE "." + FIELD SPESEANT +END + +NUMBER 106 15 +BEGIN + PROMPT 1 5 "Quota provvigioni " + PICTURE "." + FIELD QUOTAPRO +END + +NUMBER 107 15 +BEGIN + PROMPT 1 6 "Imponibile " + PICTURE "." + FIELD IMPONIBILE +END + +NUMBER 108 15 +BEGIN + PROMPT 1 7 "Ritenute operate " + PICTURE "." + FIELD IMPORTO +END + +BOOLEAN 109 +BEGIN + PROMPT 1 8 "Riga generata dalle schede" + FLAGS "D" + FIELD GENERATA +END + + +BUTTON DLG_OK 10 2 +BEGIN + PROMPT -13 -1 "~Conferma" +END + +BUTTON DLG_DELREC 10 2 +BEGIN + PROMPT -23 -1 "~Elimina" +END + +BUTTON DLG_CANCEL 10 2 +BEGIN + PROMPT -33 -1 "Annulla" +END + +ENDPAGE + +ENDMASK + + diff --git a/m770/771230db.uml b/m770/771230db.uml new file mode 100755 index 000000000..ddbceacf0 --- /dev/null +++ b/m770/771230db.uml @@ -0,0 +1,222 @@ +#include "771230.h" +TOOLBAR "" 0 19 0 3 +#include +ENDPAGE + +PAGE "Quadro D bis" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 1 1 "Percipiente" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 4 2 "Ditta " + USE LF_NDITTE + INPUT CODDITTA F_CODDITTA + OUTPUT F_RAGDITTA RAGSOC + CHECKTYPE REQUIRED + FLAGS "DG" + FIELD CODDITTA + KEY 1 +END + +STRING F_RAGDITTA 50 +BEGIN + PROMPT 24 2 "" + FLAGS "D" +END + +LIST F_TIPOA 1 6 +BEGIN + PROMPT 0 80 "Tipo " + FIELD TIPOA + ITEM "F|Fisica" + FLAGS "D" + KEY 1 +END + +LIST F_NUMPROG 1 6 +BEGIN + PROMPT 0 80 "Numero " + FIELD NPROG + ITEM "1|Riga 1" + FLAGS "D" + KEY 1 +END + + +NUMBER F_CODANAGR 5 +BEGIN + PROMPT 4 3 "Codice " + FIELD CODANAGR + USE LF_ANAG + INPUT TIPOA F_TIPOA SELECT + INPUT CODANAGR F_CODANAGR + DISPLAY "Codice" CODANAGR + DISPLAY "Denominazione@50" RAGSOC + OUTPUT F_CODANAGR CODANAGR + OUTPUT F_RAGSOC RAGSOC + CHECKTYPE REQUIRED + ADD RUN ba4 -1 F + KEY 1 +END + +STRING F_RAGSOC 50 +BEGIN + PROMPT 24 3 "" + FLAGS "D" + USE LF_ANAG KEY 2 + INPUT TIPOA F_TIPOA SELECT + INPUT RAGSOC F_RAGSOC + DISPLAY "Denominazione@50" RAGSOC + DISPLAY "Codice" CODANAGR + COPY OUTPUT F_CODANAGR + CHECKTYPE NORMAL + ADD RUN ba4 -1 F +END + +SPREADSHEET F_RIGHE 0 14 +BEGIN + PROMPT 0 6 "" + ITEM "Cod.\ncau.@4" + ITEM "Aliq." + ITEM "Cau." + ITEM "Ammotare lordo\ncorrisposto@15" + ITEM "Somme non sogg.\nritenute@15" + ITEM "Somme non sogg.\nrit. reg. conv.@15" + ITEM "Imponibile@15" + ITEM "Ritenute\nOperate@15" + ITEM "Contr.\n10%@6" + ITEM "Generata\nda schede@9" + FLAGS "A" + USE LF_QUADBIS KEY NPROG + INPUT CODDITTA F_CODDITTA + INPUT TIPOA F_TIPOA + INPUT CODANAGR F_CODANAGR +END + +ENDPAGE + +ENDMASK + +PAGE "RIGA 1" -1 -1 58 12 + +NUMBER 101 2 +BEGIN + PROMPT 1 1 "Codice causale " + USE %CA7 SELECT ((I0!="1015")&&(S1="DB")) + INPUT CODTAB 101 + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@35" S0 + OUTPUT 101 CODTAB + OUTPUT 102 R0 + OUTPUT 103 S2 + CHECKTYPE NORMAL + FLAGS "Z" + WARNING "Manca la causale" + FIELD CODCAUS + ADD RUN 773mod -3 %CA7 + FIELD CODCAUS +END + +NUMBER 102 6 2 +BEGIN + PROMPT 29 1 "Aliquota applicata " + NUM_EXPR {(#102>=0)&&(#102<=100)} + WARNING "L'aliquota deve essere compresa tra 0 e 100" + FIELD PERC +END + +STRING 103 1 +BEGIN + PROMPT 1 2 "Causale " + FLAGS "U" + SHEET "Cod.|Descrizione@256" + INPUT 103 + ITEM "A|per prestazioni di lavoro autonomo rientranti nell'esercizio di arti o professione abituale da parte di professionisti iscritti in albi senza cassa" + ITEM "B|per prestazioni rese da amministratori, sindaci e revisori di societa', associazione ed altri enti con o senza personalita' giuridica" + ITEM "C|per prestazioni rese da collaboratori a giornali, riviste, enciclopedie e simili (che non costituiscono diritti d'autore)" + ITEM "D|per prestazioni rese da parteciapnti a collegi e commissioni" + ITEM "E|per prestazioni rese nell'ambito di rapporti di collaborazione coordinata e continuativa diversi da quelli sopra elencati" + ITEM "F|a di titolo di indennita' corrisposte per la cessazione di rapporti di collaborazione coordinata e continuativa, assoggettabili a tassazione separata" + ITEM "G|provvigioni degli incaricati per le vendite a domicilio" + ITEM "T|altro titolo diverso dai precedenti" + OUTPUT 103 + WANING "La causale deve essere specificata" + FIELD CAUSALE +END + +NUMBER 104 15 +BEGIN + PROMPT 1 3 "Ammontare lordo " + PICTURE "." + FIELD TOTALE +END + +NUMBER 105 15 +BEGIN + PROMPT 1 4 "Somme non soggette a ritenuta " + PICTURE "." + FIELD SOMME +END + +NUMBER 106 15 +BEGIN + PROMPT 1 5 "Somme non sogg. a rit. per reg. conv. " + PICTURE "." + FIELD SOMREGCONV +END + +NUMBER 107 15 +BEGIN + PROMPT 1 6 "Imponibile " + PICTURE "." + FIELD IMPONIBILE +END + +NUMBER 108 15 +BEGIN + PROMPT 1 7 "Ritenute operate " + PICTURE "." + FIELD IMPORTO +END + +LIST 109 1 1 +BEGIN + PROMPT 1 8 "Contributo del 10 % " + ITEM "A|A" + ITEM "B|B" + ITEM "C|C" + FIELD CONTR10 +END + +BOOLEAN 110 +BEGIN + PROMPT 1 9 "Riga generata dalle schede" + FLAGS "D" + FIELD GENERATA +END + + +BUTTON DLG_OK 10 2 +BEGIN + PROMPT -13 -1 "~Conferma" +END + +BUTTON DLG_DELREC 10 2 +BEGIN + PROMPT -23 -1 "~Elimina" +END + +BUTTON DLG_CANCEL 10 2 +BEGIN + PROMPT -33 -1 "Annulla" +END + +ENDPAGE + +ENDMASK + + diff --git a/m770/771230e.uml b/m770/771230e.uml index 7ae1e81d7..bc2e86f1f 100755 --- a/m770/771230e.uml +++ b/m770/771230e.uml @@ -1,175 +1,204 @@ -#include "771230a.h" - -TOOLBAR "" 0 18 0 4 - -BUTTON F_GENERA 21 2 -BEGIN - PROMPT -13 -3 "~Generazione" -END - +#include "771230.h" +TOOLBAR "" 0 19 0 3 #include - ENDPAGE -PAGE "Quadro D1" -1 -1 78 18 +PAGE "Quadro E" -1 -1 78 18 -GROUPBOX DLG_NULL 78 3 +GROUPBOX DLG_NULL 78 5 BEGIN - PROMPT 1 0 "" + PROMPT 1 1 "Percipiente" END NUMBER F_CODDITTA 5 -BEGIN - PROMPT 3 1 "Ditta " - FLAGS "GRDP" - KEY 1 - CHECKTYPE REQUIRED - USE LF_NDITTE KEY 1 - INPUT CODDITTA F_CODDITTA - OUTPUT F_RAGDITTA RAGSOC - FIELD LF_QUAD1->CODDITTA +BEGIN + PROMPT 4 2 "Ditta " + USE LF_NDITTE + INPUT CODDITTA F_CODDITTA + OUTPUT F_RAGDITTA RAGSOC + CHECKTYPE REQUIRED + FLAGS "DG" + FIELD CODDITTA + KEY 1 END STRING F_RAGDITTA 50 BEGIN - PROMPT 17 1 "Ragione " - FLAGS "DP" + PROMPT 24 2 "" + FLAGS "D" END -NUMBER F_ANNODIC 4 +LIST F_TIPOA 1 17 BEGIN - PROMPT 52 3 "Anno dichiarazione " - FLAGS "DRP" -END - -TEXT DLG_NULL -BEGIN - PROMPT 1 7 "@bDati percipiente" -END - -LIST F_TIPOA 1 12 -BEGIN - PROMPT 1 8 "" - ITEM "F|Fisica" - MESSAGE COPY,F_TIPOAF - ITEM "G|Giuridica" - MESSAGE COPY,F_TIPOAF - FIELD LF_QUAD1->TIPOA + PROMPT 4 3 "Tipo percipiente " + FIELD TIPOA + ITEM "F|Persona Fisica" + ITEM "G|Persona Giuridica" KEY 1 END -LIST F_TIPOAF 1 12 -BEGIN - PROMPT 1 9 "" - ITEM "F|Fisica" - ITEM "G|Giuridica" - FLAGS "H" -END - NUMBER F_CODANAGR 5 BEGIN - PROMPT 80 80 "" - FLAGS "D" - FIELD LF_QUAD1->CODANAGR - CHECKTYPE REQUIRED - KEY 1 -END - -NUMBER F_CODANAGRPERC 5 -BEGIN - 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 - INPUT TIPOA F_TIPOA - INPUT CODANAGR F_CODANAGRPERC - DISPLAY "Tipo " TIPOA - DISPLAY "Codice " CODANAGR - DISPLAY "Cognome - Nome o Ragione sociale@50" LF_ANAG->RAGSOC - OUTPUT F_TIPOA TIPOA - OUTPUT F_CODANAGRPERC CODANAGR - OUTPUT F_RAGSOCPER LF_ANAG->RAGSOC - MESSAGE COPY, F_CODANAGR - ADD RUN 775 -0 - GROUP 2 -END - -NUMBER F_CODANAGRCOM 5 -BEGIN - PROMPT 16 8 "" - USE LF_ANAG KEY 1 + PROMPT 4 4 "Codice " + FIELD CODANAGR + USE LF_ANAG INPUT TIPOA F_TIPOA SELECT - INPUT CODANAGR F_CODANAGRCOM - DISPLAY "Tipo " TIPOA - DISPLAY "Codice " CODANAGR - DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC - OUTPUT F_TIPOA TIPOA - OUTPUT F_CODANAGRCOM CODANAGR - OUTPUT F_RAGSOCCOM RAGSOC - MESSAGE COPY, F_CODANAGR - ADD RUN BA4 -1 - FLAGS "H" - GROUP 1 + INPUT CODANAGR F_CODANAGR + DISPLAY "Codice" CODANAGR + DISPLAY "Denominazione@50" RAGSOC + OUTPUT F_CODANAGR CODANAGR + OUTPUT F_RAGSOC RAGSOC + CHECKTYPE REQUIRED + ADD RUN ba4 -1 F + KEY 1 +END + +LIST F_NUMPROG 1 6 +BEGIN + PROMPT 0 80 "Numero " + FIELD NPROG + ITEM "1|Riga 1" + FLAGS "D" + KEY 1 END STRING F_RAGSOC 50 BEGIN - PROMPT 25 8 "" - FLAGS "H" -END - -STRING F_RAGSOCCOM 50 -BEGIN - PROMPT 25 8 "" - USE LF_ANAG KEY 2 - INPUT RAGSOC F_RAGSOCCOM - DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC - DISPLAY "Tipo" TIPOA - DISPLAY "Codice" CODANAGR - OUTPUT F_RAGSOCCOM RAGSOC - OUTPUT F_CODANAGRCOM CODANAGR - OUTPUT F_TIPOA TIPOA - ADD RUN BA4 -1 - MESSAGE COPY, F_RAGSOC - GROUP 1 -END - -STRING F_RAGSOCPER 50 -BEGIN - PROMPT 25 8 "" + PROMPT 24 4 "" FLAGS "D" - GROUP 2 - MESSAGE COPY, F_RAGSOC -END + USE LF_ANAG KEY 2 + INPUT TIPOA F_TIPOA SELECT + INPUT RAGSOC F_RAGSOC + DISPLAY "Denominazione@50" RAGSOC + DISPLAY "Codice" CODANAGR + COPY OUTPUT F_CODANAGR + CHECKTYPE NORMAL + ADD RUN ba4 -1 F +END -NUMBER F_NPROG 4 +SPREADSHEET F_RIGHE 0 14 BEGIN - PROMPT 1 10 "@bNumero " - CHECKTYPE REQUIRED - KEY 1 - FIELD LF_QUAD1->NPROG - USE LF_QUAD1 - INPUT CODDITTA F_CODDITTA SELECT - INPUT TIPOA F_TIPOA - INPUT CODANAGR F_CODANAGR - INPUT NPROG F_NPROG - DISPLAY "N°" NPROG - DISPLAY "Tipo" TIPOA - DISPLAY "Codice@10" CODANAGR - DISPLAY "Causale" CODCAUS - DISPLAY "Totale@15" TOTALE - DISPLAY "Quota provvigioni" QUOTAPRO - DISPLAY "Spese anticipate" SPESEANT - DISPLAY "Imponibile@15" IMPONIBILE - DISPLAY "Aliquota" PERC - DISPLAY "Importo@15" IMPORTO - DISPLAY "Netto corrisposto" NETTO - OUTPUT F_TIPOA TIPOA - OUTPUT F_CODANAGR CODANAGR - OUTPUT F_NPROG NPROG -END + PROMPT 0 6 "" + ITEM "Cod.\ncau.@4" + ITEM "Descrizione@35" + ITEM "Cau." + ITEM "Imponibile\ncorrisposto@15" + ITEM "Aliquota" + ITEM "Ritenute\nOperate@15" + ITEM "Somme al netto\nritenute@15" + ITEM "Somme non\nsogg. riten.@15" + FLAGS "A" + USE LF_QUAE KEY NPROG + INPUT CODDITTA F_CODDITTA + INPUT TIPOA F_TIPOA + INPUT CODANAGR F_CODANAGR +END ENDPAGE ENDMASK +PAGE "RIGA 1" -1 -1 60 10 + +NUMBER 101 2 +BEGIN + PROMPT 1 1 "Codice causale " + USE %CA7 SELECT ((I0!="1015")&&(S1="E")) + INPUT CODTAB 101 + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@35" S0 + OUTPUT 101 CODTAB + OUTPUT 102 S0 + OUTPUT 105 R0 + CHECKTYPE NORMAL + FLAGS "Z" + WARNING "Causale errata" + FIELD CODCAUS + ADD RUN 773mod -3 %CA7 + FIELD CODCAUS +END + +STRING 102 35 +BEGIN + PROMPT 1 2 "Descrizione " + USE %CA7 KEY 2 SELECT ((I0!="1015")&&(S1="E")) + INPUT S0 102 + DISPLAY "Descrizione@45" S0 + DISPLAY "Codice" CODTAB + COPY OUTPUT 101 + CHECKTYPE NORMAL + ADD RUN 773mod -3 %CA7 +END + +STRING 103 1 +BEGIN + PROMPT 1 3 "Causale quadro " + FLAGS "U" + SHEET "Cod.|Descrizione@256" + INPUT 103 + ITEM "A|redditi di capitale corrisposti a soggetti residenti non esercenti attivita' di impresa commerciale assoggettati alla ritenuta a titolo di acconto, compresa la differenza fra la somma percepita alla scadenza e quella data a mutuo o deposito" + ITEM "B|proventi corrisposti a stabili organizzazioni estere di imprese residenti non apprtenenti all'impresa erogante assoggettati a ritenuta a titolo di acconto" + ITEM "C|compensi per avviamento commerciale assoggettati alla ritenuta a titolo di acconto di cui all'art. 28, primo comma, del D.P.R. n. 600 del 1973" + ITEM "D|contributo degli enti pubblici e premi corrisposti dall'Unione nazionale incremento razze equine (UNIRE) e dalla federazione italiana sport equestri (FSE) assoggettati alla ritenuta a titolo di acconto" + ITEM "E|interessi, premi e altri frutti dei titoli obbligazionari emessi da Enti territoriali e assoggettati alla ritenuta a titolo di acconto del 12,50% di cui all'art. 35, comma 6, del L. 23 dicembre 1994, n. 724" + OUTPUT 103 + WANING "La causale deve essere compresa tra A ed E" + FIELD CAUSALE +END + +NUMBER 105 6 2 +BEGIN + PROMPT 43 3 "Aliquota " + NUM_EXPR {(#THIS_FIELD>=0)&&(#THIS_FIELD<=100)} + WARNING "L'aliquota deve essere compresa tra 0 e 100" + FIELD PERC +END + +NUMBER 104 15 +BEGIN + PROMPT 1 4 "Imponibile corrisposto " + PICTURE "." + FIELD IMPONIBILE +END + +NUMBER 106 15 +BEGIN + PROMPT 1 5 "Ritenute operate " + PICTURE "." + FIELD IMPORTO +END + +NUMBER 107 15 +BEGIN + PROMPT 1 6 "Somme corrisposte al netto delle ritenute " + PICTURE "." + FIELD NETTO +END + +NUMBER 108 15 +BEGIN + PROMPT 1 7 "Somme non soggette a ritenuta " + PICTURE "." + FIELD SOMME +END + +BUTTON DLG_OK 10 2 +BEGIN + PROMPT -13 -1 "~Conferma" +END + +BUTTON DLG_DELREC 10 2 +BEGIN + PROMPT -23 -1 "~Elimina" +END + +BUTTON DLG_CANCEL 10 2 +BEGIN + PROMPT -33 -1 "Annulla" +END + +ENDPAGE + +ENDMASK + + diff --git a/m770/771230e1.uml b/m770/771230e1.uml new file mode 100755 index 000000000..b4273af82 --- /dev/null +++ b/m770/771230e1.uml @@ -0,0 +1,260 @@ +#include "771230.h" +TOOLBAR "" 0 19 0 3 +#include +ENDPAGE + +PAGE "Quadro E1" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 5 +BEGIN + PROMPT 1 1 "Percipiente" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 4 2 "Ditta " + USE LF_NDITTE + INPUT CODDITTA F_CODDITTA + OUTPUT F_RAGDITTA RAGSOC + CHECKTYPE REQUIRED + FLAGS "DG" + FIELD CODDITTA + KEY 1 +END + +STRING F_RAGDITTA 50 +BEGIN + PROMPT 24 2 "" + FLAGS "D" +END + +LIST F_TIPOA 1 17 +BEGIN + PROMPT 4 3 "Tipo percipiente " + FIELD TIPOA + ITEM "F|Persona Fisica" + ITEM "G|Persona Giuridica" + KEY 1 +END + +NUMBER F_CODANAGR 5 +BEGIN + PROMPT 4 4 "Codice " + FIELD CODANAGR + USE LF_ANAG + INPUT TIPOA F_TIPOA SELECT + INPUT CODANAGR F_CODANAGR + DISPLAY "Codice" CODANAGR + DISPLAY "Denominazione@50" RAGSOC + OUTPUT F_CODANAGR CODANAGR + OUTPUT F_RAGSOC RAGSOC + CHECKTYPE REQUIRED + ADD RUN ba4 -1 F + KEY 1 +END + +LIST F_NUMPROG 1 6 +BEGIN + PROMPT 0 80 "Numero " + FIELD NPROG + ITEM "1|Riga 1" + FLAGS "D" + KEY 1 +END + +STRING F_RAGSOC 50 +BEGIN + PROMPT 24 4 "" + FLAGS "D" + USE LF_ANAG KEY 2 + INPUT TIPOA F_TIPOA SELECT + INPUT RAGSOC F_RAGSOC + DISPLAY "Denominazione@50" RAGSOC + DISPLAY "Codice" CODANAGR + COPY OUTPUT F_CODANAGR + CHECKTYPE NORMAL + ADD RUN ba4 -1 F +END + +SPREADSHEET F_PROSPETTO 66 5 +BEGIN + PROMPT 1 6 "" + ITEM "Causale" + ITEM "Ammontare\ncomplessivo@15" + ITEM "Ammontare somme\nsogg. riten.@15" + ITEM "Ritenute\noperate@15" +END + +SPREADSHEET F_RIGHE 0 8 +BEGIN + PROMPT 0 12 "" + ITEM "Cod.\ncau.@4" + ITEM "Descrizione@35" + ITEM "Cau." + ITEM "Somme\ncorrisposte@15" + ITEM "Ammontare\npremi@15" + ITEM "Aliquota" + ITEM "Ritenute\noperate@15" + ITEM "Netto\ncorrisposto@15" + FLAGS "A" + USE LF_QUAE1 KEY NPROG + INPUT CODDITTA F_CODDITTA + INPUT TIPOA F_TIPOA + INPUT CODANAGR F_CODANAGR +END + +ENDPAGE + +ENDMASK + +PAGE "PROSPETTO 1" -1 -1 58 7 + +LIST 101 1 +BEGIN + PROMPT 1 1 "Causale " + ITEM "C|C" + ITEM "D|D" + FLAGS "D" +END + +NUMBER 102 15 +BEGIN + PROMPT 1 2 "Ammontare complessivo " + PICTURE "." +END + +NUMBER 103 15 +BEGIN + PROMPT 1 3 "Ammontare somme soggette a ritenuta " + PICTURE "." +END + +NUMBER 104 15 +BEGIN + PROMPT 1 4 "Ritenute operate " + PICTURE "." +END + +BUTTON DLG_OK 10 2 +BEGIN + PROMPT -12 -1 "~Conferma" +END + +BUTTON DLG_CANCEL 10 2 +BEGIN + PROMPT -22 -1 "Annulla" +END + +ENDPAGE + +ENDMASK + +PAGE "RIGA 1" -1 -1 58 11 + +NUMBER 101 2 +BEGIN + PROMPT 1 1 "Causale " + USE %CA7 SELECT ((I0!="1015")&&(S1="E1")) + INPUT CODTAB 101 + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@35" S0 + OUTPUT 101 CODTAB + OUTPUT 102 S0 + OUTPUT 106 R0 + CHECKTYPE NORMAL + FLAGS "Z" + WARNING "Causale errata" + FIELD CODCAUS + ADD RUN 773mod -3 %CA7 + FIELD CODCAUS +END + +STRING 102 35 +BEGIN + PROMPT 20 1 "" + USE %CA7 KEY 2 SELECT ((I0!="1015")&&(S1="E1")) + INPUT S0 102 + DISPLAY "Descrizione@45" S0 + DISPLAY "Codice" CODTAB + COPY OUTPUT 101 + ADD RUN 773mod -3 %CA7 +END + +STRING 103 1 +BEGIN + PROMPT 1 2 "11. Causale quadro " + FLAGS "U" + SHEET "Cod.|Descrizione@256" + INPUT 103 + ITEM "A|somme derivanti da riscatto di contratti di assicurazione sulla vita" + ITEM "B|capitali corrisposti in dipendenza di contratti di soggetti che esercitano attivita' commerciali (omissis...)" + OUTPUT 103 + WANING "La causale deve essere specificata" + FIELD CAUSALE +END + +NUMBER 104 15 +BEGIN + PROMPT 1 3 "12. Somme corrisposte " + PICTURE "." + FIELD SOMME + MESSAGE CHECK,108 +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 4 "13. Ammontare complessivo dei premi riscossi sui quali" +END + +NUMBER 105 15 +BEGIN + PROMPT 1 5 " le ritenute sono state commisurate " + PICTURE "." + FIELD AMMONTARE +END + +NUMBER 106 6 2 +BEGIN + PROMPT 1 6 "14. Aliquota " + NUM_EXPR {(#THIS_FIELD>=0)&&(#THIS_FIELD<=100)} + WARNING "L'aliquota deve essere compresa tra 0 e 100" + FIELD PERC +END + +NUMBER 107 15 +BEGIN + PROMPT 1 7 "15. Ritenute operate " + PICTURE "." + FIELD IMPORTO + MESSAGE CHECK,108 +END + +NUMBER 108 15 +BEGIN + PROMPT 1 8 "16. Netto corrisposto (12 - 15) " + FLAGS "D" + NUM_CALC {#104-#107} + PICTURE "." + FIELD NETTO +END + +BUTTON DLG_OK 10 2 +BEGIN + PROMPT -13 -1 "~Conferma" +END + +BUTTON DLG_DELREC 10 2 +BEGIN + PROMPT -23 -1 "~Elimina" +END + +BUTTON DLG_CANCEL 10 2 +BEGIN + PROMPT -33 -1 "Annulla" +END + +ENDPAGE + +ENDMASK + + diff --git a/m770/771230e2.uml b/m770/771230e2.uml new file mode 100755 index 000000000..d09489da3 --- /dev/null +++ b/m770/771230e2.uml @@ -0,0 +1,173 @@ +#include "771230.h" +TOOLBAR "" 0 19 0 3 +#include +ENDPAGE + +PAGE "Quadro E2" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 5 +BEGIN + PROMPT 1 1 "Percipiente" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 4 2 "Ditta " + USE LF_NDITTE + INPUT CODDITTA F_CODDITTA + OUTPUT F_RAGDITTA RAGSOC + CHECKTYPE REQUIRED + FLAGS "DG" + FIELD CODDITTA + KEY 1 +END + +STRING F_RAGDITTA 50 +BEGIN + PROMPT 24 2 "" + FLAGS "D" +END + +LIST F_TIPOA 1 17 +BEGIN + PROMPT 4 3 "Tipo percipiente " + FIELD TIPOA + ITEM "F|Persona Fisica" + ITEM "G|Persona Giuridica" + KEY 1 +END + +NUMBER F_CODANAGR 5 +BEGIN + PROMPT 4 4 "Codice " + FIELD CODANAGR + USE LF_ANAG + INPUT TIPOA F_TIPOA SELECT + INPUT CODANAGR F_CODANAGR + DISPLAY "Codice" CODANAGR + DISPLAY "Denominazione@50" RAGSOC + OUTPUT F_CODANAGR CODANAGR + OUTPUT F_RAGSOC RAGSOC + CHECKTYPE REQUIRED + ADD RUN ba4 -1 F + KEY 1 +END + +LIST F_NUMPROG 1 6 +BEGIN + PROMPT 0 80 "Numero " + FIELD NPROG + ITEM "1|Riga 1" + FLAGS "D" + KEY 1 +END + +STRING F_RAGSOC 50 +BEGIN + PROMPT 24 4 "" + FLAGS "D" + USE LF_ANAG KEY 2 + INPUT TIPOA F_TIPOA SELECT + INPUT RAGSOC F_RAGSOC + DISPLAY "Denominazione@50" RAGSOC + DISPLAY "Codice" CODANAGR + COPY OUTPUT F_CODANAGR + CHECKTYPE NORMAL + ADD RUN ba4 -1 F +END + +SPREADSHEET F_RIGHE +BEGIN + PROMPT 0 6 "" + ITEM "Cod.\ncau.@4" + ITEM "Denominazione fondo@50" + ITEM "Somme soggette\nritenuta@15" + ITEM "Aliquota" + ITEM "Ritenute\noperate@15" + FLAGS "A" + USE LF_QUAE2 KEY NPROG + INPUT CODDITTA F_CODDITTA + INPUT TIPOA F_TIPOA + INPUT CODANAGR F_CODANAGR +END + +ENDPAGE + +ENDMASK + +PAGE "RIGA 1" -1 -1 60 8 + +NUMBER 101 2 +BEGIN + PROMPT 1 1 "Causale " + USE %CA7 SELECT ((I0!="1015")&&(S1="E2")) + INPUT CODTAB 101 + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@35" S0 + OUTPUT 101 CODTAB + OUTPUT 102 S0 + OUTPUT 104 R0 + CHECKTYPE NORMAL + FLAGS "Z" + WARNING "Causale errata" + FIELD CODCAUS + ADD RUN 773mod -3 %CA7 + FIELD CODCAUS +END + +STRING 102 50 +BEGIN + PROMPT 1 2 "Fondo " + FIELD DENCAUS + USE %CA7 KEY 2 SELECT ((I0!="1015")&&(S1="E2")) + INPUT S0 102 + DISPLAY "Descrizione@50" S0 + DISPLAY "Codice" CODTAB + COPY OUTPUT 101 + VALIDATE REQIF_FUNC 2 103 105 + WARNING "Specificare la denominazione del fondo" + ADD RUN 773mod -3 %CA7 +END + +NUMBER 103 15 +BEGIN + PROMPT 1 3 "12. Somme soggette a ritenuta " + PICTURE "." + FIELD SOGGRIT +END + +NUMBER 104 6 2 +BEGIN + PROMPT 1 4 "13. Aliquota " + NUM_EXPR {(#THIS_FIELD>=0)&&(#THIS_FIELD<=100)} + WARNING "L'aliquota deve essere compresa tra 0 e 100" + FIELD PERC +END + +NUMBER 105 15 +BEGIN + PROMPT 1 5 "14. Ritenute operate " + PICTURE "." + FIELD ROPE +END + +BUTTON DLG_OK 10 2 +BEGIN + PROMPT -13 -1 "~Conferma" +END + +BUTTON DLG_DELREC 10 2 +BEGIN + PROMPT -23 -1 "~Elimina" +END + +BUTTON DLG_CANCEL 10 2 +BEGIN + PROMPT -33 -1 "Annulla" +END + +ENDPAGE + +ENDMASK + + diff --git a/m770/771230f.uml b/m770/771230f.uml deleted file mode 100755 index 15aabdfec..000000000 --- a/m770/771230f.uml +++ /dev/null @@ -1,229 +0,0 @@ -#include "771230a.h" -TOOLBAR "" 0 19 0 3 -#include -ENDPAGE - -PAGE "Quadro C" -1 -1 78 18 - -NUMBER F_CODDITTA 5 -BEGIN - PROMPT 80 80 "" - FLAGS "D" - FIELD LF_QUAC->CODDITTA - KEY 1 -END - -LIST F_TIPOA 1 12 -BEGIN - PROMPT 2 0 "" - FIELD LF_QUAC->TIPOA - ITEM "F|Fisica" - ITEM "G|Giuridica" - FLAGS "D" - KEY 1 -END - -LIST F_TIPOAF 1 12 -BEGIN - PROMPT 3 1 "" - ITEM "F|Fisica" - MESSAGE SHOW,F_CT - ITEM "G|Giuridica" - MESSAGE HIDE,F_CT|RESET,F_CT - FLAGS "HG" -END - -NUMBER F_CODANAGR 5 -BEGIN - PROMPT 17 0 "" - FIELD LF_QUAC->CODANAGR - MESSAGE COPY,F_CODANAGR2 - FLAGS "D" - KEY 1 -END - -NUMBER F_CODANAGR2 5 -BEGIN - USE LF_ANAG KEY 1 - INPUT TIPOA F_TIPOA - INPUT CODANAGR F_CODANAGR - DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC - OUTPUT F_RAGSOC2 RAGSOC - CHECKTYPE REQUIRED - FLAGS "HG" -END - -STRING F_RAGSOC2 50 45 -BEGIN - PROMPT 24 0 "" - FLAGS "D" -END - -NUMBER F_NPROG 4 -BEGIN - PROMPT 71 0 "" - FIELD LF_QUAC->NPROG - FLAGS "D" - KEY 1 -END - -STRING F_CODCAUS 2 -BEGIN - PROMPT 3 3 "Causale " - USE %CA7 SELECT ((I0!="1015")&&(S1="C")) - INPUT CODTAB F_CODCAUS - DISPLAY "Codice " CODTAB - DISPLAY "Descrizione @60" S0 - DISPLAY "Codice tributo" I0 - DISPLAY "C.T." B2 - DISPLAY "T.S." B3 - OUTPUT F_CODCAUS CODTAB - OUTPUT F_CODTRIB I0 - OUTPUT F_DESCRCAUS S0 - OUTPUT F_CT B2 - OUTPUT F_PERC R0 - OUTPUT QCF_TS B3 - CHECKTYPE REQUIRED - FLAGS "Z" - WARNING "Manca la causale" - FIELD LF_QUAC->CODCAUS - ADD RUN 773mod -3 %CA7 -END - -STRING F_DESCRCAUS 58 -BEGIN - PROMPT 17 3 "" - FLAGS "D" -END - -NUMBER F_CODTRIB 4 -BEGIN - PROMPT 11 4 "" - FLAGS "D" -END - -BOOLEAN F_CT -BEGIN - PROMPT 17 4 "C.T." - FLAGS "D" -END - -BOOLEAN QCF_TS -BEGIN - PROMPT 25 4 "T.S." - FLAGS "D" -END - -TEXT DLG_NULL -BEGIN - PROMPT 5 7 "Ammontare" -END - -TEXT DLG_NULL -BEGIN - PROMPT 5 8 "corrisposto" -END - -NUMBER F_TOTALE 15 -BEGIN - PROMPT 5 9 "" - FIELD LF_QUAC->TOTALE - PICTURE "." - FLAGS "R" - MESSAGE K_TAB,F_IMPONIBILE|K_TAB,F_RITENUTE|K_TAB,F_NETTO -END - -TEXT DLG_NULL -BEGIN - PROMPT 24 8 "Contributi S.S.N." -END - -NUMBER QCF_CONTSSN 15 -BEGIN - PROMPT 24 9 "" - FIELD LF_QUAC->CONTSSN - PICTURE "." - FLAGS "R" - MESSAGE K_TAB,F_IMPONIBILE|K_TAB,F_RITENUTE|K_TAB,F_NETTO -END - -TEXT DLG_NULL -BEGIN - PROMPT 43 7 "Somme non soggette" -END - -TEXT DLG_NULL -BEGIN - PROMPT 43 8 "a ritenuta" -END - -NUMBER F_SOMME 15 -BEGIN - PROMPT 43 9 "" - FIELD LF_QUAC->SOMME - PICTURE "." - FLAGS "R" - MESSAGE K_TAB,F_IMPONIBILE|K_TAB,F_RITENUTE|K_TAB,F_NETTO -END - -TEXT DLG_NULL -BEGIN - PROMPT 61 8 "Imponibile" -END - -NUMBER F_IMPONIBILE 15 -BEGIN - PROMPT 61 9 "" - FIELD LF_QUAC->IMPONIBILE - PICTURE "." - FLAGS "DR" - NUM_CALC {#F_TOTALE-#F_SOMME-#QCF_CONTSSN} -END - -TEXT DLG_NULL -BEGIN - PROMPT 5 12 "Aliquota" -END - -NUMBER F_PERC 6 2 -BEGIN - PROMPT 5 13 "" - FIELD LF_QUAC->PERC - MESSAGE K_TAB,F_RITENUTE - PICTURE ".2" - MESSAGE K_TAB,F_RITENUTE|K_TAB,F_NETTO -END - -TEXT DLG_NULL -BEGIN - PROMPT 24 12 "Importo" -END - -NUMBER F_RITENUTE 15 -BEGIN - PROMPT 24 13 "" - FIELD LF_QUAC->RITENUTE - PICTURE "." - FLAGS "R" - MESSAGE K_TAB,F_NETTO -END - -TEXT DLG_NULL -BEGIN - PROMPT 43 12 "Netto corrisposto" -END - -NUMBER F_NETTO 15 -BEGIN - PROMPT 43 13 "" - FIELD LF_QUAC->NETTO - PICTURE "." - FLAGS "DR" - NUM_CALC {#F_IMPONIBILE-#F_RITENUTE} -END - -ENDPAGE - -ENDMASK - - diff --git a/m770/771230g.uml b/m770/771230g.uml deleted file mode 100755 index b0e5674ed..000000000 --- a/m770/771230g.uml +++ /dev/null @@ -1,173 +0,0 @@ -#include "771230a.h" - -TOOLBAR "" 0 18 0 4 - -BUTTON F_GENERA 21 2 -BEGIN - PROMPT -13 -3 "~Generazione" -END - -#include - -ENDPAGE - -PAGE "Quadro E" -1 -1 78 18 - -GROUPBOX DLG_NULL 78 3 -BEGIN - PROMPT 1 0 "" -END - -NUMBER F_CODDITTA 5 -BEGIN - PROMPT 3 1 "Ditta " - FLAGS "GRD" - KEY 1 - CHECKTYPE REQUIRED - USE LF_NDITTE KEY 1 - INPUT CODDITTA F_CODDITTA - OUTPUT F_RAGDITTA RAGSOC - FIELD LF_QUAE->CODDITTA -END - -STRING F_RAGDITTA 50 -BEGIN - PROMPT 17 1 "Ragione " - FLAGS "D" -END - -NUMBER F_ANNODIC 4 -BEGIN - PROMPT 52 3 "Anno dichiarazione " - FLAGS "DR" -END - -TEXT DLG_NULL -BEGIN - PROMPT 1 7 "@bDati percipiente" -END - -LIST F_TIPOA 1 12 -BEGIN - PROMPT 1 8 "" - ITEM "F|Fisica" - MESSAGE COPY,F_TIPOAF - ITEM "G|Giuridica" - MESSAGE COPY,F_TIPOAF - FIELD LF_QUAE->TIPOA - KEY 1 -END - -LIST F_TIPOAF 1 12 -BEGIN - PROMPT 1 9 "" - ITEM "F|Fisica" - ITEM "G|Giuridica" - FLAGS "H" -END - -NUMBER F_CODANAGR 5 -BEGIN - PROMPT 80 80 "" - FLAGS "D" - FIELD LF_QUAE->CODANAGR - CHECKTYPE REQUIRED - KEY 1 -END - -NUMBER F_CODANAGRPERC 5 -BEGIN - 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 - INPUT TIPOA F_TIPOA - INPUT CODANAGR F_CODANAGRPERC - DISPLAY "Tipo " TIPOA - DISPLAY "Codice " CODANAGR - DISPLAY "Cognome - Nome o Ragione sociale@50" LF_ANAG->RAGSOC - OUTPUT F_TIPOA TIPOA - OUTPUT F_CODANAGRPERC CODANAGR - OUTPUT F_RAGSOCPER LF_ANAG->RAGSOC - MESSAGE COPY, F_CODANAGR - ADD RUN 775 -0 - GROUP 2 -END - -NUMBER F_CODANAGRCOM 5 -BEGIN - PROMPT 16 8 "" - USE LF_ANAG KEY 1 SELECT (TIPOA=#F_TIPOA) - INPUT TIPOA F_TIPOA - INPUT CODANAGR F_CODANAGRCOM - DISPLAY "Tipo " TIPOA - DISPLAY "Codice " CODANAGR - DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC - OUTPUT F_TIPOA TIPOA - OUTPUT F_CODANAGRCOM CODANAGR - OUTPUT F_RAGSOCCOM RAGSOC - MESSAGE COPY, F_CODANAGR - ADD RUN BA4 -1 - FLAGS "H" - GROUP 1 -END - -STRING F_RAGSOC 50 -BEGIN - PROMPT 25 8 "" - FLAGS "H" -END - -STRING F_RAGSOCCOM 50 -BEGIN - PROMPT 25 8 "" - USE LF_ANAG KEY 2 - INPUT RAGSOC F_RAGSOCCOM - DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC - DISPLAY "Tipo" TIPOA - DISPLAY "Codice" CODANAGR - OUTPUT F_RAGSOCCOM RAGSOC - OUTPUT F_CODANAGRCOM CODANAGR - OUTPUT F_TIPOA TIPOA - ADD RUN BA4 -1 - MESSAGE COPY, F_RAGSOC - GROUP 1 -END - -STRING F_RAGSOCPER 50 -BEGIN - PROMPT 25 8 "" - FLAGS "D" - GROUP 2 - MESSAGE COPY, F_RAGSOC -END - -NUMBER F_NPROG 4 -BEGIN - PROMPT 1 10 "@bNumero " - CHECKTYPE REQUIRED - KEY 1 - FIELD LF_QUAE->NPROG - USE LF_QUAE - INPUT CODDITTA F_CODDITTA SELECT - INPUT TIPOA F_TIPOA - INPUT CODANAGR F_CODANAGR - INPUT NPROG F_NPROG - DISPLAY "N°" NPROG - DISPLAY "Tipo" TIPOA - DISPLAY "Codice@10" CODANAGR - DISPLAY "Causale" CODCAUS - DISPLAY "Imponibile@15" IMPONIBILE - DISPLAY "Aliquota" PERC - DISPLAY "Importo@15" IMPORTO - DISPLAY "Netto corrisposto" NETTO - DISPLAY "Somme n/sogg rit" SOMME - OUTPUT F_TIPOA TIPOA - OUTPUT F_CODANAGR CODANAGR - OUTPUT F_NPROG NPROG -END - -ENDPAGE - -ENDMASK - diff --git a/m770/771230h.uml b/m770/771230h.uml deleted file mode 100755 index f16ce14f8..000000000 --- a/m770/771230h.uml +++ /dev/null @@ -1,186 +0,0 @@ -#include "771230a.h" - -TOOLBAR "" 0 19 0 3 - -#include - -ENDPAGE - -PAGE "Quadro E" -1 -1 78 18 - -NUMBER F_CODDITTA 5 -BEGIN - PROMPT 80 80 "" - FLAGS "D" - FIELD LF_QUAE->CODDITTA - KEY 1 -END - -LIST F_TIPOA 1 12 -BEGIN - PROMPT 2 0 "" - FIELD LF_QUAE->TIPOA - ITEM "F|Fisica" - ITEM "G|Giuridica" - FLAGS "D" - KEY 1 -END - -LIST F_TIPOAF 1 12 -BEGIN - PROMPT 3 1 "" - ITEM "F|Fisica" - ITEM "G|Giuridica" - FLAGS "HG" -END - -NUMBER F_CODANAGR 5 -BEGIN - PROMPT 17 0 "" - FIELD LF_QUAE->CODANAGR - MESSAGE COPY,F_CODANAGR2 - FLAGS "D" - KEY 1 -END - -NUMBER F_CODANAGR2 5 -BEGIN - USE LF_ANAG KEY 1 - INPUT TIPOA F_TIPOA - INPUT CODANAGR F_CODANAGR - DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC - OUTPUT F_RAGSOC2 RAGSOC - CHECKTYPE REQUIRED - FLAGS "HG" -END - -STRING F_RAGSOC2 50 45 -BEGIN - PROMPT 24 0 "" - FLAGS "D" -END - -NUMBER F_NPROG 4 -BEGIN - PROMPT 71 0 "" - FIELD LF_QUAE->NPROG - FLAGS "D" - KEY 1 -END - -STRING F_CODCAUS 2 -BEGIN - PROMPT 3 3 "Causale " - USE %CA7 SELECT ((I0!="1015")&&(S1="E")) - INPUT CODTAB F_CODCAUS - DISPLAY "Codice " CODTAB - DISPLAY "Descrizione @60" S0 - DISPLAY "Codice tributo" I0 - OUTPUT F_CODCAUS CODTAB - OUTPUT F_CODTRIB I0 - OUTPUT F_DESCRCAUS S0 - OUTPUT F_PERC R0 - CHECKTYPE REQUIRED - FLAGS "Z" - WARNING "Manca la causale" - FIELD LF_QUAE->CODCAUS - ADD RUN 773mod -3 %CA7 -END - -STRING F_DESCRCAUS 58 -BEGIN - PROMPT 17 3 "" - FLAGS "D" -END - -NUMBER F_CODTRIB 4 -BEGIN - PROMPT 11 4 "" - FLAGS "D" -END - -TEXT DLG_NULL -BEGIN - PROMPT 3 8 "Imponibile" -END - -NUMBER F_IMPONIBILE 15 -BEGIN - PROMPT 3 9 "" - FIELD LF_QUAE->IMPONIBILE - PICTURE "." - FLAGS "R" - MESSAGE K_TAB,F_IMPORTO|K_TAB,F_NETTO -END - -GROUPBOX DLG_NULL 32 5 -BEGIN - PROMPT 25 6 "@bRitenute operate" -END - -TEXT DLG_NULL -BEGIN - PROMPT 27 8 "Aliquota" -END - -NUMBER F_PERC 6 2 -BEGIN - PROMPT 27 9 "" - FIELD LF_QUAE->PERC - MESSAGE K_TAB,F_IMPORTO - PICTURE ".2" - MESSAGE K_TAB,F_IMPORTO|K_TAB,F_NETTO -END - -TEXT DLG_NULL -BEGIN - PROMPT 38 8 "Importo" -END - -NUMBER F_IMPORTO 15 -BEGIN - PROMPT 38 9 "" - FIELD LF_QUAE->IMPORTO - PICTURE "." - FLAGS "R" - MESSAGE K_TAB,F_NETTO -END - -TEXT DLG_NULL -BEGIN - PROMPT 3 13 "Netto corrisposto" -END - -NUMBER F_NETTO 15 -BEGIN - PROMPT 3 14 "" - FIELD LF_QUAE->NETTO - PICTURE "." - FLAGS "DR" - NUM_CALC {#F_IMPONIBILE-#F_IMPORTO} -END - -TEXT DLG_NULL -BEGIN - PROMPT 27 12 "Somme non soggette" -END - -TEXT DLG_NULL -BEGIN - PROMPT 27 13 "a ritenuta" -END - -NUMBER F_SOMME 15 -BEGIN - PROMPT 27 14 "" - FIELD LF_QUAE->SOMME - PICTURE "." - FLAGS "R" -// MESSAGE K_TAB,F_IMPONIBILE|K_TAB,F_IMPORTO|K_TAB,F_NETTO -END - -ENDPAGE - -ENDMASK - - diff --git a/m770/771230i.uml b/m770/771230i.uml deleted file mode 100755 index 9c16b517d..000000000 --- a/m770/771230i.uml +++ /dev/null @@ -1,180 +0,0 @@ -#include "771230a.h" - -TOOLBAR "" 0 18 0 4 - -BUTTON F_GENERA 21 2 -BEGIN - PROMPT -13 -3 "~Generazione" -END - -BUTTON F_PROSPETTO 21 2 -BEGIN - PROMPT -23 -3 "~Prospetto" - MESSAGE RUN,773mod,-1,771230m,89,"Prospetto del Quadro E1","E1" -END - -#include - -ENDPAGE - -PAGE "Quadro E1" -1 -1 78 18 - -GROUPBOX DLG_NULL 78 3 -BEGIN - PROMPT 1 0 "" -END - -NUMBER F_CODDITTA 5 -BEGIN - PROMPT 3 1 "Ditta " - FLAGS "GRDP" - KEY 1 - CHECKTYPE REQUIRED - USE LF_NDITTE KEY 1 - INPUT CODDITTA F_CODDITTA - OUTPUT F_RAGDITTA RAGSOC - FIELD LF_QUAE1->CODDITTA -END - -STRING F_RAGDITTA 50 -BEGIN - PROMPT 17 1 "Ragione " - FLAGS "DP" -END - -NUMBER F_ANNODIC 4 -BEGIN - PROMPT 52 3 "Anno dichiarazione " - FLAGS "DRP" -END - -TEXT DLG_NULL -BEGIN - PROMPT 1 7 "@bDati percipiente" -END - -LIST F_TIPOA 1 12 -BEGIN - PROMPT 1 8 "" - ITEM "F|Fisica" - MESSAGE COPY,F_TIPOAF - ITEM "G|Giuridica" - MESSAGE COPY,F_TIPOAF - FIELD LF_QUAE1->TIPOA - FLAGS "D" - KEY 1 -END - -LIST F_TIPOAF 1 12 -BEGIN - PROMPT 1 9 "" - ITEM "F|Fisica" - ITEM "G|Giuridica" - FLAGS "H" -END - -NUMBER F_CODANAGR 5 -BEGIN - PROMPT 80 80 "" - FLAGS "D" - FIELD LF_QUAE1->CODANAGR - CHECKTYPE REQUIRED - KEY 1 -END - -NUMBER F_CODANAGRPERC 5 -BEGIN - PROMPT 16 8 "" - USE LF_PERC - JOIN LF_ANAG TO LF_PERC KEY 1 INTO TIPOA=TIPOA CODANAGR=CODANAGR - INPUT CODDITTA F_CODDITTA SELECT - INPUT TIPOA F_TIPOA SELECT - INPUT CODANAGR F_CODANAGRPERC - DISPLAY "Tipo " TIPOA - DISPLAY "Codice " CODANAGR - DISPLAY "Cognome - Nome o Ragione sociale@50" LF_ANAG->RAGSOC - OUTPUT F_TIPOA TIPOA - OUTPUT F_CODANAGRPERC CODANAGR - OUTPUT F_RAGSOCPER LF_ANAG->RAGSOC - MESSAGE COPY, F_CODANAGR - ADD RUN 775 -0 - GROUP 2 -END - -NUMBER F_CODANAGRCOM 5 -BEGIN - PROMPT 16 8 "" - USE LF_ANAG - INPUT TIPOA F_TIPOA SELECT - INPUT CODANAGR F_CODANAGRCOM - DISPLAY "Tipo " TIPOA - DISPLAY "Codice " CODANAGR - DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC - OUTPUT F_TIPOA TIPOA - OUTPUT F_CODANAGRCOM CODANAGR - OUTPUT F_RAGSOCCOM RAGSOC - MESSAGE COPY, F_CODANAGR - ADD RUN BA4 -1 - FLAGS "H" - GROUP 1 -END - -STRING F_RAGSOC 50 -BEGIN - PROMPT 25 8 "" - FLAGS "H" -END - -STRING F_RAGSOCCOM 50 -BEGIN - PROMPT 25 8 "" - USE LF_ANAG KEY 2 SELECT (TIPOA="F") - INPUT RAGSOC F_RAGSOCCOM - DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC - DISPLAY "Tipo" TIPOA - DISPLAY "Codice" CODANAGR - OUTPUT F_RAGSOCCOM RAGSOC - OUTPUT F_CODANAGRCOM CODANAGR - OUTPUT F_TIPOA TIPOA - ADD RUN BA4 -1 - MESSAGE COPY, F_RAGSOC - GROUP 1 -END - -STRING F_RAGSOCPER 50 -BEGIN - PROMPT 25 8 "" - FLAGS "D" - GROUP 2 - MESSAGE COPY, F_RAGSOC -END - -NUMBER F_NPROG 4 -BEGIN - PROMPT 1 10 "@bNumero " - CHECKTYPE REQUIRED - KEY 1 - FIELD LF_QUAE1->NPROG - USE LF_QUAE1 - INPUT CODDITTA F_CODDITTA SELECT - INPUT TIPOA F_TIPOA - INPUT CODANAGR F_CODANAGR - INPUT NPROG F_NPROG - DISPLAY "N°" NPROG - DISPLAY "Tipo" TIPOA - DISPLAY "Codice@10" CODANAGR - DISPLAY "Causale" CODCAUS - DISPLAY "Ammontare complessivo" AMMONTARE - DISPLAY "Aliquota" PERC - DISPLAY "Importo@15" IMPORTO - DISPLAY "Netto corrisposto" NETTO - DISPLAY "Somme corrisposte" SOMME - OUTPUT F_TIPOA TIPOA - OUTPUT F_CODANAGR CODANAGR - OUTPUT F_NPROG NPROG -END - -ENDPAGE - -ENDMASK - diff --git a/m770/771230l.uml b/m770/771230l.uml deleted file mode 100755 index c9cd6079b..000000000 --- a/m770/771230l.uml +++ /dev/null @@ -1,191 +0,0 @@ -#include "771230a.h" - -TOOLBAR "" 0 19 0 3 - -#include - -ENDPAGE - -PAGE "Quadro E1" -1 -1 78 18 - -NUMBER F_CODDITTA 5 -BEGIN - PROMPT 80 80 "" - FLAGS "D" - FIELD LF_QUAE1->CODDITTA - KEY 1 -END - -LIST F_TIPOA 1 12 -BEGIN - PROMPT 2 0 "" - FIELD LF_QUAE1->TIPOA - ITEM "F|Fisica" - ITEM "G|Giuridica" - FLAGS "D" - KEY 1 -END - -LIST F_TIPOAF 1 12 -BEGIN - PROMPT 3 1 "" - ITEM "F|Fisica" - ITEM "G|Giuridica" - FLAGS "HG" -END - -NUMBER F_CODANAGR 5 -BEGIN - PROMPT 17 0 "" - FIELD LF_QUAE1->CODANAGR - MESSAGE COPY,F_CODANAGR2 - FLAGS "D" - KEY 1 -END - -NUMBER F_CODANAGR2 5 -BEGIN - USE LF_ANAG KEY 1 - INPUT TIPOA F_TIPOA - INPUT CODANAGR F_CODANAGR - DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC - OUTPUT F_RAGSOC2 RAGSOC - CHECKTYPE REQUIRED - FLAGS "HG" -END - -STRING F_RAGSOC2 50 45 -BEGIN - PROMPT 24 0 "" - FLAGS "D" -END - -NUMBER F_NPROG 4 -BEGIN - PROMPT 71 0 "" - FIELD LF_QUAE1->NPROG - FLAGS "D" - KEY 1 -END - -STRING F_CODCAUS 2 -BEGIN - PROMPT 3 3 "Causale " - USE %CA7 SELECT ((I0!="1015")&&(S1="E1")&&(B0="X")) - INPUT CODTAB F_CODCAUS - DISPLAY "Codice " CODTAB - DISPLAY "Descrizione @60" S0 - DISPLAY "Codice tributo" I0 - OUTPUT F_CODCAUS CODTAB - OUTPUT F_CODTRIB I0 - OUTPUT F_DESCRCAUS S0 - OUTPUT F_PERC R0 - CHECKTYPE REQUIRED - FLAGS "Z" - WARNING "Manca la causale" - FIELD LF_QUAE1->CODCAUS - ADD RUN 773mod -3 %CA7 -END - -STRING F_DESCRCAUS 58 -BEGIN - PROMPT 17 3 "" - FLAGS "D" -END - -NUMBER F_CODTRIB 4 -BEGIN - PROMPT 11 4 "" - FLAGS "D" -END - -TEXT DLG_NULL -BEGIN - PROMPT 5 8 "Somme corrisposte" -END - -NUMBER F_SOMME 15 -BEGIN - PROMPT 5 9 "" - FIELD LF_QUAE1->SOMME - PICTURE "." - FLAGS "R" - MESSAGE K_TAB,F_IMPORTO|K_TAB,F_NETTO|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" -END - -TEXT DLG_NULL -BEGIN - PROMPT 5 13 "Aliquota" -END - -NUMBER F_PERC 6 2 -BEGIN - PROMPT 5 14 "" - FIELD LF_QUAE1->PERC - MESSAGE K_TAB,F_IMPORTO - PICTURE ".2" - MESSAGE K_TAB,F_IMPORTO|K_TAB,F_NETTO -END - -TEXT DLG_NULL -BEGIN - PROMPT 16 13 "Importo" -END - -NUMBER F_IMPORTO 15 -BEGIN - PROMPT 16 14 "" - FIELD LF_QUAE1->IMPORTO - PICTURE "." - FLAGS "R" - MESSAGE K_TAB,F_NETTO -END - -TEXT DLG_NULL -BEGIN - PROMPT 38 13 "Netto corrisposto" -END - -NUMBER F_NETTO 15 -BEGIN - PROMPT 38 14 "" - FIELD LF_QUAE1->NETTO - PICTURE "." - FLAGS "DR" - NUM_CALC {#F_SOMME-#F_IMPORTO} -END - -ENDPAGE - -ENDMASK - - diff --git a/m770/771230m.uml b/m770/771230m.uml deleted file mode 100755 index fdf19ee76..000000000 --- a/m770/771230m.uml +++ /dev/null @@ -1,119 +0,0 @@ -#include "pe1.h" -TOOLBAR "" 0 19 0 3 -#include -ENDPAGE - -PAGE "Prospetto del Quadro E1" -1 -1 78 18 - -GROUPBOX DLG_NULL 78 3 -BEGIN - PROMPT 1 0 "" -END - -NUMBER PE1F_CODDITTA 5 -BEGIN - PROMPT 3 1 "Ditta " - FLAGS "GRDP" - KEY 1 - CHECKTYPE REQUIRED - USE LF_NDITTE KEY 1 - INPUT CODDITTA PE1F_CODDITTA - OUTPUT PE1F_RAGDITTA RAGSOC - FIELD LF_PROSPE1->CODDITTA -END - -STRING PE1F_RAGDITTA 50 -BEGIN - PROMPT 17 1 "Ragione " - FLAGS "DP" -END - -STRING PE1F_CODCAUS 2 -BEGIN - PROMPT 3 4 "Causale " - USE LF_PROSPE1 SELECT (CODDITTA=#PE1F_CODDITTA) - JOIN %CA7 TO LF_PROSPE1 INTO CODTAB=CODCAUS - INPUT CODDITTA PE1F_CODDITTA - INPUT CODCAUS PE1F_CODCAUS - DISPLAY "Codcaus" CODCAUS - DISPLAY "Compenso@15" COMPENSO - DISPLAY "Imponibile@15" IMPONIBILE - DISPLAY "Ritenuta@15" RITENUTA - OUTPUT PE1F_CODCAUS CODCAUS - OUTPUT PE1F_DESCRCAUS %CA7->S0 - OUTPUT PE1F_HPERC %CA7->R0 - CHECKTYPE REQUIRED - FLAGS "Z" - FIELD LF_PROSPE1->CODCAUS - KEY 1 - GROUP 8 - MESSAGE COPY,PE1F_CODCAUS2 -END - -STRING PE1F_CODCAUS2 2 -BEGIN - PROMPT 3 4 "Causale " - USE %CA7 SELECT ((I0!="1015")&&(S1="E1")&&(B0=" ")) - INPUT CODTAB PE1F_CODCAUS - DISPLAY "Codice " CODTAB - DISPLAY "Descrizione @60" S0 - OUTPUT PE1F_CODCAUS CODTAB - OUTPUT PE1F_DESCRCAUS S0 - OUTPUT PE1F_HPERC R0 - CHECKTYPE REQUIRED - FLAGS "Z" - WARNING "Manca la causale" - FIELD LF_PROSPE1->CODCAUS - ADD RUN 773mod -3 %CA7 - KEY 1 - GROUP 9 - MESSAGE COPY,PE1F_CODCAUS -END - -NUMBER PE1F_HPERC 6 -BEGIN - PROMPT 3 4 "Usata nel programma per calcolo ritenuta" - PICTURE ".2" - FLAGS "H" -END - -STRING PE1F_DESCRCAUS 58 -BEGIN - PROMPT 17 4 "" - FLAGS "D" -END - -NUMBER PE1F_COMPENSO 15 -BEGIN - PROMPT 3 7 "Ammontare complessivo " - FIELD LF_PROSPE1->COMPENSO - PICTURE "." - FLAGS "R" -END - -TEXT DLG_NULL -BEGIN - PROMPT 3 9 "Ammontare delle somme sulle quali" -END - -NUMBER PE1F_IMPONIBILE 15 -BEGIN - PROMPT 3 10 "le ritenute sono state commisurate " - FIELD LF_PROSPE1->IMPONIBILE - PICTURE "." - FLAGS "R" -END - -NUMBER PE1F_RITENUTA 15 -BEGIN - PROMPT 3 12 "Ritenuta operata " - FIELD LF_PROSPE1->RITENUTA - PICTURE "." - FLAGS "R" -END - -ENDPAGE - -ENDMASK - - diff --git a/m770/771231.cpp b/m770/771231.cpp index 71f64caa1..8352cfbd5 100755 --- a/m770/771231.cpp +++ b/m770/771231.cpp @@ -1,19 +1,15 @@ // 771231.cpp - Quadri F // -#include +#include #include #include -#include #include -#include -#include -#include #include "77lib.h" -#include "prospe1.h" #include "774200.h" #include "771231a.h" // F, F-1 #include "771232.h" // quadro G +#include "prospe1.h" #include "quadrif.h" #include "ca7.h" @@ -549,22 +545,13 @@ int quadroF(int argc, char* argv[]) } if (quadro == '3') - { - TQuadroG a(quadro); - a.run(argc, argv, a.taitol()); - } + quadro_g(argc,argv); if (quadro == '4') - { - TDistintaQuadroG a; - a.run(argc, argv, a.taitol()); - } + distinta_quadro_g(argc,argv); if (quadro == '5') - { - TQuadroG1 a; - a.run(argc, argv, a.taitol()); - } + quadro_g1(argc, argv); return 0; } diff --git a/m770/771232.cpp b/m770/771232.cpp index 34255fd81..e466e5fcb 100755 --- a/m770/771232.cpp +++ b/m770/771232.cpp @@ -1,23 +1,20 @@ // 771232.cpp - Quadri G #include -#include #include -#include -#include #include -#include -#include +#include +#include -#include "quadrog.h" -#include "quadrogp.h" #include "77lib.h" #include "774200.h" -#include "771234a.h" // G +#include "771234a.h" // 771234a.uml #include "771232.h" +#include "quadrog.h" +#include "quadrogp.h" // Aliquote prospetti 2 (I e II) -HIDDEN const char* aliq[8] = +HIDDEN const char* aliq[] = { "10", "10", @@ -26,22 +23,71 @@ HIDDEN const char* aliq[8] = "15", "15", "34.40", - "34.40" + "34.40", + "NS", + "" }; -HIDDEN const int RIGHE_P1_I = 3; -HIDDEN const int RIGHE_P1_II = 3; -HIDDEN const int RIGHE_P2_I = 20; -HIDDEN const int RIGHE_P2_II = 20; HIDDEN const char* DISTINTA_APP = "771mod -6 4"; +//771234b.uml #define AMM_AZ 102 #define NUM_AZ 103 #define AMM_COMP 104 +// 771234d.uml e 771234e.uml +#define UTILI1S 101 +#define UTILI2S 102 +#define ALIQUOTA 103 +#define TITOLO 104 +#define ROPE 105 + HIDDEN real __amm_az = ZERO; HIDDEN real __num_az = ZERO; +class TQuadroG : public TRelation_application +{ + private: + TRelation* _rel; + TMask* _msk; + long _codditta; + TRiporti _rip; + TString16 _quadro; + TString80 _title; + bool _registra, _bUsatoDistinta; + static bool p1_notify(TSheet_field& s, int r, KEY k); + static bool p2_notify(TSheet_field& s, int r, KEY k); + static bool p3_notify(TSheet_field& s, int r, KEY k); + static bool calc_amm(TMask_field& f, KEY k); + static bool tit_hndlr(TMask_field& f, KEY k); + static bool calc_rit(TMask_field& f, KEY k); + static bool exec_distinta(TMask_field& f, KEY k); + static void update_totals(TSheet_field& f); + static bool mainmsk_handler(TMask& m, KEY k); + 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 TRelation* get_relation() const { return _rel; } + virtual TMask* get_mask(int mode) { return _msk; } + virtual bool changing_mask(int mode) { return FALSE; } + virtual void init_query_mode (TMask&); + void read_prospetti(); + int write_prospetti(); + int remove_prospetti(); + public: + const char* taitol() { return (const char*)_title; } + TMask& main_mask() const { return (TMask&) *_msk; } + + TQuadroG(const char quadro='0'); + virtual ~TQuadroG() {}; +}; + + + TQuadroG::TQuadroG(const char quadro) { _registra = _bUsatoDistinta = FALSE; @@ -63,51 +109,223 @@ int TQuadroG::read(TMask& m) int err = TRelation_application::read(m); if (err == NOERR) - { - fill_ss(m); - err = read_prospetto_2(m); - } + read_prospetti(); return err; } int TQuadroG::write(const TMask& m) { - //ss2rel(m); int err = TRelation_application::write(m); _registra = err == NOERR; if (_registra) - err = write_prospetto_2(m); + err = write_prospetti(); return err; } int TQuadroG::rewrite(const TMask& m) -{ - //ss2rel(m); +{ int err = TRelation_application::rewrite(m); _registra = err == NOERR; if (_registra) - err = write_prospetto_2(m,TRUE); + err = write_prospetti(); return err; } bool TQuadroG::remove() { - remove_prospetto_2(); _registra = TRelation_application::remove(); + remove_prospetti(); return _registra; } -int TQuadroG::read_prospetto_2(const TMask& m) +void TQuadroG::read_prospetti() { + TRectype k(LF_QUAGP); + TRecord_array ra(LF_QUAGP,"NPROG"); + TSheet_field& p1_I = (TSheet_field&)_msk->field(F_P1_I); + TSheet_field& p1_II = (TSheet_field&)_msk->field(F_P1_II); + TSheet_field& p2_I = (TSheet_field&)_msk->field(F_P2_I); + TSheet_field& p2_II = (TSheet_field&)_msk->field(F_P2_II); + + // Prospetto 1 - I Utili in denaro + k.put(QGP_CODDITTA,_codditta); + k.put(QGP_PROSPETTO,"1"); + k.put(QGP_SEZIONE,"1"); + ra.read(k); + p1_I.destroy(); + if (ra.rows()>0) + { + const int items = ra.rows(); + for (int i = 0; i < items; i++) + { + const TRectype& r = ra.row(i+1); + TToken_string& t = p1_I.row(i); + t.add(r.get(QGP_DATADEL)); + t.add(r.get(QGP_UTILI1S)); + t.add(r.get(QGP_NUMQUOTE)); + t.add(r.get(QGP_UTILI2S)); + } + } + update_totals(p1_I); + + // Prospetto 1 - II Utili in natura + k.zero(); + k.put(QGP_CODDITTA,_codditta); + k.put(QGP_PROSPETTO,"1"); + k.put(QGP_SEZIONE,"2"); + ra.read(k); + p1_II.destroy(); + if (ra.rows()>0) + { + const int items = ra.rows(); + for (int i = 0; i < items; i++) + { + const TRectype& r = ra.row(i+1); + TToken_string& t = p1_II.row(i); + t.add(r.get(QGP_DESCRBENI)); + t.add(r.get(QGP_UTILI1S)); + } + } + update_totals(p1_II); + + // Prospetto 2 - I Utili in denaro + // Prospetto 2 - II Utili in natura + k.zero(); + k.put(QGP_CODDITTA,_codditta); + k.put(QGP_PROSPETTO,"2"); + p2_I.destroy(); + p2_II.destroy(); + for (int h = 1; h<=2; h++) + { + k.put(QGP_SEZIONE,h == 1 ? "1" : "2"); + ra.read(k); + TSheet_field& f = h == 1 ? p2_I : p2_II; + if (ra.rows()>0) + { + const int items = ra.rows(); + for (int i = 0; i < items; i++) + { + const TRectype& r = ra.row(i+1); + TToken_string& t = f.row(i); + t.add(r.get(QGP_UTILI1S)); + t.add(r.get(QGP_UTILI2S)); + t.add(r.get(QGP_ALIQUOTA)); + t.add(r.get(QGP_TITOLO)); + t.add(r.get(QGP_ROPE)); + if (i < 9) + { + f.disable_cell(i,2); + f.disable_cell(i,3); + if (i == 8) + { + t.add("NS",2); + f.disable_cell(i,4); + } + } + } + } + else // Non vi sono righe di prospetto, aggiunge quelle standard + { + for (int i=0; ;i++) + { + if (aliq[i][0] == '\0') + break; + f.disable_cell(i,2); + f.disable_cell(i,3); + TToken_string& t = f.row(i); + t.add("");t.add(""); + t.add(aliq[i]); + char c = ' '; + if (aliq[i][0] == 'N') + f.disable_cell(i,4); + else + c = i %2 == 0 ? 'A' : 'I'; + t.add(c); + } + } + } +} + +int TQuadroG::write_prospetti() +{ + int err = NOERR, i, j; + TSheet_field& p1_I = (TSheet_field&)_msk->field(F_P1_I); + TSheet_field& p1_II = (TSheet_field&)_msk->field(F_P1_II); + TSheet_field& p2_I = (TSheet_field&)_msk->field(F_P2_I); + TSheet_field& p2_II = (TSheet_field&)_msk->field(F_P2_II); + TRectype k(LF_QUAGP); + + k.put(QGP_CODDITTA,_codditta); + k.put(QGP_PROSPETTO,"1"); + k.put(QGP_SEZIONE,"1"); + TRecord_array ra(LF_QUAGP,"NPROG"); + ra.set_key((TRectype*)k.dup()); + + int items = p1_I.items(); + // Prospetto 1 - I Utili in denaro + for (i = 0,j = 1; i < items; i++) + { + TToken_string& t = p1_I.row(i); + if (!t.empty_items()) + { + TRectype& r = ra.row(j++,TRUE); + r.put(QGP_DATADEL,t.get(0)); + r.put(QGP_UTILI1S,t.get(1)); + r.put(QGP_NUMQUOTE,t.get(2)); + r.put(QGP_UTILI2S,t.get(3)); + } + } + err = ra.rewrite(); // Esegue una write se i record non ci sono, cancella tutti i rimanenti + if (err != NOERR) return err; + + // Prospetto 1 - II Utili in natura + items = p2_I.items(); + k.put(QGP_SEZIONE,"2"); + ra.destroy_rows(); + ra.set_key((TRectype*)k.dup()); + for (i = 0, j = 1; i < items; i++) + { + TToken_string& t = p1_II.row(i); + if (!t.empty_items()) + { + TRectype& r = ra.row(j++,TRUE); + r.put(QGP_DESCRBENI,t.get(0)); + r.put(QGP_UTILI1S,t.get(1)); + } + } + err = ra.rewrite(); // Esegue una write se i record non ci sono, cancella tutti i rimanenti + if (err != NOERR) return err; + + // Prospetto 2 - I Utili in denaro + // Prospetto 2 - II Utili in natura + for (int h = 1; h<=2; h++) + { + TSheet_field& f = h == 1 ? p2_I : p2_II; + items = f.items(); + k.put(QGP_PROSPETTO,"2"); + k.put(QGP_SEZIONE,h == 1 ? "1" : "2"); + ra.destroy_rows(); + ra.set_key((TRectype*)k.dup()); + for (i = 0, j = 1; i < items; i++) + { + TToken_string& t = f.row(i); + if (!t.empty_items()) + { + TRectype& r = ra.row(j++,TRUE); + r.put(QGP_UTILI1S,t.get(0)); + r.put(QGP_UTILI2S,t.get(1)); + r.put(QGP_ALIQUOTA,t.get(2)); + r.put(QGP_TITOLO,t.get(3)); + r.put(QGP_ROPE,t.get(4)); + } + } + err = ra.rewrite(); // Esegue una write se i record non ci sono, cancella tutti i rimanenti + if (err != NOERR) return err; + } return NOERR; } -int TQuadroG::write_prospetto_2(const TMask& m, bool force) -{ - return NOERR; -} - -int TQuadroG::remove_prospetto_2() +int TQuadroG::remove_prospetti() { return NOERR; } @@ -122,13 +340,14 @@ void TQuadroG::init_query_mode (TMask& m) m.send_key(K_AUTO_ENTER,0); } -void TQuadroG::update_totals(TSheet_field& f, int ss) +void TQuadroG::update_totals(TSheet_field& f) { int i = 0; TMask& m = f.mask(); - switch (ss) + short dlg = f.dlg(); + switch (dlg) { - case 1: + case F_P1_I: { real tot_numq, tot_amm; tot_numq = tot_amm = ZERO; @@ -147,7 +366,7 @@ void TQuadroG::update_totals(TSheet_field& f, int ss) m.set(F_P1_I_TOT2,tot_amm); } break; - case 2: + case F_P1_II: { real tot_valult; const int items = f.items(); @@ -194,6 +413,125 @@ bool TQuadroG::calc_amm(TMask_field& f, KEY k) return TRUE; } +bool TQuadroG::calc_rit(TMask_field& f, KEY k) +{ + if (k == K_TAB && f.to_check(k)) + { + TMask& m = f.mask(); + real r1(m.get(UTILI1S)); + real r2(m.get(UTILI2S)); + TString16 al(m.get(ALIQUOTA)); + + if (al == "NS") return TRUE; + if (real::is_real(al)) + { + const real a1 = al; + if (a1 != 0.0 && m.field(ALIQUOTA).enabled()) + { + al = real::ita2eng(a1.string(".2")); + m.set(ALIQUOTA,al); + } + if (a1 >= 0.0 && a1 <= 100.0) + { + real res = ((r1 + r2) / 100.0 * a1); + res.round(); + m.set(ROPE,res); + } + else + return f.error_box("Aliquota non valida."); + } + else + return f.error_box("Aliquota non valida."); + + if (f.dlg() == ALIQUOTA && al.empty() && (r1 != 0.0 || r2 != 0.0)) + return f.error_box("Il campo aliquota e' obbligatorio."); + } + if (k == K_ENTER && f.dlg() == ALIQUOTA) + { + TMask& m = f.mask(); + + TSheet_field& s = *m.get_sheet(); + const int selected = s.selected(); + TToken_string& row = s.row(selected); + bool ok; + + if (selected > 8 && !row.empty_items()) + { + const real aliquota = f.get(); + const char titolo = m.get(TITOLO)[0]; + for (int i = 0; i < s.items(); i++) if (i != selected) + { + const real aliq = s.row(i).get(2); + const char tit = m.get(TITOLO)[0]; + if (aliquota == aliq && titolo == tit) + { + ok = f.yesno_box("L'aliquota %s%%(%s) e' gia' stata utilizzata al rigo %d.\n" + "Si desidera sommare gli importi nello stesso rigo?", + (const char*) aliq.string(".2"), titolo == 'I' ? "Imposta" : "Acconto", i+1); + if (ok) + { + // Forza aggiornamento riga corrente dello sheet con la maschera + row.cut(0); + for (short id = UTILI1S; id <= ROPE; id++) + row.add(m.get(id)); + + // Sceglie come destinazione la riga piu' in alto + int src = selected, dst = i; + if (src < dst) + { int tmp = src; src = dst; dst = tmp; } + + // Righe conivolte nella somma + TToken_string& srcrow = s.row(src); + TToken_string& dstrow = s.row(dst); + + for (int x = 0; x < 5; x++) if (x < 2 || x > 3) + { + real tot = dstrow.get(x); + if (x < 2 || dst != 2) + { + tot += real(srcrow.get(x)); + dstrow.add(tot.string(), x); + } + if (dst == selected) + m.set(UTILI1S+x, tot); + else + m.reset(UTILI1S+x); + } + if (src == selected) + { + m.reset(ALIQUOTA); + m.set(TITOLO, " "); + s.force_update(dst); + } + else + { + srcrow.cut(0); + s.force_update(src); + } + } + break; + } + } + } + } + return TRUE; +} + +bool TQuadroG::tit_hndlr(TMask_field& f, KEY k) +{ + if (f.to_check(k)) + { + TMask& m = f.mask(); + real r1(m.get(UTILI1S)); + real r2(m.get(UTILI2S)); + TString16 tit(f.get()); + + if (tit.empty() && (r1 != 0.0 || r2 != 0.0)) + return f.error_box("Il campo titolo e' obbligatorio."); + } + return TRUE; +} + bool TQuadroG::exec_distinta(TMask_field& f, KEY k) { if (k == K_SPACE) @@ -218,16 +556,26 @@ bool TQuadroG::user_create() _msk->disable(DLG_FINDREC); // disabilito Ricerca nella toolbar _msk->set_handler(DLG_DISTINTA, exec_distinta); _msk->set_handler(mainmsk_handler); - TSheet_field& p1 = (TSheet_field&) _msk->field(F_P1_I); - p1.set_append(FALSE); - p1.set_notify(p1_notify); - p1.sheet_mask().set_handler(NUM_AZ, calc_amm); - p1.sheet_mask().set_handler(AMM_AZ, calc_amm); - TSheet_field& p2 = (TSheet_field&) _msk->field(F_P1_II); - p2.set_notify(p2_notify); - p2.set_append(FALSE); - //TSheet_field& pIII = (TSheet_field&) _msk->field(F_PIII); - //pIII.set_notify(pIII_notify); + TSheet_field& p1_I = (TSheet_field&) _msk->field(F_P1_I); + p1_I.set_append(FALSE); + p1_I.set_notify(p1_notify); + p1_I.sheet_mask().set_handler(NUM_AZ, calc_amm); + p1_I.sheet_mask().set_handler(AMM_AZ, calc_amm); + TSheet_field& p1_II = (TSheet_field&) _msk->field(F_P1_II); + p1_II.set_notify(p2_notify); + p1_II.set_append(FALSE); + TSheet_field& p2_I = (TSheet_field&) _msk->field(F_P2_I); + p2_I.sheet_mask().set_handler(UTILI1S, calc_rit); + p2_I.sheet_mask().set_handler(UTILI2S, calc_rit); + p2_I.sheet_mask().set_handler(ALIQUOTA, calc_rit); + p2_I.sheet_mask().set_handler(TITOLO, tit_hndlr); + p2_I.set_notify(p3_notify); + TSheet_field& p2_II = (TSheet_field&) _msk->field(F_P2_II); + p2_II.sheet_mask().set_handler(UTILI1S, calc_rit); + p2_II.sheet_mask().set_handler(UTILI2S, calc_rit); + p2_II.sheet_mask().set_handler(ALIQUOTA, calc_rit); + p2_II.sheet_mask().set_handler(TITOLO, tit_hndlr); + p2_II.set_notify(p3_notify); return TRUE; } @@ -237,130 +585,6 @@ bool TQuadroG::user_destroy() if (_registra || _bUsatoDistinta) _rip.set(_quadro); return TRUE; -} - -void TQuadroG::ss2rel(const TMask& m) -{ - TSheet_field& p1_I = (TSheet_field&)m.field(F_P1_I); - TRectype& rec = _rel->curr(); - TString datad, ammq, numq, amm; - - // Prospetto 1 - I Utili in denaro - for (int i = 0; i < RIGHE_P1_I; i++) - { - TToken_string& r = p1_I.row(i); - datad = r.get(0); - ammq = r.get(); - numq = r.get(); - amm = r.get(); - - // Costruisco i nomi dei campi (sono numerati) - TString16 n_datad ("P1DATAD"); - n_datad << i+1; - TString16 n_ammq ("P1AMMQ"); - n_ammq << i+1; - TString16 n_numq ("P1NUMQ"); - n_numq << i+1; - TString16 n_amm ("P1AMM"); - n_amm << i+1; - - // Scrivo i suddetti campi nella relazione - rec.put(n_datad, datad); - rec.put(n_ammq, ammq); - rec.put(n_numq, numq); - rec.put(n_amm, amm); - } - - // Prospetto 1 - II Utili in natura - TSheet_field& p1_II = (TSheet_field&)m.field(F_P1_II); - - for (i = 0; i < RIGHE_P1_II; i++) - { - TToken_string& r = p1_II.row(i); - TString descr (r.get(0)); - TString val (r.get()); - - // Costruisco i nomi dei campi (sono numerati) - TString16 n_descr ("P2DESC"); - n_descr << i+1; - TString16 n_val ("P2VAL"); - n_val << i+1; - - // Scrivo i suddetti campi nella relazione - rec.put(n_descr, descr); - rec.put(n_val, val); - } -} - -void TQuadroG::fill_ss(TMask& m) -{ - TRectype k(LF_QUAGP); - TRecord_array ra(LF_QUAGP,"NPROG"); - TSheet_field& p1_I = (TSheet_field&)m.field(F_P1_I); - TSheet_field& p1_II = (TSheet_field&)m.field(F_P1_II); - - // Prospetto 1 - I Utili in denaro - k.put(QGP_CODDITTA,_codditta); - k.put(QGP_PROSPETTO,"1"); - k.put(QGP_SEZIONE,"1"); - ra.read(k); - if (ra.rows()>0) - { - const int items = ra.rows(); - for (int i = 0; i < items; i++) - { - const TRectype& r = ra.row(i); - TToken_string& t = p1_I.row(i+1); - t.add(r.get(QGP_DATADEL)); - t.add(r.get(QGP_UTIL1S)); - t.add(r.get(QGP_NUMQUOTE)); - t.add(r.get(QGP_UTIL2S)); - } - } - //if (m.mode() == MODE_MOD) - // update_totals(p1_I,1); - - // Prospetto 1 - II Utili in natura - k.zero(); - k.put(QGP_CODDITTA,_codditta); - k.put(QGP_PROSPETTO,"1"); - k.put(QGP_SEZIONE,"2"); - ra.read(k); - if (ra.rows()>0) - { - const int items = ra.rows(); - for (int i = 0; i < items; i++) - { - const TRectype& r = ra.row(i); - TToken_string& t = p1_II.row(i+1); - t.add(r.get(QGP_DESCRBENI)); - t.add(r.get(QGP_UTIL1S)); - } - } - //if (m.mode() == MODE_MOD) - // update_totals(p1_II,2); - - - // Prospetto 2 - I Utili in denaro - k.zero(); - k.put(QGP_CODDITTA,_codditta); - k.put(QGP_PROSPETTO,"2"); - k.put(QGP_SEZIONE,"1"); - ra.read(k); - if (ra.rows()>0) - { - - } - - // Prospetto 2 - II Utili in natura - k.zero(); - k.put(QGP_CODDITTA,_codditta); - k.put(QGP_PROSPETTO,"2"); - k.put(QGP_SEZIONE,"2"); - ra.read(k); - if (ra.rows()>0) - { - } } bool TQuadroG::p1_notify(TSheet_field& s, int r, KEY k) @@ -370,7 +594,7 @@ bool TQuadroG::p1_notify(TSheet_field& s, int r, KEY k) case K_ENTER: __amm_az = ZERO; __num_az = ZERO; - update_totals(s, 1); + update_totals(s); break; case K_SPACE: { @@ -390,7 +614,7 @@ bool TQuadroG::p2_notify(TSheet_field& s, int r, KEY k) switch(k) { case K_ENTER: - update_totals(s, 2); + update_totals(s); break; default: break; @@ -398,6 +622,16 @@ bool TQuadroG::p2_notify(TSheet_field& s, int r, KEY k) return TRUE; } +bool TQuadroG::p3_notify(TSheet_field& s, int r, KEY k) +{ + if (k == K_DEL) + if (r > 8) + return TRUE; + else + return FALSE; + return TRUE; +} + bool TQuadroG::mainmsk_handler(TMask& m, KEY k) { if (k == K_ESC) @@ -406,4 +640,11 @@ bool TQuadroG::mainmsk_handler(TMask& m, KEY k) m.set_focus_field(f.dlg()); } return TRUE; -} \ No newline at end of file +} + +bool quadro_g(int argc, char* argv[]) +{ + TQuadroG a('3'); + a.run(argc,argv,a.taitol()); + return TRUE; +} diff --git a/m770/771232.h b/m770/771232.h index b8623b1aa..4f1d01a44 100755 --- a/m770/771232.h +++ b/m770/771232.h @@ -1,137 +1,5 @@ // 771232.h - Quadro G, G1 e distinta -#include -#include -#include -#include -#include -#include -#include "77lib.h" -#include - -#include "774200.h" - -// void ss_pack(TSheet_field& ss); - -class TQuadroG : public TRelation_application -{ - private: - TRelation* _rel; - TMask* _msk; - long _codditta; - TRiporti _rip; - TString16 _quadro; - TString80 _title; - bool _registra, _bUsatoDistinta; - static bool p1_notify(TSheet_field& s, int r, KEY k); - static bool p2_notify(TSheet_field& s, int r, KEY k); - static bool calc_amm(TMask_field& f, KEY k); - static bool exec_distinta(TMask_field& f, KEY k); - static void update_totals(TSheet_field& f, int ss); - static bool mainmsk_handler(TMask& m, KEY k); - 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 TRelation* get_relation() const { return _rel; } - virtual TMask* get_mask(int mode) { return _msk; } - virtual bool changing_mask(int mode) { return FALSE; } - virtual void init_query_mode (TMask&); - void fill_ss(TMask& m); - void ss2rel(const TMask& m); - int read_prospetto_2(const TMask& m); - int write_prospetto_2(const TMask& m, bool force = FALSE); - int remove_prospetto_2(); - public: - const char* taitol() { return (const char*)_title; } - TMask& main_mask() const { return (TMask&) *_msk; } - - TQuadroG(const char quadro='0'); - virtual ~TQuadroG() {}; -}; - - -class TDistintaQuadroG : public TRelation_application -{ - TRelation* _rel; - TMask* _msk; - long _codanagr; - char _tipoa; - int _nproga; - int _mode; - int _anno_dic; // anno dichiarazione - TString80 _title; - TRiporti _rip; - bool _registra; - int _file; - TString16 _quadro; - - private: - static bool nprog_handler (TMask_field& f, KEY key); - static bool codanagr_handler(TMask_field& f, KEY key); - static bool codditta_hnd (TMask_field& f, KEY key); - static bool setta_nprog (TMask_field& f); - - protected: - virtual bool user_create(); - virtual bool user_destroy(); - virtual int rewrite(const TMask& m); - virtual int write (const TMask& m); - virtual bool remove(); - virtual TRelation* get_relation() const { return _rel; } - 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_query_insert_mode (TMask&); - virtual void on_config_change(); - bool scrivi_dati_per(TRectype& rec); - - public: - const char* taitol() { return (const char*)_title; } - public: - TDistintaQuadroG(); - virtual ~TDistintaQuadroG() {}; -}; - -class TQuadroG1 : public TRelation_application -{ - private: - TRelation* _rel; - TMask* _msk; - int _anno_dic; - long _codditta; - TLocalisamfile* _qg1; - TTable* _ca7; - TRiporti _rip; - TString16 _quadro; - TString80 _title; - bool _registra; - static bool p1_notify(TSheet_field& s, int r, KEY k); - static void update_totals(TSheet_field& f); - static bool mainmsk_handler(TMask& m, KEY k); - protected: - virtual bool user_create(); - virtual bool user_destroy(); - virtual int rewrite(const TMask& m); - virtual int read(TMask& m); - virtual int write (const TMask& m); - virtual bool remove(); - virtual TRelation* get_relation() const { return _rel; } - 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_arr(TMask& m); - void arr2rel(const TMask& m); - public: - const char* taitol() { return (const char*)_title; } - TMask& main_mask() const { return (TMask&) *_msk; } - - TQuadroG1(); - virtual ~TQuadroG1() {}; -}; +bool quadro_g(int argc, char* argv[]); +bool distinta_quadro_g(int argc, char* argv[]); +bool quadro_g1(int argc, char* argv[]); diff --git a/m770/771233.cpp b/m770/771233.cpp index 5a1d61d3a..b795d38ab 100755 --- a/m770/771233.cpp +++ b/m770/771233.cpp @@ -1,13 +1,54 @@ // 771233.cpp - distinta quadro G +#include +#include "77lib.h" +#include "774200.h" #include "771232.h" #include "quadrogd.h" #include "77qgd.h" -#define LF_QUAGD 101 // lffiles.h +#define LF_QUAGD 101 // lffiles.h + +class TDistintaQuadroG : public TRelation_application +{ + TRelation* _rel; + TMask* _msk; + int _anno_dic; // anno dichiarazione + TString80 _title; + TRiporti _rip; + bool _registra; + int _file; + TString16 _quadro; + + private: + static bool nprog_handler (TMask_field& f, KEY key); + static bool codanagr_handler(TMask_field& f, KEY key); + static bool codditta_hnd (TMask_field& f, KEY key); + static bool setta_nprog (TMask_field& f); + + protected: + virtual bool user_create(); + virtual bool user_destroy(); + virtual int rewrite(const TMask& m); + virtual int write (const TMask& m); + virtual bool remove(); + virtual TRelation* get_relation() const { return _rel; } + 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_query_insert_mode (TMask&); + virtual void on_config_change(); + bool scrivi_dati_per(TRectype& rec); + + public: + const char* taitol() { return (const char*)_title; } + public: + TDistintaQuadroG(); + virtual ~TDistintaQuadroG() {}; +}; inline TDistintaQuadroG& app() { return (TDistintaQuadroG&) main_app(); } -TDistintaQuadroG::TDistintaQuadroG(): _rel(NULL), _mode(0) +TDistintaQuadroG::TDistintaQuadroG(): _rel(NULL) { _title = "Distinta quadro G"; _quadro = "GD"; @@ -198,3 +239,9 @@ void TDistintaQuadroG::init_query_insert_mode(TMask& m) m.show(-1); // group 1 Ricerca su ANAGR } +bool distinta_quadro_g(int argc, char* argv[]) +{ + TDistintaQuadroG a; + a.run(argc,argv,a.taitol()); + return TRUE; +} \ No newline at end of file diff --git a/m770/771234a.uml b/m770/771234a.uml index e9f11b134..9cb340874 100755 --- a/m770/771234a.uml +++ b/m770/771234a.uml @@ -184,8 +184,8 @@ END SPREADSHEET F_P2_I 78 12 BEGIN PROMPT 0 7 "" - ITEM "Utili I sem. 1996" - ITEM "Utili II sem. 1996" + ITEM "Utili\nI semestre 1996@16" + ITEM "Utili\nII semestre 1996@16" ITEM "Aliquota" ITEM "Titolo ritenuta" ITEM "Ritenute effettuate" @@ -229,8 +229,8 @@ END SPREADSHEET F_P2_II 78 12 BEGIN PROMPT 0 7 "" - ITEM "Utili I sem. 1996" - ITEM "Utili II sem. 1996" + ITEM "Utili\nI semestre 1996@16" + ITEM "Utili\nII semestre 1996@16" ITEM "Aliquota" ITEM "Titolo ritenuta" ITEM "Ritenute effettuate" @@ -276,7 +276,9 @@ BEGIN PROMPT 63 8 "" PICTURE "." FIELD LF_QUAG->P32AR - MESSAGE K_TAB,F_P3TOT + MESSAGE K_TAB,F_P3TOT + NUM_EXPR {#THIS <= #F_P32AT} + WARNING "I recuperi debbono essere minori o uguali agli utili" END NUMBER F_P32BT 15 @@ -292,6 +294,8 @@ BEGIN PROMPT 63 10 "" PICTURE "." FIELD LF_QUAG->P32BR + NUM_EXPR {#THIS <= #F_P32BT} + WARNING "I recuperi debbono essere minori o uguali agli utili" MESSAGE K_TAB,F_P3TOT END diff --git a/m770/771234d.uml b/m770/771234d.uml index 8ad4b26e8..951d452ad 100755 --- a/m770/771234d.uml +++ b/m770/771234d.uml @@ -16,17 +16,16 @@ BEGIN GROUP 1 END -NUMBER 103 6 +STRING 103 6 BEGIN PROMPT 1 4 "Aliquota " PICTURE ".2" - FLAGS "D" - NUM_EXPR {(#THIS>=0) && (#THIS<=100)} END LISTBOX 104 7 BEGIN PROMPT 1 5 "Titolo della ritenuta " + ITEM " |NS" ITEM "A|Acconto" ITEM "I|Imposta" END @@ -40,20 +39,25 @@ END BUTTON DLG_OK 9 2 BEGIN - PROMPT -13 -1 "" + PROMPT -14 -1 "" END BUTTON DLG_CANCEL 9 2 BEGIN - PROMPT -23 -1 "" + PROMPT -24 -1 "" END BUTTON DLG_AZZERA 9 2 BEGIN - PROMPT -33 -1 "A~zzera" + PROMPT -34 -1 "A~zzera" MESSAGE RESET,1@ END +BUTTON DLG_DELREC 9 2 +BEGIN + PROMPT -44 -1 "~Elimina" +END + ENDPAGE ENDMASK diff --git a/m770/771234e.uml b/m770/771234e.uml index 446aee9b3..63e1d5377 100755 --- a/m770/771234e.uml +++ b/m770/771234e.uml @@ -16,17 +16,16 @@ BEGIN GROUP 1 END -NUMBER 103 6 +STRING 103 6 BEGIN PROMPT 1 4 "Aliquota " PICTURE ".2" - FLAGS "D" - NUM_EXPR {(#THIS>=0) && (#THIS<=100)} END LISTBOX 104 7 BEGIN PROMPT 1 5 "Titolo della ritenuta " + ITEM " |NS" ITEM "A|Acconto" ITEM "I|Imposta" END @@ -40,20 +39,25 @@ END BUTTON DLG_OK 9 2 BEGIN - PROMPT -13 -1 "" + PROMPT -14 -1 "" END BUTTON DLG_CANCEL 9 2 BEGIN - PROMPT -23 -1 "" + PROMPT -24 -1 "" END BUTTON DLG_AZZERA 9 2 BEGIN - PROMPT -33 -1 "A~zzera" + PROMPT -34 -1 "A~zzera" MESSAGE RESET,1@ END +BUTTON DLG_DELREC 9 2 +BEGIN + PROMPT -44 -1 "~Elimina" +END + ENDPAGE ENDMASK diff --git a/m770/771300.cpp b/m770/771300.cpp index 427ffa87b..086b20f0c 100755 --- a/m770/771300.cpp +++ b/m770/771300.cpp @@ -22,7 +22,7 @@ #include "771300.h" #include "77lib.h" -HIDDEN const int QUADRI = 25; +HIDDEN const int QUADRI = 29; // Corrispondenza tra posizione nel record (campo:QCOMP) e id della maschera HIDDEN int _dlg_comp_array[QUADRI] = { F_QCOMPA, @@ -44,12 +44,16 @@ HIDDEN int _dlg_comp_array[QUADRI] = { F_QCOMPG1, F_QCOMPH, F_QCOMPI, + F_QCOMPL, F_QCOMPN, F_QCOMPP, F_QCOMPQ, F_QCOMPR, F_QCOMPS, - F_QCOMPT + F_QCOMPT, + F_QCOMPAB, + F_QCOMPDB, + F_QCOMPU }; // Da id della maschera ritorna la corrispondente posizione in QCOMP @@ -126,7 +130,7 @@ void TQuadroI::set_rel_field_quadri(const TMask& m) TString qcomp(QUADRI); qcomp.spaces(QUADRI); - for (dlg=F_QCOMPA; dlg<=F_QCOMPT; dlg++) + for (dlg=F_QCOMPA; dlg<=F_QCOMPL; dlg++) { pos = dlg2pos(dlg); if (pos >= 0) @@ -135,10 +139,10 @@ void TQuadroI::set_rel_field_quadri(const TMask& m) _rel->curr().put("QCOMP", qcomp); // Stessa cosa con flag quadri inviati - TString qsuppinv (QUADRI+1); - qsuppinv.spaces(QUADRI+1); + TString qsuppinv (QUADRI); + qsuppinv.spaces(QUADRI); - for (pos=0, dlg=F_QSUPPA; dlg<=F_QSUPPT; dlg++, pos++) + for (pos=0, dlg=F_QSUPPA; dlg<=F_QSUPPU; dlg++, pos++) { qsuppinv[pos] = m.get(dlg) == "X" ? 'X' : ' '; } @@ -149,7 +153,6 @@ void TQuadroI::set_field_quadri(TMask& m) { int start_dlg = F_QCOMPA; int dlg; -// La sequenza e' A A3 B B1..H I poi sotto A1 A2 N..T TString qcomp (_rel->lfile().get("QCOMP")); if (qcomp != "") @@ -249,7 +252,8 @@ bool TQuadroI::user_create() _msk->disable(DLG_FINDREC); break; case 'W': - _rel = new TRelation (LF_BASEBIS); + _rel = new TRelation (LF_BASEBIS); + _rel->add(LF_BASE,"CODDITTA=CODDITTA",1); _msk = new TMask("771400a"); _msk->disable(DLG_NEWREC); _msk->disable(DLG_DELREC); @@ -257,13 +261,22 @@ bool TQuadroI::user_create() _msk->set_handler(F_M3, PDGcalcolaM6); _msk->set_handler(F_M4, PDGcalcolaM6); _msk->set_handler(F_M5, PDGcalcolaM6); + // set numero quadri L aggiuntivi + _msk->set(F_QLAGG,num_quadri_L_agg(get_firm_770())); + // set numero quadri N,P,Q,R,S,T aggiuntivi + _msk->set(F_QNAGG,num_quadri_N_agg(get_firm_770())); break; case '2': - _rel = new TRelation (LF_BASEBIS); + _rel = new TRelation (LF_BASEBIS); + _rel->add(LF_BASE,"TIPOQUA=\"D\"&&CODDITTA=CODDITTA",1); _msk = new TMask("771400b"); _msk->disable(DLG_NEWREC); _msk->disable(DLG_DELREC); - _msk->disable(DLG_FINDREC); + _msk->disable(DLG_FINDREC); + // set numero quadri L aggiuntivi + _msk->set(F_QLAGG,num_quadri_L_agg(get_firm_770())); + // set numero quadri N,P,Q,R,S,T aggiuntivi + _msk->set(F_QNAGG,num_quadri_N_agg(get_firm_770())); break; default: break; diff --git a/m770/771300.h b/m770/771300.h index d1df03a7b..d5c162102 100755 --- a/m770/771300.h +++ b/m770/771300.h @@ -1,224 +1,280 @@ // 771300.h // Campi della maschera del QUADRO I -// -// Lista modifiche -// -// 7.5.96 Aggiunti campi per dichiarazione 96 -// -#define F_A0NFCOM 101 -#define F_A0NLDIP 102 -#define F_A0COBB 103 -#define F_A0CNET 104 -#define F_A0EPREV 105 -#define F_A0IITRA 106 -#define F_A0CTER 107 -#define F_A0TIMP 108 -#define F_A0ILOR 109 -#define F_A0TDET 110 -#define F_A0RTER 111 -#define F_A0RDAT 112 -#define F_A0ERIT 113 -#define F_A0CARR 114 -#define F_A0AARR 115 -#define F_A0DARR 116 -#define F_A0RARR 117 -#define F_A0RITSI 118 -#define F_A0CINPS 119 -#define F_A0RITOPEVA 120 -#define F_A0RITOPESA 121 -#define F_A0CIIAUT 122 -#define F_A0NADLAV 123 -#define F_A0NACAAF 124 -#define F_B0NFCOM 125 -#define F_B0NLDIP 126 -#define F_B0TFR93 127 -#define F_B0AI 128 -#define F_B0COLAV 129 -#define F_B0TFR7492 130 -#define F_B0AI7492 131 -#define F_B0RITSI 132 -#define F_B0IMP 133 -#define F_B0TIMP 134 -#define F_B0ROP 135 -#define F_B0AIINPS 136 -#define F_B0ROPESA 137 -#define F_B0CIIAUT 138 -#define F_B1NFCOM 139 -#define F_B1NPER 140 -#define F_B1TIND 141 -#define F_B1TIRM 142 -#define F_B1TICOM 143 -#define F_C0NFCOM 144 -#define F_C0NLASS 145 -#define F_C0ACTOT 146 -#define F_C0SNSRIT 147 -#define F_C0ROPE 148 -#define F_C0CIIAUT 149 -#define F_D0NFCOM 150 -#define F_D0NLAUT 151 -#define F_D0ACTOT 152 -#define F_D0SNSRIT 153 -#define F_D0ROPE 154 -#define F_D0CIIAUT 155 -#define F_D1NFCOM 156 -#define F_D1NPER 157 -#define F_D1TACOR 158 -#define F_D1SNSRIT 159 -#define F_D1ROPE 160 -#define F_E0NFCOM 161 -#define F_E0NPER 162 -#define F_E0AIMP 163 -#define F_E0ROPE 164 -#define F_E0SNSRIT 165 -#define F_E1NFCOM 166 -#define F_E1NPER 167 -#define F_E1SCOR 168 -#define F_E1BCOM 169 -#define F_E1ROPE 170 -#define F_E1ACOM 171 -#define F_E1BCOM2 172 -#define F_E1ROPE2 173 -#define F_E2NFCOM 174 -#define F_E2NPER 175 -#define F_E2ROPE 176 -#define F_E2SSRIT 177 -#define F_F0SRITA 178 -#define F_F0ROPEA 179 -#define F_F0TACCA 180 -#define F_F0EDACCA 181 -#define F_F0ERIMA 182 -#define F_F0SSRITBF 183 -#define F_F0ROPEBF 184 -#define F_F0SSVA 185 -#define F_F0ROPEVA 186 -#define F_F1SSRIT 187 -#define F_F1ROPE 188 -#define F_F2SSRIT 189 -#define F_F2ROPE 190 -#define F_G0NFCOM 191 -#define F_G0NAZI1 192 -#define F_G0UDEN1 193 -#define F_G0UNAT1 194 -#define F_G0IUTI2 195 -#define F_G0ROPE 196 -#define F_G0USRIT3 197 -#define F_G0RACC3 198 -#define F_G0RIMP3 199 -#define F_G0UNSRIT3 200 -#define F_G0USPE 201 -#define F_G0NPER 202 -#define F_G1UCOR 203 -#define F_G1USRIT 204 -#define F_G1RACC 206 -#define F_G1RIMP 207 -#define F_G1UNSRIT 208 -#define F_H0CODLAV 209 -#define F_H0COLDIP 210 -#define F_CODDITTA 211 -#define F_RAGSOC 212 -#define F_CODDITTAG 213 +#define F_CODDITTA 101 +#define F_RAGSOC 102 +#define F_CODDITTAG 103 +#define F_TIPOQUA1 104 +#define F_TIPOQUA2 105 +#define F_TIPOQUA 106 -#define F_A0CRIMPRAS 214 -#define F_B0CRIMPRAS 215 -#define F_C0CRIMPRAS 216 -#define F_D0CRIMPRAS 217 -#define F_D1CRIMPRAS 218 -#define F_E0CRIMPRAS 219 -#define F_E1CRIMPRAS 220 -#define F_E2CRIMPRAS 221 -#define F_F0CRIMPRAS 222 -#define F_F1CRIMPRAS 223 -#define F_F2CRIMPRAS 224 -#define F_G0CRIMPRAS 225 -#define F_G1CRIMPRAS 226 -#define F_G0UPAG 227 +// riepilogo A +#define F_A0NFCOM 110 +#define F_A0NLDIP 111 +#define F_A0COBB 112 +#define F_A0NSRIT 113 +#define F_A0EPREV 114 +#define F_A0RETPEN 115 +#define F_A0CTER 116 +#define F_A0TIMP 117 +#define F_A0ILOR 118 +#define F_A0TDET 119 +#define F_A0RTER 120 +#define F_A0RDAT 121 +#define F_A0ERIT 122 +#define F_A0CARR 123 +#define F_A0AARR 124 +#define F_A0DARR 125 +#define F_A0RARR 126 +#define F_A0RITSI 127 +#define F_A0CINPS 128 +#define F_A0RITOPEVA 129 +#define F_A0RITOPESA 130 +#define F_A0CIIAUT 131 +#define F_A0CRIMPRAS 132 +#define F_A0CRIMPL85 133 +#define F_A0EUROT 134 -// Quadro A-3 -#define F_A3NFCOM 228 -#define F_A3NUMPER 229 -#define F_A3REPT10 230 -#define F_A3REPT12 231 +// riepilogo A bis +#define F_ABNADLAV 140 +#define F_ABNACAAF 141 +#define F_ABIR2R 142 +#define F_ABCS2R 143 +#define F_ABNFCOM 144 +#define F_ABIRSA 145 +#define F_ABIR1R 146 +#define F_ABCSSA 147 +#define F_ABCS1R 148 +#define F_ABEURO 149 +#define F_ABACCTS 150 -// Campi maschera prospetto dati generali -#define F_DATLAV 250 -#define F_ER92C93 251 -#define F_ER93C94 252 -#define F_ANNODIC 253 -#define F_H0NQLAGG 254 -#define F_NSUPPM 255 +// riepilogo A3 +#define F_A3NFCOM 160 +#define F_A3NUMPER 161 +#define F_A3REPT10 162 +#define F_A3REPT12 163 -// Flag quadri compilati. Attenzione a NON modificare l'ordine! -// (v. 771300.cpp e 771400a.uml e 776100.cpp) -#define F_QCOMPA 256 -#define F_QCOMPA3 257 -#define F_QCOMPB 258 -#define F_QCOMPB1 259 -#define F_QCOMPC 260 -#define F_QCOMPD 261 -#define F_QCOMPD1 262 -#define F_QCOMPE 263 -#define F_QCOMPE1 264 -#define F_QCOMPE2 265 -#define F_QCOMPF 266 -#define F_QCOMPF1 267 -#define F_QCOMPF2 268 -#define F_QCOMPG 269 -#define F_QCOMPG1 270 -#define F_QCOMPH 271 -#define F_QCOMPI 272 -#define F_QCOMPA1 273 -#define F_QCOMPA2 274 -#define F_QCOMPN 275 -#define F_QCOMPP 276 -#define F_QCOMPQ 277 -#define F_QCOMPR 278 -#define F_QCOMPS 279 -#define F_QCOMPT 280 -// P.dati generali -#define F_M1 300 -#define F_M2 301 -#define F_M3 302 -#define F_M4 303 -#define F_M5 304 -#define F_M6 305 +// riepilogo B +#define F_B0NFCOM 170 +#define F_B0NLDIP 171 +#define F_B0TFR93 172 +#define F_B0AI 173 +#define F_B0COLAV 174 +#define F_B0TFR7492 175 +#define F_B0AI7492 176 +#define F_B0RITSI 177 +#define F_B0IMP 178 +#define F_B0TIMP 179 +#define F_B0ROP 180 +#define F_B0AIINPS 181 +#define F_B0ROPESA 182 +#define F_B0CIIAUT 183 +#define F_B0CRIMPRAS 184 +#define F_B0CRIMPL85 185 -#define F_QSUPPA 400 -#define F_QSUPPA1 401 -#define F_QSUPPA2 402 -#define F_QSUPPA3 403 -#define F_QSUPPB 404 -#define F_QSUPPB1 405 -#define F_QSUPPC 406 -#define F_QSUPPD 407 -#define F_QSUPPD1 408 -#define F_QSUPPE 409 -#define F_QSUPPE1 410 -#define F_QSUPPE2 411 -#define F_QSUPPF 412 -#define F_QSUPPF1 413 -#define F_QSUPPF2 414 -#define F_QSUPPG 415 -#define F_QSUPPG1 416 -#define F_QSUPPH 417 -#define F_QSUPPI 418 -#define F_QSUPPL 419 -#define F_QSUPPN 420 -#define F_QSUPPP 421 -#define F_QSUPPQ 422 -#define F_QSUPPR 423 -#define F_QSUPPS 424 -#define F_QSUPPT 425 +// riepilogo B1 +#define F_B1NFCOM 190 +#define F_B1NPER 191 +#define F_B1TIND 192 +#define F_B1TIRM 193 +#define F_B1TICOM 194 -#define F_TIPOQUA1 430 -#define F_TIPOQUA2 431 -#define F_TIPOQUA 432 +// riepilogo C +#define F_C0NFCOM 200 +#define F_C0NLASS 201 +#define F_C0ACTOT 202 +#define F_C0SNSRIT 203 +#define F_C0ROPE 204 +#define F_C0CIIAUT 205 +#define F_C0CRIMPRAS 206 +#define F_C0CONTSSN 207 +#define F_C0TOTIMP 208 +#define F_C0TOTDET 209 +#define F_C0RITOPE 210 -// Aggiunte 96 -#define F_A0CRIMPL85 433 -#define F_A0INCDET 434 -#define F_B0CRIMPL85 435 -#define F_C0CONTSSN 436 -#define F_D0CRIMPL85 437 -#define F_G0ROPESPET 438 +// riepilogo D +#define F_D0NFCOM 220 +#define F_D0NLAUT 221 +#define F_D0ACTOT 222 +#define F_D0SNSRIT 223 +#define F_D0ROPE 224 +#define F_D0CIIAUT 225 +#define F_D0CRIMPRAS 226 +#define F_D0CRIMPL85 227 +#define F_D0NSRITRC 228 + +// riepilogo D bis +#define F_DBNFCOM 230 +#define F_DBNPER 231 +#define F_DBAMMCOR 232 +#define F_DBNSRIT 233 +#define F_DBNSRITRC 234 +#define F_DBRITOPE 235 +#define F_DBCRIMAUT 236 +#define F_DBCRIMASS 237 +#define F_DBCRIML85 238 + +// riepilogo D1 +#define F_D1NFCOM 240 +#define F_D1NPER 241 +#define F_D1TACOR 242 +#define F_D1SNSRIT 243 +#define F_D1ROPE 244 +#define F_D1CRIMPRAS 245 + +// riepilogo E +#define F_E0NFCOM 250 +#define F_E0NPER 251 +#define F_E0AIMP 252 +#define F_E0ROPE 253 +#define F_E0SNSRIT 254 +#define F_E0CRIMPRAS 255 + +// riepilogo E1 +#define F_E1NFCOM 260 +#define F_E1NPER 261 +#define F_E1SCOR 262 +#define F_E1BCOM 263 +#define F_E1ROPE 264 +#define F_E1ACOM 265 +#define F_E1BCOM2 266 +#define F_E1ROPE2 267 +#define F_E1CRIMPRAS 268 + +// riepilogo E2 +#define F_E2NFCOM 270 +#define F_E2NPER 271 +#define F_E2ROPE 272 +#define F_E2SSRIT 273 +#define F_E2CRIMPRAS 274 + +// riepilogo F +#define F_F0AMMPRO 280 +#define F_F0PREOPE 281 +#define F_F0SSRITBF 282 +#define F_F0ROPEBF 283 +#define F_F0CRIMPRAS 284 + +// riepilogo F1 +#define F_F1SSRIT 290 +#define F_F1ROPE 291 +#define F_F1CRIMPRAS 292 +#define F_F1NFCOM 293 +#define F_F1NPER 294 + +// riepilogo F2 +#define F_F2SSRIT 300 +#define F_F2ROPE 301 +#define F_F2CRIMPRAS 302 + +// riepilogo G +#define F_G0NFCOM 310 +#define F_G0UTDACOR 311 +#define F_G0UTDELDIS 312 +#define F_G0UTCOR1S 313 +#define F_G0UTCOR2S 314 +#define F_G0ROPE 315 +#define F_G0UTDACOR2 316 +#define F_G0RACC3 317 +#define F_G0RIMP3 318 +#define F_G0UNSRIT3 319 +#define F_G0USPE 320 +#define F_G0NPER 321 +#define F_G0CRIMPRAS 322 +#define F_G0UPAG 323 +#define F_G0ROPESPET 324 + +// riepilogo G1 +#define F_G1RITIV2 330 +#define F_G1UTNSR1S 331 +#define F_G1UTNSR2S 332 +#define F_G1UTCOR1S 333 +#define F_G1UTCOR2S 334 +#define F_G1RITAV1 335 +#define F_G1RITAV2 336 +#define F_G1RITIV1 337 +#define F_G1CRIMPRAS 338 + +// riepilogo H +#define F_H0CODLAV 340 +#define F_H0COLDIP 341 + +// prospetto dati generali +#define F_DATLAV 400 +#define F_ER92C93 401 +#define F_ER93C94 402 +#define F_ANNODIC 403 +#define F_NSUPPM 404 +#define F_M1 405 +#define F_M2 406 +#define F_M3 407 +#define F_M4 408 +#define F_M5 409 +#define F_M6 410 +#define F_M7 411 +#define F_QLAGG 412 +#define F_QNAGG 413 +#define F_DICRITCER 414 + +// Flag quadri compilati +#define F_QCOMPA 500 +#define F_QCOMPA3 501 +#define F_QCOMPB 502 +#define F_QCOMPB1 503 +#define F_QCOMPC 504 +#define F_QCOMPD 505 +#define F_QCOMPD1 506 +#define F_QCOMPE 507 +#define F_QCOMPE1 508 +#define F_QCOMPE2 509 +#define F_QCOMPF 510 +#define F_QCOMPF1 511 +#define F_QCOMPF2 512 +#define F_QCOMPG 513 +#define F_QCOMPG1 514 +#define F_QCOMPH 515 +#define F_QCOMPI 516 +#define F_QCOMPA1 517 +#define F_QCOMPA2 518 +#define F_QCOMPN 519 +#define F_QCOMPP 520 +#define F_QCOMPQ 521 +#define F_QCOMPR 522 +#define F_QCOMPS 523 +#define F_QCOMPT 524 +#define F_QCOMPAB 525 +#define F_QCOMPDB 526 +#define F_QCOMPU 527 +#define F_QCOMPL 528 + +// Flag quadri inviati +#define F_QSUPPA 600 +#define F_QSUPPA1 601 +#define F_QSUPPA2 602 +#define F_QSUPPA3 603 +#define F_QSUPPB 604 +#define F_QSUPPB1 605 +#define F_QSUPPC 606 +#define F_QSUPPD 607 +#define F_QSUPPD1 608 +#define F_QSUPPE 609 +#define F_QSUPPE1 610 +#define F_QSUPPE2 611 +#define F_QSUPPF 612 +#define F_QSUPPF1 613 +#define F_QSUPPF2 614 +#define F_QSUPPG 615 +#define F_QSUPPG1 616 +#define F_QSUPPH 617 +#define F_QSUPPI 618 +#define F_QSUPPL 619 +#define F_QSUPPN 620 +#define F_QSUPPP 621 +#define F_QSUPPQ 622 +#define F_QSUPPR 623 +#define F_QSUPPS 624 +#define F_QSUPPT 625 +#define F_QSUPPAB 626 +#define F_QSUPPDB 627 +#define F_QSUPPU 628 \ No newline at end of file diff --git a/m770/771300a.uml b/m770/771300a.uml index 1788af95a..edeecdae8 100755 --- a/m770/771300a.uml +++ b/m770/771300a.uml @@ -5,7 +5,7 @@ TOOLBAR "" 0 20 0 2 #include "toolbar.h" ENDPAGE -PAGE "A" -1 -1 78 18 +PAGE "1" -1 -1 78 18 LISTBOX F_TIPOQUA1 12 BEGIN @@ -35,7 +35,7 @@ END NUMBER F_CODDITTA 5 BEGIN PROMPT 3 1 "Ditta " - FLAGS "RGD" + FLAGS "RGDP" USE LF_NDITTE KEY 1 INPUT CODDITTA F_CODDITTA OUTPUT F_RAGSOC RAGSOC @@ -48,7 +48,7 @@ END STRING F_RAGSOC 50 BEGIN PROMPT 17 1 "Ragione " - FLAGS "D" + FLAGS "DP" END NUMBER F_CODDITTAG 5 @@ -58,1081 +58,1801 @@ BEGIN FIELD LF_BASEBIS->CODDITTA END -GROUPBOX DLG_NULL 78 5 + +//--- QUADRO A --- + +TEXT DLG_NULL BEGIN - PROMPT 0 4 "I1 - Quadro A" -END + PROMPT 0 4 "@BMod.770/A" +END + +// (I1) +TEXT DLG_NULL +BEGIN + PROMPT 0 5 "1 Fogli" +END NUMBER F_A0NFCOM 5 BEGIN - PROMPT 1 5 "N.fogli " - HELP "Numero di fogli compilati" + PROMPT 0 6 "" FIELD LF_BASE->A0NFCOM FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 8 5 "2 Dipen" +END + NUMBER F_A0NLDIP 5 BEGIN - PROMPT 21 5 "N.dipendenti " - HELP "Numero complessivo di lavoratori dipendenti" + PROMPT 8 6 "" FIELD LF_BASE->A0NLDIP FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 16 5 "3 Contr.obblig." +END + NUMBER F_A0COBB 15 BEGIN - PROMPT 41 5 "Contrib.obbligatori " - HELP "Contributi obbligatori" + PROMPT 16 6 "" FIELD LF_BASE->A0COBB PICTURE "." FLAGS "R" -END - -NUMBER F_A0CNET 15 +END + +TEXT DLG_NULL BEGIN - PROMPT 1 6 "Compensi netti " - HELP "Compensi netti" - FIELD LF_BASE->A0CNET - PICTURE "." - FLAGS "R" -END - -NUMBER F_A0IITRA 15 + PROMPT 32 5 "4 Som.non sogg." +END + +NUMBER F_A0NSRIT 15 BEGIN - PROMPT 41 6 "Ind.trasf.imponibile" - HELP " Imponibile indennita' trasferta" - FIELD LF_BASE->A0IITRA + PROMPT 32 6 "" + FIELD LF_BASE->A0NSRIT PICTURE "." FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 48 5 "5 Retr.e Pens. " +END + +NUMBER F_A0RETPEN 15 +BEGIN + PROMPT 48 6 "" + FIELD LF_BASE->A0RETPEN + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT 64 5 "6 Ass.enti prev" +END + NUMBER F_A0EPREV 15 BEGIN - PROMPT 1 7 "Assegni enti previd." - HELP "Assegni Enti previdenziali" + PROMPT 64 6 "" FIELD LF_BASE->A0EPREV PICTURE "." FLAGS "R" END -GROUPBOX DLG_NULL 78 5 +// (I2) +TEXT DLG_NULL BEGIN -// PROMPT 0 8 "I2 - Quadro A" - PROMPT 0 9 "I2 - Quadro A" -END + PROMPT 0 7 "7 Comp.da terzi" +END NUMBER F_A0CTER 15 BEGIN - PROMPT 1 10 "Compensi da terzi " + PROMPT 0 8 "" FIELD LF_BASE->A0CTER PICTURE "." FLAGS "R" -END +END + +TEXT DLG_NULL +BEGIN + PROMPT 16 7 "8 Tot.imponib. " +END NUMBER F_A0TIMP 15 BEGIN - PROMPT 41 10 "Totale imponibile " + PROMPT 16 8 "" FIELD LF_BASE->A0TIMP PICTURE "." FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 32 7 "9 Imposta lorda" +END + NUMBER F_A0ILOR 15 BEGIN - PROMPT 1 11 "Imposta lorda " + PROMPT 32 8 "" FIELD LF_BASE->A0ILOR PICTURE "." FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 48 7 "10 Tot.detraz. " +END + NUMBER F_A0TDET 15 BEGIN - PROMPT 41 11 "Totale detrazioni " + PROMPT 48 8 "" FIELD LF_BASE->A0TDET PICTURE "." FLAGS "R" END - -NUMBER F_A0INCDET 15 + +TEXT DLG_NULL BEGIN - PROMPT 1 12 "Increm.detrazioni " - FIELD LF_BASE->A0INCDET - PICTURE "." - FLAGS "R" -END - -GROUPBOX DLG_NULL 78 5 -BEGIN - PROMPT 0 14 "I3 - Quadro A" -END - + PROMPT 64 7 "11 Rit.da terzi" +END + NUMBER F_A0RTER 15 BEGIN - PROMPT 1 15 "Ritenute da terzi " + PROMPT 64 8 "" FIELD LF_BASE->A0RTER PICTURE "." FLAGS "R" END +// (I3) +TEXT DLG_NULL +BEGIN + PROMPT 0 9 "12 Rit.dat.lav." +END + NUMBER F_A0RDAT 15 BEGIN - PROMPT 41 15 "Riten.datore lavoro " - HELP "Ritenute datore di lavoro" + PROMPT 0 10 "" FIELD LF_BASE->A0RDAT PICTURE "." FLAGS "R" -END +END + +TEXT DLG_NULL +BEGIN + PROMPT 16 9 "13 Ecc.ritenute" +END NUMBER F_A0ERIT 15 BEGIN - PROMPT 1 16 "Eccedenza ritenute " + PROMPT 16 10 "" FIELD LF_BASE->A0ERIT PICTURE "." FLAGS "R" -END +END + +TEXT DLG_NULL +BEGIN + PROMPT 32 9 "14 Contr.Europa" +END + +NUMBER F_A0EUROT 15 +BEGIN + PROMPT 32 10 "" + FIELD LF_BASE->A0EUROT + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT 48 9 "15 Contr.arret." +END NUMBER F_A0CARR 15 BEGIN - PROMPT 41 16 "Contributi arretrati" + PROMPT 48 10 "" FIELD LF_BASE->A0CARR PICTURE "." FLAGS "R" END - + +TEXT DLG_NULL +BEGIN + PROMPT 64 9 "16 Imp.arretr. " +END + NUMBER F_A0AARR 15 BEGIN - PROMPT 1 17 "Ammontare arretrati " + PROMPT 64 10 "" FIELD LF_BASE->A0AARR PICTURE "." FLAGS "R" -END +END -ENDPAGE - -PAGE "A..A3" -1 -1 78 18 - -GROUPBOX DLG_NULL 78 5 +// (I4) +TEXT DLG_NULL BEGIN - PROMPT 0 0 "I4 - Quadro A" + PROMPT 0 11 "17 Detr.arretr." END NUMBER F_A0DARR 15 BEGIN - PROMPT 1 1 "Detrazioni arretrati" + PROMPT 0 12 "" FIELD LF_BASE->A0DARR PICTURE "." FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 16 11 "18 Rit.arretr. " +END + NUMBER F_A0RARR 15 BEGIN - PROMPT 41 1 "Ritenute arretrati " + PROMPT 16 12 "" FIELD LF_BASE->A0RARR PICTURE "." FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 32 11 "19 Comp.Inps " +END + NUMBER F_A0CINPS 15 BEGIN - PROMPT 1 2 "Comp.fini contr.Inps" - HELP "Compensi ai fini contributivi Inps" + PROMPT 32 12 "" FIELD LF_BASE->A0CINPS PICTURE "." FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 48 11 "20 Rit.oper.VA " +END + NUMBER F_A0RITOPEVA 15 BEGIN - PROMPT 41 2 "Ritenute operate VA " - HELP "Ritenute operate VA" + PROMPT 48 12 "" FIELD LF_BASE->A0RITOPEVA PICTURE "." FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 64 11 "21 Rit.oper.SA " +END + NUMBER F_A0RITOPESA 15 BEGIN - PROMPT 1 3 "Ritenute operate SA " - HELP "Ritenute operate SA" + PROMPT 64 12 "" FIELD LF_BASE->A0RITOPESA PICTURE "." FLAGS "R" END -GROUPBOX DLG_NULL 78 5 +// (I5) +TEXT DLG_NULL BEGIN - PROMPT 0 5 "I5 - Quadro A" + PROMPT 0 13 "22 Rit.oper.SI " END NUMBER F_A0RITSI 15 BEGIN - PROMPT 1 6 "Ritenute operate SI " - HELP "Ritenute operate SI" + PROMPT 0 14 "" FIELD LF_BASE->A0RITSI PICTURE "." FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 16 13 "23 Cre.imp.auto" +END + NUMBER F_A0CIIAUT 15 BEGIN - PROMPT 41 6 "Cred.imp.impr.autot." - HELP "Credito di imposta imprese di autotrasporto" + PROMPT 16 14 "" FIELD LF_BASE->A0CIIAUT PICTURE "." FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 32 13 "24 Cre.imp.ass." +END + NUMBER F_A0CRIMPRAS 15 BEGIN - PROMPT 1 7 "Cred.imp.pre.assun. " - HELP "Credito di imposta premio di assunzione" + PROMPT 32 14 "" FIELD LF_BASE->A0CRIMPRAS PICTURE "." FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 48 13 "25 Cre.imp.L85 " +END + NUMBER F_A0CRIMPL85 15 BEGIN - PROMPT 41 7 "Cred.imp.ex L.85/95 " - HELP "Credito di imposta ex L.85/95" + PROMPT 48 14 "" FIELD LF_BASE->A0CRIMP85 PICTURE "." FLAGS "R" END -NUMBER F_A0NADLAV 5 +ENDPAGE + +PAGE "2" -1 -1 78 18 + +//--- QUADRO A bis --- + +TEXT DLG_NULL BEGIN - PROMPT 1 8 "Num.assis.dat.lavoro" - HELP "Numero assistiti dal datore di lavoro" - FIELD LF_BASE->A0NADLAV + PROMPT 0 1 "@BMod.770/A bis" +END + +// (I6) +TEXT DLG_NULL +BEGIN + PROMPT 0 2 "1 Fogli" +END + +NUMBER F_ABNFCOM 5 +BEGIN + PROMPT 0 3 "" + FIELD LF_BASE->ABNFCOM FLAGS "R" END -GROUPBOX DLG_NULL 78 3 +TEXT DLG_NULL BEGIN - PROMPT 0 10 "I6 - Quadro A" + PROMPT 10 2 "2 A.dat." +END + +NUMBER F_ABNADLAV 5 +BEGIN + PROMPT 10 3 "" + FIELD LF_BASE->ABNADLAV + FLAGS "R" END -NUMBER F_A0NACAAF 5 +TEXT DLG_NULL BEGIN - PROMPT 1 11 "Num.assis. C.A.A.F. " - HELP "Numero assistiti dal C.A.A.F." - FIELD LF_BASE->A0NACAAF + PROMPT 20 2 "3 A.CAAF" +END + +NUMBER F_ABNACAAF 5 +BEGIN + PROMPT 20 3 "" + FIELD LF_BASE->ABNACAAF FLAGS "R" -END - - -GROUPBOX DLG_NULL 78 5 +END + +TEXT DLG_NULL BEGIN - PROMPT 0 13 "I7 - Quadro A-3" + PROMPT 32 2 "4 Irpef 2°ac.96" +END + +NUMBER F_ABIR2R 15 +BEGIN + PROMPT 32 3 "" + FIELD LF_BASEBIS->ABIR2R + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT 48 2 "5 Cssn 2°ac.96 " +END + +NUMBER F_ABCS2R 15 +BEGIN + PROMPT 48 3 "" + FIELD LF_BASEBIS->ABCS2R + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT 64 2 "6 Irpef sal.96 " +END + +NUMBER F_ABIRSA 15 +BEGIN + PROMPT 64 3 "" + FIELD LF_BASEBIS->ABIRSA + PICTURE "." + FLAGS "R" +END + +// (I7) +TEXT DLG_NULL +BEGIN + PROMPT 0 4 "7 Irpef 1°ac.97" +END + +NUMBER F_ABIR1R 15 +BEGIN + PROMPT 0 5 "" + FIELD LF_BASEBIS->ABIR1R + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT 16 4 "8 Cssn sal.96 " +END + +NUMBER F_ABCSSA 15 +BEGIN + PROMPT 16 5 "" + FIELD LF_BASEBIS->ABCSSA + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT 32 4 "9 Cssn 1°ac.97 " +END + +NUMBER F_ABCS1R 15 +BEGIN + PROMPT 32 5 "" + FIELD LF_BASEBIS->ABCS1R + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT 48 4 "10 Contr.Europa" +END + +NUMBER F_ABEURO 15 +BEGIN + PROMPT 48 5 "" + FIELD LF_BASEBIS->ABEURO + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT 64 4 "11 Acc.tas.sep." +END + +NUMBER F_ABACCTS 15 +BEGIN + PROMPT 64 5 "" + FIELD LF_BASEBIS->ABACCTS + PICTURE "." + FLAGS "R" +END + +//--- QUADRO A3 --- + +TEXT DLG_NULL +BEGIN + PROMPT 0 7 "@BMod.770/A3" +END + +// (I8) +TEXT DLG_NULL +BEGIN + PROMPT 0 8 "1 Fogli" END NUMBER F_A3NFCOM 5 BEGIN - PROMPT 1 14 "Num.fogli compilati " - HELP "Numero di fogli compilati" + PROMPT 0 9 "" FIELD LF_BASE->A3NFCOM FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 8 8 "2 Perc" +END + NUMBER F_A3NUMPER 5 BEGIN - PROMPT 41 14 "Numero percipienti " - HELP "Numero di percipienti" + PROMPT 8 9 "" FIELD LF_BASE->A3NUMPER FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 16 8 "3 Red.cor.P.10 " +END + NUMBER F_A3REPT10 15 BEGIN - PROMPT 1 15 "Redd.corr.(p.to 10) " - HELP "Reddito corrisposto (punto 10)" + PROMPT 16 9 "" FIELD LF_BASE->A3REPT10 PICTURE "." FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 32 8 "4 Red.cor.P.12 " +END + NUMBER F_A3REPT12 15 BEGIN - PROMPT 41 15 "Redd.corr.(p.to 12) " - HELP "Reddito corrisposto (punto 12)" + PROMPT 32 9 "" FIELD LF_BASE->A3REPT12 PICTURE "." FLAGS "R" END -ENDPAGE - -PAGE "B" -1 -1 78 18 - -GROUPBOX DLG_NULL 78 5 +//--- QUADRO B --- + +TEXT DLG_NULL BEGIN - PROMPT 0 0 "I8 - Quadro B" -END + PROMPT 0 11 "@BMod.770/B" +END + +// (I9) +TEXT DLG_NULL +BEGIN + PROMPT 0 12 "1 Fogli" +END NUMBER F_B0NFCOM 5 BEGIN - PROMPT 1 1 "N.fogli " - HELP "Numero di fogli compilati" + PROMPT 0 13 "" FIELD LF_BASE->B0NFCOM FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 8 12 "2 Dipen" +END + NUMBER F_B0NLDIP 5 BEGIN - PROMPT 21 1 "N.dipendenti " - HELP "Numero complessivo di lavoratori dipendenti" + PROMPT 8 13 "" FIELD LF_BASE->B0NLDIP FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 16 12 "3 TFR corr.96 " +END + NUMBER F_B0TFR93 15 BEGIN - PROMPT 41 1 "T.F.R.corrisposto 95" - HELP "T.F.R. corrisposto nel 1995" + PROMPT 16 13 "" FIELD LF_BASE->B0TFR93 PICTURE "." FLAGS "R" -END - +END + +TEXT DLG_NULL +BEGIN + PROMPT 32 12 "4 Altre ind.96 " +END + NUMBER F_B0AI 15 BEGIN - PROMPT 1 2 "Altre indennità 95 " - HELP "Altre indennita nel 1995" + PROMPT 32 13 "" FIELD LF_BASE->B0AI PICTURE "." FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 48 12 "5 Cont.obb.dip." +END + NUMBER F_B0COLAV 15 BEGIN - PROMPT 41 2 "Cont.obb.caric.lav. " - HELP "Contributi obbligatori a carico del lavoratore" + PROMPT 48 13 "" FIELD LF_BASE->B0COLAV PICTURE "." FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 64 12 "6 TFR erogato " +END + NUMBER F_B0TFR7492 15 BEGIN - PROMPT 1 3 "T.F.R. erogato 74-94" - HELP "T.F.R. erogato dal 1974 al 1994" + PROMPT 64 13 "" FIELD LF_BASE->B0TFR7492 PICTURE "." FLAGS "R" -END +END -GROUPBOX DLG_NULL 78 5 +// (I10) +TEXT DLG_NULL BEGIN - PROMPT 0 5 "I9 - Quadro B" -END + PROMPT 0 14 "7 Alt.ind.erog." +END NUMBER F_B0AI7492 15 BEGIN - PROMPT 1 6 "Altr.ind.erog. 74-94" - HELP "Altre indennita erogate dal 1974 al 1994" + PROMPT 0 15 "" FIELD LF_BASE->B0AI7492 PICTURE "." FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 16 14 "8 Imp.dell'anno" +END + NUMBER F_B0IMP 15 BEGIN - PROMPT 41 6 "Imponibile dell'anno" + PROMPT 16 15 "" FIELD LF_BASE->B0IMP PICTURE "." FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 32 14 "9 Tot.imponib. " +END + NUMBER F_B0TIMP 15 BEGIN - PROMPT 1 7 "Totale imponibile " + PROMPT 32 15 "" FIELD LF_BASE->B0TIMP PICTURE "." FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 48 14 "10 Rit.operate " +END + NUMBER F_B0ROP 15 BEGIN - PROMPT 41 7 "Ritenute operate " + PROMPT 48 15 "" FIELD LF_BASE->B0ROP PICTURE "." FLAGS "R" END - + +TEXT DLG_NULL +BEGIN + PROMPT 64 14 "11 Alt.ind.Inps" +END + NUMBER F_B0AIINPS 15 BEGIN - PROMPT 1 8 "Alt.ind.fin.con.Inps" - HELP "Altre indennita ai fini contributivi Inps" + PROMPT 64 15 "" FIELD LF_BASE->B0AIINPS PICTURE "." FLAGS "R" END - -GROUPBOX DLG_NULL 78 5 + +// (I11) +TEXT DLG_NULL BEGIN - PROMPT 0 10 "I10 - Quadro B" -END + PROMPT 0 16 "12 Rit.oper.SA " +END NUMBER F_B0ROPESA 15 BEGIN - PROMPT 1 11 "Ritenute operate SA " + PROMPT 0 17 "" FIELD LF_BASE->B0ROPESA PICTURE "." FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 16 16 "13 Rit.oper.SI " +END + NUMBER F_B0RITSI 15 BEGIN - PROMPT 41 11 "Ritenute operate SI " + PROMPT 16 17 "" FIELD LF_BASE->B0RITSI PICTURE "." FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 32 16 "14 Cre.imp.auto" +END + NUMBER F_B0CIIAUT 15 BEGIN - PROMPT 1 12 "Cred.imp.impr.autot." - HELP "Credito di imposta imprese di autotrasporto" + PROMPT 32 17 "" FIELD LF_BASE->B0CIIAUT PICTURE "." FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 48 16 "15 Cre.imp.ass." +END + NUMBER F_B0CRIMPRAS 15 BEGIN - PROMPT 41 12 "Cred.imp.pre.assun. " + PROMPT 48 17 "" FIELD LF_BASE->B0CRIMPRAS PICTURE "." FLAGS "R" END - + +TEXT DLG_NULL +BEGIN + PROMPT 64 16 "16 Cre.imp.L85 " +END + NUMBER F_B0CRIMPL85 15 BEGIN - PROMPT 1 13 "Cred.imp.ex L.85/95 " + PROMPT 64 17 "" FIELD LF_BASE->B0CRIMP85 PICTURE "." FLAGS "R" END - + ENDPAGE -PAGE "B1..C" -1 -1 78 18 +PAGE "3" -1 -1 78 18 -GROUPBOX DLG_NULL 78 5 +//--- QUADRO B1 --- + +TEXT DLG_NULL BEGIN - PROMPT 0 0 "I11 - Quadro B-1" -END + PROMPT 0 1 "@BMod.770/B1" +END + +// (I12) +TEXT DLG_NULL +BEGIN + PROMPT 0 2 "1 Fogli" +END NUMBER F_B1NFCOM 5 BEGIN - PROMPT 1 1 "Numero di fogli compilati " - HELP "Numero di fogli compilati" + PROMPT 0 3 "" FIELD LF_BASE->B1NFCOM FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 8 2 "2 Perc" +END + NUMBER F_B1NPER 5 BEGIN - PROMPT 41 1 "Numero percipienti " - HELP "Numero percipienti" + PROMPT 8 3 "" FIELD LF_BASE->B1NPER FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 16 2 "3 Tot.indennità" +END + NUMBER F_B1TIND 15 BEGIN - PROMPT 1 2 "Totale indennità " - HELP "Totale indennita" + PROMPT 16 3 "" FIELD LF_BASE->B1TIND PICTURE "." FLAGS "R" -END - +END + +TEXT DLG_NULL +BEGIN + PROMPT 32 2 "4 Tot.imp.r.m. " +END + NUMBER F_B1TIRM 15 BEGIN - PROMPT 41 2 "Totale imponib. r.m." - HELP "Totale imponibile r.m." + PROMPT 32 3 "" FIELD LF_BASE->B1TIRM PICTURE "." FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 48 2 "5 Tot.imp.comp." +END + NUMBER F_B1TICOM 15 BEGIN - PROMPT 1 3 "Tot.imp.complessivo " - HELP "Totale imponibile complessivo" + PROMPT 48 3 "" FIELD LF_BASE->B1TICOM PICTURE "." FLAGS "R" END - -GROUPBOX DLG_NULL 78 5 + +//--- QUADRO C --- + +TEXT DLG_NULL BEGIN - PROMPT 0 5 "I12 - Quadro C" -END + PROMPT 0 5 "@BMod.770/C" +END + +// (I13) +TEXT DLG_NULL +BEGIN + PROMPT 0 6 "1 Fogli" +END NUMBER F_C0NFCOM 5 BEGIN - PROMPT 1 6 "Numero di fogli compilati " - HELP "Numero di fogli compilati" + PROMPT 0 7 "" FIELD LF_BASE->C0NFCOM FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 8 6 "2 Perc" +END + NUMBER F_C0NLASS 5 BEGIN - PROMPT 41 6 "Numero percipienti " - HELP "Numero lavoratori assimilati" + PROMPT 8 7 "" FIELD LF_BASE->C0NLASS FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 16 6 "3 Amm.lord.cor." +END + NUMBER F_C0ACTOT 15 BEGIN - PROMPT 1 7 "Ammont.corris.totale" - HELP "Ammontare corrisposto totale" + PROMPT 16 7 "" FIELD LF_BASE->C0ACTOT PICTURE "." FLAGS "R" END - + +TEXT DLG_NULL +BEGIN + PROMPT 32 6 "4 Contr.obblig." +END + NUMBER F_C0CONTSSN 15 BEGIN - PROMPT 41 7 "Contributi S.S.N. " - HELP "Contributo S.S.N." + PROMPT 32 7 "" FIELD LF_BASE->C0CONTSSN PICTURE "." FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 48 6 "5 Som.non sogg." +END + NUMBER F_C0SNSRIT 15 BEGIN - PROMPT 1 8 "Somme non sogg.rit. " - HELP "Somme non soggette a ritenute" + PROMPT 48 7 "" FIELD LF_BASE->C0SNSRIT PICTURE "." FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 64 6 "6 Tot.imbonib. " +END + +NUMBER F_C0TOTIMP 15 +BEGIN + PROMPT 64 7 "" + FIELD LF_BASE->C0TOTIMP + PICTURE "." + FLAGS "R" +END + +// (I14) +TEXT DLG_NULL +BEGIN + PROMPT 0 8 "7 Imposta " +END + NUMBER F_C0ROPE 15 BEGIN - PROMPT 41 8 "Ritenute operate " + PROMPT 0 9 "" FIELD LF_BASE->C0ROPE PICTURE "." FLAGS "R" END -GROUPBOX DLG_NULL 78 5 +TEXT DLG_NULL BEGIN - PROMPT 0 10 "I13 - Quadro C" + PROMPT 16 8 "8 Tot.detraz. " +END + +NUMBER F_C0TOTDET 15 +BEGIN + PROMPT 16 9 "" + FIELD LF_BASE->C0TOTDET + PICTURE "." + FLAGS "R" END + +TEXT DLG_NULL +BEGIN + PROMPT 32 8 "9 Rit.operate " +END + +NUMBER F_C0RITOPE 15 +BEGIN + PROMPT 32 9 "" + FIELD LF_BASE->C0RITOPE + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT 48 8 "10 Cre.imp.auto" +END NUMBER F_C0CIIAUT 15 BEGIN - PROMPT 1 11 "Cred.imp.impr.autot." - HELP "Credito di imposta imprese di autotrasporto" + PROMPT 48 9 "" FIELD LF_BASE->C0CIIAUT PICTURE "." FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 64 8 "11 Cre.imp.ass." +END + NUMBER F_C0CRIMPRAS 15 BEGIN - PROMPT 41 11 "Cred.imp.pre.assun. " - HELP "Credito d'imposta premio d'assunzione" + PROMPT 64 9 "" FIELD LF_BASE->C0CRIMPRAS PICTURE "." FLAGS "R" END - -ENDPAGE - -PAGE "D..D1" -1 -1 78 18 - -GROUPBOX DLG_NULL 78 5 + +//--- QUADRO D --- + +TEXT DLG_NULL BEGIN - PROMPT 0 0 "I14 - Quadro D" -END + PROMPT 0 11 "@BMod.770/D" +END + +// (I15) +TEXT DLG_NULL +BEGIN + PROMPT 0 12 "1 Fogli" +END NUMBER F_D0NFCOM 5 BEGIN - PROMPT 1 1 "Numero di fogli compilati " - HELP "Numero di fogli compilati" + PROMPT 0 13 "" FIELD LF_BASE->D0NFCOM FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 8 12 "2 Perc" +END + NUMBER F_D0NLAUT 5 BEGIN - PROMPT 41 1 "Numero percipienti " - HELP "Numero percipienti" + PROMPT 8 13 "" FIELD LF_BASE->D0NLAUT FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 16 12 "3 Amm.lord.cor." +END + NUMBER F_D0ACTOT 15 BEGIN - PROMPT 1 2 "Ammon.corris.totale " - HELP "Ammontare corrisposto totale" + PROMPT 16 13 "" FIELD LF_BASE->D0ACTOT PICTURE "." FLAGS "R" END - + +TEXT DLG_NULL +BEGIN + PROMPT 32 12 "4 Som.non sogg." +END + NUMBER F_D0SNSRIT 15 BEGIN - PROMPT 41 2 "Somme non sogg.rit. " - HELP "Somme non soggette a ritenute" + PROMPT 32 13 "" FIELD LF_BASE->D0SNSRIT PICTURE "." FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 48 12 "5 Non sogg.reg." +END + +NUMBER F_D0NSRITRC 15 +BEGIN + PROMPT 48 13 "" + FIELD LF_BASE->D0NSRITRC + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT 64 12 "6 Rit.operate " +END + NUMBER F_D0ROPE 15 BEGIN - PROMPT 1 3 "Ritenute operate " + PROMPT 64 13 "" FIELD LF_BASE->D0ROPE PICTURE "." FLAGS "R" END +// (I16) +TEXT DLG_NULL +BEGIN + PROMPT 0 14 "7 Cre.imp.auto " +END + NUMBER F_D0CIIAUT 15 BEGIN - PROMPT 41 3 "Cred.imp.impr.autot." - HELP "Credito di imposta imprese di autotrasporto" + PROMPT 0 15 "" FIELD LF_BASE->D0CIIAUT PICTURE "." FLAGS "R" END -GROUPBOX DLG_NULL 78 3 +TEXT DLG_NULL BEGIN - PROMPT 0 5 "I15 - Quadro D" -END + PROMPT 16 14 "8 Cre.imp.ass. " +END NUMBER F_D0CRIMPRAS 15 BEGIN - PROMPT 1 6 "Cred.imp.pre.assun. " - HELP "Credito d'imposta premio d'assunzione" + PROMPT 16 15 "" FIELD LF_BASE->D0CRIMPRAS PICTURE "." FLAGS "R" END + +TEXT DLG_NULL +BEGIN + PROMPT 32 14 "9 Cre.imp.L85 " +END NUMBER F_D0CRIMPL85 15 BEGIN - PROMPT 41 6 "Cred.imp.ex L.85/95 " - HELP "Credito d'imposta ex L.85/95" + PROMPT 32 15 "" FIELD LF_BASE->D0CRIMP85 PICTURE "." FLAGS "R" END + +ENDPAGE -GROUPBOX DLG_NULL 78 5 -BEGIN - PROMPT 0 8 "I16 - Quadro D1" -END +PAGE "4" -1 -1 78 18 -NUMBER F_D1NFCOM 5 +//--- QUADRO D bis --- + +TEXT DLG_NULL BEGIN - PROMPT 1 9 "Numero di fogli compilati " - HELP "Numero di fogli compilati" - FIELD LF_BASE->D1NFCOM + PROMPT 0 1 "@BMod.770/D bis" +END + +// (I17) +TEXT DLG_NULL +BEGIN + PROMPT 0 2 "1 Fogli" +END + +NUMBER F_DBNFCOM 5 +BEGIN + PROMPT 0 3 "" + FIELD LF_BASEBIS->DBNFCOM FLAGS "R" END -NUMBER F_D1NPER 5 +TEXT DLG_NULL BEGIN - PROMPT 41 9 "Numero percipienti " - HELP "Numero percipienti" - FIELD LF_BASE->D1NPER + PROMPT 8 2 "2 Perc" +END + +NUMBER F_DBNPER 5 +BEGIN + PROMPT 8 3 "" + FIELD LF_BASEBIS->DBNPER FLAGS "R" END -NUMBER F_D1TACOR 15 +TEXT DLG_NULL BEGIN - PROMPT 1 10 "Ammon.corris.totale " - HELP "Ammontare corrisposto totale" - FIELD LF_BASE->D1TACOR + PROMPT 16 2 "3 Amm.lord.cor." +END + +NUMBER F_DBAMMCOR 15 +BEGIN + PROMPT 16 3 "" + FIELD LF_BASEBIS->DBAMMCOR + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT 32 2 "4 Som.non sogg." +END + +NUMBER F_DBNSRIT 15 +BEGIN + PROMPT 32 3 "" + FIELD LF_BASEBIS->DBNSRIT PICTURE "." FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 48 2 "5 Non sogg.reg." +END + +NUMBER F_DBNSRITRC 15 +BEGIN + PROMPT 48 3 "" + FIELD LF_BASEBIS->DBNSRITRC + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT 64 2 "6 Rit.operate " +END + +NUMBER F_DBRITOPE 15 +BEGIN + PROMPT 64 3 "" + FIELD LF_BASEBIS->DBRITOPE + PICTURE "." + FLAGS "R" +END + +// (I18) +TEXT DLG_NULL +BEGIN + PROMPT 0 4 "7 Cre.imp.auto " +END + +NUMBER F_DBCRIMAUT 15 +BEGIN + PROMPT 0 5 "" + FIELD LF_BASEBIS->DBCRIMAUT + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT 16 4 "8 Cre.imp.ass. " +END + +NUMBER F_DBCRIMASS 15 +BEGIN + PROMPT 16 5 "" + FIELD LF_BASEBIS->DBCRIMASS + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT 32 4 "9 Cre.imp.L85 " +END + +NUMBER F_DBCRIML85 15 +BEGIN + PROMPT 32 5 "" + FIELD LF_BASEBIS->DBCRIML85 + PICTURE "." + FLAGS "R" +END + +//--- QUADRO D1 --- + +TEXT DLG_NULL +BEGIN + PROMPT 0 7 "@BMod.770/D1" +END + +// (I19) +TEXT DLG_NULL +BEGIN + PROMPT 0 8 "1 Fogli" +END + +NUMBER F_D1NFCOM 5 +BEGIN + PROMPT 0 9 "" + FIELD LF_BASE->D1NFCOM + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT 8 8 "2 Perc" +END + +NUMBER F_D1NPER 5 +BEGIN + PROMPT 8 9 "" + FIELD LF_BASE->D1NPER + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT 16 8 "3 Amm.lord.cor." +END + +NUMBER F_D1TACOR 15 +BEGIN + PROMPT 16 9 "" + FIELD LF_BASE->D1TACOR + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT 32 8 "4 Som.non sogg." +END + NUMBER F_D1SNSRIT 15 BEGIN - PROMPT 41 10 "Somme non sogg.rit. " - HELP "Somme non soggette a ritenute" + PROMPT 32 9 "" FIELD LF_BASE->D1SNSRIT PICTURE "." FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 48 8 "5 Rit.operate " +END + NUMBER F_D1ROPE 15 BEGIN - PROMPT 1 11 "Ritenute operate " + PROMPT 48 9 "" FIELD LF_BASE->D1ROPE PICTURE "." FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 64 8 "6 Cre.imp.ass. " +END + NUMBER F_D1CRIMPRAS 15 BEGIN - PROMPT 41 11 "Cred.imp.pre.assun. " + PROMPT 64 9 "" FIELD LF_BASE->D1CRIMPRAS PICTURE "." FLAGS "R" -END +END -ENDPAGE - -PAGE "E..E2" -1 -1 78 18 - -GROUPBOX DLG_NULL 78 5 +//--- QUADRO E --- + +TEXT DLG_NULL BEGIN - PROMPT 0 0 "I17 - Quadro E" -END - + PROMPT 0 11 "@BMod.770/E" +END + +// (I20) +TEXT DLG_NULL +BEGIN + PROMPT 0 12 "1 Fogli" +END + NUMBER F_E0NFCOM 5 BEGIN - PROMPT 1 1 "Numero di fogli compilati " - HELP "Numero di fogli compilati" + PROMPT 0 13 "" FIELD LF_BASEBIS->E0NFCOM FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 8 12 "2 Perc" +END + NUMBER F_E0NPER 5 BEGIN - PROMPT 41 1 "Numero percipienti " - HELP "Numero percipienti" + PROMPT 8 13 "" FIELD LF_BASEBIS->E0NPER FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 16 12 "3 Imp.corrisp. " +END + NUMBER F_E0AIMP 15 BEGIN - PROMPT 1 2 "Ammontare imponibile" + PROMPT 16 13 "" FIELD LF_BASEBIS->E0AIMP PICTURE "." FLAGS "R" END - + +TEXT DLG_NULL +BEGIN + PROMPT 32 12 "4 Rit.operate " +END + NUMBER F_E0ROPE 15 BEGIN - PROMPT 41 2 "Ritenute operate " + PROMPT 32 13 "" FIELD LF_BASEBIS->E0ROPE PICTURE "." FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 48 12 "5 Som.non sogg." +END + NUMBER F_E0SNSRIT 15 BEGIN - PROMPT 1 3 "Somme non sogg.rit. " - HELP "Somme non soggette a ritenute" + PROMPT 48 13 "" FIELD LF_BASEBIS->E0SNSRIT PICTURE "." FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 64 12 "6 Cre.imp.ass. " +END + NUMBER F_E0CRIMPRAS 15 BEGIN - PROMPT 41 3 "Cred.imp.pre.assun. " - HELP "Credito d'imposta premio d'assunzione" + PROMPT 64 13 "" FIELD LF_BASEBIS->E0CRIMPRAS PICTURE "." FLAGS "R" -END +END -GROUPBOX DLG_NULL 78 5 +//--- QUADRO E1 --- + +TEXT DLG_NULL BEGIN - PROMPT 0 5 "I18 - Quadro E1" -END + PROMPT 0 15 "@BMod.770/E1" +END + +// (I21) +TEXT DLG_NULL +BEGIN + PROMPT 0 16 "1 Fogli" +END NUMBER F_E1NFCOM 5 BEGIN - PROMPT 1 6 "Numero di fogli compilati " - HELP "Numero di fogli compilati" + PROMPT 0 17 "" FIELD LF_BASEBIS->E1NFCOM FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 8 16 "2 Perc" +END + NUMBER F_E1NPER 5 BEGIN - PROMPT 41 6 "Numero percipienti " - HELP "Numero percipienti" + PROMPT 8 17 "" FIELD LF_BASEBIS->E1NPER FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 16 16 "3 Som.corrisp. " +END + NUMBER F_E1SCOR 15 BEGIN - PROMPT 1 7 "Somme corrisposte " + PROMPT 16 17 "" FIELD LF_BASEBIS->E1SCOR PICTURE "." FLAGS "R" END - + +TEXT DLG_NULL +BEGIN + PROMPT 32 16 "4 Base commisu." +END + NUMBER F_E1BCOM 15 BEGIN - PROMPT 41 7 "Base commisurazione " + PROMPT 32 17 "" FIELD LF_BASEBIS->E1BCOM PICTURE "." FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 48 16 "5 Rit.operate " +END + NUMBER F_E1ROPE 15 BEGIN - PROMPT 1 8 "Ritenute operate " + PROMPT 48 17 "" FIELD LF_BASEBIS->E1ROPE PICTURE "." FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 64 16 "6 Amm.compless." +END + NUMBER F_E1ACOM 15 BEGIN - PROMPT 41 8 "Ammontare compless. " - HELP "Ammontare complessivo" + PROMPT 64 17 "" FIELD LF_BASEBIS->E1ACOM PICTURE "." FLAGS "R" END - -GROUPBOX DLG_NULL 78 4 + +// (I22) +TEXT DLG_NULL BEGIN - PROMPT 0 10 "I19 - Quadro E1" -END - + PROMPT 0 18 "7 Base commisu." +END + NUMBER F_E1BCOM2 15 BEGIN - PROMPT 1 11 "Base commisurazione " + PROMPT 0 19 "" FIELD LF_BASEBIS->E1BCOM2 PICTURE "." FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 16 18 "8 Rit.operate " +END + NUMBER F_E1ROPE2 15 BEGIN - PROMPT 41 11 "Ritenute operate " + PROMPT 16 19 "" FIELD LF_BASEBIS->E1ROPE2 PICTURE "." FLAGS "R" END + +TEXT DLG_NULL +BEGIN + PROMPT 32 18 "9 Cre.imp.ass. " +END NUMBER F_E1CRIMPRAS 15 BEGIN - PROMPT 1 12 "Cred.imp.pre.assun. " - HELP "Credito d'imposta premio d'assunzione" + PROMPT 32 19 "" FIELD LF_BASEBIS->E1CRIMPRAS PICTURE "." FLAGS "R" -END +END + +ENDPAGE -GROUPBOX DLG_NULL 78 5 +PAGE "5" -1 -1 78 18 + +//--- QUADRO E2 --- + +TEXT DLG_NULL BEGIN - PROMPT 0 14 "I20 - Quadro E2" -END + PROMPT 0 1 "@BMod.770/E2" +END + +// (I23) +TEXT DLG_NULL +BEGIN + PROMPT 0 2 "1 Fogli" +END NUMBER F_E2NFCOM 5 BEGIN - PROMPT 1 15 "Numero di fogli compilati " - HELP "Numero di fogli compilati" + PROMPT 0 3 "" FIELD LF_BASEBIS->E2NFCOM FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 8 2 "2 Perc" +END + NUMBER F_E2NPER 5 BEGIN - PROMPT 41 15 "Numero Percipienti " - HELP "Numero percipienti" + PROMPT 8 3 "" FIELD LF_BASEBIS->E2NPER FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 16 2 "3 Som.sogg.rit." +END + NUMBER F_E2SSRIT 15 BEGIN - PROMPT 1 16 "Somme sogg. ritenute " - HELP "Somme soggette a ritenute" + PROMPT 16 3 "" FIELD LF_BASEBIS->E2SSRIT PICTURE "." FLAGS "R" END - + +TEXT DLG_NULL +BEGIN + PROMPT 32 2 "4 Rit.operate " +END + NUMBER F_E2ROPE 15 BEGIN - PROMPT 41 16 "Ritenute operate " + PROMPT 32 3 "" FIELD LF_BASEBIS->E2ROPE PICTURE "." FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 48 2 "5 Cre.imp.ass. " +END + NUMBER F_E2CRIMPRAS 15 BEGIN - PROMPT 1 17 "Cred.imp.pre.assun. " - HELP "Credito d'imposta premio d'assunzione" + PROMPT 48 3 "" FIELD LF_BASEBIS->E2CRIMPRAS PICTURE "." FLAGS "R" END -ENDPAGE - -PAGE "F..F2" -1 -1 78 18 - -GROUPBOX DLG_NULL 78 5 +//--- QUADRO F --- + +TEXT DLG_NULL BEGIN - PROMPT 0 0 "I21 - Quadro F" -END + PROMPT 0 5 "@BMod.770/F" +END + -NUMBER F_F0SRITA 15 +// (I24) +TEXT DLG_NULL BEGIN - PROMPT 1 1 "Som.sog.rit.(pros.A)" - HELP "Somme soggette a ritenute (prospetto A)" - FIELD LF_BASEBIS->F0SRITA - PICTURE "." - FLAGS "R" -END - -NUMBER F_F0ROPEA 15 -BEGIN - PROMPT 41 1 "Rit.operate(pros.A) " - HELP "Ritenute operate (prospetto A)" - FIELD LF_BASEBIS->F0ROPEA - PICTURE "." - FLAGS "R" -END - -NUMBER F_F0TACCA 15 -BEGIN - PROMPT 1 2 "Tot.acconti (pros.A)" - HELP "Totale acconti (prospetto A)" - FIELD LF_BASEBIS->F0TACCA - PICTURE "." - FLAGS "R" -END - -NUMBER F_F0EDACCA 15 -BEGIN - PROMPT 41 2 "Ecc.dim.acc.(pros.A)" - HELP "Eccedenza in diminuzione degli acconti (prospetto A)" - FIELD LF_BASEBIS->F0EDACCA - PICTURE "." - FLAGS "R" -END - -NUMBER F_F0ERIMA 15 -BEGIN - PROMPT 1 3 "Ecc. rimbor.(pros.A)" - HELP "Eccedenza a rimborso (prospetto A)" - FIELD LF_BASEBIS->F0ERIMA - PICTURE "." - FLAGS "R" -END - -GROUPBOX DLG_NULL 78 5 -BEGIN - PROMPT 0 5 "I22 - Quadro F" -END - -NUMBER F_F0SSVA 15 -BEGIN - PROMPT 1 6 "Somme sog.VA(pros.A)" - HELP "Riepilogo F: somme soggette VA" - FIELD LF_BASEBIS->F0SSVA - PICTURE "." - FLAGS "R" -END - -NUMBER F_F0ROPEVA 15 -BEGIN - PROMPT 41 6 "Rit.oper.VA (pros.A)" - HELP "Riepilogo F: ritenute operate VA" - FIELD LF_BASEBIS->F0ROPEVA - PICTURE "." - FLAGS "R" -END + PROMPT 0 6 "1 Som.sogg.rit." +END NUMBER F_F0SSRITBF 15 BEGIN - PROMPT 1 7 "Som.sogg.rit.(BCDEF)" - HELP "Somme soggette a ritenute (prospetti B,C,D,E,F)" + PROMPT 0 7 "" FIELD LF_BASEBIS->F0SSRITBF PICTURE "." FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 16 6 "2 Rit.operate " +END + NUMBER F_F0ROPEBF 15 BEGIN - PROMPT 41 7 "Rit.op.(p.B,C,D,E,F)" - HELP "Ritenute operate (prospetti B,C,D,E,F)" + PROMPT 16 7 "" FIELD LF_BASEBIS->F0ROPEBF PICTURE "." FLAGS "R" END - -NUMBER F_F0CRIMPRAS 15 + +TEXT DLG_NULL BEGIN - PROMPT 1 8 "Cred.imp.pre.assun. " - FIELD LF_BASEBIS->F0CRIMPRAS + PROMPT 32 6 "3 Amm.proventi " +END + +NUMBER F_F0AMMPRO 15 +BEGIN + PROMPT 32 7 "" + FIELD LF_BASEBIS->F0AMMPRO PICTURE "." FLAGS "R" END -GROUPBOX DLG_NULL 78 4 +TEXT DLG_NULL BEGIN - PROMPT 0 10 "I23 - Quadro F1" + PROMPT 48 6 "4 Prel.operato " +END + +NUMBER F_F0PREOPE 15 +BEGIN + PROMPT 48 7 "" + FIELD LF_BASEBIS->F0PREOPE + PICTURE "." + FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 64 6 "5 Cre.imp.ass. " +END + +NUMBER F_F0CRIMPRAS 15 +BEGIN + PROMPT 64 7 "" + FIELD LF_BASEBIS->F0CRIMPRAS + PICTURE "." + FLAGS "R" +END + +//--- QUADRO F1 --- + +TEXT DLG_NULL +BEGIN + PROMPT 0 9 "@BMod.770/F1" +END + +// (I25) +TEXT DLG_NULL +BEGIN + PROMPT 0 10 "1 Fogli" +END + +NUMBER F_F1NFCOM 5 +BEGIN + PROMPT 0 11 "" + FIELD LF_BASEBIS->F1NFCOM + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT 8 10 "2 Perc" +END + +NUMBER F_F1NPER 5 +BEGIN + PROMPT 8 11 "" + FIELD LF_BASEBIS->F1NPER + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT 16 10 "3 Som.sogg.rit." +END + NUMBER F_F1SSRIT 15 BEGIN - PROMPT 1 11 "Som.sogg.rit.(p.A,B)" - HELP "Riepilogo F-1: Somme soggette a ritenute (prospetti A,B)" + PROMPT 16 11 "" FIELD LF_BASEBIS->F1SSRIT PICTURE "." FLAGS "R" END - + +TEXT DLG_NULL +BEGIN + PROMPT 32 10 "4 Rit.operate " +END + NUMBER F_F1ROPE 15 BEGIN - PROMPT 41 11 "Riten.operat.(p.A,B)" - HELP "Riepilogo F-1: ritenute operate (prospetti A,B)" + PROMPT 32 11 "" FIELD LF_BASEBIS->F1ROPE PICTURE "." FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 48 10 "5 Cre.imp.ass. " +END + NUMBER F_F1CRIMPRAS 15 BEGIN - PROMPT 1 12 "Cred.imp.pre.assun. " + PROMPT 48 11 "" FIELD LF_BASEBIS->F1CRIMPRAS PICTURE "." FLAGS "R" -END +END -GROUPBOX DLG_NULL 78 4 +//--- QUADRO F2 --- + +TEXT DLG_NULL BEGIN - PROMPT 0 14 "I24 - Quadro F2" -END + PROMPT 0 13 "@BMod.770/F2" +END + + +// (I26) +TEXT DLG_NULL +BEGIN + PROMPT 0 14 "1 Som.sogg.rit." +END NUMBER F_F2SSRIT 15 BEGIN - PROMPT 1 15 "Somme sogg. ritenute" - HELP "Riepilogo F-2: Somme soggette a ritenute" + PROMPT 0 15 "" FIELD LF_BASEBIS->F2SSRIT PICTURE "." FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 16 14 "2 Rit.operate " +END + NUMBER F_F2ROPE 15 BEGIN - PROMPT 41 15 "Ritenute operate " + PROMPT 16 15 "" FIELD LF_BASEBIS->F2ROPE PICTURE "." FLAGS "R" END - + +TEXT DLG_NULL +BEGIN + PROMPT 32 14 "3 Cre.imp.ass. " +END + NUMBER F_F2CRIMPRAS 15 BEGIN - PROMPT 1 16 "Cred.imp.pre.assun. " + PROMPT 32 15 "" FIELD LF_BASEBIS->F2CRIMPRAS PICTURE "." FLAGS "R" @@ -1140,227 +1860,366 @@ END ENDPAGE -PAGE "G..G1" -1 -1 78 18 +PAGE "6" -1 -1 78 18 -GROUPBOX DLG_NULL 78 5 +//--- QUADRO G --- + +TEXT DLG_NULL BEGIN - PROMPT 0 0 "I25 - Quadro G" -END + PROMPT 0 1 "@BMod.770/G" +END + +// (I27) +TEXT DLG_NULL +BEGIN + PROMPT 0 2 "1 Fogli" +END NUMBER F_G0NFCOM 5 BEGIN - PROMPT 1 1 "N.fogli " - HELP "Numero di fogli compilati" + PROMPT 0 3 "" FIELD LF_BASEBIS->G0NFCOM FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 8 2 "2 Perc" +END + NUMBER F_G0NPER 5 BEGIN - PROMPT 21 1 "N.percipienti " - HELP "Numero percipienti" + PROMPT 8 3 "" FIELD LF_BASEBIS->G0NPER FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 16 2 "3 Ut.spettanti " +END + NUMBER F_G0USPE 15 BEGIN - PROMPT 41 1 "Utili spettanti " + PROMPT 16 3 "" FIELD LF_BASEBIS->G0USPE PICTURE "." FLAGS "R" END - + +TEXT DLG_NULL +BEGIN + PROMPT 32 2 "4 Rit.ut.spett." +END + NUMBER F_G0ROPESPET 15 BEGIN - PROMPT 1 2 "Rit.utili spettanti " + PROMPT 32 3 "" FIELD LF_BASEBIS->G0RITSPET PICTURE "." FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 48 2 "5 Ut.pagati " +END + NUMBER F_G0UPAG 15 BEGIN - PROMPT 41 2 "Utili pagati " + PROMPT 48 3 "" FIELD LF_BASEBIS->G0UPAG PICTURE "." FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 64 2 "6 Rit.ut.pagati" +END + NUMBER F_G0ROPE 15 BEGIN - PROMPT 1 3 "Rit. su utili pagati" + PROMPT 64 3 "" FIELD LF_BASEBIS->G0ROPE PICTURE "." FLAGS "R" END -GROUPBOX DLG_NULL 78 5 +// (I28) +TEXT DLG_NULL BEGIN - PROMPT 0 5 "I26 - Quadro G" -END + PROMPT 0 4 "7 Ut.da cor.95 " +END -NUMBER F_G0NAZI1 15 +NUMBER F_G0UTDACOR 15 BEGIN - PROMPT 1 6 "Azioni o quote(pr.1)" - HELP "Numero azioni o quote (prospetto 1)" - FIELD LF_BASEBIS->G0NAZI1 + PROMPT 0 5 "" + FIELD LF_BASEBIS->G0UTDACOR PICTURE "." FLAGS "R" END -NUMBER F_G0UDEN1 15 +TEXT DLG_NULL BEGIN - PROMPT 41 6 "Utili denaro (pr.1) " - HELP "Utili in denaro (prospetto 1)" - FIELD LF_BASEBIS->G0UDEN1 + PROMPT 16 4 "8 Ut.del.distr." +END + +NUMBER F_G0UTDELDIS 15 +BEGIN + PROMPT 16 5 "" + FIELD LF_BASEBIS->G0UTDELDIS + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT 32 4 "9 Ut.cor.1°sem " +END + +NUMBER F_G0UTCOR1S 15 +BEGIN + PROMPT 32 5 "" + FIELD LF_BASEBIS->G0UTCOR1S PICTURE "." FLAGS "R" END -NUMBER F_G0UNAT1 15 +TEXT DLG_NULL BEGIN - PROMPT 1 7 "Utili natura (pr.1) " - HELP "Utili in natura (prospetto 1)" - FIELD LF_BASEBIS->G0UNAT1 + PROMPT 48 4 "10 Ut.cor.2°sem" +END + +NUMBER F_G0UTCOR2S 15 +BEGIN + PROMPT 48 5 "" + FIELD LF_BASEBIS->G0UTCOR2S PICTURE "." FLAGS "R" END -NUMBER F_G0IUTI2 15 +TEXT DLG_NULL BEGIN - PROMPT 41 7 "Importo utili (pr.2)" - FIELD LF_BASEBIS->G0IUTI2 - PICTURE "." - FLAGS "R" -END - -NUMBER F_G0USRIT3 15 -BEGIN - PROMPT 1 8 "Util.sogg.rit.(pr.3)" - HELP "Utili soggetti a ritenute (prospetto 3)" - FIELD LF_BASEBIS->G0USRIT3 - PICTURE "." - FLAGS "R" -END - -GROUPBOX DLG_NULL 78 4 -BEGIN - PROMPT 0 10 "I27 - Quadro G" -END + PROMPT 64 4 "11 Rit.acconto " +END NUMBER F_G0RACC3 15 BEGIN - PROMPT 1 11 "Ritenuta acc.(pr.3) " - HELP "Ritenuta di acconto (prospetto A)" + PROMPT 64 5 "" FIELD LF_BASEBIS->G0RACC3 PICTURE "." FLAGS "R" -END +END + +// (I29) +TEXT DLG_NULL +BEGIN + PROMPT 0 6 "12 Rit.imposta " +END NUMBER F_G0RIMP3 15 BEGIN - PROMPT 41 11 "Riten. impos.(pr.3) " - HELP "Ritenuta di imposta (prospetto 3)" + PROMPT 0 7 "" FIELD LF_BASEBIS->G0RIMP3 PICTURE "." FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 16 6 "13 Ut.non sogg." +END + NUMBER F_G0UNSRIT3 15 BEGIN - PROMPT 1 12 "Ut.non sogg.rit.(p3)" - HELP "Utili non soggetti a ritenute (prospetto 3)" + PROMPT 16 7 "" FIELD LF_BASEBIS->G0UNSRIT3 PICTURE "." FLAGS "R" END + +TEXT DLG_NULL +BEGIN + PROMPT 32 6 "14 Ut.da cor.96" +END + +NUMBER F_G0UTDACOR2 15 +BEGIN + PROMPT 32 7 "" + FIELD LF_BASEBIS->G0UTDACOR2 + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT 48 6 "15 Cre.imp.ass." +END NUMBER F_G0CRIMPRAS 15 BEGIN - PROMPT 41 12 "Cred.imp.pre.assun. " + PROMPT 48 7 "" FIELD LF_BASEBIS->G0CRIMPRAS PICTURE "." FLAGS "R" END -GROUPBOX DLG_NULL 78 5 +//--- QUADRO G1 --- + +TEXT DLG_NULL BEGIN - PROMPT 0 14 "I28 - Quadro G1" -END + PROMPT 0 9 "@BMod.770/G1" +END -NUMBER F_G1UCOR 15 +// (I30) +TEXT DLG_NULL BEGIN - PROMPT 1 15 "Utili corrisposti " - FIELD LF_BASEBIS->G1UCOR + PROMPT 0 10 "1 Ut.cor.1°sem." +END + +NUMBER F_G1UTCOR1S 15 +BEGIN + PROMPT 0 11 "" + FIELD LF_BASEBIS->G1UTCOR1S PICTURE "." FLAGS "R" END -NUMBER F_G1USRIT 15 +TEXT DLG_NULL BEGIN - PROMPT 41 15 "Utili sogg. ritenute" - HELP "Utili soggetti a ritenute" - FIELD LF_BASEBIS->G1USRIT + PROMPT 16 10 "2 Ut.cor.2°sem." +END + +NUMBER F_G1UTCOR2S 15 +BEGIN + PROMPT 16 11 "" + FIELD LF_BASEBIS->G1UTCOR2S + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT 32 10 "3 Rit.acc.ve.96" +END + +NUMBER F_G1RITAV1 15 +BEGIN + PROMPT 32 11 "" + FIELD LF_BASEBIS->G1RITAV1 PICTURE "." FLAGS "R" END -NUMBER F_G1RACC 15 +TEXT DLG_NULL BEGIN - PROMPT 1 16 "Ritenute di acconto " - FIELD LF_BASEBIS->G1RACC + PROMPT 48 10 "4 Rit.acc.ve.97" +END + +NUMBER F_G1RITAV2 15 +BEGIN + PROMPT 48 11 "" + FIELD LF_BASEBIS->G1RITAV2 PICTURE "." FLAGS "R" END -NUMBER F_G1RIMP 15 +TEXT DLG_NULL BEGIN - PROMPT 41 16 "Ritenute di imposta " - FIELD LF_BASEBIS->G1RIMP - PICTURE "." - FLAGS "R" -END + PROMPT 64 10 "5 Rit.imp.ve.96" +END -NUMBER F_G1UNSRIT 15 +NUMBER F_G1RITIV1 15 BEGIN - PROMPT 1 17 "Utili non sogg.rit. " - HELP "Utili non soggetti a ritenute" - FIELD LF_BASEBIS->G1UNSRIT + PROMPT 64 11 "" + FIELD LF_BASEBIS->G1RITIV1 PICTURE "." FLAGS "R" END -NUMBER F_G1CRIMPRAS 15 +// (I31) +TEXT DLG_NULL BEGIN - PROMPT 41 17 "Cred.imp.pre.assun. " - FIELD LF_BASEBIS->G1CRIMPRAS + PROMPT 0 12 "6 Rit.imp.ve.97" +END + +NUMBER F_G1RITIV2 15 +BEGIN + PROMPT 0 13 "" + FIELD LF_BASEBIS->G1RITIV2 PICTURE "." FLAGS "R" END -ENDPAGE - -PAGE "H" -1 -1 78 18 - -GROUPBOX DLG_NULL 78 3 +TEXT DLG_NULL BEGIN - PROMPT 0 0 "I28 - Quadro H" + PROMPT 16 12 "7 Ut.non ass.1s" +END + +NUMBER F_G1UTNSR1S 15 +BEGIN + PROMPT 16 13 "" + FIELD LF_BASEBIS->G1UTNSR1S + PICTURE "." + FLAGS "R" END + +TEXT DLG_NULL +BEGIN + PROMPT 32 12 "8 Ut.non ass.2s" +END + +NUMBER F_G1UTNSR2S 15 +BEGIN + PROMPT 32 13 "" + FIELD LF_BASEBIS->G1UTNSR2S + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT 48 12 "9 Cre.imp.ass." +END + +NUMBER F_G1CRIMPRAS 15 +BEGIN + PROMPT 48 13 "" + FIELD LF_BASEBIS->G1CRIMPRAS + PICTURE "." + FLAGS "R" +END + +//--- QUADRO H --- + +TEXT DLG_NULL +BEGIN + PROMPT 0 15 "@BMod.770/H" +END + +// (I32) +TEXT DLG_NULL +BEGIN + PROMPT 0 16 "1 Cont.obb.dat." +END NUMBER F_H0CODLAV 15 BEGIN - PROMPT 1 1 "Cont.obb.car.dat.lav" - HELP "Contributi obbligatori a carico del datore di lavoro" + PROMPT 0 17 "" FIELD LF_BASEBIS->H0CODLAV PICTURE "." FLAGS "R" END +TEXT DLG_NULL +BEGIN + PROMPT 16 16 "2 Cont.obb.dip." +END + NUMBER F_H0COLDIP 15 BEGIN - PROMPT 41 1 "Cont.ob.car.lav.dip." - HELP "Contributi obbligatori a carico del dipendente" + PROMPT 16 17 "" FIELD LF_BASEBIS->H0COLDIP PICTURE "." FLAGS "R" diff --git a/m770/771400a.uml b/m770/771400a.uml index 7bafd3033..f926369ac 100755 --- a/m770/771400a.uml +++ b/m770/771400a.uml @@ -1,4 +1,3 @@ -// Versione senza FIELD #include "771300.h" TOOLBAR "" 0 20 0 2 @@ -15,7 +14,7 @@ END NUMBER F_CODDITTA 5 BEGIN PROMPT 3 1 "Ditta " - FLAGS "DGR" + FLAGS "DGRP" USE LF_NDITTE KEY 1 INPUT CODDITTA F_CODDITTA DISPLAY "Codice" CODDITTA @@ -30,7 +29,7 @@ END STRING F_RAGSOC 50 BEGIN PROMPT 17 1 "Ragione " - FLAGS "D" + FLAGS "DP" MESSAGE COPY,2@ END @@ -47,7 +46,7 @@ END GROUPBOX DLG_NULL 78 4 BEGIN - PROMPT 0 4 "Dati relativi al conguaglio di fine anno effettuato dai datori di lavoro" + PROMPT 0 4 "@bConguaglio di fine anno effettuato dai datori di lavoro" END NUMBER F_M1 15 @@ -68,12 +67,12 @@ END GROUPBOX DLG_NULL 78 6 BEGIN - PROMPT 0 8 "Prospetto riservato ai sostituti non tenuti a presentare la dichiarazione" + PROMPT 0 9 "@bProspetto riservato ai sostituti non tenuti alla presentazione.." END NUMBER F_M3 15 BEGIN - PROMPT 1 9 "M3 Credito di imposta ex D.L.357/94 spettante " + PROMPT 1 10 "M3 Credito di imposta ex D.L.357/94 spettante " FIELD LF_BASEBIS->CRIMPDL PICTURE "." FLAGS "R" @@ -81,7 +80,7 @@ END NUMBER F_M4 15 BEGIN - PROMPT 1 10 "M4 Credito di imposta utilizzato ai fini IVA " + PROMPT 1 11 "M4 Credito di imposta utilizzato ai fini IVA " FIELD LF_BASEBIS->CRIMPIVA PICTURE "." FLAGS "R" @@ -89,7 +88,7 @@ END NUMBER F_M5 15 BEGIN - PROMPT 1 11 "M5 Credito imposta utilizzato per versamento ritenute " + PROMPT 1 12 "M5 Credito imposta utilizzato per versamento ritenute " FIELD LF_BASEBIS->CRIMPRIT PICTURE "." FLAGS "R" @@ -97,10 +96,23 @@ END NUMBER F_M6 15 BEGIN - PROMPT 1 12 "M6 Credito di imposta residuo " + PROMPT 1 13 "M6 Credito di imposta residuo " FIELD LF_BASEBIS->CRIMPRES PICTURE "." FLAGS "D" +END + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 0 16 "@bRitenute di cui all'art.3,comma 22,L.662/96" +END + +NUMBER F_M7 15 +BEGIN + PROMPT 1 17 "M7 Importo totale ritenute effettuate " + FIELD LF_BASEBIS->M7IMRITEF + PICTURE "." + FLAGS "R" END ENDPAGE @@ -115,14 +127,14 @@ END NUMBER DLG_NULL 5 BEGIN PROMPT 3 1 "Ditta " - FLAGS "RDG" + FLAGS "RDGP" GROUP 1 END STRING DLG_NULL 50 BEGIN PROMPT 17 1 "Ragione " - FLAGS "D" + FLAGS "DP" GROUP 2 END @@ -133,187 +145,198 @@ END TEXT DLG_NULL BEGIN - PROMPT 1 4 "Il sottoscritto dichiara di aver corrisposto a dipendenti e terzi nell'anno" -END - -NUMBER F_ANNODIC 4 -BEGIN - PROMPT 1 5 "" - FLAGS "RD" -END - -TEXT DLG_NULL -BEGIN - PROMPT 7 5 "le somme e i valori e di aver effettuato le ritenute indicate" -END - -TEXT DLG_NULL -BEGIN - PROMPT 7 6 "nei quadri:" + PROMPT 1 4 "Il sottoscritto dichiara di aver compilato i seguenti quadri" END -#define RA 8 -#define RB 9 -#define RC0 11 -#define RC1 12 -#define RD 13 +#define RA 6 +#define RB 7 +#define RC 8 BOOLEAN F_QCOMPA BEGIN PROMPT 2 RA "A" END - -BOOLEAN F_QCOMPA3 + +BOOLEAN F_QCOMPAB BEGIN - PROMPT 8 RA "A3" -END - -BOOLEAN F_QCOMPB -BEGIN - PROMPT 14 RA "B" -END - -BOOLEAN F_QCOMPB1 -BEGIN - PROMPT 20 RA "B1" -END - -BOOLEAN F_QCOMPC -BEGIN - PROMPT 26 RA "C" -END - -BOOLEAN F_QCOMPD -BEGIN - PROMPT 32 RA "D" -END - -BOOLEAN F_QCOMPD1 -BEGIN - PROMPT 38 RA "D1" -END - -BOOLEAN F_QCOMPE -BEGIN - PROMPT 44 RA "E" -END - -BOOLEAN F_QCOMPE1 -BEGIN - PROMPT 50 RA "E1" -END - -BOOLEAN F_QCOMPE2 -BEGIN - PROMPT 56 RA "E2" -END - -BOOLEAN F_QCOMPF -BEGIN - PROMPT 62 RA "F" -END - -BOOLEAN F_QCOMPF1 -BEGIN - PROMPT 68 RA "F1" -END - -BOOLEAN F_QCOMPF2 -BEGIN - PROMPT 2 RB "F2" -END - -BOOLEAN F_QCOMPG -BEGIN - PROMPT 8 RB "G" -END - -BOOLEAN F_QCOMPG1 -BEGIN - PROMPT 14 RB "G1" -END - -BOOLEAN F_QCOMPH -BEGIN - PROMPT 20 RB "H" -END - -BOOLEAN F_QCOMPI -BEGIN - PROMPT 26 RB "I" -END - -TEXT DLG_NULL -BEGIN - PROMPT 1 RC0 "Inoltre dichiara di aver effettuato i conguagli conseguenti all'assistenza" -END - -TEXT DLG_NULL -BEGIN - PROMPT 1 RC1 "fiscale indicati nel quadro A e nei quadri" -END - + PROMPT 8 RA "Ab" +END + BOOLEAN F_QCOMPA1 BEGIN - PROMPT 2 RD "A1" + PROMPT 14 RA "A1" END BOOLEAN F_QCOMPA2 BEGIN - PROMPT 8 RD "A2" + PROMPT 20 RA "A2" END +BOOLEAN F_QCOMPA3 +BEGIN + PROMPT 26 RA "A3" +END + +BOOLEAN F_QCOMPB +BEGIN + PROMPT 32 RA "B" +END + +BOOLEAN F_QCOMPB1 +BEGIN + PROMPT 38 RA "B1" +END + +BOOLEAN F_QCOMPC +BEGIN + PROMPT 44 RA "C" +END + +BOOLEAN F_QCOMPD +BEGIN + PROMPT 50 RA "D" +END + +BOOLEAN F_QCOMPDB +BEGIN + PROMPT 56 RA "Db" +END + +BOOLEAN F_QCOMPD1 +BEGIN + PROMPT 62 RA "D1" +END + +BOOLEAN F_QCOMPE +BEGIN + PROMPT 68 RA "E" +END + +BOOLEAN F_QCOMPE1 +BEGIN + PROMPT 2 RB "E1" +END + +BOOLEAN F_QCOMPE2 +BEGIN + PROMPT 8 RB "E2" +END + +BOOLEAN F_QCOMPF +BEGIN + PROMPT 14 RB "F" +END + +BOOLEAN F_QCOMPF1 +BEGIN + PROMPT 20 RB "F1" +END + +BOOLEAN F_QCOMPF2 +BEGIN + PROMPT 26 RB "F2" +END + +BOOLEAN F_QCOMPG +BEGIN + PROMPT 32 RB "G" +END + +BOOLEAN F_QCOMPG1 +BEGIN + PROMPT 38 RB "G1" +END + +BOOLEAN F_QCOMPH +BEGIN + PROMPT 44 RB "H" +END + +BOOLEAN F_QCOMPI +BEGIN + PROMPT 50 RB "I" +END + +BOOLEAN F_QCOMPL +BEGIN + PROMPT 56 RB "L" +END + BOOLEAN F_QCOMPN BEGIN - PROMPT 14 RD "N" + PROMPT 62 RB "N" END BOOLEAN F_QCOMPP BEGIN - PROMPT 20 RD "P" + PROMPT 68 RB "P" END BOOLEAN F_QCOMPQ BEGIN - PROMPT 26 RD "Q" + PROMPT 2 RC "Q" END BOOLEAN F_QCOMPR BEGIN - PROMPT 32 RD "R" + PROMPT 8 RC "R" END BOOLEAN F_QCOMPS BEGIN - PROMPT 38 RD "S" + PROMPT 14 RC "S" END BOOLEAN F_QCOMPT BEGIN - PROMPT 44 RD "T" + PROMPT 20 RC "T" +END + +BOOLEAN F_QCOMPU +BEGIN + PROMPT 26 RC "U" +END + +NUMBER F_QLAGG 4 +BEGIN + PROMPT 1 10 "nonchè n." + FLAGS "RDP" +END + +NUMBER F_QNAGG 4 +BEGIN + PROMPT 16 10 "quadri L aggiuntivi e n." + FLAGS "RDP" +END + +TEXT DLG_NULL +BEGIN + PROMPT 46 10 "quadri N,P,Q,R,S,T aggiuntivi." +END + +NUMBER F_NSUPPM 4 +BEGIN + PROMPT 1 12 "Dichiara di aver presentato la dichiarazione mediante n." + FIELD LF_BASEBIS->NSUPPM END TEXT DLG_NULL BEGIN - PROMPT 1 15 "Dichiara altresì di aver eseguito i versamenti risultanti dai quadri L,P,Q," + PROMPT 62 12 "supp.magnetici." END -TEXT DLG_NULL +NUMBER F_ANNODIC 4 BEGIN - PROMPT 1 16 "S,T e da n. " + PROMPT 1 14 "Dichiara altresì che le ritenute effettuate nel " + FLAGS "RD" END -NUMBER F_H0NQLAGG 4 +NUMBER F_DICRITCER 15 BEGIN - PROMPT 13 16 "" - FIELD LF_BASEBIS->H0NQLAGG + PROMPT 1 15 "sono state certificate per il seguente importo " + FIELD LF_BASE->DICRITCER + PICTURE "." FLAGS "R" - //FLAGS "D" -END - -TEXT DLG_NULL -BEGIN - PROMPT 19 16 "quadri aggiuntivi." END ENDPAGE @@ -328,173 +351,172 @@ END NUMBER DLG_NULL 5 BEGIN PROMPT 3 1 "Ditta " - FLAGS "RDG" + FLAGS "RDGP" GROUP 1 END STRING DLG_NULL 50 BEGIN PROMPT 17 1 "Ragione " - FLAGS "D" + FLAGS "DP" GROUP 2 END -GROUPBOX DLG_NULL 78 10 +GROUPBOX DLG_NULL 78 8 BEGIN PROMPT 0 3 "" END TEXT DLG_NULL BEGIN - PROMPT 1 4 "Il sottoscritto dichiara di aver presentato i quadri" + PROMPT 1 4 "Il sottoscritto dichiara di aver inviato i seguenti quadri" END BOOLEAN F_QSUPPA BEGIN PROMPT 2 6 "A" +END + +BOOLEAN F_QSUPPAB +BEGIN + PROMPT 8 6 "Ab" END BOOLEAN F_QSUPPA1 BEGIN - PROMPT 8 6 "A1" + PROMPT 14 6 "A1" END BOOLEAN F_QSUPPA2 BEGIN - PROMPT 14 6 "A2" + PROMPT 20 6 "A2" END BOOLEAN F_QSUPPA3 BEGIN - PROMPT 20 6 "A3" + PROMPT 26 6 "A3" END BOOLEAN F_QSUPPB BEGIN - PROMPT 26 6 "B" + PROMPT 32 6 "B" END BOOLEAN F_QSUPPB1 BEGIN - PROMPT 32 6 "B1" + PROMPT 38 6 "B1" END BOOLEAN F_QSUPPC BEGIN - PROMPT 38 6 "C" + PROMPT 44 6 "C" END BOOLEAN F_QSUPPD BEGIN - PROMPT 44 6 "D" + PROMPT 50 6 "D" END +BOOLEAN F_QSUPPDB +BEGIN + PROMPT 56 6 "Db" +END + BOOLEAN F_QSUPPD1 BEGIN - PROMPT 50 6 "D1" + PROMPT 62 6 "D1" END BOOLEAN F_QSUPPE BEGIN - PROMPT 56 6 "E" + PROMPT 68 6 "E" END BOOLEAN F_QSUPPE1 BEGIN - PROMPT 62 6 "E1" + PROMPT 2 7 "E1" END BOOLEAN F_QSUPPE2 BEGIN - PROMPT 68 6 "E2" + PROMPT 8 7 "E2" END BOOLEAN F_QSUPPF BEGIN - PROMPT 2 7 "F" + PROMPT 14 7 "F" END BOOLEAN F_QSUPPF1 BEGIN - PROMPT 8 7 "F1" + PROMPT 20 7 "F1" END BOOLEAN F_QSUPPF2 BEGIN - PROMPT 14 7 "F2" + PROMPT 26 7 "F2" END BOOLEAN F_QSUPPG BEGIN - PROMPT 20 7 "G" + PROMPT 32 7 "G" END BOOLEAN F_QSUPPG1 BEGIN - PROMPT 26 7 "G1" + PROMPT 38 7 "G1" END BOOLEAN F_QSUPPH BEGIN - PROMPT 32 7 "H" + PROMPT 44 7 "H" END BOOLEAN F_QSUPPI BEGIN - PROMPT 38 7 "I" + PROMPT 50 7 "I" END BOOLEAN F_QSUPPL BEGIN - PROMPT 44 7 "L" + PROMPT 56 7 "L" END BOOLEAN F_QSUPPN BEGIN - PROMPT 50 7 "N" + PROMPT 62 7 "N" END BOOLEAN F_QSUPPP BEGIN - PROMPT 56 7 "P" + PROMPT 68 7 "P" END BOOLEAN F_QSUPPQ BEGIN - PROMPT 62 7 "Q" + PROMPT 2 8 "Q" END BOOLEAN F_QSUPPR BEGIN - PROMPT 68 7 "R" + PROMPT 8 8 "R" END BOOLEAN F_QSUPPS BEGIN - PROMPT 2 8 "S" + PROMPT 14 8 "S" END BOOLEAN F_QSUPPT BEGIN - PROMPT 8 8 "T" + PROMPT 20 8 "T" END - -TEXT DLG_NULL + +BOOLEAN F_QSUPPU BEGIN - PROMPT 1 10 "mediante n. " -END - -NUMBER F_NSUPPM 4 -BEGIN - PROMPT 13 10 "" - FIELD LF_BASEBIS->NSUPPM -END - -TEXT DLG_NULL -BEGIN - PROMPT 19 10 "supporti magnetici." -END - + PROMPT 26 8 "U" +END + ENDPAGE ENDMASK diff --git a/m770/771400b.uml b/m770/771400b.uml index 587ae343a..8b26a7276 100755 --- a/m770/771400b.uml +++ b/m770/771400b.uml @@ -2,41 +2,20 @@ #include "771300.h" TOOLBAR "" 0 20 0 2 - -BUTTON DLG_SAVEREC 10 2 -BEGIN -PROMPT -15 -1 "" -MESSAGE EXIT,K_SAVE -PICTURE BMP_SAVEREC -PICTURE BMP_SAVERECDN -END - -BUTTON DLG_CANCEL 10 2 -BEGIN -PROMPT -45 -1 "" -MESSAGE EXIT,K_ESC -END - -BUTTON DLG_QUIT 10 2 -BEGIN -PROMPT -55 -1 "" -MESSAGE EXIT,K_QUIT -END - +#include "toolbar.h" ENDPAGE -PAGE "Prospetto dati generali" -1 -1 78 18 +PAGE "Quadri compilati" -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 " - FLAGS "DGR" + PROMPT 3 1 "Ditta " + FLAGS "DGRP" USE LF_NDITTE KEY 1 INPUT CODDITTA F_CODDITTA DISPLAY "Codice" CODDITTA @@ -50,8 +29,8 @@ END STRING F_RAGSOC 50 BEGIN - PROMPT 2 2 "Ragione sociale " - FLAGS "D" + PROMPT 17 1 "Ragione " + FLAGS "DP" MESSAGE COPY,2@ END @@ -62,7 +41,25 @@ BEGIN FLAGS "D" KEY 1 FIELD LF_BASEBIS->TIPOQUA -// CHECKTYPE REQUIRED +END + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 0 "" +END + +NUMBER DLG_NULL 5 +BEGIN + PROMPT 3 1 "Ditta " + FLAGS "RDGP" + GROUP 1 +END + +STRING DLG_NULL 50 +BEGIN + PROMPT 17 1 "Ragione " + FLAGS "DP" + GROUP 2 END GROUPBOX DLG_NULL 78 15 @@ -72,420 +69,378 @@ END TEXT DLG_NULL BEGIN - PROMPT 1 4 "Il sottoscritto dichiara di aver corrisposto a dipendenti e terzi nell'anno" -END - -NUMBER F_ANNODIC 4 -BEGIN - PROMPT 1 5 "" - FLAGS "RD" -END - -TEXT DLG_NULL -BEGIN - PROMPT 7 5 "le somme e i valori e di aver effettuato le ritenute indicate" -END - -TEXT DLG_NULL -BEGIN - PROMPT 7 6 "nei quadri:" + PROMPT 1 4 "Il sottoscritto dichiara di aver compilato i seguenti quadri" END -#define RA 8 -#define RB 9 -#define RC0 11 -#define RC1 12 -#define RD 13 +#define RA 6 +#define RB 7 +#define RC 8 BOOLEAN F_QCOMPA BEGIN PROMPT 2 RA "A" - FIELD LF_BASEBIS->QCOMP[1,1] END - -BOOLEAN F_QCOMPA3 + +BOOLEAN F_QCOMPAB BEGIN - PROMPT 8 RA "A3" - FIELD LF_BASEBIS->QCOMP[25,1] -END - -BOOLEAN F_QCOMPB -BEGIN - PROMPT 14 RA "B" - FIELD LF_BASEBIS->QCOMP[2,1] -END - -BOOLEAN F_QCOMPB1 -BEGIN - PROMPT 20 RA "B1" - FIELD LF_BASEBIS->QCOMP[3,1] -END - -BOOLEAN F_QCOMPC -BEGIN - PROMPT 26 RA "C" - FIELD LF_BASEBIS->QCOMP[4,1] -END - -BOOLEAN F_QCOMPD -BEGIN - PROMPT 32 RA "D" - FIELD LF_BASEBIS->QCOMP[5,1] -END - -BOOLEAN F_QCOMPD1 -BEGIN - PROMPT 38 RA "D1" - FIELD LF_BASEBIS->QCOMP[6,1] -END - -BOOLEAN F_QCOMPE -BEGIN - PROMPT 44 RA "E" - FIELD LF_BASEBIS->QCOMP[7,1] -END - -BOOLEAN F_QCOMPE1 -BEGIN - PROMPT 50 RA "E1" - FIELD LF_BASEBIS->QCOMP[8,1] -END - -BOOLEAN F_QCOMPE2 -BEGIN - PROMPT 56 RA "E2" - FIELD LF_BASEBIS->QCOMP[9,1] -END - -BOOLEAN F_QCOMPF -BEGIN - PROMPT 62 RA "F" - FIELD LF_BASEBIS->QCOMP[10,1] -END - -BOOLEAN F_QCOMPF1 -BEGIN - PROMPT 68 RA "F1" - FIELD LF_BASEBIS->QCOMP[11,1] -END - -BOOLEAN F_QCOMPF2 -BEGIN - PROMPT 2 RB "F2" - FIELD LF_BASEBIS->QCOMP[12,1] -END - -BOOLEAN F_QCOMPG -BEGIN - PROMPT 8 RB "G" - FIELD LF_BASEBIS->QCOMP[13,1] -END - -BOOLEAN F_QCOMPG1 -BEGIN - PROMPT 14 RB "G1" - FIELD LF_BASEBIS->QCOMP[14,1] -END - -BOOLEAN F_QCOMPH -BEGIN - PROMPT 20 RB "H" - FIELD LF_BASEBIS->QCOMP[15,1] -END - -BOOLEAN F_QCOMPI -BEGIN - PROMPT 26 RB "I" - FIELD LF_BASEBIS->QCOMP[16,1] -END - -TEXT DLG_NULL -BEGIN - PROMPT 1 RC0 "Inoltre dichiara di aver effettuato i conguagli conseguenti all'assistenza" -END - -TEXT DLG_NULL -BEGIN - PROMPT 1 RC1 "fiscale indicati nel quadro A e nei quadri" -END - + PROMPT 8 RA "Ab" +END + BOOLEAN F_QCOMPA1 BEGIN - PROMPT 2 RD "A1" - FIELD LF_BASEBIS->QCOMP[23,1] + PROMPT 14 RA "A1" END BOOLEAN F_QCOMPA2 BEGIN - PROMPT 8 RD "A2" - FIELD LF_BASEBIS->QCOMP[24,1] + PROMPT 20 RA "A2" END +BOOLEAN F_QCOMPA3 +BEGIN + PROMPT 26 RA "A3" +END + +BOOLEAN F_QCOMPB +BEGIN + PROMPT 32 RA "B" +END + +BOOLEAN F_QCOMPB1 +BEGIN + PROMPT 38 RA "B1" +END + +BOOLEAN F_QCOMPC +BEGIN + PROMPT 44 RA "C" +END + +BOOLEAN F_QCOMPD +BEGIN + PROMPT 50 RA "D" +END + +BOOLEAN F_QCOMPDB +BEGIN + PROMPT 56 RA "Db" +END + +BOOLEAN F_QCOMPD1 +BEGIN + PROMPT 62 RA "D1" +END + +BOOLEAN F_QCOMPE +BEGIN + PROMPT 68 RA "E" +END + +BOOLEAN F_QCOMPE1 +BEGIN + PROMPT 2 RB "E1" +END + +BOOLEAN F_QCOMPE2 +BEGIN + PROMPT 8 RB "E2" +END + +BOOLEAN F_QCOMPF +BEGIN + PROMPT 14 RB "F" +END + +BOOLEAN F_QCOMPF1 +BEGIN + PROMPT 20 RB "F1" +END + +BOOLEAN F_QCOMPF2 +BEGIN + PROMPT 26 RB "F2" +END + +BOOLEAN F_QCOMPG +BEGIN + PROMPT 32 RB "G" +END + +BOOLEAN F_QCOMPG1 +BEGIN + PROMPT 38 RB "G1" +END + +BOOLEAN F_QCOMPH +BEGIN + PROMPT 44 RB "H" +END + +BOOLEAN F_QCOMPI +BEGIN + PROMPT 50 RB "I" +END + +BOOLEAN F_QCOMPL +BEGIN + PROMPT 56 RB "L" +END + BOOLEAN F_QCOMPN BEGIN - PROMPT 14 RD "N" - FIELD LF_BASEBIS->QCOMP[17,1] + PROMPT 62 RB "N" END BOOLEAN F_QCOMPP BEGIN - PROMPT 20 RD "P" - FIELD LF_BASEBIS->QCOMP[18,1] + PROMPT 68 RB "P" END BOOLEAN F_QCOMPQ BEGIN - PROMPT 26 RD "Q" - FIELD LF_BASEBIS->QCOMP[19,1] + PROMPT 2 RC "Q" END BOOLEAN F_QCOMPR BEGIN - PROMPT 32 RD "R" - FIELD LF_BASEBIS->QCOMP[20,1] + PROMPT 8 RC "R" END BOOLEAN F_QCOMPS BEGIN - PROMPT 38 RD "S" - FIELD LF_BASEBIS->QCOMP[21,1] + PROMPT 14 RC "S" END BOOLEAN F_QCOMPT BEGIN - PROMPT 44 RD "T" - FIELD LF_BASEBIS->QCOMP[22,1] + PROMPT 20 RC "T" +END + +BOOLEAN F_QCOMPU +BEGIN + PROMPT 26 RC "U" +END + +NUMBER F_QLAGG 4 +BEGIN + PROMPT 1 10 "nonchè n." + FLAGS "RDP" +END + +NUMBER F_QNAGG 4 +BEGIN + PROMPT 16 10 "quadri L aggiuntivi e n." + FLAGS "RDP" +END + +TEXT DLG_NULL +BEGIN + PROMPT 46 10 "quadri N,P,Q,R,S,T aggiuntivi." +END + +NUMBER F_NSUPPM 4 +BEGIN + PROMPT 1 12 "Dichiara di aver presentato la dichiarazione mediante n." + FIELD LF_BASEBIS->NSUPPM END TEXT DLG_NULL BEGIN - PROMPT 1 15 "Dichiara altresì di aver eseguito i versamenti risultanti dai quadri L,P,Q," + PROMPT 62 12 "supp.magnetici." END -TEXT DLG_NULL +NUMBER F_ANNODIC 4 BEGIN - PROMPT 1 16 "S,T e da n. " + PROMPT 1 14 "Dichiara altresì che le ritenute effettuate nel " + FLAGS "RD" END -NUMBER F_H0NQLAGG 4 +NUMBER F_DICRITCER 15 BEGIN - PROMPT 13 16 "" - FIELD LF_BASEBIS->H0NQLAGG + PROMPT 1 15 "sono state certificate per il seguente importo " + FIELD LF_BASE->DICRITCER + PICTURE "." FLAGS "R" - //FLAGS "D" -END - -TEXT DLG_NULL -BEGIN - PROMPT 19 16 "quadri aggiuntivi." END ENDPAGE -PAGE "Prospetto dati generali" -1 -1 78 18 +PAGE "Quadri inviati" -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 DLG_NULL 5 BEGIN - PROMPT 2 1 "Ditta " - FLAGS "RDG" + PROMPT 3 1 "Ditta " + FLAGS "RDGP" GROUP 1 END STRING DLG_NULL 50 BEGIN - PROMPT 2 2 "Ragione sociale " - FLAGS "D" + PROMPT 17 1 "Ragione " + FLAGS "DP" GROUP 2 END -GROUPBOX DLG_NULL 78 10 +GROUPBOX DLG_NULL 78 8 BEGIN PROMPT 0 3 "" END TEXT DLG_NULL BEGIN - PROMPT 1 4 "Il sottoscritto dichiara di aver presentato i quadri" + PROMPT 1 4 "Il sottoscritto dichiara di aver inviato i seguenti quadri" END BOOLEAN F_QSUPPA BEGIN PROMPT 2 6 "A" - FIELD LF_BASEBIS->QSUPPINV[1,1] +END + +BOOLEAN F_QSUPPAB +BEGIN + PROMPT 8 6 "Ab" END BOOLEAN F_QSUPPA1 BEGIN - PROMPT 8 6 "A1" - FIELD LF_BASEBIS->QSUPPINV[2,1] + PROMPT 14 6 "A1" END BOOLEAN F_QSUPPA2 BEGIN - PROMPT 14 6 "A2" - FIELD LF_BASEBIS->QSUPPINV[3,1] + PROMPT 20 6 "A2" END BOOLEAN F_QSUPPA3 BEGIN - PROMPT 20 6 "A3" - FIELD LF_BASEBIS->QSUPPINV[4,1] + PROMPT 26 6 "A3" END BOOLEAN F_QSUPPB BEGIN - PROMPT 26 6 "B" - FIELD LF_BASEBIS->QSUPPINV[5,1] + PROMPT 32 6 "B" END BOOLEAN F_QSUPPB1 BEGIN - PROMPT 32 6 "B1" - FIELD LF_BASEBIS->QSUPPINV[6,1] + PROMPT 38 6 "B1" END BOOLEAN F_QSUPPC BEGIN - PROMPT 38 6 "C" - FIELD LF_BASEBIS->QSUPPINV[7,1] + PROMPT 44 6 "C" END BOOLEAN F_QSUPPD BEGIN - PROMPT 44 6 "D" - FIELD LF_BASEBIS->QSUPPINV[8,1] + PROMPT 50 6 "D" END +BOOLEAN F_QSUPPDB +BEGIN + PROMPT 56 6 "Db" +END + BOOLEAN F_QSUPPD1 BEGIN - PROMPT 50 6 "D1" - FIELD LF_BASEBIS->QSUPPINV[9,1] + PROMPT 62 6 "D1" END BOOLEAN F_QSUPPE BEGIN - PROMPT 56 6 "E" - FIELD LF_BASEBIS->QSUPPINV[10,1] + PROMPT 68 6 "E" END BOOLEAN F_QSUPPE1 BEGIN - PROMPT 62 6 "E1" - FIELD LF_BASEBIS->QSUPPINV[11,1] + PROMPT 2 7 "E1" END BOOLEAN F_QSUPPE2 BEGIN - PROMPT 68 6 "E2" - FIELD LF_BASEBIS->QSUPPINV[12,1] + PROMPT 8 7 "E2" END BOOLEAN F_QSUPPF BEGIN - PROMPT 2 7 "F" - FIELD LF_BASEBIS->QSUPPINV[13,1] + PROMPT 14 7 "F" END BOOLEAN F_QSUPPF1 BEGIN - PROMPT 8 7 "F1" - FIELD LF_BASEBIS->QSUPPINV[14,1] + PROMPT 20 7 "F1" END BOOLEAN F_QSUPPF2 BEGIN - PROMPT 14 7 "F2" - FIELD LF_BASEBIS->QSUPPINV[15,1] + PROMPT 26 7 "F2" END BOOLEAN F_QSUPPG BEGIN - PROMPT 20 7 "G" - FIELD LF_BASEBIS->QSUPPINV[16,1] + PROMPT 32 7 "G" END BOOLEAN F_QSUPPG1 BEGIN - PROMPT 26 7 "G1" - FIELD LF_BASEBIS->QSUPPINV[17,1] + PROMPT 38 7 "G1" END BOOLEAN F_QSUPPH BEGIN - PROMPT 32 7 "H" - FIELD LF_BASEBIS->QSUPPINV[18,1] + PROMPT 44 7 "H" END BOOLEAN F_QSUPPI BEGIN - PROMPT 38 7 "I" - FIELD LF_BASEBIS->QSUPPINV[19,1] + PROMPT 50 7 "I" END BOOLEAN F_QSUPPL BEGIN - PROMPT 44 7 "L" - FIELD LF_BASEBIS->QSUPPINV[20,1] + PROMPT 56 7 "L" END BOOLEAN F_QSUPPN BEGIN - PROMPT 50 7 "N" - FIELD LF_BASEBIS->QSUPPINV[21,1] + PROMPT 62 7 "N" END BOOLEAN F_QSUPPP BEGIN - PROMPT 56 7 "P" - FIELD LF_BASEBIS->QSUPPINV[22,1] + PROMPT 68 7 "P" END BOOLEAN F_QSUPPQ BEGIN - PROMPT 62 7 "Q" - FIELD LF_BASEBIS->QSUPPINV[23,1] + PROMPT 2 8 "Q" END BOOLEAN F_QSUPPR BEGIN - PROMPT 68 7 "R" - FIELD LF_BASEBIS->QSUPPINV[24,1] + PROMPT 8 8 "R" END BOOLEAN F_QSUPPS BEGIN - PROMPT 2 8 "S" - FIELD LF_BASEBIS->QSUPPINV[25,1] + PROMPT 14 8 "S" END BOOLEAN F_QSUPPT BEGIN - PROMPT 8 8 "T" - FIELD LF_BASEBIS->QSUPPINV[26,1] + PROMPT 20 8 "T" END - -TEXT DLG_NULL + +BOOLEAN F_QSUPPU BEGIN - PROMPT 1 10 "mediante n. " -END - -NUMBER F_NSUPPM 4 -BEGIN - PROMPT 13 10 "" - FIELD LF_BASEBIS->NSUPPM -END - -TEXT DLG_NULL -BEGIN - PROMPT 19 10 "supporti magnetici." -END - + PROMPT 26 8 "U" +END + ENDPAGE ENDMASK diff --git a/m770/774.cpp b/m770/774.cpp index a1c1505a2..67dd774bd 100755 --- a/m770/774.cpp +++ b/m770/774.cpp @@ -20,6 +20,7 @@ int main(int argc,char** argv) default: error_box(usage, argv[0]) ; } + exit(0); return 0; } diff --git a/m770/774200.cpp b/m770/774200.cpp index 2aa240cf2..19c393f35 100755 --- a/m770/774200.cpp +++ b/m770/774200.cpp @@ -18,7 +18,6 @@ // #include #include -#include #include #include #include @@ -26,6 +25,8 @@ #include #include #include +#include + #include "774200.h" #include "quadroa.h" #include "quadroa3.h" @@ -56,18 +57,15 @@ HIDDEN TRiporti* this_riporti = NULL; HIDDEN TString80 __tmp; // Costanti usate per il calcolo dei fogli compilati -HIDDEN const int QE2_FISICHE_PER_FOGLIO = 16; -HIDDEN const int QE2_NOFISICHE_PER_FOGLIO = 9; -HIDDEN const int QGD_FISICHE_PER_FOGLIO = 5; -HIDDEN const int QGD_NOFISICHE_PER_FOGLIO = 6; -HIDDEN const int QD1_FISICHE_PER_FOGLIO = 24; -HIDDEN const int QD1_NOFISICHE_PER_FOGLIO = 8; -HIDDEN const int QD_FISICHE_PER_FOGLIO = 18; -HIDDEN const int QD_NOFISICHE_PER_FOGLIO = 6; -HIDDEN const int QE_FISICHE_PER_FOGLIO = 26; -HIDDEN const int QE_NOFISICHE_PER_FOGLIO = 8; -HIDDEN const int QE1_PERCIPIENTI_PER_FOGLIO = 25; -HIDDEN const int QE1_RIGHE_PROSPETTO = 17; +const int QC_PERCIPIENTI_PER_FOGLIO = 27; +const int QD_PERCIPIENTI_PER_FOGLIO = 22; +const int QDB_PERCIPIENTI_PER_FOGLIO = 22; +const int QD1_PERCIPIENTI_PER_FOGLIO = 27; +const int QE_PERCIPIENTI_PER_FOGLIO = 27; +const int QE1_PERCIPIENTI_PER_FOGLIO = 25; +const int QE2_PERCIPIENTI_PER_FOGLIO = 13; +const int QGD_FISICHE_PER_FOGLIO = 5; +const int QGD_NOFISICHE_PER_FOGLIO = 6; HIDDEN long fogli_compilati(const long fisiche, const long nofisiche, const int fisiche_x_foglio, const int nofisiche_x_foglio); HIDDEN const char* build_fill_string(TString& qcomp); @@ -130,7 +128,7 @@ bool TRiporta_quadri::create() { TApplication::create(); _riporta = new TRiporti; - _msk = new TMask("774200a"); + _msk = new TMask("774200a"); _msk->set_handler(F_CODDITTA, codditta_handler); dispatch_e_menu (BAR_ITEM(1)); return TRUE; @@ -153,13 +151,182 @@ int riporti_dich(int argc, char* argv[]) const char* build_fill_string(TString& qcomp) { // NB cambiare qui il numero dei quadri - const int NUM_QUADRI = 25; // sono 26 posizioni perche' parte da 0 + const int NUM_QUADRI = 28; // sono 29 posizioni perche' parte da 0 const int agg = NUM_QUADRI - qcomp.len(); __tmp.cut(agg); __tmp.fill(' ', agg); return __tmp; } +/////////////////////////////////////////////////////////// +// TConta_persone +/////////////////////////////////////////////////////////// + +class TConta_persone +{ + TRelation _rel; + TLocalisamfile _base, _basebis; + long _firm; + TRectype _totale, _totale_f, _totale_g; + long _righe, _fisici, _giuridici; + long _fisici_distinti, _giuridici_distinti; + +public: + void sum(TRectype& dst, const TRectype& src) const; + + int read_base(const long dich); + long compute(); + TLocalisamfile& base() { return _base; } + int read_basebis(const long dich); + TLocalisamfile& basebis() { return _basebis; } + + long persone_fisiche() const { return _fisici; } + long persone_giuridiche() const { return _giuridici; } + long righe() const { return _righe; } + + long persone_fisiche_distinte() const { return _fisici_distinti; } + long persone_giuridiche_distinte() const { return _giuridici_distinti; } + long persone_distinte() const { return _fisici_distinti + _giuridici_distinti; } + + const TRectype& totale_fisiche() const { return _totale_f; } + const TRectype& totale_giuridiche() const { return _totale_f; } + const TRectype& totale() const { return _totale; } + + int fogli_compilati(int fis, int giu = 0) const; + + TConta_persone(int logicnum, long firm); +}; + +TConta_persone::TConta_persone(int logicnum, long firm) + : _rel(logicnum), _firm(firm), + _totale(logicnum), _totale_f(logicnum), _totale_g(logicnum), + _base(LF_BASE), _basebis(LF_BASEBIS) +{ +} + +void TConta_persone::sum(TRectype& dst, const TRectype& src) const +{ + for (int i = dst.items()-1; i >= 0; i--) + { + const char* name = dst.fieldname(i); + if (dst.type(name) == _realfld && dst.length(name) >= 9) + { + real num = dst.get_real(name); + num += src.get_real(name); + dst.put(name, num); + } + } +} + +int TConta_persone::read_base(const long dich) +{ + _base.setkey(1); + _base.zero(); + if (dich) + { + _base.put("TIPOQUA", COD_QUA_I_DIC); + _base.put(BSE_CODDITTA, dich); + } + else + _base.put(BSE_CODDITTA, _firm); + + int err = _base.read(_isequal, _lock); + if (err != NOERR) + error_box("Immpossibile aggiornare la dichiarazione della ditta %ld.", + dich ? dich : _firm); + return err; +} + +int TConta_persone::read_basebis(const long dich) +{ + _basebis.setkey(1); + _basebis.zero(); + if (dich) + { + _basebis.put("TIPOQUA", COD_QUA_I_DIC); + _basebis.put(BSE_CODDITTA, dich); + } + else + _basebis.put(BSE_CODDITTA, _firm); + + int err = _basebis.read(_isequal, _lock); + if (err != NOERR) + error_box("Immpossibile aggiornare la dichiarazione della ditta %ld.", + dich ? dich : _firm); + return err; +} + +long TConta_persone::compute() +{ + TWait_cursor hourglass; + TString80 str; + + str.format("CODDITTA=%ld", _firm); + TCursor cur(&_rel, str); + _righe = cur.items(); + + str.cut(0); + str << "Calcolo riporti del " << _rel.lfile().description() + << "della ditta " << _firm; + + TProgind pi(_righe, str, FALSE, TRUE, 60); + + TAssoc_array fisici, giuridici; + + _totale_f.zero(); + _totale_g.zero(); + + TRectype& curr = cur.curr(); + long i; + for (i = 0, cur = 0; i < _righe; i++, ++cur) + { + pi.addstatus(1); + char tipoa = curr.get_char("TIPOA"); + const TString& cod = curr.get("CODANAGR"); + if (tipoa == 'F') + { + _fisici++; + fisici.add(cod); + sum(_totale_f, curr); + } + else + { + _giuridici++; + giuridici.add(cod); + sum(_totale_g, curr); + } + } + + _totale = _totale_f; + sum(_totale, _totale_g); + + _fisici_distinti = fisici.items(); + _giuridici_distinti = giuridici.items(); + + return _righe; +} + +int TConta_persone::fogli_compilati(int fis, int giu) const +{ + int fogli = 0; + if (_righe > 0) + { + if (giu > 0) + { + int fogli_fis = int((_fisici - 1) / fis + (_fisici > 0)); + int fogli_giu = int((_giuridici - 1) / giu + (_giuridici > 0)); + fogli = fogli_fis > fogli_giu ? fogli_fis : fogli_giu; + } + else + fogli = int((_righe - 1) / fis + 1); + } + return fogli; +} + +/////////////////////////////////////////////////////////// +// TRiporti +/////////////////////////////////////////////////////////// + void TRiporti::setta_flag_quadri_comp(const long codditta, const int quadro, const bool almeno_una_riga, TLocalisamfile& basebis, const long dich) { /* @@ -525,6 +692,9 @@ bool TRiporti::set(const TString& quadro, int anno, const long codditta, const l _codditta = codditta ? codditta : get_firm_770(); _annodic = anno ? anno : anno_770(); _quadro = quadro; + + // Filtro magico uguale per tutti + filt.format("CODDITTA=%ld", _codditta); this_riporti = this; @@ -594,56 +764,37 @@ bool TRiporti::set(const TString& quadro, int anno, const long codditta, const l if (quadro == "C" || quadro == "*") { - rel = new TRelation (LF_QUAC); - filt.format("CODDITTA=%ld", _codditta); - cur = new TCursor(rel,filt,1); - calcola_riporti_C (cur, dichiarante); - delete cur; delete rel; + calcola_riporti_C(dichiarante); } if (quadro == "D" || quadro == "*") { - rel = new TRelation (LF_QUAD); - filt.format("CODDITTA=%ld", _codditta); - cur = new TCursor(rel,filt,1); - calcola_riporti_D (cur, dichiarante); - delete cur; delete rel; + calcola_riporti_D(dichiarante); + } + + if (quadro == "DB" || quadro == "*") + { + calcola_riporti_Dbis(dichiarante); } if (quadro == "D1" || quadro == "*") { - rel = new TRelation (LF_QUAD1); - filt.format("CODDITTA=%ld", _codditta); - cur = new TCursor(rel,filt,1); - calcola_riporti_D1 (cur, dichiarante); - delete cur; delete rel; + calcola_riporti_D1(dichiarante); } if (quadro == "E" || quadro == "*") { - rel = new TRelation (LF_QUAE); - filt.format("CODDITTA=%ld", _codditta); - cur = new TCursor(rel,filt,1); - calcola_riporti_E (cur, dichiarante); - delete cur; delete rel; + calcola_riporti_E(dichiarante); } if (quadro == "E1" || quadro == "*") { - rel = new TRelation (LF_QUAE1); - filt.format("CODDITTA=%ld", _codditta); - cur = new TCursor(rel,filt,1); - calcola_riporti_E1 (cur, dichiarante); - delete cur; delete rel; + calcola_riporti_E1(dichiarante); } if (quadro == "E2" || quadro == "*") { - rel = new TRelation (LF_QUAE2); - filt.format("CODDITTA=%ld", _codditta); - cur = new TCursor(rel,filt,1); - calcola_riporti_E2 (cur, dichiarante); - delete cur; delete rel; + calcola_riporti_E2(dichiarante); } if (quadro == "F" || quadro == "*") @@ -1018,531 +1169,182 @@ void TRiporti::calcola_riporti_H(TCursor* cur, const long dich) warning_box("Dichiarazione non presente. Impossibile registrare i riporti"); } -const int NUM_PERC_C = 36; +void TRiporti::calcola_riporti_C(const long dich) +{ + TConta_persone conta(LF_QUAC, _codditta); + int err = conta.read_base(dich); + if (err == NOERR) + { + conta.compute(); -void TRiporti::calcola_riporti_C(TCursor* cur, const long dich) -{ - TLocalisamfile base (LF_BASE); - real totale,somme,ritenute,rTotCSSN; - bool almeno_una_riga = FALSE; - long percipienti=0L; - - totale = ZERO; - somme = ZERO; - ritenute = ZERO; - rTotCSSN = ZERO; - - (*cur) = 0L; - - TRecnotype items = cur->items(); -// if (items == 0L) return; - TString scritta(60); - scritta.format("Calcolo riporti del quadro C per la ditta %ld", _codditta); - - TProgind progn(items, scritta, FALSE, TRUE); - - char tipoap = 'Z'; - long codanagrp = -1; - - for (int i = 0; i < items; i++, ++(*cur)) - { - char tipoa = cur->curr().get_char(QUC_TIPOA); - long codanagr = cur->curr().get_long(QUC_CODANAGR); - - if ( (tipoa != tipoap) || (codanagr != codanagrp) ) - percipienti++; - - tipoap = tipoa; - codanagrp = codanagr; - - totale += cur->curr().get_real(QUC_TOTALE); - somme += cur->curr().get_real(QUC_SOMME); - ritenute += cur->curr().get_real(QUC_RITENUTE); - rTotCSSN += cur->curr().get_real(QUC_CONTSSN); + const TRectype& totale = conta.totale(); + TRectype& base = conta.base().curr(); + base.put(BSE_C0NFCOM, conta.fogli_compilati(QC_PERCIPIENTI_PER_FOGLIO)); + base.put(BSE_C0NLASS, conta.persone_distinte()); + base.put(BSE_C0ACTOT, totale.get("AMMLORDO")); + base.put(BSE_C0CONTSSN, totale.get("CONTROBB")); + base.put(BSE_C0SNSRIT, totale.get("SOMNONSOGG")); + base.put(BSE_C0TOTIMP, totale.get("IMPONIBILE")); + base.put(BSE_C0ROPE, totale.get("IMPOSTA")); + base.put(BSE_C0TOTDET, totale.get("TOTDET")); + base.put(BSE_C0RITOPE, totale.get("RITENUTE")); + conta.base().rewrite(); - if (!almeno_una_riga) - almeno_una_riga = TRUE; - - progn.addstatus(1); - } - - long fogli = percipienti / NUM_PERC_C; - if (percipienti % NUM_PERC_C) - fogli++; - - base.zero(); - if (dich) - { - base.put("TIPOQUA", COD_QUA_I_DIC); - base.put(BSE_CODDITTA, dich); - } - else - base.put(BSE_CODDITTA, _codditta); - - if (base.read(_isequal,_lock) == NOERR) - { - base.put(BSE_C0NFCOM, fogli); - base.put(BSE_C0NLASS, (long)percipienti); - base.put(BSE_C0ACTOT, totale); - base.put(BSE_C0SNSRIT, somme); - base.put(BSE_C0ROPE, ritenute); - base.put(BSE_C0CONTSSN, rTotCSSN); - base.rewrite(); - TLocalisamfile basebis(LF_BASEBIS); - basebis.setkey(1); - basebis.zero(); - basebis.put(BSE_CODDITTA, _codditta); - if (basebis.read(_isequal, _lock) == NOERR) - setta_flag_quadri_comp(_codditta, C, almeno_una_riga, basebis, dich); - else - warning_box("Lock fallito in calcola_riporti C"); + err = conta.read_basebis(0); + if (err == NOERR) + setta_flag_quadri_comp(_codditta, C, conta.righe() > 0, conta.basebis(), dich); } - else - warning_box("Dichiarazione non presente. Impossibile registrare i riporti"); } -void TRiporti::calcola_riporti_D(TCursor* cur, const long dich) +void TRiporti::calcola_riporti_D(const long dich) { - TLocalisamfile base (LF_BASE); - real totale,somme,ritenute; - bool almeno_una_riga = FALSE; - int percipienti; - int fisiche,giuridiche; + TConta_persone conta(LF_QUAD, _codditta); + int err = conta.read_base(dich); + if (err == NOERR) + { + conta.compute(); - percipienti = 0; - fisiche = 0; - giuridiche = 0; - - totale = ZERO; - somme = ZERO; - ritenute = ZERO; - - (*cur) = 0L; - - TRecnotype items = cur->items(); -// if (items == 0L) return; - TString scritta(60); - scritta.format("Calcolo riporti del quadro D per la ditta %ld", _codditta); - - TProgind progn(items, scritta, FALSE, TRUE); - - char tipoap = 'Z'; - long codanagrp = -1; - - for (int i = 0; i < items; i++, ++(*cur)) - { - char tipoa = cur->curr().get_char(QUD_TIPOA); - long codanagr = cur->curr().get_long(QUD_CODANAGR); - - if ( (tipoa != tipoap) || (codanagr != codanagrp) ) - percipienti++; - - tipoap = tipoa; - codanagrp = codanagr; - - if (tipoa == 'F') - fisiche++; - else - if (tipoa == 'G') - giuridiche++; - - totale += cur->curr().get_real(QUD_TOTALE); - somme += cur->curr().get_real(QUD_SOMME); - ritenute += cur->curr().get_real(QUD_IMPORTO); - - if (!almeno_una_riga) - almeno_una_riga = TRUE; - - progn.addstatus(1); + const TRectype& totale = conta.totale(); + TRectype& base = conta.base().curr(); + + base.put(BSE_D0NFCOM, conta.fogli_compilati(QD_PERCIPIENTI_PER_FOGLIO)); + base.put(BSE_D0NLAUT, conta.persone_distinte()); + base.put(BSE_D0ACTOT, totale.get("TOTALE")); + base.put(BSE_D0SNSRIT, totale.get("SOMME")); + base.put(BSE_D0NSRITRC, totale.get("SOMREGCONV")); + base.put(BSE_D0ROPE, totale.get("IMPORTO")); + conta.base().rewrite(); + + err = conta.read_basebis(0); + if (err == NOERR) + setta_flag_quadri_comp(_codditta, D, conta.righe() > 0, conta.basebis(), dich); } - - const long fogli = fogli_compilati(fisiche,giuridiche,QD_FISICHE_PER_FOGLIO,QD_NOFISICHE_PER_FOGLIO); - - base.setkey(1); - base.zero(); - if (dich) - { - base.put("TIPOQUA", COD_QUA_I_DIC); - base.put(BSE_CODDITTA, dich); - } - else - base.put(BSE_CODDITTA, _codditta); - - if (base.read(_isequal,_lock) == NOERR) - { - base.put(BSE_D0NFCOM, fogli); - base.put(BSE_D0NLAUT, (long)percipienti); - base.put(BSE_D0ACTOT, totale); - base.put(BSE_D0SNSRIT, somme); - base.put(BSE_D0ROPE, ritenute); - base.rewrite(); - TLocalisamfile basebis(LF_BASEBIS); - basebis.setkey(1); - basebis.zero(); - basebis.put(BSE_CODDITTA, _codditta); - if (basebis.read(_isequal, _lock) == NOERR) - setta_flag_quadri_comp(_codditta, D, almeno_una_riga, basebis, dich); - else - warning_box("Lock fallito in calcola_riporti D"); - } - else - warning_box("Dichiarazione non presente. Impossibile registrare i riporti"); } -void TRiporti::calcola_riporti_D1(TCursor* cur, const long dich) +void TRiporti::calcola_riporti_Dbis(const long dich) { - TLocalisamfile base (LF_BASE); - real totale,somme,importo; - bool almeno_una_riga = FALSE; - int percipienti,fisiche,giuridiche; + TConta_persone conta(LF_QUADBIS, _codditta); + int err = conta.read_basebis(dich); + if (err == NOERR) + { + conta.compute(); - percipienti = 0; - fisiche = 0; - giuridiche = 0; - - totale = ZERO; - somme = ZERO; - importo = ZERO; - - (*cur) = 0L; - - TRecnotype items = cur->items(); - TString scritta(60); - scritta.format("Calcolo riporti del quadro D1 per la ditta %ld", _codditta); - - TProgind progn(items, scritta, FALSE, TRUE); - - char tipoap = 'Z'; - long codanagrp = -1; - - for (int i = 0; i < items; i++, ++(*cur)) - { - char tipoa = cur->curr().get_char(QD1_TIPOA); - long codanagr = cur->curr().get_long(QD1_CODANAGR); - - if ( (tipoa != tipoap) || (codanagr != codanagrp) ) - percipienti++; - - tipoap = tipoa; - codanagrp = codanagr; - - if (tipoa == 'F') - fisiche++; - else - if (tipoa == 'G') - giuridiche++; - - totale += cur->curr().get_real(QD1_TOTALE); - somme += (cur->curr().get_real(QD1_QUOTAPRO)) + (cur->curr().get_real(QD1_SPESEANT)); - importo += cur->curr().get_real(QD1_IMPORTO); - - if (!almeno_una_riga) - almeno_una_riga = TRUE; - - progn.addstatus(1); + const TRectype& totale = conta.totale(); + TRectype& basebis = conta.basebis().curr(); + + basebis.put(BSE_DBAMMCOR, totale.get("TOTALE")); + basebis.put(BSE_DBNSRIT, totale.get("SOMME")); + basebis.put(BSE_DBNSRITRC, totale.get("IMPONIBILE")); + basebis.put(BSE_DBRITOPE, totale.get("IMPORTO")); + conta.basebis().rewrite(); + + err = conta.read_basebis(0); + if (err == NOERR) + setta_flag_quadri_comp(_codditta, DB, conta.righe() > 0, conta.basebis(), dich); } - - const long fogli = fogli_compilati(fisiche,giuridiche,QD1_FISICHE_PER_FOGLIO,QD1_NOFISICHE_PER_FOGLIO); - - base.setkey(1); - base.zero(); - if (dich) - { - base.put("TIPOQUA", COD_QUA_I_DIC); - base.put(BSE_CODDITTA, dich); - } - else - base.put(BSE_CODDITTA, _codditta); - - if (base.read(_isequal,_lock) == NOERR) - { - base.put(BSE_D1NFCOM, fogli); - base.put(BSE_D1NPER, (long)percipienti); - base.put(BSE_D1TACOR, totale); - base.put(BSE_D1SNSRIT, somme); - base.put(BSE_D1ROPE, importo); - base.rewrite(); - TLocalisamfile basebis(LF_BASEBIS); - basebis.setkey(1); - basebis.zero(); - basebis.put(BSE_CODDITTA, _codditta); - if (basebis.read(_isequal, _lock) == NOERR) - setta_flag_quadri_comp(_codditta, D1, almeno_una_riga,basebis,dich); - else - warning_box("Lock fallito in calcola_riporti D1"); - } - else - warning_box("Dichiarazione non presente. Impossibile registrare i riporti"); } -void TRiporti::calcola_riporti_E(TCursor* cur, const long dich) +void TRiporti::calcola_riporti_D1(const long dich) { - TLocalisamfile basebis (LF_BASEBIS); - real imponibile,somme,ritenute; - bool almeno_una_riga = FALSE; - int percipienti,fisiche,giuridiche; + TConta_persone conta(LF_QUAD1, _codditta); + int err = conta.read_base(dich); + if (err == NOERR) + { + conta.compute(); - percipienti = 0; - fisiche = 0; - giuridiche = 0; - - imponibile = ZERO; - somme = ZERO; - ritenute = ZERO; - - (*cur) = 0L; - - TRecnotype items = cur->items(); -// if (items == 0L) return; - TString scritta(60); - scritta.format("Calcolo riporti del quadro E per la ditta %ld", _codditta); - - TProgind progn(items, scritta, FALSE, TRUE); - - char tipoap = 'Z'; - long codanagrp = -1; - - for (int i = 0; i < items; i++, ++(*cur)) - { - char tipoa = cur->curr().get_char(QUE_TIPOA); - long codanagr = cur->curr().get_long(QUE_CODANAGR); - - if ( (tipoa != tipoap) || (codanagr != codanagrp) ) - percipienti++; - - tipoap = tipoa; - codanagrp = codanagr; - - if (tipoa == 'F') - fisiche++; - else - if (tipoa == 'G') - giuridiche++; - - imponibile += cur->curr().get_real(QUE_IMPONIBILE); - somme += cur->curr().get_real(QUE_SOMME); - ritenute += cur->curr().get_real(QUE_IMPORTO); - - if (!almeno_una_riga) - almeno_una_riga = TRUE; - - progn.addstatus(1); + const TRectype& totale = conta.totale(); + TRectype& base = conta.base().curr(); + base.put(BSE_D1NFCOM, conta.fogli_compilati(QD1_PERCIPIENTI_PER_FOGLIO)); + base.put(BSE_D1NPER, conta.persone_distinte()); + base.put(BSE_D1TACOR, totale.get("TOTALE")); + base.put(BSE_D1SNSRIT, totale.get("SPESEANT")); + base.put(BSE_D1ROPE, totale.get("IMPORTO")); + conta.base().rewrite(); + + err = conta.read_basebis(0); + if (err == NOERR) + setta_flag_quadri_comp(_codditta, D1, conta.righe() > 0, conta.basebis(), dich); } - - const long fogli = fogli_compilati(fisiche,giuridiche,QE_FISICHE_PER_FOGLIO,QE_NOFISICHE_PER_FOGLIO); - - basebis.setkey(1); - basebis.zero(); - if (dich) - { - basebis.put("TIPOQUA", COD_QUA_I_DIC); - basebis.put(BSB_CODDITTA, dich); - } - else - basebis.put(BSB_CODDITTA, _codditta); - - if (basebis.read(_isequal,_lock) == NOERR) - { - basebis.put(BSB_E0NFCOM, fogli); - basebis.put(BSB_E0NPER, (long)percipienti); - basebis.put(BSB_E0AIMP, imponibile); - basebis.put(BSB_E0SNSRIT, somme); - basebis.put(BSB_E0ROPE, ritenute); - basebis.rewrite(); - setta_flag_quadri_comp(_codditta, E, almeno_una_riga,basebis,dich); - } - else - warning_box("Dichiarazione non presente. Impossibile registrare i riporti"); } -void TRiporti::calcola_riporti_E1(TCursor* cur, const long dich) +void TRiporti::calcola_riporti_E(const long dich) { - TLocalisamfile basebis (LF_BASEBIS); - TRelation* relp; - TCursor* curp; - TString16 filt; - real ammontare,somme,ritenute; - real comp,impo,rite; - bool almeno_una_riga = FALSE; - int percipienti,righep; + TConta_persone conta(LF_QUAE, _codditta); + int err = conta.read_basebis(dich); + if (err == NOERR) + { + conta.compute(); - percipienti = 0; - righep = 0; - - ammontare = ZERO; - somme = ZERO; - ritenute = ZERO; - - comp = ZERO; - impo = ZERO; - rite = ZERO; - - (*cur) = 0L; - - TRecnotype items = cur->items(); -// if (items == 0L) return; - TString scritta(60); - scritta.format("Calcolo riporti del quadro E1 per la ditta %ld", _codditta); - - TProgind progn(items, scritta, FALSE, TRUE); - - char tipoap = 'Z'; - long codanagrp = -1; - - for (int i = 0; i < items; i++, ++(*cur)) - { - char tipoa = cur->curr().get_char(QE1_TIPOA); - long codanagr = cur->curr().get_long(QE1_CODANAGR); - - if ( (tipoa != tipoap) || (codanagr != codanagrp) ) - percipienti++; - - tipoap = tipoa; - codanagrp = codanagr; - - ammontare += cur->curr().get_real(QE1_AMMONTARE); - somme += cur->curr().get_real(QE1_SOMME); - ritenute += cur->curr().get_real(QE1_IMPORTO); - - if (!almeno_una_riga) - almeno_una_riga = TRUE; - - progn.addstatus(1); + const TRectype& totale = conta.totale(); + TRectype& base = conta.basebis().curr(); + base.put(BSB_E0NFCOM, conta.fogli_compilati(QE_PERCIPIENTI_PER_FOGLIO)); + base.put(BSB_E0NPER, conta.persone_distinte()); + base.put(BSB_E0AIMP, totale.get(QUE_IMPONIBILE)); + base.put(BSB_E0SNSRIT, totale.get(QUE_SOMME)); + base.put(BSB_E0ROPE, totale.get(QUE_IMPORTO)); + conta.basebis().rewrite(); + + err = conta.read_basebis(0); + if (err == NOERR) + setta_flag_quadri_comp(_codditta, E, conta.righe() > 0, conta.basebis(), dich); } - - relp = new TRelation (LF_PROSPE1); - filt.format("CODDITTA=%ld", _codditta); - curp = new TCursor(relp,filt,1); - (*curp) = 0L; - TRecnotype itemp = curp->items(); - scritta.format("Calcolo riporti del prospetto del quadro E1 per la ditta %ld", _codditta); - TProgind prognp(itemp, scritta, FALSE, TRUE); - - for (int j = 0; j < itemp; j++, ++(*curp)) - { - righep++; - - comp += curp->curr().get_real(PRE_COMPENSO); - impo += curp->curr().get_real(PRE_IMPONIBILE); - rite += curp->curr().get_real(PRE_RITENUTA); - - if (!almeno_una_riga) - almeno_una_riga = TRUE; - - prognp.addstatus(1); - } - - delete curp; - delete relp; - - const long fogli = fogli_compilati(percipienti,righep,QE1_PERCIPIENTI_PER_FOGLIO,QE1_RIGHE_PROSPETTO); - - basebis.setkey(1); - basebis.zero(); - if (dich) - { - basebis.put("TIPOQUA", COD_QUA_I_DIC); - basebis.put(BSB_CODDITTA, dich); - } - else - basebis.put(BSB_CODDITTA, _codditta); - - if (basebis.read(_isequal, _lock) == NOERR) - { - basebis.put(BSB_E1NFCOM, fogli); - basebis.put(BSB_E1NPER, (long)percipienti); - basebis.put(BSB_E1SCOR, somme); - basebis.put(BSB_E1BCOM, ammontare ); - basebis.put(BSB_E1ROPE, ritenute ); - basebis.put(BSB_E1ACOM, comp); - basebis.put(BSB_E1BCOM2, impo); - basebis.put(BSB_E1ROPE2, rite); - basebis.rewrite(); - setta_flag_quadri_comp(_codditta, E1, almeno_una_riga,basebis,dich); - } - else - warning_box("Dichiarazione non presente. Impossibile registrare i riporti"); } -void TRiporti::calcola_riporti_E2(TCursor* cur, const long dich) +void TRiporti::calcola_riporti_E1(const long dich) { - TLocalisamfile basebis (LF_BASEBIS); - long fisiche, no_fisiche; - long fogli_comp; - real soggrit, rope; - real comp,impo,rite; - bool almeno_una_riga = FALSE; - double percipienti; - - fisiche = no_fisiche = fogli_comp = 0L; - percipienti = 0.00; - - soggrit = ZERO; - rope = ZERO; - - comp = ZERO; - impo = ZERO; - rite = ZERO; - - (*cur) = 0L; - - TRecnotype items = cur->items(); - TString scritta(60); - scritta.format("Calcolo riporti del quadro E2 per la ditta %ld", _codditta); - - TProgind progn(items, scritta, FALSE, TRUE); - - char tipoap = 'Z'; - long codanagrp = -1; - - for (int i = 0; i < items; i++, ++(*cur)) - { - const char tipoa = cur->curr().get_char(QE2_TIPOA); - const long codanagr = cur->curr().get_long(QE2_CODANAGR); - - if ( (tipoa != tipoap) || (codanagr != codanagrp) ) - percipienti++; - - tipoap = tipoa; - codanagrp = codanagr; - - if (tipoa == 'F') - fisiche++; - else - no_fisiche++; - - soggrit += cur->curr().get_real(QE2_SOGGRIT); - rope += cur->curr().get_real(QE2_ROPE); - - if (!almeno_una_riga) - almeno_una_riga = TRUE; - - progn.addstatus(1); + TConta_persone conta(LF_QUAE1, _codditta); + int err = conta.read_basebis(dich); + if (err == NOERR) + { + TLocalisamfile prosp_e1(LF_PROSPE1); + prosp_e1.put(PRE_CODDITTA, _codditta); + TRectype tot_prosp(LF_PROSPE1); // Totale delle due righe di prospetto + for (int err = prosp_e1.read(_isgteq); err == NOERR; err = prosp_e1.next()) + { + if (prosp_e1.get_long(PRE_CODDITTA) != _codditta) + break; + char caus = prosp_e1.get_char(PRE_CODCAUS); + if (caus == 'C' || caus == 'D') // Ignora causali dell'anno scorso + conta.sum(tot_prosp, prosp_e1.curr()); + } + + conta.compute(); + const TRectype& totale = conta.totale(); + TRectype& base = conta.basebis().curr(); + base.put(BSB_E1NFCOM, conta.fogli_compilati(QE1_PERCIPIENTI_PER_FOGLIO)); + base.put(BSB_E1NPER, conta.persone_distinte()); + base.put(BSB_E1BCOM, totale.get(QE1_AMMONTARE)); + base.put(BSB_E1SCOR, totale.get(QE1_SOMME)); + base.put(BSB_E1ROPE, totale.get(QE1_IMPORTO)); + base.put(BSB_E1ACOM, tot_prosp.get(PRE_COMPENSO)); + base.put(BSB_E1BCOM2, tot_prosp.get(PRE_IMPONIBILE)); + base.put(BSB_E1ROPE2, tot_prosp.get(PRE_RITENUTA)); + conta.basebis().rewrite(); + + err = conta.read_basebis(0); + if (err == NOERR) + setta_flag_quadri_comp(_codditta, E1, conta.righe() > 0, conta.basebis(), dich); } +} - fogli_comp = fogli_compilati(fisiche,no_fisiche,QE2_FISICHE_PER_FOGLIO,QE2_NOFISICHE_PER_FOGLIO); - - basebis.setkey(1); - basebis.zero(); - if (dich) - { - basebis.put("TIPOQUA", COD_QUA_I_DIC); - basebis.put(BSB_CODDITTA, dich); +void TRiporti::calcola_riporti_E2(const long dich) +{ + TConta_persone conta(LF_QUAE2, _codditta); + int err = conta.read_basebis(dich); + if (err == NOERR) + { + conta.compute(); + const TRectype& totale = conta.totale(); + TRectype& base = conta.basebis().curr(); + base.put(BSB_E2NFCOM, conta.fogli_compilati(QE2_PERCIPIENTI_PER_FOGLIO)); + base.put(BSB_E2NPER, conta.persone_distinte()); + base.put(BSB_E2SSRIT, totale.get(QE2_SOGGRIT)); + base.put(BSB_E2ROPE, totale.get(QE2_ROPE)); + conta.basebis().rewrite(); + err = conta.read_basebis(0); + if (err == NOERR) + setta_flag_quadri_comp(_codditta, E2, conta.righe() > 0, conta.basebis(), dich); } - else - basebis.put(BSB_CODDITTA, _codditta); - - if (basebis.read(_isequal, _lock) == NOERR) - { - basebis.put(BSB_E2NFCOM, fogli_comp); - basebis.put(BSB_E2NPER, (long)percipienti); - basebis.put(BSB_E2SSRIT, soggrit); - basebis.put(BSB_E2ROPE, rope ); - basebis.rewrite(); - setta_flag_quadri_comp(_codditta, E2, almeno_una_riga,basebis,dich); - } - else - warning_box("Dichiarazione non presente. Impossibile registrare i riporti"); } void TRiporti::calcola_riporti_F(TCursor* cur, const long dich) diff --git a/m770/774200.h b/m770/774200.h index 7c967ccbc..94f7ae10f 100755 --- a/m770/774200.h +++ b/m770/774200.h @@ -10,7 +10,7 @@ bool filter_func (const TRelation *); -enum {A,A1,A2,A3,B,B1,C,D,D1,E,E1,E2,F,F1,F2,G,G1,H,I,N,P,Q,R,S,T}; +enum {A,A1,A2,A3,B,B1,C,D,D1,E,E1,E2,F,F1,F2,G,G1,H,I,L,N,P,Q,R,S,T,AB,DB,U}; const int CAMPI_IB1 = 61; const int CAMPI_IB2 = 50; @@ -39,24 +39,24 @@ HIDDEN const char* _campi_I2[CAMPI_IB2] = { BSB_E0NFCOM,BSB_E0NPER,BSB_E0AIMP,BS BSB_H0CODLAV,BSB_H0COLDIP}; HIDDEN const char* _campi_A [CAMPI_A] = { - QUA_DENARO, QUA_NATURA, QUA_COBBDIP, QUA_COMPNETTI, - QUA_AMMLORDO, QUA_IACOBBCD, QUA_NORIT, QUA_TOTIMP, - QUA_AIENTIPREV, QUA_CCTAMMCONT, QUA_TOTIMP2, QUA_ICTOTIMP, - QUA_DETCC, QUA_DETFC, QUA_DETAF, QUA_DETLD, - QUA_TOTDET, QUA_INCDETFC, QUA_AMRIOT, QUA_AMRIODL, - QUA_ECCRITRIMB, QUA_AMMRITDOV, QUA_ERSPSAN, QUA_PRASSVI, - QUA_CONPRECO, QUA_COBBDIP2, QUA_AMMIMP, QUA_DETIMPOS, - QUA_RITESEG, QUA_SVNASSRI, QUA_AIFCSSN, QUA_CONEFF, - QUA_IMPVERS, QUA_INTERE, QUA_CSSN95CV, QUA_INTERE2, - QUA_CNEFF, QUA_RETCON, QUA_IMPRIMB, QUA_IMPVER, - QUA_IMPVER2, QUA_INTER, QUA_STSIRPEF, QUA_CONRIMB, - QUA_INTER2, QUA_CONVER2, QUA_INTER3, QUA_STSCSSN70, QUA_M730NLIQ, - QUA_CODCAAF, QUA_DETO, QUA_INTIRPEF, QUA_CONVER + QUA_DENARO, QUA_NATURA, QUA_COBBDIP, QUA_COMPNETTI, + QUA_AMMLORDO, QUA_IACOBBCD, QUA_NORIT, QUA_TOTIMP, + QUA_AIENTIPREV, QUA_CCTAMMCONT, QUA_TOTIMP2, QUA_ICTOTIMP, + QUA_DETCC, QUA_DETFC, QUA_DETAF, QUA_DETLD, + QUA_TOTDET, QUA_INCDETFC, QUA_AMRIOT, QUA_AMRIODL, + QUA_ECCRITRIMB, QUA_AMMRITDOV, QUA_ERSPSAN, QUA_PRASSVI, + QUA_CONPRECO, QUA_COBBDIP2, QUA_AMMIMP, QUA_DETIMPOS, + QUA_RITESEG, QUA_SVNASSRI, QUA_AIFCSSN, QUA_CONEFF, + QUA_IMPVERS, QUA_INTERE, QUA_CSSN95CV, QUA_INTERE2, + QUA_CNEFF, QUA_RETCON, QUA_IMPRIMB, QUA_IMPVER, + QUA_IMPVER2, QUA_INTER, QUA_STSIRPEF, QUA_CONRIMB, + QUA_INTER2, QUA_CONVER2, QUA_INTER3, QUA_STSCSSN70, QUA_M730NLIQ, + QUA_CODCAAF, QUA_DETO, QUA_INTIRPEF, QUA_CONVER }; -class TRiporti +class TRiporti : public TObject { friend bool filter_func (const TRelation *); @@ -64,9 +64,12 @@ class TRiporti int _annodic; TString16 _quadro; +protected: void setta_flag_quadri_comp (const long codditta, const int posquadro, const bool aur, TLocalisamfile& basebis, const long dich=0L); // Setta flag di compilato guardando se esistono i riporti sul quadro I void setta_flag_quadro_I (const long codditta, const long dich=0L); + + void sum(TRectype& dst, const TRectype& src) const; void calcola_riporti_A (TCursor* cur, const long dich=0L); void calcola_riporti_A1(TCursor* cur, const long dich=0L); @@ -75,12 +78,13 @@ class TRiporti void calcola_riporti_B (TCursor* cur, const long dich=0L); void calcola_riporti_B1(TCursor* cur, const long dich=0L); void calcola_riporti_H (TCursor* cur, const long dich=0L); - void calcola_riporti_C (TCursor* cur, const long dich=0L); - void calcola_riporti_D (TCursor* cur, const long dich=0L); - void calcola_riporti_D1(TCursor* cur, const long dich=0L); - void calcola_riporti_E (TCursor* cur, const long dich=0L); - void calcola_riporti_E1(TCursor* cur, const long dich=0L); - void calcola_riporti_E2(TCursor* cur, const long dich=0L); + void calcola_riporti_C (const long dich=0L); + void calcola_riporti_D (const long dich=0L); + void calcola_riporti_Dbis(const long dich=0L); + void calcola_riporti_D1(const long dich=0L); + void calcola_riporti_E (const long dich=0L); + void calcola_riporti_E1(const long dich=0L); + void calcola_riporti_E2(const long dich=0L); void calcola_riporti_F (TCursor* cur, const long dich=0L); void calcola_riporti_F1(TCursor* cur, const long dich=0L); void calcola_riporti_F2(TCursor* cur, const long dich=0L); @@ -90,7 +94,7 @@ public: bool riporta_I_globale(const long dich); bool riporti_dich(const long dich, const int anno); bool set(const TString& quadro, int anno=0, const long codditta=0L, const long dichiarante=0L); - void set_compilato(const long codditta, const int posquadro, const bool compilato); + void set_compilato(const long codditta, const int posquadro, const bool compilato); TRiporti() {} virtual ~TRiporti() {} diff --git a/m770/776100.cpp b/m770/776100.cpp index 156ae0776..7669ce671 100755 --- a/m770/776100.cpp +++ b/m770/776100.cpp @@ -24,8 +24,7 @@ #include "../ba/ba4600.h" HIDDEN TString80 __tmp; -HIDDEN const int NUM_QUADRI = 26; -HIDDEN const int QUADRO_L = 27; +HIDDEN const int NUM_QUADRI = 29; typedef enum { grassetto=0, sottolineato, piano } stile; @@ -196,7 +195,7 @@ bool TManutenzione_quadri::create() _rel->add(LF_BASEBIS, "CODDITTA=CODDITTA"); // inizializza stato precedente quadri per ottimizzazione enphasize - _qcomp_prev.spaces(NUM_QUADRI+1); + _qcomp_prev.spaces(NUM_QUADRI); load_mask(0); dispatch_e_menu (BAR_ITEM(1)); @@ -286,28 +285,34 @@ const char* TManutenzione_quadri::make_prompt(int i, stile vivid) break; case 18: __tmp << "Quadro I" ; + break; + case 19: + __tmp << "Quadro L" ; break; - case 19: + case 20: __tmp << "Quadro N" ; break; - case 20: + case 21: __tmp << "Quadro P" ; break; - case 21: + case 22: __tmp << "Quadro Q" ; break; - case 22: + case 23: __tmp << "Quadro R" ; break; - case 23: + case 24: __tmp << "Quadro S" ; break; - case 24: + case 25: __tmp << "Quadro T" ; break; - case QUADRO_L: - __tmp << "Quadro L" ; + case 26: + __tmp << "Quadro Abis"; break; + case 27: + __tmp << "Quadro Dbis"; + break; default: break; } @@ -322,7 +327,8 @@ void TManutenzione_quadri::inibith(TString& qric, TMask& m) int start_dlg = DLG_STOPREC_A; int dlg; - for (int i = 0; i < NUM_QUADRI; i++) + // quadri fino al quadro U non compreso + for (int i = 0; i < (NUM_QUADRI-1); i++) if (qric[i] == 'X') { dlg = start_dlg + (i * 2); @@ -330,7 +336,6 @@ void TManutenzione_quadri::inibith(TString& qric, TMask& m) } } -// // Metto in grassetto i quadri gia' compilati // ma solo quelli variati dal ciclo precedente // Il quadro L non ha il flag di compilato sul base. @@ -338,12 +343,10 @@ void TManutenzione_quadri::enphasize(TString& qcomp,TMask& m) { int start_dlg = DLG_NULL_A; const char* prompt; - const int L = 19; - int dlg = 0; - char qcompL; + int dlg = 0; - // quadri fino al quadro L non compreso - for (int i = 0; i < L; i++) + // quadri fino al quadro U non compreso + for (int i = 0; i < (NUM_QUADRI-1); i++) { if (qcomp[i] != _qcomp_prev[i]) { @@ -352,29 +355,6 @@ void TManutenzione_quadri::enphasize(TString& qcomp,TMask& m) m.field(dlg).set_prompt(prompt); _qcomp_prev[i] = qcomp[i]; } - } - - // quadro L - qcompL = esiste_record_L(get_firm_770(), _anno_dic) ? 'X' : ' '; - if (qcompL != _qcomp_prev[QUADRO_L]) - { - dlg = start_dlg + (i * 2); - prompt = make_prompt(QUADRO_L, qcompL == 'X' ? grassetto : piano); - m.field(dlg).set_prompt(prompt); - _qcomp_prev[QUADRO_L] = qcompL; - } - - // rimanenti quadri - for (i = L+1; i < NUM_QUADRI; i++) - { - // Controlla qcomp[i-1] perche' in QCOMP non c'e' il flag del quadro L - if (qcomp[i-1] != _qcomp_prev[i-1]) - { - int dlg = start_dlg + (i * 2); - prompt = make_prompt(i-1, qcomp[i-1] == 'X' ? grassetto : piano); - m.field(dlg).set_prompt(prompt); - _qcomp_prev[i-1] = qcomp[i-1]; - } } } diff --git a/m770/776100b.h b/m770/776100b.h index 9732ca43f..9c4ae30da 100755 --- a/m770/776100b.h +++ b/m770/776100b.h @@ -11,156 +11,163 @@ #define F_RAGDITTA 102 #define F_ANNODIC 103 -#define DLG_NULL_A 104 -#define DLG_STOPREC_A 105 -#define DLG_NULL_A1 106 -#define DLG_STOPREC_A1 107 -#define DLG_NULL_A2 108 -#define DLG_STOPREC_A2 109 -#define DLG_NULL_A3 110 -#define DLG_STOPREC_A3 111 -#define DLG_NULL_B 112 -#define DLG_STOPREC_B 113 -#define DLG_NULL_B1 114 -#define DLG_STOPREC_B1 115 -#define DLG_NULL_C 116 -#define DLG_STOPREC_C 117 -#define DLG_NULL_D 118 -#define DLG_STOPREC_D 119 -#define DLG_NULL_D1 120 -#define DLG_STOPREC_D1 121 -#define DLG_NULL_E 122 -#define DLG_STOPREC_E 123 -#define DLG_NULL_E1 124 -#define DLG_STOPREC_E1 125 -#define DLG_NULL_E2 126 -#define DLG_STOPREC_E2 127 -#define DLG_NULL_F 128 -#define DLG_STOPREC_F 129 -#define DLG_NULL_F1 130 -#define DLG_STOPREC_F1 131 -#define DLG_NULL_F2 132 -#define DLG_STOPREC_F2 133 -#define DLG_NULL_G 134 -#define DLG_STOPREC_G 135 -#define DLG_NULL_G1 136 -#define DLG_STOPREC_G1 137 -#define DLG_NULL_H 138 -#define DLG_STOPREC_H 139 -#define DLG_NULL_I 140 -#define DLG_STOPREC_I 141 -#define DLG_NULL_L 142 -#define DLG_STOPREC_L 143 -#define DLG_NULL_N 144 -#define DLG_STOPREC_N 145 -#define DLG_NULL_P 146 -#define DLG_STOPREC_P 147 -#define DLG_NULL_Q 148 -#define DLG_STOPREC_Q 149 -#define DLG_NULL_R 150 -#define DLG_STOPREC_R 151 -#define DLG_NULL_S 152 -#define DLG_STOPREC_S 153 -#define DLG_NULL_T 154 -#define DLG_STOPREC_T 155 -#define DLG_MANUTENZ 156 -#define DLG_NULL_DICH 157 -#define DLG_STOPREC_DICH 158 -#define DLG_NULL_RAPP 159 -#define DLG_STOPREC_RAPP 160 -#define DLG_NULL_SCRIT 161 -#define DLG_STOPREC_SCRIT 162 -#define DLG_NULL_CAAF 163 -#define DLG_STOPREC_CAAF 164 -#define DLG_NULL_DIRET 165 -#define DLG_STOPREC_DIRET 166 -#define DLG_NULL_CONC 167 -#define DLG_STOPREC_CONC 168 -#define DLG_NULL_DIC0 169 -#define DLG_STOPREC_DIC0 170 -#define DLG_NULL_DIC1 171 -#define DLG_STOPREC_DIC1 172 -#define DLG_NULL_SOCTRA 173 -#define DLG_STOPREC_SOCTRA 174 -#define DLG_CANCEL_MENU 175 -#define DLG_NULL_DG 176 -#define DLG_STOPREC_DG 177 -#define DLG_MANUTENZ_SOCI 178 -#define DLG_NULL_SOCI 179 -#define DLG_NULL_ST 180 -#define DLG_STOPREC_ST 181 -#define DLG_STOPREC_AD 182 -#define DLG_NULL_ST0 183 -#define DLG_STOPREC_ST0 184 -#define DLG_NULL_ST1 185 -#define DLG_STOPREC_ST1 186 -#define DLG_CANCEL_MENU_ST 187 -#define DLG_NULL_ST2 188 -#define DLG_STOPREC_ST2 189 -#define DLG_NULL_ST3 190 -#define DLG_STOPREC_ST3 191 -#define DLG_NULL_SD 192 -#define DLG_STOPREC_SD 193 -#define DLG_NULL_SD0 194 -#define DLG_STOPREC_SD0 195 -#define DLG_NULL_SD1 196 -#define DLG_STOPREC_SD1 197 -#define DLG_NULL_SD2 198 -#define DLG_STOPREC_SD2 199 -#define DLG_CANCEL_MENU_SD 200 -#define DLG_STOPREC_IR 201 -#define RILEGGI_QUADRI 202 -#define DLG_NULL_STQD 203 -#define DLG_STOPREC_STQD 204 -#define T_BASE 205 -#define B_BASE 206 -#define T_LAGG 207 -#define B_LAGG 208 -#define T_NAGG 209 -#define B_NAGG 210 -#define T_ALLSOC 211 -#define B_ALLSOC 212 -#define T_ALLG 213 -#define B_ALLG 214 -#define T_BUST 215 -#define B_BUST 216 -#define T_A 217 -#define B_A 218 -#define T_A1 219 -#define B_A1 220 -#define T_A2 221 -#define B_A2 222 -#define T_A3 223 -#define B_A3 224 -#define T_B 225 -#define B_B 226 -#define T_B1 227 -#define B_B1 228 -#define T_C 229 -#define B_C 230 -#define T_D 231 -#define B_D 232 -#define T_D1 233 -#define B_D1 234 -#define T_E 235 -#define B_E 236 -#define T_E1 237 -#define B_E1 238 -#define T_E2 239 -#define B_E2 240 -#define T_F 241 -#define B_F 242 -#define T_F1 243 -#define B_F1 244 -#define T_F2 245 -#define B_F2 246 -#define T_G 247 -#define B_G 248 -#define T_G1 249 -#define B_G1 250 -#define T_H 251 -#define B_H 252 -#define DLG_STOPREC_SP 253 -#define DLG_CANCEL_MENUSTQ 254 +#define DLG_MANUTENZ 110 +#define DLG_NULL_A 111 +#define DLG_STOPREC_A 112 +#define DLG_NULL_A1 113 +#define DLG_STOPREC_A1 114 +#define DLG_NULL_A2 115 +#define DLG_STOPREC_A2 116 +#define DLG_NULL_A3 117 +#define DLG_STOPREC_A3 118 +#define DLG_NULL_B 119 +#define DLG_STOPREC_B 120 +#define DLG_NULL_B1 121 +#define DLG_STOPREC_B1 122 +#define DLG_NULL_C 123 +#define DLG_STOPREC_C 124 +#define DLG_NULL_D 125 +#define DLG_STOPREC_D 126 +#define DLG_NULL_D1 127 +#define DLG_STOPREC_D1 128 +#define DLG_NULL_E 129 +#define DLG_STOPREC_E 130 +#define DLG_NULL_E1 131 +#define DLG_STOPREC_E1 132 +#define DLG_NULL_E2 133 +#define DLG_STOPREC_E2 134 +#define DLG_NULL_F 135 +#define DLG_STOPREC_F 136 +#define DLG_NULL_F1 137 +#define DLG_STOPREC_F1 138 +#define DLG_NULL_F2 139 +#define DLG_STOPREC_F2 140 +#define DLG_NULL_G 141 +#define DLG_STOPREC_G 142 +#define DLG_NULL_G1 143 +#define DLG_STOPREC_G1 144 +#define DLG_NULL_H 145 +#define DLG_STOPREC_H 146 +#define DLG_NULL_I 147 +#define DLG_STOPREC_I 148 +#define DLG_NULL_L 149 +#define DLG_STOPREC_L 150 +#define DLG_NULL_N 151 +#define DLG_STOPREC_N 152 +#define DLG_NULL_P 153 +#define DLG_STOPREC_P 154 +#define DLG_NULL_Q 155 +#define DLG_STOPREC_Q 156 +#define DLG_NULL_R 157 +#define DLG_STOPREC_R 158 +#define DLG_NULL_S 159 +#define DLG_STOPREC_S 160 +#define DLG_NULL_T 161 +#define DLG_STOPREC_T 162 +#define DLG_NULL_AB 163 +#define DLG_STOPREC_AB 164 +#define DLG_NULL_DB 165 +#define DLG_STOPREC_DB 166 +#define DLG_NULL_U 167 +#define DLG_STOPREC_U 168 + +#define DLG_NULL_DICH 200 +#define DLG_STOPREC_DICH 201 +#define DLG_NULL_RAPP 202 +#define DLG_STOPREC_RAPP 203 +#define DLG_NULL_SCRIT 204 +#define DLG_STOPREC_SCRIT 205 +#define DLG_NULL_CAAF 206 +#define DLG_STOPREC_CAAF 207 +#define DLG_NULL_DIRET 208 +#define DLG_STOPREC_DIRET 209 +#define DLG_NULL_CONC 210 +#define DLG_STOPREC_CONC 211 +#define DLG_NULL_DIC0 212 +#define DLG_STOPREC_DIC0 213 +#define DLG_NULL_DIC1 214 +#define DLG_STOPREC_DIC1 215 +#define DLG_NULL_SOCTRA 216 +#define DLG_STOPREC_SOCTRA 217 +#define DLG_CANCEL_MENU 218 +#define DLG_NULL_DG 219 +#define DLG_STOPREC_DG 220 +#define DLG_MANUTENZ_SOCI 221 +#define DLG_NULL_SOCI 222 +#define DLG_NULL_ST 223 +#define DLG_STOPREC_ST 224 +#define DLG_STOPREC_AD 225 +#define DLG_NULL_ST0 226 +#define DLG_STOPREC_ST0 227 +#define DLG_NULL_ST1 228 +#define DLG_STOPREC_ST1 229 +#define DLG_CANCEL_MENU_ST 230 +#define DLG_NULL_ST2 231 +#define DLG_STOPREC_ST2 232 +#define DLG_NULL_ST3 233 +#define DLG_STOPREC_ST3 234 +#define DLG_NULL_SD 235 +#define DLG_STOPREC_SD 236 +#define DLG_NULL_SD0 237 +#define DLG_STOPREC_SD0 238 +#define DLG_NULL_SD1 239 +#define DLG_STOPREC_SD1 240 +#define DLG_NULL_SD2 241 +#define DLG_STOPREC_SD2 242 +#define DLG_CANCEL_MENU_SD 243 +#define DLG_STOPREC_IR 244 +#define RILEGGI_QUADRI 245 +#define DLG_NULL_STQD 246 +#define DLG_STOPREC_STQD 247 +#define T_BASE 248 +#define B_BASE 249 +#define T_LAGG 250 +#define B_LAGG 251 +#define T_NAGG 252 +#define B_NAGG 253 +#define T_ALLSOC 254 +#define B_ALLSOC 255 +#define T_ALLG 256 +#define B_ALLG 257 +#define T_BUST 258 +#define B_BUST 259 +#define T_A 260 +#define B_A 261 +#define T_A1 262 +#define B_A1 263 +#define T_A2 264 +#define B_A2 265 +#define T_A3 266 +#define B_A3 267 +#define T_B 268 +#define B_B 269 +#define T_B1 270 +#define B_B1 271 +#define T_C 272 +#define B_C 273 +#define T_D 274 +#define B_D 275 +#define T_D1 276 +#define B_D1 277 +#define T_E 278 +#define B_E 279 +#define T_E1 280 +#define B_E1 281 +#define T_E2 282 +#define B_E2 283 +#define T_F 284 +#define B_F 285 +#define T_F1 286 +#define B_F1 287 +#define T_F2 288 +#define B_F2 289 +#define T_G 290 +#define B_G 291 +#define T_G1 292 +#define B_G1 293 +#define T_H 294 +#define B_H 295 +#define DLG_STOPREC_SP 296 +#define DLG_CANCEL_MENUSTQ 297 #endif diff --git a/m770/776100b.uml b/m770/776100b.uml index 8b4d2a493..2da91ef21 100755 --- a/m770/776100b.uml +++ b/m770/776100b.uml @@ -170,17 +170,31 @@ BEGIN MESSAGE RUN,771MOD,-7,A|K_TAB,RILEGGI_QUADRI PICTURE 123 GROUP MENU_MAIN +END + +TEXT DLG_NULL_AB +BEGIN + PROMPT 5 11 "Quadro Abis" + GROUP MENU_MAIN +END + +BUTTON DLG_STOPREC_AB 1 1 +BEGIN + PROMPT 1 11 "" + MESSAGE RUN,771MOD,-7,4|K_TAB,RILEGGI_QUADRI + PICTURE 123 + GROUP MENU_MAIN END TEXT DLG_NULL_A1 BEGIN - PROMPT 5 11 "Quadro A1" + PROMPT 5 12 "Quadro A1" GROUP MENU_MAIN END BUTTON DLG_STOPREC_A1 1 1 BEGIN - PROMPT 1 11 "" + PROMPT 1 12 "" MESSAGE RUN,771MOD,-7,1|K_TAB,RILEGGI_QUADRI PICTURE 123 GROUP MENU_MAIN @@ -188,13 +202,13 @@ END TEXT DLG_NULL_A2 BEGIN - PROMPT 5 12 "Quadro A2" + PROMPT 5 13 "Quadro A2" GROUP MENU_MAIN END BUTTON DLG_STOPREC_A2 1 1 BEGIN - PROMPT 1 12 "" + PROMPT 1 13 "" MESSAGE RUN,771MOD,-7,2|K_TAB,RILEGGI_QUADRI PICTURE 123 GROUP MENU_MAIN @@ -202,13 +216,13 @@ END TEXT DLG_NULL_A3 BEGIN - PROMPT 5 13 "Quadro A3" + PROMPT 5 14 "Quadro A3" GROUP MENU_MAIN END BUTTON DLG_STOPREC_A3 1 1 BEGIN - PROMPT 1 13 "" + PROMPT 1 14 "" MESSAGE RUN,771MOD,-7,3|K_TAB,RILEGGI_QUADRI PICTURE 123 GROUP MENU_MAIN @@ -216,13 +230,13 @@ END TEXT DLG_NULL_B BEGIN - PROMPT 5 14 "Quadro B" + PROMPT 5 15 "Quadro B" GROUP MENU_MAIN END BUTTON DLG_STOPREC_B 1 1 BEGIN - PROMPT 1 14 "" + PROMPT 1 15 "" PICTURE 123 MESSAGE RUN,773mod,-4,77qb,59,"Quadro B","B"|K_TAB,RILEGGI_QUADRI GROUP MENU_MAIN @@ -230,75 +244,89 @@ END TEXT DLG_NULL_B1 BEGIN - PROMPT 5 15 "Quadro B-1" + PROMPT 5 16 "Quadro B1" GROUP MENU_MAIN END BUTTON DLG_STOPREC_B1 1 1 BEGIN - PROMPT 1 15 "" + PROMPT 1 16 "" PICTURE 123 MESSAGE RUN,773mod,-4,77qb1,60,"Quadro B1","B1"|K_TAB,RILEGGI_QUADRI GROUP MENU_MAIN END -TEXT DLG_NULL_C -BEGIN - PROMPT 5 16 "Quadro C " - GROUP MENU_MAIN -END - -BUTTON DLG_STOPREC_C 1 1 -BEGIN - PROMPT 1 16 "" - PICTURE 123 - MESSAGE RUN,771MOD,-5,C|K_TAB,RILEGGI_QUADRI - GROUP MENU_MAIN -END - // Fine prima colonna // // Seconda colonna // +TEXT DLG_NULL_C +BEGIN + PROMPT 24 10 "Quadro C " + GROUP MENU_MAIN +END + +BUTTON DLG_STOPREC_C 1 1 +BEGIN + PROMPT 20 10 "" + PICTURE 123 + MESSAGE RUN,771MOD,-5,C|K_TAB,RILEGGI_QUADRI + GROUP MENU_MAIN +END + TEXT DLG_NULL_D BEGIN - PROMPT 24 10 "Quadro D " + PROMPT 24 11 "Quadro D " GROUP MENU_MAIN END BUTTON DLG_STOPREC_D 1 1 BEGIN - PROMPT 20 10 "" + PROMPT 20 11 "" PICTURE 123 MESSAGE RUN,771MOD,-5,D|K_TAB,RILEGGI_QUADRI GROUP MENU_MAIN END +TEXT DLG_NULL_DB +BEGIN + PROMPT 24 12 "Quadro Dbis" + GROUP MENU_MAIN +END + +BUTTON DLG_STOPREC_DB 1 1 +BEGIN + PROMPT 20 12 "" + PICTURE 123 + MESSAGE RUN,771MOD,-5,DB|K_TAB,RILEGGI_QUADRI + GROUP MENU_MAIN +END + TEXT DLG_NULL_D1 BEGIN - PROMPT 24 11 "Quadro D-1 " + PROMPT 24 13 "Quadro D1 " GROUP MENU_MAIN END BUTTON DLG_STOPREC_D1 1 1 BEGIN - PROMPT 20 11 "" + PROMPT 20 13 "" PICTURE 123 - MESSAGE RUN,771MOD,-5,1|K_TAB,RILEGGI_QUADRI + MESSAGE RUN,771MOD,-5,D1|K_TAB,RILEGGI_QUADRI GROUP MENU_MAIN END TEXT DLG_NULL_E BEGIN - PROMPT 24 12 "Quadro E " + PROMPT 24 14 "Quadro E " GROUP MENU_MAIN END BUTTON DLG_STOPREC_E 1 1 BEGIN - PROMPT 20 12 "" + PROMPT 20 14 "" PICTURE 123 MESSAGE RUN,771MOD,-5,E|K_TAB,RILEGGI_QUADRI GROUP MENU_MAIN @@ -306,41 +334,45 @@ END TEXT DLG_NULL_E1 BEGIN - PROMPT 24 13 "Quadro E-1 " + PROMPT 24 15 "Quadro E1 " GROUP MENU_MAIN END BUTTON DLG_STOPREC_E1 1 1 BEGIN - PROMPT 20 13 "" + PROMPT 20 15 "" PICTURE 123 - MESSAGE RUN,771MOD,-5,2|K_TAB,RILEGGI_QUADRI + MESSAGE RUN,771MOD,-5,E1|K_TAB,RILEGGI_QUADRI GROUP MENU_MAIN END TEXT DLG_NULL_E2 BEGIN - PROMPT 24 14 "Quadro E-2" + PROMPT 24 16 "Quadro E2" GROUP MENU_MAIN END BUTTON DLG_STOPREC_E2 1 1 BEGIN - PROMPT 20 14 "" + PROMPT 20 16 "" PICTURE 123 - MESSAGE RUN,771MOD,-5,3|K_TAB,RILEGGI_QUADRI + MESSAGE RUN,771MOD,-5,E2|K_TAB,RILEGGI_QUADRI GROUP MENU_MAIN END + +// Fine seconda colonna + +// Terza colonna TEXT DLG_NULL_F BEGIN - PROMPT 24 15 "Quadro F" + PROMPT 43 10 "Quadro F" GROUP MENU_MAIN END BUTTON DLG_STOPREC_F 1 1 BEGIN - PROMPT 20 15 "" + PROMPT 39 10 "" PICTURE 123 MESSAGE RUN,771MOD,-6,0|K_TAB,RILEGGI_QUADRI GROUP MENU_MAIN @@ -348,30 +380,27 @@ END TEXT DLG_NULL_F1 BEGIN - PROMPT 24 16 "Quadro F-1" + PROMPT 43 11 "Quadro F1" GROUP MENU_MAIN END BUTTON DLG_STOPREC_F1 1 1 BEGIN - PROMPT 20 16 "" + PROMPT 39 11 "" PICTURE 123 MESSAGE RUN,771MOD,-6,1|K_TAB,RILEGGI_QUADRI GROUP MENU_MAIN -END -// Fine seconda colonna - -// Terza colonna +END TEXT DLG_NULL_F2 BEGIN - PROMPT 43 10 "Quadro F-2" + PROMPT 43 12 "Quadro F2" GROUP MENU_MAIN END BUTTON DLG_STOPREC_F2 1 1 BEGIN - PROMPT 39 10 "" + PROMPT 39 12 "" PICTURE 123 MESSAGE RUN,771MOD,-6,2|K_TAB,RILEGGI_QUADRI GROUP MENU_MAIN @@ -379,13 +408,13 @@ END TEXT DLG_NULL_G BEGIN - PROMPT 43 11 "Quadro G" + PROMPT 43 13 "Quadro G" GROUP MENU_MAIN END BUTTON DLG_STOPREC_G 1 1 BEGIN - PROMPT 39 11 "" + PROMPT 39 13 "" PICTURE 123 MESSAGE RUN,771MOD,-6,3|K_TAB,RILEGGI_QUADRI GROUP MENU_MAIN @@ -393,13 +422,13 @@ END TEXT DLG_NULL_G1 BEGIN - PROMPT 43 12 "Quadro G-1" + PROMPT 43 14 "Quadro G1" GROUP MENU_MAIN END BUTTON DLG_STOPREC_G1 1 1 BEGIN - PROMPT 39 12 "" + PROMPT 39 14 "" PICTURE 123 MESSAGE RUN,771MOD,-6,5|K_TAB,RILEGGI_QUADRI GROUP MENU_MAIN @@ -407,13 +436,13 @@ END TEXT DLG_NULL_H BEGIN - PROMPT 43 13 "Quadro H " + PROMPT 43 15 "Quadro H " GROUP MENU_MAIN END BUTTON DLG_STOPREC_H 1 1 BEGIN - PROMPT 39 13 "" + PROMPT 39 15 "" PICTURE 123 MESSAGE RUN,771MOD,-1|K_TAB,RILEGGI_QUADRI GROUP MENU_MAIN @@ -421,28 +450,32 @@ END TEXT DLG_NULL_I BEGIN - PROMPT 43 14 "Quadro I " + PROMPT 43 16 "Quadro I " GROUP MENU_MAIN END BUTTON DLG_STOPREC_I 1 1 BEGIN - PROMPT 39 14 "" + PROMPT 39 16 "" PICTURE 123 MESSAGE RUN,771MOD,-2,I|K_TAB,RILEGGI_QUADRI GROUP MENU_MAIN END + +// Fine terza colonna + +// QUARTA colonna TEXT DLG_NULL_L BEGIN - PROMPT 43 15 "Quadro L " + PROMPT 62 10 "Quadro L " GROUP MENU_MAIN END // Forza l'esecuzione di leggi_quadri() BUTTON DLG_STOPREC_L 1 1 BEGIN - PROMPT 39 15 "" + PROMPT 58 10 "" PICTURE 123 MESSAGE RUN,771MOD,-3|K_TAB,RILEGGI_QUADRI GROUP MENU_MAIN @@ -450,87 +483,84 @@ END TEXT DLG_NULL_N BEGIN - PROMPT 43 16 "Quadro N" + PROMPT 62 11 "Quadro N" GROUP MENU_MAIN END BUTTON DLG_STOPREC_N 1 1 BEGIN - PROMPT 39 16 "" + PROMPT 58 11 "" PICTURE 123 - MESSAGE RUN,773mod,-2,77qn,72,"Quadro N","N"|K_TAB,RILEGGI_QUADRI + MESSAGE RUN,773mod,-2,N|K_TAB,RILEGGI_QUADRI GROUP MENU_MAIN -END -// Fine terza colonna - -// QUARTA colonna +END TEXT DLG_NULL_P BEGIN - PROMPT 62 10 "Quadro P" + PROMPT 62 12 "Quadro P" GROUP MENU_MAIN END BUTTON DLG_STOPREC_P 1 1 BEGIN - PROMPT 58 10 "" + PROMPT 58 12 "" PICTURE 123 - MESSAGE RUN,773mod,-2,77qp,73,"Quadro P","P"|K_TAB,RILEGGI_QUADRI + MESSAGE RUN,773mod,-2,P|K_TAB,RILEGGI_QUADRI GROUP MENU_MAIN END TEXT DLG_NULL_Q BEGIN - PROMPT 62 11 "Quadro Q" + PROMPT 62 13 "Quadro Q" GROUP MENU_MAIN END BUTTON DLG_STOPREC_Q 1 1 BEGIN - PROMPT 58 11 "" - MESSAGE RUN,773mod,-2,77qq,74,"Quadro Q","Q"|K_TAB,RILEGGI_QUADRI + PROMPT 58 13 "" + MESSAGE RUN,773mod,-2,Q|K_TAB,RILEGGI_QUADRI PICTURE 123 GROUP MENU_MAIN END TEXT DLG_NULL_R BEGIN - PROMPT 62 12 "Quadro R" + PROMPT 62 14 "Quadro R" GROUP MENU_MAIN END BUTTON DLG_STOPREC_R 1 1 BEGIN - PROMPT 58 12 "" + PROMPT 58 14 "" PICTURE 123 - MESSAGE RUN,773mod,-2,77qr,75,"Quadro R","R"|K_TAB,RILEGGI_QUADRI + MESSAGE RUN,773mod,-2,R|K_TAB,RILEGGI_QUADRI GROUP MENU_MAIN END TEXT DLG_NULL_S BEGIN - PROMPT 62 13 "Quadro S" + PROMPT 62 15 "Quadro S" GROUP MENU_MAIN END BUTTON DLG_STOPREC_S 1 1 BEGIN - PROMPT 58 13 "" + PROMPT 58 15 "" PICTURE 123 - MESSAGE RUN,773mod,-2,77qs,76,"Quadro S","S"|K_TAB,RILEGGI_QUADRI + MESSAGE RUN,773mod,-2,S|K_TAB,RILEGGI_QUADRI GROUP MENU_MAIN END TEXT DLG_NULL_T BEGIN - PROMPT 62 14 "Quadro T" + PROMPT 62 16 "Quadro T" GROUP MENU_MAIN END BUTTON DLG_STOPREC_T 1 1 BEGIN - PROMPT 58 14 "" + PROMPT 58 16 "" PICTURE 123 - MESSAGE RUN,773mod,-2,77qt,77,"Quadro T","T"|K_TAB,RILEGGI_QUADRI + MESSAGE RUN,773mod,-2,T|K_TAB,RILEGGI_QUADRI GROUP MENU_MAIN END // Fine QUARTA colonna diff --git a/m770/77cnv.cpp b/m770/77cnv.cpp new file mode 100755 index 000000000..21c57576a --- /dev/null +++ b/m770/77cnv.cpp @@ -0,0 +1,1254 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "quadrog.h" +#include "quadrogp.h" + +#define usage "Errore - uso : 77cnv [0|1|2|3|4|5|6] 0" +#define G_DUMP "quadrog.dmp" // File di scarico del quadro G +#define CNV_LOG "C770log.txt" // File di log della conversione + +class TConvert_app : public TApplication +{ + int _conv; + TTextfile* _M770_log; + +protected: + virtual bool create(); + + bool convert_e2() const; + bool convert_f() const; + bool convert_f2() const; + bool dump_quadro_g() const; // Funzioni per convertire quadro G + bool load_quadro_g() const; + bool cnv_ca7_971() const; // conversione causali + bool cnv_quadroA_971() const; // conversione quadro A + bool cnv_quadroAB_971() const; // conversione quadro Abis + bool cnv_quadroA2_971() const; // conversione quadro A2 + bool cnv_basebis_971() const; // conversione basebis + +public: + TConvert_app(int conv) : _conv(conv) { } + virtual ~TConvert_app() { } +}; + +bool TConvert_app::create() +{ + // istanza file di log + _M770_log = new TTextfile(CNV_LOG); + + switch(_conv) + { + // Numeri liberi per conversioni di Luciano; + case 0 : + cnv_ca7_971(); + cnv_basebis_971(); + break; + case 1 : + cnv_quadroA_971(); + cnv_quadroAB_971(); + cnv_quadroA2_971(); + break; + case 4 : convert_e2(); convert_f(); convert_f2(); break; + case 5 : dump_quadro_g(); break; // Scarica alcuni campi del quadro G da trasportare sulle righe + case 6 : load_quadro_g(); break; // Ricarica gli stessi sulle righe del quadro G + default:break; + } + + // libera istanza file di log + delete _M770_log; + + return FALSE; +} + +bool TConvert_app::convert_e2() const +{ + TLocalisamfile righe_e2(LF_QUAE2); + TProgind pi(righe_e2.items(), "Conversione quadro E2", FALSE, TRUE, 60); + + TDecoder causali("%CA7"); + + TRectype& cur = righe_e2.curr(); + for (int err = righe_e2.first(); err == NOERR; err = righe_e2.next()) + { + pi.addstatus(1); + const TString& desc = causali.decode(cur.get("CODCAUS")); + cur.put("DENCAUS", desc); + int ee = righe_e2.rewrite(); + if (ee != NOERR) + { + const long ditta = cur.get_long("CODDITTA"); + const int riga = cur.get_int("NUMPROG"); + error_box("Impossibile aggiornare la riga %d del quadro E2\n" + "della ditta %ld: errore %d", riga, ditta, ee); + } + } + + return TRUE; +} + +bool TConvert_app::convert_f() const +{ + TLocalisamfile quadro_f(LF_QUAF); + TLocalisamfile righe_f(LF_RIGHEF); + TRectype& cur = righe_f.curr(); + + TProgind pi(quadro_f.items(), "Conversione quadro F", FALSE, TRUE, 60); + + for (int err = quadro_f.first(); err == NOERR; err = quadro_f.next()) + { + pi.addstatus(1); + const long ditta = quadro_f.get_long("CODDITTA"); + const real e_aliq = quadro_f.get("E_ALIQUOTA"); + + if (e_aliq < 0.0) + { + // gia' stata convertita! + continue; + } + + cur.zero(); + cur.put("CODDITTA", ditta); + for (int e = righe_f.read(_isgteq); e == NOERR; e = righe_f.next()) + { + if (cur.get_long("CODDITTA") != ditta) + break; + + const char prosp = toupper(cur.get_char("TIPOPRO")); + const int riga = cur.get_int("NPROG"); + + if (prosp >= 'B' && prosp <= 'D') + { + const char newprosp = prosp-1; + cur.put("TIPOPRO", newprosp); + err = righe_f.write(); + if (err != NOERR) + { + error_box("Impossibile creare la riga %d del prospetto %c\n" + "della ditta %ld: errore %d", riga, newprosp, ditta, err); + } + } + cur.put("TIPOPRO", prosp); + if (err == NOERR) + { + int err = righe_f.remove(); + if (err != NOERR) + { + error_box("Impossibile eliminare la riga %d del prospetto %c\n" + "della ditta %ld: errore %d", riga, prosp, ditta, err); + break; + } + } + else + err = righe_f.reread(); + } + + const real e_cambiali = quadro_f.get("E_CAMBIALI"); + const real e_sogrit = quadro_f.get("E_SOGRIT"); + const real e_rope = quadro_f.get("E_ROPE"); + if (e_cambiali != ZERO || e_sogrit != ZERO || + e_aliq != ZERO || e_rope != ZERO) + { + righe_f.zero(); + righe_f.put("CODDITTA", ditta); + righe_f.put("TIPOPRO", "D"); + righe_f.put("NPROG", "1"); + righe_f.put("IMPCAMB", e_cambiali); + righe_f.put("ALIQUOTA", e_aliq); + righe_f.put("SOGRIT", e_sogrit); + righe_f.put("ROPE", e_rope); + int ed = righe_f.write(); + if (ed != NOERR) + error_box("Impossibile creare la riga del prospetto D\n" + "della ditta %ld: errore %d", ditta, ed); + } + + const real f_aliq = quadro_f.get("F_ALIQUOTA"); + const real f_sogrit = quadro_f.get("F_SOGRIT"); + const real f_rope = quadro_f.get("F_ROPE"); + if (f_aliq != ZERO || f_sogrit != ZERO || f_rope != ZERO) + { + righe_f.zero(); + righe_f.put("CODDITTA", ditta); + righe_f.put("TIPOPRO", "E"); + righe_f.put("NPROG", "1"); + righe_f.put("ALIQUOTA", f_aliq); + righe_f.put("SOGRIT", f_sogrit); + righe_f.put("ROPE", f_rope); + int ee = righe_f.write(); + if (ee != NOERR) + error_box("Impossibile creare la riga del prospetto E\n" + "della ditta %ld: errore %d", ditta, ee); + } + + // Marca la ditta come convertita + quadro_f.put("E_ALIQUOTA", -1); + quadro_f.rewrite(); + } + + return TRUE; +} + +bool TConvert_app::convert_f2() const +{ + TLocalisamfile righe_f2(LF_RIGHEF2); + TProgind pi(righe_f2.items(), "Conversione quadro F2", FALSE, TRUE, 60); + + TDecoder causali("%CA7"); + + TRectype& cur = righe_f2.curr(); + for (int err = righe_f2.first(); err == NOERR; err = righe_f2.next()) + { + pi.addstatus(1); + const long ditta = cur.get_long("CODDITTA"); + + const char oldtipo = cur.get_char("TIPOPRO"); + if (oldtipo != 'A') + { + const int riga = cur.get_int("NPROG"); + + cur.put("TIPOPRO", "A"); + const TString& desc = causali.decode(cur.get("CODCAUS")); + cur.put("DENCAUS", desc); + int ee = righe_f2.write(); + if (ee == NOERR) + { + cur.put("TIPOPRO", oldtipo); + ee = righe_f2.remove(); + if (ee != NOERR) + { + error_box("Impossibile eliminare la riga %d del quadro F2\n" + "della ditta %ld: errore %d", riga, ditta, ee); + } + } + else + { + error_box("Impossibile creare la riga %d del quadro F2\n" + "della ditta %ld: errore %d", riga, ditta, ee); + } + } + } + + return TRUE; +} + +///////////////////////////////////////////////////////////////////////////////// +// Scarico dei campi del prospetto 1 sez I e II da riportare sulle righe quadro G +///////////////////////////////////////////////////////////////////////////////// +bool TConvert_app::dump_quadro_g() const +{ + TFilename f; + TLocalisamfile quadrog(LF_QUAG); + TToken_string t; + TString16 fld1,fld2,fld3,fld4; + TString s1,s2,s3,s4; + int err; + + f.tempdir(); + f << "/" << G_DUMP; + ofstream ofs(f); + + TProgind pi(quadrog.items(), "Conversione quadro G - Scarico dati in corso...", FALSE, TRUE, 60); + for (err = quadrog.first(); err == NOERR; err = quadrog.next()) + { + pi.addstatus(1); + const long ditta = quadrog.get_long("CODDITTA"); + int riga_1 = 1, riga_2 = 1; + fld3 = "P1AMMQx"; fld4 = "P1AMMx"; + for (int i = 1; i<=4; i++) + { + fld1 = "P1DATADx"; fld2 = "P1NUMQx"; // Prospetto 1 sez I + fld1.rtrim(1); fld1 << i; + fld2.rtrim(1); fld2 << i; + fld3.rtrim(1); fld3 << i; + fld4.rtrim(1); fld4 << i; + s1 = quadrog.get(fld1); + s2 = quadrog.get(fld2); + s3 = quadrog.get(fld3); + s4 = quadrog.get(fld4); + if (s1.not_empty() || s2.not_empty() || s3.not_empty() || s4.not_empty()) + { // Se tutti vuoti non scrive la riga + t = ""; + t.add(ditta); + t.add("1"); t.add("1");t.add(riga_1++); + t.add(s1); + t.add(s2); + t.add(s3); + t.add(s4); + t << "\n"; + ofs << t; + } + + if (i < 4) + { + fld1 = "P2DESCx"; fld2 = "P2VALx"; // Prospetto 1 sez II + fld1.rtrim(1); fld1 << i; + fld2.rtrim(1); fld2 << i; + s1 = quadrog.get(fld1); + s2 = quadrog.get(fld2); + if (s1.not_empty() || s2.not_empty()) + { // Se tutti vuoti non scrive la riga + t = ""; + t.add(ditta); + t.add("1"); t.add("2");t.add(riga_2++); + t.add(s1); + t.add(s2); + t << "\n"; + ofs << t; + } + } + } + } + return TRUE; +} + +///////////////////////////////////////////////////////////////////////////////// +// Carico dei campi del prospetto 1 sez I e II da riportare sulle righe quadro G +///////////////////////////////////////////////////////////////////////////////// +bool TConvert_app::load_quadro_g() const +{ + TFilename f; + f.tempdir(); + f << "/" << G_DUMP; + if (fexist(f)) + { + TLocalisamfile quadrogp(LF_QUAGP); + TToken_string t; + char buffer[256]; + ifstream ifs(f); + int err; + TProgind pi(1, "Conversione quadro G - Caricamento righe in corso...", FALSE, FALSE, 60); + while (ifs.good()) + { + ifs.getline(buffer,256,'\n'); + t = buffer; + if (t.empty_items()) break; + quadrogp.zero(); + quadrogp.put(QGP_CODDITTA,t.get(0)); + quadrogp.put(QGP_PROSPETTO,t.get(1)); + const char sez = t.get_char(2); + quadrogp.put(QGP_SEZIONE,sez); + quadrogp.put(QGP_NPROG,t.get(3)); + if (sez == '1') + { + quadrogp.put(QGP_DATADEL,t.get(4)); + quadrogp.put(QGP_NUMQUOTE,t.get(5)); + quadrogp.put(QGP_UTILI1S,t.get(6)); + quadrogp.put(QGP_UTILI2S,t.get(7)); + } + else + { + quadrogp.put(QGP_DESCRBENI,t.get(4)); + quadrogp.put(QGP_UTILI1S,t.get(5)); + } + err = quadrogp.write(); + if (err == _isreinsert) + err = quadrogp.rewrite(); + if (err != NOERR) + error_box("Errore %d cercando di caricare le righe del quadro G.",err); + } + } + remove(f); // Let's ignore if the file exists or not + return TRUE; +} + + +/////////////////////////////////////////////////////////// +// Conversione tabella causali versione 971 +/////////////////////////////////////////////////////////// +bool TConvert_app::cnv_ca7_971() const +{ + // titolo log + char now[9]; + TDate today(TODAY); + TString log_title("[Log Conversione Causali : "); + log_title << today << " " << _strtime(now) << "] Prassi SpA"; + _M770_log->append(log_title); + TString log_space(" "); + _M770_log->append(log_space); + + // conversione tabella + TTable ca7("%CA7"); + TProgind pi(ca7.items(), "Conversione tabella causali", FALSE, FALSE, 60); + for (ca7.first(); ca7.good(); ca7.next()) + { + // lettura campi soggetti a modifica + TString old_cod = ca7.get("CODTAB"); + TString cod_qua = ca7.get("S1");// codice quadro + bool fl_Inps = ca7.get_bool("B4");// soggetto contributo Inps + bool fl_CT = ca7.get_bool("B2");// flag C.T. + bool fl_TS = ca7.get_bool("B3");// flag T.S. + char caus_C = ca7.get_char("S6");// causale quadro C + char caus_D = ca7.get_char("S2");// causale quadro D + char caus_D1 = ca7.get_char("S3");// causale quadro D1 + char caus_DB = ca7.get_char("S7");// causale quadro DB + char caus_E = ca7.get_char("S8");// causale quadro E + char caus_E1 = ca7.get_char("S9");// causale quadro E1 + real ass_imp_Inps = ca7.get_real("R2");// assoggettamento imponibile Inps + + // conversione causale quadro D + switch(caus_D) + { + case 'A': + if (fl_Inps) + { + cod_qua = "DB"; + caus_DB = 'A'; + caus_D = ' '; + } + break; + case 'T': + if (fl_Inps) + { + cod_qua = "DB"; + caus_DB = 'T'; + caus_D = ' '; + } + break; + case 'E': + if (!fl_Inps) + caus_D = 'M'; + else + { + TString log_line; + log_line << old_cod << ": "; + log_line << "causale quadro D: -E- con flag contributo Inps"; + _M770_log->append(log_line); + } + break; + case 'G': + if (!fl_Inps) + caus_D = 'B'; + else + { + TString log_line; + log_line << old_cod << ": "; + log_line << "causale quadro D: -G- con flag contributo Inps"; + _M770_log->append(log_line); + } + break; + case 'H': + if (!fl_Inps) + caus_D = 'C'; + else + { + TString log_line; + log_line << old_cod << ": "; + log_line << "causale quadro D: -H- con flag contributo Inps"; + _M770_log->append(log_line); + } + break; + case 'I': + if (!fl_Inps) + caus_D = 'D'; + else + { + TString log_line; + log_line << old_cod << ": "; + log_line << "causale quadro D: -I- con flag contributo Inps"; + _M770_log->append(log_line); + } + break; + case 'L': + if (!fl_Inps) + caus_D = 'E'; + else + { + TString log_line; + log_line << old_cod << ": "; + log_line << "causale quadro D: -L- con flag contributo Inps"; + _M770_log->append(log_line); + } + break; + case 'M': + if (!fl_Inps) + caus_D = 'F'; + else + { + TString log_line; + log_line << old_cod << ": "; + log_line << "causale quadro D: -M- con flag contributo Inps"; + _M770_log->append(log_line); + } + break; + case 'P': + if (!fl_Inps) + caus_D = 'G'; + else + { + TString log_line; + log_line << old_cod << ": "; + log_line << "causale quadro D: -P- con flag contributo Inps"; + _M770_log->append(log_line); + } + break; + case 'Q': + if (!fl_Inps) + caus_D = 'H'; + else + { + TString log_line; + log_line << old_cod << ": "; + log_line << "causale quadro D: -Q- con flag contributo Inps"; + _M770_log->append(log_line); + } + break; + case 'R': + if (!fl_Inps) + caus_D = 'N'; + else + { + TString log_line; + log_line << old_cod << ": "; + log_line << "causale quadro D: -R- con flag contributo Inps"; + _M770_log->append(log_line); + } + break; + case 'S': + if (!fl_Inps) + caus_D = 'I'; + else + { + TString log_line; + log_line << old_cod << ": "; + log_line << "causale quadro D: -S- con flag contributo Inps"; + _M770_log->append(log_line); + } + break; + case 'F': + cod_qua = "DB"; + caus_DB = 'E'; + caus_D = ' '; + fl_Inps = TRUE; + ass_imp_Inps = ZERO; + break; + case 'N': + cod_qua = "DB"; + caus_DB = 'F'; + caus_D = ' '; + fl_Inps = TRUE; + ass_imp_Inps = ZERO; + break; + case 'B': + cod_qua = "DB"; + caus_DB = 'B'; + caus_D = ' '; + fl_Inps = TRUE; + ass_imp_Inps = ZERO; + break; + case 'C': + cod_qua = "DB"; + caus_DB = 'C'; + caus_D = ' '; + fl_Inps = TRUE; + ass_imp_Inps = ZERO; + break; + case 'D': + cod_qua = "DB"; + caus_DB = 'D'; + caus_D = ' '; + fl_Inps = TRUE; + ass_imp_Inps = ZERO; + break; + } + + // conversione causale quadro D1 + switch(caus_D1) + { + case 'F': + cod_qua = "DB"; + caus_DB = 'F'; + caus_D1 = ' '; + fl_Inps = TRUE; + ass_imp_Inps = ZERO; + break; + } + + // flag C.T. + if (fl_CT) + caus_C = 'A'; + + // flag T.S. + if (fl_TS) + { + fl_TS = FALSE; + TString log_line; + log_line << old_cod << ": "; + log_line << "era indicato il flag T.S."; + _M770_log->append(log_line); + } + + + // clear campi eliminati + ca7.zero("B0"); + ca7.zero("B2"); + + // update campi modificati + ca7.put("S1",cod_qua);// codice quadro + ca7.put("B4",fl_Inps);// soggetto contributo Inps + ca7.put("B3",fl_TS);// flag T.S. + ca7.put("S6",caus_C);// causale quadro C + ca7.put("S2",caus_D);// causale quadro D + ca7.put("S3",caus_D1);// causale quadro D1 + ca7.put("S7",caus_DB);// causale quadro DB + ca7.put("S8",caus_E);// causale quadro E + ca7.put("S9",caus_E1);// causale quadro E1 + ca7.put("R2",ass_imp_Inps);// assoggettamento imponibile Inps + + // riscrittura record + ca7.rewrite(); + } + // fine log + _M770_log->append(log_space); + + return TRUE; +} + + +/////////////////////////////////////////////////////////// +// Conversione quadro A 770 versione 971 +/////////////////////////////////////////////////////////// +bool TConvert_app::cnv_quadroA_971() const +{ + // titolo log + char now[9]; + TDate today(TODAY); + TString log_title("[Log Conversione quadro A : "); + log_title << today << " " << _strtime(now) << "] Prassi SpA"; + _M770_log->append(log_title); + TString log_space(" "); + _M770_log->append(log_space); + + TLocalisamfile dip(LF_DIPEND); + TLocalisamfile qa(LF_QUAA); + TProgind pi(qa.items(), "Conversione quadro A", FALSE, TRUE, 60); + for (qa.first(); qa.good(); qa.next()) + { + pi.addstatus(1); + + // lettura campi soggetti a modifica + long cod_ditta = qa.get_long("CODDITTA"); + long cod_dip = qa.get_long("CODDIP"); + int A18 = qa.get_int("CAUSA");// causa + real A29 = qa.get_real("DENARO");// retribuzioni e pensioni + real EX_A21 = qa.get_real("NATURA");// ex in denaro + real A21 = qa.get_real("COBBDIP");// contr.prev.obblig.lav.dip. + real EX_A25 = qa.get_real("IACOBBCD");// ex contr.obbl.carico lav.dip. + real A24 = qa.get_real("NORIT");// somme a valori non assogg. a rit. + real EX_A27 = qa.get_real("TOTIMP");// ex totale imponibile + real EX_A50 = qa.get_real("SVNASSRI");// ex altre somme e valori non ass.rit. + int A11 = qa.get_int("QAQUALIF");// qualifica + + // lettura campi dall'anagrafica dipendenti + int ana_qualifica = 0;// qualifica anagrafica + dip.setkey(1); + dip.zero(); + dip.put("CODDITTA",cod_ditta); + dip.put("CODDIP",cod_dip); + if (dip.read() == NOERR) + ana_qualifica = dip.get_int("QUALIFICA"); + else + { + TString log_line; + log_line.format("Anagrafica inesistente per il dipendente :%06ld, della ditta :%05ld",cod_dip,cod_ditta); + _M770_log->append(log_line); + } + + // conversione causa + switch(A18) + { + case 6: + A18 = 0; + break; + case 7: + A18 = 0; + break; + } + + // retribuzioni e pensioni + A29 = A29 + EX_A21 - A21 + EX_A27; + + // contributi previd.assist.obbl.lav.dip. + A21 = A21 + EX_A25; + + // somme e valori non assoggettati a ritenuta + A24 = A24 + EX_A50; + + // qualifica + A11 = ana_qualifica; + + // update campi modificati + qa.put("CAUSA",A18);// causa + qa.put("DENARO",A29);// retribuzioni e pensioni + qa.put("COBBDIP",A21);// contr.prev.obblig.lav.dip. + qa.put("NORIT",A24);// somme a valori non assogg. a rit. + qa.put("QAQUALIF",A11);// qualifica + + // riscrittura record + qa.rewrite(); + } + // fine log + _M770_log->append(log_space); + + return TRUE; +} + +/////////////////////////////////////////////////////////// +// Conversione quadro Abis 770 versione 971 +/////////////////////////////////////////////////////////// +bool TConvert_app::cnv_quadroAB_971() const +{ + // titolo log + char now[9]; + TDate today(TODAY); + TString log_title("[Log Conversione quadro Abis : "); + log_title << today << " " << _strtime(now) << "] Prassi SpA"; + _M770_log->append(log_title); + TString log_space(" "); + _M770_log->append(log_space); + + // istanza file basebis per riporto flag quadro compilato + TLocalisamfile bb(LF_BASEBIS); + + // istanza file Abis e prepara chiave precedente + // per rilevamento rottura del dipendente + TLocalisamfile qab(LF_QUAAB); + qab.setkey(1); + qab.zero(); + TRectype prevkey(qab.curr()); + int prog = 0; + + // istanza conta rettifica di conguaglio + int count_RettA = 0; + int count_RettB = 0; + int count_RettC = 0; + int count_RettX = 0; + + // istanza record per scrittura rettifica A + TRectype rec_RettA(qab.curr()); + + // elaborazione quadri A + TLocalisamfile qa(LF_QUAA); + TProgind pi(qa.items(), "Conversione quadro Abis", FALSE, TRUE, 60); + for (qa.first(); qa.good(); qa.next()) + { + pi.addstatus(1); + + // lettura campi da copiare su Abis + long cod_ditta = qa.get_long("CODDITTA");// codice ditta + long cod_dip = qa.get_long("CODDIP");// codice dipendente + int rigo = qa.get_int("NPROG");// progressivo rigo + char EX_A52 = qa.get_char("CONEFF");// conguagli non effettuati + real EX_A53 = qa.get_real("IMPVERS");// imposta trattenuta + real EX_A54 = qa.get_real("INTERE");// interessi + real EX_A55 = qa.get_real("CSSN95CV");// contributo trattenuto + real EX_A56 = qa.get_real("INTERE2");// interessi + char EX_A57 = qa.get_char("CNEFF");// conguagli non effettuati + char EX_A58 = qa.get_char("RETCON");// rettifica conguaglio + real EX_A59 = qa.get_real("IMPRIMB");// imposta rimborsata + real EX_A60 = qa.get_real("IMPVER");// imposta trattenuta + real EX_A61 = qa.get_real("INTIRPEF");// interessi + real EX_A62 = qa.get_real("IMPVER2");// imposta trattenuta + real EX_A63 = qa.get_real("INTER");// interessi + real EX_A64 = qa.get_real("STSIRPEF");// soprattasse su Irpef + real EX_A65 = qa.get_real("CONRIMB");// contributo a rimborso + real EX_A66 = qa.get_real("CONVER");// contributo trattenuto + real EX_A67 = qa.get_real("INTER2");// interessi + real EX_A68 = qa.get_real("CONVER2");// contributo trattenuto + real EX_A69 = qa.get_real("INTER3");// interessi + real EX_A70 = qa.get_real("STSCSSN70");// soprattasse su Cssn + int EX_A71 = qa.get_int("M730NLIQ");// Mod.730 non liquidabile + long EX_A72 = qa.get_long("CODCAAF");// codice CAAF + + real tot =ZERO; + tot = tot+EX_A53+EX_A54+EX_A55+EX_A56+EX_A59+EX_A60+EX_A61+EX_A62; + tot = tot+EX_A63+EX_A64+EX_A65+EX_A66+EX_A67+EX_A68+EX_A69+EX_A70; + + if (tot==ZERO && EX_A52==' ' && EX_A57==' ' && EX_A58==' ' && !EX_A71) + continue; + + // preparazione chiave quadro Abis e istanza nuovo record per scrittura + qab.zero(); + qab.put("CODDITTA",cod_ditta); + qab.put("CODDIP",cod_dip); + TRectype key(qab.curr()); + TRectype newrec(qab.curr()); + + // controllo rottura dipendente + if (key > prevkey) + { + // creo record rettifica A + valori operazioni di conguaglio + if (count_RettA) + { + long ditta_RettA = rec_RettA.get_long("CODDITTA"); + long dip_RettA = rec_RettA.get_long("CODDIP"); + rec_RettA.put("NPROG",++prog); + qab.write(rec_RettA); + TString log_line; + log_line.format("Unificato quadro rettifica A con rettifica B per il dipendente :%06ld, della ditta :%05ld",dip_RettA,ditta_RettA); + _M770_log->append(log_line); + // set flag quadro compilato + bb.zero(); + bb.put("CODDITTA",ditta_RettA); + if (bb.read() == NOERR) + { + TString qcomp(bb.get("QCOMP")); + TString newqcomp; + newqcomp.spaces(29); + newqcomp.overwrite(qcomp,0); + newqcomp[26] = 'X'; + bb.put("QCOMP",newqcomp); + bb.rewrite(); + } + } + // reimposto variabili di controllo + prevkey = key; + count_RettA = 0; + count_RettB = 0; + count_RettC = 0; + count_RettX = 0; + // inizializzo record rettifica A + rec_RettA = key; + } + + // reperisce ultimo progressivo assegnato + prog = 0; + for (qab.read(_isgteq); qab.good() && qab.curr() == key; qab.next()) + prog = qab.get_int("NPROG"); + + // non posso riportare un record con rettifica C,D,E oppure F, + // se ho già riportato un qualsiasi altro record + if ((EX_A58 == 'C' || EX_A58 == 'D' || EX_A58 == 'E' || EX_A58 == 'F') && count_RettX > 0) + { + TString log_line; + log_line.format("Non riportato quadro per il dipendente :%06ld, della ditta :%05ld, rigo :%03d",cod_dip,cod_ditta,rigo); + _M770_log->append(log_line); + log_line.format("- era un quadro con rettifica %c, ed erano già stati riportati altri quadri",EX_A58); + _M770_log->append(log_line); + continue; + } + + // se già riportato record con rettifica C,D,E oppure F + // deve esistere solo quest'ultimo + if (count_RettC) + { + TString log_line; + log_line.format("Non riportato quadro per il dipendente :%06ld, della ditta :%05ld, rigo :%03d",cod_dip,cod_ditta,rigo); + _M770_log->append(log_line); + log_line.format("- erano già stati riportati quadri C,D,E oppure F"); + _M770_log->append(log_line); + continue; + } + + // deve esistere un solo record con rettifica A + if (EX_A58 == 'A' && count_RettA) + { + TString log_line; + log_line.format("Non riportato quadro per il dipendente :%06ld, della ditta :%05ld, rigo :%03d",cod_dip,cod_ditta,rigo); + _M770_log->append(log_line); + log_line.format("- era un quadro con rettifica %c, ed era già stato riportato un quadro A",EX_A58); + _M770_log->append(log_line); + continue; + } + + // deve esistere un solo record con rettifica B + if (EX_A58 == 'B' && count_RettB) + { + TString log_line; + log_line.format("Non riportato quadro per il dipendente :%06ld, della ditta :%05ld, rigo :%03d",cod_dip,cod_ditta,rigo); + _M770_log->append(log_line); + log_line.format("- era un quadro con rettifica %c, ed era già stato riportato un quadro B",EX_A58); + _M770_log->append(log_line); + continue; + } + + // riporto valori su Abis + switch (EX_A58) + { + // per record con rettifica A memorizzo valori su record rettifica A + case 'A': + rec_RettA.put("CONEFF",EX_A52);// conguagli non effettuati + rec_RettA.put("IMPVERS",EX_A53);// imposta trattenuta + rec_RettA.put("INTERE",EX_A54);// interessi + rec_RettA.put("CSSN95CV",EX_A55);// contributo trattenuto + rec_RettA.put("INTERE2",EX_A56);// interessi + rec_RettA.put("CNEFF",EX_A57);// conguagli non effettuati + rec_RettA.put("RETCON",EX_A58);// rettifica conguaglio + rec_RettA.put("IMPRIMB",EX_A59);// imposta rimborsata + rec_RettA.put("IMPVER",EX_A60);// imposta trattenuta + rec_RettA.put("INTIRPEF",EX_A61);// interessi + rec_RettA.put("IMPVER2",EX_A62);// imposta trattenuta + rec_RettA.put("INTER",EX_A63);// interessi + rec_RettA.put("STSIRPEF",EX_A64);// soprattasse su Irpef + rec_RettA.put("CONRIMB",EX_A65);// contributo a rimborso + rec_RettA.put("CONVER",EX_A66);// contributo trattenuto + rec_RettA.put("INTER2",EX_A67);// interessi + rec_RettA.put("CONVER2",EX_A68);// contributo trattenuto + rec_RettA.put("INTER3",EX_A69);// interessi + rec_RettA.put("STSCSSN70",EX_A70);// soprattasse su Cssn + rec_RettA.put("M730NLIQ",EX_A71);// Mod.730 non liquidabile + break; + // per record con rettifica B memorizzo valori su record rettifica A + case 'B': + rec_RettA.put("QABRCB19",EX_A62); + rec_RettA.put("QABRCB20",EX_A63); + rec_RettA.put("QABRCB21",EX_A64); + rec_RettA.put("QABRCB22",EX_A65); + rec_RettA.put("QABRCB23",EX_A66); + rec_RettA.put("QABRCB24",EX_A67); + rec_RettA.put("QABRCB25",EX_A68); + rec_RettA.put("QABRCB26",EX_A69); + break; + // per gli altri creo record Abis + default: + newrec.put("NPROG",++prog); + newrec.put("CONEFF",EX_A52);// conguagli non effettuati + newrec.put("IMPVERS",EX_A53);// imposta trattenuta + newrec.put("INTERE",EX_A54);// interessi + newrec.put("CSSN95CV",EX_A55);// contributo trattenuto + newrec.put("INTERE2",EX_A56);// interessi + newrec.put("CNEFF",EX_A57);// conguagli non effettuati + newrec.put("RETCON",EX_A58);// rettifica conguaglio + newrec.put("IMPRIMB",EX_A59);// imposta rimborsata + newrec.put("IMPVER",EX_A60);// imposta trattenuta + newrec.put("INTIRPEF",EX_A61);// interessi + newrec.put("IMPVER2",EX_A62);// imposta trattenuta + newrec.put("INTER",EX_A63);// interessi + newrec.put("STSIRPEF",EX_A64);// soprattasse su Irpef + newrec.put("CONRIMB",EX_A65);// contributo a rimborso + newrec.put("CONVER",EX_A66);// contributo trattenuto + newrec.put("INTER2",EX_A67);// interessi + newrec.put("CONVER2",EX_A68);// contributo trattenuto + newrec.put("INTER3",EX_A69);// interessi + newrec.put("STSCSSN70",EX_A70);// soprattasse su Cssn + newrec.put("M730NLIQ",EX_A71);// Mod.730 non liquidabile + qab.write(newrec); + // set flag quadro compilato + bb.zero(); + bb.put("CODDITTA",cod_ditta); + if (bb.read() == NOERR) + { + TString qcomp(29); + qcomp = bb.get("QCOMP"); + qcomp[27] = 'X'; + bb.put("QCOMP",qcomp); + bb.rewrite(); + } + } + + // aggiorno conta rettifica di conguaglio + switch (EX_A58) + { + case 'A': + ++count_RettA; + ++count_RettX; + break; + case 'B': + ++count_RettB; + ++count_RettX; + break; + case 'C': + ++count_RettC; + ++count_RettX; + break; + case 'D': + ++count_RettC; + ++count_RettX; + break; + case 'E': + ++count_RettC; + ++count_RettX; + break; + case 'F': + ++count_RettC; + ++count_RettX; + break; + default: + ++count_RettX; + } + } + // fine log + _M770_log->append(log_space); + + return TRUE; +} + +/////////////////////////////////////////////////////////// +// Conversione quadro A2 770 versione 971 +/////////////////////////////////////////////////////////// +bool TConvert_app::cnv_quadroA2_971() const +{ + // titolo log + char now[9]; + TDate today(TODAY); + TString log_title("[Log Conversione quadro A2 : "); + log_title << today << " " << _strtime(now) << "] Prassi SpA"; + _M770_log->append(log_title); + TString log_space(" "); + _M770_log->append(log_space); + + // istanza file A2 e prepara chiave precedente + // per rilevamento rottura del dipendente + TLocalisamfile qa2(LF_QUAA2); + qa2.setkey(1); + qa2.zero(); + TRectype prevkey(qa2.curr()); + int prog = 0; + + // istanza conta rettifica di conguaglio + int count_RettA = 0; + int count_RettB = 0; + int count_RettC = 0; + int count_RettX = 0; + + // istanza record per scrittura rettifica A + TRectype rec_RettA(qa2.curr()); + + // istanza cursore per scansione quadri A2 + TRelation rA2(LF_QUAA2); + TCursor cA2(&rA2); + + // elaborazione quadri A2 (frizzati) + cA2.freeze(); + cA2 = 0L; + TRectype& rc = cA2.curr(); + TRecnotype items = cA2.items(); + TProgind pi(items, "Conversione quadro A2", FALSE, TRUE, 60); + for (int i = 0; i < items; i++,++cA2) + { + pi.addstatus(1); + + // lettura campi da copiare su A2 + long cod_ditta = rc.get_long("CODDITTA");// codice ditta + long cod_dip = rc.get_long("CODDIP");// codice dipendente + int rigo = rc.get_int("NPROG");// progressivo rigo + char A2_9 = rc.get_char("RETCON");// rettifica conguaglio + real A2_10 = rc.get_real("SIRPEFRIMB"); + real A2_11 = rc.get_real("VIRPEF"); + real A2_12 = rc.get_real("INTIRPEF"); + real A2_13 = rc.get_real("AIRPEFIV"); + real A2_14 = rc.get_real("AIRPEFINT"); + real A2_15 = rc.get_real("STASSA15"); + real A2_16 = rc.get_real("CONTR16"); + real A2_17 = rc.get_real("CONTRVER"); + + // preparazione chiave quadro A2 + qa2.zero(); + qa2.put("CODDITTA",cod_ditta); + qa2.put("CODDIP",cod_dip); + TRectype key(qa2.curr()); + + // controllo rottura dipendente + if (key > prevkey) + { + // aggiorno record rettifica A + valori operazioni di conguaglio + if (count_RettA) + { + long ditta_RettA = rec_RettA.get_long("CODDITTA"); + long dip_RettA = rec_RettA.get_long("CODDIP"); + qa2.rewrite(rec_RettA); + TString log_line; + log_line.format("Unificato quadro rettifica A con rettifica B per il dipendente :%06ld, della ditta :%05ld",dip_RettA,ditta_RettA); + _M770_log->append(log_line); + } + // reimposto variabili di controllo + prevkey = key; + count_RettA = 0; + count_RettB = 0; + count_RettC = 0; + count_RettX = 0; + } + + // non posso riportare un record con rettifica C,D,E oppure F, + // se ho già riportato un qualsiasi altro record + if ((A2_9 == 'C' || A2_9 == 'D' || A2_9 == 'E' || A2_9 == 'F') && count_RettX > 0) + { + qa2.remove(rc); + TString log_line; + log_line.format("Eliminato quadro per il dipendente :%06ld, della ditta :%05ld, rigo :%03d",cod_dip,cod_ditta,rigo); + _M770_log->append(log_line); + log_line.format("- era un quadro con rettifica %c, ed erano già presenti altri quadri",A2_9); + _M770_log->append(log_line); + continue; + } + + // se già riportato record con rettifica C,D,E oppure F + // deve esistere solo quest'ultimo + if (count_RettC) + { + qa2.remove(rc); + TString log_line; + log_line.format("Eliminato quadro per il dipendente :%06ld, della ditta :%05ld, rigo :%03d",cod_dip,cod_ditta,rigo); + _M770_log->append(log_line); + log_line.format("- erano già presenti quadri C,D,E oppure F"); + _M770_log->append(log_line); + continue; + } + + // deve esistere un solo record con rettifica A + if (A2_9 == 'A' && count_RettA) + { + qa2.remove(rc); + TString log_line; + log_line.format("Eliminato quadro per il dipendente :%06ld, della ditta :%05ld, rigo :%03d",cod_dip,cod_ditta,rigo); + _M770_log->append(log_line); + log_line.format("- era un quadro con rettifica %c, ed era già presente un quadro A",A2_9); + _M770_log->append(log_line); + continue; + } + + // deve esistere un solo record con rettifica B + if (A2_9 == 'B' && count_RettB) + { + qa2.remove(rc); + TString log_line; + log_line.format("Eliminato quadro per il dipendente :%06ld, della ditta :%05ld, rigo :%03d",cod_dip,cod_ditta,rigo); + _M770_log->append(log_line); + log_line.format("- era un quadro con rettifica %c, ed era già presente un quadro B",A2_9); + _M770_log->append(log_line); + continue; + } + + // riporto valori su A2 + switch (A2_9) + { + // per record con rettifica A memorizzo valori su record rettifica A + case 'A': + rec_RettA = rc; + break; + // per record con rettifica B memorizzo valori su record rettifica A + // ed elimino il record + case 'B': + rec_RettA.put("QA2RCB10",A2_10); + rec_RettA.put("QA2RCB11",A2_11); + rec_RettA.put("QA2RCB12",A2_12); + rec_RettA.put("QA2RCB13",A2_13); + rec_RettA.put("QA2RCB14",A2_14); + rec_RettA.put("QA2RCB15",A2_15); + rec_RettA.put("QA2RCB16",A2_16); + rec_RettA.put("QA2RCB17",A2_17); + qa2.remove(rc); + break; + // per gli altri non fò nulla + default: + break; + } + + // aggiorno conta rettifica di conguaglio + switch (A2_9) + { + case 'A': + ++count_RettA; + ++count_RettX; + break; + case 'B': + ++count_RettB; + ++count_RettX; + break; + case 'C': + ++count_RettC; + ++count_RettX; + break; + case 'D': + ++count_RettC; + ++count_RettX; + break; + case 'E': + ++count_RettC; + ++count_RettX; + break; + case 'F': + ++count_RettC; + ++count_RettX; + break; + default: + ++count_RettX; + } + } + // fine log + _M770_log->append(log_space); + + return TRUE; +} + +/////////////////////////////////////////////////////////// +// Conversione basebis 770 versione 971 +/////////////////////////////////////////////////////////// +bool TConvert_app::cnv_basebis_971() const +{ + // titolo log + char now[9]; + TDate today(TODAY); + TString log_title("[Log Conversione base : "); + log_title << today << " " << _strtime(now) << "] Prassi SpA"; + _M770_log->append(log_title); + TString log_space(" "); + _M770_log->append(log_space); + + TLocalisamfile bb(LF_BASEBIS); + TProgind pi(bb.items(), "Conversione modello base", FALSE, TRUE, 60); + for (bb.first(); bb.good(); bb.next()) + { + pi.addstatus(1); + + // lettura campi soggetti a modifica + TString qcomp = bb.get("QCOMP"); + + // sistemazione flag quadri compilati come flag quadri inviati/ricevuti + const int Lpos = 19; + TString newqcomp; + newqcomp.spaces(29); + int nchar = qcomp.len() < Lpos ? qcomp.len() : Lpos; + for (int i=0; iappend(log_space); + + return TRUE; +} + +/////////////////////////////////////////////////////////// +// Programma di conversione archivi 770 +/////////////////////////////////////////////////////////// + +int main(int argc,char** argv) +{ + const int r = (argc > 1) ? abs(atoi(argv[1])) : -1; + + if (r < 0 || r > 6) + { + error_box(usage); + exit(1); + } + else + { + const int f = (argc > 2) ? atoi(argv[2]) : -1; + if (f == 0) + { + TConvert_app a(r) ; + a.run(argc, argv, "Conversione archivi 770"); + } + else + exit(0); + } + + return 0; +} + diff --git a/m770/77cnv.url b/m770/77cnv.url new file mode 100755 index 000000000..7f0285a64 --- /dev/null +++ b/m770/77cnv.url @@ -0,0 +1,5 @@ +#include + +MENU TASK_MENUBAR + SUBMENU MENU_FILE "~File" + diff --git a/m770/77g1.cpp b/m770/77g1.cpp index 9c867b3ed..5759b387a 100755 --- a/m770/77g1.cpp +++ b/m770/77g1.cpp @@ -1,20 +1,51 @@ // 77g1.cpp - Quadro G1 -#include -#include -#include -#include -#include -#include -#include #include +#include +#include +#include #include "quadrog1.h" -#include "77lib.h" #include "774200.h" #include "77g1a.h" -#include "771232.h" +#include "77lib.h" -HIDDEN const int RIGHE_PI = 11; +class TQuadroG1 : public TRelation_application +{ + private: + TRelation* _rel; + TMask* _msk; + long _codditta; + TString16 _quadro; + TString80 _title; + bool _registra; + + static bool prosp_notify(TSheet_field& s, int r, KEY k); + static bool mainmsk_handler(TMask& m, KEY k); + static bool aliquota_handler(TMask_field& f, KEY k); + + protected: + virtual bool user_create(); + virtual bool user_destroy(); + virtual int rewrite(const TMask& m); + virtual int read(TMask& m); + virtual int write (const TMask& m); + virtual bool remove(); + virtual TRelation* get_relation() const { return _rel; } + 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&); + void fill_arr(TMask& m); + void arr2rel(const TMask& m); + public: + const char* taitol() { return (const char*)_title; } + TMask& main_mask() const { return (TMask&) *_msk; } + + TQuadroG1(); + virtual ~TQuadroG1() {}; +}; + +inline TQuadroG1& app() { return (TQuadroG1&) main_app(); } TQuadroG1::TQuadroG1() { @@ -23,18 +54,92 @@ TQuadroG1::TQuadroG1() _title = "Quadro G1"; } -inline TQuadroG1& app() { return (TQuadroG1&) main_app(); } +bool TQuadroG1::aliquota_handler(TMask_field& f, KEY k) +{ + bool ok = TRUE; + if (k == K_TAB && f.focusdirty()) + { + TMask& m = f.mask(); + for (short id = 101; id <= 102; id++) + { + TEdit_field& utili = m.efield(id); + utili.set_dirty(); + utili.on_hit(); + } + } + if (k == K_ENTER) + { + TMask& m = f.mask(); + + TSheet_field& s = *m.get_sheet(); + const int selected = s.selected(); + TToken_string& row = s.row(selected); + + if (selected > 2 && !row.empty_items()) + { + const real aliquota = f.get(); + for (int i = 0; i < s.items(); i++) if (i != selected) + { + const real aliq = s.row(i).get(2); + if (aliquota == aliq) + { + ok = f.yesno_box("L'aliquota %s%% e' gia' stata utilizzata al rigo %d.\n" + "Si desidera sommare gli importi nello stesso rigo?", + (const char*)aliq.string(".2"), i+1); + if (ok) + { + // Forza aggiornamento riga corrente dello sheet con la maschera + row.cut(0); + for (short id = 101; id <= 107; id++) + row.add(m.get(id)); + + // Sceglie come destinazione la riga piu' in alto + int src = selected, dst = i; + if (src < dst) + { int tmp = src; src = dst; dst = tmp; } + + // Righe conivolte nella somma + TToken_string& srcrow = s.row(src); + TToken_string& dstrow = s.row(dst); + + for (int x = 0; x < 7; x++) if (x < 2 || x > 4) + { + real tot = dstrow.get(x); + if (x < 2 || dst != 2) + { + tot += real(srcrow.get(x)); + dstrow.add(tot.string(), x); + } + if (dst == selected) + m.set(101+x, tot); + else + m.reset(101+x); + } + if (src == selected) + { + m.reset(103); + s.force_update(dst); + } + else + { + srcrow.cut(0); + s.force_update(src); + } + } + break; + } + } + } + } + return ok; +} + void TQuadroG1::init_insert_mode (TMask& m) { fill_arr(m); } -void TQuadroG1::init_modify_mode (TMask& m) -{ - -} - int TQuadroG1::read(TMask& m) { int err = TRelation_application::read(m); @@ -45,205 +150,158 @@ int TQuadroG1::read(TMask& m) void TQuadroG1::init_query_mode (TMask& m) { - TString16 codditta; codditta << _codditta; - if (codditta != "0") + if (_codditta != 0) { - m.field(F_CODDITTA).set(codditta); + m.field(F_CODDITTA).set(_codditta); m.field(F_CODDITTA).check(); } m.send_key(K_AUTO_ENTER,0); -// init_mask(m); -} - -//void TQuadroG1::init_mask (TMask& m){} - -void TQuadroG1::update_totals(TSheet_field& f) -{ - int i = 0; - real tcol2, tcol3, tcol5, tcol6, tcol7; - tcol2 = tcol3 = tcol5 = tcol6 = tcol7 = ZERO; - TSheet_field& pI = f; -// Calcolo il totale - for (i = 0; i < RIGHE_PI; i++) - { - TToken_string& r = pI.row(i); - real c2(r.get(1)); - real c3(r.get(2)); - real c5(r.get(4)); - real c6(r.get(5)); - real c7(r.get(6)); - tcol2 += c2; - tcol3 += c3; - tcol5 += c5; - tcol6 += c6; - tcol7 += c7; - } -// Setto le celle di totale - TToken_string& row = pI.row(i); - row.add(tcol2.string(), 1); - row.add(tcol3.string(), 2); - row.add(tcol5.string(), 4); - row.add(tcol6.string(), 5); - row.add(tcol7.string(), 6); - pI.force_update(i); } 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 + _msk->set_handler(mainmsk_handler); - TSheet_field& p1 = (TSheet_field&) _msk->field(F_PI); - p1.set_notify(p1_notify); + TSheet_field& prosp = (TSheet_field&)_msk->field(F_PI); + prosp.set_notify(prosp_notify); + + TMask& sm = prosp.sheet_mask(); + sm.set_handler(103, aliquota_handler); + return TRUE; } bool TQuadroG1::user_destroy() { - delete _rel; delete _msk; + delete _rel; + delete _msk; if (_registra) - _rip.set(_quadro); + { + TRiporti rip; + rip.set(_quadro); + } return TRUE; } void TQuadroG1::arr2rel(const TMask& m) { - TToken_string p3a; - TToken_string p3b; - TToken_string p3c; - TToken_string p3d; - TToken_string p3e; - TToken_string p3f; - TRectype& r = _rel->curr(); - int dlg; dlg = 0; + TRecord_array arr(LF_QUAG1, "NPROG"); + arr.renum_key("CODDITTA", _codditta); -// Prospetto 3 - Prospetto delle ritenute - TSheet_field& pI = (TSheet_field&)m.field(F_PI); + int last_saved = 0; + TSheet_field& ss = (TSheet_field&)m.field(F_PI); - for (int i = 0; i < RIGHE_PI; i++) - { - TToken_string& r = pI.row(i); - TString ut94 (r.get(1)); // Salto data delibera che e' fisso - TString imp (r.get()); - TString ali (r.get()); - TString racc (r.get()); - TString rimp (r.get()); - TString utnsogg (r.get()); - p3a.add(ut94); - p3b.add(imp); - p3c.add(ali); - p3d.add(racc); - p3e.add(rimp); - p3f.add(utnsogg); + for (int i = 0; i < ss.items(); i++) + { + TToken_string& row = ss.row(i); + real tot; + const real utili1s = row.get(0); tot += utili1s; + const real utili2s = row.get(); tot += utili2s; + const real aliquota = row.get(); + const real racc1s = row.get(); tot += racc1s; + const real racc2s = row.get(); tot += racc2s; + const real rimp1s = row.get(); tot += rimp1s; + const real rimp2s = row.get(); tot += rimp2s; + if (i == 0 || tot > 0.0) + { + if (i < 2) + last_saved = i; + else + { + if (last_saved < 3) + last_saved = 3; + } + last_saved++; + + TRectype& rec = arr.row(last_saved, TRUE); + rec.put("UTILI1S", utili1s); + rec.put("UTILI2S", utili2s); + rec.put("ALIQUOTA", aliquota); + rec.put("RACCVER1S", racc1s); + rec.put("RACCVER2S", racc2s); + rec.put("RIMPVER1S", rimp1s); + rec.put("RIMPVER2S", rimp2s); + } } - r.put(QG1_P12, p3a); - r.put(QG1_P13, p3b); - r.put(QG1_P14, p3c); - r.put(QG1_P15, p3d); - r.put(QG1_P16, p3e); - r.put(QG1_P17, p3f); -// Salvo i totali che servono poi per i riporti (774200.cpp) - TToken_string& r_tot = pI.row(i); - real tot_col2(r_tot.get(1)); - real tot_col3(r_tot.get(2)); - real tot_col5(r_tot.get(4)); - real tot_col6(r_tot.get(5)); - real tot_col7(r_tot.get(6)); - r.put(QG1_P12TOT, tot_col2); - r.put(QG1_P13TOT, tot_col3); - r.put(QG1_P15TOT, tot_col5); - r.put(QG1_P16TOT, tot_col6); - r.put(QG1_P17TOT, tot_col7); + arr.rewrite(); } void TQuadroG1::fill_arr(TMask& m) { - TRectype& r = _rel->curr(); - TToken_string p3a(r.get(QG1_P12)); - TToken_string p3b(r.get(QG1_P13)); - TToken_string p3c(r.get(QG1_P14)); - TToken_string p3d(r.get(QG1_P15)); - TToken_string p3e(r.get(QG1_P16)); - TToken_string p3f(r.get(QG1_P17)); - int dlg, j; dlg = j = 0; - - const char* date_delib[20] = - { - "18-12-1977/31-12-1995", - "18-12-1977/31-12-1995", - "18-12-1977/31-12-1995", - "11-10-1976/17-12-1977", - "11-10-1976/17-12-1977", - "11-10-1976/17-12-1977", - "1-1-1974/10-10-1976", - "1-1-1974/10-10-1976", - "24-2-1964/31-12-1973", - "24-2-1964/31-12-1973", - "1-1-1963/23-2-1964" - }; + TRecord_array arr(LF_QUAG1, "NPROG"); + arr.renum_key("CODDITTA", _codditta); + arr.read(arr.key()); - const char* aliq[15] = - { - "10", - "12.5", - "30", - "10", - "30", - "50", - "10", - "30", - "5", - "30", - "15" - }; + int last = arr.last_row(); + if (last < 16) + last = 16; - TSheet_field& pI = (TSheet_field&)m.field(F_PI); - const int COL_ALIQ = 3; - int ind_aliq = 0; - for (int i = 1; i <= RIGHE_PI; i++) - { - TRectype& r = _rel->curr(); - TToken_string& row = pI.row(i-1); - row.add(date_delib[i-1]); - row.add(p3a.get(i-1)); - row.add(p3b.get(i-1)); - row.add(p3c.get(i-1)); - row.add(p3d.get(i-1)); - row.add(p3e.get(i-1)); - row.add(p3f.get(i-1)); - row.add(aliq[ind_aliq++], 3); - pI.disable_cell(i-1, COL_ALIQ); - } - - if (m.mode() == MODE_MOD) - update_totals(pI); - else - { -// Aggiungo la riga per i totali - TToken_string& row = pI.row(i-1); - row.add("Totali", 0); - pI.disable_cell(i-1, -1); - pI.force_update(); + TSheet_field& ss = (TSheet_field&)m.field(F_PI); + ss.destroy(); + for (int i = 0; i < last; i++) + { + TToken_string& row = ss.row(i); + if (arr.exist(i+1)) + { + const TRectype& r = arr.row(i+1); + row.add(r.get("UTILI1S"), 0); + row.add(r.get("UTILI2S"), 1); + if (i > 2) + row.add(r.get("ALIQUOTA"), 2); + if (i == 0) + { + row.add(r.get("RACCVER1S"), 3); + row.add(r.get("RACCVER2S"), 4); + } + if (i != 2) + { + row.add(r.get("RIMPVER1S"), 5); + row.add(r.get("RIMPVER2S"), 6); + } + } + + if (i < 3) + { + const char* const ali = i == 0 ? "10.00" : (i == 1 ? "12.50" : ""); + row.add(ali, 2); + ss.disable_cell(i, 2); + if (i == 2) + { + ss.disable_cell(i, 5); + ss.disable_cell(i, 6); + } + } + if (i > 0) + { + ss.disable_cell(i, 3); + ss.disable_cell(i, 4); + } } } int TQuadroG1::write(const TMask& m) { - arr2rel(m); int err = TRelation_application::write(m); + if (err == NOERR) + arr2rel(m); _registra = err == NOERR; return err; } int TQuadroG1::rewrite(const TMask& m) { - arr2rel(m); int err = TRelation_application::rewrite(m); + if (err == NOERR) + arr2rel(m); _registra = err == NOERR; return err; } @@ -254,35 +312,41 @@ bool TQuadroG1::remove() return _registra; } -bool TQuadroG1::p1_notify(TSheet_field& s, int r, KEY k) +bool TQuadroG1::prosp_notify(TSheet_field& s, int r, KEY k) { + bool ok = TRUE; switch(k) { - case K_ENTER: - update_totals(s); + case K_CTRL+K_INS: + s.disable_cell(r, 3); + s.disable_cell(r, 4); break; - case K_SPACE: - break; -// Rifiuta di entrare sull'ultima riga - case K_TAB: - return r < RIGHE_PI; - break; - case K_INS: - if (s.mask().is_running()) - return FALSE; // rifiuta inserimento di nuove righe + case K_DEL: + ok = r > 2; break; default: break; } - return TRUE; + return ok; } bool TQuadroG1::mainmsk_handler(TMask& m, KEY k) { if (k == K_ESC) { - TOperable_field& f = m.focus_field(); - m.set_focus_field(f.dlg()); - } + TOperable_field& f = m.focus_field(); + m.set_focus_field(f.dlg()); + } return TRUE; } + +/////////////////////////////////////////////////////////// +// Funzione chiamata dal main +/////////////////////////////////////////////////////////// + +bool quadro_g1(int argc, char* argv[]) +{ + TQuadroG1 a; + a.run(argc, argv, a.taitol()); + return TRUE; +} \ No newline at end of file diff --git a/m770/77g1a.uml b/m770/77g1a.uml index c46e284c6..7c4bbc89b 100755 --- a/m770/77g1a.uml +++ b/m770/77g1a.uml @@ -30,22 +30,31 @@ BEGIN FLAGS "D" MESSAGE COPY,2@ END + +LIST DLG_NULL 1 +BEGIN + PROMPT 80 80 "Numero riga" + FIELD NPROG + ITEM "1|1" + FLAGS "D" + KEY 1 +END TEXT DLG_NULL BEGIN - PROMPT 1 3 "@bProspetto degli utili e delle ritenute" + PROMPT 1 3 "@bUtili dei titoli esteri distribuiti nell'anno 1996" END SPREADSHEET F_PI 0 13 BEGIN PROMPT 0 4 "" - ITEM "Anni@21" - ITEM "Utili corr. nel 1995" - ITEM "Importo" + ITEM "Utili nel I\nsemestre 1996@15" + ITEM "Utili nel II\nsemestre 1996@15" ITEM "Aliquota" - ITEM "Rit.acconto" - ITEM "Rit.imposta" - ITEM "Utili non assog.a ritenuta" + ITEM "Rit. acc.\n20/7/1996@15" + ITEM "Rit. acc.\n20/1/1997@15" + ITEM "Rit. imp.\n20/7/1996@15" + ITEM "Rit. imp.\n20/1/1997@15" END ENDPAGE diff --git a/m770/77g1pa.uml b/m770/77g1pa.uml index a21dffa53..e2940e76b 100755 --- a/m770/77g1pa.uml +++ b/m770/77g1pa.uml @@ -1,68 +1,84 @@ // 77g1pa.uml - Quadro G-1 prospetto -PAGE "" -1 -1 76 11 +PAGE "" -1 -1 62 13 -STRING 101 21 +GROUP DLG_NULL 60 3 BEGIN - PROMPT 1 1 "Delibera " - FLAGS "D" + PROMPT 1 1 "@bUtili corrisposti nel 1996" +END + +NUMBER 101 15 +BEGIN + PROMPT 2 2 "I semestre " + PICTURE "." + GROUP 1 END NUMBER 102 15 BEGIN - PROMPT 1 2 "Utili corrisposti nel 1994 " + PROMPT 32 2 "II semestre " PICTURE "." GROUP 1 END -NUMBER 103 15 -BEGIN - PROMPT 1 3 "Importo " - PICTURE "." - GROUP 1 -END - -NUMBER 104 6 +NUMBER 103 6 BEGIN - PROMPT 1 4 "Aliquota " + PROMPT 1 4 "Aliquota " PICTURE ".2" - NUM_EXPR {(#THIS>=0) && (#THIS<=100)} + NUM_EXPR {(#103>=0) && (#103<=100)} END -NUMBER 105 15 +GROUP DLG_NULL 60 3 BEGIN - PROMPT 1 5 "Ritenuta d'acconto " + PROMPT 1 5 "@bRitenute d'acconto versate entro il" +END + +NUMBER 104 15 +BEGIN + PROMPT 2 6 "20/7/1996 " PICTURE "." GROUP 1 END -NUMBER 106 15 +NUMBER 105 15 BEGIN - PROMPT 1 6 "Ritenuta d'imposta " + PROMPT 32 6 "20/1/1997 " PICTURE "." GROUP 1 END +GROUP DLG_NULL 60 3 +BEGIN + PROMPT 1 8 "@bRitenute d'imposta versate entro il" +END + +NUMBER 106 15 +BEGIN + PROMPT 2 9 "20/7/1996 " + PICTURE "." + GROUP 1 +END + NUMBER 107 15 -BEGIN - PROMPT 1 7 "Utili non assoggettati a ritenuta " +BEGIN + PROMPT 32 9 "20/1/1997 " PICTURE "." GROUP 1 END BUTTON DLG_OK 9 2 BEGIN - PROMPT -13 -1 "" + PROMPT -14 -1 "" END BUTTON DLG_CANCEL 9 2 BEGIN - PROMPT -23 -1 "" + PROMPT -24 -1 "" END BUTTON DLG_AZZERA 9 2 BEGIN - PROMPT -33 -1 "A~zzera" + PROMPT -34 -1 "A~zzera" MESSAGE RESET,1@ END diff --git a/m770/77lib.h b/m770/77lib.h index 9396dee2d..731e05c95 100755 --- a/m770/77lib.h +++ b/m770/77lib.h @@ -33,7 +33,7 @@ HIDDEN const char* ST_DOC = "StDocNoPag"; HIDDEN const char* DITTA_770 = "Ditta770"; // Arrotonda modificato { 1500 -> 1000 (e non 2000 come in round(-3)) } -real& round_770(const real& importo); +const real& round_770(const real& importo); // Cerca di stabilire se il titolare della ditta e' PF o PG char tipo_persona (long codditta); @@ -80,8 +80,11 @@ int anno_770(); // Mette i totali nei due parametri passati per riferimento int conta_tipiper(const long codit, TString& quadro, int* NumFisiche, int* NumNoFisiche); -// TRUE se c'e' almeno un record sul quadro L -bool esiste_record_L(const long codditta, const int annodic); +// Ritorna il numero di quadri L aggiuntivi +int num_quadri_L_agg(const long codditta); + +// Ritorna il numero di quadri N,P,Q,R,S,T aggiuntivi +int num_quadri_N_agg(const long codditta); // TRUE se la codditta e' sogg. dichiarante bool sogg_dic (const long codditta); diff --git a/m770/77lib01.cpp b/m770/77lib01.cpp index 80556428d..55602c1e6 100755 --- a/m770/77lib01.cpp +++ b/m770/77lib01.cpp @@ -5,21 +5,22 @@ #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 "77lib.h" +#include "77lib.h" -HIDDEN real __dep; -HIDDEN TString80 __tmp; -HIDDEN const char* _build_key(TVersamento& vers); -HIDDEN long _codditta_770 = 0L; // La ditta corrente 770 +HIDDEN real __dep; +HIDDEN TString80 __tmp; +HIDDEN const char* _build_key(TVersamento& vers); +HIDDEN long _codditta_770 = 0L; // La ditta corrente 770 -#define QUALIF_EREDE "11" +#define QUALIF_EREDE "11" ////////////////////////////////////////////////////////////////////////////// // Utility varie @@ -102,7 +103,7 @@ const char* get_desc_cau(const char* codcau) // L'unica differenza con round(-3) e' il comportamento // alle 500 lire. // -real& round_770(const real& importo) +const real& round_770(const real& importo) { __dep = ZERO; __dep = importo / 1000.00; @@ -397,10 +398,10 @@ TToken_string get_anag_address(char tip_anag, long cod_anag) // decodifica indirizzo if (anag.read() == NOERR) { - cod_comune_df = anag.get(ANA_COMRF); - cod_comune_re = anag.get(ANA_COMRES); - - // indicato domicilio fiscale + cod_comune_df = anag.get(ANA_COMRF); + cod_comune_re = anag.get(ANA_COMRES); + + // indicato domicilio fiscale if (cod_comune_df != "") { indirizzo = anag.get(ANA_INDRF); @@ -419,23 +420,23 @@ TToken_string get_anag_address(char tip_anag, long cod_anag) } // lettura anagrafica comuni - comuni.setkey(1); - comuni.zero(); - comuni.put(COM_COM,cod_comune); + comuni.setkey(1); + comuni.zero(); + comuni.put(COM_COM,cod_comune); - // decodifica località e provincia - if (comuni.read() == NOERR) - { - localita = comuni.get(COM_DENCOM); - provincia= comuni.get(COM_PROVCOM); - } - - // preparazione token_string - address=localita; - address.add(indirizzo); - address.add(numerociv); - address.add(cap); - address.add(provincia); + // decodifica località e provincia + if (comuni.read() == NOERR) + { + localita = comuni.get(COM_DENCOM); + provincia= comuni.get(COM_PROVCOM); + } + + // preparazione token_string + address=localita; + address.add(indirizzo); + address.add(numerociv); + address.add(cap); + address.add(provincia); } return address; @@ -526,28 +527,177 @@ bool enter_dichiar_770(long codditta, int anno_dic, bool sogg_dich) 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; +// Ritorna numero quadri L aggiuntivi +int num_quadri_L_agg(const long codditta) +{ + // numero righe su modulo base + const int rbase = 15; + + // numero righe su modulo aggiuntivo + const int ragg = 27; + + // filtro per cursori + TString filt; + filt.format("CODDITTA=%ld", codditta); + + // istanza relazione per cursore + TRelation* rl; + rl = new TRelation (LF_QUAL); + + // istanza cursore + TCursor* cl; + cl = new TCursor(rl,filt,1); + + // numero righe compilate + int righe = (int)cl->items(); + + // libera istanze + delete cl; + delete rl; + + // quadri esauriti sul modulo base + righe -= rbase; + if (righe <= 0) + return 0; + + // calcola numero quadri aggiuntivi + div_t div_result; + div_result = div(righe, ragg); + if (div_result.rem) + div_result.quot++; + return div_result.quot; +} + +// Ritorna numero quadri N,P,Q,R,S,T aggiuntivi +int num_quadri_N_agg(const long codditta) +{ + // numero righe su modulo base + const int rbasen = 6; + const int rbasep = 4; + const int rbaseq = 4; + const int rbaser = 4; + const int rbases = 5; + const int rbaset = 4; + + // numero righe su modulo aggiuntivo + const int raggn = 8; + const int raggp = 11; + const int raggq = 4; + const int raggr = 6; + const int raggs = 7; + const int raggt = 4; + + // filtro per cursori + TString filt; + filt.format("CODDITTA=%ld", codditta); + + // istanza relazioni per cursori + TRelation* rn; + rn = new TRelation (LF_QUAN); + TRelation* rp; + rp = new TRelation (LF_QUAP); + TRelation* rq; + rq = new TRelation (LF_QUAQ); + TRelation* rr; + rr = new TRelation (LF_QUAR); + TRelation* rs; + rs = new TRelation (LF_QUAS); + TRelation* rt; + rt = new TRelation (LF_QUAT); + + // istanza cursori + TCursor* cn; + cn = new TCursor(rn,filt,1); + TCursor* cp; + cp = new TCursor(rp,filt,1); + TCursor* cq; + cq = new TCursor(rq,filt,1); + TCursor* cr; + cr = new TCursor(rr,filt,1); + TCursor* cs; + cs = new TCursor(rs,filt,1); + TCursor* ct; + ct = new TCursor(rt,filt,1); + + // numero righe compilate + int righen = (int)cn->items(); + int righep = (int)cp->items(); + int righeq = (int)cq->items(); + int righer = (int)cr->items(); + int righes = (int)cs->items(); + int righet = (int)ct->items(); + + // libera istanze + delete cn; + delete rn; + delete cp; + delete rp; + delete cq; + delete rq; + delete cr; + delete rr; + delete cs; + delete rs; + delete ct; + delete rt; + + // quadri esauriti sul modulo base + righen -= rbasen; + righep -= rbasep; + righeq -= rbaseq; + righer -= rbaser; + righes -= rbases; + righet -= rbaset; + if (righen<=0 && righep<=0 && righeq<=0 && righer<=0 && righes<=0 && righet<=0) + return 0; + + // calcola numero quadri aggiuntivi + int qagg = 0; + div_t div_result; + // quadri N + div_result = div(righen, raggn); + if (div_result.rem) + div_result.quot++; + if (div_result.quot > qagg) + qagg = div_result.quot; + // quadri P + div_result = div(righep, raggp); + if (div_result.rem) + div_result.quot++; + if (div_result.quot > qagg) + qagg = div_result.quot; + // quadri Q + div_result = div(righeq, raggq); + if (div_result.rem) + div_result.quot++; + if (div_result.quot > qagg) + qagg = div_result.quot; + // quadri R + div_result = div(righer, raggr); + if (div_result.rem) + div_result.quot++; + if (div_result.quot > qagg) + qagg = div_result.quot; + // quadri S + div_result = div(righes, raggs); + if (div_result.rem) + div_result.quot++; + if (div_result.quot > qagg) + qagg = div_result.quot; + // quadri T + div_result = div(righet, raggt); + if (div_result.rem) + div_result.quot++; + if (div_result.quot > qagg) + qagg = div_result.quot; + + return qagg; } long sogg_estinto(const long codditta) { TLocalisamfile base(LF_BASE); - long coddic = 0L; + long coddic = 0L; base.zero(); base.setkey(1); @@ -675,7 +825,7 @@ bool TPercipiente::elimina_schede() int TSchedaP::anno_doc() const { - int anno_doc; + int anno_doc; anno_doc = _data_doc.year(); return anno_doc; } @@ -841,8 +991,8 @@ void TVersamento_stampa::set(const long codditta, const char tipoa, const long c (_tipoa != '\0' && tipoa != _tipoa) || (_codditta != 0 && _codditta != codditta) || (_codanagr != 0 && _codanagr != codanagr) ) { - _gia_letti_pag = FALSE; - _importo_versato = ZERO; + _gia_letti_pag = FALSE; + _importo_versato = ZERO; _importo_versato_residuo = ZERO; } @@ -894,8 +1044,8 @@ HIDDEN TVersamento __vers; 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; + 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 diff --git a/m770/77qb.h b/m770/77qb.h index b629836ad..a4851f119 100755 --- a/m770/77qb.h +++ b/m770/77qb.h @@ -43,10 +43,13 @@ #define QBF_IMPOCSSN 222 #define QBF_RAGDITTA 223 #define QBF_ANADIP_CODDIP 224 -#define QBF_QUAB_CODDIP 225 +#define QBF_QUAB_CODDIP 225 -#define QBF_COGNOME 226 -#define QBF_NOME 227 +#define QBF_COGNOME 226 +#define QBF_NOME 227 +#define QBF_CODDIP_ANAG 228 +#define QBF_CODDIP_QB 229 +#define F_QB2122TIPO 230 #define GROUP_EREDE 2 #define GROUP_DIPDEC 3 @@ -58,9 +61,6 @@ #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/77qba.uml b/m770/77qba.uml index e6c043aeb..65952c1b3 100755 --- a/m770/77qba.uml +++ b/m770/77qba.uml @@ -13,7 +13,7 @@ END NUMBER QBF_CODDITTA 5 BEGIN PROMPT 3 1 "Ditta " - FLAGS "GRD" + FLAGS "GRDP" KEY 1 CHECKTYPE REQUIRED USE LF_NDITTE KEY 1 @@ -25,13 +25,13 @@ END STRING QBF_RAGDITTA 50 BEGIN PROMPT 17 1 "Ragione " - FLAGS "D" + FLAGS "DP" END NUMBER QBF_ANNODIC 4 BEGIN PROMPT 52 3 "Anno dichiarazione " - FLAGS "DR" + FLAGS "DRP" END TEXT DLG_NULL diff --git a/m770/77qbb.uml b/m770/77qbb.uml index 390b68745..ff413f02e 100755 --- a/m770/77qbb.uml +++ b/m770/77qbb.uml @@ -227,7 +227,7 @@ END #define COLTFR0 25 #define COLTFR1 26 -#define COLTFR2 35 //27 +#define COLTFR2 38 //27 #define COLTFR3 49 //33 #define COLTFR4 59 //40 @@ -236,7 +236,7 @@ END GROUPBOX DLG_NULL 53 4 BEGIN - PROMPT COLTFR0 8 "TFR o ind.equip. corrisposti nel 1995 " + PROMPT COLTFR0 8 "TFR o ind.equip. corrisposti nel 1996" END TEXT DLG_NULL @@ -244,12 +244,14 @@ BEGIN PROMPT COLTFR1 RIGTFR1 "17 Mese" END -NUMBER QBF_MESEEROG 2 +LISTBOX QBF_MESEEROG 9 BEGIN - PROMPT 28 RIGTFR2 "" - NUM_EXPR {(#THIS>=0) && (#THIS<13)} - WARNING "Mese non valido" - FIELD LF_QUAB->MESEEROG + PROMPT COLTFR1 RIGTFR2 "" + ITEM " | " + FIELD LF_QUAB->MESEEROG + FLAGS "M" + VALIDATE REQIF_FUNC 1 QBF_AMMNETTO + WARNING "Inserire il mese erogazione" GROUP GROUP_ALL END @@ -260,16 +262,18 @@ END STRING QBF_TITEROG 1 BEGIN - PROMPT 39 RIGTFR2 "" + PROMPT 42 RIGTFR2 "" SHEET "Codice|Descrizione@15" INPUT QBF_TITEROG - ITEM "|" + ITEM "|Niente" ITEM "A|Anticipazione" ITEM "B|Saldo" ITEM "C|Acconto" OUTPUT QBF_TITEROG FIELD LF_QUAB->TITEROG - FLAGS "U" + FLAGS "U" + VALIDATE REQIF_FUNC 1 QBF_AMMNETTO + WARNING "Inserire il titolo erogazione" GROUP GROUP_ALL END @@ -296,23 +300,24 @@ BEGIN PROMPT COLTFR4 RIGTFR2 "" PICTURE "." FLAGS "R" - FIELD LF_QUAB->AMMNETTO + FIELD LF_QUAB->AMMNETTO + MESSAGE DIRTY,QBF_MESEEROG GROUP GROUP_ALL END -#define COLTFRB0 2 -#define COLTFRB1 2 -#define COLTFRB2 7 -#define COLTFRB3 14 -#define COLTFRB4 31 +#define COLTFRB0 2 +#define COLTFRB1 2 +#define COLTFRB2 14 +#define COLTFRB3 21 +#define COLTFRB4 38 #define RIGTFRB0 14 #define RIGTFRB1 15 #define RIGTFRB2 16 -GROUPBOX DLG_NULL 48 6 +GROUPBOX DLG_NULL 55 6 BEGIN - PROMPT 1 13 "Altre indennità corrisposte nel 1995" + PROMPT 1 13 "Altre indennità corrisposte nel 1996" END TEXT DLG_NULL @@ -325,13 +330,14 @@ BEGIN PROMPT COLTFRB1 RIGTFRB1 "Mese" END - -NUMBER QBF_MESEEROG2 2 +LISTBOX QBF_MESEEROG2 9 BEGIN - PROMPT COLTFRB1 RIGTFRB2 "" - FIELD LF_QUAB->MESEEROG2 - NUM_EXPR {(#THIS>=0) && (#THIS<13)} - WARNING "Mese non valido" + PROMPT COLTFRB1 RIGTFRB2 "" + ITEM " | " + FIELD LF_QUAB->MESEEROG2 + FLAGS "M" + VALIDATE REQIF_FUNC 1 QBF_AMMNETTO2 + WARNING "Inserire il mese erogazione" GROUP GROUP_ALL END @@ -347,16 +353,18 @@ END STRING QBF_TITEROG2 1 BEGIN - PROMPT /*COLTFR2*/ 8 RIGTFRB2 "" + PROMPT 15 RIGTFRB2 "" SHEET "Codice|Descrizione@15" INPUT QBF_TITEROG2 - ITEM "|" + ITEM "|Niente" ITEM "A|Anticipazione" ITEM "B|Saldo" ITEM "C|Acconto" OUTPUT QBF_TITEROG2 FIELD LF_QUAB->TITEROG2 - FLAGS "U" + FLAGS "U" + VALIDATE REQIF_FUNC 1 QBF_AMMNETTO2 + WARNING "Inserire il titolo erogazione" GROUP GROUP_ALL END @@ -393,7 +401,8 @@ BEGIN PROMPT COLTFRB4 RIGTFRB2 "" PICTURE "." FLAGS "R" - FIELD LF_QUAB->AMMNETTO2 + FIELD LF_QUAB->AMMNETTO2 + MESSAGE DIRTY,QBF_MESEEROG2 GROUP GROUP_ALL END @@ -419,7 +428,7 @@ PAGE "2" -1 -1 78 18 #define C2 22 #define C3 57 -GROUPBOX DLG_NULL 41 4 +GROUPBOX DLG_NULL 45 4 BEGIN PROMPT 1 1 "Acconti e anticipazioni erogati dal 74 al 94" END @@ -440,7 +449,7 @@ END TEXT DLG_NULL BEGIN - PROMPT C2 2 "27 Altre inden." + PROMPT C2 2 "27 Altre indennità" END NUMBER QBF_INDEN7494 15 @@ -644,19 +653,37 @@ BEGIN END // SESTA RIGA -GROUPBOX DLG_NULL 38 4 +GROUPBOX DLG_NULL 55 4 BEGIN PROMPT 1 15 "Art.2122 COD. CIV." +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 16 "41 Tipo" +END + +STRING F_QB2122TIPO 1 +BEGIN + PROMPT 5 17 "" + SHEET "Codice|Descrizione@60" + INPUT F_QB2122TIPO + ITEM "|Niente" + ITEM "1|Se trattasi di erogazione di indennità ai sensi dell'art.2122" + ITEM "2|In caso di eredità" + OUTPUT F_QB2122TIPO + FIELD LF_QUAB->QB2122TIPO + GROUP GROUP_DIPDEC GROUP_EREDE END TEXT DLG_NULL BEGIN - PROMPT 2 16 "41 Quota spett." + PROMPT 19 16 "42 Quota spett." END NUMBER QBF_QUOTASPET 15 BEGIN - PROMPT 2 17 "" + PROMPT 19 17 "" PICTURE "." FLAGS "R" FIELD LF_QUAB->QUOTASPET @@ -665,12 +692,12 @@ END TEXT DLG_NULL BEGIN - PROMPT 19 16 "42 Indennità spett." + PROMPT 37 16 "43 Indennità spett." END NUMBER QBF_INDSPETT 15 BEGIN - PROMPT 19 17 "" + PROMPT 37 17 "" PICTURE "." FLAGS "R" FIELD LF_QUAB->INDSPETT @@ -679,12 +706,12 @@ END TEXT DLG_NULL BEGIN - PROMPT 40 16 "43 Rit. operate " + PROMPT 1 19 "44 Rit. operate " END NUMBER QBF_ROPE 15 BEGIN - PROMPT 40 17 "" + PROMPT 1 20 "" PICTURE "." FLAGS "R" FIELD LF_QUAB->ROPE @@ -693,12 +720,12 @@ END TEXT DLG_NULL BEGIN - PROMPT 57 16 "44 Impon. CSSN " + PROMPT 19 19 "45 Impon. CSSN " END NUMBER QBF_IMPOCSSN 15 BEGIN - PROMPT 57 17 "" + PROMPT 19 20 "" PICTURE "." FLAGS "R" FIELD LF_QUAB->IMPOCSSN diff --git a/m770/77qgd.h b/m770/77qgd.h index 9f198d750..3ebaac196 100755 --- a/m770/77qgd.h +++ b/m770/77qgd.h @@ -1,26 +1,27 @@ // 77qgd.h -#define F_CODDITTA 101 -#define F_TIPOA 102 -#define F_CODANAGR 103 -#define F_NPROG 104 -#define F_UTSPETT 105 -#define F_UTPAG 106 -#define F_ROPE 107 -#define F_NUMQUOTE 108 +#define F_CODDITTA 101 +#define F_TIPOA 102 +#define F_CODANAGR 103 +#define F_NPROG 104 +#define F_UTSPETT 105 +#define F_UTPAG 106 +#define F_ROPE 107 +#define F_NUMQUOTE 108 -#define F_RAGSOC 109 -#define F_RAGSOCCOM 110 -#define F_RAGDITTA 111 -#define F_ANNODIC 112 -#define F_TIPOAF 113 -#define F_CODANAGRPERC 114 -#define F_CODANAGRCOM 115 -#define F_RAGSOCPER 116 +#define F_RAGSOC 109 +#define F_RAGSOCCOM 110 +#define F_RAGDITTA 111 +#define F_ANNODIC 112 +#define F_TIPOAF 113 +#define F_CODANAGRPERC 114 +#define F_CODANAGRCOM 115 +#define F_RAGSOCPER 116 -#define F_RAGSOC2 117 +#define F_RAGSOC2 117 #define F_CODANAGR2 118 #define F_ROPESPET 119 +#define DLG_GENERA 400 diff --git a/m770/77qgda.uml b/m770/77qgda.uml index a5b773603..bf04470a2 100755 --- a/m770/77qgda.uml +++ b/m770/77qgda.uml @@ -2,7 +2,57 @@ #include "77qgd.h" TOOLBAR "" 0 20 0 2 -#include +BUTTON DLG_SAVEREC 8 2 +BEGIN + PROMPT -17 -1 "~Registra" + MESSAGE EXIT,K_SAVE + PICTURE BMP_SAVEREC + PICTURE BMP_SAVERECDN +END + +BUTTON DLG_NEWREC 8 2 +BEGIN + PROMPT -27 -1 "~Nuovo" + MESSAGE EXIT,K_INS + PICTURE BMP_NEWREC + PICTURE BMP_NEWRECDN +END + +BUTTON DLG_DELREC 8 2 +BEGIN + PROMPT -37 -1 "~Elimina" + MESSAGE EXIT,K_DEL + PICTURE BMP_DELREC + PICTURE BMP_DELRECDN +END + +BUTTON DLG_FINDREC 8 2 +BEGIN + PROMPT -47 -1 "Ri~cerca" + MESSAGE EXIT,K_F9 + PICTURE 126 +END + +BUTTON DLG_CANCEL 8 2 +BEGIN + PROMPT -57 -1 "~Annulla" + MESSAGE EXIT,K_ESC + PICTURE 102 +END + +BUTTON DLG_QUIT 8 2 +BEGIN + PROMPT -67 -1 "~Fine" + MESSAGE EXIT,K_QUIT + PICTURE BMP_QUIT + PICTURE BMP_QUITDN +END + +BUTTON DLG_GENERA 8 2 +BEGIN + PROMPT -77 -1 "~Genera" +END + ENDPAGE // @@ -57,13 +107,14 @@ LIST F_TIPOA 1 12 BEGIN PROMPT 2 7 "" ITEM "F|Fisica" - MESSAGE COPY,F_TIPOAF +// MESSAGE COPY,F_TIPOAF ITEM "G|Giuridica" - MESSAGE COPY,F_TIPOAF +// MESSAGE COPY,F_TIPOAF FIELD LF_QUAGD->TIPOA KEY 1 END +/* LIST F_TIPOAF 1 12 BEGIN PROMPT 7 "" @@ -71,6 +122,7 @@ BEGIN ITEM "G|Giuridica" FLAGS "H" END +*/ NUMBER F_CODANAGR 5 BEGIN diff --git a/m770/77qp.h b/m770/77qp.h index 2b59c907c..ddd015414 100755 --- a/m770/77qp.h +++ b/m770/77qp.h @@ -1,20 +1,23 @@ -// 77qp.h -#define QPF_NPROG 102 -#define QPF_RAGDITTA 103 -#define QPF_IMPOSTA 104 -#define QPF_INTERDIP 105 -#define QPF_INTERDAT 106 -#define QPF_TIPOVERS 107 -#define QPF_CODTRIB 108 -#define QPF_DATAVERS 109 -#define QPF_NUMERO 110 -#define QPF_SERIE 111 -#define QPF_ABI 112 -#define QPF_CAB 113 +// 77qp.h +#define QPF_NPROG 102 +#define QPF_RAGDITTA 103 +#define QPF_IMPOSTA 104 +#define QPF_INTERDIP 105 +#define QPF_INTERDAT 106 +#define QPF_TIPOVERS 107 +#define QPF_CODTRIB 108 +#define QPF_DATAVERS 109 +#define QPF_NUMERO 110 +#define QPF_SERIE 111 +#define QPF_ABI 112 +#define QPF_CAB 113 -#define QPF_CODDITTA 181 -#define QPF_ANNODIC 182 +#define QPF_DATACON 120 +#define QPF_MESECON 121 + +#define QPF_CODDITTA 181 +#define QPF_ANNODIC 182 -#define QPF_CCQUIETANZA 183 +#define QPF_CCQUIETANZA 183 diff --git a/m770/77qp.uml b/m770/77qp.uml index 9cd674b21..c20bd7283 100755 --- a/m770/77qp.uml +++ b/m770/77qp.uml @@ -4,14 +4,10 @@ TOOLBAR "" 0 20 0 2 #include ENDPAGE -// -// Lista modifiche -// 2.4.96 Messo CAB di 5. Abi e Cab zerofilled -// -#define G_ABICAB 7 -#define G_DISTINTA 8 -#define G_CC 9 +#define G_ABICAB 7 +#define G_DISTINTA 8 +#define G_CC 9 PAGE "Quadro P" -1 -1 78 18 @@ -43,28 +39,42 @@ BEGIN PROMPT 52 3 "Anno dichiarazione " FLAGS "DRP" END - + NUMBER QPF_NPROG 4 BEGIN - PROMPT 1 5 "Numero " + PROMPT 2 5 "Numero " FIELD LF_QUAP->NPROG USE LF_QUAP SELECT (CODDITTA=#QPF_CODDITTA) INPUT CODDITTA QPF_CODDITTA SELECT INPUT NPROG QPF_NPROG - DISPLAY "Num." NPROG - DISPLAY "Imposta versata" IMPOSTA - DISPLAY "Interessi dipendente" INTERDIP - DISPLAY "Interessi datore di lavoro" INTERDAT - DISPLAY "Tipo" TIPOVERS - DISPLAY "Codice tributo" CODTRIB - DISPLAY "Data versamento" DATAVERS - DISPLAY "Serie/ABI" SERIE - DISPLAY "Numero/Bollettino/CAB" NUMERO + DISPLAY "Num." NPROG + DISPLAY "Imposta versata" IMPOSTA + DISPLAY "Interessi dipendente" INTERDIP + DISPLAY "Interessi datore di lavoro" INTERDAT + DISPLAY "Tipo" TIPOVERS + DISPLAY "Codice tributo" CODTRIB + DISPLAY "Data versamento" DATAVERS + DISPLAY "Serie/ABI" SERIE + DISPLAY "Numero/Bollettino/CAB" NUMERO OUTPUT QPF_NPROG NPROG CHECKTYPE REQUIRED KEY 1 END +DATE QPF_DATACON +BEGIN + PROMPT 26 80 "Data conguaglio " + FLAGS "D" + FIELD MESECONG +END + +LIST QPF_MESECON 1 12 +BEGIN + PROMPT 26 5 "Mese conguaglio " + FLAGS "M" + FIELD MESECONG[4,5] +END + TEXT DLG_NULL BEGIN PROMPT 2 7 "Imposta o soprattassa" @@ -81,6 +91,8 @@ BEGIN FIELD LF_QUAP->IMPOSTA PICTURE "." FLAGS "R" + CHECKTYPE REQUIRED + WARNING "Manca l-immposta o soppratassa versata" END TEXT DLG_NULL @@ -119,7 +131,7 @@ BEGIN FLAGS "R" END -GROUPBOX DLG_NULL 0 6 +GROUPBOX DLG_NULL 78 6 BEGIN PROMPT 1 10 "" END @@ -174,7 +186,7 @@ BEGIN PROMPT 23 14 "" FIELD LF_QUAP->SERIE WARNING "Manca la serie" - VALIDATE REQIF_FUNC 1 QPF_TIPOVERS + CHECKTYPE REQUIRED GROUP G_DISTINTA END @@ -182,7 +194,7 @@ STRING QPF_NUMERO 11 BEGIN PROMPT 58 14 "" WARNING "Manca il numero" - VALIDATE REQIF_FUNC 1 QPF_TIPOVERS + CHECKTYPE REQUIRED FIELD LF_QUAP->NUMERO GROUP G_DISTINTA END @@ -197,8 +209,16 @@ NUMBER QPF_ABI 5 BEGIN PROMPT 23 14 "" FIELD LF_QUAP->SERIE + USE %BAN SELECT CODTAB ?= "??????????" + INPUT CODTAB[1,5] QPF_ABI + INPUT CODTAB[6,10] QPF_CAB + DISPLAY "ABI@5" CODTAB[1,5] + DISPLAY "CAB@5" CODTAB[6,10] + DISPLAY "Denominazione@50" S0 + OUTPUT QPF_ABI CODTAB[1,5] + OUTPUT QPF_CAB CODTAB[6,10] + CHECKTYPE REQUIRED WARNING "Manca il codice ABI" - VALIDATE REQIF_FUNC 1 QPF_TIPOVERS FLAGS "Z" GROUP G_ABICAB END @@ -212,9 +232,10 @@ END NUMBER QPF_CAB 5 BEGIN PROMPT 58 14 "" - FIELD LF_QUAP->NUMERO + FIELD LF_QUAP->NUMERO + COPY ALL QPF_ABI WARNING "Manca il codice CAB" - VALIDATE REQIF_FUNC 1 QPF_TIPOVERS + CHECKTYPE REQUIRED FLAGS "Z" GROUP G_ABICAB END @@ -223,7 +244,7 @@ STRING QPF_CCQUIETANZA 11 BEGIN PROMPT 58 14 "" WARNING "Manca il numero quietanza" - VALIDATE REQIF_FUNC 1 QPF_TIPOVERS + CHECKTYPE REQUIRED FIELD LF_QUAP->NUMERO GROUP G_CC END diff --git a/m770/77qq.uml b/m770/77qq.uml index 3ec489e6e..ed36f4ef2 100755 --- a/m770/77qq.uml +++ b/m770/77qq.uml @@ -43,16 +43,16 @@ BEGIN USE LF_QUAQ SELECT (CODDITTA=#QQF_CODDITTA) INPUT CODDITTA QQF_CODDITTA SELECT INPUT NPROG QQF_NPROG - DISPLAY "Num." NPROG - DISPLAY "Mese" MESEPAG - DISPLAY "Anno" ANNOPAG - DISPLAY "Contributo versato" CONTVERS - DISPLAY "Contributo rimborsato" CONTRIMB - DISPLAY "Interessi o soprattasse" INTERESSI - DISPLAY "Cod.reg." CODREG - OUTPUT QQF_NPROG NPROG - OUTPUT QQF_CONTRIMB CONTRIMB - OUTPUT QQF_CONTVERS CONTVERS + DISPLAY "Num." NPROG + DISPLAY "Mese" MESEPAG + DISPLAY "Anno" ANNOPAG + DISPLAY "Contributo versato" CONTVERS + DISPLAY "Contributo rimborsato" CONTRIMB + DISPLAY "Interessi o soprattasse" INTERESSI + DISPLAY "Cod.reg." CODREG + OUTPUT QQF_NPROG NPROG + OUTPUT QQF_CONTRIMB CONTRIMB + OUTPUT QQF_CONTVERS CONTVERS CHECKTYPE REQUIRED KEY 1 END @@ -76,9 +76,8 @@ LIST QQF_MESERIF 1 12 BEGIN PROMPT 2 9 "" FIELD LF_QUAQ->MESEPAG - WARNING "Manca il mese" + ITEM " | " FLAGS "M" - ITEM "|" END TEXT DLG_NULL diff --git a/m770/77qr.h b/m770/77qr.h index 2570e324e..410232f91 100755 --- a/m770/77qr.h +++ b/m770/77qr.h @@ -1,13 +1,14 @@ // 77qr.h -#define QRF_NPROG 102 -#define QRF_RAGDITTA 103 -#define QRF_MESERIF 104 -#define QRF_ANNORIF 105 -#define QRF_IMPOSTA 106 -#define QRF_COMPENSI 107 +#define QRF_NPROG 102 +#define QRF_RAGDITTA 103 +#define QRF_MESERIF 104 +#define QRF_ANNORIF 105 +#define QRF_IMPOSTA 106 +#define QRF_COMPENSI 107 +#define QRF_TIPO 108 -#define QRF_CODDITTA 181 -#define QRF_ANNODIC 182 +#define QRF_CODDITTA 181 +#define QRF_ANNODIC 182 diff --git a/m770/77qr.uml b/m770/77qr.uml index 743053baf..0ae110bf0 100755 --- a/m770/77qr.uml +++ b/m770/77qr.uml @@ -43,16 +43,16 @@ BEGIN USE LF_QUAR SELECT (CODDITTA=#QRF_CODDITTA) INPUT CODDITTA QRF_CODDITTA SELECT INPUT NPROG QRF_NPROG - DISPLAY "Num." NPROG + DISPLAY "Num." NPROG DISPLAY "Mese" MESERIF DISPLAY "Anno" ANNORIF - DISPLAY "Imposta rimborsata" IMPRIMB - DISPLAY "Compensi per l'assistenza" COMPENSI - OUTPUT QRF_NPROG NPROG - OUTPUT QRF_COMPENSI COMPENSI - OUTPUT QRF_IMPOSTA IMPRIMB - OUTPUT QRF_ANNORIF ANNORIF - OUTPUT QRF_MESERIF MESERIF + DISPLAY "Imposta rimborsata" IMPRIMB + DISPLAY "Compensi per l'assistenza" COMPENSI + OUTPUT QRF_NPROG NPROG + OUTPUT QRF_COMPENSI COMPENSI + OUTPUT QRF_IMPOSTA IMPRIMB + OUTPUT QRF_ANNORIF ANNORIF + OUTPUT QRF_MESERIF MESERIF CHECKTYPE REQUIRED KEY 1 END @@ -93,16 +93,24 @@ BEGIN CHECKTYPE REQUIRED FIELD LF_QUAR->ANNORIF VALIDATE FIXLEN_FUNC 4 +END + +LIST QRF_TIPO 1 40 +BEGIN + PROMPT 29 8 "Tipo " + ITEM "A|Rimborso IRPEF" + ITEM "B|Rimborso Contributo straordinario Europa" + FIELD TIPORIMB END TEXT DLG_NULL BEGIN - PROMPT 29 8 "Imposta rimborsata " + PROMPT 29 9 "Imposta rimborsata " END NUMBER QRF_IMPOSTA 15 BEGIN - PROMPT 29 9 "" + PROMPT 29 10 "" FIELD LF_QUAR->IMPRIMB PICTURE "." FLAGS "R" @@ -110,12 +118,12 @@ END TEXT DLG_NULL BEGIN - PROMPT 50 8 "Compensi per l'assistenza " + PROMPT 50 9 "Compensi per l'assistenza " END NUMBER QRF_COMPENSI 15 BEGIN - PROMPT 50 9 "" + PROMPT 50 10 "" FIELD LF_QUAR->COMPENSI PICTURE "." FLAGS "R" diff --git a/m770/77qs.h b/m770/77qs.h index 6517d416f..c22653899 100755 --- a/m770/77qs.h +++ b/m770/77qs.h @@ -1,20 +1,23 @@ // 77qs.h -#define QSF_NPROG 102 -#define QSF_RAGDITTA 103 -#define QSF_IMPOSTA 104 -#define QSF_INTERDIP 105 -#define QSF_INTERDAT 106 -#define QSF_TIPOVERS 107 -#define QSF_CODTRIB 108 -#define QSF_DATAVERS 109 -#define QSF_NUMERO 110 -#define QSF_SERIE 111 -#define QSF_ABI 112 -#define QSF_CAB 113 +#define QSF_NPROG 102 +#define QSF_RAGDITTA 103 +#define QSF_IMPOSTA 104 +#define QSF_INTERDIP 105 +#define QSF_INTERDAT 106 +#define QSF_TIPOVERS 107 +#define QSF_CODTRIB 108 +#define QSF_DATAVERS 109 +#define QSF_NUMERO 110 +#define QSF_SERIE 111 +#define QSF_ABI 112 +#define QSF_CAB 113 -#define QSF_CODDITTA 181 -#define QSF_ANNODIC 182 +#define QSF_DATACON 120 +#define QSF_MESECON 121 + +#define QSF_CODDITTA 181 +#define QSF_ANNODIC 182 -#define QSF_CCQUIETANZA 183 +#define QSF_CCQUIETANZA 183 diff --git a/m770/77qs.uml b/m770/77qs.uml index 022c6215d..bb6412f50 100755 --- a/m770/77qs.uml +++ b/m770/77qs.uml @@ -6,12 +6,12 @@ TOOLBAR "" 0 20 0 2 ENDPAGE // // Lista modifiche -// 2.4.96 Messo CAB di 5. Abi e Cab zerofilled +// 2.4.96 Messo CAB di 5. Abi e Cab zerofilled // -#define G_ABICAB 7 -#define G_DISTINTA 8 -#define G_CC 9 +#define G_ABICAB 7 +#define G_DISTINTA 8 +#define G_CC 9 PAGE "Quadro S" -1 -1 78 18 @@ -44,6 +44,20 @@ BEGIN FLAGS "DRP" END +DATE QSF_DATACON +BEGIN + PROMPT 26 80 "Data conguaglio " + FLAGS "D" + FIELD MESECONG +END + +LIST QSF_MESECON 1 12 +BEGIN + PROMPT 26 5 "Mese conguaglio " + FLAGS "M" + FIELD MESECONG[4,5] +END + NUMBER QSF_NPROG 4 BEGIN PROMPT 1 5 "Numero " @@ -51,16 +65,16 @@ BEGIN USE LF_QUAS SELECT (CODDITTA=#QSF_CODDITTA) INPUT CODDITTA QSF_CODDITTA SELECT INPUT NPROG QSF_NPROG - DISPLAY "Num." NPROG - DISPLAY "Imposta versata" IMPOSTA - DISPLAY "Interessi dipendente" INTERDIP - DISPLAY "Interessi datore di lavoro" INTERDAT - DISPLAY "Tipo" TIPOVERS - DISPLAY "Codice tributo" CODTRIB - DISPLAY "Data versamento" DATAVERS - DISPLAY "Serie/ABI" SERIE - DISPLAY "Numero/Bollettino/CAB" NUMERO - OUTPUT QSF_NPROG NPROG + DISPLAY "Num." NPROG + DISPLAY "Imposta versata" IMPOSTA + DISPLAY "Interessi dipendente" INTERDIP + DISPLAY "Interessi datore di lavoro" INTERDAT + DISPLAY "Tipo" TIPOVERS + DISPLAY "Codice tributo" CODTRIB + DISPLAY "Data versamento" DATAVERS + DISPLAY "Serie/ABI" SERIE + DISPLAY "Numero/Bollettino/CAB" NUMERO + OUTPUT QSF_NPROG NPROG CHECKTYPE REQUIRED KEY 1 END @@ -81,6 +95,8 @@ BEGIN FIELD LF_QUAS->IMPOSTA PICTURE "." FLAGS "R" + CHECKTYPE REQUIRED + WARNING "Manca l'imposta o soprattassa" END TEXT DLG_NULL @@ -119,7 +135,7 @@ BEGIN FLAGS "R" END -GROUPBOX DLG_NULL 0 6 +GROUPBOX DLG_NULL 78 6 BEGIN PROMPT 1 10 "" END @@ -187,7 +203,7 @@ BEGIN FIELD LF_QUAS->SERIE GROUP G_DISTINTA WARNING "Manca la serie" - VALIDATE REQIF_FUNC 1 QSF_TIPOVERS + CHECKTYPE REQUIRED END STRING QSF_NUMERO 11 @@ -195,7 +211,7 @@ BEGIN PROMPT 58 14 "" FIELD LF_QUAS->NUMERO WARNING "Manca il numero" - VALIDATE REQIF_FUNC 1 QSF_TIPOVERS + CHECKTYPE REQUIRED GROUP G_DISTINTA END @@ -204,7 +220,15 @@ BEGIN PROMPT 23 14 "" FIELD LF_QUAS->SERIE WARNING "Manca il codice ABI" - VALIDATE REQIF_FUNC 1 QSF_TIPOVERS + USE %BAN SELECT CODTAB ?= "??????????" + INPUT CODTAB[1,5] QSF_ABI + INPUT CODTAB[6,10] QSF_CAB + DISPLAY "ABI@5" CODTAB[1,5] + DISPLAY "CAB@5" CODTAB[6,10] + DISPLAY "Denominazione@50" S0 + OUTPUT QSF_ABI CODTAB[1,5] + OUTPUT QSF_CAB CODTAB[6,10] + CHECKTYPE REQUIRED FLAGS "Z" GROUP G_ABICAB END @@ -212,10 +236,11 @@ END NUMBER QSF_CAB 5 BEGIN PROMPT 58 14 "" - FIELD LF_QUAS->NUMERO - WARNING "Manca il codice CAB" - VALIDATE REQIF_FUNC 1 QSF_TIPOVERS FLAGS "Z" + FIELD LF_QUAS->NUMERO + COPY ALL QSF_ABI + CHECKTYPE REQUIRED + WARNING "Manca il codice CAB" GROUP G_ABICAB END @@ -224,7 +249,7 @@ BEGIN PROMPT 58 14 "" FIELD LF_QUAS->NUMERO WARNING "Manca il numero quietanza" - VALIDATE REQIF_FUNC 1 QSF_TIPOVERS + CHECKTYPE REQUIRED GROUP G_CC END diff --git a/m770/base.h b/m770/base.h index 3384aeac2..b2d2d55c3 100755 --- a/m770/base.h +++ b/m770/base.h @@ -67,14 +67,23 @@ #define BSE_C0NLASS "C0NLASS" #define BSE_C0ACTOT "C0ACTOT" #define BSE_C0SNSRIT "C0SNSRIT" -#define BSE_C0ROPE "C0ROPE" +#define BSE_C0ROPE "C0ROPE" +#define BSE_C0TOTIMP "C0TOTIMP" #define BSE_C0CIIAUT "C0CIIAUT" +#define BSE_C0TOTDET "C0TOTDET" +#define BSE_C0RITOPE "C0RITOPE" +#define BSE_C0CONTSSN "C0CONTSSN" #define BSE_D0NFCOM "D0NFCOM" #define BSE_D0NLAUT "D0NLAUT" #define BSE_D0ACTOT "D0ACTOT" #define BSE_D0SNSRIT "D0SNSRIT" +#define BSE_D0NSRITRC "D0NSRITRC" #define BSE_D0ROPE "D0ROPE" #define BSE_D0CIIAUT "D0CIIAUT" +#define BSE_DBAMMCOR "DBAMMCOR" +#define BSE_DBNSRIT "DBNSRIT" +#define BSE_DBNSRITRC "DBNSRITRC" +#define BSE_DBRITOPE "DBRITOPE" #define BSE_D1NFCOM "D1NFCOM" #define BSE_D1NPER "D1NPER" #define BSE_D1TACOR "D1TACOR" @@ -89,16 +98,15 @@ #define BSE_FLART4 "FLART4" #define BSE_QSUPPRIC "QSUPPRIC" #define BSE_DITTACAAF "DITTACAAF" -#define BSE_C0CONTSSN "C0CONTSSN" -#define I8_1 "B0NFCOM" -#define I8_2 "B0NLDIP" -#define I8_3 "B0TFR93" -#define I8_4 "B0AI" -#define I8_5 "B0COLAV" -#define I8_6 "B0TFR7492" -#define I9_7 "B0AI7492" -#define I9_8 "B0IMP" -#define I9_9 "B0TIMP" -#define I9_10 "B0ROP" +#define I8_1 "B0NFCOM" +#define I8_2 "B0NLDIP" +#define I8_3 "B0TFR93" +#define I8_4 "B0AI" +#define I8_5 "B0COLAV" +#define I8_6 "B0TFR7492" +#define I9_7 "B0AI7492" +#define I9_8 "B0IMP" +#define I9_9 "B0TIMP" +#define I9_10 "B0ROP" diff --git a/m770/f118.trr b/m770/f118.trr index 7cf836ac6..2e1b94e35 100755 --- a/m770/f118.trr +++ b/m770/f118.trr @@ -9,7 +9,7 @@ NUMQUOTE|3|9|0|Numero azioni prospetto 1 sezione 1 DESCRBENI|1|35|0|Descrizione dei beni UTILI1S|4|18|0|Utili primo semestre / Importo per azione (prosp.1 sez.1) / Valore beni (prosp.1 sez.2) UTILI2S|4|18|0|Utili secondo semestre / Importo complessivo (prosp.1 sez.1) -ALIQUOTA|4|18|0|Aliquota +ALIQUOTA|4|18|2|Aliquota TITOLO|7|1|0|Titolo della ritenuta cconto, mposta ROPE|4|18|0|Ritenute operate 1 diff --git a/m770/f120.dir b/m770/f120.dir new file mode 100755 index 000000000..ef5c7cd37 --- /dev/null +++ b/m770/f120.dir @@ -0,0 +1,3 @@ +120 +1 +m770/quadrodb|0|0|117|4|Quadro D bis 770||| diff --git a/m770/f120.trr b/m770/f120.trr new file mode 100755 index 000000000..116e7ab0b --- /dev/null +++ b/m770/f120.trr @@ -0,0 +1,18 @@ +120 +14 +CODDITTA|3|5|0|Codice ditta +TIPOA|1|1|0|Tipo anagrafica (Sempre 'F') +CODANAGR|3|5|0|Codice anagrafica +NPROG|2|4|0|Numero progressivo di riga +CODCAUS|9|2|0|Codice causale +CAUSALE|1|1|0|15 - Causale +TOTALE|4|18|0|16 - Ammontare lordo corrisposto +SOMME|4|18|0|17 - Somme non soggette a ritenuta +IMPONIBILE|4|18|0|19 - Imponibile +PERC|4|6|2|Aliquota +IMPORTO|4|18|0|20 - Ritenute operate +SOMREGCONV|4|18|0|18 - Somme non soggette a ritenuta per reg. conv. +CONTR10|7|1|0|21 - Contributo del 10% +GENERATA|8|1|0|Riga generata dalle schede +1 +CODDITTA+TIPOA+CODANAGR+NPROG| diff --git a/m770/f36.dir b/m770/f36.dir index c61964725..c5f558b26 100755 --- a/m770/f36.dir +++ b/m770/f36.dir @@ -1,3 +1,3 @@ 36 1 -m770/base|0|0|1209|4|Base modello 770|#9|| +m770/base|0|0|1297|4|Base modello 770|#9|| diff --git a/m770/f36.trr b/m770/f36.trr index d5b0de34e..bf171403a 100755 --- a/m770/f36.trr +++ b/m770/f36.trr @@ -1,5 +1,5 @@ 36 -95 +99 TIPOQUA|7|1|0|Tipo dichiarazione CODDITTA|3|5|0|Codice ditta CODDIC|3|5|0|Codice ditta dichiarante @@ -7,94 +7,98 @@ IN_USO|8|1|0|Flag "dichiarazione in uso" ANNODIC|2|4|0|Anno dichiarazione RAPPR|3|5|0|Codice rappresentante CARRAPP|2|1|0|Carica rappresentante -NATTVER|3|6|0|0 -EVNATECC|8|1|0|0 -CODCAAF|3|5|0|0 -CODPRO|3|5|0|0 -N730ALLA|3|6|0|Quadro A - numero allegati 730-96 -N730ALLA2|3|6|0|Quadro A2 - numero allegati 730-95 +DICRITCER|4|18|0|Dichiarazione ritenute certificate +CODCAAF|3|5|0|Codice CAAF +CODPRO|3|5|0|Codice professionista +N730ALLA|3|6|0|Quadro Abis - numero allegati +N730ALLA2|3|6|0|Quadro A2 - numero allegati SERIE|1|5|0|Parametri generazione quadro L - serie/abi vers. DATAVERS|5|8|0|Parametri generazione quadro L - data versamento NUMERO|1|11|0|Parametri generazione quadro L - numero/cab vers. -A0NFCOM|3|5|0| -A0NLDIP|3|5|0|I1-1 Quadro A - Num. fogli compilati -A0COBB|4|18|0|I1-2 Quadro A - Num. lav. dipendenti -A0CNET|4|18|0|I1-3 Quadro A - Contributi obbligatori -A0EPREV|4|18|0|I1-4 Quadro A - Compensi netti -A0IITRA|4|18|0|I1-5 Quadro A - Assegni enti previdenziali -A0CTER|4|18|0|I1-6 Quadro A - Ind. tras. imponibile -A0TIMP|4|18|0|I2-7 Quadro A - Compensi da terzi -A0ILOR|4|18|0|I2-8 Quadro A - Totale imponibile -A0TDET|4|18|0|I2-9 Quadro A - Imposta lorda -A0INCDET|4|18|0|I2-10 Quadro A - Totale detrazioni -A0RTER|4|18|0|I2-11 Quadro A - Incremento detrazioni -A0RDAT|4|18|0|I3-12 Quadro A - Ritenute da terzi -A0ERIT|4|18|0|I3-13 Quadro A - Ritenute datore di lavoro -A0CARR|4|18|0|I3-14 Quadro A - Eccedenza ritenute -A0AARR|4|18|0|I3-15 Quadro A - Contributi arretrati -A0DARR|4|18|0|I3-16 Quadro A - Ammontare arretrati -A0RARR|4|18|0|I4-17 Quadro A - Detrazioni arretrati -A0RITSI|4|18|0|I4-18 Quadro A - Ritenute arretrati -A0CINPS|4|18|0|0 -A0RITOPEVA|4|18|0|0 -A0RITOPESA|4|18|0|0 -A0CIIAUT|4|18|0|0 -A0NADLAV|3|5|0|0 -A0NACAAF|3|5|0|0 -A0CRIMPRAS|4|18|0|0 -A0CRIMP85|4|18|0|I5-23 - Quadro A - Credito d'imposta premio d'assunzione -A3NFCOM|3|5|0|I5-25 - Quadro A - Credito d'imposta ex L.85/95 -A3NUMPER|3|5|0|0 -A3REPT10|4|18|0|0 -A3REPT12|4|18|0|0 -B0NFCOM|3|5|0|0 -B0NLDIP|3|5|0|I8-1 - Quadro B - Numero di fogli compilati -B0TFR93|4|18|0|I8-2 - Quadro B - Numero dipendenti -B0AI|4|18|0|I8-3 - Quadro B - TFR corrisposto nel 95 -B0COLAV|4|18|0|I8-4 - Quadro B - Altre indennità nel 1995 -B0TFR7492|4|18|0|I8-5 - Quadro B - Contributi obb. a carico lavoratori dipendenti -B0AI7492|4|18|0|I8-6 - Quadro B - TFR erogato dal 74 al 94 -B0RITSI|4|18|0|I9-7 - Quadro B - Altre indennità erogate dal 74 al 94 -B0IMP|4|18|0|I9-13 - Quadro B - Ritenute operate 'SI' -B0TIMP|4|18|0|I9-8 - Quadro B - Imponibile dell'anno -B0ROP|4|18|0|I9-9 - Quadro B - Totale imponibile -B0AIINPS|4|18|0|I9-10 - Quadro B - Ritenute operate -B0ROPESA|4|18|0|I9-11 - Quadro B - Altre indennità ai fini contr. INPS -B0CIIAUT|4|18|0|I9-12 - Quadro B - Ritenute operate 'SA' -B0CRIMPRAS|4|18|0|I9-14 - Quadro B - Credito d'imposta imprese d'autotrasporto -B0CRIMP85|4|18|0|I10-15 - Quadro B - Credito d'imposta premio d'assunzione -B1NFCOM|3|5|0|I10-16 - Quadro B - Credito d'imposta ex L.85/95 -B1NPER|3|5|0|I11-1 - Quadro B1 - Numero fogli compilati -B1TIND|4|18|0|I11-2 - Quadro B1 - Numero percipienti -B1TIRM|4|18|0|I11-3 - Quadro B1 - Totale indennità -B1TICOM|4|18|0|I11-4 - Quadro B1 - Totale imp.r.m. -C0NFCOM|3|5|0|I11-5 - Quadro B1 - Totale imp.compl. -C0NLASS|3|5|0|I12-1 - Quadro C - Num. fogli compilati -C0ACTOT|4|18|0|I12-2 - Quadro C - Numero percipienti -C0CONTSSN|4|18|0|I12-3 - Quadro C - Ammontare corrisposto totale -C0SNSRIT|4|18|0|I12-4 - Quadro C - Contributi SSN -C0ROPE|4|18|0|0 -C0CIIAUT|4|18|0|0 -C0CRIMPRAS|4|18|0|0 -D0NFCOM|3|5|0|I13-8 - Quadro C - Credito d'imposta premio d'assunzione -D0NLAUT|3|5|0|I14-1 - Quadro D - Numero fogli -D0ACTOT|4|18|0|I14-2 - Quadro D - Numero percipienti -D0SNSRIT|4|18|0|I14-3 - Quadro D - Ammontare corrisposto totale -D0ROPE|4|18|0|I14-4 - Quadro D - Somme non soggette a ritenuta -D0CIIAUT|4|18|0|I14-5 - Quadro D - Ritenute operate -D0CRIMPRAS|4|18|0|I14-6 - Quadro D - Credito di imposta imprese di autotrasporto -D0CRIMP85|4|18|0|I15-7 - Quadro D - Credito d'imposta premio d'assunzione -D1NFCOM|3|5|0|I15-8 - Quadro D - Credito d'imposta ex L.85/95 -D1NPER|3|5|0|0 -D1TACOR|4|18|0|0 -D1SNSRIT|4|18|0|0 -D1ROPE|4|18|0|0 -D1CRIMPRAS|4|18|0|0 -LUOVERS|7|1|0|0 -TIPOVERS|7|1|0|0 +A0NFCOM|3|5|0|I01-01 +A0NLDIP|3|5|0|I01-02 +A0COBB|4|18|0|I01-03 +A0NSRIT|4|18|0|I01-04 +A0EPREV|4|18|0|I01-06 +A0RETPEN|4|18|0|I01-05 +A0CTER|4|18|0|I02-07 +A0TIMP|4|18|0|I02-08 +A0ILOR|4|18|0|I02-09 +A0TDET|4|18|0|I02-10 +A0EUROT|4|18|0|I03-14 +A0RTER|4|18|0|I02-11 +A0RDAT|4|18|0|I03-12 +A0ERIT|4|18|0|I03-13 +A0CARR|4|18|0|I03-15 +A0AARR|4|18|0|I03-16 +A0DARR|4|18|0|I04-17 +A0RARR|4|18|0|I04-18 +A0RITSI|4|18|0|I05-22 +A0CINPS|4|18|0|I04-19 +A0RITOPEVA|4|18|0|I04-20 +A0RITOPESA|4|18|0|I04-21 +A0CIIAUT|4|18|0|I05-23 +ABNADLAV|3|5|0|I06-02 +ABNACAAF|3|5|0|I06-03 +A0CRIMPRAS|4|18|0|I05-24 +A0CRIMP85|4|18|0|I05-25 +A3NFCOM|3|5|0|I08-01 +A3NUMPER|3|5|0|I08-02 +A3REPT10|4|18|0|I08-03 +A3REPT12|4|18|0|I08-04 +B0NFCOM|3|5|0|I09-01 +B0NLDIP|3|5|0|I09-02 +B0TFR93|4|18|0|I09-03 +B0AI|4|18|0|I09-04 +B0COLAV|4|18|0|I09-05 +B0TFR7492|4|18|0|I09-06 +B0AI7492|4|18|0|I10-07 +B0RITSI|4|18|0|I11-13 +B0IMP|4|18|0|I10-08 +B0TIMP|4|18|0|I10-09 +B0ROP|4|18|0|I10-10 +B0AIINPS|4|18|0|I10-11 +B0ROPESA|4|18|0|I11-12 +B0CIIAUT|4|18|0|I11-14 +B0CRIMPRAS|4|18|0|I11-15 +B0CRIMP85|4|18|0|I11-16 +B1NFCOM|3|5|0|I12-01 +B1NPER|3|5|0|I12-02 +B1TIND|4|18|0|I12-03 +B1TIRM|4|18|0|I12-04 +B1TICOM|4|18|0|I12-05 +C0NFCOM|3|5|0|I13-01 +C0NLASS|3|5|0|I13-02 +C0ACTOT|4|18|0|I13-03 +C0CONTSSN|4|18|0|I13-04 +C0SNSRIT|4|18|0|I13-05 +C0ROPE|4|18|0|I14-07 +C0CIIAUT|4|18|0|I14-10 +C0CRIMPRAS|4|18|0|I14-11 +D0NFCOM|3|5|0|I15-01 +D0NLAUT|3|5|0|I15-02 +D0ACTOT|4|18|0|I15-03 +D0SNSRIT|4|18|0|I15-04 +D0ROPE|4|18|0|I15-06 +D0CIIAUT|4|18|0|I16-07 +D0CRIMPRAS|4|18|0|I16-08 +D0CRIMP85|4|18|0|I16-09 +D1NFCOM|3|5|0|I19-01 +D1NPER|3|5|0|I19-02 +D1TACOR|4|18|0|I19-03 +D1SNSRIT|4|18|0|I19-04 +D1ROPE|4|18|0|I19-05 +D1CRIMPRAS|4|18|0|I19-06 +LUOVERS|7|1|0|Parametri generazione quadro L - luogo versamento +TIPOVERS|7|1|0|Parametri generazione quadro L - tipo versamento RSS|2|1|0|0 FLART4|8|1|0|0 DITTACAAF|3|5|0|0 +C0TOTIMP|4|18|0|I13-06 +C0TOTDET|4|18|0|I14-08 +C0RITOPE|4|18|0|I14-09 +D0NSRITRC|4|18|0|I15-05 +ABNFCOM|3|5|0|I06-01 2 TIPOQUA+CODDITTA| CODDIC+TIPOQUA+CODDITTA| diff --git a/m770/f37.dir b/m770/f37.dir index 407c308c7..4a503cf0a 100755 --- a/m770/f37.dir +++ b/m770/f37.dir @@ -1,3 +1,3 @@ 37 1 -m770/basebis|0|0|1272|4|Base modello 770|#36|| +m770/basebis|0|0|1511|4|Base modello 770|#36|| diff --git a/m770/f37.trr b/m770/f37.trr index a8cbd7c8f..b3ff7b9d4 100755 --- a/m770/f37.trr +++ b/m770/f37.trr @@ -1,8 +1,8 @@ 37 -86 -TIPOQUA|7|1|0| -CODDITTA|3|5|0|0 -CODDIC|3|5|0|0 +100 +TIPOQUA|7|1|0|Tipo dichiarazione +CODDITTA|3|5|0|Codice ditta +CODDIC|3|5|0|Codice ditta dichiarante CONSBASOCC|4|18|0| LAVDIPCIN|4|18|0| PIMPINI|5|8|0| @@ -13,79 +13,93 @@ CRIMPDL|4|18|0|0 CRIMPIVA|4|18|0|0 CRIMPRIT|4|18|0|0 CRIMPRES|4|18|0|0 -QCOMP|1|25|0|0 -QSUPPINV|1|26|0|0 -QSUPPRIC|1|26|0|0 -NSUPPM|2|4|0|0 -E0NFCOM|3|5|0|0 -E0NPER|3|5|0|0 -E0AIMP|4|18|0|0 -E0ROPE|4|18|0|0 -E0SNSRIT|4|18|0|0 -E0CRIMPRAS|4|18|0|0 -E1NFCOM|3|5|0|0 -E1NPER|3|5|0|0 -E1SCOR|4|18|0|0 -E1BCOM|4|18|0|0 -E1ROPE|4|18|0|0 -E1ACOM|4|18|0|0 -E1BCOM2|4|18|0|0 -E1ROPE2|4|18|0|0 -E1CRIMPRAS|4|18|0|0 -E2NFCOM|3|5|0|0 -E2NPER|3|5|0|0 -E2ROPE|4|18|0|0 -E2SSRIT|4|18|0|0 -E2CRIMPRAS|4|18|0|0 -F0SRITA|4|18|0|0 -F0ROPEA|4|18|0|0 -F0TACCA|4|18|0|0 -F0EDACCA|4|18|0|0 -F0ERIMA|4|18|0|0 -F0SSRITBF|4|18|0|0 -F0ROPEBF|4|18|0|0 -F0SSVA|4|18|0|0 -F0ROPEVA|4|18|0|0 -F0CRIMPRAS|4|18|0|0 -F1TPLUA|4|18|0|0 -F1ROPEA|4|18|0|0 -F1SSRIT|4|18|0|0 -F1ROPE|4|18|0|0 -F1CRIMPRAS|4|18|0|0 -F2SSRIT|4|18|0|0 -F2ROPE|4|18|0|0 -F2CRIMPRAS|4|18|0|0 -G0NFCOM|3|5|0|0 -G0NAZI1|4|16|0|0 -G0UDEN1|4|18|0|0 -G0UNAT1|4|18|0|0 -G0IUTI2|4|18|0|0 -G0ROPE|4|18|0|0 -G0USRIT3|4|18|0|0 -G0RACC3|4|18|0|0 -G0RIMP3|4|18|0|0 -G0UNSRIT3|4|18|0|0 -G0USPE|4|18|0|0 -G0RITSPET|4|18|0| -G0UPAG|4|18|0|0 -G0NPER|3|5|0|0 -G0CRIMPRAS|4|18|0|0 -G1UCOR|4|18|0|0 -G1USRIT|4|18|0|0 -G1RACC|4|18|0|0 -G1RIMP|4|18|0|0 -G1UNSRIT|4|18|0|0 -G1CRIMPRAS|4|18|0|0 -H0CODLAV|4|18|0|0 -H0COLDIP|4|18|0|0 -H0NPVERH|3|5|0|0 -H0NQLAGG|2|4|0|0 +QCOMP|1|29|0|Quadri compilati +QSUPPINV|1|29|0|Quadri inviati +QSUPPRIC|1|29|0|Quadri ricevuti +NSUPPM|2|4|0|Numero supporti magnetici +E0NFCOM|3|5|0|I20-01 +E0NPER|3|5|0|I20-02 +E0AIMP|4|18|0|I20-03 +E0ROPE|4|18|0|I20-04 +E0SNSRIT|4|18|0|I20-05 +E0CRIMPRAS|4|18|0|I20-06 +E1NFCOM|3|5|0|I21-01 +E1NPER|3|5|0|I21-02 +E1SCOR|4|18|0|I21-03 +E1BCOM|4|18|0|I21-04 +E1ROPE|4|18|0|I21-05 +E1ACOM|4|18|0|I21-06 +E1BCOM2|4|18|0|I22-07 +E1ROPE2|4|18|0|I22-08 +E1CRIMPRAS|4|18|0|I22-09 +E2NFCOM|3|5|0|I23-01 +E2NPER|3|5|0|I23-02 +E2ROPE|4|18|0|I23-04 +E2SSRIT|4|18|0|I23-03 +E2CRIMPRAS|4|18|0|I23-05 +F0AMMPRO|4|18|0|I24-03 +F0PREOPE|4|18|0|I24-04 +G1RITIV2|4|18|0|I31-06 +G1UTNSR1S|4|18|0|I31-07 +G1UTNSR2S|4|18|0|I31-08 +F0SSRITBF|4|18|0|I24-01 +F0ROPEBF|4|18|0|I24-02 +ABIR2R|4|18|0|I06-04 +ABCS2R|4|18|0|I06-05 +F0CRIMPRAS|4|18|0|I24-05 +F1NFCOM|3|5|0|I25-01 +F1NPER|3|5|0|I25-02 +F1SSRIT|4|18|0|I25-03 +F1ROPE|4|18|0|I25-04 +F1CRIMPRAS|4|18|0|I25-05 +F2SSRIT|4|18|0|I26-01 +F2ROPE|4|18|0|I26-02 +F2CRIMPRAS|4|18|0|I26-03 +G0NFCOM|3|5|0|I27-01 +G0UTDACOR|4|18|0|I28-07 +G0UTDELDIS|4|18|0|I28-08 +G0UTCOR1S|4|18|0|I28-09 +G0UTCOR2S|4|18|0|I28-10 +G0ROPE|4|18|0|I27-06 +G0UTDACOR2|4|18|0|I29-14 +G0RACC3|4|18|0|I28-11 +G0RIMP3|4|18|0|I29-12 +G0UNSRIT3|4|18|0|I29-13 +G0USPE|4|18|0|I27-03 +G0RITSPET|4|18|0|I27-04 +G0UPAG|4|18|0|I27-05 +G0NPER|3|5|0|I27-02 +G0CRIMPRAS|4|18|0|I29-15 +G1UTCOR1S|4|18|0|I30-01 +G1UTCOR2S|4|18|0|I30-02 +G1RITAV1|4|18|0|I30-03 +G1RITAV2|4|18|0|I30-04 +G1RITIV1|4|18|0|I30-05 +G1CRIMPRAS|4|18|0|I31-09 +H0CODLAV|4|18|0|I32-01 +H0COLDIP|4|18|0|I32-02 +ABIRSA|4|18|0|I06-06 +M7IMRITEF|4|18|0|M7 Importo totale ritenute effettuate L0CCONC1|1|3|0|0 L0CCONC2|1|3|0|0 L0CCONC3|1|3|0|0 L0CTES1|2|3|0|0 L0CTES2|2|3|0|0 L0CTES3|2|3|0|0 +ABIR1R|4|18|0|I07-07 +ABCSSA|4|18|0|I07-08 +ABCS1R|4|18|0|I07-09 +ABEURO|4|18|0|I07-10 +ABACCTS|4|18|0|I07-11 +DBNFCOM|3|5|0|I17-01 +DBNPER|3|5|0|I17-02 +DBAMMCOR|4|18|0|I17-03 +DBNSRIT|4|18|0|I17-04 +DBNSRITRC|4|18|0|I17-05 +DBRITOPE|4|18|0|I17-06 +DBCRIMAUT|4|18|0|I18-07 +DBCRIMASS|4|18|0|I18-08 +DBCRIML85|4|18|0|I18-09 2 TIPOQUA+CODDITTA| CODDIC+TIPOQUA+CODDITTA| diff --git a/m770/f38.dir b/m770/f38.dir index 1e52d2747..8e5a0e5b3 100755 --- a/m770/f38.dir +++ b/m770/f38.dir @@ -1,3 +1,3 @@ 38 1 -m770/perc|0|0|31|4|Dati percipienti|#6|| +m770/perc|0|0|30|4|Dati percipienti|#6|| diff --git a/m770/f38.trr b/m770/f38.trr index d1de80f28..36040bf9b 100755 --- a/m770/f38.trr +++ b/m770/f38.trr @@ -1,9 +1,8 @@ 38 -5 +4 CODDITTA|3|5|0| TIPOA|1|1|0| CODANAGR|3|5|0| FATTBIL|4|18|2| -FLAGCT|8|1|0| 1 CODDITTA+TIPOA+CODANAGR| diff --git a/m770/f39.dir b/m770/f39.dir index d4e7f7d08..dd51e45da 100755 --- a/m770/f39.dir +++ b/m770/f39.dir @@ -1,3 +1,3 @@ 39 1 -m770/schper|0|0|148|4|Schede percipienti|#9|| +m770/schper|0|0|186|4|Schede percipienti|#9|| diff --git a/m770/f39.trr b/m770/f39.trr index 4dbf32226..7d5de26a8 100755 --- a/m770/f39.trr +++ b/m770/f39.trr @@ -1,21 +1,25 @@ 39 -16 -CODDITTA|3|5|0| -TIPOA|1|1|0| -CODANAGR|3|5|0| -NPROG|2|4|0| -CODCAUS|9|2|0| -DATADOC|5|8|0| -NUMDOC|1|7|0| -COMPENSO|4|18|2| -SPESE|4|18|2| -IVA|4|18|2| -TOTALE|4|18|2| -FORZATURA|8|1|0| -TOTRIT|4|18|2| -RITSOC|4|18|0| -MESEC|2|2|0| -ANNOC|2|4|0| +20 +CODDITTA|3|5|0|Codice ditta +TIPOA|1|1|0|Tipo percipiente +CODANAGR|3|5|0|Codice percipiente +NPROG|2|4|0|Numero progressivo di scheda +CODCAUS|9|2|0|Codice causale +DATADOC|5|8|0|Data documento +NUMDOC|1|7|0|Numero documento +COMPENSO|4|18|2|Compenso documento +SPESE|4|18|2|Spese documento +IVA|4|18|2|Iva documento +TOTALE|4|18|2|Totale documento +FORZATURA|8|1|0|Flag di forzatura controlli +TOTRIT|4|18|2|Totale ritenute (collegamento contabilità) +RITSOC|4|18|0|Ritenute sociali (collegamento contabilità) +MESEC|2|2|0|Mese competenza +ANNOC|2|4|0|Anno competenza +CAUSQUA|7|1|0|Causale quadro +FLAGTS|7|1|0|Flag T.S. +RITOPE|4|18|0|Ritenute operate +RITVER|4|18|0|Ritenute versate 2 CODDITTA+TIPOA+CODANAGR+NPROG| CODDITTA+TIPOA+CODANAGR+DATADOC+NPROG| diff --git a/m770/f40.trr b/m770/f40.trr index b605347d7..249e1247b 100755 --- a/m770/f40.trr +++ b/m770/f40.trr @@ -1,17 +1,17 @@ 40 13 -CODDITTA|3|5|0|0 -TIPOA|1|1|0|0 -CODANAGR|3|5|0|0 -NPROG|2|4|0|0 -NRIGA|2|4|0|0 -VERS1015|8|1|0|0 -DATAVERS|5|8|0|0 -TIPOVERS|1|1|0|0 -RITENUTA|4|18|0|0 -LUOVERS|1|1|0|0 -NUMERO|1|11|0|0 -SERIE|1|5|0|0 -PROGBANC|10|6|0| +CODDITTA|3|5|0|Codice ditta +TIPOA|1|1|0|Tipo percipiente +CODANAGR|3|5|0|Codice percipiente +NPROG|2|4|0|Numero progressivo di scheda +NRIGA|2|4|0|Numero progressivo di versamento +VERS1015|8|1|0|Versamento 1015 +DATAVERS|5|8|0|Data versamento +TIPOVERS|1|1|0|Tipo versamento +RITENUTA|4|18|0|Ritenuta versata +LUOVERS|1|1|0|Luogo versamento +NUMERO|1|11|0|Numero versamento +SERIE|1|5|0|Serie +PROGBANC|10|6|0|Progressivo banca 1 CODDITTA+TIPOA+CODANAGR+NPROG+NRIGA| diff --git a/m770/f41.trr b/m770/f41.trr index e2cf44794..f443d1519 100755 --- a/m770/f41.trr +++ b/m770/f41.trr @@ -1,19 +1,19 @@ 41 15 -CODDITTA|3|5|0| -TIPOA|1|1|0| -CODANAGR|3|5|0| -NPROG|2|4|0| -NRIGA|2|4|0| -DATAPAG|5|8|0| -IMPONIBILE|4|18|0| -PERC|4|6|2| -RITENUTA|4|18|0| -COMPENSO|4|18|0| -NETTO|4|18|0| -NUMVERS|3|5|0| -SPESA|4|18|0| -CTSSNPERC|4|18|0| -CTSSNCOMP|4|18|0| +CODDITTA|3|5|0|Codice ditta +TIPOA|1|1|0|Tipo percipiente +CODANAGR|3|5|0|Codice percipiente +NPROG|2|4|0|Numero progressivo di scheda +NRIGA|2|4|0|Numero progressivo di pagamento +DATAPAG|5|8|0|Data pagamento +IMPONIBILE|4|18|0|Imponibile +PERC|4|6|2|Aliquota +RITENUTA|4|18|0|Ritenuta +COMPENSO|4|18|0|Compenso +NETTO|4|18|0|Compenso netto +NUMVERS|3|5|0|Numero progressivo di versamento collegato +SPESA|4|18|0|Spesa +CTSSNPERC|4|18|0|Contributo 10% percipiente +CTSSNCOMP|4|18|0|Contributo 10% complessivo 1 CODDITTA+TIPOA+CODANAGR+NPROG+NRIGA| diff --git a/m770/f57.dir b/m770/f57.dir index efde943ce..e8d3f3480 100755 --- a/m770/f57.dir +++ b/m770/f57.dir @@ -1,3 +1,3 @@ 57 1 -m770/quadroa2|0|0|240|4|Quadro A2 770||| +m770/quadroa2|0|0|384|4|Quadro A2 770||| diff --git a/m770/f57.trr b/m770/f57.trr index 1d8fdd3f6..33f752f2b 100755 --- a/m770/f57.trr +++ b/m770/f57.trr @@ -1,23 +1,31 @@ 57 -19 -CODDITTA|3|5|0|Codice ditta della dichiarazione -CODDIP|3|6|0| +27 +CODDITTA|3|5|0|Codice ditta +CODDIP|3|6|0|Codice dipendente NPROG|2|3|0|Numero progressivo del rigo -CONEFF|1|1|0| -RETCON|1|1|0| -SIRPEFRIMB|4|18|0| -VIRPEF|4|18|0| -INTIRPEF|4|18|0| -AIRPEFIV|4|18|0| -AIRPEFINT|4|18|0| -STASSA15|4|18|0| -CONTR16|4|18|0| -CONTRVER|4|18|0| -INTER18|4|18|0| -CONTV19|4|18|0| -INTE20|4|18|0| -SOPRAT21|4|18|0| -M730NLIQ|2|2|0| -CODCAAF|3|5|0|Codice CAAF che ha prestato assistenza +CONEFF|1|1|0|8 conguagli non effettuati +RETCON|1|1|0|9 rettifica conguaglio +SIRPEFRIMB|4|18|0|10 imposta rimborsata +VIRPEF|4|18|0|11 imposta versata +INTIRPEF|4|18|0|12 interessi +AIRPEFIV|4|18|0|13 imposta versata +AIRPEFINT|4|18|0|14 interessi +STASSA15|4|18|0|15 soprattassa Irpef +CONTR16|4|18|0|16 contributo a rimborso +CONTRVER|4|18|0|17 contributo versato +INTER18|4|18|0|18 interessi +CONTV19|4|18|0|19 contributo versato +INTE20|4|18|0|20 interessi +SOPRAT21|4|18|0|21 soprattasse su Cssn +M730NLIQ|2|2|0|22 Modello 730 non liquidabile +CODCAAF|3|5|0|23/24/25 CAAF che ha prestato assistenza +QA2RCB10|4|18|0|10 per rettifica B +QA2RCB11|4|18|0|11 per rettifica B +QA2RCB12|4|18|0|12 per rettifica B +QA2RCB13|4|18|0|13 per rettifica B +QA2RCB14|4|18|0|14 per rettifica B +QA2RCB15|4|18|0|15 per rettifica B +QA2RCB16|4|18|0|16 per rettifica B +QA2RCB17|4|18|0|17 per rettifica B 1 CODDITTA+CODDIP+NPROG| diff --git a/m770/f59.dir b/m770/f59.dir index 0e11e19ef..7211e3265 100755 --- a/m770/f59.dir +++ b/m770/f59.dir @@ -1,3 +1,3 @@ 59 1 -m770/quadrob|0|0|470|4|Quadro B 770||| +m770/quadrob|0|0|471|4|Quadro B 770||| diff --git a/m770/f59.trr b/m770/f59.trr index 83b10563f..91f07b018 100755 --- a/m770/f59.trr +++ b/m770/f59.trr @@ -1,45 +1,46 @@ 59 -41 +42 CODDITTA|3|5|0|Codice ditta CODDIP|3|6|0|Codice dipendente NPROG|2|4|0|Progressivo -DATAINI|5|8|0|Data inizio rapporto di lavoro -DATAFIN|5|8|0|Data fine rapporto di lavoro -ANNICOMM|2|2|0|Periodo di commisurazione - anni -MESICOMM|2|2|0|Periodo di commisurazione - mesi -ANNICONV|2|2|0|Periodo convenzionale - anni -MESICONV|2|2|0|Periodo convenzionale - mesi -ANNIPARZ|2|2|0|Tempo parziale - anni -MESIPARZ|2|2|0|Tempo parziale - mesi -PERCPARZ|4|6|2|Tempo parziale - percentuale -QUOTAECC|4|18|0|Quota eccedente -MESEEROG|2|2|0|Mese erogazione - 95 -TITEROG|1|1|0|Titolo erogazione - 95 -PERCABB|4|6|2|Percentuale abbattimento - altre indennita' 95 -AMMNETTO|4|18|0|Ammontare netto -MESEEROG2|2|2|0|Mese erogazione - altre indennita' 95 -TITEROG2|1|1|0|Titolo erogazione - altre indennita' 95 -ABBATT|4|18|0| -AMMNETTO2|4|18|0|Ammontare netto - altre indennita' 95 -CONTLAV|4|18|0|Contributi obbligatori a carico del lavoratore -TFR7494|4|18|0|TFR o indennita' equipollente -INDEN7494|4|18|0|Altre indennita' -TIND7494|4|18|0|Totale indennita' -TRID|4|18|0|Totale riduzioni -TFRIND|4|18|0|TFR o indennita' equipollenti per reddito di riferimento -ALIQUOTA|4|6|2|Aliquota -RETRMEDIA|4|18|0|Retribuzione media biennio precedente -ALIQUOTA2|4|6|2|Aliquota -IMPTFR|4|18|0|Imponibile TFR -IMPIND|4|18|0|Imponibile altre indennita' -IMPANNO|4|18|0|Imponibile dell'anno -TOTIMP|4|18|0|Totale reddito imponibile -ROPEACC|4|18|0|Ritenute operate su acconti e anticipazioni erogati dal 74 al 94 -IMPDOV|4|18|0|Imposta dovuta -RITECC|4|18|0|Ritenute fiscali operate in eccedenza -QUOTASPET|4|18|0|Quota spettante -INDSPETT|4|18|0|Indennita' spettante -ROPE|4|18|0|Ritenute operate -IMPOCSSN|4|18|0|Imponibile C.S.S.N. +DATAINI|5|8|0|11 Data inizio rapporto di lavoro +DATAFIN|5|8|0|12 Data fine rapporto di lavoro +ANNICOMM|2|2|0|13 Periodo di commisurazione - anni +MESICOMM|2|2|0|13 Periodo di commisurazione - mesi +ANNICONV|2|2|0|14 Periodo convenzionale - anni +MESICONV|2|2|0|14 Periodo convenzionale - mesi +ANNIPARZ|2|2|0|15 Tempo parziale - anni +MESIPARZ|2|2|0|15 Tempo parziale - mesi +PERCPARZ|4|6|2|15 Tempo parziale - percentuale +QUOTAECC|4|18|0|16 Quota eccedente +MESEEROG|2|2|0|17 Mese erogazione +TITEROG|1|1|0|18 Titolo erogazione +PERCABB|4|6|2|19 Percentuale abbattimento +AMMNETTO|4|18|0|20 Ammontare netto +MESEEROG2|2|2|0|21 Mese erogazione +TITEROG2|1|1|0|22 Titolo erogazione +ABBATT|4|18|0|23 Abbattimento +AMMNETTO2|4|18|0|24 Ammontare netto +CONTLAV|4|18|0|25 Contributi obbligatori a carico del lavoratore +TFR7494|4|18|0|26 TFR o indennita' equipollente +INDEN7494|4|18|0|27 Altre indennita' +TIND7494|4|18|0|28 Totale indennita' +TRID|4|18|0|29 Totale riduzioni +TFRIND|4|18|0|30 TFR o indennita' equipollenti per reddito di riferimento +ALIQUOTA|4|6|2|31 Aliquota +RETRMEDIA|4|18|0|32 Retribuzione media biennio precedente +ALIQUOTA2|4|6|2|33 Aliquota +IMPTFR|4|18|0|34 Imponibile TFR +IMPIND|4|18|0|35 Imponibile altre indennita' +IMPANNO|4|18|0|36 Imponibile dell'anno +TOTIMP|4|18|0|37 Totale reddito imponibile +ROPEACC|4|18|0|38 Ritenute operate su acconti e anticipazioni erogati dal 74 al 94 +IMPDOV|4|18|0|39 Imposta dovuta +RITECC|4|18|0|40 Ritenute fiscali operate in eccedenza +QUOTASPET|4|18|0|42 Quota spettante +INDSPETT|4|18|0|43 Indennita' spettante +ROPE|4|18|0|44 Ritenute operate +IMPOCSSN|4|18|0|45 Imponibile C.S.S.N. +QB2122TIPO|1|1|0|41 Art.2122 - Tipo 1 CODDITTA+CODDIP+NPROG| diff --git a/m770/f61.dir b/m770/f61.dir index 34fb4d32b..23b4343a9 100755 --- a/m770/f61.dir +++ b/m770/f61.dir @@ -1,3 +1,3 @@ 61 1 -m770/quadroc|0|0|132|4|Quadro C 770||| +m770/quadroc|0|0|192|4|Quadro C 770||| diff --git a/m770/f61.trr b/m770/f61.trr index 36ead84c0..53845cc27 100755 --- a/m770/f61.trr +++ b/m770/f61.trr @@ -1,16 +1,23 @@ 61 -12 -CODDITTA|3|5|0| -TIPOA|1|1|0| -CODANAGR|3|5|0| -NPROG|2|4|0| -CODCAUS|9|2|0| -TOTALE|4|18|0| -CONTSSN|4|18|0| -SOMME|4|18|0| -IMPONIBILE|4|18|0| -RITENUTE|4|18|0| -NETTO|4|18|0| -PERC|4|6|2| +19 +CODDITTA|3|5|0|Codice ditta 770 +TIPOA|1|1|0|Tipo persona (sempre 'F') +CODANAGR|3|5|0|Codice percipiente +NPROG|2|4|0|Numero progressivo +GENERATA|8|1|0|Riga generata dalle schede +CODCAUS|9|2|0|Codice causale +ALIQUOTA|4|6|2|Aliquota applicata +CAUSALE|1|1|0|11 - Causale quadro C +TASSAZIONE|6|1|0|12 - Tassazione operata +AMMLORDO|4|18|0|13 - Ammontare lordo corrisposto +CONTROBB|4|18|0|14 - Contributi obbligatori +SOMNONSOGG|4|18|0|15 - Somme non soggette a ritenuta +IMPONIBILE|4|18|0|16 - Imponibile +IMPOSTA|4|18|0|17 - Imposta +DETCARFAM|4|18|0|18 - Detrazioni per carichi di famiglia +GGLAVDIP|2|3|0|19 - N. gg. per detrazioni da lavoro dipendente +DETLAVDIP|4|18|0|20 - Detrazioni per lavodo dipendente +TOTDET|4|18|0|21 - Totale detrazioni +RITENUTE|4|18|0|22 - Ritenute operate 1 CODDITTA+TIPOA+CODANAGR+NPROG| diff --git a/m770/f62.dir b/m770/f62.dir index 6ccff0e28..258c9f1c6 100755 --- a/m770/f62.dir +++ b/m770/f62.dir @@ -1,3 +1,3 @@ 62 1 -m770/quadrod|0|0|114|4|Quadro D 770||| +m770/quadrod|0|0|116|4|Quadro D 770||| diff --git a/m770/f62.trr b/m770/f62.trr index ba133e02e..854762c29 100755 --- a/m770/f62.trr +++ b/m770/f62.trr @@ -1,15 +1,17 @@ 62 -11 -CODDITTA|3|5|0| -TIPOA|1|1|0| -CODANAGR|3|5|0| -NPROG|2|4|0| -CODCAUS|9|2|0| -TOTALE|4|18|0| -SOMME|4|18|0| -IMPONIBILE|4|18|0| -PERC|4|6|2| -IMPORTO|4|18|0| -NETTO|4|18|0| +13 +CODDITTA|3|5|0|Codice ditta +TIPOA|1|1|0|Tipo anagrafica (Sempre 'F') +CODANAGR|3|5|0|Codice anagrafica +NPROG|2|4|0|Numero progressivo di riga +CODCAUS|9|2|0|Codice causale +CAUSALE|1|1|0|15 - Causale +TOTALE|4|18|0|16 - Ammontare lordo corrisposto +SOMME|4|18|0|17 - Somme non soggette a ritenuta +IMPONIBILE|4|18|0|19 - Imponibile +PERC|4|6|2|Aliquota +IMPORTO|4|18|0|20 - Ritenute operate +SOMREGCONV|4|18|0|18 - Somme non soggette a ritenuta per reg. conv. +GENERATA|8|1|0|Riga generata dalle schede 1 CODDITTA+TIPOA+CODANAGR+NPROG| diff --git a/m770/f63.dir b/m770/f63.dir index 791ed828c..f27113c8e 100755 --- a/m770/f63.dir +++ b/m770/f63.dir @@ -1,3 +1,3 @@ 63 1 -m770/quadrod1|0|0|132|4|Quadro D1 770||| +m770/quadrod1|0|0|116|4|Quadro D1 770||| diff --git a/m770/f63.trr b/m770/f63.trr index bc78098b1..4f027bf21 100755 --- a/m770/f63.trr +++ b/m770/f63.trr @@ -1,16 +1,17 @@ 63 -12 -CODDITTA|3|5|0|0 -TIPOA|1|1|0|0 -CODANAGR|3|5|0|0 -NPROG|2|4|0|0 -CODCAUS|9|2|0|0 -TOTALE|4|18|0|0 -QUOTAPRO|4|18|0|0 -SPESEANT|4|18|0|0 -IMPONIBILE|4|18|0|0 -PERC|4|6|2|2 -IMPORTO|4|18|0|0 -NETTO|4|18|0|0 +13 +CODDITTA|3|5|0|Codice ditta +TIPOA|1|1|0|Tipo anagrafica (sempre 'F') +CODANAGR|3|5|0|Codice anagrafica +NPROG|2|4|0|Numero progrssivo riga +CODCAUS|9|2|0|Codice causale +CAUSALE|7|1|0|11 - Causale +TOTALE|4|18|0|12 - Ammontare lordo corrisposto +QUOTAPRO|4|18|0|14 - Quota provvigioni +SPESEANT|4|18|0|13 - Spese anticipate +IMPONIBILE|4|18|0|15 - Imponibile +PERC|4|6|2|Aliquota +IMPORTO|4|18|0|16 - Ritenute operate +GENERATA|8|1|0|Riga generata dalle schede 1 CODDITTA+TIPOA+CODANAGR+NPROG| diff --git a/m770/f64.dir b/m770/f64.dir index 5c287fd64..17f73b968 100755 --- a/m770/f64.dir +++ b/m770/f64.dir @@ -1,3 +1,3 @@ 64 1 -m770/quadroe|0|0|96|4|Quadro E 770||| +m770/quadroe|0|0|97|4|Quadro E 770||| diff --git a/m770/f64.trr b/m770/f64.trr index 7ca960260..c4f9f450d 100755 --- a/m770/f64.trr +++ b/m770/f64.trr @@ -1,14 +1,15 @@ 64 -10 -CODDITTA|3|5|0| -TIPOA|1|1|0| -CODANAGR|3|5|0| -NPROG|2|4|0| -CODCAUS|9|2|0| -IMPONIBILE|4|18|0| -PERC|4|6|2| -IMPORTO|4|18|0| -NETTO|4|18|0| -SOMME|4|18|0| +11 +CODDITTA|3|5|0|Codice ditta +TIPOA|1|1|0|Natura giuridica del percipiente +CODANAGR|3|5|0|Codice anagrafico +NPROG|2|4|0|Numero progressivo di riga +CODCAUS|9|2|0|Codice causale +CAUSALE|7|1|0|11 - Causale quadro +IMPONIBILE|4|18|0|12 - Imponibile corrisposto +PERC|4|6|2|13 - Aliquota +IMPORTO|4|18|0|14 - Ritenute operate +NETTO|4|18|0|15 - Somme corrisposte al netto delle ritenute +SOMME|4|18|0|16 - Somme corrisposte non assoggettate a ritenuta 1 CODDITTA+TIPOA+CODANAGR+NPROG| diff --git a/m770/f65.dir b/m770/f65.dir index 7d0744d1c..3528fb941 100755 --- a/m770/f65.dir +++ b/m770/f65.dir @@ -1,3 +1,3 @@ 65 1 -m770/quadroe1|0|0|96|4|Quadro E1 770||| +m770/quadroe1|0|0|97|4|Quadro E1 770||| diff --git a/m770/f65.trr b/m770/f65.trr index 624c8b610..cf6ac414d 100755 --- a/m770/f65.trr +++ b/m770/f65.trr @@ -1,14 +1,15 @@ 65 -10 -CODDITTA|3|5|0| -TIPOA|1|1|0| -CODANAGR|3|5|0| -NPROG|2|4|0| -CODCAUS|9|2|0| -AMMONTARE|4|18|0| -PERC|4|6|2| -IMPORTO|4|18|0| -NETTO|4|18|0| -SOMME|4|18|0| +11 +CODDITTA|3|5|0|Codice ditta +TIPOA|1|1|0|Natura giuridica +CODANAGR|3|5|0|Codice anagrafica +NPROG|2|4|0|Numero progrssivo i riga +CODCAUS|9|2|0|Codice causale +CAUSALE|7|1|0|11 - Causale quadro +SOMME|4|18|0|12 - Somme corrisposte +AMMONTARE|4|18|0|13 - Ammontare complessivo dei premi riscossi +PERC|4|6|2|14 - Aliquota +IMPORTO|4|18|0|15 - Ritenute operate +NETTO|4|18|0|16 - Netti corrisposto 1 CODDITTA+TIPOA+CODANAGR+NPROG| diff --git a/m770/f66.dir b/m770/f66.dir index 11ad52ec1..cf4eebfd5 100755 --- a/m770/f66.dir +++ b/m770/f66.dir @@ -1,3 +1,3 @@ 66 1 -m770/quadroe2|0|0|60|4|Quadro E2 770||| +m770/quadroe2|0|0|110|4|Quadro E2 770||| diff --git a/m770/f66.trr b/m770/f66.trr index 578d8a220..cbf420ead 100755 --- a/m770/f66.trr +++ b/m770/f66.trr @@ -1,12 +1,13 @@ 66 -8 -CODDITTA|3|5|0| -TIPOA|1|1|0| -CODANAGR|3|5|0| -NPROG|2|4|0| -CODCAUS|9|2|0| -SOGGRIT|4|18|0| -PERC|4|6|2| -ROPE|4|18|0| +9 +CODDITTA|3|5|0|Codice ditta +TIPOA|1|1|0|Natura giuridica (F o G) +CODANAGR|3|5|0|Codice anagrafica +NPROG|2|4|0|Numero progressivo di riga +CODCAUS|9|2|0|Codice causale +DENCAUS|1|50|0|11. Denominazione fondo +SOGGRIT|4|18|0|12. Somme soggette a ritenuta +PERC|4|6|2|13. Aliquota +ROPE|4|18|0|14. Ritenute operate 1 CODDITTA+TIPOA+CODANAGR+NPROG| diff --git a/m770/f89.trr b/m770/f89.trr index b5ccdace9..031e382bb 100755 --- a/m770/f89.trr +++ b/m770/f89.trr @@ -1,9 +1,9 @@ 89 5 -CODDITTA|3|5|0|0 -CODCAUS|9|2|0|0 -COMPENSO|4|18|0|0 -IMPONIBILE|4|18|0|0 -RITENUTA|4|18|0|0 +CODDITTA|3|5|0|Codice ditta +CODCAUS|1|2|0|Codice causale (Vale solo 'C' o 'D') +COMPENSO|4|18|0|2 - Ammontare complessivo +IMPONIBILE|4|18|0|3 - Ammontare somme soggette a ritenuta +RITENUTA|4|18|0|4 - Ritenute operate 1 CODDITTA+CODCAUS| diff --git a/m770/perc.h b/m770/perc.h index cbe3c638c..e8fc7a86d 100755 --- a/m770/perc.h +++ b/m770/perc.h @@ -7,6 +7,5 @@ #define PRC_TIPOA "TIPOA" #define PRC_CODANAGR "CODANAGR" #define PRC_FATTBIL "FATTBIL" -#define PRC_FLAGCT "FLAGCT" #endif diff --git a/m770/quadn_t.cpp b/m770/quadn_t.cpp index 9e6b497f2..38b2a7df0 100755 --- a/m770/quadn_t.cpp +++ b/m770/quadn_t.cpp @@ -1,8 +1,7 @@ // quadn_t.cpp #include -#include -#include #include + #include "774200.h" #include "77lib.h" #include "quadron.h" @@ -10,10 +9,10 @@ #include "77qq.h" #include "77qp.h" -#define CODDITTA77 181 -#define ANNODIC77 182 +#define CODDITTA77 181 +#define ANNODIC77 182 -class TQuadriNT_application : public TRelation_application +class TQuadriNT_app : public TRelation_application { static bool nprog_handler (TMask_field& m, KEY k); static bool anno_handler (TMask_field& m, KEY k); @@ -22,26 +21,26 @@ class TQuadriNT_application : public TRelation_application static bool codtrib_handler (TMask_field& f, KEY k); static bool tipo (TMask_field& f , KEY k); static bool luogo (TMask_field& f , KEY k); - const char* _maskname; + TString16 _maskname; int _num; - int _pos_quadro; // posizione nell'array dei quadri. Usato in set_comp + int _pos_quadro; // posizione nell'array dei quadri. Usato in set_comp TString16 _quadro; TRiporti _rip; TRelation* _rel; TMask* _msk; bool _registra; - int _anno_dic; - bool _MaskConAnnoDic, _MaskConCodditta; - bool MaskConAnnoDic() const; - bool MaskConCodditta() const { return _MaskConCodditta; } - void LeggiMask(); - bool EsisteUnRec(); - bool QuadroNoR() const { return _num == LF_QUAN || _num == LF_QUAR; } - bool QuadroPoS() const { return _num == LF_QUAP || _num == LF_QUAS; } - bool QuadroQoT() const { return _num == LF_QUAQ || _num == LF_QUAT; } - bool CheckImporti(const TMask& m); - long Get_newprog(); - long _codditta; + int _anno_dic; + bool _MaskConAnnoDic, _MaskConCodditta; + bool MaskConAnnoDic() const; + bool MaskConCodditta() const { return _MaskConCodditta; } + void LeggiMask(); + bool EsisteUnRec(); + bool QuadroNoR() const { return _num == LF_QUAN || _num == LF_QUAR; } + bool QuadroPoS() const { return _num == LF_QUAP || _num == LF_QUAS; } + bool QuadroQoT() const { return _num == LF_QUAQ || _num == LF_QUAT; } + bool CheckImporti(const TMask& m); + long Get_newprog(); + long _codditta; protected: virtual bool user_create(); @@ -57,58 +56,54 @@ protected: virtual void init_query_mode(TMask&); virtual void init_insert_mode(TMask&); virtual void init_query_insert_mode(TMask&); + + void set_data_cong(const TMask& m); + public: - TQuadriNT_application(const char* name, const int num, const char* quadro); + TQuadriNT_app(char quadro); + virtual ~TQuadriNT_app() { } }; -TQuadriNT_application::TQuadriNT_application(const char* name, const int num, const char* quadro) -: _maskname(name), _num(num), - _MaskConCodditta(FALSE), _MaskConAnnoDic(FALSE), - _msk(NULL), _rel(NULL), _quadro(quadro) -{ - switch (_num) +TQuadriNT_app::TQuadriNT_app(char quadro) +: _MaskConCodditta(FALSE), _MaskConAnnoDic(FALSE), _msk(NULL), _rel(NULL) +{ + _quadro << quadro; + + _maskname << "77q" << quadro; + _maskname.lower(); + + switch (quadro) { - case LF_QUAN: - _pos_quadro = N; - break; - case LF_QUAR: - _pos_quadro = R; - break; - case LF_QUAP: - _pos_quadro = P; - break; - case LF_QUAQ: - _pos_quadro = Q; - break; - case LF_QUAS: - _pos_quadro = S; - break; - case LF_QUAT: - _pos_quadro = T; - break; + case 'N': _num = LF_QUAN; _pos_quadro = N; break; + case 'P': _num = LF_QUAP; _pos_quadro = P; break; + case 'Q': _num = LF_QUAQ; _pos_quadro = Q; break; + case 'R': _num = LF_QUAR; _pos_quadro = R; break; + case 'S': _num = LF_QUAS; _pos_quadro = S; break; + case 'T': _num = LF_QUAT; _pos_quadro = T; break; + default : fatal_box("Codice quadro errato"); break; } } -TQuadriNT_application& app() { return (TQuadriNT_application&)main_app(); } +TQuadriNT_app& app() { return (TQuadriNT_app&)main_app(); } -void TQuadriNT_application::LeggiMask() +void TQuadriNT_app::LeggiMask() { _MaskConAnnoDic = _msk->id2pos(ANNODIC77) > 0; _MaskConCodditta = _msk->id2pos(CODDITTA77) > 0; } -bool TQuadriNT_application::MaskConAnnoDic() const +bool TQuadriNT_app::MaskConAnnoDic() const { return _MaskConAnnoDic; } -void TQuadriNT_application::on_config_change() +void TQuadriNT_app::on_config_change() { TConfig conf(CONFIG_STUDIO); _anno_dic = (int)conf.get_long(ANNO_SEL, NULL, -1, TDate(TODAY).year()); } -bool TQuadriNT_application::user_create() +bool TQuadriNT_app::user_create() { _msk = new TMask(_maskname); _rel = new TRelation(_num); @@ -138,20 +133,16 @@ bool TQuadriNT_application::user_create() return TRUE; } -bool TQuadriNT_application::EsisteUnRec() +bool TQuadriNT_app::EsisteUnRec() { TLocalisamfile qn(_num); - qn.zero(); - qn.put(QN_CODDITTA, (long)app()._codditta); - TRectype dep(qn.curr()); - qn.read(_isgteq); - if (qn.curr() > dep || qn.eof()) - return FALSE; - else - return TRUE; + qn.put(QN_CODDITTA, _codditta); + int err = qn.read(_isgteq); + bool yes = err == NOERR && qn.get_long(QN_CODDITTA) == _codditta; + return yes; } -bool TQuadriNT_application::user_destroy() +bool TQuadriNT_app::user_destroy() { if (_quadro != "") if (_registra) @@ -164,55 +155,65 @@ bool TQuadriNT_application::user_destroy() // Controlla che ci siano o l'imposta o i compensi // NB che siano uguali QNF_IMPOSTA anche nei corrispondenti campi dei // quadri Q, R e T (107 e 106) -bool TQuadriNT_application::CheckImporti(const TMask& m) +bool TQuadriNT_app::CheckImporti(const TMask& m) { - TString impost(m.get(QNF_IMPOSTA)); - TString compen(m.get(QNF_COMPENSI)); - return impost.not_empty() || compen.not_empty(); + const real impost(m.get(QNF_IMPOSTA)); + const real compen(m.get(QNF_COMPENSI)); + return impost != 0.0 || compen != 0.0; } -int TQuadriNT_application::rewrite(const TMask& m) +void TQuadriNT_app::set_data_cong(const TMask& m) { - m.autosave(*_rel); - const int err = _rel->rewrite(); + const char q = _quadro[0]; + if (q == 'P' || q == 'S') + { + const int mese = m.get_int(QPF_MESECON); + ((TMask&)m).set(QPF_DATACON, TDate(1, mese, q == 'P' ? 1996 : 1997)); + } +} + +int TQuadriNT_app::rewrite(const TMask& m) +{ + set_data_cong(m); + const int err = TRelation_application::rewrite(m); _registra = err == NOERR; return err; } -int TQuadriNT_application::write(const TMask& m) -{ - m.autosave(*_rel); - const int err = _rel->write(); +int TQuadriNT_app::write(const TMask& m) +{ + set_data_cong(m); + const int err = TRelation_application::write(m); _registra = err == NOERR; return err; } -bool TQuadriNT_application::remove() +bool TQuadriNT_app::remove() { - _registra = TRUE; - return TRelation_application::remove(); + const bool ok = TRelation_application::remove(); + _registra = ok; + return ok; } -void TQuadriNT_application::init_mask(TMask& m) +void TQuadriNT_app::init_mask(TMask& m) { m.set(ANNODIC77, _anno_dic); } -void TQuadriNT_application::init_query_mode(TMask& m) +void TQuadriNT_app::init_query_mode(TMask& m) { init_mask(m); } -void TQuadriNT_application::init_insert_mode(TMask& m) +void TQuadriNT_app::init_insert_mode(TMask& m) { - init_mask(m); + init_mask(m); } -void TQuadriNT_application::init_query_insert_mode(TMask& m) +void TQuadriNT_app::init_query_insert_mode(TMask& m) { - init_mask(m); - TMask_field& f = m.field(QNF_NPROG); - f.set(Get_newprog()); + init_insert_mode(m); + m.set(QNF_NPROG, Get_newprog()); m.send_key(K_TAB,QNF_NPROG); } @@ -226,20 +227,24 @@ void TQuadriNT_application::init_query_insert_mode(TMask& m) // 773,-2,77qn,72,"Quadro N","N" /////////////////////////////////////////////////////////// int quadriN_T(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]; - TQuadriNT_application a(mask, num, quadro); - a.run(argc, argv, title ? title : "Test Relation Application"); +{ + TApplication::check_parameters(argc, argv); + + char quadro = 'N'; + if (argc > 5) + quadro = toupper(*argv[5]); + else + quadro = toupper(*argv[2]); + + TString16 title; + title << "Quadro " << quadro; + + TQuadriNT_app a(quadro); + a.run(argc, argv, title); return 0; } -bool TQuadriNT_application::anno_handler(TMask_field& f, KEY k) +bool TQuadriNT_app::anno_handler(TMask_field& f, KEY k) { TMask& m = f.mask(); if (k == K_ENTER && (modifica(m) || inserimento(m)) ) @@ -254,7 +259,7 @@ bool TQuadriNT_application::anno_handler(TMask_field& f, KEY k) return TRUE; } -bool TQuadriNT_application::mese_handler(TMask_field& f, KEY k) +bool TQuadriNT_app::mese_handler(TMask_field& f, KEY k) { TMask& m = f.mask(); if (k == K_ENTER && (modifica(m) || inserimento(m)) ) @@ -267,7 +272,7 @@ bool TQuadriNT_application::mese_handler(TMask_field& f, KEY k) } // Per i Quadri Q e T -bool TQuadriNT_application::codreg_handler(TMask_field& f, KEY k) +bool TQuadriNT_app::codreg_handler(TMask_field& f, KEY k) { TMask& m = f.mask(); if (k == K_ENTER && (modifica(m) || inserimento(m)) ) @@ -280,7 +285,7 @@ bool TQuadriNT_application::codreg_handler(TMask_field& f, KEY k) } // Per i Quadri P e S. Codice tributo REQUIRED -bool TQuadriNT_application::codtrib_handler(TMask_field& f, KEY k) +bool TQuadriNT_app::codtrib_handler(TMask_field& f, KEY k) { TMask& m = f.mask(); if (k == K_ENTER && (modifica(m) || inserimento(m)) ) @@ -292,30 +297,30 @@ bool TQuadriNT_application::codtrib_handler(TMask_field& f, KEY k) return TRUE; } -bool TQuadriNT_application::nprog_handler(TMask_field& f, KEY k) +bool TQuadriNT_app::nprog_handler(TMask_field& f, KEY k) { if (k == K_TAB) - f.set_dirty(); + f.set_dirty(); return TRUE; } // ritorna nuovo progressivo da utilizzare -long TQuadriNT_application::Get_newprog() +long TQuadriNT_app::Get_newprog() { - long nprog = 0L; - TLocalisamfile qnr(app()._num); - qnr.zero(); - qnr.put(QN_CODDITTA, (long)app()._codditta); - TRectype dep(qnr.curr()); - for (qnr.read(_isgteq); !qnr.eof(); qnr.next()) - { - if (qnr.curr() > dep) break; - nprog = qnr.get_long(QN_NPROG); - } - return ++nprog; + long nprog = 0L; + TLocalisamfile qnr(_num); + qnr.zero(); + qnr.put(QN_CODDITTA, _codditta); + TRectype dep(qnr.curr()); + for (qnr.read(_isgteq); !qnr.eof(); qnr.next()) + { + if (qnr.curr() > dep) break; + nprog = qnr.get_long(QN_NPROG); + } + return ++nprog; } -bool TQuadriNT_application::tipo(TMask_field& f , KEY k) +bool TQuadriNT_app::tipo(TMask_field& f , KEY k) { /* if (k == K_SPACE) @@ -332,7 +337,7 @@ bool TQuadriNT_application::tipo(TMask_field& f , KEY k) return TRUE; } -bool TQuadriNT_application::luogo(TMask_field& f , KEY k) +bool TQuadriNT_app::luogo(TMask_field& f , KEY k) { /* if (k == K_SPACE) diff --git a/m770/quadroc.h b/m770/quadroc.h index 4b69703a3..4242c928e 100755 --- a/m770/quadroc.h +++ b/m770/quadroc.h @@ -14,6 +14,6 @@ #define QUC_PERC "PERC" #define QUC_RITENUTE "RITENUTE" #define QUC_NETTO "NETTO" -#define QUC_CONTSSN "CONTSSN" +#define QUC_CONTSSN "CONTSSN" #endif diff --git a/m770/quadrogp.h b/m770/quadrogp.h index 39fccf634..16d32d01b 100755 --- a/m770/quadrogp.h +++ b/m770/quadrogp.h @@ -1,14 +1,14 @@ // quadrogp.h -#define QGP_CODDITTA "CODDITTA" -#define QGP_PROSPETTO "PROSPETTO" -#define QGP_SEZIONE "SEZIONE" -#define QGP_NPROG "NPROG" +#define QGP_CODDITTA "CODDITTA" +#define QGP_PROSPETTO "PROSPETTO" +#define QGP_SEZIONE "SEZIONE" +#define QGP_NPROG "NPROG" #define QGP_DATADEL "DATADEL" #define QGP_NUMQUOTE "NUMQUOTE" #define QGP_DESCRBENI "DESCRBENI" -#define QGP_UTIL1S "UTIL1S" -#define QGP_UTIL2S "UTIL2S" -#define QGP_ALIQUOTA "ALIQUOTA" -#define QGP_TITOLO "TITOLO" -#define QGP_ROPE "ROPE" +#define QGP_UTILI1S "UTILI1S" +#define QGP_UTILI2S "UTILI2S" +#define QGP_ALIQUOTA "ALIQUOTA" +#define QGP_TITOLO "TITOLO" +#define QGP_ROPE "ROPE" diff --git a/m770/scperc.h b/m770/scperc.h index 2c2c53d27..43e2e7411 100755 --- a/m770/scperc.h +++ b/m770/scperc.h @@ -20,7 +20,11 @@ #define SPR_TOTRIT "TOTRIT" #define SPR_MESEC "MESEC" #define SPR_ANNOC "ANNOC" -#define SPR_FORCED "FORZATURA" +#define SPR_FORCED "FORZATURA" +#define SPR_CAUSQUA "CAUSQUA" +#define SPR_FLAGTS "FLAGTS" +#define SPR_RITOPE "RITOPE" +#define SPR_RITVER "RITVER" // Li definisco anche cosi' che e' piu' facile da ricordare #define SCH_CODDITTA "CODDITTA" @@ -40,6 +44,10 @@ #define SCH_TOTRIT "TOTRIT" #define SCH_MESEC "MESEC" #define SCH_ANNOC "ANNOC" -#define SCH_FORCED "FORZATURA" +#define SCH_FORCED "FORZATURA" +#define SCH_CAUSQUA "CAUSQUA" +#define SCH_FLAGTS "FLAGTS" +#define SCH_RITOPE "RITOPE" +#define SCH_RITVER "RITVER" #endif