From 59cccf46bea4e2957da15941a0153574f4e661c5 Mon Sep 17 00:00:00 2001 From: Alessandro Bonazzi Date: Tue, 19 Sep 2023 14:38:42 +0200 Subject: [PATCH] Patch level : 12.00 1280 Files correlati : sc0.exe Commento : Programma di controllo e ripristino partite errate. --- src/sc/sc0.cpp | 3 +- src/sc/sc0.h | 2 +- src/sc/sc0400.cpp | 80 +++++++++++++++++++++++++++++++++++++++++++++++ src/sc/scmenu.men | 1 + 4 files changed, 84 insertions(+), 2 deletions(-) create mode 100644 src/sc/sc0400.cpp diff --git a/src/sc/sc0.cpp b/src/sc/sc0.cpp index 58b005f33..a8a5241c4 100755 --- a/src/sc/sc0.cpp +++ b/src/sc/sc0.cpp @@ -8,7 +8,8 @@ int main(int argc, char** argv) switch(n) { case 1: sc0200(argc,argv); break; // Gestione partite - case 2: sc0300(argc,argv); break; // Pareggio partite + case 2: sc0300(argc, argv); break; // Pareggio partite + case 3: sc0400(argc, argv); break; // Controllo partite default: sc0100(argc,argv); break; // Gestione classica } return 0; diff --git a/src/sc/sc0.h b/src/sc/sc0.h index bb4b5c0c0..ff313fc84 100755 --- a/src/sc/sc0.h +++ b/src/sc/sc0.h @@ -1,4 +1,4 @@ int sc0100(int argc, char* argv[]); int sc0200(int argc, char* argv[]); int sc0300(int argc, char* argv[]); - +int sc0400(int argc, char* argv[]); diff --git a/src/sc/sc0400.cpp b/src/sc/sc0400.cpp new file mode 100644 index 000000000..db269ad12 --- /dev/null +++ b/src/sc/sc0400.cpp @@ -0,0 +1,80 @@ +#include +#include +#include +#include +#include +#include "../cg/cgsaldac.h" +#include +#include + +/////////////////////////////////////////////////////////// +// TControllo_partite +/////////////////////////////////////////////////////////// + +class TControllo_partite : public TSkeleton_application +{ +protected: + virtual void main_loop(); +}; + +void TControllo_partite::main_loop() +{ + TLog_report log("Controllo partite"); + TCursor part(new TRelation(LF_PARTITE)); + TString4 last_tipocf; + int last_gruppo = -1; + int last_conto = -1; + long last_sottoconto = -1L; + int last_anno = -1; + TString last_npart; + const long items = part.items(); + const int codditta = prefix().get_codditta(); + + { + TProgress_monitor p(items, "Controllo partite"); + + part.freeze(); + log.line(); + log.log(0, format("Ditta %s", (const char *)cache().get(LF_NDITTE, codditta, NDT_RAGSOC))); + log.line(); + for (part = 0L; p.addstatus() && part.pos() < items; ++part) + { + const TString4 tipocf = part.curr().get(PART_TIPOCF); + const int gruppo = part.curr().get_int(PART_GRUPPO); + const int conto = part.curr().get_int(PART_CONTO); + const long sottoconto = part.curr().get_long(PART_SOTTOCONTO); + const TString npart = part.curr().get(PART_NUMPART); + const int anno = part.curr().get_int(PART_ANNO); + + if ((tipocf != last_tipocf) || (gruppo != last_gruppo) || + (conto != last_conto) || (sottoconto != last_sottoconto) || + (npart != last_npart) || (anno != last_anno)) + { + last_tipocf = tipocf; + last_gruppo = gruppo; + last_conto = conto; + last_sottoconto = sottoconto; + last_npart = npart; + last_anno = anno; + + TPartita p(part.curr()); + + if (p.patched()) + log.log(0, format(FR("La partita %s %03d %03d %0ld %04d %s è stata corretta"), + (const char *)tipocf, gruppo, conto, sottoconto, anno, (const char *)npart)); + } + } + } + log.preview(); +} + +/////////////////////////////////////////////////////////// +// Main +/////////////////////////////////////////////////////////// + +int sc0400(int argc, char* argv[]) +{ + TControllo_partite pp; + pp.run(argc, argv, TR("Controllo Partite")); + return 0; +} diff --git a/src/sc/scmenu.men b/src/sc/scmenu.men index 8aae3f2d2..75f32bb68 100755 --- a/src/sc/scmenu.men +++ b/src/sc/scmenu.men @@ -24,4 +24,5 @@ Item_03 = "Allineamento Partite", "sc1 -2", "F" Item_04 = "Abbuoni automatici", "sc1 -3", "F" Item_05 = "Controllo pagamenti doppi", "sc1 -4", "F" Item_06 = "Controllo partite chiuse", "sc1 -5", "F" +Item_07 = "Controllo partite errate", "sc0 -3", "F"