Sophie

Sophie

distrib > Fedora > 18 > i386 > by-pkgid > c3d74e728f0eb23a7aa41caaeb74521a > files > 539

simfqt-doc-1.00.0-2.fc18.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
		  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
	<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
	<meta name="robots" content="index,follow"/>
	<title>Tutorials</title>
	<link rel="shortcut icon" href="favicon.ico">
	<link href="tabs.css" rel="stylesheet" type="text/css"/>
	<link href="simfqt.css" rel="stylesheet" type="text/css"/>
	<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
	<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
	<script type="text/javascript">
	  var _gaq = _gaq || [];
	  _gaq.push(['_setAccount', 'UA-25242815-1']);
	  _gaq.push(['_setDomainName', 'none']);
	  _gaq.push(['_setAllowLinker', true]);
	  _gaq.push(['_trackPageview']);
	  (function() {
      var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
      ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
      var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
	  })();
	</script>
	<script type="text/javascript"
			src="https://apis.google.com/js/plusone.js"></script>
  </head>
  <body>
	<div id="top"><!-- do not remove this div! -->
	  <div id="titlearea">
		<table width="100%">
		  <tbody>
			<tr style="height: 56px;">
			  <td style="padding-left: 0.5em;">
				<div id="projectname"><a href="http://simfqt.sourceforge.net"><img height="45px" alt="SimFQT Logo" src="simfqt_logo.png"></a>
				  &#160;<span id="projectnumber">1.00.0</span>
				</div>
				<div id="projectbrief">C++ Simulated Fare Quote System Library</div>
			  </td>
			  <!-- begin SOURCEFORGE_CUSTOM-->
			  <td>
				<div id="sflogo"><a href="http://simfqt.sourceforge.net"><img height="45px" alt="SourceForge Logo" src="sfx_logo.png"></a></div>
			  </td>
			  <!-- end SOURCEFORGE_CUSTOM-->
			</tr>
		  </tbody>
		</table>
	  </div>
