Patch level : 12.0 no-patch
Files correlati : mr0.exe Commento : Aggiornamento query Campo/Compass: - Sistemate tutte le funzioni che utilizzano il filtro, adesso non dovrebbero più crearsi problemi di sovrapposizione dei dati. - Aggiornamento generale query secondo le necessità del cliente git-svn-id: svn://10.65.10.50/branches/R_10_00@23541 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
b010dd57a2
commit
006403f0ac
@ -202,7 +202,6 @@ TString TCampass_app::esporta(const TString& DSN, const TString& usr, const TStr
|
||||
|
||||
logFile << getTime() << " - Connessione effettuata!\n";
|
||||
|
||||
|
||||
// INIZIO O03
|
||||
logFile << getTime() << " - Inizio esportazione O03:\n";
|
||||
|
||||
@ -320,7 +319,7 @@ bool TCampass_app::a01a(const TString id) const
|
||||
// Controllo la connessione
|
||||
if (!sqlset.connect(DSN, usr, psw))
|
||||
return false;
|
||||
TRelation rilprod(LF_RILPROD),rdoc(LF_RIGHEDOC);
|
||||
TRelation rilprod(LF_RILPROD), rdoc(LF_RIGHEDOC), filtro(LF_RIGHEDOC);
|
||||
int items;
|
||||
TString msg("Esportazione tabella "); msg << "A01A";
|
||||
TCursor curRilprod(&rilprod, "CODNUM = \"ORC\" && QTA >= 0");
|
||||
@ -338,7 +337,7 @@ bool TCampass_app::a01a(const TString id) const
|
||||
TRectype rowRilprod = curRilprod.curr();
|
||||
|
||||
// Vado a prendere il documento di riferimento
|
||||
TRectype filtroFiltro(rdoc.curr());
|
||||
TRectype filtroFiltro(filtro.curr());
|
||||
filtroFiltro.put("CODNUM", rowRilprod.get("CODNUM"));
|
||||
filtroFiltro.put("ANNO", rowRilprod.get("ANNO"));
|
||||
filtroFiltro.put("PROVV", rowRilprod.get("PROVV"));
|
||||
@ -355,7 +354,7 @@ bool TCampass_app::a01a(const TString id) const
|
||||
filtroRDoc.put("DAANNO", rowFiltro.get("ANNO"));
|
||||
filtroRDoc.put("DACODNUM", rowFiltro.get("CODNUM"));
|
||||
filtroRDoc.put("DANDOC", rowFiltro.get("NDOC"));
|
||||
filtroRDoc.put("DAIDRIGA", rowFiltro.get("NRIGA"));
|
||||
filtroRDoc.put("DAIDRIGA", rowFiltro.get("IDRIGA"));
|
||||
TString codartmag; codartmag << "CODARTMAG == \"" << rowRilprod.get("CODART") << "\"";
|
||||
TCursor curRdoc(&rdoc, codartmag, 4, &filtroRDoc, &filtroRDoc);
|
||||
if(curRdoc.items() > 0)
|
||||
@ -366,7 +365,7 @@ bool TCampass_app::a01a(const TString id) const
|
||||
// Dichiaro la stringa
|
||||
TString sqlQuery;
|
||||
sqlQuery << "INSERT INTO A01A ( IKRUNIMP, FAZI, CStr, CPRD, NMOV, CMAC, QPFPRO, FSALDO, NFAS ) \
|
||||
VALUES('" << id << "','U','DBS','" << zeroFill(rowRDoc.get("NDOC")) << "." << rowRDoc.get("NRIGA") << "','1','" << rowRilprod.get("LINEA") << "','" << rowRilprod.get("QTA") << "','";
|
||||
VALUES('" << id << "','U','DBS','" << zeroFill(rowRDoc.get("NDOC")) << "." << rowRDoc.get("IDRIGA") << "','1','" << rowRilprod.get("LINEA") << "','" << rowRilprod.get("QTA") << "','";
|
||||
sqlQuery << (rowRilprod.get("CHIUSO") == "X" ? "1" : "0"); sqlQuery << "','10');";
|
||||
if(sqlset.exec(sqlQuery) != 1)
|
||||
{
|
||||
@ -385,7 +384,7 @@ bool TCampass_app::o01a(const TString id) const
|
||||
// Controllo la connessione
|
||||
if (!sqlset.connect(DSN, usr, psw))
|
||||
return false;
|
||||
TRelation doc(LF_DOC),rdoc(LF_RIGHEDOC);
|
||||
TRelation doc(LF_DOC),rdoc(LF_RIGHEDOC), filtro(LF_RIGHEDOC);
|
||||
int items;
|
||||
TString msg("Esportazione tabella "); msg << "O01A";
|
||||
// Creo il filtro per la chiave del cursore, da quel che ho capito le chiavi sono più veloci di un filtro (come è possibile?)
|
||||
@ -402,6 +401,7 @@ bool TCampass_app::o01a(const TString id) const
|
||||
break;
|
||||
// Prendo la riga del FILTRO
|
||||
TRectype rowRDoc = curRDoc.curr();
|
||||
if(rowRDoc.get("DACODNUM") != "ORC" && rowRDoc.get("DACODNUM") != "PRC") continue; // Filtro subito, evito di caricare un sacco di documenti per nulla
|
||||
|
||||
// Vado a prendere il documento di riferimento
|
||||
TRectype filtroDoc(doc.curr());
|
||||
@ -417,53 +417,52 @@ bool TCampass_app::o01a(const TString id) const
|
||||
TRectype rowDoc = (curDoc.curr());
|
||||
|
||||
// Vado a prendere la riga di riferimento
|
||||
TRectype filtroFiltro(rdoc.curr());
|
||||
if(rowRDoc.get("DACODNUM") == "ORC" || rowRDoc.get("DACODNUM") == "PRC")
|
||||
TRectype filtroFiltro(filtro.curr());
|
||||
|
||||
filtroFiltro.put("CODNUM", rowRDoc.get("DACODNUM"));
|
||||
filtroFiltro.put("ANNO", rowRDoc.get("DAANNO"));
|
||||
filtroFiltro.put("PROVV", rowRDoc.get("DAPROVV"));
|
||||
filtroFiltro.put("NDOC", rowRDoc.get("DANDOC"));
|
||||
filtroFiltro.put("IDRIGA", rowRDoc.get("DAIDRIGA"));
|
||||
TCursor curFiltro(&rdoc, "", 1, &filtroFiltro, &filtroFiltro);
|
||||
|
||||
for (curFiltro = 0; curFiltro.pos() < curFiltro.items() && !p.is_cancelled(); ++curFiltro)
|
||||
{
|
||||
filtroFiltro.put("CODNUM", rowRDoc.get("DACODNUM"));
|
||||
filtroFiltro.put("ANNO", rowRDoc.get("DAANNO"));
|
||||
filtroFiltro.put("PROVV", rowRDoc.get("DAPROVV"));
|
||||
filtroFiltro.put("NDOC", rowRDoc.get("DANDOC"));
|
||||
filtroFiltro.put("NRIGA", rowRDoc.get("DAIDRIGA"));
|
||||
TCursor curFiltro(&rdoc, "RIGAEVASA != \"X\"", 1, &filtroFiltro, &filtroFiltro);
|
||||
for (curFiltro = 0; curFiltro.pos() < curFiltro.items() && !p.is_cancelled(); ++curFiltro)
|
||||
if(rowRDoc.get_bool("RIGAEVASA")) continue; // Controllo ma la query sopra non mi va come al solito
|
||||
// Dichiaro la stringa
|
||||
TString sqlQuery;
|
||||
|
||||
// Inserisco IIKRUNIMP, FAZI, CStr, CPRD, CART
|
||||
sqlQuery << "INSERT INTO O01A ( IKRUNIMP, FAZI, CStr, CPRD, CART, TIPORD, FLGSTA, CMAG, DPRICHI, DPRICHF, QPORD, XNOTE, CCLI ) \
|
||||
VALUES('" << id << "','U','DBS','" << zeroFill(rowDoc.get("NDOC")) << "." << rowRDoc.get("IDRIGA") << "','" << rowRDoc.get("CODARTMAG") << "','";
|
||||
|
||||
// Inserisco TIPORD
|
||||
sqlQuery << (rowRDoc.get("DACODNUM") == "ORC" ? "R" : "P");
|
||||
|
||||
// Inserisco FLGSTA, CMAG, DPRICHI, DPRICHF, QPORD, XNOTE, CCLI
|
||||
sqlQuery << "',NULL,'";
|
||||
|
||||
// Se non ho un codice magazzino metto lo standard, Roberto ha detto di metterlo a mano tanto non cambierà mai!
|
||||
TString mag(rowRDoc.get("CODMAG"));
|
||||
if(mag.full())
|
||||
sqlQuery << mag;
|
||||
else
|
||||
sqlQuery << "001";
|
||||
|
||||
sqlQuery << "','" << rowDoc.get_date("DATADOC").date2ansi() << "','" << rowRDoc.get_date("DATACONS").date2ansi() << "','" << zeroFill(rowRDoc.get("QTA")) << "',";
|
||||
|
||||
// Controllo che il campo DESCEST sia pieno
|
||||
TString desc; desc << rowRDoc.get("DESCEST");
|
||||
if(desc.len() == 0)
|
||||
sqlQuery << "NULL,";
|
||||
else
|
||||
sqlQuery << "'" << desc << "',";
|
||||
sqlQuery << "'" << zeroFill(rowDoc.get("CODCF")) << "');";
|
||||
|
||||
if(sqlset.exec(sqlQuery) != 1)
|
||||
{
|
||||
if(rowRDoc.get("RIGAEVASA") == "X") continue; // Controllo ma la query sopra non mi va come al solito
|
||||
// Dichiaro la stringa
|
||||
TString sqlQuery;
|
||||
|
||||
// Inserisco IIKRUNIMP, FAZI, CStr, CPRD, CART
|
||||
sqlQuery << "INSERT INTO O01A ( IKRUNIMP, FAZI, CStr, CPRD, CART, TIPORD, FLGSTA, CMAG, DPRICHI, DPRICHF, QPORD, XNOTE, CCLI ) \
|
||||
VALUES('" << id << "','U','DBS','" << zeroFill(rowDoc.get("NDOC")) << "." << rowRDoc.get("NRIGA") << "','" << rowRDoc.get("CODARTMAG") << "','";
|
||||
|
||||
// Inserisco TIPORD
|
||||
sqlQuery << (rowRDoc.get("DACODNUM") == "ORC" ? "R" : "P");
|
||||
|
||||
// Inserisco FLGSTA, CMAG, DPRICHI, DPRICHF, QPORD, XNOTE, CCLI
|
||||
sqlQuery << "',NULL,'";
|
||||
|
||||
// Se non ho un codice magazzino metto lo standard, Roberto ha detto di metterlo a mano tanto non cambierà mai!
|
||||
TString mag(rowRDoc.get("CODMAG"));
|
||||
if(mag.full())
|
||||
sqlQuery << mag;
|
||||
else
|
||||
sqlQuery << "001";
|
||||
|
||||
sqlQuery << "','" << rowDoc.get_date("DATADOC").date2ansi() << "','" << rowRDoc.get_date("DATACONS").date2ansi() << "','" << zeroFill(rowRDoc.get("QTA")) << "',";
|
||||
|
||||
// Controllo che il campo DESCEST sia pieno
|
||||
TString desc; desc << rowRDoc.get("DESCEST");
|
||||
if(desc.len() == 0)
|
||||
sqlQuery << "NULL,";
|
||||
else
|
||||
sqlQuery << "'" << desc << "',";
|
||||
sqlQuery << "'" << zeroFill(rowDoc.get("CODCF")) << "');";
|
||||
|
||||
if(sqlset.exec(sqlQuery) != 1)
|
||||
{
|
||||
message_box(sqlQuery);
|
||||
return false;
|
||||
}
|
||||
message_box(sqlQuery);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -477,7 +476,7 @@ bool TCampass_app::o01e(const TString id) const
|
||||
// Controllo la connessione
|
||||
if (!sqlset.connect(DSN, usr, psw))
|
||||
return false;
|
||||
TRelation doc(LF_DOC),rdoc(LF_RIGHEDOC);
|
||||
TRelation doc(LF_DOC), rdoc(LF_RIGHEDOC), filtro(LF_RIGHEDOC);
|
||||
int items;
|
||||
TString msg("Esportazione tabella "); msg << "O01E";
|
||||
// Creo il filtro per la chiave del cursore, da quel che ho capito le chiavi sono più veloci di un filtro (come è possibile?)
|
||||
@ -491,14 +490,14 @@ bool TCampass_app::o01e(const TString id) const
|
||||
TRectype rowRDoc = curRDoc.curr();
|
||||
|
||||
// Vado a prendere la riga di riferimento
|
||||
TRectype filtroFiltro(rdoc.curr());
|
||||
TRectype filtroFiltro(filtro.curr());
|
||||
if(rowRDoc.get("DACODNUM") == "ORC")
|
||||
{
|
||||
filtroFiltro.put("CODNUM", rowRDoc.get("DACODNUM"));
|
||||
filtroFiltro.put("ANNO", rowRDoc.get("DAANNO"));
|
||||
filtroFiltro.put("PROVV", rowRDoc.get("DAPROVV"));
|
||||
filtroFiltro.put("NDOC", rowRDoc.get("DANDOC"));
|
||||
filtroFiltro.put("NRIGA", rowRDoc.get("DAIDRIGA"));
|
||||
filtroFiltro.put("IDRIGA", rowRDoc.get("DAIDRIGA"));
|
||||
TCursor curFiltro(&rdoc, "RIGAEVASA != \"X\"", 1, &filtroFiltro, &filtroFiltro);
|
||||
for (curFiltro = 0; curFiltro.pos() < curFiltro.items() && !p.is_cancelled(); ++curFiltro)
|
||||
{
|
||||
@ -508,14 +507,14 @@ bool TCampass_app::o01e(const TString id) const
|
||||
TString codagg; codagg << rowFiltro.get("CODAGG1");
|
||||
// Inserisco IIKRUNIMP, FAZI, CStr, CPRD, CART
|
||||
sqlQuery << "INSERT INTO O01E ( IKRUNIMP, CSTR, CPRD, CPARAM, CPARVAL ) \
|
||||
VALUES('" << id << "','DBS','" << zeroFill(rowRDoc.get("NDOC")) << "." << rowRDoc.get("NRIGA") << "','TONING','" << codagg.sub(0,5) << "');";
|
||||
VALUES('" << id << "','DBS','" << zeroFill(rowRDoc.get("NDOC")) << "." << rowRDoc.get("IDRIGA") << "','TONING','" << codagg.sub(0,5) << "');";
|
||||
sqlQuery << "INSERT INTO O01E ( IKRUNIMP, CSTR, CPRD, CPARAM, CPARVAL ) \
|
||||
VALUES('" << id << "','DBS','" << zeroFill(rowRDoc.get("NDOC")) << "." << rowRDoc.get("NRIGA") << "','CALING','" << codagg.sub(6) << "');";
|
||||
VALUES('" << id << "','DBS','" << zeroFill(rowRDoc.get("NDOC")) << "." << rowRDoc.get("IDRIGA") << "','CALING','" << codagg.sub(6) << "');";
|
||||
codagg = rowFiltro.get("CODAGG2");
|
||||
sqlQuery << "INSERT INTO O01E ( IKRUNIMP, CSTR, CPRD, CPARAM, CPARVAL ) \
|
||||
VALUES('" << id << "','DBS','" << zeroFill(rowRDoc.get("NDOC")) << "." << rowRDoc.get("NRIGA") << "','TONUSC','" << codagg.sub(0,5) << "');";
|
||||
VALUES('" << id << "','DBS','" << zeroFill(rowRDoc.get("NDOC")) << "." << rowRDoc.get("IDRIGA") << "','TONUSC','" << codagg.sub(0,5) << "');";
|
||||
sqlQuery << "INSERT INTO O01E ( IKRUNIMP, CSTR, CPRD, CPARAM, CPARVAL ) \
|
||||
VALUES('" << id << "','DBS','" << zeroFill(rowRDoc.get("NDOC")) << "." << rowRDoc.get("NRIGA") << "','CALUSC','" << codagg.sub(6) << "');";
|
||||
VALUES('" << id << "','DBS','" << zeroFill(rowRDoc.get("NDOC")) << "." << rowRDoc.get("IDRIGA") << "','CALUSC','" << codagg.sub(6) << "');";
|
||||
if(sqlset.exec(sqlQuery) != 1)
|
||||
{
|
||||
message_box(sqlQuery);
|
||||
@ -532,11 +531,11 @@ bool TCampass_app::o02a(const TString CodNum, const TString id) const
|
||||
// Controllo la connessione
|
||||
if (!sqlset.connect(DSN, usr, psw))
|
||||
return false;
|
||||
TRelation doc(LF_DOC),rdoc(LF_RIGHEDOC);
|
||||
TRelation doc(LF_DOC), rdoc(LF_RIGHEDOC), filtro(LF_RIGHEDOC);
|
||||
int items;
|
||||
TString msg("Esportazione tabella "); msg << "O02A - " << CodNum;
|
||||
// Creo il filtro per la chiave del cursore, da quel che ho capito le chiavi sono più veloci di un filtro (come è possibile?)
|
||||
TRectype filtroRDoc(rdoc.curr()); filtroRDoc.put("CODNUM", CodNum);
|
||||
TRectype filtroRDoc(filtro.curr()); filtroRDoc.put("CODNUM", CodNum);
|
||||
TCursor curRDoc(&rdoc, "RIGAEVASA != \"X\"", 1, &filtroRDoc, &filtroRDoc);
|
||||
items = curRDoc.items();
|
||||
|
||||
@ -592,7 +591,7 @@ bool TCampass_app::o02c(const TString CodNum, const TString id) const
|
||||
// Controllo la connessione
|
||||
if (!sqlset.connect(DSN, usr, psw))
|
||||
return false;
|
||||
TRelation doc(LF_DOC),rdoc(LF_RIGHEDOC);
|
||||
TRelation doc(LF_DOC), rdoc(LF_RIGHEDOC), filtro(LF_RIGHEDOC);
|
||||
int items;
|
||||
TString msg("Esportazione tabella "); msg << "O02C - " << CodNum;
|
||||
// Creo il filtro per la chiave del cursore, da quel che ho capito le chiavi sono più veloci di un filtro (come è possibile?)
|
||||
@ -612,14 +611,14 @@ bool TCampass_app::o02c(const TString CodNum, const TString id) const
|
||||
TRectype rowRDoc = curRDoc.curr();
|
||||
|
||||
// Vado a prendere la riga di riferimento
|
||||
TRectype filtroFiltro(rdoc.curr());
|
||||
TRectype filtroFiltro(filtro.curr());
|
||||
if(rowRDoc.get("DACODNUM") == CodNum)
|
||||
{
|
||||
filtroFiltro.put("CODNUM", rowRDoc.get("DACODNUM"));
|
||||
filtroFiltro.put("ANNO", rowRDoc.get("DAANNO"));
|
||||
filtroFiltro.put("PROVV", rowRDoc.get("DAPROVV"));
|
||||
filtroFiltro.put("NDOC", rowRDoc.get("DANDOC"));
|
||||
filtroFiltro.put("NRIGA", rowRDoc.get("DAIDRIGA"));
|
||||
filtroFiltro.put("IDRIGA", rowRDoc.get("DAIDRIGA"));
|
||||
TCursor curFiltro(&rdoc, "RIGAEVASA != \"X\"", 1, &filtroFiltro, &filtroFiltro);
|
||||
for (curFiltro = 0; curFiltro.pos() < curFiltro.items() && !p.is_cancelled(); ++curFiltro)
|
||||
{
|
||||
@ -627,8 +626,8 @@ bool TCampass_app::o02c(const TString CodNum, const TString id) const
|
||||
TString sqlQuery;
|
||||
|
||||
// Inserisco Tutto (yeeeeeeeeeeeeeee)
|
||||
sqlQuery << "INSERT INTO O02C ( IKRUNIMP, CStr, CPRD, CCLIH, CCLIR, BVAL) \
|
||||
VALUES('" << id << "','DBS','" << zeroFill(rowRDoc.get("NDOC")) << "." << rowRDoc.get("NRIGA") << "','" << rowRDoc.get("DAANNO") << "." << CodNum << "." << zeroFill(rowRDoc.get("DANDOC")) << "','" << rowRDoc.get("DAIDRIGA") << "','1');";
|
||||
sqlQuery << "INSERT INTO O02C ( IKRUNIMP, CStr, CPRD, CCLIH, CCLIR, BVAL, DBS_CART) \
|
||||
VALUES('" << id << "','DBS','" << zeroFill(rowRDoc.get("NDOC")) << "." << rowRDoc.get("IDRIGA") << "','" << rowRDoc.get("DAANNO") << "." << CodNum << "." << zeroFill(rowRDoc.get("DANDOC")) << "','" << rowRDoc.get("DAIDRIGA") << "','1','" << rowRDoc.get("CODART") << "');";
|
||||
|
||||
if(sqlset.exec(sqlQuery) != 1)
|
||||
{
|
||||
@ -783,6 +782,7 @@ bool TCampass_app::p01a(const TString id) const
|
||||
}
|
||||
return sqlset.commit() == -1 ? false : true;
|
||||
}
|
||||
|
||||
bool TCampass_app::p01b(const TString id) const
|
||||
{
|
||||
TODBC_recordset sqlset("", true);
|
||||
|
Loading…
x
Reference in New Issue
Block a user