package com.goafanti.expenseAccount.service;

import com.goafanti.common.model.ExpenseAccount;
import com.goafanti.core.mybatis.page.Pagination;
import com.goafanti.expenseAccount.bo.*;

import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.util.List;

public interface ExpenseAccountService {

    Integer add(InputExpenseAccount in);

    int update(InputExpenseAccount in);

    int addDetails(InputExpenseAccountDetails in);

    int deleteDetails(Integer id);

    List<OutExpenseAccountDetails> detailsList(Integer eaid);

    Object logList(Integer eaid);


    int updateExamine(InputExpenseAccount in);

    Pagination<?> pageList(InputPageListBo in);

    Object selectByPrid(InputExpenseAccount in);

    Object selectById(Integer id);

    Object updateType(InputExpenseAccount in);

    List<OutExpenseAccount> selectDebitOrder(String depId,Integer id);

    List<OutExpenseAccountStatistics> statistics(String name,String depId,String startTime,String endTime,String lander);


    void statisticsEvict(String name, String depId, String startTime, String endTime);

    Object pushSupplementCheckNo();

    Object selectByCheckNo(String checkNo);

    Object pushMerge(List<ExpenseAccount> list);

    Object mainExpense(Integer id);

    Object updateMain(MainExpenseAccount in);

    Object mainList(ExpenseMainListInput id);

    Object detailsList(InputDetailsListBo in);

    List<ExpenseAccount> selectByIds(List<String> list);

    int selectCountByIdsAndType(List<String> list, Integer i);

    Object updateRealAmount(Integer type, Integer id, BigDecimal amount);

    void pushAll();

    Object updateDebitId(InputExpenseAccount in);

    Object delete(String id);

    Object pageListExport(InputPageListBo in);

    Object detailsListExport(InputDetailsListBo in);

    Object getDepDetails(Integer id);

    Object updateTypeOther(Integer id, String typeOther,String remarks,String orderNo);

    Object updateDetailsTypeOther(Integer id, String typeOther);

    Object mainExpenseExport(Integer id, HttpServletResponse response);

    void pushExpenseTotalAmount();
}
