merging pull request for MIFOSX-1397

This commit is contained in:
Vishwas Babu A J
2014-10-03 12:47:42 -07:00
6 changed files with 64 additions and 2 deletions
@@ -0,0 +1,3 @@
ALTER TABLE `m_loan_transaction` ADD `submitted_on_date` DATE NOT NULL;
UPDATE `m_loan_transaction` SET `submitted_on_date`= `transaction_date` ;
@@ -40,6 +40,8 @@ public class LoanTransactionData {
private final AccountTransferData transfer;
private final BigDecimal fixedEmiAmount;
private final BigDecimal outstandingLoanBalance;
@SuppressWarnings("unused")
private final LocalDate submittedOnDate;
// templates
final Collection<CodeValueData> paymentTypeOptions;
@@ -70,6 +72,27 @@ public class LoanTransactionData {
final BigDecimal penaltyChargesPortion, final BigDecimal overpaymentPortion,
final Collection<CodeValueData> paymentTypeOptions, final String externalId, final AccountTransferData transfer,
final BigDecimal fixedEmiAmount, BigDecimal outstandingLoanBalance) {
this(id, officeId, officeName, transactionType, paymentDetailData, currency, date, amount, principalPortion, interestPortion,
feeChargesPortion, penaltyChargesPortion, overpaymentPortion, paymentTypeOptions, externalId, transfer, fixedEmiAmount,
outstandingLoanBalance, null);
}
public LoanTransactionData(final Long id, final Long officeId, final String officeName, final LoanTransactionEnumData transactionType,
final PaymentDetailData paymentDetailData, final CurrencyData currency, final LocalDate date, final BigDecimal amount,
final BigDecimal principalPortion, final BigDecimal interestPortion, final BigDecimal feeChargesPortion,
final BigDecimal penaltyChargesPortion, final BigDecimal overpaymentPortion, final String externalId,
final AccountTransferData transfer, BigDecimal fixedEmiAmount, BigDecimal outstandingLoanBalance, LocalDate submittedOnDate) {
this(id, officeId, officeName, transactionType, paymentDetailData, currency, date, amount, principalPortion, interestPortion,
feeChargesPortion, penaltyChargesPortion, overpaymentPortion, null, externalId, transfer, fixedEmiAmount,
outstandingLoanBalance, submittedOnDate);
}
public LoanTransactionData(final Long id, final Long officeId, final String officeName, final LoanTransactionEnumData transactionType,
final PaymentDetailData paymentDetailData, final CurrencyData currency, final LocalDate date, final BigDecimal amount,
final BigDecimal principalPortion, final BigDecimal interestPortion, final BigDecimal feeChargesPortion,
final BigDecimal penaltyChargesPortion, final BigDecimal overpaymentPortion,
final Collection<CodeValueData> paymentTypeOptions, final String externalId, final AccountTransferData transfer,
final BigDecimal fixedEmiAmount, BigDecimal outstandingLoanBalance, final LocalDate submittedOnDate) {
this.id = id;
this.officeId = officeId;
this.officeName = officeName;
@@ -88,6 +111,7 @@ public class LoanTransactionData {
this.overpaymentPortion = overpaymentPortion;
this.fixedEmiAmount = fixedEmiAmount;
this.outstandingLoanBalance = outstandingLoanBalance;
this.submittedOnDate = submittedOnDate;
}
public LocalDate dateOf() {
@@ -28,6 +28,7 @@ import javax.persistence.UniqueConstraint;
import org.hibernate.annotations.LazyCollection;
import org.hibernate.annotations.LazyCollectionOption;
import org.joda.time.LocalDate;
import org.mifosplatform.infrastructure.core.service.DateUtils;
import org.mifosplatform.organisation.monetary.data.CurrencyData;
import org.mifosplatform.organisation.monetary.domain.MonetaryCurrency;
import org.mifosplatform.organisation.monetary.domain.Money;
@@ -67,6 +68,10 @@ public final class LoanTransaction extends AbstractPersistable<Long> {
@Column(name = "transaction_date", nullable = false)
private final Date dateOf;
@Temporal(TemporalType.DATE)
@Column(name = "submitted_on_date", nullable = false)
private final Date submittedOnDate;
@Column(name = "amount", scale = 6, precision = 19, nullable = false)
private BigDecimal amount;
@@ -102,6 +107,7 @@ public final class LoanTransaction extends AbstractPersistable<Long> {
this.loan = null;
this.dateOf = null;
this.typeOf = null;
this.submittedOnDate = DateUtils.getDateOfTenant();
}
public static LoanTransaction disbursement(final Office office, final Money amount, final PaymentDetail paymentDetail,
@@ -221,6 +227,7 @@ public final class LoanTransaction extends AbstractPersistable<Long> {
this.paymentDetail = paymentDetail;
this.office = office;
this.externalId = externalId;
this.submittedOnDate = DateUtils.getDateOfTenant();
}
public static LoanTransaction waiveLoanCharge(final Loan loan, final Office office, final Money waived, final LocalDate waiveDate,
@@ -244,6 +251,7 @@ public final class LoanTransaction extends AbstractPersistable<Long> {
this.dateOf = date.toDateTimeAtStartOfDay().toDate();
this.externalId = externalId;
this.office = office;
this.submittedOnDate = DateUtils.getDateOfTenant();
}
private LoanTransaction(final Loan loan, final Office office, final LoanTransactionType type, final PaymentDetail paymentDetail,
@@ -255,6 +263,7 @@ public final class LoanTransaction extends AbstractPersistable<Long> {
this.dateOf = date.toDateTimeAtStartOfDay().toDate();
this.externalId = externalId;
this.office = office;
this.submittedOnDate = DateUtils.getDateOfTenant();
}
public void reverse() {
@@ -1065,6 +1065,7 @@ public class LoanReadPlatformServiceImpl implements LoanReadPlatformService {
+ " tr.principal_portion_derived as principal, tr.interest_portion_derived as interest, "
+ " tr.fee_charges_portion_derived as fees, tr.penalty_charges_portion_derived as penalties, "
+ " tr.overpayment_portion_derived as overpayment, tr.outstanding_loan_balance_derived as outstandingLoanBalance, "
+ " tr.submitted_on_date as submittedOnDate, "
+ " pd.payment_type_cv_id as paymentType,pd.account_number as accountNumber,pd.check_number as checkNumber, "
+ " pd.receipt_number as receiptNumber, pd.bank_number as bankNumber,pd.routing_code as routingCode, "
+ " l.currency_code as currencyCode, l.currency_digits as currencyDigits, l.currency_multiplesof as inMultiplesOf, rc.`name` as currencyName, "
@@ -1119,6 +1120,7 @@ public class LoanReadPlatformServiceImpl implements LoanReadPlatformService {
}
}
final LocalDate date = JdbcSupport.getLocalDate(rs, "date");
final LocalDate submittedOnDate = JdbcSupport.getLocalDate(rs, "submittedOnDate");
final BigDecimal totalAmount = JdbcSupport.getBigDecimalDefaultToZeroIfNull(rs, "total");
final BigDecimal principalPortion = JdbcSupport.getBigDecimalDefaultToZeroIfNull(rs, "principal");
final BigDecimal interestPortion = JdbcSupport.getBigDecimalDefaultToZeroIfNull(rs, "interest");
@@ -1151,7 +1153,7 @@ public class LoanReadPlatformServiceImpl implements LoanReadPlatformService {
return new LoanTransactionData(id, officeId, officeName, transactionType, paymentDetailData, currencyData, date, totalAmount,
principalPortion, interestPortion, feeChargesPortion, penaltyChargesPortion, overPaymentPortion, externalId, transfer,
null, outstandingLoanBalance);
null, outstandingLoanBalance, submittedOnDate);
}
}
@@ -34,6 +34,7 @@ public class SavingsAccountTransactionData {
private final BigDecimal runningBalance;
private final boolean reversed;
private final AccountTransferData transfer;
private final LocalDate submittedOnDate;
// templates
final Collection<CodeValueData> paymentTypeOptions;
@@ -47,6 +48,15 @@ public class SavingsAccountTransactionData {
amount, runningBalance, reversed, transfer, paymentTypeOptions);
}
public static SavingsAccountTransactionData create(final Long id, final SavingsAccountTransactionEnumData transactionType,
final PaymentDetailData paymentDetailData, final Long savingsId, final String savingsAccountNo, final LocalDate date,
final CurrencyData currency, final BigDecimal amount, final BigDecimal runningBalance, final boolean reversed,
final AccountTransferData transfer,final LocalDate submittedOnDate) {
final Collection<CodeValueData> paymentTypeOptions = null;
return new SavingsAccountTransactionData(id, transactionType, paymentDetailData, savingsId, savingsAccountNo, date, currency,
amount, runningBalance, reversed, transfer, paymentTypeOptions,submittedOnDate);
}
public static SavingsAccountTransactionData template(final Long savingsId, final String savingsAccountNo,
final LocalDate defaultLocalDate, final CurrencyData currency) {
final Long id = null;
@@ -73,6 +83,17 @@ public class SavingsAccountTransactionData {
final PaymentDetailData paymentDetailData, final Long savingsId, final String savingsAccountNo, final LocalDate date,
final CurrencyData currency, final BigDecimal amount, final BigDecimal runningBalance, final boolean reversed,
final AccountTransferData transfer, final Collection<CodeValueData> paymentTypeOptions) {
this(id,transactionType,paymentDetailData,savingsId, savingsAccountNo,date,
currency,amount,runningBalance, reversed,
transfer, paymentTypeOptions,null);
}
private SavingsAccountTransactionData(final Long id, final SavingsAccountTransactionEnumData transactionType,
final PaymentDetailData paymentDetailData, final Long savingsId, final String savingsAccountNo, final LocalDate date,
final CurrencyData currency, final BigDecimal amount, final BigDecimal runningBalance, final boolean reversed,
final AccountTransferData transfer, final Collection<CodeValueData> paymentTypeOptions,final LocalDate submittedOnDate) {
this.id = id;
this.transactionType = transactionType;
this.paymentDetailData = paymentDetailData;
@@ -85,6 +106,7 @@ public class SavingsAccountTransactionData {
this.reversed = reversed;
this.transfer = transfer;
this.paymentTypeOptions = paymentTypeOptions;
this.submittedOnDate = submittedOnDate;
}
public static SavingsAccountTransactionData withWithDrawalTransactionDetails(
@@ -650,6 +650,7 @@ public class SavingsAccountReadPlatformServiceImpl implements SavingsAccountRead
final StringBuilder sqlBuilder = new StringBuilder(400);
sqlBuilder.append("tr.id as transactionId, tr.transaction_type_enum as transactionType, ");
sqlBuilder.append("tr.transaction_date as transactionDate, tr.amount as transactionAmount,");
sqlBuilder.append("tr.created_date as submittedOnDate,");
sqlBuilder.append("tr.running_balance_derived as runningBalance, tr.is_reversed as reversed,");
sqlBuilder.append("fromtran.id as fromTransferId, fromtran.is_reversed as fromTransferReversed,");
sqlBuilder.append("fromtran.transaction_date as fromTransferDate, fromtran.amount as fromTransferAmount,");
@@ -687,6 +688,7 @@ public class SavingsAccountReadPlatformServiceImpl implements SavingsAccountRead
final SavingsAccountTransactionEnumData transactionType = SavingsEnumerations.transactionType(transactionTypeInt);
final LocalDate date = JdbcSupport.getLocalDate(rs, "transactionDate");
final LocalDate submittedOnDate = JdbcSupport.getLocalDate(rs, "submittedOnDate");
final BigDecimal amount = JdbcSupport.getBigDecimalDefaultToZeroIfNull(rs, "transactionAmount");
final BigDecimal runningBalance = JdbcSupport.getBigDecimalDefaultToZeroIfNull(rs, "runningBalance");
final boolean reversed = rs.getBoolean("reversed");
@@ -741,7 +743,7 @@ public class SavingsAccountReadPlatformServiceImpl implements SavingsAccountRead
}
return SavingsAccountTransactionData.create(id, transactionType, paymentDetailData, savingsId, accountNo, date, currency,
amount, runningBalance, reversed, transfer);
amount, runningBalance, reversed, transfer,submittedOnDate);
}
}