diff --git a/jasamedika-business/pom.xml b/jasamedika-business/pom.xml index 85e0bec6..8730f152 100644 --- a/jasamedika-business/pom.xml +++ b/jasamedika-business/pom.xml @@ -45,7 +45,7 @@ - + @@ -227,16 +227,16 @@ querydsl-jpa 3.6.0 - - - + + + - com.rabbitmq - amqp-client - 4.1.0 + com.rabbitmq + amqp-client + 4.1.0 - + javax.servlet @@ -244,43 +244,40 @@ ${servlet.version} provided - + - org.torpedoquery - org.torpedoquery - 2.3.0 - - + org.torpedoquery + org.torpedoquery + 2.3.0 + + org.javassist javassist - + - + - org.javassist - javassist - 3.21.0-GA + org.javassist + javassist + 3.21.0-GA - - + + - - + + + + com.sun.jersey + jersey-client + 1.19.3 + + + + + - com.sun.jersey - jersey-client - 1.19.3 - - - - - - commons-io commons-io ${commons-io.version} diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapPegawaiJabatanToUnitKerjaDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapPegawaiJabatanToUnitKerjaDao.java index 3a62f6fe..1e8d78ef 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapPegawaiJabatanToUnitKerjaDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapPegawaiJabatanToUnitKerjaDao.java @@ -348,6 +348,10 @@ public interface MapPegawaiJabatanToUnitKerjaDao extends CrudRepository getAllMapping(); + @Query("select model from MapPegawaiJabatanToUnitKerja model " + "where model.statusEnabled is true " + + "and model.pegawaiId = :pegawaiId") + List findByPegawaiId(@Param("pegawaiId") Integer pegawaiId); + @Query("select new Map(mapp.id as idMapping, mapp.pegawaiId as idPegawai, mapp.atasanLangsungId as idAtasan, mapp.pejabatPenilaiId as idPenilai) " + "from MapPegawaiJabatanToUnitKerja mapp " + "where mapp.statusEnabled is true and mapp.jabatanId is not null and mapp.unitKerjaPegawaiId is not null and mapp.subUnitKerjaPegawaiId is not null " diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PenerimaanGajiDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PenerimaanGajiDao.java new file mode 100644 index 00000000..f90db6c1 --- /dev/null +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PenerimaanGajiDao.java @@ -0,0 +1,18 @@ +package com.jasamedika.medifirst2000.dao; + +import java.util.UUID; + +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.PenerimaanGaji; + +/** + * @author salmanoe + * @since Jan 20, 2023 + */ +public interface PenerimaanGajiDao extends JpaRepository { + @Query("select pg from PenerimaanGaji pg where pg.id = :id") + PenerimaanGaji findBySlipGajiId(@Param("id") String id); +} diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PenguranganGajiDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PenguranganGajiDao.java new file mode 100644 index 00000000..8949eebf --- /dev/null +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PenguranganGajiDao.java @@ -0,0 +1,18 @@ +package com.jasamedika.medifirst2000.dao; + +import java.util.UUID; + +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.PenguranganGaji; + +/** + * @author salmanoe + * @since Jan 20, 2023 + */ +public interface PenguranganGajiDao extends JpaRepository { + @Query("select pg from PenguranganGaji pg where pg.id = :id") + PenguranganGaji findBySlipGajiId(@Param("id") String id); +} diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SlipGajiDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SlipGajiDao.java new file mode 100644 index 00000000..7ef30098 --- /dev/null +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SlipGajiDao.java @@ -0,0 +1,15 @@ +package com.jasamedika.medifirst2000.dao; + +import java.util.Optional; +import java.util.UUID; + +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.SlipGaji; + +public interface SlipGajiDao extends JpaRepository { + @Query("select sg from SlipGaji sg where sg.pegawai.id = :pegawaiId") + Optional findByPegawai(@Param("pegawaiId") Integer pegawaiId); +} diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SlipGajiDetailDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SlipGajiDetailDao.java new file mode 100644 index 00000000..bec346aa --- /dev/null +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SlipGajiDetailDao.java @@ -0,0 +1,19 @@ +package com.jasamedika.medifirst2000.dao; + +import java.util.List; +import java.util.UUID; + +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.SlipGajiDetail; + +/** + * @author salmanoe + * @since Jan 20, 2023 + */ +public interface SlipGajiDetailDao extends JpaRepository { + @Query("select sgd from SlipGajiDetail sgd where sgd.slipGaji.id = :id") + List findBySlipGaji(@Param("id") String id); +} diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/SlipGajiService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/SlipGajiService.java new file mode 100644 index 00000000..8af06ed1 --- /dev/null +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/SlipGajiService.java @@ -0,0 +1,13 @@ +package com.jasamedika.medifirst2000.service; + +import com.jasamedika.medifirst2000.dto.SlipGajiDto; + +/** + * @author salmanoe + * @since Jan 20, 2023 + */ +public interface SlipGajiService { + void save(SlipGajiDto dto); + + SlipGajiDto get(Integer pegawaiId); +} 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 new file mode 100644 index 00000000..ec6c3d47 --- /dev/null +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/SlipGajiServiceImpl.java @@ -0,0 +1,188 @@ +package com.jasamedika.medifirst2000.service.impl; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import com.jasamedika.medifirst2000.dao.JabatanDao; +import com.jasamedika.medifirst2000.dao.MapPegawaiJabatanToUnitKerjaDao; +import com.jasamedika.medifirst2000.dao.NilaiKelompokJabatanDao; +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.SubUnitKerjaDao; +import com.jasamedika.medifirst2000.dao.UnitKerjaDao; +import com.jasamedika.medifirst2000.dto.SlipGajiDto; +import com.jasamedika.medifirst2000.entities.MapPegawaiJabatanToUnitKerja; +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.service.SlipGajiService; +import com.jasamedika.medifirst2000.util.CommonUtil; + +/** + * @author salmanoe + * @since Jan 20, 2023 + */ +@Service +@Transactional +public class SlipGajiServiceImpl implements SlipGajiService { + @Autowired + private SlipGajiDao slipGajiDao; + + @Autowired + private SlipGajiDetailDao slipGajiDetailDao; + + @Autowired + private PenerimaanGajiDao penerimaanGajiDao; + + @Autowired + private PenguranganGajiDao penguranganGajiDao; + + @Autowired + private PegawaiDao pegawaiDao; + + @Autowired + private MapPegawaiJabatanToUnitKerjaDao mappingJabatanDao; + + @Autowired + private JabatanDao jabatanDao; + + @Autowired + private UnitKerjaDao unitKerjaDao; + + @Autowired + private SubUnitKerjaDao subUnitKerjaDao; + + @Autowired + private NilaiKelompokJabatanDao gradeDao; + + @Override + public void save(SlipGajiDto dto) { + SlipGaji.SlipGajiBuilder slipGaji = SlipGaji.builder(); + slipGaji.pegawai(pegawaiDao.findById(dto.getIdPegawai())); + slipGaji.bulan(new Date(dto.getBulan())); + SlipGaji savedSlip = slipGajiDao.save(slipGaji.build()); + if (CommonUtil.isNotNullOrEmpty(savedSlip)) { + { + List listDetail = new ArrayList<>(); + List listMapping = mappingJabatanDao.findByPegawaiId(dto.getIdPegawai()); + listMapping.forEach(j -> { + SlipGajiDetail.SlipGajiDetailBuilder detail = SlipGajiDetail.builder(); + detail.slipGaji(savedSlip); +// if (CommonUtil.isNotNullOrEmpty(j.getJabatanId())) +// detail.jabatan(jabatanDao.findOne(j.getJabatanId())); +// if (CommonUtil.isNotNullOrEmpty(j.getUnitKerjaPegawaiId())) +// detail.unitKerja(unitKerjaDao.findOne(j.getUnitKerjaPegawaiId())); +// if (CommonUtil.isNotNullOrEmpty(j.getSubUnitKerjaPegawaiId())) +// detail.subUnitKerja(subUnitKerjaDao.findOne(j.getSubUnitKerjaPegawaiId())); +// if (CommonUtil.isNotNullOrEmpty(j.getGradeId())) +// detail.grade(gradeDao.findOne(j.getGradeId())); + if (CommonUtil.isNotNullOrEmpty(j.getJabatan())) + detail.jabatan(j.getJabatan()); + if (CommonUtil.isNotNullOrEmpty(j.getUnitKerjaPegawai())) + detail.unitKerja(j.getUnitKerjaPegawai()); + if (CommonUtil.isNotNullOrEmpty(j.getSubUnitKerjaPegawai())) + detail.subUnitKerja(j.getSubUnitKerjaPegawai()); + if (CommonUtil.isNotNullOrEmpty(j.getGrade())) + detail.grade(j.getGrade()); + listDetail.add(detail.build()); + }); + slipGajiDetailDao.save(listDetail); + } + { + PenerimaanGaji.PenerimaanGajiBuilder penerimaan = PenerimaanGaji.builder(); + 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(); + 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()); + } + } + } + + @Override + public SlipGajiDto get(Integer pegawaiId) { + Optional slipGaji = slipGajiDao.findByPegawai(pegawaiId); + SlipGajiDto.SlipGajiDtoBuilder dto = SlipGajiDto.builder(); + if (slipGaji.isPresent()) { + dto.idPegawai(slipGaji.get().getPegawai().getId()); + dto.namaPegawai(slipGaji.get().getPegawai().getNamaLengkap()); + dto.bulan(slipGaji.get().getBulan().getTime()); + { + List listDetail = slipGajiDetailDao.findBySlipGaji(slipGaji.get().getId()); + List listNamaJabatan = listDetail.stream() + .map(d -> CommonUtil.isNotNullOrEmpty(d.getJabatan()) ? d.getJabatan().getNamaJabatan() : "-") + .collect(Collectors.toList()); + List listNamaUnitKerja = listDetail.stream() + .map(d -> CommonUtil.isNotNullOrEmpty(d.getUnitKerja()) ? d.getUnitKerja().getName() : "-") + .collect(Collectors.toList()); + List listNamaSubunitKerja = listDetail.stream().map( + d -> CommonUtil.isNotNullOrEmpty(d.getSubUnitKerja()) ? d.getSubUnitKerja().getName() : "-") + .collect(Collectors.toList()); + List listNamaGrade = listDetail.stream() + .map(d -> CommonUtil.isNotNullOrEmpty(d.getGrade()) ? d.getGrade().getGradeDesc() : "-") + .collect(Collectors.toList()); + dto.jabatan(String.join("/", listNamaJabatan)); + 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()); + } + } + return dto.build(); + } +} diff --git a/jasamedika-domain/pom.xml b/jasamedika-domain/pom.xml index a24ca2d4..11177767 100644 --- a/jasamedika-domain/pom.xml +++ b/jasamedika-domain/pom.xml @@ -9,11 +9,11 @@ ../Medifirst2000/pom.xml - - org.hibernate - hibernate-envers - ${org.hibernate.version} - + + org.hibernate + hibernate-envers + ${org.hibernate.version} + ${project.groupId} @@ -40,8 +40,6 @@ ${jackson2.version} - - Jasa Medika diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/dto/SlipGajiDto.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/dto/SlipGajiDto.java new file mode 100644 index 00000000..ee048944 --- /dev/null +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/dto/SlipGajiDto.java @@ -0,0 +1,495 @@ +package com.jasamedika.medifirst2000.dto; + +import java.math.BigDecimal; + +import javax.validation.constraints.NotNull; + +import com.jasamedika.medifirst2000.helper.Caption; + +/** + * @author salmanoe + * @since Jan 20, 2023 + */ +public class SlipGajiDto { + @NotNull(message = "ID Pegawai must not be null") + @Caption(value = "ID Pegawai") + private Integer idPegawai; + + @Caption(value = "Nama Pegawai") + private String namaPegawai; + + @Caption(value = "Jabatan") + private String jabatan; + + @Caption(value = "Unit Kerja") + private String unitKerja; + + @Caption(value = "Subunit Kerja") + private String subUnitKerja; + + @Caption(value = "Grade") + private String grade; + + @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; + + public SlipGajiDto() { + } + + public SlipGajiDto(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) { + this.idPegawai = idPegawai; + this.namaPegawai = namaPegawai; + this.jabatan = jabatan; + this.unitKerja = unitKerja; + 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; + } + + public Integer getIdPegawai() { + return idPegawai; + } + + public void setIdPegawai(Integer idPegawai) { + this.idPegawai = idPegawai; + } + + public String getNamaPegawai() { + return namaPegawai; + } + + public void setNamaPegawai(String namaPegawai) { + this.namaPegawai = namaPegawai; + } + + public String getJabatan() { + return jabatan; + } + + public void setJabatan(String jabatan) { + this.jabatan = jabatan; + } + + public String getUnitKerja() { + return unitKerja; + } + + public void setUnitKerja(String unitKerja) { + this.unitKerja = unitKerja; + } + + public String getSubUnitKerja() { + return subUnitKerja; + } + + public void setSubUnitKerja(String subUnitKerja) { + this.subUnitKerja = subUnitKerja; + } + + public String getGrade() { + return grade; + } + + public void setGrade(String grade) { + this.grade = grade; + } + + public Long getBulan() { + return bulan; + } + + public void setBulan(Long bulan) { + this.bulan = bulan; + } + + public BigDecimal getGaji() { + return gaji; + } + + public void setGaji(BigDecimal gaji) { + this.gaji = gaji; + } + + 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 static SlipGajiDtoBuilder builder() { + return new SlipGajiDtoBuilder(); + } + + public static class SlipGajiDtoBuilder { + private Integer idPegawai; + private String namaPegawai; + private String jabatan; + private String unitKerja; + 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; + + public SlipGajiDtoBuilder() { + } + + public SlipGajiDtoBuilder idPegawai(final Integer idPegawai) { + this.idPegawai = idPegawai; + return this; + } + + public SlipGajiDtoBuilder namaPegawai(final String namaPegawai) { + this.namaPegawai = namaPegawai; + return this; + } + + public SlipGajiDtoBuilder jabatan(final String jabatan) { + this.jabatan = jabatan; + return this; + } + + public SlipGajiDtoBuilder unitKerja(final String unitKerja) { + this.unitKerja = unitKerja; + return this; + } + + public SlipGajiDtoBuilder subUnitKerja(final String subUnitKerja) { + this.subUnitKerja = subUnitKerja; + return this; + } + + public SlipGajiDtoBuilder grade(final String grade) { + this.grade = grade; + return this; + } + + public SlipGajiDtoBuilder bulan(final Long bulan) { + this.bulan = bulan; + 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; + return this; + } + + public SlipGajiDto build() { + return new SlipGajiDto(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); + } + } +} diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/PenerimaanGaji.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/PenerimaanGaji.java new file mode 100644 index 00000000..2d48d235 --- /dev/null +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/PenerimaanGaji.java @@ -0,0 +1,223 @@ +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.MapsId; +import javax.persistence.OneToOne; +import javax.persistence.Table; + +import org.hibernate.annotations.GenericGenerator; + +import com.jasamedika.medifirst2000.helper.Caption; + +/** + * @author salmanoe + * @since Jan 19, 2023 + */ +@Entity +@Table(name = "sdm_penerimaangaji_t") +public class PenerimaanGaji implements Serializable { + private static final long serialVersionUID = -5897315713394140347L; + + @Id + @GenericGenerator(name = "uuid", strategy = "uuid") + @GeneratedValue(generator = "uuid") + @Column(columnDefinition = "CHAR(32)", unique = true) + @Caption(value = "ID") + protected String id; + + @OneToOne + @MapsId + @JoinColumn(name = "id", columnDefinition = "CHAR(32)") + @Caption(value = "Slip Gaji") + private SlipGaji slipGaji; + + @Column(name = "gaji") + @Caption(value = "Gaji") + private BigDecimal gaji; + + @Column(name = "remunkinerja") + @Caption(value = "Remunerasi Kinerja") + private BigDecimal remunerasiKinerja; + + @Column(name = "remuntambahan") + @Caption(value = "Remunerasi Tambahan") + private BigDecimal remunerasiTambahan; + + @Column(name = "feeforservice") + @Caption(value = "Fee For Service") + private BigDecimal feeForService; + + @Column(name = "feeforonsite") + @Caption(value = "Fee for on Site") + private BigDecimal feeForOnSite; + + @Column(name = "uangmakan") + @Caption(value = "Uang Makan") + private BigDecimal uangMakan; + + @Column(name = "uanglembur") + @Caption(value = "Uang Lembur") + private BigDecimal uangLembur; + + public PenerimaanGaji() { + } + + public PenerimaanGaji(SlipGaji slipGaji, BigDecimal gaji, BigDecimal remunerasiKinerja, + BigDecimal remunerasiTambahan, BigDecimal feeForService, BigDecimal feeForOnSite, BigDecimal uangMakan, + BigDecimal uangLembur) { + this.slipGaji = slipGaji; + this.gaji = gaji; + this.remunerasiKinerja = remunerasiKinerja; + this.remunerasiTambahan = remunerasiTambahan; + this.feeForService = feeForService; + this.feeForOnSite = feeForOnSite; + this.uangMakan = uangMakan; + this.uangLembur = uangLembur; + } + + public static long getSerialversionuid() { + return serialVersionUID; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public SlipGaji getSlipGaji() { + return slipGaji; + } + + public void setSlipGaji(SlipGaji slipGaji) { + this.slipGaji = slipGaji; + } + + public BigDecimal getGaji() { + return gaji; + } + + public void setGaji(BigDecimal gaji) { + this.gaji = gaji; + } + + 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 static PenerimaanGajiBuilder builder() { + return new PenerimaanGajiBuilder(); + } + + public static class PenerimaanGajiBuilder { + private SlipGaji slipGaji; + private BigDecimal gaji; + private BigDecimal remunerasiKinerja; + private BigDecimal remunerasiTambahan; + private BigDecimal feeForService; + private BigDecimal feeForOnSite; + private BigDecimal uangMakan; + private BigDecimal uangLembur; + + public PenerimaanGajiBuilder() { + } + + public PenerimaanGajiBuilder slipGaji(final SlipGaji slipGaji) { + this.slipGaji = slipGaji; + return this; + } + + public PenerimaanGajiBuilder gaji(final BigDecimal gaji) { + this.gaji = gaji; + return this; + } + + public PenerimaanGajiBuilder remunerasiKinerja(final BigDecimal remunerasiKinerja) { + this.remunerasiKinerja = remunerasiKinerja; + return this; + } + + public PenerimaanGajiBuilder remunerasiTambahan(final BigDecimal remunerasiTambahan) { + this.remunerasiTambahan = remunerasiTambahan; + return this; + } + + public PenerimaanGajiBuilder feeForService(final BigDecimal feeForService) { + this.feeForService = feeForService; + return this; + } + + public PenerimaanGajiBuilder feeForOnSite(final BigDecimal feeForOnSite) { + this.feeForOnSite = feeForOnSite; + return this; + } + + public PenerimaanGajiBuilder uangMakan(final BigDecimal uangMakan) { + this.uangMakan = uangMakan; + return this; + } + + public PenerimaanGajiBuilder uangLembur(final BigDecimal uangLembur) { + this.uangLembur = uangLembur; + return this; + } + + public PenerimaanGaji build() { + return new PenerimaanGaji(this.slipGaji, this.gaji, this.remunerasiKinerja, this.remunerasiTambahan, + this.feeForService, this.feeForOnSite, this.uangMakan, this.uangLembur); + } + } +} diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/PenguranganGaji.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/PenguranganGaji.java new file mode 100644 index 00000000..eb14035e --- /dev/null +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/PenguranganGaji.java @@ -0,0 +1,301 @@ +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.MapsId; +import javax.persistence.OneToOne; +import javax.persistence.Table; + +import org.hibernate.annotations.GenericGenerator; + +import com.jasamedika.medifirst2000.helper.Caption; + +/** + * @author salmanoe + * @since Jan 19, 2023 + */ +@Entity +@Table(name = "sdm_pengurangangaji_t") +public class PenguranganGaji implements Serializable { + private static final long serialVersionUID = 7469410072144636675L; + + @Id + @GenericGenerator(name = "uuid", strategy = "uuid") + @GeneratedValue(generator = "uuid") + @Column(columnDefinition = "CHAR(32)", unique = true) + @Caption(value = "ID") + private String id; + + @OneToOne + @MapsId + @JoinColumn(name = "id", columnDefinition = "CHAR(32)") + @Caption(value = "Slip Gaji") + private SlipGaji slipGaji; + + @Column(name = "pphgaji") + @Caption(value = "PPH Gaji") + private BigDecimal pphGaji; + + @Column(name = "pphremun") + @Caption(value = "PPH Remunerasi") + private BigDecimal pphRemunerasi; + + @Column(name = "pphfeeforservice") + @Caption(value = "PPH Fee for Service") + private BigDecimal pphFeeForService; + + @Column(name = "pphfeeforonsite") + @Caption(value = "PPH Fee for On Site") + private BigDecimal pphFeeForOnSite; + + @Column(name = "pphuangmakan") + @Caption(value = "PPH Uang Makan") + private BigDecimal pphUangMakan; + + @Column(name = "pphuanglembur") + @Caption(value = "PPH Uang Lembur") + private BigDecimal pphUangLembur; + + @Column(name = "iuranwajibkoperasi") + @Caption(value = "Iuran Wajib Koperasi") + private BigDecimal iuranWajibKoperasi; + + @Column(name = "potonganpinjamankoperasi") + @Caption(value = "Potongan Pinjaman Koperasi") + private BigDecimal potonganPinjamanKoperasi; + + @Column(name = "potonganobat") + @Caption(value = "Potongan Obat") + private BigDecimal potonganObat; + + @Column(name = "biayarawatinap") + @Caption(value = "Biaya Rawat Inap") + private BigDecimal biayaRawatInap; + + @Column(name = "biayarawatjalan") + @Caption(value = "Biaya Rawat Jalan") + private BigDecimal biayaRawatJalan; + + public PenguranganGaji() { + } + + public PenguranganGaji(SlipGaji slipGaji, BigDecimal pphGaji, BigDecimal pphRemunerasi, BigDecimal pphFeeForService, + BigDecimal pphFeeForOnSite, BigDecimal pphUangMakan, BigDecimal pphUangLembur, + BigDecimal iuranWajibKoperasi, BigDecimal potonganPinjamanKoperasi, BigDecimal potonganObat, + BigDecimal biayaRawatInap, BigDecimal biayaRawatJalan) { + this.slipGaji = slipGaji; + 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; + } + + public static long getSerialversionuid() { + return serialVersionUID; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public SlipGaji getSlipGaji() { + return slipGaji; + } + + public void setSlipGaji(SlipGaji slipGaji) { + this.slipGaji = slipGaji; + } + + 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 static PenguranganGajiBuilder builder() { + return new PenguranganGajiBuilder(); + } + + public static class PenguranganGajiBuilder { + private SlipGaji slipGaji; + 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; + + public PenguranganGajiBuilder() { + } + + public PenguranganGajiBuilder slipGaji(final SlipGaji slipGaji) { + this.slipGaji = slipGaji; + return this; + } + + public PenguranganGajiBuilder pphGaji(final BigDecimal pphGaji) { + this.pphGaji = pphGaji; + return this; + } + + public PenguranganGajiBuilder pphRemunerasi(final BigDecimal pphRemunerasi) { + this.pphRemunerasi = pphRemunerasi; + return this; + } + + public PenguranganGajiBuilder pphFeeForService(final BigDecimal pphFeeForService) { + this.pphFeeForService = pphFeeForService; + return this; + } + + public PenguranganGajiBuilder pphFeeForOnSite(final BigDecimal pphFeeForOnSite) { + this.pphFeeForOnSite = pphFeeForOnSite; + return this; + } + + public PenguranganGajiBuilder pphUangMakan(final BigDecimal pphUangMakan) { + this.pphUangMakan = pphUangMakan; + return this; + } + + public PenguranganGajiBuilder biayaRawatInap(final BigDecimal biayaRawatInap) { + this.biayaRawatInap = biayaRawatInap; + return this; + } + + public PenguranganGajiBuilder iuranWajibKoperasi(final BigDecimal iuranWajibKoperasi) { + this.iuranWajibKoperasi = iuranWajibKoperasi; + return this; + } + + public PenguranganGajiBuilder potonganPinjamanKoperasi(final BigDecimal potonganPinjamanKoperasi) { + this.potonganPinjamanKoperasi = potonganPinjamanKoperasi; + return this; + } + + public PenguranganGajiBuilder potonganObat(final BigDecimal potonganObat) { + this.potonganObat = potonganObat; + return this; + } + + public PenguranganGajiBuilder pphUangLembur(final BigDecimal pphUangLembur) { + this.pphUangLembur = pphUangLembur; + return this; + } + + public PenguranganGajiBuilder biayaRawatJalan(final BigDecimal biayaRawatJalan) { + this.biayaRawatJalan = biayaRawatJalan; + return this; + } + + public PenguranganGaji build() { + return new PenguranganGaji(this.slipGaji, this.pphGaji, this.pphRemunerasi, this.pphFeeForService, + this.pphFeeForOnSite, this.pphUangMakan, this.pphUangLembur, this.iuranWajibKoperasi, + this.potonganPinjamanKoperasi, this.potonganObat, this.biayaRawatInap, this.biayaRawatJalan); + } + } +} diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/SlipGaji.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/SlipGaji.java new file mode 100644 index 00000000..c9cc29fc --- /dev/null +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/SlipGaji.java @@ -0,0 +1,109 @@ +package com.jasamedika.medifirst2000.entities; + +import java.io.Serializable; +import java.util.Date; + +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.persistence.Temporal; +import javax.persistence.TemporalType; +import javax.validation.constraints.NotNull; + +import org.hibernate.annotations.GenericGenerator; + +import com.jasamedika.medifirst2000.helper.Caption; + +/** + * @author salmanoe + * @since Jan 19, 2023 + */ +@Entity +@Table(name = "sdm_slipgaji_t") +public class SlipGaji implements Serializable { + private static final long serialVersionUID = 250139146139305450L; + + @Id + @GenericGenerator(name = "uuid", strategy = "uuid") + @GeneratedValue(generator = "uuid") + @Column(columnDefinition = "CHAR(32)", unique = true) + @Caption(value = "ID") + protected String id; + + @ManyToOne + @NotNull(message = "Pegawai tidak boleh kosong") + @JoinColumn(name = "pegawaifk", nullable = false) + @Caption(value = "Pegawai") + private Pegawai pegawai; + + @Temporal(TemporalType.DATE) + @Column(name = "bulan", nullable = false) + @Caption(value = "Bulan") + private Date bulan; + + public SlipGaji() { + } + + public SlipGaji(Pegawai pegawai, Date bulan) { + this.pegawai = pegawai; + this.bulan = bulan; + } + + public static long getSerialversionuid() { + return serialVersionUID; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public Pegawai getPegawai() { + return pegawai; + } + + public void setPegawai(Pegawai pegawai) { + this.pegawai = pegawai; + } + + public Date getBulan() { + return bulan; + } + + public void setBulan(Date bulan) { + this.bulan = bulan; + } + + public static SlipGajiBuilder builder() { + return new SlipGajiBuilder(); + } + + public static class SlipGajiBuilder { + private Pegawai pegawai; + private Date bulan; + + public SlipGajiBuilder() { + } + + public SlipGajiBuilder pegawai(final Pegawai pegawai) { + this.pegawai = pegawai; + return this; + } + + public SlipGajiBuilder bulan(final Date bulan) { + this.bulan = bulan; + return this; + } + + public SlipGaji build() { + return new SlipGaji(this.pegawai, this.bulan); + } + } +} diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/SlipGajiDetail.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/SlipGajiDetail.java new file mode 100644 index 00000000..b65fea88 --- /dev/null +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/SlipGajiDetail.java @@ -0,0 +1,167 @@ +package com.jasamedika.medifirst2000.entities; + +import java.io.Serializable; + +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 19, 2023 + */ +@Entity +@Table(name = "sdm_slipgajidetail_t") +public class SlipGajiDetail implements Serializable { + private static final long serialVersionUID = -2830163649660148065L; + + @Id + @GenericGenerator(name = "uuid", strategy = "uuid") + @GeneratedValue(generator = "uuid") + @Column(columnDefinition = "CHAR(32)", unique = true) + @Caption(value = "ID") + protected String id; + + @ManyToOne + @NotNull(message = "Slip Gaji tidak boleh kosong") + @JoinColumn(name = "slipgajifk", columnDefinition = "CHAR(32)", nullable = false) + @Caption(value = "Slip Gaji") + private SlipGaji slipGaji; + + @ManyToOne + @JoinColumn(name = "jabatanfk") + @Caption(value = "Jabatan") + private Jabatan jabatan; + + @ManyToOne + @JoinColumn(name = "Unitkerjafk") + @Caption(value = "Unit Kerja") + private UnitKerjaPegawai unitKerja; + + @ManyToOne + @JoinColumn(name = "subunitkerjafk") + @Caption(value = "Subunit Kerja") + private SubUnitKerjaPegawai subUnitKerja; + + @ManyToOne + @JoinColumn(name = "gradefk") + @Caption(value = "Grade") + private NilaiKelompokJabatan grade; + + public SlipGajiDetail() { + } + + public SlipGajiDetail(SlipGaji slipGaji, Jabatan jabatan, UnitKerjaPegawai unitKerja, + SubUnitKerjaPegawai subUnitKerja, NilaiKelompokJabatan grade) { + this.slipGaji = slipGaji; + this.jabatan = jabatan; + this.unitKerja = unitKerja; + this.subUnitKerja = subUnitKerja; + this.grade = grade; + } + + public static long getSerialversionuid() { + return serialVersionUID; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public SlipGaji getSlipGaji() { + return slipGaji; + } + + public void setSlipGaji(SlipGaji slipGaji) { + this.slipGaji = slipGaji; + } + + public Jabatan getJabatan() { + return jabatan; + } + + public void setJabatan(Jabatan jabatan) { + this.jabatan = jabatan; + } + + public UnitKerjaPegawai getUnitKerja() { + return unitKerja; + } + + public void setUnitKerja(UnitKerjaPegawai unitKerja) { + this.unitKerja = unitKerja; + } + + public SubUnitKerjaPegawai getSubUnitKerja() { + return subUnitKerja; + } + + public void setSubUnitKerja(SubUnitKerjaPegawai subUnitKerja) { + this.subUnitKerja = subUnitKerja; + } + + public NilaiKelompokJabatan getGrade() { + return grade; + } + + public void setGrade(NilaiKelompokJabatan grade) { + this.grade = grade; + } + + public static SlipGajiDetailBuilder builder() { + return new SlipGajiDetailBuilder(); + } + + public static class SlipGajiDetailBuilder { + private SlipGaji slipGaji; + private Jabatan jabatan; + private UnitKerjaPegawai unitKerja; + private SubUnitKerjaPegawai subUnitKerja; + private NilaiKelompokJabatan grade; + + public SlipGajiDetailBuilder() { + } + + public SlipGajiDetailBuilder slipGaji(final SlipGaji slipGaji) { + this.slipGaji = slipGaji; + return this; + } + + public SlipGajiDetailBuilder jabatan(final Jabatan jabatan) { + this.jabatan = jabatan; + return this; + } + + public SlipGajiDetailBuilder unitKerja(final UnitKerjaPegawai unitKerja) { + this.unitKerja = unitKerja; + return this; + } + + public SlipGajiDetailBuilder subUnitKerja(final SubUnitKerjaPegawai subUnitKerja) { + this.subUnitKerja = subUnitKerja; + return this; + } + + public SlipGajiDetailBuilder grade(final NilaiKelompokJabatan grade) { + this.grade = grade; + return this; + } + + public SlipGajiDetail build() { + return new SlipGajiDetail(this.slipGaji, this.jabatan, this.unitKerja, this.subUnitKerja, this.grade); + } + } +} 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 new file mode 100644 index 00000000..f5273fcc --- /dev/null +++ b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/SlipGajiController.java @@ -0,0 +1,40 @@ +package com.jasamedika.medifirst2000.controller; + +import javax.validation.Valid; + +import org.springframework.beans.factory.annotation.Autowired; +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.RestController; + +import com.jasamedika.medifirst2000.dto.SlipGajiDto; +import com.jasamedika.medifirst2000.service.SlipGajiService; + +@RestController +@RequestMapping("/slip-gaji") +public class SlipGajiController { + @Autowired + private SlipGajiService slipGajiService; + + @RequestMapping(value = "/save", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity save(@RequestBody @Valid SlipGajiDto dto) { + try { + slipGajiService.save(dto); + return new ResponseEntity<>(true, HttpStatus.CREATED); + } catch (Exception e) { + e.printStackTrace(); + return new ResponseEntity<>(null, HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @RequestMapping(value = "/get/{pegawaiId}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity get(@PathVariable Integer pegawaiId) { + SlipGajiDto entity = slipGajiService.get(pegawaiId); + return new ResponseEntity<>(entity, HttpStatus.OK); + } +}