vid, [0 => _('*** unassigned ***')]); $opt_state = db_load_enum('maintenance', 'maintstate', true, true); // ========== ACTIONS START =================================================== switch ($submit = form_get_action()) { case NULL: break; case 'add': $action = ACT_ADD; break; case 'view': $action = ACT_VIEW; break; case 'edit': $action = ACT_EDIT; break; case 'del': $action = ACT_DELETE; break; case 'filter': $flt = array(); $flt['equip'] = gpc_get_int($_POST, 'flt_equip'); $flt['txt'] = gpc_get_string($_POST, 'flt_txt'); db_save_filter($flt, 204); $action = ACT_DEFAULT; break; case 'freset': db_clear_filter(204); $action = ACT_DEFAULT; break; case 'insert': $p[':vid'] = $user->vid; $p[':eid'] = gpc_get_int($_POST, 'eid'); $p[':activities'] = gpc_get_string($_POST, 'activities', 80); $id = db_exec_insert('maintenance', $p); $action = ACT_VIEW; break; case 'update': $p[':maintid'] = $id; $p[':eid'] = gpc_get_int($_POST, 'eid'); $p[':activities'] = gpc_get_string($_POST, 'activities', 80); $p[':remarks'] = gpc_get_string($_POST, 'remarks', 150); $p[':series'] = gpc_get_int($_POST, 'series'); $p[':maintstate'] = gpc_get_string($_POST, 'maintstate'); db_exec_update('maintenance', $p, 'maintid'); $action = ACT_VIEW; break; case 'delete': break; default: $g_error->Add(sprintf(_("Unknown function '%s'!"), $submit)); $valid = FALSE; } // ========== ACTIONS END ===================================================== require 'header.php'; // ========== PAGE CONTENT ==================================================== if ($action == ACT_DEFAULT): // ========== VARIANT: default behavior ======================================= page_caption_search($pagetitle); // load filter from db $flt = db_get_filter($user->id, 204, ['equip','txt']); // Filter $opt_special = array( -2 => _('― all ―'), -1 => _('― none ―') ); ?>
Filter
'm.maintid', 2 => 'm.maintid DESC' ); $w = array('m.vid=:vid'); $p = array(':vid' => $user->vid); if ($flt->equip == -1 or $flt->equip == 0) { $w[] = 'm.eid IS NULL'; } elseif ($flt->equip > 0) { $w[] = 'm.eid=:eid'; $p[':eid'] = $flt->equip; } if (strlen($flt->txt) > 1) { $w[] = '(m.activities LIKE :txt OR m.remarks LIKE :txt)'; $p[':txt'] = '%'.$flt->txt.'%'; } $where = join(' AND ', $w); $order = ' ORDER BY m.maintid'; $sql = "SELECT COUNT(*) FROM maintenance AS m WHERE " . $where; $sth = $pdo->prepare($sql); try { $sth->execute($p); } catch(PDOException $e) { $g_error->Add($e->getMessage()); $g_error->Add($sql); $g_error->Add(print_r($p, true)); $g_error->PrintOut(); } $numrows = $sth->fetchColumn(); $page = gpc_get_int($_REQUEST, 'p', 1); $rows_pp = gpc_get_int($_REQUEST, 'n', $user->rows_pp); $lastpage = ceil($numrows/$rows_pp); $sql = "SELECT m.maintid, m.activities, m.remarks, e.ename " . "FROM maintenance AS m LEFT OUTER JOIN equipment AS e USING (eid)"; $sql .= ' WHERE ' . $where; $sql .= $order; // if pagination: $sql .= ' LIMIT ' . ($page - 1) * $rows_pp . ',' . $rows_pp; $sth = $pdo->prepare($sql); $sth->execute($p); $res = $sth->fetchAll(); // Pagination on top $pagination = get_pagination($g_scriptname, '', $page, $lastpage); echo $pagination; echo '', "\n"; echo "\n"; echo ""; echo ''; echo ""; echo ""; echo ""; echo "\n"; echo "\n"; $i = ($page - 1) * $rows_pp; $i0 = $i + 1; foreach ($res as $row) { $i++; // record number echo "\n"; echo '\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; } // Table summary echo "\n"; echo '', "\n"; echo "\n"; echo "
#", _('Activities'), "", _('Equipment'), "", _('Remarks'), "
', $i; echo '', "\n"; echo "". $row['activities'] ."". $row['ename'] ."". $row['remarks'] .""; // Edit current record button echo '', "\n"; echo "
', sprintf(_('Records %d to %d of %d'), $i0, $i, $numrows), '
\n"; echo $pagination; form_add_button($g_scriptname); elseif ($action == ACT_ADD): // ========== VARIANT: add record ============================================= echo '

