Patch level :4.0 656

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :sistemata stampa stima ricavi di competenza


git-svn-id: svn://10.65.10.50/trunk@15062 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca 2007-03-15 14:32:27 +00:00
parent c01719588e
commit 6a3392f645

View File

@ -391,6 +391,7 @@ int TPrint_saldana_recordset::estrai_saldi(const TRecordset& saldana, const int
TImporto& saldo, TImporto& saldop) const TImporto& saldo, TImporto& saldop) const
{ {
int flag = 0; int flag = 0;
//stampa bilancio di commessa (_tipo=8)
if (_tipo == 8) if (_tipo == 8)
{ {
if (_tipostima == 'C' && indbil == 3) if (_tipostima == 'C' && indbil == 3)
@ -416,6 +417,7 @@ int TPrint_saldana_recordset::estrai_saldi(const TRecordset& saldana, const int
else else
saldop.reset(); saldop.reset();
} }
// stampa stima ricavi (_tipo=9)
else else
{ {
const TImporto imp_saldo(saldana.get(SALDANA_SEZIONE).as_string()[0], const TImporto imp_saldo(saldana.get(SALDANA_SEZIONE).as_string()[0],
@ -430,6 +432,12 @@ int TPrint_saldana_recordset::estrai_saldi(const TRecordset& saldana, const int
saldop = imp_saldop; saldop = imp_saldop;
saldop += imp_saldov; saldop += imp_saldov;
flag |= saldop.is_zero() ? 0 : 2; flag |= saldop.is_zero() ? 0 : 2;
/* correzione per ottenere la sezione in base all'indicatore di bilancio
inutile per ora...
const char sezione_positiva = (indbil == 2 || indbil == 3) ? 'D' : 'A';
saldo.normalize(sezione_positiva);
saldop.normalize(sezione_positiva);*/
} }
return flag; return flag;
} }
@ -458,11 +466,13 @@ TAssoc_array& TPrint_saldana_recordset::get_row(TAssoc_array& cms, const char* c
//senza questa inizializzazione, nel caso trovasse campi nulli (in realta' 0), il bastardo.. //senza questa inizializzazione, nel caso trovasse campi nulli (in realta' 0), il bastardo..
//..anziche' considerarli 0 ci mette l'ultimo valore != che ha in memoria nella stessa posizione.. //..anziche' considerarli 0 ci mette l'ultimo valore != che ha in memoria nella stessa posizione..
//..facendo sballare tutti i conti! //..facendo sballare tutti i conti!
//bilancio commessa (_tipo=8)
if (_tipo == 8) if (_tipo == 8)
{ {
riga_array->add("RICAVI", EMPTY_STRING); riga_array->add("RICAVI", EMPTY_STRING);
riga_array->add("COSTI", EMPTY_STRING); riga_array->add("COSTI", EMPTY_STRING);
} }
//stima ricavi (_tipo=9)
else else
{ {
riga_array->add("COS_BDG", EMPTY_STRING); riga_array->add("COS_BDG", EMPTY_STRING);
@ -576,13 +586,14 @@ void TPrint_saldana_recordset::incrementa_importo(TAssoc_array& riga_array,
*str_imp = imp.valore().string(); *str_imp = imp.valore().string();
} }
//for ca3900 only! //metodo usato solo per la stima ricavi (_tipo=9, ca3900)
void TPrint_saldana_recordset::aggiorna_importi(TAssoc_array& riga_array, void TPrint_saldana_recordset::aggiorna_importi(TAssoc_array& riga_array,
const int indbil, const TRecordset& saldana, const bool inverti) const const int indbil, const TRecordset& saldana, const bool inverti) const
{ {
TString8 livello; TString8 livello;
TImporto imp_saldo, imp_saldop; TImporto imp_saldo, imp_saldop;
estrai_saldi(saldana, indbil, imp_saldo, imp_saldop); estrai_saldi(saldana, indbil, imp_saldo, imp_saldop);
//saldi normali:Maturato //saldi normali:Maturato
@ -661,6 +672,7 @@ void TPrint_saldana_recordset::requery()
indice++; indice++;
TString80 chiave = codcms; TString80 chiave = codcms;
//selezione fasi solo su bilancio commessa (_tipo=8)
if (_tipo == 8 && _use_fasi) if (_tipo == 8 && _use_fasi)
chiave << '|' << fase; chiave << '|' << fase;
@ -671,6 +683,7 @@ void TPrint_saldana_recordset::requery()
const char* gruppo = indbil == 3 ? "COSTI" : "RICAVI"; const char* gruppo = indbil == 3 ? "COSTI" : "RICAVI";
TString80 conto; TString80 conto;
parse_bill(conto_anale, conto); parse_bill(conto_anale, conto);
//bilancio di commessa (_tipo=8)
if (_tipo == 8) if (_tipo == 8)
{ {
TAssoc_array& riga_array = get_row(cms[indice], chiave, indice, codcms, fase, TAssoc_array& riga_array = get_row(cms[indice], chiave, indice, codcms, fase,
@ -679,6 +692,7 @@ void TPrint_saldana_recordset::requery()
aggiorna_importo(riga_array, gruppo, indbil, saldana); aggiorna_importo(riga_array, gruppo, indbil, saldana);
aggiorna_importo(riga_array, conto, indbil, saldana); aggiorna_importo(riga_array, conto, indbil, saldana);
} }
//stima ricavi (_tipo=9)
else else
{ {
TAssoc_array& riga_array = get_row(cms[indice], chiave, indice, codcms, EMPTY_STRING, TAssoc_array& riga_array = get_row(cms[indice], chiave, indice, codcms, EMPTY_STRING,