Search in sources :

Example 6 with KualiInteger

use of org.kuali.rice.core.api.util.type.KualiInteger in project cu-kfs by CU-CommunityApps.

the class PaymentSourceExtractionServiceImpl method extractPaymentsForCampus.

/**
 * This method extracts all outstanding payments from all the disbursement vouchers in approved status for a given campus and
 * adds these payments to a batch file that is uploaded for processing.
 *
 * @param campusCode The id code of the campus the payments will be retrieved for.
 * @param user The user object used when creating the batch file to upload with outstanding payments.
 * @param processRunDate This is the date that the batch file is created, often this value will be today's date.
 */
protected void extractPaymentsForCampus(String campusCode, String principalId, Date processRunDate, List<? extends PaymentSource> documents) {
    if (LOG.isDebugEnabled()) {
        LOG.debug("extractPaymentsForCampus() started for campus: " + campusCode);
    }
    Batch batch = createBatch(campusCode, principalId, processRunDate);
    Integer count = 0;
    KualiDecimal totalAmount = KualiDecimal.ZERO;
    for (PaymentSource document : documents) {
        if (getPaymentSourceToExtractService().shouldExtractPayment(document)) {
            addPayment(document, batch, processRunDate, false);
            count++;
            totalAmount = totalAmount.add(getPaymentSourceToExtractService().getPaymentAmount(document));
        }
    }
    batch.setPaymentCount(new KualiInteger(count));
    batch.setPaymentTotalAmount(totalAmount);
    businessObjectService.save(batch);
    paymentFileEmailService.sendLoadEmail(batch);
}
Also used : KualiInteger(org.kuali.rice.core.api.util.type.KualiInteger) Batch(org.kuali.kfs.pdp.businessobject.Batch) KualiInteger(org.kuali.rice.core.api.util.type.KualiInteger) KualiDecimal(org.kuali.rice.core.api.util.type.KualiDecimal) PaymentSource(org.kuali.kfs.sys.document.PaymentSource)

Example 7 with KualiInteger

use of org.kuali.rice.core.api.util.type.KualiInteger in project cu-kfs by CU-CommunityApps.

the class AchBundlerFormatServiceImpl method assignDisbursementNumbersAndBundle.

/**
 * MOD: This method assigns disbursement numbers and tries to combine payment groups with disbursement type check and ACH if possible.
 *
 * @param paymentProcess
 * @param postFormatProcessSummary
 */
