Procedura-PaymentsForDocumentOnlyERD

Popis:
Vrací souhrn kurzových rozdílů pro placený dokument

Parametry:

NázevPopisDatový typ
APDocumentTypeChar(2)
APDocument_IDChar(10)
AEndDateFloat(0, 0)

Návratové hodnoty:

NázevPopisDatový typ
LocalPAmountNumeric(15, 3)

Závislosti:

NázevPopisTřída
PaymentsForDocument_VIEWZachycuje platební doklady, kterými byly placeny doklady PDocumentType, PDocument_ID. Vzniklo vyjmutím obsahu všech selectů z procedury PaymentsForDocuments. Lze pomocí něho lépe filtrovat, protože procedura PaymentsForDocuments navíc sčítala zaplacené částky z tabulky Payments.Views

Tělo:

BEGIN
  --veskere selecty se presunuly do view, ze ktereho se nove taha (view lze mnohem lepe pouzit pro filtrovani)
  FOR
    SELECT
      LocalAmount, Profit
    FROM
      PaymentsForDocument_VIEW A
    WHERE
      A.PDocumentType = :APDocumentType AND A.PDocument_ID = :APDocument_ID
      AND (A.DocumentType IN ('13', '14')) 
      AND ( (A.DocDate$DATE < :AEndDate + 1) OR (:AEndDate = 0) )
    INTO
      LocalAmount, Profit
  DO BEGIN
    LocalPAmount = 0;
    IF (:Profit = 'A') THEN
      LocalPAmount = LocalAmount * -1;
    ELSE
      LocalPAmount = LocalAmount;
    IF (APDocumentType IN ('02', '04', '11', '12', '60', '64', '63')) THEN
      LocalPAmount = LocalPAmount * -1;
    SUSPEND;
  END
  /* V pripade ze hledame do Data nemuzeme vracet NULL sloupce kvuli reportum */
  IF ( (AEndDate <> 0) AND (LocalPAmount IS NULL) ) THEN BEGIN
    LocalPAmount = 0;
    SUSPEND;
  END
END;

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