diff --git a/ca/ca3800.uml b/ca/ca3800.uml
index 1ed214c51..d1805b421 100755
--- a/ca/ca3800.uml
+++ b/ca/ca3800.uml
@@ -81,12 +81,12 @@ BEGIN
PROMPT 2 7 "Includere esercizi successivi (vita intera)"
END
-RADIOBUTTON F_TIPOSTIMA 1 24
+RADIOBUTTON F_TIPOSTIMA 1 35
BEGIN
- PROMPT 45 7 "Tipo di stima"
- FLAGS "Z"
+ PROMPT 35 7 "Tipo di stima"
ITEM "T|Tempo"
- ITEM "C|Costi"
+ ITEM "C|Costi consuntivi\Ricavi preventivi"
+ ITEM "R|Costi consuntivi\Ricavi consuntivi"
END
BOOLEAN F_FASI
@@ -98,7 +98,7 @@ END
STRING F_FASE 10
BEGIN
- PROMPT 25 8 "Fase "
+ PROMPT 2 9 "Fase "
END
GROUPBOX F_PRE0 76 5
diff --git a/ca/ca3800a.rep b/ca/ca3800a.rep
index 157a016e7..e56a68513 100755
--- a/ca/ca3800a.rep
+++ b/ca/ca3800a.rep
@@ -24,22 +24,23 @@
-
+
-
+
ANNO
-
+
-
+
TIPOSTIMA
-
+
+
diff --git a/ca/ca3883.cpp b/ca/ca3883.cpp
index 8c5eb746a..c1cf26a7b 100755
--- a/ca/ca3883.cpp
+++ b/ca/ca3883.cpp
@@ -398,28 +398,51 @@ int TPrint_saldana_recordset::estrai_saldi(const TRecordset& saldana, const int
//stampa bilancio di commessa (_tipo=8)
if (_tipo == 8)
{
- if (_tipostima == 'C' && indbil == 3)
- {
- const TImporto imp_saldo(saldana.get(SALDANA_SEZIONE).as_string()[0],
- saldana.get(SALDANA_SALDO).as_real());
- saldo = imp_saldo;
- flag |= saldo.is_zero() ? 0 : 1;
- }
- else
- saldo.reset();
+ if (_tipostima == 'R') //stampa adolfica nuova con ricavi consuntivi (spezzabili per fase)
+ {
+ const TImporto imp_saldo(saldana.get(SALDANA_SEZIONE).as_string()[0],
+ saldana.get(SALDANA_SALDO).as_real());
+ saldo.reset();
+ saldop.reset();
+ if (!imp_saldo.is_zero())
+ {
+ if (indbil == 3) //colonna costi
+ {
+ saldo = imp_saldo;
+ flag = 1;
+ }
+ else //indbil == 4; colonna ricavi
+ {
+ saldop = imp_saldo;
+ flag = 2;
+ }
+ }
+ }
+ else //programma originale con ricavi di budget totalizzati ad inizio commessa
+ {
+ if (_tipostima == 'C' && indbil == 3)
+ {
+ const TImporto imp_saldo(saldana.get(SALDANA_SEZIONE).as_string()[0],
+ saldana.get(SALDANA_SALDO).as_real());
+ saldo = imp_saldo;
+ flag |= saldo.is_zero() ? 0 : 1;
+ }
+ else
+ saldo.reset();
- if (_tipostima == 'T' || (_tipostima == 'C' && indbil == 4)) //stima Tempo o (Costi e indbil=ricavo)
- {
- 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],
- saldana.get(SALDANA_SALDOV).as_real());
- saldop = imp_saldop;
- saldop += imp_saldov;
- flag |= saldop.is_zero() ? 0 : 2;
- }
- else
- saldop.reset();
+ if (_tipostima == 'T' || (_tipostima == 'C' && indbil == 4)) //stima Tempo o (Costi e indbil=ricavo)
+ {
+ 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],
+ saldana.get(SALDANA_SALDOV).as_real());
+ saldop = imp_saldop;
+ saldop += imp_saldov;
+ flag |= saldop.is_zero() ? 0 : 2;
+ }
+ else
+ saldop.reset();
+ }
}
// stampa stima ricavi (_tipo=9)
else
@@ -781,7 +804,20 @@ const TVariant& TPrint_saldana_recordset::get(const char* column_name) const
else
if (strcmp(column_name, "TIPOSTIMA") == 0)
{
- var.set(_tipostima == 'T' ? "T" : "C");
+ switch (_tipostima)
+ {
+ case 'T':
+ var.set("T");
+ break;
+ case 'C':
+ var.set("C");
+ break;
+ case 'R':
+ var.set("R");
+ break;
+ default:
+ break;
+ }
}
else
if (strcmp(column_name, "DEPTH") == 0)