Procedura-RepAccStatements1

Parametry:

NázevPopisDatový typ
InAuditedChar(1)
InPeriod_IDChar(10)
InAccPeriodDateFromFloat(0, 0)
InAccDateFromFloat(0, 0)
InAccDateToFloat(0, 0)
InDivisionSelIDChar(10)
InBusOrderSelIDChar(10)
InBusOrdersWithChildsChar(1)
InBusTransactionSelIDChar(10)
InBusTransactionsWithChildsChar(1)
InBusProjectSelIDChar(10)
InBusProjectsWithChildsChar(1)
InFirmSelIDChar(10)
InAllowRequestChar(1)
InDivisionsWithChildsChar(1)

Návratové hodnoty:

NázevPopisDatový typ
Account_IDChar(10)
Division_IDChar(10)
DebitBeginningNumeric(15, 2)
CreditBeginningNumeric(15, 2)
DebitTurnoverNumeric(15, 2)
CreditTurnoverNumeric(15, 2)
Firm_IDChar(10)

Závislosti:

NázevPopisTřída
LimitGeneralLedgerProcedures

Tělo:

BEGIN
  DebitBeginning = 0.00;
  CreditBeginning = 0.00;
  DebitTurnover = 0.00;
  CreditTurnover = 0.00;
  FOR
    SELECT
      A.Account_ID,
      A.Division_ID,
      0.00,
      0.00,
      SUM(A.DebitAmount),
      SUM(A.CreditAmount),
      NULL
    FROM
      AccountBeginnings A
      join Accounts AC ON A.Account_ID = AC.ID
    WHERE
      A.Period_ID = :InPeriod_ID AND
      ( (:InDivisionSelID = '') OR
        (A.Division_ID IN
          (
            SELECT Bx.ID FROM Divisions Bx WHERE Bx.Hidden = 'N' AND
              ( (Bx.ID in (select OBJ_ID from SELDAT where SEL_ID = :InDivisionSelID)) OR
                ((:InDivisionsWithChilds in ('1', 'A')) and (Bx.ID in (select ID from SYS$Divisions2 where Superior_ID in (select OBJ_ID from SELDAT where SEL_ID = :InDivisionSelID)))))
          )
        )
      ) AND
      ( (:InAllowRequest = 'A') OR
        (:InAllowRequest = 'N' AND AC.IsIncomplete = 'N') )
    GROUP BY
      A.Account_ID, A.Division_ID
    UNION ALL
    SELECT
      A.Account_ID,
      A.Division_ID,
      0.00,
      0.00,
      SUM(A.Amount * A.DebitSide),
      SUM(A.Amount * A.CreditSide),
      NULL
    FROM
      LimitGeneralLedger('', :InAccPeriodDateFrom, :InAccDateFrom,
        :InAllowRequest, :InAudited, :InDivisionSelID, :InDivisionsWithChilds,
        :InBusOrderSelID, :InBusOrdersWithChilds, :InBusTransactionSelID,
        :InBusTransactionsWithChilds, :InBusProjectSelID, :InBusProjectsWithChilds, :InFirmSelID, '%', '%') A
      LEFT join Accounts AC ON A.Account_ID = AC.ID
    WHERE
      ( (:InAllowRequest = 'A') OR
        (:InAllowRequest = 'N' AND AC.IsIncomplete = 'N') )
    GROUP BY
      A.Account_ID, A.Division_ID
    UNION ALL
    SELECT
      A.Account_ID,
      A.Division_ID,
      SUM(A.Amount * A.DebitSide),
      SUM(A.Amount * A.CreditSide),
      0.00,
      0.00,
      NULL
    FROM
      LimitGeneralLedger('', :InAccDateFrom, :InAccDateTo,
        :InAllowRequest, :InAudited, :InDivisionSelID, :InDivisionsWithChilds,
        :InBusOrderSelID, :InBusOrdersWithChilds, :InBusTransactionSelID,
        :InBusTransactionsWithChilds, :InBusProjectSelID, :InBusProjectsWithChilds, :InFirmSelID, '%', '%') A
      LEFT join Accounts AC ON A.Account_ID = AC.ID
    WHERE
      ( (:InAllowRequest = 'A') OR
        (:InAllowRequest = 'N' AND AC.IsIncomplete = 'N') )
    GROUP BY
      A.Account_ID, A.Division_ID 
    INTO
      :Account_ID, :Division_ID, :DebitTurnover, :CreditTurnover, :DebitBeginning, 
      :CreditBeginning, :Firm_ID
  DO BEGIN
    IF (DebitTurnover IS NULL) THEN
      DebitTurnover = 0.00;
    IF (CreditTurnover IS NULL) THEN
      CreditTurnover = 0.00;
    IF (DebitBeginning IS NULL) THEN
      DebitBeginning = 0.00;
    IF (CreditBeginning IS NULL) THEN
      CreditBeginning = 0.00;
    SUSPEND;
  END
END;

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