From 5d3628682f01a7c69f3dcc21f975c8330edeba47 Mon Sep 17 00:00:00 2001 From: mtollari Date: Fri, 16 Mar 2018 14:22:35 +0000 Subject: [PATCH] Patch level : 12.0 550 Files correlati : Commento : - Aggiunti nuovi campi richiesti - Aggiunta tabella di sincronizzazione IVA (scopiazzata da Pack) git-svn-id: svn://10.65.10.50/branches/R_10_00@24437 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- src/bs/bs0.cpp | 7 ++-- src/bs/bs0.h | 1 + src/bs/bs0300.cpp | 40 ++++++++++++++++--- src/bs/bs0400.cpp | 95 ++++++++++++++++++++++++++++++++++++++++++++++ src/bs/bsmenu.men | 8 ++++ src/bs/bstbski.h | 3 ++ src/bs/bstbski.uml | 49 ++++++++++++++++++++++++ 7 files changed, 194 insertions(+), 9 deletions(-) create mode 100644 src/bs/bs0400.cpp create mode 100644 src/bs/bstbski.h create mode 100644 src/bs/bstbski.uml diff --git a/src/bs/bs0.cpp b/src/bs/bs0.cpp index 07242df99..f23883bae 100644 --- a/src/bs/bs0.cpp +++ b/src/bs/bs0.cpp @@ -6,9 +6,10 @@ int main(int argc, char** argv) const int p = argc > 1 ? argv[1][1]-'0' : 0; switch(p) { - case 1: bs0200(argc, argv); break; // Impostazioni Beestore - case 2: bs0300(argc, argv); break; // Importazione da SKNET - default: bs0100(argc, argv); break; // Beestore Synchronizer + case 1: bs0200(argc, argv); break; // Impostazioni Beestore + case 2: bs0300(argc, argv); break; // Importazione da SKNET + case 3: bs0400(argc, argv); break; // Tabelle di transazione + default: bs0100(argc, argv); break; // Beestore Synchronizer } return 0; } diff --git a/src/bs/bs0.h b/src/bs/bs0.h index 35acb3fc5..b0da9e284 100644 --- a/src/bs/bs0.h +++ b/src/bs/bs0.h @@ -1,3 +1,4 @@ int bs0100(int argc, char* argv[]); int bs0200(int argc, char* argv[]); int bs0300(int argc, char* argv[]); +int bs0400(int argc, char* argv[]); diff --git a/src/bs/bs0300.cpp b/src/bs/bs0300.cpp index aa41defca..c8f9233f1 100644 --- a/src/bs/bs0300.cpp +++ b/src/bs/bs0300.cpp @@ -501,8 +501,6 @@ void TSknet_sync::sync_anamag() rccor.put(CODCORR_NRIGA, riga); if (ccor.read(rccor, _isequal) == NOERR) { - TString a = rccor.get(CODCORR_CODART); - TString b = odbc.get("CodPadre").as_string(); while (add && rccor.get(CODCORR_CODART) == odbc.get("CodPadre").as_string()) { riga = rccor.get_int(CODCORR_NRIGA); @@ -867,7 +865,9 @@ void TSknet_sync::load_clifo(const char tipocf) split_phone(odbc, "Telefono", clifo, CLI_PTEL, CLI_TEL); split_phone(odbc, "Cellulare", clifo, CLI_PTEL2, CLI_TEL2); split_phone(odbc, "CellulareSMS", clifo, CLI_PTEL3, CLI_TEL3); + split_phone(odbc, "Fax", clifo, CLI_PFAX, CLI_FAX); clifo.put(CLI_MAIL, odbc.get("EMail").as_string()); + clifo.put(CLI_CODPAG, odbc.get("Cli_CodPagamento").as_string()); if (hasConai) { @@ -1000,6 +1000,23 @@ void TSknet_sync::load_clifo(const char tipocf) clifo.put(CLI_BYMAIL, bymail); clifo.put(CLI_DOCMAIL, email); } + if (token.starts_with("REF=")) + { + clifo.put(CLI_REFERENTE, token.mid(4)); + } + if (token.starts_with("EDOC=")) + { + clifo.put(CLI_BYMAIL, true); + clifo.put(CLI_DOCMAIL, token.mid(5)); + } + if (token.starts_with("SCONTO=")) + { + clifo.put(CLI_SCONTO, token.mid(7)); + } + if (token.starts_with("AGENT=")) + { + clifo.put(CLI_CODAG, token.mid(6)); + } else { if (!token.blank()) @@ -1300,9 +1317,6 @@ void TSknet_sync::sync_doc() default: case 0: // Tiporiga 1 -> Merce - if(hasConai && ini_get_bool(CONFIG_DITTA, "BS", "SKUseCustomRiga", false)) - tiporiga = ini_get_string(CONFIG_DITTA, "BS", "SKNumCustomRiga", "14"); - else tiporiga = "01"; break; case 1: @@ -1328,9 +1342,19 @@ void TSknet_sync::sync_doc() } } - TRectype& rdoc = doc->new_row(tiporiga); const TString80 codart = docs.get("CodArticolo").as_string(); + if (tiporiga == "01" && ini_get_bool(CONFIG_DITTA, "BS", "SKUseCustomRiga", false)) + { + TLocalisamfile codcor(LF_CODCORR); codcor.setkey(2); + TRectype rcodcor(LF_CODCORR); + rcodcor.put(CODCORR_CODARTALT, codart); + if(codcor.read(rcodcor, _isequal) == NOERR) + tiporiga = ini_get_string(CONFIG_DITTA, "BS", "SKNumCustomRiga", "14"); + } + + TRectype& rdoc = doc->new_row(tiporiga); + rdoc.put(RDOC_CODART, codart); if (tipoart == 2) @@ -1375,6 +1399,10 @@ void TSknet_sync::sync_doc() if (codiva.blank()) codiva = ini_get_string(CONFIG_DITTA, "BS", "SKCodIvaDef"); } + else + { + codiva = cache().get("%SKI", codiva, "S6"); + } rdoc.put(RDOC_CODIVA, codiva); TString80 sconto; diff --git a/src/bs/bs0400.cpp b/src/bs/bs0400.cpp new file mode 100644 index 000000000..c7c08bb0f --- /dev/null +++ b/src/bs/bs0400.cpp @@ -0,0 +1,95 @@ +// gestione tabelle passaggio pack +#include +#include + +class TMask_tabtp : public TAutomask +{ + +protected: + bool on_field_event(TOperable_field& o, TField_event e, long jolly); +public: + TMask_tabtp(const char* name); + virtual ~TMask_tabtp(); +}; + +TMask_tabtp::TMask_tabtp(const char* name) : TAutomask(name) +{ +} + +TMask_tabtp::~TMask_tabtp() +{ +} + +bool TMask_tabtp::on_field_event(TOperable_field& o, TField_event e, long jolly) +{ + return true; +} + +class Tab_app_sk : public Tab_application +{ +protected: // TRelation_application + virtual bool user_destroy(); + virtual bool user_create(); + virtual int rewrite(const TMask& m); + + virtual TString& get_mask_name(TString& name) const; + virtual TMask* set_mask(TMask * m = NULL); + +public: + Tab_app_sk(); + virtual ~Tab_app_sk() {} +}; + +HIDDEN inline Tab_app_sk& app() { return (Tab_app_sk&)main_app(); } + +// costruttore +Tab_app_sk::Tab_app_sk() {} + +TString& Tab_app_sk::get_mask_name(TString& name) const +{ + name = get_tabname(); + if (name[0] == '%') + name = name.mid(1); + name.insert("bstb", 0); + return name; +} + +TMask* Tab_app_sk::set_mask(TMask* m) +{ + if (m == NULL) + { + TFilename name; get_mask_name(name); + m = new TMask_tabtp(name); + } + return TTable_application::set_mask(m); +} + +bool Tab_app_sk::user_create() +{ + bool ok = Tab_application::user_create(); + + if (ok) + { + TMask& mask = *set_mask(); + } + + return ok; +} + +bool Tab_app_sk::user_destroy() +{ + return Tab_application::user_destroy(); +} + +int Tab_app_sk::rewrite(const TMask& m) +{ + return Tab_application::rewrite(m); +} + +int bs0400(int argc, char* argv[]) +{ + Tab_app_sk a; + a.run(argc, argv, TR("Tabella")); + return 0; +} + diff --git a/src/bs/bsmenu.men b/src/bs/bsmenu.men index f4fa1a62c..80c543434 100644 --- a/src/bs/bsmenu.men +++ b/src/bs/bsmenu.men @@ -6,3 +6,11 @@ Flags = "F" Item_01 = "Configurazione", "bs0 -0", "F", 9015 Item_02 = "Sincronizzazione", "bs0 -1", "F", 9015 Item_02 = "SKNET Importer", "bs0 -2", "F", 9015 +Item_03 = "Tabelle di conversione", [BSMENU_002] + +[BSMENU_002] +Caption = "Tabelle di conversione" +Picture = +Module = bs +Flags = "F" +Item_01 = "Codici IVA", "bs0 -3 %SKI", "" 9015 \ No newline at end of file diff --git a/src/bs/bstbski.h b/src/bs/bstbski.h new file mode 100644 index 000000000..2f9e8238a --- /dev/null +++ b/src/bs/bstbski.h @@ -0,0 +1,3 @@ +#define FLD_TABTPI_CODTAB 101 +#define FLD_TABTPI_DESCR 102 +#define FLD_TABTPI_CODIVA 103 diff --git a/src/bs/bstbski.uml b/src/bs/bstbski.uml new file mode 100644 index 000000000..96e9e7f8f --- /dev/null +++ b/src/bs/bstbski.uml @@ -0,0 +1,49 @@ +#include "bstbski.h" + +TOOLBAR "topbar" 0 0 0 2 +#include +ENDPAGE + +PAGE "Conversione tabella IVA SKNET" 0 2 0 0 + +STRING FLD_TABTPI_CODTAB 15 +BEGIN + PROMPT 3 1 "Cod. IVA SKNET " + FIELD CODTAB + KEY 1 + USE %SKI + FLAGS "U" + INPUT CODTAB FLD_TABTPI_CODTAB + DISPLAY "Cod. IVA SKNET@15" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT FLD_TABTPI_CODTAB CODTAB + OUTPUT FLD_TABTPI_DESCR S0 + CHECKTYPE REQUIRED +END + +STRING FLD_TABTPI_DESCR 50 +BEGIN + PROMPT 3 2 "Descrizione " + USE %TPI + KEY 2 + FIELD S0 +END + +STRING FLD_TABTPI_CODIVA 4 +BEGIN + PROMPT 3 3 "Cod. corrispondente " + HELP "Codice IVA" + FIELD S6 + FLAGS "U" + USE %IVA KEY 1 + INPUT CODTAB FLD_TABTPI_CODIVA + DISPLAY "Codice" CODTAB + DISPLAY "Codice IVA@50" S0 + OUTPUT FLD_TABTPI_CODIVA CODTAB + CHECKTYPE REQUIRED +END + +ENDPAGE + +ENDMASK +