package pwc.taxtech.atms.dto.vatdto;

public class CurrentPeriodBo {
    int curYear = 0;
    int curPeriod;

    public CurrentPeriodBo(int curYear, int curPeriod) {
        this.curYear = curYear;
        this.curPeriod = curPeriod;
    }

    public CurrentPeriodBo(int period) {
        this.curPeriod = period;
    }

    public CurrentPeriodBo fixedCurYear(int curYear) {
        this.curYear +=curYear;
        return this;
    }

    public static CurrentPeriodBo getPeriod(int parameterPeriod, int periodContent) {
        int yearOffset = 0;
        if (parameterPeriod == 99) {
            return new CurrentPeriodBo(periodContent);
        } else if (parameterPeriod <= -1) {
            Integer period = parameterPeriod + periodContent;
            while (period <= 0) {
                yearOffset--;
                period += 12;
                //throw new NotImplementedException();
            }

            return new CurrentPeriodBo(period).fixedCurYear(yearOffset);
        } else if (parameterPeriod == 0) {
            return new CurrentPeriodBo(periodContent);
        } else {
            return new CurrentPeriodBo(parameterPeriod);
        }
    }

    public int getCurYear() {
        return this.curYear;
    }

    public void setCurYear(int curYear) {
        this.curYear = curYear;
    }

    public int getCurPeriod() {
        return this.curPeriod;
    }

    public void setCurPeriod(int curPeriod) {
        this.curPeriod = curPeriod;
    }

    @Override
    public String toString() {
        return "CurrentPeriodBo{" +
                "curYear=" + curYear +
                ", curPeriod=" + curPeriod +
                '}';
    }
}