Search in sources :

Example 1 with FeeStatusEntity

use of org.mifos.accounts.fees.business.FeeStatusEntity 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();
    }
}
Also used : RateFeeBO(org.mifos.accounts.fees.business.RateFeeBO) Money(org.mifos.framework.util.helpers.Money) FeeStatusEntity(org.mifos.accounts.fees.business.FeeStatusEntity) BusinessRuleException(org.mifos.service.BusinessRuleException) ApplicationException(org.mifos.framework.exceptions.ApplicationException) FeeChangeType(org.mifos.accounts.fees.util.helpers.FeeChangeType) FeeBO(org.mifos.accounts.fees.business.FeeBO) RateFeeBO(org.mifos.accounts.fees.business.RateFeeBO) AmountFeeBO(org.mifos.accounts.fees.business.AmountFeeBO) FeeStatus(org.mifos.accounts.fees.util.helpers.FeeStatus) AmountFeeBO(org.mifos.accounts.fees.business.AmountFeeBO) FeeException(org.mifos.accounts.fees.exceptions.FeeException) BusinessRuleException(org.mifos.service.BusinessRuleException) MifosRuntimeException(org.mifos.core.MifosRuntimeException) MeetingException(org.mifos.application.meeting.exceptions.MeetingException) ApplicationException(org.mifos.framework.exceptions.ApplicationException) MifosRuntimeException(org.mifos.core.MifosRuntimeException)

Example 2 with FeeStatusEntity

use of org.mifos.accounts.fees.business.FeeStatusEntity in project head by mifos.

the class FeeAction method manage.

@TransactionDemarcate(joinToken = true)
public ActionForward manage(ActionMapping mapping, ActionForm form, HttpServletRequest request, @SuppressWarnings("unused") HttpServletResponse response) throws Exception {
    form.reset(mapping, request);
    FeeActionForm feeActionForm = (FeeActionForm) form;
    Short feeId = Short.valueOf(feeActionForm.getFeeId());
    FeeDto fee = this.feeDao.findDtoById(feeId);
    List<FeeStatusEntity> feeStatuses = this.feeDao.retrieveFeeStatuses();
    SessionUtils.setCollectionAttribute(FeeConstants.STATUSLIST, feeStatuses, request);
    feeActionForm.updateWithFee(fee);
    request.getSession().setAttribute("feeModel", fee);
    return mapping.findForward(ActionForwards.manage_success.toString());
}
Also used : FeeActionForm(org.mifos.accounts.fees.struts.actionforms.FeeActionForm) FeeStatusEntity(org.mifos.accounts.fees.business.FeeStatusEntity) FeeDto(org.mifos.dto.domain.FeeDto) TransactionDemarcate(org.mifos.framework.util.helpers.TransactionDemarcate)

Aggregations

FeeStatusEntity (org.mifos.accounts.fees.business.FeeStatusEntity)2 AmountFeeBO (org.mifos.accounts.fees.business.AmountFeeBO)1 FeeBO (org.mifos.accounts.fees.business.FeeBO)1 RateFeeBO (org.mifos.accounts.fees.business.RateFeeBO)1 FeeException (org.mifos.accounts.fees.exceptions.FeeException)1 FeeActionForm (org.mifos.accounts.fees.struts.actionforms.FeeActionForm)1 FeeChangeType (org.mifos.accounts.fees.util.helpers.FeeChangeType)1 FeeStatus (org.mifos.accounts.fees.util.helpers.FeeStatus)1 MeetingException (org.mifos.application.meeting.exceptions.MeetingException)1 MifosRuntimeException (org.mifos.core.MifosRuntimeException)1 FeeDto (org.mifos.dto.domain.FeeDto)1 ApplicationException (org.mifos.framework.exceptions.ApplicationException)1 Money (org.mifos.framework.util.helpers.Money)1 TransactionDemarcate (org.mifos.framework.util.helpers.TransactionDemarcate)1 BusinessRuleException (org.mifos.service.BusinessRuleException)1