1.00.26
C++ Standard Airline IT Object Library
Toggle main menu visibility
Loading...
Searching...
No Matches
FareFeatures.cpp
Go to the documentation of this file.
1
// //////////////////////////////////////////////////////////////////////
2
// Import section
3
// //////////////////////////////////////////////////////////////////////
4
// STL
5
#include <cassert>
6
#include <sstream>
7
// StdAir
8
#include <
stdair/basic/BasConst_DefaultObject.hpp
>
9
#include <
stdair/basic/BasConst_Request.hpp
>
10
#include <
stdair/service/Logger.hpp
>
11
#include <
stdair/bom/FareFeatures.hpp
>
12
13
namespace
stdair
{
14
15
// ////////////////////////////////////////////////////////////////////
16
FareFeatures::FareFeatures
()
17
: _key (
TRIP_TYPE_ONE_WAY
,
18
NO_ADVANCE_PURCHASE
,
19
SATURDAY_STAY
,
20
CHANGE_FEES
,
21
NON_REFUNDABLE
,
22
NO_STAY_DURATION
),
23
_parent (NULL) {
24
// That constructor is used by the serialisation process
25
}
26
27
// ////////////////////////////////////////////////////////////////////
28
FareFeatures::FareFeatures (
const
FareFeatures& iFeatures)
29
: _key (iFeatures.getKey()), _parent (NULL) {
30
}
31
32
// ////////////////////////////////////////////////////////////////////
33
FareFeatures::FareFeatures
(
const
Key_T
& iKey)
34
:
_key
(iKey),
_parent
(NULL) {
35
}
36
37
// ////////////////////////////////////////////////////////////////////
38
FareFeatures::~FareFeatures
() {
39
}
40
41
// ////////////////////////////////////////////////////////////////////
42
std::string
FareFeatures::toString
()
const
{
43
std::ostringstream oStr;
44
oStr <<
describeKey
();
45
return
oStr.str();
46
}
47
48
// ////////////////////////////////////////////////////////////////////
49
bool
FareFeatures::
50
isTripTypeValid
(
const
TripType_T
& iBookingRequestTripType)
const
{
51
bool
oIsTripTypeValidFlag =
true
;
52
53
const
TripType_T
& lFareTripType =
getTripType
();
54
// Check whether the fare trip type is the same as the booking request
55
// trip type
56
if
(iBookingRequestTripType == lFareTripType) {
57
// One way case
58
return
oIsTripTypeValidFlag;
59
}
60
61
if
(iBookingRequestTripType ==
TRIP_TYPE_INBOUND
62
|| iBookingRequestTripType ==
TRIP_TYPE_OUTBOUND
) {
63
// Round trip case
64
if
(lFareTripType ==
TRIP_TYPE_ROUND_TRIP
) {
65
return
oIsTripTypeValidFlag;
66
}
67
}
68
69
oIsTripTypeValidFlag =
false
;
70
return
oIsTripTypeValidFlag;
71
}
72
73
// ////////////////////////////////////////////////////////////////////
74
bool
FareFeatures::
75
isStayDurationValid
(
const
DayDuration_T
& iStayDuration)
const
{
76
77
// Check if the stay duration is lower or equal to the minimum one.
78
const
DayDuration_T
& lMinimumDayDuration =
getMinimumStay
();
79
if
(lMinimumDayDuration > iStayDuration) {
80
return
false
;
81
}
82
83
return
true
;
84
}
85
86
// ////////////////////////////////////////////////////////////////////
87
bool
FareFeatures::
88
isAdvancePurchaseValid
(
const
DateTime_T
& iBookingRequestDateTime,
89
const
DateTime_T
& iFlightDateTime)
const
{
90
bool
oIsAdvancePurchaseValidFlag =
true
;
91
92
// Check whether the departure date is within the date range.
93
const
DayDuration_T
& lAdvancedPurchase =
getAdvancePurchase
();
94
const
DateOffset_T
lMinimumAdvancedPurchase (lAdvancedPurchase);
95
const
DateTime_T
lCriticalDate = iFlightDateTime - lMinimumAdvancedPurchase;
96
97
if
(lCriticalDate < iBookingRequestDateTime) {
98
oIsAdvancePurchaseValidFlag =
false
;
99
return
oIsAdvancePurchaseValidFlag;
100
}
101
102
return
true
;
103
}
104
105
}
106
BasConst_DefaultObject.hpp
BasConst_Request.hpp
FareFeatures.hpp
Logger.hpp
stdair
Handle on the StdAir library context.
Definition
BasChronometer.cpp:9
stdair::CHANGE_FEES
const ChangeFees_T CHANGE_FEES
stdair::DateTime_T
boost::posix_time::ptime DateTime_T
Definition
stdair_date_time_types.hpp:26
stdair::SATURDAY_STAY
const SaturdayStay_T SATURDAY_STAY
stdair::DateOffset_T
boost::gregorian::date_duration DateOffset_T
Definition
stdair_date_time_types.hpp:35
stdair::TripType_T
std::string TripType_T
Definition
stdair_basic_types.hpp:64
stdair::TRIP_TYPE_INBOUND
const TripType_T TRIP_TYPE_INBOUND
stdair::TRIP_TYPE_ROUND_TRIP
const TripType_T TRIP_TYPE_ROUND_TRIP
stdair::NON_REFUNDABLE
const NonRefundable_T NON_REFUNDABLE
stdair::NO_STAY_DURATION
const DayDuration_T NO_STAY_DURATION
stdair::TRIP_TYPE_OUTBOUND
const TripType_T TRIP_TYPE_OUTBOUND
stdair::TRIP_TYPE_ONE_WAY
const TripType_T TRIP_TYPE_ONE_WAY
stdair::NO_ADVANCE_PURCHASE
const DayDuration_T NO_ADVANCE_PURCHASE
stdair::DayDuration_T
int DayDuration_T
Definition
stdair_date_time_types.hpp:38
stdair::FareFeatures::~FareFeatures
virtual ~FareFeatures()
Definition
FareFeatures.cpp:38
stdair::FareFeatures::toString
std::string toString() const
Definition
FareFeatures.cpp:42
stdair::FareFeatures::_key
Key_T _key
Definition
FareFeatures.hpp:176
stdair::FareFeatures::isTripTypeValid
bool isTripTypeValid(const TripType_T &) const
Definition
FareFeatures.cpp:50
stdair::FareFeatures::describeKey
const std::string describeKey() const
Definition
FareFeatures.hpp:57
stdair::FareFeatures::Key_T
FareFeaturesKey Key_T
Definition
FareFeatures.hpp:28
stdair::FareFeatures::isStayDurationValid
bool isStayDurationValid(const DayDuration_T &) const
Definition
FareFeatures.cpp:75
stdair::FareFeatures::isAdvancePurchaseValid
bool isAdvancePurchaseValid(const DateTime_T &iBookingRequestDateTime, const DateTime_T &iFlightDateTime) const
Definition
FareFeatures.cpp:88
stdair::FareFeatures::getTripType
const TripType_T & getTripType() const
Definition
FareFeatures.hpp:88
stdair::FareFeatures::getMinimumStay
const DayDuration_T & getMinimumStay() const
Definition
FareFeatures.hpp:123
stdair::FareFeatures::getAdvancePurchase
const DayDuration_T & getAdvancePurchase() const
Definition
FareFeatures.hpp:95
stdair::FareFeatures::_parent
BomAbstract * _parent
Definition
FareFeatures.hpp:181
stdair::FareFeatures::FareFeatures
FareFeatures(const Key_T &)
Definition
FareFeatures.cpp:33
Generated for StdAir by
1.17.0