Example usage for org.apache.commons.lang StringUtils rightPad

List of usage examples for org.apache.commons.lang StringUtils rightPad

Introduction

In this page you can find the example usage for org.apache.commons.lang StringUtils rightPad.

Prototype

public static String rightPad(String str, int size, String padStr) 

Source Link

Document

Right pad a String with a specified String.

Usage

From source file:edu.ku.kuali.kra.award.sapintegration.SapIntegrationServiceImpl.java

/**
 * Implements 1.7.1 and 1.7.2 of the functional specification.
 * <p/>/*from   ww  w  .  j a  va  2s  . c  om*/
 * This data maps 1:1 from the Parent Award that is being interfaced.
 */
protected ZGMGRANTSTRUCTURE constructGrant(Award award) {

    // Specification Section 1.7.1

    ZGMGRANTSTRUCTURE grant = objectFactory.createZGMGRANTSTRUCTURE();

    CustomAwardDataHelper helper = new CustomAwardDataHelper(award);

    if (helper.getLastTransmissionDate() == null) {
        grant.setGRANTUPDATE(INTERFACE_NEW);
    } else {
        grant.setGRANTUPDATE(INTERFACE_UPDATE);
    }

    ZBAPI0035HEADER grantHeader = objectFactory.createZBAPI0035HEADER();
    ZBAPI0035HEADERADD grantHeaderAdd = objectFactory.createZBAPI0035HEADERADD();
    ZFIGRANTDATA grantData = objectFactory.createZFIGRANTDATA();

    grant.setHEADER(grantHeader);
    grant.setHEADERADD(grantHeaderAdd);
    grant.setEXTENSIONIN(grantData);

    // Position 1
    grantHeader.setGRANTNBR(deriveGrantNumber(award.getAwardNumber()));

    // BU Customization ID: N/A mkousheh 20110620 - Send Parent Transaction
    // Type
    grantHeader.setPARENTTRANSACTIONTYPE(award.getAwardTransactionType().getDescription());

    // Position 2
    grantHeader.setGRANTTYPE(convertAccountTypeToGrantType(award.getAccountTypeCode(), award));

    // Position 4
    grantHeader.setSPONSOR(award.getSponsorCode());

    // Position 5 - pad with zeros to 10 chars
    grantHeaderAdd.setAUTHGROUP(StringUtils.rightPad(award.getLeadUnitNumber(), 10, "0"));

    // Position 6
    grantHeaderAdd.setAWARDTYPE(convertAwardTypeCodeToAwardType(award.getAwardTypeCode(), award));

    AwardAmountInfo awardAmountInfo = getAwardAmountInfoService()
            .fetchLastAwardAmountInfoForAwardVersionAndFinalizedTandMDocumentNumber(award);

    // Position 8
    grantHeaderAdd.setGRANTTOTAL(awardAmountInfo.getAmountObligatedToDate().bigDecimalValue());

    // Position 9
    grantHeader.setVALIDFROM(
            dateToString(DateUtils.convertToSqlDate(awardAmountInfo.getCurrentFundEffectiveDate())));

    // BU Customization ID: N/A mkousheh 20110620 - Set Valid From Budget to
    // 3 months if null
    if (awardAmountInfo.getCurrentFundEffectiveDate() != null) {
        java.util.Date tmpDate = org.apache.commons.lang3.time.DateUtils
                .addMonths(awardAmountInfo.getCurrentFundEffectiveDate(), -3);
        grantHeader.setVALIDFROMBUDGET(dateToString(DateUtils.convertToSqlDate(tmpDate)));
    }

    // Position 10
    grantHeader.setVALIDTO(
            dateToString(DateUtils.convertToSqlDate(awardAmountInfo.getObligationExpirationDate())));
    // BU Customization ID: N/A mkousheh 20110620 - Set Valid To Budget to 1
    // year if null
    if (awardAmountInfo.getObligationExpirationDate() != null) {
        java.util.Date tmpDate2 = org.apache.commons.lang3.time.DateUtils
                .addYears(awardAmountInfo.getObligationExpirationDate(), 1);
        grantHeader.setVALIDTOBUDGET(dateToString(DateUtils.convertToSqlDate(tmpDate2)));
    }

    // Position 11
    grantHeader.setEXTREFERENCE(award.getSponsorAwardNumber());
    grantHeader.setINTREFERENCE(award.getAwardNumber());

    // Position 12
    grantHeaderAdd.setCFDANBR(award.getCfdaNumber());

    // Position 13
    if (award.getBasisOfPaymentCode() == null) {
        logAwardInfo(award, "awardBasisOfPayment is null, not sending billingRule on grant");
    } else {
        grantHeaderAdd.setBILLINGRULE(convertBasisOfPaymentToBillingRule(award.getBasisOfPaymentCode(), award));
    }

    // Position 14
    grantHeaderAdd
            .setLETTEROFCREDIT(convertMethodOfPaymentToLetterOfCredit(award.getMethodOfPaymentCode(), award));

    // BUKC-0124: Send new custom field FAIN to SAP via interface
    // (ENHC0012816)
    grantHeaderAdd.setFUNDINGORIGIN(((AwardExtension) award.getExtension()).getFain());

    // Position 16 and 17
    for (AwardReportTerm awardReportTermItem : award.getAwardReportTermItems()) {
        // skip Report Codes 27 and 24
        if (!awardReportTermItem.getReportCode().equals("27")
                && !awardReportTermItem.getReportCode().equals("24")) {
            if (PAYMENT_INVOICES_REPORT_CLASS_CODE.equals(awardReportTermItem.getReportClassCode())) {
                grantData.setZZINVOICEFREQ(
                        convertFrequencyCodeToInvoiceFrequency(awardReportTermItem.getFrequencyCode()));
                grantData.setZZINVOICEFORM(convertReportCodeToInvoiceForm(awardReportTermItem.getReportCode()));
                break;
            }
        }
    }

    // Position 18
    String advancePayment = determineAdvancePayment(award);
    if (advancePayment != null) {
        grantData.setZZADVPYMNTIND(advancePayment);
    }

    // Position 19
    grantData.setZZFUNDCENTER(StringUtils.rightPad(award.getLeadUnitNumber(), 10, "0"));

    // Position 20
    grantData.setZZAWARDTITLE(award.getTitle());

    // Position 22
    grantData.setZZINTEARNED(helper.getInterestEarned());

    // Position 23
    if (helper.isArra()) {
        grantData.setZZLDCODE(ARRA_FUNDING_INFORMATION);
    }

    // Position 24
    grantData.setZZMJRPRJCT("yes".equalsIgnoreCase(helper.getMajorProject()) ? "x" : "");

    // grantData.setZZINVOICEFREQ(""); // NOT ON AWARD
    // grantData.setZZINVOICEFORM(""); // NOT ON AWARD

    // Position 25
    String propertyOwnerTitle = determinePropertyOwnerTitle(award);
    if (propertyOwnerTitle != null) {
        grantData.setZZPRPRTYOWNR(propertyOwnerTitle);
    }

    // Position 26
    String costShareMemoMatch = determineCostShareMemoMatch(award);
    if (costShareMemoMatch != null) {
        grantData.setZZCOSTSHARE(costShareMemoMatch);
    }

    // Position 27
    grantData.setZZAVCTOLERANCE(convertAvcIndicatorToAvcTolerance(helper.getAvcIndicator()));

    // Position 28
    grantData.setZZNSFCTGRY(award.getNsfCode());

    // Position 29
    grantData.setZZA133CLSTR(helper.getA133Cluster());

    // Position 31
    // BUKC-0088: Transmitting Project Start Date as AwardEffectiveDate and
    // not BeginDate (fields switched after 3.0.1 release) - (DFCT0011210)
    grantData.setZZPROJBEGDA(dateToString(award.getAwardEffectiveDate()));
    // grantData.setZZPROJBEGDA(dateToString(award.getBeginDate()));

    // Position 32
    grantData.setZZPROJENDDA(dateToString(awardAmountInfo.getFinalExpirationDate()));

    grantData.setZZAWARDNO(award.getAwardNumber());

    // Position 33
    grantData.setZZSPONSOR(award.getPrimeSponsorCode());

    // Position 34
    grantHeader.setUSERSTATUS(convertStatusCodeToResponsibility(award.getStatusCode(), award));

    // Position 35
    grantData.setZZINTEARNED(convertInterestEarnedCode(helper.getInterestEarned()));

    // Position 36
    if (getMostRecentAwardReportTerm(award) != null
            && getMostRecentAwardReportTerm(award).getAwardReportTermRecipients().size() > 0) {
        grantData.setZZBILLPARTNER(getMostRecentAwardReportTerm(award).getAwardReportTermRecipients().get(0)
                .getRolodexId().toString());
    }

    // Specification Section 1.7.2
    ZGMFACREDITT faCredit = objectFactory.createZGMFACREDITT();
    grant.setFACREDIT(faCredit);
    List<ZGMFACREDIT> faCredits = faCredit.getItem();
    for (AwardPerson awardPerson : award.getProjectPersons()) {
        for (AwardPersonUnit awardPersonUnit : awardPerson.getUnits()) {
            AwardPersonUnitCreditSplit creditSplit = getMostRecentCreditSplit(awardPersonUnit);
            ZGMFACREDIT credit = objectFactory.createZGMFACREDIT();
            credit.setGRANTNBR(award.getAwardNumber());
            credit.setDEPT(StringUtils.rightPad(awardPersonUnit.getUnitNumber(), 10, "0"));
            if (creditSplit != null) {
                credit.setPERCENTAGE(creditSplit.getCredit().bigDecimalValue());
            }
            faCredits.add(credit);
        }
    }

    // Specification Section 1.7.3

    ZBAPI0035RESPONSIBLET grantPersons = objectFactory.createZBAPI0035RESPONSIBLET();
    grant.setRESPONSIBILITY(grantPersons);
    for (AwardPerson awardPerson : award.getProjectPersons()) {
        ZBAPI0035RESPONSIBLE grantPerson = objectFactory.createZBAPI0035RESPONSIBLE();
        grantPersons.getItem().add(grantPerson);
        grantPerson.setUSERID(awardPerson.getPersonId());
        grantPerson.setUSERNAME(awardPerson.getFullName());
        // BUKC-0062: SAP Interface - Handle multiple PIs for NIH awards
        // when transmit to SAP
        if (awardPerson.isMultiplePi()) {
            grantPerson.setRESPONSIBILITY("PI");
        } else {
            grantPerson.setRESPONSIBILITY(
                    convertProjectRoleToResponsibility(awardPerson.getContactRoleCode(), award));

        }
    }

    for (AwardUnitContact awardContact : award.getAwardUnitContacts()) {
        if ("2".equals(awardContact.getUnitAdministratorTypeCode())) {
            ZBAPI0035RESPONSIBLE grantPerson = objectFactory.createZBAPI0035RESPONSIBLE();
            grantPersons.getItem().add(grantPerson);
            grantPerson.setUSERID(awardContact.getPersonId());
            grantPerson.setUSERNAME(awardContact.getFullName());
            grantPerson.setRESPONSIBILITY("DA");
        }
        if ("6".equals(awardContact.getUnitAdministratorTypeCode())) {
            ZBAPI0035RESPONSIBLE grantPerson = objectFactory.createZBAPI0035RESPONSIBLE();
            grantPersons.getItem().add(grantPerson);
            grantPerson.setUSERID(awardContact.getPersonId());
            grantPerson.setUSERNAME(awardContact.getPerson().getFullName());
            grantPerson.setRESPONSIBILITY("OAV");
        }

        // BUKC-0140: Add new Admin Type (Clinical Trial Admin)
        if ("8".equals(awardContact.getUnitAdministratorTypeCode())) {
            ZBAPI0035RESPONSIBLE grantPerson = objectFactory.createZBAPI0035RESPONSIBLE();
            grantPersons.getItem().add(grantPerson);
            grantPerson.setUSERID(awardContact.getPersonId());
            grantPerson.setUSERNAME(awardContact.getPerson().getFullName());
            grantPerson.setRESPONSIBILITY("CTAD");
        }

    }

    // BU Customization ID: N/A mkousheh 20110706 - Get OSP and PAFO Admin
    // from Unit Admin per lead unit
    // (above code is not accurate since Data are not stored on award-person
    for (UnitAdministrator unitAdministrator : award.getLeadUnit().getUnitAdministrators()) {
        if ("3".equals(unitAdministrator.getUnitAdministratorTypeCode())) {
            ZBAPI0035RESPONSIBLE grantPerson = objectFactory.createZBAPI0035RESPONSIBLE();
            grantPersons.getItem().add(grantPerson);
            grantPerson.setUSERID(unitAdministrator.getPersonId());
            grantPerson.setUSERNAME(unitAdministrator.getPerson().getFullName());
            grantPerson.setRESPONSIBILITY("OSP");
        }
        if ("4".equals(unitAdministrator.getUnitAdministratorTypeCode())) {
            ZBAPI0035RESPONSIBLE grantPerson = objectFactory.createZBAPI0035RESPONSIBLE();
            grantPersons.getItem().add(grantPerson);
            grantPerson.setUSERID(unitAdministrator.getPersonId());
            grantPerson.setUSERNAME(unitAdministrator.getPerson().getFullName());
            grantPerson.setRESPONSIBILITY("PAFO");
        }

    }

    return grant;
}

