package com.jasamedika.medifirst2000.dao;
import java.util.List;

import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;

import com.jasamedika.medifirst2000.entities.MapPengendaliToJabatan;

@Repository("MapPengendaliToJabatanDao")
public interface MapPengendaliToJabatanDao extends PagingAndSortingRepository<MapPengendaliToJabatan, Integer> {

	@Query("select map.pengendaliId from Jabatan jabatan,MapPengendaliToJabatan map,Pegawai pegawai "
			+ "where jabatan.id=map.jabatanId and pegawai.id=(Select cast(s.nilaiField as int) "
			+ "from  SettingDataFixed s where s.namaField='KdDirekturUmumDanOperasional') "
			+ "and jabatan.id=:jabatanId ")
	List<Integer> getPengendaliInDirekturUmum(@Param("jabatanId") Integer jabatanId);
	
	@Query("select map.pengendaliId from Jabatan jabatan,MapPengendaliToJabatan map,Pegawai pegawai "
			+ "where jabatan.id=map.jabatanId and pegawai.id=(Select cast(s.nilaiField as int) "
			+ "from  SettingDataFixed s where s.namaField='KdDirekturSumberDayaManusia') "
			+ "and jabatan.id=:jabatanId ")
	List<Integer> getPengendaliInDirekturSdm(@Param("jabatanId") Integer jabatanId);
	
	@Query("select map.pengendaliId from Jabatan jabatan,MapPengendaliToJabatan map,Pegawai pegawai "
			+ "where jabatan.id=map.jabatanId and pegawai.id=(Select cast(s.nilaiField as int) "
			+ "from  SettingDataFixed s where s.namaField='KdDirekturMedikDanPerawatan') "
			+ "and jabatan.id=:jabatanId ")
	List<Integer> getPengendaliInDirekturMedik(@Param("jabatanId") Integer jabatanId);
	// custom query

	@Query("select map.pengendaliId from Jabatan jabatan,MapPengendaliToJabatan map,Pegawai pegawai "
			+ "where jabatan.id=map.jabatanId and pegawai.id=(Select cast(s.nilaiField as int) "
			+ "from  SettingDataFixed s where s.namaField='KdDirekturKeuangan') "
			+ "and jabatan.id=:jabatanId ")
	List<Integer> getPengendaliInDirekturKeuangan(@Param("jabatanId") Integer jabatanId);

}