partkeepr

fork of partkeepr
git clone https://git.e1e0.net/partkeepr.git
Log | Files | Refs | Submodules | README | LICENSE

commit 4d7e4e7b2f5d4dbdd207b67fd8262f94acc74a84
parent a3ea8d80d067205cecac1f47454406bd47ec8b0a
Author: Felicitus <felicitus@felicitus.org>
Date:   Wed,  4 Apr 2012 08:59:09 +0200

Display projects and remarks for each project in the project report grid

Diffstat:
Msrc/backend/de/RaumZeitLabor/PartKeepr/ProjectReport/ProjectReportService.php | 24+++++++++++++++++++-----
Msrc/frontend/js/Components/Project/ProjectReport.js | 8++++++++
Msrc/frontend/js/Models/ProjectReport.js | 4+++-
3 files changed, 30 insertions(+), 6 deletions(-)

diff --git a/src/backend/de/RaumZeitLabor/PartKeepr/ProjectReport/ProjectReportService.php b/src/backend/de/RaumZeitLabor/PartKeepr/ProjectReport/ProjectReportService.php @@ -32,8 +32,9 @@ class ProjectReportService extends Service implements RestfulService { // Loop over all reports and calculate the overall quantities foreach ($reports as $report) { - $dql = "SELECT pp.quantity, p.id FROM "; - $dql .= "de\RaumZeitLabor\PartKeepr\Project\ProjectPart pp JOIN pp.part p WHERE pp.project = :project"; + $dql = "SELECT pp.quantity, pro.name AS projectname, pp.remarks, p.id FROM "; + $dql .= "de\RaumZeitLabor\PartKeepr\Project\ProjectPart pp JOIN pp.part p "; + $dql .= "JOIN pp.project pro WHERE pp.project = :project"; $query = PartKeepr::getEM()->createQuery($dql); $query->setParameter("project", $report["project"]); @@ -43,7 +44,12 @@ class ProjectReportService extends Service implements RestfulService { if (array_key_exists($result["id"], $aPartResults)) { // Only update the quantity of the part - $aPartResults[$result["id"]]["quantity"] += $result["quantity"] * $report["amount"]; + $aPartResults[$result["id"]]["quantity"] += $result["quantity"] * $report["amount"]; + $aPartResults[$result["id"]]["projects"][] = $result["projectname"]; + + if ($result["remarks"] != "") { + $aPartResults[$result["id"]]["remarks"][] = $result["projectname"]. ": " .$result["remarks"]; + } } else { // Create a full resultset $aPartResults[$result["id"]] = array( @@ -51,8 +57,14 @@ class ProjectReportService extends Service implements RestfulService { "part" => array("response" => array("totalCount" => 1, "data" => $part->serialize())), "storageLocation_name" => $part->getStorageLocation()->getName(), "available" => $part->getStockLevel(), - "sum_order" => 0 + "sum_order" => 0, + "projects" => array($result["projectname"]), + "remarks" => array() ); + + if ($result["remarks"] != "") { + $aPartResults[$result["id"]]["remarks"] = array($result["projectname"]. ": " .$result["remarks"]); + } } } } @@ -68,7 +80,9 @@ class ProjectReportService extends Service implements RestfulService { } $partResult["missing"] = $missing; - + $partResult["remarks"] = implode(", ", $partResult["remarks"]); + $partResult["projects"] = implode(", ", $partResult["projects"]); + $aFinalResult[] = $partResult; } diff --git a/src/frontend/js/Components/Project/ProjectReport.js b/src/frontend/js/Components/Project/ProjectReport.js @@ -64,6 +64,14 @@ Ext.define('PartKeepr.ProjectReportView', { }, flex: 1 },{ + header: i18n("Remarks"), + dataIndex: 'remarks', + flex: 1 + },{ + header: i18n("Projects"), + dataIndex: 'projects', + flex: 1 + },{ header: i18n("Storage Location"), dataIndex: 'storageLocation_name', width: 100 },{ diff --git a/src/frontend/js/Models/ProjectReport.js b/src/frontend/js/Models/ProjectReport.js @@ -9,7 +9,9 @@ Ext.define("PartKeepr.ProjectReport", { { name: 'available', type: 'int'}, { name: 'missing', type: 'int'}, { name: 'distributor_order_number', type: 'string'}, - { name: 'sum_order', type: 'float'} + { name: 'sum_order', type: 'float'}, + { name: 'projects', type: 'string'}, + { name: 'remarks', type: 'string'} ], hasMany: [ { model: 'PartKeepr.Part', name: 'part'}