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 p01b(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
|
||||
|
||||
public:
|
||||
@ -186,6 +188,8 @@ TString TCampass_app::esporta(const TString& DSN, const TString& usr, const TStr
|
||||
// Funzione disabilitata di debug
|
||||
// Innanzitutto svuoto le tabelle
|
||||
//if(!emptyTables(DSN)) return false;
|
||||
//test();
|
||||
//return "";
|
||||
|
||||
// Adesso inizio a popolarle
|
||||
|
||||
@ -261,7 +265,7 @@ TString TCampass_app::esporta(const TString& DSN, const TString& usr, const TStr
|
||||
if(!o02a("PRC", o02)) errors << "ERRORE TABELLA: O02A - PRC\n"; // O02A PRC
|
||||
else
|
||||
logFile << getTime() << " - Esportata tabella O02A - PRC\n";
|
||||
|
||||
|
||||
if(!o02c("ORC", o02)) errors << "ERRORE TABELLA: O02C - ORC\n"; // O02C ORC
|
||||
else
|
||||
logFile << getTime() << " - Esportata tabella O02C - ORC\n";
|
||||
@ -273,7 +277,8 @@ TString TCampass_app::esporta(const TString& DSN, const TString& usr, const TStr
|
||||
endExport(o02);
|
||||
|
||||
logFile << getTime() << " - Fine esportazione O02!\n";
|
||||
|
||||
|
||||
|
||||
// INIZIO O01
|
||||
|
||||
logFile << getTime() << " - Inizio esportazione O01:\n";
|
||||
@ -316,6 +321,61 @@ TString TCampass_app::esporta(const TString& DSN, const TString& usr, const TStr
|
||||
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
|
||||
bool TCampass_app::a01a(const TString id) const
|
||||
{
|
||||
@ -352,6 +412,7 @@ bool TCampass_app::a01a(const TString id) const
|
||||
curFiltro = 0;
|
||||
// Prendo la riga di Filtro
|
||||
TRectype rowFiltro = curFiltro.curr();
|
||||
if(rowFiltro.get_bool("RIGAEVASA")) continue;
|
||||
// Preparo la riga del documento
|
||||
TRectype filtroRDoc(rdoc.curr());
|
||||
filtroRDoc.put("DAPROVV", rowFiltro.get("PROVV"));
|
||||
@ -406,9 +467,10 @@ bool TCampass_app::o01a(const TString id) const
|
||||
// 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;
|
||||
|
||||
// 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_ANNO, rowRDoc.get("ANNO"));
|
||||
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("PROVV", rowRDoc.get("DAPROVV"));
|
||||
filtroFiltro.put("NDOC", rowRDoc.get("DANDOC"));
|
||||
filtroFiltro.put("IDRIGA", rowRDoc.get("DAIDRIGA"));
|
||||
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
|
||||
TString sqlQuery;
|
||||
|
||||
@ -441,7 +503,8 @@ bool TCampass_app::o01a(const TString id) const
|
||||
sqlQuery << (rowRDoc.get("DACODNUM") == "ORC" ? "R" : "P");
|
||||
|
||||
// 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!
|
||||
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("PROVV", rowRDoc.get("DAPROVV"));
|
||||
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);
|
||||
curFiltro = 0;
|
||||
// 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
|
||||
TString sqlQuery;
|
||||
// Inserisco Tutto (yeeeeeeeeeeeeeee)
|
||||
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)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user