Procedura-GeneralLedgerGroupsBOC1

Popis:
Poskytuje data proceduře GeneralLedgerGroupsBOC

Parametry:

NázevPopisDatový typ
AccDateFromFloat(0, 0)
AccDateToFloat(0, 0)
AccountCodeVarChar(10)
AccountSelIDChar(10)
WholeGroupChar(1)
AccGroup_IDChar(10)

Návratové hodnoty:

NázevPopisDatový typ
IDChar(10)

Tělo:

BEGIN
  /* celá skupina bez ohledu */
  IF (WholeGroup = '1') THEN BEGIN
    FOR
      SELECT D.ID
      FROM GeneralLedger D
      WHERE
        Coalesce(D.DebitBusOrder_ID, '0000000000') = :AccGroup_ID AND
        D.IsRequest = 'N'
      UNION ALL
      SELECT D.ID
      FROM GeneralLedger D
      WHERE
        (Coalesce(D.CreditBusOrder_id, '0000000000') <> Coalesce(D.DebitBusorder_ID, '0000000000')) and
        Coalesce(D.CreditBusOrder_ID, '0000000000') = :AccGroup_ID AND
        D.IsRequest = 'N'
      INTO :ID
    DO
      SUSPEND;
  END
  /* celá skupina s ohledem pouze na datum účtování a období */
  IF (WholeGroup = '2') THEN BEGIN
    FOR
      SELECT D.ID
      FROM GeneralLedger D
      WHERE
        Coalesce(D.DebitBusOrder_ID, '0000000000') = :AccGroup_ID AND
        D.IsRequest = 'N' AND
        (D.AccDate$DATE+0 >= :AccDateFrom AND D.AccDate$DATE+0 < :AccDateTo)  /*kvuli rychlosti*/
      UNION ALL
      SELECT D.ID
      FROM GeneralLedger D
      WHERE
        (Coalesce(D.CreditBusOrder_id, '0000000000') <> Coalesce(D.DebitBusorder_ID, '0000000000')) and
        Coalesce(D.CreditBusOrder_ID, '0000000000') = :AccGroup_ID AND
        D.IsRequest = 'N' AND
        (D.AccDate$DATE+0 >= :AccDateFrom AND D.AccDate$DATE+0 < :AccDateTo)  /*kvuli rychlosti*/
      INTO :ID
    DO
      SUSPEND;
  END
  /* celá skupina s ohledem na všechny podmínky */
  IF (WholeGroup = '3') THEN BEGIN
    FOR
      SELECT D.ID
      FROM
        GeneralLedger D
        JOIN Accounts DA ON DA.ID = D.DebitAccount_ID
        JOIN Accounts CA ON CA.ID = D.CreditAccount_ID
      WHERE
        Coalesce(D.DebitBusOrder_ID, '0000000000') = :AccGroup_ID AND
        D.IsRequest = 'N' AND
        (D.AccDate$DATE+0 >= :AccDateFrom AND D.AccDate$DATE+0 < :AccDateTo) AND  /*kvuli rychlosti*/
        ( (DA.Code like :AccountCode ESCAPE '~') OR
          (CA.Code like :AccountCode ESCAPE '~') ) AND
        ( :AccountSelID = '' OR
           D.CreditAccount_ID in (select OBJ_ID from SELDAT where SEL_ID=:AccountSelID) or
           D.DebitAccount_ID in (select OBJ_ID from SELDAT where SEL_ID=:AccountSelID) )
      UNION ALL
      SELECT D.ID
      FROM
        GeneralLedger D
        JOIN Accounts DA ON DA.ID = D.DebitAccount_ID
        JOIN Accounts CA ON CA.ID = D.CreditAccount_ID
      WHERE
        (Coalesce(D.CreditBusOrder_id, '0000000000') <> Coalesce(D.DebitBusorder_ID, '0000000000')) and
        Coalesce(D.CreditBusOrder_ID, '0000000000') = :AccGroup_ID AND
        D.IsRequest = 'N' AND
        (D.AccDate$DATE+0 >= :AccDateFrom AND D.AccDate$DATE+0 < :AccDateTo) AND  /*kvuli rychlosti*/
        ( (DA.Code like :AccountCode ESCAPE '~') OR
          (CA.Code like :AccountCode ESCAPE '~') ) AND
        ( :AccountSelID = '' OR
           D.CreditAccount_ID in (select OBJ_ID from SELDAT where SEL_ID=:AccountSelID) or
           D.DebitAccount_ID in (select OBJ_ID from SELDAT where SEL_ID=:AccountSelID) )

      INTO :ID
    DO
      SUSPEND;
  END
END;

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