protected boolean assignDisbursementNumbersAndBundle(PaymentProcess paymentProcess, FormatProcessSummary postFormatProcessSummary) {
    boolean successful = true;
    // keep a map with paymentGroupKey and PaymentInfo (disbursementNumber, noteLines)
    Map<String, PaymentInfo> combinedPaymentGroupMap = new HashMap<String, PaymentInfo>();
    Iterator<PaymentGroup> paymentGroupIterator = SpringContext.getBean(PaymentGroupService.class).getByProcess(paymentProcess);
    int maxNoteLines = getMaxNoteLines();
    while (paymentGroupIterator.hasNext()) {
        PaymentGroup paymentGroup = paymentGroupIterator.next();
        LOG.debug("performFormat() Payment Group ID " + paymentGroup.getId());
        // Use the customer's profile's campus code to check for disbursement ranges
        String campus = paymentGroup.getBatch().getCustomerProfile().getDefaultPhysicalCampusProcessingCode();
        // Where should this come from?
        List<DisbursementNumberRange> disbursementRanges = paymentDetailDao.getDisbursementNumberRanges(campus);
        DisbursementNumberRange range = getRange(disbursementRanges, paymentGroup.getBank(), paymentGroup.getDisbursementType().getCode());
        if (range == null) {
            GlobalVariables.getMessageMap().putError(KFSConstants.GLOBAL_ERRORS, PdpKeyConstants.Format.ErrorMessages.ERROR_FORMAT_DISBURSEMENT_MISSING, campus, paymentGroup.getBank().getBankCode(), paymentGroup.getDisbursementType().getCode());
            successful = false;
            return successful;
        }
        if (PdpConstants.DisbursementTypeCodes.CHECK.equals(paymentGroup.getDisbursementType().getCode()) || PdpConstants.DisbursementTypeCodes.ACH.equals(paymentGroup.getDisbursementType().getCode())) {
            if (paymentGroup.getPymtAttachment().booleanValue() || paymentGroup.getProcessImmediate().booleanValue() || paymentGroup.getPymtSpecialHandling().booleanValue() || (!paymentGroup.getCombineGroups())) {
                assignDisbursementNumber(campus, range, paymentGroup, postFormatProcessSummary);
            } else {
                String paymentGroupKey = paymentGroup.toStringKey();
                // check if there was another paymentGroup we can combine with
                if (combinedPaymentGroupMap.containsKey(paymentGroupKey)) {
                    PaymentInfo paymentInfo = combinedPaymentGroupMap.get(paymentGroupKey);
                    paymentInfo.noteLines = paymentInfo.noteLines.add(new KualiInteger(paymentGroup.getNoteLines()));
                    // if CHECK and noteLines don't excede the maximum assign the same disbursementNumber
                    if (PdpConstants.DisbursementTypeCodes.ACH.equals(paymentGroup.getDisbursementType().getCode()) || (PdpConstants.DisbursementTypeCodes.CHECK.equals(paymentGroup.getDisbursementType().getCode()) && paymentInfo.noteLines.intValue() <= maxNoteLines)) {
                        paymentGroup.setDisbursementNbr(paymentInfo.disbursementNumber);
                        // update payment info for new noteLines value
                        combinedPaymentGroupMap.put(paymentGroupKey, paymentInfo);
                    } else // if noteLines more than maxNoteLines we remove the old entry and get a new disbursement number
                    if (PdpConstants.DisbursementTypeCodes.CHECK.equals(paymentGroup.getDisbursementType().getCode()) && paymentInfo.noteLines.intValue() > maxNoteLines) {
                        // remove old entry for this paymentGroupKey
                        combinedPaymentGroupMap.remove(paymentGroupKey);
                        // get a new check number and the paymentGroup noteLines
                        KualiInteger checkNumber = assignDisbursementNumber(campus, range, paymentGroup, postFormatProcessSummary);
                        int noteLines = paymentGroup.getNoteLines();
                        // create new payment info with these two
                        paymentInfo = new PaymentInfo(checkNumber, new KualiInteger(noteLines));
                        // add new entry in the map for this paymentGroupKey
                        combinedPaymentGroupMap.put(paymentGroupKey, paymentInfo);
                    } else {
                        // if it isn't check or ach, we're in trouble
                        LOG.error("assignDisbursementNumbersAndBundle() Payment group " + paymentGroup.getId() + " must be CHCK or ACH.  It is: " + paymentGroup.getDisbursementType());
                        throw new IllegalArgumentException("Payment group " + paymentGroup.getId() + " must be Check or ACH");
                    }
                } else // if no entry in the map for this payment group we create a new one
                {
                    // get a new disbursement number and the paymentGroup noteLines
                    KualiInteger disbursementNumber = assignDisbursementNumber(campus, range, paymentGroup, postFormatProcessSummary);
                    int noteLines = paymentGroup.getNoteLines();
                    // create new payment info with these two
                    PaymentInfo paymentInfo = new PaymentInfo(disbursementNumber, new KualiInteger(noteLines));
                    // add new entry in the map for this paymentGroupKey
                    combinedPaymentGroupMap.put(paymentGroupKey, paymentInfo);
                }
            }
        } else {
            // if it isn't check or ach, we're in trouble
            LOG.error("assignDisbursementNumbers() Payment group " + paymentGroup.getId() + " must be CHCK or ACH.  It is: " + paymentGroup.getDisbursementType());
            throw new IllegalArgumentException("Payment group " + paymentGroup.getId() + " must be Check or ACH");
        }
        businessObjectService.save(paymentGroup);
        // Generate a GL entry for CHCK & ACH
        SpringContext.getBean(PendingTransactionService.class).generatePaymentGeneralLedgerPendingEntry(paymentGroup);
        // Update all the ranges
        LOG.debug("assignDisbursementNumbers() Save ranges");
        for (DisbursementNumberRange element : disbursementRanges) {
            businessObjectService.save(element);
        }
    }
    return successful;
}
Also used : PaymentGroup(org.kuali.kfs.pdp.businessobject.PaymentGroup) PendingTransactionService(org.kuali.kfs.pdp.service.PendingTransactionService) HashMap(java.util.HashMap) KualiInteger(org.kuali.rice.core.api.util.type.KualiInteger) DisbursementNumberRange(org.kuali.kfs.pdp.businessobject.DisbursementNumberRange) PaymentGroupService(org.kuali.kfs.pdp.service.PaymentGroupService)

