ronaldkwandy

Untitled

Sep 14th, 2018
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.90 KB | None | 0 0
  1. package id.co.sofcograha.gajiidapi.domain.hris.mst.workplace.services;
  2.  
  3. import id.co.sofcograha.gajiidapi.base.exceptions.BusinessException;
  4. import id.co.sofcograha.gajiidapi.base.extendables.FreeFormService;
  5. import id.co.sofcograha.gajiidapi.base.mst.user.entities.User;
  6. import id.co.sofcograha.gajiidapi.base.mst.user.services.UserService;
  7. import id.co.sofcograha.gajiidapi.domain.hris.mst.attendanceGroup.entities.AttendanceGroup;
  8. import id.co.sofcograha.gajiidapi.domain.hris.mst.attendanceGroup.services.AttendanceGroupService;
  9. import id.co.sofcograha.gajiidapi.domain.hris.mst.payrollGroup.entities.PayrollGroup;
  10. import id.co.sofcograha.gajiidapi.domain.hris.mst.payrollGroup.services.PayrollGroupService;
  11. import id.co.sofcograha.gajiidapi.domain.hris.mst.userAttendanceGroupAuthorization.entities.UserAttendanceGroupAuthorization;
  12. import id.co.sofcograha.gajiidapi.domain.hris.mst.userAttendanceGroupAuthorization.services.UserAttendanceGroupAuthorizationService;
  13. import id.co.sofcograha.gajiidapi.domain.hris.mst.userPayrollGroupAuthorization.entities.UserPayrollGroupAuthorization;
  14. import id.co.sofcograha.gajiidapi.domain.hris.mst.userPayrollGroupAuthorization.services.UserPayrollGroupAuthorizationService;
  15. import id.co.sofcograha.gajiidapi.domain.hris.mst.workplace.entities.Workplace;
  16. import id.co.sofcograha.gajiidapi.domain.hris.mst.workplace.entities.WorkplaceAuthorization;
  17.  
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import org.springframework.stereotype.Service;
  20. import org.springframework.transaction.annotation.Transactional;
  21.  
  22. @Service
  23. public class WorkplaceAuthorizationService extends FreeFormService {
  24.    
  25.     @Autowired private UserService userService;
  26.     @Autowired private WorkplaceService workplaceService;
  27.     @Autowired private PayrollGroupService payrollGroupService;
  28.     @Autowired private AttendanceGroupService attendanceGroupService;
  29.     @Autowired private UserPayrollGroupAuthorizationService userPayrollGroupAuthorizationService;
  30.     @Autowired private UserAttendanceGroupAuthorizationService userAttendanceGroupAuthorizationService;
  31.    
  32.     @Transactional
  33.     public WorkplaceAuthorization add(WorkplaceAuthorization entity) {
  34.        
  35.         valUserRequired(entity.getUser());
  36.         valRequiredDate(entity.getStartDate(), "workplaceAuthorization.startDate.required");
  37.         valRequiredBoolean(entity.isWorkplaceAsPayrollGroup(), "workplaceAuthorization.workplaceAsPayrollGroup.required");
  38.         valRequiredBoolean(entity.isWorkplaceAsPayrollGroup(), "workplaceAuthorization.workplaceAsAttendanceGroup.required");
  39.         valWorkplaceRequired(entity.getWorkplace());
  40.        
  41.         valUserEntityExists(entity.getUser().getId());
  42.         valWorkplaceEntityExist(entity.getWorkplace().getId());
  43.        
  44.         addWorkplaceAuthorization(entity);
  45.        
  46.         return entity;
  47.     }
  48.    
  49.     private void addWorkplaceAuthorization(WorkplaceAuthorization entity) {
  50.         if (entity.isWorkplaceAsPayrollGroup()) {
  51.             PayrollGroup payrollGroup = payrollGroupService.findByBk(entity.getWorkplace().getCode()).get();
  52.            
  53.             UserPayrollGroupAuthorization userPayrollGroupAuthorization = new UserPayrollGroupAuthorization();
  54.             userPayrollGroupAuthorization.setUser(entity.getUser());
  55.             userPayrollGroupAuthorization.setStartDate(entity.getStartDate());
  56.             userPayrollGroupAuthorization.setEndDate(null);
  57.             userPayrollGroupAuthorization.setPayrollGroup(payrollGroup);
  58.            
  59.             userPayrollGroupAuthorizationService.add(userPayrollGroupAuthorization);
  60.         }
  61.        
  62.         if (entity.isWorkplaceAsAttendanceGroup()) {
  63.             AttendanceGroup attendanceGroup = attendanceGroupService.findByBk(entity.getWorkplace().getCode()).get();
  64.            
  65.             UserAttendanceGroupAuthorization userAttendanceGroupAuthorization = new UserAttendanceGroupAuthorization();
  66.             userAttendanceGroupAuthorization.setUser(entity.getUser());
  67.             userAttendanceGroupAuthorization.setStartDate(entity.getStartDate());
  68.             userAttendanceGroupAuthorization.setEndDate(null);
  69.             userAttendanceGroupAuthorization.setAttendanceGroup(attendanceGroup);
  70.            
  71.             userAttendanceGroupAuthorizationService.add(userAttendanceGroupAuthorization);
  72.         }
  73.     }
  74.    
  75.     protected void valWorkplaceRequired(Workplace workplace) {
  76.         if (workplace == null) {
  77.             batchError("workplaceAuthorization.workplace.required");
  78.         }
  79.     }
  80.    
  81.     protected void valUserRequired(User user) {
  82.         if (user == null) {
  83.             batchError("workplaceAuthorization.user.required");
  84.         }
  85.     }
  86.    
  87.     protected void valIdVersionRequired(String id, Long version) {
  88.         if (id == null || version == null) {
  89.             throw new BusinessException("data.require.id.and.version");
  90.         }
  91.     }
  92.    
  93.     protected void valUserEntityExists(String id) {
  94.         if (!userService.exists(id)) {
  95.             throw new BusinessException("workplaceAuthorization.user.not.found", UserService.class.getSimpleName(), id);
  96.         }
  97.     }
  98.    
  99.     protected void valWorkplaceEntityExist(String id) {
  100.         if (!workplaceService.exists(id)) {
  101.             throw new BusinessException("workplaceAuthorization.workplace.not.found", WorkplaceService.class.getSimpleName(), id);
  102.         }
  103.     }
  104. }
Add Comment
Please, Sign In to add comment