48 void CmdBomManager::buildSampleBom (BomRoot& ioBomRoot) {
52 <<
"specifications.");
57 buildSampleInventorySchedule (ioBomRoot);
60 buildSamplePricing (ioBomRoot);
65 buildPartnershipsSampleInventoryAndRM (ioBomRoot);
68 buildPartnershipsSamplePricing (ioBomRoot);
71 buildCompleteDummyInventory (ioBomRoot);
76 buildSampleInventoryScheduleForFareFamilies (ioBomRoot);
79 buildSamplePricingForFareFamilies (ioBomRoot);
82 buildCompleteDummyInventoryForFareFamilies (ioBomRoot);
86 void CmdBomManager::buildSampleInventorySchedule (BomRoot& ioBomRoot) {
92 const InventoryKey lBAKey (lAirlineCodeBA);
98 const AirlineFeatureKey lAirlineFeatureBAKey (lAirlineCodeBA);
99 AirlineFeature& lAirlineFeatureBA =
108 const InventoryKey lAFKey (lAirlineCodeAF);
114 const AirlineFeatureKey lAirlineFeatureAFKey (lAirlineCodeAF);
115 AirlineFeature& lAirlineFeatureAF =
126 Date_T lDate (2011, 6, 10);
127 FlightDateKey lFlightDateKey (lFlightNumber, lDate);
129 FlightDate& lBA9_20110610_FD =
147 SegmentDateKey lSegmentDateKey (lLHR, lSYD);
149 SegmentDate& lLHRSYDSegment =
155 const std::string lBALHRRoutingLegStr =
"BA;9;2011-Jun-10;LHR";
156 const std::string lBABKKRoutingLegStr =
"BA;9;2011-Jun-10;BKK";
157 lLHRSYDSegment.addLegKey (lBALHRRoutingLegStr);
158 lLHRSYDSegment.addLegKey (lBABKKRoutingLegStr);
161 lLHRSYDSegment.setBoardingDate (lDate);
162 lLHRSYDSegment.setOffDate (lDate + l2Days);
163 lLHRSYDSegment.setBoardingTime (l2135);
164 lLHRSYDSegment.setOffTime (l0610);
165 lLHRSYDSegment.setElapsedTime (l2135);
175 lSegmentDateKey = SegmentDateKey (lLHR, lBKK);
177 SegmentDate& lLHRBKKSegment =
183 lLHRBKKSegment.addLegKey (lBALHRRoutingLegStr);
186 lLHRBKKSegment.setBoardingDate (lDate);
187 lLHRBKKSegment.setOffDate (lDate + l1Day);
188 lLHRBKKSegment.setBoardingTime (l2135);
189 lLHRBKKSegment.setOffTime (l1540);
190 lLHRBKKSegment.setElapsedTime (l1105);
199 lSegmentDateKey = SegmentDateKey (lBKK, lSYD);
201 SegmentDate& lBKKSYDSegment =
207 lBKKSYDSegment.addLegKey (lBABKKRoutingLegStr);
210 lBKKSYDSegment.setBoardingDate (lDate + l1Day);
211 lBKKSYDSegment.setOffDate (lDate + l2Days);
212 lBKKSYDSegment.setBoardingTime (l1705);
213 lBKKSYDSegment.setOffTime (l1540);
214 lBKKSYDSegment.setElapsedTime (l0905);
221 LegDateKey lLegDateKey (lLHR);
228 lLHRLeg.setOffPoint (lBKK);
229 lLHRLeg.setBoardingDate (lDate);
230 lLHRLeg.setOffDate (lDate + l1Day);
231 lLHRLeg.setBoardingTime (l2135);
232 lLHRLeg.setOffTime (l1540);
233 lLHRLeg.setElapsedTime (l1105);
239 lLegDateKey = LegDateKey (lBKK);
249 lBKKLeg.setOffPoint (lSYD);
250 lBKKLeg.setBoardingDate (lDate + l1Day);
251 lBKKLeg.setOffDate (lDate + l2Days);
252 lBKKLeg.setBoardingTime (l1705);
253 lBKKLeg.setOffTime (l1540);
254 lBKKLeg.setElapsedTime (l0905);
259 SegmentCabinKey lYSegmentCabinKey (lY);
261 SegmentCabin& lLHRBKKSegmentYCabin =
270 SegmentCabin& lBKKSYDSegmentYCabin =
280 SegmentCabin& lLHRSYDSegmentYCabin =
290 LegCabinKey lYLegCabinKey (lY);
292 LegCabin& lLHRLegYCabin =
301 LegCabin& lBKKLegYCabin =
311 FareFamilyKey l1FareFamilyKey (l1);
313 FareFamily& lLHRBKKSegmentYCabin1Family =
316 lLHRBKKSegmentYCabin1Family);
318 lLHRBKKSegmentYCabin1Family);
325 FareFamily& lBKKSYDSegmentYCabin1Family =
328 lBKKSYDSegmentYCabin1Family);
330 lBKKSYDSegmentYCabin1Family);
337 FareFamily& lLHRSYDSegmentYCabin1Family =
340 lLHRSYDSegmentYCabin1Family);
342 lLHRSYDSegmentYCabin1Family);
353 BookingClassKey lQBookingClassKey (lQ);
355 BookingClass& lLHRBKKSegmentYCabin1FamilyQClass =
358 lLHRBKKSegmentYCabin1FamilyQClass);
360 lLHRBKKSegmentYCabin1FamilyQClass);
363 lLHRBKKSegmentYCabin1FamilyQClass);
365 lLHRBKKSegmentYCabin1FamilyQClass);
373 BookingClass& lBKKSYDSegmentYCabin1FamilyQClass =
376 lBKKSYDSegmentYCabin1FamilyQClass);
378 lBKKSYDSegmentYCabin1FamilyQClass);
381 lBKKSYDSegmentYCabin1FamilyQClass);
383 lBKKSYDSegmentYCabin1FamilyQClass);
391 BookingClass& lLHRSYDSegmentYCabin1FamilyQClass =
394 lLHRSYDSegmentYCabin1FamilyQClass);
396 lLHRSYDSegmentYCabin1FamilyQClass);
399 lLHRSYDSegmentYCabin1FamilyQClass);
401 lLHRSYDSegmentYCabin1FamilyQClass);
412 lDate =
Date_T (2011, 3, 20);
413 lFlightDateKey = FlightDateKey (lFlightNumber, lDate);
415 FlightDate& lAF084_20110320_FD =
430 lSegmentDateKey = SegmentDateKey (lCDG, lSFO);
432 SegmentDate& lCDGSFOSegment =
438 const std::string lAFCDGRoutingLegStr =
"AF;84;2011-Mar-20;CDG";
439 lCDGSFOSegment.addLegKey (lAFCDGRoutingLegStr);
445 lCDGSFOSegment.setBoardingDate (lDate);
446 lCDGSFOSegment.setOffDate (lDate);
447 lCDGSFOSegment.setBoardingTime (l1040);
448 lCDGSFOSegment.setOffTime (l1250);
449 lCDGSFOSegment.setElapsedTime (l1110);
453 lLegDateKey = LegDateKey (lCDG);
460 lCDGLeg.setOffPoint (lSFO);
461 lCDGLeg.setBoardingDate (lDate);
462 lCDGLeg.setOffDate (lDate);
463 lCDGLeg.setBoardingTime (l1040);
464 lCDGLeg.setOffTime (l1250);
465 lCDGLeg.setElapsedTime (l1110);
472 SegmentCabin& lCDGSFOSegmentYCabin =
482 LegCabin& lCDGLegYCabin =
492 FareFamily& lCDGSFOSegmentYCabin1Family =
495 lCDGSFOSegmentYCabin1Family);
497 lCDGSFOSegmentYCabin1Family);
506 BookingClass& lCDGSFOSegmentYCabin1FamilyQClass =
509 lCDGSFOSegmentYCabin1FamilyQClass);
511 lCDGSFOSegmentYCabin1FamilyQClass);
514 lCDGSFOSegmentYCabin1FamilyQClass);
516 lCDGSFOSegmentYCabin1FamilyQClass);
529 const DoWStruct lDoWSrtuct (
"1111111");
530 const Date_T lBA9DateRangeStart (2010, boost::gregorian::Jun, 6);
531 const Date_T lBA9DateRangeEnd (2010, boost::gregorian::Jun, 7);
532 const DatePeriod_T lBA9DatePeriod (lBA9DateRangeStart, lBA9DateRangeEnd);
533 const PeriodStruct lBA9PeriodStruct (lBA9DatePeriod, lDoWSrtuct);
537 FlightPeriodKey lBA9FlightPeriodKey (lFlightNumber, lBA9PeriodStruct);
539 FlightPeriod& lBA9FlightPeriod =
547 SegmentPeriodKey lLHRSYDSegmentPeriodKey (lLHR, lSYD);
549 SegmentPeriod& lLHRSYDSegmentPeriod =
554 lLHRSYDSegmentPeriod.setBoardingTime (l2135);
555 lLHRSYDSegmentPeriod.setOffTime (l1540);
556 lLHRSYDSegmentPeriod.setElapsedTime (l1105);
558 lLHRSYDSegmentPeriod.addCabinBookingClassList (lY,lYM);
563 const Date_T lAF84DateRangeStart (2011, boost::gregorian::Mar, 20);
564 const Date_T lAF84DateRangeEnd (2011, boost::gregorian::Mar, 21);
565 const DatePeriod_T lAF84DatePeriod (lAF84DateRangeStart, lAF84DateRangeEnd);
566 const PeriodStruct lAF84PeriodStruct (lAF84DatePeriod, lDoWSrtuct);
570 FlightPeriodKey lAF84FlightPeriodKey (lFlightNumber, lAF84PeriodStruct);
572 FlightPeriod& lAF84FlightPeriod =
580 SegmentPeriodKey lCDGSFOSegmentPeriodKey (lCDG, lSFO);
582 SegmentPeriod& lCDGSFOSegmentPeriod =
587 lCDGSFOSegmentPeriod.setBoardingTime (l1040);
588 lCDGSFOSegmentPeriod.setOffTime (l1250);
589 lCDGSFOSegmentPeriod.setElapsedTime (l1110);
590 lCDGSFOSegmentPeriod.addCabinBookingClassList (lY,lYM);
597 OnDString_T lBALHRSYDOnDStr =
"BA;9,2010-Jun-06;LHR,SYD";
599 lBAOnDStrList.push_back (lBALHRSYDOnDStr);
601 OnDDateKey lBAOnDDateKey (lBAOnDStrList);
602 OnDDate& lBA_LHRSYD_OnDDate =
613 const WTP_T lWTP750 = 750.0;
615 lBA_LHRSYD_OnDDate.setTotalForecast (lY, lWTP750Mean60StdDev6);
618 OnDString_T lAFLHRSYDOnDStr =
"AF;9,2011-Mar-20;CDG,SFO";
620 lAFOnDStrList.push_back (lAFLHRSYDOnDStr);
622 OnDDateKey lAFOnDDateKey (lAFOnDStrList);
623 OnDDate& lAF_LHRSYD_OnDDate =
633 lAF_LHRSYD_OnDDate.setTotalForecast (lY, lWTP750Mean60StdDev6);
639 buildSampleInventoryScheduleForFareFamilies (BomRoot& ioBomRoot) {
644 const InventoryKey lSQKey (
"SQ");
645 Inventory& lSQInv = BomManager::getObject<Inventory>(ioBomRoot,
652 const Date_T lDate (2010, 2, 8);
653 const FlightDateKey lFlightDateKey (lFlightNumber747, lDate);
655 FlightDate& lSQ747_20100208_FD =
670 const SegmentDateKey lSegmentDateKey (lSIN, lBKK);
672 SegmentDate& lSINBKKSegment =
678 const std::string lSQSINRoutingLegStr =
"SQ;747;2010-Feb-8;SIN";
679 lSINBKKSegment.addLegKey (lSQSINRoutingLegStr);
682 lSINBKKSegment.setBoardingDate (lDate);
683 lSINBKKSegment.setOffDate (lDate);
684 lSINBKKSegment.setBoardingTime (l0635);
685 lSINBKKSegment.setOffTime (l0800);
686 lSINBKKSegment.setElapsedTime (l0225);
693 const LegDateKey lLegDateKey (lSIN);
700 lSINLeg.setOffPoint (lBKK);
701 lSINLeg.setBoardingDate (lDate);
702 lSINLeg.setOffDate (lDate);
703 lSINLeg.setBoardingTime (l0635);
704 lSINLeg.setOffTime (l0800);
705 lSINLeg.setElapsedTime (l0225);
713 const SegmentCabinKey lYSegmentCabinKey (lY);
714 SegmentCabin& lSINBKKSegmentYCabin =
718 lSINBKKSegmentYCabin.activateFareFamily ();
725 const LegCabinKey lYLegCabinKey (lY);
726 LegCabin& lSINLegYCabin =
737 const FareFamilyKey l1FareFamilyKey (l1);
738 FareFamily& lSINBKKSegmentYCabin1Family =
741 lSINBKKSegmentYCabin1Family);
743 lSINBKKSegmentYCabin1Family);
751 const FareFamilyKey l2FareFamilyKey (l2);
752 FareFamily& lSINBKKSegmentYCabin2Family =
755 lSINBKKSegmentYCabin2Family);
757 lSINBKKSegmentYCabin2Family);
767 const BookingClassKey lYBookingClassKey (lClassY);
768 BookingClass& lSINBKKSegmentYCabin2FamilyYClass =
771 lSINBKKSegmentYCabin2FamilyYClass);
773 lSINBKKSegmentYCabin2FamilyYClass);
776 lSINBKKSegmentYCabin2FamilyYClass);
778 lSINBKKSegmentYCabin2FamilyYClass);
779 lSINBKKSegmentYCabin2FamilyYClass.setYield(1200);
788 const BookingClassKey lBBookingClassKey (lB);
789 BookingClass& lSINBKKSegmentYCabin2FamilyBClass =
792 lSINBKKSegmentYCabin2FamilyBClass);
794 lSINBKKSegmentYCabin2FamilyBClass);
797 lSINBKKSegmentYCabin2FamilyBClass);
799 lSINBKKSegmentYCabin2FamilyBClass);
800 lSINBKKSegmentYCabin2FamilyBClass.setYield(800);
809 const BookingClassKey lMBookingClassKey (lM);
810 BookingClass& lSINBKKSegmentYCabin1FamilyMClass =
813 lSINBKKSegmentYCabin1FamilyMClass);
815 lSINBKKSegmentYCabin1FamilyMClass);
818 lSINBKKSegmentYCabin1FamilyMClass);
820 lSINBKKSegmentYCabin1FamilyMClass);
821 lSINBKKSegmentYCabin1FamilyMClass.setYield(900);
830 const BookingClassKey lQBookingClassKey (lQ);
831 BookingClass& lSINBKKSegmentYCabin1FamilyQClass =
834 lSINBKKSegmentYCabin1FamilyQClass);
836 lSINBKKSegmentYCabin1FamilyQClass);
839 lSINBKKSegmentYCabin1FamilyQClass);
841 lSINBKKSegmentYCabin1FamilyQClass);
842 lSINBKKSegmentYCabin1FamilyQClass.setYield(600);
856 const DoWStruct lDoWSrtuct (
"1111111");
857 const Date_T lSQ747DateRangeStart (2010, boost::gregorian::Feb, 8);
858 const Date_T lSQ747DateRangeEnd (2010, boost::gregorian::Feb, 9);
859 const DatePeriod_T lSQ747DatePeriod (lSQ747DateRangeStart,
861 const PeriodStruct lSQ747PeriodStruct (lSQ747DatePeriod, lDoWSrtuct);
863 const FlightPeriodKey lSQ747FlightPeriodKey (lFlightNumber747,
865 FlightPeriod& lSQ747FlightPeriod =
873 const SegmentPeriodKey lSINBKKSegmentPeriodKey (lSIN, lBKK);
874 SegmentPeriod& lSINBKKSegmentPeriod =
880 lSINBKKSegmentPeriod.addCabinBookingClassList (lY,lYBMQ);
881 lSINBKKSegmentPeriod.setBoardingTime (l0635);
882 lSINBKKSegmentPeriod.setOffTime (l0800);
883 lSINBKKSegmentPeriod.setElapsedTime (l0225);
890 const OnDString_T lSQSINBKKOnDStr =
"SQ;747,2011-Feb-14;SIN,BKK";
892 lSQOnDStrList.push_back (lSQSINBKKOnDStr);
894 const OnDDateKey lSQOnDDateKey (lSQOnDStrList);
895 OnDDate& lSQ_SINBKK_OnDDate =
902 const WTP_T lWTP1000 = 1000.0;
903 const WTPDemandPair_T lWTP1000Mean120StdDev12 (lWTP1000, lMean120StdDev12);
904 lSQ_SINBKK_OnDDate.setTotalForecast (lY, lWTP1000Mean120StdDev12);
911 void CmdBomManager::buildDummyLegSegmentAccesses (BomRoot& ioBomRoot) {
924 SegmentCabin& lDummySegmentCabin =
928 LegCabin& lDummyLegCabin =
936 const bool isForFareFamilies =
true;
938 SegmentCabin& lFFDummySegmentCabin =
952 void CmdBomManager::buildCompleteDummyInventory (BomRoot& ioBomRoot) {
957 buildDummyInventory (ioBomRoot, lCapacity);
960 SegmentCabin& lDummySegmentCabin =
964 LegCabin& lDummyLegCabin =
975 BookingClass& lDummyBookingClass =
977 lDummyBookingClass.setYield (lYield);
978 lDummyBookingClass.setMean (lMean);
979 lDummyBookingClass.setStdDev (lStdDev);
983 lDummyBookingClassList.push_back(&lDummyBookingClass);
985 VirtualClassStruct lDummyVirtualClass (lDummyBookingClassList);
986 lDummyVirtualClass.setYield (lYield);
987 lDummyVirtualClass.setMean (lMean);
988 lDummyVirtualClass.setStdDev (lStdDev);
990 lDummyLegCabin.addVirtualClass (lDummyVirtualClass);
996 lDummyBookingClass.setYield (lYield);
997 lDummyBookingClass.setMean (lMean);
998 lDummyBookingClass.setStdDev (lStdDev);
1002 lDummyVirtualClass.setYield (lYield);
1003 lDummyVirtualClass.setMean (lMean);
1004 lDummyVirtualClass.setStdDev (lStdDev);
1006 lDummyLegCabin.addVirtualClass (lDummyVirtualClass);
1012 lDummyBookingClass.setYield (lYield);
1013 lDummyBookingClass.setMean (lMean);
1014 lDummyBookingClass.setStdDev (lStdDev);
1018 lDummyVirtualClass.setYield (lYield);
1019 lDummyVirtualClass.setMean (lMean);
1020 lDummyVirtualClass.setStdDev (lStdDev);
1022 lDummyLegCabin.addVirtualClass (lDummyVirtualClass);
1027 void CmdBomManager::buildDummyInventory (BomRoot& ioBomRoot,
1037 AirlineFeature& lAirlineFeature =
1046 FlightDate& lFlightDate =
1061 lLeg.setBoardingTime (
Duration_T (14, 0, 0));
1071 lLegCabin.setCapacities (iCapacity);
1072 lLegCabin.setAvailabilityPool (iCapacity);
1076 SegmentDate& lSegment =
1082 std::ostringstream oStr;
1087 lSegment.addLegKey (oStr.str());
1092 lSegment.setBoardingTime (
Duration_T (14, 0, 0));
1094 lSegment.setElapsedTime (
Duration_T (8, 0, 0));
1098 SegmentCabin& lSegmentCabin =
1105 FareFamilyKey l1FareFamilyKey (l1);
1107 FareFamily& lSegmentYCabin1Family =
1114 BookingClassKey lQBookingClassKey (lQ);
1116 BookingClass& lSegmentYCabin1FamilyQClass =
1119 lSegmentYCabin1FamilyQClass);
1121 lSegmentYCabin1FamilyQClass);
1133 const DoWStruct lDoWSrtuct (
"1111111");
1136 const DatePeriod_T lXXDatePeriod (lXXDateRangeStart, lXXDateRangeEnd);
1137 const PeriodStruct lXXPeriodStruct (lXXDatePeriod, lDoWSrtuct);
1141 FlightPeriod& lXXFlightPeriod =
1151 SegmentPeriod& lXXSegmentPeriod =
1156 lXXSegmentPeriod.setBoardingTime (
Duration_T (14, 0, 0));
1157 lXXSegmentPeriod.setOffTime (
Duration_T (16, 0, 0));
1158 lXXSegmentPeriod.setElapsedTime (
Duration_T (8, 0, 0));
1161 lXXSegmentPeriod.addCabinBookingClassList (lY,lYQ);
1167 void CmdBomManager::
1168 buildCompleteDummyInventoryForFareFamilies (BomRoot& ioBomRoot) {
1176 Inventory& lInv = BomManager::getObject<Inventory>(ioBomRoot,
1177 lInventoryKey.toString());
1182 FlightDate& lFlightDate =
1188 LegDateKey lLegDateKey (DEFAULT_ORIGIN);
1197 lLeg.setBoardingTime (
Duration_T (14, 0, 0));
1207 lLegCabin.setCapacities (lCapacity);
1208 lLegCabin.setAvailabilityPool (lCapacity);
1212 SegmentDate& lSegment =
1218 std::ostringstream oStr;
1223 lSegment.addLegKey (oStr.str());
1228 lSegment.setBoardingTime (
Duration_T (14, 0, 0));
1230 lSegment.setElapsedTime (
Duration_T (8, 0, 0));
1234 SegmentCabin& lSegmentCabin =
1241 const FareFamilyKey l1FareFamilyKey (l1);
1243 FareFamily& lSegmentYCabin1Family =
1248 const unsigned int size = 16;
1249 for (
unsigned int idx = 0; idx < size; ++idx) {
1250 double i =
static_cast<double> (idx);
1252 lDemandVector1FareFamily.push_back(lMeanStdDevPair);
1254 lSegmentYCabin1Family.setMeanStdDev(lDemandVector1FareFamily);
1260 const BookingClassKey lYBookingClassKey (lY);
1262 BookingClass& lSegmentYCabin1FamilyYClass =
1265 lSegmentYCabin1FamilyYClass.setYield(lYield);
1267 lSegmentYCabin1FamilyYClass);
1269 lSegmentYCabin1FamilyYClass);
1276 const BookingClassKey lUBookingClassKey (lU);
1278 BookingClass& lSegmentYCabin1FamilyUClass =
1281 lSegmentYCabin1FamilyUClass.setYield(lYield);
1283 lSegmentYCabin1FamilyUClass);
1285 lSegmentYCabin1FamilyUClass);
1292 const FareFamilyKey l2FareFamilyKey (l2);
1294 FareFamily& lSegmentYCabin2Family =
1299 for (
unsigned int idx = 0; idx < size; ++idx) {
1300 double i =
static_cast<double> (idx);
1302 lDemandVector2FareFamily.push_back(lMeanStdDevPair);
1304 lSegmentYCabin2Family.setMeanStdDev(lDemandVector2FareFamily);
1311 const BookingClassKey lOBookingClassKey (lO);
1313 BookingClass& lSegmentYCabin2FamilyOClass =
1316 lSegmentYCabin2FamilyOClass.setYield(lYield);
1318 lSegmentYCabin2FamilyOClass);
1320 lSegmentYCabin2FamilyOClass);
1327 const BookingClassKey lQBookingClassKey (lQ);
1329 BookingClass& lSegmentYCabin2FamilyQClass =
1332 lSegmentYCabin2FamilyQClass.setYield(lYield);
1334 lSegmentYCabin2FamilyQClass);
1336 lSegmentYCabin2FamilyQClass);
1349 const DoWStruct lDoWSrtuct (
"1111111");
1352 const DatePeriod_T lXXDatePeriod (lXXDateRangeStart, lXXDateRangeEnd);
1353 const PeriodStruct lXXPeriodStruct (lXXDatePeriod, lDoWSrtuct);
1358 FlightPeriod& lXXFlightPeriod =
1365 const SegmentPeriodKey lXXSegmentPeriodKey (DEFAULT_ORIGIN,
1368 SegmentPeriod& lXXSegmentPeriod =
1373 lXXSegmentPeriod.setBoardingTime (
Duration_T (14, 0, 0));
1374 lXXSegmentPeriod.setOffTime (
Duration_T (16, 0, 0));
1375 lXXSegmentPeriod.setElapsedTime (
Duration_T (8, 0, 0));
1378 lXXSegmentPeriod.addCabinBookingClassList (lYCabin,lYUOQ);
1383 void CmdBomManager::buildSamplePricing (BomRoot& ioBomRoot) {
1389 AirportPair& lAirportPair =
1395 const Date_T lDateRangeStart (2011, boost::gregorian::Jan, 15);
1396 const Date_T lDateRangeEnd (2011, boost::gregorian::Dec, 31);
1397 const DatePeriod_T lDateRange (lDateRangeStart, lDateRangeEnd);
1398 const DatePeriodKey lDatePeriodKey (lDateRange);
1401 DatePeriod& lDatePeriod =
1410 PosChannel& lPosChannel =
1416 const Time_T lTimeRangeStart (0, 0, 0);
1417 const Time_T lTimeRangeEnd (23, 0, 0);
1418 const TimePeriodKey lTimePeriodKey (lTimeRangeStart, lTimeRangeEnd);
1421 TimePeriod& lTimePeriod =
1435 FareFeatures& lFareFeatures =
1445 YieldFeatures& lYieldFeatures =
1456 const AirlineClassListKey lAirlineClassListKey (lAirlineCodeList,
1460 AirlineClassList& lAirlineClassList =
1463 lAirlineClassList.setFare (900);
1468 lAirlineClassList.setYield (900);
1476 void CmdBomManager::buildSamplePricingForFareFamilies (BomRoot& ioBomRoot) {
1480 const AirportPairKey lAirportPairKey (
"SIN",
"BKK");
1481 AirportPair& lAirportPair =
1482 BomManager::getObject<AirportPair>(ioBomRoot, lAirportPairKey.toString());
1485 const Date_T lDateRangeStart (2010, boost::gregorian::Feb, 1);
1486 const Date_T lDateRangeEnd (2011, boost::gregorian::Feb, 15);
1487 const DatePeriod_T lDateRange (lDateRangeStart, lDateRangeEnd);
1488 const DatePeriodKey lDatePeriodKey (lDateRange);
1491 DatePeriod& lDatePeriod =
1497 const PosChannelKey lPosChannelKey (
"SIN",
CHANNEL_IN);
1500 PosChannel& lPosChannel =
1506 const Time_T lTimeRangeStart (0, 0, 0);
1507 const Time_T lTimeRangeEnd (23, 0, 0);
1508 const TimePeriodKey lTimePeriodKey (lTimeRangeStart, lTimeRangeEnd);
1511 TimePeriod& lTimePeriod =
1520 ONE_MONTH_ADVANCE_PURCHASE,
1527 FareFeatures& lFareFeaturesQ =
1541 FareFeatures& lFareFeaturesM =
1548 ONE_MONTH_ADVANCE_PURCHASE,
1555 FareFeatures& lFareFeaturesB =
1569 FareFeatures& lFareFeaturesY =
1579 YieldFeatures& lYieldFeatures =
1587 lAirlineCodeList.push_back (
"SQ");
1591 const AirlineClassListKey lAirlineClassYListKey (lAirlineCodeList,
1595 AirlineClassList& lAirlineClassYList =
1600 lAirlineClassYList.setFare (1200);
1601 lAirlineClassYList.setYield (1200);
1610 lClassBList.push_back (
"B");
1611 const AirlineClassListKey lAirlineClassBListKey (lAirlineCodeList,
1614 AirlineClassList& lAirlineClassBList =
1619 lAirlineClassBList.setFare (800);
1620 lAirlineClassBList.setYield (800);
1629 lClassMList.push_back (
"M");
1630 const AirlineClassListKey lAirlineClassMListKey (lAirlineCodeList,
1634 AirlineClassList& lAirlineClassMList =
1639 lAirlineClassMList.setFare (900);
1640 lAirlineClassMList.setYield (900);
1649 lClassQList.push_back (
"Q");
1650 const AirlineClassListKey lAirlineClassQListKey (lAirlineCodeList,
1654 AirlineClassList& lAirlineClassQList =
1659 lAirlineClassQList.setFare (600);
1660 lAirlineClassQList.setYield (600);
1671 void CmdBomManager::
1675 ioTravelSolutionList.clear();
1678 const std::string lBA9_SegmentDateKey (
"BA, 9, 2011-06-10, LHR, SYD, 21:45");
1681 TravelSolutionStruct lTS;
1682 lTS.addSegment (lBA9_SegmentDateKey);
1685 ioTravelSolutionList.push_back (lTS);
1689 void CmdBomManager::
1693 ioTravelSolutionList.clear();
1696 const std::string lBA9_SegmentDateKey (
"BA, 9, 2011-06-10, LHR, SYD, 21:45");
1699 TravelSolutionStruct lTS1;
1700 lTS1.addSegment (lBA9_SegmentDateKey);
1704 const Fare_T lFare900 (900);
1708 const FareOptionStruct lFareOption1 (lClassPathQ, lFare900, lChangeFee,
1709 isNonRefundable, lSaturdayStay);
1712 lTS1.addFareOption (lFareOption1);
1719 bool hasInsertOfQBeenSuccessful = lClassAvailabilityMap1.
1720 insert (ClassAvailabilityMap_T::value_type (lClassPathQ, lAvl1)).second;
1721 assert (hasInsertOfQBeenSuccessful ==
true);
1723 lTS1.addClassAvailabilityMap (lClassAvailabilityMap1);
1726 ioTravelSolutionList.push_back (lTS1);
1729 const std::string lQF12_SegmentDateKey (
"QF, 12, 2011-06-10, LHR, SYD, 20:45");
1732 TravelSolutionStruct lTS2;
1733 lTS2.addSegment (lQF12_SegmentDateKey);
1737 const Fare_T lFare1000 (1000);
1740 const FareOptionStruct lFareOption2 (lClassPathY, lFare1000, lNoChangeFee,
1741 isRefundable, lSaturdayStay);
1747 const bool hasInsertOfYBeenSuccessful = lClassAvailabilityMap2.
1748 insert (ClassAvailabilityMap_T::value_type (lClassPathY, lAvl2)).second;
1749 assert (hasInsertOfYBeenSuccessful ==
true);
1751 lTS2.addClassAvailabilityMap (lClassAvailabilityMap2);
1754 lTS2.addFareOption (lFareOption2);
1757 const Fare_T lFare920 (920);
1758 const FareOptionStruct lFareOption3 (lClassPathQ, lFare920, lNoChangeFee,
1759 isNonRefundable, lSaturdayStay);
1763 hasInsertOfQBeenSuccessful = lClassAvailabilityMap2.
1764 insert (ClassAvailabilityMap_T::value_type (lClassPathQ, lAvl2)).second;
1765 assert (hasInsertOfYBeenSuccessful ==
true);
1767 lTS2.addClassAvailabilityMap (lClassAvailabilityMap2);
1770 lTS2.addFareOption (lFareOption3);
1773 ioTravelSolutionList.push_back (lTS2);
1778 BookingRequestStruct CmdBomManager::buildSampleBookingRequest() {
1789 const Date_T lPreferredDepartureDate (2011, boost::gregorian::Jun, 10);
1792 const Duration_T lPreferredDepartureTime (8, 0, 0);
1795 const Date_T lRequestDate (2011, boost::gregorian::May, 15);
1801 const DateTime_T lRequestDateTime (lRequestDate, lRequestTime);
1835 BookingRequestStruct oBookingRequest (lOrigin, lDestination, lPOS,
1836 lPreferredDepartureDate,
1839 lPartySize, lChannel,
1840 lTripType, lStayDuration,
1842 lPreferredDepartureTime,
1844 lChangeFees, lChangeFeeDisutility,
1846 lNonRefundableDisutility);
1848 return oBookingRequest;
1852 BookingRequestStruct CmdBomManager::buildSampleBookingRequestForCRS() {
1863 const Date_T lPreferredDepartureDate (2010, boost::gregorian::Jan, 30);
1866 const Duration_T lPreferredDepartureTime (10, 0, 0);
1869 const Date_T lRequestDate (2010, boost::gregorian::Jan, 22);
1875 const DateTime_T lRequestDateTime (lRequestDate, lRequestTime);
1909 BookingRequestStruct oBookingRequest (lOrigin,
1912 lPreferredDepartureDate,
1915 lPartySize, lChannel,
1916 lTripType, lStayDuration,
1918 lPreferredDepartureTime,
1920 lChangeFees, lChangeFeeDisutility,
1922 lNonRefundableDisutility);
1924 return oBookingRequest;
1928 void CmdBomManager::
1929 buildPartnershipsSampleInventoryAndRM (BomRoot& ioBomRoot) {
1934 const InventoryKey lSQKey (lAirlineCodeSQ);
1940 const AirlineFeatureKey lAirlineFeatureSQKey (lAirlineCodeSQ);
1941 AirlineFeature& lAirlineFeatureSQ =
1950 const InventoryKey lCXKey (lAirlineCodeCX);
1956 const AirlineFeatureKey lAirlineFeatureCXKey (lAirlineCodeCX);
1957 AirlineFeature& lAirlineFeatureCX =
1968 Date_T lDate (2010, 3, 8);
1969 FlightDateKey lFlightDateKey (lFlightNumber, lDate);
1971 FlightDate& lSQ11_20100308_FD =
1979 FlightDateKey lMktFlightDateKey (lMktFlightNumber, lDate);
1981 FlightDate& lSQ1200_20100308_FD =
1998 SegmentDateKey lSegmentDateKey (lSIN, lBKK);
2000 SegmentDate& lSINBKKSegment =
2006 const std::string lSQSINRoutingLegStr =
"SQ;11;2010-Mar-8;SIN";
2007 lSINBKKSegment.addLegKey (lSQSINRoutingLegStr);
2010 lSINBKKSegment.setBoardingDate (lDate);
2011 lSINBKKSegment.setOffDate (lDate);
2012 lSINBKKSegment.setBoardingTime (l0820);
2013 lSINBKKSegment.setOffTime (l1100);
2014 lSINBKKSegment.setElapsedTime (l0340);
2021 SegmentDateKey lMktSegmentDateKey (lBKK, lHKG);
2023 SegmentDate& lMktBKKHKGSegment =
2030 const std::string lCXBKKRoutingLegStr =
"CX;12;2010-Mar-8;BKK";
2031 lMktBKKHKGSegment.addLegKey (lCXBKKRoutingLegStr);
2034 lMktBKKHKGSegment.setBoardingDate (lDate);
2035 lMktBKKHKGSegment.setOffDate (lDate);
2036 lMktBKKHKGSegment.setBoardingTime (l1200);
2037 lMktBKKHKGSegment.setOffTime (l1540);
2038 lMktBKKHKGSegment.setElapsedTime (l0240);
2042 LegDateKey lLegDateKey (lSIN);
2049 lSINLeg.setOffPoint (lBKK);
2050 lSINLeg.setBoardingDate (lDate);
2051 lSINLeg.setOffDate (lDate);
2052 lSINLeg.setBoardingTime (l0820);
2053 lSINLeg.setOffTime (l1100);
2054 lSINLeg.setElapsedTime (l0340);
2059 SegmentCabinKey lYSegmentCabinKey (lY);
2061 SegmentCabin& lSINBKKSegmentYCabin =
2067 SegmentCabin& lMktBKKHKGSegmentYCabin =
2075 LegCabinKey lYLegCabinKey (lY);
2077 LegCabin& lSINLegYCabin =
2083 lSINLegYCabin.setCapacities (lCapacity);
2084 lSINLegYCabin.setAvailabilityPool (lCapacity);
2090 FareFamilyKey l1FareFamilyKey (l1);
2092 FareFamily& lSINBKKSegmentYCabin1Family =
2095 lSINBKKSegmentYCabin1Family);
2097 lSINBKKSegmentYCabin1Family);
2100 FareFamily& lMktBKKHKGSegmentYCabin1Family =
2103 lMktBKKHKGSegmentYCabin1Family);
2105 lMktBKKHKGSegmentYCabin1Family);
2110 BookingClassKey lYBookingClassKey (lY);
2112 BookingClass& lSINBKKSegmentYCabin1FamilyYClass =
2115 lSINBKKSegmentYCabin1FamilyYClass);
2117 lSINBKKSegmentYCabin1FamilyYClass);
2120 lSINBKKSegmentYCabin1FamilyYClass);
2122 lSINBKKSegmentYCabin1FamilyYClass);
2124 lSINBKKSegmentYCabin1FamilyYClass.setYield(700);
2128 BookingClass& lMktBKKHKGSegmentYCabin1FamilyYClass =
2131 lMktBKKHKGSegmentYCabin1FamilyYClass);
2133 lMktBKKHKGSegmentYCabin1FamilyYClass);
2136 lMktBKKHKGSegmentYCabin1FamilyYClass);
2138 lMktBKKHKGSegmentYCabin1FamilyYClass);
2140 lMktBKKHKGSegmentYCabin1FamilyYClass.setYield(700);
2146 BookingClassKey lMBookingClassKey (lM);
2148 BookingClass& lSINBKKSegmentYCabin1FamilyMClass =
2151 lSINBKKSegmentYCabin1FamilyMClass);
2153 lSINBKKSegmentYCabin1FamilyMClass);
2156 lSINBKKSegmentYCabin1FamilyMClass);
2158 lSINBKKSegmentYCabin1FamilyMClass);
2160 lSINBKKSegmentYCabin1FamilyMClass.setYield(500);
2164 BookingClass& lMktBKKHKGSegmentYCabin1FamilyMClass =
2167 lMktBKKHKGSegmentYCabin1FamilyMClass);
2169 lMktBKKHKGSegmentYCabin1FamilyMClass);
2172 lMktBKKHKGSegmentYCabin1FamilyMClass);
2174 lMktBKKHKGSegmentYCabin1FamilyMClass);
2176 lMktBKKHKGSegmentYCabin1FamilyMClass.setYield(500);
2183 OnDString_T lSQSINBKKOnDStr =
"SQ;11,2010-Mar-08;SIN,BKK";
2184 OnDString_T lMktSQBKKHKGOnDStr =
"SQ;1200,2010-Mar-08;BKK,HKG";
2186 lOnDStringList.push_back (lSQSINBKKOnDStr);
2187 lOnDStringList.push_back (lMktSQBKKHKGOnDStr);
2189 OnDDateKey lOnDDateKey (lOnDStringList);
2190 OnDDate& lSQ_SINHKG_OnDDate =
2202 const WTP_T lWTP750 = 750.0;
2204 lSQ_SINHKG_OnDDate.setTotalForecast (lY, lWTP750Mean60StdDev6);
2213 lCabinClassPairList.push_back(lCC_YM1);
2214 lCabinClassPairList.push_back(lCC_YM2);
2216 const Yield_T lYield850 = 850.0;
2218 lSQ_SINHKG_OnDDate.setDemandInformation (lCabinClassPairList, lYield850Mean20StdDev2);
2222 lCabinClassPairList.clear();
2223 lCabinClassPairList.push_back(lCC_YY1);
2224 lCabinClassPairList.push_back(lCC_YY2);
2226 const Yield_T lYield1200 = 1200.0;
2229 lSQ_SINHKG_OnDDate.setDemandInformation (lCabinClassPairList,
2230 lYield1200Mean10StdDev1);
2233 lOnDStringList.clear();
2234 lOnDStringList.push_back (lSQSINBKKOnDStr);
2236 lOnDDateKey = OnDDateKey(lOnDStringList);
2237 OnDDate& lSQ_SINBKK_OnDDate =
2247 const WTP_T lWTP400 = 400.0;
2249 lSQ_SINBKK_OnDDate.setTotalForecast (lY, lWTP400Mean60StdDev6);
2252 lCabinClassPairList.clear();
2253 lCabinClassPairList.push_back(lCC_YM1);
2255 const Yield_T lYield500 = 500.0;
2257 lSQ_SINBKK_OnDDate.setDemandInformation (lCabinClassPairList,
2258 lYield500Mean20StdDev1);
2260 lCabinClassPairList.clear();
2261 lCabinClassPairList.push_back(lCC_YY1);
2262 const Yield_T lYield700 = 700.0;
2264 lSQ_SINBKK_OnDDate.setDemandInformation (lCabinClassPairList,
2265 lYield700Mean20StdDev1);
2295 lFlightDateKey = FlightDateKey (lFlightNumber, lDate);
2297 FlightDate& lCX12_20100308_FD =
2303 lFlightNumber = 1100;
2305 lMktFlightDateKey = FlightDateKey (lFlightNumber, lDate);
2307 FlightDate& lCX1100_20100308_FD =
2318 lSegmentDateKey = SegmentDateKey (lBKK, lHKG);
2320 SegmentDate& lBKKHKGSegment =
2326 lBKKHKGSegment.addLegKey (lCXBKKRoutingLegStr);
2329 lBKKHKGSegment.setBoardingDate (lDate);
2330 lBKKHKGSegment.setOffDate (lDate);
2331 lBKKHKGSegment.setBoardingTime (l1200);
2332 lBKKHKGSegment.setOffTime (l1540);
2333 lBKKHKGSegment.setElapsedTime (l0240);
2336 lMktSegmentDateKey = SegmentDateKey (lSIN, lBKK);
2338 SegmentDate& lMktSINBKKSegment =
2345 lMktSINBKKSegment.addLegKey (lSQSINRoutingLegStr);
2348 lMktSINBKKSegment.setBoardingDate (lDate);
2349 lMktSINBKKSegment.setOffDate (lDate);
2350 lMktSINBKKSegment.setBoardingTime (l0820);
2351 lMktSINBKKSegment.setOffTime (l1100);
2352 lMktSINBKKSegment.setElapsedTime (l0340);
2356 lLegDateKey = LegDateKey (lBKK);
2363 lBKKLeg.setOffPoint (lHKG);
2364 lBKKLeg.setBoardingDate (lDate);
2365 lBKKLeg.setOffDate (lDate);
2366 lBKKLeg.setBoardingTime (l1200);
2367 lBKKLeg.setOffTime (l1540);
2368 lBKKLeg.setElapsedTime (l0240);
2375 SegmentCabin& lBKKHKGSegmentYCabin =
2381 SegmentCabin& lMktSINBKKSegmentYCabin =
2388 LegCabin& lBKKLegYCabin =
2394 lBKKLegYCabin.setCapacities (lCapacity);
2395 lBKKLegYCabin.setAvailabilityPool (lCapacity);
2399 FareFamily& lBKKHKGSegmentYCabin1Family =
2402 lBKKHKGSegmentYCabin1Family);
2404 lBKKHKGSegmentYCabin1Family);
2407 FareFamily& lMktSINBKKSegmentYCabin1Family =
2410 lMktSINBKKSegmentYCabin1Family);
2412 lMktSINBKKSegmentYCabin1Family);
2418 BookingClass& lBKKHKGSegmentYCabin1FamilyYClass =
2421 lBKKHKGSegmentYCabin1FamilyYClass);
2423 lBKKHKGSegmentYCabin1FamilyYClass);
2426 lBKKHKGSegmentYCabin1FamilyYClass);
2428 lBKKHKGSegmentYCabin1FamilyYClass);
2430 lBKKHKGSegmentYCabin1FamilyYClass.setYield(700);
2434 BookingClass& lMktSINBKKSegmentYCabin1FamilyYClass =
2437 lMktSINBKKSegmentYCabin1FamilyYClass);
2439 lMktSINBKKSegmentYCabin1FamilyYClass);
2442 lMktSINBKKSegmentYCabin1FamilyYClass);
2444 lMktSINBKKSegmentYCabin1FamilyYClass);
2446 lMktSINBKKSegmentYCabin1FamilyYClass.setYield(700);
2450 BookingClass& lBKKHKGSegmentYCabin1FamilyMClass =
2453 lBKKHKGSegmentYCabin1FamilyMClass);
2455 lBKKHKGSegmentYCabin1FamilyMClass);
2458 lBKKHKGSegmentYCabin1FamilyMClass);
2460 lBKKHKGSegmentYCabin1FamilyMClass);
2462 lBKKHKGSegmentYCabin1FamilyMClass.setYield(500);
2466 BookingClass& lMktSINBKKSegmentYCabin1FamilyMClass =
2469 lMktSINBKKSegmentYCabin1FamilyMClass);
2471 lMktSINBKKSegmentYCabin1FamilyMClass);
2474 lMktSINBKKSegmentYCabin1FamilyMClass);
2476 lMktSINBKKSegmentYCabin1FamilyMClass);
2478 lMktSINBKKSegmentYCabin1FamilyMClass.setYield(500);
2484 OnDString_T lMktCXSINBKKOnDStr =
"CX;1100,2010-Mar-08;SIN,BKK";
2485 OnDString_T lCXBKKHKGOnDStr =
"CX;12,2010-Mar-08;BKK,HKG";
2486 lOnDStringList.clear();
2487 lOnDStringList.push_back (lMktCXSINBKKOnDStr);
2488 lOnDStringList.push_back (lCXBKKHKGOnDStr);
2490 lOnDDateKey = OnDDateKey(lOnDStringList);
2491 OnDDate& lCX_SINHKG_OnDDate =
2502 lCX_SINHKG_OnDDate.setTotalForecast (lY, lWTP750Mean60StdDev6);
2505 lCabinClassPairList.clear();
2506 lCabinClassPairList.push_back(lCC_YM1);
2507 lCabinClassPairList.push_back(lCC_YM2);
2508 lCX_SINHKG_OnDDate.setDemandInformation (lCabinClassPairList,
2509 lYield850Mean20StdDev2);
2511 lCabinClassPairList.clear();
2512 lCabinClassPairList.push_back(lCC_YY1);
2513 lCabinClassPairList.push_back(lCC_YY2);
2514 lCX_SINHKG_OnDDate.setDemandInformation (lCabinClassPairList,
2515 lYield1200Mean10StdDev1);
2540 lOnDStringList.clear();
2541 lOnDStringList.push_back (lCXBKKHKGOnDStr);
2543 lOnDDateKey = OnDDateKey(lOnDStringList);
2544 OnDDate& lCX_BKKHKG_OnDDate =
2554 lCX_BKKHKG_OnDDate.setTotalForecast (lY, lWTP400Mean60StdDev6);
2557 lCabinClassPairList.clear();
2558 lCabinClassPairList.push_back(lCC_YM2);
2559 lCX_BKKHKG_OnDDate.setDemandInformation (lCabinClassPairList,
2560 lYield500Mean20StdDev1);
2562 lCabinClassPairList.clear();
2563 lCabinClassPairList.push_back(lCC_YY2);
2565 lCX_BKKHKG_OnDDate.setDemandInformation (lCabinClassPairList,
2566 lYield700Mean10StdDev1);
2575 const DoWStruct lDoWSrtuct (
"1111111");
2576 const Date_T lDateRangeStart (2010, boost::gregorian::Mar, 8);
2577 const Date_T lDateRangeEnd (2010, boost::gregorian::Mar, 9);
2578 const DatePeriod_T lDatePeriod (lDateRangeStart, lDateRangeEnd);
2579 const PeriodStruct lPeriodStruct (lDatePeriod,lDoWSrtuct);
2583 FlightPeriodKey lFlightPeriodKey (lFlightNumber, lPeriodStruct);
2585 FlightPeriod& lSQ11FlightPeriod =
2593 SegmentPeriodKey lSegmentPeriodKey (lSIN, lBKK);
2595 SegmentPeriod& lSINBKKSegmentPeriod =
2600 lSINBKKSegmentPeriod.setBoardingTime (l0820);
2601 lSINBKKSegmentPeriod.setOffTime (l1100);
2602 lSINBKKSegmentPeriod.setElapsedTime (l0340);
2604 lSINBKKSegmentPeriod.addCabinBookingClassList (lY,lYM);
2611 lFlightPeriodKey = FlightPeriodKey(lFlightNumber, lPeriodStruct);
2613 FlightPeriod& lCX12FlightPeriod =
2621 lSegmentPeriodKey = SegmentPeriodKey (lBKK, lHKG);
2623 SegmentPeriod& lBKKHKGSegmentPeriod =
2628 lBKKHKGSegmentPeriod.setBoardingTime (l1200);
2629 lBKKHKGSegmentPeriod.setOffTime (l1540);
2630 lBKKHKGSegmentPeriod.setElapsedTime (l0240);
2631 lBKKHKGSegmentPeriod.addCabinBookingClassList (lY,lYM);
2636 void CmdBomManager::buildPartnershipsSamplePricing (BomRoot& ioBomRoot) {
2643 AirportPairKey lAirportPairKey (
"SIN",
"BKK");
2646 AirportPair& lSINBKKAirportPair =
2652 const Date_T lDateRangeStart (2010, boost::gregorian::Mar, 01);
2653 const Date_T lDateRangeEnd (2010, boost::gregorian::Mar, 31);
2654 const DatePeriod_T lDateRange (lDateRangeStart, lDateRangeEnd);
2655 const DatePeriodKey lDatePeriodKey (lDateRange);
2658 DatePeriod& lSINBKKDatePeriod =
2664 PosChannelKey lPosChannelKey (
"SIN",
"IN");
2667 PosChannel& lSINPosChannel =
2673 const Time_T lTimeRangeStart (0, 0, 0);
2674 const Time_T lTimeRangeEnd (23, 0, 0);
2675 const TimePeriodKey lFareTimePeriodKey (lTimeRangeStart,
2679 TimePeriod& lSINBKKFareTimePeriod =
2693 FareFeatures& lSINBKKFareFeatures =
2700 lSQAirlineCodeList.push_back (
"SQ");
2703 lYClassCodeList.push_back (
"Y");
2704 const AirlineClassListKey lSQAirlineYClassListKey (lSQAirlineCodeList,
2708 lMClassCodeList.push_back (
"M");
2709 const AirlineClassListKey lSQAirlineMClassListKey (lSQAirlineCodeList,
2713 AirlineClassList& lSQAirlineYClassList =
2715 lSQAirlineYClassList.setFare(700);
2719 AirlineClassList& lSQAirlineMClassList =
2721 lSQAirlineMClassList.setFare(500);
2728 lAirportPairKey = AirportPairKey (
"BKK",
"HKG");
2731 AirportPair& lBKKHKGAirportPair =
2740 DatePeriod& lBKKHKGDatePeriod =
2746 lPosChannelKey = PosChannelKey(
"BKK",
"IN");
2749 PosChannel& lBKKPosChannel =
2758 TimePeriod& lBKKHKGFareTimePeriod =
2767 FareFeatures& lBKKHKGFareFeatures =
2774 lCXAirlineCodeList.push_back (
"CX");
2776 const AirlineClassListKey lCXAirlineYClassListKey (lCXAirlineCodeList,
2779 const AirlineClassListKey lCXAirlineMClassListKey (lCXAirlineCodeList,
2783 AirlineClassList& lCXAirlineYClassList =
2785 lCXAirlineYClassList.setFare(700);
2789 AirlineClassList& lCXAirlineMClassList =
2791 lCXAirlineMClassList.setFare(500);
2798 lAirportPairKey = AirportPairKey (
"SIN",
"HKG");
2801 AirportPair& lSINHKGAirportPair =
2810 DatePeriod& lSINHKGDatePeriod =
2816 lPosChannelKey = PosChannelKey(
"SIN",
"IN");
2819 PosChannel& lOnDSINPosChannel =
2828 TimePeriod& lSINHKGFareTimePeriod =
2837 FareFeatures& lSINHKGFareFeatures =
2844 lSQ_CXAirlineCodeList.push_back (
"SQ");
2845 lSQ_CXAirlineCodeList.push_back (
"CX");
2848 lY_YClassCodeList.push_back (
"Y");
2849 lY_YClassCodeList.push_back (
"Y");
2850 const AirlineClassListKey lSQ_CXAirlineYClassListKey (lSQ_CXAirlineCodeList,
2854 lM_MClassCodeList.push_back (
"M");
2855 lM_MClassCodeList.push_back (
"M");
2856 const AirlineClassListKey lSQ_CXAirlineMClassListKey (lSQ_CXAirlineCodeList,
2860 AirlineClassList& lSQ_CXAirlineYClassList =
2862 lSQ_CXAirlineYClassList.setFare(1200);
2864 lSQ_CXAirlineYClassList);
2866 lSQ_CXAirlineYClassList);
2868 AirlineClassList& lSQ_CXAirlineMClassList =
2870 lSQ_CXAirlineMClassList.setFare(850);
2872 lSQ_CXAirlineMClassList);
2874 lSQ_CXAirlineMClassList);
2887 PosChannel& lRAC_SINBKKPosChannel =
2893 const TimePeriodKey lYieldTimePeriodKey (lTimeRangeStart,
2897 TimePeriod& lSINBKKYieldTimePeriod =
2900 lSINBKKYieldTimePeriod);
2902 lSINBKKYieldTimePeriod);
2909 YieldFeatures& lSINBKKYieldFeatures =
2912 lSINBKKYieldFeatures);
2914 lSINBKKYieldFeatures);
2920 AirlineClassList& lRAC_SQAirlineYClassList =
2922 lRAC_SQAirlineYClassList.setYield(700);
2924 lRAC_SQAirlineYClassList);
2926 lRAC_SQAirlineYClassList);
2928 AirlineClassList& lRAC_SQAirlineMClassList =
2930 lRAC_SQAirlineMClassList.setYield(500);
2932 lRAC_SQAirlineMClassList);
2934 lRAC_SQAirlineMClassList);
2944 PosChannel& lRAC_BKKHKGPosChannel =
2953 TimePeriod& lBKKHKGYieldTimePeriod =
2956 lBKKHKGYieldTimePeriod);
2958 lBKKHKGYieldTimePeriod);
2964 YieldFeatures& lBKKHKGYieldFeatures =
2967 lBKKHKGYieldFeatures);
2969 lBKKHKGYieldFeatures);
2975 AirlineClassList& lRAC_CXAirlineYClassList =
2977 lRAC_CXAirlineYClassList.setYield(700);
2979 lRAC_CXAirlineYClassList);
2981 lRAC_CXAirlineYClassList);
2983 AirlineClassList& lRAC_CXAirlineMClassList =
2985 lRAC_CXAirlineMClassList.setYield(500);
2987 lRAC_CXAirlineMClassList);
2989 lRAC_CXAirlineMClassList);
2999 PosChannel& lRAC_SINHKGChannel =
3008 TimePeriod& lSINHKGYieldTimePeriod =
3017 YieldFeatures& lSINHKGYieldFeatures =
3020 lSINHKGYieldFeatures);
3022 lSINHKGYieldFeatures);
3028 AirlineClassList& lRAC_SQ_CXAirlineYClassList =
3030 lRAC_SQ_CXAirlineYClassList.setYield(1200);
3032 lRAC_SQ_CXAirlineYClassList);
3034 lRAC_SQ_CXAirlineYClassList);
3036 AirlineClassList& lRAC_SQ_CXAirlineMClassList =
3038 lRAC_SQ_CXAirlineMClassList.setYield(850);
3040 lRAC_SQ_CXAirlineMClassList);
3042 lRAC_SQ_CXAirlineMClassList);
static stdair::LegCabin & retrieveDummyLegCabin(stdair::BomRoot &, const bool isForFareFamilies=false)
static void linkWithParent(PARENT &, CHILD &)
std::vector< MeanStdDevPair_T > MeanStdDevPairVector_T
static FacBom & instance()
const ClassCode_T CLASS_CODE_Q
const CabinCode_T CABIN_Y
LocationCode_T AirportCode_T
const Date_T DEFAULT_DEPARTURE_DATE
const FrequentFlyer_T FREQUENT_FLYER_MEMBER
boost::posix_time::ptime DateTime_T
std::pair< Yield_T, MeanStdDevPair_T > YieldDemandPair_T
Class representing the actual attributes for an airline leg-cabin.
const AirportCode_T DEFAULT_ORIGIN
const CityCode_T DEFAULT_POS
unsigned short FlightNumber_T
std::vector< ClassList_String_T > ClassList_StringList_T
Handle on the StdAir library context.
boost::posix_time::time_duration Duration_T
const CabinCapacity_T DEFAULT_CABIN_CAPACITY
static void addToListAndMap(OBJECT1 &, OBJECT2 &)
std::list< CabinClassPair_T > CabinClassPairList_T
std::string AirlineCode_T
std::map< const ClassCode_T, Availability_T > ClassAvailabilityMap_T
LocationCode_T CityCode_T
boost::posix_time::time_duration Time_T
const NonRefundable_T NO_NON_REFUNDABLE
const AirportCode_T AIRPORT_BKK
const AirportCode_T DEFAULT_DESTINATION
std::vector< AirlineCode_T > AirlineCodeList_T
const ChannelLabel_T DEFAULT_CHANNEL
std::pair< WTP_T, MeanStdDevPair_T > WTPDemandPair_T
const DayDuration_T NO_STAY_DURATION
const ClassCode_T CLASS_CODE_Y
const ClassCode_T DEFAULT_CLASS_CODE
std::list< BookingClass * > BookingClassList_T
const CabinCode_T DEFAULT_CABIN_CODE
const FlightNumber_T DEFAULT_FLIGHT_NUMBER_FF
const PriceValue_T DEFAULT_VALUE_OF_TIME
static void setAirlineFeature(Inventory &iInventory, AirlineFeature &iAirlineFeature)
const AirlineCode_T AIRLINE_CODE_BA
std::list< TravelSolutionStruct > TravelSolutionList_T
std::string FrequentFlyer_T
const TripType_T TRIP_TYPE_INBOUND
const SaturdayStay_T SATURDAY_STAY
const ChangeFees_T NO_CHANGE_FEES
const TripType_T TRIP_TYPE_ONE_WAY
const NonRefundable_T NON_REFUNDABLE
const ChannelLabel_T CHANNEL_IN
const AirportCode_T AIRPORT_SYD
const DayDuration_T NO_ADVANCE_PURCHASE
static void addToList(OBJECT1 &, OBJECT2 &)
static stdair::SegmentCabin & retrieveDummySegmentCabin(stdair::BomRoot &, const bool isForFareFamilies=false)
boost::gregorian::date Date_T
const CabinCode_T CABIN_ECO
std::pair< MeanValue_T, StdDevValue_T > MeanStdDevPair_T
boost::gregorian::date_period DatePeriod_T
const FlightNumber_T DEFAULT_FLIGHT_NUMBER
boost::gregorian::date_duration DateOffset_T
std::string ClassList_String_T
const AirportCode_T AIRPORT_LHR
const ChangeFees_T CHANGE_FEES
std::list< OnDString_T > OnDStringList_T
const TripType_T TRIP_TYPE_ROUND_TRIP
const AirlineCode_T DEFAULT_AIRLINE_CODE
const ChannelLabel_T CHANNEL_DN
std::string ChannelLabel_T
const DayDuration_T DEFAULT_STAY_DURATION
std::pair< CabinCode_T, ClassCode_T > CabinClassPair_T
const AirportCode_T AIRPORT_SIN
#define STDAIR_LOG_DEBUG(iToBeLogged)