DataIO
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
EPriceComputerDE.h
Go to the documentation of this file.
1 #ifndef _PRIZE_COMPUTER_DE_H_
2 #define _PRIZE_COMPUTER_DE_H_
3 
4 #include "dataio/DataIODefines.h"
5 #include "dataio/datainput/ERootDataIO.h"
6 #include "core/common/Array.h"
7 #include "core/common/Head.h"
8 #include <vector>
9 
10 using namespace EM::Strojcek::VstupneUdaje;
11 
12 namespace EM
13 {
14  namespace Strojcek
15  {
16  namespace VstupneUdaje
17  {
18  namespace CestovnePoriadky
19  {
20  class EZona;
21  }
22 
23  class ERootDataIO;
24  class EVypocetCeny;
25 
27  {
28  public:
29  static const long const_nadZonaRTK = 52;
31  {
32  Normalny = 0,
33  Turista = 1,
34  CestovatelRTK = 2,
35  CestovatelNieRTK = 3
36  };
37 
39  {
40  bezChyby = 0,
41  chybaTarifaNeexistuje = 1,
42  chybaCennikNeexistuje = 2,
43  chybaTarifnePasmoNeexistuje = 3,
44  chybaTarifnaSkupinaNeexisuje = 4,
45  chybaCenovaSkupinaNeexistuje = 5,
46  chybaZonaNeexistuje = 6,
47  chybaTarifnaSkupinaTarifaNeexistuje = 7,
48  chybaTrojuholnikNeexistuje = 8,
49  chybaTrojuholnikyNeexistuju = 9,
50  chybaCenaNeexistuje = 10,
51  chybaCisloTarifnejSkupinyNeexistuje = 11,
52  chybaChybneVstupneParametre = 12,
53  chybaTarifaSkupinaNeexistuje = 13,
54  chybaZonyViaIsEmpty = 14,
55  chybaZastavkaNeexistuje = 15,
56  chybaIna = 100
57 
58  //chybaTypKarty_TypZlavyNeexistuje
59  //chybaTarifaPodlaZlavyNeexistuje
60  //chybaNastZastJeZaVystZast
61  //chybaTarPasmoVzdialenostNeexistuje
62  //chybaTarPasmoKmManualNeexistuje
63  //chybaLinkaNemaNastZast
64  //chybaLinkaNemaVystZast
65  //chybaLinkaNeexistuje
66  };
67 
68  struct _PARAMETERS_FOR_COMPUTE_PRICE_DE
69  {
70  long zona1;
71  long zona2;
72  short cisloTarify;
73  std::vector<long> zonaVia;
74  unsigned char cisloTrasy;
75  unsigned char paymentType;
76  unsigned char PracDen;
77  unsigned char SoNe;
78  unsigned char nocna;
79  unsigned char spicka;
80  unsigned char den;
81  unsigned long zastavkaIDNastup;
82  unsigned long zastavkaIDVystup;
83  short zonaNastup;
84  short zonaVystup;
85  unsigned char cisloTarifnejSkupiny;
86  };
87 
88  public:
89  EPriceComputerDE(ERootDataIO *owner, EVypocetCeny *vypocetCeny);
90  virtual ~EPriceComputerDE();
91 
92  enumPriceComputerErrors ComputePriceForAll(_PARAMETERS_FOR_COMPUTE_PRICE_DE *parameters);
93 
94  private:
95  enumPriceComputerErrors ComputePriceForAll( long zona1, long zona2, short cisloTarify, std::vector<long> zonaVia, unsigned char cisloTrasy,
96  unsigned char paymentType, unsigned char PracDen, unsigned char SoNe,
97  unsigned char nocna, unsigned char spicka, unsigned char den,unsigned long zastavkaNastup, unsigned long zastavkaVystup);
98 
99  public:
100  enumPriceComputerErrors IsCorrectZone(long zoneFrom, long zoneTo, long entryZone, bool &isCorrectZone, unsigned short cisloTarify);
101  enumPriceComputerErrors GetIntervalBetweenZone(long zona1, long zona2, short &getIntervalBetweenZone,unsigned short cisloTarify);
102 
103  enumPriceComputerErrors GetZoznamPlatnychZonPreNormalnehoCes(long zoneFrom, long zoneTo,
104  OUT std::vector<EZona*> &outPlatneZony, unsigned short cisloTarify);
105  enumPriceComputerErrors GetZoznamPlatnychZonTuristu(long zoneFrom, long zoneTo,
106  OUT std::vector<EZona*> &outPlatneZony, std::vector<long> zonyVia, unsigned short cisloTarify);
107  enumPriceComputerErrors GetZoznamPlatnychZonNieRTK(long zoneFrom, long zoneTo,
108  OUT std::vector<EZona*> &outPlatneZony, std::vector<long> zonyVia, unsigned short cisloTarify);
109 
110 
111  //Zoznam platnych zon vracianych ako vector<unsigned short>//
112  enumPriceComputerErrors GetZoznamPlatnychZonPreNormalnehoCes(long zoneFrom, long zoneTo,
113  OUT std::vector<unsigned short> &outPlatneZony, unsigned short cisloTarify);
114  enumPriceComputerErrors GetZoznamPlatnychZonTuristu(long zoneFrom, long zoneTo,
115  OUT std::vector<unsigned short> &outPlatneZony, std::vector<long> zonyVia, unsigned short cisloTarify);
116  enumPriceComputerErrors GetZoznamPlatnychZonNieRTK(long zoneFrom, long zoneTo,
117  OUT std::vector<unsigned short> &outPlatneZony, std::vector<long> zonyVia, unsigned short cisloTarify);
118  enumPriceComputerErrors GetZoznamPlatnychZonRTK(long zoneFrom, long zoneTo,
119  OUT std::vector<unsigned short> &outPlatneZony, unsigned short cisloTarify, unsigned char trasaCislo);
120 
121  enumPriceComputerErrors GetValidZonesForAll(_PARAMETERS_FOR_COMPUTE_PRICE_DE *parameters,
122  OUT std::vector<unsigned short> &outValidZones, OUT bool &isNetworkWide);
123  //Zoznam platnych zon vracianych ako vector<unsigned short>//
124 
125 
127  //Tato metoda vypocitava cenu pre TURISTU aj pre NORMALNEHO cestujuceho(normalny cestujuci ma ZoneVia prazdne)
128  enumPriceComputerErrors ComputePriceForTurist(long zona1, long zona2, short cisloTarify, std::vector<long> zonaVia,
129  unsigned char paymentType, unsigned char PracDen, unsigned char SoNe,
130  unsigned char nocna, unsigned char spicka, unsigned char den,unsigned long zastavkaNastup, unsigned long zastavkaVystup);
131 
132 
133  enumPriceComputerErrors ComputePriceForRTK(long zona1,
134  long zona2, short cisloTarify, std::vector<long> zonaVia, unsigned char cisloTrasy,
135  unsigned char paymentType, unsigned char PracDen, unsigned char SoNe,
136  unsigned char nocna, unsigned char spicka, unsigned char den);
138  enumPriceComputerErrors ComputePriceForNotRTK(long zona1,
139  long zona2, short cisloTarify, std::vector<long> zonaVia,
140  unsigned char paymentType, unsigned char PracDen, unsigned char SoNe,
141  unsigned char nocna, unsigned char spicka, unsigned char den);
142 
143  private:
144  enumPriceComputerErrors ComputePriceForNotRTKoneStep(long zonaX,
145  long zonaY, short cisloTarifyX, //unsigned char cisloTrasyX,
146  unsigned char paymentType, unsigned char PracDen, unsigned char SoNe,
147  unsigned char nocna, unsigned char spicka, unsigned char den,
148  OUT long &cenaX);
149 
150  enumPriceComputerErrors ComputePriceForInterval(long interval, short cisloTarify, long zona,
151  unsigned char paymentType, unsigned char PracDen, unsigned char SoNe,
152  unsigned char nocna, unsigned char spicka, unsigned char den);
153 
154  enumPriceComputerErrors GetVsetkyZonySpolNadzony(long zone,
155  OUT std::vector<unsigned short> &outPlatneZony, unsigned short cisloTarify);
156 
157  class EPriceComputerDERr;
158  EPriceComputerDERr *mData;
159 
160  static std::vector<unsigned short> RozparsujRetazecNaShorty(char *retazec);
161 
162  static bool NexistujeShortVListe( std::vector<unsigned short> list, unsigned short cislo );
163 
164  public:
165  ERootDataIO* GetOwner();
166  long GetPrice() const;
167  };
168  }
169  }
170 }
171 
172 #endif
Definition: ERootDataIO.h:40
Definition: EVypocetCeny.h:69
Definition: ColReader.h:19
#define OUT
Definition: LibEDataIO.h:9
TypCestujuci
Definition: EPriceComputerDE.h:30
Definition: EPriceComputerDE.h:26
Class ECol : Objekt je predok pre vsetky nasledujuce kolekcie
Definition: ColReader.h:15
enumPriceComputerErrors
Definition: EPriceComputerDE.h:38
#define DATAIO_API
Definition: DataIODefines.h:10