protected function innerUpdate($ID, &$fields, &$errors, array $params = null) { if (!CCrmStatus::CheckUpdatePermission($ID)) { $errors[] = 'Access denied.'; return false; } $dbResult = CCrmStatus::GetList(array(), array('ID' => $ID)); $currentFields = $dbResult ? $dbResult->Fetch() : null; if (!is_array($currentFields)) { $errors[] = 'CRM Status is not found.'; return false; } $entity = new CCrmStatus($currentFields['ENTITY_ID']); $result = $entity->Update($ID, $fields); if ($result === false) { $errors[] = $entity->GetLastError(); } return $result !== false; }
$iPrevSort = $arField['SORT']; if (substr($id, 0, 1) == 'n') { if (trim($arField['VALUE']) == "") { continue; } $arAdd['NAME'] = trim($arField['VALUE']); $arAdd['SORT'] = $arField['SORT']; $CCrmStatus->Add($arAdd); } else { if (!isset($arField['VALUE']) || trim($arField['VALUE']) == "") { $arCurrentData = $CCrmStatus->GetStatusById($id); if ($arCurrentData['SYSTEM'] == 'N') { $CCrmStatus->Delete($id); } else { $arUpdate['NAME'] = trim($arCurrentData['NAME_INIT']); $CCrmStatus->Update($id, $arUpdate); } } else { $arCurrentData = $CCrmStatus->GetStatusById($id); if (trim($arField['VALUE']) != $arCurrentData['NAME'] || intval($arField['SORT']) != $arCurrentData['SORT']) { $arUpdate['NAME'] = trim($arField['VALUE']); $arUpdate['SORT'] = $arField['SORT']; $CCrmStatus->Update($id, $arUpdate); } } } } } $arResult['ACTIVE_TAB'] = $_POST['ACTIVE_TAB']; } $ar = CCrmStatus::GetEntityTypes();
$action = isset($_REQUEST['ACTION']) ? $_REQUEST['ACTION'] : ''; if ($action === 'FIX_STATUSES') { if (COption::GetOptionString('crm', '~CRM_FIX_STATUSES', 'N') !== 'Y') { __CrmConfigStatusEndResonse(array('COMPLETED' => 'Y')); } $dbRes = $DB->Query("SELECT ENTITY_ID, STATUS_ID FROM b_crm_status WHERE SYSTEM = 'N' GROUP BY ENTITY_ID, STATUS_ID HAVING COUNT(*) > 1", false, 'FILE: ' . __FILE__ . '<br /> LINE: ' . __LINE__); $items = array(); while ($arRes = $dbRes->Fetch()) { $items[] = $arRes; } foreach ($items as $item) { $entityID = isset($item['ENTITY_ID']) ? $item['ENTITY_ID'] : ''; $statusID = isset($item['STATUS_ID']) ? (int) $item['STATUS_ID'] : 0; if ($entityID === '' || $statusID <= 0) { continue; } $dbRes = $DB->Query("SELECT ID, SORT, NAME, SYSTEM FROM b_crm_status WHERE ENTITY_ID = '{$entityID}' AND STATUS_ID = '{$statusID}'", false, 'FILE: ' . __FILE__ . '<br /> LINE: ' . __LINE__); $entity = new CCrmStatus($entityID); $isFirst = true; while ($arRes = $dbRes->Fetch()) { if ($isFirst) { $isFirst = false; continue; } $itemID = (int) $arRes['ID']; $error = $entity->Update($itemID, array('STATUS_ID' => $entity->GetNextStatusId(), 'SORT' => isset($arRes['SORT']) ? (int) $arRes['SORT'] : 10, 'SYSTEM' => isset($arRes['SYSTEM']) ? $arRes['SYSTEM'] : 'N', 'NAME' => isset($arRes['NAME']) ? $arRes['NAME'] : ''), array('ENABLE_STATUS_ID' => true)); } } COption::RemoveOption('crm', '~CRM_FIX_STATUSES'); __CrmConfigStatusEndResonse(array('COMPLETED' => 'Y')); }