Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > 54cac1c2268db633d66eeff1b4faa585 > files > 401

frepple-doc-0.8.1-3.fc15.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"/>
<title>C++ API frePPLe: frepple::OperationPlan Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="../styles.css" rel="stylesheet"  type="text/css">
</head>
<body>
<div id="container">

<div id="menubar"> 
<div id="logo" align="center">
<br/><img src='../frepple.bmp' alt="frepple" /><br/>
<a href='http://www.frepple.com/'>
<strong>a Free<br/>Production Planning<br/>Library</strong>
</a>
</div>
<div id="menu">
<br/>
<h3><a href='../Main/HomePage.html'>Main</a></h3>
<h3><a href='../UI/Main.html'>User Manual</a></h3>
<h3><a href='../Tutorial/Main.html'>Tutorial</a></h3>
<h3><a href='../Frepple/Main.html'>Reference Manual</a></h3>
<h3><a href='../Main/FAQ.html'>FAQ</a></h3>
<h3><a href='index.html'>C++ API</a></h3>
<br/>
</div>  
</div>

<div id="content">
<br/>
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="dirs.html"><span>Directories</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
      <li><a href="classes.html"><span>Class&nbsp;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
  <div class="navpath"><a class="el" href="a00256.html">frepple</a>::<a class="el" href="a00125.html">OperationPlan</a>
  </div>
</div>
<div class="contents">
<h1>frepple::OperationPlan Class Reference</h1><!-- doxytag: class="frepple::OperationPlan" --><!-- doxytag: inherits="frepple::utils::Object,frepple::HasProblems,frepple::utils::NonCopyable" -->
<p>An operationplan is the key dynamic element of a plan. It represents a certain quantity being planned along a certain operation during a certain date range.  
<a href="#_details">More...</a></p>

<p><code>#include &lt;<a class="el" href="a00218_source.html">model.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for frepple::OperationPlan:</div>
<div class="dynsection">
<div class="center"><img src="a00463.png" border="0" usemap="#frepple_1_1_operation_plan_inherit__map" alt="Inheritance graph"/></div>
<map name="frepple_1_1_operation_plan_inherit__map" id="frepple_1_1_operation_plan_inherit__map">
<area shape="rect" id="node2" href="a00120.html" title="Object is the abstract base class for the main entities." alt="" coords="51,83,187,111"/>
<area shape="rect" id="node4" href="a00151.html" title="This is a base class for all Python extension types." alt="" coords="5,6,232,34"/>
<area shape="rect" id="node6" href="a00086.html" title="Classes that keep track of problem conditions need to implement this class." alt="" coords="211,83,355,111"/>
<area shape="rect" id="node8" href="a00119.html" title="Class NonCopyable is a base class. Derive your own class from it when you want to..." alt="" coords="379,83,555,111"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>

