From 99ce8c08e41465935663ee7acda8c909166d3b4f Mon Sep 17 00:00:00 2001 From: alex Date: Wed, 10 Dec 1997 12:18:52 +0000 Subject: [PATCH] Corretto errore aga0194 git-svn-id: svn://10.65.10.50/trunk@5720 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ve/velib03.cpp | 54 ++++++++++++++++++++++++++++++++------------------ 1 file changed, 35 insertions(+), 19 deletions(-) diff --git a/ve/velib03.cpp b/ve/velib03.cpp index 8a4f2fd8f..3bb749b75 100755 --- a/ve/velib03.cpp +++ b/ve/velib03.cpp @@ -460,7 +460,7 @@ real TDocumento::bolli(real & imp, int ndec, TTipo_importo t) const real imp_orig = imposta(); real sp_orig = spese(); - for (int j = 0; j < 5 && tot_bolli != old_bolli; j++) + for (int j = 0; j < 5 && tot_bolli+iva_bolli != old_bolli; j++) { old_bolli = tot_bolli + iva_bolli; const real imposte = imp_orig * cambio + iva_bolli; @@ -1382,27 +1382,43 @@ void TDocumento::update_tabella_iva() tot_doc += imposta; } } - - TRiepilogo_iva * ri = (TRiepilogo_iva *) table.objptr(codiva_spese()); - if (ri == NULL) - ri = new TRiepilogo_iva(TIVA(codiva_spese())); - + real val = spese_incasso(tot_doc, ALL_DECIMALS, _netto); - ri->imp_spese() += val; - tot_doc += val; - val = spese_incasso(tot_doc, ALL_DECIMALS, _imposta); - ri->iva_spese() += val; - tot_doc += val; + TString16 codiva(codiva_spese()); + TRiepilogo_iva * ri = (TRiepilogo_iva *) table.objptr(codiva); + + if (val != ZERO) + { + if (ri == NULL) + { + ri = new TRiepilogo_iva(TIVA(codiva)); + table.add(codiva, ri); + } + + ri->imp_spese() += val; + tot_doc += val; + val = spese_incasso(tot_doc, ALL_DECIMALS, _imposta); + ri->iva_spese() += val; + tot_doc += val; + } - ri = (TRiepilogo_iva *) table.objptr(codiva_bolli()); - if (ri == NULL) - ri = new TRiepilogo_iva(TIVA(codiva_bolli())); val = bolli(tot_doc, ALL_DECIMALS, _netto); - ri->imp_spese() += val; - tot_doc += val; - val = bolli(tot_doc, ALL_DECIMALS, _imposta); - ri->iva_spese() += val; - tot_doc += val; + if (val != ZERO) + { + codiva = codiva_bolli(); + ri = (TRiepilogo_iva *) table.objptr(codiva); + if (ri == NULL) + { + ri = new TRiepilogo_iva(TIVA(codiva)); + table.add(codiva, ri); + } + + ri->imp_spese() += val; + tot_doc += val; + val = bolli(tot_doc, ALL_DECIMALS, _imposta); + ri->iva_spese() += val; + tot_doc += val; + } } real TDocumento::imposta(bool spese, int ndec) const