@Transactional public class ProposalHierarchyServiceImpl extends Object implements ProposalHierarchyService
HIERARCHY_CANCEL_APPSTATUS, HIERARCHY_CHILD_CANCEL_APPSTATUS, HIERARCHY_CHILD_DISAPPROVE_APPSTATUS, HIERARCHY_CHILD_ENROUTE_APPSTATUS, HIERARCHY_CHILD_FINAL_APPSTATUS, HIERARCHY_CHILD_PROCESSED_APPSTATUS, HIERARCHY_CHILD_REJECTED_APPSTATUS, HIERARCHY_DISAPPROVE_APPSTATUS, HIERARCHY_ENROUTE_APPSTATUS, HIERARCHY_FINAL_APPSTATUS, HIERARCHY_PROCESSED_APPSTATUS, HIERARCHY_REJECTED_APPSTATUS, HIERARCHY_ROUTING_PARENT_APPROVED_ANNOTATION, HIERARCHY_ROUTING_PARENT_CANCELLED_ANNOTATION, HIERARCHY_ROUTING_PARENT_DISAPPROVED_ANNOTATION, HIERARCHY_ROUTING_PARENT_REJECTED_ANNOTATION, HIERARCHY_ROUTING_PARENT_RESUBMITTED_ANNOTATION, HIERARCHY_ROUTING_PARENT_SUBMITTED_ANNOTATION, PROPOSAL_DEVELOPMENT_DOCUMENT_TYPE, PROPOSAL_ROUTING_REJECTED_ANNOTATION| Constructor and Description |
|---|
ProposalHierarchyServiceImpl() |
| Modifier and Type | Method and Description |
|---|---|
protected void |
aggregateHierarchy(DevelopmentProposal hierarchy) |
boolean |
allChildBudgetsAreComplete(String parentProposalNumber) |
void |
calculateAndSetProposalAppDocStatus(ProposalDevelopmentDocument doc,
org.kuali.rice.kew.framework.postprocessor.DocumentRouteStatusChange dto) |
protected String |
calculateChildRouteStatus(ProposalDevelopmentDocument hierarchy,
org.kuali.rice.kew.framework.postprocessor.DocumentRouteStatusChange dto)
Based on the hierarchy, and route status change of the parent, calculate what route action should be taken on the children.
|
protected int |
computeHierarchyHashCode(Budget budget)
Creates a hash of the data pertinent to a hierarchy for comparison during hierarchy syncing.
|
protected int |
computeHierarchyHashCode(DevelopmentProposal proposal)
Creates a hash of the data pertinent to a hierarchy for comparison during hierarchy syncing.
|
protected void |
copyInitialAttachments(DevelopmentProposal srcProposal,
DevelopmentProposal destProposal) |
protected void |
copyInitialData(DevelopmentProposal hierarchyProposal,
DevelopmentProposal srcProposal) |
String |
createHierarchy(DevelopmentProposal initialChild)
This method takes a proposal, creates a Hierarchy
and links the proposal as the initial child.
|
protected void |
finalizeHierarchySync(DevelopmentProposal hierarchyProposal) |
protected void |
finalizeHierarchySync(ProposalDevelopmentDocument pdDoc) |
protected BudgetPeriod |
findOrCreateMatchingPeriod(BudgetPeriod childPeriod,
Budget parentBudget) |
protected BudgetService |
getBudgetService() |
BudgetSummaryService |
getBudgetSummaryService() |
protected org.kuali.rice.krad.service.BusinessObjectService |
getBusinessObjectService() |
List<ProposalDevelopmentDocument> |
getChildProposalDevelopmentDocuments(String parentProposalNumber)
Get a list of ProposalDevelopmentDocuments that are children of proposal number provided.
|
protected org.kuali.rice.core.api.config.property.ConfigurationService |
getConfigurationService() |
protected int |
getCorrespondingParentPeriod(Budget parentBudget,
Budget childBudget) |
DevelopmentProposal |
getDevelopmentProposal(String proposalNumber) |
protected org.kuali.rice.krad.service.DocumentService |
getDocumentService() |
protected DevelopmentProposal |
getHierarchy(String hierarchyProposalNumber) |
protected BudgetDocument<DevelopmentProposal> |
getHierarchyBudget(DevelopmentProposal hierarchyProposal) |
protected List<BudgetDocument<DevelopmentProposal>> |
getHierarchyBudgets(DevelopmentProposal hierarchyProposal) |
List<DevelopmentProposal> |
getHierarchyChildren(String parentProposalNumber)
Get a list of DevelopmentProposals that are children of proposal number provided.
|
String |
getHierarchyChildRouteStatus(String oldStatus,
String newStatus)
Calculate the AppDocStatus that should be applied to children of
a parent moving from oldStatus to newStatus.
|
List<HierarchyPersonnelSummary> |
getHierarchyPersonnelSummaries(String parentProposalNumber) |
List<HierarchyProposalSummary> |
getHierarchyProposalSummaries(String proposalNumber) |
protected org.kuali.rice.kim.api.identity.IdentityService |
getIdentityManagementService() |
protected KraAuthorizationService |
getKraAuthorizationService() |
KraDocumentRejectionService |
getKraDocumentRejectionService() |
protected NarrativeService |
getNarrativeService() |
protected List<PropScienceKeyword> |
getOldKeywords(DevelopmentProposal hierarchyProposal,
DevelopmentProposal childProposal)
Gets the old proposal science keywords before removing them from the parent.
|
protected org.kuali.rice.coreservice.framework.parameter.ParameterService |
getParameterService() |
ProposalDevelopmentDocument |
getParentDocument(ProposalDevelopmentDocument child)
Get the parent document of the hierarchy child document.
|
org.kuali.rice.kew.api.WorkflowDocument |
getParentWorkflowDocument(ProposalDevelopmentDocument child)
Get the parent workflow document of the hierarchy child document.
|
protected ProposalHierarchyDao |
getProposalHierarchyDao() |
protected List<ProposalPersonExtendedAttributes> |
getProposalPersonExtendedAttributesToDelete() |
HierarchyProposalSummary |
getProposalSummary(String proposalNumber) |
protected ProposalPersonBiographyService |
getPropPersonBioService() |
protected org.kuali.rice.kns.service.SessionDocumentService |
getSessionDocumentService() |
BudgetDocument<DevelopmentProposal> |
getSyncableBudget(DevelopmentProposal childProposal)
Gets the budget for hierarchy sync.
|
protected org.kuali.rice.krad.workflow.service.WorkflowDocumentService |
getWorkflowDocumentService() |
protected void |
initializeBudget(DevelopmentProposal hierarchyProposal,
DevelopmentProposal childProposal) |
protected boolean |
isBudgetSynchronized(DevelopmentProposal childProposal,
ProposalDevelopmentBudgetExt childBudget) |
protected boolean |
isBudgetSynchronized(String childProposalNumber) |
protected boolean |
isSynchronized(DevelopmentProposal childProposal) |
protected boolean |
isSynchronized(String childProposalNumber) |
protected void |
linkChild(DevelopmentProposal hierarchyProposal,
DevelopmentProposal newChildProposal,
String hierarchyBudgetTypeCode) |
void |
linkToHierarchy(DevelopmentProposal hierarchyProposal,
DevelopmentProposal newChildProposal,
String hierarchyBudgetTypeCode)
This method links a proposal to a Hierarchy.
|
protected void |
loadAttachmentContent(Narrative narrative) |
protected void |
loadBioContent(ProposalPersonBiography bio) |
DevelopmentProposal |
lookupParent(DevelopmentProposal childProposal) |
protected void |
prepareHierarchySync(DevelopmentProposal hierarchyProposal) |
protected void |
prepareHierarchySync(ProposalDevelopmentDocument pdDoc) |
protected void |
rejectProposal(ProposalDevelopmentDocument proposalDoc,
String reason,
String principalId,
String appDocStatus)
Reject a proposal by sending it to the first node ( as named by PROPOSALDEVELOPMENTDOCUMENT_KEW_INITIAL_NODE_NAME )
|
void |
rejectProposalDevelopmentDocument(String proposalNumber,
String reason,
String principalName,
org.apache.struts.upload.FormFile rejectFile)
Reject a proposal development document by proposal number.
|
protected void |
rejectProposalHierarchy(ProposalDevelopmentDocument hierarchyParent,
String reason,
String principalId)
Reject an entire proposal hierarchy.
|
protected void |
removeChildBudgetElements(DevelopmentProposal parentProposal,
Budget parentBudget,
String childProposalNumber) |
protected void |
removeChildElements(DevelopmentProposal parentProposal,
Budget parentBudget,
String childProposalNumber) |
void |
removeFromHierarchy(DevelopmentProposal childProposal)
This method removes childProposal from the hierarchy of which it is a member
|
protected String |
renderMessage(String key,
String... params) |
protected boolean |
rolesAreSimilar(ProposalPerson person1,
ProposalPerson person2) |
void |
routeHierarchyChildren(ProposalDevelopmentDocument proposalDevelopmentDocument,
org.kuali.rice.kew.framework.postprocessor.DocumentRouteStatusChange dto)
Given the proposalDevelopmentDocument, RouteStatusChangeDTO, and the current user principal name, route all of the child proposal appropriately.
|
void |
setBudgetService(BudgetService budgetService) |
void |
setBudgetSummaryService(BudgetSummaryService budgetSummaryService) |
void |
setBusinessObjectService(org.kuali.rice.krad.service.BusinessObjectService businessObjectService) |
void |
setConfigurationService(org.kuali.rice.core.api.config.property.ConfigurationService configurationService) |
void |
setDocumentService(org.kuali.rice.krad.service.DocumentService documentService) |
void |
setIdentityManagementService(org.kuali.rice.kim.api.identity.IdentityService identityManagerService) |
protected void |
setInitialPi(DevelopmentProposal hierarchy,
DevelopmentProposal child) |
void |
setKraAuthorizationService(KraAuthorizationService kraAuthorizationService) |
void |
setKraDocumentRejectionService(KraDocumentRejectionService kraDocumentRejectionService) |
void |
setNarrativeService(NarrativeService narrativeService) |
void |
setParameterService(org.kuali.rice.coreservice.framework.parameter.ParameterService parameterService) |
void |
setProposalHierarchyDao(ProposalHierarchyDao proposalHierarchyDao) |
void |
setPropPersonBioService(ProposalPersonBiographyService propPersonBioService) |
void |
setSessionDocumentService(org.kuali.rice.kns.service.SessionDocumentService sessionDocumentService) |
void |
setWorkflowDocumentService(org.kuali.rice.krad.workflow.service.WorkflowDocumentService workflowDocumentService) |
protected void |
synchronizeAll(DevelopmentProposal hierarchyProposal) |
protected boolean |
synchronizeAllChildProposals(DevelopmentProposal hierarchyProposal)
Synchronizes all child proposals to the parent.
|
protected void |
synchronizeAllChildren(DevelopmentProposal hierarchyProposal) |
void |
synchronizeAllChildren(ProposalDevelopmentDocument pdDoc)
This method synchronizes the contents of all children into the hierarchy.
|
protected void |
synchronizeBudget(DevelopmentProposal hierarchyProposal,
DevelopmentProposal childProposal,
Budget hierarchyBudget,
ProposalDevelopmentBudgetExt childBudget,
BudgetDocument hierarchyBudgetDocument)
Synchronizes the proposal budget from the child proposal to the parent proposal.
|
void |
synchronizeChild(DevelopmentProposal childProposal)
This method synchronizes the contents of one child into its hierarchy.
|
protected void |
synchronizeChildBudget(Budget parentBudget,
Budget childBudget,
String childProposalNumber,
String hierarchyBudgetTypeCode,
boolean isOriginatingChildBudget) |
protected boolean |
synchronizeChildProposal(DevelopmentProposal hierarchyProposal,
DevelopmentProposal childProposal)
Synchronizes the given child proposal to the parent.
|
protected boolean |
synchronizeChildProposalBudget(DevelopmentProposal hierarchyProposal,
ProposalDevelopmentBudgetExt budget,
DevelopmentProposal childProposal) |
void |
synchronizeChildProposalBudget(ProposalDevelopmentBudgetExt budget,
DevelopmentProposal childProposal)
This method syncs only the budget from the child proposal specificed to the hierarchy budget.
|
protected void |
synchronizeKeywords(DevelopmentProposal hierarchyProposal,
DevelopmentProposal childProposal,
List<PropScienceKeyword> oldKeywords)
Synchronizes the proposal science keywords from the child proposal to the parent proposal.
|
protected void |
synchronizeNarratives(DevelopmentProposal hierarchyProposal,
DevelopmentProposal childProposal)
Synchronizes the proposal narratives from the child proposal to the parent proposal.
|
protected void |
synchronizePersons(DevelopmentProposal hierarchyProposal,
DevelopmentProposal childProposal,
ProposalPerson principalInvestigator)
Synchronizes the proposal persons from the child proposal to the parent proposal.
|
protected void |
synchronizePersonsAndAggregate(DevelopmentProposal hierarchyProposal,
DevelopmentProposal primaryChildProposal,
ProposalPerson principalInvestigator)
Synchronizes the proposal persons from the child proposal to the parent proposal and then restores any proposal persons that were in the given child
proposal (and hence removed from the given parent proposal).
|
protected void |
synchronizeSpecialReviews(DevelopmentProposal hierarchyProposal,
DevelopmentProposal childProposal)
Synchronizes the proposal special reviews from the child proposal to the parent proposal.
|
protected void |
syncProposalPersons(DevelopmentProposal childProposal,
DevelopmentProposal hierarchyProposal,
ProposalPerson pi,
List<ProposalPerson> removedPersons) |
void |
updateAppDocStatus(ProposalDevelopmentDocument doc,
String principalId,
String newStatus)
Update the app doc status for the given document.
|
ProposalHierarchyErrorDto |
validateChildBudgetPeriods(DevelopmentProposal hierarchyProposal,
DevelopmentProposal childProposal,
boolean allowEndDateChange) |
boolean |
validateRemovePermissions(DevelopmentProposal childProposal,
String principalId) |
public void setIdentityManagementService(org.kuali.rice.kim.api.identity.IdentityService identityManagerService)
public void setBusinessObjectService(org.kuali.rice.krad.service.BusinessObjectService businessObjectService)
public void setDocumentService(org.kuali.rice.krad.service.DocumentService documentService)
public void setKraAuthorizationService(KraAuthorizationService kraAuthorizationService)
public void setProposalHierarchyDao(ProposalHierarchyDao proposalHierarchyDao)
public void setNarrativeService(NarrativeService narrativeService)
public void setBudgetService(BudgetService budgetService)
public void setPropPersonBioService(ProposalPersonBiographyService propPersonBioService)
public void setParameterService(org.kuali.rice.coreservice.framework.parameter.ParameterService parameterService)
public void setConfigurationService(org.kuali.rice.core.api.config.property.ConfigurationService configurationService)
public String createHierarchy(DevelopmentProposal initialChild) throws ProposalHierarchyException
ProposalHierarchyServicecreateHierarchy in interface ProposalHierarchyServiceProposalHierarchyException - if the proposal is already a member of a hierarchyorg.kuali.kra.proposaldevelopment.hierarchy.service.ProposalHierarchyService#createHierarchy(java.lang.String)public void linkToHierarchy(DevelopmentProposal hierarchyProposal, DevelopmentProposal newChildProposal, String hierarchyBudgetTypeCode) throws ProposalHierarchyException
ProposalHierarchyServicelinkToHierarchy in interface ProposalHierarchyServicehierarchyProposal - the hierarchy to link the new child tonewChildProposal - the proposal to link to the hierarchyhierarchyBudgetTypeCode - the type of budget syncing to perform with the childProposalHierarchyException - if hierarchyProposal is not a valid Hierarchy
or if newChildProposal is already a member of a hierarchy or does not existProposalHierarchyService.linkToHierarchy(org.kuali.kra.proposaldevelopment.bo.DevelopmentProposal, org.kuali.kra.proposaldevelopment.bo.DevelopmentProposal, java.lang.String)public void removeFromHierarchy(DevelopmentProposal childProposal) throws ProposalHierarchyException
ProposalHierarchyServiceremoveFromHierarchy in interface ProposalHierarchyServicechildProposal - the proposal to removeProposalHierarchyException - if childProposal is not a member of a hierarchyorg.kuali.kra.proposaldevelopment.hierarchy.service.ProposalHierarchyService#removeFromHierarchy(java.lang.String)public void synchronizeAllChildren(ProposalDevelopmentDocument pdDoc) throws ProposalHierarchyException
ProposalHierarchyServicesynchronizeAllChildren in interface ProposalHierarchyServicepdDoc - the hierarchy in questionProposalHierarchyException - if hierarchyProposalDocument is not a valid Hierarchyorg.kuali.kra.proposaldevelopment.hierarchy.service.ProposalHierarchySyncService#synchronizeAllChildren(java.lang.String)protected void synchronizeAllChildren(DevelopmentProposal hierarchyProposal) throws ProposalHierarchyException
ProposalHierarchyExceptionprotected void synchronizeAll(DevelopmentProposal hierarchyProposal) throws ProposalHierarchyException
ProposalHierarchyExceptionpublic void synchronizeChild(DevelopmentProposal childProposal) throws ProposalHierarchyException
ProposalHierarchyServicesynchronizeChild in interface ProposalHierarchyServicechildProposal - the child proposal in questionProposalHierarchyException - if childProposal is not a member of a hierarchyorg.kuali.kra.proposaldevelopment.hierarchy.service.ProposalHierarchySyncService#synchronizeChild(java.lang.String)public void synchronizeChildProposalBudget(ProposalDevelopmentBudgetExt budget, DevelopmentProposal childProposal) throws ProposalHierarchyException
ProposalHierarchyServicesynchronizeChildProposalBudget in interface ProposalHierarchyServiceProposalHierarchyExceptionpublic DevelopmentProposal lookupParent(DevelopmentProposal childProposal) throws ProposalHierarchyException
lookupParent in interface ProposalHierarchyServiceProposalHierarchyExceptionProposalHierarchyService.lookupParent(org.kuali.kra.proposaldevelopment.bo.DevelopmentProposal)protected void linkChild(DevelopmentProposal hierarchyProposal, DevelopmentProposal newChildProposal, String hierarchyBudgetTypeCode) throws ProposalHierarchyException
ProposalHierarchyExceptionprotected void copyInitialData(DevelopmentProposal hierarchyProposal, DevelopmentProposal srcProposal) throws ProposalHierarchyException
ProposalHierarchyExceptionprotected boolean synchronizeAllChildProposals(DevelopmentProposal hierarchyProposal) throws ProposalHierarchyException
hierarchyProposal - ProposalHierarchyExceptionprotected boolean synchronizeChildProposal(DevelopmentProposal hierarchyProposal, DevelopmentProposal childProposal) throws ProposalHierarchyException
If a key protocol person appears in multiple child proposals and is removed from the given child proposal, then this also aggregates that key person back to the parent proposal from a different child proposal, making sure that all the key persons in all of the child proposals are represented in the parent proposal.
hierarchyProposal - childProposal - ProposalHierarchyExceptionprotected boolean synchronizeChildProposalBudget(DevelopmentProposal hierarchyProposal, ProposalDevelopmentBudgetExt budget, DevelopmentProposal childProposal) throws ProposalHierarchyException
ProposalHierarchyExceptionprotected List<PropScienceKeyword> getOldKeywords(DevelopmentProposal hierarchyProposal, DevelopmentProposal childProposal)
hierarchyProposal - childProposal - protected void synchronizeKeywords(DevelopmentProposal hierarchyProposal, DevelopmentProposal childProposal, List<PropScienceKeyword> oldKeywords)
hierarchyProposal - childProposal - oldKeywords - protected void synchronizeSpecialReviews(DevelopmentProposal hierarchyProposal, DevelopmentProposal childProposal)
hierarchyProposal - childProposal - protected void synchronizeNarratives(DevelopmentProposal hierarchyProposal, DevelopmentProposal childProposal)
hierarchyProposal - childProposal - protected void synchronizePersonsAndAggregate(DevelopmentProposal hierarchyProposal, DevelopmentProposal primaryChildProposal, ProposalPerson principalInvestigator)
This first synchronizes the main proposal persons from the primary child proposal to the parent proposal and then runs the same algorithm on all other children of the parent proposal.
hierarchyProposal - primaryChildProposal - principalInvestigator - protected void synchronizePersons(DevelopmentProposal hierarchyProposal, DevelopmentProposal childProposal, ProposalPerson principalInvestigator)
hierarchyProposal - childProposal - principalInvestigator - protected void synchronizeBudget(DevelopmentProposal hierarchyProposal, DevelopmentProposal childProposal, Budget hierarchyBudget, ProposalDevelopmentBudgetExt childBudget, BudgetDocument hierarchyBudgetDocument) throws ProposalHierarchyException
hierarchyProposal - childProposal - hierarchyBudget - childBudget - hierarchyBudgetDocument - ProposalHierarchyExceptionprotected void syncProposalPersons(DevelopmentProposal childProposal, DevelopmentProposal hierarchyProposal, ProposalPerson pi, List<ProposalPerson> removedPersons)
protected void synchronizeChildBudget(Budget parentBudget, Budget childBudget, String childProposalNumber, String hierarchyBudgetTypeCode, boolean isOriginatingChildBudget) throws ProposalHierarchyException
ProposalHierarchyExceptionprotected BudgetPeriod findOrCreateMatchingPeriod(BudgetPeriod childPeriod, Budget parentBudget)
protected void aggregateHierarchy(DevelopmentProposal hierarchy) throws ProposalHierarchyException
ProposalHierarchyExceptionprotected DevelopmentProposal getHierarchy(String hierarchyProposalNumber) throws ProposalHierarchyException
ProposalHierarchyExceptionpublic DevelopmentProposal getDevelopmentProposal(String proposalNumber)
getDevelopmentProposal in interface ProposalHierarchyServiceprotected boolean isSynchronized(String childProposalNumber) throws ProposalHierarchyException
ProposalHierarchyExceptionprotected boolean isSynchronized(DevelopmentProposal childProposal) throws ProposalHierarchyException
ProposalHierarchyExceptionprotected boolean isBudgetSynchronized(String childProposalNumber) throws ProposalHierarchyException
ProposalHierarchyExceptionprotected boolean isBudgetSynchronized(DevelopmentProposal childProposal, ProposalDevelopmentBudgetExt childBudget) throws ProposalHierarchyException
ProposalHierarchyExceptionprotected void setInitialPi(DevelopmentProposal hierarchy, DevelopmentProposal child)
protected List<BudgetDocument<DevelopmentProposal>> getHierarchyBudgets(DevelopmentProposal hierarchyProposal) throws ProposalHierarchyException
ProposalHierarchyExceptionprotected BudgetDocument<DevelopmentProposal> getHierarchyBudget(DevelopmentProposal hierarchyProposal) throws ProposalHierarchyException
ProposalHierarchyExceptionpublic BudgetDocument<DevelopmentProposal> getSyncableBudget(DevelopmentProposal childProposal) throws ProposalHierarchyException
ProposalHierarchyServicegetSyncableBudget in interface ProposalHierarchyServiceProposalHierarchyExceptionprotected void initializeBudget(DevelopmentProposal hierarchyProposal, DevelopmentProposal childProposal) throws ProposalHierarchyException
ProposalHierarchyExceptionpublic ProposalHierarchyErrorDto validateChildBudgetPeriods(DevelopmentProposal hierarchyProposal, DevelopmentProposal childProposal, boolean allowEndDateChange) throws ProposalHierarchyException
validateChildBudgetPeriods in interface ProposalHierarchyServiceProposalHierarchyExceptionprotected int getCorrespondingParentPeriod(Budget parentBudget, Budget childBudget)
protected void removeChildElements(DevelopmentProposal parentProposal, Budget parentBudget, String childProposalNumber)
protected void removeChildBudgetElements(DevelopmentProposal parentProposal, Budget parentBudget, String childProposalNumber)
protected void prepareHierarchySync(DevelopmentProposal hierarchyProposal)
protected void prepareHierarchySync(ProposalDevelopmentDocument pdDoc)
protected void finalizeHierarchySync(ProposalDevelopmentDocument pdDoc) throws ProposalHierarchyException
ProposalHierarchyExceptionprotected void finalizeHierarchySync(DevelopmentProposal hierarchyProposal) throws ProposalHierarchyException
ProposalHierarchyExceptionprotected void copyInitialAttachments(DevelopmentProposal srcProposal, DevelopmentProposal destProposal)
protected void loadAttachmentContent(Narrative narrative)
protected void loadBioContent(ProposalPersonBiography bio)
public String getHierarchyChildRouteStatus(String oldStatus, String newStatus)
ProposalHierarchyServicegetHierarchyChildRouteStatus in interface ProposalHierarchyServiceoldStatus - The old workflow status of the parent document.newStatus - The new workflow status of the parent document.ProposalHierarchyService.getHierarchyChildRouteStatus(java.lang.String, java.lang.String)protected int computeHierarchyHashCode(DevelopmentProposal proposal)
protected int computeHierarchyHashCode(Budget budget)
public List<ProposalDevelopmentDocument> getChildProposalDevelopmentDocuments(String parentProposalNumber) throws ProposalHierarchyException
ProposalHierarchyServicegetChildProposalDevelopmentDocuments in interface ProposalHierarchyServiceparentProposalNumber - the proposal number of the hierarchy parent.ProposalHierarchyException - if the provided proposal is not a hierarchy.ProposalHierarchyService.getChildProposalDevelopmentDocuments(java.lang.String)public List<DevelopmentProposal> getHierarchyChildren(String parentProposalNumber)
ProposalHierarchyServicegetHierarchyChildren in interface ProposalHierarchyServiceparentProposalNumber - the proposal number of the hierarchy parent.ProposalHierarchyService.getHierarchyChildren(java.lang.String)public org.kuali.rice.kew.api.WorkflowDocument getParentWorkflowDocument(ProposalDevelopmentDocument child) throws ProposalHierarchyException
ProposalHierarchyServicegetParentWorkflowDocument in interface ProposalHierarchyServicechild - The child in questionProposalHierarchyException - if the provided proposal is not in a hierarchy.org.kuali.kra.proposaldevelopment.hierarchy.service.ProposalHierarchyService#getParentWorkflowStatus(org.kuali.kra.proposaldevelopment.bo.DevelopmentProposal)public ProposalDevelopmentDocument getParentDocument(ProposalDevelopmentDocument child) throws ProposalHierarchyException
ProposalHierarchyServicegetParentDocument in interface ProposalHierarchyServicechild - The child in questionProposalHierarchyException - if the provided proposal is not in a hierarchy.ProposalHierarchyService.getParentDocument(org.kuali.kra.proposaldevelopment.document.ProposalDevelopmentDocument)protected void rejectProposal(ProposalDevelopmentDocument proposalDoc, String reason, String principalId, String appDocStatus) throws org.kuali.rice.kew.api.exception.WorkflowException
proposalDoc - The ProposalDevelopmentDocument that should be rejected.appDocStatus - the application status to set in the workflow document.principalId - the principal we are rejecting the document as.appDocStatus - the application document status to apply ( does not apply if null )org.kuali.rice.kew.api.exception.WorkflowExceptionprotected void rejectProposalHierarchy(ProposalDevelopmentDocument hierarchyParent, String reason, String principalId) throws ProposalHierarchyException
hierarchyParent - The hierarchy to rejectreason - the reason to be applied to the annotation field. The reason will be pre-pended with static text indicating if it was a child or the parent.principalName - the name of the principal that is rejecting the document.ProposalHierarchyException - If hierarchyParent is not a hierarchy, or there was a problem rejecting one of the documents.public void rejectProposalDevelopmentDocument(String proposalNumber, String reason, String principalName, org.apache.struts.upload.FormFile rejectFile) throws org.kuali.rice.kew.api.exception.WorkflowException, ProposalHierarchyException, IOException
ProposalHierarchyServicerejectProposalDevelopmentDocument in interface ProposalHierarchyServiceproposalNumber - the proposalNumber you wish to rejectreason - the reason why it is rejected. Will be added to the route log.principalName - The princpal to reject the document as.rejectFile - The file uploaded when the proposoal development was rejected.org.kuali.rice.kew.api.exception.WorkflowException - if there is a problem getting the workflow document, or rejecting the document.ProposalHierarchyExceptionIOException - if there is a problem with the upload file.org.kuali.kra.proposaldevelopment.hierarchy.service.ProposalHierarchyService#rejectProposalDevelopmentDocument(java.lang.String, java.lang.String)protected String calculateChildRouteStatus(ProposalDevelopmentDocument hierarchy, org.kuali.rice.kew.framework.postprocessor.DocumentRouteStatusChange dto)
hierarchy - the heirarchy being routeddto - the route status change information.public void routeHierarchyChildren(ProposalDevelopmentDocument proposalDevelopmentDocument, org.kuali.rice.kew.framework.postprocessor.DocumentRouteStatusChange dto) throws ProposalHierarchyException
ProposalHierarchyServicerouteHierarchyChildren in interface ProposalHierarchyServiceproposalDevelopmentDocument - The heirarchy being routed.dto - the route status change dto object.ProposalHierarchyException - If there is a problem routing the children.org.kuali.kra.proposaldevelopment.hierarchy.service.ProposalHierarchyService#routeHierarchyChildren(org.kuali.kra.proposaldevelopment.document.ProposalDevelopmentDocument, org.kuali.rice.kew.framework.postprocessor.DocumentRouteStatusChange, java.lang.String)public void calculateAndSetProposalAppDocStatus(ProposalDevelopmentDocument doc, org.kuali.rice.kew.framework.postprocessor.DocumentRouteStatusChange dto) throws ProposalHierarchyException
calculateAndSetProposalAppDocStatus in interface ProposalHierarchyServiceProposalHierarchyExceptionpublic void updateAppDocStatus(ProposalDevelopmentDocument doc, String principalId, String newStatus) throws ProposalHierarchyException
ProposalHierarchyServiceupdateAppDocStatus in interface ProposalHierarchyServicedoc - The proposal dev document you want to update.principalId - the principal id to update it as.newStatus - the new status, can be any string.ProposalHierarchyExceptionpublic boolean allChildBudgetsAreComplete(String parentProposalNumber)
allChildBudgetsAreComplete in interface ProposalHierarchyServiceprotected boolean rolesAreSimilar(ProposalPerson person1, ProposalPerson person2)
public List<HierarchyPersonnelSummary> getHierarchyPersonnelSummaries(String parentProposalNumber) throws ProposalHierarchyException
getHierarchyPersonnelSummaries in interface ProposalHierarchyServiceProposalHierarchyExceptionProposalHierarchyService.getHierarchyPersonnelSummaries(java.lang.String)public List<HierarchyProposalSummary> getHierarchyProposalSummaries(String proposalNumber) throws ProposalHierarchyException
getHierarchyProposalSummaries in interface ProposalHierarchyServiceProposalHierarchyExceptionProposalHierarchyService.getHierarchyProposalSummaries(java.lang.String)public HierarchyProposalSummary getProposalSummary(String proposalNumber) throws ProposalHierarchyException
getProposalSummary in interface ProposalHierarchyServiceProposalHierarchyExceptionpublic boolean validateRemovePermissions(DevelopmentProposal childProposal, String principalId)
validateRemovePermissions in interface ProposalHierarchyServicepublic KraDocumentRejectionService getKraDocumentRejectionService()
public void setKraDocumentRejectionService(KraDocumentRejectionService kraDocumentRejectionService)
public void setSessionDocumentService(org.kuali.rice.kns.service.SessionDocumentService sessionDocumentService)
public void setWorkflowDocumentService(org.kuali.rice.krad.workflow.service.WorkflowDocumentService workflowDocumentService)
protected org.kuali.rice.krad.service.BusinessObjectService getBusinessObjectService()
protected org.kuali.rice.krad.service.DocumentService getDocumentService()
protected KraAuthorizationService getKraAuthorizationService()
protected ProposalHierarchyDao getProposalHierarchyDao()
protected NarrativeService getNarrativeService()
protected BudgetService getBudgetService()
protected ProposalPersonBiographyService getPropPersonBioService()
protected org.kuali.rice.coreservice.framework.parameter.ParameterService getParameterService()
protected org.kuali.rice.kim.api.identity.IdentityService getIdentityManagementService()
protected org.kuali.rice.core.api.config.property.ConfigurationService getConfigurationService()
protected List<ProposalPersonExtendedAttributes> getProposalPersonExtendedAttributesToDelete()
protected org.kuali.rice.kns.service.SessionDocumentService getSessionDocumentService()
protected org.kuali.rice.krad.workflow.service.WorkflowDocumentService getWorkflowDocumentService()
public BudgetSummaryService getBudgetSummaryService()
public void setBudgetSummaryService(BudgetSummaryService budgetSummaryService)
Copyright © 2013 The Kuali Foundation. All Rights Reserved.