Update SlipGajiService

Penerapan komponen gaji pada service simpan dan get slip gaji per bulan per pegawai
This commit is contained in:
salmanoe 2023-01-31 07:53:29 +07:00
parent 277652ba29
commit c26b23a85a
8 changed files with 360 additions and 395 deletions

View File

@ -2,6 +2,7 @@ package com.jasamedika.medifirst2000.dao;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import org.springframework.data.jpa.repository.JpaRepository;
@ -11,9 +12,14 @@ import org.springframework.data.repository.query.Param;
import com.jasamedika.medifirst2000.entities.SlipGaji;
public interface SlipGajiDao extends JpaRepository<SlipGaji, String> {
@Query("select sg from SlipGaji sg where sg.pegawai.id = :pegawaiId")
Optional<SlipGaji> findByPegawai(@Param("pegawaiId") Integer pegawaiId);
@Query("select sg from SlipGaji sg where sg.pegawai.id = :pegawaiId and sg.bulan between :start and :end")
Optional<SlipGaji> findByPegawaiAndBulan(@Param("pegawaiId") Integer pegawaiId, @Param("start") Date start,
@Param("end") Date end);
@Query("select pg.id from SlipGaji sg inner join sg.pegawai pg where sg.bulan between :start and :end")
List<Integer> findPegawaiByBulan(@Param("start") Date start, @Param("end") Date end);
@Query("select new Map(pg.id as id,pg.namaLengkap as namaLengkap) " + "from SlipGaji sg "
+ "inner join sg.pegawai pg " + "where sg.bulan between :start and :end " + "order by pg.namaLengkap")
List<Map<String, Object>> findAllByBulan(@Param("start") Date start, @Param("end") Date end);
}

View File

@ -0,0 +1,23 @@
package com.jasamedika.medifirst2000.dao;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import com.jasamedika.medifirst2000.entities.SlipGajiKomponen;
/**
* @author salmanoe
* @since Jan 30, 2023
*/
public interface SlipGajiKomponenDao extends JpaRepository<SlipGajiKomponen, String> {
@Query("select new Map(sgk.id as id," + "sgk.komponen.id as idKomponen,"
+ "sgk.komponen.namaKomponen as namaKomponen," + "sgk.nominal as nominal) " + "from SlipGajiKomponen sgk "
+ "where sgk.slipGaji.pegawai.id = :pegawaiId " + "and sgk.slipGaji.bulan between :start and :end")
List<Map<String, Object>> findAll(@Param("pegawaiId") Integer pegawaiId, @Param("start") Date start,
@Param("end") Date end);
}

View File

@ -13,5 +13,7 @@ public interface SlipGajiService {
void updateDetail(SlipGajiDto dto);
SlipGajiDto get(Integer pegawaiId);
SlipGajiDto get(Integer pegawaiId, Long bulan);
String writeExcel(Long bulan);
}

View File

