Aggiunto supporto a postino per collegamento Cantieri-ADHoc

git-svn-id: svn://10.65.10.50/branches/R_10_00@22890 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2013-09-11 09:43:18 +00:00
parent 4378b5f698
commit cb5de216f0
4 changed files with 199 additions and 11 deletions

View File

@ -7,8 +7,9 @@ int main(int argc, char** argv)
switch (r)
{
case 1: ba7200(argc, argv); break; //copia area dati in lire
case 2: ba7300(argc, argv); break; //invio intero file via postino
case 1: ba7200(argc, argv); break; //copia area dati in lire
case 2: ba7300(argc, argv); break; //invio intero file via postino
case 3: ba7400(argc, argv); break; //convertitore ini per Galileo
default: ba7100(argc, argv); break; //postino
}

View File

@ -4,5 +4,6 @@
int ba7100(int argc, char* argv[]);
int ba7200(int argc, char* argv[]);
int ba7300(int argc, char* argv[]);
int ba7400(int argc, char* argv[]);
#endif

View File

@ -24,7 +24,8 @@
// TConfig utilities
///////////////////////////////////////////////////////////
const TString& set_ini_var(int cfg, const char* para, const char* var, const char* val)
/* Obsolete
static const TString& set_ini_var(int cfg, const char* para, const char* var, const char* val)
{
TConfig ini(cfg, para);
const TString& prev = ini.get(var);
@ -38,7 +39,8 @@ const TString& set_ini_var(int cfg, const char* para, const char* var, const cha
}
inline const TString& get_ini_var(int cfg, const char* para, const char* var)
{ return set_ini_var(cfg, para, var, NULL); }
{ return ini_get_string(cfg, para, var); }
*/
///////////////////////////////////////////////////////////
// TMail_box
@ -70,7 +72,7 @@ bool TMail_box::default_params(TString& server, TString& user,TString& password)
bool ok = true;
if (server.blank())
{
server = get_ini_var(CONFIG_INSTALL, "Server", "POP3");
server = ini_get_string(CONFIG_INSTALL, "Server", "POP3");
if (server.empty())
ok = false;
}
@ -1094,10 +1096,6 @@ bool TMailer_mask::save_sheet_line(int& err, int nrow)
}
}
// Restore mail recipient
// if (old_mailto.full())
// set_ini_var(CONFIG_INSTALL, "Main", "MailTo", old_mailto);
return ok;
}
@ -1229,8 +1227,7 @@ void TMailer_mask::log(const char* text)
if (text && *text)
{
time_t tempo; time(&tempo);
const struct tm* d = localtime(&tempo);
const struct tm* d = xvt_time_now();
TString256 msg;
msg.format("- %02d-%02d-%04d %02d:%02d:%02d %s",
d->tm_mday, d->tm_mon+1, 1900+d->tm_year,

189
ba/ba7400.cpp Normal file
View File

@ -0,0 +1,189 @@
#include <applicat.h>
#include <config.h>
#include <real.h>
#include <utility.h>
#include "ba7.h"
///////////////////////////////////////////////////////////
// Main app
///////////////////////////////////////////////////////////
class TCopia_ini_app : public TSkeleton_application
{
protected:
bool process_number(TString& val, int len) const;
void save_ini_var(ostream& out, TConfig& input, const char* key, int len = -1) const;
bool replace_var(TFilename& filename, const char* key, const char* var) const;
bool copy_ini(const TFilename& ini_in, TFilename& ini_out) const;
public:
virtual void main_loop();
};
///////////////////////////////////////////////////////////
// Main
///////////////////////////////////////////////////////////
bool TCopia_ini_app::process_number(TString& val, int len) const
{
const TString80 old(val);
if (len > 0)
{
const long n = atol(val);
val.format("%0*ld", len, n);
}
else
{
if (val.find('.') > 0)
{
const real n = val;
val = n.stringa(0, 2);
}
if (val.starts_with("-"))
val.ltrim(1);
}
return val != old;
}
bool TCopia_ini_app::replace_var(TFilename& filename, const char* key, const char* var) const
{
if (key && *key > ' ' && var && *var > ' ')
{
TString80 k; k << "$(" << key;
const int start = filename.find(k);
if (start >= 0)
{
const int end = filename.find(')', start+1);
if (end > start)
{
TString str;
str << filename.left(start) << var << filename.mid(end+1);
filename = str;
return true;
}
}
}
return false;
}
void TCopia_ini_app::save_ini_var(ostream& out, TConfig& input, const char* key, int len) const
{
TString val = input.get(key);
if (len >= 0)
process_number(val, len);
else
val.strip("\"");
out << key << " = " << val << endl;
}
bool TCopia_ini_app::copy_ini(const TFilename& ini_in, TFilename& ini_out) const
{
TFilename tmp_out; tmp_out.tempdir();
tmp_out.add(ini_out.name());
TConfig input(ini_in, "Transaction");
const TString user = input.get("User");
const TString host = input.get("HostName");
ofstream output(tmp_out);
if (!output)
return false;
TString str;
output << "[Transaction]" << endl;
save_ini_var(output, input, "Firm", 3);
output << "Action = INSERT" << endl;
output << endl;
input.set_paragraph("23");
output << "[23]" << endl;
save_ini_var(output, input, "ANNOES", 4);
save_ini_var(output, input, "DATAREG");
save_ini_var(output, input, "DATACOMP");
save_ini_var(output, input, "DATADOC");
save_ini_var(output, input, "NUMDOC");
save_ini_var(output, input, "NUMREG");
save_ini_var(output, input, "TIPODOC");
save_ini_var(output, input, "DESCR");
save_ini_var(output, input, "TIPOMOV", 1);
save_ini_var(output, input, "ANNOIVA", 4);
save_ini_var(output, input, "TIPO");
save_ini_var(output, input, "CODCF", 7);
save_ini_var(output, input, "TOTDOC", 0);
output << "PROVVIS = 0" << endl;
output << "CODPAG = " << endl;
save_ini_var(output, input, "CODCAUS");
for (int r = 1; ; r++)
{
TString8 str; str.format("25,%d", r);
if (!input.set_paragraph(str))
break;
output << endl << '[' << str << ']' << endl;
save_ini_var(output, input, "ANNOES", 4);
save_ini_var(output, input, "NUMRIG");
save_ini_var(output, input, "CODIVA");
save_ini_var(output, input, "IMPONIBILE", 0);
save_ini_var(output, input, "IMPOSTA", 0);
save_ini_var(output, input, "GRUPPO", 2);
save_ini_var(output, input, "CONTO", 2);
str.format("%02d%02d%03d",
input.get_int("GRUPPO"), input.get_int("CONTO"), input.get_int("SOTTOCONTO"));
output << "SOTTOCONTO = " << str << endl;
output << "TIPODET = " << endl;
}
output.close();
replace_var(ini_out, "User", user);
replace_var(ini_out, "Host", host);
bool done = fcopy(tmp_out, ini_out);
tmp_out.fremove();
return done;
}
void TCopia_ini_app::main_loop()
{
TFilename ini_in;
if (argc() >= 3)
{
ini_in = argv(2);
if (ini_in.starts_with("/i", true) || ini_in.starts_with("-i", true))
ini_in.ltrim(2);
}
if (ini_in.exist())
{
TFilename ini_out = ini_get_string(CONFIG_DITTA, "ba7", "ForwardTo");
int err = 0;
if (ini_out.full())
{
const struct tm* n = xvt_time_now();
TString80 fname;
fname.format("%02d%02d%02d_%02d%02d%02d_0.ini",
n->tm_year%100, n->tm_mon+1, n->tm_mday,
n->tm_hour, n->tm_min, n->tm_sec);
ini_out.add(fname);
if (!copy_ini(ini_in, ini_out))
err = EACCES;
}
else
err = ENOTDIR;
ini_set_string(ini_in, "Transaction", "Result", err ? "ERROR" : "OK");
ini_set_int(ini_in, "Transaction", "Error", err);
}
else
{
ini_in.insert(TR("Impossibile aprire il file ini da convertire\n"));
xvt_dm_popup_error(ini_in);
}
}
int ba7400(int argc, char* argv[])
{
TCopia_ini_app ma;
ma.run(argc, argv, "Copia Ini");
return 0;
}