Charges API template fixes. Charge currency data extended.

This commit is contained in:
Michal Dudzinski
2012-08-28 15:00:31 +02:00
parent 47fe49da8c
commit 7042ffcd0d
2 changed files with 21 additions and 18 deletions
@@ -23,17 +23,13 @@ public class ChargeData {
private final List<EnumOptionData> chargeTimeTypeOptions; private final List<EnumOptionData> chargeTimeTypeOptions;
public static ChargeData template( public static ChargeData template(
final CurrencyData currency, final List<CurrencyData> currencyOptions,
final EnumOptionData chargeTimeType, final List<EnumOptionData> chargeCalculationTypeOptions,
final EnumOptionData chargeAppliesToType,
final EnumOptionData chargeCalculationType,
final List<CurrencyData> currencyOptions,
final List<EnumOptionData> chargeCalculationTypeOptions,
final List<EnumOptionData> chargeAppliesToOptions, final List<EnumOptionData> chargeAppliesToOptions,
final List<EnumOptionData> chargeTimeTypeOptions) { final List<EnumOptionData> chargeTimeTypeOptions) {
return new ChargeData(null, null, null, currency, chargeTimeType, chargeAppliesToType, chargeCalculationType, false, return new ChargeData(null, null, null, null, null, null, null, false,
currencyOptions, chargeCalculationTypeOptions, chargeAppliesToOptions, chargeTimeTypeOptions); currencyOptions, chargeCalculationTypeOptions, chargeAppliesToOptions, chargeTimeTypeOptions);
} }
public ChargeData(ChargeData charge, ChargeData template){ public ChargeData(ChargeData charge, ChargeData template){
this(charge.getId(), charge.getName(), charge.getAmount(), charge.getCurrency(), charge.getChargeTimeType(), this(charge.getId(), charge.getName(), charge.getAmount(), charge.getCurrency(), charge.getChargeTimeType(),
@@ -8,6 +8,7 @@ import org.mifosng.platform.charge.domain.ChargeCalculationMethod;
import org.mifosng.platform.charge.domain.ChargeTimeType; import org.mifosng.platform.charge.domain.ChargeTimeType;
import org.mifosng.platform.currency.service.CurrencyReadPlatformService; import org.mifosng.platform.currency.service.CurrencyReadPlatformService;
import org.mifosng.platform.exceptions.ChargeNotFoundException; import org.mifosng.platform.exceptions.ChargeNotFoundException;
import org.mifosng.platform.infrastructure.JdbcSupport;
import org.mifosng.platform.infrastructure.TenantAwareRoutingDataSource; import org.mifosng.platform.infrastructure.TenantAwareRoutingDataSource;
import org.mifosng.platform.security.PlatformSecurityContext; import org.mifosng.platform.security.PlatformSecurityContext;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -72,12 +73,11 @@ public class ChargeReadPlatformServiceImpl implements ChargeReadPlatformService
@Override @Override
public ChargeData retrieveNewChargeDetails() { public ChargeData retrieveNewChargeDetails() {
this.context.authenticatedUser(); this.context.authenticatedUser();
List<CurrencyData> currencyOptions = currencyReadPlatformService.retrieveAllowedCurrencies(); List<CurrencyData> currencyOptions = currencyReadPlatformService.retrieveAllowedCurrencies();
CurrencyData currency = new CurrencyData("", "", 0, "", "");
EnumOptionData allowedChargeCalculationType = chargeCalculationType(ChargeCalculationMethod.FLAT);
List<EnumOptionData> allowedChargeCalculationMethodsOptions = Arrays.asList( List<EnumOptionData> allowedChargeCalculationMethodsOptions = Arrays.asList(
chargeCalculationType(ChargeCalculationMethod.FLAT), chargeCalculationType(ChargeCalculationMethod.FLAT),
chargeCalculationType(ChargeCalculationMethod.PERCENT_OF_AMOUNT), chargeCalculationType(ChargeCalculationMethod.PERCENT_OF_AMOUNT),
@@ -85,14 +85,11 @@ public class ChargeReadPlatformServiceImpl implements ChargeReadPlatformService
chargeCalculationType(ChargeCalculationMethod.PERCENT_OF_INTEREST) chargeCalculationType(ChargeCalculationMethod.PERCENT_OF_INTEREST)
); );
EnumOptionData allowedChargeAppliesTo = chargeAppliesTo(ChargeAppliesTo.LOAN); List<EnumOptionData> allowedChargeAppliesToOptions = Arrays.asList(chargeAppliesTo(ChargeAppliesTo.LOAN));
List<EnumOptionData> allowedChargeAppliesToOptions = Arrays.asList(allowedChargeAppliesTo);
EnumOptionData allowedChargeTime = chargeTimeType(ChargeTimeType.DISBURSEMENT); List<EnumOptionData> allowedChargeTimeOptions = Arrays.asList(chargeTimeType(ChargeTimeType.DISBURSEMENT));
List<EnumOptionData> allowedChargeTimeOptions = Arrays.asList(allowedChargeTime);
return ChargeData.template(currency, allowedChargeTime, allowedChargeAppliesTo, allowedChargeCalculationType, return ChargeData.template(currencyOptions, allowedChargeCalculationMethodsOptions,
currencyOptions, allowedChargeCalculationMethodsOptions,
allowedChargeAppliesToOptions, allowedChargeTimeOptions); allowedChargeAppliesToOptions, allowedChargeTimeOptions);
} }
@@ -101,7 +98,10 @@ public class ChargeReadPlatformServiceImpl implements ChargeReadPlatformService
public String chargeSchema(){ public String chargeSchema(){
return "c.id as id, c.name as name, c.amount as amount, c.currency_code as currencyCode, " + return "c.id as id, c.name as name, c.amount as amount, c.currency_code as currencyCode, " +
"charge_applies_to_enum as chargeAppliesTo, charge_time_enum as chargeTime, " + "charge_applies_to_enum as chargeAppliesTo, charge_time_enum as chargeTime, " +
"charge_calculation_enum as chargeCalculation, is_active as active from m_charge c "; "charge_calculation_enum as chargeCalculation, is_active as active, oc.name as currencyName, " +
"oc.decimal_places as currencyDecimalPlaces, oc.display_symbol as currencyDisplaySymbol, " +
"oc.internationalized_name_code as currencyNameCode from m_charge c " +
"join m_organisation_currency oc on c.currency_code = oc.code";
} }
@Override @Override
@@ -109,8 +109,15 @@ public class ChargeReadPlatformServiceImpl implements ChargeReadPlatformService
Long id = rs.getLong("id"); Long id = rs.getLong("id");
String name = rs.getString("name"); String name = rs.getString("name");
BigDecimal amount = rs.getBigDecimal("amount"); BigDecimal amount = rs.getBigDecimal("amount");
String currencyCode = rs.getString("currencyCode"); String currencyCode = rs.getString("currencyCode");
CurrencyData currency = new CurrencyData(currencyCode, "", 0, "", ""); String currencyName = rs.getString("currencyName");
String currencyNameCode = rs.getString("currencyNameCode");
String currencyDisplaySymbol = rs.getString("currencyDisplaySymbol");
Integer currencyDecimalPlaces = JdbcSupport.getInteger(rs, "currencyDecimalPlaces");
CurrencyData currency = new CurrencyData(currencyCode, currencyName, currencyDecimalPlaces,
currencyDisplaySymbol, currencyNameCode);
int chargeAppliesTo = rs.getInt("chargeAppliesTo"); int chargeAppliesTo = rs.getInt("chargeAppliesTo");
EnumOptionData chargeAppliesToType = ChargeEnumerations.chargeAppliesTo(chargeAppliesTo); EnumOptionData chargeAppliesToType = ChargeEnumerations.chargeAppliesTo(chargeAppliesTo);