47 void CmdBomManager::buildSampleBom (BomRoot& ioBomRoot) {
51 <<
"specifications.");
55 buildSampleInventorySchedule (ioBomRoot);
58 buildSamplePricing (ioBomRoot);
62 buildPartnershipsSampleInventoryAndRM (ioBomRoot);
65 buildPartnershipsSamplePricing (ioBomRoot);
68 buildCompleteDummyInventory (ioBomRoot);
72 void CmdBomManager::buildSampleInventorySchedule (BomRoot& ioBomRoot) {
77 const InventoryKey lBAKey (
"BA");
78 Inventory& lBAInv = FacBom<Inventory>::instance().create (lBAKey);
83 const InventoryKey lAFKey (
"AF");
84 Inventory& lAFInv = FacBom<Inventory>::instance().create (lAFKey);
92 Date_T lDate (2011, 6, 10);
93 FlightDateKey lFlightDateKey (lFlightNumber, lDate);
95 FlightDate& lBA9_20110610_FD =
96 FacBom<FlightDate>::instance().create (lFlightDateKey);
113 SegmentDateKey lSegmentDateKey (lLHR, lSYD);
115 SegmentDate& lLHRSYDSegment =
116 FacBom<SegmentDate>::instance().create (lSegmentDateKey);
121 lLHRSYDSegment.setBoardingDate (lDate);
122 lLHRSYDSegment.setOffDate (lDate + l2Days);
123 lLHRSYDSegment.setBoardingTime (l2135);
124 lLHRSYDSegment.setOffTime (l0610);
125 lLHRSYDSegment.setElapsedTime (l2135);
135 lSegmentDateKey = SegmentDateKey (lLHR, lBKK);
137 SegmentDate& lLHRBKKSegment =
138 FacBom<SegmentDate>::instance().create (lSegmentDateKey);
143 lLHRBKKSegment.setBoardingDate (lDate);
144 lLHRBKKSegment.setOffDate (lDate + l1Day);
145 lLHRBKKSegment.setBoardingTime (l2135);
146 lLHRBKKSegment.setOffTime (l1540);
147 lLHRBKKSegment.setElapsedTime (l1105);
156 lSegmentDateKey = SegmentDateKey (lBKK, lSYD);
158 SegmentDate& lBKKSYDSegment =
159 FacBom<SegmentDate>::instance().create (lSegmentDateKey);
164 lBKKSYDSegment.setBoardingDate (lDate + l1Day);
165 lBKKSYDSegment.setOffDate (lDate + l2Days);
166 lBKKSYDSegment.setBoardingTime (l1705);
167 lBKKSYDSegment.setOffTime (l1540);
168 lBKKSYDSegment.setElapsedTime (l0905);
175 LegDateKey lLegDateKey (lLHR);
177 LegDate& lLHRLeg = FacBom<LegDate>::instance().create (lLegDateKey);
182 lLHRLeg.setOffPoint (lBKK);
183 lLHRLeg.setBoardingDate (lDate);
184 lLHRLeg.setOffDate (lDate + l1Day);
185 lLHRLeg.setBoardingTime (l2135);
186 lLHRLeg.setOffTime (l1540);
187 lLHRLeg.setElapsedTime (l1105);
193 lLegDateKey = LegDateKey (lBKK);
195 LegDate& lBKKLeg = FacBom<LegDate>::instance().create (lLegDateKey);
203 lBKKLeg.setOffPoint (lSYD);
204 lBKKLeg.setBoardingDate (lDate + l1Day);
205 lBKKLeg.setOffDate (lDate + l2Days);
206 lBKKLeg.setBoardingTime (l1705);
207 lBKKLeg.setOffTime (l1540);
208 lBKKLeg.setElapsedTime (l0905);
224 SegmentCabinKey lYSegmentCabinKey (lY);
226 SegmentCabin& lLHRBKKSegmentYCabin =
227 FacBom<SegmentCabin>::instance().create (lYSegmentCabinKey);
235 SegmentCabin& lBKKSYDSegmentYCabin =
236 FacBom<SegmentCabin>::instance().create (lYSegmentCabinKey);
245 SegmentCabin& lLHRSYDSegmentYCabin =
246 FacBom<SegmentCabin>::instance().create (lYSegmentCabinKey);
255 LegCabinKey lYLegCabinKey (lY);
257 LegCabin& lLHRLegYCabin =
258 FacBom<LegCabin>::instance().create (lYLegCabinKey);
266 LegCabin& lBKKLegYCabin =
267 FacBom<LegCabin>::instance().create (lYLegCabinKey);
284 lLHRSYDSegmentYCabin.getFullerKey());
286 lLHRBKKSegmentYCabin.getFullerKey());
288 lLHRSYDSegmentYCabin.getFullerKey());
290 lBKKSYDSegmentYCabin.getFullerKey());
303 lLHRLegYCabin.getFullerKey());
305 lLHRLegYCabin.getFullerKey());
307 lBKKLegYCabin.getFullerKey());
309 lBKKLegYCabin.getFullerKey());
315 FareFamilyKey l1FareFamilyKey (l1);
317 FareFamily& lLHRBKKSegmentYCabin1Family =
318 FacBom<FareFamily>::instance().create (l1FareFamilyKey);
320 lLHRBKKSegmentYCabin1Family);
322 lLHRBKKSegmentYCabin1Family);
329 FareFamily& lBKKSYDSegmentYCabin1Family =
330 FacBom<FareFamily>::instance().create (l1FareFamilyKey);
332 lBKKSYDSegmentYCabin1Family);
334 lBKKSYDSegmentYCabin1Family);
341 FareFamily& lLHRSYDSegmentYCabin1Family =
342 FacBom<FareFamily>::instance().create (l1FareFamilyKey);
344 lLHRSYDSegmentYCabin1Family);
346 lLHRSYDSegmentYCabin1Family);
357 BookingClassKey lQBookingClassKey (lQ);
359 BookingClass& lLHRBKKSegmentYCabin1FamilyQClass =
360 FacBom<BookingClass>::instance().create (lQBookingClassKey);
362 lLHRBKKSegmentYCabin1FamilyQClass);
364 lLHRBKKSegmentYCabin1FamilyQClass);
367 lLHRBKKSegmentYCabin1FamilyQClass);
369 lLHRBKKSegmentYCabin1FamilyQClass);
377 BookingClass& lBKKSYDSegmentYCabin1FamilyQClass =
378 FacBom<BookingClass>::instance().create (lQBookingClassKey);
380 lBKKSYDSegmentYCabin1FamilyQClass);
382 lBKKSYDSegmentYCabin1FamilyQClass);
385 lBKKSYDSegmentYCabin1FamilyQClass);
387 lBKKSYDSegmentYCabin1FamilyQClass);
395 BookingClass& lLHRSYDSegmentYCabin1FamilyQClass =
396 FacBom<BookingClass>::instance().create (lQBookingClassKey);
398 lLHRSYDSegmentYCabin1FamilyQClass);
400 lLHRSYDSegmentYCabin1FamilyQClass);
403 lLHRSYDSegmentYCabin1FamilyQClass);
405 lLHRSYDSegmentYCabin1FamilyQClass);
416 lDate =
Date_T (2011, 3, 20);
417 lFlightDateKey = FlightDateKey (lFlightNumber, lDate);
419 FlightDate& lAF084_20110320_FD =
420 FacBom<FlightDate>::instance().create (lFlightDateKey);
434 lSegmentDateKey = SegmentDateKey (lCDG, lSFO);
436 SegmentDate& lCDGSFOSegment =
437 FacBom<SegmentDate>::instance().create (lSegmentDateKey);
445 lCDGSFOSegment.setBoardingDate (lDate);
446 lCDGSFOSegment.setOffDate (lDate);
447 lCDGSFOSegment.setBoardingTime (l1040);
448 lCDGSFOSegment.setOffTime (l1250);
449 lCDGSFOSegment.setElapsedTime (l1110);
453 lLegDateKey = LegDateKey (lCDG);
455 LegDate& lCDGLeg = FacBom<LegDate>::instance().create (lLegDateKey);
460 lCDGLeg.setOffPoint (lSFO);
461 lCDGLeg.setBoardingDate (lDate);
462 lCDGLeg.setOffDate (lDate);
463 lCDGLeg.setBoardingTime (l1040);
464 lCDGLeg.setOffTime (l1250);
465 lCDGLeg.setElapsedTime (l1110);
477 SegmentCabin& lCDGSFOSegmentYCabin =
478 FacBom<SegmentCabin>::instance().create (lYSegmentCabinKey);
487 LegCabin& lCDGLegYCabin =
488 FacBom<LegCabin>::instance().create (lYLegCabinKey);
497 lCDGSFOSegmentYCabin.getFullerKey());
499 lCDGLegYCabin.getFullerKey());
504 FareFamily& lCDGSFOSegmentYCabin1Family =
505 FacBom<FareFamily>::instance().create (l1FareFamilyKey);
507 lCDGSFOSegmentYCabin1Family);
509 lCDGSFOSegmentYCabin1Family);
518 BookingClass& lCDGSFOSegmentYCabin1FamilyQClass =
519 FacBom<BookingClass>::instance().create (lQBookingClassKey);
521 lCDGSFOSegmentYCabin1FamilyQClass);
523 lCDGSFOSegmentYCabin1FamilyQClass);
526 lCDGSFOSegmentYCabin1FamilyQClass);
528 lCDGSFOSegmentYCabin1FamilyQClass);
541 const DoWStruct lDoWSrtuct (
"1111111");
542 const Date_T lBA9DateRangeStart (2010, boost::gregorian::Jun, 6);
543 const Date_T lBA9DateRangeEnd (2010, boost::gregorian::Jun, 7);
544 const DatePeriod_T lBA9DatePeriod (lBA9DateRangeStart, lBA9DateRangeEnd);
545 const PeriodStruct lBA9PeriodStruct (lBA9DatePeriod, lDoWSrtuct);
549 FlightPeriodKey lBA9FlightPeriodKey (lFlightNumber, lBA9PeriodStruct);
551 FlightPeriod& lBA9FlightPeriod =
552 FacBom<FlightPeriod>::instance().create (lBA9FlightPeriodKey);
559 SegmentPeriodKey lLHRSYDSegmentPeriodKey (lLHR, lSYD);
561 SegmentPeriod& lLHRSYDSegmentPeriod =
562 FacBom<SegmentPeriod>::instance().create (lLHRSYDSegmentPeriodKey);
566 lLHRSYDSegmentPeriod.setBoardingTime (l2135);
567 lLHRSYDSegmentPeriod.setOffTime (l1540);
568 lLHRSYDSegmentPeriod.setElapsedTime (l1105);
570 lLHRSYDSegmentPeriod.addCabinBookingClassList (lY,lYM);
575 const Date_T lAF84DateRangeStart (2011, boost::gregorian::Mar, 20);
576 const Date_T lAF84DateRangeEnd (2011, boost::gregorian::Mar, 21);
577 const DatePeriod_T lAF84DatePeriod (lAF84DateRangeStart, lAF84DateRangeEnd);
578 const PeriodStruct lAF84PeriodStruct (lAF84DatePeriod, lDoWSrtuct);
582 FlightPeriodKey lAF84FlightPeriodKey (lFlightNumber, lAF84PeriodStruct);
584 FlightPeriod& lAF84FlightPeriod =
585 FacBom<FlightPeriod>::instance().create (lAF84FlightPeriodKey);
592 SegmentPeriodKey lCDGSFOSegmentPeriodKey (lCDG, lSFO);
594 SegmentPeriod& lCDGSFOSegmentPeriod =
595 FacBom<SegmentPeriod>::instance().create (lCDGSFOSegmentPeriodKey);
599 lCDGSFOSegmentPeriod.setBoardingTime (l1040);
600 lCDGSFOSegmentPeriod.setOffTime (l1250);
601 lCDGSFOSegmentPeriod.setElapsedTime (l1110);
602 lCDGSFOSegmentPeriod.addCabinBookingClassList (lY,lYM);
609 OnDString_T lBALHRSYDOnDStr =
"BA;9,2010-Jun-06;LHR,SYD";
611 lBAOnDStrList.push_back (lBALHRSYDOnDStr);
613 OnDDateKey lBAOnDDateKey (lBAOnDStrList);
614 OnDDate& lBA_LHRSYD_OnDDate =
615 FacBom<OnDDate>::instance().create (lBAOnDDateKey);
625 const WTP_T lWTP750 = 750.0;
627 lBA_LHRSYD_OnDDate.setTotalForecast (lY, lWTP750Mean60StdDev6);
630 OnDString_T lAFLHRSYDOnDStr =
"AF;9,2011-Mar-20;CDG,SFO";
632 lAFOnDStrList.push_back (lAFLHRSYDOnDStr);
634 OnDDateKey lAFOnDDateKey (lAFOnDStrList);
635 OnDDate& lAF_LHRSYD_OnDDate =
636 FacBom<OnDDate>::instance().create (lAFOnDDateKey);
645 lAF_LHRSYD_OnDDate.setTotalForecast (lY, lWTP750Mean60StdDev6);
649 void CmdBomManager::buildCompleteDummyInventory (BomRoot& ioBomRoot) {
654 buildDummyInventory (ioBomRoot, lCapacity);
657 SegmentCabin& lDummySegmentCabin =
661 LegCabin& lDummyLegCabin =
672 BookingClass& lDummyBookingClass =
673 FacBom<BookingClass>::instance().create (lBCKey);
674 lDummyBookingClass.setYield (lYield);
675 lDummyBookingClass.setMean (lMean);
676 lDummyBookingClass.setStdDev (lStdDev);
680 VirtualClassStruct lDummyVirtualClass (lDummyBookingClass);
681 lDummyVirtualClass.setYield (lYield);
682 lDummyVirtualClass.setMean (lMean);
683 lDummyVirtualClass.setStdDev (lStdDev);
685 lDummyLegCabin.addVirtualClass (lDummyVirtualClass);
691 lDummyBookingClass.setYield (lYield);
692 lDummyBookingClass.setMean (lMean);
693 lDummyBookingClass.setStdDev (lStdDev);
697 lDummyVirtualClass.setYield (lYield);
698 lDummyVirtualClass.setMean (lMean);
699 lDummyVirtualClass.setStdDev (lStdDev);
701 lDummyLegCabin.addVirtualClass (lDummyVirtualClass);
707 lDummyBookingClass.setYield (lYield);
708 lDummyBookingClass.setMean (lMean);
709 lDummyBookingClass.setStdDev (lStdDev);
713 lDummyVirtualClass.setYield (lYield);
714 lDummyVirtualClass.setMean (lMean);
715 lDummyVirtualClass.setStdDev (lStdDev);
717 lDummyLegCabin.addVirtualClass (lDummyVirtualClass);
722 void CmdBomManager::buildDummyInventory (BomRoot& ioBomRoot,
726 Inventory& lInv = FacBom<Inventory>::instance().create (lInventoryKey);
732 FlightDate& lFlightDate =
733 FacBom<FlightDate>::instance().create (lFlightDateKey);
739 LegDate& lLeg = FacBom<LegDate>::instance().create (lLegDateKey);
753 LegCabin& lLegCabin = FacBom<LegCabin>::instance().create (lLegCabinKey);
757 lLegCabin.setCapacities (iCapacity);
758 lLegCabin.setAvailabilityPool (iCapacity);
762 SegmentDate& lSegment =
763 FacBom<SegmentDate>::instance().create (lSegmentDateKey);
774 lSegment.setBoardingTime (
Duration_T (14, 0, 0));
776 lSegment.setElapsedTime (
Duration_T (8, 0, 0));
780 SegmentCabin& lSegmentCabin =
781 FacBom<SegmentCabin>::instance().create (lSegmentCabinKey);
787 lSegmentCabin.getFullerKey());
789 lLegCabin.getFullerKey());
793 FareFamilyKey l1FareFamilyKey (l1);
795 FareFamily& lSegmentYCabin1Family =
796 FacBom<FareFamily>::instance().create (l1FareFamilyKey);
802 BookingClassKey lQBookingClassKey (lQ);
804 BookingClass& lSegmentYCabin1FamilyQClass =
805 FacBom<BookingClass>::instance().create (lQBookingClassKey);
807 lSegmentYCabin1FamilyQClass);
809 lSegmentYCabin1FamilyQClass);
821 const DoWStruct lDoWSrtuct (
"1111111");
824 const DatePeriod_T lXXDatePeriod (lXXDateRangeStart, lXXDateRangeEnd);
825 const PeriodStruct lXXPeriodStruct (lXXDatePeriod, lDoWSrtuct);
829 FlightPeriod& lXXFlightPeriod =
830 FacBom<FlightPeriod>::instance().create (lXXFlightPeriodKey);
839 SegmentPeriod& lXXSegmentPeriod =
840 FacBom<SegmentPeriod>::instance().create (lXXSegmentPeriodKey);
844 lXXSegmentPeriod.setBoardingTime (
Duration_T (14, 0, 0));
845 lXXSegmentPeriod.setOffTime (
Duration_T (16, 0, 0));
846 lXXSegmentPeriod.setElapsedTime (
Duration_T (8, 0, 0));
849 lXXSegmentPeriod.addCabinBookingClassList (lY,lYQ);
855 void CmdBomManager::buildSamplePricing (BomRoot& ioBomRoot) {
861 AirportPair& lAirportPair =
862 FacBom<AirportPair>::instance().create (lAirportPairKey);
867 const Date_T lDateRangeStart (2011, boost::gregorian::Jan, 15);
868 const Date_T lDateRangeEnd (2011, boost::gregorian::Dec, 31);
869 const DatePeriod_T lDateRange (lDateRangeStart, lDateRangeEnd);
870 const DatePeriodKey lDatePeriodKey (lDateRange);
873 DatePeriod& lDatePeriod =
874 FacBom<DatePeriod>::instance().create (lDatePeriodKey);
882 PosChannel& lPosChannel =
883 FacBom<PosChannel>::instance().create (lPosChannelKey);
888 const Time_T lTimeRangeStart (0, 0, 0);
889 const Time_T lTimeRangeEnd (23, 0, 0);
890 const TimePeriodKey lTimePeriodKey (lTimeRangeStart, lTimeRangeEnd);
893 TimePeriod& lTimePeriod =
894 FacBom<TimePeriod>::instance().create (lTimePeriodKey);
907 FareFeatures& lFareFeatures =
908 FacBom<FareFeatures>::instance().create (lFareFeaturesKey);
917 YieldFeatures& lYieldFeatures =
918 FacBom<YieldFeatures>::instance().create (lYieldFeaturesKey);
928 const AirlineClassListKey lAirlineClassListKey (lAirlineCodeList,
932 AirlineClassList& lAirlineClassList =
933 FacBom<AirlineClassList>::instance().create (lAirlineClassListKey);
935 lAirlineClassList.setFare (900);
940 lAirlineClassList.setYield (900);
952 ioTravelSolutionList.clear();
955 const std::string lBA9_SegmentDateKey (
"BA, 9, 2011-06-10, LHR, SYD, 21:45");
958 TravelSolutionStruct lTS;
959 lTS.addSegment (lBA9_SegmentDateKey);
962 ioTravelSolutionList.push_back (lTS);
970 ioTravelSolutionList.clear();
973 const std::string lBA9_SegmentDateKey (
"BA, 9, 2011-06-10, LHR, SYD, 21:45");
976 TravelSolutionStruct lTS;
977 lTS.addSegment (lBA9_SegmentDateKey);
985 const FareOptionStruct lFareOption (lClassPath, lFare, lChangeFee,
986 isNonRefundable, lSaturdayStay);
989 lTS.addFareOption (lFareOption);
995 const bool hasInsertBeenSuccessful = lClassAvailabilityMap.
996 insert (ClassAvailabilityMap_T::value_type (lClassPath, lAvl)).second;
997 assert (hasInsertBeenSuccessful ==
true);
999 lTS.addClassAvailabilityMap (lClassAvailabilityMap);
1002 ioTravelSolutionList.push_back (lTS);
1006 BookingRequestStruct CmdBomManager::buildSampleBookingRequest() {
1017 const Date_T lPreferredDepartureDate (2011, boost::gregorian::Jun, 10);
1020 const Duration_T lPreferredDepartureTime (8, 0, 0);
1023 const Date_T lRequestDate (2011, boost::gregorian::May, 15);
1029 const DateTime_T lRequestDateTime (lRequestDate, lRequestTime);
1057 BookingRequestStruct oBookingRequest (lOrigin, lDestination, lPOS,
1058 lPreferredDepartureDate,
1061 lPartySize, lChannel,
1062 lTripType, lStayDuration,
1064 lPreferredDepartureTime,
1065 lWTP, lValueOfTime);
1067 return oBookingRequest;
1071 BookingRequestStruct CmdBomManager::buildSampleBookingRequestForCRS() {
1082 const Date_T lPreferredDepartureDate (2010, boost::gregorian::Jan, 30);
1085 const Duration_T lPreferredDepartureTime (10, 0, 0);
1088 const Date_T lRequestDate (2010, boost::gregorian::Jan, 22);
1094 const DateTime_T lRequestDateTime (lRequestDate, lRequestTime);
1122 BookingRequestStruct oBookingRequest (lOrigin,
1125 lPreferredDepartureDate,
1128 lPartySize, lChannel,
1129 lTripType, lStayDuration,
1131 lPreferredDepartureTime,
1132 lWTP, lValueOfTime);
1134 return oBookingRequest;
1138 void CmdBomManager::buildPartnershipsSampleInventoryAndRM (BomRoot& ioBomRoot) {
1142 const InventoryKey lSQKey (
"SQ");
1143 Inventory& lSQInv = FacBom<Inventory>::instance().create (lSQKey);
1148 const InventoryKey lCXKey (
"CX");
1149 Inventory& lCXInv = FacBom<Inventory>::instance().create (lCXKey);
1158 Date_T lDate (2010, 2, 8);
1159 FlightDateKey lFlightDateKey (lFlightNumber, lDate);
1161 FlightDate& lSQ11_20100208_FD =
1162 FacBom<FlightDate>::instance().create (lFlightDateKey);
1169 FlightDateKey lMktFlightDateKey (lMktFlightNumber, lDate);
1171 FlightDate& lSQ1200_20100208_FD =
1172 FacBom<FlightDate>::instance().create (lMktFlightDateKey);
1188 SegmentDateKey lSegmentDateKey (lSIN, lBKK);
1190 SegmentDate& lSINBKKSegment =
1191 FacBom<SegmentDate>::instance().create (lSegmentDateKey);
1196 lSINBKKSegment.setBoardingDate (lDate);
1197 lSINBKKSegment.setOffDate (lDate);
1198 lSINBKKSegment.setBoardingTime (l0820);
1199 lSINBKKSegment.setOffTime (l1100);
1200 lSINBKKSegment.setElapsedTime (l0340);
1207 SegmentDateKey lMktSegmentDateKey (lBKK, lHKG);
1209 SegmentDate& lMktBKKHKGSegment =
1210 FacBom<SegmentDate>::instance().create (lMktSegmentDateKey);
1215 lMktBKKHKGSegment.setBoardingDate (lDate);
1216 lMktBKKHKGSegment.setOffDate (lDate);
1217 lMktBKKHKGSegment.setBoardingTime (l1200);
1218 lMktBKKHKGSegment.setOffTime (l1540);
1219 lMktBKKHKGSegment.setElapsedTime (l0240);
1223 LegDateKey lLegDateKey (lSIN);
1225 LegDate& lSINLeg = FacBom<LegDate>::instance().create (lLegDateKey);
1230 lSINLeg.setOffPoint (lBKK);
1231 lSINLeg.setBoardingDate (lDate);
1232 lSINLeg.setOffDate (lDate);
1233 lSINLeg.setBoardingTime (l0820);
1234 lSINLeg.setOffTime (l1100);
1235 lSINLeg.setElapsedTime (l0340);
1245 SegmentCabinKey lYSegmentCabinKey (lY);
1247 SegmentCabin& lSINBKKSegmentYCabin =
1248 FacBom<SegmentCabin>::instance().create (lYSegmentCabinKey);
1253 SegmentCabin& lMktBKKHKGSegmentYCabin =
1254 FacBom<SegmentCabin>::instance().create (lYSegmentCabinKey);
1261 LegCabinKey lYLegCabinKey (lY);
1263 LegCabin& lSINLegYCabin =
1264 FacBom<LegCabin>::instance().create (lYLegCabinKey);
1269 lSINLegYCabin.setCapacities (lCapacity);
1270 lSINLegYCabin.setAvailabilityPool (lCapacity);
1284 lSINBKKSegmentYCabin.getFullerKey());
1297 lSINLegYCabin.getFullerKey());
1303 FareFamilyKey l1FareFamilyKey (l1);
1305 FareFamily& lSINBKKSegmentYCabin1Family =
1306 FacBom<FareFamily>::instance().create (l1FareFamilyKey);
1308 lSINBKKSegmentYCabin1Family);
1310 lSINBKKSegmentYCabin1Family);
1313 FareFamily& lMktBKKHKGSegmentYCabin1Family =
1314 FacBom<FareFamily>::instance().create (l1FareFamilyKey);
1316 lMktBKKHKGSegmentYCabin1Family);
1318 lMktBKKHKGSegmentYCabin1Family);
1323 BookingClassKey lYBookingClassKey (lY);
1325 BookingClass& lSINBKKSegmentYCabin1FamilyYClass =
1326 FacBom<BookingClass>::instance().create (lYBookingClassKey);
1328 lSINBKKSegmentYCabin1FamilyYClass);
1330 lSINBKKSegmentYCabin1FamilyYClass);
1333 lSINBKKSegmentYCabin1FamilyYClass);
1335 lSINBKKSegmentYCabin1FamilyYClass);
1337 lSINBKKSegmentYCabin1FamilyYClass.setYield(700);
1341 BookingClass& lMktBKKHKGSegmentYCabin1FamilyYClass =
1342 FacBom<BookingClass>::instance().create (lYBookingClassKey);
1344 lMktBKKHKGSegmentYCabin1FamilyYClass);
1346 lMktBKKHKGSegmentYCabin1FamilyYClass);
1349 lMktBKKHKGSegmentYCabin1FamilyYClass);
1351 lMktBKKHKGSegmentYCabin1FamilyYClass);
1353 lMktBKKHKGSegmentYCabin1FamilyYClass.setYield(700);
1359 BookingClassKey lMBookingClassKey (lM);
1361 BookingClass& lSINBKKSegmentYCabin1FamilyMClass =
1362 FacBom<BookingClass>::instance().create (lMBookingClassKey);
1364 lSINBKKSegmentYCabin1FamilyMClass);
1366 lSINBKKSegmentYCabin1FamilyMClass);
1369 lSINBKKSegmentYCabin1FamilyMClass);
1371 lSINBKKSegmentYCabin1FamilyMClass);
1373 lSINBKKSegmentYCabin1FamilyMClass.setYield(500);
1377 BookingClass& lMktBKKHKGSegmentYCabin1FamilyMClass =
1378 FacBom<BookingClass>::instance().create (lMBookingClassKey);
1380 lMktBKKHKGSegmentYCabin1FamilyMClass);
1382 lMktBKKHKGSegmentYCabin1FamilyMClass);
1385 lMktBKKHKGSegmentYCabin1FamilyMClass);
1387 lMktBKKHKGSegmentYCabin1FamilyMClass);
1389 lMktBKKHKGSegmentYCabin1FamilyMClass.setYield(500);
1394 const InventoryKey lPartnerCXKey (
"CX");
1395 Inventory& lPartnerCXInv = FacBom<Inventory>::instance().create (lPartnerCXKey);
1401 lFlightDateKey = FlightDateKey (lFlightNumber, lDate);
1403 FlightDate& lPartnerCX12_20100208_FD =
1404 FacBom<FlightDate>::instance().create (lFlightDateKey);
1408 lFlightNumber = 1100;
1409 lMktFlightDateKey = FlightDateKey (lFlightNumber, lDate);
1411 FlightDate& lPartnerCX1100_20100208_FD =
1412 FacBom<FlightDate>::instance().create (lMktFlightDateKey);
1417 lSegmentDateKey = SegmentDateKey (lBKK, lHKG);
1419 SegmentDate& lPartnerBKKHKGSegment =
1420 FacBom<SegmentDate>::instance().create (lSegmentDateKey);
1424 lPartnerBKKHKGSegment.setBoardingDate (lDate);
1425 lPartnerBKKHKGSegment.setOffDate (lDate);
1426 lPartnerBKKHKGSegment.setBoardingTime (l1200);
1427 lPartnerBKKHKGSegment.setOffTime (l1540);
1428 lPartnerBKKHKGSegment.setElapsedTime (l0240);
1430 lMktSegmentDateKey = SegmentDateKey (lSIN, lBKK);
1432 SegmentDate& lPartnerMktSINBKKSegment =
1433 FacBom<SegmentDate>::instance().create (lMktSegmentDateKey);
1437 lPartnerMktSINBKKSegment.setBoardingDate (lDate);
1438 lPartnerMktSINBKKSegment.setOffDate (lDate);
1439 lPartnerMktSINBKKSegment.setBoardingTime (l0820);
1440 lPartnerMktSINBKKSegment.setOffTime (l1100);
1441 lPartnerMktSINBKKSegment.setElapsedTime (l0340);
1444 lLegDateKey = LegDateKey (lBKK);
1446 LegDate& lPartnerBKKLeg = FacBom<LegDate>::instance().create (lLegDateKey);
1450 lPartnerBKKLeg.setOffPoint (lHKG);
1451 lPartnerBKKLeg.setBoardingDate (lDate);
1452 lPartnerBKKLeg.setOffDate (lDate);
1453 lPartnerBKKLeg.setBoardingTime (l1200);
1454 lPartnerBKKLeg.setOffTime (l1540);
1455 lPartnerBKKLeg.setElapsedTime (l0240);
1462 SegmentCabin& lPartnerBKKHKGSegmentYCabin =
1463 FacBom<SegmentCabin>::instance().create (lYSegmentCabinKey);
1467 SegmentCabin& lPartnerMktSINBKKSegmentYCabin =
1468 FacBom<SegmentCabin>::instance().create (lYSegmentCabinKey);
1474 LegCabin& lPartnerBKKLegYCabin =
1475 FacBom<LegCabin>::instance().create (lYLegCabinKey);
1480 lPartnerBKKLegYCabin.setCapacities (lCapacity);
1481 lPartnerBKKLegYCabin.setAvailabilityPool (lCapacity);
1484 lPartnerBKKHKGSegmentYCabin.getFullerKey());
1486 lPartnerBKKLegYCabin.getFullerKey());
1490 FareFamily& lPartnerBKKHKGSegmentYCabin1Family =
1491 FacBom<FareFamily>::instance().create (l1FareFamilyKey);
1493 lPartnerBKKHKGSegmentYCabin1Family);
1495 lPartnerBKKHKGSegmentYCabin1Family);
1497 FareFamily& lPartnerMktSINBKKSegmentYCabin1Family =
1498 FacBom<FareFamily>::instance().create (l1FareFamilyKey);
1500 lPartnerMktSINBKKSegmentYCabin1Family);
1502 lPartnerMktSINBKKSegmentYCabin1Family);
1506 BookingClass& lPartnerBKKHKGSegmentYCabin1FamilyYClass =
1507 FacBom<BookingClass>::instance().create (lYBookingClassKey);
1509 lPartnerBKKHKGSegmentYCabin1FamilyYClass);
1511 lPartnerBKKHKGSegmentYCabin1FamilyYClass);
1514 lPartnerBKKHKGSegmentYCabin1FamilyYClass);
1516 lPartnerBKKHKGSegmentYCabin1FamilyYClass);
1518 BookingClass& lPartnerMktSINBKKSegmentYCabin1FamilyYClass =
1519 FacBom<BookingClass>::instance().create (lYBookingClassKey);
1521 lPartnerMktSINBKKSegmentYCabin1FamilyYClass);
1523 lPartnerMktSINBKKSegmentYCabin1FamilyYClass);
1526 lPartnerMktSINBKKSegmentYCabin1FamilyYClass);
1528 lPartnerMktSINBKKSegmentYCabin1FamilyYClass);
1530 BookingClass& lPartnerBKKHKGSegmentYCabin1FamilyMClass =
1531 FacBom<BookingClass>::instance().create (lMBookingClassKey);
1533 lPartnerBKKHKGSegmentYCabin1FamilyMClass);
1535 lPartnerBKKHKGSegmentYCabin1FamilyMClass);
1538 lPartnerBKKHKGSegmentYCabin1FamilyMClass);
1540 lPartnerBKKHKGSegmentYCabin1FamilyMClass);
1542 BookingClass& lPartnerMktSINBKKSegmentYCabin1FamilyMClass =
1543 FacBom<BookingClass>::instance().create (lMBookingClassKey);
1545 lPartnerMktSINBKKSegmentYCabin1FamilyMClass);
1547 lPartnerMktSINBKKSegmentYCabin1FamilyMClass);
1550 lPartnerMktSINBKKSegmentYCabin1FamilyMClass);
1552 lPartnerMktSINBKKSegmentYCabin1FamilyMClass);
1558 lMktBKKHKGSegment.linkWithOperating (lPartnerBKKHKGSegment);
1564 OnDString_T lSQSINBKKOnDStr =
"SQ;11,2010-Feb-08;SIN,BKK";
1565 OnDString_T lMktSQBKKHKGOnDStr =
"SQ;1200,2010-Feb-08;BKK,HKG";
1567 lOnDStringList.push_back (lSQSINBKKOnDStr);
1568 lOnDStringList.push_back (lMktSQBKKHKGOnDStr);
1570 OnDDateKey lOnDDateKey (lOnDStringList);
1571 OnDDate& lSQ_SINHKG_OnDDate =
1572 FacBom<OnDDate>::instance().create (lOnDDateKey);
1583 const WTP_T lWTP750 = 750.0;
1585 lSQ_SINHKG_OnDDate.setTotalForecast (lY, lWTP750Mean60StdDev6);
1594 lCabinClassPairList.push_back(lCC_YM1);
1595 lCabinClassPairList.push_back(lCC_YM2);
1597 const Yield_T lYield850 = 850.0;
1599 lSQ_SINHKG_OnDDate.setDemandInformation (lCabinClassPairList, lYield850Mean20StdDev2);
1603 lCabinClassPairList.clear();
1604 lCabinClassPairList.push_back(lCC_YY1);
1605 lCabinClassPairList.push_back(lCC_YY2);
1607 const Yield_T lYield1200 = 1200.0;
1609 lSQ_SINHKG_OnDDate.setDemandInformation (lCabinClassPairList, lYield1200Mean10StdDev1);
1612 lOnDStringList.clear();
1613 lOnDStringList.push_back (lSQSINBKKOnDStr);
1615 lOnDDateKey = OnDDateKey(lOnDStringList);
1616 OnDDate& lSQ_SINBKK_OnDDate =
1617 FacBom<OnDDate>::instance().create (lOnDDateKey);
1626 const WTP_T lWTP400 = 400.0;
1628 lSQ_SINBKK_OnDDate.setTotalForecast (lY, lWTP400Mean60StdDev6);
1631 lCabinClassPairList.clear();
1632 lCabinClassPairList.push_back(lCC_YM1);
1634 const Yield_T lYield500 = 500.0;
1636 lSQ_SINBKK_OnDDate.setDemandInformation (lCabinClassPairList, lYield500Mean20StdDev1);
1638 lCabinClassPairList.clear();
1639 lCabinClassPairList.push_back(lCC_YY1);
1640 const Yield_T lYield700 = 700.0;
1642 lSQ_SINBKK_OnDDate.setDemandInformation (lCabinClassPairList, lYield700Mean20StdDev1);
1672 lFlightDateKey = FlightDateKey (lFlightNumber, lDate);
1674 FlightDate& lCX12_20100208_FD =
1675 FacBom<FlightDate>::instance().create (lFlightDateKey);
1680 lFlightNumber = 1100;
1682 lMktFlightDateKey = FlightDateKey (lFlightNumber, lDate);
1684 FlightDate& lCX1100_20100208_FD =
1685 FacBom<FlightDate>::instance().create (lMktFlightDateKey);
1695 lSegmentDateKey = SegmentDateKey (lBKK, lHKG);
1697 SegmentDate& lBKKHKGSegment =
1698 FacBom<SegmentDate>::instance().create (lSegmentDateKey);
1703 lBKKHKGSegment.setBoardingDate (lDate);
1704 lBKKHKGSegment.setOffDate (lDate);
1705 lBKKHKGSegment.setBoardingTime (l1200);
1706 lBKKHKGSegment.setOffTime (l1540);
1707 lBKKHKGSegment.setElapsedTime (l0240);
1710 lMktSegmentDateKey = SegmentDateKey (lSIN, lBKK);
1712 SegmentDate& lMktSINBKKSegment =
1713 FacBom<SegmentDate>::instance().create (lMktSegmentDateKey);
1718 lMktSINBKKSegment.setBoardingDate (lDate);
1719 lMktSINBKKSegment.setOffDate (lDate);
1720 lMktSINBKKSegment.setBoardingTime (l0820);
1721 lMktSINBKKSegment.setOffTime (l1100);
1722 lMktSINBKKSegment.setElapsedTime (l0340);
1726 lLegDateKey = LegDateKey (lBKK);
1728 LegDate& lBKKLeg = FacBom<LegDate>::instance().create (lLegDateKey);
1733 lBKKLeg.setOffPoint (lHKG);
1734 lBKKLeg.setBoardingDate (lDate);
1735 lBKKLeg.setOffDate (lDate);
1736 lBKKLeg.setBoardingTime (l1200);
1737 lBKKLeg.setOffTime (l1540);
1738 lBKKLeg.setElapsedTime (l0240);
1749 SegmentCabin& lBKKHKGSegmentYCabin =
1750 FacBom<SegmentCabin>::instance().create (lYSegmentCabinKey);
1755 SegmentCabin& lMktSINBKKSegmentYCabin =
1756 FacBom<SegmentCabin>::instance().create (lYSegmentCabinKey);
1762 LegCabin& lBKKLegYCabin =
1763 FacBom<LegCabin>::instance().create (lYLegCabinKey);
1768 lBKKLegYCabin.setCapacities (lCapacity);
1769 lBKKLegYCabin.setAvailabilityPool (lCapacity);
1773 lBKKHKGSegmentYCabin.getFullerKey());
1775 lBKKLegYCabin.getFullerKey());
1779 FareFamily& lBKKHKGSegmentYCabin1Family =
1780 FacBom<FareFamily>::instance().create (l1FareFamilyKey);
1782 lBKKHKGSegmentYCabin1Family);
1784 lBKKHKGSegmentYCabin1Family);
1787 FareFamily& lMktSINBKKSegmentYCabin1Family =
1788 FacBom<FareFamily>::instance().create (l1FareFamilyKey);
1790 lMktSINBKKSegmentYCabin1Family);
1792 lMktSINBKKSegmentYCabin1Family);
1798 BookingClass& lBKKHKGSegmentYCabin1FamilyYClass =
1799 FacBom<BookingClass>::instance().create (lYBookingClassKey);
1801 lBKKHKGSegmentYCabin1FamilyYClass);
1803 lBKKHKGSegmentYCabin1FamilyYClass);
1806 lBKKHKGSegmentYCabin1FamilyYClass);
1808 lBKKHKGSegmentYCabin1FamilyYClass);
1810 lBKKHKGSegmentYCabin1FamilyYClass.setYield(700);
1814 BookingClass& lMktSINBKKSegmentYCabin1FamilyYClass =
1815 FacBom<BookingClass>::instance().create (lYBookingClassKey);
1817 lMktSINBKKSegmentYCabin1FamilyYClass);
1819 lMktSINBKKSegmentYCabin1FamilyYClass);
1822 lMktSINBKKSegmentYCabin1FamilyYClass);
1824 lMktSINBKKSegmentYCabin1FamilyYClass);
1826 lMktSINBKKSegmentYCabin1FamilyYClass.setYield(700);
1830 BookingClass& lBKKHKGSegmentYCabin1FamilyMClass =
1831 FacBom<BookingClass>::instance().create (lMBookingClassKey);
1833 lBKKHKGSegmentYCabin1FamilyMClass);
1835 lBKKHKGSegmentYCabin1FamilyMClass);
1838 lBKKHKGSegmentYCabin1FamilyMClass);
1840 lBKKHKGSegmentYCabin1FamilyMClass);
1842 lBKKHKGSegmentYCabin1FamilyMClass.setYield(500);
1846 BookingClass& lMktSINBKKSegmentYCabin1FamilyMClass =
1847 FacBom<BookingClass>::instance().create (lMBookingClassKey);
1849 lMktSINBKKSegmentYCabin1FamilyMClass);
1851 lMktSINBKKSegmentYCabin1FamilyMClass);
1854 lMktSINBKKSegmentYCabin1FamilyMClass);
1856 lMktSINBKKSegmentYCabin1FamilyMClass);
1858 lMktSINBKKSegmentYCabin1FamilyMClass.setYield(500);
1863 const InventoryKey lPartnerSQKey (
"SQ");
1864 Inventory& lPartnerSQInv = FacBom<Inventory>::instance().create (lPartnerSQKey);
1870 lFlightDateKey = FlightDateKey (lFlightNumber, lDate);
1872 FlightDate& lPartnerSQ11_20100208_FD =
1873 FacBom<FlightDate>::instance().create (lFlightDateKey);
1877 lFlightNumber = 1200;
1878 lMktFlightDateKey = FlightDateKey (lFlightNumber, lDate);
1880 FlightDate& lPartnerSQ1200_20100208_FD =
1881 FacBom<FlightDate>::instance().create (lMktFlightDateKey);
1886 lSegmentDateKey = SegmentDateKey (lSIN, lBKK);
1888 SegmentDate& lPartnerSINBKKSegment =
1889 FacBom<SegmentDate>::instance().create (lSegmentDateKey);
1893 lPartnerSINBKKSegment.setBoardingDate (lDate);
1894 lPartnerSINBKKSegment.setOffDate (lDate);
1895 lPartnerSINBKKSegment.setBoardingTime (l0820);
1896 lPartnerSINBKKSegment.setOffTime (l1100);
1897 lPartnerSINBKKSegment.setElapsedTime (l0340);
1899 lMktSegmentDateKey = SegmentDateKey (lBKK, lHKG);
1901 SegmentDate& lPartnerMktBKKHKGSegment =
1902 FacBom<SegmentDate>::instance().create (lMktSegmentDateKey);
1906 lPartnerMktBKKHKGSegment.setBoardingDate (lDate);
1907 lPartnerMktBKKHKGSegment.setOffDate (lDate);
1908 lPartnerMktBKKHKGSegment.setBoardingTime (l1200);
1909 lPartnerMktBKKHKGSegment.setOffTime (l1540);
1910 lPartnerMktBKKHKGSegment.setElapsedTime (l0240);
1913 lLegDateKey = LegDateKey (lSIN);
1915 LegDate& lPartnerSINLeg = FacBom<LegDate>::instance().create (lLegDateKey);
1919 lPartnerSINLeg.setOffPoint (lBKK);
1920 lPartnerSINLeg.setBoardingDate (lDate);
1921 lPartnerSINLeg.setOffDate (lDate);
1922 lPartnerSINLeg.setBoardingTime (l0820);
1923 lPartnerSINLeg.setOffTime (l1100);
1924 lPartnerSINLeg.setElapsedTime (l0340);
1931 SegmentCabin& lPartnerSINBKKSegmentYCabin =
1932 FacBom<SegmentCabin>::instance().create (lYSegmentCabinKey);
1936 SegmentCabin& lPartnerMktBKKHKGSegmentYCabin =
1937 FacBom<SegmentCabin>::instance().create (lYSegmentCabinKey);
1943 LegCabin& lPartnerSINLegYCabin =
1944 FacBom<LegCabin>::instance().create (lYLegCabinKey);
1949 lPartnerSINLegYCabin.setCapacities (lCapacity);
1950 lPartnerSINLegYCabin.setAvailabilityPool (lCapacity);
1953 lPartnerSINBKKSegmentYCabin.getFullerKey());
1955 lPartnerSINLegYCabin.getFullerKey());
1959 FareFamily& lPartnerSINBKKSegmentYCabin1Family =
1960 FacBom<FareFamily>::instance().create (l1FareFamilyKey);
1962 lPartnerSINBKKSegmentYCabin1Family);
1964 lPartnerSINBKKSegmentYCabin1Family);
1966 FareFamily& lPartnerMktBKKHKGSegmentYCabin1Family =
1967 FacBom<FareFamily>::instance().create (l1FareFamilyKey);
1969 lPartnerMktBKKHKGSegmentYCabin1Family);
1971 lPartnerMktBKKHKGSegmentYCabin1Family);
1976 BookingClass& lPartnerSINBKKSegmentYCabin1FamilyYClass =
1977 FacBom<BookingClass>::instance().create (lYBookingClassKey);
1979 lPartnerSINBKKSegmentYCabin1FamilyYClass);
1981 lPartnerSINBKKSegmentYCabin1FamilyYClass);
1984 lPartnerSINBKKSegmentYCabin1FamilyYClass);
1986 lPartnerSINBKKSegmentYCabin1FamilyYClass);
1988 BookingClass& lPartnerMktBKKHKGSegmentYCabin1FamilyYClass =
1989 FacBom<BookingClass>::instance().create (lYBookingClassKey);
1991 lPartnerMktBKKHKGSegmentYCabin1FamilyYClass);
1993 lPartnerMktBKKHKGSegmentYCabin1FamilyYClass);
1996 lPartnerMktBKKHKGSegmentYCabin1FamilyYClass);
1998 lPartnerMktBKKHKGSegmentYCabin1FamilyYClass);
2000 BookingClass& lPartnerSINBKKSegmentYCabin1FamilyMClass =
2001 FacBom<BookingClass>::instance().create (lMBookingClassKey);
2003 lPartnerSINBKKSegmentYCabin1FamilyMClass);
2005 lPartnerSINBKKSegmentYCabin1FamilyMClass);
2008 lPartnerSINBKKSegmentYCabin1FamilyMClass);
2010 lPartnerSINBKKSegmentYCabin1FamilyMClass);
2012 BookingClass& lPartnerMktBKKHKGSegmentYCabin1FamilyMClass =
2013 FacBom<BookingClass>::instance().create (lMBookingClassKey);
2015 lPartnerMktBKKHKGSegmentYCabin1FamilyMClass);
2017 lPartnerMktBKKHKGSegmentYCabin1FamilyMClass);
2020 lPartnerMktBKKHKGSegmentYCabin1FamilyMClass);
2022 lPartnerMktBKKHKGSegmentYCabin1FamilyMClass);
2027 lMktSINBKKSegment.linkWithOperating (lPartnerSINBKKSegment);
2033 OnDString_T lMktCXSINBKKOnDStr =
"CX;1100,2010-Feb-08;SIN,BKK";
2034 OnDString_T lCXBKKHKGOnDStr =
"CX;12,2010-Feb-08;BKK,HKG";
2035 lOnDStringList.clear();
2036 lOnDStringList.push_back (lMktCXSINBKKOnDStr);
2037 lOnDStringList.push_back (lCXBKKHKGOnDStr);
2039 lOnDDateKey = OnDDateKey(lOnDStringList);
2040 OnDDate& lCX_SINHKG_OnDDate =
2041 FacBom<OnDDate>::instance().create (lOnDDateKey);
2051 lCX_SINHKG_OnDDate.setTotalForecast (lY, lWTP750Mean60StdDev6);
2054 lCabinClassPairList.clear();
2055 lCabinClassPairList.push_back(lCC_YM1);
2056 lCabinClassPairList.push_back(lCC_YM2);
2057 lCX_SINHKG_OnDDate.setDemandInformation (lCabinClassPairList, lYield850Mean20StdDev2);
2059 lCabinClassPairList.clear();
2060 lCabinClassPairList.push_back(lCC_YY1);
2061 lCabinClassPairList.push_back(lCC_YY2);
2062 lCX_SINHKG_OnDDate.setDemandInformation (lCabinClassPairList, lYield1200Mean10StdDev1);
2087 lOnDStringList.clear();
2088 lOnDStringList.push_back (lCXBKKHKGOnDStr);
2090 lOnDDateKey = OnDDateKey(lOnDStringList);
2091 OnDDate& lCX_BKKHKG_OnDDate =
2092 FacBom<OnDDate>::instance().create (lOnDDateKey);
2101 lCX_BKKHKG_OnDDate.setTotalForecast (lY, lWTP400Mean60StdDev6);
2104 lCabinClassPairList.clear();
2105 lCabinClassPairList.push_back(lCC_YM2);
2106 lCX_BKKHKG_OnDDate.setDemandInformation (lCabinClassPairList, lYield500Mean20StdDev1);
2108 lCabinClassPairList.clear();
2109 lCabinClassPairList.push_back(lCC_YY2);
2111 lCX_BKKHKG_OnDDate.setDemandInformation (lCabinClassPairList, lYield700Mean10StdDev1);
2120 const DoWStruct lDoWSrtuct (
"1111111");
2121 const Date_T lDateRangeStart (2010, boost::gregorian::Feb, 8);
2122 const Date_T lDateRangeEnd (2010, boost::gregorian::Feb, 9);
2123 const DatePeriod_T lDatePeriod (lDateRangeStart, lDateRangeEnd);
2124 const PeriodStruct lPeriodStruct (lDatePeriod,lDoWSrtuct);
2128 FlightPeriodKey lFlightPeriodKey (lFlightNumber, lPeriodStruct);
2130 FlightPeriod& lSQ11FlightPeriod =
2131 FacBom<FlightPeriod>::instance().create (lFlightPeriodKey);
2138 SegmentPeriodKey lSegmentPeriodKey (lSIN, lBKK);
2140 SegmentPeriod& lSINBKKSegmentPeriod =
2141 FacBom<SegmentPeriod>::instance().create (lSegmentPeriodKey);
2145 lSINBKKSegmentPeriod.setBoardingTime (l0820);
2146 lSINBKKSegmentPeriod.setOffTime (l1100);
2147 lSINBKKSegmentPeriod.setElapsedTime (l0340);
2149 lSINBKKSegmentPeriod.addCabinBookingClassList (lY,lYM);
2156 lFlightPeriodKey = FlightPeriodKey(lFlightNumber, lPeriodStruct);
2158 FlightPeriod& lCX12FlightPeriod =
2159 FacBom<FlightPeriod>::instance().create (lFlightPeriodKey);
2166 lSegmentPeriodKey = SegmentPeriodKey (lBKK, lHKG);
2168 SegmentPeriod& lBKKHKGSegmentPeriod =
2169 FacBom<SegmentPeriod>::instance().create (lSegmentPeriodKey);
2173 lBKKHKGSegmentPeriod.setBoardingTime (l1200);
2174 lBKKHKGSegmentPeriod.setOffTime (l1540);
2175 lBKKHKGSegmentPeriod.setElapsedTime (l0240);
2176 lBKKHKGSegmentPeriod.addCabinBookingClassList (lY,lYM);
2181 void CmdBomManager::buildPartnershipsSamplePricing (BomRoot& ioBomRoot) {
2188 AirportPairKey lAirportPairKey (
"SIN",
"BKK");
2191 AirportPair& lSINBKKAirportPair =
2192 FacBom<AirportPair>::instance().create (lAirportPairKey);
2197 const Date_T lDateRangeStart (2010, boost::gregorian::Jan, 15);
2198 const Date_T lDateRangeEnd (2010, boost::gregorian::Dec, 31);
2199 const DatePeriod_T lDateRange (lDateRangeStart, lDateRangeEnd);
2200 const DatePeriodKey lDatePeriodKey (lDateRange);
2203 DatePeriod& lSINBKKDatePeriod =
2204 FacBom<DatePeriod>::instance().create (lDatePeriodKey);
2209 PosChannelKey lPosChannelKey (
"SIN",
"IN");
2212 PosChannel& lSINPosChannel =
2213 FacBom<PosChannel>::instance().create (lPosChannelKey);
2218 const Time_T lTimeRangeStart (0, 0, 0);
2219 const Time_T lTimeRangeEnd (23, 0, 0);
2220 const TimePeriodKey lFareTimePeriodKey (lTimeRangeStart,
2224 TimePeriod& lSINBKKFareTimePeriod =
2225 FacBom<TimePeriod>::instance().create (lFareTimePeriodKey);
2238 FareFeatures& lSINBKKFareFeatures =
2239 FacBom<FareFeatures>::instance().create (lFareFeaturesKey);
2245 lSQAirlineCodeList.push_back (
"SQ");
2248 lYClassCodeList.push_back (
"Y");
2249 const AirlineClassListKey lSQAirlineYClassListKey (lSQAirlineCodeList,
2253 lMClassCodeList.push_back (
"M");
2254 const AirlineClassListKey lSQAirlineMClassListKey (lSQAirlineCodeList,
2258 AirlineClassList& lSQAirlineYClassList =
2259 FacBom<AirlineClassList>::instance().create (lSQAirlineYClassListKey);
2260 lSQAirlineYClassList.setFare(700);
2264 AirlineClassList& lSQAirlineMClassList =
2265 FacBom<AirlineClassList>::instance().create (lSQAirlineMClassListKey);
2266 lSQAirlineMClassList.setFare(500);
2273 lAirportPairKey = AirportPairKey (
"BKK",
"HKG");
2276 AirportPair& lBKKHKGAirportPair =
2277 FacBom<AirportPair>::instance().create (lAirportPairKey);
2285 DatePeriod& lBKKHKGDatePeriod =
2286 FacBom<DatePeriod>::instance().create (lDatePeriodKey);
2291 lPosChannelKey = PosChannelKey(
"BKK",
"IN");
2294 PosChannel& lBKKPosChannel =
2295 FacBom<PosChannel>::instance().create (lPosChannelKey);
2303 TimePeriod& lBKKHKGFareTimePeriod =
2304 FacBom<TimePeriod>::instance().create (lFareTimePeriodKey);
2312 FareFeatures& lBKKHKGFareFeatures =
2313 FacBom<FareFeatures>::instance().create (lFareFeaturesKey);
2319 lCXAirlineCodeList.push_back (
"CX");
2321 const AirlineClassListKey lCXAirlineYClassListKey (lCXAirlineCodeList,
2324 const AirlineClassListKey lCXAirlineMClassListKey (lCXAirlineCodeList,
2328 AirlineClassList& lCXAirlineYClassList =
2329 FacBom<AirlineClassList>::instance().create (lCXAirlineYClassListKey);
2330 lCXAirlineYClassList.setFare(700);
2334 AirlineClassList& lCXAirlineMClassList =
2335 FacBom<AirlineClassList>::instance().create (lCXAirlineMClassListKey);
2336 lCXAirlineMClassList.setFare(500);
2343 lAirportPairKey = AirportPairKey (
"SIN",
"HKG");
2346 AirportPair& lSINHKGAirportPair =
2347 FacBom<AirportPair>::instance().create (lAirportPairKey);
2355 DatePeriod& lSINHKGDatePeriod =
2356 FacBom<DatePeriod>::instance().create (lDatePeriodKey);
2361 lPosChannelKey = PosChannelKey(
"SIN",
"IN");
2364 PosChannel& lOnDSINPosChannel =
2365 FacBom<PosChannel>::instance().create (lPosChannelKey);
2373 TimePeriod& lSINHKGFareTimePeriod =
2374 FacBom<TimePeriod>::instance().create (lFareTimePeriodKey);
2382 FareFeatures& lSINHKGFareFeatures =
2383 FacBom<FareFeatures>::instance().create (lFareFeaturesKey);
2389 lSQ_CXAirlineCodeList.push_back (
"SQ");
2390 lSQ_CXAirlineCodeList.push_back (
"CX");
2393 lY_YClassCodeList.push_back (
"Y");
2394 lY_YClassCodeList.push_back (
"Y");
2395 const AirlineClassListKey lSQ_CXAirlineYClassListKey (lSQ_CXAirlineCodeList,
2399 lM_MClassCodeList.push_back (
"M");
2400 lM_MClassCodeList.push_back (
"M");
2401 const AirlineClassListKey lSQ_CXAirlineMClassListKey (lSQ_CXAirlineCodeList,
2405 AirlineClassList& lSQ_CXAirlineYClassList =
2406 FacBom<AirlineClassList>::instance().create (lSQ_CXAirlineYClassListKey);
2407 lSQ_CXAirlineYClassList.setFare(1200);
2411 AirlineClassList& lSQ_CXAirlineMClassList =
2412 FacBom<AirlineClassList>::instance().create (lSQ_CXAirlineMClassListKey);
2413 lSQ_CXAirlineMClassList.setFare(850);
2428 PosChannel& lRAC_SINBKKPosChannel =
2429 FacBom<PosChannel>::instance().create (lPosChannelKey);
2434 const TimePeriodKey lYieldTimePeriodKey (lTimeRangeStart,
2438 TimePeriod& lSINBKKYieldTimePeriod =
2439 FacBom<TimePeriod>::instance().create (lYieldTimePeriodKey);
2448 YieldFeatures& lSINBKKYieldFeatures =
2449 FacBom<YieldFeatures>::instance().create (lYieldFeaturesKey);
2457 AirlineClassList& lRAC_SQAirlineYClassList =
2458 FacBom<AirlineClassList>::instance().create (lSQAirlineYClassListKey);
2459 lRAC_SQAirlineYClassList.setYield(700);
2463 AirlineClassList& lRAC_SQAirlineMClassList =
2464 FacBom<AirlineClassList>::instance().create (lSQAirlineMClassListKey);
2465 lRAC_SQAirlineMClassList.setYield(500);
2477 PosChannel& lRAC_BKKHKGPosChannel =
2478 FacBom<PosChannel>::instance().create (lPosChannelKey);
2486 TimePeriod& lBKKHKGYieldTimePeriod =
2487 FacBom<TimePeriod>::instance().create (lYieldTimePeriodKey);
2495 YieldFeatures& lBKKHKGYieldFeatures =
2496 FacBom<YieldFeatures>::instance().create (lYieldFeaturesKey);
2504 AirlineClassList& lRAC_CXAirlineYClassList =
2505 FacBom<AirlineClassList>::instance().create (lCXAirlineYClassListKey);
2506 lRAC_CXAirlineYClassList.setYield(700);
2510 AirlineClassList& lRAC_CXAirlineMClassList =
2511 FacBom<AirlineClassList>::instance().create (lCXAirlineMClassListKey);
2512 lRAC_CXAirlineMClassList.setYield(500);
2524 PosChannel& lRAC_SINHKGChannel =
2525 FacBom<PosChannel>::instance().create (lPosChannelKey);
2533 TimePeriod& lSINHKGYieldTimePeriod =
2534 FacBom<TimePeriod>::instance().create (lYieldTimePeriodKey);
2542 YieldFeatures& lSINHKGYieldFeatures =
2543 FacBom<YieldFeatures>::instance().create (lYieldFeaturesKey);
2551 AirlineClassList& lRAC_SQ_CXAirlineYClassList =
2552 FacBom<AirlineClassList>::instance().create (lSQ_CXAirlineYClassListKey);
2553 lRAC_SQ_CXAirlineYClassList.setYield(1200);
2557 AirlineClassList& lRAC_SQ_CXAirlineMClassList =
2558 FacBom<AirlineClassList>::instance().create (lSQ_CXAirlineMClassListKey);
2559 lRAC_SQ_CXAirlineMClassList.setYield(850);