package com.jasamedika.medifirst2000.dao.custom;

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

import org.springframework.data.repository.PagingAndSortingRepository;

import com.jasamedika.medifirst2000.entities.PlanningPegawaiStatus;

public interface PlanningPegawaiStatusDaoCustom extends PagingAndSortingRepository<PlanningPegawaiStatus, Long> {
	public Long countApprovalStatus(String sort, Integer idPegawai, String nama, String jenisPermohonan,
			Integer StatusPermohonan);

	public Long countApprovalStatus(String sort, Integer idPegawai, String nama, String jenisPermohonan,
			Integer StatusPermohonan, String tglPermohonan, Boolean isCutiLuarNegeri, Boolean isCutiLuarKota);

	public List<Map<String, Object>> getApprovalStatus(Integer idPegawai);

	public List<Map<String, Object>> getApprovalStatusPaging(int rowStart, int rowEnd, String sort, String dir,
			Integer idPegawai, String nama, String jenisPermohonan, Integer StatusPermohonan);

	public List<Map<String, Object>> getApprovalStatusPaging(int rowStart, int rowEnd, String sort, String dir,
			Integer idPegawai, String nama, String jenisPermohonan, Integer StatusPermohonan, String tglPermohonan,
			Boolean isCutiLuarNegeri, Boolean isCutiLuarKota);

	public List<Map<String, Object>> getApprovalStatusCutiAlasanPentingDanSakit();

	public List<Map<String, Object>> getApprovalStatusByNorecPlanning(Integer idPegawai, String noRec);

	public List<Map<String, Object>> getApprovalStatusByStatusPegawaiPlan(Integer idPegawai,
			Integer statusPegawaiPlanId);

	public Long countPermohonanStatusByPegawai(String sort, Integer idPegawai);

	public Long countApprovedStatus(String sort, Integer idPegawai, String nama, String jenisPermohonan,
			Integer statusPermohonan);

	public Long countApprovedStatus(String sort, Integer idPegawai, String nama, String jenisPermohonan,
			Integer statusPermohonan, String tglPermohonan, Boolean isCutiLuarNegeri, Boolean isCutiLuarKota);

	public List<Map<String, Object>> getListPermohonanDisetujuiByPegawai(int rowStart, int rowEnd, String sort,
			String dir, Integer idPegawai, String nama, String jenisPermohonan, Integer statusPermohonan);

	public List<Map<String, Object>> getListPermohonanDisetujuiByPegawai(int rowStart, int rowEnd, String sort,
			String dir, Integer idPegawai, String nama, String jenisPermohonan, Integer statusPermohonan,
			String tglPermohonan, Boolean isCutiLuarNegeri, Boolean isCutiLuarKota);

	public Long countPermohonanStatusAll(String sort, Integer idPegawai, String nama, String jenisPermohonan,
			Integer statusPermohonan);

	public Long countPermohonanStatusAll(String sort, Integer idPegawai, String nama, String jenisPermohonan,
			Integer statusPermohonan, String tglPermohonan, Boolean isCutiLuarNegeri, Boolean isCutiLuarKota);

	public List<Map<String, Object>> getListPermohonanStatusAll(int rowStart, int rowEnd, String sort, String dir,
			Integer idPegawai, String nama, String jenisPermohonan, Integer statusPermohonan);

	public List<Map<String, Object>> getListPermohonanStatusAll(int rowStart, int rowEnd, String sort, String dir,
			Integer idPegawai, String nama, String jenisPermohonan, Integer statusPermohonan, String tglPermohonan,
			Boolean isCutiLuarNegeri, Boolean isCutiLuarKota);

}
