public ActionForward addSubAward( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { BudgetForm budgetForm = (BudgetForm) form; AwardBudgetDocument awardBudgetDocument = budgetForm.getBudgetDocument(); BudgetSubAwards newBudgetSubAward = budgetForm.getNewSubAward(); newBudgetSubAward.setBudgetId(awardBudgetDocument.getBudget().getBudgetId()); newBudgetSubAward.setSubAwardNumber(generateSubAwardNumber(awardBudgetDocument)); newBudgetSubAward.setBudgetVersionNumber( awardBudgetDocument.getBudget().getBudgetVersionNumber()); newBudgetSubAward.setSubAwardStatusCode(1); newBudgetSubAward.getBudgetSubAwardPeriodDetails().clear(); for (BudgetPeriod period : awardBudgetDocument.getBudget().getBudgetPeriods()) { newBudgetSubAward .getBudgetSubAwardPeriodDetails() .add(new BudgetSubAwardPeriodDetail(newBudgetSubAward, period)); } boolean success = true; if (newBudgetSubAward.getNewSubAwardFile() != null) { String fileName = newBudgetSubAward.getNewSubAwardFile().getOriginalFilename(); byte[] fileData = newBudgetSubAward.getNewSubAwardFile().getBytes(); success = updateBudgetAttachment( budgetForm.getBudget(), newBudgetSubAward, fileName, fileData, "newSubAward"); } String contentType = newBudgetSubAward.getNewSubAwardFile().getContentType(); if (success && contentType.equalsIgnoreCase(Constants.PDF_REPORT_CONTENT_TYPE)) { budgetForm.setNewSubAward(new BudgetSubAwards()); awardBudgetDocument.getBudget().getBudgetSubAwards().add(newBudgetSubAward); } return mapping.findForward(Constants.MAPPING_BASIC); }
protected boolean updateBudgetAttachment( Budget budget, BudgetSubAwards subAward, String fileName, byte[] fileData, String errorPath) throws Exception { GlobalVariables.getMessageMap().addToErrorPath(errorPath); subAward.setSubAwardXmlFileData(null); subAward.setFormName(null); subAward.setNamespace(null); if (subAward .getNewSubAwardFile() .getContentType() .equalsIgnoreCase(Constants.PDF_REPORT_CONTENT_TYPE)) { getPropDevBudgetSubAwardService() .populateBudgetSubAwardFiles(budget, subAward, fileName, fileData); } boolean success = updateSubAwardBudgetDetails(budget, subAward); if (success) { subAward .getBudgetSubAwardFiles() .get(0) .setSubAwardXmlFileData( KcServiceLocator.getService(KcAttachmentService.class) .checkAndReplaceSpecialCharacters( subAward .getBudgetSubAwardFiles() .get(0) .getSubAwardXmlFileData() .toString())); subAward.setSubAwardXmlFileData( subAward.getBudgetSubAwardFiles().get(0).getSubAwardXmlFileData()); } GlobalVariables.getMessageMap().removeFromErrorPath(errorPath); return success; }
protected boolean updateSubAwardBudgetDetails(Budget budget, BudgetSubAwards subAward) throws Exception { List<String[]> errorMessages = new ArrayList<String[]>(); boolean success = getKcBusinessRulesEngine().applyRules(new BudgetSubAwardsEvent(subAward, budget, "")); if (subAward.getNewSubAwardFile().getBytes().length == 0) { success = false; } if (success) { getPropDevBudgetSubAwardService() .updateSubAwardBudgetDetails(budget, subAward, errorMessages); } if (!errorMessages.isEmpty()) { for (String[] message : errorMessages) { String[] messageParameters = null; if (message.length > 1) { messageParameters = Arrays.copyOfRange(message, 1, message.length); } if (success) { GlobalVariables.getMessageMap() .putWarning(Constants.SUBAWARD_FILE_FIELD_NAME, message[0], messageParameters); } else { GlobalVariables.getMessageMap() .putError(Constants.SUBAWARD_FILE_FIELD_NAME, message[0], messageParameters); } } } if (success && errorMessages.isEmpty()) { GlobalVariables.getMessageMap() .putInfo(Constants.SUBAWARD_FILE_FIELD_NAME, Constants.SUBAWARD_FILE_DETAILS_UPDATED); } return success; }
public ActionForward updateBudgetAttachment( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { BudgetForm budgetForm = (BudgetForm) form; AwardBudgetDocument awardBudgetDocument = budgetForm.getBudgetDocument(); BudgetSubAwards subAward = getSelectedBudgetSubAward(form, request); byte[] subAwardData = subAward.getNewSubAwardFile().getBytes(); String subAwardFileName = subAward.getNewSubAwardFile().getOriginalFilename(); updateBudgetAttachment( budgetForm.getBudget(), subAward, subAwardFileName, subAwardData, SUBAWARD_BUDGET_EDIT_LINE_STARTER + getSelectedLine(request) + SUBAWARD_BUDGET_EDIT_LINE_ENDER); Collections.sort(awardBudgetDocument.getBudget().getBudgetSubAwards()); return mapping.findForward(Constants.MAPPING_BASIC); }