• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/internals/userbudgetpool.php
  • Класс: BitrixSaleInternalsUserBudgetPool
  • Вызов: UserBudgetPool::getUserBudgetTransForOrder
static function getUserBudgetTransForOrder(SaleOrder $order)
{
	$ignoreTypes = array(
		static::BUDGET_TYPE_ORDER_PAY
	);
	$sumTrans = 0;

	if ($order->getId() > 0)
	{
		$resTrans = CSaleUserTransact::GetList(
			array("TRANSACT_DATE" => "DESC"),
			array(
				"ORDER_ID" => $order->getId(),
			),
			false,
			false,
			array("AMOUNT", "CURRENCY", "DEBIT")
		);
		while ($transactDat = $resTrans->Fetch())
		{
			if ($transactDat['DEBIT'] == "Y")
			{
				$sumTrans += $transactDat['AMOUNT'];
			}
			else
			{
				$sumTrans -= $transactDat['AMOUNT'];
			}
		}
	}

	if ($userBudgetPool = static::getUserBudgetPool($order->getUserId()))
	{
		foreach ($userBudgetPool->get() as $userBudgetDat)
		{
			if (in_array($userBudgetDat['TYPE'], $ignoreTypes))
				continue;

			$sumTrans += $userBudgetDat['SUM'];
		}
	}

	return $sumTrans;
}