Example 8 with KualiInteger

use of org.kuali.rice.core.api.util.type.KualiInteger in project cu-kfs by CU-CommunityApps.

the class CheckReconciliationImportStep method setCheckReconciliationAttributes.

/**
 * Set CheckReconciliation Attributes
 *
 * @param hash
 * @return
 * @throws ParseException
 */
private CheckReconciliation setCheckReconciliationAttributes(Map<Integer, String> hash) throws ParseException {
    String checkNumber = null;
    Date checkDate = null;
    KualiDecimal amount = null;
    String accountNumber = null;
    String status = null;
    Date issueDate = null;
    String payeeName = "";
    String payeeID = "";
    // Cornell Columns
    Integer payeeNameCol = Integer.parseInt("12");
    Integer issueDateCol = Integer.parseInt("7");
    Integer payeeIDCol = Integer.parseInt("6");
    checkNumber = hash.get(checkNumCol);
    String rawCheckDate = hash.get(checkDateCol);
    if (rawCheckDate == null || rawCheckDate.equals("") || rawCheckDate.equals("000000"))
        rawCheckDate = "991231";
    checkDate = getGregorianCalendar(rawCheckDate).getTime();
    // checkDate     = dateformat.parse(rawCheckDate);  //Date Paid
    amount = isAmountDecimalValue ? new KualiDecimal(addDecimalPoint(hash.get(amountCol))) : new KualiDecimal(hash.get(amountCol));
    if (accountNumCol > 0)
        accountNumber = isAccountNumHeaderValue ? getHeaderValue(accountNumCol) : hash.get(accountNumCol);
    else
        accountNumber = getParameterService().getParameterValueAsString(CheckReconciliationImportStep.class, CRConstants.ACCOUNT_NUM);
    status = hash.get(statusCol);
    String issueDateRawValue = hash.get(issueDateCol);
    payeeName = hash.get(payeeNameCol);
    payeeID = hash.get(payeeIDCol);
    if (issueDateRawValue == null || issueDateRawValue.equals("") || issueDateRawValue.equals("000000"))
        issueDateRawValue = "991231";
    // issueDate = dateformat.parse(issueDateRawValue);
    issueDate = getGregorianCalendar(issueDateRawValue).getTime();
    CheckReconciliation cr = new CheckReconciliation();
    cr.setAmount(amount);
    cr.setCheckDate(new java.sql.Date(issueDate.getTime()));
    cr.setCheckNumber(new KualiInteger(checkNumber));
    cr.setBankAccountNumber(accountNumber);
    cr.setStatus(status);
    cr.setStatusChangeDate(new java.sql.Date(checkDate.getTime()));
    cr.setGlTransIndicator(false);
    cr.setPayeeName(payeeName);
    cr.setPayeeId(payeeID);
    return cr;
}
Also used : KualiInteger(org.kuali.rice.core.api.util.type.KualiInteger) KualiInteger(org.kuali.rice.core.api.util.type.KualiInteger) KualiDecimal(org.kuali.rice.core.api.util.type.KualiDecimal) CheckReconciliation(com.rsmart.kuali.kfs.cr.businessobject.CheckReconciliation) Date(java.util.Date)

