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);
}
//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