Update SlipGajiService
Penerapan komponen gaji pada service simpan dan get slip gaji per bulan per pegawai
This commit is contained in:
parent
277652ba29
commit
c26b23a85a
@ -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);
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user