You didn't select a task.
"; } // check for device selected if ($device) { $deviceselected = true; } else { $deviceselected = false; $errorstack[] = " You didn't select a device.
"; } // sanitize text data $start_date = mysqli_real_escape_string($db, $start_date); $last_date = mysqli_real_escape_string($db, $last_date); $deferred_date = mysqli_real_escape_string($db, $deferred_date); if ($taskselected && $deviceselected) { // determine if device represents a group and break out individual devices if (dblookup($db, "devices", "deviceid", "group_flag", $device)) { $memberqry = mysqli_query($db, "select memberdevice from devicegroups where groupdevice=\"$device\""); $memberlist = array(); while ($memberrow = mysqli_fetch_row($memberqry)) { $memberlist[] = $memberrow[0]; } } else { $memberlist = array($device); } // run through the memberlist and modify the table foreach ($memberlist as $memberdev) { if ($start_date == NULL) $start_date = $today; if ($last_date == NULL) $last_date = "0000-00-00"; if ($deferred_date == NULL) $deferred_date = "0000-00-00"; $addqry = ("insert into events(task,device,start_date,last_date,deferred_flag,deferred_date,active_flag) values(\"$task\",\"$memberdev\",\"$start_date\",\"$last_date\",\"$deferred_flag\",\"$deferred_date\",\"$active_flag\")"); mysqli_query($db, $addqry); } } } if ($tasks) { // do error checking // test for name supplied if (strlen(trim($taskname))) { $namesuppld = true; } else { $namesuppld = false; $errorstack[] = " Task name cannot be blank.
"; } // test for name unique if (mysqli_num_rows(mysqli_query($db, "select taskid from tasks where taskname=\"$taskname\""))) { $nameunique = false; $errorstack[] = " Task name already exists.
"; } else { $nameunique = true; } // sanitize text data $taskname = mysqli_real_escape_string($db, $taskname); $taskdesc = mysqli_real_escape_string($db, $taskdesc); $refdoc_name = mysqli_real_escape_string($db, $refdoc_name); $refdoc_url = mysqli_real_escape_string($db, $refdoc_url); if ($namesuppld && $nameunique) { // modify the table $addqry = ("insert into tasks(taskname,taskdesc,frequency,period,weekdays_only,nextdue_relative,refdoc_name,refdoc_url,active_flag) values(\"$taskname\",\"$taskdesc\",\"$frequency\",\"$period\",\"$weekdays_only\",\"$nextdue_relative\",\"$refdoc_name\",\"$refdoc_url\",\"$active_flag\")"); mysqli_query($db, $addqry); } } if ($devices) { // do error checking // test for name supplied if (strlen(trim($devicename))) { $namesuppld = true; } else { $namesuppld = false; $errorstack[] = " Device name cannot be blank.
"; } // test for name unique if (mysqli_num_rows(mysqli_query($db, "select deviceid from devices where devicename=\"$devicename\""))) { $nameunique = false; $errorstack[] = " Device name already exists.
"; } else { $nameunique = true; } // sanitize name and description $devicename = mysqli_real_escape_string($db, $devicename); $devicedesc = mysqli_real_escape_string($db, $devicedesc); if ($namesuppld && $nameunique) { // modify the table $addqry = ("insert into devices(devicename,devicedesc,group_flag,active_flag) values(\"$devicename\",\"$devicedesc\",\"$group_flag\",\"$active_flag\")"); mysqli_query($db, $addqry); } } } if ($edit) { if ($schedule) { if ($delete) { // delete entity mysqli_query($db, "delete from events where eventid=\"$id\""); } if ($update) { // do error checking // sanitize text data $start_date = mysqli_real_escape_string($db, $start_date); $last_date = mysqli_real_escape_string($db, $last_date); $deferred_date = mysqli_real_escape_string($db, $deferred_date); // update the tasks table if ($start_date == NULL) $start_date = $today; if ($last_date == NULL) $last_date = "0000-00-00"; if ($deferred_date == NULL) $deferred_date = "0000-00-00"; mysqli_query($db, "update events set task=\"$task\",device=\"$device\",start_date=\"$start_date\",last_date=\"$last_date\",deferred_flag=\"$deferred_flag\", deferred_date=\"$deferred_date\",active_flag=\"$active_flag\" where eventid=\"$id\""); } } if ($tasks) { if ($delete) { // check for scheduled maintenance for this entity if (mysqli_num_rows(mysqli_query($db, "select eventid from events where task=\"$id\""))) { $hasevents = true; $errorstack[] = " Task has been scheduled maintenance and cannot be deleted.
"; } else { $hasevents = false; } if (!$hasevents) { // delete entity mysqli_query($db, "delete from tasks where taskid=\"$id\""); } } if ($update) { // do error checking // test for name supplied if (strlen(trim($taskname))) { $namesuppld = true; } else { $namesuppld = false; $errorstack[] = " Task name cannot be blank.
"; } // test for name unique if (mysqli_num_rows(mysqli_query($db, "select taskid from tasks where taskname=\"$taskname\" and taskid!=\"$id\""))) { if (mysqli_num_rows(mysqli_query($db, "select taskid from tasks where taskname=\"$taskname\""))) { $nameunique = false; $errorstack[] = " Task name already exists.
"; } else { $nameunique = true; } } else { $nameunique = true; } // sanitize text data $taskname = mysqli_real_escape_string($db, $taskname); $taskdesc = mysqli_real_escape_string($db, $taskdesc); $refdoc_name = mysqli_real_escape_string($db, $refdoc_name); $refdoc_url = mysqli_real_escape_string($db, $refdoc_url); if ($namesuppld && $nameunique) { // update the tasks table mysqli_query($db, "update tasks set taskname=\"$taskname\",taskdesc=\"$taskdesc\",frequency=\"$frequency\",period=\"$period\",weekdays_only=\"$weekdays_only\", nextdue_relative=\"$nextdue_relative\",refdoc_name=\"$refdoc_name\",refdoc_url=\"$refdoc_url\",active_flag=\"$active_flag\" where taskid=\"$id\""); } } } if ($devices) { if ($delete) { // check for scheduled maintenance for this device if (mysqli_num_rows(mysqli_query($db, "select eventid from events where device=\"$id\""))) { $hasevents = true; $errorstack[] = " Device has scheduled maintenance and cannot be deleted.
"; } else { $hasevents = false; } if (!$hasevents) { // delete entity mysqli_query($db, "delete from devices where deviceid=\"$id\""); } } if ($update) { // do error checking // test for name supplied if (strlen(trim($devicename))) { $namesuppld = true; } else { $namesuppld = false; $errorstack[] = " Device name cannot be blank.
"; } // test for name unique if (mysqli_num_rows(mysqli_query($db, "select deviceid from devices where devicename=\"$devicename\" and deviceid!=\"$id\""))) { if (mysqli_num_rows(mysqli_query($db, "select deviceid from devices where devicename=\"$devicename\""))) { $nameunique = false; $errorstack[] = " Device name already exists.
"; } else { $nameunique = true; } } else { $nameunique = true; } // sanitize name and description $devicename = mysqli_real_escape_string($db, $devicename); $devicedesc = mysqli_real_escape_string($db, $devicedesc); if ($namesuppld && $nameunique) { // update the devices table mysqli_query($db, "update devices set devicename=\"$devicename\",devicedesc=\"$devicedesc\",group_flag=\"$group_flag\",active_flag=\"$active_flag\" where deviceid=\"$id\""); // update the devicegroups table mysqli_query($db, "delete from devicegroups where groupdevice=\"$id\""); if ($group_flag) { foreach ($members as $member) { mysqli_query($db, "insert into devicegroups(groupdevice,memberdevice) values(\"$id\",\"$member\")"); } } } } } } // **** END DATABASE OPERATIONS **** framework("begin", "$logname", "Scheduled Maintenance", $print); //var_dump($_REQUEST); pagetable("begin"); pageblock("left", "begin"); sidemenu(); pageblock("left", "end"); pageblock("right", "begin"); banner($print); if ($loggedin) { echo "

                 


"; } // display any errors from database operations if (count($errorstack)) { foreach ($errorstack as $errorline) { echo "$errorline
"; } } if ($action) { // pull current values from database $currentvalues = mysqli_fetch_assoc(mysqli_query($db, "select * from events where eventid=$id")); extract($currentvalues); $taskname = dblookup($db, "tasks", "taskid", "taskname", $task); $devicename = dblookup($db, "devices", "deviceid", "devicename", $device); // display form to complete or defer echo "
Task :   $taskname Device :   $devicename


Complete Scheduled Maintenance

Date Completed:  
Add logbook note




Defer Scheduled Maintenance

Defer Until:  

"; } else if ($schedule) { // manage maintenance schedule if ($edit) { // set form options for editing $sectiontitle = "Modify Event

"; $formtag = "
"; $buttontags = "          
"; // pull current values from database $currentvalues = mysqli_fetch_assoc(mysqli_query($db, "select * from events where eventid=$id")); extract($currentvalues); if ($active_flag) { $activetag = ""; } else { $activetag = ""; } if ($deferred_flag) { $deferredtag = ""; } else { $deferredtag = ""; } if ($start_date == "0000-00-00") $start_date = $today; if ($last_date == "0000-00-00") $last_date = ""; if ($deferred_date == "0000-00-00") $deferred_date = $tomorrow; $deferuntiltag = ""; $startdatetag = ""; $lastdatetag = ""; } else { // set form options for add $sectiontitle = "Add Scheduled Maintenance

"; $formtag = ""; $buttontags = " "; // set default values $deferredtag = ""; $deferuntiltag = ""; $activetag = ""; $startdatetag = ""; $lastdatetag = ""; } // display form echo "
$sectiontitle
$formtag
Task:   Device:  
Start Date:   $startdatetag Last Completed Date:   $lastdatetag
Defer this event:   $deferredtag Defer Until:   $deferuntiltag
Active:   $activetag
$buttontags


"; // show table of current schedule $existingdata = mysqli_query($db, "select * from events"); echo " Existing Events   Click on the Event ID to edit.

"; while ($tablerow = mysqli_fetch_assoc($existingdata)) { extract($tablerow); if ($start_date == "0000-00-00") $start_date = $today; if ($last_date == "0000-00-00") $last_date = ""; if ($deferred_date == "0000-00-00") $deferred_date = ""; if ($active_flag) { $statdef = "\"active\""; } else { $statdef = "\"inactive\""; } if ($deferred_flag) { $deferredflag = "\"deferred\""; } else { $deferredflag = "\"not"; } $taskdata = mysqli_fetch_assoc(mysqli_query($db, "select * from tasks where taskid=\"$task\"")); extract($taskdata, EXTR_PREFIX_ALL, "taskdata"); $devicedata = mysqli_fetch_assoc(mysqli_query($db, "select * from devices where deviceid=\"$device\"")); extract($devicedata, EXTR_PREFIX_ALL, "devicedata"); if ($taskdata_period == "once") { $tasktitle = "One-time event"; } else { $tasktitle = "Repeat every $taskdata_frequency $taskdata_period"; } printf( " ", $eventid, $eventid, $tasktitle, $taskdata_taskname, $devicedata_devicename, $start_date, $last_date, $deferredflag, $deferred_date, $statdef ); } echo "
Event IDTaskDeviceStart DateLast
Completed
DeferredDeferred
Until
Active
%s %s %s %s %s %s %s %s
"; } else if ($tasks) { // manage tasks if ($edit) { // set form options for editing $sectiontitle = "Modify Task

