diff --git a/bs/bs0200.cpp b/bs/bs0200.cpp index 4b601aaa4..cb466c936 100644 --- a/bs/bs0200.cpp +++ b/bs/bs0200.cpp @@ -20,6 +20,8 @@ #include #include +#define BS_DTULTAGG "DtUltAgg" + /////////////////////////////////////////////////////////// // TBeeStore_cache /////////////////////////////////////////////////////////// @@ -288,8 +290,8 @@ void TBeeStore_sync::load_origine_1(TISAM_recordset& out_set, const char* in_tab if (err == NOERR) { bool dirty = false; - const TDate dataagg = file.get("DATAAGG"); - TDate dtultagg = odbc.get("DtUltAgg").as_date(); + const TDate dataagg = file.get(CLI_DATAAGG); + TDate dtultagg = odbc.get(BS_DTULTAGG).as_date(); if (!dtultagg.ok()) dtultagg = TODAY; str = "record"; @@ -317,9 +319,11 @@ void TBeeStore_sync::load_origine_1(TISAM_recordset& out_set, const char* in_tab } if (dirty) { - if (file.curr().exist("UTENTE")) - file.put("UTENTE", "BEESTORE"); - file.put("DATAAGG", dtultagg); + TRectype& rec = file.curr(); + if (rec.exist(CLI_UTENTE)) + rec.put(CLI_UTENTE, "BEESTORE"); + if (rec.exist(CLI_DATAAGG)) + rec.put(CLI_DATAAGG, dtultagg); } else str << " Nessuna variazione pertinente"; @@ -395,7 +399,7 @@ void TBeeStore_sync::save_origine_2(TISAM_recordset& in_set, const char* out_tab str.cut(0) << "INSERT INTO " << out_table << "\n("; FOR_EACH_ARRAY_ROW(fields, sr, srow) str << (sr ? ", " : "") << srow->get(0); - str << ", Origine, Errore, DTUltAgg"; + str << ", Origine, Errore, "BS_DTULTAGG; str << ")\nVALUES ("; FOR_EACH_ARRAY_ROW(fields, ir, irow) @@ -403,8 +407,8 @@ void TBeeStore_sync::save_origine_2(TISAM_recordset& in_set, const char* out_tab if (ir) str << ", "; if (fval) { - const char* fname = irow->get(0); - const char* fexpr = irow->get(); + const char* fname = irow->get(0); // BeeStore field name + const char* fexpr = irow->get(); // Campo expression TVariant var; if (fval(in_set, fname, fexpr, var)) { @@ -496,10 +500,10 @@ static TString& build_query(const int logicnum, const TDate& dal, const TDate& a TString& q = get_tmp_string(); q << "USE " << logicnum; - if (rec.exist("UTENTE")) + if (rec.exist(CLI_UTENTE)) q << " SELECT (UTENTE!=\"BEESTORE\")"; - if ((dal.ok() || al.ok()) && rec.exist("DATAAGG")) + if ((dal.ok() || al.ok()) && rec.exist(CLI_DATAAGG)) { if (q.find(" SELECT ") < 0) q << " SELECT "; @@ -795,7 +799,10 @@ bool TBeeStore_sync::split_phone(const TRecordset& odbc, const char* number, TIs clifo.put(num, pn.mid(split+1)); } else + { + clifo.put(pre, ""); clifo.put(num, pn); + } } return pn.full(); } @@ -864,14 +871,14 @@ void TBeeStore_sync::load_clifo(char tipocf) cfv.put(CFV_CODPRCF, codprcf); cfv.write(); } - clifo.put(CLI_RAGSOC, odbc.get("RagioneSociale").as_string()); + clifo.put(CLI_RAGSOC, odbc.get("RagSoc").as_string()); - const int tipo = odbc.get("Tipo").as_int(); // 1=Fisica; 2=Giuridica; 3=Aaltro + const int tipo = odbc.get("Tipo").as_int(); // 1=Fisica; 2=Giuridica; 3=Altro if (tipo == 1) { - clifo.put(CLI_SESSO, odbc.get("Sesso").as_string()); + clifo.put(CLI_SESSO, odbc.get("Sesso").as_string()); clifo.put(CLI_DATANASC, odbc.get("DTNascita").as_date()); - clifo.put(CLI_COMNASC, comune(odbc, "", "ComuneNascita")); + clifo.put(CLI_COMNASC, comune(odbc, "", "ComuneNascita")); clifo.put(CLI_TIPOPERS, 'F'); } else @@ -891,12 +898,13 @@ void TBeeStore_sync::load_clifo(char tipocf) } clifo.put(CLI_INDCF, ind.left(50)); - split_phone(odbc, "Telefono", clifo, CLI_TEL, CLI_PTEL); - split_phone(odbc, "Cellulare", clifo, CLI_TEL2, CLI_PTEL2); - split_phone(odbc, "CellulareSMS", clifo, CLI_TEL3, CLI_PTEL3); + 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); + clifo.put(CLI_MAIL, odbc.get("EMail").as_string()); clifo.put(CLI_UTENTE, "BEESTORE"); - TDate dua = odbc.get("DtUltAgg").as_date(); + TDate dua = odbc.get(BS_DTULTAGG).as_date(); if (!dua.ok()) dua = TDate(TODAY); clifo.put(CLI_DATAAGG, dua); @@ -918,9 +926,9 @@ void TBeeStore_sync::save_clifo(const TDate& dal, const TDate& al) fields.add("Citta|"CLI_COMCF); fields.add("Cap|"CLI_CAPCF); fields.add("Provincia|"); - fields.add("Telefono|TEL"); - fields.add("Cellulare|TEL2"); - fields.add("CellulareSMS|TEL3"); + fields.add("Telefono|PTEL+TEL"); + fields.add("Cellulare|PTEL2+TEL2"); + fields.add("CellulareSMS|PTEL3+TEL3"); fields.add("EMail|"CLI_MAIL); fields.add("PartitaIva|"CLI_PAIV); fields.add("CodFiscale|"CLI_COFI); @@ -950,6 +958,13 @@ void TBeeStore_sync::sync_clifo(const TDate& dal, const TDate& al) { load_clifo('C'); load_clifo('F'); + + TString str(255); + str << "ODBC(" << _dsn << ")\n"; + TODBC_recordset clifo(str); + str << "DELETE FROM tieAnagCFP WHERE Origine=1;"; + clifo.exec(str); // Elimina tutte le anagrafiche importate da BeeStore + save_clifo(dal, al); } @@ -1067,12 +1082,12 @@ void TBeeStore_sync::sync_scontrini(const TDate& dal, const TDate& al) TODBC_recordset mov(str); TProgress_monitor pi(mov.items(), str); - TString num_mov; + TString num_mov, nm; TMov_mag* doc = NULL; for (bool ok = mov.move_first(); ok; ok = mov.move_next()) { - const TString80 nm = mov.get("NumMov").as_string(); + nm = mov.get("NumMov").as_string(); if (nm != num_mov) { if (!save_and_delete_doc(doc))