Search in sources :

Example 6 with IWantDocument

use of edu.cornell.kfs.module.purap.document.IWantDocument in project cu-kfs by CU-CommunityApps.

the class IWantDocumentAction method createRequisition.

/**
 * Redirects the user to a URL that creates a new REQS doc with data from the current IWantDocument.
 * However, due to configuration on the associated button from the IWantDocumentForm, client-side
 * JavaScript should handle the redirect for us and in a separate window/tab, unless the client has
 * disabled JavaScript.
 */
public ActionForward createRequisition(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
    IWantDocumentForm iWantDocForm = (IWantDocumentForm) form;
    IWantDocument iWantDocument = iWantDocForm.getIWantDocument();
    // Make sure a related requisition does not already exist before creating one.
    if (StringUtils.isNotBlank(iWantDocument.getReqsDocId())) {
        GlobalVariables.getMessageMap().putError(KRADConstants.GLOBAL_ERRORS, CUPurapKeyConstants.ERROR_IWNT_REQUISITION_EXISTS);
        return mapping.findForward(RiceConstants.MAPPING_BASIC);
    }
    String url = ConfigContext.getCurrentContextConfig().getProperty(KRADConstants.APPLICATION_URL_KEY) + "/purapRequisition.do?methodToCall=createReqFromIWantDoc&docId=" + iWantDocument.getDocumentNumber();
    ActionForward actionForward = new ActionForward(url, true);
    return actionForward;
}
Also used : ActionForward(org.apache.struts.action.ActionForward) IWantDocument(edu.cornell.kfs.module.purap.document.IWantDocument) PurApFavoriteAccountLineBuilderForIWantDocument(edu.cornell.kfs.module.purap.util.PurApFavoriteAccountLineBuilderForIWantDocument)

Example 7 with IWantDocument

use of edu.cornell.kfs.module.purap.document.IWantDocument in project cu-kfs by CU-CommunityApps.

the class IWantDocumentAction method setCollegeAndDepartmentBasedOnPrimaryDepartment.

/**
 * Sets the College and Department based on the initiator primary department.
 *
 * @param documentForm
 */
private void setCollegeAndDepartmentBasedOnPrimaryDepartment(IWantDocumentForm documentForm) {
    IWantDocumentService iWantDocumentService = SpringContext.getBean(IWantDocumentService.class);
    String primaryDeptOrg = null;
    IWantDocument iWantDocument = null;
    if (documentForm != null && documentForm.getDocument() != null) {
        iWantDocument = (IWantDocument) documentForm.getDocument();
    }
    if (iWantDocument != null && StringUtils.isEmpty(iWantDocument.getCollegeLevelOrganization())) {
        Person currentUser = GlobalVariables.getUserSession().getPerson();
        Entity entityInfo = KimApiServiceLocator.getIdentityService().getEntityByPrincipalId(currentUser.getPrincipalId());
        if (ObjectUtils.isNotNull(entityInfo)) {
            if (ObjectUtils.isNotNull(entityInfo.getEmploymentInformation()) && entityInfo.getEmploymentInformation().size() > 0) {
                EntityEmployment employmentInformation = entityInfo.getEmploymentInformation().get(0);
                String primaryDepartment = employmentInformation.getPrimaryDepartmentCode();
                primaryDeptOrg = primaryDepartment.substring(primaryDepartment.lastIndexOf('-') + 1, primaryDepartment.length());
                String cLevelOrg = iWantDocumentService.getCLevelOrganizationForDLevelOrg(primaryDepartment);
                ((IWantDocument) documentForm.getDocument()).setCollegeLevelOrganization(cLevelOrg);
            }
        }
    }
    if (iWantDocument != null && StringUtils.isNotEmpty(iWantDocument.getCollegeLevelOrganization())) {
        String cLevelOrg = iWantDocument.getCollegeLevelOrganization();
        documentForm.getDeptOrgKeyLabels().clear();
        documentForm.getDeptOrgKeyLabels().add(new ConcreteKeyValue("", "Please Select"));
        List<LevelOrganization> dLevelOrgs = iWantDocumentService.getDLevelOrganizations(cLevelOrg);
        for (LevelOrganization levelOrganization : dLevelOrgs) {
            documentForm.getDeptOrgKeyLabels().add(new ConcreteKeyValue(levelOrganization.getCode(), levelOrganization.getCodeAndDescription()));
        }
        if (primaryDeptOrg != null) {
            iWantDocument.setDepartmentLevelOrganization(primaryDeptOrg);
        }
    }
}
Also used : ConcreteKeyValue(org.kuali.rice.core.api.util.ConcreteKeyValue) Entity(org.kuali.rice.kim.api.identity.entity.Entity) LevelOrganization(edu.cornell.kfs.module.purap.businessobject.LevelOrganization) EntityEmployment(org.kuali.rice.kim.api.identity.employment.EntityEmployment) Person(org.kuali.rice.kim.api.identity.Person) IWantDocumentService(edu.cornell.kfs.module.purap.document.service.IWantDocumentService) IWantDocument(edu.cornell.kfs.module.purap.document.IWantDocument) PurApFavoriteAccountLineBuilderForIWantDocument(edu.cornell.kfs.module.purap.util.PurApFavoriteAccountLineBuilderForIWantDocument)

