Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package id.co.sofcograha.gajiidapi.domain.hris.mst.payroll.payrollholiday.services;
- import id.co.sofcograha.gajiidapi.base.extendables.FreeFormService;
- import id.co.sofcograha.gajiidapi.base.utils.StringUtil;
- import id.co.sofcograha.gajiidapi.domain.enums.Religion;
- import id.co.sofcograha.gajiidapi.domain.hris.mst.payroll.payrollholiday.entities.MstPayrollHoliday;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.List;
- import javax.transaction.Transactional;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- @Service
- public class MstCompletePayrollHolidayService extends FreeFormService {
- @Autowired
- private MstPayrollHolidayService payrollHolidayService;
- @Transactional
- public List<MstPayrollHoliday> add(Date holidayDate, String description, List<Religion> religions, List<MstPayrollHoliday> payrollHolidays) {
- List<MstPayrollHoliday> results = new ArrayList<>();
- if (religions.isEmpty() && payrollHolidays.isEmpty()) {
- MstPayrollHoliday payrollHoliday = new MstPayrollHoliday();
- payrollHoliday.setHolidayDate(holidayDate);
- payrollHoliday.setDescription(description);
- results.add(payrollHolidayService.add(payrollHoliday));
- } else if (religions.isEmpty() && !payrollHolidays.isEmpty()) {
- for (MstPayrollHoliday payrollHoliday : payrollHolidays) {
- payrollHoliday.setDescription(description);
- results.add(payrollHolidayService.add(payrollHoliday));
- }
- } else if (!religions.isEmpty() && payrollHolidays.isEmpty()) {
- for (Religion religion: religions) {
- MstPayrollHoliday payrollHoliday = new MstPayrollHoliday();
- payrollHoliday.setHolidayDate(holidayDate);
- payrollHoliday.setDescription(description);
- payrollHoliday.setReligion(religion);
- results.add(payrollHolidayService.add(payrollHoliday));
- }
- } else {
- for (Religion religion: religions) {
- for (MstPayrollHoliday payrollHoliday : payrollHolidays) {
- MstPayrollHoliday payrollHoliday = new MstPayrollHoliday();
- payrollHoliday.setHolidayDate(holidayDate);
- payrollHoliday.setDescription(description);
- payrollHoliday.setReligion(religion);
- results.add(payrollHolidayService.add(payrollHoliday));
- }
- }
- }
- return results;
- }
- @Transactional
- public List<MstPayrollHoliday> edit(Date holidayDate, String description, List<MstPayrollHoliday> payrollHolidays) {
- List<MstPayrollHoliday> results = new ArrayList<>();
- if (payrollHolidays.size() == 0) {
- delete(holidayDate);
- MstPayrollHoliday payrollHoliday = new MstPayrollHoliday();
- payrollHoliday.setHolidayDate(holidayDate);
- payrollHoliday.setDescription(description);
- results.add(payrollHolidayService.add(payrollHoliday));
- } else {
- List<MstPayrollHoliday> fromDbPayrollHolidays = payrollHolidayService.findByHolidayDate(holidayDate);
- for (MstPayrollHoliday fromDb: fromDbPayrollHolidays) {
- boolean delete = true;
- for (MstPayrollHoliday payrollHoliday: payrollHolidays) {
- if (fromDb.getId().equals(payrollHoliday.getId())) {
- delete = false;
- break;
- }
- }
- if (delete) {
- payrollHolidayService.delete(fromDb.getId(), fromDb.getVersion(), MstPayrollHoliday.class);
- }
- boolean edit = false;
- MstPayrollHoliday payrollHolidayToBeEdited = null;
- for (MstPayrollHoliday payrollHoliday: payrollHolidays) {
- if (!StringUtil.isBlank(payrollHoliday.getId()) && fromDb.getId().equals(payrollHoliday.getId())) {
- edit = true;
- payrollHolidayToBeEdited = payrollHoliday;
- break;
- }
- }
- if (edit) {
- payrollHolidayToBeEdited.setDescription(description);
- results.add(payrollHolidayService.edit(payrollHolidayToBeEdited));
- }
- }
- for (MstPayrollHoliday payrollHoliday: payrollHolidays) {
- if (StringUtil.isBlank(payrollHoliday.getId())) {
- payrollHoliday.setDescription(description);
- results.add(payrollHolidayService.add(payrollHoliday));
- }
- }
- }
- return results;
- }
- @Transactional
- public void delete(Date holidayDate) {
- List<MstPayrollHoliday> existingPayrollHolidays = payrollHolidayService.findByHolidayDate(holidayDate);
- for (MstPayrollHoliday existingPayrollHoliday : existingPayrollHolidays) {
- payrollHolidayService.delete(existingPayrollHoliday.getId(), existingPayrollHoliday.getVersion(), MstPayrollHoliday.class);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment