Procedura-RepAccStatementsPKP1

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
    /* Pocatky z tabulky pocatku pro ucty 431, 751 a 791  */
    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') ) AND
      ( ( AC.code like '431%' ) or (AC.code like '751%') or (AC.code like '791%') )
    GROUP BY
      A.Account_ID, A.Division_ID
    UNION ALL
    /* Pocatky pocitane pomoci obratu za vsechny data zpetne - kvuli pocatkum za jednotlive firmy  */
    SELECT
      A.Account_ID,
      A.Division_ID,
      0.00,
      0.00,
      SUM(A.Amount * A.DebitSide),
      SUM(A.Amount * A.CreditSide),
      A.Firm_ID
    FROM
      LimitGeneralLedger('', 0, :InAccPeriodDateFrom,
        :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') ) AND
      NOT ( (AC.Code like '5%') OR (AC.Code like '6%')  OR
            (AC.Code like '751%') OR (AC.Code like '791%')  OR (AC.Code like '431%') )
    GROUP BY
      A.Account_ID, A.Division_ID, A.Firm_ID
    UNION ALL
    /* Dopocet pocatku, pokud by nekdo vytvoril vykaz pro obdobi mimo fiskal  */
    SELECT
      A.Account_ID,
      A.Division_ID,
      0.00,
      0.00,
      SUM(A.Amount * A.DebitSide),
      SUM(A.Amount * A.CreditSide),
      A.Firm_ID
    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, A.Firm_ID
    UNION ALL
    /* Vypocet obratu uctu  */
    SELECT
      A.Account_ID,
      A.Division_ID,
      SUM(A.Amount * A.DebitSide),
      SUM(A.Amount * A.CreditSide),
      0.00,
      0.00,
      A.Firm_ID
    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, A.Firm_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:17