@ -1,31 +1,39 @@
package com.jasamedika.medifirst2000.service.impl;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.jasamedika.medifirst2000.dao.MapPegawaiJabatanToUnitKerjaDao;
import com.jasamedika.medifirst2000.dao.PegawaiDao;
import com.jasamedika.medifirst2000.dao.PenerimaanGajiDao;
import com.jasamedika.medifirst2000.dao.PenguranganGajiDao;
import com.jasamedika.medifirst2000.dao.SlipGajiDao;
import com.jasamedika.medifirst2000.dao.SlipGajiDetailDao;
import com.jasamedika.medifirst2000.dao.SlipGajiKomponenDao;
import com.jasamedika.medifirst2000.dto.SlipGajiDto;
import com.jasamedika.medifirst2000.dto.SlipGajiKomponenDto;
import com.jasamedika.medifirst2000.entities.Jabatan;
import com.jasamedika.medifirst2000.entities.KomponenGaji;
import com.jasamedika.medifirst2000.entities.MapPegawaiJabatanToUnitKerja;
import com.jasamedika.medifirst2000.entities.NilaiKelompokJabatan;
import com.jasamedika.medifirst2000.entities.Pegawai;
import com.jasamedika.medifirst2000.entities.PenerimaanGaji;
import com.jasamedika.medifirst2000.entities.PenguranganGaji;
import com.jasamedika.medifirst2000.entities.SlipGaji;
import com.jasamedika.medifirst2000.entities.SlipGajiDetail;
import com.jasamedika.medifirst2000.entities.SlipGajiKomponen;
import com.jasamedika.medifirst2000.entities.SubUnitKerjaPegawai;
import com.jasamedika.medifirst2000.entities.UnitKerjaPegawai;
import com.jasamedika.medifirst2000.service.SlipGajiService;
@ -46,10 +54,7 @@ public class SlipGajiServiceImpl implements SlipGajiService {
private SlipGajiDetailDao slipGajiDetailDao;
@Autowired
private PenerimaanGajiDao penerimaanGajiDao;
@Autowired
private PenguranganGajiDao penguranganGajiDao;
private SlipGajiKomponenDao slipGajiKomponenDao;
@Autowired
private PegawaiDao pegawaiDao;
@ -149,36 +154,20 @@ public class SlipGajiServiceImpl implements SlipGajiService {
slipGajiDetailDao.save(listDetail);
}
{
PenerimaanGaji.PenerimaanGajiBuilder penerimaan = PenerimaanGaji.builder();
if (CommonUtil.isNotNullOrEmpty(dto.getId()))
penerimaan.id(savedSlip.getId());
penerimaan.gaji(dto.getGaji());
penerimaan.remunerasiKinerja(dto.getRemunerasiKinerja());
penerimaan.remunerasiTambahan(dto.getRemunerasiTambahan());
penerimaan.feeForService(dto.getFeeForService());
penerimaan.feeForOnSite(dto.getFeeForOnSite());
penerimaan.uangMakan(dto.getUangMakan());
penerimaan.uangLembur(dto.getUangLembur());
penerimaan.slipGaji(savedSlip);
penerimaanGajiDao.save(penerimaan.build());
}
{
PenguranganGaji.PenguranganGajiBuilder pengurangan = PenguranganGaji.builder();
if (CommonUtil.isNotNullOrEmpty(dto.getId()))
pengurangan.id(savedSlip.getId());
pengurangan.pphGaji(dto.getPphGaji());
pengurangan.pphRemunerasi(dto.getPphRemunerasi());
pengurangan.pphFeeForService(dto.getPphFeeForService());
pengurangan.pphFeeForOnSite(dto.getFeeForOnSite());
pengurangan.pphUangMakan(dto.getPphUangMakan());
pengurangan.pphUangLembur(dto.getPphUangLembur());
pengurangan.iuranWajibKoperasi(dto.getIuranWajibKoperasi());
pengurangan.potonganPinjamanKoperasi(dto.getPotonganPinjamanKoperasi());
pengurangan.potonganObat(dto.getPotonganObat());
pengurangan.biayaRawatInap(dto.getBiayaRawatInap());
pengurangan.biayaRawatJalan(dto.getBiayaRawatJalan());
pengurangan.slipGaji(savedSlip);
penguranganGajiDao.save(pengurangan.build());
List<SlipGajiKomponen> listKomponen = new ArrayList<>();
Set<SlipGajiKomponenDto> dtos = dto.getKomponen();
dtos.forEach(k -> {
SlipGajiKomponen.SlipGajiKomponenBuilder kBuilder = SlipGajiKomponen.builder();
if (CommonUtil.isNotNullOrEmpty(k.getId()))
kBuilder.id(k.getId());
KomponenGaji kGaji = new KomponenGaji();
kGaji.setId(k.getIdKomponen());
kBuilder.komponen(kGaji);
kBuilder.nominal(k.getNominal());
kBuilder.slipGaji(savedSlip);
listKomponen.add(kBuilder.build());
});
slipGajiKomponenDao.save(listKomponen);
}
}
}
@ -211,10 +200,14 @@ public class SlipGajiServiceImpl implements SlipGajiService {
}
@Override
public SlipGajiDto get(Integer pegawaiId) {
Optional<SlipGaji> slipGaji = slipGajiDao.findByPegawai(pegawaiId);
public SlipGajiDto get(Integer pegawaiId, Long bulan) {
Date month = new Date(bulan);
Date start = DateUtil.startMonth(month);
Date end = DateUtil.endMonth(month);
Optional<SlipGaji> slipGaji = slipGajiDao.findByPegawaiAndBulan(pegawaiId, start, end);
SlipGajiDto.SlipGajiDtoBuilder dto = SlipGajiDto.builder();
if (slipGaji.isPresent()) {
dto.id(slipGaji.get().getId());
dto.idPegawai(slipGaji.get().getPegawai().getId());
dto.namaPegawai(slipGaji.get().getPegawai().getNamaLengkap());
dto.bulan(slipGaji.get().getBulan().getTime());
@ -236,33 +229,53 @@ public class SlipGajiServiceImpl implements SlipGajiService {
dto.unitKerja(String.join("/", listNamaUnitKerja));
dto.subUnitKerja(String.join("/", listNamaSubunitKerja));
dto.grade(String.join("/", listNamaGrade));
}
{
PenerimaanGaji penerimaan = penerimaanGajiDao.findBySlipGajiId(slipGaji.get().getId());
dto.gaji(penerimaan.getGaji());
dto.remunerasiKinerja(penerimaan.getRemunerasiKinerja());
dto.remunerasiTambahan(penerimaan.getRemunerasiTambahan());
dto.feeForService(penerimaan.getFeeForService());
dto.feeForOnSite(penerimaan.getFeeForOnSite());
dto.uangMakan(penerimaan.getUangMakan());
dto.uangLembur(penerimaan.getUangLembur());
}
{
PenguranganGaji pengurangan = penguranganGajiDao.findBySlipGajiId(slipGaji.get().getId());
dto.pphGaji(pengurangan.getPphGaji());
dto.pphRemunerasi(pengurangan.getPphRemunerasi());
dto.pphFeeForService(pengurangan.getPphFeeForService());
dto.pphFeeForOnSite(pengurangan.getPphFeeForOnSite());
dto.pphUangMakan(pengurangan.getPphUangMakan());
dto.pphUangLembur(pengurangan.getPphUangLembur());
dto.iuranWajibKoperasi(pengurangan.getIuranWajibKoperasi());
dto.potonganPinjamanKoperasi(pengurangan.getPotonganPinjamanKoperasi());
dto.potonganObat(pengurangan.getPotonganObat());
dto.biayaRawatInap(pengurangan.getBiayaRawatInap());
dto.biayaRawatJalan(pengurangan.getBiayaRawatJalan());
List<Map<String, Object>> listKomponen = slipGajiKomponenDao.findAll(pegawaiId, start, end);
Set<SlipGajiKomponenDto> dtoList = new HashSet<>();
listKomponen.forEach(k -> {
SlipGajiKomponenDto.SlipGajiKomponenDtoBuilder kBuilder = SlipGajiKomponenDto.builder();
kBuilder.id(k.get("id").toString());
kBuilder.idKomponen(Integer.valueOf(k.get("idKomponen").toString()));
kBuilder.namaKomponen(k.get("namaKomponen").toString());
kBuilder.nominal(new BigDecimal(k.get("nominal").toString()));
dtoList.add(kBuilder.build());
});
dto.komponen(dtoList);
}
}
return dto.build();
}
@Override
public String writeExcel(Long bulan) {
Date month = new Date(bulan);
Date start = DateUtil.startMonth(month);
Date end = DateUtil.endMonth(month);
List<Map<String, Object>> listPegawai = slipGajiDao.findAllByBulan(start, end);
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet(new SimpleDateFormat("MMMM yyyy", new Locale("in", "ID")).format(month));
List<Object> listHeader = new ArrayList<>();
listHeader.add("ID");
listHeader.add("NAMA PEGAWAI");
listHeader.add("GAJI");
listHeader.add("REMUN KINERJA");
listHeader.add("REMUN TAMBAHAN");
listHeader.add("FEE FOR SERVICE");
listHeader.add("FEE FOR ON SITE");
listHeader.add("UANG MAKAN");
listHeader.add("UANG LEMBUR");
listHeader.add("PPH GAJI");
listHeader.add("PPH REMUN");
listHeader.add("PPH FEE FOR SERVICE");
listHeader.add("PPH FEE FOR ON SITE");
listHeader.add("PPH UANG MAKAN");
listHeader.add("PPH UANG LEMBUR");
listHeader.add("IURAN WAJIB KOPERASI");
listHeader.add("POTONGAN PINJAMAN KOPERASI");
listHeader.add("POTONGAN OBAT");
listHeader.add("BIAYA RAWAT INAP");
listHeader.add("BIAYA RAWAT JALAN");
return null;
}
}

