Patch level : 10.0 patch 514

Files correlati     : lv2
Ricompilazione Demo : [ ]
Commento            :
Nell'acquisizione da pulito gli eventuali errori vcengono salvato su un file .log e non più mandati a video (quando il programma è lanciato da linea di comando)


git-svn-id: svn://10.65.10.50/trunk@19622 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca83 2009-11-13 11:32:02 +00:00
parent 083a031429
commit 33e9f8b468

View File

@ -2,6 +2,8 @@
#include <automask.h> #include <automask.h>
#include <defmask.h> #include <defmask.h>
#include <execp.h> #include <execp.h>
#include <reprint.h>
#include <reputils.h>
#include <utility.h> #include <utility.h>
#include "lvlib.h" #include "lvlib.h"
@ -138,20 +140,20 @@ TBuoni_cache::TBuoni_cache() : TCache(17)
//classe TConta_pulito_msk //classe TConta_pulito_msk
class TConta_pulito_msk: public TAutomask class TConta_pulito_msk: public TAutomask
{ {
TString4 _auto; TString4 _auto;
TString4 _giri; TString4 _giri;
bool _percli; bool _percli;
bool _permag; bool _permag;
long _codcf; long _codcf;
TString4 _print; TString4 _print;
protected: protected:
virtual bool on_field_event(TOperable_field& o,TField_event e,long jolly); virtual bool on_field_event(TOperable_field& o,TField_event e,long jolly);
bool elabora_file(const TFilename& file); bool elabora_file(const TFilename& file, TLog_report& logrep);
void sposta_file(const TFilename& file); void sposta_file(const TFilename& file);
bool genera_documenti(const TFilename& file, TAssoc_array& documenti); bool genera_documenti(const TFilename& file, TAssoc_array& documenti, TLog_report& logrep);
void prepara_movimenti(const TFilename& file, TAssoc_array& movimenti); void prepara_movimenti(const TFilename& file, TAssoc_array& movimenti, TLog_report& logrep);
bool genera_movmag(TAssoc_array& movimenti); bool genera_movmag(TAssoc_array& movimenti);
public: public:
@ -170,13 +172,15 @@ bool TConta_pulito_msk::on_field_event(TOperable_field& f,TField_event e,long jo
TAssoc_array documenti; TAssoc_array documenti;
TAssoc_array movimenti; TAssoc_array movimenti;
TLog_report logrep("");
//a seconda del bottone premuto esegui un metodo diverso //a seconda del bottone premuto esegui un metodo diverso
switch (f.dlg()) switch (f.dlg())
{ {
case DLG_IMPORT: case DLG_IMPORT:
if(e == fe_button) if(e == fe_button)
{ {
if (elabora_file(file)) if (elabora_file(file, logrep))
{ {
sposta_file(file); sposta_file(file);
message_box(TR("Importazione dei dati terminata")); message_box(TR("Importazione dei dati terminata"));
@ -186,7 +190,7 @@ bool TConta_pulito_msk::on_field_event(TOperable_field& f,TField_event e,long jo
case DLG_PACKTCLI: case DLG_PACKTCLI:
if(e == fe_button) if(e == fe_button)
{ {
genera_documenti(file, documenti); genera_documenti(file, documenti, logrep);
if (documenti.items() > 0) if (documenti.items() > 0)
{ {
@ -222,34 +226,57 @@ bool TConta_pulito_msk::on_field_event(TOperable_field& f,TField_event e,long jo
message_box(TR("Generazione dei documenti terminata")); message_box(TR("Generazione dei documenti terminata"));
} }
else else
message_box(TR("Non è stato possibile generare nessun documento con i parametri fissati")); if (_auto == "A")
logrep.log(2, "Non è stato possibile generare nessun documento con i parametri fissati");
else
message_box(TR("Non è stato possibile generare nessun documento con i parametri fissati"));
} }
break; break;
case DLG_PACKTMAG: case DLG_PACKTMAG:
if(e == fe_button) if(e == fe_button)
{ {
prepara_movimenti(file, movimenti); prepara_movimenti(file, movimenti, logrep);
if (movimenti.items() > 0) if (movimenti.items() > 0)
{ {
genera_movmag(movimenti); genera_movmag(movimenti);
message_box(TR("Generazione dei movimenti di magazzino terminata")); message_box(TR("Generazione dei movimenti di magazzino terminata"));
} }
else else
message_box(TR("Non è stato possibile generare nessun documento con i parametri fissati")); if (_auto == "A")
logrep.log(2, "Non è stato possibile generare nessun documento con i parametri fissati");
else
message_box(TR("Non è stato possibile generare nessun documento con i parametri fissati"));
} }
break; break;
default: break; default: break;
} }
TReport_book buc;
buc.add(logrep);
//genero il file .log che contiene gli errori
if (buc.pages() > 0)
{
TString str = file.name_only();
str << ".log";
TFilename log = file.path();
log.add(str);
buc.export_text(log, false);
}
return true; return true;
} }
//ELABORA_FILE: metodo che importa il file e prepara la tabella pacchi //ELABORA_FILE: metodo che importa il file e prepara la tabella pacchi
bool TConta_pulito_msk::elabora_file(const TFilename& file) bool TConta_pulito_msk::elabora_file(const TFilename& file, TLog_report& logrep)
{ {
if (!file.exist()) if (!file.exist())
{ {
warning_box(TR("ATTENZIONE: il file che si desidera importare non esiste!")); if (_auto == "A")
logrep.log(2, "ATTENZIONE: il file che si desidera importare non esiste!");
else
warning_box(TR("ATTENZIONE: il file che si desidera importare non esiste!"));
return false; return false;
} }
@ -299,7 +326,10 @@ bool TConta_pulito_msk::elabora_file(const TFilename& file)
{ {
TString str; TString str;
str << "ATTENZIONE: non è stata trovata nessuna unità di misura valida per l'articolo " << codart; str << "ATTENZIONE: non è stata trovata nessuna unità di misura valida per l'articolo " << codart;
warning_box(str); if (_auto == "A")
logrep.log(2, str);
else
warning_box(str);
} }
else else
{ {
@ -331,12 +361,12 @@ void TConta_pulito_msk::sposta_file(const TFilename& file)
} }
//GENERA_DOCUMENTI: metodo che genera i documenti partendo dal file pacchi //GENERA_DOCUMENTI: metodo che genera i documenti partendo dal file pacchi
bool TConta_pulito_msk::genera_documenti(const TFilename& file, TAssoc_array& documenti) bool TConta_pulito_msk::genera_documenti(const TFilename& file, TAssoc_array& documenti, TLog_report& logrep)
{ {
//se esite un file da importare, lo importo e lo sposto //se esite un file da importare, lo importo e lo sposto
if (file.exist()) if (file.exist())
{ {
elabora_file(file); elabora_file(file, logrep);
sposta_file(file); sposta_file(file);
} }
@ -541,12 +571,12 @@ bool TConta_pulito_msk::genera_documenti(const TFilename& file, TAssoc_array& do
} }
//PREPARA_MOVIMENTI: questo metodo prepara il TAssoc_array che contiene i movimenti da generare //PREPARA_MOVIMENTI: questo metodo prepara il TAssoc_array che contiene i movimenti da generare
void TConta_pulito_msk::prepara_movimenti(const TFilename& file, TAssoc_array& movimenti) void TConta_pulito_msk::prepara_movimenti(const TFilename& file, TAssoc_array& movimenti, TLog_report& logrep)
{ {
//se esite un file da importare, lo importo e lo sposto //se esite un file da importare, lo importo e lo sposto
if (file.exist()) if (file.exist())
{ {
elabora_file(file); elabora_file(file, logrep);
sposta_file(file); sposta_file(file);
} }
@ -803,7 +833,7 @@ bool TConta_pulito_app::create()
case 'M': _cliormag = 'M'; break; case 'M': _cliormag = 'M'; break;
case 'I': _cliormag = 'I'; break; case 'I': _cliormag = 'I'; break;
default: break; default: break;
} }
} }
else else
{ {
@ -825,8 +855,7 @@ bool TConta_pulito_app::destroy()
//TRANSFER: metodo che decide cosa effettivamente far fare al programma a seconda delle indicazioni ricevute //TRANSFER: metodo che decide cosa effettivamente far fare al programma a seconda delle indicazioni ricevute
bool TConta_pulito_app::transfer() bool TConta_pulito_app::transfer()
{ {
return true; return true;
} }