示例#1
0
  public ActionForward execute(
      ActionMapping actionMapping,
      ActionForm actionForm,
      HttpServletRequest httpServletRequest,
      HttpServletResponse httpServletResponse) {
    LazyValidatorForm frm = (LazyValidatorForm) actionForm;

    if (formCanceled(frm)) {
      return actionMapping.findForward(SUCCESS);
    }

    resetFocusControl(frm, CANCEL);
    ActionMessages msgs = new ActionMessages();
    if (!formSaved(frm)) {
      setFormMode(frm, ((String) httpServletRequest.getParameter(BROWSE_ACTION)));
      setFormId(frm, (String) httpServletRequest.getParameter(BROWSE_ID));
      try {
        LoginInfo loginInfo = getLoginInfo(httpServletRequest);
        if (!loginInfo.userHasAccess(getFormId(frm), getFormMode(frm))) {
          if (isFormInModifyMode(frm)
              && loginInfo.userHasAccess(getFormId(frm), Constants.ActionType.ENQUERY)) {
            setFormMode(frm, Constants.ActionType.ENQUERY);
          } else {
            throw new Exception(INVALID_ACCESS);
          }
        }

        if (!isFormInAddMode(frm)) {
          String formKey = (String) httpServletRequest.getParameter(BROWSE_KEY);
          DeathReasonGroupInfo inf = Misc.getDeathReasonGroupDetails(Short.parseShort(formKey));
          frm.set(DEATH_REASON_GROUP_CODE, Long.toString(inf.getReasonCode()));
          frm.set(DEATH_REASON_GROUP_DESC, inf.getReasonDesc());
          if (inf.isInactive()) {
            frm.set(CODE_ACTIVE_FLAG, "on");
          }
        }
        if (isFormInAddMode(frm)) {
          resetFocusControl(frm, DEATH_REASON_GROUP_CODE);
        } else if (isFormInModifyMode(frm)) {
          resetFocusControl(frm, DEATH_REASON_GROUP_DESC);
        }
      } catch (Exception ex) {
        addError(msgs, ex.getMessage());
        saveErrors(httpServletRequest, msgs);
      }
      return actionMapping.findForward(EDIT);
    } else {
      DeathReasonGroupInfo inf = new DeathReasonGroupInfo();
      String deathReasonGroupCode = ((String) frm.get(DEATH_REASON_GROUP_CODE)).trim();
      resetFocusControl(frm, "");
      if (Utils.isEmpty(deathReasonGroupCode)) {
        addError(msgs, FIELD_CAN_NOT_BE_EMPTY, "كد");
        setFocusControl(frm, DEATH_REASON_GROUP_CODE);
      } else if (!Utils.isValidNotZeroNumber(deathReasonGroupCode, 2)) {
        addError(msgs, FIELD_INVALID, "كد");
        setFocusControl(frm, DEATH_REASON_GROUP_CODE);
      } else {
        inf.setReasonCode(Short.parseShort(deathReasonGroupCode));
      }

      if (!isFormInDeleteMode(frm)) {
        String deathReasonGroupDesc = Utils.charVal((String) frm.get(DEATH_REASON_GROUP_DESC));
        frm.set(DEATH_REASON_GROUP_DESC, deathReasonGroupDesc);
        if (Utils.isEmpty(deathReasonGroupDesc)) {
          addError(msgs, FIELD_CAN_NOT_BE_EMPTY, "شرح");
          setFocusControl(frm, DEATH_REASON_GROUP_DESC);
        } else if (deathReasonGroupDesc.length() > 50) {
          addError(msgs, FIELD_INVALID, "شرح");
          setFocusControl(frm, DEATH_REASON_GROUP_DESC);
        } else {
          inf.setReasonDesc(deathReasonGroupDesc);
        }

        if (frm.get(CODE_ACTIVE_FLAG) == null) {
          inf.setCodeActiveFlag(Constants.CodeActiveFlag.ACTIVE);
        } else {
          inf.setCodeActiveFlag(Constants.CodeActiveFlag.INACTIVE);
        }
      }

      if (!msgs.isEmpty()) {
        saveErrors(httpServletRequest, msgs);
        return actionMapping.findForward(EDIT);
      }
      resetFocusControl(frm, CANCEL);
      try {
        Misc.saveDeathReasonGroup(getFormMode(frm), inf);
        httpServletRequest.setAttribute(BROWSE_KEY, inf.getKey());
        return actionMapping.findForward(SUCCESS);
      } catch (Exception ex) {
        resetFocusControl(frm, CANCEL);
        addError(msgs, ex.getMessage());
        saveErrors(httpServletRequest, msgs);
        return actionMapping.findForward(EDIT);
      }
    }
  }