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 2edf231a..0bca5cf3 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 @@ -551,15 +551,14 @@ public class JatahCutiDanIzinServiceImpl implements JatahCutiDanIzinService { Date previousYear = DateUtil.getInstanceCalendar(-1); Date janFirstPrevYear = DateUtil.startYear(previousYear); Date decEndPrevYear = DateUtil.endYear(previousYear); - List listPresensiPrevYear = mapKalenderToHariLiburDao.getPresensiByTahun(request.getPegawaiId(), - janFirstPrevYear, decEndPrevYear); - List listCBPrevYear = mapKalenderToHariLiburDao.getByTahun(LIBUR_CB, janFirstPrevYear, decEndPrevYear); + List listCBPrevYear = mapKalenderToHariLiburDao.getByTahun(LIBUR_CB, janFirstPrevYear, + decEndPrevYear); int countCBPrevYear = listCBPrevYear.size(); List listCBPrevYearSuspended = listCBPrevYear.stream() - .filter(MapKalenderToHariLibur::getIsCutiBersamaDitangguhkan) - .collect(Collectors.toList()); - int countCBSuspended = listCBPrevYearSuspended.size(); + .filter(MapKalenderToHariLibur::getIsCutiBersamaDitangguhkan).collect(Collectors.toList()); int countCBAllocated = 0; + List listPresensiPrevYear = mapKalenderToHariLiburDao + .getPresensiByTahun(request.getPegawaiId(), janFirstPrevYear, decEndPrevYear); for (PresensiHariLibur presensiPrevYear : listPresensiPrevYear) { for (MapKalenderToHariLibur cbPrevYearSuspended : listCBPrevYearSuspended) { if (presensiPrevYear.getTanggal().equals(cbPrevYearSuspended.getTanggal().getTanggal())) { @@ -568,8 +567,12 @@ public class JatahCutiDanIzinServiceImpl implements JatahCutiDanIzinService { } } } - if (dto.getCutiTerpakaiB1() < countCBPrevYear && countCBPrevYear - dto.getCutiTerpakaiB1() > countCBSuspended) - dto.setDataCutiB(countCBSuspended); + if (dto.getCutiTerpakaiB1() < countCBPrevYear) { + if (countCBPrevYear - dto.getCutiTerpakaiB1() > countCBAllocated) { + dto.setDataCutiB(dto.getDataCutiB() + countCBAllocated); + dto.setSisaCutiB(dto.getDataCutiB() - dto.getCutiTerpakaiB()); + } + } return dto; }