Search in sources :

Example 1 with ChartOrgHolder

use of org.kuali.kfs.sys.businessobject.ChartOrgHolder in project cu-kfs by CU-CommunityApps.

the class CuDisbursementVoucherDocument method initiateDocument.

public void initiateDocument() {
    PhoneNumberService phoneNumberService = SpringContext.getBean(PhoneNumberService.class);
    Person currentUser = GlobalVariables.getUserSession().getPerson();
    setDisbVchrContactPersonName(currentUser.getName());
    setDisbVchrContactEmailId(currentUser.getEmailAddressUnmasked());
    String phoneNumber = currentUser.getPhoneNumber();
    if (StringUtils.isNotBlank(phoneNumber) && !StringUtils.equalsIgnoreCase("null", phoneNumber)) {
        if (!phoneNumberService.isDefaultFormatPhoneNumber(currentUser.getPhoneNumber())) {
            setDisbVchrContactPhoneNumber(phoneNumberService.formatNumberIfPossible(currentUser.getPhoneNumber()));
        } else if (StringUtils.equalsIgnoreCase(phoneNumber, "null")) {
        // do nothing... we don't want phone number set to invalid value
        } else {
            setDisbVchrContactPhoneNumber(phoneNumber);
        }
    }
    if (!phoneNumberService.isDefaultFormatPhoneNumber(currentUser.getPhoneNumber())) {
        setDisbVchrContactPhoneNumber(phoneNumberService.formatNumberIfPossible(currentUser.getPhoneNumber()));
    }
    setDisbVchrContactEmailId(currentUser.getEmailAddress());
    ChartOrgHolder chartOrg = SpringContext.getBean(org.kuali.kfs.sys.service.FinancialSystemUserService.class).getPrimaryOrganization(currentUser, KFSConstants.ParameterNamespaces.FINANCIAL);
    // the campus code via the business object service.
    if (chartOrg != null && chartOrg.getOrganization() != null) {
        setCampusCode(chartOrg.getOrganization().getOrganizationPhysicalCampusCode());
    } else // A valid campus code was not found; therefore, use the default affiliated
    // campus code.
    {
        String affiliatedCampusCode = currentUser.getCampusCode();
        setCampusCode(affiliatedCampusCode);
    }
    // due date
    Calendar calendar = getDateTimeService().getCurrentCalendar();
    calendar.add(Calendar.DAY_OF_MONTH, 1);
    setDisbursementVoucherDueDate(new Date(calendar.getTimeInMillis()));
    // default doc location
    if (StringUtils.isBlank(getDisbursementVoucherDocumentationLocationCode())) {
        setDisbursementVoucherDocumentationLocationCode(getParameterService().getParameterValueAsString(DisbursementVoucherDocument.class, DisbursementVoucherConstants.DEFAULT_DOC_LOCATION_PARM_NM));
    }
    // default bank code
    Bank defaultBank = SpringContext.getBean(BankService.class).getDefaultBankByDocType(this.getClass());
    if (defaultBank != null) {
        this.disbVchrBankCode = defaultBank.getBankCode();
        this.bank = defaultBank;
    }
}
Also used : PhoneNumberService(org.kuali.kfs.vnd.service.PhoneNumberService) BankService(org.kuali.kfs.sys.service.BankService) Bank(org.kuali.kfs.sys.businessobject.Bank) ChartOrgHolder(org.kuali.kfs.sys.businessobject.ChartOrgHolder) Calendar(java.util.Calendar) Person(org.kuali.rice.kim.api.identity.Person) Date(java.sql.Date) DisbursementVoucherDocument(org.kuali.kfs.fp.document.DisbursementVoucherDocument)

Example 2 with ChartOrgHolder

use of org.kuali.kfs.sys.businessobject.ChartOrgHolder in project cu-kfs by CU-CommunityApps.

the class DisbursementVoucherInitiatorPrimaryDepartmentValidation method validate.

/**
 * Validates that the initiator has a primary department id set up.
 *
 * @see org.kuali.kfs.sys.document.validation.Validation#validate(org.kuali.kfs.sys.document.validation.event.AttributedDocumentEvent)
 */
