diff --git a/ve/clifor.cpp b/ve/clifor.cpp index 58d31a27c..fa192c18c 100755 --- a/ve/clifor.cpp +++ b/ve/clifor.cpp @@ -9,12 +9,12 @@ TOccasionale::TOccasionale() : TRectype(LF_OCCAS) { } + TOccasionale::TOccasionale(const TRectype& r) : TRectype(r) { } TOccasionale::TOccasionale(const TOccasionale& r) : 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 { TLocalisamfile v(LF_CFVEN); - const int err = vendite().remove(v); if (err != NOERR && err != _iskeynotfound) return err; @@ -206,7 +205,7 @@ const TString& TCli_for::find_listino_al(const TDate& datadoc) const return get_tmp_string() = listino; } -void TCli_for::cli2doc(TDocumento & doc) +void TCli_for::cli2doc(TDocumento& doc) { const TRectype & v = vendite(); @@ -221,12 +220,12 @@ void TCli_for::cli2doc(TDocumento & doc) key.add("V"); key.add("1"); - const TRectype & cfban = cache().get(LF_CFBAN, key); + const TRectype& cfban = cache().get(LF_CFBAN, key); if (cfban.empty()) { - doc.put(DOC_CODCABA, get(CLI_CODCAB)); doc.put(DOC_CODABIA, get(CLI_CODABI)); + doc.put(DOC_CODCABA, get(CLI_CODCAB)); doc.put(DOC_IBAN, get(CLI_IBAN)); } else @@ -236,7 +235,6 @@ void TCli_for::cli2doc(TDocumento & doc) doc.put(DOC_IBAN, get(CFBAN_IBAN)); } - key.cut(0); key.add(get(CLI_TIPOCF)); key.add(get(CLI_CODCF)); diff --git a/ve/velib.h b/ve/velib.h index 87be11bc6..42d47ade2 100755 --- a/ve/velib.h +++ b/ve/velib.h @@ -301,7 +301,7 @@ public: const TString & elaborazione() const {return get("S3").mid(4,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 & 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 & tipi_iva_validi() const {return get("S11"); } const char stato_finale_inserimento() const {return get("S2")[0]; } diff --git a/ve/velib04.cpp b/ve/velib04.cpp index 01cb6fd57..3aa69e2f5 100755 --- a/ve/velib04.cpp +++ b/ve/velib04.cpp @@ -20,21 +20,21 @@ TDate TLista_documenti::num2date(char provv, int anno, const char* codnum, long 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; - if (ndoc > 0) + const int it = items(); + if (ndoc > 0 && it > 0) { - const int it = items(); 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) && - (d.head().get_char(DOC_PROVV) == provv) && - (d.head().get_int(DOC_ANNO) == anno) && - (d.head().get(DOC_CODNUM) == codnum)); + found = (head.get_long(DOC_NDOC) == ndoc) && + (head.get_char(DOC_PROVV) == provv) && + (head.get_int(DOC_ANNO) == anno) && + (head.get(DOC_CODNUM) == codnum); } } return found; diff --git a/ve/velib04.h b/ve/velib04.h index 1bc6d7e90..1a7d01854 100755 --- a/ve/velib04.h +++ b/ve/velib04.h @@ -232,6 +232,7 @@ protected: real& nolli, real& tara, real& pnetto) const; bool aggiorna_ncolli_tara_pnetto(TRiga_documento& r) const; bool genera_righe_riferimento(const TDocumento& indoc, TDocumento& outdoc, TSheet_field& s) const; + virtual bool run_consegna_mask(TMask& cm); public: bool nettifica() const { return get_bool("B12"); } @@ -242,7 +243,6 @@ public: TConsegna_ordini(const char* cod) : TElaborazione(cod) { } TConsegna_ordini(const TRectype& rec) : TElaborazione(rec) { } - virtual ~TConsegna_ordini() { } }; class TFatturazione_bolle : public TElaborazione // velib04a diff --git a/ve/velib04d.cpp b/ve/velib04d.cpp index e345752c2..0ceb31f5f 100755 --- a/ve/velib04d.cpp +++ b/ve/velib04d.cpp @@ -145,7 +145,7 @@ int rows_sort_func(TSheet_field& s, int i, int j) 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; _doc = &doc; @@ -154,7 +154,7 @@ void TConsegna_mask::doc2mask(const TDocumento& doc, const TString & articolo) { TMask_field& f = fld(n); const TFieldref* fr = f.field(); - if (fr) + if (fr != NULL) { const TString& val = doc.get(fr->name()); 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); 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.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")); } else if (header_code == 2) @@ -445,6 +445,12 @@ bool TConsegna_ordini::genera_righe_riferimento(const TDocumento& indoc, TDocume 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, 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); } - if (m.run() != K_ENTER) + //if (m.run() != K_ENTER) break; + if (!run_consegna_mask(m)) break; TSheet_field& s = m.sfield(F_ROWS);