Salman Manoe fdbc4548cc Update service slip gaji
Penerapan perubahan cetakan slip gaji
2023-11-19 16:51:31 +07:00

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);
}