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

import com.brilliance.isc.bo.Cbb;
import com.brilliance.isc.bo.Ptc;
import com.brilliance.isc.bo.Pty;
import com.brilliance.isc.bo.model.BopObjectType;
import com.brilliance.isc.bo.model.CommetItems;
import com.brilliance.isc.common.setfeg.vo.SetfelVo;
import com.brilliance.isc.common.setfog.vo.SetfolVo;
import com.brilliance.isc.common.setgll.vo.SetgllVo;
import com.brilliance.isc.common.setmod.vo.PtsFeeDetailVo;
import com.brilliance.isc.common.vo.PtsptaVo;
import com.brilliance.isc.vo.bop.RptnoRequestVo;

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

public interface BopdecCommonService {
    public Pty getPtyByTransname(String transName, List<PtsptaVo> ptsList,String rol,String payTyp,String hndtyp);
    public String getTranRol(String transName);
    public String getTranCur(String transName, Map<String, Cbb> cbsMap);
    public BigDecimal getInchargeAmt(String transName,String cur,List<SetfelVo> setFelList,List<PtsFeeDetailVo> ptydet);
    public void getBasic(String transName, List<SetgllVo> setGllList,String cur,String ffaacc,Map<String, BigDecimal> amtList, Map<String,String> accList);
    public boolean bopCheckRol(String transName,String rol);
    public boolean bopCheckDSP(String transName,String dsp);
    public BigDecimal gettxccy(String transName,List<SetgllVo> setGllList,String accmod,String payrol);
    public BigDecimal getactuccy(String transName,List<SetgllVo> setGllList,String docprbrol);
    public BigDecimal getoutchargeccy(String transName,List<SetfelVo> setFelList,List<SetfolVo> setFolList,String cur,List<PtsFeeDetailVo> ptydet);
    public boolean outCHCheck(String transName,String rol,String curr,String dsp,BigDecimal amt,String cur,List<PtsFeeDetailVo> ptydet);
    public boolean isSeperateFEE(String rol,List<PtsFeeDetailVo> ptydet);
    public boolean actCheckRol(String transName,String rol,String docprbrol);
    public boolean txtCheckRol(String transName,String rol,String accmod,String payrol);
    public boolean txtCheckDSP(String transName,String dsp);
    public BigDecimal getchargeFamt(String transName,BigDecimal outChargeAmt);
    public String getBopTmpRef();
    public Date getCoreSysDay();
    public int tenortext(String transName,int tenmaxday);
    public boolean checkTenorBool(String transName);
    public boolean ischeckacc(CommetItems commetItems, String lcyacc, String fcyacc, String othacc);
    public String getCorNM(List<PtsptaVo> ptsList,String feecorrol);
    public String getact(String transName,String orcact);
//    public String getBopdecRptno(RptnoRequestVo rptnoRequestVo);
    public Map<String, BopObjectType>registerBOPObjectTypes(String transName,String hndtyp);
    public Map<String, BopObjectType> registerBoppayObjectTypes(String transName, String hndtyp);
    public Map<String, BopObjectType> registerBopremObjectTypes(String transName, String hndtyp);
    public String getBopdecTyp(String boptyp,String szflg,String basflg,String dclflg,String vrfflg);
    public BopObjectType getBOPInfobyType(String transName,String hndtyp,String typ);
    public BopObjectType getBoppayInfobyType(String transName,String hndtyp,String typ);
    public BopObjectType getBopremInfobyType(String transName,String hndtyp,String typ);
//    public String getBopRefold20141009(Date dat,String typ,String gs,String ownExtKey,boolean valid,String validref);
    public String dbBopCounter(String name);
    public int dbCounterBopcou(String counam,Date dat);
    public String getRef(RptnoRequestVo rptnoRequestVo);
    String getBopRef(Date dat,String typ,String gs,String ownExtKey,boolean valid,String validref);
    public String getNewRef(RptnoRequestVo rptnoRequestVo);
    public String getBopReference(String bopobjtyp,String finCode,Date bopDate,String bopType,String custType);
    public String getBopRptFlowNumber(String bopobjtyp, String custType, Date flowDate,String finCode);
    public boolean validRptno(String rptno, Date flowDate,String finCode);
    public Ptc getPtcInfo(String ptyinr,String boptyp);
    public boolean isAccountZbxm(String account);
    public boolean isValidAct(String act);
    public boolean isValidCommet(CommetItems commetItems);
}
