BEGIN
/* dohledam generovane variabilni symboly */
IF (:Credit = 'A') THEN BEGIN
/* ostatni prijmy */
DocumentType = '01' ;
FOR
SELECT
ID, Amount - PaidAmount, Currency_ID, DocDate$Date
FROM
OtherIncomes
WHERE
VarSymbol LIKE :VarSymbol
AND
(PDocument_ID IS NULL OR ElectronicPayment = 'A')
AND
((:Firm_ID = '0000000000')
OR
(Firm_ID = :Firm_ID))
INTO
:ID, :Amount, :Currency_ID, :DueDate$Date
DO
SUSPEND ;
/* faktury vydane */
DocumentType = '03' ;
FOR
SELECT
ID, Amount - CreditAmount - PaidAmount + PaidCreditAmount, Currency_ID, DueDate$Date
FROM
IssuedInvoices
WHERE
VarSymbol LIKE :VarSymbol
AND
((:Firm_ID = '0000000000')
OR
(Firm_ID = :Firm_ID))
AND (Amount - CreditAmount - PaidAmount + PaidCreditAmount) >= 0
INTO
:ID, :Amount, :Currency_ID, :DueDate$Date
DO
SUSPEND ;
/* penalizační faktury vydane */
DocumentType = '17' ;
FOR
SELECT
ID, Amount - PaidAmount, Currency_ID, DueDate$Date
FROM
PenaltyInvoices
WHERE
VarSymbol LIKE :VarSymbol
AND
((:Firm_ID = '0000000000')
OR
(Firm_ID = :Firm_ID))
INTO
:ID, :Amount, :Currency_ID, :DueDate$Date
DO
SUSPEND ;
/* dobropisy faktur prijatych */
DocumentType = '61' ;
FOR
SELECT
ID, Amount - PaidAmount, Currency_ID, DueDate$Date
FROM
ReceivedCreditNotes
WHERE
VarSymbol LIKE :VarSymbol
AND
((:Firm_ID = '0000000000')
OR
(Firm_ID = :Firm_ID))
INTO
:ID, :Amount, :Currency_ID, :DueDate$Date
DO
SUSPEND ;
/* zalohove listy vydane */
DocumentType = '10' ;
FOR
SELECT
ID, Amount - PaidAmount, Currency_ID, DueDate$Date
FROM
IssuedDInvoices
WHERE
VarSymbol LIKE :VarSymbol
AND
((:Firm_ID = '0000000000')
OR
(Firm_ID = :Firm_ID))
INTO
:ID, :Amount, :Currency_ID, :DueDate$Date
DO
SUSPEND ;
/* dobropisy danovych zalohovych listu prijatych */
DocumentType = '65' ;
FOR
SELECT
ID, Amount - PaidAmount, Currency_ID, DocDate$Date
FROM
VATReceivedDCreditNotes
WHERE
VarSymbol LIKE :VarSymbol
AND
((:Firm_ID = '0000000000')
OR
(Firm_ID = :Firm_ID))
INTO
:ID, :Amount, :Currency_ID, :DueDate$Date
DO
SUSPEND ;
/* danove zalohove listy vydane (pro CH) */
DocumentType = '62' ;
FOR
SELECT
ID, Amount - PaidAmount, Currency_ID, DocDate$Date
FROM
VATIssuedDInvoices
WHERE
VarSymbol LIKE :VarSymbol
AND
((:Firm_ID = '0000000000')
OR
(Firm_ID = :Firm_ID))
INTO
:ID, :Amount, :Currency_ID, :DueDate$Date
DO
SUSPEND ;
/* dohledam zadane variabilni symboly */
END ELSE BEGIN
/* ostatni vydaje */
DocumentType = '02' ;
FOR
SELECT
ID, Amount - PaidAmount, Currency_ID, DueDate$Date
FROM
OtherExpenses
WHERE
VarSymbol LIKE :VarSymbol
AND
(PDocument_ID IS NULL OR ElectronicPayment = 'A')
AND
((:Firm_ID = '0000000000')
OR
(Firm_ID = :Firm_ID))
INTO
:ID, :Amount, :Currency_ID, :DueDate$Date
DO
SUSPEND ;
/* faktury prijate */
DocumentType = '04' ;
FOR
SELECT
ID, Amount - CreditAmount - PaidAmount + PaidCreditAmount, Currency_ID, DueDate$Date
FROM
ReceivedInvoices
WHERE
VarSymbol LIKE :VarSymbol
AND
((:Firm_ID = '0000000000')
OR
(Firm_ID = :Firm_ID))
INTO
:ID, :Amount, :Currency_ID, :DueDate$Date
DO
SUSPEND ;
/* JCD */
DocumentType = '12' ;
FOR
SELECT
ID, Amount - PaidAmount, Currency_ID, DueDate$Date
FROM
CustomsDeclarations
WHERE
VarSymbol LIKE :VarSymbol
AND
((:Firm_ID = '0000000000')
OR
(Firm_ID = :Firm_ID))
INTO
:ID, :Amount, :Currency_ID, :DueDate$Date
DO
SUSPEND ;
/* dobropisy faktur vydanych */
DocumentType = '60' ;
FOR
SELECT
ID, Amount - PaidAmount, Currency_ID, DueDate$Date
FROM
IssuedCreditNotes
WHERE
VarSymbol LIKE :VarSymbol
AND
((:Firm_ID = '0000000000')
OR
(Firm_ID = :Firm_ID))
INTO
:ID, :Amount, :Currency_ID, :DueDate$Date
DO
SUSPEND ;
/* zalohove listy prijate */
DocumentType = '11' ;
FOR
SELECT
ID, Amount - PaidAmount, Currency_ID, DueDate$Date
FROM
ReceivedDInvoices
WHERE
VarSymbol LIKE :VarSymbol
AND
((:Firm_ID = '0000000000')
OR
(Firm_ID = :Firm_ID))
INTO
:ID, :Amount, :Currency_ID, :DueDate$Date
DO
SUSPEND ;
/* dobropisy dan.zal.listu vydanych */
DocumentType = '63' ;
FOR
SELECT
ID, Amount - PaidAmount, Currency_ID, DueDate$Date
FROM
VATIssuedDCreditNotes
WHERE
VarSymbol LIKE :VarSymbol
AND
((:Firm_ID = '0000000000')
OR
(Firm_ID = :Firm_ID))
INTO
:ID, :Amount, :Currency_ID, :DueDate$Date
DO
SUSPEND ;
/* faktury vydane */
DocumentType = '03' ;
FOR
SELECT
ID, -1*(Amount - CreditAmount - PaidAmount + PaidCreditAmount), Currency_ID, DueDate$Date
FROM
IssuedInvoices
WHERE
VarSymbol LIKE :VarSymbol
AND
((:Firm_ID = '0000000000')
OR
(Firm_ID = :Firm_ID))
AND (Amount - CreditAmount - PaidAmount + PaidCreditAmount) < 0
INTO
:ID, :Amount, :Currency_ID, :DueDate$Date
DO
SUSPEND ;
END
/* Volani procedury z jinych projektu - POS*/
FOR
SELECT
DocumentType, ID, Amount, Currency_ID, DueDate$Date
FROM
PayDestinationsByVarSymbPos(:Credit, :VarSymbol, :Firm_ID)
INTO
:DocumentType, :ID, :Amount, :Currency_ID, :DueDate$Date
DO
SUSPEND;
/* Volani procedury z jinych projektu - Mzdy*/
FOR
SELECT
DocumentType, ID, Amount, Currency_ID, DueDate$Date
FROM
PayDestinationsByVarSymbWage(:Credit, :VarSymbol, :Firm_ID)
INTO
:DocumentType, :ID, :Amount, :Currency_ID, :DueDate$Date
DO
SUSPEND;
END;