38 x.
setDoc(
"frePPLe iterator for demand pegging");
47 : downstream(false), firstIteration(true)
51 for (Demand::OperationPlan_list::const_iterator opplaniter = d->
getDelivery().begin();
53 followPegging(*opplaniter, 0, (*opplaniter)->getQuantity(), 1.0);
69 state& t = states.top();
80 states.push(state(l, q, f, fc, fp, p));
91 state& st = states.top();
104 if (st.cons_flowplan)
105 followPegging(st.cons_flowplan->getOperationPlan()->getTopOwner(),
106 st.level-1, st.qty, st.factor);
109 if (first) states.pop();
119 throw LogicException(
"Incrementing the iterator beyond it's end");
122 state& st = states.top();
135 if (st.prod_flowplan)
136 followPegging(st.prod_flowplan->getOperationPlan()->getTopOwner(),
137 st.level+1, st.qty, st.factor);
140 if (first) states.pop();
147 (
const OperationPlan* op,
short nextlevel,
double qty,
double factor)
151 bool noFlowPlans =
true;
160 i->getFlow()->getBuffer()->followPegging(*
this, &*i, nextlevel, qty, factor);
172 i->getFlow()->getBuffer()->followPegging(*
this, &*i, nextlevel, qty, factor);
182 followPegging(&*j, nextlevel, qty, factor);
189 firstIteration =
false;
192 if (!
operator bool())
return NULL;
194 return static_cast<PyObject*
>(
this);