Patch level : 12.0 no-patch
Files correlati : Commento : Risistemate tutte le query di Campo/Compass git-svn-id: svn://10.65.10.50/branches/R_10_00@23724 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
3d0a651492
commit
511f18ed24
@ -386,7 +386,7 @@ bool TCampass_app::a01a(const TString id) const
|
|||||||
TRelation rilprod(LF_RILPROD), rdoc(LF_RIGHEDOC), filtro(LF_RIGHEDOC);
|
TRelation rilprod(LF_RILPROD), rdoc(LF_RIGHEDOC), filtro(LF_RIGHEDOC);
|
||||||
int items;
|
int items;
|
||||||
TString msg("Esportazione tabella "); msg << "A01A";
|
TString msg("Esportazione tabella "); msg << "A01A";
|
||||||
TCursor curRilprod(&rilprod, "CODNUM = \"ORC\" && QTA >= 0");
|
TCursor curRilprod(&rilprod, "CODNUM = \"ORC\" && QTA > 0");
|
||||||
|
|
||||||
items = curRilprod.items();
|
items = curRilprod.items();
|
||||||
TProgress_monitor p(items, msg);
|
TProgress_monitor p(items, msg);
|
||||||
@ -400,13 +400,16 @@ bool TCampass_app::a01a(const TString id) const
|
|||||||
// Prendo la riga di RILPROD
|
// Prendo la riga di RILPROD
|
||||||
TRectype rowRilprod = curRilprod.curr();
|
TRectype rowRilprod = curRilprod.curr();
|
||||||
|
|
||||||
|
// Applico i filtri di nuovo
|
||||||
|
if(rowRilprod.get_int("QTA") <= 0 || rowRilprod.get("CODNUM") != "ORC") continue;
|
||||||
|
|
||||||
// Vado a prendere il documento di riferimento
|
// Vado a prendere il documento di riferimento
|
||||||
TRectype filtroFiltro(filtro.curr());
|
TRectype filtroFiltro(filtro.curr());
|
||||||
filtroFiltro.put("CODNUM", rowRilprod.get("CODNUM"));
|
filtroFiltro.put("CODNUM", rowRilprod.get("CODNUM"));
|
||||||
filtroFiltro.put("ANNO", rowRilprod.get("ANNO"));
|
filtroFiltro.put("ANNO", rowRilprod.get("ANNO"));
|
||||||
filtroFiltro.put("PROVV", rowRilprod.get("PROVV"));
|
filtroFiltro.put("PROVV", rowRilprod.get("PROVV"));
|
||||||
filtroFiltro.put("NDOC", rowRilprod.get("NDOC"));
|
filtroFiltro.put("NDOC", rowRilprod.get("NDOC"));
|
||||||
TCursor curFiltro(&rdoc, "RIGAEVASA != \"X\"", 1, &filtroFiltro, &filtroFiltro);
|
TCursor curFiltro(&rdoc, "", 1, &filtroFiltro, &filtroFiltro);
|
||||||
if(curFiltro.items() > 0)
|
if(curFiltro.items() > 0)
|
||||||
{
|
{
|
||||||
curFiltro = 0;
|
curFiltro = 0;
|
||||||
@ -419,7 +422,7 @@ bool TCampass_app::a01a(const TString id) const
|
|||||||
filtroRDoc.put("DAANNO", rowFiltro.get("ANNO"));
|
filtroRDoc.put("DAANNO", rowFiltro.get("ANNO"));
|
||||||
filtroRDoc.put("DACODNUM", rowFiltro.get("CODNUM"));
|
filtroRDoc.put("DACODNUM", rowFiltro.get("CODNUM"));
|
||||||
filtroRDoc.put("DANDOC", rowFiltro.get("NDOC"));
|
filtroRDoc.put("DANDOC", rowFiltro.get("NDOC"));
|
||||||
filtroRDoc.put("DAIDRIGA", rowFiltro.get("IDRIGA"));
|
//filtroRDoc.put("DAIDRIGA", rowFiltro.get("IDRIGA")); Non esiste questa chiave
|
||||||
TString codartmag; codartmag << "CODARTMAG == \"" << rowRilprod.get("CODART") << "\"";
|
TString codartmag; codartmag << "CODARTMAG == \"" << rowRilprod.get("CODART") << "\"";
|
||||||
TCursor curRdoc(&rdoc, codartmag, 4, &filtroRDoc, &filtroRDoc);
|
TCursor curRdoc(&rdoc, codartmag, 4, &filtroRDoc, &filtroRDoc);
|
||||||
if(curRdoc.items() > 0)
|
if(curRdoc.items() > 0)
|
||||||
@ -427,6 +430,10 @@ bool TCampass_app::a01a(const TString id) const
|
|||||||
curRdoc = 0;
|
curRdoc = 0;
|
||||||
// Prendo la riga di RDOC
|
// Prendo la riga di RDOC
|
||||||
TRectype rowRDoc = curRdoc.curr();
|
TRectype rowRDoc = curRdoc.curr();
|
||||||
|
|
||||||
|
// Riapplico i filtri
|
||||||
|
if(rowRilprod.get("CODART") != rowRDoc.get("CODARTMAG") || rowFiltro.get("IDRIGA") != rowRDoc.get("DAIDRIGA")) continue;
|
||||||
|
|
||||||
// Dichiaro la stringa
|
// Dichiaro la stringa
|
||||||
TString sqlQuery;
|
TString sqlQuery;
|
||||||
sqlQuery << "INSERT INTO A01A ( IKRUNIMP, FAZI, CStr, CPRD, NMOV, CMAC, QPFPRO, FSALDO, NFAS ) \
|
sqlQuery << "INSERT INTO A01A ( IKRUNIMP, FAZI, CStr, CPRD, NMOV, CMAC, QPFPRO, FSALDO, NFAS ) \
|
||||||
@ -491,7 +498,10 @@ bool TCampass_app::o01a(const TString id) const
|
|||||||
filtroFiltro.put("NDOC", rowRDoc.get("DANDOC"));
|
filtroFiltro.put("NDOC", rowRDoc.get("DANDOC"));
|
||||||
TCursor curFiltro(&rdoc, "", 1, &filtroFiltro, &filtroFiltro);
|
TCursor curFiltro(&rdoc, "", 1, &filtroFiltro, &filtroFiltro);
|
||||||
curFiltro = 0;
|
curFiltro = 0;
|
||||||
if (curFiltro.items() == 0 || rowRDoc.get_int("DAIDRIGA") != curFiltro.curr().get_int("IDRIGA")|| curFiltro.curr().get_bool("RIGAEVASA")) continue; // Controllo ma la query sopra non mi va come al solito
|
|
||||||
|
// Filtro aggiuntivo
|
||||||
|
if (curFiltro.items() == 0 || rowRDoc.get_int("DAIDRIGA") != curFiltro.curr().get_int("IDRIGA")|| curFiltro.curr().get_bool("RIGAEVASA")) continue;
|
||||||
|
|
||||||
// Dichiaro la stringa
|
// Dichiaro la stringa
|
||||||
TString sqlQuery;
|
TString sqlQuery;
|
||||||
|
|
||||||
@ -577,6 +587,9 @@ bool TCampass_app::o01c(const TString id) const
|
|||||||
|
|
||||||
if(rowRDoc.get("CODART") != rowRDist.get("CODDIST")) continue;
|
if(rowRDoc.get("CODART") != rowRDist.get("CODDIST")) continue;
|
||||||
|
|
||||||
|
// Filtro aggiuntivo
|
||||||
|
if(rowRDist.get("TIPO") != "A" || rowRDoc.get_bool("RIGAEVASA")) continue; // Filtro RIGAEVASA prima così mi risparmio righe
|
||||||
|
|
||||||
// Vado a prendere la riga di riferimento
|
// Vado a prendere la riga di riferimento
|
||||||
TRectype filtroFiltro(filtro.curr());
|
TRectype filtroFiltro(filtro.curr());
|
||||||
if(rowRDoc.get("DACODNUM") == "ORC" || rowRDoc.get("DACODNUM") == "PRC")
|
if(rowRDoc.get("DACODNUM") == "ORC" || rowRDoc.get("DACODNUM") == "PRC")
|
||||||
@ -585,11 +598,12 @@ bool TCampass_app::o01c(const TString id) const
|
|||||||
filtroFiltro.put("ANNO", rowRDoc.get("DAANNO"));
|
filtroFiltro.put("ANNO", rowRDoc.get("DAANNO"));
|
||||||
filtroFiltro.put("PROVV", rowRDoc.get("DAPROVV"));
|
filtroFiltro.put("PROVV", rowRDoc.get("DAPROVV"));
|
||||||
filtroFiltro.put("NDOC", rowRDoc.get("DANDOC"));
|
filtroFiltro.put("NDOC", rowRDoc.get("DANDOC"));
|
||||||
filtroFiltro.put("IDRIGA", rowRDoc.get("DAIDRIGA"));
|
//filtroFiltro.put("IDRIGA", rowRDoc.get("DAIDRIGA"));
|
||||||
TCursor curFiltro(&rdoc, "RIGAEVASA != \"X\"", 1, &filtroFiltro, &filtroFiltro);
|
TCursor curFiltro(&rdoc, "", 1, &filtroFiltro, &filtroFiltro);
|
||||||
for (curFiltro = 0; curFiltro.pos() < curFiltro.items() && !p.is_cancelled(); ++curFiltro)
|
for (curFiltro = 0; curFiltro.pos() < curFiltro.items() && !p.is_cancelled(); ++curFiltro)
|
||||||
{
|
{
|
||||||
if(curFiltro.curr().get_int("IDRIGA") != rowRDoc.get_int("DAIDRIGA")) continue;
|
// Filtro aggiuntivo
|
||||||
|
if(curFiltro.curr().get_int("IDRIGA") != rowRDoc.get_int("DAIDRIGA") || curFiltro.curr().get_bool("RIGAEVASA")) continue;
|
||||||
TString sqlQuery;
|
TString sqlQuery;
|
||||||
sqlQuery << "INSERT INTO O01C ( IKRUNIMP, CStr, CPRD, CARTFIL, CUDM, QIMP, QBASE, XTCALC, NSEQ ) \
|
sqlQuery << "INSERT INTO O01C ( IKRUNIMP, CStr, CPRD, CARTFIL, CUDM, QIMP, QBASE, XTCALC, NSEQ ) \
|
||||||
VALUES('" << id << "','DBS','" << zeroFill(rowRDoc.get("NDOC")) << "." << rowRDoc.get("IDRIGA") << "','" << rowRDist.get("CODCOMP") << "','"
|
VALUES('" << id << "','DBS','" << zeroFill(rowRDoc.get("NDOC")) << "." << rowRDoc.get("IDRIGA") << "','" << rowRDist.get("CODCOMP") << "','"
|
||||||
@ -614,7 +628,6 @@ bool TCampass_app::o01e(const TString id) const
|
|||||||
TRelation doc(LF_DOC), rdoc(LF_RIGHEDOC), filtro(LF_RIGHEDOC);
|
TRelation doc(LF_DOC), rdoc(LF_RIGHEDOC), filtro(LF_RIGHEDOC);
|
||||||
int items;
|
int items;
|
||||||
TString msg("Esportazione tabella "); msg << "O01E";
|
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?)
|
|
||||||
TRectype filtroRDoc(rdoc.curr()); filtroRDoc.put("CODNUM", "ORP1");
|
TRectype filtroRDoc(rdoc.curr()); filtroRDoc.put("CODNUM", "ORP1");
|
||||||
TCursor curRDoc(&rdoc, "", 1, &filtroRDoc, &filtroRDoc);
|
TCursor curRDoc(&rdoc, "", 1, &filtroRDoc, &filtroRDoc);
|
||||||
items = curRDoc.items();
|
items = curRDoc.items();
|
||||||
@ -636,12 +649,12 @@ bool TCampass_app::o01e(const TString id) const
|
|||||||
filtroFiltro.put("ANNO", rowRDoc.get("DAANNO"));
|
filtroFiltro.put("ANNO", rowRDoc.get("DAANNO"));
|
||||||
filtroFiltro.put("PROVV", rowRDoc.get("DAPROVV"));
|
filtroFiltro.put("PROVV", rowRDoc.get("DAPROVV"));
|
||||||
filtroFiltro.put("NDOC", rowRDoc.get("DANDOC"));
|
filtroFiltro.put("NDOC", rowRDoc.get("DANDOC"));
|
||||||
filtroFiltro.put("IDRIGA", rowRDoc.get("DAIDRIGA"));
|
//filtroFiltro.put("IDRIGA", rowRDoc.get("DAIDRIGA"));
|
||||||
TCursor curFiltro(&rdoc, "RIGAEVASA != \"X\"", 1, &filtroFiltro, &filtroFiltro);
|
TCursor curFiltro(&filtro, "", 1, &filtroFiltro, &filtroFiltro);
|
||||||
for (curFiltro = 0; curFiltro.pos() < curFiltro.items() && !p.is_cancelled(); ++curFiltro)
|
for (curFiltro = 0; curFiltro.pos() < curFiltro.items() && !p.is_cancelled(); ++curFiltro)
|
||||||
{
|
{
|
||||||
TRectype rowFiltro(curFiltro.curr());
|
TRectype rowFiltro(curFiltro.curr());
|
||||||
if(rowFiltro.get_int("IDRIGA") != rowRDoc.get_int("DAIDRIGA")) continue;
|
if(rowFiltro.get_int("IDRIGA") != rowRDoc.get_int("DAIDRIGA") || rowFiltro.get_bool("RIGAEVASA")) continue;
|
||||||
// Dichiaro la stringa
|
// Dichiaro la stringa
|
||||||
TString sqlQuery;
|
TString sqlQuery;
|
||||||
TString codagg; codagg << rowFiltro.get("CODAGG1");
|
TString codagg; codagg << rowFiltro.get("CODAGG1");
|
||||||
@ -674,9 +687,9 @@ bool TCampass_app::o02a(const TString CodNum, const TString id) const
|
|||||||
TRelation doc(LF_DOC), rdoc(LF_RIGHEDOC), filtro(LF_RIGHEDOC);
|
TRelation doc(LF_DOC), rdoc(LF_RIGHEDOC), filtro(LF_RIGHEDOC);
|
||||||
int items;
|
int items;
|
||||||
TString msg("Esportazione tabella "); msg << "O02A - " << CodNum;
|
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(filtro.curr()); filtroRDoc.put("CODNUM", CodNum);
|
TRectype filtroRDoc(rdoc.curr()); filtroRDoc.put("CODNUM", CodNum);
|
||||||
TCursor curRDoc(&rdoc, "RIGAEVASA != \"X\"", 1, &filtroRDoc, &filtroRDoc);
|
TCursor curRDoc(&rdoc, "", 1, &filtroRDoc, &filtroRDoc);
|
||||||
items = curRDoc.items();
|
items = curRDoc.items();
|
||||||
|
|
||||||
TProgress_monitor p(items, msg);
|
TProgress_monitor p(items, msg);
|
||||||
@ -687,11 +700,16 @@ bool TCampass_app::o02a(const TString CodNum, const TString id) const
|
|||||||
// Aggiorno il Progress Monitor
|
// Aggiorno il Progress Monitor
|
||||||
if (!p.add_status())
|
if (!p.add_status())
|
||||||
break;
|
break;
|
||||||
// Dichiaro la stringa
|
|
||||||
TString sqlQuery;
|
|
||||||
// Prendo la riga di RDOC
|
// Prendo la riga di RDOC
|
||||||
TRectype rowRDoc = curRDoc.curr();
|
TRectype rowRDoc = curRDoc.curr();
|
||||||
|
|
||||||
|
// Filtro aggiuntivo
|
||||||
|
if(rowRDoc.get_bool("RIGAEVASA")) continue;
|
||||||
|
|
||||||
|
// Dichiaro la stringa
|
||||||
|
TString sqlQuery;
|
||||||
|
|
||||||
// Vado a prendere il documento di riferimento
|
// Vado a prendere il documento di riferimento
|
||||||
TRectype filtroDoc(doc.curr());
|
TRectype filtroDoc(doc.curr());
|
||||||
filtroDoc.put(DOC_PROVV, rowRDoc.get("PROVV"));
|
filtroDoc.put(DOC_PROVV, rowRDoc.get("PROVV"));
|
||||||
@ -760,15 +778,15 @@ bool TCampass_app::o02c(const TString CodNum, const TString id) const
|
|||||||
filtroFiltro.put("NDOC", rowRDoc.get("DANDOC"));
|
filtroFiltro.put("NDOC", rowRDoc.get("DANDOC"));
|
||||||
//filtroFiltro.put("IDRIGA", rowRDoc.get("DAIDRIGA"));
|
//filtroFiltro.put("IDRIGA", rowRDoc.get("DAIDRIGA"));
|
||||||
|
|
||||||
TCursor curFiltro(&rdoc, "RIGAEVASA!=\"X\"", 1, &filtroFiltro, &filtroFiltro);
|
TCursor curFiltro(&rdoc, "", 1, &filtroFiltro, &filtroFiltro);
|
||||||
curFiltro = 0;
|
curFiltro = 0;
|
||||||
// Se non ho elementi salto tutto
|
// Se non ho elementi salto tutto
|
||||||
if(curFiltro.items() == 0 || rowRDoc.get_int("DAIDRIGA") != curFiltro.curr().get_int("IDRIGA") || curFiltro.curr().get_bool("RIGAEVASA")) continue; // Aggiungo ulteriore controllo, PERCHÉ NON METTE DAIDRIGA!?
|
if(curFiltro.items() <= 0 || rowRDoc.get_int("DAIDRIGA") != curFiltro.curr().get_int("IDRIGA") || curFiltro.curr().get_bool("RIGAEVASA")) continue; // Aggiungo ulteriore controllo, PERCHÉ NON METTE DAIDRIGA!?
|
||||||
// Dichiaro la stringa
|
// Dichiaro la stringa
|
||||||
TString sqlQuery;
|
TString sqlQuery;
|
||||||
// Inserisco Tutto (yeeeeeeeeeeeeeee)
|
// Inserisco Tutto
|
||||||
sqlQuery << "INSERT INTO O02C ( IKRUNIMP, CStr, CPRD, CCLIH, CCLIR, BVAL, DBS_CART) \
|
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") << "');";
|
VALUES('" << id << "','DBS','" << zeroFill(rowRDoc.get("NDOC")) << "." << rowRDoc.get("IDRIGA") << "','" << rowRDoc.get("DAANNO") << "." << rowRDoc.get("DACODNUM") << "." << zeroFill(rowRDoc.get("DANDOC")) << "','" << rowRDoc.get("DAIDRIGA") << "','1','" << rowRDoc.get("CODART") << "');";
|
||||||
|
|
||||||
if(sqlset.exec(sqlQuery) != 1)
|
if(sqlset.exec(sqlQuery) != 1)
|
||||||
{
|
{
|
||||||
@ -804,7 +822,7 @@ bool TCampass_app::o03a(const TString id) const
|
|||||||
TString sqlQuery;
|
TString sqlQuery;
|
||||||
// Prendo la riga di RDOC
|
// Prendo la riga di RDOC
|
||||||
TRectype rowClifo = curClifo.curr();
|
TRectype rowClifo = curClifo.curr();
|
||||||
// Inserisco tutto in un colpo (yeeeeeeeee)
|
// Inserisco tutto in un colpo
|
||||||
sqlQuery << "INSERT INTO O03A ( IKRUNIMP, FAZI, CStr, CCLI, RCLI ) \
|
sqlQuery << "INSERT INTO O03A ( IKRUNIMP, FAZI, CStr, CCLI, RCLI ) \
|
||||||
VALUES('" << id << "','U','DBS','" << zeroFill(rowClifo.get("CODCF")) << "','" << toEscape(rowClifo.get("RAGSOC")) << "');";
|
VALUES('" << id << "','U','DBS','" << zeroFill(rowClifo.get("CODCF")) << "','" << toEscape(rowClifo.get("RAGSOC")) << "');";
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user