diff --git a/lv/lv0400.cpp b/lv/lv0400.cpp index 07ad48cb4..4fa1e56a3 100755 --- a/lv/lv0400.cpp +++ b/lv/lv0400.cpp @@ -370,7 +370,27 @@ bool TContratti_msk::on_field_event(TOperable_field& o,TField_event e,long jolly if (field(F_RITAUDTTMP).get()[0] != 'X') { warning_box("E' necessario prima attivare il ritiro automatico della dotazione temporanea in testata"); - o.set(""); + o.set(""); + } + } + + if (e == fe_modify) + { + TSheet_field& ss = sfield(F_RIGHE); + const int sel = ss.selected(); + + if (sel >= 0) + { + const int index = ss.cid2index(S_RITAUDTTMP); + + const char* oldval = ss.row(sel).get(index); + const TString& newval = o.get(); + if (newval != oldval) + { + ss.sheet_mask().set(S_RITAUDTTMP,newval); + ss.row(sel).add(newval,index); + ss.force_update(sel); + } } } } @@ -468,15 +488,16 @@ bool TContratti_msk::on_field_event(TOperable_field& o,TField_event e,long jolly //e lascio tutto invariato if (_artrig.full() && codart != _artrig) { - if (yesno_box("Si desidera veramente modificare l'articolo %s",(const char*) _artrig)) - { - m.set(S_CODART, _artrig); - TToken_string& row = ss.row(ss.selected()); - row.add(_artrig, 0); - ss.force_update(ss.selected()); - } - else - _artrig = codart; + if (yesno_box("Si desidera veramente modificare l'articolo %s",(const char*) _artrig)) + _artrig = codart; + + else + { + m.set(S_CODART, _artrig); + TToken_string& row = ss.row(ss.selected()); + row.add(_artrig, 0); + ss.force_update(ss.selected()); + } } //se all'articolo è associata un'unità di misura, la propongo //in automatico e richiamo il metodo ON_ART_SELECT(); altrimenti lo richiamo @@ -547,6 +568,7 @@ bool TContratti_msk::on_field_event(TOperable_field& o,TField_event e,long jolly { TSheet_field& ss = sfield(F_RIGHE); const int sel = ss.selected(); + if (sel >= 0) { const short rowid = o.dlg() - 400; @@ -858,7 +880,7 @@ int TContratti_app::read(TMask& m) //estraggo il record corrispondente su LF_CLIFOGIAC TArticolo_lavanderie& artrec = cached_article_laundry(codart, 'C', clifo, indsp); - artrec.find_rec(0); //svuoto la ccahe a forza + artrec.find_rec(0); //svuoto la cache a forza const TRecmag_lavanderie& reclav = artrec.find_rec(year); //lettura dei dati da LF_CLIFOGIAC //se esiste il record su LF_CLIFOGIAC, recupero l'unità di misura dalla riga dello sheet selezionata