diff --git a/lv/lv0400.cpp b/lv/lv0400.cpp index f5433c43e..a2041e808 100755 --- a/lv/lv0400.cpp +++ b/lv/lv0400.cpp @@ -126,7 +126,6 @@ bool TContratti_msk::on_art_select() rowmask.set(S_CONSMESE, consmonth); } - //instanzio una cache sull'anagrafica di magazzino //per leggere il valore di PPCONF corretto e sempre aggiornato const TRectype& anamag = cache().get(LF_ANAMAG, codart); @@ -274,6 +273,8 @@ bool TContratti_msk::on_field_event(TOperable_field& o,TField_event e,long jolly case F_NOLCICTE: case F_VCARTCLITE: { + //copio il valore dei campi in questione della testata su tutte le righe se F_TIPOFORFTE è diverso da NESSUNO, + //altrimente lascio quello che c'è const int tipoforfte = atoi(get(F_TIPOFORFTE)); if (e == fe_modify || e == fe_init) { @@ -311,10 +312,6 @@ bool TContratti_msk::on_field_event(TOperable_field& o,TField_event e,long jolly FOR_EACH_SHEET_ROW(ss, r, row) { TToken_string& riga = ss.row(r); - - //riga.add(tipoforfte, pos_tipoforf); - //riga.add('I', pos_nolcic); - //riga.add('A', pos_vcartcli); ss.enable_cell(r, pos_tipoforf); ss.enable_cell(r, pos_nolcic); ss.enable_cell(r, pos_vcartcli); @@ -413,8 +410,9 @@ bool TContratti_msk::on_field_event(TOperable_field& o,TField_event e,long jolly if (sel >= 0) { const short rowid = o.dlg() - 400; - const int index = ss.cid2index(rowid); - const TString& oldval = ss.sheet_mask().get(rowid); + const int index = ss.cid2index(rowid); + + const char* oldval = ss.row(sel).get(index); const TString& newval = o.get(); if (newval != oldval) { @@ -524,36 +522,39 @@ void TContratti_app::save_rows(const TMask& m) fr->write(row->get(pos), file.curr()); } } - file.rewrite_write(); //leggo il codart const TString80 codart = row->get(righe.cid2index(S_CODART)); - //se il codart è pieno e le quantità sono modificabili (da configurazione) - if (codart.full() && ini_get_string(CONFIG_DITTA, "lv", "Qtamodi") == "X") + if (codart.full()) { - TArticolo_lavanderie& artrec = cached_article_laundry(codart, 'C', clifo, indsp); - TRecmag_lavanderie& reclav = (TRecmag_lavanderie&)artrec.find_rec(year); - - //gestione LF_CLIFOGIAC - if(!reclav.empty()) + file.rewrite_write(); + //se il codart è pieno e le quantità sono modificabili (da configurazione) + if (ini_get_string(CONFIG_DITTA, "lv", "Qtamodi") == "X") { - //riscrivo la dotazione iniziale convertita nell'unità di misura principale - const real dotin = row->get(righe.cid2index(S_DOTIN)); - reclav.put(CLIFOGIAC_DOTIN, dotin); - - //riscrivo la dotazione odierna convertita nell'unità di misura principale - const real dotod = row->get(righe.cid2index(S_DOTOD)); - reclav.put(CLIFOGIAC_DOTOD, dotod); - - //riscrivo la dotazione temporanea convertita nell'unità di misura principale - const real dottm = row->get(righe.cid2index(S_DOTTMP)); - reclav.put(CLIFOGIAC_DOTTM, dottm); + TArticolo_lavanderie& artrec = cached_article_laundry(codart, 'C', clifo, indsp); + TRecmag_lavanderie& reclav = (TRecmag_lavanderie&)artrec.find_rec(year); - //riscrivo il consegnato anno convertito nell'unità di misura principale - const real conan = row->get(righe.cid2index(S_CONSANNO)); - reclav.put(CLIFOGIAC_CONSANNO, conan); + //gestione LF_CLIFOGIAC + if(!reclav.empty()) + { + //riscrivo la dotazione iniziale convertita nell'unità di misura principale + const real dotin = row->get(righe.cid2index(S_DOTIN)); + reclav.put(CLIFOGIAC_DOTIN, dotin); + + //riscrivo la dotazione odierna convertita nell'unità di misura principale + const real dotod = row->get(righe.cid2index(S_DOTOD)); + reclav.put(CLIFOGIAC_DOTOD, dotod); + + //riscrivo la dotazione temporanea convertita nell'unità di misura principale + const real dottm = row->get(righe.cid2index(S_DOTTMP)); + reclav.put(CLIFOGIAC_DOTTM, dottm); - reclav.rewrite_write(magcli); + //riscrivo il consegnato anno convertito nell'unità di misura principale + const real conan = row->get(righe.cid2index(S_CONSANNO)); + reclav.put(CLIFOGIAC_CONSANNO, conan); + + reclav.rewrite_write(magcli); + } } } } //fine FOR_EACH_ROW @@ -636,7 +637,6 @@ bool TContratti_app:: get_next_key(TToken_string& key) } //READ: ridefinizione del metodo read() delle TRealtion_application -//AGGIUNGERE LA CONVERSIONE int TContratti_app::read(TMask& m) { //eseguo la read() standard