/* * The Kuali Financial System, a comprehensive financial management system for higher education. * * Copyright 2005-2014 The Kuali Foundation * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.kuali.kfs.fp.document.web.struts; import java.util.Properties; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.log4j.Logger; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.action.ActionMessage; import org.apache.struts.action.ActionMessages; import org.kuali.kfs.fp.document.CashManagementDocument; import org.kuali.kfs.sys.KFSConstants; import org.kuali.kfs.sys.KFSKeyConstants; import org.kuali.kfs.sys.context.SpringContext; import org.kuali.rice.kns.service.DataDictionaryService; import org.kuali.rice.kns.web.struts.action.KualiAction; import org.kuali.rice.krad.util.UrlFactory; /** * Action class for CashManagementStatusForm */ public class CashManagementStatusAction extends KualiAction { private static Logger LOG = Logger.getLogger(CashManagementStatusAction.class); /** * Default constructor */ public CashManagementStatusAction() { } /** * @see org.kuali.rice.kns.web.struts.action.KualiAction#execute(org.apache.struts.action.ActionMapping, * org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) */ public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { // populate with exception values, if any CashManagementStatusForm cform = (CashManagementStatusForm) form; if (cform.getMethodToCall().equals("docHandler")) { cform.setMethodToCall("displayPage"); } // generate the status message String[] msgParams = { cform.getVerificationUnit(), cform.getControllingDocumentId(), cform.getCurrentDrawerStatus(), cform.getDesiredDrawerStatus() }; ActionMessage message = new ActionMessage(KFSKeyConstants.CashDrawer.MSG_CASH_DRAWER_ALREADY_OPEN, msgParams); ActionMessages messages = new ActionMessages(); messages.add(ActionMessages.GLOBAL_MESSAGE, message); saveMessages(request, messages); return super.execute(mapping, form, request, response); } /** * Displays the status page. When requests get redirected here, I need to reset the form's methodToCall to something nonblank or * the superclass will try to invoke a method which (probably) doesn't exist in this class. * * @param mapping * @param form * @param request * @param response * @throws Exception */ public ActionForward displayPage(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { return mapping.findForward(KFSConstants.MAPPING_BASIC); } /** * Returns the user to the index page. * * @param mapping * @param form * @param request * @param response * @throws Exception */ public ActionForward returnToIndex(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { return mapping.findForward(KFSConstants.MAPPING_CLOSE); } /** * Sends the user to the existing CashManagementDocument. * * @param mapping * @param form * @param request * @param response * @throws Exception */ public ActionForward openExisting(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { CashManagementStatusForm cform = (CashManagementStatusForm) form; String cmDocTypeName = SpringContext.getBean(DataDictionaryService.class).getValidDocumentTypeNameByClass(CashManagementDocument.class); Properties params = new Properties(); params.setProperty("methodToCall", "docHandler"); params.setProperty("command", "displayDocSearchView"); params.setProperty("docId", cform.getControllingDocumentId()); String cmActionUrl = UrlFactory.parameterizeUrl(KFSConstants.CASH_MANAGEMENT_DOCUMENT_ACTION, params); return new ActionForward(cmActionUrl, true); } }