44 lines
2.2 KiB
Java
44 lines
2.2 KiB
Java
package com.jasamedika.medifirst2000.dao;
|
|
|
|
import com.jasamedika.medifirst2000.entities.SlipGajiKomponen;
|
|
import org.springframework.data.jpa.repository.JpaRepository;
|
|
import org.springframework.data.jpa.repository.Query;
|
|
import org.springframework.data.repository.query.Param;
|
|
|
|
import java.util.Date;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
|
|
/**
|
|
* @author salmanoe
|
|
* @since Jan 30, 2023
|
|
*/
|
|
public interface SlipGajiKomponenDao extends JpaRepository<SlipGajiKomponen, String> {
|
|
@Query("select new Map(sgk.id as id," + "sgk.komponen.jenisKomponen as idJenisKomponen,"
|
|
+ "case when sgk.komponen.jenisKomponen = 1 then 'Gaji' "
|
|
+ "when sgk.komponen.jenisKomponen = 2 then 'Remunerasi' "
|
|
+ "when sgk.komponen.jenisKomponen = 3 then 'Uang Makan' "
|
|
+ "when sgk.komponen.jenisKomponen = 4 then 'Potongan Gaji' "
|
|
+ "when sgk.komponen.jenisKomponen = 5 then 'Potongan Remunerasi' "
|
|
+ "when sgk.komponen.jenisKomponen = 6 then 'Potongan Uang Makan' end as jenisKomponen,"
|
|
+ "sgk.komponen.id as idKomponen," + "sgk.komponen.namaKomponen as namaKomponen,"
|
|
+ "sgk.nominal as nominal) " + "from SlipGajiKomponen sgk " + "where sgk.slipGaji.pegawai.id = :pegawaiId "
|
|
+ "and sgk.slipGaji.bulan between :start and :end "
|
|
+ "order by sgk.komponen.jenisKomponen, sgk.komponen.id")
|
|
List<Map<String, Object>> findAll(@Param("pegawaiId") Integer pegawaiId, @Param("start") Date start,
|
|
@Param("end") Date end);
|
|
|
|
@Query("select new Map(sgk.id as id," + "pg.id as idPegawai," + "mk.id as idKomponen," + "sgk.nominal as nominal) "
|
|
+ "from SlipGajiKomponen sgk " + "inner join sgk.slipGaji sg " + "inner join sgk.komponen mk "
|
|
+ "inner join sg.pegawai pg " + "where sg.bulan between :start and :end " + "order by pg.id, mk.id")
|
|
List<Map<String, Object>> findAll(@Param("start") Date start, @Param("end") Date end);
|
|
|
|
@Query("select sgk from SlipGajiKomponen sgk " + "where sgk.slipGaji.id = :idSlipGaji "
|
|
+ "and sgk.komponen.id = :idKomponen")
|
|
SlipGajiKomponen findBySlipGajiAndKomponen(@Param("idSlipGaji") String idSlipGaji,
|
|
@Param("idKomponen") Integer idKomponen);
|
|
|
|
@Query("select sgk from SlipGajiKomponen sgk " + "where sgk.slipGaji.id in (:listIdSlipGaji)")
|
|
List<SlipGajiKomponen> findAllBySlipGaji(@Param("listIdSlipGaji") List<String> listIdSlipGaji);
|
|
}
|