', _('Add Maintenance'), "

\n"; ?>
', _('View Maintenance'), "\n"; $sql = "SELECT m.activities, m.eid, m.remarks, m.series, m.maintstate, e.ename " . "FROM maintenance AS m LEFT OUTER JOIN equipment AS e USING (eid) " . "WHERE m.maintid=?"; $sth = $pdo->prepare($sql); $sth->execute([$id]); $maint = $sth->fetch(PDO::FETCH_OBJ); if (isset($maint->eid)) { $sql = "SELECT r.docid, d.filename, d.title, d.hash, d.extension " . "FROM docref AS r INNER JOIN document AS d USING (docid) " . "WHERE r.reftype='equipment' AND r.refid=?"; $sth = $pdo->prepare($sql); $sth->execute([$maint->eid]); $docs = $sth->fetchAll(); } else { $maint->ename = _('n/a'); unset($docs); } // Bootstrap grid echo '
'; echo '
'; echo '
'; echo '', "\n"; echo '\n"; echo '\n"; echo '\n"; echo '\n"; echo '\n"; echo "
', _('Activities'),"", $maint->activities, "
', _('Equipment'),"", $maint->ename; if (isset($maint->eid) and $maint->eid>0) { // Link to equipment echo ' '; } echo "
', _('Remarks'),"", $maint->remarks, "
', _('Series'),"", $maint->series, "
', _('State'),"", get_enum($maint->maintstate), "
\n"; echo '
'; // Column break echo '
'; // TODO Show documents for equipment echo "

Documents

\n"; if (isset($docs)) { echo '
    ', "\n"; foreach ($docs as $d) { echo '
  • ', $d['title'] ?? $d['filename'], ' (', $d['docid'], ")
  • \n"; } echo "
\n"; } else { echo '

', _('No documents found.'), "

\n"; } echo '
'; // col echo '
'; // row echo '
'; // container form_view_buttons($g_scriptname, $id); echo '

', _('Annotations'), "

\n"; $sql = "SELECT noteid, annotation " . "FROM note " . "WHERE notetype='maint' AND refid=?"; $sth = $pdo->prepare($sql); $sth->execute([$id]); if ($sth->rowCount() > 0) { $n = 0; foreach ($sth->fetchAll() as $row) { $n += 1; echo "

($n) {$row['annotation']}"; echo ' '; echo "

\n"; } } else { echo '

', _('No annotations for this maintenance'), "

\n"; } echo '
', "\n"; echo ''; echo _('Add note'), "\n"; echo "
\n"; elseif ($action == ACT_EDIT): // ========== VARIANT: edit single record ===================================== $sql = "SELECT activities, eid, remarks, series, maintstate " . "FROM maintenance " . "WHERE maintid=?"; $sth = $pdo->prepare($sql); $sth->execute([$id]); $maint = $sth->fetch(PDO::FETCH_OBJ); echo '

', _('Edit Maintenance'), "

\n"; ?>
eid); ?>
maintstate); form_edit_buttons($g_scriptname, $id); echo "\n"; elseif ($action == ACT_DELETE): // ========== VARIANT: delete record ========================================== echo '

', _('Delete Maintenance'), "

\n"; else: // ========== ERROR UNKNOWN VARIANT =========================================== echo '

', _('Unknown function call: Please report to system development!'), "

\n"; endif; // $action == ... // ========== END OF VARIANTS ================================================= include 'footer.php';