Patch level : 10.0 285

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :

Riportata la versione 3.2 patch 1358


git-svn-id: svn://10.65.10.50/trunk@18725 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2009-04-17 08:18:32 +00:00
parent 78576bdc46
commit 5a901414d9
4 changed files with 56 additions and 21 deletions

View File

@ -926,8 +926,8 @@ public:
TCond_vendita & condv() const;
void occ2mask();
void cli2mask();
void doc2mask(bool reload_clifo = true);
void cli2mask(bool force_load = false);
void doc2mask(bool reload_clifo = true, bool force_load = false);
void mask2doc();
void update_giacenza();

View File

@ -182,7 +182,8 @@ public:
bool usa_data_consegna() const { return get_bool("B9"); }
bool kill_descrizione_estesa() const { return get_bool("B10"); }
bool calcola_scarti() const { return get_bool("B11"); }
const TString & num_riferimenti_in() const { return get("S11"); }
bool reload_prices() { return get_bool("B13"); }
const TString & num_riferimenti_in() const { return get("S11"); }
int intestazioni_sheet() const { return get_int("I1"); }
@ -227,7 +228,6 @@ protected:
public:
bool nettifica() { return get_bool("B12"); }
bool reload_prices() { return get_bool("B13"); }
virtual bool elabora(TLista_documenti& doc_in, TLista_documenti& doc_out,
const TDate& data_elab, bool interattivo = false);
@ -251,6 +251,7 @@ protected:
virtual void add_rows(TRiga_documento & rout, TRiga_documento & rin) { rout += rin; }
virtual void create_row(TDocumento& doc_out, const TRiga_documento & rin);
virtual const TString & get_tipo_out(const TDocumento & doc_out) { return get("S8"); }
bool change_clifo() { return get_bool("B14"); }
virtual void pre_process_input(TLista_documenti& doc_in) {}
virtual void post_process_input(TLista_documenti& doc_out) {}
virtual void post_process_output(TLista_documenti& doc_out) {}

View File

