From 1e90bd48fbc2f67a6ef6c27fca5dc6b4fbc9ecfc Mon Sep 17 00:00:00 2001 From: luciano Date: Tue, 28 Oct 1997 15:21:59 +0000 Subject: [PATCH] Ultimato collegamento con EasyDoc git-svn-id: svn://10.65.10.50/trunk@5471 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- cg/cg2100.cpp | 2 +- cg/cg2102.h | 8 +++-- cg/cg2106.cpp | 95 ++++++++++++++++++++++++++++++++++++++++++--------- 3 files changed, 84 insertions(+), 21 deletions(-) diff --git a/cg/cg2100.cpp b/cg/cg2100.cpp index 6e6d12bad..f9b412fc3 100755 --- a/cg/cg2100.cpp +++ b/cg/cg2100.cpp @@ -39,7 +39,7 @@ public: TPrimanota_application::TPrimanota_application() : _rel(NULL), _mode(0), _iva(nessuna_iva), _causale(NULL), _giornale(NULL), - _lastreg(0), _last_dreg(TODAY), _last_dcom(TODAY), _incasso(NULL) + _lastreg(0), _last_dreg(TODAY), _last_dcom(TODAY), _incasso(NULL), _EasyDocPath("") { memset(_msk, 0, sizeof(_msk)); } diff --git a/cg/cg2102.h b/cg/cg2102.h index 76fc492bc..49b4b2857 100755 --- a/cg/cg2102.h +++ b/cg/cg2102.h @@ -72,7 +72,9 @@ class TPrimanota_application : public TRelation_application TEsercizi_contabili _esercizi; // Tabella degli esercizi contabili - TAssoc_array _colori; // Colori delle righe + TAssoc_array _colori; // Colori delle righe + + TString _EasyDocPath; // Path eseguibile EasyDoc static bool showpartite_handler(TMask_field& f, KEY k); static bool speserimb_handler(TMask_field& f, KEY k); @@ -287,8 +289,8 @@ public: TString_array& pag_rows() { return _pag_rows; } TImporto get_cgs_imp(int n); - bool easydoc_installed() const; - bool easydoc_connected() const; + bool easydoc_installed(); + bool easydoc_connected(); bool run_easydoc(const char* azione) const; TPrimanota_application(); diff --git a/cg/cg2106.cpp b/cg/cg2106.cpp index ebe2c04fe..8e8356e28 100755 --- a/cg/cg2106.cpp +++ b/cg/cg2106.cpp @@ -3,6 +3,7 @@ #include #include #include +#include #include "cg2100.h" #include "cg2102.h" @@ -385,14 +386,32 @@ bool TPrimanota_application::prorata_handler(TMask_field& f, KEY k) // Gestione EasyDoc /////////////////////////////////////////////////////////// -bool TPrimanota_application::easydoc_installed() const +bool TPrimanota_application::easydoc_installed() { - bool ok = has_module(AIAUT); - ok &= fexist("C:/EASYDOC/EASYDOC.EXE"); + // check autorization + if (!has_module(AIAUT)) + return FALSE; + + // where is EasyDoc installed? + char szBuf[50]; + int entrylen = GetPrivateProfileString("Easydoc", "Path", "", szBuf, sizeof(szBuf), "EasyDoc.ini"); + + // EasyDoc there isn't + if (!entrylen) + return FALSE; + + // paste EasyDoc path + szBuf[entrylen] = '\0'; + _EasyDocPath = szBuf; + _EasyDocPath << "EASYDOC.EXE"; + + // is EasyDoc present? + bool ok = fexist(_EasyDocPath); + return ok; } -bool TPrimanota_application::easydoc_connected() const +bool TPrimanota_application::easydoc_connected() { return easydoc_installed(); } @@ -401,30 +420,72 @@ bool TPrimanota_application::run_easydoc(const char* azione) const { const TMask& m = curr_mask(); - TString cmdline = "c:/EASYDOC/EASYDOC "; + TString cmdline = _EasyDocPath; TFilename ininame; if (azione && *azione) { - ininame.tempdir(); ininame.add("easydoc.ini"); + // linea comando EasyDoc + ininame.tempdir(); + ininame.add("easydoc.ini"); cmdline << ' ' << ininame; + + // path dei dati della ditta + TFilename dati_dir = get_firm_dir(); + // completa path relativo, + // ma che male c'era a registrarlo sempre assoluto?? + if (dati_dir[1] != ':') + { + TFilename modulename(argv(0)); + dati_dir = modulename.path(); + dati_dir.add(get_firm_dir()); + } + + // rimuove barre e controbarre per dargli un aspetto decente + dati_dir.replace('/','\\'); + for (int pos = dati_dir.find("\\\\"); pos != -1; pos = dati_dir.find("\\\\")) + dati_dir[pos] = ' '; + dati_dir.strip_spaces(); - TConfig ini(ininame, "EASYDOC"); + // nome archivio + TFilename archivio(dati_dir); + archivio.add("easydoc.mdb"); + + // drive di archiviazione + TString drv_di_arch = dati_dir.mid(0,2); + + // directory di archiviazione + TString dir_di_arch = dati_dir.mid(2); + dir_di_arch << '\\'; + + // prepara sempre sezione "EASYDOC" + TConfig ini(ininame, "EASYDOC"); ini.set("Azione", azione); - - TFilename archivio = get_firm_dir(); archivio.add("easydoc.mdb"); ini.set("Archivio", archivio); - ini.set("Cartella", "mov"); - ini.set("Campo1", m.get(F_NUMREG)); - if (stricmp("Azione", "Scan") == 0 || stricmp("Azione", "Aggiungi") == 0) + ini.set("Cartella", "Movimenti primanota"); + ini.set("Campo0", m.get(F_NUMREG)); + ini.set("Campo1", m.get(F_DATAREG)); + ini.set("Descrizione", m.get(F_DESCR)); + + // prepara la sezione "DefinizioneDoc1" (se non esiste l'archivio mdb) + if (!fexist(archivio)) { - ini.set("Campo2", m.get(F_DATAREG)); - ini.set("Descrizione", m.get(F_DESCR)); - } + ini.set_paragraph("DefinizioneDoc1"); + ini.set("Archivio", archivio); + ini.set("NomeDoc", "Movimenti primanota"); + ini.set("DirDiArchiviazione", dir_di_arch); + ini.set("DriveDiArchiviazione", drv_di_arch); + ini.set("DirDocumento", "eddoc"); + ini.set("Campo0", "Numero registrazione"); + ini.set("Tipo0", "Numero"); + ini.set("Campo1", "Data registrazione"); + ini.set("Tipo1", "Data"); + } + } - TExternal_app app(cmdline); - bool ok = app.run(FALSE, FALSE) == 0; + TExternal_app app(cmdline); + bool ok = app.run(FALSE, FALSE) == 0; if (ininame.not_empty()) ::remove(ininame);