%PDF- %PDF-
| Direktori : /proc/self/root/home/bitrix/www/bitrix/modules/sale/lib/exchange/entity/ |
| Current File : //proc/self/root/home/bitrix/www/bitrix/modules/sale/lib/exchange/entity/userprofileimport.php |
<?php
namespace Bitrix\Sale\Exchange\Entity;
use Bitrix\Main\Error;
use Bitrix\Main\UserTable;
use Bitrix\Sale;
use Bitrix\Sale\Exchange\EntityType;
class UserProfileImport extends UserImportBase
{
public function __construct()
{
$this->fields = new Sale\Internals\Fields();
}
/**
* @return int
*/
public function getOwnerTypeId()
{
return EntityType::USER_PROFILE;
}
/**
* Adds row to entity table
* @param array $params
* @return Sale\Result
*/
public function add(array $params)
{
$result = new Sale\Result();
$profileId = null;
$fields = $params['TRAITS'];
$property = $params["ORDER_PROP"];
$fields['ID'] = $this->registerUser($fields, $arErrors);
if(count($arErrors)>0)
{
foreach($arErrors as $error)
{
$result->addError(new Error(str_replace('<br>','', $error['TEXT'])));
}
}
elseif(intval($fields['ID'])>0)
{
$propertyOrders = static::getPropertyOrdersByPersonalTypeId($fields["PERSON_TYPE_ID"]);
if(is_array($propertyOrders))
{
foreach($propertyOrders as $filedsProperty)
{
$propertyId = $filedsProperty["ID"];
if(array_key_exists($propertyId, $property))
{
$propertyByConfigValue = $property[$propertyId];
if($profileId == null)
{
if(!empty($propertyByConfigValue))
{
$profileId = \CSaleOrderUserProps::Add(array(
"NAME" => $fields["AGENT_NAME"],
"USER_ID" => $fields['ID'],
"PERSON_TYPE_ID" => $fields['PERSON_TYPE_ID'],
"XML_ID" => $fields["XML_ID"],
"VERSION_1C" => $fields["VERSION_1C"]
));
}
}
\CSaleOrderUserPropsValue::Add(array(
"USER_PROPS_ID" => $profileId,
"ORDER_PROPS_ID" => $propertyId,
"NAME" => $filedsProperty["NAME"],
"VALUE" => $propertyByConfigValue
));
}
}
}
}
if($result->isSuccess())
{
$user = new static();
$user->setFields($fields);
$this->setEntity($user);
}
return $result;
}
/**
* Updates row in entity table
* @param array $params
* @return Sale\Result
*/
public function update(array $params)
{
$entity = $this->getEntity();
if($entity->getId()>0)
static::updateEmptyXmlId($entity->getId(), $params['TRAITS']['XML_ID']);
return new Sale\Result();
}
/**
* Deletes row in entity table by primary key
* @param array|null $params
* @return Sale\Result
*/
public function delete(array $params = null)
{
return new Sale\Result();
}
/**
* @param array $fields
* @return Sale\Result
*/
protected function checkFields(array $fields)
{
return new Sale\Result();
}
/**
* @param array $fields
* @return Sale\Result
*/
public function load(array $fields)
{
$result = $this->checkFields($fields);
if($result->isSuccess())
{
if(!empty($fields['ID']))
{
$user = UserTable::getById($fields['ID']);
if($fields = $user->fetch())
{
$userProfile = new static();
$userProfile->setFields($fields);
$this->setEntity($userProfile);
}
}
}
return $result;
}
/**
* @return int|null
*/
public function getId()
{
$entity = $this->getEntity();
if(!empty($entity))
{
return $entity->getField('ID');
}
return null;
}
/**
* @return bool
*/
public function isImportable()
{
return $this->settings->isImportableFor($this->getOwnerTypeId());
}
/**
* @param array $fields
*/
public function refreshData(array $fields)
{
}
/**
* @return string
*/
public static function getFieldExternalId()
{
return 'XML_ID';
}
}