Patch level : 10.0

Files correlati     : lv0
Ricompilazione Demo : [ ]
Commento            :
Corretti metodi write e rewrite perche' prima salvavano anche le righe con itinerario vuoto nello sheet dei passaggi planning per contratto


git-svn-id: svn://10.65.10.50/trunk@17986 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca83 2009-01-07 10:58:58 +00:00
parent 7d96594e0a
commit 19cd73372b

View File

@ -68,7 +68,7 @@ class TPass_plan_contr : public TRelation_application
long _codcont; long _codcont;
private: private:
void genera_giri(const int err, const long codli); //richiama la generazione giri in automatico void genera_giri(const long codli); //richiama la generazione giri in automatico
protected: protected:
virtual void init_query_mode(TMask& m); virtual void init_query_mode(TMask& m);
@ -121,36 +121,32 @@ int TPass_plan_contr::read(TMask& m)
//GENERA_GIRI: questa funzione richiama la generazione giri in automatico... //GENERA_GIRI: questa funzione richiama la generazione giri in automatico...
//..se questa possibilità è prevista in configurazione //..se questa possibilità è prevista in configurazione
void TPass_plan_contr::genera_giri(const int err, const long codcli) void TPass_plan_contr::genera_giri(const long codcli)
{ {
if (err == NOERR) //la scrittura automatica dei giri viene fatta solo se è settato l'apposito flag...
//...nella configurazione di modulo
TConfig* configlv = new TConfig(CONFIG_DITTA,"lv");
if (configlv->get("Autgiri") == "X")
{ {
//la scrittura automatica dei giri viene fatta solo se è settato l'apposito flag... //richiamo il programma lv2100.cpp per generare i giri in autmatico dalla data odierna...
//...nella configurazione di modulo //...alla data dell'ultimo giro già generato
TConfig* configlv = new TConfig(CONFIG_DITTA,"lv"); TFilename fname;
if (configlv->get("Autgiri") == "X") fname.tempdir();
{ fname.add("autogiri.ini");
//richiamo il programma lv2100.cpp per generare i giri in autmatico dalla data odierna...
//...alla data dell'ultimo giro già generato
TFilename fname;
fname.tempdir();
fname.add("autogiri.ini");
TConfig ini(fname,"main"); TConfig ini(fname,"main");
ini.set("transaction", "update"); ini.set("transaction", "update");
ini.set_paragraph("167"); ini.set_paragraph("167");
ini.set("CODCF", codcli); ini.set("CODCF", codcli);
ini.set_paragraph("main"); ini.set_paragraph("main");
TString str; TString str;
str << "lv2 -0 -i" << fname; str << "lv2 -0 -i" << fname;
TExternal_app app(str); TExternal_app app(str);
app.run(); app.run();
fname.fremove(); fname.fremove();
}
} }
return;
} }
//WRITE: ridefinizione metodo write delle TRelation //WRITE: ridefinizione metodo write delle TRelation
@ -159,15 +155,19 @@ int TPass_plan_contr::write(const TMask& m)
if (_mask->field(F_CODCF).empty() || _mask->field(F_CODCONT).empty()) if (_mask->field(F_CODCF).empty() || _mask->field(F_CODCONT).empty())
return _isnocurkey; return _isnocurkey;
const long codcli = _mask->get_long(F_CODCF); TSheet_field& pc = m.sfield(F_PASPLAN);
FOR_EACH_SHEET_ROW_BACK (pc, r, row)
if (row->get_int(2) == 0)
pc.destroy(r, false);
const int err = TRelation_application::write(m); const int err = TRelation_application::write(m);
if (err == NOERR)
{
TSheet_field& pc = m.sfield(F_PASPLAN);
if (pc.items() > 0) if (err == NOERR && pc.items() > 0)
genera_giri(err, codcli); {
const long codcli = _mask->get_long(F_CODCF);
genera_giri(codcli);
} }
return err; return err;
} }
@ -178,17 +178,20 @@ int TPass_plan_contr::rewrite(const TMask& m)
if (_mask->field(F_CODCF).empty() || _mask->field(F_CODCONT).empty()) if (_mask->field(F_CODCF).empty() || _mask->field(F_CODCONT).empty())
return _isnocurkey; return _isnocurkey;
const long codcli = _mask->get_long(F_CODCF); TSheet_field& pc = m.sfield(F_PASPLAN);
FOR_EACH_SHEET_ROW_BACK (pc, r, row)
if (row->get_int(2) == 0)
pc.destroy(r, false);
const int err = TRelation_application::rewrite(m); const int err = TRelation_application::rewrite(m);
if (err == NOERR)
if (err == NOERR && pc.items() > 0)
{ {
TSheet_field& pc = m.sfield(F_PASPLAN); const long codcli = _mask->get_long(F_CODCF);
if (pc.items() > 0) genera_giri(codcli);
genera_giri(err, codcli);
} }
return err; return err;
} }