From d3b3266e30b6f8017cc3310c785d806b568a1eed Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Fri, 21 Jul 2023 16:08:39 +0700 Subject: [PATCH] Update service slip gaji Penambahan komponen potongan bpjs --- .../medifirst2000/constants/Master.java | 1 + .../service/impl/ReportServiceImpl.java | 214 +++++++----------- .../service/impl/SlipGajiServiceImpl.java | 24 +- .../medifirst2000/dto/SlipPotonganDto.java | 22 +- .../WEB-INF/templates/jrxml/slipGaji.jrxml | 49 +++- .../controller/SlipGajiController.java | 43 ++-- 6 files changed, 165 insertions(+), 188 deletions(-) diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java index 0ced5489..fdc02880 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java @@ -248,6 +248,7 @@ public class Master { public static final Integer BIAYA_RAWAT_INAP = 17; public static final Integer BIAYA_RAWAT_JALAN = 18; public static final Integer POTONGAN_TOKO_KOPERASI = 19; + public static final Integer POTONGAN_BPJS = 20; } public static final class KomponenHarga { diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/ReportServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/ReportServiceImpl.java index e72f7e32..1fbcd928 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/ReportServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/ReportServiceImpl.java @@ -1,5 +1,27 @@ package com.jasamedika.medifirst2000.service.impl; +import com.jasamedika.medifirst2000.constants.Master; +import com.jasamedika.medifirst2000.dao.*; +import com.jasamedika.medifirst2000.dao.custom.LimbahB3MasukDaoCustom; +import com.jasamedika.medifirst2000.dao.custom.ReportPelayananDaoCustom; +import com.jasamedika.medifirst2000.dto.*; +import com.jasamedika.medifirst2000.entities.*; +import com.jasamedika.medifirst2000.exception.ServiceVOException; +import com.jasamedika.medifirst2000.service.*; +import com.jasamedika.medifirst2000.util.AgeCalculator; +import com.jasamedika.medifirst2000.util.CommonUtil; +import com.jasamedika.medifirst2000.util.CurrencyUtil; +import com.jasamedika.medifirst2000.util.DateUtil; +import com.jasamedika.medifirst2000.vo.PasienVO; +import org.apache.commons.lang.time.DurationFormatUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.ParameterizedTypeReference; +import org.springframework.http.*; +import org.springframework.orm.jpa.JpaSystemException; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.client.RestTemplate; + import java.math.BigDecimal; import java.text.DateFormat; import java.text.NumberFormat; @@ -9,88 +31,7 @@ import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Calendar; -import java.util.Collections; -import java.util.Comparator; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Locale; -import java.util.Map; - -import org.apache.commons.lang.time.DurationFormatUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.core.ParameterizedTypeReference; -import org.springframework.http.HttpEntity; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; -import org.springframework.http.MediaType; -import org.springframework.http.ResponseEntity; -import org.springframework.orm.jpa.JpaSystemException; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.client.RestTemplate; - -import com.jasamedika.medifirst2000.constants.Master; -import com.jasamedika.medifirst2000.dao.HistoriUsulanRincianKegiatanDao; -import com.jasamedika.medifirst2000.dao.IkiDanRemunerasiDao; -import com.jasamedika.medifirst2000.dao.JabatanDao; -import com.jasamedika.medifirst2000.dao.JenisLimbahB3MasukDao; -import com.jasamedika.medifirst2000.dao.KalenderDao; -import com.jasamedika.medifirst2000.dao.LimbahB3KeluarDao; -import com.jasamedika.medifirst2000.dao.MapPegawaiJabatanToUnitKerjaDao; -import com.jasamedika.medifirst2000.dao.MonitoringAbsenDao; -import com.jasamedika.medifirst2000.dao.NilaiIndexKinerjaIndividuDao; -import com.jasamedika.medifirst2000.dao.PegawaiDao; -import com.jasamedika.medifirst2000.dao.PegawaiHistoriRekapIndexDao; -import com.jasamedika.medifirst2000.dao.PencatatanSuhuMesinDao; -import com.jasamedika.medifirst2000.dao.PlanningPegawaiStatusDao; -import com.jasamedika.medifirst2000.dao.ReportingDao; -import com.jasamedika.medifirst2000.dao.SettingDataFixedDao; -import com.jasamedika.medifirst2000.dao.SlipGajiDao; -import com.jasamedika.medifirst2000.dao.StatusPegawaiDao; -import com.jasamedika.medifirst2000.dao.UnitKerjaDao; -import com.jasamedika.medifirst2000.dao.custom.LimbahB3MasukDaoCustom; -import com.jasamedika.medifirst2000.dao.custom.ReportPelayananDaoCustom; -import com.jasamedika.medifirst2000.dto.BuktiPenerimaanBarangDto; -import com.jasamedika.medifirst2000.dto.HPSDto; -import com.jasamedika.medifirst2000.dto.HeadDto; -import com.jasamedika.medifirst2000.dto.HeadKasirDto; -import com.jasamedika.medifirst2000.dto.KartuPengendaliDto; -import com.jasamedika.medifirst2000.dto.KartuPulangPasienDto; -import com.jasamedika.medifirst2000.dto.KwitansiDto; -import com.jasamedika.medifirst2000.dto.LampiranSPPHDto; -import com.jasamedika.medifirst2000.dto.RekapPendapatanHarianPoliklinikDto; -import com.jasamedika.medifirst2000.dto.SlipGajiDto; -import com.jasamedika.medifirst2000.dto.SlipGajiKomponenDto; -import com.jasamedika.medifirst2000.dto.SlipHeaderDto; -import com.jasamedika.medifirst2000.dto.SlipJumlahDto; -import com.jasamedika.medifirst2000.dto.SlipPegawaiDto; -import com.jasamedika.medifirst2000.dto.SlipPenerimaanDto; -import com.jasamedika.medifirst2000.dto.SlipPotonganDto; -import com.jasamedika.medifirst2000.dto.SuratPesananSementaraDto; -import com.jasamedika.medifirst2000.entities.Jabatan; -import com.jasamedika.medifirst2000.entities.JenisLimbahB3Masuk; -import com.jasamedika.medifirst2000.entities.LoginUser; -import com.jasamedika.medifirst2000.entities.PegawaiHistoriRekapIndex; -import com.jasamedika.medifirst2000.entities.PlanningPegawaiStatus; -import com.jasamedika.medifirst2000.entities.StatusPegawai; -import com.jasamedika.medifirst2000.entities.UnitKerjaPegawai; -import com.jasamedika.medifirst2000.exception.ServiceVOException; -import com.jasamedika.medifirst2000.service.LoginUserService; -import com.jasamedika.medifirst2000.service.MonitoringAbsenService; -import com.jasamedika.medifirst2000.service.PegawaiService; -import com.jasamedika.medifirst2000.service.PengkajianAwalTransaksiService; -import com.jasamedika.medifirst2000.service.PermohonanStatusPegawaiService; -import com.jasamedika.medifirst2000.service.ReportService; -import com.jasamedika.medifirst2000.service.SlipGajiService; -import com.jasamedika.medifirst2000.util.AgeCalculator; -import com.jasamedika.medifirst2000.util.CommonUtil; -import com.jasamedika.medifirst2000.util.CurrencyUtil; -import com.jasamedika.medifirst2000.util.DateUtil; -import com.jasamedika.medifirst2000.vo.PasienVO; +import java.util.*; @Service("ReportService") public class ReportServiceImpl extends BaseVoServiceImpl implements ReportService { @@ -3440,10 +3381,8 @@ public class ReportServiceImpl extends BaseVoServiceImpl implements ReportServic @Override public List> getHistoriUsulanRincianKegiatan(Integer idPelaksanaanTugas, Integer idRincianKegiatan) { - List> result = historiUsulanRincianKegiatanDao.getHistori(idPelaksanaanTugas, + return historiUsulanRincianKegiatanDao.getHistori(idPelaksanaanTugas, idRincianKegiatan); - - return result; } @Override @@ -3481,61 +3420,64 @@ public class ReportServiceImpl extends BaseVoServiceImpl implements ReportServic result.put("biayaRawatInap", "-"); result.put("biayaRawatJalan", "-"); result.put("potonganTokoKoperasi", "-"); + result.put("potonganBpjs", "-"); BigDecimal jumlahPenerimaan = BigDecimal.ZERO; BigDecimal jumlahPemotongan = BigDecimal.ZERO; - BigDecimal jumlahPenerimaanBersih = BigDecimal.ZERO; + BigDecimal jumlahPenerimaanBersih; List komponenDto = new ArrayList<>(); if (CommonUtil.isNotNullOrEmpty(dto.getKomponen())) komponenDto = dto.getKomponen(); for (SlipGajiKomponenDto k : komponenDto) { - if (Master.JenisKomponenGaji.PENERIMAAN == k.getIdJenisKomponen()) { - jumlahPenerimaan = jumlahPenerimaan.add(new BigDecimal(k.getNominal().doubleValue())); - } else if (Master.JenisKomponenGaji.PEMOTONGAN == k.getIdJenisKomponen()) { - jumlahPemotongan = jumlahPemotongan.add(new BigDecimal(k.getNominal().doubleValue())); + if (Master.JenisKomponenGaji.PENERIMAAN.equals(k.getIdJenisKomponen())) { + jumlahPenerimaan = jumlahPenerimaan.add(BigDecimal.valueOf(k.getNominal().doubleValue())); + } else if (Master.JenisKomponenGaji.PEMOTONGAN.equals(k.getIdJenisKomponen())) { + jumlahPemotongan = jumlahPemotongan.add(BigDecimal.valueOf(k.getNominal().doubleValue())); } - if (Master.KomponenGaji.GAJI == k.getIdKomponen()) { + if (Master.KomponenGaji.GAJI.equals(k.getIdKomponen())) { result.put("gaji", nf.format(k.getNominal())); - } else if (Master.KomponenGaji.REMUNERASI_KINERJA == k.getIdKomponen()) { + } else if (Master.KomponenGaji.REMUNERASI_KINERJA.equals(k.getIdKomponen())) { result.put("remunerasiKinerja", nf.format(k.getNominal())); - } else if (Master.KomponenGaji.REMUNERASI_TAMBAHAN == k.getIdKomponen()) { + } else if (Master.KomponenGaji.REMUNERASI_TAMBAHAN.equals(k.getIdKomponen())) { result.put("remunerasiTambahan", nf.format(k.getNominal())); - } else if (Master.KomponenGaji.FEE_FOR_SERVICE == k.getIdKomponen()) { + } else if (Master.KomponenGaji.FEE_FOR_SERVICE.equals(k.getIdKomponen())) { result.put("feeForService", nf.format(k.getNominal())); - } else if (Master.KomponenGaji.FEE_FOR_ONSITE == k.getIdKomponen()) { + } else if (Master.KomponenGaji.FEE_FOR_ONSITE.equals(k.getIdKomponen())) { result.put("feeForOnSite", nf.format(k.getNominal())); - } else if (Master.KomponenGaji.UANG_MAKAN == k.getIdKomponen()) { + } else if (Master.KomponenGaji.UANG_MAKAN.equals(k.getIdKomponen())) { result.put("uangMakan", nf.format(k.getNominal())); - } else if (Master.KomponenGaji.UANG_LEMBUR == k.getIdKomponen()) { + } else if (Master.KomponenGaji.UANG_LEMBUR.equals(k.getIdKomponen())) { result.put("uangLembur", nf.format(k.getNominal())); - } else if (Master.KomponenGaji.PPH_GAJI == k.getIdKomponen()) { + } else if (Master.KomponenGaji.PPH_GAJI.equals(k.getIdKomponen())) { result.put("pphGaji", nf.format(k.getNominal())); - } else if (Master.KomponenGaji.PPH_REMUNERASI == k.getIdKomponen()) { + } else if (Master.KomponenGaji.PPH_REMUNERASI.equals(k.getIdKomponen())) { result.put("pphRemunerasi", nf.format(k.getNominal())); - } else if (Master.KomponenGaji.PPH_FEE_FOR_SERVICE == k.getIdKomponen()) { + } else if (Master.KomponenGaji.PPH_FEE_FOR_SERVICE.equals(k.getIdKomponen())) { result.put("pphFeeForService", nf.format(k.getNominal())); - } else if (Master.KomponenGaji.PPH_FEE_FOR_ONSITE == k.getIdKomponen()) { + } else if (Master.KomponenGaji.PPH_FEE_FOR_ONSITE.equals(k.getIdKomponen())) { result.put("pphFeeForOnSite", nf.format(k.getNominal())); - } else if (Master.KomponenGaji.PPH_UANG_MAKAN == k.getIdKomponen()) { + } else if (Master.KomponenGaji.PPH_UANG_MAKAN.equals(k.getIdKomponen())) { result.put("pphUangMakan", nf.format(k.getNominal())); - } else if (Master.KomponenGaji.PPH_UANG_LEMBUR == k.getIdKomponen()) { + } else if (Master.KomponenGaji.PPH_UANG_LEMBUR.equals(k.getIdKomponen())) { result.put("pphUangLembur", nf.format(k.getNominal())); - } else if (Master.KomponenGaji.IURAN_WAJIB_KOPERASI == k.getIdKomponen()) { + } else if (Master.KomponenGaji.IURAN_WAJIB_KOPERASI.equals(k.getIdKomponen())) { result.put("iuranWajibKoperasi", nf.format(k.getNominal())); - } else if (Master.KomponenGaji.PINJAMAN_KOPERASI == k.getIdKomponen()) { + } else if (Master.KomponenGaji.PINJAMAN_KOPERASI.equals(k.getIdKomponen())) { result.put("pinjamanKoperasi", nf.format(k.getNominal())); - } else if (Master.KomponenGaji.BIAYA_OBAT_ALKES == k.getIdKomponen()) { + } else if (Master.KomponenGaji.BIAYA_OBAT_ALKES.equals(k.getIdKomponen())) { result.put("biayaObatAlkes", nf.format(k.getNominal())); - } else if (Master.KomponenGaji.BIAYA_RAWAT_INAP == k.getIdKomponen()) { + } else if (Master.KomponenGaji.BIAYA_RAWAT_INAP.equals(k.getIdKomponen())) { result.put("biayaRawatInap", nf.format(k.getNominal())); - } else if (Master.KomponenGaji.BIAYA_RAWAT_JALAN == k.getIdKomponen()) { + } else if (Master.KomponenGaji.BIAYA_RAWAT_JALAN.equals(k.getIdKomponen())) { result.put("biayaRawatJalan", nf.format(k.getNominal())); - } else if (Master.KomponenGaji.POTONGAN_TOKO_KOPERASI == k.getIdKomponen()) { + } else if (Master.KomponenGaji.POTONGAN_TOKO_KOPERASI.equals(k.getIdKomponen())) { result.put("potonganTokoKoperasi", nf.format(k.getNominal())); + } else if (Master.KomponenGaji.POTONGAN_BPJS.equals(k.getIdKomponen())) { + result.put("potonganBpjs", nf.format(k.getNominal())); } } result.put("jumlahPenerimaan", nf.format(jumlahPenerimaan)); result.put("jumlahPemotongan", nf.format(jumlahPemotongan)); - jumlahPenerimaanBersih = jumlahPenerimaan.subtract(new BigDecimal(jumlahPemotongan.doubleValue())); + jumlahPenerimaanBersih = jumlahPenerimaan.subtract(BigDecimal.valueOf(jumlahPemotongan.doubleValue())); result.put("jumlahPenerimaanBersih", nf.format(jumlahPenerimaanBersih)); return result; } @@ -3584,56 +3526,58 @@ public class ReportServiceImpl extends BaseVoServiceImpl implements ReportServic SlipJumlahDto.SlipJumlahDtoBuilder jumlahDtoBuilder = SlipJumlahDto.builder(); BigDecimal jumlahPenerimaan = BigDecimal.ZERO; BigDecimal jumlahPemotongan = BigDecimal.ZERO; - BigDecimal jumlahPenerimaanBersih = BigDecimal.ZERO; + BigDecimal jumlahPenerimaanBersih; for (SlipGajiKomponenDto k : komponenDto) { - if (Master.JenisKomponenGaji.PENERIMAAN == k.getIdJenisKomponen()) { - jumlahPenerimaan = jumlahPenerimaan.add(new BigDecimal(k.getNominal().doubleValue())); - } else if (Master.JenisKomponenGaji.PEMOTONGAN == k.getIdJenisKomponen()) { - jumlahPemotongan = jumlahPemotongan.add(new BigDecimal(k.getNominal().doubleValue())); + if (Master.JenisKomponenGaji.PENERIMAAN.equals(k.getIdJenisKomponen())) { + jumlahPenerimaan = jumlahPenerimaan.add(BigDecimal.valueOf(k.getNominal().doubleValue())); + } else if (Master.JenisKomponenGaji.PEMOTONGAN.equals(k.getIdJenisKomponen())) { + jumlahPemotongan = jumlahPemotongan.add(BigDecimal.valueOf(k.getNominal().doubleValue())); } - if (Master.KomponenGaji.GAJI == k.getIdKomponen()) { + if (Master.KomponenGaji.GAJI.equals(k.getIdKomponen())) { penerimaanDtoBuilder.gaji(nf.format(k.getNominal())); - } else if (Master.KomponenGaji.REMUNERASI_KINERJA == k.getIdKomponen()) { + } else if (Master.KomponenGaji.REMUNERASI_KINERJA.equals(k.getIdKomponen())) { penerimaanDtoBuilder.remun_kinerja(nf.format(k.getNominal())); - } else if (Master.KomponenGaji.REMUNERASI_TAMBAHAN == k.getIdKomponen()) { + } else if (Master.KomponenGaji.REMUNERASI_TAMBAHAN.equals(k.getIdKomponen())) { penerimaanDtoBuilder.remun_tambahan(nf.format(k.getNominal())); - } else if (Master.KomponenGaji.FEE_FOR_SERVICE == k.getIdKomponen()) { + } else if (Master.KomponenGaji.FEE_FOR_SERVICE.equals(k.getIdKomponen())) { penerimaanDtoBuilder.ffs(nf.format(k.getNominal())); - } else if (Master.KomponenGaji.FEE_FOR_ONSITE == k.getIdKomponen()) { + } else if (Master.KomponenGaji.FEE_FOR_ONSITE.equals(k.getIdKomponen())) { penerimaanDtoBuilder.ffo(nf.format(k.getNominal())); - } else if (Master.KomponenGaji.UANG_MAKAN == k.getIdKomponen()) { + } else if (Master.KomponenGaji.UANG_MAKAN.equals(k.getIdKomponen())) { penerimaanDtoBuilder.uang_makan(nf.format(k.getNominal())); - } else if (Master.KomponenGaji.UANG_LEMBUR == k.getIdKomponen()) { + } else if (Master.KomponenGaji.UANG_LEMBUR.equals(k.getIdKomponen())) { penerimaanDtoBuilder.uang_lembur(nf.format(k.getNominal())); - } else if (Master.KomponenGaji.PPH_GAJI == k.getIdKomponen()) { + } else if (Master.KomponenGaji.PPH_GAJI.equals(k.getIdKomponen())) { potonganDtoBuilder.pph_gaji(nf.format(k.getNominal())); - } else if (Master.KomponenGaji.PPH_REMUNERASI == k.getIdKomponen()) { + } else if (Master.KomponenGaji.PPH_REMUNERASI.equals(k.getIdKomponen())) { potonganDtoBuilder.pph_remun(nf.format(k.getNominal())); - } else if (Master.KomponenGaji.PPH_FEE_FOR_SERVICE == k.getIdKomponen()) { + } else if (Master.KomponenGaji.PPH_FEE_FOR_SERVICE.equals(k.getIdKomponen())) { potonganDtoBuilder.pph_ffs(nf.format(k.getNominal())); - } else if (Master.KomponenGaji.PPH_FEE_FOR_ONSITE == k.getIdKomponen()) { + } else if (Master.KomponenGaji.PPH_FEE_FOR_ONSITE.equals(k.getIdKomponen())) { potonganDtoBuilder.pph_ffo(nf.format(k.getNominal())); - } else if (Master.KomponenGaji.PPH_UANG_MAKAN == k.getIdKomponen()) { + } else if (Master.KomponenGaji.PPH_UANG_MAKAN.equals(k.getIdKomponen())) { potonganDtoBuilder.pph_um(nf.format(k.getNominal())); - } else if (Master.KomponenGaji.PPH_UANG_LEMBUR == k.getIdKomponen()) { + } else if (Master.KomponenGaji.PPH_UANG_LEMBUR.equals(k.getIdKomponen())) { potonganDtoBuilder.pph_ul(nf.format(k.getNominal())); - } else if (Master.KomponenGaji.IURAN_WAJIB_KOPERASI == k.getIdKomponen()) { + } else if (Master.KomponenGaji.IURAN_WAJIB_KOPERASI.equals(k.getIdKomponen())) { potonganDtoBuilder.iuran_koperasi(nf.format(k.getNominal())); - } else if (Master.KomponenGaji.PINJAMAN_KOPERASI == k.getIdKomponen()) { + } else if (Master.KomponenGaji.PINJAMAN_KOPERASI.equals(k.getIdKomponen())) { potonganDtoBuilder.pinjam_koperasi(nf.format(k.getNominal())); - } else if (Master.KomponenGaji.BIAYA_OBAT_ALKES == k.getIdKomponen()) { + } else if (Master.KomponenGaji.BIAYA_OBAT_ALKES.equals(k.getIdKomponen())) { potonganDtoBuilder.biaya_obat(nf.format(k.getNominal())); - } else if (Master.KomponenGaji.BIAYA_RAWAT_INAP == k.getIdKomponen()) { + } else if (Master.KomponenGaji.BIAYA_RAWAT_INAP.equals(k.getIdKomponen())) { potonganDtoBuilder.biaya_ri(nf.format(k.getNominal())); - } else if (Master.KomponenGaji.BIAYA_RAWAT_JALAN == k.getIdKomponen()) { + } else if (Master.KomponenGaji.BIAYA_RAWAT_JALAN.equals(k.getIdKomponen())) { potonganDtoBuilder.biaya_rj(nf.format(k.getNominal())); - } else if (Master.KomponenGaji.POTONGAN_TOKO_KOPERASI == k.getIdKomponen()) { + } else if (Master.KomponenGaji.POTONGAN_TOKO_KOPERASI.equals(k.getIdKomponen())) { + potonganDtoBuilder.potongan_koperasi(nf.format(k.getNominal())); + } else if (Master.KomponenGaji.POTONGAN_BPJS.equals(k.getIdKomponen())) { potonganDtoBuilder.potongan_koperasi(nf.format(k.getNominal())); } } jumlahDtoBuilder.jumlah_gross(nf.format(jumlahPenerimaan)); jumlahDtoBuilder.jumlah_potongan(nf.format(jumlahPemotongan)); - jumlahPenerimaanBersih = jumlahPenerimaan.subtract(new BigDecimal(jumlahPemotongan.doubleValue())); + jumlahPenerimaanBersih = jumlahPenerimaan.subtract(BigDecimal.valueOf(jumlahPemotongan.doubleValue())); jumlahDtoBuilder.jumlah_nett(nf.format(jumlahPenerimaanBersih)); resultBuilder.pegawaiDto(pegawaiDtoBuilder.build()); resultBuilder.penerimaanDto(penerimaanDtoBuilder.build()); diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/SlipGajiServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/SlipGajiServiceImpl.java index 52b91d9b..422ed543 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/SlipGajiServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/SlipGajiServiceImpl.java @@ -23,7 +23,6 @@ import org.springframework.transaction.annotation.Transactional; import java.io.File; import java.io.FileOutputStream; -import java.io.IOException; import java.math.BigDecimal; import java.text.DateFormat; import java.text.SimpleDateFormat; @@ -371,25 +370,23 @@ public class SlipGajiServiceImpl implements SlipGajiService { komponenGajiList.forEach(e -> { Optional> first = listKomponen.stream() .filter(k -> e.getId().equals(k.get("idKomponen"))).findFirst(); + SlipGajiKomponenDto.SlipGajiKomponenDtoBuilder kBuilder = SlipGajiKomponenDto.builder(); if (first.isPresent()) { - SlipGajiKomponenDto.SlipGajiKomponenDtoBuilder kBuilder = SlipGajiKomponenDto.builder(); kBuilder.id(first.get().get("id").toString()); kBuilder.idJenisKomponen(Integer.valueOf(first.get().get("idJenisKomponen").toString())); kBuilder.jenisKomponen(first.get().get("jenisKomponen").toString()); kBuilder.idKomponen(Integer.valueOf(first.get().get("idKomponen").toString())); kBuilder.namaKomponen(first.get().get("namaKomponen").toString()); kBuilder.nominal(new BigDecimal(first.get().get("nominal").toString())); - dtoList.add(kBuilder.build()); } else { - SlipGajiKomponenDto.SlipGajiKomponenDtoBuilder kBuilder = SlipGajiKomponenDto.builder(); kBuilder.id(null); kBuilder.idJenisKomponen(e.getJenisKomponen()); kBuilder.jenisKomponen(e.getJenisKomponen() == 1 ? "Penerimaan" : "Pemotongan"); kBuilder.idKomponen(e.getId()); kBuilder.namaKomponen(e.getNamaKomponen()); kBuilder.nominal(null); - dtoList.add(kBuilder.build()); } + dtoList.add(kBuilder.build()); }); List collectDto = dtoList.stream() .sorted(Comparator.comparing(SlipGajiKomponenDto::getIdKomponen)) @@ -401,11 +398,11 @@ public class SlipGajiServiceImpl implements SlipGajiService { return dto.build(); } - private String getDirPathSlipGaji(String dirname) { + private String getDirPathSlipGaji() { String osName = System.getProperty("os.name").toLowerCase(); - String path = systemDirectory + dirname + "/"; + String path = systemDirectory + "slip-gaji" + "/"; if (osName.contains("win")) - path = systemDirectory.replace("/", "\\") + dirname + "\\"; + path = systemDirectory.replace("/", "\\") + "slip-gaji" + "\\"; LOGGER.info("Path slip gaji {}", path); @@ -414,7 +411,7 @@ public class SlipGajiServiceImpl implements SlipGajiService { @SuppressWarnings("resource") @Override - public String writeExcel(Long bulan) throws IOException { + public String writeExcel(Long bulan) { Date month = new Date(bulan); Date start = DateUtil.startMonth(month); Date end = DateUtil.endMonth(month); @@ -468,7 +465,7 @@ public class SlipGajiServiceImpl implements SlipGajiService { new Object[] { d.get("id"), d.get("idPegawai"), d.get("namaPegawai"), d.get("nip"), d.get("1"), d.get("2"), d.get("3"), d.get("4"), d.get("5"), d.get("6"), d.get("7"), d.get("8"), d.get("9"), d.get("10"), d.get("11"), d.get("12"), d.get("13"), d.get("14"), d.get("15"), - d.get("16"), d.get("17"), d.get("18"), d.get("19") }); + d.get("16"), d.get("17"), d.get("18"), d.get("19"), d.get("20") }); } TreeMap sorted = new TreeMap<>(data); Set keyset = sorted.keySet(); @@ -502,7 +499,7 @@ public class SlipGajiServiceImpl implements SlipGajiService { String timestampToString = df.format(new Date()); String filename = "Template_Slip_Gaji_" + timestampToString + ".xls"; - String absoluteFilePath = getDirPathSlipGaji("slip-gaji") + filename; + String absoluteFilePath = getDirPathSlipGaji() + filename; File file = new File(absoluteFilePath); LOGGER.info("Path foto profil {}", file.getAbsolutePath()); @@ -533,9 +530,8 @@ public class SlipGajiServiceImpl implements SlipGajiService { List result = new ArrayList<>(); Sort sort = new Sort(Sort.Direction.ASC, "id"); List listKomponenGaji = komponenGajiDao.findAll(sort); - listKomponenGaji.forEach(k -> { - result.add(new KomponenGajiDto(k.getId(), k.getNamaKomponen(), k.getJenisKomponen())); - }); + listKomponenGaji + .forEach(k -> result.add(new KomponenGajiDto(k.getId(), k.getNamaKomponen(), k.getJenisKomponen()))); return result; } } diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/dto/SlipPotonganDto.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/dto/SlipPotonganDto.java index 45f05f03..1aa721bd 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/dto/SlipPotonganDto.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/dto/SlipPotonganDto.java @@ -46,12 +46,15 @@ public class SlipPotonganDto { @Caption(value = "Potongan Toko Koperasi") private String potongan_koperasi; + @Caption(value = "Potongan BPJS") + private String potongan_bpjs; + public SlipPotonganDto() { } public SlipPotonganDto(String pph_gaji, String pph_remun, String pph_ffs, String pph_ffo, String pph_um, String pph_ul, String iuran_koperasi, String pinjam_koperasi, String biaya_obat, String biaya_ri, - String biaya_rj, String potongan_koperasi) { + String biaya_rj, String potongan_koperasi, String potongan_bpjs) { super(); this.pph_gaji = pph_gaji; this.pph_remun = pph_remun; @@ -65,6 +68,7 @@ public class SlipPotonganDto { this.biaya_ri = biaya_ri; this.biaya_rj = biaya_rj; this.potongan_koperasi = potongan_koperasi; + this.potongan_bpjs = potongan_bpjs; } public String getPph_gaji() { @@ -163,6 +167,14 @@ public class SlipPotonganDto { this.potongan_koperasi = potongan_koperasi; } + public String getPotongan_bpjs() { + return potongan_bpjs; + } + + public void setPotongan_bpjs(String potongan_bpjs) { + this.potongan_bpjs = potongan_bpjs; + } + public static SlipPotonganDtoBuilder builder() { return new SlipPotonganDtoBuilder(); } @@ -180,6 +192,7 @@ public class SlipPotonganDto { private String biaya_ri = "-"; private String biaya_rj = "-"; private String potongan_koperasi = "-"; + private String potongan_bpjs = "-"; public SlipPotonganDtoBuilder() { } @@ -244,10 +257,15 @@ public class SlipPotonganDto { return this; } + public SlipPotonganDtoBuilder potongan_bpjs(final String potongan_bpjs) { + this.potongan_bpjs = potongan_bpjs; + return this; + } + public SlipPotonganDto build() { return new SlipPotonganDto(this.pph_gaji, this.pph_remun, this.pph_ffs, this.pph_ffo, this.pph_um, this.pph_ul, this.iuran_koperasi, this.pinjam_koperasi, this.biaya_obat, this.biaya_ri, - this.biaya_rj, this.potongan_koperasi); + this.biaya_rj, this.potongan_koperasi, this.potongan_bpjs); } } } diff --git a/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/slipGaji.jrxml b/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/slipGaji.jrxml index a7548dd4..0a895942 100644 --- a/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/slipGaji.jrxml +++ b/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/slipGaji.jrxml @@ -1,5 +1,5 @@ - + @@ -32,6 +32,7 @@ + @@ -67,7 +68,7 @@ - + @@ -746,7 +747,31 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + @@ -761,7 +786,7 @@ - + @@ -776,7 +801,7 @@ - + @@ -791,7 +816,7 @@ - + @@ -806,7 +831,7 @@ - + @@ -821,7 +846,7 @@ - + @@ -836,7 +861,7 @@ - + @@ -851,7 +876,7 @@ - + @@ -866,7 +891,7 @@ - + @@ -883,7 +908,7 @@ - + diff --git a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/SlipGajiController.java b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/SlipGajiController.java index 1c6baf21..e2fa3ca5 100644 --- a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/SlipGajiController.java +++ b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/SlipGajiController.java @@ -1,26 +1,5 @@ package com.jasamedika.medifirst2000.controller; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.validation.Valid; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.core.io.Resource; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - import com.jasamedika.medifirst2000.constants.Constants; import com.jasamedika.medifirst2000.dto.KomponenGajiDto; import com.jasamedika.medifirst2000.dto.SlipGajiDto; @@ -28,6 +7,20 @@ import com.jasamedika.medifirst2000.service.SlipGajiService; import com.jasamedika.medifirst2000.util.CommonUtil; import com.jasamedika.medifirst2000.util.ResourceUtils; import com.jasamedika.medifirst2000.util.rest.RestUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.io.Resource; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.HashMap; +import java.util.List; +import java.util.Map; @RestController @RequestMapping("/slip-gaji") @@ -102,10 +95,10 @@ public class SlipGajiController { } @RequestMapping(value = "/template/download", method = RequestMethod.GET) - public ResponseEntity downloadTemplate(@RequestParam(value = "filename", required = true) String fileName, + public ResponseEntity downloadTemplate(@RequestParam(value = "filename") String fileName, HttpServletRequest request) { - Resource resource = null; - Map mapHeaderMessage = new HashMap(); + Resource resource; + Map mapHeaderMessage = new HashMap<>(); if (CommonUtil.isNotNullOrEmpty(fileName)) { try { resource = ResourceUtils.loadFile(fileName); @@ -113,7 +106,7 @@ public class SlipGajiController { mapHeaderMessage.put(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); } - String contentType = null; + String contentType; try { contentType = request.getServletContext().getMimeType(resource.getFile().getAbsolutePath()); } catch (Exception e) {