[Ils-source] r1356 - in trunk: src/com/resolutions/ils/data webapp

scribe at crosswire.org scribe at crosswire.org
Tue Nov 10 17:31:49 MST 2015


Author: scribe
Date: 2015-11-10 17:31:49 -0700 (Tue, 10 Nov 2015)
New Revision: 1356

Added:
   trunk/webapp/report_recurrent_training.jsp
Modified:
   trunk/src/com/resolutions/ils/data/UserProfile.java
   trunk/webapp/admin_profile.jsp
   trunk/webapp/menu.jsp
Log:
Added initial cut of recurrent training report


Modified: trunk/src/com/resolutions/ils/data/UserProfile.java
===================================================================
--- trunk/src/com/resolutions/ils/data/UserProfile.java	2015-11-11 00:28:20 UTC (rev 1355)
+++ trunk/src/com/resolutions/ils/data/UserProfile.java	2015-11-11 00:31:49 UTC (rev 1356)
@@ -75,7 +75,10 @@
 	static String COUNTWOULDBEDELETES = "SELECT COUNT(*) WOULDBE FROM ("+SELECTOLDIDS+") TMPTABLE";
 	static String LOOKUPUSERGROUPS = "SELECT * FROM ILSGROUP T1, USERGROUP T2 WHERE T1.ILSGROUPID=T2.ILSGROUPID AND T2.USERPRID={USERPRID} AND T1.COMPANYID={COMPANYID} AND T2.COMPANYID={COMPANYID}";
 
+	static String RECURRENT_TRAINING_REPORT = "SELECT DISTINCT CASS.USERPRID, CASS.COURSID, UP.USERPRLNAME, UP.USERPRFNAME, UP.USERPRNUM, C.COURSNAME, CA.CACOMPLETEDATE, CASE C.COURSPASSEXPDAYS WHEN 0 THEN CA.CAEXPIREDON ELSE COALESCE(CA.CAEXPIREDON, CA.CACOMPLETEDATE+C.COURSPASSEXPDAYS) END AS CAEXPIREDON, DATEDIFF(day, CA.CAEXPIREDON, CURRENT_TIMESTAMP) as DAYSEXPIRED, CASE C.COURSPASSEXPDAYS WHEN 0 THEN NULL ELSE C.COURSPASSEXPDAYS - DATEDIFF(day, CA.CACOMPLETEDATE, CURRENT_TIMESTAMP) END as DAYSSHOULDEXPIRE from USERCOURSEASSIGNMENTSWITHGROUPS CASS LEFT JOIN COURSE C ON C.COURSID = CASS.COURSID LEFT JOIN COURSEATTEMPT CA ON CA.USERPRID=CASS.USERPRID AND CA.COURSID=CASS.COURSID INNER JOIN (SELECT USERPRID, COURSID, MAX(CACOMPLETEDATE) as max_date FROM COURSEATTEMPT GROUP BY USERPRID, COURSID)a on a.USERPRID = CA.USERPRID AND a.COURSID=CA.COURSID and a.max_date = CA.CACOMPLETEDATE LEFT JOIN USERPROFILE UP ON UP.COMPANYID=CASS.COMPANYID AND UP.USERPRID = CASS.USERPRID WHERE CASS.COMPANYID={COMPANYID} AND (DATEDIFF(day, CA.CAEXPIREDON, CURRENT_TIMESTAMP) >= 0 OR CASE C.COURSPASSEXPDAYS WHEN 0 THEN NULL ELSE C.COURSPASSEXPDAYS - DATEDIFF(day, CA.CACOMPLETEDATE, CURRENT_TIMESTAMP) END <={DAYSTILEXP}) AND UP.USERPRSTATUSID=" + STATUS_ACTIVE;
+static String RECURRENT_TRAINING_REPORT_LIMIT_TO_MANAGER = " AND CASS.USERPRID IN (SELECT DISTINCT UG.USERPRID FROM MANAGERGROUP MG LEFT JOIN USERGROUP UG ON UG.COMPANYID = MG.COMPANYID AND UG.ILSGROUPID=MG.ILSGROUPID WHERE MG.COMPANYID={COMPANYID} AND MG.USERPRID={USERPRID}) AND (GROUPTYPEID <> 2 OR ILSGROUPID IN (SELECT ILSGROUPID FROM MANAGERGROUP WHERE COMPANYID={COMPANYID} AND USERPRID={USERPRID}))";
 
