Aggiunti metodi virtuali ad evasione ordini per permettere personalizzazione DBService non interattiva

git-svn-id: svn://10.65.10.50/branches/R_10_00@22843 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2013-04-09 15:09:42 +00:00
parent ec2edfbaaa
commit f85c99f239
5 changed files with 27 additions and 22 deletions

View File

@ -9,12 +9,12 @@
TOccasionale::TOccasionale() : TRectype(LF_OCCAS) TOccasionale::TOccasionale() : TRectype(LF_OCCAS)
{ } { }
TOccasionale::TOccasionale(const TRectype& r) : TRectype(r) TOccasionale::TOccasionale(const TRectype& r) : TRectype(r)
{ } { }
TOccasionale::TOccasionale(const TOccasionale& r) : TRectype(r) TOccasionale::TOccasionale(const TOccasionale& r) : TRectype(r)
{ { }
}
TRectype& TOccasionale::operator=(const TRectype& r) TRectype& TOccasionale::operator=(const TRectype& r)
{ {
@ -156,7 +156,6 @@ int TCli_for::read(char tipo, long codice, word op, word lockop)
int TCli_for::remove(TBaseisamfile& f) const int TCli_for::remove(TBaseisamfile& f) const
{ {
TLocalisamfile v(LF_CFVEN); TLocalisamfile v(LF_CFVEN);
const int err = vendite().remove(v); const int err = vendite().remove(v);
if (err != NOERR && err != _iskeynotfound) if (err != NOERR && err != _iskeynotfound)
return err; return err;
@ -206,7 +205,7 @@ const TString& TCli_for::find_listino_al(const TDate& datadoc) const
return get_tmp_string() = listino; return get_tmp_string() = listino;
} }
void TCli_for::cli2doc(TDocumento & doc) void TCli_for::cli2doc(TDocumento& doc)
{ {
const TRectype & v = vendite(); const TRectype & v = vendite();
@ -221,12 +220,12 @@ void TCli_for::cli2doc(TDocumento & doc)
key.add("V"); key.add("V");
key.add("1"); key.add("1");
const TRectype & cfban = cache().get(LF_CFBAN, key); const TRectype& cfban = cache().get(LF_CFBAN, key);
if (cfban.empty()) if (cfban.empty())
{ {
doc.put(DOC_CODCABA, get(CLI_CODCAB));
doc.put(DOC_CODABIA, get(CLI_CODABI)); doc.put(DOC_CODABIA, get(CLI_CODABI));
doc.put(DOC_CODCABA, get(CLI_CODCAB));
doc.put(DOC_IBAN, get(CLI_IBAN)); doc.put(DOC_IBAN, get(CLI_IBAN));
} }
else else
@ -236,7 +235,6 @@ void TCli_for::cli2doc(TDocumento & doc)
doc.put(DOC_IBAN, get(CFBAN_IBAN)); doc.put(DOC_IBAN, get(CFBAN_IBAN));
} }
key.cut(0); key.cut(0);
key.add(get(CLI_TIPOCF)); key.add(get(CLI_TIPOCF));
key.add(get(CLI_CODCF)); key.add(get(CLI_CODCF));

View File

@ -301,7 +301,7 @@ public:
const TString & elaborazione() const {return get("S3").mid(4,8); } const TString & elaborazione() const {return get("S3").mid(4,8); }
const TString & elaborazione_stampa() const {return get("S3").mid(12,8); } const TString & elaborazione_stampa() const {return get("S3").mid(12,8); }
const TString & elaborazione_definitiva() const {return get("S3").mid(20,8); } const TString & elaborazione_definitiva() const {return get("S3").mid(20,8); }
const TString & caus_mov() const {return get("S9"); } const TString & caus_mov() const {return get("S9"); } // Causale di magazzino
const TString & caus_anticipo() const {return get("S10"); } const TString & caus_anticipo() const {return get("S10"); }
const TString & tipi_iva_validi() const {return get("S11"); } const TString & tipi_iva_validi() const {return get("S11"); }
const char stato_finale_inserimento() const {return get("S2")[0]; } const char stato_finale_inserimento() const {return get("S2")[0]; }

View File

@ -20,21 +20,21 @@ TDate TLista_documenti::num2date(char provv, int anno, const char* codnum, long
return doc.get_date(DOC_DATADOC); return doc.get_date(DOC_DATADOC);
} }
bool TLista_documenti::find(char provv, int anno, const char * codnum, long ndoc) const bool TLista_documenti::find(char provv, int anno, const char* codnum, long ndoc) const
{ {
bool found = false; bool found = false;
if (ndoc > 0) const int it = items();
if (ndoc > 0 && it > 0)
{ {
const int it = items();
for (int i = 0; !found && i < it; i++) for (int i = 0; !found && i < it; i++)
{ {
const TDocumento & d = doc(i); const TRectype& head = doc(i).head();
found = ((d.head().get_long(DOC_NDOC) == ndoc) && found = (head.get_long(DOC_NDOC) == ndoc) &&
(d.head().get_char(DOC_PROVV) == provv) && (head.get_char(DOC_PROVV) == provv) &&
(d.head().get_int(DOC_ANNO) == anno) && (head.get_int(DOC_ANNO) == anno) &&
(d.head().get(DOC_CODNUM) == codnum)); (head.get(DOC_CODNUM) == codnum);
} }
} }
return found; return found;

View File

@ -232,6 +232,7 @@ protected:
real& nolli, real& tara, real& pnetto) const; real& nolli, real& tara, real& pnetto) const;
bool aggiorna_ncolli_tara_pnetto(TRiga_documento& r) const; bool aggiorna_ncolli_tara_pnetto(TRiga_documento& r) const;
bool genera_righe_riferimento(const TDocumento& indoc, TDocumento& outdoc, TSheet_field& s) const; bool genera_righe_riferimento(const TDocumento& indoc, TDocumento& outdoc, TSheet_field& s) const;
virtual bool run_consegna_mask(TMask& cm);
public: public:
bool nettifica() const { return get_bool("B12"); } bool nettifica() const { return get_bool("B12"); }
@ -242,7 +243,6 @@ public:
TConsegna_ordini(const char* cod) : TElaborazione(cod) { } TConsegna_ordini(const char* cod) : TElaborazione(cod) { }
TConsegna_ordini(const TRectype& rec) : TElaborazione(rec) { } TConsegna_ordini(const TRectype& rec) : TElaborazione(rec) { }
virtual ~TConsegna_ordini() { }
}; };
class TFatturazione_bolle : public TElaborazione // velib04a class TFatturazione_bolle : public TElaborazione // velib04a

