Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package id.co.sofcograha.gajiidapi.domain.hris.mst.workplace.services;
- import id.co.sofcograha.gajiidapi.base.exceptions.BusinessException;
- import id.co.sofcograha.gajiidapi.base.extendables.FreeFormService;
- import id.co.sofcograha.gajiidapi.base.mst.user.entities.User;
- import id.co.sofcograha.gajiidapi.base.mst.user.services.UserService;
- import id.co.sofcograha.gajiidapi.domain.hris.mst.attendanceGroup.entities.AttendanceGroup;
- import id.co.sofcograha.gajiidapi.domain.hris.mst.attendanceGroup.services.AttendanceGroupService;
- import id.co.sofcograha.gajiidapi.domain.hris.mst.payrollGroup.entities.PayrollGroup;
- import id.co.sofcograha.gajiidapi.domain.hris.mst.payrollGroup.services.PayrollGroupService;
- import id.co.sofcograha.gajiidapi.domain.hris.mst.userAttendanceGroupAuthorization.entities.UserAttendanceGroupAuthorization;
- import id.co.sofcograha.gajiidapi.domain.hris.mst.userAttendanceGroupAuthorization.services.UserAttendanceGroupAuthorizationService;
- import id.co.sofcograha.gajiidapi.domain.hris.mst.userPayrollGroupAuthorization.entities.UserPayrollGroupAuthorization;
- import id.co.sofcograha.gajiidapi.domain.hris.mst.userPayrollGroupAuthorization.services.UserPayrollGroupAuthorizationService;
- import id.co.sofcograha.gajiidapi.domain.hris.mst.workplace.entities.Workplace;
- import id.co.sofcograha.gajiidapi.domain.hris.mst.workplace.entities.WorkplaceAuthorization;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- @Service
- public class WorkplaceAuthorizationService extends FreeFormService {
- @Autowired private UserService userService;
- @Autowired private WorkplaceService workplaceService;
- @Autowired private PayrollGroupService payrollGroupService;
- @Autowired private AttendanceGroupService attendanceGroupService;
- @Autowired private UserPayrollGroupAuthorizationService userPayrollGroupAuthorizationService;
- @Autowired private UserAttendanceGroupAuthorizationService userAttendanceGroupAuthorizationService;
- @Transactional
- public WorkplaceAuthorization add(WorkplaceAuthorization entity) {
- valUserRequired(entity.getUser());
- valRequiredDate(entity.getStartDate(), "workplaceAuthorization.startDate.required");
- valRequiredBoolean(entity.isWorkplaceAsPayrollGroup(), "workplaceAuthorization.workplaceAsPayrollGroup.required");
- valRequiredBoolean(entity.isWorkplaceAsPayrollGroup(), "workplaceAuthorization.workplaceAsAttendanceGroup.required");
- valWorkplaceRequired(entity.getWorkplace());
- valUserEntityExists(entity.getUser().getId());
- valWorkplaceEntityExist(entity.getWorkplace().getId());
- addWorkplaceAuthorization(entity);
- return entity;
- }
- private void addWorkplaceAuthorization(WorkplaceAuthorization entity) {
- if (entity.isWorkplaceAsPayrollGroup()) {
- PayrollGroup payrollGroup = payrollGroupService.findByBk(entity.getWorkplace().getCode()).get();
- UserPayrollGroupAuthorization userPayrollGroupAuthorization = new UserPayrollGroupAuthorization();
- userPayrollGroupAuthorization.setUser(entity.getUser());
- userPayrollGroupAuthorization.setStartDate(entity.getStartDate());
- userPayrollGroupAuthorization.setEndDate(null);
- userPayrollGroupAuthorization.setPayrollGroup(payrollGroup);
- userPayrollGroupAuthorizationService.add(userPayrollGroupAuthorization);
- }
- if (entity.isWorkplaceAsAttendanceGroup()) {
- AttendanceGroup attendanceGroup = attendanceGroupService.findByBk(entity.getWorkplace().getCode()).get();
- UserAttendanceGroupAuthorization userAttendanceGroupAuthorization = new UserAttendanceGroupAuthorization();
- userAttendanceGroupAuthorization.setUser(entity.getUser());
- userAttendanceGroupAuthorization.setStartDate(entity.getStartDate());
- userAttendanceGroupAuthorization.setEndDate(null);
- userAttendanceGroupAuthorization.setAttendanceGroup(attendanceGroup);
- userAttendanceGroupAuthorizationService.add(userAttendanceGroupAuthorization);
- }
- }
- protected void valWorkplaceRequired(Workplace workplace) {
- if (workplace == null) {
- batchError("workplaceAuthorization.workplace.required");
- }
- }
- protected void valUserRequired(User user) {
- if (user == null) {
- batchError("workplaceAuthorization.user.required");
- }
- }
- protected void valIdVersionRequired(String id, Long version) {
- if (id == null || version == null) {
- throw new BusinessException("data.require.id.and.version");
- }
- }
- protected void valUserEntityExists(String id) {
- if (!userService.exists(id)) {
- throw new BusinessException("workplaceAuthorization.user.not.found", UserService.class.getSimpleName(), id);
- }
- }
- protected void valWorkplaceEntityExist(String id) {
- if (!workplaceService.exists(id)) {
- throw new BusinessException("workplaceAuthorization.workplace.not.found", WorkplaceService.class.getSimpleName(), id);
- }
- }
- }
Add Comment
Please, Sign In to add comment