Patch level : 10.0 294

Files correlati     : lv2.exe ve0.exe
Ricompilazione Demo : [ ]
Commento            :

Bug 0001270


sulla fattura vengono stampati i riferimenti delle bolle, ma ogni riferimentousa 2 righe e tutte le volte ripete l'intestazione "bolle di vendita n.'
quando consegno un cliente 2 volte alla settimana in un mese sono minimo 8 bolle e la prima pagina delle fatture viene totalmente occupata dai riferimenti bolla . Se ci fosse il modo di accorpare , anche solo non ripetendo tutte le volte l'intestazione

Per avere riferimenti pi' corti bisogna sputare riferimetni sistetici sull'elaborazione


git-svn-id: svn://10.65.10.50/trunk@18836 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2009-05-08 14:13:38 +00:00
parent 93296f9d24
commit c5f7efd37c
2 changed files with 66 additions and 26 deletions

View File

@ -184,6 +184,7 @@ public:
bool usa_doc_rif() const { return get_bool("B8"); }
bool usa_data_consegna() const { return get_bool("B9"); }
bool kill_descrizione_estesa() const { return get_bool("B10"); }
bool pack_rif() const { return get_bool("B15"); }
bool calcola_scarti() const { return get_bool("B11"); }
bool reload_prices() { return get_bool("B13"); }
const TString & num_riferimenti_in() const { return get("S11"); }

View File

@ -138,6 +138,7 @@ bool TFatturazione_bolle::raggruppa(TDocumento& doc_in, TDocumento& doc_out)
const TDate dcons = doc_in.get_date(DOC_DATACONS);
const TDate ddoc = doc_out.get_date(DOC_DATADOC);
const bool usa_dcons = usa_data_consegna();
const int doc_out_rows = doc_out.physical_rows();
if (usa_dcons)
{
@ -178,7 +179,9 @@ bool TFatturazione_bolle::raggruppa(TDocumento& doc_in, TDocumento& doc_out)
}
// Determina ed eventualmente crea la riga di riferimento
const int riga_rif = riferimenti_in_testa() ? 1 : doc_out.physical_rows()+1;
const bool rif_testa = riferimenti_in_testa();
const bool rif_packed = pack_rif();
const int riga_rif = rif_testa ? 1 : doc_out.physical_rows()+1;
if (riga_rif > doc_out.physical_rows())
{
TRiga_documento& rout = doc_out.new_row();
@ -189,40 +192,76 @@ bool TFatturazione_bolle::raggruppa(TDocumento& doc_in, TDocumento& doc_out)
// Costruisce la stringa di riferimento
TString riferimento;
doc_in.riferimento(riferimento);
if (riferimento.empty())
riferimento = doc_in.tipo().descrizione();
if (!rif_testa || !rif_packed || doc_out_rows == 0)
{
doc_in.riferimento(riferimento);
if (riferimento.empty())
riferimento = doc_in.tipo().descrizione();
if (riferimento.full())
riferimento << ' ';
}
if (usa_doc_rif() && doc_in.get(DOC_NUMDOCRIF).not_empty())
{
riferimento << " n. " << doc_in.get(DOC_NUMDOCRIF);
riferimento << " del " << doc_in.get(DOC_DATADOCRIF);
riferimento << "n. " << doc_in.get(DOC_NUMDOCRIF);
if (rif_packed)
riferimento << ' ' << doc_in.get_date(DOC_DATADOCRIF).string(brief);
else
riferimento << " del " << doc_in.get(DOC_DATADOCRIF);
}
else
{
riferimento << " n. " << doc_in.numero();
riferimento << " del " << doc_in.data().string();
if (rif_packed)
riferimento << ' ' << doc_in.data().string(brief);
else
riferimento << " del " << doc_in.data().string();
}
// Setta la descrizione se vuota
if (rout.get(RDOC_DESCR).empty())
rout.put(RDOC_DESCR, riferimento);
else
{
// Altrimenti aggiungi il riferimento al memo
TString memo(1024);
memo = rout.get(RDOC_DESCEST);
if (memo.empty())
{
TString80 rif(rout.get(RDOC_DESCR));
rif << '\n';
rout.put(RDOC_DESCR, rif);
rout.put(RDOC_DESCLUNGA, "X");
}
else
memo << '\n';
memo << riferimento;
rout.put(RDOC_DESCEST, memo);
}
if (rif_packed)
{
TString memo(1024);
memo = rout.get(RDOC_DESCR);
if (rout.get_bool(RDOC_DESCLUNGA))
memo << rout.get(RDOC_DESCEST);
if (memo.full())
memo << " - ";
memo << riferimento;
if (memo.len() < rout.length(RDOC_DESCR))
rout.put(RDOC_DESCR, memo);
else
{
rout.put(RDOC_DESCR, memo.left(rout.length(RDOC_DESCR)));
rout.put(RDOC_DESCEST, memo.mid(rout.length(RDOC_DESCR)));
rout.put(RDOC_DESCLUNGA, "X");
}
}
else
{
if (rout.get(RDOC_DESCR).empty())
rout.put(RDOC_DESCR, riferimento);
else
{
// Altrimenti aggiungi il riferimento al memo
TString memo(1024);
memo = rout.get(RDOC_DESCEST);
if (memo.empty())
{
TString80 rif(rout.get(RDOC_DESCR));
rif << '\n';
rout.put(RDOC_DESCR, rif);
rout.put(RDOC_DESCLUNGA, "X");
}
else
memo << '\n';
memo << riferimento;
rout.put(RDOC_DESCEST, memo);
}
}
}
const bool ignora_desc = ignora_descrizioni();