Esempio n. 1
0
 /**
  * @param Form $form
  * @param int $moneyAccountId
  * @return Form
  */
 public function fillData($form, $moneyAccountId)
 {
     /** @var UserManager $userDao */
     $userDao = new UserManager($this->getServiceLocator(), '\\ArrayObject');
     if ($moneyAccountId) {
         $users = $this->getMoneyAccountUsersInOperationTypes($moneyAccountId);
         $usersForView = $form->get('view_transactions')->getOption('value_options');
         if (isset($users[self::OPERATION_VIEW_TRANSACTION]) && count($users[self::OPERATION_VIEW_TRANSACTION])) {
             foreach ($users[self::OPERATION_VIEW_TRANSACTION] as $relUserId) {
                 if (!isset($usersForView[$relUserId])) {
                     $userDomain = $userDao->getUserById($relUserId, true);
                     $usersForView[$relUserId] = $userDomain['firstname'] . ' ' . $userDomain['lastname'];
                     $form->get('view_transactions')->setOptions(['value_options' => $usersForView]);
                 }
             }
         }
         $usersForAdd = $form->get('add_transactions')->getOption('value_options');
         if (isset($users[self::OPERATION_ADD_TRANSACTION]) && count($users[self::OPERATION_ADD_TRANSACTION])) {
             foreach ($users[self::OPERATION_ADD_TRANSACTION] as $relUserId) {
                 if (!isset($usersForAdd[$relUserId])) {
                     $userDomain = $userDao->getUserById($relUserId, true);
                     $usersForAdd[$relUserId] = $userDomain['firstname'] . ' ' . $userDomain['lastname'];
                     $form->get('add_transactions')->setOptions(['value_options' => $usersForAdd]);
                 }
             }
         }
         $transactionManagers = $form->get('manage_transactions')->getOption('value_options');
         if (isset($users[self::OPERATION_MANAGE_TRANSACTION]) && count($users[self::OPERATION_MANAGE_TRANSACTION])) {
             foreach ($users[self::OPERATION_MANAGE_TRANSACTION] as $relUserId) {
                 if (!isset($transactionManagers[$relUserId])) {
                     $userDomain = $userDao->getUserById($relUserId, true);
                     $transactionManagers[$relUserId] = $userDomain['firstname'] . ' ' . $userDomain['lastname'];
                     $form->get('manage_transactions')->setOptions(['value_options' => $transactionManagers]);
                 }
             }
         }
         $accountManagers = $form->get('manage_transactions')->getOption('value_options');
         if (isset($users[self::OPERATION_MANAGE_ACCOUNT]) && count($users[self::OPERATION_MANAGE_ACCOUNT])) {
             foreach ($users[self::OPERATION_MANAGE_ACCOUNT] as $relUserId) {
                 if (!isset($accountManagers[$relUserId])) {
                     $userDomain = $userDao->getUserById($relUserId, true);
                     $accountManagers[$relUserId] = $userDomain['firstname'] . ' ' . $userDomain['lastname'];
                     $form->get('manage_transactions')->setOptions(['value_options' => $accountManagers]);
                 }
             }
         }
         $form->setData(['view_transactions' => isset($users[self::OPERATION_VIEW_TRANSACTION]) ? $users[self::OPERATION_VIEW_TRANSACTION] : [], 'add_transactions' => isset($users[self::OPERATION_ADD_TRANSACTION]) ? $users[self::OPERATION_ADD_TRANSACTION] : [], 'manage_transactions' => isset($users[self::OPERATION_MANAGE_TRANSACTION]) ? $users[self::OPERATION_MANAGE_TRANSACTION] : [], 'manage_account' => isset($users[self::OPERATION_MANAGE_ACCOUNT]) ? $users[self::OPERATION_MANAGE_ACCOUNT] : []]);
     }
     return $form;
 }