<p><a href="a00464.html">List of all members.</a></p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00069.html">FlowPlanIterator</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">An <a class="el" href="a00093.html" title="This class models an STL-like iterator that allows us to iterate over the operationplans...">iterator</a> class to go through all flowplans of an operationplan.  <a href="a00069.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00093.html">iterator</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This class models an STL-like <a class="el" href="a00093.html" title="This class models an STL-like iterator that allows us to iterate over the operationplans...">iterator</a> that allows us to iterate over the operationplans in a simple and safe way.  <a href="a00093.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00106.html">LoadPlanIterator</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">An <a class="el" href="a00093.html" title="This class models an STL-like iterator that allows us to iterate over the operationplans...">iterator</a> class to go through all loadplans of an operationplan.  <a href="a00106.html#_details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#acc8852654a67b2108f49f83472698f63">addSubOperationPlan</a> (<a class="el" href="a00125.html">OperationPlan</a> *)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#a7cc72216b887fc019ffc29b6465e5704">beginElement</a> (<a class="el" href="a00186.html">XMLInput</a> &amp;, const <a class="el" href="a00002.html">Attribute</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00069.html">FlowPlanIterator</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#a4fb68598ded2db1ae3a9f5f975dd09c6">beginFlowPlans</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00106.html">LoadPlanIterator</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#af14047934961e9c5f04c0ecc70df649c">beginLoadPlans</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#a1c0ab58f6d41e2fd26e50f09158042ee">createFlowLoads</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#a66190169fabfa5d7843c2a7251d949ba">endElement</a> (<a class="el" href="a00186.html">XMLInput</a> &amp;, const <a class="el" href="a00002.html">Attribute</a> &amp;, const <a class="el" href="a00047.html">DataElement</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00069.html">FlowPlanIterator</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#a1b421f000d0a136fa3f9dc3abd5b76cc">endFlowPlans</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00106.html">LoadPlanIterator</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#af4b4401df92ad9e292edd56d3272b79c">endLoadPlans</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#a229e9661189af68191319f759f3021a5">eraseSubOperationPlan</a> (<a class="el" href="a00125.html">OperationPlan</a> *)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual PyObject *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#af0927db9852c532d8613b2aadf0caeb4">getattro</a> (const <a class="el" href="a00002.html">Attribute</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="a00050.html">DateRange</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#a9f19aec0a96f30616f2ee06e3c8f371a">getDates</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00051.html">Demand</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#a4cd571d01df7194dd232d07f7cbba03f">getDemand</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00133.html">Plannable</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#a0279c586602394ac3027401b2702cbae">getEntity</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#ae4790b550a19fdd231276294d7782a1e">getHidden</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#a2fc22f86c78b34f91bf535c742e2e740">getIdentifier</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#ad76b43eab48c2587255ec1b460f91093">getLocked</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00121.html">Operation</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#a2f5ae1046cd50f98e59520ed8910c458">getOperation</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00125.html">OperationPlan</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#a5d8b863740c3c1a948442c470e603393">getOwner</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#a87c9ad27248d07be7847f876415c42c5">getPenalty</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#aa32661a65b2309ba7c35576940274687">getQuantity</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#af055e27ec0b7ac25499c8ace91933628">getSize</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="a00125.html">OperationPlan</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#a38d74e548dc3b15c6cd9aaf9c71864bf">getTopOwner</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="a00115.html">MetaClass</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#ac605151cc6cb3d9cd76ff1e6b627f949">getType</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00179.html">TimePeriod</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#ae1018a3fea252ffa6a35bffbbe768c45">getUnavailable</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#a8d6318b95bb6095572c645b0f77162ce">insertInOperationplanList</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#a13fe13cfa3f0b8dc229b9f115172c9c5">instantiate</a> (bool useMinCounter=true)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#ae129bfa670287a41f69687fc23e6203f">isExcess</a> (bool=false) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#afb462df2932218d71293488010585cf8">operator&lt;</a> (const <a class="el" href="a00125.html">OperationPlan</a> &amp;a) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#a74fda632de58936beb2adf31f0731d09">restore</a> (const <a class="el" href="a00127.html">OperationPlanState</a> &amp;x)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#aa8b58849f7ad109c44163e97cfb0676c">setattro</a> (const <a class="el" href="a00002.html">Attribute</a> &amp;, const <a class="el" href="a00154.html">PythonObject</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#abf77895a64e6ddfffc99f290df38750d">setChanged</a> (bool b=true)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#a94c3d23a9b1ea2a802cc58718187ef8a">setDemand</a> (<a class="el" href="a00051.html">Demand</a> *l)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#af70f6b33dcda3739d1c090a632408cd4">setEnd</a> (<a class="el" href="a00049.html">Date</a>)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#ad845e28c8e3a41fb08bfd7d47ff81e3a">setLocked</a> (bool b=true)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#a1a08b007136515186cc22cd95007f122">setOwner</a> (<a class="el" href="a00125.html">OperationPlan</a> *o)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#aa33a70a23ad111e4b2a35ec96757a1fb">setQuantity</a> (double f, bool roundDown=false, bool update=true, bool execute=true)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#a2265d1554215f7185b8556f53c5805f2">setStart</a> (<a class="el" href="a00049.html">Date</a>)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#a78fc77e6efcae27817fa12ff5cfdaee4">setStartAndEnd</a> (<a class="el" href="a00049.html">Date</a> st, <a class="el" href="a00049.html">Date</a> nd)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#ad9f724fdfef715f511685078f381ae58">sizeFlowPlans</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#a877f62581eda5afd322354b954a8eb69">sizeLoadPlans</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">PyObject *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#a1b1f4e51ed96e2f9899b10d9ae124454">str</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#a065b07a37ca069de47577b2c7d009898">updateProblems</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#a20a1f5c84a6ecab07fb59e69cba08e0c">writeElement</a> (<a class="el" href="a00189.html">XMLOutput</a> *, const <a class="el" href="a00096.html">Keyword</a> &amp;, <a class="el" href="a00257.html#a20c2c7e4c6b668e71c154ae3eb18f398">mode</a>=DEFAULT) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#ae91afde7a26188acdb6e499b8a5b93fc">~OperationPlan</a> ()</td></tr>
<tr><td colspan="2"><h2>Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="a00093.html">iterator</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#a8bd5449992e056b2d637cfe65ac7da1f">begin</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static PyObject *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#a9011cb69db2094761747475bfe760a5f">create</a> (PyTypeObject *, PyObject *, PyObject *)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="a00120.html">Object</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#acabc6d5f06b157c155355d04b3e2e4ef">createOperationPlan</a> (const <a class="el" href="a00115.html">MetaClass</a> *, const <a class="el" href="a00003.html">AttributeList</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#aebe0ba79364fcd6952413913a0bc5a92">deleteOperationPlans</a> (<a class="el" href="a00121.html">Operation</a> *o, bool deleteLocked=false)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#a1b67f83c0a010a76f9d481cdf1474774">empty</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="a00093.html">iterator</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#a0f9f6ba7d4fe7e20e9b88c765fe24f25">end</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="a00125.html">OperationPlan</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#a35f7c280c07d3e019e2bcdf99e4d9d3f">findId</a> (unsigned long l)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#acd5cce9abe40ac2c14cde0f5f0d1d05d">initialize</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static unsigned long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#a832bf3ad7966932673a823ec419a2497">size</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#a6e290be8218f038b5c3613def7442c1a">writer</a> (const <a class="el" href="a00114.html">MetaCategory</a> *, <a class="el" href="a00189.html">XMLOutput</a> *)</td></tr>
<tr><td colspan="2"><h2>Static Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="a00114.html">MetaCategory</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#ad32c559f9ca421acae969bb0c5a194b6">metacategory</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="a00115.html">MetaClass</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#a31cde691d7cdf2ce2db1fb0eb595e34a">metadata</a></td></tr>
<tr><td colspan="2"><h2>Friends</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#a9680af3e50ffa25762282e46af5d2f16">Demand</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#a59711ad93b304e7c02ef52f39e010ebf">FlowPlan</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#a67171474c4da6cc8efe0c7fafefd2b2d">iterator</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#a5e110698e5fb838ff5f374bd47196b7e">LoadPlan</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#a48b9344c0b50eaf70275cf053612df8f">Operation</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#a99838363e42c780d32063e2fa8400092">OperationAlternate</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#a97cf6fb42b2a6f68bd80eba74635f229">OperationRouting</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#a927e79623bb89e4abc83bc7853ac9957">ProblemPrecedence</a></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>An operationplan is the key dynamic element of a plan. It represents a certain quantity being planned along a certain operation during a certain date range. </p>
<p>From a coding perspective:</p>
<ul>
<li>Operationplans are created by the factory method <a class="el" href="a00125.html#acabc6d5f06b157c155355d04b3e2e4ef">createOperationPlan()</a> on the matching operation class.</li>
<li>The createLoadAndFlowplans() can optionally be called to also create the loadplans and flowplans, to take care of the material and capacity consumption.</li>
<li>Once you're sure about creating the operationplan, the <a class="el" href="a00125.html#a13fe13cfa3f0b8dc229b9f115172c9c5">instantiate()</a> method should be called. It will assign the operationplan a unique numeric identifier, register the operationplan in a container owned by the operation instance, and also create loadplans and flowplans if this hasn't been done yet.<br/>
</li>
<li>Operationplans can be organized in hierarchical structure, matching the operation hierarchies they belong to.</li>
</ul>
<p>reading suboperationplans can be improved </p>

<p>Definition at line <a class="el" href="a00218_source.html#l01873">1873</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="ae91afde7a26188acdb6e499b8a5b93fc"></a><!-- doxytag: member="frepple::OperationPlan::~OperationPlan" ref="ae91afde7a26188acdb6e499b8a5b93fc" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">frepple::OperationPlan::~OperationPlan </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Destructor. </p>

<p>Definition at line <a class="el" href="a00224_source.html#l00440">440</a> of file <a class="el" href="a00224_source.html">operationplan.cpp</a>.</p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="acc8852654a67b2108f49f83472698f63"></a><!-- doxytag: member="frepple::OperationPlan::addSubOperationPlan" ref="acc8852654a67b2108f49f83472698f63" args="(OperationPlan *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void frepple::OperationPlan::addSubOperationPlan </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00125.html">OperationPlan</a> *&nbsp;</td>
          <td class="paramname"> <em>o</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Add a sub-operationplan to the list. </p>

