/** * Sends the notification when the exchange is deleted * * @author alexandru.dobre * @param projectId * @param projectDetailId * @param organizationId * @param messageCostKey * @param messageCostObjects * @param subjectCostKey * @param subjectCostObjects * @param setting */ public void sendNotificationExchangeDelete( Integer projectId, Integer projectDetailId, Integer organizationId, String messageKey, Object[] messageObjects, String subjectKey, Object[] subjectObjects, Byte setting) { logger.debug( "sendNotificationExchangeDelete - START, projectId = ".concat(String.valueOf(projectId))); Set<String> userIds = new HashSet<String>(); Map<String, Boolean> userIdsMap = new HashMap<String, Boolean>(); try { if (projectId != null) { // get the project identified by it's projectId Project project = BLProject.getInstance().getSimpleProject(projectId); logger.debug("project = " + project); Integer managerId = project.getManagerId(); logger.debug("managerId = " + managerId); // 1. I have to send a notification to the manager of the project userIds.add(String.valueOf(managerId)); userIdsMap.put(String.valueOf(managerId), true); } // 2. I have to send a notification to the users, that have the permission // TS_NotificationReceive Set<UserSimple> users = OMWebServiceClient.getInstance() .getPersonsFromRole( PermissionConstant.getTheInstance().getTS_NotificationReceive(), organizationId); logger.debug("users = " + users); if (users != null && users.size() > 0) { for (UserSimple user : users) { if (userIds.add(String.valueOf(user.getUserId()))) { userIdsMap.put(String.valueOf(user.getUserId()), false); } } } // send the notification Thread thread = new Thread( new NotificationThread( projectDetailId, userIdsMap, organizationId, messageKey, messageObjects, subjectKey, subjectObjects, setting, messageSource)); thread.start(); } catch (Exception e) { logger.error(e); } logger.debug("sendNotificationExchangeDelete - END"); }
@Override protected Map referenceData(HttpServletRequest request, Object command, Errors errors) { logger.debug("referenceData - START"); Map map = new HashMap(); ArrayList<String> errorMessages = new ArrayList<String>(); UserAuth userAuth = (UserAuth) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); try { // adding to model the results per page for search results map.put( IConstant.NOM_RESULTS_PER_PAGE, TSContext.getFromContext(IConstant.NOM_RESULTS_PER_PAGE)); } catch (Exception e) { logger.error("referenceData", e); errorMessages.add( messageSource.getMessage( GENERAL_ERROR, new Object[] {null, ControllerUtils.getInstance().getFormattedCurrentTime()}, RequestContextUtils.getLocale(request))); } try { // add the organization available currencies List<Currency> currencies = BLCurrency.getInstance().getByOrganizationId(userAuth.getOrganisationId()); if (currencies != null) { List<IntString> nomCurrencies = new ArrayList<IntString>(); for (Currency currency : currencies) { IntString entry = new IntString(); entry.setValue(currency.getCurrencyId()); entry.setLabel(currency.getName()); nomCurrencies.add(entry); } map.put(ORG_CURRENCIES, nomCurrencies); } } catch (BusinessException bexc) { logger.error(bexc.getMessage(), bexc); errorMessages.add( messageSource.getMessage( GET_ORG_CURRENCIES_ERROR, new Object[] { bexc.getCode(), ControllerUtils.getInstance().getFormattedCurrentTime() }, RequestContextUtils.getLocale(request))); } try { // adding the user's available project for search; // if the user has the USER_ALL role, all its organization's projects will be available List<Project> projects = null; if (userAuth.hasAuthority(PermissionConstant.getInstance().getTS_ExchangeSearchAll())) { projects = BLProject.getInstance().getAllProjects(userAuth.getOrganisationId(), true); } else { projects = BLProject.getInstance().getProjectsByManager(userAuth.getPersonId(), true, true); } map.put(USER_PROJECTS, projects); if (projects != null && projects.size() > 0) { map.put(IS_PM_FOR_AT_LEAST_ONE_PROJECT, new Boolean(true)); } else { map.put(IS_PM_FOR_AT_LEAST_ONE_PROJECT, new Boolean(false)); } } catch (BusinessException be) { logger.error(be.getMessage(), be); errorMessages.add( messageSource.getMessage( GET_USER_PROJECTS_ERROR, new Object[] {be.getCode(), ControllerUtils.getInstance().getFormattedCurrentTime()}, RequestContextUtils.getLocale(request))); } setErrors(request, errorMessages); logger.debug("referenceData - END"); return map; }