package module.mission.presentationTier.action; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import module.mission.domain.AccountabilityTypeQueue; import module.mission.domain.DailyPersonelExpenseCategory; import module.mission.domain.DailyPersonelExpenseTable; import module.mission.domain.MissionAuthorizationAccountabilityType; import module.mission.domain.MissionSystem; import module.mission.domain.util.AccountabilityTypeQueueBean; import module.mission.domain.util.DailyPersonelExpenseCategoryBean; import module.mission.domain.util.DailyPersonelExpenseTableBean; import module.mission.domain.util.MissionAuthorizationAccountabilityTypeBean; import module.organization.domain.OrganizationalModel; import module.organization.presentationTier.actions.OrganizationModelAction; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.fenixedu.bennu.core.domain.User; import org.fenixedu.bennu.struts.annotations.Mapping; import org.fenixedu.bennu.struts.portal.EntryPoint; import org.fenixedu.bennu.struts.portal.StrutsFunctionality; import pt.ist.expenditureTrackingSystem.domain.dto.SupplierBean; import pt.ist.expenditureTrackingSystem.domain.organization.Supplier; import pt.ist.expenditureTrackingSystem.presentationTier.actions.BaseAction; @StrutsFunctionality(app = MissionProcessAction.class, path = "missionConfiguration", titleKey = "link.sideBar.missionConfiguration") @Mapping(path = "/configureMissions") public class MissionsConfigurationAction extends BaseAction { @Override public ActionForward execute(final ActionMapping mapping, final ActionForm form, final HttpServletRequest request, final HttpServletResponse response) throws Exception { final ActionForward forward = super.execute(mapping, form, request, response); // OrganizationModelAction.addHeadToLayoutContext(request); return forward; } @EntryPoint public ActionForward prepare(final ActionMapping mapping, final ActionForm form, final HttpServletRequest request, final HttpServletResponse response) { final MissionSystem missionSystem = MissionSystem.getInstance(); request.setAttribute("missionSystem", missionSystem); request.setAttribute("supplierBean", new SupplierBean()); return forward("/mission/configureMissions.jsp"); } public ActionForward prepareSelectOrganizationalModel(final ActionMapping mapping, final ActionForm form, final HttpServletRequest request, final HttpServletResponse response) { OrganizationModelAction.viewModels(request); return forward("/mission/selectOrganizationalModel.jsp"); } public ActionForward selectCountry(final ActionMapping mapping, final ActionForm form, final HttpServletRequest request, final HttpServletResponse response) { final MissionSystem missionSystem = MissionSystem.getInstance(); request.setAttribute("missionSystem", missionSystem); return forward("/mission/selectCountry.jsp"); } public ActionForward selectOrganizationalModel(final ActionMapping mapping, final ActionForm form, final HttpServletRequest request, final HttpServletResponse response) { final MissionSystem missionSystem = MissionSystem.getInstance(); final OrganizationalModel organizationalModel = getDomainObject(request, "organizationalModelOid"); missionSystem.setOrganizationalModel(organizationalModel); return prepare(mapping, form, request, response); } public ActionForward prepareAddMissionAuthorizationAccountabilityType(final ActionMapping mapping, final ActionForm form, final HttpServletRequest request, final HttpServletResponse response) { MissionAuthorizationAccountabilityTypeBean missionAuthorizationAccountabilityTypeBean = getRenderedObject(); if (missionAuthorizationAccountabilityTypeBean == null) { missionAuthorizationAccountabilityTypeBean = new MissionAuthorizationAccountabilityTypeBean(); } request.setAttribute("missionAuthorizationAccountabilityTypeBean", missionAuthorizationAccountabilityTypeBean); return forward("/mission/addMissionAuthorizationAccountabilityType.jsp"); } public ActionForward addMissionAuthorizationAccountabilityType(final ActionMapping mapping, final ActionForm form, final HttpServletRequest request, final HttpServletResponse response) { MissionAuthorizationAccountabilityTypeBean missionAuthorizationAccountabilityTypeBean = getRenderedObject(); missionAuthorizationAccountabilityTypeBean.createMissionAuthorizationAccountabilityType(); return prepare(mapping, form, request, response); } public ActionForward deleteMissionAuthorizationAccountabilityType(final ActionMapping mapping, final ActionForm form, final HttpServletRequest request, final HttpServletResponse response) { final MissionAuthorizationAccountabilityType missionAuthorizationAccountabilityType = getDomainObject(request, "missionAuthorizationAccountabilityTypeOid"); missionAuthorizationAccountabilityType.delete(); return prepare(mapping, form, request, response); } public ActionForward prepareCreateDailyPersonelExpenseTable(final ActionMapping mapping, final ActionForm form, final HttpServletRequest request, final HttpServletResponse response) { final DailyPersonelExpenseTableBean dailyPersonelExpenseTableBean = new DailyPersonelExpenseTableBean(); request.setAttribute("dailyPersonelExpenseTableBean", dailyPersonelExpenseTableBean); return forward("/mission/createDailyPersonelExpenseTable.jsp"); } public ActionForward createDailyPersonelExpenseTable(final ActionMapping mapping, final ActionForm form, final HttpServletRequest request, final HttpServletResponse response) { final DailyPersonelExpenseTableBean dailyPersonelExpenseTableBean = getRenderedObject(); final DailyPersonelExpenseTable dailyPersonelExpenseTable = dailyPersonelExpenseTableBean.createDailyPersonelExpenseTable(); return viewDailyPersonelExpenseTable(request, dailyPersonelExpenseTable); } public ActionForward viewDailyPersonelExpenseTable(final ActionMapping mapping, final ActionForm form, final HttpServletRequest request, final HttpServletResponse response) { final DailyPersonelExpenseTable dailyPersonelExpenseTable = getDomainObject(request, "dailyPersonelExpenseTableOid"); return viewDailyPersonelExpenseTable(request, dailyPersonelExpenseTable); } public ActionForward viewDailyPersonelExpenseTable(final HttpServletRequest request, final DailyPersonelExpenseTable dailyPersonelExpenseTable) { request.setAttribute("dailyPersonelExpenseTable", dailyPersonelExpenseTable); return forward("/mission/viewDailyPersonelExpenseTable.jsp"); } public ActionForward editDailyPersonelExpenseTable(final ActionMapping mapping, final ActionForm form, final HttpServletRequest request, final HttpServletResponse response) { final DailyPersonelExpenseTable dailyPersonelExpenseTable = getDomainObject(request, "dailyPersonelExpenseTableOid"); return editDailyPersonelExpenseTable(request, dailyPersonelExpenseTable); } private ActionForward editDailyPersonelExpenseTable(HttpServletRequest request, DailyPersonelExpenseTable dailyPersonelExpenseTable) { request.setAttribute("dailyPersonelExpenseTable", dailyPersonelExpenseTable); return forward("/mission/editDailyPersonelExpenseTable.jsp"); } public ActionForward deleteDailyPersonelExpenseTable(final ActionMapping mapping, final ActionForm form, final HttpServletRequest request, final HttpServletResponse response) { final DailyPersonelExpenseTable dailyPersonelExpenseTable = getDomainObject(request, "dailyPersonelExpenseTableOid"); dailyPersonelExpenseTable.delete(); return prepare(mapping, form, request, response); } public ActionForward prepareCreateDailyPersonelExpenseCategory(final ActionMapping mapping, final ActionForm form, final HttpServletRequest request, final HttpServletResponse response) { final DailyPersonelExpenseTable dailyPersonelExpenseTable = getDomainObject(request, "dailyPersonelExpenseTableOid"); final DailyPersonelExpenseCategoryBean dailyPersonelExpenseCategoryBean = new DailyPersonelExpenseCategoryBean(dailyPersonelExpenseTable); request.setAttribute("dailyPersonelExpenseCategoryBean", dailyPersonelExpenseCategoryBean); return forward("/mission/createDailyPersonelExpenseCategory.jsp"); } public ActionForward createDailyPersonelExpenseCategory(final ActionMapping mapping, final ActionForm form, final HttpServletRequest request, final HttpServletResponse response) { final DailyPersonelExpenseCategoryBean dailyPersonelExpenseCategoryBean = getRenderedObject(); final DailyPersonelExpenseTable dailyPersonelExpenseTable = getDomainObject(request, "dailyPersonelExpenseTableOid"); dailyPersonelExpenseCategoryBean.setDailyPersonelExpenseTable(dailyPersonelExpenseTable); dailyPersonelExpenseCategoryBean.createDailyPersonelExpenseCategory(); return viewDailyPersonelExpenseTable(request, dailyPersonelExpenseCategoryBean.getDailyPersonelExpenseTable()); } public ActionForward editDailyPersonelExpenseCategory(final ActionMapping mapping, final ActionForm form, final HttpServletRequest request, final HttpServletResponse response) { final DailyPersonelExpenseCategory dailyPersonelExpenseCategory = getDomainObject(request, "dailyPersonelExpenseCategoryOid"); request.setAttribute("dailyPersonelExpenseCategory", dailyPersonelExpenseCategory); return forward("/mission/editDailyPersonelExpenseCategory.jsp"); } public ActionForward deleteDailyPersonelExpenseCategory(final ActionMapping mapping, final ActionForm form, final HttpServletRequest request, final HttpServletResponse response) { final DailyPersonelExpenseCategory dailyPersonelExpenseCategory = getDomainObject(request, "dailyPersonelExpenseCategoryOid"); final DailyPersonelExpenseTable dailyPersonelExpenseTable = dailyPersonelExpenseCategory.getDailyPersonelExpenseTable(); dailyPersonelExpenseCategory.delete(); return viewDailyPersonelExpenseTable(request, dailyPersonelExpenseTable); } public ActionForward prepareAddQueueForAccountabilityType(final ActionMapping mapping, final ActionForm form, final HttpServletRequest request, final HttpServletResponse response) { AccountabilityTypeQueueBean accountabilityTypeQueueBean = getRenderedObject(); if (accountabilityTypeQueueBean == null) { accountabilityTypeQueueBean = new AccountabilityTypeQueueBean(); } request.setAttribute("accountabilityTypeQueueBean", accountabilityTypeQueueBean); return forward("/mission/createAccountabilityTypeQueue.jsp"); } public ActionForward addQueueForAccountabilityType(final ActionMapping mapping, final ActionForm form, final HttpServletRequest request, final HttpServletResponse response) { final AccountabilityTypeQueueBean accountabilityTypeQueueBean = getRenderedObject(); accountabilityTypeQueueBean.create(); return prepare(mapping, form, request, response); } public ActionForward deleteAccountabilityTypeQueue(final ActionMapping mapping, final ActionForm form, final HttpServletRequest request, final HttpServletResponse response) { final AccountabilityTypeQueue accountabilityTypeQueue = getDomainObject(request, "accountabilityTypeQueue"); accountabilityTypeQueue.delete(); return prepare(mapping, form, request, response); } public ActionForward prepareAddUserWhoCanCancelMissions(final ActionMapping mapping, final ActionForm form, final HttpServletRequest request, final HttpServletResponse response) { return forward("/mission/addUserWhoCanCancelMissions.jsp"); } public ActionForward addUserWhoCanCancelMissions(final ActionMapping mapping, final ActionForm form, final HttpServletRequest request, final HttpServletResponse response) { final String username = getAttribute(request, "username"); final User user = User.findByUsername(username); if (user != null) { MissionSystem.getInstance().addUsersWhoCanCancelMission(user); } return prepare(mapping, form, request, response); } public ActionForward removeUserWhoCanCancelMissions(final ActionMapping mapping, final ActionForm form, final HttpServletRequest request, final HttpServletResponse response) { final User user = getDomainObject(request, "userOid"); MissionSystem.getInstance().removeUsersWhoCanCancelMission(user); return prepare(mapping, form, request, response); } public ActionForward togleAllowGrantOwnerMissionProcessNature(final ActionMapping mapping, final ActionForm form, final HttpServletRequest request, final HttpServletResponse response) { final MissionSystem missionSystem = MissionSystem.getInstance(); missionSystem.toggleAllowGrantOwnerEquivalence(); return prepare(mapping, form, request, response); } public ActionForward togleUseWorkingPlaceAuthorizationChain(final ActionMapping mapping, final ActionForm form, final HttpServletRequest request, final HttpServletResponse response) { final MissionSystem missionSystem = MissionSystem.getInstance(); missionSystem.togleUseWorkingPlaceAuthorizationChain(); return prepare(mapping, form, request, response); } public ActionForward prepareAddVehicleAuthorizer(final ActionMapping mapping, final ActionForm form, final HttpServletRequest request, final HttpServletResponse response) { return forward("/mission/addVehicleAuthorizer.jsp"); } public ActionForward addVehicleAuthorizer(final ActionMapping mapping, final ActionForm form, final HttpServletRequest request, final HttpServletResponse response) { final String username = getAttribute(request, "username"); final User user = User.findByUsername(username); if (user != null) { MissionSystem.getInstance().addVehicleAuthorizers(user); } return prepare(mapping, form, request, response); } public ActionForward removeVehicleAuthorizer(final ActionMapping mapping, final ActionForm form, final HttpServletRequest request, final HttpServletResponse response) { final User user = getDomainObject(request, "userOid"); MissionSystem.getInstance().removeVehicleAuthorizers(user); return prepare(mapping, form, request, response); } public ActionForward addMandatorySupplier(final ActionMapping mapping, final ActionForm form, final HttpServletRequest request, final HttpServletResponse response) { final SupplierBean supplierBean = getRenderedObject("missionSystemMandatorySupplier"); if (supplierBean != null && supplierBean.getSupplier() != null) { final MissionSystem missionSystem = MissionSystem.getInstance(); missionSystem.addMandatorySupplierService(supplierBean.getSupplier()); } return prepare(mapping, form, request, response); } public ActionForward removeMandatorySupplier(final ActionMapping mapping, final ActionForm form, final HttpServletRequest request, final HttpServletResponse response) { final Supplier supplier = getDomainObject(request, "supplierOid"); if (supplier != null) { final MissionSystem missionSystem = MissionSystem.getInstance(); missionSystem.removeMandatorySupplierService(supplier); } return prepare(mapping, form, request, response); } }