From d8bb68b7743fa3b533dd36e7ca9c821e460cb165 Mon Sep 17 00:00:00 2001 From: alex Date: Thu, 7 Oct 2010 00:35:55 +0000 Subject: [PATCH] Patch level : 10.0 814 Files correlati : ve0.exe ve6.exe Ricompilazione Demo : [ ] Commento : Bug 0001703: Fatturazione Bolle (ve6) Nella gestione dei riferimenti in testa non viene scritto il flagh descrizione lunga per cui non si vedono i riferimenti delle bolla dalla seconda in poi (seganalato da Servizi informatici (SIPAG)) Bug 0001702: Documenti interattivi (ve0) Agguingere una elaborazione al tipodocumento in modo da poter effettuare delle operazioni all' atto della registrazione. (HABA) Per utilizzarla correttamente chi la configura deve configurarei stati dell elaborazione perche' venga chiamata quand serve. Modificata anche la lettura dell stato attivo per le provvigioni, da verificare ka genreazioe dell provvigioni. git-svn-id: svn://10.65.10.50/branches/R_10_00@20959 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ve/ve0100.cpp | 3 ++- ve/ve6200.cpp | 12 ++++-------- ve/velib04.cpp | 31 +++++++++++++------------------ ve/velib04.h | 3 +-- 4 files changed, 20 insertions(+), 29 deletions(-) diff --git a/ve/ve0100.cpp b/ve/ve0100.cpp index 56bacf66b..16896e19f 100755 --- a/ve/ve0100.cpp +++ b/ve/ve0100.cpp @@ -402,9 +402,10 @@ void TMotore_application::do_elab( TDocumento& doc ) // C 90 default : break; } + TToken_string tipi; TToken_string stati; - el->stati_validi(stati); + el->tipi_stati_iniziali(tipi, stati); if (stati.find(doc.stato()) >= 0) { TDocumento newdoc(doc.get_char(DOC_PROVV), doc.get_int(DOC_ANNO), el->codice_numerazione_finale(), 0L); diff --git a/ve/ve6200.cpp b/ve/ve6200.cpp index bfd00e3b3..d01a63d5b 100755 --- a/ve/ve6200.cpp +++ b/ve/ve6200.cpp @@ -74,8 +74,7 @@ void TFatturazione_bolle_app::process_by_cli(const TMask& m) TElaborazione * e = elab(m.get(F_CODICE_ELAB)); TElaborazione & eld = *e; TToken_string tipidoc(24), statidoc(10); - eld.tipi_validi(tipidoc); - eld.stati_validi(statidoc); + eld.tipi_stati_iniziali(tipidoc, statidoc); TTipo_documento t(eld.tipo_iniziale(0)); char tipocf(t.tipocf()); @@ -127,8 +126,7 @@ void TFatturazione_bolle_app::process_by_ragsoc(const TMask& m) TElaborazione * e = elab(m.get(F_CODICE_ELAB)); TElaborazione & eld = *e; TToken_string tipidoc(24), statidoc(10); - eld.tipi_validi(tipidoc); - eld.stati_validi(statidoc); + eld.tipi_stati_iniziali(tipidoc, statidoc); TTipo_documento t(eld.tipo_iniziale(0)); char tipocf(t.tipocf()); @@ -182,8 +180,7 @@ void TFatturazione_bolle_app::process_by_doc(const TMask& m) TElaborazione * e = elab(m.get(F_CODICE_ELAB)); TElaborazione & eld = *e; TToken_string tipidoc(24), statidoc(10); - eld.tipi_validi(tipidoc); - eld.stati_validi(statidoc); + eld.tipi_stati_iniziali(tipidoc, statidoc); TTipo_documento t(eld.tipo_iniziale(0)); char tipocf(t.tipocf()); @@ -240,8 +237,7 @@ void TFatturazione_bolle_app::process_by_fatt(const TMask& m) TElaborazione* e = elab(m.get(F_CODICE_ELAB)); TElaborazione& eld = *e; TToken_string tipidoc(24), statidoc(10); - eld.tipi_validi(tipidoc); - eld.stati_validi(statidoc); + eld.tipi_stati_iniziali(tipidoc, statidoc); const TTipo_documento t(eld.tipo_iniziale(0)); const char tipocffatt = t.tipocf() == 'C' ? 'F' : 'C'; diff --git a/ve/velib04.cpp b/ve/velib04.cpp index e8875d009..4c13cb6c8 100755 --- a/ve/velib04.cpp +++ b/ve/velib04.cpp @@ -463,35 +463,30 @@ int TElaborazione::read(const char* cod) return ok; } -void TElaborazione::tipi_validi(TToken_string& tipi) const +void TElaborazione::tipi_stati_iniziali(TToken_string& tipi, TToken_string& stati) const { - tipi.cut(0); TString4 t; - for (int i = 0; i < TElaborazione::_max_tipi_doc_elab; i++) - { - t = tipo_iniziale(i); - if (t.full()) - tipi.add(t); - } - CHECK(!tipi.empty_items(), "Nessun tipo documento valido"); -} -void TElaborazione::stati_validi(TToken_string& stati) const -{ + tipi.cut(0); stati.cut(0); for (int i = 0; i < TElaborazione::_max_tipi_doc_elab; i++) { + t = tipo_iniziale(i); const char s = stato_iniziale(i); - if (s != '\0' && s != ' ') - stati.add(s); + + if (t.blank() && s == '\0') + break; else - if (s == '\0') - break; - } + if (t.full() || s > ' ') + { + tipi.add(t); + stati.add(s); + } + } + CHECK(!tipi.empty_items(), "Nessun tipo documento valido"); CHECK(!stati.empty_items(), "Nessuno stato documento valido"); } - /////////////////////////////////////////////////////////// // TElaborazione_esterna /////////////////////////////////////////////////////////// diff --git a/ve/velib04.h b/ve/velib04.h index e5f76724a..7fd65ac55 100755 --- a/ve/velib04.h +++ b/ve/velib04.h @@ -165,8 +165,7 @@ public: const TString& descrizione() const { return get("S0"); } const TTipo_elaborazione tipo() const { return (TTipo_elaborazione) get_int("I0"); } - virtual void tipi_validi(TToken_string& tipi) const; - virtual void stati_validi(TToken_string& stati) const; + virtual void tipi_stati_iniziali(TToken_string& tipi, TToken_string& stati) const; bool doc_uguale(int u) const { return get("S1").mid(u, 1) == "X"; }