From a3fba6a9adfa1764f47c5ee1fef0d7fe1fa594c2 Mon Sep 17 00:00:00 2001 From: alex Date: Fri, 22 Aug 1997 13:25:25 +0000 Subject: [PATCH] Errore aga0045 git-svn-id: svn://10.65.10.50/trunk@5096 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ve/ve1100.cpp | 5 +- ve/ve2100.cpp | 342 +++++++++++++++++++++++++++---------------------- ve/ve2100.uml | 2 +- ve/ve2100i.h | 29 +++-- ve/ve2100i.uml | 72 +++-------- ve/ve2100r.h | 29 +++-- ve/ve2100r.uml | 199 ++++++++++++++++++++++------ 7 files changed, 408 insertions(+), 270 deletions(-) diff --git a/ve/ve1100.cpp b/ve/ve1100.cpp index a33b36703..4798bec81 100755 --- a/ve/ve1100.cpp +++ b/ve/ve1100.cpp @@ -853,7 +853,7 @@ bool TDocumento_form::validate(TForm_item &cf, TToken_string &s) { if (x.is_real(value)) { TString picture(cf.picture()); - if (x != 0.0) + if (x != ZERO) value = x.string(picture); // Riformatta il valore else value = ""; @@ -951,6 +951,7 @@ class TStampaDoc_application: public TApplication TRelation *_firmrel; // puntatore alla relazione che gestisce i dati della ditta corrente TDocumento_form *_form; // puntatore al form di stampa TLocalisamfile * _clifo; + TLocalisamfile * _cfven; TLocalisamfile * _occas; protected: @@ -1182,6 +1183,7 @@ bool TStampaDoc_application::create() _firmrel->add(LF_COMUNI, "COM=STATORES+COMRF", 1, LF_ANAG, 200+LF_COMUNI); _occas = new TLocalisamfile(LF_OCCAS); _clifo = new TLocalisamfile(LF_CLIFO); + _cfven = new TLocalisamfile(LF_CFVEN); const int argc = TApplication::argc(); _is_lista = argc == 3 && argv(2)[0] == 'L'; @@ -1226,6 +1228,7 @@ bool TStampaDoc_application::destroy() { delete _firmrel; // distruzione della relazione di gestione della ditta corrente delete _clifo; + delete _cfven; delete _occas; return TApplication::destroy(); } diff --git a/ve/ve2100.cpp b/ve/ve2100.cpp index 6f342c553..a7334ca44 100755 --- a/ve/ve2100.cpp +++ b/ve/ve2100.cpp @@ -8,6 +8,14 @@ #define MAX_REAL "9999999999.99999" //mmmhh.. +static void key_hide(TMask & m, short id, int key = 1) +{ + TEditable_field & e = ((TEditable_field &)m.field(id)); + e.reset_key(key); + e.check_type(CHECK_NONE); + e.set_field(""); + m.hide(id); +} static void key_disable(TMask & m, short id, int key = 1) { @@ -47,7 +55,7 @@ class TTabelle_sconti: public TRelation_application { virtual void init_query_insert_mode(TMask& m); virtual bool remove(); // metodo usato per rimuovere il record sul file void renumber_sca(const TRectype& r); //metodo per rinumerare gli scaglioni - static void fill_rec(TRectype& r, TMask& m); +// static void fill_rec(TRectype& r, TMask& m); static real find_prev_qta(TRectype& r); static real find_next_qta(TRectype& r); static bool handle_qta(TMask_field &, KEY); // handler della quantita' limite per scaglione @@ -57,11 +65,11 @@ class TTabelle_sconti: public TRelation_application { // Risposta, perche quando si clicca su nuovo per andare in modo ricerca/inserimento, tutti i campi // che hanno CHECKTYPE FORCED risultano non essere validi. Percio' si e' rimesso il CHECKTYPE REQUIRED // e si controlla la consistenza del campo. - static bool handle_um(TMask_field &, KEY); // handler delle unita' di misura per gli sconti di riga - static bool handle_art(TMask_field &, KEY); // handler dei codici articoli per sconti di riga +// static bool handle_um(TMask_field &, KEY); // handler delle unita' di misura per gli sconti di riga + static bool handle_check(TMask_field &, KEY); // handler per i check // static bool handle_sco(TMask_field &, KEY); // handler delle sconto cliente - static bool handle_zon(TMask_field &, KEY); // handler delle zone - static bool handle_cpg(TMask_field &, KEY); // handler delle condizioni di pagamento +// static bool handle_zon(TMask_field &, KEY); // handler delle zone +// static bool handle_cpg(TMask_field &, KEY); // handler delle condizioni di pagamento public: TTabelle_sconti() {_sca = _scoum = _catven = FALSE;} @@ -72,19 +80,19 @@ inline TTabelle_sconti& app() { return (TTabelle_sconti &) main_app(); } // Handlers per i campi quantita' limite e scaglione, valgono solo per gli sconti di riga -void TTabelle_sconti::fill_rec(TRectype &r, TMask& m) +/*void TTabelle_sconti::fill_rec(TRectype &r, TMask& m) { TString16 tipo(m.get(F_R_TIPO)); TString16 codcat(m.get(F_R_CODCAT)); - if (codcat.empty()) codcat = m.get(F_R_RICERCA); TString codart(m.get(F_R_CODART)); - if (codart.empty()) codart = m.get(F_R_RICERCA_A); + if (codart.empty()) codart = m.get(F_R_CODART_A); TString16 um(m.get(F_R_UM)); int sca = m.get_int(F_R_SCA); r.zero(); r.put("TIPO",tipo);r.put("CODCAT",codcat); r.put("CODART",codart); r.put("UM",um);r.put("NSCAGL",sca); } +*/ real TTabelle_sconti::find_prev_qta(TRectype& r) { @@ -117,8 +125,9 @@ bool TTabelle_sconti::handle_qta(TMask_field &f, KEY k) TMask& m = f.mask(); real qta_prev,qta_next; real current_qta(f.get()); - TRectype r1(LF_SCONTI); - fill_rec(r1,m); + TRelation r(LF_SCONTI); + m.autosave(r); + TRectype r1(r.curr()); TRectype r2(r1); qta_prev = find_prev_qta(r1); @@ -154,17 +163,19 @@ bool TTabelle_sconti::handle_sca(TMask_field &f, KEY k) int sca = atoi(f.get()); if (sca == 1) return TRUE; - TRectype r(LF_SCONTI); - fill_rec(r, m); - TLocalisamfile sconti(LF_SCONTI); + TRelation sconti(LF_SCONTI); + + m.autosave(sconti); + + TRectype r(sconti.curr()); - sconti.curr() = r; sconti.read(); if (sconti.bad()) // se non l'ha trovato significa che e' in inserimento { - sca--; - r.put("NSCAGL",sca); //cerca quello precedente... - if (sconti.read(r) != NOERR) // se non lo trova segnala l'errore di errata sequenza + sca--; + sconti.curr() = r; + sconti.curr().put("NSCAGL",sca); //cerca quello precedente... + if (sconti.read() != NOERR) // se non lo trova segnala l'errore di errata sequenza { f.error_box("Il numero di scaglione immesso non e' in sequenza."); return FALSE; @@ -174,23 +185,20 @@ bool TTabelle_sconti::handle_sca(TMask_field &f, KEY k) return TRUE; } -bool TTabelle_sconti::handle_art(TMask_field &f, KEY k) +bool TTabelle_sconti::handle_check(TMask_field &f, KEY k) { if (f.to_check(k)) - { - TLocalisamfile a(LF_ANAMAG); - TString art(f.get()); - if (art.empty()) return TRUE; - a.put("CODART",art); - if (a.read() != NOERR) - { - f.error_box("Codice articolo non presente sull'anagrafica"); - return FALSE; - } + { + TEditable_field & check_field = (TEditable_field &) f.mask().field(f.dlg() + 100); + + check_field.set(f.get()); + if (!check_field.check()) + return check_field.error_box(check_field.get_warning()); } return TRUE; } +/* bool TTabelle_sconti::handle_um(TMask_field &f, KEY k) { if (f.to_check(k)) @@ -209,94 +217,47 @@ bool TTabelle_sconti::handle_um(TMask_field &f, KEY k) } return TRUE; } - -/* bool TTabelle_sconti::handle_sco(TMask_field &f, KEY k) -{ - if (f.to_check(k)) - { - TLocalisamfile a(LF_SCONTI); - TString sco(f.get()); - if (sco.empty()) return TRUE; - a.put("TIPO","D"); - a.put("CODCAT",sco); - if (a.read() != NOERR) - { - f.error_box("Sconto cliente non presente"); - return FALSE; - } - } - return TRUE; -} */ -bool TTabelle_sconti::handle_zon(TMask_field &f, KEY k) +bool TTabelle_sconti::user_create() { - if (f.to_check(k)) - { - TTable a("%ZON"); - TString zon(f.get()); - if (zon.empty()) return TRUE; - a.put("CODTAB",zon); - if (a.read() != NOERR) - { - f.error_box("Zona non presente"); - return FALSE; - } - } - return TRUE; -} - -bool TTabelle_sconti::handle_cpg(TMask_field &f, KEY k) -{ - if (f.to_check(k)) - { - TTable a("%CPG"); - TString con(f.get()); - if (con.empty()) return TRUE; - a.put("CODTAB",con); - if (a.read() != NOERR) - { - f.error_box("Condizione di pagamento non presente"); - return FALSE; - } - } - return TRUE; -} - -bool TTabelle_sconti::user_create() { bool gotcha= FALSE; // booleano di avvenuta inizializzazione - int i; // indice di ciclo _sconti= '*'; // inizializzazione dell'indicatore del tipo di tabella - if (argc()>2) _sconti= toupper((argv(2))[0]); // se c'è, prende il tipo di tabella dalla linea di comando - else { - TMask choose("VE2100"); // istanzia la maschera di scelta del tipo di tabella - if (choose.run() == K_ENTER) _sconti= toupper((choose.get(F_TIPOSC))[0]); // prende il tipo di tabella dalla maschera + if (argc()>2) + _sconti = toupper((argv(2))[0]); // se c'è, prende il tipo di tabella dalla linea di comando + else + { + TMask choose("ve2100"); // istanzia la maschera di scelta del tipo di tabella + if (choose.run() == K_ENTER) + _sconti = toupper((choose.get(F_TIPOSC))[0]); // prende il tipo di tabella dalla maschera + else + return FALSE; } TConfig prassid(CONFIG_DITTA, "ve"); // apre il file di configurazione di ditta switch (_sconti) { case 'D': // sconti documento - _msk= new TMask("VE2100D"); // apre la maschera relativa + _msk= new TMask("ve2100d"); // apre la maschera relativa set_search_field(F_D_CODCAT); // setta il campo di ricerca gotcha= TRUE; break; case 'R': // sconti di riga _gesscoriga = prassid.get("GESSCORIGA"); // legge lo stato del parametro di abilitazione degli sconti riga - if (_gesscoriga == "A") { - _msk= new TMask("VE2100R"); // apre la maschera relativa - set_search_field(F_R_RICERCA); // setta il campo di ricerca + if (_gesscoriga == "A") + { + _msk= new TMask("ve2100r"); // apre la maschera relativa + _catven= prassid.get_bool("GESSCORIGACV"); // legge il parametro di abilitazione delle categorie di vendita - _scoum = prassid.get_bool("GESSCOUM"); // legge il parametro di abilitazione delle unita' di misura - _sca = prassid.get_bool("GESSCOSCA"); // legge il parametro di abilitazione degli scaglioni if (!_catven) - { key_disable(*_msk, F_R_CODCAT); // se non è abilitato, viene disabilitato anche il campo - set_search_field(F_R_RICERCA_A); // setta il campo di ricerca - } + + _scoum = prassid.get_bool("GESSCOUM"); // legge il parametro di abilitazione delle unita' di misura if (!_scoum) key_disable(*_msk, F_R_UM); // se non e' abilitato, viene disabilitato anche il campo - else - _msk->set_handler(F_R_UM,handle_um); +// else +// _msk->set_handler(F_R_UM,handle_um); + + _sca = prassid.get_bool("GESSCOSCA"); // legge il parametro di abilitazione degli scaglioni if (!_sca) { key_disable(*_msk, F_R_SCA); // se non e' abilitato, viene disabilitato anche il campo @@ -307,15 +268,60 @@ bool TTabelle_sconti::user_create() { _msk->set_handler(F_R_QLIM, handle_qta); // setta l'handler per controllare la quantita' limite _msk->set_handler(F_R_SCA, handle_sca); // setta l'handler per controllare la sequenza degli scaglioni } - _msk->set_handler(F_R_CODART,handle_art); - _msk->set_handler(F_R_RICERCA_A,handle_art); + _msk->set_handler(F_R_CODART_A,handle_check); + _msk->set_handler(F_R_RFA_A,handle_check); + _msk->set_handler(F_R_GRM_A,handle_check); + _msk->set_handler(F_R_SGM_A,handle_check); gotcha= TRUE; - } else error_box("Gli sconti di riga non sono abilitati nella configurazione"); + + const char * rigakey = prassid.get("SCORIGAKEY"); + + _msk->set(F_R_TIPO_RIGA, rigakey); + switch (*rigakey) + { + case 'A' : + key_hide(*_msk, F_R_RFA_A); + key_hide(*_msk, F_R_RFA); + key_hide(*_msk, F_R_GRM_A); + key_hide(*_msk, F_R_GRM); + key_hide(*_msk, F_R_SGM_A); + key_hide(*_msk, F_R_SGM); + break; + case 'R' : + key_hide(*_msk, F_R_CODART_A); + key_hide(*_msk, F_R_CODART); + key_hide(*_msk, F_R_GRM_A); + key_hide(*_msk, F_R_GRM); + key_hide(*_msk, F_R_SGM_A); + key_hide(*_msk, F_R_SGM); + break; + case 'C' : + key_hide(*_msk, F_R_CODART_A); + key_hide(*_msk, F_R_CODART); + key_hide(*_msk, F_R_RFA_A); + key_hide(*_msk, F_R_RFA); + key_hide(*_msk, F_R_GRM_A); + key_hide(*_msk, F_R_GRM); + break; + case 'L' : + key_hide(*_msk, F_R_CODART_A); + key_hide(*_msk, F_R_CODART); + key_hide(*_msk, F_R_RFA_A); + key_hide(*_msk, F_R_RFA); + key_hide(*_msk, F_R_SGM_A); + key_hide(*_msk, F_R_SGM); + break; + default : + break; + } + } + else + error_box("Gli sconti di riga non sono abilitati nella configurazione"); break; case 'I': // sconti incondizionati _gessco= prassid.get("GESSCO"); // legge lo stato del parametro di abilitazione degli sconti if (_gessco=="A") { - _msk= new TMask("VE2100I"); // apre la maschera relativa + _msk= new TMask("ve2100i"); // apre la maschera relativa // inizializza l'array dei campi da disabilitare condizionalmente _sci_k_id[0].normal_field = F_I_CATVEN; _sci_k_id[0].search_field = F_I_RICERCA; @@ -329,13 +335,12 @@ bool TTabelle_sconti::user_create() { _sci_k_id[3].normal_field = F_I_CONDPAG; _sci_k_id[3].search_field = F_I_RICERCA_CO; _sci_k_id[3].enabled = TRUE; -// _msk->set_handler(F_I_SCCLIENTI,handle_sco); - _msk->set_handler(F_I_ZONE,handle_zon); - _msk->set_handler(F_I_CONDPAG,handle_cpg); -// _msk->set_handler(F_I_RICERCA_SC,handle_sco); - _msk->set_handler(F_I_RICERCA_ZO,handle_zon); - _msk->set_handler(F_I_RICERCA_CO,handle_cpg); - for (i=0; i<4; i++) { + _msk->set_handler(F_I_RICERCA, handle_check); + _msk->set_handler(F_I_RICERCA_SC, handle_check); + _msk->set_handler(F_I_RICERCA_ZO, handle_check); + _msk->set_handler(F_I_RICERCA_CO, handle_check); + for (int i = 0; i < 4; i++) + { if (!prassid.get_bool("SCOKEY", NULL, i+1)) // se nel file di config. il campo non è abilitato... { key_disable(*_msk, _sci_k_id[i].normal_field); // il campo non è abilitato viene disabilitato anche sulla maschera @@ -367,7 +372,6 @@ bool TTabelle_sconti::user_destroy() { } void TTabelle_sconti::init_query_mode(TMask& m) { - int i; switch (_sconti) { @@ -375,67 +379,106 @@ void TTabelle_sconti::init_query_mode(TMask& m) { set_search_field(F_D_CODCAT); // setta il campo di ricerca break; case 'I': - for (i=0; i<4;i++) - if (_sci_k_id[i].enabled) + { + for (int i = 0; i < 4 ; i++) { - m.show(_sci_k_id[i].search_field); - m.hide(_sci_k_id[i].normal_field); - key_enable(m,_sci_k_id[i].search_field); - key_disable(m,_sci_k_id[i].normal_field); - set_search_field(_sci_k_id[i].search_field); - break; + if (_sci_k_id[i].enabled) + { + m.show(_sci_k_id[i].search_field); + m.hide(_sci_k_id[i].normal_field); + key_enable(m,_sci_k_id[i].search_field); + key_disable(m,_sci_k_id[i].normal_field); + } } - break; - case 'R': - if (_catven) - { - m.show(F_R_RICERCA); - m.hide(F_R_CODCAT); - set_search_field(F_R_RICERCA); // setta il campo di ricerca + set_search_field(F_I_RICERCA); } - else + break; + case 'R': { - m.hide(F_R_CODART); - m.show(F_R_RICERCA_A); - set_search_field(F_R_RICERCA_A); // setta il campo di ricerca + const char * rigakey = m.get(F_R_TIPO_RIGA); + + switch (*rigakey) + { + case 'A' : + m.show(F_R_CODART_A); + m.hide(F_R_CODART); + set_search_field(F_R_CODART_A); // setta il campo di ricerca + break; + case 'R' : + m.show(F_R_RFA_A); + m.hide(F_R_RFA); + set_search_field(F_R_RFA_A); // setta il campo di ricerca + break; + case 'C' : + m.show(F_R_SGM_A); + m.hide(F_R_SGM); + set_search_field(F_R_SGM_A); // setta il campo di ricerca + break; + case 'L' : + m.show(F_R_GRM_A); + m.hide(F_R_GRM); + set_search_field(F_R_GRM_A); // setta il campo di ricerca + break; + default : + break; + } } break; default: break; } } -void TTabelle_sconti::init_query_insert_mode(TMask& m) { - int i; - +void TTabelle_sconti::init_query_insert_mode(TMask& m) +{ switch (_sconti) { case 'D': set_search_field(F_D_CODCAT); // setta il campo di ricerca break; - case 'I': - for (i=0; i<4;i++) - if (_sci_k_id[i].enabled) + case 'I': + { + for (int i = 0; i < 4; i++) { - m.show(_sci_k_id[i].normal_field); - m.hide(_sci_k_id[i].search_field); - key_enable(m,_sci_k_id[i].normal_field); - key_disable(m,_sci_k_id[i].search_field); - set_search_field(_sci_k_id[i].normal_field); - break; + if (_sci_k_id[i].enabled) + { + m.show(_sci_k_id[i].normal_field); + m.hide(_sci_k_id[i].search_field); + key_enable(m,_sci_k_id[i].normal_field); + key_disable(m,_sci_k_id[i].search_field); + } } + set_search_field(F_I_CATVEN); + } break; case 'R': - if (_catven) { - m.hide(F_R_RICERCA); - m.show(F_R_CODCAT); - set_search_field(F_R_CODCAT); // setta il campo di ricerca - } - else - { - m.hide(F_R_RICERCA_A); - m.show(F_R_CODART); - set_search_field(F_R_CODART); // setta il campo di ricerca + const char * rigakey = m.get(F_R_TIPO_RIGA); + + switch (*rigakey) + { + case 'A' : + m.show(F_R_CODART); + m.hide(F_R_CODART_A); + set_search_field(F_R_CODART); // setta il campo di ricerca + break; + case 'R' : + m.show(F_R_RFA); + m.hide(F_R_RFA_A); + set_search_field(F_R_RFA); // setta il campo di ricerca + break; + case 'C' : + m.show(F_R_SGM); + m.hide(F_R_SGM_A); + set_search_field(F_R_SGM); // setta il campo di ricerca + break; + case 'L' : + m.show(F_R_GRM); + m.hide(F_R_GRM_A); + set_search_field(F_R_GRM); // setta il campo di ricerca + break; + default : + break; + } } break; default: break; @@ -457,7 +500,6 @@ void TTabelle_sconti::renumber_sca(const TRectype& r) bool TTabelle_sconti::remove() { TRectype r(LF_SCONTI); - fill_rec(r,*_msk); const bool rt = TRelation_application::remove(); if (_sca) // rinumera gli scaglioni renumber_sca(r); diff --git a/ve/ve2100.uml b/ve/ve2100.uml index 50d385910..8b5d2b3e7 100755 --- a/ve/ve2100.uml +++ b/ve/ve2100.uml @@ -7,7 +7,7 @@ BEGIN PROMPT 1 2 "Tipo di archivio " ITEM "R|Sconti di riga" ITEM "D|Sconti documento" - ITEM "I|Sconti indondizionati" + ITEM "I|Sconti incondizionati" END BUTTON DLG_SELECT 9 2 diff --git a/ve/ve2100i.h b/ve/ve2100i.h index eb165e741..d91e00fab 100755 --- a/ve/ve2100i.h +++ b/ve/ve2100i.h @@ -1,15 +1,16 @@ -#define F_I_RICERCA 131 -#define F_I_TIPO 132 -#define F_I_CATVEN 133 -#define F_I_SCCLIENTI 134 -#define F_I_ZONE 135 -#define F_I_CONDPAG 136 -#define F_I_SCONTO 137 -#define F_I_DESVEN 138 -#define F_I_DESSCCLI 139 -#define F_I_DESZONE 140 -#define F_I_DESCONPAG 141 -#define F_I_RICERCA_SC 142 -#define F_I_RICERCA_ZO 143 -#define F_I_RICERCA_CO 144 +#define F_I_TIPO 132 +#define F_I_SCONTO 137 +#define F_I_DESVEN 138 +#define F_I_DESSCCLI 139 +#define F_I_DESZONE 140 +#define F_I_DESCONPAG 141 +#define F_I_RICERCA_SC 150 +#define F_I_RICERCA_ZO 151 +#define F_I_RICERCA_CO 152 +#define F_I_RICERCA 153 + +#define F_I_SCCLIENTI 250 +#define F_I_ZONE 251 +#define F_I_CONDPAG 252 +#define F_I_CATVEN 253 diff --git a/ve/ve2100i.uml b/ve/ve2100i.uml index 6b252fd48..a9c6eee54 100755 --- a/ve/ve2100i.uml +++ b/ve/ve2100i.uml @@ -24,17 +24,17 @@ END STRING F_I_RICERCA 2 BEGIN - PROMPT 2 2 "Cat. vendite " + PROMPT 2 2 "Cat. vendita " FIELD CODCAT FLAG "HU" KEY 1 USE LF_SCONTI SELECT CODCAT != "" JOIN CVE ALIAS 201 INTO CODTAB==CODCAT INPUT TIPO F_I_TIPO SELECT - INPUT CODCAT F_I_CATVEN - INPUT CODART[1,2] F_I_SCCLIENTI - INPUT CODART[3,4] F_I_ZONE - INPUT CODART[5,8] F_I_CONDPAG + INPUT CODCAT F_I_RICERCA + INPUT CODART[1,2] F_I_RICERCA_SC + INPUT CODART[3,4] F_I_RICERCA_ZO + INPUT CODART[5,8] F_I_RICERCA_CO DISPLAY "Cat.Vend." CODCAT DISPLAY "Cod. sconto" CODART[1,2] DISPLAY "Zona" CODART[3,4] @@ -42,9 +42,9 @@ BEGIN DISPLAY "Sconto@25" SCONTO OUTPUT F_I_RICERCA CODCAT OUTPUT F_I_DESVEN -201->S0 - OUTPUT F_I_SCCLIENTI CODART[1,2] - OUTPUT F_I_ZONE CODART[3,4] - OUTPUT F_I_CONDPAG CODART[5,8] + OUTPUT F_I_RICERCA_SC CODART[1,2] + OUTPUT F_I_RICERCA_ZO CODART[3,4] + OUTPUT F_I_RICERCA_CO CODART[5,8] END STRING F_I_CATVEN 2 @@ -74,21 +74,7 @@ BEGIN FIELD CODART[1,2] FLAG "HU" KEY 1 - USE LF_SCONTI - INPUT TIPO F_I_TIPO SELECT - INPUT CODCAT F_I_CATVEN SELECT - INPUT CODART[1,2] F_I_RICERCA_SC - INPUT CODART[3,4] F_I_ZONE - INPUT CODART[5,8] F_I_CONDPAG - DISPLAY "Cod. sconto" CODART[1,2] - DISPLAY "Zona" CODART[3,4] - DISPLAY "Cond.Pag." CODART[5,8] - DISPLAY "Sconto@25" SCONTO - OUTPUT F_I_RICERCA_SC CODART[1,2] - OUTPUT F_I_SCCLIENTI CODART[1,2] - OUTPUT F_I_ZONE CODART[3,4] - OUTPUT F_I_CONDPAG CODART[5,8] - MESSAGE COPY,F_I_SCCLIENTI + COPY ALL F_I_RICERCA END STRING F_I_SCCLIENTI 2 @@ -98,18 +84,12 @@ BEGIN KEY 1 FLAG "U" USE %SCC -// INPUT TIPO "D" -// INPUT CODCAT F_I_SCCLIENTI -// DISPLAY "Sc. Cliente" CODCAT -// DISPLAY "Descrizione@50" DESCR -// OUTPUT F_I_SCCLIENTI CODCAT -// OUTPUT F_I_DESSCCLI DESCR INPUT CODTAB F_I_SCCLIENTI DISPLAY "Sc. Cliente" CODTAB DISPLAY "Descrizione@50" S0 OUTPUT F_I_SCCLIENTI CODTAB OUTPUT F_I_DESSCCLI S0 - CHECKTYPE REQUIRED + CHECKTYPE FORCED END STRING F_I_DESSCCLI 50 @@ -124,19 +104,7 @@ BEGIN FIELD CODART[3,4] FLAG "HU" KEY 1 - USE LF_SCONTI SELECT CODCAT=="" - INPUT TIPO F_I_TIPO SELECT - INPUT CODCAT F_I_CATVEN SELECT - INPUT CODART[1,2] F_I_SCCLIENTI SELECT - INPUT CODART[3,4] F_I_RICERCA_ZO - INPUT CODART[5,8] F_I_CONDPAG - DISPLAY "Zona" CODART[3,4] - DISPLAY "Cond.Pag." CODART[5,8] - DISPLAY "Sconto@25" SCONTO - OUTPUT F_I_RICERCA_ZO CODART[3,4] - OUTPUT F_I_ZONE CODART[3,4] - OUTPUT F_I_CONDPAG CODART[5,8] - MESSAGE COPY,F_I_ZONE + COPY ALL F_I_RICERCA END STRING F_I_ZONE 2 @@ -145,13 +113,13 @@ BEGIN FIELD CODART[3,4] FLAG "U" KEY 1 - USE %ZON + USE ZON INPUT CODTAB F_I_ZONE DISPLAY "Zona" CODTAB DISPLAY "Descrizione@50" S0 OUTPUT F_I_ZONE CODTAB OUTPUT F_I_DESZONE S0 - CHECKTYPE REQUIRED + CHECKTYPE FORCED END STRING F_I_DESZONE 50 @@ -166,17 +134,7 @@ BEGIN FIELD CODART[5,8] FLAG "HU" KEY 1 - USE LF_SCONTI SELECT CODCAT == "" - INPUT TIPO F_I_TIPO SELECT - INPUT CODCAT F_I_CATVEN SELECT - INPUT CODART[1,2] F_I_SCCLIENTI SELECT - INPUT CODART[3,4] F_I_ZONE SELECT - INPUT CODART[5,8] F_I_RICERCA_CO - DISPLAY "Cond.Pag." CODART[5,8] - DISPLAY "Sconto@25" SCONTO - OUTPUT F_I_RICERCA_CO CODART[5,8] - OUTPUT F_I_CONDPAG CODART[5,8] - MESSAGE COPY,F_I_CONDPAG + COPY ALL F_I_RICERCA END STRING F_I_CONDPAG 4 @@ -191,7 +149,7 @@ BEGIN DISPLAY "Descrizione@50" S0 OUTPUT F_I_CONDPAG CODTAB OUTPUT F_I_DESCONPAG S0 - CHECKTYPE REQUIRED + CHECKTYPE FORCED END STRING F_I_DESCONPAG 50 diff --git a/ve/ve2100r.h b/ve/ve2100r.h index 0234019f9..dab457c79 100755 --- a/ve/ve2100r.h +++ b/ve/ve2100r.h @@ -1,12 +1,19 @@ -#define F_R_RICERCA 121 -#define F_R_TIPO 122 -#define F_R_CODCAT 123 -#define F_R_CODART 124 -#define F_R_UM 125 -#define F_R_DESART 126 -#define F_R_SCONTO 127 -#define F_R_DESCAT 128 -#define F_R_SCA 129 -#define F_R_QLIM 130 -#define F_R_RICERCA_A 131 +#define F_R_TIPO 122 +#define F_R_CODCAT 123 +#define F_R_UM 125 +#define F_R_DESART 126 +#define F_R_SCONTO 127 +#define F_R_DESCAT 128 +#define F_R_SCA 129 +#define F_R_QLIM 130 +#define F_R_TIPO_RIGA 132 +#define F_R_CODART_A 150 +#define F_R_RFA_A 151 +#define F_R_GRM_A 152 +#define F_R_SGM_A 153 + +#define F_R_CODART 250 +#define F_R_RFA 251 +#define F_R_GRM 252 +#define F_R_SGM 253 diff --git a/ve/ve2100r.uml b/ve/ve2100r.uml index 82374b7f8..ca7824706 100755 --- a/ve/ve2100r.uml +++ b/ve/ve2100r.uml @@ -13,32 +13,6 @@ BEGIN FLAG "R" END -STRING F_R_RICERCA 2 -BEGIN - PROMPT 2 2 "Cat. vendita " - FIELD CODCAT - FLAG "HU" - KEY 1 - USE LF_SCONTI SELECT CODCAT != "" - JOIN CVE ALIAS 201 INTO CODTAB==CODCAT - INPUT TIPO F_R_TIPO SELECT - INPUT CODCAT F_R_RICERCA - INPUT CODART F_R_CODART - INPUT UM F_R_UM - DISPLAY "Cat.Vend." CODCAT - DISPLAY "Codice art.@20" CODART - DISPLAY "U.M." UM - DISPLAY "N. scaglione" NSCAGL - DISPLAY "Sconto@25" SCONTO - OUTPUT F_R_RICERCA CODCAT - OUTPUT F_R_CODCAT CODCAT - OUTPUT F_R_DESCAT -201->S0 - OUTPUT F_R_CODART CODART - OUTPUT F_R_UM UM - OUTPUT F_R_SCA NSCAGL - MESSAGE COPY,F_R_CODCAT -END - LIST F_R_TIPO 20 BEGIN PROMPT 100 100 "" @@ -69,7 +43,19 @@ BEGIN FLAG "D" END -STRING F_R_RICERCA_A 20 +LIST F_R_TIPO_RIGA 20 +BEGIN + PROMPT 100 100 " " + FIELD TIPORIGA + KEY 1 + ITEM "A|Articoli" + ITEM "R|Raggr.fiscale" + ITEM "L|Gruppo merc." + ITEM "C|Sottogr.merc." + FLAGS "DP" +END + +STRING F_R_CODART_A 20 BEGIN PROMPT 2 4 "Cod. articolo " FIELD CODART @@ -79,19 +65,23 @@ BEGIN JOIN LF_ANAMAG INTO CODART==CODART JOIN CVE ALIAS 201 INTO CODTAB==CODCAT INPUT TIPO F_R_TIPO SELECT - INPUT CODCAT F_R_RICERCA SELECT - INPUT CODART F_R_RICERCA_A + INPUT CODCAT F_R_CODCAT SELECT + INPUT TIPORIGA F_R_TIPO_RIGA SELECT + INPUT CODART F_R_CODART_A INPUT UM F_R_UM + DISPLAY "Cat. merc." CODCAT DISPLAY "Codice art.@20" CODART DISPLAY "U.M." UM DISPLAY "N. scaglione" NSCAGL DISPLAY "Sconto@25" SCONTO - OUTPUT F_R_RICERCA_A CODART - OUTPUT F_R_CODART CODART + OUTPUT F_R_CODCAT CODCAT + OUTPUT F_R_TIPO_RIGA TIPORIGA + OUTPUT F_R_CODART_A CODART OUTPUT F_R_UM UM OUTPUT F_R_DESART LF_ANAMAG->DESCR OUTPUT F_R_SCA NSCAGL - MESSAGE COPY,F_R_CODART + CHECKYTPE REQUIRED + GROUP 1 END STRING F_R_CODART 20 @@ -106,10 +96,146 @@ BEGIN DISPLAY "Descrizione@50" DESCR OUTPUT F_R_CODART CODART OUTPUT F_R_DESART DESCR - VALIDATE REQIF_FUNC 1 F_R_UM - CHECKTYPE REQUIRED - WARNING "Il codice articolo e' necessario se si specifica l'unita' di misura" + CHECKYTPE FORCED + WARNING "Articolo assente" ADD RUN VE2 -3 + GROUP 1 +END + +STRING F_R_RFA_A 5 +BEGIN + PROMPT 2 4 "Raggr.fiscale " + FIELD CODART + FLAG "HU" + KEY 1 + USE LF_SCONTI + JOIN RFA INTO CODTAB==CODART + JOIN CVE ALIAS 201 INTO CODTAB==CODCAT + INPUT TIPO F_R_TIPO SELECT + INPUT CODCAT F_R_CODCAT SELECT + INPUT TIPORIGA F_R_TIPO_RIGA SELECT + INPUT CODART F_R_RFA_A + INPUT UM F_R_UM + DISPLAY "Cat. merc." CODCAT + DISPLAY "Codice art.@20" CODART + DISPLAY "U.M." UM + DISPLAY "N. scaglione" NSCAGL + DISPLAY "Sconto@25" SCONTO + OUTPUT F_R_CODCAT CODCAT + OUTPUT F_R_TIPO_RIGA TIPORIGA + OUTPUT F_R_RFA_A CODART + OUTPUT F_R_UM UM + OUTPUT F_R_DESART RFA->S0 + OUTPUT F_R_SCA NSCAGL + CHECKYTPE REQUIRED + GROUP 2 +END + +STRING F_R_RFA 5 +BEGIN + PROMPT 2 4 "Raggr.fiscale " + FIELD CODART + FLAG "U" + KEY 1 + USE RFA + INPUT CODTAB F_R_RFA + DISPLAY "Codice@20" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_R_RFA CODTAB + OUTPUT F_R_DESART S0 + CHECKYTPE FORCED + WARNING "Raggruppamento fiscale assente" + GROUP 2 +END + +STRING F_R_GRM_A 3 +BEGIN + PROMPT 2 4 "Gruppo merc. " + FIELD CODART + FLAG "HU" + KEY 1 + USE LF_SCONTI + JOIN GMC INTO CODTAB==CODART + JOIN CVE ALIAS 201 INTO CODTAB==CODCAT + INPUT TIPO F_R_TIPO SELECT + INPUT CODCAT F_R_CODCAT SELECT + INPUT TIPORIGA F_R_TIPO_RIGA SELECT + INPUT CODART F_R_GRM_A + DISPLAY "Cat. merc." CODCAT + DISPLAY "Gruppo merc." CODART + DISPLAY "U.M." UM + DISPLAY "N. scaglione" NSCAGL + DISPLAY "Sconto@25" SCONTO + OUTPUT F_R_CODCAT CODCAT + OUTPUT F_R_TIPO_RIGA TIPORIGA + OUTPUT F_R_GRM_A CODART + OUTPUT F_R_UM UM + OUTPUT F_R_DESART GMC->S0 + OUTPUT F_R_SCA NSCAGL + CHECKYTPE REQUIRED + GROUP 3 +END + +STRING F_R_GRM 3 +BEGIN + PROMPT 2 4 "Gruppo merc. " + FIELD CODART + FLAG "U" + KEY 1 + USE GMC SELECT CODTAB ? '???' + INPUT CODTAB F_R_GRM + DISPLAY "Codice@20" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_R_GRM CODTAB + OUTPUT F_R_DESART S0 + CHECKYTPE FORCED + WARNING "Gruppo merceologico assente" + GROUP 3 +END + +STRING F_R_SGM_A 5 +BEGIN + PROMPT 2 4 "Sottog.merc. " + FIELD CODART + FLAG "HU" + KEY 1 + USE LF_SCONTI + JOIN GMC INTO CODTAB==CODART + JOIN CVE ALIAS 201 INTO CODTAB==CODCAT + INPUT TIPO F_R_TIPO SELECT + INPUT CODCAT F_R_CODCAT SELECT + INPUT TIPORIGA F_R_TIPO_RIGA SELECT + INPUT CODART F_R_SGM_A + DISPLAY "Cat. merc." CODCAT + DISPLAY "Sottog.merc." CODART + DISPLAY "U.M." UM + DISPLAY "N. scaglione" NSCAGL + DISPLAY "Sconto@25" SCONTO + OUTPUT F_R_CODCAT CODCAT + OUTPUT F_R_TIPO_RIGA TIPORIGA + OUTPUT F_R_SGM_A CODART + OUTPUT F_R_UM UM + OUTPUT F_R_DESART GMC->S0 + OUTPUT F_R_SCA NSCAGL + CHECKYTPE REQUIRED + GROUP 3 +END + +STRING F_R_SGM 5 +BEGIN + PROMPT 2 4 "Sottog.merc. " + FIELD CODART + FLAG "U" + KEY 1 + COPY USE F_R_GRM + INPUT CODTAB F_R_SGM + DISPLAY "Codice@20" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_R_SGM CODTAB + OUTPUT F_R_DESART S0 + CHECKYTPE FORCED + WARNING "Sottogruppo merceologico assente" + GROUP 4 END STRING F_R_UM 2 @@ -125,7 +251,8 @@ BEGIN DISPLAY "U.M." UM DISPLAY "Descrizione@50" %UMS->S0 OUTPUT F_R_UM UM - CHECKTYPE REQUIRED + CHECKTYPE FORCED + GROUP 1 END NUMBER F_R_SCA 1