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 @@
-
+
+
-
+
-
+
LEVEL C; 2
-
+
LEVEL
@@ -52,24 +52,23 @@
-
+
ANNO
-
-
+
+
LEVEL
MESSAGE COPY,F2.101
-
+
ANNO
MESSAGE COPY,F2.102
-
+
LEVEL
-
-
+
LEVEL
@@ -79,8 +78,8 @@
-
-
+
+
LEVEL
MESSAGE COPY,F3.101
@@ -97,7 +96,7 @@
FASE
- 100
+ AVANZAMENTO
#RIC
@@ -123,7 +122,9 @@
#COS
-
+
+ #RIC-#COS
+