⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 activitycalendar.jsp

📁 国外的一套开源CRM
💻 JSP
📖 第 1 页 / 共 3 页
字号:
<%@ include file="/includes/header.jsp" %>

<%@ page import="com.sourcetap.sfa.ui.UIScreenSection" %>
<%@ page import="com.sourcetap.sfa.ui.UIUserDropDown" %>
<%@ page import="com.sourcetap.sfa.util.Preference" %>
<%@ page import="java.util.*" %>
<%@ page import="java.text.*" %>
<%@ page import="java.math.*" %>
<%@ page import="java.sql.*" %>
<%@ page import="org.ofbiz.entity.*" %>
<%@ page import="org.ofbiz.entity.condition.*" %>
<%@ page import="org.ofbiz.entity.model.*" %>
<%@ page import="com.sourcetap.sfa.util.EntityHelper" %>


<%!
boolean DEBUG = false;
String module = "activityCalendar";
//  GenericDelegator delegator2 = new GenericDelegator("default");
String ENTITY = "Activity";
//  ModelEntity entity = delegator2.getModelEntity(ENTITY);

Date currentDate = new Date();
int currentMonth = Calendar.getInstance().get(Calendar.MONTH) + 1;
int currentYear = Calendar.getInstance().get(Calendar.YEAR);
int currentDay = Calendar.getInstance().get(Calendar.DAY_OF_MONTH);
int popupWidth = 1024;
int popupHeight = 525;

