package pwc.taxtech.atms.vat.dao;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.session.RowBounds;
import pwc.taxtech.atms.MyVatMapper;
import pwc.taxtech.atms.dto.vatdto.TrialBalanceDto;
import pwc.taxtech.atms.vat.entity.VatStandardAccount;
import pwc.taxtech.atms.vat.entity.VatStandardAccountExample;

@Mapper
public interface VatStandardAccountMapper extends MyVatMapper {
    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table StandardAccount
     *
     * @mbg.generated
     */
    long countByExample(VatStandardAccountExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table StandardAccount
     *
     * @mbg.generated
     */
    int deleteByExample(VatStandardAccountExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table StandardAccount
     *
     * @mbg.generated
     */
    int deleteByPrimaryKey(String ID);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table StandardAccount
     *
     * @mbg.generated
     */
    int insert(VatStandardAccount record);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table StandardAccount
     *
     * @mbg.generated
     */
    int insertSelective(VatStandardAccount record);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table StandardAccount
     *
     * @mbg.generated
     */
    List<VatStandardAccount> selectByExampleWithRowbounds(VatStandardAccountExample example, RowBounds rowBounds);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table StandardAccount
     *
     * @mbg.generated
     */
    List<VatStandardAccount> selectByExample(VatStandardAccountExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table StandardAccount
     *
     * @mbg.generated
     */
    VatStandardAccount selectByPrimaryKey(String ID);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table StandardAccount
     *
     * @mbg.generated
     */
    int updateByExampleSelective(@Param("record") VatStandardAccount record, @Param("example") VatStandardAccountExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table StandardAccount
     *
     * @mbg.generated
     */
    int updateByExample(@Param("record") VatStandardAccount record, @Param("example") VatStandardAccountExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table StandardAccount
     *
     * @mbg.generated
     */
    int updateByPrimaryKeySelective(VatStandardAccount record);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table StandardAccount
     *
     * @mbg.generated
     */
    int updateByPrimaryKey(VatStandardAccount record);

    List<TrialBalanceDto> selectProjectStandardAccountLeftJoinBalanceStdManual(@Param("fromMonth") String fromMonth,@Param("toMonth") String toMonth);

    VatStandardAccount selectOneByAccountCode(@Param("accountCode") String accountCode);
}