public boolean validate(AttributedDocumentEvent event) {
    boolean isValid = true;
    DisbursementVoucherDocument dvDocument = (DisbursementVoucherDocument) accountingDocumentForValidation;
    String initiatorPrincipalId = dvDocument.getDocumentHeader().getWorkflowDocument().getInitiatorPrincipalId();
    ChartOrgHolder chartOrg = SpringContext.getBean(org.kuali.kfs.sys.service.FinancialSystemUserService.class).getPrimaryOrganization(initiatorPrincipalId, KFSConstants.ParameterNamespaces.FINANCIAL);
    if (ObjectUtils.isNull(chartOrg) || ObjectUtils.isNull(chartOrg.getOrganization())) {
        GlobalVariables.getMessageMap().putError(KFSConstants.GLOBAL_ERRORS, CUKFSKeyConstants.ERROR_DV_INITIATOR_INVALID_PRIMARY_DEPARTMENT);
        isValid = false;
    }
    return isValid;
}
Also used : ChartOrgHolder(org.kuali.kfs.sys.businessobject.ChartOrgHolder) DisbursementVoucherDocument(org.kuali.kfs.fp.document.DisbursementVoucherDocument)

Example 3 with ChartOrgHolder

use of org.kuali.kfs.sys.businessobject.ChartOrgHolder in project cu-kfs by CU-CommunityApps.

the class CuB2BShoppingServiceImpl method createRequisitionsFromCxml.

