DataIO
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
ERootStatistika.h
Go to the documentation of this file.
1 #if !defined(ERootStatistika_EA44085F_D79F_4b25_B3A7_A784ADCAE927__INCLUDED_)
2 #define ERootStatistika_EA44085F_D79F_4b25_B3A7_A784ADCAE927__INCLUDED_
3 
4 #include "dataio/DataIODefines.h"
5 #include "dataio/dataoutput/EAbstraktnyZaznam.h"
6 #include "core/common/ESingleton.h"
7 
8 #include <vector>
9 #include <string>
10 
11 class EHead;
12 
13 namespace EM
14 {
15  namespace Strojcek
16  {
17  namespace StatistikaStrojcek
18  {
19  struct AbsPocitadlo
20  {
21  unsigned long pocet;
22  unsigned long suma;
24  bool storno;
25  };
26 
27  struct VystupneData;
28  class EConfig;
29  class ECisloOdpoctu;
30  class EZmenaVodic;
31  class EStatistikaFileSystem;
32  class EUzavierkaCol;
33  class ECestovnyListok;
34  class ECestovnyListokCol;
35  class ISender;
36 
37  class DATAIO_API ERootStatistika : public ESingleton<ERootStatistika>
38  {
39  public:
40 
42  {
43  seOK = 0,
44  seZaznamNezapisany = 1,
45  seNeexistujeObjektCisloOdpoctu = 2,
46  seChybaPriPrihlasovani = 3,
47  seOdpocetJeOtvoreny = 4,
48  seNeprebehloPrihlasenie = 5,
49  seChybaPriPociatocnomListku = 6,
50  sePrihlasenaInaObsluha = 7,
51  seOdpocetNieJeOtvoreny = 8,
52  seChybaPriKoncovomListku = 9,
53  seZapisujeSaRovnakaZmenaSpoj = 10,
54  seKolekciaMienJePrazdna = 11,
55  seMusisSaZnovuPrihlasit = 12,
56  seNepresielZapisListka = 13,
57  seZleCisloStrojceka = 14,
58  seRozneVerzieOdpoctu = 15, // ina verzia odpoctu je v binarke odpoctu(odpocet.dat) a ina v libke, ktoru pouziva aplikacia
59  seNulovyLogin = 16,
60  seChybnyZapisVOdpocte = 17, // zmrseny odpocet
61  seNexistujeZmenaSpoj = 18,
62  seAbsCountersMismatch = 19, // nesedi naratany pocet listkov a pocet listkov v absolutnych pocitadlach. OBSOLETE
63  seChybaPriOverovaniPrihlasenia = 20
64  };
65 
67  {
68  WarningOK = 0,
69  WarningAbsCountersMismatch = 1, // nesedi naratany pocet listkov a pocet listkov v absolutnych pocitadlach
70  WarningBadFile = 2 // poskodeny subor - je to len warning, lebo pri errore potom neuzavrelo odpocet a muselo sa upravovat rucne
71  };
72 
74  long Init( const char *path, bool createConfig = true, const char *backUpPath = "" );
75  virtual ~ERootStatistika();
76 
77  char *getPath();
78  char *getNormalPath();
79  char *GetNormalBackUpPath();
80  EZmenaVodic *getZmenaVodic();
81  void clearDriverChange();
82  EStatistikaFileSystem *getFileSystem();
83 
84  bool GetCitackaWork();
85  void SetCitackaWork( bool newVal );
86  bool GetNecislovatPocKoncListok();
87  void SetNecislovatPocKoncListok( bool newVal );
88 
89  EConfig *GetConfig();
90  ECisloOdpoctu *GetCisloOdpoctu();
91  void PackActBackUp();
92  void RefreshActBackUp();
93 
94  StatistikaErrors CheckCredentials( unsigned long osobneCislo, unsigned long PIN );
95  StatistikaErrors Prihlasenie( unsigned long datumCas, unsigned long osobneCislo, unsigned long PIN, bool isDispecer = false );
96  StatistikaErrors PociatocnyListok( unsigned long datumPL );
97  StatistikaErrors KoncovyListok( unsigned long datumKL, bool predbeznyOdpocet = false );
98  /*Ak Zapis prebehne uspesne o dealokaciu sa postara statistika, TODO novu funkciu na zapis kopie*/
107  StatistikaErrors ZapisZaznamu( EAbstraktnyZaznam *newNode );
108  EHead *CitanieListka( unsigned long cisloListka, bool onlyLastZmenaSpoj = false, bool allList = true, unsigned long cisloCitacky = 0 );
109  EAbstraktnyZaznam *CitanieZaznamu( EAbstraktnyZaznam::TypZaznamu cisloZaznamu );
110  EUzavierkaCol *GetUzavierka();
112  bool CheckStorno( unsigned long cisloPovodnehoListka, bool allList, unsigned long cisloCitacky );
113  long IsOpenOdpocet();
114  long GetNextTicketNumber();
115 
118  ECestovnyListokCol *ZoznamListkov( bool allList = true, unsigned long cisloCitacky = 0 );
119  // to iste, co fukncia ZoznamListkov, ale vracia zoznamy listkov pre vsetky ZmenaSpoj v Odpocte
120  std::vector<ECestovnyListokCol *> ZoznamyListkov( bool allList = true, unsigned long cisloCitacky = 0 );
121 
123  ECestovnyListokCol *CreateListokPreStorno( unsigned long cisloListka, bool onlyLastZmenaSpoj = false, bool allList = true, unsigned long cisloCitacky = 0 );
124  bool PrihlasenieCitacka( unsigned long osobneCislo, unsigned long PIN, unsigned long cisloOdpoctu, unsigned long datumCas );
125 
126  ECisloOdpoctu *NewDeductionNumber( const char *cisloStrojceka = "", const char *cisloCitacky = "", unsigned long cisloPracoviska = 0, unsigned long cisloOdpoctu = 0 );
127 
132  bool readLastRecord( bool onlyLast = true );
133  ECisloOdpoctu *readCisloOdpoctu();
134  EAbstraktnyZaznam *RecieveTicket( VystupneData *vstupneData );
135 
136  long GetDeductionVersion();
137  long GetOnlineStatisticsVersion();
138  std::string GetFileName();
139  void SetSync( bool sync );
140  bool GetSync();
141 
142  void SetSender( ISender *sender );
143  ISender *GetSender();
144 
145  long GetMachineStartTotal();
146  long GetMachineCloseTotal();
147 
148  static long Sync( const char *filename );
149  static long GetDirSize( const char *dirName );
150  static bool IsFileExist( char *fileName );
151  static std::vector<AbsPocitadlo *> *GetActualAbsPocitaloCol();
152  bool IsBackUpOK();
153  bool DeleteOldestStoredBackUp();
154  void TerminateDeductionWithOldVersion();
155  long GetDeductionFileVersion();
156  bool IsTypPlatbyDoAbs( int typPlatby );
157  bool IsOnlineStatisticsAll();
158  bool IsOnlineStatisticsAdditional();
159  bool ShouldBeEncounteredToAbsCounters( ECestovnyListok *listok );
160  StatisticsWarnings GetLastWarning();
161 
162  private:
163  class DataClass;
164  DataClass *d;
165  };
166  }
167  }
168 }
169 
170 #endif
Definition: ERootStatistika.h:19
StatisticsWarnings
Definition: ERootStatistika.h:66
bool storno
Definition: ERootStatistika.h:24
unsigned long pocet
Definition: ERootStatistika.h:21
StatistikaErrors
Definition: ERootStatistika.h:41
Definition: ECestovnyListok.h:19
Class ECol : Objekt je predok pre vsetky nasledujuce kolekcie
Definition: ColReader.h:15
unsigned long suma
Definition: ERootStatistika.h:22
int cisloTarifListka
Definition: ERootStatistika.h:23
TypZaznamu
Definition: EAbstraktnyZaznam.h:19
Definition: EAbstraktnyZaznam.h:16
#define DATAIO_API
Definition: DataIODefines.h:10
Definition: ECestovnyListokCol.h:20