if ($bTaxMode) { // CLIENT LOCATION $sLocationHtml = ''; $locValue = isset($arResult['ELEMENT']['LOCATION_ID']) ? $arResult['ELEMENT']['LOCATION_ID'] : ''; ob_start(); CSaleLocation::proxySaleAjaxLocationsComponent(array('AJAX_CALL' => 'N', 'COUNTRY_INPUT_NAME' => 'LOC_COUNTRY', 'REGION_INPUT_NAME' => 'LOC_REGION', 'CITY_INPUT_NAME' => 'LOC_CITY', 'CITY_OUT_LOCATION' => 'Y', 'LOCATION_VALUE' => $locValue, 'ORDER_PROPS_ID' => 'QUOTE_' . $arResult['ELEMENT']['ID'], 'ONCITYCHANGE' => 'BX.onCustomEvent(\'CrmProductRowSetLocation\', [\'LOC_CITY\']);', 'SHOW_QUICK_CHOOSE' => 'N'), array("CODE" => $locValue, "ID" => "", "PROVIDE_LINK_BY" => "code", "JS_CALLBACK" => 'CrmProductRowSetLocation'), 'popup'); $sLocationHtml = ob_get_contents(); ob_end_clean(); $locationField = array('id' => 'LOCATION_ID', 'name' => GetMessage('CRM_QUOTE_FIELD_LOCATION_ID'), 'type' => 'custom', 'value' => $sLocationHtml . '<div>' . '<span class="bx-crm-edit-content-location-description">' . GetMessage('CRM_QUOTE_FIELD_LOCATION_ID_DESCRIPTION') . '</span>' . '</div>', 'required' => true); $arResult['FIELDS']['tab_1'][] = $locationField; $arResult['FORM_FIELDS_TO_ADD']['LOCATION_ID'] = $locationField; unset($locationField); } // Rewrite client fields if (!($bEdit || $bCopy || !empty($arResult['ERROR_MESSAGE']))) { CCrmQuote::RewriteClientFields($arResult['ELEMENT']); } // person type $arResult['ELEMENT']['PERSON_TYPE_ID'] = 0; $arResult['PERSON_TYPE'] = 'CONTACT'; if (isset($arPersonTypes['CONTACT']) && (!isset($arResult['ELEMENT']['COMPANY_ID']) || intval($arResult['ELEMENT']['COMPANY_ID']) <= 0)) { $arResult['ELEMENT']['PERSON_TYPE_ID'] = intval($arPersonTypes['CONTACT']); } else { if (isset($arPersonTypes['COMPANY']) && isset($arResult['ELEMENT']['COMPANY_ID']) && intval($arResult['ELEMENT']['COMPANY_ID']) > 0) { $arResult['ELEMENT']['PERSON_TYPE_ID'] = intval($arPersonTypes['COMPANY']); $arResult['PERSON_TYPE'] = 'COMPANY'; } } // Client fields $clientField = array(); foreach (CCrmQuote::GetClientFields() as $fieldName) {
if ($action === 'RECALCULATE') { try { $resultOptions = array(); $options = isset($_POST['OPTIONS']) ? $_POST['OPTIONS'] : array(); if (!is_array($options)) { throw new Exception('MISSING OPTIONS!'); } if (isset($options['CLIENT_FIELDS']) && is_array($options['CLIENT_FIELDS'])) { $options = $options['CLIENT_FIELDS']; if (isset($options['CONTACT_ID']) && isset($options['COMPANY_ID'])) { $fields = array('CONTACT_ID' => intval($options['CONTACT_ID']), 'COMPANY_ID' => intval($options['COMPANY_ID'])); foreach (CCrmQuote::GetClientFields() as $k) { $fields[$k] = ''; } unset($k); CCrmQuote::RewriteClientFields($fields, false); $resultOptions['CLIENT_FIELDS'] = $fields; } else { throw new Exception('INVALID CLIENT_FIELDS OPTIONS!'); } } else { throw new Exception('INVALID OPTIONS!'); } echo CUtil::PhpToJSObject($resultOptions); } catch (Exception $e) { echo CUtil::PhpToJSObject(array('ERROR' => $e->getMessage())); } } elseif ($action == 'GET_WEBDAV_ELEMENT_INFO') { $elementID = isset($_POST['ELEMENT_ID']) ? intval($_POST['ELEMENT_ID']) : 0; if ($elementID <= 0) { echo CUtil::PhpToJSObject(array('ERROR' => 'Invalid data'));