@ -85,12 +85,12 @@ bool TFatturazione_bolle::doc_raggruppabili(const TDocumento& doc_in, const TDoc
return doc_in.raggruppabile(doc_out, campi);
}
void TFatturazione_bolle::create_row(TDocumento& doc_out, const TRiga_documento & rin)
void TFatturazione_bolle::create_row(TDocumento& doc_out, const TRiga_documento& rin)
{
TRiga_documento& rout = doc_out.new_row(); // ... crea una riga nuova e
doc_out.copy_data(rout, rin); // copiaci tutti i campi della riga sorgente.
rout.set_original_rdoc_key(rin); // memorizza il codice della riga originale
doc_out.copy_data(rout, rin); // copiaci tutti i campi della riga sorgente.
rout.set_original_rdoc_key(rin); // memorizza il codice della riga originale
if (usa_data_consegna())
{
@ -159,6 +159,24 @@ bool TFatturazione_bolle::raggruppa(TDocumento& doc_in, TDocumento& doc_out)
if (gestione_riferimenti())
{
if (change_clifo())
{
const int indsped = doc_in.get_int(DOC_CODINDSP);
if (indsped > 0)
{
const char t = doc_in.get_char(DOC_TIPOCFFATT);
const long codcf = doc_in.get_long(DOC_CODCFFATT);
TString16 kis; kis << t << '|' << codcf << '|' << indsped;
const TString& dest = cache().get(LF_INDSP, kis, IND_RAGSOC);
if (dest.full()) // crea una riga descrizione nuova per indirizzo di spedizione valido
{
TRiga_documento& rout = doc_out.new_row();
rout.forza_sola_descrizione();
rout.put(RDOC_DESCR, dest);
}
}
}
// Determina ed eventualmente crea la riga di riferimento
const int riga_rif = riferimenti_in_testa() ? 1 : doc_out.physical_rows()+1;
if (riga_rif > doc_out.physical_rows())
@ -305,15 +323,15 @@ bool TFatturazione_bolle::elabora(TLista_documenti& doc_in, TLista_documenti& do
for (int id = 0; id < doc_in.items(); id++)
{
TDocumento& campione = doc_in[id];
const TString8 orig_t(campione.get(DOC_TIPOCF));
const char orig_t = campione.get_char(DOC_TIPOCF);
const long orig_cod = campione.get_long(DOC_CODCF);
if (get_bool("B13"))
if (change_clifo())
{
const TString4 t(campione.get(DOC_TIPOCFFATT));
const char t = campione.get_char(DOC_TIPOCFFATT);
const long codcf = campione.get_long(DOC_CODCFFATT);
if (t.full())
if (t > ' ')
{
campione.put(DOC_TIPOCF, t);
if (interattivo)
@ -341,7 +359,7 @@ bool TFatturazione_bolle::elabora(TLista_documenti& doc_in, TLista_documenti& do
for (int i = 1; i <= rows; i++)
{
TRiga_documento & rdoc = campione[i];
TRiga_documento& rdoc = campione[i];
if (codesiva.full())
rdoc.put(RDOC_CODIVA, codesiva);
@ -367,8 +385,6 @@ bool TFatturazione_bolle::elabora(TLista_documenti& doc_in, TLista_documenti& do
}
}
campione.set_riga_esenzione();
}
else
{
@ -384,6 +400,8 @@ bool TFatturazione_bolle::elabora(TLista_documenti& doc_in, TLista_documenti& do
}
}
}
campione.set_riga_esenzione();
const int tot = doc_out.items();
int od = tot;
@ -441,7 +459,7 @@ bool TFatturazione_bolle::elabora(TLista_documenti& doc_in, TLista_documenti& do
od = doc_out.add(new_doc);
}
if (get_bool("B13"))
if (change_clifo())
{
campione.put(DOC_TIPOCF, orig_t);
campione.put(DOC_CODCF, orig_cod);
@ -472,9 +490,25 @@ bool TFatturazione_bolle::elabora(TLista_documenti& doc_in, TLista_documenti& do
td = tipo_cli.empty() ? tipo_out : tipo_cli;
const TString& sconto = d.get(DOC_SCONTOPERC);
d.put(DOC_SCONTOPERC, sconto);
if (change_clifo())
{
const TString8 tipodoc(d.tipo().codice());
TDocumento_mask m(tipodoc);
if (reload_prices())
{
const int rows = d.physical_rows();
for (int i = 1; i <= rows;i++)
d[i].zero(RDOC_CHECKED);
}
m.doc() = d;
m.doc2mask(true, true);
m.mask2doc();
d = m.doc();
}
}
post_process_output(doc_out);
return tot > 0;
}

View File

@ -740,7 +740,7 @@ void TDocumento_mask::occ2mask()
check_field(F_STATOSP);
}
void TDocumento_mask::cli2mask()
void TDocumento_mask::cli2mask(bool force_load)
{
TCli_for & c = doc().clifor();
@ -762,7 +762,7 @@ void TDocumento_mask::cli2mask()
const TRectype & ven_rec = c.vendite();
if(!onload)
if(force_load || !onload)
{
short pos = id2pos(F_CODVAL);
const TString16 codval = c.get(CLI_CODVAL); // Attenzione: Non usare TString& qui!
@ -1016,7 +1016,7 @@ void TDocumento_mask::reset_masks(const TString& tipo_doc)
}
}
void TDocumento_mask::doc2mask(bool reload_clifo)
void TDocumento_mask::doc2mask(bool reload_clifo, bool force_load)
{
TSheet_field& s = sfield(F_SHEET);
s.destroy( );
@ -1032,7 +1032,7 @@ void TDocumento_mask::doc2mask(bool reload_clifo)
}
if (reload_clifo)
cli2mask();
cli2mask(force_load);
const int righe = doc().physical_rows();
for (int i = 0; i < righe; i++)