Patch level : 12.0 1090

Files correlati     : bs0.exe
Commento        :

aggiunto un meccanismo di trace nell'importazione bee store
Interno:
This commit is contained in:
Alessandro Bonazzi 2021-10-20 07:25:58 +02:00
parent c91aa2efc3
commit c81d72de4d

View File

@ -238,12 +238,12 @@ class TImporta_Beestore : public TSkeleton_application
protected: protected:
bool save_and_delete_doc(TDocumento * doc) const; bool save_and_delete_doc(TDocumento * doc) const;
void import_table(int logicnum, const char* table, TAssoc_array& pairs); void import_table(int logicnum, const char* table, TAssoc_array& pairs, const char * msg = nullptr);
void import_table(const char * tab, const char* table, TAssoc_array& pairs); void import_table(const char * tab, const char* table, TAssoc_array& pairs, const char * msg = nullptr);
void direct_table(int logicnum, TODBC_recordset & odbc, TAssoc_array& pairs); void direct_table(int logicnum, TODBC_recordset & odbc, TAssoc_array& pairs);
void direct_table(const char * table, TODBC_recordset & odbc, TAssoc_array& pairs); void direct_table(const char * table, TODBC_recordset & odbc, TAssoc_array& pairs);
void transaction_table(int logicnum, TODBC_recordset & odbc, TAssoc_array& pairs); void transaction_table(int logicnum, TODBC_recordset & odbc, TAssoc_array& pairs, const char * msg = nullptr);
void transaction_table(const char * table, TODBC_recordset & odbc, TAssoc_array& pairs); void transaction_table(const char * table, TODBC_recordset & odbc, TAssoc_array& pairs, const char * msg = nullptr);
void import_iva(); void import_iva();
void import_ums(); void import_ums();
@ -254,7 +254,7 @@ protected:
void import_barcode(); void import_barcode();
void direct_doc(TODBC_recordset & odbc, const char * table, const int tipotestata, const char* unitadefault, bool importadoc); void direct_doc(TODBC_recordset & odbc, const char * table, const int tipotestata, const char* unitadefault, bool importadoc);
void transaction_doc(TODBC_recordset & odbc, const char * table, const int tipotestata, const char* unitadefault, bool importadoc); void transaction_doc(TODBC_recordset & odbc, const char * hmsg, const char * table, const int tipotestata, const char* unitadefault, bool importadoc);
void import_doc(const TDate& dal, const TDate& al, int tipotestata,const char* unitadefault, bool importadoc); void import_doc(const TDate& dal, const TDate& al, int tipotestata,const char* unitadefault, bool importadoc);
void import_clifo(int cfmask, const TDate& dal, const TDate& al); void import_clifo(int cfmask, const TDate& dal, const TDate& al);
@ -392,35 +392,40 @@ const char * TImporta_Beestore::build_query(const char* table, TAssoc_array& pai
return query; return query;
} }
void TImporta_Beestore::import_table(int logicnum, const char* table, TAssoc_array& pairs) void TImporta_Beestore::import_table(int logicnum, const char* table, TAssoc_array& pairs, const char * msg)
{ {
TString str; TString str(msg);
TODBC_recordset odbc(build_query(table, pairs)); TODBC_recordset odbc(build_query(table, pairs));
odbc.connect(_dsn, _usr, _psw); odbc.connect(_dsn, _usr, _psw);
const TRecnotype n = odbc.items(); const TRecnotype n = odbc.items();
TRACE("Importazione file %s", logicnum);
if (str.blank())
str << "file " << logicnum;
TRACE("Importazione %s", str);
if (n > 0) if (n > 0)
{ {
if (_direct_write) if (_direct_write)
direct_table(logicnum, odbc, pairs); direct_table(logicnum, odbc, pairs);
else else
transaction_table(logicnum, odbc, pairs); transaction_table(logicnum, odbc, pairs, str);
} }
} }
void TImporta_Beestore::import_table(const char * tab, const char* table, TAssoc_array& pairs) void TImporta_Beestore::import_table(const char * tab, const char* table, TAssoc_array& pairs, const char * msg)
{ {
TString str; TString str(msg);
TODBC_recordset odbc(build_query(table, pairs)); TODBC_recordset odbc(build_query(table, pairs));
odbc.connect(_dsn, _usr, _psw); odbc.connect(_dsn, _usr, _psw);
const TRecnotype n = odbc.items(); const TRecnotype n = odbc.items();
TRACE("Importazione tabella %s", tab); if (str.blank())
str << "tabella " << tab;
TRACE("Importazione %s", str);
if (n > 0) if (n > 0)
{ {
if (_direct_write) if (_direct_write)
@ -582,7 +587,7 @@ void TImporta_Beestore::direct_table(const char * tab, TODBC_recordset & odbc, T
} }
// Carica da BeeStore i record con Origine=1, cioè generati da lui ed eventualmente aggiorna i corrispondenti in Campo // Carica da BeeStore i record con Origine=1, cioè generati da lui ed eventualmente aggiorna i corrispondenti in Campo
void TImporta_Beestore::transaction_table(int logicnum, TODBC_recordset & odbc, TAssoc_array& pairs) void TImporta_Beestore::transaction_table(int logicnum, TODBC_recordset & odbc, TAssoc_array& pairs, const char * msg)
{ {
TString str; TString str;
TLocalisamfile file(logicnum); TLocalisamfile file(logicnum);
@ -647,12 +652,14 @@ void TImporta_Beestore::transaction_table(int logicnum, TODBC_recordset & odbc,
transactions.add(t); transactions.add(t);
} }
} }
str = msg;
str << " #KEY";
execute_transactions(transactions, *_log, _interactive, str); execute_transactions(transactions, *_log, _interactive, str);
} }
} }
// Carica da BeeStore i record con Origine=1, cioè generati da lui ed eventualmente aggiorna i corrispondenti in Campo // Carica da BeeStore i record con Origine=1, cioè generati da lui ed eventualmente aggiorna i corrispondenti in Campo
void TImporta_Beestore::transaction_table(const char * table, TODBC_recordset & odbc, TAssoc_array& pairs) void TImporta_Beestore::transaction_table(const char * table, TODBC_recordset & odbc, TAssoc_array& pairs, const char * msg)
{ {
TString str; TString str;
TTable file(table); TTable file(table);
@ -706,6 +713,8 @@ void TImporta_Beestore::transaction_table(const char * table, TODBC_recordset &
transactions.add(t); transactions.add(t);
} }
} }
str = msg;
str << " #KEY";
execute_transactions(transactions, *_log, _interactive, str); execute_transactions(transactions, *_log, _interactive, str);
} }
} }
@ -716,8 +725,7 @@ void TImporta_Beestore::import_ums()
fields.add("CodUntMis", "CODTAB"); fields.add("CodUntMis", "CODTAB");
fields.add("DSUntMis", "S0"); fields.add("DSUntMis", "S0");
TRACE("Unità di misura"); import_table("%UMS", "tieUntMisura", fields, "Unità di misura ");
import_table("%UMS", "tieUntMisura", fields);
} }
void TImporta_Beestore::import_iva() void TImporta_Beestore::import_iva()
@ -728,8 +736,7 @@ void TImporta_Beestore::import_iva()
fields.add("CodIvaSt", "CODTAB"); fields.add("CodIvaSt", "CODTAB");
fields.add("DSIva", "S0"); fields.add("DSIva", "S0");
fields.add("Aliquota", "R0"); fields.add("Aliquota", "R0");
TRACE("IVA"); import_table("%IVA", "tieIva", fields, "IVA ");
import_table("%IVA", "tieIva", fields);
} }
void TImporta_Beestore::import_lines() void TImporta_Beestore::import_lines()
@ -738,8 +745,7 @@ void TImporta_Beestore::import_lines()
fields.add("CodLinea", "CODTAB"); fields.add("CodLinea", "CODTAB");
fields.add("DSLinea", "S0"); fields.add("DSLinea", "S0");
TRACE("Linee"); import_table("GMC", "tieLineeArt", fields, "Linea ");
import_table("GMC", "tieLineeArt", fields);
} }
void TImporta_Beestore::import_catmer() void TImporta_Beestore::import_catmer()
@ -749,8 +755,7 @@ void TImporta_Beestore::import_catmer()
fields.add("CodCategoriaMerceologica", "CODTAB"); fields.add("CodCategoriaMerceologica", "CODTAB");
fields.add("DSCategoriaMerceologica", "S0"); fields.add("DSCategoriaMerceologica", "S0");
// fields.add("CodTipoEtichetta", ""); a che serviva ? // fields.add("CodTipoEtichetta", ""); a che serviva ?
TRACE("Categorie merceologiche"); import_table("GMC", "tieCategorieMerceologiche", fields, "Categoria merceologica ");
import_table("GMC", "tieCategorieMerceologiche", fields);
} }
void TImporta_Beestore::import_anamag() void TImporta_Beestore::import_anamag()
@ -764,7 +769,6 @@ void TImporta_Beestore::import_anamag()
fields.add("CodCategMerceologica", ANAMAG_GRMERC); fields.add("CodCategMerceologica", ANAMAG_GRMERC);
fields.add("Bloccato", ANAMAG_SOSPESO); fields.add("Bloccato", ANAMAG_SOSPESO);
fields.add("codDogana", ANAMAG_CLASSDOG); fields.add("codDogana", ANAMAG_CLASSDOG);
TRACE("Anagrafica di magazzino");
if (_direct_write) if (_direct_write)
{ {
import_table(LF_ANAMAG, "tieArticoli", fields); import_table(LF_ANAMAG, "tieArticoli", fields);
@ -779,7 +783,7 @@ void TImporta_Beestore::import_anamag()
fields.add("CodPadre", FIELD_NAME(LF_UMART, UMART_CODART)); fields.add("CodPadre", FIELD_NAME(LF_UMART, UMART_CODART));
fields.add("@1", FIELD_NAME(LF_UMART, UMART_NRIGA)); fields.add("@1", FIELD_NAME(LF_UMART, UMART_NRIGA));
fields.add("CodUntMagazzino", FIELD_NAME(LF_UMART, UMART_UM)); fields.add("CodUntMagazzino", FIELD_NAME(LF_UMART, UMART_UM));
import_table(LF_ANAMAG, "tieArticoli", fields); import_table(LF_ANAMAG, "tieArticoli", fields, "Anagrafica di magazzino ");
} }
import_barcode(); import_barcode();
} }
@ -1152,7 +1156,7 @@ void TImporta_Beestore::transaction_clifo(char tipocf) // fare
const TRecnotype n = odbc.items(); const TRecnotype n = odbc.items();
str.cut(0) << TR("Importazione ") << (tipocf == 'F' ? TR("Fornitori") : TR(" CLIenti")); str.cut(0) << TR("Importazione ") << (tipocf == 'F' ? TR("Fornitori") : TR(" Clienti"));
TProgress_monitor pi(n, str); TProgress_monitor pi(n, str);
@ -1232,7 +1236,10 @@ void TImporta_Beestore::transaction_clifo(char tipocf) // fare
t.set(CLI_DATAAGG, dataagg, -1, LF_CLIFO); t.set(CLI_DATAAGG, dataagg, -1, LF_CLIFO);
transactions.add(t); transactions.add(t);
} }
execute_transactions(transactions, *_log, _interactive, str); TString hstr((tipocf == 'F' ? TR("Fornitore ") : TR(" Cliente ")));
hstr << "#" << CLI_CODCF;
execute_transactions(transactions, *_log, _interactive, hstr, str);
} }
} }
@ -1259,8 +1266,7 @@ void TImporta_Beestore::import_val()
fields.add("CodValuta", "CODTAB"); fields.add("CodValuta", "CODTAB");
fields.add("DSValuta2", "S0"); fields.add("DSValuta2", "S0");
fields.add("Simbolo", "CODTAB"); fields.add("Simbolo", "CODTAB");
TRACE("Valute"); import_table("%VAL", "tieValute", fields, "Valuta");
import_table("%VAL", "tieValute", fields);
} }
int TImporta_Beestore::tipotestata2idx(int tipotestata) int TImporta_Beestore::tipotestata2idx(int tipotestata)
@ -1569,7 +1575,7 @@ void TImporta_Beestore::direct_doc(TODBC_recordset & docs, const char * table, c
} }
} }
void TImporta_Beestore::transaction_doc(TODBC_recordset & docs, const char * table, const int tipotestata, const char* unitadefault, bool importadoc) void TImporta_Beestore::transaction_doc(TODBC_recordset & docs, const char * hmsg, const char * table, const int tipotestata, const char* unitadefault, bool importadoc)
{ {
TString msg(TR("Importazione ")); msg << table; TString msg(TR("Importazione ")); msg << table;
TProgress_monitor pi(docs.items(), msg); TProgress_monitor pi(docs.items(), msg);
@ -1785,14 +1791,20 @@ void TImporta_Beestore::transaction_doc(TODBC_recordset & docs, const char * tab
if (elab && last > 0 && row > 0) if (elab && last > 0 && row > 0)
transactions.add(t); transactions.add(t);
TRACE("Salvataggio articoli"); TRACE("Salvataggio articoli");
execute_transactions(art_transactions, *_log, _interactive, "Importazione articoli"); execute_transactions(art_transactions, *_log, _interactive, "Articolo #KEY", "Importazione articoli");
TRACE("Salvataggio %s", table); TRACE("Salvataggio %s", table);
execute_transactions(transactions, *_log, _interactive, msg);
TString header_msg(hmsg);
header_msg << " #" << DOC_CODNUM " #" << DOC_NDOC;
execute_transactions(transactions, *_log, _interactive, header_msg, msg);
} }
void TImporta_Beestore::import_doc(const TDate& dal, const TDate& al, int tipotestata, const char* unitadefault, bool importadoc) void TImporta_Beestore::import_doc(const TDate& dal, const TDate& al, int tipotestata, const char* unitadefault, bool importadoc)
{ {
TString str(255); TString str(255);
TString hstr;
if (tipotestata < 10) if (tipotestata < 10)
{ {
str << "SELECT tieDMovMag.*,tieTBolFat.* FROM tieDMovMag,tieTBolFat WHERE tieDMovMag.Origine=1 AND tieDMovMag.TipoTestata=2 AND TieTBolFat.TipoDoc=" << tipotestata << " AND tieDMovMag.CodTestata=tieTBolFat.Cod_PK"; str << "SELECT tieDMovMag.*,tieTBolFat.* FROM tieDMovMag,tieTBolFat WHERE tieDMovMag.Origine=1 AND tieDMovMag.TipoTestata=2 AND TieTBolFat.TipoDoc=" << tipotestata << " AND tieDMovMag.CodTestata=tieTBolFat.Cod_PK";
@ -1841,34 +1853,42 @@ void TImporta_Beestore::import_doc(const TDate& dal, const TDate& al, int tipote
{ {
case 1: case 1:
str = TR("Bolle"); str = TR("Bolle");
break; hstr = TR("Bolla");
break;
case 2: case 2:
str = TR("Fatture"); str = TR("Fatture");
break; hstr = TR("Fattura");
break;
case 6: case 6:
str = TR("Note di credito"); str = TR("Note di credito");
hstr = TR("Nota di credito");
break; break;
case 9: case 9:
str = TR("Ordini"); str = TR("Ordini");
break; hstr = TR("Ordine");
break;
case 11: case 11:
str = TR("Carichi e scarichi"); str = TR("Carichi e scarichi");
hstr = TR("Movimento");
break; break;
case 13: case 13:
str = TR("Scontrini"); str = TR("Scontrini");
hstr = TR("Documento");
break; break;
case 14: case 14:
str = TR("Generici"); str = TR("Generici");
hstr = TR("Movimento");
break; break;
default: default:
str = TR("Documenti"); str = TR("Documenti");
break; hstr = TR("Documento");
break;
}; };
TRACE(str); TRACE(str);
if (_direct_write) if (_direct_write)
direct_doc(docs, str, tipotestata, unitadefault, importadoc); direct_doc(docs, str, tipotestata, unitadefault, importadoc);
else else
transaction_doc(docs, str, tipotestata, unitadefault, importadoc); transaction_doc(docs, hstr, str, tipotestata, unitadefault, importadoc);
} }
TToken_string & TImporta_Beestore::decode_presentazione(const char*IBAN) TToken_string & TImporta_Beestore::decode_presentazione(const char*IBAN)