Patch level :4.0 494

Files correlati     :ca3.exe
Ricompilazione Demo : [ ]
Commento            :stampa rendiconto: nel caso una riga appartenga ad una fattura derivante da un ordine multiriga, la stampa della riga analitica corrispondente alla riga fattura deve mostrare la riga ordine originaria corrispondente per commessa e fase, non tutte le righe ordine. Adolfo!


git-svn-id: svn://10.65.10.50/trunk@14344 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca 2006-09-25 09:47:50 +00:00
parent 4deedda029
commit 8ac4f47092

@ -558,21 +558,34 @@ void TPrint_rendiconto_ca_recordset::scrive_riga(const TRectype& rmovana, const
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
if (babbo != NULL) //se trova il doc padre..
{
const TString4 babbo_codnum = babbo->get(RDOC_CODNUM);
const int anno = babbo->get_int(RDOC_ANNO);
const long ndoc = babbo->get_long(RDOC_NDOC);
rif.cut(0) << babbo_codnum << '-' << anno << '-' << ndoc;
//commessa e fase della riga documento
const TString& codcms_rigadoc = riga.codice_commessa();
const TString& codfase_rigadoc = riga.fase_commessa();
//per evitare di scrivere per ogni riga documento tutte le righe del doc babbo (in pratica..
//..per evitare di avere n righe ordine ogni riga fattura) confronta commessa e fase..
//..della riga movimento analitico con quelli la riga movimento e procede solo nel..
//..caso coincidano (richiesta Adolfica!)
const TString codcms_rmovana = rmovana.get(RMOVANA_CODCMS);
const TString codfase_rmovana = rmovana.get(RMOVANA_CODFASE);
if (riferimento.get_pos(rif) < 0) //il doc originale va aggiunto solo se non esiste gia'!
if (codcms_rigadoc == codcms_rmovana && codfase_rigadoc == codfase_rmovana)
{
const TRectype* babbo = riga.find_original_rdoc(); //cerca il doc padre della riga doc attuale
if (babbo != NULL) //se trova il doc padre..
{
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)..
const TString4 babbo_codnum = babbo->get(RDOC_CODNUM);
const int anno = babbo->get_int(RDOC_ANNO);
const long ndoc = babbo->get_long(RDOC_NDOC);
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)
@ -670,20 +683,6 @@ F=IMF*/
tmpcurr.put("NRIGA", rmovana.get(RMOVANA_NUMRIG)); //numero riga
tmpcurr.put("DESCRIGA", rmovana.get(RMOVANA_DESCR)); //descrizione rmovana
//La procedura seguente non avra' piu' senso dopo l'eliminazione degli stati!!***
/*int err = _tmp->write(); // aggiunge i record al file temporaneo
//procedura di controllo della scrittura su file! se il documento è già stato contbilizzato..
//..sul file temporaneo esiste già un record con la chiave del record,dovuto al doc,..
//..che deve essere qui aggiunto!significa che l'intervallo di stati della numerazione selezionato..
//..nello sheet è errato (probabilmente lo stato finale è troppo alto)
if (err != NOERR)
{
TString msg;
msg.format(FR("Errore di scrittura %d sul file temporaneo.\n"), err);
msg << "Documento " << codnum_desc << " " << descr << " gia' contabilizzato.\nControllare lo stato della numerazione.";
error_box (msg);
}*/
if (should_delete)
delete newdoc;