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); ?>