diff --git a/cd/test/cg0702.txt b/cd/test/cg0702.txt new file mode 100644 index 000000000..799bcc86c --- /dev/null +++ b/cd/test/cg0702.txt @@ -0,0 +1,3 @@ +cgtbvet.msk + +Sistemato errore inserimento vettori \ No newline at end of file diff --git a/cd/test/cg0702a.ini b/cd/test/cg0702a.ini new file mode 100644 index 000000000..ca0ab482f --- /dev/null +++ b/cd/test/cg0702a.ini @@ -0,0 +1,97 @@ +[Main] +Demo=0 + +[cg9] +Edit_19 = cg0 -0 +Edit_20 = cg0 -1 +Edit_26 = cg0 -4 +Edit_5 = cg0 -5 +File(224) = cgtbvet.msk|X +Patch = 0702 +Versione = 21511200 + +[cg99] +Kill(0) = bastcfi.msk|x +Kill(1) = batbver.msk|x +Kill(2) = bastndo.rep|x +Kill(3) = bastcve.msk|x +Kill(4) = bastntb.rep|x +Kill(5) = batblbu.msk|x +Kill(6) = bastpor.rep|x +Kill(7) = bastnot.msk|x +Kill(8) = bastvet.msk|x +Kill(9) = batbntb.msk|x +Kill(10) = batbcfi.msk|x +Kill(11) = batbpor.msk|x +Kill(12) = bastmsp.rep|x +Kill(13) = bastcco.msk|x +Kill(14) = batbndo.msk|x +Kill(15) = bastndo.msk|x +Kill(16) = batbleg.msk|x +Kill(17) = bastmsp.msk|x +Kill(18) = bastscc.rep|x +Kill(19) = batbmsp.msk|x +Kill(20) = batbind.msk|x +Kill(21) = bastesc.msk|x +Kill(22) = bastpor.msk|x +Kill(23) = bastreg.rep|x +Kill(24) = batbcam.msk|x +Kill(25) = bastcve.rep|x +Kill(26) = batbesc.msk|x +Kill(27) = bastver.msk|x +Kill(28) = cgtbcon.msk|x +Kill(29) = bastzon.msk|x +Kill(30) = batbpdb.msk|x +Kill(31) = batbins.msk|x +Kill(32) = batbdpn.msk|x +Kill(33) = batbcco.msk|x +Kill(34) = batbnot.msk|x +Kill(35) = bastarb.msk|x +Kill(36) = bastnot.rep|x +Kill(37) = batbvet.msk|x +Kill(38) = bastivd.rep|x +Kill(39) = bastarb.rep|x +Kill(40) = batbdel.msk|x +Kill(41) = batblia.msk|x +Kill(42) = bastpdb.rep|x +Kill(43) = batbtra.msk|x +Kill(44) = bastdpn.rep|x +Kill(45) = bastcam.msk|x +Kill(46) = bastreg.msk|x +Kill(47) = batbinl.msk|x +Kill(48) = bastleg.rep|x +Kill(49) = bastver.rep|x +Kill(50) = bastpdb.msk|x +Kill(51) = bastntb.msk|x +Kill(52) = batbreg.msk|x +Kill(53) = bastesc.rep|x +Kill(54) = bastcam.rep|x +Kill(55) = bastleg.msk|x +Kill(56) = bastdpn.msk|x +Kill(57) = batbzon.msk|x +Kill(58) = batbivd.msk|x +Kill(59) = batbtit.msk|x +Kill(60) = batblia.msk|x +Kill(61) = bastzon.rep|x +Kill(62) = bastivd.msk|x +Kill(63) = bastvet.rep|x +Kill(64) = batbscc.msk|x +Kill(65) = batbcve.msk|x +Kill(66) = batbarb.msk|x +Kill(67) = bastcfi.rep|x +Kill(68) = bastcco.rep|x +Kill(69) = bastscc.msk|x + +[cg] +Data = 20-02-2019 +Descrizione = Contabilita' Generale +Dischi = 1 +Moduli = ba +OEM = +Patch = 702 +PostProcess = bainst -0 CG +PreProcess = +Prezzo(1) = +Prezzo(2) = +Versione = 21511200 + diff --git a/cd/test/cg0702a1.zip b/cd/test/cg0702a1.zip new file mode 100644 index 000000000..b1f2209aa Binary files /dev/null and b/cd/test/cg0702a1.zip differ diff --git a/cd/test/cg0704.txt b/cd/test/cg0704.txt new file mode 100644 index 000000000..d962170ff --- /dev/null +++ b/cd/test/cg0704.txt @@ -0,0 +1,8 @@ +cg4.exe + +Modificato salvataggio percentuale pro-rata (diana2000) per sistemare si puo azzerare il campo R12 della tabella PLM del mese in oggetto (è 1999) o ricalcolare la liquidazione +Va provato anche con un pro-rata per verificare che salvi la % giusta. + +Modificato prospetto pro-rata annuale. + +Modificato il calcolo interessi per i trimestrali. Ora anche a dicembre (Pastore). \ No newline at end of file diff --git a/cd/test/cg0704a.ini b/cd/test/cg0704a.ini new file mode 100644 index 000000000..387824f2f --- /dev/null +++ b/cd/test/cg0704a.ini @@ -0,0 +1,94 @@ +[Main] +Demo=0 + +[cg1] +Edit_23 = cg2 -0 +File(39) = cg4.exe|X +Patch = 704 +Versione = 21511200 + +[cg99] +Kill(0) = batbmsp.msk|x +Kill(1) = bastcve.rep|x +Kill(2) = batbins.msk|x +Kill(3) = bastscc.rep|x +Kill(4) = batbcam.msk|x +Kill(5) = batbpdb.msk|x +Kill(6) = bastver.msk|x +Kill(7) = batbcco.msk|x +Kill(8) = batbesc.msk|x +Kill(9) = batbdpn.msk|x +Kill(10) = bastndo.msk|x +Kill(11) = bastesc.msk|x +Kill(12) = batbndo.msk|x +Kill(13) = batbind.msk|x +Kill(14) = bastmsp.msk|x +Kill(15) = bastreg.rep|x +Kill(16) = batbleg.msk|x +Kill(17) = bastpor.msk|x +Kill(18) = batbpor.msk|x +Kill(19) = batbcfi.msk|x +Kill(20) = bastcco.msk|x +Kill(21) = bastmsp.rep|x +Kill(22) = batbtit.msk|x +Kill(23) = batbcve.msk|x +Kill(24) = batbivd.msk|x +Kill(25) = batbscc.msk|x +Kill(26) = bastcfi.rep|x +Kill(27) = batbarb.msk|x +Kill(28) = bastver.rep|x +Kill(29) = bastleg.msk|x +Kill(30) = bastzon.rep|x +Kill(31) = bastleg.rep|x +Kill(32) = bastcam.rep|x +Kill(33) = batblia.msk|x +Kill(34) = batbzon.msk|x +Kill(35) = bastvet.rep|x +Kill(36) = bastdpn.msk|x +Kill(37) = bastivd.msk|x +Kill(38) = bastarb.rep|x +Kill(39) = bastcam.msk|x +Kill(40) = bastntb.msk|x +Kill(41) = bastivd.rep|x +Kill(42) = bastdpn.rep|x +Kill(43) = bastpdb.msk|x +Kill(44) = batbinl.msk|x +Kill(45) = bastesc.rep|x +Kill(46) = bastreg.msk|x +Kill(47) = batbreg.msk|x +Kill(48) = bastzon.msk|x +Kill(49) = bastarb.msk|x +Kill(50) = batblia.msk|x +Kill(51) = cgtbcon.msk|x +Kill(52) = batbnot.msk|x +Kill(53) = batbdel.msk|x +Kill(54) = batbvet.msk|x +Kill(55) = batbtra.msk|x +Kill(56) = bastnot.rep|x +Kill(57) = bastpdb.rep|x +Kill(58) = bastscc.msk|x +Kill(59) = bastcco.rep|x +Kill(60) = batbntb.msk|x +Kill(61) = bastvet.msk|x +Kill(62) = batbver.msk|x +Kill(63) = bastcfi.msk|x +Kill(64) = batblbu.msk|x +Kill(65) = bastntb.rep|x +Kill(66) = bastcve.msk|x +Kill(67) = bastndo.rep|x +Kill(68) = bastnot.msk|x +Kill(69) = bastpor.rep|x + +[cg] +Data = 20-02-2019 +Descrizione = Contabilita' Generale +Dischi = 1 +Moduli = ba +OEM = +Patch = 704 +PostProcess = bainst -0 CG +PreProcess = +Prezzo(1) = +Prezzo(2) = +Versione = 21511200 + diff --git a/cd/test/cg0704a1.zip b/cd/test/cg0704a1.zip new file mode 100644 index 000000000..14865bde8 Binary files /dev/null and b/cd/test/cg0704a1.zip differ diff --git a/cd/test/fp0704.txt b/cd/test/fp0704.txt new file mode 100644 index 000000000..ed6ea0cc7 --- /dev/null +++ b/cd/test/fp0704.txt @@ -0,0 +1,3 @@ +fp0.exe + +Aggiunto controllo tipo documento SDI per dati sporchi \ No newline at end of file diff --git a/cd/test/fp0704a.ini b/cd/test/fp0704a.ini new file mode 100644 index 000000000..3442b3a7b --- /dev/null +++ b/cd/test/fp0704a.ini @@ -0,0 +1,19 @@ +[Main] +Demo=0 + +[fp1] +File(0) = fp0.exe|X +Patch = 0704 +Versione = 21511200 + +[fp] +Data = 21-02-2019 +Descrizione = Fattura Elettronica +Dischi = 1 +Moduli = cg,ve +OEM = +Patch = 704 +PostProcess = +PreProcess = +Versione = 21511200 + diff --git a/cd/test/fp0704a1.zip b/cd/test/fp0704a1.zip new file mode 100644 index 000000000..caf398973 Binary files /dev/null and b/cd/test/fp0704a1.zip differ diff --git a/src/cg/cg4301.cpp b/src/cg/cg4301.cpp index 896f345c9..deafac616 100755 --- a/src/cg/cg4301.cpp +++ b/src/cg/cg4301.cpp @@ -2981,7 +2981,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array & acquisti_iva += agr_detIA; } - _plm->put("R12", _prorata.percentuale(_year)); + _plm->put("R12", _prorata.percentuale(_year) != INVALID_PRORATA ? _prorata.percentuale(_year) : ZERO); _plm->put("R4", percentuale1); _plm->put("R16", percentuale2); _plm->put("R17", cred_fattrit); @@ -4379,7 +4379,7 @@ void TLiquidazione_app::write_liq(int month, const char* codatts) lim.put("R1",rimborsi); lim.put("R5",rettifiche); - lim.put("R17", variazioni_imposta); + lim.put("R17", variazioni_imposta); lim.put("R18", imposta_non_versata); lim.put("R19", crediti_speciali); } @@ -4391,22 +4391,25 @@ void TLiquidazione_app::write_liq(int month, const char* codatts) * false per ditte mensili e liq. annuale * Ulteriormente smentito e rettificato */ - bool true_trim = (month == 3 || month == 6 || month == 9); - if (_isintr && ( true_trim || (month == 12 && _isbenzinaro && _gest4) - || (month == 13 && !(_isbenzinaro && _gest4)) )) - { + // bool true_trim = (month == 3 || month == 6 || month == 9); + // if (_isintr && ( true_trim || (month == 12 && _isbenzinaro && _gest4) + // || (month == 13 && !(_isbenzinaro && _gest4)) )) // cambiato 2019 + + if (_isintr && (month == 3 || month == 6 || month == 9 || month == 12 || month ==13)) + { const real interesse = interesse_trimestrale(_month); const real r = risultato - imposta_non_versata; // CM 26-09-2000 real ivi = r.sign() > 0 ? (r * interesse / CENTO) : ZERO; round_al_centesimo(ivi); lim.put("R14", ivi); - } + lim.put("R10", interesse_trimestrale(_month)); + } //questo serve anche per la visualizzazione e per l'estrazione deleghe - if (_isintr && ( true_trim || (month == 12 && _isbenzinaro && _gest4) - || (month == 13 && !(_isbenzinaro && _gest4)) )) - lim.put("R10", interesse_trimestrale(_month)); - +// if (_isintr && ( true_trim || (month == 12 && _isbenzinaro && _gest4) +// || (month == 13 && !(_isbenzinaro && _gest4)) )) cambiato 2019 +// lim.put("R10", interesse_trimestrale(_month)); + lim.put("R7", tot_cong); // totale conguaglio su tutte le attivita' lim.put("R8", versamenti); lim.put("R9", vers_int); @@ -4429,10 +4432,10 @@ void TLiquidazione_app::write_liq(int month, const char* codatts) _lam->put("R1", iva_acq); _lam->put("R2", cred_prec); _lam->put("R3", debt_precd); - _lam->put("R5", _imposta_inc_diff_ven); - _lam->put("R6", _imposta_inc_cassa_ven); - _lam->put("R7", _imposta_inc_diff_acq); - _lam->put("R8", _imposta_inc_cassa_acq); + _lam->put("R5", _imposta_inc_diff_ven); + _lam->put("R6", _imposta_inc_cassa_ven); + _lam->put("R7", _imposta_inc_diff_acq); + _lam->put("R8", _imposta_inc_cassa_acq); lim.put("B0",""); diff --git a/src/cg/cg4304.cpp b/src/cg/cg4304.cpp index b07692b47..178473231 100755 --- a/src/cg/cg4304.cpp +++ b/src/cg/cg4304.cpp @@ -1197,7 +1197,8 @@ void TLiquidazione_app::describe_pims(int month, const char* codatt, const bool if ((e1+e2+e3+e4) > ZERO) { dd->_f0 |= IS_PRORATA; - } + dd->_r18 = _pla->get_real("R18"); + } dd->_r0 = ris; dd->_r1 = e1; dd->_r2 = pr > ZERO ? pr : ZERO; @@ -1208,7 +1209,7 @@ void TLiquidazione_app::describe_pims(int month, const char* codatt, const bool dd->_r7 = e4; dd->_r8 = e5; dd->_r9 = e6; - dd->_r10 = vrc; + dd->_r10 = vrc; t->_arr.add(dd); } } @@ -2809,20 +2810,25 @@ bool TLiquidazione_app::set_annual(_DescrItem& d) const real perc_det = CENTO - d._r2; _perc_ind_annual = d._r2; - const real vol_aff = d._r0; + real vol_aff = d._r0; + const real rev_charge = d._r18; const TString16 s1 = perc_det.stringa(); const TString16 s2 = d._r2.stringa(); set_row(row++, FR("%% PRO-RATA (%s%%) ed IVA non detraibile (%s%%)@69g%r"), (const char*)s1, (const char*)s2, &(d._r6)); - - set_row(row++,FR("C1 - Operazioni esenti escluse da nr. 1 a 9 e 11 art. 10 @69g%r"), &(d._r1)); - set_row(row++,FR("C2 - Operazioni esenti di cui nr. 11 art. 10 @69g%r"), &(d._r4)); - set_row(row++,FR("C3 - Operazioni esenti da nr. 1 a 9 art. 10 @69g%r"), &(d._r5)); - set_row(row++,FR("@6gdi cui cessione beni ammortizzabili @69g%r"), &(d._r8)); - set_row(row++,FR("C1A - Operazioni esenti di cui all'art.10 n. 27 quinquies @69g%r"), &(d._r7)); - set_row(row++,FR("@6gdi cui cessione beni ammortizzabili @69g%r"), &(d._r9)); - set_row(row++,FR("Totale vendite al fine del calcolo del pro-rata @69g%r"), &vol_aff); - set_row(row++,FR("Detraibilità @69g%r%%"), &perc_det); + const real denom = vol_aff - rev_charge; + const real num = denom - d._r1 - d._r4 - d._r5 + d._r8 - d._r7 + d._r9; + set_row(row++, FR("Numeratore pro-rata @69g%r"), &num); + set_row(row++, FR("Denominatore @69g%r"), &denom); +// set_row(row++,FR("C1 - Operazioni esenti escluse da nr. 1 a 9 e 11 art. 10 @69g%r"), &(d._r1)); +// set_row(row++,FR("C2 - Operazioni esenti di cui nr. 11 art. 10 @69g%r"), &(d._r4)); +// set_row(row++,FR("C3 - Operazioni esenti da nr. 1 a 9 art. 10 @69g%r"), &(d._r5)); +// set_row(row++,FR("@6gdi cui cessione beni ammortizzabili @69g%r"), &(d._r8)); +// set_row(row++,FR("C1A - Operazioni esenti di cui all'art.10 n. 27 quinquies @69g%r"), &(d._r7)); +// set_row(row++,FR("@6gdi cui cessione beni ammortizzabili @69g%r"), &(d._r9)); +// set_row(row++, FR("Volume d'affari @69g%r"), &vol_aff); +// set_row(row++, FR("Totale vendite al fine del calcolo del pro-rata @69g%r"), &vol_aff); + set_row(row++,FR("Detraibilità @69g%r%%"), &perc_det); set_print_zero(false); } diff --git a/src/fp/fp0500.cpp b/src/fp/fp0500.cpp index 0f126eb15..b6b6fa9e5 100644 --- a/src/fp/fp0500.cpp +++ b/src/fp/fp0500.cpp @@ -124,7 +124,7 @@ void TMancati_mask::fill() #ifdef DBG enable(DLG_OK); #else - enable(DLG_OK, filter_selected != "X" && filter_selected != "P"); + enable(DLG_OK, false); #endif // Record di controllo per eventuali elaborazioni precedenti diff --git a/src/fp/fplib01.cpp b/src/fp/fplib01.cpp index 912250199..03aaf3169 100644 --- a/src/fp/fplib01.cpp +++ b/src/fp/fplib01.cpp @@ -207,7 +207,16 @@ inline const TString& no_special(char a) } const TString& tipo_doc_sdi(const TDocumento& doc) { - return doc.get(DOC_TIPODOCSDI).full() ? doc.get(DOC_TIPODOCSDI) : doc.tipo().tipo_doc_sdi(); + static TString tipo_doc_sdi; + tipo_doc_sdi.cut(0) << doc.get(DOC_TIPODOCSDI); + + // Controlli da fare per clienti a cui si fotte la conversione e mi trovo dati sporchi nella colonna + if (tipo_doc_sdi.len() == 4 && tipo_doc_sdi.starts_with("TD")) + { + return tipo_doc_sdi; + } + + return doc.tipo().tipo_doc_sdi(); } bool is_fattura(const TRectype& doc)