From b8e91dce074d40e84c5d62f3c58a67e0e44d7029 Mon Sep 17 00:00:00 2001 From: Simoe Date: Wed, 14 Sep 2022 17:42:33 +0200 Subject: [PATCH] Patch level : 12.0 Files correlati : f9lib.h f9lib01.cpp real.h real.cpp Commento: corretto bug nell inserimento dei movimenti in errore nella tabella F9_ERR. la query era errata e ritornava un errore di "scrittura nel database" Interno nell'estrazione degli acquisti non viene estratto il numero di documento. da vedere --- src/f9/f9lib.h | 1 + src/f9/f9lib01.cpp | 22 +++++++++++----------- src/include/real.cpp | 6 ++++++ src/include/real.h | 2 ++ 4 files changed, 20 insertions(+), 11 deletions(-) diff --git a/src/f9/f9lib.h b/src/f9/f9lib.h index 1fba206ef..6e7be450b 100644 --- a/src/f9/f9lib.h +++ b/src/f9/f9lib.h @@ -498,6 +498,7 @@ class TF9_dberr protected: void add_str(const TString& string); + void add_num(const long& num); void write_sqlerrlog(const TString& query) const; public: void add(const TString& string); diff --git a/src/f9/f9lib01.cpp b/src/f9/f9lib01.cpp index bce03b3ab..87216b06e 100644 --- a/src/f9/f9lib01.cpp +++ b/src/f9/f9lib01.cpp @@ -682,7 +682,7 @@ bool TEstrazione::export_error_list() const dberr.add(mov.codcaus()); dberr.add(mov.meseliq()); dberr.add(mov.numdoc()); - dberr.add(mov.totale().stringa()); + dberr.add(mov.totale().string_point()); dberr.add(mov.codcf()); dberr.add(mov.ragsoc()); dberr.add(mov.protiva()); @@ -803,6 +803,7 @@ const char* TEstrazione::diagnostica_mov() if (mov_i.no_err() && mov_i.estratto()) { + const long numreg = mov_i.numreg(); const TRectype & mov =cache().get(LF_MOV, numreg); @@ -1336,19 +1337,22 @@ void TF9_dberr::add(const TString& string) add_str(str); } + + void TF9_dberr::add(const TDate& date) { - if (date.ok()) - add(date.date2ansi()); + if (date.ok()) + add(date.date2ansi()); + else add("00010101"); } void TF9_dberr::add(const long num) { - TString app; - app << num; - add(app); + TString app; + app << num; + add(app); } bool TF9_dberr::send() @@ -1370,8 +1374,6 @@ bool TF9_dberr::send() ERR_RAGSOC ", " ERR_PROTIVA ", " ERR_DESCR ", " - ERR_ESCLUDI ", " - ERR_ESCLUSO ", " ERR_DESCERR ") VALUES ()"; return ok; } @@ -1428,8 +1430,6 @@ TF9_dberr::TF9_dberr() ERR_RAGSOC ", " ERR_PROTIVA ", " ERR_DESCR ", " - ERR_ESCLUDI ", " - ERR_ESCLUSO ", " ERR_DESCERR ") VALUES ()"; _fout = new ofstream; _fout->open("f9_dberr.txt"); @@ -1448,7 +1448,7 @@ TAnnesso_mov::TAnnesso_mov(TToken_string & row, int start) _filename = row.get(); _catdocpad = row.get(); _catdocann = row.get(); - _loaddate = row.get_date(); + _loaddate = row.get_date(0); _user = row.get(); } diff --git a/src/include/real.cpp b/src/include/real.cpp index 28d8e2313..ebb06141d 100755 --- a/src/include/real.cpp +++ b/src/include/real.cpp @@ -1296,6 +1296,12 @@ const char* real::stringe(int len, int dec, char pad) const return str; } +const char* real::string_point(int len, int dec, char pad) const +{ + char* str = (char*)string(len, dec, pad); + return str; +} + void real::print_on(ostream& out) const { diff --git a/src/include/real.h b/src/include/real.h index 196852815..20bb2312a 100755 --- a/src/include/real.h +++ b/src/include/real.h @@ -126,6 +126,8 @@ public: // @cmember Trasforma un reale in stringa (chiama ), //ma ritorna il formato atteso da Excel const char* stringe(int len = 0, int dec = UNDEFINED, char pad = ' ') const; + //Ritorna la string con il punto per dividere interi da decimali + const char* string_point(int len = 0, int dec = UNDEFINED, char pad = ' ') const; // @cmember Ritorna la stringa con il formato passato const char* string(const char* picture) const; // @cmember Ritorna la stringa con il formato passato