protected static function getCompanyInfo($companyID) { if ($companyID <= 0) { return array(); } $result = array('TITLE' => '', 'FULL_ADDRESS' => '', 'PHONE' => '', 'EMAIL' => ''); $dbRes = \CCrmCompany::GetListEx(array(), array('=ID' => $companyID, 'CHECK_PERMISSIONS' => 'N'), false, false, array('TITLE', 'ADDRESS', 'ADDRESS_2', 'ADDRESS_CITY', 'ADDRESS_POSTAL_CODE', 'ADDRESS_REGION', 'ADDRESS_PROVINCE', 'ADDRESS_COUNTRY')); $fields = is_object($dbRes) ? $dbRes->Fetch() : null; if (is_array($fields)) { $result['TITLE'] = isset($fields['TITLE']) ? $fields['TITLE'] : ''; $result['FULL_ADDRESS'] = Format\CompanyAddressFormatter::format($fields, array('SEPARATOR' => Format\AddressSeparator::NewLine)); $dbRes = \CCrmFieldMulti::GetListEx(array('ID' => 'asc'), array('ENTITY_ID' => 'COMPANY', 'ELEMENT_ID' => $companyID, '@TYPE_ID' => array('PHONE', 'EMAIL')), false, false, array('TYPE_ID', 'VALUE')); while ($multiFields = $dbRes->Fetch()) { if ($result['PHONE'] === '' && $multiFields['TYPE_ID'] === 'PHONE') { $result['PHONE'] = $multiFields['VALUE']; } elseif ($result['EMAIL'] === '' && $multiFields['TYPE_ID'] === 'EMAIL') { $result['EMAIL'] = $multiFields['VALUE']; } if ($result['PHONE'] !== '' && $result['EMAIL'] !== '') { break; } } } return $result; }
} else { $arResult['ENTITY_IMAGE_URL'] = SITE_DIR . 'bitrix/templates/mobile_app/images/crm/no_contact_big.png?ver=1'; } $arResult['ENTITY_TITLE'] = CUser::FormatName($arParams['NAME_TEMPLATE'], array('LOGIN' => '', 'NAME' => isset($entity['NAME']) ? $entity['NAME'] : '', 'LAST_NAME' => isset($entity['LAST_NAME']) ? $entity['LAST_NAME'] : '', 'SECOND_NAME' => isset($entity['SECOND_NAME']) ? $entity['SECOND_NAME'] : ''), false, false); $companyTitle = isset($entity['COMPANY_TITLE']) ? $entity['COMPANY_TITLE'] : ''; $post = isset($entity['POST']) ? $entity['POST'] : ''; if ($companyTitle !== '' && $post !== '') { $arResult['ENTITY_LEGEND'] = "{$companyTitle}, {$post}"; } elseif ($companyTitle !== '') { $arResult['ENTITY_LEGEND'] = $companyTitle; } elseif ($post !== '') { $arResult['ENTITY_LEGEND'] = $post; } } } elseif ($entityTypeID === CCrmOwnerType::Company) { $dbEntity = CCrmCompany::GetListEx(array(), array('ID' => $entityID), false, false, array('TITLE', 'LOGO')); $entity = $dbEntity ? $dbEntity->Fetch() : null; if ($entity) { if (isset($entity['LOGO'])) { $arResult['ENTITY_IMAGE_ID'] = intval($entity['LOGO']); } else { $arResult['ENTITY_IMAGE_URL'] = SITE_DIR . 'bitrix/templates/mobile_app/images/crm/no_company_big.png?ver=1'; } $arResult['ENTITY_TITLE'] = isset($entity['TITLE']) ? $entity['TITLE'] : ''; } } $dbRes = CCrmFieldMulti::GetList(array('ID' => 'asc'), array('TYPE_ID' => $arParams['TYPE_ID'], 'ENTITY_ID' => $entityTypeName, 'ELEMENT_ID' => $entityID)); $arResult['ITEMS'] = array(); if ($dbRes) { while ($item = $dbRes->Fetch()) { $value = $item['VALUE'];
public static function PreparePopupItems($entityTypeNames, $addPrefix = true, $nameFormat = '', $count = 50) { if (!is_array($entityTypeNames)) { $entityTypeNames = array(strval($entityTypeNames)); } $addPrefix = (bool) $addPrefix; $count = intval($count); if ($count <= 0) { $count = 50; } $arItems = array(); $i = 0; foreach ($entityTypeNames as $typeName) { $typeName = strtoupper(strval($typeName)); if ($typeName === 'CONTACT') { $contactTypes = CCrmStatus::GetStatusList('CONTACT_TYPE'); $contactIndex = array(); $obRes = CCrmContact::GetListEx(array('ID' => 'DESC'), array(), false, array('nTopCount' => $count), array('ID', 'HONORIFIC', 'NAME', 'SECOND_NAME', 'LAST_NAME', 'COMPANY_TITLE', 'PHOTO', 'TYPE_ID')); while ($arRes = $obRes->Fetch()) { $arImg = array(); if (!empty($arRes['PHOTO']) && !isset($arFiles[$arRes['PHOTO']])) { if (intval($arRes['PHOTO']) > 0) { $arImg = CFile::ResizeImageGet($arRes['PHOTO'], array('width' => 25, 'height' => 25), BX_RESIZE_IMAGE_EXACT); } } $arRes['SID'] = $addPrefix ? 'C_' . $arRes['ID'] : $arRes['ID']; // advanced info $advancedInfo = array(); if (isset($arRes['TYPE_ID']) && $arRes['TYPE_ID'] != '' && isset($contactTypes[$arRes['TYPE_ID']])) { $advancedInfo['contactType'] = array('id' => $arRes['TYPE_ID'], 'name' => $contactTypes[$arRes['TYPE_ID']]); } $arItems[$i] = array('title' => CCrmContact::PrepareFormattedName(array('HONORIFIC' => isset($arRes['HONORIFIC']) ? $arRes['HONORIFIC'] : '', 'NAME' => isset($arRes['NAME']) ? $arRes['NAME'] : '', 'SECOND_NAME' => isset($arRes['SECOND_NAME']) ? $arRes['SECOND_NAME'] : '', 'LAST_NAME' => isset($arRes['LAST_NAME']) ? $arRes['LAST_NAME'] : ''), $nameFormat), 'desc' => empty($arRes['COMPANY_TITLE']) ? "" : $arRes['COMPANY_TITLE'], 'id' => $arRes['SID'], 'url' => CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_contact_show'), array('contact_id' => $arRes['ID'])), 'image' => $arImg['src'], 'type' => 'contact', 'selected' => 'N'); if (!empty($advancedInfo)) { $arItems[$i]['advancedInfo'] = $advancedInfo; } unset($advancedInfo); $contactIndex[$arRes['ID']] =& $arItems[$i]; $i++; } // advanced info - phone number, e-mail $obRes = CCrmFieldMulti::GetList(array('ID' => 'asc'), array('ENTITY_ID' => 'CONTACT', 'ELEMENT_ID' => array_keys($contactIndex))); while ($arRes = $obRes->Fetch()) { if (isset($contactIndex[$arRes['ELEMENT_ID']]) && ($arRes['TYPE_ID'] === 'PHONE' || $arRes['TYPE_ID'] === 'EMAIL')) { $item =& $contactIndex[$arRes['ELEMENT_ID']]; if (!is_array($item['advancedInfo'])) { $item['advancedInfo'] = array(); } if (!is_array($item['advancedInfo']['multiFields'])) { $item['advancedInfo']['multiFields'] = array(); } $item['advancedInfo']['multiFields'][] = array('ID' => $arRes['ID'], 'TYPE_ID' => $arRes['TYPE_ID'], 'VALUE_TYPE' => $arRes['VALUE_TYPE'], 'VALUE' => $arRes['VALUE']); unset($item); } } unset($contactIndex); } elseif ($typeName === 'COMPANY') { $companyIndex = array(); $arCompanyTypeList = CCrmStatus::GetStatusListEx('COMPANY_TYPE'); $arCompanyIndustryList = CCrmStatus::GetStatusListEx('INDUSTRY'); $obRes = CCrmCompany::GetListEx(array('ID' => 'DESC'), array(), false, array('nTopCount' => $count), array('ID', 'TITLE', 'COMPANY_TYPE', 'INDUSTRY', 'LOGO')); $arFiles = array(); while ($arRes = $obRes->Fetch()) { $arImg = array(); if (!empty($arRes['LOGO']) && !isset($arFiles[$arRes['LOGO']])) { if (intval($arRes['LOGO']) > 0) { $arImg = CFile::ResizeImageGet($arRes['LOGO'], array('width' => 25, 'height' => 25), BX_RESIZE_IMAGE_EXACT); } $arFiles[$arRes['LOGO']] = $arImg['src']; } $arRes['SID'] = $addPrefix ? 'CO_' . $arRes['ID'] : $arRes['ID']; $arDesc = array(); if (isset($arCompanyTypeList[$arRes['COMPANY_TYPE']])) { $arDesc[] = $arCompanyTypeList[$arRes['COMPANY_TYPE']]; } if (isset($arCompanyIndustryList[$arRes['INDUSTRY']])) { $arDesc[] = $arCompanyIndustryList[$arRes['INDUSTRY']]; } $arItems[$i] = array('title' => str_replace(array(';', ','), ' ', $arRes['TITLE']), 'desc' => implode(', ', $arDesc), 'id' => $arRes['SID'], 'url' => CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_company_show'), array('company_id' => $arRes['ID'])), 'image' => $arImg['src'], 'type' => 'company', 'selected' => 'N'); $companyIndex[$arRes['ID']] =& $arItems[$i]; $i++; } // advanced info - phone number, e-mail $obRes = CCrmFieldMulti::GetList(array('ID' => 'asc'), array('ENTITY_ID' => 'COMPANY', 'ELEMENT_ID' => array_keys($companyIndex))); while ($arRes = $obRes->Fetch()) { if (isset($companyIndex[$arRes['ELEMENT_ID']]) && ($arRes['TYPE_ID'] === 'PHONE' || $arRes['TYPE_ID'] === 'EMAIL')) { $item =& $companyIndex[$arRes['ELEMENT_ID']]; if (!is_array($item['advancedInfo'])) { $item['advancedInfo'] = array(); } if (!is_array($item['advancedInfo']['multiFields'])) { $item['advancedInfo']['multiFields'] = array(); } $item['advancedInfo']['multiFields'][] = array('ID' => $arRes['ID'], 'TYPE_ID' => $arRes['TYPE_ID'], 'VALUE_TYPE' => $arRes['VALUE_TYPE'], 'VALUE' => $arRes['VALUE']); unset($item); } } unset($companyIndex); } elseif ($typeName === 'LEAD') { $leadIndex = array(); $obRes = CCrmLead::GetListEx(array('ID' => 'DESC'), array(), false, array('nTopCount' => $count), array('ID', 'TITLE', 'NAME', 'SECOND_NAME', 'LAST_NAME', 'STATUS_ID')); while ($arRes = $obRes->Fetch()) { $arRes['SID'] = $addPrefix ? 'L_' . $arRes['ID'] : $arRes['ID']; $arItems[$i] = array('title' => isset($arRes['TITLE']) ? $arRes['TITLE'] : '', 'desc' => CCrmLead::PrepareFormattedName(array('HONORIFIC' => isset($arRes['HONORIFIC']) ? $arRes['HONORIFIC'] : '', 'NAME' => isset($arRes['NAME']) ? $arRes['NAME'] : '', 'SECOND_NAME' => isset($arRes['SECOND_NAME']) ? $arRes['SECOND_NAME'] : '', 'LAST_NAME' => isset($arRes['LAST_NAME']) ? $arRes['LAST_NAME'] : ''), $nameFormat), 'id' => $arRes['SID'], 'url' => CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_lead_show'), array('lead_id' => $arRes['ID'])), 'type' => 'lead', 'selected' => 'N'); $leadIndex[$arRes['ID']] =& $arItems[$i]; $i++; } // advanced info - phone number, e-mail $obRes = CCrmFieldMulti::GetList(array('ID' => 'asc'), array('ENTITY_ID' => 'LEAD', 'ELEMENT_ID' => array_keys($leadIndex))); while ($arRes = $obRes->Fetch()) { if (isset($leadIndex[$arRes['ELEMENT_ID']]) && ($arRes['TYPE_ID'] === 'PHONE' || $arRes['TYPE_ID'] === 'EMAIL')) { $item =& $leadIndex[$arRes['ELEMENT_ID']]; if (!is_array($item['advancedInfo'])) { $item['advancedInfo'] = array(); } if (!is_array($item['advancedInfo']['multiFields'])) { $item['advancedInfo']['multiFields'] = array(); } $item['advancedInfo']['multiFields'][] = array('ID' => $arRes['ID'], 'TYPE_ID' => $arRes['TYPE_ID'], 'VALUE_TYPE' => $arRes['VALUE_TYPE'], 'VALUE' => $arRes['VALUE']); unset($item); } } unset($leadIndex); } elseif ($typeName === 'DEAL') { $obRes = CCrmDeal::GetListEx(array('ID' => 'DESC'), array(), false, array('nTopCount' => $count), array('ID', 'TITLE', 'STAGE_ID', 'COMPANY_TITLE', 'CONTACT_FULL_NAME')); while ($arRes = $obRes->Fetch()) { $arRes['SID'] = $addPrefix ? 'D_' . $arRes['ID'] : $arRes['ID']; $clientTitle = !empty($arRes['COMPANY_TITLE']) ? $arRes['COMPANY_TITLE'] : ''; $clientTitle .= ($clientTitle !== '' && !empty($arRes['CONTACT_FULL_NAME']) ? ', ' : '') . $arRes['CONTACT_FULL_NAME']; $arItems[] = array('title' => isset($arRes['TITLE']) ? str_replace(array(';', ','), ' ', $arRes['TITLE']) : '', 'desc' => $clientTitle, 'id' => $arRes['SID'], 'url' => CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_deal_show'), array('deal_id' => $arRes['ID'])), 'type' => 'deal', 'selected' => 'N'); } } elseif ($typeName === 'QUOTE') { $obRes = CCrmQuote::GetList(array('ID' => 'DESC'), array(), false, array('nTopCount' => $count), array('ID', 'QUOTE_NUMBER', 'TITLE', 'COMPANY_TITLE', 'CONTACT_FULL_NAME')); while ($arRes = $obRes->Fetch()) { $arRes['SID'] = $addPrefix ? CCrmQuote::OWNER_TYPE . '_' . $arRes['ID'] : $arRes['ID']; $clientTitle = !empty($arRes['COMPANY_TITLE']) ? $arRes['COMPANY_TITLE'] : ''; $clientTitle .= ($clientTitle !== '' && !empty($arRes['CONTACT_FULL_NAME']) ? ', ' : '') . $arRes['CONTACT_FULL_NAME']; $quoteTitle = empty($arRes['TITLE']) ? $arRes['QUOTE_NUMBER'] : $arRes['QUOTE_NUMBER'] . ' - ' . $arRes['TITLE']; $arItems[] = array('title' => empty($quoteTitle) ? '' : str_replace(array(';', ','), ' ', $quoteTitle), 'desc' => $clientTitle, 'id' => $arRes['SID'], 'url' => CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_quote_show'), array('quote_id' => $arRes['ID'])), 'type' => 'quote', 'selected' => 'N'); } } } unset($typeName); return $arItems; }
function ExportOrders2Xml($arFilter = Array(), $nTopCount = 0, $currency = "", $crmMode = false, $time_limit = 0, $version = false, $arOptions = Array()) { global $DB; $count = false; if(IntVal($nTopCount) > 0) $count = Array("nTopCount" => $nTopCount); $bNewVersion = (strlen($version) > 0); $bExportFromCrm = (isset($arOptions["EXPORT_FROM_CRM"]) && $arOptions["EXPORT_FROM_CRM"] === "Y"); if(IntVal($time_limit) > 0) { //This is an optimization. We assume than no step can take more than one year. if($time_limit > 0) $end_time = time() + $time_limit; else $end_time = time() + 365*24*3600; // One year //$version $lastOrderPrefix = "LAST_ORDER_ID"; if($crmMode) { $lastOrderPrefix = md5(serialize($arFilter)); if(!empty($_SESSION["BX_CML2_EXPORT"][$lastOrderPrefix]) && IntVal($nTopCount) > 0) $count["nTopCount"] = $count["nTopCount"]+count($_SESSION["BX_CML2_EXPORT"][$lastOrderPrefix]); } else { if(IntVal($_SESSION["BX_CML2_EXPORT"][$lastOrderPrefix]) > 0) { $arFilter["<ID"] = $_SESSION["BX_CML2_EXPORT"][$lastOrderPrefix]; } } } $arResultStat = array( "ORDERS" => 0, "CONTACTS" => 0, "COMPANIES" => 0, ); $accountNumberPrefix = COption::GetOptionString("sale", "1C_SALE_ACCOUNT_NUMBER_SHOP_PREFIX", ""); $dbPaySystem = CSalePaySystem::GetList(Array("ID" => "ASC"), Array("ACTIVE" => "Y"), false, false, Array("ID", "NAME", "ACTIVE")); while($arPaySystem = $dbPaySystem -> Fetch()) $paySystems[$arPaySystem["ID"]] = $arPaySystem["NAME"]; $dbDelivery = CSaleDelivery::GetList(Array("ID" => "ASC"), Array("ACTIVE" => "Y"), false, false, Array("ID", "NAME", "ACTIVE")); while($arDelivery = $dbDelivery -> Fetch()) $delivery[$arDelivery["ID"]] = $arDelivery["NAME"]; $rsDeliveryHandlers = CSaleDeliveryHandler::GetAdminList(array("SID" => "ASC")); while ($arHandler = $rsDeliveryHandlers->Fetch()) { if(is_array($arHandler["PROFILES"])) { foreach($arHandler["PROFILES"] as $k => $v) { $delivery[$arHandler["SID"].":".$k] = $v["TITLE"]." (".$arHandler["NAME"].")"; } } } $arStore = array(); $arMeasures = array(); if(CModule::IncludeModule("catalog")) { $dbList = CCatalogStore::GetList( array("SORT" => "DESC", "ID" => "ASC"), array("ACTIVE" => "Y", "ISSUING_CENTER" => "Y"), false, false, array("ID", "SORT", "TITLE", "ADDRESS", "DESCRIPTION", "PHONE", "EMAIL", "XML_ID") ); while ($arStoreTmp = $dbList->Fetch()) { if(strlen($arStoreTmp["XML_ID"]) <= 0) $arStoreTmp["XML_ID"] = $arStoreTmp["ID"]; $arStore[$arStoreTmp["ID"]] = $arStoreTmp; } $dbList = CCatalogMeasure::getList(array(), array(), false, false, array("CODE", "MEASURE_TITLE")); while($arList = $dbList->Fetch()) { $arMeasures[$arList["CODE"]] = $arList["MEASURE_TITLE"]; } } if(empty($arMeasures)) $arMeasures[796] = GetMessage("SALE_EXPORT_SHTUKA"); $dbExport = CSaleExport::GetList(); while($arExport = $dbExport->Fetch()) { $arAgent[$arExport["PERSON_TYPE_ID"]] = unserialize($arExport["VARS"]); } $dateFormat = CSite::GetDateFormat("FULL"); if ($crmMode) { echo "<"."?xml version=\"1.0\" encoding=\"UTF-8\"?".">\n"; $arCharSets = array(); $dbSitesList = CSite::GetList(($b=""), ($o="")); while ($arSite = $dbSitesList->Fetch()) $arCharSets[$arSite["ID"]] = $arSite["CHARSET"]; } else echo "<"."?xml version=\"1.0\" encoding=\"windows-1251\"?".">\n"; ?> <<?php echo GetMessage("SALE_EXPORT_COM_INFORMATION"); ?> <?php echo GetMessage("SALE_EXPORT_SHEM_VERSION"); ?> ="<?php echo $bNewVersion ? "2.08" : "2.05"; ?> " <?php echo GetMessage("SALE_EXPORT_SHEM_DATE_CREATE"); ?> ="<?php echo date("Y-m-d"); ?> T<?php echo date("G:i:s"); ?> " <?php echo GetMessage("SALE_EXPORT_DATE_FORMAT"); ?> ="<?php echo GetMessage("SALE_EXPORT_DATE_FORMAT_DF"); ?> =yyyy-MM-dd; <?php echo GetMessage("SALE_EXPORT_DATE_FORMAT_DLF"); ?> =DT" <?php echo GetMessage("SALE_EXPORT_DATE_FORMAT_DATETIME"); ?> ="<?php echo GetMessage("SALE_EXPORT_DATE_FORMAT_DF"); ?> =<?php echo GetMessage("SALE_EXPORT_DATE_FORMAT_TIME"); ?> ; <?php echo GetMessage("SALE_EXPORT_DATE_FORMAT_DLF"); ?> =T" <?php echo GetMessage("SALE_EXPORT_DEL_DT"); ?> ="T" <?php echo GetMessage("SALE_EXPORT_FORM_SUMM"); ?> ="<?php echo GetMessage("SALE_EXPORT_FORM_CC"); ?> =18; <?php echo GetMessage("SALE_EXPORT_FORM_CDC"); ?> =2; <?php echo GetMessage("SALE_EXPORT_FORM_CRD"); ?> =." <?php echo GetMessage("SALE_EXPORT_FORM_QUANT"); ?> ="<?php echo GetMessage("SALE_EXPORT_FORM_CC"); ?> =18; <?php echo GetMessage("SALE_EXPORT_FORM_CDC"); ?> =2; <?php echo GetMessage("SALE_EXPORT_FORM_CRD"); ?> =."> <? $arOrder = array("ID" => "DESC"); if ($crmMode) $arOrder = array("DATE_UPDATE" => "ASC"); $arSelect = array( "ID", "LID", "PERSON_TYPE_ID", "PAYED", "DATE_PAYED", "EMP_PAYED_ID", "CANCELED", "DATE_CANCELED", "EMP_CANCELED_ID", "REASON_CANCELED", "STATUS_ID", "DATE_STATUS", "PAY_VOUCHER_NUM", "PAY_VOUCHER_DATE", "EMP_STATUS_ID", "PRICE_DELIVERY", "ALLOW_DELIVERY", "DATE_ALLOW_DELIVERY", "EMP_ALLOW_DELIVERY_ID", "PRICE", "CURRENCY", "DISCOUNT_VALUE", "SUM_PAID", "USER_ID", "PAY_SYSTEM_ID", "DELIVERY_ID", "DATE_INSERT", "DATE_INSERT_FORMAT", "DATE_UPDATE", "USER_DESCRIPTION", "ADDITIONAL_INFO", "PS_STATUS", "PS_STATUS_CODE", "PS_STATUS_DESCRIPTION", "PS_STATUS_MESSAGE", "PS_SUM", "PS_CURRENCY", "PS_RESPONSE_DATE", "COMMENTS", "TAX_VALUE", "STAT_GID", "RECURRING_ID", "ACCOUNT_NUMBER", "SUM_PAID", "DELIVERY_DOC_DATE", "DELIVERY_DOC_NUM", "TRACKING_NUMBER", "STORE_ID", "ID_1C", "VERSION", ); $bCrmModuleIncluded = false; if ($bExportFromCrm) { $arSelect[] = "UF_COMPANY_ID"; $arSelect[] = "UF_CONTACT_ID"; if (IsModuleInstalled("crm") && CModule::IncludeModule("crm")) $bCrmModuleIncluded = true; } $dbOrderList = CSaleOrder::GetList($arOrder, $arFilter, false, $count, $arSelect); while($arOrder = $dbOrderList->Fetch()) { if ($crmMode) { if($bNewVersion && is_array($_SESSION["BX_CML2_EXPORT"][$lastOrderPrefix]) && in_array($arOrder["ID"], $_SESSION["BX_CML2_EXPORT"][$lastOrderPrefix]) && empty($arFilter["ID"])) continue; ob_start(); } $arResultStat["ORDERS"]++; $agentParams = $arAgent[$arOrder["PERSON_TYPE_ID"]]; $arProp = Array(); $arProp["ORDER"] = $arOrder; if (IntVal($arOrder["USER_ID"]) > 0) { $dbUser = CUser::GetByID($arOrder["USER_ID"]); if ($arUser = $dbUser->Fetch()) $arProp["USER"] = $arUser; } if ($bExportFromCrm) { $arProp["CRM"] = array(); $companyID = isset($arOrder["UF_COMPANY_ID"]) ? intval($arOrder["UF_COMPANY_ID"]) : 0; $contactID = isset($arOrder["UF_CONTACT_ID"]) ? intval($arOrder["UF_CONTACT_ID"]) : 0; if ($companyID > 0) { $arProp["CRM"]["CLIENT_ID"] = "CRMCO".$companyID; } else { $arProp["CRM"]["CLIENT_ID"] = "CRMC".$contactID; } $clientInfo = array( "LOGIN" => "", "NAME" => "", "LAST_NAME" => "", "SECOND_NAME" => "" ); if ($bCrmModuleIncluded) { if ($companyID > 0) { $arCompanyFilter = array('=ID' => $companyID); $dbCompany = CCrmCompany::GetListEx( array(), $arCompanyFilter, false, array("nTopCount" => 1), array("TITLE") ); $arCompany = $dbCompany->Fetch(); unset($dbCompany, $arCompanyFilter); if (is_array($arCompany)) { if (isset($arCompany["TITLE"])) $clientInfo["NAME"] = $arCompany["TITLE"]; } unset($arCompany); } else if ($contactID > 0) { $arContactFilter = array('=ID' => $contactID); $dbContact = CCrmContact::GetListEx( array(), $arContactFilter, false, array("nTopCount" => 1), array("NAME", "LAST_NAME", "SECOND_NAME") ); $arContact = $dbContact->Fetch(); unset($dbContact, $arContactFilter); if (is_array($arContact)) { if (isset($arContact["NAME"])) $clientInfo["NAME"] = $arContact["NAME"]; if (isset($arContact["LAST_NAME"])) $clientInfo["LAST_NAME"] = $arContact["LAST_NAME"]; if (isset($arContact["SECOND_NAME"])) $clientInfo["SECOND_NAME"] = $arContact["SECOND_NAME"]; } unset($arContact); } } $arProp["CRM"]["CLIENT"] = $clientInfo; unset($clientInfo); } if(IntVal($arOrder["PAY_SYSTEM_ID"]) > 0) $arProp["ORDER"]["PAY_SYSTEM_NAME"] = $paySystems[$arOrder["PAY_SYSTEM_ID"]]; if(strlen($arOrder["DELIVERY_ID"]) > 0) $arProp["ORDER"]["DELIVERY_NAME"] = $delivery[$arOrder["DELIVERY_ID"]]; $dbOrderPropVals = CSaleOrderPropsValue::GetList( array(), array("ORDER_ID" => $arOrder["ID"]), false, false, array("ID", "CODE", "VALUE", "ORDER_PROPS_ID", "PROP_TYPE") ); while ($arOrderPropVals = $dbOrderPropVals->Fetch()) { if ($arOrderPropVals["PROP_TYPE"] == "CHECKBOX") { if ($arOrderPropVals["VALUE"] == "Y") $arProp["PROPERTY"][$arOrderPropVals["ORDER_PROPS_ID"]] = "true"; else $arProp["PROPERTY"][$arOrderPropVals["ORDER_PROPS_ID"]] = "false"; } elseif ($arOrderPropVals["PROP_TYPE"] == "TEXT" || $arOrderPropVals["PROP_TYPE"] == "TEXTAREA") { $arProp["PROPERTY"][$arOrderPropVals["ORDER_PROPS_ID"]] = $arOrderPropVals["VALUE"]; } elseif ($arOrderPropVals["PROP_TYPE"] == "SELECT" || $arOrderPropVals["PROP_TYPE"] == "RADIO") { $arVal = CSaleOrderPropsVariant::GetByValue($arOrderPropVals["ORDER_PROPS_ID"], $arOrderPropVals["VALUE"]); $arProp["PROPERTY"][$arOrderPropVals["ORDER_PROPS_ID"]] = $arVal["NAME"]; } elseif ($arOrderPropVals["PROP_TYPE"] == "MULTISELECT") { $curVal = explode(",", $arOrderPropVals["VALUE"]); foreach($curVal as $vm) { $arVal = CSaleOrderPropsVariant::GetByValue($arOrderPropVals["ORDER_PROPS_ID"], $vm); $arProp["PROPERTY"][$arOrderPropVals["ORDER_PROPS_ID"]] .= ", ".$arVal["NAME"]; } $arProp["PROPERTY"][$arOrderPropVals["ORDER_PROPS_ID"]] = substr($arProp["PROPERTY"][$arOrderPropVals["ORDER_PROPS_ID"]], 2); } elseif ($arOrderPropVals["PROP_TYPE"] == "LOCATION") { $arVal = CSaleLocation::GetByID($arOrderPropVals["VALUE"], LANGUAGE_ID); $arProp["PROPERTY"][$arOrderPropVals["ORDER_PROPS_ID"]] = ($arVal["COUNTRY_NAME"].((strlen($arVal["COUNTRY_NAME"])<=0 || strlen($arVal["REGION_NAME"])<=0) ? "" : " - ").$arVal["REGION_NAME"].((strlen($arVal["COUNTRY_NAME"])<=0 || strlen($arVal["CITY_NAME"])<=0) ? "" : " - ").$arVal["CITY_NAME"]); $arProp["PROPERTY"][$arOrderPropVals["ORDER_PROPS_ID"]."_CITY"] = $arVal["CITY_NAME"]; $arProp["PROPERTY"][$arOrderPropVals["ORDER_PROPS_ID"]."_COUNTRY"] = $arVal["COUNTRY_NAME"]; $arProp["PROPERTY"][$arOrderPropVals["ORDER_PROPS_ID"]."_REGION"] = $arVal["REGION_NAME"]; } else { $arProp["PROPERTY"][$arOrderPropVals["ORDER_PROPS_ID"]] = $arOrderPropVals["VALUE"]; } } foreach($agentParams as $k => $v) { if(strpos($k, "REKV_") !== false) { if(!is_array($v)) { $agent["REKV"][$k] = $v; } else { if(strlen($v["TYPE"])<=0) $agent["REKV"][$k] = $v["VALUE"]; else $agent["REKV"][$k] = $arProp[$v["TYPE"]][$v["VALUE"]]; } } else { if(!is_array($v)) { $agent[$k] = $v; } else { if(strlen($v["TYPE"])<=0) $agent[$k] = $v["VALUE"]; else $agent[$k] = $arProp[$v["TYPE"]][$v["VALUE"]]; } } } ?> <<?php echo GetMessage("SALE_EXPORT_DOCUMENT"); ?> > <<?php echo GetMessage("SALE_EXPORT_ID"); ?> ><?php echo $arOrder["ID"]; ?> </<?php echo GetMessage("SALE_EXPORT_ID"); ?> > <<?php echo GetMessage("SALE_EXPORT_NUMBER"); ?> ><?php echo $accountNumberPrefix . $arOrder["ACCOUNT_NUMBER"]; ?> </<?php echo GetMessage("SALE_EXPORT_NUMBER"); ?> > <<?php echo GetMessage("SALE_EXPORT_DATE"); ?> ><?php echo $DB->FormatDate($arOrder["DATE_INSERT_FORMAT"], $dateFormat, "YYYY-MM-DD"); ?> </<?php echo GetMessage("SALE_EXPORT_DATE"); ?> > <<?php echo GetMessage("SALE_EXPORT_HOZ_OPERATION"); ?> ><?php echo GetMessage("SALE_EXPORT_ITEM_ORDER"); ?> </<?php echo GetMessage("SALE_EXPORT_HOZ_OPERATION"); ?> > <<?php echo GetMessage("SALE_EXPORT_ROLE"); ?> ><?php echo GetMessage("SALE_EXPORT_SELLER"); ?> </<?php echo GetMessage("SALE_EXPORT_ROLE"); ?> > <<?php echo GetMessage("SALE_EXPORT_CURRENCY"); ?> ><?php echo htmlspecialcharsbx(strlen($currency) > 0 ? substr($currency, 0, 3) : substr($arOrder["CURRENCY"], 0, 3)); ?> </<?php echo GetMessage("SALE_EXPORT_CURRENCY"); ?> > <<?php echo GetMessage("SALE_EXPORT_CURRENCY_RATE"); ?> >1</<?php echo GetMessage("SALE_EXPORT_CURRENCY_RATE"); ?> > <<?php echo GetMessage("SALE_EXPORT_AMOUNT"); ?> ><?php echo $arOrder["PRICE"]; ?> </<?php echo GetMessage("SALE_EXPORT_AMOUNT"); ?> > <? if($bNewVersion) { ?> <<?php echo GetMessage("SALE_EXPORT_VERSION"); ?> ><?php echo IntVal($arOrder["VERSION"]) > 0 ? $arOrder["VERSION"] : 0; ?> </<?php echo GetMessage("SALE_EXPORT_VERSION"); ?> > <? if(strlen($arOrder["ID_1C"]) > 0) { ?><<?php echo GetMessage("SALE_EXPORT_ID_1C"); ?> ><?php echo htmlspecialcharsbx($arOrder["ID_1C"]); ?> </<?php echo GetMessage("SALE_EXPORT_ID_1C"); ?> ><? } } if ($crmMode) { ?><DateUpdate><?php echo $DB->FormatDate($arOrder["DATE_UPDATE"], $dateFormat, "YYYY-MM-DD HH:MI:SS"); ?> </DateUpdate><? } $deliveryAdr = CSaleExport::ExportContragents( $arOrder, $arProp, $agent, $arResultStat, $bNewVersion, $bExportFromCrm ? array("EXPORT_FROM_CRM" => "Y") : array() ); ?> <<?php echo GetMessage("SALE_EXPORT_TIME"); ?> ><?php echo $DB->FormatDate($arOrder["DATE_INSERT_FORMAT"], $dateFormat, "HH:MI:SS"); ?> </<?php echo GetMessage("SALE_EXPORT_TIME"); ?> > <<?php echo GetMessage("SALE_EXPORT_COMMENTS"); ?> ><?php echo htmlspecialcharsbx($arOrder["COMMENTS"]); ?> </<?php echo GetMessage("SALE_EXPORT_COMMENTS"); ?> > <? $dbOrderTax = CSaleOrderTax::GetList( array(), array("ORDER_ID" => $arOrder["ID"]), false, false, array("ID", "TAX_NAME", "VALUE", "VALUE_MONEY", "CODE", "IS_IN_PRICE") ); $i=-1; $orderTax = 0; while ($arOrderTax = $dbOrderTax->Fetch()) { $arOrderTax["VALUE_MONEY"] = roundEx($arOrderTax["VALUE_MONEY"], 2); $orderTax += $arOrderTax["VALUE_MONEY"]; $i++; if($i == 0) echo "<".GetMessage("SALE_EXPORT_TAXES").">"; ?> <<?php echo GetMessage("SALE_EXPORT_TAX"); ?> > <<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> ><?php echo htmlspecialcharsbx($arOrderTax["TAX_NAME"]); ?> </<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> > <<?php echo GetMessage("SALE_EXPORT_IN_PRICE"); ?> ><?php echo $arOrderTax["IS_IN_PRICE"] == "Y" ? "true" : "false"; ?> </<?php echo GetMessage("SALE_EXPORT_IN_PRICE"); ?> > <<?php echo GetMessage("SALE_EXPORT_AMOUNT"); ?> ><?php echo $arOrderTax["VALUE_MONEY"]; ?> </<?php echo GetMessage("SALE_EXPORT_AMOUNT"); ?> > </<?php echo GetMessage("SALE_EXPORT_TAX"); ?> > <? } if($i != -1) echo "</".GetMessage("SALE_EXPORT_TAXES").">"; ?> <?if(DoubleVal($arOrder["DISCOUNT_VALUE"]) > 0) { ?> <<?php echo GetMessage("SALE_EXPORT_DISCOUNTS"); ?> > <<?php echo GetMessage("SALE_EXPORT_DISCOUNT"); ?> > <<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> ><?php echo GetMessage("SALE_EXPORT_ORDER_DISCOUNT"); ?> </<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> > <<?php echo GetMessage("SALE_EXPORT_AMOUNT"); ?> ><?php echo $arOrder["DISCOUNT_VALUE"]; ?> </<?php echo GetMessage("SALE_EXPORT_AMOUNT"); ?> > <<?php echo GetMessage("SALE_EXPORT_IN_PRICE"); ?> >false</<?php echo GetMessage("SALE_EXPORT_IN_PRICE"); ?> > </<?php echo GetMessage("SALE_EXPORT_DISCOUNT"); ?> > </<?php echo GetMessage("SALE_EXPORT_DISCOUNTS"); ?> > <? } $storeBasket = ""; if(IntVal($arOrder["STORE_ID"]) > 0 && !empty($arStore[$arOrder["STORE_ID"]])) { ?> <<?php echo GetMessage("SALE_EXPORT_STORIES"); ?> > <<?php echo GetMessage("SALE_EXPORT_STORY"); ?> > <<?php echo GetMessage("SALE_EXPORT_ID"); ?> ><?php echo $arStore[$arOrder["STORE_ID"]]["XML_ID"]; ?> </<?php echo GetMessage("SALE_EXPORT_ID"); ?> > <<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> ><?php echo htmlspecialcharsbx($arStore[$arOrder["STORE_ID"]]["TITLE"]); ?> </<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> > <<?php echo GetMessage("SALE_EXPORT_ADDRESS"); ?> > <<?php echo GetMessage("SALE_EXPORT_PRESENTATION"); ?> ><?php echo htmlspecialcharsbx($arStore[$arOrder["STORE_ID"]]["ADDRESS"]); ?> </<?php echo GetMessage("SALE_EXPORT_PRESENTATION"); ?> > <<?php echo GetMessage("SALE_EXPORT_ADDRESS_FIELD"); ?> > <<?php echo GetMessage("SALE_EXPORT_TYPE"); ?> ><?php echo GetMessage("SALE_EXPORT_STREET"); ?> </<?php echo GetMessage("SALE_EXPORT_TYPE"); ?> > <<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> ><?php echo htmlspecialcharsbx($arStore[$arOrder["STORE_ID"]]["ADDRESS"]); ?> </<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> > </<?php echo GetMessage("SALE_EXPORT_ADDRESS_FIELD"); ?> > </<?php echo GetMessage("SALE_EXPORT_ADDRESS"); ?> > <<?php echo GetMessage("SALE_EXPORT_CONTACTS"); ?> > <<?php echo GetMessage("SALE_EXPORT_CONTACT"); ?> > <<?php echo GetMessage("SALE_EXPORT_TYPE"); ?> ><?php echo $bNewVersion ? GetMessage("SALE_EXPORT_WORK_PHONE_NEW") : GetMessage("SALE_EXPORT_WORK_PHONE"); ?> </<?php echo GetMessage("SALE_EXPORT_TYPE"); ?> > <<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> ><?php echo htmlspecialcharsbx($arStore[$arOrder["STORE_ID"]]["PHONE"]); ?> </<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> > </<?php echo GetMessage("SALE_EXPORT_CONTACT"); ?> > </<?php echo GetMessage("SALE_EXPORT_CONTACTS"); ?> > </<?php echo GetMessage("SALE_EXPORT_STORY"); ?> > </<?php echo GetMessage("SALE_EXPORT_STORIES"); ?> > <? /* $storeBasket = " <".GetMessage("SALE_EXPORT_STORIES")."> <".GetMessage("SALE_EXPORT_STORY")."> <".GetMessage("SALE_EXPORT_ID").">".$arStore[$arOrder["STORE_ID"]]["XML_ID"]."</".GetMessage("SALE_EXPORT_ID")."> <".GetMessage("SALE_EXPORT_ITEM_NAME").">".htmlspecialcharsbx($arStore[$arOrder["STORE_ID"]]["TITLE"])."</".GetMessage("SALE_EXPORT_ITEM_NAME")."> </".GetMessage("SALE_EXPORT_STORY")."> </".GetMessage("SALE_EXPORT_STORIES")."> "; */ } ?> <<?php echo GetMessage("SALE_EXPORT_ITEMS"); ?> > <? $dbBasket = CSaleBasket::GetList( array("NAME" => "ASC"), array("ORDER_ID" => $arOrder["ID"]), false, false, array("ID", "NOTES", "PRODUCT_XML_ID", "CATALOG_XML_ID", "NAME", "PRICE", "QUANTITY", "DISCOUNT_PRICE", "VAT_RATE", "MEASURE_CODE") ); $basketSum = 0; $priceType = ""; $bVat = false; $vatRate = 0; $vatSum = 0; while ($arBasket = $dbBasket->Fetch()) { if(strlen($priceType) <= 0) $priceType = $arBasket["NOTES"]; ?> <<?php echo GetMessage("SALE_EXPORT_ITEM"); ?> > <<?php echo GetMessage("SALE_EXPORT_ID"); ?> ><?php echo htmlspecialcharsbx($arBasket["PRODUCT_XML_ID"]); ?> </<?php echo GetMessage("SALE_EXPORT_ID"); ?> > <<?php echo GetMessage("SALE_EXPORT_CATALOG_ID"); ?> ><?php echo htmlspecialcharsbx($arBasket["CATALOG_XML_ID"]); ?> </<?php echo GetMessage("SALE_EXPORT_CATALOG_ID"); ?> > <<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> ><?php echo htmlspecialcharsbx($arBasket["NAME"]); ?> </<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> > <? if($bNewVersion) { if(IntVal($arBasket["MEASURE_CODE"]) <= 0) $arBasket["MEASURE_CODE"] = 796; ?> <<?php echo GetMessage("SALE_EXPORT_UNIT"); ?> > <<?php echo GetMessage("SALE_EXPORT_CODE"); ?> ><?php echo $arBasket["MEASURE_CODE"]; ?> </<?php echo GetMessage("SALE_EXPORT_CODE"); ?> > <<?php echo GetMessage("SALE_EXPORT_FULL_NAME_UNIT"); ?> ><?php echo htmlspecialcharsbx($arMeasures[$arBasket["MEASURE_CODE"]]); ?> </<?php echo GetMessage("SALE_EXPORT_FULL_NAME_UNIT"); ?> > </<?php echo GetMessage("SALE_EXPORT_UNIT"); ?> > <<?php echo GetMessage("SALE_EXPORT_KOEF"); ?> >1</<?php echo GetMessage("SALE_EXPORT_KOEF"); ?> > <? } else { ?> <<?php echo GetMessage("SALE_EXPORT_BASE_UNIT"); ?> <?php echo GetMessage("SALE_EXPORT_CODE"); ?> ="796" <?php echo GetMessage("SALE_EXPORT_FULL_NAME_UNIT"); ?> ="<?php echo GetMessage("SALE_EXPORT_SHTUKA"); ?> " <?php echo GetMessage("SALE_EXPORT_INTERNATIONAL_ABR"); ?> ="<?php echo GetMessage("SALE_EXPORT_RCE"); ?> "><?php echo GetMessage("SALE_EXPORT_SHT"); ?> </<?php echo GetMessage("SALE_EXPORT_BASE_UNIT"); ?> > <? } if(DoubleVal($arBasket["DISCOUNT_PRICE"]) > 0) { ?> <<?php echo GetMessage("SALE_EXPORT_DISCOUNTS"); ?> > <<?php echo GetMessage("SALE_EXPORT_DISCOUNT"); ?> > <<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> ><?php echo GetMessage("SALE_EXPORT_ITEM_DISCOUNT"); ?> </<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> > <<?php echo GetMessage("SALE_EXPORT_AMOUNT"); ?> ><?php echo $arBasket["DISCOUNT_PRICE"]; ?> </<?php echo GetMessage("SALE_EXPORT_AMOUNT"); ?> > <<?php echo GetMessage("SALE_EXPORT_IN_PRICE"); ?> >true</<?php echo GetMessage("SALE_EXPORT_IN_PRICE"); ?> > </<?php echo GetMessage("SALE_EXPORT_DISCOUNT"); ?> > </<?php echo GetMessage("SALE_EXPORT_DISCOUNTS"); ?> > <? } ?> <<?php echo GetMessage("SALE_EXPORT_PRICE_PER_ITEM"); ?> ><?php echo $arBasket["PRICE"]; ?> </<?php echo GetMessage("SALE_EXPORT_PRICE_PER_ITEM"); ?> > <<?php echo GetMessage("SALE_EXPORT_QUANTITY"); ?> ><?php echo $arBasket["QUANTITY"]; ?> </<?php echo GetMessage("SALE_EXPORT_QUANTITY"); ?> > <<?php echo GetMessage("SALE_EXPORT_AMOUNT"); ?> ><?php echo $arBasket["PRICE"] * $arBasket["QUANTITY"]; ?> </<?php echo GetMessage("SALE_EXPORT_AMOUNT"); ?> > <<?php echo GetMessage("SALE_EXPORT_PROPERTIES_VALUES"); ?> > <<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > <<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> ><?php echo GetMessage("SALE_EXPORT_TYPE_NOMENKLATURA"); ?> </<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> > <<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> ><?php echo GetMessage("SALE_EXPORT_ITEM"); ?> </<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> > </<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > <<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > <<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> ><?php echo GetMessage("SALE_EXPORT_TYPE_OF_NOMENKLATURA"); ?> </<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> > <<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> ><?php echo GetMessage("SALE_EXPORT_ITEM"); ?> </<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> > </<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > <? $dbProp = CSaleBasket::GetPropsList(Array("SORT" => "ASC", "ID" => "ASC"), Array("BASKET_ID" => $arBasket["ID"], "!CODE" => array("CATALOG.XML_ID", "PRODUCT.XML_ID")), false, false, array("NAME", "VALUE", "CODE")); while($arProp = $dbProp->Fetch()) { ?> <<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > <<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> ><?php echo htmlspecialcharsbx($arProp["NAME"]); ?> </<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> > <<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> ><?php echo htmlspecialcharsbx($arProp["VALUE"]); ?> </<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> > </<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > <? } ?> </<?php echo GetMessage("SALE_EXPORT_PROPERTIES_VALUES"); ?> > <?if(DoubleVal($arBasket["VAT_RATE"]) > 0) { $bVat = true; $vatRate = DoubleVal($arBasket["VAT_RATE"]); $basketVatSum = (($arBasket["PRICE"] / ($arBasket["VAT_RATE"]+1)) * $arBasket["VAT_RATE"]); $vatSum += roundEx($basketVatSum * $arBasket["QUANTITY"], 2); ?> <<?php echo GetMessage("SALE_EXPORT_TAX_RATES"); ?> > <<?php echo GetMessage("SALE_EXPORT_TAX_RATE"); ?> > <<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> ><?php echo GetMessage("SALE_EXPORT_VAT"); ?> </<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> > <<?php echo GetMessage("SALE_EXPORT_RATE"); ?> ><?php echo $arBasket["VAT_RATE"] * 100; ?> </<?php echo GetMessage("SALE_EXPORT_RATE"); ?> > </<?php echo GetMessage("SALE_EXPORT_TAX_RATE"); ?> > </<?php echo GetMessage("SALE_EXPORT_TAX_RATES"); ?> > <<?php echo GetMessage("SALE_EXPORT_TAXES"); ?> > <<?php echo GetMessage("SALE_EXPORT_TAX"); ?> > <<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> ><?php echo GetMessage("SALE_EXPORT_VAT"); ?> </<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> > <<?php echo GetMessage("SALE_EXPORT_IN_PRICE"); ?> >true</<?php echo GetMessage("SALE_EXPORT_IN_PRICE"); ?> > <<?php echo GetMessage("SALE_EXPORT_AMOUNT"); ?> ><?php echo roundEx($basketVatSum, 2); ?> </<?php echo GetMessage("SALE_EXPORT_AMOUNT"); ?> > </<?php echo GetMessage("SALE_EXPORT_TAX"); ?> > </<?php echo GetMessage("SALE_EXPORT_TAXES"); ?> > <? } ?> <?php echo $storeBasket; ?> </<?php echo GetMessage("SALE_EXPORT_ITEM"); ?> > <? $basketSum += $arBasket["PRICE"]*$arBasket["QUANTITY"]; } if(IntVal($arOrder["PRICE_DELIVERY"]) > 0) { ?> <<?php echo GetMessage("SALE_EXPORT_ITEM"); ?> > <<?php echo GetMessage("SALE_EXPORT_ID"); ?> >ORDER_DELIVERY</<?php echo GetMessage("SALE_EXPORT_ID"); ?> > <<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> ><?php echo GetMessage("SALE_EXPORT_ORDER_DELIVERY"); ?> </<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> > <? if($bNewVersion) { ?> <<?php echo GetMessage("SALE_EXPORT_UNIT"); ?> > <<?php echo GetMessage("SALE_EXPORT_CODE"); ?> >796</<?php echo GetMessage("SALE_EXPORT_CODE"); ?> > <<?php echo GetMessage("SALE_EXPORT_FULL_NAME_UNIT"); ?> ><?php echo htmlspecialcharsbx($arMeasures[796]); ?> </<?php echo GetMessage("SALE_EXPORT_FULL_NAME_UNIT"); ?> > </<?php echo GetMessage("SALE_EXPORT_UNIT"); ?> > <<?php echo GetMessage("SALE_EXPORT_KOEF"); ?> >1</<?php echo GetMessage("SALE_EXPORT_KOEF"); ?> > <? } else { ?> <<?php echo GetMessage("SALE_EXPORT_BASE_UNIT"); ?> <?php echo GetMessage("SALE_EXPORT_CODE"); ?> ="796" <?php echo GetMessage("SALE_EXPORT_FULL_NAME_UNIT"); ?> ="<?php echo GetMessage("SALE_EXPORT_SHTUKA"); ?> " <?php echo GetMessage("SALE_EXPORT_INTERNATIONAL_ABR"); ?> ="<?php echo GetMessage("SALE_EXPORT_RCE"); ?> "><?php echo GetMessage("SALE_EXPORT_SHT"); ?> </<?php echo GetMessage("SALE_EXPORT_BASE_UNIT"); ?> > <? } ?> <<?php echo GetMessage("SALE_EXPORT_PRICE_PER_ITEM"); ?> ><?php echo $arOrder["PRICE_DELIVERY"]; ?> </<?php echo GetMessage("SALE_EXPORT_PRICE_PER_ITEM"); ?> > <<?php echo GetMessage("SALE_EXPORT_QUANTITY"); ?> >1</<?php echo GetMessage("SALE_EXPORT_QUANTITY"); ?> > <<?php echo GetMessage("SALE_EXPORT_AMOUNT"); ?> ><?php echo $arOrder["PRICE_DELIVERY"]; ?> </<?php echo GetMessage("SALE_EXPORT_AMOUNT"); ?> > <<?php echo GetMessage("SALE_EXPORT_PROPERTIES_VALUES"); ?> > <<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > <<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> ><?php echo GetMessage("SALE_EXPORT_TYPE_NOMENKLATURA"); ?> </<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> > <<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> ><?php echo GetMessage("SALE_EXPORT_SERVICE"); ?> </<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> > </<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > <<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > <<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> ><?php echo GetMessage("SALE_EXPORT_TYPE_OF_NOMENKLATURA"); ?> </<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> > <<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> ><?php echo GetMessage("SALE_EXPORT_SERVICE"); ?> </<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> > </<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > </<?php echo GetMessage("SALE_EXPORT_PROPERTIES_VALUES"); ?> > <?if($bVat) { $deliveryTax = roundEx((($arOrder["PRICE_DELIVERY"] / ($vatRate+1)) * $vatRate), 2); if($orderTax > $vatSum && $orderTax == roundEx($vatSum + $deliveryTax, 2)) { ?> <<?php echo GetMessage("SALE_EXPORT_TAX_RATES"); ?> > <<?php echo GetMessage("SALE_EXPORT_TAX_RATE"); ?> > <<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> ><?php echo GetMessage("SALE_EXPORT_VAT"); ?> </<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> > <<?php echo GetMessage("SALE_EXPORT_RATE"); ?> ><?php echo $vatRate * 100; ?> </<?php echo GetMessage("SALE_EXPORT_RATE"); ?> > </<?php echo GetMessage("SALE_EXPORT_TAX_RATE"); ?> > </<?php echo GetMessage("SALE_EXPORT_TAX_RATES"); ?> > <<?php echo GetMessage("SALE_EXPORT_TAXES"); ?> > <<?php echo GetMessage("SALE_EXPORT_TAX"); ?> > <<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> ><?php echo GetMessage("SALE_EXPORT_VAT"); ?> </<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> > <<?php echo GetMessage("SALE_EXPORT_IN_PRICE"); ?> >true</<?php echo GetMessage("SALE_EXPORT_IN_PRICE"); ?> > <<?php echo GetMessage("SALE_EXPORT_AMOUNT"); ?> ><?php echo $deliveryTax; ?> </<?php echo GetMessage("SALE_EXPORT_AMOUNT"); ?> > </<?php echo GetMessage("SALE_EXPORT_TAX"); ?> > </<?php echo GetMessage("SALE_EXPORT_TAXES"); ?> > <? } } ?> </<?php echo GetMessage("SALE_EXPORT_ITEM"); ?> > <? } ?> </<?php echo GetMessage("SALE_EXPORT_ITEMS"); ?> > <<?php echo GetMessage("SALE_EXPORT_PROPERTIES_VALUES"); ?> > <?if(strlen($arOrder["DATE_PAYED"])>0) { ?> <<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > <<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> ><?php echo GetMessage("SALE_EXPORT_DATE_PAID"); ?> </<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> > <<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> ><?php echo $arOrder["DATE_PAYED"]; ?> </<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> > </<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > <? } if(strlen($arOrder["PAY_VOUCHER_NUM"])>0) { ?> <<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > <<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> ><?php echo GetMessage("SALE_EXPORT_PAY_NUMBER"); ?> </<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> > <<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> ><?php echo htmlspecialcharsbx($arOrder["PAY_VOUCHER_NUM"]); ?> </<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> > </<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > <? } if(IntVal($arOrder["PAY_SYSTEM_ID"])>0) { ?> <<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > <<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> ><?php echo GetMessage("SALE_EXPORT_PAY_SYSTEM"); ?> </<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> > <<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> ><?php echo htmlspecialcharsbx($paySystems[$arOrder["PAY_SYSTEM_ID"]]); ?> </<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> > </<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > <<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > <<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> ><?php echo GetMessage("SALE_EXPORT_PAY_SYSTEM_ID"); ?> </<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> > <<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> ><?php echo htmlspecialcharsbx($arOrder["PAY_SYSTEM_ID"]); ?> </<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> > </<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > <? } if(strlen($arOrder["DATE_ALLOW_DELIVERY"])>0) { ?> <<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > <<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> ><?php echo GetMessage("SALE_EXPORT_DATE_ALLOW_DELIVERY"); ?> </<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> > <<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> ><?php echo $arOrder["DATE_ALLOW_DELIVERY"]; ?> </<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> > </<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > <? } if(strlen($arOrder["DELIVERY_ID"])>0) { ?> <<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > <<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> ><?php echo GetMessage("SALE_EXPORT_DELIVERY_SERVICE"); ?> </<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> > <<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> ><?php echo htmlspecialcharsbx($delivery[$arOrder["DELIVERY_ID"]]); ?> </<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> > </<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > <? } ?> <<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > <<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> ><?php echo GetMessage("SALE_EXPORT_ORDER_PAID"); ?> </<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> > <<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> ><?php echo $arOrder["PAYED"] == "Y" ? "true" : "false"; ?> </<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> > </<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > <<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > <<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> ><?php echo GetMessage("SALE_EXPORT_ALLOW_DELIVERY"); ?> </<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> > <<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> ><?php echo $arOrder["ALLOW_DELIVERY"] == "Y" ? "true" : "false"; ?> </<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> > </<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > <<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > <<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> ><?php echo GetMessage("SALE_EXPORT_CANCELED"); ?> </<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> > <<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> ><?php echo $arOrder["CANCELED"] == "Y" ? "true" : "false"; ?> </<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> > </<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > <<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > <<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> ><?php echo GetMessage("SALE_EXPORT_FINAL_STATUS"); ?> </<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> > <<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> ><?php echo $arOrder["STATUS_ID"] == "F" ? "true" : "false"; ?> </<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> > </<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > <<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > <<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> ><?php echo GetMessage("SALE_EXPORT_ORDER_STATUS"); ?> </<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> > <<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> ><?$arStatus = CSaleStatus::GetLangByID($arOrder["STATUS_ID"]); echo htmlspecialcharsbx("[".$arOrder["STATUS_ID"]."] ".$arStatus["NAME"]);?></<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> > </<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > <<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > <<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> ><?php echo GetMessage("SALE_EXPORT_ORDER_STATUS_ID"); ?> </<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> > <<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> ><?php echo htmlspecialcharsbx($arOrder["STATUS_ID"]); ?> </<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> > </<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > <?if(strlen($arOrder["DATE_CANCELED"])>0) { ?> <<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > <<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> ><?php echo GetMessage("SALE_EXPORT_DATE_CANCEL"); ?> </<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> > <<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> ><?php echo $arOrder["DATE_CANCELED"]; ?> </<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> > </<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > <<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > <<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> ><?php echo GetMessage("SALE_EXPORT_CANCEL_REASON"); ?> </<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> > <<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> ><?php echo htmlspecialcharsbx($arOrder["REASON_CANCELED"]); ?> </<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> > </<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > <? } if(strlen($arOrder["DATE_STATUS"])>0) { ?> <<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > <<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> ><?php echo GetMessage("SALE_EXPORT_DATE_STATUS"); ?> </<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> > <<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> ><?php echo $arOrder["DATE_STATUS"]; ?> </<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> > </<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > <? } if(strlen($arOrder["USER_DESCRIPTION"])>0) { ?> <<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > <<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> ><?php echo GetMessage("SALE_EXPORT_USER_DESCRIPTION"); ?> </<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> > <<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> ><?php echo htmlspecialcharsbx($arOrder["USER_DESCRIPTION"]); ?> </<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> > </<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > <? } $dbSite = CSite::GetByID($arOrder["LID"]); $arSite = $dbSite->Fetch(); ?> <<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > <<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> ><?php echo GetMessage("SALE_EXPORT_SITE_NAME"); ?> </<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> > <<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> >[<?php echo $arOrder["LID"]; ?> ] <?php echo htmlspecialcharsbx($arSite["NAME"]); ?> </<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> > </<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > <? if(!empty($agent["REKV"])) { foreach($agent["REKV"] as $k => $v) { if(strlen($agentParams[$k]["NAME"]) > 0 && strlen($v) > 0) { ?> <<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > <<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> ><?php echo htmlspecialcharsbx($agentParams[$k]["NAME"]); ?> </<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> > <<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> ><?php echo htmlspecialcharsbx($v); ?> </<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> > </<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > <? } } } if(strlen($deliveryAdr) > 0) { ?> <<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > <<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> ><?php echo GetMessage("SALE_EXPORT_DELIVERY_ADDRESS"); ?> </<?php echo GetMessage("SALE_EXPORT_ITEM_NAME"); ?> > <<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> ><?php echo htmlspecialcharsbx($deliveryAdr); ?> </<?php echo GetMessage("SALE_EXPORT_VALUE"); ?> > </<?php echo GetMessage("SALE_EXPORT_PROPERTY_VALUE"); ?> > <? } ?> </<?php echo GetMessage("SALE_EXPORT_PROPERTIES_VALUES"); ?> > </<?php echo GetMessage("SALE_EXPORT_DOCUMENT"); ?> > <? if ($crmMode) { $c = ob_get_clean(); $c = CharsetConverter::ConvertCharset($c, $arCharSets[$arOrder["LID"]], "utf-8"); echo $c; $_SESSION["BX_CML2_EXPORT"][$lastOrderPrefix][] = $arOrder["ID"]; } else { $_SESSION["BX_CML2_EXPORT"][$lastOrderPrefix] = $arOrder["ID"]; } if(IntVal($time_limit) > 0 && time() > $end_time) { break; } } ?> </<?php echo GetMessage("SALE_EXPORT_COM_INFORMATION"); ?> > <? return $arResultStat; }
public static function GetUsersFromUserGroup($group, $documentId) { $groupLc = strtolower($group); if ($groupLc == 'author') { $arDocumentID = self::GetDocumentInfo($documentId); if (empty($arDocumentID)) { return array(); } $dbDocumentList = null; $entityID = isset($arDocumentID['ID']) ? intval($arDocumentID['ID']) : 0; if ($entityID > 0) { switch ($arDocumentID['TYPE']) { case 'CONTACT': $dbDocumentList = CCrmContact::GetListEx(array(), array('ID' => $entityID, 'CHECK_PERMISSIONS' => 'N'), false, false, array('ASSIGNED_BY_ID')); break; case 'COMPANY': $dbDocumentList = CCrmCompany::GetListEx(array(), array('ID' => $entityID, 'CHECK_PERMISSIONS' => 'N'), false, false, array('ASSIGNED_BY_ID')); break; case 'DEAL': $dbDocumentList = CCrmDeal::GetListEx(array(), array('ID' => $entityID, 'CHECK_PERMISSIONS' => 'N'), false, false, array('ASSIGNED_BY_ID')); break; case 'LEAD': $dbDocumentList = CCrmLead::GetListEx(array(), array('ID' => $entityID, 'CHECK_PERMISSIONS' => 'N'), false, false, array('ASSIGNED_BY_ID')); break; } } $arFields = is_object($dbDocumentList) ? $dbDocumentList->Fetch() : null; return is_array($arFields) && isset($arFields['ASSIGNED_BY_ID']) ? array($arFields['ASSIGNED_BY_ID']) : array(); } elseif ($groupLc == 'ungrouped') { return isset(self::$UNGROUPED_USERS[$documentId]) ? self::$UNGROUPED_USERS[$documentId] : array(); } $group = (int) $group; if ($group <= 0) { return array(); } $arResult = array(); $dbUsersList = CUser::GetList($b = 'ID', $o = 'ASC', array('GROUPS_ID' => $group, 'ACTIVE' => 'Y')); while ($arUser = $dbUsersList->Fetch()) { $arResult[] = $arUser['ID']; } return $arResult; }
$i++; if ($i == 1) { continue; } $arTmp = array("PHOTO" => false, "NAME" => false, "URL" => false, "COMPANY" => false, "COMM" => false); if (in_array($arCommunication["ENTITY_TYPE_ID"], array(CCrmOwnerType::Company, CCrmOwnerType::Contact, CCrmOwnerType::Lead))) { 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' => 21, 'height' => 21), BX_RESIZE_IMAGE_EXACT, false); if (is_array($arFileTmp) && isset($arFileTmp["src"])) { $arTmp["PHOTO"] = $arFileTmp['src']; } } } 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' => 21, 'height' => 21), BX_RESIZE_IMAGE_EXACT, false); if (is_array($arFileTmp) && isset($arFileTmp["src"])) { $arTmp["PHOTO"] = $arFileTmp['src']; } } } } $arTmp["NAME"] = CCrmOwnerType::GetCaption($arCommunication["ENTITY_TYPE_ID"], $arCommunication["ENTITY_ID"], false); $arTmp["URL"] = CCrmOwnerType::GetShowURL($arCommunication["ENTITY_TYPE_ID"], $arCommunication["ENTITY_ID"], false); if (in_array($arCommunication["TYPE"], array('EMAIL', 'PHONE'))) { $arTmp["COMM"] = array("TYPE" => $arCommunication["TYPE"], "VALUE" => $arCommunication["VALUE"]); } if (is_array($arCommunication["ENTITY_SETTINGS"]) && isset($arCommunication["ENTITY_SETTINGS"]["COMPANY_TITLE"])) { $arTmp["COMPANY"] = $arCommunication["ENTITY_SETTINGS"]["COMPANY_TITLE"];
$entityID = $arParams['ENTITY_ID'] = isset($arParams['ENTITY_ID']) ? intval($arParams['ENTITY_ID']) : 0; if ($entityID <= 0 && isset($_GET['company_id'])) { $entityID = $arParams['ENTITY_ID'] = intval($_GET['company_id']); } $arResult['ENTITY_ID'] = $entityID; $arParams['NAME_TEMPLATE'] = empty($arParams['NAME_TEMPLATE']) ? CSite::GetNameFormat(false) : str_replace(array('#NOBR#', '#/NOBR#'), array('', ''), $arParams['NAME_TEMPLATE']); $arResult['USER_ID'] = intval(CCrmSecurityHelper::GetCurrentUserID()); $arParams['UID'] = isset($arParams['UID']) ? $arParams['UID'] : ''; if (!isset($arParams['UID']) || $arParams['UID'] === '') { $arParams['UID'] = 'mobile_crm_company_view'; } $arResult['UID'] = $arParams['UID']; $serviceURLTemplate = $arParams["SERVICE_URL_TEMPLATE"] ? $arParams["SERVICE_URL_TEMPLATE"] : '#SITE_DIR#bitrix/components/bitrix/mobile.crm.company.edit/ajax.php?site_id=#SITE#&sessid=#SID#'; $arResult['SERVICE_URL'] = CComponentEngine::makePathFromTemplate($serviceURLTemplate, array('SID' => bitrix_sessid())); $arResult['PERMISSIONS'] = array('EDIT' => CCrmCompany::CheckUpdatePermission($entityID, $userPerms), 'DELETE' => CCrmCompany::CheckDeletePermission($entityID, $userPerms)); $dbFields = CCrmCompany::GetListEx(array(), array('ID' => $entityID)); $arFields = $dbFields->GetNext(); if (!$arFields) { ShowError(GetMessage('CRM_COMPANY_VIEW_NOT_FOUND', array('#ID#' => $arParams['ENTITY_ID']))); return; } $arResult['COMPANY_TYPE_LIST'] = CCrmStatus::GetStatusList('COMPANY_TYPE'); $arResult['EMPLOYEES_LIST'] = CCrmStatus::GetStatusList('EMPLOYEES'); $arResult['INDUSTRY_LIST'] = CCrmStatus::GetStatusList('INDUSTRY'); CCrmMobileHelper::PrepareCompanyItem($arFields, $arParams, array('COMPANY_TYPE' => $arResult['COMPANY_TYPE_LIST'], 'INDUSTRY' => $arResult['INDUSTRY_LIST'], 'EMPLOYEES_LIST' => $arResult['EMPLOYEES_LIST'])); $arFields['FM'] = array(); $dbMultiFields = CCrmFieldMulti::GetList(array('ID' => 'asc'), array('ENTITY_ID' => 'COMPANY', 'ELEMENT_ID' => $entityID)); if ($dbMultiFields) { while ($multiFields = $dbMultiFields->Fetch()) { $arFields['FM'][$multiFields['TYPE_ID']][] = array('VALUE' => $multiFields['VALUE'], 'VALUE_TYPE' => $multiFields['VALUE_TYPE']); }
if (COption::GetOptionString('crm', '~CRM_REBUILD_COMPANY_ATTR', 'N') !== 'Y') { __CrmConfigPermsEndResonse(array('STATUS' => 'NOT_REQUIRED', 'SUMMARY' => GetMessage('CRM_CONFIG_PERMS_REBUILD_ATTR_NOT_REQUIRED_SUMMARY'))); } $progressData = COption::GetOptionString('crm', '~CRM_REBUILD_COMPANY_ATTR_PROGRESS', ''); $progressData = $progressData !== '' ? unserialize($progressData) : array(); $lastItemID = isset($progressData['LAST_ITEM_ID']) ? intval($progressData['LAST_ITEM_ID']) : 0; $processedItemQty = isset($progressData['PROCESSED_ITEMS']) ? intval($progressData['PROCESSED_ITEMS']) : 0; $totalItemQty = isset($progressData['TOTAL_ITEMS']) ? intval($progressData['TOTAL_ITEMS']) : 0; if ($totalItemQty <= 0) { $totalItemQty = CCrmCompany::GetListEx(array(), array('CHECK_PERMISSIONS' => 'N'), array(), false); } $filter = array('CHECK_PERMISSIONS' => 'N'); if ($lastItemID > 0) { $filter['>ID'] = $lastItemID; } $dbResult = CCrmCompany::GetListEx(array('ID' => 'ASC'), $filter, false, array('nTopCount' => 10), array('ID')); $itemIDs = array(); $itemQty = 0; if (is_object($dbResult)) { while ($fields = $dbResult->Fetch()) { $itemIDs[] = intval($fields['ID']); $itemQty++; } } if ($itemQty > 0) { CCrmCompany::RebuildEntityAccessAttrs($itemIDs); $progressData['TOTAL_ITEMS'] = $totalItemQty; $processedItemQty += $itemQty; $progressData['PROCESSED_ITEMS'] = $processedItemQty; $progressData['LAST_ITEM_ID'] = $itemIDs[$itemQty - 1]; COption::SetOptionString('crm', '~CRM_REBUILD_COMPANY_ATTR_PROGRESS', serialize($progressData));
} $bConvert = isset($arParams['CONVERT']) && $arParams['CONVERT']; $isPermitted = $bEdit ? CCrmCompany::CheckUpdatePermission($arParams['ELEMENT_ID'], $userPermissions) : CCrmCompany::CheckCreatePermission($userPermissions); if (!$isPermitted) { ShowError(GetMessage('CRM_PERMISSION_DENIED')); return; } $arEntityAttr = $arParams['ELEMENT_ID'] > 0 ? $userPermissions->GetEntityAttr('COMPANY', array($arParams['ELEMENT_ID'])) : array(); $bInternal = false; if (isset($arParams['INTERNAL_FILTER']) && !empty($arParams['INTERNAL_FILTER'])) { $bInternal = true; } $arResult['INTERNAL'] = $bInternal; if ($bEdit || $bCopy) { $arFilter = array('ID' => $arParams['ELEMENT_ID'], 'PERMISSION' => 'WRITE'); $obFields = CCrmCompany::GetListEx(array(), $arFilter); $arFields = $obFields->GetNext(); if ($arFields === false) { $bEdit = false; $bCopy = false; } if ($bCopy) { $res = CCrmFieldMulti::GetList(array('ID' => 'asc'), array('ENTITY_ID' => 'COMPANY', 'ELEMENT_ID' => $arParams['ELEMENT_ID'])); $arResult['ELEMENT']['FM'] = array(); while ($ar = $res->Fetch()) { $arFields['FM'][$ar['TYPE_ID']]['n0' . $ar['ID']] = array('VALUE' => $ar['VALUE'], 'VALUE_TYPE' => $ar['VALUE_TYPE']); $arFields['FM'][$ar['TYPE_ID']]['n0' . $ar['ID']] = array('VALUE' => $ar['VALUE'], 'VALUE_TYPE' => $ar['VALUE_TYPE']); } unset($arFields['LOGO']); } } else {
} } unset($comm); } } foreach ($imageless as $typeName => &$ids) { if ($typeName === CCrmOwnerType::ContactName) { $dbRes = CCrmContact::GetListEx(array(), array('@ID' => $ids), false, false, array('ID', 'PHOTO')); while ($contact = $dbRes->Fetch()) { $key = "CONTACT_{$contact['ID']}"; if (isset($items[$key])) { $items[$key]['IMAGE_URL'] = CCrmMobileHelper::PrepareContactImageUrl($contact, array('WIDTH' => 40, 'HEIGHT' => 40)); } } } elseif ($typeName === CCrmOwnerType::CompanyName) { $dbRes = CCrmCompany::GetListEx(array(), array('@ID' => $ids), false, false, array('ID', 'LOGO')); while ($company = $dbRes->Fetch()) { $key = "COMPANY_{$company['ID']}"; if (isset($items[$key])) { $items[$key]['IMAGE_URL'] = CCrmMobileHelper::PrepareCompanyImageUrl($company, array('WIDTH' => 40, 'HEIGHT' => 40)); } } } elseif ($typeName === CCrmOwnerType::LeadName) { foreach ($ids as $id) { $key = "LEAD_{$id}"; if (isset($items[$key])) { $items[$key]['IMAGE_URL'] = CCrmMobileHelper::GetLeadListImageStub(); } } } }
public static function EmailMessageAdd($arMessageFields, $ACTION_VARS) { if (!CModule::IncludeModule('crm')) { return false; } $date = isset($arMessageFields['FIELD_DATE']) ? $arMessageFields['FIELD_DATE'] : ''; $maxAgeDays = intval(COption::GetOptionString('crm', 'email_max_age', 7)); $maxAge = $maxAgeDays > 0 ? $maxAgeDays * 86400 : 0; if ($maxAge > 0 && $date !== '') { $now = time() + CTimeZone::GetOffset(); $timestamp = MakeTimeStamp($date, FORMAT_DATETIME); if ($now - $timestamp > $maxAge) { //Time threshold is exceeded return false; } } $crmEmail = strtolower(trim(COption::GetOptionString('crm', 'mail', ''))); $msgID = isset($arMessageFields['ID']) ? intval($arMessageFields['ID']) : 0; $mailboxID = isset($arMessageFields['MAILBOX_ID']) ? intval($arMessageFields['MAILBOX_ID']) : 0; $from = isset($arMessageFields['FIELD_FROM']) ? $arMessageFields['FIELD_FROM'] : ''; $replyTo = isset($arMessageFields['FIELD_REPLY_TO']) ? $arMessageFields['FIELD_REPLY_TO'] : ''; if ($replyTo !== '') { // Ignore FROM if REPLY_TO EXISTS $from = $replyTo; } $addresserInfo = CCrmMailHelper::ParseEmail($from); if ($crmEmail !== '' && strcasecmp($addresserInfo['EMAIL'], $crmEmail) === 0) { // Ignore emails from ourselves return false; } $to = isset($arMessageFields['FIELD_TO']) ? $arMessageFields['FIELD_TO'] : ''; $cc = isset($arMessageFields['FIELD_CC']) ? $arMessageFields['FIELD_CC'] : ''; $bcc = isset($arMessageFields['FIELD_BCC']) ? $arMessageFields['FIELD_BCC'] : ''; $addresseeEmails = array_unique(array_merge($to !== '' ? CMailUtil::ExtractAllMailAddresses($to) : array(), $cc !== '' ? CMailUtil::ExtractAllMailAddresses($cc) : array(), $bcc !== '' ? CMailUtil::ExtractAllMailAddresses($bcc) : array()), SORT_STRING); if ($mailboxID > 0) { $dbMailbox = CMailBox::GetById($mailboxID); $arMailbox = $dbMailbox->Fetch(); // POP3 mailboxes are ignored - they bound to single email if ($arMailbox && $arMailbox['SERVER_TYPE'] === 'smtp' && (empty($crmEmail) || !in_array($crmEmail, $addresseeEmails, true))) { return false; } } $subject = isset($arMessageFields['SUBJECT']) ? $arMessageFields['SUBJECT'] : ''; $body = isset($arMessageFields['BODY']) ? $arMessageFields['BODY'] : ''; $arBodyEmails = null; $userID = 0; $parentID = 0; $ownerTypeID = CCrmOwnerType::Undefined; $ownerID = 0; $addresserID = self::FindUserIDByEmail($addresserInfo['EMAIL']); if ($addresserID > 0 && Bitrix\Crm\Integration\IntranetManager::isExternalUser($addresserID)) { //Forget about extranet user $addresserID = 0; } $arCommEmails = $addresserID <= 0 ? array($addresserInfo['EMAIL']) : ($crmEmail !== '' ? array_diff($addresseeEmails, array($crmEmail)) : $addresseeEmails); //Trying to fix strange behaviour of array_diff under OPcache (issue #60862) $arCommEmails = array_filter($arCommEmails); $targInfo = CCrmActivity::ParseUrn(CCrmActivity::ExtractUrnFromMessage($arMessageFields, CCrmEMailCodeAllocation::GetCurrent())); $targActivity = $targInfo['ID'] > 0 ? CCrmActivity::GetByID($targInfo['ID'], false) : null; // Check URN if (!$targActivity && (!isset($targActivity['URN']) || strtoupper($targActivity['URN']) !== strtoupper($targInfo['URN']))) { $targActivity = null; } if ($targActivity) { $postingID = self::ExtractPostingID($arMessageFields); if ($postingID > 0 && isset($targActivity['ASSOCIATED_ENTITY_ID']) && intval($targActivity['ASSOCIATED_ENTITY_ID']) === $postingID) { // Ignore - it is our message. return false; } $parentID = $targActivity['ID']; $subject = CCrmActivity::ClearUrn($subject); if ($addresserID > 0) { $userID = $addresserID; } elseif (isset($targActivity['RESPONSIBLE_ID'])) { $userID = $targActivity['RESPONSIBLE_ID']; } if (isset($targActivity['OWNER_TYPE_ID'])) { $ownerTypeID = intval($targActivity['OWNER_TYPE_ID']); } if (isset($targActivity['OWNER_ID'])) { $ownerID = intval($targActivity['OWNER_ID']); } $arCommData = self::ExtractCommsFromEmails($arCommEmails); if ($ownerTypeID > 0 && $ownerID > 0) { if (empty($arCommData)) { if ($addresserID > 0) { foreach ($addresseeEmails as $email) { if ($email === $crmEmail) { continue; } $arCommData = array(self::CreateComm($ownerTypeID, $ownerID, $email)); } } else { $arCommData = array(self::CreateComm($ownerTypeID, $ownerID, $addresserInfo['EMAIL'])); } } elseif ($ownerTypeID !== CCrmOwnerType::Deal) { //Check if owner in communications. Otherwise clear owner. //There is only one exception for DEAL - it entity has no communications $isOwnerInComms = false; foreach ($arCommData as &$arCommItem) { $commEntityTypeID = isset($arCommItem['ENTITY_TYPE_ID']) ? $arCommItem['ENTITY_TYPE_ID'] : CCrmOwnerType::Undefined; $commEntityID = isset($arCommItem['ENTITY_ID']) ? $arCommItem['ENTITY_ID'] : 0; if ($commEntityTypeID === $ownerTypeID && $commEntityID === $ownerID) { $isOwnerInComms = true; break; } } unset($arCommItem); if (!$isOwnerInComms) { $ownerTypeID = CCrmOwnerType::Undefined; $ownerID = 0; } } } } else { if ($addresserID > 0) { //It is email from registred user $userID = $addresserID; if (empty($arCommEmails)) { $arBodyEmails = self::ExtractEmailsFromBody($body); //Clear system user emails if (!empty($arBodyEmails)) { foreach ($arBodyEmails as $email) { if (self::FindUserIDByEmail($email) <= 0) { $arCommEmails[] = $email; } } } } // Try to resolve communications $arCommData = self::ExtractCommsFromEmails($arCommEmails); } else { //It is email from unknown user //Try to resolve bindings from addresser $arCommData = self::ExtractCommsFromEmails($arCommEmails); if (!empty($arCommData)) { // Try to resolve responsible user foreach ($arCommData as &$arComm) { $userID = self::ResolveResponsibleID($arComm['ENTITY_TYPE_ID'], $arComm['ENTITY_ID']); if ($userID > 0) { break; } } unset($arComm); } } // Try to resolve owner by old-style method--> $arACTION_VARS = explode('&', $ACTION_VARS); for ($i = 0, $ic = count($arACTION_VARS); $i < $ic; $i++) { $v = $arACTION_VARS[$i]; if ($pos = strpos($v, '=')) { $name = substr($v, 0, $pos); ${$name} = urldecode(substr($v, $pos + 1)); } } $arTypeNames = CCrmOwnerType::GetNames(array(CCrmOwnerType::Lead, CCrmOwnerType::Deal, CCrmOwnerType::Contact, CCrmOwnerType::Company)); foreach ($arTypeNames as $typeName) { $regexVar = 'W_CRM_ENTITY_REGEXP_' . $typeName; if (empty(${$regexVar})) { continue; } $match = array(); if (preg_match('/' . ${$regexVar} . '/i' . BX_UTF_PCRE_MODIFIER, $subject, $match) === 1) { $ownerID = intval($match[1]); $ownerTypeID = CCrmOwnerType::ResolveID($typeName); break; } } // <-- Try to resolve owner by old-style method // Filter communications by owner if ($ownerTypeID > 0 && $ownerID > 0) { if (!empty($arCommData)) { foreach ($arCommData as $commKey => $arComm) { if ($arComm['ENTITY_TYPE_ID'] === $ownerTypeID && $arComm['ENTITY_ID'] === $ownerID) { continue; } unset($arCommData[$commKey]); } $arCommData = array_values($arCommData); } if (empty($arCommData)) { if ($addresserID > 0) { foreach ($addresseeEmails as $email) { if ($email === $crmEmail) { continue; } $arCommData = array(self::CreateComm($ownerTypeID, $ownerID, $email)); } } else { $arCommData = array(self::CreateComm($ownerTypeID, $ownerID, $addresserInfo['EMAIL'])); } } } } $arBindingData = self::ConvertCommsToBindings($arCommData); // Check bindings for converted leads --> // Not Existed entities are ignored. Converted leads are ignored if their associated entities (contacts, companies, deals) are contained in bindings. $arCorrectedBindingData = array(); $arConvertedLeadData = array(); foreach ($arBindingData as $bindingKey => &$arBinding) { if ($arBinding['TYPE_ID'] !== CCrmOwnerType::Lead) { if (self::IsEntityExists($arBinding['TYPE_ID'], $arBinding['ID'])) { $arCorrectedBindingData[$bindingKey] = $arBinding; } continue; } $arFields = self::GetEntity(CCrmOwnerType::Lead, $arBinding['ID'], array('STATUS_ID')); if (!is_array($arFields)) { continue; } if (isset($arFields['STATUS_ID']) && $arFields['STATUS_ID'] === 'CONVERTED') { $arConvertedLeadData[$bindingKey] = $arBinding; } else { $arCorrectedBindingData[$bindingKey] = $arBinding; } } unset($arBinding); foreach ($arConvertedLeadData as &$arConvertedLead) { $leadID = $arConvertedLead['ID']; $exists = false; $dbRes = CCrmCompany::GetListEx(array(), array('LEAD_ID' => $leadID, 'CHECK_PERMISSIONS' => 'N'), false, false, array('ID')); if ($dbRes) { while ($arRes = $dbRes->Fetch()) { if (isset($arCorrectedBindingData[self::PrepareEntityKey(CCrmOwnerType::Company, $arRes['ID'])])) { $exists = true; break; } } } if ($exists) { continue; } $dbRes = CCrmContact::GetListEx(array(), array('LEAD_ID' => $leadID, 'CHECK_PERMISSIONS' => 'N'), false, false, array('ID')); if ($dbRes) { while ($arRes = $dbRes->Fetch()) { if (isset($arCorrectedBindingData[self::PrepareEntityKey(CCrmOwnerType::Contact, $arRes['ID'])])) { $exists = true; break; } } } if ($exists) { continue; } $dbRes = CCrmDeal::GetListEx(array(), array('LEAD_ID' => $leadID, 'CHECK_PERMISSIONS' => 'N'), false, false, array('ID')); if ($dbRes) { while ($arRes = $dbRes->Fetch()) { if (isset($arCorrectedBindingData[self::PrepareEntityKey(CCrmOwnerType::Deal, $arRes['ID'])])) { $exists = true; break; } } } if ($exists) { continue; } $arCorrectedBindingData[self::PrepareEntityKey(CCrmOwnerType::Lead, $leadID)] = $arConvertedLead; } unset($arConvertedLead); $arBindingData = $arCorrectedBindingData; // <-- Check bindings for converted leads // If no bindings are found then create new lead from this message // Skip lead creation if email list is empty. Otherwise we will create lead with no email-addresses. It is absolutely useless. $emailQty = count($arCommEmails); if (empty($arBindingData) && $emailQty > 0) { if (strtoupper(COption::GetOptionString('crm', 'email_create_lead_for_new_addresser', 'Y')) !== 'Y') { // Creation of new lead is not allowed return true; } //"Lead from forwarded email..." or "Lead from email..." $title = $subject !== '' ? $subject : GetMessage($addresserID > 0 ? 'CRM_MAIL_LEAD_FROM_USER_EMAIL_TITLE' : 'CRM_MAIL_LEAD_FROM_EMAIL_TITLE', array('%SENDER%' => $addresserInfo['ORIGINAL'])); $comment = ''; if ($body !== '') { // Remove extra new lines (fix for #31807) $comment = preg_replace("/(\r\n|\n|\r)+/", '<br/>', htmlspecialcharsbx($body)); } if ($comment === '') { $comment = htmlspecialcharsbx($subject); } $name = ''; if ($addresserID <= 0) { $name = $addresserInfo['NAME']; } else { //Try get name from body for ($i = 0; $i < $emailQty; $i++) { $email = $arCommEmails[$i]; $match = array(); if (preg_match('/"([^"]+)"\\s*<' . $email . '>/i' . BX_UTF_PCRE_MODIFIER, $body, $match) === 1 && count($match) > 1) { $name = $match[1]; break; } if (preg_match('/"([^"]+)"\\s*[\\s*mailto\\:\\s*' . $email . ']/i' . BX_UTF_PCRE_MODIFIER, $body, $match) === 1 && count($match) > 1) { $name = $match[1]; break; } } if ($name === '') { $name = $arCommEmails[0]; } } $arLeadFields = array('TITLE' => $title, 'NAME' => $name, 'STATUS_ID' => 'NEW', 'COMMENTS' => $comment, 'SOURCE_DESCRIPTION' => GetMessage('CRM_MAIL_LEAD_FROM_EMAIL_SOURCE', array('%SENDER%' => $addresserInfo['ORIGINAL'])), 'OPENED' => 'Y', 'FM' => array('EMAIL' => array())); $sourceList = CCrmStatus::GetStatusList('SOURCE'); $sourceID = COption::GetOptionString('crm', 'email_lead_source_id', ''); if ($sourceID === '' || !isset($sourceList[$sourceID])) { if (isset($sourceList['EMAIL'])) { $sourceID = 'EMAIL'; } elseif (isset($sourceList['OTHER'])) { $sourceID = 'OTHER'; } } if ($sourceID !== '') { $arLeadFields['SOURCE_ID'] = $sourceID; } $responsibleID = intval(COption::GetOptionString('crm', 'email_lead_responsible_id', 0)); if ($responsibleID > 0) { $arLeadFields['CREATED_BY_ID'] = $arLeadFields['MODIFY_BY_ID'] = $arLeadFields['ASSIGNED_BY_ID'] = $responsibleID; if ($userID === 0) { $userID = $responsibleID; } } for ($i = 0; $i < $emailQty; $i++) { $arLeadFields['FM']['EMAIL']['n' . ($i + 1)] = array('VALUE_TYPE' => 'WORK', 'VALUE' => $arCommEmails[$i]); } $leadEntity = new CCrmLead(false); $leadID = $leadEntity->Add($arLeadFields, true, array('DISABLE_USER_FIELD_CHECK' => true, 'REGISTER_SONET_EVENT' => true, 'CURRENT_USER' => $responsibleID)); // TODO: log error if ($leadID > 0) { $arBizProcErrors = array(); CCrmBizProcHelper::AutoStartWorkflows(CCrmOwnerType::Lead, $leadID, CCrmBizProcEventType::Create, $arBizProcErrors); $arCommData = array(); for ($i = 0; $i < $emailQty; $i++) { $arCommData[] = self::CreateComm(CCrmOwnerType::Lead, $leadID, $arCommEmails[$i]); } $arBindingData = array(self::PrepareEntityKey(CCrmOwnerType::Lead, $leadID) => self::CreateBinding(CCrmOwnerType::Lead, $leadID)); } } // Terminate processing if no bindings are found. if (empty($arBindingData)) { // Try to export vcf-files before exit if email from registered user if ($addresserID > 0) { $dbAttachment = CMailAttachment::GetList(array(), array('MESSAGE_ID' => $msgID)); while ($arAttachment = $dbAttachment->Fetch()) { if (GetFileExtension(strtolower($arAttachment['FILE_NAME'])) === 'vcf') { if ($arAttachment['FILE_ID']) { $arAttachment['FILE_DATA'] = CMailAttachment::getContents($arAttachment); } self::TryImportVCard($arAttachment['FILE_DATA']); } } } return false; } // If owner info not defined set it by default if ($ownerID <= 0 || $ownerTypeID <= 0) { if (count($arBindingData) > 1) { // Search owner in specified order: Contact, Company, Lead. $arTypeIDs = array(CCrmOwnerType::Contact, CCrmOwnerType::Company, CCrmOwnerType::Lead); foreach ($arTypeIDs as $typeID) { foreach ($arBindingData as &$arBinding) { if ($arBinding['TYPE_ID'] === $typeID) { $ownerTypeID = $typeID; $ownerID = $arBinding['ID']; break; } } unset($arBinding); if ($ownerID > 0 && $ownerTypeID > 0) { break; } } } if ($ownerID <= 0 || $ownerTypeID <= 0) { $arBinding = array_shift(array_values($arBindingData)); $ownerTypeID = $arBinding['TYPE_ID']; $ownerID = $arBinding['ID']; } } // Precessing of attachments --> $attachmentMaxSizeMb = intval(COption::GetOptionString('crm', 'email_attachment_max_size', 16)); $attachmentMaxSize = $attachmentMaxSizeMb > 0 ? $attachmentMaxSizeMb * 1048576 : 0; $arFilesData = array(); $dbAttachment = CMailAttachment::GetList(array(), array('MESSAGE_ID' => $msgID)); $arBannedAttachments = array(); while ($arAttachment = $dbAttachment->Fetch()) { if ($arAttachment['FILE_NAME'] === '1.tmp') { // HACK: For bug in module 'Mail' continue; } elseif (GetFileExtension(strtolower($arAttachment['FILE_NAME'])) === 'vcf') { if ($arAttachment['FILE_ID']) { $arAttachment['FILE_DATA'] = CMailAttachment::getContents($arAttachment); } self::TryImportVCard($arAttachment['FILE_DATA']); } $fileSize = isset($arAttachment['FILE_SIZE']) ? intval($arAttachment['FILE_SIZE']) : 0; if ($fileSize <= 0) { //Skip zero lenth files continue; } if ($attachmentMaxSize > 0 && $fileSize > $attachmentMaxSize) { //File size limit is exceeded $arBannedAttachments[] = array('name' => $arAttachment['FILE_NAME'], 'size' => $fileSize); continue; } if ($arAttachment['FILE_ID'] && empty($arAttachment['FILE_DATA'])) { $arAttachment['FILE_DATA'] = CMailAttachment::getContents($arAttachment); } $arFilesData[] = array('name' => $arAttachment['FILE_NAME'], 'type' => $arAttachment['CONTENT_TYPE'], 'content' => $arAttachment['FILE_DATA'], 'MODULE_ID' => 'crm'); } //<-- Precessing of attachments // Remove extra new lines (fix for #31807) $body = preg_replace("/(\r\n|\n|\r)+/", PHP_EOL, $body); $encodedBody = htmlspecialcharsbx($body); // Creating of new event --> $arEventBindings = array(); foreach ($arBindingData as &$arBinding) { $arEventBindings[] = array('ENTITY_TYPE' => $arBinding['TYPE_NAME'], 'ENTITY_ID' => $arBinding['ID']); } unset($arBinding); $eventText = ''; $eventText .= '<b>' . GetMessage('CRM_EMAIL_SUBJECT') . '</b>: ' . $subject . PHP_EOL; $eventText .= '<b>' . GetMessage('CRM_EMAIL_FROM') . '</b>: ' . $addresserInfo['EMAIL'] . PHP_EOL; $eventText .= '<b>' . GetMessage('CRM_EMAIL_TO') . '</b>: ' . implode($addresseeEmails, '; ') . PHP_EOL; if (!empty($arBannedAttachments)) { $eventText .= '<b>' . GetMessage('CRM_EMAIL_BANNENED_ATTACHMENTS', array('%MAX_SIZE%' => $attachmentMaxSizeMb)) . '</b>: '; foreach ($arBannedAttachments as &$attachmentInfo) { $eventText .= GetMessage('CRM_EMAIL_BANNENED_ATTACHMENT_INFO', array('%NAME%' => $attachmentInfo['name'], '%SIZE%' => round($attachmentInfo['size'] / 1048576, 1))); } unset($attachmentInfo); $eventText .= PHP_EOL; } $eventText .= $encodedBody; $CCrmEvent = new CCrmEvent(); $CCrmEvent->Add(array('USER_ID' => $userID, 'ENTITY' => array_values($arEventBindings), 'ENTITY_TYPE' => CCrmOwnerType::ResolveName($ownerTypeID), 'ENTITY_ID' => $ownerID, 'EVENT_NAME' => GetMessage('CRM_EMAIL_GET_EMAIL'), 'EVENT_TYPE' => 2, 'EVENT_TEXT_1' => $eventText, 'FILES' => $arFilesData), false); // <-- Creating of new event // Creating new activity --> $siteID = ''; $dbSites = CSite::GetList($by = 'sort', $order = 'desc', array('DEFAULT' => 'Y', 'ACTIVE' => 'Y')); $defaultSite = is_object($dbSites) ? $dbSites->Fetch() : null; if (is_array($defaultSite)) { $siteID = $defaultSite['LID']; } if ($siteID === '') { $siteID = 's1'; } $storageTypeID = CCrmActivity::GetDefaultStorageTypeID(); $arElementIDs = array(); foreach ($arFilesData as $fileData) { $fileID = CFile::SaveFile($fileData, 'crm'); if ($fileID > 0) { $elementID = StorageManager::saveEmailAttachment(CFile::GetFileArray($fileID), $storageTypeID, $siteID); if ($elementID > 0) { $arElementIDs[] = (int) $elementID; } } } $descr = preg_replace("/(\r\n|\n|\r)+/", '<br/>', $encodedBody); $now = ConvertTimeStamp(time() + CTimeZone::GetOffset(), 'FULL', $siteID); $direction = CCrmActivityDirection::Incoming; $completed = 'N'; // Incomming emails must be marked as 'Not Completed'. if ($addresserID > 0 && ActivitySettings::getValue(ActivitySettings::MARK_FORWARDED_EMAIL_AS_OUTGOING)) { $direction = CCrmActivityDirection::Outgoing; $completed = 'Y'; } $arActivityFields = array('OWNER_ID' => $ownerID, 'OWNER_TYPE_ID' => $ownerTypeID, 'TYPE_ID' => CCrmActivityType::Email, 'ASSOCIATED_ENTITY_ID' => 0, 'PARENT_ID' => $parentID, 'SUBJECT' => $subject, 'START_TIME' => $now, 'END_TIME' => $now, 'COMPLETED' => $completed, 'AUTHOR_ID' => $userID, 'RESPONSIBLE_ID' => $userID, 'PRIORITY' => CCrmActivityPriority::Medium, 'DESCRIPTION' => $descr, 'DESCRIPTION_TYPE' => CCrmContentType::Html, 'DIRECTION' => $direction, 'LOCATION' => '', 'NOTIFY_TYPE' => CCrmActivityNotifyType::None, 'STORAGE_TYPE_ID' => $storageTypeID, 'STORAGE_ELEMENT_IDS' => $arElementIDs); $arActivityFields['BINDINGS'] = array(); foreach ($arBindingData as &$arBinding) { $entityTypeID = $arBinding['TYPE_ID']; $entityID = $arBinding['ID']; if ($entityTypeID <= 0 || $entityID <= 0) { continue; } $arActivityFields['BINDINGS'][] = array('OWNER_TYPE_ID' => $entityTypeID, 'OWNER_ID' => $entityID); } unset($arBinding); $activityID = CCrmActivity::Add($arActivityFields, false, false, array('REGISTER_SONET_EVENT' => true)); if ($activityID > 0 && !empty($arCommData)) { CCrmActivity::SaveCommunications($activityID, $arCommData, $arActivityFields, false, false); $arActivityFields['COMMUNICATIONS'] = $arCommData; } //Notity responsible user if ($userID > 0 && $direction === CCrmActivityDirection::Incoming) { CCrmActivity::Notify($arActivityFields, CCrmNotifierSchemeType::IncomingEmail); } // <-- Creating new activity return true; }
</a> <input type="hidden" name="value" /> </span> <span name="report-filter-value-control-INVOICE_UTS.DEAL_BY" callback="crmDealSelector"> <a href="" class="report-select-popup-link" caller="true"><?php echo GetMessage('REPORT_CHOOSE'); ?> </a> <input type="hidden" name="value" /> </span> <?php //CCrmCompany $arCompanyTypeList = CCrmStatus::GetStatusListEx('COMPANY_TYPE'); $arCompanyIndustryList = CCrmStatus::GetStatusListEx('INDUSTRY'); $obRes = CCrmCompany::GetListEx(array('ID' => 'DESC'), array(), false, array('nTopCount' => 50), array('ID', 'TITLE', 'COMPANY_TYPE', 'INDUSTRY', 'LOGO')); $arFiles = array(); $arCompanies = array(); while ($arRes = $obRes->Fetch()) { if (!empty($arRes['LOGO']) && !isset($arFiles[$arRes['LOGO']])) { if ($arFile = CFile::GetFileArray($arRes['LOGO'])) { $arFiles[$arRes['LOGO']] = CHTTP::URN2URI($arFile['SRC']); } } $arRes['SID'] = $arRes['ID']; $arDesc = array(); if (isset($arCompanyTypeList[$arRes['COMPANY_TYPE']])) { $arDesc[] = $arCompanyTypeList[$arRes['COMPANY_TYPE']]; } if (isset($arCompanyIndustryList[$arRes['INDUSTRY']])) { $arDesc[] = $arCompanyIndustryList[$arRes['INDUSTRY']];
unset($arFilter[$k]); } elseif ($k != 'LOGIC' && strpos($k, 'UF_') !== 0) { $arFilter['%' . $k] = $v; unset($arFilter[$k]); } } } else { $arResult['ENTITY_ID'] = is_array($arResult['ENTITY_ID']) ? $arResult['ENTITY_ID'] : array($arResult['ENTITY_ID']); $arFilter = array('ID' => $arResult['ENTITY_ID']); } switch ($arResult['ENTITY_TYPE']) { case 'CONTACT': $obRes = CCrmContact::GetListEx(array('ID' => 'ASC'), $arFilter, false, false, array('ID')); break; case 'COMPANY': $obRes = CCrmCompany::GetListEx(array('ID' => 'ASC'), $arFilter, false, false, array('ID')); break; case 'LEAD': default: $obRes = CCrmLead::GetListEx(array('ID' => 'ASC'), $arFilter, false, false, array('ID')); $arResult['ENTITY_TYPE'] = 'LEAD'; } $arID = array(); while ($arRow = $obRes->Fetch()) { $arID[] = $arRow['ID']; } $arFmList = array(); if (!empty($arID)) { $arFilter = array('ENTITY_ID' => $arResult['ENTITY_TYPE'], 'TYPE_ID' => 'EMAIL', 'ELEMENT_ID' => $arID); $obRes = CCrmFieldMulti::GetList(array('ID' => 'asc'), $arFilter); while ($arRow = $obRes->Fetch()) {
CCrmMobileHelper::PrepareActivityItem($arFields, $arParams); //COMMUNICATION $arFields['CLIENT_TITLE'] = ''; $arFields['CLIENT_SHOW_URL'] = ''; $arFields['CLIENT_IMAGE_URL'] = ''; $arFields['CLIENT_LEGEND'] = ''; $arFields['CLIENT_COMPANY_TITLE'] = ''; $arFields['CLIENT_COMPANY_SHOW_URL'] = ''; $arFields['CLIENT_COMMUNICATION_VALUE'] = ''; $comm = is_array($arFields['COMMUNICATIONS']) && isset($arFields['COMMUNICATIONS'][0]) ? $arFields['COMMUNICATIONS'][0] : null; if ($comm) { $arFields['CLIENT_COMMUNICATION_VALUE'] = isset($comm['VALUE']) ? $comm['VALUE'] : ''; $commOwnerTypeID = isset($comm['ENTITY_TYPE_ID']) ? intval($comm['ENTITY_TYPE_ID']) : 0; $commOwnerID = isset($comm['ENTITY_ID']) ? intval($comm['ENTITY_ID']) : 0; if ($commOwnerTypeID === CCrmOwnerType::Company) { $dbRes = CCrmCompany::GetListEx(array(), array('=ID' => $commOwnerID), false, false, array('TITLE', 'LOGO')); $arCompany = $dbRes ? $dbRes->Fetch() : null; if ($arCompany) { $arFields['CLIENT_TITLE'] = isset($arCompany['TITLE']) ? $arCompany['TITLE'] : ''; $arFields['CLIENT_SHOW_URL'] = CComponentEngine::MakePathFromTemplate($arParams['COMPANY_SHOW_URL_TEMPLATE'], array('company_id' => $commOwnerID)); $arFields['CLIENT_IMAGE_URL'] = SITE_DIR . 'bitrix/templates/mobile_app/images/crm/no_company_big.png?ver=1'; $imageID = isset($arCompany['LOGO']) ? intval($arCompany['LOGO']) : 0; if ($imageID > 0) { $imageInfo = CFile::ResizeImageGet($imageID, array('width' => 55, 'height' => 55), BX_RESIZE_IMAGE_EXACT); if ($imageInfo && isset($imageInfo['src'])) { $arFields['CLIENT_IMAGE_URL'] = $imageInfo['src']; } } $arMultiFields = array(); $dbMultiFields = CCrmFieldMulti::GetList(array('ID' => 'asc'), array('ENTITY_ID' => 'COMPANY', 'ELEMENT_ID' => $commOwnerID)); if ($dbMultiFields) {
if ($arParams['arUserField']['SETTINGS']['LEAD'] == 'Y' && isset($arValue['LEAD']) && !empty($arValue['LEAD'])) { $dbRes = CCrmLead::GetListEx(array('TITLE' => 'ASC'), array('=ID' => $arValue['LEAD']), false, false, array('ID', 'TITLE')); while ($arRes = $dbRes->Fetch()) { $arResult['VALUE']['LEAD'][$arRes['ID']] = array('ENTITY_TITLE' => $arRes['TITLE'], 'ENTITY_LINK' => CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_lead_show'), array('lead_id' => $arRes['ID']))); } } if ($arParams['arUserField']['SETTINGS']['CONTACT'] == 'Y' && isset($arValue['CONTACT']) && !empty($arValue['CONTACT'])) { $hasNameFormatter = method_exists("CCrmContact", "PrepareFormattedName"); $dbRes = CCrmContact::GetListEx(array('LAST_NAME' => 'ASC', 'NAME' => 'ASC'), array('=ID' => $arValue['CONTACT']), false, false, $hasNameFormatter ? array('ID', 'HONORIFIC', 'NAME', 'SECOND_NAME', 'LAST_NAME') : array('ID', 'FULL_NAME')); while ($arRes = $dbRes->Fetch()) { if ($hasNameFormatter) { $title = CCrmContact::PrepareFormattedName(array('HONORIFIC' => isset($arRes['HONORIFIC']) ? $arRes['HONORIFIC'] : '', 'NAME' => isset($arRes['NAME']) ? $arRes['NAME'] : '', 'SECOND_NAME' => isset($arRes['SECOND_NAME']) ? $arRes['SECOND_NAME'] : '', 'LAST_NAME' => isset($arRes['LAST_NAME']) ? $arRes['LAST_NAME'] : '')); } else { $title = isset($arRes['FULL_NAME']) ? $arRes['FULL_NAME'] : ''; } $arResult['VALUE']['CONTACT'][$arRes['ID']] = array('ENTITY_TITLE' => $title, 'ENTITY_LINK' => CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_contact_show'), array('contact_id' => $arRes['ID']))); } } if ($arParams['arUserField']['SETTINGS']['COMPANY'] == 'Y' && isset($arValue['COMPANY']) && !empty($arValue['COMPANY'])) { $dbRes = CCrmCompany::GetListEx(array('TITLE' => 'ASC'), array('ID' => $arValue['COMPANY'])); while ($arRes = $dbRes->Fetch()) { $arResult['VALUE']['COMPANY'][$arRes['ID']] = array('ENTITY_TITLE' => $arRes['TITLE'], 'ENTITY_LINK' => CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_company_show'), array('company_id' => $arRes['ID']))); } } if ($arParams['arUserField']['SETTINGS']['DEAL'] == 'Y' && isset($arValue['DEAL']) && !empty($arValue['DEAL'])) { $dbRes = CCrmDeal::GetListEx(array('TITLE' => 'ASC'), array('ID' => $arValue['DEAL'])); while ($arRes = $dbRes->Fetch()) { $arResult['VALUE']['DEAL'][$arRes['ID']] = array('ENTITY_TITLE' => $arRes['TITLE'], 'ENTITY_LINK' => CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_deal_show'), array('deal_id' => $arRes['ID']))); } } }
'desc' => htmlspecialcharsbx($arContact['COMPANY_TITLE']) ); if (!empty($arContact['PHOTO']) && intval($arContact['PHOTO']) > 0) { $arImg = CFile::ResizeImageGet($arContact['PHOTO'], array('width' => 30, 'height' => 30), FX_RESIZE_IMAGE_EXACT); $arContacts['CRMCONTACT'.$arContact['ID']]['avatar'] = $arImg['src']; } } $arCompanyTypeList = CCrmStatus::GetStatusListEx('COMPANY_TYPE'); $arCompanyIndustryList = CCrmStatus::GetStatusListEx('INDUSTRY'); $dbCompanies = CCrmCompany::GetListEx( $arOrder = array(), $arFilter = array('%TITLE' => $search), $arGroupBy = false, $arNavStartParams = array('nTopCount' => 20), $arSelectFields = array('ID', 'TITLE', 'COMPANY_TYPE', 'INDUSTRY', 'LOGO') ); $arCompanies = array(); while ($dbCompanies && ($arCompany = $dbCompanies->fetch())) { $arDesc = Array(); if (isset($arCompanyTypeList[$arCompany['COMPANY_TYPE']])) $arDesc[] = $arCompanyTypeList[$arCompany['COMPANY_TYPE']]; if (isset($arCompanyIndustryList[$arCompany['INDUSTRY']])) $arDesc[] = $arCompanyIndustryList[$arCompany['INDUSTRY']]; $arCompanies['CRMCOMPANY'.$arCompany['ID']] = array( 'id' => 'CRMCOMPANY'.$arCompany['ID'], 'entityId' => $arCompany['ID'],
public static function prepareRecoveryData($entityTypeID, $entityID, array $options = null) { if (!is_int($entityTypeID)) { $entityTypeID = intval($entityTypeID); } if (!\CCrmOwnerType::IsDefined($entityTypeID)) { throw new Main\ArgumentException('Is not defined', 'entityTypeID'); } if (!is_int($entityID)) { $entityID = intval($entityID); } if ($entityID <= 0) { throw new Main\ArgumentException('Must be greater than zero', 'entityID'); } if (!is_array($options)) { $options = array(); } $item = new EntityRecoveryData(); $item->setEntityTypeID($entityTypeID); $item->setEntityID($entityID); $userID = isset($options['USER_ID']) ? intval($options['USER_ID']) : 0; if ($userID > 0) { $item->setUserID($userID); } if ($entityTypeID === \CCrmOwnerType::Lead) { $result = \CCrmLead::GetListEx(array(), array('=ID' => $entityID, 'CHECK_PERMISSIONS' => 'N'), false, false, array('*', 'UF_*')); $fields = is_object($result) ? $result->Fetch() : null; if (!is_array($fields)) { throw new Main\ObjectNotFoundException("The lead with ID '{$entityTypeID}' is not found"); } $item->setDataItem('FIELDS', $fields); if (isset($fields['TITLE'])) { $item->setTitle($fields['TITLE']); } if (isset($fields['ASSIGNED_BY_ID'])) { $item->setResponsibleID(intval($fields['ASSIGNED_BY_ID'])); } } elseif ($entityTypeID === \CCrmOwnerType::Contact) { $result = \CCrmContact::GetListEx(array(), array('=ID' => $entityID, 'CHECK_PERMISSIONS' => 'N'), false, false, array('*', 'UF_*')); $fields = is_object($result) ? $result->Fetch() : null; if (!is_array($fields)) { throw new Main\ObjectNotFoundException("The contact with ID '{$entityTypeID}' is not found"); } $item->setDataItem('FIELDS', $fields); $item->setTitle(\CCrmContact::GetFullName($fields, true)); if (isset($fields['ASSIGNED_BY_ID'])) { $item->setResponsibleID(intval($fields['ASSIGNED_BY_ID'])); } } elseif ($entityTypeID === \CCrmOwnerType::Company) { $result = \CCrmCompany::GetListEx(array(), array('=ID' => $entityID, 'CHECK_PERMISSIONS' => 'N'), false, false, array('*', 'UF_*')); $fields = is_object($result) ? $result->Fetch() : null; if (!is_array($fields)) { throw new Main\ObjectNotFoundException("The company with ID '{$entityTypeID}' is not found"); } $item->setDataItem('FIELDS', $fields); if (isset($fields['TITLE'])) { $item->setTitle($fields['TITLE']); } if (isset($fields['ASSIGNED_BY_ID'])) { $item->setResponsibleID(intval($fields['ASSIGNED_BY_ID'])); } } else { throw new Main\NotSupportedException("The entity type '" . \CCrmOwnerType::ResolveName($entityTypeID) . "' is not supported in current context"); } $entityTypeName = \CCrmOwnerType::ResolveName($entityTypeID); //MULTI FIELDS --> $multiFieldData = array(); $multiFieldTypes = array(\CCrmFieldMulti::PHONE, \CCrmFieldMulti::EMAIL, \CCrmFieldMulti::WEB, \CCrmFieldMulti::IM); foreach ($multiFieldTypes as $multiFieldType) { $result = \CCrmFieldMulti::GetListEx(array('ID' => 'ASC'), array('TYPE_ID' => $multiFieldType, 'ENTITY_ID' => $entityTypeName, 'ELEMENT_ID' => $entityID, 'CHECK_PERMISSIONS' => 'N'), false, array('nTopCount' => 50), array('VALUE_TYPE', 'VALUE')); if (!is_object($result)) { continue; } while ($multiFields = $result->Fetch()) { $valueType = isset($multiFields['VALUE_TYPE']) ? $multiFields['VALUE_TYPE'] : ''; $value = isset($multiFields['VALUE']) ? $multiFields['VALUE'] : ''; if ($value === '') { continue; } if (!isset($multiFieldData[$multiFieldType])) { $multiFieldData[$multiFieldType] = array(); } $multiFieldData[$multiFieldType][] = array('VALUE_TYPE' => $valueType, 'VALUE' => $value); } } if (!empty($multiFieldData)) { $item->setDataItem('MULTI_FIELDS', $multiFieldData); } //<-- MULTI FIELDS //ACTIVITIES --> $activityIDs = \CCrmActivity::GetBoundIDs($entityTypeID, $entityID); if (!empty($activityIDs)) { $item->setDataItem('ACTIVITY_IDS', $activityIDs); } //<-- ACTIVITIES //EVENTS --> $eventIDs = array(); $result = \CCrmEvent::GetListEx(array('EVENT_REL_ID' => 'ASC'), array('ENTITY_TYPE' => $entityTypeName, 'ENTITY_ID' => $entityID, 'EVENT_TYPE' => 0, 'CHECK_PERMISSIONS' => 'N'), false, false, array('EVENT_REL_ID')); if (is_object($result)) { while ($eventFields = $result->Fetch()) { $eventIDs[] = intval($eventFields['EVENT_REL_ID']); } } if (!empty($eventIDs)) { $item->setDataItem('EVENT_IDS', $eventIDs); } //<-- EVENTS return $item; }
$arFields['CONTACT_NAME'] = htmlspecialcharsbx($arFields['~CONTACT_NAME']); $arFields['~CONTACT_SECOND_NAME'] = isset($contact['SECOND_NAME']) ? $contact['SECOND_NAME'] : ''; $arFields['CONTACT_SECOND_NAME'] = htmlspecialcharsbx($arFields['~CONTACT_SECOND_NAME']); $arFields['~CONTACT_LAST_NAME'] = isset($contact['LAST_NAME']) ? $contact['LAST_NAME'] : ''; $arFields['CONTACT_LAST_NAME'] = htmlspecialcharsbx($arFields['~CONTACT_LAST_NAME']); $contactCompanyID = isset($contact['COMPANY_ID']) ? intval($contact['COMPANY_ID']) : 0; if ($contactCompanyID > 0) { $arFields['~COMPANY_ID'] = $arFields['COMPANY_ID'] = $contactCompanyID; $arFields['~COMPANY_TITLE'] = isset($contact['COMPANY_TITLE']) ? $contact['COMPANY_TITLE'] : ''; $arFields['COMPANY_TITLE'] = htmlspecialcharsbx($arFields['~COMPANY_TITLE']); } } } $companyID = $arResult['COMPANY_ID'] = isset($_REQUEST['company_id']) ? intval($_REQUEST['company_id']) : 0; if ($companyID > 0) { $dbCompany = CCrmCompany::GetListEx(array(), array('=ID' => $companyID), false, false, array('TITLE')); $company = $dbCompany->Fetch(); if (is_array($company)) { $arFields['~COMPANY_ID'] = $arFields['COMPANY_ID'] = $companyID; $arFields['~COMPANY_TITLE'] = isset($company['TITLE']) ? $company['TITLE'] : ''; $arFields['COMPANY_TITLE'] = htmlspecialcharsbx($arFields['~COMPANY_TITLE']); } } if ($arResult['USER_ID'] > 0) { $dbUser = CUser::GetList($by = 'id', $order = 'asc', array('ID' => $arResult['USER_ID']), array('FIELDS' => array('ID', 'LOGIN', 'EMAIL', 'NAME', 'LAST_NAME', 'SECOND_NAME'))); $user = $dbUser->Fetch(); if ($user) { $arFields['~ASSIGNED_BY_ID'] = $arResult['USER_ID']; $arFields['~ASSIGNED_BY_LOGIN'] = $user['LOGIN']; $arFields['~ASSIGNED_BY_NAME'] = $user['NAME']; $arFields['~ASSIGNED_BY_LAST_NAME'] = $user['LAST_NAME'];
if (isset($filter['GRID_FILTER_APPLIED']) && $filter['GRID_FILTER_APPLIED'] && isset($filter['GRID_FILTER_ID'])) { $filterID = $filter['GRID_FILTER_ID']; $arResult['GRID_FILTER_ID'] = $filterID; $arResult['GRID_FILTER_NAME'] = isset($arResult['FILTER_PRESETS'][$filterID]) ? $arResult['FILTER_PRESETS'][$filterID]['name'] : GetMessage('M_CRM_COMPANY_LIST_FILTER_CUSTOM'); } else { $arResult['GRID_FILTER_NAME'] = GetMessage('M_CRM_COMPANY_LIST_FILTER_CUSTOM'); } if (isset($filter['TITLE'])) { $filter['%TITLE'] = $filter['TITLE']; unset($filter['TITLE']); } } else { $arResult['GRID_FILTER_NAME'] = GetMessage('M_CRM_COMPANY_LIST_FILTER_NONE'); } $arResult['ITEMS'] = array(); $dbRes = CCrmCompany::GetListEx($sort, $filter, false, $navParams, $select); $dbRes->NavStart($navParams['nPageSize'], false); $arResult['PAGE_NAVNUM'] = intval($dbRes->NavNum); // pager index $arResult['PAGE_NUMBER'] = intval($dbRes->NavPageNomer); // current page index $arResult['PAGE_NAVCOUNT'] = intval($dbRes->NavPageCount); // page count $arResult['PAGER_PARAM'] = "PAGEN_{$arResult['PAGE_NAVNUM']}"; $arResult['PAGE_NEXT_NUMBER'] = $arResult['PAGE_NUMBER'] + 1; $arResult['COMPANY_TYPE_LIST'] = CCrmStatus::GetStatusList('COMPANY_TYPE'); //$arResult['EMPLOYEES_LIST'] = CCrmStatus::GetStatusList('EMPLOYEES'); $arResult['INDUSTRY_LIST'] = CCrmStatus::GetStatusList('INDUSTRY'); while ($item = $dbRes->GetNext()) { CCrmMobileHelper::PrepareCompanyItem($item, $arParams, array('COMPANY_TYPE' => $arResult['COMPANY_TYPE_LIST'], 'INDUSTRY' => $arResult['INDUSTRY_LIST'])); $arResult['ITEMS'][] =& $item;
public static function findByPhoneNumber($number, $params = array()) { if (!is_string($number)) { throw new \Bitrix\Main\ArgumentTypeException('number', 'string'); } if ($number === '') { throw new \Bitrix\Main\ArgumentException('Is empty', 'number'); } if (!is_array($params)) { $params = array(); } $userID = isset($params['USER_ID']) ? intval($params['USER_ID']) : 0; if ($userID <= 0) { $userID = CCrmPerms::GetCurrentUserID(); } $isAdmin = CCrmPerms::IsAdmin($userID); $userPermissions = CCrmPerms::GetUserPermissions($userID); $enableExtendedMode = isset($params['ENABLE_EXTENDED_MODE']) ? (bool) $params['ENABLE_EXTENDED_MODE'] : true; $contactFormID = isset($params['CONTACT_FORM_ID']) ? intval($params['CONTACT_FORM_ID']) : ''; if ($contactFormID === '') { $contactFormID = CCrmContact::DEFAULT_FORM_ID; } $dups = array(); $criterion = new \Bitrix\Crm\Integrity\DuplicateCommunicationCriterion('PHONE', $number); $entityTypes = array(CCrmOwnerType::Contact, CCrmOwnerType::Company, CCrmOwnerType::Lead); foreach ($entityTypes as $entityType) { $duplicate = $criterion->find($entityType, 1); if ($duplicate !== null) { $dups[] = $duplicate; } } $entityByType = array(); foreach ($dups as &$dup) { /** @var \Bitrix\Crm\Integrity\Duplicate $dup */ $entities = $dup->getEntities(); if (!(is_array($entities) && !empty($entities))) { continue; } //Each entity type limited by 50 items foreach ($entities as &$entity) { /** @var \Bitrix\Crm\Integrity\DuplicateEntity $entity */ $entityTypeID = $entity->getEntityTypeID(); $entityID = $entity->getEntityID(); $fields = null; if ($entityTypeID === CCrmOwnerType::Contact) { $dbEntity = CCrmContact::GetListEx(array(), array('=ID' => $entityID, 'CHECK_PERMISSIONS' => 'N'), false, false, array('ID', 'HONORIFIC', 'NAME', 'SECOND_NAME', 'LAST_NAME', 'PHOTO', 'POST', 'COMPANY_ID', 'COMPANY_TITLE', 'ASSIGNED_BY_ID')); $entityFields = is_object($dbEntity) ? $dbEntity->Fetch() : null; if (is_array($entityFields)) { $formattedName = CCrmContact::PrepareFormattedName(array('HONORIFIC' => isset($entityFields['HONORIFIC']) ? $entityFields['HONORIFIC'] : '', 'NAME' => isset($entityFields['NAME']) ? $entityFields['NAME'] : '', 'SECOND_NAME' => isset($entityFields['SECOND_NAME']) ? $entityFields['SECOND_NAME'] : '', 'LAST_NAME' => isset($entityFields['LAST_NAME']) ? $entityFields['LAST_NAME'] : '')); $fields = array('ID' => intval($entityFields['ID']), 'FORMATTED_NAME' => $formattedName, 'PHOTO' => isset($entityFields['PHOTO']) ? intval($entityFields['PHOTO']) : 0, 'COMPANY_ID' => isset($entityFields['COMPANY_ID']) ? intval($entityFields['COMPANY_ID']) : 0, 'COMPANY_TITLE' => isset($entityFields['COMPANY_TITLE']) ? $entityFields['COMPANY_TITLE'] : '', 'POST' => isset($entityFields['POST']) ? $entityFields['POST'] : '', 'ASSIGNED_BY_ID' => isset($entityFields['ASSIGNED_BY_ID']) ? intval($entityFields['ASSIGNED_BY_ID']) : 0, 'CAN_READ' => CCrmContact::CheckReadPermission($entityID, $userPermissions)); if ($fields['CAN_READ'] && $enableExtendedMode) { $deals = array(); $dbDeal = CCrmDeal::GetListEx(array('BEGINDATE' => 'ASC'), array('=CONTACT_ID' => $entityID, 'CLOSED' => 'N', 'CHECK_PERMISSIONS' => $isAdmin ? 'N' : 'Y'), false, array('nTopCount' => 2), array('ID', 'TITLE', 'STAGE_ID'), array('PERMS' => $userPermissions)); if (is_object($dbDeal)) { while ($dealFields = $dbDeal->Fetch()) { $dealID = intval($dealFields['ID']); //$dealFields['CAN_READ'] = CCrmDeal::CheckReadPermission($dealID, $userPermissions); $dealFields['SHOW_URL'] = CCrmOwnerType::GetShowUrl(CCrmOwnerType::Deal, $dealID); $deals[] = $dealFields; } } $fields['DEALS'] =& $deals; unset($deals); } } } elseif ($entityTypeID === CCrmOwnerType::Company) { $dbEntity = CCrmCompany::GetListEx(array(), array('=ID' => $entityID, 'CHECK_PERMISSIONS' => 'N'), false, false, array('ID', 'TITLE', 'LOGO', 'ASSIGNED_BY_ID')); $entityFields = is_object($dbEntity) ? $dbEntity->Fetch() : null; if (is_array($entityFields)) { $fields = array('ID' => intval($entityFields['ID']), 'TITLE' => isset($entityFields['TITLE']) ? $entityFields['TITLE'] : '', 'LOGO' => isset($entityFields['LOGO']) ? intval($entityFields['LOGO']) : 0, 'ASSIGNED_BY_ID' => isset($entityFields['ASSIGNED_BY_ID']) ? intval($entityFields['ASSIGNED_BY_ID']) : 0, 'CAN_READ' => CCrmCompany::CheckReadPermission($entityID, $userPermissions)); if ($fields['CAN_READ'] && $enableExtendedMode) { $deals = array(); $dbDeal = CCrmDeal::GetListEx(array('BEGINDATE' => 'ASC'), array('=COMPANY_ID' => $entityID, 'CLOSED' => 'N', 'CHECK_PERMISSIONS' => $isAdmin ? 'N' : 'Y'), false, array('nTopCount' => 2), array('ID', 'TITLE', 'STAGE_ID'), array('PERMS' => $userPermissions)); if (is_object($dbDeal)) { while ($dealFields = $dbDeal->Fetch()) { $dealID = intval($dealFields['ID']); //$dealFields['CAN_READ'] = CCrmDeal::CheckReadPermission($dealID, $userPermissions); $dealFields['SHOW_URL'] = CCrmOwnerType::GetShowUrl(CCrmOwnerType::Deal, $dealID); $deals[] = $dealFields; } } $fields['DEALS'] =& $deals; unset($deals); } } } elseif ($entityTypeID === CCrmOwnerType::Lead) { $dbEntity = CCrmLead::GetListEx(array(), array('=ID' => $entityID, 'CHECK_PERMISSIONS' => 'N'), false, false, array('ID', 'TITLE', 'HONORIFIC', 'NAME', 'SECOND_NAME', 'LAST_NAME', 'POST', 'COMPANY_TITLE', 'ASSIGNED_BY_ID')); $entityFields = is_object($dbEntity) ? $dbEntity->Fetch() : null; if (is_array($entityFields)) { $formattedName = ''; if (!empty($entityFields['NAME']) || !empty($entityFields['SECOND_NAME']) || !empty($entityFields['LAST_NAME'])) { $formattedName = CCrmLead::PrepareFormattedName(array('HONORIFIC' => isset($entityFields['HONORIFIC']) ? $entityFields['HONORIFIC'] : '', 'NAME' => isset($entityFields['NAME']) ? $entityFields['NAME'] : '', 'SECOND_NAME' => isset($entityFields['SECOND_NAME']) ? $entityFields['SECOND_NAME'] : '', 'LAST_NAME' => isset($entityFields['LAST_NAME']) ? $entityFields['LAST_NAME'] : '')); } $fields = array('ID' => intval($entityFields['ID']), 'TITLE' => isset($entityFields['TITLE']) ? $entityFields['TITLE'] : '', 'FORMATTED_NAME' => $formattedName, 'COMPANY_TITLE' => isset($entityFields['COMPANY_TITLE']) ? $entityFields['COMPANY_TITLE'] : '', 'POST' => isset($entityFields['POST']) ? $entityFields['POST'] : '', 'ASSIGNED_BY_ID' => isset($entityFields['ASSIGNED_BY_ID']) ? intval($entityFields['ASSIGNED_BY_ID']) : 0, 'CAN_READ' => CCrmLead::CheckReadPermission($entityID, $userPermissions)); } } if (!is_array($fields)) { continue; } if ($fields['CAN_READ'] && $enableExtendedMode) { $showUrl = $fields['SHOW_URL'] = CCrmOwnerType::GetShowUrl($entityTypeID, $entityID); if ($showUrl !== '') { $fields['ACTIVITY_LIST_URL'] = CCrmUrlUtil::AddUrlParams($showUrl, array("{$contactFormID}_active_tab" => 'tab_activity')); $fields['INVOICE_LIST_URL'] = CCrmUrlUtil::AddUrlParams($showUrl, array("{$contactFormID}_active_tab" => 'tab_invoice')); if ($entityTypeID === CCrmOwnerType::Contact || $entityTypeID === CCrmOwnerType::Company) { $fields['DEAL_LIST_URL'] = CCrmUrlUtil::AddUrlParams($showUrl, array("{$contactFormID}_active_tab" => 'tab_deal')); } } $activities = array(); $dbActivity = CCrmActivity::GetList(array('DEADLINE' => 'ASC'), array('COMPLETED' => 'N', 'BINDINGS' => array(array('OWNER_TYPE_ID' => $entityTypeID, 'OWNER_ID' => $entityID)), 'CHECK_PERMISSIONS' => $isAdmin ? 'N' : 'Y'), false, array('nTopCount' => 4), array('ID', 'SUBJECT', 'START_TIME', 'END_TIME', 'DEADLINE'), array('PERMS' => $userPermissions)); if (is_object($dbActivity)) { while ($activityFields = $dbActivity->Fetch()) { $activityFields['SHOW_URL'] = CCrmOwnerType::GetShowUrl(CCrmOwnerType::Activity, $activityFields['ID']); $activities[] =& $activityFields; unset($activityFields); } } $fields['ACTIVITIES'] =& $activities; unset($activities); } $entityTypeName = CCrmOwnerType::ResolveName($entityTypeID); if (!isset($entityByType[$entityTypeName])) { $entityByType[$entityTypeName] = array($fields); } elseif (!in_array($entityID, $entityByType[$entityTypeName], true)) { $entityByType[$entityTypeName][] = $fields; } } } unset($dup); return $entityByType; }
$hasUserFields = strncmp($_POST['FIELD_NAME'], 'UF_', 3) === 0; } } } if (count($fieldNames) == 0) { __CrmCompanyShowEndJsonResonse(array('ERROR' => 'FIELD_NAME IS NOT DEFINED!')); } $fieldValues = array(); if (isset($_POST['FIELD_VALUE'])) { if (is_array($_POST['FIELD_VALUE'])) { $fieldValues = $_POST['FIELD_VALUE']; } else { $fieldValues[] = $_POST['FIELD_VALUE']; } } $dbResult = CCrmCompany::GetListEx(array(), array('=ID' => $ID, 'CHECK_PERMISSIONS' => 'N'), false, false, array('*', 'UF_*')); $arFields = is_object($dbResult) ? $dbResult->Fetch() : null; if (is_array($arFields)) { CCrmInstantEditorHelper::PrepareUpdate(CCrmOwnerType::Company, $arFields, $fieldNames, $fieldValues); $CCrmCompany = new CCrmCompany(); $disableUserFieldCheck = !$hasUserFields && isset($_POST['DISABLE_USER_FIELD_CHECK']) && strtoupper($_POST['DISABLE_USER_FIELD_CHECK']) === 'Y'; if ($CCrmCompany->Update($ID, $arFields, true, true, array('REGISTER_SONET_EVENT' => true, 'DISABLE_USER_FIELD_CHECK' => $disableUserFieldCheck))) { $arErrors = array(); CCrmBizProcHelper::AutoStartWorkflows(CCrmOwnerType::Company, $ID, CCrmBizProcEventType::Edit, $arErrors); $result = array(); $count = count($fieldNames); for ($i = 0; $i < $count; $i++) { $fieldName = $fieldNames[$i]; if (strpos($fieldName, 'FM.') === 0) { //Filed name like 'FM.PHONE.WORK.1279' $fieldParams = explode('.', $fieldName);
unset($gridFilter['GRID_FILTER_APPLIED']); } if (isset($gridFilter['GRID_FILTER_ID'])) { unset($gridFilter['GRID_FILTER_ID']); } if (is_array($gridFilter) && !empty($gridFilter)) { $dbEntities = null; if ($entityType === 'LEAD') { CCrmLead::PrepareFilter($gridFilter); $dbEntities = CCrmLead::GetListEx(array(), $gridFilter, false, false, array('ID')); } elseif ($entityType === 'DEAL') { CCrmDeal::PrepareFilter($gridFilter); $dbEntities = CCrmDeal::GetListEx(array(), $gridFilter, false, false, array('ID')); } elseif ($entityType === 'COMPANY') { CCrmCompany::PrepareFilter($gridFilter); $dbEntities = CCrmCompany::GetListEx(array(), $gridFilter, false, false, array('ID')); } elseif ($entityType === 'CONTACT') { CCrmContact::PrepareFilter($gridFilter); $dbEntities = CCrmContact::GetListEx(array(), $gridFilter, false, false, array('ID')); } if ($dbEntities) { while ($arEntity = $dbEntities->Fetch()) { $arEntityID[] = $arEntity['ID']; } } } } $arFilter = array('ENTITY_ID' => $entityType, 'TYPE_ID' => $communicationType, '@VALUE_TYPE' => array('WORK', 'HOME', 'OTHER')); if (!empty($arEntityID)) { $arFilter['@ELEMENT_ID'] = $arEntityID; }
public static function TryGetInfo($typeID, $ID, &$info, $bCheckPermissions = false) { $typeID = intval($typeID); $ID = intval($ID); if ($ID <= 0) { return array(); } $result = null; switch ($typeID) { case self::Lead: $dbRes = CCrmLead::GetListEx(array(), array('=ID' => $ID, 'CHECK_PERMISSIONS' => $bCheckPermissions ? 'Y' : 'N'), false, false, array('TITLE')); $arRes = $dbRes ? $dbRes->Fetch() : null; if (is_array($arRes)) { $info = array('CAPTION' => isset($arRes['TITLE']) ? $arRes['TITLE'] : '', 'IMAGE_ID' => 0); return true; } break; case self::Contact: $dbRes = CCrmContact::GetListEx(array(), array('=ID' => $ID, 'CHECK_PERMISSIONS' => $bCheckPermissions ? 'Y' : 'N'), false, false, array('NAME', 'SECOND_NAME', 'LAST_NAME', 'PHOTO')); $arRes = $dbRes ? $dbRes->Fetch() : null; if (is_array($arRes)) { $info = array('CAPTION' => CUser::FormatName(\Bitrix\Crm\Format\PersonNameFormatter::getFormat(), array('LOGIN' => '', 'NAME' => isset($arRes['NAME']) ? $arRes['NAME'] : '', 'SECOND_NAME' => isset($arRes['SECOND_NAME']) ? $arRes['SECOND_NAME'] : '', 'LAST_NAME' => isset($arRes['LAST_NAME']) ? $arRes['LAST_NAME'] : ''), false, false), 'IMAGE_ID' => isset($arRes['PHOTO']) ? intval($arRes['PHOTO']) : 0); return true; } break; case self::Company: $dbRes = CCrmCompany::GetListEx(array(), array('=ID' => $ID, 'CHECK_PERMISSIONS' => $bCheckPermissions ? 'Y' : 'N'), false, false, array('TITLE', 'LOGO')); $arRes = $dbRes ? $dbRes->Fetch() : null; if (is_array($arRes)) { $info = array('CAPTION' => isset($arRes['TITLE']) ? $arRes['TITLE'] : '', 'IMAGE_ID' => isset($arRes['LOGO']) ? intval($arRes['LOGO']) : 0); return true; } break; case self::Deal: $dbRes = CCrmDeal::GetListEx(array(), array('=ID' => $ID, 'CHECK_PERMISSIONS' => $bCheckPermissions ? 'Y' : 'N'), false, false, array('TITLE')); $arRes = $dbRes ? $dbRes->Fetch() : null; if (is_array($arRes)) { $info = array('CAPTION' => isset($arRes['TITLE']) ? $arRes['TITLE'] : '', 'IMAGE_ID' => 0); return true; } break; case self::Invoice: $dbRes = CCrmInvoice::GetList(array(), array('ID' => $ID), false, false, array('ORDER_TOPIC')); $arRes = $dbRes ? $dbRes->Fetch() : null; if (is_array($arRes)) { $info = array('CAPTION' => isset($arRes['ORDER_TOPIC']) ? $arRes['ORDER_TOPIC'] : '', 'IMAGE_ID' => 0); return true; } break; case self::Quote: $dbRes = CCrmQuote::GetList(array(), array('=ID' => $ID, 'CHECK_PERMISSIONS' => $bCheckPermissions ? 'Y' : 'N'), false, false, array('TITLE')); $arRes = $dbRes ? $dbRes->Fetch() : null; if (is_array($arRes)) { $info = array('CAPTION' => isset($arRes['TITLE']) ? $arRes['TITLE'] : '', 'IMAGE_ID' => 0); return true; } break; } return false; }
public static function GetByID($ID, $bCheckPerms = true) { $arFilter = array('=ID' => intval($ID)); if (!$bCheckPerms) { $arFilter['CHECK_PERMISSIONS'] = 'N'; } $dbRes = CCrmCompany::GetListEx(array(), $arFilter); return $dbRes->Fetch(); }
$arResult['PATH_TO_COMPANY_SHOW'] = $arParams['PATH_TO_COMPANY_SHOW'] = CrmCheckPath('PATH_TO_COMPANY_SHOW', $arParams['PATH_TO_COMPANY_SHOW'], $APPLICATION->GetCurPage() . '?company_id=#company_id#&show'); $arParams['PATH_TO_COMPANY_EDIT'] = CrmCheckPath('PATH_TO_COMPANY_EDIT', $arParams['PATH_TO_COMPANY_EDIT'], $APPLICATION->GetCurPage() . '?company_id=#company_id#&edit'); $arParams['PATH_TO_LEAD_SHOW'] = CrmCheckPath('PATH_TO_LEAD_SHOW', $arParams['PATH_TO_LEAD_SHOW'], $APPLICATION->GetCurPage() . '?lead_id=#lead_id#&show'); $arParams['PATH_TO_LEAD_EDIT'] = CrmCheckPath('PATH_TO_LEAD_EDIT', $arParams['PATH_TO_LEAD_EDIT'], $APPLICATION->GetCurPage() . '?lead_id=#lead_id#&edit'); $arParams['PATH_TO_LEAD_CONVERT'] = CrmCheckPath('PATH_TO_LEAD_CONVERT', $arParams['PATH_TO_LEAD_CONVERT'], $APPLICATION->GetCurPage() . '?lead_id=#lead_id#&convert'); $arParams['PATH_TO_CONTACT_SHOW'] = CrmCheckPath('PATH_TO_CONTACT_SHOW', $arParams['PATH_TO_CONTACT_SHOW'], $APPLICATION->GetCurPage() . '?contact_id=#contact_id#&show'); $arParams['PATH_TO_CONTACT_EDIT'] = CrmCheckPath('PATH_TO_CONTACT_EDIT', $arParams['PATH_TO_CONTACT_EDIT'], $APPLICATION->GetCurPage() . '?contact_id=#contact_id#&edit'); $arParams['PATH_TO_DEAL_SHOW'] = CrmCheckPath('PATH_TO_DEAL_SHOW', $arParams['PATH_TO_DEAL_SHOW'], $APPLICATION->GetCurPage() . '?deal_id=#deal_id#&show'); $arParams['PATH_TO_DEAL_EDIT'] = CrmCheckPath('PATH_TO_DEAL_EDIT', $arParams['PATH_TO_DEAL_EDIT'], $APPLICATION->GetCurPage() . '?deal_id=#deal_id#&edit'); $arParams['PATH_TO_USER_PROFILE'] = CrmCheckPath('PATH_TO_USER_PROFILE', $arParams['PATH_TO_USER_PROFILE'], '/company/personal/user/#user_id#/'); $arParams['NAME_TEMPLATE'] = empty($arParams['NAME_TEMPLATE']) ? CSite::GetNameFormat(false) : str_replace(array("#NOBR#", "#/NOBR#"), array("", ""), $arParams["NAME_TEMPLATE"]); global $USER_FIELD_MANAGER; $CCrmUserType = new CCrmUserType($USER_FIELD_MANAGER, CCrmCompany::$sUFEntityID); $bEdit = false; $arResult['ELEMENT_ID'] = $arParams['ELEMENT_ID'] = (int) $arParams['ELEMENT_ID']; $obFields = CCrmCompany::GetListEx(array(), array('ID' => $arParams['ELEMENT_ID'])); $arFields = $obFields->GetNext(); if (!is_array($arFields)) { LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_COMPANY_LIST'], array())); } $arFields['FM'] = array(); $dbResMultiFields = CCrmFieldMulti::GetList(array('ID' => 'asc'), array('ENTITY_ID' => 'COMPANY', 'ELEMENT_ID' => $arResult['ELEMENT_ID'])); while ($arMultiFields = $dbResMultiFields->Fetch()) { $arFields['FM'][$arMultiFields['TYPE_ID']][$arMultiFields['ID']] = array('VALUE' => $arMultiFields['VALUE'], 'VALUE_TYPE' => $arMultiFields['VALUE_TYPE']); } $fullNameFormat = $arParams['NAME_TEMPLATE']; $arFields['~ASSIGNED_BY_FORMATTED_NAME'] = intval($arFields['~ASSIGNED_BY_ID']) > 0 ? CUser::FormatName($fullNameFormat, 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) : GetMessage('RESPONSIBLE_NOT_ASSIGNED'); $arFields['ASSIGNED_BY_FORMATTED_NAME'] = htmlspecialcharsbx($arFields['~ASSIGNED_BY_FORMATTED_NAME']); $arFields['~CREATED_BY_FORMATTED_NAME'] = CUser::FormatName($fullNameFormat, array('LOGIN' => $arFields['~CREATED_BY_LOGIN'], 'NAME' => $arFields['~CREATED_BY_NAME'], 'LAST_NAME' => $arFields['~CREATED_BY_LAST_NAME'], 'SECOND_NAME' => $arFields['~CREATED_BY_SECOND_NAME']), true, false); $arFields['CREATED_BY_FORMATTED_NAME'] = htmlspecialcharsbx($arFields['~CREATED_BY_FORMATTED_NAME']); $arFields['PATH_TO_USER_CREATOR'] = CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_USER_PROFILE'], array('user_id' => $arFields['ASSIGNED_BY']));
/** * @param \Bitrix\Sale\Order $order * @param $arOrder * @param $agentParams * @param $bExportFromCrm * @param $bCrmModuleIncluded * @param $paySystems * @param $delivery * @param array $options * * @return array|void */ function getSaleProperties(Bitrix\Sale\Order $order, $arOrder, $agentParams, $bExportFromCrm, $bCrmModuleIncluded, $paySystems, $delivery, array $options = array()) { $providersInstance = self::getProvidersInstanceByOrder($order); $personTypeId = $order->getPersonTypeId(); $personTypes = BusinessValue::getPersonTypes(); if (!($personType = $personTypes[$personTypeId])) { self::logError($order->getId(), 'Undefined DOMAIN for person type id "' . $personTypeId . '"'); return; } $systemCodes1C = array_flip(self::$systemCodes[$personType['DOMAIN']]); $arProp = array(); $arProp["ORDER"] = $arOrder; if (IntVal($arOrder["USER_ID"]) > 0) { $dbUser = CUser::GetByID($arOrder["USER_ID"]); if ($arUser = $dbUser->Fetch()) { $arProp["USER"] = $arUser; } } if ($bExportFromCrm) { $arProp["CRM"] = array(); $companyID = isset($arOrder["UF_COMPANY_ID"]) ? intval($arOrder["UF_COMPANY_ID"]) : 0; $contactID = isset($arOrder["UF_CONTACT_ID"]) ? intval($arOrder["UF_CONTACT_ID"]) : 0; if ($companyID > 0) { $arProp["CRM"]["CLIENT_ID"] = "CRMCO" . $companyID; } else { $arProp["CRM"]["CLIENT_ID"] = "CRMC" . $contactID; } $clientInfo = array("LOGIN" => "", "NAME" => "", "LAST_NAME" => "", "SECOND_NAME" => ""); if ($bCrmModuleIncluded) { if ($companyID > 0) { $arCompanyFilter = array('=ID' => $companyID); $dbCompany = CCrmCompany::GetListEx(array(), $arCompanyFilter, false, array("nTopCount" => 1), array("TITLE")); $arCompany = $dbCompany->Fetch(); unset($dbCompany, $arCompanyFilter); if (is_array($arCompany)) { if (isset($arCompany["TITLE"])) { $clientInfo["NAME"] = $arCompany["TITLE"]; } } unset($arCompany); } else { if ($contactID > 0) { $arContactFilter = array('=ID' => $contactID); $dbContact = CCrmContact::GetListEx(array(), $arContactFilter, false, array("nTopCount" => 1), array("NAME", "LAST_NAME", "SECOND_NAME")); $arContact = $dbContact->Fetch(); unset($dbContact, $arContactFilter); if (is_array($arContact)) { if (isset($arContact["NAME"])) { $clientInfo["NAME"] = $arContact["NAME"]; } if (isset($arContact["LAST_NAME"])) { $clientInfo["LAST_NAME"] = $arContact["LAST_NAME"]; } if (isset($arContact["SECOND_NAME"])) { $clientInfo["SECOND_NAME"] = $arContact["SECOND_NAME"]; } } unset($arContact); } } } $arProp["CRM"]["CLIENT"] = $clientInfo; unset($clientInfo); } if (IntVal($arOrder["PAY_SYSTEM_ID"]) > 0) { $arProp["ORDER"]["PAY_SYSTEM_NAME"] = $paySystems[$arOrder["PAY_SYSTEM_ID"]]; } if (strlen($arOrder["DELIVERY_ID"]) > 0) { $arProp["ORDER"]["DELIVERY_NAME"] = $delivery[$arOrder["DELIVERY_ID"]]; } $dbOrderPropVals = CSaleOrderPropsValue::GetList(array(), array("ORDER_ID" => $arOrder["ID"]), false, false, array("ID", "CODE", "VALUE", "ORDER_PROPS_ID", "PROP_TYPE")); $locationStreetPropertyValue = ''; while ($arOrderPropVals = $dbOrderPropVals->Fetch()) { if ($arOrderPropVals["PROP_TYPE"] == "CHECKBOX") { if ($arOrderPropVals["VALUE"] == "Y") { $arProp["PROPERTY"][$arOrderPropVals["ORDER_PROPS_ID"]] = "true"; } else { $arProp["PROPERTY"][$arOrderPropVals["ORDER_PROPS_ID"]] = "false"; } } elseif ($arOrderPropVals["PROP_TYPE"] == "TEXT" || $arOrderPropVals["PROP_TYPE"] == "TEXTAREA") { $arProp["PROPERTY"][$arOrderPropVals["ORDER_PROPS_ID"]] = $arOrderPropVals["VALUE"]; } elseif ($arOrderPropVals["PROP_TYPE"] == "SELECT" || $arOrderPropVals["PROP_TYPE"] == "RADIO") { $arVal = CSaleOrderPropsVariant::GetByValue($arOrderPropVals["ORDER_PROPS_ID"], $arOrderPropVals["VALUE"]); $arProp["PROPERTY"][$arOrderPropVals["ORDER_PROPS_ID"]] = $arVal["NAME"]; } elseif ($arOrderPropVals["PROP_TYPE"] == "MULTISELECT") { $curVal = explode(",", $arOrderPropVals["VALUE"]); foreach ($curVal as $vm) { $arVal = CSaleOrderPropsVariant::GetByValue($arOrderPropVals["ORDER_PROPS_ID"], $vm); $arProp["PROPERTY"][$arOrderPropVals["ORDER_PROPS_ID"]] .= ", " . $arVal["NAME"]; } $arProp["PROPERTY"][$arOrderPropVals["ORDER_PROPS_ID"]] = substr($arProp["PROPERTY"][$arOrderPropVals["ORDER_PROPS_ID"]], 2); } elseif ($arOrderPropVals["PROP_TYPE"] == "LOCATION") { $arVal = CSaleLocation::GetByID($arOrderPropVals["VALUE"], LANGUAGE_ID); if (CSaleLocation::isLocationProEnabled()) { if (intval($arVal['ID'])) { try { $res = \Bitrix\Sale\Location\LocationTable::getPathToNode($arVal['ID'], array('select' => array('LNAME' => 'NAME.NAME', 'TYPE_ID'), 'filter' => array('=NAME.LANGUAGE_ID' => LANGUAGE_ID))); $types = \Bitrix\Sale\Location\Admin\TypeHelper::getTypeCodeIdMapCached(); $path = array(); while ($item = $res->fetch()) { // copy street to STREET property if ($types['ID2CODE'][$item['TYPE_ID']] == 'STREET') { $locationStreetPropertyValue = $item['LNAME']; } $path[] = $item['LNAME']; } $locationString = implode(' - ', $path); } catch (\Bitrix\Main\SystemException $e) { $locationString = ''; } } else { $locationString = ''; } } else { $locationString = $arVal["COUNTRY_NAME"] . (strlen($arVal["COUNTRY_NAME"]) <= 0 || strlen($arVal["REGION_NAME"]) <= 0 ? "" : " - ") . $arVal["REGION_NAME"] . (strlen($arVal["COUNTRY_NAME"]) <= 0 || strlen($arVal["CITY_NAME"]) <= 0 ? "" : " - ") . $arVal["CITY_NAME"]; } $arProp["PROPERTY"][$arOrderPropVals["ORDER_PROPS_ID"]] = $locationString; $arProp["PROPERTY"][$arOrderPropVals["ORDER_PROPS_ID"] . "_CITY"] = $arVal["CITY_NAME"]; $arProp["PROPERTY"][$arOrderPropVals["ORDER_PROPS_ID"] . "_COUNTRY"] = $arVal["COUNTRY_NAME"]; $arProp["PROPERTY"][$arOrderPropVals["ORDER_PROPS_ID"] . "_REGION"] = $arVal["REGION_NAME"]; } else { $arProp["PROPERTY"][$arOrderPropVals["ORDER_PROPS_ID"]] = $arOrderPropVals["VALUE"]; } } foreach ($agentParams as $k => $v) { if (strpos($k, "REKV_") !== false) { //params if (!is_array($v)) { $agent["REKV"][$k] = $v; } else { if (strlen($v["TYPE"]) <= 0) { $agent["REKV"][$k] = $v["VALUE"]; } else { switch ($v["TYPE"]) { case 'CRM': $agent["REKV"][$k] = $arProp[$v["TYPE"]][$v["VALUE"]]; //value break; default: if (!($codeKey = $systemCodes1C[$k]) && substr($k, 0, 5) === 'REKV_' && ($codeIndex = substr($k, 5)) !== '' && ($codeKey = BusinessValueConsumer1C::getRekvCodeKey($order->getPersonTypeId(), $codeIndex)) && ($providerInstance = $providersInstance[$order->getId()][$v["TYPE"]]) && is_set($providerInstance)) { $agent["REKV"][$k] = Bitrix\Sale\BusinessValue::getValueFromProvider($providerInstance, $codeKey, BusinessValueConsumer1C::CONSUMER_KEY); } } } } } else { if (!is_array($v)) { $agent[$k] = $v; } else { if (strlen($v["TYPE"]) <= 0) { $agent[$k] = $v["VALUE"]; } else { switch ($v["TYPE"]) { case 'CRM': $agent[$k] = $arProp[$v["TYPE"]][$v["VALUE"]]; break; default: if (($codeKey = $systemCodes1C[$k]) && ($providerInstance = $providersInstance[$order->getId()][$v["TYPE"]]) && is_set($providerInstance)) { $agent[$k] = Bitrix\Sale\BusinessValue::getValueFromProvider($providerInstance, $codeKey, BusinessValueConsumer1C::CONSUMER_KEY); } } } if ($k == 'STREET' && strlen($locationStreetPropertyValue)) { $agent[$k] = $locationStreetPropertyValue . (strlen($agent[$k]) ? ', ' : '') . $agent[$k]; } } } } return array('agent' => $agent, 'arProp' => $arProp); }
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; }
$arResult['FEED_DESTINATION']['SELECTED']['CRM' . $entityTypeName . $entityID] = $types[$entityTypeName]; } unset($entityData); } if ($entityTypeName && $entityID) { if (isset($types[$entityTypeName])) { if (empty($arResult['ENTITY_DATA'])) { $arResult['FEED_DESTINATION']['SELECTED']['CRM' . $entityTypeName . $entityID] = $types[$entityTypeName]; } if (!isset($arResult['FEED_DESTINATION'][strtoupper($types[$entityTypeName])]['CRM' . $entityTypeName . $entityID])) { switch ($entityTypeName) { case 'CONTACT': $dbEntity = CCrmContact::GetListEx(array(), array('ID' => $entityID), false, array(), array('ID', 'NAME', 'SECOND_NAME', 'LAST_NAME', 'COMPANY_TITLE', 'PHOTO')); break; case 'COMPANY': $dbEntity = CCrmCompany::GetListEx(array(), array('ID' => $entityID), false, array(), array('ID', 'TITLE', 'COMPANY_TYPE', 'INDUSTRY', 'LOGO')); break; case 'LEAD': $dbEntity = CCrmLead::GetListEx(array(), array('ID' => $entityID), false, array(), array('ID', 'TITLE', 'NAME', 'SECOND_NAME', 'LAST_NAME', 'STATUS_ID')); break; case 'DEAL': $dbEntity = CCrmDeal::GetListEx(array(), array('ID' => $entityID), false, array(), array('ID', 'TITLE', 'STAGE_ID')); break; default: $dbEntity = null; } if ($dbEntity && ($arEntity = $dbEntity->fetch())) { $arResult['FEED_DESTINATION'][strtoupper($types[$entityTypeName])]['CRM' . $entityTypeName . $arEntity['ID']] = prepareCrmEntity(strtolower($entityTypeName), $arEntity); } } }
$dealId = isset($arFields['DEAL_ID']) ? intval($arFields['DEAL_ID']) : 0; $contactId = isset($arFields['CONTACT_ID']) ? intval($arFields['CONTACT_ID']) : 0; $companyId = isset($arFields['COMPANY_ID']) ? intval($arFields['COMPANY_ID']) : 0; // create from contact if ($contactId > 0) { $dbContact = CCrmContact::GetListEx(array('ID' => 'DESC'), array('ID' => $contactId), false, array('nTopCount' => 1), array('ID', 'LEAD_ID')); if ($arContact = $dbContact->Fetch()) { if (isset($arContact['LEAD_ID']) && intval($arContact['LEAD_ID']) > 0) { $arFields['~LEAD_ID'] = $arFields['LEAD_ID'] = intval($arContact['LEAD_ID']); } } unset($dbContact, $arContact); } // create from company if ($companyId > 0) { $dbCompany = CCrmCompany::GetListEx(array('ID' => 'DESC'), array('ID' => $companyId), false, array('nTopCount' => 1), array('ID', 'LEAD_ID')); if ($arCompany = $dbCompany->Fetch()) { if (isset($arCompany['LEAD_ID']) && intval($arCompany['LEAD_ID']) > 0) { $arFields['~LEAD_ID'] = $arFields['LEAD_ID'] = intval($arCompany['LEAD_ID']); } } unset($dbCompany, $arCompany); } // create from lead if ($leadId > 0) { $dbDeal = CCrmDeal::GetListEx(array('ID' => 'DESC'), array('LEAD_ID' => $leadId), false, array('nTopCount' => 1), array('ID')); if ($arDeal = $dbDeal->Fetch()) { if (isset($arDeal['ID']) && intval($arDeal['ID']) > 0) { $arFields['~DEAL_ID'] = $arFields['DEAL_ID'] = intval($arDeal['ID']); } }
public static function PrepareInvoiceItem(&$item, &$params, $enums = array(), $options = array()) { $itemID = intval($item['~ID']); if (isset($params['INVOICE_SHOW_URL_TEMPLATE'])) { $item['SHOW_URL'] = CComponentEngine::makePathFromTemplate($params['INVOICE_SHOW_URL_TEMPLATE'], array('invoice_id' => $itemID)); } if (isset($params['INVOICE_EDIT_URL_TEMPLATE'])) { $item['EDIT_URL'] = CComponentEngine::makePathFromTemplate($params['INVOICE_EDIT_URL_TEMPLATE'], array('invoice_id' => $itemID)); } if (!isset($item['~ACCOUNT_NUMBER'])) { $item['~ACCOUNT_NUMBER'] = $item['ACCOUNT_NUMBER'] = ''; } if (!isset($item['~DATE_BILL'])) { $item['~DATE_BILL'] = $item['DATE_BILL'] = ''; } else { $item['~DATE_BILL'] = ConvertTimeStamp(MakeTimeStamp($item['~DATE_BILL']), 'SHORT', SITE_ID); $item['DATE_BILL'] = htmlspecialcharsbx($item['~DATE_BILL']); } if (!isset($item['~DATE_PAY_BEFORE'])) { $item['~DATE_PAY_BEFORE'] = $item['DATE_PAY_BEFORE'] = ''; $item['DATE_PAY_BEFORE_STAMP'] = 0; } if ($item['~DATE_PAY_BEFORE'] !== '') { $item['~DATE_PAY_BEFORE'] = ConvertTimeStamp(MakeTimeStamp($item['~DATE_PAY_BEFORE']), 'SHORT', SITE_ID); $item['DATE_PAY_BEFORE'] = htmlspecialcharsbx($item['~DATE_PAY_BEFORE']); } if (!isset($item['~ORDER_TOPIC'])) { $item['~ORDER_TOPIC'] = $item['ORDER_TOPIC'] = ''; } // COMMENTS --> if (!isset($item['~COMMENTS'])) { $item['~COMMENTS'] = $item['COMMENTS'] = ''; } if (!isset($item['~USER_DESCRIPTION'])) { $item['~USER_DESCRIPTION'] = $item['USER_DESCRIPTION'] = ''; } //<-- COMMENTS // STATUS --> if (!isset($item['~STATUS_ID'])) { $item['~STATUS_ID'] = $item['STATUS_ID'] = ''; } $statusID = $item['~STATUS_ID']; if ($statusID !== '') { $statuses = self::GetStatusList('INVOICE_STATUS'); if (!isset($statuses[$statusID])) { $item['~STATUS_TEXT'] = $item['STATUS_TEXT']; } else { $item['~STATUS_TEXT'] = $statuses[$statusID]; $item['STATUS_TEXT'] = htmlspecialcharsbx($item['~STATUS_TEXT']); } } //<-- STATUS //PRICE, CURRENCY --> $price = isset($item['~PRICE']) ? doubleval($item['~PRICE']) : 0.0; $item['~PRICE'] = $item['PRICE'] = $price; $currencyID = isset($item['~CURRENCY']) ? $item['~CURRENCY'] : ''; if ($currencyID === '') { $currencyID = $item['~CURRENCY'] = CCrmCurrency::GetBaseCurrencyID(); $item['CURRENCY'] = htmlspecialcharsbx($currencyID); } $item['~CURRENCY_NAME'] = CCrmCurrency::GetCurrencyName($currencyID); $item['CURRENCY_NAME'] = htmlspecialcharsbx($item['~CURRENCY_NAME']); $item['~FORMATTED_PRICE'] = CCrmCurrency::MoneyToString($price, $currencyID); $item['FORMATTED_PRICE'] = strip_tags($item['~FORMATTED_PRICE']); //<-- PRICE, CURRENCY //DEAL --> $dealID = isset($item['~UF_DEAL_ID']) ? intval($item['~UF_DEAL_ID']) : 0; $item['~DEAL_ID'] = $item['DEAL_ID'] = $dealID; if ($dealID <= 0) { $item['~DEAL_TITLE'] = $item['DEAL_TITLE'] = ''; } else { $item['~DEAL_TITLE'] = CCrmOwnerType::GetCaption(CCrmOwnerType::Deal, $dealID); $item['DEAL_TITLE'] = htmlspecialcharsbx($item['~DEAL_TITLE']); } //<-- DEAL // LOCATION --> if (is_array($options) && isset($options['ENABLE_LOCATION']) && $options['ENABLE_LOCATION']) { $properties = is_array($enums) && isset($enums['INVOICE_PROPERTIES']) && is_array($enums['INVOICE_PROPERTIES']) ? $enums['INVOICE_PROPERTIES'] : null; $locationID = is_array($properties) && isset($properties['PR_LOCATION']) ? intval($properties['PR_LOCATION']['VALUE']) : 0; $item['~LOCATION_ID'] = $item['LOCATION_ID'] = $locationID; $item['~LOCATION_NAME'] = $locationID > 0 ? CCrmInvoice::ResolveLocationName($locationID) : ''; $item['LOCATION_NAME'] = htmlspecialcharsbx($item['~LOCATION_NAME']); } //<-- LOCATION $enableMultiFields = is_array($options) && isset($options['ENABLE_MULTI_FIELDS']) && $options['ENABLE_MULTI_FIELDS']; //CONTACT --> $contactID = isset($item['UF_CONTACT_ID']) ? intval($item['UF_CONTACT_ID']) : 0; $item['~CONTACT_ID'] = $item['CONTACT_ID'] = $contactID; $contact = null; if ($contactID > 0) { $dbContact = CCrmContact::GetListEx(array(), array('=ID' => $contactID), false, false, array('NAME', 'SECOND_NAME', 'LAST_NAME', 'POST', 'PHOTO')); $contact = $dbContact ? $dbContact->Fetch() : null; } if (!$contact) { $item['~CONTACT_FULL_NAME'] = $item['CONTACT_FULL_NAME'] = $item['~CONTACT_POST'] = $item['CONTACT_POST'] = ''; $item['~CONTACT_PHOTO'] = $item['CONTACT_PHOTO'] = 0; if ($enableMultiFields) { $item['CONTACT_FM'] = array(); } } else { $item['~CONTACT_FULL_NAME'] = CUser::FormatName(\Bitrix\Crm\Format\PersonNameFormatter::getFormat(), array('LOGIN' => '', 'NAME' => isset($contact['NAME']) ? $contact['NAME'] : '', 'SECOND_NAME' => isset($contact['SECOND_NAME']) ? $contact['SECOND_NAME'] : '', 'LAST_NAME' => isset($contact['LAST_NAME']) ? $contact['LAST_NAME'] : ''), false, false); $item['CONTACT_FULL_NAME'] = htmlspecialcharsbx($item['~CONTACT_FULL_NAME']); $item['~CONTACT_POST'] = isset($contact['POST']) ? $contact['POST'] : ''; $item['CONTACT_POST'] = htmlspecialcharsbx($item['~CONTACT_POST']); $item['~CONTACT_PHOTO'] = $item['CONTACT_PHOTO'] = isset($contact['PHOTO']) ? intval($contact['PHOTO']) : 0; if ($enableMultiFields) { $item['CONTACT_FM'] = array(); $dbMultiFields = CCrmFieldMulti::GetList(array('ID' => 'asc'), array('ENTITY_ID' => 'CONTACT', 'ELEMENT_ID' => $contactID)); if ($dbMultiFields) { while ($multiFields = $dbMultiFields->Fetch()) { $item['CONTACT_FM'][$multiFields['TYPE_ID']][] = array('VALUE' => $multiFields['VALUE'], 'VALUE_TYPE' => $multiFields['VALUE_TYPE']); } } } } //<-- CONTACT //COMPANY --> $companyID = isset($item['UF_COMPANY_ID']) ? intval($item['UF_COMPANY_ID']) : 0; $item['~COMPANY_ID'] = $item['COMPANY_ID'] = $companyID; $company = null; if ($companyID > 0) { $dbCompany = CCrmCompany::GetListEx(array(), array('=ID' => $companyID), false, false, array('TITLE', 'LOGO')); $company = $dbCompany ? $dbCompany->Fetch() : null; } if (!$company) { $item['~COMPANY_TITLE'] = $item['COMPANY_TITLE'] = ''; $item['~COMPANY_LOGO'] = $item['COMPANY_LOGO'] = 0; } else { $item['~COMPANY_TITLE'] = isset($company['TITLE']) ? $company['TITLE'] : ''; $item['COMPANY_TITLE'] = htmlspecialcharsbx($item['~COMPANY_TITLE']); $item['~COMPANY_LOGO'] = $item['COMPANY_LOGO'] = isset($company['LOGO']) ? intval($company['LOGO']) : 0; if ($enableMultiFields) { $item['COMPANY_FM'] = array(); $dbMultiFields = CCrmFieldMulti::GetList(array('ID' => 'asc'), array('ENTITY_ID' => 'COMPANY', 'ELEMENT_ID' => $companyID)); if ($dbMultiFields) { while ($multiFields = $dbMultiFields->Fetch()) { $item['COMPANY_FM'][$multiFields['TYPE_ID']][] = array('VALUE' => $multiFields['VALUE'], 'VALUE_TYPE' => $multiFields['VALUE_TYPE']); } } } } //<-- COMPANY $personTypeID = CCrmInvoice::ResolvePersonTypeID($companyID, $contactID); // PAYER_INFO --> if (is_array($options) && isset($options['ENABLE_PAYER_INFO']) && $options['ENABLE_PAYER_INFO']) { if ($companyID <= 0 && $contactID <= 0) { $item['~PAYER_INFO'] = $item['PAYER_INFO'] = ''; } else { // Get invoice properties $properties = isset($item['INVOICE_PROPERTIES']) ? $item['INVOICE_PROPERTIES'] : null; if (!is_array($properties) && $personTypeID > 0) { $properties = CCrmInvoice::GetProperties($itemID, $personTypeID); if ($itemID <= 0) { CCrmInvoice::__RewritePayerInfo($companyID, $contactID, $properties); } } $item['~PAYER_INFO'] = is_array($properties) ? CCrmInvoice::__MakePayerInfoString($properties) : ''; $item['PAYER_INFO'] = htmlspecialcharsbx($item['~PAYER_INFO']); } } //<-- PAYER_INFO // PAY_SYSTEM --> if (!isset($item['~PAY_SYSTEM_ID'])) { $item['~PAY_SYSTEM_ID'] = $item['PAY_SYSTEM_ID'] = ''; } $paySystemID = $item['~PAY_SYSTEM_ID']; $paySystems = is_array($enums) && isset($enums['PAY_SYSTEMS']) && is_array($enums['PAY_SYSTEMS']) ? $enums['PAY_SYSTEMS'] : ($personTypeID > 0 ? CCrmPaySystem::GetPaySystemsListItems($personTypeID) : array()); if (isset($paySystems[$paySystemID])) { $item['~PAY_SYSTEM_NAME'] = $paySystems[$paySystemID]; $item['PAY_SYSTEM_NAME'] = htmlspecialcharsbx($item['~PAY_SYSTEM_NAME']); } else { $item['~PAY_SYSTEM_NAME'] = $item['PAY_SYSTEM_NAME'] = ''; } //<-- PAY_SYSTEM // RESPONSIBLE --> $responsibleID = isset($item['~RESPONSIBLE_ID']) ? intval($item['~RESPONSIBLE_ID']) : 0; $item['RESPONSIBLE_SHOW_URL'] = ''; $item['~RESPONSIBLE_FORMATTED_NAME'] = ''; if ($responsibleID > 0) { $item['RESPONSIBLE_SHOW_URL'] = $params['USER_PROFILE_URL_TEMPLATE'] !== '' ? CComponentEngine::makePathFromTemplate($params['USER_PROFILE_URL_TEMPLATE'], array('user_id' => $responsibleID)) : ''; $item['~RESPONSIBLE_FORMATTED_NAME'] = CUser::FormatName($params['NAME_TEMPLATE'], array('LOGIN' => isset($item['~RESPONSIBLE_LOGIN']) ? $item['~RESPONSIBLE_LOGIN'] : '', 'NAME' => isset($item['~RESPONSIBLE_NAME']) ? $item['~RESPONSIBLE_NAME'] : '', 'LAST_NAME' => isset($item['~RESPONSIBLE_LAST_NAME']) ? $item['~RESPONSIBLE_LAST_NAME'] : '', 'SECOND_NAME' => isset($item['~RESPONSIBLE_SECOND_NAME']) ? $item['~RESPONSIBLE_SECOND_NAME'] : ''), true, false); } $item['RESPONSIBLE_FORMATTED_NAME'] = htmlspecialcharsbx($item['~RESPONSIBLE_FORMATTED_NAME']); //<-- RESPONSIBLE }