+
     private boolean isRoleLoaded              = false;
     private boolean isWorkgroupLoaded         = false;
     private boolean isCourseSummaryDataLoaded = false;
@@ -497,6 +500,21 @@
         return retVal.getDataSet(sql + " OPTION (RECOMPILE)");
     }
 
+	static public Vector<UserProfile> getManagerRecurrentTrainingReport(ILSSession session, int daysTilExpire) {
+		return getManagerRecurrentTrainingReport(session, daysTilExpire, -1);
+	}
+	static public Vector<UserProfile> getManagerRecurrentTrainingReport(ILSSession session, int daysTilExpire, int limitToManagerID) {
+		UserProfile retVal = new UserProfile();
+		String sql = RECURRENT_TRAINING_REPORT;
+		retVal.setCompanyID(session.getCompanyID());
+		retVal.setIntValue("DAYSTILEXP", daysTilExpire);
+		if (limitToManagerID != -1) {
+			sql += RECURRENT_TRAINING_REPORT_LIMIT_TO_MANAGER;
+			retVal.setUserProfileID(limitToManagerID);
+		}
+		return retVal.getDataSet(sql + " OPTION (RECOMPILE)");
+	}
+
     public UserProfile []getManagers() {
         String sql = LOOKUP + " AND USERPRID IN (" + LOOKUPMANAGERS + ")";
         Vector<UserProfile> rows = this.getDataSet(sql);

Modified: trunk/webapp/admin_profile.jsp
===================================================================
--- trunk/webapp/admin_profile.jsp	2015-11-11 00:28:20 UTC (rev 1355)
+++ trunk/webapp/admin_profile.jsp	2015-11-11 00:31:49 UTC (rev 1356)
@@ -872,7 +872,7 @@
 %>
                 <tr>
                   <td><input id="pv<%=UserProfile.ACCESS_MODE_MENU_STUDENT_RECORDS %>" type="checkbox" <%= ((userPrivs & UserProfile.ACCESS_MODE_MENU_STUDENT_RECORDS) == UserProfile.ACCESS_MODE_MENU_STUDENT_RECORDS) ? "checked=\"checked\"":"" %> name="priv" value="<%=UserProfile.ACCESS_MODE_MENU_STUDENT_RECORDS %>" /></td>
-                  <td>Student Records<br>
+                  <td>Reports<br>
                     <table width="200" border="0" cellspacing="1" cellpadding="0">
 <%
 

Modified: trunk/webapp/menu.jsp
===================================================================
--- trunk/webapp/menu.jsp	2015-11-11 00:28:20 UTC (rev 1355)
+++ trunk/webapp/menu.jsp	2015-11-11 00:31:49 UTC (rev 1356)
@@ -1,3 +1,36 @@
+<style type="text/css">
+    ul li{
+        display: inline-block;
+        position: relative;
+    }
+    ul li ul.dropdown{
+        padding: 0;
+        list-style: none;
+        display: none;
+        position: absolute;
+        z-index: 999;
+        left: 0;
+	background-image: url(images/bggradient.jpg);
+	background-position: left bottom;
+	background-size: 100% 100%;
+	background-repeat: repeat-x;
+    }
+    ul li:hover ul.dropdown{
+        display: block;	/* Display the dropdown */
+    }
+    ul li ul.dropdown li{
+        text-align: left;
+        display: block;
+	border-right: none !important;
+    }
+    ul li ul.dropdown li a{
+        display: block;
+        padding: 8px 8px;
+        color: #333;
+        text-decoration: none;
+    }
+</style>
+
    <div id="Banner"><span class="loggedinBar">Logged in as:<%=user.getUserProfileNum()%></span></div>
       <div id="MainMenu">
 <%
@@ -38,14 +71,30 @@
   }
   if ((user.getUserProfileAccessLevel() > UserProfile.ACCESS_MANAGER) || (user.hasAccess(UserProfile.ACCESS_MODE_MENU_STUDENT_RECORDS))) {
 %>
-	  <li><a href="admin_studentrecords.jsp">Student<br />Records</a></li>
+	<li><a href="#">Reports <span> &#9660;</span></a>
+	<ul class="dropdown">
 <%
   }
   if ((user.getUserProfileAccessLevel() > UserProfile.ACCESS_MANAGER) || (user.hasAccess(UserProfile.ACCESS_MODE_MENU_STUDENT_RECORDS))) {
 %>
-	  <li><a href="report_pending_summary.jsp">Summary<br />Report</a></li>
+	  <li><a href="admin_studentrecords.jsp">Student Records</a></li>
 <%
   }