<p>Definition at line <a class="el" href="a00224_source.html#l00337">337</a> of file <a class="el" href="a00224_source.html">operationplan.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a8bd5449992e056b2d637cfe65ac7da1f"></a><!-- doxytag: member="frepple::OperationPlan::begin" ref="a8bd5449992e056b2d637cfe65ac7da1f" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="a00093.html">iterator</a> frepple::OperationPlan::begin </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="a00218_source.html#l02017">2017</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p>

</div>
</div>
<a class="anchor" id="a7cc72216b887fc019ffc29b6465e5704"></a><!-- doxytag: member="frepple::OperationPlan::beginElement" ref="a7cc72216b887fc019ffc29b6465e5704" args="(XMLInput &amp;, const Attribute &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void frepple::OperationPlan::beginElement </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00186.html">XMLInput</a> &amp;&nbsp;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="a00002.html">Attribute</a> &amp;&nbsp;</td>
          <td class="paramname"></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Called while restoring the model from an XML-file.<br/>
 This is called for each element within the "this" element, for which the "this" element is immediate parent.<br/>
 It is called when the open element tag is encountered. </p>

<p>Reimplemented from <a class="el" href="a00120.html#ac17c9f7df359ee20839f5e09723d38f1">frepple::utils::Object</a>.</p>

<p>Definition at line <a class="el" href="a00224_source.html#l00845">845</a> of file <a class="el" href="a00224_source.html">operationplan.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a4fb68598ded2db1ae3a9f5f975dd09c6"></a><!-- doxytag: member="frepple::OperationPlan::beginFlowPlans" ref="a4fb68598ded2db1ae3a9f5f975dd09c6" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00069.html">OperationPlan::FlowPlanIterator</a> frepple::OperationPlan::beginFlowPlans </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns an <a class="el" href="a00093.html" title="This class models an STL-like iterator that allows us to iterate over the operationplans...">iterator</a> pointing to the first flowplan. </p>

<p>Definition at line <a class="el" href="a00218_source.html#l05989">5989</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p>

</div>
</div>
<a class="anchor" id="af14047934961e9c5f04c0ecc70df649c"></a><!-- doxytag: member="frepple::OperationPlan::beginLoadPlans" ref="af14047934961e9c5f04c0ecc70df649c" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00106.html">OperationPlan::LoadPlanIterator</a> frepple::OperationPlan::beginLoadPlans </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns an <a class="el" href="a00093.html" title="This class models an STL-like iterator that allows us to iterate over the operationplans...">iterator</a> pointing to the first loadplan. </p>

<p>Definition at line <a class="el" href="a00218_source.html#l06047">6047</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p>

