Patch level : 12.0 374
Files correlati : mr0 Commento : Sistemata query O01A git-svn-id: svn://10.65.10.50/branches/R_10_00@23703 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
1e28a41950
commit
5baa352c02
@ -69,6 +69,8 @@ protected:
|
|||||||
bool p01a(const TString id) const;
|
bool p01a(const TString id) const;
|
||||||
bool p01b(const TString id) const;
|
bool p01b(const TString id) const;
|
||||||
bool p02a(const TString id) const;
|
bool p02a(const TString id) const;
|
||||||
|
/**< Funzione di test */
|
||||||
|
bool test() const;
|
||||||
//bool o01b(const TString& DSN) const; Messa in pausa
|
//bool o01b(const TString& DSN) const; Messa in pausa
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@ -186,6 +188,8 @@ TString TCampass_app::esporta(const TString& DSN, const TString& usr, const TStr
|
|||||||
// Funzione disabilitata di debug
|
// Funzione disabilitata di debug
|
||||||
// Innanzitutto svuoto le tabelle
|
// Innanzitutto svuoto le tabelle
|
||||||
//if(!emptyTables(DSN)) return false;
|
//if(!emptyTables(DSN)) return false;
|
||||||
|
//test();
|
||||||
|
//return "";
|
||||||
|
|
||||||
// Adesso inizio a popolarle
|
// Adesso inizio a popolarle
|
||||||
|
|
||||||
@ -274,6 +278,7 @@ TString TCampass_app::esporta(const TString& DSN, const TString& usr, const TStr
|
|||||||
|
|
||||||
logFile << getTime() << " - Fine esportazione O02!\n";
|
logFile << getTime() << " - Fine esportazione O02!\n";
|
||||||
|
|
||||||
|
|
||||||
// INIZIO O01
|
// INIZIO O01
|
||||||
|
|
||||||
logFile << getTime() << " - Inizio esportazione O01:\n";
|
logFile << getTime() << " - Inizio esportazione O01:\n";
|
||||||
@ -316,6 +321,61 @@ TString TCampass_app::esporta(const TString& DSN, const TString& usr, const TStr
|
|||||||
return errors;
|
return errors;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool TCampass_app::test() const
|
||||||
|
{
|
||||||
|
TODBC_recordset sqlset("", true);
|
||||||
|
// Controllo la connessione
|
||||||
|
if (!sqlset.connect(DSN, usr, psw))
|
||||||
|
return false;
|
||||||
|
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
|
||||||
|
TRectype filtroRDoc(rdoc.curr()); filtroRDoc.put("CODNUM", "ORP1");
|
||||||
|
TCursor curRDoc(&rdoc, "", 1, &filtroRDoc, &filtroRDoc);
|
||||||
|
items = curRDoc.items();
|
||||||
|
TProgress_monitor p(items, msg);
|
||||||
|
// Adesso inserisco tutta la bella roba
|
||||||
|
int i = 0, j = 0, k = 0;
|
||||||
|
for (curRDoc = 0; curRDoc.pos() < items && !p.is_cancelled(); ++curRDoc)
|
||||||
|
{
|
||||||
|
int num = curRDoc.pos();
|
||||||
|
// Aggiorno il Progress Monitor
|
||||||
|
if (!p.add_status())
|
||||||
|
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
|
||||||
|
if(rowRDoc.get_bool("RIGAEVASA")) continue;
|
||||||
|
j++;
|
||||||
|
|
||||||
|
TRectype filtroDoc(TRelation(LF_DOC).curr());
|
||||||
|
filtroDoc.put(DOC_PROVV, rowRDoc.get("PROVV"));
|
||||||
|
filtroDoc.put(DOC_ANNO, rowRDoc.get("ANNO"));
|
||||||
|
filtroDoc.put(DOC_CODNUM, rowRDoc.get("CODNUM"));
|
||||||
|
filtroDoc.put(DOC_NDOC, rowRDoc.get("NDOC"));
|
||||||
|
TCursor curDoc(&doc, "", 1, &filtroDoc, &filtroDoc);
|
||||||
|
if(curDoc.items() > 0)
|
||||||
|
{
|
||||||
|
k++;
|
||||||
|
|
||||||
|
|
||||||
|
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"));
|
||||||
|
TCursor curFiltro(&rdoc, "", 1, &filtroFiltro, &filtroFiltro);
|
||||||
|
curFiltro = 0;
|
||||||
|
if (curFiltro.items() == 0 || rowRDoc.get_int("DAIDRIGA") != curFiltro.curr().get_int("IDRIGA")|| curFiltro.curr().get_bool("RIGAEVASA")) continue;
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
message_box(TR("Numero elementi prima: %d, con doc: %d dopo: %d"), j, k, i);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Non sono molto sicuro del suo funzionamento
|
// Non sono molto sicuro del suo funzionamento
|
||||||
bool TCampass_app::a01a(const TString id) const
|
bool TCampass_app::a01a(const TString id) const
|
||||||
{
|
{
|
||||||
@ -352,6 +412,7 @@ bool TCampass_app::a01a(const TString id) const
|
|||||||
curFiltro = 0;
|
curFiltro = 0;
|
||||||
// Prendo la riga di Filtro
|
// Prendo la riga di Filtro
|
||||||
TRectype rowFiltro = curFiltro.curr();
|
TRectype rowFiltro = curFiltro.curr();
|
||||||
|
if(rowFiltro.get_bool("RIGAEVASA")) continue;
|
||||||
// Preparo la riga del documento
|
// Preparo la riga del documento
|
||||||
TRectype filtroRDoc(rdoc.curr());
|
TRectype filtroRDoc(rdoc.curr());
|
||||||
filtroRDoc.put("DAPROVV", rowFiltro.get("PROVV"));
|
filtroRDoc.put("DAPROVV", rowFiltro.get("PROVV"));
|
||||||
@ -406,9 +467,10 @@ bool TCampass_app::o01a(const TString id) const
|
|||||||
// Prendo la riga del FILTRO
|
// Prendo la riga del FILTRO
|
||||||
TRectype rowRDoc = curRDoc.curr();
|
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
|
if(rowRDoc.get("DACODNUM") != "ORC" && rowRDoc.get("DACODNUM") != "PRC") continue; // Filtro subito, evito di caricare un sacco di documenti per nulla
|
||||||
|
if(rowRDoc.get_bool("RIGAEVASA")) continue;
|
||||||
|
|
||||||
// Vado a prendere il documento di riferimento
|
// Vado a prendere il documento di riferimento
|
||||||
TRectype filtroDoc(doc.curr());
|
TRectype filtroDoc(TRelation(LF_DOC).curr());
|
||||||
filtroDoc.put(DOC_PROVV, rowRDoc.get("PROVV"));
|
filtroDoc.put(DOC_PROVV, rowRDoc.get("PROVV"));
|
||||||
filtroDoc.put(DOC_ANNO, rowRDoc.get("ANNO"));
|
filtroDoc.put(DOC_ANNO, rowRDoc.get("ANNO"));
|
||||||
filtroDoc.put(DOC_CODNUM, rowRDoc.get("CODNUM"));
|
filtroDoc.put(DOC_CODNUM, rowRDoc.get("CODNUM"));
|
||||||
@ -427,9 +489,9 @@ bool TCampass_app::o01a(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"));
|
|
||||||
TCursor curFiltro(&rdoc, "", 1, &filtroFiltro, &filtroFiltro);
|
TCursor curFiltro(&rdoc, "", 1, &filtroFiltro, &filtroFiltro);
|
||||||
if (curFiltro.items() == 0 || rowRDoc.get_bool("RIGAEVASA")) continue; // Controllo ma la query sopra non mi va come al solito
|
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
|
||||||
// Dichiaro la stringa
|
// Dichiaro la stringa
|
||||||
TString sqlQuery;
|
TString sqlQuery;
|
||||||
|
|
||||||
@ -441,7 +503,8 @@ bool TCampass_app::o01a(const TString id) const
|
|||||||
sqlQuery << (rowRDoc.get("DACODNUM") == "ORC" ? "R" : "P");
|
sqlQuery << (rowRDoc.get("DACODNUM") == "ORC" ? "R" : "P");
|
||||||
|
|
||||||
// Inserisco FLGSTA, CMAG, DPRICHI, DPRICHF, QPORD, XNOTE, CCLI
|
// Inserisco FLGSTA, CMAG, DPRICHI, DPRICHF, QPORD, XNOTE, CCLI
|
||||||
sqlQuery << "',NULL,'";
|
sqlQuery << "','" << (rowRDoc.get("RIGAEVASA") == "X" ? "C" : "A");
|
||||||
|
sqlQuery << "','";
|
||||||
|
|
||||||
// Se non ho un codice magazzino metto lo standard, Roberto ha detto di metterlo a mano tanto non cambierà mai!
|
// 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"));
|
TString mag(rowRDoc.get("CODMAG"));
|
||||||
@ -695,17 +758,17 @@ bool TCampass_app::o02c(const TString CodNum, 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, "RIGAEVASA!=\"X\"", 1, &filtroFiltro, &filtroFiltro);
|
||||||
curFiltro = 0;
|
curFiltro = 0;
|
||||||
// Se non ho elementi salto tutto
|
// Se non ho elementi salto tutto
|
||||||
if(rowRDoc.get_int("DAIDRIGA") != curFiltro.curr().get_int("IDRIGA") || curFiltro.items() == 0 || 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 (yeeeeeeeeeeeeeee)
|
||||||
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("NRIGA") << "','" << 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") << "." << CodNum << "." << zeroFill(rowRDoc.get("DANDOC")) << "','" << rowRDoc.get("DAIDRIGA") << "','1','" << rowRDoc.get("CODART") << "');";
|
||||||
|
|
||||||
if(sqlset.exec(sqlQuery) != 1)
|
if(sqlset.exec(sqlQuery) != 1)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user