mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
Update disposition schedule action for a record when linking or unlinking it.
This commit is contained in:
@@ -142,6 +142,7 @@
|
|||||||
org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService.updateDispositionActionDefinition=RM_ALLOW
|
org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService.updateDispositionActionDefinition=RM_ALLOW
|
||||||
org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService.isNextDispositionActionEligible=RM.Read.0
|
org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService.isNextDispositionActionEligible=RM.Read.0
|
||||||
org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService.getNextDispositionAction=RM.Read.0
|
org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService.getNextDispositionAction=RM.Read.0
|
||||||
|
org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService.updateDispositionWhenLinkingOrUnlinking=RM.Read.0
|
||||||
org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService.getCompletedDispositionActions=RM.Read.0
|
org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService.getCompletedDispositionActions=RM.Read.0
|
||||||
org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService.getLastCompletedDispostionAction=RM.Read.0
|
org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService.getLastCompletedDispostionAction=RM.Read.0
|
||||||
org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService.isDisposableItemCutoff=RM.Read.0
|
org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService.isDisposableItemCutoff=RM.Read.0
|
||||||
|
@@ -264,4 +264,12 @@ public interface DispositionService
|
|||||||
* @return the initial disposition
|
* @return the initial disposition
|
||||||
*/
|
*/
|
||||||
DispositionSchedule getOriginDispositionSchedule(NodeRef nodeRef);
|
DispositionSchedule getOriginDispositionSchedule(NodeRef nodeRef);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Updates disposition action step when linking or unlinking
|
||||||
|
* the given record to/from a record folder
|
||||||
|
*
|
||||||
|
* @param record
|
||||||
|
*/
|
||||||
|
void updateDispositionWhenLinkingOrUnlinking(NodeRef record);
|
||||||
}
|
}
|
||||||
|
@@ -1095,6 +1095,26 @@ public class DispositionServiceImpl extends ServiceBaseImpl
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void updateDispositionWhenLinkingOrUnlinking(NodeRef record)
|
||||||
|
{
|
||||||
|
List<NodeRef> recordFolders = recordFolderService.getRecordFolders(record);
|
||||||
|
|
||||||
|
DispositionAction nextDispositionAction = getNextDispositionAction(record);
|
||||||
|
|
||||||
|
NextActionFromDisposition dsNextAction = getNextDispositionAction(record, recordFolders, nextDispositionAction);
|
||||||
|
final NodeRef action = dsNextAction.getNextActionNodeRef();
|
||||||
|
final Date dispositionActionDate = dsNextAction.getNextActionDateAsOf();
|
||||||
|
AuthenticationUtil.runAsSystem(new RunAsWork<Void>()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public Void doWork()
|
||||||
|
{
|
||||||
|
nodeService.setProperty(action, PROP_DISPOSITION_AS_OF, dispositionActionDate);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Helper method to determine if a node is frozen or has frozen children
|
* Helper method to determine if a node is frozen or has frozen children
|
||||||
*
|
*
|
||||||
|
@@ -34,14 +34,12 @@ import java.util.Set;
|
|||||||
|
|
||||||
import org.alfresco.error.AlfrescoRuntimeException;
|
import org.alfresco.error.AlfrescoRuntimeException;
|
||||||
import org.alfresco.model.ContentModel;
|
import org.alfresco.model.ContentModel;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.RecordsManagementServiceRegistry;
|
|
||||||
import org.alfresco.module.org_alfresco_module_rm.RecordsManagementPolicies.BeforeFileRecord;
|
import org.alfresco.module.org_alfresco_module_rm.RecordsManagementPolicies.BeforeFileRecord;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.RecordsManagementPolicies.OnFileRecord;
|
import org.alfresco.module.org_alfresco_module_rm.RecordsManagementPolicies.OnFileRecord;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.capability.Capability;
|
import org.alfresco.module.org_alfresco_module_rm.capability.Capability;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.capability.CapabilityService;
|
import org.alfresco.module.org_alfresco_module_rm.capability.CapabilityService;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.capability.RMPermissionModel;
|
import org.alfresco.module.org_alfresco_module_rm.capability.RMPermissionModel;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionSchedule;
|
import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionSchedule;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionScheduleImpl;
|
|
||||||
import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService;
|
import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.dod5015.DOD5015Model;
|
import org.alfresco.module.org_alfresco_module_rm.dod5015.DOD5015Model;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanService;
|
import org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanService;
|
||||||
@@ -547,6 +545,8 @@ public class RecordServiceImpl extends BaseBehaviourBean
|
|||||||
|
|
||||||
// create and file the content as a record
|
// create and file the content as a record
|
||||||
file(nodeRef);
|
file(nodeRef);
|
||||||
|
// recalculate disposition schedule for the record when linking it
|
||||||
|
dispositionService.updateDispositionWhenLinkingOrUnlinking(nodeRef);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1695,7 +1695,7 @@ public class RecordServiceImpl extends BaseBehaviourBean
|
|||||||
// ensure we are linking a record to a record folder
|
// ensure we are linking a record to a record folder
|
||||||
if(isRecord(record) && isRecordFolder(recordFolder))
|
if(isRecord(record) && isRecordFolder(recordFolder))
|
||||||
{
|
{
|
||||||
// ensure that we are not linking a record to an exisiting location
|
// ensure that we are not linking a record to an existing location
|
||||||
List<ChildAssociationRef> parents = nodeService.getParentAssocs(record);
|
List<ChildAssociationRef> parents = nodeService.getParentAssocs(record);
|
||||||
for (ChildAssociationRef parent : parents)
|
for (ChildAssociationRef parent : parents)
|
||||||
{
|
{
|
||||||
@@ -1718,6 +1718,9 @@ public class RecordServiceImpl extends BaseBehaviourBean
|
|||||||
record,
|
record,
|
||||||
ContentModel.ASSOC_CONTAINS,
|
ContentModel.ASSOC_CONTAINS,
|
||||||
QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, name));
|
QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, name));
|
||||||
|
|
||||||
|
// recalculate disposition schedule for the record when linking it
|
||||||
|
dispositionService.updateDispositionWhenLinkingOrUnlinking(record);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -1774,6 +1777,9 @@ public class RecordServiceImpl extends BaseBehaviourBean
|
|||||||
|
|
||||||
// remove the link
|
// remove the link
|
||||||
nodeService.removeChild(recordFolder, record);
|
nodeService.removeChild(recordFolder, record);
|
||||||
|
|
||||||
|
// recalculate disposition schedule for record after unlinking it
|
||||||
|
dispositionService.updateDispositionWhenLinkingOrUnlinking(record);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user