partkeepr

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

commit 2c3292cd43de44bd7b2046224fc8ea84b7ee03b4
parent 4843bb4836878326afd1e62e4347533e72efb877
Author: Felicitus <felicitus@felicitus.org>
Date:   Mon, 26 Mar 2012 00:48:36 +0200

Added attachment counts to the result set

Diffstat:
Msrc/backend/de/RaumZeitLabor/PartKeepr/Part/PartManager.php | 20++++++++++++++++++++
1 file changed, 20 insertions(+), 0 deletions(-)

diff --git a/src/backend/de/RaumZeitLabor/PartKeepr/Part/PartManager.php b/src/backend/de/RaumZeitLabor/PartKeepr/Part/PartManager.php @@ -13,6 +13,7 @@ use de\RaumZeitLabor\PartKeepr\UploadedFile\TempUploadedFile, de\RaumZeitLabor\PartKeepr\StorageLocation\StorageLocation, de\RaumZeitLabor\PartKeepr\StorageLocation\StorageLocationManager, de\RaumZeitLabor\PartKeepr\Part\Part, + Doctrine\ORM\Query, de\RaumZeitLabor\PartKeepr\PartUnit\PartUnitManager, de\RaumZeitLabor\PartKeepr\Distributor\Distributor, de\RaumZeitLabor\PartKeepr\Manufacturer\Manufacturer, @@ -81,6 +82,25 @@ class PartManager extends AbstractManager { } } + /** + * Processes the result after it was retrieved. In the default configuration, it returns an array result, or + * if no query fields are specified, it tries to serialize all objects. + */ + protected function getResult (Query $query) { + $result = parent::getResult($query); + + /* Add attachment counts to the result set */ + foreach ($result as $key => $item) { + $dql = "SELECT COUNT(pa) FROM de\RaumZeitLabor\PartKeepr\Part\PartAttachment pa WHERE pa.part = :part"; + $query = PartKeepr::getEM()->createQuery($dql); + $query->setParameter("part", $item["id"]); + + $result[$key]["attachmentCount"] = $query->getSingleScalarResult(); + } + + return $result; + } + public function addOrUpdatePart ($aParameters) { if (!array_key_exists("quantity", $aParameters)) {