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 "
+ "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.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,
@Param("idJenisPermohonan") Integer idJenisPermohonan, @Param("tglAwal") Date tglAwal,
@Param("tglAkhir") Date tglAkhir);

View File

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

View File

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