Ejemplo n.º 1
0
 if (isset($arLead['EXCH_RATE'])) {
     $arFields['~EXCH_RATE'] = $arFields['EXCH_RATE'] = doubleval($arLead['EXCH_RATE']);
 }
 if (isset($arLead['CURRENCY_ID'])) {
     $arFields['~CURRENCY_ID'] = $arLead['CURRENCY_ID'];
     $arFields['CURRENCY_ID'] = htmlspecialcharsbx($arFields['~CURRENCY_ID']);
 }
 if (isset($arLead['ACCOUNT_CURRENCY_ID'])) {
     $arFields['~ACCOUNT_CURRENCY_ID'] = $arLead['ACCOUNT_CURRENCY_ID'];
     $arFields['ACCOUNT_CURRENCY_ID'] = htmlspecialcharsbx($arFields['~ACCOUNT_CURRENCY_ID']);
 }
 if (isset($arLead['COMMENTS'])) {
     $arFields['~COMMENTS'] = $arLead['COMMENTS'];
     $arFields['COMMENTS'] = htmlspecialcharsbx($arFields['~COMMENTS']);
 }
 $arLeadProducts = CCrmLead::LoadProductRows($leadId);
 if (is_array($arLeadProducts) && count($arLeadProducts) > 0) {
     foreach ($arLeadProducts as $leadProduct) {
         $leadProduct['ID'] = 0;
     }
     unset($leadProduct);
     $arFields['PRODUCT_ROWS'] = $arResult['PRODUCT_ROWS'] = $arLeadProducts;
 }
 unset($arLeadProducts);
 // read product row settings
 $productRowSettings = array();
 $arLeadProductRowSettings = CCrmProductRow::LoadSettings('D', $leadId);
 if (is_array($arLeadProductRowSettings)) {
     $productRowSettings['ENABLE_DISCOUNT'] = isset($arLeadProductRowSettings['ENABLE_DISCOUNT']) ? $arLeadProductRowSettings['ENABLE_DISCOUNT'] : false;
     $productRowSettings['ENABLE_TAX'] = isset($arLeadProductRowSettings['ENABLE_TAX']) ? $arLeadProductRowSettings['ENABLE_TAX'] : false;
 }
