begin
outSourcesCosts = 0;
IF (:ABusObjType=0) THEN
begin
SELECT SUM(G.Amount) as Costs FROM GeneralLedger G, Accounts A WHERE G.AccDate$DATE<=:ADate and G.DebitBusOrder_ID=:ABusObjOID and G.DebitAccount_ID=A.ID and A.IsCostForProjectControl='A' into mCosts;
SELECT SUM(G.Amount) as MinusCosts FROM GeneralLedger G, Accounts A WHERE G.AccDate$DATE<=:ADate and G.CreditBusOrder_ID=:ABusObjOID and G.CreditAccount_ID=A.ID and A.IsCostForProjectControl='A' into mCostsMinus;
SELECT SUM(G.Amount) as Revenues FROM GeneralLedger G, Accounts A WHERE G.AccDate$DATE<=:ADate and G.CreditBusOrder_ID=:ABusObjOID and G.CreditAccount_ID=A.ID and A.IsRevenueForProjectControl='A' into mRevenues;
SELECT SUM(G.Amount) as RevenuesMinus FROM GeneralLedger G, Accounts A WHERE G.AccDate$DATE<=:ADate and G.DebitBusOrder_ID=:ABusObjOID and G.DebitAccount_ID=A.ID and IsRevenueForProjectControl='A' into mRevenuesMinus;
SELECT SUM(RealTotalHours * CostHourRate) as SourcesCosts FROM BusOrderSources WHERE Parent_ID=:ABusObjOID into outSourcesCosts;
end
IF (:ABusObjType=1) THEN
begin
SELECT SUM(G.Amount) as Costs FROM GeneralLedger G, Accounts A WHERE G.AccDate$DATE<=:ADate and G.DebitBusTransaction_ID=:ABusObjOID and G.DebitAccount_ID=A.ID and A.IsCostForProjectControl='A' into mCosts;
SELECT SUM(G.Amount) as MinusCosts FROM GeneralLedger G, Accounts A WHERE G.AccDate$DATE<=:ADate and G.CreditBusTransaction_ID=:ABusObjOID and G.CreditAccount_ID=A.ID and A.IsCostForProjectControl='A' into mCostsMinus;
SELECT SUM(G.Amount) as Revenues FROM GeneralLedger G, Accounts A WHERE G.AccDate$DATE<=:ADate and G.CreditBusTransaction_ID=:ABusObjOID and G.CreditAccount_ID=A.ID and A.IsRevenueForProjectControl='A' into mRevenues;
SELECT SUM(G.Amount) as RevenuesMinus FROM GeneralLedger G, Accounts A WHERE G.AccDate$DATE<=:ADate and G.DebitBusTransaction_ID=:ABusObjOID and G.DebitAccount_ID=A.ID and A.IsRevenueForProjectControl='A' into mRevenuesMinus;
SELECT SUM(RealTotalHours * CostHourRate) as SourcesCosts FROM BusTransactionSources WHERE Parent_ID=:ABusObjOID into outSourcesCosts;
end
IF (:ABusObjType=2) THEN
begin
SELECT SUM(G.Amount) as Costs FROM GeneralLedger G, Accounts A WHERE G.AccDate$DATE<=:ADate and G.DebitBusProject_ID=:ABusObjOID and G.DebitAccount_ID=A.ID and A.IsCostForProjectControl='A' into mCosts;
SELECT SUM(G.Amount) as MinusCosts FROM GeneralLedger G, Accounts A WHERE G.AccDate$DATE<=:ADate and G.CreditBusProject_ID=:ABusObjOID and G.CreditAccount_ID=A.ID and A.IsCostForProjectControl='A' into mCostsMinus;
SELECT SUM(G.Amount) as Revenues FROM GeneralLedger G, Accounts A WHERE G.AccDate$DATE<=:ADate and G.CreditBusProject_ID=:ABusObjOID and G.CreditAccount_ID=A.ID and A.IsRevenueForProjectControl='A' into mRevenues;
SELECT SUM(G.Amount) as RevenuesMinus FROM GeneralLedger G, Accounts A WHERE G.AccDate$DATE<=:ADate and G.DebitBusProject_ID=:ABusObjOID and G.DebitAccount_ID=A.ID and A.IsRevenueForProjectControl='A' into mRevenuesMinus;
SELECT SUM(RealTotalHours * CostHourRate) as SourcesCosts FROM BusProjectSources WHERE Parent_ID=:ABusObjOID into outSourcesCosts;
end
if (mCosts is null) then mCosts = 0;
if (mCostsMinus is null) then mCostsMinus = 0;
if (mRevenues is null) then mRevenues = 0;
if (mRevenuesMinus is null) then mRevenuesMinus = 0;
outAccCosts = mCosts - mCostsMinus;
outAccRevenues = mRevenues - mRevenuesMinus;
if (outSourcesCosts is null) then outSourcesCosts =0;
Suspend;
end;