AppCore
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ETicketIssueLogic.h
Go to the documentation of this file.
1 #ifndef E_TICKET_ISSUE_LOGIC_H
2 #define E_TICKET_ISSUE_LOGIC_H
3 
4 #include <vector>
5 #include <list>
6 
7 #include "appcore/ticketissuelogic/ETicketIssueLogicInterface.h"
8 
9 #define E_TICKET_ISSUE_LOGIC "ETicketIssueLogic"
10 
11 class EHead;
12 class QString;
13 class QStringList;
14 
15 namespace EM
16 {
17  namespace Strojcek
18  {
19  namespace VstupneUdaje
20  {
21  namespace CestovnePoriadky
22  {
23  class ELinka;
24  class ESpoj;
25  }
26 
27  namespace TarifnySystem
28  {
29  class ETarifa;
30  class ETarifnaSkupina;
31  }
32 
33  class EPrestupSpoj;
34  }
35  }
36  namespace PT
37  {
38  class EDataCollection;
39  }
40 
41  namespace TicketIssueLogic
42  {
43  class ETicketIssueLogicDataStorage;
44  class EIssueLogicStatistic;
45  class EIssueLogicCommonFuncionality;
46  class EIssueLogicPrint;
47  class ETicketIssueModule;
48  class EFellowTraveller;
49  class ETicketIssueLogicOutputData;
50 #if defined(I386) || defined(X86_64)
51  class TicketIssueLogicTestWrapper;
52  class EGeneralTicketIssueLogicTestWrapper;
53 #endif
54  class DLL_API ETicketIssueLogic : public ETicketIssueLogicInterface
55  {
56 #if defined(I386) || defined(X86_64)
57  friend class TicketIssueLogicTestWrapper;
58  friend class EGeneralTicketIssueLogicTestWrapper;
59 #endif
60 
62  class DataClass;
64 
66  public:
67  ETicketIssueLogic();
68  virtual ~ETicketIssueLogic();
69 
70  virtual std::string GetName( );
71 
72  virtual EIssueLogicDefines::ReturnValues IssueTicket( EM::PT::EDataCollection *&writeRequest );
73  virtual EIssueLogicDefines::ReturnValues AddCardWriteAnswerData();
74  virtual EIssueLogicDefines::ReturnValues Print( const bool asynchronousPrinting = false );
75  virtual EIssueLogicDefines::ReturnValues PrintLastTicketCopy( const bool asynchronousPrinting = false );
76  virtual EIssueLogicDefines::ReturnValues WriteStatistic( bool unfinishedOperation = false );
78  virtual EIssueLogicDefines::ReturnValues CalculatePrice( long &calculatedPrice, double &calculatedPriceDecimalFormat );
79  virtual EIssueLogicDefines::ReturnValues TryToRoundCashPrice( long &priceToRound );
80 
85  EIssueLogicDefines::ReturnValues PerformBasicCardChecks();
86  EIssueLogicDefines::ReturnValues CheckBusStopCountryCardPaymentAllowance();
87  EIssueLogicDefines::ReturnValues CheckCardMediumForDestinationSubZoneUsage();
88 
89  bool ReInit( const Strojcek::VstupneUdaje::CestovnePoriadky::ELinka *actualLine, const Strojcek::VstupneUdaje::CestovnePoriadky::ESpoj *actualTrip );
90 
91  bool SetOperationType( EIssueLogicDefines::OperationType operationType );
92  bool SetPaymentType( EIssueLogicDefines::PaymentType paymentType );
93  bool SetIssueType( EIssueLogicDefines::IssueType issueType );
94  bool SetTariff( const Strojcek::VstupneUdaje::TarifnySystem::ETarifa *tariff );
95  bool SetTariffGroup( const Strojcek::VstupneUdaje::TarifnySystem::ETarifnaSkupina *tariffGroup );
96  bool SetTripOrderCheckinBusStop( long tripCheckinBusStopOrder );
97  bool SetTripOrderCheckoutBusStop( long tripCheckoutBusStopOrder );
98  bool SetTripOrderOfBusStopForCheckOut( long tripOrderOfBusStopForCheckOut );
99  bool SetCreditRecharge( unsigned long creditRecharge );
100  bool SetTicketCount( short ticketCount );
101  bool SetCancelationStatisticTicketNumber( const long cancelationStatisticTicketNumber );
102  bool SetDeviceSerialNumber( unsigned long serialNumber );
103  bool SetDeviceOrderNumber( unsigned long orderNumber );
104  bool SetAdvertisementEnabled( bool enableAdvertisement );
105  void SetCrossTransfer( const Strojcek::VstupneUdaje::EPrestupSpoj &crossTransfer );
106  bool SetMultipleTickets( const EHead *multipleTicketsCol );
107  bool SetCheckInZone( long checkInZone );
108  bool SetCheckOutZone( long checkOutZone );
109  bool SetZoneList( const std::list<unsigned long> &zoneList );
110  bool SetAdditionalZones( const std::list<unsigned long> &additionalZones );
111  bool SetCheckOutZoneBusStopID( unsigned long checkOutZoneBusStopID );
112  bool SetCheckInZoneBusStopID( unsigned long checkInZoneBusStopID );
113  bool SetDestinationZoneNumber( unsigned long zoneNumber );
114  bool SetDestinationSubZoneNumber( unsigned short subZoneNumber );
115  bool SetPassNumber( unsigned long passNumber );
116  bool SetPriceListRow( unsigned short priceListRow );
117  bool SetFlagShowConfirmationMessageOnPortableEP( bool showConfirmationMessage );
118  bool SetFlagAllowIssueOnPortableEP( bool allowIssueOnPortableCard );
119  bool SetFlagTransferForAllTicketsOnCard( EIssueLogicDefines::TransferForAllTicketsOnCard transferForAllTicketsOnCard );
120  bool SetFlagProlongTicketsTimeValidity( EIssueLogicDefines::ProlongTicketsTimeValidity prolongTicketTimeValidity );
121  bool SetFlagRepeatedCheckIn( bool repeatedCheckIn );
122  bool SetFlagExplicitlySelectedTariff( bool explicitlySelectedTariff );
123  bool SetCardWriteOperations( unsigned long cardWriteOperations );
124  bool SetTimeTicketCounter( unsigned char timeTicketCounter );
125  bool SetOneWayTicketCardPositioning( EIssueLogicDefines::OneWayTicketCardPositioning positioning );
126  bool GetOutputDataCollection( std::vector<const ETicketIssueLogicOutputData *> *&ticketIssueOutputData );
127  bool SetAlternativeTripData( unsigned long lineNumber, unsigned long tripNumber, long protectNumber, long lastBusStopTripOrder );
128  bool SetServiceCounter( unsigned char serviceCounter );
129  bool SetPaperTicketID( long long paperTicketID );
130  bool SetUnpaidExpenseData( long receivedCashPayment, long ticketsPrice );
131  bool SetFlagForceNewOneWayTicket( bool forceNewOneWayTicket );
132  bool SetFlagUseValidTimeTicketsInPriceCalculation( bool flagUseValidTimeTicketsInPriceCalculation );
133  bool SetFlagUsePriceListRowWithLongestTimeValidity( bool usePriceListRowWithLongestTimeValidity );
134  bool SetFlagUsePriceListRowFromFirstSegmentOnEverySegment( bool usePriceListRowFromFirstSegmentOnEverySegment );
135  bool SetRegionalCodeForPriceCalculation( unsigned long regionalDiscountCodeForPriceCalculation );
136  bool SetFlagUseUrbanZonesAsTravelledZones( bool flagUseUrbanZonesAsTravelledZones );
137  bool SetFlagDontCheckTimeValidityWhileCalculationLastValidBusStop( bool dontCheckTimeValidity );
138  bool SetEMVPaymentTransactionData( QString emvCardNumber, QString emvCardBranch, QString emvApprovalCode, QString emvSerialNumber, QString emvTerminalId, QString emvInvoiceNumber );
139  bool SetFlagIgnoreAcceptanceTimeTickets( bool ignoreTimeTicketsInManualIssue );
140  bool SetFlagPrintInterchangeTicket( bool flagPrintInterchangeTicket );
141  bool SetFlagIgnoreAcceptanceOfOneWayTicketsWithTimeValidity( bool ignoreAcceptanceOfOneWayTicketsWithTimeValidity );
142 
148  EIssueLogicDefines::ReturnValues CheckCardValidity( const unsigned long &dateToCheckValidity ) const;
149 
150  QStringList GetTicketIssueInfoLog() const;
151 
152  protected:
153  virtual EIssueLogicDefines::ReturnValues IssueTicketCash();
154  virtual EIssueLogicDefines::ReturnValues IssueTicketChipCard( EM::PT::EDataCollection *&writeRequest );
155  virtual EIssueLogicDefines::ReturnValues IssueTicketMarker();
156  virtual EIssueLogicDefines::ReturnValues CancelTicket();
157  virtual EIssueLogicDefines::ReturnValues InitModules();
158  virtual EIssueLogicDefines::ReturnValues LoadModules();
159 
160  ETicketIssueLogicDataStorage *GetDataStorage();
161  };
162  }
163 
164 }
165 
166 #endif // E_TICKET_ISSUE_LOGIC_H
OneWayTicketCardPositioning
Definition: ETicketIssueLogicDefines.h:292
TransferForAllTicketsOnCard
Definition: ETicketIssueLogicDefines.h:278
EEventTripTicketPr __EDATAPTR d
Definition: EEventTripTicket.h:96
ProlongTicketsTimeValidity
Definition: ETicketIssueLogicDefines.h:285
IssueType
Definition: ETicketIssueLogicDefines.h:255
PaymentType
Definition: ETicketIssueLogicDefines.h:160
ReturnValues
Definition: ETicketIssueLogicDefines.h:49
__ECLASS DataClass
Definition: EEventUpdateCustomerData.h:35
OperationType
Definition: ETicketIssueLogicDefines.h:180
#define DLL_API
Definition: ECardFacadeDefines.h:8
SYSTEM INCLUDES.
Definition: CardFacadeManagerXML.h:6
void Init(__ESTRING path)