From baef024a0abcca2ef6fda6999b56a82463703260 Mon Sep 17 00:00:00 2001 From: alex Date: Fri, 12 May 2006 16:14:42 +0000 Subject: [PATCH] Patch level : 4.0 612 Files correlati : ba3.exe cg0.exe cg2.exe Ricompilazione Demo : [ ] Commento : Aggiunto supporto per savare le transazioni anche in una cartella git-svn-id: svn://10.65.10.50/trunk@13985 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- include/postman.cpp | 87 ++++++++++++++++++++++++++++----------------- 1 file changed, 55 insertions(+), 32 deletions(-) diff --git a/include/postman.cpp b/include/postman.cpp index 989282487..cbb1c9617 100755 --- a/include/postman.cpp +++ b/include/postman.cpp @@ -2,6 +2,7 @@ #include #include #include +#include /////////////////////////////////////////////////////////// // TRecipient @@ -171,41 +172,63 @@ bool TPostman::dispatch_transaction(const TRectype& rec, bool ok = can_dispatch_transaction(rec); if (ok) { - TToken_string dest; - for (int r = 0; r < _recipient.items(); r++) - { - const TRecipient& a = recipient(r); - if (a.can_receive(rec)) - dest.add(a.address()); - } + TToken_string dest; + TToken_string file_dest; - ok = dest.items() > 0; - if (ok) - { - TMail_message msg(dest.get(0)); - for (const char* r = dest.get(1); r; r = dest.get()) - msg.add_copy_recipient(r); + for (int r = 0; r < _recipient.items(); r++) + { + const TRecipient& a = recipient(r); + if (a.can_receive(rec)) + { + const TFixed_string addr(a.address()); + + if (addr.find('@') >= 0) + dest.add(addr); + else + file_dest.add(addr); + } + } - TString16 subject; - switch (rec.num()) - { - case LF_TAB: - case LF_TABCOM: - case LF_TABGEN: - subject << rec.get("COD"); break; - default: - subject << rec.num(); - } - msg.set_subject(subject); + if (dest.items() > 0) + { + TMail_message msg(dest.get(0)); + for (const char* r = dest.get(1); r; r = dest.get()) + msg.add_copy_recipient(r); - TScanner trans(name); - while (trans.good()) - { - TString& line = trans.line(); - msg.add_line(line); - } - ok = msg.send(TRUE); - } + TString16 subject; + switch (rec.num()) + { + case LF_TAB: + case LF_TABCOM: + case LF_TABGEN: + subject << rec.get("COD"); break; + default: + subject << rec.num(); + } + msg.set_subject(subject); + + TScanner trans(name); + while (trans.good()) + { + TString& line = trans.line(); + msg.add_line(line); + } + ok = msg.send(TRUE); + } + + if (file_dest.items() > 0) + { + for (const char* r = file_dest.get(0); r; r = file_dest.get()) + if (fexist(r)) + { + TFilename output(r); + + output.add(name.name()); + ok &= fcopy(name, output); + } + else + error_box("Non esiste la cartella %s", r); + } } return ok; }