From 3003681ab8c9ab85a5e7e1ce34208df77c2223ce Mon Sep 17 00:00:00 2001 From: cris Date: Thu, 30 Nov 2006 11:07:05 +0000 Subject: [PATCH] Patch level : 4.0 Files correlati : ve7.exe ve7700a.msk ve7701a.ini Ricompilazione Demo : [ ] Commento : Versione funzionante di trasferimento da Galileo (clifor) git-svn-id: svn://10.65.10.50/trunk@14578 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ve/ve7700.cpp | 55 ++++++++++++++++++++++--------------------- ve/ve7700.h | 7 +++++- ve/ve7700a.h | 10 +++++--- ve/ve7700a.uml | 35 +++++++++++++++++++++++---- ve/ve7701.cpp | 64 ++++++++++++++++++++------------------------------ ve/ve7701a.ini | 29 ++++++++++++++++------- 6 files changed, 119 insertions(+), 81 deletions(-) diff --git a/ve/ve7700.cpp b/ve/ve7700.cpp index a60cdf6d4..74bd00cb2 100755 --- a/ve/ve7700.cpp +++ b/ve/ve7700.cpp @@ -485,40 +485,41 @@ void TTrasferimentoGalileo_mask::serialize(bool bSave) void TTrasferimentoGalileo_mask::trasferisci() { - TString query_header; - query_header << "ODBC(" << get(F_DSN) << ',' << get(F_USR) << ',' << get(F_PWD) << ")\n"; - TReport_book book; TReport rep; rep.load("ve7700a"); TGalileo_log* log = new TGalileo_log; rep.set_recordset(log); + + TDate data = get(F_DATA); + bool rep_to_print = false; - bool go_on = true; - - if (go_on && get_bool(F_CLIFO)) - { - if (go_on) - { - TGalileo_clifo pc; - pc.init(TR("Clienti/Fornitori"), query_header, log); - go_on = pc.trasferisci(); - book.add(rep); - if (go_on) - pc.dump(); - } - if (go_on && get_bool(F_ARTICOLI)) - { - TGalileo_articoli pc; - pc.init(TR("Articoli"), query_header, log); - go_on = pc.trasferisci(); - book.add(rep); - if (go_on) - pc.dump(); - } - rep_to_print = true; - } + if (get_bool(F_CLIFO)) + { + TString query_header; + query_header << "ODBC(" << get(F_DSN1) << ',' << get(F_USR1) << ',' << get(F_PWD1) << ")\n"; + TGalileo_clifo pc; + pc.set_data_limite(get_date(F_DATA)); + pc.init(TR("Clienti/Fornitori"), query_header, log); + go_on = pc.trasferisci(); + book.add(rep); + if (go_on) + pc.dump(); + rep_to_print = true; + } + if (go_on && get_bool(F_ARTICOLI)) + { + TString query_header; + query_header << "ODBC(" << get(F_DSN2) << ',' << get(F_USR2) << ',' << get(F_PWD2) << ")\n"; + TGalileo_articoli pc; + pc.init(TR("Articoli"), query_header, log); + go_on = pc.trasferisci(); + book.add(rep); + if (go_on) + pc.dump(); + rep_to_print = true; + } if (rep_to_print && book.pages() > 0) book.preview(); } diff --git a/ve/ve7700.h b/ve/ve7700.h index 898bbca97..e5d4a2111 100755 --- a/ve/ve7700.h +++ b/ve/ve7700.h @@ -120,6 +120,8 @@ public: class TGalileo_clifo : public TGalileo_transfer { + TDate _data; + protected: int cancella_clifo(TLocalisamfile& clifo) const; long get_next_key(const char tipocf) const; @@ -129,6 +131,7 @@ protected: public: virtual bool trasferisci(); virtual bool dump(); + void set_data_limite(const TDate& data) { _data = data; } TGalileo_clifo(); ~TGalileo_clifo(); }; @@ -136,14 +139,16 @@ public: class TGalileo_articoli : public TGalileo_transfer { + TDate _data; + protected: int cancella_articolo(TLocalisamfile& clifo) const; - //long get_codcf(const char tipocf, const char* ricalt) const; bool aggiorna_record(TLocalisamfile& file, const TString_array& lista_campi); public: virtual bool trasferisci(); virtual bool dump(); + void set_data_limite(const TDate& data) { _data = data; } TGalileo_articoli(); ~TGalileo_articoli(); }; diff --git a/ve/ve7700a.h b/ve/ve7700a.h index 040e85c45..555ece3b9 100755 --- a/ve/ve7700a.h +++ b/ve/ve7700a.h @@ -6,9 +6,13 @@ #define F_CLIFO 111 #define F_ARTICOLI 112 +#define F_DATA 113 -#define F_DSN 201 -#define F_USR 202 -#define F_PWD 203 +#define F_DSN1 201 +#define F_USR1 202 +#define F_PWD1 203 +#define F_DSN2 204 +#define F_USR2 205 +#define F_PWD2 206 #endif diff --git a/ve/ve7700a.uml b/ve/ve7700a.uml index bd2a90187..15fe6b5e3 100755 --- a/ve/ve7700a.uml +++ b/ve/ve7700a.uml @@ -53,32 +53,59 @@ BEGIN PROMPT 2 6 "Articoli" END +DATE F_DATA +BEGIN + PROMPT 2 8 "Record modificati dal " +END + ENDPAGE PAGE "Configurazione" -1 -1 78 18 GROUPBOX DLG_NULL 48 5 BEGIN - PROMPT 1 1 "@bDatabase" + PROMPT 1 1 "@bParametri database per clienti/fornitori" END -STRING F_DSN 30 +STRING F_DSN1 30 BEGIN PROMPT 2 2 "DSN " CHECKTYPE REQUIRED END -STRING F_USR 16 +STRING F_USR1 16 BEGIN PROMPT 2 3 "User " END -STRING F_PWD 16 +STRING F_PWD1 16 BEGIN PROMPT 2 4 "Password " FLAGS "*" END +GROUPBOX DLG_NULL 48 5 +BEGIN + PROMPT 1 7 "@bParametri database per articoli" +END + +STRING F_DSN2 30 +BEGIN + PROMPT 2 8 "DSN " + CHECKTYPE REQUIRED +END + +STRING F_USR2 16 +BEGIN + PROMPT 2 9 "User " +END + +STRING F_PWD2 16 +BEGIN + PROMPT 2 10 "Password " + FLAGS "*" +END + ENDPAGE ENDMASK diff --git a/ve/ve7701.cpp b/ve/ve7701.cpp index 71b2c1f2c..87e2042fc 100755 --- a/ve/ve7701.cpp +++ b/ve/ve7701.cpp @@ -45,7 +45,6 @@ long TGalileo_clifo::get_next_key(const char tipocf) const return codcf; } - long TGalileo_clifo::get_codcf(const char tipocf, const char* ricalt) const { TLocalisamfile clifo(LF_CLIFO); @@ -64,6 +63,9 @@ bool TGalileo_clifo::dump() TString_array lista_clifo; ini.list_variables(lista_clifo, true, "CLIFO", true); TToken_string lista_dump; + lista_dump.add(CLI_TIPOCF); + lista_dump.add(CLI_CODCF); + lista_dump.add(CLI_COMCF); TString16 campo_dest, campo_orig; FOR_EACH_ARRAY_ROW(lista_clifo,i,row) { @@ -72,9 +74,6 @@ bool TGalileo_clifo::dump() if (!campo_orig.blank()) lista_dump.add(campo_dest); } - lista_dump.add(CLI_TIPOCF); - lista_dump.add(CLI_CODCF); - lista_dump.add(CLI_COMCF); TSystemisamfile clifo(LF_CLIFO); return (clifo.dump("clifo.txt", lista_dump) == NOERR); } @@ -82,21 +81,15 @@ bool TGalileo_clifo::dump() bool TGalileo_clifo::trasferisci() { TString query = + "SELECT CLFOCP, CONTCA, DSCOCP, DSULCP, INDICA, LOCACA, PROVCA, CAPOCA, " + "NAZICA, CISOCA, PIVACA, CDFICA, NTELCA, NFAXCA \n" + "FROM CGANA01J \n"; + if (!_data.empty()) + { + query << "WHERE DTMNCA >= '"; + query << _data.string() << "'"; + } - "SELECT CGANA01J.CLFOCP, CGANA01J.CONTCA, CGANA01J.DSCOCP, CGANA01J.DSULCP, CGANA01J.INDICA, CGANA01J.LOCACA, CGANA01J.PROVCA, CGANA01J.CAPOCA, CGANA01J.NAZICA, CGANA01J.CISOCA, CGANA01J.PIVACA, CGANA01J.CDFICA, CGANA01J.NTELCA, CGANA01J.NFAXCA" - "FROM CGANA01J"; - -/* - "SELECT Customers_Suppliers.*, Unit_Measure.UMDesc " - "FROM Customers_Suppliers " - "LEFT JOIN Unit_Measure " - "ON (CurrencyCode = Unit_Measure.UMCode AND Unit_Measure.UMType='9') " - "WHERE (StatusFlag=1 OR StatusFlag=2 OR StatusFlag=3) AND "; - if (_only_agenti) - query << "(FlagCustSupp='A')"; - else - query << "(FlagCustSupp='C' OR FlagCustSupp='S')"; -*/ TRecordset& recset = create_recordset(query); TString str; @@ -112,14 +105,13 @@ bool TGalileo_clifo::trasferisci() TGalileo_iterator pi(this); while (++pi) { - const TString& contca = get_str("Contca"); - const char tipocf = get_str("Clfocp")[0]; - - + const TString& contca = get_str("CONTCA"); + const char tipocf = get_str("CLFOCP")[0]; long codcf = get_codcf(tipocf, contca); // mi restiuisce il codice del clinete se esiste oppure -1 se da aggiungere bool needs_creation = codcf <= 0; bool good = true; + if (!needs_creation) { // il cliente/fornitore va aggiornato @@ -145,7 +137,7 @@ bool TGalileo_clifo::trasferisci() if (good) { // aggiormento comune - TString80 dencom = get_str("Locaca"); + TString80 dencom = get_str("LOCACA"); dencom.trim(); dencom.upper(); const TRectype& reccom = cache_comuni.get(dencom); if (dencom == reccom.get(COM_DENCOM)) @@ -237,36 +229,29 @@ bool TGalileo_articoli::dump() bool TGalileo_articoli::trasferisci() { TString query = - - "SELECT BRISO00F.RICOD, BRISO00F.RDES1, BRISO00F.RDES2, BRISO00F.RDES3, BRISO00F.RSUMS, BRISO00F.RITIP, Mid([TBDAT],9,1) AS Espr1" + "SELECT BRISO00F.RICOD, BRISO00F.RDES1, BRISO00F.RDES2, " + "BRISO00F.RDES3, BRISO00F.RSUMS, BRISO00F.RITIP, " + "Mid([TBDAT],9,1) AS Espr1 \n" "FROM BRISO00F, BTABE00F" "WHERE (((Mid([TBDAT],9,1))=[RITIP]) AND ((BTABE00F.TBTIP)='COD') AND ((BTABE00F.TBELE)='RIS'))"; -/* - "SELECT Customers_Suppliers.*, Unit_Measure.UMDesc " - "FROM Customers_Suppliers " - "LEFT JOIN Unit_Measure " - "ON (CurrencyCode = Unit_Measure.UMCode AND Unit_Measure.UMType='9') " - "WHERE (StatusFlag=1 OR StatusFlag=2 OR StatusFlag=3) AND "; - if (_only_agenti) - query << "(FlagCustSupp='A')"; - else - query << "(FlagCustSupp='C' OR FlagCustSupp='S')"; -*/ TRecordset& recset = create_recordset(query); TString str; TConfig& ini = config(); - TString_array lista_anamag; + TString_array lista_anamag, lista_umart; ini.list_variables(lista_anamag, true, "ANAMAG", true); + ini.list_variables(lista_umart, true, "UMART", true); TLocalisamfile anamag(LF_ANAMAG); + TLocalisamfile umart(LF_UMART); TRectype& rec_anamag = anamag.curr(); + TRectype& rec_umart = umart.curr(); TGalileo_iterator pi(this); while (++pi) { - const TString& codart = get_str("Ricod"); + const TString& codart = get_str("BRISO00F.RICOD"); rec_anamag.zero(); rec_anamag.put(ANAMAG_CODART, codart); bool good = anamag.read() == NOERR; @@ -277,7 +262,10 @@ bool TGalileo_articoli::trasferisci() good &= test_write(anamag); } if (good) + { aggiorna_record(anamag, lista_anamag); + aggiorna_record(umart, lista_umart); + } } return write_enabled(); } diff --git a/ve/ve7701a.ini b/ve/ve7701a.ini index b5f247afa..fae204bec 100755 --- a/ve/ve7701a.ini +++ b/ve/ve7701a.ini @@ -1,14 +1,14 @@ [CLIFO] -RAGSOC = Dscocp -INDCF = Indica +RAGSOC = DSCOCP +INDCF = INDICA CIVCF = LOCALITACF = STATOCF = COMCF = -CAPCF = Capoca -COFI = Cdfica +CAPCF = CAPOCA +COFI = CDFICA STATOPAIV = -PAIV = Pivaca +PAIV = PIVACA TIPOPERS = ALLEG = CODALLEG = @@ -20,13 +20,13 @@ SOTTOCRIC = TIPOAPER = CODANAGPER = PTEL = -TEL = Ntelca +TEL = NTELCA PTEL2 = TEL2 = PTEL3 = TEL3 = PFAX = -FAX = Nfaxca +FAX = NFAXCA PTELEX = TELEX = MAIL = @@ -44,9 +44,22 @@ CODVAL = CODLIN = FIDO = CODPAG = -RICALT = Contca +RICALT = CONTCA OGGETTI = SOSPESO = DIRTY = REFERENTE = VALINTRA = + +[ANAMAG] +CODART = +DESCR = +DESCRAGG = +CODARTALT = + +[UMART] +CODART = +NRIGA = _FISSO,1 +UM = +FC = _FISSO,1 +PREZZO = \ No newline at end of file