Ejemplo n.º 2
0
         if ($productID <= 0) {
             continue;
         }
         $arProductRows = array(array('PRODUCT_ID' => $productID, 'PRICE' => isset($arDeal['OPPORTUNITY']) ? doubleval($arDeal['OPPORTUNITY']) : 0.0, 'QUANTITY' => 1));
         CCrmDeal::SaveProductRows($ID, $arProductRows);
     }
 }
 $rsLeads = CCrmLead::GetListEx(array('ID' => 'ASC'), array("CHECK_PERMISSIONS" => "N"), false, false, array('ID', 'PRODUCT_ID', 'OPPORTUNITY', 'CURRENCY_ID'));
 while ($arLead = $rsLeads->Fetch()) {
     $ID = isset($arLead['ID']) ? intval($arLead['ID']) : 0;
     if ($ID <= 0) {
         continue;
     }
     $productID = isset($arLead['PRODUCT_ID']) ? $arLead['PRODUCT_ID'] : '';
     if (isset($productID[0])) {
         $arProductRows = CCrmLead::LoadProductRows($ID);
         if (count($arProductRows) > 0) {
             // already converted
             continue;
         }
         $arProduct = CCrmProduct::GetByOriginID('CRM_PROD_' . $productID);
         if (!is_array($arProduct)) {
             continue;
         }
         $productID = isset($arProduct['ID']) ? $arProduct['ID'] : 0;
         if ($productID <= 0) {
             continue;
         }
         $arProductRows = array(array('PRODUCT_ID' => $productID, 'PRICE' => isset($arLead['OPPORTUNITY']) ? doubleval($arLead['OPPORTUNITY']) : 0.0, 'QUANTITY' => 1));
         CCrmLead::SaveProductRows($ID, $arProductRows);
     }
Ejemplo n.º 3
0
            if (!$isInExportMode) {
                $arLead['BIZPROC_STATUS_HINT'] = '<span class=\'bizproc-item-title\'>' . GetMessage('CRM_BP_R_P') . ': <a href=\'' . $arLead['PATH_TO_BIZPROC_LIST'] . '\' title=\'' . GetMessage('CRM_BP_R_P_TITLE') . '\'>' . $docStatesQty . '</a></span>' . ($totalTaskQty === 0 ? '' : '<br /><span class=\'bizproc-item-title\'>' . GetMessage('CRM_TASKS') . ': <a href=\'' . $arLead['PATH_TO_USER_BP'] . '\' title=\'' . GetMessage('CRM_TASKS_TITLE') . '\'>' . $totalTaskQty . ($totalTaskQty > 5 ? '+' : '') . '</a></span>');
            }
        }
    }
    $arLead['ASSIGNED_BY_ID'] = $arLead['~ASSIGNED_BY_ID'] = intval($arLead['ASSIGNED_BY']);
    $arLead['ASSIGNED_BY'] = CUser::FormatName($arParams['NAME_TEMPLATE'], array('LOGIN' => $arLead['ASSIGNED_BY_LOGIN'], 'NAME' => $arLead['ASSIGNED_BY_NAME'], 'LAST_NAME' => $arLead['ASSIGNED_BY_LAST_NAME'], 'SECOND_NAME' => $arLead['ASSIGNED_BY_SECOND_NAME']), true, false);
    if (isset($arSelectMap['FULL_ADDRESS'])) {
        $arLead['FULL_ADDRESS'] = LeadAddressFormatter::format($arLead, array('SEPARATOR' => AddressSeparator::HtmlLineBreak, 'NL2BR' => true));
    }
}
unset($arLead);
$CCrmUserType->ListAddEnumFieldsValue($arResult, $arResult['LEAD'], $arResult['LEAD_UF'], $sExportType !== '' ? ', ' : '<br />', $sExportType !== '', array('FILE_URL_TEMPLATE' => '/bitrix/components/bitrix/crm.lead.show/show_file.php?ownerId=#owner_id#&fieldName=#field_name#&fileId=#file_id#'));
if (isset($arResult['LEAD_ID']) && !empty($arResult['LEAD_ID'])) {
    // try to load product rows
    $arProductRows = CCrmLead::LoadProductRows(array_keys($arResult['LEAD_ID']));
    foreach ($arProductRows as $arProductRow) {
        $ownerID = $arProductRow['OWNER_ID'];
        if (!isset($arResult['LEAD'][$ownerID])) {
            continue;
        }
        $arEntity =& $arResult['LEAD'][$ownerID];
        if (!isset($arEntity['PRODUCT_ROWS'])) {
            $arEntity['PRODUCT_ROWS'] = array();
        }
        $arEntity['PRODUCT_ROWS'][] = $arProductRow;
    }
    // adding crm multi field to result array
    $arFmList = array();
    $res = CCrmFieldMulti::GetList(array('ID' => 'asc'), array('ENTITY_ID' => 'LEAD', 'ELEMENT_ID' => $arResult['LEAD_ID']));
    while ($ar = $res->Fetch()) {
Ejemplo n.º 4
0
 public function map(EntityConversionMap $map, array $options = null)
 {
     $srcFields = $this->getSourceFields();
     if (empty($srcFields)) {
         return array();
     }
     $multiFieldKeys = array('PHONE' => true, 'EMAIL' => true, 'WEB' => true, 'IM' => true);
     $dstFields = array();
     $dstEntityTypeID = $map->getDestinationEntityTypeID();
     foreach ($map->getItems() as $item) {
         $dstFieldID = $item->getDestinationField();
         //Skip empty binding
         if ($dstFieldID === '-') {
             continue;
         }
         $srcFieldID = $item->getSourceField();
         if ((!isset($srcFields[$srcFieldID]) || $srcFields[$srcFieldID] === '') && !isset($multiFieldKeys[$srcFieldID]) && $srcFieldID !== 'PRODUCT_ROWS') {
             $altSrcFieldID = '';
             foreach ($item->getAlternativeSourceFields() as $fieldID) {
                 if (isset($srcFields[$fieldID])) {
                     $altSrcFieldID = $fieldID;
                     break;
                 }
             }
             if ($altSrcFieldID !== '') {
                 $srcFieldID = $altSrcFieldID;
             }
         }
         if ($dstFieldID === '') {
             $dstFieldID = $srcFieldID;
         }
         if (strpos($srcFieldID, 'UF_') === 0 && strpos($dstFieldID, 'UF_') === 0) {
             self::mapUserField(\CCrmOwnerType::Lead, $srcFieldID, $srcFields, $dstEntityTypeID, $dstFieldID, $dstFields, $options);
         } elseif (isset($multiFieldKeys[$srcFieldID])) {
             $multifields = $this->getSourceMultiFields();
             if (isset($multifields[$dstFieldID])) {
                 if (!isset($dstFields['FM'])) {
                     $dstFields['FM'] = array();
                 }
                 $dstFields['FM'][$dstFieldID] = $multifields[$dstFieldID];
             }
         } elseif ($srcFieldID === 'PRODUCT_ROWS') {
             $productRows = \CCrmLead::LoadProductRows($this->srcEntityID);
             if (count($productRows) > 0) {
                 foreach ($productRows as &$productRow) {
                     unset($productRow['ID']);
                 }
                 unset($productRow);
                 $dstFields[$dstFieldID] = $productRows;
             }
         } elseif (isset($srcFields[$srcFieldID])) {
             $dstFields[$dstFieldID] = $srcFields[$srcFieldID];
         }
     }
     if (!empty($dstFields)) {
         $dstFields['LEAD_ID'] = $this->srcEntityID;
     }
     return $dstFields;
 }
Ejemplo n.º 5
0
 public function getProductRows($ID)
 {
     $ID = intval($ID);
     if ($ID <= 0) {
         throw new RestException('The parameter id is invalid or not defined.');
     }
     if (!CCrmLead::CheckReadPermission($ID)) {
         throw new RestException('Access denied.');
     }
     return CCrmLead::LoadProductRows($ID);
 }
Ejemplo n.º 6
0
    }
    $arLead['PATH_TO_LEAD_SHOW'] = CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_LEAD_SHOW'], array('lead_id' => $iLeadId));
    $arLead['PATH_TO_LEAD_EDIT'] = CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_LEAD_EDIT'], array('lead_id' => $iLeadId));
    $arLead['CONTACT_NAME'] = CUser::FormatName(\Bitrix\Crm\Format\PersonNameFormatter::getFormat(), array('NAME' => $arLead['NAME'], 'LAST_NAME' => $arLead['LAST_NAME'], 'SECOND_NAME' => $arLead['SECOND_NAME']), true, false);
    $strCard = '
<div class="bx-user-info-data-cont-video  bx-user-info-fields" id="bx_user_info_data_cont_1">
	<div class="bx-user-info-data-name ">
		<a href="' . $arLead['PATH_TO_LEAD_SHOW'] . '">' . htmlspecialcharsbx($arLead['TITLE']) . '</a>
	</div>
	<div class="bx-user-info-data-info">';
    if (!empty($arLead['STATUS_ID'])) {
        $strCard .= '<span class="field-name">' . GetMessage('CRM_COLUMN_STATUS') . '</span>:
		<span class="fields enumeration">' . $arResult['STATUS_LIST'][$arLead['STATUS_ID']] . '</span>
		<br />';
    }
    $arProductRows = CCrmLead::LoadProductRows($arLead['ID']);
    if (count($arProductRows) > 0) {
        $strCard .= '<span class="field-name">' . GetMessage('CRM_COLUMN_PRODUCTS') . '</span>:<span class="fields enumeration">' . htmlspecialcharsbx(CCrmProductRow::RowsToString($arProductRows)) . '</span><br />';
    }
    $strCard .= '<span class="field-name">' . GetMessage('CRM_COLUMN_DATE_MODIFY') . '</span>:
		<span class="fields enumeration">' . FormatDate('x', MakeTimeStamp($arLead['DATE_MODIFY']), time() + CTimeZone::GetOffset()) . '</span>
		<br />
		<br />
	</div>
	<div class="bx-user-info-data-name bx-user-info-seporator">
		<nobr>' . GetMessage('CRM_SECTION_CONTACT_INFO') . '</nobr>
	</div>
	<div class="bx-user-info-data-info">';
    if (!empty($arLead['CONTACT_NAME'])) {
        $strCard .= '<span class="field-name">' . GetMessage('CRM_COLUMN_NAME') . '</span>:
		<span class="fields enumeration">' . htmlspecialcharsbx($arLead['CONTACT_NAME']) . '</span>
Ejemplo n.º 7
0
ob_start();
$APPLICATION->IncludeComponent('bitrix:crm.contact.edit', 'convert', array('ELEMENT_ID' => 0, 'FORM_ID' => $arResult['FORM_ID'], 'INTERNAL_FILTER' => true, 'CONVERT' => true, 'VALUES' => $arResult['ELEMENT']['CONTACT']), false);
$sVal = ob_get_contents();
ob_end_clean();
$arResult['FIELDS']['tab_convert'][] = array('id' => 'LEAD_CONTACT_CONVERT', 'name' => GetMessage('CRM_FIELD_LEAD_CONTACT'), 'colspan' => true, 'type' => 'custom', 'value' => $sVal);
if (!$CrmPerms->HavePerm('COMPANY', BX_CRM_PERM_NONE, 'ADD')) {
    ob_start();
    $APPLICATION->IncludeComponent('bitrix:crm.company.edit', 'convert', array('ELEMENT_ID' => 0, 'FORM_ID' => $arResult['FORM_ID'], 'INTERNAL_FILTER' => true, 'CONVERT' => true, 'VALUES' => $arResult['ELEMENT']['COMPANY']), false);
    $sVal = ob_get_contents();
    ob_end_clean();
    $arResult['FIELDS']['tab_convert'][] = array('id' => 'LEAD_COMPANY_CONVERT', 'name' => GetMessage('CRM_FIELD_LEAD_COMPANY'), 'colspan' => true, 'type' => 'custom', 'value' => $sVal);
}
if (!$CrmPerms->HavePerm('DEAL', BX_CRM_PERM_NONE, 'ADD')) {
    $arDealVals = $arResult['ELEMENT']['DEAL'];
    if (!isset($arDealVals['PRODUCT_ROWS'])) {
        $arProductRows = CCrmLead::LoadProductRows($arParams['ELEMENT_ID']);
        if (count($arProductRows) > 0) {
            $arDealVals['PRODUCT_ROWS'] = $arProductRows;
        }
    }
    $componentSettings = array('ELEMENT_ID' => 0, 'FORM_ID' => $arResult['FORM_ID'], 'INTERNAL_FILTER' => true, 'CONVERT' => true, 'VALUES' => $arDealVals, 'VARS_FROM_FORM' => $bVarsFromForm, 'PATH_TO_PRODUCT_EDIT' => $arResult['PATH_TO_PRODUCT_EDIT'], 'PATH_TO_PRODUCT_SHOW' => $arResult['PATH_TO_PRODUCT_SHOW']);
    // load product row settings
    $productRowSettings = CCrmProductRow::LoadSettings('L', $arParams['ELEMENT_ID']);
    if (isset($productRowSettings['ENABLE_TAX'])) {
        $componentSettings['ENABLE_TAX'] = (bool) $productRowSettings['ENABLE_TAX'] ? 'Y' : 'N';
    }
    if (isset($productRowSettings['ENABLE_DISCOUNT'])) {
        $componentSettings['ENABLE_DISCOUNT'] = (bool) $productRowSettings['ENABLE_DISCOUNT'] ? 'Y' : 'N';
    }
    unset($productRowSettings);
    ob_start();