Merge branch 'dev/pegawai/cuti' into dev/no-cron

This commit is contained in:
Salman Manoe 2025-01-17 16:57:47 +07:00
commit 119d15ef43
3 changed files with 19 additions and 12 deletions

View File

@ -56,7 +56,8 @@ public interface ListTanggalCutiDao extends PagingAndSortingRepository<ListTangg
@Query("select tc from ListTanggalCuti tc " + "inner join tc.planningPegawaiStatus ps " @Query("select tc from ListTanggalCuti tc " + "inner join tc.planningPegawaiStatus ps "
+ "where tc.statusEnabled is true " + "and ps.statusEnabled is true " + "and ps.noSkId is null " + "where tc.statusEnabled is true " + "and ps.statusEnabled is true " + "and ps.noSkId is null "
+ "and ps.approvalStatus not in (1, 3) " + "and ps.pegawaiId = :idPegawai " + "and ps.approvalStatus not in (1, 3) " + "and ps.pegawaiId = :idPegawai "
+ "and ps.statusPegawaiPlanId = :idJenisPermohonan " + "and tc.tgl between :tglAwal and :tglAkhir") + "and ps.statusPegawaiPlanId = :idJenisPermohonan " + "and tc.tgl between :tglAwal and :tglAkhir "
+ "and ps.tglPengajuan between :tglAwal and :tglAkhir")
List<ListTanggalCuti> notApprovedByPermohonan(@Param("idPegawai") Integer idPegawai, List<ListTanggalCuti> notApprovedByPermohonan(@Param("idPegawai") Integer idPegawai,
@Param("idJenisPermohonan") Integer idJenisPermohonan, @Param("tglAwal") Date tglAwal, @Param("idJenisPermohonan") Integer idJenisPermohonan, @Param("tglAwal") Date tglAwal,
@Param("tglAkhir") Date tglAkhir); @Param("tglAkhir") Date tglAkhir);

View File