From source file:com.evolveum.midpoint.repo.sql.closure.AbstractOrgClosureTest.java

protected String createOid(String oidPrefix) {
    String oid = StringUtils.rightPad(oidPrefix, 31, '.');

    StringBuilder sb = new StringBuilder();
    sb.append(oid.substring(0, 7));//ww  w. ja v a 2 s . co  m
    sb.append('-');
    sb.append(oid.substring(7, 11));
    sb.append('-');
    sb.append(oid.substring(11, 15));
    sb.append('-');
    sb.append(oid.substring(15, 19));
    sb.append('-');
    sb.append(oid.substring(19, 31));

    return sb.toString();
}

From source file:edu.bu.kuali.kra.award.sapintegration.SapIntegrationServiceImpl.java

/**
 * Implements section 1.7.4, 1.7.5, and 1.7.6 of the functional specification.
 *
 * @param award       the award for which to generate a sponsored program
 * @param costSharing indicates if this is a cost sharing program or not, if true then this method produces a
 *                    sponsored program structure which compiles with specification section 1.7.4, if false then it will generate
 *                    one which complies with specification section 1.7.5
 * @param parentAward true if the given award is a parent award, false otherwise
 * @return//w w  w . java  2 s .c o  m
 */
protected ZGMSPPROGRAMSTRUCTURE constructSponsoredProgram(Award award, boolean costSharing) {

    CustomAwardDataHelper helper = new CustomAwardDataHelper(award);
    AwardBudgetExt abvoe = getLastBudgetVersion(award.getAwardDocument());
    boolean awardBudgetVersionToBePosted = false;
    if (abvoe != null) {
        String budgetStatus = abvoe.getAwardBudgetStatusCode();
        awardBudgetVersionToBePosted = Constants.BUDGET_STATUS_CODE_TO_BE_POSTED.equalsIgnoreCase(budgetStatus);
    }

    ZGMSPPROGRAMSTRUCTURE sponsoredProgramStructure = objectFactory.createZGMSPPROGRAMSTRUCTURE();

    if (helper.getLastTransmissionDate() == null) {
        sponsoredProgramStructure.setSPPROGRAMUPDATE(INTERFACE_NEW);
    } else {
        sponsoredProgramStructure.setSPPROGRAMUPDATE(INTERFACE_UPDATE);
    }

    sponsoredProgramStructure.setSPPROGRAMNUMBER(award.getAccountNumber());

    // Handle data which is shared between 1.7.4 and 1.7.5

    // Position 1
    if (StringUtils.isEmpty(award.getAccountNumber())) {
        sponsoredProgramStructure.setSPONSOREDPROG(award.getAwardNumber());
    } else {
        sponsoredProgramStructure.setSPONSOREDPROG(award.getAccountNumber());
    }

    AwardAmountInfo awardAmountInfo = getAwardAmountInfoService()
            .fetchLastAwardAmountInfoForAwardVersionAndFinalizedTandMDocumentNumber(award);

    // Position 3
    sponsoredProgramStructure.setZZVALIDFROM(dateToString(awardAmountInfo.getCurrentFundEffectiveDate()));

    // Position 4
    sponsoredProgramStructure.setZZVALIDTO(dateToString(awardAmountInfo.getObligationExpirationDate()));

    // Position 6
    sponsoredProgramStructure.setBUSINESSAREA(convertLeadUnitToBusinessArea(award.getLeadUnitNumber(), award));

    // Position 7
    GMSPPROGRAMFMBTTT programFmbtTt = objectFactory.createGMSPPROGRAMFMBTTT();
    GMSPPROGRAMFMBT programFmbt = objectFactory.createGMSPPROGRAMFMBT();
    programFmbtTt.getItem().add(programFmbt);
    sponsoredProgramStructure.setTGMSPPROGRAMFMBT(programFmbtTt);

    programFmbt.setSPONSOREDPROG(award.getAccountNumber());
    programFmbt.setFUNCTIONALAREA(convertActivityTypeToFunctionalArea(award.getActivityTypeCode(), award));

    // Position 8
    // If this is a cost sharing sponsored program then it is sourced from the parent award, but they don't have
    // budgets so the F and A rate would not be able to be calculated.
    // also, parent awards cant have budgets, so check to see if their are children as well
    AwardHierarchy hierarchy = getAwardHierarchyService().loadAwardHierarchy(award.getAwardNumber());
    String overheadKey = "";
    if (!awardBudgetVersionToBePosted) {

        // BU Customization ID: N/A mkousheh 20120504 - Get the latest child that matches that was successful transmitted
        AwardTransmissionChild lastTransmittedChild = getLatestChildAwardTransmitted(
                hierarchy.getRoot().getAward(), award.getAwardNumber(), true);
        if (lastTransmittedChild != null) {
            overheadKey = lastTransmittedChild.getOverheadKey();
        }

        // BU Customization ID: N/A mkousheh 20120504 - Commented out the following code and replaced with the above -
        // BUG (it gets latest transmitted then matches the child, sometimes no matching child in the last transmission
        // AwardTransmission lastTransmission = getLatestAwardTransmission(hierarchy.getRoot().getAward(), true);
        // if  (lastTransmission != null) {
        //     AwardTransmissionChild lastChildTransmission = findMatchingTransmissionChild(lastTransmission.getTransmissionChildren(), award.getAwardNumber());
        //     if (lastChildTransmission != null) {
        //         overheadKey = lastChildTransmission.getOverheadKey();
        //     }
        // }

        // BU Customization ID: N/A mkousheh N/A - Switching this to use value saved on last transmission child -
        //            BigDecimal fAndARate = calculateApplicableFandARate(award);
        //            if(fAndARate != null) {
        //                sponsoredProgramStructure.setOVERHEADKEY(StringUtils.leftPad(fAndARate.toPlainString(), 6, "0"));
        //            }
    } else if (!costSharing && !hierarchy.hasChildren() && awardBudgetVersionToBePosted) {
        BigDecimal fAndARate = calculateApplicableFandARate(award);
        if (fAndARate != null && (((AwardExtension) award.getExtension()).getSteppedUpRate() == null
                || "NA".equalsIgnoreCase(((AwardExtension) award.getExtension()).getSteppedUpRate()))) {
            overheadKey = StringUtils.leftPad(fAndARate.toPlainString(), 6, "0");
        } else {
            // get the system parameter for these values and lookup the mapping value based on the date
            overheadKey = getParameterService().getSubParameterValueAsString(AwardDocument.class,
                    BUConstants.FEDERAL_RATE_DATE_OVERHEAD_KEY_FIELD_MAPPINGS,
                    ((AwardExtension) award.getExtension()).getSteppedUpRate());
            if (fAndARate == null || StringUtils.isBlank(overheadKey)) {
                overheadKey = ("000.00");
            }
        }
    }
    sponsoredProgramStructure.setOVERHEADKEY(overheadKey);
    GlobalVariables.getUserSession().addObject("overheadKey-".concat(award.getAwardNumber()),
            (Object) overheadKey);
    LOG.info("Writing overheadKey to session: " + overheadKey);

    // Position 9
    programFmbt.setFUNDSCENTER(StringUtils.rightPad(award.getLeadUnitNumber(), 10, "0"));

    // Position 11
    sponsoredProgramStructure.setZZREFERENCE(award.getAwardNumber());

    // Position 12
    sponsoredProgramStructure.setZZAWARDNO(award.getSponsorAwardNumber());

    // Position 13
    sponsoredProgramStructure.setZZDOCNO(award.getDocumentFundingId());

    AwardBudgetExt budget = null;
    if (!costSharing) {
        budget = award.getAwardDocument().getBudgetVersionOverview();
        if (budget == null) {
            throw new IllegalArgumentException(
                    "Award with number " + award.getAwardNumber() + " does not have a budget.");
        }
    }

    // BU Customization ID: N/A mkousheh 20110706 - In case of CostSharing check if updated
    boolean costSharesHaveChanged = false;
    if (costSharing) {
        AwardCostShare tmpAwardCostShare = getMostRecentAwardCostShare(award);
        if (tmpAwardCostShare != null
                && ((AwardExtension) award.getExtension()).getLastTransmissionDate() != null
                && tmpAwardCostShare.getUpdateTimestamp() != null && ((AwardExtension) award.getExtension())
                        .getLastTransmissionDate().before(tmpAwardCostShare.getUpdateTimestamp())) {
            costSharesHaveChanged = true;
        }
    }

    //        if (!costSharesHaveChanged) {
    // Position 17
    if (awardBudgetVersionToBePosted && budget != null && budget.getTotalDirectCost() != null) {
        sponsoredProgramStructure.setBUDGETTDC(budget.getTotalDirectCost().bigDecimalValue());
    } else {
        sponsoredProgramStructure.setBUDGETTDC(ScaleTwoDecimal.ZERO.bigDecimalValue());
    }

    // Position 18
    if (awardBudgetVersionToBePosted && budget != null && budget.getTotalIndirectCost() != null) {
        sponsoredProgramStructure.setBUDGETFA(budget.getTotalIndirectCost().bigDecimalValue());
    } else {
        sponsoredProgramStructure.setBUDGETFA(ScaleTwoDecimal.ZERO.bigDecimalValue());
    }
    //        }

    // BU Customization ID: N/A mkousheh 20110712 - If Parent Award Transaction is NoCostExtention or Administrative Changes Set Budget to zero
    if (hierarchy.getRoot().getAward().getAwardTransactionTypeCode() != null) {
        if (hierarchy.getRoot().getAward().getAwardTransactionTypeCode().equals(10)
                || hierarchy.getRoot().getAward().getAwardTransactionTypeCode().equals(6)) {
            sponsoredProgramStructure.setBUDGETTDC(ScaleTwoDecimal.ZERO.bigDecimalValue());
            sponsoredProgramStructure.setBUDGETFA(ScaleTwoDecimal.ZERO.bigDecimalValue());
        }
    }

    // Position 19
    boolean fringeNotAllowed = helper.isFringeNotAllowed();
    sponsoredProgramStructure
            .setFRINGECODE(FringeCodeMapping.mapToSapFringeCode(fringeNotAllowed, award.getAccountTypeCode()));

    /**
     *  Data which is only part of 1.7.4
     */
    if (!costSharing && !hierarchy.hasChildren()) {

        // Position 10
        sponsoredProgramStructure.setZZORDCAT(convertChildType(helper.getChildType(), award));

        // Position 14
        String offCampus = null;
        if (!awardBudgetVersionToBePosted) {

            // BU Customization ID: N/A mkousheh 20120504 - Get the latest child that matches that was successful transmitted
            //                AwardTransmission lastTransmission = getLatestAwardTransmission(hierarchy.getRoot().getAward(), true);
            //                if  (lastTransmission != null) {
            //                    AwardTransmissionChild lastChildTransmission = findMatchingTransmissionChild(lastTransmission.getTransmissionChildren(), award.getAwardNumber());
            //                    if (lastChildTransmission != null) {
            //                        offCampus = lastChildTransmission.getOffCampus();
            //                    }
            //                }
            AwardTransmissionChild lastTransmittedChild = getLatestChildAwardTransmitted(
                    hierarchy.getRoot().getAward(), award.getAwardNumber(), true);
            if (lastTransmittedChild != null) {
                offCampus = lastTransmittedChild.getOffCampus();
            }

        } else if (budget != null) {
            offCampus = budget.getOnOffCampusFlag();
        }
        sponsoredProgramStructure.setZZOFFCAMPUS(offCampus);
        GlobalVariables.getUserSession().addObject("offCampus-".concat(award.getAwardNumber()),
                (Object) offCampus);
        LOG.info("Writing offCampus to session: " + offCampus);

        // Position 16
        String baseCode = null;
        if (!awardBudgetVersionToBePosted) {

            // BU Customization ID: N/A mkousheh 20120504 - Get the latest child that matches that was successful transmitted
            //                AwardTransmission lastTransmission = getLatestAwardTransmission(hierarchy.getRoot().getAward(), true);
            //                if  (lastTransmission != null) {
            //                    AwardTransmissionChild lastChildTransmission = findMatchingTransmissionChild(lastTransmission.getTransmissionChildren(), award.getAwardNumber());
            //                    if (lastChildTransmission != null) {
            //                        baseCode = lastChildTransmission.getBaseCode();
            //                    }
            //                }

            AwardTransmissionChild lastTransmittedChild = getLatestChildAwardTransmitted(
                    hierarchy.getRoot().getAward(), award.getAwardNumber(), true);
            if (lastTransmittedChild != null) {
                baseCode = lastTransmittedChild.getBaseCode();
            }

        } else if (budget != null) { // AAP removed per whit -  && awardBudgetVersionToBePosted
            baseCode = budget.getOhRateClassCode();
        }
        sponsoredProgramStructure.setBASECODE(baseCode);
        GlobalVariables.getUserSession().addObject("baseCode-".concat(award.getAwardNumber()),
                (Object) baseCode);
        LOG.info("Writing baseCode to session: " + baseCode);

        // Position 20
        sponsoredProgramStructure.setDESCRIPTION(helper.getChildDescription());

        // Position 21
        // BU Customization ID: N/A mkousheh 20110816 - SUBRecipient no longer needed
        // ZFIGMSUBRECIPIENTTAB awardApprovedSubawards = objectFactory.createZFIGMSUBRECIPIENTTAB();
        // sponsoredProgramStructure.setTSUBRECIPIENT(awardApprovedSubawards);
        // List<AwardApprovedSubaward> subawards = award.getAwardApprovedSubawards();
        // for (AwardApprovedSubaward subaward : subawards) {
        //      GMSUBRECIPIENT awardApprovedSubaward = objectFactory.createGMSUBRECIPIENT();
        //      awardApprovedSubawards.getItem().add(awardApprovedSubaward);
        //      awardApprovedSubaward.setSUBRECIPIENT(subaward.getOrganizationId());
        //      awardApprovedSubaward.setSUBNAME(subaward.getOrganizationName());
        //      awardApprovedSubaward.setSUBAMOUNT(subaward.getAmount().bigDecimalValue());
        // }

        // AwardApprovedSubaward awardApprovedSubaward = getMostRecentAwardApprovedSubaward(award);
        // if (awardApprovedSubaward != null) {
        //      ZGMSUBRECIPIENT subRecipent = new ZGMSUBRECIPIENT();
        //      subRecipent.setSUBRECIPIENT(awardApprovedSubaward.getOrganizationId());
        //      subRecipent.setSUBNAME(awardApprovedSubaward.getOrganizationName());
        //      subRecipent.setSUBAMOUNT(awardApprovedSubaward.getAmount().bigDecimalValue());
        //      sponsoredProgramStructure.setZZSUBRECIPIENT(subRecipent);
        //      sponsoredProgramStructure.setZZSUBRECIPIENT(awardApprovedSubaward.getOrganizationId());
        // }

        // Position 22
        sponsoredProgramStructure.setKCRMSTATUS(StringUtils.leftPad(award.getStatusCode().toString(), 2, "0"));

        // Position 23
        sponsoredProgramStructure.setSPONSOR(award.getSponsorCode());

        // Position 24
        sponsoredProgramStructure.setPRIMESPONSOR(award.getPrimeSponsorCode());

        /**
         * Specification section 1.7.6
         */

        ZFIGMSPRESPONSIBLETABKCRM sponsoredProgramPersons = objectFactory.createZFIGMSPRESPONSIBLETABKCRM();
        sponsoredProgramStructure.setTRESPONSIBLE(sponsoredProgramPersons);
        List<AwardPerson> persons = award.getProjectPersons();
        for (AwardPerson person : persons) {
            ZGMSPRESPONSIBLEKCRM sponsoredProgramPerson = objectFactory.createZGMSPRESPONSIBLEKCRM();
            sponsoredProgramPersons.getItem().add(sponsoredProgramPerson);
            sponsoredProgramPerson.setSPONSOREDPROG(award.getAccountNumber());
            sponsoredProgramPerson.setOBJECTID(person.getPersonId());
            sponsoredProgramPerson.setOBJECTNAME(person.getFullName());

            // BUKC-0062: SAP Interface - Handle multiple PIs for NIH awards when transmit to SAP
            if (person.isMultiplePi()) {
                sponsoredProgramPerson.setRESPONSIBILITY("PI");
            } else {
                sponsoredProgramPerson.setRESPONSIBILITY(
                        convertProjectRoleToResponsibility(person.getContactRoleCode(), award));

            }
        }

        // BU Customization ID: N/A mkousheh 20110828 - Add DAs to SponsoredPrograms
        for (AwardUnitContact awardContact : award.getAwardUnitContacts()) {
            if ("2".equals(awardContact.getUnitAdministratorTypeCode())) {
                ZGMSPRESPONSIBLEKCRM sponsoredProgramPerson = objectFactory.createZGMSPRESPONSIBLEKCRM();
                sponsoredProgramPersons.getItem().add(sponsoredProgramPerson);
                sponsoredProgramPerson.setOBJECTID(awardContact.getPersonId());
                sponsoredProgramPerson.setOBJECTNAME(awardContact.getFullName());
                sponsoredProgramPerson.setRESPONSIBILITY("DA");
            }
            if ("6".equals(awardContact.getUnitAdministratorTypeCode())) {
                ZGMSPRESPONSIBLEKCRM sponsoredProgramPerson = objectFactory.createZGMSPRESPONSIBLEKCRM();
                sponsoredProgramPersons.getItem().add(sponsoredProgramPerson);
                sponsoredProgramPerson.setOBJECTID(awardContact.getPersonId());
                sponsoredProgramPerson.setOBJECTNAME(awardContact.getPerson().getFullName());
                sponsoredProgramPerson.setRESPONSIBILITY("OAV");
            }

            // BUKC-0140: Add new Admin Type (Clinical Trial Admin)
            if ("8".equals(awardContact.getUnitAdministratorTypeCode())) {
                ZGMSPRESPONSIBLEKCRM sponsoredProgramPerson = objectFactory.createZGMSPRESPONSIBLEKCRM();
                sponsoredProgramPersons.getItem().add(sponsoredProgramPerson);
                sponsoredProgramPerson.setOBJECTID(awardContact.getPersonId());
                sponsoredProgramPerson.setOBJECTNAME(awardContact.getPerson().getFullName());
                sponsoredProgramPerson.setRESPONSIBILITY("CTAD");
            }
        }
    }

    /**
     *  Data which is only part of 1.7.5
     */
    ScaleTwoDecimal costSharCommitmentMinusMemoMatch = getTotalCostShareCommitmentAmountMinusMemoMatch(award);

    if (costSharing && costSharCommitmentMinusMemoMatch != null
            && costSharCommitmentMinusMemoMatch.isPositive()) {

        // Position 2
        // Sponsored_Program_type - according to Whit - this does not need to be sent

        // Position 10
        sponsoredProgramStructure.setZZORDCAT("CS1");

        // Position 14
        sponsoredProgramStructure.setZZOFFCAMPUS("Y");

        // Position 21
        sponsoredProgramStructure.setKCRMSTATUS(award.getStatusCode().toString());

        sponsoredProgramStructure.setBUDGETTDC(costSharCommitmentMinusMemoMatch.bigDecimalValue()); // getTotalDirectCost()

        // BU Customization ID: N/A mkousheh 20120731 - Remove the work around as SAP team fixed the issue on their side
        /*
        // Temporary fix for Cost Sharing.  When we send an update for a Cost Sharing Sponsored Program the Budget_TDC and Budget_FA should default to 0.00
        AwardTransmission lastTransmission = getLatestAwardTransmission(hierarchy.getRoot().getAward(), true);
        if (lastTransmission != null) {
        AwardTransmissionChild lastChildTransmission = findMatchingTransmissionChild(lastTransmission.getTransmissionChildren(), award.getAwardNumber());
        if (isCostSharing(award) && helper.getLastTransmissionDate() != null) {
            sponsoredProgramStructure.setBUDGETTDC(ScaleTwoDecimal.ZERO.bigDecimalValue());
            sponsoredProgramStructure.setBUDGETFA(ScaleTwoDecimal.ZERO.bigDecimalValue());
                
        }
        }
        // end temporary fix
                
         */

        // BU Customization ID: N/A mkousheh 20120808 - Set 000.00 for overhead rate when cost sharing
        sponsoredProgramStructure.setOVERHEADKEY("000.00");

        AwardCostShare awardCostShare = getMostRecentAwardCostShare(award);
        if (awardCostShare != null && awardCostShare.getDestination() != null) {
            sponsoredProgramStructure.setSPONSOREDPROG(awardCostShare.getDestination());
        } else {
            sponsoredProgramStructure.setSPONSOREDPROG(award.getAwardNumber());
        }

    }

    return sponsoredProgramStructure;
}

