// This is a clone of the regular syncFileNumber that allows entry of // duplicate student records with the same fileNumber public String commercialSyncFileNumber() throws Exception { log.debug("******* commercialSyncFileNumber " + getFileNumber()); boolean noErrors = true; boolean studentMerged = false; boolean studentExists = false; boolean studentFound = false; int status = 0; Collection<String> col = new ArrayList<String>(); QueryByDLResponseType wsResponse = getQueryByDl(); if (wsResponse != null) { Student webStudent = parseQueryByDlResults(wsResponse); if ("200".equals(wsResponse.getStatus())) { studentExists = true; // This handles duplicate file numbers, By removing file number from existing record so that // it can be added if (webStudent.getFileNumber() != null) { log.debug("****** Existing FileNumber... preparing to remove"); Student a = new Student(); a.setFileNumber(webStudent.getFileNumber()); Student temp = getDbStudent(a); // Only remove if it is the same student otherwise this could be used to remove file // numbers from any existing record. if (temp != null) { log.debug("dbstudent " + temp.getDob() + " webstudent " + webStudent.getDob()); if (temp.getDob().equals(webStudent.getDob())) { log.debug( "dbstudent lastname " + temp.getLastName() + " webstudent " + webStudent.getLastName()); if (temp.getLastName().equalsIgnoreCase(webStudent.getLastName())) { temp.setFileNumber(null); int i = getStudentService().studentUpdateFileNumber(temp); if (i > 0) { log.debug("****** FileNumber removed from: " + temp.getStudentNumber()); } else { log.debug("****** FileNumber WAS NOT removed from: " + temp.getStudentNumber()); } } else { col.add( "Existing student using this filenumber: Last names do not match with DLD record."); noErrors = false; } } else { col.add( "Existing student using this filenumber: DOB does not match with DLD record."); noErrors = false; } } } if (noErrors) { log.debug("Student Insert"); if (getStudentNumber() != null) { Student a = new Student(); a.setStudentNumber(getStudentNumber()); // getDbStudent returns the sdc student with a matching dob. Student dbStudent = getDbStudent(a, webStudent.getDob()); if (dbStudent != null) { log.debug("dbstudent " + dbStudent.getDob() + " webstudent " + webStudent.getDob()); studentFound = true; log.debug( "db lastname " + dbStudent.getLastName() + " webstudent " + webStudent.getLastName()); if (dbStudent.getLastName().equals(webStudent.getLastName())) { log.debug( "db firstname " + dbStudent.getFirstName() + " webstudent " + webStudent.getFirstName()); 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()); } else { col.add("First names do not match"); noErrors = false; } } else { col.add("Last names do not match"); noErrors = false; } 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. col.add("DOB does not match"); noErrors = false; } } } } else { col.add("Student Not Found in DLD(Webservice)"); noErrors = false; } if (!noErrors) { col.add("The File Number Entered Is Not Valid For This Student"); } } else { log.debug("Webservice RESULTS EMPTY"); noErrors = false; col.add("Web service response was empty."); } if (noErrors) { if (studentMerged) { return SUCCESS; } else if (studentFound) { return Constants.MERGE; } else { col = getActionErrors(); setCommercialAjaxMessages(col); // sendSyncErrorEmail((ArrayList) col, getStudentNumber(), getFileNumber()); return INPUT; } } else { if (col.isEmpty()) { col = getActionErrors(); } setCommercialAjaxMessages(col); return INPUT; } }
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; } }