"; $formtag = "
"; $buttontags = "          
"; // pull current values from database $currentvalues = mysqli_fetch_assoc(mysqli_query($db, "select * from tasks where taskid=$id")); extract($currentvalues); $perioddef = $period; if ($active_flag) { $activetag = ""; } else { $activetag = ""; } if ($weekdays_only) { $wdotag = ""; } else { $wdotag = ""; } if ($nextdue_relative) { $nextduetag = "Absolute   Relative"; } else { $nextduetag = "Absolute   Relative"; } } else { // set form options for add $sectiontitle = "Add New Task

"; $formtag = ""; $perioddef = "once"; $frequency = 1; $buttontags = " "; // set default values $wdotag = ""; $nextduetag = "Absolute   Relative"; $activetag = ""; } // display form echo "
$sectiontitle
$formtag
Task Name:  

Task Description:



Schedule

Repeat every:          Weekdays Only:  {$wdotag}

Due Date Calculation:    $nextduetag


Reference Documentation:  

Reference Documentation URL:


Active:  $activetag

$buttontags


"; // show table of current tasks $existingdata = mysqli_query($db, "select * from tasks"); echo " Existing Tasks   Click on the Task Name to edit.

"; while ($tablerow = mysqli_fetch_assoc($existingdata)) { extract($tablerow); if ($active_flag) { $statdef = "\"active\""; } else { $statdef = "\"inactive\""; } if ($period == "once") { $rptstrg = "one time only"; } else { $rptstrg = "$frequency $period"; } if ($nextdue_relative) { $duecalc = "Relative"; } else { $duecalc = "Absolute"; } if ($refdoc_name) { $refstrg = "$refdoc_name"; if ($refdoc_url) { $refstrg = "$refdoc_name"; } } else { $refstrg = ""; } if ($weekdays_only) { $wdoflag = "\"active\""; } else { $wdoflag = "\"inactive\""; } printf( " ", $taskid, $taskname, $taskdesc, $rptstrg, $duecalc, $wdoflag, $refstrg, $statdef ); } echo "
Task NameTask DescriptionRepeat EveryDue Date
Calculation
Weekdays
Only
ReferenceActive
%s %s %s %s %s %s %s
"; } else if ($devices) { // manage devices if ($edit) { // set form options for editing $sectiontitle = "Modify Device

