34 if (userexit_resource) userexit_resource.
call(res,
PythonObject(data->constrainedPlanning));
41 <<
"' is asked in unconstrained mode: "<< (-data->
state->
q_qty) <<
" "
45 <<
"' is asked: "<< (-data->
state->
q_qty) <<
" "
50 if (!data->constrainedPlanning)
74 currentSetupOpplanDates = i->getDates();
77 if (j->getLoad()->getResource() == res && !j->isStart())
83 throw LogicException(
"Can't find loadplan on setup operationplan");
92 double curMax, prevMax;
94 bool HasSetupOverload;
122 HasSetupOverload =
false;
133 if (cur->getType() == 4)
134 curMax = cur->getMax(
false);
143 HasSetupOverload =
true;
148 if (cur->getDate() == curdate)
continue;
160 curdate = cur->getDate();
165 if (setupOpplan && !HasOverload)
174 if (cur->getType() == 4)
175 curMax = cur->getMax(
false);
184 HasSetupOverload =
true;
189 if (cur->getDate() == curdate)
continue;
198 HasSetupOverload =
true;
201 curdate = cur->getDate();
209 if (HasOverload && !HasSetupOverload
210 && curdate < data->state->q_loadplan->getDate())
249 curMax = cur->getMax(
false);
251 curdate = cur->getDate();
256 if (cur->getType() == 4) curMax = cur->getMax(
false);
268 if (cur->getDate() == curdate)
continue;
271 if (cur->getOnhand() < prevMax +
ROUNDING_ERROR && curdate < prevdate)
273 curdate = cur->getDate();
275 assert (curdate != prevdate);
302 while (HasOverload && data->
state->
a_qty!=0.0);
326 newDate = Date::infinitePast;
338 double ignored = 0.0;
351 if (cur->getType() == 4)
352 curMax = cur->getMax();
372 if (cur!=res->
getLoadPlans().
end() && cur->getDate()==loadpl->getDate())
374 curOnhand = loadpl->getOnhand();
384 else if (!newDate && loadpl->getDate()!=data->
state->
q_loadplan->
getDate() && curMax >= fabs(loadpl->getQuantity()))
388 newDate = loadpl->getDate();
393 if (HasOverload && newDate)
397 if (parallelOps <= 0) parallelOps = 1;
413 while (HasOverload && newDate);
428 if (!data->constrainedPlanning && data->
state->
a_qty == 0.0)
455 if (data->
state->
a_qty == 0.0 && data->logConstraints)
458 res, currentOpplan.
start, currentOpplan.
end, orig_q_qty);
466 logger <<
" using earlier capacity "
481 if (userexit_resource) userexit_resource.
call(res,
PythonObject(data->constrainedPlanning));