@Override
public List createRequisitionsFromCxml(B2BShoppingCart message, Person user) throws WorkflowException {
    LOG.debug("createRequisitionsFromCxml() started");
    // for returning requisitions
    ArrayList requisitions = new ArrayList();
    // get items from the cart
    List items = message.getItems();
    // get vendor(s) for the items
    List vendors = getAllVendors(items);
    // create requisition(s) (one per vendor)
    for (Iterator iter = vendors.iterator(); iter.hasNext(); ) {
        VendorDetail vendor = (VendorDetail) iter.next();
        // create requisition
        RequisitionDocument req = (RequisitionDocument) documentService.getNewDocument(PurapConstants.REQUISITION_DOCUMENT_TYPE);
        String description = ((B2BShoppingCartItem) items.get(0)).getExtrinsic("CartName");
        String businessPurpose = ((CuB2BShoppingCart) message).getBusinessPurpose();
        req.getDocumentHeader().setDocumentDescription(description);
        req.getDocumentHeader().setExplanation(businessPurpose);
        req.setupAccountDistributionMethod();
        // set b2b contract for vendor
        VendorContract contract = vendorService.getVendorB2BContract(vendor, user.getCampusCode());
        if (ObjectUtils.isNotNull(contract)) {
            req.setVendorContractGeneratedIdentifier(contract.getVendorContractGeneratedIdentifier());
            if (ObjectUtils.isNotNull(contract.getPurchaseOrderCostSourceCode())) {
                // if cost source is set on contract, use it
                req.setPurchaseOrderCostSourceCode(contract.getPurchaseOrderCostSourceCode());
            } else {
                // if cost source is null on the contract, we set it by default to "Estimate"
                req.setPurchaseOrderCostSourceCode(PurapConstants.POCostSources.ESTIMATE);
            }
        } else {
            LOG.error("createRequisitionsFromCxml() Contract is missing for vendor " + vendor.getVendorName() + " (" + vendor.getVendorNumber() + ")");
            throw new B2BShoppingException(PurapConstants.B2B_VENDOR_CONTRACT_NOT_FOUND_ERROR_MESSAGE);
        }
        // get items for this vendor
        List itemsForVendor = getAllVendorItems(items, vendor);
        // KFSPTS-985
        checkToPopulateFavoriteAccount(itemsForVendor, user);
        // default data from user
        req.setDeliveryCampusCode(user.getCampusCode());
        req.setDeliveryToName(user.getName());
        req.setDeliveryToEmailAddress(user.getEmailAddressUnmasked());
        req.setDeliveryToPhoneNumber(SpringContext.getBean(PhoneNumberService.class).formatNumberIfPossible(user.getPhoneNumber()));
        DefaultPrincipalAddress defaultPrincipalAddress = new DefaultPrincipalAddress(user.getPrincipalId());
        Map addressKeys = SpringContext.getBean(PersistenceService.class).getPrimaryKeyFieldValues(defaultPrincipalAddress);
        defaultPrincipalAddress = SpringContext.getBean(BusinessObjectService.class).findByPrimaryKey(DefaultPrincipalAddress.class, addressKeys);
        if (ObjectUtils.isNotNull(defaultPrincipalAddress) && ObjectUtils.isNotNull(defaultPrincipalAddress.getBuilding())) {
            if (defaultPrincipalAddress.getBuilding().isActive()) {
                req.setDeliveryCampusCode(defaultPrincipalAddress.getCampusCode());
                req.templateBuildingToDeliveryAddress(defaultPrincipalAddress.getBuilding());
                req.setDeliveryBuildingRoomNumber(defaultPrincipalAddress.getBuildingRoomNumber());
            } else {
                // since building is now inactive, delete default building record
                SpringContext.getBean(BusinessObjectService.class).delete(defaultPrincipalAddress);
            }
        }
        ChartOrgHolder purapChartOrg = SpringContext.getBean(FinancialSystemUserService.class).getPrimaryOrganization(user, PurapConstants.PURAP_NAMESPACE);
        if (ObjectUtils.isNotNull(purapChartOrg)) {
            req.setChartOfAccountsCode(purapChartOrg.getChartOfAccountsCode());
            req.setOrganizationCode(purapChartOrg.getOrganizationCode());
        }
        req.setRequestorPersonName(user.getName());
        req.setRequestorPersonEmailAddress(user.getEmailAddress());
        req.setRequestorPersonPhoneNumber(phoneNumberService.formatNumberIfPossible(user.getPhoneNumber()));
        req.setUseTaxIndicator(purchasingService.getDefaultUseTaxIndicatorValue(req));
        // set defaults that need to be set
        req.setVendorHeaderGeneratedIdentifier(vendor.getVendorHeaderGeneratedIdentifier());
        req.setVendorDetailAssignedIdentifier(vendor.getVendorDetailAssignedIdentifier());
        req.setVendorName(vendor.getVendorName());
        req.setVendorRestrictedIndicator(vendor.getVendorRestrictedIndicator());
        req.setItems(itemsForVendor);
        req.setDocumentFundingSourceCode(parameterService.getParameterValueAsString(RequisitionDocument.class, PurapParameterConstants.DEFAULT_FUNDING_SOURCE));
        req.setRequisitionSourceCode(PurapConstants.RequisitionSources.B2B);
        req.updateAndSaveAppDocStatus(PurapConstants.RequisitionStatuses.APPDOC_IN_PROCESS);
        // KFSPTS-1446 : Needed to move the setting of method of PO transmission to after the templateVendorAddress call because that method will set the method of PO transmission to the value on the vendor address.
        // req.setPurchaseOrderTransmissionMethodCode(PurapConstants.POTransmissionMethods.ELECTRONIC);
        req.setOrganizationAutomaticPurchaseOrderLimit(purapService.getApoLimit(req.getVendorContractGeneratedIdentifier(), req.getChartOfAccountsCode(), req.getOrganizationCode()));
        // retrieve from an item (sent in cxml at item level, but stored in db at REQ level)
        req.setExternalOrganizationB2bSupplierIdentifier(getSupplierIdFromFirstItem(itemsForVendor));
        // retrieve default PO address and set address
        VendorAddress vendorAddress = vendorService.getVendorDefaultAddress(vendor.getVendorHeaderGeneratedIdentifier(), vendor.getVendorDetailAssignedIdentifier(), VendorConstants.AddressTypes.PURCHASE_ORDER, user.getCampusCode());
        if (ObjectUtils.isNotNull(vendorAddress)) {
            req.templateVendorAddress(vendorAddress);
        }
        // KFSPTS-1446: Moved the setting of this attribute here from its original location to maintain the value of ELECTRONIC and not lose it to the templateVendorAddress value
        req.setPurchaseOrderTransmissionMethodCode(PurapConstants.POTransmissionMethods.ELECTRONIC);
        // retrieve billing address based on delivery campus and populate REQ with retrieved billing address
        BillingAddress billingAddress = new BillingAddress();
        billingAddress.setBillingCampusCode(req.getDeliveryCampusCode());
        Map keys = persistenceService.getPrimaryKeyFieldValues(billingAddress);
        billingAddress = businessObjectService.findByPrimaryKey(BillingAddress.class, keys);
        req.templateBillingAddress(billingAddress);
        // populate receiving address with the default one for the chart/org
        req.loadReceivingAddress();
        req.fixItemReferences();
        // save requisition to database
        purapService.saveDocumentNoValidation(req);
        // add requisition to List
        requisitions.add(req);
    }
    return requisitions;
}
Also used : DefaultPrincipalAddress(org.kuali.kfs.module.purap.businessobject.DefaultPrincipalAddress) VendorContract(org.kuali.kfs.vnd.businessobject.VendorContract) ArrayList(java.util.ArrayList) B2BShoppingException(org.kuali.kfs.module.purap.exception.B2BShoppingException) CuB2BShoppingCart(edu.cornell.kfs.module.purap.util.cxml.CuB2BShoppingCart) BusinessObjectService(org.kuali.kfs.krad.service.BusinessObjectService) VendorDetail(org.kuali.kfs.vnd.businessobject.VendorDetail) RequisitionDocument(org.kuali.kfs.module.purap.document.RequisitionDocument) PersistenceService(org.kuali.kfs.krad.service.PersistenceService) BillingAddress(org.kuali.kfs.module.purap.businessobject.BillingAddress) ChartOrgHolder(org.kuali.kfs.sys.businessobject.ChartOrgHolder) B2BShoppingCartItem(org.kuali.kfs.module.purap.businessobject.B2BShoppingCartItem) FinancialSystemUserService(org.kuali.kfs.sys.service.FinancialSystemUserService) Iterator(java.util.Iterator) ArrayList(java.util.ArrayList) List(java.util.List) Map(java.util.Map) VendorAddress(org.kuali.kfs.vnd.businessobject.VendorAddress)

