Procedura-CashBookDetailedAcc

Parametry:

NázevPopisDatový typ
ACashDesk_IDChar(10)
ADocDateFromFloat(0, 0)
ADocDateToFloat(0, 0)
AFirmsSel_IDChar(10)
ADocQueuesSel_IDChar(10)
ACreatedBySel_IDChar(10)
ACorrectedBySel_IDChar(10)
AAccountedChar(1)
ADivisionsSel_IDChar(10)
ADivisionsWithChildrenChar(1)
ABusOrdersSel_IDChar(10)
ABusOrdersWithChildrenChar(1)
ABusTransactionsSel_IDChar(10)
ABusTransactionsWithChildrenChar(1)
ABusProjectsSel_IDChar(10)
ABusProjectsWithChildrenChar(1)

Návratové hodnoty:

NázevPopisDatový typ
AccDocQueue_IDChar(10)
Period_IDChar(10)
OrdNumberInteger
AccDate$DateFloat(0, 0)
CashDesk_IDChar(10)
DisplayNameVarChar(24)

Závislosti:

NázevPopisTřída
CashBookDetailedRawAccProcedura vrátí identifikace záznamů v deníku. K takovémuto zaúčtování existuje alespoň jeden pokladní doklad, který s ohledem na předané podmínky produkuje na výstup alespoň jeden DPH řádek.Procedures
CashBookDetailedRawCashProcedura vrátí ke konkrétnímu zaúčtování do něj spadající pokladní doklady.Procedures
CashBookDetailedRowsProcedures

Tělo:

BEGIN
  CashDesk_ID = ACashDesk_ID;
  mDateFrom = ADocDateFrom;
  mDateTo = ADocDateTo;
  /* Datumove omezeni souhlasi, ma cenu ziskavat soucty z dokladu... */
  /* Ziskani zauctovani... */
  FOR
    SELECT AccDocQueue_ID, Period_ID, OrdNumber, AccDate$Date, DisplayName
      FROM CashBookDetailedRawAcc(:mDateFrom, :mDateTo, :AAccounted) A
    ORDER BY
      A.OrderByKind, A.AccDate$Date, A.AccDocQueue_ID, A.OrdNumber
  INTO
    :AccDocQueue_ID, :Period_ID, :OrdNumber, :AccDate$Date, :DisplayName
  DO BEGIN
    /* Mame informaci o zauctovani, z te se daji dohledat pokladni doklady... */
    mSuspend = 0;
    FOR
      SELECT CashDoc_ID, CashDocRelDef, LocalRoundingAmount
        FROM CashBookDetailedRawCash(:AccDocQueue_ID, :Period_ID, :OrdNumber, :AccDate$Date,
          :ACashDesk_ID, :mDateFrom, :mDateTo, :AFirmsSel_ID, :ADocQueuesSel_ID,
          :ACreatedBySel_ID, :ACorrectedBySel_ID)
    INTO
      :mCashDoc_ID, :mCashDocRelDef, :mLocalRoundingAmount
    DO BEGIN
      IF (mSuspend = 0) THEN BEGIN
        IF (mLocalRoundingAmount <> CAST(0.00 AS NUMERIC(15, 2))) THEN BEGIN
          mSuspend = 1;
        END
        ELSE BEGIN
          SELECT COUNT(*)
            FROM CashBookDetailedRows(:mCashDoc_ID, :mCashDocRelDef, :mLocalRoundingAmount,
              :ADivisionsSel_ID, :ADivisionsWithChildren, :ABusOrdersSel_ID,
              :ABusOrdersWithChildren, :ABusTransactionsSel_ID, :ABusTransactionsWithChildren,
              :ABusProjectsSel_ID, :ABusProjectsWithChildren)
          INTO
            :mCount;
          IF (mCount <> 0) THEN
            mSuspend = 1;
        END
      END
    END
    IF (mSuspend > 0) THEN
      SUSPEND;
  END
END;

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