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 ($fieldName === 'CLIENT_TPA_ID' && LANGUAGE_ID !== 'ru') { continue; } $clientField = array('id' => $fieldName, 'name' => GetMessage('CRM_QUOTE_FIELD_' . $fieldName), 'params' => array('size' => 255), 'value' => isset($arResult['ELEMENT']['~' . $fieldName]) ? $arResult['ELEMENT']['~' . $fieldName] : '', 'type' => 'text'); if ($fieldName === 'CLIENT_CONTACT') { $clientField['visible'] = isset($arPersonTypes['COMPANY']) && $arResult['ELEMENT']['PERSON_TYPE_ID'] == $arPersonTypes['COMPANY']; } $arResult['FIELDS']['tab_1'][] = $clientField; if ($fieldName === 'CLIENT_CONTACT') { $arResult['FORM_FIELDS_TO_ADD']['CLIENT_CONTACT'] = $clientField; } } unset($clientField, $fieldName); // FILES if ($arResult['ENABLE_WEBDAV'] || $arResult['ENABLE_DISK']) {
} } } } else { 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())); }