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 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;
public:
@ -643,6 +643,8 @@ void TMailer_mask::scan_dir(const TFilename& dir, TMail_messages& box) const
{
char* buffer = text.get_buffer(size);
TScanner scanner(*row);
memset(buffer, 0 , size);
scanner.read(buffer, size);
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;
TString action;
@ -958,6 +960,27 @@ bool TMailer_mask::exec_app(int& err, const TString& appname, TMail_message& msg
err = 0;
else
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);
}
@ -1001,7 +1024,7 @@ bool TMailer_mask::save_sheet_line(int& err, int 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)
{
TString & first_row = full_msg.row(0);
@ -1009,7 +1032,7 @@ bool TMailer_mask::save_sheet_line(int& err, int nrow)
if (pos > 0)
{
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("Timer", get(F_TIMER));
ini.set("Log", get(F_TRACKING));
ini.set("Backup", get(F_BACKUP));
save_sheet(ini, F_ADDRESSES, "Recipient");
save_sheet(ini, F_PARAMS, "Filter");
}
@ -1446,6 +1470,7 @@ void TMailer_mask::load()
set(F_PASSWORD, decode(ini.get("Password")));
set(F_TIMER, ini.get_int("Timer"));
set(F_TRACKING, ini.get("Log"));
set(F_BACKUP, ini.get("Backup"));
load_sheet(ini, F_ADDRESSES, "Recipient");
load_sheet(ini, F_PARAMS, "Filter");

View File

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

View File

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