ronaldkwandy

Untitled

Sep 19th, 2018
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 10.56 KB | None | 0 0
  1. package id.co.sofcograha.gajiidapi.domain.hris.mst.payrollGroup.services;
  2.  
  3. import id.co.sofcograha.gajiidapi.base.extendables.FreeFormService;
  4. import id.co.sofcograha.gajiidapi.base.mst.company.entities.Company;
  5. import id.co.sofcograha.gajiidapi.base.mst.company.services.CompanyService;
  6. import id.co.sofcograha.gajiidapi.base.mst.user.entities.User;
  7. import id.co.sofcograha.gajiidapi.base.mst.user.services.UserLoginService;
  8. import id.co.sofcograha.gajiidapi.base.mst.user.services.UserService;
  9. import id.co.sofcograha.gajiidapi.base.mst.usercompany.entities.UserCompany;
  10. import id.co.sofcograha.gajiidapi.base.mst.usercompany.services.UserCompanyLoginService;
  11. import id.co.sofcograha.gajiidapi.base.mst.usercompany.services.UserCompanyService;
  12. import id.co.sofcograha.gajiidapi.base.utils.VersionUtil;
  13. import id.co.sofcograha.gajiidapi.domain.hris.mst.payrollGroup.entities.PayrollGroup;
  14. import id.co.sofcograha.gajiidapi.domain.hris.mst.userPayrollGroupAuthorization.entities.UserPayrollGroupAuthorization;
  15. import id.co.sofcograha.gajiidapi.domain.hris.mst.userPayrollGroupAuthorization.services.UserPayrollGroupAuthorizationService;
  16.  
  17. import java.util.Date;
  18. import java.util.List;
  19.  
  20. import org.springframework.beans.factory.annotation.Autowired;
  21. import org.springframework.stereotype.Service;
  22. import org.springframework.transaction.annotation.Transactional;
  23.  
  24. @Service
  25. public class PayrollGroupAuthorizationService extends FreeFormService {
  26.  
  27.     @Autowired private CompanyService companyService;
  28.     @Autowired private UserCompanyLoginService userCompanyLoginService;
  29.     @Autowired private PayrollGroupService payrollGroupService;
  30.     @Autowired private UserLoginService userLoginService;
  31.     @Autowired private UserService userService;
  32.     @Autowired private UserCompanyService userCompanyService;
  33.     @Autowired private UserPayrollGroupAuthorizationService userPayrollGroupAuthorizationService;
  34.    
  35. //  @Transactional
  36. //  public PayrollGroup add(User user, Date startDate, PayrollGroup payrollGroup, Company company) {
  37. //      valUserRequired(user);
  38. //      valRequiredDate(startDate, "userPayrollGroupAuthorization.startDate.required");
  39. //      valPayrollGroupRequired(payrollGroup);
  40. //      valCompanyRequired(company);
  41. //      throwBatchError();
  42. //     
  43. //      valCompanyIdVersionRequired(company.getId(), company.getVersion());
  44. //      throwBatchError();
  45. //     
  46. //      valCompanyEntityExists(company.getId());
  47. //      throwBatchError();
  48. //     
  49. //      valCompanyEntityActive(company.getId());
  50. //      throwBatchError();
  51. //     
  52. //      valCompanyVersion(company.getId(), company.getVersion());
  53. //      throwBatchError();
  54. //     
  55. //      addUserPayrollGroupAuthorization(user, startDate, payrollGroup, company);
  56. //      return payrollGroup;
  57. //  }
  58.    
  59.     @Transactional
  60.     public UserPayrollGroupAuthorization add(UserPayrollGroupAuthorization userPayrollGroupAuthorization) {
  61.         UserCompany userCompany = userCompanyLoginService.getCurrentUserCompany();
  62.  
  63.         valRequiredUserPayrollGroupAuthorization(userPayrollGroupAuthorization);
  64.         valCompanyRequired(userCompany.getCompany());
  65.         throwBatchError();
  66.        
  67.         valRequiredDate(userPayrollGroupAuthorization.getStartDate(), "userPayrollGroupAuthorization.endDate.required");
  68.         throwBatchError();
  69.        
  70.         valCompanyEntityExists(userCompany.getCompany().getId());
  71.         throwBatchError();
  72.        
  73.         userPayrollGroupAuthorization = addUserPayrollGroupAuthorization(userPayrollGroupAuthorization, userCompany.getCompany());
  74.         return userPayrollGroupAuthorization;
  75.     }
  76.    
  77.     @Transactional
  78.     public void delete(User user, Date startDate, Date endDate, PayrollGroup payrollGroup, Company company) {
  79.         valUserRequired(user);
  80.         valRequiredDate(startDate, "userPayrollGroupAuthorization.startDate.required");
  81.         valRequiredDate(endDate, "userPayrollGroupAuthorization.endDate.required");
  82.         valPayrollGroupRequired(payrollGroup);
  83.         valCompanyRequired(company);
  84.         throwBatchError();
  85.        
  86.         valUserIdVersionRequired(user.getId(), user.getVersion());
  87.         valPayrollIdVersionRequired(payrollGroup.getId(), payrollGroup.getVersion());
  88.         valCompanyIdVersionRequired(company.getId(), company.getVersion());
  89.         throwBatchError();
  90.        
  91.         valUserEntityExists(user.getId());
  92.         valPayrollGroupEntityExists(payrollGroup.getId());
  93.         valCompanyEntityExists(company.getId());
  94.         throwBatchError();
  95.        
  96.         valCompanyEntityActive(company.getId());
  97.         throwBatchError();
  98.        
  99.         valCompanyVersion(company.getId(), company.getVersion());
  100.         throwBatchError();
  101.        
  102.         deleteUserPayrollGroupAuthorization(user, startDate, endDate, payrollGroup, company);
  103.     }
  104.    
  105.     private UserPayrollGroupAuthorization addUserPayrollGroupAuthorization(UserPayrollGroupAuthorization userPayrollGroupAuthorization, Company company) {
  106.         userPayrollGroupAuthorization = userPayrollGroupAuthorizationService.add(userPayrollGroupAuthorization);
  107.         addSuperUserPayrollGroupAuthorization(userPayrollGroupAuthorization, company);
  108.         return userPayrollGroupAuthorization;
  109.     }
  110.    
  111.     private void addSuperUserPayrollGroupAuthorization(UserPayrollGroupAuthorization userPayrollGroupAuthorization, Company company) {
  112.         Boolean isSuperUser = true;
  113.         List<UserCompany> userCompanies = userCompanyService.getSuperUserByCompany(company, isSuperUser).orElse(null);
  114.         if (userCompanies != null) {
  115.             for (UserCompany userCompany: userCompanies) {
  116.                 UserPayrollGroupAuthorization existUserPayrollGroupAuthorization = userPayrollGroupAuthorizationService.findByBk(userCompany.getUser(), userPayrollGroupAuthorization.getStartDate(), userPayrollGroupAuthorization.getPayrollGroup()).orElse(null);
  117.                 if (existUserPayrollGroupAuthorization == null) {
  118.                     UserPayrollGroupAuthorization superUserPayrollGroupAuthorization = new UserPayrollGroupAuthorization();
  119.                     superUserPayrollGroupAuthorization.setUser(userCompany.getUser());
  120.                     superUserPayrollGroupAuthorization.setStartDate(userPayrollGroupAuthorization.getStartDate());
  121.                     superUserPayrollGroupAuthorization.setEndDate(null);
  122.                     superUserPayrollGroupAuthorization.setPayrollGroup(userPayrollGroupAuthorization.getPayrollGroup());
  123.                    
  124.                     userPayrollGroupAuthorizationService.add(superUserPayrollGroupAuthorization);  
  125.                 }
  126.             }
  127.         }
  128.     }
  129.    
  130. //  private void addUserPayrollGroupAuthorization(User user, Date startDate, PayrollGroup payrollGroup, Company company) {
  131. //      UserPayrollGroupAuthorization userPayrollGroupAuthorization = new UserPayrollGroupAuthorization();
  132. //      userPayrollGroupAuthorization.setUser(user);
  133. //      userPayrollGroupAuthorization.setStartDate(startDate);
  134. //      userPayrollGroupAuthorization.setEndDate(null);
  135. //      userPayrollGroupAuthorization.setPayrollGroup(payrollGroup);
  136. //      userPayrollGroupAuthorizationService.add(userPayrollGroupAuthorization);
  137. //     
  138. //      addSuperUserPayrollGroupAuthorization(user, startDate, payrollGroup, company);
  139. //  }
  140.    
  141. //  private void addSuperUserPayrollGroupAuthorization(User user, Date startDate, PayrollGroup payrollGroup, Company company) {
  142. //      Boolean isSuperUser = true;
  143. //      List<UserCompany> userCompanies = userCompanyService.getSuperUserByCompany(company, isSuperUser).orElse(null);
  144. //      if (userCompanies != null) {
  145. //          for (UserCompany userCompany: userCompanies) {
  146. //              UserPayrollGroupAuthorization existUserPayrollGroupAuthorization = userPayrollGroupAuthorizationService.findByBk(userCompany.getUser(), startDate, payrollGroup).orElse(null);
  147. //              if (existUserPayrollGroupAuthorization == null) {
  148. //                  UserPayrollGroupAuthorization userPayrollGroupAuthorization = new UserPayrollGroupAuthorization();
  149. //                  userPayrollGroupAuthorization.setUser(userCompany.getUser());
  150. //                  userPayrollGroupAuthorization.setStartDate(startDate);
  151. //                  userPayrollGroupAuthorization.setEndDate(null);
  152. //                  userPayrollGroupAuthorization.setPayrollGroup(payrollGroup);
  153. //                 
  154. //                  userPayrollGroupAuthorizationService.add(userPayrollGroupAuthorization);   
  155. //              }
  156. //          }
  157. //      }
  158. //  }
  159.    
  160.     private void deleteUserPayrollGroupAuthorization(User user, Date startDate, Date endDate, PayrollGroup payrollGroup, Company company) {
  161.         User currentUser = userLoginService.getUserInfo();
  162.         UserCompany userCompany = userCompanyService.findByBk(user, company).orElse(null);
  163.         UserPayrollGroupAuthorization entity = userPayrollGroupAuthorizationService.findByBk(user, startDate, payrollGroup).orElse(null);
  164.         entity.setEndDate(endDate);
  165.        
  166.         if (userCompany.isSuperUser() == true) {
  167.             if (userCompany.getUser().getId() == currentUser.getId()) {
  168.                 userPayrollGroupAuthorizationService.edit(entity);
  169.             } else {
  170.                 error("userPayrollGroupAuthorization.not.delete.superuser");
  171.             }
  172.         } else {
  173.             userPayrollGroupAuthorizationService.edit(entity);
  174.         }
  175.     }
  176.    
  177.     private void valRequiredUserPayrollGroupAuthorization(UserPayrollGroupAuthorization userPayrollGroupAuthorization) {
  178.         if (userPayrollGroupAuthorization == null) {
  179.             batchError("userPayrollGroupAuthorization.required");
  180.         }
  181.     }
  182.    
  183.     private void valUserRequired(User user) {
  184.         if (user == null) {
  185.             batchError("userPayrollGroupAuthorization.user.required");
  186.         }
  187.     }
  188.    
  189.     private void valUserIdVersionRequired(String id, Long version) {
  190.         if (id == null || version == null) {
  191.             batchError("userPayrollGroupAuthorization.user.required");
  192.         }
  193.     }
  194.    
  195.     private void valUserEntityExists(String id) {
  196.         if (!userService.exists(id)) {
  197.             batchError("userPayrollGroupAuthorization.user.not.found");
  198.         }
  199.     }
  200.    
  201.     private void valPayrollGroupRequired(PayrollGroup payrollGroup) {
  202.         if (payrollGroup == null) {
  203.             batchError("userPayrollGroupAuthorization.payrollGroup.required");
  204.         }
  205.     }
  206.    
  207.     private void valPayrollIdVersionRequired(String id, Long version) {
  208.         if (id == null || version == null) {
  209.             batchError("userPayrollGroupAuthorization.payrollGroup.required");
  210.         }
  211.     }
  212.    
  213.     private void valPayrollGroupEntityExists(String id) {
  214.         if (!payrollGroupService.exists(id)) {
  215.             batchError("userPayrollGroupAuthorization.payrollGroup.not.found");
  216.         }
  217.     }
  218.    
  219.     private void valCompanyRequired(Company company) {
  220.         if (company == null) {
  221.             batchError("userPayrollGroupAuthorization.company.required");
  222.         }
  223.     }
  224.  
  225.     private void valCompanyEntityExists(String id) {
  226.         if (!companyService.exists(id)) {
  227.             batchError("userCompany.company.not.found");
  228.         }
  229.     }
  230.    
  231.     private void valCompanyEntityActive(String id) {
  232.         Company entity = companyService.find(id).get();
  233.         if (entity.getActive() == false) {
  234.             batchError("userCompany.company.not.active");
  235.         }
  236.     }
  237.    
  238.     private void valCompanyIdVersionRequired(String id, Long version) {
  239.         if (id == null || version == null) {
  240.             batchError("userCompany.company.required");
  241.         }
  242.     }
  243.    
  244.     private void valCompanyVersion(String id, Long version) {
  245.         valCompanyEntityExists(id);
  246.         Company dbEntity = companyService.get(id);
  247.         VersionUtil.check(version, dbEntity.getVersion());
  248.     }
  249. }
Advertisement
Add Comment
Please, Sign In to add comment