private boolean searchMotherAddressGeoSerial(LazyValidatorForm frm) {
    boolean isValid = false;

    frm.set(MOTHER_ADDRESS_GEO_DESC, "");
    String addressGeoSerialCode = (String) frm.get(MOTHER_ADDRESS_GEO_SERIAL);

    try {
      String addressDesc = "";
      GeoInfo geoInfo = null;
      if (!Utils.isEmpty(addressGeoSerialCode)) {
        geoInfo = (new Geo()).getGeoDetails(Integer.parseInt(addressGeoSerialCode));
        if ((geoInfo.getGeoFlag().equalsIgnoreCase(Constants.GeoFlag.VILLAGE)
            || geoInfo.getGeoFlag().equalsIgnoreCase(Constants.GeoFlag.CITY)
            || geoInfo.getGeoFlag().equalsIgnoreCase(Constants.GeoFlag.COUNTRY))) {
          addressDesc = geoInfo.getGeoDesc();
        }
      }
      if (!Utils.isEmpty(addressDesc)) {
        frm.set(MOTHER_ADDRESS_GEO_DESC, addressDesc);
        isValid = true;
      }
    } catch (Exception ex) {
      Utils.log4j(ex);
    }
    return isValid;
  }
 public void reapetAjaxSideServer(LazyValidatorForm frm, HttpServletRequest request)
     throws Exception {
   long country = 0;
   try {
     if (frm.get(CONSUL_GEO) != null && !Utils.isEmpty(String.valueOf(frm.get(CONSUL_GEO))))
       country = Long.parseLong(String.valueOf(frm.get(CONSUL_GEO)));
     Vector vConsulHozeh = new Vector();
     if (country != 0) vConsulHozeh = Place.listConsulHozeh(country);
     vConsulHozeh.add(0, new CodeDesc("", ""));
     request.getSession().setAttribute("consulHozehList", vConsulHozeh);
   } catch (Exception ex) {
     Utils.log4j(ex);
   }
 }
  private boolean searchOfficeGeoSerial(LazyValidatorForm frm) {
    boolean isValid = false;

    String officeGeoSerialCode = (String) frm.get(REGST_GEO);

    try {
      String officeDesc = (new Geo()).getGeoDesc(Integer.parseInt(officeGeoSerialCode));
      if (Utils.isEmpty(officeDesc)) {
        frm.set(REGST_GEO_DESC, "");
      }
      if (!Utils.isEmpty(officeDesc)) {
        frm.set(REGST_GEO_DESC, officeDesc);
        isValid = true;
      }
    } catch (Exception ex) {
      Utils.log4j(ex);
    }
    return isValid;
  }
