ronaldkwandy

Untitled

Aug 29th, 2019
306
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.43 KB | None | 0 0
  1. package id.co.sofcograha.gajiidapi.domain.hris.mst.payroll.payrollholiday.services;
  2.  
  3. import id.co.sofcograha.gajiidapi.base.extendables.FreeFormService;
  4. import id.co.sofcograha.gajiidapi.base.utils.StringUtil;
  5. import id.co.sofcograha.gajiidapi.domain.enums.Religion;
  6. import id.co.sofcograha.gajiidapi.domain.hris.mst.payroll.payrollholiday.entities.MstPayrollHoliday;
  7.  
  8. import java.util.ArrayList;
  9. import java.util.Date;
  10. import java.util.List;
  11.  
  12. import javax.transaction.Transactional;
  13.  
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.stereotype.Service;
  16.  
  17. @Service
  18. public class MstCompletePayrollHolidayService extends FreeFormService {
  19.    
  20.     @Autowired
  21.     private MstPayrollHolidayService payrollHolidayService;
  22.    
  23.     @Transactional
  24.     public List<MstPayrollHoliday> add(Date holidayDate, String description, List<Religion> religions, List<MstPayrollHoliday> payrollHolidays) {
  25.         List<MstPayrollHoliday> results = new ArrayList<>();
  26.         if (religions.isEmpty() && payrollHolidays.isEmpty()) {
  27.             MstPayrollHoliday payrollHoliday = new MstPayrollHoliday();
  28.             payrollHoliday.setHolidayDate(holidayDate);
  29.             payrollHoliday.setDescription(description);
  30.            
  31.             results.add(payrollHolidayService.add(payrollHoliday));
  32.         } else if (religions.isEmpty() && !payrollHolidays.isEmpty()) {
  33.             for (MstPayrollHoliday payrollHoliday : payrollHolidays) {
  34.                 payrollHoliday.setDescription(description);
  35.                 results.add(payrollHolidayService.add(payrollHoliday));
  36.             }
  37.         } else if (!religions.isEmpty() && payrollHolidays.isEmpty()) {
  38.             for (Religion religion: religions) {
  39.                 MstPayrollHoliday payrollHoliday = new MstPayrollHoliday();
  40.                 payrollHoliday.setHolidayDate(holidayDate);
  41.                 payrollHoliday.setDescription(description);
  42.                 payrollHoliday.setReligion(religion);
  43.                
  44.                 results.add(payrollHolidayService.add(payrollHoliday));
  45.             }
  46.         } else {
  47.             for (Religion religion: religions) {
  48.                 for (MstPayrollHoliday payrollHoliday : payrollHolidays) {
  49.                     MstPayrollHoliday payrollHoliday = new MstPayrollHoliday();
  50.                     payrollHoliday.setHolidayDate(holidayDate);
  51.                     payrollHoliday.setDescription(description);
  52.                     payrollHoliday.setReligion(religion);
  53.                    
  54.                     results.add(payrollHolidayService.add(payrollHoliday));
  55.                 }
  56.             }
  57.         }
  58.         return results;
  59.     }
  60.    
  61.     @Transactional
  62.     public List<MstPayrollHoliday> edit(Date holidayDate, String description, List<MstPayrollHoliday> payrollHolidays) {
  63.         List<MstPayrollHoliday> results = new ArrayList<>();
  64.         if (payrollHolidays.size() == 0) {
  65.             delete(holidayDate);
  66.            
  67.             MstPayrollHoliday payrollHoliday = new MstPayrollHoliday();
  68.             payrollHoliday.setHolidayDate(holidayDate);
  69.             payrollHoliday.setDescription(description);
  70.            
  71.             results.add(payrollHolidayService.add(payrollHoliday));
  72.         } else {
  73.             List<MstPayrollHoliday> fromDbPayrollHolidays = payrollHolidayService.findByHolidayDate(holidayDate);
  74.             for (MstPayrollHoliday fromDb: fromDbPayrollHolidays) {
  75.                 boolean delete = true;
  76.                 for (MstPayrollHoliday payrollHoliday: payrollHolidays) {
  77.                     if (fromDb.getId().equals(payrollHoliday.getId())) {
  78.                         delete = false;
  79.                         break;
  80.                     }
  81.                 }
  82.                
  83.                 if (delete) {
  84.                     payrollHolidayService.delete(fromDb.getId(), fromDb.getVersion(), MstPayrollHoliday.class);
  85.                 }
  86.                
  87.                 boolean edit = false;
  88.                 MstPayrollHoliday payrollHolidayToBeEdited = null;
  89.                 for (MstPayrollHoliday payrollHoliday: payrollHolidays) {
  90.                     if (!StringUtil.isBlank(payrollHoliday.getId()) && fromDb.getId().equals(payrollHoliday.getId())) {
  91.                         edit = true;
  92.                         payrollHolidayToBeEdited = payrollHoliday;
  93.                         break;
  94.                     }
  95.                 }
  96.                
  97.                 if (edit) {
  98.                     payrollHolidayToBeEdited.setDescription(description);
  99.                     results.add(payrollHolidayService.edit(payrollHolidayToBeEdited));
  100.                 }
  101.             }
  102.            
  103.             for (MstPayrollHoliday payrollHoliday: payrollHolidays) {
  104.                 if (StringUtil.isBlank(payrollHoliday.getId())) {
  105.                     payrollHoliday.setDescription(description);
  106.                     results.add(payrollHolidayService.add(payrollHoliday));
  107.                 }
  108.             }
  109.         }
  110.        
  111.         return results;
  112.     }
  113.    
  114.     @Transactional
  115.     public void delete(Date holidayDate) {
  116.         List<MstPayrollHoliday> existingPayrollHolidays = payrollHolidayService.findByHolidayDate(holidayDate);
  117.         for (MstPayrollHoliday existingPayrollHoliday : existingPayrollHolidays) {
  118.             payrollHolidayService.delete(existingPayrollHoliday.getId(), existingPayrollHoliday.getVersion(), MstPayrollHoliday.class);
  119.         }
  120.     }
  121. }
Advertisement
Add Comment
Please, Sign In to add comment