public String syncFileNumber() throws Exception {
    log.debug("******* syncFileNumber " + getFileNumber());
    boolean studentMerged = false;
    boolean studentFound = false;

    QueryByDLResponseType wsResponse = getQueryByDl();
    if (wsResponse != null) {
      Student webStudent = parseQueryByDlResults(wsResponse);
      if ("200".equals(wsResponse.getStatus())) {
        if (webStudent.getStudentPk() == null) {
          log.debug("Student Insert");
          Student temp = new Student();
          if (getStudentNumber() != null) {
            temp.setStudentNumber(getStudentNumber());
            Student dbStudent = getStudentService().getStudent(temp);
            if (dbStudent.getDob().equals(webStudent.getDob())) {
              studentFound = true;
              if (dbStudent.getLastName().equals(webStudent.getLastName())) {
                if (dbStudent.getFirstName().equals(webStudent.getFirstName())) {
                  studentMerged = true;
                  // merge appropriate values
                  webStudent.setStudentNumber(dbStudent.getStudentNumber());
                  webStudent.setStudentPk(dbStudent.getStudentPk());
                  webStudent.setSchoolFk(getSchoolPk());
                  // fullUpdate sends nulls
                  int i = getStudentService().fullUpdate(webStudent);
                  setCurrentStudent(webStudent);
                  setStudentPk(webStudent.getStudentPk());
                }
              }
              if (!studentMerged) {
                List<String> web = new ArrayList<String>();
                List<String> db = new ArrayList<String>();

                SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");

                web.add(sdf.format(webStudent.getDob()));
                web.add(webStudent.getLastName());
                web.add(webStudent.getFirstName());
                setMergeWebStudent(web);

                db.add(sdf.format(dbStudent.getDob()));
                db.add(dbStudent.getLastName());
                db.add(dbStudent.getFirstName());
                setMergeDbStudent(db);
              }
            } else {
              // dob doesnt match.
              addActionError("File Number cannot sync.  Student dob does not match.");
            }
          }
        } else {
          // filenumber already in database.
          String note = null;
          if (webStudent.getStudentNumber() != null) {
            note = webStudent.getStudentNumber().toString();
          } else {
            note = webStudent.getStudentFullName();
          }
          addActionError(
              "File Number already associated with a student "
                  + note
                  + ", please contact SDC administration for assistance.");
        }
      }
    } else {
      addActionError("Web service response was empty.");
      log.debug("Webservice RESULTS EMPTY");
    }

    if (studentMerged) {
      log.debug("SUCCESS");
      return SUCCESS;
    } else if (studentFound) {
      log.debug("MERGE");
      return Constants.MERGE;
    } else {
      log.debug("INPUT");
      Collection list = getActionErrors();
      setCommercialAjaxMessages(list);
      sendSyncErrorEmail((ArrayList) list, getStudentNumber(), getFileNumber());
      return INPUT;
    }
  }