"; $formtag = "
"; $buttontags = "          
"; // pull current values from database $currentvalues = mysqli_fetch_assoc(mysqli_query($db, "select * from devices where deviceid=$id")); extract($currentvalues); if ($group_flag) { $showgrouptable = true; $grouptag = ""; } else { $showgrouptable = false; $grouptag = ""; } if ($active_flag) { $activetag = ""; } else { $activetag = ""; } } else { // set form options for add $sectiontitle = "Add New Device

"; $formtag = ""; $showgrouptable = false; $buttontags = " "; // set default values $activetag = ""; $grouptag = ""; } // display form echo " $sectiontitle $formtag
Device Name:  

Device Description:  

Device represents a group of devices:  $grouptag

"; if ($showgrouptable) { $existingdevs = mysqli_query($db, "select * from devices where deviceid!=$id and active_flag=\"1\""); echo " Existing members of this group

"; while ($grouprow = mysqli_fetch_assoc($existingdevs)) { extract($grouprow, EXTR_PREFIX_ALL, "gtbl"); if (mysqli_num_rows(mysqli_query($db, "select groupid from devicegroups where memberdevice=$gtbl_deviceid and groupdevice=$id"))) { $memberdef = ""; } else { $memberdef = ""; } printf( " ", $gtbl_devicename, $gtbl_devicedesc, $memberdef ); } echo "
Device NameDevice DescriptionMember
%s %s %s

