private function insertaccount($accounts, $companyId, $parentId = null) { if (!$accounts || !count($accounts)) { return null; } $accountMapper = $this->getServiceLocator()->get('\\Accounting\\Model\\AccountMapper'); foreach ($accounts as $accountArray) { $account = new \Accounting\Model\Account(); $account->setCode($accountArray['code']); $account->setName($accountArray['name']); $account->setParentId($parentId); $account->setCompanyId($companyId); if (!$accountMapper->isExisted($account)) { $account->setStatus(\Accounting\Model\Account::STATUS_ACTIVE); $account->setCreatedById($this->user()->getIdentity()); $account->setCreatedDateTime(DateBase::getCurrentDateTime()); $accountMapper->save($account); } if (isset($accountArray['childs']) && count($accountArray['childs'])) { $this->insertaccount($accountArray['childs'], $companyId, $account->getId()); } } }
public function suggestAction() { $q = $this->getRequest()->getPost('q'); //$q = $this->params()->fromQuery('q'); $account = new Account(); $account->setName($q); $jsonModel = new JsonModel(); if (!$q) { $jsonModel->setVariables(['code' => 1, 'data' => []]); return $jsonModel; } $accountMapper = $this->getServiceLocator()->get('Accounting\\Model\\AccountMapper'); $jsonModel->setVariables(['code' => 1, 'data' => $accountMapper->suggest($account)]); return $jsonModel; }