From f22ce8fefd087826f2af22c1423ac42f206e8e9d Mon Sep 17 00:00:00 2001 From: blackcathacker Date: Thu, 3 Jul 2014 18:24:35 -0700 Subject: [PATCH 1/3] KRACOEUS-7518 : Remove references to documentdescription and replace with budget name --- .../budget/framework/core/AbstractBudget.java | 44 +++++-------------- .../framework/core/BudgetActionBase.java | 4 +- .../budget/framework/core/BudgetForm.java | 2 +- .../core/BudgetParentActionBase.java | 4 +- .../budget/framework/core/BudgetService.java | 2 - .../version/BudgetVersionsAction.java | 14 +++--- .../impl/core/AbstractBudgetService.java | 12 ----- .../impl/version/BudgetVersionRule.java | 4 +- ...oposalDevelopmentBudgetVersionsAction.java | 6 +-- .../model/KcTransactionalDocumentBase.java | 5 +-- .../award/budget/AwardBudgetServiceImpl.java | 2 +- .../web/struts/action/AwardBudgetsAction.java | 17 ++----- 12 files changed, 32 insertions(+), 84 deletions(-) diff --git a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/AbstractBudget.java b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/AbstractBudget.java index 445559213e0..778b566ddef 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/AbstractBudget.java +++ b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/AbstractBudget.java @@ -103,7 +103,7 @@ public abstract class AbstractBudget extends KcPersistableBusinessObjectBase imp private RateClass rateClass; @Transient - private boolean descriptionUpdatable; + private boolean nameUpdatable; @Column(name="BUDGET_NAME") private String name; @@ -114,9 +114,6 @@ public abstract class AbstractBudget extends KcPersistableBusinessObjectBase imp @Transient private String printBudgetCommentFlag; - @Transient - private String documentDescription; - public Integer getBudgetVersionNumber() { return budgetVersionNumber; } @@ -256,15 +253,7 @@ public ScaleTwoDecimal getTotalIndirectCost() { public ScaleTwoDecimal getUnderrecoveryAmount() { return underrecoveryAmount == null ? new ScaleTwoDecimal(0) : underrecoveryAmount; } - - public String getDocumentDescription() { - return documentDescription; - } - - public void setDocumentDescription(String documentDescription) { - this.documentDescription = documentDescription; - } - + public String getComments() { return comments; } @@ -273,18 +262,6 @@ public void setComments(String comments) { this.comments = comments; } - public boolean isDescriptionUpdatable() { - return descriptionUpdatable; - } - - public String getDescriptionUpdatable() { - return descriptionUpdatable ? "Yes" : "No"; - } - - public void setDescriptionUpdatable(boolean descriptionUpdatable) { - this.descriptionUpdatable = descriptionUpdatable; - } - public int compareTo(AbstractBudget otherVersion) { return this.budgetVersionNumber.compareTo(otherVersion.getBudgetVersionNumber()); } @@ -330,8 +307,6 @@ public int hashCode() { result = prime * result + ((budgetVersionNumber == null) ? 0 : budgetVersionNumber.hashCode()); result = prime * result + ((comments == null) ? 0 : comments.hashCode()); result = prime * result + ((costSharingAmount == null) ? 0 : costSharingAmount.hashCode()); - result = prime * result + (descriptionUpdatable ? 1231 : 1237); - result = prime * result + ((documentDescription == null) ? 0 : documentDescription.hashCode()); result = prime * result + ((documentNumber == null) ? 0 : documentNumber.hashCode()); result = prime * result + ((endDate == null) ? 0 : endDate.hashCode()); result = prime * result + (finalVersionFlag ? 1231 : 1237); @@ -386,13 +361,6 @@ public boolean equals(Object obj) { return false; } else if (!costSharingAmount.equals(other.costSharingAmount)) return false; - if (descriptionUpdatable != other.descriptionUpdatable) - return false; - if (documentDescription == null) { - if (other.documentDescription != null) - return false; - } else if (!documentDescription.equals(other.documentDescription)) - return false; if (documentNumber == null) { if (other.documentNumber != null) return false; @@ -509,4 +477,12 @@ public RateClass getUrRateClass() { public void setUrRateClass(RateClass urRateClass) { this.urRateClass = urRateClass; } + + public boolean isNameUpdatable() { + return nameUpdatable; + } + + public void setNameUpdatable(boolean nameUpdatable) { + this.nameUpdatable = nameUpdatable; + } } diff --git a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetActionBase.java b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetActionBase.java index 92e26d674bb..c88f6da18ad 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetActionBase.java +++ b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetActionBase.java @@ -134,8 +134,8 @@ protected void copyBudget(BudgetParentDocument budgetParentDocument, Budget budg for (BudgetDocumentVersion budgetDocumentVersion : budgetVersions) { BudgetVersionOverview versionOverview = budgetDocumentVersion.getBudgetVersionOverview(); if(versionOverview.getBudgetVersionNumber().intValue()==budget.getBudgetVersionNumber().intValue()){ - versionOverview.setDescriptionUpdatable(true); - versionOverview.setDocumentDescription(budgetToCopy.getDocumentDescription() + " " + versionOverview.setNameUpdatable(true); + versionOverview.setName(budgetToCopy.getName() + " " + budgetToCopy.getBudgetVersionNumber() + " copy"); } } diff --git a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetForm.java b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetForm.java index 4175ed7bde1..4209078d56f 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetForm.java +++ b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetForm.java @@ -731,7 +731,7 @@ public void populateHeaderFields(WorkflowDocument workflowDocument) { BudgetVersionOverview budgetVersion = budgetDocumentVersion.getBudgetVersionOverview(); if (budgetVersion!=null && budgetVersion.getBudgetVersionNumber()!=null && budgetVersion.getBudgetVersionNumber().intValue() == budget.getBudgetVersionNumber().intValue()) { - budgetName = budgetVersion.getDocumentDescription(); + budgetName = budgetVersion.getName(); break; } } diff --git a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetParentActionBase.java b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetParentActionBase.java index 2ecd7ff3758..df67e8ec5b2 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetParentActionBase.java +++ b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetParentActionBase.java @@ -101,8 +101,8 @@ protected void copyBudget(BudgetParent budgetParent, BudgetVersionOverview budge List budgetVersions = budgetParent.getBudgetVersionOverviews(); for (AbstractBudget versionOverview : budgetVersions) { if(versionOverview.getBudgetVersionNumber().intValue()==budget.getBudgetVersionNumber().intValue()){ - versionOverview.setDescriptionUpdatable(true); - versionOverview.setDocumentDescription(budgetToCopy.getDocumentDescription() + " " + versionOverview.setNameUpdatable(true); + versionOverview.setName(budgetToCopy.getName() + " " + budgetToCopy.getBudgetVersionNumber() + " copy"); } } diff --git a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetService.java b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetService.java index 1b5419e845e..5d4972fbfad 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetService.java +++ b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetService.java @@ -44,8 +44,6 @@ public interface BudgetService { */ public Budget addBudgetVersion(BudgetParentDocument budgetParent, String versionName); - public void updateDocumentDescription(BudgetVersionOverview budgetVersion); - /** * * This method check if activity type changed, then display confirmation message on 'open' budget version. diff --git a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/version/BudgetVersionsAction.java b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/version/BudgetVersionsAction.java index ad0938e6abd..38e1ef281ea 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/version/BudgetVersionsAction.java +++ b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/version/BudgetVersionsAction.java @@ -93,16 +93,14 @@ public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServlet if (!StringUtils.equals(budgetForm.getMethodToCall(), "save") && budgetForm.isSaveAfterCopy()) { List overviews = parentDocument.getBudgetDocumentVersions(); BudgetVersionOverview copiedOverview = overviews.get(overviews.size() - 1).getBudgetVersionOverview(); - String copiedName = copiedOverview.getDocumentDescription(); - copiedOverview.setDocumentDescription("copied placeholder"); + String copiedName = copiedOverview.getName(); + copiedOverview.setName("copied placeholder"); LOG.debug("validating " + copiedName); boolean valid = getBudgetService().isBudgetVersionNameValid(parentDocument, copiedName); - copiedOverview.setDocumentDescription(copiedName); + copiedOverview.setName(copiedName); budgetForm.setSaveAfterCopy(!valid); if (!valid) { return mapping.findForward(Constants.MAPPING_BASIC); - } else { - budgetForm.getBudgetDocument().getBudget().getBudgetParent().getDocument().updateDocumentDescriptions(overviews); } } @@ -366,11 +364,11 @@ public ActionForward save(ActionMapping mapping, ActionForm form, HttpServletReq if (budgetForm.isSaveAfterCopy()) { List overviews = parentDocument.getBudgetDocumentVersions(); BudgetVersionOverview copiedOverview = overviews.get(overviews.size() - 1).getBudgetVersionOverview(); - String copiedName = copiedOverview.getDocumentDescription(); - copiedOverview.setDocumentDescription("copied placeholder"); + String copiedName = copiedOverview.getName(); + copiedOverview.setName("copied placeholder"); LOG.debug("validating " + copiedName); valid = getBudgetService().isBudgetVersionNameValid(parentDocument, copiedName); - copiedOverview.setDocumentDescription(copiedName); + copiedOverview.setName(copiedName); budgetForm.setSaveAfterCopy(!valid); } diff --git a/coeus-code/src/main/java/org/kuali/coeus/common/budget/impl/core/AbstractBudgetService.java b/coeus-code/src/main/java/org/kuali/coeus/common/budget/impl/core/AbstractBudgetService.java index 2dc86fabcc8..12a8c3950ea 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/common/budget/impl/core/AbstractBudgetService.java +++ b/coeus-code/src/main/java/org/kuali/coeus/common/budget/impl/core/AbstractBudgetService.java @@ -187,18 +187,6 @@ public void setBudgetVersionRule(BudgetVersionRule budgetVersionRule) { this.budgetVersionRule = budgetVersionRule; } - @Override - public void updateDocumentDescription(BudgetVersionOverview budgetVersion) { - DataObjectService doService = getDataObjectService(); - Map keyMap = new HashMap(); - keyMap.put("documentNumber", budgetVersion.getDocumentNumber()); - DocumentHeader docHeader = doService.find(DocumentHeader.class, keyMap); - if (!docHeader.getDocumentDescription().equals(budgetVersion.getDocumentDescription())) { - docHeader.setDocumentDescription(budgetVersion.getDocumentDescription()); - doService.save(docHeader); - } - } - public void setDocumentService(DocumentService documentService) { this.documentService = documentService; } diff --git a/coeus-code/src/main/java/org/kuali/coeus/common/budget/impl/version/BudgetVersionRule.java b/coeus-code/src/main/java/org/kuali/coeus/common/budget/impl/version/BudgetVersionRule.java index 0cc63215910..a7bd615d99c 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/common/budget/impl/version/BudgetVersionRule.java +++ b/coeus-code/src/main/java/org/kuali/coeus/common/budget/impl/version/BudgetVersionRule.java @@ -93,8 +93,8 @@ private boolean containsVersionOverview(BudgetVersionCollection document, String for (BudgetDocumentVersion budgetDocumentVersion : document.getBudgetDocumentVersions()) { BudgetVersionOverview version = budgetDocumentVersion.getBudgetVersionOverview(); - LOG.info("Comparing " + version.getDocumentDescription() + " to " + versionName); - if (version.getDocumentDescription().equals(versionName)) { + LOG.info("Comparing " + version.getName() + " to " + versionName); + if (version.getName().equals(versionName)) { return true; } } diff --git a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/budget/ProposalDevelopmentBudgetVersionsAction.java b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/budget/ProposalDevelopmentBudgetVersionsAction.java index ff722ca1280..6198d0fcbb5 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/budget/ProposalDevelopmentBudgetVersionsAction.java +++ b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/budget/ProposalDevelopmentBudgetVersionsAction.java @@ -268,11 +268,11 @@ public ActionForward save(ActionMapping mapping, ActionForm form, HttpServletReq final List overviews = pdForm.getProposalDevelopmentDocument().getBudgetDocumentVersions(); final BudgetDocumentVersion copiedDocumentOverview = overviews.get(overviews.size() - 1); BudgetVersionOverview copiedOverview = copiedDocumentOverview.getBudgetVersionOverview(); - final String copiedName = copiedOverview.getDocumentDescription(); - copiedOverview.setDocumentDescription("copied placeholder"); + final String copiedName = copiedOverview.getName(); + copiedOverview.setName("copied placeholder"); LOG.debug("validating " + copiedName); valid = getBudgetService().isBudgetVersionNameValid(pdForm.getProposalDevelopmentDocument(), copiedName); - copiedOverview.setDocumentDescription(copiedName); + copiedOverview.setName(copiedName); pdForm.setSaveAfterCopy(!valid); } diff --git a/coeus-code/src/main/java/org/kuali/coeus/sys/framework/model/KcTransactionalDocumentBase.java b/coeus-code/src/main/java/org/kuali/coeus/sys/framework/model/KcTransactionalDocumentBase.java index 842f714be98..10ee606f55d 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/sys/framework/model/KcTransactionalDocumentBase.java +++ b/coeus-code/src/main/java/org/kuali/coeus/sys/framework/model/KcTransactionalDocumentBase.java @@ -183,9 +183,8 @@ public void updateDocumentDescriptions(List budgetVersion BudgetService budgetService = KcServiceLocator.getService(BudgetService.class); for (BudgetDocumentVersion budgetDocumentVersion : budgetVersionOverviews) { BudgetVersionOverview budgetVersion = budgetDocumentVersion.getBudgetVersionOverview(); - if (budgetVersion.isDescriptionUpdatable() && !StringUtils.isBlank(budgetVersion.getDocumentDescription())) { - budgetService.updateDocumentDescription(budgetVersion); - budgetVersion.setDescriptionUpdatable(false); + if (budgetVersion.isNameUpdatable() && !StringUtils.isBlank(budgetVersion.getName())) { + budgetVersion.setNameUpdatable(false); } } } diff --git a/coeus-code/src/main/java/org/kuali/kra/award/budget/AwardBudgetServiceImpl.java b/coeus-code/src/main/java/org/kuali/kra/award/budget/AwardBudgetServiceImpl.java index 29e4d953194..61e71c34723 100644 --- a/coeus-code/src/main/java/org/kuali/kra/award/budget/AwardBudgetServiceImpl.java +++ b/coeus-code/src/main/java/org/kuali/kra/award/budget/AwardBudgetServiceImpl.java @@ -681,7 +681,7 @@ public boolean checkForOutstandingBudgets(BudgetParentDocument parentDoc) { || StringUtils.equals(awardBudget.getAwardBudgetStatusCode(), getCancelledBudgetStatus()))) { result = true; GlobalVariables.getMessageMap().putError(BUDGET_VERSION_ERROR_PREFIX, - KeyConstants.ERROR_AWARD_UNFINALIZED_BUDGET_EXISTS, awardBudget.getDocumentDescription()); + KeyConstants.ERROR_AWARD_UNFINALIZED_BUDGET_EXISTS, awardBudget.getName()); } } diff --git a/coeus-code/src/main/java/org/kuali/kra/award/web/struts/action/AwardBudgetsAction.java b/coeus-code/src/main/java/org/kuali/kra/award/web/struts/action/AwardBudgetsAction.java index 1167fbef5d1..19519526ea9 100644 --- a/coeus-code/src/main/java/org/kuali/kra/award/web/struts/action/AwardBudgetsAction.java +++ b/coeus-code/src/main/java/org/kuali/kra/award/web/struts/action/AwardBudgetsAction.java @@ -87,11 +87,11 @@ public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServlet final List overviews = awardForm.getAwardDocument().getBudgetDocumentVersions(); final BudgetDocumentVersion copiedDocumentOverview = overviews.get(overviews.size() - 1); BudgetVersionOverview copiedOverview = copiedDocumentOverview.getBudgetVersionOverview(); - final String copiedName = copiedOverview.getDocumentDescription(); - copiedOverview.setDocumentDescription("copied placeholder"); + final String copiedName = copiedOverview.getName(); + copiedOverview.setName("copied placeholder"); LOG.debug("validating " + copiedName); boolean valid = getBudgetService().isBudgetVersionNameValid(awardForm.getAwardDocument(), copiedName); - copiedOverview.setDocumentDescription(copiedName); + copiedOverview.setName(copiedName); awardForm.setSaveAfterCopy(!valid); if (!valid) { return mapping.findForward(Constants.MAPPING_BASIC); @@ -286,17 +286,6 @@ public ActionForward save(ActionMapping mapping, ActionForm form, HttpServletReq final AwardForm awardForm = (AwardForm) form; // check audit rules. If there is error, then budget can't have complete status boolean valid = true; - if (awardForm.isSaveAfterCopy()) { - final List overviews = awardForm.getAwardDocument().getBudgetDocumentVersions(); - final BudgetDocumentVersion copiedDocumentOverview = overviews.get(overviews.size() - 1); - BudgetVersionOverview copiedOverview = copiedDocumentOverview.getBudgetVersionOverview(); - final String copiedName = copiedOverview.getDocumentDescription(); - copiedOverview.setDocumentDescription("copied placeholder"); - LOG.debug("validating " + copiedName); - valid = getBudgetService().isBudgetVersionNameValid(awardForm.getAwardDocument(), copiedName); - copiedOverview.setDocumentDescription(copiedName); - awardForm.setSaveAfterCopy(!valid); - } if (awardForm.isAuditActivated()) { valid &= getBudgetService().validateBudgetAuditRuleBeforeSaveBudgetVersion(awardForm.getAwardDocument()); From 83f2dc7dd6aa2e251bb2a18909a2a8e0efddd9a6 Mon Sep 17 00:00:00 2001 From: blackcathacker Date: Mon, 7 Jul 2014 11:36:16 -0700 Subject: [PATCH 2/3] KRACOEUS-7518 : Change getBudgetDocumentVersion to return Budget --- .../budget/framework/core/BudgetAction.java | 12 +-- .../framework/core/BudgetActionBase.java | 28 +++---- .../core/BudgetDocumentAuthorizer.java | 17 ++--- .../framework/core/BudgetDocumentRule.java | 11 ++- .../budget/framework/core/BudgetForm.java | 11 +-- .../budget/framework/core/BudgetParent.java | 1 + .../core/BudgetParentActionBase.java | 18 ++--- .../framework/core/BudgetParentDocument.java | 25 ++++--- .../core/BudgetParentDocumentRule.java | 3 +- .../budget/framework/core/BudgetService.java | 2 +- .../version/BudgetVersionCollection.java | 5 +- .../version/BudgetVersionsAction.java | 35 ++++----- .../impl/core/AbstractBudgetService.java | 13 ++-- .../impl/core/BudgetParametersAction.java | 6 +- .../impl/summary/BudgetSummaryAction.java | 3 +- .../impl/version/BudgetVersionRule.java | 3 +- .../ProposalDevelopmentActionsAction.java | 3 +- ...ProposalDevelopmentDocumentAuthorizer.java | 5 +- .../impl/budget/ProposalBudgetService.java | 5 +- .../budget/ProposalBudgetServiceImpl.java | 20 ++--- .../budget/ProposalDevelopmentBudgetExt.java | 7 +- ...oposalDevelopmentBudgetVersionsAction.java | 32 ++++---- .../BudgetModularTotalDirectCostRule.java | 9 +-- .../copy/CopyBudgetVersionsValuesFinder.java | 5 +- .../impl/copy/ProposalCopyServiceImpl.java | 74 +++++++++---------- .../impl/core/DevelopmentProposal.java | 1 + .../impl/core/ProposalDevelopmentAction.java | 3 +- .../core/ProposalDevelopmentDocument.java | 21 +++--- .../core/ProposalDevelopmentServiceImpl.java | 38 ++-------- .../ProposalHierarchyServiceImpl.java | 10 +-- .../ProposalHierarcyActionHelper.java | 8 +- ...ropDevJavaFunctionKrmsTermServiceImpl.java | 46 +++++------- .../impl/lock/ProposalLockServiceImpl.java | 3 +- .../model/KcTransactionalDocumentBase.java | 6 +- .../kra/award/budget/AwardBudgetExt.java | 2 +- .../award/budget/AwardBudgetServiceImpl.java | 3 +- .../document/AwardBudgetDocumentRule.java | 4 +- .../kra/award/document/AwardDocument.java | 7 +- .../web/struts/action/AwardBudgetsAction.java | 15 ++-- .../impl/version/BudgetVersionOverview.xml | 40 ---------- .../org/kuali/kra/CoreSpringBeans.xml | 1 - .../kuali/kra/budget/repository-budget.xml | 5 +- .../CopyBudgetVersionsValuesFinderTest.java | 15 ++-- .../rules/BudgetVersionRuleTest.java | 20 ++--- .../BudgetModularTotalDirectCostRuleTest.java | 40 +++++----- .../PHS398ModularBudgetV1_2GeneratorTest.java | 8 +- 46 files changed, 271 insertions(+), 378 deletions(-) delete mode 100644 coeus-code/src/main/resources/org/kuali/coeus/common/budget/impl/version/BudgetVersionOverview.xml diff --git a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetAction.java b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetAction.java index 4a329b23122..a95034c2c63 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetAction.java +++ b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetAction.java @@ -251,10 +251,10 @@ public ActionForward reloadWithoutWarning(ActionMapping mapping, ActionForm form protected void updateBudgetAttributes(ActionForm form, HttpServletRequest request) { final BudgetForm budgetForm = (BudgetForm) form; BudgetDocument budgetDocument = budgetForm.getBudgetDocument(); - BudgetParentDocument parentDocument = budgetDocument.getBudget().getBudgetParent().getDocument(); + BudgetParent budgetParent = budgetDocument.getBudget().getBudgetParent(); - budgetForm.setFinalBudgetVersion(getFinalBudgetVersion(parentDocument.getBudgetDocumentVersions())); - setBudgetStatuses(budgetDocument.getBudget().getBudgetParent()); + budgetForm.setFinalBudgetVersion(getFinalBudgetVersion(budgetParent.getBudgets())); + setBudgetStatuses(budgetParent); final BudgetTDCValidator tdcValidator = new BudgetTDCValidator(request); tdcValidator.validateGeneratingWarnings(budgetDocument.getBudget().getBudgetParent().getDocument()); @@ -265,9 +265,9 @@ protected void updateBudgetAttributes(ActionForm form, HttpServletRequest reques public ActionForward versions(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { BudgetForm budgetForm = (BudgetForm) form; BudgetDocument budgetDocument = budgetForm.getBudgetDocument(); - BudgetParentDocument parentDocument = budgetDocument.getBudget().getBudgetParent().getDocument(); - budgetForm.setFinalBudgetVersion(getFinalBudgetVersion(parentDocument.getBudgetDocumentVersions())); - setBudgetStatuses(budgetDocument.getBudget().getBudgetParent()); + BudgetParent budgetParent = budgetDocument.getBudget().getBudgetParent(); + budgetForm.setFinalBudgetVersion(getFinalBudgetVersion(budgetParent.getBudgets())); + setBudgetStatuses(budgetParent); return mapping.findForward(Constants.BUDGET_VERSIONS_PAGE); } diff --git a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetActionBase.java b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetActionBase.java index c88f6da18ad..3a18f13e7bc 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetActionBase.java +++ b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetActionBase.java @@ -72,10 +72,10 @@ public ActionForward save(ActionMapping mapping, ActionForm form, HttpServletReq * @param budgetVersions * @return */ - protected Integer getFinalBudgetVersion(List budgetVersions) { - for (BudgetDocumentVersion budgetVersion: budgetVersions) { - if (budgetVersion.getBudgetVersionOverview().isFinalVersionFlag()) { - return budgetVersion.getBudgetVersionOverview().getBudgetVersionNumber(); + protected Integer getFinalBudgetVersion(List budgetVersions) { + for (Budget budgetVersion: budgetVersions) { + if (budgetVersion.isFinalVersionFlag()) { + return budgetVersion.getBudgetVersionNumber(); } } return null; @@ -86,10 +86,10 @@ protected Integer getFinalBudgetVersion(List budgetVersio * * @param parentDocument */ - protected void setBudgetParentStatus(BudgetParentDocument parentDocument) { - for (BudgetDocumentVersion budgetVersion: parentDocument.getBudgetDocumentVersions()) { - if (budgetVersion.getBudgetVersionOverview().isFinalVersionFlag()) { - parentDocument.getBudgetParent().setBudgetStatus(budgetVersion.getBudgetVersionOverview().getBudgetStatus()); + protected void setBudgetParentStatus(BudgetParent budgetParent) { + for (Budget budgetVersion: budgetParent.getBudgets()) { + if (budgetVersion.isFinalVersionFlag()) { + budgetParent.setBudgetStatus(budgetVersion.getBudgetStatus()); return; } } @@ -129,16 +129,8 @@ protected void copyBudget(BudgetParentDocument budgetParentDocument, Budget budg Budget budget = budgetDocToCopy.getBudget(); BudgetCommonService budgetService = getBudgetCommonService(budget.getBudgetParent()); Budget newBudget = budgetService.copyBudgetVersion(budget, copyPeriodOneOnly); - budgetParentDocument.refreshBudgetDocumentVersions(); - List budgetVersions = budgetParentDocument.getBudgetDocumentVersions(); - for (BudgetDocumentVersion budgetDocumentVersion : budgetVersions) { - BudgetVersionOverview versionOverview = budgetDocumentVersion.getBudgetVersionOverview(); - if(versionOverview.getBudgetVersionNumber().intValue()==budget.getBudgetVersionNumber().intValue()){ - versionOverview.setNameUpdatable(true); - versionOverview.setName(budgetToCopy.getName() + " " - + budgetToCopy.getBudgetVersionNumber() + " copy"); - } - } + newBudget.setNameUpdatable(true); + newBudget.setName(budgetToCopy.getName() + " " + budgetToCopy.getBudgetVersionNumber() + " copy"); } /** * diff --git a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetDocumentAuthorizer.java b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetDocumentAuthorizer.java index 6f1b5d6e010..8c062d238e3 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetDocumentAuthorizer.java +++ b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetDocumentAuthorizer.java @@ -15,6 +15,7 @@ */ package org.kuali.coeus.common.budget.framework.core; +import org.apache.commons.lang3.StringUtils; import org.kuali.coeus.common.budget.framework.auth.task.BudgetTask; import org.kuali.coeus.sys.framework.auth.KcTransactionalDocumentAuthorizerBase; import org.kuali.coeus.sys.framework.auth.task.Task; @@ -23,6 +24,7 @@ import org.kuali.coeus.common.budget.framework.core.BudgetDocument; import org.kuali.coeus.common.budget.framework.core.BudgetParentDocument; import org.kuali.coeus.common.budget.framework.version.BudgetDocumentVersion; +import org.kuali.kra.infrastructure.Constants; import org.kuali.kra.infrastructure.TaskGroupName; import org.kuali.kra.infrastructure.TaskName; import org.kuali.rice.kew.api.WorkflowDocument; @@ -78,7 +80,7 @@ else if (canExecuteBudgetTask(userId, budgetDoc, TaskName.VIEW_BUDGET)) { editModes.add("maintainProposalHierarchy"); } - if (isBudgetComplete(parentDocument, budgetDoc)) { + if (isBudgetComplete(budgetDoc.getBudget())) { editModes.remove("modifyBudgets"); editModes.remove("addBudget"); if (editModes.contains("modifyBudgets")) { @@ -213,16 +215,9 @@ public boolean canCopy(Document document, Person user) { * @param budgetDocument * @return */ - private boolean isBudgetComplete(BudgetParentDocument parentDocument, BudgetDocument budgetDocument) { - if (!parentDocument.isComplete()) { - return false; - } - for (BudgetDocumentVersion budgetVersion: parentDocument.getBudgetDocumentVersions()) { - if (budgetVersion.getBudgetVersionOverview().isFinalVersionFlag() && budgetVersion.getBudgetVersionOverview().getBudgetVersionNumber().equals(budgetDocument.getBudget().getBudgetVersionNumber())) { - return true; - } - } - return false; + private boolean isBudgetComplete(Budget budget) { + String budgetStatusCompleteCode = getParameterService().getParameterValueAsString(BudgetDocument.class, Constants.BUDGET_STATUS_COMPLETE_CODE); + return budget.isFinalVersionFlag() && StringUtils.equals(budgetStatusCompleteCode, budget.getBudgetStatus()); } diff --git a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetDocumentRule.java b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetDocumentRule.java index dfdf0052e45..2fddec4f154 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetDocumentRule.java +++ b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetDocumentRule.java @@ -405,13 +405,13 @@ public boolean processRunAuditBusinessRules(Document document) { retval &= new AwardBudgetCostLimitAuditRule().processRunAuditBusinessRules(document); } if (retval) { - processRunAuditBudgetVersionRule(((BudgetDocument) document).getBudget().getBudgetParent().getDocument()); + processRunAuditBudgetVersionRule(((BudgetDocument) document).getBudget()); } return retval; } - protected boolean processRunAuditBudgetVersionRule(BudgetParentDocument parentDocument) { + protected boolean processRunAuditBudgetVersionRule(Budget budget) { // audit check for budgetversion with final status boolean finalAndCompleteBudgetVersionFound = false; boolean budgetVersionsExists = false; @@ -420,11 +420,10 @@ protected boolean processRunAuditBudgetVersionRule(BudgetParentDocument parentDo List auditErrors = new ArrayList(); String budgetStatusCompleteCode = getParameterService().getParameterValueAsString( BudgetDocument.class, Constants.BUDGET_STATUS_COMPLETE_CODE); - for (BudgetDocumentVersion budgetDocumentVersion : parentDocument.getBudgetDocumentVersions()) { - BudgetVersionOverview budgetVersion = budgetDocumentVersion.getBudgetVersionOverview(); - budgetVersionsExists = true; + budgetVersionsExists = !budget.getBudgetParent().getBudgets().isEmpty(); + for (Budget budgetVersion : budget.getBudgetParent().getBudgets()) { if (budgetVersion.isFinalVersionFlag()) { - BudgetParent budgetParent =parentDocument.getBudgetParent(); + BudgetParent budgetParent =budget.getBudgetParent(); if (budgetParent.getBudgetStatus()!= null && budgetParent.getBudgetStatus().equals(budgetStatusCompleteCode)) { finalAndCompleteBudgetVersionFound = true; diff --git a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetForm.java b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetForm.java index 4209078d56f..5d3ed902eec 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetForm.java +++ b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetForm.java @@ -726,16 +726,7 @@ public void populateHeaderFields(WorkflowDocument workflowDocument) { String budgetVersionNumber = Constants.EMPTY_STRING; if (budgetDocument != null && parentDocument != null) { Budget budget = budgetDocument.getBudget(); - List budgetDocumentVersions = parentDocument.getBudgetDocumentVersions(); - for (BudgetDocumentVersion budgetDocumentVersion: budgetDocumentVersions) { - BudgetVersionOverview budgetVersion = budgetDocumentVersion.getBudgetVersionOverview(); - if (budgetVersion!=null && budgetVersion.getBudgetVersionNumber()!=null && - budgetVersion.getBudgetVersionNumber().intValue() == budget.getBudgetVersionNumber().intValue()) { - budgetName = budgetVersion.getName(); - break; - } - } - + budgetName = budget.getName(); if (budget.getBudgetVersionNumber() != null) { budgetVersionNumber = Integer.toString(budget.getBudgetVersionNumber()); } diff --git a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetParent.java b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetParent.java index 41448d7a138..586c483fed2 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetParent.java +++ b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetParent.java @@ -57,6 +57,7 @@ public interface BudgetParent { public BudgetParentDocument getDocument(); public List getBudgetVersionOverviews(); + public List getBudgets(); public Budget getNewBudget(); public Integer getNextBudgetVersionNumber(); diff --git a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetParentActionBase.java b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetParentActionBase.java index df67e8ec5b2..06953e2cf27 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetParentActionBase.java +++ b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetParentActionBase.java @@ -47,10 +47,10 @@ public class BudgetParentActionBase extends KcTransactionalDocumentActionBase { * @param budgetVersions * @return */ - protected Integer getFinalBudgetVersion(List budgetVersions) { - for (BudgetDocumentVersion budgetVersion: budgetVersions) { - if (budgetVersion.getBudgetVersionOverview().isFinalVersionFlag()) { - return budgetVersion.getBudgetVersionOverview().getBudgetVersionNumber(); + protected Integer getFinalBudgetVersion(List budgetVersions) { + for (Budget budgetVersion: budgetVersions) { + if (budgetVersion.isFinalVersionFlag()) { + return budgetVersion.getBudgetVersionNumber(); } } return null; @@ -61,10 +61,10 @@ protected Integer getFinalBudgetVersion(List budgetVersio * * @param parentDocument */ - protected void setBudgetParentStatus(BudgetParentDocument parentDocument) { - for (BudgetDocumentVersion budgetVersion: parentDocument.getBudgetDocumentVersions()) { - if (budgetVersion.getBudgetVersionOverview().isFinalVersionFlag()) { - parentDocument.getBudgetParent().setBudgetStatus(budgetVersion.getBudgetVersionOverview().getBudgetStatus()); + protected void setBudgetParentStatus(BudgetParent budgetParent) { + for (Budget budgetVersion: budgetParent.getBudgets()) { + if (budgetVersion.isFinalVersionFlag()) { + budgetParent.setBudgetStatus(budgetVersion.getBudgetStatus()); return; } } @@ -90,7 +90,7 @@ protected void setBudgetStatuses(BudgetParentDocument parentDocument) { * @param copyPeriodOneOnly if only the first budget period is to be copied */ @SuppressWarnings("unchecked") - protected void copyBudget(BudgetParent budgetParent, BudgetVersionOverview budgetToCopy, boolean copyPeriodOneOnly) + protected void copyBudget(BudgetParent budgetParent, Budget budgetToCopy, boolean copyPeriodOneOnly) throws WorkflowException { DocumentService documentService = KcServiceLocator.getService(DocumentService.class); BudgetDocument budgetDocToCopy = (BudgetDocument) documentService.getByDocumentHeaderId(budgetToCopy.getDocumentNumber()); diff --git a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetParentDocument.java b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetParentDocument.java index 021116164e1..a68e864249e 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetParentDocument.java +++ b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetParentDocument.java @@ -15,6 +15,7 @@ */ package org.kuali.coeus.common.budget.framework.core; +import org.apache.commons.lang.builder.CompareToBuilder; import org.kuali.coeus.sys.framework.auth.perm.Permissionable; import org.kuali.coeus.sys.framework.auth.task.Task; import org.kuali.coeus.sys.framework.model.KcTransactionalDocumentBase; @@ -30,6 +31,7 @@ import javax.persistence.MappedSuperclass; import java.util.Collections; +import java.util.Comparator; import java.util.List; @SuppressWarnings("serial") @@ -44,9 +46,9 @@ protected ParameterService getParameterService() { return KcServiceLocator.getService(ParameterService.class); } - public BudgetDocumentVersion getFinalBudgetVersion() { - for (BudgetDocumentVersion version : getBudgetDocumentVersions()) { - if (version.getBudgetVersionOverview().isFinalVersionFlag()) { + public Budget getFinalBudgetVersion() { + for (Budget version : getBudgetParent().getBudgets()) { + if (version.isFinalVersionFlag()) { return version; } } @@ -60,17 +62,22 @@ public BudgetDocumentVersion getFinalBudgetVersion() { * @return Integer */ public Integer getNextBudgetVersionNumber() { - List versions = getBudgetDocumentVersions(); + List versions = getBudgetParent().getBudgets(); if (versions.isEmpty()) { return 1; } - Collections.sort(versions); - BudgetDocumentVersion lastVersion = versions.get(versions.size() - 1); - return lastVersion.getBudgetVersionOverview().getBudgetVersionNumber() + 1; + Collections.sort(versions, new Comparator(){ + @Override + public int compare(Budget o1, Budget o2) { + return new CompareToBuilder().append(o1.getBudgetVersionNumber(), o2.getBudgetVersionNumber()).toComparison() * -1; + } + }); + Budget lastVersion = versions.get(0); + return lastVersion.getBudgetVersionNumber() + 1; } - public BudgetDocumentVersion getBudgetDocumentVersion(int selectedLine) { - return getBudgetDocumentVersions().get(selectedLine); + public Budget getBudgetDocumentVersion(int selectedLine) { + return getBudgetParent().getBudgets().get(selectedLine); } public abstract Permissionable getBudgetPermissionable(); diff --git a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetParentDocumentRule.java b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetParentDocumentRule.java index aee585b00a5..0a2b8d6a10e 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetParentDocumentRule.java +++ b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetParentDocumentRule.java @@ -39,8 +39,7 @@ protected boolean processBudgetVersionsBusinessRule( final DictionaryValidationService dictionaryValidationService = getKnsDictionaryValidationService(); int index = 0; - for (BudgetDocumentVersion budgetDocumentVersion: budgetParentDocument.getBudgetDocumentVersions()) { - BudgetVersionOverview budgetVersion = budgetDocumentVersion.getBudgetVersionOverview(); + for (Budget budgetVersion: budgetParentDocument.getBudgetParent().getBudgets()) { if (runDatactionaryValidation) { dictionaryValidationService.validateBusinessObject(budgetVersion, true); } diff --git a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetService.java b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetService.java index 5d4972fbfad..f2b92f092c4 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetService.java +++ b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetService.java @@ -107,7 +107,7 @@ public interface BudgetService { */ public String getBudgetExpensePanelName(BudgetPeriod budgetPeriod, BudgetLineItem budgetLineItem); - public Collection getSavedProposalRates(BudgetVersionOverview budgetToOpen); + public Collection getSavedProposalRates(Budget budgetToOpen); /** * diff --git a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/version/BudgetVersionCollection.java b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/version/BudgetVersionCollection.java index e9521ddbd41..b8cdf46c652 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/version/BudgetVersionCollection.java +++ b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/version/BudgetVersionCollection.java @@ -15,6 +15,7 @@ */ package org.kuali.coeus.common.budget.framework.version; +import org.kuali.coeus.common.budget.framework.core.Budget; import org.kuali.coeus.common.budget.framework.version.BudgetDocumentVersion; import java.util.List; @@ -28,9 +29,9 @@ */ public interface BudgetVersionCollection { - public List getBudgetDocumentVersions(); + public List getBudgetDocumentVersions(); - public void setBudgetDocumentVersions(List budgetDocumentVersions); + public void setBudgetDocumentVersions(List budgetDocumentVersions); void refreshBudgetDocumentVersions(); } diff --git a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/version/BudgetVersionsAction.java b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/version/BudgetVersionsAction.java index 38e1ef281ea..3d16940e75c 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/version/BudgetVersionsAction.java +++ b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/version/BudgetVersionsAction.java @@ -81,7 +81,8 @@ public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServlet final BudgetForm budgetForm = (BudgetForm) form; BudgetDocument budgetDocument = budgetForm.getBudgetDocument(); - BudgetParentDocument parentDocument = budgetDocument.getBudget().getBudgetParent().getDocument(); + BudgetParent budgetParent = budgetDocument.getBudget().getBudgetParent(); + BudgetParentDocument parentDocument = budgetParent.getDocument(); if (TOGGLE_TAB.equals(budgetForm.getMethodToCall())) { final BudgetTDCValidator tdcValidator = new BudgetTDCValidator(request); tdcValidator.validateGeneratingWarnings(parentDocument); @@ -91,13 +92,13 @@ public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServlet //be copied. By doing this here we make sure that it will still save //new budgets names even though the document itself cannot be saved if (!StringUtils.equals(budgetForm.getMethodToCall(), "save") && budgetForm.isSaveAfterCopy()) { - List overviews = parentDocument.getBudgetDocumentVersions(); - BudgetVersionOverview copiedOverview = overviews.get(overviews.size() - 1).getBudgetVersionOverview(); - String copiedName = copiedOverview.getName(); - copiedOverview.setName("copied placeholder"); + List budgets = budgetParent.getBudgets(); + Budget copiedBudget = budgets.get(budgets.size() -1); + String copiedName = copiedBudget.getName(); + copiedBudget.setName("copied placeholder"); LOG.debug("validating " + copiedName); boolean valid = getBudgetService().isBudgetVersionNameValid(parentDocument, copiedName); - copiedOverview.setName(copiedName); + copiedBudget.setName(copiedName); budgetForm.setSaveAfterCopy(!valid); if (!valid) { return mapping.findForward(Constants.MAPPING_BASIC); @@ -115,8 +116,8 @@ public ActionForward docHandler(ActionMapping mapping, ActionForm form, HttpServ BudgetDocument budgetDocument = budgetForm.getBudgetDocument(); Budget budget = budgetDocument.getBudget(); BudgetParentDocument parentDocument = budgetDocument.getBudget().getBudgetParent().getDocument(); - BudgetParent budgetParent = parentDocument.getBudgetParent(); - budgetForm.setFinalBudgetVersion(getFinalBudgetVersion(parentDocument.getBudgetDocumentVersions())); + BudgetParent budgetParent = budgetDocument.getBudget().getBudgetParent(); + budgetForm.setFinalBudgetVersion(getFinalBudgetVersion(budgetParent.getBudgets())); setBudgetStatuses(budgetParent); AwardBudgetService awardBudgetService = KcServiceLocator.getService(AwardBudgetService.class); BudgetService budgetService = KcServiceLocator.getService(BudgetService.class); @@ -206,8 +207,7 @@ public ActionForward openBudgetVersion(ActionMapping mapping, ActionForm form, H BudgetParentDocument budgetParentDocument = getBudgetParentDocument(budgetForm); BudgetParent budgetParent = budgetParentDocument.getBudgetParent(); - BudgetDocumentVersion budgetDocumentToOpen = budgetParentDocument.getBudgetDocumentVersion(getSelectedLine(request)); - BudgetVersionOverview budgetToOpen = budgetDocumentToOpen.getBudgetVersionOverview(); + Budget budgetToOpen = budgetParentDocument.getBudgetDocumentVersion(getSelectedLine(request)); DocumentService documentService = KcServiceLocator.getService(DocumentService.class); BudgetDocument budgetDocument = (BudgetDocument) documentService.getByDocumentHeaderId(budgetToOpen.getDocumentNumber()); Budget budgetOpen = budgetDocument.getBudget(); @@ -275,8 +275,7 @@ public ActionForward confirmSynchBudgetRate(ActionMapping mapping, ActionForm fo private BudgetDocument getSelectedBudgetDocument(HttpServletRequest request, BudgetForm budgetForm) throws WorkflowException { BudgetDocument budgetDoc = budgetForm.getBudgetDocument(); BudgetParentDocument budgetParentDocument = budgetDoc.getBudget().getBudgetParent().getDocument(); - BudgetDocumentVersion budgetDocumentToOpen = budgetParentDocument.getBudgetDocumentVersion(getSelectedLine(request)); - BudgetVersionOverview budgetToOpen = budgetDocumentToOpen.getBudgetVersionOverview(); + Budget budgetToOpen = budgetParentDocument.getBudgetDocumentVersion(getSelectedLine(request)); DocumentService documentService = KcServiceLocator.getService(DocumentService.class); BudgetDocument budgetDocument = (BudgetDocument) documentService.getByDocumentHeaderId(budgetToOpen.getDocumentNumber()); return budgetDocument; @@ -362,8 +361,8 @@ public ActionForward save(ActionMapping mapping, ActionForm form, HttpServletReq KeyConstants.CLEAR_AUDIT_ERRORS_BEFORE_CHANGE_STATUS_TO_COMPLETE); } if (budgetForm.isSaveAfterCopy()) { - List overviews = parentDocument.getBudgetDocumentVersions(); - BudgetVersionOverview copiedOverview = overviews.get(overviews.size() - 1).getBudgetVersionOverview(); + List overviews = parentDocument.getBudgetDocumentVersions(); + Budget copiedOverview = overviews.get(overviews.size() - 1); String copiedName = copiedOverview.getName(); copiedOverview.setName("copied placeholder"); LOG.debug("validating " + copiedName); @@ -373,8 +372,7 @@ public ActionForward save(ActionMapping mapping, ActionForm form, HttpServletReq } if (!valid) { - for (BudgetDocumentVersion budgetDocumentVersion: parentDocument.getBudgetDocumentVersions()) { - BudgetVersionOverview budgetVersion = budgetDocumentVersion.getBudgetVersionOverview(); + for (Budget budgetVersion: parentDocument.getBudgetDocumentVersions()) { String budgetStatusIncompleteCode = getParameterService().getParameterValueAsString( BudgetDocument.class, Constants.BUDGET_STATUS_INCOMPLETE_CODE); @@ -394,7 +392,7 @@ public ActionForward save(ActionMapping mapping, ActionForm form, HttpServletReq } updateThisBudget(budgetDocument); - setBudgetParentStatus(parentDocument); + setBudgetParentStatus(parentDocument.getBudgetParent()); ActionForward forward = super.save(mapping, form, request, response); setBudgetStatuses(budgetDocument.getBudget().getBudgetParent()); return forward; @@ -421,8 +419,7 @@ public ActionForward copyBudgetAllPeriods(ActionMapping mapping, ActionForm form private void updateThisBudget(BudgetDocument budgetDocument) { Budget budget = budgetDocument.getBudget(); - for (BudgetDocumentVersion documentVersion: budgetDocument.getBudget().getBudgetParent().getDocument().getBudgetDocumentVersions()) { - BudgetVersionOverview version = documentVersion.getBudgetVersionOverview(); + for (Budget version: budgetDocument.getBudget().getBudgetParent().getBudgets()) { if (budget.getBudgetVersionNumber().equals(version.getBudgetVersionNumber())) { budget.setFinalVersionFlag(Boolean.valueOf(version.isFinalVersionFlag())); budget.setBudgetStatus(version.getBudgetStatus()); diff --git a/coeus-code/src/main/java/org/kuali/coeus/common/budget/impl/core/AbstractBudgetService.java b/coeus-code/src/main/java/org/kuali/coeus/common/budget/impl/core/AbstractBudgetService.java index 12a8c3950ea..a51e3b88c47 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/common/budget/impl/core/AbstractBudgetService.java +++ b/coeus-code/src/main/java/org/kuali/coeus/common/budget/impl/core/AbstractBudgetService.java @@ -454,7 +454,7 @@ public String getBudgetExpensePanelName(BudgetPeriod budgetPeriod, BudgetLineIte @SuppressWarnings("unchecked") @Override - public Collection getSavedProposalRates(BudgetVersionOverview budgetToOpen) { + public Collection getSavedProposalRates(Budget budgetToOpen) { Map qMap = new HashMap(); qMap.put("budgetId",budgetToOpen.getBudgetId()); return businessObjectService.findMatching(BudgetRate.class, qMap); @@ -469,8 +469,7 @@ public boolean validateBudgetAuditRule(BudgetParentDocument parentDocument) t boolean budgetVersionsExists = false; List auditErrors = new ArrayList(); String budgetStatusCompleteCode = this.parameterService.getParameterValueAsString(BudgetDocument.class, Constants.BUDGET_STATUS_COMPLETE_CODE); - for (BudgetDocumentVersion budgetDocumentVersion : parentDocument.getBudgetDocumentVersions()) { - BudgetVersionOverview budgetVersion = budgetDocumentVersion.getBudgetVersionOverview(); + for (Budget budgetVersion : parentDocument.getBudgetDocumentVersions()) { budgetVersionsExists = true; if (budgetVersion.isFinalVersionFlag()) { valid &= applyAuditRuleForBudgetDocument(budgetVersion); @@ -497,8 +496,7 @@ public boolean validateBudgetAuditRule(BudgetParentDocument parentDocument) t public boolean validateBudgetAuditRuleBeforeSaveBudgetVersion(BudgetParentDocument proposalDevelopmentDocument) throws Exception { boolean valid = true; - for (BudgetDocumentVersion budgetDocumentVersion : proposalDevelopmentDocument.getBudgetDocumentVersions()) { - BudgetVersionOverview budgetVersion = budgetDocumentVersion.getBudgetVersionOverview(); + for (Budget budgetVersion : proposalDevelopmentDocument.getBudgetDocumentVersions()) { String budgetStatusCompleteCode = this.parameterService.getParameterValueAsString(BudgetDocument.class, Constants.BUDGET_STATUS_COMPLETE_CODE); @@ -534,7 +532,7 @@ public boolean validateBudgetAuditRuleBeforeSaveBudgetVersion(BudgetParentDocume } @SuppressWarnings("unchecked") - protected boolean applyAuditRuleForBudgetDocument(BudgetVersionOverview budgetVersion) throws Exception { + protected boolean applyAuditRuleForBudgetDocument(Budget budgetVersion) throws Exception { DocumentService documentService = getDocumentService(); BudgetDocument budgetDocument = (BudgetDocument) documentService.getByDocumentHeaderId(budgetVersion.getDocumentNumber()); return getKualiRuleService().applyRules(new DocumentAuditEvent(budgetDocument)); @@ -831,8 +829,7 @@ public void setBudgetStatuses(BudgetParentDocument parentDocument) { String budgetStatusIncompleteCode = getParameterService().getParameterValueAsString( BudgetDocument.class, Constants.BUDGET_STATUS_INCOMPLETE_CODE); - for (BudgetDocumentVersion budgetDocumentVersion: parentDocument.getBudgetDocumentVersions()) { - BudgetVersionOverview budgetVersion = budgetDocumentVersion.getBudgetVersionOverview(); + for (Budget budgetVersion: parentDocument.getBudgetDocumentVersions()) { if (budgetVersion.isFinalVersionFlag()) { budgetVersion.setBudgetStatus(parentDocument.getBudgetParent().getBudgetStatus()); } diff --git a/coeus-code/src/main/java/org/kuali/coeus/common/budget/impl/core/BudgetParametersAction.java b/coeus-code/src/main/java/org/kuali/coeus/common/budget/impl/core/BudgetParametersAction.java index e596b321de4..c151e847abf 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/common/budget/impl/core/BudgetParametersAction.java +++ b/coeus-code/src/main/java/org/kuali/coeus/common/budget/impl/core/BudgetParametersAction.java @@ -493,8 +493,7 @@ private void reconcileFinalBudgetFlags(BudgetForm budgetForm) { BudgetParentDocument parentDocument = budgetDocument.getBudget().getBudgetParent().getDocument(); if (budget.getFinalVersionFlag()) { // This version has been marked as final - update other versions. - for (BudgetDocumentVersion documentVersion : parentDocument.getBudgetDocumentVersions()) { - BudgetVersionOverview version = documentVersion.getBudgetVersionOverview(); + for (Budget version : parentDocument.getBudgetDocumentVersions()) { if (!budget.getBudgetVersionNumber().equals(version.getBudgetVersionNumber())) { version.setFinalVersionFlag(false); } @@ -556,8 +555,7 @@ private void updateThisBudgetVersion(BudgetDocument budgetDocument) { Budget budget = budgetDocument.getBudget(); BudgetParentDocument proposal = budgetDocument.getBudget().getBudgetParent().getDocument(); - for (BudgetDocumentVersion documentVersion : proposal.getBudgetDocumentVersions()) { - BudgetVersionOverview version = documentVersion.getBudgetVersionOverview(); + for (Budget version : proposal.getBudgetDocumentVersions()) { if (budget.getBudgetVersionNumber().equals(version.getBudgetVersionNumber())) { version.setFinalVersionFlag(budget.getFinalVersionFlag()); version.setBudgetStatus(budget.getBudgetStatus()); diff --git a/coeus-code/src/main/java/org/kuali/coeus/common/budget/impl/summary/BudgetSummaryAction.java b/coeus-code/src/main/java/org/kuali/coeus/common/budget/impl/summary/BudgetSummaryAction.java index 658a3a5c014..b550a41d4dd 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/common/budget/impl/summary/BudgetSummaryAction.java +++ b/coeus-code/src/main/java/org/kuali/coeus/common/budget/impl/summary/BudgetSummaryAction.java @@ -475,8 +475,7 @@ private void updateThisBudgetVersion(BudgetDocument budgetDocument) { if(parentDocument==null){ budgetDocument.refreshReferenceObject("parentDocument"); } - for (BudgetDocumentVersion documentVersion : budgetDocument.getBudget().getBudgetParent().getDocument().getBudgetDocumentVersions()) { - BudgetVersionOverview version = documentVersion.getBudgetVersionOverview(); + for (Budget version : budgetDocument.getBudget().getBudgetParent().getBudgets()) { Budget budget = budgetDocument.getBudget(); if (budget.getBudgetVersionNumber().equals(version.getBudgetVersionNumber())) { version.setFinalVersionFlag(budget.getFinalVersionFlag()); diff --git a/coeus-code/src/main/java/org/kuali/coeus/common/budget/impl/version/BudgetVersionRule.java b/coeus-code/src/main/java/org/kuali/coeus/common/budget/impl/version/BudgetVersionRule.java index a7bd615d99c..65dc6b80813 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/common/budget/impl/version/BudgetVersionRule.java +++ b/coeus-code/src/main/java/org/kuali/coeus/common/budget/impl/version/BudgetVersionRule.java @@ -90,8 +90,7 @@ private boolean isNameValid(String newBudgetVersionName) { * @returns true if it found versionName inside document, false otherwise */ private boolean containsVersionOverview(BudgetVersionCollection document, String versionName) { - for (BudgetDocumentVersion budgetDocumentVersion : document.getBudgetDocumentVersions()) { - BudgetVersionOverview version = budgetDocumentVersion.getBudgetVersionOverview(); + for (Budget version : document.getBudgetDocumentVersions()) { LOG.info("Comparing " + version.getName() + " to " + versionName); if (version.getName().equals(versionName)) { diff --git a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/action/ProposalDevelopmentActionsAction.java b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/action/ProposalDevelopmentActionsAction.java index c7ca7414c61..2b5d8aae435 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/action/ProposalDevelopmentActionsAction.java +++ b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/action/ProposalDevelopmentActionsAction.java @@ -1289,8 +1289,7 @@ private String getForwardToBudgetUrl(ActionForm form) { BudgetDocument budgetDocument = null; String forward = null; try { - for (BudgetDocumentVersion budgetDocumentVersion: pdDoc.getBudgetDocumentVersions()) { - BudgetVersionOverview budgetVersion = budgetDocumentVersion.getBudgetVersionOverview(); + for (Budget budgetVersion: pdDoc.getBudgetDocumentVersions()) { if (budgetVersion.isFinalVersionFlag()) { DocumentService documentService = KcServiceLocator.getService(DocumentService.class); budgetDocument = (BudgetDocument) documentService.getByDocumentHeaderId(budgetVersion.getDocumentNumber()); diff --git a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/auth/ProposalDevelopmentDocumentAuthorizer.java b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/auth/ProposalDevelopmentDocumentAuthorizer.java index a2abb48d449..a35684f1bd8 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/auth/ProposalDevelopmentDocumentAuthorizer.java +++ b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/auth/ProposalDevelopmentDocumentAuthorizer.java @@ -22,6 +22,7 @@ import org.kuali.coeus.sys.framework.auth.task.ApplicationTask; import org.kuali.coeus.sys.framework.auth.task.TaskAuthorizationService; import org.kuali.coeus.sys.framework.service.KcServiceLocator; +import org.kuali.coeus.common.budget.framework.core.Budget; import org.kuali.coeus.common.budget.framework.core.BudgetParentDocument; import org.kuali.coeus.common.budget.framework.version.BudgetDocumentVersion; import org.kuali.kra.infrastructure.KeyConstants; @@ -345,8 +346,8 @@ protected boolean isBudgetComplete(BudgetParentDocument parentDocument) { if (!parentDocument.isComplete()) { return false; } - for (BudgetDocumentVersion budgetVersion: parentDocument.getBudgetDocumentVersions()) { - if (budgetVersion.getBudgetVersionOverview().isFinalVersionFlag()) { + for (Budget budgetVersion: parentDocument.getBudgetDocumentVersions()) { + if (budgetVersion.isFinalVersionFlag()) { return true; } } diff --git a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/budget/ProposalBudgetService.java b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/budget/ProposalBudgetService.java index 93088b87042..5a820d5a6eb 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/budget/ProposalBudgetService.java +++ b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/budget/ProposalBudgetService.java @@ -17,9 +17,8 @@ import org.kuali.coeus.common.budget.framework.core.BudgetCommonService; import org.kuali.coeus.common.budget.framework.core.BudgetDocument; -import org.kuali.coeus.common.budget.framework.core.BudgetParentDocument; -import org.kuali.coeus.common.budget.framework.core.BudgetService; import org.kuali.coeus.propdev.impl.core.DevelopmentProposal; +import org.kuali.coeus.propdev.impl.core.ProposalDevelopmentDocument; import org.kuali.rice.kew.api.exception.WorkflowException; public interface ProposalBudgetService extends BudgetCommonService { @@ -32,5 +31,5 @@ public interface ProposalBudgetService extends BudgetCommonService getFinalBudgetVersion(BudgetParentDocument parentDocument) throws WorkflowException; + public BudgetDocument getFinalBudgetVersion(ProposalDevelopmentDocument parentDocument) throws WorkflowException; } diff --git a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/budget/ProposalBudgetServiceImpl.java b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/budget/ProposalBudgetServiceImpl.java index 0216c7ad98a..e0138ec7584 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/budget/ProposalBudgetServiceImpl.java +++ b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/budget/ProposalBudgetServiceImpl.java @@ -30,6 +30,7 @@ import org.kuali.coeus.common.budget.impl.version.BudgetVersionRule; import org.kuali.kra.infrastructure.Constants; import org.kuali.coeus.propdev.impl.core.DevelopmentProposal; +import org.kuali.coeus.propdev.impl.core.ProposalDevelopmentDocument; import org.kuali.coeus.propdev.impl.budget.subaward.BudgetSubAwards; import org.kuali.coeus.propdev.impl.budget.subaward.PropDevBudgetSubAwardService; import org.kuali.rice.coreservice.framework.parameter.ParameterService; @@ -96,23 +97,18 @@ public Budget getNewBudgetVersion(BudgetParentDocument pare } @Override - public BudgetDocument getFinalBudgetVersion(BudgetParentDocument parentDocument) throws WorkflowException { + public BudgetDocument getFinalBudgetVersion(ProposalDevelopmentDocument parentDocument) throws WorkflowException { BudgetDocument budgetDocument = null; if (parentDocument.getFinalBudgetVersion() != null) { budgetDocument = (BudgetDocument) documentService.getByDocumentHeaderId(parentDocument.getFinalBudgetVersion().getDocumentNumber()); } else { - final List budgetVersions = parentDocument.getBudgetDocumentVersions(); - - QueryList budgetVersionOverviews = new QueryList(); - for (BudgetDocumentVersion budgetDocumentVersion : budgetVersions) { - budgetVersionOverviews.add(budgetDocumentVersion.getBudgetVersionOverview()); - } - if (!budgetVersionOverviews.isEmpty()) { - budgetVersionOverviews.sort("budgetVersionNumber", false); - BudgetVersionOverview budgetVersionOverview = budgetVersionOverviews.get(0); - - budgetDocument = (BudgetDocument) documentService.getByDocumentHeaderId(budgetVersionOverview.getDocumentNumber()); + final List budgetVersions = parentDocument.getBudgetDocumentVersions(); + if (budgetVersions != null && !budgetVersions.isEmpty()) { + QueryList budgetVersionsQuery = new QueryList(); + budgetVersionsQuery.sort("budgetVersionNumber", false); + ProposalDevelopmentBudgetExt budgetVersionOverview = budgetVersionsQuery.get(0); + budgetDocument = (BudgetDocument) documentService.getByDocumentHeaderId(budgetVersionOverview.getDocumentNumber()); } } return budgetDocument; diff --git a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/budget/ProposalDevelopmentBudgetExt.java b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/budget/ProposalDevelopmentBudgetExt.java index 0dc5d5b7502..84e801df5b2 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/budget/ProposalDevelopmentBudgetExt.java +++ b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/budget/ProposalDevelopmentBudgetExt.java @@ -30,6 +30,8 @@ @PrimaryKeyJoinColumn(name="BUDGET_ID", referencedColumnName="BUDGET_ID") @DiscriminatorValue("PRDV") public class ProposalDevelopmentBudgetExt extends Budget implements ProposalDevelopmentBudgetExtContract { + + private static final String BUDGET_COMPLETE = "1"; private static final long serialVersionUID = 8234453927894053540L; @@ -73,6 +75,9 @@ public java.util.Date getBudgetStartDate() { public java.util.Date getBudgetEndDate() { return getDevelopmentProposal().getRequestedEndDateInitial(); - + } + + public boolean isBudgetComplete() { + return BUDGET_COMPLETE.equals(getBudgetStatus()); } } diff --git a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/budget/ProposalDevelopmentBudgetVersionsAction.java b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/budget/ProposalDevelopmentBudgetVersionsAction.java index 6198d0fcbb5..3db2227c91b 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/budget/ProposalDevelopmentBudgetVersionsAction.java +++ b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/budget/ProposalDevelopmentBudgetVersionsAction.java @@ -133,8 +133,7 @@ public ActionForward openBudgetVersion(ActionMapping mapping, ActionForm form, H } ProposalDevelopmentDocument pdDoc = pdForm.getProposalDevelopmentDocument(); - BudgetDocumentVersion budgetDocumentToOpen = pdDoc.getBudgetDocumentVersion(getSelectedLine(request)); - BudgetVersionOverview budgetToOpen = budgetDocumentToOpen.getBudgetVersionOverview(); + Budget budgetToOpen = pdDoc.getBudgetDocumentVersion(getSelectedLine(request)); DocumentService documentService = getDocumentService(); BudgetDocument budgetDocument = (BudgetDocument) documentService.getByDocumentHeaderId(budgetToOpen.getDocumentNumber()); String routeHeaderId = budgetDocument.getDocumentHeader().getWorkflowDocument().getDocumentId(); @@ -206,7 +205,7 @@ public ActionForward noSynchBudgetRate(ActionMapping mapping, ActionForm form, H private ActionForward synchBudgetRate(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response, boolean confirm) throws Exception { ProposalDevelopmentForm pdForm = (ProposalDevelopmentForm) form; ProposalDevelopmentDocument pdDoc = pdForm.getProposalDevelopmentDocument(); - BudgetDocumentVersion budgetDocumentToOpen = pdDoc.getBudgetDocumentVersion(getSelectedLine(request)); + Budget budgetDocumentToOpen = pdDoc.getBudgetDocumentVersion(getSelectedLine(request)); DocumentService documentService = getDocumentService(); BudgetDocument budgetDocument = (BudgetDocument) documentService.getByDocumentHeaderId(budgetDocumentToOpen.getDocumentNumber()); String routeHeaderId = budgetDocument.getDocumentHeader().getWorkflowDocument().getDocumentId(); @@ -233,7 +232,7 @@ private ActionForward synchBudgetRate(ActionMapping mapping, ActionForm form, Ht */ public ActionForward copyBudgetVersion(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { ProposalDevelopmentForm pdForm = (ProposalDevelopmentForm) form; - BudgetVersionOverview versionToCopy = getSelectedVersion(pdForm, request); + Budget versionToCopy = getSelectedVersion(pdForm, request); if (StringUtils.isNotBlank(request.getParameter(KRADConstants.QUESTION_INST_ATTRIBUTE_NAME))) { Object buttonClicked = request.getParameter(KRADConstants.QUESTION_CLICKED_BUTTON); if (CopyPeriodsQuestion.ONE.equals(buttonClicked)) { @@ -265,14 +264,13 @@ public ActionForward save(ActionMapping mapping, ActionForm form, HttpServletReq } if (pdForm.isSaveAfterCopy()) { - final List overviews = pdForm.getProposalDevelopmentDocument().getBudgetDocumentVersions(); - final BudgetDocumentVersion copiedDocumentOverview = overviews.get(overviews.size() - 1); - BudgetVersionOverview copiedOverview = copiedDocumentOverview.getBudgetVersionOverview(); - final String copiedName = copiedOverview.getName(); - copiedOverview.setName("copied placeholder"); + final List overviews = pdDoc.getDevelopmentProposal().getBudgets(); + final ProposalDevelopmentBudgetExt budget = overviews.get(overviews.size() - 1); + final String copiedName = budget.getName(); + budget.setName("copied placeholder"); LOG.debug("validating " + copiedName); valid = getBudgetService().isBudgetVersionNameValid(pdForm.getProposalDevelopmentDocument(), copiedName); - copiedOverview.setName(copiedName); + budget.setName(copiedName); pdForm.setSaveAfterCopy(!valid); } @@ -286,8 +284,7 @@ public ActionForward save(ActionMapping mapping, ActionForm form, HttpServletReq GlobalVariables.getMessageMap().putError( "document.budgetDocumentVersion[" + (errorBudgetVersion - 1) + "].budgetVersionOverview.budgetStatus", KeyConstants.CLEAR_AUDIT_ERRORS_BEFORE_CHANGE_STATUS_TO_COMPLETE); - for (BudgetDocumentVersion budgetDocumentVersion: pdDoc.getBudgetDocumentVersions()) { - BudgetVersionOverview budgetVersion = budgetDocumentVersion.getBudgetVersionOverview(); + for (Budget budgetVersion: pdDoc.getBudgetDocumentVersions()) { String budgetStatusIncompleteCode = getParameterService().getParameterValueAsString( BudgetDocument.class, Constants.BUDGET_STATUS_INCOMPLETE_CODE); @@ -297,7 +294,7 @@ public ActionForward save(ActionMapping mapping, ActionForm form, HttpServletReq return mapping.findForward(Constants.MAPPING_BASIC); } - this.setBudgetParentStatus(pdForm.getProposalDevelopmentDocument()); + this.setBudgetParentStatus(pdForm.getProposalDevelopmentDocument().getDevelopmentProposal()); // this.setBudgetStatuses(pdForm.getProposalDevelopmentDocument()); final ActionForward forward = super.save(mapping, form, request, response); @@ -325,8 +322,7 @@ private int getTentativeFinalBudgetVersion(ProposalDevelopmentForm pdForm) { ProposalDevelopmentDocument document = pdForm.getProposalDevelopmentDocument(); int i = 1; if(document != null && CollectionUtils.isNotEmpty(document.getBudgetDocumentVersions())) { - for(BudgetDocumentVersion budgetDocumentVersion : document.getBudgetDocumentVersions()) { - BudgetVersionOverview budget = budgetDocumentVersion.getBudgetVersionOverview(); + for(Budget budget : document.getBudgetDocumentVersions()) { if(budget.isFinalVersionFlag()) { // if copied budgetversion, the list may not be in version order. so has to change it. return i; @@ -371,14 +367,14 @@ public ActionForward copyBudgetAllPeriods(ActionMapping mapping, ActionForm form return mapping.findForward(Constants.MAPPING_BASIC); } - private BudgetVersionOverview getSelectedVersion(ProposalDevelopmentForm proposalDevelopmentForm, HttpServletRequest request) { - return proposalDevelopmentForm.getProposalDevelopmentDocument().getBudgetDocumentVersion(getSelectedLine(request)).getBudgetVersionOverview(); + private Budget getSelectedVersion(ProposalDevelopmentForm proposalDevelopmentForm, HttpServletRequest request) { + return proposalDevelopmentForm.getProposalDevelopmentDocument().getBudgetDocumentVersion(getSelectedLine(request)); } private void copyBudget(ActionForm form, HttpServletRequest request, boolean copyPeriodOneOnly) throws WorkflowException { ProposalDevelopmentForm proposalDevelopmentForm = (ProposalDevelopmentForm) form; ProposalDevelopmentDocument pdDoc = proposalDevelopmentForm.getProposalDevelopmentDocument(); - BudgetVersionOverview budgetToCopy = getSelectedVersion(proposalDevelopmentForm, request); + Budget budgetToCopy = getSelectedVersion(proposalDevelopmentForm, request); copyBudget(pdDoc.getBudgetParent(), budgetToCopy, copyPeriodOneOnly); } diff --git a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/budget/modular/BudgetModularTotalDirectCostRule.java b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/budget/modular/BudgetModularTotalDirectCostRule.java index f0b8126206f..3a2076a6418 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/budget/modular/BudgetModularTotalDirectCostRule.java +++ b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/budget/modular/BudgetModularTotalDirectCostRule.java @@ -144,11 +144,10 @@ public boolean validateTotalDirectCost(final BudgetParentDocument parentDocument boolean passed = true; - final List budgetDocumentOverviews = parentDocument.getBudgetDocumentVersions(); + final List budgetOverviews = parentDocument.getBudgetDocumentVersions(); - for (int i = 0; i < budgetDocumentOverviews.size(); i++) { - final BudgetDocumentVersion budgetDocumentOverview = budgetDocumentOverviews.get(i); - BudgetVersionOverview budgetOverview = budgetDocumentOverview.getBudgetVersionOverview(); + for (int i = 0; i < budgetOverviews.size(); i++) { + final Budget budgetOverview = budgetOverviews.get(i); if (this.budgetStatusCompleteCode.equalsIgnoreCase( budgetOverview.getBudgetStatus())) { @@ -165,7 +164,7 @@ public boolean validateTotalDirectCost(final BudgetParentDocument parentDocument /* * The budgetdocument.budget may not have complete data match with version */ - private void updateDocumentBudget(BudgetDocument budgetDocument, BudgetVersionOverview version) { + private void updateDocumentBudget(BudgetDocument budgetDocument, Budget version) { Budget budget = budgetDocument.getBudget(); budget.setFinalVersionFlag(version.isFinalVersionFlag()); diff --git a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/copy/CopyBudgetVersionsValuesFinder.java b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/copy/CopyBudgetVersionsValuesFinder.java index bc5529658e5..db867bfdbd4 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/copy/CopyBudgetVersionsValuesFinder.java +++ b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/copy/CopyBudgetVersionsValuesFinder.java @@ -17,6 +17,7 @@ import org.kuali.coeus.propdev.impl.core.ProposalDevelopmentDocument; import org.kuali.coeus.sys.framework.keyvalue.FormViewAwareUifKeyValuesFinderBase; +import org.kuali.coeus.common.budget.framework.core.Budget; import org.kuali.coeus.common.budget.framework.version.BudgetDocumentVersion; import org.kuali.rice.core.api.util.ConcreteKeyValue; import org.kuali.rice.core.api.util.KeyValue; @@ -62,8 +63,8 @@ boolean finalVersionPresent() { final ProposalDevelopmentDocument document = this.getDocument(); if (document != null) { - for (final BudgetDocumentVersion overview : document.getBudgetDocumentVersions()) { - if (overview.getBudgetVersionOverview().isFinalVersionFlag()) { + for (final Budget overview : document.getBudgetDocumentVersions()) { + if (overview.isFinalVersionFlag()) { return true; } } diff --git a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/copy/ProposalCopyServiceImpl.java b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/copy/ProposalCopyServiceImpl.java index 07d6df5d5ec..e5aa0bee01d 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/copy/ProposalCopyServiceImpl.java +++ b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/copy/ProposalCopyServiceImpl.java @@ -69,6 +69,7 @@ import org.kuali.rice.core.api.datetime.DateTimeService; import org.kuali.rice.coreservice.framework.parameter.ParameterService; import org.kuali.rice.krad.bo.*; +import org.kuali.rice.krad.data.DataObjectService; import org.kuali.rice.krad.document.Document; import org.kuali.rice.krad.service.BusinessObjectService; import org.kuali.rice.krad.service.DocumentService; @@ -197,6 +198,10 @@ public class ProposalCopyServiceImpl implements ProposalCopyService { @Autowired @Qualifier("userAttachedFormService") private UserAttachedFormService userAttachedFormService; + + @Autowired + @Qualifier("dataObjectService") + private DataObjectService dataObjectService; /** @@ -957,24 +962,23 @@ protected void loadBioContent(ProposalPersonBiography bio){ */ protected void copyBudget(ProposalDevelopmentDocument src, ProposalDevelopmentDocument dest, String budgetVersions) throws Exception { if (budgetVersions.equals(ProposalCopyCriteria.BUDGET_FINAL_VERSION)) { - BudgetDocumentVersion finalBudgetVersion = src.getFinalBudgetVersion(); + ProposalDevelopmentBudgetExt finalBudgetVersion = (ProposalDevelopmentBudgetExt) src.getFinalBudgetVersion(); if (finalBudgetVersion != null) { - copyAndFinalizeBudgetVersion(finalBudgetVersion.getDocumentNumber(), dest, 1, + copyAndFinalizeBudgetVersion(finalBudgetVersion, dest, 1, StringUtils.equals(src.getDevelopmentProposal().getHierarchyStatus(), HierarchyStatusConstants.Parent.code())); } } else if (budgetVersions.equals(ProposalCopyCriteria.BUDGET_ALL_VERSIONS)) { int i = 1; - for (BudgetDocumentVersion budgetDocumentVersion: src.getBudgetDocumentVersions()) { - copyAndFinalizeBudgetVersion(budgetDocumentVersion.getDocumentNumber(), dest, i++, + for (ProposalDevelopmentBudgetExt budgetVersion: src.getBudgetDocumentVersions()) { + copyAndFinalizeBudgetVersion(budgetVersion, dest, i++, StringUtils.equals(src.getDevelopmentProposal().getHierarchyStatus(), HierarchyStatusConstants.Parent.code())); } } } - protected void copyAndFinalizeBudgetVersion(String documentNumber, ProposalDevelopmentDocument dest, int budgetVersionNumber, boolean resetRates) throws Exception { - BudgetDocument budgetDocument = (BudgetDocument) getDocumentService().getByDocumentHeaderId(documentNumber); - List budgetSubAwards = budgetDocument.getBudget().getBudgetSubAwards(); + protected void copyAndFinalizeBudgetVersion(ProposalDevelopmentBudgetExt budget, ProposalDevelopmentDocument dest, int budgetVersionNumber, boolean resetRates) throws Exception { + List budgetSubAwards = budget.getBudgetSubAwards(); for (BudgetSubAwards budgetSubAward : budgetSubAwards) { List budgetSubAwardFiles = budgetSubAward.getBudgetSubAwardFiles(); if(budgetSubAwardFiles==null || budgetSubAwardFiles.isEmpty()){ @@ -986,44 +990,30 @@ protected void copyAndFinalizeBudgetVersion(String documentNumber, ProposalDevel } } - - budgetDocument.toCopy(); - budgetDocument.setVersionNumber(null); - if(budgetDocument.getBudget() == null) return; - budgetDocument.getBudget().setBudgetVersionNumber(budgetVersionNumber); + budget.setBudgetVersionNumber(budgetVersionNumber); Map objectMap = new HashMap(); - fixNumericProperty(budgetDocument, "setBudgetId", Long.class, null, objectMap); + fixNumericProperty(budget, "setBudgetId", Long.class, null, objectMap); objectMap.clear(); - fixNumericProperty(budgetDocument, "setBudgetPeriodId", Long.class, null, objectMap); + fixNumericProperty(budget, "setBudgetPeriodId", Long.class, null, objectMap); objectMap.clear(); - fixNumericProperty(budgetDocument, "setBudgetLineItemId", Long.class, null, objectMap); + fixNumericProperty(budget, "setBudgetLineItemId", Long.class, null, objectMap); objectMap.clear(); - fixNumericProperty(budgetDocument, "setBudgetLineItemCalculatedAmountId", Long.class, null, objectMap); + fixNumericProperty(budget, "setBudgetLineItemCalculatedAmountId", Long.class, null, objectMap); objectMap.clear(); - fixNumericProperty(budgetDocument, "setBudgetPersonnelLineItemId", Long.class, null, objectMap); + fixNumericProperty(budget, "setBudgetPersonnelLineItemId", Long.class, null, objectMap); objectMap.clear(); - fixNumericProperty(budgetDocument, "setBudgetPersonnelCalculatedAmountId", Long.class, null, objectMap); + fixNumericProperty(budget, "setBudgetPersonnelCalculatedAmountId", Long.class, null, objectMap); objectMap.clear(); - fixNumericProperty(budgetDocument, "setBudgetPersonnelRateAndBaseId", Long.class, null, objectMap); + fixNumericProperty(budget, "setBudgetPersonnelRateAndBaseId", Long.class, null, objectMap); objectMap.clear(); - fixNumericProperty(budgetDocument, "setBudgetRateAndBaseId", Long.class, null, objectMap); + fixNumericProperty(budget, "setBudgetRateAndBaseId", Long.class, null, objectMap); objectMap.clear(); - fixNumericProperty(budgetDocument, "setId", Long.class, null, objectMap); + fixNumericProperty(budget, "setId", Long.class, null, objectMap); objectMap.clear(); - fixNumericProperty(budgetDocument, "setVersionNumber", Integer.class, null, objectMap); + fixNumericProperty(budget, "setVersionNumber", Integer.class, null, objectMap); objectMap.clear(); - - //Temporary workaround for fixing budget notes OptimisticLockException due to auto-added copy notes - fixNumericProperty(budgetDocument, "setNoteIdentifier", Long.class, null, objectMap); - objectMap.clear(); - for(Note note : budgetDocument.getNotes()) { - note.setObjectId(null); - } - //Temporary workaround ends here - ObjectUtils.materializeAllSubObjects(budgetDocument.getBudget()); - - ProposalDevelopmentBudgetExt budget = (ProposalDevelopmentBudgetExt) budgetDocument.getBudget(); + ObjectUtils.materializeAllSubObjects(budget); budget.setFinalVersionFlag(false); budget.setDevelopmentProposal(dest.getDevelopmentProposal()); @@ -1059,14 +1049,12 @@ protected void copyAndFinalizeBudgetVersion(String documentNumber, ProposalDevel } budget.setBudgetProjectIncomes(srcProjectIncomeList); - getBudgetSummaryService().calculateBudget(budgetDocument.getBudget()); + getBudgetSummaryService().calculateBudget(budget); if (resetRates) { - budgetDocument.getBudget().getBudgetRates().clear(); - budgetDocument.getBudget().getBudgetLaRates().clear(); + budget.getBudgetRates().clear(); + budget.getBudgetLaRates().clear(); } - getDocumentService().saveDocument(budgetDocument); - getDocumentService().routeDocument(budgetDocument, "Route to Final", new ArrayList()); - budgetDocument.getBudget().getBudgetParent().getDocument().refreshBudgetDocumentVersions(); + getDataObjectService().save(budget); } /** @@ -1288,4 +1276,12 @@ public void setUserAttachedFormService( UserAttachedFormService userAttachedFormService) { this.userAttachedFormService = userAttachedFormService; } + + public DataObjectService getDataObjectService() { + return dataObjectService; + } + + public void setDataObjectService(DataObjectService dataObjectService) { + this.dataObjectService = dataObjectService; + } } diff --git a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/core/DevelopmentProposal.java b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/core/DevelopmentProposal.java index 50918d26eff..b03a46ff0a9 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/core/DevelopmentProposal.java +++ b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/core/DevelopmentProposal.java @@ -548,6 +548,7 @@ public DevelopmentProposal() { budgetChangeHistory = new TreeMap>(); hierarchyStatus = HierarchyStatusConstants.None.code(); hierarchyStatusName = HierarchyStatusConstants.None.description(); + budgets = new ArrayList(); initProposalSites(); } diff --git a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/core/ProposalDevelopmentAction.java b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/core/ProposalDevelopmentAction.java index f2d28a12bfa..0fdabbac9d2 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/core/ProposalDevelopmentAction.java +++ b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/core/ProposalDevelopmentAction.java @@ -424,8 +424,7 @@ public ActionForward save(ActionMapping mapping, ActionForm form, HttpServletReq tdcValidator.validateGeneratingErrorsAndWarnings(doc); } if (doc.getBudgetDocumentVersions() != null && !doc.getBudgetDocumentVersions().isEmpty()) { - for (BudgetDocumentVersion bdv : doc.getBudgetDocumentVersions()) { - ProposalDevelopmentBudgetExt budget = this.getBusinessObjectService().findBySinglePrimaryKey(ProposalDevelopmentBudgetExt.class, bdv.getBudgetVersionOverview().getBudgetId()); + for (Budget budget : doc.getBudgetDocumentVersions()) { if (!budget.getFinalVersionFlag()) { budget.setStartDate(proposalDevelopmentForm.getProposalDevelopmentDocument().getDevelopmentProposal().getRequestedStartDateInitial()); budget.setEndDate(proposalDevelopmentForm.getProposalDevelopmentDocument().getDevelopmentProposal().getRequestedEndDateInitial()); diff --git a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/core/ProposalDevelopmentDocument.java b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/core/ProposalDevelopmentDocument.java index f074f420bbc..d46a0f88555 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/core/ProposalDevelopmentDocument.java +++ b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/core/ProposalDevelopmentDocument.java @@ -23,6 +23,7 @@ import org.kuali.coeus.common.permissions.impl.PermissionableKeys; import org.kuali.coeus.propdev.api.core.ProposalDevelopmentDocumentContract; import org.kuali.coeus.propdev.impl.budget.ProposalBudgetStatusService; +import org.kuali.coeus.propdev.impl.budget.ProposalDevelopmentBudgetExt; import org.kuali.coeus.propdev.impl.state.ProposalStateService; import org.kuali.coeus.sys.framework.auth.perm.Permissionable; import org.kuali.coeus.sys.framework.auth.task.Task; @@ -342,11 +343,7 @@ protected DateTimeService getDateTimeService() { } public Budget getFinalBudgetForThisProposal() { - BudgetDocumentVersion budgetDocumentVersion = this.getFinalBudgetVersion(); - if (budgetDocumentVersion != null) { - return budgetDocumentVersion.getFinalBudget(); - } - return null; + return this.getFinalBudgetVersion(); } public String getFinalrateClassCode() { @@ -447,13 +444,19 @@ public List buildListOfDeletionAwareLists() { * Sets the budgetDocumentVersions attribute value. * @param budgetDocumentVersions The budgetDocumentVersions to set. */ - public void setBudgetDocumentVersions(List budgetDocumentVersions) { - this.budgetDocumentVersions = budgetDocumentVersions; + @Override + public void setBudgetDocumentVersions(List budgetDocumentVersions) { + if (budgetDocumentVersions == null) { + getDevelopmentProposal().setBudgets(null); + } else { + getDevelopmentProposal().setBudgets((List) budgetDocumentVersions); + } } - public List getBudgetDocumentVersions() { - return budgetDocumentVersions; + @Override + public List getBudgetDocumentVersions() { + return getDevelopmentProposal().getBudgets(); } @Override diff --git a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/core/ProposalDevelopmentServiceImpl.java b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/core/ProposalDevelopmentServiceImpl.java index c10882858ff..b998b278023 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/core/ProposalDevelopmentServiceImpl.java +++ b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/core/ProposalDevelopmentServiceImpl.java @@ -27,6 +27,7 @@ import org.kuali.coeus.propdev.impl.abstrct.ProposalAbstract; import org.kuali.coeus.propdev.impl.budget.CostShareInfoDO; import org.kuali.coeus.propdev.impl.budget.ProposalBudgetStatus; +import org.kuali.coeus.propdev.impl.budget.ProposalDevelopmentBudgetExt; import org.kuali.coeus.propdev.impl.editable.ProposalColumnsToAlter; import org.kuali.coeus.propdev.impl.editable.ProposalOverview; import org.kuali.coeus.propdev.impl.location.ProposalSite; @@ -456,10 +457,10 @@ public boolean isGrantsGovEnabledOnSponsorChange(String proposalNumber, String s @Override public ProposalDevelopmentDocument deleteProposal(ProposalDevelopmentDocument proposalDocument) throws WorkflowException { - ListIterator iter = proposalDocument.getBudgetDocumentVersions().listIterator(); + ListIterator iter = proposalDocument.getBudgetDocumentVersions().listIterator(); while (iter.hasNext()) { - BudgetDocumentVersion budgetVersion = iter.next(); - deleteProposalBudget(budgetVersion.getDocumentNumber(), proposalDocument); + Budget budgetVersion = iter.next(); + getDataObjectService().delete(budgetVersion); iter.remove(); } // remove budget statuses as they are not referenced via ojb, but there is a @@ -468,7 +469,6 @@ public ProposalDevelopmentDocument deleteProposal(ProposalDevelopmentDocument pr keyValues.put("proposalNumber", proposalDocument.getDevelopmentProposal().getProposalNumber()); getDataObjectService().deleteMatching(ProposalBudgetStatus.class, QueryByCriteria.Builder.andAttributes(keyValues).build()); proposalDocument.setDevelopmentProposal(null); - proposalDocument.setBudgetDocumentVersions(null); proposalDocument.setProposalDeleted(true); // because the devproplist was cleared above the dev prop and associated BOs will be @@ -477,21 +477,6 @@ public ProposalDevelopmentDocument deleteProposal(ProposalDevelopmentDocument pr return (ProposalDevelopmentDocument) getDocumentService().cancelDocument(proposalDocument, "Delete Proposal"); } - protected void deleteProposalBudget(String budgetDocumentNumber, ProposalDevelopmentDocument parentDocument) { - try { - BudgetDocument document = (BudgetDocument) getDocumentService().getByDocumentHeaderId(budgetDocumentNumber); - document.setBudget(null); - // make sure the budget points to this instance of the pdd as other deleted budgets - // must be removed so they don't fail document validation. - document.setBudgetDeleted(true); - document = (BudgetDocument) getDocumentService().saveDocument(document); - } - catch (WorkflowException e) { - throw new RuntimeException(e); - } - - } - protected DocumentService getDocumentService() { return documentService; } @@ -536,12 +521,12 @@ private boolean isAuthorizedToAccess(String proposalNumber) { } public Budget getFinalBudget(DevelopmentProposal proposal) { - List budgetDocuments = proposal.getProposalDocument().getBudgetDocumentVersions(); + List budgetDocuments = proposal.getProposalDocument().getBudgetDocumentVersions(); Map fieldValues = new HashMap(); Budget budget = null; if (budgetDocuments != null && budgetDocuments.size() > 0) { - for (BudgetDocumentVersion budgetDocument : budgetDocuments) { + for (Budget budgetDocument : budgetDocuments) { fieldValues.clear(); fieldValues.put("document_number", budgetDocument.getDocumentNumber()); List budgets =getDataObjectService().findMatching(Budget.class, @@ -711,7 +696,7 @@ public ProposalDevelopmentDocument updateProposalDocument(ProposalDevelopmentDoc } else { //in case other parts of the document have been saved since we have saved, //we save off possibly changed parts and reload the rest of the document - List newVersions = pdDocument.getBudgetDocumentVersions(); + List newVersions = pdDocument.getBudgetDocumentVersions(); String budgetStatus = pdDocument.getDevelopmentProposal().getBudgetStatus(); pdDocument = updatedDocCopy; @@ -770,15 +755,6 @@ public ProposalDevelopmentDocument updateProposalDocument(ProposalDevelopmentDoc if(updatedDocumentNextvalue != null) { documentNextValue.setVersionNumber(updatedDocumentNextvalue.getVersionNumber()); } - } - //fix budget document version's document headers - for (int i = 0; i < pdDocument.getBudgetDocumentVersions().size(); i++) { - BudgetDocumentVersion curVersion = pdDocument.getBudgetDocumentVersion(i); - BudgetDocumentVersion otherVersion = updatedDocCopy.getBudgetDocumentVersion(i); - otherVersion.refreshReferenceObject("documentHeader"); - if (curVersion != null && otherVersion != null) { - curVersion.getDocumentHeader().setVersionNumber(otherVersion.getDocumentHeader().getVersionNumber()); - } } } return pdDocument; diff --git a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/hierarchy/ProposalHierarchyServiceImpl.java b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/hierarchy/ProposalHierarchyServiceImpl.java index 73ef4bc33ab..f2c300e320b 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/hierarchy/ProposalHierarchyServiceImpl.java +++ b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/hierarchy/ProposalHierarchyServiceImpl.java @@ -1124,8 +1124,8 @@ protected List> getHierarchyBudgets(Developm List> hierarchyBudgets = new ArrayList>(); try { - for (BudgetDocumentVersion budgetDocumentVersion : hierarchyProposal.getProposalDocument().getBudgetDocumentVersions()) { - String budgetDocumentNumber = budgetDocumentVersion.getBudgetVersionOverview().getDocumentNumber(); + for (Budget budgetVersion : hierarchyProposal.getProposalDocument().getBudgetDocumentVersions()) { + String budgetDocumentNumber = budgetVersion.getDocumentNumber(); hierarchyBudgets.add((BudgetDocument) documentService.getByDocumentHeaderId(budgetDocumentNumber)); } } catch (WorkflowException e) { @@ -1136,7 +1136,7 @@ protected List> getHierarchyBudgets(Developm } protected BudgetDocument getHierarchyBudget(DevelopmentProposal hierarchyProposal) throws ProposalHierarchyException { - String budgetDocumentNumber = hierarchyProposal.getProposalDocument().getBudgetDocumentVersions().get(0).getBudgetVersionOverview().getDocumentNumber(); + String budgetDocumentNumber = hierarchyProposal.getProposalDocument().getBudgetDocumentVersions().get(0).getDocumentNumber(); BudgetDocument budgetDocument = null; try { budgetDocument = (BudgetDocument) documentService.getByDocumentHeaderId(budgetDocumentNumber); @@ -1149,9 +1149,9 @@ protected BudgetDocument getHierarchyBudget(DevelopmentProp public BudgetDocument getSyncableBudget(DevelopmentProposal childProposal) throws ProposalHierarchyException { String budgetDocumentNumber = null; - for (BudgetDocumentVersion version : childProposal.getProposalDocument().getBudgetDocumentVersions()) { + for (Budget version : childProposal.getProposalDocument().getBudgetDocumentVersions()) { budgetDocumentNumber = version.getDocumentNumber(); - if (version.getBudgetVersionOverview().isFinalVersionFlag()) { + if (version.isFinalVersionFlag()) { break; } } diff --git a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/hierarchy/ProposalHierarcyActionHelper.java b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/hierarchy/ProposalHierarcyActionHelper.java index aafb0eb1b23..3835ed09f2a 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/hierarchy/ProposalHierarcyActionHelper.java +++ b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/hierarchy/ProposalHierarcyActionHelper.java @@ -285,8 +285,8 @@ private boolean validateChildForRemoval(DevelopmentProposal child) { private boolean hasFinalBudget(DevelopmentProposal proposal) { boolean retval = false; - for (BudgetDocumentVersion version : proposal.getProposalDocument().getBudgetDocumentVersions()) { - if (version.getBudgetVersionOverview().isFinalVersionFlag()) { + for (ProposalDevelopmentBudgetExt version : proposal.getBudgets()) { + if (version.isFinalVersionFlag()) { retval = true; break; } @@ -380,8 +380,8 @@ private boolean hasCompleteBudget(ProposalDevelopmentDocument pdDoc) { boolean retval = false; String completeCode = getParameterService().getParameterValueAsString(BudgetDocument.class, Constants.BUDGET_STATUS_COMPLETE_CODE); - for (BudgetDocumentVersion version : pdDoc.getBudgetDocumentVersions()) { - if (!(version.getBudgetVersionOverview().getBudgetStatus() == null ) && version.getBudgetVersionOverview().getBudgetStatus().equalsIgnoreCase(completeCode)) { + for (ProposalDevelopmentBudgetExt version : pdDoc.getBudgetDocumentVersions()) { + if (!(version.getBudgetStatus() == null ) && version.getBudgetStatus().equalsIgnoreCase(completeCode)) { retval = true; break; } diff --git a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/krms/PropDevJavaFunctionKrmsTermServiceImpl.java b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/krms/PropDevJavaFunctionKrmsTermServiceImpl.java index 7170d7b0543..43166e1d152 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/krms/PropDevJavaFunctionKrmsTermServiceImpl.java +++ b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/krms/PropDevJavaFunctionKrmsTermServiceImpl.java @@ -306,7 +306,7 @@ public String ospAdminPropPersonRule(DevelopmentProposal developmentProposal) { public String costElementVersionLimit(DevelopmentProposal developmentProposal, String versionNumber, String costElementName, String limit) { Long versionNumberLong = Long.parseLong(versionNumber); float limitLong = Float.parseFloat(limit); - for (BudgetDocumentVersion bdv : developmentProposal.getProposalDocument().getBudgetDocumentVersions()) { + for (Budget bdv : developmentProposal.getProposalDocument().getBudgetDocumentVersions()) { if (bdv.getVersionNumber().equals(versionNumberLong)) { try { BudgetDocument budgetDocument = (BudgetDocument) getDocumentService().getByDocumentHeaderId(bdv.getDocumentNumber()); @@ -371,19 +371,13 @@ public String divisionCodeIsFellowship(DevelopmentProposal developmentProposal, */ @Override public String budgetSubawardOrganizationnameRule(DevelopmentProposal developmentProposal) { - for (BudgetDocumentVersion bdv : developmentProposal.getProposalDocument().getBudgetDocumentVersions()) { - try { - BudgetDocument budgetDocument = (BudgetDocument) getDocumentService().getByDocumentHeaderId(bdv.getDocumentNumber()); - Budget budget = budgetDocument.getBudget(); - if (budget.isFinalVersionFlag()) { - for (BudgetSubAwards bsa : budget.getBudgetSubAwards()) { - if (StringUtils.equals(FALSE, specialCharacterRule(bsa.getOrganizationName()))) { - return FALSE; - } + for (Budget budget : developmentProposal.getProposalDocument().getBudgetDocumentVersions()) { + if (budget.isFinalVersionFlag()) { + for (BudgetSubAwards bsa : budget.getBudgetSubAwards()) { + if (StringUtils.equals(FALSE, specialCharacterRule(bsa.getOrganizationName()))) { + return FALSE; } } - } catch (Exception e) { - //lets just ignor and return false. } } return TRUE; @@ -571,10 +565,10 @@ public String checkProposalPiRule(DevelopmentProposal developmentProposal, Strin @Override public String costElement(DevelopmentProposal developmentProposal, String costElement) { - for (BudgetDocumentVersion budgetVersion : developmentProposal.getProposalDocument().getBudgetDocumentVersions()) { + for (Budget budgetVersion : developmentProposal.getBudgets()) { Map values = new HashMap(); values.put("costElement", costElement); - values.put("budgetId", budgetVersion.getBudgetVersionOverview().getBudgetId()); + values.put("budgetId", budgetVersion.getBudgetId()); List matchingLineItems = (List) getBusinessObjectService().findMatching(BudgetLineItem.class, values); if (matchingLineItems != null && !matchingLineItems.isEmpty()) { @@ -627,9 +621,9 @@ public String mtdcDeviationInVersion(DevelopmentProposal developmentProposal, St protected Budget getBudgetVersion(DevelopmentProposal developmentProposal, String versionNumber) { Integer versionNumberLong = Integer.valueOf(versionNumber); - for (BudgetDocumentVersion bdv : developmentProposal.getProposalDocument().getBudgetDocumentVersions()) { - if (bdv.getBudgetVersionOverview().getBudgetVersionNumber().equals(versionNumberLong)) { - return getBusinessObjectService().findBySinglePrimaryKey(Budget.class, bdv.getBudgetVersionOverview().getBudgetId()); + for (Budget bdv : developmentProposal.getBudgets()) { + if (bdv.getBudgetVersionNumber().equals(versionNumberLong)) { + return bdv; } } return null; @@ -888,20 +882,14 @@ public String narrativeFileName(DevelopmentProposal developmentProposal) { @Override public String costElementInVersion(DevelopmentProposal developmentProposal, String versionNumber, String costElement) { Long versionNumberLong = Long.parseLong(versionNumber); - for (BudgetDocumentVersion bdv : developmentProposal.getProposalDocument().getBudgetDocumentVersions()) { - if (bdv.getVersionNumber().equals(versionNumberLong)) { - try { - BudgetDocument budgetDocument = (BudgetDocument) getDocumentService().getByDocumentHeaderId(bdv.getDocumentNumber()); - Budget budget = budgetDocument.getBudget(); - if (budget.getVersionNumber().equals(versionNumberLong)) { - for (BudgetPeriod period : budget.getBudgetPeriods()) { - for (BudgetLineItem item : period.getBudgetLineItems()) { - return TRUE; - } + for (Budget budget : developmentProposal.getBudgets()) { + if (budget.getVersionNumber().equals(versionNumberLong)) { + if (budget.getVersionNumber().equals(versionNumberLong)) { + for (BudgetPeriod period : budget.getBudgetPeriods()) { + for (BudgetLineItem item : period.getBudgetLineItems()) { + return TRUE; } } - } catch (Exception e) { - //lets just ignor and return false. } } } diff --git a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/lock/ProposalLockServiceImpl.java b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/lock/ProposalLockServiceImpl.java index 0246a0c2f0d..2a5c752eb0e 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/lock/ProposalLockServiceImpl.java +++ b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/lock/ProposalLockServiceImpl.java @@ -16,6 +16,7 @@ package org.kuali.coeus.propdev.impl.lock; import org.apache.commons.lang3.StringUtils; +import org.kuali.coeus.propdev.impl.budget.ProposalDevelopmentBudgetExt; import org.kuali.coeus.propdev.impl.core.ProposalDevelopmentDocument; import org.kuali.kra.authorization.KraAuthorizationConstants; import org.kuali.coeus.common.budget.framework.version.BudgetDocumentVersion; @@ -131,7 +132,7 @@ protected PessimisticLock createNewPessimisticLock(Document document, Map editMo String lockDescriptor = document.getCustomLockDescriptor(user); ProposalDevelopmentDocument pdDocument = (ProposalDevelopmentDocument) document; if(StringUtils.isNotEmpty(lockDescriptor) && lockDescriptor.contains(KraAuthorizationConstants.LOCK_DESCRIPTOR_BUDGET)) { - for(BudgetDocumentVersion budgetOverview: pdDocument.getBudgetDocumentVersions()) { + for(ProposalDevelopmentBudgetExt budgetOverview: pdDocument.getBudgetDocumentVersions()) { generateNewLock(budgetOverview.getDocumentNumber(), lockDescriptor, user); } } diff --git a/coeus-code/src/main/java/org/kuali/coeus/sys/framework/model/KcTransactionalDocumentBase.java b/coeus-code/src/main/java/org/kuali/coeus/sys/framework/model/KcTransactionalDocumentBase.java index 10ee606f55d..fdc7d6dcd17 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/sys/framework/model/KcTransactionalDocumentBase.java +++ b/coeus-code/src/main/java/org/kuali/coeus/sys/framework/model/KcTransactionalDocumentBase.java @@ -30,6 +30,7 @@ import org.kuali.kra.authorization.KraAuthorizationConstants; import org.kuali.kra.bo.DocumentNextvalue; import org.kuali.kra.bo.RolePersons; +import org.kuali.coeus.common.budget.framework.core.Budget; import org.kuali.coeus.common.budget.framework.core.BudgetService; import org.kuali.coeus.common.budget.framework.version.BudgetDocumentVersion; import org.kuali.coeus.common.budget.framework.version.BudgetVersionOverview; @@ -179,10 +180,9 @@ public void validateBusinessRules(DocumentEvent event) { } } - public void updateDocumentDescriptions(List budgetVersionOverviews) { + public void updateDocumentDescriptions(List budgetVersionOverviews) { BudgetService budgetService = KcServiceLocator.getService(BudgetService.class); - for (BudgetDocumentVersion budgetDocumentVersion : budgetVersionOverviews) { - BudgetVersionOverview budgetVersion = budgetDocumentVersion.getBudgetVersionOverview(); + for (Budget budgetVersion : budgetVersionOverviews) { if (budgetVersion.isNameUpdatable() && !StringUtils.isBlank(budgetVersion.getName())) { budgetVersion.setNameUpdatable(false); } diff --git a/coeus-code/src/main/java/org/kuali/kra/award/budget/AwardBudgetExt.java b/coeus-code/src/main/java/org/kuali/kra/award/budget/AwardBudgetExt.java index fc55c01870e..164a50763bc 100644 --- a/coeus-code/src/main/java/org/kuali/kra/award/budget/AwardBudgetExt.java +++ b/coeus-code/src/main/java/org/kuali/kra/award/budget/AwardBudgetExt.java @@ -417,6 +417,6 @@ public java.util.Date getBudgetStartDate() { public java.util.Date getBudgetEndDate() { return getAward().getAwardAmountInfos().get(getAward().getAwardAmountInfos().size() - 1).getObligationExpirationDate(); - } + } } diff --git a/coeus-code/src/main/java/org/kuali/kra/award/budget/AwardBudgetServiceImpl.java b/coeus-code/src/main/java/org/kuali/kra/award/budget/AwardBudgetServiceImpl.java index 61e71c34723..e99f2351beb 100644 --- a/coeus-code/src/main/java/org/kuali/kra/award/budget/AwardBudgetServiceImpl.java +++ b/coeus-code/src/main/java/org/kuali/kra/award/budget/AwardBudgetServiceImpl.java @@ -673,8 +673,7 @@ public List findBudgetPeriodsFromLinkedProposal(String awardNumber public boolean checkForOutstandingBudgets(BudgetParentDocument parentDoc) { boolean result = false; - for (BudgetDocumentVersion budgetVersion : parentDoc.getBudgetDocumentVersions()) { - BudgetVersionOverview version = budgetVersion.getBudgetVersionOverview(); + for (Budget version : parentDoc.getBudgetDocumentVersions()) { AwardBudgetExt awardBudget = getBusinessObjectService().findBySinglePrimaryKey(AwardBudgetExt.class, version.getBudgetId()); if (!(StringUtils.equals(awardBudget.getAwardBudgetStatusCode(), getPostedBudgetStatus()) || StringUtils.equals(awardBudget.getAwardBudgetStatusCode(), getRejectedBudgetStatus()) diff --git a/coeus-code/src/main/java/org/kuali/kra/award/budget/document/AwardBudgetDocumentRule.java b/coeus-code/src/main/java/org/kuali/kra/award/budget/document/AwardBudgetDocumentRule.java index 6121286c976..f0113544f01 100644 --- a/coeus-code/src/main/java/org/kuali/kra/award/budget/document/AwardBudgetDocumentRule.java +++ b/coeus-code/src/main/java/org/kuali/kra/award/budget/document/AwardBudgetDocumentRule.java @@ -15,15 +15,15 @@ */ package org.kuali.kra.award.budget.document; +import org.kuali.coeus.common.budget.framework.core.Budget; import org.kuali.coeus.common.budget.framework.core.BudgetDocumentRule; -import org.kuali.coeus.common.budget.framework.core.BudgetParentDocument; /** * This class is for handling all rules related to AwardBudgetDocument. */ public class AwardBudgetDocumentRule extends BudgetDocumentRule { @Override - protected boolean processRunAuditBudgetVersionRule(BudgetParentDocument parentDocument) { + protected boolean processRunAuditBudgetVersionRule(Budget budget) { return true; } diff --git a/coeus-code/src/main/java/org/kuali/kra/award/document/AwardDocument.java b/coeus-code/src/main/java/org/kuali/kra/award/document/AwardDocument.java index ccaced799b3..9f343e13413 100644 --- a/coeus-code/src/main/java/org/kuali/kra/award/document/AwardDocument.java +++ b/coeus-code/src/main/java/org/kuali/kra/award/document/AwardDocument.java @@ -29,6 +29,7 @@ import org.kuali.coeus.sys.framework.workflow.KcWorkflowService; import org.kuali.kra.authorization.KraAuthorizationConstants; import org.kuali.kra.award.awardhierarchy.sync.service.AwardSyncService; +import org.kuali.kra.award.budget.AwardBudgetExt; import org.kuali.kra.award.budget.AwardBudgetService; import org.kuali.kra.award.budget.AwardBudgetVersionOverviewExt; import org.kuali.kra.award.budget.document.AwardBudgetDocumentVersion; @@ -45,6 +46,7 @@ import org.kuali.kra.award.paymentreports.awardreports.AwardReportTermRecipient; import org.kuali.kra.award.specialreview.AwardSpecialReview; import org.kuali.kra.award.specialreview.AwardSpecialReviewExemption; +import org.kuali.coeus.common.budget.framework.core.Budget; import org.kuali.coeus.common.budget.framework.core.BudgetDocument; import org.kuali.coeus.common.budget.framework.core.BudgetParentDocument; import org.kuali.coeus.common.budget.framework.version.BudgetDocumentVersion; @@ -361,8 +363,9 @@ public List getBudgetDocumentVersions() { return budgetDocumentVersions; } - public void setBudgetDocumentVersions(List budgetDocumentVersions) { - this.budgetDocumentVersions = budgetDocumentVersions; + @Override + public void setBudgetDocumentVersions(List budgetDocumentVersions) { + getAward().setBudgets((List) budgetDocumentVersions); } @Override diff --git a/coeus-code/src/main/java/org/kuali/kra/award/web/struts/action/AwardBudgetsAction.java b/coeus-code/src/main/java/org/kuali/kra/award/web/struts/action/AwardBudgetsAction.java index 19519526ea9..e922ff0a902 100644 --- a/coeus-code/src/main/java/org/kuali/kra/award/web/struts/action/AwardBudgetsAction.java +++ b/coeus-code/src/main/java/org/kuali/kra/award/web/struts/action/AwardBudgetsAction.java @@ -173,8 +173,7 @@ public ActionForward openBudgetVersion(ActionMapping mapping, ActionForm form, H AwardDocument awardDocument = awardForm.getAwardDocument(); awardDocument.refreshBudgetDocumentVersions(); - BudgetDocumentVersion budgetDocumentToOpen = awardDocument.getBudgetDocumentVersion(getSelectedLine(request)); - BudgetVersionOverview budgetToOpen = budgetDocumentToOpen.getBudgetVersionOverview(); + Budget budgetToOpen = awardDocument.getBudgetDocumentVersion(getSelectedLine(request)); Collection allBudgetRates = budgetService.getSavedProposalRates(budgetToOpen); Award newestAward = getAwardBudgetService().getActiveOrNewestAward(awardDocument.getAward().getAwardNumber()); newestAward.refreshReferenceObject("awardFandaRate"); @@ -229,9 +228,9 @@ public ActionForward noSynchBudgetRate(ActionMapping mapping, ActionForm form, H private ActionForward synchBudgetRate(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response, boolean confirm) throws Exception { AwardForm awardForm = (AwardForm) form; AwardDocument awardDoc = awardForm.getAwardDocument(); - BudgetDocumentVersion budgetDocumentToOpen = awardDoc.getBudgetDocumentVersion(getSelectedLine(request)); + Budget budgetToOpen = awardDoc.getBudgetDocumentVersion(getSelectedLine(request)); DocumentService documentService = KcServiceLocator.getService(DocumentService.class); - BudgetDocument budgetDocument = (BudgetDocument) documentService.getByDocumentHeaderId(budgetDocumentToOpen.getDocumentNumber()); + BudgetDocument budgetDocument = (BudgetDocument) documentService.getByDocumentHeaderId(budgetToOpen.getDocumentNumber()); String routeHeaderId = budgetDocument.getDocumentHeader().getWorkflowDocument().getDocumentId(); String forward = buildForwardUrl(routeHeaderId); if (confirm) { @@ -259,7 +258,7 @@ private ActionForward synchBudgetRate(ActionMapping mapping, ActionForm form, Ht */ public ActionForward copyBudgetVersion(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { AwardForm pdForm = (AwardForm) form; - BudgetVersionOverview versionToCopy = getSelectedVersion(pdForm, request); + Budget versionToCopy = getSelectedVersion(pdForm, request); if (!getAwardBudgetService().validateAddingNewBudget(pdForm.getAwardDocument())) { return mapping.findForward(Constants.MAPPING_AWARD_BASIC); } @@ -370,14 +369,14 @@ public ActionForward copyBudgetAllPeriods(ActionMapping mapping, ActionForm form return mapping.findForward(Constants.MAPPING_BASIC); } - private BudgetVersionOverview getSelectedVersion(AwardForm proposalDevelopmentForm, HttpServletRequest request) { - return proposalDevelopmentForm.getAwardDocument().getBudgetDocumentVersion(getSelectedLine(request)).getBudgetVersionOverview(); + private Budget getSelectedVersion(AwardForm proposalDevelopmentForm, HttpServletRequest request) { + return proposalDevelopmentForm.getAwardDocument().getBudgetDocumentVersion(getSelectedLine(request)); } private void copyBudget(ActionForm form, HttpServletRequest request, boolean copyPeriodOneOnly) throws WorkflowException { AwardForm awardForm = (AwardForm) form; AwardDocument awardDoc = awardForm.getAwardDocument(); - BudgetVersionOverview budgetToCopy = getSelectedVersion(awardForm, request); + Budget budgetToCopy = getSelectedVersion(awardForm, request); copyBudget(awardDoc.getBudgetParent(), budgetToCopy, copyPeriodOneOnly); } diff --git a/coeus-code/src/main/resources/org/kuali/coeus/common/budget/impl/version/BudgetVersionOverview.xml b/coeus-code/src/main/resources/org/kuali/coeus/common/budget/impl/version/BudgetVersionOverview.xml deleted file mode 100644 index 4c8e431001b..00000000000 --- a/coeus-code/src/main/resources/org/kuali/coeus/common/budget/impl/version/BudgetVersionOverview.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/coeus-code/src/main/resources/org/kuali/kra/CoreSpringBeans.xml b/coeus-code/src/main/resources/org/kuali/kra/CoreSpringBeans.xml index b0eeb985659..c5995683585 100644 --- a/coeus-code/src/main/resources/org/kuali/kra/CoreSpringBeans.xml +++ b/coeus-code/src/main/resources/org/kuali/kra/CoreSpringBeans.xml @@ -171,7 +171,6 @@ classpath:org/kuali/coeus/propdev/impl/budget/subaward/BudgetSubAwardPeriodDetail.xml classpath:org/kuali/coeus/propdev/impl/budget/subaward/BudgetSubAwards.xml classpath:org/kuali/coeus/common/budget/impl/distribution/BudgetUnrecoveredFandA.xml - classpath:org/kuali/coeus/common/budget/impl/version/BudgetVersionOverview.xml classpath:org/kuali/kra/datadictionary/CFDA.xml classpath:org/kuali/coeus/common/impl/person/attr/CitizenshipType.xml classpath:org/kuali/kra/datadictionary/CloseoutReportType.xml diff --git a/coeus-code/src/main/resources/org/kuali/kra/budget/repository-budget.xml b/coeus-code/src/main/resources/org/kuali/kra/budget/repository-budget.xml index c7eb4dc4660..c80c3a590b1 100644 --- a/coeus-code/src/main/resources/org/kuali/kra/budget/repository-budget.xml +++ b/coeus-code/src/main/resources/org/kuali/kra/budget/repository-budget.xml @@ -134,9 +134,6 @@ - - - @@ -1111,7 +1108,7 @@ - + diff --git a/coeus-code/src/test/java/org/kuali/coeus/propdev/impl/copy/CopyBudgetVersionsValuesFinderTest.java b/coeus-code/src/test/java/org/kuali/coeus/propdev/impl/copy/CopyBudgetVersionsValuesFinderTest.java index 0e442945722..09267debb37 100644 --- a/coeus-code/src/test/java/org/kuali/coeus/propdev/impl/copy/CopyBudgetVersionsValuesFinderTest.java +++ b/coeus-code/src/test/java/org/kuali/coeus/propdev/impl/copy/CopyBudgetVersionsValuesFinderTest.java @@ -19,6 +19,7 @@ import org.junit.Before; import org.junit.Test; import org.kuali.coeus.propdev.impl.core.ProposalDevelopmentDocument; +import org.kuali.coeus.common.budget.framework.core.Budget; import org.kuali.coeus.common.budget.framework.version.BudgetDocumentVersion; import org.kuali.rice.core.api.util.KeyValue; @@ -43,10 +44,10 @@ public void setupfinalFinder() { this.finalVerFinder = new CopyBudgetVersionsValuesFinder() { @Override protected ProposalDevelopmentDocument getDocument() { - List overviews = new ArrayList(); - overviews.add(new BudgetDocumentVersion()); - BudgetDocumentVersion o = new BudgetDocumentVersion(); - o.getBudgetVersionOverview().setFinalVersionFlag(true); + List overviews = new ArrayList(); + overviews.add(new Budget()); + Budget o = new Budget(); + o.setFinalVersionFlag(true); overviews.add(o); ProposalDevelopmentDocument document = new ProposalDevelopmentDocument(); @@ -66,9 +67,9 @@ public void setupNofinalFinder() { this.nonFinalVerFinder = new CopyBudgetVersionsValuesFinder() { @Override protected ProposalDevelopmentDocument getDocument() { - List overviews = new ArrayList(); - overviews.add(new BudgetDocumentVersion()); - BudgetDocumentVersion o = new BudgetDocumentVersion(); + List overviews = new ArrayList(); + overviews.add(new Budget()); + Budget o = new Budget(); overviews.add(o); ProposalDevelopmentDocument document = new ProposalDevelopmentDocument(); diff --git a/coeus-code/src/test/java/org/kuali/kra/proposaldevelopment/rules/BudgetVersionRuleTest.java b/coeus-code/src/test/java/org/kuali/kra/proposaldevelopment/rules/BudgetVersionRuleTest.java index 1b4f7765641..690809a1017 100644 --- a/coeus-code/src/test/java/org/kuali/kra/proposaldevelopment/rules/BudgetVersionRuleTest.java +++ b/coeus-code/src/test/java/org/kuali/kra/proposaldevelopment/rules/BudgetVersionRuleTest.java @@ -21,7 +21,9 @@ import org.kuali.coeus.common.budget.framework.version.BudgetDocumentVersion; import org.kuali.coeus.common.budget.framework.version.BudgetVersionCollection; import org.kuali.coeus.common.budget.impl.version.BudgetVersionRule; +import org.kuali.coeus.propdev.impl.budget.ProposalDevelopmentBudgetExt; import org.kuali.coeus.propdev.impl.core.ProposalDevelopmentDocument; +import org.kuali.coeus.common.budget.framework.core.Budget; import org.kuali.coeus.common.budget.framework.core.BudgetDocument; import org.kuali.rice.krad.document.Document; import org.kuali.rice.krad.document.DocumentBase; @@ -40,7 +42,7 @@ public class BudgetVersionRuleTest { private static final String VERSION_NAME = "test version"; private static final String DEFAULT_BUD_VER_NAME = "Default Budget Name"; - private BudgetVersionCollection proposal; + private PseudoProposalDevelopmentDocument proposal; @Before @@ -99,14 +101,14 @@ public void testNegativeEmptyName() throws Exception { * @param document document to add {@link org.kuali.coeus.common.budget.framework.version.BudgetVersionOverview} to * @param name of the {@link org.kuali.coeus.common.budget.framework.version.BudgetVersionOverview} to add */ - public void addNewBudgetVersion(BudgetVersionCollection document, String name) { + public void addNewBudgetVersion(PseudoProposalDevelopmentDocument document, String name) { document.getBudgetDocumentVersions().add(new PseudoBudgetVersionOverview(name)); } /** * Fake {@link BudgetDocument} with a name constructor */ - public class PseudoBudgetVersionOverview extends BudgetDocumentVersion { + public class PseudoBudgetVersionOverview extends ProposalDevelopmentBudgetExt { public PseudoBudgetVersionOverview(String name) { // setDocumentDescription(name); } @@ -117,18 +119,18 @@ public PseudoBudgetVersionOverview(String name) { * */ public class PseudoProposalDevelopmentDocument extends DocumentBase implements BudgetVersionCollection { - private List overviews; + private List budgets; public PseudoProposalDevelopmentDocument() { - setBudgetDocumentVersions(new ArrayList()); + setBudgetDocumentVersions(new ArrayList()); } - public List getBudgetDocumentVersions() { - return overviews; + public List getBudgetDocumentVersions() { + return budgets; } - public void setBudgetDocumentVersions(List budgetVersionOverviews) { - overviews = budgetVersionOverviews; + public void setBudgetDocumentVersions(List budgetVersionOverviews) { + budgets = (List) budgetVersionOverviews; } public void refreshBudgetDocumentVersions() { diff --git a/coeus-it/src/test/java/org/kuali/coeus/propdev/impl/budget/modular/BudgetModularTotalDirectCostRuleTest.java b/coeus-it/src/test/java/org/kuali/coeus/propdev/impl/budget/modular/BudgetModularTotalDirectCostRuleTest.java index ed0182cecd9..87686f67337 100644 --- a/coeus-it/src/test/java/org/kuali/coeus/propdev/impl/budget/modular/BudgetModularTotalDirectCostRuleTest.java +++ b/coeus-it/src/test/java/org/kuali/coeus/propdev/impl/budget/modular/BudgetModularTotalDirectCostRuleTest.java @@ -18,8 +18,10 @@ import org.junit.Assert; import org.junit.Before; import org.junit.Test; +import org.kuali.coeus.propdev.impl.budget.ProposalDevelopmentBudgetExt; import org.kuali.coeus.propdev.impl.core.ProposalDevelopmentDocument; import org.kuali.coeus.sys.api.model.ScaleTwoDecimal; +import org.kuali.coeus.common.budget.framework.core.Budget; import org.kuali.coeus.common.budget.framework.core.BudgetDocument; import org.kuali.coeus.common.budget.framework.period.BudgetPeriod; import org.kuali.coeus.common.budget.framework.version.BudgetDocumentVersion; @@ -44,31 +46,27 @@ */ public class BudgetModularTotalDirectCostRuleTest extends KcIntegrationTestBase { - private static final List ONE_COMPLETE = new ArrayList(); - private static final List TWO_COMPLETE = new ArrayList(); - private static final List ONE_INCOMPLETE = new ArrayList(); - private static final List TWO_INCOMPLETE = new ArrayList(); + private static final List ONE_COMPLETE = new ArrayList(); + private static final List TWO_COMPLETE = new ArrayList(); + private static final List ONE_INCOMPLETE = new ArrayList(); + private static final List TWO_INCOMPLETE = new ArrayList(); static { - BudgetDocumentVersion docver1 = new BudgetDocumentVersion(); - final BudgetVersionOverview overview1 = docver1.getBudgetVersionOverview(); - overview1.setBudgetStatus("1"); - overview1.setDocumentNumber("1234"); + ProposalDevelopmentBudgetExt docver1 = new ProposalDevelopmentBudgetExt(); + docver1.setBudgetStatus("1"); + docver1.setDocumentNumber("1234"); - BudgetDocumentVersion docver2 = new BudgetDocumentVersion(); - final BudgetVersionOverview overview2 = docver2.getBudgetVersionOverview(); - overview2.setBudgetStatus("1"); - overview2.setDocumentNumber("1234"); + ProposalDevelopmentBudgetExt docver2 = new ProposalDevelopmentBudgetExt(); + docver2.setBudgetStatus("1"); + docver2.setDocumentNumber("1234"); - BudgetDocumentVersion docver3 = new BudgetDocumentVersion(); - final BudgetVersionOverview overview3 = docver3.getBudgetVersionOverview(); - overview3.setBudgetStatus("2"); - overview3.setDocumentNumber("1234"); - - BudgetDocumentVersion docver4 = new BudgetDocumentVersion(); - final BudgetVersionOverview overview4 = docver4.getBudgetVersionOverview(); - overview4.setBudgetStatus("2"); - overview4.setDocumentNumber("1234"); + ProposalDevelopmentBudgetExt docver3 = new ProposalDevelopmentBudgetExt(); + docver3.setBudgetStatus("2"); + docver3.setDocumentNumber("1234"); + + ProposalDevelopmentBudgetExt docver4 = new ProposalDevelopmentBudgetExt(); + docver4.setBudgetStatus("2"); + docver4.setDocumentNumber("1234"); BudgetModularTotalDirectCostRuleTest.ONE_COMPLETE.add(docver1); diff --git a/coeus-it/src/test/java/org/kuali/kra/s2s/generator/impl/PHS398ModularBudgetV1_2GeneratorTest.java b/coeus-it/src/test/java/org/kuali/kra/s2s/generator/impl/PHS398ModularBudgetV1_2GeneratorTest.java index 26a12645f62..285a15aae4a 100644 --- a/coeus-it/src/test/java/org/kuali/kra/s2s/generator/impl/PHS398ModularBudgetV1_2GeneratorTest.java +++ b/coeus-it/src/test/java/org/kuali/kra/s2s/generator/impl/PHS398ModularBudgetV1_2GeneratorTest.java @@ -35,11 +35,11 @@ protected void prepareData(ProposalDevelopmentDocument document) budget.setUrRateClassCode("1"); budget.setModularBudgetFlag(false); budget.setParentDocumentTypeCode("PRDV"); + budget.setName("test document description"); budget = getService(DataObjectService.class).save(budget); - - List budgets = new ArrayList<>(); - budgets.add(budget); - document.getDevelopmentProposal().setBudgets(budgets); + List budgets = new ArrayList<>(); + budgets.add(budget); + document.getDevelopmentProposal().setBudgets(budgets); } } From 3455499a05adf0cd7546692e5ad97d41ecc0eb8e Mon Sep 17 00:00:00 2001 From: Geo Thomas Date: Sun, 31 Aug 2014 23:54:20 -0400 Subject: [PATCH 3/3] KRACOEUS-7309: Removed BudgetVersionCollection from BudgetDocument and attached only AwardBudgetDocument, More changes for BudgetDocument removal refactoring --- .../framework/core/BudgetActionBase.java | 6 +- .../budget/framework/core/BudgetParent.java | 7 +- .../framework/core/BudgetParentDocument.java | 14 +- ...java => AwardBudgetVersionCollection.java} | 7 +- .../version/BudgetDocumentVersion.java | 4 +- .../version/BudgetVersionsAction.java | 6 +- .../impl/core/AbstractBudgetService.java | 8 +- .../impl/core/BudgetParametersAction.java | 6 +- .../impl/version/BudgetVersionRule.java | 9 +- .../ProposalDevelopmentActionsAction.java | 3 +- ...ProposalDevelopmentApproverViewAction.java | 3 +- ...velopmentProposalAttachmentsAuditRule.java | 9 +- ...ProposalDevelopmentDocumentAuthorizer.java | 8 +- .../impl/budget/ProposalBudgetService.java | 3 +- .../budget/ProposalBudgetServiceImpl.java | 22 +- ...oposalDevelopmentBudgetVersionsAction.java | 11 +- .../ProposalBudgetDataOverrideRule.java | 16 +- .../BudgetModularTotalDirectCostRule.java | 12 +- .../copy/CopyBudgetVersionsValuesFinder.java | 2 +- .../impl/copy/ProposalCopyServiceImpl.java | 4 +- .../impl/core/DevelopmentProposal.java | 2 + .../impl/core/ProposalDevelopmentAction.java | 28 +- .../core/ProposalDevelopmentDocument.java | 64 ++-- .../impl/core/ProposalDevelopmentForm.java | 2 +- .../core/ProposalDevelopmentServiceImpl.java | 65 ++-- .../ProposalHierarchyServiceImpl.java | 7 +- .../ProposalHierarcyActionHelper.java | 5 +- ...ropDevJavaFunctionKrmsTermServiceImpl.java | 4 +- .../impl/lock/ProposalLockServiceImpl.java | 2 +- .../impl/print/ProposalBaseStream.java | 13 +- .../model/KcTransactionalDocumentBase.java | 8 - .../kuali/kra/award/AwardLockServiceImpl.java | 4 +- .../kra/award/budget/AwardBudgetService.java | 5 +- .../award/budget/AwardBudgetServiceImpl.java | 38 ++- .../kra/award/document/AwardDocument.java | 35 +- .../web/struts/action/AwardBudgetsAction.java | 6 +- .../CopyBudgetVersionsValuesFinderTest.java | 22 +- .../rules/BudgetVersionRuleTest.java | 318 ++++++++++++++++-- .../BudgetModularTotalDirectCostRuleTest.java | 11 - .../rrbudget/RRBudget10V1_3GeneratorTest.java | 4 +- .../rrbudget/RRBudgetV1_3GeneratorTest.java | 4 +- .../RRFedNonFedBudget10V1_1GeneratorTest.java | 4 +- .../RRFedNonFedBudgetV1_1GeneratorTest.java | 4 +- coeus-tool/src/main/scripts/dbcopy/build.xml | 10 +- .../src/main/resources/META-INF/.gitignore | 1 + .../resources/META-INF/kc-config-build.xml | 1 + 46 files changed, 550 insertions(+), 277 deletions(-) rename coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/version/{BudgetVersionCollection.java => AwardBudgetVersionCollection.java} (78%) create mode 100644 coeus-webapp/src/main/resources/META-INF/.gitignore diff --git a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetActionBase.java b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetActionBase.java index 3a18f13e7bc..a0f83c902e1 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetActionBase.java +++ b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetActionBase.java @@ -72,8 +72,8 @@ public ActionForward save(ActionMapping mapping, ActionForm form, HttpServletReq * @param budgetVersions * @return */ - protected Integer getFinalBudgetVersion(List budgetVersions) { - for (Budget budgetVersion: budgetVersions) { + protected Integer getFinalBudgetVersion(List budgetVersions) { + for (AbstractBudget budgetVersion: budgetVersions) { if (budgetVersion.isFinalVersionFlag()) { return budgetVersion.getBudgetVersionNumber(); } @@ -87,7 +87,7 @@ protected Integer getFinalBudgetVersion(List budgetVersions) { * @param parentDocument */ protected void setBudgetParentStatus(BudgetParent budgetParent) { - for (Budget budgetVersion: budgetParent.getBudgets()) { + for (AbstractBudget budgetVersion: budgetParent.getBudgets()) { if (budgetVersion.isFinalVersionFlag()) { budgetParent.setBudgetStatus(budgetVersion.getBudgetStatus()); return; diff --git a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetParent.java b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetParent.java index 586c483fed2..ad29f19d5fb 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetParent.java +++ b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetParent.java @@ -15,14 +15,10 @@ */ package org.kuali.coeus.common.budget.framework.core; -import org.kuali.coeus.common.budget.framework.version.BudgetVersionOverview; import org.kuali.coeus.common.framework.type.ActivityType; import org.kuali.coeus.common.framework.unit.Unit; import org.kuali.kra.award.home.ContactRole; -import org.kuali.rice.krad.document.Document; import org.kuali.coeus.common.framework.rolodex.PersonRolodex; -import org.kuali.coeus.propdev.impl.budget.ProposalDevelopmentBudgetExt; -import org.kuali.coeus.sys.framework.model.KcTransactionalDocumentBase; import java.sql.Date; import java.util.List; @@ -56,10 +52,9 @@ public interface BudgetParent { public BudgetParentDocument getDocument(); - public List getBudgetVersionOverviews(); + public List getBudgetVersionOverviews(); public List getBudgets(); public Budget getNewBudget(); public Integer getNextBudgetVersionNumber(); - } diff --git a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetParentDocument.java b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetParentDocument.java index a68e864249e..86bc289009b 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetParentDocument.java +++ b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/core/BudgetParentDocument.java @@ -16,12 +16,13 @@ package org.kuali.coeus.common.budget.framework.core; import org.apache.commons.lang.builder.CompareToBuilder; +import org.apache.commons.lang3.StringUtils; import org.kuali.coeus.sys.framework.auth.perm.Permissionable; import org.kuali.coeus.sys.framework.auth.task.Task; import org.kuali.coeus.sys.framework.model.KcTransactionalDocumentBase; import org.kuali.coeus.sys.framework.service.KcServiceLocator; import org.kuali.coeus.common.budget.framework.version.BudgetDocumentVersion; -import org.kuali.coeus.common.budget.framework.version.BudgetVersionCollection; +import org.kuali.coeus.common.budget.framework.version.AwardBudgetVersionCollection; import org.kuali.kra.infrastructure.Constants; import org.kuali.rice.coreservice.framework.parameter.ParameterService; import org.kuali.rice.kns.datadictionary.HeaderNavigation; @@ -36,7 +37,7 @@ @SuppressWarnings("serial") @MappedSuperclass -public abstract class BudgetParentDocument extends KcTransactionalDocumentBase implements BudgetVersionCollection, BudgetDocumentTypeChecker, Permissionable { +public abstract class BudgetParentDocument extends KcTransactionalDocumentBase implements BudgetDocumentTypeChecker, Permissionable { /** * Looks up and returns the ParameterService. @@ -80,6 +81,15 @@ public Budget getBudgetDocumentVersion(int selectedLine) { return getBudgetParent().getBudgets().get(selectedLine); } + public void updateBudgetDescriptions(List budgetVersions) { + BudgetService budgetService = KcServiceLocator.getService(BudgetService.class); + for (AbstractBudget budgetVersion : budgetVersions) { + if (budgetVersion.isNameUpdatable() && !StringUtils.isBlank(budgetVersion.getName())) { + budgetVersion.setNameUpdatable(false); + } + } + } + public abstract Permissionable getBudgetPermissionable(); public abstract boolean isComplete(); diff --git a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/version/BudgetVersionCollection.java b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/version/AwardBudgetVersionCollection.java similarity index 78% rename from coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/version/BudgetVersionCollection.java rename to coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/version/AwardBudgetVersionCollection.java index b8cdf46c652..f84008a0404 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/version/BudgetVersionCollection.java +++ b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/version/AwardBudgetVersionCollection.java @@ -17,6 +17,7 @@ import org.kuali.coeus.common.budget.framework.core.Budget; import org.kuali.coeus.common.budget.framework.version.BudgetDocumentVersion; +import org.kuali.kra.award.budget.document.AwardBudgetDocumentVersion; import java.util.List; @@ -27,11 +28,11 @@ * instances * */ -public interface BudgetVersionCollection { +public interface AwardBudgetVersionCollection { - public List getBudgetDocumentVersions(); + public List getBudgetDocumentVersions(); - public void setBudgetDocumentVersions(List budgetDocumentVersions); + public void setBudgetDocumentVersions(List budgetDocumentVersions); void refreshBudgetDocumentVersions(); } diff --git a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/version/BudgetDocumentVersion.java b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/version/BudgetDocumentVersion.java index e44b5ec9143..013861fd495 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/version/BudgetDocumentVersion.java +++ b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/version/BudgetDocumentVersion.java @@ -82,7 +82,9 @@ public void setParentDocumentKey(String parentDocumentNumber) { public Budget getFinalBudget() { BudgetVersionOverview budgetVersionOverview = this.getBudgetVersionOverview(); - if (budgetVersionOverview != null && budgetVersionOverview.getBudgetStatus() != null && budgetVersionOverview.getBudgetStatus().equals(BUDGET_COMPLETE) && budgetVersionOverview.isFinalVersionFlag()) { + if (budgetVersionOverview != null && budgetVersionOverview.getBudgetStatus() != null + && budgetVersionOverview.getBudgetStatus().equals(BUDGET_COMPLETE) + && budgetVersionOverview.isFinalVersionFlag()) { Budget result = findBudget(); if (result != null) { return (Budget) result; diff --git a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/version/BudgetVersionsAction.java b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/version/BudgetVersionsAction.java index 3d16940e75c..16aa371f12a 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/version/BudgetVersionsAction.java +++ b/coeus-code/src/main/java/org/kuali/coeus/common/budget/framework/version/BudgetVersionsAction.java @@ -361,7 +361,7 @@ public ActionForward save(ActionMapping mapping, ActionForm form, HttpServletReq KeyConstants.CLEAR_AUDIT_ERRORS_BEFORE_CHANGE_STATUS_TO_COMPLETE); } if (budgetForm.isSaveAfterCopy()) { - List overviews = parentDocument.getBudgetDocumentVersions(); + List overviews = parentDocument.getBudgetParent().getBudgets(); Budget copiedOverview = overviews.get(overviews.size() - 1); String copiedName = copiedOverview.getName(); copiedOverview.setName("copied placeholder"); @@ -372,7 +372,7 @@ public ActionForward save(ActionMapping mapping, ActionForm form, HttpServletReq } if (!valid) { - for (Budget budgetVersion: parentDocument.getBudgetDocumentVersions()) { + for (Budget budgetVersion: parentDocument.getBudgetParent().getBudgets()) { String budgetStatusIncompleteCode = getParameterService().getParameterValueAsString( BudgetDocument.class, Constants.BUDGET_STATUS_INCOMPLETE_CODE); @@ -428,7 +428,7 @@ private void updateThisBudget(BudgetDocument budgetDocument) { } private Budget getSelectedVersion(BudgetForm budgetForm, HttpServletRequest request) { - return budgetForm.getBudgetDocument().getBudget().getBudgetParent().getBudgetVersionOverviews().get(getSelectedLine(request)); + return budgetForm.getBudgetDocument().getBudget().getBudgetParent().getBudgets().get(getSelectedLine(request)); } private void copyBudget(ActionForm form, HttpServletRequest request, boolean copyPeriodOneOnly) throws WorkflowException { diff --git a/coeus-code/src/main/java/org/kuali/coeus/common/budget/impl/core/AbstractBudgetService.java b/coeus-code/src/main/java/org/kuali/coeus/common/budget/impl/core/AbstractBudgetService.java index a51e3b88c47..a93df378c92 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/common/budget/impl/core/AbstractBudgetService.java +++ b/coeus-code/src/main/java/org/kuali/coeus/common/budget/impl/core/AbstractBudgetService.java @@ -469,7 +469,7 @@ public boolean validateBudgetAuditRule(BudgetParentDocument parentDocument) t boolean budgetVersionsExists = false; List auditErrors = new ArrayList(); String budgetStatusCompleteCode = this.parameterService.getParameterValueAsString(BudgetDocument.class, Constants.BUDGET_STATUS_COMPLETE_CODE); - for (Budget budgetVersion : parentDocument.getBudgetDocumentVersions()) { + for (Budget budgetVersion : parentDocument.getBudgetParent().getBudgets()) { budgetVersionsExists = true; if (budgetVersion.isFinalVersionFlag()) { valid &= applyAuditRuleForBudgetDocument(budgetVersion); @@ -493,10 +493,10 @@ public boolean validateBudgetAuditRule(BudgetParentDocument parentDocument) t } @Override - public boolean validateBudgetAuditRuleBeforeSaveBudgetVersion(BudgetParentDocument proposalDevelopmentDocument) + public boolean validateBudgetAuditRuleBeforeSaveBudgetVersion(BudgetParentDocument budgetParentDocument) throws Exception { boolean valid = true; - for (Budget budgetVersion : proposalDevelopmentDocument.getBudgetDocumentVersions()) { + for (Budget budgetVersion : budgetParentDocument.getBudgetParent().getBudgets()) { String budgetStatusCompleteCode = this.parameterService.getParameterValueAsString(BudgetDocument.class, Constants.BUDGET_STATUS_COMPLETE_CODE); @@ -829,7 +829,7 @@ public void setBudgetStatuses(BudgetParentDocument parentDocument) { String budgetStatusIncompleteCode = getParameterService().getParameterValueAsString( BudgetDocument.class, Constants.BUDGET_STATUS_INCOMPLETE_CODE); - for (Budget budgetVersion: parentDocument.getBudgetDocumentVersions()) { + for (Budget budgetVersion: parentDocument.getBudgetParent().getBudgets()) { if (budgetVersion.isFinalVersionFlag()) { budgetVersion.setBudgetStatus(parentDocument.getBudgetParent().getBudgetStatus()); } diff --git a/coeus-code/src/main/java/org/kuali/coeus/common/budget/impl/core/BudgetParametersAction.java b/coeus-code/src/main/java/org/kuali/coeus/common/budget/impl/core/BudgetParametersAction.java index c151e847abf..c7bbd81c543 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/common/budget/impl/core/BudgetParametersAction.java +++ b/coeus-code/src/main/java/org/kuali/coeus/common/budget/impl/core/BudgetParametersAction.java @@ -490,10 +490,9 @@ protected KualiRuleService getKualiRuleService() { private void reconcileFinalBudgetFlags(BudgetForm budgetForm) { BudgetDocument budgetDocument = budgetForm.getBudgetDocument(); Budget budget = budgetDocument.getBudget(); - BudgetParentDocument parentDocument = budgetDocument.getBudget().getBudgetParent().getDocument(); if (budget.getFinalVersionFlag()) { // This version has been marked as final - update other versions. - for (Budget version : parentDocument.getBudgetDocumentVersions()) { + for (Budget version : budget.getBudgetParent().getBudgets()) { if (!budget.getBudgetVersionNumber().equals(version.getBudgetVersionNumber())) { version.setFinalVersionFlag(false); } @@ -553,9 +552,8 @@ private void updateTotalCost(Budget budget) { private void updateThisBudgetVersion(BudgetDocument budgetDocument) { Budget budget = budgetDocument.getBudget(); - BudgetParentDocument proposal = budgetDocument.getBudget().getBudgetParent().getDocument(); - for (Budget version : proposal.getBudgetDocumentVersions()) { + for (Budget version : budget.getBudgetParent().getBudgets()) { if (budget.getBudgetVersionNumber().equals(version.getBudgetVersionNumber())) { version.setFinalVersionFlag(budget.getFinalVersionFlag()); version.setBudgetStatus(budget.getBudgetStatus()); diff --git a/coeus-code/src/main/java/org/kuali/coeus/common/budget/impl/version/BudgetVersionRule.java b/coeus-code/src/main/java/org/kuali/coeus/common/budget/impl/version/BudgetVersionRule.java index 65dc6b80813..181e0818e64 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/common/budget/impl/version/BudgetVersionRule.java +++ b/coeus-code/src/main/java/org/kuali/coeus/common/budget/impl/version/BudgetVersionRule.java @@ -22,6 +22,7 @@ import org.kuali.coeus.common.budget.framework.core.Budget; import org.kuali.coeus.common.budget.framework.core.BudgetDocument; import org.kuali.coeus.common.budget.framework.core.BudgetDocumentRule; +import org.kuali.kra.award.budget.document.AwardBudgetDocumentVersion; import org.kuali.kra.infrastructure.KeyConstants; import org.kuali.rice.kew.api.exception.WorkflowException; import org.kuali.rice.krad.util.GlobalVariables; @@ -53,7 +54,7 @@ public class BudgetVersionRule implements AddBudgetVersionRule { * @returns true if it passed, false if it failed */ public boolean processAddBudgetVersionName(AddBudgetVersionEvent event) { - BudgetVersionCollection versionCollection = (BudgetVersionCollection) (event.getDocument()); + AwardBudgetVersionCollection versionCollection = (AwardBudgetVersionCollection) (event.getDocument()); boolean retval = true; if (!isNameValid(event.getVersionName())) { @@ -89,9 +90,9 @@ private boolean isNameValid(String newBudgetVersionName) { * @param versionName is the name of the {@link BudgetVersionOverview} to look for * @returns true if it found versionName inside document, false otherwise */ - private boolean containsVersionOverview(BudgetVersionCollection document, String versionName) { - for (Budget version : document.getBudgetDocumentVersions()) { - + private boolean containsVersionOverview(AwardBudgetVersionCollection document, String versionName) { + for (AwardBudgetDocumentVersion documentVersion : document.getBudgetDocumentVersions()) { + BudgetVersionOverview version = documentVersion.getBudgetVersionOverview(); LOG.info("Comparing " + version.getName() + " to " + versionName); if (version.getName().equals(versionName)) { return true; diff --git a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/action/ProposalDevelopmentActionsAction.java b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/action/ProposalDevelopmentActionsAction.java index 2b5d8aae435..40faa928b12 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/action/ProposalDevelopmentActionsAction.java +++ b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/action/ProposalDevelopmentActionsAction.java @@ -1289,7 +1289,7 @@ private String getForwardToBudgetUrl(ActionForm form) { BudgetDocument budgetDocument = null; String forward = null; try { - for (Budget budgetVersion: pdDoc.getBudgetDocumentVersions()) { + for (Budget budgetVersion: pdDoc.getDevelopmentProposal().getBudgets()) { if (budgetVersion.isFinalVersionFlag()) { DocumentService documentService = KcServiceLocator.getService(DocumentService.class); budgetDocument = (BudgetDocument) documentService.getByDocumentHeaderId(budgetVersion.getDocumentNumber()); @@ -1299,7 +1299,6 @@ private String getForwardToBudgetUrl(ActionForm form) { forward = buildForwardUrl(routeHeaderId); } catch (Exception e) { LOG.info("forward to budgetsummary "+e.getStackTrace()); - //TODO what is the forward here } return forward; diff --git a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/approve/ProposalDevelopmentApproverViewAction.java b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/approve/ProposalDevelopmentApproverViewAction.java index cecfc4f02ed..20d8927c6fb 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/approve/ProposalDevelopmentApproverViewAction.java +++ b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/approve/ProposalDevelopmentApproverViewAction.java @@ -182,8 +182,7 @@ public ActionForward printBudgetForm(ActionMapping mapping, HttpServletResponse response) throws Exception { ProposalDevelopmentForm proposalDevelopmentForm = (ProposalDevelopmentForm) form; ProposalDevelopmentDocument document = proposalDevelopmentForm.getProposalDevelopmentDocument(); - BudgetDocument budgetDocument = getProposalBudgetService().getFinalBudgetVersion(document); - Budget budget = budgetDocument.getBudget(); + Budget budget = getProposalBudgetService().getFinalBudgetVersion(document); Integer selectedLine = getSelectedLine(request); if(budget.getBudgetPrintForms().isEmpty()){ getBudgetPrintService().populateBudgetPrintForms(budget); diff --git a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/attachment/ProposalDevelopmentProposalAttachmentsAuditRule.java b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/attachment/ProposalDevelopmentProposalAttachmentsAuditRule.java index 45626eeda6b..194e6d1c848 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/attachment/ProposalDevelopmentProposalAttachmentsAuditRule.java +++ b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/attachment/ProposalDevelopmentProposalAttachmentsAuditRule.java @@ -22,6 +22,7 @@ import org.kuali.coeus.propdev.impl.core.ProposalDevelopmentUtils; import org.kuali.coeus.sys.framework.rule.KcTransactionalDocumentRuleBase; import org.kuali.coeus.sys.framework.service.KcServiceLocator; +import org.kuali.coeus.common.budget.framework.core.Budget; import org.kuali.coeus.common.budget.framework.core.BudgetDocument; import org.kuali.coeus.common.budget.framework.nonpersonnel.BudgetLineItem; import org.kuali.coeus.common.budget.framework.period.BudgetPeriod; @@ -154,11 +155,9 @@ public boolean checkNsfRelatedAttachments(ProposalDevelopmentDocument proposalDe boolean attachmentNotExists = true; try { String budgetCostElement = getParameterService().getParameterValueAsString("KC-GEN","A","POST_DOCTORAL_COSTELEMENT"); - BudgetDocument bdDoc = getProposalBudgetService().getFinalBudgetVersion( - proposalDevelopmentDocument); - if(bdDoc != null && bdDoc.getBudget() != null - && bdDoc.getBudget().getBudgetPeriods() != null){ - for (BudgetPeriod budgetPeriod : bdDoc.getBudget().getBudgetPeriods()){ + Budget budget = getProposalBudgetService().getFinalBudgetVersion(proposalDevelopmentDocument); + if(budget != null && budget.getBudgetPeriods() != null){ + for (BudgetPeriod budgetPeriod : budget.getBudgetPeriods()){ for (BudgetLineItem budgetLineItem : budgetPeriod.getBudgetLineItems()){ if(budgetLineItem.getCostElement().equals(budgetCostElement)){ for (Narrative narrative : developmentProposal.getNarratives()) { diff --git a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/auth/ProposalDevelopmentDocumentAuthorizer.java b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/auth/ProposalDevelopmentDocumentAuthorizer.java index a35684f1bd8..840ecc74d2d 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/auth/ProposalDevelopmentDocumentAuthorizer.java +++ b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/auth/ProposalDevelopmentDocumentAuthorizer.java @@ -16,6 +16,7 @@ package org.kuali.coeus.propdev.impl.auth; import org.kuali.coeus.propdev.impl.auth.task.ProposalTask; +import org.kuali.coeus.propdev.impl.core.DevelopmentProposal; import org.kuali.coeus.propdev.impl.core.ProposalDevelopmentDocument; import org.kuali.coeus.propdev.impl.state.ProposalState; import org.kuali.coeus.sys.framework.auth.KcTransactionalDocumentAuthorizerBase; @@ -57,7 +58,8 @@ public Set getEditModes(Document document, Person user, Set curr Set editModes = new HashSet(); ProposalDevelopmentDocument proposalDoc = (ProposalDevelopmentDocument) document; - String proposalNbr = proposalDoc.getDevelopmentProposal().getProposalNumber(); + DevelopmentProposal developmentProposal = proposalDoc.getDevelopmentProposal(); + String proposalNbr = developmentProposal.getProposalNumber(); // The getEditMode() method is invoked when a proposal is accessed for creation and when it // is accessed for modification. New proposals under creation don't have a proposal number. @@ -346,8 +348,8 @@ protected boolean isBudgetComplete(BudgetParentDocument parentDocument) { if (!parentDocument.isComplete()) { return false; } - for (Budget budgetVersion: parentDocument.getBudgetDocumentVersions()) { - if (budgetVersion.isFinalVersionFlag()) { + for (Budget budget: parentDocument.getBudgetParent().getBudgets()) { + if (budget.isFinalVersionFlag()) { return true; } } diff --git a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/budget/ProposalBudgetService.java b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/budget/ProposalBudgetService.java index 5a820d5a6eb..20ac8b6c227 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/budget/ProposalBudgetService.java +++ b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/budget/ProposalBudgetService.java @@ -15,6 +15,7 @@ */ package org.kuali.coeus.propdev.impl.budget; +import org.kuali.coeus.common.budget.framework.core.Budget; import org.kuali.coeus.common.budget.framework.core.BudgetCommonService; import org.kuali.coeus.common.budget.framework.core.BudgetDocument; import org.kuali.coeus.propdev.impl.core.DevelopmentProposal; @@ -31,5 +32,5 @@ public interface ProposalBudgetService extends BudgetCommonService getFinalBudgetVersion(ProposalDevelopmentDocument parentDocument) throws WorkflowException; + public Budget getFinalBudgetVersion(ProposalDevelopmentDocument parentDocument) throws WorkflowException; } diff --git a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/budget/ProposalBudgetServiceImpl.java b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/budget/ProposalBudgetServiceImpl.java index e0138ec7584..6e0c0f29dab 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/budget/ProposalBudgetServiceImpl.java +++ b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/budget/ProposalBudgetServiceImpl.java @@ -97,21 +97,15 @@ public Budget getNewBudgetVersion(BudgetParentDocument pare } @Override - public BudgetDocument getFinalBudgetVersion(ProposalDevelopmentDocument parentDocument) throws WorkflowException { - BudgetDocument budgetDocument = null; - - if (parentDocument.getFinalBudgetVersion() != null) { - budgetDocument = (BudgetDocument) documentService.getByDocumentHeaderId(parentDocument.getFinalBudgetVersion().getDocumentNumber()); - } else { - final List budgetVersions = parentDocument.getBudgetDocumentVersions(); - if (budgetVersions != null && !budgetVersions.isEmpty()) { - QueryList budgetVersionsQuery = new QueryList(); - budgetVersionsQuery.sort("budgetVersionNumber", false); - ProposalDevelopmentBudgetExt budgetVersionOverview = budgetVersionsQuery.get(0); - budgetDocument = (BudgetDocument) documentService.getByDocumentHeaderId(budgetVersionOverview.getDocumentNumber()); - } + public Budget getFinalBudgetVersion(ProposalDevelopmentDocument parentDocument) throws WorkflowException { + ProposalDevelopmentBudgetExt budgetVersionOverview = null; + final List budgetVersions = parentDocument.getDevelopmentProposal().getBudgets(); + if (budgetVersions != null && !budgetVersions.isEmpty()) { + QueryList budgetVersionsQuery = new QueryList(); + budgetVersionsQuery.sort("budgetVersionNumber", false); + budgetVersionOverview = budgetVersionsQuery.get(0); } - return budgetDocument; + return budgetVersionOverview; } public boolean isRateOverridden(BudgetPeriod budgetPeriod){ diff --git a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/budget/ProposalDevelopmentBudgetVersionsAction.java b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/budget/ProposalDevelopmentBudgetVersionsAction.java index 3db2227c91b..d66df388179 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/budget/ProposalDevelopmentBudgetVersionsAction.java +++ b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/budget/ProposalDevelopmentBudgetVersionsAction.java @@ -284,7 +284,7 @@ public ActionForward save(ActionMapping mapping, ActionForm form, HttpServletReq GlobalVariables.getMessageMap().putError( "document.budgetDocumentVersion[" + (errorBudgetVersion - 1) + "].budgetVersionOverview.budgetStatus", KeyConstants.CLEAR_AUDIT_ERRORS_BEFORE_CHANGE_STATUS_TO_COMPLETE); - for (Budget budgetVersion: pdDoc.getBudgetDocumentVersions()) { + for (Budget budgetVersion: pdDoc.getDevelopmentProposal().getBudgets()) { String budgetStatusIncompleteCode = getParameterService().getParameterValueAsString( BudgetDocument.class, Constants.BUDGET_STATUS_INCOMPLETE_CODE); @@ -321,12 +321,11 @@ private int getTentativeFinalBudgetVersion(ProposalDevelopmentForm pdForm) { ProposalDevelopmentDocument document = pdForm.getProposalDevelopmentDocument(); int i = 1; - if(document != null && CollectionUtils.isNotEmpty(document.getBudgetDocumentVersions())) { - for(Budget budget : document.getBudgetDocumentVersions()) { + List budgets = document.getDevelopmentProposal().getBudgets(); + if(document != null && CollectionUtils.isNotEmpty(budgets)) { + for(Budget budget : budgets) { if(budget.isFinalVersionFlag()) { - // if copied budgetversion, the list may not be in version order. so has to change it. return i; - // return budget.getBudgetVersionNumber().intValue(); } i++; } @@ -339,7 +338,7 @@ private int getTentativeFinalBudgetVersion(ProposalDevelopmentForm pdForm) { public ActionForward reload(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { final ActionForward forward = super.reload(mapping, form, request, response); final ProposalDevelopmentForm pdForm = (ProposalDevelopmentForm) form; - pdForm.setFinalBudgetVersion(getFinalBudgetVersion(pdForm.getProposalDevelopmentDocument().getBudgetDocumentVersions())); + pdForm.setFinalBudgetVersion(getFinalBudgetVersion(pdForm.getProposalDevelopmentDocument().getBudgetParent().getBudgets())); setBudgetStatuses(pdForm.getProposalDevelopmentDocument()); final BudgetTDCValidator tdcValidator = new BudgetTDCValidator(request); diff --git a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/budget/editable/ProposalBudgetDataOverrideRule.java b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/budget/editable/ProposalBudgetDataOverrideRule.java index 7eb3aa9baf1..bcc06299d03 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/budget/editable/ProposalBudgetDataOverrideRule.java +++ b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/budget/editable/ProposalBudgetDataOverrideRule.java @@ -84,7 +84,7 @@ public boolean processBudgetDataOverrideRules(BudgetDataOverrideEvent budgetData DataDictionaryService dataDictionaryService = getDataDictionaryService(); String overriddenValue = budgetOverriddenData.getChangedValue(); KcPersistenceStructureService kraPersistenceStructureService = getKcPersistenceStructureService(); - Map columnToAttributesMap = kraPersistenceStructureService.getDBColumnToObjectAttributeMap(BudgetVersionOverview.class); + Map columnToAttributesMap = kraPersistenceStructureService.getDBColumnToObjectAttributeMap(Budget.class); String overriddenName = dataDictionaryService.getAttributeErrorLabel(Budget.class, columnToAttributesMap.get(budgetOverriddenData.getColumnName())); Boolean isRequiredField = dataDictionaryService.isAttributeRequired(Budget.class, columnToAttributesMap.get(budgetOverriddenData.getColumnName())); @@ -186,18 +186,18 @@ private boolean validateAttributeFormat(BudgetChangedData budgetOverriddenData, DevelopmentProposal developmentProposal = boService.findByPrimaryKey(DevelopmentProposal.class, documentMap); Map budgetMap = new HashMap(); - budgetMap.put("parentDocumentKey", developmentProposal.getProposalDocument().getDocumentNumber()); - BudgetDocument budgetDocument = null; - Collection budgetDocuments = boService.findMatching(BudgetDocument.class, budgetMap); - for (BudgetDocument document : budgetDocuments) { - if (document.getBudget().getFinalVersionFlag()) { - budgetDocument = document; + budgetMap.put("parentDocumentKey", developmentProposal.getProposalNumber()); + Budget finalBudget = null; + Collection budgets = boService.findMatching(Budget.class, budgetMap); + for (Budget budget : budgets) { + if (budget.getFinalVersionFlag()) { + finalBudget = budget; break; } } Object currentValue = proposalDevelopmentService.getBudgetFieldValueFromDBColumnName( - budgetDocument.getDocumentNumber(), budgetOverriddenData.getColumnName()); + finalBudget.getParentDocumentKey(), budgetOverriddenData.getColumnName()); if (currentValue instanceof ScaleTwoDecimal) { try { Double overriddenValueToInt = Double.parseDouble(overriddenValue); diff --git a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/budget/modular/BudgetModularTotalDirectCostRule.java b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/budget/modular/BudgetModularTotalDirectCostRule.java index 3a2076a6418..e9525483023 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/budget/modular/BudgetModularTotalDirectCostRule.java +++ b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/budget/modular/BudgetModularTotalDirectCostRule.java @@ -144,17 +144,17 @@ public boolean validateTotalDirectCost(final BudgetParentDocument parentDocument boolean passed = true; - final List budgetOverviews = parentDocument.getBudgetDocumentVersions(); + final List budgets = parentDocument.getBudgetParent().getBudgets(); - for (int i = 0; i < budgetOverviews.size(); i++) { - final Budget budgetOverview = budgetOverviews.get(i); + for (int i = 0; i < budgets.size(); i++) { + final Budget budget = budgets.get(i); if (this.budgetStatusCompleteCode.equalsIgnoreCase( - budgetOverview.getBudgetStatus())) { + budget.getBudgetStatus())) { final BudgetDocument budgetDocument = this.getBudgetDocument( - budgetOverview.getDocumentNumber()); - updateDocumentBudget(budgetDocument, budgetOverview); + budget.getDocumentNumber()); + updateDocumentBudget(budgetDocument, budget); passed &= this.checkTotalDirectCost(budgetDocument, i, reportErrors, warningMessages); } } diff --git a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/copy/CopyBudgetVersionsValuesFinder.java b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/copy/CopyBudgetVersionsValuesFinder.java index db867bfdbd4..54496083737 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/copy/CopyBudgetVersionsValuesFinder.java +++ b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/copy/CopyBudgetVersionsValuesFinder.java @@ -63,7 +63,7 @@ boolean finalVersionPresent() { final ProposalDevelopmentDocument document = this.getDocument(); if (document != null) { - for (final Budget overview : document.getBudgetDocumentVersions()) { + for (final Budget overview : document.getDevelopmentProposal().getBudgets()) { if (overview.isFinalVersionFlag()) { return true; } diff --git a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/copy/ProposalCopyServiceImpl.java b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/copy/ProposalCopyServiceImpl.java index e5aa0bee01d..4de6e385034 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/copy/ProposalCopyServiceImpl.java +++ b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/copy/ProposalCopyServiceImpl.java @@ -714,7 +714,7 @@ protected void fixCongressionalDistricts(ProposalDevelopmentDocument doc) { * @param doc the proposal development document */ protected void fixBudgetVersions(ProposalDevelopmentDocument doc) { - if (doc.getBudgetDocumentVersions().size() > 0) { + if (doc.getDevelopmentProposal().getBudgets().size() > 0) { String budgetStatusIncompleteCode = getParameterService().getParameterValueAsString( BudgetDocument.class, Constants.BUDGET_STATUS_INCOMPLETE_CODE); @@ -969,7 +969,7 @@ protected void copyBudget(ProposalDevelopmentDocument src, ProposalDevelopmentDo } } else if (budgetVersions.equals(ProposalCopyCriteria.BUDGET_ALL_VERSIONS)) { int i = 1; - for (ProposalDevelopmentBudgetExt budgetVersion: src.getBudgetDocumentVersions()) { + for (ProposalDevelopmentBudgetExt budgetVersion: src.getDevelopmentProposal().getBudgets()) { copyAndFinalizeBudgetVersion(budgetVersion, dest, i++, StringUtils.equals(src.getDevelopmentProposal().getHierarchyStatus(), HierarchyStatusConstants.Parent.code())); } diff --git a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/core/DevelopmentProposal.java b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/core/DevelopmentProposal.java index b03a46ff0a9..b89dc82bd66 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/core/DevelopmentProposal.java +++ b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/core/DevelopmentProposal.java @@ -19,6 +19,7 @@ import org.apache.commons.lang3.StringUtils; import org.eclipse.persistence.annotations.Customizer; import org.eclipse.persistence.config.DescriptorCustomizer; +import org.eclipse.persistence.internal.weaving.RelationshipInfo; import org.kuali.coeus.common.api.sponsor.hierarchy.SponsorHierarchyService; import org.kuali.coeus.common.framework.noo.NoticeOfOpportunity; import org.kuali.coeus.common.framework.org.Organization; @@ -2414,4 +2415,5 @@ public SponsorHierarchyService getSponsorHierarchyService(){ } return this.sponsorHierarchyService; } + } diff --git a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/core/ProposalDevelopmentAction.java b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/core/ProposalDevelopmentAction.java index 0fdabbac9d2..e134c4fdb92 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/core/ProposalDevelopmentAction.java +++ b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/core/ProposalDevelopmentAction.java @@ -389,9 +389,10 @@ public ActionForward save(ActionMapping mapping, ActionForm form, HttpServletReq final ProposalDevelopmentDocument doc = proposalDevelopmentForm.getProposalDevelopmentDocument(); //if the proposal hasn't been saved yet, the s2sopp proposal number will be null. We need to save it in the form until we //have a proposal number to set due to OJBs difficulty in dealing with 1-to-1 relationships. - S2sOpportunity s2sOpportunity = proposalDevelopmentForm.getProposalDevelopmentDocument().getDevelopmentProposal().getS2sOpportunity(); + DevelopmentProposal developmentProposal = doc.getDevelopmentProposal(); + S2sOpportunity s2sOpportunity = developmentProposal.getS2sOpportunity(); if(s2sOpportunity!=null && s2sOpportunity.getProposalNumber()==null){ - proposalDevelopmentForm.getProposalDevelopmentDocument().getDevelopmentProposal().setS2sOpportunity(null); + developmentProposal.setS2sOpportunity(null); proposalDevelopmentForm.setS2sOpportunity(s2sOpportunity); } updateProposalDocument(proposalDevelopmentForm); @@ -405,15 +406,16 @@ public ActionForward save(ActionMapping mapping, ActionForm form, HttpServletReq } s2sOpportunity=proposalDevelopmentForm.getS2sOpportunity(); if(s2sOpportunity!=null) { - doc.getDevelopmentProposal().setS2sOpportunity(s2sOpportunity); + developmentProposal.setS2sOpportunity(s2sOpportunity); s2sOpportunity.setDevelopmentProposal(doc.getDevelopmentProposal()); getBusinessObjectService().save(s2sOpportunity); proposalDevelopmentForm.setS2sOpportunity(null); } - doc.getDevelopmentProposal().updateProposalNumbers(); + developmentProposal.updateProposalNumbers(); - proposalDevelopmentForm.setFinalBudgetVersion(getFinalBudgetVersion(doc.getBudgetDocumentVersions())); + List budgets = developmentProposal.getBudgets(); + proposalDevelopmentForm.setFinalBudgetVersion(getFinalBudgetVersion(budgets)); setBudgetStatuses(doc); //if not on budget page @@ -423,11 +425,11 @@ public ActionForward save(ActionMapping mapping, ActionForm form, HttpServletReq final BudgetTDCValidator tdcValidator = new BudgetTDCValidator(request); tdcValidator.validateGeneratingErrorsAndWarnings(doc); } - if (doc.getBudgetDocumentVersions() != null && !doc.getBudgetDocumentVersions().isEmpty()) { - for (Budget budget : doc.getBudgetDocumentVersions()) { + if (budgets != null && !budgets.isEmpty()) { + for (Budget budget : budgets) { if (!budget.getFinalVersionFlag()) { - budget.setStartDate(proposalDevelopmentForm.getProposalDevelopmentDocument().getDevelopmentProposal().getRequestedStartDateInitial()); - budget.setEndDate(proposalDevelopmentForm.getProposalDevelopmentDocument().getDevelopmentProposal().getRequestedEndDateInitial()); + budget.setStartDate(developmentProposal.getRequestedStartDateInitial()); + budget.setEndDate(developmentProposal.getRequestedEndDateInitial()); this.getBusinessObjectService().save(budget); } } @@ -571,7 +573,8 @@ public ActionForward budgetVersions(ActionMapping mapping, ActionForm form, Http if(StringUtils.isEmpty(headerTabCall)) { pdForm.getDocument().refreshPessimisticLocks(); } - pdForm.setFinalBudgetVersion(getFinalBudgetVersion(pdForm.getProposalDevelopmentDocument().getBudgetDocumentVersions())); + List budgets = pdForm.getProposalDevelopmentDocument().getDevelopmentProposal().getBudgets(); + pdForm.setFinalBudgetVersion(getFinalBudgetVersion(budgets)); getBudgetService().setBudgetStatuses(pdForm.getProposalDevelopmentDocument()); final BudgetTDCValidator tdcValidator = new BudgetTDCValidator(request); @@ -895,9 +898,8 @@ public ActionForward approverView(ActionMapping mapping, ActionForm form, HttpSe ProposalDevelopmentForm pdform = (ProposalDevelopmentForm) form; ProposalDevelopmentDocument document = pdform.getProposalDevelopmentDocument(); getKeyPersonnelService().populateDocument(pdform.getProposalDevelopmentDocument()); - BudgetDocument budgetDocument = getProposalBudgetService() .getFinalBudgetVersion(document); - if(budgetDocument != null) { - Budget budget = budgetDocument.getBudget(); + Budget budget = getProposalBudgetService() .getFinalBudgetVersion(document); + if(budget != null) { if(budget.getFinalVersionFlag()){ final Map fieldValues = new HashMap(); fieldValues.put("budgetId", budget.getBudgetId()); diff --git a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/core/ProposalDevelopmentDocument.java b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/core/ProposalDevelopmentDocument.java index d46a0f88555..483625c8117 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/core/ProposalDevelopmentDocument.java +++ b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/core/ProposalDevelopmentDocument.java @@ -27,6 +27,7 @@ import org.kuali.coeus.propdev.impl.state.ProposalStateService; import org.kuali.coeus.sys.framework.auth.perm.Permissionable; import org.kuali.coeus.sys.framework.auth.task.Task; +import org.kuali.coeus.sys.framework.model.KcTransactionalDocumentBase; import org.kuali.coeus.sys.framework.service.KcServiceLocator; import org.kuali.coeus.sys.framework.workflow.KcDocumentRejectionService; import org.kuali.kra.bo.RolePersons; @@ -135,9 +136,9 @@ public class ProposalDevelopmentDocument extends BudgetParentDocument budgetDocumentVersions; +// @OneToMany(orphanRemoval = true, cascade = { CascadeType.ALL }) +// @JoinColumn(name = "PARENT_DOCUMENT_KEY", referencedColumnName = "DOCUMENT_NUMBER") +// private List budgetDocumentVersions; @OneToMany(orphanRemoval = true, cascade = { CascadeType.ALL }) @JoinColumn(name = "DOCUMENT_NUMBER", referencedColumnName = "DOCUMENT_NUMBER", insertable = true, updatable = true) @@ -157,7 +158,7 @@ public ProposalDevelopmentDocument() { DevelopmentProposal newProposal = new DevelopmentProposal(); newProposal.setProposalDocument(this); developmentProposal = newProposal; - budgetDocumentVersions = new ArrayList(); +// budgetDocumentVersions = new ArrayList(); customDataList = new ArrayList(); } @Override @@ -343,7 +344,7 @@ protected DateTimeService getDateTimeService() { } public Budget getFinalBudgetForThisProposal() { - return this.getFinalBudgetVersion(); + return getFinalBudgetVersion(); } public String getFinalrateClassCode() { @@ -384,8 +385,9 @@ public void prepareForSave() { if (!isProposalDeleted()) { getDevelopmentProposal().updateS2sOpportunity(); getProposalBudgetStatusService().saveBudgetFinalVersionStatus(this); - if (getBudgetDocumentVersions() != null) { - updateDocumentDescriptions(getBudgetDocumentVersions()); + List versions = getBudgetParent().getBudgets(); + if (versions != null) { + updateBudgetDescriptions(versions); } } } @@ -440,24 +442,24 @@ public List buildListOfDeletionAwareLists() { return managedLists; } - /** - * Sets the budgetDocumentVersions attribute value. - * @param budgetDocumentVersions The budgetDocumentVersions to set. - */ - @Override - public void setBudgetDocumentVersions(List budgetDocumentVersions) { - if (budgetDocumentVersions == null) { - getDevelopmentProposal().setBudgets(null); - } else { - getDevelopmentProposal().setBudgets((List) budgetDocumentVersions); - } - } - - - @Override - public List getBudgetDocumentVersions() { - return getDevelopmentProposal().getBudgets(); - } +// /** +// * Sets the budgetDocumentVersions attribute value. +// * @param budgetDocumentVersions The budgetDocumentVersions to set. +// */ +// @Override +// public void setBudgetDocumentVersions(List budgetDocumentVersions) { +// if (budgetDocumentVersions == null) { +// getDevelopmentProposal().setBudgets(null); +// } else { +// getDevelopmentProposal().setBudgets((List) budgetDocumentVersions); +// } +// } +// +// +// @Override +// public List getBudgetDocumentVersions() { +// return getDevelopmentProposal().getBudgets(); +// } @Override public Task getParentAuthZTask(String taskName) { @@ -595,11 +597,11 @@ public void setProposalDeleted(boolean proposalDeleted) { this.proposalDeleted = proposalDeleted; } - public void refreshBudgetDocumentVersions() { - final List v = new ArrayList(getDataObjectService().findMatching(BudgetDocumentVersion.class, - QueryByCriteria.Builder.andAttributes(Collections.singletonMap("parentDocumentKey",documentNumber)).build()).getResults()); - budgetDocumentVersions = v; - } +// public void refreshBudgetDocumentVersions() { +// final List v = new ArrayList(getDataObjectService().findMatching(BudgetDocumentVersion.class, +// QueryByCriteria.Builder.andAttributes(Collections.singletonMap("parentDocumentKey",documentNumber)).build()).getResults()); +// budgetDocumentVersions = v; +// } public void populateContextQualifiers(Map qualifiers) { qualifiers.put("namespaceCode", Constants.MODULE_NAMESPACE_PROPOSAL_DEVELOPMENT); @@ -671,6 +673,4 @@ public List getNotes() { } return notes; } - - } diff --git a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/core/ProposalDevelopmentForm.java b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/core/ProposalDevelopmentForm.java index 49c76959784..242ca902a66 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/core/ProposalDevelopmentForm.java +++ b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/core/ProposalDevelopmentForm.java @@ -763,7 +763,7 @@ public Map getCustomAttributeValues() { * @return true if copying budget(s) is disabled; otherwise false. */ public boolean getIsCopyBudgetDisabled() { - return !(this.getProposalDevelopmentDocument().getBudgetDocumentVersions().size() > 0); + return !(this.getProposalDevelopmentDocument().getDevelopmentProposal().getBudgets().size() > 0); } diff --git a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/core/ProposalDevelopmentServiceImpl.java b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/core/ProposalDevelopmentServiceImpl.java index b998b278023..fb01e55fb1d 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/core/ProposalDevelopmentServiceImpl.java +++ b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/core/ProposalDevelopmentServiceImpl.java @@ -257,7 +257,7 @@ public String populateProposalEditableFieldMetaDataForAjaxCall(String proposalNu } public String populateBudgetEditableFieldMetaDataForAjaxCall(String proposalNumber, String documentNumber, String editableFieldDBColumn) { if (isAuthorizedToAccess(proposalNumber) && StringUtils.isNotBlank(documentNumber) && StringUtils.isNotBlank(editableFieldDBColumn)) { - return populateBudgetEditableFieldMetaData(documentNumber, editableFieldDBColumn); + return populateBudgetEditableFieldMetaData(proposalNumber, editableFieldDBColumn); } return StringUtils.EMPTY; @@ -268,13 +268,13 @@ protected ProposalOverview getProposalOverview(String proposalNumber) { return currentProposal; } - protected BudgetVersionOverview getBudgetVersionOverview(String documentNumber) { - BudgetVersionOverview currentBudget=null; + protected Budget getBudgetVersionOverview(String proposalNumber) { + Budget currentBudget=null; Map primaryKeys = new HashMap(); - primaryKeys.put("documentNumber", documentNumber); - Collection currentBudgets = getDataObjectService().findMatching(BudgetVersionOverview.class, + primaryKeys.put("parentDocumentKey", proposalNumber); + Collection currentBudgets = getDataObjectService().findMatching(Budget.class, QueryByCriteria.Builder.andAttributes(primaryKeys).build()).getResults(); - for (BudgetVersionOverview budgetVersionOverview:currentBudgets) { + for (Budget budgetVersionOverview:currentBudgets) { if (budgetVersionOverview.isFinalVersionFlag()) { currentBudget = budgetVersionOverview; break; @@ -361,12 +361,12 @@ public Object getProposalFieldValueFromDBColumnName(String proposalNumber, Strin return fieldValue; } - public Object getBudgetFieldValueFromDBColumnName(String documentNumber, String dbColumnName) { + public Object getBudgetFieldValueFromDBColumnName(String proposalNumber, String dbColumnName) { Object fieldValue = null; - Map fieldMap = getKcPersistenceStructureService().getDBColumnToObjectAttributeMap(BudgetVersionOverview.class); + Map fieldMap = getKcPersistenceStructureService().getDBColumnToObjectAttributeMap(Budget.class); String budgetAttributeName = fieldMap.get(dbColumnName); if (StringUtils.isNotEmpty(budgetAttributeName)) { - BudgetVersionOverview currentBudget = getBudgetVersionOverview(documentNumber); + Budget currentBudget = getBudgetVersionOverview(proposalNumber); if (currentBudget != null) { fieldValue = ObjectUtils.getPropertyValue(currentBudget, budgetAttributeName); } @@ -457,7 +457,7 @@ public boolean isGrantsGovEnabledOnSponsorChange(String proposalNumber, String s @Override public ProposalDevelopmentDocument deleteProposal(ProposalDevelopmentDocument proposalDocument) throws WorkflowException { - ListIterator iter = proposalDocument.getBudgetDocumentVersions().listIterator(); + ListIterator iter = proposalDocument.getDevelopmentProposal().getBudgets().listIterator(); while (iter.hasNext()) { Budget budgetVersion = iter.next(); getDataObjectService().delete(budgetVersion); @@ -521,7 +521,7 @@ private boolean isAuthorizedToAccess(String proposalNumber) { } public Budget getFinalBudget(DevelopmentProposal proposal) { - List budgetDocuments = proposal.getProposalDocument().getBudgetDocumentVersions(); + List budgetDocuments = proposal.getBudgets(); Map fieldValues = new HashMap(); Budget budget = null; @@ -593,13 +593,13 @@ public InstitutionalProposal getInstitutionalProposal(String devProposalNumber) return null; } protected String populateBudgetEditableFieldMetaData( - String documentNumber, String editableFieldDBColumn) { + String proposalNumber, String editableFieldDBColumn) { String returnValue = ""; if (GlobalVariables.getMessageMap() != null) { GlobalVariables.getMessageMap().clearErrorMessages(); } - Object fieldValue = getBudgetFieldValueFromDBColumnName(documentNumber, editableFieldDBColumn); + Object fieldValue = getBudgetFieldValueFromDBColumnName(proposalNumber, editableFieldDBColumn); Map primaryKeys = new HashMap(); primaryKeys.put("columnName", editableFieldDBColumn); @@ -690,34 +690,35 @@ public ProposalDevelopmentDocument updateProposalDocument(ProposalDevelopmentDoc //For Budget and Narrative Lock regions, this is the only way in which a Proposal Document might get updated if (region != null && updatedDocCopy != null) { - if (region != ProposalLockingRegion.BUDGET) { - pdDocument.setBudgetDocumentVersions(updatedDocCopy.getBudgetDocumentVersions()); - pdDocument.getDevelopmentProposal().setBudgetStatus(updatedDocCopy.getDevelopmentProposal().getBudgetStatus()); + DevelopmentProposal developmentProposal = pdDocument.getDevelopmentProposal(); + if (region != ProposalLockingRegion.BUDGET) { +// pdDocument.setBudgetDocumentVersions(updatedDocCopy.getBudgetDocumentVersions()); + developmentProposal.setBudgetStatus(updatedDocCopy.getDevelopmentProposal().getBudgetStatus()); } else { //in case other parts of the document have been saved since we have saved, //we save off possibly changed parts and reload the rest of the document - List newVersions = pdDocument.getBudgetDocumentVersions(); - String budgetStatus = pdDocument.getDevelopmentProposal().getBudgetStatus(); + List newVersions = developmentProposal.getBudgets(); + String budgetStatus = developmentProposal.getBudgetStatus(); pdDocument = updatedDocCopy; loadDocument(pdDocument); - pdDocument.setBudgetDocumentVersions(newVersions); - pdDocument.getDevelopmentProposal().setBudgetStatus(budgetStatus); +// pdDocument.setBudgetDocumentVersions(newVersions); + developmentProposal.setBudgetStatus(budgetStatus); } if (region != ProposalLockingRegion.ATTACHMENTS) { - pdDocument.getDevelopmentProposal().setNarratives(updatedDocCopy.getDevelopmentProposal().getNarratives()); - pdDocument.getDevelopmentProposal().setInstituteAttachments(updatedDocCopy.getDevelopmentProposal().getInstituteAttachments()); - pdDocument.getDevelopmentProposal().setProposalAbstracts(updatedDocCopy.getDevelopmentProposal().getProposalAbstracts()); - pdDocument.getDevelopmentProposal().setPropPersonBios(updatedDocCopy.getDevelopmentProposal().getPropPersonBios()); + developmentProposal.setNarratives(updatedDocCopy.getDevelopmentProposal().getNarratives()); + developmentProposal.setInstituteAttachments(updatedDocCopy.getDevelopmentProposal().getInstituteAttachments()); + developmentProposal.setProposalAbstracts(updatedDocCopy.getDevelopmentProposal().getProposalAbstracts()); + developmentProposal.setPropPersonBios(updatedDocCopy.getDevelopmentProposal().getPropPersonBios()); removePersonnelAttachmentForDeletedPerson(pdDocument); } else { //in case other parts of the document have been saved since we have saved, //we save off possibly changed parts and reload the rest of the document - List newNarratives = pdDocument.getDevelopmentProposal().getNarratives(); - List instituteAttachments = pdDocument.getDevelopmentProposal().getInstituteAttachments(); - List newAbstracts = pdDocument.getDevelopmentProposal().getProposalAbstracts(); - List newBiographies = pdDocument.getDevelopmentProposal().getPropPersonBios(); + List newNarratives = developmentProposal.getNarratives(); + List instituteAttachments = developmentProposal.getInstituteAttachments(); + List newAbstracts = developmentProposal.getProposalAbstracts(); + List newBiographies = developmentProposal.getPropPersonBios(); pdDocument = updatedDocCopy; loadDocument(pdDocument); @@ -732,10 +733,10 @@ public ProposalDevelopmentDocument updateProposalDocument(ProposalDevelopmentDoc } } //now re-add narratives that could include changes and can't be modified otherwise - pdDocument.getDevelopmentProposal().setNarratives(newNarrativesCopy); - pdDocument.getDevelopmentProposal().setInstituteAttachments(instituteAttachments); - pdDocument.getDevelopmentProposal().setProposalAbstracts(newAbstracts); - pdDocument.getDevelopmentProposal().setPropPersonBios(newBiographies); + developmentProposal.setNarratives(newNarrativesCopy); + developmentProposal.setInstituteAttachments(instituteAttachments); + developmentProposal.setProposalAbstracts(newAbstracts); + developmentProposal.setPropPersonBios(newBiographies); } } diff --git a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/hierarchy/ProposalHierarchyServiceImpl.java b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/hierarchy/ProposalHierarchyServiceImpl.java index f2c300e320b..2164f15817d 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/hierarchy/ProposalHierarchyServiceImpl.java +++ b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/hierarchy/ProposalHierarchyServiceImpl.java @@ -1124,7 +1124,7 @@ protected List> getHierarchyBudgets(Developm List> hierarchyBudgets = new ArrayList>(); try { - for (Budget budgetVersion : hierarchyProposal.getProposalDocument().getBudgetDocumentVersions()) { + for (Budget budgetVersion : hierarchyProposal.getProposalDocument().getDevelopmentProposal().getBudgets()) { String budgetDocumentNumber = budgetVersion.getDocumentNumber(); hierarchyBudgets.add((BudgetDocument) documentService.getByDocumentHeaderId(budgetDocumentNumber)); } @@ -1136,7 +1136,7 @@ protected List> getHierarchyBudgets(Developm } protected BudgetDocument getHierarchyBudget(DevelopmentProposal hierarchyProposal) throws ProposalHierarchyException { - String budgetDocumentNumber = hierarchyProposal.getProposalDocument().getBudgetDocumentVersions().get(0).getDocumentNumber(); + String budgetDocumentNumber = hierarchyProposal.getProposalDocument().getDevelopmentProposal().getBudgets().get(0).getDocumentNumber(); BudgetDocument budgetDocument = null; try { budgetDocument = (BudgetDocument) documentService.getByDocumentHeaderId(budgetDocumentNumber); @@ -1149,7 +1149,7 @@ protected BudgetDocument getHierarchyBudget(DevelopmentProp public BudgetDocument getSyncableBudget(DevelopmentProposal childProposal) throws ProposalHierarchyException { String budgetDocumentNumber = null; - for (Budget version : childProposal.getProposalDocument().getBudgetDocumentVersions()) { + for (Budget version : childProposal.getProposalDocument().getDevelopmentProposal().getBudgets()) { budgetDocumentNumber = version.getDocumentNumber(); if (version.isFinalVersionFlag()) { break; @@ -1347,7 +1347,6 @@ protected void prepareHierarchySync(ProposalDevelopmentDocument pdDoc) { } protected void finalizeHierarchySync(ProposalDevelopmentDocument pdDoc) throws ProposalHierarchyException { - pdDoc.refreshBudgetDocumentVersions(); try { documentService.saveDocument(pdDoc); } diff --git a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/hierarchy/ProposalHierarcyActionHelper.java b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/hierarchy/ProposalHierarcyActionHelper.java index 3835ed09f2a..f686f0a63ff 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/hierarchy/ProposalHierarcyActionHelper.java +++ b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/hierarchy/ProposalHierarcyActionHelper.java @@ -226,12 +226,11 @@ else if (hasCompleteBudget(proposal)) { private boolean validateChildCandidate(DevelopmentProposal proposal) { boolean valid = true; - proposal.getProposalDocument().refreshBudgetDocumentVersions(); if (proposal.isInHierarchy()) { GlobalVariables.getMessageMap().putError(FIELD_CHILD_NUMBER, ERROR_LINK_ALREADY_MEMBER, new String[0]); return false; } - if (proposal.getProposalDocument().getBudgetDocumentVersions().isEmpty()) { + if (proposal.getBudgets().isEmpty()) { GlobalVariables.getMessageMap().putError(FIELD_CHILD_NUMBER, ERROR_LINK_NO_BUDGET_VERSION, new String[0]); valid = false; } @@ -380,7 +379,7 @@ private boolean hasCompleteBudget(ProposalDevelopmentDocument pdDoc) { boolean retval = false; String completeCode = getParameterService().getParameterValueAsString(BudgetDocument.class, Constants.BUDGET_STATUS_COMPLETE_CODE); - for (ProposalDevelopmentBudgetExt version : pdDoc.getBudgetDocumentVersions()) { + for (ProposalDevelopmentBudgetExt version : pdDoc.getDevelopmentProposal().getBudgets()) { if (!(version.getBudgetStatus() == null ) && version.getBudgetStatus().equalsIgnoreCase(completeCode)) { retval = true; break; diff --git a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/krms/PropDevJavaFunctionKrmsTermServiceImpl.java b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/krms/PropDevJavaFunctionKrmsTermServiceImpl.java index 43166e1d152..02d84bfd9b6 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/krms/PropDevJavaFunctionKrmsTermServiceImpl.java +++ b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/krms/PropDevJavaFunctionKrmsTermServiceImpl.java @@ -306,7 +306,7 @@ public String ospAdminPropPersonRule(DevelopmentProposal developmentProposal) { public String costElementVersionLimit(DevelopmentProposal developmentProposal, String versionNumber, String costElementName, String limit) { Long versionNumberLong = Long.parseLong(versionNumber); float limitLong = Float.parseFloat(limit); - for (Budget bdv : developmentProposal.getProposalDocument().getBudgetDocumentVersions()) { + for (Budget bdv : developmentProposal.getBudgets()) { if (bdv.getVersionNumber().equals(versionNumberLong)) { try { BudgetDocument budgetDocument = (BudgetDocument) getDocumentService().getByDocumentHeaderId(bdv.getDocumentNumber()); @@ -371,7 +371,7 @@ public String divisionCodeIsFellowship(DevelopmentProposal developmentProposal, */ @Override public String budgetSubawardOrganizationnameRule(DevelopmentProposal developmentProposal) { - for (Budget budget : developmentProposal.getProposalDocument().getBudgetDocumentVersions()) { + for (Budget budget : developmentProposal.getBudgets()) { if (budget.isFinalVersionFlag()) { for (BudgetSubAwards bsa : budget.getBudgetSubAwards()) { if (StringUtils.equals(FALSE, specialCharacterRule(bsa.getOrganizationName()))) { diff --git a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/lock/ProposalLockServiceImpl.java b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/lock/ProposalLockServiceImpl.java index 2a5c752eb0e..42da019d135 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/lock/ProposalLockServiceImpl.java +++ b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/lock/ProposalLockServiceImpl.java @@ -132,7 +132,7 @@ protected PessimisticLock createNewPessimisticLock(Document document, Map editMo String lockDescriptor = document.getCustomLockDescriptor(user); ProposalDevelopmentDocument pdDocument = (ProposalDevelopmentDocument) document; if(StringUtils.isNotEmpty(lockDescriptor) && lockDescriptor.contains(KraAuthorizationConstants.LOCK_DESCRIPTOR_BUDGET)) { - for(ProposalDevelopmentBudgetExt budgetOverview: pdDocument.getBudgetDocumentVersions()) { + for(ProposalDevelopmentBudgetExt budgetOverview: pdDocument.getDevelopmentProposal().getBudgets()) { generateNewLock(budgetOverview.getDocumentNumber(), lockDescriptor, user); } } diff --git a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/print/ProposalBaseStream.java b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/print/ProposalBaseStream.java index c0180d2a3c7..50b3f6728f8 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/print/ProposalBaseStream.java +++ b/coeus-code/src/main/java/org/kuali/coeus/propdev/impl/print/ProposalBaseStream.java @@ -63,18 +63,11 @@ public abstract class ProposalBaseStream implements XmlStream { */ protected Budget getBudget( ProposalDevelopmentDocument proposalDevelopmentDocument) { - BudgetDocument bdDoc = null; + Budget budget = null; try { - bdDoc = KcServiceLocator.getService( - ProposalBudgetService.class).getFinalBudgetVersion( - proposalDevelopmentDocument); + budget = KcServiceLocator.getService(ProposalBudgetService.class).getFinalBudgetVersion(proposalDevelopmentDocument); } catch (WorkflowException e) { - LOG.error("Error while fetching final Budget Version", e); - } - - Budget budget = null; - if (bdDoc != null) { - budget = bdDoc.getBudget(); + e.printStackTrace(); } return budget; } diff --git a/coeus-code/src/main/java/org/kuali/coeus/sys/framework/model/KcTransactionalDocumentBase.java b/coeus-code/src/main/java/org/kuali/coeus/sys/framework/model/KcTransactionalDocumentBase.java index fdc7d6dcd17..1cdfd9a1e9f 100644 --- a/coeus-code/src/main/java/org/kuali/coeus/sys/framework/model/KcTransactionalDocumentBase.java +++ b/coeus-code/src/main/java/org/kuali/coeus/sys/framework/model/KcTransactionalDocumentBase.java @@ -180,14 +180,6 @@ public void validateBusinessRules(DocumentEvent event) { } } - public void updateDocumentDescriptions(List budgetVersionOverviews) { - BudgetService budgetService = KcServiceLocator.getService(BudgetService.class); - for (Budget budgetVersion : budgetVersionOverviews) { - if (budgetVersion.isNameUpdatable() && !StringUtils.isBlank(budgetVersion.getName())) { - budgetVersion.setNameUpdatable(false); - } - } - } /** * This method populates the customAttributes for this document. diff --git a/coeus-code/src/main/java/org/kuali/kra/award/AwardLockServiceImpl.java b/coeus-code/src/main/java/org/kuali/kra/award/AwardLockServiceImpl.java index 4a9099b76d2..d5dbf8a63f3 100644 --- a/coeus-code/src/main/java/org/kuali/kra/award/AwardLockServiceImpl.java +++ b/coeus-code/src/main/java/org/kuali/kra/award/AwardLockServiceImpl.java @@ -110,9 +110,9 @@ protected Map getEditModeWithEditableModesRemoved(Map currentEditMode) { protected PessimisticLock createNewPessimisticLock(Document document, Map editMode, Person user) { if (document.useCustomLockDescriptors()) { String lockDescriptor = document.getCustomLockDescriptor(user); - AwardDocument pdDocument = (AwardDocument) document; + AwardDocument awardDocument = (AwardDocument) document; if(StringUtils.isNotEmpty(lockDescriptor) && lockDescriptor.contains(KraAuthorizationConstants.LOCK_DESCRIPTOR_BUDGET)) { - List awardBudgetDocuments = pdDocument.getBudgetDocumentVersions(); + List awardBudgetDocuments = awardDocument.getBudgetDocumentVersions(); for(BudgetDocumentVersion budgetOverview: awardBudgetDocuments) { generateNewLock(budgetOverview.getDocumentNumber(), lockDescriptor, user); } diff --git a/coeus-code/src/main/java/org/kuali/kra/award/budget/AwardBudgetService.java b/coeus-code/src/main/java/org/kuali/kra/award/budget/AwardBudgetService.java index f691e9e0a4c..2d4ca9918a1 100644 --- a/coeus-code/src/main/java/org/kuali/kra/award/budget/AwardBudgetService.java +++ b/coeus-code/src/main/java/org/kuali/kra/award/budget/AwardBudgetService.java @@ -16,6 +16,7 @@ package org.kuali.kra.award.budget; import org.kuali.kra.award.budget.document.AwardBudgetDocument; +import org.kuali.kra.award.budget.document.AwardBudgetDocumentVersion; import org.kuali.kra.award.document.AwardDocument; import org.kuali.kra.award.home.Award; import org.kuali.coeus.sys.api.model.ScaleTwoDecimal; @@ -96,7 +97,7 @@ public interface AwardBudgetService extends BudgetCommonService { */ void populateBudgetLimitSummary(BudgetLimitSummaryHelper limitSummary, AwardDocument awardDocument); - List getAllBudgetsForAward(AwardDocument awardDocument); + List getAllBudgetsForAward(AwardDocument awardDocument); /** * @@ -129,7 +130,7 @@ public interface AwardBudgetService extends BudgetCommonService { * @return true if any unfinalized budgets are found * @throws WorkflowException */ - boolean checkForOutstandingBudgets(BudgetParentDocument parentDoc); + boolean checkForOutstandingBudgets(AwardDocument parentDoc); /** * diff --git a/coeus-code/src/main/java/org/kuali/kra/award/budget/AwardBudgetServiceImpl.java b/coeus-code/src/main/java/org/kuali/kra/award/budget/AwardBudgetServiceImpl.java index e99f2351beb..7119375fcb5 100644 --- a/coeus-code/src/main/java/org/kuali/kra/award/budget/AwardBudgetServiceImpl.java +++ b/coeus-code/src/main/java/org/kuali/kra/award/budget/AwardBudgetServiceImpl.java @@ -97,10 +97,11 @@ public void post(AwardBudgetDocument awardBudgetDocument) { */ @SuppressWarnings("unchecked") protected AwardBudgetDocument copyBudgetVersion(AwardBudgetDocument budgetDocument, boolean onlyOnePeriod) throws WorkflowException { - String parentDocumentNumber = budgetDocument.getBudget().getBudgetParent().getDocument().getDocumentNumber(); + AwardDocument awardDocument = (AwardDocument)budgetDocument.getBudget().getBudgetParent().getDocument(); + String parentDocumentNumber = awardDocument.getDocumentNumber(); budgetDocument.toCopy(); - budgetDocument.getBudget().getBudgetParent().getDocument().getDocumentHeader().setDocumentNumber(parentDocumentNumber); - budgetDocument.getBudget().getBudgetParent().getDocument().setDocumentNumber(parentDocumentNumber); + awardDocument.getDocumentHeader().setDocumentNumber(parentDocumentNumber); + awardDocument.setDocumentNumber(parentDocumentNumber); if(budgetDocument.getBudget() == null) { throw new RuntimeException("Not able to find any Budget Version associated with this document"); } @@ -109,7 +110,8 @@ protected AwardBudgetDocument copyBudgetVersion(AwardBudgetDocument budgetDocume budgetDocument.setBudget(copiedBudget); budgetDocument = (AwardBudgetDocument) documentService.saveDocument(budgetDocument); budgetDocument = (AwardBudgetDocument) saveBudgetDocument(budgetDocument, false); - budgetDocument.getBudget().getBudgetParent().getDocument().refreshBudgetDocumentVersions(); + AwardDocument savedAwardDocument = (AwardDocument)budgetDocument.getBudget().getBudgetParent().getDocument(); + savedAwardDocument.refreshBudgetDocumentVersions(); return budgetDocument; } @@ -261,11 +263,11 @@ public Budget getNewBudgetVersion(BudgetParentDocument parentBudgetDocume public BudgetDocument getNewBudgetVersionDocument(BudgetParentDocument parentBudgetDocument, String documentDescription) throws WorkflowException { - if (checkForOutstandingBudgets(parentBudgetDocument)) { + AwardDocument parentDocument = (AwardDocument)parentBudgetDocument; + if (checkForOutstandingBudgets(parentDocument)) { return null; } - AwardDocument parentDocument = (AwardDocument)parentBudgetDocument; AwardBudgetDocument awardBudgetDocument = createNewBudgetDocument(documentDescription, parentDocument,false); return awardBudgetDocument; @@ -409,7 +411,7 @@ protected void copyObligatedAmountToLineItems(AwardBudgetDocument awardBudgetDoc } protected AwardBudgetExt getLatestPostedBudget(AwardDocument awardDocument) { - List documentVersions = awardDocument.getBudgetDocumentVersions(); + List documentVersions = awardDocument.getBudgetDocumentVersions(); QueryList awardBudgetVersionOverviews = new QueryList(); for (BudgetDocumentVersion budgetDocumentVersion : documentVersions) { awardBudgetVersionOverviews.add((AwardBudgetVersionOverviewExt)budgetDocumentVersion.getBudgetVersionOverview()); @@ -450,7 +452,7 @@ public ScaleTwoDecimal getTotalCostLimit(AwardDocument awardDocument) { * @return */ protected ScaleTwoDecimal getPostedTotalAmount(AwardDocument awardDocument) { - List documentVersions = awardDocument.getBudgetDocumentVersions(); + List documentVersions = awardDocument.getBudgetDocumentVersions(); String postedStatusCode = getAwardPostedStatusCode(); ScaleTwoDecimal postedTotalAmount = ScaleTwoDecimal.ZERO; for (BudgetDocumentVersion budgetDocumentVersion : documentVersions) { @@ -468,7 +470,7 @@ protected ScaleTwoDecimal getPostedTotalAmount(AwardDocument awardDocument) { */ protected boolean isPostedBudgetExist(AwardDocument awardDocument) { boolean exist = false; - List documentVersions = awardDocument.getBudgetDocumentVersions(); + List documentVersions = awardDocument.getBudgetDocumentVersions(); String postedStatusCode = getAwardPostedStatusCode(); for (BudgetDocumentVersion budgetDocumentVersion : documentVersions) { AwardBudgetVersionOverviewExt budget = (AwardBudgetVersionOverviewExt)budgetDocumentVersion.getBudgetVersionOverview(); @@ -485,7 +487,7 @@ protected String getAwardPostedStatusCode() { } protected BudgetVersionOverview getLastBudgetVersion(AwardDocument award) { - List awardBudgetDocumentVersions = award.getBudgetDocumentVersions(); + List awardBudgetDocumentVersions = award.getBudgetDocumentVersions(); BudgetVersionOverview budgetVersionOverview = null; int versionSize = awardBudgetDocumentVersions.size(); if(versionSize>0){ @@ -670,11 +672,11 @@ public List findBudgetPeriodsFromLinkedProposal(String awardNumber } - public boolean checkForOutstandingBudgets(BudgetParentDocument parentDoc) { + public boolean checkForOutstandingBudgets(AwardDocument parentDoc) { boolean result = false; - for (Budget version : parentDoc.getBudgetDocumentVersions()) { - AwardBudgetExt awardBudget = getBusinessObjectService().findBySinglePrimaryKey(AwardBudgetExt.class, version.getBudgetId()); + for (AwardBudgetDocumentVersion version : parentDoc.getBudgetDocumentVersions()) { + AwardBudgetExt awardBudget = getBusinessObjectService().findBySinglePrimaryKey(AwardBudgetExt.class, version.getBudgetVersionOverview().getBudgetId()); if (!(StringUtils.equals(awardBudget.getAwardBudgetStatusCode(), getPostedBudgetStatus()) || StringUtils.equals(awardBudget.getAwardBudgetStatusCode(), getRejectedBudgetStatus()) || StringUtils.equals(awardBudget.getAwardBudgetStatusCode(), getCancelledBudgetStatus()))) { @@ -755,15 +757,15 @@ protected AwardBudgetExt getNewestBudgetByStatus(AwardDocument awardDocument, Li return result; } - public List getAllBudgetsForAward(AwardDocument awardDocument) { - HashSet result = new HashSet(); + public List getAllBudgetsForAward(AwardDocument awardDocument) { + HashSet result = new HashSet(); List versions = getVersionHistoryService().loadVersionHistory(Award.class, awardDocument.getAward().getAwardNumber()); for (VersionHistory version : versions) { if (version.getSequenceOwnerSequenceNumber() <= awardDocument.getAward().getSequenceNumber() && !(version.getSequenceOwner() == null) && !(((Award) version.getSequenceOwner()).getAwardDocument() == null)) { result.addAll(((Award) version.getSequenceOwner()).getAwardDocument().getActualBudgetDocumentVersions()); } } - List listResult = new ArrayList(result); + List listResult = new ArrayList(result); Collections.sort(listResult); return listResult; } @@ -943,7 +945,8 @@ public void removeBudgetSummaryPeriodCalcAmounts(BudgetPeriod budgetPeriod) { @Override public boolean validateAddingNewBudget(BudgetParentDocument parentDocument) { - return !checkForOutstandingBudgets(parentDocument); + AwardDocument awardDocument = (AwardDocument)parentDocument; + return !checkForOutstandingBudgets(awardDocument); } public boolean checkRateChange(Collection savedBudgetRates,Award award){ award.refreshReferenceObject("awardFandaRate"); @@ -991,5 +994,4 @@ public void setAwardService(AwardService awardService) { this.awardService = awardService; } - } diff --git a/coeus-code/src/main/java/org/kuali/kra/award/document/AwardDocument.java b/coeus-code/src/main/java/org/kuali/kra/award/document/AwardDocument.java index 9f343e13413..a58aa0bf499 100644 --- a/coeus-code/src/main/java/org/kuali/kra/award/document/AwardDocument.java +++ b/coeus-code/src/main/java/org/kuali/kra/award/document/AwardDocument.java @@ -49,7 +49,9 @@ import org.kuali.coeus.common.budget.framework.core.Budget; import org.kuali.coeus.common.budget.framework.core.BudgetDocument; import org.kuali.coeus.common.budget.framework.core.BudgetParentDocument; +import org.kuali.coeus.common.budget.framework.version.AwardBudgetVersionCollection; import org.kuali.coeus.common.budget.framework.version.BudgetDocumentVersion; +import org.kuali.coeus.common.budget.framework.version.BudgetVersionOverview; import org.kuali.kra.infrastructure.Constants; import org.kuali.kra.infrastructure.RoleConstants; import org.kuali.kra.infrastructure.TaskGroupName; @@ -94,7 +96,7 @@ */ @NAMESPACE(namespace=Constants.PARAMETER_MODULE_AWARD) @COMPONENT(component=ParameterConstants.DOCUMENT_COMPONENT) -public class AwardDocument extends BudgetParentDocument implements Copyable, SessionDocument, KrmsRulesContext { +public class AwardDocument extends BudgetParentDocument implements AwardBudgetVersionCollection,Copyable, SessionDocument, KrmsRulesContext { private static final Log LOG = LogFactory.getLog(AwardDocument.class); public static final String PLACEHOLDER_DOC_DESCRIPTION = "*****PLACEHOLDER*****"; @@ -107,8 +109,8 @@ public class AwardDocument extends BudgetParentDocument implements Copya private static final String ALTERNATE_OPEN_TAB = "Parameters"; private List awardList; - private List actualBudgetDocumentVersions; - private List budgetDocumentVersions; + private List actualBudgetDocumentVersions; + private List budgetDocumentVersions; private static final String RETURN_TO_AWARD_ALT_TEXT = "return to award"; private static final String RETURN_TO_AWARD_METHOD_TO_CALL = "methodToCall.returnToAward"; @@ -280,8 +282,8 @@ public boolean answerSplitNodeQuestion( String routeNodeName ) { protected void init() { awardList = new ArrayList(); awardList.add(new Award()); - budgetDocumentVersions = new ArrayList(); - actualBudgetDocumentVersions = new ArrayList(); + budgetDocumentVersions = new ArrayList(); + actualBudgetDocumentVersions = new ArrayList(); } @Override @@ -303,7 +305,18 @@ public void prepareForSave() { } - void removeKeyPersonRoleForNoneKeyPerson() { + + private void updateDocumentDescriptions( + List budgetDocumentVersions) { + List awardBudgets = new ArrayList(); + for (AwardBudgetDocumentVersion awardBudgetDocumentVersion : budgetDocumentVersions) { + BudgetVersionOverview budget = awardBudgetDocumentVersion.getBudgetVersionOverview(); + awardBudgets.add(budget); + } + updateBudgetDescriptions(awardBudgets); + } + + void removeKeyPersonRoleForNoneKeyPerson() { for ( AwardPerson person : this.getAward().getProjectPersons() ) { if ( !StringUtils.equalsIgnoreCase(person.getContactRole().getRoleCode(), ContactRole.KEY_PERSON_CODE) && StringUtils.isNotEmpty(person.getKeyPersonRole()) ) { @@ -356,7 +369,7 @@ protected AwardSyncService getAwardSyncService() { return KcServiceLocator.getService(AwardSyncService.class); } - public List getBudgetDocumentVersions() { + public List getBudgetDocumentVersions() { if (budgetDocumentVersions == null || budgetDocumentVersions.isEmpty()) { budgetDocumentVersions = KcServiceLocator.getService(AwardBudgetService.class).getAllBudgetsForAward(this); } @@ -364,8 +377,8 @@ public List getBudgetDocumentVersions() { } @Override - public void setBudgetDocumentVersions(List budgetDocumentVersions) { - getAward().setBudgets((List) budgetDocumentVersions); + public void setBudgetDocumentVersions(List budgetDocumentVersions) { + this.budgetDocumentVersions = budgetDocumentVersions; } @Override @@ -614,11 +627,11 @@ public boolean isProcessComplete() { return isComplete; } - public List getActualBudgetDocumentVersions() { + public List getActualBudgetDocumentVersions() { return actualBudgetDocumentVersions; } - public void setActualBudgetDocumentVersions(List actualBudgetDocumentVersions) { + public void setActualBudgetDocumentVersions(List actualBudgetDocumentVersions) { this.actualBudgetDocumentVersions = actualBudgetDocumentVersions; } diff --git a/coeus-code/src/main/java/org/kuali/kra/award/web/struts/action/AwardBudgetsAction.java b/coeus-code/src/main/java/org/kuali/kra/award/web/struts/action/AwardBudgetsAction.java index e922ff0a902..53c0b1c804b 100644 --- a/coeus-code/src/main/java/org/kuali/kra/award/web/struts/action/AwardBudgetsAction.java +++ b/coeus-code/src/main/java/org/kuali/kra/award/web/struts/action/AwardBudgetsAction.java @@ -84,7 +84,7 @@ public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServlet //since the award budget versions panel is usually(always??) only usable when the award is //read only we need to make sure to perform post budget copy stuff here if (!StringUtils.equals(awardForm.getMethodToCall(), "save") && awardForm.isSaveAfterCopy()) { - final List overviews = awardForm.getAwardDocument().getBudgetDocumentVersions(); + final List overviews = awardForm.getAwardDocument().getBudgetDocumentVersions(); final BudgetDocumentVersion copiedDocumentOverview = overviews.get(overviews.size() - 1); BudgetVersionOverview copiedOverview = copiedDocumentOverview.getBudgetVersionOverview(); final String copiedName = copiedOverview.getName(); @@ -96,7 +96,7 @@ public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServlet if (!valid) { return mapping.findForward(Constants.MAPPING_BASIC); } else { - awardForm.getAwardDocument().updateDocumentDescriptions(awardForm.getAwardDocument().getBudgetDocumentVersions()); + awardForm.getAwardDocument().updateBudgetDescriptions(awardForm.getAwardDocument().getAward().getBudgets()); } } @@ -341,7 +341,7 @@ private int getTentativeFinalBudgetVersion(AwardForm awardForm) { public ActionForward reload(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { final ActionForward forward = super.reload(mapping, form, request, response); final AwardForm awardForm = (AwardForm) form; - awardForm.setFinalBudgetVersion(getFinalBudgetVersion(awardForm.getAwardDocument().getBudgetDocumentVersions())); + awardForm.setFinalBudgetVersion(getFinalBudgetVersion(awardForm.getAwardDocument().getAward().getBudgets())); setBudgetStatuses(awardForm.getAwardDocument()); final BudgetTDCValidator tdcValidator = new BudgetTDCValidator(request); diff --git a/coeus-code/src/test/java/org/kuali/coeus/propdev/impl/copy/CopyBudgetVersionsValuesFinderTest.java b/coeus-code/src/test/java/org/kuali/coeus/propdev/impl/copy/CopyBudgetVersionsValuesFinderTest.java index 09267debb37..71e176e2580 100644 --- a/coeus-code/src/test/java/org/kuali/coeus/propdev/impl/copy/CopyBudgetVersionsValuesFinderTest.java +++ b/coeus-code/src/test/java/org/kuali/coeus/propdev/impl/copy/CopyBudgetVersionsValuesFinderTest.java @@ -18,6 +18,8 @@ import org.junit.Assert; import org.junit.Before; import org.junit.Test; +import org.kuali.coeus.propdev.impl.budget.ProposalDevelopmentBudgetExt; +import org.kuali.coeus.propdev.impl.core.DevelopmentProposal; import org.kuali.coeus.propdev.impl.core.ProposalDevelopmentDocument; import org.kuali.coeus.common.budget.framework.core.Budget; import org.kuali.coeus.common.budget.framework.version.BudgetDocumentVersion; @@ -44,14 +46,16 @@ public void setupfinalFinder() { this.finalVerFinder = new CopyBudgetVersionsValuesFinder() { @Override protected ProposalDevelopmentDocument getDocument() { - List overviews = new ArrayList(); - overviews.add(new Budget()); - Budget o = new Budget(); + List overviews = new ArrayList(); + overviews.add(new ProposalDevelopmentBudgetExt()); + ProposalDevelopmentBudgetExt o = new ProposalDevelopmentBudgetExt(); o.setFinalVersionFlag(true); overviews.add(o); ProposalDevelopmentDocument document = new ProposalDevelopmentDocument(); - document.setBudgetDocumentVersions(overviews); + DevelopmentProposal devProp = new DevelopmentProposal(); + devProp.setBudgets(overviews); + document.setDevelopmentProposal(devProp); return document; } @@ -67,13 +71,15 @@ public void setupNofinalFinder() { this.nonFinalVerFinder = new CopyBudgetVersionsValuesFinder() { @Override protected ProposalDevelopmentDocument getDocument() { - List overviews = new ArrayList(); - overviews.add(new Budget()); - Budget o = new Budget(); + List overviews = new ArrayList(); + overviews.add(new ProposalDevelopmentBudgetExt()); + ProposalDevelopmentBudgetExt o = new ProposalDevelopmentBudgetExt(); overviews.add(o); ProposalDevelopmentDocument document = new ProposalDevelopmentDocument(); - document.setBudgetDocumentVersions(overviews); + DevelopmentProposal devProp = new DevelopmentProposal(); + devProp.setBudgets(overviews); + document.setDevelopmentProposal(devProp); return document; } diff --git a/coeus-code/src/test/java/org/kuali/kra/proposaldevelopment/rules/BudgetVersionRuleTest.java b/coeus-code/src/test/java/org/kuali/kra/proposaldevelopment/rules/BudgetVersionRuleTest.java index 690809a1017..ff8d8e42c2a 100644 --- a/coeus-code/src/test/java/org/kuali/kra/proposaldevelopment/rules/BudgetVersionRuleTest.java +++ b/coeus-code/src/test/java/org/kuali/kra/proposaldevelopment/rules/BudgetVersionRuleTest.java @@ -15,19 +15,33 @@ */ package org.kuali.kra.proposaldevelopment.rules; +import org.eclipse.persistence.internal.weaving.RelationshipInfo; import org.junit.Before; import org.junit.Test; import org.kuali.coeus.common.budget.framework.version.AddBudgetVersionEvent; import org.kuali.coeus.common.budget.framework.version.BudgetDocumentVersion; -import org.kuali.coeus.common.budget.framework.version.BudgetVersionCollection; +import org.kuali.coeus.common.budget.framework.version.AwardBudgetVersionCollection; +import org.kuali.coeus.common.budget.framework.version.BudgetVersionOverview; import org.kuali.coeus.common.budget.impl.version.BudgetVersionRule; import org.kuali.coeus.propdev.impl.budget.ProposalDevelopmentBudgetExt; import org.kuali.coeus.propdev.impl.core.ProposalDevelopmentDocument; +import org.kuali.coeus.sys.framework.auth.perm.Permissionable; +import org.kuali.coeus.sys.framework.auth.task.Task; +import org.kuali.coeus.common.budget.framework.core.AbstractBudget; import org.kuali.coeus.common.budget.framework.core.Budget; import org.kuali.coeus.common.budget.framework.core.BudgetDocument; +import org.kuali.coeus.common.budget.framework.core.BudgetParent; +import org.kuali.coeus.common.budget.framework.core.BudgetParentDocument; +import org.kuali.coeus.common.framework.custom.DocumentCustomData; +import org.kuali.coeus.common.framework.rolodex.PersonRolodex; +import org.kuali.coeus.common.framework.type.ActivityType; +import org.kuali.coeus.common.framework.unit.Unit; +import org.kuali.kra.award.home.ContactRole; +import org.kuali.rice.kns.web.ui.ExtraButton; import org.kuali.rice.krad.document.Document; import org.kuali.rice.krad.document.DocumentBase; +import java.sql.Date; import java.util.ArrayList; import java.util.List; @@ -43,6 +57,7 @@ public class BudgetVersionRuleTest { private static final String DEFAULT_BUD_VER_NAME = "Default Budget Name"; private PseudoProposalDevelopmentDocument proposal; + private PseudoBudgetParent budgetParent; @Before @@ -102,39 +117,296 @@ public void testNegativeEmptyName() throws Exception { * @param name of the {@link org.kuali.coeus.common.budget.framework.version.BudgetVersionOverview} to add */ public void addNewBudgetVersion(PseudoProposalDevelopmentDocument document, String name) { - document.getBudgetDocumentVersions().add(new PseudoBudgetVersionOverview(name)); + List l = document.getBudgetParent().budgets; + ProposalDevelopmentBudgetExt b = new ProposalDevelopmentBudgetExt(); + } - /** - * Fake {@link BudgetDocument} with a name constructor - */ - public class PseudoBudgetVersionOverview extends ProposalDevelopmentBudgetExt { - public PseudoBudgetVersionOverview(String name) { -// setDocumentDescription(name); - } - } /** * Fake {@link ProposalDevelopmentDocument} to get around using Spring for quicker unit tests that test just what we want to test. * */ - public class PseudoProposalDevelopmentDocument extends DocumentBase implements BudgetVersionCollection { - private List budgets; - + public class PseudoProposalDevelopmentDocument extends BudgetParentDocument { + PseudoBudgetParent pseudoBudgetParent; public PseudoProposalDevelopmentDocument() { - setBudgetDocumentVersions(new ArrayList()); + pseudoBudgetParent = new PseudoBudgetParent(); } + @Override + public String getProposalBudgetFlag() { + return "true"; + } + @Override + public String getDocumentNumberForPermission() { + + return null; + } + @Override + public String getDocumentKey() { + + return null; + } + @Override + public List getRoleNames() { + + return null; + } + @Override + public String getNamespace() { + + return null; + } + @Override + public String getLeadUnitNumber() { + + return null; + } + @Override + public String getDocumentRoleTypeCode() { + + return null; + } + @Override + public Permissionable getBudgetPermissionable() { + + return null; + } + @Override + public boolean isComplete() { + + return false; + } + @Override + public void saveBudgetFinalVersionStatus(BudgetDocument budgetDocument) { + + + } + @Override + public void processAfterRetrieveForBudget(BudgetDocument budgetDocument) { + + + } + @Override + public String getTaskGroupName() { + + return null; + } + @Override + public Task getParentAuthZTask(String taskName) { + + return null; + } + @Override + public ExtraButton configureReturnToParentTopButton() { + + return null; + } + @Override + public PseudoBudgetParent getBudgetParent() { + return pseudoBudgetParent; + } + @Override + public List getDocumentCustomData() { + + return null; + } + @Override + public String getDocumentBoNumber() { + + return null; + } + @Override + public String getDocumentTypeCode() { + + return null; + } + @Override + public boolean isProcessComplete() { + + return false; + } - public List getBudgetDocumentVersions() { - return budgets; - } - - public void setBudgetDocumentVersions(List budgetVersionOverviews) { - budgets = (List) budgetVersionOverviews; + } + public class PseudoBudgetParent implements BudgetParent { + private List budgets; + public PseudoBudgetParent() { + budgets = new ArrayList(); } - - public void refreshBudgetDocumentVersions() { - + + @Override + public String getBudgetStatus() { + + return null; + } + + @Override + public void setBudgetStatus(String budgetStatus) { + + + } + + @Override + public String getActivityTypeCode() { + + return null; + } + + @Override + public Date getRequestedStartDateInitial() { + + return null; + } + + @Override + public Date getRequestedEndDateInitial() { + + return null; + } + + @Override + public ActivityType getActivityType() { + + return null; + } + + @Override + public String getUnitNumber() { + + return null; + } + + @Override + public Unit getUnit() { + + return null; + } + + @Override + public List getPersonRolodexList() { + + return null; + } + + @Override + public ContactRole getProposalNonEmployeeRole(Integer rolodexId) { + + return null; + } + + @Override + public PersonRolodex getProposalEmployee(String personId) { + + return null; + } + + @Override + public PersonRolodex getProposalNonEmployee(Integer rolodexId) { + + return null; + } + + @Override + public ContactRole getProposalEmployeeRole(String personId) { + + return null; + } + + @Override + public String getHierarchyStatus() { + + return null; + } + + @Override + public String getDefaultBudgetStatusParameter() { + + return null; + } + + @Override + public boolean isParentInHierarchyComplete() { + + return false; + } + + @Override + public String getParentNumber() { + + return null; + } + + @Override + public String getParentTitle() { + + return null; + } + + @Override + public String getParentPIName() { + + return null; + } + + @Override + public String getIsOwnedByUnit() { + + return null; + } + + @Override + public Integer getParentInvestigatorFlag(String personId, Integer flag) { + + return null; + } + + @Override + public String getParentTypeName() { + + return null; + } + + @Override + public boolean isProposalBudget() { + + return false; + } + + @Override + public BudgetParentDocument getDocument() { + + return null; + } + + @Override + public List getBudgetVersionOverviews() { + + return null; + } + + @Override + public List getBudgets() { + return budgets; + } + + @Override + public Budget getNewBudget() { + + return null; + } + + @Override + public Integer getNextBudgetVersionNumber() { + + return null; + } + + } + /** + * Fake {@link BudgetDocument} with a name constructor + */ + public class PseudoBudgetVersionOverview extends ProposalDevelopmentBudgetExt { + public PseudoBudgetVersionOverview(String name) { + setName(name); } } } diff --git a/coeus-it/src/test/java/org/kuali/coeus/propdev/impl/budget/modular/BudgetModularTotalDirectCostRuleTest.java b/coeus-it/src/test/java/org/kuali/coeus/propdev/impl/budget/modular/BudgetModularTotalDirectCostRuleTest.java index 87686f67337..f9c74d9d6b1 100644 --- a/coeus-it/src/test/java/org/kuali/coeus/propdev/impl/budget/modular/BudgetModularTotalDirectCostRuleTest.java +++ b/coeus-it/src/test/java/org/kuali/coeus/propdev/impl/budget/modular/BudgetModularTotalDirectCostRuleTest.java @@ -169,7 +169,6 @@ public BudgetDocument getByDocumentHeaderId(final String documentHeaderId) { private void testNoErrors(final DocumentService service) { - this.pdDocument.setBudgetDocumentVersions(BudgetModularTotalDirectCostRuleTest.ONE_COMPLETE); BudgetModularTotalDirectCostRule rule = new BudgetModularTotalDirectCostRule(CoreApiServiceLocator.getKualiConfigurationService(), service, CoreFrameworkServiceLocator.getParameterService()); Set warnings = new HashSet(); @@ -178,7 +177,6 @@ private void testNoErrors(final DocumentService service) { Assert.assertTrue("The validation should not have produced any warnings " + warnings, warnings.isEmpty()); warnings = new HashSet(); - this.pdDocument.setBudgetDocumentVersions(BudgetModularTotalDirectCostRuleTest.TWO_COMPLETE); rule.validateTotalDirectCost(this.pdDocument, true, warnings); Assert.assertTrue("The validation should not have produced any errors " + GlobalVariables.getMessageMap(), GlobalVariables.getMessageMap().hasNoErrors()); Assert.assertTrue("The validation should not have produced any warnings " + warnings, warnings.isEmpty()); @@ -209,7 +207,6 @@ public BudgetDocument getByDocumentHeaderId(final String documentHeaderId) { } }; - this.pdDocument.setBudgetDocumentVersions(BudgetModularTotalDirectCostRuleTest.ONE_INCOMPLETE); BudgetModularTotalDirectCostRule rule = new BudgetModularTotalDirectCostRule(CoreApiServiceLocator.getKualiConfigurationService(), service, CoreFrameworkServiceLocator.getParameterService()); Set warnings = new HashSet(); @@ -218,7 +215,6 @@ public BudgetDocument getByDocumentHeaderId(final String documentHeaderId) { Assert.assertTrue("The validation should not have produced any warnings " + warnings, warnings.isEmpty()); warnings = new HashSet(); - this.pdDocument.setBudgetDocumentVersions(BudgetModularTotalDirectCostRuleTest.TWO_INCOMPLETE); rule.validateTotalDirectCost(this.pdDocument, true, warnings); Assert.assertTrue("The validation should not have produced any errors " + GlobalVariables.getMessageMap(), GlobalVariables.getMessageMap().hasNoErrors()); Assert.assertTrue("The validation should not have produced any warnings " + warnings, warnings.isEmpty()); @@ -361,7 +357,6 @@ public BudgetDocument getByDocumentHeaderId(final String documentHeaderId) { } }; - this.pdDocument.setBudgetDocumentVersions(BudgetModularTotalDirectCostRuleTest.ONE_COMPLETE); BudgetModularTotalDirectCostRule rule = new BudgetModularTotalDirectCostRule(CoreApiServiceLocator.getKualiConfigurationService(), service, CoreFrameworkServiceLocator.getParameterService()); Set warnings = new HashSet(); @@ -374,7 +369,6 @@ public BudgetDocument getByDocumentHeaderId(final String documentHeaderId) { Assert.assertTrue("The warning was incorrect, warning: " + warnings, warnings.contains(getWarning(rule))); - this.pdDocument.setBudgetDocumentVersions(BudgetModularTotalDirectCostRuleTest.TWO_COMPLETE); rule = new BudgetModularTotalDirectCostRule(CoreApiServiceLocator.getKualiConfigurationService(), service, CoreFrameworkServiceLocator.getParameterService()); warnings = new HashSet(); @@ -418,7 +412,6 @@ public BudgetDocument getByDocumentHeaderId(final String documentHeaderId) { } }; - this.pdDocument.setBudgetDocumentVersions(BudgetModularTotalDirectCostRuleTest.ONE_COMPLETE); BudgetModularTotalDirectCostRule rule = new BudgetModularTotalDirectCostRule(CoreApiServiceLocator.getKualiConfigurationService(), service, CoreFrameworkServiceLocator.getParameterService()); Set warnings = new HashSet(); @@ -432,7 +425,6 @@ public BudgetDocument getByDocumentHeaderId(final String documentHeaderId) { + GlobalVariables.getMessageMap().getErrorMessages().size(), 1, GlobalVariables.getMessageMap().getErrorMessages().size()); GlobalVariables.getMessageMap().clearErrorMessages(); - this.pdDocument.setBudgetDocumentVersions(BudgetModularTotalDirectCostRuleTest.TWO_COMPLETE); rule = new BudgetModularTotalDirectCostRule(CoreApiServiceLocator.getKualiConfigurationService(), service, CoreFrameworkServiceLocator.getParameterService()); warnings = new HashSet(); @@ -476,7 +468,6 @@ public BudgetDocument getByDocumentHeaderId(final String documentHeaderId) { } }; - this.pdDocument.setBudgetDocumentVersions(BudgetModularTotalDirectCostRuleTest.ONE_COMPLETE); BudgetModularTotalDirectCostRule rule = new BudgetModularTotalDirectCostRule(CoreApiServiceLocator.getKualiConfigurationService(), service, CoreFrameworkServiceLocator.getParameterService()); Set warnings = new HashSet(); @@ -487,8 +478,6 @@ public BudgetDocument getByDocumentHeaderId(final String documentHeaderId) { Assert.assertTrue("The warning was incorrect, warning: " + warnings, warnings.contains(getWarning(rule))); - - this.pdDocument.setBudgetDocumentVersions(BudgetModularTotalDirectCostRuleTest.ONE_COMPLETE); rule = new BudgetModularTotalDirectCostRule(CoreApiServiceLocator.getKualiConfigurationService(), service, CoreFrameworkServiceLocator.getParameterService()); warnings = new HashSet(); diff --git a/coeus-it/src/test/java/org/kuali/kra/s2s/rrbudget/RRBudget10V1_3GeneratorTest.java b/coeus-it/src/test/java/org/kuali/kra/s2s/rrbudget/RRBudget10V1_3GeneratorTest.java index 656773f3959..e59e22c6142 100644 --- a/coeus-it/src/test/java/org/kuali/kra/s2s/rrbudget/RRBudget10V1_3GeneratorTest.java +++ b/coeus-it/src/test/java/org/kuali/kra/s2s/rrbudget/RRBudget10V1_3GeneratorTest.java @@ -97,8 +97,8 @@ protected void prepareData(ProposalDevelopmentDocument document) proposalDevelopmentBudgetExt.setFinalVersionFlag(true); proposalDevelopmentBudgetExt.setBudgetStatus("1"); proposalDevelopmentBudgetExt.setBudgetId(1L); - proposalDevelopmentBudgetExt - .setDocumentDescription("test Document Description"); +// proposalDevelopmentBudgetExt +// .setDocumentDescription("test Document Description"); proposalDevelopmentBudgetExt.setOnOffCampusFlag("Y"); proposalDevelopmentBudgetExt.setDocumentNumber(budgetDocument .getDocumentNumber()); diff --git a/coeus-it/src/test/java/org/kuali/kra/s2s/rrbudget/RRBudgetV1_3GeneratorTest.java b/coeus-it/src/test/java/org/kuali/kra/s2s/rrbudget/RRBudgetV1_3GeneratorTest.java index 20f2fbf6311..99c5ba12287 100644 --- a/coeus-it/src/test/java/org/kuali/kra/s2s/rrbudget/RRBudgetV1_3GeneratorTest.java +++ b/coeus-it/src/test/java/org/kuali/kra/s2s/rrbudget/RRBudgetV1_3GeneratorTest.java @@ -97,8 +97,8 @@ protected void prepareData(ProposalDevelopmentDocument document) proposalDevelopmentBudgetExt.setFinalVersionFlag(true); proposalDevelopmentBudgetExt.setBudgetStatus("1"); proposalDevelopmentBudgetExt.setBudgetId(1L); - proposalDevelopmentBudgetExt - .setDocumentDescription("test Document Description"); +// proposalDevelopmentBudgetExt +// .setDocumentDescription("test Document Description"); proposalDevelopmentBudgetExt.setOnOffCampusFlag("Y"); proposalDevelopmentBudgetExt.setDocumentNumber(budgetDocument .getDocumentNumber()); diff --git a/coeus-it/src/test/java/org/kuali/kra/s2s/rrfednonfedbudget/RRFedNonFedBudget10V1_1GeneratorTest.java b/coeus-it/src/test/java/org/kuali/kra/s2s/rrfednonfedbudget/RRFedNonFedBudget10V1_1GeneratorTest.java index 72789854fd9..3541b84cf03 100644 --- a/coeus-it/src/test/java/org/kuali/kra/s2s/rrfednonfedbudget/RRFedNonFedBudget10V1_1GeneratorTest.java +++ b/coeus-it/src/test/java/org/kuali/kra/s2s/rrfednonfedbudget/RRFedNonFedBudget10V1_1GeneratorTest.java @@ -97,8 +97,8 @@ protected void prepareData(ProposalDevelopmentDocument document) proposalDevelopmentBudgetExt.setFinalVersionFlag(true); proposalDevelopmentBudgetExt.setBudgetStatus("1"); proposalDevelopmentBudgetExt.setBudgetId(1L); - proposalDevelopmentBudgetExt - .setDocumentDescription("test Document Description"); +// proposalDevelopmentBudgetExt +// .setDocumentDescription("test Document Description"); proposalDevelopmentBudgetExt.setOnOffCampusFlag("Y"); proposalDevelopmentBudgetExt.setDocumentNumber(budgetDocument .getDocumentNumber()); diff --git a/coeus-it/src/test/java/org/kuali/kra/s2s/rrfednonfedbudget/RRFedNonFedBudgetV1_1GeneratorTest.java b/coeus-it/src/test/java/org/kuali/kra/s2s/rrfednonfedbudget/RRFedNonFedBudgetV1_1GeneratorTest.java index 6c441e84d02..963156b4455 100644 --- a/coeus-it/src/test/java/org/kuali/kra/s2s/rrfednonfedbudget/RRFedNonFedBudgetV1_1GeneratorTest.java +++ b/coeus-it/src/test/java/org/kuali/kra/s2s/rrfednonfedbudget/RRFedNonFedBudgetV1_1GeneratorTest.java @@ -97,8 +97,8 @@ protected void prepareData(ProposalDevelopmentDocument document) proposalDevelopmentBudgetExt.setFinalVersionFlag(true); proposalDevelopmentBudgetExt.setBudgetStatus("1"); proposalDevelopmentBudgetExt.setBudgetId(1L); - proposalDevelopmentBudgetExt - .setDocumentDescription("test Document Description"); +// proposalDevelopmentBudgetExt +// .setDocumentDescription("test Document Description"); proposalDevelopmentBudgetExt.setOnOffCampusFlag("Y"); proposalDevelopmentBudgetExt.setDocumentNumber(budgetDocument .getDocumentNumber()); diff --git a/coeus-tool/src/main/scripts/dbcopy/build.xml b/coeus-tool/src/main/scripts/dbcopy/build.xml index 12a72e7f060..0d1dba24122 100644 --- a/coeus-tool/src/main/scripts/dbcopy/build.xml +++ b/coeus-tool/src/main/scripts/dbcopy/build.xml @@ -1,4 +1,4 @@ - + - - + + @@ -36,7 +36,7 @@ - + @@ -122,7 +122,7 @@ - + diff --git a/coeus-webapp/src/main/resources/META-INF/.gitignore b/coeus-webapp/src/main/resources/META-INF/.gitignore new file mode 100644 index 00000000000..804c68e8bd0 --- /dev/null +++ b/coeus-webapp/src/main/resources/META-INF/.gitignore @@ -0,0 +1 @@ +/kc-config-local.xml diff --git a/coeus-webapp/src/main/resources/META-INF/kc-config-build.xml b/coeus-webapp/src/main/resources/META-INF/kc-config-build.xml index 9a0b781befe..ad2720aa264 100644 --- a/coeus-webapp/src/main/resources/META-INF/kc-config-build.xml +++ b/coeus-webapp/src/main/resources/META-INF/kc-config-build.xml @@ -19,6 +19,7 @@ This config file only contains properties that are set by the maven build proces --> ${build.version} + classpath:META-INF/kc-config-local.xml ${build.rice.kr.additionalSpringFiles} ${build.rice.krad.dev.mode} ${build.rice.krad.script.cleanup}