namibia
master
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
<?php namespace Config\Service; class RegionalManager extends \Config\DataBin\RegionalManager { /** * Contract for custom select list. * @param object|null $jobRecord * @param array $input * @return \Workspace\Contract\Recurring */ public function contractJoinedSelectList($jobRecord, array $input = array()) { $options = new \Workspace\UseCase\Options(); $requirement = new \Workspace\UseCase\Requirement(); $requirement->addRequiredInput(array( 'Filter' => array( 'group' => 'Id', 'region' => 'Id' ) )); return new \Workspace\Contract\Recurring($options, $requirement); } /** * A custom select list. * @param object|null $jobRecord * @param \Workspace\Utility\ServiceInputParams $contract * @return array */ public function executeJoinedSelectList($jobRecord, \Workspace\Utility\ServiceInputParams $contract) { $items = $this->em->createQuery( 'SELECT partial regionalManager.{id,firstName,familyName} ' . 'FROM Config\Entity\RegionalManager regionalManager ' . 'JOIN regionalManager.group grp ' . 'JOIN grp.companies company ' . 'WHERE IDENTITY(regionalManager.group) = :groupId ' . ' AND IDENTITY(company.region) = :regionId ' . 'ORDER BY regionalManager.firstName, regionalManager.familyName ASC' ) ->setParameter('groupId', $contract->data->Filter['group']) ->setParameter('regionId', $contract->data->Filter['region']) ->getArrayResult(); $data = array(); $ids = array(); foreach ($items as $item) { if (isset($ids[$item['id']])) { continue; } $ids[$item['id']] = true; $data[] = array( 'value' => $item['id'], 'label' => $item['firstName'] . ' ' . $item['familyName'] ); } return $contract->success( 'List retrieved.', $data ); } } |
Commits for namibiamodule/Config/src/Config/Service/RegionalManager.php
Revision | Author | Commited | Message |
---|---|---|---|
df0489 ... | Mark | Fri 14 Oct, 2016 10:01:00 +0000 | initial commit |