View File

@ -1,6 +1,6 @@
package com.jasamedika.medifirst2000.dto;
import java.math.BigDecimal;
import java.util.Set;
import javax.validation.constraints.NotNull;
@ -36,70 +36,14 @@ public class SlipGajiDto {
@Caption(value = "Bulan")
private Long bulan;
@Caption(value = "Gaji")
private BigDecimal gaji;
@Caption(value = "Remunerasi Kinerja")
private BigDecimal remunerasiKinerja;
@Caption(value = "Remunerasi Tambahan")
private BigDecimal remunerasiTambahan;
@Caption(value = "Fee For Service")
private BigDecimal feeForService;
@Caption(value = "Fee for on Site")
private BigDecimal feeForOnSite;
@Caption(value = "Uang Makan")
private BigDecimal uangMakan;
@Caption(value = "Uang Lembur")
private BigDecimal uangLembur;
@Caption(value = "PPH Gaji")
private BigDecimal pphGaji;
@Caption(value = "PPH Remunerasi")
private BigDecimal pphRemunerasi;
@Caption(value = "PPH Fee for Service")
private BigDecimal pphFeeForService;
@Caption(value = "PPH Fee for On Site")
private BigDecimal pphFeeForOnSite;
@Caption(value = "PPH Uang Makan")
private BigDecimal pphUangMakan;
@Caption(value = "PPH Uang Lembur")
private BigDecimal pphUangLembur;
@Caption(value = "Iuran Wajib Koperasi")
private BigDecimal iuranWajibKoperasi;
@Caption(value = "Potongan Pinjaman Koperasi")
private BigDecimal potonganPinjamanKoperasi;
@Caption(value = "Potongan Obat")
private BigDecimal potonganObat;
@Caption(value = "Biaya Rawat Inap")
private BigDecimal biayaRawatInap;
@Caption(value = "Biaya Rawat Jalan")
private BigDecimal biayaRawatJalan;
@Caption(value = "Komponen Gaji")
private Set<SlipGajiKomponenDto> komponen;
public SlipGajiDto() {
}
public SlipGajiDto(String id, Integer idPegawai, String namaPegawai, String jabatan, String unitKerja,
String subUnitKerja, String grade, Long bulan, BigDecimal gaji, BigDecimal remunerasiKinerja,
BigDecimal remunerasiTambahan, BigDecimal feeForService, BigDecimal feeForOnSite, BigDecimal uangMakan,
BigDecimal uangLembur, BigDecimal pphGaji, BigDecimal pphRemunerasi, BigDecimal pphFeeForService,
BigDecimal pphFeeForOnSite, BigDecimal pphUangMakan, BigDecimal pphUangLembur,
BigDecimal iuranWajibKoperasi, BigDecimal potonganPinjamanKoperasi, BigDecimal potonganObat,
BigDecimal biayaRawatInap, BigDecimal biayaRawatJalan) {
String subUnitKerja, String grade, Long bulan, Set<SlipGajiKomponenDto> komponen) {
super();
this.id = id;
this.idPegawai = idPegawai;
@ -109,24 +53,7 @@ public class SlipGajiDto {
this.subUnitKerja = subUnitKerja;
this.grade = grade;
this.bulan = bulan;
this.gaji = gaji;
this.remunerasiKinerja = remunerasiKinerja;
this.remunerasiTambahan = remunerasiTambahan;
this.feeForService = feeForService;
this.feeForOnSite = feeForOnSite;
this.uangMakan = uangMakan;
this.uangLembur = uangLembur;
this.pphGaji = pphGaji;
this.pphRemunerasi = pphRemunerasi;
this.pphFeeForService = pphFeeForService;
this.pphFeeForOnSite = pphFeeForOnSite;
this.pphUangMakan = pphUangMakan;
this.pphUangLembur = pphUangLembur;
this.iuranWajibKoperasi = iuranWajibKoperasi;
this.potonganPinjamanKoperasi = potonganPinjamanKoperasi;
this.potonganObat = potonganObat;
this.biayaRawatInap = biayaRawatInap;
this.biayaRawatJalan = biayaRawatJalan;
this.komponen = komponen;
}
public String getId() {
@ -193,148 +120,16 @@ public class SlipGajiDto {
this.bulan = bulan;
}
public BigDecimal getGaji() {
return gaji;
public Set<SlipGajiKomponenDto> getKomponen() {
return komponen;
}
public void setGaji(BigDecimal gaji) {
this.gaji = gaji;
public void setKomponen(Set<SlipGajiKomponenDto> komponen) {
this.komponen = komponen;
}
public BigDecimal getRemunerasiKinerja() {
return remunerasiKinerja;
}
public void setRemunerasiKinerja(BigDecimal remunerasiKinerja) {
this.remunerasiKinerja = remunerasiKinerja;
}
public BigDecimal getRemunerasiTambahan() {
return remunerasiTambahan;
}
public void setRemunerasiTambahan(BigDecimal remunerasiTambahan) {
this.remunerasiTambahan = remunerasiTambahan;
}
public BigDecimal getFeeForService() {
return feeForService;
}
public void setFeeForService(BigDecimal feeForService) {
this.feeForService = feeForService;
}
public BigDecimal getFeeForOnSite() {
return feeForOnSite;
}
public void setFeeForOnSite(BigDecimal feeForOnSite) {
this.feeForOnSite = feeForOnSite;
}
public BigDecimal getUangMakan() {
return uangMakan;
}
public void setUangMakan(BigDecimal uangMakan) {
this.uangMakan = uangMakan;
}
public BigDecimal getUangLembur() {
return uangLembur;
}
public void setUangLembur(BigDecimal uangLembur) {
this.uangLembur = uangLembur;
}
public BigDecimal getPphGaji() {
return pphGaji;
}
public void setPphGaji(BigDecimal pphGaji) {
this.pphGaji = pphGaji;
}
public BigDecimal getPphRemunerasi() {
return pphRemunerasi;
}
public void setPphRemunerasi(BigDecimal pphRemunerasi) {
this.pphRemunerasi = pphRemunerasi;
}
public BigDecimal getPphFeeForService() {
return pphFeeForService;
}
public void setPphFeeForService(BigDecimal pphFeeForService) {
this.pphFeeForService = pphFeeForService;
}
public BigDecimal getPphFeeForOnSite() {
return pphFeeForOnSite;
}
public void setPphFeeForOnSite(BigDecimal pphFeeForOnSite) {
this.pphFeeForOnSite = pphFeeForOnSite;
}
public BigDecimal getPphUangMakan() {
return pphUangMakan;
}
public void setPphUangMakan(BigDecimal pphUangMakan) {
this.pphUangMakan = pphUangMakan;
}
public BigDecimal getPphUangLembur() {
return pphUangLembur;
}
public void setPphUangLembur(BigDecimal pphUangLembur) {
this.pphUangLembur = pphUangLembur;
}
public BigDecimal getIuranWajibKoperasi() {
return iuranWajibKoperasi;
}
public void setIuranWajibKoperasi(BigDecimal iuranWajibKoperasi) {
this.iuranWajibKoperasi = iuranWajibKoperasi;
}
public BigDecimal getPotonganPinjamanKoperasi() {
return potonganPinjamanKoperasi;
}
public void setPotonganPinjamanKoperasi(BigDecimal potonganPinjamanKoperasi) {
this.potonganPinjamanKoperasi = potonganPinjamanKoperasi;
}
public BigDecimal getPotonganObat() {
return potonganObat;
}
public void setPotonganObat(BigDecimal potonganObat) {
this.potonganObat = potonganObat;
}
public BigDecimal getBiayaRawatInap() {
return biayaRawatInap;
}
public void setBiayaRawatInap(BigDecimal biayaRawatInap) {
this.biayaRawatInap = biayaRawatInap;
}
public BigDecimal getBiayaRawatJalan() {
return biayaRawatJalan;
}
public void setBiayaRawatJalan(BigDecimal biayaRawatJalan) {
this.biayaRawatJalan = biayaRawatJalan;
public void addKomponen(SlipGajiKomponenDto komponen) {
this.komponen.add(komponen);
}
public static SlipGajiDtoBuilder builder() {
@ -350,24 +145,7 @@ public class SlipGajiDto {
private String subUnitKerja;
private String grade;
private Long bulan;
private BigDecimal gaji;
private BigDecimal remunerasiKinerja;
private BigDecimal remunerasiTambahan;
private BigDecimal feeForService;
private BigDecimal feeForOnSite;
private BigDecimal uangMakan;
private BigDecimal uangLembur;
private BigDecimal pphGaji;
private BigDecimal pphRemunerasi;
private BigDecimal pphFeeForService;
private BigDecimal pphFeeForOnSite;
private BigDecimal pphUangMakan;
private BigDecimal pphUangLembur;
private BigDecimal iuranWajibKoperasi;
private BigDecimal potonganPinjamanKoperasi;
private BigDecimal potonganObat;
private BigDecimal biayaRawatInap;
private BigDecimal biayaRawatJalan;
private Set<SlipGajiKomponenDto> komponen;
public SlipGajiDtoBuilder() {
}
@ -412,103 +190,14 @@ public class SlipGajiDto {
return this;
}
public SlipGajiDtoBuilder gaji(final BigDecimal gaji) {
this.gaji = gaji;
return this;
}
public SlipGajiDtoBuilder remunerasiKinerja(final BigDecimal remunerasiKinerja) {
this.remunerasiKinerja = remunerasiKinerja;
return this;
}
public SlipGajiDtoBuilder remunerasiTambahan(final BigDecimal remunerasiTambahan) {
this.remunerasiTambahan = remunerasiTambahan;
return this;
}
public SlipGajiDtoBuilder feeForService(final BigDecimal feeForService) {
this.feeForService = feeForService;
return this;
}
public SlipGajiDtoBuilder feeForOnSite(final BigDecimal feeForOnSite) {
this.feeForOnSite = feeForOnSite;
return this;
}
public SlipGajiDtoBuilder uangMakan(final BigDecimal uangMakan) {
this.uangMakan = uangMakan;
return this;
}
public SlipGajiDtoBuilder uangLembur(final BigDecimal uangLembur) {
this.uangLembur = uangLembur;
return this;
}
public SlipGajiDtoBuilder pphGaji(final BigDecimal pphGaji) {
this.pphGaji = pphGaji;
return this;
}
public SlipGajiDtoBuilder pphRemunerasi(final BigDecimal pphRemunerasi) {
this.pphRemunerasi = pphRemunerasi;
return this;
}
public SlipGajiDtoBuilder pphFeeForService(final BigDecimal pphFeeForService) {
this.pphFeeForService = pphFeeForService;
return this;
}
public SlipGajiDtoBuilder pphFeeForOnSite(final BigDecimal pphFeeForOnSite) {
this.pphFeeForOnSite = pphFeeForOnSite;
return this;
}
public SlipGajiDtoBuilder pphUangMakan(final BigDecimal pphUangMakan) {
this.pphUangMakan = pphUangMakan;
return this;
}
public SlipGajiDtoBuilder pphUangLembur(final BigDecimal pphUangLembur) {
this.pphUangLembur = pphUangLembur;
return this;
}
public SlipGajiDtoBuilder iuranWajibKoperasi(final BigDecimal iuranWajibKoperasi) {
this.iuranWajibKoperasi = iuranWajibKoperasi;
return this;
}
public SlipGajiDtoBuilder potonganPinjamanKoperasi(final BigDecimal potonganPinjamanKoperasi) {
this.potonganPinjamanKoperasi = potonganPinjamanKoperasi;
return this;
}
public SlipGajiDtoBuilder potonganObat(final BigDecimal potonganObat) {
this.potonganObat = potonganObat;
return this;
}
public SlipGajiDtoBuilder biayaRawatInap(final BigDecimal biayaRawatInap) {
this.biayaRawatInap = biayaRawatInap;
return this;
}
public SlipGajiDtoBuilder biayaRawatJalan(final BigDecimal biayaRawatJalan) {
this.biayaRawatJalan = biayaRawatJalan;
public SlipGajiDtoBuilder komponen(final Set<SlipGajiKomponenDto> komponen) {
this.komponen = komponen;
return this;
}
public SlipGajiDto build() {
return new SlipGajiDto(this.id, this.idPegawai, this.namaPegawai, this.jabatan, this.unitKerja,
this.subUnitKerja, this.grade, this.bulan, this.gaji, this.remunerasiKinerja,
this.remunerasiTambahan, this.feeForService, this.feeForOnSite, this.uangMakan, this.uangLembur,
this.pphGaji, this.pphRemunerasi, this.pphFeeForService, this.pphFeeForOnSite, this.pphUangMakan,
this.pphUangLembur, this.iuranWajibKoperasi, this.potonganPinjamanKoperasi, this.potonganObat,
this.biayaRawatInap, this.biayaRawatJalan);
this.subUnitKerja, this.grade, this.bulan, this.komponen);
}
}
}

View File

@ -0,0 +1,99 @@
package com.jasamedika.medifirst2000.dto;
import java.math.BigDecimal;
import com.jasamedika.medifirst2000.helper.Caption;
public class SlipGajiKomponenDto {
@Caption(value = "ID")
private String id;
@Caption(value = "ID Komponen Gaji")
private Integer idKomponen;
@Caption(value = "Nama Komponen Gaji")
private String namaKomponen;
@Caption(value = "Nominal")
private BigDecimal nominal;
public SlipGajiKomponenDto() {
}
public SlipGajiKomponenDto(String id, Integer idKomponen, String namaKomponen, BigDecimal nominal) {
this.id = id;
this.idKomponen = idKomponen;
this.namaKomponen = namaKomponen;
this.nominal = nominal;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public Integer getIdKomponen() {
return idKomponen;
}
public void setIdKomponen(Integer idKomponen) {
this.idKomponen = idKomponen;
}
public String getNamaKomponen() {
return namaKomponen;
}
public void setNamaKomponen(String namaKomponen) {
this.namaKomponen = namaKomponen;
}
public BigDecimal getNominal() {
return nominal;
}
public void setNominal(BigDecimal nominal) {
this.nominal = nominal;
}
public static SlipGajiKomponenDtoBuilder builder() {
return new SlipGajiKomponenDtoBuilder();
}
public static class SlipGajiKomponenDtoBuilder {
private String id;
private Integer idKomponen;
private String namaKomponen;
private BigDecimal nominal;
public SlipGajiKomponenDtoBuilder() {
}
public SlipGajiKomponenDtoBuilder id(final String id) {
this.id = id;
return this;
}
public SlipGajiKomponenDtoBuilder idKomponen(final Integer idKomponen) {
this.idKomponen = idKomponen;
return this;
}
public SlipGajiKomponenDtoBuilder namaKomponen(final String namaKomponen) {
this.namaKomponen = namaKomponen;
return this;
}
public SlipGajiKomponenDtoBuilder nominal(final BigDecimal nominal) {
this.nominal = nominal;
return this;
}
public SlipGajiKomponenDto build() {
return new SlipGajiKomponenDto(this.id, this.idKomponen, this.namaKomponen, this.nominal);
}
}
}

View File

@ -0,0 +1,133 @@
package com.jasamedika.medifirst2000.entities;
import java.io.Serializable;
import java.math.BigDecimal;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
import org.hibernate.annotations.GenericGenerator;
import com.jasamedika.medifirst2000.helper.Caption;
/**
* @author salmanoe
* @since Jan 30, 2023
*/
@Entity
@Table(name = "sdm_slipgajikomponen_t")
public class SlipGajiKomponen implements Serializable {
private static final long serialVersionUID = -3932381437404780760L;
@Id
@GenericGenerator(name = "uuid", strategy = "uuid")
@GeneratedValue(generator = "uuid")
@Column(columnDefinition = "CHAR(32)", unique = true)
@Caption(value = "ID")
protected String id;
@ManyToOne
@JoinColumn(name = "komponengajifk")
@Caption(value = "Komponen Slip Gaji")
private KomponenGaji komponen;
@Column(name = "nominal")
@Caption(value = "Nominal")
private BigDecimal nominal;
@ManyToOne
@NotNull(message = "Slip Gaji tidak boleh kosong")
@JoinColumn(name = "slipgajifk", columnDefinition = "CHAR(32)", nullable = false)
@Caption(value = "Slip Gaji")
private SlipGaji slipGaji;
public SlipGajiKomponen() {
}
public SlipGajiKomponen(String id, KomponenGaji komponen, BigDecimal nominal, SlipGaji slipGaji) {
this.id = id;
this.komponen = komponen;
this.nominal = nominal;
this.slipGaji = slipGaji;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public KomponenGaji getKomponen() {
return komponen;
}
public void setKomponen(KomponenGaji komponen) {
this.komponen = komponen;
}
public BigDecimal getNominal() {
return nominal;
}
public void setNominal(BigDecimal nominal) {
this.nominal = nominal;
}
public SlipGaji getSlipGaji() {
return slipGaji;
}
public void setSlipGaji(SlipGaji slipGaji) {
this.slipGaji = slipGaji;
}
public static long getSerialversionuid() {
return serialVersionUID;
}
public static SlipGajiKomponenBuilder builder() {
return new SlipGajiKomponenBuilder();
}
public static class SlipGajiKomponenBuilder {
private String id;
private KomponenGaji komponen;
private BigDecimal nominal;
private SlipGaji slipGaji;
public SlipGajiKomponenBuilder() {
}
public SlipGajiKomponenBuilder id(final String id) {
this.id = id;
return this;
}
public SlipGajiKomponenBuilder komponen(final KomponenGaji komponen) {
this.komponen = komponen;
return this;
}
public SlipGajiKomponenBuilder nominal(final BigDecimal nominal) {
this.nominal = nominal;
return this;
}
public SlipGajiKomponenBuilder slipGaji(final SlipGaji slipGaji) {
this.slipGaji = slipGaji;
return this;
}
public SlipGajiKomponen build() {
return new SlipGajiKomponen(this.id, this.komponen, this.nominal, this.slipGaji);
}
}
}

View File

@ -54,9 +54,9 @@ public class SlipGajiController {
}
}
@RequestMapping(value = "/get/{pegawaiId}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Object> get(@PathVariable Integer pegawaiId) {
SlipGajiDto entity = slipGajiService.get(pegawaiId);
@RequestMapping(value = "/get/{pegawaiId}/{bulan}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Object> get(@PathVariable Integer pegawaiId, @PathVariable Long bulan) {
SlipGajiDto entity = slipGajiService.get(pegawaiId, bulan);
return new ResponseEntity<>(entity, HttpStatus.OK);
}
}