/*
* The Kuali Financial System, a comprehensive financial management system for higher education.
*
* Copyright 2005-2014 The Kuali Foundation
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.kuali.kfs.module.ar.service.impl;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
import org.kuali.kfs.module.ar.businessobject.Bill;
import org.kuali.kfs.module.ar.businessobject.CustomerAddress;
import org.kuali.kfs.module.ar.businessobject.Milestone;
import org.kuali.kfs.module.ar.service.ContractsGrantsBillingUtilityService;
import org.kuali.kfs.sys.KFSConstants;
import org.kuali.kfs.sys.KFSPropertyConstants;
import org.kuali.rice.core.api.util.type.KualiDecimal;
import org.kuali.rice.core.web.format.CurrencyFormatter;
import org.kuali.rice.krad.service.BusinessObjectService;
import org.kuali.rice.krad.util.ObjectUtils;
/**
* Contains Utility methods used by CGB.
*/
public class ContractsGrantsBillingUtilityServiceImpl implements ContractsGrantsBillingUtilityService {
protected BusinessObjectService businessObjectService;
/**
* @see org.kuali.kfs.module.ar.service.ContractsGrantsBillingUtilityService#returnProperStringValue(java.lang.Object)
*/
@Override
public String formatForCurrency(KualiDecimal amount) {
if (!ObjectUtils.isNull(amount)) {
Map<String, String> settings = new HashMap<>();
settings.put(CurrencyFormatter.SHOW_SYMBOL, KFSConstants.Booleans.TRUE);
CurrencyFormatter currencyFormatter = new CurrencyFormatter();
currencyFormatter.setSettings(settings);
String formattedAmount = (String)currencyFormatter.format(amount);
return formattedAmount;
}
return "";
}
/**
* @see org.kuali.kfs.module.ar.service.ContractsGrantsBillingUtilityService#buildFullAddress(org.kuali.kfs.module.ar.businessobject.CustomerAddress)
*/
@Override
public String buildFullAddress(CustomerAddress address) {
String fullAddress = "";
if (ObjectUtils.isNotNull(address)) {
if (StringUtils.isNotEmpty(address.getCustomerLine1StreetAddress())) {
fullAddress += address.getCustomerLine1StreetAddress() + "\n";
}
if (StringUtils.isNotEmpty(address.getCustomerLine2StreetAddress())) {
fullAddress += address.getCustomerLine2StreetAddress() + "\n";
}
if (StringUtils.isNotEmpty(address.getCustomerCityName())) {
fullAddress += address.getCustomerCityName();
}
if (StringUtils.isNotEmpty(address.getCustomerStateCode())) {
fullAddress += " " + address.getCustomerStateCode();
}
if (StringUtils.isNotEmpty(address.getCustomerZipCode())) {
fullAddress += "-" + address.getCustomerZipCode();
}
}
return fullAddress;
}
/**
* @see org.kuali.kfs.module.ar.service.ContractsGrantsBillingUtilityService#putValueOrEmptyString(java.util.Map, java.lang.String, java.lang.String)
*/
@Override
public void putValueOrEmptyString(Map<String, String> map, String key, String value) {
map.put(key, (ObjectUtils.isNull(value) ? KFSConstants.EMPTY_STRING : value));
}
/**
* @see org.kuali.kfs.module.ar.service.ContractsGrantsBillingUtilityService#getActiveBillsForProposalNumber(java.lang.Long)
*/
@Override
public List<Bill> getActiveBillsForProposalNumber(Long proposalNumber) {
if (proposalNumber == null) {
throw new IllegalArgumentException("proposalNumber may not be null");
}
Map<String, Object> map = new HashMap<>();
map.put(KFSPropertyConstants.PROPOSAL_NUMBER, proposalNumber);
map.put(KFSPropertyConstants.ACTIVE, true);
final List<Bill> bills = (List<Bill>) businessObjectService.findMatching(Bill.class, map);
return bills;
}
/**
* @see org.kuali.kfs.module.ar.service.ContractsGrantsBillingUtilityService#getActiveMilestonesForProposalNumber(java.lang.Long)
*/
@Override
public List<Milestone> getActiveMilestonesForProposalNumber(Long proposalNumber) {
if (proposalNumber == null) {
throw new IllegalArgumentException("proposalNumber may not be null");
}
Map<String, Object> map = new HashMap<>();
map.put(KFSPropertyConstants.PROPOSAL_NUMBER, proposalNumber);
map.put(KFSPropertyConstants.ACTIVE, true);
final List<Milestone> milestones = (List<Milestone>)(businessObjectService.findMatching(Milestone.class, map));
return milestones;
}
public BusinessObjectService getBusinessObjectService() {
return businessObjectService;
}
public void setBusinessObjectService(BusinessObjectService businessObjectService) {
this.businessObjectService = businessObjectService;
}
}