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 <defmask.h>
#include <execp.h>
#include <reprint.h>
#include <reputils.h>
#include <utility.h>
#include "lvlib.h"
@ -148,10 +150,10 @@ class TConta_pulito_msk: public TAutomask
protected:
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);
bool genera_documenti(const TFilename& file, TAssoc_array& documenti);
void prepara_movimenti(const TFilename& file, TAssoc_array& movimenti);
bool genera_documenti(const TFilename& file, TAssoc_array& documenti, TLog_report& logrep);
void prepara_movimenti(const TFilename& file, TAssoc_array& movimenti, TLog_report& logrep);
bool genera_movmag(TAssoc_array& movimenti);
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 movimenti;
TLog_report logrep("");
//a seconda del bottone premuto esegui un metodo diverso
switch (f.dlg())
{
case DLG_IMPORT:
if(e == fe_button)
{
if (elabora_file(file))
if (elabora_file(file, logrep))
{
sposta_file(file);
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:
if(e == fe_button)
{
genera_documenti(file, documenti);
genera_documenti(file, documenti, logrep);
if (documenti.items() > 0)
{
@ -221,6 +225,9 @@ bool TConta_pulito_msk::on_field_event(TOperable_field& f,TField_event e,long jo
}
message_box(TR("Generazione dei documenti terminata"));
}
else
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"));
}
@ -228,27 +235,47 @@ bool TConta_pulito_msk::on_field_event(TOperable_field& f,TField_event e,long jo
case DLG_PACKTMAG:
if(e == fe_button)
{
prepara_movimenti(file, movimenti);
prepara_movimenti(file, movimenti, logrep);
if (movimenti.items() > 0)
{
genera_movmag(movimenti);
message_box(TR("Generazione dei movimenti di magazzino terminata"));
}
else
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;
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;
}
//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 (_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;
}
@ -299,6 +326,9 @@ bool TConta_pulito_msk::elabora_file(const TFilename& file)
{
TString str;
str << "ATTENZIONE: non è stata trovata nessuna unità di misura valida per l'articolo " << codart;
if (_auto == "A")
logrep.log(2, str);
else
warning_box(str);
}
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
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
if (file.exist())
{
elabora_file(file);
elabora_file(file, logrep);
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
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
if (file.exist())
{
elabora_file(file);
elabora_file(file, logrep);
sposta_file(file);
}
@ -826,7 +856,6 @@ bool TConta_pulito_app::destroy()
//TRANSFER: metodo che decide cosa effettivamente far fare al programma a seconda delle indicazioni ricevute
bool TConta_pulito_app::transfer()
{
return true;
}