Patch level : 10.0 56

Files correlati     : ba7.exe
Ricompilazione Demo : [ ]
Commento           :

Aggiunta funzione di backup delle transazioni


git-svn-id: svn://10.65.10.50/trunk@16645 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2008-05-22 11:34:38 +00:00
parent 71c085cc9d
commit e0fbf5b54c
3 changed files with 37 additions and 5 deletions

View File

@ -494,7 +494,7 @@ protected:
void find_redundant_messages(); void find_redundant_messages();
void track(const TMail_message& msg, const TString& app, const TString& action, int err); void track(const TMail_message& msg, const TString& app, const TString& action, int err);
bool exec_app(int & err, const TString& appname, TMail_message & msg); bool exec_app(int & err, const TString& appname, TMail_message & msg, TToken_string & sh_row);
void scan_dir(const TFilename& dir, TMail_messages& box) const; void scan_dir(const TFilename& dir, TMail_messages& box) const;
public: public:
@ -643,6 +643,8 @@ void TMailer_mask::scan_dir(const TFilename& dir, TMail_messages& box) const
{ {
char* buffer = text.get_buffer(size); char* buffer = text.get_buffer(size);
TScanner scanner(*row); TScanner scanner(*row);
memset(buffer, 0 , size);
scanner.read(buffer, size); scanner.read(buffer, size);
buffer[size] = '\0'; buffer[size] = '\0';
@ -904,7 +906,7 @@ void TMailer_mask::track(const TMail_message& msg, const TString& app, const TSt
} }
} }
bool TMailer_mask::exec_app(int& err, const TString& appname, TMail_message& msg) bool TMailer_mask::exec_app(int& err, const TString& appname, TMail_message& msg, TToken_string & sh_row)
{ {
err = NOERR; err = NOERR;
TString action; TString action;
@ -958,6 +960,27 @@ bool TMailer_mask::exec_app(int& err, const TString& appname, TMail_message& msg
err = 0; err = 0;
else else
err = ini.get_int("Error"); err = ini.get_int("Error");
const TString& backup = get(F_BACKUP);
if (backup.full())
{
TFilename file;
TString id;
TSheet_field& sf = sfield(F_MESSAGES);
sh_row.get(sf.cid2index(F_ID), id);
sh_row.get(sf.cid2index(F_SENDER), file); // Cartella di provenienza
file.add(id);
file.ext("ini");
TFilename dest(backup);
if (!is_slash(dest[dest.len() - 1]))
dest << '/';
dest << file.name();
dest << fcopy(tmp, dest);
}
} }
remove_file(tmp); remove_file(tmp);
} }
@ -1001,7 +1024,7 @@ bool TMailer_mask::save_sheet_line(int& err, int nrow)
} }
TMail_message& full_msg = _box.msg(nrow); TMail_message& full_msg = _box.msg(nrow);
bool ok = exec_app(err, appname, full_msg); bool ok = exec_app(err, appname, full_msg, row);
if (!ok && err == _iskeynotfound) if (!ok && err == _iskeynotfound)
{ {
TString & first_row = full_msg.row(0); TString & first_row = full_msg.row(0);
@ -1009,7 +1032,7 @@ bool TMailer_mask::save_sheet_line(int& err, int nrow)
if (pos > 0) if (pos > 0)
{ {
first_row.overwrite("INSERT", pos); first_row.overwrite("INSERT", pos);
ok = exec_app(err, appname, full_msg); ok = exec_app(err, appname, full_msg, row);
} }
} }
@ -1434,6 +1457,7 @@ void TMailer_mask::save() const
ini.set("Password", encode(get(F_PASSWORD))); ini.set("Password", encode(get(F_PASSWORD)));
ini.set("Timer", get(F_TIMER)); ini.set("Timer", get(F_TIMER));
ini.set("Log", get(F_TRACKING)); ini.set("Log", get(F_TRACKING));
ini.set("Backup", get(F_BACKUP));
save_sheet(ini, F_ADDRESSES, "Recipient"); save_sheet(ini, F_ADDRESSES, "Recipient");
save_sheet(ini, F_PARAMS, "Filter"); save_sheet(ini, F_PARAMS, "Filter");
} }
@ -1446,6 +1470,7 @@ void TMailer_mask::load()
set(F_PASSWORD, decode(ini.get("Password"))); set(F_PASSWORD, decode(ini.get("Password")));
set(F_TIMER, ini.get_int("Timer")); set(F_TIMER, ini.get_int("Timer"));
set(F_TRACKING, ini.get("Log")); set(F_TRACKING, ini.get("Log"));
set(F_BACKUP, ini.get("Backup"));
load_sheet(ini, F_ADDRESSES, "Recipient"); load_sheet(ini, F_ADDRESSES, "Recipient");
load_sheet(ini, F_PARAMS, "Filter"); load_sheet(ini, F_PARAMS, "Filter");

View File

@ -4,6 +4,7 @@
#define F_MAPI 204 #define F_MAPI 204
#define F_TIMER 205 #define F_TIMER 205
#define F_TRACKING 206 #define F_TRACKING 206
#define F_BACKUP 207
#define F_MESSAGES 210 #define F_MESSAGES 210
#define F_ADDRESSES 211 #define F_ADDRESSES 211

View File

@ -62,9 +62,15 @@ BEGIN
PROMPT 1 2 "Log transazioni (CSV) " PROMPT 1 2 "Log transazioni (CSV) "
END END
STRING F_BACKUP 80 55
BEGIN
PROMPT 1 3 "Backup "
GROUP G_SUPERUSER
END
SPREADSHEET F_MESSAGES 0 -3 SPREADSHEET F_MESSAGES 0 -3
BEGIN BEGIN
PROMPT 0 3 "" PROMPT 0 4 ""
ITEM "@1" ITEM "@1"
ITEM "Da@40" ITEM "Da@40"
ITEM "Data@10" ITEM "Data@10"