Example 9 with KualiInteger

use of org.kuali.rice.core.api.util.type.KualiInteger in project cu-kfs by CU-CommunityApps.

the class RecurringDisbursementVoucherPaymentMaintenanceServiceImpl method updatePaymentDetail.

private void updatePaymentDetail(Integer paymentDetailId, String noteText) {
    Map<String, Integer> primaryKeys = new HashMap<String, Integer>();
    primaryKeys.put(PdpPropertyConstants.PaymentDetail.PAYMENT_ID, paymentDetailId);
    PaymentDetail pd = this.businessObjectService.findByPrimaryKey(PaymentDetail.class, primaryKeys);
    if (pd != null) {
        pd.setPrimaryCancelledPayment(Boolean.TRUE);
        PaymentNoteText payNoteText = new PaymentNoteText();
        payNoteText.setCustomerNoteLineNbr(new KualiInteger(pd.getNotes().size() + 1));
        payNoteText.setCustomerNoteText(noteText);
        pd.addNote(payNoteText);
        this.businessObjectService.save(pd);
    } else {
        LOG.error("updatePaymentDetail() Unable to retieve payment detail with an ID of " + paymentDetailId);
    }
}
Also used : KualiInteger(org.kuali.rice.core.api.util.type.KualiInteger) HashMap(java.util.HashMap) PaymentDetail(org.kuali.kfs.pdp.businessobject.PaymentDetail) PaymentNoteText(org.kuali.kfs.pdp.businessobject.PaymentNoteText) KualiInteger(org.kuali.rice.core.api.util.type.KualiInteger)

Example 10 with KualiInteger

use of org.kuali.rice.core.api.util.type.KualiInteger in project cu-kfs by CU-CommunityApps.

the class CuExtractPaymentServiceImpl method writeExtractCheckFile.

