- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/classes/general/mobile_helper.php
- Класс: \CCrmMobileHelper
- Вызов: CCrmMobileHelper::PrepareDealItem
static function PrepareDealItem(&$item, &$params, $enums = array())
{
$itemID = intval($item['~ID']);
if(!isset($item['~PROBABILITY']))
{
$item['~PROBABILITY'] = $item['PROBABILITY'] = 0;
}
$currencyID = isset($item['~CURRENCY_ID']) ? $item['~CURRENCY_ID'] : '';
if($currencyID === '')
{
$currencyID = $item['~CURRENCY_ID'] = CCrmCurrency::GetBaseCurrencyID();
}
$item['~FORMATTED_OPPORTUNITY'] = CCrmCurrency::MoneyToString(
isset($item['~OPPORTUNITY']) ? $item['~OPPORTUNITY'] : '',
$currencyID
);
$item['FORMATTED_OPPORTUNITY'] = strip_tags($item['~FORMATTED_OPPORTUNITY']);
$contactID = isset($item['~CONTACT_ID']) ? intval($item['~CONTACT_ID']) : 0;
$item['~CONTACT_ID'] = $item['CONTACT_ID'] = 0;
$item['CONTACT'] = $item['~CONTACT_FORMATTED_NAME'] = $item['CONTACT_FORMATTED_NAME'] = '';
if (\CCrmContact::CheckReadPermission($contactID))
{
$item['~CONTACT_ID'] = $item['CONTACT_ID'] = $contactID;
$item['CONTACT_SHOW_URL'] = $contactID > 0 && $params['CONTACT_SHOW_URL_TEMPLATE'] !== ''
? CComponentEngine::MakePathFromTemplate(
$params['CONTACT_SHOW_URL_TEMPLATE'], array('contact_id' => $contactID)
) : '';
$item['~CONTACT_FORMATTED_NAME'] = $contactID > 0
? CCrmContact::PrepareFormattedName(
array(
'HONORIFIC' => isset($item['~CONTACT_HONORIFIC']) ? $item['~CONTACT_HONORIFIC'] : '',
'NAME' => isset($item['~CONTACT_NAME']) ? $item['~CONTACT_NAME'] : '',
'LAST_NAME' => isset($item['~CONTACT_LAST_NAME']) ? $item['~CONTACT_LAST_NAME'] : '',
'SECOND_NAME' => isset($item['~CONTACT_SECOND_NAME']) ? $item['~CONTACT_SECOND_NAME'] : ''
),
$params['NAME_TEMPLATE']
) : '';
$item['CONTACT_FORMATTED_NAME'] = htmlspecialcharsbx($item['~CONTACT_FORMATTED_NAME']);
if ($item['CONTACT_ID'] && $item['CONTACT_FORMATTED_NAME'])
{
$url = CComponentEngine::MakePathFromTemplate(
$params['CONTACT_SHOW_URL_TEMPLATE'],
array('contact_id' => $item['CONTACT_ID'])
);
$item['CONTACT'] = "".$item['CONTACT_FORMATTED_NAME']."";
}
}
$companyID = isset($item['~COMPANY_ID']) ? intval($item['~COMPANY_ID']) : 0;
$item['~COMPANY_ID'] = $item['COMPANY_ID'] = 0;
if ($companyID > 0 && $item['COMPANY_TITLE'] && \CCrmCompany::CheckReadPermission($companyID))
{
$url = CComponentEngine::MakePathFromTemplate(
$params['COMPANY_SHOW_URL_TEMPLATE'],
array('company_id' => $companyID)
);
$item['COMPANY'] = "".HtmlFilter::encode($item['~COMPANY_TITLE'])."";
}
if(!isset($item['~COMPANY_TITLE']))
{
$item['~COMPANY_TITLE'] = $item['COMPANY'] = $item['COMPANY_TITLE'] = '';
}
if (is_array($enums["FIELDS"]) && in_array("ASSIGNED_BY", $enums["FIELDS"]))
{
self::PrepareUserLink($item, "ASSIGNED_BY", $params);
}
if (is_array($enums["FIELDS"]) && in_array("CREATED_BY", $enums["FIELDS"]))
{
self::PrepareUserLink($item, "CREATED_BY", $params);
}
if (is_array($enums["FIELDS"]) && in_array("MODIFY_BY", $enums["FIELDS"]))
{
self::PrepareUserLink($item, "MODIFY_BY", $params);
}
$stageList = is_array($enums) && isset($enums['STAGE_LIST'])
? $enums['STAGE_LIST'] : CCrmViewHelper::GetDealStageInfos($item['~CATEGORY_ID']);
$stageID = isset($item['~STAGE_ID']) ? $item['~STAGE_ID'] : '';
$stageName = htmlspecialcharsbx($stageList[$stageID]["NAME"]);
$jsStageList = is_array($enums) && isset($enums['JS_STAGE_LIST'])
? $enums['JS_STAGE_LIST'] : array();
if (empty($jsStageList))
{
$i=0;
foreach ($stageList as $id => $info)
{
$jsStageList["s".$i] = array(
"STATUS_ID" => $info["STATUS_ID"],
"NAME" => $info["NAME"],
"COLOR" => $info["COLOR"]
);
$i++;
}
}
$onStatusClick = "";
if (
isset($enums["IS_EDIT_PERMITTED"])
&& $enums["IS_EDIT_PERMITTED"]
)
$onStatusClick = 'BX.Mobile.Crm.List.showStatusList('.$itemID.','.CUtil::PhpToJSObject($jsStageList).', \'onCrmDealDetailUpdate\')';
$item['STAGE_ID'] = '
';
$stopColor = false;
foreach($stageList as $code => $info)
{
$item['STAGE_ID'].= ' ';
if ($stageID == $code)
$stopColor = true;
if ($code == "WON" || $code == "LOSE" )
break;
}
$item['STAGE_ID'].= '
'.GetMessage("CRM_COLUMN_DEAL_STAGE").' - '.$stageName.'
';
$typeList = $enums && isset($enums['TYPE_LIST'])
? $enums['TYPE_LIST'] : self::GetStatusList('DEAL_TYPE');
if(!isset($item['~TYPE_ID']))
{
$item['~TYPE_ID'] = $item['TYPE_ID'] = '';
}
$typeID = $item['~TYPE_ID'];
if($typeID === '' || !isset($typeList[$typeID]))
{
$item['~TYPE_NAME'] = $item['TYPE_NAME'] = '';
}
else
{
$item['~TYPE_NAME'] = $typeList[$typeID];
$item['TYPE_NAME'] = htmlspecialcharsbx($item['~TYPE_NAME']);
}
$item['TYPE_ID'] = $item['TYPE_NAME'];
if (isset($item["DATE_CREATE"]))
{
$item["DATE_CREATE"] = ConvertTimeStamp(MakeTimeStamp($item['DATE_CREATE']));
}
if (isset($item["DATE_MODIFY"]))
{
$item["DATE_MODIFY"] = ConvertTimeStamp(MakeTimeStamp($item['DATE_MODIFY']));
}
if (isset($item["CLOSED"]))
{
$item["CLOSED"] = $item["CLOSED"] == "Y" ? GetMessage("CRM_TEXT_YES") : GetMessage("CRM_TEXT_NO");
}
if (is_array($enums["FIELDS"]) && in_array("AUDIO_CALL", $enums["FIELDS"]))
{
CCrmMobileHelper::prepareAudioField($item, CCrmOwnerType::Deal);
}
if (isset($enums['CHECKBOX_USER_FIELDS']) && is_array($enums['CHECKBOX_USER_FIELDS']) && !empty($enums['CHECKBOX_USER_FIELDS']))
{
foreach($enums['CHECKBOX_USER_FIELDS'] as $fieldId)
{
$item[$fieldId] = $item[$fieldId] == 1 ? GetMessage("CRM_TEXT_YES") : GetMessage("CRM_TEXT_NO");
}
}
if (isset($item["PRODUCT_ID"]))
{
$item["PRODUCT_ID"] = htmlspecialcharsbx($item["PRODUCT_ID"]);
}
$item['COMMENTS'] = $item['~COMMENTS'];
}