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);
61 : downstream(b), firstIteration(true)
64 followPegging(opplan, 0, opplan->
getQuantity(), 1.0);
78 state& t = states.top();
89 states.push(state(l, q, f, fc, fp, p));
100 state& st = states.top();
113 if (st.cons_flowplan)
114 followPegging(st.cons_flowplan->getOperationPlan()->getTopOwner(),
115 st.level-1, st.qty, st.factor);
118 if (first) states.pop();
128 throw LogicException(
"Incrementing the iterator beyond it's end");
131 state& st = states.top();
144 if (st.prod_flowplan)
145 followPegging(st.prod_flowplan->getOperationPlan()->getTopOwner(),
146 st.level+1, st.qty, st.factor);
149 if (first) states.pop();
156 (
const OperationPlan* op,
short nextlevel,
double qty,
double factor)
160 bool noFlowPlans =
true;
169 i->getFlow()->getBuffer()->followPegging(*
this, &*i, nextlevel, qty, factor);
181 i->getFlow()->getBuffer()->followPegging(*
this, &*i, nextlevel, qty, factor);
191 followPegging(&*j, nextlevel, qty, factor);
198 firstIteration =
false;
201 if (!
operator bool())
return NULL;
203 return static_cast<PyObject*
>(
this);