/**
   * @see
   *     org.kuali.kfs.sys.batch.service.PaymentSourceToExtractService#retrievePaymentSourcesByCampus(boolean)
   */
  @Override
  public Map<String, List<TEMReimbursementDocument>> retrievePaymentSourcesByCampus(
      boolean immediatesOnly) {
    if (LOG.isDebugEnabled()) {
      LOG.debug("retrievePaymentSourcesByCampus() started");
    }

    final boolean disburseCorporateCardPayments =
        getParameterService()
            .getParameterValueAsBoolean(
                TemParameterConstants.TEM_DOCUMENT.class,
                TemConstants.TravelParameters.CORPORATE_CARD_PAYMENT_IND);
    if (!disburseCorporateCardPayments) {
      return new HashMap<
          String, List<TEMReimbursementDocument>>(); // can't disburse payments? then don't find any
      // documents to disburse
    }

    Map<String, List<TEMReimbursementDocument>> documentsByCampus =
        new HashMap<String, List<TEMReimbursementDocument>>();
    final List<TEMReimbursementDocument> reimbursables =
        retrieveAllCorporateCardDocuments(immediatesOnly);
    Map<String, String> initiatorCampuses = new HashMap<String, String>();
    for (TEMReimbursementDocument document : reimbursables) {
      if (document.isCorporateCardPayable() && shouldExtractPayment(document)) {
        final String campusCode =
            getTravelPaymentsHelperService().findCampusForDocument(document, initiatorCampuses);
        if (!StringUtils.isBlank(campusCode)) {
          List<TEMReimbursementDocument> documentsForCampus = documentsByCampus.get(campusCode);
          if (documentsForCampus == null) {
            documentsForCampus = new ArrayList<TEMReimbursementDocument>();
            documentsByCampus.put(campusCode, documentsForCampus);
          }
          documentsForCampus.add(document);
        }
      }
    }
    return documentsByCampus;
  }