Procedura-AccClosingData

Parametry:

NázevPopisDatový typ
InPeriod_IDObdobíChar(10)
InAuditedStav auditace (A,N,%)Char(1)
InGroupDivisionsSkupinovat za střediskaChar(1)
InGroupBusOrdersSkupinovat za zakázkyChar(1)
InGroupBusTransactionsSkupinovat za OPChar(10)
InGroupBusProjectsSkupinovat za projektyChar(1)

Návratové hodnoty:

NázevPopisDatový typ
Account_IDúčetChar(10)
Division_IDStřediskoChar(10)
BusOrder_IDzakázkaChar(10)
BusTransaction_IDobchodní případChar(10)
BusProject_IDProjektChar(10)
DebitBeginningPočátek MDNumeric(15, 2)
CreditBeginningPočátek DNumeric(15, 2)
DebitTurnoverObratMDNumeric(15, 2)
CreditTurnoverObrat DNumeric(15, 2)
CodeKód účtuChar(10)
AccountTypeTyp účtuChar(1)
DivisionNázev střediskaVarChar(100)
BusOrderNázev zakázkyVarChar(100)
BusTransactionNázev obchodního případuVarChar(100)
BusProjectNázev obchodního případuVarChar(100)

Tělo:

begin
  mSQL = 
  'select ' ||
  '  A.Account_ID as Account_ID,';
  if (InGroupDivisions = 'A') then begin 
    mSQL = mSQL ||
    '  A.Division_ID as Division_ID,';
  end else begin  
    mSQL = mSQL ||
    '  Null as Division_ID,';
  end
  if (InGroupBusOrders = 'A') then begin 
    mSQL = mSQL ||
    '  A.BusOrder_ID as BusOrder_ID,';
  end else begin  
    mSQL = mSQL ||
    '  Null as BusOrder_ID,';
  end
  if (InGroupBusTransactions = 'A') then begin 
    mSQL = mSQL ||
    '  A.BusTransaction_ID as BusTransaction_ID,';
  end else begin  
    mSQL = mSQL ||
    '  Null as BusTransaction_ID,';
  end
  if (InGroupBusProjects = 'A') then begin 
    mSQL = mSQL ||
    '  A.BusProject_ID as BusProject_ID,';
  end else begin  
    mSQL = mSQL ||
    '  Null as BusProject_ID,';
  end
  mSQL = mSQL ||
  '  Sum(DebitBeginning) as DebitBeginning,' ||
  '  Sum(CreditBeginning) as CreditBeginning,' ||
  '  Sum(DebitTurnover) as DebitTurnover,' ||
  '  Sum(CreditTurnover) as CreditTurnover,' ||
  '  Max(ACC.Code) as Code,' ||
  '  Max(ACC.AccountType) as AccountType,';
  if (InGroupDivisions = 'A') then begin 
    mSQL = mSQL ||
    '  Max(DIV.Name) as Division,';
  end else begin  
    mSQL = mSQL ||
    '  Null as Division,';
  end
  if (InGroupBusOrders = 'A') then begin 
    mSQL = mSQL ||
    '  Max(BO.Name) as BusOrder,';
  end else begin  
    mSQL = mSQL ||
    '  Null as BusOrder,';
  end
  if (InGroupBusTransactions = 'A') then begin 
    mSQL = mSQL ||
    '  Max(BT.Name) as BusTransaction,';
  end else begin  
    mSQL = mSQL ||
    '  Null as BusTransaction,';
  end
  if (InGroupBusProjects = 'A') then begin 
    mSQL = mSQL ||
    '  Max(BP.Name) as BusProject ';
  end else begin  
    mSQL = mSQL ||
    '  Null as BusProject ';
  end
  mSQL = mSQL ||
 '  FROM ' || 
 '    ClosingTurnoverDetailed(''' || InAudited || ''', ''' || InPeriod_ID || ''') A  ' ||
 '    LEFT JOIN Accounts ACC ON A.Account_ID = ACC.ID ';
  if (InGroupDivisions = 'A') then begin 
    mSQL = mSQL ||
    'LEFT JOIN Divisions DIV ON A.Division_ID = DIV.ID ';
  end
  if (InGroupBusOrders = 'A') then begin 
    mSQL = mSQL ||
    'LEFT JOIN BusOrders BO ON A.BusOrder_ID = BO.ID ';
  end
  if (InGroupBusTransactions = 'A') then begin 
    mSQL = mSQL ||
    'LEFT JOIN BusTransactions BT ON A.BusTransaction_ID = BT.ID ';
  end
  if (InGroupBusProjects = 'A') then begin 
    mSQL = mSQL ||
    'LEFT JOIN BusProjects BP ON A.BusProject_ID = BP.ID ';
  end
  mSQL = mSQL ||
  '  WHERE ' || 
  '    (ACC.AccountType in (''A'', ''P'', ''C'', ''G'') or ((ACC.AccountType = ''0'') and (ACC.Transferable = ''A'')))';
  mSQL = mSQL ||
  '  GROUP BY ' ||  
  '    A.Account_ID';
  if (InGroupDivisions = 'A') then begin 
    mSQL = mSQL ||
    ', A.Division_ID';
  end
  if (InGroupBusOrders = 'A') then begin 
    mSQL = mSQL ||
    ', A.BusOrder_ID';
  end
  if (InGroupBusTransactions = 'A') then begin 
    mSQL = mSQL ||
    ', A.BusTransaction_ID';
  end
  if (InGroupBusProjects = 'A') then begin 
    mSQL = mSQL ||
    ', A.BusProject_ID';
  end
  --vykonani dynamicky sestaveneho mSQL
  for execute statement mSQL
  into :Account_ID, :Division_ID, 
       :BusOrder_ID, :BusTransaction_ID, :BusProject_ID,
       :DebitBeginning, :CreditBeginning,
       :DebitTurnover, :CreditTurnover,
       :Code, :AccountType, :Division,  
       :BusOrder, :BusTransaction, :BusProject
  do begin
    suspend;
  end  
 end

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