- penyesuaian dengan surat edaran poin d dengan kesepakatan sebagai berikut : di tahun berjalan sisa cuti maksimal 18 adalah sisa cuti tanpa menghitung pengajuan sebelum tahun berjalan

This commit is contained in:
salmanoe 2021-01-10 13:32:22 +07:00
parent 15be0c79bf
commit 8b494bffc7
2 changed files with 21 additions and 1 deletions

View File

@ -103,6 +103,8 @@ public interface PegawaiHistoriRekapIndexDao extends PagingAndSortingRepository<
String tahunHistoriCutiTerpakai = " and to_char(listTagCuti.tgl, 'yyyy') < :tahun";
String tahunHistoriPengajuan = " and to_char(planPegStat.tglPengajuan, 'yyyy') < :tahun";
@Query(strQryCutiTerpakai + tahunCutiTerpakai)
public Integer getCutiTerpakai(@Param("tahun") String tahun, @Param("idPegawai") Integer idPegawai,
@Param("listKomponenIndex") List<Integer> listKomponenIndex);
@ -110,4 +112,9 @@ public interface PegawaiHistoriRekapIndexDao extends PagingAndSortingRepository<
@Query(strQryCutiTerpakai + tahunHistoriCutiTerpakai)
public Integer getHistoriCutiTerpakai(@Param("tahun") String tahun, @Param("idPegawai") Integer idPegawai,
@Param("listKomponenIndex") List<Integer> listKomponenIndex);
@Query(strQryCutiTerpakai + tahunHistoriPengajuan)
public Integer getHistoriCutiTerpakaiByTahunPengajuan(@Param("tahun") String tahun,
@Param("idPegawai") Integer idPegawai, @Param("listKomponenIndex") List<Integer> listKomponenIndex);
}

View File

@ -316,6 +316,13 @@ public class PermohonanStatusPegawaiImpl implements PermohonanStatusPegawaiServi
cutiTerpakaiN = 0;
}
// Menghitung cuti terpakai by histori pengajuan
Integer jumlahTglByPengajuan = pegawaiHistoriRekapIndexDao.getHistoriCutiTerpakaiByTahunPengajuan(year,
pegawaiId, listKomponenIndex);
if (CommonUtil.isNullOrEmpty(jumlahTglByPengajuan)) {
jumlahTglByPengajuan = 0;
}
Integer rekapHistoriCutiTerpakai = pegawaiHistoriRekapIndexDao.getHistoriCutiTerpakai(yearN2, pegawaiId,
listKomponenIndex);
if (CommonUtil.isNullOrEmpty(rekapHistoriCutiTerpakai)) {
@ -724,7 +731,13 @@ public class PermohonanStatusPegawaiImpl implements PermohonanStatusPegawaiServi
}
}
if (dataCutiN1 - jatahCutiTerpakaiN1 >= 6 && !jCutiN1) {
sisaCutiN1 = 6 - jatahCutiTerpakaiN1;
jumlahTglByPengajuan -= (dataHistoriCutiTerpakai + jatahCutiTerpakaiN2 + cutiTerpakaiB + cutiTerpakaiB1
+ cutiTerpakaiB2);
if (jumlahTglByPengajuan > jatahCutiTerpakaiN1) {
sisaCutiN1 = 6;
} else {
sisaCutiN1 = 6 - (jatahCutiTerpakaiN1 - jumlahTglByPengajuan);
}
} else {
sisaCutiN1 = dataCutiN1 - jatahCutiTerpakaiN1;
}