fix office transactions data and adjust loan transactions data.

This commit is contained in:
Keith Woodlock
2012-07-20 17:55:52 +01:00
parent 3e3d0055a9
commit 3951fdc383
4 changed files with 36 additions and 31 deletions
@@ -4,10 +4,8 @@ import java.io.Serializable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import org.codehaus.jackson.map.annotate.JsonFilter;
import org.joda.time.LocalDate; import org.joda.time.LocalDate;
@JsonFilter("myFilter")
public class OfficeTransactionData implements Serializable { public class OfficeTransactionData implements Serializable {
private LocalDate transactionDate; private LocalDate transactionDate;
@@ -18,8 +16,10 @@ public class OfficeTransactionData implements Serializable {
// //
} }
public OfficeTransactionData(final LocalDate transactionDate) { public OfficeTransactionData(final LocalDate transactionDate, final List<OfficeLookup> allowedOffices, final List<CurrencyData> currencyOptions) {
this.transactionDate = transactionDate; this.transactionDate = transactionDate;
this.allowedOffices = allowedOffices;
this.currencyOptions = currencyOptions;
} }
public LocalDate getTransactionDate() { public LocalDate getTransactionDate() {
@@ -64,7 +64,29 @@ public class ApiDataConversionServiceImpl implements ApiDataConversionService {
@Override @Override
public String convertOfficeTransactionDataToJson(final boolean prettyPrint, final Set<String> responseParameters, final OfficeTransactionData... officeTransactions) { public String convertOfficeTransactionDataToJson(final boolean prettyPrint, final Set<String> responseParameters, final OfficeTransactionData... officeTransactions) {
return null; Set<String> supportedParameters = new HashSet<String>(Arrays.asList("transactionDate", "currencyOptions", "allowedOffices"));
final Set<String> parameterNamesToSkip = new HashSet<String>();
if (!responseParameters.isEmpty()) {
if (!supportedParameters.containsAll(responseParameters)) {
throw new UnsupportedParameterException(new ArrayList<String>(responseParameters));
}
parameterNamesToSkip.addAll(supportedParameters);
parameterNamesToSkip.removeAll(responseParameters);
}
ExclusionStrategy strategy = new ParameterListExclusionStrategy(parameterNamesToSkip);
GsonBuilder builder = new GsonBuilder().addSerializationExclusionStrategy(strategy);
builder.registerTypeAdapter(LocalDate.class, new JodaLocalDateAdapter());
if (prettyPrint) {
builder.setPrettyPrinting();
}
Gson gsonDeserializer = builder.create();
return gsonDeserializer.toJson(officeTransactions);
} }
@Override @Override
@@ -94,7 +116,6 @@ public class ApiDataConversionServiceImpl implements ApiDataConversionService {
Gson gsonDeserializer = builder.create(); Gson gsonDeserializer = builder.create();
return gsonDeserializer.toJson(users); return gsonDeserializer.toJson(users);
} }
@Override @Override
@@ -573,8 +594,8 @@ public class ApiDataConversionServiceImpl implements ApiDataConversionService {
Set<String> modifiedParameters = new HashSet<String>(); Set<String> modifiedParameters = new HashSet<String>();
LocalDate transactionDate = extractLocalDateParameter("paymentDate", requestMap, modifiedParameters); LocalDate transactionDate = extractLocalDateParameter("transactionDate", requestMap, modifiedParameters);
BigDecimal transactionAmount = extractBigDecimalParameter("paymentAmount", requestMap, modifiedParameters); BigDecimal transactionAmount = extractBigDecimalParameter("transactionAmount", requestMap, modifiedParameters);
String note = extractStringParameter("note", requestMap, modifiedParameters); String note = extractStringParameter("note", requestMap, modifiedParameters);
return new AdjustLoanTransactionCommand(loanId, transactionId, transactionDate, note, transactionAmount); return new AdjustLoanTransactionCommand(loanId, transactionId, transactionDate, note, transactionAmount);
@@ -79,9 +79,10 @@ public class LoanReadPlatformServiceImpl implements LoanReadPlatformService {
context.authenticatedUser(); context.authenticatedUser();
LoanMapper rm = new LoanMapper(); LoanMapper rm = new LoanMapper();
String sql = "select " + rm.loanSchema() + " where l.id = ?"; String sql = "select " + rm.loanSchema() + " where l.id = ?";
return this.jdbcTemplate.queryForObject(sql, rm,
new Object[] { loanId }); return this.jdbcTemplate.queryForObject(sql, rm, new Object[] { loanId });
} catch (EmptyResultDataAccessException e) { } catch (EmptyResultDataAccessException e) {
throw new LoanNotFoundException(loanId); throw new LoanNotFoundException(loanId);
@@ -240,18 +241,8 @@ public class LoanReadPlatformServiceImpl implements LoanReadPlatformService {
workflowData.setAllowedProducts(new ArrayList<LoanProductLookup>( workflowData.setAllowedProducts(new ArrayList<LoanProductLookup>(
loanProducts)); loanProducts));
if (loanProducts.size() == 1) { if (productId != null) {
Long allowedProductId = workflowData.getAllowedProducts().get(0) LoanProductData selectedProduct = findLoanProductById(loanProducts, productId);
.getId();
LoanProductData selectedProduct = this.loanProductReadPlatformService
.retrieveLoanProduct(allowedProductId);
workflowData.setProductId(selectedProduct.getId());
workflowData.setProductName(selectedProduct.getName());
workflowData.setSelectedProduct(selectedProduct);
} else {
LoanProductData selectedProduct = findLoanProductById(loanProducts,
productId);
workflowData.setProductId(selectedProduct.getId()); workflowData.setProductId(selectedProduct.getId());
workflowData.setProductName(selectedProduct.getName()); workflowData.setProductName(selectedProduct.getName());
@@ -175,16 +175,9 @@ public class OfficeReadPlatformServiceImpl implements OfficeReadPlatformService
public OfficeTransactionData retrieveNewOfficeTransactionDetails() { public OfficeTransactionData retrieveNewOfficeTransactionDetails() {
context.authenticatedUser(); context.authenticatedUser();
List<OfficeLookup> parentLookups = new ArrayList<OfficeLookup>( List<OfficeLookup> parentLookups = new ArrayList<OfficeLookup>(retrieveAllOfficesForLookup());
retrieveAllOfficesForLookup()); List<CurrencyData> currencyOptions = currencyReadPlatformService.retrieveAllowedCurrencies();
List<CurrencyData> currencyOptions = currencyReadPlatformService
.retrieveAllowedCurrencies();
OfficeTransactionData officeTransactionData = new OfficeTransactionData( return new OfficeTransactionData(new LocalDate(), parentLookups, currencyOptions);
new LocalDate());
officeTransactionData.setAllowedOffices(parentLookups);
officeTransactionData.setCurrencyOptions(currencyOptions);
return officeTransactionData;
} }
} }