[Ils-source] r1474 - trunk/src/com/resolutions/ils/data

scribe at crosswire.org scribe at crosswire.org
Mon Jun 27 17:24:52 MST 2016


Author: scribe
Date: 2016-06-27 17:24:52 -0700 (Mon, 27 Jun 2016)
New Revision: 1474

Modified:
   trunk/src/com/resolutions/ils/data/CourseAttempt.java
Log:
updated formatting to use all tabs


Modified: trunk/src/com/resolutions/ils/data/CourseAttempt.java
===================================================================
--- trunk/src/com/resolutions/ils/data/CourseAttempt.java	2016-06-28 00:09:33 UTC (rev 1473)
+++ trunk/src/com/resolutions/ils/data/CourseAttempt.java	2016-06-28 00:24:52 UTC (rev 1474)
@@ -67,176 +67,176 @@
 		df.setTimeZone(TimeZone.getTimeZone("GMT"));
 	}
 
-    public static final int STATUS_NEW = 0;
-    public static final int STATUS_PASSED = 1;
-    public static final int STATUS_FAILED = 2;
-    public static final int STATUS_IN_PROGRESS = 3;
+	public static final int STATUS_NEW = 0;
+	public static final int STATUS_PASSED = 1;
+	public static final int STATUS_FAILED = 2;
+	public static final int STATUS_IN_PROGRESS = 3;
 
-    static String LOOKUPUSERCOURSEATTEMPTS = "SELECT * FROM COURSEATTEMPT WHERE USERPRID={USERPRID} AND COURSID={COURSID} AND COMPANYID={COMPANYID} AND CAEXPIREDON IS NULL ORDER BY CASTARTDATE DESC";
-    static String LOOKUPALLUSERCOURSEATTEMPTS = "SELECT * FROM COURSEATTEMPT WHERE USERPRID={USERPRID} AND COURSID={COURSID} AND COMPANYID={COMPANYID} ORDER BY CASTARTDATE DESC";
-    static String LOOKUP = "SELECT * FROM COURSEATTEMPT WHERE COMPANYID={COMPANYID}";
-    static String DELETE = "DELETE FROM COURSEATTEMPT WHERE COURSATTID={COURSATTID} AND COMPANYID={COMPANYID}";
+	static String LOOKUPUSERCOURSEATTEMPTS = "SELECT * FROM COURSEATTEMPT WHERE USERPRID={USERPRID} AND COURSID={COURSID} AND COMPANYID={COMPANYID} AND CAEXPIREDON IS NULL ORDER BY CASTARTDATE DESC";
+	static String LOOKUPALLUSERCOURSEATTEMPTS = "SELECT * FROM COURSEATTEMPT WHERE USERPRID={USERPRID} AND COURSID={COURSID} AND COMPANYID={COMPANYID} ORDER BY CASTARTDATE DESC";
+	static String LOOKUP = "SELECT * FROM COURSEATTEMPT WHERE COMPANYID={COMPANYID}";
+	static String DELETE = "DELETE FROM COURSEATTEMPT WHERE COURSATTID={COURSATTID} AND COMPANYID={COMPANYID}";
 
-    static String LOOKUPCOURSECOMPLETE = "SELECT CA.COMPANYID, CA.COURSATTID, UP.USERPRID, UP.USERPRNUM, UP.USERPREMAIL, CC.COURSNAME, CC.COURSISCURRICULUM FROM COURSEATTEMPT CA" +
-    				" join USERPROFILE UP on UP.USERPRID = CA.USERPRID" +
-    				" join COURSE CC on CC.COURSID=CA.COURSID";
-    
-    static String LOOKUPEXP       = " SELECT COURSATTID FROM COURSEATTEMPT CA2 join COURSE CC on CC.COURSID=CA2.COURSID" +
-    				" WHERE CA2.COMPANYID={COMPANYID}" +
-    				" AND CA2.CASTATUSID=1" +
-    				" AND CA2.CAEXPIREDON IS NULL" +
-    				" AND CC.COURSPASSEXPDAYS > 0" +
-    				" AND CA2.CACOMPLETEDATE <= (current_timestamp - (CC.COURSPASSEXPDAYS - COALESCE(CC.COURSREASBEFDAYS,0)))";
-    
-    static String LOOKUPEXPCOURSE = LOOKUPEXP + " AND CA2.COURSID={COURSID}";
-    
-    static String REVOKE = "UPDATE COURSEATTEMPT SET CAEXPIREDON=current_timestamp, CAEXPREASON='Recurrent Training Assigned'";
-    static String REVOKEEXPCOURSE = REVOKE + " WHERE COURSATTID IN (" + LOOKUPEXPCOURSE + ")";
-    static String REVOKEEXP       = REVOKE + " WHERE COURSATTID IN (" + LOOKUPEXP + ")";
+	static String LOOKUPCOURSECOMPLETE = "SELECT CA.COMPANYID, CA.COURSATTID, UP.USERPRID, UP.USERPRNUM, UP.USERPREMAIL, CC.COURSNAME, CC.COURSISCURRICULUM FROM COURSEATTEMPT CA" +
+				" join USERPROFILE UP on UP.USERPRID = CA.USERPRID" +
+				" join COURSE CC on CC.COURSID=CA.COURSID";
 
-    static String LOOKUPCOURSECOMPLETEEXP       = LOOKUPCOURSECOMPLETE + " WHERE CA.COURSATTID IN (" + LOOKUPEXP + ")";
-    static String LOOKUPCOURSECOMPLETEEXPCOURSE = LOOKUPCOURSECOMPLETE + " WHERE CA.COURSATTID IN (" + LOOKUPEXPCOURSE + ")";
+	static String LOOKUPEXP       = " SELECT COURSATTID FROM COURSEATTEMPT CA2 join COURSE CC on CC.COURSID=CA2.COURSID" +
+				" WHERE CA2.COMPANYID={COMPANYID}" +
+				" AND CA2.CASTATUSID=1" +
+				" AND CA2.CAEXPIREDON IS NULL" +
+				" AND CC.COURSPASSEXPDAYS > 0" +
+				" AND CA2.CACOMPLETEDATE <= (current_timestamp - (CC.COURSPASSEXPDAYS - COALESCE(CC.COURSREASBEFDAYS,0)))";
 
-    //-------------- PENDING EXP
-    static String LOOKUPPENDINGEXP = " SELECT COURSATTID FROM COURSEATTEMPT CA2 join COURSE CC on CC.COURSID=CA2.COURSID" +
-    				" WHERE CA2.COMPANYID={COMPANYID}" +
-    				" AND CA2.CASTATUSID=1" +
-    				" AND CA2.CAEXPIREDON IS NOT NULL" +
-    				" AND CC.COURSPASSEXPDAYS > 0" +
-    				" AND CA2.CACOMPLETEDATE <= (current_timestamp - (CC.COURSPASSEXPDAYS - {WARNDAYS}))";
-    
-    static String LOOKUPPENDINGEXPCOURSE = LOOKUPPENDINGEXP + " AND CA2.COURSID={COURSID}";
-    
-    static String LOOKUPCOURSECOMPLETEPENDINGEXP       = LOOKUPCOURSECOMPLETE + " WHERE CA.COURSATTID IN (" + LOOKUPPENDINGEXP + ")";
-    static String LOOKUPCOURSECOMPLETEPENDINGEXPCOURSE = LOOKUPCOURSECOMPLETE + " WHERE CA.COURSATTID IN (" + LOOKUPPENDINGEXPCOURSE + ")";
+	static String LOOKUPEXPCOURSE = LOOKUPEXP + " AND CA2.COURSID={COURSID}";
 
