rename matured_on column and rename status and types associated with deposit accounts.

This commit is contained in:
Keith Woodlock
2012-09-06 16:39:14 +01:00
parent e64efb0536
commit 0306ee866a
13 changed files with 144 additions and 142 deletions
@@ -0,0 +1,2 @@
alter table m_deposit_account drop column `matured_on`;
alter table `m_deposit_account` add column `matures_on_date` datetime NULL DEFAULT NULL after actual_commencement_date;
@@ -76,8 +76,8 @@ public class DepositAccount extends AbstractAuditableCustom<AppUser, Long> {
@SuppressWarnings("unused") @SuppressWarnings("unused")
@Temporal(TemporalType.DATE) @Temporal(TemporalType.DATE)
@Column(name = "matured_on") @Column(name = "matures_on_date")
private Date maturedOn; private Date maturesOnDate;
@SuppressWarnings("unused") @SuppressWarnings("unused")
@Column(name = "projected_interest_accrued_on_maturity", scale = 6, precision = 19, nullable = false) @Column(name = "projected_interest_accrued_on_maturity", scale = 6, precision = 19, nullable = false)
@@ -151,12 +151,12 @@ public class DepositAccount extends AbstractAuditableCustom<AppUser, Long> {
maturityInterestRate, interestCompoundedEvery, interestCompoundedFrequencyPeriodType); maturityInterestRate, interestCompoundedEvery, interestCompoundedFrequencyPeriodType);
DepositStatus from = null; DepositAccountStatus from = null;
if (depositStatus != null) { if (depositStatus != null) {
from = DepositStatus.fromInt(depositStatus); from = DepositAccountStatus.fromInt(depositStatus);
} }
DepositStatus statusEnum = depositLifecycleStateMachine.transition(DepositEvent.DEPOSIT_CREATED, from); DepositAccountStatus statusEnum = depositLifecycleStateMachine.transition(DepositAccountEvent.DEPOSIT_CREATED, from);
depositStatus = statusEnum.getValue(); depositStatus = statusEnum.getValue();
return new DepositAccount(client, product, externalId, deposit, maturityInterestRate, tenureInMonths, return new DepositAccount(client, product, externalId, deposit, maturityInterestRate, tenureInMonths,
@@ -191,7 +191,7 @@ public class DepositAccount extends AbstractAuditableCustom<AppUser, Long> {
this.interestCompoundedFrequencyType = interestCompoundedFrequencyPeriodType.getValue(); this.interestCompoundedFrequencyType = interestCompoundedFrequencyPeriodType.getValue();
if (commencementDate != null) { if (commencementDate != null) {
this.projectedCommencementDate = commencementDate.toDate(); this.projectedCommencementDate = commencementDate.toDate();
this.maturedOn = commencementDate.plusMonths(this.tenureInMonths).toDate(); this.maturesOnDate = commencementDate.plusMonths(this.tenureInMonths).toDate();
} }
this.renewalAllowed = renewalAllowed; this.renewalAllowed = renewalAllowed;
@@ -225,7 +225,7 @@ public class DepositAccount extends AbstractAuditableCustom<AppUser, Long> {
final DepositStateTransitionApprovalCommand command, final DepositStateTransitionApprovalCommand command,
final FixedTermDepositInterestCalculator calculator) { final FixedTermDepositInterestCalculator calculator) {
DepositStatus statusEnum = depositLifecycleStateMachine.transition(DepositEvent.DEPOSIT_APPROVED, DepositStatus.fromInt(this.depositStatus)); DepositAccountStatus statusEnum = depositLifecycleStateMachine.transition(DepositAccountEvent.DEPOSIT_APPROVED, DepositAccountStatus.fromInt(this.depositStatus));
this.depositStatus = statusEnum.getValue(); this.depositStatus = statusEnum.getValue();
if (command.getTenureInMonths() != null) { if (command.getTenureInMonths() != null) {
@@ -241,9 +241,7 @@ public class DepositAccount extends AbstractAuditableCustom<AppUser, Long> {
} }
this.actualCommencementDate = actualCommencementDate.toDate(); this.actualCommencementDate = actualCommencementDate.toDate();
this.maturesOnDate = getActualCommencementDate().plusMonths(this.tenureInMonths).toDate();
// TODO - KW - there was probably no need for 'projected' and 'actual' maturity dates - a single 'matures_on' attribute is sufficient
this.maturedOn = getActualCommencementDate().plusMonths(this.tenureInMonths).toDate();
Money futureValueOnMaturity = calculator.calculateInterestOnMaturityFor(getDeposit(), this.tenureInMonths, Money futureValueOnMaturity = calculator.calculateInterestOnMaturityFor(getDeposit(), this.tenureInMonths,
this.interestRate, this.interestCompoundedEvery, getInterestCompoundedFrequencyType()); this.interestRate, this.interestCompoundedEvery, getInterestCompoundedFrequencyType());
@@ -286,9 +284,9 @@ public class DepositAccount extends AbstractAuditableCustom<AppUser, Long> {
public void reject(final LocalDate rejectedOn, public void reject(final LocalDate rejectedOn,
final DepositLifecycleStateMachine depositLifecycleStateMachine) { final DepositLifecycleStateMachine depositLifecycleStateMachine) {
DepositStatus statusEnum = depositLifecycleStateMachine.transition( DepositAccountStatus statusEnum = depositLifecycleStateMachine.transition(
DepositEvent.DEPOSIT_REJECTED, DepositAccountEvent.DEPOSIT_REJECTED,
DepositStatus.fromInt(this.depositStatus)); DepositAccountStatus.fromInt(this.depositStatus));
this.depositStatus = statusEnum.getValue(); this.depositStatus = statusEnum.getValue();
this.rejectedOnDate = rejectedOn.toDateTimeAtCurrentTime().toDate(); this.rejectedOnDate = rejectedOn.toDateTimeAtCurrentTime().toDate();
@@ -316,9 +314,9 @@ public class DepositAccount extends AbstractAuditableCustom<AppUser, Long> {
public void withdrawnByApplicant(final LocalDate withdrawnOn, public void withdrawnByApplicant(final LocalDate withdrawnOn,
final DepositLifecycleStateMachine depositLifecycleStateMachine) { final DepositLifecycleStateMachine depositLifecycleStateMachine) {
DepositStatus statusEnum = depositLifecycleStateMachine.transition( DepositAccountStatus statusEnum = depositLifecycleStateMachine.transition(
DepositEvent.DEPOSIT_WITHDRAWN, DepositAccountEvent.DEPOSIT_WITHDRAWN,
DepositStatus.fromInt(this.depositStatus)); DepositAccountStatus.fromInt(this.depositStatus));
this.depositStatus = statusEnum.getValue(); this.depositStatus = statusEnum.getValue();
this.withdrawnOnDate = withdrawnOn.toDateTimeAtCurrentTime().toDate(); this.withdrawnOnDate = withdrawnOn.toDateTimeAtCurrentTime().toDate();
@@ -343,13 +341,13 @@ public class DepositAccount extends AbstractAuditableCustom<AppUser, Long> {
public void undoDepositApproval(final DepositLifecycleStateMachine depositLifecycleStateMachine) { public void undoDepositApproval(final DepositLifecycleStateMachine depositLifecycleStateMachine) {
DepositStatus statusEnum = depositLifecycleStateMachine.transition( DepositAccountStatus statusEnum = depositLifecycleStateMachine.transition(
DepositEvent.DEPOSIT_APPROVAL_UNDO, DepositAccountEvent.DEPOSIT_APPROVAL_UNDO,
DepositStatus.fromInt(this.depositStatus)); DepositAccountStatus.fromInt(this.depositStatus));
this.depositStatus = statusEnum.getValue(); this.depositStatus = statusEnum.getValue();
this.actualCommencementDate = null; this.actualCommencementDate = null;
this.maturedOn = getProjectedCommencementDate().plusMonths(this.tenureInMonths).toDate(); this.maturesOnDate = getProjectedCommencementDate().plusMonths(this.tenureInMonths).toDate();
this.total=null; this.total=null;
this.interestAccrued=null; this.interestAccrued=null;
this.depositaccountTransactions.clear(); this.depositaccountTransactions.clear();
@@ -1,6 +1,6 @@
package org.mifosng.platform.saving.domain; package org.mifosng.platform.saving.domain;
public enum DepositEvent { public enum DepositAccountEvent {
DEPOSIT_CREATED, DEPOSIT_REJECTED, DEPOSIT_APPROVED, DEPOSIT_APPROVAL_UNDO, DEPOSIT_WITHDRAWN, DEPOSIT_MATURED; DEPOSIT_CREATED, DEPOSIT_REJECTED, DEPOSIT_APPROVED, DEPOSIT_APPROVAL_UNDO, DEPOSIT_WITHDRAWN, DEPOSIT_MATURED;
@@ -1,6 +1,6 @@
package org.mifosng.platform.saving.domain; package org.mifosng.platform.saving.domain;
public enum DepositStatus { public enum DepositAccountStatus {
INVALID(0, "depositStatusType.invalid"), // INVALID(0, "depositStatusType.invalid"), //
SUBMITED_AND_PENDING_APPROVAL(100, "depositStatusType.submitted.and.pending.approval"), // SUBMITED_AND_PENDING_APPROVAL(100, "depositStatusType.submitted.and.pending.approval"), //
@@ -14,12 +14,12 @@ public enum DepositStatus {
private final Integer value; private final Integer value;
private final String code; private final String code;
private DepositStatus(final Integer value, final String code) { private DepositAccountStatus(final Integer value, final String code) {
this.value = value; this.value = value;
this.code = code; this.code = code;
} }
public boolean hasStateOf(final DepositStatus state) { public boolean hasStateOf(final DepositAccountStatus state) {
return this.value.equals(state.getValue()); return this.value.equals(state.getValue());
} }
@@ -32,53 +32,53 @@ public enum DepositStatus {
} }
public boolean isSubmittedAndPendingApproval() { public boolean isSubmittedAndPendingApproval() {
return this.value.equals(DepositStatus.SUBMITED_AND_PENDING_APPROVAL.getValue()); return this.value.equals(DepositAccountStatus.SUBMITED_AND_PENDING_APPROVAL.getValue());
} }
public boolean isApproved() { public boolean isApproved() {
return this.value.equals(DepositStatus.APPROVED.getValue()); return this.value.equals(DepositAccountStatus.APPROVED.getValue());
} }
public boolean isActive() { public boolean isActive() {
return this.value.equals(DepositStatus.ACTIVE.getValue()); return this.value.equals(DepositAccountStatus.ACTIVE.getValue());
} }
public boolean isClosed() { public boolean isClosed() {
return this.value.equals(DepositStatus.CLOSED.getValue()); return this.value.equals(DepositAccountStatus.CLOSED.getValue());
} }
public boolean isWithdrawnByClient() { public boolean isWithdrawnByClient() {
return this.value.equals(DepositStatus.WITHDRAWN_BY_CLIENT.getValue()); return this.value.equals(DepositAccountStatus.WITHDRAWN_BY_CLIENT.getValue());
} }
public boolean isRejected() { public boolean isRejected() {
return this.value.equals(DepositStatus.REJECTED.getValue()); return this.value.equals(DepositAccountStatus.REJECTED.getValue());
} }
public static DepositStatus fromInt(final Integer statusValue) { public static DepositAccountStatus fromInt(final Integer statusValue) {
DepositStatus enumeration = DepositStatus.INVALID; DepositAccountStatus enumeration = DepositAccountStatus.INVALID;
switch (statusValue) { switch (statusValue) {
case 100: case 100:
enumeration = DepositStatus.SUBMITED_AND_PENDING_APPROVAL; enumeration = DepositAccountStatus.SUBMITED_AND_PENDING_APPROVAL;
break; break;
case 200: case 200:
enumeration = DepositStatus.APPROVED; enumeration = DepositAccountStatus.APPROVED;
break; break;
case 300: case 300:
enumeration = DepositStatus.ACTIVE; enumeration = DepositAccountStatus.ACTIVE;
break; break;
case 400: case 400:
enumeration = DepositStatus.WITHDRAWN_BY_CLIENT; enumeration = DepositAccountStatus.WITHDRAWN_BY_CLIENT;
break; break;
case 500: case 500:
enumeration = DepositStatus.REJECTED; enumeration = DepositAccountStatus.REJECTED;
break; break;
case 600: case 600:
enumeration = DepositStatus.CLOSED; enumeration = DepositAccountStatus.CLOSED;
break; break;
case 700: case 700:
enumeration = DepositStatus.MATURED; enumeration = DepositAccountStatus.MATURED;
break; break;
} }
return enumeration; return enumeration;
@@ -31,7 +31,7 @@ public class DepositAccountTransaction extends AbstractPersistable<Long> {
@Enumerated(EnumType.ORDINAL) @Enumerated(EnumType.ORDINAL)
@Column(name = "transaction_type_enum", nullable = false) @Column(name = "transaction_type_enum", nullable = false)
private DepositTransactionType typeOf; private DepositAccountTransactionType typeOf;
@OneToOne(optional=true, cascade={CascadeType.PERSIST}) @OneToOne(optional=true, cascade={CascadeType.PERSIST})
@JoinColumn(name="contra_id") @JoinColumn(name="contra_id")
@@ -53,7 +53,7 @@ public class DepositAccountTransaction extends AbstractPersistable<Long> {
} }
private DepositAccountTransaction(DepositTransactionType type, final BigDecimal amount, final LocalDate date) { private DepositAccountTransaction(DepositAccountTransactionType type, final BigDecimal amount, final LocalDate date) {
this.typeOf = type; this.typeOf = type;
this.amount = amount; this.amount = amount;
@@ -69,7 +69,7 @@ public class DepositAccountTransaction extends AbstractPersistable<Long> {
return amount; return amount;
} }
public DepositTransactionType getTypeOf() { public DepositAccountTransactionType getTypeOf() {
return typeOf; return typeOf;
} }
@@ -94,20 +94,20 @@ public class DepositAccountTransaction extends AbstractPersistable<Long> {
} }
public boolean isDeposit(){ public boolean isDeposit(){
return DepositTransactionType.DEPOSIT.equals(typeOf) && isNotContra(); return DepositAccountTransactionType.DEPOSIT.equals(typeOf) && isNotContra();
} }
public static DepositAccountTransaction deposit(Money amount, LocalDate paymentDate) { public static DepositAccountTransaction deposit(Money amount, LocalDate paymentDate) {
return new DepositAccountTransaction(DepositTransactionType.DEPOSIT, amount.getAmount(), paymentDate); return new DepositAccountTransaction(DepositAccountTransactionType.DEPOSIT, amount.getAmount(), paymentDate);
} }
public static DepositAccountTransaction withdraw(Money amount, LocalDate paymentDate) { public static DepositAccountTransaction withdraw(Money amount, LocalDate paymentDate) {
return new DepositAccountTransaction(DepositTransactionType.WITHDRAW, amount.getAmount(), paymentDate); return new DepositAccountTransaction(DepositAccountTransactionType.WITHDRAW, amount.getAmount(), paymentDate);
} }
private static DepositAccountTransaction contra(DepositAccountTransaction originalTransaction) { private static DepositAccountTransaction contra(DepositAccountTransaction originalTransaction) {
DepositAccountTransaction contra = new DepositAccountTransaction(DepositTransactionType.REVERSAL, originalTransaction.getAmount().negate(), new LocalDate(originalTransaction.getDateOf())); DepositAccountTransaction contra = new DepositAccountTransaction(DepositAccountTransactionType.REVERSAL, originalTransaction.getAmount().negate(), new LocalDate(originalTransaction.getDateOf()));
contra.updateContra(originalTransaction); contra.updateContra(originalTransaction);
return contra; return contra;
@@ -0,0 +1,55 @@
package org.mifosng.platform.saving.domain;
public enum DepositAccountTransactionType {
INVALID(0, "depositTransactionType.invalid"), //
DEPOSIT(1, "depositTransactionType.deposit"), //
WITHDRAW(2, "depositTransactionType.withdraw"), //
REVERSAL(3, "depositTransactionType.reversal");
private final Integer value;
private final String code;
private DepositAccountTransactionType(final Integer value, final String code) {
this.value=value;
this.code=code;
}
public Integer getValue() {
return value;
}
public String getCode() {
return code;
}
public static DepositAccountTransactionType fromInt(final Integer transactionType){
if (transactionType == null) {
return DepositAccountTransactionType.INVALID;
}
DepositAccountTransactionType depositTransactionType=null;
switch (transactionType) {
case 1:
depositTransactionType=DepositAccountTransactionType.DEPOSIT;
break;
case 2:
depositTransactionType=DepositAccountTransactionType.WITHDRAW;
break;
case 3:
depositTransactionType=DepositAccountTransactionType.REVERSAL;
break;
default :
depositTransactionType=DepositAccountTransactionType.INVALID;
break;
}
return depositTransactionType;
}
}
@@ -3,6 +3,6 @@ package org.mifosng.platform.saving.domain;
public interface DepositLifecycleStateMachine { public interface DepositLifecycleStateMachine {
DepositStatus transition(DepositEvent loanEvent, DepositStatus from); DepositAccountStatus transition(DepositAccountEvent loanEvent, DepositAccountStatus from);
} }
@@ -7,26 +7,26 @@ import org.mifosng.platform.exceptions.InvalidDepositStateTransitionException;
public class DepositLifecycleStateMachineImpl implements public class DepositLifecycleStateMachineImpl implements
DepositLifecycleStateMachine { DepositLifecycleStateMachine {
private final List<DepositStatus> allowedDepositStatuses; private final List<DepositAccountStatus> allowedDepositStatuses;
public DepositLifecycleStateMachineImpl(List<DepositStatus> allowedDepositStatuses) { public DepositLifecycleStateMachineImpl(List<DepositAccountStatus> allowedDepositStatuses) {
this.allowedDepositStatuses=allowedDepositStatuses; this.allowedDepositStatuses=allowedDepositStatuses;
} }
@Override @Override
public DepositStatus transition(DepositEvent depositEvent, DepositStatus from) { public DepositAccountStatus transition(DepositAccountEvent depositEvent, DepositAccountStatus from) {
DepositStatus newState = null; DepositAccountStatus newState = null;
switch (depositEvent) { switch (depositEvent) {
case DEPOSIT_CREATED: case DEPOSIT_CREATED:
if (from == null) { if (from == null) {
newState = stateOf(DepositStatus.SUBMITED_AND_PENDING_APPROVAL, allowedDepositStatuses); newState = stateOf(DepositAccountStatus.SUBMITED_AND_PENDING_APPROVAL, allowedDepositStatuses);
} }
break; break;
case DEPOSIT_REJECTED: case DEPOSIT_REJECTED:
if (from.hasStateOf(DepositStatus.SUBMITED_AND_PENDING_APPROVAL)) { if (from.hasStateOf(DepositAccountStatus.SUBMITED_AND_PENDING_APPROVAL)) {
newState = stateOf(DepositStatus.REJECTED, allowedDepositStatuses); newState = stateOf(DepositAccountStatus.REJECTED, allowedDepositStatuses);
} }
else{ else{
final String errorMessage = "The DepositApplication can not be rejected from "+from.getCode() ; final String errorMessage = "The DepositApplication can not be rejected from "+from.getCode() ;
@@ -34,8 +34,8 @@ public class DepositLifecycleStateMachineImpl implements
} }
break; break;
case DEPOSIT_APPROVED: case DEPOSIT_APPROVED:
if (from.hasStateOf(DepositStatus.SUBMITED_AND_PENDING_APPROVAL)) { if (from.hasStateOf(DepositAccountStatus.SUBMITED_AND_PENDING_APPROVAL)) {
newState = stateOf(DepositStatus.APPROVED, allowedDepositStatuses); newState = stateOf(DepositAccountStatus.APPROVED, allowedDepositStatuses);
} }
else{ else{
final String errorMessage = "The DepositApplication can not be approved from "+from.getCode() ; final String errorMessage = "The DepositApplication can not be approved from "+from.getCode() ;
@@ -43,8 +43,8 @@ public class DepositLifecycleStateMachineImpl implements
} }
break; break;
case DEPOSIT_WITHDRAWN: case DEPOSIT_WITHDRAWN:
if (this.anyOfAllowedWhenComingFrom(from, DepositStatus.SUBMITED_AND_PENDING_APPROVAL, DepositStatus.APPROVED)) { if (this.anyOfAllowedWhenComingFrom(from, DepositAccountStatus.SUBMITED_AND_PENDING_APPROVAL, DepositAccountStatus.APPROVED)) {
newState = stateOf(DepositStatus.WITHDRAWN_BY_CLIENT, allowedDepositStatuses); newState = stateOf(DepositAccountStatus.WITHDRAWN_BY_CLIENT, allowedDepositStatuses);
} }
else{ else{
final String errorMessage = "The DepositApplication can not be withdrawn from "+from.getCode() ; final String errorMessage = "The DepositApplication can not be withdrawn from "+from.getCode() ;
@@ -52,8 +52,8 @@ public class DepositLifecycleStateMachineImpl implements
} }
break; break;
case DEPOSIT_APPROVAL_UNDO: case DEPOSIT_APPROVAL_UNDO:
if (from.hasStateOf(DepositStatus.APPROVED)) { if (from.hasStateOf(DepositAccountStatus.APPROVED)) {
newState = stateOf(DepositStatus.SUBMITED_AND_PENDING_APPROVAL, allowedDepositStatuses); newState = stateOf(DepositAccountStatus.SUBMITED_AND_PENDING_APPROVAL, allowedDepositStatuses);
} }
else{ else{
final String errorMessage = "The DepositApplication can not be unapproved from "+from.getCode() ; final String errorMessage = "The DepositApplication can not be unapproved from "+from.getCode() ;
@@ -61,8 +61,8 @@ public class DepositLifecycleStateMachineImpl implements
} }
break; break;
case DEPOSIT_MATURED: case DEPOSIT_MATURED:
if (from.hasStateOf(DepositStatus.APPROVED) ){ if (from.hasStateOf(DepositAccountStatus.APPROVED) ){
newState = stateOf(DepositStatus.MATURED, allowedDepositStatuses); newState = stateOf(DepositAccountStatus.MATURED, allowedDepositStatuses);
} }
else{ else{
final String errorMessage = "The DepositApplication can not be matured from "+from.getCode() ; final String errorMessage = "The DepositApplication can not be matured from "+from.getCode() ;
@@ -74,9 +74,9 @@ public class DepositLifecycleStateMachineImpl implements
return newState; return newState;
} }
private DepositStatus stateOf(DepositStatus state, List<DepositStatus> allowedLoanStatuses) { private DepositAccountStatus stateOf(DepositAccountStatus state, List<DepositAccountStatus> allowedLoanStatuses) {
DepositStatus match = null; DepositAccountStatus match = null;
for (DepositStatus depositStatus : allowedLoanStatuses) { for (DepositAccountStatus depositStatus : allowedLoanStatuses) {
if (depositStatus.hasStateOf(state)) { if (depositStatus.hasStateOf(state)) {
match = depositStatus; match = depositStatus;
break; break;
@@ -85,10 +85,10 @@ public class DepositLifecycleStateMachineImpl implements
return match; return match;
} }
private boolean anyOfAllowedWhenComingFrom(final DepositStatus state, final DepositStatus... allowedStates) { private boolean anyOfAllowedWhenComingFrom(final DepositAccountStatus state, final DepositAccountStatus... allowedStates) {
boolean allowed = false; boolean allowed = false;
for (DepositStatus allowedState : allowedStates) { for (DepositAccountStatus allowedState : allowedStates) {
if (state.hasStateOf(allowedState)) { if (state.hasStateOf(allowedState)) {
allowed = true; allowed = true;
break; break;
@@ -1,53 +0,0 @@
package org.mifosng.platform.saving.domain;
public enum DepositTransactionType {
INVALID(0, "depositTransactionType.invalid"), DEPOSIT(1, "depositTransactionType.deposit"), WITHDRAW(2, "depositTransactionType.withdraw"), REVERSAL(3, "depositTransactionType.reversal");
private final Integer value;
private final String code;
private DepositTransactionType(final Integer value, final String code) {
this.value=value;
this.code=code;
}
public Integer getValue() {
return value;
}
public String getCode() {
return code;
}
public static DepositTransactionType fromInt(final Integer transactionType){
if (transactionType == null) {
return DepositTransactionType.INVALID;
}
DepositTransactionType depositTransactionType=null;
switch (transactionType) {
case 1:
depositTransactionType=DepositTransactionType.DEPOSIT;
break;
case 2:
depositTransactionType=DepositTransactionType.WITHDRAW;
break;
case 3:
depositTransactionType=DepositTransactionType.REVERSAL;
break;
default :
depositTransactionType=DepositTransactionType.INVALID;
break;
}
return depositTransactionType;
}
}
@@ -14,7 +14,7 @@ import org.mifosng.platform.loan.domain.PeriodFrequencyType;
import org.mifosng.platform.saving.domain.DepositAccount; import org.mifosng.platform.saving.domain.DepositAccount;
import org.mifosng.platform.saving.domain.DepositLifecycleStateMachine; import org.mifosng.platform.saving.domain.DepositLifecycleStateMachine;
import org.mifosng.platform.saving.domain.DepositLifecycleStateMachineImpl; import org.mifosng.platform.saving.domain.DepositLifecycleStateMachineImpl;
import org.mifosng.platform.saving.domain.DepositStatus; import org.mifosng.platform.saving.domain.DepositAccountStatus;
import org.mifosng.platform.saving.domain.FixedTermDepositInterestCalculator; import org.mifosng.platform.saving.domain.FixedTermDepositInterestCalculator;
import org.mifosng.platform.savingproduct.domain.DepositProduct; import org.mifosng.platform.savingproduct.domain.DepositProduct;
import org.mifosng.platform.savingproduct.domain.DepositProductRepository; import org.mifosng.platform.savingproduct.domain.DepositProductRepository;
@@ -96,7 +96,7 @@ public class DepositAccountAssembler {
} }
private DepositLifecycleStateMachine defaultDepositLifecycleStateMachine() { private DepositLifecycleStateMachine defaultDepositLifecycleStateMachine() {
List<DepositStatus> allowedDepositStatuses = Arrays.asList(DepositStatus.values()); List<DepositAccountStatus> allowedDepositStatuses = Arrays.asList(DepositAccountStatus.values());
return new DepositLifecycleStateMachineImpl(allowedDepositStatuses); return new DepositLifecycleStateMachineImpl(allowedDepositStatuses);
} }
} }
@@ -1,40 +1,40 @@
package org.mifosng.platform.saving.service; package org.mifosng.platform.saving.service;
import org.mifosng.platform.api.data.EnumOptionData; import org.mifosng.platform.api.data.EnumOptionData;
import org.mifosng.platform.saving.domain.DepositStatus; import org.mifosng.platform.saving.domain.DepositAccountStatus;
public class DepositAccountEnumerations { public class DepositAccountEnumerations {
public static EnumOptionData status(final Integer statusId) { public static EnumOptionData status(final Integer statusId) {
return status(DepositStatus.fromInt(statusId)); return status(DepositAccountStatus.fromInt(statusId));
} }
public static EnumOptionData status(final DepositStatus status) { public static EnumOptionData status(final DepositAccountStatus status) {
EnumOptionData optionData = null; EnumOptionData optionData = null;
switch (status) { switch (status) {
case SUBMITED_AND_PENDING_APPROVAL: case SUBMITED_AND_PENDING_APPROVAL:
optionData = new EnumOptionData(DepositStatus.SUBMITED_AND_PENDING_APPROVAL.getValue().longValue(), DepositStatus.SUBMITED_AND_PENDING_APPROVAL.getCode(), "Submitted and pending approval"); optionData = new EnumOptionData(DepositAccountStatus.SUBMITED_AND_PENDING_APPROVAL.getValue().longValue(), DepositAccountStatus.SUBMITED_AND_PENDING_APPROVAL.getCode(), "Submitted and pending approval");
break; break;
case APPROVED: case APPROVED:
optionData = new EnumOptionData(DepositStatus.APPROVED.getValue().longValue(), DepositStatus.APPROVED.getCode(), "Approved"); optionData = new EnumOptionData(DepositAccountStatus.APPROVED.getValue().longValue(), DepositAccountStatus.APPROVED.getCode(), "Approved");
break; break;
case ACTIVE: case ACTIVE:
optionData = new EnumOptionData(DepositStatus.ACTIVE.getValue().longValue(), DepositStatus.ACTIVE.getCode(), "Active"); optionData = new EnumOptionData(DepositAccountStatus.ACTIVE.getValue().longValue(), DepositAccountStatus.ACTIVE.getCode(), "Active");
break; break;
case REJECTED: case REJECTED:
optionData = new EnumOptionData(DepositStatus.REJECTED.getValue().longValue(), DepositStatus.REJECTED.getCode(), "Rejected"); optionData = new EnumOptionData(DepositAccountStatus.REJECTED.getValue().longValue(), DepositAccountStatus.REJECTED.getCode(), "Rejected");
break; break;
case WITHDRAWN_BY_CLIENT: case WITHDRAWN_BY_CLIENT:
optionData = new EnumOptionData(DepositStatus.WITHDRAWN_BY_CLIENT.getValue().longValue(), DepositStatus.WITHDRAWN_BY_CLIENT.getCode(), "Withdrawn by applicant"); optionData = new EnumOptionData(DepositAccountStatus.WITHDRAWN_BY_CLIENT.getValue().longValue(), DepositAccountStatus.WITHDRAWN_BY_CLIENT.getCode(), "Withdrawn by applicant");
break; break;
case MATURED: case MATURED:
optionData = new EnumOptionData(DepositStatus.MATURED.getValue().longValue(), DepositStatus.MATURED.getCode(), "Matured"); optionData = new EnumOptionData(DepositAccountStatus.MATURED.getValue().longValue(), DepositAccountStatus.MATURED.getCode(), "Matured");
break; break;
case CLOSED: case CLOSED:
optionData = new EnumOptionData(DepositStatus.CLOSED.getValue().longValue(), DepositStatus.CLOSED.getCode(), "Closed"); optionData = new EnumOptionData(DepositAccountStatus.CLOSED.getValue().longValue(), DepositAccountStatus.CLOSED.getCode(), "Closed");
break; break;
default: default:
optionData = new EnumOptionData(DepositStatus.INVALID.getValue().longValue(), DepositStatus.INVALID.getCode(), "Invalid"); optionData = new EnumOptionData(DepositAccountStatus.INVALID.getValue().longValue(), DepositAccountStatus.INVALID.getCode(), "Invalid");
break; break;
} }
return optionData; return optionData;
@@ -1,31 +1,31 @@
package org.mifosng.platform.saving.service; package org.mifosng.platform.saving.service;
import org.mifosng.platform.api.data.EnumOptionData; import org.mifosng.platform.api.data.EnumOptionData;
import org.mifosng.platform.saving.domain.DepositTransactionType; import org.mifosng.platform.saving.domain.DepositAccountTransactionType;
public class DepositAccountTransactionEnumerations { public class DepositAccountTransactionEnumerations {
public static EnumOptionData depositType(final Integer statusId) { public static EnumOptionData depositType(final Integer statusId) {
return depositType(DepositTransactionType.fromInt(statusId)); return depositType(DepositAccountTransactionType.fromInt(statusId));
} }
private static EnumOptionData depositType(DepositTransactionType transactionType) { private static EnumOptionData depositType(DepositAccountTransactionType transactionType) {
EnumOptionData optionData=null; EnumOptionData optionData=null;
switch (transactionType) { switch (transactionType) {
case DEPOSIT: case DEPOSIT:
optionData=new EnumOptionData(DepositTransactionType.DEPOSIT.getValue().longValue(), DepositTransactionType.DEPOSIT.getCode(), "Deposit"); optionData=new EnumOptionData(DepositAccountTransactionType.DEPOSIT.getValue().longValue(), DepositAccountTransactionType.DEPOSIT.getCode(), "Deposit");
break; break;
case WITHDRAW: case WITHDRAW:
optionData=new EnumOptionData(DepositTransactionType.WITHDRAW.getValue().longValue(), DepositTransactionType.WITHDRAW.getCode(), "Withdraw"); optionData=new EnumOptionData(DepositAccountTransactionType.WITHDRAW.getValue().longValue(), DepositAccountTransactionType.WITHDRAW.getCode(), "Withdraw");
break; break;
case REVERSAL: case REVERSAL:
optionData=new EnumOptionData(DepositTransactionType.REVERSAL.getValue().longValue(), DepositTransactionType.REVERSAL.getCode(), "Revarsal"); optionData=new EnumOptionData(DepositAccountTransactionType.REVERSAL.getValue().longValue(), DepositAccountTransactionType.REVERSAL.getCode(), "Revarsal");
break; break;
default: default:
optionData=new EnumOptionData(DepositTransactionType.INVALID.getValue().longValue(), DepositTransactionType.INVALID.getCode(), "Invalid Transaction"); optionData=new EnumOptionData(DepositAccountTransactionType.INVALID.getValue().longValue(), DepositAccountTransactionType.INVALID.getCode(), "Invalid Transaction");
break; break;
} }
return optionData; return optionData;
@@ -17,7 +17,7 @@ import org.mifosng.platform.saving.domain.DepositAccount;
import org.mifosng.platform.saving.domain.DepositAccountRepository; import org.mifosng.platform.saving.domain.DepositAccountRepository;
import org.mifosng.platform.saving.domain.DepositLifecycleStateMachine; import org.mifosng.platform.saving.domain.DepositLifecycleStateMachine;
import org.mifosng.platform.saving.domain.DepositLifecycleStateMachineImpl; import org.mifosng.platform.saving.domain.DepositLifecycleStateMachineImpl;
import org.mifosng.platform.saving.domain.DepositStatus; import org.mifosng.platform.saving.domain.DepositAccountStatus;
import org.mifosng.platform.saving.domain.FixedTermDepositInterestCalculator; import org.mifosng.platform.saving.domain.FixedTermDepositInterestCalculator;
import org.mifosng.platform.security.PlatformSecurityContext; import org.mifosng.platform.security.PlatformSecurityContext;
import org.mifosng.platform.user.domain.AppUser; import org.mifosng.platform.user.domain.AppUser;
@@ -135,7 +135,7 @@ public class DepositAccountWritePlatformServiceJpaRepositoryImpl implements Depo
return date.isBefore(new LocalDate()); return date.isBefore(new LocalDate());
} }
private DepositLifecycleStateMachine defaultDepositLifecycleStateMachine() { private DepositLifecycleStateMachine defaultDepositLifecycleStateMachine() {
List<DepositStatus> allowedDepositStatuses = Arrays.asList(DepositStatus.values()); List<DepositAccountStatus> allowedDepositStatuses = Arrays.asList(DepositAccountStatus.values());
return new DepositLifecycleStateMachineImpl(allowedDepositStatuses); return new DepositLifecycleStateMachineImpl(allowedDepositStatuses);
} }