public ActionMessages validBrief(
      LazyValidatorForm frm, short gatherChangeCode, String newValue, int i) throws Exception {
    ActionMessages msgs = new ActionMessages();
    boolean hasError = false;
    switch (gatherChangeCode) {
      case Constants.GatherChangeComFieldCode.SEX_CODE:
        if (!(Utils.charVal(newValue.trim()).equalsIgnoreCase(Constants.Sex.MALE)
            || Utils.charVal(newValue.trim()).equalsIgnoreCase(Constants.Sex.FEMALE)
            || newValue.trim().equalsIgnoreCase("-"))) hasError = true;
        break;
      case Constants.GatherChangeComFieldCode.DEAD_ADDRESS:
        if (newValue.length() > 255) hasError = true;
        break;

      case Constants.GatherChangeComFieldCode.DEAD_ZIP_CODE:
        if (!Utils.isValidZipCode(newValue)) hasError = true;
        break;
    }
    if (hasError) {
      addError(msgs, FIELD_INVALID, "داده جديد" + " رديف " + Integer.toString(i + 1));
      setFocusControl(frm, NEW_VALUE_DEATH + Integer.toString(i));
    }
    return msgs;
  }
Beispiel #2
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 {
        httpServletRequest
            .getSession()
            .setAttribute("hozehKindList", Misc.listHardCode(Constants.TableId.HOZEH_KIND));

        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);
          frm.set("formKey", formKey);
          String key[] = formKey.split(Constants.DATA_SEPARATOR_SPLIT);
          short officeCode = Short.parseShort(key[0]);
          short hozehCode = Short.parseShort(key[1]);
          String hozehKind = key[2];

          HozehInfo inf = Place.getHozehDetails(officeCode, hozehCode, hozehKind);
          frm.set(OFFICE_CODE, Short.toString(inf.getOfficeCode()));
          frm.set(HOZEH_CODE, Short.toString(inf.getHozehCode()));
          frm.set(HOZEH_KIND, inf.getHozehKind());
          frm.set(HOZEH_DESC, inf.getHozehDesc());
          if (inf.isInactive()) {
            frm.set(CODE_ACTIVE_FLAG, "on");
          }
        }
        String officeCode = (String) frm.get(OFFICE_CODE);
        if (Utils.isEmpty(officeCode)) {
          officeCode = "0";
          frm.set(OFFICE_CODE, officeCode);
        }
        frm.set(OFFICE_NAME, Place.getOfficeName(Short.parseShort(officeCode)));

        if (isFormInAddMode(frm)) {
          resetFocusControl(frm, HOZEH_CODE);
        } else if (isFormInModifyMode(frm)) {
          resetFocusControl(frm, HOZEH_DESC);
        }
      } catch (Exception ex) {
        addError(msgs, ex.getMessage());
        saveErrors(httpServletRequest, msgs);
      }
      return actionMapping.findForward(EDIT);
    } else {
      HozehInfo inf = new HozehInfo();
      resetFocusControl(frm, "");

      if (isFormInAddMode(frm)) {

        String officeCode = ((String) frm.get(OFFICE_CODE)).trim();
        resetFocusControl(frm, "");
        if (Utils.isEmpty(officeCode)) {
          addError(msgs, FIELD_CAN_NOT_BE_EMPTY, "اداره");
          setFocusControl(frm, OFFICE_CODE);
        } else if (!Utils.isValidNotZeroNumber(officeCode, 3)) {
          addError(msgs, FIELD_INVALID, "اداره");
          setFocusControl(frm, OFFICE_CODE);
        } else {
          inf.setOfficeCode(Short.parseShort(officeCode));
        }

        String hozehCode = ((String) frm.get(HOZEH_CODE)).trim();
        if (Utils.isEmpty(hozehCode)) {
          addError(msgs, FIELD_CAN_NOT_BE_EMPTY, "كد");
          setFocusControl(frm, HOZEH_CODE);
        } else if (!Utils.isValidNotZeroNumber(hozehCode, 3)) {
          addError(msgs, FIELD_INVALID, "كد");
          setFocusControl(frm, HOZEH_CODE);
        } else {
          inf.setHozehCode(Short.parseShort(hozehCode));
        }

        String hozehKind = ((String) frm.get(HOZEH_KIND)).trim();
        if (Utils.isEmpty(hozehKind)) {
          addError(msgs, FIELD_CAN_NOT_BE_EMPTY, "نوع");
          setFocusControl(frm, HOZEH_KIND);
        } else if (hozehKind.length() > 1) {
          addError(msgs, FIELD_INVALID, "نوع");
          setFocusControl(frm, HOZEH_KIND);
        } else {
          inf.setHozehKind(hozehKind);
        }

      } else {
        String formKey = (String) frm.get("formKey");
        String key[] = formKey.split(Constants.DATA_SEPARATOR_SPLIT);

        inf.setOfficeCode(Short.parseShort(key[0]));
        inf.setHozehCode(Short.parseShort(key[1]));
        inf.setHozehKind(key[2]);
      }

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

        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 {
        Place.saveHozeh(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);
      }
    }
  }
  protected ActionMessages[] validate(
      HttpServletRequest httpServletRequest, LazyValidatorForm frm) {
    IranianInfo infMaster =
        (IranianInfo) httpServletRequest.getSession().getAttribute("personData");
    String fatherContradictionErrors = "";
    String motherContradictionErrors = "";
    ActionMessages[] msgs = new ActionMessages[2];
    ActionMessages msgsErrors = new ActionMessages();
    ActionMessages msgsWarnings = new ActionMessages();
    PersonInfo fatherInfo = null;
    boolean fatherFoundInDb = false;
    PersonInfo motherInfo = null;
    boolean motherFoundInDb = false;

    try {

      String fatherNin = ((String) frm.get(FATHER_NIN)).trim();
      if (Utils.isEmpty(fatherNin)) {
        addError(msgsErrors, FIELD_CAN_NOT_BE_EMPTY, "شماره ملي پدر");
        setFocusControl(frm, FATHER_NIN);
      } else if (!Utils.isValidNin(fatherNin)) {
        addError(msgsErrors, FIELD_INVALID, "شماره ملي پدر");
        setFocusControl(frm, FATHER_NIN);
      } else {
        fatherInfo = (new Person()).getPersonBrief(Long.parseLong(fatherNin));

        if ((fatherInfo == null)
            || (fatherInfo != null
                && !(fatherInfo.getSexCode().equalsIgnoreCase(Constants.Sex.MALE)))) {

          addError(msgsErrors, NOT_EXISTS, "شماره ملي پدر");
          setFocusControl(frm, FATHER_NIN);
        }
        // else {
        /*StoppedServiceRules.StopServiceCheckResult result = StoppedServiceRules.doStopService(DCUServices.Iranian_Birth_Registration, DCUActors.Father, Long.parseLong(fatherNin));
        if (result.doStop
        */
        /* (new Person()).existStopServices(Long.parseLong(fatherNin))*/
        /*) {
          addError(msgsErrors, STOPED_SERVICES, "شماره ملي پدر");
          setFocusControl(frm, FATHER_NIN);
        }*/
        else {
          infMaster.setFatherNin(Long.parseLong(fatherNin));
          fatherFoundInDb = true;

          if (fatherInfo.isDead()
              && !Utils.isEmpty((String) frm.get(ANNOUNCER_RELATION_CODE))
              && (Short.parseShort((String) frm.get(ANNOUNCER_RELATION_CODE))
                      == Constants.RelationCode.FATHER
                  || Short.parseShort((String) frm.get(ANNOUNCER_RELATION_CODE))
                      == Constants.RelationCode.PARENTS
                  || Short.parseShort((String) frm.get(ANNOUNCER_RELATION_CODE))
                      == Constants.RelationCode.MOTHER_ATTORNEY_AND_FATHER)) {
            addError(msgsErrors, SHOULD_BE_ALIVE, "پدر به عنوان اعلام كننده");
            setFocusControl(frm, FATHER_NIN);
          }
          // 13920312
          if (Utils.nvl(fatherInfo.getIsExcepted())
                  .equalsIgnoreCase(Constants.ExceptionStatus.IS_EXCEPTED)
              && Utils_3F.isErrorStagnant(
                  Person.getExceptionCode(
                      fatherInfo.getPersonNin(), Constants.StagnantCode.STAGNANT_PARENT))
          /*&&
          (getFormMode(frm).equalsIgnoreCase(Constants.ActionType.ADD) ||
                  (getFormMode(frm).equalsIgnoreCase(Constants.ActionType.MODIFY) &&
                          !Utils.isEmpty((String) frm.get(FATHER_NIN)) &&
                          fatherInfo.getPersonNin() != infMaster.getFatherNin()))*/
          ) {
            addError(msgsErrors, "errStagnant_3F", "شماره ملي پدر");
            setFocusControl(frm, FATHER_NIN);
          }
          // 13920312
          if (fatherInfo != null
              && !Utils.isEmpty(fatherNin)
              && Utils.isValidNin(fatherNin)
              && fatherInfo.isDead()
              && Person.getLiveStatus(Long.parseLong(fatherNin))
              && !Utils.isEmpty((String) frm.get(DATE_OF_BIRTH_SUN))) {
            String fatherDeathDate = Utils.nvl(Person.getDeathDateByNin(Long.parseLong(fatherNin)));
            if (!Utils.isEmpty(fatherDeathDate)
                && Utils_3F.tenMonthBefore(
                            DateUtils.unformatRevFormattedFdate(
                                (String) frm.get(DATE_OF_BIRTH_SUN)))
                        .compareTo(fatherDeathDate)
                    > 0) {
              addError(msgsErrors, "errTenMonthFatherDeathDate_3F");
              setFocusControl(frm, FATHER_NIN);
            }
          }
          if (fatherInfo != null
              && !Utils.isEmpty(fatherNin)
              && Utils.isValidNin(fatherNin)
              && fatherInfo.isDead()
              && !Person.getLiveStatus(Long.parseLong(fatherNin))) {
            addError(msgsWarnings, "errFatherIsDead_3F");
            setFocusControl(frm, FATHER_NIN);
            fatherContradictionErrors =
                fatherContradictionErrors
                    + Constants.ContradictionErrors.ERR_FATHER_IS_DEAD
                    + Constants.DATA_SEPARATOR;
          }
        }
      }

      String fatherShenasNo = ((String) frm.get(FATHER_SHENAS_NO)).trim();
      if (Utils.isEmpty(fatherShenasNo)) {
        addError(msgsErrors, FIELD_CAN_NOT_BE_EMPTY, "شماره شناسنامه پدر");
        setFocusControl(frm, FATHER_SHENAS_NO);
      } else if (!Utils.isValidNumber(fatherShenasNo, 6)) {
        addError(msgsErrors, FIELD_INVALID, "شماره شناسنامه پدر");
        setFocusControl(frm, FATHER_SHENAS_NO);
      } else {
        infMaster.setFatherShenasNo(Integer.parseInt(fatherShenasNo));
        if (!Utils.isEmpty(fatherShenasNo)
            && fatherFoundInDb
            && !fatherShenasNo.equalsIgnoreCase(fatherInfo.getShenasnameNo())) {
          addError(msgsWarnings, HAS_CONTRADICTION, "شماره شناسنامه پدر");
          setFocusControl(frm, FATHER_SHENAS_NO);
          fatherContradictionErrors =
              fatherContradictionErrors
                  + Constants.ContradictionErrors.ERR_FATHER_SHENAS_NO
                  + Constants.DATA_SEPARATOR;
        }
      }

      String fatherName = (String) frm.get(FATHER_NAME);
      fatherName = Utils.charVal(fatherName);
      frm.set(FATHER_NAME, fatherName);
      String sexCodeM = (String) frm.get(SEX_CODE_M);
      String sexCodeF = (String) frm.get(SEX_CODE_F);
      String sex = null;
      String checkSiadat = null;
      if (!Utils.isEmpty(sexCodeM)) {
        sex = Constants.Sex.MALE;
      } else if (!Utils.isEmpty(sexCodeF)) {
        sex = Constants.Sex.FEMALE;
      }
      if (!(!Utils.isEmpty(sexCodeM) && !Utils.isEmpty(sexCodeF)) && !Utils.isEmpty(sex)) {

        checkSiadat =
            Utils_3F.siadat(fatherName, Utils.charVal((String) frm.get(PERSON_NAME)), sex);
        if (Utils.isEmpty(checkSiadat) && fatherInfo != null) {
          checkSiadat =
              Utils_3F.siadat(
                  fatherName,
                  fatherInfo.getFatherName(),
                  Utils.charVal((String) frm.get(PERSON_NAME)),
                  sex);
        }
      }
      if (Utils.isEmpty(fatherName)) {
        addError(msgsErrors, FIELD_CAN_NOT_BE_EMPTY, "نام پدر");
        setFocusControl(frm, FATHER_NAME);
      } else if (fatherName.length() > 50) {
        addError(msgsErrors, FIELD_INVALID, "نام پدر");
        setFocusControl(frm, FATHER_NAME);
      }

      if (!Utils.isEmpty(checkSiadat)) {
        addError(msgsErrors, checkSiadat, "");
        setFocusControl(frm, FATHER_NAME);
      } else {
        infMaster.setFatherName(fatherName);
        if (!Utils.isEmpty(fatherName)
            && fatherFoundInDb
            && !fatherName.equalsIgnoreCase(Utils.charVal(fatherInfo.getPersonName()))) {
          addError(msgsWarnings, HAS_CONTRADICTION, "نام پدر");
          setFocusControl(frm, FATHER_NAME);
          fatherContradictionErrors =
              fatherContradictionErrors
                  + Constants.ContradictionErrors.ERR_FATHER_NAME
                  + Constants.DATA_SEPARATOR;
        }
      }

      String fatherFname = (String) frm.get(FATHER_FNAME);
      fatherFname = Utils.charVal(fatherFname);
      frm.set(FATHER_FNAME, fatherFname);
      if (Utils.isEmpty(fatherFname)) {
        addError(msgsErrors, FIELD_CAN_NOT_BE_EMPTY, "نام خانوادگي پدر");
        setFocusControl(frm, FATHER_FNAME);
      } else if (fatherFname.length() > 50) {
        addError(msgsErrors, FIELD_INVALID, "نام خانوادگي پدر");
        setFocusControl(frm, FATHER_FNAME);
      } else {
        infMaster.setFatherFname(fatherFname);

        if (!Utils.isEmpty(fatherFname)
            && fatherFoundInDb
            && !fatherFname.equalsIgnoreCase(Utils.charVal(fatherInfo.getPersonFname()))) {
          addError(msgsWarnings, HAS_CONTRADICTION, "نام خانوادگي پدر");

          setFocusControl(frm, FATHER_FNAME);

          fatherContradictionErrors =
              fatherContradictionErrors
                  + Constants.ContradictionErrors.ERR_FATHER_FNAME
                  + Constants.DATA_SEPARATOR;
        }
        String personFname = (String) frm.get(PERSON_FNAME);
        if (!fatherFname.equals(personFname) && !Utils.isEmpty(personFname)) {
          addError(msgsWarnings, HAS_CONTRADICTION, "نام خانوادگي پدر و فرزند ");
          fatherContradictionErrors =
              fatherContradictionErrors
                  + Constants.ContradictionErrors.ERR_MATCH_FATHER_FAME_PERSON_FNAME
                  + Constants.DATA_SEPARATOR;
        }
      }

      String fatherShenasSeri = (String) frm.get(FATHER_SHENAS_SERI);
      fatherShenasSeri = Utils.charVal2(fatherShenasSeri);
      frm.set(FATHER_SHENAS_SERI, fatherShenasSeri);
      if (Utils.isEmpty(fatherShenasSeri)) {
        addError(msgsErrors, FIELD_CAN_NOT_BE_EMPTY, "سري شناسنامه پدر");
        setFocusControl(frm, FATHER_SHENAS_SERI);
      } else if (fatherShenasSeri.length() > 3) {
        addError(msgsErrors, FIELD_INVALID, "سري شناسنامه پدر");
        setFocusControl(frm, FATHER_SHENAS_SERI);
      } else {
        infMaster.setFatherShenasSeri(fatherShenasSeri);
        if (!Utils.isEmpty(fatherShenasSeri)
            && fatherFoundInDb
            && !fatherShenasSeri.equalsIgnoreCase(Utils.charVal2(fatherInfo.getShenasnameSeri()))) {
          addError(msgsWarnings, HAS_CONTRADICTION, "سري شناسنامه پدر");
          setFocusControl(frm, FATHER_SHENAS_SERI);
          fatherContradictionErrors =
              fatherContradictionErrors
                  + Constants.ContradictionErrors.ERR_FATHER_SHENAS_SERI
                  + Constants.DATA_SEPARATOR;
        }
      }

      String fatherShenasSrno = ((String) frm.get(FATHER_SHENAS_SRNO)).trim();
      if (Utils.isEmpty(fatherShenasSrno)) {
        addError(msgsErrors, FIELD_CAN_NOT_BE_EMPTY, "شماره مسلسل شناسنامه پدر");
        setFocusControl(frm, FATHER_SHENAS_SRNO);
      } else if (!Utils.isValidNumber(fatherShenasSrno, 6)) {
        addError(msgsErrors, FIELD_INVALID, "شماره مسلسل شناسنامه پدر");
        setFocusControl(frm, FATHER_SHENAS_SRNO);
      } else {
        infMaster.setFatherShenasSrno(Integer.parseInt(fatherShenasSrno));
        if (!Utils.isEmpty(fatherShenasSrno)
            && fatherFoundInDb
            && !fatherShenasSrno.equalsIgnoreCase(fatherInfo.getShenasnameSrno())) {
          addError(msgsWarnings, HAS_CONTRADICTION, "شماره مسلسل شناسنامه پدر");
          setFocusControl(frm, FATHER_SHENAS_SRNO);
          fatherContradictionErrors =
              fatherContradictionErrors
                  + Constants.ContradictionErrors.ERR_FATHER_SHENAS_SRNO
                  + Constants.DATA_SEPARATOR;
        }
      }

      String fatherDateOfBirth = ((String) frm.get(FATHER_DATE_OF_BIRTH)).trim();
      boolean fatherDateOfBirthIsFull = true;
      String fatherDateOfBirthNaghes = "";
      if (!Utils.isEmpty(fatherDateOfBirth)) {
        String date[] = fatherDateOfBirth.split(Constants.DATE_SEPARATOR);

        if (date.length != 3 && fatherDateOfBirth.length() < 8) {
          fatherDateOfBirthIsFull = false;
          for (int i = date.length; i > 0; --i) {
            fatherDateOfBirthNaghes = fatherDateOfBirthNaghes + date[i - 1];
          }
        }
      }
      if (Utils.isEmpty(fatherDateOfBirth)) {
        addError(msgsErrors, FIELD_CAN_NOT_BE_EMPTY, "تاريخ تولد پدر");
        setFocusControl(frm, FATHER_DATE_OF_BIRTH);
      } else if (fatherDateOfBirthIsFull
          && !DateUtils.isValidRevFormattedFDate(fatherDateOfBirth)) {
        addError(msgsErrors, FIELD_INVALID, "تاريخ تولد پدر");
        setFocusControl(frm, FATHER_DATE_OF_BIRTH);
      } else if (fatherDateOfBirthIsFull
          && DateUtils.unformatRevFormattedFdate(fatherDateOfBirth).compareTo(DateUtils.fDate())
              > 0) {
        addError(msgsErrors, SHOULD_BE_LESS_EQUAL, "تاريخ تولد پدر", "تاريخ روز");
        setFocusControl(frm, FATHER_DATE_OF_BIRTH);
      } else if (!fatherDateOfBirthIsFull
          && !Utils.isValidNotZeroNumber(fatherDateOfBirthNaghes, 8)) {
        addError(msgsErrors, FIELD_INVALID, "تاريخ تولد پدر");
        setFocusControl(frm, FATHER_DATE_OF_BIRTH);
      } else {
        if (fatherDateOfBirthIsFull) {
          infMaster.setFatherDateOfBirth(DateUtils.unformatRevFormattedFdate(fatherDateOfBirth));
        } else {
          infMaster.setFatherDateOfBirth(fatherDateOfBirthNaghes);
        }
        if (!Utils.isEmpty(fatherFname)
            && fatherFoundInDb
            && !(infMaster.getFatherDateOfBirth())
                .equalsIgnoreCase(fatherInfo.getDateOfBirthSun())) {
          addError(msgsWarnings, HAS_CONTRADICTION, "تاريخ تولد پدر");
          setFocusControl(frm, FATHER_DATE_OF_BIRTH);
          fatherContradictionErrors =
              fatherContradictionErrors
                  + Constants.ContradictionErrors.ERR_FATHER_DATE_OF_BIRTH
                  + Constants.DATA_SEPARATOR;
        }
      }

      /*  if (!Utils.isEmpty(fatherDateOfBirth)) {
         if (!DateUtils.isValidRevFormattedFDate(fatherDateOfBirth)) {
           addError(msgsErrors, FIELD_INVALID, "تاريخ تولد پدر");
           setFocusControl(frm, FATHER_DATE_OF_BIRTH);
         }
         else if (DateUtils.unformatRevFormattedFdate(
             fatherDateOfBirth).compareTo(DateUtils.fDate()) >= 0) {
      addError(msgsErrors, SHOULD_BE_LESS, "تاريخ تولد پدر", "تاريخ روز");
           setFocusControl(frm, FATHER_DATE_OF_BIRTH);
         }
         else {
           infMaster.setFatherDateOfBirth(DateUtils.unformatRevFormattedFdate(
               fatherDateOfBirth));
           //              if (!Utils.isEmpty(fatherDateOfBirth) && fatherFoundInDb &&
           //       !fatherDateOfBirth.equalsIgnoreCase(fatherInfo.getDateOfBirthSun())) {
           //       addError(msgsWarnings, HAS_CONTRADICTION, "تاريخ تولد پدر");
           //                setFocusControl(frm, FATHER_DATE_OF_BIRTH);
           //                 fatherContradiction = true;
           //             }
         }
       }
       else {
         infMaster.setFatherDateOfBirth("");

       }*/

      /*    String fatherShenasIssuePlace = (String) frm.get(
          FATHER_SHENAS_ISSUE_PLACE);
       if (Utils.isEmpty(fatherShenasIssuePlace)) {
        addError(msgsErrors, FIELD_CAN_NOT_BE_EMPTY, "اداره محل صدور پدر");
        setFocusControl(frm, FATHER_SHENAS_ISSUE_PLACE);
      }
      else if (fatherShenasIssuePlace.length() > 50) {
        addError(msgsErrors, FIELD_INVALID, "اداره محل صدور پدر");
        setFocusControl(frm, FATHER_SHENAS_ISSUE_PLACE);
      }
      else {
        infMaster.setFatherShenasIssuePlace(fatherShenasIssuePlace);
       }*/
      String fatherOfficeCode = ((String) frm.get(FATHER_OFFICE_CODE)).trim();
      if (Utils.isEmpty(fatherOfficeCode)) {
        addError(msgsErrors, FIELD_CAN_NOT_BE_EMPTY, "اداره محل صدور پدر");
        setFocusControl(frm, FATHER_OFFICE_CODE);
      } else if (fatherOfficeCode.length() > 3) {
        addError(msgsErrors, FIELD_INVALID, "اداره محل صدور پدر");
        setFocusControl(frm, FATHER_OFFICE_CODE);
      } else {
        infMaster.setFatherOfficeCode(Short.parseShort(fatherOfficeCode));
      }

      /*  String fatherHozeh = (String) frm.get(FATHER_HOZEH);
      fatherHozeh = Utils.charVal2(fatherHozeh);
      frm.set(FATHER_HOZEH, fatherHozeh);
      if (fatherHozeh.length() > 50) {
        addError(msgsErrors, FIELD_INVALID, "حوزه پدر");
        setFocusControl(frm, FATHER_HOZEH);
      }
      else {
        infMaster.setFatherHozeh(fatherHozeh);
      }*/

      String fatherHozehCodeKind = ((String) frm.get(FATHER_HOZEH_CODE_KIND)).trim();
      if (!Utils.isEmpty(fatherHozehCodeKind) && !fatherHozehCodeKind.startsWith("irth")) {
        String key[] = fatherHozehCodeKind.split(Constants.DATA_SEPARATOR_SPLIT);
        String fatherHozehCode = key[0];

        if (Utils.isEmpty(fatherHozehCode)) {
          addError(msgsErrors, FIELD_CAN_NOT_BE_EMPTY, "كد حوزه پدر");
          setFocusControl(frm, FATHER_HOZEH_CODE_KIND);
        } else if (fatherHozehCode.length() > 3) {
          addError(msgsErrors, FIELD_INVALID, "كد حوزه پدر");
          setFocusControl(frm, FATHER_HOZEH_CODE_KIND);
        } else {
          infMaster.setFatherHozehCode(Short.parseShort(fatherHozehCode));
        }

        String fatherHozehKind = key[1];
        if (Utils.isEmpty(fatherHozehKind)) {
          addError(msgsErrors, FIELD_CAN_NOT_BE_EMPTY, "نوع حوزه پدر");
          setFocusControl(frm, FATHER_HOZEH_CODE_KIND);
        } else if (fatherHozehKind.length() > 1) {
          addError(msgsErrors, FIELD_INVALID, "نوع حوزه پدر");
          setFocusControl(frm, FATHER_HOZEH_CODE_KIND);
        } else {
          infMaster.setFatherHozehKind(fatherHozehKind);
        }
      } else {
        addError(msgsErrors, FIELD_CAN_NOT_BE_EMPTY, "حوزه پدر");
        setFocusControl(frm, FATHER_HOZEH_CODE_KIND);
      }

      String fatherZipCode = ((String) frm.get(FATHER_ZIP_CODE)).trim();
      if (!Utils.isEmpty(fatherZipCode)) {
        if (!Utils.isValidZipCode(fatherZipCode)) {
          addError(msgsErrors, FIELD_INVALID, "كد پستي پدر");
          setFocusControl(frm, FATHER_ZIP_CODE);
        } else {
          infMaster.setFatherZipCode(Long.parseLong(fatherZipCode));
        }
      } else {
        infMaster.setFatherZipCode(0);
      }

      /* String fatherAddressGeoSerial = ( (String) frm.get(
          FATHER_ADDRESS_GEO_SERIAL)).
          trim();
      if (!Utils.isEmpty(fatherAddressGeoSerial)) {
        if (searchFatherAddressGeoSerial(frm) == false) {
          addError(msgsErrors, FIELD_INVALID, "سريال محل اقامت");
          setFocusControl(frm, FATHER_ADDRESS_GEO_SERIAL);
        }
        else {
          infMaster.setFatherAddressGeoSerial(Integer.parseInt(
              fatherAddressGeoSerial));
        }
      }
      else {*/
      infMaster.setFatherAddressGeoSerial(0);
      //  }

      String fatherAddress = (String) frm.get(FATHER_ADDRESS);
      fatherAddress = Utils.charVal2(fatherAddress);
      if (Utils.isEmpty(fatherAddress)) {
        addError(msgsErrors, FIELD_CAN_NOT_BE_EMPTY, "آدرس محل اقامت پدر");
        setFocusControl(frm, FATHER_ADDRESS);
      } else if (fatherAddress.length() > 255) {
        addError(msgsErrors, SHOULD_BE_LESS, "طول آدرس محل اقامت پدر", "255 كاراكتر");
        setFocusControl(frm, FATHER_ADDRESS);
      } else {
        infMaster.setFatherAddress(fatherAddress);
      }

      if (fatherFoundInDb
          && !Utils.isEmpty(fatherInfo.getFamilyNameChangeFlag())
          && fatherInfo.getFamilyNameChangeFlag().equalsIgnoreCase(Constants.ChangeFlag.NOT_READ)) {
        addError(msgsWarnings, HAS_MIM, "ركورد پدر");
        setFocusControl(frm, FATHER_NIN);
        fatherContradictionErrors =
            fatherContradictionErrors
                + Constants.ContradictionErrors.ERR_FATHER_HAS_MIM
                + Constants.DATA_SEPARATOR;
      }

      String motherNin = ((String) frm.get(MOTHER_NIN)).trim();
      if (Utils.isEmpty(motherNin)) {
        addError(msgsErrors, FIELD_CAN_NOT_BE_EMPTY, "شماره ملي مادر");
        setFocusControl(frm, MOTHER_NIN);
      } else if (!Utils.isValidNin(motherNin)) {
        addError(msgsErrors, FIELD_INVALID, "شماره ملي مادر");
        setFocusControl(frm, MOTHER_NIN);
      } else {
        motherInfo = (new Person()).getPersonBrief(Long.parseLong(motherNin));

        if (motherInfo == null
            || (motherInfo != null
                && !motherInfo.getSexCode().equalsIgnoreCase(Constants.Sex.FEMALE))) {
          addError(msgsErrors, NOT_EXISTS, "شماره ملي مادر");
          setFocusControl(frm, MOTHER_NIN);
        } else {
          if ((new Person()).existStopServices(Long.parseLong(motherNin))) {
            addError(msgsErrors, STOPED_SERVICES, "شماره ملي مادر");
            setFocusControl(frm, MOTHER_NIN);
          } else {
            infMaster.setMotherNin(Long.parseLong(motherNin));
            motherFoundInDb = true;

            if (motherInfo.isDead()
                && !Utils.isEmpty((String) frm.get(ANNOUNCER_RELATION_CODE))
                && (Short.parseShort((String) frm.get(ANNOUNCER_RELATION_CODE))
                        == Constants.RelationCode.MOTHER
                    || Short.parseShort((String) frm.get(ANNOUNCER_RELATION_CODE))
                        == Constants.RelationCode.PARENTS
                    || Short.parseShort((String) frm.get(ANNOUNCER_RELATION_CODE))
                        == Constants.RelationCode.ANCESTOR_AND_MOTHER
                    || Short.parseShort((String) frm.get(ANNOUNCER_RELATION_CODE))
                        == Constants.RelationCode.FATHER_ATTORNEY_AND_MOTHER)) {
              addError(msgsErrors, SHOULD_BE_ALIVE, "مادر به عنوان اعلام كننده");
              setFocusControl(frm, MOTHER_NIN);
            }
          }
          // 13920312
          if (Utils.nvl(motherInfo.getIsExcepted())
                  .equalsIgnoreCase(Constants.ExceptionStatus.IS_EXCEPTED)
              && Utils_3F.isErrorStagnant(
                  Person.getExceptionCode(
                      motherInfo.getPersonNin(), Constants.StagnantCode.STAGNANT_PARENT))) {
            addError(msgsErrors, "errStagnant_3F", "شماره ملي مادر");
            setFocusControl(frm, FATHER_NIN);
          }
          // 13920312
        }
      }

      String motherShenasNo = ((String) frm.get(MOTHER_SHENAS_NO)).trim();
      if (Utils.isEmpty(motherShenasNo)) {
        addError(msgsErrors, FIELD_CAN_NOT_BE_EMPTY, "شماره شناسنامه مادر");
        setFocusControl(frm, MOTHER_SHENAS_NO);
      } else if (!Utils.isValidNumber(motherShenasNo, 6)) {
        addError(msgsErrors, FIELD_INVALID, "شماره شناسنامه مادر");
        setFocusControl(frm, MOTHER_SHENAS_NO);
      } else {
        infMaster.setMotherShenasNo(Integer.parseInt(motherShenasNo));

        if (!Utils.isEmpty(motherShenasNo)
            && motherFoundInDb
            && !(motherShenasNo.equalsIgnoreCase(motherInfo.getShenasnameNo()))) {
          addError(msgsWarnings, HAS_CONTRADICTION, "شماره شناسنامه مادر");
          setFocusControl(frm, MOTHER_SHENAS_NO);
          motherContradictionErrors =
              motherContradictionErrors
                  + Constants.ContradictionErrors.ERR_MOTHER_SHENAS_NO
                  + Constants.DATA_SEPARATOR;
        }
      }

      String motherName = (String) frm.get(MOTHER_NAME);
      motherName = Utils.charVal(motherName);
      frm.set(MOTHER_NAME, motherName);
      if (Utils.isEmpty(motherName)) {
        addError(msgsErrors, FIELD_CAN_NOT_BE_EMPTY, "نام مادر");
        setFocusControl(frm, MOTHER_NAME);
      } else if (motherName.length() > 50) {
        addError(msgsErrors, FIELD_INVALID, "نام مادر");
        setFocusControl(frm, MOTHER_NAME);
      } else {
        infMaster.setMotherName(motherName);
        if (!Utils.isEmpty(motherName)
            && motherFoundInDb
            && !motherName.equalsIgnoreCase(Utils.charVal(motherInfo.getPersonName()))) {
          addError(msgsWarnings, HAS_CONTRADICTION, "نام مادر");
          setFocusControl(frm, MOTHER_NAME);
          motherContradictionErrors =
              motherContradictionErrors
                  + Constants.ContradictionErrors.ERR_MOTHER_NAME
                  + Constants.DATA_SEPARATOR;
        }
      }

      String motherFname = (String) frm.get(MOTHER_FNAME);
      motherFname = Utils.charVal(motherFname);
      frm.set(MOTHER_FNAME, motherFname);
      if (Utils.isEmpty(motherFname)) {
        addError(msgsErrors, FIELD_CAN_NOT_BE_EMPTY, "نام خانوادگي مادر");
        setFocusControl(frm, MOTHER_FNAME);
      } else if (motherFname.length() > 50) {
        addError(msgsErrors, FIELD_INVALID, "نام خانوادگي مادر");
        setFocusControl(frm, MOTHER_FNAME);
      } else {
        infMaster.setMotherFname(motherFname);
        if (!Utils.isEmpty(motherFname)
            && motherFoundInDb
            && !motherFname.equalsIgnoreCase(Utils.charVal(motherInfo.getPersonFname()))) {
          addError(msgsWarnings, HAS_CONTRADICTION, "نام خانوادگي مادر");
          setFocusControl(frm, MOTHER_FNAME);
          motherContradictionErrors =
              motherContradictionErrors
                  + Constants.ContradictionErrors.ERR_MOTHER_FNAME
                  + Constants.DATA_SEPARATOR;
        }
      }

      String motherShenasSeri = (String) frm.get(MOTHER_SHENAS_SERI);
      motherShenasSeri = Utils.charVal2(motherShenasSeri);
      frm.set(MOTHER_SHENAS_SERI, motherShenasSeri);
      if (Utils.isEmpty(motherShenasSeri)) {
        addError(msgsErrors, FIELD_CAN_NOT_BE_EMPTY, "سري شناسنامه مادر");
        setFocusControl(frm, MOTHER_SHENAS_SERI);
      } else if (motherShenasSeri.length() > 3) {
        addError(msgsErrors, FIELD_INVALID, "سري شناسنامه مادر");
        setFocusControl(frm, MOTHER_SHENAS_SERI);
      } else {
        infMaster.setMotherShenasSeri(motherShenasSeri);
        if (!Utils.isEmpty(motherShenasSeri)
            && motherFoundInDb
            && !motherShenasSeri.equalsIgnoreCase(Utils.charVal2(motherInfo.getShenasnameSeri()))) {
          addError(msgsWarnings, HAS_CONTRADICTION, "سري شناسنامه مادر");
          setFocusControl(frm, MOTHER_SHENAS_SERI);
          motherContradictionErrors =
              motherContradictionErrors
                  + Constants.ContradictionErrors.ERR_MOTHER_SHENAS_SERI
                  + Constants.DATA_SEPARATOR;
        }
      }

      String motherShenasSrno = ((String) frm.get(MOTHER_SHENAS_SRNO)).trim();
      if (Utils.isEmpty(motherShenasSrno)) {
        addError(msgsErrors, FIELD_CAN_NOT_BE_EMPTY, "شماره مسلسل شناسنامه مادر");
        setFocusControl(frm, MOTHER_SHENAS_SRNO);
      } else if (!Utils.isValidNumber(motherShenasSrno, 6)) {
        addError(msgsErrors, FIELD_INVALID, "شماره مسلسل شناسنامه مادر");
        setFocusControl(frm, MOTHER_SHENAS_SRNO);
      } else {
        infMaster.setMotherShenasSrno(Integer.parseInt(motherShenasSrno));
        if (!Utils.isEmpty(motherShenasSrno)
            && motherFoundInDb
            && !motherShenasSrno.equalsIgnoreCase(motherInfo.getShenasnameSrno())) {
          addError(msgsWarnings, HAS_CONTRADICTION, "شماره مسلسل شناسنامه مادر");
          setFocusControl(frm, MOTHER_SHENAS_SRNO);
          motherContradictionErrors =
              motherContradictionErrors
                  + Constants.ContradictionErrors.ERR_MOTHER_SHENAS_SRNO
                  + Constants.DATA_SEPARATOR;
        }
      }

      String motherDateOfBirth = ((String) frm.get(MOTHER_DATE_OF_BIRTH)).trim();
      boolean motherDateOfBirthIsFull = true;
      String motherDateOfBirthNaghes = "";
      if (!Utils.isEmpty(motherDateOfBirth)) {
        String date[] = motherDateOfBirth.split(Constants.DATE_SEPARATOR);

        if (date.length != 3 && motherDateOfBirth.length() < 8) {
          motherDateOfBirthIsFull = false;
          for (int i = date.length; i > 0; --i) {
            motherDateOfBirthNaghes = motherDateOfBirthNaghes + date[i - 1];
          }
        }
      }
      if (Utils.isEmpty(motherDateOfBirth)) {
        addError(msgsErrors, FIELD_CAN_NOT_BE_EMPTY, "تاريخ تولد مادر");
        setFocusControl(frm, MOTHER_DATE_OF_BIRTH);
      } else if (motherDateOfBirthIsFull
          && !DateUtils.isValidRevFormattedFDate(motherDateOfBirth)) {
        addError(msgsErrors, FIELD_INVALID, "تاريخ تولد مادر");
        setFocusControl(frm, MOTHER_DATE_OF_BIRTH);
      } else if (motherDateOfBirthIsFull
          && DateUtils.unformatRevFormattedFdate(motherDateOfBirth).compareTo(DateUtils.fDate())
              > 0) {
        addError(msgsErrors, SHOULD_BE_LESS_EQUAL, "تاريخ تولد مادر", "تاريخ روز");
        setFocusControl(frm, MOTHER_DATE_OF_BIRTH);
      } else if (!motherDateOfBirthIsFull
          && !Utils.isValidNotZeroNumber(motherDateOfBirthNaghes, 8)) {
        addError(msgsErrors, FIELD_INVALID, "تاريخ تولد مادر");
        setFocusControl(frm, MOTHER_DATE_OF_BIRTH);

      } else {
        if (motherDateOfBirthIsFull) {
          infMaster.setMotherDateOfBirth(DateUtils.unformatRevFormattedFdate(motherDateOfBirth));
        } else {
          infMaster.setMotherDateOfBirth(motherDateOfBirthNaghes);
        }
        if (!Utils.isEmpty(motherFname)
            && motherFoundInDb
            && !(infMaster.getMotherDateOfBirth())
                .equalsIgnoreCase(motherInfo.getDateOfBirthSun())) {
          addError(msgsWarnings, HAS_CONTRADICTION, "تاريخ تولد مادر");
          setFocusControl(frm, MOTHER_DATE_OF_BIRTH);
          motherContradictionErrors =
              motherContradictionErrors
                  + Constants.ContradictionErrors.ERR_MOTHER_DATE_OF_BIRTH
                  + Constants.DATA_SEPARATOR;
        }
      }

      /* String motherDateOfBirth = ( (String) frm.get(MOTHER_DATE_OF_BIRTH)).
          trim();
      if (!Utils.isEmpty(motherDateOfBirth)) {
        if (!DateUtils.isValidRevFormattedFDate(motherDateOfBirth)) {
          addError(msgsErrors, FIELD_INVALID, "تاريخ تولد مادر");
          setFocusControl(frm, MOTHER_DATE_OF_BIRTH);
        }
        else if (DateUtils.unformatRevFormattedFdate(
            motherDateOfBirth).compareTo(DateUtils.fDate()) >= 0) {
      addError(msgsErrors, SHOULD_BE_LESS, "تاريخ تولد مادر", "تاريخ روز");
          setFocusControl(frm, MOTHER_DATE_OF_BIRTH);
        }
        else {
          infMaster.setMotherDateOfBirth(DateUtils.unformatRevFormattedFdate(
              motherDateOfBirth));
          //           if (!Utils.isEmpty(motherDateOfBirth) && motherFoundInDb &&
          //        !motherDateOfBirth.equalsIgnoreCase(motherInfo.getDateOfBirthSun())) {
          //            addError(msgsWarnings, HAS_CONTRADICTION, "تاريخ تولد مادر");
          //           setFocusControl(frm, MOTHER_DATE_OF_BIRTH);
          //           motherContradiction = true;
          //         }
        }
      }
      else {
        infMaster.setMotherDateOfBirth("");
      }*/

      /*    String motherShenasIssuePlace = (String) frm.get(
             MOTHER_SHENAS_ISSUE_PLACE);

             if (Utils.isEmpty(motherShenasIssuePlace)) {
      addError(msgsErrors, FIELD_CAN_NOT_BE_EMPTY, "اداره محل صدور مادر");
           setFocusControl(frm, MOTHER_SHENAS_ISSUE_PLACE);
         }
         else if (motherShenasIssuePlace.length() > 50) {
           addError(msgsErrors, FIELD_INVALID, "اداره محل صدور مادر");
           setFocusControl(frm, MOTHER_SHENAS_ISSUE_PLACE);
         }
         else {
           infMaster.setMotherShenasIssuePlace(motherShenasIssuePlace);
         }*/

      String motherOfficeCode = ((String) frm.get(MOTHER_OFFICE_CODE)).trim();
      if (Utils.isEmpty(motherOfficeCode)) {
        addError(msgsErrors, FIELD_CAN_NOT_BE_EMPTY, "اداره محل صدور مادر");
        setFocusControl(frm, MOTHER_OFFICE_CODE);
      } else if (motherOfficeCode.length() > 3) {
        addError(msgsErrors, FIELD_INVALID, "اداره محل صدور مادر");
        setFocusControl(frm, MOTHER_OFFICE_CODE);
      } else {
        infMaster.setMotherOfficeCode(Short.parseShort(motherOfficeCode));
      }

      /*String motherHozeh = (String) frm.get(MOTHER_HOZEH);
           motherHozeh = Utils.charVal2(motherHozeh);
           frm.set(MOTHER_HOZEH, motherHozeh);
           if (motherHozeh.length() > 50) {
      addError(msgsErrors, FIELD_INVALID, "حوزه مادر");
      setFocusControl(frm, MOTHER_HOZEH);
           }
           else {
      infMaster.setMotherHozeh(motherHozeh);
           }*/

      String motherHozehCodeKind = ((String) frm.get(MOTHER_HOZEH_CODE_KIND)).trim();
      if (!Utils.isEmpty(motherHozehCodeKind) && !motherHozehCodeKind.startsWith("irth")) {
        String key[] = motherHozehCodeKind.split(Constants.DATA_SEPARATOR_SPLIT);
        String motherHozehCode = key[0];

        if (Utils.isEmpty(motherHozehCode)) {
          addError(msgsErrors, FIELD_CAN_NOT_BE_EMPTY, "كد حوزه مادر");
          setFocusControl(frm, MOTHER_HOZEH_CODE_KIND);
        } else if (motherHozehCode.length() > 3) {
          addError(msgsErrors, FIELD_INVALID, "كد حوزه مادر");
          setFocusControl(frm, MOTHER_HOZEH_CODE_KIND);
        } else {
          infMaster.setMotherHozehCode(Short.parseShort(motherHozehCode));
        }

        String motherHozehKind = key[1];
        if (Utils.isEmpty(motherHozehKind)) {
          addError(msgsErrors, FIELD_CAN_NOT_BE_EMPTY, "نوع حوزه مادر");
          setFocusControl(frm, MOTHER_HOZEH_CODE_KIND);
        } else if (motherHozehKind.length() > 1) {
          addError(msgsErrors, FIELD_INVALID, "نوع حوزه مادر");
          setFocusControl(frm, MOTHER_HOZEH_CODE_KIND);
        } else {
          infMaster.setMotherHozehKind(motherHozehKind);
        }
      } else {
        addError(msgsErrors, FIELD_CAN_NOT_BE_EMPTY, "حوزه مادر");
        setFocusControl(frm, MOTHER_HOZEH_CODE_KIND);
      }

      String motherZipCode = ((String) frm.get(MOTHER_ZIP_CODE)).trim();
      if (!Utils.isEmpty(motherZipCode)) {
        if (!Utils.isValidZipCode(motherZipCode)) {
          addError(msgsErrors, FIELD_INVALID, "كد پستي مادر");
          setFocusControl(frm, MOTHER_ZIP_CODE);
        } else {
          infMaster.setMotherZipCode(Long.parseLong(motherZipCode));
        }
      } else {
        infMaster.setMotherZipCode(0);
      }

      String motherAddressGeoSerial = ((String) frm.get(MOTHER_ADDRESS_GEO_SERIAL)).trim();

      if (Utils.isEmpty(motherAddressGeoSerial)) {
        addError(msgsErrors, FIELD_CAN_NOT_BE_EMPTY, "کد محل سکونت مادر");
        setFocusControl(frm, MOTHER_ADDRESS_GEO_SERIAL);
      } else if (!Utils.isEmpty(motherAddressGeoSerial)) {
        if (searchMotherAddressGeoSerial(frm) == false) {
          addError(msgsErrors, FIELD_INVALID, "کد محل سکونت مادر");
          setFocusControl(frm, MOTHER_ADDRESS_GEO_SERIAL);
        } else {
          infMaster.setMotherAddressGeoSerial(Integer.parseInt(motherAddressGeoSerial));
        }
      } else {
        infMaster.setMotherAddressGeoSerial(0);
      }

      String motherAddress = (String) frm.get(MOTHER_ADDRESS);
      motherAddress = Utils.charVal2(motherAddress);
      if (Utils.isEmpty(motherAddress)) {
        addError(msgsErrors, FIELD_CAN_NOT_BE_EMPTY, "آدرس محل اقامت مادر");
        setFocusControl(frm, FATHER_ADDRESS);
      } else if (motherAddress.length() > 255) {
        addError(msgsErrors, SHOULD_BE_LESS, "طول آدرس محل اقامت مادر", "255 كاراكتر");
        setFocusControl(frm, MOTHER_ADDRESS);
      } else {
        infMaster.setMotherAddress(motherAddress);
      }

      if (motherFoundInDb
          && !Utils.isEmpty(motherInfo.getFamilyNameChangeFlag())
          && motherInfo.getFamilyNameChangeFlag().equalsIgnoreCase(Constants.ChangeFlag.NOT_READ)) {
        addError(msgsWarnings, HAS_MIM, "ركورد مادر");
        setFocusControl(frm, MOTHER_NIN);
        motherContradictionErrors =
            motherContradictionErrors
                + Constants.ContradictionErrors.ERR_MOTHER_HAS_MIM
                + Constants.DATA_SEPARATOR;
      }

      String parentDateOfMarriage = ((String) frm.get(PARENT_DATE_OF_MARRIAGE)).trim();
      if (((String) frm.get(MARR_REG)).equalsIgnoreCase(Constants.MarriageRegisteration.REGISTERED)
          && Utils.isEmpty(parentDateOfMarriage)) {
        addError(msgsErrors, FIELD_CAN_NOT_BE_EMPTY, "تاريخ ازدواج والدين");
        setFocusControl(frm, PARENT_DATE_OF_MARRIAGE);
      } else if (!Utils.isEmpty(parentDateOfMarriage)) {
        if (!DateUtils.isValidRevFormattedFDate(parentDateOfMarriage)) {
          addError(msgsErrors, FIELD_INVALID, "تاريخ ازدواج والدين");
          setFocusControl(frm, PARENT_DATE_OF_MARRIAGE);
        } else if (DateUtils.unformatRevFormattedFdate(parentDateOfMarriage)
                .compareTo(DateUtils.fDate())
            >= 0) {
          addError(msgsErrors, SHOULD_BE_LESS, "تاريخ ازدواج والدين", "تاريخ روز");
          setFocusControl(frm, PARENT_DATE_OF_MARRIAGE);
        } else if (!Utils.isEmpty(fatherDateOfBirth) || !Utils.isEmpty(motherDateOfBirth)) {
          boolean noError = true;
          if (!Utils.isEmpty(fatherDateOfBirth)
              && fatherDateOfBirthIsFull
              && DateUtils.isValidRevFormattedFDate(fatherDateOfBirth)
              && DateUtils.unformatRevFormattedFdate(fatherDateOfBirth)
                      .compareTo(DateUtils.unformatRevFormattedFdate(parentDateOfMarriage))
                  >= 0) {
            addError(msgsErrors, SHOULD_BE_LESS, "تاريخ تولد پدر", "تاريخ ازدواج والدين");
            setFocusControl(frm, PARENT_DATE_OF_MARRIAGE);
            noError = false;
          }

          if (!Utils.isEmpty(motherDateOfBirth)
              && motherDateOfBirthIsFull
              && DateUtils.isValidRevFormattedFDate(motherDateOfBirth)
              && DateUtils.unformatRevFormattedFdate(motherDateOfBirth)
                      .compareTo(DateUtils.unformatRevFormattedFdate(parentDateOfMarriage))
                  >= 0) {
            addError(msgsErrors, SHOULD_BE_LESS, "تاريخ تولد مادر", "تاريخ ازدواج والدين");
            setFocusControl(frm, PARENT_DATE_OF_MARRIAGE);
            noError = false;
          }
          if (noError) {
            infMaster.setParentDateOfMarriage(
                DateUtils.unformatRevFormattedFdate(parentDateOfMarriage));
          }
        } else {
          infMaster.setParentDateOfMarriage(
              DateUtils.unformatRevFormattedFdate(parentDateOfMarriage));
        }
      } else {
        infMaster.setParentDateOfMarriage(parentDateOfMarriage);
      }

      String parentMarrRegstNo = (String) frm.get(PARENT_MARR_REGST_NO);
      parentMarrRegstNo = Utils.charVal2(parentMarrRegstNo);
      if (((String) frm.get(MARR_REG)).equalsIgnoreCase(Constants.MarriageRegisteration.REGISTERED)
          && Utils.isEmpty(parentMarrRegstNo)) {
        addError(msgsErrors, FIELD_CAN_NOT_BE_EMPTY, "شماره ثبت ازدواج والدين");
        setFocusControl(frm, PARENT_MARR_REGST_NO);
      } else if (parentMarrRegstNo.length() > 10) {
        addError(msgsErrors, FIELD_INVALID, "شماره ثبت ازدواج والدين");
        setFocusControl(frm, PARENT_MARR_REGST_NO);
      } else {
        infMaster.setParentMarrRegstNo(parentMarrRegstNo);
      }

      String parentRegstOfficeNo = (String) frm.get(PARENT_REGST_OFFICE_NO);
      parentRegstOfficeNo = Utils.charVal2(parentRegstOfficeNo);
      if (((String) frm.get(MARR_REG)).equalsIgnoreCase(Constants.MarriageRegisteration.REGISTERED)
          && Utils.isEmpty(parentRegstOfficeNo)) {
        addError(msgsErrors, FIELD_CAN_NOT_BE_EMPTY, "شماره دفترخانه والدين");
        setFocusControl(frm, PARENT_REGST_OFFICE_NO);
      } else if (parentRegstOfficeNo.length() > 10) {
        addError(msgsErrors, FIELD_INVALID, "شماره دفترخانه والدين");
        setFocusControl(frm, PARENT_REGST_OFFICE_NO);
      } else {
        infMaster.setParentRegstOfficeNo(parentRegstOfficeNo);
      }

      String parentRegstOfficeGeo = (String) frm.get(PARENT_REGST_OFFICE_GEO);
      parentRegstOfficeGeo = Utils.charVal(parentRegstOfficeGeo);
      frm.set(PARENT_REGST_OFFICE_GEO, parentRegstOfficeGeo);
      if (((String) frm.get(MARR_REG)).equalsIgnoreCase(Constants.MarriageRegisteration.REGISTERED)
          && Utils.isEmpty(parentRegstOfficeGeo)) {
        addError(msgsErrors, FIELD_CAN_NOT_BE_EMPTY, "محل دفترخانه والدين");
        setFocusControl(frm, PARENT_REGST_OFFICE_GEO);
      } else if (parentRegstOfficeGeo.length() > 50) {
        addError(msgsErrors, FIELD_INVALID, "محل دفترخانه والدين");
        setFocusControl(frm, PARENT_REGST_OFFICE_GEO);
      } else {
        infMaster.setParentRegstOfficeGeo(parentRegstOfficeGeo);
      }

      msgs[0] = msgsErrors;
      msgs[1] = msgsWarnings;
      httpServletRequest.getSession().setAttribute("personData", infMaster);
      httpServletRequest
          .getSession()
          .setAttribute("fatherContradictionData", fatherContradictionErrors);
      httpServletRequest
          .getSession()
          .setAttribute("motherContradictionData", motherContradictionErrors);

    } catch (Exception ex) {
      addError(msgs[0], ex.getMessage());
    }

    return msgs;
  }
