diff --git a/m770/770100.cpp b/m770/770100.cpp index bffa02eed..deac1f69d 100755 --- a/m770/770100.cpp +++ b/m770/770100.cpp @@ -354,14 +354,13 @@ void TSchedaPercipienti::compila_testata(TMask& m) { m.set(F_DATADOC, _coll._datadoc); m.set(F_NUMDOC, _coll._numdoc); - m.set(F_IVA, _coll._imposte.string()); m.set(F_SPESE, _coll._spese.string()); m.set(F_COMPENS, _coll._compenso.string()); switch (tipo_coll()) { - case ritenuta: + case occasionale: m.set(F_COMPENS, _coll._compenso.string()); m.set(F_TOTDOC, _coll._compenso.string()); break; @@ -380,67 +379,6 @@ bool TSchedaPercipienti::coll_variazione() const tipo_coll() == pagamento_piu_perc; } -void TSchedaPercipienti::init_mask(TMask& m) -{ - update_lasts(m); - - if (tipo_coll() != nessuno) - { - const bool variazione = coll_variazione(); - if (!variazione) compila_testata(m); - switch (tipo_coll()) - { - case pagamento: - case ritenuta: -// Compilo riga di pagamento SOLO SE NON ce ne sono gia'.. - if ( (tipo_coll() == pagamento && _rel->pag_items() == 0) - || - tipo_coll() == ritenuta ) - { - const real totrit(m.get(F_TOTRIT)); - const real totdoc(m.get(F_TOTDOC)); - const real compenso(m.get(F_COMPENS)); - const real spese(m.get(F_SPESE)); - - if ( (tipo_coll() == pagamento && ( _coll._compenso + totrit == totdoc) ) - || - (tipo_coll() == ritenuta) ) - { - TSheet_field& pags = (TSheet_field&)m.field(F_PAGAMENTI); - TRectype rpag(_rel->pag(0)); - rpag.zero(); - real& imponibile = _coll._compenso; - - rpag.put("DATAPAG", _coll._datadoc); - rpag.put("COMPENSO", compenso); - - const real impo_calc = calcola_imponibile(compenso); - rpag.put("IMPONIBILE", impo_calc); - - rpag.put("SPESA", spese); - - const real rite_calc = calcola_ritenuta(impo_calc); - rpag.put("RITENUTA", rite_calc); - - real perc = (rite_calc * 100) / impo_calc; - perc.round(2); - rpag.put("PERC", perc); - rpag.put("NUMVERS", (long)-1); - const real netto = compenso - rite_calc + spese; - rpag.put("NETTO", netto); -// Update spreadsheet - rec2row(pags.row(0), rpag, 0); - pags.force_update(); - } - } - break; - default: - break; - } - } - fill_sheet(m); -} - void TSchedaPercipienti::get_ragsoc(const char* tipoa, const long codanagr) { TLocalisamfile anag(LF_ANAG); @@ -508,7 +446,7 @@ void TSchedaPercipienti::init_query_mode(TMask& m) } return; break; - case ritenuta: + case occasionale: /* setta_nprog(m,FALSE); // Sempre in aggiunta m.send_key(K_AUTO_ENTER, 0); */ diff --git a/m770/770102.cpp b/m770/770102.cpp index 6a8e31e02..4a6828672 100755 --- a/m770/770102.cpp +++ b/m770/770102.cpp @@ -9,13 +9,115 @@ // solo se e' un versamento in banca // // 5.6.96 Calcolo contributo INPS -// +// 22.7.96 Esegue controllo ritenuta solo se diversa da ZERO +// Tolti tutti i trunc() per lasciare i decimali nei conti +// 24.7.96 Non considera piu' la perc. come 100 se lasciata vuota +// -HIDDEN TString80 tmp1, tmp2; +HIDDEN TString80 tmp1, tmp2; HIDDEN real __impo = ZERO; HIDDEN real __compe = ZERO; -HIDDEN real __percra; +HIDDEN real __percra = ZERO; HIDDEN TString80 __rite; +HIDDEN bool __bRicalcolaRigaPag = FALSE; +HIDDEN real __rCompensoCg = ZERO; + +void TSchedaPercipienti::init_mask(TMask& m) +{ + update_lasts(m); + __bRicalcolaRigaPag = FALSE; + __rCompensoCg = ZERO; + if (tipo_coll() != nessuno) + { + const bool variazione = coll_variazione(); + if (!variazione) compila_testata(m); + switch (tipo_coll()) + { + case pagamento: + case occasionale: +// Compilo riga di pagamento SOLO SE NON ce ne sono gia'.. + if ( (tipo_coll() == pagamento && _rel->pag_items() == 0) + || + tipo_coll() == occasionale ) + { + const real totrit(m.get(F_TOTRIT)); + const real totdoc(m.get(F_TOTDOC)); + const real compenso(m.get(F_COMPENS)); + const real spese(m.get(F_SPESE)); + + if ( (tipo_coll() == pagamento && (_coll._compenso + totrit == totdoc) ) + || + (tipo_coll() == occasionale) ) + { + TSheet_field& pags = (TSheet_field&)m.field(F_PAGAMENTI); + TRectype rpag(_rel->pag(0)); + rpag.zero(); + real& imponibile = _coll._compenso; + rpag.put("DATAPAG", _coll._datadoc); + rpag.put("COMPENSO", compenso); +// Come 'zzo fa a calcolare l'imponibile se ancora nun c'e' la causale? +// const real impo_calc = calcola_imponibile(compenso); +// rpag.put("IMPONIBILE", impo_calc); + rpag.put("SPESA", spese); + +/********** 26.7.96 non esiste piu' sta' roba + const real rite_calc = calcola_ritenuta(impo_calc); + rpag.put("RITENUTA", rite_calc); + real perc = (rite_calc * 100) / impo_calc; + perc.round(2); + rpag.put("PERC", perc); + rpag.put("NUMVERS", (long)-1); + const real netto = compenso - rite_calc + spese; + rpag.put("NETTO", netto); +**************************/ +// forza il ricalcolo della riga pag. (da check_causale) + __bRicalcolaRigaPag = TRUE; + __rCompensoCg = compenso; +// Update spreadsheet + rec2row(pags.row(0), rpag, 0); + pags.force_update(); + } + } + break; + default: + break; + } + } + fill_sheet(m); +} + +// Utilizzato in collegamento da cg +real TSchedaPercipienti::calcola_ritenuta(const real& imponibile, TString& sPercRa) +{ + TTable cau("%ca7"); + TString codcau(curr_mask().get(F_CODCAUS)); + cau.zero(); + cau.put("CODTAB", codcau); + cau.read(); + real rQuotaRaCaus = cau.get_real("R0"); + sPercRa = cau.get("R0"); + real rite = ZERO; + rite = (imponibile * rQuotaRaCaus)/100.00; + return rite; +} + +// Utilizzato in collegamento da cg Forse ora da togliere.. +real TSchedaPercipienti::calcola_imponibile(const real& compenso) +{ + TTable cau("%ca7"); + TString codcau(curr_mask().get(F_CODCAUS)); + cau.zero(); + cau.put("CODTAB", codcau); + if (cau.read() != NOERR) + return ZERO; + real quota_imp = cau.get_int("R4"); + TString16 cod_qua(cau.get("S1")); + real imponibile_calcolato = ZERO; +// Calcola imponibile + if (compenso != ZERO) + imponibile_calcolato = (compenso * quota_imp) / 100.00; + return imponibile_calcolato; +} bool TSchedaPercipienti::vers_notify(TSheet_field& s, int r, KEY k) { @@ -726,26 +828,47 @@ bool TSchedaPercipienti::vers1015_handler(TMask_field& f, KEY k) // bool TSchedaPercipienti::check_causale(TMask_field& f, KEY k) { -// if (k == K_TAB) - if (f.to_check(k)) + TMask& m = f.mask(); + + if (k == K_TAB) +// if (f.to_check(k)) { TFixed_string cod_caus(f.get(),3); - - if (cod_caus.empty() && f.mask().is_running()) + + if (cod_caus.empty() && m.is_running()) { - KEY ke = f.mask().last_key(); + KEY ke = m.last_key(); if (ke != K_QUIT && ke != K_ESC) return f.warning_box("Manca la causale"); } else { - TString16 cod_qua (f.mask().get(F_CODQUA)); - char tipo = f.mask().get(F_TIPOA)[0]; + TString16 cod_qua (m.get(F_CODQUA)); + char tipo = m.get(F_TIPOA)[0]; if (cod_qua == "C" || cod_qua == "E1") if (tipo == 'G') return f.warning_box("Con il quadro C o E1 e' possibile l'immissione" " per le sole persone fisiche"); + if (__bRicalcolaRigaPag) + { + TSheet_field& pags = app().pags(); + TMask& ssMask = pags.sheet_mask(); +// aggiorna la riga ( collegamenti con 6(occas.) e 3(pag.) ) + TString sPercRa(6); + real rImpoCg = app().calcola_imponibile(__rCompensoCg); + real rRiteCg = app().calcola_ritenuta(rImpoCg, sPercRa); + TToken_string& tsRiga = pags.row(0); + tsRiga.add(rImpoCg.string(), 3); + tsRiga.add(sPercRa, 4); + tsRiga.add(rRiteCg.string(), 7); + pags.force_update(0); +// Per evitare che i valori vengano azzerati: + __compe = __rCompensoCg; + __impo = rImpoCg; + __percra = atof(sPercRa); + __rite = rRiteCg.string(); + } } } return TRUE; @@ -756,57 +879,6 @@ bool TSchedaPercipienti::check_causale(TMask_field& f, KEY k) // RIGA PAGAMENTI // /////////////////////////////////////////////////////////////////////////// -/***************** -bool TSchedaPercipienti::pag_handler(TMask_field& f, KEY k) -{ - const bool forzatura = app().curr_mask().get_bool(F_FORCED); - const real compenso (f.mask().get(MPAG_COMPENSO)); - real imponibile_calc = ZERO; - TString16 cod_qua(app().curr_mask().get(F_CODQUA)); - - if (k == K_TAB) - { - if (__compe != ZERO && compenso == ZERO) - app()._azzerato_pag = FALSE; - - const bool cambiato_compenso = __compe == ZERO ? __compe != compenso : FALSE; - - if (cambiato_compenso) - { - imponibile_calc = calcola_imponibile(f, compenso, cambiato_compenso); - calcola_ritenuta(f, imponibile_calc, cambiato_compenso); -// "Solo per il quadro E1 l'imponibile puo' essere maggiore del compenso" - if (cod_qua != "E1") - if (imponibile_calc > compenso) - { - f.warning_box("L'imponibile non puo' essere" - " maggiore del compenso"); - return forzatura; - } - f.mask().send_key(K_TAB, MPAG_NETTO); // forza il ricalcolo del netto - } - - const real imponibile(f.mask().get(MPAG_IMPONIBILE)); - const bool imponibile_cambiato = __impo != ZERO ? imponibile != __impo : FALSE; - if (imponibile_cambiato) - calcola_ritenuta(f, imponibile, imponibile_cambiato); - } - - if (k == K_ENTER) - { - // "Solo per il quadro E1 l'imponibile puo' essere maggiore del compenso" - if (cod_qua != "E1") - if (imponibile_calc > compenso) - { - f.warning_box("L'imponibile non puo' essere" - " maggiore del compenso"); - return forzatura; - } - } - - return TRUE; -} -*****************************/ // // SPESA_HANDLER // @@ -820,7 +892,7 @@ bool TSchedaPercipienti::spesa_handler(TMask_field& f, KEY k) } // CHECK_RITENUTA -// o Controlla se la ritenuta e' corretta +// o Controlla se la ritenuta e' corretta (SOLO SE != ZERO 22.7.96) // o Ricalcola la ritenuta se e' stata vuotata bool TSchedaPercipienti::check_ritenuta(TMask_field& f, KEY k) { @@ -837,15 +909,20 @@ bool TSchedaPercipienti::check_ritenuta(TMask_field& f, KEY k) f.mask().send_key(K_TAB, MPAG_NETTO); // forza il ricalcolo del netto } +// Controlla solo se RITENUTA != ZERO if (k == K_ENTER) - { + { + TMask& m = f.mask(); const bool forzatura = app().curr_mask().get_bool(F_FORCED); - real perc_ra = (f.mask().get_real(MPAG_PERCRA) ); + real perc_ra = (m.get_real(MPAG_PERCRA) ); if (perc_ra == ZERO) perc_ra = 100.00; - const real imponibile (f.mask().get(MPAG_IMPONIBILE)); - real ritenuta (f.mask().get(MPAG_RITPAG)); + const real imponibile (m.get(MPAG_IMPONIBILE)); + real ritenuta (m.get(MPAG_RITPAG)); + if (ritenuta == ZERO) + return TRUE; + real rite = ZERO; // Se non indico la percentuale => considero come 100% if (perc_ra != ZERO) @@ -903,57 +980,20 @@ real TSchedaPercipienti::calcola_imponibile(TMask_field& f, const real& compenso // Calcola imponibile if (compenso != ZERO) { -// "Se la perc.ass.imponibile = 0 => percentuale = 100% " - if (quota_imp == ZERO) - imponibile_calcolato = compenso; - else - imponibile_calcolato = (compenso * quota_imp) / 100.00; - imponibile_calcolato.trunc(); -// imponibile_calcolato = round_770(imponibile_calcolato); - + imponibile_calcolato = (compenso * quota_imp) / 100.00; // 13.6.96 toglie il contributo inps if (bContributoInps) { 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()); lm.set(MPAG_IMPONIBILE, impost); } return imponibile_calcolato; } -// Utilizzato in collegamento da cg -real TSchedaPercipienti::calcola_imponibile(const real& compenso) -{ - TTable cau("%ca7"); - TString codcau(curr_mask().get(F_CODCAUS)); - cau.zero(); - cau.put("CODTAB", codcau); - cau.read(); - real quota_imp = cau.get_int("R4"); - TString16 cod_qua(cau.get("S1")); - real imponibile_calcolato = ZERO; - - -// Calcola imponibile - if (compenso != ZERO) - { -// "Se la perc.ass.imponibile = 0 => percentuale = 100% " - if (quota_imp == ZERO) - imponibile_calcolato = compenso; - else - imponibile_calcolato = (compenso * quota_imp) / 100.00; -// imponibile_calcolato = round_770(imponibile_calcolato); - imponibile_calcolato.trunc(); - } - return imponibile_calcolato; -} - - bool TSchedaPercipienti::imponibile_handler(TMask_field& f, KEY k) { if (k == K_TAB) @@ -979,10 +1019,11 @@ bool TSchedaPercipienti::compenso_handler(TMask_field& f, KEY k) TMask& mm = app().curr_mask(); // main mask TMask& lm = f.mask(); // local mask const bool forzatura = mm.get_bool(F_FORCED); - const real compenso (lm.get(MPAG_COMPENSO)); + real compenso (lm.get(MPAG_COMPENSO)); real imponibile = ZERO; TString16 cod_qua(mm.get(F_CODQUA)); const bool bContributoInps = mm.get_bool(F_FLAG_INPS); + bool bCambiatoCompenso = FALSE; if (k == K_TAB) { @@ -992,11 +1033,11 @@ bool TSchedaPercipienti::compenso_handler(TMask_field& f, KEY k) if (compenso == ZERO) return TRUE; - const bool forza_ricalcolo = __compe != ZERO ? __compe != compenso : FALSE; + bCambiatoCompenso = __compe != ZERO ? __compe != compenso : FALSE; if (__compe != compenso) __compe = compenso; // per evitare di perdere l'imponibile - imponibile = calcola_imponibile(f, compenso, forza_ricalcolo); + imponibile = calcola_imponibile(f, compenso, bCambiatoCompenso); #ifdef DBG tmp1 = imponibile.string(); @@ -1006,7 +1047,7 @@ bool TSchedaPercipienti::compenso_handler(TMask_field& f, KEY k) warning_box("Imponibile = %s - Compenso = %s", (const char*)tmp1,(const char*)tmp2 ); #endif - calcola_ritenuta(f, imponibile, forza_ricalcolo); + calcola_ritenuta(f, imponibile, bCambiatoCompenso); // "Solo per il quadro E1 l'imponibile puo' essere maggiore del compenso" if (cod_qua != "E1") @@ -1020,15 +1061,14 @@ bool TSchedaPercipienti::compenso_handler(TMask_field& f, KEY k) // Calcolo contributo INPS if (bContributoInps) { - real /*rQuotaPrev,*/rScorporaComp, rImpInps, rInpsComplex, rInpsPerc; - + real rInpsPercPrima = lm.get_real(MPAG_INPSPERC); + real rInpsCompPrima = lm.get_real(MPAG_INPSCOMP); + real rScorporaComp, rImpInps, rInpsComplex, rInpsPerc; real rPercCassaPrev = mm.get_real(F_CASSA_PREV); real rPercContrInps = mm.get_real(F_PERC_INPS); real rPercAssContrInps = mm.get_real(F_PERC_ASS_INPS); real rQuotaCommitContrInps = mm.get_real(F_PERC_COMMIT_INPS); -// rQuotaPrev = compenso / (100.00 + rPercCassaPrev); -// rQuotaPrev.round(0); rScorporaComp = (compenso / (100.00 + rPercCassaPrev)) * 100.00; rImpInps = (rScorporaComp / 100.00) * rPercAssContrInps; rImpInps.round(0); @@ -1039,13 +1079,13 @@ bool TSchedaPercipienti::compenso_handler(TMask_field& f, KEY k) else rInpsPerc = rInpsComplex - ((rInpsComplex * rQuotaCommitContrInps)/100.00); - rInpsComplex.trunc(); - rInpsPerc.trunc(); - TString sInpsComp(rInpsComplex.string()); TString sInpsPerc(rInpsPerc.string()); - lm.set(MPAG_INPSPERC, sInpsPerc); - lm.set(MPAG_INPSCOMP, sInpsComp); +// Setto i compensi INPS solo se prima erano vuoti + if (rInpsPercPrima == ZERO || bCambiatoCompenso) + lm.set(MPAG_INPSPERC, sInpsPerc); + if (rInpsCompPrima == ZERO || bCambiatoCompenso) + lm.set(MPAG_INPSCOMP, sInpsComp); } lm.send_key(K_TAB, MPAG_NETTO); // forza il ricalcolo del netto } @@ -1075,10 +1115,11 @@ bool TSchedaPercipienti::compenso_handler(TMask_field& f, KEY k) // bool TSchedaPercipienti::calcola_ritenuta(TMask_field& f, const real& imponibile, const bool forza, const real percent) { - real rPercRaRiga = f.mask().get_real(MPAG_PERCRA); + TMask& m=f.mask(); + real rPercRaRiga = m.get_real(MPAG_PERCRA); real rPercRaCaus = app().curr_mask().get_real(F_PERRIT); const bool azzerato = app()._azzerato_pag; - const real rit_prec(f.mask().get(MPAG_RITPAG)); + const real rit_prec(m.get(MPAG_RITPAG)); if (rit_prec != ZERO && !forza) return FALSE; @@ -1101,48 +1142,19 @@ bool TSchedaPercipienti::calcola_ritenuta(TMask_field& f, const real& imponibile if (prendi_ra_da_causale) { TString quota_rast(rPercRaCaus.string()); - f.mask().set(MPAG_PERCRA, quota_rast); + m.set(MPAG_PERCRA, quota_rast); } // Calcolo ritenuta ... -// Se non indico la percentuale => considero come 100% - real rite = ZERO; - if (rPerc == ZERO) - rite = imponibile; - else - rite = (imponibile * rPerc) / 100.00; + real rite = (imponibile * rPerc) / 100.00; - rite.trunc(); -// rite.round(); // .. riempie il campo corrispondente TString ritest(rite.string()); - f.mask().set(MPAG_RITPAG, ritest); - f.mask().send_key(K_TAB, MPAG_NETTO); // forza il ricalcolo del netto + m.set(MPAG_RITPAG, ritest); + m.send_key(K_TAB, MPAG_NETTO); // forza il ricalcolo del netto return TRUE; } -// Utilizzato in collegamento da cg -real TSchedaPercipienti::calcola_ritenuta(const real& imponibile) -{ - TTable cau("%ca7"); - TString codcau(curr_mask().get(F_CODCAUS)); - cau.zero(); - cau.put("CODTAB", codcau); - cau.read(); - real rQuotaRaCaus = cau.get_real("R0"); - real rite = ZERO; - -// Calcolo ritenuta ... -// Se non indico la percentuale => considero come 100% - if (rQuotaRaCaus == ZERO) - rite = imponibile; - else - rite = (imponibile * rQuotaRaCaus)/100.00; - rite.trunc(); - return rite; -} - - // // Handler della percentuale di r.a. // ricalcolo la ritenuta quando cambia @@ -1189,7 +1201,7 @@ real TSchedaPercipienti::calcola_netto(TMask_field& f) const real inpsperc (m.get(MPAG_INPSPERC)); netto = compenso - ritenuta + spesa - inpsperc; - netto.trunc(); +// netto.trunc(); f.mask().set(MPAG_NETTO, netto.string()); return netto; diff --git a/m770/770102.h b/m770/770102.h index ec4e868c3..b234578b8 100755 --- a/m770/770102.h +++ b/m770/770102.h @@ -92,7 +92,7 @@ class TSchedaPercipienti : public TRelation_application static bool calcola_ritenuta (TMask_field& f,const real& compenso,const bool forza=FALSE,const real perc=ZERO); static real calcola_netto (TMask_field& f); real calcola_imponibile(const real& compenso); - real calcola_ritenuta (const real& imponibile); + real calcola_ritenuta (const real& imponibile, TString& sPercRa); static long get_numvers (TMask_field& f); static void setta_ritvers(TMask_field& f, const real& ritenuta); diff --git a/m770/771100.cpp b/m770/771100.cpp index 3053f3398..783d29004 100755 --- a/m770/771100.cpp +++ b/m770/771100.cpp @@ -104,7 +104,6 @@ bool TDati_anagrafici::codditta_hnd(TMask_field& f, KEY k) f.check(); } } - return TRUE; } @@ -258,13 +257,12 @@ bool TDati_anagrafici::indirizzo (TMask_field& f, KEY k) char tipoa; TString ragione,nome,cognome,ind,civ,cap,com,prov,codcom; - if ( k == K_TAB )// && f.mask().is_running() ) + if (k == K_TAB) { tipoa = f.mask().get (ASCF_TIPOA)[0]; codanagr = f.mask().get_long(F_ANAGR); - // Ricerca sull'archivio anagrafiche dei dati relativi al depositario - +// Ricerca sull'archivio anagrafiche dei dati relativi al depositario anag.setkey(1); anag.zero(); anag.put("TIPOA", tipoa); @@ -343,8 +341,7 @@ bool TDati_anagrafici::cod_conc (TMask_field& f, KEY k) tipoa = f.mask().get (F_TIPOA)[0]; codanagr = f.mask().get_long(F_ANAGR); - // Ricerca sull'archivio anagrafiche dei dati - +// Ricerca sull'archivio anagrafiche dei dati anag.setkey(1); anag.zero(); anag.put("TIPOA", tipoa); @@ -357,8 +354,7 @@ bool TDati_anagrafici::cod_conc (TMask_field& f, KEY k) codcom = anag.get("COMRES"); } - // Ricerca dati relativi al comune - +// Ricerca dati relativi al comune comuni.setkey(1); comuni.zero(); comuni.put("STATO", ""); @@ -520,7 +516,6 @@ bool TDati_anagrafici::destroy() { delete _msk; delete _rel; - return TApplication::destroy(); } @@ -538,23 +533,17 @@ bool TDati_anagrafici::main_loop() switch (tasto) { case K_ESC : - break; - + break; case K_QUIT : - break; - + break; case K_SAVE : - { registra(); - } - break; - + break; default: - break; + break; } } - while (tasto != K_QUIT); //K_ENTER - + while (tasto != K_QUIT); return FALSE; } @@ -634,8 +623,7 @@ void TDati_anagrafici::registra_caaf() long codditta; char tipoa = 'G'; - // Registro il codice caaf sull'archivio base - +// Registro il codice caaf sull'archivio base codditta = _msk->get_long(F_CODDITTA); base.setkey(1); diff --git a/m770/771100a.uml b/m770/771100a.uml index fdb6534f7..af8d22691 100755 --- a/m770/771100a.uml +++ b/m770/771100a.uml @@ -75,7 +75,7 @@ BEGIN OUTPUT F_PROVNASC LF_COMUNI->PROVCOM OUTPUT F_COMRES 1@->DENCOM OUTPUT F_PROVRES 1@->PROVCOM - OUTPUT F_COMRF 2@->DENCOM + OUTPUT F_COMRF 2@->DENCOM OUTPUT F_PROVRF 2@->PROVCOM OUTPUT F_PTELRF LF_ANAG->PTELRF OUTPUT F_TELRF LF_ANAG->TELRF diff --git a/m770/771100c.uml b/m770/771100c.uml index afd12c0c6..f9ad21427 100755 --- a/m770/771100c.uml +++ b/m770/771100c.uml @@ -70,25 +70,25 @@ BEGIN JOIN LF_COMUNI TO LF_ANAG ALIAS 2 INTO COM==COMRF DISPLAY "Codice" CODANAGR DISPLAY "Ragione Sociale@50" LF_ANAG->RAGSOC - OUTPUT F_COFI LF_ANAG->COFI + OUTPUT F_COFI LF_ANAG->COFI OUTPUT F_COGNOME LF_ANAG->RAGSOC[1,30] - OUTPUT F_NOME LF_ANAG->RAGSOC[31,50] - OUTPUT F_SESSO SESSO + OUTPUT F_NOME LF_ANAG->RAGSOC[31,50] + OUTPUT F_SESSO SESSO OUTPUT F_DATANASC DATANASC OUTPUT F_COMNASC LF_COMUNI->DENCOM OUTPUT F_PROVNASC LF_COMUNI->PROVCOM - OUTPUT F_INDRES LF_ANAG->INDRES + OUTPUT F_INDRES LF_ANAG->INDRES OUTPUT F_CIVRES LF_ANAG->CIVRES OUTPUT F_CAPRES LF_ANAG->CAPRES - OUTPUT F_INDRF LF_ANAG->INDRF - OUTPUT F_CIVRF LF_ANAG->CIVRF - OUTPUT F_CAPRF LF_ANAG->CAPRF + OUTPUT F_INDRF LF_ANAG->INDRF + OUTPUT F_CIVRF LF_ANAG->CIVRF + OUTPUT F_CAPRF LF_ANAG->CAPRF OUTPUT F_COMRES 1@->DENCOM OUTPUT F_PROVRES 1@->PROVCOM - OUTPUT F_COMRF 2@->DENCOM + OUTPUT F_COMRF 2@->DENCOM OUTPUT F_PROVRF 2@->PROVCOM OUTPUT F_DOMFISC LF_ANAG->VARSLORES - OUTPUT F_ANAGR LF_ANAGFIS->CODANAGR + OUTPUT F_ANAGR LF_ANAGFIS->CODANAGR OUTPUT F_PTELRF LF_ANAG->PTELRF OUTPUT F_TELRF LF_ANAG->TELRF FIELD LF_BASE->RAPPR diff --git a/m770/771200f.uml b/m770/771200f.uml index 42a91502a..5bc95d21b 100755 --- a/m770/771200f.uml +++ b/m770/771200f.uml @@ -313,7 +313,8 @@ NUMBER QA2F_CSSNINT 15 BEGIN PROMPT 2 6 "18 Interessi " FIELD LF_QUAA2->INTER18 - PICTURE "." + PICTURE "." + GROUP G_ALL END GROUPBOX DLG_NULL 78 3 diff --git a/m770/771230.cpp b/m770/771230.cpp index 47acff562..d79559b46 100755 --- a/m770/771230.cpp +++ b/m770/771230.cpp @@ -35,20 +35,20 @@ class TQuadroC_E2 : public TRelation_application 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; - - int _file; + 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); @@ -249,7 +249,7 @@ bool TQuadroC_E2::codditta_hnd(TMask_field& f, KEY k) { if (k == K_TAB && !f.mask().is_running()) { - TString16 codditta; codditta << get_firm_770(); + TString16 codditta; codditta << app()._codditta; if (codditta != "0") { f.set(codditta); @@ -377,7 +377,7 @@ bool TQuadroC_E2::generazione() int codcaus, nprog; TString16 qua; TDate datapag; - real perc=ZERO,somme=ZERO,impo=ZERO,rite=ZERO,comp=ZERO,inps=ZERO; + real perc=ZERO,spesa=ZERO,impo=ZERO,rite=ZERO,comp=ZERO,inps=ZERO; for (; cur.pos() < nitems; ++cur) { @@ -419,16 +419,16 @@ bool TQuadroC_E2::generazione() continue; //codtrib = cau.get_int("I0"); perc = rpag.get_real(PAG_PERC); - somme = rpag.get_real(PAG_SPESA); + 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 - && somme==ZERO) + && spesa==ZERO) continue; - riempi_record(tipoa,codan,codcaus,perc,somme,impo,rite,comp,acc_imp,inps,bContrInps); + riempi_record(tipoa,codan,codcaus,perc,spesa,impo,rite,comp,acc_imp,inps,bContrInps); } rpag.readat(nrec); } @@ -546,7 +546,7 @@ void TQuadroC_E2::leggi_sort(TProgind& 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, acc_imp = FALSE; + bool esiste_record=FALSE, bAssoggettateRacc=FALSE,bFattoProspetto=FALSE; struct righe_pag* rp; keyp = key = ""; @@ -557,25 +557,26 @@ void TQuadroC_E2::leggi_sort(TProgind& p) { 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; - acc_imp = rp->acim; + 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() && !acc_imp) + if (QuadroE1() && !bAssoggettateRacc) { genera_prospetto(codcaus,rp->comp,rp->impo,rp->rite); - esiste_record = FALSE; + 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); @@ -587,7 +588,7 @@ void TQuadroC_E2::leggi_sort(TProgind& p) if (QuadroC()) qd.put("CONTSSN", rTotQCInps); - if (QuadroD() || QuadroC()) + if (QuadroD() || QuadroC() || QuadroE()) qd.put("SOMME", tot_somme + tot_comp - tot_impo); else if (QuadroD1()) @@ -596,11 +597,8 @@ void TQuadroC_E2::leggi_sort(TProgind& p) qd.put("SPESEANT", tot_somme); } else - if (QuadroE()) - qd.put("SOMME", tot_somme); - else - if (QuadroE1()) - qd.put("SOMME", tot_comp); + if (QuadroE1()) + qd.put("SOMME", tot_comp); if (QuadroE1()) qd.put("AMMONTARE", tot_impo); @@ -614,11 +612,9 @@ void TQuadroC_E2::leggi_sort(TProgind& p) qd.put("PERC", perc_p); -// if (_tipoq != 'E' && _tipoq != '2') if (!QuadroE() && !QuadroE1()) qd.put("TOTALE", tot_comp + tot_somme); -// if (_tipoq == '2') if (QuadroE1()) qd.put("NETTO", tot_comp - tot_rite); else @@ -627,11 +623,11 @@ void TQuadroC_E2::leggi_sort(TProgind& p) 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; + 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; @@ -645,41 +641,32 @@ void TQuadroC_E2::leggi_sort(TProgind& p) } } // while (retrieve() != NULL) - if (esiste_record) + if (esiste_record || bFattoProspetto) { qd.zero(); - qd.put("CODDITTA", (long)get_firm_770()); + 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 (_tipoq == 'D' || _tipoq == 'C') - if (QuadroD() || QuadroC()) + if (QuadroD() || QuadroC() || QuadroE()) qd.put("SOMME", tot_somme + tot_comp - tot_impo); else -// if (_tipoq == '1') if (QuadroD1()) { qd.put("QUOTAPRO", tot_comp - tot_impo); qd.put("SPESEANT", tot_somme); } else -// if (_tipoq == 'E') - if (QuadroE()) - qd.put("SOMME", tot_somme); - else -// if (_tipoq == '2') - if (QuadroE1()) - qd.put("SOMME", tot_comp); + if (QuadroE1()) + qd.put("SOMME", tot_comp); -// if (_tipoq == '2') if (QuadroE1()) qd.put("AMMONTARE", tot_impo); else qd.put("IMPONIBILE", tot_impo); -// if (_tipoq == 'C') if (QuadroC()) qd.put("RITENUTE", tot_rite); else @@ -691,12 +678,9 @@ void TQuadroC_E2::leggi_sort(TProgind& p) if (QuadroC()) qd.put("CONTSSN", rTotQCInps); - -// if (_tipoq != 'E' && _tipoq != '2') if (!QuadroE() && !QuadroE1()) qd.put("TOTALE", tot_comp + tot_somme); -// if (_tipoq == '2') if (QuadroE1()) qd.put("NETTO", tot_comp - tot_rite); else @@ -828,7 +812,7 @@ bool TQuadroC_E2::user_create() _rel = new TRelation(_file); _rpag = new TLocalisamfile(LF_RPAG); _ca7 = new TTable ("%CA7"); - + _codditta = get_firm_770(); set_search_field(F_CODANAGRPERC); _registra = FALSE; diff --git a/m770/771231a.uml b/m770/771231a.uml index e1c232b15..35a0c8040 100755 --- a/m770/771231a.uml +++ b/m770/771231a.uml @@ -214,8 +214,9 @@ BEGIN DISPLAY "C.T." B2 DISPLAY "I.C." B1 DISPLAY "R.A." B0 - OUTPUT F_CODCAU CODTAB - OUTPUT F_DESCRCAUS S0 + OUTPUT F_CODCAU CODTAB + OUTPUT F_DESCRCAUS S0 + OUTPUT F_ALI R0 FLAGS "Z" WARNING "Manca la causale" CHECKTYPE NORMAL diff --git a/m770/771300.cpp b/m770/771300.cpp index 182b2d84a..5fcff4a7f 100755 --- a/m770/771300.cpp +++ b/m770/771300.cpp @@ -68,6 +68,7 @@ class TQuadroI : public TRelation_application TMask * _msk; char _quadro; protected: + static bool PDGcalcolaM6(TMask_field& f, KEY k); virtual bool user_create(); virtual bool user_destroy(); virtual TRelation* get_relation() const { return _rel; } @@ -209,6 +210,23 @@ int TQuadroI::read(TMask& m) return NOERR; } +bool TQuadroI::PDGcalcolaM6(TMask_field& f, KEY k) +{ + if (k == K_TAB) + { + TMask& m = f.mask(); + real m3 = m.get_real(F_M3); + real m4 = m.get_real(F_M4); + real m5 = m.get_real(F_M5); + real m6 = m3 - m4 - m5; + if (m6 < ZERO) + m6 = ZERO; + TString m6s(m6.string()); + m.set(F_M6, m6s); + } + return TRUE; +} + bool TQuadroI::user_create() { switch (_quadro) @@ -225,7 +243,10 @@ bool TQuadroI::user_create() break; case 'W': _msk = new TMask("771400a"); - _rel = new TRelation (LF_BASEBIS); + _msk->set_handler(F_M3, PDGcalcolaM6); + _msk->set_handler(F_M4, PDGcalcolaM6); + _msk->set_handler(F_M5, PDGcalcolaM6); + _rel = new TRelation (LF_BASEBIS); break; case '2': _msk = new TMask("771400b"); diff --git a/m770/771300.h b/m770/771300.h index 649d1b49c..118a0f0e8 100755 --- a/m770/771300.h +++ b/m770/771300.h @@ -202,8 +202,16 @@ #define F_QSUPPR 423 #define F_QSUPPS 424 #define F_QSUPPT 425 - -#define F_CRIMPDL357 307 + + +// 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 + #define F_TIPOQUA1 430 #define F_TIPOQUA2 431 #define F_TIPOQUA 432 diff --git a/m770/771310.cpp b/m770/771310.cpp index 61badad77..e3364118c 100755 --- a/m770/771310.cpp +++ b/m770/771310.cpp @@ -449,8 +449,9 @@ bool M71310_application::user_create() _msk->set_handler (F_QLMESEPAG, mese); _msk->set_handler (F_QLANNOPAG, anno); _msk->set_handler (F_QLCODTRIB, cod_tributo); - _msk->set_handler (F_QLNUMERO, auto_premi); - _msk->set_handler (F_NPROG, auto_premi); + _msk->set_handler (F_QLNUMERO, auto_premi); + _msk->set_handler (F_CCQUIETANZA, auto_premi); + _msk->set_handler (F_NPROG, auto_premi); _msk->set_handler (F_ARTBIL, artbil_hnd); return TRUE; diff --git a/m770/771310a.uml b/m770/771310a.uml index 1101f3888..01687c3fc 100755 --- a/m770/771310a.uml +++ b/m770/771310a.uml @@ -80,9 +80,10 @@ BEGIN OUTPUT F_ARTBIL QLAB OUTPUT F_QLSERIE QLSERIE OUTPUT F_ABI QLSERIE - OUTPUT F_CAB QLNUMERO[1,5] - OUTPUT F_NPROG QLNUMERO[6,11] - OUTPUT F_QLNUMERO QLNUMERO + OUTPUT F_CAB QLNUMERO[1,5] + OUTPUT F_NPROG QLNUMERO[6,11] + OUTPUT F_QLNUMERO QLNUMERO + OUTPUT F_CCQUIETANZA QLNUMERO FIELD LF_QUAL->QLAP FLAGS "R" VALIDATE FIXLEN_FUNC 4 @@ -119,8 +120,8 @@ END LIST F_QLTIPOVERS 15 BEGIN PROMPT 2 8 "Tipo versamento " - ITEM " |Nessuno" - MESSAGE HIDE,G_ABICAB@|HIDE,G_DISTINTA@|HIDE,G_CC@ +// ITEM " |Nessuno" +// MESSAGE HIDE,G_ABICAB@|HIDE,G_DISTINTA@|HIDE,G_CC@ ITEM "B|Delega bancaria" MESSAGE RESET,G_CC@|HIDE,G_CC@|RESET,G_DISTINTA@|HIDE,G_DISTINTA@|SHOW,G_ABICAB@ ITEM "D|Distinta" diff --git a/m770/771400a.uml b/m770/771400a.uml index c7341f2b1..ec7dc8a88 100755 --- a/m770/771400a.uml +++ b/m770/771400a.uml @@ -70,17 +70,17 @@ BEGIN PROMPT 0 4 "Dati relativi al conguaglio di fine anno effettuato dai datori di lavoro" END -NUMBER F_ER92C93 15 +NUMBER F_M1 15 BEGIN - PROMPT 1 5 "Eccedenza di ritenute di fine 1994 compensata nel 1995 " + PROMPT 1 5 "M1 Eccedenza di ritenute di fine 1994 compensata nel 1995 " FIELD LF_BASEBIS->ECCRIT12 PICTURE "." FLAGS "R" END -NUMBER F_ER93C94 15 +NUMBER F_M2 15 BEGIN - PROMPT 1 6 "Eccedenza di ritenute di fine 1995 da compensare nel 1996 " + PROMPT 1 6 "M2 Eccedenza di ritenute fine 1995 da compensare nel 1996 " FIELD LF_BASEBIS->ECCRIT23 PICTURE "." FLAGS "R" @@ -91,36 +91,40 @@ BEGIN PROMPT 0 8 "Prospetto riservato ai sostituti non tenuti a presentare la dichiarazione" END -NUMBER F_CRIMPDL357 15 +NUMBER F_M3 15 BEGIN - PROMPT 1 9 "Credito di imposta ex D.L.357/94 spettante " + PROMPT 1 9 "M3 Credito di imposta ex D.L.357/94 spettante " FIELD LF_BASEBIS->CRIMPDL PICTURE "." FLAGS "R" +// MESSAGE K_TAB,F_M6 END -NUMBER F_CRIMPDL357 15 +NUMBER F_M4 15 BEGIN - PROMPT 1 10 "Credito di imposta utilizzato ai fini IVA " + PROMPT 1 10 "M4 Credito di imposta utilizzato ai fini IVA " FIELD LF_BASEBIS->CRIMPIVA PICTURE "." - FLAGS "R" + FLAGS "R" +// MESSAGE K_TAB,F_M6 END -NUMBER F_CRIMPDL357 15 +NUMBER F_M5 15 BEGIN - PROMPT 1 11 "Credito di imposta utilizzato per versamento ritenute " + PROMPT 1 11 "M5 Credito imposta utilizzato per versamento ritenute " FIELD LF_BASEBIS->CRIMPRIT PICTURE "." - FLAGS "R" + FLAGS "R" +// MESSAGE K_TAB,F_M6 END -NUMBER F_CRIMPDL357 15 +NUMBER F_M6 15 BEGIN - PROMPT 1 12 "Credito di imposta residuo " + PROMPT 1 12 "M6 Credito di imposta residuo " FIELD LF_BASEBIS->CRIMPRES PICTURE "." - FLAGS "R" + FLAGS "D" +// NUM_CALC {#F_M3-#F_M4-#F_M5} END ENDPAGE diff --git a/m770/774200.cpp b/m770/774200.cpp index b184e89ad..18f76a362 100755 --- a/m770/774200.cpp +++ b/m770/774200.cpp @@ -16,8 +16,6 @@ // // 15.3.96 Allungata la stringa QCOMP per far spazio ai quadri A1-2-3 // -#include - #include #include #include @@ -27,9 +25,7 @@ #include #include #include - #include "774200.h" - #include "quadroa.h" #include "quadroa3.h" #include "quadrob.h" @@ -710,13 +706,14 @@ bool TRiporti::set(const TString& quadro, int anno, const long codditta, const l return TRUE; } +const int NUM_DIP_A = 9; + void TRiporti::calcola_riporti_A(TCursor* cur, const long dich) { TLocalisamfile base (LF_BASE); real totale,somme,ritenute; bool almeno_una_riga = FALSE; - double dipendenti; - double num_rec; + long dipendenti,num_rec; real a0cobb,a0cnet,a0eprev,a0iitra,a0cter,a0timp,a0ilor,a0tdet,a0rter,a0rdat; real a0erit,a0carr,a0aarr,a0darr,a0rarr,a0cinps,a0ciiaut,a0crimpras; @@ -798,10 +795,9 @@ void TRiporti::calcola_riporti_A(TCursor* cur, const long dich) } } - double app = num_rec / 9; - double foglid = ceil(app); - - long fogli = (long)foglid; + long fogli = num_rec / NUM_DIP_A; + if (num_rec % NUM_DIP_A) + fogli++; // base.setkey(2); base.zero(); @@ -843,54 +839,56 @@ void TRiporti::calcola_riporti_A(TCursor* cur, const long dich) warning_box("Dichiarazione non presente. Impossibile registrare i riporti"); } +const int NUM_DIPENDENTI_MODULO_A3 = 35; + void TRiporti::calcola_riporti_A3(TCursor* cur, const long dich) { TLocalisamfile base (LF_BASE); - bool almeno_una_riga = FALSE; - double dipendenti; - double num_rec; - - real a3rept10,a3rept12; - - a3rept10 = ZERO; - a3rept12 = ZERO; - - dipendenti = 0; - num_rec = 0; + bool almeno_una_riga = FALSE; + long dipendenti=0L, num_rec=0L; + real a3rept10=ZERO,a3rept12=ZERO; (*cur) = 0L; - TRecnotype items = cur->items(); TString scritta(60); - scritta.format("Calcolo riporti del quadro A3 per la ditta %ld", _codditta); - TProgind progn(items, scritta, FALSE, TRUE); - +// fogli per l'elenco delle trasf. + int iFogliTrasf=0; + int iDipTrasf=0; + for (int i = 0; i < items; i++, ++(*cur)) { progn.addstatus(1); + const long coddip = cur->curr().get_long(QUA_CODIP); + const long nprog = cur->curr().get_long(QUA_NPROG); - long coddip = cur->curr().get_long(QUA_CODIP); - if (!almeno_una_riga) almeno_una_riga = TRUE; - if ( (cur->curr().get_real(QA3_REDCOR16) == ZERO) && (cur->curr().get_real(QA3_REDCOR18) == ZERO)) +// Non conta quelli con redditto corrisposto = ZERO + if ((cur->curr().get_real(QA3_REDCOR16) == ZERO) && (cur->curr().get_real(QA3_REDCOR18) == ZERO)) continue; - + +// nprog=2 se e' il record della trasformata. Conto i dip.con trasf. per +// contare i fogli + if (nprog == 2) + iDipTrasf++; + dipendenti++; a3rept10 += cur->curr().get_real(QA3_REDCOR16); a3rept12 += cur->curr().get_real(QA3_REDCOR18); } - double app = dipendenti / 35; - double foglid = ceil(app); - - long fogli = (long)foglid; - -// base.setkey(2); + long fogli = dipendenti / NUM_DIPENDENTI_MODULO_A3; + if (dipendenti % NUM_DIPENDENTI_MODULO_A3) + fogli++; + iFogliTrasf = iDipTrasf / NUM_DIPENDENTI_MODULO_A3; + if (iDipTrasf % NUM_DIPENDENTI_MODULO_A3) + iFogliTrasf++; + fogli += iFogliTrasf; + base.zero(); if (dich) { @@ -1013,14 +1011,14 @@ 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(TCursor* cur, const long dich) { TLocalisamfile base (LF_BASE); real totale,somme,ritenute,rTotCSSN; bool almeno_una_riga = FALSE; - double percipienti; - - percipienti = 0; + long percipienti=0L; totale = ZERO; somme = ZERO; @@ -1061,10 +1059,9 @@ void TRiporti::calcola_riporti_C(TCursor* cur, const long dich) progn.addstatus(1); } - double app = percipienti / 36; - double foglid = ceil(app); - - long fogli = (long)foglid; + long fogli = percipienti / NUM_PERC_C; + if (percipienti % NUM_PERC_C) + fogli++; // base.setkey(2); base.zero(); @@ -1083,7 +1080,7 @@ void TRiporti::calcola_riporti_C(TCursor* cur, const long dich) base.put(BSE_C0ACTOT, totale); base.put(BSE_C0SNSRIT, somme); base.put(BSE_C0ROPE, ritenute); - base.put(BSE_C0SNSRIT, rTotCSSN); + base.put(BSE_C0CONTSSN, rTotCSSN); base.rewrite(); base.reread(_unlock); setta_flag_quadri_comp(_codditta, C, almeno_una_riga, dich); @@ -1549,6 +1546,21 @@ void TRiporti::calcola_riporti_F(TCursor* cur, const long dich) TString scritta(60); scritta.format("Calcolo riporti del quadro F per la ditta %ld", _codditta); + i20_4 = cur->curr().get_real(QF0_A1); + i20_5 = cur->curr().get_real(QF0_A2); + i20_6 = cur->curr().get_real(QF0_A3); + i21_1 = cur->curr().get_real(QF0_A4); + e_sogrit = cur->curr().get_real(QF0_ESOGRIT); + f_sogrit = cur->curr().get_real(QF0_FSOGRIT); + e_rope = cur->curr().get_real(QF0_EROPE); + f_rope = cur->curr().get_real(QF0_FROPE); + +// Per stabilire se il quadro e' stato compilato verifica anche i campi +// fuori dagli spreadsheet + almeno_una_riga = i20_4 != ZERO || i20_5 != ZERO || i20_6 != ZERO || + i21_1 != ZERO || e_sogrit != ZERO || f_sogrit != ZERO || e_rope != ZERO || + f_rope != ZERO; + rf = new TLocalisamfile(LF_RIGHEF); TRectype dep(rf->curr()); @@ -1582,14 +1594,6 @@ void TRiporti::calcola_riporti_F(TCursor* cur, const long dich) i20_1 = a_sogrit; i20_2 = a_rope; i20_3 = a_totacc; - i20_4 = cur->curr().get_real(QF0_A1); - i20_5 = cur->curr().get_real(QF0_A2); - i20_6 = cur->curr().get_real(QF0_A3); - i21_1 = cur->curr().get_real(QF0_A4); - e_sogrit = cur->curr().get_real(QF0_ESOGRIT); - f_sogrit = cur->curr().get_real(QF0_FSOGRIT); - e_rope = cur->curr().get_real(QF0_EROPE); - f_rope = cur->curr().get_real(QF0_FROPE); for (i = 1; i <= _prosp_b->last_row(); i++) { @@ -1828,7 +1832,7 @@ void TRiporti::calcola_riporti_G(TCursor* cur, const long dich) real i24_1, i24_2, i24_3, i24_4, i24_5, i24_6; real i24_7, i24_8, i24_9, i24_10, i24_11, i24_12; real i24_13, i25_4; - bool almeno_una_riga=FALSE, almeno_una_riga_distinta=FALSE; + bool almeno_una_riga=FALSE, almeno_una_riga_distinta=FALSE,almeno_una_riga_prospetti=FALSE; long fogli_comp = 0L, percipienti=0L; TRelation* relp; TCursor* curp; @@ -1852,7 +1856,8 @@ void TRiporti::calcola_riporti_G(TCursor* cur, const long dich) i24_7 = cur->curr().get_real(QG_P35TOT); i24_8 = cur->curr().get_real(QG_P36TOT); i24_9 = cur->curr().get_real(QG_P37TOT); - almeno_una_riga = i24_2 != ZERO || i24_3 != ZERO || i24_4 != ZERO + almeno_una_riga_prospetti = i24_2 != ZERO || i24_3 != ZERO + || i24_4 != ZERO || i24_5 != ZERO || i24_6 != ZERO || i24_7 != ZERO || i24_8 != ZERO || i24_9 != ZERO; @@ -1898,9 +1903,12 @@ void TRiporti::calcola_riporti_G(TCursor* cur, const long dich) } // E' compilato se c'e' qualcosa nel G o nella distinta fax 15.7.96 p.1 - almeno_una_riga = almeno_una_riga || almeno_una_riga_distinta; + almeno_una_riga = almeno_una_riga_prospetti || almeno_una_riga_distinta; fogli_comp = fogli_compilati(fisiche,no_fisiche,QGD_FISICHE_PER_FOGLIO,QGD_NOFISICHE_PER_FOGLIO); +// Considera un foglio in piu' per la parte del G (prospetti 1-2-3-4) + if (almeno_una_riga_prospetti) + fogli_comp++; basebis.setkey(1); basebis.zero(); diff --git a/m770/774200.h b/m770/774200.h index bceb539ce..a53347f0b 100755 --- a/m770/774200.h +++ b/m770/774200.h @@ -12,7 +12,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}; -const int CAMPI_IB1 = 60; +const int CAMPI_IB1 = 61; const int CAMPI_IB2 = 50; const int CAMPI_A = 53; @@ -23,7 +23,7 @@ HIDDEN const char* _campi_I1[CAMPI_IB1] = { BSE_A0NFCOM,BSE_A0NLDIP,BSE_A0COBB,B BSE_A0NACAAF,BSE_B0NFCOM,BSE_B0NLDIP,BSE_B0TFR93,BSE_B0AI,BSE_B0COLAV, BSE_B0TFR7492,BSE_B0AI7492,BSE_B0RITSI,BSE_B0IMP,BSE_B0TIMP,BSE_B0ROP, BSE_B0AIINPS,BSE_B0ROPESA,BSE_B0CIIAUT,BSE_B1NFCOM,BSE_B1NPER,BSE_B1TIND, - BSE_B1TIRM,BSE_B1TICOM,BSE_C0NFCOM,BSE_C0NLASS,BSE_C0ACTOT,BSE_C0SNSRIT, + BSE_B1TIRM,BSE_B1TICOM,BSE_C0NFCOM,BSE_C0NLASS,BSE_C0ACTOT,BSE_C0CONTSSN,BSE_C0SNSRIT, BSE_C0ROPE,BSE_C0CIIAUT,BSE_D0NFCOM,BSE_D0NLAUT,BSE_D0ACTOT,BSE_D0SNSRIT, BSE_D0ROPE,BSE_D0CIIAUT,BSE_D1NFCOM,BSE_D1NPER,BSE_D1TACOR,BSE_D1SNSRIT, BSE_D1ROPE}; diff --git a/m770/77base1.frm b/m770/77base1.frm new file mode 100755 index 000000000..4e9887bba --- /dev/null +++ b/m770/77base1.frm @@ -0,0 +1,636 @@ +USE 36 +JOIN 37 TO 36 INTO TIPOQUA=TIPOQUA CODDITTA=CODDITTA +JOIN 9 TO 36 INTO CODDITTA=CODDITTA +JOIN 6 TO 9 ALIAS 116 INTO TIPOA=TIPOA CODANAGR=CODANAGR +JOIN 8 TO 6 ALIAS 118 INTO CODANAGR=CODANAGR +JOIN 13 TO 8 ALIAS 113 INTO COM=COMNASC +JOIN 13 TO 6 ALIAS 213 INTO COM=COMRF(COMRES) +JOIN 6 TO 36 ALIAS 216 INTO CODANAGR=RAPPR +JOIN 13 TO 216@ ALIAS 313 INTO COM=COMNASC +JOIN 13 TO 216@ ALIAS 413 INTO COM=COMRF(COMRES) +END + +DESCRIPTION +BEGIN + 36->* "Base 770" + 37->* "Basebis 770" + 9->* "Ditte" + 6->* "LF_ANAG Anagrafica persone fisiche e giuridiche" + 8->* "Anagrafica persone fisiche" + 116@->* "Comuni" + 118@->* "Comuni" +END + +GENERAL +BEGIN + OFFSET 0 0 + FONT "Courier 17cpi" + SIZE 10 + CA "X" + IN 3 2 + FI 131 +END + +SECTION BODY FIRST 73 + +LISTA 1 +BEGIN + KEY "Tipo anagrafica: ABILITA PERSONE FISICHE/ALTRI SOGGETTI" + FIELD 9->TIPOA + ITEM "F| " MESSAGE ENABLE,1@|DISABLE,2@ + ITEM "G| " MESSAGE ENABLE,2@|DISABLE,1@ + FLAGS "H" +END + +STRINGA 2 +BEGIN + KEY "GRUPPO 1 - PERSONE FISICHE - CODICE FISCALE" + PROMPT 22 13 "" + FIELD 116@->COFI + GROUP 1 +END + +LISTA 3 +BEGIN + KEY "REG.A.STATUTO.SPECIALE VA - SA -SI" + PROMPT 90 13 "" + ITEM "1|X" + ITEM "2|" + ITEM "3|" + FIELD 36->RSS + GROUP 1 +END + +LISTA 4 +BEGIN + KEY "REG.A.STATUTO.SPECIALE VA - SA -SI" + PROMPT 98 13 "" + ITEM "1|" + ITEM "2|X" + ITEM "3|" + FIELD 36->RSS + GROUP 1 +END + +LISTA 5 +BEGIN + KEY "REG.A.STATUTO.SPECIALE VA - SA -SI" + PROMPT 107 13 "" + ITEM "1|" + ITEM "2|" + ITEM "3|X" + FIELD 36->RSS + GROUP 1 +END + +STRINGA 6 +BEGIN + KEY "CODICE ATTIVITA" + PROMPT 119 13 "" + FIELD 9->CODATTPREV + GROUP 1 +END + +STRINGA 7 +BEGIN + KEY "COGNOME" + PROMPT 22 15 "" + FIELD 116@->RAGSOC[1,30] + GROUP 1 +END + +STRINGA 8 +BEGIN + KEY "NOME" + PROMPT 80 15 "" + FIELD 116@->RAGSOC[31,50] + GROUP 1 +END + +LISTA 9 +BEGIN + KEY "SESSO M" + PROMPT 119 15 "" + ITEM "M|X" + ITEM "F|" + FIELD 118@->SESSO + GROUP 1 +END + +LISTA 10 +BEGIN + KEY "SESSO F" + PROMPT 127 15 "" + ITEM "M|" + ITEM "F|X" + FIELD 118@->SESSO + GROUP 1 +END + +STRINGA 11 +BEGIN + KEY "DATA DI NASCITA" + PROMPT 22 17 "" + FIELD 118@->DATANASC + FORMAT "1444-" + PICTURE "## ^ ##^^^^^" + GROUP 1 +END + +STRINGA 12 +BEGIN + KEY "COMUNE DI NASCITA" + PROMPT 44 17 "" + FIELD 113@->DENCOM + GROUP 1 +END + +STRINGA 13 +BEGIN + KEY "PROV. DI NASCITA" + PROMPT 100 17 "" + FIELD 113@->PROVCOM + GROUP 1 +END + +STRINGA 14 +BEGIN + KEY "EVENTI ECCEZIONALI" + PROMPT 127 17 "" + FIELD 116@->EVECC + GROUP 1 +END + +STRINGA 15 +BEGIN + KEY "COMUNE DI RES.FISCALE" + PROMPT 41 19 "" + FIELD 213@->DENCOM + GROUP 1 +END + +STRINGA 16 +BEGIN + KEY "PROV DI RES.FISCALE" + PROMPT 100 19 "" + FIELD 213@->PROVCOM + GROUP 1 +END + +STRINGA 17 +BEGIN + KEY "CAP" + PROMPT 119 19 "" + FIELD 116@->CAPRF + FIELD 116@->CAPRES + GROUP 1 +END + +STRINGA 18 +BEGIN + KEY "VIA di RES." + PROMPT 41 21 "" + FIELD 116@->INDRF + FIELD 116@->INDRES + GROUP 1 +END + +STRINGA 19 +BEGIN + KEY "NUM. CIVICO di RES." + PROMPT 102 13 "" + FIELD 116@->CIVRF + FIELD 116@->CIVRES + FLAGS "H" + GROUP 1 +END + +STRINGA 20 +BEGIN + KEY "TELEFONO - PREFISSO" + PROMPT 100 21 "" + FIELD 116@->PTELRF +END + +STRINGA 21 +BEGIN + KEY "TELEFONO - NUMERO" + PROMPT 112 21 "" + FIELD 116@->TELRF +END + +STRINGA 22 +BEGIN + KEY "GRUPPO 2 - ALTRI SOGGETTI - CODICE FISCALE" + PROMPT 22 23 "" + FIELD 116@->COFI + GROUP 2 +END + +LISTA 23 +BEGIN + KEY "REG.A.STATUTO.SPECIALE VA - SA -SI" + PROMPT 90 23 "" + ITEM "1|X" + ITEM "2|" + ITEM "3|" + FIELD 36->RSS + GROUP 2 +END + +LISTA 24 +BEGIN + KEY "REG.A.STATUTO.SPECIALE VA - SA -SI" + PROMPT 98 23 "" + ITEM "1|" + ITEM "2|X" + ITEM "3|" + FIELD 36->RSS + GROUP 2 +END + +LISTA 25 +BEGIN + KEY "REG.A.STATUTO.SPECIALE VA - SA -SI" + PROMPT 107 23 "" + ITEM "1|" + ITEM "2|" + ITEM "3|X" + FIELD 36->RSS + GROUP 2 +END + +STRINGA 26 +BEGIN + KEY "CODICE ATTIVITA" + PROMPT 119 23 "" + FIELD 9->CODATTPREV + GROUP 2 +END + +STRINGA 27 +BEGIN + KEY "RAGIONE SOCIALE" + PROMPT 22 25 "" + FIELD 116@->RAGSOC + GROUP 2 +END + +STRINGA 28 +BEGIN + KEY "EVENTI ECCEZIONALI" + PROMPT 127 25 "" + FIELD 116@->EVECC + GROUP 2 +END + +STRINGA 29 +BEGIN + KEY "FLAG SEDE LEGALE" + GROUP 2 +END + +STRING 30 +BEGIN + KEY "COMUNE SEDE LEGALE " + PROMPT 39 27 "" + FIELD 413@->DENCOM + GROUP 2 +END + +STRING 31 +BEGIN + KEY "PROV. SEDE LEGALE" + PROMPT 119 27 "" + FIELD 413@->PROVCOM + GROUP 2 +END + +STRING 32 +BEGIN + KEY "VIA SEDE LEGALE" + PROMPT 39 27 "" + FIELD 216@->INDRES[1,18] + FLAGS "H" + MESSAGE COPY,12|COPY,107 +END + +STRING 33 +BEGIN + KEY "NUM.CIV" + PROMPT 93 4 "" + FLAGS "H" + FIELD 216@->CIVRES + MESSAGE APPEND,12|APPEND,107 +END + +STRING 34 +BEGIN + KEY "VIA SEDE LEGALE" + PROMPT 39 27 "" + GROUP 2 +END + +STRINGA 35 +BEGIN + KEY "CAP" + PROMPT 119 27 "" + FIELD 116@->CAPRF + FIELD 116@->CAPRES + GROUP 2 +END + +STRING 36 +BEGIN + KEY "COMUNE DI RESIDENZA FISCALE" + PROMPT 39 29 "" + FIELD 413@->DENCOM + GROUP 2 +END + +STRING 37 +BEGIN + KEY "PROV. RESIDENZA FISCALE" + PROMPT 119 29 "" + FIELD 413@->PROVCOM + GROUP 2 +END + +STRING 38 +BEGIN + KEY "VIA RESIDENZA FISCALE" + PROMPT 39 29 "" + FIELD 216@->INDRES[1,18] + FLAGS "H" + MESSAGE COPY,12|COPY,107 +END + +STRING 39 +BEGIN + KEY "NUM.CIV" + PROMPT 93 4 "" + FLAGS "H" + FIELD 216@->CIVRES + MESSAGE APPEND,12|APPEND,107 +END + +STRING 40 +BEGIN + KEY "VIA RES FISCALE" + PROMPT 39 29 "" + GROUP 2 +END + +STRINGA 41 +BEGIN + KEY "CAP" + PROMPT 119 29 "" + FIELD 116@->CAPRF + GROUP 2 +END + +STRINGA 42 +BEGIN + KEY "DATA APP.BILANCIO gg-mm-aaa" + PROMPT 29 31 "" + FORMAT "1444-" + PICTURE "## ^ ##^^^^^" + GROUP 2 +END + +STRINGA 43 +BEGIN + KEY "Termine per APP.BILANCIO gg-mm-aaa" + PROMPT 88 31 "" + FORMAT "1444-" + PICTURE "## ^ ##^^^^^" + GROUP 2 +END + +STRINGA 48 +BEGIN + KEY "STATO" + PROMPT 29 33 "" + FIELD 118@->STATOSOC + GROUP 2 +END + +STRINGA 49 +BEGIN + KEY "NAT.GIURIDICA" + PROMPT 49 33 "" + FIELD 118@->NATGIU + GROUP 2 +END + +STRINGA 50 +BEGIN + KEY "SITUAZIONE" + PROMPT 73 33 "" + FIELD 118@->SITSOC + GROUP 2 +END + +STRINGA 51 +BEGIN + KEY "TELEFONO - PREF" + PROMPT 99 33 "" + GROUP 2 +END + +STRINGA 52 +BEGIN + KEY "TELEFONO - NUMERO" + PROMPT 110 33 "" + GROUP 2 +END + +NUMBER 53 +BEGIN + KEY "NUMERO ESTINTI" + PROMPT 66 35 "" +END + +STRINGA 54 +BEGIN + KEY "Dati RAPP. - COFI" + PROMPT 22 37 "" + FIELD 216@->COFI +END + +LISTA 55 +BEGIN + KEY "CODICE CARICA 1" + PROMPT 85 37 "" + ITEM "1|X" + ITEM "2|" + ITEM "3|" + ITEM "4|" + ITEM "5|" + ITEM "6|" + FIELD 36->CARRAPP +END +LISTA 56 +BEGIN + KEY "CODICE CARICA 2" + PROMPT 94 37 "" + ITEM "1|" + ITEM "2|X" + ITEM "3|" + ITEM "4|" + ITEM "5|" + ITEM "6|" + FIELD 36->CARRAPP +END +LISTA 57 +BEGIN + KEY "CODICE CARICA 3" + PROMPT 102 37 "" + ITEM "1|" + ITEM "2|" + ITEM "3|X" + ITEM "4|" + ITEM "5|" + ITEM "6|" + FIELD 36->CARRAPP +END +LISTA 58 +BEGIN + KEY "CODICE CARICA 4" + PROMPT 110 37 "" + ITEM "1|" + ITEM "2|" + ITEM "3|" + ITEM "4|X" + ITEM "5|" + ITEM "6|" + FIELD 36->CARRAPP +END +LISTA 59 +BEGIN + KEY "CODICE CARICA 5" + PROMPT 119 37 "" + ITEM "1|" + ITEM "2|" + ITEM "3|" + ITEM "4|" + ITEM "5|X" + ITEM "6|" + FIELD 36->CARRAPP +END +LISTA 60 +BEGIN + KEY "CODICE CARICA 6" + PROMPT 127 37 "" + ITEM "1|" + ITEM "2|" + ITEM "3|" + ITEM "4|" + ITEM "5|" + ITEM "6|X" + FIELD 36->CARRAPP +END + +STRINGA 61 +BEGIN + KEY "RAPP.COGNOME" + PROMPT 22 39 "" + FIELD 216@->RAGSOC[1,30] +END + +STRINGA 62 +BEGIN + KEY "RAPP.NOME" + PROMPT 80 39 "" + FIELD 216@->RAGSOC[31,50] +END + +LISTA 63 +BEGIN + KEY "RAPP.SESSO" + PROMPT 119 39 "" + ITEM "M|X" + ITEM "F|" + ITEM "|" + FIELD 216@->SESSO +END + +LISTA 64 +BEGIN + KEY "RAPP.SESSO" + PROMPT 127 39 "" + ITEM "M|" + ITEM "F|X" + ITEM "|" + FIELD 216@->SESSO +END + +STRINGA 65 +BEGIN + KEY "RAPP.DATANAGG" + PROMPT 22 41 "" + FORMAT "1444-" + PICTURE "## ^ ##^^^^^" + FIELD 216@->DATANASC +END + +STRINGA 68 +BEGIN + KEY "COMUNE NA" + PROMPT 46 41 "" + FIELD 313@->DENCOM +END + +STRINGA 69 +BEGIN + KEY "PROV NA" + PROMPT 119 41 "" + FIELD 313@->PROVCOM +END + +STRINGA 70 +BEGIN + KEY "COMUNE RES" + PROMPT 41 43 "" + FIELD 413@->DENCOM +END + +STRINGA 71 +BEGIN + KEY "PROV RES" + PROMPT 99 43 "" + FIELD 413@->PROVCOM +END + +STRINGA 72 +BEGIN + KEY "CAP RES" + PROMPT 119 43 "" + FIELD 413@->CAPRF + FIELD 413@->CAPRES +END + +STRINGA 73 +BEGIN + KEY "IND RES" + PROMPT 41 45 "" + FIELD 413@->INDRF + FIELD 413@->INDRES +END + +STRINGA 74 +BEGIN + KEY "TELEFONO PREFISSO" + PROMPT 99 45 "" + FIELD 216@->PTELRF +END + +STRINGA 75 +BEGIN + KEY "TELEFONO NUMERO" + PROMPT 111 45 "" + FIELD 216@->TELRF +END + +END + diff --git a/m770/77lib.h b/m770/77lib.h index 5cefa778d..3c29594b4 100755 --- a/m770/77lib.h +++ b/m770/77lib.h @@ -338,7 +338,7 @@ class TVersamento_stampa : public TVersamento //////////////////////////////////////////////////////////////////////////// typedef enum { nessuno=0, fattura=1, pagamento=3, versamento=4, - ritenuta=6, pagamento_piu_perc=7 } TTipo_coll; + occasionale=6, pagamento_piu_perc=7 } TTipo_coll; struct TLink770 { diff --git a/m770/77qb.h b/m770/77qb.h index 0531051b6..737860009 100755 --- a/m770/77qb.h +++ b/m770/77qb.h @@ -55,6 +55,7 @@ #define RICERCA_DIP 4 #define RICERCA_QB 5 #define GROUP_ALL 6 +#define G_DISABILI 7 #define QBG_ANADIP 1 #define QBG_QUADROB 2 diff --git a/m770/77qgda.uml b/m770/77qgda.uml index 2789d236f..418283daa 100755 --- a/m770/77qgda.uml +++ b/m770/77qgda.uml @@ -182,25 +182,9 @@ BEGIN FLAGS "R" END -NUMBER F_UTPAG 15 -BEGIN - PROMPT 2 14 "Utili pagati " - FIELD LF_QUAGD->UTPAG - PICTURE "." - FLAGS "R" -END - -NUMBER F_ROPE 15 -BEGIN - PROMPT 40 14 "Rit. utili pagati " - FIELD LF_QUAGD->ROPE - PICTURE "." - FLAGS "R" -END - NUMBER F_UTSPETT 15 BEGIN - PROMPT 2 16 "Utili spettanti " + PROMPT 2 14 "Utili spettanti " FIELD LF_QUAGD->UTSPETT PICTURE "." FLAGS "R" @@ -208,12 +192,28 @@ END NUMBER F_ROPESPET 15 BEGIN - PROMPT 40 16 "Rit.ut. spettanti " + PROMPT 40 14 "Rit.ut. spettanti " FIELD LF_QUAGD->ROPESPET PICTURE "." FLAGS "R" END +NUMBER F_UTPAG 15 +BEGIN + PROMPT 2 16 "Utili pagati " + FIELD LF_QUAGD->UTPAG + PICTURE "." + FLAGS "R" +END + +NUMBER F_ROPE 15 +BEGIN + PROMPT 40 16 "Rit. utili pagati " + FIELD LF_QUAGD->ROPE + PICTURE "." + FLAGS "R" +END + ENDPAGE ENDMASK diff --git a/m770/base.h b/m770/base.h index bdfb2eaf9..9d1a1ab5c 100755 --- a/m770/base.h +++ b/m770/base.h @@ -1,103 +1,104 @@ -// Mod.770 - Archivio BASE - -#define BSE_CODDITTA "CODDITTA" -#define BSE_CODDIC "CODDIC" -#define BSE_TIPOQUA "TIPOQUA" -#define BSE_CODDATLAV "CODDATLAV" -#define BSE_ANNODIC "ANNODIC" -#define BSE_ER92C93 "ER92C93" -#define BSE_ER93C94 "ER93C94" -#define BSE_NATTVER "NATTVER" -#define BSE_EVNATTEC "EVNATTEC" -#define BSE_CODCAAF "CODCAAF" -#define BSE_CODPRO "CODPRO" -#define BSE_N73093ALL "N73093ALL" -#define BSE_SERIE "SERIE" -#define BSE_DATAVERS "DATAVERS" -#define BSE_NUMERO "NUMERO" -#define BSE_A0NFCOM "A0NFCOM" -#define BSE_A0NLDIP "A0NLDIP" -#define BSE_A0COBB "A0COBB" -#define BSE_A0CNET "A0CNET" -#define BSE_A0EPREV "A0EPREV" -#define BSE_A0IITRA "A0IITRA" -#define BSE_A0CTER "A0CTER" -#define BSE_A0TIMP "A0TIMP" -#define BSE_A0ILOR "A0ILOR" -#define BSE_A0TDET "A0TDET" -#define BSE_A0RTER "A0RTER" -#define BSE_A0RDAT "A0RDAT" -#define BSE_A0ERIT "A0ERIT" -#define BSE_A0CARR "A0CARR" -#define BSE_A0AARR "A0AARR" -#define BSE_A0DARR "A0DARR" -#define BSE_A0RARR "A0RARR" -#define BSE_A0RITSI "A0RITSI" -#define BSE_A0CINPS "A0CINPS" -#define BSE_A0RITOPEVA "A0RITOPEVA" -#define BSE_A0RITOPESA "A0RITOPESA" -#define BSE_A0CIIAUT "A0CIIAUT" -#define BSE_A0NADLAV "A0NADLAV" -#define BSE_A0NACAAF "A0NACAAF" -#define BSE_A0CRIMPRAS "A0CRIMPRAS" -#define BSE_A3NFCOM "A3NFCOM" -#define BSE_A3NUMPER "A3NUMPER" -#define BSE_A3REPT10 "A3REPT10" -#define BSE_A3REPT12 "A3REPT12" -#define BSE_B0NFCOM "B0NFCOM" -#define BSE_B0NLDIP "B0NLDIP" -#define BSE_B0TFR93 "B0TFR93" -#define BSE_B0AI "B0AI" -#define BSE_B0COLAV "B0COLAV" -#define BSE_B0TFR7492 "B0TFR7492" -#define BSE_B0AI7492 "B0AI7492" -#define BSE_B0RITSI "B0RITSI" -#define BSE_B0IMP "B0IMP" -#define BSE_B0TIMP "B0TIMP" -#define BSE_B0ROP "B0ROP" -#define BSE_B0AIINPS "B0AIINPS" -#define BSE_B0ROPESA "B0ROPESA" -#define BSE_B0CIIAUT "B0CIIAUT" -#define BSE_B1NFCOM "B1NFCOM" -#define BSE_B1NPER "B1NPER" -#define BSE_B1TIND "B1TIND" -#define BSE_B1TIRM "B1TIRM" -#define BSE_B1TICOM "B1TICOM" -#define BSE_C0NFCOM "C0NFCOM" -#define BSE_C0NLASS "C0NLASS" -#define BSE_C0ACTOT "C0ACTOT" -#define BSE_C0SNSRIT "C0SNSRIT" -#define BSE_C0ROPE "C0ROPE" -#define BSE_C0CIIAUT "C0CIIAUT" -#define BSE_D0NFCOM "D0NFCOM" -#define BSE_D0NLAUT "D0NLAUT" -#define BSE_D0ACTOT "D0ACTOT" -#define BSE_D0SNSRIT "D0SNSRIT" -#define BSE_D0ROPE "D0ROPE" -#define BSE_D0CIIAUT "D0CIIAUT" -#define BSE_D1NFCOM "D1NFCOM" -#define BSE_D1NPER "D1NPER" -#define BSE_D1TACOR "D1TACOR" -#define BSE_D1SNSRIT "D1SNSRIT" -#define BSE_D1ROPE "D1ROPE" -#define BSE_QCOMP "QCOMP" -#define BSE_QSUPPINV "QSUPPINV" -#define BSE_NSUPPM "NSUPPM" -#define BSE_LUOVERS "LUOVERS" -#define BSE_TIPOVERS "TIPOVERS" -#define BSE_RSS "RSS" -#define BSE_FLART4 "FLART4" -#define BSE_QSUPPRIC "QSUPPRIC" -#define BSE_DITTACAAF "DITTACAAF" - -#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" - +// Mod.770 - Archivio BASE + +#define BSE_CODDITTA "CODDITTA" +#define BSE_CODDIC "CODDIC" +#define BSE_TIPOQUA "TIPOQUA" +#define BSE_CODDATLAV "CODDATLAV" +#define BSE_ANNODIC "ANNODIC" +#define BSE_ER92C93 "ER92C93" +#define BSE_ER93C94 "ER93C94" +#define BSE_NATTVER "NATTVER" +#define BSE_EVNATTEC "EVNATTEC" +#define BSE_CODCAAF "CODCAAF" +#define BSE_CODPRO "CODPRO" +#define BSE_N73093ALL "N73093ALL" +#define BSE_SERIE "SERIE" +#define BSE_DATAVERS "DATAVERS" +#define BSE_NUMERO "NUMERO" +#define BSE_A0NFCOM "A0NFCOM" +#define BSE_A0NLDIP "A0NLDIP" +#define BSE_A0COBB "A0COBB" +#define BSE_A0CNET "A0CNET" +#define BSE_A0EPREV "A0EPREV" +#define BSE_A0IITRA "A0IITRA" +#define BSE_A0CTER "A0CTER" +#define BSE_A0TIMP "A0TIMP" +#define BSE_A0ILOR "A0ILOR" +#define BSE_A0TDET "A0TDET" +#define BSE_A0RTER "A0RTER" +#define BSE_A0RDAT "A0RDAT" +#define BSE_A0ERIT "A0ERIT" +#define BSE_A0CARR "A0CARR" +#define BSE_A0AARR "A0AARR" +#define BSE_A0DARR "A0DARR" +#define BSE_A0RARR "A0RARR" +#define BSE_A0RITSI "A0RITSI" +#define BSE_A0CINPS "A0CINPS" +#define BSE_A0RITOPEVA "A0RITOPEVA" +#define BSE_A0RITOPESA "A0RITOPESA" +#define BSE_A0CIIAUT "A0CIIAUT" +#define BSE_A0NADLAV "A0NADLAV" +#define BSE_A0NACAAF "A0NACAAF" +#define BSE_A0CRIMPRAS "A0CRIMPRAS" +#define BSE_A3NFCOM "A3NFCOM" +#define BSE_A3NUMPER "A3NUMPER" +#define BSE_A3REPT10 "A3REPT10" +#define BSE_A3REPT12 "A3REPT12" +#define BSE_B0NFCOM "B0NFCOM" +#define BSE_B0NLDIP "B0NLDIP" +#define BSE_B0TFR93 "B0TFR93" +#define BSE_B0AI "B0AI" +#define BSE_B0COLAV "B0COLAV" +#define BSE_B0TFR7492 "B0TFR7492" +#define BSE_B0AI7492 "B0AI7492" +#define BSE_B0RITSI "B0RITSI" +#define BSE_B0IMP "B0IMP" +#define BSE_B0TIMP "B0TIMP" +#define BSE_B0ROP "B0ROP" +#define BSE_B0AIINPS "B0AIINPS" +#define BSE_B0ROPESA "B0ROPESA" +#define BSE_B0CIIAUT "B0CIIAUT" +#define BSE_B1NFCOM "B1NFCOM" +#define BSE_B1NPER "B1NPER" +#define BSE_B1TIND "B1TIND" +#define BSE_B1TIRM "B1TIRM" +#define BSE_B1TICOM "B1TICOM" +#define BSE_C0NFCOM "C0NFCOM" +#define BSE_C0NLASS "C0NLASS" +#define BSE_C0ACTOT "C0ACTOT" +#define BSE_C0SNSRIT "C0SNSRIT" +#define BSE_C0ROPE "C0ROPE" +#define BSE_C0CIIAUT "C0CIIAUT" +#define BSE_D0NFCOM "D0NFCOM" +#define BSE_D0NLAUT "D0NLAUT" +#define BSE_D0ACTOT "D0ACTOT" +#define BSE_D0SNSRIT "D0SNSRIT" +#define BSE_D0ROPE "D0ROPE" +#define BSE_D0CIIAUT "D0CIIAUT" +#define BSE_D1NFCOM "D1NFCOM" +#define BSE_D1NPER "D1NPER" +#define BSE_D1TACOR "D1TACOR" +#define BSE_D1SNSRIT "D1SNSRIT" +#define BSE_D1ROPE "D1ROPE" +#define BSE_QCOMP "QCOMP" +#define BSE_QSUPPINV "QSUPPINV" +#define BSE_NSUPPM "NSUPPM" +#define BSE_LUOVERS "LUOVERS" +#define BSE_TIPOVERS "TIPOVERS" +#define BSE_RSS "RSS" +#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" + diff --git a/m770/batbca7.h b/m770/batbca7.h index 52b803030..a2a676f34 100755 --- a/m770/batbca7.h +++ b/m770/batbca7.h @@ -23,5 +23,8 @@ #define TCF_COMMINPS 118 #define TCF_PERCASSPREV 119 - +#define G_INPS 10 +#define INPS_GROUP 7 +#define GR_CAUDD1 8 +#define G_ICTS 9 diff --git a/m770/batbca7.uml b/m770/batbca7.uml index 3730c3d13..820ef3153 100755 --- a/m770/batbca7.uml +++ b/m770/batbca7.uml @@ -3,10 +3,6 @@ TOOLBAR "" 0 20 0 2 #include ENDPAGE -#define INPS_GROUP 7 -#define GR_CAUDD1 8 -#define G_ICTS 9 - PAGE "Tabella causali modello 770" -1 -1 78 18 GROUPBOX DLG_NULL 77 8 @@ -54,20 +50,19 @@ LIST F_QUADRCE2 2 BEGIN PROMPT 1 3 "Codice quadro " HELP "Inserire il codice quadro" - ITEM "| " - MESSAGE DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 ITEM "C|C" - MESSAGE ENABLE,F_CT|DISABLE,F_IC|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 + MESSAGE CLEAR,G_INPS@|ENABLE,F_CT|DISABLE,F_IC|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 ITEM "D|D" - MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,TCF_CAUSD1|DISABLE,GR_CAUDD1@|ENABLE,TCF_CAUSD|SHOW,F_DESCR1|HIDE,F_DESCR2 + MESSAGE ENABLE,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,TCF_CAUSD1|DISABLE,GR_CAUDD1@|ENABLE,TCF_CAUSD|SHOW,F_DESCR1|HIDE,F_DESCR2 ITEM "D1|D1" - MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,TCF_CAUSD|DISABLE,GR_CAUDD1@||ENABLE,TCF_CAUSD1|SHOW,F_DESCR1|HIDE,F_DESCR2 + MESSAGE ENABLE,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,TCF_CAUSD|DISABLE,GR_CAUDD1@||ENABLE,TCF_CAUSD1|SHOW,F_DESCR1|HIDE,F_DESCR2 ITEM "E|E" - MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 + MESSAGE CLEAR,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 ITEM "E1|E1" - MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 + MESSAGE CLEAR,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 MESSAGE COPY,F_CODQUA WARNING "Manca il codice quadro" + CHECKTYPE REQUIRED FIELD LF_TABCOM->S1 END @@ -75,57 +70,56 @@ LIST F_QUADRAT 2 BEGIN PROMPT 1 3 "Codice quadro " HELP "Inserire il codice quadro" - ITEM "| " - MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 ITEM "A|A" - MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 + MESSAGE CLEAR,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 ITEM "A1|A1" - MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 + MESSAGE CLEAR,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 ITEM "A2|A2" - MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 + MESSAGE CLEAR,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 ITEM "A3|A3" - MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 + MESSAGE CLEAR,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 ITEM "B|B" - MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 + MESSAGE CLEAR,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 ITEM "B1|B1" - MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 + MESSAGE CLEAR,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 ITEM "C|C" - MESSAGE ENABLE,F_CT|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|ENABLE,F_IC|SHOW,F_DESCR1|HIDE,F_DESCR2 + MESSAGE CLEAR,G_INPS@|ENABLE,F_CT|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|ENABLE,F_IC|SHOW,F_DESCR1|HIDE,F_DESCR2 ITEM "D|D" - MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,TCF_CAUSD1|DISABLE,GR_CAUDD1@|ENABLE,TCF_CAUSD|SHOW,F_DESCR1|HIDE,F_DESCR2 + MESSAGE ENABLE,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,TCF_CAUSD1|DISABLE,GR_CAUDD1@|ENABLE,TCF_CAUSD|SHOW,F_DESCR1|HIDE,F_DESCR2 ITEM "D1|D1" - MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,TCF_CAUSD|DISABLE,GR_CAUDD1@|ENABLE,TCF_CAUSD1|DISABLE,TCF_CAUSD|SHOW,F_DESCR1|HIDE,F_DESCR2 + MESSAGE ENABLE,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,TCF_CAUSD|DISABLE,GR_CAUDD1@|ENABLE,TCF_CAUSD1|DISABLE,TCF_CAUSD|SHOW,F_DESCR1|HIDE,F_DESCR2 ITEM "E|E" - MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 + MESSAGE CLEAR,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 ITEM "E1|E1" - MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 + MESSAGE CLEAR,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 ITEM "E2|E2" - MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|HIDE,F_DESCR1|SHOW,F_DESCR2 + MESSAGE CLEAR,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|HIDE,F_DESCR1|SHOW,F_DESCR2 ITEM "F|F" - MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 + MESSAGE CLEAR,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 ITEM "F1|F1" - MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 + MESSAGE CLEAR,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 ITEM "F2|F2" - MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|HIDE,F_DESCR1|SHOW,F_DESCR2 + MESSAGE CLEAR,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|HIDE,F_DESCR1|SHOW,F_DESCR2 ITEM "G|G" - MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 + MESSAGE CLEAR,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 ITEM "G1|G1" - MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 + MESSAGE CLEAR,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 ITEM "N|N" - MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 + MESSAGE CLEAR,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 ITEM "P|P" - MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 + MESSAGE CLEAR,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 ITEM "Q|Q" - MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 + MESSAGE CLEAR,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 ITEM "R|R" - MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 + MESSAGE CLEAR,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 ITEM "S|S" - MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 + MESSAGE CLEAR,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 ITEM "T|T" - MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 + MESSAGE CLEAR,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 MESSAGE COPY,F_QUADRCE2 MESSAGE COPY,F_CODQUA WARNING "Manca il codice quadro" + CHECKTYPE REQUIRED FIELD LF_TABCOM->S1 END @@ -322,7 +316,8 @@ END BOOLEAN TCF_BINPS BEGIN PROMPT 1 14 "Contributo INPS " - FIELD LF_TABCOM->B4 + FIELD LF_TABCOM->B4 + GROUP G_INPS MESSAGE TRUE ENABLE,INPS_GROUP@ MESSAGE FALSE DISABLE,INPS_GROUP@ END diff --git a/m770/quadb_b1.cpp b/m770/quadb_b1.cpp index 2d01522e9..38f0ff63f 100755 --- a/m770/quadb_b1.cpp +++ b/m770/quadb_b1.cpp @@ -20,6 +20,7 @@ class TQuadriBB1_application : public TRelation_application static bool QBTotRedImpHandler (TMask_field& f, KEY k); static bool QBAmmRopeHandler (TMask_field& f, KEY k); static bool QBTotIndennHandler (TMask_field& f, KEY k); + static bool QBCalcola37 (TMask_field& f, KEY k); static void BB1SettaCognomeNome(TMask& m); const char* _maskname; int _num; @@ -167,6 +168,8 @@ TMask* TQuadriBB1_application::load_mask(int n) m->set_handler(QBF_CONTLAV, QBTotIndennHandler); m->set_handler(QBF_TFR7494, QBTotIndennHandler); m->set_handler(QBF_INDEN7494, QBTotIndennHandler); + m->set_handler(QBF_TIND7494, QBCalcola37); // 28 + m->set_handler(QBF_TRID, QBCalcola37); // 29 } // m->disable(DLG_FINDREC); break; @@ -176,6 +179,22 @@ TMask* TQuadriBB1_application::load_mask(int n) return _msk[n] = m; } +bool TQuadriBB1_application::QBCalcola37(TMask_field& f, KEY k) +{ + if (k==K_TAB) + { + TMask& m=f.mask(); + real c28=m.get_real(QBF_TIND7494); + real c29=m.get_real(QBF_TRID); + real c37 = c28 - c29; + if (c37 < ZERO) + c37 = ZERO; + TString c37s(c37.string()); + m.set(QBF_TOTIMP,c37s); + } + return TRUE; +} + bool TQuadriBB1_application::MaskConAnnoDic() const { return _MaskConAnnoDic; @@ -588,8 +607,12 @@ bool TQuadriBB1_application::QBTotIndennHandler(TMask_field& f, KEY k) real c27 = m.get_real(QBF_INDEN7494); real c28 = c20 + c24 - c25 + c26 + c27; + if (c28 < ZERO) + c28 = ZERO; TString c28s(c28.string()); - m.set(QBF_TIND7494, c28s); + m.set(QBF_TIND7494, c28s); +// Ricalcola il 37 da qui perche' il 28 e' disabilitato + QBCalcola37(f,k); } } return TRUE; diff --git a/m770/quadn_t.cpp b/m770/quadn_t.cpp index a605e7645..07f461a1f 100755 --- a/m770/quadn_t.cpp +++ b/m770/quadn_t.cpp @@ -1,370 +1,370 @@ -// quadn_t.cpp -#include -#include -#include -#include -#include "774200.h" -#include "77lib.h" -#include "quadron.h" -#include "77qn.h" -#include "77qq.h" -#include "77qp.h" - -#define CODDITTA77 181 -#define ANNODIC77 182 - -class TQuadriNT_application : public TRelation_application -{ - static bool codditta77_handler (TMask_field& m, KEY k); - static bool nprog_handler (TMask_field& m, KEY k); - static bool anno_handler (TMask_field& m, KEY k); - static bool mese_handler (TMask_field& f, KEY k); - static bool codreg_handler (TMask_field& f, KEY k); - 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; - int _num; - 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 _codditta; -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 void on_config_change(); - virtual TMask* get_mask(int) { return _msk; } - virtual bool changing_mask(int) { return FALSE;} - virtual TRelation* get_relation() const { return _rel; } - virtual void init_mask(TMask&); - virtual void init_query_mode(TMask&); - virtual void init_insert_mode(TMask&); - virtual void init_query_insert_mode(TMask&); -public: - TQuadriNT_application(const char* name, const int num, const char* quadro); -}; - -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) - { - 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; - } -} - -TQuadriNT_application& app() { return (TQuadriNT_application&)main_app(); } - -void TQuadriNT_application::LeggiMask() -{ - _MaskConAnnoDic = _msk->id2pos(ANNODIC77) > 0; - _MaskConCodditta = _msk->id2pos(CODDITTA77) > 0; -} - -bool TQuadriNT_application::MaskConAnnoDic() const -{ - return _MaskConAnnoDic; -} - -void TQuadriNT_application::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() -{ - _msk = new TMask(_maskname); - _rel = new TRelation(_num); - - _codditta = get_firm_770(); - _msk->set_handler(CODDITTA77, codditta77_handler); - _msk->set_handler(QNF_NPROG, nprog_handler); - - if (QuadroNoR()) - { - _msk->set_handler(QNF_ANNORIF, anno_handler); - _msk->set_handler(QNF_MESERIF, mese_handler); - } - - if (QuadroQoT()) - { - _msk->set_handler(QNF_ANNORIF, anno_handler); - _msk->set_handler(QNF_MESERIF, mese_handler); - _msk->set_handler(QQF_CODREG, codreg_handler); - } - - if (QuadroPoS()) - _msk->set_handler(QPF_CODTRIB, codtrib_handler); - - _registra = FALSE; - set_search_field(QNF_NPROG); - - return TRUE; -} - -bool TQuadriNT_application::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; -} - -bool TQuadriNT_application::user_destroy() -{ - if (_quadro != "") - if (_registra) - _rip.set_compilato(_codditta, _pos_quadro, EsisteUnRec()); - delete _msk; - delete _rel; - return TRUE; -} - -// 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) -{ - TString impost(m.get(QNF_IMPOSTA)); - TString compen(m.get(QNF_COMPENSI)); - return impost.not_empty() || compen.not_empty(); -} - -int TQuadriNT_application::rewrite(const TMask& m) -{ - m.autosave(*_rel); - const int err = _rel->rewrite(); - _registra = err == NOERR; - return err; -} - -int TQuadriNT_application::write(const TMask& m) -{ - m.autosave(*_rel); - const int err = _rel->write(); - _registra = err == NOERR; - return err; -} - -bool TQuadriNT_application::remove() -{ - _registra = TRUE; - return TRelation_application::remove(); -} - -void TQuadriNT_application::init_mask(TMask& m) -{ - m.set(ANNODIC77, _anno_dic); -} - -void TQuadriNT_application::init_query_mode(TMask& m) -{ - init_mask(m); -} - -void TQuadriNT_application::init_insert_mode(TMask& m) -{ - init_mask(m); -} - -void TQuadriNT_application::init_query_insert_mode(TMask& m) -{ - init_mask(m); -} - -bool TQuadriNT_application::codditta77_handler(TMask_field& f, KEY k) -{ - TString16 codditta; codditta << app()._codditta; - TMask& m = f.mask(); - if (codditta != "0") - { - m.set(CODDITTA77, codditta); - m.field(CODDITTA77).check(); - } - return TRUE; -} - - -/////////////////////////////////////////////////////////// -// 2 modi : -// RUN,773,-1,771230m,89,"Prospetto del Quadro E1","E1" [771230i.uml] -// oppure -// 773 -1 menu_st "Stampe dichiarazioni" [prassi.mnu] -// QUADRO N: -// 773,-2,77qn,72,"Quadro N","N" -/////////////////////////////////////////////////////////// -int 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"); - return 0; -} - -bool TQuadriNT_application::anno_handler(TMask_field& f, KEY k) -{ - TMask& m = f.mask(); - if (k == K_ENTER && (modifica(m) || inserimento(m)) ) - { - TString dep(f.get()); - if (dep.empty()) - return f.warning_box("Manca l'anno"); - else - if (!app().CheckImporti(m)) - return f.warning_box("Manca almeno un importo"); - } - return TRUE; -} - -bool TQuadriNT_application::mese_handler(TMask_field& f, KEY k) -{ - TMask& m = f.mask(); - if (k == K_ENTER && (modifica(m) || inserimento(m)) ) - { - TString dep(f.get()); - if (dep.empty()) - return f.warning_box("Manca il mese"); - } - return TRUE; -} - -// Per i Quadri Q e T -bool TQuadriNT_application::codreg_handler(TMask_field& f, KEY k) -{ - TMask& m = f.mask(); - if (k == K_ENTER && (modifica(m) || inserimento(m)) ) - { - TString dep(f.get()); - if (dep.empty()) - return f.warning_box("Manca il codice regione"); - } - return TRUE; -} - -// Per i Quadri P e S. Codice tributo REQUIRED -bool TQuadriNT_application::codtrib_handler(TMask_field& f, KEY k) -{ - TMask& m = f.mask(); - if (k == K_ENTER && (modifica(m) || inserimento(m)) ) - { - TString dep(f.get()); - if (dep.empty()) - return f.warning_box("Manca il codice tributo"); - } - return TRUE; -} - -bool TQuadriNT_application::nprog_handler(TMask_field& f, KEY k) -{ - if (k == K_TAB) - { - TMask& m = f.mask(); -// Propone il primo numero disponibile quando la maschera e' ancora "off" - if (!m.is_running()) - { - 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); - } - nprog++; - TString16 nprog_str; nprog_str << nprog; - f.mask().set(QNF_NPROG, nprog_str); - } -// Quando la maschera e' running, se c'e' NPROG la chiude - else - { - TString nprogstr(f.get()); - if (nprogstr.not_empty()) - m.stop_run(K_AUTO_ENTER); - } - } - return TRUE; -} - -bool TQuadriNT_application::tipo(TMask_field& f , KEY k) -{ -/* - if (k == K_SPACE) - { - char tipo = f.mask().get(F_QLTIPOVERS)[0]; - char luogo = f.mask().get(F_QLLUOVERS)[0]; - - if (tipo == 'D' && luogo == 'T') - f.mask().hide(F_QLSERIE); - else - f.mask().show(F_QLSERIE); - } -*/ - return TRUE; -} - -bool TQuadriNT_application::luogo(TMask_field& f , KEY k) -{ -/* - if (k == K_SPACE) - { - char tipo = f.mask().get(F_QLTIPOVERS)[0]; - char luogo = f.mask().get(F_QLLUOVERS)[0]; - - if (tipo == 'D' && luogo == 'T') - f.mask().hide(F_QLSERIE); - else - f.mask().show(F_QLSERIE); - } - */ - return TRUE; -} - +// quadn_t.cpp +#include +#include +#include +#include +#include "774200.h" +#include "77lib.h" +#include "quadron.h" +#include "77qn.h" +#include "77qq.h" +#include "77qp.h" + +#define CODDITTA77 181 +#define ANNODIC77 182 + +class TQuadriNT_application : public TRelation_application +{ + static bool codditta77_handler (TMask_field& m, KEY k); + static bool nprog_handler (TMask_field& m, KEY k); + static bool anno_handler (TMask_field& m, KEY k); + static bool mese_handler (TMask_field& f, KEY k); + static bool codreg_handler (TMask_field& f, KEY k); + 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; + int _num; + 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 _codditta; +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 void on_config_change(); + virtual TMask* get_mask(int) { return _msk; } + virtual bool changing_mask(int) { return FALSE;} + virtual TRelation* get_relation() const { return _rel; } + virtual void init_mask(TMask&); + virtual void init_query_mode(TMask&); + virtual void init_insert_mode(TMask&); + virtual void init_query_insert_mode(TMask&); +public: + TQuadriNT_application(const char* name, const int num, const char* quadro); +}; + +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) + { + 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; + } +} + +TQuadriNT_application& app() { return (TQuadriNT_application&)main_app(); } + +void TQuadriNT_application::LeggiMask() +{ + _MaskConAnnoDic = _msk->id2pos(ANNODIC77) > 0; + _MaskConCodditta = _msk->id2pos(CODDITTA77) > 0; +} + +bool TQuadriNT_application::MaskConAnnoDic() const +{ + return _MaskConAnnoDic; +} + +void TQuadriNT_application::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() +{ + _msk = new TMask(_maskname); + _rel = new TRelation(_num); + + _codditta = get_firm_770(); + _msk->set_handler(CODDITTA77, codditta77_handler); + _msk->set_handler(QNF_NPROG, nprog_handler); + + if (QuadroNoR()) + { + _msk->set_handler(QNF_ANNORIF, anno_handler); + _msk->set_handler(QNF_MESERIF, mese_handler); + } + + if (QuadroQoT()) + { + _msk->set_handler(QNF_ANNORIF, anno_handler); + _msk->set_handler(QNF_MESERIF, mese_handler); + _msk->set_handler(QQF_CODREG, codreg_handler); + } + + if (QuadroPoS()) + _msk->set_handler(QPF_CODTRIB, codtrib_handler); + + _registra = FALSE; + set_search_field(QNF_NPROG); + + return TRUE; +} + +bool TQuadriNT_application::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; +} + +bool TQuadriNT_application::user_destroy() +{ + if (_quadro != "") + if (_registra) + _rip.set_compilato(_codditta, _pos_quadro, EsisteUnRec()); + delete _msk; + delete _rel; + return TRUE; +} + +// 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) +{ + TString impost(m.get(QNF_IMPOSTA)); + TString compen(m.get(QNF_COMPENSI)); + return impost.not_empty() || compen.not_empty(); +} + +int TQuadriNT_application::rewrite(const TMask& m) +{ + m.autosave(_rel); + const int err = _rel->rewrite(); + _registra = err == NOERR; + return err; +} + +int TQuadriNT_application::write(const TMask& m) +{ + m.autosave(_rel); + const int err = _rel->write(); + _registra = err == NOERR; + return err; +} + +bool TQuadriNT_application::remove() +{ + _registra = TRUE; + return TRelation_application::remove(); +} + +void TQuadriNT_application::init_mask(TMask& m) +{ + m.set(ANNODIC77, _anno_dic); +} + +void TQuadriNT_application::init_query_mode(TMask& m) +{ + init_mask(m); +} + +void TQuadriNT_application::init_insert_mode(TMask& m) +{ + init_mask(m); +} + +void TQuadriNT_application::init_query_insert_mode(TMask& m) +{ + init_mask(m); +} + +bool TQuadriNT_application::codditta77_handler(TMask_field& f, KEY k) +{ + TString16 codditta; codditta << app()._codditta; + TMask& m = f.mask(); + if (codditta != "0") + { + m.set(CODDITTA77, codditta); + m.field(CODDITTA77).check(); + } + return TRUE; +} + + +/////////////////////////////////////////////////////////// +// 2 modi : +// RUN,773,-1,771230m,89,"Prospetto del Quadro E1","E1" [771230i.uml] +// oppure +// 773 -1 menu_st "Stampe dichiarazioni" [prassi.mnu] +// QUADRO N: +// 773,-2,77qn,72,"Quadro N","N" +/////////////////////////////////////////////////////////// +int 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"); + return 0; +} + +bool TQuadriNT_application::anno_handler(TMask_field& f, KEY k) +{ + TMask& m = f.mask(); + if (k == K_ENTER && (modifica(m) || inserimento(m)) ) + { + TString dep(f.get()); + if (dep.empty()) + return f.warning_box("Manca l'anno"); + else + if (!app().CheckImporti(m)) + return f.warning_box("Manca almeno un importo"); + } + return TRUE; +} + +bool TQuadriNT_application::mese_handler(TMask_field& f, KEY k) +{ + TMask& m = f.mask(); + if (k == K_ENTER && (modifica(m) || inserimento(m)) ) + { + TString dep(f.get()); + if (dep.empty()) + return f.warning_box("Manca il mese"); + } + return TRUE; +} + +// Per i Quadri Q e T +bool TQuadriNT_application::codreg_handler(TMask_field& f, KEY k) +{ + TMask& m = f.mask(); + if (k == K_ENTER && (modifica(m) || inserimento(m)) ) + { + TString dep(f.get()); + if (dep.empty()) + return f.warning_box("Manca il codice regione"); + } + return TRUE; +} + +// Per i Quadri P e S. Codice tributo REQUIRED +bool TQuadriNT_application::codtrib_handler(TMask_field& f, KEY k) +{ + TMask& m = f.mask(); + if (k == K_ENTER && (modifica(m) || inserimento(m)) ) + { + TString dep(f.get()); + if (dep.empty()) + return f.warning_box("Manca il codice tributo"); + } + return TRUE; +} + +bool TQuadriNT_application::nprog_handler(TMask_field& f, KEY k) +{ + if (k == K_TAB) + { + TMask& m = f.mask(); +// Propone il primo numero disponibile quando la maschera e' ancora "off" + if (!m.is_running()) + { + 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); + } + nprog++; + TString16 nprog_str; nprog_str << nprog; + f.mask().set(QNF_NPROG, nprog_str); + } +// Quando la maschera e' running, se c'e' NPROG la chiude + else + { + TString nprogstr(f.get()); + if (nprogstr.not_empty()) + m.stop_run(K_AUTO_ENTER); + } + } + return TRUE; +} + +bool TQuadriNT_application::tipo(TMask_field& f , KEY k) +{ +/* + if (k == K_SPACE) + { + char tipo = f.mask().get(F_QLTIPOVERS)[0]; + char luogo = f.mask().get(F_QLLUOVERS)[0]; + + if (tipo == 'D' && luogo == 'T') + f.mask().hide(F_QLSERIE); + else + f.mask().show(F_QLSERIE); + } +*/ + return TRUE; +} + +bool TQuadriNT_application::luogo(TMask_field& f , KEY k) +{ +/* + if (k == K_SPACE) + { + char tipo = f.mask().get(F_QLTIPOVERS)[0]; + char luogo = f.mask().get(F_QLLUOVERS)[0]; + + if (tipo == 'D' && luogo == 'T') + f.mask().hide(F_QLSERIE); + else + f.mask().show(F_QLSERIE); + } + */ + return TRUE; +} +