diff --git a/ve/ve7700.cpp b/ve/ve7700.cpp index 74bd00cb2..16a6f09f7 100755 --- a/ve/ve7700.cpp +++ b/ve/ve7700.cpp @@ -497,28 +497,48 @@ void TTrasferimentoGalileo_mask::trasferisci() 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; + TString80 dsn = get(F_DSN1); + if (dsn.empty()) + { + TSystemisamfile clifo(LF_CLIFO); + clifo.overwrite("clifo.txt"); + } + else + { + 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; + TString80 dsn = get(F_DSN2); + if (dsn.empty()) + { + TSystemisamfile anamag(LF_ANAMAG); + anamag.overwrite("anamag.txt"); + TSystemisamfile umart(LF_UMART); + umart.overwrite("umart.txt"); + } + else + { + 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/ve7700a.uml b/ve/ve7700a.uml index 15fe6b5e3..fca123f88 100755 --- a/ve/ve7700a.uml +++ b/ve/ve7700a.uml @@ -70,7 +70,6 @@ END STRING F_DSN1 30 BEGIN PROMPT 2 2 "DSN " - CHECKTYPE REQUIRED END STRING F_USR1 16 @@ -92,7 +91,6 @@ END STRING F_DSN2 30 BEGIN PROMPT 2 8 "DSN " - CHECKTYPE REQUIRED END STRING F_USR2 16 diff --git a/ve/ve7701.cpp b/ve/ve7701.cpp index 87e2042fc..bf52bd014 100755 --- a/ve/ve7701.cpp +++ b/ve/ve7701.cpp @@ -5,6 +5,7 @@ #include <utility.h> #include <..\mg\anamag.h> +#include <..\mg\umart.h> #include <clifo.h> #include <comuni.h> #include <doc.h> @@ -131,7 +132,7 @@ bool TGalileo_clifo::trasferisci() rec_clifo.zero(); rec_clifo.put(CLI_TIPOCF, tipocf); rec_clifo.put(CLI_CODCF, codcf); - good &= test_write(clifo); + good &= test_write(clifo, true); } if (good) @@ -213,6 +214,7 @@ bool TGalileo_articoli::dump() TString_array lista_anamag; ini.list_variables(lista_anamag, true, "ANAMAG", true); TToken_string lista_dump; + lista_dump.add(ANAMAG_CODART); TString16 campo_dest, campo_orig; FOR_EACH_ARRAY_ROW(lista_anamag,i,row) { @@ -221,19 +223,20 @@ bool TGalileo_articoli::dump() if (!campo_orig.blank()) lista_dump.add(campo_dest); } - lista_dump.add(ANAMAG_CODART); TSystemisamfile anamag(LF_ANAMAG); - return (anamag.dump("anamag.txt", lista_dump) == NOERR); + TSystemisamfile umart(LF_UMART); + int err = umart.dump("umart.txt"); + if (err == NOERR) + err = anamag.dump("anamag.txt", lista_dump); + return (err == NOERR); } 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 \n" - "FROM BRISO00F, BTABE00F" - "WHERE (((Mid([TBDAT],9,1))=[RITIP]) AND ((BTABE00F.TBTIP)='COD') AND ((BTABE00F.TBELE)='RIS'))"; + "SELECT RICOD, RDES1, RDES2, RDES3, RSUMS, RITIP \n" + "FROM BRISO00F, BTABE00F \n" + "WHERE (MID(TBDAT,9,1)=RITIP) AND (TBTIP='COD') AND (TBELE='RIS')"; TRecordset& recset = create_recordset(query); @@ -251,7 +254,7 @@ bool TGalileo_articoli::trasferisci() TGalileo_iterator pi(this); while (++pi) { - const TString& codart = get_str("BRISO00F.RICOD"); + const TString& codart = get_str("RICOD"); rec_anamag.zero(); rec_anamag.put(ANAMAG_CODART, codart); bool good = anamag.read() == NOERR; @@ -259,12 +262,25 @@ bool TGalileo_articoli::trasferisci() { rec_anamag.zero(); rec_anamag.put(ANAMAG_CODART, codart); - good &= test_write(anamag); + good &= test_write(anamag, true); } if (good) { aggiorna_record(anamag, lista_anamag); - aggiorna_record(umart, lista_umart); + rec_umart.zero(); + rec_umart.put(UMART_CODART, codart); + rec_umart.put(UMART_NRIGA, 1); + bool good = umart.read() == NOERR; + if (!good) + { + rec_umart.zero(); + rec_umart.put(UMART_CODART, codart); + rec_umart.put(UMART_NRIGA, 1); + good = (umart.write() == NOERR); + } + rec_umart.put(UMART_UM, get_str("RSUMS")); + rec_umart.put(UMART_FC, 1); + umart.rewrite(); } } return write_enabled(); diff --git a/ve/ve7701a.ini b/ve/ve7701a.ini index fae204bec..5f274d03e 100755 --- a/ve/ve7701a.ini +++ b/ve/ve7701a.ini @@ -52,14 +52,14 @@ REFERENTE = VALINTRA = [ANAMAG] -CODART = -DESCR = -DESCRAGG = +CODART = +DESCR = RDES1 +DESCRAGG = RDES2 CODARTALT = [UMART] CODART = -NRIGA = _FISSO,1 -UM = +NRIGA = +UM = RSUMS FC = _FISSO,1 PREZZO = \ No newline at end of file