View File

@ -145,7 +145,7 @@ int rows_sort_func(TSheet_field& s, int i, int j)
return ret; return ret;
} }
void TConsegna_mask::doc2mask(const TDocumento& doc, const TString & articolo) void TConsegna_mask::doc2mask(const TDocumento& doc, const TString& articolo)
{ {
TWait_cursor hourglass; TWait_cursor hourglass;
_doc = &doc; _doc = &doc;
@ -154,7 +154,7 @@ void TConsegna_mask::doc2mask(const TDocumento& doc, const TString & articolo)
{ {
TMask_field& f = fld(n); TMask_field& f = fld(n);
const TFieldref* fr = f.field(); const TFieldref* fr = f.field();
if (fr) if (fr != NULL)
{ {
const TString& val = doc.get(fr->name()); const TString& val = doc.get(fr->name());
f.set(val); f.set(val);
@ -225,10 +225,10 @@ TConsegna_mask::TConsegna_mask(int header_code, bool per_codice, bool ignora_des
cl.set_sheet_columns(s, S_LIVGIAC1); cl.set_sheet_columns(s, S_LIVGIAC1);
if (header_code == 1) if (header_code == 1)
{ {
s.set_column_header(S_QTARESIDUA, HR("Quantita'\nconsegnata")); s.set_column_header(S_QTARESIDUA, HR("Quantità\nconsegnata"));
s.sheet_mask().field(S_QTARESIDUA).set_prompt(PR("Q.ta' consegnata")); s.sheet_mask().field(S_QTARESIDUA).set_prompt(PR("Q.ta' consegnata"));
s.set_column_header(S_QTADAEVADERE, HR("Quantita'\nda fatturare")); s.set_column_header(S_QTADAEVADERE, HR("Quantità\nda fatturare"));
s.sheet_mask().field(S_QTADAEVADERE).set_prompt(PR("Q.ta' da fatturare")); s.sheet_mask().field(S_QTADAEVADERE).set_prompt(PR("Q.ta' da fatturare"));
} else } else
if (header_code == 2) if (header_code == 2)
@ -445,6 +445,12 @@ bool TConsegna_ordini::genera_righe_riferimento(const TDocumento& indoc, TDocume
return true; return true;
} }
// Metodo virtuale per permettere elaborazioni NON interattive in classi derivate
bool TConsegna_ordini::run_consegna_mask(TMask& m)
{
return m.run() == K_ENTER;
}
bool TConsegna_ordini::elabora(TLista_documenti& doc_in, TLista_documenti& doc_out, bool TConsegna_ordini::elabora(TLista_documenti& doc_in, TLista_documenti& doc_out,
const TDate& data_elab, bool interattivo) const TDate& data_elab, bool interattivo)
{ {
@ -494,7 +500,8 @@ bool TConsegna_ordini::elabora(TLista_documenti& doc_in, TLista_documenti& doc_o
m.hide(F_QTA); m.hide(F_QTA);
} }
if (m.run() != K_ENTER) //if (m.run() != K_ENTER) break;
if (!run_consegna_mask(m))
break; break;
TSheet_field& s = m.sfield(F_ROWS); TSheet_field& s = m.sfield(F_ROWS);