From eb07cc378f4c4110c6a3eb8a8233006bf03d5544 Mon Sep 17 00:00:00 2001 From: guy Date: Fri, 25 May 2007 10:56:49 +0000 Subject: [PATCH] Patch level : 712 Files correlati : crpa0 Ricompilazione Demo : [ ] Commento : Forzato l'utente amministratore in assenza di utente sulla riga di comando git-svn-id: svn://10.65.10.50/trunk@15364 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- crpa/crpa0.cpp | 75 +++++++++++++++++++++++++++----------------------- 1 file changed, 41 insertions(+), 34 deletions(-) diff --git a/crpa/crpa0.cpp b/crpa/crpa0.cpp index 0f71e8258..7725bd1d2 100755 --- a/crpa/crpa0.cpp +++ b/crpa/crpa0.cpp @@ -1,4 +1,5 @@ #include +#include #include #include #include @@ -72,10 +73,17 @@ protected: public: void write_sqlinsert(); void write_sqldelete(); - TIni2Sql() {} + + TIni2Sql(); virtual ~TIni2Sql() {} }; +TIni2Sql::TIni2Sql() +{ + if (user().blank()) + user() = dongle().administrator(); +} + // restituisce un riferimento all' applicazione inline TIni2Sql& app() { return (TIni2Sql&) main_app();} @@ -326,34 +334,33 @@ bool TIni2Sql::search_costo_ricavo(TBill& conto, const TRiga_documento& r) conto.set(gr,co,so); if (!conto.ok()) // se il conto non c'e' guarda la categoria acquisti/vendite { - TTable *t = is_cli ? new TTable("CRA") : new TTable("CAA"); - - t->put("CODTAB",_anamag->get(is_cli ? ANAMAG_CATCONV : ANAMAG_CATCONA)); - if (t->read() == NOERR) + const TString16 catcon = _anamag->get(is_cli ? ANAMAG_CATCONV : ANAMAG_CATCONA); + const TRectype& cat = cache().get(is_cli ? "CRA" : "CAA", catcon); + if (!cat.empty()) { - gr = atoi(t->get("S1")); - co = atoi(t->get("S2")); - so = atol(t->get("S3")); + gr = cat.get_int("S1"); + co = cat.get_int("S2"); + so = cat.get_long("S3"); conto.set(gr,co,so); } } - if (conto.ok()) break; + if (conto.ok()) + break; } else if (tok == "GM" || tok == "SM" || tok == "RF") { if (skip_art_related) continue; const bool is_fis = tok == "RF"; - TTable * tab = is_fis ? new TTable("RFA") : new TTable("GMC"); - TString16 codtab(_anamag->get(is_fis ? ANAMAG_RAGGFIS : ANAMAG_GRMERC)); + TString16 codtab = _anamag->get(is_fis ? ANAMAG_RAGGFIS : ANAMAG_GRMERC); if (tok == "GM" && codtab.len() > 3) codtab.cut(3); // gli ultimi 2 si riferiscono al sottogruppo. - tab->put("CODTAB",codtab); - if (tab->read() == NOERR) + const TRectype& tab = cache().get(is_fis ? "RFA" : "GMC", codtab); + if (!tab.empty()) { - gr = tab->get_int(is_cli ? "I3" : "I0"); - co = tab->get_int(is_cli ? "I4" : "I1"); - so = tab->get_long(is_cli ? "I5" : "I2"); + gr = tab.get_int(is_cli ? "I3" : "I0"); + co = tab.get_int(is_cli ? "I4" : "I1"); + so = tab.get_long(is_cli ? "I5" : "I2"); conto.set(gr,co,so); } if (conto.ok()) break; @@ -362,24 +369,25 @@ bool TIni2Sql::search_costo_ricavo(TBill& conto, const TRiga_documento& r) if (tok == "CV" || tok == "CC") { const bool is_cve = tok == "CV"; - if (is_cve && !is_cli) continue; // se e' un fornitore salta questa condizione - TTable* t = is_cve ? new TTable("CVE") : new TTable("CCO"); - TString16 cod(is_cve ? r.doc().get(DOC_CATVEN) : EMPTY_STRING); + if (is_cve && !is_cli) + continue; // se e' un fornitore salta questa condizione + TString16 cod = is_cve ? r.doc().get(DOC_CATVEN) : EMPTY_STRING; if (cod.empty()) { if (skip_clifo) continue; // se non aveva trovato il cliente salta al prossimo cod = _clifo->lfile(LF_CFVEN).get(is_cve ? CFV_CATVEN : CFV_CODCATC); } - t->put("CODTAB",cod); - if (t->read() == NOERR) + const TRectype& t = cache().get(is_cve ? "CVE" : "CCO", cod); + if (!t.empty()) { const bool x =(is_cve || is_cli); - gr = t->get_int(x ? "I3" : "I0"); - co = t->get_int(x ? "I4" : "I1"); - so = t->get_long(x ? "I5": "I2"); + gr = t.get_int(x ? "I3" : "I0"); + co = t.get_int(x ? "I4" : "I1"); + so = t.get_long(x ? "I5": "I2"); conto.set(gr,co,so); } - if (conto.ok()) break; + if (conto.ok()) + break; } } break; // case 'M' @@ -387,13 +395,12 @@ bool TIni2Sql::search_costo_ricavo(TBill& conto, const TRiga_documento& r) case 'P': // righe prestazione case 'S': // righe spese { - TTable* tab = t == 'P' ? new TTable("PRS") : new TTable("SPP"); - tab->put("CODTAB",r.get(RDOC_CODART)); - if (tab->read()==NOERR) + const TRectype& tab = cache().get(t == 'P' ? "PRS" : "SPP", r.get(RDOC_CODART)); + if (!tab.empty()) { - gr = tab->get_int(is_cli ? "I0" : "I3"); - co = tab->get_int(is_cli ? "I1" : "I4"); - so = tab->get_long(is_cli ? "I2" : "I5"); + gr = tab.get_int(is_cli ? "I0" : "I3"); + co = tab.get_int(is_cli ? "I1" : "I4"); + so = tab.get_long(is_cli ? "I2" : "I5"); conto.set(gr,co,so); if (!is_cli && !conto.ok()) { @@ -853,8 +860,8 @@ bool TIni2Sql::search_conto_cespite(TBill& conto, const TRiga_documento& r) } TEsercizi_contabili esercizi; int esc = esercizi.date2esc(r.doc().get_date(DOC_DATADOC)); - TString16 str; - str.format("%04d", esc); + TString16 str; str.format("%04d", esc); + TTable tabccb("CCB"); tabccb.put("CODTAB", str); tabccb.read(); @@ -1151,6 +1158,6 @@ void TIni2Sql::main_loop() int main(int argc, char** argv) { TIni2Sql a; - a.run(argc, argv, "Trasferimento dati da EuroCampo"); + a.run(argc, argv, TR("Trasferimento dati da EuroCampo")); return 0; }