begin
for select
SUM(A.Incomes),
SUM(A.Expenses),
A.BusTransaction_ID,
MAX(Z.Parent_ID)
from
RepBusTransactions2 (:Audited, :DateFrom, :DateTo, :FirmSelID,
:BusTransactionSelID, :ABusTransactionsWithChilds,
:DivisionSelID, :BusOrderSelID, :ABusOrdersWithChilds,
:BusProjectSelID, :ABusProjectsWithChilds,
:IsRequest, :ADivisionsWithChilds) A
LEFT join BusTransactions Z ON A.BusTransaction_ID = Z.ID
group by
A.BusTransaction_ID
into Incomes, Expenses, BusTransaction_ID, TempParent_ID
do begin
Nesting = 0;
TempBusTransaction_ID = BusTransaction_ID;
while (BusTransaction_ID is not null and TempParent_ID is not null and Nesting < 100) do begin
select Parent_ID, ID
from BusTransactions where ID = :TempParent_ID
into TempParent_ID, TempID;
TempNesting = Nesting;
BusTransaction_ID = TempID;
Nesting = 0;
if (Summarize = 'A') then suspend;
Nesting = TempNesting + 1;
end
BusTransaction_ID = TempBusTransaction_ID;
suspend;
end
end;