-    
-    protected DataObject createDataObject() {
-        return new CourseAttempt();
-    }
+	static String REVOKE = "UPDATE COURSEATTEMPT SET CAEXPIREDON=current_timestamp, CAEXPREASON='Recurrent Training Assigned'";
+	static String REVOKEEXPCOURSE = REVOKE + " WHERE COURSATTID IN (" + LOOKUPEXPCOURSE + ")";
+	static String REVOKEEXP       = REVOKE + " WHERE COURSATTID IN (" + LOOKUPEXP + ")";
 
-    static public Vector getUserCourseAttempts(ILSSession session, int userID, int courseID) {
-        return getUserCourseAttempts(session, userID, courseID, true);
-    }
+	static String LOOKUPCOURSECOMPLETEEXP       = LOOKUPCOURSECOMPLETE + " WHERE CA.COURSATTID IN (" + LOOKUPEXP + ")";
+	static String LOOKUPCOURSECOMPLETEEXPCOURSE = LOOKUPCOURSECOMPLETE + " WHERE CA.COURSATTID IN (" + LOOKUPEXPCOURSE + ")";
 
+	//-------------- PENDING EXP
+	static String LOOKUPPENDINGEXP = " SELECT COURSATTID FROM COURSEATTEMPT CA2 join COURSE CC on CC.COURSID=CA2.COURSID" +
+				" WHERE CA2.COMPANYID={COMPANYID}" +
+				" AND CA2.CASTATUSID=1" +
+				" AND CA2.CAEXPIREDON IS NOT NULL" +
+				" AND CC.COURSPASSEXPDAYS > 0" +
+				" AND CA2.CACOMPLETEDATE <= (current_timestamp - (CC.COURSPASSEXPDAYS - {WARNDAYS}))";
+
+	static String LOOKUPPENDINGEXPCOURSE = LOOKUPPENDINGEXP + " AND CA2.COURSID={COURSID}";
+
+	static String LOOKUPCOURSECOMPLETEPENDINGEXP       = LOOKUPCOURSECOMPLETE + " WHERE CA.COURSATTID IN (" + LOOKUPPENDINGEXP + ")";
+	static String LOOKUPCOURSECOMPLETEPENDINGEXPCOURSE = LOOKUPCOURSECOMPLETE + " WHERE CA.COURSATTID IN (" + LOOKUPPENDINGEXPCOURSE + ")";
+
+
+	protected DataObject createDataObject() {
+		return new CourseAttempt();
+	}
+
+	static public Vector getUserCourseAttempts(ILSSession session, int userID, int courseID) {
+		return getUserCourseAttempts(session, userID, courseID, true);
+	}
+
 	static public Vector getUserCourseAttempts(ILSSession session, int userID, int courseID, boolean includeExpireds) {
 		return getUserCourseAttempts(session.getCompanyID(), userID, courseID, includeExpireds);
 	}
-    static public Vector getUserCourseAttempts(int companyID, int userID, int courseID, boolean includeExpireds) {
-        CourseAttempt query = new CourseAttempt();
-        query.setCompanyID(companyID);
-        query.setCourseAttemptUserProfileID(userID);
-        query.setCourseAttemptCourseID(courseID);
-        return query.getDataSet(includeExpireds?LOOKUPALLUSERCOURSEATTEMPTS:LOOKUPUSERCOURSEATTEMPTS);
-    }
+	static public Vector getUserCourseAttempts(int companyID, int userID, int courseID, boolean includeExpireds) {
+		CourseAttempt query = new CourseAttempt();
+		query.setCompanyID(companyID);
+		query.setCourseAttemptUserProfileID(userID);
+		query.setCourseAttemptCourseID(courseID);
+		return query.getDataSet(includeExpireds?LOOKUPALLUSERCOURSEATTEMPTS:LOOKUPUSERCOURSEATTEMPTS);
+	}
 
-    static public int deleteCourseAttempt(ILSSession session, int courseAttemptID) {
-        CourseAttempt query = new CourseAttempt();
-        query.setCourseAttemptID(courseAttemptID);
-        query.setCompanyID(session.getCompanyID());
-        return query.executeSQL(DELETE);
-    }
+	static public int deleteCourseAttempt(ILSSession session, int courseAttemptID) {
+		CourseAttempt query = new CourseAttempt();
+		query.setCourseAttemptID(courseAttemptID);
+		query.setCompanyID(session.getCompanyID());
+		return query.executeSQL(DELETE);
+	}
 
 			
 
 
 
