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

scribe at crosswire.org scribe at crosswire.org
Mon Nov 12 07:29:54 MST 2018


Author: scribe
Date: 2018-11-12 07:29:54 -0700 (Mon, 12 Nov 2018)
New Revision: 1625

Modified:
   trunk/src/com/resolutions/ils/data/CourseAttempt.java
Log:
Fixed email warn rules logic


Modified: trunk/src/com/resolutions/ils/data/CourseAttempt.java
===================================================================
--- trunk/src/com/resolutions/ils/data/CourseAttempt.java	2018-11-07 22:57:03 UTC (rev 1624)
+++ trunk/src/com/resolutions/ils/data/CourseAttempt.java	2018-11-12 14:29:54 UTC (rev 1625)
@@ -90,7 +90,7 @@
 				" AND CA2.CASTATUSID=1" +
 				" AND CA2.CAEXPIREDON IS NULL" +
 				" AND CC.COURSPASSEXPDAYS > 0" +
-				" AND CA2.CACOMPLETEDATE <= ({CURRENT_TIMESTAMP} - (CC.COURSPASSEXPDAYS - COALESCE(CC.COURSREASBEFDAYS,0)))";
+				" AND DATEDIFF(day, CA2.CACOMPLETEDATE, {CURRENT_TIMESTAMP}) >= (CC.COURSPASSEXPDAYS - COALESCE(CC.COURSREASBEFDAYS,0))";
 
 	static String LOOKUPEXPCOURSE = LOOKUPEXP + " AND CA2.COURSID={COURSID}";
 
@@ -107,7 +107,7 @@
 				" AND CA2.CASTATUSID=1" +
 				" AND CA2.CAEXPIREDON IS NOT NULL" +
 				" AND CC.COURSPASSEXPDAYS > 0" +
-				" AND CA2.CACOMPLETEDATE <= ({CURRENT_TIMESTAMP} - (CC.COURSPASSEXPDAYS - {WARNDAYS}))";
+				" AND DATEDIFF(day, CA2.CACOMPLETEDATE, {CURRENT_TIMESTAMP}) >= (CC.COURSPASSEXPDAYS - {WARNDAYS})";
 
 	static String LOOKUPPENDINGEXPCOURSE = LOOKUPPENDINGEXP + " AND CA2.COURSID={COURSID}";
 
@@ -241,6 +241,7 @@
 	* @return
 	*/
 	static public synchronized int warnAllPendingExpired(int companyID, int courseID, ServletContext context, int warningNumber) {
+logger.debug("Begin warnAllPendingExpired(companyID: " + companyID + ", courseID: " + courseID + "; warningNumber: " + warningNumber);
 		Properties sysConfig = Utils.getSysConfig(context, companyID);
 		CourseAttempt query = new CourseAttempt();
 		query.setCompanyID(companyID);
@@ -252,12 +253,16 @@
 		switch (warningNumber) {
 		case 1:
 			try { warnDays = Integer.parseInt(sysConfig.getProperty("EmailBeforeDueDate1", "0")); } catch (Exception e) { e.printStackTrace(); }
+			break;
 		case 2:
 			try { warnDays = Integer.parseInt(sysConfig.getProperty("EmailBeforeDueDate2", "0")); } catch (Exception e) { e.printStackTrace(); }
+			break;
 		case 3:
-			try { warnDays = Integer.parseInt(sysConfig.getProperty("EmailPastDueDate1", "0")); } catch (Exception e) { e.printStackTrace(); }
+			try { warnDays = -1 * Integer.parseInt(sysConfig.getProperty("EmailPastDueDate1", "0")); } catch (Exception e) { e.printStackTrace(); }
+			break;
 		case 4:
-			try { warnDays = Integer.parseInt(sysConfig.getProperty("EmailPastDueDate2", "0")); } catch (Exception e) { e.printStackTrace(); }
+			try { warnDays = -1 * Integer.parseInt(sysConfig.getProperty("EmailPastDueDate2", "0")); } catch (Exception e) { e.printStackTrace(); }
+			break;
 		}
 		query.setIntValue("WARNDAYS", warnDays);
 		query.setTSValue("CURRENT_TIMESTAMP", Utils.getNow());
@@ -285,7 +290,7 @@
 				try {
 					HashMap<String, Object> params = new HashMap<String, Object>();
 					params.put("SITEURL", sysConfig.getProperty("SiteURL", "your training site"));
-					params.put("WARNDAYS", Integer.toString(warnDays));
+					params.put("WARNDAYS", Integer.toString(Math.abs(warnDays)));
 					params.putAll(ca.getData());
 					String subject = Utils.replaceParams(subjectTemplate, params);
 					String body    = Utils.replaceParams(bodyTemplate, params);
@@ -298,6 +303,7 @@
 			}
 			SMTPMail.closeMailConnection();
 		}
+logger.debug("End warnAllPendingExpired(companyID: " + companyID + ", courseID: " + courseID + "; warningNumber: " + warningNumber + ") : " + count);
 		return count;
 	}
 




More information about the Ils-source mailing list