Error to Calculate Start Date finish Date Schedule

http://sourceforge.net/tracker2/?func=detail&aid=2525014&group_id=176962&atid=879332

error introducing in 6445
http://adempiere.svn.sourceforge.net/viewvc/adempiere?view=rev&revision=6445

Teo, I do not understand Why you apply a TRUNC for the dates it do not is right in you refactory, so the CRP do not work the way right for the trunc dates, in Manufacturing Management  all the dates are management with time.

Kind regards
Victor Perez
www.e-evolution.com
This commit is contained in:
vpj-cd 2009-01-21 01:17:29 +00:00
parent 61311d2269
commit ed4cbb8113
2 changed files with 10 additions and 9 deletions

View File

@ -182,7 +182,7 @@ public class CRPReasoner
*/
private Timestamp getAvailableDate(MResourceType t, Timestamp dateTime, boolean isScheduleBackward)
{
Timestamp date = TimeUtil.trunc(dateTime, TimeUtil.TRUNC_DAY);
Timestamp date = dateTime;
int direction = isScheduleBackward ? -1 : +1;
for (int i = 0; i <= 7; i++)
{
@ -203,21 +203,21 @@ public class CRPReasoner
public Timestamp getAvailableDate(MResource r, Timestamp dateTime, boolean isScheduleBackward)
{
MResourceType t = r.getResourceType();
Timestamp date = TimeUtil.trunc(dateTime, TimeUtil.TRUNC_DAY);
Timestamp date = dateTime;
ArrayList<Object> params = new ArrayList<Object>();
String whereClause;
String orderByClause;
int direction;
if (isScheduleBackward)
{
whereClause = "TRUNC("+MResourceUnAvailable.COLUMNNAME_DateFrom+") < ?";
whereClause = MResourceUnAvailable.COLUMNNAME_DateFrom+" <= ?";
params.add(date);
orderByClause = MResourceUnAvailable.COLUMNNAME_DateFrom+" DESC";
direction = 1;
}
else
{
whereClause = "TRUNC("+MResourceUnAvailable.COLUMNNAME_DateTo+") > ?";
whereClause = MResourceUnAvailable.COLUMNNAME_DateTo+" >= ?";
params.add(date);
orderByClause = MResourceUnAvailable.COLUMNNAME_DateTo;
direction = -1;

View File

@ -85,7 +85,7 @@ public class CRP extends SvrProcess {
private String runCRP()
{
POResultSet<MPPOrder> rs = reasoner.getPPOrdersNotCompletedQuery(p_S_Resource_ID, get_TrxName())
.scroll();
.scroll();
try
{
while(rs.hasNext())
@ -102,7 +102,7 @@ public class CRP extends SvrProcess {
return "OK";
}
private void runCRP(MPPOrder order)
public void runCRP(MPPOrder order)
{
log.fine("PP_Order DocumentNo:" + order.getDocumentNo());
BigDecimal qtyOpen = order.getQtyOpen();
@ -213,13 +213,12 @@ public class CRP extends SvrProcess {
// Total duration of workflow node (seconds) ...
// ... its static single parts ...
long totalDuration =
//node.getQueuingTime()
+ node.getQueuingTime()
+ node.getSetupTimeRequiered() // Use the present required setup time to notice later changes
+ node.getMovingTime()
+ node.getWaitingTime()
;
// ... and its qty dependend working time ... (Use the present required duration time to notice later changes)
//totalDuration = totalDuration.add(qty.multiply(new BigDecimal(node.getDurationRequiered())));
totalDuration += qty.doubleValue() * node.getDuration();
// Returns the total duration of a node in milliseconds.
@ -315,6 +314,8 @@ public class CRP extends SvrProcess {
log.fine(" --> start=" + start + " <---------------------------------------- ");
return start;
}
}
}