@RequestMapping(value = "/DeleteSubordinate", method = RequestMethod.POST) public ModelAndView deleteSubordinates( @RequestParam("delUserame") String userToBeDeletedUserName, HttpSession sessionID) throws SQLException { InternalUserDAO internalUserDAO = new InternalUserDAO(); InternalUser userToBeDeleted = internalUserDAO.findInternalUser(userToBeDeletedUserName); if (userToBeDeleted.getFirstDelete() == 1) { internalUserDAO.delete(userToBeDeleted); InternalUserTransactionDAO internalUserTransactionDAO = new InternalUserTransactionDAO(); // Added a transaction to the Internal User Transaction Table. String operation = "Deleted"; InternalUserTransaction newTransaction = new InternalUserTransaction( (String) sessionID.getAttribute("userName"), operation, userToBeDeleted.getFirstName(), userToBeDeleted.getLastName()); internalUserTransactionDAO.persist(newTransaction); // delete from ToDo Table also. ToDoDAO toDoDAO = new ToDoDAO(); toDoDAO.delete( toDoDAO.findAParticularToDo( (String) sessionID.getAttribute("userName"), userToBeDeleted.getUserName(), "Delete")); return new ModelAndView( "DeleteSubordinate", "message", "The Employee has been deleted from the Records"); } else { userToBeDeleted.setFirstDelete(1); internalUserDAO.persist(userToBeDeleted); // String manager = userToBeDeleted.getManager(); InternalUser loggedInUser = internalUserDAO.findInternalUser((String) sessionID.getAttribute("userName")); String manager = loggedInUser.getManager(); if (loggedInUser.getDesignation().equalsIgnoreCase("corporate")) { // corporrate people have authority to directly delete a employee internalUserDAO.delete(userToBeDeleted); // Added a transaction to the Internal User Transaction Table. InternalUserTransactionDAO internalUserTransactionDAO = new InternalUserTransactionDAO(); String operation = "Deleted"; InternalUserTransaction newTransaction = new InternalUserTransaction( (String) sessionID.getAttribute("userName"), operation, userToBeDeleted.getFirstName(), userToBeDeleted.getLastName()); internalUserTransactionDAO.persist(newTransaction); return new ModelAndView( "DeleteSubordinate", "message", "The Employee has been deleted from the Records"); } else { // Have to Finalize based on what Manager Name is given.Right Now its on First Name basis /*String firstName = manager.substring(0, manager.indexOf(" ")); String lastName = manager.substring(manager.indexOf(" "));*/ InternalUser userNameManager = internalUserDAO.findInternalUserByName(manager /*, lastName*/); String actioneer = userNameManager.getUserName(); ToDo newEntry = new ToDo( actioneer, userToBeDeletedUserName, 0, "Delete", "Requesting second Authorization for Deletion"); ToDoDAO toDoDAO = new ToDoDAO(); toDoDAO.persist(newEntry); return new ModelAndView( "DeleteSubordinate", "message", "Notification has been send to Manager for approval for deletion"); } } }