示例#1
0
 public static function RewriteClientFields(&$arFields, $bDualFields = true)
 {
     $arCompany = $companyEMail = $companyPhone = null;
     $arContact = $contactEMail = $contactPhone = null;
     $companyId = isset($arFields['COMPANY_ID']) ? intval($arFields['COMPANY_ID']) : 0;
     $contactId = isset($arFields['CONTACT_ID']) ? intval($arFields['CONTACT_ID']) : 0;
     if ($companyId > 0) {
         $arCompany = CCrmCompany::GetByID($companyId);
         // Get multifields values (EMAIL and PHONE)
         $arFieldsMulti = CCrmFieldMulti::GetEntityFields('COMPANY', $companyId, 'EMAIL', true, false);
         if (is_array($arFieldsMulti) && isset($arFieldsMulti[0]['VALUE'])) {
             $companyEMail = $arFieldsMulti[0]['VALUE'];
         }
         $arFieldsMulti = CCrmFieldMulti::GetEntityFields('COMPANY', $companyId, 'PHONE', true, false);
         if (is_array($arFieldsMulti) && isset($arFieldsMulti[0]['VALUE'])) {
             $companyPhone = $arFieldsMulti[0]['VALUE'];
         }
         unset($arFieldsMulti);
     }
     if ($contactId > 0) {
         $arContact = CCrmContact::GetByID($contactId);
         // Get multifields values (EMAIL and PHONE)
         $arFieldsMulti = CCrmFieldMulti::GetEntityFields('CONTACT', $contactId, 'EMAIL', true, false);
         if (is_array($arFieldsMulti) && isset($arFieldsMulti[0]['VALUE'])) {
             $contactEMail = $arFieldsMulti[0]['VALUE'];
         }
         $arFieldsMulti = CCrmFieldMulti::GetEntityFields('CONTACT', $contactId, 'PHONE', true, false);
         if (is_array($arFieldsMulti) && isset($arFieldsMulti[0]['VALUE'])) {
             $contactPhone = $arFieldsMulti[0]['VALUE'];
         }
         unset($arFieldsMulti);
     }
     if ($companyId > 0) {
         if (is_array($arCompany) && count($arCompany) > 0) {
             foreach (self::$clientFields as $k) {
                 $v = '';
                 if ($k === 'CLIENT_TITLE') {
                     if (isset($arCompany['TITLE'])) {
                         $v = $arCompany['TITLE'];
                     }
                 } elseif ($k === 'CLIENT_CONTACT' && $contactId > 0) {
                     if (isset($arContact['FULL_NAME'])) {
                         $v = $arContact['FULL_NAME'];
                     }
                 } elseif ($k === 'CLIENT_ADDR') {
                     $v = Bitrix\Crm\Format\CompanyAddressFormatter::format($arCompany, array('TYPE_ID' => \Bitrix\Crm\EntityAddress::Registered));
                 } elseif ($k === 'CLIENT_EMAIL') {
                     $v = $contactEMail != '' ? $contactEMail : $companyEMail;
                 } elseif ($k === 'CLIENT_PHONE') {
                     $v = $contactPhone != '' ? $contactPhone : $companyPhone;
                 }
                 if ($bDualFields) {
                     $arFields['~' . $k] = $v;
                 }
                 $arFields[$k] = $bDualFields ? htmlspecialcharsbx($v) : $v;
             }
         }
     } elseif ($contactId > 0) {
         if (is_array($arContact) && count($arContact) > 0) {
             foreach (self::$clientFields as $k) {
                 $v = '';
                 if ($k === 'CLIENT_TITLE') {
                     if (isset($arContact['FULL_NAME'])) {
                         $v = $arContact['FULL_NAME'];
                     }
                 } elseif ($k === 'CLIENT_CONTACT' && $contactId > 0) {
                     $v = '';
                 } elseif ($k === 'CLIENT_ADDR') {
                     $v = Bitrix\Crm\Format\ContactAddressFormatter::format($arContact);
                 } elseif ($k === 'CLIENT_EMAIL') {
                     $v = $contactEMail;
                 } elseif ($k === 'CLIENT_PHONE') {
                     $v = $contactPhone;
                 }
                 if ($bDualFields) {
                     $arFields['~' . $k] = $v;
                 }
                 $arFields[$k] = $bDualFields ? htmlspecialcharsbx($v) : $v;
             }
         }
     }
 }
