public function createleadsAction() { set_time_limit(300); $dbSql = $this->getServiceLocator()->get('dbSql'); $dbAdapter = $this->getServiceLocator()->get('dbAdapter'); $select = $dbSql->select(['a' => \Crm\Model\AccountMapper::TABLE_NAME]); $select->join(['l' => \Crm\Model\LeadMapper::TABLE_NAME], 'a.id=l.accountId', [], $select::JOIN_LEFT); $select->where(['l.id IS NULL']); $select->order(['a.id']); $query = $dbSql->buildSqlString($select); echo $query; echo '<br/>'; $rows = $dbAdapter->query($query, $dbAdapter::QUERY_MODE_EXECUTE); if ($rows->count()) { $currentDate = DateBase::getCurrentDate(); $currentDateTime = DateBase::getCurrentDateTime(); $userId = $this->user()->getIdentity(); $leadMapper = $this->getServiceLocator()->get('\\Crm\\Model\\LeadMapper'); $result = []; $companyMapper = $this->getServiceLocator()->get('\\Company\\Model\\CompanyMapper'); foreach ($rows as $row) { $row = (array) $row; $lead = new \Crm\Model\Lead(); $lead->exchangeArray($row); $lead->setId(null); $companyIdsInGroup = $companyMapper->getAllCompanyIdsInGroup(1); $lead->addOption('companyIds', $companyIdsInGroup); if (!$leadMapper->isExisted($lead)) { $lead->setCreatedById($userId); $lead->setCreatedDate($currentDate); $lead->setCreatedDateTime($currentDateTime); $lead->setAccountId($row['id']); $lead->setIsConverted(1); $leadMapper->save($lead); } elseif (!$lead->getAccountId()) { $lead->setAccountId($row['id']); $leadMapper->save($lead); } $leadCompany = new \Crm\Model\Lead\Company(); $leadCompany->setCompanyId($lead->getCompanyId()); $leadCompany->setLeadId($lead->getId()); $leadCompanyMapper = $this->getServiceLocator()->get('\\Crm\\Model\\Lead\\CompanyMapper'); $leadCompanyMapper->isExisted($leadCompany); $leadCompany->setAccountId($lead->getAccountId()); $leadCompany->setOpportunityId($lead->getOpportunityId()); $leadCompany->setLastActivityDateTime($row['createdDateTime']); $leadCompanyMapper->save($leadCompany); $result[$row['id']] = $lead->getId(); } $this->getViewModel()->setVariable('result', $result); } return $this->getViewModel(); }