package com.brilliance.isc.common.irtcal.service;

import com.brilliance.isc.common.irtcal.vo.IrtcalVo;

import java.math.BigDecimal;
import java.util.Date;

public interface IrtcalService {

    void setPrincipal(IrtcalVo irtcalVo, BigDecimal amt, String cur);

    void setRate(IrtcalVo irtcal, BigDecimal rte);

    void setMargin(IrtcalVo irtcal, BigDecimal margin);

    void modifyPrincipal(IrtcalVo irtcal, Date modifydat, BigDecimal amt, String cur);

    Date getEndofCurrentPeriod(IrtcalVo irtcal, Date begdat, Date todaydat, String pertyp);

    void setTierMargin(IrtcalVo irtcal, String tier, BigDecimal threshold, BigDecimal margin);

    void modifyMargin(IrtcalVo irtcal, Date modifydat, BigDecimal newmargin);

    void setPrincipalCBB(IrtcalVo irtcal, String cbcarg, String extId, String objtyp, String objinr);

    String getPerMetCodes(IrtcalVo irtcal);

    void irtGrdsAdjustForShow(IrtcalVo irtcal);

    BigDecimal calcAllCur(IrtcalVo irtcal, String argNewCur, BigDecimal argMinAmt, BigDecimal argMaxAmt);

    void setIRT(IrtcalVo irtcal, String cod, String cur);

    void setRateIRS(IrtcalVo irtcal, String objtyp, String objinr, String cur);

    void initialize(IrtcalVo irtcal);

    void setPeriod(IrtcalVo irtcal, Date frodat, Date tildat);

    void setMCC(IrtcalVo irtcal, String mcc);

    void setMIC(IrtcalVo irtcal, String mic);

    void setPeriods(IrtcalVo irtcal, Date begdat, String met);

    Date getNextPeriod(Date begdat, Date lastdate, String met);
}
