package com.jasamedika.medifirst2000.dao.custom;

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

import com.jasamedika.medifirst2000.dao.custom.base.CoreDao;
import com.jasamedika.medifirst2000.entities.IndekKinerja;

public interface IndeksKinerjaDaoCustom extends CoreDao<IndekKinerja>{
	
	List<Map<String,Object>> findAllProdukPerTanggal(Integer id,String tanggal,List<Integer> listIdJenisProduk, Boolean isRawatInap, Integer idProduk,Double harga,List<Integer> listIdDetailJenisProduk);	
	
	List<Map<String,Object>> findTindakanByIdUser(Integer id,String tanggal,List<Integer> listIdJenisProduk, Boolean isRawatInap, List<Integer> listDetailJenisProduk);	
	
	Date convertDateCustom(String tanggal,Boolean isRawatInap,Boolean isStartDate);

	List<String> findHariLibur(String tanggal);
	
	List<Map<String,Object>> findAllProdukPerPeriode(Integer id,String tanggal,List<Integer> listIdJenisProduk, Boolean isRawatInap,Integer idProduk,Double harga,List<String> listFriday,List<String> listSK,List<String> listRanap, List<Integer> listDetailException);
	
	List<Map<String,Object>> findAllProdukPerPeriodeFeeForServices(Integer id,String tanggal,List<Integer> listIdJenisProduk, Boolean isRawatInap,Integer idProduk,Double harga,Boolean isFriday, List<Integer> listDetailException);	
	
	List<Map<String,Object>> findDetailAllProdukPerPeriode(Integer id,String tanggal,List<Integer> listIdJenisProduk);	
	
	List<String>  convertMonthtoDateCustom(String periode,Boolean isFriday);
	
	List<String>  convertMonthtoDateCustomFeeForService(String periode,Boolean isFriday);
	
	List<Map<String,Object>> findPatientDetailForEveryTindakan(Integer idProduk, Double harga,Integer idPegawai,String tgl,List<String> listFriday,List<String> listSK,List<String> listRanap);
/*
	List<Map<String, Object>> findAllProdukPerPeriodeFeeForServicesReports(Integer id, String periode,
			List<Integer> listIdJenisProduk, 	List<Integer>  tindakans );

	List<Map<String, Object>> findAllProdukPerPeriodeReports(Integer id, String periode,
			List<Integer> listIdJenisProduk);

	List<Map<String, Object>> findAllProdukPerPeriodeFeeForServicesReportsRekap(Integer id, String periode,
			List<Integer> listIdJenisProduk);

	List<Map<String, Object>> findAllProdukPerPeriodeReportsRekap(Integer id, String periode,
			List<Integer> listIdJenisProduk);*/

	List<Map<String, Object>> findAllProdukPerPeriodeFeeForServicesNewReport(Integer id, String periode,
			List<Integer> listIdJenisProduk, Boolean isRawatInap, Integer idProduk, Double harga, Boolean isFriday);

	int findAllProdukPerPeriodeRekap(Integer id,String tanggal,List<Integer> listIdJenisProduk, Boolean isRawatInap,Integer idProduk,Double harga,List<String> listFriday,List<String> listSK,List<String> listRanap, List<Integer> listDetailException);

	int findAllProdukPerPeriodeFeeForServicesReport(Integer id,String tanggal,List<Integer> listIdJenisProduk, Boolean isRawatInap,Integer idProduk,Double harga,Boolean isFriday, List<Integer> listDetailException);

	List<Map<String, Object>> findPatientDetailForEveryTindakanAll(Integer idProduk, Double harga, Integer idPegawai,
			String tgl, List<String> listFriday, List<String> listSK, List<String> listRanap);	
	
	List<Map<String, Object>> findPatientDetailForEveryTindakanAllV2(Integer idPegawai,
			String tgl, List<String> listFriday, List<String> listSK, List<String> listRanap);	
	
	//List<Map<String,Object>> findAllProdukPerPeriodeReport(Integer id,String tanggal,List<Integer> listIdJenisProduk, Boolean isFriday);	
}