From source file:edu.ku.kuali.kra.award.sapintegration.SapIntegrationServiceImpl.java

/**
 * Implements section 1.7.4, 1.7.5, and 1.7.6 of the functional
 * specification./*from  w w  w.  j av  a  2  s.  c o m*/
 *
 * @param award
 *            the award for which to generate a sponsored program
 * @param costSharing
 *            indicates if this is a cost sharing program or not, if true
 *            then this method produces a sponsored program structure which
 *            compiles with specification section 1.7.4, if false then it
 *            will generate one which complies with specification section
 *            1.7.5
 * @param parentAward
 *            true if the given award is a parent award, false otherwise
 * @return
 */
protected ZGMSPPROGRAMSTRUCTURE constructSponsoredProgram(Award award, boolean costSharing) {

    CustomAwardDataHelper helper = new CustomAwardDataHelper(award);
    AwardBudgetExt abvoe = getLastBudgetVersion(award.getAwardDocument());
    boolean awardBudgetVersionToBePosted = false;
    if (abvoe != null) {
        String budgetStatus = abvoe.getAwardBudgetStatusCode();
        awardBudgetVersionToBePosted = Constants.BUDGET_STATUS_CODE_TO_BE_POSTED.equalsIgnoreCase(budgetStatus);
    }

    ZGMSPPROGRAMSTRUCTURE sponsoredProgramStructure = objectFactory.createZGMSPPROGRAMSTRUCTURE();

    if (helper.getLastTransmissionDate() == null) {
        sponsoredProgramStructure.setSPPROGRAMUPDATE(INTERFACE_NEW);
    } else {
        sponsoredProgramStructure.setSPPROGRAMUPDATE(INTERFACE_UPDATE);
    }

    sponsoredProgramStructure.setSPPROGRAMNUMBER(award.getAccountNumber());

    // Handle data which is shared between 1.7.4 and 1.7.5

    // Position 1
    if (StringUtils.isEmpty(award.getAccountNumber())) {
        sponsoredProgramStructure.setSPONSOREDPROG(award.getAwardNumber());
    } else {
        sponsoredProgramStructure.setSPONSOREDPROG(award.getAccountNumber());
    }

    AwardAmountInfo awardAmountInfo = getAwardAmountInfoService()
            .fetchLastAwardAmountInfoForAwardVersionAndFinalizedTandMDocumentNumber(award);

    // Position 3
    sponsoredProgramStructure.setZZVALIDFROM(dateToString(awardAmountInfo.getCurrentFundEffectiveDate()));

    // Position 4
    sponsoredProgramStructure.setZZVALIDTO(dateToString(awardAmountInfo.getObligationExpirationDate()));

    // Position 6
    sponsoredProgramStructure.setBUSINESSAREA(convertLeadUnitToBusinessArea(award.getLeadUnitNumber(), award));

    // Position 7
    GMSPPROGRAMFMBTTT programFmbtTt = objectFactory.createGMSPPROGRAMFMBTTT();
    GMSPPROGRAMFMBT programFmbt = objectFactory.createGMSPPROGRAMFMBT();
    programFmbtTt.getItem().add(programFmbt);
    sponsoredProgramStructure.setTGMSPPROGRAMFMBT(programFmbtTt);

    programFmbt.setSPONSOREDPROG(award.getAccountNumber());
    programFmbt.setFUNCTIONALAREA(convertActivityTypeToFunctionalArea(award.getActivityTypeCode(), award));

    // Position 8
    // If this is a cost sharing sponsored program then it is sourced from
    // the parent award, but they don't have
    // budgets so the F and A rate would not be able to be calculated.
    // also, parent awards cant have budgets, so check to see if their are
    // children as well
    AwardHierarchy hierarchy = getAwardHierarchyService().loadAwardHierarchy(award.getAwardNumber());
    String overheadKey = "";
    if (!awardBudgetVersionToBePosted) {

        // BU Customization ID: N/A mkousheh 20120504 - Get the latest child
        // that matches that was successful transmitted
        AwardTransmissionChild lastTransmittedChild = getLatestChildAwardTransmitted(
                hierarchy.getRoot().getAward(), award.getAwardNumber(), true);
        if (lastTransmittedChild != null) {
            overheadKey = lastTransmittedChild.getOverheadKey();
        }

        // BU Customization ID: N/A mkousheh 20120504 - Commented out the
        // following code and replaced with the above -
        // BUG (it gets latest transmitted then matches the child, sometimes
        // no matching child in the last transmission
        // AwardTransmission lastTransmission =
        // getLatestAwardTransmission(hierarchy.getRoot().getAward(), true);
        // if (lastTransmission != null) {
        // AwardTransmissionChild lastChildTransmission =
        // findMatchingTransmissionChild(lastTransmission.getTransmissionChildren(),
        // award.getAwardNumber());
        // if (lastChildTransmission != null) {
        // overheadKey = lastChildTransmission.getOverheadKey();
        // }
        // }

        // BU Customization ID: N/A mkousheh N/A - Switching this to use
        // value saved on last transmission child -
        // BigDecimal fAndARate = calculateApplicableFandARate(award);
        // if(fAndARate != null) {
        // sponsoredProgramStructure.setOVERHEADKEY(StringUtils.leftPad(fAndARate.toPlainString(),
        // 6, "0"));
        // }
    } else if (!costSharing && !hierarchy.hasChildren() && awardBudgetVersionToBePosted) {
        BigDecimal fAndARate = calculateApplicableFandARate(award);
        if (fAndARate != null && (((AwardExtension) award.getExtension()).getFederalRateDate() == null
                || "NA".equalsIgnoreCase(((AwardExtension) award.getExtension()).getFederalRateDate()))) {
            overheadKey = StringUtils.leftPad(fAndARate.toPlainString(), 6, "0");
        } else {
            // get the system parameter for these values and lookup the
            // mapping value based on the date
            overheadKey = getParameterService().getSubParameterValueAsString(AwardDocument.class,
                    BUConstants.FEDERAL_RATE_DATE_OVERHEAD_KEY_FIELD_MAPPINGS,
                    ((AwardExtension) award.getExtension()).getFederalRateDate());
            if (fAndARate == null || StringUtils.isBlank(overheadKey)) {
                overheadKey = ("000.00");
            }
        }
    }
    sponsoredProgramStructure.setOVERHEADKEY(overheadKey);
    GlobalVariables.getUserSession().addObject("overheadKey-".concat(award.getAwardNumber()),
            (Object) overheadKey);
    LOG.info("Writing overheadKey to session: " + overheadKey);

    // Position 9
    programFmbt.setFUNDSCENTER(StringUtils.rightPad(award.getLeadUnitNumber(), 10, "0"));

    // Position 11
    sponsoredProgramStructure.setZZREFERENCE(award.getAwardNumber());

    // Position 12
    sponsoredProgramStructure.setZZAWARDNO(award.getSponsorAwardNumber());

    // Position 13
    sponsoredProgramStructure.setZZDOCNO(award.getDocumentFundingId());

    AwardBudgetExt budget = null;
    if (!costSharing) {
        budget = award.getAwardDocument().getBudgetVersionOverview();
        if (budget == null) {
            throw new IllegalArgumentException(
                    "Award with number " + award.getAwardNumber() + " does not have a budget.");
        }
    }

    // BU Customization ID: N/A mkousheh 20110706 - In case of CostSharing
    // check if updated
    boolean costSharesHaveChanged = false;
    if (costSharing) {
        AwardCostShare tmpAwardCostShare = getMostRecentAwardCostShare(award);
        if (tmpAwardCostShare != null
                && ((AwardExtension) award.getExtension()).getLastTransmissionDate() != null
                && tmpAwardCostShare.getUpdateTimestamp() != null && ((AwardExtension) award.getExtension())
                        .getLastTransmissionDate().before(tmpAwardCostShare.getUpdateTimestamp())) {
            costSharesHaveChanged = true;
        }
    }

    // if (!costSharesHaveChanged) {
    // Position 17
    if (awardBudgetVersionToBePosted && budget != null && budget.getTotalDirectCost() != null) {
        sponsoredProgramStructure.setBUDGETTDC(budget.getTotalDirectCost().bigDecimalValue());
    } else {
        sponsoredProgramStructure.setBUDGETTDC(ScaleTwoDecimal.ZERO.bigDecimalValue());
    }

    // Position 18
    if (awardBudgetVersionToBePosted && budget != null && budget.getTotalIndirectCost() != null) {
        sponsoredProgramStructure.setBUDGETFA(budget.getTotalIndirectCost().bigDecimalValue());
    } else {
        sponsoredProgramStructure.setBUDGETFA(ScaleTwoDecimal.ZERO.bigDecimalValue());
    }
    // }

    // BU Customization ID: N/A mkousheh 20110712 - If Parent Award
    // Transaction is NoCostExtention or Administrative Changes Set Budget
    // to zero
    if (hierarchy.getRoot().getAward().getAwardTransactionTypeCode() != null) {
        if (hierarchy.getRoot().getAward().getAwardTransactionTypeCode().equals(10)
                || hierarchy.getRoot().getAward().getAwardTransactionTypeCode().equals(6)) {
            sponsoredProgramStructure.setBUDGETTDC(ScaleTwoDecimal.ZERO.bigDecimalValue());
            sponsoredProgramStructure.setBUDGETFA(ScaleTwoDecimal.ZERO.bigDecimalValue());
        }
    }

    // Position 19
    boolean fringeNotAllowed = helper.isFringeNotAllowed();
    sponsoredProgramStructure
            .setFRINGECODE(FringeCodeMapping.mapToSapFringeCode(fringeNotAllowed, award.getAccountTypeCode()));

    /**
     * Data which is only part of 1.7.4
     */
    if (!costSharing && !hierarchy.hasChildren()) {

        // Position 10
        sponsoredProgramStructure.setZZORDCAT(convertChildType(helper.getChildType(), award));

        // Position 14
        String offCampus = null;
        if (!awardBudgetVersionToBePosted) {

            // BU Customization ID: N/A mkousheh 20120504 - Get the latest
            // child that matches that was successful transmitted
            // AwardTransmission lastTransmission =
            // getLatestAwardTransmission(hierarchy.getRoot().getAward(),
            // true);
            // if (lastTransmission != null) {
            // AwardTransmissionChild lastChildTransmission =
            // findMatchingTransmissionChild(lastTransmission.getTransmissionChildren(),
            // award.getAwardNumber());
            // if (lastChildTransmission != null) {
            // offCampus = lastChildTransmission.getOffCampus();
            // }
            // }
            AwardTransmissionChild lastTransmittedChild = getLatestChildAwardTransmitted(
                    hierarchy.getRoot().getAward(), award.getAwardNumber(), true);
            if (lastTransmittedChild != null) {
                offCampus = lastTransmittedChild.getOffCampus();
            }

        } else if (budget != null) {
            offCampus = budget.getOnOffCampusFlag();
        }
        sponsoredProgramStructure.setZZOFFCAMPUS(offCampus);
        GlobalVariables.getUserSession().addObject("offCampus-".concat(award.getAwardNumber()),
                (Object) offCampus);
        LOG.info("Writing offCampus to session: " + offCampus);

        // Position 16
        String baseCode = null;
        if (!awardBudgetVersionToBePosted) {

            // BU Customization ID: N/A mkousheh 20120504 - Get the latest
            // child that matches that was successful transmitted
            // AwardTransmission lastTransmission =
            // getLatestAwardTransmission(hierarchy.getRoot().getAward(),
            // true);
            // if (lastTransmission != null) {
            // AwardTransmissionChild lastChildTransmission =
            // findMatchingTransmissionChild(lastTransmission.getTransmissionChildren(),
            // award.getAwardNumber());
            // if (lastChildTransmission != null) {
            // baseCode = lastChildTransmission.getBaseCode();
            // }
            // }

            AwardTransmissionChild lastTransmittedChild = getLatestChildAwardTransmitted(
                    hierarchy.getRoot().getAward(), award.getAwardNumber(), true);
            if (lastTransmittedChild != null) {
                baseCode = lastTransmittedChild.getBaseCode();
            }

        } else if (budget != null) { // AAP removed per whit - &&
                                     // awardBudgetVersionToBePosted
            baseCode = budget.getOhRateClassCode();
        }
        sponsoredProgramStructure.setBASECODE(baseCode);
        GlobalVariables.getUserSession().addObject("baseCode-".concat(award.getAwardNumber()),
                (Object) baseCode);
        LOG.info("Writing baseCode to session: " + baseCode);

        // Position 20
        sponsoredProgramStructure.setDESCRIPTION(helper.getChildDescription());

        // Position 21
        // BU Customization ID: N/A mkousheh 20110816 - SUBRecipient no
        // longer needed
        // ZFIGMSUBRECIPIENTTAB awardApprovedSubawards =
        // objectFactory.createZFIGMSUBRECIPIENTTAB();
        // sponsoredProgramStructure.setTSUBRECIPIENT(awardApprovedSubawards);
        // List<AwardApprovedSubaward> subawards =
        // award.getAwardApprovedSubawards();
        // for (AwardApprovedSubaward subaward : subawards) {
        // GMSUBRECIPIENT awardApprovedSubaward =
        // objectFactory.createGMSUBRECIPIENT();
        // awardApprovedSubawards.getItem().add(awardApprovedSubaward);
        // awardApprovedSubaward.setSUBRECIPIENT(subaward.getOrganizationId());
        // awardApprovedSubaward.setSUBNAME(subaward.getOrganizationName());
        // awardApprovedSubaward.setSUBAMOUNT(subaward.getAmount().bigDecimalValue());
        // }

        // AwardApprovedSubaward awardApprovedSubaward =
        // getMostRecentAwardApprovedSubaward(award);
        // if (awardApprovedSubaward != null) {
        // ZGMSUBRECIPIENT subRecipent = new ZGMSUBRECIPIENT();
        // subRecipent.setSUBRECIPIENT(awardApprovedSubaward.getOrganizationId());
        // subRecipent.setSUBNAME(awardApprovedSubaward.getOrganizationName());
        // subRecipent.setSUBAMOUNT(awardApprovedSubaward.getAmount().bigDecimalValue());
        // sponsoredProgramStructure.setZZSUBRECIPIENT(subRecipent);
        // sponsoredProgramStructure.setZZSUBRECIPIENT(awardApprovedSubaward.getOrganizationId());
        // }

        // Position 22
        sponsoredProgramStructure.setKCRMSTATUS(StringUtils.leftPad(award.getStatusCode().toString(), 2, "0"));

        // Position 23
        sponsoredProgramStructure.setSPONSOR(award.getSponsorCode());

        // Position 24
        sponsoredProgramStructure.setPRIMESPONSOR(award.getPrimeSponsorCode());

        /**
         * Specification section 1.7.6
         */

        ZFIGMSPRESPONSIBLETABKCRM sponsoredProgramPersons = objectFactory.createZFIGMSPRESPONSIBLETABKCRM();
        sponsoredProgramStructure.setTRESPONSIBLE(sponsoredProgramPersons);
        List<AwardPerson> persons = award.getProjectPersons();
        for (AwardPerson person : persons) {
            ZGMSPRESPONSIBLEKCRM sponsoredProgramPerson = objectFactory.createZGMSPRESPONSIBLEKCRM();
            sponsoredProgramPersons.getItem().add(sponsoredProgramPerson);
            sponsoredProgramPerson.setSPONSOREDPROG(award.getAccountNumber());
            sponsoredProgramPerson.setOBJECTID(person.getPersonId());
            sponsoredProgramPerson.setOBJECTNAME(person.getFullName());

            // BUKC-0062: SAP Interface - Handle multiple PIs for NIH awards
            // when transmit to SAP
            if (person.isMultiplePi()) {
                sponsoredProgramPerson.setRESPONSIBILITY("PI");
            } else {
                sponsoredProgramPerson.setRESPONSIBILITY(
                        convertProjectRoleToResponsibility(person.getContactRoleCode(), award));

            }
        }

        // BU Customization ID: N/A mkousheh 20110828 - Add DAs to
        // SponsoredPrograms
        for (AwardUnitContact awardContact : award.getAwardUnitContacts()) {
            if ("2".equals(awardContact.getUnitAdministratorTypeCode())) {
                ZGMSPRESPONSIBLEKCRM sponsoredProgramPerson = objectFactory.createZGMSPRESPONSIBLEKCRM();
                sponsoredProgramPersons.getItem().add(sponsoredProgramPerson);
                sponsoredProgramPerson.setOBJECTID(awardContact.getPersonId());
                sponsoredProgramPerson.setOBJECTNAME(awardContact.getFullName());
                sponsoredProgramPerson.setRESPONSIBILITY("DA");
            }
            if ("6".equals(awardContact.getUnitAdministratorTypeCode())) {
                ZGMSPRESPONSIBLEKCRM sponsoredProgramPerson = objectFactory.createZGMSPRESPONSIBLEKCRM();
                sponsoredProgramPersons.getItem().add(sponsoredProgramPerson);
                sponsoredProgramPerson.setOBJECTID(awardContact.getPersonId());
                sponsoredProgramPerson.setOBJECTNAME(awardContact.getPerson().getFullName());
                sponsoredProgramPerson.setRESPONSIBILITY("OAV");
            }

            // BUKC-0140: Add new Admin Type (Clinical Trial Admin)
            if ("8".equals(awardContact.getUnitAdministratorTypeCode())) {
                ZGMSPRESPONSIBLEKCRM sponsoredProgramPerson = objectFactory.createZGMSPRESPONSIBLEKCRM();
                sponsoredProgramPersons.getItem().add(sponsoredProgramPerson);
                sponsoredProgramPerson.setOBJECTID(awardContact.getPersonId());
                sponsoredProgramPerson.setOBJECTNAME(awardContact.getPerson().getFullName());
                sponsoredProgramPerson.setRESPONSIBILITY("CTAD");
            }
        }
    }

    /**
     * Data which is only part of 1.7.5
     */
    ScaleTwoDecimal costSharCommitmentMinusMemoMatch = getTotalCostShareCommitmentAmountMinusMemoMatch(award);

    if (costSharing && costSharCommitmentMinusMemoMatch != null
            && costSharCommitmentMinusMemoMatch.isPositive()) {

        // Position 2
        // Sponsored_Program_type - according to Whit - this does not need
        // to be sent

        // Position 10
        sponsoredProgramStructure.setZZORDCAT("CS1");

        // Position 14
        sponsoredProgramStructure.setZZOFFCAMPUS("Y");

        // Position 21
        sponsoredProgramStructure.setKCRMSTATUS(award.getStatusCode().toString());

        sponsoredProgramStructure.setBUDGETTDC(costSharCommitmentMinusMemoMatch.bigDecimalValue()); // getTotalDirectCost()

        // BU Customization ID: N/A mkousheh 20120731 - Remove the work
        // around as SAP team fixed the issue on their side
        /*
         * // Temporary fix for Cost Sharing. When we send an update for a
         * Cost Sharing Sponsored Program the Budget_TDC and Budget_FA
         * should default to 0.00 AwardTransmission lastTransmission =
         * getLatestAwardTransmission(hierarchy.getRoot().getAward(), true);
         * if (lastTransmission != null) { AwardTransmissionChild
         * lastChildTransmission =
         * findMatchingTransmissionChild(lastTransmission
         * .getTransmissionChildren(), award.getAwardNumber()); if
         * (isCostSharing(award) && helper.getLastTransmissionDate() !=
         * null) { sponsoredProgramStructure.setBUDGETTDC(KualiDecimal.ZERO.
         * bigDecimalValue());
         * sponsoredProgramStructure.setBUDGETFA(KualiDecimal
         * .ZERO.bigDecimalValue());
         * 
         * } } // end temporary fix
         */

        // BU Customization ID: N/A mkousheh 20120808 - Set 000.00 for
        // overhead rate when cost sharing
        sponsoredProgramStructure.setOVERHEADKEY("000.00");

        AwardCostShare awardCostShare = getMostRecentAwardCostShare(award);
        if (awardCostShare != null && awardCostShare.getDestination() != null) {
            sponsoredProgramStructure.setSPONSOREDPROG(awardCostShare.getDestination());
        } else {
            sponsoredProgramStructure.setSPONSOREDPROG(award.getAwardNumber());
        }

    }

    return sponsoredProgramStructure;
}

