use of org.mifos.accounts.fees.util.helpers.FeeStatus in project head by mifos.
the class FeeServiceImpl method update.
@Override
public void update(FeeUpdateRequest feeUpdateRequest, UserContext userContext) throws ApplicationException {
FeeBO feeBo = this.feeDao.findById(feeUpdateRequest.getFeeId());
feeBo.updateDetails(userContext);
FeeChangeType feeChangeType;
FeeStatus feeStatus = null;
if (feeUpdateRequest.getFeeStatusValue() != null) {
feeStatus = FeeStatus.getFeeStatus(feeUpdateRequest.getFeeStatusValue());
}
FeeStatusEntity feeStatusEntity = new FeeStatusEntity(feeStatus);
if (feeBo.getFeeType().equals(RateAmountFlag.AMOUNT)) {
AmountFeeBO amountFee = ((AmountFeeBO) feeBo);
feeChangeType = amountFee.calculateNewFeeChangeType(new Money(getCurrency(feeUpdateRequest.getCurrencyId()), feeUpdateRequest.getAmount()), feeStatusEntity);
amountFee.setFeeAmount(new Money(getCurrency(feeUpdateRequest.getCurrencyId()), feeUpdateRequest.getAmount()));
} else {
RateFeeBO rateFee = ((RateFeeBO) feeBo);
feeChangeType = rateFee.calculateNewFeeChangeType(feeUpdateRequest.getRateValue(), feeStatusEntity);
rateFee.setRate(feeUpdateRequest.getRateValue());
}
try {
hibernateTransactionHelper.startTransaction();
feeBo.updateStatus(feeStatus);
feeBo.updateFeeChangeType(feeChangeType);
this.feeDao.save(feeBo);
hibernateTransactionHelper.commitTransaction();
} catch (ApplicationException e) {
hibernateTransactionHelper.rollbackTransaction();
throw new BusinessRuleException(e.getKey(), e);
} catch (Exception e) {
hibernateTransactionHelper.rollbackTransaction();
throw new MifosRuntimeException(e);
} finally {
hibernateTransactionHelper.closeSession();
}
}
use of org.mifos.accounts.fees.util.helpers.FeeStatus in project head by mifos.
the class FeeAction method update.
@TransactionDemarcate(validateAndResetToken = true)
public ActionForward update(ActionMapping mapping, ActionForm form, @SuppressWarnings("unused") HttpServletRequest request, @SuppressWarnings("unused") HttpServletResponse response) throws Exception {
FeeActionForm feeActionForm = (FeeActionForm) form;
FeeStatus feeStatus = feeActionForm.getFeeStatusValue();
String forward = "";
Short feeStatusValue = null;
String whereToForward = "";
if (feeStatus != null) {
feeStatusValue = feeStatus.getValue();
}
FeeUpdateRequest feeUpdateRequest = new FeeUpdateRequest(Short.valueOf(feeActionForm.getFeeId()), feeActionForm.getCurrencyId(), feeActionForm.getAmount(), feeStatusValue, feeActionForm.getRateValue());
if (feeUpdateRequest.getFeeStatusValue() == 2) {
this.feeServiceFacade.updateFee(feeUpdateRequest);
try {
boolean remove = feeActionForm.isToRemove();
this.feeServiceFacade.removeFee(feeUpdateRequest, remove);
whereToForward = REMOVE_SUCCESS;
} catch (MifosRuntimeException e) {
ActionMessages messages = new ActionMessages();
messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("Fees.feeCannotBeRemoved"));
saveMessages(request, messages);
whereToForward = UPDATE_SUCCESS;
}
} else if (feeActionForm.isToRemove() && feeUpdateRequest.getFeeStatusValue() == 1) {
ActionMessages errors = new ActionMessages();
errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("Fees.feeCantBeRemove"));
saveErrors(request, errors);
whereToForward = UPDATE_FAILURE;
} else {
this.feeServiceFacade.updateFee(feeUpdateRequest);
whereToForward = UPDATE_SUCCESS;
}
if (whereToForward.equals(UPDATE_SUCCESS)) {
forward = ActionForwards.update_success.toString();
} else if (whereToForward.equals(UPDATE_FAILURE)) {
forward = ActionForwards.update_failure.toString();
} else if (whereToForward.equals(REMOVE_SUCCESS)) {
forward = ActionForwards.remove_fee_success.toString();
}
return mapping.findForward(forward);
}
Aggregations