Beispiel #4
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);
          VillageInfo inf = Geo.getVillageDetails(Integer.parseInt(formKey));
          frm.set(GEO_SERIAL, Integer.toString(inf.getGeoSerial()));
          frm.set(GEO_DESC, inf.getGeoDesc());
          frm.set(OSTAN_SERIAL, Integer.toString(inf.getOstanSerial()));
          frm.set(SHAHRESTAN_SERIAL, Integer.toString(inf.getShahrestanSerial()));
          frm.set(BAKHSH_SERIAL, Integer.toString(inf.getBakhshSerial()));
          frm.set(DEHESTAN_SERIAL, Integer.toString(inf.getDehestanSerial()));
          if (inf.isInactive()) {
            frm.set(CODE_ACTIVE_FLAG, "on");
          }
        } else {
          frm.set(GEO_SERIAL, Integer.toString(Geo.getNewGeoSerial(Constants.GeoFlag.VILLAGE)));
        }

        String serial;
        serial = (String) frm.get(OSTAN_SERIAL);
        if (Utils.isEmpty(serial)) {
          serial = "0";
          frm.set(OSTAN_SERIAL, serial);
        }
        frm.set(OSTAN_DESC, Geo.getOstanDesc(Integer.parseInt(serial)));

        serial = (String) frm.get(SHAHRESTAN_SERIAL);
        if (Utils.isEmpty(serial)) {
          serial = "0";
          frm.set(SHAHRESTAN_SERIAL, serial);
        }
        frm.set(SHAHRESTAN_DESC, Geo.getShahrestanDesc(Integer.parseInt(serial)));

        serial = (String) frm.get(BAKHSH_SERIAL);
        if (Utils.isEmpty(serial)) {
          serial = "0";
          frm.set(BAKHSH_SERIAL, serial);
        }
        frm.set(BAKHSH_DESC, Geo.getBakhshDesc(Integer.parseInt(serial)));

        serial = (String) frm.get(DEHESTAN_SERIAL);
        if (Utils.isEmpty(serial)) {
          serial = "0";
          frm.set(DEHESTAN_SERIAL, serial);
        }
        frm.set(DEHESTAN_DESC, Geo.getDehestanDesc(Integer.parseInt(serial)));

        if (isFormInAddMode(frm)) {
          resetFocusControl(frm, GEO_SERIAL);
        } else if (isFormInModifyMode(frm)) {
          resetFocusControl(frm, GEO_DESC);
        }
      } catch (Exception ex) {
        addError(msgs, ex.getMessage());
        saveErrors(httpServletRequest, msgs);
      }
      return actionMapping.findForward(EDIT);
    } else {
      VillageInfo inf = new VillageInfo();
      String geoSerial = ((String) frm.get(GEO_SERIAL)).trim();
      resetFocusControl(frm, "");
      if (Utils.isEmpty(geoSerial)) {
        addError(msgs, FIELD_CAN_NOT_BE_EMPTY, "كد");
        setFocusControl(frm, GEO_SERIAL);
      } else if (!Utils.isValidNotZeroNumber(geoSerial, 6)) {
        addError(msgs, FIELD_INVALID, "كد");
        setFocusControl(frm, GEO_SERIAL);
      } else {
        inf.setGeoSerial(Integer.parseInt(geoSerial));
      }

      if (!isFormInDeleteMode(frm)) {
        String geoDesc = Utils.charVal((String) frm.get(GEO_DESC));
        frm.set(GEO_DESC, geoDesc);
        if (Utils.isEmpty(geoDesc)) {
          addError(msgs, FIELD_CAN_NOT_BE_EMPTY, "نام");
          setFocusControl(frm, GEO_DESC);
        } else if (geoDesc.length() > 50) {
          addError(msgs, FIELD_INVALID, "نام");
          setFocusControl(frm, GEO_DESC);
        } else {
          inf.setGeoDesc(geoDesc);
        }

        String ostanSerial = (String) frm.get(OSTAN_SERIAL).toString();
        if (Utils.isEmpty(ostanSerial)) {
          addError(msgs, FIELD_CAN_NOT_BE_EMPTY, "استان");
          setFocusControl(frm, GEO_DESC);
        } else if (!Utils.isValidNotZeroNumber(ostanSerial, 6)) {
          addError(msgs, FIELD_INVALID, "استان");
          setFocusControl(frm, GEO_DESC);
        } else {
          inf.setOstanSerial(Integer.parseInt(ostanSerial));
        }

        String shahrestanSerial = (String) frm.get(SHAHRESTAN_SERIAL).toString();
        if (Utils.isEmpty(shahrestanSerial)) {
          addError(msgs, FIELD_CAN_NOT_BE_EMPTY, "شهرستان");
          setFocusControl(frm, GEO_DESC);
        } else if (!Utils.isValidNotZeroNumber(shahrestanSerial, 6)) {
          addError(msgs, FIELD_INVALID, "شهرستان");
          setFocusControl(frm, GEO_DESC);
        } else {
          inf.setShahrestanSerial(Integer.parseInt(shahrestanSerial));
        }

        String bakhshSerial = (String) frm.get(BAKHSH_SERIAL).toString();
        if (Utils.isEmpty(bakhshSerial)) {
          addError(msgs, FIELD_CAN_NOT_BE_EMPTY, "بخش");
          setFocusControl(frm, GEO_DESC);
        } else if (!Utils.isValidNotZeroNumber(bakhshSerial, 6)) {
          addError(msgs, FIELD_INVALID, "بخش");
          setFocusControl(frm, GEO_DESC);
        } else {
          inf.setBakhshSerial(Integer.parseInt(bakhshSerial));
        }

        String dehestanSerial = (String) frm.get(DEHESTAN_SERIAL).toString();
        if (Utils.isEmpty(dehestanSerial)) {
          addError(msgs, FIELD_CAN_NOT_BE_EMPTY, "دهستان");
          setFocusControl(frm, GEO_DESC);
        } else if (!Utils.isValidNotZeroNumber(dehestanSerial, 6)) {
          addError(msgs, FIELD_INVALID, "دهستان");
          setFocusControl(frm, GEO_DESC);
        } else {
          inf.setDehestanSerial(Integer.parseInt(dehestanSerial));
        }

        if (Utils.isEmpty(frm.get(CODE_ACTIVE_FLAG))) {
          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 {
        Geo.saveVillage(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);
      }
    }
  }
  public ActionForward execute(
      ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response) {
    LazyValidatorForm frm = (LazyValidatorForm) form;

    long nin = 0;
    String name = "";
    String fname = "";
    String birthDate = "";
    String shenasNo = "";
    IranianInfo inf = null;
    String office = "";
    String hozehCode = "";
    String hozehKind = "";
    try {
      if (Utils.isEmpty(request.getParameter("spouseNin"))) {
        frm.set(SPOUSE_PERSON_NIN, "");
        frm.set(PERSONALITY_NO, request.getParameter("spPerNo").trim());
      } else {
        frm.set(SPOUSE_PERSON_NIN, request.getParameter("spouseNin").trim());
        frm.set(PERSONALITY_NO, "");
      }
      if (!Utils.isEmpty(request.getParameter("spouseNin"))
          && Utils.isEmpty(request.getParameter("spPerNo"))
          && !Utils.isEmpty(request.getParameter("spouseName"))
          && !request.getParameter("spouseNin").equals("")
          && request.getParameter("spouseNin") != null
          && !request.getParameter("spouseName").equals("")
          && request.getParameter("spouseName") != null
          && request.getParameter("spouseNin").matches("[0-9]*")
          && Utils.charVal((String) request.getParameter("spouseNin")).length() <= 50) {
        nin = Long.parseLong(request.getParameter("spouseNin").trim());
        name = Utils.charVal((String) request.getParameter("spouseName"));

        if (Utils.isValidNin(String.valueOf(nin)))
          inf = (IranianInfo) Person.getIranianDetails(nin);

        if (inf == null) {
          frm.set(SHENASNAME_ISSUE_PLACE, "");
          frm.set(HOZEH, "");
          frm.set(PERSON_FNAME, "");
          frm.set(DATE_OF_BIRTH_SUN, "");
          frm.set(SHENASNAME_NO, "");

          office = "";
          hozehCode = "";
          hozehKind = "";
          fname = "";
          birthDate = "";
          shenasNo = "";
        } else {
          if (!Utils.isEmpty(inf.getPersonName())
              && Utils.charVal(inf.getPersonName()).equalsIgnoreCase(name)) {
            if (!Utils.isEmpty(inf.getOfficeCode())) {
              office = inf.getOfficeCode();
              frm.set(SHENASNAME_ISSUE_PLACE, office);
            } else {
              office = "";
              frm.set(SHENASNAME_ISSUE_PLACE, office);
            }
            if (!Utils.isEmpty(inf.getHozehCode())) hozehCode = inf.getHozehCode();
            else hozehCode = "";
            if (!Utils.isEmpty(inf.getHozehKind())) hozehKind = inf.getHozehKind();
            else hozehKind = "";
            if (!Utils.isEmpty(inf.getHozehCode()) && !Utils.isEmpty(inf.getHozehKind())) {
              frm.set(HOZEH, hozehCode + "|" + hozehKind);
            } else {
              frm.set(HOZEH, "");
            }
            if (!Utils.isEmpty(inf.getPersonFname())) {
              fname = inf.getPersonFname();
              frm.set(PERSON_FNAME, fname);
            } else fname = "";
            if (!Utils.isEmpty(inf.getDateOfBirthSun())) {
              birthDate = DateUtils.revFormatDate(inf.getDateOfBirthSun());
              frm.set(DATE_OF_BIRTH_SUN, birthDate);
            } else birthDate = "";
            if (!Utils.isEmpty(inf.getShenasnameNo())) {
              shenasNo = inf.getShenasnameNo();
              frm.set(SHENASNAME_NO, shenasNo);
            } else shenasNo = "";

            Vector vHozeh = new Vector();
            if (!Utils.isEmpty(office))
              vHozeh = Place.listHozehWithAllData(Short.parseShort(office));
            vHozeh.add(0, new CodeDesc("", ""));

            Utils_3F.write(
                response,
                vHozeh,
                office + "|" + hozehCode + "|" + hozehKind + "|" + fname + "|" + birthDate + "|"
                    + shenasNo);
          } else {
            frm.set(SHENASNAME_ISSUE_PLACE, "");
            frm.set(HOZEH, "");
            frm.set(PERSON_FNAME, "");
            frm.set(DATE_OF_BIRTH_SUN, "");
            frm.set(SHENASNAME_NO, "");
            Utils_3F.writeNin(response, "errNotEqualName");
          }
        }
      } else if (Utils.isEmpty(request.getParameter("spouseNin"))
          && Utils.isEmpty(request.getParameter("spPerNo"))) {
        frm.set(SHENASNAME_ISSUE_PLACE, "");
        frm.set(HOZEH, "");
        frm.set(PERSON_FNAME, "");
        frm.set(DATE_OF_BIRTH_SUN, "");
        frm.set(SHENASNAME_NO, "");
        Utils_3F.writeNin(response, "errEmptyBothNinPersonality");
      } else if (Utils.isEmpty(request.getParameter("spouseNin"))
          && !Utils.isEmpty(request.getParameter("spPerNo")))
        Utils_3F.writeNin(response, "errEmptyNinNotEmptyPersonality");
      else if (!Utils.isEmpty(request.getParameter("spouseNin")) && Utils.isEmpty(name)) {
        frm.set(SHENASNAME_ISSUE_PLACE, "");
        frm.set(HOZEH, "");
        frm.set(PERSON_FNAME, "");
        frm.set(DATE_OF_BIRTH_SUN, "");
        frm.set(SHENASNAME_NO, "");
        Utils_3F.writeNin(response, "errEmptyName");
      }

    } catch (Exception ex) {
      System.out.println(ex.getMessage());
    }
    return null;
  }
  public ActionMessages validDetails(
      LazyValidatorForm frm, Vector chngInfVect, boolean[] rowChanged, DeathExtInfo infCurr)
      throws Exception {
    ActionMessages msgs = new ActionMessages();
    boolean hasSexCodeChange = false;
    int sexCodeChangeIndex = 0;
    int sexCodeChangeIndexAtVec = 0;

    boolean hasDeadZipCodeChange = false;
    int deadZipCodeChangeIndex = 0;
    int deadZipCodeChangeIndexAtVec = 0;

    for (int j = 0; j < chngInfVect.size(); j++) {
      switch (((GatherChangeComDeathFieldInfo) chngInfVect.elementAt(j))
          .getGatherChngComFieldCode()) {
        case Constants.GatherChangeComFieldCode.SEX_CODE:
          hasSexCodeChange = true;
          for (int row = 0; row < 15; row++) {
            if (rowChanged[row]
                && !Utils.isEmpty((String) frm.get("gatherChngFieldCodeD" + String.valueOf(row)))
                && Integer.parseInt((String) frm.get("gatherChngFieldCodeD" + String.valueOf(row)))
                    == ((GatherChangeComDeathFieldInfo) chngInfVect.elementAt(j))
                        .getGatherChngComFieldCode()) sexCodeChangeIndex = row;
          }
          sexCodeChangeIndexAtVec = j;
          break;
        case Constants.GatherChangeComFieldCode.DEAD_ZIP_CODE:
          hasDeadZipCodeChange = true;
          for (int row = 0; row < 15; row++) {
            if (rowChanged[row]
                && !Utils.isEmpty((String) frm.get("gatherChngFieldCodeD" + String.valueOf(row)))
                && Integer.parseInt((String) frm.get("gatherChngFieldCodeD" + String.valueOf(row)))
                    == ((GatherChangeComDeathFieldInfo) chngInfVect.elementAt(j))
                        .getGatherChngComFieldCode()) deadZipCodeChangeIndex = row;
          }
          deadZipCodeChangeIndexAtVec = j;
          break;
      }
    }
    if (hasSexCodeChange) {
      String newPersonSexCode = "";
      if (!((GatherChangeComDeathFieldInfo) chngInfVect.elementAt(sexCodeChangeIndexAtVec))
          .getNewValue()
          .equalsIgnoreCase("-")) {
        newPersonSexCode =
            ((GatherChangeComDeathFieldInfo) chngInfVect.elementAt(sexCodeChangeIndexAtVec))
                .getNewValue();
        String personSexCode = "";
        long personNin = infCurr.getPersonNin();
        PersonInfo deadPersonInfoForCompare = (new Person()).getPersonBrief(personNin);
        if (deadPersonInfoForCompare != null) {
          personSexCode = deadPersonInfoForCompare.getSexCode();
        }
        if (!Utils.isEmpty(personSexCode)
            && !Utils.charVal(newPersonSexCode.trim()).equalsIgnoreCase(personSexCode)) {
          addError(
              msgs,
              UNKILE_3F,
              "جنسيت متوفي " + "در رديف " + Integer.toString(sexCodeChangeIndex + 1));
          setFocusControl(frm, NEW_VALUE_DEATH + Integer.toString(sexCodeChangeIndex));
        }
      }
    }
    return msgs;
  }
  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);
      }
    }
  }