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_doc_rif() const { return get_bool("B8"); }
bool usa_data_consegna() const { return get_bool("B9"); } bool usa_data_consegna() const { return get_bool("B9"); }
bool kill_descrizione_estesa() const { return get_bool("B10"); } 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 calcola_scarti() const { return get_bool("B11"); }
bool reload_prices() { return get_bool("B13"); } bool reload_prices() { return get_bool("B13"); }
const TString & num_riferimenti_in() const { return get("S11"); } 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 dcons = doc_in.get_date(DOC_DATACONS);
const TDate ddoc = doc_out.get_date(DOC_DATADOC); const TDate ddoc = doc_out.get_date(DOC_DATADOC);
const bool usa_dcons = usa_data_consegna(); const bool usa_dcons = usa_data_consegna();
const int doc_out_rows = doc_out.physical_rows();
if (usa_dcons) 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 // 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()) if (riga_rif > doc_out.physical_rows())
{ {
TRiga_documento& rout = doc_out.new_row(); 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 // Costruisce la stringa di riferimento
TString riferimento; TString riferimento;
doc_in.riferimento(riferimento);
if (riferimento.empty()) if (!rif_testa || !rif_packed || doc_out_rows == 0)
riferimento = doc_in.tipo().descrizione(); {
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()) if (usa_doc_rif() && doc_in.get(DOC_NUMDOCRIF).not_empty())
{ {
riferimento << " n. " << doc_in.get(DOC_NUMDOCRIF); riferimento << "n. " << doc_in.get(DOC_NUMDOCRIF);
riferimento << " del " << doc_in.get(DOC_DATADOCRIF); if (rif_packed)
riferimento << ' ' << doc_in.get_date(DOC_DATADOCRIF).string(brief);
else
riferimento << " del " << doc_in.get(DOC_DATADOCRIF);
} }
else else
{ {
riferimento << " n. " << doc_in.numero(); 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 // Setta la descrizione se vuota
if (rout.get(RDOC_DESCR).empty()) if (rif_packed)
rout.put(RDOC_DESCR, riferimento); {
else TString memo(1024);
{
// Altrimenti aggiungi il riferimento al memo memo = rout.get(RDOC_DESCR);
TString memo(1024); if (rout.get_bool(RDOC_DESCLUNGA))
memo = rout.get(RDOC_DESCEST); memo << rout.get(RDOC_DESCEST);
if (memo.empty()) if (memo.full())
{ memo << " - ";
TString80 rif(rout.get(RDOC_DESCR)); memo << riferimento;
rif << '\n';
rout.put(RDOC_DESCR, rif); if (memo.len() < rout.length(RDOC_DESCR))
rout.put(RDOC_DESCLUNGA, "X"); rout.put(RDOC_DESCR, memo);
} else
else {
memo << '\n'; rout.put(RDOC_DESCR, memo.left(rout.length(RDOC_DESCR)));
memo << riferimento; rout.put(RDOC_DESCEST, memo.mid(rout.length(RDOC_DESCR)));
rout.put(RDOC_DESCEST, memo); 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(); const bool ignora_desc = ignora_descrizioni();