Example 4 with ChartOrgHolder

use of org.kuali.kfs.sys.businessobject.ChartOrgHolder in project cu-kfs by CU-CommunityApps.

the class CuRequisitionDocument method toCopyFromGateway.

/**
 * toCopyFromGateway
 */
public void toCopyFromGateway() throws WorkflowException, ValidationException {
    // no validation for the KFS copy requisition rules:
    String sourceDocumentHeaderId = getDocumentNumber();
    setNewDocumentHeader();
    getDocumentHeader().setDocumentTemplateNumber(sourceDocumentHeaderId);
    // Clear out existing notes.
    if (getNotes() != null) {
        getNotes().clear();
    }
    addCopyErrorDocumentNote("copied from document " + sourceDocumentHeaderId);
    // --- LedgerPostingDocumentBase:
    setAccountingPeriod(retrieveCurrentAccountingPeriod());
    // --GeneralLedgerPostingDocumentBase:
    getGeneralLedgerPendingEntries().clear();
    // --AccountingDocumentBase:
    copyAccountingLines(false);
    updatePostingYearForAccountingLines(getSourceAccountingLines());
    updatePostingYearForAccountingLines(getTargetAccountingLines());
    // --RequisitionDocument:
    // Clear related views
    this.setAccountsPayablePurchasingDocumentLinkIdentifier(null);
    this.setRelatedViews(null);
    Person currentUser = GlobalVariables.getUserSession().getPerson();
    ChartOrgHolder purapChartOrg = SpringContext.getBean(FinancialSystemUserService.class).getPrimaryOrganization(currentUser, PurapConstants.PURAP_NAMESPACE);
    this.setPurapDocumentIdentifier(null);
    // Set req status to INPR.
    // for app doc status
    updateAndSaveAppDocStatus(PurapConstants.RequisitionStatuses.APPDOC_IN_PROCESS);
    // Set fields from the user.
    if (ObjectUtils.isNotNull(purapChartOrg)) {
        this.setChartOfAccountsCode(purapChartOrg.getChartOfAccountsCode());
        this.setOrganizationCode(purapChartOrg.getOrganizationCode());
    }
    this.setPostingYear(SpringContext.getBean(UniversityDateService.class).getCurrentFiscalYear());
    boolean activeVendor = true;
    boolean activeContract = true;
    Date today = SpringContext.getBean(DateTimeService.class).getCurrentDate();
    VendorContract vendorContract = new VendorContract();
    vendorContract.setVendorContractGeneratedIdentifier(this.getVendorContractGeneratedIdentifier());
    Map keys = SpringContext.getBean(PersistenceService.class).getPrimaryKeyFieldValues(vendorContract);
    vendorContract = SpringContext.getBean(BusinessObjectService.class).findByPrimaryKey(VendorContract.class, keys);
    if (!(vendorContract != null && today.after(vendorContract.getVendorContractBeginningDate()) && today.before(vendorContract.getVendorContractEndDate()))) {
        activeContract = false;
    }
    VendorDetail vendorDetail = SpringContext.getBean(VendorService.class).getVendorDetail(this.getVendorHeaderGeneratedIdentifier(), this.getVendorDetailAssignedIdentifier());
    if (!(vendorDetail != null && vendorDetail.isActiveIndicator())) {
        activeVendor = false;
    }
    // KFSPTS-916 : need vendor address key for business rules and only way to get it is to retrieve the default PO address for the vendor.
    if (vendorDetail != null) {
        VendorAddress vendorAddress = SpringContext.getBean(VendorService.class).getVendorDefaultAddress(this.getVendorHeaderGeneratedIdentifier(), this.getVendorDetailAssignedIdentifier(), VendorConstants.AddressTypes.PURCHASE_ORDER, "");
        if (vendorAddress != null) {
            super.templateVendorAddress(vendorAddress);
        }
    }
    // B2B - only copy if contract and vendor are both active (throw separate errors to print to screen)
    if (this.getRequisitionSourceCode().equals(PurapConstants.RequisitionSources.B2B)) {
        if (!activeContract) {
        // --  throw new ValidationException(PurapKeyConstants.ERROR_REQ_COPY_EXPIRED_CONTRACT);
        }
        if (!activeVendor) {
        // -- throw new ValidationException(PurapKeyConstants.ERROR_REQ_COPY_INACTIVE_VENDOR);
        }
    }
    if (!activeVendor) {
        this.setVendorContractGeneratedIdentifier(null);
    }
    if (!activeContract) {
        this.setVendorContractGeneratedIdentifier(null);
    }
    // These fields should not be set in this method; force to be null
    this.setOrganizationAutomaticPurchaseOrderLimit(null);
    this.setPurchaseOrderAutomaticIndicator(false);
    for (Iterator iter = this.getItems().iterator(); iter.hasNext(); ) {
        RequisitionItem item = (RequisitionItem) iter.next();
        item.setPurapDocumentIdentifier(null);
        item.setItemIdentifier(null);
        for (Iterator acctIter = item.getSourceAccountingLines().iterator(); acctIter.hasNext(); ) {
            RequisitionAccount account = (RequisitionAccount) acctIter.next();
            account.setAccountIdentifier(null);
            account.setItemIdentifier(null);
        }
    }
    if (!PurapConstants.RequisitionSources.B2B.equals(this.getRequisitionSourceCode())) {
        SpringContext.getBean(PurapService.class).addBelowLineItems(this);
    }
    this.setOrganizationAutomaticPurchaseOrderLimit(SpringContext.getBean(PurapService.class).getApoLimit(this.getVendorContractGeneratedIdentifier(), this.getChartOfAccountsCode(), this.getOrganizationCode()));
    clearCapitalAssetFields();
    SpringContext.getBean(PurapService.class).clearTax(this, this.isUseTaxIndicator());
    this.refreshNonUpdateableReferences();
}
Also used : RequisitionAccount(org.kuali.kfs.module.purap.businessobject.RequisitionAccount) VendorContract(org.kuali.kfs.vnd.businessobject.VendorContract) Date(java.util.Date) PersistenceService(org.kuali.kfs.krad.service.PersistenceService) VendorDetail(org.kuali.kfs.vnd.businessobject.VendorDetail) VendorService(org.kuali.kfs.vnd.document.service.VendorService) RequisitionItem(org.kuali.kfs.module.purap.businessobject.RequisitionItem) PurapService(org.kuali.kfs.module.purap.document.service.PurapService) ChartOrgHolder(org.kuali.kfs.sys.businessobject.ChartOrgHolder) FinancialSystemUserService(org.kuali.kfs.sys.service.FinancialSystemUserService) Iterator(java.util.Iterator) Person(org.kuali.rice.kim.api.identity.Person) DateTimeService(org.kuali.rice.core.api.datetime.DateTimeService) Map(java.util.Map) VendorAddress(org.kuali.kfs.vnd.businessobject.VendorAddress)

