diff --git a/m770/770100b.uml b/m770/770100b.uml index 9989089dc..18c77b076 100755 --- a/m770/770100b.uml +++ b/m770/770100b.uml @@ -92,7 +92,7 @@ BEGIN OUTPUT SPF_CAUSD1 S3 FLAGS "Z" WARNING "Manca la causale" - ADD RUN 773 -3 %CA7 + ADD RUN 773mod -3 %CA7 END NUMBER F_PERC_INPS 6 diff --git a/m770/770102.cpp b/m770/770102.cpp index 1b249f930..eaddfbff8 100755 --- a/m770/770102.cpp +++ b/m770/770102.cpp @@ -893,6 +893,7 @@ real TSchedaPercipienti::calcola_imponibile(TMask_field& f, const real& compenso real rPercCassaPrev=ZERO; rPercCassaPrev = mm.get_real(F_CASSA_PREV); imponibile_calcolato = (imponibile_calcolato / (100.00 + rPercCassaPrev)) * 100.00; + imponibile_calcolato.trunc(); } TString impost(imponibile_calcolato.string()); @@ -923,6 +924,7 @@ real TSchedaPercipienti::calcola_imponibile(const real& compenso) else imponibile_calcolato = (compenso * quota_imp) / 100.00; // imponibile_calcolato = round_770(imponibile_calcolato); + imponibile_calcolato.trunc(); } return imponibile_calcolato; } @@ -1112,6 +1114,7 @@ real TSchedaPercipienti::calcola_ritenuta(const real& imponibile) rite = imponibile; else rite = (imponibile * rQuotaRaCaus)/100.00; + rite.trunc(); return rite; } @@ -1162,7 +1165,7 @@ real TSchedaPercipienti::calcola_netto(TMask_field& f) const real inpsperc (m.get(MPAG_INPSPERC)); netto = compenso - ritenuta + spesa - inpsperc; - + netto.trunc(); f.mask().set(MPAG_NETTO, netto.string()); return netto; diff --git a/m770/771100e.uml b/m770/771100e.uml index ada785287..2df7f6a4d 100755 --- a/m770/771100e.uml +++ b/m770/771100e.uml @@ -119,8 +119,9 @@ END STRING F_NISCRAA 10 BEGIN - PROMPT 30 9 "Numero di iscrizione all'albo " - FLAGS "D" + PROMPT 30 9 "Numero di iscrizione all'albo " + CHECKTYPE REQUIRED + FLAGS "DG" END GROUPBOX DLG_NULL 78 4 diff --git a/m770/771200.cpp b/m770/771200.cpp index d89073ad9..ab45a0696 100755 --- a/m770/771200.cpp +++ b/m770/771200.cpp @@ -535,7 +535,7 @@ bool TQuadroA::QA3_base_occupazionale(TMask_field& f , KEY k) if (k == K_SPACE) { TString appname(30); - appname.format("773 -1 771200i 37 \"%s\" 0", "Base occupati"); + appname.format("773mod -1 771200i 37 \"%s\" 0", "Base occupati"); TExternal_app a(appname); a.run(); } diff --git a/m770/771200a.uml b/m770/771200a.uml index fceb5632c..c4f6b63fe 100755 --- a/m770/771200a.uml +++ b/m770/771200a.uml @@ -60,7 +60,7 @@ BEGIN OUTPUT F_CODANAGDIP CODIP OUTPUT QAF_COGNOME COGNOME OUTPUT QAF_NOME NOME - ADD RUN 773 -1 771150a 45 "Anagrafica dipendenti" + ADD RUN 773mod -1 771150a 45 "Anagrafica dipendenti" MESSAGE COPY, F_CODIP END diff --git a/m770/771200b.uml b/m770/771200b.uml index 1dbfcff57..cb9af504a 100755 --- a/m770/771200b.uml +++ b/m770/771200b.uml @@ -664,7 +664,7 @@ END TEXT DLG_NULL BEGIN PROMPT 44 11 "63 interessi " - GROUP 7 +// GROUP 7 END NUMBER F_IMPVER60 15 @@ -712,7 +712,7 @@ END TEXT DLG_NULL BEGIN PROMPT 44 15 "66 Contr. versato " - GROUP 7 +// GROUP 7 END NUMBER F_CONRIMB63 15 @@ -725,7 +725,7 @@ END TEXT DLG_NULL BEGIN PROMPT 2 16 "67 interessi " - GROUP 7 +// GROUP 7 END NUMBER F_CONVER64 15 diff --git a/m770/771200c.uml b/m770/771200c.uml index cffc45766..8872f49c3 100755 --- a/m770/771200c.uml +++ b/m770/771200c.uml @@ -60,11 +60,8 @@ BEGIN OUTPUT F_CODANAGDIP CODIP OUTPUT QAF_COGNOME COGNOME OUTPUT QAF_NOME NOME -// CHECKTYPE REQUIRED - ADD RUN 773 -1 771150a 45 "Anagrafica dipendenti" + ADD RUN 773mod -1 771150a 45 "Anagrafica dipendenti" MESSAGE COPY, F_CODIP -// FIELD LF_QUAA1->CODIP -// KEY 1 END STRING QAF_COGNOME 24 diff --git a/m770/771200e.uml b/m770/771200e.uml index 8d7651456..c09f4185d 100755 --- a/m770/771200e.uml +++ b/m770/771200e.uml @@ -60,7 +60,7 @@ BEGIN OUTPUT F_CODANAGDIP CODIP OUTPUT QAF_COGNOME COGNOME OUTPUT QAF_NOME NOME - ADD RUN 773 -1 771150a 45 "Anagrafica dipendenti" + ADD RUN 773mod -1 771150a 45 "Anagrafica dipendenti" MESSAGE COPY, F_CODIP END diff --git a/m770/771200f.uml b/m770/771200f.uml index a5be2de94..ec9373fec 100755 --- a/m770/771200f.uml +++ b/m770/771200f.uml @@ -99,17 +99,30 @@ BEGIN PROMPT 1 6 "@bSALDO IRPEF PER IL 1994 " END +/* TEXT DLG_NULL BEGIN - PROMPT 2 7 "10 Imposta rimborsata " + PROMPT 2 7 "10 Imposta rimbor. " GROUP 6 END - +*/ +/* TEXT DLG_NULL BEGIN PROMPT 2 7 "11 Imposta versata " GROUP 7 END +*/ + +TEXT DLG_NULL +BEGIN + PROMPT 2 7 "10 Imposta rimbor. " +END + +TEXT DLG_NULL +BEGIN + PROMPT 41 7 "11 Imposta versata " +END NUMBER F_IIRPEFVER8 15 BEGIN @@ -118,22 +131,31 @@ BEGIN PICTURE "." END +/* TEXT DLG_NULL BEGIN PROMPT 41 7 "12 Interessi " GROUP 6 END +*/ + +TEXT DLG_NULL +BEGIN + PROMPT 2 8 "12 Interessi " +END GROUPBOX DLG_NULL 78 3 BEGIN PROMPT 1 10 "@bPRIMA RATA ACCONTO IRPEF PER IL 1995 " END +/* TEXT DLG_NULL -BEGIN +BEGIN PROMPT 41 7 "13 Imposta versata " GROUP 7 END +*/ NUMBER F_IIRPEFRI9 15 BEGIN @@ -142,13 +164,13 @@ BEGIN PICTURE "." END +/* TEXT DLG_NULL BEGIN PROMPT 2 8 "14 Interessi " GROUP 6 END -/* TEXT DLG_NULL BEGIN PROMPT 2 8 "1a rata acc.IRPEF96 " @@ -166,14 +188,16 @@ END TEXT DLG_NULL BEGIN PROMPT 2 11 "13 Imposta versata " - GROUP 6 +// GROUP 6 END +/* TEXT DLG_NULL BEGIN PROMPT 2 11 "14 Interessi " GROUP 7 END +*/ NUMBER F_PRIRPEF10 15 BEGIN @@ -185,8 +209,8 @@ END TEXT DLG_NULL BEGIN - PROMPT 41 11 "Interessi " - GROUP 6 + PROMPT 41 11 "14 Interessi " +// GROUP 6 END TEXT DLG_NULL @@ -273,14 +297,21 @@ END TEXT DLG_NULL BEGIN PROMPT 2 5 "16 Cont.a rimborso " - GROUP 6 +// GROUP 6 END +TEXT DLG_NULL +BEGIN + PROMPT 41 5 "17 Cont. versato " +END + +/* TEXT DLG_NULL BEGIN PROMPT 2 5 "17 Cont. versato " GROUP 7 END +*/ NUMBER QA2F_CSSNCRIMB 15 BEGIN @@ -289,6 +320,7 @@ BEGIN PICTURE "." END +/* TEXT DLG_NULL BEGIN PROMPT 41 5 "18 Interessi " @@ -300,6 +332,7 @@ BEGIN PROMPT 41 5 "2a rata acc.CSSN 96" GROUP 7 END +*/ NUMBER QA2F_CSSNCVER 15 BEGIN @@ -311,7 +344,7 @@ END NUMBER QA2F_CSSNINT 15 BEGIN - PROMPT 2 6 "Interessi " + PROMPT 2 6 "18 Interessi " FIELD LF_QUAA2->INTER18 PICTURE "." END @@ -323,21 +356,21 @@ END NUMBER QA2F_CSSNAIV 15 BEGIN - PROMPT 2 9 "Imposta versata " + PROMPT 2 9 "19 Contrib.versato " FIELD LF_QUAA2->CONTV19 PICTURE "." END NUMBER QA2F_CSSNAINT 15 BEGIN - PROMPT 41 9 "Interessi " + PROMPT 41 9 "20 Interessi " FIELD LF_QUAA2->INTE20 PICTURE "." END NUMBER QA2F_STCSSN 15 BEGIN - PROMPT 2 11 "Soprattasse su C.S.S.N. saldo 94 e prima rata acc.95 " + PROMPT 2 11 "21 Soprattasse su C.S.S.N. saldo 94 e prima rata acc.95 " FIELD LF_QUAA2->SOPRAT21 PICTURE "." END diff --git a/m770/771200g.uml b/m770/771200g.uml index 536fcabc2..a10c7160a 100755 --- a/m770/771200g.uml +++ b/m770/771200g.uml @@ -75,7 +75,7 @@ BEGIN OUTPUT QAF_COGNOME COGNOME OUTPUT QAF_NOME NOME MESSAGE COPY, F_CODIP - ADD RUN 775 -0 + ADD RUN 773mod -1 771150a 45 "Anagrafica dipendenti" GROUP 2 END diff --git a/m770/771230.cpp b/m770/771230.cpp index 6a7b6770a..c934eb1bc 100755 --- a/m770/771230.cpp +++ b/m770/771230.cpp @@ -5,6 +5,7 @@ #include #include #include +#include "caus77.h" #include "77lib.h" #include "scperc.h" #include "rpag.h" @@ -31,6 +32,7 @@ class TQuadroC_E2 : public TRelation_application real rite; real comp; bool acim; + bool bInps; real inps; }; righe_pag* _rig; @@ -81,7 +83,7 @@ class TQuadroC_E2 : public TRelation_application bool azzera_quadro(); void riempi_record(char,long,int,const real&,const real&, const real&,const real&,const real&,bool, - const real& inps_perc); + const real& inps_perc, bool bCinps=FALSE); void init_sort(); void leggi_sort(TProgind&); TRectype& look_causali(int c); @@ -268,7 +270,7 @@ bool TQuadroC_E2::imponibile_hnd(TMask_field& f, KEY k) { int causale = f.mask().get_int(F_CODCAUS); TRectype& cau = app().look_causali(causale); - real aliquota = cau.get_real("R0"); + real aliquota = cau.get_real(rPERC_RAC); f.mask().set(F_PERC, aliquota.string()); } } @@ -300,7 +302,7 @@ void TQuadroC_E2::init_sort() 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) + const real& inps, bool bInps) { _rig->tipoa = t; sprintf(_rig->codan, "%5ld", ca); @@ -316,7 +318,8 @@ void TQuadroC_E2::riempi_record(char t,long ca,int cc,const real& p, _rig->rite = ri; _rig->comp = co; _rig->acim = acim; - _rig->inps = inps; + _rig->inps = inps; + _rig->bInps = bInps; _sort->sort((const char*)_rig); } @@ -386,10 +389,11 @@ bool TQuadroC_E2::generazione() codcaus = scperc.get_int(SPR_CODCAUS); nprog = scperc.get_int(SPR_NPROG); - TRectype cau = look_causali(codcaus); - TString16 qua = cau.get("S1"); - bool acc_imp = cau.get_bool("B0"); - + 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; @@ -423,7 +427,7 @@ bool TQuadroC_E2::generazione() if (perc==ZERO && comp==ZERO && rite==ZERO && impo==ZERO && somme==ZERO) continue; - riempi_record(tipoa,codan,codcaus,perc,somme,impo,rite,comp,acc_imp,inps); + riempi_record(tipoa,codan,codcaus,perc,somme,impo,rite,comp,acc_imp,inps,bContrInps); } rpag.readat(nrec); } @@ -540,9 +544,8 @@ void TQuadroC_E2::leggi_sort(TProgind& 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; - bool acc_imp = FALSE; + real rTotQCInps = ZERO; + bool esiste_record = FALSE, acc_imp = FALSE, bInps = FALSE; struct righe_pag* rp; keyp = key = ""; @@ -559,8 +562,8 @@ void TQuadroC_E2::leggi_sort(TProgind& p) codcaus = atoi(rp->codcau); perc = rp->perc; acc_imp = rp->acim; - rQCInps = rp->inps; - + bInps = rp->bInps; // se la riga aveva il contributo inps nella cau. + rQCInps = bInps ? rp->inps : ZERO; if (QuadroE1() && !acc_imp) { genera_prospetto(codcaus,rp->comp,rp->impo,rp->rite); @@ -569,7 +572,7 @@ void TQuadroC_E2::leggi_sort(TProgind& p) else { key.format("%c%5ld%2d%s", tipoa, codanag, codcaus, (const char*)perc); - if (key != keyp && keyp != "") + if ( (key != keyp) && (keyp != "") ) { qd.zero(); qd.put("CODDITTA", (long)get_firm_770()); @@ -580,7 +583,7 @@ void TQuadroC_E2::leggi_sort(TProgind& p) // 12.6.96 aggiunto contributo inps if (QuadroC()) - qd.put("CONTSSN", rQCInps); + qd.put("CONTSSN", rTotQCInps); if (QuadroD() || QuadroC()) qd.put("SOMME", tot_somme + tot_comp - tot_impo); @@ -619,14 +622,15 @@ void TQuadroC_E2::leggi_sort(TProgind& p) else qd.put("NETTO", tot_impo - tot_rite); qd.write(); - tot_impo = tot_somme = tot_rite = tot_comp = ZERO; + 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 (bInps) + rTotQCInps += rQCInps; if (tipoa_p != tipoa || codanag != codanag_p) nprog = 1; diff --git a/m770/771230b.uml b/m770/771230b.uml index 969b08f77..4f4ee0a10 100755 --- a/m770/771230b.uml +++ b/m770/771230b.uml @@ -88,7 +88,7 @@ BEGIN FLAGS "Z" WARNING "Manca la causale" FIELD LF_QUAD->CODCAUS - ADD RUN 773 -3 %CA7 + ADD RUN 773mod -3 %CA7 END STRING QDF_CODCAUSD 1 diff --git a/m770/771230f.uml b/m770/771230f.uml index b45e1e502..0b73b59e0 100755 --- a/m770/771230f.uml +++ b/m770/771230f.uml @@ -86,7 +86,7 @@ BEGIN FLAGS "Z" WARNING "Manca la causale" FIELD LF_QUAC->CODCAUS - ADD RUN 773 -3 %CA7 + ADD RUN 773mod -3 %CA7 END STRING F_DESCRCAUS 58 diff --git a/m770/771230h.uml b/m770/771230h.uml index 3fc349149..99d62f822 100755 --- a/m770/771230h.uml +++ b/m770/771230h.uml @@ -83,7 +83,7 @@ BEGIN FLAGS "Z" WARNING "Manca la causale" FIELD LF_QUAE->CODCAUS - ADD RUN 773 -3 %CA7 + ADD RUN 773mod -3 %CA7 END STRING F_DESCRCAUS 58 diff --git a/m770/771230i.uml b/m770/771230i.uml index e2fed9702..15c606aca 100755 --- a/m770/771230i.uml +++ b/m770/771230i.uml @@ -10,8 +10,7 @@ END BUTTON F_PROSPETTO 21 2 BEGIN PROMPT -23 -3 "~Prospetto" -// MESSAGE RUN,7783,771230m,89,"Prospetto del Quadro E1","E1" - MESSAGE RUN,773,-1,771230m,89,"Prospetto del Quadro E1","E1" + MESSAGE RUN,773mod,-1,771230m,89,"Prospetto del Quadro E1","E1" END #include diff --git a/m770/771230l.uml b/m770/771230l.uml index 5725ff166..468ab8d36 100755 --- a/m770/771230l.uml +++ b/m770/771230l.uml @@ -83,7 +83,7 @@ BEGIN FLAGS "Z" WARNING "Manca la causale" FIELD LF_QUAE1->CODCAUS - ADD RUN 773 -3 %CA7 + ADD RUN 773mod -3 %CA7 END STRING F_DESCRCAUS 58 diff --git a/m770/771230m.uml b/m770/771230m.uml index 5fdb341a1..2a6cd40c2 100755 --- a/m770/771230m.uml +++ b/m770/771230m.uml @@ -64,7 +64,7 @@ BEGIN FLAGS "Z" WARNING "Manca la causale" FIELD LF_PROSPE1->CODCAUS - ADD RUN 773 -3 %CA7 + ADD RUN 773mod -3 %CA7 KEY 1 GROUP 9 MESSAGE COPY,PE1F_CODCAUS diff --git a/m770/771231a.uml b/m770/771231a.uml index 47db62181..e1c232b15 100755 --- a/m770/771231a.uml +++ b/m770/771231a.uml @@ -219,7 +219,7 @@ BEGIN FLAGS "Z" WARNING "Manca la causale" CHECKTYPE NORMAL - ADD RUN 773 -3 %CA7 + ADD RUN 773mod -3 %CA7 FIELD LF_QUAF->F_CODCAUS END diff --git a/m770/771231b.uml b/m770/771231b.uml index 0a956bf34..facfe5121 100755 --- a/m770/771231b.uml +++ b/m770/771231b.uml @@ -17,7 +17,7 @@ BEGIN OUTPUT 103 R0 FLAGS "Z" WARNING "Manca la causale" - ADD RUN 773 -3 %CA7 + ADD RUN 773mod -3 %CA7 GROUP 1 END diff --git a/m770/771231c.uml b/m770/771231c.uml index 03de6216a..f276d976e 100755 --- a/m770/771231c.uml +++ b/m770/771231c.uml @@ -17,7 +17,7 @@ BEGIN OUTPUT 103 R0 FLAGS "Z" WARNING "Manca la causale" - ADD RUN 773 -3 %CA7 + ADD RUN 773mod -3 %CA7 GROUP 1 END diff --git a/m770/771232b.uml b/m770/771232b.uml index 889051147..040765b8b 100755 --- a/m770/771232b.uml +++ b/m770/771232b.uml @@ -17,7 +17,7 @@ BEGIN OUTPUT 103 R0 FLAGS "Z" WARNING "Manca la causale" - ADD RUN 773 -3 %CA7 + ADD RUN 773mod -3 %CA7 GROUP 1 END diff --git a/m770/771233b.uml b/m770/771233b.uml index 7f53d70f5..15f046ed2 100755 --- a/m770/771233b.uml +++ b/m770/771233b.uml @@ -17,7 +17,7 @@ BEGIN FLAGS "Z" WARNING "Manca la causale" VALIDATE REQIF_FUNC 6 102 103 104 105 - ADD RUN 773 -3 %CA7 + ADD RUN 773mod -3 %CA7 GROUP 1 END diff --git a/m770/771310.cpp b/m770/771310.cpp index ed11747b1..cf85d14c5 100755 --- a/m770/771310.cpp +++ b/m770/771310.cpp @@ -161,44 +161,9 @@ bool M71310_application::auto_premi(TMask_field& f, KEY k) { if (k == K_TAB && f.mask().is_running()) { -// TLocalisamfile qual (LF_QUAL,FALSE); TRelation* rel = app()._rel; TMask& m = f.mask(); m.autosave(rel); -/* long codditta = m.get_long(F_CODDITTA); - TDate datavers (m.get(F_QLDATAVERS)); - TString data = datavers.string(); - int mesepag = m.get_int(F_QLMESEPAG); - int annopag = m.get_int(F_QLANNOPAG); - char luovers = m.get (F_QLLUOVERS)[0]; - char tipovers = m.get (F_QLTIPOVERS)[0]; - long codtrib = m.get_long(F_QLCODTRIB); - int artbil = m.get_int(F_ARTBIL); - TString serie(m.get(FH_ABISERIE)); - TString numero(m.get(FH_NUMERO)); */ -// TString cab(m.get(FH_CAB)); -// TString nprog(m.get(FH_NPROG)); - -// Se abi/cab devo attaccare al cab il progressivo vers.banca -// if (tipovers == DELEGA_BANCARIA) -// numero << nprog; - -/* - qual.setkey(1); - qual.zero(); - qual.put(QUL_CODDITTA, codditta); - qual.put(QUL_QLDV, datavers); - qual.put(QUL_QLMP, mesepag); - qual.put(QUL_QLAP, annopag); - qual.put(QUL_QLLV, luovers); - qual.put(QUL_QLTV, tipovers); - qual.put(QUL_QLCT, (long)codtrib); - qual.put(QUL_QLAB, (long)artbil); - qual.put(QUL_QLSERIE, serie); - qual.put(QUL_QLNUMERO, numero); */ - -// if (qual.read() == NOERR) - if (rel->read() == NOERR) f.mask().stop_run(K_AUTO_ENTER); else diff --git a/m770/771310a.uml b/m770/771310a.uml index 2f496834a..8c5d5e5c9 100755 --- a/m770/771310a.uml +++ b/m770/771310a.uml @@ -1,329 +1,331 @@ -// 771310a.uml - Quadro L -#include "771310.h" -TOOLBAR "" 0 18 0 4 -BUTTON F_GENERA 21 2 -BEGIN - PROMPT -13 -3 "~Generazione" -END - -BUTTON F_PARAMETRI 21 2 -BEGIN - PROMPT -23 -3 "~Parametri Generazione" -END - -#include -ENDPAGE - -PAGE "QUADRO L" -1 -1 78 18 - -#define ABI_CAB 7 -#define NUM_SERIE 8 -#define TEXT_NUM_SERIE 9 -#define TEXT_ABI_CAB 6 -#define GH 10 - -GROUPBOX DLG_NULL 78 4 -BEGIN - PROMPT 0 0 "" - FLAGS "R" -END - -NUMBER F_CODDITTA 5 -BEGIN - PROMPT 2 1 "Ditta " - FLAGS "RDG" - USE LF_NDITTE KEY 1 - FIELD LF_QUAL->CODDITTA - CHECKTYPE REQUIRED - INPUT CODDITTA F_CODDITTA - DISPLAY "Codice" CODDITTA - DISPLAY "Ragione sociale @50" RAGSOC - OUTPUT F_RAGSOC RAGSOC - KEY 1 -END - -STRING F_RAGSOC 50 -BEGIN - PROMPT 2 2 "Ragione sociale " - FLAGS "D" -END - -TEXT 96 -BEGIN - PROMPT 2 10 "Numero serie " - GROUP TEXT_NUM_SERIE -END - -TEXT 97 -BEGIN - PROMPT 2 10 "Codice ABI " - GROUP ABI_CAB -END - -TEXT 98 -BEGIN - PROMPT 46 10 "Numero quietanza " - GROUP TEXT_NUM_SERIE -END - -TEXT 99 -BEGIN - PROMPT 46 10 "Codice CAB " - GROUP ABI_CAB -END - -GROUPBOX DLG_NULL 78 7 -BEGIN - PROMPT 0 5 "" -END - -NUMBER F_ANNODIC 4 -BEGIN - PROMPT 2 4 "Anno dichiarazione " -END - -NUMBER F_QLANNOPAG 4 -BEGIN - PROMPT 2 6 "Anno pagamento " - USE LF_QUAL KEY 1 SELECT ((CODDITTA=#F_CODDITTA) && (QLAP=#F_ANNODIC)) - INPUT CODDITTA F_CODDITTA - INPUT QLAP F_QLANNOPAG - DISPLAY "A.P." QLAP - DISPLAY "M.P." QLMP - DISPLAY "Ritenute@15" QLRITEFF - DISPLAY "Importo versato" QLRITVER - DISPLAY "L.V." QLLV - DISPLAY "T.V." QLTV - DISPLAY "C.T." QLCT - DISPLAY "Art.Bil." QLAB - DISPLAY "Data Vers." QLDV - DISPLAY "Serie/ABI" QLSERIE - DISPLAY "Numero/CAB@11" QLNUMERO - DISPLAY "Rss" QLRSS - DISPLAY "Note@7" QLNOTE - OUTPUT F_QLDATAVERS QLDV - OUTPUT F_QLMESEPAG QLMP - OUTPUT F_QLANNOPAG QLAP - OUTPUT F_QLLUOVERS QLLV - OUTPUT F_QLTIPOVERS QLTV - OUTPUT F_QLCODTRIB QLCT - OUTPUT F_ARTBIL QLAB - OUTPUT F_QLSERIE QLSERIE - OUTPUT F_ABI QLSERIE - OUTPUT F_CAB1 QLNUMERO[1,5] - OUTPUT F_CAB QLNUMERO[6,11] - FIELD LF_QUAL->QLAP - FLAGS "R" - VALIDATE FIXLEN_FUNC 4 - WARNING "L' anno deve essere indicato per esteso" - KEY 1 -END - -LIST F_QLMESEPAG 2 13 -BEGIN - PROMPT 46 6 "Mese pagamento " - FIELD LF_QUAL->QLMP - ITEM " |Indefinito" - FLAGS "M" - KEY 1 -END - -DATE F_QLDATAVERS -BEGIN - PROMPT 2 7 "Data versamento " - FIELD LF_QUAL->QLDV - KEY 1 -END - -LIST F_QLLUOVERS 11 -BEGIN - PROMPT 46 7 "Luogo versamento " - ITEM " |Nessuno" - ITEM "C|Concessione" - ITEM "T|Tesoreria" - FIELD LF_QUAL->QLLV - KEY 1 -END - -LIST F_QLTIPOVERS 15 -BEGIN - PROMPT 2 8 "Tipo versamento " - ITEM " |Nessuno" - MESSAGE SHOW,97|SHOW,99|HIDE,96|HIDE,98|RESET,GH@ - MESSAGE ENABLE,F_QLSERIE - ITEM "B|Delega bancaria" - MESSAGE RESET,GH@|HIDE,TEXT_NUM_SERIE@|SHOW,ABI_CAB@ - MESSAGE ENABLE,ABI_CAB@|DISABLE,NUM_SERIE@ - ITEM "D|Distinta" - MESSAGE RESET,GH@|SHOW,TEXT_NUM_SERIE@|HIDE,ABI_CAB@ - MESSAGE ENABLE,NUM_SERIE@|DISABLE,ABI_CAB@ - ITEM "C|C/C Postale" - MESSAGE RESET,GH@|SHOW,TEXT_NUM_SERIE@|CLEAR,F_ABI|CLEAR,F_QLSERIE|HIDE,ABI_CAB@ - MESSAGE DISABLE,F_QLSERIE|DISABLE,ABI_CAB@ - FIELD LF_QUAL->QLTV - KEY 1 -END - -NUMBER F_QLCODTRIB 4 -BEGIN - PROMPT 46 8 "Codice tributo " - FIELD LF_QUAL->QLCT - KEY 1 -END - -NUMBER F_ARTBIL 2 -BEGIN - PROMPT 2 9 "Articolo di bilancio " - FIELD LF_QUAL->QLAB - KEY 1 -END - -STRING F_QLSERIE 5 -BEGIN - PROMPT 23 10 "" - FIELD LF_QUAL->QLSERIE - GROUP NUM_SERIE - KEY 1 -END - -STRING F_QLNUMERO 11 -BEGIN - PROMPT 63 10 "" - FIELD LF_QUAL->QLNUMERO - GROUP NUM_SERIE - KEY 1 -END - -NUMBER F_ABI 5 -BEGIN - PROMPT 23 10 "" - FIELD LF_QUAL->QLSERIE - GROUP ABI_CAB - KEY 1 -END - -NUMBER F_CAB1 5 -BEGIN - PROMPT 63 10 "" - FIELD LF_QUAL->QLNUMERO[1,5] - GROUP ABI_CAB - KEY 1 -END - -NUMBER F_CAB 6 -BEGIN - PROMPT 69 10 "" - FIELD LF_QUAL->QLNUMERO[6,11] - FLAGS "Z" - GROUP ABI_CAB - KEY 1 -END - -LIST F_QUADRO 2 -BEGIN - PROMPT 0 12 "Codice quadro " - HELP "Inserire il codice quadro" - ITEM "| " - ITEM "A|A" - ITEM "B|B" - ITEM "B1|B1" - ITEM "C|C" - ITEM "D|D" - ITEM "D1|D1" - ITEM "E|E" - ITEM "E1|E1" - ITEM "G|G" - ITEM "G1|G1" - FIELD LF_QUAL->QLCODQUA -END - -TEXT DLG_NULL -BEGIN - PROMPT 0 13 "Somme assoggettate a ritenuta:" -END - -TEXT DLG_NULL -BEGIN - PROMPT 0 14 "Rit. Effettuate" -END - -NUMBER F_QLRITEFF 15 -BEGIN - PROMPT 0 15 "" - FIELD LF_QUAL->QLRITEFF - PICTURE "." - FLAGS "R" -END - -TEXT DLG_NULL -BEGIN - PROMPT 17 14 "Importo versato" -END - -NUMBER F_QLRITVER 15 -BEGIN - PROMPT 17 15 "" - FIELD LF_QUAL->QLRITVER - PICTURE "." - FLAGS "R" -END - -TEXT DLG_NULL -BEGIN - PROMPT 37 14 "RSS" -END - -LIST F_QLRSS 7 -BEGIN - PROMPT 34 15 "" - ITEM " |Nessuna" - ITEM "1|VA" - ITEM "2|SA" - ITEM "3|SI" - FIELD LF_QUAL->QLRSS -END - -TEXT DLG_NULL -BEGIN - PROMPT 58 14 "Note" -END - -BOOLEAN F_NOTEA -BEGIN - PROMPT 45 15 "A" -END - -BOOLEAN F_NOTEB -BEGIN - PROMPT 50 15 "B" -END - -BOOLEAN F_NOTEC -BEGIN - PROMPT 55 15 "C" -END - -BOOLEAN F_NOTED -BEGIN - PROMPT 60 15 "D" -END - -BOOLEAN F_NOTEE -BEGIN - PROMPT 65 15 "E" -END - -BOOLEAN F_NOTEF -BEGIN - PROMPT 70 15 "F" -END - -BOOLEAN F_NOTEG -BEGIN - PROMPT 75 15 "G" -END - -ENDPAGE - -ENDMASK - +// 771310a.uml - Quadro L +#include "771310.h" +TOOLBAR "" 0 18 0 4 +BUTTON F_GENERA 21 2 +BEGIN + PROMPT -13 -3 "~Generazione" +END + +BUTTON F_PARAMETRI 21 2 +BEGIN + PROMPT -23 -3 "~Parametri Generazione" +END + +#include +ENDPAGE + +PAGE "QUADRO L" -1 -1 78 18 + +#define ABI_CAB 7 +#define NUM_SERIE 8 +#define TEXT_NUM_SERIE 9 +#define TEXT_ABI_CAB 6 +#define GH 10 + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 0 0 "" + FLAGS "R" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 2 1 "Ditta " + FLAGS "RDG" + USE LF_NDITTE KEY 1 + FIELD LF_QUAL->CODDITTA + CHECKTYPE REQUIRED + INPUT CODDITTA F_CODDITTA + DISPLAY "Codice" CODDITTA + DISPLAY "Ragione sociale @50" RAGSOC + OUTPUT F_RAGSOC RAGSOC + KEY 1 +END + +STRING F_RAGSOC 50 +BEGIN + PROMPT 2 2 "Ragione sociale " + FLAGS "D" +END + +TEXT 96 +BEGIN + PROMPT 2 10 "Numero serie " + GROUP TEXT_NUM_SERIE +END + +TEXT 97 +BEGIN + PROMPT 2 10 "Codice ABI " + GROUP ABI_CAB +END + +TEXT 98 +BEGIN + PROMPT 46 10 "Numero quietanza " + GROUP TEXT_NUM_SERIE +END + +TEXT 99 +BEGIN + PROMPT 46 10 "Codice CAB " + GROUP ABI_CAB +END + +GROUPBOX DLG_NULL 78 7 +BEGIN + PROMPT 0 5 "" +END + +NUMBER F_ANNODIC 4 +BEGIN + PROMPT 2 4 "Anno dichiarazione " +END + +NUMBER F_QLANNOPAG 4 +BEGIN + PROMPT 2 6 "Anno pagamento " + USE LF_QUAL KEY 1 SELECT ((CODDITTA=#F_CODDITTA) && (QLAP=#F_ANNODIC)) + INPUT CODDITTA F_CODDITTA + INPUT QLAP F_QLANNOPAG + DISPLAY "A.P." QLAP + DISPLAY "M.P." QLMP + DISPLAY "Ritenute@15" QLRITEFF + DISPLAY "Importo versato" QLRITVER + DISPLAY "L.V." QLLV + DISPLAY "T.V." QLTV + DISPLAY "C.T." QLCT + DISPLAY "Art.Bil." QLAB + DISPLAY "Data Vers." QLDV + DISPLAY "Serie/ABI" QLSERIE + DISPLAY "Numero/CAB@11" QLNUMERO + DISPLAY "Rss" QLRSS + DISPLAY "Note@7" QLNOTE + OUTPUT F_QLDATAVERS QLDV + OUTPUT F_QLMESEPAG QLMP + OUTPUT F_QLANNOPAG QLAP + OUTPUT F_QLLUOVERS QLLV + OUTPUT F_QLTIPOVERS QLTV + OUTPUT F_QLCODTRIB QLCT + OUTPUT F_ARTBIL QLAB + OUTPUT F_QLSERIE QLSERIE + OUTPUT F_ABI QLSERIE + OUTPUT F_CAB1 QLNUMERO[1,5] + OUTPUT F_CAB QLNUMERO[6,11] + FIELD LF_QUAL->QLAP + FLAGS "R" + VALIDATE FIXLEN_FUNC 4 + WARNING "L' anno deve essere indicato per esteso" + KEY 1 +END + +LIST F_QLMESEPAG 2 13 +BEGIN + PROMPT 46 6 "Mese pagamento " + FIELD LF_QUAL->QLMP + ITEM " |Indefinito" + FLAGS "M" + KEY 1 +END + +DATE F_QLDATAVERS +BEGIN + PROMPT 2 7 "Data versamento " + FIELD LF_QUAL->QLDV + KEY 1 +END + +LIST F_QLLUOVERS 11 +BEGIN + PROMPT 46 7 "Luogo versamento " + ITEM " |Nessuno" + ITEM "C|Concessione" + ITEM "T|Tesoreria" + FIELD LF_QUAL->QLLV + KEY 1 +END + +LIST F_QLTIPOVERS 15 +BEGIN + PROMPT 2 8 "Tipo versamento " + ITEM " |Nessuno" + MESSAGE SHOW,97|SHOW,99|HIDE,96|HIDE,98|RESET,GH@ + MESSAGE ENABLE,F_QLSERIE + ITEM "B|Delega bancaria" + MESSAGE RESET,GH@|HIDE,TEXT_NUM_SERIE@|SHOW,ABI_CAB@ + MESSAGE ENABLE,ABI_CAB@|DISABLE,NUM_SERIE@ + ITEM "D|Distinta" + MESSAGE RESET,GH@|SHOW,TEXT_NUM_SERIE@|HIDE,ABI_CAB@ + MESSAGE ENABLE,NUM_SERIE@|DISABLE,ABI_CAB@ + ITEM "C|C/C Postale" + MESSAGE RESET,GH@|SHOW,TEXT_NUM_SERIE@|CLEAR,F_ABI|CLEAR,F_QLSERIE|HIDE,ABI_CAB@ + MESSAGE DISABLE,F_QLSERIE|DISABLE,ABI_CAB@ + FIELD LF_QUAL->QLTV + KEY 1 +END + +NUMBER F_QLCODTRIB 4 +BEGIN + PROMPT 46 8 "Codice tributo " + FIELD LF_QUAL->QLCT + KEY 1 +END + +NUMBER F_ARTBIL 2 +BEGIN + PROMPT 2 9 "Articolo di bilancio " + FIELD LF_QUAL->QLAB + KEY 1 +END + +STRING F_QLSERIE 5 +BEGIN + PROMPT 23 10 "" + FIELD LF_QUAL->QLSERIE + GROUP NUM_SERIE + KEY 1 +END + +STRING F_QLNUMERO 11 +BEGIN + PROMPT 63 10 "" + FIELD LF_QUAL->QLNUMERO + GROUP NUM_SERIE + KEY 1 +END + +NUMBER F_ABI 5 +BEGIN + PROMPT 23 10 "" + FIELD LF_QUAL->QLSERIE + FLAGS "Z" + GROUP ABI_CAB + KEY 1 +END + +NUMBER F_CAB1 5 +BEGIN + PROMPT 63 10 "" + FIELD LF_QUAL->QLNUMERO[1,5] + FLAGS "Z" + GROUP ABI_CAB + KEY 1 +END + +NUMBER F_CAB 6 +BEGIN + PROMPT 69 10 "" + FIELD LF_QUAL->QLNUMERO[6,11] + FLAGS "Z" + GROUP ABI_CAB + KEY 1 +END + +LIST F_QUADRO 2 +BEGIN + PROMPT 0 12 "Codice quadro " + HELP "Inserire il codice quadro" + ITEM "| " + ITEM "A|A" + ITEM "B|B" + ITEM "B1|B1" + ITEM "C|C" + ITEM "D|D" + ITEM "D1|D1" + ITEM "E|E" + ITEM "E1|E1" + ITEM "G|G" + ITEM "G1|G1" + FIELD LF_QUAL->QLCODQUA +END + +TEXT DLG_NULL +BEGIN + PROMPT 0 13 "Somme assoggettate a ritenuta:" +END + +TEXT DLG_NULL +BEGIN + PROMPT 0 14 "Rit. Effettuate" +END + +NUMBER F_QLRITEFF 15 +BEGIN + PROMPT 0 15 "" + FIELD LF_QUAL->QLRITEFF + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT 17 14 "Importo versato" +END + +NUMBER F_QLRITVER 15 +BEGIN + PROMPT 17 15 "" + FIELD LF_QUAL->QLRITVER + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT 37 14 "RSS" +END + +LIST F_QLRSS 7 +BEGIN + PROMPT 34 15 "" + ITEM " |Nessuna" + ITEM "1|VA" + ITEM "2|SA" + ITEM "3|SI" + FIELD LF_QUAL->QLRSS +END + +TEXT DLG_NULL +BEGIN + PROMPT 58 14 "Note" +END + +BOOLEAN F_NOTEA +BEGIN + PROMPT 45 15 "A" +END + +BOOLEAN F_NOTEB +BEGIN + PROMPT 50 15 "B" +END + +BOOLEAN F_NOTEC +BEGIN + PROMPT 55 15 "C" +END + +BOOLEAN F_NOTED +BEGIN + PROMPT 60 15 "D" +END + +BOOLEAN F_NOTEE +BEGIN + PROMPT 65 15 "E" +END + +BOOLEAN F_NOTEF +BEGIN + PROMPT 70 15 "F" +END + +BOOLEAN F_NOTEG +BEGIN + PROMPT 75 15 "G" +END + +ENDPAGE + +ENDMASK + diff --git a/m770/773.cpp b/m770/773.cpp index 6d14afd63..384fc1759 100755 --- a/m770/773.cpp +++ b/m770/773.cpp @@ -1,7 +1,7 @@ #include #include -#include "773.h" +#include "773.h" #define usage "Error - usage : %s -{0|1|2|3}" diff --git a/m770/773100.cpp b/m770/773100.cpp index 1331246e1..219d9eb38 100755 --- a/m770/773100.cpp +++ b/m770/773100.cpp @@ -1,3 +1,4 @@ +// 773100 - Parametri di studio 770 #include class M73_App : public TConfig_application @@ -9,7 +10,7 @@ class M73_App : public TConfig_application virtual ~M73_App() {} }; -bool M73_App::user_create() +bool M73_App::user_create() { TString16 section; const char* edit_mask = "773100a"; diff --git a/m770/773100a.uml b/m770/773100a.uml index 7c8a671e6..48b6a0200 100755 --- a/m770/773100a.uml +++ b/m770/773100a.uml @@ -7,21 +7,24 @@ PAGE "Parametri Modello 770" -1 -1 76 13 // NUMBER F_ANNO 4 BEGIN - PROMPT 3 2 "Anno dichiarazione " - FLAGS "R" - FIELD AnnoDic + PROMPT 3 2 "Anno dichiarazione " + FLAGS "R" + FIELD AnnoDic END NUMBER F_CODCAU1015 2 BEGIN - PROMPT 3 4 "Codice causale 1015 " - USE %CA7 SELECT (I0=1015) - INPUT CODTAB F_CODCAU1015 - DISPLAY "Codice Causale" CODTAB - DISPLAY "Descrizione@60" S0 - OUTPUT F_CODCAU1015 CODTAB - FIELD CoCa1015 - FLAGS "RZ" + PROMPT 3 4 "Codice causale 1015 " + USE %CA7 SELECT (I0=1015) + INPUT CODTAB F_CODCAU1015 + DISPLAY "Codice Causale" CODTAB + DISPLAY "Descrizione@60" S0 + OUTPUT F_CODCAU1015 CODTAB + CHECKTYPE NORMAL + WARNING "Causale non valida" + FIELD CoCa1015 + FLAGS "Z" + ADD RUN 773mod -3 %ca7 END LIST F_FSTAMPAQL 35 diff --git a/m770/773mod.url b/m770/773mod.url new file mode 100755 index 000000000..ee694e844 --- /dev/null +++ b/m770/773mod.url @@ -0,0 +1,26 @@ +#include + +MENU TASK_MENUBAR + SUBMENU MENU_FILE "~File" + +MENUBAR MENU_BAR(1) + +MENU MENU_BAR(1) + SUBMENU MENU_FILE "~File" + +MENUBAR MENU_BAR(2) + +MENU MENU_BAR(2) + SUBMENU MENU_FILE "~File" + +MENUBAR MENU_BAR(3) + +MENU MENU_BAR(3) + SUBMENU MENU_FILE "~File" + +MENUBAR MENU_BAR(4) + +MENU MENU_BAR(4) + SUBMENU MENU_FILE "~File" + + diff --git a/m770/774100.cpp b/m770/774100.cpp index 255331a9d..7f2c425d3 100755 --- a/m770/774100.cpp +++ b/m770/774100.cpp @@ -1,518 +1,523 @@ -// 774100.cpp - Generazione quadro L -// -// 774 -0 S (livello di studio) oppure -// 774 -0 D (livello di ditta) -// -// Lista modifiche -// -// 21.12.95 Azzera solo i record con AP=anno dichiarazione (nf) -// 8.01.96 Scambiate nel quadrol la chiave 2 con la 1 (nf) -// -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "rpag.h" -#include "rver.h" -#include "scperc.h" -#include "quadrol.h" -#include "774100.h" -#include "77lib.h" - -// inizializzato in TGenera::set() - usato in filter_func() -HIDDEN TGenera* this_genera = NULL; -// Possibili esiti della dialog-box di configurazione parametri di gen. -HIDDEN const int UNCHANGED = 0; -HIDDEN const int CHANGED = 1; -HIDDEN const int ESCI = 2; - -void TVersamenti::set (TSchedaP& sc, const long numvers) -{ - _key.format("%4ld%c%4ld%4d%4ld", sc.codditta(),sc.tipoa(),sc.codanagr(),sc.nprog(),numvers); - add(_key); -} - -bool TVersamenti::find (TSchedaP& sc, const long numvers) -{ - _key.format("%4ld%c%4ld%4d%4ld", sc.codditta(),sc.tipoa(),sc.codanagr(),sc.nprog(),numvers); - return is_key(_key); -} - -// Accetta un record solo se: -// l'anno della data-pagamento == annodic E -// il pagamento e' collegato ad un versamento (non importa quale) -bool filter_func (const TRelation * rel) -{ - TDate datapag; - int anno,annod; - long nvers; - - annod = this_genera->_annodic; - datapag = rel->lfile().get(PAG_DATAPAG); - nvers = rel->lfile().get_long(PAG_NUMVERS); - anno = datapag.year(); - - return anno == annod && nvers > 0L; -} - -bool TGenera::causale1015(int causale) -{ - TTable ca7("%CA7"); - TString dep; - int artbil = 0; - - ca7.zero(); - dep = format("%02d", causale); - ca7.put("CODTAB", dep); - const bool ok = ca7.read() == NOERR; - - if (!ok) ca7.zero(); - - _ab1015 = ca7.get_int("I3"); - _ct1015 = ca7.get_int("I0"); - _cq1015 = ca7.get ("S1"); - - return ok; -} - -void TGenera::causale(int causale) -{ - TTable ca7("%CA7"); - TString dep; - - _codqua = ""; - - ca7.zero(); - dep = format("%02d", causale); - ca7.put("CODTAB", dep); - if (ca7.read() == NOERR) - { - _codqua = ca7.get ("S1"); - _artbil = ca7.get_int("I3"); - _codtrib = ca7.get_int("I0"); - } -} - -bool TGenera::set(const long codditta, TConfig* cnf, const char* section) -{ - TString16 filt; - int causale; - TRelation* rel; - TCursor* cur; - - if (!yesno_box("Conferma la generazione dei versamenti?")) - return FALSE; - - _codditta = codditta; - _annodic = (int)cnf->get_long(ANNO_SEL, section); - - this_genera = this; - - rel = new TRelation (LF_RPAG); - filt.format("CODDITTA=%ld", codditta); - - cur = new TCursor(rel,filt,1); - cur->set_filterfunction (filter_func); - - causale = atoi(cnf->get("CoCa1015", section)); - - if (causale) - { - if (!causale1015(causale)) - return warning_box("Manca la causale 1015 nella tabella causali"); - } - else - return warning_box("Manca la causale 1015 nei parametri di studio"); - - azzera_quadroL(); - genera_riga(cur); - arrotonda(); - - delete cur; - delete rel; - - return FALSE; -} - -int TGenera::controllo_parametri() -{ - TLocalisamfile base (LF_BASE); - - base.setkey(1); - base.zero(); - base.put("CODDITTA", _codditta); - const int rc = base.read(); - if (rc == NOERR) - { - TDate dv (base.get_date("DATAVERS")); - char lv = base.get_char("LUOVERS"); - char tv = base.get_char("TIPOVERS"); - TString s(base.get("SERIE")); - TString n(base.get("NUMERO")); - - if (!dv.ok() || lv == '\0' || tv == '\0' || n == "" || (s == "" && tv != 'C') ) - { - TString appname("776mod -4 d"); - TExternal_app a (appname); - a.run(); - - TMailbox m; - TMessage* msg = m.next_s(""); - int subj; -// 1 => uscito con Registra -// 0 => uscito con Quit - if (msg != NULL) - { - subj = atoi(msg->body()); - if (subj) - return CHANGED; - else - return ESCI; - } - } - } -#ifdef DBG - if (rc != NOERR) - return warning_box("Errore di lettura su base cod. %d", rc); -#endif - return UNCHANGED; -} - -bool TGenera::azzera_quadroL() -{ - TString quadro(3); - const long dittafirm = get_firm_770(); - TLocalisamfile ql(LF_QUAL); - TProgind progn(ql.items(), "Azzeramento quadro L", FALSE, TRUE); - - for (ql.first(); !ql.eof(); ql.next(), progn.addstatus(1)) - { - const long codditta = ql.get_long(QUL_CODDITTA); - if (codditta != dittafirm) continue; - -// 21.12.95 Azzera solo quelli dell'anno dichiarazione - const int ap = ql.get_int(QUL_QLAP); - if (ap != _annodic) continue; - - quadro = ql.get(QUL_QLCODQUA); - if (quadro == "C" || quadro == "D" || quadro == "D1" - || quadro == "E" || quadro == "E1") - ql.remove(); - } - progn.addstatus(1); - return TRUE; -} - -void TGenera::dati_rver(TLocalisamfile& rver,TSchedaP& sch, long numvers) -{ - rver.zero(); - rver.put(VER_CODDITTA, sch.codditta()); - rver.put(VER_TIPOA, sch.tipoa()); - rver.put(VER_CODANAGR, sch.codanagr()); - rver.put(VER_NPROG, sch.nprog()); - rver.put(VER_NRIGA, (long)numvers); - rver.read(); - if (rver.bad()) - rver.zero(); - - _ver1015 = rver.get_bool(VER_VERS1015); - _ritver = rver.get_real(VER_IMPVERS); - - if (_ver1015) - { - //Prendo i dati su flags LF_BASE - TLocalisamfile base(LF_BASE); - - base.setkey(1); - base.zero(); - base.put("CODDITTA", _codditta); - if (base.read(_isequal) == NOERR) - { - _datavers = base.get_date("DATAVERS"); - _mesepag = 12; - _luovers = base.get_char("LUOVERS"); - _tipover = base.get_char("TIPOVERS"); - _serie = base.get ("SERIE"); - _numero = base.get ("NUMERO"); - if (_tipover == DELEGA_BANCARIA) - _sNprog = _numero.mid(6); - - rver.reread(_testandlock); - rver.put("DATAVERS", _datavers); - rver.put("TIPOVERS", _tipover); - rver.put("SERIE", _serie); - rver.put("NUMERO", _numero); - rver.put("LUOVERS", _luovers); - rver.rewrite(); - rver.reread(_unlock); - } - } - else - { - _datavers = rver.get_date(VER_DATAVERS); - _luovers = rver.get_char(VER_LUOVERS); - _tipover = rver.get_char(VER_TIPOVERS); - _serie = rver.get (VER_SERIE); - _numero = rver.get (VER_NUMERO); - _sNprog = rver.get (VER_PROGBANC); - _sNprog.trim(); - if (_sNprog.not_empty()) - _numero << _sNprog; - } -} - -void TGenera::dati_scperc(TSchedaP& sch) -{ - TLocalisamfile scperc(LF_SCPERC); - int codtrib = 0; - - scperc.setkey(1); - scperc.zero(); - scperc.put(SPR_CODDITTA, sch.codditta()); - scperc.put(SPR_TIPOA, sch.tipoa()); - scperc.put(SPR_CODANAGR, sch.codanagr()); - scperc.put(SPR_NPROG, sch.nprog()); - if (scperc.read(_isequal) == NOERR) - _causale = scperc.get_int(SPR_CODCAUS); -} - -void TGenera::arrotonda() -{ - TLocalisamfile qual (LF_QUAL); - TRecnotype items_qual = qual.items(); - real importo; importo = ZERO; - TProgind progn(items_qual, "Arrotondamento ritenute versate in corso... Prego attendere", FALSE, TRUE); - - qual.setkey(1); - qual.zero(); - for (qual.first(); !qual.eof(); qual.next()) - { - progn.addstatus(1); - const long codditta = qual.get_long(QUL_CODDITTA); - if (codditta != _codditta) - { - progn.addstatus(1); // per far andare fino alla fine il "termometro" (sic) - continue; - } - importo = qual.get_real(QUL_QLRITVER); - importo = round_770(importo); - qual.reread(_testandlock); - qual.put(QUL_QLRITVER, importo); - qual.rewrite(); - qual.reread(_unlock); - } - progn.addstatus(1); -} - -void TGenera::genera_riga(TCursor* cur) -{ - TLocalisamfile ql (LF_QUAL); - TLocalisamfile rver(LF_RVER); - real riteff,ritver; - long numvers,codanagr,codp; - char tipoa,tipop; - int nprog,nprogp; - bool prima_volta = TRUE; - bool gia_fatto = FALSE; - TString perc,percp; - - (*cur) = 0L; - TRecnotype items_rpag = cur->items(); - TString scritta(60); - scritta.format("Generazione versamenti per la ditta %ld", _codditta); - TProgind progn(items_rpag, scritta, FALSE, TRUE); - - riteff = ZERO; - ritver = ZERO; - - _righe_gia_presenti = new TVersamenti; - _righe_gia_presenti->destroy(); - - tipop = 'Z'; - codp = 99999; - nprogp = 9999; - - TSchedaP scheda_prec; - for (int i = 0; i < items_rpag; i++, ++(*cur), progn.addstatus(1)) - { -// Leggo i dati su RPAG - TDate datapag(cur->curr().get(PAG_DATAPAG)); - _mesepag = datapag.month();; - _annopag = datapag.year(); - riteff = cur->curr().get_real(PAG_RITENUTA); - numvers = cur->curr().get_long(PAG_NUMVERS); - tipoa = cur->curr().get_char(PAG_TIPOA); - codanagr = cur->curr().get_long(PAG_CODANAGR); - nprog = cur->curr().get_int (PAG_NPROG); - - TSchedaP scheda_corr(_codditta, tipoa, codanagr, nprog); - dati_rver(rver,scheda_corr,numvers); - - if (scheda_corr != scheda_prec) - { - dati_scperc(scheda_corr); - causale(_causale); - } - scheda_prec.set(_codditta,tipoa,codanagr,nprog); - -// Se e' tributo1015 posso evitare di controllare il codice quadro - if (!_ver1015) - { - if (_codqua != "C" && _codqua != "D" && _codqua != "D1" && - _codqua != "E" && _codqua != "E1") - continue; - } - else - if (!gia_fatto) - { - gia_fatto = TRUE; - const int cp = controllo_parametri(); - if (cp == CHANGED) - dati_rver(rver,scheda_corr,numvers); - else - if (cp == ESCI) - break; // ho premuto il bottone FINE - } - - ql.setkey(1); - ql.zero(); - ql.put(QUL_CODDITTA, _codditta); - ql.put(QUL_QLMP, _mesepag); - ql.put(QUL_QLAP, _annopag); - ql.put(QUL_QLDV, _datavers); - ql.put(QUL_QLLV, _luovers); - ql.put(QUL_QLTV, _tipover); - - if (_ver1015) - { - ql.put(QUL_QLCT, _ct1015); - ql.put(QUL_QLAB, _ab1015); - ql.put(QUL_QLCODQUA, _cq1015); - } - else - { - ql.put(QUL_QLCT, _codtrib); - ql.put(QUL_QLAB, _artbil); - ql.put(QUL_QLCODQUA, _codqua); - } - ql.put(QUL_QLSERIE, _serie); - ql.put(QUL_QLNUMERO, _numero); - - TRectype dep(ql.curr()); - - if (ql.read(_isequal, _lock) == NOERR) - { - _riteff = ql.get_real(QUL_QLRITEFF); - _riteff += riteff; - ql.put(QUL_QLRITEFF, _riteff); - - if (!_righe_gia_presenti->find(scheda_corr,numvers)) - { - ritver = ql.get_real(QUL_QLRITVER); - ritver += _ritver; - ql.put(QUL_QLRITVER, ritver); - } - ql.rewrite(); - } - else - { - ql.zero(); - ql.curr() = dep; - ql.put(QUL_QLRITEFF, riteff); - ql.put(QUL_QLRITVER, _ritver); - ql.write(); - } - _righe_gia_presenti->set(scheda_corr,numvers); - } -} - - -class TGenera_versamenti : public TApplication -{ - char _liv; - TString16 _section; - TConfig* _cnf; - public: - TGenera* _genera; - TLocalisamfile *_rver, *_rpag, *_base, *_scperc, *_ql; - public: - virtual bool create(); - virtual bool menu(MENU_TAG m); - virtual bool destroy(); - - TGenera& genera() { return *_genera; } - - public: - TGenera_versamenti(char livello) : _liv(toupper(livello)) {} - ~TGenera_versamenti() {} -}; - -TGenera_versamenti& app() { return (TGenera_versamenti&)main_app(); } - -bool TGenera_versamenti::menu(MENU_TAG m) -{ - long codditta, codditta_prec; - int i = 0; - - if (m == BAR_ITEM(1)) - if (_liv == 'S') - { - codditta_prec = get_firm_770(); - while ((codditta = _cnf->get_long(DITTE_SEL, _section, i++)) != 0L) - { - set_firm_770(codditta); - _genera->set(codditta, _cnf, _section); - } - set_firm_770(codditta_prec); - - return FALSE; - } - else - return _genera->set(get_firm_770(), _cnf, _section); - - return FALSE; -} - -bool TGenera_versamenti::create() -{ - TApplication::create(); - _rver = new TLocalisamfile(LF_RVER); - _rpag = new TLocalisamfile(LF_RPAG); - _scperc = new TLocalisamfile(LF_SCPERC); - _base = new TLocalisamfile(LF_BASE); - _ql = new TLocalisamfile(LF_QUAL); - _genera = new TGenera; - _cnf = new TConfig(_liv == 'S' ? CONFIG_USER : CONFIG_STUDIO); - - _section = name(); - _section.cut(2); - - dispatch_e_menu (BAR_ITEM(1)); - return TRUE; -} - -bool TGenera_versamenti::destroy() -{ - delete _rver; - delete _rpag; - delete _scperc; - delete _base; - delete _ql; - delete _genera; - delete _cnf; - return TApplication::destroy(); -} - -int m74100 (int argc, char* argv[]) -{ - TGenera_versamenti a(*argv[2]); - a.run(argc, argv, "Generazione versamenti"); - return 0; -} - +// 774100.cpp - Generazione quadro L +// +// 774 -0 S (livello di studio) oppure +// 774 -0 D (livello di ditta) +// +// Lista modifiche +// +// 21.12.95 Azzera solo i record con AP=anno dichiarazione (nf) +// 8.01.96 Scambiate nel quadrol la chiave 2 con la 1 (nf) +// +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "rpag.h" +#include "rver.h" +#include "scperc.h" +#include "quadrol.h" +#include "774100.h" +#include "77lib.h" + +// inizializzato in TGenera::set() - usato in filter_func() +HIDDEN TGenera* this_genera = NULL; +// Possibili esiti della dialog-box di configurazione parametri di gen. +HIDDEN const int UNCHANGED = 0; +HIDDEN const int CHANGED = 1; +HIDDEN const int ESCI = 2; + +void TVersamenti::set (TSchedaP& sc, const long numvers) +{ + _key.format("%4ld%c%4ld%4d%4ld", sc.codditta(),sc.tipoa(),sc.codanagr(),sc.nprog(),numvers); + add(_key); +} + +bool TVersamenti::find (TSchedaP& sc, const long numvers) +{ + _key.format("%4ld%c%4ld%4d%4ld", sc.codditta(),sc.tipoa(),sc.codanagr(),sc.nprog(),numvers); + return is_key(_key); +} + +// Accetta un record solo se: +// l'anno della data-pagamento == annodic E +// il pagamento e' collegato ad un versamento (non importa quale) +bool filter_func (const TRelation * rel) +{ + TDate datapag; + int anno,annod; + long nvers; + + annod = this_genera->_annodic; + datapag = rel->lfile().get(PAG_DATAPAG); + nvers = rel->lfile().get_long(PAG_NUMVERS); + anno = datapag.year(); + + return anno == annod && nvers > 0L; +} + +bool TGenera::causale1015(int causale) +{ + TTable ca7("%CA7"); + TString dep; + int artbil = 0; + + ca7.zero(); + dep = format("%02d", causale); + ca7.put("CODTAB", dep); + const bool ok = ca7.read() == NOERR; + + if (!ok) ca7.zero(); + + _ab1015 = ca7.get_int("I3"); + _ct1015 = ca7.get_int("I0"); + _cq1015 = ca7.get ("S1"); + + return ok; +} + +void TGenera::causale(int causale) +{ + TTable ca7("%CA7"); + TString dep; + + _codqua = ""; + + ca7.zero(); + dep = format("%02d", causale); + ca7.put("CODTAB", dep); + if (ca7.read() == NOERR) + { + _codqua = ca7.get ("S1"); + _artbil = ca7.get_int("I3"); + _codtrib = ca7.get_int("I0"); + } +} + +bool TGenera::set(const long codditta, TConfig* cnf, const char* section) +{ + TString16 filt; + int causale; + TRelation* rel; + TCursor* cur; + + if (!yesno_box("Conferma la generazione dei versamenti?")) + return FALSE; + + _codditta = codditta; + _annodic = (int)cnf->get_long(ANNO_SEL, section); + + this_genera = this; + + rel = new TRelation (LF_RPAG); + filt.format("CODDITTA=%ld", codditta); + + cur = new TCursor(rel,filt,1); + cur->set_filterfunction (filter_func); + + causale = atoi(cnf->get("CoCa1015", section)); + + if (causale) + { + if (!causale1015(causale)) + return warning_box("Manca la causale 1015 nella tabella causali"); + } + else + return warning_box("Manca la causale 1015 nei parametri di studio"); + + azzera_quadroL(); + genera_riga(cur); + arrotonda(); + + delete cur; + delete rel; + + return FALSE; +} + +int TGenera::controllo_parametri() +{ + TLocalisamfile base (LF_BASE); + + base.setkey(1); + base.zero(); + base.put("CODDITTA", _codditta); + const int rc = base.read(); + if (rc == NOERR) + { + TDate dv (base.get_date("DATAVERS")); + char lv = base.get_char("LUOVERS"); + char tv = base.get_char("TIPOVERS"); + TString s(base.get("SERIE")); + TString n(base.get("NUMERO")); + + if (!dv.ok() || lv == '\0' || tv == '\0' || n == "" || (s == "" && tv != 'C') ) + { + TString appname("776mod -4 d"); + TExternal_app a (appname); + a.run(); + + TMailbox m; + TMessage* msg = m.next_s(""); + int subj; +// 1 => uscito con Registra +// 0 => uscito con Quit + if (msg != NULL) + { + subj = atoi(msg->body()); + if (subj) + return CHANGED; + else + return ESCI; + } + } + } +#ifdef DBG + if (rc != NOERR) + return warning_box("Errore di lettura su base cod. %d", rc); +#endif + return UNCHANGED; +} + +bool TGenera::azzera_quadroL() +{ + TString quadro(3); + const long dittafirm = get_firm_770(); + TLocalisamfile ql(LF_QUAL); + TProgind progn(ql.items(), "Azzeramento quadro L", FALSE, TRUE); + + for (ql.first(_lock); !ql.eof(); ql.next(_lock)) + { + progn.addstatus(1); + const long codditta = ql.get_long(QUL_CODDITTA); + if (codditta != dittafirm) continue; + +// 21.12.95 Azzera solo quelli dell'anno dichiarazione + const int ap = ql.get_int(QUL_QLAP); + if (ap != _annodic) + { + ql.reread(_unlock); + continue; + } + + quadro = ql.get(QUL_QLCODQUA); + if (quadro == "C" || quadro == "D" || quadro == "D1" + || quadro == "E" || quadro == "E1") + ql.remove(); + } + progn.addstatus(1); + return TRUE; +} + +void TGenera::dati_rver(TLocalisamfile& rver,TSchedaP& sch, long numvers) +{ + rver.zero(); + rver.put(VER_CODDITTA, sch.codditta()); + rver.put(VER_TIPOA, sch.tipoa()); + rver.put(VER_CODANAGR, sch.codanagr()); + rver.put(VER_NPROG, sch.nprog()); + rver.put(VER_NRIGA, (long)numvers); + rver.read(); + if (rver.bad()) + rver.zero(); + + _ver1015 = rver.get_bool(VER_VERS1015); + _ritver = rver.get_real(VER_IMPVERS); + + if (_ver1015) + { + //Prendo i dati su flags LF_BASE + TLocalisamfile base(LF_BASE); + + base.setkey(1); + base.zero(); + base.put("CODDITTA", _codditta); + if (base.read(_isequal) == NOERR) + { + _datavers = base.get_date("DATAVERS"); + _mesepag = 12; + _luovers = base.get_char("LUOVERS"); + _tipover = base.get_char("TIPOVERS"); + _serie = base.get ("SERIE"); + _numero = base.get ("NUMERO"); + if (_tipover == DELEGA_BANCARIA) + _sNprog = _numero.mid(6); + + rver.reread(_testandlock); + rver.put("DATAVERS", _datavers); + rver.put("TIPOVERS", _tipover); + rver.put("SERIE", _serie); + rver.put("NUMERO", _numero); + rver.put("LUOVERS", _luovers); + rver.rewrite(); + rver.reread(_unlock); + } + } + else + { + _datavers = rver.get_date(VER_DATAVERS); + _luovers = rver.get_char(VER_LUOVERS); + _tipover = rver.get_char(VER_TIPOVERS); + _serie = rver.get (VER_SERIE); + _numero = rver.get (VER_NUMERO); + _sNprog = rver.get (VER_PROGBANC); + _sNprog.trim(); + if (_sNprog.not_empty()) + _numero << _sNprog; + } +} + +void TGenera::dati_scperc(TSchedaP& sch) +{ + TLocalisamfile scperc(LF_SCPERC); + int codtrib = 0; + + scperc.setkey(1); + scperc.zero(); + scperc.put(SPR_CODDITTA, sch.codditta()); + scperc.put(SPR_TIPOA, sch.tipoa()); + scperc.put(SPR_CODANAGR, sch.codanagr()); + scperc.put(SPR_NPROG, sch.nprog()); + if (scperc.read(_isequal) == NOERR) + _causale = scperc.get_int(SPR_CODCAUS); +} + +void TGenera::arrotonda() +{ + TLocalisamfile qual (LF_QUAL); + TRecnotype items_qual = qual.items(); + real importo; importo = ZERO; + TProgind progn(items_qual, "Arrotondamento ritenute versate in corso... Prego attendere", FALSE, TRUE); + + qual.setkey(1); + qual.zero(); + for (qual.first(); !qual.eof(); qual.next()) + { + progn.addstatus(1); + const long codditta = qual.get_long(QUL_CODDITTA); + if (codditta != _codditta) + { + progn.addstatus(1); // per far andare fino alla fine il "termometro" (sic) + continue; + } + importo = qual.get_real(QUL_QLRITVER); + importo = round_770(importo); + qual.reread(_testandlock); + qual.put(QUL_QLRITVER, importo); + qual.rewrite(); + qual.reread(_unlock); + } + progn.addstatus(1); +} + +void TGenera::genera_riga(TCursor* cur) +{ + TLocalisamfile ql (LF_QUAL); + TLocalisamfile rver(LF_RVER); + real riteff,ritver; + long numvers,codanagr,codp; + char tipoa,tipop; + int nprog,nprogp; + bool prima_volta = TRUE; + bool gia_fatto = FALSE; + TString perc,percp; + + (*cur) = 0L; + TRecnotype items_rpag = cur->items(); + TString scritta(60); + scritta.format("Generazione versamenti per la ditta %ld", _codditta); + TProgind progn(items_rpag, scritta, FALSE, TRUE); + + riteff = ZERO; + ritver = ZERO; + + _righe_gia_presenti = new TVersamenti; + _righe_gia_presenti->destroy(); + + tipop = 'Z'; + codp = 99999; + nprogp = 9999; + + TSchedaP scheda_prec; + for (int i = 0; i < items_rpag; i++, ++(*cur), progn.addstatus(1)) + { +// Leggo i dati su RPAG + TDate datapag(cur->curr().get(PAG_DATAPAG)); + _mesepag = datapag.month();; + _annopag = datapag.year(); + riteff = cur->curr().get_real(PAG_RITENUTA); + numvers = cur->curr().get_long(PAG_NUMVERS); + tipoa = cur->curr().get_char(PAG_TIPOA); + codanagr = cur->curr().get_long(PAG_CODANAGR); + nprog = cur->curr().get_int (PAG_NPROG); + + TSchedaP scheda_corr(_codditta, tipoa, codanagr, nprog); + dati_rver(rver,scheda_corr,numvers); + + if (scheda_corr != scheda_prec) + { + dati_scperc(scheda_corr); + causale(_causale); + } + scheda_prec.set(_codditta,tipoa,codanagr,nprog); + +// Se e' tributo1015 posso evitare di controllare il codice quadro + if (!_ver1015) + { + if (_codqua != "C" && _codqua != "D" && _codqua != "D1" && + _codqua != "E" && _codqua != "E1") + continue; + } + else + if (!gia_fatto) + { + gia_fatto = TRUE; + const int cp = controllo_parametri(); + if (cp == CHANGED) + dati_rver(rver,scheda_corr,numvers); + else + if (cp == ESCI) + break; // ho premuto il bottone FINE + } + + ql.setkey(1); + ql.zero(); + ql.put(QUL_CODDITTA, _codditta); + ql.put(QUL_QLMP, _mesepag); + ql.put(QUL_QLAP, _annopag); + ql.put(QUL_QLDV, _datavers); + ql.put(QUL_QLLV, _luovers); + ql.put(QUL_QLTV, _tipover); + + if (_ver1015) + { + ql.put(QUL_QLCT, _ct1015); + ql.put(QUL_QLAB, _ab1015); + ql.put(QUL_QLCODQUA, _cq1015); + } + else + { + ql.put(QUL_QLCT, _codtrib); + ql.put(QUL_QLAB, _artbil); + ql.put(QUL_QLCODQUA, _codqua); + } + ql.put(QUL_QLSERIE, _serie); + ql.put(QUL_QLNUMERO, _numero); + + TRectype dep(ql.curr()); + + if (ql.read(_isequal, _lock) == NOERR) + { + _riteff = ql.get_real(QUL_QLRITEFF); + _riteff += riteff; + ql.put(QUL_QLRITEFF, _riteff); + + if (!_righe_gia_presenti->find(scheda_corr,numvers)) + { + ritver = ql.get_real(QUL_QLRITVER); + ritver += _ritver; + ql.put(QUL_QLRITVER, ritver); + } + ql.rewrite(); + } + else + { + ql.zero(); + ql.curr() = dep; + ql.put(QUL_QLRITEFF, riteff); + ql.put(QUL_QLRITVER, _ritver); + ql.write(); + } + _righe_gia_presenti->set(scheda_corr,numvers); + } +} + + +class TGenera_versamenti : public TApplication +{ + char _liv; + TString16 _section; + TConfig* _cnf; + public: + TGenera* _genera; + TLocalisamfile *_rver, *_rpag, *_base, *_scperc, *_ql; + public: + virtual bool create(); + virtual bool menu(MENU_TAG m); + virtual bool destroy(); + + TGenera& genera() { return *_genera; } + + public: + TGenera_versamenti(char livello) : _liv(toupper(livello)) {} + ~TGenera_versamenti() {} +}; + +TGenera_versamenti& app() { return (TGenera_versamenti&)main_app(); } + +bool TGenera_versamenti::menu(MENU_TAG m) +{ + long codditta, codditta_prec; + int i = 0; + + if (m == BAR_ITEM(1)) + if (_liv == 'S') + { + codditta_prec = get_firm_770(); + while ((codditta = _cnf->get_long(DITTE_SEL, _section, i++)) != 0L) + { + set_firm_770(codditta); + _genera->set(codditta, _cnf, _section); + } + set_firm_770(codditta_prec); + + return FALSE; + } + else + return _genera->set(get_firm_770(), _cnf, _section); + + return FALSE; +} + +bool TGenera_versamenti::create() +{ + TApplication::create(); + _rver = new TLocalisamfile(LF_RVER); + _rpag = new TLocalisamfile(LF_RPAG); + _scperc = new TLocalisamfile(LF_SCPERC); + _base = new TLocalisamfile(LF_BASE); + _ql = new TLocalisamfile(LF_QUAL); + _genera = new TGenera; + _cnf = new TConfig(_liv == 'S' ? CONFIG_USER : CONFIG_STUDIO); + + _section = name(); + _section.cut(2); + + dispatch_e_menu (BAR_ITEM(1)); + return TRUE; +} + +bool TGenera_versamenti::destroy() +{ + delete _rver; + delete _rpag; + delete _scperc; + delete _base; + delete _ql; + delete _genera; + delete _cnf; + return TApplication::destroy(); +} + +int m74100 (int argc, char* argv[]) +{ + TGenera_versamenti a(*argv[2]); + a.run(argc, argv, "Generazione versamenti"); + return 0; +} + diff --git a/m770/774200.cpp b/m770/774200.cpp index 7a8b0256f..e136ac14a 100755 --- a/m770/774200.cpp +++ b/m770/774200.cpp @@ -1935,7 +1935,6 @@ void TRiporti::calcola_riporti_G1 (TCursor* cur, const long dich) i27_1 = i27_2 = i27_3 = i27_4 = i27_5 = ZERO; (*cur) = 0L; TRecnotype items = cur->items(); - almeno_una_riga = items > 0L; i27_1 = cur->curr().get_real(QG1_P12TOT); i27_2 = cur->curr().get_real(QG1_P13TOT); @@ -1943,6 +1942,8 @@ void TRiporti::calcola_riporti_G1 (TCursor* cur, const long dich) i27_4 = cur->curr().get_real(QG1_P16TOT); i27_5 = cur->curr().get_real(QG1_P17TOT); + almeno_una_riga = (i27_1 != ZERO) || (i27_2 != ZERO) || (i27_3 != ZERO) || + (i27_4 != ZERO) || (i27_5 != ZERO); TString scritta(60); scritta.format("Calcolo riporti del quadro G-1 per la ditta %ld", _codditta); TProgind progn(items, scritta, FALSE, TRUE); diff --git a/m770/776100b.uml b/m770/776100b.uml index 60f21e64a..db2393fc7 100755 --- a/m770/776100b.uml +++ b/m770/776100b.uml @@ -77,7 +77,7 @@ BEGIN PROMPT 1 7 "" PICTURE 123 GROUP 1 - MESSAGE RUN,773,-1,771150a,45,"Anagrafica dipendenti",/uPRASSI + MESSAGE RUN,773mod,-1,771150a,45,"Anagrafica dipendenti",/uPRASSI END TEXT DLG_NULL @@ -218,7 +218,7 @@ BUTTON DLG_STOPREC_B 1 1 BEGIN PROMPT 1 14 "" PICTURE 123 - MESSAGE RUN,773,-4,77qb,59,"Quadro B","B"|K_TAB,RILEGGI_QUADRI + MESSAGE RUN,773mod,-4,77qb,59,"Quadro B","B"|K_TAB,RILEGGI_QUADRI GROUP 1 END @@ -232,7 +232,7 @@ BUTTON DLG_STOPREC_B1 1 1 BEGIN PROMPT 1 15 "" PICTURE 123 - MESSAGE RUN,773,-4,77qb1,60,"Quadro B1","B1"|K_TAB,RILEGGI_QUADRI + MESSAGE RUN,773mod,-4,77qb1,60,"Quadro B1","B1"|K_TAB,RILEGGI_QUADRI GROUP 1 END @@ -460,7 +460,7 @@ BUTTON DLG_STOPREC_N 1 1 BEGIN PROMPT 39 16 "" PICTURE 123 - MESSAGE RUN,773,-2,77qn,72,"Quadro N","N"|K_TAB,RILEGGI_QUADRI + MESSAGE RUN,773mod,-2,77qn,72,"Quadro N","N"|K_TAB,RILEGGI_QUADRI GROUP 1 END // Fine terza colonna @@ -476,7 +476,7 @@ BUTTON DLG_STOPREC_P 1 1 BEGIN PROMPT 58 10 "" PICTURE 123 - MESSAGE RUN,773,-2,77qp,73,"Quadro P","P"|K_TAB,RILEGGI_QUADRI + MESSAGE RUN,773mod,-2,77qp,73,"Quadro P","P"|K_TAB,RILEGGI_QUADRI GROUP 1 END @@ -489,7 +489,7 @@ END BUTTON DLG_STOPREC_Q 1 1 BEGIN PROMPT 58 11 "" - MESSAGE RUN,773,-2,77qq,74,"Quadro Q","Q"|K_TAB,RILEGGI_QUADRI + MESSAGE RUN,773mod,-2,77qq,74,"Quadro Q","Q"|K_TAB,RILEGGI_QUADRI PICTURE 123 GROUP 1 END @@ -504,7 +504,7 @@ BUTTON DLG_STOPREC_R 1 1 BEGIN PROMPT 58 12 "" PICTURE 123 - MESSAGE RUN,773,-2,77qr,75,"Quadro R","R"|K_TAB,RILEGGI_QUADRI + MESSAGE RUN,773mod,-2,77qr,75,"Quadro R","R"|K_TAB,RILEGGI_QUADRI GROUP 1 END @@ -518,7 +518,7 @@ BUTTON DLG_STOPREC_S 1 1 BEGIN PROMPT 58 13 "" PICTURE 123 - MESSAGE RUN,773,-2,77qs,76,"Quadro S","S"|K_TAB,RILEGGI_QUADRI + MESSAGE RUN,773mod,-2,77qs,76,"Quadro S","S"|K_TAB,RILEGGI_QUADRI GROUP 1 END @@ -532,7 +532,7 @@ BUTTON DLG_STOPREC_T 1 1 BEGIN PROMPT 58 14 "" PICTURE 123 - MESSAGE RUN,773,-2,77qt,77,"Quadro T","T"|K_TAB,RILEGGI_QUADRI + MESSAGE RUN,773mod,-2,77qt,77,"Quadro T","T"|K_TAB,RILEGGI_QUADRI GROUP 1 END // Fine QUARTA colonna @@ -663,7 +663,7 @@ BUTTON DLG_STOPREC_SOCTRA 1 1 BEGIN PROMPT 1 12 "" PICTURE 123 - MESSAGE RUN,773,-1,771100h,102,"Manutenzione dati societa' trasformate" + MESSAGE RUN,773mod,-1,771100h,102,"Manutenzione dati societa' trasformate" FLAGS "H" GROUP 2 END diff --git a/m770/776500.cpp b/m770/776500.cpp index 49ec75a16..06e6d4a1b 100755 --- a/m770/776500.cpp +++ b/m770/776500.cpp @@ -23,7 +23,6 @@ class TParametri_genera : public TApplication int _risposta; bool init_print(); protected: - static bool ProgBancaHnd(TMask_field& f, KEY k); virtual void on_config_change(); virtual bool create() ; virtual bool destroy(); @@ -42,32 +41,11 @@ void TParametri_genera::on_config_change() _anno_dic = (int)conf.get_long(ANNO_SEL, _section); } -// Copia su NUMERO CAB+PROGBANCA -bool TParametri_genera::ProgBancaHnd(TMask_field& f, KEY k) -{ - TMask& m = f.mask(); - if (k == K_TAB && m.is_running()) - { - char tipov = m.get(F_TIPOVERS)[0]; - TString cab(m.get(F_CAB)); - TString prg(m.get(F_PROGBANCA)); - TString numero; - if (tipov == DELEGA_BANCARIA) - { - numero = cab; - numero << prg; - m.set(FH_NUMERO, numero); - } - } - return TRUE; -} bool TParametri_genera::main_loop() { KEY tasto; TMask msk ("776500a"); - msk.set_handler(F_CAB, ProgBancaHnd); - msk.set_handler(F_PROGBANCA, ProgBancaHnd); long codditta, codditta_prec; int i = 0; diff --git a/m770/776500a.uml b/m770/776500a.uml index becccb697..e457fa553 100755 --- a/m770/776500a.uml +++ b/m770/776500a.uml @@ -110,32 +110,23 @@ NUMBER F_ABI 5 BEGIN PROMPT 18 13 "" FIELD LF_BASE->SERIE - FLAGS "RZ" + FLAGS "Z" GROUP ABI_CAB END -STRING FH_NUMERO 11 -BEGIN - PROMPT 0 1 "" - FLAGS "D" - KEY 1 - FIELD LF_BASE->NUMERO -END - NUMBER F_CAB 5 BEGIN PROMPT 63 13 "" -// FIELD LF_BASE->NUMERO -// MESSAGE COPY,FH_NUMERO - FLAGS "RZ" + FIELD LF_BASE->NUMERO[1,5] + FLAGS "Z" GROUP ABI_CAB END NUMBER F_PROGBANCA 6 BEGIN PROMPT 69 13 "" - FLAGS "RZ" -// MESSAGE ADD,FH_NUMERO + FLAGS "Z" + FIELD LF_BASE->NUMERO[6,11] GROUP ABI_CAB END diff --git a/m770/77qe2b.uml b/m770/77qe2b.uml index a79028360..0ed0d7022 100755 --- a/m770/77qe2b.uml +++ b/m770/77qe2b.uml @@ -80,7 +80,7 @@ BEGIN FLAGS "Z" WARNING "Manca la causale" FIELD LF_QUAE2->CODCAUS - ADD RUN 773 -3 %CA7 + ADD RUN 773mod -3 %CA7 END STRING F_DESCRCAUS 60 diff --git a/m770/caus77.h b/m770/caus77.h new file mode 100755 index 000000000..99b633a62 --- /dev/null +++ b/m770/caus77.h @@ -0,0 +1,5 @@ +// caus77.h - campi tabella causali +#define bCONTRIBUTO_INPS "B4" +#define bCODICE_QUADRO "S1" +#define bSOMME_ASSOG_RAC "B0" +#define rPERC_RAC "R0" diff --git a/m770/quadb_b1.cpp b/m770/quadb_b1.cpp index b4caa6d80..4c712bafd 100755 --- a/m770/quadb_b1.cpp +++ b/m770/quadb_b1.cpp @@ -35,7 +35,6 @@ class TQuadriBB1_application : public TRelation_application bool _MaskConAnnoDic, _MaskConCodditta; bool MaskConAnnoDic() const; bool MaskConCodditta() const { return _MaskConCodditta; } - bool EsisteUnRec(); bool QuadroB() const { return _num == LF_QUAB; } bool QuadroB1() const { return _num == LF_QUAB1; } bool CheckImporti(const TMask& m); @@ -47,6 +46,7 @@ class TQuadriBB1_application : public TRelation_application 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(); @@ -145,13 +145,11 @@ TMask* TQuadriBB1_application::load_mask(int n) switch (n) { case 0: - if (m) - {} break; case 1: if (m) if (QuadroB()) - { + { m->set_handler(QBF_TOTIMP, QBTotRedImpHandler); m->set_handler(QBF_ROPE, QBAmmRopeHandler); m->set_handler(QBF_AMMNETTO, QBTotIndennHandler); @@ -191,19 +189,6 @@ bool TQuadriBB1_application::user_create() return TRUE; } -bool TQuadriBB1_application::EsisteUnRec() -{ - TLocalisamfile q(_num); - q.zero(); - q.put(QB_CODDITTA, (long)app()._codditta); - TRectype dep(q.curr()); - q.read(_isgteq); - if (q.curr() > dep || q.eof()) - return FALSE; - else - return TRUE; -} - bool TQuadriBB1_application::user_destroy() { if (_quadro != "") @@ -257,6 +242,21 @@ int TQuadriBB1_application::rewrite(const TMask& m) _registra = err == NOERR; return err; } +/* +int TQuadriBB1_application::read(TMask& m) +{ + int err; + TLocalisamfile q(_num); + const long codip = m.get_long(QuadroB()? QBF_CODDIP : QB1F_CODDIP); + const long nprog = m.get_long(QuadroB()? QBF_NPROG : QB1F_NPROG); + q.zero(); + q.put(QB_CODDITTA, _codditta); + q.put(QB_CODDIP, codip); + q.put(QB_NPROG, nprog); + err = q.read(); + err = _rel->read(); + return err; +} */ int TQuadriBB1_application::write(const TMask& m) { @@ -312,18 +312,10 @@ void TQuadriBB1_application::init_insert_mode(TMask& m) void TQuadriBB1_application::init_query_mode(TMask& m) { m.set(ANNODIC77, _anno_dic); -/* m.send_key(K_SHIFT+K_CTRL+'s', -RICERCA_QB); // Ricerca su quadro B - m.send_key(K_SHIFT+K_CTRL+'h', -RICERCA_DIP); // Ricerca su ANAGR.DIP. - init_mask(m);*/ } void TQuadriBB1_application::init_query_insert_mode(TMask& m) -{ -/* - m.send_key(K_SHIFT+K_CTRL+'h', -RICERCA_QB); // Nasconde ricerca su quadro B - m.send_key(K_SHIFT+K_CTRL+'s', -RICERCA_DIP); // Ricerca su ANAGR.DIP. - init_mask(m); */ -} +{} bool TQuadriBB1_application::codditta77_handler(TMask_field& f, KEY k) { @@ -376,8 +368,10 @@ bool TQuadriBB1_application::CodDipHandler(TMask_field& f, KEY k) const long codip = atol(f.get()); if (codip==0L) return TRUE; + if (!esiste_dipendente(app()._codditta, codip)) return f.warning_box("Dipendente inesistente"); + PrimoNprogLibero(m, app()._codditta, codip); } return TRUE; @@ -388,7 +382,6 @@ bool TQuadriBB1_application::NprogExitHandler(TMask_field& f, KEY k) TMask& m = f.mask(); if (!m.is_running()) return TRUE; -// if (k == K_TAB && ricerca(m)) if (k == K_TAB) { TString nprog(f.get());