com.inkubator.hrm.web.HomeController.java Source code

Java tutorial

Introduction

Here is the source code for com.inkubator.hrm.web.HomeController.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.inkubator.hrm.web;

import java.util.Calendar;
import java.util.Date;

import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.ViewScoped;
import javax.servlet.http.HttpServletRequest;

import org.apache.commons.lang3.time.DateUtils;

import com.inkubator.hrm.HRMConstant;
import com.inkubator.hrm.entity.AnnouncementLog;
import com.inkubator.hrm.entity.HrmUser;
import com.inkubator.hrm.entity.RiwayatAkses;
import com.inkubator.hrm.service.AnnouncementLogService;
import com.inkubator.hrm.service.HrmUserService;
import com.inkubator.hrm.service.RiwayatAksesService;
import com.inkubator.hrm.util.HrmUserInfoUtil;
import com.inkubator.hrm.util.StringUtils;
import com.inkubator.securitycore.util.UserInfoUtil;
import com.inkubator.webcore.controller.BaseController;
import com.inkubator.webcore.util.FacesUtil;
import com.inkubator.webcore.util.MessagesResourceUtil;

/**
 *
 * @author Deni Husni FR
 */
@ManagedBean(name = "homeController")
@ViewScoped
public class HomeController extends BaseController {

    @ManagedProperty(value = "#{riwayatAksesService}")
    private RiwayatAksesService riwayatAksesService;
    @ManagedProperty(value = "#{hrmUserService}")
    private HrmUserService hrmUserService;
    @ManagedProperty(value = "#{announcementLogService}")
    private AnnouncementLogService announcementLogService;
    private AnnouncementLog announcementLog;
    private Boolean isRenderAnnouncement;
    private String roleUser;

    @PostConstruct
    @Override
    public void initialization() {
        super.initialization();
        //        Collection<SimpleGrantedAuthority> authorities = (Collection<SimpleGrantedAuthority>)    SecurityContextHolder.getContext().getAuthentication().getAuthorities();
        //        String role = authorities.toString();
        //        role = role.replace("[", "");
        //        role = role.replace("]", "");
        roleUser = HrmUserInfoUtil.getRolesString();
        roleUser = StringUtils.substringBefore(roleUser, ",");
        /**
         * saving process of User Access History
         */
        StringBuffer urlPath = FacesUtil.getRequest().getRequestURL();
        RiwayatAkses akses = new RiwayatAkses();
        akses.setDateAccess(new Date());
        akses.setPathUrl(urlPath.toString());
        akses.setUserId(UserInfoUtil.getUserName());
        akses.setContextPath(FacesUtil.getRequest().getContextPath());
        //        if (!FacesContext.getCurrentInstance().isPostback()) {
        //            RequestContext.getCurrentInstance().execute("bar.show()");
        //        }

        try {
            riwayatAksesService.doSaveAccess(akses);
        } catch (Exception ex) {
            LOGGER.error("Error when saving User Access History", ex);
        }

        /**
         * do checking announcement web view
         */
        try {
            Long empDataId = HrmUserInfoUtil.getEmpId();
            Date planExecutionDate = DateUtils.truncate(new Date(), Calendar.DAY_OF_MONTH);
            announcementLog = announcementLogService.getEntityWebView(empDataId, planExecutionDate);
            isRenderAnnouncement = announcementLog != null;
        } catch (Exception ex) {
            LOGGER.error(ex, ex);
        }
    }

    public String doCheckInOut() {
        try {
            Boolean isValid = HrmUserInfoUtil.isValidRemoteAddress();
            LOGGER.info("Begin redirecting");
            LOGGER.info("Kondisi" + isValid);
            HrmUser hrmUser = hrmUserService.getByUserId(HrmUserInfoUtil.getUserName());
            if (hrmUser.getEmpData() != null && isValid) {
                LOGGER.info("redirec ok");
                return "/protected/check_in_out.htm?faces-redirect=true";
            } else {
                MessagesResourceUtil.setMessages(FacesMessage.SEVERITY_INFO, "global.error",
                        "ceckinout.error_employee",
                        FacesUtil.getSessionAttribute(HRMConstant.BAHASA_ACTIVE).toString());

            }
        } catch (Exception ex) {
            LOGGER.error(ex, ex);
        }
        return null;
    }

    public void doAnnouncementExecute() {
        System.out.println(" Eksekusisisi ");
        try {
            announcementLogService.execute(announcementLog);
            announcementLog = announcementLogService.getEntityWebView(announcementLog.getEmpData().getId(),
                    announcementLog.getPlanExecutionDate());
            isRenderAnnouncement = announcementLog != null;
        } catch (Exception ex) {
            LOGGER.error(ex, ex);
        }
    }

    public String doChangeLanguageSession() {
        try {
            String languange = FacesUtil.getRequestParameter("languange");
            FacesUtil.setSessionAttribute(HRMConstant.BAHASA_ACTIVE, languange);
            FacesUtil.getExternalContext()
                    .redirect(((HttpServletRequest) FacesUtil.getRequest()).getHeader("Referer"));
        } catch (Exception ex) {
            LOGGER.error(ex, ex);
        }

        return null;
    }

    public void setRiwayatAksesService(RiwayatAksesService riwayatAksesService) {
        this.riwayatAksesService = riwayatAksesService;
    }

    public void setHrmUserService(HrmUserService hrmUserService) {
        this.hrmUserService = hrmUserService;
    }

    public AnnouncementLogService getAnnouncementLogService() {
        return announcementLogService;
    }

    public void setAnnouncementLogService(AnnouncementLogService announcementLogService) {
        this.announcementLogService = announcementLogService;
    }

    public AnnouncementLog getAnnouncementLog() {
        return announcementLog;
    }

    public void setAnnouncementLog(AnnouncementLog announcementLog) {
        this.announcementLog = announcementLog;
    }

    public Boolean getIsRenderAnnouncement() {
        return isRenderAnnouncement;
    }

    public void setIsRenderAnnouncement(Boolean isRenderAnnouncement) {
        this.isRenderAnnouncement = isRenderAnnouncement;
    }

    public RiwayatAksesService getRiwayatAksesService() {
        return riwayatAksesService;
    }

    public HrmUserService getHrmUserService() {
        return hrmUserService;
    }

    public String getRoleUser() {
        return roleUser;
    }

    public void setRoleUser(String roleUser) {
        this.roleUser = roleUser;
    }

}