@Override
protected void writeExtractCheckFile(PaymentStatus extractedStatus, PaymentProcess p, String filename, Integer processId) {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    Date processDate = dateTimeService.getCurrentDate();
    BufferedWriter os = null;
    BufferedWriter osI = null;
    boolean wroteImmediateHeaderRecords = false;
    boolean wroteCheckHeaderRecords = false;
    String immediateFilename = filename.replace("check", "check_immediate");
    String checkFilename = filename;
    boolean first = true;
    boolean isImmediate = false;
    // customer profile, then change the filename to append the RP-Upload prefix.
    if (isResearchParticipantExtractFile(processId)) {
        String checkFilePrefix = this.kualiConfigurationService.getPropertyValueAsString(PdpKeyConstants.ExtractPayment.CHECK_FILENAME);
        checkFilePrefix = MessageFormat.format(checkFilePrefix, new Object[] { null });
        checkFilePrefix = PdpConstants.RESEARCH_PARTICIPANT_FILE_PREFIX + KFSConstants.DASH + checkFilePrefix;
        filename = getOutputFile(checkFilePrefix, processDate);
    }
    try {
        List<String> notificationEmailAddresses = this.getBankPaymentFileNotificationEmailAddresses();
        writeExtractCheckFileMellonBankFastTrack(extractedStatus, p, filename, processId, notificationEmailAddresses);
        List<String> bankCodes = paymentGroupService.getDistinctBankCodesForProcessAndType(processId, PdpConstants.DisbursementTypeCodes.CHECK);
        for (String bankCode : bankCodes) {
            List<Integer> disbNbrs = paymentGroupService.getDisbursementNumbersByDisbursementTypeAndBankCode(processId, PdpConstants.DisbursementTypeCodes.CHECK, bankCode);
            for (Iterator<Integer> iter = disbNbrs.iterator(); iter.hasNext(); ) {
                Integer disbursementNbr = iter.next();
                first = true;
                KualiDecimal totalNetAmount = new KualiDecimal(0);
                // this seems wasteful, but since the total net amount is needed on the first payment detail...it's needed
                Iterator<PaymentDetail> i2 = paymentDetailService.getByDisbursementNumber(disbursementNbr, processId, PdpConstants.DisbursementTypeCodes.CHECK, bankCode);
                while (i2.hasNext()) {
                    PaymentDetail pd = i2.next();
                    totalNetAmount = totalNetAmount.add(pd.getNetPaymentAmount());
                }
                List<KualiInteger> paymentGroupIdsSaved = new ArrayList<KualiInteger>();
                Iterator<PaymentDetail> paymentDetails = paymentDetailService.getByDisbursementNumber(disbursementNbr, processId, PdpConstants.DisbursementTypeCodes.CHECK, bankCode);
                while (paymentDetails.hasNext()) {
                    PaymentDetail detail = paymentDetails.next();
                    PaymentGroup group = detail.getPaymentGroup();
                    if (!testMode) {
                        if (!paymentGroupIdsSaved.contains(group.getId())) {
                            group.setDisbursementDate(new java.sql.Date(processDate.getTime()));
                            group.setPaymentStatus(extractedStatus);
                            this.businessObjectService.save(group);
                            paymentGroupIdsSaved.add(group.getId());
                        }
                    }
                    isImmediate = group.getProcessImmediate();
                    if (first && !isImmediate) {
                        if (!wroteCheckHeaderRecords) {
                            os = new BufferedWriter(new FileWriter(checkFilename));
                            os.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
                            writeOpenTagAttribute(os, 0, "checks", "processId", processId.toString(), "campusCode", p.getCampusCode());
                            wroteCheckHeaderRecords = true;
                        }
                        writeOpenTagAttribute(os, 2, "check", "disbursementNbr", group.getDisbursementNbr().toString());
                        // Write check level information
                        writeBank(os, 4, group.getBank());
                        writeTag(os, 4, "disbursementDate", sdf.format(processDate));
                        writeTag(os, 4, "netAmount", totalNetAmount.toString());
                        writePayee(os, 4, group);
                        writeTag(os, 4, "campusAddressIndicator", group.getCampusAddress().booleanValue() ? "Y" : "N");
                        writeTag(os, 4, "attachmentIndicator", group.getPymtAttachment().booleanValue() ? "Y" : "N");
                        writeTag(os, 4, "specialHandlingIndicator", group.getPymtSpecialHandling().booleanValue() ? "Y" : "N");
                        writeTag(os, 4, "immediatePaymentIndicator", group.getProcessImmediate().booleanValue() ? "Y" : "N");
                        writeTag(os, 4, "customerUnivNbr", group.getCustomerInstitutionNumber());
                        writeTag(os, 4, "paymentDate", sdf.format(group.getPaymentDate()));
                        // Write customer profile information
                        CustomerProfile cp = group.getBatch().getCustomerProfile();
                        writeCustomerProfile(os, 4, cp);
                        writeOpenTag(os, 4, "payments");
                        first = false;
                    }
                    if (first && isImmediate) {
                        if (!wroteImmediateHeaderRecords) {
                            osI = new BufferedWriter(new FileWriter(immediateFilename));
                            osI.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
                            writeOpenTagAttribute(osI, 0, "checks", "processId", processId.toString(), "campusCode", p.getCampusCode());
                            wroteImmediateHeaderRecords = true;
                        }
                        writeOpenTagAttribute(osI, 2, "check", "disbursementNbr", group.getDisbursementNbr().toString());
                        // Write check level information
                        writeBank(osI, 4, group.getBank());
                        writeTag(osI, 4, "disbursementDate", sdf.format(processDate));
                        writeTag(osI, 4, "netAmount", totalNetAmount.toString());
                        writePayee(osI, 4, group);
                        writeTag(osI, 4, "campusAddressIndicator", group.getCampusAddress().booleanValue() ? "Y" : "N");
                        writeTag(osI, 4, "attachmentIndicator", group.getPymtAttachment().booleanValue() ? "Y" : "N");
                        writeTag(osI, 4, "specialHandlingIndicator", group.getPymtSpecialHandling().booleanValue() ? "Y" : "N");
                        writeTag(osI, 4, "immediatePaymentIndicator", group.getProcessImmediate().booleanValue() ? "Y" : "N");
                        writeTag(osI, 4, "customerUnivNbr", group.getCustomerInstitutionNumber());
                        writeTag(osI, 4, "paymentDate", sdf.format(group.getPaymentDate()));
                        // Write customer profile information
                        CustomerProfile cp = group.getBatch().getCustomerProfile();
                        writeCustomerProfile(osI, 4, cp);
                        writeOpenTag(osI, 4, "payments");
                        first = false;
                    }
                    if (!isImmediate && wroteCheckHeaderRecords) {
                        writeOpenTag(os, 6, "payment");
                        writeTag(os, 8, "purchaseOrderNbr", detail.getPurchaseOrderNbr());
                        writeTag(os, 8, "invoiceNbr", detail.getInvoiceNbr());
                        writeTag(os, 8, "requisitionNbr", detail.getRequisitionNbr());
                        writeTag(os, 8, "custPaymentDocNbr", detail.getCustPaymentDocNbr());
                        writeTag(os, 8, "invoiceDate", sdf.format(detail.getInvoiceDate()));
                        writeTag(os, 8, "origInvoiceAmount", detail.getOrigInvoiceAmount().toString());
                        writeTag(os, 8, "netPaymentAmount", detail.getNetPaymentAmount().toString());
                        writeTag(os, 8, "invTotDiscountAmount", detail.getInvTotDiscountAmount().toString());
                        writeTag(os, 8, "invTotShipAmount", detail.getInvTotShipAmount().toString());
                        writeTag(os, 8, "invTotOtherDebitAmount", detail.getInvTotOtherDebitAmount().toString());
                        writeTag(os, 8, "invTotOtherCreditAmount", detail.getInvTotOtherCreditAmount().toString());
                        writeOpenTag(os, 8, "notes");
                        for (Iterator ix = detail.getNotes().iterator(); ix.hasNext(); ) {
                            PaymentNoteText note = (PaymentNoteText) ix.next();
                            writeTag(os, 10, "note", note.getCustomerNoteText());
                        }
                        writeCloseTag(os, 8, "notes");
                        writeCloseTag(os, 6, "payment");
                    }
                    if (isImmediate && wroteImmediateHeaderRecords) {
                        writeOpenTag(osI, 6, "payment");
                        writeTag(osI, 8, "purchaseOrderNbr", detail.getPurchaseOrderNbr());
                        writeTag(osI, 8, "invoiceNbr", detail.getInvoiceNbr());
                        writeTag(osI, 8, "requisitionNbr", detail.getRequisitionNbr());
                        writeTag(osI, 8, "custPaymentDocNbr", detail.getCustPaymentDocNbr());
                        writeTag(osI, 8, "invoiceDate", sdf.format(detail.getInvoiceDate()));
                        writeTag(osI, 8, "origInvoiceAmount", detail.getOrigInvoiceAmount().toString());
                        writeTag(osI, 8, "netPaymentAmount", detail.getNetPaymentAmount().toString());
                        writeTag(osI, 8, "invTotDiscountAmount", detail.getInvTotDiscountAmount().toString());
                        writeTag(osI, 8, "invTotShipAmount", detail.getInvTotShipAmount().toString());
                        writeTag(osI, 8, "invTotOtherDebitAmount", detail.getInvTotOtherDebitAmount().toString());
                        writeTag(osI, 8, "invTotOtherCreditAmount", detail.getInvTotOtherCreditAmount().toString());
                        writeOpenTag(osI, 8, "notes");
                        for (Iterator ix = detail.getNotes().iterator(); ix.hasNext(); ) {
                            PaymentNoteText note = (PaymentNoteText) ix.next();
                            writeTag(osI, 10, "note", note.getCustomerNoteText());
                        }
                        writeCloseTag(osI, 8, "notes");
                        writeCloseTag(osI, 6, "payment");
                    }
                }
                if (wroteCheckHeaderRecords && !isImmediate) {
                    writeCloseTag(os, 4, "payments");
                    writeCloseTag(os, 2, "check");
                }
                if (wroteImmediateHeaderRecords && isImmediate) {
                    writeCloseTag(osI, 4, "payments");
                    writeCloseTag(osI, 2, "check");
                }
            }
        }
    } catch (IOException ie) {
        LOG.error("extractChecks() Problem reading file:  " + filename, ie);
        throw new IllegalArgumentException("Error writing to output file: " + ie.getMessage());
    } finally {
        // Close file
        if (os != null) {
            try {
                writeCloseTag(os, 0, "checks");
                os.close();
                // An XML file containing these records are NEVER sent to anyone at this time.
                renameFile(checkFilename, checkFilename + ".NOT_USED");
                createDoneFile(checkFilename + ".NOT_USED");
            } catch (IOException ie) {
            // Not much we can do now
            }
        }
        if (osI != null) {
            try {
                writeCloseTag(osI, 0, "checks");
                osI.close();
                // An XML file containing these records are ONLY used for local check printing.
                renameFile(immediateFilename, immediateFilename + ".READY");
                createDoneFile(immediateFilename + ".READY");
            } catch (IOException ie) {
                // Not much we can do now
                LOG.error("IOException encountered in writeExtractCheckFile.  Message is: " + ie.getMessage());
            }
        }
    }
}
Also used : KualiInteger(org.kuali.rice.core.api.util.type.KualiInteger) FileWriter(java.io.FileWriter) ArrayList(java.util.ArrayList) BufferedWriter(java.io.BufferedWriter) PaymentDetail(org.kuali.kfs.pdp.businessobject.PaymentDetail) PaymentNoteText(org.kuali.kfs.pdp.businessobject.PaymentNoteText) Iterator(java.util.Iterator) KualiDecimal(org.kuali.rice.core.api.util.type.KualiDecimal) PaymentGroup(org.kuali.kfs.pdp.businessobject.PaymentGroup) CustomerProfile(org.kuali.kfs.pdp.businessobject.CustomerProfile) IOException(java.io.IOException) Date(java.util.Date) KualiInteger(org.kuali.rice.core.api.util.type.KualiInteger) SimpleDateFormat(java.text.SimpleDateFormat)

