- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/rest/externalchannel.php
- Класс: Bitrix\Crm\Rest\CCrmExternalChannelImportBank
- Вызов: CCrmExternalChannelImportBank::import
public function import(&$requisite)
{
$result = new Result();
$import = new Result();
$batch = array();
$proccessList = array();
if(is_array($requisite[CCrmExternalChannelImport::FIELDS_BANK]) && !empty($requisite[CCrmExternalChannelImport::FIELDS_BANK]))
{
foreach($requisite[CCrmExternalChannelImport::FIELDS_BANK] as $row=>&$bank)
{
$this->internalizeFields($bank, $this->getFieldsInfo());
$this->fillFields($bank);
$res = $this->innerList(array(
'=ENTITY_ID' => $this->getOwnerEntityId(),
'=XML_ID' => $bank['XML_ID'],
));
if($r = $res->fetch())
{
$id = $r['ID'];
$errors = [];
$r = $this->innerUpdate($id, $bank, $errors);
}
else
{
$errors = [];
$r = $this->innerAdd($bank, $errors);
$data = $r->getData();
$id = $data['RESULT'];
}
if($r->getErrors())
{
$batch[$row]['errors'] = $r->getErrors();
}
elseif($this->isValidID((int)$id))
{
$proccessList[] = $id;
}
}
if(count($batch)<=0)
{
$r = $this->deleteEntities($proccessList);
if($r->getErrors())
$import->addErrors($r->getErrors());
}
}
else
{
$r = $this->deleteEntities(array());
if($r->getErrors())
$import->addErrors($r->getErrors());
}
if($import->getErrors() || count($batch)>0)
{
$result->addError(new Error('','IMPORT_ERROR'));
$result->setData(array(
'IMPORT_ERROR'=>$import->getErrors(),
'BATCH_ERROR'=>$batch
));
}
return $result;
}