Example 5 with ChartOrgHolder

use of org.kuali.kfs.sys.businessobject.ChartOrgHolder in project cu-kfs by CU-CommunityApps.

the class IWantDocumentServiceImpl method setUpDeliverToSectionOfReqDoc.

/**
 * Sets up the deliver to section of the Requisition document based on the information
 * on the I Want Document.
 *
 * @param requisitionDocument
 * @param iWantDocument
 */
private void setUpDeliverToSectionOfReqDoc(RequisitionDocument requisitionDocument, IWantDocument iWantDocument, PurapService purapService) {
    Person deliverTo = null;
    if (StringUtils.isNotBlank(iWantDocument.getDeliverToNetID())) {
        requisitionDocument.setDeliveryBuildingRoomNumber(KFSConstants.NOT_AVAILABLE_STRING);
        requisitionDocument.setDeliveryCountryCode(KFSConstants.COUNTRY_CODE_UNITED_STATES);
        requisitionDocument.setDeliveryBuildingOtherIndicator(true);
        deliverTo = personService.getPersonByPrincipalName(iWantDocument.getDeliverToNetID());
        if (ObjectUtils.isNotNull(deliverTo)) {
            Person currentUser = GlobalVariables.getUserSession().getPerson();
            ChartOrgHolder purapChartOrg = financialSystemUserService.getPrimaryOrganization(currentUser, PurapConstants.PURAP_NAMESPACE);
            if (ObjectUtils.isNotNull(purapChartOrg)) {
                requisitionDocument.setChartOfAccountsCode(purapChartOrg.getChartOfAccountsCode());
                requisitionDocument.setOrganizationCode(purapChartOrg.getOrganizationCode());
            }
            requisitionDocument.setDeliveryCampusCode(deliverTo.getCampusCode());
            requisitionDocument.setDeliveryToName(iWantDocument.getDeliverToName());
            requisitionDocument.setDeliveryToEmailAddress(iWantDocument.getDeliverToEmailAddress());
            requisitionDocument.setDeliveryToPhoneNumber(iWantDocument.getDeliverToPhoneNumber());
            requisitionDocument.setRequestorPersonName(iWantDocument.getInitiatorName());
            requisitionDocument.setRequestorPersonEmailAddress(iWantDocument.getInitiatorEmailAddress());
            requisitionDocument.setRequestorPersonPhoneNumber(iWantDocument.getInitiatorPhoneNumber());
            parseAndSetRequestorAddress(iWantDocument.getDeliverToAddress(), requisitionDocument);
            requisitionDocument.setOrganizationAutomaticPurchaseOrderLimit(purapService.getApoLimit(requisitionDocument.getVendorContractGeneratedIdentifier(), requisitionDocument.getChartOfAccountsCode(), requisitionDocument.getOrganizationCode()));
            // populate billing address
            BillingAddress billingAddress = new BillingAddress();
            billingAddress.setBillingCampusCode(requisitionDocument.getDeliveryCampusCode());
            @SuppressWarnings("unchecked") Map<String, ?> keys = persistenceService.getPrimaryKeyFieldValues(billingAddress);
            billingAddress = businessObjectService.findByPrimaryKey(BillingAddress.class, keys);
            requisitionDocument.templateBillingAddress(billingAddress);
        }
    }
    if (StringUtils.isBlank(iWantDocument.getDeliverToNetID()) || ObjectUtils.isNull(deliverTo)) {
        // populate requisition fields from I Want doc initiator
        deliverTo = personService.getPerson(iWantDocument.getDocumentHeader().getWorkflowDocument().getInitiatorPrincipalId());
        if (ObjectUtils.isNotNull(deliverTo)) {
            Person currentUser = GlobalVariables.getUserSession().getPerson();
            ChartOrgHolder purapChartOrg = financialSystemUserService.getPrimaryOrganization(currentUser, PurapConstants.PURAP_NAMESPACE);
            if (ObjectUtils.isNotNull(purapChartOrg)) {
                requisitionDocument.setChartOfAccountsCode(purapChartOrg.getChartOfAccountsCode());
                requisitionDocument.setOrganizationCode(purapChartOrg.getOrganizationCode());
            }
            requisitionDocument.setDeliveryCampusCode(deliverTo.getCampusCode());
            requisitionDocument.setDeliveryToName(deliverTo.getName());
            requisitionDocument.setDeliveryToEmailAddress(deliverTo.getEmailAddressUnmasked());
            requisitionDocument.setDeliveryToPhoneNumber(SpringContext.getBean(PhoneNumberService.class).formatNumberIfPossible(deliverTo.getPhoneNumber()));
            requisitionDocument.setRequestorPersonName(deliverTo.getName());
            requisitionDocument.setRequestorPersonEmailAddress(deliverTo.getEmailAddressUnmasked());
            requisitionDocument.setRequestorPersonPhoneNumber(SpringContext.getBean(PhoneNumberService.class).formatNumberIfPossible(deliverTo.getPhoneNumber()));
            DefaultPrincipalAddress defaultPrincipalAddress = new DefaultPrincipalAddress(deliverTo.getPrincipalId());
            @SuppressWarnings("unchecked") Map<String, ?> addressKeys = persistenceService.getPrimaryKeyFieldValues(defaultPrincipalAddress);
            defaultPrincipalAddress = (DefaultPrincipalAddress) businessObjectService.findByPrimaryKey(DefaultPrincipalAddress.class, addressKeys);
            if (ObjectUtils.isNotNull(defaultPrincipalAddress) && ObjectUtils.isNotNull(defaultPrincipalAddress.getBuilding())) {
                if (defaultPrincipalAddress.getBuilding().isActive()) {
                    requisitionDocument.setDeliveryCampusCode(defaultPrincipalAddress.getCampusCode());
                    requisitionDocument.templateBuildingToDeliveryAddress(defaultPrincipalAddress.getBuilding());
                    requisitionDocument.setDeliveryBuildingRoomNumber(defaultPrincipalAddress.getBuildingRoomNumber());
                } else {
                    // since building is now inactive, delete default building record
                    businessObjectService.delete(defaultPrincipalAddress);
                }
            }
            // set the APO limit
            requisitionDocument.setOrganizationAutomaticPurchaseOrderLimit(purapService.getApoLimit(requisitionDocument.getVendorContractGeneratedIdentifier(), requisitionDocument.getChartOfAccountsCode(), requisitionDocument.getOrganizationCode()));
            // populate billing address
            BillingAddress billingAddress = new BillingAddress();
            billingAddress.setBillingCampusCode(requisitionDocument.getDeliveryCampusCode());
            @SuppressWarnings("unchecked") Map<String, ?> keys = persistenceService.getPrimaryKeyFieldValues(billingAddress);
            billingAddress = (BillingAddress) businessObjectService.findByPrimaryKey(BillingAddress.class, keys);
            requisitionDocument.templateBillingAddress(billingAddress);
        }
    }
}
Also used : BillingAddress(org.kuali.kfs.module.purap.businessobject.BillingAddress) DefaultPrincipalAddress(org.kuali.kfs.module.purap.businessobject.DefaultPrincipalAddress) ChartOrgHolder(org.kuali.kfs.sys.businessobject.ChartOrgHolder) Person(org.kuali.rice.kim.api.identity.Person)

