Changed calculating as of date

This commit is contained in:
roxana
2016-10-12 02:13:53 +03:00
parent d9bb9b2e00
commit fa042c81ae

View File

@@ -266,25 +266,28 @@ public class DispositionServiceImpl extends ServiceBaseImpl
{ {
final NextActionFromDisposition dsNextAction = getDispositionActionByNameForRecord(nodeRef); final NextActionFromDisposition dsNextAction = getDispositionActionByNameForRecord(nodeRef);
if (dsNextAction != null && !dsNextAction.getWriteMode().equals(WriteMode.READ_ONLY)) if (dsNextAction != null)
{ {
final NodeRef action = dsNextAction.getNextActionNodeRef(); if (!dsNextAction.getWriteMode().equals(WriteMode.READ_ONLY))
final String dispositionActionName = dsNextAction.getNextActionName();
final Date dispositionActionDate = dsNextAction.getNextActionDateAsOf();
AuthenticationUtil.runAsSystem(new RunAsWork<Void>()
{ {
@Override final NodeRef action = dsNextAction.getNextActionNodeRef();
public Void doWork() final String dispositionActionName = dsNextAction.getNextActionName();
final Date dispositionActionDate = dsNextAction.getNextActionDateAsOf();
AuthenticationUtil.runAsSystem(new RunAsWork<Void>()
{ {
nodeService.setProperty(action, PROP_DISPOSITION_AS_OF, dispositionActionDate); @Override
if (dsNextAction.getWriteMode().equals(WriteMode.DATE_AND_NAME)) public Void doWork()
{ {
nodeService.setProperty(action, PROP_DISPOSITION_ACTION_NAME, dispositionActionName); nodeService.setProperty(action, PROP_DISPOSITION_AS_OF, dispositionActionDate);
if (dsNextAction.getWriteMode().equals(WriteMode.DATE_AND_NAME))
{
nodeService.setProperty(action, PROP_DISPOSITION_ACTION_NAME, dispositionActionName);
}
return null;
} }
return null; });
} }
});
dsNodeRef = dsNextAction.getDispositionNodeRef(); dsNodeRef = dsNextAction.getDispositionNodeRef();
} }
} }
@@ -696,9 +699,16 @@ public class DispositionServiceImpl extends ServiceBaseImpl
} }
else else
{ {
// for now use 'NOW' as the default context date if (period.getPeriodType().equals("immediately"))
// TODO set the default period property ... cut off date or last disposition date depending on context {
contextDate = new Date(); contextDate = (Date)nodeService.getProperty(nodeRef, ContentModel.PROP_CREATED);
}
else
{
// for now use 'NOW' as the default context date
// TODO set the default period property ... cut off date or last disposition date depending on context
contextDate = new Date();
}
} }
// Calculate the as of date // Calculate the as of date
@@ -1006,6 +1016,7 @@ public class DispositionServiceImpl extends ServiceBaseImpl
public Date getDispositionActionDate(NodeRef record, NodeRef dispositionSchedule, String dispositionActionName) public Date getDispositionActionDate(NodeRef record, NodeRef dispositionSchedule, String dispositionActionName)
{ {
DispositionSchedule ds = new DispositionScheduleImpl(serviceRegistry, nodeService, dispositionSchedule);
List<ChildAssociationRef> assocs = nodeService.getChildAssocs(dispositionSchedule); List<ChildAssociationRef> assocs = nodeService.getChildAssocs(dispositionSchedule);
if (assocs != null && assocs.size() > 0) if (assocs != null && assocs.size() > 0)
{ {
@@ -1013,16 +1024,8 @@ public class DispositionServiceImpl extends ServiceBaseImpl
{ {
if (assoc != null && assoc.getQName().getLocalName().contains(dispositionActionName)) if (assoc != null && assoc.getQName().getLocalName().contains(dispositionActionName))
{ {
Date newAsOfDate = null; DispositionActionDefinition actionDefinition = ds.getDispositionActionDefinition(assoc.getChildRef().getId());
Period dispositionPeriod = (Period) nodeService.getProperty(assoc.getChildRef(), PROP_DISPOSITION_PERIOD); return calculateAsOfDate(record, actionDefinition, true);
Date recordCreationDate = (Date)nodeService.getProperty(record, ContentModel.PROP_CREATED);
if (dispositionPeriod != null)
{
// calculate the new as of date as we have been provided a new period
newAsOfDate = dispositionPeriod.getNextDate(recordCreationDate);
}
return newAsOfDate;
} }
} }
} }