diff --git a/ca/ca3700.cpp b/ca/ca3700.cpp index e681351b4..9a82ef9f0 100755 --- a/ca/ca3700.cpp +++ b/ca/ca3700.cpp @@ -538,10 +538,11 @@ void TPrint_rendiconto_ca_recordset::scrive_riga(const TRectype& rmovana, const const int tipo_documento = newdoc->tipo_riclassificato(); int tipo_babbo = TTipo_documento::_altro; - TString80 riferimento; //stringa su cui scrivere gli estremi del doc padre (se lo trova!) + TToken_string riferimento(20, '\n'); //tokenstring su cui scrivere gli estremi dei docs padri (se li trova!) + TString80 rif; //stringa di lavoro su cui viene scritto un doc originale const int rows = newdoc->physical_rows(); //righe del doc attuale - for (int i = 1; riferimento.empty() && i <= rows; i++) + for (int i = 1; i <= rows; i++) //scandisce tutte le righe del doc.. { const TRiga_documento& riga = (*newdoc)[i]; const TRectype* babbo = riga.find_original_rdoc(); //cerca il doc padre della riga doc attuale @@ -550,12 +551,19 @@ void TPrint_rendiconto_ca_recordset::scrive_riga(const TRectype& rmovana, const const TString4 babbo_codnum = babbo->get(RDOC_CODNUM); const int anno = babbo->get_int(RDOC_ANNO); const long ndoc = babbo->get_long(RDOC_NDOC); - riferimento << babbo_codnum << '-' << anno << '-' << ndoc; - TDocumento doc_babbo('D', anno, babbo_codnum, ndoc); //crea una copia del doc padre per prendere.. - tipo_babbo = doc_babbo.tipo_riclassificato(); //..il tipo documento.. + rif.cut(0) << babbo_codnum << '-' << anno << '-' << ndoc; + + if (riferimento.get_pos(rif) < 0) //il doc originale va aggiunto solo se non esiste gia'! + { + riferimento.add(rif); + TDocumento doc_babbo('D', anno, babbo_codnum, ndoc); //crea una copia del doc padre per prendere.. + tipo_babbo = doc_babbo.tipo_riclassificato(); //..il tipo documento.. + } } //if (babbo != NULL).. } //for (int i.. + tmpcurr.put("DOCORIG", riferimento); //documento di riferimento (mitologico documento originale) + /*[Tipo documento] //schema divino per destinare gli importi nei campi corretti O=I** B=IM* @@ -592,7 +600,7 @@ F=IMF*/ default: break; } - tmpcurr.put("DOCORIG", riferimento); + } //if(newdoc != NULL) else //movimenti puri di analitica (no documento di origine!) { @@ -921,7 +929,7 @@ void TPrint_rendiconto_ca_recordset::crea_trr(const TFilename& trr) const of << "DATADOCRIF|5|8|0|Data documento riferimento" << endl; of << "DESC|1|50|0|Descrizione movimento o documento" << endl; of << "DESCRIGA|1|50|0|Descrizione riga movimento o documento" << endl; - of << "DOCORIG|1|20|0|Riferimento ordine/bolla" << endl; + of << "DOCORIG|11|10|0|Riferimenti ordine/bolla" << endl; of << "FATTURATO|4|18|5|Fatturato" << endl; of << "MATURATO|4|18|5|Maturato" << endl; of << "IMPEGNATO|4|18|5|Impegnato" << endl; diff --git a/ca/ca3700a.rep b/ca/ca3700a.rep index f9228dd58..c99e05ebf 100755 --- a/ca/ca3700a.rep +++ b/ca/ca3700a.rep @@ -1,11 +1,11 @@ - + Rendiconto CA
- + #SYSTEM.RAGSOC @@ -190,48 +190,48 @@ MESSAGE RESET,F2.103
HIDDEN!='X' - + NUMREG - + NUMREGCG - + DATA - + NUMDOCRIF - + DATADOCRIF - + DESC - + NRIGA - + DESCRIGA - + DOCORIG - + FATTURATO MESSAGE ADD,F2.101 - + MATURATO MESSAGE ADD,F2.102 - + IMPEGNATO MESSAGE ADD,F2.103 -