// put in a blank element because we want the months to start at '1' not '0'
String monthLabel[] = {"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
String dayLabel[] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday","Saturday"};
int daysInMonth[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

public String makeMonth(int month, int year, GenericDelegator delegator, UserInfo userInfo, String showUserPartyId) {

	Calendar calendar = getCalendar(month, year, 1);
	int firstDay = calendar.get(Calendar.DAY_OF_WEEK);
	int rows;
	if (((daysInMonth[month] == 31) && (firstDay >= 6)) || ((daysInMonth[month] == 30) && (firstDay == 7))) {
		rows = 6;
	} else if ((daysInMonth[month] == 28) && (firstDay == 1)) {
		rows = 4;
	} else 	{
		rows = 5;
	}

	StringBuffer returnString = new StringBuffer();
	try {
		List monthList = findActivitiesByMonth(month, year, delegator, showUserPartyId);
		GenericValue monthActivitiesGV[] = (GenericValue[])monthList.toArray(new GenericValue[0]);
//		returnString.append("Activity Count: " + String.valueOf(monthActivitiesGV.length));

		returnString.append("<TABLE WIDTH=\"100%\" CLASS=\"calendarTable\">\n");
		returnString.append(" <TR>\n");
		returnString.append("  <TD ALIGN=\"left\" COLSPAN=\"3\"><BIG><B>" + monthHeader(year, month, showUserPartyId) + "</B></BIG></TD>\n");
		returnString.append("  <TD ALIGN=\"right\" COLSPAN=\"4\">\n");
		returnString.append("   <FORM METHOD=\"post\" ACTION=\"/sfa/control/activityCalendar\" NAME=\"UserSelectForm\">\n");
		returnString.append("   View calendar for:\n");
		returnString.append("    <INPUT TYPE=\"hidden\" NAME=\"action\" VALUE=\"month\">\n");
		returnString.append("    <INPUT TYPE=\"hidden\" NAME=\"year\" VALUE=\"" + String.valueOf(year) + "\">\n");
		returnString.append("    <INPUT TYPE=\"hidden\" NAME=\"month\" VALUE=\"" + String.valueOf(month) + "\">\n");
		returnString.append("    <SELECT NAME=\"showUserPartyId\" CLASS=\"stateSelectBox\" onChange=\"document.UserSelectForm.submit();\">\n");

		// Get the current user's name.
		HashMap currentUserContactKeyMap = new HashMap();
		currentUserContactKeyMap.put("contactId", userInfo.getPartyId());
		GenericValue currentUserContactGV = delegator.findByPrimaryKey("Contact", currentUserContactKeyMap);
		String currentUserFirstName = currentUserContactGV.getString("firstName")==null ? "" :
			currentUserContactGV.getString("firstName");
		String currentUserLastName = currentUserContactGV.getString("lastName")==null ? "" :
			currentUserContactGV.getString("lastName");
		returnString.append("     <OPTION VALUE=\"" + userInfo.getPartyId() + "\"");
		if (userInfo.getPartyId().equals(showUserPartyId)) {
			returnString.append(" SELECTED");
		}
		returnString.append(">" + currentUserFirstName + " " + currentUserLastName + "\n");

		// Get a list of all other users in the current user's company.
		UIUserDropDown uiUserDropDown = new UIUserDropDown();
		List userContactL = uiUserDropDown.getDropDownValues(
			delegator,
			null,
			null,
			null,
			null,
			userInfo);

		// Filter the list to only those people who are sharing their calendars.
		Iterator userContactI = userContactL.iterator();
		while (userContactI.hasNext()) {
			GenericValue userContactGV = (GenericValue)userContactI.next();
			String userContactId = userContactGV.getString("contactId")==null ? "" : userContactGV.getString("contactId");

			// Find out whether this user is sharing their calendar.
	  		Preference preference = new Preference(delegator);
	  		String shareCalendar = preference.getPreference(userContactId, "SHARE_CALENDAR", "yes");
			if (DEBUG) Debug.logVerbose("[activityCalendar.jsp] SHARE_CALENDAR for partyId " + userContactId + " is \"" + shareCalendar + "\"", module);
			if (shareCalendar.equals("yes") && !userContactId.equals(userInfo.getPartyId())) {
				// This user is sharing their calendar, and is not the current logged-in user.
				// Go ahead and add it to the list.
				String userContactFirstName = userContactGV.getString("firstName")==null ? "" :
					userContactGV.getString("firstName");
				String userContactLastName = userContactGV.getString("lastName")==null ? "" :
					userContactGV.getString("lastName");
				returnString.append("     <OPTION VALUE=\"" + userContactId + "\"");
				if (userContactId.equals(showUserPartyId)) {
					returnString.append(" SELECTED");
				}
				returnString.append(">" + userContactFirstName + " " + userContactLastName + "\n");
			}
		}
		returnString.append("    </SELECT>\n");
		returnString.append("   </FORM>\n");
		returnString.append("  </TD>\n");
		returnString.append(" </TR>\n");
		returnString.append(" <TR HEIGHT=\"30\">\n");
		for(int i = 0; i < 7; i++) {
		    returnString.append("<TD");
			if (i==3) {
				returnString.append(" WIDTH=\"*\"");
			} else {
				returnString.append(" WIDTH=\"14%\"");
			}
		    returnString.append(" ALIGN=\"center\">" + dayLabel[i] + "</TD>\n");
		}
		returnString.append("</TR>\n");

		int dayCounter = 1;
		int loopCounter = 1;
		String dayDetail = "";
		for (int j = 1; j <= rows; j++) {
			returnString.append("<TR CLASS=\"calendarDay\" HEIGHT=\"90\">\n");
			for (int i = 1; i < 8; i++)  {
				Calendar dayCalendar = new GregorianCalendar(year, month-1, dayCounter);
				java.sql.Date dayDate = new java.sql.Date(dayCalendar.getTime().getTime());
				SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy");
				String dayDateString = "";
				try {
					dayDateString = dateFormat.format(dayDate);
				} catch (Exception e) {
					Debug.logError("[activityCalendar.jsp] Error formatting day date: " + e.getLocalizedMessage(), module);
				}

				returnString.append("<TD ");
				// Default to plain colors.
				String styleClass = "calendarWeekday";
				if (i==1 || i==7) {
					// This is a weekend day. Use the colors for a weekend day.
					styleClass = "calendarWeekend";
				}
				returnString.append(" VALIGN=\"top\" ");
 				// Check for valid day of the month
				if ((loopCounter >= firstDay) && (dayCounter <= daysInMonth[month]))  {
					// Check for today
					if ((dayCounter == currentDay) && (month == currentMonth) && (year == currentYear)) {
						// This is today's date. Change the background color of the box.
						styleClass = "calendarToday";
					}
					returnString.append("CLASS=\"" + styleClass + "\">\n");
					returnString.append(" <TABLE WIDTH=\"100%\">\n");
					returnString.append("  <TR CLASS=\"calendarDate\">\n");
					returnString.append("   <TD CLASS=\"calendarDayNumber\" WIDTH=\"50%\">\n");
//					returnString.append("    <B><A HREF=\"/sfa/control/activityCalendar?action=day&amp;day=" + dayCounter +
//						"&amp;month=" + month + "&amp;year=" + year + " \">" + dayCounter + "</A></B>\n");
					returnString.append("    <B>" + dayCounter + "</B>\n");
					returnString.append("   </TD>\n");
					returnString.append("   <TD WIDTH=\"50%\" ALIGN=\"right\">\n");
					String newAnchorName = "NewActivity" + String.valueOf(year) + String.valueOf(month) +
						String.valueOf(dayCounter);
					returnString.append("    <INPUT CLASS=\"calendarButton\" TYPE=\"image\" " +
						"TITLE=\"Create a new activity for " + dayDateString + "\" SRC=\"/sfaimages/New24.gif\" " +
						"onclick='window.open(\"/sfa/control/activityPopup?action=" +
						UIScreenSection.ACTION_SHOW_INSERT + "&openDate=" + dayDateString +
						"&activityOwnerId=" + showUserPartyId +	"\", \"activityPopupNew\", " +
						"\"menubar=no,scrollbars=no,toolbar=no,directories=no,top=100," +
						"left=100,height=" + String.valueOf(popupHeight) + ",width=" + String.valueOf(popupWidth) + "\", \"\");'></INPUT>\n");
					returnString.append("   </TD>\n");
					returnString.append("  </TR>\n");
					returnString.append(" </TABLE>\n");

					//Activities
					if (monthList != null && monthList.size() > 0) {
						for(int activityNbr=0; activityNbr < monthActivitiesGV.length; activityNbr++){
							GenericValue monthActivityGV = monthActivitiesGV[activityNbr];

							Calendar activityCalendar = new GregorianCalendar();
							java.sql.Date activityOpenDate = monthActivityGV.getDate("openDate");

							if(dayDate.compareTo(activityOpenDate)==0){
								String  activityId = monthActivityGV.getString("activityId")==null ? "" :
									monthActivityGV.getString("activityId");
								String  activityName = monthActivityGV.getString("activityName")==null ? "" :
									monthActivityGV.getString("activityName");
								if (DEBUG) Debug.logVerbose("[activityCalendar.jsp] Reading openStartTime", module);
								String openStartTimeString = "";
								if (DEBUG) Debug.logVerbose("[activityCalendar.jsp] Checking for null openStartTime", module);
								if (monthActivityGV.getTimestamp("openStartTime")!=null) {
									if (DEBUG) Debug.logVerbose("[activityCalendar.jsp] Getting openStartTime value into local var", module);
									java.sql.Timestamp openStartTime = monthActivityGV.getTimestamp("openStartTime");
									if (DEBUG) Debug.logVerbose("[activityCalendar.jsp] Creating SimpleDateFormat", module);
									SimpleDateFormat timeFormat = new SimpleDateFormat("h:mm a");
									try {
										openStartTimeString = timeFormat.format(openStartTime) + " - ";
									} catch (Exception e) {
										Debug.logError("[activityCalendar.jsp] Error formatting date: " + e.getLocalizedMessage(), module);
									}
								}
//								returnString.append("<NOBR>" + openStartTimeString + "<A HREF=\"/sfa/control/activity/activities?activityId=" +
//									activityId + "&action=search\"> " +
//									activityName + "</NOBR></A><BR>");
//								returnString.append("<NOBR>" + openStartTimeString + "<A HREF=\"/sfa/control/activityPopup?" +
//									 "action=" + UIScreenSection.ACTION_SHOW + "&activityId=" + activityId + "\" TARGET=\"activityPopup\"" +
//									 "onclick='window.open(\"/sfa/control/activityPopup?action=" +
//									UIScreenSection.ACTION_SHOW + "&activityId=" + activityId +
//									"\", \"activityPopup\", " +
//									"\"menubar=no,scrollbars=no,toolbar=no,directories=no,top=100," +
//									"left=100,height=400,width=1024\", \"\");'>" +
//									 activityName + "</A></NOBR>\n");
//								returnString.append("<NOBR>" + openStartTimeString +
//									"<A onclick='window.open(\"/sfa/control/activityPopup?action=" +
//									UIScreenSection.ACTION_SHOW + "&activityId=" + activityId +
//									"\", \"activityPopup\", " +
//									"\"menubar=no,scrollbars=no,toolbar=no,directories=no,top=100," +
//									"left=100,height=400,width=1024\", \"\");'>" +
//									 activityName + "</A></NOBR>\n");
								returnString.append("<NOBR>" + openStartTimeString +
									"<A HREF='javascript:var dummy=window.open(\"/sfa/control/activityPopup?action=" +
									UIScreenSection.ACTION_SHOW + "&activityId=" + activityId +
									"\", \"activityPopup\", " +
									"\"menubar=no,scrollbars=no,toolbar=no,directories=no,top=100," +
									"left=100,height=" + String.valueOf(popupHeight) + ",width=" + String.valueOf(popupWidth) + "\", \"\")'>" +
									 activityName + "</A></NOBR>\n");
							}
						}
					}

					returnString.append("</TD>");
					dayCounter++;
					calendar.set(Calendar.DAY_OF_MONTH, dayCounter);
				} else {
					// not a valid day, make a blank cell
					returnString.append("<TD CLASS=\"calendarInvalidDay\">&nbsp;</TD>");
				}
				loopCounter++;
			}
			//  returnString.append("<td align=\"center\"><div class=\"tabletext\"><a href=\"/sfa/control/activityCalendar?action=week&amp;day=" + (dayCounter-1) + "&amp;month=" + month + "&amp;year=" + year + "\" >w<br>e<br>e<br>k</a></div></td>");
			returnString.append("</tr>");
		}
		returnString.append("</table>");
	} catch (Exception e) {
		e.printStackTrace();
	}
	return returnString.toString();
}


Calendar getCalendar(int month, int year, int day){
	if(day <= 0){
		day = 1;
	}
	Calendar calendar = Calendar.getInstance();
	calendar.clear();
	switch(month){
		case 1:
			calendar.set(Calendar.MONTH, Calendar.JANUARY);
			calendar.set(Calendar.YEAR, year);
			calendar.set(Calendar.DAY_OF_MONTH, day);
			break;
		case 2:
			calendar.set(Calendar.MONTH, Calendar.FEBRUARY);
			calendar.set(Calendar.YEAR, year);
			calendar.set(Calendar.DAY_OF_MONTH, day);
			break;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -