1 #ifndef __AIRINV_CMD_INVENTORYMANAGER_HPP
2 #define __AIRINV_CMD_INVENTORYMANAGER_HPP
10 #include <stdair/stdair_basic_types.hpp>
11 #include <stdair/bom/RMEventTypes.hpp>
12 #include <stdair/bom/BomIDTypes.hpp>
14 #include <sevmgr/SEVMGR_Types.hpp>
24 struct TravelSolutionStruct;
30 typedef std::map<
const stdair::Date_T,
32 typedef std::map<
const std::string,
42 static void initSnapshotEvents (SEVMGR::SEVMGR_ServicePtr_T,
43 const stdair::Date_T&,
44 const stdair::Date_T&);
47 static void initRMEvents (
const stdair::Inventory&, stdair::RMEventList_T&,
48 const stdair::Date_T&,
const stdair::Date_T&);
51 static void addRMEventsToEventQueue (SEVMGR::SEVMGR_ServicePtr_T,
52 stdair::RMEventList_T&);
55 static void calculateAvailability (
const stdair::BomRoot&,
56 stdair::TravelSolutionStruct&);
59 static void calculateAvailabilityByAU (stdair::TravelSolutionStruct&);
62 static void calculateAvailabilityByRAE (stdair::TravelSolutionStruct&);
68 static void calculateAvailabilityByIBP (stdair::TravelSolutionStruct&);
76 static void calculateAvailabilityByProtectiveIBP (stdair::TravelSolutionStruct&);
79 static bool sell (stdair::Inventory&,
const std::string& iSegmentDateKey,
80 const stdair::ClassCode_T&,
const stdair::PartySize_T&);
83 static bool sell (
const stdair::BookingClassID_T&,
84 const stdair::PartySize_T&);
87 static bool cancel (stdair::Inventory&,
const std::string& iSegmentDateKey,
88 const stdair::ClassCode_T&,
const stdair::PartySize_T&);
91 static bool cancel (
const stdair::BookingClassID_T&,
92 const stdair::PartySize_T&);
95 static void takeSnapshots (
const stdair::Inventory&,
96 const stdair::DateTime_T&);
99 static void updateBookingControls (stdair::FlightDate&);
102 static void recalculateAvailability (stdair::FlightDate&);
111 stdair::Inventory&, stdair::FlightDate&);
120 stdair::Inventory&, stdair::FlightDate&);
128 const stdair::TableID_T&,
147 ~InventoryManager() {}
151 #endif // __AIRINV_CMD_INVENTORYMANAGER_HPP