2 namespace Config\Service;
6 class RegionalManager extends \Config\DataBin\RegionalManager
11 * Contract for custom select list.
12 * @param object|null $jobRecord
14 * @return \Workspace\Contract\Recurring
16 public function contractJoinedSelectList($jobRecord, array $input = array())
19 $options = new \Workspace\UseCase\Options();
20 $requirement = new \Workspace\UseCase\Requirement();
21 $requirement->addRequiredInput(array(
27 return new \Workspace\Contract\Recurring($options, $requirement);
31 * A custom select list.
32 * @param object|null $jobRecord
33 * @param \Workspace\Utility\ServiceInputParams $contract
36 public function executeJoinedSelectList($jobRecord, \Workspace\Utility\ServiceInputParams $contract)
38 $items = $this->em->createQuery(
39 'SELECT partial regionalManager.{id,firstName,familyName} '
40 . 'FROM Config\Entity\RegionalManager regionalManager '
41 . 'JOIN regionalManager.group grp '
42 . 'JOIN grp.companies company '
43 . 'WHERE IDENTITY(regionalManager.group) = :groupId '
44 . ' AND IDENTITY(company.region) = :regionId '
45 . 'ORDER BY regionalManager.firstName, regionalManager.familyName ASC'
47 ->setParameter('groupId', $contract->data->Filter['group'])
48 ->setParameter('regionId', $contract->data->Filter['region'])
52 foreach ($items as $item)
54 if (isset($ids[$item['id']]))
58 $ids[$item['id']] = true;
60 'value' => $item['id'],
61 'label' => $item['firstName'] . ' ' . $item['familyName']
64 return $contract->success(