</div>
</div>
<a class="anchor" id="a9011cb69db2094761747475bfe760a5f"></a><!-- doxytag: member="frepple::OperationPlan::create" ref="a9011cb69db2094761747475bfe760a5f" args="(PyTypeObject *, PyObject *, PyObject *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">PyObject * frepple::OperationPlan::create </td>
          <td>(</td>
          <td class="paramtype">PyTypeObject *&nbsp;</td>
          <td class="paramname"> <em>pytype</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">PyObject *&nbsp;</td>
          <td class="paramname"> <em>args</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">PyObject *&nbsp;</td>
          <td class="paramname"> <em>kwds</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Template function that generates a factory method callable from Python. </p>

<p>Reimplemented from <a class="el" href="a00120.html#a16fce1084346fa6e2bbd6f9695d5f823">frepple::utils::Object</a>.</p>

<p>Definition at line <a class="el" href="a00224_source.html#l00917">917</a> of file <a class="el" href="a00224_source.html">operationplan.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a1c0ab58f6d41e2fd26e50f09158042ee"></a><!-- doxytag: member="frepple::OperationPlan::createFlowLoads" ref="a1c0ab58f6d41e2fd26e50f09158042ee" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void frepple::OperationPlan::createFlowLoads </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This function is used to create the proper loadplan and flowplan objects associated with the operation. </p>

<p>Definition at line <a class="el" href="a00224_source.html#l00417">417</a> of file <a class="el" href="a00224_source.html">operationplan.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="acabc6d5f06b157c155355d04b3e2e4ef"></a><!-- doxytag: member="frepple::OperationPlan::createOperationPlan" ref="acabc6d5f06b157c155355d04b3e2e4ef" args="(const MetaClass *, const AttributeList &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00120.html">Object</a> * frepple::OperationPlan::createOperationPlan </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00115.html">MetaClass</a> *&nbsp;</td>
          <td class="paramname"> <em>cat</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="a00003.html">AttributeList</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>in</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This is a factory method that creates an operationplan pointer based on the name and id, which are passed as an array of character pointers. This method is intended to be used to create objects when reading XML input data. </p>

<p>Definition at line <a class="el" href="a00224_source.html#l00078">78</a> of file <a class="el" href="a00224_source.html">operationplan.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="aebe0ba79364fcd6952413913a0bc5a92"></a><!-- doxytag: member="frepple::OperationPlan::deleteOperationPlans" ref="aebe0ba79364fcd6952413913a0bc5a92" args="(Operation *o, bool deleteLocked=false)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void frepple::OperationPlan::deleteOperationPlans </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00121.html">Operation</a> *&nbsp;</td>
          <td class="paramname"> <em>o</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>deleteLocked</em> = <code>false</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Deletes all operationplans of a certain operation. A boolean flag allows to specify whether locked operationplans are to be deleted too. </p>

<p>Definition at line <a class="el" href="a00224_source.html#l00713">713</a> of file <a class="el" href="a00224_source.html">operationplan.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a1b67f83c0a010a76f9d481cdf1474774"></a><!-- doxytag: member="frepple::OperationPlan::empty" ref="a1b67f83c0a010a76f9d481cdf1474774" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static bool frepple::OperationPlan::empty </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns true when not a single operationplan object exists. </p>

<p>Definition at line <a class="el" href="a00218_source.html#l02020">2020</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p>

</div>
</div>
<a class="anchor" id="a0f9f6ba7d4fe7e20e9b88c765fe24f25"></a><!-- doxytag: member="frepple::OperationPlan::end" ref="a0f9f6ba7d4fe7e20e9b88c765fe24f25" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="a00093.html">iterator</a> frepple::OperationPlan::end </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="a00218_source.html#l02015">2015</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p>

</div>
</div>
<a class="anchor" id="a66190169fabfa5d7843c2a7251d949ba"></a><!-- doxytag: member="frepple::OperationPlan::endElement" ref="a66190169fabfa5d7843c2a7251d949ba" args="(XMLInput &amp;, const Attribute &amp;, const DataElement &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void frepple::OperationPlan::endElement </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00186.html">XMLInput</a> &amp;&nbsp;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="a00002.html">Attribute</a> &amp;&nbsp;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="a00047.html">DataElement</a> &amp;&nbsp;</td>
          <td class="paramname"></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Called while restoring the model from an XML-file.<br/>
 This is called when the corresponding close element tag is encountered, and the Data() member of pElement is valid. </p>

<p>Implements <a class="el" href="a00120.html#a88eab6db69f9b38c6b3f5ea37da630fd">frepple::utils::Object</a>.</p>

<p>Definition at line <a class="el" href="a00224_source.html#l00856">856</a> of file <a class="el" href="a00224_source.html">operationplan.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a1b421f000d0a136fa3f9dc3abd5b76cc"></a><!-- doxytag: member="frepple::OperationPlan::endFlowPlans" ref="a1b421f000d0a136fa3f9dc3abd5b76cc" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00069.html">OperationPlan::FlowPlanIterator</a> frepple::OperationPlan::endFlowPlans </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns an <a class="el" href="a00093.html" title="This class models an STL-like iterator that allows us to iterate over the operationplans...">iterator</a> pointing beyond the last flowplan. </p>

<p>Definition at line <a class="el" href="a00218_source.html#l05992">5992</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p>

</div>
</div>
<a class="anchor" id="af4b4401df92ad9e292edd56d3272b79c"></a><!-- doxytag: member="frepple::OperationPlan::endLoadPlans" ref="af4b4401df92ad9e292edd56d3272b79c" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00106.html">OperationPlan::LoadPlanIterator</a> frepple::OperationPlan::endLoadPlans </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns an <a class="el" href="a00093.html" title="This class models an STL-like iterator that allows us to iterate over the operationplans...">iterator</a> pointing beyond the last loadplan. </p>

<p>Definition at line <a class="el" href="a00218_source.html#l06051">6051</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p>

</div>
</div>
<a class="anchor" id="a229e9661189af68191319f759f3021a5"></a><!-- doxytag: member="frepple::OperationPlan::eraseSubOperationPlan" ref="a229e9661189af68191319f759f3021a5" args="(OperationPlan *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void frepple::OperationPlan::eraseSubOperationPlan </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00125.html">OperationPlan</a> *&nbsp;</td>
          <td class="paramname"> <em>o</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Remove a sub-operation_plan from the list. </p>

<p>Definition at line <a class="el" href="a00224_source.html#l00378">378</a> of file <a class="el" href="a00224_source.html">operationplan.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a35f7c280c07d3e019e2bcdf99e4d9d3f"></a><!-- doxytag: member="frepple::OperationPlan::findId" ref="a35f7c280c07d3e019e2bcdf99e4d9d3f" args="(unsigned long l)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00125.html">OperationPlan</a> * frepple::OperationPlan::findId </td>
          <td>(</td>
          <td class="paramtype">unsigned long&nbsp;</td>
          <td class="paramname"> <em>l</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Searches for an <a class="el" href="a00125.html" title="An operationplan is the key dynamic element of a plan. It represents a certain quantity...">OperationPlan</a> with a given identifier.<br/>
 Returns a NULL pointer if no such <a class="el" href="a00125.html" title="An operationplan is the key dynamic element of a plan. It represents a certain quantity...">OperationPlan</a> can be found.<br/>
 The method is of complexity O(n), i.e. involves a LINEAR search through the existing operationplans, and can thus be quite slow in big models.<br/>
 The method is O(1), i.e. constant time regardless of the model size, when the parameter passed is bigger than the operationplan counter. </p>

<p>Definition at line <a class="el" href="a00224_source.html#l00184">184</a> of file <a class="el" href="a00224_source.html">operationplan.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="af0927db9852c532d8613b2aadf0caeb4"></a><!-- doxytag: member="frepple::OperationPlan::getattro" ref="af0927db9852c532d8613b2aadf0caeb4" args="(const Attribute &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">PyObject * frepple::OperationPlan::getattro </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00002.html">Attribute</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>attr</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Default getattro method. <br/>
 Subclasses are expected to implement an override if the type supports gettattro. </p>

<p>Reimplemented from <a class="el" href="a00151.html#af3cfc29003472070ba9e133bcf5eb335">frepple::utils::PythonExtensionBase</a>.</p>

<p>Definition at line <a class="el" href="a00224_source.html#l00957">957</a> of file <a class="el" href="a00224_source.html">operationplan.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a9f19aec0a96f30616f2ee06e3c8f371a"></a><!-- doxytag: member="frepple::OperationPlan::getDates" ref="a9f19aec0a96f30616f2ee06e3c8f371a" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="a00050.html">DateRange</a>&amp; frepple::OperationPlan::getDates </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns the start and end date of this operationplan. </p>

<p>Definition at line <a class="el" href="a00218_source.html#l02152">2152</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p>

</div>
</div>
<a class="anchor" id="a4cd571d01df7194dd232d07f7cbba03f"></a><!-- doxytag: member="frepple::OperationPlan::getDemand" ref="a4cd571d01df7194dd232d07f7cbba03f" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00051.html">Demand</a>* frepple::OperationPlan::getDemand </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns a pointer to the demand for which this operation is a delivery. If the operationplan isn't a delivery operation, this is a NULL pointer. </p>

<p>Definition at line <a class="el" href="a00218_source.html#l02068">2068</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p>

</div>
</div>
<a class="anchor" id="a0279c586602394ac3027401b2702cbae"></a><!-- doxytag: member="frepple::OperationPlan::getEntity" ref="a0279c586602394ac3027401b2702cbae" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00133.html">Plannable</a>* frepple::OperationPlan::getEntity </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Implement the pure virtual function from the HasProblem class. </p>

<p>Implements <a class="el" href="a00086.html#a97837ce18709d6ee5535f15f39b1676b">frepple::HasProblems</a>.</p>

<p>Definition at line <a class="el" href="a00218_source.html#l02263">2263</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p>

</div>
</div>
<a class="anchor" id="ae4790b550a19fdd231276294d7782a1e"></a><!-- doxytag: member="frepple::OperationPlan::getHidden" ref="ae4790b550a19fdd231276294d7782a1e" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool frepple::OperationPlan::getHidden </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns whether an entity is real or dummy. </p>

<p>Reimplemented from <a class="el" href="a00120.html#a05c1c38045f55cd8ce66cee9e933d2bb">frepple::utils::Object</a>.</p>

<p>Definition at line <a class="el" href="a00218_source.html#l02246">2246</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2fc22f86c78b34f91bf535c742e2e740"></a><!-- doxytag: member="frepple::OperationPlan::getIdentifier" ref="a2fc22f86c78b34f91bf535c742e2e740" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned long frepple::OperationPlan::getIdentifier </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns a unique identifier of the operationplan.<br/>
 The identifier can be specified in the data input (in which case we check for the uniqueness during the read operation).<br/>
 For operationplans created during a solver run, the identifier is assigned in the <a class="el" href="a00125.html#a13fe13cfa3f0b8dc229b9f115172c9c5">instantiate()</a> function. The numbering starts with the highest identifier read in from the input and is then incremented for every operationplan that is registered. </p>

<p>Definition at line <a class="el" href="a00218_source.html#l02170">2170</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p>

</div>
</div>
<a class="anchor" id="ad76b43eab48c2587255ec1b460f91093"></a><!-- doxytag: member="frepple::OperationPlan::getLocked" ref="ad76b43eab48c2587255ec1b460f91093" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool frepple::OperationPlan::getLocked </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns whether the operationplan is locked. A locked operationplan is never changed. </p>

<p>Definition at line <a class="el" href="a00218_source.html#l02084">2084</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2f5ae1046cd50f98e59520ed8910c458"></a><!-- doxytag: member="frepple::OperationPlan::getOperation" ref="a2f5ae1046cd50f98e59520ed8910c458" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00121.html">Operation</a>* frepple::OperationPlan::getOperation </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns a pointer to the operation being instantiated. </p>

<p>Definition at line <a class="el" href="a00218_source.html#l02097">2097</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p>

</div>
</div>
<a class="anchor" id="a5d8b863740c3c1a948442c470e603393"></a><!-- doxytag: member="frepple::OperationPlan::getOwner" ref="a5d8b863740c3c1a948442c470e603393" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00125.html">OperationPlan</a>* frepple::OperationPlan::getOwner </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns a pointer to the operationplan for which this operationplan a sub-operationplan.<br/>
 The method returns NULL if there is no owner defined.<br/>
 E.g. Sub-operationplans of a routing refer to the overall routing operationplan.<br/>
 E.g. An alternate sub-operationplan refers to its parent. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00125.html#a38d74e548dc3b15c6cd9aaf9c71864bf">getTopOwner</a> </dd></dl>

<p>Definition at line <a class="el" href="a00218_source.html#l02130">2130</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p>

</div>
</div>
<a class="anchor" id="a87c9ad27248d07be7847f876415c42c5"></a><!-- doxytag: member="frepple::OperationPlan::getPenalty" ref="a87c9ad27248d07be7847f876415c42c5" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double frepple::OperationPlan::getPenalty </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Calculate the penalty of an operationplan. </p>

<p>Definition at line <a class="el" href="a00224_source.html#l00726">726</a> of file <a class="el" href="a00224_source.html">operationplan.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="aa32661a65b2309ba7c35576940274687"></a><!-- doxytag: member="frepple::OperationPlan::getQuantity" ref="aa32661a65b2309ba7c35576940274687" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double frepple::OperationPlan::getQuantity </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns the quantity. </p>

<p>Definition at line <a class="el" href="a00218_source.html#l02046">2046</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p>

</div>
</div>
<a class="anchor" id="af055e27ec0b7ac25499c8ace91933628"></a><!-- doxytag: member="frepple::OperationPlan::getSize" ref="af055e27ec0b7ac25499c8ace91933628" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual size_t frepple::OperationPlan::getSize </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Return the memory size of the object in bytes. </p>

<p>Implements <a class="el" href="a00120.html#ae381655a0e700d1e0d9ef72379792872">frepple::utils::Object</a>.</p>

<p>Definition at line <a class="el" href="a00218_source.html#l02274">2274</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p>

</div>
</div>
<a class="anchor" id="a38d74e548dc3b15c6cd9aaf9c71864bf"></a><!-- doxytag: member="frepple::OperationPlan::getTopOwner" ref="a38d74e548dc3b15c6cd9aaf9c71864bf" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="a00125.html">OperationPlan</a>* frepple::OperationPlan::getTopOwner </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns a pointer to the operationplan owning a set of sub-operationplans. There can be multiple levels of suboperations.<br/>
 If no owner exists the method returns the current operationplan. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00125.html#a5d8b863740c3c1a948442c470e603393">getOwner</a> </dd></dl>

<p>Definition at line <a class="el" href="a00218_source.html#l02137">2137</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p>

</div>
</div>
<a class="anchor" id="ac605151cc6cb3d9cd76ff1e6b627f949"></a><!-- doxytag: member="frepple::OperationPlan::getType" ref="ac605151cc6cb3d9cd76ff1e6b627f949" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="a00115.html">MetaClass</a>&amp; frepple::OperationPlan::getType </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Return the metadata. We return the metadata of the operation class, not the one of the operationplan class! </p>

<p>Implements <a class="el" href="a00120.html#a2e5ff5e5d9c32647f692abd04a0d72d2">frepple::utils::Object</a>.</p>

<p>Definition at line <a class="el" href="a00218_source.html#l02268">2268</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p>

</div>
</div>
<a class="anchor" id="ae1018a3fea252ffa6a35bffbbe768c45"></a><!-- doxytag: member="frepple::OperationPlan::getUnavailable" ref="ae1018a3fea252ffa6a35bffbbe768c45" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00179.html">TimePeriod</a> frepple::OperationPlan::getUnavailable </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Calculate the unavailable time during the operationplan. The regular duration is extended with this amount. </p>

<p>Definition at line <a class="el" href="a00224_source.html#l00784">784</a> of file <a class="el" href="a00224_source.html">operationplan.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="acd5cce9abe40ac2c14cde0f5f0d1d05d"></a><!-- doxytag: member="frepple::OperationPlan::initialize" ref="acd5cce9abe40ac2c14cde0f5f0d1d05d" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int frepple::OperationPlan::initialize </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="a00224_source.html#l00044">44</a> of file <a class="el" href="a00224_source.html">operationplan.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a8d6318b95bb6095572c645b0f77162ce"></a><!-- doxytag: member="frepple::OperationPlan::insertInOperationplanList" ref="a8d6318b95bb6095572c645b0f77162ce" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void frepple::OperationPlan::insertInOperationplanList </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This method links the operationplan in the list of all operationplans maintained on the operation.<br/>
 In most cases calling this method is not required since it included in the instantiate method. In exceptional cases the solver already needs to see uncommitted operationplans in the list - eg for the procurement buffer. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00125.html#a13fe13cfa3f0b8dc229b9f115172c9c5">instantiate</a> </dd></dl>

<p>Definition at line <a class="el" href="a00224_source.html#l00293">293</a> of file <a class="el" href="a00224_source.html">operationplan.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a13fe13cfa3f0b8dc229b9f115172c9c5"></a><!-- doxytag: member="frepple::OperationPlan::instantiate" ref="a13fe13cfa3f0b8dc229b9f115172c9c5" args="(bool useMinCounter=true)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool frepple::OperationPlan::instantiate </td>
          <td>(</td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>useMinCounter</em> = <code>true</code></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Initialize the operationplan. The initialization function should be called when the operationplan is ready to be 'officially' added. The initialization performs the following actions: </p>
<ol>
<li>
assign an identifier </li>
<li>
create the flow and loadplans if these hadn't been created before </li>
<li>
add the operationplan to the global list of operationplans </li>
<li>
create a link with a demand object if this is a delivery operationplan </li>
</ol>
<p>Every operationplan subclass that has sub-operations will normally need to create an override of this function.<br/>
</p>
<p>The return value indicates whether the initialization was successfull. If the operationplan is invalid, it will be DELETED and the return value is 'false'. </p>

<p>Definition at line <a class="el" href="a00224_source.html#l00200">200</a> of file <a class="el" href="a00224_source.html">operationplan.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="ae129bfa670287a41f69687fc23e6203f"></a><!-- doxytag: member="frepple::OperationPlan::isExcess" ref="ae129bfa670287a41f69687fc23e6203f" args="(bool=false) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool frepple::OperationPlan::isExcess </td>
          <td>(</td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>strict</em> = <code>false</code></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Return true if the operationplan is redundant, ie all material it produces is not used at all.<br/>
 If the optional argument is false (which is the default value), we check with the minimum stock level of the buffers. If the argument is true, we check with 0. </p>

<p>Definition at line <a class="el" href="a00224_source.html#l00741">741</a> of file <a class="el" href="a00224_source.html">operationplan.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="afb462df2932218d71293488010585cf8"></a><!-- doxytag: member="frepple::OperationPlan::operator&lt;" ref="afb462df2932218d71293488010585cf8" args="(const OperationPlan &amp;a) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool frepple::OperationPlan::operator&lt; </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00125.html">OperationPlan</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>a</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Comparison of 2 OperationPlans. To garantuee that the problems are sorted in a consistent and stable way, the following sorting criteria are used (in order of priority): </p>
<ol>
<li>
<a class="el" href="a00121.html" title="An operation represents an activity: these consume and produce material, take time...">Operation</a> </li>
<li>
Start date (earliest dates first) </li>
<li>
Quantity (biggest quantities first)</li>
</ol>
<p>Multiple operationplans for the same values of the above keys can exist. </p>

<p>Definition at line <a class="el" href="a00224_source.html#l00402">402</a> of file <a class="el" href="a00224_source.html">operationplan.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a74fda632de58936beb2adf31f0731d09"></a><!-- doxytag: member="frepple::OperationPlan::restore" ref="a74fda632de58936beb2adf31f0731d09" args="(const OperationPlanState &amp;x)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void frepple::OperationPlan::restore </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00127.html">OperationPlanState</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>x</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>A method to restore a previous state of an operationplan.<br/>
 NO validity checks are done on the parameters. </p>

<p>Definition at line <a class="el" href="a00218_source.html#l02681">2681</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p>

</div>
</div>
<a class="anchor" id="aa8b58849f7ad109c44163e97cfb0676c"></a><!-- doxytag: member="frepple::OperationPlan::setattro" ref="aa8b58849f7ad109c44163e97cfb0676c" args="(const Attribute &amp;, const PythonObject &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int frepple::OperationPlan::setattro </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00002.html">Attribute</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>attr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="a00154.html">PythonObject</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>field</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Default setattro method. <br/>
 Subclasses are expected to implement an override if the type supports settattro. </p>

<p>Reimplemented from <a class="el" href="a00151.html#a0a1bd051198a1b82fd23d3ca04c3ee8d">frepple::utils::PythonExtensionBase</a>.</p>

<p>Definition at line <a class="el" href="a00224_source.html#l00989">989</a> of file <a class="el" href="a00224_source.html">operationplan.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="abf77895a64e6ddfffc99f290df38750d"></a><!-- doxytag: member="frepple::OperationPlan::setChanged" ref="abf77895a64e6ddfffc99f290df38750d" args="(bool b=true)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void frepple::OperationPlan::setChanged </td>
          <td>(</td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>b</em> = <code>true</code></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="a00224_source.html#l00065">65</a> of file <a class="el" href="a00224_source.html">operationplan.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a94c3d23a9b1ea2a802cc58718187ef8a"></a><!-- doxytag: member="frepple::OperationPlan::setDemand" ref="a94c3d23a9b1ea2a802cc58718187ef8a" args="(Demand *l)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void frepple::OperationPlan::setDemand </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00051.html">Demand</a> *&nbsp;</td>
          <td class="paramname"> <em>l</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Updates the demand to which this operationplan is a solution. </p>

<p>Definition at line <a class="el" href="a00224_source.html#l00903">903</a> of file <a class="el" href="a00224_source.html">operationplan.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="af70f6b33dcda3739d1c090a632408cd4"></a><!-- doxytag: member="frepple::OperationPlan::setEnd" ref="af70f6b33dcda3739d1c090a632408cd4" args="(Date)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void frepple::OperationPlan::setEnd </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00049.html">Date</a>&nbsp;</td>
          <td class="paramname"> <em>d</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Updates the end date of the operationplan and compute the start date.<br/>
 Locked operationplans are not updated by this function.<br/>
 Slack can be introduced between sub operationaplans by this method, i.e. the sub operationplans are only moved if required to meet the end date. </p>

<p>Definition at line <a class="el" href="a00224_source.html#l00538">538</a> of file <a class="el" href="a00224_source.html">operationplan.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="ad845e28c8e3a41fb08bfd7d47ff81e3a"></a><!-- doxytag: member="frepple::OperationPlan::setLocked" ref="ad845e28c8e3a41fb08bfd7d47ff81e3a" args="(bool b=true)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void frepple::OperationPlan::setLocked </td>
          <td>(</td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>b</em> = <code>true</code></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Locks/unlocks an operationplan. A locked operationplan is never changed. </p>

<p>Definition at line <a class="el" href="a00224_source.html#l00891">891</a> of file <a class="el" href="a00224_source.html">operationplan.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a1a08b007136515186cc22cd95007f122"></a><!-- doxytag: member="frepple::OperationPlan::setOwner" ref="a1a08b007136515186cc22cd95007f122" args="(OperationPlan *o)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void frepple::OperationPlan::setOwner </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00125.html">OperationPlan</a> *&nbsp;</td>
          <td class="paramname"> <em>o</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Updates the operationplan owning this operationplan. In case of a <a class="el" href="a00128.html" title="Represents a routing operation, i.e. an operation consisting of multiple, sequential...">OperationRouting</a> steps this will be the operationplan representing the complete routing. </p>

<p>Definition at line <a class="el" href="a00224_source.html#l00493">493</a> of file <a class="el" href="a00224_source.html">operationplan.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="aa33a70a23ad111e4b2a35ec96757a1fb"></a><!-- doxytag: member="frepple::OperationPlan::setQuantity" ref="aa33a70a23ad111e4b2a35ec96757a1fb" args="(double f, bool roundDown=false, bool update=true, bool execute=true)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double frepple::OperationPlan::setQuantity </td>
          <td>(</td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>f</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>roundDown</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>update</em> = <code>true</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>execute</em> = <code>true</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Updates the quantity.<br/>
 The operationplan quantity is subject to the following rules:</p>
<ul>
<li>The quantity must be greater than or equal to the minimum size.<br/>
 The value is rounded up to the smallest multiple above the minimum size if required, or rounded down to 0.</li>
<li>The quantity must be a multiple of the multiple_size field.<br/>
 The value is rounded up or down to meet this constraint.</li>
<li>The quantity must be smaller than or equal to the maximum size.<br/>
 The value is limited to the smallest multiple below this limit.</li>
<li>Setting the quantity of an operationplan to 0 is always possible, regardless of the minimum, multiple and maximum values. This method can only be called on top operationplans. Sub operation plans should pass on a call to the parent operationplan. </li>
</ul>

<p>Definition at line <a class="el" href="a00224_source.html#l00572">572</a> of file <a class="el" href="a00224_source.html">operationplan.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a2265d1554215f7185b8556f53c5805f2"></a><!-- doxytag: member="frepple::OperationPlan::setStart" ref="a2265d1554215f7185b8556f53c5805f2" args="(Date)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void frepple::OperationPlan::setStart </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00049.html">Date</a>&nbsp;</td>
          <td class="paramname"> <em>d</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Updates the start date of the operationplan and compute the end date.<br/>
 Locked operation_plans are not updated by this function.<br/>
 Slack can be introduced between sub operationaplans by this method, i.e. the sub operationplans are only moved if required to meet the start date. </p>

<p>Definition at line <a class="el" href="a00224_source.html#l00504">504</a> of file <a class="el" href="a00224_source.html">operationplan.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a78fc77e6efcae27817fa12ff5cfdaee4"></a><!-- doxytag: member="frepple::OperationPlan::setStartAndEnd" ref="a78fc77e6efcae27817fa12ff5cfdaee4" args="(Date st, Date nd)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void frepple::OperationPlan::setStartAndEnd </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00049.html">Date</a>&nbsp;</td>
          <td class="paramname"> <em>st</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00049.html">Date</a>&nbsp;</td>
          <td class="paramname"> <em>nd</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Fixes the start and end date of an operationplan. Note that this overrules the standard duration given on the operation, i.e. no logic kicks in to verify the data makes sense. This is up to the user to take care of.<br/>
 The methods <a class="el" href="a00125.html#a2265d1554215f7185b8556f53c5805f2">setStart(Date)</a> and <a class="el" href="a00125.html#af70f6b33dcda3739d1c090a632408cd4">setEnd(Date)</a> are therefore preferred since they properly apply all appropriate logic. </p>

<p>Definition at line <a class="el" href="a00218_source.html#l02106">2106</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p>

</div>
</div>
<a class="anchor" id="a832bf3ad7966932673a823ec419a2497"></a><!-- doxytag: member="frepple::OperationPlan::size" ref="a832bf3ad7966932673a823ec419a2497" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static unsigned long frepple::OperationPlan::size </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns the number of operationplans in the system. This method is linear with the number of operationplans in the model, and should therefore be used only with care. </p>

<p>Definition at line <a class="el" href="a00218_source.html#l02026">2026</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p>

</div>
</div>
<a class="anchor" id="ad9f724fdfef715f511685078f381ae58"></a><!-- doxytag: member="frepple::OperationPlan::sizeFlowPlans" ref="ad9f724fdfef715f511685078f381ae58" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int frepple::OperationPlan::sizeFlowPlans </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns how many flowplans are created on an operationplan. </p>

<p>Definition at line <a class="el" href="a00218_source.html#l05995">5995</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p>

</div>
</div>
<a class="anchor" id="a877f62581eda5afd322354b954a8eb69"></a><!-- doxytag: member="frepple::OperationPlan::sizeLoadPlans" ref="a877f62581eda5afd322354b954a8eb69" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int frepple::OperationPlan::sizeLoadPlans </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns how many loadplans are created on an operationplan. </p>

<p>Definition at line <a class="el" href="a00218_source.html#l06055">6055</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p>

</div>
</div>
<a class="anchor" id="a1b1f4e51ed96e2f9899b10d9ae124454"></a><!-- doxytag: member="frepple::OperationPlan::str" ref="a1b1f4e51ed96e2f9899b10d9ae124454" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">PyObject* frepple::OperationPlan::str </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Default str method. <br/>
 Subclasses are expected to implement an override if the type supports conversion to a string. </p>

<p>Reimplemented from <a class="el" href="a00151.html#a5107e1ef282ff7f6b4e9cd47e74bb069">frepple::utils::PythonExtensionBase</a>.</p>

<p>Definition at line <a class="el" href="a00218_source.html#l02197">2197</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p>

</div>
</div>
<a class="anchor" id="a065b07a37ca069de47577b2c7d009898"></a><!-- doxytag: member="frepple::OperationPlan::updateProblems" ref="a065b07a37ca069de47577b2c7d009898" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void frepple::OperationPlan::updateProblems </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p><a class="el" href="a00134.html" title="A problem represents infeasibilities, alerts and warnings in the plan.">Problem</a> detection is actually done by the <a class="el" href="a00121.html" title="An operation represents an activity: these consume and produce material, take time...">Operation</a> class. That class actually "delegates" the responsability to this class, for efficiency. </p>

<p>Implements <a class="el" href="a00086.html#aaa5a254f9a1c7aab3d423de333185b87">frepple::HasProblems</a>.</p>

<p>Definition at line <a class="el" href="a00230_source.html#l00047">47</a> of file <a class="el" href="a00230_source.html">problems_operationplan.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a20a1f5c84a6ecab07fb59e69cba08e0c"></a><!-- doxytag: member="frepple::OperationPlan::writeElement" ref="a20a1f5c84a6ecab07fb59e69cba08e0c" args="(XMLOutput *, const Keyword &amp;, mode=DEFAULT) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void frepple::OperationPlan::writeElement </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00189.html">XMLOutput</a> *&nbsp;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="a00096.html">Keyword</a> &amp;&nbsp;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00257.html#a20c2c7e4c6b668e71c154ae3eb18f398">mode</a>&nbsp;</td>
          <td class="paramname"> = <code>DEFAULT</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Called while writing the model into an XML-file. The user class should write itself out, using the IOutStream members for its "simple" members and calling writeElement recursively for any contained objects. Not all classes are expected to implement this method. In instances of such a class can be created but can't be persisted. E.g. Command </p>

<p>Reimplemented from <a class="el" href="a00120.html#a324e43c334cb519909fcbdad0f8cbd82">frepple::utils::Object</a>.</p>

<p>Definition at line <a class="el" href="a00224_source.html#l00804">804</a> of file <a class="el" href="a00224_source.html">operationplan.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a6e290be8218f038b5c3613def7442c1a"></a><!-- doxytag: member="frepple::OperationPlan::writer" ref="a6e290be8218f038b5c3613def7442c1a" args="(const MetaCategory *, XMLOutput *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void frepple::OperationPlan::writer </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00114.html">MetaCategory</a> *&nbsp;</td>
          <td class="paramname"> <em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00189.html">XMLOutput</a> *&nbsp;</td>
          <td class="paramname"> <em>o</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Handles the persistence of operationplan objects. </p>

<p>Definition at line <a class="el" href="a00224_source.html#l00792">792</a> of file <a class="el" href="a00224_source.html">operationplan.cpp</a>.</p>

</div>
</div>
<hr/><h2>Friends And Related Function Documentation</h2>
<a class="anchor" id="a9680af3e50ffa25762282e46af5d2f16"></a><!-- doxytag: member="frepple::OperationPlan::Demand" ref="a9680af3e50ffa25762282e46af5d2f16" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">friend class <a class="el" href="a00051.html">Demand</a><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="a00218_source.html#l01878">1878</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p>

</div>
</div>
<a class="anchor" id="a59711ad93b304e7c02ef52f39e010ebf"></a><!-- doxytag: member="frepple::OperationPlan::FlowPlan" ref="a59711ad93b304e7c02ef52f39e010ebf" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">friend class <a class="el" href="a00068.html">FlowPlan</a><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="a00218_source.html#l01876">1876</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p>

</div>
</div>
<a class="anchor" id="a67171474c4da6cc8efe0c7fafefd2b2d"></a><!-- doxytag: member="frepple::OperationPlan::iterator" ref="a67171474c4da6cc8efe0c7fafefd2b2d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">friend class <a class="el" href="a00093.html">iterator</a><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="a00218_source.html#l02013">2013</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p>

</div>
</div>
<a class="anchor" id="a5e110698e5fb838ff5f374bd47196b7e"></a><!-- doxytag: member="frepple::OperationPlan::LoadPlan" ref="a5e110698e5fb838ff5f374bd47196b7e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">friend class <a class="el" href="a00105.html">LoadPlan</a><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="a00218_source.html#l01877">1877</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p>

</div>
</div>
<a class="anchor" id="a48b9344c0b50eaf70275cf053612df8f"></a><!-- doxytag: member="frepple::OperationPlan::Operation" ref="a48b9344c0b50eaf70275cf053612df8f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">friend class <a class="el" href="a00121.html">Operation</a><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="a00218_source.html#l01879">1879</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p>

</div>
</div>
<a class="anchor" id="a99838363e42c780d32063e2fa8400092"></a><!-- doxytag: member="frepple::OperationPlan::OperationAlternate" ref="a99838363e42c780d32063e2fa8400092" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">friend class <a class="el" href="a00122.html">OperationAlternate</a><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="a00218_source.html#l01880">1880</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p>

</div>
</div>
<a class="anchor" id="a97cf6fb42b2a6f68bd80eba74635f229"></a><!-- doxytag: member="frepple::OperationPlan::OperationRouting" ref="a97cf6fb42b2a6f68bd80eba74635f229" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">friend class <a class="el" href="a00128.html">OperationRouting</a><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="a00218_source.html#l01881">1881</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p>

</div>
</div>
<a class="anchor" id="a927e79623bb89e4abc83bc7853ac9957"></a><!-- doxytag: member="frepple::OperationPlan::ProblemPrecedence" ref="a927e79623bb89e4abc83bc7853ac9957" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">friend class <a class="el" href="a00147.html">ProblemPrecedence</a><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="a00218_source.html#l01882">1882</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p>

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="ad32c559f9ca421acae969bb0c5a194b6"></a><!-- doxytag: member="frepple::OperationPlan::metacategory" ref="ad32c559f9ca421acae969bb0c5a194b6" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="a00114.html">MetaCategory</a> * <a class="el" href="a00125.html#ad32c559f9ca421acae969bb0c5a194b6">frepple::OperationPlan::metacategory</a><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="a00218_source.html#l02272">2272</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p>

</div>
</div>
<a class="anchor" id="a31cde691d7cdf2ce2db1fb0eb595e34a"></a><!-- doxytag: member="frepple::OperationPlan::metadata" ref="a31cde691d7cdf2ce2db1fb0eb595e34a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="a00115.html">MetaClass</a> * <a class="el" href="a00125.html#a31cde691d7cdf2ce2db1fb0eb595e34a">frepple::OperationPlan::metadata</a><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="a00218_source.html#l02270">2270</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="a00218_source.html">model.h</a></li>
<li><a class="el" href="a00224_source.html">operationplan.cpp</a></li>
<li><a class="el" href="a00230_source.html">problems_operationplan.cpp</a></li>
</ul>
</div>
<hr size="1"/><address style="align: right;"><small>Documentation generated for frePPLe by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"/></a></small></address>
</div>
</div>
</body>
</html>