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:
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'}