Ejemplo n.º 1
0
 /**
  * @return JsonModel
  */
 public function ajaxMoneyAccountListAction()
 {
     /** @var BackofficeAuthenticationService $auth */
     $auth = $this->getServiceLocator()->get('library_backoffice_auth');
     /** @var MoneyAccountService $moneyAccountService */
     $moneyAccountService = $this->getServiceLocator()->get('service_money_account');
     $params = $this->params();
     /** @var \DDD\Domain\MoneyAccount\MoneyAccount[]|ResultSet $moneyAccounts */
     $moneyAccounts = $moneyAccountService->moneyAccountList((int) $params->fromQuery('iDisplayStart'), (int) $params->fromQuery('iDisplayLength'), (int) $params->fromQuery('iSortCol_0'), $params->fromQuery('sSortDir_0'), $params->fromQuery('sSearch'), $params->fromQuery('all', '1'), $auth->getIdentity()->id);
     $tableData = [];
     if ($moneyAccounts->count()) {
         foreach ($moneyAccounts as $moneyAccount) {
             $router = $this->getEvent()->getRouter();
             $editUrl = $router->assemble(['controller' => 'money-account', 'action' => 'edit', 'id' => $moneyAccount->getId()], ['name' => 'finance/default']);
             $transactionsUrl = $router->assemble(['controller' => 'money-account', 'action' => 'transactions', 'id' => $moneyAccount->getId()], ['name' => 'finance/default']);
             $editBtn = '';
             $transactionsBtn = '';
             if ($auth->hasRole(Roles::ROLE_MONEY_ACCOUNT_GLOBAL_MANAGER) || $moneyAccount->isManager()) {
                 $editBtn = '<a class="btn btn-xs btn-primary" href="' . $editUrl . '" target="_blank" data-html-content="Edit"></a>';
                 $transactionsBtn = '<a class="btn btn-xs btn-primary" href="' . $transactionsUrl . '" target="_blank">Transactions</a>';
             } else {
                 if ($auth->hasRole(Roles::ROLE_MONEY_ACCOUNT_GLOBAL_MANAGER) || $moneyAccount->hasTransactionsView()) {
                     $transactionsBtn = '<a class="btn btn-xs btn-primary" href="' . $transactionsUrl . '" target="_blank">Transactions</a>';
                 } else {
                     continue;
                 }
             }
             $status = $moneyAccount->getActive() ? '<span class="label label-success">Active</span>' : '<span class="label label-default">Inactive</span>';
             array_push($tableData, ['<div class="text-center">' . $status . '</div>', $moneyAccount->getName(), MoneyAccountService::getMoneyAccountTypeById($moneyAccount->getType()), number_format($moneyAccount->getBalance(), 2), $moneyAccount->getCurrencyName(), $editBtn, $transactionsBtn]);
         }
     }
     $moneyAccountCount = $moneyAccountService->moneyAccountCount($params->fromQuery('sSearch'), $params->fromQuery('all', '1'));
     $resultArray = ['sEcho' => $params->fromQuery('sEcho'), 'iTotalRecords' => count($tableData), 'iTotalDisplayRecords' => count($tableData), 'iDisplayStart' => $params->fromQuery('iDisplayStart'), 'iDisplayLength' => (int) $params->fromQuery('iDisplayLength'), 'aaData' => $tableData];
     return new JsonModel($resultArray);
 }