NEF";
if ($eff_val=="1") $eff_dsp="EFF";
$eff_param="{$eff_param} {$eff_dsp}, ";
}
$eff_param=rtrim($eff_param,", ");
$query_string=rtrim($query_string," or ");
$query_string="{$query_string})";
$query_string="{$query_string} and ";
}
// status
if ($s_status) {
$query_string="{$query_string}(";
$status_param="Status:";
foreach ($s_status as $stat_val) {
$query_string="{$query_string}status=\"{$stat_val}\" or ";
if ($stat_val=="1") $stat_dsp="OPEN";
if ($stat_val=="2") $stat_dsp="CLSD";
if ($stat_val=="3") $stat_dsp="DFRD";
$status_param="{$status_param} {$stat_dsp}, ";
}
$status_param=rtrim($status_param,", ");
$query_string=rtrim($query_string," or ");
$query_string="{$query_string})";
$query_string="{$query_string} and ";
}
// action by
if ($s_action_by) {
$query_string="{$query_string}(";
$actionby_param="Status changed by:";
foreach ($s_action_by as $actby_val) {
$query_string="{$query_string}action_by=\"{$actby_val}\" or ";
if ($actby_val==0) {
$actionby_dsp=" (none set)";
} else {
$actionby_dsp=dblookup($drs_db,"users","id","firstname",$actby_val)." ".dblookup($drs_db,"users","id","lastname",$actby_val);
}
$actionby_param="{$actionby_param} {$actionby_dsp}, ";
}
$actionby_param=rtrim($actionby_param,", ");
$num_users=mysqli_num_rows(mysqli_query($drs_db,"select id from users"));
if (count($s_action_by)==$num_users+1) $actionby_param="Status changed by: any";
$query_string=rtrim($query_string," or ");
$query_string="{$query_string})";
$query_string="{$query_string} and ";
}
// action reason
if ($s_action_reason) {
$query_string="{$query_string}(";
$reason_param="Status change reason:";
foreach ($s_action_reason as $actrn_val) {
$query_string="{$query_string}action_reason=\"{$actrn_val}\" or ";
if ($actrn_val==0) {
$reason_dsp=" (none set)";
} else {
$reason_dsp=dblookup($drs_db,"reasons","id","text",$actrn_val);
}
$reason_param="{$reason_param} {$reason_dsp}, ";
}
$reason_param=rtrim($reason_param,", ");
$num_reasons=mysqli_num_rows(mysqli_query($drs_db,"select id from reasons"));
if (count($s_action_reason)==$num_reasons+1) $reason_param="Status change reason: any";
$query_string=rtrim($query_string," or ");
$query_string="{$query_string})";
$query_string="{$query_string} and ";
}
// report date
$query_string="{$query_string}(";
$query_string="{$query_string}report_date between \"{$s_report_date_start}\" and \"{$s_report_date_end}\"";
$query_string="{$query_string})";
$query_string="{$query_string} and ";
$reportdate_param="Report date between {$s_report_date_start} and {$s_report_date_end}";
// report time
$query_string="{$query_string}(";
$query_string="{$query_string}report_time between \"{$s_report_time_start}\" and \"{$s_report_time_end}\"";
$query_string="{$query_string})";
$query_string="{$query_string} and ";
$reporttime_param="Report time between {$s_report_time_start} and {$s_report_time_end}";
// action date
if ($s_action_date_start && $s_action_date_end) {
$query_string="{$query_string}(";
$query_string="{$query_string}action_date between \"{$s_action_date_start}\" and \"{$s_action_date_end}\"";
$query_string="{$query_string})";
$query_string="{$query_string} and ";
$actiondate_param="Action taken date between {$s_action_date_start} and {$s_action_date_end}";
} else {
$actiondate_param="Action taken date: any";
}
// action time
if ($s_action_time_start && $s_action_time_end) {
$query_string="{$query_string}(";
$query_string="{$query_string}action_time between \"{$s_action_time_start}\" and \"{$s_action_time_end}\"";
$query_string="{$query_string})";
$query_string="{$query_string} and ";
$actiontime_param="Action taken time between {$s_action_time_start} and {$s_action_time_end}";
} else {
$actiontime_param="Action taken time: any";
}
// discrepancy text
if ($s_discrepancy_text) {
$query_string="{$query_string}(";
$query_string="{$query_string}discrepancy_text like \"%{$s_discrepancy_text}%\"";
$query_string="{$query_string})";
$query_string="{$query_string} and ";
$discrepancytext_param="Text in discrepancy: {$s_discrepancy_text}";
} else {
$discrepancytext_param="Text in discrepancy: any";
}
// action text
if ($s_action_text) {
$query_string="{$query_string}(";
$query_string="{$query_string}action_text like \"%{$s_action_text}%\"";
$query_string="{$query_string})";
$query_string="{$query_string} and ";
$actiontext_param="Text in Action taken: {$s_action_text}";
} else {
$actiontext_param="Text in Action taken: any";
}
// reported by
if ($s_reported_by) {
$query_string="{$query_string}(";
$query_string="{$query_string}reported_by like \"%{$s_reported_by}%\"";
$query_string="{$query_string})";
$query_string="{$query_string} and ";
$repby_param="Text in Reported by: {$s_reported_by}";
} else {
$repby_param="Text in Reported by: any";
}
$query_string=rtrim($query_string," and ");
$query_string="select * from writeups where {$query_string} order by $sort $order";
// group membership
if ($s_group) {
$group_param="Group member:";
foreach ($s_group as $group_val) {
if ($group_val=="0") $group_dsp="No";
if ($group_val=="1") $group_dsp="Yes";
$group_param="{$group_param} {$group_dsp}, ";
}
$group_param=rtrim($group_param,", ");
}
}
// ******** end database manipulation ********
pagetable("begin");
if(!$print) {
pageblock("left","begin");
sidemenu();
echo "
";
pageblock("left","end");
}
pageblock("right","begin");
banner($print);
echo " ";
// show search form
if (!$print) {
echo "
";
}
// display the results
if ($search) {
//display the search parameters used
if (!$print) echo "";
echo "
Parameters used in this search
";
if (!$print) {
echo " Scroll up to modify parameters
";
} else {
echo "";
}
echo "
$status_param
$device_param
$subsystem_param
$id_param
$period_param
$reportdate_param
$reporttime_param
$discrepancytext_param
$repby_param
$eff_param
$group_param
$actionby_param
$reason_param
$actiontext_param
$actiondate_param
$actiontime_param
";
$writeup=mysqli_query($drs_db,$query_string);
// create an array of ids returned by the query string
$result_ids=array();
while ($eachid=mysqli_fetch_assoc($writeup)) {
$result_ids[]=$eachid['id'];
}
mysqli_data_seek($writeup,0);
// create an array of all ids in groups
$groupmems=array();
$groupmem_qry=mysqli_query($drs_db,"select writeupid from links");
while ($groupmemrow=mysqli_fetch_row($groupmem_qry)) {
$groupmems[]=$groupmemrow[0];
}
$groupmems=array_unique($groupmems);
// determine how many group members are in results
$member_count=0;
foreach($result_ids as $result_id) {
if (in_array($result_id,$groupmems)) $member_count += 1;
}
if (in_array("1",$s_group)) $show_groupmems=true;
if (in_array("0",$s_group)) $show_nongroupmems=true;
if ($show_groupmems == $show_nongroupmems) $num_results=mysqli_num_rows($writeup); //show members and nonmembers
if ($show_groupmems && !$show_nongroupmems) $num_results=$member_count; //only show members
if (!$show_groupmems && $show_nongroupmems) $num_results=mysqli_num_rows($writeup)-$member_count; //only show nonmembers
if ($num_results > 0) {
if ($viewtype=="summary") {
echo "
ID
Status
Date
Period
Device
Subsystem
Reported by
Discrepancy
Msn Eff
";
while ($tablerow = mysqli_fetch_assoc($writeup)) {
// determine if this is a member of a group
$member_qry=mysqli_query($drs_db,"select linkgroup from links where writeupid=\"{$tablerow['id']}\"");
$is_member=mysqli_num_rows($member_qry);
// determine effective icon
if($tablerow["period_effective"]==1) {
$eff_icon="";
} else {
$eff_icon="";
}
// determine status indicator
if ($tablerow['status']==1) $statusind="
OPEN
";
if ($tablerow['status']==2) $statusind="
CLSD
";
if ($tablerow['status']==3) $statusind="
DFRD
";
// convert device number to name
$dname=dblookup($drs_db,"devices","id","name",$tablerow["device"]);
// convert period number to times
$ptimes=dblookup($drs_db,"periods","id","times",$tablerow["period"]);
// convert subsystem number to name
$ssname=dblookup($drs_db,"subsystems","id","name",$tablerow["subsystem"]);
$disc_txt="{$tablerow["discrepancy_text"]}";
// set group indicator
if ($is_member) {
$group_count=$is_member;
if ($group_count == 1) {
$group_num=mysqli_fetch_row(mysqli_query($drs_db,"select linkgroup from links where writeupid=\"{$tablerow['id']}\""))[0];
$member_group_name=dblookup($drs_db,"groups","id","name",$group_num);
if ($member_group_name) {
$imgtitle="Member of group: $member_group_name";
} else {
$imgtitle="Member of group ID: $group_num";
}
$disc_txt=$disc_txt."
";
while ($tablerow = mysqli_fetch_assoc($writeup)) {
// determine if this is a member of a group
$member_qry=mysqli_query($drs_db,"select linkgroup from links where writeupid=\"{$tablerow['id']}\"");
$is_member=mysqli_num_rows($member_qry);
if (($show_groupmems == $show_nongroupmems) || ($is_member && $show_groupmems) || (!$is_member && $show_nongroupmems)) {
displaywriteup($tablerow['id']);
echo " ";
}
}
echo "
";
}
} else {
echo "No writeups match your search parameters. ";
}
}
echo " ";
banner($print);
pageblock("right","end");
pagetable("end");
framework("end","","",$print);
?>