• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/cashbox/cashboxorangedata.php
  • Класс: BitrixSaleCashboxCashboxOrangeData
  • Вызов: CashboxOrangeData::buildPositionSupplier
protected function buildPositionSupplier(array $supplier): array
{
	$result = [
		'supplierInfo' => null,
		'supplierINN' => null,
	];

	// 239 max length for supplierInfo's tag
	$maxTagLength = 239;
	$phoneLength = 0;

	if (!empty($supplier['phones']))
	{
		$phoneParser = PhoneNumberParser::getInstance();

		foreach ($supplier['phones'] as $phone)
		{
			$phoneNumber = $phoneParser->parse($phone);
			$formattedPhone = $phoneNumber->format(PhoneNumberFormat::E164);
			if ($formattedPhone)
			{
				$phoneLength += mb_strlen($formattedPhone) + 4;
				if ($phoneLength > $maxTagLength)
				{
					break;
				}

				$result['supplierInfo']['phoneNumbers'][] = $formattedPhone;
			}
		}
	}

	if (!empty($supplier['name']) && $phoneLength < $maxTagLength)
	{
		$result['supplierInfo']['name'] = mb_substr($supplier['name'], 0, $maxTagLength - $phoneLength);
	}

	if (!empty($supplier['supplier_info']['inn']))
	{
		$result['supplierINN'] = $supplier['supplier_info']['inn'];
	}

	return $result;
}