Procedura-CashBookDetailedBegTurnovers

Popis:
Vrátí data součtovaná za počáteční obraty.

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
LocalAmountNumeric(15, 2)
DateFrom$DateFloat(0, 0)
DateTo$DateFloat(0, 0)
Period_IDChar(10)
CashDesk_IDChar(10)

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
GetFirstPeriodForCashVrací první období pro pokladnu dle zadaných datumůProcedures

Tělo:

BEGIN
  LocalAmount = 0;
  Period_ID = NULL;
  DateFrom$Date = 0;
  DateTo$Date = 0;
  CashDesk_ID = ACashDesk_ID;
  /* Získání "vhodneho" obdobi podle datumu a pokladny */
  SELECT Period_ID
    FROM CashDesks2 A join Periods P ON P.ID = A.Period_ID
    WHERE
      (A.Parent_ID = :ACashDesk_ID) AND
      (P.ID = (SELECT out_period_id FROM GetFirstPeriodForCash(:ADocDateFrom, :ADocDateTo, :ACashDesk_ID)) )
    INTO :Period_ID;
  IF (Period_ID IS NOT NULL) THEN BEGIN
    /* Zjisteni zacatku z obdobi */
    SELECT DateFrom$Date FROM Periods WHERE ID = :Period_ID INTO :mPeriodDateFrom;
    /* datumy pro zobrazovani */
    DateFrom$Date = mPeriodDateFrom;
    DateTo$Date = ADocDateFrom -1;
    /* datumy pro omezovani */
    mDateFrom = mPeriodDateFrom;
    mDateTo = ADocDateFrom;
    IF (mDateTo > mPeriodDateFrom) THEN BEGIN
      /* Datumove omezeni souhlasi, ma cenu ziskavat soucty z dokladu... */
      /* Ziskani zauctovani... */
      FOR
        SELECT AccDocQueue_ID, Period_ID, OrdNumber, AccDate$Date
          FROM CashBookDetailedRawAcc(:mDateFrom, :mDateTo, :AAccounted) A
      INTO
        :mAccDocQueue_ID, :mPeriod_ID, :mOrdNumber, :mAccDate
      DO BEGIN
        /* Mame informaci o zauctovani, z te se daji dohledat pokladni doklady... */
        FOR
          SELECT CashDoc_ID, CashDocRelDef, LocalRoundingAmount
            FROM CashBookDetailedRawCash(:mAccDocQueue_ID, :mPeriod_ID, :mOrdNumber, :mAccDate,
              :ACashDesk_ID, :mDateFrom, :mDateTo, :AFirmsSel_ID, :ADocQueuesSel_ID,
              :ACreatedBySel_ID, :ACorrectedBySel_ID)
        INTO
          :mCashDoc_ID, :mCashDocRelDef, :mLocalRoundingAmount
        DO BEGIN
          IF (mLocalRoundingAmount IS NULL) THEN
            mLocalRoundingAmount = 0;
          FOR
            SELECT SUM(LocalAmount)
              FROM CashBookDetailedRows(:mCashDoc_ID, :mCashDocRelDef, :mLocalRoundingAmount,
                :ADivisionsSel_ID, :ADivisionsWithChildren, :ABusOrdersSel_ID,
                :ABusOrdersWithChildren, :ABusTransactionsSel_ID, :ABusTransactionsWithChildren,
                :ABusProjectsSel_ID, :ABusProjectsWithChildren)
            INTO
              :mLocalAmount
          DO BEGIN
            IF (mLocalAmount IS NOT NULL) THEN
              LocalAmount = LocalAmount + mLocalAmount;
          END
        END
      END
    END
  END
  ELSE BEGIN
    Period_ID = '##########';
  END
  SUSPEND;
END;

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