- Модуль: 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;
}