示例#2
0
 public static function __RewritePayerInfo($companyId, $contactId, &$arInvoiceProperties)
 {
     $arCompany = $companyEMail = $companyPhone = null;
     $arContact = $contactEMail = $contactPhone = null;
     if ($companyId > 0) {
         $arCompany = CCrmCompany::GetByID($companyId);
         // Get multifields values (EMAIL and PHONE)
         $arFieldsMulti = CCrmFieldMulti::GetEntityFields('COMPANY', $companyId, 'EMAIL', true, false);
         if (is_array($arFieldsMulti) && isset($arFieldsMulti[0]['VALUE'])) {
             $companyEMail = $arFieldsMulti[0]['VALUE'];
         }
         $arFieldsMulti = CCrmFieldMulti::GetEntityFields('COMPANY', $companyId, 'PHONE', true, false);
         if (is_array($arFieldsMulti) && isset($arFieldsMulti[0]['VALUE'])) {
             $companyPhone = $arFieldsMulti[0]['VALUE'];
         }
         unset($arFieldsMulti);
     }
     if ($contactId > 0) {
         $arContact = CCrmContact::GetByID($contactId);
         // Get multifields values (EMAIL and PHONE)
         $arFieldsMulti = CCrmFieldMulti::GetEntityFields('CONTACT', $contactId, 'EMAIL', true, false);
         if (is_array($arFieldsMulti) && isset($arFieldsMulti[0]['VALUE'])) {
             $contactEMail = $arFieldsMulti[0]['VALUE'];
         }
         $arFieldsMulti = CCrmFieldMulti::GetEntityFields('CONTACT', $contactId, 'PHONE', true, false);
         if (is_array($arFieldsMulti) && isset($arFieldsMulti[0]['VALUE'])) {
             $contactPhone = $arFieldsMulti[0]['VALUE'];
         }
         unset($arFieldsMulti);
     }
     if ($companyId > 0) {
         if (is_array($arCompany) && count($arCompany) > 0) {
             foreach ($arInvoiceProperties as $propertyKey => $property) {
                 $curVal = $arInvoiceProperties[$propertyKey]['VALUE'];
                 if ($property['FIELDS']['CODE'] === 'COMPANY' || $property['FIELDS']['CODE'] === 'COMPANY_NAME') {
                     if (isset($arCompany['TITLE'])) {
                         $curVal = $arCompany['TITLE'];
                     }
                 } elseif ($property['FIELDS']['CODE'] === 'CONTACT_PERSON' && $contactId > 0) {
                     if (isset($arContact['FULL_NAME'])) {
                         $curVal = $arContact['FULL_NAME'];
                     }
                 } elseif ($property['FIELDS']['CODE'] === 'COMPANY_ADR') {
                     $curVal = Bitrix\Crm\Format\CompanyAddressFormatter::format($arCompany, array('TYPE_ID' => \Bitrix\Crm\EntityAddress::Registered));
                 } elseif ($property['FIELDS']['CODE'] === 'INN') {
                     $todo = 'todo';
                     // TODO:
                 } elseif ($property['FIELDS']['CODE'] === 'KPP') {
                     $todo = 'todo';
                     // TODO:
                 } elseif ($property['FIELDS']['CODE'] === 'EMAIL') {
                     $curVal = $contactEMail != '' ? $contactEMail : $companyEMail;
                 } elseif ($property['FIELDS']['CODE'] === 'PHONE') {
                     $curVal = $contactPhone != '' ? $contactPhone : $companyPhone;
                 }
                 $arInvoiceProperties[$propertyKey]['VALUE'] = $curVal;
             }
         }
     } elseif ($contactId > 0) {
         if (is_array($arContact) && count($arContact) > 0) {
             foreach ($arInvoiceProperties as $propertyKey => $property) {
                 $curVal = $arInvoiceProperties[$propertyKey]['VALUE'];
                 if ($property['FIELDS']['CODE'] === 'FIO') {
                     if (isset($arContact['FULL_NAME'])) {
                         $curVal = $arContact['FULL_NAME'];
                     }
                 } elseif ($property['FIELDS']['CODE'] === 'EMAIL') {
                     $curVal = $contactEMail;
                 } elseif ($property['FIELDS']['CODE'] === 'PHONE') {
                     $curVal = $contactPhone;
                 } elseif ($property['FIELDS']['CODE'] === 'ADDRESS') {
                     $curVal = Bitrix\Crm\Format\ContactAddressFormatter::format($arContact);
                 }
                 $arInvoiceProperties[$propertyKey]['VALUE'] = $curVal;
             }
         }
     }
 }
