From 450707883d57057100a0ec8af98d7ce1701e8511 Mon Sep 17 00:00:00 2001 From: luca Date: Thu, 13 Jul 2006 14:57:52 +0000 Subject: [PATCH] Patch level :4.0 Files correlati : Ricompilazione Demo : [ ] Commento :aggiunta la percentuale di avanzamento della commessa git-svn-id: svn://10.65.10.50/trunk@14185 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ca/ca3800.cpp | 22 +++++++++++++++++++++- ca/ca3800a.rep | 39 ++++++++++++++++++++------------------- 2 files changed, 41 insertions(+), 20 deletions(-) diff --git a/ca/ca3800.cpp b/ca/ca3800.cpp index d1a7fa618..f462e733e 100755 --- a/ca/ca3800.cpp +++ b/ca/ca3800.cpp @@ -304,7 +304,7 @@ void TPrint_bilancio_cms_recordset::aggiorna_importo(TAssoc_array* riga_array, const char sezione = indbil == 3 ? 'D' : 'A'; TImporto imp(sezione, real(*str_imp)); -/* +/****questo e' il pezzo corretto const TImporto imp_saldop(saldana.get(SALDANA_SEZIONEP).as_string()[0], saldana.get(SALDANA_SALDOP).as_real()); const TImporto imp_saldov(saldana.get(SALDANA_SEZIONEV).as_string()[0], @@ -313,6 +313,7 @@ void TPrint_bilancio_cms_recordset::aggiorna_importo(TAssoc_array* riga_array, imp += imp_saldop; imp += imp_saldov; */ +//***questo serve per stampare qualcosa quando non ci sono saldop e saldov const TImporto imp_saldo(saldana.get(SALDANA_SEZIONE).as_string()[0], saldana.get(SALDANA_SALDO).as_real()); imp += imp_saldo; @@ -369,6 +370,23 @@ void TPrint_bilancio_cms_recordset::requery() if (dataini >= datainiesc) indice++; + //Calcola lo stato di avanzamento della commessa + real avanzamento; + //Si prende SOLO la Fine Esercizio come riferimento di avanzamento (in realta' si.. + //..potrebbe usare today al posto di datafinesc se si volesse la situazione ad oggi,.. + //..ma i calcoli degli importi sarebbero da rivedere). Quindi: + //se la commessa finisce prima della fine dell'esercizio + if (datafine < datafinesc) + avanzamento = CENTO; + //se invece prosegue anche dopo la fine dell'esercizio... + else + { + const long time_gone = datafinesc - dataini; + const long durata_cms = datafine - dataini; + avanzamento = ((real)(time_gone * CENTO) / durata_cms); + avanzamento.round(0); + } + TString80 chiave = codcms; if (_use_fasi) chiave << '|' << fase; @@ -387,6 +405,8 @@ void TPrint_bilancio_cms_recordset::requery() riga_array->add("CODCMS", codcms); riga_array->add("FASE", fase); riga_array->add("DESCRIZ", rec_commesse.get(COMMESSE_DESCRIZ)); + const TString str_avanz = avanzamento.string(); + riga_array->add("AVANZAMENTO", str_avanz); //aggiunge la riga all'array-ino cms[indice].add(chiave, riga_array); diff --git a/ca/ca3800a.rep b/ca/ca3800a.rep index c65fb949a..1f3fbb60e 100755 --- a/ca/ca3800a.rep +++ b/ca/ca3800a.rep @@ -20,29 +20,29 @@ - + + -
+
- + - + ANNO - +
-
+
LEVEL C; 2 - + LEVEL @@ -52,24 +52,23 @@
  • - + ANNO - -
  • -
    +
    LEVEL - - + LEVEL @@ -79,8 +78,8 @@
  • - -