-    /********************************
-     * 
-     * @param session
-     * @param email, pass the HTTP session if you wish to send email, otherwise pass null
-     * @return
-     */
-    static public int revokeAllExpired(int companyID, ServletContext context, boolean sendEmail) {
-    	return revokeAllExpired(companyID, 0, context, sendEmail);
-    }
-    
-    /*******************
-     * 
-     * @param session
-     * @param courseID
-     * @param email, pass the HTTP session if you wish to send email, otherwise pass null
-     * @return
-     */
-static public synchronized int revokeAllExpired(int companyID, int courseID, ServletContext context, boolean sendEmail) {
+	/********************************
+	* 
+	* @param session
+	* @param email, pass the HTTP session if you wish to send email, otherwise pass null
+	* @return
+	*/
+	static public int revokeAllExpired(int companyID, ServletContext context, boolean sendEmail) {
+		return revokeAllExpired(companyID, 0, context, sendEmail);
+	}
+
+	/*******************
+	* 
+	* @param session
+	* @param courseID
+	* @param email, pass the HTTP session if you wish to send email, otherwise pass null
+	* @return
+	*/
+	static public synchronized int revokeAllExpired(int companyID, int courseID, ServletContext context, boolean sendEmail) {
 System.out.println("**** revokeAllExpired: start");
-	Properties sysConfig = Utils.getSysConfig(context, companyID);
-	CourseAttempt query = new CourseAttempt();
-	query.setCompanyID(companyID);
-	Vector results = null;
-	int count = 0;
-	Course course = null;
-	if (courseID > 0) {
-		course = Course.getCourse(companyID, courseID);
-		query.setCourseAttemptCourseID(courseID);
-		results = query.getDataSet(LOOKUPCOURSECOMPLETEEXPCOURSE + " AND CC.COURSISACTIVE='T'");
-		count = query.executeSQL(REVOKEEXPCOURSE);
-	}
-	else {
-		results = query.getDataSet(LOOKUPCOURSECOMPLETEEXP + " AND CC.COURSISACTIVE='T'");
-		count = query.executeSQL(REVOKEEXP);
-	}
-	// if we're a course we can optimize; if we're a curriculum we have to do this the long way
-	if ((course == null || course.isCourseCurriculum()) && results != null) {
-		for (Object o: results) {
-			CourseAttempt ca = (CourseAttempt)o;
-			if ("T".equals(ca.getValue("COURSISCURRICULUM"))) {
-				// don't send emails and be sure to expire all children (null, true)
-				ca.assignRetake("Recurrent Training Assigned", null, true);
+		Properties sysConfig = Utils.getSysConfig(context, companyID);
+		CourseAttempt query = new CourseAttempt();
+		query.setCompanyID(companyID);
+		Vector results = null;
+		int count = 0;
+		Course course = null;
+		if (courseID > 0) {
+			course = Course.getCourse(companyID, courseID);
+			query.setCourseAttemptCourseID(courseID);
+			results = query.getDataSet(LOOKUPCOURSECOMPLETEEXPCOURSE + " AND CC.COURSISACTIVE='T'");
+			count = query.executeSQL(REVOKEEXPCOURSE);
+		}
+		else {
+			results = query.getDataSet(LOOKUPCOURSECOMPLETEEXP + " AND CC.COURSISACTIVE='T'");
+			count = query.executeSQL(REVOKEEXP);
+		}
+		// if we're a course we can optimize; if we're a curriculum we have to do this the long way
+		if ((course == null || course.isCourseCurriculum()) && results != null) {
+			for (Object o: results) {
+				CourseAttempt ca = (CourseAttempt)o;
+				if ("T".equals(ca.getValue("COURSISCURRICULUM"))) {
+					// don't send emails and be sure to expire all children (null, true)
+					ca.assignRetake("Recurrent Training Assigned", null, true);
+				}
 			}
 		}
-	}
 
 
 System.out.println("**** revokeAllExpired: emailSet.size(): " + (results != null ? results.size() : 0));
 System.out.println("**** revokeAllExpired: revoke.size(): " + count);
 
-	// Send Emails
-	if (sendEmail && results != null) {
-		String subjectTemplate = sysConfig.getProperty("EmailTemplate5Subject");
-		String bodyTemplate    = sysConfig.getProperty("EmailTemplate5Body");
-		String from            = sysConfig.getProperty("SendMailFrom");
-		for (Object o: results) {
-			CourseAttempt ca = (CourseAttempt)o;
-			try {
-				String to = ca.getStringValue("USERPREMAIL");
+		// Send Emails
+		if (sendEmail && results != null) {
+			String subjectTemplate = sysConfig.getProperty("EmailTemplate5Subject");
+			String bodyTemplate    = sysConfig.getProperty("EmailTemplate5Body");
+			String from            = sysConfig.getProperty("SendMailFrom");
+			for (Object o: results) {
+				CourseAttempt ca = (CourseAttempt)o;
+				try {
+					String to = ca.getStringValue("USERPREMAIL");
 System.out.println("**** revokeAllExpired: sending email to: " + to);
-				HashMap<String, Object> params = new HashMap<String, Object>();
-				params.put("SITEURL", sysConfig.getProperty("SiteURL", "your training site"));
-				params.putAll(ca.getData());
-				String subject = Utils.replaceParams(subjectTemplate, params);
-				String body    = Utils.replaceParams(bodyTemplate, params);
-				body += sysConfig.getProperty("SendMailSig", "");
-				SMTPMail.sendEmail(sysConfig, from, to, subject, body, true);
+					HashMap<String, Object> params = new HashMap<String, Object>();
+					params.put("SITEURL", sysConfig.getProperty("SiteURL", "your training site"));
+					params.putAll(ca.getData());
+					String subject = Utils.replaceParams(subjectTemplate, params);
+					String body    = Utils.replaceParams(bodyTemplate, params);
+					body += sysConfig.getProperty("SendMailSig", "");
+					SMTPMail.sendEmail(sysConfig, from, to, subject, body, true);
+				}
+				catch (Exception e) {
+					e.printStackTrace();
+				}
 			}
-			catch (Exception e) {
-				e.printStackTrace();
-			}
+			SMTPMail.closeMailConnection();
 		}
-		SMTPMail.closeMailConnection();
+System.out.println("**** revokeAllExpired: end");
+		return count;
 	}
-System.out.println("**** revokeAllExpired: end");
-	return count;
-}
 
 
-    /********************************
-     * 
-     * @param session
-     * @param email, pass the HTTP session if you wish to send email, otherwise pass null
-     * @return
-     */
-    static public int warnAllPendingExpired(int companyID, ServletContext context, int warningNumber) {
-    	return warnAllPendingExpired(companyID, 0, context, warningNumber);
-    }
-    
-    /*******************
-     * 
-     * @param session
-     * @param courseID
-     * @param email, pass the HTTP session if you wish to send email, otherwise pass null
-     * @return
-     */
+	/********************************
+	* 
+	* @param session
+	* @param email, pass the HTTP session if you wish to send email, otherwise pass null
+	* @return
+	*/
+	static public int warnAllPendingExpired(int companyID, ServletContext context, int warningNumber) {
+		return warnAllPendingExpired(companyID, 0, context, warningNumber);
+	}
+
+	/*******************
+	* 
+	* @param session
+	* @param courseID
+	* @param email, pass the HTTP session if you wish to send email, otherwise pass null
+	* @return
+	*/
 	static public synchronized int warnAllPendingExpired(int companyID, int courseID, ServletContext context, int warningNumber) {
 		Properties sysConfig = Utils.getSysConfig(context, companyID);
 		CourseAttempt query = new CourseAttempt();
@@ -296,29 +296,29 @@
 		}
 		return count;
 	}
-        
 
-    public int save(CourseAttempt orig) {
-        String[] keyCols = new String[] {"COMPANYID", "COURSATTID"};
-        return save(orig, "COURSEATTEMPT", keyCols);
-    }
 
-    public CourseAttempt saveNew(ILSSession session) {
-        setCompanyID(session.getCompanyID());
-        saveNew("COURSEATTEMPT");
-        return (CourseAttempt)lookupThis("COURSEATTEMPT");
-    }
+	public int save(CourseAttempt orig) {
+		String[] keyCols = new String[] {"COMPANYID", "COURSATTID"};
+		return save(orig, "COURSEATTEMPT", keyCols);
+	}
 
+	public CourseAttempt saveNew(ILSSession session) {
+		setCompanyID(session.getCompanyID());
+		saveNew("COURSEATTEMPT");
+		return (CourseAttempt)lookupThis("COURSEATTEMPT");
+	}
 
-    static public CourseAttempt getCourseAttempt(ILSSession session, int courseAttemptID) {
-        CourseAttempt query = new CourseAttempt();
-        String sql = LOOKUP + " AND COURSATTID={COURSATTID}";
-        query.setCourseAttemptID(courseAttemptID);
-        query.setCompanyID(session.getCompanyID());
-        Vector rows = query.getDataSet(sql);
-        return (rows.size() > 0) ? (CourseAttempt) rows.get(0) : null;
-    }
 
+	static public CourseAttempt getCourseAttempt(ILSSession session, int courseAttemptID) {
+		CourseAttempt query = new CourseAttempt();
+		String sql = LOOKUP + " AND COURSATTID={COURSATTID}";
+		query.setCourseAttemptID(courseAttemptID);
+		query.setCompanyID(session.getCompanyID());
+		Vector rows = query.getDataSet(sql);
+		return (rows.size() > 0) ? (CourseAttempt) rows.get(0) : null;
+	}
+
 	static public boolean hasTime(Date date) {
 		if (date == null) {
 			return false;
@@ -449,327 +449,327 @@
 			int managerID, int courseID, int complianceID, Date sDate, Date eDate, boolean reqApprov) {
 		return getSearchUserCourseAttempts(session, locID != -1 ? new HashSet<Integer>(Arrays.asList(new Integer[] { locID })) : null, roleID != -1 ? new HashSet<Integer>(Arrays.asList(new Integer[] { roleID })) : null, lName, empNum, statusID, accessLevel, hireStartDate, hireEndDate, managerID, courseID, complianceID, sDate, eDate, reqApprov);
 	}
-    static public Vector getSearchUserCourseAttempts(ILSSession session, Set<Integer> locIDs, Set<Integer> roleIDs,
-                               String lName, String empNum, int statusID, int accessLevel, Date hireStartDate, Date hireEndDate,
-                               int managerID, int courseID, int complianceID, Date sDate, Date eDate, boolean reqApprov) {
-        String sql = "SELECT *, "+
-        		" (SELECT MAX(GROUPNAME) FROM USERGROUP UG JOIN ILSGROUP IG ON UG.COMPANYID=IG.COMPANYID AND UG.ILSGROUPID=IG.ILSGROUPID WHERE UG.USERPRID=UP.USERPRID AND GROUPTYPEID=2) WORKGROUP, " +
-        		" (SELECT MAX(GROUPNAME) FROM USERGROUP UG JOIN ILSGROUP IG ON UG.COMPANYID=IG.COMPANYID AND UG.ILSGROUPID=IG.ILSGROUPID WHERE UG.USERPRID=UP.USERPRID AND GROUPTYPEID=1) ROLE " +
-        		" FROM COURSEATTEMPT CA, USERPROFILE UP, COURSE CR WHERE CA.USERPRID=UP.USERPRID AND CA.COURSID=CR.COURSID AND UP.COMPANYID={COMPANYID} AND UP.USERPRSTATUSID={USERPRSTATUSID}";
-        CourseAttempt retVal = new CourseAttempt();
-        if (locIDs != null) {
-            sql += " AND exists (select * from usergroup ug where ug.userprid=up.userprid and ilsgroupid in (";
-		int i = 0;
-		for (int l : locIDs) {
-			if (i > 0) sql += ", ";
-			sql += "{LOCATIONID" + i + "}";
-			retVal.setIntValue("LOCATIONID"+i, l);
-			++i;
+	static public Vector getSearchUserCourseAttempts(ILSSession session, Set<Integer> locIDs, Set<Integer> roleIDs,
+			String lName, String empNum, int statusID, int accessLevel, Date hireStartDate, Date hireEndDate,
+			int managerID, int courseID, int complianceID, Date sDate, Date eDate, boolean reqApprov) {
+		String sql = "SELECT *, "+
+			" (SELECT MAX(GROUPNAME) FROM USERGROUP UG JOIN ILSGROUP IG ON UG.COMPANYID=IG.COMPANYID AND UG.ILSGROUPID=IG.ILSGROUPID WHERE UG.USERPRID=UP.USERPRID AND GROUPTYPEID=2) WORKGROUP, " +
+			" (SELECT MAX(GROUPNAME) FROM USERGROUP UG JOIN ILSGROUP IG ON UG.COMPANYID=IG.COMPANYID AND UG.ILSGROUPID=IG.ILSGROUPID WHERE UG.USERPRID=UP.USERPRID AND GROUPTYPEID=1) ROLE " +
+			" FROM COURSEATTEMPT CA, USERPROFILE UP, COURSE CR WHERE CA.USERPRID=UP.USERPRID AND CA.COURSID=CR.COURSID AND UP.COMPANYID={COMPANYID} AND UP.USERPRSTATUSID={USERPRSTATUSID}";
+		CourseAttempt retVal = new CourseAttempt();
+		if (locIDs != null) {
+			sql += " AND exists (select * from usergroup ug where ug.userprid=up.userprid and ilsgroupid in (";
+			int i = 0;
+			for (int l : locIDs) {
+				if (i > 0) sql += ", ";
+				sql += "{LOCATIONID" + i + "}";
+				retVal.setIntValue("LOCATIONID"+i, l);
+				++i;
+			}
+			sql += ")) ";
 		}
-		sql += ")) ";
-        }
 // why is this an else!!? Investigate and remove if possible
-        else if (managerID > -1) {
-            sql += " AND exists (select * from usergroup ugg, managergroup mg where ugg.ilsgroupid=mg.ilsgroupid and ugg.userprid=up.userprid and mg.userprid=" +
-                    managerID + ")";
-        }
-        if (accessLevel > -1) {
-            sql += " AND USERPRACCESSLEVEL=" + accessLevel;
-        }
+		else if (managerID > -1) {
+			sql += " AND exists (select * from usergroup ugg, managergroup mg where ugg.ilsgroupid=mg.ilsgroupid and ugg.userprid=up.userprid and mg.userprid=" +
+			managerID + ")";
+		}
+		if (accessLevel > -1) {
+			sql += " AND USERPRACCESSLEVEL=" + accessLevel;
+		}
 
-        if (reqApprov) {
-            sql += " AND (CR.COURSREQMGRAPPRVL='T' AND CA.CASTATUSID="+STATUS_PASSED+" AND (CA.CAISMGRAPPRVL<>'T' OR CA.CAISMGRAPPRVL IS NULL))";
-        }
+		if (reqApprov) {
+			sql += " AND (CR.COURSREQMGRAPPRVL='T' AND CA.CASTATUSID="+STATUS_PASSED+" AND (CA.CAISMGRAPPRVL<>'T' OR CA.CAISMGRAPPRVL IS NULL))";
+		}
 
-        if (hireStartDate != null) {
-            sql += " AND UP.USERPRHIREDATE >= {HIRESTARTDATE}";
-            retVal.setDateValue("HIRESTARTDATE", hireStartDate);
-        }
+		if (hireStartDate != null) {
+			sql += " AND UP.USERPRHIREDATE >= {HIRESTARTDATE}";
+			retVal.setDateValue("HIRESTARTDATE", hireStartDate);
+		}
 
-        if (hireEndDate != null) {
-            sql += " AND UP.USERPRHIREDATE <= {HIREENDDATE}";
-            retVal.setDateValue("HIREENDDATE", hireEndDate);
-        }
+		if (hireEndDate != null) {
+			sql += " AND UP.USERPRHIREDATE <= {HIREENDDATE}";
+			retVal.setDateValue("HIREENDDATE", hireEndDate);
+		}
 
-        if (roleIDs != null) {
-            sql += " AND exists (select * from usergroup uggg where uggg.userprid=up.userprid and ilsgroupid in (";
-		int i = 0;
-		for (int l : roleIDs) {
-			if (i > 0) sql += ", ";
-			sql += "{ROLEID" + i + "}";
-			retVal.setIntValue("ROLEID"+i, l);
-			++i;
+		if (roleIDs != null) {
+			sql += " AND exists (select * from usergroup uggg where uggg.userprid=up.userprid and ilsgroupid in (";
+			int i = 0;
+			for (int l : roleIDs) {
+				if (i > 0) sql += ", ";
+				sql += "{ROLEID" + i + "}";
+				retVal.setIntValue("ROLEID"+i, l);
+				++i;
+			}
+			sql += ")) ";
 		}
-		sql += ")) ";
-        }
-        if ((lName != null) && (lName.length() > 0)) {
-            sql += " AND upper(up.USERPRLNAME) like {USERPRLNAME}";
-            retVal.setValue("USERPRLNAME", lName.toUpperCase() + "%");
-        }
-        if ((empNum != null) && (empNum.length() > 0)) {
-            sql += " AND upper(up.USERPRNUM) like {USERPRNUM}";
-            retVal.setValue("USERPRNUM", empNum.toUpperCase() + "%");
-        }
-        if (courseID > -1) {
-            sql += " AND CA.COURSID={COURSID}";
-            retVal.setCourseAttemptCourseID(courseID);
-        }
-        if (complianceID > -1) {
-            sql += " AND exists (SELECT * FROM COURSECOMPLC cc WHERE ca.COURSID=cc.COURSID AND cc.COMPLCID=" + complianceID + ")";
-        }
-        if (sDate != null) {
-		// odd naming here, but it should be correct as-is
-            sql += " AND CA.CACOMPLETEDATE>={CASTARTDATE}";
-            retVal.setCourseAttemptStartDate(sDate);
-        }
-        if (eDate != null) {
-            sql += " AND CA.CACOMPLETEDATE<={CAENDDATE}";
-            retVal.setTSValue("CAENDDATE", makeEndOfDay(eDate));
-        }
+		if ((lName != null) && (lName.length() > 0)) {
+			sql += " AND upper(up.USERPRLNAME) like {USERPRLNAME}";
+			retVal.setValue("USERPRLNAME", lName.toUpperCase() + "%");
+		}
+		if ((empNum != null) && (empNum.length() > 0)) {
+			sql += " AND upper(up.USERPRNUM) like {USERPRNUM}";
+			retVal.setValue("USERPRNUM", empNum.toUpperCase() + "%");
+		}
+		if (courseID > -1) {
+			sql += " AND CA.COURSID={COURSID}";
+			retVal.setCourseAttemptCourseID(courseID);
+		}
+		if (complianceID > -1) {
+			sql += " AND exists (SELECT * FROM COURSECOMPLC cc WHERE ca.COURSID=cc.COURSID AND cc.COMPLCID=" + complianceID + ")";
+		}
+		if (sDate != null) {
+			// odd naming here, but it should be correct as-is
+			sql += " AND CA.CACOMPLETEDATE>={CASTARTDATE}";
+			retVal.setCourseAttemptStartDate(sDate);
+		}
+		if (eDate != null) {
+			sql += " AND CA.CACOMPLETEDATE<={CAENDDATE}";
+			retVal.setTSValue("CAENDDATE", makeEndOfDay(eDate));
+		}
 
 
-        sql += " ORDER BY CA.CASTARTDATE DESC";
+		sql += " ORDER BY CA.CASTARTDATE DESC";
 
-        retVal.setCompanyID(session.getCompanyID());
-        retVal.setIntValue("USERPRSTATUSID", statusID);
+		retVal.setCompanyID(session.getCompanyID());
+		retVal.setIntValue("USERPRSTATUSID", statusID);
 
-        return retVal.getDataSet(sql);
-    }
+		return retVal.getDataSet(sql);
+	}
 
-    static public Vector getCourseAttemptsSummary(ILSSession session, boolean byRole, int managerID, int statusID) {
-    	String sql = "SELECT IG.GROUPNAME, CAS.CASTATUSDESC, COUNT(CA.CASTATUSID) AS STATUSTOTAL" +
-    							   "FROM USERGROUP UG, " +
-    							   "ILSGROUP IG, COURSEATTEMPT CA, COURSEATTSTATUS CAS, USERPROFILE UP " +
-    							   "WHERE " +
-    							   "UG.USERPRID=CA.USERPRID AND IG.ILSGROUPID=UG.ILSGROUPID AND CA.USERPRID=UP.USERPRID AND CA.CASTATUSID=CAS.CASTATUSID AND " +
-    							   "UP.COMPANYID={COMPANYID} AND " +
-    							   "UP.USERPRSTATUSID={USERPRSTATUSID}";
+	static public Vector getCourseAttemptsSummary(ILSSession session, boolean byRole, int managerID, int statusID) {
+		String sql = "SELECT IG.GROUPNAME, CAS.CASTATUSDESC, COUNT(CA.CASTATUSID) AS STATUSTOTAL" +
+			"FROM USERGROUP UG, " +
+			"ILSGROUP IG, COURSEATTEMPT CA, COURSEATTSTATUS CAS, USERPROFILE UP " +
+			"WHERE " +
+			"UG.USERPRID=CA.USERPRID AND IG.ILSGROUPID=UG.ILSGROUPID AND CA.USERPRID=UP.USERPRID AND CA.CASTATUSID=CAS.CASTATUSID AND " +
+			"UP.COMPANYID={COMPANYID} AND " +
+			"UP.USERPRSTATUSID={USERPRSTATUSID}";
 
-    	CourseAttempt retVal = new CourseAttempt();
-    	 
-    	if (managerID > -1) {
-    		sql += " AND exists (select * from usergroup ugg, managergroup mg where ugg.ilsgroupid=mg.ilsgroupid and ugg.userprid=up.userprid and mg.userprid=" +
-    		managerID + ")";
-    	}
+		CourseAttempt retVal = new CourseAttempt();
 
-    	sql += " GROUP BY UG.ILSGROUPID, IG.GROUPNAME, CA.CASTATUSID, CAS.CASTATUSDESC";
-    	sql += " ORDER BY IG.GROUPNAME ASC";
+		if (managerID > -1) {
+			sql += " AND exists (select * from usergroup ugg, managergroup mg where ugg.ilsgroupid=mg.ilsgroupid and ugg.userprid=up.userprid and mg.userprid=" +
+			managerID + ")";
+		}
 
-    	retVal.setCompanyID(session.getCompanyID());
-    	retVal.setIntValue("USERPRSTATUSID", statusID);
+		sql += " GROUP BY UG.ILSGROUPID, IG.GROUPNAME, CA.CASTATUSID, CAS.CASTATUSDESC";
+		sql += " ORDER BY IG.GROUPNAME ASC";
 
-    	return retVal.getDataSet(sql);
-    }
-    
-    
-    public CourseAttempt() {
-        setIntValue("CASTATUSID", 0);
-    }
+		retVal.setCompanyID(session.getCompanyID());
+		retVal.setIntValue("USERPRSTATUSID", statusID);
 
-    public Date getCourseAttemptCompleteDate() {
-        return getTSValue("CACOMPLETEDATE");
-    }
+		return retVal.getDataSet(sql);
+	}
 
-    public void setCourseAttemptCompleteDate(Date val) {
-        setTSValue("CACOMPLETEDATE", val);
-    }
 
-    public int getCourseAttemptID() {
-        return getIntValue("COURSATTID");
-    }
+	public CourseAttempt() {
+		setIntValue("CASTATUSID", 0);
+	}
 
-    public void setCourseAttemptID(int val) {
-        setIntValue("COURSATTID", val);
-    }
+	public Date getCourseAttemptCompleteDate() {
+		return getTSValue("CACOMPLETEDATE");
+	}
 
-    public int getCourseAttemptCourseID() {
-        return getIntValue("COURSID");
-    }
+	public void setCourseAttemptCompleteDate(Date val) {
+		setTSValue("CACOMPLETEDATE", val);
+	}
 
-    public void setCourseAttemptCourseID(int id) {
-        setIntValue("COURSID", id);
-    }
+	public int getCourseAttemptID() {
+		return getIntValue("COURSATTID");
+	}
 
-    public int getCourseAttemptScore() {
-        return getIntValue("CASCORE");
-    }
+	public void setCourseAttemptID(int val) {
+		setIntValue("COURSATTID", val);
+	}
 
-    public void setCourseAttemptScore(int val) {
-        setIntValue("CASCORE", val);
-    }
+	public int getCourseAttemptCourseID() {
+		return getIntValue("COURSID");
+	}
 
-    public String getCourseAttemptStage() {
-        return getStringValue("CASTAGE");
-    }
+	public void setCourseAttemptCourseID(int id) {
+		setIntValue("COURSID", id);
+	}
 
-    public void setCourseAttemptStage(String val) {
-	if (val == null || val.trim().length() == 0) {
-		try {
+	public int getCourseAttemptScore() {
+		return getIntValue("CASCORE");
+	}
+
+	public void setCourseAttemptScore(int val) {
+		setIntValue("CASCORE", val);
+	}
+
+	public String getCourseAttemptStage() {
+		return getStringValue("CASTAGE");
+	}
+
+	public void setCourseAttemptStage(String val) {
+		if (val == null || val.trim().length() == 0) {
+			try {
+				String oldValue = getCourseAttemptStage();
+				if (oldValue != null && oldValue.length() > 0) {
+					throw new Exception("Refusing to set CourseAtteptStage to empty when previous value was not empty.");
+				}
+			}
+			catch (Exception e) { e.printStackTrace(); return; }
+			return;
+		}
+		if ("".equals(getINIValue(val, "lesson_location"))) {
 			String oldValue = getCourseAttemptStage();
 			if (oldValue != null && oldValue.length() > 0) {
-				throw new Exception("Refusing to set CourseAtteptStage to empty when previous value was not empty.");
+				oldValue = getINIValue(oldValue, "lesson_location");
+				if (oldValue != null && oldValue.length() > 0 && !"0".equals(oldValue)) {
+					val = CourseAttempt.setINIValue(val, "lesson_location", oldValue);
+				}
 			}
 		}
-		catch (Exception e) { e.printStackTrace(); return; }
-		return;
+		setValue("CASTAGE", val);
 	}
-	if ("".equals(getINIValue(val, "lesson_location"))) {
-		String oldValue = getCourseAttemptStage();
-		if (oldValue != null && oldValue.length() > 0) {
-			oldValue = getINIValue(oldValue, "lesson_location");
-			if (oldValue != null && oldValue.length() > 0 && !"0".equals(oldValue)) {
-				val = CourseAttempt.setINIValue(val, "lesson_location", oldValue);
-			}
-		}
+
+	public Date getCourseAttemptStartDate() {
+		return getTSValue("CASTARTDATE");
 	}
-        setValue("CASTAGE", val);
-    }
 
-    public Date getCourseAttemptStartDate() {
-        return getTSValue("CASTARTDATE");
-    }
+	public void setCourseAttemptStartDate(Date val) {
+		setTSValue("CASTARTDATE", val);
+	}
 
-    public void setCourseAttemptStartDate(Date val) {
-        setTSValue("CASTARTDATE", val);
-    }
+	public int getCourseAttemptStatusID() {
+		return getIntValue("CASTATUSID");
+	}
 
-    public int getCourseAttemptStatusID() {
-        return getIntValue("CASTATUSID");
-    }
+	public void setCourseAttemptStatusID(int val) {
+		setIntValue("CASTATUSID", val);
+	}
 
-    public void setCourseAttemptStatusID(int val) {
-        setIntValue("CASTATUSID", val);
-    }
+	public int getCourseAttemptUserProfileID() {
+		return getIntValue("USERPRID");
+	}
 
-    public int getCourseAttemptUserProfileID() {
-        return getIntValue("USERPRID");
-    }
+	public void setCourseAttemptUserProfileID(int id) {
+		setIntValue("USERPRID", id);
+	}
 
-    public void setCourseAttemptUserProfileID(int id) {
-        setIntValue("USERPRID", id);
-    }
+	public void setCourseAttemptManagerApproved(boolean val) {
+		setValue("CAISMGRAPPRVL", (val) ? "T" : "F");
+	}
 
-    public void setCourseAttemptManagerApproved(boolean val) {
-        setValue("CAISMGRAPPRVL", (val) ? "T" : "F");
-    }
+	public boolean isCourseAttemptManagerApproved() {
+		return ("T".equals(getValue("CAISMGRAPPRVL")));
+	}
 
-    public boolean isCourseAttemptManagerApproved() {
-        return ("T".equals(getValue("CAISMGRAPPRVL")));
-    }
+	public void setCourseAttemptExpired(String reason) {
+		setTSValue("CAEXPIREDON", new Date());
+		setValue("CAEXPREASON", reason);
+	}
 
-    public void setCourseAttemptExpired(String reason) {
-        setTSValue("CAEXPIREDON", new Date());
-        setValue("CAEXPREASON", reason);
-    }
+	public boolean isCourseAttemptExpired() {
+		return (getTSValue("CAEXPIREDON") != null);
+	}
 
-    public boolean isCourseAttemptExpired() {
-        return (getTSValue("CAEXPIREDON") != null);
-    }
+	public Date getCourseAttemptExpiredDate() {
+		return getTSValue("CAEXPIREDON");
+	}
 
-    public Date getCourseAttemptExpiredDate() {
-        return getTSValue("CAEXPIREDON");
-    }
+	public String getCourseAttemptExpiredReason() {
+		return getStringValue("CAEXPREASON");
+	}
 
-    public String getCourseAttemptExpiredReason() {
-        return getStringValue("CAEXPREASON");
-    }
+	public void setCourseAttemptForcePass(String reason) {
+		Date now = new Date();
+		setTSValue("CAFORCEPASSON", now);
+		if (getCourseAttemptCompleteDate() == null) {
+			setCourseAttemptCompleteDate(now);
+		}
+		setValue("CAFORCEPASSREASON", reason);
+		setCourseAttemptStatusID(STATUS_PASSED);
+	}
 
-    public void setCourseAttemptForcePass(String reason) {
-        Date now = new Date();
-        setTSValue("CAFORCEPASSON", now);
-        if (getCourseAttemptCompleteDate() == null) {
-            setCourseAttemptCompleteDate(now);
-        }
-        setValue("CAFORCEPASSREASON", reason);
-        setCourseAttemptStatusID(STATUS_PASSED);
-    }
+	public boolean isCourseAttemptForcePass() {
+		return (getTSValue("CAFORCEPASSON") != null);
+	}
 
-    public boolean isCourseAttemptForcePass() {
-        return (getTSValue("CAFORCEPASSON") != null);
-    }
+	public Date getCourseAttemptForcePassDate() {
+		return getTSValue("CAFORCEPASSON");
+	}
 
-    public Date getCourseAttemptForcePassDate() {
-        return getTSValue("CAFORCEPASSON");
-    }
+	public String getCourseAttemptForcePassReason() {
+		return getStringValue("CAFORCEPASSREASON");
+	}
 
-    public String getCourseAttemptForcePassReason() {
-        return getStringValue("CAFORCEPASSREASON");
-    }
+	public String getCourseAttemptCallbackStatus() {
+		return getStringValue("CACALLBACKSTATUS");
+	}
 
-    public String getCourseAttemptCallbackStatus() {
-        return getStringValue("CACALLBACKSTATUS");
-    }
+	public void setCourseAttemptCallbackStatus(String status) {
+		setValue("CACALLBACKSTATUS", status);
+	}
 
-    public void setCourseAttemptCallbackStatus(String status) {
-        setValue("CACALLBACKSTATUS", status);
-    }
 
-    
-    public void defaultAll() {
-        setCourseAttemptScore(-1);
-	    setCourseAttemptStartDate(new Date());
-	    setCourseAttemptStatusID(STATUS_IN_PROGRESS);
-    }
+	public void defaultAll() {
+		setCourseAttemptScore(-1);
+		setCourseAttemptStartDate(new Date());
+		setCourseAttemptStatusID(STATUS_IN_PROGRESS);
+	}
 
 	static Logger logger = Logger.getLogger(CourseAttempt.class);
 	
-    // returns error status
-    public boolean sendStatusUpdateEvent(ServletContext context) {
-    	logger.debug("begin sendStatusUpdateEvent caid: " + this.getCourseAttemptID() + " user: " + this.getCourseAttemptUserProfileID());
-    	boolean error = false;
-    	
-    	ILSSession session = ILSSession.getAnonymous(getCompanyID());
-    	session.setIntValue("USERPRID", getCourseAttemptUserProfileID());
-    	
-        Properties sysConfig = Utils.getSysConfig(context, getCompanyID());
-	    boolean apiEnabled = "on".equals(sysConfig.getProperty("APIEnable", "off"));
-	    String callbackURL = sysConfig.getProperty("APICallbackCourseComplete");
-    	String passedFailed = null;
+	// returns error status
+	public boolean sendStatusUpdateEvent(ServletContext context) {
+		logger.debug("begin sendStatusUpdateEvent caid: " + this.getCourseAttemptID() + " user: " + this.getCourseAttemptUserProfileID());
+		boolean error = false;
+
+		ILSSession session = ILSSession.getAnonymous(getCompanyID());
+		session.setIntValue("USERPRID", getCourseAttemptUserProfileID());
+
+		Properties sysConfig = Utils.getSysConfig(context, getCompanyID());
+		boolean apiEnabled = "on".equals(sysConfig.getProperty("APIEnable", "off"));
+		String callbackURL = sysConfig.getProperty("APICallbackCourseComplete");
+		String passedFailed = null;
 		if (getCourseAttemptStatusID() == CourseAttempt.STATUS_PASSED) {
 			passedFailed = "PASSED";
 		}
 		else if (getCourseAttemptStatusID() == CourseAttempt.STATUS_FAILED) {
 			passedFailed = "FAILED";
 		}
-	    
-	    if (apiEnabled && callbackURL != null) {
-	    	StringBuffer result = new StringBuffer();
-	    	try {
-		    	StringBuffer params = new StringBuffer();
-		    	UserProfile user = UserProfile.getUserProfile(session, getCourseAttemptUserProfileID());
-		    	Course course = Course.getCourse(session, getCourseAttemptCourseID());
-		    	params.append("companyID=").append(getCompanyID());
-		    	params.append("&courseAttemptID=").append(getCourseAttemptID());
-		    	params.append("&userProfileUserData=").append(URLEncoder.encode(user.getStringValue("USERDATA"), "UTF-8"));
-		    	params.append("&userProfileID=").append(user.getUserProfileID());
-		    	params.append("&userProfileLoginID=").append(URLEncoder.encode(user.getUserProfileNum(), "UTF-8"));
-		    	params.append("&courseID=").append(course.getCourseID());
-		    	params.append("&courseNumber=").append(URLEncoder.encode(course.getCourseNum(), "UTF-8"));
-		    	params.append("&courseUserData=").append(URLEncoder.encode(course.getStringValue("USERDATA"), "UTF-8"));
-		    	params.append("&courseName=").append(URLEncoder.encode(course.getCourseName(), "UTF-8"));
-		    	params.append("&startDate=").append(URLEncoder.encode(getCourseAttemptStartDate().toString(), "UTF-8"));
-		    	params.append("&completeDate=").append(URLEncoder.encode(getCourseAttemptCompleteDate().toString(), "UTF-8"));
-		    	params.append("&score=").append(getCourseAttemptScore());
-		    	params.append("&statusID=").append(getCourseAttemptStatusID());
-		    	params.append("&statusDescription=").append(passedFailed);
-		    	params.append("&aiccStage=").append(URLEncoder.encode(getCourseAttemptStage(), "UTF-8"));
-		    	params.append("&isManagerApproved=").append(isCourseAttemptManagerApproved());
-logger.debug("POSTING to callback URL: " + callbackURL);
-logger.debug("POSTING data: " + params);
-		    	result = HTTPUtils.postURL(callbackURL, params.toString());
-logger.debug("POSTING result: " + result.toString());
-	    	}
-	    	catch (Exception e) { e.printStackTrace(); }
-	    	if (!"OK".equals(result.toString().trim())) {
-	    		error = true;
-	    		setCourseAttemptCallbackStatus("0");
-	    		CourseAttempt orig = (CourseAttempt)this.clone();
-	    		setCourseAttemptCallbackStatus("1");
-	    		save(orig);
-	    	}
-	    }
-    	logger.debug("end sendStatusUpdateEvent (error:"+error+")");
-	    return error;
+
+		if (apiEnabled && callbackURL != null) {
+			StringBuffer result = new StringBuffer();
+			try {
+				StringBuffer params = new StringBuffer();
+				UserProfile user = UserProfile.getUserProfile(session, getCourseAttemptUserProfileID());
+				Course course = Course.getCourse(session, getCourseAttemptCourseID());
+				params.append("companyID=").append(getCompanyID());
+				params.append("&courseAttemptID=").append(getCourseAttemptID());
+				params.append("&userProfileUserData=").append(URLEncoder.encode(user.getStringValue("USERDATA"), "UTF-8"));
+				params.append("&userProfileID=").append(user.getUserProfileID());
+				params.append("&userProfileLoginID=").append(URLEncoder.encode(user.getUserProfileNum(), "UTF-8"));
+				params.append("&courseID=").append(course.getCourseID());
+				params.append("&courseNumber=").append(URLEncoder.encode(course.getCourseNum(), "UTF-8"));
+				params.append("&courseUserData=").append(URLEncoder.encode(course.getStringValue("USERDATA"), "UTF-8"));
+				params.append("&courseName=").append(URLEncoder.encode(course.getCourseName(), "UTF-8"));
+				params.append("&startDate=").append(URLEncoder.encode(getCourseAttemptStartDate().toString(), "UTF-8"));
+				params.append("&completeDate=").append(URLEncoder.encode(getCourseAttemptCompleteDate().toString(), "UTF-8"));
+				params.append("&score=").append(getCourseAttemptScore());
+				params.append("&statusID=").append(getCourseAttemptStatusID());
+				params.append("&statusDescription=").append(passedFailed);
+				params.append("&aiccStage=").append(URLEncoder.encode(getCourseAttemptStage(), "UTF-8"));
+				params.append("&isManagerApproved=").append(isCourseAttemptManagerApproved());
+				logger.debug("POSTING to callback URL: " + callbackURL);
+				logger.debug("POSTING data: " + params);
+				result = HTTPUtils.postURL(callbackURL, params.toString());
+				logger.debug("POSTING result: " + result.toString());
+			}
+			catch (Exception e) { e.printStackTrace(); }
+			if (!"OK".equals(result.toString().trim())) {
+				error = true;
+				setCourseAttemptCallbackStatus("0");
+				CourseAttempt orig = (CourseAttempt)this.clone();
+				setCourseAttemptCallbackStatus("1");
+				save(orig);
+			}
+		}
+		logger.debug("end sendStatusUpdateEvent (error:"+error+")");
+		return error;
 	}
 
 
@@ -863,7 +863,7 @@
 		else if (getCourseAttemptStatusID() == CourseAttempt.STATUS_FAILED) {
 			passedFailed = "FAILED";
 		}
-		    
+
 		StringBuffer result = new StringBuffer();
 		StringBuffer xml = new StringBuffer();
 		UserProfile user = UserProfile.getUserProfile(session, getCourseAttemptUserProfileID());
@@ -895,44 +895,44 @@
 		return xml.toString();
 	}
 
-    
-    static public int resendDelayedCourseUpdates(int companyID, ServletContext context) {
-	    String CLEAR = "UPDATE COURSEATTEMPT SET CACALLBACKSTATUS=null";
-        CourseAttempt query = new CourseAttempt();
-        query.setCompanyID(companyID);
-        Vector results = null;
-        int count = 0;
-        
-    		String LOOKUPRETRY =	" FROM COURSEATTEMPT CA2 join COURSE CC on CC.COURSID=CA2.COURSID " +
-    				" WHERE CA2.COMPANYID={COMPANYID}" +
-    				" AND CA2.CACALLBACKSTATUS='1'";
-    		
-    	results = query.getDataSet("SELECT * " + LOOKUPRETRY);
-    	
-	    String CLEARRETRY = CLEAR + " WHERE COURSATTID IN (SELECT COURSATTID " + LOOKUPRETRY + ")";
-	    
-        count = query.executeSQL(CLEARRETRY);
-        
-        
-        if (results != null) {
-        	for (Object o: results) {
-        		CourseAttempt ca = (CourseAttempt)o;
-    			try {
-	        		ca.sendStatusUpdateEvent(context);
-    			}
-    			catch (Exception e) {
-    				e.printStackTrace();
-    			}
-    		}
-       	}
-        return count;
-    }
 
+	static public int resendDelayedCourseUpdates(int companyID, ServletContext context) {
+		String CLEAR = "UPDATE COURSEATTEMPT SET CACALLBACKSTATUS=null";
+		CourseAttempt query = new CourseAttempt();
+		query.setCompanyID(companyID);
+		Vector results = null;
+		int count = 0;
 
+		String LOOKUPRETRY =	" FROM COURSEATTEMPT CA2 join COURSE CC on CC.COURSID=CA2.COURSID " +
+			" WHERE CA2.COMPANYID={COMPANYID}" +
+			" AND CA2.CACALLBACKSTATUS='1'";
 
+		results = query.getDataSet("SELECT * " + LOOKUPRETRY);
 
+		String CLEARRETRY = CLEAR + " WHERE COURSATTID IN (SELECT COURSATTID " + LOOKUPRETRY + ")";
 
+		count = query.executeSQL(CLEARRETRY);
 
+
+		if (results != null) {
+			for (Object o: results) {
+				CourseAttempt ca = (CourseAttempt)o;
+				try {
+					ca.sendStatusUpdateEvent(context);
+				}
+				catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		}
+		return count;
+	}
+
+
+
+
+
+
 	public static void forcePass(int courseID, int userProfileID, String reason, ILSSession ilsSession, HttpServletRequest httpRequest) {
 		CourseAttempt.forcePass(courseID, userProfileID, reason, ilsSession, httpRequest, false, -1);
 	}
@@ -1061,7 +1061,7 @@
 		byte[] certData = bout.getByteArray();
 */
 	//	response.setContentType("image/svg+xml");
-	    
+
 		String mediaType = "print";
 		Dimension windowSize = new Dimension(850, 1100);
 
@@ -1185,42 +1185,42 @@
 
 
 
-  public static String getINIValue(String data, String key) {
-    String value = "";
-    int i = data.toLowerCase().indexOf(key.toLowerCase() + "=");
-    if (i > -1) {
-      i += key.length() + 1;
-      int j = data.indexOf("\r", i);
-      if (j < i) {
-      	j = data.indexOf("\n", i);
-      }
-      if (j < i) {
-        value = data.substring(i);
-      }
-      else
-        value = data.substring(i, j);
-    }
-    return value;
-  }
+	public static String getINIValue(String data, String key) {
+		String value = "";
+		int i = data.toLowerCase().indexOf(key.toLowerCase() + "=");
+		if (i > -1) {
+			i += key.length() + 1;
+			int j = data.indexOf("\r", i);
+			if (j < i) {
+				j = data.indexOf("\n", i);
+			}
+			if (j < i) {
+				value = data.substring(i);
+			}
+			else
+				value = data.substring(i, j);
+		}
+		return value;
+	}
 
 
-  public static String setINIValue(String data, String key, String value) {
-      String cValue = "";
-      String data1 = data;
-      int i = data.indexOf(key + "=");
-      if (i > -1) {
-          int j = i + key.length() + 1;
-          j = data.indexOf("\r\n", j);
-          if (j < i) {
-              data = data.substring(0, i);
-          }
-          else
-          data = data.substring(0, i) + data1.substring(j+"\r\n".length());
-      }
-      if (!data.endsWith("\r\n"))
-      data += "\r\n";
-      data += key + "=" + value+"\r\n";
-      return data;
-  }
+	public static String setINIValue(String data, String key, String value) {
+		String cValue = "";
+		String data1 = data;
+		int i = data.indexOf(key + "=");
+		if (i > -1) {
+			int j = i + key.length() + 1;
+			j = data.indexOf("\r\n", j);
+			if (j < i) {
+				data = data.substring(0, i);
+			}
+			else
+				data = data.substring(0, i) + data1.substring(j+"\r\n".length());
+		}
+		if (!data.endsWith("\r\n"))
+			data += "\r\n";
+		data += key + "=" + value+"\r\n";
+		return data;
+	}
 
 }




More information about the Ils-source mailing list