Beispiel #4
0
  private boolean searchGeoDesc(LazyValidatorForm frm, String geoFlag) {
    boolean isValid = false;

    frm.set(GEO_DESC, "");
    try {
      String geoSerial = ((String) frm.get(GEO_SERIAL));
      if (!Utils.isEmpty(geoSerial)) {
        geoSerial = geoSerial.trim();
        if (Utils.isValidNotZeroNumber(geoSerial, 6)) {
          String geoDesc = Geo.getGeoDesc(Integer.parseInt(geoSerial), geoFlag);
          if (!Utils.isEmpty(geoDesc)) {
            frm.set(GEO_DESC, geoDesc);
            isValid = true;
          }
        }
      }
    } catch (Exception ex) {
    }

    return isValid;
  }
 private String getDateOfDeath(long personNin) throws Exception {
   String deathDate = "";
   try {
     IranianInfo info = (IranianInfo) Person.getIranianDetails(personNin);
     if (info != null
         && !Utils.isEmpty(info.getDeathStatus())
         && info.getDeathStatus().equalsIgnoreCase(Constants.DeathStatus.DEAD)) {
       String deathKey = Person.getDeathKey(personNin);
       if (!Utils.isEmpty(deathKey)) {
         DeathExtInfo deathInfo =
             Person.getDeathDetails(
                 Long.parseLong(deathKey.split(Constants.DATA_SEPARATOR_SPLIT)[0]),
                 Short.parseShort(deathKey.split(Constants.DATA_SEPARATOR_SPLIT)[1]));
         if (deathInfo != null) deathDate = deathInfo.getDateOfDeath();
       }
     }
     if (!Utils.isEmpty(deathDate) && !deathDate.equalsIgnoreCase("نامعلوم"))
       return DateUtils.unformatSpaceToZeroDate(deathDate);
     else return "";
   } catch (Exception ex) {
     Utils.log4j(ex);
     return "";
   }
 }
  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 #7
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 void fillFormVars(HttpServletRequest httpServletRequest, LazyValidatorForm frm) {
    IranianInfo infMaster =
        (IranianInfo) httpServletRequest.getSession().getAttribute("personData");
    frm.set(FATHER_NAME, Utils.trimConvert(Utils.nvl(infMaster.getFatherName())));
    frm.set(FATHER_FNAME, Utils.trimConvert(Utils.nvl(infMaster.getFatherFname())));
    if (infMaster.getFatherNin() == 0) {
      frm.set(FATHER_NIN, "");
    } else {
      frm.set(FATHER_NIN, Long.toString(infMaster.getFatherNin()));
    }
    frm.set(FATHER_SHENAS_NO, Integer.toString(infMaster.getFatherShenasNo()));
    if (Utils.isEmpty(infMaster.getFatherShenasSeri())) {
      frm.set(FATHER_SHENAS_SERI, "");
    } else {
      frm.set(FATHER_SHENAS_SERI, infMaster.getFatherShenasSeri());
    }
    if (infMaster.getFatherShenasSrno() == 0) {
      frm.set(FATHER_SHENAS_SRNO, "");
    } else {
      frm.set(FATHER_SHENAS_SRNO, Integer.toString(infMaster.getFatherShenasSrno()));
    }
    /* frm.set(FATHER_SHENAS_ISSUE_PLACE,
    Utils.nvl(infMaster.getFatherShenasIssuePlace()));*/
    frm.set(FATHER_OFFICE_CODE, Utils.nvl(Short.toString(infMaster.getFatherOfficeCode())));
    //  frm.set(FATHER_HOZEH, Utils.nvl(infMaster.getFatherHozeh()));
    if (infMaster.getFatherHozehKind() != null) {
      frm.set(
          FATHER_HOZEH_CODE_KIND,
          ((infMaster.getFatherHozehCode())
              + Constants.DATA_SEPARATOR
              + (infMaster.getFatherHozehKind()).trim()));
    } else {
      frm.set(FATHER_HOZEH_CODE_KIND, "");
    }
    if (Utils.isEmpty(infMaster.getFatherDateOfBirth())) {
      frm.set(FATHER_DATE_OF_BIRTH, "");
    } else {
      if (infMaster.getFatherDateOfBirth().length() == 8) {
        frm.set(FATHER_DATE_OF_BIRTH, DateUtils.revFormatDate(infMaster.getFatherDateOfBirth()));
      } else {
        frm.set(FATHER_DATE_OF_BIRTH, infMaster.getFatherDateOfBirth());
      }
    }
    if (infMaster.getFatherAddressGeoSerial() == 0) {
      frm.set(FATHER_ADDRESS_GEO_SERIAL, "");
    } else {
      frm.set(FATHER_ADDRESS_GEO_SERIAL, Integer.toString(infMaster.getFatherAddressGeoSerial()));
    }
    frm.set(FATHER_ADDRESS, Utils.nvl(infMaster.getFatherAddress()));
    if (infMaster.getFatherZipCode() == 0) {
      frm.set(FATHER_ZIP_CODE, "");
    } else {
      frm.set(FATHER_ZIP_CODE, Long.toString(infMaster.getFatherZipCode()));
    }
    frm.set(MOTHER_NAME, Utils.trimConvert(Utils.nvl(infMaster.getMotherName())));
    frm.set(MOTHER_FNAME, Utils.trimConvert(Utils.nvl(infMaster.getMotherFname())));
    if (infMaster.getMotherNin() == 0) {
      frm.set(MOTHER_NIN, "");
    } else {
      frm.set(MOTHER_NIN, Long.toString(infMaster.getMotherNin()));
    }
    frm.set(MOTHER_SHENAS_NO, Integer.toString(infMaster.getMotherShenasNo()));
    if (Utils.isEmpty(infMaster.getMotherShenasSeri())) {
      frm.set(MOTHER_SHENAS_SERI, "");
    } else {
      frm.set(MOTHER_SHENAS_SERI, infMaster.getMotherShenasSeri());
    }
    if (infMaster.getMotherShenasSrno() == 0) {
      frm.set(MOTHER_SHENAS_SRNO, "");
    } else {
      frm.set(MOTHER_SHENAS_SRNO, Integer.toString(infMaster.getMotherShenasSrno()));
    }
    frm.set(MOTHER_OFFICE_CODE, Utils.nvl(Short.toString(infMaster.getMotherOfficeCode())));
    if (infMaster.getMotherHozehKind() != null) {
      frm.set(
          MOTHER_HOZEH_CODE_KIND,
          ((infMaster.getMotherHozehCode())
              + Constants.DATA_SEPARATOR
              + (infMaster.getMotherHozehKind()).trim()));
    } else {
      frm.set(MOTHER_HOZEH_CODE_KIND, "");
    }

    if (Utils.isEmpty(infMaster.getMotherDateOfBirth())) {
      frm.set(MOTHER_DATE_OF_BIRTH, "");
    } else {
      if (infMaster.getMotherDateOfBirth().length() == 8) {
        frm.set(MOTHER_DATE_OF_BIRTH, DateUtils.revFormatDate(infMaster.getMotherDateOfBirth()));
      } else {
        frm.set(MOTHER_DATE_OF_BIRTH, infMaster.getMotherDateOfBirth());
      }
    }
    if (infMaster.getMotherAddressGeoSerial() == 0) {
      frm.set(MOTHER_ADDRESS_GEO_SERIAL, "");
    } else {
      frm.set(MOTHER_ADDRESS_GEO_SERIAL, Integer.toString(infMaster.getMotherAddressGeoSerial()));
    }
    frm.set(MOTHER_ADDRESS, Utils.trimConvert(Utils.nvl(infMaster.getMotherAddress())));
    if (infMaster.getMotherZipCode() == 0) {
      frm.set(MOTHER_ZIP_CODE, "");
    } else {
      frm.set(MOTHER_ZIP_CODE, Long.toString(infMaster.getMotherZipCode()));
    }
    frm.set(PARENT_REGST_OFFICE_NO, Utils.nvl(infMaster.getParentRegstOfficeNo()));
    frm.set(PARENT_REGST_OFFICE_GEO, Utils.nvl(infMaster.getParentRegstOfficeGeo()));
    frm.set(PARENT_MARR_REGST_NO, Utils.nvl(infMaster.getParentMarrRegstNo()));
    if (Utils.isEmpty(infMaster.getParentDateOfMarriage())) {
      frm.set(PARENT_DATE_OF_MARRIAGE, "");
      frm.set(MARR_REG, Constants.MarriageRegisteration.NOT_REGISTERED);
    } else {
      frm.set(
          PARENT_DATE_OF_MARRIAGE, DateUtils.revFormatDate(infMaster.getParentDateOfMarriage()));
      frm.set(MARR_REG, Constants.MarriageRegisteration.REGISTERED);
    }
  }
  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 #10