<!-- Generated by Doxygen 1.8.3.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('tutorials.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">Tutorials </div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><h1><a class="anchor" id="tut_toc"></a>
Table of Contents</h1>
<ul>
<li><a class="el" href="tutorials.html#tut_configuration">Preparing the SimFQT Project for Development</a></li>
<li><a class="el" href="tutorials.html#tut_procedure">Your first fareQuote</a><ul>
<li><a class="el" href="tutorials.html#tut_procedure_summary">Summary of the different steps</a></li>
<li><a class="el" href="tutorials.html#tut_procedure_results">Result of the Batch Program</a></li>
</ul>
</li>
<li><a class="el" href="tutorials.html#tut_how_fare_quoting_file">Fare quoting with an input file</a><ul>
<li><a class="el" href="tutorials.html#tut_how_build_fare_file">How to build a fare input file?</a></li>
<li><a class="el" href="tutorials.html#tut_how_fare_quoting">Building the BOM tree with an input file</a></li>
<li><a class="el" href="tutorials.html#tut_how_fare_quoting_result">Result of the Batch Program</a></li>
</ul>
</li>
</ul>
<h1><a class="anchor" id="tut_configuration"></a>
Preparing the SimFQT Project for Development</h1>
<p>The source code for these examples can be found in the <code>batches</code> and <code>test/simfqt</code> directories. They are compiled along with the rest of the <code>SimFQT</code> project. See the <a class="el" href="users_guide.html">Users Guide</a> for more details on how to build the <code>SimFQT</code> project.</p>
<h1><a class="anchor" id="tut_procedure"></a>
Your first fareQuote</h1>
<h2><a class="anchor" id="tut_procedure_summary"></a>
Summary of the different steps</h2>
<p>All the steps below can be found in the same order in the batch <code><a class="el" href="simfqt_8cpp.html">simfqt.cpp</a></code> program.</p>
<p>First, we instanciate the simfqtService object:</p>
 <div class="fragment"><div class="line">  std::ofstream logOutputFile;</div>
<div class="line">  <span class="keyword">const</span> stdair::BasLogParams lLogParams (stdair::LOG::DEBUG, logOutputFile); </div>
<div class="line">  <a class="code" href="classSIMFQT_1_1SIMFQT__Service.html" title="Interface for the SIMFQT Services.">SIMFQT::SIMFQT_Service</a> simfqtService (lLogParams);</div>
</div><!-- fragment --></p>
<p>Then, we construct a default sample list of travel solutions and a default booking request (as mentionned in <a class="el" href="users_guide.html#ug_procedure_bookingrequest">Instanciate the default booking request</a> and <a class="el" href="users_guide.html#ug_procedure_travelsolution">Instanciate the default travel solution list</a> parts):</p>
 <div class="fragment"><div class="line"> stdair::TravelSolutionList_T&amp; ioInteractiveTravelSolutionList,</div>
<div class="line">    <span class="keywordflow">return</span> ioBookingRequestStruct;</div>
</div><!-- fragment --></p>
<p>For basic use, the default BOM tree can be built using:  <div class="fragment"><div class="line">    simfqtService.buildSampleBom();</div>
</div><!-- fragment --></p>
<p>The main step is the fare quoting (see <a class="el" href="users_guide.html#ug_procedure">The fare quoting procedure</a>):  <div class="fragment"><div class="line">        simfqtService.quotePrices (lInteractiveBookingRequest,</div>
</div><!-- fragment --></p>
<h2><a class="anchor" id="tut_procedure_results"></a>
Result of the Batch Program</h2>
<p>When the <code><a class="el" href="simfqt_8cpp.html">simfqt.cpp</a></code> program is run (with the <code>-b</code> option), the log output file should look like:</p>
<div class="fragment"><div class="line">[D]../../../simfqt/batches/simfqt.cpp:186: Welcome to Simfqt</div>
<div class="line">[D]../../../simfqt/batches/simfqt.cpp:212: Travel solutions:</div>
<div class="line">    [0] [0] BA, 9, 2011-06-10, LHR, SYD, 21:45 ---  --- </div>
<div class="line">[D]../../../simfqt/command/FareQuoter.cpp:519: Segment path: BA; 9, 2011-06-10; LHR, SYD; 21:45. A corresponding fare option <span class="keywordflow">for</span> the <span class="stringliteral">&#39;BA Y&#39;</span> <span class="keyword">class </span>is: Class path: Y; 450 EUR; conditions: 1 1 1</div>
<div class="line">[D]../../../simfqt/service/SIMFQT_Service.cpp:352: Fare Quote retrieving: 0.001403 - SIMFQT_ServiceContext -- Owns StdAir service: 1</div>
<div class="line">[D]../../../simfqt/batches/simfqt.cpp:214: BOM tree: </div>
<div class="line">===============================================================</div>
<div class="line">BomRoot:  -- ROOT -- </div>
<div class="line">===============================================================</div>
<div class="line">+++++++++++++++++++++++++++++++++++++++++++++++++</div>
<div class="line">AirportPair: LHR, SYD</div>
<div class="line">+++++++++++++++++++++++++++++++++++++++++++++++++</div>
<div class="line">------------------------------------------</div>
<div class="line">DatePeriod: [2011-Jan-15/2011-Dec-30]</div>
<div class="line">------------------------------------------</div>
<div class="line">******************************************</div>
<div class="line">PosChannel: LHR,DN</div>
<div class="line">******************************************</div>
<div class="line">----------------------------------------</div>
<div class="line">TimePeriod: 00:00:00-23:00:00</div>
<div class="line">----------------------------------------</div>
<div class="line">--------------------------------------</div>
<div class="line">Fare-Features: RT -- 0-1-1-1-0</div>
<div class="line">--------------------------------------</div>
<div class="line">------------------------------------</div>
<div class="line">AirlineClassList: BA Y</div>
<div class="line">------------------------------------</div>
<div class="line"></div>
<div class="line">[D]../../../simfqt/batches/simfqt.cpp:219: Travel solutions:</div>
<div class="line">    [0] [0] BA, 9, 2011-06-10, LHR, SYD, 21:45 --- Y, 450, 1 1 1 --- </div>
</div><!-- fragment --><p>What is interesting is to compare the travel solution list (here reduced to a single travel solution) displayed before:</p>
 <div class="fragment"><div class="line">    [0] [0] BA, 9, 2011-06-10, LHR, SYD, 21:45 ---  --- </div>
</div><!-- fragment --></p>
<p>and after the fare quoting:</p>
<p><div class="fragment"><div class="line">    [0] [0] BA, 9, 2011-06-10, LHR, SYD, 21:45 --- Y, 450, 1 1 1 --- </div>
</div><!-- fragment --></p>
<p>Between the two groups of dashes, we can see that a fare option structure has been added by the fare quoter: the price is 450 EUR for the Y class, the ticket is refundable but there are exchange fees and the customer must stay over on saturday night.</p>
<p>Let's return to our default BOM tree display: the only fare rule stored was a match for the travel solution into consideration (same origin airport, same destination airport, flight date included in the fare rule date range, same airline "BA", ...).</p>
<p>By looking at the fare rule trip type "RT", we can guess we face a round trip fare: that means the price given in the default bom tree construction in <code>stdair::CmdBomManager.hpp</code> has been divided by 2 because we are considering either an inbound trip or an outbound one.</p>
<h1><a class="anchor" id="tut_how_fare_quoting_file"></a>
Fare quoting with an input file</h1>
<h2><a class="anchor" id="tut_how_build_fare_file"></a>
How to build a fare input file?</h2>
<p>The objective here is to build a fare input file to fare quote the default travel solution list built using:</p>
 <div class="fragment"><div class="line"> stdair::TravelSolutionList_T&amp; ioInteractiveTravelSolutionList,</div>
</div><!-- fragment --></p>
<p>This travel solution list, reduced to a singleton, can be displayed as done before:</p>
 <div class="fragment"><div class="line">    [0] [0] BA, 9, 2011-06-10, LHR, SYD, 21:45 ---  --- </div>
</div><!-- fragment --></p>
<p>We deduce:</p>
<ul>
<li>we need a fare rule whose origin-destination couple is "LHR, SYD".</li>
<li>the date range must include the date "2011-06-10".</li>
<li>the time range must include the time "21:45".</li>
<li>the airline operating is "BA", so it must be the airline pricing.</li>
</ul>
<p>We can deduce a part of our fare rule file :</p>
<div class="fragment"><div class="line"><span class="comment">// Fares: fare ID; OriginCity; DestinationCity; TripType; DateRangeStart; DateRangeEnd; DepartureTimeRangeStart; DepartureTimeRangeEnd; POS; CabinCode; Channel; AdvancePurchase; SaturdayNight; ChangeFees; NonRefundable; MinimumStay; Price; nb Segments</span></div>
<div class="line"><span class="comment">// Segment: AirlineCode; Class; </span></div>
<div class="line">1; LHR; SYD; ??; 2011-01-01; 2011-12-31; 00:00; 23:59; ???; ?; ??; ?; ?; ?; ?; ?; ????; BA; ?;</div>
</div><!-- fragment --><p>We have no information about stay duration and advance purchase (such information are contained into the booking request): so let us put "0" to embrace all the requests possible.</p>
<p>No information for the point-of-sale and the channel too: let us consider all the channels ("IN", "DN", "IF" and DF") and all the points of sale 
(the origin "LHR", the destination "SYD" and the rest-of-the-world "ROW") existing. To access this information, we could look into the default booking request.</p>
<p>The input file is now:</p>
<div class="fragment"><div class="line"><span class="comment">// Fares: fare ID; OriginCity; DestinationCity; TripType; DateRangeStart; DateRangeEnd; DepartureTimeRangeStart; DepartureTimeRangeEnd; POS; CabinCode; Channel; AdvancePurchase; SaturdayNight; ChangeFees; NonRefundable; MinimumStay; Price; nb Segments</span></div>
<div class="line"><span class="comment">// Segment: AirlineCode; Class; </span></div>
<div class="line">1; LHR; SYD; ??; 2011-01-01; 2011-12-31; 00:00; 23:59; LHR; ?; IN; 0; ?; ?; ?; 0; ????; BA; ?;</div>
<div class="line">2; LHR; SYD; ??; 2011-01-01; 2011-12-31; 00:00; 23:59; LHR; ?; IF; 0; ?; ?; ?; 0; ????; BA; ?;</div>
<div class="line">3; LHR; SYD; ??; 2011-01-01; 2011-12-31; 00:00; 23:59; LHR; ?; DN; 0; ?; ?; ?; 0; ????; BA; ?;</div>
<div class="line">4; LHR; SYD; ??; 2011-01-01; 2011-12-31; 00:00; 23:59; LHR; ?; DF; 0; ?; ?; ?; 0; ????; BA; ?;</div>
<div class="line">5; LHR; SYD; ??; 2011-01-01; 2011-12-31; 00:00; 23:59; SYD; ?; IN; 0; ?; ?; ?; 0; ????; BA; ?;</div>
<div class="line">6; LHR; SYD; ??; 2011-01-01; 2011-12-31; 00:00; 23:59; SYD; ?; IF; 0; ?; ?; ?; 0; ????; BA; ?;</div>
<div class="line">7; LHR; SYD; ??; 2011-01-01; 2011-12-31; 00:00; 23:59; SYD; ?; DN; 0; ?; ?; ?; 0; ????; BA; ?;</div>
<div class="line">8; LHR; SYD; ??; 2011-01-01; 2011-12-31; 00:00; 23:59; SYD; ?; DF; 0; ?; ?; ?; 0; ????; BA; ?;</div>
<div class="line">9; LHR; SYD; ??; 2011-01-01; 2011-12-31; 00:00; 23:59; ROW; ?; IN; 0; ?; ?; ?; 0; ????; BA; ?;</div>
<div class="line">10; LHR; SYD; ??; 2011-01-01; 2011-12-31; 00:00; 23:59; ROW; ?; IF; 0; ?; ?; ?; 0; ????; BA; ?;</div>
<div class="line">11; LHR; SYD; ??; 2011-01-01; 2011-12-31; 00:00; 23:59; ROW; ?; DN; 0; ?; ?; ?; 0; ????; BA; ?;</div>
<div class="line">12; LHR; SYD; ??; 2011-01-01; 2011-12-31; 00:00; 23:59; ROW; ?; DF; 0; ?; ?; ?; 0; ????; BA; ?;</div>
</div><!-- fragment --><p>Let us say we have just the Economy cabin "Y" and Bristish Airways prices ticket for class "Y".</p>
<p>No information about the trip type, so we duplicate all the fare rules for both type: one-way "OW" and round-trip "RT" (to access this information, we could look to the default booking request).</p>
<p>The fare options are all set to a default value "T" (meaning true) and the fare values are chosen to be all distinct.</p>
<p>We obtain:</p>
<div class="fragment"><div class="line"><span class="comment">// Fares: fare ID; OriginCity; DestinationCity; TripType; DateRangeStart; DateRangeEnd; DepartureTimeRangeStart; DepartureTimeRangeEnd; POS; CabinCode; Channel; AdvancePurchase; SaturdayNight; ChangeFees; NonRefundable; MinimumStay; Price; nb Segments</span></div>
<div class="line"><span class="comment">// Segment: AirlineCode; Class; </span></div>
<div class="line">1; LHR; SYD; OW; 2011-01-01; 2011-12-31; 00:00; 23:59; LHR; Y; IN; 0; T; T; T; 0; 50; BA; Y;</div>
<div class="line">2; LHR; SYD; OW; 2011-01-01; 2011-12-31; 00:00; 23:59; LHR; Y; IF; 0; T; T; T; 0; 150; BA; Y;</div>
<div class="line">3; LHR; SYD; OW; 2011-01-01; 2011-12-31; 00:00; 23:59; LHR; Y; DN; 0; T; T; T; 0; 250; BA; Y;</div>
<div class="line">4; LHR; SYD; OW; 2011-01-01; 2011-12-31; 00:00; 23:59; LHR; Y; DF; 0; T; T; T; 0; 350; BA; Y;</div>
<div class="line">5; LHR; SYD; OW; 2011-01-01; 2011-12-31; 00:00; 23:59; SYD; Y; IN; 0; T; T; T; 0; 450; BA; Y;</div>
<div class="line">6; LHR; SYD; OW; 2011-01-01; 2011-12-31; 00:00; 23:59; SYD; Y; IF; 0; T; T; T; 0; 550; BA; Y;</div>
<div class="line">7; LHR; SYD; OW; 2011-01-01; 2011-12-31; 00:00; 23:59; SYD; Y; DN; 0; T; T; T; 0; 650; BA; Y;</div>
<div class="line">8; LHR; SYD; OW; 2011-01-01; 2011-12-31; 00:00; 23:59; SYD; Y; DF; 0; T; T; T; 0; 750; BA; Y;</div>
<div class="line">9; LHR; SYD; OW; 2011-01-01; 2011-12-31; 00:00; 23:59; ROW; Y; IN; 0; T; T; T; 0; 850; BA; Y;</div>
<div class="line">10; LHR; SYD; OW; 2011-01-01; 2011-12-31; 00:00; 23:59; ROW; Y; IF; 0; T; T; T; 0; 950; BA; Y;</div>
<div class="line">11; LHR; SYD; OW; 2011-01-01; 2011-12-31; 00:00; 23:59; ROW; Y; DN; 0; T; T; T; 0; 1050; BA; Y;</div>
<div class="line">12; LHR; SYD; OW; 2011-01-01; 2011-12-31; 00:00; 23:59; ROW; Y; DF; 0; T; T; T; 0; 1150; BA; Y;</div>
<div class="line">13; LHR; SYD; RT; 2011-01-01; 2011-12-31; 00:00; 23:59; LHR; Y; IN; 0; T; T; T; 0; 90; BA; Y;</div>
<div class="line">14; LHR; SYD; RT; 2011-01-01; 2011-12-31; 00:00; 23:59; LHR; Y; IF; 0; T; T; T; 0; 190; BA; Y;</div>
<div class="line">15; LHR; SYD; RT; 2011-01-01; 2011-12-31; 00:00; 23:59; LHR; Y; DN; 0; T; T; T; 0; 290; BA; Y;</div>
<div class="line">16; LHR; SYD; RT; 2011-01-01; 2011-12-31; 00:00; 23:59; LHR; Y; DF; 0; T; T; T; 0; 390; BA; Y;</div>
<div class="line">17; LHR; SYD; RT; 2011-01-01; 2011-12-31; 00:00; 23:59; SYD; Y; IN; 0; T; T; T; 0; 490; BA; Y;</div>
<div class="line">18; LHR; SYD; RT; 2011-01-01; 2011-12-31; 00:00; 23:59; SYD; Y; IF; 0; T; T; T; 0; 590; BA; Y;</div>
<div class="line">19; LHR; SYD; RT; 2011-01-01; 2011-12-31; 00:00; 23:59; SYD; Y; DN; 0; T; T; T; 0; 690; BA; Y;</div>
<div class="line">20; LHR; SYD; RT; 2011-01-01; 2011-12-31; 00:00; 23:59; SYD; Y; DF; 0; T; T; T; 0; 790; BA; Y;</div>
<div class="line">21; LHR; SYD; RT; 2011-01-01; 2011-12-31; 00:00; 23:59; ROW; Y; IN; 0; T; T; T; 0; 890; BA; Y;</div>
<div class="line">22; LHR; SYD; RT; 2011-01-01; 2011-12-31; 00:00; 23:59; ROW; Y; IF; 0; T; T; T; 0; 990; BA; Y;</div>
<div class="line">23; LHR; SYD; RT; 2011-01-01; 2011-12-31; 00:00; 23:59; ROW; Y; DN; 0; T; T; T; 0; 1090; BA; Y;</div>
<div class="line">24; LHR; SYD; RT; 2011-01-01; 2011-12-31; 00:00; 23:59; ROW; Y; DF; 0; T; T; T; 0; 1190; BA; Y;</div>
</div><!-- fragment --><h2><a class="anchor" id="tut_how_fare_quoting"></a>
Building the BOM tree  with an input file</h2>
<p>The steps are the same as before <a class="el" href="tutorials.html#tut_procedure_summary">Summary of the different steps</a> except the bom tree must be built using the fare input file :</p>
 <div class="fragment"></div><!-- fragment --></p>
<h2><a class="anchor" id="tut_how_fare_quoting_result"></a>
Result of the Batch Program</h2>
<p>When the <code><a class="el" href="simfqt_8cpp.html">simfqt.cpp</a></code> program is run with the <code>-f</code> option linking with the file built just above: </p>
<pre class="fragment">~/simfqt -f ~/&lt;YourFileName&gt;.csv 
</pre><p>the last lines of the log output should look like:</p>
<pre class="fragment">[D]~/simfqtgit/simfqt/batches/simfqt.cpp:223: Travel solutions:
    [0] [0] BA, 9, 2011-06-10, LHR, SYD, 21:45 --- Y, 145, 1 1 1 --- 
</pre><p>We have just one fare option added to the travel solution. We can deduce from the price value 145 that the fare quoter used the fare rule number 15 to price the travel solution. We have an inbound or outbound trip of a round trip: the total price 290 has been divided by 2. </p>
</div></div><!-- contents -->
</div><!-- doc-content -->
		
		<li class="footer">Generated on Wed May 22 2013 21:31:10 for SimFQT by
		  <a href="http://www.doxygen.org/index.html">
			<img class="footer" src="doxygen.png" alt="doxygen"/></a> 
		  1.8.3.1
		</li>
		<li class="footer">
		  <a href="http://sourceforge.net/projects/simfqt"><img class="footer" src="http://sflogo.sourceforge.net/sflogo.php?group_id=295242&type=12&format=.png" alt="SourceForge Logo"></a>
		</li>
	  </ul>
	</div>
  </body>
</html>