Exemplo n.º 1
0
 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();
 }