diff --git a/cg/cg4301.cpp b/cg/cg4301.cpp index 1a4ec9fbe..2025c94b9 100755 --- a/cg/cg4301.cpp +++ b/cg/cg4301.cpp @@ -1325,6 +1325,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt) if (!_prorata.is_zero() && month != 13) { prorata = acquisti_iva * (_prorata / CENTO); + prorata.round(ROUND_LIRA); acquisti_iva -= prorata; } look_plm(month, codatt, TRUE); @@ -2635,7 +2636,7 @@ void TLiquidazione_app::recalc_annual(const char* att) // Per avere un risultato corretto, si deve totalizzare PIM->R3 per codice iva // e quindi effettuare lo scorporo dell'imponibile e aggiungere al relativo volume d'affari TAssoc_array corr_ann; - _CorrItem cx,*cc; + _CorrItem *cc; bool is_key; for (_pim->first(); !_pim->eof(); _pim->next()) @@ -2648,7 +2649,7 @@ void TLiquidazione_app::recalc_annual(const char* att) reg = *_pim_codreg; look_iva(codiva); look_reg(reg); tiva = _iva->get("S1"); - int biva = (int)_iva->get_long("I3"); + const bool b3 = _iva->get("S2") == "B3"; tiporeg treg = (tiporeg)_reg->get_long("I0"); const bool corrisp = _reg->get_bool("B0"); const bool simp = _reg->get_bool("B1"); @@ -2657,28 +2658,27 @@ void TLiquidazione_app::recalc_annual(const char* att) a13 = _pim->get("S0"); imp_a13 = a13.get(0); imp_ifs -= imp_af + imp_a13; // Toglie le autofatture e le op. A13 - if (corrisp) - { - imp_ifs += _pim->get_real("R5"); // Se corrisp. aggiunge le FS - is_key = corr_ann.is_key(codiva); - cx._totale = 0; - _CorrItem& ca = is_key ? (_CorrItem&) corr_ann[codiva] : cx; - ca._totale += _pim->get_real("R3"); - if (!is_key) // se non c'e' lo aggiunge - { - ca._aliquota = _iva->get_real("R0")/CENTO; // Se e' nuovo setta l'aliquota - corr_ann.add(codiva,ca); - } - } + if ( // ESCLUSI: strcmp(att,*_pim_codatt) != 0 || treg != vendita || // non vendite tipocr == 4 || // cessioni beni ammortizzabili tiva == "NS" || // non soggetti - biva == 3 || // bi tre + b3 || // bi tre simp) // sospensione di imposta continue; + if (corrisp) + { + imp_ifs += _pim->get_real("R5"); // Se corrisp. aggiunge le FS + is_key = corr_ann.is_key(codiva); + if (!is_key) // Aggiunge se non esiste + corr_ann.add(codiva, (_CorrItem*) new _CorrItem,is_key); + _CorrItem& ca = (_CorrItem&) corr_ann[codiva]; + ca._totale += _pim->get_real("R3"); + if (!is_key) // se non c'e' lo aggiunge + ca._aliquota = _iva->get_real("R0")/CENTO; // Se e' nuovo setta l'aliquota + } if (tipoatt == 1) volaff1 += imp_ifs; else @@ -2725,8 +2725,8 @@ void TLiquidazione_app::recalc_annual(const char* att) //real iv = _plm->get_real("R1"); // Iva acquisti annuale //iv -= pro_pag; iva_acq -= pro_pag; // Si sottraggano i prorata pagati - _plm->put("R1",iva_acq); // Si riscriva il tutto - _plm->rewrite(); + //_plm->put("R1",iva_acq); // Si riscriva il tutto + //_plm->rewrite(); } _pla->put("R0", vendite);