0
  public ActionForward execute(
      ActionMapping actionMapping,
      ActionForm actionForm,
      HttpServletRequest httpServletRequest,
      HttpServletResponse httpServletResponse) {
    LazyValidatorForm frm = (LazyValidatorForm) actionForm;
    resetFocusControl(frm, CANCEL);
    ActionMessages msgs = new ActionMessages();

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

    String geoFlag = (String) frm.get(GEO_FLAG);
    if (Utils.isEmpty(geoFlag)) {
      geoFlag = (String) httpServletRequest.getParameter(GEO_FLAG);
      frm.set(GEO_FLAG, geoFlag);
    }

    if (!formSaved(frm)) {
      setFormMode(frm, ((String) httpServletRequest.getParameter(BROWSE_ACTION)));
      setFormId(frm, (String) httpServletRequest.getParameter(BROWSE_ID));
      try {
        LoginInfo loginInfo = getLoginInfo(httpServletRequest);

        String geoFlagDesc = Misc.getHardCodeDesc(Constants.TableId.GEO_FLAG, geoFlag);
        frm.set(GEO_FLAG_DESC, geoFlagDesc);

        if (!loginInfo.userHasAccess("Geo_Conversion", getFormMode(frm))) {
          if (isFormInModifyMode(frm)
              && loginInfo.userHasAccess("Geo_Conversion", Constants.ActionType.ENQUERY)) {
            setFormMode(frm, Constants.ActionType.ENQUERY);
          } else {
            throw new Exception(INVALID_ACCESS);
          }
        }
        if (!geoFlag.equals(Constants.GeoFlag.VILLAGE)) {
          throw new Exception(INVALID_ACCESS);
        }
        if (!isFormInAddMode(frm)) {
          String formKey = (String) httpServletRequest.getParameter(BROWSE_KEY);
          GeoFormationInfo inf = Geo.getGeoFormationDetails(Integer.parseInt(formKey));
          frm.set(GEO_FORMATION_SERIAL, Integer.toString(inf.getGeoFormationSerial()));
          frm.set(GEO_SERIAL, Integer.toString(inf.getGeoSerial()));
          frm.set(APPROVAL_LETTER_NO, inf.getApprovalLetterNo());
          frm.set(APPROVAL_LETTER_DATE, DateUtils.revFormatDate(inf.getApprovalLetterDate()));
          frm.set(GEO_DESC, Geo.getGeoDesc(inf.getGeoSerial()));
        }
        frm.set(GEO_FLAG_DESC, geoFlagDesc);

        if (isFormInModifyMode(frm)) {
          resetFocusControl(frm, APPROVAL_LETTER_NO);
        }
      } catch (Exception ex) {
        addError(msgs, ex.getMessage());
        saveErrors(httpServletRequest, msgs);
      }
      return actionMapping.findForward(EDIT);
    } else {
      try {
        String geoFlagDesc = (String) frm.get(GEO_FLAG_DESC);
        if (!geoFlag.equals(Constants.GeoFlag.VILLAGE)) {
          addError(msgs, FIELD_CAN_NOT_BE_EMPTY, "علامت محل جغرافيايي");
          setFocusControl(frm, GEO_SERIAL);
        }
        GeoFormationInfo inf = new GeoFormationInfo();
        resetFocusControl(frm, "");
        if (isFormInDeleteMode(frm) || isFormInModifyMode(frm)) {
          String geoFormationSerial = ((String) frm.get(GEO_FORMATION_SERIAL)).trim();
          if (Utils.isEmpty(geoFormationSerial)) {
            addError(msgs, FIELD_CAN_NOT_BE_EMPTY, "سريال");
            setFocusControl(frm, GEO_SERIAL);
          } else if (!Utils.isValidNotZeroNumber(geoFormationSerial, 6)) {
            addError(msgs, FIELD_INVALID, "سريال");
            setFocusControl(frm, GEO_SERIAL);
          } else {
            inf.setGeoFormationSerial(Integer.parseInt(geoFormationSerial));
          }
        }

        if (isFormInAddMode(frm)) {
          String geoSerial = ((String) frm.get(GEO_SERIAL)).trim();
          if (Utils.isEmpty(geoSerial)) {
            addError(msgs, FIELD_CAN_NOT_BE_EMPTY, "سريال " + geoFlagDesc);
            setFocusControl(frm, GEO_SERIAL);
          }
          /*  else if (searchGeoDesc(frm, geoFlag) == false) {
            addError(msgs, FIELD_INVALID, "سريال " + geoFlagDesc);
            setFocusControl(frm, GEO_SERIAL);
          }  */
          else {
            inf.setGeoSerial(Integer.parseInt(geoSerial));
          }
        }

        if (!isFormInDeleteMode(frm)) {
          String approvalLetterNo = Utils.trimConvert((String) frm.get(APPROVAL_LETTER_NO));
          frm.set(APPROVAL_LETTER_NO, approvalLetterNo);
          if (Utils.isEmpty(approvalLetterNo)) {
            addError(msgs, FIELD_CAN_NOT_BE_EMPTY, "شماره تصويب نامه");
            setFocusControl(frm, APPROVAL_LETTER_NO);
          } else if (approvalLetterNo.length() > 20) {
            addError(msgs, FIELD_INVALID, "شماره تصويب نامه");
            setFocusControl(frm, APPROVAL_LETTER_NO);
          } else {
            inf.setApprovalLetterNo(approvalLetterNo);
          }

          String approvalLetterDate = ((String) frm.get(APPROVAL_LETTER_DATE)).trim();
          if (Utils.isEmpty(approvalLetterDate)) {
            addError(msgs, FIELD_CAN_NOT_BE_EMPTY, "تاريخ تصويب نامه");
            setFocusControl(frm, APPROVAL_LETTER_DATE);
          } else if (!DateUtils.isValidRevFormattedFDate(approvalLetterDate)) {
            addError(msgs, FIELD_INVALID, "تاريخ تصويب نامه");
            setFocusControl(frm, APPROVAL_LETTER_DATE);
          } else if (DateUtils.unformatRevFormattedFdate(approvalLetterDate)
                  .compareTo(DateUtils.fDate())
              > 0) {
            addError(msgs, FIELD_SHOULD_BE_LESS_THAN, "تاريخ تصويب نامه", "تاريخ روز");
            setFocusControl(frm, APPROVAL_LETTER_DATE);
          } else {
            inf.setApprovalLetterDate(DateUtils.unformatRevFormattedFdate(approvalLetterDate));
          }
        }

        if (!msgs.isEmpty()) {
          saveErrors(httpServletRequest, msgs);
          return actionMapping.findForward(EDIT);
        }
        resetFocusControl(frm, CANCEL);
        Geo.saveConversion(getFormMode(frm), inf, geoFlag);
        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 ActionMessages[] validMrgRecord(
      LazyValidatorForm frm, HttpServletRequest request, String action, boolean isOfficeManager)
      throws Exception {
    ActionMessages msgs[] = new ActionMessages[2];
    ActionMessages msgsErrors = new ActionMessages();
    ActionMessages msgsWarnings = new ActionMessages();
    MarriageInfo mrgInf = null;
    InactiveMarriageInfo inactiveMrgInf = null;

    mrgInf = new MarriageInfo();
    inactiveMrgInf = new InactiveMarriageInfo();
    LoginInfo loginInfo = getLoginInfo(request);
    try {
      if (action.equalsIgnoreCase(Constants.ActionType.ADD)
          || action.equalsIgnoreCase(Constants.ActionType.MODIFY)) {
        reapetAjaxSideServer(frm, request);

        String regstLable = "";
        String regstAuLabel = "";
        String regstRegstGeoLabel = "";
        boolean isConsul = false;
        mrgInf.setForeignStatusCode(Short.toString(Constants.ForeignStatusCode.FOREIGN));
        String marConfirm = frm.get(MARRIAGE_CONFIRM_AUT_CODE).toString().trim();
        if (!Utils.isEmpty(marConfirm)) {
          mrgInf.setMarriageConfirmAutCode(marConfirm);
          switch (Short.parseShort(frm.get(MARRIAGE_CONFIRM_AUT_CODE).toString())) {
            case Constants.MarriageConfirmAut.DECLARATION:
              frm.set(
                  MARRIAGE_REGST_REF, String.valueOf(Constants.MarriageRegstRef.MARRIAGE_OFFICE));
              regstLable = " ثبت ازدواج";
              regstAuLabel = "شماره دفترخانه ازدواج ";
              regstRegstGeoLabel = "محل دفترخانه ازدواج ";

              break;
            case Constants.MarriageConfirmAut.PROFESSION:
              frm.set(
                  MARRIAGE_REGST_REF,
                  String.valueOf(Constants.MarriageRegstRef.FORMAL_DOCUMENT_OFFICE));
              regstLable = " اقرارنامه";
              regstAuLabel = "شماره دفترخانه اسناد رسمي ";
              regstRegstGeoLabel = "محل دفترخانه اسناد رسمي ";

              break;
            case Constants.MarriageConfirmAut.PETITION:
              frm.set(MARRIAGE_REGST_REF, String.valueOf(Constants.MarriageRegstRef.COURT));
              regstLable = " دادنامه";
              regstAuLabel = "شماره شعبه ";
              regstRegstGeoLabel = "محل شعبه ";

              break;
            case Constants.MarriageConfirmAut.CONSULE:
              frm.set(
                  MARRIAGE_REGST_REF, String.valueOf(Constants.MarriageRegstRef.MARRIAGE_OFFICE));
              isConsul = true;
              regstLable = " ثبت ازدواج";
              regstAuLabel = "حوزه کنسولي تابعه ";
              regstRegstGeoLabel = "نام کشور ";

              break;
          }
        }
        boolean isDouplicateMarriageRecord = false;
        boolean isDouplicateMarriageHsb = false;
        boolean isDouplicateMarriageWf = false;

        if (action.equalsIgnoreCase(Constants.ActionType.ADD)
            && !Utils.isEmpty(frm.get(HSB_NO).toString().trim())
            && Utils.isValidFoPersonalityNo(frm.get(HSB_NO).toString().trim())
            && !Utils.isEmpty(frm.get(WF_NIN).toString().trim())
            && Utils.isValidNin(frm.get(WF_NIN).toString().trim())
            && !Utils.isEmpty(frm.get(MARRIAGE_DATE).toString().trim())
            && ((!isOfficeManager
                    && DateUtils.isValidRevFormattedFDate(((String) frm.get(MARRIAGE_DATE)).trim()))
                || (isOfficeManager
                    && DateUtils.isValidNaghesOrCompDate(
                        ((String) frm.get(MARRIAGE_DATE)).trim())))) {
          String hsbNo = frm.get(HSB_NO).toString().trim();
          long wfNin = Long.parseLong(frm.get(WF_NIN).toString().trim());
          String marriageDate = DateUtils.getCompleteDate(((String) frm.get(MARRIAGE_DATE)).trim());

          isDouplicateMarriageRecord = Person.isDouplicateMarriage(hsbNo, wfNin, marriageDate);
          isDouplicateMarriageWf = Person.isDouplicateMarriageWife(wfNin, marriageDate);

          if (isDouplicateMarriageRecord) {
            addError(msgsErrors, "errIsDouplicateMarriage_3F");
            setFocusControl(frm, HSB_NO);
          } else {
            if (isDouplicateMarriageWf) {
              addError(msgsWarnings, "errIsDouplicateMarriageWf_3F");
              setFocusControl(frm, HSB_NO);
            }
          }
        }

        if (msgsErrors.isEmpty()) {
          String mrgType = frm.get(MARRIAGE_TYPE).toString().trim();
          if (Utils.isEmpty(mrgType)) {
            addError(msgsErrors, FIELD_CAN_NOT_BE_EMPTY, "نوع ازدواج");
            setFocusControl(frm, MARRIAGE_TYPE);
          } else if (mrgType.length() > 1) {
            addError(msgsErrors, FIELD_INVALID, "نوع ازدواج");
            setFocusControl(frm, MARRIAGE_TYPE);
          } else {
            mrgInf.setMarriageTypeCode(mrgType);
          }
          String marRegstRef = frm.get(MARRIAGE_REGST_REF).toString().trim();
          if (Utils.isEmpty(marRegstRef)) {
            addError(msgsErrors, FIELD_CAN_NOT_BE_EMPTY, "مرجع ثبت");
            setFocusControl(frm, MARRIAGE_REGST_REF);
          } else if (marRegstRef.length() > 2) {
            addError(msgsErrors, FIELD_INVALID, "مرجع ثبت");
            setFocusControl(frm, MARRIAGE_REGST_REF);
          } else {
            mrgInf.setMarriageRegstRefCode(marRegstRef);
          }
          String marriageDate = "";
          String husbandNo = "";
          long wifeNin = 0;
          String hsbDeathDate = "";
          String wfDeathDate = "";
          String lastBeforHsbDateOfDeath = "";
          String lastAfterDateOfMarriage = "";

          if (!Utils.isEmpty(frm.get(HSB_NO).toString().trim())) {
            husbandNo = frm.get(HSB_NO).toString().trim();
          }
          if (!Utils.isEmpty(frm.get(WF_NIN).toString().trim())
              && Utils.isValidNin(frm.get(WF_NIN).toString().trim())) {
            wifeNin = Long.parseLong(frm.get(WF_NIN).toString().trim());
            String wifeDateOfDeath = getDateOfDeath(wifeNin);
            if (!Utils.isEmpty(wifeDateOfDeath))
              wfDeathDate = DateUtils.unformatSpaceToZeroDate(wifeDateOfDeath);
            IranianInfo wfInfo = (IranianInfo) Person.getIranianDetails(wifeNin);
            if (wfInfo != null) {
              if (!Utils.isEmpty(frm.get(MARRIAGE_DATE).toString().trim())
                  && ((!isOfficeManager
                          && DateUtils.isValidRevFormattedFDate(
                              ((String) frm.get(MARRIAGE_DATE)).trim()))
                      || (isOfficeManager
                          && DateUtils.isValidNaghesOrCompDate(
                              ((String) frm.get(MARRIAGE_DATE)).trim())))) {
                MarriageInfo lastBeforMarriage =
                    Person.getLastBeforMarriageDetails(
                        wifeNin,
                        DateUtils.getCompleteDate(((String) frm.get(MARRIAGE_DATE)).trim()));

                MarriageInfo lastAfterMarriage =
                    Person.getLastAfterMarriageDetails(
                        wifeNin,
                        DateUtils.getCompleteDate(((String) frm.get(MARRIAGE_DATE)).trim()));

                long hsbBeforNin = 0;

                if (lastBeforMarriage != null) {
                  hsbBeforNin = lastBeforMarriage.getHusbandNin();
                  lastBeforHsbDateOfDeath = getDateOfDeath(hsbBeforNin);
                }
                if (lastAfterMarriage != null) {
                  lastAfterDateOfMarriage = lastAfterMarriage.getMarriageDate();
                }
              }
            }
          }
          boolean marriageDateIsTrue = true;
          if (Utils.isEmpty(frm.get(MARRIAGE_DATE).toString().trim())) {
            addError(msgsErrors, FIELD_CAN_NOT_BE_EMPTY, "تاريخ ازدواج");
            setFocusControl(frm, MARRIAGE_DATE);
            marriageDateIsTrue = false;
          } else if ((!isOfficeManager
                  && !DateUtils.isValidRevFormattedFDate(((String) frm.get(MARRIAGE_DATE)).trim()))
              || isOfficeManager
                  && !DateUtils.isValidNaghesOrCompDate(((String) frm.get(MARRIAGE_DATE)).trim())) {
            addError(msgsErrors, FIELD_INVALID, "تاريخ ازدواج");
            setFocusControl(frm, MARRIAGE_DATE);
            marriageDateIsTrue = false;
          } else if (DateUtils.getCompleteDate(((String) frm.get(MARRIAGE_DATE)).trim())
                  .compareTo(DateUtils.fDate())
              > 0) {
            addError(msgsErrors, SHOULD_BE_LESS_EQUAL, "تاريخ ازدواج", "تاريخ روز ");
            setFocusControl(frm, MARRIAGE_DATE);
            marriageDateIsTrue = false;
          } else if (!Utils.isEmpty(frm.get(MARRIAGE_DATE).toString().trim())
              && ((!isOfficeManager
                      && DateUtils.isValidRevFormattedFDate(
                          ((String) frm.get(MARRIAGE_DATE)).trim()))
                  || isOfficeManager
                      && DateUtils.isValidNaghesOrCompDate(
                          ((String) frm.get(MARRIAGE_DATE)).trim()))
              && DateUtils.getCompleteDate(((String) frm.get(MARRIAGE_DATE)).trim())
                      .compareTo(DateUtils.fDate())
                  <= 0) {
            marriageDate = DateUtils.getCompleteDate(((String) frm.get(MARRIAGE_DATE)).trim());

            if (action.equalsIgnoreCase(Constants.ActionType.ADD)
                && !Utils.isEmpty(wfDeathDate)
                && !wfDeathDate.equalsIgnoreCase("نامعلوم")
                && Integer.parseInt(wfDeathDate) < Integer.parseInt(marriageDate)) {
              addError(msgsErrors, "errMrgDateIsGreaterWfDeathDate_3F");
              setFocusControl(frm, MARRIAGE_DATE);
              marriageDateIsTrue = false;
            }
          }
          if (marriageDateIsTrue) {
            mrgInf.setMarriageDate(DateUtils.unformatZeroToSpaceDate(marriageDate));
            if ((!Utils.isEmpty(lastBeforHsbDateOfDeath)
                    && marriageDate.compareTo(lastBeforHsbDateOfDeath) >= 0
                    && (marriageDate.compareTo(
                            Utils_3F.threeOrFourAndTenAfter(lastBeforHsbDateOfDeath, 4))
                        < 0))
                || (!Utils.isEmpty(hsbDeathDate)
                    && !Utils.isEmpty(lastAfterDateOfMarriage)
                    && lastAfterDateOfMarriage.compareTo(hsbDeathDate) >= 0
                    && (lastAfterDateOfMarriage.compareTo(
                            Utils_3F.threeOrFourAndTenAfter(hsbDeathDate, 4))
                        < 0))) {
              addError(msgsWarnings, "errHusbandDead130Day_3F");
              setFocusControl(frm, MARRIAGE_DATE);
            }
            DivorceInfo lastBeforDivorce =
                Person.getLastBeforDivorcesDetails(wifeNin, marriageDate);
            String lastBeforDivorceDate = "";
            if (lastBeforDivorce != null)
              lastBeforDivorceDate =
                  DateUtils.unformatSpaceToZeroDate(lastBeforDivorce.getDivorceDate());

            if (lastBeforDivorce != null
                && !lastBeforDivorce
                    .getDivorceTypeCode()
                    .equalsIgnoreCase(Constants.DivorceType.BAEN_GHEIR_MADKHULEH)
                && !lastBeforDivorce
                    .getDivorceTypeCode()
                    .equalsIgnoreCase(Constants.DivorceType.BAEN_SAER)
                && !Utils.isEmpty(lastBeforDivorceDate)
                && marriageDate.compareTo(lastBeforDivorceDate) >= 0
                && (lastBeforDivorceDate.compareTo(
                        Utils_3F.xMonthBefore(DateUtils.unformatSpaceToZeroDate(marriageDate), 3))
                    > 0)) {
              addError(msgsWarnings, "errLastDivorce90Day_3F");
              setFocusControl(frm, MARRIAGE_DATE);
            }
          }
          Vector allMarriage = Person.getAllMarriage(husbandNo, wifeNin);
          Vector allCorrespondingDivorce = new Vector();

          DivorceInfo correspondingDivorce = new DivorceInfo();
          for (int i = 0; i < allMarriage.size(); i++) {
            String correspondingMrgDate =
                ((MarriageInfo) allMarriage.elementAt(i)).getMarriageDate();
            correspondingDivorce =
                Person.getCorrespondingDivorce(husbandNo, wifeNin, correspondingMrgDate);
            if (correspondingDivorce != null) allCorrespondingDivorce.add(correspondingDivorce);
          }
          if (allMarriage.size() >= 3 && allCorrespondingDivorce.size() >= 3) {
            addError(msgsWarnings, "err3HusbandWifeMarriage_3F");
            setFocusControl(frm, HSB_NO);
          }

          int countAllDivorce = Person.getCountAllDivorce(husbandNo, wifeNin);
          if (countAllDivorce >= 9) {
            addError(msgsWarnings, "err9HusbandWifeDivorce_3F");
            setFocusControl(frm, HSB_NO);
          }

          if (mrgInf.getMarriageTypeCode().equalsIgnoreCase(Constants.MarriageType.BROKEN)) {
            String expDate = "";
            if (!Utils.isEmpty(frm.get(EXPIRY_DATE).toString().trim())) {
              if (((!isOfficeManager
                      && !DateUtils.isValidRevFormattedFDate(
                          ((String) frm.get(EXPIRY_DATE)).trim()))
                  || isOfficeManager
                      && !DateUtils.isValidNaghesOrCompDate(
                          ((String) frm.get(EXPIRY_DATE)).trim()))) {
                addError(msgsErrors, FIELD_INVALID, "تاريخ انقضاء");
                setFocusControl(frm, EXPIRY_DATE);
              } else if (!Utils.isEmpty(frm.get(EXPIRY_DATE).toString().trim())
                  && !Utils.isEmpty(marriageDate)
                  && marriageDate.compareTo(
                          DateUtils.getCompleteDate(((String) frm.get(EXPIRY_DATE)).trim()))
                      > 0) {
                addError(msgsErrors, SHOULD_BE_GREATER_EQUAL, "تاريخ انقضاء", "تاريخ ازدواج");
                setFocusControl(frm, EXPIRY_DATE);
              } else {
                expDate = DateUtils.getCompleteDate(((String) frm.get(EXPIRY_DATE)).trim());
                mrgInf.setExpiryDate(DateUtils.unformatZeroToSpaceDate(expDate));
              }
            }
          } else if (mrgInf.getMarriageTypeCode().equalsIgnoreCase(Constants.MarriageType.BROKEN)) {
            mrgInf.setExpiryDate("");
          }
          String regstDate = frm.get(REGST_DATE).toString().trim();

          if (Utils.isEmpty(regstDate)) {
            addError(msgsErrors, FIELD_CAN_NOT_BE_EMPTY, "تاريخ " + regstLable);
            setFocusControl(frm, REGST_DATE);
          } else if ((!isOfficeManager
                  && !DateUtils.isValidRevFormattedFDate(((String) frm.get(REGST_DATE)).trim()))
              || isOfficeManager
                  && !DateUtils.isValidNaghesOrCompDate(((String) frm.get(REGST_DATE)).trim())) {
            addError(msgsErrors, FIELD_INVALID, "تاريخ " + regstLable);
            setFocusControl(frm, REGST_DATE);
          } else if (DateUtils.getCompleteDate(regstDate).compareTo(DateUtils.fDate()) > 0) {
            addError(msgsErrors, SHOULD_BE_LESS_EQUAL, "تاريخ " + regstLable, "تاريخ روز ");
            setFocusControl(frm, REGST_DATE);
          } else {
            boolean regstDateIsTrue = true;
            regstDate = DateUtils.getCompleteDate(((String) frm.get(REGST_DATE)).trim());
            if (!Utils.isEmpty(frm.get(HSB_DATE_OF_BIRTH_SUN).toString().trim())
                && (DateUtils.getCompleteDate(((String) frm.get(HSB_DATE_OF_BIRTH_SUN)).trim()))
                        .compareTo(regstDate)
                    >= 0) {
              addError(msgsErrors, SHOULD_BE_GREATER, "تاريخ " + regstLable, "تاريخ تولد زوج");
              setFocusControl(frm, REGST_DATE);
              regstDateIsTrue = false;
            }
            if (!Utils.isEmpty(frm.get(WF_DATE_OF_BIRTH_SUN).toString().trim())
                && (DateUtils.getCompleteDate(((String) frm.get(WF_DATE_OF_BIRTH_SUN)).trim()))
                        .compareTo(regstDate)
                    >= 0) {
              addError(msgsErrors, SHOULD_BE_GREATER, "تاريخ " + regstLable, "تاريخ تولد زوجه");
              setFocusControl(frm, REGST_DATE);
              regstDateIsTrue = false;
            }
            if (!Utils.isEmpty(marriageDate) && marriageDate.compareTo(regstDate) > 0) {
              addError(msgsErrors, SHOULD_BE_GREATER_EQUAL, "تاريخ " + regstLable, "تاريخ ازدواج");
              setFocusControl(frm, REGST_DATE);
              regstDateIsTrue = false;
            }
            if (regstDateIsTrue) {
              mrgInf.setRegstDate(
                  DateUtils.unformatZeroToSpaceDate(
                      DateUtils.getCompleteDate(frm.get(REGST_DATE).toString().trim())));
            }
          }
          String regstNo = Utils.charVal2((String) frm.get(REGST_NO));
          if (Utils.isEmpty(regstNo)) {
            addError(msgsErrors, FIELD_CAN_NOT_BE_EMPTY, "شماره " + regstLable);
            setFocusControl(frm, REGST_NO);
          } else if (regstNo.length() > 20 || regstNo.matches("[0]*")) {
            addError(msgsErrors, FIELD_INVALID, "شماره " + regstLable);
            setFocusControl(frm, REGST_NO);
          } else {
            mrgInf.setRegstNo(regstNo);
          }

          String regstAu = "";
          if (!isConsul) regstAu = Utils.charVal2((String) frm.get(REGST_AU));
          else if (isConsul) regstAu = Utils.charVal2((String) frm.get(CONSUL_NO));
          if (Utils.isEmpty(regstAu)) {
            addError(msgsErrors, FIELD_CAN_NOT_BE_EMPTY, regstAuLabel);
            setFocusControl(frm, REGST_AU);
          } else if ((!isConsul && !Utils.isValidNumber(regstAu, 10) || regstAu.matches("[0]*"))
              || (isConsul && regstAu.length() > 10)) {
            addError(msgsErrors, FIELD_INVALID, regstAuLabel);
            setFocusControl(frm, REGST_AU);
          } else {
            mrgInf.setRegstAu(regstAu);
          }
          String regstGeo = "";
          if (!isConsul) regstGeo = ((String) frm.get(REGST_GEO));
          else if (isConsul) regstGeo = ((String) frm.get(CONSUL_GEO));
          if (Utils.isEmpty(regstGeo)) {
            addError(msgsErrors, FIELD_CAN_NOT_BE_EMPTY, regstRegstGeoLabel);
            setFocusControl(frm, REGST_GEO);
          } else if (!isConsul && searchOfficeGeoSerial(frm) == false) {
            addError(msgsErrors, FIELD_INVALID, regstRegstGeoLabel);
            setFocusControl(frm, REGST_GEO);
          } else {

            mrgInf.setRegstGeoSerial(regstGeo);
          }

          if (action.equalsIgnoreCase(Constants.ActionType.ADD)) {
            mrgInf.setMamoorId((new Security()).getMamoorIdByUserId(loginInfo.getUserId()));
            mrgInf.setUserId(loginInfo.getUserId());
            mrgInf.setOfficeCode(loginInfo.getOfficeCode());
          }
          mrgInf.setCodeActiveFlag(Constants.CodeActiveFlag.ACTIVE);
        }
      } else if (action.equalsIgnoreCase(Constants.ActionType.DELETE)) {
        String marriageDate =
            DateUtils.unformatZeroToSpaceDate(
                DateUtils.getCompleteDate(frm.get(MARRIAGE_DATE).toString().trim()));

        mrgInf =
            Person.getMarriageDetails(
                frm.get(HSB_NO).toString().trim(),
                Long.parseLong(frm.get(WF_NIN).toString().trim()),
                marriageDate);

        mrgInf.setInactiveMarriageReasonCode(Constants.InactiveMrgReasonCode.DELETE);

        String opinionNo = Utils.charVal2(frm.get(OPINION_NO).toString().trim());
        frm.set(OPINION_NO, opinionNo);
        if (Utils.isEmpty(opinionNo)) {
          addError(msgsErrors, FIELD_CAN_NOT_BE_EMPTY, "شماره رأي هيأت ");
          setFocusControl(frm, OPINION_NO);
        } else if (opinionNo.length() > 20) {
          addError(msgsErrors, FIELD_INVALID, "شماره رأي هيأت ");
          setFocusControl(frm, OPINION_NO);
        } else {
          inactiveMrgInf.setOpinionNo(opinionNo);
        }
        String opinionDate = "";
        if (Utils.isEmpty(frm.get(OPINION_DATE).toString().trim())) {
          addError(msgsErrors, FIELD_CAN_NOT_BE_EMPTY, "تاريخ رأي هيأت ");
          setFocusControl(frm, OPINION_DATE);
        } else if ((!isOfficeManager
                && !DateUtils.isValidRevFormattedFDate(((String) frm.get(OPINION_DATE)).trim()))
            || isOfficeManager
                && !DateUtils.isValidNaghesOrCompDate(((String) frm.get(OPINION_DATE)).trim())) {
          addError(msgsErrors, FIELD_INVALID, "تاريخ رأي هيأت ");
          setFocusControl(frm, OPINION_DATE);
        } else if (DateUtils.getCompleteDate(((String) frm.get(OPINION_DATE)).trim())
                .compareTo(DateUtils.fDate())
            > 0) {
          addError(msgsErrors, SHOULD_BE_LESS_EQUAL, "تاريخ رأي هيأت ", "تاريخ روز ");
          setFocusControl(frm, OPINION_DATE);
        } else if (DateUtils.getCompleteDate(((String) frm.get(OPINION_DATE)).trim())
                .compareTo(DateUtils.getCompleteDate(((String) frm.get(MARRIAGE_DATE)).trim()))
            < 0) {
          addError(msgsErrors, SHOULD_BE_GREATER_EQUAL, "تاريخ رأي هيأت ", "تاريخ ازدواج");
          setFocusControl(frm, OPINION_DATE);
        } else {
          opinionDate = DateUtils.getCompleteDate(((String) frm.get(OPINION_DATE)).trim());
          inactiveMrgInf.setOpinionDate(DateUtils.unformatZeroToSpaceDate(opinionDate));
        }
        mrgInf.setInactiveMarriageReasonCode(Constants.InactiveMrgReasonCode.DELETE);
        mrgInf.setCodeActiveFlag(Constants.CodeActiveFlag.INACTIVE);
        inactiveMrgInf.setMamoorId((new Security()).getMamoorIdByUserId(loginInfo.getUserId()));

        inactiveMrgInf.setUserId(loginInfo.getUserId());

        inactiveMrgInf.setOfficeCode(loginInfo.getOfficeCode());
      }

      request.getSession().setAttribute("marriageInf", mrgInf);
      request.getSession().setAttribute("inactiveMarriageInf", inactiveMrgInf);
      msgs[0] = msgsErrors;
      msgs[1] = msgsWarnings;
    } catch (Exception ex) {
      Utils.log4j(ex);
    }
    return msgs;
  }
Beispiel #12
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;
  }
Beispiel #15
0
  public ActionForward execute(
      ActionMapping actionMapping,
      ActionForm actionForm,
      HttpServletRequest httpServletRequest,
      HttpServletResponse httpServletResponse)
      throws Exception {

    LazyValidatorForm frm = (LazyValidatorForm) actionForm;
    LoginInfo loginInfo = (LoginInfo) httpServletRequest.getSession().getAttribute("loginInfo");
    if (formCanceled(frm)) {
      return actionMapping.findForward(SUCCESS);
    }
    resetFocusControl(frm, CANCEL);
    ActionMessages msgs = new ActionMessages();
    DocInvTransactionInfo inf = new DocInvTransactionInfo();
    if (!formSaved(frm)) {
      setFormMode(frm, ((String) httpServletRequest.getParameter(BROWSE_ACTION)));
      setFormId(frm, (String) httpServletRequest.getParameter(BROWSE_ID));
      try {
        short officeCode = loginInfo.getOfficeCode();
        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);
          StringTokenizer st = new StringTokenizer(formKey, Constants.DATA_SEPARATOR);
          officeCode = Short.parseShort(st.nextToken());
          String eventType = st.nextToken();
          String docType = st.nextToken();
          String docSeri = st.nextToken().trim();
          int docStartSrno = Integer.parseInt(st.nextToken());
          inf = Inventory.getDetails(officeCode, eventType, docType, docSeri, docStartSrno);
          frm.set(ASSIGN_DATE, DateUtils.revFormatDate(inf.getEventDate()));
          frm.set(DOC_SERI, inf.getDocSeri());
          frm.set(DOC_START_SRNO, Integer.toString(inf.getDocStartSrno()));
          frm.set(DOC_END_SRNO, Integer.toString(inf.getDocEndSrno()));
        }
        if (isFormInAddMode(frm)) {
          frm.set(ASSIGN_DATE, DateUtils.fDateRevFormatted());
          resetFocusControl(frm, DOC_SERI);
        }

      } catch (Exception ex) {
        addError(msgs, ex.getMessage());
        saveErrors(httpServletRequest, msgs);
      }
      return actionMapping.findForward(EDIT);

    } else {
      String assignDate = ((String) frm.get(ASSIGN_DATE)).trim();
      if (Utils.isEmpty(assignDate)) {
        addError(msgs, FIELD_CAN_NOT_BE_EMPTY, "تاريخ تخصيص");
        setFocusControl(frm, ASSIGN_DATE);
      } else if (!DateUtils.isValidRevFormattedFDate(assignDate)
          || Integer.parseInt(DateUtils.unformatRevFormattedFdate(assignDate))
              > Integer.parseInt(DateUtils.fDate())) {
        addError(msgs, FIELD_INVALID, "تاريخ تخصيص");
        setFocusControl(frm, ASSIGN_DATE);
      } else {
        inf.setEventDate(DateUtils.unformatRevFormattedFdate(assignDate));
      }
      inf.setOfficeCode(loginInfo.getOfficeCode());
      inf.setEventType(Constants.EventType.ASSIGN);

      String docSeri = Utils.charVal2((String) frm.get(DOC_SERI));
      if (Utils.isEmpty(docSeri)) {
        addError(msgs, FIELD_INVALID, "سري كارتهاي شناسايي");
        setFocusControl(frm, DOC_SERI);
      } else {
        inf.setDocSeri(docSeri);
        frm.set(DOC_SERI, docSeri);
      }
      String docStartSrno = ((String) frm.get(DOC_START_SRNO)).trim();
      if (Utils.isEmpty(docStartSrno)) {
        addError(msgs, FIELD_CAN_NOT_BE_EMPTY, "سريال شروع");
        setFocusControl(frm, DOC_START_SRNO);
      }
      String docEndSrno = ((String) frm.get(DOC_END_SRNO)).trim();
      if (Utils.isEmpty(docEndSrno)) {
        addError(msgs, FIELD_CAN_NOT_BE_EMPTY, "سريال خاتمه");
        setFocusControl(frm, DOC_END_SRNO);
      } else {
        if (!Utils.isValidNumber(docStartSrno, 6) || !Utils.isValidNumber(docEndSrno, 6)) {
          addError(msgs, FIELD_INVALID, "محدوده سريال كارت شناسايي");
          setFocusControl(frm, DOC_START_SRNO);
        } else {
          if (Integer.parseInt(docStartSrno) > Integer.parseInt(docEndSrno)) {
            addError(msgs, FIELD_INVALID, "محدوده سريال كارت شناسايي");
            setFocusControl(frm, DOC_START_SRNO);
          } else {
            inf.setDocStartSrno(Integer.parseInt(docStartSrno));
            inf.setDocEndSrno(Integer.parseInt(docEndSrno));
          }
        }
      }

      inf.setMamoorId("9991");
      inf.setUserId(loginInfo.getUserId());
      inf.setDocType(Constants.DocType.ID_CARD_CENTRAL_BANK);

      if (!msgs.isEmpty()) {
        saveErrors(httpServletRequest, msgs);
        return actionMapping.findForward(EDIT);
      }
      resetFocusControl(frm, CANCEL);
      // Save Data
      try {
        String eventErrorCode = null;
        if (isFormInDeleteMode(frm)) {
          eventErrorCode = Inventory.deleteAssign(inf);
        } else {
          eventErrorCode = Inventory.addAssign(inf);
        }
        if (!Utils.isEmpty(eventErrorCode)) {
          StringTokenizer st = new StringTokenizer(eventErrorCode, Constants.FIELD_SEPARATOR);
          int countErrorToken = st.countTokens();
          for (int countError = 1; countError <= countErrorToken; countError++) {
            addError(msgs, st.nextToken());
          }
          saveErrors(httpServletRequest, msgs);
          return actionMapping.findForward(EDIT);
        } else {
          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 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);
      }
    }
  }