From source file:ninja.text.TextImpl.java

@Override
public Text rightPad(int width, String padStr) {
    return Text.of(StringUtils.rightPad(data.toString(), width, padStr));
}

From source file:nl.strohalm.cyclos.services.tokens.TokenServiceImpl.java

private String randomNumber(int length) {
    return StringUtils.rightPad("" + (long) (Math.random() * Math.pow(10, length + 1)), length + 1, "0")
            .substring(1, length + 1);/*w ww  . j  a  v a2s. c  o m*/
}

From source file:nl.strohalm.cyclos.utils.logging.LoggingHandlerImpl.java

/**
 * Builds an action string, appending parameters if detailed logging is enabled
 *//*from  ww w  .  ja v a2s  . c  o  m*/
private String buildActionString(final TraceLogDTO params, final boolean logParameters) {
    final String remoteAddress = params.getRemoteAddress();
    final User user = params.getUser();
    final String requestMethod = params.getRequestMethod();
    final String sessionId = params.getSessionId();
    final String path = params.getPath();
    final Map<String, String[]> parameters = params.getParameters();

    final StringBuilder sb = new StringBuilder();
    appendValue(sb, remoteAddress);
    sb.append(SEPARATOR);
    appendValue(sb, sessionId);
    sb.append(SEPARATOR);
    sb.append(user == null ? "<unknown user>" : user.getUsername()).append(SEPARATOR);
    sb.append(StringUtils.rightPad(requestMethod == null ? "" : requestMethod, 6, ' ')).append(SEPARATOR);
    if (path != null) {
        sb.append(path);
        if (logParameters) {
            // Append the arguments
            sb.append(SEPARATOR);
            boolean first = true;
            for (Map.Entry<String, String[]> entry : parameters.entrySet()) {
                String name = entry.getKey();
                if (first) {
                    first = false;
                } else {
                    sb.append(", ");
                }
                String[] value = entry.getValue();
                if (ArrayUtils.isEmpty(value)) {
                    // Nothing to log
                    continue;
                }
                sb.append(name).append('=');

                if (FormatObject.shouldMask(name)) {
                    sb.append(FormatObject.MASKED_VALUE);
                } else {
                    if (value.length == 1) {
                        appendValue(sb, value[0]);
                    } else {
                        sb.append('[');
                        for (int i = 0; i < value.length; i++) {
                            if (i > 0) {
                                sb.append(',');
                            }
                            appendValue(sb, value[i]);
                        }
                        sb.append(']');
                    }
                }
            }
        }
    }
    return sb.toString();
}

