org.mifos.accounts.fees.business.FeeDto.java Source code

Java tutorial

Introduction

Here is the source code for org.mifos.accounts.fees.business.FeeDto.java

Source

/*
 * Copyright (c) 2005-2011 Grameen Foundation USA
 * All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
 * implied. See the License for the specific language governing
 * permissions and limitations under the License.
 *
 * See also http://www.apache.org/licenses/LICENSE-2.0.html for an
 * explanation of the license and how it is applied.
 */

package org.mifos.accounts.fees.business;

import org.apache.commons.lang.StringUtils;
import org.mifos.accounts.fees.util.helpers.FeeFormula;
import org.mifos.accounts.fees.util.helpers.RateAmountFlag;
import org.mifos.application.meeting.business.MeetingBO;
import org.mifos.application.meeting.util.helpers.MeetingHelper;
import org.mifos.application.meeting.util.helpers.RecurrenceType;
import org.mifos.application.util.helpers.YesNoFlag;
import org.mifos.customers.api.DataTransferObject;
import org.mifos.framework.util.LocalizationConverter;
import org.mifos.security.util.UserContext;

/**
 * @deprecated - use {@link org.mifos.dto.domain.FeeDto}
 */
@Deprecated
public class FeeDto implements DataTransferObject {

    private String feeId;
    private String feeName;
    private String amount;
    private Short currencyId;
    private boolean periodic;
    private String feeSchedule;
    private Short feeRemoved;
    private String feeFormula;
    private Short localeId;
    private RateAmountFlag feeType;
    private RecurrenceType frequencyType;
    private FeeFormula feeFormulaValue;

    public FeeDto() {
    }

    public FeeDto(UserContext userContext, FeeBO fee) {
        if (userContext != null) {
            localeId = userContext.getLocaleId();
        }
        this.feeId = fee.getFeeId().toString();
        this.feeType = fee.getFeeType();
        this.feeName = fee.getFeeName();
        if (fee.getFeeType().equals(RateAmountFlag.AMOUNT)) {
            this.amount = ((AmountFeeBO) fee).getFeeAmount().toString();
            this.setCurrencyId(((AmountFeeBO) fee).getFeeAmount().getCurrency().getCurrencyId());
            this.feeFormula = "";
        } else {
            this.amount = ((RateFeeBO) fee).getRate().toString();
            FeeFormulaEntity feeEntity = ((RateFeeBO) fee).getFeeFormula();
            this.feeFormulaValue = feeEntity.getFeeFormula();
            this.feeFormula = feeEntity.getFormulaString();
        }
        this.periodic = fee.isPeriodic();
        if (fee.isPeriodic()) {
            MeetingBO feeMeeting = fee.getFeeFrequency().getFeeMeetingFrequency();
            this.feeSchedule = new MeetingHelper().getMessageWithFrequency(feeMeeting, userContext);
            if (feeMeeting.isMonthly()) {
                this.frequencyType = RecurrenceType.MONTHLY;
            } else if (feeMeeting.isWeekly()) {
                this.frequencyType = RecurrenceType.WEEKLY;
            } else {
                this.frequencyType = RecurrenceType.DAILY;
            }
        }
        this.feeRemoved = YesNoFlag.NO.getValue();
    }

    public void setFeeSchedule(String feeSchedule) {
        this.feeSchedule = feeSchedule;
    }

    public String getFeeSchedule() {
        return feeSchedule;
    }

    public FeeFormula getFeeFormulaValue() {
        return feeFormulaValue;
    }

    public String getAmount() {
        return amount;
    }

    public Double getAmountMoney() {
        return new LocalizationConverter().getDoubleValueForCurrentLocale(amount);
    }

    public void setAmount(String amount) {
        this.amount = amount;
    }

    public void setPeriodic(boolean periodic) {
        this.periodic = periodic;
    }

    public boolean isPeriodic() {
        return periodic;
    }

    public void setCurrencyId(Short currencyId) {
        this.currencyId = currencyId;
    }

    public Short getCurrencyId() {
        return currencyId;
    }

    public String getFeeId() {
        return feeId;
    }

    public void setFeeId(String feeId) {
        this.feeId = feeId;
    }

    public String getFeeName() {
        return feeName;
    }

    public Short getFeeRemoved() {
        return feeRemoved;
    }

    public void setFeeRemoved(Short feeRemoved) {
        this.feeRemoved = feeRemoved;
    }

    public boolean isRemoved() {
        return feeRemoved.equals(YesNoFlag.YES.getValue());
    }

    public Short getFeeIdValue() {
        return StringUtils.isNotBlank(feeId) ? Short.valueOf(feeId) : null;
    }

    public String getFeeFormula() {
        return feeFormula;
    }

    public Short getLocaleId() {
        return localeId;
    }

    public RateAmountFlag getFeeType() {
        return feeType;
    }

    public RecurrenceType getFrequencyType() {
        return frequencyType;
    }

    public void setFrequencyType(RecurrenceType frequencyType) {
        this.frequencyType = frequencyType;
    }

    public boolean isValidForCurrency(Short currencyId) {
        //  Rate fees do not have currency hence the currencyId will be null for them,
        //  when fee has a currency  then it should match loan account currency id
        return (getCurrencyId() == null || getCurrencyId().equals(currencyId));
    }

    public boolean isMonthly() {
        return RecurrenceType.MONTHLY.equals(this.frequencyType);
    }

    public boolean isWeekly() {
        return RecurrenceType.WEEKLY.equals(this.frequencyType);
    }

    public boolean isNotEmpty() {
        return StringUtils.isNotEmpty(feeId);
    }
}