// ****************************************************************** // Filename - book.html // Shortname - BK // Purpose - This page displays a form allowing the user to book a meeting // Copyright - (C) 1996, Ingenia Communications Corporation // Authors - Kjell Wooding // - Chris Grant // Contact - kwooding@ingenia.com // ****************************************************************** CM_Authorize(); // Variables used in the HTML var formURL=addClient("book.html"); var strPubDesc = ""; var strPriDesc = ""; var bEdit=false; var arDefEmps=null; var arDefEmpid=null; var Display = "book"; // Fetch parameters and clear client attributes if (client.DefaultRoomID) { var idRoom=client.DefaultRoomID; client.DefaultRoomID=""; } else { CM_Connect(); stmt="select * from Employee where Employee_ID='"+client.EmployeeID+"'"; var csEmp=database.cursor(stmt); csEmp.next(); var idRoom=csEmp.Room_ID; CM_Disconnect(); } if (client.DefaultBuildingID) { var idBuilding=client.DefaultBuildingID; client.DefaultBuildingID=""; } else { var idBuilding=null; } if (request.strDate) { // passed a date in MM/DD/YY format client.DefaultDate=CM_strDatetoInt(request.strDate); } else if (request.dtDate) { // received a new date in millisecond format client.DefaultDate = request.dtDate; } else if (client.DefaultDate) { // We have been passed a date var dtDate = new Date(); dtDate.setTime(client.DefaultDate); var strDate=CM_ExtractDate(dtDate.toLocaleString()); } else { // no date - assume today var dtDate= new Date(); var strDate=CM_ExtractDate(dtDate.toLocaleString()); } if (client.DefaultStartTime) { // we have been passed a start time from search var dtStartTime=new Date(); var dtEndTime=new Date(); dtStartTime.setTime(client.DefaultStartTime); dtEndTime.setTime(client.DefaultEndTime); var strStartTime=CM_ExtractTime(dtStartTime.toLocaleString()); var strEndTime=CM_ExtractTime(dtEndTime.toLocaleString()); client.DefaultStartTime=""; client.DefaultEndTime=""; } else { // no start time - assume 8am dtStartTime=new Date(); dtEndTime=new Date(); dtStartTime.setHours(8); dtStartTime.setMinutes(0); dtStartTime.setSeconds(0); dtEndTime.setHours(9); dtEndTime.setMinutes(0); dtEndTime.setSeconds(0); strStartTime="08:00"; strEndTime="09:00"; } // Handlers if (request.doBookAnyway) { request.doBook = "yes"; } if (request.doBook) { intErrorOccured = 0; dtStartDate = new Date(request.strDate+ " "+request.StartTime); dtEndDate = new Date(request.strDate+" "+request.EndTime); if (request.optEmployeeID) { var intEmpCount = getOptionValueCount("optEmployeeID"); arEmployees=new CM_MakeArray(intEmpCount); for (var i = 1; i <= intEmpCount; i++) { arEmployees[i]= getOptionValue("optEmployeeID", i-1); } } else { BK_Error("對不起, 您至少需邀請一位同事參加此會議"); } if (BK_FindConflicts(arEmployees, dtStartDate, dtEndDate) > 0) { if(request.doBookAnyway == "Book" && request.Dialog == "2") { request.doBookAnyway = "dont"; } Display = "dialog"; } if (BK_CheckRoomSize(arEmployees, request.roomid) != 1) { if (request.doBookAnyway != "dont") { Display = "dialog2"; } } if (request.doBookAnyway == "Book" || Display == "book") { if (intErrorOccured == 0) { BK_DBBookMeeting(dtStartDate,dtEndDate,arEmployees,request.roomid); var dtCurrent = new Date(); dtCurrent.setTime(dtStartDate.getTime()); dtCurrent.setHours(0); dtCurrent.setMinutes(0); dtCurrent.setSeconds(0); client.DefaultDate=dtCurrent.getTime(); redirect(client.homeURL); } } } else if (request.doConflict) { BK_Conflict(); } else if (request.doCancel) { redirect(client.homeURL); } else if (request.doModify) { idRoom = request.roomid strPubDesc = request.pubdesc; strPriDesc = request.pridesc; a = request.StartTime; b = request.EndTime; dtStartTime = new Date(); dtEndTime = new Date(); dtStartTime.setTime(request.MeetDate); dtStartTime.setHours(a.substring(0, a.indexOf(":"))); dtStartTime.setMinutes(a.substring(a.indexOf(":") + 1, a.length)); dtEndTime.setTime(request.MeetDate); dtEndTime.setHours(b.substring(0, b.indexOf(":"))); dtEndTime.setMinutes(b.substring(b.indexOf(":") + 1, b.length)); arDefEmps = request.arDefEmps; arDefEmpid = request.arDefEmpid; bEdit = true; var intEmpCount = getOptionValueCount("optEmployeeID"); arDefEmps = new CM_MakeArray(intEmpCount); arDefEmpid = new CM_MakeArray(intEmpCount); CM_Connect(); for (var i = 1; i <= intEmpCount; i++) { arDefEmpid[i] = getOptionValue("optEmployeeID", i-1); strSQL = "SELECT First_Name, Last_Name "; strSQL += "FROM Employee "; strSQL += "WHERE Employee_ID = " + arDefEmpid[i]; csName = database.cursor(strSQL); csName.next(); arDefEmps[i] = CM_FormEscape(csName.Last_Name) + ", " + CM_FormEscape(csName.First_Name); csName.close(); } CM_Disconnect(); } else if (request.doEdit) { var strSQL = "SELECT * FROM Meeting WHERE Meeting_ID = " + request.oldMeetingID; bEdit=true; CM_Connect(); csTemp = database.cursor(strSQL); csTemp.next(); idRoom = csTemp.Room_ID; dtStartTime = csTemp.Start_Time; dtEndTime = csTemp.End_Time; strPubDesc = CM_StripSpace(CM_FormEscape(csTemp.Public_Desc)); strPriDesc = CM_StripSpace(CM_FormEscape(csTemp.Private_Desc)); csTemp.close(); var strSQL = "SELECT First_Name, Last_Name, Employee.Employee_ID " + "FROM Meeting_Attendance, Employee " + "WHERE Meeting_ID = " + request.oldMeetingID + " " + "AND Meeting_Attendance.Employee_ID = Employee.Employee_ID " + "ORDER BY Last_Name, First_Name "; var count=CM_CountRows(strSQL); arDefEmps=new CM_MakeArray(count); arDefEmpid=new CM_MakeArray(count); var csAttending = database.cursor(strSQL); var i=1; while(csAttending.next()) { arDefEmps[i] = CM_FormEscape(csAttending.Last_Name) + ", " + CM_FormEscape(csAttending.First_Name); arDefEmpid[i] = csAttending.Employee_ID; i++; } csAttending.close(); CM_Disconnect(); strStartTime=CM_ExtractTime(dtStartTime.toLocaleString()); strEndTime=CM_ExtractTime(dtEndTime.toLocaleString()); strDate = CM_ExtractDate(dtStartTime.toLocaleString()); } if (Display == "book") { iMeet 會議室預訂系統 - 預訂會議室 IF_EmpPickerHeader(arDefEmps,arDefEmpid); // Employee Picker IF_VerifyRoutines(); // Input Verification IF_DateWidget("strDate",0); // JavaScript routines for date widget BK_Header(client.DefaultDate); IF_DisplayToolbar(false);

會議室:
時間: 從 JV_TimeBar("images/time.gif",36,27,"formBook","StartTime","EndTime");

選擇參加成員:


IF_EmpPicker(bEdit);

會議內容概述:

參加成員注意事項:

if (bEdit==true && !request.doModify) { write(""); write(""); write(""); write(""); write(""); } if (request.doModify && request.doEdit) { write(""); write(""); write(""); write(""); write(""); }

IF_DisplayCopyright(); } else { 預訂會議室 - 抵觸說明

預訂會議室 - 牴觸說明

注意:

if (Display == "dialog") { 以下的成員在您預定會議的時間內已另有其他的行程 :

write(request.ConflictNames);
您有三種選擇. 1.您允許和您所安排的會議時間有所衝突的成員自由的選擇是否參加, 2. 修改會議時間, 3.取消會議時程.

} else { 您所邀請的參加成員人數已超出會議室所能容納的最大人數.

您有三種選擇. 1.更換會議室, 2.減少出席人數, 3.取消會議時程. } var intCount = getOptionValueCount("optEmployeeID"); for (var i = 1; i <= intCount; i++) { intTemp = getOptionValue("optEmployeeID", i-1); write(""); } if (request.doEdit) { write(""); write(""); write(""); write(""); write(""); }

}