Procedura-GetRowsForDocumentPOS

Parametry:

NázevPopisDatový typ
ADOCUMENTTYPEChar(2)
ADOCUMENT_IDChar(10)
APOS_IT_IDChar(10)
ADateFrom$DATEFloat(0, 0)

Návratové hodnoty:

NázevPopisDatový typ
TYPE_IDChar(10)
AMOUNTNumeric(15, 2)
VATNumeric(15, 2)
POSINDEXInteger

Tělo:

begin
  IF (ADocumentType = 'CP') THEN 
  BEGIN
    IF (ADateFrom$DATE < 42736) THEN
    BEGIN
      FOR 
        SELECT PT.PaymentKind, (B.LOCALAMOUNT - B.LOCALVATAMOUNT), B.LOCALVATAMOUNT
        FROM POSCASHPAID B
        JOIN PaymentTypes PT ON PT.ID = B.PaymentType_ID
        WHERE B.ID = :ADocument_ID
        UNION ALL
        SELECT PT.PaymentKind, A.LOCALROUNDINGAMOUNT, CAST(0 AS NUMERIC(15,2))
        FROM POSCASHPAID A
        JOIN PaymentTypes PT ON PT.ID = A.PaymentType_ID
        WHERE (A.LOCALROUNDINGAMOUNT <> 0) AND (A.ID = :ADOCUMENT_ID)
        INTO :mPaymentKind, :Amount, :mVATAmount
      DO BEGIN
        IF (mPaymentKind = 1) THEN BEGIN /* typ 1 je platba v hotovosti */
          Type_ID = 'XX'; /* aby se tato situace rozpoznala */
        END ELSE BEGIN
          VAT = mVATAmount;
          Type_ID = APOS_IT_ID;
        END
        SUSPEND;
      END
    END
    ELSE
    BEGIN
      FOR 
        SELECT PT.PaymentKind, B.LOCALAMOUNT, CAST(0 AS NUMERIC(15,2))
        FROM POSCASHPAID B
        JOIN PaymentTypes PT ON PT.ID = B.PaymentType_ID
        WHERE B.ID = :ADocument_ID
        UNION ALL
        SELECT PT.PaymentKind, A.LOCALROUNDINGAMOUNT, CAST(0 AS NUMERIC(15,2))
        FROM POSCASHPAID A
        JOIN PaymentTypes PT ON PT.ID = A.PaymentType_ID
        WHERE (A.LOCALROUNDINGAMOUNT <> 0) AND (A.ID = :ADOCUMENT_ID)
        INTO :mPaymentKind, :Amount, :mVATAmount
      DO BEGIN
        Type_ID = 'XX'; /* prubezna polozka */
        SUSPEND;
      END
    END
  END 
  ELSE 
  IF (ADocumentType = 'CR') THEN 
  BEGIN
    SELECT B.LocalAmount
    FROM POSCashReceived B
    WHERE B.ID = :ADocument_ID
    UNION ALL
    SELECT A.LOCALROUNDINGAMOUNT
    FROM POSCashReceived A
    WHERE (A.LOCALROUNDINGAMOUNT <> 0) AND (A.ID = :ADOCUMENT_ID)
    INTO :Amount;
    SUSPEND;
  END
end

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