/**
  * @param array        $parameters
  * @param Lead         $lead
  * @param CompanyModel $companyModel
  *
  * @return array
  */
 public static function identifyLeadsCompany($parameters, Lead $lead, CompanyModel $companyModel)
 {
     $companyName = $companyDomain = null;
     $leadAdded = false;
     if (isset($parameters['company'])) {
         $companyName = filter_var($parameters['company'], FILTER_SANITIZE_FULL_SPECIAL_CHARS);
     } elseif (isset($parameters['email'])) {
         $companyName = $companyDomain = self::domainExists($parameters['email']);
     }
     if ($companyName) {
         $companyRepo = $companyModel->getRepository();
         $city = isset($parameters['city']) ? $parameters['city'] : null;
         $country = isset($parameters['country']) ? $parameters['country'] : null;
         $state = isset($parameters['state']) ? $parameters['state'] : null;
         $company = $companyRepo->identifyCompany($companyName, $city, $country, $state);
         if (!empty($company)) {
             //check if lead is already assigned to company
             $companyLeadRepo = $companyModel->getCompanyLeadRepository();
             if (empty($companyLeadRepo->getCompaniesByLeadId($lead->getId(), $company['id']))) {
                 $leadAdded = true;
             }
         } else {
             //create new company
             $company = ['companyname' => $companyName, 'companywebsite' => $companyDomain, 'companycity' => $city, 'companystate' => $state, 'companycountry' => $country];
             $companyEntity = $companyModel->getEntity();
             $companyModel->setFieldValues($companyEntity, $company, true);
             $companyModel->saveEntity($companyEntity);
             $company['id'] = $companyEntity->getId();
             $leadAdded = true;
         }
         return [$company, $leadAdded];
     }
     return [null, false];
 }
Example #2
0
 /**
  * @param Lead $lead
  * @param      $company
  *
  * @return bool
  */
 public function addToCompany(Lead $lead, $company)
 {
     //check if lead is in company already
     if (!$company instanceof Company) {
         $company = $this->companyModel->getEntity($company);
     }
     $companyLead = $this->companyModel->getCompanyLeadRepository()->getCompaniesByLeadId($lead->getId(), $company->getId());
     if (empty($companyLead)) {
         $this->companyModel->addLeadToCompany($company, $lead);
         return true;
     }
     return false;
 }