DataIO
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
edata.h
Go to the documentation of this file.
1 #ifndef EDATA_H
2 #define EDATA_H
3 
4 #include <string>
5 #include <vector>
6 #include <stdint.h>
7 
8 #include "core/common/eplatform.h"
9 #include "dataio/datainputlogic/ecp.h"
10 #include "dataio/datainput/EVlastnostTarifyHodnota.h"
11 #include "dataio/datainput/ECennik.h"
12 #include "dataio/datainput/ESetNastavenia.h"
13 #include "dataio/datainput/ENastavenieHodnota.h"
14 #include "dataio/datainput/ESetDataInfo.h"
15 #include "core/common/EDate.h"
16 
17 class EAuthorizeData;
18 class ECp;
19 class EMoneyData;
20 
21 namespace EM
22 {
23  namespace Strojcek
24  {
25  namespace VstupneUdaje
26  {
27  namespace CestovnePoriadky
28  {
29  class EZastavkaVypis;
30  }
31 
32  namespace TarifnySystem
33  {
34  class ETarifa;
35  class ETarifnaSkupinaTarifa;
36  class EMena;
37  class ETarifnePasmo;
38  class ETarifa;
39  class ECasPrestupu;
40  class EOdchylky;
41  }
42  }
43  }
44 }
45 
46 // currency coeficient in statistics is always dividing (not multiplying) when converting into real decimal price
47 #define CURRENCY_COEFICIENT_IN_STATISTICS 100
48 
50 {
51 public:
53 
55  EM::Common::EDate mPriceListValidity;
60  unsigned short mTariffTicketNumber;
62  unsigned short mTripNumber;
64 };
65 
67 {
68 public:
70  {
71  DeviceUndefined = -1,
73  DeviceSlave
74  };
75 
76  EData();
77  ~EData();
78 
79  long init( char *pathCp );
80  long init( char *pathCp, DeviceType deviceType );
81  static EData *GetInstance();
82  ECp *GetECp();
83  DeviceType GetDeviceType();
84  EAuthorizeData *GetEAuthorizeData();
85 
87  unsigned char GetDomacaMenaID();
88  float GetDomacaMenaKoef();
89  long ConvertMoney( long haliere );//konvertuje haliere s TS na jednotky meny
90 
91  std::string GetCardStandardTypeName( unsigned char cardStandard, unsigned char cardTypeNumber, unsigned char subCardTypeNumber, unsigned short factoryNumber );// return string in UTF-8
93 
94  long GetCisloTarifyByTypZlavy( unsigned short &cisloTarify, unsigned char discountType, unsigned char typListkaID = 1 );
95  long GetCisloTarifyByTypZlavy( unsigned short &tariffNumber, unsigned char tariffGroupNumber, unsigned char discountType, unsigned char ticketTemplateID );
96  bool IsTariffOnTariffGroup( unsigned char tariffTicketNumber );
97  long CheckTariffDayOfWeekValidity( EM::Strojcek::VstupneUdaje::TarifnySystem::ETarifa *tariff );
98  long TarifyLoad( unsigned char tarifSkup );
99  void SetProtectNumber( unsigned short protectNumber );
100  unsigned short GetProtectNumber();
101  void SetMachineID( const int64_t id );
102  std::string GetMachineID();
103 
104  bool IsHolidayToday( unsigned long localTime );
105 
106  long GetEncodingSetting();
107  bool IsCheckinCheckoutSystem();
108 
115  EM::Strojcek::VstupneUdaje::TarifnySystem::ETarifa *GetTariffByTariffNumberAndTariffGroup( unsigned short tariffNumber, unsigned char tariffGroup );
116 
123  EM::Strojcek::VstupneUdaje::TarifnySystem::ETarifa *GetTariffByTariffNumberFromActualTariffGroup( unsigned short tariffNumber );
124 
131  EM::Strojcek::VstupneUdaje::TarifnySystem::ETarifa *GetTariffByTariffTicketNumber( unsigned short tariffTicketNumber );
132 
139 
151  long GetDiscountTypeByCardType( char cardType, unsigned short &discountType, unsigned char ticketTemplateID, int homeCompany);
152 
164  long GetDiscountTypeByCardType( char cardType, unsigned short &discountType, bool timeTicket, int homeCompany);
165 
169  long GetCisloTarifyByTypKarty( char cardType, unsigned short &tariffNumber, unsigned char ticketTemplateID = 1 );
170 
174  long GetCisloTarifyByTypKarty( char cardType, unsigned short &tariffNumber, unsigned char ticketTemplateID, bool homeCompany );
175 
189  long GetCisloTarifyByTypKarty( char cardType, unsigned short &tariffNumber, unsigned char ticketTemplateID, bool isHomeCompany, long corporateNumber );
190 
205  long GetCisloTarifyByTypKarty(unsigned char cardTypeID, long corporateNumber, unsigned char tariffGroup, bool timeTicket, bool isHomeCompany, unsigned short &tariffNumber );
206 
215  long GetTariffNumberByDiscountType(unsigned char discountTypeID, unsigned char tariffGroupID, bool timeTicket, unsigned short &tariffNumber);
216 
225  long GetTariffByDiscountType( unsigned char discountTypeID, unsigned char tariffGroupID, bool timeTicket, EM::Strojcek::VstupneUdaje::TarifnySystem::ETarifa *&tariff );
226 
239  long CalculateVATValue( long price, long vat, double &vatValue, bool priceFromStatistics = false, unsigned char currencyID = 0 );
240 
251  long CalculateVATByBusStopsAndTariff( long boardingBusStopLineOrder, long landingBusStopLineOrder, EM::Strojcek::VstupneUdaje::TarifnySystem::ETarifa *tariff, long &calculatedVAT );
252 
260  EM::Strojcek::VstupneUdaje::TarifnySystem::ETarifa *GetTariffByCpTp( unsigned short cardCustomerProfile, unsigned short cardTariffProfile, unsigned short ids );
261 
269  EM::Strojcek::VstupneUdaje::TarifnySystem::ETarifa *GetTariffByCpTp( unsigned short cardCustomerProfile, unsigned short cardTariffProfile, unsigned long networkID );
270 
272  void IgnoreCheckinCheckoutSystem();
273 
282  EM::Strojcek::VstupneUdaje::TarifnySystem::ETarifa* GetTariffByTariffNumberNIDAndUTN( const unsigned short tariffTicketNumber, const unsigned long networkID, const unsigned short urbanTransportNumber );
283 
298  long FindTariffGroupByTariff( EM::Strojcek::VstupneUdaje::TarifnySystem::ETarifa *tariff, EM::Strojcek::VstupneUdaje::TarifnySystem::ETarifnaSkupina *&tariffGroup, bool searchOnSubstituteTarifGroupsToo );
299 
309  std::string GetRouteName( unsigned long checkinZone, unsigned long checkoutZone, short routeNumber, unsigned char tariffGroupNumber = 0 );
310 
316  long ConvertPriceToDataCoeficient( const EMoneyData &price );
317 
324  long ConvertPriceToCurrencyCoeficient( const EMoneyData &price, unsigned char currencyID );
325 
331  long ConvertPriceToCents( const EMoneyData &price );
332 
339  long ConvertPriceToCents( long ticketPrice, unsigned char currencyID );
340 
344  long ConvertPriceInDataCoeficientToCents( long priceInDataCoeficient );
345 
352  void FillMoneyData( EMoneyData &moneyData, const long amount);
353 
354 
355  long GetTariffGroupOnBusStop( long busStopIndex, long checkInBusStopIndex, unsigned char &tariffGroup );
356  long GetTariffGroupOnBusStopDefinedByLineOrder( const long busStopLineOrder, const long checkInBusStopLineOrder, unsigned char &tariffGroup );
357 
365  long GetTariffGroupOnSection( unsigned char &tariffGroup, long firstBusStopIndex, long lastBusStopIndex );
366 
374  long GetTariffGroupOnSectionDefinedByLineOrder( unsigned char &tariffGroup, const long firstBusStopLineOrder, const long lastBusStopLineOrder);
375 
379  long GetTariffGroupOnSectionDefinedByLineOrder( EM::Strojcek::VstupneUdaje::TarifnySystem::ETarifnaSkupina *&tariffGroup, const long firstBusStopLineOrder, const long lastBusStopLineOrder);
380 
389  long CalculateTravelTime( EM::Strojcek::VstupneUdaje::CestovnePoriadky::ESpoj *trip, const unsigned long startBusStopLineOrder, const unsigned long endBusStopLineOrder, long &travelTime );
390 
401  long GetTimeValidity( EM::Strojcek::VstupneUdaje::TarifnySystem::ETarifnaSkupina *tariffGroup, EM::Strojcek::VstupneUdaje::TarifnySystem::ETarifa *tariff, bool isPaymentFromWallet, unsigned short priceListRowNumber, unsigned short &timeValidity);
402 
415  long CalculateTimeValidity( std::list<unsigned long> travelledZones, EM::Strojcek::VstupneUdaje::TarifnySystem::ETarifnaSkupina *tariffGroup, EM::Strojcek::VstupneUdaje::TarifnySystem::ETarifa *tariff, long travelTime, bool isPaymentFromWallet, bool usePriceListRowWithLongestTimeValidity, unsigned short &timeValidity);
416  long CalculateTimeValidity( std::list<unsigned long> travelledZones, EM::Strojcek::VstupneUdaje::TarifnySystem::ETarifnaSkupina *tariffGroup, EM::Strojcek::VstupneUdaje::TarifnySystem::ETarifa *tariff, long travelTime, bool isPaymentFromWallet, unsigned short &timeValidity);
417 
418  long CalculatePriceListRowAndTimeValidityByZonesAndTravelTime( std::list<unsigned long> travelledZones, EM::Strojcek::VstupneUdaje::TarifnySystem::ETarifnaSkupina *tariffGroup, EM::Strojcek::VstupneUdaje::TarifnySystem::ETarifa *tariff, long travelTime, bool isPaymentFromWallet, EM::Strojcek::VstupneUdaje::TarifnySystem::ETarifnePasmo *&priceListRow, unsigned short &timeValidity);
419  long CalculatePriceListRowAndTimeValidityByZonesAndTravelTime( std::list<unsigned long> travelledZones, EM::Strojcek::VstupneUdaje::TarifnySystem::ETarifnaSkupina *tariffGroup, EM::Strojcek::VstupneUdaje::TarifnySystem::ETarifa *tariff, long travelTime, bool isPaymentFromWallet, bool usePriceListRowWithLongestTimeValidity, EM::Strojcek::VstupneUdaje::TarifnySystem::ETarifnePasmo *&priceListRow, unsigned short &timeValidity);
420 
431  long GetTariffSystemSetting( EM::Strojcek::VstupneUdaje::TarifnySystem::ENastavenieHodnota::TypNastavenia settingNumber, long& value, const bool logNonexistingTariffSetting = true );
432 
441  long GetGlobalSetting( EM::Strojcek::VstupneUdaje::Nastavenia::ESetNastavenia::GlobalSettings settingNumber, long& value );
442 
448  long RoundVATValue( long &roundedVat, const double decimalVatInCents );
449 
451  char FindDeviatingPriceListRow( DataForCalculationDeviation &inputData );
452 
456  bool IsOneWayTicketWithTimeValidity( EM::Strojcek::VstupneUdaje::TarifnySystem::ETarifa *tariff );
457 
458 private:
459  class DataClass;
460  DataClass *d;
461 
462  long ParseHolidayCisloTarify( EM::Strojcek::VstupneUdaje::TarifnySystem::ETarifnaSkupinaTarifa *tarifnaSkupinaTarifa, unsigned short &cisloTarify, unsigned char typListkaID, unsigned char typZlavy );
463 };
464 
465 #endif
unsigned short mTariffTicketNumber
Definition: edata.h:60
Definition: edata.h:72
long mLandingBusStopId
Definition: edata.h:57
unsigned char mBoardingBusStopTarifNumber
Definition: edata.h:58
unsigned char mLandingBusStopTarifNumber
Definition: edata.h:59
Definition: edata.h:49
EM::Common::EDate mPriceListValidity
Definition: edata.h:55
short mTripGroupNumber
Definition: edata.h:63
Definition: eauthorizedata.h:8
long mBoardingBusStopId
Definition: edata.h:56
Definition: edata.h:66
long mPriceListId
Definition: edata.h:54
long mLineNumber
Definition: edata.h:61
Class ECol : Objekt je predok pre vsetky nasledujuce kolekcie
Definition: ColReader.h:15
DataForCalculationDeviation()
Definition: edata.cpp:51
DeviceType
Definition: edata.h:69
Definition: ecp.h:71
unsigned short mTripNumber
Definition: edata.h:62
#define DATAIO_API
Definition: DataIODefines.h:10