Go to the documentation of this file.00001
00002
00003
00004
00005 #include <cassert>
00006
00007 #include <stdair/basic/BasConst_Inventory.hpp>
00008 #include <stdair/bom/BomManager.hpp>
00009 #include <stdair/bom/FlightDate.hpp>
00010 #include <stdair/bom/SegmentDate.hpp>
00011 #include <stdair/bom/SegmentCabin.hpp>
00012 #include <stdair/bom/LegCabin.hpp>
00013
00014 #include <airinv/bom/FlightDateHelper.hpp>
00015 #include <airinv/bom/SegmentDateHelper.hpp>
00016 #include <airinv/bom/SegmentCabinHelper.hpp>
00017
00018 namespace AIRINV {
00019
00020
00021 void FlightDateHelper::
00022 updateBookingControls (stdair::FlightDate& ioFlightDate) {
00023
00024
00025 const stdair::SegmentDateList_T& lSDList =
00026 stdair::BomManager::getList<stdair::SegmentDate> (ioFlightDate);
00027 for (stdair::SegmentDateList_T::const_iterator itSD = lSDList.begin();
00028 itSD != lSDList.end(); ++itSD) {
00029 const stdair::SegmentDate* lSD_ptr = *itSD;
00030 assert (lSD_ptr != NULL);
00031
00032
00033 const stdair::SegmentCabinList_T& lSCList =
00034 stdair::BomManager::getList<stdair::SegmentCabin> (*lSD_ptr);
00035 for (stdair::SegmentCabinList_T::const_iterator itSC = lSCList.begin();
00036 itSC != lSCList.end(); ++itSC) {
00037 stdair::SegmentCabin* lSC_ptr = *itSC;
00038 assert (lSC_ptr != NULL);
00039
00040
00041 SegmentCabinHelper::buildPseudoBidPriceVector (*lSC_ptr);
00042
00043
00044 SegmentCabinHelper::
00045 updateBookingControlsUsingPseudoBidPriceVector (*lSC_ptr);
00046 }
00047 }
00048 }
00049
00050
00051 void FlightDateHelper::fillFromRouting(const stdair::FlightDate& iFlightDate){
00052 const stdair::SegmentDateList_T& lSegmentDateList =
00053 stdair::BomManager::getList<stdair::SegmentDate> (iFlightDate);
00054
00055
00056 for (stdair::SegmentDateList_T::const_iterator itSegmentDate =
00057 lSegmentDateList.begin();
00058 itSegmentDate != lSegmentDateList.end(); ++itSegmentDate) {
00059 stdair::SegmentDate* lCurrentSegmentDate_ptr = *itSegmentDate;
00060 assert (lCurrentSegmentDate_ptr != NULL);
00061 SegmentDateHelper::fillFromRouting (*lCurrentSegmentDate_ptr);
00062 }
00063 }
00064
00065
00066 void FlightDateHelper::
00067 updateAvailablityPool (const stdair::FlightDate& iFlightDate,
00068 const stdair::CabinCode_T& iCabinCode){
00069 const stdair::SegmentDateList_T& lSegmentDateList =
00070 stdair::BomManager::getList<stdair::SegmentDate> (iFlightDate);
00071 for (stdair::SegmentDateList_T::const_iterator itSegmentDate =
00072 lSegmentDateList.begin(); itSegmentDate != lSegmentDateList.end();
00073 ++itSegmentDate) {
00074 const stdair::SegmentDate* lSegmentDate_ptr = *itSegmentDate;
00075 assert (lSegmentDate_ptr != NULL);
00076 stdair::SegmentCabin& lSegmentCabin =
00077 stdair::BomManager::getObject<stdair::SegmentCabin> (*lSegmentDate_ptr,
00078 iCabinCode);
00079
00080
00081
00082 const stdair::LegCabinList_T& lLegCabinList =
00083 stdair::BomManager::getList<stdair::LegCabin> (lSegmentCabin);
00084 stdair::Availability_T lAvailabilityPool = stdair::MAXIMAL_AVAILABILITY;
00085 for (stdair::LegCabinList_T::const_iterator itLegCabin =
00086 lLegCabinList.begin();
00087 itLegCabin != lLegCabinList.end(); ++itLegCabin) {
00088 const stdair::LegCabin* lLegCabin_ptr = *itLegCabin;
00089 assert (lLegCabin_ptr != NULL);
00090 const stdair::Availability_T& lLegCabinAvailabilityPool =
00091 lLegCabin_ptr->getAvailabilityPool();
00092 if (lAvailabilityPool > lLegCabinAvailabilityPool) {
00093 lAvailabilityPool = lLegCabinAvailabilityPool;
00094 }
00095 }
00096 lSegmentCabin.setAvailabilityPool (lAvailabilityPool);
00097 }
00098 }
00099
00100 }