diff --git a/ve/ve2500.cpp b/ve/ve2500.cpp index bf707d652..5488bb6e0 100755 --- a/ve/ve2500.cpp +++ b/ve/ve2500.cpp @@ -47,7 +47,7 @@ TGestione_listini_semplice_mask_genera::TGestione_listini_semplice_mask_genera(T } // COPIA LISTINO -//-------------- +//---------------------------------------------------------------------------------------------------------------------- //metodo che restituisce l'indice della riga dello sheet che contiene //la coppia tipo-articolo desiderata (-1 se non lo trova) int TGestione_listini_semplice_mask_genera::find_art_in_sheet(const char tipo, const TString& cod, @@ -119,21 +119,25 @@ void TGestione_listini_semplice_mask_genera::copia_listino() //sheet righe listino da riempire nella maschera principale TSheet_field& sf_righe = _main_mask->sfield(F_L_RIGHE); TMask& msk = sf_righe.sheet_mask(); - //record corrente del recordset + + //record corrente del recordset (non const perchč la modifica eventualmente causa ricarico) TRectype& riga_corrente = righe_listino.cursor()->curr(); TString80 val; - //alcune date utili nelle righe + //alcune date utili nelle righe; prese qui perchč vengono dalla testata o dalla maschera e sono poi riportate.. + //..nelle righe TDate data_ult_aum = _main_mask->get_date(F_L_VALINI); if (!data_ult_aum.ok()) data_ult_aum = TDate(TODAY); TDate data_prz_storico = rec_ori_testata.get_date(CONDV_VALIN); if (!data_prz_storico.ok()) data_prz_storico = data_ult_aum - 1L; + //scorre tutte le righe listino del recordset e le sbatte nello sheet della maschera principale for (bool ok = righe_listino.move_first(); ok; ok = righe_listino.move_next()) { - pi.addstatus(1); + if (!pi.addstatus(1)) + break; //controlla che il record non esista per caso gią nel listino di destinazione (caso della copia listino in pił.. //..fasi separate: un lavoro da mica normali!). Prende quindi la chiave di riga e cerca nello sheet... const char tiporiga = riga_corrente.get_char(RCONDV_TIPORIGA); @@ -175,7 +179,7 @@ void TGestione_listini_semplice_mask_genera::copia_listino() //CREA DA ANAGRAFICA ARTICOLI -//---------------------------- +//---------------------------------------------------------------------------------------------------------------------- void TGestione_listini_semplice_mask_genera::crea_da_anamag() { //prende i dati dalla maschera per crearsi una query di generazione righe sheet @@ -221,9 +225,12 @@ void TGestione_listini_semplice_mask_genera::crea_da_anamag() //fase riempimento sheet maschera principale TSheet_field& sf_righe = _main_mask->sfield(F_L_RIGHE); + //attenzione! ci possono essere articoli presenti pił volte in UMART con diverse unitą di misura: li mette tutti const bool gest_um = _main_mask->get_bool(F_L_GESTUM); TRecord_array arr_art_um(LF_UMART, UMART_NRIGA); + //la gestione omaggi (misteriosamente definita gestsco) attiva l'iva const bool gest_sco = _main_mask->get_bool(F_L_GESTSCO); + //per ogni riga del recordset va ad aggiornare lo sheet sulla maschera (aggiunge la riga) for (bool ok = recset.move_first(); ok; ok = recset.move_next()) { @@ -235,7 +242,7 @@ void TGestione_listini_semplice_mask_genera::crea_da_anamag() key->put(UMART_CODART, codart); arr_art_um.read(key); const int num_um = gest_um ? arr_art_um.rows() : 1; - + //se ci sono pił unitą di misura per lo stesso codart ci sono tanti record quante um for (int u = 1; u <= num_um; u++) { TToken_string& row = sf_righe.row(-1); @@ -266,7 +273,8 @@ void TGestione_listini_semplice_mask_genera::crea_da_anamag() } - +// GESTIONE COPIA/GENERA IN AUTOMATICO +//------------------------------------ void TGestione_listini_semplice_mask_genera::crea_listino() { //per prima cosa controlla se deve copiare da un listino esistente o generare da nuovo @@ -703,7 +711,8 @@ bool TGestione_listini_semplice::remove() //strage di righe! for (bool ok = righelist.move_first(); ok; ok = righelist.move_next()) { - pi.addstatus(1); + if (!pi.addstatus(1)) + break; righelist.cursor()->relation()->remove(); } diff --git a/ve/ve2500b.uml b/ve/ve2500b.uml index 59955a722..2a96cc919 100755 --- a/ve/ve2500b.uml +++ b/ve/ve2500b.uml @@ -12,13 +12,9 @@ RADIOBUTTON F_SELECT 76 BEGIN PROMPT 1 1 "@bTipologia di generazione" ITEM "1|Copia da listino esistente" - MESSAGE HIDE,2@|HIDE,3@|HIDE,4@|SHOW,1@ + MESSAGE HIDE,2@|SHOW,1@ ITEM "2|Anagrafica articoli" - MESSAGE HIDE,1@|HIDE,3@|HIDE,4@|SHOW,2@ - ITEM "3|Gruppo merceologico" - MESSAGE HIDE,1@|HIDE,2@|HIDE,4@|SHOW,3@ - ITEM "4|Raggruppamento fiscale" - MESSAGE HIDE,1@|HIDE,2@|HIDE,3@|SHOW,4@ + MESSAGE HIDE,1@|SHOW,2@ END //Copia listino esistente @@ -169,14 +165,15 @@ BEGIN OUTPUT F_GRMERC CODTAB[1,3] OUTPUT F_DESGRMERC S0 CHECKTYPE NORMAL - GROUP 2 3 + GROUP 2 END STRING F_SOTGRMERC 5 BEGIN PROMPT 20 10 "" FLAGS "U" - USE GMC SELECT CODTAB[4,5] != "" + USE GMC + //SELECT CODTAB[4,5] != "" COPY INPUT F_GRMERC INPUT CODTAB[4,5] F_SOTGRMERC DISPLAY "Gruppo" CODTAB[1,3] @@ -185,7 +182,7 @@ BEGIN COPY OUTPUT F_GRMERC OUTPUT F_SOTGRMERC CODTAB[4,5] CHECKTYPE NORMAL - GROUP 2 3 + GROUP 2 END STRING F_DESGRMERC 50 45 @@ -198,7 +195,7 @@ BEGIN DISPLAY "Sottogruppo" CODTAB[4,5] COPY OUTPUT F_SOTGRMERC CHECKTYPE NORMAL - GROUP 2 3 + GROUP 2 END STRING F_RAGFIS 5 @@ -212,7 +209,7 @@ BEGIN OUTPUT F_RAGFIS CODTAB OUTPUT F_DESRAGFIS S0 CHECKTYPE NORMAL - GROUP 2 4 + GROUP 2 END STRING F_DESRAGFIS 50 @@ -224,24 +221,9 @@ BEGIN DISPLAY "Ragg. fisc." CODTAB COPY OUTPUT F_RAGFIS CHECKTYPE NORMAL - GROUP 2 4 + GROUP 2 END -//Generazione da gruppo merceologico -//----------------------------------------------- -GROUPBOX DLG_NULL 76 3 -BEGIN - PROMPT 1 9 "@bGruppo merceologico" - GROUP 3 -END - -//Generazione da raggruppamento fiscale -//----------------------------------------------- -GROUPBOX DLG_NULL 76 3 -BEGIN - PROMPT 1 10 "@bRaggruppamento fiscale" - GROUP 4 -END ENDPAGE diff --git a/ve/vetbgmc.uml b/ve/vetbgmc.uml index f7ff2f0e5..85b9adbc6 100755 --- a/ve/vetbgmc.uml +++ b/ve/vetbgmc.uml @@ -20,7 +20,7 @@ BEGIN KEY 1 USE GMC SELECT CODTAB[4,5]=="" INPUT CODTAB F_CODGRU - DISPLAY "Gruppo" CODTAB[1,3] + DISPLAY "Gruppo" CODTAB[1,3] DISPLAY "Descrizione gruppo@50" S0 OUTPUT F_CODGRU CODTAB[1,3] OUTPUT H_CODGRU CODTAB[1,3] @@ -260,14 +260,14 @@ END STRING F_SCONTO 25 BEGIN - PROMPT 2 13 "Sconto " - FIELD S4 + PROMPT 2 13 "Sconto " + FIELD S4 END STRING F_RICARICO 25 BEGIN - PROMPT 38 13 "Ricarico " - FIELD S5 + PROMPT 38 13 "Ricarico " + FIELD S5 END TEXT -1