diff --git a/langs/en/items.json b/langs/en/items.json index 8089631..d824c10 100644 --- a/langs/en/items.json +++ b/langs/en/items.json @@ -10,6 +10,7 @@ "itemid": "Item ID", "id": "ID", "Edit Item": "Edit Item", + "stockid": "Stock ID", "adding stock": "Adding stock for {item}", "removing stock": "Removing stock from {item}" } diff --git a/langs/en/reports.json b/langs/en/reports.json index bb824a3..c76c7f1 100644 --- a/langs/en/reports.json +++ b/langs/en/reports.json @@ -5,5 +5,6 @@ "choose an option": "Choose an option", "csv file": "CSV text file", "ods file": "ODS spreadsheet", - "html file": "HTML web page" + "html file": "HTML web page", + "Stock": "Stock movements" } diff --git a/lib/reports.php b/lib/reports.php index 182272d..2283294 100644 --- a/lib/reports.php +++ b/lib/reports.php @@ -151,6 +151,49 @@ function getLocationReport(): Report { return $report; } +function getStockReport($filter = []): Report { + global $database, $Strings; + $stock = $database->select( + "stock", [ + "[>]items" => ["itemid"] + ], [ + "stockid", + "itemid", + "name", + 'timestamp', + 'stock', + 'stock.text1', + 'stock.userid' + ]); + $report = new Report($Strings->get("Stock", false)); + $report->setHeader([ + $Strings->get("stockid", false), + $Strings->get("itemid", false), + $Strings->get("name", false), + $Strings->get("date", false), + $Strings->get("amount", false), + $Strings->get("description", false), + $Strings->get("changed by", false) + ]); + for ($i = 0; $i < count($stock); $i++) { + $user = ""; + if (!is_null($stock[$i]["userid"])) { + $u = new User($stock[$i]["userid"]); + $user = $u->getName() . " (" . $u->getUsername() . ')'; + } + $report->addDataRow([ + $stock[$i]["stockid"], + $stock[$i]["itemid"], + $stock[$i]["name"], + $stock[$i]["timestamp"], + $stock[$i]["stock"], + $stock[$i]["text1"], + $user + ]); + } + return $report; +} + function getReport($type): Report { switch ($type) { case "item": @@ -165,6 +208,9 @@ function getReport($type): Report { case "itemstock": return getItemReport(["AND" => ["qty[<]want", "want[>]" => 0]]); break; + case "stock": + return getStockReport(); + break; default: return new Report("error", ["ERROR"], ["Invalid report type."]); } @@ -173,4 +219,4 @@ function getReport($type): Report { function generateReport($type, $format) { $report = getReport($type); $report->output($format); -} \ No newline at end of file +} diff --git a/pages/edititem.php b/pages/edititem.php index 1b1d8ee..1d2f054 100644 --- a/pages/edititem.php +++ b/pages/edititem.php @@ -165,7 +165,7 @@ if (!empty($VARS['id'])) {