Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package id.co.sofcograha.gajiidapi.domain.hris.payroll.rpt.perincianpenghasilankaryawan.services;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.Comparator;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import java.util.stream.Collectors;
- import org.apache.commons.lang.ArrayUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import com.lowagie.text.BadElementException;
- import com.lowagie.text.Document;
- import com.lowagie.text.Element;
- import com.lowagie.text.Font;
- import com.lowagie.text.FontFactory;
- import com.lowagie.text.Image;
- import com.lowagie.text.Phrase;
- import com.lowagie.text.pdf.PdfPCell;
- import com.lowagie.text.pdf.PdfPTable;
- import com.lowagie.text.pdf.PdfWriter;
- import id.co.sofcograha.gajiidapi.base.authentication.CurrentUser;
- import id.co.sofcograha.gajiidapi.base.extendables.FreeFormService;
- import id.co.sofcograha.gajiidapi.base.mst.company.entities.Company;
- import id.co.sofcograha.gajiidapi.base.mst.company.services.CompanyLogoService;
- import id.co.sofcograha.gajiidapi.base.mst.company.services.CompanyService;
- import id.co.sofcograha.gajiidapi.base.pojos.Base64StringEncodedPojo;
- import id.co.sofcograha.gajiidapi.base.search.SearchParameter;
- import id.co.sofcograha.gajiidapi.base.utils.OptionalConsumerUtil;
- import id.co.sofcograha.gajiidapi.base.utils.StringUtil;
- import id.co.sofcograha.gajiidapi.base.utils.TimeUtil;
- import id.co.sofcograha.gajiidapi.base.utils.YearMonthUtil;
- import id.co.sofcograha.gajiidapi.domain.constants.DomainConstants;
- import id.co.sofcograha.gajiidapi.domain.constants.IncomeDeductionConstants;
- import id.co.sofcograha.gajiidapi.domain.enums.InfluenceType;
- import id.co.sofcograha.gajiidapi.domain.hris.employee.data.employee.entities.Employee;
- import id.co.sofcograha.gajiidapi.domain.hris.employee.data.employee.services.EmployeeService;
- import id.co.sofcograha.gajiidapi.domain.hris.mst.payroll.incomeDeduction.entities.MstIncomeDeduction;
- import id.co.sofcograha.gajiidapi.domain.hris.mst.payroll.incomeDeduction.pojos.MstIncomeDeductionPojo;
- import id.co.sofcograha.gajiidapi.domain.hris.mst.payroll.incomeDeduction.services.MstIncomeDeductionService;
- import id.co.sofcograha.gajiidapi.domain.hris.payroll.data.pembayarankaryawan.services.PembayaranKaryawanService;
- import id.co.sofcograha.gajiidapi.domain.hris.payroll.data.pendapatanpotongankaryawan.entities.PendapatanPotonganKaryawan;
- import id.co.sofcograha.gajiidapi.domain.hris.payroll.data.pendapatanpotongankaryawan.services.PendapatanPotonganKaryawanService;
- import id.co.sofcograha.gajiidapi.domain.hris.payroll.data.summarypenghasilankaryawan.entities.SummaryPenghasilanKaryawan;
- import id.co.sofcograha.gajiidapi.domain.hris.payroll.data.summarypenghasilankaryawan.services.SummaryPenghasilanKaryawanService;
- import id.co.sofcograha.gajiidapi.domain.hris.payroll.rpt.perincianpenghasilankaryawan.entities.RptDaftarPerincianPenghasilanKaryawan;
- @Service
- public class RptPerincianPenghasilanKaryawanPdfReportService extends FreeFormService {
- @Autowired private CompanyService companyService;
- @Autowired private CompanyLogoService companyLogoService;
- @Autowired private EmployeeService employeeService;
- @Autowired private MstIncomeDeductionService mstIncomeDeductionService;
- @Autowired private PendapatanPotonganKaryawanService pendapatanPotonganKaryawanService;
- @Autowired private SummaryPenghasilanKaryawanService summaryPenghasilanKaryawanService;
- @Autowired private PembayaranKaryawanService pembayaranKaryawanService;
- private float STANDARD_FONT_SIZE = 7;
- private float TITLE_FONT_SIZE = 11;
- private Font STANDARD_FONT = FontFactory.getFont(FontFactory.HELVETICA, STANDARD_FONT_SIZE);
- private Font STANDARD_FONT_BOLD = FontFactory.getFont(FontFactory.HELVETICA_BOLD, STANDARD_FONT_SIZE);
- private Font TITLE_FONT = FontFactory.getFont(FontFactory.HELVETICA_BOLD, TITLE_FONT_SIZE);
- private int CELL_PADDING = 4;
- private int CELL_PADDING_DEFAULT = 20;
- private int CELL_PADDING_TOP_MINUS = 8;
- private int CELL_TABLE_PADDING_TOP = 2;
- private int CELL_TABLE_PADDING_BOTTOM = 2;
- public Base64StringEncodedPojo getDaftarPerincianPenghasilanKaryawan(String tahunBulanGaji,
- List<RptDaftarPerincianPenghasilanKaryawan> daftarPerincianPenghasilanKaryawanList) {
- RptPerincianPenghasilanKaryawanPdfReportGeneratorService rptPerincianPenghasilanKaryawanPdfReportGeneratorService = new RptPerincianPenghasilanKaryawanPdfReportGeneratorService();
- Document document = rptPerincianPenghasilanKaryawanPdfReportGeneratorService.getDocument();
- document.open();
- setContent(document,
- rptPerincianPenghasilanKaryawanPdfReportGeneratorService.getWriter(),
- tahunBulanGaji,
- daftarPerincianPenghasilanKaryawanList);
- document.close();
- return rptPerincianPenghasilanKaryawanPdfReportGeneratorService.generatePdfReport();
- }
- private void setTitle(Document document, String tahunBulanGaji, Employee karyawan) {
- PdfPTable table = new PdfPTable(12);
- table.setTotalWidth(document.getPageSize().getWidth() - document.leftMargin() - document.rightMargin());
- table.getDefaultCell().setBorderWidth(1);
- table.setLockedWidth(true);
- table.setSpacingAfter(10);
- Company company = companyService.get(CurrentUser.getCompanyId());
- OptionalConsumerUtil.of(companyLogoService.findByBk(company, 0))
- .ifPresent(companyLogo -> {
- try {
- Image image = Image.getInstance(ArrayUtils.toPrimitive(companyLogo.getFile()));
- PdfPCell imageCell = new PdfPCell(image, true);
- imageCell.setRowspan(2);
- imageCell.setPaddingTop(CELL_PADDING_DEFAULT - CELL_PADDING_TOP_MINUS);
- imageCell.setPaddingLeft(CELL_PADDING_DEFAULT);
- imageCell.setPaddingRight(CELL_PADDING_DEFAULT);
- imageCell.setBorderWidthRight(0);
- imageCell.setBorderWidthBottom(0);
- table.addCell(imageCell);
- } catch (BadElementException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- PdfPCell cell = new PdfPCell();
- cell.setColspan(11);
- cell.setPaddingTop(3);
- cell.setPaddingLeft(-16);
- cell.setPaddingRight(CELL_PADDING_DEFAULT);
- cell.setBorderWidthLeft(0);
- cell.setBorderWidthBottom(0);
- cell.addElement(new Phrase(company.getName(), TITLE_FONT));
- table.addCell(cell);
- PdfPCell headerCell = new PdfPCell();
- headerCell.setColspan(11);
- headerCell.setPaddingTop(-3);
- headerCell.setPaddingLeft(-16);
- headerCell.setPaddingRight(CELL_PADDING_DEFAULT);
- headerCell.setBorderWidthLeft(0);
- headerCell.setBorderWidthBottom(0);
- headerCell.setBorderWidthTop(0);
- headerCell.addElement(new Phrase("Perincian Penghasilan Karyawan Januari " + YearMonthUtil.getYear(tahunBulanGaji) + " s/d " + YearMonthUtil.format(tahunBulanGaji), TITLE_FONT));
- table.addCell(headerCell);
- })
- .ifNotPresent(() -> {
- PdfPCell imageCell = new PdfPCell();
- imageCell.setRowspan(2);
- imageCell.setPaddingTop(CELL_PADDING_DEFAULT - CELL_PADDING_TOP_MINUS);
- imageCell.setPaddingLeft(CELL_PADDING_DEFAULT);
- imageCell.setPaddingRight(CELL_PADDING_DEFAULT);
- imageCell.setBorderWidthRight(0);
- imageCell.setBorderWidthBottom(0);
- table.addCell(imageCell);
- PdfPCell cell = new PdfPCell();
- cell.setColspan(11);
- cell.setPaddingTop(3);
- cell.setPaddingLeft(-16);
- cell.setPaddingRight(CELL_PADDING_DEFAULT);
- cell.setBorderWidthLeft(0);
- cell.setBorderWidthBottom(0);
- cell.addElement(new Phrase(company.getName(), TITLE_FONT));
- table.addCell(cell);
- PdfPCell headerCell = new PdfPCell();
- headerCell.setColspan(11);
- headerCell.setPaddingTop(-3);
- headerCell.setPaddingLeft(-16);
- headerCell.setPaddingRight(CELL_PADDING_DEFAULT);
- headerCell.setBorderWidthLeft(0);
- headerCell.setBorderWidthBottom(0);
- headerCell.setBorderWidthTop(0);
- headerCell.addElement(new Phrase("Perincian Penghasilan Karyawan Januari " + YearMonthUtil.getYear(tahunBulanGaji) + " s/d " + YearMonthUtil.format(tahunBulanGaji), TITLE_FONT));
- table.addCell(headerCell);
- });
- PdfPCell karyawanLabelCell = new PdfPCell(new Phrase("Karyawan", STANDARD_FONT_BOLD));
- karyawanLabelCell.setPaddingLeft(CELL_PADDING_DEFAULT);
- karyawanLabelCell.setBorderWidthTop(0);
- karyawanLabelCell.setBorderWidthBottom(0);
- karyawanLabelCell.setBorderWidthRight(0);
- table.addCell(karyawanLabelCell);
- PdfPCell karyawanValueCell = new PdfPCell(new Phrase(": " + karyawan.getEmployeeId() + " - " + karyawan.getName(), STANDARD_FONT));
- karyawanValueCell.setColspan(3);
- karyawanValueCell.setBorderWidth(0);
- table.addCell(karyawanValueCell);
- PdfPCell jabatanLabelCell = new PdfPCell(new Phrase("Jabatan", STANDARD_FONT_BOLD));
- jabatanLabelCell.setBorderWidth(0);
- jabatanLabelCell.setColspan(2);
- table.addCell(jabatanLabelCell);
- PdfPCell jabatanValueCell = new PdfPCell(new Phrase(": " + karyawan.getPosition().getName(), STANDARD_FONT));
- jabatanValueCell.setColspan(2);
- jabatanValueCell.setBorderWidth(0);
- table.addCell(jabatanValueCell);
- PdfPCell statusNikahPajakLabelCell = new PdfPCell(new Phrase("Status nikah pajak", STANDARD_FONT_BOLD));
- statusNikahPajakLabelCell.setColspan(2);
- statusNikahPajakLabelCell.setBorderWidth(0);
- table.addCell(statusNikahPajakLabelCell);
- PdfPCell statusNikahPajakValueCell = new PdfPCell(new Phrase(": " + karyawan.getMarriageStatus().getValue(), STANDARD_FONT));
- statusNikahPajakValueCell.setPaddingRight(CELL_PADDING_DEFAULT);
- statusNikahPajakValueCell.setBorderWidthTop(0);
- statusNikahPajakValueCell.setBorderWidthBottom(0);
- statusNikahPajakValueCell.setBorderWidthLeft(0);
- statusNikahPajakValueCell.setColspan(2);
- table.addCell(statusNikahPajakValueCell);
- PdfPCell alamatLabelCell = new PdfPCell(new Phrase("Alamat", STANDARD_FONT_BOLD));
- alamatLabelCell.setPaddingLeft(CELL_PADDING_DEFAULT);
- alamatLabelCell.setBorderWidthTop(0);
- alamatLabelCell.setBorderWidthRight(0);
- alamatLabelCell.setBorderWidthBottom(0);
- table.addCell(alamatLabelCell);
- PdfPCell alamatValueCell = new PdfPCell(new Phrase(": " + karyawan.getIdAddress(), STANDARD_FONT));
- alamatValueCell.setColspan(3);
- alamatValueCell.setBorderWidthTop(0);
- alamatValueCell.setBorderWidthRight(0);
- alamatValueCell.setBorderWidthLeft(0);
- alamatValueCell.setBorderWidthBottom(0);
- table.addCell(alamatValueCell);
- PdfPCell tanggalMasukKerjaLabelCell = new PdfPCell(new Phrase("Tanggal masuk kerja", STANDARD_FONT_BOLD));
- tanggalMasukKerjaLabelCell.setColspan(2);
- tanggalMasukKerjaLabelCell.setBorderWidth(0);
- table.addCell(tanggalMasukKerjaLabelCell);
- PdfPCell tanggalMasukKerjaValueCell = new PdfPCell(new Phrase(": " + TimeUtil.convertDateToString(karyawan.getStartWorkingDate(), "dd/MM/yyyy"), STANDARD_FONT));
- tanggalMasukKerjaValueCell.setColspan(2);
- tanggalMasukKerjaValueCell.setBorderWidth(0);
- table.addCell(tanggalMasukKerjaValueCell);
- PdfPCell noNPWPKaryawanLabelCell = new PdfPCell(new Phrase("No. NPWP Karyawan", STANDARD_FONT_BOLD));
- noNPWPKaryawanLabelCell.setColspan(2);
- noNPWPKaryawanLabelCell.setBorderWidth(0);
- table.addCell(noNPWPKaryawanLabelCell);
- String formattedNoNPWPKaryawan = StringUtil.convertToNPWPFormat(karyawan.getNpwpNumber());
- PdfPCell noNPWPKaryawanValueCell = new PdfPCell(new Phrase(": " + (formattedNoNPWPKaryawan != null ? formattedNoNPWPKaryawan : ""), STANDARD_FONT));
- noNPWPKaryawanValueCell.setPaddingRight(CELL_PADDING_DEFAULT);
- noNPWPKaryawanValueCell.setBorderWidthTop(0);
- noNPWPKaryawanValueCell.setBorderWidthBottom(0);
- noNPWPKaryawanValueCell.setBorderWidthLeft(0);
- noNPWPKaryawanValueCell.setColspan(2);
- table.addCell(noNPWPKaryawanValueCell);
- PdfPCell alamatKotaKabupatenLabelCell = new PdfPCell(new Phrase("", STANDARD_FONT_BOLD));
- alamatKotaKabupatenLabelCell.setPaddingLeft(CELL_PADDING_DEFAULT);
- alamatKotaKabupatenLabelCell.setBorderWidthTop(0);
- alamatKotaKabupatenLabelCell.setBorderWidthRight(0);
- alamatKotaKabupatenLabelCell.setPaddingBottom(CELL_PADDING_DEFAULT - CELL_PADDING_TOP_MINUS);
- table.addCell(alamatKotaKabupatenLabelCell);
- PdfPCell alamatKotaKabupatenValueCell = new PdfPCell(new Phrase(" " + karyawan.getIdKecamatan() + " - " + karyawan.getIdKelurahan() + ", " + karyawan.getIdKotaKabupaten(), STANDARD_FONT));
- alamatKotaKabupatenValueCell.setColspan(3);
- alamatKotaKabupatenValueCell.setBorderWidthTop(0);
- alamatKotaKabupatenValueCell.setBorderWidthRight(0);
- alamatKotaKabupatenValueCell.setBorderWidthLeft(0);
- alamatKotaKabupatenValueCell.setPaddingBottom(CELL_PADDING_DEFAULT - CELL_PADDING_TOP_MINUS);
- table.addCell(alamatKotaKabupatenValueCell);
- PdfPCell tanggalTerakhirKerjaLabelCell = new PdfPCell(new Phrase("Tanggal terakhir kerja", STANDARD_FONT_BOLD));
- tanggalTerakhirKerjaLabelCell.setColspan(2);
- tanggalTerakhirKerjaLabelCell.setBorderWidthTop(0);
- tanggalTerakhirKerjaLabelCell.setBorderWidthLeft(0);
- tanggalTerakhirKerjaLabelCell.setBorderWidthRight(0);
- tanggalTerakhirKerjaLabelCell.setPaddingBottom(CELL_PADDING_DEFAULT - CELL_PADDING_TOP_MINUS);
- table.addCell(tanggalTerakhirKerjaLabelCell);
- PdfPCell tanggalTerakhirKerjaValueCell = new PdfPCell(new Phrase(": " + (karyawan.getLastWorkingDate() != null ? TimeUtil.convertDateToString(karyawan.getLastWorkingDate(), "dd/MM/yyyy") : "-"), STANDARD_FONT));
- tanggalTerakhirKerjaValueCell.setColspan(2);
- tanggalTerakhirKerjaValueCell.setBorderWidthTop(0);
- tanggalTerakhirKerjaValueCell.setBorderWidthLeft(0);
- tanggalTerakhirKerjaValueCell.setBorderWidthRight(0);
- tanggalTerakhirKerjaValueCell.setPaddingBottom(CELL_PADDING_DEFAULT - CELL_PADDING_TOP_MINUS);
- table.addCell(tanggalTerakhirKerjaValueCell);
- PdfPCell noNPWPPerusahaanLabelCell = new PdfPCell(new Phrase("No. NPWP Perusahaan", STANDARD_FONT_BOLD));
- noNPWPPerusahaanLabelCell.setColspan(2);
- noNPWPPerusahaanLabelCell.setBorderWidthTop(0);
- noNPWPPerusahaanLabelCell.setBorderWidthLeft(0);
- noNPWPPerusahaanLabelCell.setBorderWidthRight(0);
- noNPWPPerusahaanLabelCell.setPaddingBottom(CELL_PADDING_DEFAULT - CELL_PADDING_TOP_MINUS);
- table.addCell(noNPWPPerusahaanLabelCell);
- String formattedNoNPWPPerusahaan = StringUtil.convertToNPWPFormat(karyawan.getNpwp().getNpwpNumber());
- PdfPCell noNPWPPerusahaanValueCell = new PdfPCell(new Phrase(": " + (formattedNoNPWPPerusahaan != null ? formattedNoNPWPPerusahaan : ""), STANDARD_FONT));
- noNPWPPerusahaanValueCell.setPaddingRight(CELL_PADDING_DEFAULT);
- noNPWPPerusahaanValueCell.setPaddingBottom(CELL_PADDING_DEFAULT - CELL_PADDING_TOP_MINUS);
- noNPWPPerusahaanValueCell.setBorderWidthTop(0);
- noNPWPPerusahaanValueCell.setBorderWidthLeft(0);
- noNPWPPerusahaanValueCell.setColspan(2);
- table.addCell(noNPWPPerusahaanValueCell);
- document.add(table);
- }
- private void setContent(Document document,
- PdfWriter writer,
- String tahunBulanGaji,
- List<RptDaftarPerincianPenghasilanKaryawan> daftarPerincianPenghasilanKaryawanList) {
- for (RptDaftarPerincianPenghasilanKaryawan daftarPerincianPenghasilanKaryawan: daftarPerincianPenghasilanKaryawanList) {
- Employee employee = employeeService.get(daftarPerincianPenghasilanKaryawan.getKaryawanId());
- setTitle(document, tahunBulanGaji, employee);
- setData(document, tahunBulanGaji, employee);
- document.newPage();
- document.setPageCount(1);
- }
- }
- private void setData(Document document, String tahunBulanGaji, Employee employee) {
- List<Double> gajiList = new ArrayList<Double>();
- List<Double> rapelGajiList = new ArrayList<Double>();
- List<Double> thrList = new ArrayList<Double>();
- List<Double> rapelThrList = new ArrayList<Double>();
- List<Double> bonusList = new ArrayList<Double>();
- List<Double> pembayaranSisaCutiList = new ArrayList<Double>();
- List<Double> totalTunjanganList = new ArrayList<Double>();
- List<Double> totalTidakDiterimaKaryawanList = new ArrayList<Double>();
- List<Double> totalPotonganList = new ArrayList<Double>();
- List<Double> keseluruhanList = new ArrayList<Double>();
- List<Double> diterimaKaryawanList = new ArrayList<Double>();
- List<Double> pajakDitanggungKaryawanList = new ArrayList<Double>();
- List<Double> pajakDitanggungPerusahaanList = new ArrayList<Double>();
- PdfPTable table = new PdfPTable(15);
- table.setTotalWidth(document.getPageSize().getWidth() - document.leftMargin() - document.rightMargin());
- table.getDefaultCell().setBorderWidth(1);
- table.setLockedWidth(true);
- table.setHorizontalAlignment(Element.ALIGN_CENTER);
- table.setSpacingAfter(10);
- table.setHeaderRows(2);
- // Table header
- PdfPCell pendapatanPotonganLabelCell = new PdfPCell(new Phrase("Pendapatan / Potongan", STANDARD_FONT_BOLD));
- pendapatanPotonganLabelCell.setHorizontalAlignment(Element.ALIGN_CENTER);
- pendapatanPotonganLabelCell.setColspan(2);
- pendapatanPotonganLabelCell.setRowspan(2);
- table.addCell(pendapatanPotonganLabelCell);
- PdfPCell nilaiPendapatanPotonganLabelCell = new PdfPCell(new Phrase("Nilai Pendapatan / Potongan", STANDARD_FONT_BOLD));
- nilaiPendapatanPotonganLabelCell.setHorizontalAlignment(Element.ALIGN_CENTER);
- nilaiPendapatanPotonganLabelCell.setColspan(12);
- nilaiPendapatanPotonganLabelCell.setBorderWidthBottom(0);
- table.addCell(nilaiPendapatanPotonganLabelCell);
- PdfPCell totalLabelCell = new PdfPCell(new Phrase("Total", STANDARD_FONT_BOLD));
- totalLabelCell.setRowspan(2);
- totalLabelCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- table.addCell(totalLabelCell);
- PdfPCell januariLabelCell = new PdfPCell(new Phrase("Januari", STANDARD_FONT_BOLD));
- januariLabelCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- table.addCell(januariLabelCell);
- PdfPCell februariLabelCell = new PdfPCell(new Phrase("Februari", STANDARD_FONT_BOLD));
- februariLabelCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- table.addCell(februariLabelCell);
- PdfPCell maretLabelCell = new PdfPCell(new Phrase("Maret", STANDARD_FONT_BOLD));
- maretLabelCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- table.addCell(maretLabelCell);
- PdfPCell aprilLabelCell = new PdfPCell(new Phrase("April", STANDARD_FONT_BOLD));
- aprilLabelCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- table.addCell(aprilLabelCell);
- PdfPCell meiLabelCell = new PdfPCell(new Phrase("Mei", STANDARD_FONT_BOLD));
- meiLabelCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- table.addCell(meiLabelCell);
- PdfPCell juniLabelCell = new PdfPCell(new Phrase("Juni", STANDARD_FONT_BOLD));
- juniLabelCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- table.addCell(juniLabelCell);
- PdfPCell juliLabelCell = new PdfPCell(new Phrase("Juli", STANDARD_FONT_BOLD));
- juliLabelCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- table.addCell(juliLabelCell);
- PdfPCell agustusLabelCell = new PdfPCell(new Phrase("Agustus", STANDARD_FONT_BOLD));
- agustusLabelCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- table.addCell(agustusLabelCell);
- PdfPCell septemberLabelCell = new PdfPCell(new Phrase("September", STANDARD_FONT_BOLD));
- septemberLabelCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- table.addCell(septemberLabelCell);
- PdfPCell oktoberLabelCell = new PdfPCell(new Phrase("Oktober", STANDARD_FONT_BOLD));
- oktoberLabelCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- table.addCell(oktoberLabelCell);
- PdfPCell novemberLabelCell = new PdfPCell(new Phrase("November", STANDARD_FONT_BOLD));
- novemberLabelCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- table.addCell(novemberLabelCell);
- PdfPCell desemberLabelCell = new PdfPCell(new Phrase("Desember", STANDARD_FONT_BOLD));
- desemberLabelCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- table.addCell(desemberLabelCell);
- List<PendapatanPotonganKaryawan> pendapatanPotonganKaryawanList = pendapatanPotonganKaryawanService.searchPendapatanPotonganKaryawanYangSudahDibayar(tahunBulanGaji, employee.getId());
- List<SummaryPenghasilanKaryawan> summaryPenghasilanKaryawanList = summaryPenghasilanKaryawanService.searchAllSummaryPenghasilanKaryawanYangSudahDibayar(tahunBulanGaji, employee.getId());
- List<Object[]> pembayaranKaryawanList = pembayaranKaryawanService.searchTotalKoreksiTHPTunaiDanNilaiPerTahunBulan(tahunBulanGaji, employee.getId());
- String year = YearMonthUtil.getYear(tahunBulanGaji);
- // Gaji
- PendapatanPotonganKaryawan objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.GAJI) && pendapatanPotonganKaryawan.getTotalNilai() != 0)
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- pendapatanPotonganLabelCell = new PdfPCell(new Phrase("Gaji", STANDARD_FONT_BOLD));
- pendapatanPotonganLabelCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- pendapatanPotonganLabelCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- pendapatanPotonganLabelCell.setColspan(2);
- pendapatanPotonganLabelCell.setBorderWidthTop(0);
- pendapatanPotonganLabelCell.setBorderWidthLeft(0);
- pendapatanPotonganLabelCell.setBorderWidthRight(0);
- table.addCell(pendapatanPotonganLabelCell);
- Double totalGaji = 0D;
- for (int i = 0; i < 12; i++) {
- final String yearMonth = (i + 1) < 10 ? (year + "0" + (i + 1)) : year + String.valueOf((i + 1));
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.GAJI) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- PdfPCell monthValueCell = new PdfPCell();
- if (objPendapatanPotonganKaryawan != null) {
- gajiList.add(objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue());
- monthValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue()), STANDARD_FONT));
- totalGaji += objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue();
- } else {
- gajiList.add(0D);
- monthValueCell = new PdfPCell(new Phrase("0", STANDARD_FONT));
- }
- monthValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- monthValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- monthValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- monthValueCell.setBorderWidthTop(0);
- monthValueCell.setBorderWidthLeft(0);
- monthValueCell.setBorderWidthRight(0);
- table.addCell(monthValueCell);
- }
- // total gaji semua bulan pada tahun yang sama
- PdfPCell totalValueCell = new PdfPCell();
- totalValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(totalGaji.doubleValue()), STANDARD_FONT));
- totalValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- totalValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- totalValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- totalValueCell.setBorderWidthTop(0);
- totalValueCell.setBorderWidthLeft(0);
- totalValueCell.setBorderWidthRight(0);
- table.addCell(totalValueCell);
- } else {
- for (int i = 0; i < 12; i++) {
- gajiList.add(0D);
- }
- }
- // Rapel Gaji
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.RAPEL_GAJI) && pendapatanPotonganKaryawan.getTotalNilai() != 0)
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- pendapatanPotonganLabelCell = new PdfPCell(new Phrase("Rapel gaji", STANDARD_FONT_BOLD));
- pendapatanPotonganLabelCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- pendapatanPotonganLabelCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- pendapatanPotonganLabelCell.setColspan(2);
- pendapatanPotonganLabelCell.setBorderWidthTop(0);
- pendapatanPotonganLabelCell.setBorderWidthLeft(0);
- pendapatanPotonganLabelCell.setBorderWidthRight(0);
- table.addCell(pendapatanPotonganLabelCell);
- Double totalRapelGaji = 0D;
- for (int i = 0; i < 12; i++) {
- final String yearMonth = (i + 1) < 10 ? (year + "0" + (i + 1)) : year + String.valueOf((i + 1));
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.RAPEL_GAJI) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- PdfPCell monthValueCell = new PdfPCell();
- if (objPendapatanPotonganKaryawan != null) {
- rapelGajiList.add(objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue());
- monthValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue()), STANDARD_FONT));
- totalRapelGaji += objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue();
- } else {
- rapelGajiList.add(0D);
- monthValueCell = new PdfPCell(new Phrase("0", STANDARD_FONT));
- }
- monthValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- monthValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- monthValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- monthValueCell.setBorderWidthTop(0);
- monthValueCell.setBorderWidthLeft(0);
- monthValueCell.setBorderWidthRight(0);
- table.addCell(monthValueCell);
- }
- // total rapel gaji semua bulan pada tahun yang sama
- PdfPCell totalValueCell = new PdfPCell();
- totalValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(totalRapelGaji.doubleValue()), STANDARD_FONT));
- totalValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- totalValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- totalValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- totalValueCell.setBorderWidthTop(0);
- totalValueCell.setBorderWidthLeft(0);
- totalValueCell.setBorderWidthRight(0);
- table.addCell(totalValueCell);
- } else {
- for (int i = 0; i < 12; i++) {
- rapelGajiList.add(0D);
- }
- }
- // THR
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.THR) && pendapatanPotonganKaryawan.getTotalNilai() != 0)
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- pendapatanPotonganLabelCell = new PdfPCell(new Phrase("THR", STANDARD_FONT_BOLD));
- pendapatanPotonganLabelCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- pendapatanPotonganLabelCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- pendapatanPotonganLabelCell.setColspan(2);
- pendapatanPotonganLabelCell.setBorderWidthTop(0);
- pendapatanPotonganLabelCell.setBorderWidthLeft(0);
- pendapatanPotonganLabelCell.setBorderWidthRight(0);
- table.addCell(pendapatanPotonganLabelCell);
- Double totalThr = 0D;
- for (int i = 0; i < 12; i++) {
- final String yearMonth = (i + 1) < 10 ? (year + "0" + (i + 1)) : year + String.valueOf((i + 1));
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.THR) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- PdfPCell monthValueCell = new PdfPCell();
- if (objPendapatanPotonganKaryawan != null) {
- thrList.add(objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue());
- monthValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue()), STANDARD_FONT));
- totalThr += objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue();
- } else {
- thrList.add(0D);
- monthValueCell = new PdfPCell(new Phrase("0", STANDARD_FONT));
- }
- monthValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- monthValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- monthValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- monthValueCell.setBorderWidthTop(0);
- monthValueCell.setBorderWidthLeft(0);
- monthValueCell.setBorderWidthRight(0);
- table.addCell(monthValueCell);
- }
- // total thr semua bulan pada tahun yang sama
- PdfPCell totalValueCell = new PdfPCell();
- totalValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(totalThr.doubleValue()), STANDARD_FONT));
- totalValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- totalValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- totalValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- totalValueCell.setBorderWidthTop(0);
- totalValueCell.setBorderWidthLeft(0);
- totalValueCell.setBorderWidthRight(0);
- table.addCell(totalValueCell);
- } else {
- for (int i = 0; i < 12; i++) {
- thrList.add(0D);
- }
- }
- // Rapel THR
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.RAPEL_THR) && pendapatanPotonganKaryawan.getTotalNilai() != 0)
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- pendapatanPotonganLabelCell = new PdfPCell(new Phrase("Rapel THR", STANDARD_FONT_BOLD));
- pendapatanPotonganLabelCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- pendapatanPotonganLabelCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- pendapatanPotonganLabelCell.setColspan(2);
- pendapatanPotonganLabelCell.setBorderWidthTop(0);
- pendapatanPotonganLabelCell.setBorderWidthLeft(0);
- pendapatanPotonganLabelCell.setBorderWidthRight(0);
- table.addCell(pendapatanPotonganLabelCell);
- Double totalRapelThr = 0D;
- for (int i = 0; i < 12; i++) {
- final String yearMonth = (i + 1) < 10 ? (year + "0" + (i + 1)) : year + String.valueOf((i + 1));
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.RAPEL_THR) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- PdfPCell monthValueCell = new PdfPCell();
- if (objPendapatanPotonganKaryawan != null) {
- rapelThrList.add(objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue());
- monthValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue()), STANDARD_FONT));
- totalRapelThr += objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue();
- } else {
- rapelThrList.add(0D);
- monthValueCell = new PdfPCell(new Phrase("0", STANDARD_FONT));
- }
- monthValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- monthValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- monthValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- monthValueCell.setBorderWidthTop(0);
- monthValueCell.setBorderWidthLeft(0);
- monthValueCell.setBorderWidthRight(0);
- table.addCell(monthValueCell);
- }
- // total rapel thr semua bulan pada tahun yang sama
- PdfPCell totalValueCell = new PdfPCell();
- totalValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(totalRapelThr.doubleValue()), STANDARD_FONT));
- totalValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- totalValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- totalValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- totalValueCell.setBorderWidthTop(0);
- totalValueCell.setBorderWidthLeft(0);
- totalValueCell.setBorderWidthRight(0);
- table.addCell(totalValueCell);
- } else {
- for (int i = 0; i < 12; i++) {
- rapelThrList.add(0D);
- }
- }
- // Bonus
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.BONUS) && pendapatanPotonganKaryawan.getTotalNilai() != 0)
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- pendapatanPotonganLabelCell = new PdfPCell(new Phrase("Bonus", STANDARD_FONT_BOLD));
- pendapatanPotonganLabelCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- pendapatanPotonganLabelCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- pendapatanPotonganLabelCell.setColspan(2);
- pendapatanPotonganLabelCell.setBorderWidthTop(0);
- pendapatanPotonganLabelCell.setBorderWidthLeft(0);
- pendapatanPotonganLabelCell.setBorderWidthRight(0);
- table.addCell(pendapatanPotonganLabelCell);
- Double totalBonus = 0D;
- for (int i = 0; i < 12; i++) {
- final String yearMonth = (i + 1) < 10 ? (year + "0" + (i + 1)) : year + String.valueOf((i + 1));
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.BONUS) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- PdfPCell monthValueCell = new PdfPCell();
- if (objPendapatanPotonganKaryawan != null) {
- bonusList.add(objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue());
- monthValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue()), STANDARD_FONT));
- totalBonus += objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue();
- } else {
- bonusList.add(0D);
- monthValueCell = new PdfPCell(new Phrase("0", STANDARD_FONT));
- }
- monthValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- monthValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- monthValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- monthValueCell.setBorderWidthTop(0);
- monthValueCell.setBorderWidthLeft(0);
- monthValueCell.setBorderWidthRight(0);
- table.addCell(monthValueCell);
- }
- // total bonus semua bulan pada tahun yang sama
- PdfPCell totalValueCell = new PdfPCell();
- totalValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(totalBonus.doubleValue()), STANDARD_FONT));
- totalValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- totalValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- totalValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- totalValueCell.setBorderWidthTop(0);
- totalValueCell.setBorderWidthLeft(0);
- totalValueCell.setBorderWidthRight(0);
- table.addCell(totalValueCell);
- } else {
- for (int i = 0; i < 12; i++) {
- bonusList.add(0D);
- }
- }
- // Pembayaran sisa cuti
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.PEMBAYARAN_SISA_CUTI) && pendapatanPotonganKaryawan.getTotalNilai() != 0)
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- pendapatanPotonganLabelCell = new PdfPCell(new Phrase("Pembayaran sisa cuti", STANDARD_FONT_BOLD));
- pendapatanPotonganLabelCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- pendapatanPotonganLabelCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- pendapatanPotonganLabelCell.setColspan(2);
- pendapatanPotonganLabelCell.setBorderWidthTop(0);
- pendapatanPotonganLabelCell.setBorderWidthLeft(0);
- pendapatanPotonganLabelCell.setBorderWidthRight(0);
- table.addCell(pendapatanPotonganLabelCell);
- Double totalPembayaranSisaCuti = 0D;
- for (int i = 0; i < 12; i++) {
- final String yearMonth = (i + 1) < 10 ? (year + "0" + (i + 1)) : year + String.valueOf((i + 1));
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.PEMBAYARAN_SISA_CUTI) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- PdfPCell monthValueCell = new PdfPCell();
- if (objPendapatanPotonganKaryawan != null) {
- pembayaranSisaCutiList.add(objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue());
- monthValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue()), STANDARD_FONT));
- totalPembayaranSisaCuti += objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue();
- } else {
- pembayaranSisaCutiList.add(0D);
- monthValueCell = new PdfPCell(new Phrase("0", STANDARD_FONT));
- }
- monthValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- monthValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- monthValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- monthValueCell.setBorderWidthTop(0);
- monthValueCell.setBorderWidthLeft(0);
- monthValueCell.setBorderWidthRight(0);
- table.addCell(monthValueCell);
- }
- // total pembayaran sisa cuti semua bulan pada tahun yang sama
- PdfPCell totalValueCell = new PdfPCell();
- totalValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(totalPembayaranSisaCuti.doubleValue()), STANDARD_FONT));
- totalValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- totalValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- totalValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- totalValueCell.setBorderWidthTop(0);
- totalValueCell.setBorderWidthLeft(0);
- totalValueCell.setBorderWidthRight(0);
- table.addCell(totalValueCell);
- } else {
- for (int i = 0; i < 12; i++) {
- pembayaranSisaCutiList.add(0D);
- }
- }
- // Tunjangan
- PdfPCell tunjanganLabelCell = new PdfPCell(new Phrase("Tunjangan", STANDARD_FONT_BOLD));
- tunjanganLabelCell.setColspan(2);
- tunjanganLabelCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- tunjanganLabelCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- tunjanganLabelCell.setBorderWidthTop(0);
- tunjanganLabelCell.setBorderWidthLeft(0);
- tunjanganLabelCell.setBorderWidthRight(0);
- table.addCell(tunjanganLabelCell);
- Double totalAllTunjangan = 0D;
- for (int i = 0; i < 12; i++) {
- final String yearMonth = (i + 1) < 10 ? (year + "0" + (i + 1)) : year + String.valueOf((i + 1));
- Double totalTunjangan = 0D;
- List<PendapatanPotonganKaryawan> tunjanganDiterimaKaryawanList = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().trim().equals(DomainConstants.EMPTY) && pendapatanPotonganKaryawan.getPendapatanPotongan().getThpFlag() == InfluenceType.INCREASE && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .collect(Collectors.toList());
- List<PendapatanPotonganKaryawan> tunjanganTidakDiterimaKaryawanList = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().trim().equals(DomainConstants.EMPTY) && pendapatanPotonganKaryawan.getPendapatanPotongan().getThpFlag() == InfluenceType.NOT_INFLUENCED && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .collect(Collectors.toList());
- // pendapatan yang memiliki flag pengaruh thp = 1
- for (PendapatanPotonganKaryawan tunjanganDiterimaKaryawan: tunjanganDiterimaKaryawanList) {
- totalTunjangan += tunjanganDiterimaKaryawan.getTotalNilaiAkhir();
- }
- // rapel lembur
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.RAPEL_LEMBUR) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- totalTunjangan += objPendapatanPotonganKaryawan.getTotalNilaiAkhir();
- }
- // tunjangan pajak
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.TUNJANGAN_PAJAK) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- totalTunjangan += objPendapatanPotonganKaryawan.getTotalNilaiAkhir();
- }
- // BPJS Perusahaan - JHT perusahaan
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.JHT_PERUSAHAAN) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- totalTunjangan += objPendapatanPotonganKaryawan.getTotalNilaiAkhir();
- }
- // BPJS Perusahaan - JKK perusahaan
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.JKK_PERUSAHAAN) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- totalTunjangan += objPendapatanPotonganKaryawan.getTotalNilaiAkhir();
- }
- // BPJS Perusahaan - JKM perusahaan
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.JKM_PERUSAHAAN) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- totalTunjangan += objPendapatanPotonganKaryawan.getTotalNilaiAkhir();
- }
- // BPJS Perusahaan - JKN perusahaan
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.JKN_PERUSAHAAN) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- totalTunjangan += objPendapatanPotonganKaryawan.getTotalNilaiAkhir();
- }
- // BPJS Perusahaan - JP perusahaan
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.JP_PERUSAHAAN) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- totalTunjangan += objPendapatanPotonganKaryawan.getTotalNilaiAkhir();
- }
- // BPJS Perusahaan - Rapel BPJS
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.RAPEL_BPJS) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- totalTunjangan += objPendapatanPotonganKaryawan.getTotalNilaiAkhir();
- }
- // pendapatan potongan yang memiliki flag pengaruh thp = 0
- for (PendapatanPotonganKaryawan tunjangaTidakDiterimaKaryawan: tunjanganTidakDiterimaKaryawanList) {
- totalTunjangan += tunjangaTidakDiterimaKaryawan.getTotalNilaiAkhir();
- }
- PdfPCell monthValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(totalTunjangan.doubleValue()), STANDARD_FONT));
- monthValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- monthValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- monthValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- monthValueCell.setBorderWidthTop(0);
- monthValueCell.setBorderWidthLeft(0);
- monthValueCell.setBorderWidthRight(0);
- table.addCell(monthValueCell);
- totalAllTunjangan += totalTunjangan;
- totalTunjanganList.add(totalTunjangan);
- }
- // total tunjangan semua bulan pada tahun yang sama
- PdfPCell totalTunjanganValueCell = new PdfPCell();
- totalTunjanganValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(totalAllTunjangan.doubleValue()), STANDARD_FONT));
- totalTunjanganValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- totalTunjanganValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- totalTunjanganValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- totalTunjanganValueCell.setBorderWidthTop(0);
- totalTunjanganValueCell.setBorderWidthLeft(0);
- totalTunjanganValueCell.setBorderWidthRight(0);
- table.addCell(totalTunjanganValueCell);
- // Tunjangan diterima karyawan
- PdfPCell tunjanganDiterimaKaryawanLabelCell = new PdfPCell(new Phrase("Diterima karyawan", STANDARD_FONT));
- tunjanganDiterimaKaryawanLabelCell.setColspan(2);
- tunjanganDiterimaKaryawanLabelCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- tunjanganDiterimaKaryawanLabelCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- tunjanganDiterimaKaryawanLabelCell.setBorderWidthTop(0);
- tunjanganDiterimaKaryawanLabelCell.setBorderWidthLeft(0);
- tunjanganDiterimaKaryawanLabelCell.setBorderWidthRight(0);
- tunjanganDiterimaKaryawanLabelCell.setPaddingLeft(CELL_PADDING * 2);
- table.addCell(tunjanganDiterimaKaryawanLabelCell);
- Double totalAllDiterimaKaryawan = 0D;
- for (int i = 0; i < 12; i++) {
- final String yearMonth = (i + 1) < 10 ? (year + "0" + (i + 1)) : year + String.valueOf((i + 1));
- Double totalDiterimaKaryawan = 0D;
- List<PendapatanPotonganKaryawan> tunjanganDiterimaKaryawanList = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().trim().equals(DomainConstants.EMPTY) && pendapatanPotonganKaryawan.getPendapatanPotongan().getThpFlag() == InfluenceType.INCREASE && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .collect(Collectors.toList());
- for (PendapatanPotonganKaryawan tunjanganDiterimaKaryawan: tunjanganDiterimaKaryawanList) {
- totalDiterimaKaryawan += tunjanganDiterimaKaryawan.getTotalNilaiAkhir();
- }
- // rapel lembur
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.RAPEL_LEMBUR) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- totalDiterimaKaryawan += objPendapatanPotonganKaryawan.getTotalNilaiAkhir();
- }
- // tunjangan pajak
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.TUNJANGAN_PAJAK) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- totalDiterimaKaryawan += objPendapatanPotonganKaryawan.getTotalNilaiAkhir();
- }
- totalAllDiterimaKaryawan += totalDiterimaKaryawan;
- PdfPCell monthValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(totalDiterimaKaryawan.doubleValue()), STANDARD_FONT));
- monthValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- monthValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- monthValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- monthValueCell.setBorderWidthTop(0);
- monthValueCell.setBorderWidthLeft(0);
- monthValueCell.setBorderWidthRight(0);
- table.addCell(monthValueCell);
- }
- // total diterima karyawan semua bulan pada tahun yang sama
- PdfPCell totalDiterimaKaryawanValueCell = new PdfPCell();
- totalDiterimaKaryawanValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(totalAllDiterimaKaryawan.doubleValue()), STANDARD_FONT));
- totalDiterimaKaryawanValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- totalDiterimaKaryawanValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- totalDiterimaKaryawanValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- totalDiterimaKaryawanValueCell.setBorderWidthTop(0);
- totalDiterimaKaryawanValueCell.setBorderWidthLeft(0);
- totalDiterimaKaryawanValueCell.setBorderWidthRight(0);
- table.addCell(totalDiterimaKaryawanValueCell);
- // tunjangan menambah thp
- List<PendapatanPotonganKaryawan> allPendapatanPotonganKaryawanDiterimaKaryawanList = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getIncomeDeductionGroup().name().startsWith("PEND") &&
- pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().trim().equals(DomainConstants.EMPTY) &&
- pendapatanPotonganKaryawan.getPendapatanPotongan().getThpFlag().name().equals(InfluenceType.INCREASE.name()))
- .collect(Collectors.toList());
- Collections.sort(allPendapatanPotonganKaryawanDiterimaKaryawanList, new Comparator<PendapatanPotonganKaryawan>() {
- @Override
- public int compare(PendapatanPotonganKaryawan o1, PendapatanPotonganKaryawan o2) {
- return o1.getPendapatanPotongan().getName().compareTo(o2.getPendapatanPotongan().getName());
- }
- });
- List<PendapatanPotonganKaryawan> pendapatanPotonganKaryawanDiterimaKaryawanList = new ArrayList<PendapatanPotonganKaryawan>();
- for (PendapatanPotonganKaryawan allPendapatanPotonganKaryawanDiterimaKaryawan: allPendapatanPotonganKaryawanDiterimaKaryawanList) {
- PendapatanPotonganKaryawan existPendapatanPotongan = pendapatanPotonganKaryawanDiterimaKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getId().equals(allPendapatanPotonganKaryawanDiterimaKaryawan.getPendapatanPotongan().getId()) &&
- pendapatanPotonganKaryawan.getTrxProsesId().equals(allPendapatanPotonganKaryawanDiterimaKaryawan.getTrxProsesId()) &&
- pendapatanPotonganKaryawan.getTrxProsesNumber().equals(allPendapatanPotonganKaryawanDiterimaKaryawan.getTrxProsesNumber()) &&
- TimeUtil.isEqual(pendapatanPotonganKaryawan.getTrxProsesDate(), allPendapatanPotonganKaryawanDiterimaKaryawan.getTrxProsesDate()))
- .findFirst()
- .orElse(null);
- if (existPendapatanPotongan == null) {
- pendapatanPotonganKaryawanDiterimaKaryawanList.add(allPendapatanPotonganKaryawanDiterimaKaryawan);
- }
- }
- for (PendapatanPotonganKaryawan pendapatanPotonganKaryawanDiterimaKaryawan: pendapatanPotonganKaryawanDiterimaKaryawanList) {
- PdfPCell tunjanganMenambahTHPLabelCell = new PdfPCell(new Phrase(pendapatanPotonganKaryawanDiterimaKaryawan.getPendapatanPotongan().getName(), STANDARD_FONT));
- tunjanganMenambahTHPLabelCell.setColspan(2);
- tunjanganMenambahTHPLabelCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- tunjanganMenambahTHPLabelCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- tunjanganMenambahTHPLabelCell.setBorderWidthTop(0);
- tunjanganMenambahTHPLabelCell.setBorderWidthLeft(0);
- tunjanganMenambahTHPLabelCell.setBorderWidthRight(0);
- tunjanganMenambahTHPLabelCell.setPaddingLeft(CELL_PADDING * 4);
- tunjanganMenambahTHPLabelCell.setNoWrap(false);
- table.addCell(tunjanganMenambahTHPLabelCell);
- Double totalTunjanganMenambahTHP = 0D;
- for (int i = 0; i < 12; i++) {
- final String yearMonth = (i + 1) < 10 ? (year + "0" + (i + 1)) : year + String.valueOf((i + 1));
- PendapatanPotonganKaryawan pendapatanPotonganKaryawanMenambahTHP = allPendapatanPotonganKaryawanDiterimaKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getId().equals(pendapatanPotonganKaryawanDiterimaKaryawan.getPendapatanPotongan().getId()) &&
- pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth) &&
- pendapatanPotonganKaryawan.getTrxProsesId().equals(pendapatanPotonganKaryawanDiterimaKaryawan.getTrxProsesId()) &&
- pendapatanPotonganKaryawan.getTrxProsesNumber().equals(pendapatanPotonganKaryawanDiterimaKaryawan.getTrxProsesNumber()) &&
- TimeUtil.isEqual(pendapatanPotonganKaryawan.getTrxProsesDate(), pendapatanPotonganKaryawanDiterimaKaryawan.getTrxProsesDate()))
- .findFirst()
- .orElse(null);
- PdfPCell monthValueCell = new PdfPCell();
- if (pendapatanPotonganKaryawanMenambahTHP != null) {
- monthValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(pendapatanPotonganKaryawanMenambahTHP.getTotalNilaiAkhir().doubleValue()), STANDARD_FONT));
- totalTunjanganMenambahTHP += pendapatanPotonganKaryawanMenambahTHP.getTotalNilaiAkhir().doubleValue();
- } else {
- monthValueCell = new PdfPCell(new Phrase("0", STANDARD_FONT));
- }
- monthValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- monthValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- monthValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- monthValueCell.setBorderWidthTop(0);
- monthValueCell.setBorderWidthLeft(0);
- monthValueCell.setBorderWidthRight(0);
- table.addCell(monthValueCell);
- }
- // total tunjangan menambah thp semua bulan pada tahun yang sama
- PdfPCell totalValueCell = new PdfPCell();
- totalValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(totalTunjanganMenambahTHP.doubleValue()), STANDARD_FONT));
- totalValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- totalValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- totalValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- totalValueCell.setBorderWidthTop(0);
- totalValueCell.setBorderWidthLeft(0);
- totalValueCell.setBorderWidthRight(0);
- table.addCell(totalValueCell);
- }
- // Rapel lembur
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.RAPEL_LEMBUR))
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- pendapatanPotonganLabelCell = new PdfPCell(new Phrase("Rapel lembur", STANDARD_FONT));
- pendapatanPotonganLabelCell.setColspan(2);
- pendapatanPotonganLabelCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- pendapatanPotonganLabelCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- pendapatanPotonganLabelCell.setBorderWidthTop(0);
- pendapatanPotonganLabelCell.setBorderWidthLeft(0);
- pendapatanPotonganLabelCell.setBorderWidthRight(0);
- pendapatanPotonganLabelCell.setPaddingLeft(CELL_PADDING * 4);
- pendapatanPotonganLabelCell.setNoWrap(false);
- table.addCell(pendapatanPotonganLabelCell);
- Double totalRapelLembur = 0D;
- for (int i = 0; i < 12; i++) {
- final String yearMonth = (i + 1) < 10 ? (year + "0" + (i + 1)) : year + String.valueOf((i + 1));
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.RAPEL_LEMBUR) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth) && pendapatanPotonganKaryawan.getTotalNilai() != 0)
- .findFirst()
- .orElse(null);
- PdfPCell monthValueCell = new PdfPCell();
- if (objPendapatanPotonganKaryawan != null) {
- monthValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue()), STANDARD_FONT));
- totalRapelLembur += objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue();
- } else {
- monthValueCell = new PdfPCell(new Phrase("0", STANDARD_FONT));
- }
- monthValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- monthValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- monthValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- monthValueCell.setBorderWidthTop(0);
- monthValueCell.setBorderWidthLeft(0);
- monthValueCell.setBorderWidthRight(0);
- table.addCell(monthValueCell);
- }
- // total rapel lembur semua bulan pada tahun yang sama
- PdfPCell totalValueCell = new PdfPCell();
- totalValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(totalRapelLembur.doubleValue()), STANDARD_FONT));
- totalValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- totalValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- totalValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- totalValueCell.setBorderWidthTop(0);
- totalValueCell.setBorderWidthLeft(0);
- totalValueCell.setBorderWidthRight(0);
- table.addCell(totalValueCell);
- }
- // Tunjangan Pajak
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.TUNJANGAN_PAJAK) && pendapatanPotonganKaryawan.getTotalNilai() != 0)
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- pendapatanPotonganLabelCell = new PdfPCell(new Phrase("Tunjangan pajak", STANDARD_FONT));
- pendapatanPotonganLabelCell.setColspan(2);
- pendapatanPotonganLabelCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- pendapatanPotonganLabelCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- pendapatanPotonganLabelCell.setBorderWidthTop(0);
- pendapatanPotonganLabelCell.setBorderWidthLeft(0);
- pendapatanPotonganLabelCell.setBorderWidthRight(0);
- pendapatanPotonganLabelCell.setPaddingLeft(CELL_PADDING * 4);
- pendapatanPotonganLabelCell.setNoWrap(false);
- table.addCell(pendapatanPotonganLabelCell);
- Double totalTunjanganPajak = 0D;
- for (int i = 0; i < 12; i++) {
- final String yearMonth = (i + 1) < 10 ? (year + "0" + (i + 1)) : year + String.valueOf((i + 1));
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.TUNJANGAN_PAJAK) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- PdfPCell monthValueCell = new PdfPCell();
- if (objPendapatanPotonganKaryawan != null) {
- monthValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue()), STANDARD_FONT));
- totalTunjanganPajak += objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue();
- } else {
- monthValueCell = new PdfPCell(new Phrase("0", STANDARD_FONT));
- }
- monthValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- monthValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- monthValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- monthValueCell.setBorderWidthTop(0);
- monthValueCell.setBorderWidthLeft(0);
- monthValueCell.setBorderWidthRight(0);
- table.addCell(monthValueCell);
- }
- // total tunjangan pajak semua bulan pada tahun yang sama
- PdfPCell totalValueCell = new PdfPCell();
- totalValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(totalTunjanganPajak.doubleValue()), STANDARD_FONT));
- totalValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- totalValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- totalValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- totalValueCell.setBorderWidthTop(0);
- totalValueCell.setBorderWidthLeft(0);
- totalValueCell.setBorderWidthRight(0);
- table.addCell(totalValueCell);
- }
- // Tunjangan tidak diterima karyawan
- PdfPCell tunjanganTidakDiterimaKaryawanLabelCell = new PdfPCell(new Phrase("Tidak diterima karyawan", STANDARD_FONT));
- tunjanganTidakDiterimaKaryawanLabelCell.setColspan(2);
- tunjanganTidakDiterimaKaryawanLabelCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- tunjanganTidakDiterimaKaryawanLabelCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- tunjanganTidakDiterimaKaryawanLabelCell.setBorderWidthTop(0);
- tunjanganTidakDiterimaKaryawanLabelCell.setBorderWidthLeft(0);
- tunjanganTidakDiterimaKaryawanLabelCell.setBorderWidthRight(0);
- tunjanganTidakDiterimaKaryawanLabelCell.setPaddingLeft(CELL_PADDING * 2);
- table.addCell(tunjanganTidakDiterimaKaryawanLabelCell);
- Double totalAllTidakDiterimaKaryawan = 0D;
- for (int i = 0; i < 12; i++) {
- final String yearMonth = (i + 1) < 10 ? (year + "0" + (i + 1)) : year + String.valueOf((i + 1));
- Double totalTidakDiterimaKaryawan = 0D;
- // BPJS Perusahaan - JHT perusahaan
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.JHT_PERUSAHAAN) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- totalTidakDiterimaKaryawan += objPendapatanPotonganKaryawan.getTotalNilaiAkhir();
- }
- // BPJS Perusahaan - JKK perusahaan
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.JKK_PERUSAHAAN) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- totalTidakDiterimaKaryawan += objPendapatanPotonganKaryawan.getTotalNilaiAkhir();
- }
- // BPJS Perusahaan - JKM perusahaan
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.JKM_PERUSAHAAN) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- totalTidakDiterimaKaryawan += objPendapatanPotonganKaryawan.getTotalNilaiAkhir();
- }
- // BPJS Perusahaan - JKN perusahaan
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.JKN_PERUSAHAAN) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- totalTidakDiterimaKaryawan += objPendapatanPotonganKaryawan.getTotalNilaiAkhir();
- }
- // BPJS Perusahaan - JP perusahaan
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.JP_PERUSAHAAN) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- totalTidakDiterimaKaryawan += objPendapatanPotonganKaryawan.getTotalNilaiAkhir();
- }
- // BPJS Perusahaan - Rapel BPJS
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.RAPEL_BPJS) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- totalTidakDiterimaKaryawan += objPendapatanPotonganKaryawan.getTotalNilaiAkhir();
- }
- // pendapatan potongan yang memiliki flag pengaruh thp = 0
- List<PendapatanPotonganKaryawan> tunjanganTidakDiterimaKaryawanList = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().trim().equals(DomainConstants.EMPTY) && pendapatanPotonganKaryawan.getPendapatanPotongan().getThpFlag() == InfluenceType.NOT_INFLUENCED && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .collect(Collectors.toList());
- for (PendapatanPotonganKaryawan tunjanganDiterimaKaryawan: tunjanganTidakDiterimaKaryawanList) {
- totalTidakDiterimaKaryawan += tunjanganDiterimaKaryawan.getTotalNilaiAkhir();
- }
- totalAllTidakDiterimaKaryawan += totalTidakDiterimaKaryawan;
- PdfPCell monthValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(totalTidakDiterimaKaryawan.doubleValue()), STANDARD_FONT));
- monthValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- monthValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- monthValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- monthValueCell.setBorderWidthTop(0);
- monthValueCell.setBorderWidthLeft(0);
- monthValueCell.setBorderWidthRight(0);
- table.addCell(monthValueCell);
- totalTidakDiterimaKaryawanList.add(totalTidakDiterimaKaryawan);
- }
- // total tidak diterima karyawan semua bulan pada tahun yang sama
- PdfPCell totalTidakDiterimaKaryawanValueCell = new PdfPCell();
- totalTidakDiterimaKaryawanValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(totalAllTidakDiterimaKaryawan.doubleValue()), STANDARD_FONT));
- totalTidakDiterimaKaryawanValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- totalTidakDiterimaKaryawanValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- totalTidakDiterimaKaryawanValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- totalTidakDiterimaKaryawanValueCell.setBorderWidthTop(0);
- totalTidakDiterimaKaryawanValueCell.setBorderWidthLeft(0);
- totalTidakDiterimaKaryawanValueCell.setBorderWidthRight(0);
- table.addCell(totalTidakDiterimaKaryawanValueCell);
- // BPJS Perusahaan - JHT perusahaan
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.JHT_PERUSAHAAN))
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- pendapatanPotonganLabelCell = new PdfPCell(new Phrase("Premi JHT perusahaan", STANDARD_FONT));
- pendapatanPotonganLabelCell.setColspan(2);
- pendapatanPotonganLabelCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- pendapatanPotonganLabelCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- pendapatanPotonganLabelCell.setBorderWidthTop(0);
- pendapatanPotonganLabelCell.setBorderWidthLeft(0);
- pendapatanPotonganLabelCell.setBorderWidthRight(0);
- pendapatanPotonganLabelCell.setPaddingLeft(CELL_PADDING * 4);
- pendapatanPotonganLabelCell.setNoWrap(false);
- table.addCell(pendapatanPotonganLabelCell);
- Double totalJHTPerusahaan = 0D;
- for (int i = 0; i < 12; i++) {
- final String yearMonth = (i + 1) < 10 ? (year + "0" + (i + 1)) : year + String.valueOf((i + 1));
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.JHT_PERUSAHAAN) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth) && pendapatanPotonganKaryawan.getTotalNilai() != 0)
- .findFirst()
- .orElse(null);
- PdfPCell monthValueCell = new PdfPCell();
- if (objPendapatanPotonganKaryawan != null) {
- monthValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue()), STANDARD_FONT));
- totalJHTPerusahaan += objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue();
- } else {
- monthValueCell = new PdfPCell(new Phrase("0", STANDARD_FONT));
- }
- monthValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- monthValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- monthValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- monthValueCell.setBorderWidthTop(0);
- monthValueCell.setBorderWidthLeft(0);
- monthValueCell.setBorderWidthRight(0);
- table.addCell(monthValueCell);
- }
- // total JHT Perusahaan semua bulan pada tahun yang sama
- PdfPCell totalJHTPerusahaanValueCell = new PdfPCell();
- totalJHTPerusahaanValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(totalJHTPerusahaan.doubleValue()), STANDARD_FONT));
- totalJHTPerusahaanValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- totalJHTPerusahaanValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- totalJHTPerusahaanValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- totalJHTPerusahaanValueCell.setBorderWidthTop(0);
- totalJHTPerusahaanValueCell.setBorderWidthLeft(0);
- totalJHTPerusahaanValueCell.setBorderWidthRight(0);
- table.addCell(totalJHTPerusahaanValueCell);
- }
- // BPJS Perusahaan - JKK perusahaan
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.JKK_PERUSAHAAN) && pendapatanPotonganKaryawan.getTotalNilai() != 0)
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- pendapatanPotonganLabelCell = new PdfPCell(new Phrase("Premi JKK perusahaan", STANDARD_FONT));
- pendapatanPotonganLabelCell.setColspan(2);
- pendapatanPotonganLabelCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- pendapatanPotonganLabelCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- pendapatanPotonganLabelCell.setBorderWidthTop(0);
- pendapatanPotonganLabelCell.setBorderWidthLeft(0);
- pendapatanPotonganLabelCell.setBorderWidthRight(0);
- pendapatanPotonganLabelCell.setPaddingLeft(CELL_PADDING * 4);
- pendapatanPotonganLabelCell.setNoWrap(false);
- table.addCell(pendapatanPotonganLabelCell);
- Double totalJKKPerusahaan = 0D;
- for (int i = 0; i < 12; i++) {
- final String yearMonth = (i + 1) < 10 ? (year + "0" + (i + 1)) : year + String.valueOf((i + 1));
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.JKK_PERUSAHAAN) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- PdfPCell monthValueCell = new PdfPCell();
- if (objPendapatanPotonganKaryawan != null) {
- monthValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue()), STANDARD_FONT));
- totalJKKPerusahaan += objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue();
- } else {
- monthValueCell = new PdfPCell(new Phrase("0", STANDARD_FONT));
- }
- monthValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- monthValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- monthValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- monthValueCell.setBorderWidthTop(0);
- monthValueCell.setBorderWidthLeft(0);
- monthValueCell.setBorderWidthRight(0);
- table.addCell(monthValueCell);
- }
- // total JKK Perusahaan semua bulan pada tahun yang sama
- PdfPCell totalJKKPerusahaanValueCell = new PdfPCell();
- totalJKKPerusahaanValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(totalJKKPerusahaan.doubleValue()), STANDARD_FONT));
- totalJKKPerusahaanValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- totalJKKPerusahaanValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- totalJKKPerusahaanValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- totalJKKPerusahaanValueCell.setBorderWidthTop(0);
- totalJKKPerusahaanValueCell.setBorderWidthLeft(0);
- totalJKKPerusahaanValueCell.setBorderWidthRight(0);
- table.addCell(totalJKKPerusahaanValueCell);
- }
- // BPJS Perusahaan - JKM perusahaan
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.JKM_PERUSAHAAN) && pendapatanPotonganKaryawan.getTotalNilai() != 0)
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- pendapatanPotonganLabelCell = new PdfPCell(new Phrase("Premi JKM perusahaan", STANDARD_FONT));
- pendapatanPotonganLabelCell.setColspan(2);
- pendapatanPotonganLabelCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- pendapatanPotonganLabelCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- pendapatanPotonganLabelCell.setBorderWidthTop(0);
- pendapatanPotonganLabelCell.setBorderWidthLeft(0);
- pendapatanPotonganLabelCell.setBorderWidthRight(0);
- pendapatanPotonganLabelCell.setPaddingLeft(CELL_PADDING * 4);
- pendapatanPotonganLabelCell.setNoWrap(false);
- table.addCell(pendapatanPotonganLabelCell);
- Double totalJKMPerusahaan = 0D;
- for (int i = 0; i < 12; i++) {
- final String yearMonth = (i + 1) < 10 ? (year + "0" + (i + 1)) : year + String.valueOf((i + 1));
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.JKM_PERUSAHAAN) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- PdfPCell monthValueCell = new PdfPCell();
- if (objPendapatanPotonganKaryawan != null) {
- monthValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue()), STANDARD_FONT));
- totalJKMPerusahaan += objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue();
- } else {
- monthValueCell = new PdfPCell(new Phrase("0", STANDARD_FONT));
- }
- monthValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- monthValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- monthValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- monthValueCell.setBorderWidthTop(0);
- monthValueCell.setBorderWidthLeft(0);
- monthValueCell.setBorderWidthRight(0);
- table.addCell(monthValueCell);
- }
- // total JKM Perusahaan semua bulan pada tahun yang sama
- PdfPCell totalJKMPerusahaanValueCell = new PdfPCell();
- totalJKMPerusahaanValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(totalJKMPerusahaan.doubleValue()), STANDARD_FONT));
- totalJKMPerusahaanValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- totalJKMPerusahaanValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- totalJKMPerusahaanValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- totalJKMPerusahaanValueCell.setBorderWidthTop(0);
- totalJKMPerusahaanValueCell.setBorderWidthLeft(0);
- totalJKMPerusahaanValueCell.setBorderWidthRight(0);
- table.addCell(totalJKMPerusahaanValueCell);
- }
- // BPJS Perusahaan - JKN perusahaan
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.JKN_PERUSAHAAN) && pendapatanPotonganKaryawan.getTotalNilai() != 0)
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- pendapatanPotonganLabelCell = new PdfPCell(new Phrase("Premi JKN perusahaan", STANDARD_FONT));
- pendapatanPotonganLabelCell.setColspan(2);
- pendapatanPotonganLabelCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- pendapatanPotonganLabelCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- pendapatanPotonganLabelCell.setBorderWidthTop(0);
- pendapatanPotonganLabelCell.setBorderWidthLeft(0);
- pendapatanPotonganLabelCell.setBorderWidthRight(0);
- pendapatanPotonganLabelCell.setPaddingLeft(CELL_PADDING * 4);
- pendapatanPotonganLabelCell.setNoWrap(false);
- table.addCell(pendapatanPotonganLabelCell);
- Double totalJKNPerusahaan = 0D;
- for (int i = 0; i < 12; i++) {
- final String yearMonth = (i + 1) < 10 ? (year + "0" + (i + 1)) : year + String.valueOf((i + 1));
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.JKN_PERUSAHAAN) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- PdfPCell monthValueCell = new PdfPCell();
- if (objPendapatanPotonganKaryawan != null) {
- monthValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue()), STANDARD_FONT));
- totalJKNPerusahaan += objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue();
- } else {
- monthValueCell = new PdfPCell(new Phrase("0", STANDARD_FONT));
- }
- monthValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- monthValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- monthValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- monthValueCell.setBorderWidthTop(0);
- monthValueCell.setBorderWidthLeft(0);
- monthValueCell.setBorderWidthRight(0);
- table.addCell(monthValueCell);
- }
- // total JKN Perusahaan semua bulan pada tahun yang sama
- PdfPCell totalJKNPerusahaanValueCell = new PdfPCell();
- totalJKNPerusahaanValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(totalJKNPerusahaan.doubleValue()), STANDARD_FONT));
- totalJKNPerusahaanValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- totalJKNPerusahaanValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- totalJKNPerusahaanValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- totalJKNPerusahaanValueCell.setBorderWidthTop(0);
- totalJKNPerusahaanValueCell.setBorderWidthLeft(0);
- totalJKNPerusahaanValueCell.setBorderWidthRight(0);
- table.addCell(totalJKNPerusahaanValueCell);
- }
- // BPJS Perusahaan - JP perusahaan
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.JP_PERUSAHAAN) && pendapatanPotonganKaryawan.getTotalNilai() != 0)
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- pendapatanPotonganLabelCell = new PdfPCell(new Phrase("Premi JP perusahaan", STANDARD_FONT));
- pendapatanPotonganLabelCell.setColspan(2);
- pendapatanPotonganLabelCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- pendapatanPotonganLabelCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- pendapatanPotonganLabelCell.setBorderWidthTop(0);
- pendapatanPotonganLabelCell.setBorderWidthLeft(0);
- pendapatanPotonganLabelCell.setBorderWidthRight(0);
- pendapatanPotonganLabelCell.setPaddingLeft(CELL_PADDING * 4);
- pendapatanPotonganLabelCell.setNoWrap(false);
- table.addCell(pendapatanPotonganLabelCell);
- Double totalJPPerusahaan = 0D;
- for (int i = 0; i < 12; i++) {
- final String yearMonth = (i + 1) < 10 ? (year + "0" + (i + 1)) : year + String.valueOf((i + 1));
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.JP_PERUSAHAAN) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- PdfPCell monthValueCell = new PdfPCell();
- if (objPendapatanPotonganKaryawan != null) {
- monthValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue()), STANDARD_FONT));
- totalJPPerusahaan += objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue();
- } else {
- monthValueCell = new PdfPCell(new Phrase("0", STANDARD_FONT));
- }
- monthValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- monthValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- monthValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- monthValueCell.setBorderWidthTop(0);
- monthValueCell.setBorderWidthLeft(0);
- monthValueCell.setBorderWidthRight(0);
- table.addCell(monthValueCell);
- }
- // total JP Perusahaan semua bulan pada tahun yang sama
- PdfPCell totalJPPerusahaanValueCell = new PdfPCell();
- totalJPPerusahaanValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(totalJPPerusahaan.doubleValue()), STANDARD_FONT));
- totalJPPerusahaanValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- totalJPPerusahaanValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- totalJPPerusahaanValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- totalJPPerusahaanValueCell.setBorderWidthTop(0);
- totalJPPerusahaanValueCell.setBorderWidthLeft(0);
- totalJPPerusahaanValueCell.setBorderWidthRight(0);
- table.addCell(totalJPPerusahaanValueCell);
- }
- // BPJS Perusahaan - Rapel BPJS
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.RAPEL_BPJS) && pendapatanPotonganKaryawan.getTotalNilai() != 0)
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- pendapatanPotonganLabelCell = new PdfPCell(new Phrase("Rapel BPJS", STANDARD_FONT));
- pendapatanPotonganLabelCell.setColspan(2);
- pendapatanPotonganLabelCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- pendapatanPotonganLabelCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- pendapatanPotonganLabelCell.setBorderWidthTop(0);
- pendapatanPotonganLabelCell.setBorderWidthLeft(0);
- pendapatanPotonganLabelCell.setBorderWidthRight(0);
- pendapatanPotonganLabelCell.setPaddingLeft(CELL_PADDING * 4);
- pendapatanPotonganLabelCell.setNoWrap(false);
- table.addCell(pendapatanPotonganLabelCell);
- Double totalRapelBPJS = 0D;
- for (int i = 0; i < 12; i++) {
- final String yearMonth = (i + 1) < 10 ? (year + "0" + (i + 1)) : year + String.valueOf((i + 1));
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.RAPEL_BPJS) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- PdfPCell monthValueCell = new PdfPCell();
- if (objPendapatanPotonganKaryawan != null) {
- monthValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue()), STANDARD_FONT));
- totalRapelBPJS += objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue();
- } else {
- monthValueCell = new PdfPCell(new Phrase("0", STANDARD_FONT));
- }
- monthValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- monthValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- monthValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- monthValueCell.setBorderWidthTop(0);
- monthValueCell.setBorderWidthLeft(0);
- monthValueCell.setBorderWidthRight(0);
- table.addCell(monthValueCell);
- }
- // total rapel BPJS semua bulan pada tahun yang sama
- PdfPCell totalRapelBPJSValueCell = new PdfPCell();
- totalRapelBPJSValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(totalRapelBPJS.doubleValue()), STANDARD_FONT));
- totalRapelBPJSValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- totalRapelBPJSValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- totalRapelBPJSValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- totalRapelBPJSValueCell.setBorderWidthTop(0);
- totalRapelBPJSValueCell.setBorderWidthLeft(0);
- totalRapelBPJSValueCell.setBorderWidthRight(0);
- table.addCell(totalRapelBPJSValueCell);
- }
- // tunjangan tidak mempengaruhi thp
- List<PendapatanPotonganKaryawan> allTunjanganTidakMempengaruhiTHPList = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getIncomeDeductionGroup().name().startsWith("PEND") &&
- pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().trim().equals(DomainConstants.EMPTY) &&
- pendapatanPotonganKaryawan.getPendapatanPotongan().getThpFlag().name().equals(InfluenceType.NOT_INFLUENCED.name()))
- .collect(Collectors.toList());
- Collections.sort(allTunjanganTidakMempengaruhiTHPList, new Comparator<PendapatanPotonganKaryawan>() {
- @Override
- public int compare(PendapatanPotonganKaryawan o1, PendapatanPotonganKaryawan o2) {
- return o1.getPendapatanPotongan().getName().compareTo(o2.getPendapatanPotongan().getName());
- }
- });
- List<PendapatanPotonganKaryawan> tunjanganTidakMempengaruhiTHPList = new ArrayList<PendapatanPotonganKaryawan>();
- for (PendapatanPotonganKaryawan allTunjanganTidakMempengaruhiTHP: allTunjanganTidakMempengaruhiTHPList) {
- PendapatanPotonganKaryawan existPendapatanPotongan = tunjanganTidakMempengaruhiTHPList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getId().equals(allTunjanganTidakMempengaruhiTHP.getPendapatanPotongan().getId()) &&
- pendapatanPotonganKaryawan.getTrxProsesId().equals(allTunjanganTidakMempengaruhiTHP.getTrxProsesId()) &&
- pendapatanPotonganKaryawan.getTrxProsesNumber().equals(allTunjanganTidakMempengaruhiTHP.getTrxProsesNumber()) &&
- TimeUtil.isEqual(pendapatanPotonganKaryawan.getTrxProsesDate(), allTunjanganTidakMempengaruhiTHP.getTrxProsesDate()))
- .findFirst()
- .orElse(null);
- if (existPendapatanPotongan == null) {
- tunjanganTidakMempengaruhiTHPList.add(allTunjanganTidakMempengaruhiTHP);
- }
- }
- for (PendapatanPotonganKaryawan tunjanganTidakMempengaruhiTHP: tunjanganTidakMempengaruhiTHPList) {
- PdfPCell tunjanganMenambahTHPLabelCell = new PdfPCell(new Phrase(tunjanganTidakMempengaruhiTHP.getPendapatanPotongan().getName(), STANDARD_FONT));
- tunjanganMenambahTHPLabelCell.setColspan(2);
- tunjanganMenambahTHPLabelCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- tunjanganMenambahTHPLabelCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- tunjanganMenambahTHPLabelCell.setBorderWidthTop(0);
- tunjanganMenambahTHPLabelCell.setBorderWidthLeft(0);
- tunjanganMenambahTHPLabelCell.setBorderWidthRight(0);
- tunjanganMenambahTHPLabelCell.setPaddingLeft(CELL_PADDING * 4);
- tunjanganMenambahTHPLabelCell.setNoWrap(false);
- table.addCell(tunjanganMenambahTHPLabelCell);
- Double totalTunjanganTidakMempengaruhiTHP = 0D;
- for (int i = 0; i < 12; i++) {
- final String yearMonth = (i + 1) < 10 ? (year + "0" + (i + 1)) : year + String.valueOf((i + 1));
- PendapatanPotonganKaryawan pendapatanPotonganKaryawanTidakMempengaruhiTHP = allTunjanganTidakMempengaruhiTHPList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getId().equals(tunjanganTidakMempengaruhiTHP.getPendapatanPotongan().getId()) &&
- pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth) &&
- pendapatanPotonganKaryawan.getTrxProsesId().equals(tunjanganTidakMempengaruhiTHP.getTrxProsesId()) &&
- pendapatanPotonganKaryawan.getTrxProsesNumber().equals(tunjanganTidakMempengaruhiTHP.getTrxProsesNumber()) &&
- TimeUtil.isEqual(pendapatanPotonganKaryawan.getTrxProsesDate(), tunjanganTidakMempengaruhiTHP.getTrxProsesDate()))
- .findFirst()
- .orElse(null);
- PdfPCell monthValueCell = new PdfPCell();
- if (pendapatanPotonganKaryawanTidakMempengaruhiTHP != null) {
- monthValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(pendapatanPotonganKaryawanTidakMempengaruhiTHP.getTotalNilaiAkhir().doubleValue()), STANDARD_FONT));
- totalTunjanganTidakMempengaruhiTHP += pendapatanPotonganKaryawanTidakMempengaruhiTHP.getTotalNilaiAkhir().doubleValue();
- } else {
- monthValueCell = new PdfPCell(new Phrase("0", STANDARD_FONT));
- }
- monthValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- monthValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- monthValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- monthValueCell.setBorderWidthTop(0);
- monthValueCell.setBorderWidthLeft(0);
- monthValueCell.setBorderWidthRight(0);
- table.addCell(monthValueCell);
- }
- // total tunjangan tidak mempengaruhi thp semua bulan pada tahun yang sama
- PdfPCell totalTunjanganTidakMempengaruhiTHPValueCell = new PdfPCell();
- totalTunjanganTidakMempengaruhiTHPValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(totalTunjanganTidakMempengaruhiTHP.doubleValue()), STANDARD_FONT));
- totalTunjanganTidakMempengaruhiTHPValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- totalTunjanganTidakMempengaruhiTHPValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- totalTunjanganTidakMempengaruhiTHPValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- totalTunjanganTidakMempengaruhiTHPValueCell.setBorderWidthTop(0);
- totalTunjanganTidakMempengaruhiTHPValueCell.setBorderWidthLeft(0);
- totalTunjanganTidakMempengaruhiTHPValueCell.setBorderWidthRight(0);
- table.addCell(totalTunjanganTidakMempengaruhiTHPValueCell);
- }
- // // ganti disini
- // Map<String, String> searchParameter = new HashMap<String, String>();
- // searchParameter.put("thpFlag", "0");
- // searchParameter.put("sort", "name-asc");
- // List<MstIncomeDeduction> tunjanganTidakMempengaruhiTHPList = mstIncomeDeductionService.search(SearchParameter.generate(searchParameter, MstIncomeDeductionPojo.getFieldMappings()))
- // .getResult()
- // .stream()
- // .filter(incomeDeduction -> incomeDeduction.getIncomeDeductionGroup().name().startsWith("PEND") && incomeDeduction.getCode().trim().equals(DomainConstants.EMPTY))
- // .collect(Collectors.toList());
- //
- // for (MstIncomeDeduction tunjanganTidakMempengaruhiTHP: tunjanganTidakMempengaruhiTHPList) {
- // PendapatanPotonganKaryawan pendapatanPotonganKaryawanTidakMempengaruhiTHP = pendapatanPotonganKaryawanList.stream()
- // .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getId().equals(tunjanganTidakMempengaruhiTHP.getId()))
- // .findFirst()
- // .orElse(null);
- //
- // if (pendapatanPotonganKaryawanTidakMempengaruhiTHP != null) {
- // PdfPCell tunjanganMenambahTHPLabelCell = new PdfPCell(new Phrase(tunjanganTidakMempengaruhiTHP.getName(), STANDARD_FONT));
- // tunjanganMenambahTHPLabelCell.setColspan(2);
- // tunjanganMenambahTHPLabelCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- // tunjanganMenambahTHPLabelCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- // tunjanganMenambahTHPLabelCell.setBorderWidthTop(0);
- // tunjanganMenambahTHPLabelCell.setBorderWidthLeft(0);
- // tunjanganMenambahTHPLabelCell.setBorderWidthRight(0);
- // tunjanganMenambahTHPLabelCell.setPaddingLeft(CELL_PADDING * 4);
- // tunjanganMenambahTHPLabelCell.setNoWrap(false);
- // table.addCell(tunjanganMenambahTHPLabelCell);
- //
- // Double totalTunjanganTidakMempengaruhiTHP = 0D;
- // for (int i = 0; i < 12; i++) {
- // final String yearMonth = (i + 1) < 10 ? (year + "0" + (i + 1)) : year + String.valueOf((i + 1));
- // pendapatanPotonganKaryawanTidakMempengaruhiTHP = pendapatanPotonganKaryawanList.stream()
- // .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getId().equals(tunjanganTidakMempengaruhiTHP.getId()) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- // .findFirst()
- // .orElse(null);
- //
- // PdfPCell monthValueCell = new PdfPCell();
- // if (pendapatanPotonganKaryawanTidakMempengaruhiTHP != null) {
- // monthValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(pendapatanPotonganKaryawanTidakMempengaruhiTHP.getTotalNilaiAkhir().doubleValue()), STANDARD_FONT));
- // totalTunjanganTidakMempengaruhiTHP += pendapatanPotonganKaryawanTidakMempengaruhiTHP.getTotalNilaiAkhir().doubleValue();
- // } else {
- // monthValueCell = new PdfPCell(new Phrase("0", STANDARD_FONT));
- // }
- // monthValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- // monthValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- // monthValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- // monthValueCell.setBorderWidthTop(0);
- // monthValueCell.setBorderWidthLeft(0);
- // monthValueCell.setBorderWidthRight(0);
- // table.addCell(monthValueCell);
- // }
- //
- // // total tunjangan tidak mempengaruhi thp semua bulan pada tahun yang sama
- // PdfPCell totalTunjanganTidakMempengaruhiTHPValueCell = new PdfPCell();
- // totalTunjanganTidakMempengaruhiTHPValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(totalTunjanganTidakMempengaruhiTHP.doubleValue()), STANDARD_FONT));
- // totalTunjanganTidakMempengaruhiTHPValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- // totalTunjanganTidakMempengaruhiTHPValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- // totalTunjanganTidakMempengaruhiTHPValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- // totalTunjanganTidakMempengaruhiTHPValueCell.setBorderWidthTop(0);
- // totalTunjanganTidakMempengaruhiTHPValueCell.setBorderWidthLeft(0);
- // totalTunjanganTidakMempengaruhiTHPValueCell.setBorderWidthRight(0);
- // table.addCell(totalTunjanganTidakMempengaruhiTHPValueCell);
- // }
- // }
- // Potongan
- PdfPCell potonganLabelCell = new PdfPCell(new Phrase("Potongan", STANDARD_FONT_BOLD));
- potonganLabelCell.setColspan(2);
- potonganLabelCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- potonganLabelCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- potonganLabelCell.setBorderWidthTop(0);
- potonganLabelCell.setBorderWidthLeft(0);
- potonganLabelCell.setBorderWidthRight(0);
- table.addCell(potonganLabelCell);
- Double totalAllPotongan = 0D;
- for (int i = 0; i < 12; i++) {
- final String yearMonth = (i + 1) < 10 ? (year + "0" + (i + 1)) : year + String.valueOf((i + 1));
- Double totalPotongan = 0D;
- // JHT Karyawan
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.JHT_KARYAWAN) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- totalPotongan += objPendapatanPotonganKaryawan.getTotalNilaiAkhir();
- }
- // JKN Karyawan
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.JKN_KARYAWAN) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- totalPotongan += objPendapatanPotonganKaryawan.getTotalNilaiAkhir();
- }
- // JP Karyawan
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.JP_KARYAWAN) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- totalPotongan += objPendapatanPotonganKaryawan.getTotalNilaiAkhir();
- }
- // Status keterlambatan / tidak hadir - Potongan Gaji
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.POTONGAN_GAJI) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- totalPotongan += objPendapatanPotonganKaryawan.getTotalNilaiAkhir();
- }
- // Status keterlambatan / tidak hadir - Potongan Absensi
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.POTONGAN_ABSENSI) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- totalPotongan += objPendapatanPotonganKaryawan.getTotalNilaiAkhir();
- }
- // Status keterlambatan / tidak hadir - Potongan Tunjangan Harian
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.POTONGAN_TUNJANGAN_HARIAN) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- totalPotongan += objPendapatanPotonganKaryawan.getTotalNilaiAkhir();
- }
- // Status keterlambatan / tidak hadir - Potongan Tunjangan Tetap
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.POTONGAN_TUNJANGAN_TETAP) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- totalPotongan += objPendapatanPotonganKaryawan.getTotalNilaiAkhir();
- }
- // Potongan yang memiliki flag pengaruh THP = -1
- List<PendapatanPotonganKaryawan> potonganYangDikenakanKaryawanList = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().trim().equals(DomainConstants.EMPTY) && pendapatanPotonganKaryawan.getPendapatanPotongan().getThpFlag() == InfluenceType.DECREASE && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .collect(Collectors.toList());
- // pendapatan yang memiliki flag pengaruh thp = 1
- for (PendapatanPotonganKaryawan potonganYangDikenakanKaryawan: potonganYangDikenakanKaryawanList) {
- totalPotongan += potonganYangDikenakanKaryawan.getTotalNilaiAkhir();
- }
- totalAllPotongan += totalPotongan.doubleValue();
- PdfPCell monthValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(totalPotongan.doubleValue()), STANDARD_FONT));
- monthValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- monthValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- monthValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- monthValueCell.setBorderWidthTop(0);
- monthValueCell.setBorderWidthLeft(0);
- monthValueCell.setBorderWidthRight(0);
- table.addCell(monthValueCell);
- totalPotonganList.add(totalPotongan);
- }
- // total potongan semua bulan pada tahun yang sama
- PdfPCell totalPotonganValueCell = new PdfPCell();
- totalPotonganValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(totalAllPotongan.doubleValue()), STANDARD_FONT));
- totalPotonganValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- totalPotonganValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- totalPotonganValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- totalPotonganValueCell.setBorderWidthTop(0);
- totalPotonganValueCell.setBorderWidthLeft(0);
- totalPotonganValueCell.setBorderWidthRight(0);
- table.addCell(totalPotonganValueCell);
- // Total BPJS karyawan
- PdfPCell potonganBPJSKaryawanLabelCell = new PdfPCell(new Phrase("BPJS karyawan", STANDARD_FONT));
- potonganBPJSKaryawanLabelCell.setColspan(2);
- potonganBPJSKaryawanLabelCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- potonganBPJSKaryawanLabelCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- potonganBPJSKaryawanLabelCell.setBorderWidthTop(0);
- potonganBPJSKaryawanLabelCell.setBorderWidthLeft(0);
- potonganBPJSKaryawanLabelCell.setBorderWidthRight(0);
- potonganBPJSKaryawanLabelCell.setPaddingLeft(CELL_PADDING * 2);
- table.addCell(potonganBPJSKaryawanLabelCell);
- Double totalAllPotonganBPJSKaryawan = 0D;
- for (int i = 0; i < 12; i++) {
- final String yearMonth = (i + 1) < 10 ? (year + "0" + (i + 1)) : year + String.valueOf((i + 1));
- Double totalPotonganBPJSKaryawan = 0D;
- // JHT Karyawan
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.JHT_KARYAWAN) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- totalPotonganBPJSKaryawan += objPendapatanPotonganKaryawan.getTotalNilaiAkhir();
- }
- // JKN Karyawan
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.JKN_KARYAWAN) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- totalPotonganBPJSKaryawan += objPendapatanPotonganKaryawan.getTotalNilaiAkhir();
- }
- // JP Karyawan
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.JP_KARYAWAN) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- totalPotonganBPJSKaryawan += objPendapatanPotonganKaryawan.getTotalNilaiAkhir();
- }
- totalAllPotonganBPJSKaryawan += totalPotonganBPJSKaryawan;
- PdfPCell monthValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(totalPotonganBPJSKaryawan.doubleValue()), STANDARD_FONT));
- monthValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- monthValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- monthValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- monthValueCell.setBorderWidthTop(0);
- monthValueCell.setBorderWidthLeft(0);
- monthValueCell.setBorderWidthRight(0);
- table.addCell(monthValueCell);
- }
- // total potongan BPJS karyawan semua bulan pada tahun yang sama
- PdfPCell totalPotonganBPJSKaryawanValueCell = new PdfPCell();
- totalPotonganBPJSKaryawanValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(totalAllPotongan.doubleValue()), STANDARD_FONT));
- totalPotonganBPJSKaryawanValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- totalPotonganBPJSKaryawanValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- totalPotonganBPJSKaryawanValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- totalPotonganBPJSKaryawanValueCell.setBorderWidthTop(0);
- totalPotonganBPJSKaryawanValueCell.setBorderWidthLeft(0);
- totalPotonganBPJSKaryawanValueCell.setBorderWidthRight(0);
- table.addCell(totalPotonganBPJSKaryawanValueCell);
- // JHT karyawan
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.JHT_KARYAWAN) && pendapatanPotonganKaryawan.getTotalNilai() != 0)
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- PdfPCell potonganBPJSJHTKaryawanLabelCell = new PdfPCell(new Phrase("Premi JHT karyawan", STANDARD_FONT));
- potonganBPJSJHTKaryawanLabelCell.setColspan(2);
- potonganBPJSJHTKaryawanLabelCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- potonganBPJSJHTKaryawanLabelCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- potonganBPJSJHTKaryawanLabelCell.setBorderWidthTop(0);
- potonganBPJSJHTKaryawanLabelCell.setBorderWidthLeft(0);
- potonganBPJSJHTKaryawanLabelCell.setBorderWidthRight(0);
- potonganBPJSJHTKaryawanLabelCell.setPaddingLeft(CELL_PADDING * 4);
- table.addCell(potonganBPJSJHTKaryawanLabelCell);
- Double totalJHTKaryawan = 0D;
- for (int i = 0; i < 12; i++) {
- final String yearMonth = (i + 1) < 10 ? (year + "0" + (i + 1)) : year + String.valueOf((i + 1));
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.JHT_KARYAWAN) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- PdfPCell monthValueCell = new PdfPCell();
- if (objPendapatanPotonganKaryawan != null) {
- monthValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue()), STANDARD_FONT));
- totalJHTKaryawan += objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue();
- } else {
- monthValueCell = new PdfPCell(new Phrase("0", STANDARD_FONT));
- }
- monthValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- monthValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- monthValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- monthValueCell.setBorderWidthTop(0);
- monthValueCell.setBorderWidthLeft(0);
- monthValueCell.setBorderWidthRight(0);
- table.addCell(monthValueCell);
- }
- // total JHT karyawan semua bulan pada tahun yang sama
- PdfPCell totalJHTKaryawanValueCell = new PdfPCell();
- totalJHTKaryawanValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(totalJHTKaryawan.doubleValue()), STANDARD_FONT));
- totalJHTKaryawanValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- totalJHTKaryawanValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- totalJHTKaryawanValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- totalJHTKaryawanValueCell.setBorderWidthTop(0);
- totalJHTKaryawanValueCell.setBorderWidthLeft(0);
- totalJHTKaryawanValueCell.setBorderWidthRight(0);
- table.addCell(totalJHTKaryawanValueCell);
- }
- // JKN karyawan
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.JKN_KARYAWAN) && pendapatanPotonganKaryawan.getTotalNilai() != 0)
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- PdfPCell potonganBPJSJKNKaryawanLabelCell = new PdfPCell(new Phrase("Premi JKN karyawan", STANDARD_FONT));
- potonganBPJSJKNKaryawanLabelCell.setColspan(2);
- potonganBPJSJKNKaryawanLabelCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- potonganBPJSJKNKaryawanLabelCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- potonganBPJSJKNKaryawanLabelCell.setBorderWidthTop(0);
- potonganBPJSJKNKaryawanLabelCell.setBorderWidthLeft(0);
- potonganBPJSJKNKaryawanLabelCell.setBorderWidthRight(0);
- potonganBPJSJKNKaryawanLabelCell.setPaddingLeft(CELL_PADDING * 4);
- table.addCell(potonganBPJSJKNKaryawanLabelCell);
- Double totalJKNKaryawan = 0D;
- for (int i = 0; i < 12; i++) {
- final String yearMonth = (i + 1) < 10 ? (year + "0" + (i + 1)) : year + String.valueOf((i + 1));
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.JKN_KARYAWAN) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- PdfPCell monthValueCell = new PdfPCell();
- if (objPendapatanPotonganKaryawan != null) {
- monthValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue()), STANDARD_FONT));
- totalJKNKaryawan += objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue();
- } else {
- monthValueCell = new PdfPCell(new Phrase("0", STANDARD_FONT));
- }
- monthValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- monthValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- monthValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- monthValueCell.setBorderWidthTop(0);
- monthValueCell.setBorderWidthLeft(0);
- monthValueCell.setBorderWidthRight(0);
- table.addCell(monthValueCell);
- }
- // total JKN karyawan semua bulan pada tahun yang sama
- PdfPCell totalJKNKaryawanValueCell = new PdfPCell();
- totalJKNKaryawanValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(totalJKNKaryawan.doubleValue()), STANDARD_FONT));
- totalJKNKaryawanValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- totalJKNKaryawanValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- totalJKNKaryawanValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- totalJKNKaryawanValueCell.setBorderWidthTop(0);
- totalJKNKaryawanValueCell.setBorderWidthLeft(0);
- totalJKNKaryawanValueCell.setBorderWidthRight(0);
- table.addCell(totalJKNKaryawanValueCell);
- }
- // JP karyawan
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.JP_KARYAWAN) && pendapatanPotonganKaryawan.getTotalNilai() != 0)
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- PdfPCell potonganBPJSJPKaryawanLabelCell = new PdfPCell(new Phrase("Premi JP karyawan", STANDARD_FONT));
- potonganBPJSJPKaryawanLabelCell.setColspan(2);
- potonganBPJSJPKaryawanLabelCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- potonganBPJSJPKaryawanLabelCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- potonganBPJSJPKaryawanLabelCell.setBorderWidthTop(0);
- potonganBPJSJPKaryawanLabelCell.setBorderWidthLeft(0);
- potonganBPJSJPKaryawanLabelCell.setBorderWidthRight(0);
- potonganBPJSJPKaryawanLabelCell.setPaddingLeft(CELL_PADDING * 4);
- table.addCell(potonganBPJSJPKaryawanLabelCell);
- Double totalJPKaryawan = 0D;
- for (int i = 0; i < 12; i++) {
- final String yearMonth = (i + 1) < 10 ? (year + "0" + (i + 1)) : year + String.valueOf((i + 1));
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.JP_KARYAWAN) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- PdfPCell monthValueCell = new PdfPCell();
- if (objPendapatanPotonganKaryawan != null) {
- monthValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue()), STANDARD_FONT));
- totalJPKaryawan += objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue();
- } else {
- monthValueCell = new PdfPCell(new Phrase("0", STANDARD_FONT));
- }
- monthValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- monthValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- monthValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- monthValueCell.setBorderWidthTop(0);
- monthValueCell.setBorderWidthLeft(0);
- monthValueCell.setBorderWidthRight(0);
- table.addCell(monthValueCell);
- }
- // total JP karyawan semua bulan pada tahun yang sama
- PdfPCell totalJPKaryawanValueCell = new PdfPCell();
- totalJPKaryawanValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(totalJPKaryawan.doubleValue()), STANDARD_FONT));
- totalJPKaryawanValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- totalJPKaryawanValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- totalJPKaryawanValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- totalJPKaryawanValueCell.setBorderWidthTop(0);
- totalJPKaryawanValueCell.setBorderWidthLeft(0);
- totalJPKaryawanValueCell.setBorderWidthRight(0);
- table.addCell(totalJPKaryawanValueCell);
- }
- // Sanksi keterlambatan / tidak hadir
- PdfPCell potonganSanksiKeterlambatanTidakHadirKaryawanLabelCell = new PdfPCell(new Phrase("Sanksi keterlambatan / tidak hadir", STANDARD_FONT));
- potonganSanksiKeterlambatanTidakHadirKaryawanLabelCell.setColspan(2);
- potonganSanksiKeterlambatanTidakHadirKaryawanLabelCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- potonganSanksiKeterlambatanTidakHadirKaryawanLabelCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- potonganSanksiKeterlambatanTidakHadirKaryawanLabelCell.setBorderWidthTop(0);
- potonganSanksiKeterlambatanTidakHadirKaryawanLabelCell.setBorderWidthLeft(0);
- potonganSanksiKeterlambatanTidakHadirKaryawanLabelCell.setBorderWidthRight(0);
- potonganSanksiKeterlambatanTidakHadirKaryawanLabelCell.setPaddingLeft(CELL_PADDING * 2);
- table.addCell(potonganSanksiKeterlambatanTidakHadirKaryawanLabelCell);
- Double totalAllPotonganSanksiKeterlambatanTidakHadirKaryawan = 0D;
- for (int i = 0; i < 12; i++) {
- final String yearMonth = (i + 1) < 10 ? (year + "0" + (i + 1)) : year + String.valueOf((i + 1));
- Double totalPotonganSanksiKeterlambatanTidakHadirKaryawan = 0D;
- // Status keterlambatan / tidak hadir - Potongan Gaji
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.POTONGAN_GAJI) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- totalPotonganSanksiKeterlambatanTidakHadirKaryawan += objPendapatanPotonganKaryawan.getTotalNilaiAkhir();
- }
- // Status keterlambatan / tidak hadir - Potongan Absensi
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.POTONGAN_ABSENSI) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- totalPotonganSanksiKeterlambatanTidakHadirKaryawan += objPendapatanPotonganKaryawan.getTotalNilaiAkhir();
- }
- // Status keterlambatan / tidak hadir - Potongan Tunjangan Harian
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.POTONGAN_TUNJANGAN_HARIAN) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- totalPotonganSanksiKeterlambatanTidakHadirKaryawan += objPendapatanPotonganKaryawan.getTotalNilaiAkhir();
- }
- // Status keterlambatan / tidak hadir - Potongan Tunjangan Tetap
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.POTONGAN_TUNJANGAN_TETAP) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- totalPotonganSanksiKeterlambatanTidakHadirKaryawan += objPendapatanPotonganKaryawan.getTotalNilaiAkhir();
- }
- totalAllPotonganSanksiKeterlambatanTidakHadirKaryawan += totalPotonganSanksiKeterlambatanTidakHadirKaryawan;
- PdfPCell monthValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(totalPotonganSanksiKeterlambatanTidakHadirKaryawan.doubleValue()), STANDARD_FONT));
- monthValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- monthValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- monthValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- monthValueCell.setBorderWidthTop(0);
- monthValueCell.setBorderWidthLeft(0);
- monthValueCell.setBorderWidthRight(0);
- table.addCell(monthValueCell);
- }
- // total semua potongan sanksi keterlamabatan tidak hadir karyawan semua bulan pada tahun yang sama
- PdfPCell totalAllPotonganSanksiKeterlambatanTidakHadirKaryawanValueCell = new PdfPCell();
- totalAllPotonganSanksiKeterlambatanTidakHadirKaryawanValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(totalAllPotonganSanksiKeterlambatanTidakHadirKaryawan.doubleValue()), STANDARD_FONT));
- totalAllPotonganSanksiKeterlambatanTidakHadirKaryawanValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- totalAllPotonganSanksiKeterlambatanTidakHadirKaryawanValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- totalAllPotonganSanksiKeterlambatanTidakHadirKaryawanValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- totalAllPotonganSanksiKeterlambatanTidakHadirKaryawanValueCell.setBorderWidthTop(0);
- totalAllPotonganSanksiKeterlambatanTidakHadirKaryawanValueCell.setBorderWidthLeft(0);
- totalAllPotonganSanksiKeterlambatanTidakHadirKaryawanValueCell.setBorderWidthRight(0);
- table.addCell(totalAllPotonganSanksiKeterlambatanTidakHadirKaryawanValueCell);
- // Potongan gaji
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.POTONGAN_GAJI) && pendapatanPotonganKaryawan.getTotalNilai() != 0)
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- PdfPCell potonganGajiKaryawanLabelCell = new PdfPCell(new Phrase("Potongan gaji", STANDARD_FONT));
- potonganGajiKaryawanLabelCell.setColspan(2);
- potonganGajiKaryawanLabelCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- potonganGajiKaryawanLabelCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- potonganGajiKaryawanLabelCell.setBorderWidthTop(0);
- potonganGajiKaryawanLabelCell.setBorderWidthLeft(0);
- potonganGajiKaryawanLabelCell.setBorderWidthRight(0);
- potonganGajiKaryawanLabelCell.setPaddingLeft(CELL_PADDING * 4);
- table.addCell(potonganGajiKaryawanLabelCell);
- Double totalPotonganGajiKaryawan = 0D;
- for (int i = 0; i < 12; i++) {
- final String yearMonth = (i + 1) < 10 ? (year + "0" + (i + 1)) : year + String.valueOf((i + 1));
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.POTONGAN_GAJI) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- PdfPCell monthValueCell = new PdfPCell();
- if (objPendapatanPotonganKaryawan != null) {
- monthValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue()), STANDARD_FONT));
- totalPotonganGajiKaryawan += objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue();
- } else {
- monthValueCell = new PdfPCell(new Phrase("0", STANDARD_FONT));
- }
- monthValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- monthValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- monthValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- monthValueCell.setBorderWidthTop(0);
- monthValueCell.setBorderWidthLeft(0);
- monthValueCell.setBorderWidthRight(0);
- table.addCell(monthValueCell);
- }
- // total potongan gaji semua bulan pada tahun yang sama
- PdfPCell totalPotonganGajiKaryawanValueCell = new PdfPCell();
- totalPotonganGajiKaryawanValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(totalPotonganGajiKaryawan.doubleValue()), STANDARD_FONT));
- totalPotonganGajiKaryawanValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- totalPotonganGajiKaryawanValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- totalPotonganGajiKaryawanValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- totalPotonganGajiKaryawanValueCell.setBorderWidthTop(0);
- totalPotonganGajiKaryawanValueCell.setBorderWidthLeft(0);
- totalPotonganGajiKaryawanValueCell.setBorderWidthRight(0);
- table.addCell(totalPotonganGajiKaryawanValueCell);
- }
- // Potongan absensi
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.POTONGAN_ABSENSI) && pendapatanPotonganKaryawan.getTotalNilai() != 0)
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- PdfPCell potonganAbsensiKaryawanLabelCell = new PdfPCell(new Phrase("Potongan absensi", STANDARD_FONT));
- potonganAbsensiKaryawanLabelCell.setColspan(2);
- potonganAbsensiKaryawanLabelCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- potonganAbsensiKaryawanLabelCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- potonganAbsensiKaryawanLabelCell.setBorderWidthTop(0);
- potonganAbsensiKaryawanLabelCell.setBorderWidthLeft(0);
- potonganAbsensiKaryawanLabelCell.setBorderWidthRight(0);
- potonganAbsensiKaryawanLabelCell.setPaddingLeft(CELL_PADDING * 4);
- table.addCell(potonganAbsensiKaryawanLabelCell);
- Double totalPotonganAbsensiKaryawan = 0D;
- for (int i = 0; i < 12; i++) {
- final String yearMonth = (i + 1) < 10 ? (year + "0" + (i + 1)) : year + String.valueOf((i + 1));
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.POTONGAN_ABSENSI) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- PdfPCell monthValueCell = new PdfPCell();
- if (objPendapatanPotonganKaryawan != null) {
- monthValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue()), STANDARD_FONT));
- totalPotonganAbsensiKaryawan += objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue();
- } else {
- monthValueCell = new PdfPCell(new Phrase("0", STANDARD_FONT));
- }
- monthValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- monthValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- monthValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- monthValueCell.setBorderWidthTop(0);
- monthValueCell.setBorderWidthLeft(0);
- monthValueCell.setBorderWidthRight(0);
- table.addCell(monthValueCell);
- }
- // total potongan absensi semua bulan pada tahun yang sama
- PdfPCell totalPotonganAbsensiKaryawanValueCell = new PdfPCell();
- totalPotonganAbsensiKaryawanValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(totalPotonganAbsensiKaryawan.doubleValue()), STANDARD_FONT));
- totalPotonganAbsensiKaryawanValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- totalPotonganAbsensiKaryawanValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- totalPotonganAbsensiKaryawanValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- totalPotonganAbsensiKaryawanValueCell.setBorderWidthTop(0);
- totalPotonganAbsensiKaryawanValueCell.setBorderWidthLeft(0);
- totalPotonganAbsensiKaryawanValueCell.setBorderWidthRight(0);
- table.addCell(totalPotonganAbsensiKaryawanValueCell);
- }
- // Potongan tunjangan harian
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.POTONGAN_TUNJANGAN_HARIAN) && pendapatanPotonganKaryawan.getTotalNilai() != 0)
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- PdfPCell potonganTunjanganHarianKaryawanLabelCell = new PdfPCell(new Phrase("Potongan tunjangan harian", STANDARD_FONT));
- potonganTunjanganHarianKaryawanLabelCell.setColspan(2);
- potonganTunjanganHarianKaryawanLabelCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- potonganTunjanganHarianKaryawanLabelCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- potonganTunjanganHarianKaryawanLabelCell.setBorderWidthTop(0);
- potonganTunjanganHarianKaryawanLabelCell.setBorderWidthLeft(0);
- potonganTunjanganHarianKaryawanLabelCell.setBorderWidthRight(0);
- potonganTunjanganHarianKaryawanLabelCell.setPaddingLeft(CELL_PADDING * 4);
- table.addCell(potonganTunjanganHarianKaryawanLabelCell);
- Double totalPotonganTunjanganHarianKaryawan = 0D;
- for (int i = 0; i < 12; i++) {
- final String yearMonth = (i + 1) < 10 ? (year + "0" + (i + 1)) : year + String.valueOf((i + 1));
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.POTONGAN_TUNJANGAN_HARIAN) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- PdfPCell monthValueCell = new PdfPCell();
- if (objPendapatanPotonganKaryawan != null) {
- monthValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue()), STANDARD_FONT));
- totalPotonganTunjanganHarianKaryawan += objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue();
- } else {
- monthValueCell = new PdfPCell(new Phrase("0", STANDARD_FONT));
- }
- monthValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- monthValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- monthValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- monthValueCell.setBorderWidthTop(0);
- monthValueCell.setBorderWidthLeft(0);
- monthValueCell.setBorderWidthRight(0);
- table.addCell(monthValueCell);
- }
- // total potongan tunjangan harian semua bulan pada tahun yang sama
- PdfPCell totalPotonganTunjanganHarianKaryawanValueCell = new PdfPCell();
- totalPotonganTunjanganHarianKaryawanValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(totalPotonganTunjanganHarianKaryawan.doubleValue()), STANDARD_FONT));
- totalPotonganTunjanganHarianKaryawanValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- totalPotonganTunjanganHarianKaryawanValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- totalPotonganTunjanganHarianKaryawanValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- totalPotonganTunjanganHarianKaryawanValueCell.setBorderWidthTop(0);
- totalPotonganTunjanganHarianKaryawanValueCell.setBorderWidthLeft(0);
- totalPotonganTunjanganHarianKaryawanValueCell.setBorderWidthRight(0);
- table.addCell(totalPotonganTunjanganHarianKaryawanValueCell);
- }
- // Potongan tunjangan tetap
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.POTONGAN_TUNJANGAN_TETAP) && pendapatanPotonganKaryawan.getTotalNilai() != 0)
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- PdfPCell potonganTunjanganTetapKaryawanLabelCell = new PdfPCell(new Phrase("Potongan tunjangan tetap", STANDARD_FONT));
- potonganTunjanganTetapKaryawanLabelCell.setColspan(2);
- potonganTunjanganTetapKaryawanLabelCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- potonganTunjanganTetapKaryawanLabelCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- potonganTunjanganTetapKaryawanLabelCell.setBorderWidthTop(0);
- potonganTunjanganTetapKaryawanLabelCell.setBorderWidthLeft(0);
- potonganTunjanganTetapKaryawanLabelCell.setBorderWidthRight(0);
- potonganTunjanganTetapKaryawanLabelCell.setPaddingLeft(CELL_PADDING * 4);
- table.addCell(potonganTunjanganTetapKaryawanLabelCell);
- Double totalPotonganTunjanganTetapKaryawan = 0D;
- for (int i = 0; i < 12; i++) {
- final String yearMonth = (i + 1) < 10 ? (year + "0" + (i + 1)) : year + String.valueOf((i + 1));
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.POTONGAN_TUNJANGAN_TETAP) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- PdfPCell monthValueCell = new PdfPCell();
- if (objPendapatanPotonganKaryawan != null) {
- monthValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue()), STANDARD_FONT));
- totalPotonganTunjanganTetapKaryawan += objPendapatanPotonganKaryawan.getTotalNilaiAkhir().doubleValue();
- } else {
- monthValueCell = new PdfPCell(new Phrase("0", STANDARD_FONT));
- }
- monthValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- monthValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- monthValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- monthValueCell.setBorderWidthTop(0);
- monthValueCell.setBorderWidthLeft(0);
- monthValueCell.setBorderWidthRight(0);
- table.addCell(monthValueCell);
- }
- // total potongan tunjangan tetap semua bulan pada tahun yang sama
- PdfPCell totalPotonganTunjanganTetapKaryawanValueCell = new PdfPCell();
- totalPotonganTunjanganTetapKaryawanValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(totalPotonganTunjanganTetapKaryawan.doubleValue()), STANDARD_FONT));
- totalPotonganTunjanganTetapKaryawanValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- totalPotonganTunjanganTetapKaryawanValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- totalPotonganTunjanganTetapKaryawanValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- totalPotonganTunjanganTetapKaryawanValueCell.setBorderWidthTop(0);
- totalPotonganTunjanganTetapKaryawanValueCell.setBorderWidthLeft(0);
- totalPotonganTunjanganTetapKaryawanValueCell.setBorderWidthRight(0);
- table.addCell(totalPotonganTunjanganTetapKaryawanValueCell);
- }
- // ganti disini
- // Potongan yang mengurangi THP
- Map<String, String> searchParameter = new HashMap<String, String>();
- searchParameter.put("thpFlag", "-1");
- searchParameter.put("sort", "name-asc");
- List<MstIncomeDeduction> potonganMengurangiTHPList = mstIncomeDeductionService.search(SearchParameter.generate(searchParameter, MstIncomeDeductionPojo.getFieldMappings()))
- .getResult()
- .stream()
- .filter(incomeDeduction -> incomeDeduction.getIncomeDeductionGroup().name().startsWith("POT") && incomeDeduction.getCode().trim().equals(DomainConstants.EMPTY))
- .collect(Collectors.toList());
- for (MstIncomeDeduction potonganMengurangiTHP: potonganMengurangiTHPList) {
- PendapatanPotonganKaryawan pendapatanPotonganKaryawanMengurangiTHP = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getId().equals(potonganMengurangiTHP.getId()))
- .findFirst()
- .orElse(null);
- if (potonganMengurangiTHP != null) {
- PdfPCell tunjanganMenambahTHPLabelCell = new PdfPCell(new Phrase(potonganMengurangiTHP.getName(), STANDARD_FONT));
- tunjanganMenambahTHPLabelCell.setColspan(2);
- tunjanganMenambahTHPLabelCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- tunjanganMenambahTHPLabelCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- tunjanganMenambahTHPLabelCell.setBorderWidthTop(0);
- tunjanganMenambahTHPLabelCell.setBorderWidthLeft(0);
- tunjanganMenambahTHPLabelCell.setBorderWidthRight(0);
- tunjanganMenambahTHPLabelCell.setPaddingLeft(CELL_PADDING * 2);
- tunjanganMenambahTHPLabelCell.setNoWrap(false);
- table.addCell(tunjanganMenambahTHPLabelCell);
- Double totalPotonganMengurangiTHP = 0D;
- for (int i = 0; i < 12; i++) {
- final String yearMonth = (i + 1) < 10 ? (year + "0" + (i + 1)) : year + String.valueOf((i + 1));
- pendapatanPotonganKaryawanMengurangiTHP = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getId().equals(potonganMengurangiTHP.getId()) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- PdfPCell monthValueCell = new PdfPCell();
- if (pendapatanPotonganKaryawanMengurangiTHP != null) {
- monthValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(pendapatanPotonganKaryawanMengurangiTHP.getTotalNilaiAkhir().doubleValue()), STANDARD_FONT));
- totalPotonganMengurangiTHP += pendapatanPotonganKaryawanMengurangiTHP.getTotalNilaiAkhir().doubleValue();
- } else {
- monthValueCell = new PdfPCell(new Phrase("0", STANDARD_FONT));
- }
- monthValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- monthValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- monthValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- monthValueCell.setBorderWidthTop(0);
- monthValueCell.setBorderWidthLeft(0);
- monthValueCell.setBorderWidthRight(0);
- table.addCell(monthValueCell);
- }
- // total potongan mengurangi THP semua bulan pada tahun yang sama
- PdfPCell totalPotonganMengurangiTHPValueCell = new PdfPCell();
- totalPotonganMengurangiTHPValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(totalPotonganMengurangiTHP.doubleValue()), STANDARD_FONT));
- totalPotonganMengurangiTHPValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- totalPotonganMengurangiTHPValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- totalPotonganMengurangiTHPValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- totalPotonganMengurangiTHPValueCell.setBorderWidthTop(0);
- totalPotonganMengurangiTHPValueCell.setBorderWidthLeft(0);
- totalPotonganMengurangiTHPValueCell.setBorderWidthRight(0);
- table.addCell(totalPotonganMengurangiTHPValueCell);
- }
- }
- // Pendapatan Total
- PdfPCell potonganTotalLabelCell = new PdfPCell(new Phrase("Pendapatan Total", STANDARD_FONT_BOLD));
- potonganTotalLabelCell.setColspan(15);
- potonganTotalLabelCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- potonganTotalLabelCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- potonganTotalLabelCell.setBorderWidthTop(0);
- potonganTotalLabelCell.setBorderWidthLeft(0);
- potonganTotalLabelCell.setBorderWidthRight(0);
- table.addCell(potonganTotalLabelCell);
- // Keseluruhan
- PdfPCell keseluruhanLabelCell = new PdfPCell(new Phrase("Keseluruhan", STANDARD_FONT));
- keseluruhanLabelCell.setColspan(2);
- keseluruhanLabelCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- keseluruhanLabelCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- keseluruhanLabelCell.setBorderWidthTop(0);
- keseluruhanLabelCell.setBorderWidthLeft(0);
- keseluruhanLabelCell.setBorderWidthRight(0);
- keseluruhanLabelCell.setPaddingLeft(CELL_PADDING * 2);
- table.addCell(keseluruhanLabelCell);
- Double totalKeseluruhan = 0D;
- for (int i = 0; i < 12; i++) {
- Double keseluruhan = 0D;
- if (gajiList.get(i) != null) {
- keseluruhan += gajiList.get(i);
- }
- if (rapelGajiList.get(i) != null) {
- keseluruhan += rapelGajiList.get(i);
- }
- if (thrList.get(i) != null) {
- keseluruhan += thrList.get(i);
- }
- if (rapelThrList.get(i) != null) {
- keseluruhan += rapelThrList.get(i);
- }
- if (bonusList.get(i) != null) {
- keseluruhan += bonusList.get(i);
- }
- if (pembayaranSisaCutiList.get(i) != null) {
- keseluruhan += pembayaranSisaCutiList.get(i);
- }
- if (totalTunjanganList.get(i) != null) {
- keseluruhan += totalTunjanganList.get(i);
- }
- if (totalPotonganList.get(i) != null) {
- keseluruhan -= totalPotonganList.get(i);
- }
- totalKeseluruhan += keseluruhan;
- PdfPCell monthValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(keseluruhan.doubleValue()), STANDARD_FONT));
- monthValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- monthValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- monthValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- monthValueCell.setBorderWidthTop(0);
- monthValueCell.setBorderWidthLeft(0);
- monthValueCell.setBorderWidthRight(0);
- table.addCell(monthValueCell);
- keseluruhanList.add(keseluruhan);
- }
- // total keseluruhan semua bulan pada tahun yang sama
- PdfPCell totalKeseluruhanValueCell = new PdfPCell();
- totalKeseluruhanValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(totalKeseluruhan.doubleValue()), STANDARD_FONT));
- totalKeseluruhanValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- totalKeseluruhanValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- totalKeseluruhanValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- totalKeseluruhanValueCell.setBorderWidthTop(0);
- totalKeseluruhanValueCell.setBorderWidthLeft(0);
- totalKeseluruhanValueCell.setBorderWidthRight(0);
- table.addCell(totalKeseluruhanValueCell);
- // Diterima karyawan
- PdfPCell diterimaKaryawanLabelCell = new PdfPCell(new Phrase("Diterima karyawan", STANDARD_FONT));
- diterimaKaryawanLabelCell.setColspan(2);
- diterimaKaryawanLabelCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- diterimaKaryawanLabelCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- diterimaKaryawanLabelCell.setBorderWidthTop(0);
- diterimaKaryawanLabelCell.setBorderWidthLeft(0);
- diterimaKaryawanLabelCell.setBorderWidthRight(0);
- diterimaKaryawanLabelCell.setPaddingLeft(CELL_PADDING * 2);
- table.addCell(diterimaKaryawanLabelCell);
- Double totalPendapatanDiterimaKaryawan = 0D;
- for (int i = 0; i < 12; i++) {
- Double diterimaKaryawan = keseluruhanList.get(i) - totalTidakDiterimaKaryawanList.get(i);
- totalPendapatanDiterimaKaryawan += diterimaKaryawan;
- PdfPCell monthValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(diterimaKaryawan.doubleValue()), STANDARD_FONT));
- monthValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- monthValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- monthValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- monthValueCell.setBorderWidthTop(0);
- monthValueCell.setBorderWidthLeft(0);
- monthValueCell.setBorderWidthRight(0);
- table.addCell(monthValueCell);
- diterimaKaryawanList.add(diterimaKaryawan);
- }
- // total pendapatan diterima karyawan semua bulan pada tahun yang sama
- PdfPCell totalPendapatanDiterimaKaryawanValueCell = new PdfPCell();
- totalPendapatanDiterimaKaryawanValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(totalPendapatanDiterimaKaryawan.doubleValue()), STANDARD_FONT));
- totalPendapatanDiterimaKaryawanValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- totalPendapatanDiterimaKaryawanValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- totalPendapatanDiterimaKaryawanValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- totalPendapatanDiterimaKaryawanValueCell.setBorderWidthTop(0);
- totalPendapatanDiterimaKaryawanValueCell.setBorderWidthLeft(0);
- totalPendapatanDiterimaKaryawanValueCell.setBorderWidthRight(0);
- table.addCell(totalPendapatanDiterimaKaryawanValueCell);
- // Pajak
- PdfPCell pajakLabelCell = new PdfPCell(new Phrase("Pajak", STANDARD_FONT_BOLD));
- pajakLabelCell.setColspan(2);
- pajakLabelCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- pajakLabelCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- pajakLabelCell.setBorderWidthTop(0);
- pajakLabelCell.setBorderWidthLeft(0);
- pajakLabelCell.setBorderWidthRight(0);
- table.addCell(pajakLabelCell);
- Double totalAllPajak = 0D;
- for (int i = 0; i < 12; i++) {
- final String yearMonth = (i + 1) < 10 ? (year + "0" + (i + 1)) : year + String.valueOf((i + 1));
- Double totalPajak = 0D;
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.PAJAK) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- totalPajak += objPendapatanPotonganKaryawan.getTotalNilaiAkhir();
- pajakDitanggungKaryawanList.add(objPendapatanPotonganKaryawan.getTotalNilaiAkhir());
- } else {
- pajakDitanggungKaryawanList.add(0D);
- }
- objPendapatanPotonganKaryawan = pendapatanPotonganKaryawanList.stream()
- .filter(pendapatanPotonganKaryawan -> pendapatanPotonganKaryawan.getPendapatanPotongan().getCode().equals(IncomeDeductionConstants.PAJAK_DITANGGUNG_PERUSAHAAN) && pendapatanPotonganKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- if (objPendapatanPotonganKaryawan != null) {
- totalPajak += objPendapatanPotonganKaryawan.getTotalNilaiAkhir();
- pajakDitanggungPerusahaanList.add(objPendapatanPotonganKaryawan.getTotalNilaiAkhir());
- } else {
- pajakDitanggungPerusahaanList.add(0D);
- }
- totalAllPajak += totalPajak;
- PdfPCell monthValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(totalPajak.doubleValue()), STANDARD_FONT));
- monthValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- monthValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- monthValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- monthValueCell.setBorderWidthTop(0);
- monthValueCell.setBorderWidthLeft(0);
- monthValueCell.setBorderWidthRight(0);
- table.addCell(monthValueCell);
- }
- // total pajak semua bulan pada tahun yang sama
- PdfPCell totalPajakValueCell = new PdfPCell();
- totalPajakValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(totalAllPajak.doubleValue()), STANDARD_FONT));
- totalPajakValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- totalPajakValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- totalPajakValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- totalPajakValueCell.setBorderWidthTop(0);
- totalPajakValueCell.setBorderWidthLeft(0);
- totalPajakValueCell.setBorderWidthRight(0);
- table.addCell(totalPajakValueCell);
- // Pajak - Ditanggung karyawan
- PdfPCell pajakDitanggungKaryawanLabelCell = new PdfPCell(new Phrase("Ditanggung karyawan", STANDARD_FONT));
- pajakDitanggungKaryawanLabelCell.setColspan(2);
- pajakDitanggungKaryawanLabelCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- pajakDitanggungKaryawanLabelCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- pajakDitanggungKaryawanLabelCell.setBorderWidthTop(0);
- pajakDitanggungKaryawanLabelCell.setBorderWidthLeft(0);
- pajakDitanggungKaryawanLabelCell.setBorderWidthRight(0);
- pajakDitanggungKaryawanLabelCell.setPaddingLeft(CELL_PADDING * 2);
- table.addCell(pajakDitanggungKaryawanLabelCell);
- Double totalPajakDitanggungKaryawan = 0D;
- for (int i = 0; i < 12; i++) {
- totalPajakDitanggungKaryawan += pajakDitanggungKaryawanList.get(i).doubleValue();
- PdfPCell monthValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(pajakDitanggungKaryawanList.get(i).doubleValue()), STANDARD_FONT));
- monthValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- monthValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- monthValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- monthValueCell.setBorderWidthTop(0);
- monthValueCell.setBorderWidthLeft(0);
- monthValueCell.setBorderWidthRight(0);
- table.addCell(monthValueCell);
- }
- // total pajak ditanggung karyawan semua bulan pada tahun yang sama
- PdfPCell totalPajakDitanggungKaryawanValueCell = new PdfPCell();
- totalPajakDitanggungKaryawanValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(totalPajakDitanggungKaryawan.doubleValue()), STANDARD_FONT));
- totalPajakDitanggungKaryawanValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- totalPajakDitanggungKaryawanValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- totalPajakDitanggungKaryawanValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- totalPajakDitanggungKaryawanValueCell.setBorderWidthTop(0);
- totalPajakDitanggungKaryawanValueCell.setBorderWidthLeft(0);
- totalPajakDitanggungKaryawanValueCell.setBorderWidthRight(0);
- table.addCell(totalPajakDitanggungKaryawanValueCell);
- // Pajak - Ditanggung perusahaan
- PdfPCell pajakDitanggungPerusahaanLabelCell = new PdfPCell(new Phrase("Ditanggung perusahaan", STANDARD_FONT));
- pajakDitanggungPerusahaanLabelCell.setColspan(2);
- pajakDitanggungPerusahaanLabelCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- pajakDitanggungPerusahaanLabelCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- pajakDitanggungPerusahaanLabelCell.setBorderWidthTop(0);
- pajakDitanggungPerusahaanLabelCell.setBorderWidthLeft(0);
- pajakDitanggungPerusahaanLabelCell.setBorderWidthRight(0);
- pajakDitanggungPerusahaanLabelCell.setPaddingLeft(CELL_PADDING * 2);
- table.addCell(pajakDitanggungPerusahaanLabelCell);
- Double totalPajakDitanggungPerusahaan = 0D;
- for (int i = 0; i < 12; i++) {
- totalPajakDitanggungPerusahaan += pajakDitanggungPerusahaanList.get(i).doubleValue();
- PdfPCell monthValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(pajakDitanggungPerusahaanList.get(i).doubleValue()), STANDARD_FONT));
- monthValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- monthValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- monthValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- monthValueCell.setBorderWidthTop(0);
- monthValueCell.setBorderWidthLeft(0);
- monthValueCell.setBorderWidthRight(0);
- table.addCell(monthValueCell);
- }
- // total pajak ditanggung perusahaan semua bulan pada tahun yang sama
- PdfPCell totalPajakDitanggungPerusahaanValueCell = new PdfPCell();
- totalPajakDitanggungPerusahaanValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(totalPajakDitanggungPerusahaan.doubleValue()), STANDARD_FONT));
- totalPajakDitanggungPerusahaanValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- totalPajakDitanggungPerusahaanValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- totalPajakDitanggungPerusahaanValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- totalPajakDitanggungPerusahaanValueCell.setBorderWidthTop(0);
- totalPajakDitanggungPerusahaanValueCell.setBorderWidthLeft(0);
- totalPajakDitanggungPerusahaanValueCell.setBorderWidthRight(0);
- table.addCell(totalPajakDitanggungPerusahaanValueCell);
- // THP
- PdfPCell thpLabelCell = new PdfPCell(new Phrase("THP", STANDARD_FONT_BOLD));
- thpLabelCell.setColspan(15);
- thpLabelCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- thpLabelCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- thpLabelCell.setBorderWidthTop(0);
- thpLabelCell.setBorderWidthLeft(0);
- thpLabelCell.setBorderWidthRight(0);
- table.addCell(thpLabelCell);
- // THP - Awal
- PdfPCell thpAwalLabelCell = new PdfPCell(new Phrase("Awal", STANDARD_FONT));
- thpAwalLabelCell.setColspan(2);
- thpAwalLabelCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- thpAwalLabelCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- thpAwalLabelCell.setBorderWidthTop(0);
- thpAwalLabelCell.setBorderWidthLeft(0);
- thpAwalLabelCell.setBorderWidthRight(0);
- thpAwalLabelCell.setPaddingLeft(CELL_PADDING * 2);
- table.addCell(thpAwalLabelCell);
- Double totalTHPAwal = 0D;
- for (int i = 0; i < 12; i++) {
- final String yearMonth = (i + 1) < 10 ? (year + "0" + (i + 1)) : year + String.valueOf((i + 1));
- SummaryPenghasilanKaryawan objSummaryPenghasilanKaryawan = summaryPenghasilanKaryawanList.stream()
- .filter(summaryPenghasilanKaryawan -> summaryPenghasilanKaryawan.getTahunBulanGaji().equals(yearMonth))
- .findFirst()
- .orElse(null);
- PdfPCell monthValueCell = new PdfPCell();
- if (objSummaryPenghasilanKaryawan != null) {
- monthValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(objSummaryPenghasilanKaryawan.getThp()), STANDARD_FONT));
- totalTHPAwal += objSummaryPenghasilanKaryawan.getThp().doubleValue();
- } else {
- monthValueCell = new PdfPCell(new Phrase("0", STANDARD_FONT));
- }
- monthValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- monthValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- monthValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- monthValueCell.setBorderWidthTop(0);
- monthValueCell.setBorderWidthLeft(0);
- monthValueCell.setBorderWidthRight(0);
- table.addCell(monthValueCell);
- }
- // total thp awal semua bulan pada tahun yang sama
- PdfPCell totalTHPAwalValueCell = new PdfPCell();
- totalTHPAwalValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(totalTHPAwal.doubleValue()), STANDARD_FONT));
- totalTHPAwalValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- totalTHPAwalValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- totalTHPAwalValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- totalTHPAwalValueCell.setBorderWidthTop(0);
- totalTHPAwalValueCell.setBorderWidthLeft(0);
- totalTHPAwalValueCell.setBorderWidthRight(0);
- table.addCell(totalTHPAwalValueCell);
- // THP - Pembulatan / Koreksi
- PdfPCell thpPembulatanKoreksiLabelCell = new PdfPCell(new Phrase("Pembulatan / koreksi", STANDARD_FONT));
- thpPembulatanKoreksiLabelCell.setColspan(2);
- thpPembulatanKoreksiLabelCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- thpPembulatanKoreksiLabelCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- thpPembulatanKoreksiLabelCell.setBorderWidthTop(0);
- thpPembulatanKoreksiLabelCell.setBorderWidthLeft(0);
- thpPembulatanKoreksiLabelCell.setBorderWidthRight(0);
- thpPembulatanKoreksiLabelCell.setPaddingLeft(CELL_PADDING * 2);
- table.addCell(thpPembulatanKoreksiLabelCell);
- Double totalTHPPembulatan = 0D;
- for (int i = 0; i < 12; i++) {
- final String yearMonth = (i + 1) < 10 ? (year + "0" + (i + 1)) : year + String.valueOf((i + 1));
- Object[] objPembayaranKaryawan = pembayaranKaryawanList.stream()
- .filter(pembayaranKaryawan -> pembayaranKaryawan[1].toString().equals(yearMonth))
- .findFirst()
- .orElse(null);
- PdfPCell monthValueCell = new PdfPCell();
- if (objPembayaranKaryawan != null) {
- monthValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(Double.valueOf(objPembayaranKaryawan[2].toString())), STANDARD_FONT));
- totalTHPPembulatan += Double.valueOf(objPembayaranKaryawan[2].toString());
- } else {
- monthValueCell = new PdfPCell(new Phrase("0", STANDARD_FONT));
- }
- monthValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- monthValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- monthValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- monthValueCell.setBorderWidthTop(0);
- monthValueCell.setBorderWidthLeft(0);
- monthValueCell.setBorderWidthRight(0);
- table.addCell(monthValueCell);
- }
- // total thp pembulatan semua bulan pada tahun yang sama
- PdfPCell totalTHPPembulatanValueCell = new PdfPCell();
- totalTHPPembulatanValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(totalTHPPembulatan.doubleValue()), STANDARD_FONT));
- totalTHPPembulatanValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- totalTHPPembulatanValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- totalTHPPembulatanValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- totalTHPPembulatanValueCell.setBorderWidthTop(0);
- totalTHPPembulatanValueCell.setBorderWidthLeft(0);
- totalTHPPembulatanValueCell.setBorderWidthRight(0);
- table.addCell(totalTHPPembulatanValueCell);
- // Hasil pembulatan
- PdfPCell thpHasilPembulatanLabelCell = new PdfPCell(new Phrase("Hasil pembulatan", STANDARD_FONT));
- thpHasilPembulatanLabelCell.setColspan(2);
- thpHasilPembulatanLabelCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- thpHasilPembulatanLabelCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- thpHasilPembulatanLabelCell.setBorderWidthTop(0);
- thpHasilPembulatanLabelCell.setBorderWidthLeft(0);
- thpHasilPembulatanLabelCell.setBorderWidthRight(0);
- thpHasilPembulatanLabelCell.setPaddingLeft(CELL_PADDING * 2);
- table.addCell(thpHasilPembulatanLabelCell);
- Double totalTHPHasilPembulatan = 0D;
- for (int i = 0; i < 12; i++) {
- final String yearMonth = (i + 1) < 10 ? (year + "0" + (i + 1)) : year + String.valueOf((i + 1));
- Object[] objPembayaranKaryawan = pembayaranKaryawanList.stream()
- .filter(pembayaranKaryawan -> pembayaranKaryawan[1].toString().equals(yearMonth))
- .findFirst()
- .orElse(null);
- PdfPCell monthValueCell = new PdfPCell();
- if (objPembayaranKaryawan != null) {
- monthValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(Double.valueOf(objPembayaranKaryawan[3].toString())), STANDARD_FONT));
- totalTHPHasilPembulatan += Double.valueOf(objPembayaranKaryawan[3].toString());
- } else {
- monthValueCell = new PdfPCell(new Phrase("0", STANDARD_FONT));
- }
- monthValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- monthValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- monthValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- monthValueCell.setBorderWidthTop(0);
- monthValueCell.setBorderWidthLeft(0);
- monthValueCell.setBorderWidthRight(0);
- table.addCell(monthValueCell);
- }
- // total thp hasil pembulatan semua bulan pada tahun yang sama
- PdfPCell totalTHPHasilPembulatanValueCell = new PdfPCell();
- totalTHPHasilPembulatanValueCell = new PdfPCell(new Phrase(StringUtil.convertToThousandSeparator(totalTHPHasilPembulatan.doubleValue()), STANDARD_FONT));
- totalTHPHasilPembulatanValueCell.setPaddingTop(CELL_TABLE_PADDING_TOP);
- totalTHPHasilPembulatanValueCell.setPaddingBottom(CELL_TABLE_PADDING_BOTTOM);
- totalTHPHasilPembulatanValueCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
- totalTHPHasilPembulatanValueCell.setBorderWidthTop(0);
- totalTHPHasilPembulatanValueCell.setBorderWidthLeft(0);
- totalTHPHasilPembulatanValueCell.setBorderWidthRight(0);
- table.addCell(totalTHPHasilPembulatanValueCell);
- document.add(table);
- }
- }
Add Comment
Please, Sign In to add comment