package com.jwipc.supplier.logic;

import com.jwipc.page.PageView;
import com.jwipc.supplier.dto.*;
import com.jwipc.supplier.model.query.SupplierPurchaseCategoryBaseQuery;
import com.jwipc.supplier.model.query.SupplierPurchaseCategorySelectQuery;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;
import java.util.Set;

/**
 * <p> </p>
 *
 * @author BOGON
 * @version 1.0
 * @since JDK 1.8
 */
public interface SupplierPurchaseCategoryLogic {
    List<SupplierPurchaseCategoryBaseDTO> listByInvitation(Long invitationId);

    PageView listSupplier(SupplierPurchaseCategorySelectQuery query);

    void saveAuthFile(Long id, String fileIds);

    PageView getPotentialList(SupplierPurchaseCategoryBaseQuery query);
    List<SupplierPotentialListDTO> getPotentialAllList(SupplierPurchaseCategoryBaseQuery query);

    void convertSmallbatch(String id);

    PageView getSmallbatchList(SupplierPurchaseCategoryBaseQuery query);

    void saveOnSiteAuthenticationFile(Long id, String fileIds);

    void convertQualified(Long id, String demoIds);

    PageView getQualifiedList(SupplierPurchaseCategoryBaseQuery query);

    void sumbmitDemoRel(Long id, String demoIds);

    PageView getDemo(Long id);

    void updateFirst(Long id);

    @Transactional(rollbackFor = Exception.class)
    void updateFirstForAll(Long supplierId);

    void saveOrUpdate(SupplierPurchaseCategoryBaseDTO supplierPurchaseCategoryBaseDTO);

    PageView getMainDataList(SupplierPurchaseCategoryBaseQuery query);

    void updateFreeze(Set<String> purchaseOrgCodes,Long supplierId,Integer state);

    List<SupplierMainDataListDTO> findForMainDataExport(SupplierPurchaseCategoryBaseQuery query);

    List<SupplierBankDMDTO> findForBankdmReportExport(SupplierPurchaseCategoryBaseQuery query);

    List<SupplierProductTypeDMDTO> findForProducttypedmReportExport(SupplierPurchaseCategoryBaseQuery query);

    List<SupplierContactsDMDTO> findForContactdmReportExport(SupplierPurchaseCategoryBaseQuery query);

    List<SupplierSmallbatchListDTO> getSmallbatchAllList(SupplierPurchaseCategoryBaseQuery query);

    List<SupplierQualifiedListDTO> getQualifiedAllList(SupplierPurchaseCategoryBaseQuery query);

    String findCurryCode(String supplierCode);

    void updateReportFlag(String ids);

    void updateSqeReject(String ids,String remark);

    List<SupplierPurchaseCategoryBaseDTO> getCompanyCategoryAndSupplierIds(String companyCode, String purchaseOrgCode, String supplierIds);
    SupplierPurchaseCategoryBaseDTO getCompanyAndSupplierCode(String companyCode, String supplierCode);

    List<SupplierReportDTO> findForSupplierReportExport(SupplierPurchaseCategoryBaseQuery query);

    void importSupplierApproval(String ids);
}