Procedura-PayDestinationsByAmount

Popis:
Vrací ID pøíchozích / odchozích dokladù podle èástky nebo èástky, kterou zbývá doplatit

Parametry:

NázevPopisDatový typ
ACreditChar(1)
AAmountNumeric(13, 2)
ACurrency_IDChar(10)
AAmountTypeInteger
AFirm_IDFirmaChar(10)

Návratové hodnoty:

NázevPopisDatový typ
DocumentTypeChar(2)
IDChar(10)

Závislosti:

NázevPopisTøída
PayDestinationsByAmountPosProcedura se bude pøepisovat v jiných projektech (Pos), ale volá se v tomto projektu.Procedures
PayDestinationsByAmountWageProcedura se bude pøepisovat v jiných projektech (Mzdy), ale volá se v tomto projektu.Procedures

Tìlo:

BEGIN
  /* kreditni platby dle lokalni castky*/    
  IF ((:ACredit = 'A') AND (:ACurrency_ID is NULL)) THEN BEGIN
    /* ostatni prijmy */
    DocumentType = '01' ;
    FOR
      SELECT
        ID
      FROM
        OtherIncomes
      WHERE
          (
          ((:AAmountType = 0) AND (LocalAmount = :AAmount)) /* kdyz je zadanä cástka shodna s cástku na dokladu */
        OR
          ((:AAmountType = 1) AND (LocalAmount - LocalPaidAmount) = :AAmount)  /* kdyz je zadanä cástka shodna s nesplaceno */
        OR
          ((:AAmountType = 2) AND (LocalAmount >= :AAmount)) /* kdyz je zadanä cástka shodna ci neší než  cástku na dokladu (cástecná platba)*/
        OR
          ((:AAmountType = 3) AND (LocalAmount - LocalPaidAmount) >= :AAmount)  /* kdyz je zadanä cástka shodna ci neší než nesplacená (cástecná platba) */
          )           
        AND
          (PDocument_ID IS NULL OR ElectronicPayment = 'A')
        AND
          (
          (:AFirm_ID = '0000000000')
        OR
          (Firm_ID = :AFirm_ID)
          )
      INTO
        :ID
    DO
      SUSPEND;
    /* faktury vydane */
    DocumentType = '03' ;
    FOR
      SELECT
        ID
      FROM
        IssuedInvoices
      WHERE
          (
          ((:AAmountType = 0) AND (LocalAmount = :AAmount)) /* kdyz je zadanä cástka shodna s cástku na dokladu */
        OR
          ((:AAmountType = 1) AND (LocalAmount  - LocalCreditAmount - LocalPaidAmount + LocalPaidCreditAmount = :AAmount))  /* kdyz je zadanä cástka shodna s nesplaceno */
        OR
          ((:AAmountType = 2) AND (LocalAmount >= :AAmount)) /* kdyz je zadanä cástka shodna ci neší než  cástku na dokladu (cástecná platba)*/
        OR
          ((:AAmountType = 3) AND (LocalAmount  - LocalCreditAmount - LocalPaidAmount + LocalPaidCreditAmount >= :AAmount))  /* kdyz je zadanä cástka shodna ci neší než nesplacená (cástecná platba) */
          )   
        AND
          (
          (:AFirm_ID = '0000000000')
        OR
          (Firm_ID = :AFirm_ID)
          )
      INTO
        :ID
    DO
      SUSPEND;
    /* penalizacni faktury vydane */
    DocumentType = '17' ;
    FOR
      SELECT
        ID
      FROM
        PenaltyInvoices
      WHERE
          (
          ((:AAmountType = 0) AND (LocalAmount = :AAmount)) /* kdyz je zadanä cástka shodna s cástku na dokladu */
        OR
          ((:AAmountType = 1) AND (LocalAmount - LocalPaidAmount) = :AAmount)  /* kdyz je zadanä cástka shodna s nesplaceno */
        OR
          ((:AAmountType = 2) AND (LocalAmount >= :AAmount)) /* kdyz je zadanä cástka shodna ci neší než  cástku na dokladu (cástecná platba)*/
        OR
          ((:AAmountType = 3) AND (LocalAmount - LocalPaidAmount) >= :AAmount)  /* kdyz je zadanä cástka shodna ci neší než nesplacená (cástecná platba) */
          )           
        AND
          (
          (:AFirm_ID = '0000000000')
        OR
          (Firm_ID = :AFirm_ID)
          )
      INTO
        :ID
    DO
      SUSPEND;
    /* dobropisy faktur prijatych */
    DocumentType = '61' ;
    FOR
      SELECT
        ID
      FROM
        ReceivedCreditNotes
      WHERE
          (
          ((:AAmountType = 0) AND (LocalAmount = :AAmount)) /* kdyz je zadanä cástka shodna s cástku na dokladu */
        OR
          ((:AAmountType = 1) AND (LocalAmount - LocalPaidAmount) = :AAmount)  /* kdyz je zadanä cástka shodna s nesplaceno */
        OR
          ((:AAmountType = 2) AND (LocalAmount >= :AAmount)) /* kdyz je zadanä cástka shodna ci neší než  cástku na dokladu (cástecná platba)*/
        OR
          ((:AAmountType = 3) AND (LocalAmount - LocalPaidAmount) >= :AAmount)  /* kdyz je zadanä cástka shodna ci neší než nesplacená (cástecná platba) */
          )   
        AND
          ( 
          (:AFirm_ID = '0000000000')
        OR
          (Firm_ID = :AFirm_ID)
          )
      INTO
        :ID
    DO
      SUSPEND;
    /* zalohove listy vydane */
    DocumentType = '10' ;
    FOR
      SELECT
        ID
      FROM
        IssuedDInvoices
      WHERE
          (
          ((:AAmountType = 0) AND (LocalAmount = :AAmount)) /* kdyz je zadanä cástka shodna s cástku na dokladu */
        OR
          ((:AAmountType = 1) AND (LocalAmount - LocalPaidAmount) = :AAmount)  /* kdyz je zadanä cástka shodna s nesplaceno */
        OR
          ((:AAmountType = 2) AND (LocalAmount >= :AAmount)) /* kdyz je zadanä cástka shodna ci neší než  cástku na dokladu (cástecná platba)*/
        OR
          ((:AAmountType = 3) AND (LocalAmount - LocalPaidAmount) >= :AAmount)  /* kdyz je zadanä cástka shodna ci neší než nesplacená (cástecná platba) */
          )           
        AND
          (
          (:AFirm_ID = '0000000000')
        OR
          (Firm_ID = :AFirm_ID)
          )
      INTO
        :ID
    DO
      SUSPEND;
    /* Danove zalohove listy vydane */
    DocumentType = '62' ;
    FOR
      SELECT
        ID
      FROM
        VATIssuedDInvoices
      WHERE
          (
          ((:AAmountType = 0) AND (LocalAmount = :AAmount)) /* kdyz je zadanä cástka shodna s cástku na dokladu */
        OR
          ((:AAmountType = 1) AND (LocalAmount  - LocalCreditAmount - LocalPaidAmount + LocalPaidCreditAmount = :AAmount))  /* kdyz je zadanä cástka shodna s nesplaceno */
        OR
          ((:AAmountType = 2) AND (LocalAmount >= :AAmount)) /* kdyz je zadanä cástka shodna ci neší než  cástku na dokladu (cástecná platba)*/
        OR
          ((:AAmountType = 3) AND (LocalAmount  - LocalCreditAmount - LocalPaidAmount + LocalPaidCreditAmount >= :AAmount))  /* kdyz je zadanä cástka shodna ci neší než nesplacená (cástecná platba) */
          )   
        AND
          (
          (:AFirm_ID = '0000000000')
        OR
          (Firm_ID = :AFirm_ID)
          )
      INTO
        :ID
    DO
      SUSPEND;
    /* Dobropisy danovych zalohovych listu prijatych */
    DocumentType = '65' ;
    FOR
      SELECT
        ID
      FROM
        VATReceivedDCreditNotes
      WHERE
          (
          ((:AAmountType = 0) AND (LocalAmount = :AAmount)) /* kdyz je zadanä cástka shodna s cástku na dokladu */
        OR
          ((:AAmountType = 1) AND (LocalAmount  - LocalPaidAmount = :AAmount))  /* kdyz je zadanä cástka shodna s nesplaceno */
        OR
          ((:AAmountType = 2) AND (LocalAmount >= :AAmount)) /* kdyz je zadanä cástka shodna ci neší než  cástku na dokladu (cástecná platba)*/
        OR
          ((:AAmountType = 3) AND (LocalAmount - LocalPaidAmount >= :AAmount))  /* kdyz je zadanä cástka shodna ci neší než nesplacená (cástecná platba) */
          )   
        AND
          (
          (:AFirm_ID = '0000000000')
        OR
          (Firm_ID = :AFirm_ID)
          )
      INTO
        :ID
    DO
      SUSPEND;
  END
  /* debetni platby dle lokalni castky */
  IF ((:ACredit = 'N') and (:ACurrency_ID is NULL)) THEN BEGIN
    /* ostatni vydaje */
    DocumentType = '02' ;
    FOR
      SELECT
        ID
      FROM
        OtherExpenses
      WHERE
          (
          ((:AAmountType = 0) AND (LocalAmount = :AAmount)) /* kdyz je zadanä cástka shodna s cástku na dokladu */
        OR
          ((:AAmountType = 1) AND (LocalAmount  - LocalPaidAmount = :AAmount))  /* kdyz je zadanä cástka shodna s nesplaceno */
        OR
          ((:AAmountType = 2) AND (LocalAmount >= :AAmount)) /* kdyz je zadanä cástka shodna ci neší než  cástku na dokladu (cástecná platba)*/
        OR
          ((:AAmountType = 3) AND (LocalAmount - LocalPaidAmount >= :AAmount))  /* kdyz je zadanä cástka shodna ci neší než nesplacená (cástecná platba) */
          )   
        AND
          (PDocument_ID IS NULL OR ElectronicPayment = 'A')
        AND
          (
          (:AFirm_ID = '0000000000')
        OR
          (Firm_ID = :AFirm_ID)
          )
      INTO
        :ID
    DO
      SUSPEND;
    /* faktury prijate */
    DocumentType = '04' ;
    FOR
      SELECT
        ID
      FROM
        ReceivedInvoices
      WHERE
          (
          ((:AAmountType = 0) AND (LocalAmount = :AAmount)) /* kdyz je zadanä cástka shodna s cástku na dokladu */
        OR
          ((:AAmountType = 1) AND (LocalAmount - LocalCreditAmount - LocalPaidAmount + LocalPaidCreditAmount = :AAmount))  /* kdyz je zadanä cástka shodna s nesplaceno */
        OR
          ((:AAmountType = 2) AND (LocalAmount >= :AAmount)) /* kdyz je zadanä cástka shodna ci neší než  cástku na dokladu (cástecná platba)*/
        OR
          ((:AAmountType = 3) AND (LocalAmount - LocalCreditAmount - LocalPaidAmount + LocalPaidCreditAmount >= :AAmount))  /* kdyz je zadanä cástka shodna ci neší než nesplacená (cástecná platba) */
          )   
        AND
          ( 
          (:AFirm_ID = '0000000000')
        OR
          (Firm_ID = :AFirm_ID)
          )
      INTO
        :ID
    DO
      SUSPEND;
    /* JCD */
    DocumentType = '12' ;
    FOR
      SELECT
        ID
      FROM
        CustomsDeclarations
      WHERE
          (
          ((:AAmountType = 0) AND (LocalAmount = :AAmount)) /* kdyz je zadanä cástka shodna s cástku na dokladu */
        OR
          ((:AAmountType = 1) AND (LocalAmount  - LocalPaidAmount = :AAmount))  /* kdyz je zadanä cástka shodna s nesplaceno */
        OR
          ((:AAmountType = 2) AND (LocalAmount >= :AAmount)) /* kdyz je zadanä cástka shodna ci neší než  cástku na dokladu (cástecná platba)*/
        OR
          ((:AAmountType = 3) AND (LocalAmount - LocalPaidAmount >= :AAmount))  /* kdyz je zadanä cástka shodna ci neší než nesplacená (cástecná platba) */
          )   
        AND
          (
          (:AFirm_ID = '0000000000')
        OR
          (Firm_ID = :AFirm_ID)
          )
      INTO
        :ID
    DO
      SUSPEND;
    /* dobropisy faktur vydanych */
    DocumentType = '60' ;
    FOR
      SELECT
        ID
      FROM
        IssuedCreditNotes
      WHERE
          (
          ((:AAmountType = 0) AND (LocalAmount = :AAmount)) /* kdyz je zadanä cástka shodna s cástku na dokladu */
        OR
          ((:AAmountType = 1) AND (LocalAmount  - LocalPaidAmount = :AAmount))  /* kdyz je zadanä cástka shodna s nesplaceno */
        OR
          ((:AAmountType = 2) AND (LocalAmount >= :AAmount)) /* kdyz je zadanä cástka shodna ci neší než  cástku na dokladu (cástecná platba)*/
        OR
          ((:AAmountType = 3) AND (LocalAmount - LocalPaidAmount >= :AAmount))  /* kdyz je zadanä cástka shodna ci neší než nesplacená (cástecná platba) */
          )   
        AND
          (
          (:aFirm_ID = '0000000000')
        OR
          (Firm_ID = :AFirm_ID)
          )
      INTO
        :ID
    DO
      SUSPEND;
    /* zalohove listy prijate */
    DocumentType = '11' ;
    FOR
      SELECT
        ID
      FROM
        ReceivedDInvoices
      WHERE
          (
          ((:AAmountType = 0) AND (LocalAmount = :AAmount)) /* kdyz je zadanä cástka shodna s cástku na dokladu */
        OR
          ((:AAmountType = 1) AND (LocalAmount  - LocalPaidAmount = :AAmount))  /* kdyz je zadanä cástka shodna s nesplaceno */
        OR
          ((:AAmountType = 2) AND (LocalAmount >= :AAmount)) /* kdyz je zadanä cástka shodna ci neší než  cástku na dokladu (cástecná platba)*/
        OR
          ((:AAmountType = 3) AND (LocalAmount - LocalPaidAmount >= :AAmount))  /* kdyz je zadanä cástka shodna ci neší než nesplacená (cástecná platba) */
          )   
        AND
          (
          (:AFirm_ID = '0000000000')
        OR
          (Firm_ID = :AFirm_ID)
          )
      INTO
        :ID
    DO
      SUSPEND;
    /* dobropisy danovych zalohovych listu vydanych */
    DocumentType = '63' ;
    FOR
      SELECT
        ID
      FROM
        VATIssuedDCreditNotes
      WHERE
          (
          ((:AAmountType = 0) AND (LocalAmount = :AAmount)) /* kdyz je zadanä cástka shodna s cástku na dokladu */
        OR
          ((:AAmountType = 1) AND (LocalAmount  - LocalPaidAmount = :AAmount))  /* kdyz je zadanä cástka shodna s nesplaceno */
        OR
          ((:AAmountType = 2) AND (LocalAmount >= :AAmount)) /* kdyz je zadanä cástka shodna ci neší než  cástku na dokladu (cástecná platba)*/
        OR
          ((:AAmountType = 3) AND (LocalAmount - LocalPaidAmount >= :AAmount))  /* kdyz je zadanä cástka shodna ci neší než nesplacená (cástecná platba) */
          )   
        AND
          (
          (:AFirm_ID = '0000000000')
        OR
          (Firm_ID = :AFirm_ID)
          )
      INTO
        :ID
    DO
      SUSPEND;
    /* Danove zalohove listy prijate */
    DocumentType = '64' ;
    FOR
      SELECT
        ID
      FROM
        VATReceivedDInvoices
      WHERE
          (
          ((:AAmountType = 0) AND (LocalAmount = :AAmount)) /* kdyz je zadanä cástka shodna s cástku na dokladu */
        OR
          ((:AAmountType = 1) AND (LocalAmount - LocalCreditAmount - LocalPaidAmount + LocalPaidCreditAmount = :AAmount))  /* kdyz je zadanä cástka shodna s nesplaceno */
        OR
          ((:AAmountType = 2) AND (LocalAmount >= :AAmount)) /* kdyz je zadanä cástka shodna ci neší než  cástku na dokladu (cástecná platba)*/
        OR
          ((:AAmountType = 3) AND (LocalAmount - LocalCreditAmount - LocalPaidAmount + LocalPaidCreditAmount >= :AAmount))  /* kdyz je zadanä cástka shodna ci neší než nesplacená (cástecná platba) */
          )   
        AND
          (
          (:AFirm_ID = '0000000000')
        OR
          (Firm_ID = :AFirm_ID)
          )
      INTO
        :ID
    DO
      SUSPEND;
  END
  /* kreditni platby dle castky a meny */
  IF ((:ACredit = 'A') and (:ACurrency_ID is Not NULL)) THEN BEGIN
    /* ostatni prijmy */
    DocumentType = '01' ;
    FOR
      SELECT
        ID
      FROM
        OtherIncomes
      WHERE
          (
          ((:AAmountType = 0) AND (Amount = :AAmount)) /* kdyz je zadanä cástka shodna s cástku na dokladu */
        OR
          ((:AAmountType = 1) AND (Amount  - PaidAmount = :AAmount))  /* kdyz je zadanä cástka shodna s nesplaceno */
        OR
          ((:AAmountType = 2) AND (Amount >= :AAmount)) /* kdyz je zadanä cástka shodna ci neší než  cástku na dokladu (cástecná platba)*/
        OR
          ((:AAmountType = 3) AND (Amount - PaidAmount >= :AAmount))  /* kdyz je zadanä cástka shodna ci neší než nesplacená (cástecná platba) */
          )   
        AND
          (Currency_ID = :ACurrency_ID)
        AND
          (PDocument_ID IS NULL OR ElectronicPayment = 'A')
        AND
          (
          (:AFirm_ID = '0000000000')
        OR
          (Firm_ID = :AFirm_ID)
          )
      INTO
        :ID
    DO
      SUSPEND;
    /* faktury vydane */
    DocumentType = '03' ;
    FOR
      SELECT
        ID
      FROM
        IssuedInvoices
      WHERE
          (
          ((:AAmountType = 0) AND (Amount = :AAmount)) /* kdyz je zadanä cástka shodna s cástku na dokladu */
        OR
          ((:AAmountType = 1) AND (Amount - CreditAmount - PaidAmount + PaidCreditAmount = :AAmount))  /* kdyz je zadanä cástka shodna s nesplaceno */
        OR
          ((:AAmountType = 2) AND (Amount >= :AAmount)) /* kdyz je zadanä cástka shodna ci neší než  cástku na dokladu (cástecná platba)*/
        OR
          ((:AAmountType = 3) AND (Amount - CreditAmount - PaidAmount + PaidCreditAmount >= :AAmount))  /* kdyz je zadanä cástka shodna ci neší než nesplacená (cástecná platba) */
          )   
        AND
          (Currency_ID = :ACurrency_ID)
        AND
          (
          (:AFirm_ID = '0000000000')
        OR
          (Firm_ID = :AFirm_ID)
          )
      INTO
        :ID
    DO
      SUSPEND;
    /* penalizacni faktury vydane */
    DocumentType = '17' ;
    FOR
      SELECT
        ID
      FROM
        PenaltyInvoices
      WHERE
          (
          ((:AAmountType = 0) AND (Amount = :AAmount)) /* kdyz je zadanä cástka shodna s cástku na dokladu */
        OR
          ((:AAmountType = 1) AND (Amount - PaidAmount = :AAmount))  /* kdyz je zadanä cástka shodna s nesplaceno */
        OR
          ((:AAmountType = 2) AND (Amount >= :AAmount)) /* kdyz je zadanä cástka shodna ci neší než  cástku na dokladu (cástecná platba)*/
        OR
          ((:AAmountType = 3) AND (Amount - PaidAmount >= :AAmount))  /* kdyz je zadanä cástka shodna ci neší než nesplacená (cástecná platba) */
          )   
        AND
          (Currency_ID = :ACurrency_ID)
        AND
          (
          (:AFirm_ID = '0000000000')
        OR
          (Firm_ID = :AFirm_ID)
          )
      INTO
        :ID
    DO
      SUSPEND;
    /* dobropisy faktur prijatych */
    DocumentType = '61' ;
    FOR
      SELECT
        ID
      FROM
        ReceivedCreditNotes
      WHERE
          (
          ((:AAmountType = 0) AND (Amount = :AAmount)) /* kdyz je zadanä cástka shodna s cástku na dokladu */
        OR
          ((:AAmountType = 1) AND (Amount - PaidAmount = :AAmount))  /* kdyz je zadanä cástka shodna s nesplaceno */
        OR
          ((:AAmountType = 2) AND (Amount >= :AAmount)) /* kdyz je zadanä cástka shodna ci neší než  cástku na dokladu (cástecná platba)*/
        OR
          ((:AAmountType = 3) AND (Amount - PaidAmount >= :AAmount))  /* kdyz je zadanä cástka shodna ci neší než nesplacená (cástecná platba) */
          )   
        AND
          (Currency_ID = :ACurrency_ID)
        AND
          (
          (:AFirm_ID = '0000000000')
        OR
          (Firm_ID = :AFirm_ID)
          )
      INTO
        :ID
    DO
      SUSPEND;
    /* zalohove listy vydane */
    DocumentType = '10' ;
    FOR
      SELECT
        ID
      FROM
        IssuedDInvoices
      WHERE
          (
          ((:AAmountType = 0) AND (Amount = :AAmount)) /* kdyz je zadanä cástka shodna s cástku na dokladu */
        OR
          ((:AAmountType = 1) AND (Amount - PaidAmount = :AAmount))  /* kdyz je zadanä cástka shodna s nesplaceno */
        OR
          ((:AAmountType = 2) AND (Amount >= :AAmount)) /* kdyz je zadanä cástka shodna ci neší než  cástku na dokladu (cástecná platba)*/
        OR
          ((:AAmountType = 3) AND (Amount - PaidAmount >= :AAmount))  /* kdyz je zadanä cástka shodna ci neší než nesplacená (cástecná platba) */
          )   
        AND
          (Currency_ID = :ACurrency_ID)
        AND
          (
          (:AFirm_ID = '0000000000')
        OR
          (Firm_ID = :AFirm_ID)
          )
      INTO
        :ID
    DO
      SUSPEND;
    /* danove zalohove listy vydane */
    DocumentType = '62' ;
    FOR
      SELECT
        ID
      FROM
        VATIssuedDInvoices
      WHERE
          (
          ((:AAmountType = 0) AND (Amount = :AAmount)) /* kdyz je zadanä cástka shodna s cástku na dokladu */
        OR
          ((:AAmountType = 1) AND (Amount - CreditAmount - PaidAmount + PaidCreditAmount = :AAmount))  /* kdyz je zadanä cástka shodna s nesplaceno */
        OR
          ((:AAmountType = 2) AND (Amount >= :AAmount)) /* kdyz je zadanä cástka shodna ci neší než  cástku na dokladu (cástecná platba)*/
        OR
          ((:AAmountType = 3) AND (Amount - CreditAmount - PaidAmount + PaidCreditAmount >= :AAmount))  /* kdyz je zadanä cástka shodna ci neší než nesplacená (cástecná platba) */
          )   
        AND
          (Currency_ID = :ACurrency_ID)
        AND
          (
          (:AFirm_ID = '0000000000')
        OR
          (Firm_ID = :AFirm_ID)
          )
      INTO
        :ID
    DO
      SUSPEND;
    /* Dobropisy danovych zalohovych listu prijatych */
    DocumentType = '65' ;
    FOR
      SELECT
        ID
      FROM
        VATReceivedDCreditNotes
      WHERE
          (
          ((:AAmountType = 0) AND (Amount = :AAmount)) /* kdyz je zadanä cástka shodna s cástku na dokladu */
        OR
          ((:AAmountType = 1) AND (Amount - PaidAmount = :AAmount))  /* kdyz je zadanä cástka shodna s nesplaceno */
        OR
          ((:AAmountType = 2) AND (Amount >= :AAmount)) /* kdyz je zadanä cástka shodna ci neší než  cástku na dokladu (cástecná platba)*/
        OR
          ((:AAmountType = 3) AND (Amount - PaidAmount >= :AAmount))  /* kdyz je zadanä cástka shodna ci neší než nesplacená (cástecná platba) */
          )   
        AND
          (Currency_ID = :ACurrency_ID)
        AND
          (
          (:AFirm_ID = '0000000000')
        OR
          (Firm_ID = :AFirm_ID)
          )
      INTO
        :ID
    DO
      SUSPEND;
  END
  /* debetni platby dle castky a meny */
  IF ((:ACredit = 'N') and (:ACurrency_ID is Not NULL)) THEN BEGIN
    /* ostatni vydaje */
    DocumentType = '02' ;
    FOR
      SELECT
        ID
      FROM
        OtherExpenses
      WHERE
          (
          ((:AAmountType = 0) AND (Amount = :AAmount)) /* kdyz je zadanä cástka shodna s cástku na dokladu */
        OR
          ((:AAmountType = 1) AND (Amount - PaidAmount = :AAmount))  /* kdyz je zadanä cástka shodna s nesplaceno */
        OR
          ((:AAmountType = 2) AND (Amount >= :AAmount)) /* kdyz je zadanä cástka shodna ci neší než  cástku na dokladu (cástecná platba)*/
        OR
          ((:AAmountType = 3) AND (Amount - PaidAmount >= :AAmount))  /* kdyz je zadanä cástka shodna ci neší než nesplacená (cástecná platba) */
          )   
        AND
          (Currency_ID = :ACurrency_ID)
        AND
          (PDocument_ID IS NULL OR ElectronicPayment = 'A')
        AND
          (
          (:AFirm_ID = '0000000000')
        OR
          (Firm_ID = :AFirm_ID)
          )
      INTO
        :ID
    DO
      SUSPEND;
    /* faktury prijate */
    DocumentType = '04' ;
    FOR
      SELECT
        ID
      FROM
        ReceivedInvoices
      WHERE
          (
          ((:AAmountType = 0) AND (Amount = :AAmount)) /* kdyz je zadanä cástka shodna s cástku na dokladu */
        OR
          ((:AAmountType = 1) AND (Amount - CreditAmount - PaidAmount + PaidCreditAmount = :AAmount))  /* kdyz je zadanä cástka shodna s nesplaceno */
        OR
          ((:AAmountType = 2) AND (Amount >= :AAmount)) /* kdyz je zadanä cástka shodna ci neší než  cástku na dokladu (cástecná platba)*/
        OR
          ((:AAmountType = 3) AND (Amount - CreditAmount - PaidAmount + PaidCreditAmount >= :AAmount))  /* kdyz je zadanä cástka shodna ci neší než nesplacená (cástecná platba) */
          )   
        AND
          (Currency_ID = :ACurrency_ID)
        AND
          (
          (:AFirm_ID = '0000000000')
        OR
          (Firm_ID = :AFirm_ID)
          )
      INTO
        :ID
    DO
      SUSPEND;
    /* JCD */
    DocumentType = '12' ;
    FOR
      SELECT
        ID
      FROM
        CustomsDeclarations
      WHERE
          (
          ((:AAmountType = 0) AND (Amount = :AAmount)) /* kdyz je zadanä cástka shodna s cástku na dokladu */
        OR
          ((:AAmountType = 1) AND (Amount - PaidAmount = :AAmount))  /* kdyz je zadanä cástka shodna s nesplaceno */
        OR
          ((:AAmountType = 2) AND (Amount >= :AAmount)) /* kdyz je zadanä cástka shodna ci neší než  cástku na dokladu (cástecná platba)*/
        OR
          ((:AAmountType = 3) AND (Amount - PaidAmount >= :AAmount))  /* kdyz je zadanä cástka shodna ci neší než nesplacená (cástecná platba) */
          )   
        AND
          (Currency_ID = :ACurrency_ID)
        AND
          (
          (:AFirm_ID = '0000000000')
        OR
          (Firm_ID = :AFirm_ID)
          )
      INTO
        :ID
    DO
      SUSPEND;
    /* dobropisy faktur vydanych */
    DocumentType = '60' ;
    FOR
      SELECT
        ID
      FROM
        IssuedCreditNotes
      WHERE
          (
          ((:AAmountType = 0) AND (Amount = :AAmount)) /* kdyz je zadanä cástka shodna s cástku na dokladu */
        OR
          ((:AAmountType = 1) AND (Amount - PaidAmount = :AAmount))  /* kdyz je zadanä cástka shodna s nesplaceno */
        OR
          ((:AAmountType = 2) AND (Amount >= :AAmount)) /* kdyz je zadanä cástka shodna ci neší než  cástku na dokladu (cástecná platba)*/
        OR
          ((:AAmountType = 3) AND (Amount - PaidAmount >= :AAmount))  /* kdyz je zadanä cástka shodna ci neší než nesplacená (cástecná platba) */
          )   
        AND
          (Currency_ID = :ACurrency_ID)
        AND
          (
          (:AFirm_ID = '0000000000')
        OR
          (Firm_ID = :AFirm_ID)
          )
      INTO
        :ID
    DO
      SUSPEND;
    /* zalohove listy prijate */
    DocumentType = '11' ;
    FOR
      SELECT
        ID
      FROM
        ReceivedDInvoices
      WHERE
          (
          ((:AAmountType = 0) AND (Amount = :AAmount)) /* kdyz je zadanä cástka shodna s cástku na dokladu */
        OR
          ((:AAmountType = 1) AND (Amount - PaidAmount = :AAmount))  /* kdyz je zadanä cástka shodna s nesplaceno */
        OR
          ((:AAmountType = 2) AND (Amount >= :AAmount)) /* kdyz je zadanä cástka shodna ci neší než  cástku na dokladu (cástecná platba)*/
        OR
          ((:AAmountType = 3) AND (Amount - PaidAmount >= :AAmount))  /* kdyz je zadanä cástka shodna ci neší než nesplacená (cástecná platba) */
          )   
        AND
          (Currency_ID = :ACurrency_ID)
        AND
          (
          (:AFirm_ID = '0000000000')
        OR
          (Firm_ID = :AFirm_ID)
          )
      INTO
        :ID
    DO
      SUSPEND;
    /* dobropisy danovych zalohovych listu vydanych */
    DocumentType = '63' ;
    FOR
      SELECT
        ID
      FROM
        VATIssuedDCreditNotes
      WHERE
          (
          ((:AAmountType = 0) AND (Amount = :AAmount)) /* kdyz je zadanä cástka shodna s cástku na dokladu */
        OR
          ((:AAmountType = 1) AND (Amount - PaidAmount = :AAmount))  /* kdyz je zadanä cástka shodna s nesplaceno */
        OR
          ((:AAmountType = 2) AND (Amount >= :AAmount)) /* kdyz je zadanä cástka shodna ci neší než  cástku na dokladu (cástecná platba)*/
        OR
          ((:AAmountType = 3) AND (Amount - PaidAmount >= :AAmount))  /* kdyz je zadanä cástka shodna ci neší než nesplacená (cástecná platba) */
          )   
        AND
          (Currency_ID = :ACurrency_ID)
        AND
          (
          (:AFirm_ID = '0000000000')
        OR
          (Firm_ID = :AFirm_ID)
          )
      INTO
        :ID
    DO
      SUSPEND;
    /* danove zalohove listy prijate */
    DocumentType = '64' ;
    FOR
      SELECT
        ID
      FROM
        VATReceivedDInvoices
      WHERE
          (
          ((:AAmountType = 0) AND (Amount = :AAmount)) /* kdyz je zadanä cástka shodna s cástku na dokladu */
        OR
          ((:AAmountType = 1) AND (Amount - CreditAmount - PaidAmount + PaidCreditAmount = :AAmount))  /* kdyz je zadanä cástka shodna s nesplaceno */
        OR
          ((:AAmountType = 2) AND (Amount >= :AAmount)) /* kdyz je zadanä cástka shodna ci neší než  cástku na dokladu (cástecná platba)*/
        OR
          ((:AAmountType = 3) AND (Amount - CreditAmount - PaidAmount + PaidCreditAmount >= :AAmount))  /* kdyz je zadanä cástka shodna ci neší než nesplacená (cástecná platba) */
          )   
        AND
          (Currency_ID = :ACurrency_ID)
        AND
          (
          (:AFirm_ID = '0000000000')
        OR
          (Firm_ID = :AFirm_ID)
          )
      INTO
        :ID
    DO
      SUSPEND;
    /* faktury vydane */
    DocumentType = '03' ;
    FOR
      SELECT
        ID
      FROM
        IssuedInvoices
      WHERE
          (
          ((:AAmountType = 0) AND (LocalAmount = :AAmount)) /* kdyz je zadaná èástka shodná s èástkou na dokladu */
        OR
          /* kdyz je zadaná èástka shodná s pøeplaceno */
           ((:AAmountType = 1) AND (-1*(LocalAmount + LocalPaidCreditAmount - LocalPaidAmount - LocalCreditAmount) = :AAmount))
        OR
          ((:AAmountType = 2) AND (LocalAmount >= :AAmount)) /* kdyz je zadaná èástka shodná èi menší než èástka na dokladu (èásteèná platba)*/
        OR
          /* když je zadaná èástka shodná èi menší než pøeplacená èástka na dokladu (èásteèná platba) */         
           ((:AAmountType = 3) AND (-1*(LocalAmount + LocalPaidCreditAmount - LocalPaidAmount - LocalCreditAmount) >= :AAmount))
          )   
        AND
          (
          (:AFirm_ID = '0000000000')
        OR
          (Firm_ID = :AFirm_ID)
          )
      INTO
        :ID
    DO
      SUSPEND;
  END
    /* Volani procedury z jinych projektu  POS*/
  FOR
    SELECT
      DocumentType, ID
    FROM
      PayDestinationsByAmountPos(:ACredit, :AAmount, :ACurrency_ID, :AAmountType, :AFirm_ID)
    INTO
      :DocumentType, :ID
  DO
    SUSPEND;
    /* Volani procedury z jinych projektu  Mzdy*/
  FOR
    SELECT
      DocumentType, ID
    FROM
      PayDestinationsByAmountWage(:ACredit, :AAmount, :ACurrency_ID, :AAmountType, :AFirm_ID)
    INTO
      :DocumentType, :ID
  DO
    SUSPEND;
END;

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