if ($productID <= 0) { continue; } $productName = isset($cartItem['NAME']) ? $cartItem['NAME'] : ''; if ($productName === '') { $dbProduct = CCrmProduct::GetList(array(), array('ID' => $productID), array('NAME')); $product = $dbProduct ? $dbProduct->Fetch() : null; $productName = is_array($product) && isset($product['NAME']) ? $product['NAME'] : ''; } if ($productName === '') { continue; } $price = isset($cartItem['PRICE']) ? $cartItem['PRICE'] : 0.0; $qty = isset($cartItem['QUANTITY']) ? $cartItem['QUANTITY'] : 0; $sum = $price * $qty; $row = array('PRODUCT_ID' => $productID, 'PRODUCT_NAME' => $productName, 'CURRENCY_ID' => isset($cartItem['CURRENCY']) ? $cartItem['CURRENCY'] : '', 'PRICE' => $price, 'QUANTITY' => $qty, 'SUM' => $sum, 'FORMATTED_PRICE' => CCrmCurrency::MoneyToString($price, $currencyID), 'FORMATTED_SUM' => CCrmCurrency::MoneyToString($sum, $currencyID)); if ($isVATMode) { // Custom processing for VAT mode $rate = isset($cartItem['VAT_RATE']) ? round(doubleval($cartItem['VAT_RATE']) * 100, 2) : 0.0; if ($rate > 0) { $row['TAX_INFOS'] = array(array('NAME' => $VATName, 'RATE' => $rate, 'FORMATTED_RATE' => "{$rate}%")); } } $resultData['PRODUCT_ROWS'][] =& $row; unset($row); } unset($cartItem); $taxInfo = CCrmMobileHelper::PrepareInvoiceTaxInfo($taxList, false); $resultData['TAX_INFOS'] = $taxInfo['ITEMS']; __CrmMobileInvoiceEditEndResonse(array('RESULT_DATA' => $resultData)); } elseif ($action === 'PREPARE_PDF') {
/** * @return array */ public function initializeDemoData(array $data) { if (!(isset($data['items']) && is_array($data['items']))) { return $data; } foreach ($data['items'] as &$item) { $config = $this->findConfigByName(isset($item['name']) ? $item['name'] : ''); if (!$config) { continue; } $item['title'] = $config->getTitle(); if (!(isset($item['positions']) && is_array($item['positions']))) { continue; } $format = $config->getFomatParams(); foreach ($item['positions'] as &$position) { $legend = isset($position['legend']) ? (double) $position['legend'] : 0.0; $legendType = 'text'; if (isset($format['enableDecimals']) && $format['enableDecimals'] == 'N') { $legend = round($legend, 0); } if (isset($format['isCurrency']) && $format['isCurrency'] == 'Y') { $legend = \CCrmCurrency::MoneyToString($legend, \CCrmCurrency::GetAccountCurrencyID()); $legendType = 'html'; } $position['legend'] = $legend; $position['legendType'] = $legendType; } unset($position); } unset($item); return $data; }
$stageID = isset($data['STAGE_ID']) ? $data['STAGE_ID'] : ''; if ($stageID === '') { __CrmMobileDealEditEndResonse(array('ERROR' => GetMessage('CRM_DEAL_STAGE_NOT_FOUND'))); } //$DB->StartTransaction(); $fields = array('STAGE_ID' => $stageID); $entity = new CCrmDeal(false); $successed = $entity->Update($ID, $fields, true, true, array()); if ($successed) { //$DB->Commit(); $errors = array(); CCrmBizProcHelper::AutoStartWorkflows(CCrmOwnerType::Deal, $ID, CCrmBizProcEventType::Edit, $errors); $dbRes = CCrmDeal::GetListEx(array(), array('=ID' => $ID, 'CHECK_PERMISSIONS' => 'N')); $currentItem = $dbRes->GetNext(); $formatParams = isset($_REQUEST['FORMAT_PARAMS']) ? $_REQUEST['FORMAT_PARAMS'] : array(); CCrmMobileHelper::PrepareDealItem($currentItem, $formatParams); __CrmMobileDealEditEndResonse(array('SAVED_ENTITY_ID' => $ID, 'SAVED_ENTITY_DATA' => CCrmMobileHelper::PrepareDealData($currentItem))); } else { //$DB->Rollback(); __CrmMobileDealEditEndResonse(array('ERROR' => $fields['RESULT_MESSAGE'])); } } elseif ($action === 'CONVERT_MONEY') { __IncludeLang(dirname(__FILE__) . '/lang/' . LANGUAGE_ID . '/' . basename(__FILE__)); $srcCurrencyID = isset($_REQUEST['SRC_CURRENCY_ID']) ? $_REQUEST['SRC_CURRENCY_ID'] : CCrmCurrency::GetBaseCurrencyID(); $dstCurrencyID = isset($_REQUEST['DST_CURRENCY_ID']) ? $_REQUEST['DST_CURRENCY_ID'] : CCrmCurrency::GetBaseCurrencyID(); $srcSum = isset($_REQUEST['SUM']) ? doubleval($_REQUEST['SUM']) : 0.0; $dstSum = CCrmCurrency::ConvertMoney($srcSum, $srcCurrencyID, $dstCurrencyID); __CrmMobileDealEditEndResonse(array('SUM' => $dstSum, 'CURRENCY_ID' => $dstCurrencyID, 'CURRENCY_NAME' => CCrmCurrency::GetCurrencyName($dstCurrencyID), 'FORMATTED_SUM' => CCrmCurrency::MoneyToString($dstSum, $dstCurrencyID))); } else { __CrmMobileDealEditEndResonse(array('ERROR' => 'Action is not supported in current context.')); }
// EMPLOYEES is displayed in sidebar. The field is added for COMPATIBILITY ONLY if ($enableInstantEdit) { $arResult['EDITABLE_FIELDS'][] = 'EMPLOYEES'; } $arResult['FIELDS']['tab_1'][] = array('id' => 'EMPLOYEES', 'name' => GetMessage('CRM_FIELD_EMPLOYEES'), 'type' => 'label', 'value' => $arResult['EMPLOYEES_LIST'][$arResult['ELEMENT']['~EMPLOYEES']], 'isTactile' => true); // <-- EMPLOYEES // REVENUE --> // REVENUE is displayed in sidebar. The field is added for COMPATIBILITY ONLY $currencyID = CCrmCurrency::GetBaseCurrencyID(); if (isset($arResult['ELEMENT']['CURRENCY_ID']) && $arResult['ELEMENT']['CURRENCY_ID'] !== '') { $currencyID = $arResult['ELEMENT']['CURRENCY_ID']; } if ($enableInstantEdit) { $arResult['EDITABLE_FIELDS'][] = 'REVENUE'; } $arResult['FIELDS']['tab_1'][] = array('id' => 'REVENUE', 'name' => GetMessage('CRM_FIELD_REVENUE'), 'value' => isset($arResult['ELEMENT']['REVENUE']) ? CCrmCurrency::MoneyToString($arResult['ELEMENT']['REVENUE'], $currencyID, '#') : '', 'type' => 'custom', 'isTactile' => true); // <-- REVENUE // CURRENCY --> $arResult['FIELDS']['tab_1'][] = array('id' => 'CURRENCY_ID', 'name' => GetMessage('CRM_FIELD_CURRENCY_ID'), 'type' => 'label', 'value' => CCrmCurrency::GetCurrencyName($currencyID), 'isTactile' => true); // <-- CURRENCY // COMMENTS --> if ($enableInstantEdit) { $arResult['EDITABLE_FIELDS'][] = 'COMMENTS'; } $arResult['FIELDS']['tab_1'][] = array('id' => 'COMMENTS', 'name' => GetMessage('CRM_FIELD_COMMENTS'), 'type' => 'custom', 'value' => isset($arResult['ELEMENT']['~COMMENTS']) ? $arResult['ELEMENT']['~COMMENTS'] : '', 'params' => array(), 'isTactile' => true); // <-- COMMENTS // OPENED --> // OPENED is displayed in sidebar. The field is added for COMPATIBILITY ONLY if ($enableInstantEdit) { $arResult['EDITABLE_FIELDS'][] = 'OPENED'; }
public function showField($arField, $arUF = array()) { $strResult = ""; switch ($arField["FORMAT"]) { case "LEAD_PROGRESS": if (!empty($arField["VALUE"])) { $strResult .= "#row_begin#"; $strResult .= "#cell_begin_left#"; $strResult .= $arField["TITLE"] . ":"; $strResult .= "#cell_end#"; $strResult .= "#cell_begin_right#"; $strResult .= '<span class="crm-feed-info-text-padding crm-feed-info-bar-cont">'; $strResult .= CCrmViewHelper::RenderLeadStatusControl(array('ENTITY_TYPE_NAME' => CCrmOwnerType::Lead, 'REGISTER_SETTINGS' => true, 'PREFIX' => "", 'ENTITY_ID' => CCrmLiveFeedEntity::Lead, 'CURRENT_ID' => $arField["VALUE"], 'READ_ONLY' => true)); $strResult .= '</span>'; $strResult .= "#cell_end#"; $strResult .= "#row_end#"; } break; case "DEAL_PROGRESS": if (!empty($arField["VALUE"])) { $strResult .= "#row_begin#"; $strResult .= "#cell_begin_left#"; $strResult .= $arField["TITLE"] . ":"; $strResult .= "#cell_end#"; $strResult .= "#cell_begin_right#"; $strResult .= '<span class="crm-feed-info-text-padding crm-feed-info-bar-cont">'; $strResult .= CCrmViewHelper::RenderDealStageControl(array('ENTITY_TYPE_NAME' => CCrmOwnerType::Deal, 'REGISTER_SETTINGS' => true, 'PREFIX' => "", 'ENTITY_ID' => CCrmLiveFeedEntity::Deal, 'CURRENT_ID' => $arField["VALUE"], 'READ_ONLY' => true)); $strResult .= '</span>'; $strResult .= "#cell_end#"; $strResult .= "#row_end#"; } break; case "INVOICE_PROGRESS": if (!empty($arField["VALUE"])) { $strResult .= "#row_begin#"; $strResult .= "#cell_begin_left#"; $strResult .= $arField["TITLE"] . ":"; $strResult .= "#cell_end#"; $strResult .= "#cell_begin_right#"; $strResult .= '<span class="crm-feed-info-text-padding crm-feed-info-bar-cont">'; $strResult .= CCrmViewHelper::RenderInvoiceStatusControl(array('ENTITY_TYPE_NAME' => CCrmOwnerType::Invoice, 'REGISTER_SETTINGS' => true, 'PREFIX' => "", 'ENTITY_ID' => CCrmLiveFeedEntity::Invoice, 'CURRENT_ID' => $arField["VALUE"], 'READ_ONLY' => true)); $strResult .= "</span>"; $strResult .= "#cell_end#"; $strResult .= "#row_end#"; } break; case "LEAD_STATUS": $infos = CCrmStatus::GetStatus('STATUS'); if (!empty($arField["VALUE"]) && array_key_exists($arField["VALUE"], $infos)) { $strResult .= "#row_begin#"; $strResult .= "#cell_begin_left#"; $strResult .= $arField["TITLE"] . ":"; $strResult .= "#cell_end#"; $strResult .= "#cell_begin_right#"; $strResult .= '<span class="crm-feed-info-text-padding">'; $strResult .= $infos[$arField["VALUE"]]["NAME"]; $strResult .= "</span>"; $strResult .= "#cell_end#"; $strResult .= "#row_end#"; } break; case "PERSON_NAME": if (is_array($arField["VALUE"])) { $strResult .= "#row_begin#"; $strResult .= "#cell_begin_left#"; $strResult .= $arField["TITLE"] . ":"; $strResult .= "#cell_end#"; $strResult .= "#cell_begin_right#"; $strResult .= '<span class="crm-feed-info-text-padding">'; $strResult .= CUser::FormatName(CSite::GetNameFormat(), $arField["VALUE"]); $strResult .= "</span>"; $strResult .= "#cell_end#"; $strResult .= "#row_end#"; } break; case "PERSON_ID": if (intval($arField["VALUE"]) > 0) { $dbUser = CUser::GetByID(intval($arField["VALUE"])); if ($arUser = $dbUser->GetNext()) { $strResult .= "#row_begin#"; $strResult .= "#cell_begin_left#"; $strResult .= $arField["TITLE"] . ":"; $strResult .= "#cell_end#"; $strResult .= "#cell_begin_right#"; if ($arUser["PERSONAL_PHOTO"] > 0) { $arFileTmp = CFile::ResizeImageGet($arUser["PERSONAL_PHOTO"], array('width' => 39, 'height' => 39), BX_RESIZE_IMAGE_EXACT, false); } $strUser = ""; $strUser .= '<div class="feed-com-avatar crm-feed-company-avatar">'; if (is_array($arFileTmp) && isset($arFileTmp['src'])) { if (strlen($this->params["PATH_TO_USER"]) > 0) { $strUser .= '<a target="_blank" href="' . str_replace(array("#user_id#", "#USER_ID#"), intval($arField["VALUE"]), $this->params["PATH_TO_USER"]) . '"><img src="' . $arFileTmp['src'] . '" alt=""/></a>'; } else { $strUser .= '<img src="' . $arFileTmp['src'] . '" alt=""/>'; } } $strUser .= '</div>'; if (strlen($this->params["PATH_TO_USER"]) > 0) { $strUser .= '<a class="crm-detail-info-resp-name" target="_blank" href="' . str_replace(array("#user_id#", "#USER_ID#"), intval($arField["VALUE"]), $this->params["PATH_TO_USER"]) . '">' . CUser::FormatName(CSite::GetNameFormat(), $arUser, true, false) . '</a>'; } else { $strUser .= '<span class="crm-detail-info-resp-name">' . CUser::FormatName(CSite::GetNameFormat(), $arUser, true, false) . '</span>'; } if (strlen($arUser["WORK_POSITION"]) > 0) { $strUser .= '<span class="crm-detail-info-resp-descr">' . $arUser["WORK_POSITION"] . '</span>'; } $strResult .= '<span class="crm-detail-info-resp">' . $strUser . '</span>'; $strResult .= "#cell_end#"; $strResult .= "#row_end#"; } } break; case "COMPANY_ID": if (intval($arField["VALUE"]) > 0) { $strResult .= "#row_begin#"; $strResult .= "#cell_begin_left#"; $strResult .= $arField["TITLE"] . ":"; $strResult .= "#cell_end#"; $strResult .= "#cell_begin_right#"; $strResult .= '<span class="crm-feed-info-text-padding">'; $strResult .= CCrmViewHelper::PrepareEntityBaloonHtml(array('ENTITY_TYPE_ID' => CCrmOwnerType::Company, 'ENTITY_ID' => $arField["VALUE"], 'PREFIX' => "", 'CLASS_NAME' => '', 'CHECK_PERMISSIONS' => 'N')); $strResult .= '</span>'; $strResult .= "#cell_end#"; $strResult .= "#row_end#"; } break; case "COMPANY_TYPE": $infos = CCrmStatus::GetStatusListEx('COMPANY_TYPE'); if (!empty($arField["VALUE"]) && array_key_exists($arField["VALUE"], $infos)) { $strResult .= "#row_begin#"; $strResult .= "#cell_begin_left#"; $strResult .= $arField["TITLE"] . ":"; $strResult .= "#cell_end#"; $strResult .= "#cell_begin_right#"; $strResult .= '<span class="crm-feed-info-text-padding">'; $strResult .= $infos[$arField["VALUE"]]; $strResult .= '</span>'; $strResult .= "#cell_end#"; $strResult .= "#row_end#"; } break; case "CONTACT_ID": if (intval($arField["VALUE"]) > 0) { $strResult .= "#row_begin#"; $strResult .= "#cell_begin_left#"; $strResult .= $arField["TITLE"] . ":"; $strResult .= "#cell_end#"; $strResult .= "#cell_begin_right#"; $strResult .= '<div class="crm-feed-client-block">'; $strResult .= '<span class="feed-com-avatar crm-feed-user-avatar">'; $dbRes = CCrmContact::GetListEx(array(), array('=ID' => $arField["VALUE"], 'CHECK_PERMISSIONS' => 'N'), false, false, array('PHOTO')); if (($arRes = $dbRes->Fetch()) && intval($arRes["PHOTO"]) > 0) { $arFileTmp = CFile::ResizeImageGet($arRes["PHOTO"], array('width' => 39, 'height' => 39), BX_RESIZE_IMAGE_EXACT, false); if (is_array($arFileTmp) && isset($arFileTmp["src"])) { $strResult .= '<img width="39" height="39" src="' . $arFileTmp['src'] . '" alt="">'; } } $strResult .= '</span>'; $strResult .= CCrmViewHelper::PrepareEntityBaloonHtml(array('ENTITY_TYPE_ID' => CCrmOwnerType::Contact, 'ENTITY_ID' => $arField["VALUE"], 'PREFIX' => "", 'CLASS_NAME' => '', 'CHECK_PERMISSIONS' => 'N')); $strResult .= '</div>'; $strResult .= "#cell_end#"; $strResult .= "#row_end#"; } break; case "COMBI_CLIENT": if (is_array($arField["VALUE"]) && (array_key_exists("CONTACT_ID", $arField["VALUE"]) && intval($arField["VALUE"]["CONTACT_ID"]) > 0 || array_key_exists("CONTACT_NAME", $arField["VALUE"]) && strlen($arField["VALUE"]["CONTACT_NAME"]) > 0 || array_key_exists("CONTACT_LAST_NAME", $arField["VALUE"]) && strlen($arField["VALUE"]["CONTACT_LAST_NAME"]) > 0 || array_key_exists("COMPANY_ID", $arField["VALUE"]) && intval($arField["VALUE"]["COMPANY_ID"]) > 0)) { $strResult .= "#row_begin#"; $strResult .= "#cell_begin_left#"; $strResult .= $arField["TITLE"] . ":"; $strResult .= "#cell_end#"; $strResult .= "#cell_begin_right#"; if (array_key_exists("CONTACT_ID", $arField["VALUE"]) && intval($arField["VALUE"]["CONTACT_ID"]) > 0 || array_key_exists("CONTACT_NAME", $arField["VALUE"]) && strlen($arField["VALUE"]["CONTACT_NAME"]) > 0 || array_key_exists("CONTACT_LAST_NAME", $arField["VALUE"]) && strlen($arField["VALUE"]["CONTACT_LAST_NAME"]) > 0) { if (array_key_exists("CONTACT_ID", $arField["VALUE"]) && intval($arField["VALUE"]["CONTACT_ID"]) > 0) { $strResult .= '<div class="crm-feed-client-block">'; $strResult .= '<span class="feed-com-avatar crm-feed-user-avatar">'; $dbRes = CCrmContact::GetListEx(array(), array('=ID' => $arField["VALUE"]["CONTACT_ID"], 'CHECK_PERMISSIONS' => 'N'), false, false, array('PHOTO', 'COMPANY_ID')); if ($arRes = $dbRes->Fetch()) { $contactCompanyID = $arRes['COMPANY_ID']; if (intval($arRes["PHOTO"]) > 0) { $arFileTmp = CFile::ResizeImageGet($arRes["PHOTO"], array('width' => 39, 'height' => 39), BX_RESIZE_IMAGE_EXACT, false); if (is_array($arFileTmp) && isset($arFileTmp["src"])) { $strResult .= '<img width="39" height="39" src="' . $arFileTmp['src'] . '" alt="">'; } } } $strResult .= '</span>'; $strResult .= CCrmViewHelper::PrepareEntityBaloonHtml(array('ENTITY_TYPE_ID' => CCrmOwnerType::Contact, 'ENTITY_ID' => $arField["VALUE"]["CONTACT_ID"], 'PREFIX' => '', 'CLASS_NAME' => '', 'CHECK_PERMISSIONS' => 'N')); } else { $strResult .= '<div class="crm-feed-client-block">'; $strResult .= '<span class="feed-com-avatar crm-feed-user-avatar">'; if (intval($arField['VALUE']['PHOTO_ID']) > 0) { $arFileTmp = CFile::ResizeImageGet($arField['VALUE']['PHOTO_ID'], array('width' => 39, 'height' => 39), BX_RESIZE_IMAGE_EXACT, false); if (is_array($arFileTmp) && isset($arFileTmp["src"])) { $strResult .= '<img width="39" height="39" src="' . $arFileTmp['src'] . '" alt="">'; } } $strResult .= '</span>'; if (array_key_exists("ENTITY_ID", $arField["VALUE"]) && intval($arField["VALUE"]["ENTITY_ID"]) > 0) { $url = CCrmOwnerType::GetShowUrl(CCrmOwnerType::Contact, $arField["VALUE"]["ENTITY_ID"], true); } $clientName = CCrmContact::PrepareFormattedName(array('HONORIFIC' => isset($arField['VALUE']['HONORIFIC']) ? $arField['VALUE']['HONORIFIC'] : '', 'NAME' => isset($arField['VALUE']['CONTACT_NAME']) ? $arField['VALUE']['CONTACT_NAME'] : '', 'LAST_NAME' => isset($arField['VALUE']['CONTACT_LAST_NAME']) ? $arField['VALUE']['CONTACT_LAST_NAME'] : '', 'SECOND_NAME' => isset($arField['VALUE']['CONTACT_SECOND_NAME']) ? $arField['VALUE']['CONTACT_SECOND_NAME'] : '')); $strResult .= strlen($url) > 0 ? '<a href="' . $url . '" class="crm-feed-client-name">' . $clientName . '</a>' : $clientName; } $strResult .= '<span class="crm-feed-client-company">'; $strResult .= CCrmViewHelper::PrepareEntityBaloonHtml(array('ENTITY_TYPE_ID' => CCrmOwnerType::Company, 'ENTITY_ID' => array_key_exists("COMPANY_ID", $arField["VALUE"]) && intval($arField["VALUE"]["COMPANY_ID"]) > 0 ? $arField["VALUE"]["COMPANY_ID"] : intval($contactCompanyID), 'PREFIX' => '', 'CLASS_NAME' => '', 'CHECK_PERMISSIONS' => 'N')); $strResult .= '</span>'; $strResult .= '</div>'; } else { $strResult .= CCrmViewHelper::PrepareEntityBaloonHtml(array('ENTITY_TYPE_ID' => CCrmOwnerType::Company, 'ENTITY_ID' => $arField["VALUE"]["COMPANY_ID"], 'PREFIX' => "", 'CLASS_NAME' => '', 'CHECK_PERMISSIONS' => 'N')); } $strResult .= "#cell_end#"; $strResult .= "#row_end#"; } break; case "COMBI_COMPANY": if (is_array($arField["VALUE"]) && (array_key_exists("TITLE", $arField["VALUE"]) && strlen($arField["VALUE"]["TITLE"]) > 0)) { $strResult .= "#row_begin#"; $strResult .= "#cell_begin_left#"; $strResult .= $arField["TITLE"] . ":"; $strResult .= "#cell_end#"; $strResult .= "#cell_begin_right#"; $url = CCrmOwnerType::GetShowUrl(CCrmOwnerType::Company, $arField["VALUE"]["ENTITY_ID"]); if (intval($arField['VALUE']['LOGO_ID']) > 0) { $arFileTmp = CFile::ResizeImageGet($arField['VALUE']['LOGO_ID'], array('width' => 39, 'height' => 39), BX_RESIZE_IMAGE_EXACT, false); } if (is_array($arFileTmp) && isset($arFileTmp['src'])) { $strResult .= '<a class="crm-feed-user-block" href="' . $url . '">'; $strResult .= '<span class="feed-com-avatar crm-feed-company-avatar">'; $strResult .= '<img width="39" height="39" alt="" src="' . $arFileTmp['src'] . '">'; $strResult .= '</span>'; $strResult .= '<span class="crm-feed-user-name">' . $arField["VALUE"]["TITLE"] . '</span>'; $strResult .= '</a>'; } else { $strResult .= '<a class="crm-feed-info-link" href="' . $url . '">' . $arField["VALUE"]["TITLE"] . '</a>'; } $strResult .= "#cell_end#"; $strResult .= "#row_end#"; } break; case "COMBI_CLIENT_NAME": if (is_array($arField["VALUE"]) && (array_key_exists("CONTACT_NAME", $arField["VALUE"]) && strlen($arField["VALUE"]["CONTACT_NAME"]) > 0 || array_key_exists("CONTACT_LAST_NAME", $arField["VALUE"]) && strlen($arField["VALUE"]["CONTACT_LAST_NAME"]) > 0 || array_key_exists("COMPANY_TITLE", $arField["VALUE"]) && strlen($arField["VALUE"]["COMPANY_TITLE"]) > 0)) { $strResult .= "#row_begin#"; $strResult .= "#cell_begin_left#"; $strResult .= $arField["TITLE"] . ":"; $strResult .= "#cell_end#"; $strResult .= "#cell_begin_right#"; if (array_key_exists("CONTACT_NAME", $arField["VALUE"]) && strlen($arField["VALUE"]["CONTACT_NAME"]) > 0 || array_key_exists("CONTACT_LAST_NAME", $arField["VALUE"]) && strlen($arField["VALUE"]["CONTACT_LAST_NAME"]) > 0) { $strResult .= '<div class="crm-feed-client-block">'; $strResult .= '<span class="feed-com-avatar crm-feed-user-avatar"></span>'; $strResult .= CCrmContact::PrepareFormattedName(array("HONORIFIC" => $arField["VALUE"]["HONORIFIC"], "NAME" => $arField["VALUE"]["CONTACT_NAME"], "LAST_NAME" => $arField["VALUE"]["CONTACT_LAST_NAME"], "SECOND_NAME" => $arField["VALUE"]["CONTACT_SECOND_NAME"])); $strResult .= '<span class="crm-feed-client-company">' . (strlen($arField["VALUE"]["COMPANY_TITLE"]) > 0 ? $arField["VALUE"]["COMPANY_TITLE"] : "") . '</span>'; $strResult .= '</div>'; } else { $strResult .= $arField["VALUE"]["COMPANY_TITLE"]; } $strResult .= "#cell_end#"; $strResult .= "#row_end#"; } break; case "DEAL_ID": if (intval($arField["VALUE"]) > 0) { $strResult .= "#row_begin#"; $strResult .= "#cell_begin_left#"; $strResult .= $arField["TITLE"] . ":"; $strResult .= "#cell_end#"; $strResult .= "#cell_begin_right#"; $strResult .= '<span class="crm-feed-info-text-padding">'; $strResult .= CCrmViewHelper::PrepareEntityBaloonHtml(array('ENTITY_TYPE_ID' => CCrmOwnerType::Deal, 'ENTITY_ID' => $arField["VALUE"], 'PREFIX' => "", 'CLASS_NAME' => '', 'CHECK_PERMISSIONS' => 'N')); $strResult .= '</span>'; $strResult .= "#cell_end#"; $strResult .= "#row_end#"; } break; case "COMMUNICATIONS": if (is_array($arField["VALUE"]) && count($arField["VALUE"]) > 0) { $arCommunication = $arField["VALUE"][0]; $strResult .= "#row_begin#"; $strResult .= "#cell_begin_left#"; $strResult .= $arField["TITLE"] . ":"; $strResult .= "#cell_end#"; $strResult .= "#cell_begin_right#"; $strResult .= '<div class="crm-feed-client-block">'; if (in_array($arCommunication["ENTITY_TYPE_ID"], array(CCrmOwnerType::Company, CCrmOwnerType::Contact, CCrmOwnerType::Lead))) { $strResult .= '<span class="feed-com-avatar crm-feed-user-avatar">'; if ($arCommunication["ENTITY_TYPE_ID"] == CCrmOwnerType::Contact) { $dbRes = CCrmContact::GetListEx(array(), array('=ID' => $arCommunication["ENTITY_ID"], 'CHECK_PERMISSIONS' => 'N'), false, false, array('PHOTO')); if (($arRes = $dbRes->Fetch()) && intval($arRes["PHOTO"]) > 0) { $arFileTmp = CFile::ResizeImageGet($arRes["PHOTO"], array('width' => 39, 'height' => 39), BX_RESIZE_IMAGE_EXACT, false); if (is_array($arFileTmp) && isset($arFileTmp["src"])) { $strResult .= '<img width="39" height="39" src="' . $arFileTmp['src'] . '" alt="">'; } } } elseif ($arCommunication["ENTITY_TYPE_ID"] == CCrmOwnerType::Company) { $dbRes = CCrmCompany::GetListEx(array(), array('=ID' => $arCommunication["ENTITY_ID"], 'CHECK_PERMISSIONS' => 'N'), false, false, array('LOGO')); if (($arRes = $dbRes->Fetch()) && intval($arRes["LOGO"]) > 0) { $arFileTmp = CFile::ResizeImageGet($arRes["LOGO"], array('width' => 30, 'height' => 30), BX_RESIZE_IMAGE_EXACT, false); if (is_array($arFileTmp) && isset($arFileTmp["src"])) { $strResult .= '<img width="30" height="30" src="' . $arFileTmp['src'] . '" alt="">'; } } } $strResult .= '</span>'; } $arBaloonFields = array('ENTITY_TYPE_ID' => $arCommunication["ENTITY_TYPE_ID"], 'ENTITY_ID' => $arCommunication["ENTITY_ID"], 'PREFIX' => "", 'CLASS_NAME' => 'crm-feed-client-name', 'CHECK_PERMISSIONS' => 'N'); if ($arCommunication["ENTITY_TYPE_ID"] == CCrmOwnerType::Lead && is_array($arCommunication["ENTITY_SETTINGS"])) { $arBaloonFields["TITLE"] = isset($arCommunication["ENTITY_SETTINGS"]["LEAD_TITLE"]) ? htmlspecialcharsback($arCommunication["ENTITY_SETTINGS"]["LEAD_TITLE"]) : ""; $arBaloonFields["NAME"] = isset($arCommunication["ENTITY_SETTINGS"]["NAME"]) ? htmlspecialcharsback($arCommunication["ENTITY_SETTINGS"]["NAME"]) : ""; $arBaloonFields["LAST_NAME"] = isset($arCommunication["ENTITY_SETTINGS"]["LAST_NAME"]) ? htmlspecialcharsback($arCommunication["ENTITY_SETTINGS"]["LAST_NAME"]) : ""; $arBaloonFields["SECOND_NAME"] = isset($arCommunication["ENTITY_SETTINGS"]["SECOND_NAME"]) ? htmlspecialcharsback($arCommunication["ENTITY_SETTINGS"]["SECOND_NAME"]) : ""; } $strResult .= '<div>' . CCrmViewHelper::PrepareEntityBaloonHtml($arBaloonFields) . '</div>'; switch ($arCommunication["TYPE"]) { case 'EMAIL': $strResult .= '<div><a href="mailto:' . $arCommunication["VALUE"] . '" class="crm-feed-client-phone">' . $arCommunication["VALUE"] . '</div>'; break; case 'PHONE': if (CCrmSipHelper::isEnabled()) { ob_start(); ?> <script type="text/javascript"> if (typeof (window.bSipManagerUrlDefined_<?php echo $arCommunication["ENTITY_TYPE_ID"]; ?> ) === 'undefined') { window.bSipManagerUrlDefined_<?php echo $arCommunication["ENTITY_TYPE_ID"]; ?> = true; BX.ready( function() { var mgr = BX.CrmSipManager.getCurrent(); mgr.setServiceUrl( "CRM_<?php echo CUtil::JSEscape(CCrmOwnerType::ResolveName($arCommunication["ENTITY_TYPE_ID"])); ?> ", "<?php echo CUtil::JSEscape($this->arSipServiceUrl[$arCommunication["ENTITY_TYPE_ID"]]); ?> " ); if(typeof(BX.CrmSipManager.messages) === 'undefined') { BX.CrmSipManager.messages = { "unknownRecipient": "<?php echo GetMessageJS('CRM_LF_SIP_MGR_UNKNOWN_RECIPIENT'); ?> ", "enableCallRecording": "<?php echo GetMessageJS('CRM_LF_SIP_MGR_ENABLE_CALL_RECORDING'); ?> ", "makeCall": "<?php echo GetMessageJS('CCRM_LF_SIP_MGR_MAKE_CALL'); ?> " }; } } ); } </script> <?php $strResult .= ob_get_contents(); ob_end_clean(); } $strResult .= '<div><span class="crm-feed-num-block">' . CCrmViewHelper::PrepareMultiFieldHtml('PHONE', array('VALUE' => $arCommunication["VALUE"], 'VALUE_TYPE_ID' => 'WORK'), array('ENABLE_SIP' => true, 'SIP_PARAMS' => array('ENTITY_TYPE' => 'CRM_' . CCrmOwnerType::ResolveName($arCommunication["ENTITY_TYPE_ID"]), 'ENTITY_ID' => $arCommunication["ENTITY_ID"]))) . '</span></div>'; if (defined("BX_COMP_MANAGED_CACHE")) { $GLOBALS["CACHE_MANAGER"]->RegisterTag("CRM_CALLTO_SETTINGS"); } break; } $strResult .= '<span class="crm-feed-client-company">' . (is_array($arCommunication["ENTITY_SETTINGS"]) && isset($arCommunication["ENTITY_SETTINGS"]["COMPANY_TITLE"]) ? $arCommunication["ENTITY_SETTINGS"]["COMPANY_TITLE"] : "") . '</span>'; $strResult .= '</div>'; $moreCnt = count($arField["VALUE"]) - 1; if ($moreCnt > 0) { $strResult .= "#clients_more_link#"; } $strResult .= "#cell_end#"; $strResult .= "#row_end#"; } break; case "AVATAR_ID": if (intval($arField["VALUE"]) > 0) { $arFileTmp = CFile::ResizeImageGet($arField["VALUE"], array('width' => $this->params["AVATAR_SIZE"], 'height' => $this->params["AVATAR_SIZE"]), BX_RESIZE_IMAGE_EXACT, false); $strResult .= "#row_begin#"; $strResult .= "#cell_begin_left#"; $strResult .= $arField["TITLE"] . ":"; $strResult .= "#cell_end#"; $strResult .= "#cell_begin_right#"; $strResult .= '<span class="crm-feed-info-text-padding">'; $strResult .= '<img src="' . $arFileTmp["src"] . '" border="0" alt="' . $this->params["AVATAR_SIZE"] . '" width="" height="' . $this->params["AVATAR_SIZE"] . '">'; $strResult .= '</span>'; $strResult .= "#cell_end#"; $strResult .= "#row_end#"; } break; case "SUM": if (intval($arField["VALUE"]["VALUE"]) > 0) { $strResult .= "#row_begin#"; $strResult .= "#cell_begin_left#"; $strResult .= $arField["TITLE"] . ":"; $strResult .= "#cell_end#"; $strResult .= "#cell_begin_right#"; $strResult .= '<span class="crm-feed-info-text-padding">'; $strResult .= '<span class="crm-feed-info-sum">' . CCrmCurrency::MoneyToString($arField["VALUE"]["VALUE"], $arField["VALUE"]["CURRENCY"]) . '</span>'; $strResult .= '</span>'; $strResult .= "#cell_end#"; $strResult .= "#row_end#"; } break; case "PHONE": case "EMAIL": if (!empty($arField["VALUE"])) { $infos = CCrmFieldMulti::GetEntityTypes(); $strResult .= "#row_begin#"; $strResult .= "#cell_begin_left#"; $strResult .= $arField["TITLE"] . ":"; $strResult .= "#cell_end#"; $strResult .= "#cell_begin_right#"; $strResult .= '<span class="crm-feed-info-text-padding">'; $strResult .= CCrmViewHelper::PrepareFirstMultiFieldHtml($arField["FORMAT"], $arField["VALUE"], $infos[$arField["FORMAT"]]); if (count($arField["VALUE"]) > 1 || !empty($arField["VALUE"]["WORK"]) && count($arField["VALUE"]["WORK"]) > 1 || !empty($arField["VALUE"]["MOBILE"]) && count($arField["VALUE"]["MOBILE"]) > 1 || !empty($arField["VALUE"]["FAX"]) && count($arField["VALUE"]["FAX"]) > 1 || !empty($arField["VALUE"]["PAGER"]) && count($arField["VALUE"]["PAGER"]) > 1 || !empty($arField["VALUE"]["OTHER"]) && count($arField["VALUE"]["OTHER"]) > 1) { $anchorID = strtolower($arField["FORMAT"]); $strResult .= '<span style="margin-left: 10px;" class="crm-item-tel-list" id="' . htmlspecialcharsbx($anchorID) . '"' . ' onclick="' . CCrmViewHelper::PrepareMultiFieldValuesPopup($anchorID, $anchorID, $arField["FORMAT"], $arField["VALUE"], $infos[$arField["FORMAT"]]) . '"></span>'; } $strResult .= '</span>'; $strResult .= "#cell_end#"; $strResult .= "#row_end#"; if ($arField["FORMAT"] == "PHONE" && defined("BX_COMP_MANAGED_CACHE")) { $GLOBALS["CACHE_MANAGER"]->RegisterTag("CRM_CALLTO_SETTINGS"); } } break; case "TEXT_FORMATTED": case "TEXT_FORMATTED_BOLD": if ($arField["VALUE"] != CCrmLiveFeed::UntitledMessageStub) { $text_formatted = $this->ParseText(htmlspecialcharsback($arField["VALUE"]), $arUF, $arParams["PARAMS"]); if (strlen($text_formatted) > 0) { $strResult .= "#row_begin#"; $strResult .= "#cell_begin_colspan2#"; if ($arField["FORMAT"] == "TEXT_FORMATTED_BOLD") { $strResult .= "<b>" . $text_formatted . "</b>"; } else { $strResult .= $text_formatted; } $strResult .= "#cell_end#"; $strResult .= "#row_end#"; } } break; case "COMBI_TITLE": if (is_array($arField["VALUE"]) && array_key_exists("TITLE", $arField["VALUE"]) && strlen($arField["VALUE"]["TITLE"]) > 0) { $strResult .= "#row_begin#"; $strResult .= "#cell_begin_left#"; $strResult .= $arField["TITLE"] . ":"; $strResult .= "#cell_end#"; $strResult .= "#cell_begin_right#"; $strResult .= '<span class="crm-feed-info-text-padding">'; if (array_key_exists("URL", $arField["VALUE"]) && strlen($arField["VALUE"]["URL"]) > 0) { $strResult .= '<a href="' . $arField["VALUE"]["URL"] . '">' . $arField["VALUE"]["TITLE"] . '</a>'; } elseif (array_key_exists("ONCLICK", $arField["VALUE"]) && strlen($arField["VALUE"]["ONCLICK"]) > 0) { $strResult .= '<a href="javascript:void(0)" onclick="' . $arField["VALUE"]["ONCLICK"] . '">' . $arField["VALUE"]["TITLE"] . '</a>'; } else { $strResult .= $arField["VALUE"]["TITLE"]; } $strResult .= '</span>'; $strResult .= "#cell_end#"; $strResult .= "#row_end#"; } break; case "COMBI_TITLE_ID": if (is_array($arField["VALUE"]) && array_key_exists("TITLE", $arField["VALUE"]) && strlen($arField["VALUE"]["TITLE"]) > 0 && array_key_exists("ID", $arField["VALUE"]) && strlen($arField["VALUE"]["ID"]) > 0) { $strResult .= "#row_begin#"; $strResult .= "#cell_begin_left#"; $strResult .= $arField["TITLE"] . ":"; $strResult .= "#cell_end#"; $strResult .= "#cell_begin_right#"; $strResult .= '<span class="crm-feed-info-text-padding">'; if (array_key_exists("URL", $arField["VALUE"]) && strlen($arField["VALUE"]["URL"]) > 0) { $strResult .= '<a href="' . $arField["VALUE"]["URL"] . '">' . GetMessage("C_CRM_LF_COMBI_TITLE_ID_VALUE", array("#ID#" => $arField["VALUE"]["ID"], "#TITLE#" => $arField["VALUE"]["TITLE"])) . '</a>'; } else { $strResult .= GetMessage("C_CRM_LF_COMBI_TITLE_ID_VALUE", array("#ID#" => $arField["VALUE"]["ID"], "#TITLE#" => $arField["VALUE"]["TITLE"])); } $strResult .= '</span>'; $strResult .= "#cell_end#"; $strResult .= "#row_end#"; } break; case "TEXT_ADD": if (strlen($arField["VALUE"]) > 0) { $strResult .= "#row_begin#"; $strResult .= "#cell_begin_left#"; $strResult .= $arField["TITLE"] . ":"; $strResult .= "#cell_end#"; $strResult .= "#cell_begin_right#"; $strResult .= '<span class="crm-feed-info-text-padding">'; $strResult .= '<span class="crm-feed-info-name">' . $arField["VALUE"] . '</span>'; $strResult .= '</span>'; $strResult .= "#cell_end#"; $strResult .= "#row_end#"; } break; case "TEXT": default: if (strlen($arField["VALUE"]) > 0) { $strResult .= "#row_begin#"; $strResult .= "#cell_begin_left#"; $strResult .= $arField["TITLE"] . ":"; $strResult .= "#cell_end#"; $strResult .= "#cell_begin_right#"; $strResult .= '<span class="crm-feed-info-text-padding">'; $strResult .= $arField["VALUE"]; $strResult .= '</span>'; $strResult .= "#cell_end#"; $strResult .= "#row_end#"; } } return $strResult; }
} if ($mode === 'GET_USER_INFO') { $result = array(); if (!CCrmInstantEditorHelper::PrepareUserInfo(isset($_POST['USER_ID']) ? intval($_POST['USER_ID']) : 0, $result)) { __CrmCompanyShowEndJsonResonse(array('ERROR' => 'COULD NOT PREPARE USER INFO!')); } else { __CrmCompanyShowEndJsonResonse(array('USER_INFO' => $result)); } } if ($mode === 'GET_FORMATTED_SUM') { $sum = isset($_POST['SUM']) ? $_POST['SUM'] : 0.0; $currencyID = isset($_POST['CURRENCY_ID']) ? $_POST['CURRENCY_ID'] : ''; if ($currencyID === '') { $currencyID = CCrmCurrency::GetBaseCurrencyID(); } __CrmCompanyShowEndJsonResonse(array('FORMATTED_SUM' => CCrmCurrency::MoneyToString($sum, $currencyID, '#'))); } if ($mode === 'GET_USER_SELECTOR') { if (!CCrmCompany::CheckUpdatePermission(0, $currentUserPermissions)) { __CrmCompanyShowEndHtmlResonse(); } $name = isset($_POST['NAME']) ? $_POST['NAME'] : ''; $GLOBALS['APPLICATION']->RestartBuffer(); Header('Content-Type: text/html; charset=' . LANG_CHARSET); $APPLICATION->IncludeComponent('bitrix:intranet.user.selector.new', '.default', array('MULTIPLE' => 'N', 'NAME' => $name, 'POPUP' => 'Y', 'SITE_ID' => SITE_ID), null, array('HIDE_ICONS' => 'Y')); __CrmCompanyShowEndHtmlResonse(); } if ($mode === 'GET_VISUAL_EDITOR') { if (!CCrmCompany::CheckUpdatePermission(0, $currentUserPermissions)) { __CrmCompanyShowEndHtmlResonse(); }
$arResult['DB_LIST'] = $dbResult; $arResult['DB_FILTER'] = $arFilter; while ($arLead = $dbResult->GetNext()) { $arResult['LEAD'][$arLead['ID']] = $arLead; $arResult['LEAD_ID'][$arLead['ID']] = $arLead['ID']; $arResult['LEAD_UF'][$arLead['ID']] = array(); } } } $now = time() + CTimeZone::GetOffset(); foreach ($arResult['LEAD'] as &$arLead) { if (!empty($arLead['WEB']) && strpos($arLead['WEB'], '://') === false) { $arLead['WEB'] = 'http://' . $arLead['WEB']; } $currencyID = isset($arLead['CURRENCY_ID']) ? $arLead['CURRENCY_ID'] : CCrmCurrency::GetBaseCurrencyID(); $arLead['FORMATTED_OPPORTUNITY'] = CCrmCurrency::MoneyToString($arLead['~OPPORTUNITY'], $currencyID); $statusID = isset($arLead['STATUS_ID']) ? $arLead['STATUS_ID'] : ''; $arLead['LEAD_STATUS_NAME'] = isset($arResult['STATUS_LIST'][$statusID]) ? $arResult['STATUS_LIST'][$statusID] : $statusID; $sourceID = isset($arLead['SOURCE_ID']) ? $arLead['SOURCE_ID'] : ''; $arLead['LEAD_SOURCE_NAME'] = isset($arResult['SOURCE_LIST'][$sourceID]) ? $arResult['SOURCE_LIST'][$sourceID] : $sourceID; $arLead['DELETE'] = $isAdmin || $arLead['STATUS_ID'] != 'CONVERTED' && !$arResult['INTERNAL']; $arLead['EDIT'] = !$arResult['INTERNAL'] || $arLead['STATUS_ID'] != 'CONVERTED'; $arLead['PATH_TO_LEAD_SHOW'] = CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_LEAD_SHOW'], array('lead_id' => $arLead['ID'])); $arLead['PATH_TO_LEAD_EDIT'] = CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_LEAD_EDIT'], array('lead_id' => $arLead['ID'])); $arLead['PATH_TO_LEAD_COPY'] = CHTTP::urlAddParams(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_LEAD_EDIT'], array('lead_id' => $arLead['ID'])), array('copy' => 1)); $arLead['PATH_TO_LEAD_CONVERT'] = CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_LEAD_CONVERT'], array('lead_id' => $arLead['ID'])); $arLead['PATH_TO_LEAD_DELETE'] = CHTTP::urlAddParams($bInternal ? $APPLICATION->GetCurPage() : $arParams['PATH_TO_LEAD_LIST'], array('action_' . $arResult['GRID_ID'] => 'delete', 'ID' => $arLead['ID'], 'sessid' => $arResult['SESSION_ID'])); $arLead['PATH_TO_USER_PROFILE'] = CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_USER_PROFILE'], array('user_id' => $arLead['ASSIGNED_BY'])); $arLead['PATH_TO_USER_BP'] = CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_USER_BP'], array('user_id' => $userID)); $arLead['PATH_TO_USER_CREATOR'] = CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_USER_PROFILE'], array('user_id' => $arLead['CREATED_BY'])); $arLead['PATH_TO_USER_MODIFIER'] = CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_USER_PROFILE'], array('user_id' => $arLead['MODIFY_BY']));
$row['TAX_INFOS'] = array(array('NAME' => $VATName, 'RATE' => $rate, 'FORMATTED_RATE' => "{$rate}%")); } } $arResult['PRODUCT_ROWS'][] =& $row; unset($row); } unset($cartItem); } } else { $arResult['TAX_INFOS'] = array(); $arResult['SUM_BRUTTO'] = $arResult['SUM_NETTO'] = 0.0; } //<-- PRODUCT_ROWS, TAX_INFOS, SUM_BRUTTO, SUM_NETTO // FORMATTED_SUM_NETTO, FORMATTED_SUM_BRUTTO --> $arResult['FORMATTED_SUM_NETTO'] = CCrmCurrency::MoneyToString($arResult['SUM_NETTO'], $currencyID); $arResult['FORMATTED_SUM_BRUTTO'] = CCrmCurrency::MoneyToString($arResult['SUM_BRUTTO'], $currencyID); //<-- FORMATTED_SUM_NETTO, FORMATTED_SUM_BRUTTO $arResult['ENTITY'] = $arFields; unset($arFields); $sid = bitrix_sessid(); $serviceURLTemplate = $arParams["SERVICE_URL_TEMPLATE"] ? $arParams["SERVICE_URL_TEMPLATE"] : '#SITE_DIR#bitrix/components/bitrix/mobile.crm.invoice.edit/ajax.php?site_id=#SITE#&sessid=#SID#'; $arResult['SERVICE_URL'] = CComponentEngine::makePathFromTemplate($serviceURLTemplate, array('SID' => $sid)); $arResult['DEAL_SELECTOR_URL'] = CComponentEngine::makePathFromTemplate($arParams['DEAL_SELECTOR_URL_TEMPLATE'], array('context_id' => $contextID)); $productRowUrlTemplate = $arParams["PRODUCT_ROW_URL_TEMPLATE"] ? $arParams["PRODUCT_ROW_URL_TEMPLATE"] : '#SITE_DIR#bitrix/components/bitrix/mobile.crm.product_row.edit/ajax.php?site_id=#SITE#&sessid=#SID#'; $arResult['PRODUCT_ROW_SERVICE_URL'] = CComponentEngine::makePathFromTemplate($productRowUrlTemplate, array('SID' => $sid)); /*$arResult['CURRENCY_SELECTOR_URL'] = CComponentEngine::makePathFromTemplate( $arParams['CURRENCY_SELECTOR_URL_TEMPLATE'], array('context_id' => '') );*/ $arResult['INVOICE_STATUS_SELECTOR_URL'] = CComponentEngine::makePathFromTemplate($arParams['INVOICE_STATUS_SELECTOR_URL_TEMPLATE'], array('context_id' => '')); $arResult['PRODUCT_ROW_EDIT_URL'] = CComponentEngine::makePathFromTemplate($arParams['PRODUCT_ROW_EDIT_URL_TEMPLATE'], array('context_id' => ''));
$enableSaleDiscount = isset($_POST['ENABLE_ADDITIONAL_DISCOUNT']) && strtoupper($_POST['ENABLE_ADDITIONAL_DISCOUNT']) === 'Y'; $calculateOptions = array(); $isLDTaxAllowed = isset($_POST['ALLOW_LD_TAX']) ? $_POST['ALLOW_LD_TAX'] === 'Y' : CCrmTax::isTaxMode(); if ($isLDTaxAllowed && isset($_POST['LOCATION_ID'])) { $calculateOptions['LOCATION_ID'] = $_POST['LOCATION_ID']; } $result = CCrmSaleHelper::Calculate($productRows, $currencyID, $personTypeID, $enableSaleDiscount, $siteID, $calculateOptions); if (!is_array($result)) { $result = array(); } $totalSum = isset($result['PRICE']) ? round(doubleval($result['PRICE']), 2) : 0.0; $totalTax = isset($result['TAX_VALUE']) ? round(doubleval($result['TAX_VALUE']), 2) : 0.0; $totalBeforeTax = round($totalSum - $totalTax, 2); $totalBeforeDiscount = round($totalBeforeTax + $totalDiscount, 2); $arResponse = array('TOTALS' => array('TOTAL_SUM' => $totalSum, 'TOTAL_TAX' => $totalTax, 'TOTAL_BEFORE_TAX' => $totalBeforeTax, 'TOTAL_DISCOUNT' => $totalDiscount, 'TOTAL_BEFORE_DISCOUNT' => $totalBeforeDiscount, 'TOTAL_SUM_FORMATTED' => CCrmCurrency::MoneyToString($totalSum, $currencyID), 'TOTAL_TAX_FORMATTED' => CCrmCurrency::MoneyToString($totalTax, $currencyID), 'TOTAL_BEFORE_TAX_FORMATTED' => CCrmCurrency::MoneyToString($totalBeforeTax, $currencyID), 'TOTAL_DISCOUNT_FORMATTED' => CCrmCurrency::MoneyToString($totalDiscount, $currencyID), 'TOTAL_BEFORE_DISCOUNT_FORMATTED' => CCrmCurrency::MoneyToString($totalBeforeDiscount, $currencyID))); if ($isLDTaxAllowed) { $taxes = is_array($result['TAX_LIST']) ? $result['TAX_LIST'] : null; if (!is_array($taxes) || count($taxes) === 0) { $LDTaxes = array(array('TAX_NAME' => GetMessage('CRM_PRODUCT_TOTAL_TAX'), 'TAX_VALUE' => CCrmCurrency::MoneyToString($totalTax, $currencyID))); } $LDTaxPrecision = isset($_POST['LD_TAX_PRECISION']) ? intval($_POST['LD_TAX_PRECISION']) : 2; if (is_array($taxes)) { foreach ($taxes as $taxInfo) { $LDTaxes[] = array('TAX_NAME' => sprintf("%s%s%s", $taxInfo["IS_IN_PRICE"] == "Y" ? GetMessage('CRM_PRODUCT_TAX_INCLUDING') . " " : "", $taxInfo["NAME"], $taxInfo["IS_PERCENT"] == "Y" ? sprintf(' (%s%%)', roundEx($taxInfo["VALUE"], $LDTaxPrecision)) : ""), 'TAX_VALUE' => CCrmCurrency::MoneyToString($taxInfo['VALUE_MONEY'], $currencyID)); } } $arResponse['LD_TAXES'] = $LDTaxes; } echo CUtil::PhpToJSObject($arResponse); } die;
public static function PrepareProductItem(&$item, &$params) { $sectionID = $item['~SECTION_ID'] = isset($item['SECTION_ID']) ? intval($item['SECTION_ID']) : 0; if ($sectionID <= 0) { $item['~SECTION_NAME'] = $item['SECTION_NAME'] = ''; } else { $sections = isset($params['SECTIONS']) ? $params['SECTIONS'] : array(); $item['~SECTION_NAME'] = isset($sections[$sectionID]) ? $sections[$sectionID]['NAME'] : ''; $item['SECTION_NAME'] = htmlspecialcharsbx($item['~SECTION_NAME']); } $price = $item['~PRICE'] = isset($item['~PRICE']) ? doubleval($item['~PRICE']) : 0.0; $srcCurrencyID = $item['~CURRENCY_ID'] = isset($item['~CURRENCY_ID']) ? $item['~CURRENCY_ID'] : CCrmCurrency::GetBaseCurrencyID(); $dstCurrencyID = isset($params['CURRENCY_ID']) ? $params['CURRENCY_ID'] : ''; if ($dstCurrencyID === '') { $dstCurrencyID = $srcCurrencyID; } if ($dstCurrencyID !== $srcCurrencyID) { $item['~CURRENCY_ID'] = $dstCurrencyID; $item['CURRENCY_ID'] = htmlspecialcharsbx($dstCurrencyID); $price = CCrmCurrency::ConvertMoney($price, $srcCurrencyID, $dstCurrencyID); } $item['FORMATTED_PRICE'] = CCrmCurrency::MoneyToString($price, $dstCurrencyID); }
private function MapField(&$entityInfo, $fieldName) { $result = ''; $typeID = isset($entityInfo['TYPE_ID']) ? intval($entityInfo['TYPE_ID']) : CCrmOwnerType::Undefined; $fields = isset($entityInfo['FIELDS']) ? $entityInfo['FIELDS'] : array(); $isHtml = $this->contentType === CCrmContentType::Html; $isBBCode = $this->contentType === CCrmContentType::BBCode; $isPlainText = $this->contentType === CCrmContentType::PlainText; if ($typeID === CCrmOwnerType::Lead) { switch ($fieldName) { case 'ID': $result = isset($fields[$fieldName]) ? intval($fields[$fieldName]) : 0; break; case 'NAME': case 'SECOND_NAME': case 'LAST_NAME': case 'TITLE': case 'COMPANY_TITLE': case 'SOURCE_DESCRIPTION': case 'STATUS_DESCRIPTION': case 'POST': case 'ASSIGNED_BY_WORK_POSITION': $result = self::MapFieldValue($fields, $fieldName, $isHtml); break; case 'ADDRESS': $addressOptions = array(); if ($isHtml) { $addressOptions['SEPARATOR'] = AddressSeparator::HtmlLineBreak; $addressOptions['NL2BR'] = true; } else { $addressOptions['SEPARATOR'] = AddressSeparator::NewLine; } $result = LeadAddressFormatter::format($fields, $addressOptions); break; case 'COMMENTS': if ($isBBCode) { $result = self::MapHtmlFieldAsBbCode($fields, 'COMMENTS'); } elseif ($isPlainText) { $result = self::MapHtmlFieldAsPlainText($fields, 'COMMENTS'); } else { $result = self::MapFieldValue($fields, $fieldName, false); } break; case 'SOURCE': $result = self::MapReferenceValue(self::PrepareSources(), $fields, 'SOURCE_ID', $isHtml); break; case 'STATUS': $result = self::MapReferenceValue(self::PrepareLeadStatuses(), $fields, 'STATUS_ID', $isHtml); break; case 'FORMATTED_NAME': $result = CCrmLead::PrepareFormattedName(array('HONORIFIC' => isset($fields['HONORIFIC']) ? $fields['HONORIFIC'] : '', 'NAME' => isset($fields['NAME']) ? $fields['NAME'] : '', 'SECOND_NAME' => isset($fields['SECOND_NAME']) ? $fields['SECOND_NAME'] : '', 'LAST_NAME' => isset($fields['LAST_NAME']) ? $fields['LAST_NAME'] : '')); if ($isHtml) { $result = htmlspecialcharsbx($result); } break; case 'ASSIGNED_BY_FULL_NAME': $result = CCrmViewHelper::GetFormattedUserName(isset($fields['ASSIGNED_BY_ID']) ? $fields['ASSIGNED_BY_ID'] : 0, '', $isHtml); break; case 'CREATED_BY_FULL_NAME': $result = CCrmViewHelper::GetFormattedUserName(isset($fields['CREATED_BY_ID']) ? $fields['CREATED_BY_ID'] : 0, '', $isHtml); break; case 'MODIFY_BY_FULL_NAME': $result = CCrmViewHelper::GetFormattedUserName(isset($fields['MODIFY_BY_ID']) ? $fields['MODIFY_BY_ID'] : 0, '', $isHtml); break; case 'DATE_CREATE': $result = isset($fields['DATE_CREATE']) ? FormatDate('SHORT', MakeTimeStamp($fields['DATE_CREATE'])) : ''; break; case 'DATE_MODIFY': $result = isset($fields['DATE_MODIFY']) ? FormatDate('SHORT', MakeTimeStamp($fields['DATE_MODIFY'])) : ''; break; case 'CURRENCY': $result = isset($fields['CURRENCY_ID']) ? CCrmCurrency::GetCurrencyName($fields['CURRENCY_ID']) : ''; break; case 'OPPORTUNITY': $result = isset($fields['OPPORTUNITY']) ? $fields['OPPORTUNITY'] : 0.0; break; case 'OPPORTUNITY_FORMATTED': $result = CCrmCurrency::MoneyToString(isset($fields['OPPORTUNITY']) ? $fields['OPPORTUNITY'] : 0.0, isset($fields['CURRENCY_ID']) ? $fields['CURRENCY_ID'] : ''); break; } } elseif ($typeID === CCrmOwnerType::Deal) { switch ($fieldName) { case 'ID': $result = isset($fields[$fieldName]) ? intval($fields[$fieldName]) : 0; break; case 'TITLE': case 'ASSIGNED_BY_WORK_POSITION': $result = self::MapFieldValue($fields, $fieldName, $isHtml); break; case 'COMMENTS': if ($isBBCode) { $result = self::MapHtmlFieldAsBbCode($fields, 'COMMENTS'); } elseif ($isPlainText) { $result = self::MapHtmlFieldAsPlainText($fields, 'COMMENTS'); } else { $result = self::MapFieldValue($fields, $fieldName, false); } break; case 'TYPE': $result = self::MapReferenceValue(self::PrepareDealTypes(), $fields, 'TYPE_ID', $isHtml); break; case 'STAGE': $result = self::MapReferenceValue(self::PrepareDealStages(), $fields, 'STAGE_ID', $isHtml); break; case 'PROBABILITY': $result = (isset($fields[$fieldName]) ? intval($fields[$fieldName]) : 0) . ' %'; break; case 'BEGINDATE': $result = isset($fields['BEGINDATE']) ? FormatDate('SHORT', MakeTimeStamp($fields['BEGINDATE'])) : ''; break; case 'CLOSEDATE': $result = isset($fields['CLOSEDATE']) ? FormatDate('SHORT', MakeTimeStamp($fields['CLOSEDATE'])) : ''; break; case 'ASSIGNED_BY_FULL_NAME': $result = CCrmViewHelper::GetFormattedUserName(isset($fields['ASSIGNED_BY_ID']) ? $fields['ASSIGNED_BY_ID'] : 0, '', $isHtml); break; case 'CREATED_BY_FULL_NAME': $result = CCrmViewHelper::GetFormattedUserName(isset($fields['CREATED_BY_ID']) ? $fields['CREATED_BY_ID'] : 0, '', $isHtml); break; case 'MODIFY_BY_FULL_NAME': $result = CCrmViewHelper::GetFormattedUserName(isset($fields['MODIFY_BY_ID']) ? $fields['MODIFY_BY_ID'] : 0, '', $isHtml); break; case 'DATE_CREATE': $result = isset($fields['DATE_CREATE']) ? FormatDate('SHORT', MakeTimeStamp($fields['DATE_CREATE'])) : ''; break; case 'DATE_MODIFY': $result = isset($fields['DATE_MODIFY']) ? FormatDate('SHORT', MakeTimeStamp($fields['DATE_MODIFY'])) : ''; break; case 'CURRENCY': $result = isset($fields['CURRENCY_ID']) ? CCrmCurrency::GetCurrencyName($fields['CURRENCY_ID']) : ''; break; case 'OPPORTUNITY': $result = isset($fields['OPPORTUNITY']) ? $fields['OPPORTUNITY'] : 0.0; break; case 'OPPORTUNITY_FORMATTED': $result = CCrmCurrency::MoneyToString(isset($fields['OPPORTUNITY']) ? $fields['OPPORTUNITY'] : 0.0, isset($fields['CURRENCY_ID']) ? $fields['CURRENCY_ID'] : ''); break; case 'COMPANY': $result = self::ResolveEntityInfo(CCrmOwnerType::Company, isset($fields['COMPANY_ID']) ? intval($fields['COMPANY_ID']) : 0); break; case 'CONTACT': $result = self::ResolveEntityInfo(CCrmOwnerType::Contact, isset($fields['CONTACT_ID']) ? intval($fields['CONTACT_ID']) : 0); break; } } elseif ($typeID === CCrmOwnerType::Contact) { switch ($fieldName) { case 'ID': $result = isset($fields[$fieldName]) ? intval($fields[$fieldName]) : 0; break; case 'NAME': case 'SECOND_NAME': case 'LAST_NAME': case 'POST': case 'SOURCE_DESCRIPTION': case 'ASSIGNED_BY_WORK_POSITION': $result = self::MapFieldValue($fields, $fieldName, $isHtml); break; case 'ADDRESS': $addressOptions = array(); if ($isHtml) { $addressOptions['SEPARATOR'] = AddressSeparator::HtmlLineBreak; $addressOptions['NL2BR'] = true; } else { $addressOptions['SEPARATOR'] = AddressSeparator::NewLine; } $result = ContactAddressFormatter::format($fields, $addressOptions); break; case 'COMMENTS': if ($isBBCode) { $result = self::MapHtmlFieldAsBbCode($fields, 'COMMENTS'); } elseif ($isPlainText) { $result = self::MapHtmlFieldAsPlainText($fields, 'COMMENTS'); } else { $result = self::MapFieldValue($fields, $fieldName, false); } break; case 'FORMATTED_NAME': $result = CCrmContact::PrepareFormattedName(array('HONORIFIC' => isset($fields['HONORIFIC']) ? $fields['HONORIFIC'] : '', 'NAME' => isset($fields['NAME']) ? $fields['NAME'] : '', 'SECOND_NAME' => isset($fields['SECOND_NAME']) ? $fields['SECOND_NAME'] : '', 'LAST_NAME' => isset($fields['LAST_NAME']) ? $fields['LAST_NAME'] : '')); if ($isHtml) { $result = htmlspecialcharsbx($result); } break; case 'SOURCE': $result = self::MapReferenceValue(self::PrepareSources(), $fields, 'SOURCE_ID', $isHtml); break; case 'TYPE': $result = self::MapReferenceValue(self::PrepareContactTypes(), $fields, 'TYPE_ID', $isHtml); break; case 'COMPANY': $result = self::ResolveEntityInfo(CCrmOwnerType::Company, isset($fields['COMPANY_ID']) ? intval($fields['COMPANY_ID']) : 0); break; case 'ASSIGNED_BY_FULL_NAME': $result = CCrmViewHelper::GetFormattedUserName(isset($fields['ASSIGNED_BY_ID']) ? $fields['ASSIGNED_BY_ID'] : 0, '', $isHtml); break; case 'CREATED_BY_FULL_NAME': $result = CCrmViewHelper::GetFormattedUserName(isset($fields['CREATED_BY_ID']) ? $fields['CREATED_BY_ID'] : 0, '', $isHtml); break; case 'MODIFY_BY_FULL_NAME': $result = CCrmViewHelper::GetFormattedUserName(isset($fields['MODIFY_BY_ID']) ? $fields['MODIFY_BY_ID'] : 0, '', $isHtml); break; case 'DATE_CREATE': $result = isset($fields['DATE_CREATE']) ? FormatDate('SHORT', MakeTimeStamp($fields['DATE_CREATE'])) : ''; break; case 'DATE_MODIFY': $result = isset($fields['DATE_MODIFY']) ? FormatDate('SHORT', MakeTimeStamp($fields['DATE_MODIFY'])) : ''; break; } } elseif ($typeID === CCrmOwnerType::Company) { switch ($fieldName) { case 'ID': $result = isset($fields[$fieldName]) ? intval($fields[$fieldName]) : 0; break; case 'TITLE': case 'COMPANY_TITLE': case 'SOURCE_DESCRIPTION': case 'ASSIGNED_BY_WORK_POSITION': case 'BANKING_DETAILS': $result = self::MapFieldValue($fields, $fieldName, $isHtml); break; case 'ADDRESS': case 'ADDRESS_LEGAL': $addressOptions = array('TYPE_ID' => $fieldName === 'ADDRESS' ? EntityAddress::Primary : EntityAddress::Registered); if ($isHtml) { $addressOptions['SEPARATOR'] = AddressSeparator::HtmlLineBreak; $addressOptions['NL2BR'] = true; } else { $addressOptions['SEPARATOR'] = AddressSeparator::NewLine; } $result = CompanyAddressFormatter::format($fields, $addressOptions); break; case 'COMMENTS': if ($isBBCode) { $result = self::MapHtmlFieldAsBbCode($fields, 'COMMENTS'); } elseif ($isPlainText) { $result = self::MapHtmlFieldAsPlainText($fields, 'COMMENTS'); } else { $result = self::MapFieldValue($fields, $fieldName, false); } break; case 'COMPANY_TYPE': case 'TYPE': $result = self::MapReferenceValue(self::PrepareCompanyTypes(), $fields, 'COMPANY_TYPE', $isHtml); break; case 'INDUSTRY': $result = self::MapReferenceValue(self::PrepareIndustries(), $fields, 'INDUSTRY', $isHtml); break; case 'EMPLOYEES': $result = self::MapReferenceValue(self::PrepareEmployees(), $fields, 'EMPLOYEES', $isHtml); break; case 'CURRENCY': $result = isset($fields['CURRENCY_ID']) ? CCrmCurrency::GetCurrencyName($fields['CURRENCY_ID']) : ''; break; case 'REVENUE': $result = isset($fields['REVENUE']) ? $fields['REVENUE'] : 0.0; break; case 'REVENUE_FORMATTED': $result = CCrmCurrency::MoneyToString(isset($fields['REVENUE']) ? $fields['REVENUE'] : 0.0, isset($fields['CURRENCY_ID']) ? $fields['CURRENCY_ID'] : ''); break; case 'ASSIGNED_BY_FULL_NAME': $result = CCrmViewHelper::GetFormattedUserName(isset($fields['ASSIGNED_BY_ID']) ? $fields['ASSIGNED_BY_ID'] : 0, '', $isHtml); break; case 'CREATED_BY_FULL_NAME': $result = CCrmViewHelper::GetFormattedUserName(isset($fields['CREATED_BY_ID']) ? $fields['CREATED_BY_ID'] : 0, '', $isHtml); break; case 'MODIFY_BY_FULL_NAME': $result = CCrmViewHelper::GetFormattedUserName(isset($fields['MODIFY_BY_ID']) ? $fields['MODIFY_BY_ID'] : 0, '', $isHtml); break; case 'DATE_CREATE': $result = isset($fields['DATE_CREATE']) ? FormatDate('SHORT', MakeTimeStamp($fields['DATE_CREATE'])) : ''; break; case 'DATE_MODIFY': $result = isset($fields['DATE_MODIFY']) ? FormatDate('SHORT', MakeTimeStamp($fields['DATE_MODIFY'])) : ''; break; } } return $result; }
} else { $quantity = isset($_REQUEST['QUANTITY']) ? intval($_REQUEST['QUANTITY']) : 0; $price = isset($_REQUEST['PRICE']) ? doubleval($_REQUEST['PRICE']) : 0.0; __CrmMobileProductRowEditEndResonse(array('QUANTITY' => $quantity, 'PRICE' => $price, 'CURRENCY_ID' => $currencyID, 'FORMATTED_PRICE' => CCrmCurrency::MoneyToString($price, $currencyID), 'FORMATTED_SUM' => CCrmCurrency::MoneyToString($price * $quantity, $currencyID))); } } elseif ($action === 'CONVERT') { $ownerType = isset($_REQUEST['OWNER_TYPE']) ? $_REQUEST['OWNER_TYPE'] : ''; $ownerTypeName = CCrmOwnerTypeAbbr::ResolveName($ownerType); if (!CCrmAuthorizationHelper::CheckReadPermission($ownerTypeName, 0, $userPerms)) { die; } $srcCurrencyID = isset($_REQUEST['SRC_CURRENCY_ID']) ? $_REQUEST['SRC_CURRENCY_ID'] : CCrmCurrency::GetBaseCurrencyID(); $dstCurrencyID = isset($_REQUEST['DST_CURRENCY_ID']) ? $_REQUEST['DST_CURRENCY_ID'] : CCrmCurrency::GetBaseCurrencyID(); $items = isset($_REQUEST['ITEMS']) && is_array($_REQUEST['ITEMS']) ? $_REQUEST['ITEMS'] : array(); $result = array(); $sumTotal = 0.0; if (!empty($items)) { foreach ($items as &$item) { $quantity = isset($item['QUANTITY']) ? intval($item['QUANTITY']) : 1; $price = isset($item['PRICE']) ? doubleval($item['PRICE']) : 0.0; $price = $price > 0.0 ? CCrmCurrency::ConvertMoney($price, $srcCurrencyID, $dstCurrencyID) : 0.0; $sum = $price * $quantity; $sumTotal += $sum; $result[] = array('QUANTITY' => $quantity, 'PRICE' => $price, 'CURRENCY_ID' => $dstCurrencyID, 'FORMATTED_PRICE' => CCrmCurrency::MoneyToString($price, $dstCurrencyID), 'FORMATTED_SUM' => CCrmCurrency::MoneyToString($sum, $dstCurrencyID)); } unset($item); } __CrmMobileProductRowEditEndResonse(array('ITEMS' => $result, 'SUM_TOTAL' => $sumTotal, 'FORMATTED_SUM_TOTAL' => CCrmCurrency::MoneyToString($sumTotal, $dstCurrencyID))); } else { __CrmMobileProductRowEditEndResonse(array('ERROR' => 'Action is not supported in current context.')); }
public static function getCurrencyText($currencyID) { $currencyText = '?'; $str = CCrmCurrency::MoneyToString(101.01, $currencyID); $position1 = strpos($str, '101'); if ($position1 !== false) { $position2 = strpos($str, '01', $position1 + 3); if ($position2) { $str = trim(substr($str, 0, $position1) . substr($str, $position2 + 2)); $currencyText = $str; } } return $currencyText; }
if (array_key_exists('CONTACT_LINK_HTML', $arInvoice)) { unset($arInvoice['CONTACT_LINK_HTML']); } if (array_key_exists('COMPANY_LINK_HTML', $arInvoice)) { unset($arInvoice['COMPANY_LINK_HTML']); } if (array_key_exists('DEAL_LINK_HTML', $arInvoice)) { unset($arInvoice['DEAL_LINK_HTML']); } if (array_key_exists('QUOTE_LINK_HTML', $arInvoice)) { unset($arInvoice['QUOTE_LINK_HTML']); } } unset($arInvoice); $CCrmUserType->ListAddEnumFieldsValue($arResult, $arResult['INVOICE'], $arResult['INVOICE_UF'], $sExportType != '' ? ', ' : '<br />', $sExportType != '', array('FILE_URL_TEMPLATE' => '/bitrix/components/bitrix/crm.invoice.show/show_file.php?ownerId=#owner_id#&fieldName=#field_name#&fileId=#file_id#')); $arResult['TOOLBAR_LABEL_TEXT'] = GetMessage('CRM_INVOICE_LIST_TB_LABEL_TEXT', array('#num#' => $totalPaidNumber, '#sum#' => CCrmCurrency::MoneyToString(round($totalPaidSum, 2), $totalPaidCurrencyId))); $arResult['ROWS_COUNT'] = $obRes->SelectedRowsCount(); $arResult['DB_LIST'] = $obRes; $arResult['DB_FILTER'] = $arFilter; if (isset($arResult['INVOICE_ID']) && !empty($arResult['INVOICE_ID'])) { // try to load product rows $arProductRows = array(); // checkig access for operation $arInvoiceAttr = CCrmPerms::GetEntityAttr('INVOICE', $arResult['INVOICE_ID']); foreach ($arResult['INVOICE_ID'] as $iInvoiceId) { $arResult['INVOICE'][$iInvoiceId]['EDIT'] = $CCrmPerms->CheckEnityAccess('INVOICE', 'WRITE', $arInvoiceAttr[$iInvoiceId]); $arResult['INVOICE'][$iInvoiceId]['DELETE'] = $CCrmPerms->CheckEnityAccess('INVOICE', 'DELETE', $arInvoiceAttr[$iInvoiceId]); } } if ($sExportType == '') { $arResult['NEED_FOR_REBUILD_INVOICE_ATTRS'] = false;
$result = array(); $userProfileUrlTemplate = isset($_POST['USER_PROFILE_URL_TEMPLATE']) ? $_POST['USER_PROFILE_URL_TEMPLATE'] : ''; if (!CCrmInstantEditorHelper::PrepareUserInfo(isset($_POST['USER_ID']) ? intval($_POST['USER_ID']) : 0, $result, array('USER_PROFILE_URL_TEMPLATE' => $userProfileUrlTemplate))) { echo CUtil::PhpToJSObject(array('ERROR' => 'COULD NOT PREPARE USER INFO!')); } else { echo CUtil::PhpToJSObject(array('USER_INFO' => $result)); } die; } if ($mode === 'GET_FORMATTED_SUM') { $sum = isset($_POST['SUM']) ? $_POST['SUM'] : 0.0; $currencyID = isset($_POST['CURRENCY_ID']) ? $_POST['CURRENCY_ID'] : ''; if ($currencyID === '') { $currencyID = CCrmCurrency::GetBaseCurrencyID(); } __CrmQuoteShowEndJsonResonse(array('FORMATTED_SUM' => CCrmCurrency::MoneyToString($sum, $currencyID, '#'), 'FORMATTED_SUM_WITH_CURRENCY' => CCrmCurrency::MoneyToString($sum, $currencyID, ''))); } if ($mode === 'UPDATE') { $type = isset($_POST['OWNER_TYPE']) ? strtoupper($_POST['OWNER_TYPE']) : ''; if ($type !== CCrmQuote::OWNER_TYPE) { echo CUtil::PhpToJSObject(array('ERROR' => 'OWNER_TYPE IS NOT SUPPORTED!')); die; } $ID = isset($_POST['OWNER_ID']) ? $_POST['OWNER_ID'] : 0; if ($ID <= 0) { echo CUtil::PhpToJSObject(array('ERROR' => 'ID IS INVALID OR NOT DEFINED!')); die; } if (!CCrmQuote::CheckUpdatePermission($ID, $userPermissions)) { echo CUtil::PhpToJSObject(array('ERROR' => 'PERMISSION DENIED!')); die;
CCrmViewHelper::RenderUserCustomSearch(array('ID' => "{$filterID}_SEARCH", 'SEARCH_INPUT_ID' => "{$filterID}_NAME", 'SEARCH_INPUT_NAME' => "{$filterID}_name", 'DATA_INPUT_ID' => $filterID, 'DATA_INPUT_NAME' => $filterID, 'COMPONENT_NAME' => "{$filterID}_SEARCH", 'SITE_ID' => SITE_ID, 'NAME_FORMAT' => $arParams['NAME_TEMPLATE'], 'USER' => array('ID' => $userID, 'NAME' => $userName), 'DELAY' => 100)); $arResult['FILTER'][$i]['value'] = ob_get_clean(); $arResult['FILTER'][$i]['type'] = 'custom'; } } unset($filterField); $bUseAmCharts = $arResult['USE_AMCHARTS']; $arColor = array('#d73434', '#df8328', '#e8c819', '#64c13a', '#509979', '#c4c777', '#226a9d', '#bb2ab6', '#aaaaaa', '#75bcff', '#f4a8e7', '#d5a8f4', '#a8aaf4', '#94c8ec', '#91e9e8', '#91e9c3', '#90e76a', '#ffe241', '#ffb771', '#f19292'); $i = 0; $ic = 0; $arResult['GRID_DATA'] = array(); $arResult['GRID_DATA_NO'] = array(); $bafterWON = false; foreach ($arResult['FUNNEL'] as $aData) { foreach ($arResult['CURRENCY_LIST'] as $k => $v) { $aData[$k] = CCrmCurrency::MoneyToString($aData['OPPORTUNITY_FUNNEL_' . $k], $k, '<nobr>#</nobr>'); } $str = ''; if ($i == 0) { $str = '<div style="margin:auto; width: 250px"></div>'; } if (!$bUseAmCharts) { $aData['FUNNEL'] = $str . '<div class="funnel-cell" style="margin:auto; width: ' . $aData['PROCENT'] . '%; height: 20px; background-color: ' . $arColor[$ic] . '"></div>'; } else { $aData['PROCENT_ORIG'] = $aData['PROCENT']; } $aData['PROCENT'] = $aData['PROCENT'] . '%'; $aData['TITLE_ORIG'] = $aData['TITLE']; $aData['TITLE'] = '<a href="' . CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_DEAL_LIST']) . '?STAGE_ID=' . $aData['STAGE_ID'] . '">' . $aData['TITLE'] . '</a>'; $arResult['GRID_DATA' . ($bafterWON ? '_NO' : '')][] = array('id' => $i++, 'data' => $aData); if ($aData['STAGE_ID'] == 'WON') {
public static function FormatPrice($arProduct) { $price = isset($arProduct['PRICE']) ? round(doubleval($arProduct['PRICE']), 2) : 0.0; /*if($price == 0.00) { return ''; }*/ $currencyID = isset($arProduct['CURRENCY_ID']) ? strval($arProduct['CURRENCY_ID']) : ''; return CCrmCurrency::MoneyToString($price, $currencyID); }
public static function GetDataForPopup($callId, $phone, $userId = 0) { if (strlen($phone) <= 0 || !CModule::IncludeModule('crm')) { return false; } if ($userId > 0) { $findParams = array('USER_ID' => $userId); } else { $findParams = array('ENABLE_EXTENDED_MODE' => false); } $crm = CCrmSipHelper::findByPhoneNumber((string) $phone, $findParams); if ($crm) { $dealStatuses = CCrmViewHelper::GetDealStageInfos(); $entity = ''; $entityData = array(); $entities = array(); $arResult = array('FOUND' => 'Y', 'CONTACT' => array(), 'COMPANY' => array(), 'ACTIVITIES' => array(), 'DEALS' => array(), 'RESPONSIBILITY' => array()); if (isset($crm['CONTACT'])) { $entity = 'CONTACT'; $entityData = $crm[$entity][0]; $arResult['CONTACT'] = array('NAME' => $entityData['FORMATTED_NAME'], 'POST' => $entityData['POST'], 'PHOTO' => ''); if (intval($entityData['PHOTO']) > 0) { $arPhoto = CFile::ResizeImageGet($entityData['PHOTO'], array('width' => 37, 'height' => 37), BX_RESIZE_IMAGE_EXACT, false, false, true); $arResult['CONTACT']['PHOTO'] = $arPhoto['src']; } $arResult['COMPANY'] = $entityData['COMPANY_TITLE']; $arResult['CONTACT_DATA'] = array('ID' => $entityData['ID']); } else { if (isset($crm['LEAD'])) { $entity = 'LEAD'; $entityData = $crm[$entity][0]; $arResult['CONTACT'] = array('ID' => 0, 'NAME' => !empty($entityData['FORMATTED_NAME']) ? $entityData['FORMATTED_NAME'] : $entityData['TITLE'], 'POST' => $entityData['POST'], 'PHOTO' => ''); $arResult['COMPANY'] = $entityData['COMPANY_TITLE']; $arResult['LEAD_DATA'] = array('ID' => $entityData['ID'], 'ASSIGNED_BY_ID' => $entityData['ASSIGNED_BY_ID']); } else { if (isset($crm['COMPANY'])) { $entity = 'COMPANY'; $entityData = $crm[$entity][0]; $arResult['COMPANY'] = $entityData['TITLE']; $arResult['COMPANY_DATA'] = array('ID' => $entityData['ID']); } } } if ($entityData['ASSIGNED_BY_ID'] > 0) { $ar = Bitrix\Main\UserTable::getById($entityData['ASSIGNED_BY_ID']); if ($user = $ar->fetch()) { $arPhoto = CFile::ResizeImageGet($user['PERSONAL_PHOTO'], array('width' => 37, 'height' => 37), BX_RESIZE_IMAGE_EXACT, false, false, true); $arResult['RESPONSIBILITY'] = array('ID' => $user['ID'], 'NAME' => CUser::FormatName(CSite::GetNameFormat(false), $user, true, false), 'PHOTO' => $arPhoto ? $arPhoto['src'] : '', 'POST' => $user['WORK_POSITION']); } } if (isset($entityData['SHOW_URL'])) { $arResult['SHOW_URL'] = $entityData['SHOW_URL']; } if (isset($entityData['ACTIVITY_LIST_URL'])) { $arResult['ACTIVITY_URL'] = $entityData['ACTIVITY_LIST_URL']; } if (isset($entityData['INVOICE_LIST_URL'])) { $arResult['INVOICE_URL'] = $entityData['INVOICE_LIST_URL']; } if (isset($entityData['DEAL_LIST_URL'])) { $arResult['DEAL_URL'] = $entityData['DEAL_LIST_URL']; } $activityId = CCrmActivity::GetIDByOrigin('VI_' . $callId); if ($activityId) { $arResult['CURRENT_CALL_URL'] = CCrmOwnerType::GetEditUrl(CCrmOwnerType::Activity, $activityId); if ($arResult['CURRENT_CALL_URL'] !== '') { $arResult['CURRENT_CALL_URL'] = CCrmUrlUtil::AddUrlParams($arResult['CURRENT_CALL_URL'], array("disable_storage_edit" => 'Y')); } } if (isset($crm['CONTACT']) && isset($crm['COMPANY'])) { $entities = array('CONTACT', 'COMPANY', 'LEAD'); } else { if (isset($crm['CONTACT']) && isset($crm['LEAD']) && !isset($crm['COMPANY'])) { $entities = array('CONTACT', 'LEAD'); } else { if (isset($crm['LEAD']) && isset($crm['COMPANY']) && !isset($crm['CONTACT'])) { $entities = array('LEAD', 'COMPANY'); } else { $entities = array($entity); } } } foreach ($entities as $entity) { if (isset($crm[$entity][0]['ACTIVITIES'])) { foreach ($crm[$entity][0]['ACTIVITIES'] as $activity) { if ($activity['ID'] == $activityId) { continue; } $overdue = 'N'; if (strlen($activity['DEADLINE']) > 0 && MakeTimeStamp($activity['DEADLINE']) < time()) { $overdue = 'Y'; } $arResult['ACTIVITIES'][$activity['ID']] = array('TITLE' => $activity['SUBJECT'], 'DATE' => strlen($activity['DEADLINE']) > 0 ? $activity['DEADLINE'] : $activity['END_TIME'], 'OVERDUE' => $overdue, 'URL' => $activity['SHOW_URL']); } if (!empty($arResult['ACTIVITIES'])) { $arResult['ACTIVITIES'] = array_values($arResult['ACTIVITIES']); } } if (isset($crm[$entity][0]['DEALS'])) { foreach ($crm[$entity][0]['DEALS'] as $deal) { $opportunity = CCrmCurrency::MoneyToString($deal['OPPORTUNITY'], $deal['CURRENCY_ID']); if (strpos('&', $opportunity)) { $opportunity = CCrmCurrency::MoneyToString($deal['OPPORTUNITY'], $deal['CURRENCY_ID'], '#') . ' ' . $deal['CURRENCY_ID']; } $opportunity = str_replace('.00', '', $opportunity); $arResult['DEALS'][$deal['ID']] = array('ID' => $deal['ID'], 'TITLE' => $deal['TITLE'], 'STAGE' => $dealStatuses[$deal['STAGE_ID']]['NAME'], 'STAGE_COLOR' => $dealStatuses[$deal['STAGE_ID']]['COLOR'] ? $dealStatuses[$deal['STAGE_ID']]['COLOR'] : "#5fa0ce", 'OPPORTUNITY' => $opportunity, 'URL' => $deal['SHOW_URL']); } if (!empty($arResult['DEALS'])) { $arResult['DEALS'] = array_values($arResult['DEALS']); } } } } else { $arResult = array('FOUND' => 'N'); $userPermissions = CCrmPerms::GetUserPermissions($userId); if (CCrmLead::CheckCreatePermission($userPermissions)) { $arResult['LEAD_URL'] = CCrmOwnerType::GetEditUrl(CCrmOwnerType::Lead, 0); if ($arResult['LEAD_URL'] !== '') { $arResult['LEAD_URL'] = CCrmUrlUtil::AddUrlParams($arResult['LEAD_URL'], array("phone" => (string) $phone, 'origin_id' => 'VI_' . $callId)); } } if (CCrmContact::CheckCreatePermission($userPermissions)) { $arResult['CONTACT_URL'] = CCrmOwnerType::GetEditUrl(CCrmOwnerType::Contact, 0); if ($arResult['CONTACT_URL'] !== '') { $arResult['CONTACT_URL'] = CCrmUrlUtil::AddUrlParams($arResult['CONTACT_URL'], array("phone" => (string) $phone, 'origin_id' => 'VI_' . $callId)); } } } return $arResult; }
protected static function MoneyToString($sum) { return str_replace(' ', ' ', CCrmCurrency::MoneyToString($sum, CCrmCurrency::GetAccountCurrencyID(), '#')); }
unset($arResult['STATUS_LIST']['CONVERTED']); //<-- STATUS_DESCRIPTION // CURRENCY --> // CURRENCY_ID is displayed in sidebar. The field is added for COMPATIBILITY ONLY $currencyID = CCrmCurrency::GetBaseCurrencyID(); if (isset($arResult['ELEMENT']['CURRENCY_ID']) && $arResult['ELEMENT']['CURRENCY_ID'] !== '') { $currencyID = $arResult['ELEMENT']['CURRENCY_ID']; } $arResult['FIELDS']['tab_1'][] = array('id' => 'CURRENCY_ID', 'name' => GetMessage('CRM_FIELD_CURRENCY_ID'), 'params' => array('size' => 50), 'type' => 'label', 'value' => isset($arResult['CURRENCY_LIST'][$currencyID]) ? htmlspecialcharsbx($arResult['CURRENCY_LIST'][$currencyID]) : $currencyID, 'isTactile' => true); // <-- CURRENCY // OPPORTUNITY --> // OPPORTUNITY is displayed in sidebar. The field is added for COMPATIBILITY ONLY if ($enableInstantEdit && !$isExternal) { $arResult['EDITABLE_FIELDS'][] = 'OPPORTUNITY'; } $arResult['FIELDS']['tab_1'][] = array('id' => 'OPPORTUNITY', 'name' => GetMessage('CRM_FIELD_OPPORTUNITY'), 'type' => 'label', 'params' => array('size' => 50), 'value' => isset($arResult['ELEMENT']['OPPORTUNITY']) ? CCrmCurrency::MoneyToString($arResult['ELEMENT']['OPPORTUNITY'], $currencyID, '#') : '', 'isTactile' => true); // <-- OPPORTUNITY // SOURCE_ID --> // SOURCE_ID is displayed in sidebar. The field is added for COMPATIBILITY ONLY if ($enableInstantEdit && !$isExternal) { $arResult['EDITABLE_FIELDS'][] = 'SOURCE_ID'; } $arResult['FIELDS']['tab_1'][] = array('id' => 'SOURCE_ID', 'name' => GetMessage('CRM_FIELD_SOURCE_ID'), 'type' => 'label', 'items' => $arResult['SOURCE_LIST'], 'value' => $arResult['SOURCE_LIST'][$arResult['ELEMENT']['~SOURCE_ID']], 'isTactile' => true); // <-- SOURCE_ID // SOURCE_DESCRIPTION --> if ($enableInstantEdit && !$isExternal) { $arResult['EDITABLE_FIELDS'][] = 'SOURCE_ID'; } $arResult['FIELDS']['tab_1'][] = array('id' => 'SOURCE_DESCRIPTION', 'name' => GetMessage('CRM_FIELD_SOURCE_DESCRIPTION'), 'type' => 'label', 'items' => $arResult['SOURCE_LIST'], 'value' => isset($arResult['ELEMENT']['~SOURCE_DESCRIPTION']) ? $arResult['ELEMENT']['~SOURCE_DESCRIPTION'] : '', 'isTactile' => true); // <-- SOURCE_DESCRIPTION // ASSIGNED_BY_ID is displayed in sidebar. The field is added for COMPATIBILITY ONLY
function __CrmQuickPanelViewPrepareMoney($sum, $currencyID, $editable, $serviceUrl, &$entityContext) { $formattedSum = CCrmCurrency::MoneyToString($sum, $currencyID, '#'); $formattedSumWithCurrency = CCrmCurrency::MoneyToString($sum, $currencyID, ''); return array('type' => 'money', 'editable' => $editable, 'data' => array('currencyId' => $currencyID, 'value' => $sum, 'text' => $formattedSum, 'formatted_sum' => $formattedSum, 'formatted_sum_with_currency' => $formattedSumWithCurrency, 'serviceUrl' => $serviceUrl)); }
} ?> <tr class="crm-view-table-total-value"> <td><nobr><?php echo htmlspecialcharsbx(GetMessage('CRM_PRODUCT_SUM_TOTAL')); ?> :</nobr></td> <td> <?php $productEditorCfg['SUM_TOTAL_ID'] = $arResult['PREFIX'] . '_sum_total'; ?> <strong id="<?php echo htmlspecialcharsbx($productEditorCfg['SUM_TOTAL_ID']); ?> " class="crm-view-table-total-value"><?php echo CCrmCurrency::MoneyToString($arResult['TOTAL_SUM'], $arResult['CURRENCY_ID']); ?> </strong> </td> </tr> <?php $productEditorCfg['_discountExistsInit'] = $bDiscountExists; $productEditorCfg['_taxExistsInit'] = $bTaxExists; ?> </tbody></table> </div> </div> <input type="hidden" name="<?php echo htmlspecialcharsbx($arResult['PRODUCT_DATA_FIELD_NAME']); ?> " value="" />
function __CrmEntitySummaryRenderHorSectionItem(&$item) { $type = isset($item['TYPE']) ? strtoupper($item['TYPE']) : ''; $title = isset($item['TITLE']) ? $item['TITLE'] : ''; if ($title !== '') { $title .= ':'; } $params = isset($item['PARAMS']) && is_array($item['PARAMS']) ? $item['PARAMS'] : array(); if ($type === '') { echo '<span class="crm-detail-info-item-name">', htmlspecialcharsbx($title), '</span>', '<span class="crm-detail-info-item-text">', htmlspecialcharsbx(isset($item['VALUE']) ? $item['VALUE'] : ''), '</span>'; } elseif ($type === 'PROGRESS') { echo '<div class="crm-detail-stage crm-detail-info-item">', '<div class="crm-detail-stage-name">', htmlspecialcharsbx($title), '</div>', CCrmViewHelper::RenderProgressControl($params), '</div>'; } elseif ($type === 'SELECT') { echo '<span class="crm-detail-info-item-name">', htmlspecialcharsbx($title), '</span>'; echo '<span class="crm-detail-info-item-text">'; $params['CONTAINER_CLASS'] = 'crm-item-type'; $params['TEXT_CLASS'] = 'crm-item-type-text'; $params['ARROW_CLASS'] = 'crm-item-type-text-corner'; CCrmViewHelper::RenderSelector($params); echo '</span>'; } elseif ($type === 'CLIENT_INFO') { echo '<div class="crm-item-client"><span class="crm-detail-info-item-name">', htmlspecialcharsbx($title), '</span>', '<span class="crm-detail-info-item-text">', CCrmViewHelper::PrepareClientInfoV2($params), '</span></div>'; } elseif ($type === 'CLIENT_BALLOON') { if (isset($params['name'])) { $title = $params['name']; if ($title !== '') { $title .= ':'; } } echo '<div class="crm-item-client-ballon"><span class="crm-detail-info-item-name">', htmlspecialcharsbx($title), '</span>', '<span class="crm-detail-info-item-text">'; if (isset($params['value'])) { echo $params['value']; } else { echo CCrmViewHelper::PrepareEntityBaloonHtml($params); } echo '</span></div>'; } elseif ($type === 'MULTIFIELD') { $typeName = isset($params['TYPE']) ? $params['TYPE'] : ''; $values = isset($params['VALUES']) ? $params['VALUES'] : array(); $valueTypes = isset($params['VALUE_TYPES']) ? $params['VALUE_TYPES'] : array(); $valueCount = isset($params['VALUE_COUNT']) ? intval($params['VALUE_COUNT']) : 0; $displayIfEmpty = isset($params['DISPLAY_IF_EMPTY']) ? $params['DISPLAY_IF_EMPTY'] : true; if (!$displayIfEmpty && $valueCount <= 0) { return; } $options = isset($item['OPTIONS']) && is_array($item['OPTIONS']) ? $item['OPTIONS'] : array(); $enableSip = is_array($options) && isset($options['ENABLE_SIP']) && (bool) $options['ENABLE_SIP']; $titleClassName = 'crm-detail-info-item-name'; if ($enableSip) { $titleClassName .= ' crm-detail-info-item-name-tel-sip'; } $contentClassName = 'crm-detail-info-item-text crm-item-tel'; if ($enableSip) { $contentClassName .= ' crm-item-tel-tel-sip'; } echo '<span class="' . $titleClassName . '">', htmlspecialcharsbx($title), '</span>', '<span class="' . $contentClassName . '">'; echo CCrmViewHelper::PrepareFirstMultiFieldHtml($typeName, $values, $valueTypes, array(), $options); if ($valueCount > 1) { $prefix = isset($params['PREFIX']) ? $params['PREFIX'] : ''; $anchorID = ($prefix !== '' ? "{$prefix}_" : '') . strtolower($typeName); echo '<span class="crm-item-tel-list" id="', htmlspecialcharsbx($anchorID), '"', ' onclick="', CCrmViewHelper::PrepareMultiFieldValuesPopup($anchorID, $anchorID, $typeName, $values, $valueTypes, $options), '"></span>'; } echo '</span>'; } elseif ($type === 'RESPONSIBLE') { CCrmViewHelper::RenderResponsiblePanel($params); } elseif ($type === 'MODIFICATION_INFO') { $date = isset($params['DATE']) ? $params['DATE'] : ''; $userName = isset($params['USER_NAME']) ? $params['USER_NAME'] : ''; $pathToUser = isset($params['PATH_TO_USER']) ? $params['PATH_TO_USER'] : ''; echo '<span class="crm-detail-info-item-name">', htmlspecialcharsbx($title), '</span>', '<span class="crm-detail-info-item-text">'; echo $date !== '' ? FormatDate('SHORT', MakeTimeStamp($date)) : '-'; if ($userName !== '' && $pathToUser !== '') { echo ', <a class="crm-detail-info-link" href="', htmlspecialcharsbx($pathToUser), '">', htmlspecialcharsbx($userName), '</a>'; } echo '</span>'; } elseif ($type === 'DURATION') { $from = !empty($params['FROM']) ? CCrmComponentHelper::TrimDateTimeString(ConvertTimeStamp(MakeTimeStamp($params['FROM']), 'SHORT', SITE_ID)) : '-'; $to = !empty($params['TO']) ? CCrmComponentHelper::TrimDateTimeString(ConvertTimeStamp(MakeTimeStamp($params['TO']), 'SHORT', SITE_ID)) : '-'; echo '<span class="crm-detail-info-item-name">', htmlspecialcharsbx($title), '</span>', '<span class="crm-detail-info-item-text crm-item-date">'; echo '<i>', htmlspecialcharsbx(GetMessage('CRM_DURATION_FROM')), '</i>', '<span class="crm-item-date-calendar">', htmlspecialcharsbx($from), '</span>', '<i>', htmlspecialcharsbx(GetMessage('CRM_DURATION_TO')), '</i>', '<span class="crm-item-date-calendar">', htmlspecialcharsbx($to), '</span>'; echo '</span>'; } elseif ($type === 'MONEY') { $fieldID = isset($params['FIELD_ID']) ? $params['FIELD_ID'] : ''; $value = isset($params['VALUE']) ? $params['VALUE'] : ''; $currencyID = isset($params['CURRENCY_ID']) ? $params['CURRENCY_ID'] : CCrmCurrency::GetBaseCurrencyID(); $editable = isset($params['EDITABLE']) ? $params['EDITABLE'] : false; echo '<div class="crm-item-sum', $editable ? ' crm-instant-editor-fld-block' : '', '">'; echo '<span class="crm-detail-info-item-name">', htmlspecialcharsbx($title), '</span>'; if (!$editable) { echo '<span class="crm-detail-info-item-text">', CCrmCurrency::MoneyToString($value, $currencyID), '</span>'; } else { echo '<span class="crm-detail-info-item-text">'; CCrmViewHelper::RenderInstantEditorField(array('TYPE' => 'TEXT', 'FIELD_ID' => $fieldID, 'VALUE' => $value, 'SUFFIX_HTML' => " {$currencyID}", 'INPUT_WIDTH' => 80)); echo '</span>'; } echo '</div>'; } elseif ($type === 'PERCENT') { $fieldID = isset($params['FIELD_ID']) ? $params['FIELD_ID'] : ''; $value = isset($params['VALUE']) ? $params['VALUE'] : ''; $editable = isset($params['EDITABLE']) ? $params['EDITABLE'] : false; echo '<div', $editable ? ' class="crm-instant-editor-fld-block"' : '', '>'; echo '<span class="crm-detail-info-item-name">', htmlspecialcharsbx($title), '</span>'; if (!$editable) { echo '<span class="crm-detail-info-item-text">', htmlspecialcharsbx($value), ' %</span>'; } else { echo '<span class="crm-detail-info-item-text">'; CCrmViewHelper::RenderInstantEditorField(array('TYPE' => 'TEXT', 'FIELD_ID' => $fieldID, 'VALUE' => $value, 'SUFFIX_HTML' => "%", 'INPUT_WIDTH' => 30)); echo '</span>'; } echo '</div>'; } elseif ($type === 'TEXT') { $fieldID = isset($params['FIELD_ID']) ? $params['FIELD_ID'] : ''; $value = isset($params['VALUE']) ? $params['VALUE'] : ''; $editable = isset($params['EDITABLE']) ? $params['EDITABLE'] : false; $width = isset($params['WIDTH']) ? $params['WIDTH'] : 50; echo '<div', $editable ? ' class="crm-instant-editor-fld-block"' : '', '>'; echo '<span class="crm-detail-info-item-name">', htmlspecialcharsbx($title), '</span>'; if (!$editable) { echo '<span class="crm-detail-info-item-text">', htmlspecialcharsbx($value), '</span>'; } else { echo '<span class="crm-detail-info-item-text"><span class="crm-detail-item-text-alignment">'; CCrmViewHelper::RenderInstantEditorField(array('TYPE' => 'TEXT', 'FIELD_ID' => $fieldID, 'VALUE' => $value, 'INPUT_WIDTH' => $width)); echo '</span></span>'; } echo '</div>'; } elseif ($type === 'CUSTOM') { $fieldID = isset($params['FIELD_ID']) ? $params['FIELD_ID'] : ''; $value = isset($params['VALUE']) ? $params['VALUE'] : ''; echo $value; } }
/** * @return array */ public function initializeDemoData(array $data) { if (!(isset($data['items']) && is_array($data['items']))) { return $data; } foreach ($data['items'] as &$item) { $config = $this->findConfigByName(isset($item['name']) ? $item['name'] : ''); if (!$config) { continue; } $item['title'] = $config->getTitle(); $value = isset($item['value']) ? (double) $item['value'] : 0.0; $format = $config->getFomatParams(); if (isset($format['enableDecimals']) && $format['enableDecimals'] == 'N') { $value = round($value, 0); } $item['value'] = $value; if (isset($format['isCurrency']) && $format['isCurrency'] === 'Y') { $item['html'] = \CCrmCurrency::MoneyToString($value, \CCrmCurrency::GetAccountCurrencyID()); } } unset($item); return $data; }
private function MapField(&$entityInfo, $fieldName) { $result = ''; $typeID = isset($entityInfo['TYPE_ID']) ? intval($entityInfo['TYPE_ID']) : CCrmOwnerType::Undefined; $fields = isset($entityInfo['FIELDS']) ? $entityInfo['FIELDS'] : array(); $isHtml = $this->contentType === CCrmContentType::Html; $isBBCode = $this->contentType === CCrmContentType::BBCode; $isPlainText = $this->contentType === CCrmContentType::PlainText; if ($typeID === CCrmOwnerType::Lead) { switch ($fieldName) { case 'ID': $result = isset($fields[$fieldName]) ? intval($fields[$fieldName]) : 0; break; case 'NAME': case 'SECOND_NAME': case 'LAST_NAME': case 'TITLE': case 'COMPANY_TITLE': case 'SOURCE_DESCRIPTION': case 'STATUS_DESCRIPTION': case 'POST': case 'ADDRESS': $result = self::MapFieldValue($fields, $fieldName, $isHtml); break; case 'COMMENTS': if ($isBBCode) { $result = self::MapHtmlFieldAsBbCode($fields, 'COMMENTS'); } elseif ($isPlainText) { $result = self::MapHtmlFieldAsPlainText($fields, 'COMMENTS'); } else { $result = self::MapFieldValue($fields, $fieldName, false); } break; case 'SOURCE': $result = self::MapReferenceValue(self::PrepareSources(), $fields, 'SOURCE_ID', $isHtml); break; case 'STATUS': $result = self::MapReferenceValue(self::PrepareLeadStatuses(), $fields, 'STATUS_ID', $isHtml); break; case 'FORMATTED_NAME': $result = CUser::FormatName(\Bitrix\Crm\Format\PersonNameFormatter::getFormat(), array('LOGIN' => '', 'NAME' => isset($fields['NAME']) ? $fields['NAME'] : '', 'SECOND_NAME' => isset($fields['SECOND_NAME']) ? $fields['SECOND_NAME'] : '', 'LAST_NAME' => isset($fields['LAST_NAME']) ? $fields['LAST_NAME'] : ''), false, $isHtml); break; case 'ASSIGNED_BY_FULL_NAME': $result = CCrmViewHelper::GetFormattedUserName(isset($fields['ASSIGNED_BY_ID']) ? $fields['ASSIGNED_BY_ID'] : 0, '', $isHtml); break; case 'CREATED_BY_FULL_NAME': $result = CCrmViewHelper::GetFormattedUserName(isset($fields['CREATED_BY_ID']) ? $fields['CREATED_BY_ID'] : 0, '', $isHtml); break; case 'MODIFY_BY_FULL_NAME': $result = CCrmViewHelper::GetFormattedUserName(isset($fields['MODIFY_BY_ID']) ? $fields['MODIFY_BY_ID'] : 0, '', $isHtml); break; case 'DATE_CREATE': $result = isset($fields['DATE_CREATE']) ? FormatDate('SHORT', MakeTimeStamp($fields['DATE_CREATE'])) : ''; break; case 'DATE_MODIFY': $result = isset($fields['DATE_MODIFY']) ? FormatDate('SHORT', MakeTimeStamp($fields['DATE_MODIFY'])) : ''; break; case 'CURRENCY': $result = isset($fields['CURRENCY_ID']) ? CCrmCurrency::GetCurrencyName($fields['CURRENCY_ID']) : ''; break; case 'OPPORTUNITY': $result = isset($fields['OPPORTUNITY']) ? $fields['OPPORTUNITY'] : 0.0; break; case 'OPPORTUNITY_FORMATTED': $result = CCrmCurrency::MoneyToString(isset($fields['OPPORTUNITY']) ? $fields['OPPORTUNITY'] : 0.0, isset($fields['CURRENCY_ID']) ? $fields['CURRENCY_ID'] : ''); break; } } elseif ($typeID === CCrmOwnerType::Deal) { switch ($fieldName) { case 'ID': $result = isset($fields[$fieldName]) ? intval($fields[$fieldName]) : 0; break; case 'TITLE': $result = self::MapFieldValue($fields, 'TITLE', $isHtml); break; case 'COMMENTS': if ($isBBCode) { $result = self::MapHtmlFieldAsBbCode($fields, 'COMMENTS'); } elseif ($isPlainText) { $result = self::MapHtmlFieldAsPlainText($fields, 'COMMENTS'); } else { $result = self::MapFieldValue($fields, $fieldName, false); } break; case 'TYPE': $result = self::MapReferenceValue(self::PrepareDealTypes(), $fields, 'TYPE_ID', $isHtml); break; case 'STAGE': $result = self::MapReferenceValue(self::PrepareDealStages(), $fields, 'STAGE_ID', $isHtml); break; case 'PROBABILITY': $result = (isset($fields[$fieldName]) ? intval($fields[$fieldName]) : 0) . ' %'; break; case 'BEGINDATE': $result = isset($fields['BEGINDATE']) ? FormatDate('SHORT', MakeTimeStamp($fields['BEGINDATE'])) : ''; break; case 'CLOSEDATE': $result = isset($fields['CLOSEDATE']) ? FormatDate('SHORT', MakeTimeStamp($fields['CLOSEDATE'])) : ''; break; case 'ASSIGNED_BY_FULL_NAME': $result = CCrmViewHelper::GetFormattedUserName(isset($fields['ASSIGNED_BY_ID']) ? $fields['ASSIGNED_BY_ID'] : 0, '', $isHtml); break; case 'CREATED_BY_FULL_NAME': $result = CCrmViewHelper::GetFormattedUserName(isset($fields['CREATED_BY_ID']) ? $fields['CREATED_BY_ID'] : 0, '', $isHtml); break; case 'MODIFY_BY_FULL_NAME': $result = CCrmViewHelper::GetFormattedUserName(isset($fields['MODIFY_BY_ID']) ? $fields['MODIFY_BY_ID'] : 0, '', $isHtml); break; case 'DATE_CREATE': $result = isset($fields['DATE_CREATE']) ? FormatDate('SHORT', MakeTimeStamp($fields['DATE_CREATE'])) : ''; break; case 'DATE_MODIFY': $result = isset($fields['DATE_MODIFY']) ? FormatDate('SHORT', MakeTimeStamp($fields['DATE_MODIFY'])) : ''; break; case 'CURRENCY': $result = isset($fields['CURRENCY_ID']) ? CCrmCurrency::GetCurrencyName($fields['CURRENCY_ID']) : ''; break; case 'OPPORTUNITY': $result = isset($fields['OPPORTUNITY']) ? $fields['OPPORTUNITY'] : 0.0; break; case 'OPPORTUNITY_FORMATTED': $result = CCrmCurrency::MoneyToString(isset($fields['OPPORTUNITY']) ? $fields['OPPORTUNITY'] : 0.0, isset($fields['CURRENCY_ID']) ? $fields['CURRENCY_ID'] : ''); break; case 'COMPANY': $result = self::ResolveEntityInfo(CCrmOwnerType::Company, isset($fields['COMPANY_ID']) ? intval($fields['COMPANY_ID']) : 0); break; case 'CONTACT': $result = self::ResolveEntityInfo(CCrmOwnerType::Contact, isset($fields['CONTACT_ID']) ? intval($fields['CONTACT_ID']) : 0); break; } } elseif ($typeID === CCrmOwnerType::Contact) { switch ($fieldName) { case 'ID': $result = isset($fields[$fieldName]) ? intval($fields[$fieldName]) : 0; break; case 'NAME': case 'SECOND_NAME': case 'LAST_NAME': case 'POST': case 'ADDRESS': case 'SOURCE_DESCRIPTION': $result = self::MapFieldValue($fields, $fieldName, $isHtml); break; case 'COMMENTS': if ($isBBCode) { $result = self::MapHtmlFieldAsBbCode($fields, 'COMMENTS'); } elseif ($isPlainText) { $result = self::MapHtmlFieldAsPlainText($fields, 'COMMENTS'); } else { $result = self::MapFieldValue($fields, $fieldName, false); } break; case 'FORMATTED_NAME': $result = CUser::FormatName(\Bitrix\Crm\Format\PersonNameFormatter::getFormat(), array('LOGIN' => '', 'NAME' => isset($fields['NAME']) ? $fields['NAME'] : '', 'SECOND_NAME' => isset($fields['SECOND_NAME']) ? $fields['SECOND_NAME'] : '', 'LAST_NAME' => isset($fields['LAST_NAME']) ? $fields['LAST_NAME'] : ''), false, $isHtml); break; case 'SOURCE': $result = self::MapReferenceValue(self::PrepareSources(), $fields, 'SOURCE_ID', $isHtml); break; case 'TYPE': $result = self::MapReferenceValue(self::PrepareContactTypes(), $fields, 'TYPE_ID', $isHtml); break; case 'COMPANY': $result = self::ResolveEntityInfo(CCrmOwnerType::Company, isset($fields['COMPANY_ID']) ? intval($fields['COMPANY_ID']) : 0); break; case 'ASSIGNED_BY_FULL_NAME': $result = CCrmViewHelper::GetFormattedUserName(isset($fields['ASSIGNED_BY_ID']) ? $fields['ASSIGNED_BY_ID'] : 0, '', $isHtml); break; case 'CREATED_BY_FULL_NAME': $result = CCrmViewHelper::GetFormattedUserName(isset($fields['CREATED_BY_ID']) ? $fields['CREATED_BY_ID'] : 0, '', $isHtml); break; case 'MODIFY_BY_FULL_NAME': $result = CCrmViewHelper::GetFormattedUserName(isset($fields['MODIFY_BY_ID']) ? $fields['MODIFY_BY_ID'] : 0, '', $isHtml); break; case 'DATE_CREATE': $result = isset($fields['DATE_CREATE']) ? FormatDate('SHORT', MakeTimeStamp($fields['DATE_CREATE'])) : ''; break; case 'DATE_MODIFY': $result = isset($fields['DATE_MODIFY']) ? FormatDate('SHORT', MakeTimeStamp($fields['DATE_MODIFY'])) : ''; break; } } elseif ($typeID === CCrmOwnerType::Company) { switch ($fieldName) { case 'ID': $result = isset($fields[$fieldName]) ? intval($fields[$fieldName]) : 0; break; case 'TITLE': case 'COMPANY_TITLE': case 'SOURCE_DESCRIPTION': case 'ADDRESS': case 'ADDRESS_LEGAL': case 'BANKING_DETAILS': $result = self::MapFieldValue($fields, $fieldName, $isHtml); break; case 'COMMENTS': if ($isBBCode) { $result = self::MapHtmlFieldAsBbCode($fields, 'COMMENTS'); } elseif ($isPlainText) { $result = self::MapHtmlFieldAsPlainText($fields, 'COMMENTS'); } else { $result = self::MapFieldValue($fields, $fieldName, false); } break; case 'COMPANY_TYPE': case 'TYPE': $result = self::MapReferenceValue(self::PrepareCompanyTypes(), $fields, 'COMPANY_TYPE', $isHtml); break; case 'INDUSTRY': $result = self::MapReferenceValue(self::PrepareIndustries(), $fields, 'INDUSTRY', $isHtml); break; case 'EMPLOYEES': $result = self::MapReferenceValue(self::PrepareEmployees(), $fields, 'EMPLOYEES', $isHtml); break; case 'CURRENCY': $result = isset($fields['CURRENCY_ID']) ? CCrmCurrency::GetCurrencyName($fields['CURRENCY_ID']) : ''; break; case 'REVENUE': $result = isset($fields['REVENUE']) ? $fields['REVENUE'] : 0.0; break; case 'REVENUE_FORMATTED': $result = CCrmCurrency::MoneyToString(isset($fields['REVENUE']) ? $fields['REVENUE'] : 0.0, isset($fields['CURRENCY_ID']) ? $fields['CURRENCY_ID'] : ''); break; case 'ASSIGNED_BY_FULL_NAME': $result = CCrmViewHelper::GetFormattedUserName(isset($fields['ASSIGNED_BY_ID']) ? $fields['ASSIGNED_BY_ID'] : 0, '', $isHtml); break; case 'CREATED_BY_FULL_NAME': $result = CCrmViewHelper::GetFormattedUserName(isset($fields['CREATED_BY_ID']) ? $fields['CREATED_BY_ID'] : 0, '', $isHtml); break; case 'MODIFY_BY_FULL_NAME': $result = CCrmViewHelper::GetFormattedUserName(isset($fields['MODIFY_BY_ID']) ? $fields['MODIFY_BY_ID'] : 0, '', $isHtml); break; case 'DATE_CREATE': $result = isset($fields['DATE_CREATE']) ? FormatDate('SHORT', MakeTimeStamp($fields['DATE_CREATE'])) : ''; break; case 'DATE_MODIFY': $result = isset($fields['DATE_MODIFY']) ? FormatDate('SHORT', MakeTimeStamp($fields['DATE_MODIFY'])) : ''; break; } } return $result; }
$arFields['COMPANY_FM'][$multiFields['TYPE_ID']][] = array('VALUE' => $multiFields['VALUE'], 'VALUE_TYPE' => $multiFields['VALUE_TYPE']); } } $arResult['COMPANY_CALLTO'] = CCrmMobileHelper::PrepareCalltoParams(array('COMMUNICATION_LIST_URL_TEMPLATE' => $arParams['COMMUNICATION_LIST_URL_TEMPLATE'], 'ENTITY_TYPE_ID' => CCrmOwnerType::Company, 'ENTITY_ID' => $companyID, 'FM' => $arFields['COMPANY_FM'])); $arResult['COMPANY_MAILTO'] = CCrmMobileHelper::PrepareMailtoParams(array('COMMUNICATION_LIST_URL_TEMPLATE' => $arParams['COMMUNICATION_LIST_URL_TEMPLATE'], 'ENTITY_TYPE_ID' => CCrmOwnerType::Company, 'ENTITY_ID' => $companyID, 'FM' => $arFields['COMPANY_FM'])); $arFields['COMPANY_CALL_EDIT_URL'] = $arParams['ACTIVITY_EDIT_URL_TEMPLATE'] !== '' ? CCrmUrlUtil::AddUrlParams(CComponentEngine::makePathFromTemplate($arParams['ACTIVITY_EDIT_URL_TEMPLATE'], array('owner_type' => CCrmOwnerType::DealName, 'owner_id' => $entityID, 'type_id' => CCrmActivityType::Call)), array('comm' => strtolower(CCrmOwnerType::CompanyName) . '_' . $companyID)) : ''; $arFields['COMPANY_MEETING_EDIT_URL'] = $arParams['ACTIVITY_EDIT_URL_TEMPLATE'] !== '' ? CCrmUrlUtil::AddUrlParams(CComponentEngine::makePathFromTemplate($arParams['ACTIVITY_EDIT_URL_TEMPLATE'], array('owner_type' => CCrmOwnerType::DealName, 'owner_id' => $entityID, 'type_id' => CCrmActivityType::Meeting)), array('comm' => strtolower(CCrmOwnerType::CompanyName) . '_' . $companyID)) : ''; $arFields['COMPANY_EMAIL_EDIT_URL'] = $arParams['ACTIVITY_EDIT_URL_TEMPLATE'] !== '' ? CCrmUrlUtil::AddUrlParams(CComponentEngine::makePathFromTemplate($arParams['ACTIVITY_EDIT_URL_TEMPLATE'], array('owner_type' => CCrmOwnerType::DealName, 'owner_id' => $entityID, 'type_id' => CCrmActivityType::Email)), array('comm' => strtolower(CCrmOwnerType::CompanyName) . '_' . $companyID)) : ''; } $arFields['CONTACT_SHOW_URL'] = $contactID > 0 ? CComponentEngine::makePathFromTemplate($arParams['CONTACT_SHOW_URL_TEMPLATE'], array('contact_id' => $contactID)) : ''; $arFields['COMPANY_SHOW_URL'] = $companyID > 0 ? CComponentEngine::makePathFromTemplate($arParams['COMPANY_SHOW_URL_TEMPLATE'], array('company_id' => $companyID)) : ''; $arFields['~STAGE_TEXT'] = isset($arFields['~STAGE_ID']) && isset($arResult['STAGE_LIST'][$arFields['~STAGE_ID']]) ? $arResult['STAGE_LIST'][$arFields['~STAGE_ID']] : ''; $arFields['STAGE_TEXT'] = htmlspecialcharsbx($arFields['~STAGE_TEXT']); $arFields['~TYPE_NAME'] = isset($arFields['~TYPE_ID']) && isset($arResult['TYPE_LIST'][$arFields['~TYPE_ID']]) ? $arResult['TYPE_LIST'][$arFields['~TYPE_ID']] : ''; $arFields['TYPE_NAME'] = htmlspecialcharsbx($arFields['~TYPE_NAME']); $arFields['~FORMATTED_OPPORTUNITY'] = CCrmCurrency::MoneyToString($arFields['~OPPORTUNITY'], $arFields['~CURRENCY_ID']); $arFields['FORMATTED_OPPORTUNITY'] = strip_tags($arFields['~FORMATTED_OPPORTUNITY']); $arFields['~CONTACT_FORMATTED_NAME'] = CUser::FormatName($arParams['NAME_TEMPLATE'], array('LOGIN' => '', 'NAME' => $arFields['~CONTACT_NAME'], 'LAST_NAME' => $arFields['~CONTACT_LAST_NAME'], 'SECOND_NAME' => $arFields['~CONTACT_SECOND_NAME']), false, false); $arFields['CONTACT_FORMATTED_NAME'] = htmlspecialcharsbx($arFields['~CONTACT_FORMATTED_NAME']); $arFields['ASSIGNED_BY_SHOW_URL'] = ''; $arFields['~ASSIGNED_BY_FORMATTED_NAME'] = ''; if ($arFields['~ASSIGNED_BY_ID'] <= 0) { $arFields['~ASSIGNED_BY_FORMATTED_NAME'] = GetMessage('CRM_DEAL_VIEW_RESPONSIBLE_NOT_ASSIGNED'); } else { $arFields['ASSIGNED_BY_SHOW_URL'] = $arParams['USER_PROFILE_URL_TEMPLATE'] !== '' ? CComponentEngine::makePathFromTemplate($arParams['USER_PROFILE_URL_TEMPLATE'], array('user_id' => $arFields['~ASSIGNED_BY_ID'])) : ''; $arFields['~ASSIGNED_BY_FORMATTED_NAME'] = CUser::FormatName($arParams['NAME_TEMPLATE'], array('LOGIN' => $arFields['~ASSIGNED_BY_LOGIN'], 'NAME' => $arFields['~ASSIGNED_BY_NAME'], 'LAST_NAME' => $arFields['~ASSIGNED_BY_LAST_NAME'], 'SECOND_NAME' => $arFields['~ASSIGNED_BY_SECOND_NAME']), true, false); } $arFields['ASSIGNED_BY_FORMATTED_NAME'] = htmlspecialcharsbx($arFields['~ASSIGNED_BY_FORMATTED_NAME']); $arFields['PRODUCT_ROWS_QUANTITY'] = CAllCrmProductRow::GetRowQuantity(CCrmOwnerTypeAbbr::ResolveByTypeID(CCrmOwnerType::Deal), $entityID); $arFields['PRODUCT_ROWS_URL'] = $arParams['PRODUCT_ROW_LIST_URL_TEMPLATE'] !== '' ? CComponentEngine::makePathFromTemplate($arParams['PRODUCT_ROW_LIST_URL_TEMPLATE'], array('entity_type_id' => CCrmOwnerType::Deal, 'entity_id' => $entityID)) : ''; $arFields['ACTITITY_QUANTITY'] = CAllCrmActivity::GetCount(array('BINDINGS' => array(array('OWNER_TYPE_ID' => CCrmOwnerType::Deal, 'OWNER_ID' => $entityID))));
while ($arMultiField = $dbMultiFields->Fetch()) { $arFields['FM'][$arMultiField['TYPE_ID']][$arMultiField['ID']] = array('VALUE' => $arMultiField['VALUE'], 'VALUE_TYPE' => $arMultiField['VALUE_TYPE']); } } CCrmMobileHelper::PrepareLeadItem($arFields, $arParams, array('STATUS_LIST' => $arResult['STATUS_LIST'], 'SOURCE_LIST' => $arResult['SOURCE_LIST'])); } $currencyID = $arFields['~CURRENCY_ID']; $arResult['ENTITY'] = $arFields; unset($arFields); $arResult['PRODUCT_ROWS'] = $entityID > 0 ? CCrmProductRow::LoadRows('L', $entityID) : array(); foreach ($arResult['PRODUCT_ROWS'] as &$productRow) { $price = isset($productRow['PRICE']) ? doubleval($productRow['PRICE']) : 0.0; $qty = isset($productRow['QUANTITY']) ? doubleval($productRow['QUANTITY']) : 0; $sum = $productRow['SUM'] = $price * $qty; $productRow['FORMATTED_PRICE'] = CCrmCurrency::MoneyToString($price, $currencyID); $productRow['FORMATTED_SUM'] = CCrmCurrency::MoneyToString($sum, $currencyID); $productRow['CURRENCY_ID'] = $currencyID; } unset($productRow); $sid = bitrix_sessid(); $serviceURLTemplate = $arParams["SERVICE_URL_TEMPLATE"] ? $arParams["SERVICE_URL_TEMPLATE"] : '#SITE_DIR#bitrix/components/bitrix/mobile.crm.lead.edit/ajax.php?site_id=#SITE#&sessid=#SID#'; $arResult['SERVICE_URL'] = CComponentEngine::makePathFromTemplate($serviceURLTemplate, array('SID' => $sid)); $productRowServiceURLTemplate = $arParams["PRODUCT_ROW_URL_TEMPLATE"] ? $arParams["PRODUCT_ROW_URL_TEMPLATE"] : '#SITE_DIR#bitrix/components/bitrix/mobile.crm.product_row.edit/ajax.php?site_id=#SITE#&sessid=#SID#'; $arResult['PRODUCT_ROW_SERVICE_URL'] = CComponentEngine::makePathFromTemplate($productRowServiceURLTemplate, array('SID' => $sid)); $arResult['STATUS_SELECTOR_URL'] = CComponentEngine::makePathFromTemplate($arParams['STATUS_SELECTOR_URL_TEMPLATE'], array('type_id' => 'STATUS', 'context_id' => $contextID)); $arResult['SOURCE_SELECTOR_URL'] = CComponentEngine::makePathFromTemplate($arParams['STATUS_SELECTOR_URL_TEMPLATE'], array('type_id' => 'SOURCE', 'context_id' => $contextID)); $arResult['CURRENCY_SELECTOR_URL'] = CComponentEngine::makePathFromTemplate($arParams['CURRENCY_SELECTOR_URL_TEMPLATE'], array('context_id' => '')); $arResult['LEAD_STATUS_SELECTOR_URL'] = CComponentEngine::makePathFromTemplate($arParams['LEAD_STATUS_SELECTOR_URL_TEMPLATE'], array('context_id' => '')); $arResult['PRODUCT_ROW_EDIT_URL'] = CComponentEngine::makePathFromTemplate($arParams['PRODUCT_ROW_EDIT_URL_TEMPLATE'], array('context_id' => '')); $arResult['PRODUCT_SELECTOR_URL_TEMPLATE'] = CComponentEngine::makePathFromTemplate($arParams['PRODUCT_SELECTOR_URL_TEMPLATE'], array()); $this->IncludeComponentTemplate();
$obRes = CCrmQuote::GetList($arSort, $arFilter, false, !$isInExportMode ? $arNavParams : false, $arSelect, $arOptions); $arResult['QUOTE'] = array(); $arResult['QUOTE_ID'] = array(); $arResult['QUOTE_UF'] = array(); $now = time() + CTimeZone::GetOffset(); while ($arQuote = $obRes->GetNext()) { $arQuote['CLOSEDATE'] = !empty($arQuote['CLOSEDATE']) ? CCrmComponentHelper::TrimDateTimeString(ConvertTimeStamp(MakeTimeStamp($arQuote['CLOSEDATE']), 'SHORT', SITE_ID)) : ''; $arQuote['BEGINDATE'] = !empty($arQuote['BEGINDATE']) ? CCrmComponentHelper::TrimDateTimeString(ConvertTimeStamp(MakeTimeStamp($arQuote['BEGINDATE']), 'SHORT', SITE_ID)) : ''; /*$arQuote['EVENT_DATE'] = !empty($arQuote['EVENT_DATE']) ? CCrmComponentHelper::TrimDateTimeString(ConvertTimeStamp(MakeTimeStamp($arQuote['EVENT_DATE']), 'SHORT', SITE_ID)) : '';*/ $arQuote['~CLOSEDATE'] = $arQuote['CLOSEDATE']; $arQuote['~BEGINDATE'] = $arQuote['BEGINDATE']; /*$arQuote['~EVENT_DATE'] = $arQuote['EVENT_DATE'];*/ $currencyID = isset($arQuote['~CURRENCY_ID']) ? $arQuote['~CURRENCY_ID'] : CCrmCurrency::GetBaseCurrencyID(); $arQuote['~CURRENCY_ID'] = $currencyID; $arQuote['CURRENCY_ID'] = htmlspecialcharsbx($currencyID); $arQuote['FORMATTED_OPPORTUNITY'] = CCrmCurrency::MoneyToString($arQuote['~OPPORTUNITY'], $arQuote['~CURRENCY_ID']); $entityID = $arQuote['ID']; $arQuote['PATH_TO_QUOTE_SHOW'] = CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_QUOTE_SHOW'], array('quote_id' => $entityID)); $arQuote['PATH_TO_QUOTE_EDIT'] = CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_QUOTE_EDIT'], array('quote_id' => $entityID)); $arQuote['PATH_TO_QUOTE_COPY'] = CHTTP::urlAddParams(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_QUOTE_EDIT'], array('quote_id' => $entityID)), array('copy' => 1)); $arQuote['PATH_TO_QUOTE_DELETE'] = CHTTP::urlAddParams($bInternal ? $APPLICATION->GetCurPage() : $arParams['PATH_TO_QUOTE_LIST'], array('action_' . $arResult['GRID_ID'] => 'delete', 'ID' => $entityID, 'sessid' => bitrix_sessid())); $contactID = isset($arQuote['~CONTACT_ID']) ? intval($arQuote['~CONTACT_ID']) : 0; $arQuote['PATH_TO_CONTACT_SHOW'] = $contactID <= 0 ? '' : CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_CONTACT_SHOW'], array('contact_id' => $contactID)); $arQuote['~CONTACT_FORMATTED_NAME'] = $contactID <= 0 ? '' : CUser::FormatName(\Bitrix\Crm\Format\PersonNameFormatter::getFormat(), array('LOGIN' => '', 'NAME' => isset($arQuote['~CONTACT_NAME']) ? $arQuote['~CONTACT_NAME'] : '', 'LAST_NAME' => isset($arQuote['~CONTACT_LAST_NAME']) ? $arQuote['~CONTACT_LAST_NAME'] : '', 'SECOND_NAME' => isset($arQuote['~CONTACT_SECOND_NAME']) ? $arQuote['~CONTACT_SECOND_NAME'] : ''), false, false); $arQuote['CONTACT_FORMATTED_NAME'] = htmlspecialcharsbx($arQuote['~CONTACT_FORMATTED_NAME']); $arQuote['~CONTACT_FULL_NAME'] = CCrmContact::GetFullName(array('NAME' => isset($arQuote['CONTACT_NAME']) ? $arQuote['CONTACT_NAME'] : '', 'LAST_NAME' => isset($arQuote['CONTACT_LAST_NAME']) ? $arQuote['CONTACT_LAST_NAME'] : '', 'SECOND_NAME' => isset($arQuote['CONTACT_SECOND_NAME']) ? $arQuote['CONTACT_SECOND_NAME'] : ''), false); $arQuote['CONTACT_FULL_NAME'] = htmlspecialcharsbx($arQuote['~CONTACT_FULL_NAME']); $companyID = isset($arQuote['~COMPANY_ID']) ? intval($arQuote['~COMPANY_ID']) : 0; $arQuote['PATH_TO_COMPANY_SHOW'] = $companyID <= 0 ? '' : CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_COMPANY_SHOW'], array('company_id' => $companyID)); $leadID = isset($arQuote['~LEAD_ID']) ? intval($arQuote['~LEAD_ID']) : 0; $arQuote['PATH_TO_LEAD_SHOW'] = $leadID <= 0 ? '' : CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_LEAD_SHOW'], array('lead_id' => $leadID));
$rows = CCrmInvoice::GetProductRows($entityID); foreach ($rows as &$row) { $item = array('PRODUCT_NAME' => isset($row['PRODUCT_NAME']) ? $row['PRODUCT_NAME'] : '', 'PRICE' => isset($row['PRICE']) ? round(doubleval($row['PRICE']), 2) : 0.0, 'VAT_RATE' => isset($row['VAT_RATE']) ? round(doubleval($row['VAT_RATE']) * 100, 2) : 0.0, 'QUANTITY' => isset($row['QUANTITY']) ? intval($row['QUANTITY']) : 0); $item['FORMATTED_PRICE'] = CCrmCurrency::MoneyToString($item['PRICE'], $arResult['CURRENCY_ID']); $arResult['ITEMS'][] =& $item; unset($item); } unset($row); // VAT - VAT ONLY // EXT - EXTENDED MODE WITH CUSTOM TAXES $arResult['TAX_MODE'] = CCrmTax::isVatMode() ? 'VAT' : 'EXT'; if ($arResult['TAX_MODE'] === 'VAT') { $arResult['VAT_SUM'] = isset($arResult['TAX_SUM']) ? $arResult['TAX_SUM'] : 0.0; $arResult['FORMATTED_VAT_SUM'] = CCrmCurrency::MoneyToString($arResult['VAT_SUM'], $arResult['CURRENCY_ID']); $arResult['FORMATTED_SUM_BRUTTO'] = CCrmCurrency::MoneyToString($arResult['SUM'], $arResult['CURRENCY_ID']); } else { $arResult['TAX_LIST'] = CCrmInvoice::getTaxList($entityID); foreach ($arResult['TAX_LIST'] as &$taxInfo) { $taxInfo['FORMATTED_SUM'] = CCrmCurrency::MoneyToString($taxInfo['VALUE_MONEY'], $arResult['CURRENCY_ID']); } unset($taxInfo); $arResult['TAX_LIST_PERCENT_PRECISION'] = SALE_VALUE_PRECISION; } $arResult['FORMATTED_SUM_BRUTTO'] = CCrmCurrency::MoneyToString($arResult['SUM'], $arResult['CURRENCY_ID']); $arResult['FORMATTED_SUM_NETTO'] = CCrmCurrency::MoneyToString($arResult['SUM'] - $arResult['TAX_SUM'], $arResult['CURRENCY_ID']); } else { $arResult['TITLE'] = ''; $arResult['CURRENCY_ID'] = CCrmCurrency::GetBaseCurrencyID(); $arResult['SUM'] = 0.0; } $this->IncludeComponentTemplate();
$arTaxList = array(); if (is_array($arRecalculated['TAX_LIST'])) { $arTaxes =& $arRecalculated['TAX_LIST']; foreach ($arTaxes as $row) { $arTaxList[] = array('IS_IN_PRICE' => $row['~IS_IN_PRICE'], 'TAX_NAME' => $row['~NAME'], 'IS_PERCENT' => $row['~IS_PERCENT'], 'VALUE' => $row['~VALUE'], 'VALUE_MONEY' => $row['VALUE_MONEY']); } unset($arTaxes, $row); } if (count($arTaxList) > 0) { $arResponse['TAX_VALUE'] = 0.0; foreach ($arTaxList as $taxInfo) { $arResponseTaxList[] = array('TAX_NAME' => sprintf("%s%s%s", $taxInfo["IS_IN_PRICE"] == "Y" ? GetMessage('CRM_PRODUCT_TAX_INCLUDING') . " " : "", $taxInfo["TAX_NAME"], $taxInfo["IS_PERCENT"] == "Y" ? sprintf(' (%s%%)', roundEx($taxInfo["VALUE"], SALE_VALUE_PRECISION)) : ""), 'TAX_VALUE' => CCrmCurrency::MoneyToString($taxInfo['VALUE_MONEY'], $currencyID)); $arResponse['TAX_VALUE'] += round(doubleval($taxInfo['VALUE_MONEY']), 2); } } else { $arResponseTaxList[] = array('TAX_NAME' => GetMessage('CRM_PRODUCT_TOTAL_TAX'), 'TAX_VALUE' => CCrmCurrency::MoneyToString(0.0, $currencyID)); } unset($arTaxList); } $arResponse['TAX_LIST'] = $arResponseTaxList; $arResponse['VAT_MODE'] = $bVatMode; unset($arResponseTaxList); if ($bMakePayerInfo && $personTypeId > 0) { $arResponse['PAYER_INFO_TEXT'] = $strPayerInfo; $arResponse['INVOICE_PROPS_HTML_INPUTS'] = $invoicePropsHtmlInputs; // pay system $paySystemValue = intval($arFields['PAY_SYSTEM_ID']); $arPaySystemValues = array_keys($arPaySystemsListItems); if (!in_array($paySystemValue, $arPaySystemValues)) { if (count($arPaySystemValues) === 0) { $paySystemValue = 0;