Procedura-GetDocsForBankBookReport

Parametry:

NázevPopisDatový typ
IN_FIRST_PERIOD_IDChar(10)
IN_DATE_FROM$DATEFloat(0, 0)
IN_DATE_TO$DATEFloat(0, 0)
IN_BANKACCOUNT_IDChar(10)
IN_FIRM_SEL_IDChar(10)
IN_DOCQUEUE_SEL_IDChar(10)
InDivisionSelIDChar(10)
InBusOrderSelIDChar(10)
InBusTransactionSelIDChar(10)
InBusProjectSelIDChar(10)
IN_CREATEDBY_SEL_IDChar(10)
IN_CORRECTEDBY_SEL_IDChar(10)
IN_ACCOUNTINGChar(1)
InDivisionsWithChildsChar(1)
InBusOrdersWithChildsChar(1)
InBusTransactionsWithChildsChar(1)
InBusProjectsWithChildsChar(1)

Návratové hodnoty:

NázevPopisDatový typ
OUT_DOC_DATE$DATEFloat(0, 0)
OUT_EXTERNALNUMBERVarChar(30)
OUT_DISPLAYNAMEVarChar(24)
OUT_DOCUMENT_IDChar(10)
OUT_DOCUMENTTYPEChar(2)
OUT_FIRST_PERIOD_IDChar(10)
OUT_ORDER_KINDInteger

Závislosti:

NázevPopisTřída
GetDocsForBankBookReportRowProcedures
LocateBookEntryVrací zápisy z účetního deníku pro doklad a vazbuProcedures

Tělo:

BEGIN
/* Procedura typu SELECT */
/* kontrola vstupnich promennych */
  IN_ACCOUNTING = COALESCE (:IN_ACCOUNTING, '.');
  INDIVISIONSWITHCHILDS = COALESCE (:INDIVISIONSWITHCHILDS, 'N');
  INBUSORDERSWITHCHILDS = COALESCE (:INBUSORDERSWITHCHILDS, 'N');
  INBUSTRANSACTIONSWITHCHILDS = COALESCE (:INBUSTRANSACTIONSWITHCHILDS, 'N');
  INBUSPROJECTSWITHCHILDS = COALESCE (:INBUSPROJECTSWITHCHILDS, 'N');
/* vymezení easového intervalu */
  SELECT datefrom$date FROM periods WHERE id = :IN_FIRST_PERIOD_ID INTO mDATE_FROM$DATE;
  IF (mDATE_FROM$DATE < IN_DATE_FROM$DATE) THEN
    mDATE_FROM$DATE = IN_DATE_FROM$DATE;
  mDATE_TO$DATE = IN_DATE_TO$DATE;
