Patch level : 12.0 1090

Files correlati     : bs0.exe
Commento        :

aggiunto un meccanismo di trace nell'importazione bee store
Interno:

Si attiva mettendo nel paragrafo Main di studio.ini
TRACE = X
This commit is contained in:
Alessandro Bonazzi 2021-10-15 07:27:26 +02:00
parent 0e9502d07d
commit c25b6ab330

View File

@ -400,6 +400,7 @@ void TImporta_Beestore::import_table(int logicnum, const char* table, TAssoc_arr
odbc.connect(_dsn, _usr, _psw);
const TRecnotype n = odbc.items();
TRACE("Importazione file %s", logicnum);
if (n > 0)
{
@ -419,7 +420,8 @@ void TImporta_Beestore::import_table(const char * tab, const char* table, TAssoc
const TRecnotype n = odbc.items();
if (n > 0)
TRACE("Importazione tabella %s", tab);
if (n > 0)
{
if (_direct_write)
direct_table(tab, odbc, pairs);
@ -437,6 +439,7 @@ void TImporta_Beestore::direct_table(int logicnum, TODBC_recordset & odbc, TAsso
str.format(TR("Importazione %ld record dalla tabella %s"), odbc.items(), odbc.table_name());
_log->log(0, "");
_log->log(0, str);
TRACE(str);
TProgress_monitor pi(odbc.items(), str);
@ -512,6 +515,7 @@ void TImporta_Beestore::direct_table(const char * tab, TODBC_recordset & odbc, T
str.format(TR("Importazione %ld record dalla tabella %s"), odbc.items(), odbc.table_name());
_log->log(0, "");
_log->log(0, str);
TRACE(str);
TProgress_monitor pi(odbc.items(), str);
@ -587,9 +591,9 @@ void TImporta_Beestore::transaction_table(int logicnum, TODBC_recordset & odbc,
str.format(TR("Importazione %ld record dalla tabella %s"), odbc.items(), odbc.table_name());
_log->log(0, "");
_log->log(0, str);
TRACE(str);
TProgress_monitor pi(odbc.items(), str);
TArray transactions;
for (bool ok = odbc.move_first(); pi.add_status() && ok; ok = odbc.move_next())
@ -643,7 +647,7 @@ void TImporta_Beestore::transaction_table(int logicnum, TODBC_recordset & odbc,
transactions.add(t);
}
}
execute_transactions(transactions, *_log, _interactive);
execute_transactions(transactions, *_log, _interactive, str);
}
}
@ -657,6 +661,7 @@ void TImporta_Beestore::transaction_table(const char * table, TODBC_recordset &
str.format(TR("Importazione %ld record dalla tabella %s"), odbc.items(), odbc.table_name());
_log->log(0, "");
_log->log(0, str);
TRACE(str);
TProgress_monitor pi(odbc.items(), str);
@ -701,7 +706,7 @@ void TImporta_Beestore::transaction_table(const char * table, TODBC_recordset &
transactions.add(t);
}
}
execute_transactions(transactions, *_log, _interactive);
execute_transactions(transactions, *_log, _interactive, str);
}
}
@ -711,7 +716,7 @@ void TImporta_Beestore::import_ums()
fields.add("CodUntMis", "CODTAB");
fields.add("DSUntMis", "S0");
TRACE("Unità di misura");
import_table("%UMS", "tieUntMisura", fields);
}
@ -723,7 +728,7 @@ void TImporta_Beestore::import_iva()
fields.add("CodIvaSt", "CODTAB");
fields.add("DSIva", "S0");
fields.add("Aliquota", "R0");
TRACE("IVA");
import_table("%IVA", "tieIva", fields);
}
@ -733,7 +738,7 @@ void TImporta_Beestore::import_lines()
fields.add("CodLinea", "CODTAB");
fields.add("DSLinea", "S0");
TRACE("Linee");
import_table("GMC", "tieLineeArt", fields);
}
@ -744,7 +749,7 @@ void TImporta_Beestore::import_catmer()
fields.add("CodCategoriaMerceologica", "CODTAB");
fields.add("DSCategoriaMerceologica", "S0");
// fields.add("CodTipoEtichetta", ""); a che serviva ?
TRACE("Categorie merceologiche");
import_table("GMC", "tieCategorieMerceologiche", fields);
}
@ -759,8 +764,8 @@ void TImporta_Beestore::import_anamag()
fields.add("CodCategMerceologica", ANAMAG_GRMERC);
fields.add("Bloccato", ANAMAG_SOSPESO);
fields.add("codDogana", ANAMAG_CLASSDOG);
if (_direct_write)
TRACE("Anagrafica di magazzino");
if (_direct_write)
{
import_table(LF_ANAMAG, "tieArticoli", fields);
fields.destroy();
@ -1037,6 +1042,7 @@ bool TImporta_Beestore::split_phone(const TRecordset& odbc, const char* number,
}
return pn.full();
}
void TImporta_Beestore::direct_clifo(char tipocf)
{
TString str(255);
@ -1064,6 +1070,7 @@ void TImporta_Beestore::direct_clifo(char tipocf)
clifo.zero();
clifo.put(CLI_TIPOCF, tipocf);
clifo.put(CLI_CODCF, codcf);
TRACE("%s %ld", tipocf == 'C' ? "Clienti" : "Fornitore", codcf);
const int err = clifo.read();
const bool elab = (err == NOERR && (_tipo_imp != imp_aggiungi)) ||
@ -1169,6 +1176,7 @@ void TImporta_Beestore::transaction_clifo(char tipocf) // fare
rec.put(CLI_TIPOCF, tipocf);
if (codcf > 0L)
rec.put(CLI_CODCF, codcf);
TRACE("%s %ld", tipocf == 'C' ? "Clienti" : "Fornitore", codcf);
bool found = clifo.read() == NOERR;
const bool elab = (found && (_tipo_imp != imp_aggiungi)) ||
@ -1224,13 +1232,14 @@ void TImporta_Beestore::transaction_clifo(char tipocf) // fare
t.set(CLI_DATAAGG, dataagg, -1, LF_CLIFO);
transactions.add(t);
}
execute_transactions(transactions, *_log, _interactive);
execute_transactions(transactions, *_log, _interactive, str);
}
}
void TImporta_Beestore::import_clifo(int cfmask, const TDate& dal, const TDate& al)
{
if (_direct_write)
TRACE("Clienti/Fonitori");
if (_direct_write)
{
if (cfmask & 1) direct_clifo('C');
if (cfmask & 2) direct_clifo('F');
@ -1250,6 +1259,7 @@ void TImporta_Beestore::import_val()
fields.add("CodValuta", "CODTAB");
fields.add("DSValuta2", "S0");
fields.add("Simbolo", "CODTAB");
TRACE("Valute");
import_table("%VAL", "tieValute", fields);
}
@ -1335,6 +1345,7 @@ void TImporta_Beestore::direct_doc(TODBC_recordset & docs, const char * table, c
int eccezioni_errori = 0;
TString codpk = "";
bool elab = false;
long numdoc;
for (bool ok = docs.move_first(); ok; ok = docs.move_next())
{
@ -1386,13 +1397,13 @@ void TImporta_Beestore::direct_doc(TODBC_recordset & docs, const char * table, c
TTipo_documento tipo(tipodoc);
const TString8 codcaus = tipo.caus_mov();
TString str = docs.get_string("NumDoc");
long numdoc = ndoc;
numdoc = ndoc;
while (str[0] > 'A')
str.ltrim(1);
if (str.full())
numdoc = atol(str);
TRACE("%s n. %ld", table, numdoc);
doc = new TDocumento('D', datadoc.year(), get_num(docs.get_string("SuffNum"), tipotestata), numdoc);
doc->destroy_rows();
doc->put(DOC_DATADOC, datadoc);
@ -1446,6 +1457,8 @@ void TImporta_Beestore::direct_doc(TODBC_recordset & docs, const char * table, c
const int tipoart = docs.get_int("TipoArticolo");
TRectype& rdoc = doc->new_row("01");
TString80 codart = docs.get_string("IDArticolo");
TRACE("%s n. %ld riga %d", table, numdoc, rdoc.get_int(RDOC_NRIGA));
if (codart.blank())
codart = docs.get_string("CodArticolo");
if (codart == BS_FREEROW)
@ -1579,6 +1592,7 @@ void TImporta_Beestore::transaction_doc(TODBC_recordset & docs, const char * tab
TString wrk = docs.get_string("CodCliente");
TString8 tipodoc = tipotestata != 14 ? docs.get_string("TipoDocCE") : get_num("", 14);
TString cod_pk = docs.get_string("Cod_PK");
long numdoc;
if (tipodoc.full())
{
@ -1599,7 +1613,8 @@ void TImporta_Beestore::transaction_doc(TODBC_recordset & docs, const char * tab
row = 0;
TString str = docs.get_string("NumDoc");
long numdoc = ndoc;
numdoc = ndoc;
// TString origine_dc = docs.get_string("Origine");
TTipo_documento tipo(tipodoc);
const TString8 codcaus = tipo.caus_mov();
@ -1610,6 +1625,7 @@ void TImporta_Beestore::transaction_doc(TODBC_recordset & docs, const char * tab
str.ltrim(1);
if (str.full())
numdoc = atol(str);
TRACE("%s n. %ld", table, numdoc);
const TString16 numerazione = get_num(docs.get_string("SuffNum"), tipotestata);
@ -1670,6 +1686,7 @@ void TImporta_Beestore::transaction_doc(TODBC_recordset & docs, const char * tab
if (codart == BS_FREEROW)
codart = "";
t.set(RDOC_TIPORIGA, "01", -1, LF_RIGHEDOC, ++row);
TRACE("%s n. %ld riga %d", table, numdoc, row);
if (codart.full())
{
t.set(RDOC_CODART, codart, -1, LF_RIGHEDOC, row);
@ -1767,8 +1784,10 @@ void TImporta_Beestore::transaction_doc(TODBC_recordset & docs, const char * tab
if (elab && last > 0 && row > 0)
transactions.add(t);
TRACE("Salvataggio articoli");
execute_transactions(art_transactions, *_log, _interactive, "Importazione articoli");
execute_transactions(transactions, *_log, _interactive, "Importazione documenti");
TRACE("Salvataggio %s", table);
execute_transactions(transactions, *_log, _interactive, msg);
}
void TImporta_Beestore::import_doc(const TDate& dal, const TDate& al, int tipotestata, const char* unitadefault, bool importadoc)
@ -1845,6 +1864,7 @@ void TImporta_Beestore::import_doc(const TDate& dal, const TDate& al, int tipote
str = TR("Documenti");
break;
};
TRACE(str);
if (_direct_write)
direct_doc(docs, str, tipotestata, unitadefault, importadoc);
else
@ -1899,16 +1919,18 @@ bool TImporta_Beestore::create()
TString query; query << "SELECT * FROM tieValute;";//"ODBC(" << _dsn << ")\nSELECT * FROM tieValute;";
TODBC_recordset recset(query);
recset.connect(_dsn, _usr, _psw); // Dovrebbe connettersi anche con solo _dsn valorizzato
recset.move_first();
if (_sqlog.full() && _sqlog.is_relative_path())
if (recset.connect(_dsn, _usr, _psw)) // Dovrebbe connettersi anche con solo _dsn valorizzato
{
TFilename n; n.tempdir();
n.add(_sqlog.name());
_sqlog = n;
recset.move_first();
if (_sqlog.full() && _sqlog.is_relative_path())
{
TFilename n; n.tempdir();
n.add(_sqlog.name());
_sqlog = n;
}
recset.set_log_file(_sqlog);
return TSkeleton_application::create();
}
recset.set_log_file(_sqlog);
return TSkeleton_application::create();
}
return error_box(FR("Impossibile connettersi al DSN '%s'"), (const char*)_dsn);
}