"; } echo " Active:  $activetag

$buttontags


"; // show table of current devices $existingdata = mysqli_query($db, "select * from devices"); echo " Existing Devices   Click on the Device ID to edit.

"; while ($tablerow = mysqli_fetch_assoc($existingdata)) { extract($tablerow); if ($group_flag) { $groupdef = "\"This"; } else { $groupdef = "\"This"; } if ($active_flag) { $statdef = "\"active\""; } else { $statdef = "\"inactive\""; } printf( " ", $deviceid, $deviceid, $devicename, $devicedesc, $groupdef, $statdef ); } echo "
Device IDDevice NameDevice DescriptionGroupActive
%s %s %s %s %s
"; } else { $ucevents = get_upcoming_events(); // sort the upcoming events function uc_cmp($a, $b) { return strcmp($a["duedate"], $b["duedate"]); } uasort($ucevents, 'uc_cmp'); // show upcoming events table echo " Upcoming Scheduled Maintenance

"; foreach ($ucevents as $ucline) { extract($ucline); printf( " ", $eventdata_eventid, $duedatestrg, $devicedata_devicedesc, $devicedata_devicename, $taskdata_taskdesc, $taskdata_taskname, $lastdatestrg ); } echo "
Next DueDeviceMaintenanceLast Done
%s %s %s %s



"; // build array of deferred events $defeventsqry = mysqli_query($db, "select * from events where active_flag=\"1\" and deferred_flag=\"1\" and deferred_date > \"$today\" order by deferred_date asc"); $defevents = array(); while ($defeventrow = mysqli_fetch_assoc($defeventsqry)) { // provide eventid,task,device,start_date,last_date,deferred_flag,deferred_date,active_flag extract($defeventrow, EXTR_PREFIX_ALL, "def"); // provide deviceid,devicename,devicedesc,group_flag,active_flag $devicedata = mysqli_fetch_assoc(mysqli_query($db, "select * from devices where deviceid=\"$def_device\"")); extract($devicedata, EXTR_PREFIX_ALL, "devicedata"); // provide taskid,taskname,taskdesc,frequency,period,weekdays_only,nextdue_relative,refdoc_name,refdoc_url,active_flag $taskdata = mysqli_fetch_assoc(mysqli_query($db, "select * from tasks where taskid=\"$def_task\"")); extract($taskdata, EXTR_PREFIX_ALL, "taskdata"); if (! ($taskdata_period == "once" && $def_last_date > $def_start_date)) { if ($def_last_date == "0000-00-00") { $lastdatestrg = "never"; } else { $lastdatestrg = "$def_last_date"; } $defeventline = array( 'def_eventid' => $def_eventid, 'def_deferred_date' => $def_deferred_date, 'devicedata_devicedesc' => $devicedata_devicedesc, 'devicedata_devicename' => $devicedata_devicename, 'taskdata_taskdesc' => $taskdata_taskdesc, 'taskdata_taskname' => $taskdata_taskname, 'lastdatestrg' => $lastdatestrg ); $defevents[] = $defeventline; } } // show deferred events table echo " Deferred Scheduled Maintenance

"; foreach ($defevents as $defline) { extract($defline); printf( " ", $def_eventid, $def_deferred_date, $devicedata_devicedesc, $devicedata_devicename, $taskdata_taskdesc, $taskdata_taskname, $lastdatestrg ); } echo "
Deferred UntilDeviceMaintenanceLast Done
%s %s %s %s


"; } banner($print); pageblock("right", "end"); pagetable("end"); framework("end", "", "", $print);