/* bankovni vypisy */
  OUT_ORDER_KIND = 1;
  OUT_DOCUMENTTYPE = '09';
  OUT_FIRST_PERIOD_ID = IN_FIRST_PERIOD_ID;
  FOR
    SELECT
      A.id, A.docdate$date, A.externalnumber,
      DQ.Code || '-' || A.OrdNumber || '/' || P.Code
    FROM
      bankstatements A
      JOIN Periods P ON P.ID = A.Period_ID
      JOIN DocQueues DQ ON DQ.ID = A.DocQueue_ID
    WHERE
      (A.bankaccount_id = :IN_BANKACCOUNT_ID) AND
      -- PETSAF 2008-02-29: datum se kontroluje az na polozkach vypisu
      --( (:mDATE_FROM$DATE <= A.docdate$date) AND (A.docdate$date < :mDATE_TO$DATE) ) AND
      ( (COALESCE (:IN_DOCQUEUE_SEL_ID, '') = '') OR
        (A.docqueue_id IN (SELECT obj_id FROM SELDAT WHERE sel_id = :IN_DOCQUEUE_SEL_ID)) ) AND
      ( (COALESCE (:IN_CREATEDBY_SEL_ID, '') = '') OR
        (A.createdby_id IN (SELECT obj_id FROM SELDAT WHERE sel_id = :IN_CREATEDBY_SEL_ID)) ) AND
      ( (COALESCE (:IN_CORRECTEDBY_SEL_ID, '') = '') OR
        (A.correctedby_id IN (SELECT obj_id FROM SELDAT WHERE sel_id = :IN_CORRECTEDBY_SEL_ID)) )
    INTO
      OUT_DOCUMENT_ID, OUT_DOC_DATE$DATE, OUT_EXTERNALNUMBER, OUT_DISPLAYNAME
  DO BEGIN
    SELECT COUNT(*)
    FROM GetDocsForBankBookReportRow(:IN_FIRST_PERIOD_ID, :IN_DATE_FROM$DATE,
      :IN_DATE_TO$DATE, :OUT_DOCUMENT_ID, :OUT_DOCUMENTTYPE, :IN_FIRM_SEL_ID,
      :IN_DOCQUEUE_SEL_ID, :InDivisionSelID, :InBusOrderSelID,
      :InBusTransactionSelID, :InBusProjectSelID, :IN_CREATEDBY_SEL_ID, :IN_CORRECTEDBY_SEL_ID,
      :IN_ACCOUNTING, :InDivisionsWithChilds, :InBusOrdersWithChilds, :InBusTransactionsWithChilds, 
      :InBusProjectsWithChilds)
    INTO mROW_COUNT;
    IF (mROW_COUNT > 0) THEN
      SUSPEND;
  END
  /* kurzovy rozdil */
  OUT_ORDER_KIND = 2;
  OUT_DOCUMENTTYPE = '16';
  mREL_DEF = 17;
  FOR
    SELECT
      A.id, A.docdate$date,
      DQ.Code || '-' || A.OrdNumber || '/' || P.Code
    FROM
      bankexchangedifferences A
      JOIN Periods P ON P.ID = A.Period_ID
      JOIN DocQueues DQ ON DQ.ID = A.DocQueue_ID
    WHERE
      (A.bankaccount_id = :IN_BANKACCOUNT_ID)  AND   
      ( (:mDATE_FROM$DATE <= A.docdate$date) AND (A.docdate$date < :mDATE_TO$DATE) ) AND
      ( (COALESCE (:IN_DOCQUEUE_SEL_ID, '') = '') OR
        (A.docqueue_id IN (SELECT obj_id FROM SELDAT WHERE sel_id = :IN_DOCQUEUE_SEL_ID)) ) AND
      (COALESCE (: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
      (COALESCE (:InBusOrderSelID, '') = '' OR
        A.BusOrder_ID IN
        (
          SELECT Bx.ID FROM BusOrders Bx WHERE Bx.Hidden = 'N' AND
            ( (Bx.ID IN (SELECT OBJ_ID FROM SELDAT WHERE SEL_ID = :InBusOrderSelID)) OR
              ((:InBusOrdersWithChilds IN ('1', 'A')) AND (Bx.ID IN (SELECT X.ID FROM Sys$BusOrders2 X WHERE X.Superior_ID IN (SELECT OBJ_ID FROM SELDAT WHERE SEL_ID = :InBusOrderSelID)))))
        )
      ) AND
      (COALESCE (:InBusTransactionSelID, '') = '' OR
        A.BusTransaction_ID IN
        (
          SELECT Bx.ID FROM BusTransactions Bx WHERE Bx.Hidden = 'N' AND
            ( (Bx.ID IN (SELECT OBJ_ID FROM SELDAT WHERE SEL_ID = :InBusTransactionSelID)) OR
              ((:InBusTransactionsWithChilds IN ('1', 'A')) AND (Bx.ID IN (SELECT ID FROM Sys$BusTransactions2 WHERE Superior_ID IN (SELECT OBJ_ID FROM SELDAT WHERE SEL_ID = :InBusTransactionSelID)))))
        )
      ) AND
      (COALESCE (:InBusProjectSelID, '') = '' OR
        A.BusProject_ID IN
        (
          SELECT Bx.ID FROM BusProjects Bx WHERE Bx.Hidden = 'N' AND
            ( (Bx.ID IN (SELECT OBJ_ID FROM SELDAT WHERE SEL_ID = :InBusProjectSelID)) OR
              ((:InBusProjectsWithChilds IN ('1', 'A')) AND (Bx.ID IN (SELECT X.ID FROM Sys$BusProjects2 X WHERE X.Superior_ID IN (SELECT OBJ_ID FROM SELDAT WHERE SEL_ID = :InBusProjectSelID)))))
        )
      ) AND
      ( (COALESCE (:IN_CREATEDBY_SEL_ID, '') = '') OR
        (A.createdby_id IN (SELECT obj_id FROM SELDAT WHERE sel_id = :IN_CREATEDBY_SEL_ID)) ) AND
      ( (COALESCE (:IN_CORRECTEDBY_SEL_ID, '') = '') OR
        (A.correctedby_id IN (SELECT obj_id FROM SELDAT WHERE sel_id = :IN_CORRECTEDBY_SEL_ID)) ) AND
      ( (:IN_ACCOUNTING = '.') OR
        ((:IN_ACCOUNTING = '<') AND (0 < (SELECT COUNT(*) FROM locatebookentry(:mREL_DEF, A.id))) ) OR
        ((:IN_ACCOUNTING = '=') AND (0 = (SELECT COUNT(*) FROM locatebookentry(:mREL_DEF, A.id))) ) )
    INTO
      OUT_DOCUMENT_ID, OUT_DOC_DATE$DATE, OUT_DISPLAYNAME
  DO BEGIN
    OUT_EXTERNALNUMBER = '';
    SUSPEND;
  END
END;

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