From source file:nz.co.senanque.schemaparser.restrictions.Length.java

public List<CandidateValue> getCandidateValues() {
    if (candidateValues.isEmpty()) {
        candidateValues.add(new CandidateValue(StringUtils.rightPad("", length - 1, '.'), false, this));
        candidateValues.add(new CandidateValue(StringUtils.rightPad("", length + 1, '.'), false, this));
        candidateValues.add(new CandidateValue(StringUtils.rightPad("", length, '.'), true, this));
    }//from ww w .ja  va2s. c  om
    return candidateValues;
}

From source file:nz.co.senanque.schemaparser.restrictions.MaxLength.java

public List<CandidateValue> getCandidateValues() {
    if (candidateValues.isEmpty()) {
        candidateValues.add(new CandidateValue(StringUtils.rightPad("", length + 1, '.'), false, this));
        candidateValues.add(new CandidateValue(StringUtils.rightPad("", length, '.'), true, this));
    }//from  w w  w  . j av a 2s .  c o m
    return candidateValues;
}

From source file:nz.co.senanque.schemaparser.restrictions.MinLength.java

public List<CandidateValue> getCandidateValues() {
    if (candidateValues.isEmpty()) {
        candidateValues.add(new CandidateValue(StringUtils.rightPad("", value - 1, '.'), false, this));
        candidateValues.add(new CandidateValue(StringUtils.rightPad("", value, '.'), true, this));
    }/*from   w  w  w.j  a v  a 2s  .  c o  m*/
    return candidateValues;
}