"; // var_dump($_REQUEST); // ******** begin database manipulation ******** // define the arrays $logfromtables = []; $mffromtables = []; $pfromtables = []; $logconstraints = []; $mfconstraints = []; $pconstraints = []; // get the date range of lognotes $logdateqry = mysqli_query($db, "select min(date), max(date) from lognotes"); $logdateresults = mysqli_fetch_row($logdateqry); $logmindate = $logdateresults[0]; if ($logmindate == "") $logmindate = $today; $logmaxdate = $logdateresults[1]; if ($logmaxdate == "") $logmaxdate = $today; // get the date range of maintenance forms $mfdateqry = mysqli_query($db, "select min(mfdate), max(mfdate) from maintforms"); $mfdateresults = mysqli_fetch_row($mfdateqry); $mfmindate = $mfdateresults[0]; if ($mfmindate == "") $mfmindate = $today; $mfmaxdate = $mfdateresults[1]; if ($mfmaxdate == "") $mfmaxdate = $today; // determine entire date range $mindate = min($logmindate, $mfmindate); $maxdate = max($logmaxdate, $mfmaxdate); if ($search) { // strip whitespace from beginning and end of text fields $srchtext = trim($srchtext); $srchpname = trim($srchpname); $srchploc = trim($srchploc); $srchnha = trim($srchnha); if ($target[0] == "") $target = []; if (in_array("log", $target)) { // define the query constraints // log note id if ($srchnoteid != "any" && $srchnoteid != "") { $logfromtables[] = "lognotes"; $logconstraints[] = "lognotes.lognoteid=\"$srchnoteid\""; } // maint form id if ($srchmfid != "any" && $srchmfid != "") { $logfromtables[] = "lognotes"; $logfromtables[] = "maintforms"; $logconstraints[] = "lognotes.lognoteid=maintforms.lognoteid and maintforms.maintformid=\"$srchmfid\""; } // date range if ($srchbdate != "" && $srchedate != "") { $logfromtables[] = "lognotes"; $logconstraints[] = "lognotes.date between \"$srchbdate\" and \"$srchedate\""; } // shift if ($srchshift != "0") { $logfromtables[] = "lognotes"; $logconstraints[] = "lognotes.shift=\"$srchshift\""; } // tech if ($srchtech != "0") { $logfromtables[] = "lognotes"; $logconstraints[] = "lognotes.tech=\"$srchtech\""; } // subject if ($srchsubj != "0") { $logfromtables[] = "lognotes"; $logconstraints[] = "lognotes.subject=\"$srchsubj\""; } // search text if ($srchtext != "") { $logfromtables[] = "lognotes"; $logconstraints[] = "lognotes.lognote like \"%$srchtext%\""; } // flags if (!empty($srchflags)) { unset($flagconstraints); $flagcount = count($srchflags); $logfromtables[] = "lognotes"; $logfromtables[] = "flagmap"; $flagconstraints[] = "flagmap.lognoteid=lognotes.lognoteid and flagmap.flagid in ("; foreach ($srchflags as $flagid) { $flagconstraints[] = "\"$flagid\""; $flagconstraints[] = ","; } // remove final comma array_splice($flagconstraints, -1, 1); $flagconstraints[] = ") group by flagmap.lognoteid having count(distinct flagmap.flagid)=$flagcount"; // make flagconstraints a single string so that the final implode doesn't split it $logconstraints[] = join('', $flagconstraints); } // uid if ($srchuid != "any" && $srchuid != "") { $logfromtables[] = "lognotes"; $logfromtables[] = "logparts"; $logfromtables[] = "parts"; $logconstraints[] = "lognotes.lognoteid=logparts.lognoteid and logparts.partid=parts.partid and parts.uid=\"{$srchuid}\""; } // part number if ($srchpn != "any" && $srchpn != "") { $logfromtables[] = "lognotes"; $logfromtables[] = "logparts"; $logfromtables[] = "parts"; $logconstraints[] = "lognotes.lognoteid=logparts.lognoteid and logparts.partid=parts.partid and parts.partnum=\"{$srchpn}\""; } // serial number if ($srchsn != "any" && $srchsn != "") { $logfromtables[] = "lognotes"; $logfromtables[] = "logparts"; $logfromtables[] = "parts"; $logconstraints[] = "lognotes.lognoteid=logparts.lognoteid and logparts.partid=parts.partid and parts.sernum=\"{$srchsn}\""; } // part name if ($srchpname != "any" && $srchpname != "") { $logfromtables[] = "lognotes"; $logfromtables[] = "logparts"; $logfromtables[] = "parts"; $logconstraints[] = "lognotes.lognoteid=logparts.lognoteid and logparts.partid=parts.partid and parts.partname like \"%{$srchpname}%\""; } // part location if ($srchploc != "any" && $srchploc != "") { $logfromtables[] = "lognotes"; $logfromtables[] = "logparts"; $logfromtables[] = "parts"; $logfromtables[] = "maintforms"; $logconstraints[] = "lognotes.lognoteid=logparts.lognoteid and logparts.partid=parts.partid and maintforms.mfpart=parts.partid and maintforms.mfpartloc like \"%{$srchploc}%\""; } // next higher assembly if ($srchnha != "any" && $srchnha != "") { $logfromtables[] = "lognotes"; $logfromtables[] = "logparts"; $logfromtables[] = "parts"; $logfromtables[] = "maintforms"; $logconstraints[] = "lognotes.lognoteid=logparts.lognoteid and logparts.partid=parts.partid and maintforms.mfpart=parts.partid and maintforms.nha like \"%{$srchnha}%\""; } // repair order if ($srchrepord != "any" && $srchrepord != "") { $logfromtables[] = "lognotes"; $logfromtables[] = "logparts"; $logfromtables[] = "parts"; $logfromtables[] = "maintforms"; $logconstraints[] = "lognotes.lognoteid=logparts.lognoteid and logparts.partid=parts.partid and maintforms.mfpart=parts.partid and maintforms.repord=\"{$srchrepord}\""; } // build the clauses and run the query $logfromclause = implode(",", array_unique($logfromtables)); $logwhereclause = implode(" and ", $logconstraints); $logrowqry = mysqli_query($db, "select lognotes.* from $logfromclause where $logwhereclause order by lognotes.date asc, lognotes.time asc"); } if ($target[0] == "") $target = []; if (in_array("maintform", $target)) { // maintforms search // define the query constraints // log note id if ($srchnoteid != "any" && $srchnoteid != "") { $mffromtables[] = "maintforms"; $mffromtables[] = "lognotes"; $mfconstraints[] = "maintforms.lognoteid=lognotes.lognoteid and lognotes.lognoteid=\"$srchnoteid\""; } // maint form id if ($srchmfid != "any" && $srchmfid != "") { $mffromtables[] = "maintforms"; $mfconstraints[] = "maintforms.maintformid=\"$srchmfid\""; } // date range if ($srchbdate != "" && $srchedate != "") { $mffromtables[] = "maintforms"; $mfconstraints[] = "maintforms.mfdate between \"$srchbdate\" and \"$srchedate\""; } // shift if ($srchshift != "0") { $mffromtables[] = "maintforms"; $mffromtables[] = "lognotes"; $mfconstraints[] = "maintforms.lognoteid=lognotes.lognoteid and lognotes.shift=\"$srchshift\""; } // tech if ($srchtech != "0") { $mffromtables[] = "maintforms"; $mfconstraints[] = "maintforms.mftech=\"$srchtech\""; } // subject if ($srchsubj != "0") { $mffromtables[] = "maintforms"; $mffromtables[] = "lognotes"; $mfconstraints[] = "maintforms.lognoteid=lognotes.lognoteid and lognotes.subject=\"$srchsubj\""; } // search text if ($srchtext != "") { $mffromtables[] = "maintforms"; $mffromtables[] = "maintactions"; $mfconstraints[] = "maintforms.mfmalfunction like \"%$srchtext%\" or (maintactions.action like \"%$srchtext%\" and maintforms.maintformid=maintactions.maintformnum)"; } // flags if (!empty($srchflags)) { unset($flagconstraints); $flagcount = count($srchflags); $mffromtables[] = "maintforms"; $mffromtables[] = "flagmap"; $flagconstraints[] = "flagmap.maintformid=maintforms.maintformid and flagmap.flagid in ("; foreach ($srchflags as $thisflagid) { $flagconstraints[] = "\"$thisflagid\""; $flagconstraints[] = ","; } // remove final comma array_splice($flagconstraints, -1, 1); $flagconstraints[] = ") group by flagmap.maintformid having count(distinct flagmap.flagid)=$flagcount"; // make flagconstraints a single string so that the final implode doesn't split it $mfconstraints[] = join('', $flagconstraints); } // uid if ($srchuid != "any" && $srchuid != "") { $mffromtables[] = "maintforms"; $mffromtables[] = "parts"; $mfconstraints[] = "maintforms.mfpart=parts.partid and parts.uid=\"{$srchuid}\""; } // part number if ($srchpn != "any" && $srchpn != "") { $mffromtables[] = "maintforms"; $mffromtables[] = "parts"; $mfconstraints[] = "maintforms.mfpart=parts.partid and parts.partnum=\"{$srchpn}\""; } // serial number if ($srchsn != "any" && $srchsn != "") { $mffromtables[] = "maintforms"; $mffromtables[] = "parts"; $mfconstraints[] = "maintforms.mfpart=parts.partid and parts.sernum=\"{$srchsn}\""; } // part name if ($srchpname != "any" && $srchpname != "") { $mffromtables[] = "maintforms"; $mffromtables[] = "parts"; $mfconstraints[] = "maintforms.mfpart=parts.partid and parts.partname like \"%{$srchpname}%\""; } // part location if ($srchploc != "any" && $srchploc != "") { $mffromtables[] = "parts"; $mffromtables[] = "maintforms"; $mfconstraints[] = "maintforms.mfpart=parts.partid and maintforms.mfpartloc like \"%{$srchploc}%\""; } // next higher assembly if ($srchnha != "any" && $srchnha != "") { $mffromtables[] = "parts"; $mffromtables[] = "maintforms"; $mfconstraints[] = "maintforms.mfpart=parts.partid and maintforms.nha like \"%{$srchnha}%\""; } // repair order if ($srchrepord != "any" && $srchrepord != "") { $mffromtables[] = "parts"; $mffromtables[] = "maintforms"; $mfconstraints[] = "maintforms.mfpart=parts.partid and maintforms.repord=\"{$srchrepord}\""; } // build the clauses and run the query $mffromclause = implode(",", array_unique($mffromtables)); $mfwhereclause = implode(" and ", $mfconstraints); $mfrowqry = mysqli_query($db, "select maintforms.* from $mffromclause where $mfwhereclause order by maintforms.mfdate asc, maintforms.mftime asc"); } if ($target[0] == "") $target = []; if (in_array("part", $target)) { // parts search // define the query constraints // log note id if ($srchnoteid != "any" && $srchnoteid != "") { $pfromtables[] = "parts"; $pfromtables[] = "logparts"; $pfromtables[] = "lognotes"; $pconstraints[] = "parts.partid=logparts.partid and logparts.lognoteid=lognotes.lognoteid and lognotes.lognoteid=\"$srchnoteid\""; } // maint form id if ($srchmfid != "any" && $srchmfid != "") { $pfromtables[] = "parts"; $pfromtables[] = "maintforms"; $pconstraints[] = "parts.partid=maintforms.mfpart and maintforms.maintformid=\"$srchmfid\""; } // date range doesn't apply to parts // shift doesn't apply to parts // tech doesn't apply to parts // subject doesn't apply to parts // search text doesn't apply to parts // flags doesn't apply to parts // uid if ($srchuid != "any" && $srchuid != "") { $pfromtables[] = "parts"; $pconstraints[] = "parts.uid=\"{$srchuid}\""; } // part number if ($srchpn != "any" && $srchpn != "") { $pfromtables[] = "parts"; $pconstraints[] = "parts.partnum=\"{$srchpn}\""; } // serial number if ($srchsn != "any" && $srchsn != "") { $pfromtables[] = "parts"; $pconstraints[] = "parts.sernum=\"{$srchsn}\""; } // part name if ($srchpname != "any" && $srchpname != "") { $pfromtables[] = "parts"; $pconstraints[] = "parts.partname like \"%{$srchpname}%\""; } // part location if ($srchploc != "any" && $srchploc != "") { $pfromtables[] = "parts"; $pfromtables[] = "maintforms"; $pconstraints[] = "maintforms.mfpart=parts.partid and maintforms.mfpartloc like \"%{$srchploc}%\""; } // next higher assembly if ($srchnha != "any" && $srchnha != "") { $pfromtables[] = "parts"; $pfromtables[] = "maintforms"; $pconstraints[] = "maintforms.mfpart=parts.partid and maintforms.nha like \"%{$srchnha}%\""; } // repair order if ($srchrepord != "any" && $srchrepord != "") { $pfromtables[] = "parts"; $pfromtables[] = "maintforms"; $pconstraints[] = "maintforms.mfpart=parts.partid and maintforms.repord=\"{$srchrepord}\""; } // build the clauses and run the query $pfromclause = implode(",", array_unique($pfromtables)); $pwhereclause = implode(" and ", $pconstraints); $prowqry = mysqli_query($db, "select parts.* from $pfromclause where $pwhereclause order by parts.uid asc"); } } // ******** end database manipulation ******** pagetable("begin"); if (!$print) { pageblock("left", "begin"); sidemenu(); pageblock("left", "end"); } pageblock("right", "begin"); banner($print); // display the form if ($srchnoteid) $noteidval = $srchnoteid; else $noteidval = "any"; if ($srchmfid) $mfidval = $srchmfid; else $mfidval = "any"; if ($srchbdate) $bdateval = $srchbdate; else $bdateval = $mindate; if ($srchedate) $edateval = $srchedate; else $edateval = $maxdate; if ($srchshift) $shiftval = $srchshift; else $shiftval = 0; if ($srchtech) $techval = $srchtech; else $techval = 0; if ($srchsubj) $subjval = $srchsubj; else $subjval = 0; if ($srchtext) $textval = $srchtext; else $textval = ""; if ($srchuid) $uidval = $srchuid; else $uidval = "any"; if ($srchpn) $pnval = $srchpn; else $pnval = "any"; if ($srchsn) $snval = $srchsn; else $snval = "any"; if ($srchpname) $pnameval = $srchpname; else $pnameval = "any"; if ($srchploc) $plocval = $srchploc; else $plocval = "any"; if ($srchnha) $nhaval = $srchnha; else $nhaval = "any"; if ($srchrepord) $repordval = $srchrepord; else $repordval = "any"; if (!$print) { echo "
| Note ID | Date/Time | Shift | Tech | Subject | Note | References |
|---|---|---|---|---|---|---|
| %s | %s / %s | %s | %s | %s | %s | %s |
| ID | Date | Tech | $uidtext | Part Number | Serial Number | Part Name | Logbook Note ID |
|---|---|---|---|---|---|---|---|
| %s | %s | %s | %s | %s | %s | %s | $mfnotetag |