Aggregations

ChartOrgHolder (org.kuali.kfs.sys.businessobject.ChartOrgHolder)5 Person (org.kuali.rice.kim.api.identity.Person)3 Iterator (java.util.Iterator)2 Map (java.util.Map)2 DisbursementVoucherDocument (org.kuali.kfs.fp.document.DisbursementVoucherDocument)2 PersistenceService (org.kuali.kfs.krad.service.PersistenceService)2 BillingAddress (org.kuali.kfs.module.purap.businessobject.BillingAddress)2 DefaultPrincipalAddress (org.kuali.kfs.module.purap.businessobject.DefaultPrincipalAddress)2 FinancialSystemUserService (org.kuali.kfs.sys.service.FinancialSystemUserService)2 VendorAddress (org.kuali.kfs.vnd.businessobject.VendorAddress)2 VendorContract (org.kuali.kfs.vnd.businessobject.VendorContract)2 VendorDetail (org.kuali.kfs.vnd.businessobject.VendorDetail)2 CuB2BShoppingCart (edu.cornell.kfs.module.purap.util.cxml.CuB2BShoppingCart)1 Date (java.sql.Date)1 ArrayList (java.util.ArrayList)1 Calendar (java.util.Calendar)1 Date (java.util.Date)1 List (java.util.List)1 BusinessObjectService (org.kuali.kfs.krad.service.BusinessObjectService)1 B2BShoppingCartItem (org.kuali.kfs.module.purap.businessobject.B2BShoppingCartItem)1