diff --git a/cg/cg4300.h b/cg/cg4300.h index 7caefe48e..9e9f81c82 100755 --- a/cg/cg4300.h +++ b/cg/cg4300.h @@ -343,7 +343,7 @@ public: // ricalcolo progressivi mese bool update_firm (int month, bool recalc = TRUE); bool update_att (int month, const char* codatt, bool recalc = TRUE); - void zero_firm (int month); // TBI azzera i rimborsi e i LIM + void zero_firm (int month); void zero_att (int month, const char* codatt); void zero_annual (int month); void recalc_att (int month, const char* codatt); diff --git a/cg/cg4301.cpp b/cg/cg4301.cpp index 3ee8ea858..f13913894 100755 --- a/cg/cg4301.cpp +++ b/cg/cg4301.cpp @@ -502,11 +502,12 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt) /* * Tipo documento da eliminare (Scudler 1994) - * Trattasi per lo piu' di non incassati + * Trattasi per lo piu' di non incassati + * Da oggi vengono sommati nei real di S2 in pim + * assieme alle FS per stampa registri */ - if (tipodoc == "SN" || tipodoc == "CN" || tipodoc == "RN" || - tipodoc == "IN" || tipodoc == "PG") - continue; + bool noninc = (tipodoc == "SN" || tipodoc == "CN" || tipodoc == "RN" || + tipodoc == "IN" || tipodoc == "PG"); /* * check date: se si calcola l'acconto, solo da 1/12 a 20/12 @@ -530,7 +531,9 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt) real vsimp_imp = 0.0; // imponibile vendite sosp. imposta real vsimp_iva = 0.0; // imposta vendite sosp. imposta real rit_imp = 0.0; // imponibile fatture in ritardo - real rit_iva = 0.0; // IVA fatture in ritardo + real rit_iva = 0.0; // imposta fatture in ritardo + real nin_imp = 0.0; // imponibile non incassati + real nin_iva = 0.0; // imposta non incassati TString codiva = _iva->get("CODTAB"); TString tipoiva = _iva->get("S1"); @@ -592,8 +595,12 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt) continue; } - - if (sosp_imp) // sospensione di imposta + if (noninc) // non incassati: non devono entrare in nessun altro calcolo + { + nin_imp = imponibile; + nin_iva = imposta; + } + else if (sosp_imp) // sospensione di imposta { if (tipomov == vendita) { @@ -679,15 +686,11 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt) spgen_iva += imposta; } - // operazioni per calcolo rimborso infracazzuale - // Scudler 1995 - // La breve estate vissuta dal metodo del 51% renderebbe - // ora superflua la tabella rimborsi, ma, come diceva - // Garcia Lorca, me ne sbatto il culo e se non ti piace - // vatti a far chiavare da un coyote - // Non mi piaceva, il coyote non era intenzionato, e - // quindi l'ho tolta, anche perche' non funzionava piu' - // per i ventilati e per gli 'aggiustati' dopo il calcolo + // operazioni per calcolo rimborso infraanale + // Scudler 1995 e molti dopo di lei + // La breve estate vissuta dal metodo del 51% rende + // oramai superflua la tabella rimborsi, eliminata + // senza entusiasmo ed interrogandomi sul senso della vita if (ivarimb) { bool ok = _isagricolo ? tipoagr == 2 : FALSE; @@ -843,7 +846,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt) /* * se ign == TRUE non bisogna neppure PROGRESSIVARLI */ - bool ign = sosp_imp || (fattrit && month != 13); + bool ign = sosp_imp || (fattrit && month != 13) || noninc; /* * se liq == FALSE gli importi non contano ai fini @@ -892,11 +895,17 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt) real rti(fr.get(0)); real rtv(fr.get(1)); - /* la stramadonna dei corrispettivi gia' scorporati */ + /* + * la stramadonna dei corrispettivi gia' scorporati + * Gli si aggiungono i non incassati, sperando in bene + */ TToken_string cs(_pim->get("S2")); real csi(cs.get(0)); - real csv(cs.get(1)); - + real csv(cs.get(1)); + /* incrociamm'e dituozz' */ + csi += nin_imp; + csv += nin_iva; + rti += rit_imp; rtv += rit_iva; @@ -1054,7 +1063,8 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt) _pim->put("S1",fr); // corrispettivi gia' scorporati; anche questi servono per - // non cannare la stampa dei registri + // non cannare la stampa dei registri; contengono anche + // tutti i non incassati (vedi definizione di bool nonimp) cs.add(csi.string(), 0); cs.add(csv.string(), 1); _pim->put("S2",cs); @@ -1148,10 +1158,10 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt) // che ci siano due o piu' attivita' e siano tutte // agenzie di viaggio real perc_r = (acq_misCEE * CENTO)/(acq_misCEE + acq_misnoCEE); - real ivm = (corr_misCEE * perc_r)/CENTO; ivm.round(ROUND_LIRA); - real tc = (corr_CEE + ivm); - real ta = (acq_CEE + acq_misCEE); - real bi = tc - ta - credito_costo_prec(month); + real ivm = (corr_misCEE * perc_r)/CENTO; ivm.round(ROUND_LIRA); + real tc = (corr_CEE + ivm); + real ta = (acq_CEE + acq_misCEE); + real bi = tc - ta - credito_costo_prec(month); if (bi.sign() > 0) { @@ -1619,7 +1629,8 @@ void TLiquidazione_app::write_liq(int month, const char* codatts) /* * Interessi dovuti solo da trimestrali in periodica, * Era anche non benzinari, smentito da Cinzia (MI0853); - * Ora gestito esplicitamente nei parametri ditts + * Ora gestito esplicitamente nei parametri ditta, forzato + * FALSE per ditte mensili e liq. annuale */ if (_isintr && month < 13) { diff --git a/cg/cg5500.cpp b/cg/cg5500.cpp index 70fd3b8be..4d81330fb 100755 --- a/cg/cg5500.cpp +++ b/cg/cg5500.cpp @@ -768,8 +768,7 @@ void Visliq_app::recalc_liq_data(TViswin* vsw, real& rimb, real& rett, real& ver // calcola vecchio risultato: se e' diverso da R0 ci sono cazzi strani // e invalidiamo B0 cosi' impara - real risul = iva_ven - iva_acq - udt + rmb - vri + cgp + rtt - - act - cre_pre + deb_pre; + real risul = iva_ven - iva_acq - udt + rmb + cgp - vri + rtt - act - cre_pre + deb_pre; if (risul != ris) { @@ -792,7 +791,7 @@ void Visliq_app::recalc_liq_data(TViswin* vsw, real& rimb, real& rett, real& ver real intr(0.0); - if (!itt.is_zero()) + if (!itt.is_zero() && risul.sign() > 0) { // calcola interesse intr = risul * (itt/real(100.0));