• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/businessvalue_old.php
  • Класс: BitrixSaleBusinessValueOld
  • Вызов: BusinessValueOld::import1CProfiles
static function import1CProfiles()
{
	$codes = array(
		'CLIENT_NAME'         => array('FULL_NAME'     , 'GROUP' => 'CLIENT', 'SORT' =>  100, 'DOMAIN' => BusinessValue::INDIVIDUAL_DOMAIN, 'MAP' => array()),
		'CLIENT_LAST_NAME'    => array('SURNAME'       , 'GROUP' => 'CLIENT', 'SORT' =>  200, 'DOMAIN' => BusinessValue::INDIVIDUAL_DOMAIN, 'MAP' => array()),
		'CLIENT_FIRST_NAME'   => array('NAME'          , 'GROUP' => 'CLIENT', 'SORT' =>  300, 'DOMAIN' => BusinessValue::INDIVIDUAL_DOMAIN, 'MAP' => array()),
		'CLIENT_SECOND_NAME'  => array('SECOND_NAME'   , 'GROUP' => 'CLIENT', 'SORT' =>  400, 'DOMAIN' => BusinessValue::INDIVIDUAL_DOMAIN, 'MAP' => array()),
		'CLIENT_AGENT_NAME'   => array('AGENT_NAME'    , 'GROUP' => 'CLIENT', 'SORT' =>  500, 'DOMAIN' => BusinessValue::INDIVIDUAL_DOMAIN, 'MAP' => array()),
		'CLIENT_CONTACT_NAME' => array('CONTACT_PERSON', 'GROUP' => 'CLIENT', 'SORT' =>  600, 'DOMAIN' => BusinessValue::INDIVIDUAL_DOMAIN, 'MAP' => array()),
		'CLIENT_BIRTHDAY'     => array('BIRTHDAY'      , 'GROUP' => 'CLIENT', 'SORT' =>  700, 'DOMAIN' => BusinessValue::INDIVIDUAL_DOMAIN, 'MAP' => array()),
		'CLIENT_SEX'          => array('MALE'          , 'GROUP' => 'CLIENT', 'SORT' =>  800, 'DOMAIN' => BusinessValue::INDIVIDUAL_DOMAIN, 'MAP' => array()),
		'CLIENT_INN'          => array('INN'           , 'GROUP' => 'CLIENT', 'SORT' =>  900, 'DOMAIN' => BusinessValue::INDIVIDUAL_DOMAIN, 'MAP' => array()),
		'CLIENT_KPP'          => array('KPP'           , 'GROUP' => 'CLIENT', 'SORT' => 1000, 'DOMAIN' => BusinessValue::INDIVIDUAL_DOMAIN, 'MAP' => array()),
		'CLIENT_ADDRESS'      => array('ADDRESS_FULL'  , 'GROUP' => 'CLIENT', 'SORT' => 1100, 'DOMAIN' => BusinessValue::INDIVIDUAL_DOMAIN, 'MAP' => array()),
		'CLIENT_ZIP'          => array('INDEX'         , 'GROUP' => 'CLIENT', 'SORT' => 1200, 'DOMAIN' => BusinessValue::INDIVIDUAL_DOMAIN, 'MAP' => array()),
		'CLIENT_COUNTRY'      => array('COUNTRY'       , 'GROUP' => 'CLIENT', 'SORT' => 1300, 'DOMAIN' => BusinessValue::INDIVIDUAL_DOMAIN, 'MAP' => array()),
		'CLIENT_REGION'       => array('REGION'        , 'GROUP' => 'CLIENT', 'SORT' => 1400, 'DOMAIN' => BusinessValue::INDIVIDUAL_DOMAIN, 'MAP' => array()),
		'CLIENT_STATE'        => array('STATE'         , 'GROUP' => 'CLIENT', 'SORT' => 1500, 'DOMAIN' => BusinessValue::INDIVIDUAL_DOMAIN, 'MAP' => array()),
		'CLIENT_TOWN'         => array('TOWN'          , 'GROUP' => 'CLIENT', 'SORT' => 1600, 'DOMAIN' => BusinessValue::INDIVIDUAL_DOMAIN, 'MAP' => array()),
		'CLIENT_CITY'         => array('CITY'          , 'GROUP' => 'CLIENT', 'SORT' => 1700, 'DOMAIN' => BusinessValue::INDIVIDUAL_DOMAIN, 'MAP' => array()),
		'CLIENT_STREET'       => array('STREET'        , 'GROUP' => 'CLIENT', 'SORT' => 1800, 'DOMAIN' => BusinessValue::INDIVIDUAL_DOMAIN, 'MAP' => array()),
		'CLIENT_HOUSING'      => array('BUILDING'      , 'GROUP' => 'CLIENT', 'SORT' => 1900, 'DOMAIN' => BusinessValue::INDIVIDUAL_DOMAIN, 'MAP' => array()),
		'CLIENT_BUILDING'     => array('HOUSE'         , 'GROUP' => 'CLIENT', 'SORT' => 2000, 'DOMAIN' => BusinessValue::INDIVIDUAL_DOMAIN, 'MAP' => array()),
		'CLIENT_APARTMENT'    => array('FLAT'          , 'GROUP' => 'CLIENT', 'SORT' => 2100, 'DOMAIN' => BusinessValue::INDIVIDUAL_DOMAIN, 'MAP' => array()),
		'CLIENT_PHONE'        => array('PHONE'         , 'GROUP' => 'CLIENT', 'SORT' => 2200, 'DOMAIN' => BusinessValue::INDIVIDUAL_DOMAIN, 'MAP' => array()),
		'CLIENT_EMAIL'        => array('EMAIL'         , 'GROUP' => 'CLIENT', 'SORT' => 2300, 'DOMAIN' => BusinessValue::INDIVIDUAL_DOMAIN, 'MAP' => array()),
		'COMPANY_AGENT_NAME'   => array('AGENT_NAME'    , 'GROUP' => 'COMPANY', 'SORT' =>  100, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
		'COMPANY_NAME'         => array('FULL_NAME'     , 'GROUP' => 'COMPANY', 'SORT' =>  200, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
		'COMPANY_ADDRESS'      => array('ADDRESS_FULL'  , 'GROUP' => 'COMPANY', 'SORT' =>  300, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
		'COMPANY_ZIP'          => array('INDEX'         , 'GROUP' => 'COMPANY', 'SORT' =>  400, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
		'COMPANY_COUNTRY'      => array('COUNTRY'       , 'GROUP' => 'COMPANY', 'SORT' =>  500, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
		'COMPANY_REGION'       => array('REGION'        , 'GROUP' => 'COMPANY', 'SORT' =>  600, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
		'COMPANY_STATE'        => array('STATE'         , 'GROUP' => 'COMPANY', 'SORT' =>  700, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
		'COMPANY_TOWN'         => array('TOWN'          , 'GROUP' => 'COMPANY', 'SORT' =>  800, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
		'COMPANY_CITY'         => array('CITY'          , 'GROUP' => 'COMPANY', 'SORT' =>  900, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
		'COMPANY_STREET'       => array('STREET'        , 'GROUP' => 'COMPANY', 'SORT' => 1000, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
		'COMPANY_HOUSING'      => array('BUILDING'      , 'GROUP' => 'COMPANY', 'SORT' => 1100, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
		'COMPANY_BUILDING'     => array('HOUSE'         , 'GROUP' => 'COMPANY', 'SORT' => 1200, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
		'COMPANY_APARTMENT'    => array('FLAT'          , 'GROUP' => 'COMPANY', 'SORT' => 1300, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
		'COMPANY_INN'          => array('INN'           , 'GROUP' => 'COMPANY', 'SORT' => 1400, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
		'COMPANY_KPP'          => array('KPP'           , 'GROUP' => 'COMPANY', 'SORT' => 1500, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
		'COMPANY_EGRPO'        => array('EGRPO'         , 'GROUP' => 'COMPANY', 'SORT' => 1600, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
		'COMPANY_OKVED'        => array('OKVED'         , 'GROUP' => 'COMPANY', 'SORT' => 1700, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
		'COMPANY_OKDP'         => array('OKDP'          , 'GROUP' => 'COMPANY', 'SORT' => 1800, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
		'COMPANY_OKOPF'        => array('OKOPF'         , 'GROUP' => 'COMPANY', 'SORT' => 1900, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
		'COMPANY_OKFC'         => array('OKFC'          , 'GROUP' => 'COMPANY', 'SORT' => 2000, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
		'COMPANY_OKPO'         => array('OKPO'          , 'GROUP' => 'COMPANY', 'SORT' => 2100, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
		'COMPANY_BANK_ACCOUNT' => array('ACCOUNT_NUMBER', 'GROUP' => 'COMPANY', 'SORT' => 2200, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
		'COMPANY_PHONE'        => array('PHONE'         , 'GROUP' => 'COMPANY', 'SORT' => 2300, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
		'COMPANY_EMAIL'        => array('EMAIL'         , 'GROUP' => 'COMPANY', 'SORT' => 2400, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
		'COMPANY_CONTACT_NAME' => array('CONTACT_PERSON', 'GROUP' => 'COMPANY', 'SORT' => 2500, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
	);

	$personsDomains = array();

	$result = Application::getConnection()->query('SELECT * FROM b_sale_export');

	while ($row = $result->fetch())
	{
		if (($import = unserialize($row['VARS'])) && is_array($import))
		{
			$personId = $row['PERSON_TYPE_ID'];
			$domain = $import['IS_FIZ'] === 'Y' ? BusinessValue::INDIVIDUAL_DOMAIN : BusinessValue::ENTITY_DOMAIN;

			$personsDomains[$personId] = $domain;

			foreach ($codes as &$code)
			{
				if ($code['DOMAIN'] == $domain && ($map = $import[$code[0]]) && is_array($map) && ($item = $map['VALUE']))
				{
					$entity = $map['TYPE'];

					switch ($entity)
					{
						case ''        : break;
						case 'USER'    : break;
						case 'ORDER'   : break;
						case 'PROPERTY':
							if (! is_numeric($item)) // TODO: 6_COUNTRY, 6_CITY, 18_COUNTRY, 18_CITY
								$entity = null;
							break;
						default: $entity = null;
					}

					if ($entity !== null)
						$code['MAP'][$personId] = array($entity, $item);
				}
			}

			unset($code);
		}
	}

	return BusinessValue::install('1C_INTEGRATION', '/bitrix/modules/sale/1c_integration_codes.php', array(
		'PERSON_DOMAIN' => $personsDomains,
		'GROUPS' => array(
			'COMPANY' => array('SORT' => 100),
			'CLIENT'  => array('SORT' => 200),
		),
		'CODES' => $codes,
	));
}