Patch level : 10.0 patch 326

Files correlati     : lv0
Ricompilazione Demo : [ ]
Commento            :
0001340: dotazione temporanea sul contratto
Descrizione  sul contratto ho i campi delle dotazioni temporanee pieni per vecchi errori
ma su alcune righe non riesco a cancellarli, solo se vado nel dettaglio della riga e li cancello da li.
dalla videata principale invece cancello la riga, vado su quella successiva , ritorno su quela e le date ci sono ancora.
Qualche volta invece funziona (molto poche) sulle 10 righe del cliente 6
ne ha cancellate 4


git-svn-id: svn://10.65.10.50/trunk@18979 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca83 2009-06-04 08:30:28 +00:00
parent be7b00e49a
commit e46503969c

View File

@ -126,7 +126,6 @@ bool TContratti_msk::on_art_select()
rowmask.set(S_CONSMESE, consmonth); rowmask.set(S_CONSMESE, consmonth);
} }
//instanzio una cache sull'anagrafica di magazzino //instanzio una cache sull'anagrafica di magazzino
//per leggere il valore di PPCONF corretto e sempre aggiornato //per leggere il valore di PPCONF corretto e sempre aggiornato
const TRectype& anamag = cache().get(LF_ANAMAG, codart); 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_NOLCICTE:
case F_VCARTCLITE: 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)); const int tipoforfte = atoi(get(F_TIPOFORFTE));
if (e == fe_modify || e == fe_init) 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) FOR_EACH_SHEET_ROW(ss, r, row)
{ {
TToken_string& riga = ss.row(r); 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_tipoforf);
ss.enable_cell(r, pos_nolcic); ss.enable_cell(r, pos_nolcic);
ss.enable_cell(r, pos_vcartcli); 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) if (sel >= 0)
{ {
const short rowid = o.dlg() - 400; const short rowid = o.dlg() - 400;
const int index = ss.cid2index(rowid); const int index = ss.cid2index(rowid);
const TString& oldval = ss.sheet_mask().get(rowid);
const char* oldval = ss.row(sel).get(index);
const TString& newval = o.get(); const TString& newval = o.get();
if (newval != oldval) if (newval != oldval)
{ {
@ -524,36 +522,39 @@ void TContratti_app::save_rows(const TMask& m)
fr->write(row->get(pos), file.curr()); fr->write(row->get(pos), file.curr());
} }
} }
file.rewrite_write();
//leggo il codart //leggo il codart
const TString80 codart = row->get(righe.cid2index(S_CODART)); const TString80 codart = row->get(righe.cid2index(S_CODART));
//se il codart è pieno e le quantità sono modificabili (da configurazione) if (codart.full())
if (codart.full() && ini_get_string(CONFIG_DITTA, "lv", "Qtamodi") == "X")
{ {
TArticolo_lavanderie& artrec = cached_article_laundry(codart, 'C', clifo, indsp); file.rewrite_write();
TRecmag_lavanderie& reclav = (TRecmag_lavanderie&)artrec.find_rec(year); //se il codart è pieno e le quantità sono modificabili (da configurazione)
if (ini_get_string(CONFIG_DITTA, "lv", "Qtamodi") == "X")
//gestione LF_CLIFOGIAC
if(!reclav.empty())
{ {
//riscrivo la dotazione iniziale convertita nell'unità di misura principale TArticolo_lavanderie& artrec = cached_article_laundry(codart, 'C', clifo, indsp);
const real dotin = row->get(righe.cid2index(S_DOTIN)); TRecmag_lavanderie& reclav = (TRecmag_lavanderie&)artrec.find_rec(year);
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);
//riscrivo il consegnato anno convertito nell'unità di misura principale //gestione LF_CLIFOGIAC
const real conan = row->get(righe.cid2index(S_CONSANNO)); if(!reclav.empty())
reclav.put(CLIFOGIAC_CONSANNO, conan); {
//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 } //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 //READ: ridefinizione del metodo read() delle TRealtion_application
//AGGIUNGERE LA CONVERSIONE
int TContratti_app::read(TMask& m) int TContratti_app::read(TMask& m)
{ {
//eseguo la read() standard //eseguo la read() standard