Example 8 with IWantDocument

use of edu.cornell.kfs.module.purap.document.IWantDocument in project cu-kfs by CU-CommunityApps.

the class IWantDocumentAction method route.

/**
 * @see org.kuali.kfs.kns.web.struts.action.KualiDocumentActionBase#route(org.apache.struts.action.ActionMapping,
 * org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest,
 * javax.servlet.http.HttpServletResponse)
 */
@Override
public ActionForward route(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
    IWantDocumentForm iWantDocForm = (IWantDocumentForm) form;
    IWantDocument iWantDocument = iWantDocForm.getIWantDocument();
    IWantDocumentService iWantDocumentService = SpringContext.getBean(IWantDocumentService.class);
    boolean added = true;
    // add new item and new accounting line if not empty
    IWantItem item = iWantDocForm.getNewIWantItemLine();
    if (StringUtils.isNotBlank(item.getItemDescription()) || item.getItemUnitPrice() != null || item.getItemQuantity() != null) {
        added &= addNewItem(iWantDocForm, iWantDocument, item);
    }
    added &= addNewFavoriteAccountIfNecessary(added, iWantDocument);
    if (added) {
        IWantAccount account = iWantDocForm.getNewSourceLine();
        if (StringUtils.isNotBlank(account.getAccountNumber()) || StringUtils.isNotBlank(account.getSubAccountNumber()) || StringUtils.isNotBlank(account.getFinancialObjectCode()) || StringUtils.isNotBlank(account.getFinancialSubObjectCode()) || StringUtils.isNotBlank(account.getProjectCode()) || StringUtils.isNotBlank(account.getOrganizationReferenceId())) {
            added &= addNewAccount(iWantDocForm, iWantDocument, account);
        }
    }
    // Do not route if there were failures adding new items or accounts.
    if (!added) {
        return mapping.findForward(RiceConstants.MAPPING_BASIC);
    }
    iWantDocument.setExplanation(iWantDocument.getDocumentHeader().getExplanation());
    String step = iWantDocForm.getStep();
    String principalId = iWantDocument.getDocumentHeader().getWorkflowDocument().getInitiatorPrincipalId();
    boolean setDefaultCollegeDept = iWantDocument.isUseCollegeAndDepartmentAsDefault();
    if (setDefaultCollegeDept) {
        // set these values in user Options table
        String college = iWantDocument.getCollegeLevelOrganization();
        String department = iWantDocument.getDepartmentLevelOrganization();
        saveUserOption(principalId, CUPurapConstants.USER_OPTIONS_DEFAULT_COLLEGE, college);
        saveUserOption(principalId, CUPurapConstants.USER_OPTIONS_DEFAULT_DEPARTMENT, department);
    }
    if (iWantDocument.isSetDeliverToInfoAsDefault()) {
        if (StringUtils.isNotBlank(iWantDocument.getDeliverToNetID())) {
            saveUserOption(principalId, CUPurapConstants.USER_OPTIONS_DEFAULT_DELIVER_TO_NET_ID, iWantDocument.getDeliverToNetID());
        }
        if (StringUtils.isNotBlank(iWantDocument.getDeliverToName())) {
            saveUserOption(principalId, CUPurapConstants.USER_OPTIONS_DEFAULT_DELIVER_TO_NAME, iWantDocument.getDeliverToName());
        }
        if (StringUtils.isNotBlank(iWantDocument.getDeliverToEmailAddress())) {
            saveUserOption(principalId, CUPurapConstants.USER_OPTIONS_DEFAULT_DELIVER_TO_EMAIL_ADDRESS, iWantDocument.getDeliverToEmailAddress());
        }
        if (StringUtils.isNotBlank(iWantDocument.getDeliverToPhoneNumber())) {
            saveUserOption(principalId, CUPurapConstants.USER_OPTIONS_DEFAULT_DELIVER_TO_PHONE_NUMBER, iWantDocument.getDeliverToPhoneNumber());
        }
        if (StringUtils.isNotBlank(iWantDocument.getDeliverToAddress())) {
            saveUserOption(principalId, CUPurapConstants.USER_OPTIONS_DEFAULT_DELIVER_TO_ADDRESS, iWantDocument.getDeliverToAddress());
        }
    }
    iWantDocumentService.setIWantDocumentDescription(iWantDocument);
    // insert adhoc route person first and the route
    if (StringUtils.isNotBlank(iWantDocForm.getNewAdHocRoutePerson().getId())) {
        iWantDocument.setCurrentRouteToNetId(iWantDocForm.getNewAdHocRoutePerson().getId());
        insertAdHocRoutePerson(mapping, iWantDocForm, request, response);
    }
    ActionForward actionForward = super.route(mapping, form, request, response);
    if (CUPurapConstants.IWantDocumentSteps.ROUTING_STEP.equalsIgnoreCase(step)) {
        iWantDocForm.setStep(CUPurapConstants.IWantDocumentSteps.REGULAR);
        iWantDocument.setStep(CUPurapConstants.IWantDocumentSteps.REGULAR);
        return mapping.findForward("finish");
    }
    return actionForward;
}
Also used : IWantAccount(edu.cornell.kfs.module.purap.businessobject.IWantAccount) IWantItem(edu.cornell.kfs.module.purap.businessobject.IWantItem) ActionForward(org.apache.struts.action.ActionForward) IWantDocument(edu.cornell.kfs.module.purap.document.IWantDocument) PurApFavoriteAccountLineBuilderForIWantDocument(edu.cornell.kfs.module.purap.util.PurApFavoriteAccountLineBuilderForIWantDocument) IWantDocumentService(edu.cornell.kfs.module.purap.document.service.IWantDocumentService)

