diff --git a/ve/velib.h b/ve/velib.h index 10eb0b051..53fa8bb41 100755 --- a/ve/velib.h +++ b/ve/velib.h @@ -563,8 +563,8 @@ public: bool sola_descrizione() const; void forza_sola_descrizione(); - const TToken_string & get_rdoc_key() const ; - const TToken_string & get_original_rdoc_key(); + const TToken_string& get_rdoc_key() const; + const TToken_string& get_original_rdoc_key() const; void set_original_rdoc_key(const TRectype& orig, int depth = 0); void reset_original_rdoc_key(); const TRectype* find_original_rdoc() const; diff --git a/ve/velib02.cpp b/ve/velib02.cpp index 80ec25010..9dfeb794c 100755 --- a/ve/velib02.cpp +++ b/ve/velib02.cpp @@ -1372,10 +1372,9 @@ TArticolo_giacenza & TRiga_documento::articolo_giacenza() const return cached_article_balances(get(RDOC_CODARTMAG)); } -const TToken_string & TRiga_documento::get_original_rdoc_key() +const TToken_string & TRiga_documento::get_original_rdoc_key() const { TToken_string & key = get_tmp_string(32); - key.add(get(RDOC_DACODNUM)); key.add(get(RDOC_DAANNO)); key.add(get(RDOC_DAPROVV)); diff --git a/ve/velib03.cpp b/ve/velib03.cpp index 0135a516e..a82dba9f3 100755 --- a/ve/velib03.cpp +++ b/ve/velib03.cpp @@ -2756,14 +2756,21 @@ void TDocumento::update_spese_aut(TString_array & spese_aut, bool preserve_old, } put(DOC_SPESEUPD, true); } - + +// Calcola il peso in Kg degli imballaggi di una data categoria CONAI real TDocumento::calc_conai_qta(TCONAI_class type) -{ +{ + ofstream conaicaz("conai.txt"); + real qta; FOR_EACH_PHYSICAL_RDOC(*this, i, r) if (r->is_merce() || r->is_omaggio()) { const real row_qta = r->calc_conai_qta(type); - qta += row_qta; + if (!row_qta.is_zero()) + { + conaicaz << "Riga(" << i << ")=" << row_qta << endl; + qta += row_qta; + } } return qta; } @@ -2840,9 +2847,15 @@ void TDocumento::update_conai() const real perc_esenz = cfven.get_real(__conai_cf_names[ct]); const bool cli_esente = (esponi_esenti) && (perc_esenz == CENTO); real qta = calc_conai_qta(ct); + + ofstream conaicaz("conai.txt", ios::app); + conaicaz << "Lordo=" << qta << endl; + conaicaz << "Esenzione=" << perc_esenz << endl; if (!cli_esente && !qta.is_zero() && !perc_esenz.is_zero()) qta = qta * (CENTO - perc_esenz) / CENTO; // More precise - if (qta > ZERO) + conaicaz << "Netto=" << qta << endl; + + if (qta > ZERO) { const TString& s = conai_sp.row(ct); diff --git a/ve/velib03a.cpp b/ve/velib03a.cpp index 6800a9471..51d98bb08 100755 --- a/ve/velib03a.cpp +++ b/ve/velib03a.cpp @@ -1,4 +1,4 @@ -#include +#include #include #include "velib.h" @@ -186,8 +186,8 @@ const TString_array& TTipo_documento::keys_descrs() const { if (_keys_descrs.empty()) { - TFilename pn; profile_name(pn); - TConfig prof(pn, "RIGHE"); + TFilename name; profile_name(name); + TConfig prof(name, "RIGHE"); TTipo_riga_documento tr; TToken_string k, d; @@ -196,9 +196,11 @@ const TString_array& TTipo_documento::keys_descrs() const const TString& tiporiga = prof.get("Tipo", NULL, i); if (tiporiga.full()) { - tr.read(tiporiga); - k.add(tr.codice()); - d.add(tr.descrizione()); + if (tr.read(tiporiga) == NOERR) + { + k.add(tr.codice()); + d.add(tr.descrizione()); + } } else break; //esce da un eventuale ciclo infinito @@ -206,17 +208,14 @@ const TString_array& TTipo_documento::keys_descrs() const if (k.blank()) { - TTable tri("%TRI"); - TFilename name; - - for (int err = tri.first(); err == NOERR; err = tri.next()) + TISAM_recordset tri("USE %TRI"); + for (bool ok = tri.move_first(); ok; ok = tri.move_next()) { - name.format("verig%s.msk", (const char *) tri.get("CODTAB")); - name.custom_path(); - if (fexist(name)) + name.format("verig%s.msk", (const char*)tri.get("CODTAB").as_string()); + if (name.custom_path()) { - k.add(tri.get("CODTAB")); - d.add(tri.get("S0")); + k.add(tri.get("CODTAB").as_string()); + d.add(tri.get("S0").as_string()); } } } @@ -232,8 +231,7 @@ const TString_array& TTipo_documento::sheet_columns() const { if (_sheet_columns.empty()) { - TFilename pn; - profile_name(pn); + TFilename pn; profile_name(pn); TConfig prof(pn, "SHEET"); for (int i = 0; i < MAX_COLUMNS; i++) {