From 8b494bffc795adde7651d53523276057970c7078 Mon Sep 17 00:00:00 2001 From: salmanoe Date: Sun, 10 Jan 2021 13:32:22 +0700 Subject: [PATCH] - 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 --- .../dao/PegawaiHistoriRekapIndexDao.java | 7 +++++++ .../service/impl/PermohonanStatusPegawaiImpl.java | 15 ++++++++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PegawaiHistoriRekapIndexDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PegawaiHistoriRekapIndexDao.java index ba0142f0..2da48285 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PegawaiHistoriRekapIndexDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PegawaiHistoriRekapIndexDao.java @@ -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 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 listKomponenIndex); + + @Query(strQryCutiTerpakai + tahunHistoriPengajuan) + public Integer getHistoriCutiTerpakaiByTahunPengajuan(@Param("tahun") String tahun, + @Param("idPegawai") Integer idPegawai, @Param("listKomponenIndex") List listKomponenIndex); + } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PermohonanStatusPegawaiImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PermohonanStatusPegawaiImpl.java index f3a5aa5b..e03e333c 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PermohonanStatusPegawaiImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PermohonanStatusPegawaiImpl.java @@ -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; }