...Человеческий поиск в разработке...
- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/rest/externalchannel.php
- Класс: Bitrix\Crm\Rest\CCrmExternalChannelImportActivity
- Вызов: CCrmExternalChannelImportActivity::import
public function import($activity, &$resultList, &$fields) { $result = new Result(); $resultList = array( 'id'=> -1, 'process' => array( 'add' => false, 'upd' => false, 'error' => array() ) ); /** @var CCrmExternalChannelImport $import */ $import = $this->import; /** @var CCrmExternalChannelConnector $connector */ $connector = $import->getConnector(); if(($fields = $activity[CCrmExternalChannelImport::FIELDS]) && count($fields)>0) { $r = $this->checkFields($fields); if($r->getErrors()) $result->addErrors($r->getErrors()); else { $res = $this->getEntity()->innerGetList( array(), array( 'ORIGIN_ID'=>$fields['ORIGIN_ID'], 'ORIGINATOR_ID' => $connector->getOriginatorId() ), array('*'), false, $errors ); if(!$res) { if(count($errors)>0) $result->addError(new Error(implode('; ', $errors), 7008)); } else { $errors = array(); $this->getEntity()->internalizeFields($fields, $this->getEntity()->getFieldsInfo()); $this->fillFields($fields, $activity); if($r = $res->Fetch()) { $resultUpdate = $this->getEntity()->innerUpdate($r['ID'], $fields, $errors); if($resultUpdate !== false) { $resultList['id'] = (int)$r['ID']; $resultList['process']['upd'] = true; } if(count($errors)>0) $result->addError(new Error(implode('; ', $errors), 7009)); } else { $id = $this->getEntity()->innerAdd($fields, $errors); if($this->isValidID($id)) { $this->registerActivityInChannel($id, $connector); $resultList['id'] = $id; $resultList['process']['add'] = true; } if(count($errors)>0) $result->addError(new Error(implode('; ', $errors), 7010)); } } } } else $result->addError(new Error("Activity fields is not defined.", 7011)) ; return $result; }