+  if ((user.getUserProfileAccessLevel() > UserProfile.ACCESS_MANAGER) || (user.hasAccess(UserProfile.ACCESS_MODE_MENU_STUDENT_RECORDS))) {
+%>
+	  <li><a href="report_pending_summary.jsp">Summary Report</a></li>
+<%
+  }
+  if ((user.getUserProfileAccessLevel() > UserProfile.ACCESS_MANAGER) || (user.hasAccess(UserProfile.ACCESS_MODE_MENU_STUDENT_RECORDS))) {
+%>
+	  <li><a href="report_recurrent_training.jsp">Recurrent Training Report</a></li>
+<%
+  }
+  if (user.getUserProfileAccessLevel() >= UserProfile.ACCESS_MANAGER) {
+%>
+	</ul></li>
+<%
+  }
   if ((user.getUserProfileAccessLevel() > UserProfile.ACCESS_MANAGER) || (user.hasAccess(UserProfile.ACCESS_MODE_MENU_USER_PROFILE_MGMT))) {
 %>
 	  <li><a href="admin_profilemanagement.jsp">User Profile<br />Management</a></li>

Added: trunk/webapp/report_recurrent_training.jsp
===================================================================
--- trunk/webapp/report_recurrent_training.jsp	                        (rev 0)
+++ trunk/webapp/report_recurrent_training.jsp	2015-11-11 00:31:49 UTC (rev 1356)
@@ -0,0 +1,374 @@
+<%@ page
+    language="java" contentType="text/html;charset=utf-8" %>
+<%@ page trimDirectiveWhitespaces="true" %>
+<%@ page import="com.resolutions.ils.*" %>
+<%@ page import="com.resolutions.ils.data.*" %>
+<%@ page import="java.util.Vector" %>
+<%@ page import="java.util.Comparator" %>
+<%@ page import="java.util.Date" %>
+<%@ page import="java.text.SimpleDateFormat" %>
+<%@ page import="org.apache.log4j.Logger" %>
+<%@ page import="java.util.Collections" %>
+ 
+<%
+    String statusMsg = "";
+    String validError = "";
+    int daysTilDue = 30;
+    String sortOrder = "past";
+    final ILSSession ilsSession = (ILSSession)session.getAttribute("ilsSession");
+    if (ilsSession == null) {
+        out.print("<html><head><META HTTP-EQUIV=\"Refresh\" CONTENT=\"0;URL=login.jsp\"></head></html>");
+        return;
+    }
+
+    boolean noHTML = false;
+
+    UserProfile user = ilsSession.getCurrentUserProfile();
+    if ((user.getUserProfileAccessLevel() <= UserProfile.ACCESS_MANAGER) && (!user.hasAccess(UserProfile.ACCESS_MODE_MENU_STUDENT_RECORDS))) {
+        out.print("<html><body><h1>Access Forbidden</h1></body></html>");
+        Logger.getLogger(this.getClass()).info("Access denied to user ["+user.getUserProfileNum()+"]");
+        return;
+    }
+
+    int limitToManager = (user.getUserProfileAccessLevel() <= UserProfile.ACCESS_MANAGER) ? user.getUserProfileID() : -1;
+
+    try { daysTilDue = (Integer)session.getAttribute("daysTilDue"); } catch(Exception e) {}
+    try { daysTilDue = Integer.parseInt(request.getParameter("daysTilDue")); } catch(Exception e) {}
+    try { session.setAttribute("daysTilDue", new Integer(daysTilDue)); } catch(Exception e) {}
+
+    String val = (String)session.getAttribute("recurrentSort"); if (val != null) sortOrder = val;
+    val = (String)request.getParameter("sort"); if (val != null) sortOrder = val;
+    session.setAttribute("recurrentSort", sortOrder);
+
+    Vector<UserProfile> userProfiles = null;
+    SimpleDateFormat df  = new SimpleDateFormat("MM/dd/yyyy");
+    String action = request.getParameter("action");
+
+    String tmp;
+    final String sort = sortOrder;
+
+    if ("csv".equals(action)) {
+        noHTML = true;
+        response.setContentType("application/x-csv");
+        response.setHeader("Content-Disposition","attachment; filename=recurrentReport.csv");
+    }
+
+        userProfiles = UserProfile.getManagerRecurrentTrainingReport(ilsSession, daysTilDue, limitToManager);
+	int expiredCount = 0;
+	for (UserProfile up : userProfiles) {
+		if (up.getValue("DAYSEXPIRED") != null) ++expiredCount;
+	}
+        if (sort != null) {
+            Collections.sort(userProfiles, new Comparator() {
+                public int compare(Object o1, Object o2) {
+			UserProfile p1 = (UserProfile)o1;
+			UserProfile p2 = (UserProfile)o2;
+                    if ("lname".equals(sort)) {
+                        return p1.getUserProfileLastName().compareTo(p2.getUserProfileLastName());
+                    }
+                    if ("fname".equals(sort)) {
+                        return p1.getUserProfileFirstName().compareTo(p2.getUserProfileFirstName());
+                    }
+                    if ("empid".equals(sort)) {
+                        return p1.getUserProfileNum().compareTo(p2.getUserProfileNum());
+                    }
+                    if ("location".equals(sort)) {
+                        return p1.getWorkgroup(ilsSession).compareTo(p2.getWorkgroup(ilsSession));
+                    }
+                    if ("role".equals(sort)) {
+                        return p1.getRole(ilsSession).compareTo(p2.getRole(ilsSession));
+                    }
+                    if ("cname".equals(sort)) {
+                        return p1.getStringValue("COURSNAME").compareTo(p2.getStringValue("COURSNAME"));
+                    }
+                    if ("past".equals(sort)) {
+			return p2.getIntValue("DAYSEXPIRED") - p1.getIntValue("DAYSEXPIRED");
+                    }
+                    if ("due".equals(sort)) {
+                        Date d1 = p1.getDateValue("CAEXPIREDON");
+                        Date d2 = p2.getDateValue("CAEXPIREDON");
+                        long i1 = (d1 == null) ? 0 : d1.getTime();
+                        long i2 = (d2 == null) ? 0 : d2.getTime();
+                        return (i1 > i2) ? -1 : (i1 == i2) ? 0 : 1;
+                    }
+                    return 0;
+                }
+            });
+
+        }
+
+    if (!noHTML) {
+%>
+<!doctype html>
+<html>
+<head>
+<title><%= ilsSession.getCurrentCompany().getCompanyName() %> eLearning Portal</title>
+	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
+	<link rel="stylesheet" href="css/chosen/chosen.min.css">
+	<script type="text/javascript" src="js/jquery/jquery.min.js"></script>
+	<script type="text/javascript" src="js/jquery/jquery.blockUI.js"></script>
+	<script type="text/javascript" src="js/chosen/chosen.jquery.min.js"></script>
+	<script type="text/javascript" src="crosswire.js"></script>
+	<link href="lms_style.css" rel="stylesheet" type="text/css"/>
+	<script type="text/javascript" language="JavaScript">
+<!--
+var rdCtl = null;
+
+function rD(val) {
+    rdCtl.value = val;
+}
+
+function scrollToReport() {
+	records = document.getElementById("gotRecords")
+	if (records) {
+		window.location.hash="report";
+	}
+}
+
+$(document).ready(function() {
+	$('#locationSelect').attr('data-placeholder', $('#selectWorkgroup').text());
+	$('#roleSelect').attr('data-placeholder', $('#selectRole').text());
+	$('#roleSelect').chosen();
+	$('#locationSelect').chosen();
+});
+
+// -->
+    </script>
+   <!-- <style type="text/css">
+<!--
+<!--.style1 {font-size: 12px}
+<!--.style2 {text-transform: none; color: #3F7ABA; padding: 4px 4px 8px; font-weight: bold; text-decoration: none; border: none; font-family: Arial, Helvetica, sans-serif;}
+<!--.style3 {font-size: 10px}
+<!--.style6 {font-size: 12px; text-transform: none; font-weight: bold; text-decoration: none; border: none; font-family: Arial, Helvetica, sans-serif;}
+-->
+   <!-- </style>// -->
+   <style type="text/css">
+<!--
+.style1 {color: #9A9697}
+-->
+   </style>
+</head>
+
+<body onLoad="scrollToReport()">
+<%@ include file="header.jsp" %>
+  <div id="pageContainer">
+<%@ include file="menu.jsp" %>
+<div id="content">
+<div id="pageTitles">
+Recurrent Training Management Report<br />
+<span class="instructiontxt"><%= statusMsg %></span>
+<span class="instructiontxt"><%= validError %></span>
+                          <table class="tableBTN">
+                            <tr>
+                              <td class="tableBTN_td1">
+                                <table>
+                                  <tr>
+                                    <td><a href="javascript:void(window.print())" target="_top"><img border="0" src="images/print_btn.gif" width="24" height="24" alt=""/></a></td>
+                                    <td><a class="formButtons" href="javascript:void(window.print())" target="_top">Print Report</a></td>
+                                  </tr>
+                              </table>                              </td>
+                              <td>
+                                <table>
+                                  <tr>
+                                    <td><a href="?action=csv"><img border="0" src="images/download_btn.gif" width="24" height="24" alt=""></a></td>
+					<td></td>
+                                    <td><a href="?action=csv" class="formButtons">Download to Excel File </a></td>
+                                    <td><form action="#">View Upcoming Training Within The Next <input name="daysTilDue" size="5" value="<%=daysTilDue%>"/> Days <button>Go</button></form></td>
+                                  </tr>
+                                </table>
+                              </td>
+                            </tr>
+                          </table>
+</div>
+
+                    <table cellpadding="0" cellspacing="0" class="tableMain">
+                      <tr>
+                        <th>
+                        Past Due Training&nbsp; ( <%=expiredCount %> &nbsp;Records&nbsp;)  <%= (userProfiles.size()>0)?"<a name=\"report\" id=\"gotRecords\"></a>":"" %> </th>
+
+                      </tr>
+                      <tr>
+                        <td>
+                        </td>
+                      </tr>
+                      <tr>
+                        <td>
+                          <table class="tableDataList">
+                            <tr>
+                              <th><a href="?sort=lname">Last Name</a></th>
+                              <th><a href="?sort=fname">First Name</a></th>
+                              <th><a href="?sort=empid">Emp ID</a></th>
+                              <th><a href="?sort=location"><t:t>Workgroup</t:t></a></th>
+                              <th><a href="?sort=role"><t:t>Role</t:t></a></th>
+                              <th><a href="?sort=course">Course Name</a></th>
+                              <th><a href="?sort=due">Date Due</a></th>
+                              <th><a href="?sort=past">Days Past Due</a></th>
+                            </tr>
+<%
+    }
+    else {
+	out.print(ilsSession.getCurrentCompany().getCompanyName() + "\n");
+	out.print(user.getUserProfileFirstName() + " " + user.getUserProfileLastName() + "\n");
+	out.print("Report Run " + df.format(new Date()) + "\n\n");
+	out.print("Recurrent Training Management Report\n\n");
+	out.print("Past Due Training\n\n");
+        out.print("Last Name,");
+	out.print("First Name,");
+	out.print("Emp ID,");
+%><t:t>Workgroup</t:t>,<%
+%><t:t>Role</t:t>,<%
+	out.print("Course Name,Date Due,Days Past Due\n");
+    }
+    for (UserProfile up : userProfiles) {
+	 if (up.getValue("DAYSEXPIRED") == null) continue;
+         Date lastDate = up.getDateValue("CAEXPIREDON");
+         String eDate = (lastDate != null) ? df.format(lastDate) : "";
+         if (!noHTML) {
+             %>
+             <tr>
+                 <td><a href="report_employeecourseatt.jsp?profileid=<%=up.getUserProfileID()%>"><%=up.getUserProfileLastName()%></a></td>
+                 <td><a href="report_employeecourseatt.jsp?profileid=<%=up.getUserProfileID()%>"><%=up.getUserProfileFirstName()%></a></td>
+                 <td><a href="report_employeecourseatt.jsp?profileid=<%=up.getUserProfileID()%>"><%=up.getUserProfileNum()%></a></td>
+<%
+	String workgroup  = up.getWorkgroup(ilsSession);
+	String workgroupSet = up.getWorkgroups(ilsSession);
+	if (!workgroup.equals(workgroupSet)) workgroup += " ...";
+%>
+		<td title="<%= workgroupSet %>"><%= workgroup %></td>
+<%
+	String role = up.getRole(ilsSession);
+	String roleSet = up.getRoles(ilsSession);
+	if (!role.equals(roleSet)) role += " ...";
+%>
+		<td title="<%= roleSet %>"><%= role %></td>
+                 <td width="60" align="right"><%=up.getStringValue("COURSNAME")%></td>
+                 <td width="75" align="right"><%=eDate%></td>
+                 <td width="60" align="right"><%=up.getIntValue("DAYSEXPIRED")%></td>
+             </tr>
+             <%
+         }
+         else {
+		out.print("\""+up.getUserProfileLastName().replaceAll("\"", "\"\"") + "\",");
+		out.print("\""+up.getUserProfileFirstName().replaceAll("\"", "\"\"") + "\",");
+		out.print("\""+up.getUserProfileNum().replaceAll("\"", "\"\"") + "\",");
+		out.print("\""+up.getWorkgroups(ilsSession).replaceAll("\"", "\"\"") + "\",");
+		out.print("\""+up.getRoles(ilsSession).replaceAll("\"", "\"\"") + "\",");
+		out.print(up.getStringValue("COURSNAME") + ",");
+		out.print(eDate + ",");
+		out.print(up.getIntValue("DAYSEXPIRED") + ",");
+		out.print("\n");
+         }
+    }
+    if (!noHTML) {
+%>
+                        </table></td>
+                      </tr>
+    </table>
+                    <table cellpadding="0" cellspacing="0" class="tableMain">
+                      <tr>
+                        <th>
+                        Training Required Next <%=daysTilDue%> Days&nbsp; ( <%=userProfiles.size() - expiredCount %> &nbsp;Records&nbsp;)  <%= (userProfiles.size()>0)?"<a name=\"report\" id=\"gotRecords\"></a>":"" %> </th>
+
+                      </tr>
+                      <tr>
+                        <td>
+                        </td>
+                      </tr>
+                      <tr>
+                        <td>
+                          <table class="tableDataList">
+                            <tr>
+                              <th><a href="?sort=lname">Last Name</a></th>
+                              <th><a href="?sort=fname">First Name</a></th>
+                              <th><a href="?sort=empid">Emp ID</a></th>
+                              <th><a href="?sort=location"><t:t>Workgroup</t:t></a></th>
+                              <th><a href="?sort=role"><t:t>Role</t:t></a></th>
+                              <th><a href="?sort=course">Course Name</a></th>
+                              <th><a href="?sort=due">Date Due</a></th>
+                              <th><a href="?sort=past">Days to Due Date</a></th>
+                            </tr>
+<%
+    }
+    else {
+	out.print("\n\nTraining Required Next " + daysTilDue+" Days\n\n");
+        out.print("Last Name,");
+	out.print("First Name,");
+	out.print("Emp ID,");
+%><t:t>Workgroup</t:t>,<%
+%><t:t>Role</t:t>,<%
+	out.print("Course Name,Date Due,Days to Due Date\n");
+    }
+	if ("past".equals(sort)) {
+            Collections.sort(userProfiles, new Comparator() {
+                public int compare(Object o1, Object o2) {
+			UserProfile p1 = (UserProfile)o1;
+			UserProfile p2 = (UserProfile)o2;
+			return p1.getIntValue("DAYSSHOULDEXPIRE") - p2.getIntValue("DAYSSHOULDEXPIRE");
+                }
+            });
+
+        }
+    for (UserProfile up : userProfiles) {
+	 if (up.getValue("DAYSEXPIRED") != null) continue;
+         Date lastDate = up.getDateValue("CAEXPIREDON");
+         String eDate = (lastDate != null) ? df.format(lastDate) : "";
+         if (!noHTML) {
+             %>
+             <tr>
+                 <td><a href="report_employeecourseatt.jsp?profileid=<%=up.getUserProfileID()%>"><%=up.getUserProfileLastName()%></a></td>
+                 <td><a href="report_employeecourseatt.jsp?profileid=<%=up.getUserProfileID()%>"><%=up.getUserProfileFirstName()%></a></td>
+                 <td><a href="report_employeecourseatt.jsp?profileid=<%=up.getUserProfileID()%>"><%=up.getUserProfileNum()%></a></td>
+<%
+	String workgroup  = up.getWorkgroup(ilsSession);
+	String workgroupSet = up.getWorkgroups(ilsSession);
+	if (!workgroup.equals(workgroupSet)) workgroup += " ...";
+%>
+		<td title="<%= workgroupSet %>"><%= workgroup %></td>
+<%
+	String role = up.getRole(ilsSession);
+	String roleSet = up.getRoles(ilsSession);
+	if (!role.equals(roleSet)) role += " ...";
+%>
+		<td title="<%= roleSet %>"><%= role %></td>
+                 <td width="60" align="right"><%=up.getStringValue("COURSNAME")%></td>
+                 <td width="75" align="right"><%=eDate%></td>
+                 <td width="60" align="right"><%=up.getIntValue("DAYSSHOULDEXPIRE")%></td>
+             </tr>
+             <%
+         }
+         else {
+		out.print("\""+up.getUserProfileLastName().replaceAll("\"", "\"\"") + "\",");
+		out.print("\""+up.getUserProfileFirstName().replaceAll("\"", "\"\"") + "\",");
+		out.print("\""+up.getUserProfileNum().replaceAll("\"", "\"\"") + "\",");
+		out.print("\""+up.getWorkgroups(ilsSession).replaceAll("\"", "\"\"") + "\",");
+		out.print("\""+up.getRoles(ilsSession).replaceAll("\"", "\"\"") + "\",");
+		out.print(up.getStringValue("COURSNAME") + ",");
+		out.print(eDate + ",");
+		out.print(up.getIntValue("DAYSSHOULDEXPIRE") + ",");
+		out.print("\n");
+         }
+    }
+    if (!noHTML) {
+%>
+                        </table></td>
+                      </tr>
+    </table>
+
+<%
+  }
+if (!noHTML) {
+%>
+
+<div id="attributeTranslationStrings" style="display:none;">
+<span id="selectWorkgroup"><t:t>Select Workgroup</t:t></span>
+<span id="selectRole"><t:t>Select Role</t:t></span>
+</div>
+
+</div>
+<%@ include file="footer.jsp" %>
+</div>
+
+</body>
+</html>
+
+<%} %>




More information about the Ils-source mailing list