Procedura-BusObjectComputeBilance

Popis:
Výpočet bilance pro danou zakázku/obch.p./projekt (výnosy a náklady z účetnictví + náklady ze zdrojů)

Parametry:

NázevPopisDatový typ
ABusObjType0 - zakázky 1 - obchodní případy 2 - projektyInteger
ABusObjOIDOID zakázky/ob.případu/projektu, pro něž chce uživatel spočítat Bilanci
ID
ADateDatum, ke kterému se Bilance spočte (horní omezení)
DateTime

Návratové hodnoty:

NázevPopisDatový typ
outAccCostsNáklady vypočtené z účetnictvíNumeric(15, 2)
outAccRevenuesVýnosy vypočtené z účetnictvíNumeric(15, 2)
outSourcesCostsNáklady vypočtené ze zdrojůNumeric(15, 2)

Tělo:

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;

Generated by ABRA Software a.s. 27.10.2021 16:34:12