public function loadcategoriesAction()
 {
     $companyId = $this->getRequest()->getPost('companyId');
     if (!$companyId) {
         $companyId = $this->user()->getCompanyId();
     } else {
         if (!$this->company()->canManage($companyId)) {
             return $this->getJsonModel()->setVariables(array('code' => 0, 'messages' => ['Bạn không được quyền quản lí doanh nghiệp này']));
         }
     }
     $expenseCategory = new \Accounting\Model\ExpenseCategory();
     $expenseCategory->setCompanyId($companyId);
     $expenseCategoryMapper = $this->getServiceLocator()->get('\\Accounting\\Model\\ExpenseCategoryMapper');
     $tree = new \Home\Model\Tree();
     $categoies = $tree->toArrayRecusived($expenseCategoryMapper->fetchAll($expenseCategory));
     $data = [];
     if ($categoies) {
         foreach ($categoies as $expenseCategory) {
             $data[] = array('id' => $expenseCategory->getId(), 'name' => $expenseCategory->getName(), 'code' => $expenseCategory->getCode(), 'ord' => $expenseCategory->getOption('ord'), 'displayName' => str_repeat('--', $expenseCategory->getOption('ord') ?: 0) . $expenseCategory->getName());
         }
     }
     return $this->getJsonModel()->setVariables(array('code' => 1, 'data' => $data));
 }
 public function suggestAction()
 {
     $q = $this->getRequest()->getPost('q');
     //$q = $this->params()->fromQuery('q');
     $expenseCategory = new ExpenseCategory();
     $expenseCategory->setName($q);
     $expenseCategory->setCompanyId($this->getRequest()->getPost('companyId'));
     $jsonModel = new JsonModel();
     if (!$q) {
         $jsonModel->setVariables(['code' => 1, 'data' => []]);
         return $jsonModel;
     }
     $expenseCategoryMapper = $this->getServiceLocator()->get('Accounting\\Model\\ExpenseCategoryMapper');
     $jsonModel->setVariables(['code' => 1, 'data' => $expenseCategoryMapper->suggest($expenseCategory)]);
     return $jsonModel;
 }