From a4539989741c2e548a904253bbe84abe6afa9c01 Mon Sep 17 00:00:00 2001 From: guy Date: Wed, 13 Jan 2010 16:19:06 +0000 Subject: [PATCH] Patch level : 10.0 Files correlati : ve0 Ricompilazione Demo : [ ] Commento : Rivisto calcolo peso CONAI con esenzione git-svn-id: svn://10.65.10.50/trunk@19919 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ve/velib03.cpp | 56 ++++++++++++++++++++++++++++++++++---------------- 1 file changed, 38 insertions(+), 18 deletions(-) diff --git a/ve/velib03.cpp b/ve/velib03.cpp index a82dba9f3..b066cf2ad 100755 --- a/ve/velib03.cpp +++ b/ve/velib03.cpp @@ -2759,19 +2759,32 @@ void TDocumento::update_spese_aut(TString_array & spese_aut, bool preserve_old, // Calcola il peso in Kg degli imballaggi di una data categoria CONAI real TDocumento::calc_conai_qta(TCONAI_class type) -{ - ofstream conaicaz("conai.txt"); - +{ real qta; - FOR_EACH_PHYSICAL_RDOC(*this, i, r) if (r->is_merce() || r->is_omaggio()) - { - const real row_qta = r->calc_conai_qta(type); - if (!row_qta.is_zero()) - { - conaicaz << "Riga(" << i << ")=" << row_qta << endl; - qta += row_qta; + + if (type == CONAI_CAR) + { + ofstream conaicaz("conai.txt"); + FOR_EACH_PHYSICAL_RDOC(*this, i, r) if (r->is_merce() || r->is_omaggio()) + { + const real row_qta = r->calc_conai_qta(type); + if (!row_qta.is_zero()) + { + conaicaz << "Riga(" << i << ")=" << row_qta << endl; + qta += row_qta; + } } } + else + { + FOR_EACH_PHYSICAL_RDOC(*this, i, r) if (r->is_merce() || r->is_omaggio()) + { + const real row_qta = r->calc_conai_qta(type); + if (!row_qta.is_zero()) + qta += row_qta; + } + } + return qta; } @@ -2845,15 +2858,22 @@ void TDocumento::update_conai() FOR_EACH_CONFIGURED_CONAI_CLASS(ct) if (!updated[ct]) { const real perc_esenz = cfven.get_real(__conai_cf_names[ct]); - const bool cli_esente = (esponi_esenti) && (perc_esenz == CENTO); - real qta = calc_conai_qta(ct); + const bool cli_esente = (esponi_esenti) && (perc_esenz >= CENTO); + const real qta_lorda = calc_conai_qta(ct); + real qta = qta_lorda; + if (!cli_esente && !qta_lorda.is_zero() && !perc_esenz.is_zero()) + { + qta = qta_lorda * (CENTO - perc_esenz) / CENTO; // More precise + qta.round(3); + } - ofstream conaicaz("conai.txt", ios::app); - conaicaz << "Lordo=" << qta << endl; - conaicaz << "Esenzione=" << perc_esenz << endl; - if (!cli_esente && !qta.is_zero() && !perc_esenz.is_zero()) - qta = qta * (CENTO - perc_esenz) / CENTO; // More precise - conaicaz << "Netto=" << qta << endl; + if (ct == CONAI_CAR) + { + ofstream conaicaz("conai.txt", ios::app); + conaicaz << "Lordo=" << qta_lorda << endl + << "Esenzione=" << perc_esenz << endl + << "Netto=" << qta << endl; + } if (qta > ZERO) {