package vn.azteam.tpf.service;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import vn.azteam.tpf.service.dto.TBBlockDetailsReportDTO;
import vn.azteam.tpf.service.dto.TBFarmResultReportDTO;
import vn.azteam.tpf.service.dto.TBProductBlockDetailsReportDTO;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Date;

public interface ReportInOutMaterialService {
    void downloadReportInOutMaterials(Long customerId, Long suppliesTypeId, Date startDate, Date endDate, HttpServletResponse response) throws IOException;

    Page<TBBlockDetailsReportDTO> reportInOutMaterials(Long customerId, Long suppliesTypeId, Date startDate, Date endDate, Pageable pageable);

    void downloadReportFinishedGoodsWarehouse(Long customerId, Long cropId, Date startDate, Date endDate, HttpServletResponse response) throws IOException;

    Page<TBProductBlockDetailsReportDTO> reportFinishedGoodsWarehouse(Long customerId, Long cropId, Date startDate, Date endDate, Pageable pageable);

    void downloadReportFarmResult(Long customerId, Long cropId, Date startDate, Date endDate, HttpServletResponse response) throws IOException;

    Page<TBFarmResultReportDTO> reportFarmResult(Long customerId, Long cropId, Date startDate, Date endDate, Pageable pageable);
}
