diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/JatahCutiDanIzinServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/JatahCutiDanIzinServiceImpl.java index a2a8bfab..3aa9f92b 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/JatahCutiDanIzinServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/JatahCutiDanIzinServiceImpl.java @@ -54,9 +54,7 @@ public class JatahCutiDanIzinServiceImpl implements JatahCutiDanIzinService { @Override public DataCutiDto getDataCuti(Integer pegawaiId, String year, Integer statusPegawaiId) { - DataCutiDto dto = calculateCutiIzin(pegawaiId, year, statusPegawaiId); - JatahCutiRequest jatahCutiRequest = transform(pegawaiId, year, statusPegawaiId); - return tangguhkanCutiBersama(dto, jatahCutiRequest); + return calculateCutiIzin(pegawaiId, year, statusPegawaiId); } private DataCutiDto calculateCutiIzin(Integer pegawaiId, String year, Integer statusPegawaiId) { @@ -231,7 +229,6 @@ public class JatahCutiDanIzinServiceImpl implements JatahCutiDanIzinService { } } dataCutiB = countDataHabsen; - cutiIzinBuilder.dataCutiB(dataCutiB); // kondisikan cuti bersama yg sudah berlalu if (cutiTerpakaiN2 > dataCutiB2) { cutiTerpakaiB2 = dataCutiB2; @@ -243,6 +240,10 @@ public class JatahCutiDanIzinServiceImpl implements JatahCutiDanIzinService { } else { cutiTerpakaiB1 = cutiTerpakaiN1; } + JatahCutiRequest jatahCutiRequest = transform(pegawaiId, year, statusPegawaiId); + int jatahCutiBersamaDitangguhkan = tangguhkanCutiBersama(cutiTerpakaiB1, jatahCutiRequest); + dataCutiB += jatahCutiBersamaDitangguhkan; + cutiIzinBuilder.dataCutiB(dataCutiB); // Mendapatkan kondisi penangguhan saat ini cutiIzinBuilder.isTangguhkanB2(false); cutiIzinBuilder.isTangguhkanB1(false); @@ -552,7 +553,7 @@ public class JatahCutiDanIzinServiceImpl implements JatahCutiDanIzinService { return JatahCutiRequest.builder().pegawaiId(pegawaiId).year(year).statusPegawaiId(statusPegawaiId).build(); } - private DataCutiDto tangguhkanCutiBersama(DataCutiDto dto, JatahCutiRequest request) { + private int tangguhkanCutiBersama(Integer cutiBersamaTerpakaiTahunLalu, JatahCutiRequest request) { if (CommonUtil.isNullOrEmpty(request.getYear())) request.setYear(String.valueOf(DateUtil.getYear(new Date()))); Date tahunLalu = DateUtil.getInstanceCalendar(-1); @@ -563,7 +564,7 @@ public class JatahCutiDanIzinServiceImpl implements JatahCutiDanIzinService { List listPresensiCutiBersamaBisaDitangguhkan = listPresensiTahunLalu.stream() .filter(HariLiburTerpakai::getIsCutiBersamaDitangguhkan).collect(Collectors.toList()); if (listPresensiCutiBersamaBisaDitangguhkan.isEmpty()) - return dto; + return 0; List listCutiDiCutiBersamaTahunLalu = tanggalCutiDao.getCutiByTahun(request.getPegawaiId(), LIBUR_CB, awalTahunLalu, akhirTahunLalu); if (DateUtil.getYear(new Date()) == Integer.parseInt(request.getYear())) { @@ -571,17 +572,16 @@ public class JatahCutiDanIzinServiceImpl implements JatahCutiDanIzinService { .notApprovedByPermohonan(request.getPegawaiId(), CUTI_TAHUNAN, awalTahunLalu, akhirTahunLalu); int presensiCutiBersama = listPresensiTahunLalu.size(); int cutiDiCutiBersama = listCutiDiCutiBersamaTahunLalu.size(); - int sisaJatah = presensiCutiBersama + cutiDiCutiBersama - dto.getCutiTerpakaiB1(); + int sisaJatah = presensiCutiBersama + cutiDiCutiBersama - cutiBersamaTerpakaiTahunLalu; int jatahDitangguhkan = listPresensiCutiBersamaBisaDitangguhkan.size() - listCutiTahunLaluBelumDisetujui.size(); if (jatahDitangguhkan >= sisaJatah) { if (jatahDitangguhkan < 0) jatahDitangguhkan = 0; - dto.setDataCutiB(dto.getDataCutiB() + jatahDitangguhkan); - dto.setSisaCutiB(dto.getDataCutiB() - dto.getCutiTerpakaiB()); + return jatahDitangguhkan; } } - return dto; + return 0; } }