Spaces:
No application file
No application file
File size: 1,365 Bytes
d2897cd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
<?php
namespace Mautic\LeadBundle\Helper;
use Mautic\LeadBundle\Entity\CompanyLeadRepository;
use Mautic\LeadBundle\Entity\Lead;
class PrimaryCompanyHelper
{
public function __construct(
private CompanyLeadRepository $companyLeadRepository
) {
}
/**
* @return array|null
*/
public function getProfileFieldsWithPrimaryCompany(Lead $lead)
{
return $this->mergeInPrimaryCompany(
$this->companyLeadRepository->getCompaniesByLeadId($lead->getId()),
$lead->getProfileFields()
);
}
/**
* @return array
*/
public function mergePrimaryCompanyWithProfileFields($contactId, array $profileFields)
{
return $this->mergeInPrimaryCompany(
$this->companyLeadRepository->getCompaniesByLeadId($contactId),
$profileFields
);
}
/**
* @return array
*/
private function mergeInPrimaryCompany(array $companies, array $profileFields)
{
foreach ($companies as $company) {
if (empty($company['is_primary'])) {
continue;
}
unset($company['id'], $company['score'], $company['date_added'], $company['date_associated'], $company['is_primary']);
return array_merge($profileFields, $company);
}
return $profileFields;
}
}
|