Importazione fatture e clienti
git-svn-id: svn://10.65.10.50/branches/R_10_00@23149 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
ed68f81ed7
commit
664a73da35
@ -20,6 +20,8 @@
|
||||
#include <clifo.h>
|
||||
#include <cfven.h>
|
||||
|
||||
#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))
|
||||
|
Loading…
x
Reference in New Issue
Block a user