Example 9 with IWantDocument

use of edu.cornell.kfs.module.purap.document.IWantDocument in project cu-kfs by CU-CommunityApps.

the class IWantDocumentServiceImplTest method testSetUpRequisitionDetailsFromIWantDoc.

public void testSetUpRequisitionDetailsFromIWantDoc() throws Exception {
    IWantDocument iWantDocument = IWantDocumentFixture.I_WANT_DOC.createIWantDocument();
    RequisitionDocument requisitionDocumentBase = (RequisitionDocument) SpringContext.getBean(DocumentService.class).getNewDocument(RequisitionDocument.class);
    requisitionDocumentBase.initiateDocument();
    RequisitionForm requisitionForm = new RequisitionForm();
    iWantDocumentService.setUpRequisitionDetailsFromIWantDoc(iWantDocument, requisitionDocumentBase, requisitionForm);
    assertEquals(CUPurapConstants.RequisitionSources.IWNT, requisitionDocumentBase.getRequisitionSourceCode());
    assertEquals(iWantDocument.getVendorHeaderGeneratedIdentifier(), requisitionDocumentBase.getVendorHeaderGeneratedIdentifier());
}
Also used : RequisitionDocument(org.kuali.kfs.module.purap.document.RequisitionDocument) RequisitionForm(org.kuali.kfs.module.purap.document.web.struts.RequisitionForm) IWantDocument(edu.cornell.kfs.module.purap.document.IWantDocument)

Example 10 with IWantDocument

use of edu.cornell.kfs.module.purap.document.IWantDocument in project cu-kfs by CU-CommunityApps.

the class IWantDocumentAuthorizer method addPermissionDetails.

@Override
protected void addPermissionDetails(Object dataObject, Map<String, String> attributes) {
    super.addPermissionDetails(dataObject, attributes);
    IWantDocument iWantDocument = (IWantDocument) dataObject;
    attributes.put(KfsKimAttributes.CHART_OF_ACCOUNTS_CODE, iWantDocument.getRoutingChart());
    attributes.put(KfsKimAttributes.ORGANIZATION_CODE, iWantDocument.getRoutingOrganization());
}
Also used : IWantDocument(edu.cornell.kfs.module.purap.document.IWantDocument)

Aggregations

IWantDocument (edu.cornell.kfs.module.purap.document.IWantDocument)27 PurApFavoriteAccountLineBuilderForIWantDocument (edu.cornell.kfs.module.purap.util.PurApFavoriteAccountLineBuilderForIWantDocument)18 IWantDocumentService (edu.cornell.kfs.module.purap.document.service.IWantDocumentService)8 ActionForward (org.apache.struts.action.ActionForward)7 IWantAccount (edu.cornell.kfs.module.purap.businessobject.IWantAccount)4 IWantItem (edu.cornell.kfs.module.purap.businessobject.IWantItem)4 HashMap (java.util.HashMap)3 RouteDocumentEvent (org.kuali.kfs.krad.rules.rule.event.RouteDocumentEvent)3 KualiRuleService (org.kuali.kfs.krad.service.KualiRuleService)3 WorkflowDocument (org.kuali.rice.kew.api.WorkflowDocument)3 Person (org.kuali.rice.kim.api.identity.Person)3 CuDisbursementVoucherDocument (edu.cornell.kfs.fp.document.CuDisbursementVoucherDocument)2 LevelOrganization (edu.cornell.kfs.module.purap.businessobject.LevelOrganization)2 KualiDocumentFormBase (org.kuali.kfs.kns.web.struts.form.KualiDocumentFormBase)2 RequisitionDocument (org.kuali.kfs.module.purap.document.RequisitionDocument)2 PurapService (org.kuali.kfs.module.purap.document.service.PurapService)2 RequisitionForm (org.kuali.kfs.module.purap.document.web.struts.RequisitionForm)2 FinancialSystemWorkflowHelperService (org.kuali.kfs.sys.service.FinancialSystemWorkflowHelperService)2 VendorPhoneNumber (org.kuali.kfs.vnd.businessobject.VendorPhoneNumber)2 ConcreteKeyValue (org.kuali.rice.core.api.util.ConcreteKeyValue)2