/** * @author Kienn * convert danh mục tài liệu cá nhân */ public function officeuserdocumentAction() { // tạo danh mục tài liệu list($adapter, $sql) = $this->createOfficeAdapter(); // lấy ra người tạo tương ứng $select = $sql->select(['d' => 'documents']); $select->join(['u' => 'users'], 'd.created_by_id = u.ID', ['personnel_id']); $select->where(['folder' => 'USER']); $select->where(['type' => 'FILE']); $select->group(['d.created_by_id']); $query = $sql->buildSqlString($select); $rows = $adapter->query($query, $adapter::QUERY_MODE_EXECUTE); $usersRefer = []; $companyRefer = []; $employeeMapper = $this->getServiceLocator()->get('\\Hrm\\Model\\EmployeeMapper'); if ($rows->count()) { foreach ($rows->toArray() as $row) { if (!isset($usersRefer[$row['created_by_id']])) { $employee = new \Hrm\Model\Employee(); $employee->setOneofficeId($row['personnel_id']); if ($employeeMapper->isExistedOneofficeId($employee) && $employee->getUserId()) { $usersRefer[$row['created_by_id']] = $employee; } else { continue; } } } } $categoryMapper = $this->getServiceLocator()->get('\\Document\\Model\\DocumentCategoryMapper'); $documentMapper = $this->getServiceLocator()->get('\\Document\\Model\\DocumentMapper'); $matchCategory = []; foreach ($usersRefer as $officeUserId => $employee) { $select = $sql->select(['d' => 'documents']); $select->where(['folder' => 'USER']); $select->where(['type' => 'FILE']); $select->where(['created_by_id' => $officeUserId]); $query = $sql->buildSqlString($select); $rows = $adapter->query($query, $adapter::QUERY_MODE_EXECUTE); if ($rows->count()) { foreach ($rows->toArray() as $row) { //tìm kiếm danh mục $categoryId = null; if ($row['parent_id'] && !isset($matchCategory[$row['parent_id']])) { $category = new \Document\Model\DocumentCategory(); $category->setOneofficeId($row['parent_id']); if ($categoryMapper->isExistedOneofficeCode($category)) { $matchCategory[$row['parent_id']] = $category->getId(); } } $document = new \Document\Model\Document(); $document->setCreatedById($employee->getUserId()); $document->setCompanyId($employee->getCompanyId()); if ($row['parent_id'] && isset($matchCategory[$row['parent_id']])) { $document->setCategoryId($matchCategory[$row['parent_id']]); } $document->setType(\Document\Model\Document::TYPE_DOCUMENT); $document->setOneofficeId($row['ID']); $document->setOwnerType(\Document\Model\Document::OWNERTYPE_PERSONAL); $document->setName($row['title']); $document->setContent($row['desc']); $document->setCreatedDateTime($row['date_created']); if (!$documentMapper->isExisted($document)) { $documentMapper->save($document); echo 'Tạo mới document ' . $document->getId() . '<br/>'; } } } } echo 'done!'; die; }