diff --git a/db/mariadb.sql b/db/mariadb.sql index 493af1c..fe2733f 100644 --- a/db/mariadb.sql +++ b/db/mariadb.sql @@ -4,13 +4,13 @@ Version: 1 */ CREATE TABLE user ( - userid SMALLINT(6) NOT NULL AUTO_INCREMENT, - login VARCHAR(20) NOT NULL, - pass BINARY(60) NOT NULL, - displayname VARCHAR(100) NOT NULL, - role SET('vessel', 'captain','helmsman','sailor') NOT NULL DEFAULT 'sailor', - flags SET('deleted','locked'), - language CHAR(2) NOT NULL DEFAULT 'en', + userid smallint(6) NOT NULL AUTO_INCREMENT, + login varchar(20) NOT NULL, + pass binary(60) NOT NULL, + displayname varchar(100) NOT NULL, + role set('vessel', 'captain','helmsman','sailor') NOT NULL DEFAULT 'sailor', + flags set('deleted','locked'), + language char(2) NOT NULL DEFAULT 'en', PRIMARY KEY (userid), UNIQUE INDEX ix_login (login) ); @@ -31,10 +31,10 @@ CREATE TABLE user ( */ CREATE TABLE settings ( - userid SMALLINT(6) NOT NULL, - sno SMALLINT(6) NOT NULL, - valstr VARCHAR(200) DEFAULT NULL, - valint INT(10) DEFAULT NULL, + userid smallint(6) NOT NULL, + sno smallint(6) NOT NULL, + valstr varchar(200) DEFAULT NULL, + valint int(10) DEFAULT NULL, PRIMARY KEY (userid, sno) ); @@ -42,43 +42,45 @@ CREATE TABLE settings ( flags: fixed=not deletable, value not changeable locked=not editable */ CREATE TABLE dropdown ( - ddid TINYINT(3) UNSIGNED NOT NULL, - ddval TINYINT(3) NOT NULL, - sort TINYINT(3) DEFAULT NULL, - ddtext VARCHAR(50) NOT NULL, - ddshort VARCHAR(4) DEFAULT NULL, - color CHAR(6) DEFAULT NULL, - flags ENUM('locked', 'fixed') DEFAULT NULL, + ddid tinyint(3) UNSIGNED NOT NULL, + ddval tinyint(3) NOT NULL, + sort tinyint(3) DEFAULT NULL, + ddtext varchar(50) NOT NULL, + ddshort varchar(4) DEFAULT NULL, + color char(6) DEFAULT NULL, + flags enum('locked', 'fixed') DEFAULT NULL, PRIMARY KEY (ddid, ddval) ); CREATE TABLE vessel ( - vid SMALLINT(10) NOT NULL AUTO_INCREMENT, - vtype ENUM('mono','cat','tri') NOT NULL DEFAULT 'mono', - vesselname VARCHAR(40) NOT NULL, - model VARCHAR(20) DEFAULT NULL, - loa FLOAT(4,2) UNSIGNED DEFAULT NULL, - lwl FLOAT(4,2) UNSIGNED DEFAULT NULL, - beam FLOAT(4,2) UNSIGNED DEFAULT NULL, - draught FLOAT(3,2) UNSIGNED DEFAULT NULL, - draught_min FLOAT(3,2) UNSIGNED DEFAULT NULL, - displacement SMALLINT(6) UNSIGNED DEFAULT NULL, - ballast SMALLINT(6) UNSIGNED DEFAULT NULL, - remarks VARCHAR(150) DEFAULT NULL, + vid smallint(10) NOT NULL AUTO_INCREMENT, + vtype enum('mono','cat','tri') NOT NULL DEFAULT 'mono', + vesselname varchar(40) NOT NULL, + model varchar(20) DEFAULT NULL, + loa float(4,2) UNSIGNED DEFAULT NULL, + lwl float(4,2) UNSIGNED DEFAULT NULL, + beam float(4,2) UNSIGNED DEFAULT NULL, + draught float(3,2) UNSIGNED DEFAULT NULL, + draught_min float(3,2) UNSIGNED DEFAULT NULL, + displacement smallint(6) UNSIGNED DEFAULT NULL, + ballast smallint(6) UNSIGNED DEFAULT NULL, + beltpos_aft float(4,2) UNSIGNED DEFAULT NULL, + beltpos_bow float(4,2) UNSIGNED DEFAULT NULL, + remarks varchar(150) DEFAULT NULL, PRIMARY KEY (vid) ); CREATE TABLE storage ( - sid SMALLINT(6) NOT NULL AUTO_INCREMENT, - vid SMALLINT(6) NOT NULL DEFAULT 1, - sname VARCHAR(40) NOT NULL, - stype TINYINT(3) NOT NULL DEFAULT 0, - capacity SMALLINT(6) DEFAULT NULL, - capaunit ENUM('kg', 'l') DEFAULT NULL, - x SMALLINT(6) NOT NULL DEFAULT 0, - y SMALLINT(6) NOT NULL DEFAULT 0, - z SMALLINT(6) NOT NULL DEFAULT 0, - remarks VARCHAR(150) DEFAULT NULL, + sid smallint(6) NOT NULL AUTO_INCREMENT, + vid smallint(6) NOT NULL DEFAULT 1, + sname varchar(40) NOT NULL, + stype tinyint(3) NOT NULL DEFAULT 0, + capacity smallint(6) DEFAULT NULL, + capaunit enum('kg', 'l') DEFAULT NULL, + x smallint(6) NOT NULL DEFAULT 0, + y smallint(6) NOT NULL DEFAULT 0, + z smallint(6) NOT NULL DEFAULT 0, + remarks varchar(150) DEFAULT NULL, PRIMARY KEY (sid) ); @@ -86,132 +88,132 @@ CREATE TABLE storage ( CREATE TABLE tag ( - tagid SMALLINT(6) NOT NULL AUTO_INCREMENT, - tagname VARCHAR(20) NOT NULL, - color CHAR(6) DEFAULT NULL, + tagid smallint(6) NOT NULL AUTO_INCREMENT, + tagname varchar(20) NOT NULL, + color char(6) DEFAULT NULL, PRIMARY KEY (tagid), UNIQUE INDEX ix_tagname (tagname) ); CREATE TABLE tagref ( - tagid SMALLINT(6) NOT NULL, - objid SMALLINT(6) NOT NULL, - objtype ENUM('equip','inv','prov','doc') NOT NULL, + tagid smallint(6) NOT NULL, + objid smallint(6) NOT NULL, + objtype enum('equip','inv','prov','doc') NOT NULL, PRIMARY KEY (tagid, objid, objtype) ); /* TODO Boxes can be nested via parent TODO boxsize: (LxWxH) in cm? */ CREATE TABLE box ( - boxid SMALLINT(6) NOT NULL AUTO_INCREMENT, - sid SMALLINT(6) NOT NULL, - parent INT(10) DEFAULT NULL, - label VARCHAR(20) DEFAULT NULL, - color CHAR(6) DEFAULT NULL, - content VARCHAR(60) DEFAULT NULL, - weight FLOAT(5,2) UNSIGNED DEFAULT NULL, - remarks VARCHAR(150) DEFAULT NULL, + boxid smallint(6) NOT NULL AUTO_INCREMENT, + sid smallint(6) NOT NULL, + parent int(10) DEFAULT NULL, + label varchar(20) DEFAULT NULL, + color char(6) DEFAULT NULL, + content varchar(60) DEFAULT NULL, + weight float(5,2) UNSIGNED DEFAULT NULL, + remarks varchar(150) DEFAULT NULL, PRIMARY KEY (boxid), INDEX ix_label (label) ); CREATE TABLE equipment ( - eid SMALLINT(6) NOT NULL AUTO_INCREMENT, - vid SMALLINT(6) NOT NULL DEFAULT 1, - ename VARCHAR(80) NOT NULL, - make VARCHAR(40), - model VARCHAR(40), - ecat TINYINT(3) DEFAULT NULL, - serial VARCHAR(30), - supplier SMALLINT(6) DEFAULT NULL, - manufacturer SMALLINT(6) DEFAULT NULL, - purchdate DATE DEFAULT NULL, - price DECIMAL(12,2) DEFAULT NULL, - weight FLOAT(5,2) UNSIGNED DEFAULT NULL, - remarks VARCHAR(150) DEFAULT NULL, + eid smallint(6) NOT NULL AUTO_INCREMENT, + vid smallint(6) NOT NULL DEFAULT 1, + ename varchar(80) NOT NULL, + make varchar(40), + model varchar(40), + ecat tinyint(3) DEFAULT NULL, + serial varchar(30), + supplier smallint(6) DEFAULT NULL, + manufacturer smallint(6) DEFAULT NULL, + purchdate date DEFAULT NULL, + price decimal(12,2) DEFAULT NULL, + weight float(5,2) UNSIGNED DEFAULT NULL, + remarks varchar(150) DEFAULT NULL, PRIMARY KEY(eid) ); CREATE TABLE inventory ( - invid INT(10) NOT NULL AUTO_INCREMENT, - invname VARCHAR(80) NOT NULL, - boxtype ENUM('storage','box') NOT NULL DEFAULT 'storage', - sid SMALLINT(6) NOT NULL DEFAULT 1, - boxid SMALLINT(6) NOT NULL DEFAULT 1, - number SMALLINT(6) UNSIGNED NOT NULL DEFAULT 1, - weight FLOAT(5,2) UNSIGNED DEFAULT NULL, - price DECIMAL(12,2) DEFAULT NULL, - purchdate DATE DEFAULT NULL, - invcond ENUM('unknown','good','normal','bad','repairable','defect') NOT NULL default 'unknown', + invid int(10) NOT NULL AUTO_INCREMENT, + invname varchar(80) NOT NULL, + boxtype enum('storage','box') NOT NULL DEFAULT 'storage', + sid smallint(6) NOT NULL DEFAULT 1, + boxid smallint(6) NOT NULL DEFAULT 1, + number smallint(6) UNSIGNED NOT NULL DEFAULT 1, + weight float(5,2) UNSIGNED DEFAULT NULL, + price decimal(12,2) DEFAULT NULL, + purchdate date DEFAULT NULL, + invcond enum('unknown','good','normal','bad','repairable','defect') NOT NULL default 'unknown', PRIMARY KEY (invid), INDEX ix_invname (invname) ); CREATE TABLE measurement ( - mid SMALLINT(6) NOT NULL AUTO_INCREMENT, - mname VARCHAR(80) NOT NULL, - nval TINYINT(1) UNSIGNED NOT NULL DEFAULT 1, - val1 INT(10) NOT NULL, - val2 INT(10) NOT NULL, - val3 INT(10) NOT NULL, - unit TINYINT(3) NOT NULL DEFAULT 1, - accuracy ENUM('unknown', 'precise', 'normal', 'rough', 'estimated') NOT NULL DEFAULT 'unknown', - mdate DATE DEFAULT NULL, - note VARCHAR(80) DEFAULT NULL, - eid SMALLINT(6) DEFAULT NULL, + mid smallint(6) NOT NULL AUTO_INCREMENT, + mname varchar(80) NOT NULL, + nval tinyint(1) UNSIGNED NOT NULL DEFAULT 1, + val1 int(10) NOT NULL, + val2 int(10) NOT NULL, + val3 int(10) NOT NULL, + unit tinyint(3) NOT NULL DEFAULT 1, + accuracy enum('unknown', 'precise', 'normal', 'rough', 'estimated') NOT NULL DEFAULT 'unknown', + mdate date DEFAULT NULL, + note varchar(80) DEFAULT NULL, + eid smallint(6) DEFAULT NULL, PRIMARY KEY (mid) ); CREATE TABLE provisions ( - provid INT(10) NOT NULL AUTO_INCREMENT, - provname VARCHAR(40) NOT NULL, - sid SMALLINT(6) DEFAULT NULL, - number SMALLINT(6) UNSIGNED NOT NULL DEFAULT 1, - unit TINYINT(3) DEFAULT NULL, - storedate DATE DEFAULT CURRENT_DATE, - shelflife DATE DEFAULT NULL, + provid int(10) NOT NULL AUTO_INCREMENT, + provname varchar(40) NOT NULL, + sid smallint(6) DEFAULT NULL, + number smallint(6) UNSIGNED NOT NULL DEFAULT 1, + unit tinyint(3) DEFAULT NULL, + storedate date DEFAULT CURRENT_DATE, + shelflife date DEFAULT NULL, PRIMARY KEY (provid) ); CREATE TABLE document ( - docid SMALLINT(6) NOT NULL AUTO_INCREMENT, - doctype ENUM('generic', 'manual', 'invoice', 'drawing', 'picture') NOT NULL DEFAULT 'generic', - mimetype VARCHAR(80) NOT NULL DEFAULT 'application/octet-stream', - filename VARCHAR(200) NOT NULL, - extension CHAR(3) NOT NULL, - hash VARCHAR(32) NOT NULL, - docsize INT(10) unsigned NOT NULL, - doctime DATETIME DEFAULT NULL, - title VARCHAR(40) DEFAULT NULL, - pages SMALLINT(6) unsigned NOT NULL DEFAULT 1, - remarks VARCHAR(150) DEFAULT NULL, + docid smallint(6) NOT NULL AUTO_INCREMENT, + doctype enum('generic', 'manual', 'invoice', 'drawing', 'picture') NOT NULL DEFAULT 'generic', + mimetype varchar(80) NOT NULL DEFAULT 'application/octet-stream', + filename varchar(200) NOT NULL, + extension char(3) NOT NULL, + hash varchar(32) NOT NULL, + docsize int(10) unsigned NOT NULL, + doctime datetime DEFAULT NULL, + title varchar(40) DEFAULT NULL, + pages smallint(6) unsigned NOT NULL DEFAULT 1, + remarks varchar(150) DEFAULT NULL, PRIMARY KEY (docid) ); CREATE TABLE docref ( - drid INT(10) NOT NULL AUTO_INCREMENT, - reftype ENUM('vessel', 'box', 'equipment', 'project', 'task') NOT NULL DEFAULT 'vessel', - docid SMALLINT(6) NOT NULL, - refid SMALLINT(6) NOT NULL, + drid int(10) NOT NULL AUTO_INCREMENT, + reftype enum('vessel', 'box', 'equipment', 'project', 'task') NOT NULL DEFAULT 'vessel', + docid smallint(6) NOT NULL, + refid smallint(6) NOT NULL, PRIMARY KEY (drid), UNIQUE INDEX ix_docref (docid, refid) ); CREATE TABLE company ( - compid SMALLINT(6) NOT NULL AUTO_INCREMENT, - compname VARCHAR(40) NOT NULL, - comptype TINYINT(3) NOT NULL DEFAULT 1, - street VARCHAR(30), - zip VARCHAR(10), - city VARCHAR(30), - country VARCHAR(30), - contact VARCHAR(30), - phone VARCHAR(30), - email VARCHAR(50), - web VARCHAR(40), - customerno VARCHAR(20), - contractno VARCHAR(20), - remarks VARCHAR(150) DEFAULT NULL, + compid smallint(6) NOT NULL AUTO_INCREMENT, + compname varchar(40) NOT NULL, + comptype tinyint(3) NOT NULL DEFAULT 1, + street varchar(30), + zip varchar(10), + city varchar(30), + country varchar(30), + contact varchar(30), + phone varchar(30), + email varchar(50), + web varchar(40), + customerno varchar(20), + contractno varchar(20), + remarks varchar(150) DEFAULT NULL, PRIMARY KEY (compid), UNIQUE INDEX ix_compname (compname) ); @@ -219,57 +221,57 @@ CREATE TABLE company ( /* TODO optional field: plan date, target date, completion date */ CREATE TABLE maintenance ( - maintid INT(10) NOT NULL AUTO_INCREMENT, - vid SMALLINT(6) NOT NULL DEFAULT 1, - eid SMALLINT(6) DEFAULT NULL, - series SMALLINT(6) DEFAULT NULL, - activities VARCHAR(40) NOT NULL, - remarks VARCHAR(150) DEFAULT NULL, - maintstate ENUM('new','planned','ongoing','done') NOT NULL DEFAULT 'new', + maintid int(10) NOT NULL AUTO_INCREMENT, + vid smallint(6) NOT NULL DEFAULT 1, + eid smallint(6) DEFAULT NULL, + series smallint(6) DEFAULT NULL, + activities varchar(40) NOT NULL, + remarks varchar(150) DEFAULT NULL, + maintstate enum('new','planned','ongoing','done') NOT NULL DEFAULT 'new', PRIMARY KEY (maintid) ); /* TODO? time recording */ CREATE TABLE project ( - projid SMALLINT(6) NOT NULL AUTO_INCREMENT, - projname VARCHAR(40) NOT NULL, - vid SMALLINT(6) NOT NULL DEFAULT 1, - responsible SMALLINT(6) NOT NULL, + projid smallint(6) NOT NULL AUTO_INCREMENT, + projname varchar(40) NOT NULL, + vid smallint(6) NOT NULL DEFAULT 1, + responsible smallint(6) NOT NULL, startdate date DEFAULT NULL, - duration SMALLINT(6) UNSIGNED DEFAULT NULL, - costs_plan DECIMAL(12,2) DEFAULT NULL, - costs_final DECIMAL(12,2) DEFAULT NULL, - remarks VARCHAR(150) DEFAULT NULL, - projstate ENUM('new','plan','ongoing','finished') NOT NULL DEFAULT 'new', + duration smallint(6) UNSIGNED DEFAULT NULL, + costs_plan decimal(12,2) DEFAULT NULL, + costs_final decimal(12,2) DEFAULT NULL, + remarks varchar(150) DEFAULT NULL, + projstate enum('new','plan','ongoing','finished') NOT NULL DEFAULT 'new', PRIMARY KEY (projid) ); CREATE TABLE task ( - taskid INT(10) NOT NULL AUTO_INCREMENT, - projid SMALLINT(6) DEFAULT NULL, - taskname VARCHAR(60) NOT NULL, - taskstate ENUM('new','finished') NOT NULL DEFAULT 'new', - PRIMARY KEY (taskid) + taskid int(10) NOT NULL AUTO_INCREMENT, + projid smallint(6) DEFAULT NULL, + taskname varchar(60) NOT NULL, + taskstate enum('new','finished') NOT NULL DEFAULT 'new', + PRIMARY KEY (taskid) ); CREATE TABLE checklist ( - clid SMALLINT(6) NOT NULL AUTO_INCREMENT, - title VARCHAR(30) NOT NULL, - clstate ENUM('new','open','closed') NOT NULL DEFAULT 'new', + clid smallint(6) NOT NULL AUTO_INCREMENT, + title varchar(30) NOT NULL, + clstate enum('new','open','closed') NOT NULL DEFAULT 'new', PRIMARY KEY (clid) ); CREATE TABLE checkitem ( - checkid INT(10) NOT NULL AUTO_INCREMENT, - checkname VARCHAR(60) NOT NULL, - groupid TINYINT(3) DEFAULT NULL, + checkid int(10) NOT NULL AUTO_INCREMENT, + checkname varchar(60) NOT NULL, + groupid tinyint(3) DEFAULT NULL, PRIMARY KEY (checkid) ); CREATE TABLE checkref ( - clid SMALLINT(6) NOT NULL, - checkid INT(10) NOT NULL, - sort SMALLINT(6) DEFAULT NULL, + clid smallint(6) NOT NULL, + checkid int(10) NOT NULL, + sort smallint(6) DEFAULT NULL, PRIMARY KEY (clid, checkid) ); diff --git a/db/minimal.sql b/db/minimal.sql index 13929f8..2200f02 100644 --- a/db/minimal.sql +++ b/db/minimal.sql @@ -13,6 +13,7 @@ INSERT INTO user (userid, login, pass, displayname, role) VALUES INSERT INTO settings (userid, sno, valint) VALUES (0, 0, 1), -- Databankschema-Version +(0, 1, 0), -- Keine Bootszuordnung für SYSTEM (1, 1, 0); -- Keine Bootszuordnung für Benutzer "captain" /* Liste der Listen wird immer benötigt */ diff --git a/db/minimal_en.sql b/db/minimal_en.sql index ade3e7b..6fa427f 100644 --- a/db/minimal_en.sql +++ b/db/minimal_en.sql @@ -13,6 +13,7 @@ INSERT INTO user (userid, login, pass, displayname, role) VALUES INSERT INTO settings (userid, sno, valint) VALUES (0, 0, 1), -- Database schema version +(0, 1, 0), -- No vessel for SYSTEM (1, 1, 0); -- No vessel for captain /* list of lists needed */ diff --git a/webgui/box.php b/webgui/box.php index 06ee76e..a91019f 100644 --- a/webgui/box.php +++ b/webgui/box.php @@ -98,13 +98,9 @@ echo ""; echo "\n"; foreach ($res as $row) { echo "\n"; - echo "". $row['label'] ."\n"; - $style = 'background-color:#' . $row['color']; - if (get_color_brightness($row['color']) < 0.4) { - $style .= ';color:white'; - } - echo '#'. $row['color'] ."\n"; - echo "". $row['content'] ."\n"; + echo '', $row['label'], "\n"; + echo '', format_color(strtoupper($row['color'])), "\n"; + echo '', $row['content'], "\n"; echo '', format_float($row['weight'], 2), "\n"; form_action_buttons($g_scriptname, $row['boxid']); echo "\n"; @@ -123,7 +119,7 @@ elseif ($action == ACT_ADD): echo '

', _('Add Box'), "

\n"; ?> -
+
@@ -167,7 +163,7 @@ echo '

', $box->label, "

\n"; echo '', "\n"; echo '\n"; -echo '\n"; +echo '\n"; echo '\n"; echo '\n"; echo "
', _('Content'),"", $box->content, "
', _('Color'), '#', $box->color, "
', _('Color'), '', format_color($box->color), "
', _('Weight'), '', format_float($box->weight, 2, 'kg'), "
', _('Remarks'),"", $box->remarks, "
\n"; @@ -176,25 +172,32 @@ form_view_buttons($g_scriptname, $id); // Inventory in box // WIP -$sql = "SELECT invid, invname FROM inventory WHERE boxtype='box' AND boxid=?"; +$sql = "SELECT invid, invname, weight FROM inventory WHERE boxtype='box' AND boxid=?"; $sth = $pdo->prepare($sql); $sth->execute([$id]); $res = $sth->fetchAll(); echo '

', _('Inventory in box'), "

\n"; +$weight_total = 0.0; if ($res) { echo '', "\n"; echo "\n"; echo ""; echo '"; + echo '"; echo ""; echo "\n"; foreach ($res as $row) { echo "\n"; echo "\n"; + echo "\n"; form_action_buttons('inventory.php', $row['invid']); echo "\n"; + $weight_total += $row['weight']; } + echo ""; + echo '', "\n"; + echo "\n"; echo "
', _('Inventory'), "', _('Weight'), "
", $row['invname'], "", format_float($row['weight'], 2, 'kg'), "
', format_float($weight_total, 2, 'kg'), '
\n"; } else { echo '

', _('Box is empty'), "

\n"; @@ -212,7 +215,7 @@ $box = $sth->fetch(PDO::FETCH_OBJ); echo '

', _('Edit Box'), "

\n"; ?> - +
diff --git a/webgui/checklist.php b/webgui/checklist.php index 0581f7c..a8d3a7c 100644 --- a/webgui/checklist.php +++ b/webgui/checklist.php @@ -11,13 +11,146 @@ $pagetitle = _('Checklists'); $id = gpc_get_int($_REQUEST, 'id', 0); +// ========== 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 'insert': + $p[':title'] = gpc_get_string($_POST, 'title'); + $p[':clstate'] = gpc_get_string($_POST, 'clstate'); + $id = db_exec_insert('checklist', $p); + $action = ACT_VIEW; + break; + + case 'update': + $p[':title'] = gpc_get_string($_POST, 'title'); + $p[':clstate'] = gpc_get_string($_POST, 'clstate'); + $p[':clid'] = $id; + db_exec_update('checklist', $p, 'clid'); + $action = ACT_VIEW; + break; + + case 'delete': + $action = ACT_DEFAULT; + 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 ======================================= + echo "

$pagetitle

\n"; + +$sql = "SELECT clid, title, clstate FROM checklist"; +$sth = $pdo->query($sql); +$res = $sth->fetchAll(); ?> - -

Search will be implemented later. -This page is currently just a placeholder.

- + + + + + + + + +\n"; + echo '\n"; + echo '\n"; + echo '\n"; + form_action_buttons($g_scriptname, $row['clid']); + echo "\n"; +} +// Table summary +echo "\n"; +echo '', "\n"; +echo "\n"; +echo "
#
', $row['clid'], "', $row['title'], "', $row['clstate'], "
', sprintf(_('%d records'), count($res)), '
\n"; + +form_add_button($g_scriptname); + +elseif ($action == ACT_ADD): +// ========== VARIANT: add record ============================================= + +echo '

', _('Add Checklist'), "

\n"; +?> + +
+ + +
+\n"; + +elseif ($action == ACT_VIEW): +// ========== VARIANT: view single record ===================================== + +$sth = $pdo->prepare("SELECT title, clstate FROM checklist WHERE clid=?"); +$sth->execute([$id]); +$checklist = $sth->fetch(PDO::FETCH_OBJ); + +?> +

+ + + +
title ?>
clstate)?>
+prepare("SELECT title, clstate FROM checklist WHERE clid=?"); +$sth->execute([$id]); +$checklist = $sth->fetch(PDO::FETCH_OBJ); + +$opt_clstate = db_load_enum('checklist', 'clstate', true, true); + +echo '

', _('Edit checklist'), "

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

', _('Delete checklist'), "

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

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

\n"; + +endif; // $action == ... +// ========== END OF VARIANTS ================================================= + include 'footer.php'; diff --git a/webgui/company.php b/webgui/company.php index 3d21f25..fe43988 100644 --- a/webgui/company.php +++ b/webgui/company.php @@ -24,65 +24,28 @@ switch ($submit = form_get_action()) { case 'del': $action = ACT_DELETE; break; case 'insert': - $compname = gpc_get_string($_POST, 'compname'); - $comptype = gpc_get_int($_POST, 'comptype'); - $sql = "INSERT INTO company " - . " (compname, comptype) " - . "VALUES " - . " (:compname, :comptype)"; - $sth = $pdo->prepare($sql); - $sth->bindValue(':compname', $compname, PDO::PARAM_STR); - $sth->bindValue(':comptype', $comptype, PDO::PARAM_INT); - $sth->execute(); - $id = $pdo->lastInsertId(); + $p[':compname'] = gpc_get_string($_POST, 'compname'); + $p[':comptype'] = gpc_get_int($_POST, 'comptype'); + $id = db_exec_insert('company', $p); $action = ACT_VIEW; break; case 'update': - $compname = gpc_get_string($_POST, 'compname'); - $comptype = gpc_get_int($_POST, 'comptype'); - $street = gpc_get_string($_POST, 'street', 30); - $zip = gpc_get_string($_POST, 'zip', 10); - $city = gpc_get_string($_POST, 'city', 30); - $country = gpc_get_string($_POST, 'country', 30); - $contact = gpc_get_string($_POST, 'contact', 30); - $phone = gpc_get_string($_POST, 'phone', 30); - $email = gpc_get_string($_POST, 'email', 50); - $web = gpc_get_string($_POST, 'web', 40); - $customerno = gpc_get_string($_POST, 'customerno', 20); - $contractno = gpc_get_string($_POST, 'contractno', 20); - $remarks = gpc_get_string($_POST, 'remarks', 150); - $sql = "UPDATE company " - . "SET compname=:compname," - . " comptype=:comptype," - . " street=:street," - . " zip=:zip," - . " city=:city," - . " country=:country," - . " contact=:contact," - . " phone=:phone," - . " email=:email," - . " web=:web," - . " customerno=:customerno," - . " contractno=:contractno," - . " remarks=:remarks " - . "WHERE compid=:compid"; - $sth = $pdo->prepare($sql); - $sth->bindValue(':compid', $id, PDO::PARAM_INT); - $sth->bindValue(':compname', $compname, PDO::PARAM_STR); - $sth->bindValue(':comptype', $comptype, PDO::PARAM_INT); - $sth->bindValue(':street', $street, PDO::PARAM_STR); - $sth->bindValue(':zip', $zip, PDO::PARAM_STR); - $sth->bindValue(':city', $city, PDO::PARAM_STR); - $sth->bindValue(':country', $country, PDO::PARAM_STR); - $sth->bindValue(':contact', $contact, PDO::PARAM_STR); - $sth->bindValue(':phone', $phone, PDO::PARAM_STR); - $sth->bindValue(':email', $email, PDO::PARAM_STR); - $sth->bindValue(':web', $web, PDO::PARAM_STR); - $sth->bindValue(':customerno', $customerno, PDO::PARAM_STR); - $sth->bindValue(':contractno', $contractno, PDO::PARAM_STR); - $sth->bindValue(':remarks', $remarks, PDO::PARAM_STR); - $sth->execute(); + $p[':compid'] = $id; + $p[':compname'] = gpc_get_string($_POST, 'compname'); + $p[':comptype'] = gpc_get_int($_POST, 'comptype'); + $p[':street'] = gpc_get_string($_POST, 'street', 30); + $p[':zip'] = gpc_get_string($_POST, 'zip', 10); + $p[':city'] = gpc_get_string($_POST, 'city', 30); + $p[':country'] = gpc_get_string($_POST, 'country', 30); + $p[':contact'] = gpc_get_string($_POST, 'contact', 30); + $p[':phone'] = gpc_get_string($_POST, 'phone', 30); + $p[':email'] = gpc_get_string($_POST, 'email', 50); + $p[':web'] = gpc_get_string($_POST, 'web', 40); + $p[':customerno'] = gpc_get_string($_POST, 'customerno', 20); + $p[':contractno'] = gpc_get_string($_POST, 'contractno', 20); + $p[':remarks'] = gpc_get_string($_POST, 'remarks', 150); + db_exec_update('company', $p, 'compid'); $action = ACT_VIEW; break; @@ -157,7 +120,7 @@ elseif ($action == ACT_ADD): echo '

', _('Add Company'), "

\n"; ?> -
+
diff --git a/webgui/documents.php b/webgui/documents.php index ebf2815..cc760c6 100644 --- a/webgui/documents.php +++ b/webgui/documents.php @@ -24,8 +24,8 @@ switch ($submit = form_get_action()) { case 'insert': // WIP New standalone document - $title = gpc_get_string($_POST, 'title'); - $remarks = gpc_get_string($_POST, 'remarks'); + $p[':title'] = gpc_get_string($_POST, 'title'); + $p[':remarks'] = gpc_get_string($_POST, 'remarks'); $g_message->Add(print_r($_FILES, true)); if (empty($_FILES['files']['tmp_name']) ) { $g_warning->Add(_('No file for upload submitted. Try again by selecting a file first.')); @@ -77,7 +77,16 @@ switch ($submit = form_get_action()) { $doctype = 'picture'; break; } - $sql = "INSERT INTO document" + $p[':doctype'] = $doctype; + $p[':mimetype'] = $file_mimetype; + $p[':filename'] = $file_name; + $p[':extension'] = $file_ext; + $p[':hash'] = $file_hash; + $p[':doctime'] = $file_timestamp; + $p[':docsize'] = $file_size; + $p[':title'] = gpc_get_string($_POST, 'title'); + $p[':remarks'] = gpc_get_string($_POST, 'remarks'); +/* $sql = "INSERT INTO document" . " (doctype, filename, extension, hash, doctime, docsize, mimetype) " . "VALUES" . " (?, ?, ?, ?, ?, ?, ?)"; @@ -87,7 +96,8 @@ switch ($submit = form_get_action()) { } catch (PDOException $e) { $g_error->Add('SQL-Error: '. $e->getMessage()); } - $id = $pdo->lastInsertId(); + $id = $pdo->lastInsertId(); */ + $id = db_exec_insert('document', $p); move_uploaded_file($file_tmp, $file_techname); $action = ACT_VIEW; break; @@ -366,7 +376,7 @@ $sth->execute([$id]); $document = $sth->fetch(PDO::FETCH_OBJ); if ($document->doctype == 'picture') { - echo ''; + echo ''; } ?> @@ -382,7 +392,7 @@ if ($document->doctype == 'picture') {
- +
diff --git a/webgui/dropdown.php b/webgui/dropdown.php index 536bdb1..3809c63 100644 --- a/webgui/dropdown.php +++ b/webgui/dropdown.php @@ -187,7 +187,11 @@ foreach ($sth->fetchAll() as $row) { echo '', $row['ddval'],''; echo '', $row['ddtext'], ''; echo '', $row['ddshort'], ''; - echo '', $row['color'], ''; + if ($row['color']) { + echo '', format_color($row['color']), ''; + } else { + echo ''; + } echo '', $row['sort'], ''; echo "\n"; } diff --git a/webgui/equipment.php b/webgui/equipment.php index bfa0b30..0cedd22 100644 --- a/webgui/equipment.php +++ b/webgui/equipment.php @@ -208,6 +208,11 @@ require 'header.php'; if ($action == ACT_DEFAULT): // ========== VARIANT: default behavior ======================================= +$sort = array( + 1 => 'ename', + 2 => 'ename DESC' +); + $sql = "SELECT eid, ename, manufacturer, model, serial, remarks," . " TIMESTAMPDIFF(MONTH, purchdate, NOW()) AS age_mon " . "FROM equipment WHERE vid=? " @@ -221,18 +226,26 @@ echo "

$pagetitle

\n"; // Filter ?> - +
Filter
- - $v) { echo ''; } ?> + +
@@ -292,7 +305,7 @@ elseif ($action == ACT_ADD): // ========== VARIANT: add record ============================================= ?>

- +
diff --git a/webgui/equipment_js.php b/webgui/equipment_js.php new file mode 100644 index 0000000..59b3674 --- /dev/null +++ b/webgui/equipment_js.php @@ -0,0 +1,294 @@ +Add("Unbekannte Funktion!"); + $valid = FALSE; + +} + +// ========== ACTIONS END ===================================================== + +require 'header.php'; + +// ========== PAGE CONTENT ==================================================== + +if ($action == ACT_DEFAULT): +// ========== VARIANT: default behavior ======================================= + +echo "

$pagetitle

\n"; + +$sql = "SELECT eid, ename, make, model, serial, remarks " + . "FROM equipment " + . "ORDER BY eid"; +$sth = $pdo->query($sql); +$res = $sth->fetchAll(); +echo '', "\n"; +echo "\n"; +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +foreach ($res as $row) { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + // Action buttons + echo "\n"; + echo "\n"; +} +// Table summary +echo "\n"; +echo '', "\n"; +echo "\n"; +echo "
" . _('Description') . "" . _('Make') . "" . _('Model') . "" . _('Serial') . "" . _('Remarks') . " 
". $row['ename'] ."". $row['make'] ."". $row['model'] ."". $row['serial'] ."". $row['remarks'] .""; + echo 'View '; + echo 'Edit'; + echo "
', sprintf(_('%d records'), count($res)), '
\n"; + +echo '', _('Add'), "\n"; + +elseif ($action == ACT_ADD): +// ========== VARIANT: add record ============================================= +?> +

+ +
+ + +
+
+ + +
+
+ + +
+
+ + +
+ + + +prepare($sql); +$sth->execute([$id]); +$equipment = $sth->fetch(PDO::FETCH_OBJ); +echo "

", $equipment->ename, "

\n"; + +// Bootstrap grid +echo '
'; +echo '
'; +echo '
'; + +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
", _('Make'),"", $equipment->make, "
", _('Model'),"", $equipment->model, "
", _('Serial'),"", $equipment->serial, "
\n"; + + +echo '
'; // Column break +echo '
'; +?> +

Images and documents go here

+
+
+
+
+
+

Drag and drop your image here or click to select a file.

+
+
+ + +
+
+
+ + +'; // col +echo '
'; // row +echo '
'; // container + +// Buttons at bottom of data area +echo '
', "\n"; +echo '', _('Edit'), "\n"; +echo ' '; +echo '', _('Delete'), "\n"; +echo ' '; +echo '', _('Back'), "\n"; +echo "
\n"; + + +elseif ($action == ACT_EDIT): +// ========== VARIANT: edit single record ===================================== + +$sql = "SELECT eid, ename, make, model, serial, remarks " + . "FROM equipment " + . "WHERE eid=?"; +$sth = $pdo->prepare($sql); +$sth->execute([$id]); +$equipment = $sth->fetch(PDO::FETCH_OBJ); +?> +

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

\n"; + +endif; // $action == ... +// ========== END OF VARIANTS ================================================= + +include 'footer.php'; diff --git a/webgui/globals.inc b/webgui/globals.inc index 18db21f..4dffd21 100644 --- a/webgui/globals.inc +++ b/webgui/globals.inc @@ -280,8 +280,78 @@ function get_userlist() { // ========== DATABASE FUNCTIONS ============================================== -function db_load_enum($table, $column) { +function db_exec_insert($table, $params) { + // $params must have keys corresponding to table fields prefixed with ':' + // e.g. $param[':field'] + global $pdo; + global $g_error; + $keys = array_keys($params); + $fields = join(',', array_map(function($s) { return ltrim($s, ':'); }, $keys)); + $pnames = join(',', $keys); + $sth = $pdo->prepare("INSERT INTO $table ($fields) VALUES ($pnames)"); + try { + $sth->execute($params); + } catch (PDOexception $e) { + $g_error->Add('SQL-Error: '. $e->getMessage()); + } + return $pdo->LastInsertId(); +} + +function db_exec_update($table, $params, $pk) { + global $pdo; + global $g_error; + $fields = join(',', array_map(function($s) { return ltrim($s, ':') . '=' . $s; }, array_keys($params))); + $sth = $pdo->prepare("UPDATE $table SET $fields WHERE $pk=:$pk"); + try { + $sth->execute($params); + } catch (PDOexception $e) { + $g_error->Add('SQL-Error: '. $e->getMessage()); + return false; + } + return true; +} + +function get_enum($enum) { + // Translate and beautify enums + $lookup = array( + 'bad' => _('Bad'), + 'box' => _('Box'), + 'cat' => _('Catamaran'), + 'closed' => _('Closed'), + 'defect' => _('Defect'), + 'done' => _('Done'), + 'drawing' => _('Drawng'), + 'equipment' => _('Equipment'), + 'estimated' => _('Estimated'), + 'finished' => _('Finished'), + 'fixed' => _('Fixed'), + 'generic' => _('Generic'), + 'good' => _('Good'), + 'invoice' => _('Invoice'), + 'locked' => _('Locked'), + 'manual' => _('Manual'), + 'mono' => _('Monoholl'), + 'new' => _('New'), + 'normal' => _('Normal'), + 'ongoing' => _('Ongoing'), + 'open' => _('Open'), + 'picture' => _('Picture'), + 'planned' => _('Planned'), + 'precise' => _('Precise'), + 'rough' => _('Rough'), + 'storage' => _('Storage'), + 'task' => _('Task'), + 'tri' => _('Trimaran'), + 'unknown' => _('Unknown'), + 'vessel' => _('Vessel'), + ); + return $lookup[$enum] ?? $enum; +} + +function db_load_enum($table, $column, $lookup=false, $as_dict=false) { // returns array of enum-values as defined in database + // if lookup is true the name lookup and translaton is applied + // if as_dict is true the enum value is returned as the array key global $pdo; $sql = "SELECT TRIM(TRAILING ')' FROM SUBSTRING(column_type,6)) " . "FROM information_schema.columns " @@ -291,7 +361,20 @@ function db_load_enum($table, $column) { // for PHP < 7.4 // return array_map(function($x) { return trim($x, "'"); }, explode(',', $sth->fetchColumn())); // for PHP => 7.4 - return array_map(fn($x) => trim($x, "'"), explode(',', $sth->fetchColumn())); + $arr = array_map(fn($x) => trim($x, "'"), explode(',', $sth->fetchColumn())); + if ($lookup) { + if ($as_dict) { + $dict = array(); + foreach ($arr as $x) { + $dict[$x] = get_enum($x); + } + return $dict; + } else { + return array_map(fn($x) => get_enum($x), $arr); + } + } else { + return $arr; + } } function db_get_ddtext($ddid, $ddval) { @@ -381,7 +464,25 @@ function db_get_opt_box($vid) { return $list; } -function db_get_opt_equip($vid) { +function db_get_opt_equip($vid, $default=NULL) { + global $pdo; + global $g_error; + if (isset($default)) { + $list = $default; + } else { + $list = array(); + } + $sql = "SELECT eid, ename FROM equipment WHERE vid=? ORDER BY ename"; + $sth = $pdo->prepare($sql); + try { + $sth->execute([$vid]); + } catch(PDOException $e) { + $g_error->Add($e->getMessage()); + } + foreach ($sth->fetchAll(PDO::FETCH_NUM) as $rec) { + $list[$rec[0]] = $rec[1]; + } + return $list; } function db_get_opt_manuf($default=NULL) { @@ -504,6 +605,13 @@ function form_view_buttons($script, $id) { echo "
\n"; } +function form_new_buttons($script) { + echo '
', "\n"; + echo '\n"; + echo '', _('Back'), "\n"; + echo "
\n"; +} + function form_edit_buttons($script, $id) { echo '
', "\n"; echo '\n"; @@ -660,6 +768,16 @@ function format_currency($val) { } } +function format_color($color) { + $colstr = '#' . $color . '' ; + return $colstr; +} + function format_filesize($size, $format=2) { switch ($format) { case 1: // short diff --git a/webgui/index.php b/webgui/index.php index ae1add5..187bdd1 100644 --- a/webgui/index.php +++ b/webgui/index.php @@ -78,6 +78,8 @@ switch ($submit = form_get_action()) { $p[':draught_min'] = gpc_get_float($_POST, 'draught_min'); $p[':displacement'] = gpc_get_int($_POST, 'displacement'); $p[':ballast'] = gpc_get_int($_POST, 'ballast'); + $p[':beltpos_aft'] = gpc_get_float($_POST, 'beltpos_aft'); + $p[':beltpos_bow'] = gpc_get_float($_POST, 'beltpos_bow'); $p[':remarks'] = gpc_get_string($_POST, 'remarks', 150); $fields = join(',', array_map(function($s) { return ltrim($s, ':') . '=' . $s; }, array_keys($p))); $sth = $pdo->prepare("UPDATE vessel SET $fields WHERE vid=:vid"); @@ -141,7 +143,7 @@ echo "\n"; // Get current vessel data $sql = "SELECT vesselname, model, loa, lwl, beam, draught, draught_min," - . " displacement, ballast, remarks " + . " displacement, ballast, beltpos_aft, beltpos_bow, remarks " . "FROM vessel " . "WHERE vid=?"; $sth = $pdo->prepare($sql); @@ -199,11 +201,13 @@ $vessel = $sth->fetch();  kg  kg + + role == 'captain') { - echo '', _('Edit'), "\n"; + echo '', _('Edit'), "\n"; } ?>
@@ -219,7 +223,8 @@ if ($user->role == 'captain') { // Statistics // Storage: 0 - default, 1 - tank -$stype = [ 0 => _('Default'), 1 => _('Tank')]; +// $stype = [ 0 => _('Default'), 1 => _('Tank')]; +$stype = db_get_options(3); $sql = "SELECT stype, COUNT(stype) " . "FROM storage " . "WHERE vid=? " @@ -301,7 +306,7 @@ elseif ($action == ACT_ADD): echo '

', _('Add additional yacht'), "

\n"; ?> -
+
@@ -326,7 +331,7 @@ elseif ($action == ACT_EDIT): // ========== VARIANT: edit single record ===================================== $sql = "SELECT vesselname, vtype, model, loa, lwl, beam, draught, draught_min," - . " displacement, ballast, remarks " + . " displacement, ballast, beltpos_aft, beltpos_bow, remarks " . "FROM vessel " . "WHERE vid=?"; $sth = $pdo->prepare($sql); @@ -372,6 +377,14 @@ $vessel = $sth->fetch(PDO::FETCH_OBJ);
+
+ + +
+
+ + +
diff --git a/webgui/inventory.php b/webgui/inventory.php index b12c49f..ef9370e 100644 --- a/webgui/inventory.php +++ b/webgui/inventory.php @@ -26,67 +26,28 @@ switch ($submit = form_get_action()) { case 'del': $action = ACT_DELETE; break; case 'insert': - $invname = gpc_get_string($_POST, 'invname'); - $number = gpc_get_int($_POST, 'number'); - $boxtype = gpc_get_string($_POST, 'boxtype'); - $sid = gpc_get_int($_POST, 'sid'); - $boxid = gpc_get_int($_POST, 'boxid'); - $sql = "INSERT INTO inventory " - . " (invname, invcond, number, boxtype, sid, boxid) " - . "VALUES " - . " (:invname, 'good', :number, :boxtype, :sid, :boxid)"; - $sth = $pdo->prepare($sql); - $sth->bindValue(':invname', $invname, PDO::PARAM_STR); - $sth->bindValue(':number', $number, PDO::PARAM_INT); - $sth->bindValue(':boxtype', $boxtype, PDO::PARAM_STR); - $sth->bindValue(':sid', $sid, PDO::PARAM_INT); - $sth->bindValue(':boxid', $boxid, PDO::PARAM_INT); - try { - $sth->execute(); - } catch (PDOException $e) { - $g_error->Add('SQL-Error: '. $e->getMessage()); - } - $id = $pdo->LastInsertId(); + $p[':invname'] = gpc_get_string($_POST, 'invname'); + $p[':number'] = gpc_get_int($_POST, 'number'); + $p[':boxtype'] = gpc_get_string($_POST, 'boxtype'); + $p[':sid'] = gpc_get_int($_POST, 'sid'); + $p[':boxid'] = gpc_get_int($_POST, 'boxid'); + $p[':invcond'] = 'good'; + $id = db_exec_insert('inventory', $p); $action = ACT_VIEW; break; case 'update': - $invname = gpc_get_string($_POST, 'invname'); - $number = gpc_get_int($_POST, 'number'); - $boxtype = gpc_get_string($_POST, 'boxtype'); - $sid = gpc_get_int($_POST, 'sid'); - $boxid = gpc_get_int($_POST, 'boxid'); - $weight = min(gpc_get_float($_POST, 'weight'), 999.99); // limit max value - $price = gpc_get_currency($_POST, 'price'); - $purchdate = gpc_get_date($_POST, 'purchdate'); - $invcond = gpc_get_string($_POST, 'invcond'); - $sql = "UPDATE inventory " - . "SET invname=:invname," - . " number=:number," - . " boxtype=:boxtype," - . " sid=:sid," - . " boxid=:boxid," - . " weight=:weight," - . " price=:price," - . " purchdate=:purchdate," - . " invcond=:invcond " - . "WHERE invid=:invid"; - $sth = $pdo->prepare($sql); - $sth->bindValue(':invid', $id, PDO::PARAM_INT); - $sth->bindValue(':invname', $invname, PDO::PARAM_STR); - $sth->bindValue(':number', $number, PDO::PARAM_INT); - $sth->bindValue(':boxtype', $boxtype, PDO::PARAM_STR); - $sth->bindValue(':sid', $sid, PDO::PARAM_INT); - $sth->bindValue(':boxid', $boxid, PDO::PARAM_INT); - $sth->bindValue(':weight', $weight); - $sth->bindValue(':price', $price); - $sth->bindValue(':purchdate', $purchdate); - $sth->bindValue(':invcond', $invcond, PDO::PARAM_STR); - try { - $sth->execute(); - } catch (PDOException $e) { - $g_error->Add('SQL-Error: '. $e->getMessage()); - } + $p[':invid'] = $id; + $p[':invname'] = gpc_get_string($_POST, 'invname'); + $p[':number'] = gpc_get_int($_POST, 'number'); + $p[':boxtype'] = gpc_get_string($_POST, 'boxtype'); + $p[':sid'] = gpc_get_int($_POST, 'sid'); + $p[':boxid'] = gpc_get_int($_POST, 'boxid'); + $p[':weight'] = min(gpc_get_float($_POST, 'weight'), 999.99); // limit max value + $p[':price'] = gpc_get_currency($_POST, 'price'); + $p[':purchdate'] = gpc_get_date($_POST, 'purchdate'); + $p[':invcond'] = gpc_get_string($_POST, 'invcond'); + db_exec_update('inventory', $p, 'invid'); $action = ACT_VIEW; break; @@ -287,8 +248,8 @@ $inventory = $sth->fetch(PDO::FETCH_OBJ);
sid); +form_create_select('boxid', _('Box'), $opt_box, $inventory->boxid); ?>
diff --git a/webgui/maintenance.php b/webgui/maintenance.php index 9da6d7d..e94ad65 100644 --- a/webgui/maintenance.php +++ b/webgui/maintenance.php @@ -11,14 +11,7 @@ $pagetitle = _('Maintenance'); $id = gpc_get_int($_REQUEST, 'id', 0); -// Equipment options -$opt_equipment = array( 0 => _('*** unassigned ***')); -$sql = "SELECT eid, ename FROM equipment WHERE vid=? ORDER BY ename"; -$sth = $pdo->prepare($sql); -$sth->execute([$user->vid]); -foreach ($sth->fetchAll() as $row) { - $opt_equipment[$row['eid']] = $row['ename']; -} +$opt_equipment = db_get_opt_equip($user->vid, [0 => _('*** unassigned ***')]); // ========== ACTIONS START =================================================== @@ -32,39 +25,25 @@ switch ($submit = form_get_action()) { case 'del': $action = ACT_DELETE; break; case 'insert': - $eid = gpc_get_int($_POST, 'eid'); - $activities = gpc_get_string($_POST, 'activities', 80); - $sql = "INSERT INTO maintenance " - . " (vid, eid, activities) " - . "VALUES " - . " (:vid, :eid, :activities)"; - $sth = $pdo->prepare($sql); - $sth->bindValue(':vid', $user->vid, PDO::PARAM_INT); - $sth->bindValue(':eid', $eid, PDO::PARAM_INT); - $sth->bindValue(':activities', $activities, PDO::PARAM_STR); - $sth->execute(); - $id = $pdo->LastInsertId(); + $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': - $eid = gpc_get_int($_POST, 'eid'); - $activities = gpc_get_string($_POST, 'activities', 80); - $remarks = gpc_get_string($_POST, 'remarks', 150); - $sql = "UPDATE maintenance " - . "SET activities=:activities," - . " eid=:eid," - . " remarks=:remarks " - . "WHERE maintid=:maintid"; - $sth = $pdo->prepare($sql); - $sth->bindValue(':maintid', $id, PDO::PARAM_INT); - $sth->bindValue(':eid', $eid, PDO::PARAM_INT); - $sth->bindValue(':activities', $activities, PDO::PARAM_STR); - $sth->bindValue(':remarks', $remarks, PDO::PARAM_STR); - $sth->execute(); + $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); + db_exec_update('maintenance', $p, 'maintid'); $action = ACT_VIEW; break; + case 'delete': + break; + default: $g_error->Add(sprintf(_("Unknown function '%s'!"), $submit)); $valid = FALSE; @@ -218,19 +197,7 @@ echo '

', _('Edit Maintenance'), "

\n";
-
- - +eid); ?>
diff --git a/webgui/manual.php b/webgui/manual.php index 6e54188..ec6e8ed 100644 --- a/webgui/manual.php +++ b/webgui/manual.php @@ -99,7 +99,7 @@ zu erfassen.

Stammdaten

Diese Daten ändern sich nicht sehr häufig, sind aber für den Betrieb -essentiell. Stanndaten sind beispielsweise Firmen, Auswahllisten oder +essentiell. Stammdaten sind beispielsweise Firmen, Auswahllisten oder auch der Stauraum.

', _('Add measurement'), "\n"; ?> - +
@@ -237,7 +237,7 @@ $measurement = $sth->fetch(PDO::FETCH_OBJ); echo '

', _('Edit measurement'), "

\n"; ?> - +
diff --git a/webgui/provisions.php b/webgui/provisions.php index dbe5d5b..917ffb2 100644 --- a/webgui/provisions.php +++ b/webgui/provisions.php @@ -136,7 +136,7 @@ elseif ($action == ACT_ADD): echo '

', _('Add provisions'), "

\n"; ?> - +
@@ -196,7 +196,7 @@ $prov = $sth->fetch(PDO::FETCH_OBJ); echo '

', _('Edit provision'), "

\n"; ?> - +
diff --git a/webgui/search.php b/webgui/search.php index 9149430..0922f04 100644 --- a/webgui/search.php +++ b/webgui/search.php @@ -19,7 +19,7 @@ echo "

$pagetitle

\n";

Search will be implemented later. This page is currently just a placeholder.

- +
diff --git a/webgui/storage.php b/webgui/storage.php index 387d7f7..1084505 100644 --- a/webgui/storage.php +++ b/webgui/storage.php @@ -178,7 +178,7 @@ echo '

', _('Add Storage'), "

\n"; ?> - +
diff --git a/webgui/task.php b/webgui/task.php index 7bbef57..70c9e1a 100644 --- a/webgui/task.php +++ b/webgui/task.php @@ -117,7 +117,7 @@ elseif ($action == ACT_ADD): echo '

', _('Add Task'), "

\n"; ?> - + fetch(PDO::FETCH_OBJ); echo '

', _('Edit Task'), "

\n"; ?> - +