Your IP : 216.73.216.86


Current Path : /var/www/homesaver/www/bitrix/modules/catalog/lib/document/
Upload File :
Current File : /var/www/homesaver/www/bitrix/modules/catalog/lib/document/storedocumenttablemanager.php

<?php

namespace Bitrix\Catalog\Document;

use Bitrix\Catalog\Document\Type\StoreDocumentArrivalTable;
use Bitrix\Catalog\Document\Type\StoreDocumentDeductTable;
use Bitrix\Catalog\Document\Type\StoreDocumentMovingTable;
use Bitrix\Catalog\Document\Type\StoreDocumentReturnTable;
use Bitrix\Catalog\Document\Type\StoreDocumentStoreAdjustmentTable;
use Bitrix\Catalog\Document\Type\StoreDocumentUndoReserveTable;
use Bitrix\Catalog\StoreDocumentTable;

class StoreDocumentTableManager
{
	private static $typeClassMap = [
		StoreDocumentTable::TYPE_ARRIVAL => StoreDocumentArrivalTable::class,
		StoreDocumentTable::TYPE_STORE_ADJUSTMENT => StoreDocumentStoreAdjustmentTable::class,
		StoreDocumentTable::TYPE_MOVING => StoreDocumentMovingTable::class,
		StoreDocumentTable::TYPE_DEDUCT => StoreDocumentDeductTable::class,
		StoreDocumentTable::TYPE_RETURN => StoreDocumentReturnTable::class,
		StoreDocumentTable::TYPE_UNDO_RESERVE => StoreDocumentUndoReserveTable::class,
	];

	/**
	 * @param string $docType
	 * @return string
	 */
	public static function getTableClassByType(string $docType): string
	{
		return self::$typeClassMap[$docType] ?? '';
	}

	/**
	 * @return array
	 */
	public static function getUfEntityIds(): array
	{
		return array_map(static fn($tableClass): string => $tableClass::getUfId(), self::$typeClassMap);
	}

	/**
	 * @param string $entityId
	 * @return string
	 */
	public static function getTypeByUfId(string $entityId): string
	{
		$map = array_flip(self::getUfEntityIds());

		return $map[$entityId] ?? '';
	}
}