From f3899029f7eff3beea0ca1e7709dc6188c788467 Mon Sep 17 00:00:00 2001 From: Skylar Ittner Date: Tue, 5 Sep 2017 22:35:35 -0600 Subject: [PATCH] Add desired quantity tracking (Close #2) --- action.php | 8 ++++++++ database.mwb | Bin 10329 -> 10268 bytes lang/en_us.php | 9 ++++++++- lang/messages.php | 4 ++++ lib/getitemtable.php | 34 +++++++++++++++++++++++++--------- pages/edititem.php | 10 +++++++++- pages/home.php | 24 ++++++++---------------- pages/items.php | 11 +++++++++++ static/js/items.js | 6 ++++++ 9 files changed, 79 insertions(+), 27 deletions(-) diff --git a/action.php b/action.php index 6e375fb..79378fd 100644 --- a/action.php +++ b/action.php @@ -47,6 +47,13 @@ switch ($VARS['action']) { } if (is_empty($VARS['qty'])) { $VARS['qty'] = 1; + } else if (!is_numeric($VARS['qty'])) { + returnToSender('field_nan'); + } + if (is_empty($VARS['want'])) { + $VARS['want'] = 0; + } else if (!is_numeric($VARS['want'])) { + returnToSender('field_nan'); } if (!$database->has('categories', ['catid' => $VARS['cat']])) { returnToSender('invalid_category'); @@ -71,6 +78,7 @@ switch ($VARS['action']) { 'catid' => $VARS['cat'], 'locid' => $VARS['loc'], 'qty' => $VARS['qty'], + 'want' => $VARS['want'], 'userid' => $userid ]; diff --git a/database.mwb b/database.mwb index d435fec238c58389e130640d8342c962253627e4..bcb3d74df6ef98822483dcae8b03f3d2e33c1841 100644 GIT binary patch delta 10002 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 FKL8sZnK=Le diff --git a/lang/en_us.php b/lang/en_us.php index 3fadc65..5730f3c 100644 --- a/lang/en_us.php +++ b/lang/en_us.php @@ -77,5 +77,12 @@ define("STRINGS", [ "placeholder location name" => "Over the Hills", "description" => "Description", "notes" => "Notes", - "comments" => "Comments" + "comments" => "Comments", + "minwant" => "Minimum On Hand", + "want" => "Need", + "field not a number" => "You entered something that isn't a number when a number was expected.", + "understocked items" => "Understocked Items", + "view understocked" => "View Understocked", + "only showing understocked" => "Only showing understocked items.", + "show all items" => "Show all items" ]); \ No newline at end of file diff --git a/lang/messages.php b/lang/messages.php index 055b753..52ed211 100644 --- a/lang/messages.php +++ b/lang/messages.php @@ -69,4 +69,8 @@ define("MESSAGES", [ "string" => "location in use", "type" => "danger" ], + "field_nan" => [ + "string" => "field not a number", + "type" => "danger" + ] ]); diff --git a/lib/getitemtable.php b/lib/getitemtable.php index 1f58cb0..c8240e7 100644 --- a/lib/getitemtable.php +++ b/lib/getitemtable.php @@ -8,11 +8,18 @@ require_once __DIR__ . '/userinfo.php'; header("Content-Type: application/json"); +$showwant = ($VARS['show_want'] == 1); + $out = []; $out['draw'] = intval($VARS['draw']); -$out['recordsTotal'] = $database->count('items'); +if ($showwant) { + $out['recordsTotal'] = $database->count('items', ["AND" => ["qty[<]want", "want[>]" => 0]]); +} else { + $out['recordsTotal'] = $database->count('items'); +} + $filter = false; // sort @@ -40,25 +47,33 @@ switch ($VARS['order'][0]['column']) { case 7: $order = ["qty" => $sortby]; break; + case 8: + $order = ["want" => $sortby]; + break; // Note: We're not going to sort by assigned user. It's too hard. Maybe later. } // search if (!is_empty($VARS['search']['value'])) { $filter = true; - $wherenolimit = [ - "OR" => [ - "name[~]" => $VARS['search']['value'], - "catname[~]" => $VARS['search']['value'], - "locname[~]" => $VARS['search']['value'], - "code1[~]" => $VARS['search']['value'], - "code2[~]" => $VARS['search']['value'] - ] + $wherenolimit = []; + if ($showwant) { + $wherenolimit["AND"] = ["qty[<]want", "want[>]" => 0]; + } + $wherenolimit["AND"]["OR"] = [ + "name[~]" => $VARS['search']['value'], + "catname[~]" => $VARS['search']['value'], + "locname[~]" => $VARS['search']['value'], + "code1[~]" => $VARS['search']['value'], + "code2[~]" => $VARS['search']['value'] ]; $where = $wherenolimit; $where["LIMIT"] = [$VARS['start'], $VARS['length']]; } else { $where = ["LIMIT" => [$VARS['start'], $VARS['length']]]; + if ($showwant) { + $where["AND"] = ["qty[<]want", "want[>]" => 0]; + } } if (!is_null($order)) { $where["ORDER"] = $order; @@ -77,6 +92,7 @@ $items = $database->select('items', [ 'code1', 'code2', 'qty', + 'want', 'userid' ], $where); diff --git a/pages/edititem.php b/pages/edititem.php index eeed64f..e092ce3 100644 --- a/pages/edititem.php +++ b/pages/edititem.php @@ -18,6 +18,7 @@ $itemdata = [ 'text2' => '', 'text3' => '', 'qty' => 1, + 'want' => 0, 'userid' => '']; $editing = false; @@ -46,6 +47,7 @@ if (!is_empty($VARS['id'])) { 'locname', 'loccode', 'qty', + 'want', 'userid' ], [ 'itemid' => $VARS['id'] @@ -123,12 +125,18 @@ if (!is_empty($VARS['id'])) {
-
+
+
+
+ + +
+
diff --git a/pages/home.php b/pages/home.php index ab43ffe..90d28bd 100644 --- a/pages/home.php +++ b/pages/home.php @@ -11,29 +11,21 @@ redirectifnotloggedin();

count('items'); ?>

-
-
+ count('items', ["AND" => ["qty[<]want", "want[>]" => 0]]); + ?> +
"> +
-

count('locations'); ?>

+

-
-
-
-
-
-
-

count('categories'); ?>

-
-
diff --git a/pages/items.php b/pages/items.php index 83c9b39..f071c08 100644 --- a/pages/items.php +++ b/pages/items.php @@ -8,6 +8,13 @@ redirectifnotloggedin(); + + +
 
+var filter = null;\n"; +} +?> @@ -19,6 +26,7 @@ redirectifnotloggedin(); + @@ -36,6 +44,7 @@ redirectifnotloggedin(); 'code1', 'code2', 'qty', + 'want', 'userid' ], ["LIMIT" => 100]); $usercache = []; @@ -60,6 +69,7 @@ redirectifnotloggedin(); + + diff --git a/static/js/items.js b/static/js/items.js index 52e8d11..8e8000b 100644 --- a/static/js/items.js +++ b/static/js/items.js @@ -34,6 +34,11 @@ var itemtable = $('#itemtable').DataTable({ serverSide: true, ajax: { url: "lib/getitemtable.php", + data: function (d) { + if (filter == "stock") { + d.show_want = 1; + } + }, dataFilter: function (data) { var json = jQuery.parseJSON(data); json.data = []; @@ -47,6 +52,7 @@ var itemtable = $('#itemtable').DataTable({ row.code1, row.code2, row.qty, + row.want, row.username ]); });