Procedura-GetOutcomeContextCashRec

Parametry:

NázevPopisDatový typ
ACashReceived_IDChar(10)

Návratové hodnoty:

NázevPopisDatový typ
CostAmountNumeric(15, 2)
GainAmountNumeric(15, 2)
HeaderDocTypeVarChar(2)
Header_IDChar(10)
HeadDispNameVarChar(24)
DocDate$DATEFloat(0, 0)

Tělo:

BEGIN
  FOR
    SELECT CR2.ID, CR2.ProvideRow_ID, CR2.Quantity, CR2.LocalTAmountWithoutVAT, CR2.Parent_ID,
     (select DQ.DocumentType from DocQueues DQ where
       DQ.ID in (select CR.DocQueue_ID from CashReceived CR where CR2.Parent_ID = CR.ID)),
     (select DQ.Code from DocQueues DQ where
       DQ.ID in (select CR.DocQueue_ID from CashReceived CR where CR2.Parent_ID = CR.ID)),
      (select CR.OrdNumber from CashReceived CR where CR2.Parent_ID = CR.ID),
      (select P.Code from Periods P where
       P.ID in (select CR.Period_ID from CashReceived CR where CR2.Parent_ID = CR.ID)),
      (select CR.DocDate$DATE from CashReceived CR where CR2.Parent_ID = CR.ID)
     FROM CashReceived2 CR2 WHERE
      CR2.Parent_ID = :ACashReceived_ID AND CR2.RowType = 3
    INTO :CR2_ID, :CR2_ProvideRow, :CR2_Quantity, :GainAmount, :Header_ID,
       :HeaderDocType, :DocQueueCode, :OrdNumber, :PeriodCode, :DocDate$DATE
    DO BEGIN
      CostAmount = 0;
      HeadDispName = DocQueueCode || '-' || OrdNumber || '/' || PeriodCode;
      SUSPEND;
      /* Dodaci listy */
      FOR
        SELECT (DL.LocalTAmount/DL.Quantity)*:CR2_Quantity, DL.Parent_ID,
          (select X.DocumentType from StoreDocuments X where X.ID = DL.Parent_ID),
          (select DQ.Code from DocQueues DQ where
            DQ.ID in (select SD.DocQueue_ID from StoreDocuments SD where DL.Parent_ID = SD.ID)),
          (select SD.OrdNumber from StoreDocuments SD where DL.Parent_ID = SD.ID),
          (select P.Code from Periods P where
            P.ID in (select SD.Period_ID from StoreDocuments SD where DL.Parent_ID = SD.ID)),
          (select SD.DocDate$DATE from StoreDocuments SD where DL.Parent_ID = SD.ID)
          FROM StoreDocuments2 DL WHERE
            DL.ID = :CR2_Providerow and DL.RowType = 3
          INTO :CostAmount, :Header_ID, :HeaderDocType, :DocQueueCode, :OrdNumber,
               :PeriodCode, :DocDate$DATE
      DO BEGIN
        GainAmount = 0;
        HeadDispName = DocQueueCode || '-' || OrdNumber || '/' || PeriodCode;
        SUSPEND;
      END
      FOR
        /* Vraceni pokladnich prijmu */
        SELECT RCR.Quantity, RCR.ProvideRow_ID, RCR.LocalTAmountWithoutVAT, RCR.Parent_ID,
         (select DQ.DocumentType from DocQueues DQ where
           DQ.ID in (select RC.DocQueue_ID from RefundedCashReceived RC where RCR.Parent_ID = RC.ID)),
         (select DQ.Code from DocQueues DQ where
           DQ.ID in (select RC.DocQueue_ID from RefundedCashReceived RC where RCR.Parent_ID = RC.ID)),
         (select RC.OrdNumber from RefundedCashReceived RC where RCR.Parent_ID = RC.ID),
         (select P.Code from Periods P where
           P.ID in (select RC.Period_ID from RefundedCashReceived RC where RCR.Parent_ID = RC.ID)),
         (select RC.DocDate$DATE from RefundedCashReceived RC where RCR.Parent_ID = RC.ID)
          FROM RefundedCashReceived2 RCR where
            RCR.RSource_ID = :CR2_ID and RCR.RowType = 3
          INTO :RCR_Quantity, :RCR_ProvideRow, :GainAmount, :Header_ID, :HeaderDocType,
               :DocQueueCode, :OrdNumber, :PeriodCode, :DocDate$DATE
      DO BEGIN
        CostAmount = 0;
        GainAmount = (GainAmount * (-1));
        HeadDispName = DocQueueCode || '-' || OrdNumber || '/' || PeriodCode;
        SUSPEND;
        FOR
          /* Vratky */
          SELECT (VR.LocalTAmount/VR.Quantity)*:RCR_Quantity, VR.Parent_ID,
            (select X.DocumentType from StoreDocuments X where X.ID = VR.Parent_ID),
            (select DQ.Code from DocQueues DQ where
              DQ.ID in (select SD.DocQueue_ID from StoreDocuments SD where VR.Parent_ID = SD.ID)),
            (select SD.OrdNumber from StoreDocuments SD where VR.Parent_ID = SD.ID),
            (select P.Code from Periods P where
              P.ID in (select SD.Period_ID from StoreDocuments SD where VR.Parent_ID = SD.ID)),
            (select SD.DocDate$DATE from StoreDocuments SD where VR.Parent_ID = SD.ID)
            FROM StoreDocuments2 VR WHERE
              VR.ID = :RCR_ProvideRow and VR.RowType = 3
            INTO :CostAmount, :Header_ID, :HeaderDocType, :DocQueueCode, :OrdNumber,
                 :PeriodCode, :DocDate$DATE
        DO BEGIN
          GainAmount = 0;
          CostAmount = (CostAmount * (-1));
          HeadDispName = DocQueueCode || '-' || OrdNumber || '/' || PeriodCode;
          SUSPEND;
        END
      END
    END
END;

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