• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/delivery/tracking/rus_post.php
  • Класс: BitrixSaleDeliveryTrackingStatuses
  • Вызов: Statuses::mapStatus
protected function mapStatus($oper, $attr)
{
	if($oper == '')
		return Statuses::UNKNOWN;

	/*
	 * if innerStatus1 != innerStatus2 != .......
	 *
	 * opCode1 => array (
	 * 		attrCode1 => innerStatus1
	 * 		attrCode2 => innerStatus2
	 * 		...
	 * )
	 *
	 * if innerStatus1 == innerStatus2 == .......
	 *
	 * opCode => innerStatus
	 *
	 */
	$rusPostStatuses = array(
		1 => Statuses::WAITING_SHIPMENT,
		2 => array(
			1 => Statuses::HANDED,
			2 => Statuses::RETURNED,
			3 => Statuses::HANDED,
			4 => Statuses::RETURNED,
			5 => Statuses::HANDED,
			6 => Statuses::HANDED,
			7 => Statuses::RETURNED,
			8 => Statuses::HANDED,
			9 => Statuses::RETURNED,
			10 => Statuses::HANDED,
			11 => Statuses::HANDED,
			12 => Statuses::HANDED,
		),
		3 => Statuses::PROBLEM,
		4 => Statuses::ON_THE_WAY,
		5 => array(
			1 => Statuses::PROBLEM,
			2 => Statuses::PROBLEM,
			3 => Statuses::PROBLEM,
			8 => Statuses::PROBLEM,
			9 => Statuses::PROBLEM
		),
		6 => array(
			1 => Statuses::ARRIVED,
			2 => Statuses::ARRIVED,
			3 => Statuses::ARRIVED,
			4 => Statuses::ARRIVED,
			5 => Statuses::ON_THE_WAY,
		),
		7 => Statuses::PROBLEM,
		8 => array(
			0 => Statuses::ON_THE_WAY,
			1 => Statuses::ON_THE_WAY,
			2 => Statuses::ARRIVED,
			3 => Statuses::ON_THE_WAY,
			4 => Statuses::ON_THE_WAY,
			5 => Statuses::ON_THE_WAY,
			6 => Statuses::ON_THE_WAY,
			7 => Statuses::ON_THE_WAY,
			8 => Statuses::ON_THE_WAY,
			9 => Statuses::ARRIVED,
			10 => Statuses::ARRIVED,
			11 => Statuses::ON_THE_WAY,
			12 => Statuses::ARRIVED,
			13 => Statuses::ON_THE_WAY,
			14 => Statuses::ARRIVED,
			15 => Statuses::ON_THE_WAY,
			16 => Statuses::ON_THE_WAY,
			17 => Statuses::ON_THE_WAY,
			18 => Statuses::ON_THE_WAY,
			19 => Statuses::ON_THE_WAY,

		),
		9 => Statuses::ON_THE_WAY,
		10 => Statuses::ON_THE_WAY,
		11 => Statuses::ON_THE_WAY,
		12 => array(
			1 => Statuses::ARRIVED,
			2 => Statuses::ARRIVED,
			3 => Statuses::PROBLEM,
			4 => Statuses::PROBLEM,
			5 => Statuses::PROBLEM,
			6 => Statuses::PROBLEM,
			7 => Statuses::PROBLEM,
			8 => Statuses::PROBLEM,
			9 => Statuses::ARRIVED,
			10 => Statuses::PROBLEM,
			11 => Statuses::ARRIVED,
			12 => Statuses::PROBLEM,
			13 => Statuses::PROBLEM,
			14 => Statuses::PROBLEM,
			15 => Statuses::ARRIVED,
			16 => Statuses::PROBLEM,
			17 => Statuses::ARRIVED,
			18 => Statuses::ARRIVED,
			19 => Statuses::PROBLEM,
			20 => Statuses::PROBLEM,
			21 => Statuses::PROBLEM,
			22 => Statuses::ARRIVED,
			23 => Statuses::PROBLEM,
			24 => Statuses::PROBLEM,
			25 => Statuses::ARRIVED,
			26 => Statuses::PROBLEM,
			27 => Statuses::ARRIVED,
			28 => Statuses::PROBLEM,
		),
		13 => Statuses::ON_THE_WAY,
		14 => Statuses::ON_THE_WAY,
		15 => Statuses::ARRIVED,
		16 => Statuses::PROBLEM,
		17 => Statuses::ARRIVED,
		18 => Statuses::PROBLEM,
		19 => Statuses::ON_THE_WAY,
		20 => Statuses::ON_THE_WAY,
		21 => Statuses::ON_THE_WAY,
		22 => Statuses::PROBLEM,
		23 => Statuses::ON_THE_WAY,
		24 => Statuses::PROBLEM,
		25 => Statuses::ON_THE_WAY,
		26 => Statuses::PROBLEM,
		27 => Statuses::ON_THE_WAY,
		28 => Statuses::NO_INFORMATION,
		29 => Statuses::ON_THE_WAY,
		30 => Statuses::ON_THE_WAY,
		31 => Statuses::ON_THE_WAY,
		32 => Statuses::ON_THE_WAY,
		33 => Statuses::ON_THE_WAY,
	);

	if(!isset($rusPostStatuses[$oper]))
		return Statuses::UNKNOWN;

	if(!is_array($rusPostStatuses[$oper]))
		return $rusPostStatuses[$oper];

	if($attr == '')
		return Statuses::UNKNOWN;

	if(!isset($rusPostStatuses[$oper][$attr]))
		return Statuses::UNKNOWN;

	return $rusPostStatuses[$oper][$attr];
}