@ -287,7 +287,7 @@ public class JatahCutiDanIzinServiceImpl implements JatahCutiDanIzinService {
if (dataCutiN2 > 0) { if (dataCutiN2 > 0) {
if (allCutiTerpakai >= dataCutiN2) { if (allCutiTerpakai >= dataCutiN2) {
if (difCutiTerpakai(cutiTerpakaiN2, dataCutiB2) if (difCutiTerpakai(cutiTerpakaiN2, dataCutiB2)
+ difCutiTerpakai(cutiTerpakaiN1, dataCutiB1) < 12) { + difCutiTerpakai(cutiTerpakaiN1, dataCutiB1) < dataCutiN2) {
jatahCutiTerpakaiN2 = difCutiTerpakai(cutiTerpakaiN2, dataCutiB2) jatahCutiTerpakaiN2 = difCutiTerpakai(cutiTerpakaiN2, dataCutiB2)
+ difCutiTerpakai(cutiTerpakaiN1, dataCutiB1); + difCutiTerpakai(cutiTerpakaiN1, dataCutiB1);
} else { } else {
@ -295,14 +295,15 @@ public class JatahCutiDanIzinServiceImpl implements JatahCutiDanIzinService {
} }
} else { } else {
if (difCutiTerpakai(cutiTerpakaiN2, dataCutiB2) if (difCutiTerpakai(cutiTerpakaiN2, dataCutiB2)
+ difCutiTerpakai(cutiTerpakaiN1, dataCutiB1) < 12) { + difCutiTerpakai(cutiTerpakaiN1, dataCutiB1) < dataCutiN2) {
jatahCutiTerpakaiN2 = difCutiTerpakai(cutiTerpakaiN2, dataCutiB2) jatahCutiTerpakaiN2 = difCutiTerpakai(cutiTerpakaiN2, dataCutiB2)
+ difCutiTerpakai(cutiTerpakaiN1, dataCutiB1); + difCutiTerpakai(cutiTerpakaiN1, dataCutiB1);
} else { } else {
jatahCutiTerpakaiN2 = allCutiTerpakai; jatahCutiTerpakaiN2 = allCutiTerpakai;
} }
} }
if (difCutiTerpakai(cutiTerpakaiN2, dataCutiB2) + difCutiTerpakai(cutiTerpakaiN1, dataCutiB1) < 12) { if (difCutiTerpakai(cutiTerpakaiN2, dataCutiB2)
+ difCutiTerpakai(cutiTerpakaiN1, dataCutiB1) < dataCutiN2) {
if (difCutiTerpakai(cutiTerpakaiN2, dataCutiB2) > 0) { if (difCutiTerpakai(cutiTerpakaiN2, dataCutiB2) > 0) {
sisaCutiN2 = 0; // hangus sisaCutiN2 = 0; // hangus
} else { } else {
@ -561,14 +562,16 @@ public class JatahCutiDanIzinServiceImpl implements JatahCutiDanIzinService {
.filter(PresensiHariLibur::getIsCutiBersamaDitangguhkan).collect(Collectors.toList()); .filter(PresensiHariLibur::getIsCutiBersamaDitangguhkan).collect(Collectors.toList());
if (listPresensiCutiBersamaBisaDitangguhkan.isEmpty()) if (listPresensiCutiBersamaBisaDitangguhkan.isEmpty())
return dto; return dto;
List<ListTanggalCuti> listCutiTahunLaluBelumDisetujui = tanggalCutiDao if (DateUtil.getYear(new Date()) == Integer.parseInt(request.getYear())) {
.notApprovedByPermohonan(request.getPegawaiId(), CUTI_TAHUNAN, awalTahunLalu, akhirTahunLalu); List<ListTanggalCuti> listCutiTahunLaluBelumDisetujui = tanggalCutiDao
int presensiCutiBersama = listPresensiTahunLalu.size(); .notApprovedByPermohonan(request.getPegawaiId(), CUTI_TAHUNAN, awalTahunLalu, akhirTahunLalu);
int jatahDitangguhkan = listPresensiCutiBersamaBisaDitangguhkan.size(); int presensiCutiBersama = listPresensiTahunLalu.size();
if (presensiCutiBersama - dto.getCutiTerpakaiB1() int jatahDitangguhkan = listPresensiCutiBersamaBisaDitangguhkan.size();
- listCutiTahunLaluBelumDisetujui.size() >= jatahDitangguhkan) { if (presensiCutiBersama - dto.getCutiTerpakaiB1()
dto.setDataCutiB(dto.getDataCutiB() + jatahDitangguhkan); - listCutiTahunLaluBelumDisetujui.size() >= jatahDitangguhkan) {
dto.setSisaCutiB(dto.getDataCutiB() - dto.getCutiTerpakaiB()); dto.setDataCutiB(dto.getDataCutiB() + jatahDitangguhkan);
dto.setSisaCutiB(dto.getDataCutiB() - dto.getCutiTerpakaiB());
}
} }
return dto; return dto;
} }

View File

@ -2052,6 +2052,9 @@ public class PermohonanStatusPegawaiImpl implements PermohonanStatusPegawaiServi
if (vo.getKomponenIndex().getId().equals(mapDataCuti.get("komponenIndex")) if (vo.getKomponenIndex().getId().equals(mapDataCuti.get("komponenIndex"))
&& vo.getTahun().equals(mapDataCuti.get("tahun").toString())) { && vo.getTahun().equals(mapDataCuti.get("tahun").toString())) {
jatahCutiDanIzin.setValue(vo.getValue()); jatahCutiDanIzin.setValue(vo.getValue());
} else if (todaysYear == Integer.parseInt(vo.getTahun())
&& todaysYear1 == Integer.parseInt(mapDataCuti.get("tahun").toString())) {
jatahCutiDanIzin.setValue(cutiIzin.getDataCutiB1());
} else { } else {
jatahCutiDanIzin.setValue(currentData.getValue()); jatahCutiDanIzin.setValue(currentData.getValue());
} }