use of org.kuali.kfs.kim.api.identity.Person in project cu-kfs by CU-CommunityApps.
the class CuFormatAction method prepare.
@Override
public ActionForward prepare(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
CuFormatForm formatForm = (CuFormatForm) form;
DateTimeService dateTimeService = SpringContext.getBean(DateTimeService.class);
if (formatForm.getCampus() == null) {
return mapping.findForward(PdpConstants.MAPPING_SELECTION);
}
// Figure out which ones they have selected
List<CustomerProfile> selectedCustomers = new ArrayList<>();
for (CustomerProfile customer : formatForm.getCustomers()) {
if (customer.isSelectedForFormat()) {
selectedCustomers.add(customer);
}
}
Date paymentDate = dateTimeService.convertToSqlDate(formatForm.getPaymentDate());
Person kualiUser = GlobalVariables.getUserSession().getPerson();
FormatProcessSummary formatProcessSummary = ((CuFormatService) formatService).startFormatProcess(kualiUser, formatForm.getCampus(), selectedCustomers, paymentDate, formatForm.getPaymentTypes(), formatForm.getPaymentDistribution());
if (formatProcessSummary.getProcessSummaryList().size() == 0) {
KNSGlobalVariables.getMessageList().add(PdpKeyConstants.Format.ERROR_PDP_NO_MATCHING_PAYMENT_FOR_FORMAT);
return mapping.findForward(PdpConstants.MAPPING_SELECTION);
}
formatForm.setFormatProcessSummary(formatProcessSummary);
return mapping.findForward(PdpConstants.MAPPING_CONTINUE);
}
use of org.kuali.kfs.kim.api.identity.Person in project cu-kfs by CU-CommunityApps.
the class CuAutoDisapproveDocumentsServiceImpl method autoDisapprovalYearEndDocument.
protected void autoDisapprovalYearEndDocument(Document document, String annotationForAutoDisapprovalDocument) throws Exception {
Person systemUser = getPersonService().getPersonByPrincipalName(KFSConstants.SYSTEM_USER);
Note approveNote = getNoteService().createNote(new Note(), document.getDocumentHeader(), systemUser.getPrincipalId());
approveNote.setNoteText(annotationForAutoDisapprovalDocument);
approveNote.setAuthorUniversalIdentifier(systemUser.getPrincipalId());
approveNote.setNotePostedTimestampToCurrent();
getNoteService().save(approveNote);
document.addNote(approveNote);
getDocumentService().prepareWorkflowDocument(document);
getDocumentService().superUserDisapproveDocumentWithoutSaving(document, "Disapproval of Outstanding Documents - Year End Cancellation Process");
UserSessionUtils.addWorkflowDocument(GlobalVariables.getUserSession(), document.getDocumentHeader().getWorkflowDocument());
}
use of org.kuali.kfs.kim.api.identity.Person in project cu-kfs by CU-CommunityApps.
the class CUFinancialSystemDocumentServiceImpl method setupFYIs.
protected void setupFYIs(Document doc, Set<Person> priorApprovers, String initiatorUserId) {
List<AdHocRoutePerson> adHocRoutePersons = doc.getAdHocRoutePersons();
final FinancialSystemTransactionalDocumentAuthorizerBase documentAuthorizer = getDocumentAuthorizer(doc);
// Add FYI for each approver who has already approved the document
for (Person approver : priorApprovers) {
if (documentAuthorizer.canReceiveAdHoc(doc, approver, KewApiConstants.ACTION_REQUEST_FYI_REQ)) {
String approverPersonUserId = approver.getPrincipalName();
adHocRoutePersons.add(buildFyiRecipient(approverPersonUserId));
}
}
// Add FYI for initiator
adHocRoutePersons.add(buildFyiRecipient(initiatorUserId));
}
use of org.kuali.kfs.kim.api.identity.Person in project cu-kfs by CU-CommunityApps.
the class CuFinancialMaintenanceDocumentAction method insertBONote.
/**
* Overridden to include a Rice 2.5.x fix for persisting BO note additions,
* and to delegate the fix's boolean logic to some new shouldSaveBoNoteAfterUpdate()
* and isTargetReadyForNotes() methods so that it can be further limited based on BO class and readiness.
*
* Some other cleanup has also been done to improve line lengths
* and remove certain comments, but other than that and the changes stated above,
* this method is the same as the one from KualiDocumentActionBase.
*
* @see org.kuali.kfs.kns.web.struts.action.KualiDocumentActionBase#insertBONote(
* org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm,
* javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
@Override
public ActionForward insertBONote(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
KualiDocumentFormBase kualiDocumentFormBase = (KualiDocumentFormBase) form;
Document document = kualiDocumentFormBase.getDocument();
Note newNote = kualiDocumentFormBase.getNewNote();
newNote.setNotePostedTimestampToCurrent();
String attachmentTypeCode = null;
FormFile attachmentFile = kualiDocumentFormBase.getAttachmentFile();
if (attachmentFile == null) {
GlobalVariables.getMessageMap().putError(String.format("%s.%s", KRADConstants.NEW_DOCUMENT_NOTE_PROPERTY_NAME, KRADConstants.NOTE_ATTACHMENT_FILE_PROPERTY_NAME), KFSKeyConstants.ERROR_UPLOADFILE_NULL);
}
if (newNote.getAttachment() != null) {
attachmentTypeCode = newNote.getAttachment().getAttachmentTypeCode();
}
// check authorization for adding notes
DocumentAuthorizer documentAuthorizer = getDocumentHelperService().getDocumentAuthorizer(document);
if (!documentAuthorizer.canAddNoteAttachment(document, attachmentTypeCode, GlobalVariables.getUserSession().getPerson())) {
throw buildAuthorizationException("annotate", document);
}
// create the attachment first, so that failure-to-create-attachment can be treated as a validation failure
Attachment attachment = null;
if (attachmentFile != null && !StringUtils.isBlank(attachmentFile.getFileName())) {
if (attachmentFile.getFileSize() == 0) {
GlobalVariables.getMessageMap().putError(String.format("%s.%s", KRADConstants.NEW_DOCUMENT_NOTE_PROPERTY_NAME, KRADConstants.NOTE_ATTACHMENT_FILE_PROPERTY_NAME), CUKFSKeyConstants.ERROR_UPLOADFILE_EMPTY, attachmentFile.getFileName());
} else {
String attachmentType = null;
Attachment newAttachment = kualiDocumentFormBase.getNewNote().getAttachment();
if (newAttachment != null) {
attachmentType = newAttachment.getAttachmentTypeCode();
}
attachment = getAttachmentService().createAttachment(document.getNoteTarget(), attachmentFile.getFileName(), attachmentFile.getContentType(), attachmentFile.getFileSize(), attachmentFile.getInputStream(), attachmentType);
}
}
DocumentEntry entry = getDocumentDictionaryService().getDocumentEntryByClass(document.getClass());
if (entry.getDisplayTopicFieldInNotes()) {
String topicText = kualiDocumentFormBase.getNewNote().getNoteTopicText();
if (StringUtils.isBlank(topicText)) {
GlobalVariables.getMessageMap().putError(String.format("%s.%s", KRADConstants.NEW_DOCUMENT_NOTE_PROPERTY_NAME, KRADConstants.NOTE_TOPIC_TEXT_PROPERTY_NAME), KFSKeyConstants.ERROR_REQUIRED, "Note Topic (Note Topic)");
}
}
// create a new note from the data passed in
Person kualiUser = GlobalVariables.getUserSession().getPerson();
if (kualiUser == null) {
throw new IllegalStateException("Current UserSession has a null Person.");
}
Note tmpNote = getNoteService().createNote(newNote, document.getNoteTarget(), kualiUser.getPrincipalId());
ActionForward forward = checkAndWarnAboutSensitiveData(mapping, form, request, response, KRADPropertyConstants.NOTE, tmpNote.getNoteText(), "insertBONote", "");
if (forward != null) {
return forward;
}
// validate the note
boolean rulePassed = getKualiRuleService().applyRules(new AddNoteEvent(document, tmpNote));
// if the rule evaluation passed, let's add the note
if (rulePassed) {
tmpNote.refresh();
DocumentHeader documentHeader = document.getDocumentHeader();
// associate note with object now
document.addNote(tmpNote);
// maintenance document BO note should only be saved into table when document is in the PROCESSED workflow status
if (!documentHeader.getWorkflowDocument().isInitiated() && StringUtils.isNotEmpty(document.getNoteTarget().getObjectId()) && !(document instanceof MaintenanceDocument && NoteType.BUSINESS_OBJECT.getCode().equals(tmpNote.getNoteTypeCode()))) {
getNoteService().save(tmpNote);
}
// autopopulate the id since the note hasn't been persisted yet)
if (attachment != null) {
tmpNote.addAttachment(attachment);
// without the PK on the attachment I think it is safer then trying to get the sequence manually
if (!documentHeader.getWorkflowDocument().isInitiated() && StringUtils.isNotEmpty(document.getNoteTarget().getObjectId()) && !(document instanceof MaintenanceDocument && NoteType.BUSINESS_OBJECT.getCode().equals(tmpNote.getNoteTypeCode()))) {
getNoteService().save(tmpNote);
}
}
// Added some logic which saves the document and/or notes list after a BO note is added to the document
if (shouldSaveBoNoteAfterUpdate(document, tmpNote)) {
if (isTargetReadyForNotes(document)) {
getNoteService().save(tmpNote);
} else {
getDocumentService().saveDocument(document);
}
}
// reset the new note back to an empty one
kualiDocumentFormBase.setNewNote(new Note());
}
return mapping.findForward(KFSConstants.MAPPING_BASIC);
}
use of org.kuali.kfs.kim.api.identity.Person in project cu-kfs by CU-CommunityApps.
the class KualiAccountLookupableHelperServiceImpl method getCustomActionUrls.
/**
* If the account is not closed or the user is an Administrator the "edit" link is added The "copy" link is added
* for Accounts.
*
* @return links to edit and copy maintenance action for the current maintenance record.
*/
@Override
public List<HtmlData> getCustomActionUrls(BusinessObject businessObject, List pkNames) {
Account theAccount = (Account) businessObject;
List<HtmlData> anchorHtmlDataList = new ArrayList<>();
Person user = GlobalVariables.getUserSession().getPerson();
AnchorHtmlData urlDataCopy = getUrlData(businessObject, KRADConstants.MAINTENANCE_COPY_METHOD_TO_CALL, pkNames);
if (theAccount.isActive()) {
anchorHtmlDataList.add(getUrlData(businessObject, KRADConstants.MAINTENANCE_EDIT_METHOD_TO_CALL, pkNames));
} else {
String principalId = user.getPrincipalId();
String namespaceCode = KFSConstants.PermissionNames.EDIT_INACTIVE_ACCOUNT.namespace;
String permissionName = KFSConstants.PermissionNames.EDIT_INACTIVE_ACCOUNT.name;
boolean isAuthorized = permissionService.hasPermission(principalId, namespaceCode, permissionName);
if (isAuthorized) {
anchorHtmlDataList.add(getUrlData(businessObject, KRADConstants.MAINTENANCE_EDIT_METHOD_TO_CALL, pkNames));
} else {
urlDataCopy.setPrependDisplayText(" ");
}
}
anchorHtmlDataList.add(urlDataCopy);
return anchorHtmlDataList;
}
Aggregations