package com.brilliance.isc.mda.dao;

import com.brilliance.isc.bo.Inv;
import com.brilliance.isc.vo.InvRequestVo;
import com.brilliance.isc.vo.InvResponeVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

@Mapper
public interface InvMapper {

    Inv selectByCodeAndNum(@Param("code") String invoicecode, @Param("number") String invoicenumber);

    int insertSelective(Inv record);

    int insert(Inv record);

    Inv selectByCodeNum(@Param("invoicecode") String invoicecode, @Param("invoicenumber") String invoicenumber);

    int updateByPrimaryKeySelective(Inv record);

    int updateByPrimaryKey(Inv record);

    int deleteByPrimaryKey(Inv record);

    int deleteByCodeNumSeqnum(Inv record);

    List<Inv> selectBySeqnum(String seqnum);

    int deleteBySeqnum(String seqnum);

    Inv selectInvByCodeNumSeqnum(@Param("invoicecode") String invoicecode, @Param("invoicenumber") String invoicenumber,@Param("seqnum") String seqnum);

    int updateByCondition(@Param("enddat") Date enddat, @Param("invoicecode") String invoicecode, @Param("invoicenumber") String invoicenumber, @Param("trninr") String trninr);

    int updateByCodeNumSeqnum(Inv record);

    List<Inv> selectByCondition(@Param(value = "conditionSql") String conditionSql);
    List<Inv> selectByseqnum(@Param("seqnum") String seqnum);

    List<InvResponeVo> selectByInvQueryVo(InvRequestVo invQueryVo);

    Inv selectInvByCodeNum(@Param("invoicecode") String invoicecode, @Param("invoicenumber") String invoicenumber);

    int deleteByListSeqnum(@Param("seqNumLst") List<String> seqNumLst);

    int updateByCodeNum(Inv record);

    int updateByCodeNumSelective(Inv record);
}