37 Date excessProblemStart;
38 Date shortageProblemStart;
39 bool shortageProblem =
false;
40 bool excessProblem =
false;
42 double shortageQty(0.0);
44 double excessQty(0.0);
45 for (flowplanlist::const_iterator iter = flowplans.
begin();
46 iter != flowplans.
end(); )
49 if (iter->getType() == 4)
50 curMax = iter->getMax();
51 else if (iter->getType() == 3)
52 curMin = iter->getMin();
56 if (iter!=flowplans.
end() && iter->getDate()==f->getDate())
continue;
59 double delta = f->getOnhand() - curMin;
65 shortageProblemStart = f->getDate();
67 shortageProblem =
true;
69 else if (delta < shortageQty)
78 if (f->getDate() != shortageProblemStart)
80 (
this, shortageProblemStart, f->getDate(), -shortageQty);
81 shortageProblem =
false;
89 delta = f->getOnhand() - curMax;
95 excessProblemStart = f->getDate();
99 else if (delta > excessQty)
108 if (f->getDate() != excessProblemStart)
110 (
this, excessProblemStart, f->getDate(), excessQty);
111 excessProblem =
false;
120 (
this, excessProblemStart, Date::infiniteFuture, excessQty);
125 (
this, shortageProblemStart, Date::infiniteFuture, -shortageQty);
133 ch <<
"Buffer '" <<
getBuffer() <<
"' has material excess of " << qty;
141 ch <<
"Buffer '" <<
getBuffer() <<
"' has material shortage of " << qty;