From 772ed6ce802894d43ec6531d88fdfed8b65ce250 Mon Sep 17 00:00:00 2001 From: cris Date: Tue, 11 Jan 2005 11:01:25 +0000 Subject: [PATCH] Patch level : 2.2 194 Files correlati : ve7.exe ve7600a.msk jbi_rdoc.trr jbi_tab.trr Ricompilazione Demo : [ ] Commento : Trasferimento a JBI git-svn-id: svn://10.65.10.50/trunk@12587 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ve/jbi_rdoc.trr | 22 ++++ ve/jbi_tab.trr | 7 ++ ve/ve7.cpp | 2 + ve/ve7.h | 1 + ve/ve7600.cpp | 271 ++++++++++++++++++++++++++++++++++++++++++++++++ ve/ve7600a.h | 5 + ve/ve7600a.uml | 29 ++++++ 7 files changed, 337 insertions(+) create mode 100755 ve/jbi_rdoc.trr create mode 100755 ve/jbi_tab.trr create mode 100755 ve/ve7600.cpp create mode 100755 ve/ve7600a.h create mode 100755 ve/ve7600a.uml diff --git a/ve/jbi_rdoc.trr b/ve/jbi_rdoc.trr new file mode 100755 index 000000000..f7eb37d34 --- /dev/null +++ b/ve/jbi_rdoc.trr @@ -0,0 +1,22 @@ +1001 +18 +CODDITTA|3|5|0|CODICE DITTA +TIPO|1|1|0|TIPOLOGIA DOCUMENTO F fattura/R nota di credito/O ordine +DATADOC|5|8|0|DATA DOCUMENTO +CODDEP|1|5|0|CODICE DEPOSITO +CODMAG|1|3|0|CODICE MAGAZZINO +GRUPPO|1|5|0|GRUPPO +SOTTOGR|1|3|0|SOTTOGRUPPO +ZONA|1|3|0|ZONA +REGIONE|1|2|0|REGIONE +PROV|1|2|0|PTOVINCIA +CATMERCLI|1|2|0|CATEGORIA MERCEOLOGICA CLIENTE +CODCLI|3|6|0|CODICE CLIENTE +CODAG|1|5|0|CODICE AGENTE +CODART|1|20|0|CODICE ARTICOLO +TIPODOC|1|4|0|TIPO DOCUMENTO +QTA|4|15|5|QUANTITA +IMPORTO|4|18|5|IMPORTO +SCONTATO|4|18|5|IMPORTO SCONTATO +1 +TIPODOC+CODDEP+CODMAG+CODART|X diff --git a/ve/jbi_tab.trr b/ve/jbi_tab.trr new file mode 100755 index 000000000..ac853d22d --- /dev/null +++ b/ve/jbi_tab.trr @@ -0,0 +1,7 @@ +1002 +3 +TIPO|1|3|0|TIPO TABELLA +CODICE|1|25|0|CODICE +DESCRI|1|70|0|DESCRIZIONE +1 +TIPO+CODICE|X diff --git a/ve/ve7.cpp b/ve/ve7.cpp index d056692e8..c52d86c55 100755 --- a/ve/ve7.cpp +++ b/ve/ve7.cpp @@ -8,6 +8,8 @@ int main( int argc, char** argv ) switch (r) { + case 5: + ve7600(argc, argv); break; // trasferimento JBI case 4: ve7500(argc, argv); break; // importazione listini gommisti (michelin,pirelli etc.) case 3: diff --git a/ve/ve7.h b/ve/ve7.h index 42145d192..bccbc1ee4 100755 --- a/ve/ve7.h +++ b/ve/ve7.h @@ -6,5 +6,6 @@ int ve7200 (int, char**); int ve7300 (int, char**); int ve7400 (int, char**); int ve7500 (int, char**); +int ve7600 (int, char**); #endif diff --git a/ve/ve7600.cpp b/ve/ve7600.cpp new file mode 100755 index 000000000..b13abe1a8 --- /dev/null +++ b/ve/ve7600.cpp @@ -0,0 +1,271 @@ +#include +#include +#include +#include +#include +#include +#include +#include + +#include "ve7.h" +#include "ve7600a.h" + +#include <..\pr\agenti.h> +#include <..\mg\anamag.h> +#include +#include +#include +#include +#include + +#define ALIAS_TIP 201 + +class TRDoc2JBI_mask : public TAutomask +{ +protected: + bool on_field_event(TOperable_field& o, TField_event e, long jolly); + +public: + TRDoc2JBI_mask(); + virtual ~TRDoc2JBI_mask(){}; +}; + +TRDoc2JBI_mask::TRDoc2JBI_mask() :TAutomask ("ve7600a") +{ +} + +bool TRDoc2JBI_mask::on_field_event(TOperable_field& f, TField_event e, long jolly) +{ + return TRUE; +} + +class TRDoc2JBI : public TSkeleton_application +{ + TRDoc2JBI_mask* _msk; + TConfig* _config; + +protected: + virtual bool create(); + virtual bool destroy(); + virtual void main_loop(); + void transfer(void); + bool insert_tab(TExternisamfile& filetab, const char* tipo, const char* codice, const char* descri); + void update_tab(TExternisamfile& filetab, const TRectype rectab); + +public: + TRDoc2JBI_mask& mask() { return *_msk; }; + TRDoc2JBI() {}; + virtual ~TRDoc2JBI() {} +}; + +bool TRDoc2JBI::create() +{ + open_files(LF_DOC, LF_RIGHEDOC, LF_ANAMAG, LF_CLIFO, LF_CFVEN, LF_COMUNI, LF_NDITTE, 0); + _msk = new TRDoc2JBI_mask(); + _config = new TConfig("ve7600.ini"); + + return TSkeleton_application::create(); +} + +bool TRDoc2JBI::destroy() +{ + delete _config; + delete _msk; + return TSkeleton_application::destroy(); +} + +void TRDoc2JBI::main_loop() +{ + // preimposto i valori specificati sulla riga di comando oppure faccio partire la maschera + KEY key = K_ENTER; + if (argc() >= 4) + { + _msk->set(F_PERCORSO, argv(3)); + _msk->set(F_ANNO, argv(2)); + } + else + { + _msk->set(F_PERCORSO, _config->get("PERCORSO", "PARAMETRI")); + _msk->set(F_ANNO, _config->get("ANNO", "PARAMETRI") ); + key = _msk->run(); + } + if (key == K_ENTER) + transfer(); +} + +bool TRDoc2JBI::insert_tab(TExternisamfile& filetab, const char* tipo, const char* codice, const char* descri) +{ + filetab.zero(); + filetab.put("TIPO", tipo); + filetab.put("CODICE", codice); + filetab.put("DESCRI", descri); + int err = filetab.write(); + if (err == _isdupkey) + err = NOERR; + return (err == NOERR); +} + +void TRDoc2JBI::transfer() +{ + TRelation rel(LF_RIGHEDOC); + rel.add(LF_DOC, "CODNUM==CODNUM|ANNO==ANNO|NDOC==NDOC|PROVV==PROVV"); + rel.add("%TIP", "CODTAB==TIPODOC", 1, LF_DOC, ALIAS_TIP); + + TRDoc2JBI_mask& m = mask(); + + TString expr; + const int anno = m.get_int(F_ANNO); + _config->set("ANNO", anno, "PARAMETRI"); + + //expr.format("34->CODARTMAG != \"\" && 34->ANNO==%d && 33->TIPOCF == \"C\"", anno); + expr << "(" << RDOC_CODARTMAG << " != \"\")"; + expr << " && (" << RDOC_ANNO << " == \"" << anno << "\")"; + //expr << "&& (33->TIPOCF = \"C\")"; + + TCursor cur(&rel, expr, 2); + const TString& path = m.get(F_PERCORSO); + _config->set("PERCORSO", path, "PARAMETRI"); + + TFilename rdocname = path; + rdocname << _config->get("RIGHEDOC", "ARCHIVI"); + rdocname.ext("dbf"); + TFilename rdoctrr = "jbi_rdoc.trr"; + rdoctrr.custom_path(); + TExternisamfile filerdoc(rdocname, rdoctrr); + filerdoc.zap(); + + TFilename tabname = path; + tabname << _config->get("TABELLE", "ARCHIVI"); + tabname.ext("dbf"); + TFilename tabtrr = "jbi_tab.trr"; + tabtrr.custom_path(); + TExternisamfile filetab(tabname, tabtrr); + filetab.zap(); + + // aggiungo il record ditta + + TString80 ragsoc = cache().get(LF_NDITTE, get_firm(), "RAGSOC"); + TString16 firm; + firm.format("%d", get_firm()); + insert_tab(filetab, "DIT", (const char*) firm, ragsoc); + + const long items = cur.items(); + TProgind p(items, "Elaborazione righe documenti in corso ...", TRUE, TRUE, 10); + p.setstatus(1); + int err = NOERR; + for (cur=0; cur.pos()