From 85981a9b2689548be07f17e15deea20dd8b42082 Mon Sep 17 00:00:00 2001 From: guy Date: Wed, 30 May 2007 16:46:56 +0000 Subject: [PATCH] Patch level : 4.0 Files correlati : ve0 Ricompilazione Demo : [ ] Commento : Migliorata decodifica articoli: ora usa anche l'eventuale distinta corrispondente al codice git-svn-id: svn://10.65.10.50/trunk@15373 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ve/velib.h | 4 ++-- ve/velib03.cpp | 8 ++++---- ve/velib06.cpp | 15 ++++++++++----- ve/velib06a.cpp | 29 ++++++++++++++++++++--------- 4 files changed, 36 insertions(+), 20 deletions(-) diff --git a/ve/velib.h b/ve/velib.h index 0b99e6059..7211c5018 100755 --- a/ve/velib.h +++ b/ve/velib.h @@ -307,7 +307,7 @@ public: TFormula_documento* succ_formula(bool restart = false); const int ncopie() const { return get_int("I0"); } - const int additional_ncopie() const { return get_int("I2"); } + const int additional_ncopie() const { return get_int("I2"); } bool spese_aut() const { return get_bool("B0"); } bool nota_credito() const { return get_bool("B7"); } bool add_conai() const { return get_bool("B6"); } @@ -808,7 +808,7 @@ class TDocumento_mask : public TVariable_mask // velib06 TPointer_array _handlers; TBit_array _calculated_pages; - bool _ges_mag, _ges_dep; + bool _ges_mag, _ges_dep, _ges_ca; TString _std_mag, _std_dep; TSmart_card * _smartcard; short _last_cdc_dlg; diff --git a/ve/velib03.cpp b/ve/velib03.cpp index 09008f711..be16bd811 100755 --- a/ve/velib03.cpp +++ b/ve/velib03.cpp @@ -877,15 +877,15 @@ int TDocumento::write_rewrite(TBaseisamfile & f, bool re) const { if(tipo().spese_aut() && !get_bool("SPESEUPD")) { - TString16 name("CODSP0"); + char name[8] = "CODSP0"; TString_array spese; const TRectype & ven_rec = clifor().vendite(); for (int i = 1; i <= 4; i++) { - name.rtrim(1); name << i; - const TString16 s(ven_rec.get(name)); + name[5] = '0' + i; + const TString& s = ven_rec.get(name); - if (s.not_empty()) + if (s.full()) spese.add(s); } myself.update_spese_aut(spese); diff --git a/ve/velib06.cpp b/ve/velib06.cpp index 99315ae29..c455202cf 100755 --- a/ve/velib06.cpp +++ b/ve/velib06.cpp @@ -83,7 +83,13 @@ TDocumento_mask::TDocumento_mask(const char* td) listbox.replace_items(keys, descrs); // Controlla se deve generare la pagina di analitica - if (dongle().active(CAAUT) || dongle().active(CMAUT)) + _ges_ca = dongle().active(CAAUT) || dongle().active(CMAUT); + if (_ges_ca) + { + TConfig& caini = ca_config(); + _ges_ca = caini.get("Level", NULL, 1).full(); + } + if (_ges_ca) insert_anal_page(); configura_sheet(*_sheet); @@ -444,8 +450,7 @@ void TDocumento_mask::configura_sheet(TSheet_field& sheet) to_delete.set(sheet.cid2index(FR_CODARTMAG)); to_delete.set(sheet.cid2index(FR_CHECKED)); - const bool ca_active = dongle().active(CMAUT) || dongle().active(CAAUT); - if (ca_active) + if (_ges_ca) { const TMultilevel_code_info& cdc = ca_multilevel_code_info(LF_CDC); const TMultilevel_code_info& cms = ca_multilevel_code_info(LF_COMMESSE); @@ -1115,8 +1120,8 @@ TVariable_mask* TDocumento_mask::riga_mask(int numriga) m->set_handler(DLG_USER, link_handler); } - bool ca_active = dongle().active(CMAUT) || dongle().active(CAAUT); // Qualsiasi cosa analitica va bene - ca_active &= !(riga.is_descrizione() || riga.is_omaggio() || riga.is_sconto()); // Ignora 'ste righe + // Quasi qualsiasi cosa analitica va bene + const bool ca_active = _ges_ca && !(riga.is_descrizione() || riga.is_omaggio() || riga.is_sconto()); if (ca_active) { const int page = m->win2page(m->fld(m->fields()-1).parent()); // Calcolo bastardo dell'ultima pagina diff --git a/ve/velib06a.cpp b/ve/velib06a.cpp index 049b79d5a..082c4a01b 100755 --- a/ve/velib06a.cpp +++ b/ve/velib06a.cpp @@ -1078,7 +1078,7 @@ bool codart_handler(TMask_field& f, KEY key ) found = !anamag.empty(); if (found) { - row_mask.set(FR_CODARTMAG, codart, true); + row_mask.set(FR_CODARTMAG, codart, true); umcorr = codalt.get(CODCORR_UM); const TString & liv1 = codalt.get(CODCORR_LIV1); @@ -1104,13 +1104,26 @@ bool codart_handler(TMask_field& f, KEY key ) } } row_mask.set(FR_CHECKED, "X"); - if (!found) + + TString desc; + if (!found) + { row_mask.set(FR_CODARTMAG, "", true); + if (main_app().has_module(DBAUT)) + { + const TRectype& dist = cache().get(LF_DIST, codart); + if (!dist.empty()) + { + desc = dist.get("DESCR"); + umcorr = dist.get("UM"); + } + } + } else { - const TString8 lingua = mask.get(F_CODLIN); - const TCodice_articolo codart(row_mask.get(FR_CODARTMAG)); - TString desc(anamag.get("DESCR")); + const TString4 lingua = mask.get(F_CODLIN); + const TCodice_articolo codart = row_mask.get(FR_CODARTMAG); + desc = anamag.get(ANAMAG_DESCR); if (mask.doc()[current_doc_row].is_omaggio()) { @@ -1148,14 +1161,12 @@ bool codart_handler(TMask_field& f, KEY key ) } } - const TString& descest = anamag.get("DESCRAGG"); if (descest.not_empty()) desc << "\n" << descest; - if (!mask.doc()[current_doc_row].tipo().no_desc()) - row_mask.set(FR_DESCR, desc); - + if (!mask.doc()[current_doc_row].tipo().no_desc()) + row_mask.set(FR_DESCR, desc); TString80 key; key << codart << "|1"; const TRectype& umart = cache().get(LF_UMART, key);