Aggregations

KualiInteger (org.kuali.rice.core.api.util.type.KualiInteger)24 ArrayList (java.util.ArrayList)7 PaymentDetail (org.kuali.kfs.pdp.businessobject.PaymentDetail)7 KualiDecimal (org.kuali.rice.core.api.util.type.KualiDecimal)7 Date (java.sql.Date)5 HashMap (java.util.HashMap)5 PaymentNoteText (org.kuali.kfs.pdp.businessobject.PaymentNoteText)5 GlPendingTransaction (org.kuali.kfs.pdp.businessobject.GlPendingTransaction)4 PaymentAccountDetail (org.kuali.kfs.pdp.businessobject.PaymentAccountDetail)4 CheckReconciliation (com.rsmart.kuali.kfs.cr.businessobject.CheckReconciliation)3 Date (java.util.Date)3 AccountingPeriod (org.kuali.kfs.coa.businessobject.AccountingPeriod)3 OffsetDefinition (org.kuali.kfs.coa.businessobject.OffsetDefinition)3 OffsetDefinitionService (org.kuali.kfs.coa.service.OffsetDefinitionService)3 Batch (org.kuali.kfs.pdp.businessobject.Batch)3 CustomerProfile (org.kuali.kfs.pdp.businessobject.CustomerProfile)3 PaymentGroup (org.kuali.kfs.pdp.businessobject.PaymentGroup)3 IOException (java.io.IOException)2 Timestamp (java.sql.Timestamp)2 Iterator (java.util.Iterator)2