示例#3
0
$arFields['~COMPANY_ID'] = isset($arFields['~COMPANY_ID']) ? intval($arFields['~COMPANY_ID']) : 0;
$arFields['~COMPANY_TITLE'] = isset($arFields['~COMPANY_TITLE']) ? $arFields['~COMPANY_TITLE'] : '';
$arFields['~ASSIGNED_BY_ID'] = isset($arFields['~ASSIGNED_BY_ID']) ? intval($arFields['~ASSIGNED_BY_ID']) : 0;
$arFields['~ASSIGNED_BY_LOGIN'] = isset($arFields['~ASSIGNED_BY_LOGIN']) ? $arFields['~ASSIGNED_BY_LOGIN'] : '';
$arFields['~ASSIGNED_BY_NAME'] = isset($arFields['~ASSIGNED_BY_NAME']) ? $arFields['~ASSIGNED_BY_NAME'] : '';
$arFields['~ASSIGNED_BY_LAST_NAME'] = isset($arFields['~ASSIGNED_BY_LAST_NAME']) ? $arFields['~ASSIGNED_BY_LAST_NAME'] : '';
$arFields['~ASSIGNED_BY_SECOND_NAME'] = isset($arFields['~ASSIGNED_BY_SECOND_NAME']) ? $arFields['~ASSIGNED_BY_SECOND_NAME'] : '';
$arFields['~TYPE_ID'] = isset($arFields['~TYPE_ID']) ? $arFields['~TYPE_ID'] : '';
$arFields['~ADDRESS'] = isset($arFields['~ADDRESS']) ? $arFields['~ADDRESS'] : '';
$arFields['~ADDRESS_2'] = isset($arFields['~ADDRESS_2']) ? $arFields['~ADDRESS_2'] : '';
$arFields['~ADDRESS_CITY'] = isset($arFields['~ADDRESS_CITY']) ? $arFields['~ADDRESS_CITY'] : '';
$arFields['~ADDRESS_REGION'] = isset($arFields['~ADDRESS_REGION']) ? $arFields['~ADDRESS_REGION'] : '';
$arFields['~ADDRESS_PROVINCE'] = isset($arFields['~ADDRESS_PROVINCE']) ? $arFields['~ADDRESS_PROVINCE'] : '';
$arFields['~ADDRESS_POSTAL_CODE'] = isset($arFields['~ADDRESS_POSTAL_CODE']) ? $arFields['~ADDRESS_POSTAL_CODE'] : '';
$arFields['~ADDRESS_COUNTRY'] = isset($arFields['~ADDRESS_COUNTRY']) ? $arFields['~ADDRESS_COUNTRY'] : '';
$arFields['FULL_ADDRESS'] = Bitrix\Crm\Format\ContactAddressFormatter::format(array('ADDRESS' => $arFields['~ADDRESS'], 'ADDRESS_2' => $arFields['~ADDRESS_2'], 'ADDRESS_CITY' => $arFields['~ADDRESS_CITY'], 'ADDRESS_REGION' => $arFields['~ADDRESS_REGION'], 'ADDRESS_PROVINCE' => $arFields['~ADDRESS_PROVINCE'], 'ADDRESS_POSTAL_CODE' => $arFields['~ADDRESS_POSTAL_CODE'], 'ADDRESS_COUNTRY' => $arFields['~ADDRESS_COUNTRY']), array('SEPARATOR' => Bitrix\Crm\Format\AddressSeparator::HtmlLineBreak));
$arFields['~SOURCE_ID'] = isset($arFields['~SOURCE_ID']) ? $arFields['~SOURCE_ID'] : '';
$arFields['~SOURCE_DESCRIPTION'] = isset($arFields['~SOURCE_DESCRIPTION']) ? $arFields['~SOURCE_DESCRIPTION'] : '';
$arFields['~COMMENTS'] = isset($arFields['~COMMENTS']) ? $arFields['~COMMENTS'] : '';
$arFields['FM'] = array();
$dbMultiFields = CCrmFieldMulti::GetList(array('ID' => 'asc'), array('ENTITY_ID' => 'CONTACT', 'ELEMENT_ID' => $entityID));
if ($dbMultiFields) {
    while ($multiFields = $dbMultiFields->Fetch()) {
        $arFields['FM'][$multiFields['TYPE_ID']][] = array('VALUE' => $multiFields['VALUE'], 'VALUE_TYPE' => $multiFields['VALUE_TYPE']);
    }
}
$arResult['CALLTO'] = CCrmMobileHelper::PrepareCalltoParams(array('COMMUNICATION_LIST_URL_TEMPLATE' => $arParams['COMMUNICATION_LIST_URL_TEMPLATE'], 'ENTITY_TYPE_ID' => CCrmOwnerType::Contact, 'ENTITY_ID' => $entityID, 'FM' => $arFields['FM']));
$arResult['MAILTO'] = CCrmMobileHelper::PrepareMailtoParams(array('COMMUNICATION_LIST_URL_TEMPLATE' => $arParams['COMMUNICATION_LIST_URL_TEMPLATE'], 'ENTITY_TYPE_ID' => CCrmOwnerType::Contact, 'ENTITY_ID' => $entityID, 'FM' => $arFields['FM']));
$arResult['TYPE_LIST'] = CCrmStatus::GetStatusList('CONTACT_TYPE');
$arResult['SOURCE_LIST'] = CCrmStatus::GetStatusList('SOURCE');
$arFields['~FORMATTED_NAME'] = CUser::FormatName($arParams['NAME_TEMPLATE'], array('LOGIN' => '', 'NAME' => $arFields['~NAME'], 'LAST_NAME' => $arFields['~LAST_NAME'], 'SECOND_NAME' => $arFields['~SECOND_NAME']), false, false);
示例#4
0
 public static function PrepareContactItem(&$item, &$params, $enums = array())
 {
     $itemID = intval($item['~ID']);
     if (isset($params['CONTACT_SHOW_URL_TEMPLATE'])) {
         $item['SHOW_URL'] = CComponentEngine::MakePathFromTemplate($params['CONTACT_SHOW_URL_TEMPLATE'], array('contact_id' => $itemID));
     }
     if (isset($params['CONTACT_EDIT_URL_TEMPLATE'])) {
         $item['EDIT_URL'] = CComponentEngine::MakePathFromTemplate($params['CONTACT_EDIT_URL_TEMPLATE'], array('contact_id' => $itemID));
     }
     if (!isset($item['~NAME'])) {
         $item['~NAME'] = $item['NAME'] = '';
     }
     if (!isset($item['~LAST_NAME'])) {
         $item['~LAST_NAME'] = $item['LAST_NAME'] = '';
     }
     if (!isset($item['~SECOND_NAME'])) {
         $item['~SECOND_NAME'] = $item['SECOND_NAME'] = '';
     }
     $item['~FORMATTED_NAME'] = CUser::FormatName($params['NAME_TEMPLATE'], array('LOGIN' => '', 'NAME' => $item['~NAME'], 'LAST_NAME' => $item['~LAST_NAME'], 'SECOND_NAME' => $item['~SECOND_NAME']), false, false);
     $item['FORMATTED_NAME'] = htmlspecialcharsbx($item['~FORMATTED_NAME']);
     $lastName = $item['~LAST_NAME'];
     $item['CLASSIFIER'] = $lastName !== '' ? strtoupper(substr($lastName, 0, 1)) : '';
     if (!isset($item['~POST'])) {
         $item['~POST'] = $item['POST'] = '';
     }
     $companyID = isset($item['~COMPANY_ID']) ? intval($item['~COMPANY_ID']) : 0;
     $item['~COMPANY_ID'] = $item['COMPANY_ID'] = $companyID;
     if (!isset($item['~COMPANY_TITLE'])) {
         $item['~COMPANY_TITLE'] = $item['COMPANY_TITLE'] = '';
     }
     /*$item['COMPANY_SHOW_URL'] = $companyID > 0
     		? CComponentEngine::MakePathFromTemplate(
     			$params['COMPANY_SHOW_URL_TEMPLATE'], array('company_id' => $companyID)
     		) : '';*/
     $assignedByID = isset($item['~ASSIGNED_BY_ID']) ? intval($item['~ASSIGNED_BY_ID']) : 0;
     $item['~ASSIGNED_BY_ID'] = $item['ASSIGNED_BY_ID'] = $assignedByID;
     $item['ASSIGNED_BY_SHOW_URL'] = $assignedByID > 0 ? CComponentEngine::MakePathFromTemplate($params['USER_PROFILE_URL_TEMPLATE'], array('user_id' => $assignedByID)) : '';
     $item['~ASSIGNED_BY_FORMATTED_NAME'] = $assignedByID > 0 ? CUser::FormatName($params['NAME_TEMPLATE'], array('LOGIN' => isset($item['~ASSIGNED_BY_LOGIN']) ? $item['~ASSIGNED_BY_LOGIN'] : '', 'NAME' => isset($item['~ASSIGNED_BY_NAME']) ? $item['~ASSIGNED_BY_NAME'] : '', 'LAST_NAME' => isset($item['~ASSIGNED_BY_LAST_NAME']) ? $item['~ASSIGNED_BY_LAST_NAME'] : '', 'SECOND_NAME' => isset($item['~ASSIGNED_BY_SECOND_NAME']) ? $item['~ASSIGNED_BY_SECOND_NAME'] : ''), true, false) : '';
     $item['ASSIGNED_BY_FORMATTED_NAME'] = htmlspecialcharsbx($item['~ASSIGNED_BY_FORMATTED_NAME']);
     if (!isset($item['~POST'])) {
         $item['~POST'] = $item['POST'] = '';
     }
     if (!isset($item['~ADDRESS'])) {
         $item['~ADDRESS'] = $item['ADDRESS'] = '';
     }
     if (!isset($item['~ADDRESS_2'])) {
         $item['~ADDRESS_2'] = $item['ADDRESS_2'] = '';
     }
     if (!isset($item['~ADDRESS_CITY'])) {
         $item['~ADDRESS_CITY'] = $item['ADDRESS_CITY'] = '';
     }
     if (!isset($item['~ADDRESS_REGION'])) {
         $item['~ADDRESS_REGION'] = $item['ADDRESS_REGION'] = '';
     }
     if (!isset($item['~ADDRESS_PROVINCE'])) {
         $item['~ADDRESS_PROVINCE'] = $item['ADDRESS_PROVINCE'] = '';
     }
     if (!isset($item['~ADDRESS_POSTAL_CODE'])) {
         $item['~ADDRESS_POSTAL_CODE'] = $item['ADDRESS_POSTAL_CODE'] = '';
     }
     if (!isset($item['~ADDRESS_COUNTRY'])) {
         $item['~ADDRESS_COUNTRY'] = $item['ADDRESS_COUNTRY'] = '';
     }
     $item['FULL_ADDRESS'] = Bitrix\Crm\Format\ContactAddressFormatter::format(array('ADDRESS' => $item['~ADDRESS'], 'ADDRESS_2' => $item['~ADDRESS_2'], 'ADDRESS_CITY' => $item['~ADDRESS_CITY'], 'ADDRESS_REGION' => $item['~ADDRESS_REGION'], 'ADDRESS_PROVINCE' => $item['~ADDRESS_PROVINCE'], 'ADDRESS_POSTAL_CODE' => $item['~ADDRESS_POSTAL_CODE'], 'ADDRESS_COUNTRY' => $item['~ADDRESS_COUNTRY']), array('SEPARATOR' => Bitrix\Crm\Format\AddressSeparator::HtmlLineBreak));
     if (!isset($item['~COMMENTS'])) {
         $item['~COMMENTS'] = $item['COMMENTS'] = '';
     }
     if (!isset($item['~TYPE_ID'])) {
         $item['~TYPE_ID'] = $item['TYPE_ID'] = '';
     }
     $typeList = $enums && isset($enums['CONTACT_TYPE']) ? $enums['CONTACT_TYPE'] : null;
     if (is_array($typeList)) {
         $typeID = $item['~TYPE_ID'];
         $item['~TYPE_NAME'] = isset($typeList[$typeID]) ? $typeList[$typeID] : $typeID;
         $item['TYPE_NAME'] = htmlspecialcharsbx($item['~TYPE_NAME']);
     }
     if (!isset($item['~PHOTO'])) {
         $item['~PHOTO'] = $item['PHOTO'] = 0;
     }
 }