Your IP : 3.144.97.63


Current Path : /var/www/axolotl/data/www/yar.axolotls.ru/bitrix/modules/crm/lib/invoice/
Upload File :
Current File : /var/www/axolotl/data/www/yar.axolotls.ru/bitrix/modules/crm/lib/invoice/invoicestatus.php

<?php

namespace Bitrix\Crm\Invoice;

use Bitrix\Main;
use Bitrix\Sale;

if (!Main\Loader::includeModule('sale'))
{
	return;
}

/**
 * Class InvoiceStatus
 * @package Bitrix\Crm\Invoice
 */
class InvoiceStatus extends Sale\OrderStatus
{
	/**
	 * @return string
	 */
	public static function getRegistryType()
	{
		return REGISTRY_TYPE_CRM_INVOICE;
	}

	/**
	 * Get all statuses for current class type.
	 *
	 * @return array|mixed
	 */
	public static function getAllStatuses()
	{
		$statusList = \CCrmStatus::GetStatusList('INVOICE_STATUS');
		return array_keys($statusList);
	}

	/**
	 * Get all statuses names for current class type.
	 *
	 * @param null $lang
	 * @return array|mixed
	 */
	public static function getAllStatusesNames($lang = null)
	{
		return \CCrmStatus::GetStatusList('INVOICE_STATUS');
	}

	/**
	 * @param array $parameters
	 * @return Main\DB\Result
	 */
	public static function getList(array $parameters = array())
	{
		$filter = array(
			'ENTITY_ID' => 'INVOICE_STATUS'
		);

		if (isset($parameters['filter']))
		{
			if (isset($parameters['filter']['NAME']))
			{
				$filter['NAME'] = $parameters['filter']['NAME'];
			}

			if (isset($parameters['filter']['ID']))
			{
				$filter['STATUS_ID'] = $parameters['filter']['ID'];
			}

			if (isset($parameters['filter']['SORT']))
			{
				$filter['SORT'] = $parameters['filter']['SORT'];
			}
		}

		$sort = [];
		if (isset($parameters['order']) && is_array($parameters['order']))
		{
			$sort = $parameters['order'];
		}

		$result = array();

		$dbRes = \CCrmStatus::GetList($sort, $filter);
		while ($status = $dbRes->Fetch())
		{
			$result[] = $status;
		}

		return new Main\DB\ArrayResult($result);
	}

	/**
	 * @param $statusId
	 * @return bool
	 */
	public static function isAllowPay($statusId)
	{
		return true;
	}

	/**
	 * @param $userId
	 * @return array
	 */
	protected static function getUserGroups($userId)
	{
		return array();
	}

	/**
	 * @param $groupId
	 * @param $fromStatus
	 * @param array $operations
	 * @return bool
	 */
	public static function canGroupDoOperations($groupId, $fromStatus, array $operations)
	{
		return true;
	}

	/**
	 * @param $groupId
	 * @param $fromStatus
	 * @return array|mixed
	 */
	protected static function getAllowedGroupStatuses($groupId, $fromStatus)
	{
		return static::getAllStatusesNames();
	}

	/**
	 * Get statuses user can do operations within
	 *
	 * @param $userId
	 * @param array $operations
	 * @return array|mixed
	 */
	public static function getStatusesUserCanDoOperations($userId, array $operations)
	{
		return static::getAllStatusesNames();
	}

	/**
	 * @param $groupId
	 * @param array $operations
	 * @return array|mixed
	 */
	public static function getStatusesGroupCanDoOperations($groupId, array $operations)
	{
		return static::getAllStatuses();
	}

	/**
	 * @return mixed
	 */
	public static function getInitialStatus()
	{
		return \CCrmStatus::GetFirstStatusID('INVOICE_STATUS');
	}

	/**
	 * @return string
	 */
	public static function getFinalStatus()
	{
		return 'D';
	}

}