public ActionForward execute( ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) throws javax.servlet.ServletException, java.io.IOException { formErrors = new ArrayList(); MiscCashReceiptsForm form = (MiscCashReceiptsForm) actionForm; ActionErrors errors = new ActionErrors(); HttpSession session = request.getSession(); DbUserSession sessionUser = SessionHelpers.getUserSession(request); DatabaseTransaction t = null; DbHistory dbHistory = null; if (form.getSubmitButton() != null && form.getSubmitButton().equals("exit")) { ActionForward actionForward = mapping.findForward("financial"); return actionForward; } try { t = (DatabaseTransaction) DatabaseTransaction.getTransaction(sessionUser); // AppLog.trace("ProcessMiscCashReceipts submit ="+form.getSubmitButton()); // --- HANDLE PRINTING A RECEIPT --- if (form.getFormId() != null && form.getFormId().trim().length() > 0 && (!form.getFormId().equals("None"))) { // AppLog.trace("ProcessMiscCashReceipts printing receipt form: "+form.getFormId()); if (FormatNumber.parseInteger(form.getFormId()) < 1) { // AppLog.error("ProcessMiscCashReceipts - No receipt type selected."); errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("error.tables.noselect")); formErrors.add("formId"); t.closeConnection(); return (new ActionForward(mapping.getInput())); } } if (form.getSubmitButton().equals("save")) { dbHistory = new DbHistory(); dbHistory.setNew(); validateData(form, errors); if (errors.isEmpty()) { setHistory(t, sessionUser, dbHistory, form, errors); if (errors.isEmpty()) { t.save(); } else { // AppLog.criticalError("Exception in ProcessMiscCashReceipts.setHistory."); } } else { // AppLog.trace("Validation Errors in ProcessMiscCashReceipts; returning to // MiscCashReceipts form."); } } // --- HANDLE PRINTING A RECEIPT --- if (errors.isEmpty() && FormatNumber.parseInteger(form.getFormId()) > 0) { String crystalFlag = UtilSingleton.getInstance() .getProperty(sessionUser.getConfigID(), "CrystalServer.useReportingService"); String pageName = null; if (crystalFlag != null && "true".equals(crystalFlag)) { CrystalReportManagerBean crystalServerReport = new CrystalReportManagerBean(sessionUser.getConfigID()); pageName = crystalServerReport.printReport( sessionUser, FormatNumber.parseInteger(form.getFormId()), "", "", null, "", Integer.toString(dbHistory.getId()), true); } else { ExportReport crystal = new ExportReport(); crystal.setRecordIdSelParam(dbHistory.getId()); // selection parameter pageName = crystal.printForm( sessionUser, FormatNumber.parseInteger(form.getFormId()), "", "", null, "", request, response, servlet.getServletContext()); } form = new MiscCashReceiptsForm(); setNewForm(request, sessionUser, session, form, errors); form.setPreviewFile(pageName); // AppLog.trace("Setting miscCashReceipts collection arrays into session scope."); session.setAttribute("miscCashReceipts", form); ActionForward actionForward = mapping.findForward("showMiscCashReceipts"); return actionForward; } } catch (PersistenceException pe) { logger.error("Persistence Exception in ProcessMiscCashReceipts.doPerform. " + pe); errors.add( ActionErrors.GLOBAL_ERROR, new ActionError("error.PersistenceException", pe.getCause())); } catch (Exception pe) { logger.error("Exception in ProcessMiscCashReceipts.doPerform. ", pe); errors.add( ActionErrors.GLOBAL_ERROR, new ActionError("error.GeneralException", pe.getMessage())); } finally { if (t != null) { t.closeConnection(); } } // Action Forward Logic ActionForward actionForward = mapping.findForward("showMiscCashReceiptsGlobal"); if (!errors.isEmpty()) { // AppLog.info("ProcessMiscCashReceipts Invoking forward mapping getInput() "); saveErrors(request, errors); request.setAttribute("formErrors", formErrors); actionForward = new ActionForward(mapping.getInput()); } logger.debug("Leaving ProcessMiscCashReceipts."); return actionForward; }
/** * Called from ProcessMiscCashReceipts, this Method sets the History record from the * MiscCashReceipts form values. If am error occurs, the error is stored in the errors collection. * Creation date: (8/13/2002 3:41:43 PM) */ public void setHistory( DatabaseTransaction t, DbUserSession sessionUser, DbHistory dbHistory, fdms.ui.struts.form.MiscCashReceiptsForm form, ActionErrors errors) { String errorField = new String(); String formField = null; DbLocale userlocale = null; DatabaseTransaction tlocale = null; int receiptNumber = 0; try { errorField = "VitalsMasterKey"; dbHistory.setLMainKey(0); errorField = "ARAcct"; formField = "arAcct"; dbHistory.setCHistARacct(form.getArAcct()); errorField = "Date"; formField = "dateOfTran"; dbHistory.setCHistDate( new java.sql.Date(FormatDate.convertToDate(form.getDateOfTran()).getTime())); errorField = "Description"; formField = "description"; dbHistory.setCHistDesc(form.getDescription()); errorField = "GLAcct"; formField = "glAcct"; dbHistory.setCHistGLAcct(form.getGlAcct()); errorField = "ManualReceipt"; formField = "manualReceiptNo"; dbHistory.setCHistManualReceipt(form.getManualReceiptNo()); errorField = "OriginalPosting"; formField = ""; dbHistory.setCHistOriginalPosting('N'); errorField = "PayMethod"; formField = "getPayMethod"; dbHistory.setCHistPayMethod(form.getPayMethod()); errorField = "Posted"; formField = ""; dbHistory.setCHistPosted('N'); errorField = "SPF"; formField = ""; dbHistory.setCHistSPF('R'); // Set Receipt Number from locale try { tlocale = (DatabaseTransaction) DatabaseTransaction.getTransaction(sessionUser); userlocale = FdmsDb.getInstance().getLocaleWithLock(tlocale, sessionUser.getRegion()); if (userlocale == null) { throw new java.sql.SQLException("No locale for user region."); } receiptNumber = userlocale.getNextReceiptNo(); userlocale.setNextReceiptNo(receiptNumber + 1); tlocale.addPersistent(userlocale); tlocale.save(); // AppLog.trace("ProcessMiscCashReceipts: next receipt number = " +receiptNumber); } catch (java.sql.SQLException e) { if (e.getErrorCode() == 1205) { // AppLog.warning("ProcessMiscCashReceipts - DbLocale locked from updating." // +sessionUser.getRegion()); throw new PersistenceException("User locale temporarily locked. Try again."); } // AppLog.warning("ProcessMiscCashReceipts - invalid region for user " // +sessionUser.getUserName()); throw new PersistenceException("Invalid region for user", e); } finally { if (t != null) { t.closeConnection(); } } errorField = "ReceiptNo"; dbHistory.setLHistReceiptNo(receiptNumber); errorField = "Amount"; dbHistory.setLHistAmount( FormatNumber.parseInteger( String.valueOf(FormatCurrency.convertToCurrency(form.getAmountOfTran())))); errorField = "LocationId"; dbHistory.setLocationId(Integer.parseInt(form.getLocationId())); t.addPersistent(dbHistory); } catch (Exception e) { errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("error.receipts.set" + errorField)); formErrors.add(formField); } return; }