BEGIN
SELECT
CustomsDeclarations_ET_ID,
IssuedDeposits_IT_ID,
ReceivedDeposits_ET_ID,
Wages_ET_ID,
ExchangeDifferences_IT_ID,
ExchangeDifferences_ET_ID,
Rounding_IT_ID,
Rounding_ET_ID,
POS_IT_ID,
VATIssuedDeposits_IT_ID,
VATReceivedDeposits_ET_ID
FROM SimpleLedgerParameters
INTO
:mCustomsDeclarations_ET_ID,
:mIssuedDeposits_IT_ID,
:mReceivedDeposits_ET_ID,
:mWages_ET_ID,
:mExchangeDifferences_IT_ID,
:mExchangeDifferences_ET_ID,
:mRounding_IT_ID,
:mRounding_ET_ID,
:mPOS_IT_ID,
:MVATISSUEDDEPOSITS_IT_ID,
:MVATRECEIVEDDEPOSITS_ET_ID;
mDocument = ib_scbcreate();
MROWNUMBER = 0;
FOR
/* Seznam placených dokladů */
SELECT PDocumentType, PDocument_ID FROM GetPayableHeaders(:ADateFrom$DATE, :ADateTo$DATE)
GROUP BY 1, 2
INTO
:PDocumentType, :PDocument_ID
DO BEGIN
mResult = ib_scbclear(mDocument);
SELECT Text, DocumentDisplayName, SORT_DocumentDisplayName, RealCredit, AsCredit
FROM GETDOCUMENTINFO(:PDocumentType, :PDocument_ID)
INTO :Text, :PDocumentDisplayName, :SORT_PDocumentDisplayName, mRealCredit, mAsCredit;
FOR
SELECT TYPE_ID, Amount, VAT
FROM GETROWSFORDOCUMENT(:PDocumentType, :PDocument_ID,
:mIssuedDeposits_IT_ID, :mReceivedDeposits_ET_ID,
:mCustomsDeclarations_ET_ID,
:mRounding_IT_ID, :mRounding_ET_ID,
:mWages_ET_ID, :mPOS_IT_ID,
:mVATIssuedDeposits_IT_ID, :mVATReceivedDeposits_ET_ID,
:ADateFrom$DATE
) A
ORDER BY A.POSINDEX NULLS LAST
INTO :mTempType, :mTempAmount, :mTempVAT
DO BEGIN
/* Zapamatování částek z řádků placeného dokladu */
mResult = IB_SCBADDROW(mDocument, mTempType, mTempAmount, mTempVAT);
END
FOR
/* Načtení plateb placeného dokladu */
SELECT
LOCALAmount, LOCALVAT, DocDate$DATE, CREDIT, DocumentType,
Document_ID, DocumentDisplayName, Text, SORT_DocumentDisplayName,
PDocumentType, PDocument_ID
FROM GETPAYMENTSFORDOCUMENT(:PDocumentType, :PDocument_ID, :ADateTo$DATE)
ORDER BY DocDate$DATE, DocumentType, ROWINDEX
INTO
:mTempAmount, :mTempVAT, :mTempDate, :mPayCredit, :DocumentType,
:Document_ID, :DocumentDisplayName, :mText, :SORT_DocumentDisplayName,
:mRealPDocumentType, :mRealPDocument_ID
DO BEGIN
/* Do plateb jsou zahrnuty i platby elektronických plateb (ostatních dokladů s příznakem ElectronicPayment).
Pokud se jedná o takovouto platbu je třeba provést případnou korekci znaménka částky. */
--
IF ((mRealPDocumentType <> :PDocumentType) or (mRealPDocument_ID <> :PDocument_ID)) THEN BEGIN
IF (mRealPDocumentType = '01') THEN BEGIN
IF (mRealCredit <> 'A') THEN BEGIN
mTempAmount = -1 * mTempAmount;
END
END
ELSE
IF (mRealPDocumentType = '02') THEN BEGIN
IF (mRealCredit <> 'N') THEN BEGIN
mTempAmount = -1 * mTempAmount;
END
END
END
BankCredit = 0;
BankDebit = 0;
CashCredit = 0;
CashDebit = 0;
ThroughItemCredit = 0;
ThroughItemDebit = 0;
VATCredit = 0;
VATDebit = 0;
Amount = 0;
mOriginalPayAmount = mTempAmount;
Text = MText;
--
IF (DocumentType = '60') THEN BEGIN
FOR
SELECT (LocalTAmount - LocalTAmountWithoutVAT), LocalTAmountWithoutVAT, IncomeType_ID
FROM ISSUEDCREDITNOTES2 A
WHERE A.PARENT_ID = :Document_ID
INTO :mTempVAT, :mTempAmount, mTempType
DO BEGIN
mResult = IB_SCBADDCREDITNOTE(mDocument, mTempType, mTempAmount, mTempVAT);
END
END ELSE IF (DocumentType = '61') THEN BEGIN
FOR
SELECT (LocalTAmount - LocalTAmountWithoutVAT), LocalTAmountWithoutVAT, ExpenseType_ID
FROM RECEIVEDCREDITNOTES2 A
WHERE A.PARENT_ID = :Document_ID
INTO :mTempVAT, :mTempAmount, mTempType
DO BEGIN
mResult = IB_SCBADDCREDITNOTE(mDocument, mTempType, mTempAmount, mTempVAT);
END
-- Korekce dobropisu
END ELSE IF (DocumentType = '63') THEN BEGIN
FOR
SELECT (LocalTAmount - LocalTAmountWithoutVAT), LocalTAmountWithoutVAT, :mVATIssuedDeposits_IT_ID
FROM VATISSUEDDCREDITNOTES2 A
WHERE A.PARENT_ID = :Document_ID
INTO :mTempVAT, :mTempAmount, mTempType
DO BEGIN
mResult = IB_SCBADDCREDITNOTE(mDocument, mTempType, mTempAmount, mTempVAT);
END
END ELSE IF (DocumentType = '65') THEN BEGIN
FOR
SELECT (LocalTAmount - LocalTAmountWithoutVAT), LocalTAmountWithoutVAT, :mVATReceivedDeposits_ET_ID
FROM VATRECEIVEDDCREDITNOTES2 A
WHERE A.PARENT_ID = :Document_ID
INTO :mTempVAT, :mTempAmount, mTempType
DO BEGIN
mResult = IB_SCBADDCREDITNOTE(mDocument, mTempType, mTempAmount, mTempVAT);
END
END ELSE BEGIN
mResult = IB_SCBADDPAYMENT(mDocument, mTempAmount);
END
WHILE (IB_SCBISAFFECTEDROWS(mDocument) <> 0) DO
BEGIN
mTempType = IB_SCBREADTYPE(mDocument);
mTempAmount = IB_SCBREADAMOUNT(mDocument);
mTempVAT = IB_SCBREADVAT(MDOCUMENT);
Error = 0;
IF ((mTempDate >= ADateFrom$DATE) AND (mResult <> 0)) THEN
BEGIN
DocDate$DATE = mTempDate;
mDecide = mTempType;
IF (mAsCredit <> mRealCredit) THEN
mTempAmount = -1 * mTempAmount;
IF (mAsCredit = 'N') THEN
BEGIN
Category = 1;
ExpenseType_ID = mTempType;
IncomeType_ID = null;
VatDebit = mTempVAT;
IF ((ExpenseType_ID is Null) or (ExpenseType_ID = '') or (ExpenseType_ID='A000000000')) THEN
Error = 1;
END ELSE
BEGIN
Category = 0;
IncomeType_ID = mTempType;
mDecide = mTempType;
ExpenseType_ID = null;
VATCredit = mTempVAT;
IF ((IncomeType_ID is Null) or (IncomeType_ID = '') or (IncomeType_ID='A000000000')) THEN
Error = 1;
END
IF (DocumentType = '09') THEN
BEGIN
IF (mPayCredit = 'N') THEN
BEGIN
IF (mRealCredit <> mPayCredit) THEN
BEGIN
BankDebit = -1 * mOriginalPayAmount;
BankCredit = 0;
END ELSE
BEGIN
BankDebit = mOriginalPayAmount;
BankCredit = 0;
END
END ELSE
BEGIN
IF (mRealCredit <> mPayCredit) THEN
BEGIN
BankCredit = -1 * mOriginalPayAmount;
BankDebit = 0;
END ELSE BEGIN
BankCredit = mOriginalPayAmount;
BankDebit = 0;
END
END
END ELSE IF ((DocumentType = '05') or (DocumentType = '06') or (DocumentType = 'CP') or (DocumentType = 'CR')) THEN
BEGIN
IF (mPayCredit = 'N') THEN
BEGIN
IF (mRealCredit <> mPayCredit) THEN
CashDebit = -1 * mOriginalPayAmount;
ELSE
CashDebit = mOriginalPayAmount;
END ELSE
BEGIN
IF (mRealCredit <> mPayCredit) THEN
CashCredit = -1 * mOriginalPayAmount;
ELSE
CashCredit = mOriginalPayAmount;
END
END ELSE IF ((DocumentType = '01') or (DocumentType = '02')) THEN BEGIN
-- Zda se zapisuje i do prubezne polozky
mHasImpactToThroughItem='A';
IF (DocumentType = '01') THEN
SELECT A.HasImpactToThroughItem
FROM OtherIncomes A
WHERE A.ID = :Document_ID
INTO :mHasImpactToThroughItem;
ELSE
SELECT A.HasImpactToThroughItem
FROM OtherExpenses A
WHERE A.ID = :Document_ID
INTO :mHasImpactToThroughItem;
IF (mHasImpactToThroughItem='A') THEN BEGIN
IF (mPayCredit = 'N') THEN BEGIN
IF (mRealCredit <> mPayCredit) THEN
ThroughItemDebit = -1 * mOriginalPayAmount;
ELSE
ThroughItemDebit = mOriginalPayAmount;
END ELSE BEGIN
IF (mRealCredit <> mPayCredit) THEN
ThroughItemCredit = -1 * mOriginalPayAmount;
ELSE
ThroughItemCredit = mOriginalPayAmount;
END
END
END ELSE IF ((DocumentType = 'U0') or (DocumentType = 'U1')) THEN BEGIN
Amount = -1 * mOriginalPayAmount;
MBACKVATC = VATCredit;
MBACKVATD = VatDebit;
VATCredit = 0;
VATDebit = 0;
Error = 0;
IF (DocumentType = 'U0') THEN BEGIN
mSaved_ID = IncomeType_ID;
IncomeType_ID = mIssuedDeposits_IT_ID;
IF ((IncomeType_ID is Null) or (IncomeType_ID = '')) THEN
Error = 1;
mRowNumber = mRowNumber + 1;
RowNumber = mRowNumber;
SUSPEND;
IncomeType_ID = mSaved_ID;
END ELSE BEGIN
mSaved_ID = ExpenseType_ID;
ExpenseType_ID = mReceivedDeposits_ET_ID;
IF ((ExpenseType_ID is Null) or (ExpenseType_ID = '')) THEN
Error = 1;
mRowNumber = mRowNumber + 1;
RowNumber = mRowNumber;
SUSPEND;
ExpenseType_ID = mSaved_ID;
END
VATCredit = MBACKVATC;
VatDebit = MBACKVATD;
END
IF (PDocumentType = 'CP') THEN BEGIN
IF (mDecide = 'XX') THEN BEGIN
ThroughItemDebit = ThroughItemDebit + mOriginalPayAmount;
mTempAmount = 0;
IncomeType_ID = 'A000000000';
ExpenseType_ID = Null;
ERROR = 0;
END
END ELSE IF (PDocumentType = 'CR') THEN BEGIN
ThroughItemCredit = ThroughItemCredit + mOriginalPayAmount;
mTempAmount = 0;
IncomeType_ID = Null;
ExpenseType_ID = 'A000000000';
Error = 0;
END
Amount = mTempAmount;
/* Typ příjem / výdej DPH se částka přsune do příslušného sloupce DPH*/
IF (mAsCredit = 'N') THEN BEGIN
SELECT ET.Category
FROM EXPENSETYPES ET
WHERE ET.ID = :ExpenseType_ID
INTO :METCategory;
MITCategory = Null;
END ELSE BEGIN
SELECT IT.Category
FROM IncomeTypes IT
WHERE IT.ID = :IncomeType_ID
INTO :MITCategory;
METCategory = NULL;
END
IF (mETCategory = 4) THEN BEGIN
VatDebit = VatDebit + Amount;
Amount = 0;
END ELSE IF (mITCategory = 2) THEN BEGIN
VatCredit = VatCredit + Amount;
Amount = 0;
END
mRowNumber = mRowNumber + 1;
RowNumber = mRowNumber;
SUSPEND;
mOriginalPayAmount = 0;
END
END
END
END
ComputedRow = Null;
/* ted je jeste potreba vratit vsechny doklady pokladna prijem */
PDocumentType = Null;
PDocument_ID = Null;
PDocumentDisplayName = Null;
SORT_PDocumentDisplayName = Null;
ThroughItemDebit = 0;
ThroughItemCredit = 0;
DocumentType = '05';
Category = 0;
BankCredit = 0;
BankDebit = 0;
CashDebit = 0;
VATDebit = 0;
VATCredit = 0;
ExpenseType_ID = Null;
/*Hlavicka*/
FOR
SELECT
B.DocDate$DATE, B.ID, B.Description, B.LOCALAMOUNT, B.LOCALROUNDINGAMOUNT,
D.Code || '-' || B.OrdNumber || '/' || P.Code, D.Name,
D.Code || '-' || IB_LPad(B.OrdNumber, 8, '0') || '/' || P.Code
FROM CashReceived B
JOIN DocQueues D ON D.ID = B.DocQueue_ID
JOIN Periods P ON P.ID = B.Period_ID
WHERE B.PDocument_ID is null and (B.DocDate$DATE<:ADateTo$DATE) and (B.DocDate$DATE>=:ADateFrom$DATE)
INTO
:DocDate$DATE, :Document_ID, :Text, :CashCredit, :mTempRoundingAmount,
:DocumentDisplayName, :mText, :Sort_DocumentDisplayName
DO BEGIN
mResult = IB_SCBCLEAR(mDocument);
FOR
SELECT A.IncomeType_ID, A.LocalTAmountWithoutVAT, A.LocalTAmount - A.LocalTAmountWithoutVAT
FROM CASHRECEIVED2 A
WHERE (A.PARENT_ID = :Document_ID) AND ((A.RowType <> 4) OR (A.VATIndex_ID IS NOT NULL))
ORDER BY A.POSINDEX
INTO :mTempType, :mTempAmount, :mTempVAT
DO BEGIN
mResult = IB_SCBADDROW(mDocument, mTempType, mTempAmount, mTempVAT);
END
IF (MTEMPROUNDINGAMOUNT <> 0) THEN BEGIN
/*halerove vyrovnani se prida jako radek*/
mResult = IB_SCBADDROW(mDocument, mRounding_IT_ID, mTempRoundingAmount, 0);
END
mResult = IB_SCBADDPAYMENT(mDocument, CashCredit);
WHILE (IB_SCBISAFFECTEDROWS(mDocument) <> 0) DO BEGIN
/*ctou se vystupy z UDF*/
AMOUNT = IB_SCBREADAMOUNT(mDocument);
VatCredit = IB_SCBREADVAT(mDocument);
IncomeType_ID = IB_SCBREADTYPE(mDocument);
SELECT IT.Category
FROM IncomeTypes IT
WHERE IT.ID = :IncomeType_ID
INTO :MITCategory;
IF (Text = '') THEN
Text = mText;
Error = 0;
ThroughItemDebit = 0;
IF ((IncomeType_ID is Null) or (IncomeType_ID = '')) THEN
Error = 1;
ELSE IF (IncomeType_ID='A000000000') THEN BEGIN
ThroughItemDebit = Amount;
Amount = 0;
END
/* Typ příjem / výdej DPH se částka přsune do příslušného sloupce DPH*/
IF (mITCategory = 2) THEN BEGIN
VatCredit = VatCredit + Amount;
Amount = 0;
END
mRowNumber = mRowNumber + 1;
RowNumber = mRowNumber;
SUSPEND;
CashCredit = 0;
END
END
ThroughItemDebit = 0;
ThroughItemCredit = 0;
/* ted je jeste potreba vratit vsechny doklady pokladna vydej */
DocumentType = '06';
Category = 1;
BankCredit = 0;
BankDebit = 0;
CashCredit = 0;
VATDebit = 0;
VATCredit = 0;
IncomeType_ID = Null;
FOR
SELECT
B.DocDate$DATE, B.ID, B.Description, B.LOCALAMOUNT, B.LOCALROUNDINGAMOUNT,
D.Code || '-' || B.OrdNumber || '/' || P.Code, D.Name,
D.Code || '-' || IB_LPad(B.OrdNumber, 8, '0') || '/' || P.Code
FROM CASHPAID B
JOIN DocQueues D ON D.ID = B.DocQueue_ID
JOIN Periods P ON P.ID = B.Period_ID
WHERE B.PDocument_ID is null and (B.DocDate$DATE<:ADateTo$DATE) and (B.DocDate$DATE>=:ADateFrom$DATE)
INTO
:DocDate$DATE, :Document_ID, :Text, :CashDebit, :mTempRoundingAmount,
:DocumentDisplayName, :mText, :Sort_DocumentDisplayName
DO BEGIN
mResult = IB_SCBCLEAR(mDocument);
FOR
SELECT A.ExpenseType_ID, A.LocalTAmountWithoutVAT, A.LocalTAmount - A.LocalTAmountwithoutVAT
FROM CASHPAID2 A
WHERE A.PARENT_ID = :Document_ID
ORDER BY A.POSINDEX
INTO :mTempType, :mTempAmount, :mTempVAT
DO BEGIN
mResult = IB_SCBADDROW(mDocument, mTempType, mTempAmount, mTempVAT);
END
IF (mTempRoundingAmount <> 0) THEN BEGIN
/*halerove vyrovnani se prida jako radek*/
mResult = IB_SCBADDROW(mDocument, mRounding_ET_ID, mTempRoundingAmount, 0);
END
mResult = IB_SCBADDPAYMENT(mDocument, CashDebit);
WHILE (IB_SCBISAFFECTEDROWS(mDocument) <> 0) DO BEGIN
/*ctou se vystupy z UDF*/
AMOUNT = IB_SCBREADAMOUNT(mDocument);
VatDebit = IB_SCBREADVAT(mDocument);
ExpenseType_ID = IB_SCBREADTYPE(mDocument);
SELECT ET.Category
FROM EXPENSETYPES ET
WHERE ET.ID = :ExpenseType_ID
INTO :METCategory;
IF (Text = '') THEN
Text = mText;
Error = 0;
ThroughItemCredit = 0;
IF ((ExpenseType_ID is Null) or (ExpenseType_ID = '')) THEN
Error = 1;
ELSE IF (ExpenseType_ID='A000000000') THEN BEGIN
ThroughItemCredit = Amount;
Amount = 0;
END
/* Typ příjem / výdej DPH se částka přsune do příslušného sloupce DPH*/
IF (mETCategory = 4) THEN BEGIN
VatDebit = VatDebit + Amount;
Amount = 0;
END
mRowNumber = mRowNumber + 1;
RowNumber = mRowNumber;
suspend;
CashDebit = 0;
END
END
ThroughItemDebit = 0;
ThroughItemCredit = 0;
/* ted je jeste potreba vratit vsechny doklady vraceni pokladna prijem */
DocumentType = '07';
Category = 0;
BankCredit = 0;
BankDebit = 0;
CashDebit = 0;
VATDebit = 0;
VATCredit = 0;
ExpenseType_ID = Null;
FOR
SELECT
B.DocDate$DATE, B.ID, B.Description, -B.LocalAmount, -B.LocalRoundingAmount,
D.Code || '-' || B.OrdNumber || '/' || P.Code, D.Name,
D.Code || '-' || IB_LPad(B.OrdNumber, 8, '0') || '/' || P.Code
FROM RefundedCashReceived B
JOIN DocQueues D ON D.ID = B.DocQueue_ID
JOIN Periods P ON P.ID = B.Period_ID
WHERE (B.DocDate$DATE<:ADateTo$DATE) and (B.DocDate$DATE>=:ADateFrom$DATE)
INTO
:DocDate$DATE, :Document_ID, :Text, :CashCredit, :mTempRoundingAmount,
:DocumentDisplayName, :mText, :Sort_DocumentDisplayName
DO BEGIN
mResult = IB_SCBCLEAR(mDocument);
FOR
SELECT A.IncomeType_ID, -A.LocalTAmountwithoutVAT, A.LocalTAmountWithOutVAT - A.LocalTAmount
FROM RefundedCashReceived2 A
WHERE (A.PARENT_ID = :Document_ID) AND ((A.RowType <> 4) OR (A.VATIndex_ID IS NOT NULL))
ORDER BY A.POSINDEX
INTO :mTempType, :mTempAmount, :mTempVAT
DO BEGIN
mResult = IB_SCBADDROW(mDocument, mTempType, mTempAmount, mTempVAT);
END
IF (mTempRoundingAmount <> 0) THEN BEGIN
/*halerove vyrovnani se prida jako radek*/
mResult = IB_SCBADDROW(mDocument, mRounding_IT_ID, mTempRoundingAmount, 0);
END
mResult = IB_SCBADDPAYMENT(mDocument, CASHCREDIT);
WHILE (IB_SCBISAFFECTEDROWS(mDocument) <> 0) DO BEGIN
/*ctou se vystupy z UDF*/
AMOUNT = IB_SCBREADAMOUNT(mDocument);
VatCredit = IB_SCBREADVAT(mDocument);
IncomeType_ID = IB_SCBREADTYPE(mDocument);
SELECT IT.Category
FROM IncomeTypes IT
WHERE IT.ID = :IncomeType_ID
INTO :MITCategory;
IF (Text = '') THEN
Text = mText;
Error = 0;
ThroughItemDebit = 0;
IF ((IncomeType_ID is Null) or (IncomeType_ID = '')) THEN
Error = 1;
ELSE IF (IncomeType_ID='A000000000') THEN BEGIN
ThroughItemDebit = Amount;
Amount = 0;
END
/* Typ příjem / výdej DPH se částka přsune do příslušného sloupce DPH*/
IF (mITCategory = 2) THEN BEGIN
VatCredit = VatCredit + Amount;
Amount = 0;
END
mRowNumber = mRowNumber + 1;
RowNumber = mRowNumber;
SUSPEND;
CashCredit = 0;
END
END
ThroughItemDebit = 0;
ThroughItemCredit = 0;
/* ted je jeste potreba vratit vsechny doklady vraceni pokladna vydej */
DocumentType = '08';
Category = 1;
BankCredit = 0;
BankDebit = 0;
CashCredit = 0;
VATDebit = 0;
VATCredit = 0;
IncomeType_ID = Null;
FOR
SELECT
B.DocDate$DATE, B.ID, B.Description, -B.LocalAmount, -B.LocalRoundingAmount,
D.Code || '-' || B.OrdNumber || '/' || P.Code, D.Name,
D.Code || '-' || IB_LPad(B.OrdNumber, 8, '0') || '/' || P.Code
FROM RefundedCashPaid B
JOIN DocQueues D ON D.ID = B.DocQueue_ID
JOIN Periods P ON P.ID = B.Period_ID
WHERE (B.DocDate$DATE<:ADateTo$DATE) and (B.DocDate$DATE>=:ADateFrom$DATE)
INTO
:DocDate$DATE, :Document_ID, :Text, :CASHDEBIT, :MTEMPROUNDINGAMOUNT,
:DocumentDisplayName, :mText, :Sort_Documentdisplayname
DO BEGIN
mResult = IB_SCBCLEAR(mDocument);
FOR
SELECT A.ExpenseType_ID, -A.LocalTAmountwithoutVAT, A.LocalTAmountwithoutVAT - A.LocalTAmount
FROM RefundedCashPaid2 A
WHERE A.PARENT_ID = :Document_ID
ORDER BY A.POSINDEX
INTO :mTempType, :mTempAmount, :mTempVAT
DO BEGIN
mResult = IB_SCBADDROW(mDocument, mTempType, mTempAmount, mTempVAT);
END
IF (MTEMPROUNDINGAMOUNT <> 0) THEN BEGIN
/*halerove vyrovnani se prida jako radek*/
mResult = IB_SCBADDROW(mDocument, mRounding_ET_ID, mTempRoundingAmount, 0);
END
mResult = IB_SCBADDPAYMENT(mDocument, CASHDEBIT);
WHILE (IB_SCBISAFFECTEDROWS(mDocument) <> 0) DO BEGIN
/*ctou se vystupy z UDF*/
AMOUNT = IB_SCBREADAMOUNT(mDocument);
VatDebit = IB_SCBREADVAT(mDocument);
ExpenseType_ID = IB_SCBREADTYPE(mDocument);
SELECT ET.Category
FROM EXPENSETYPES ET
WHERE ET.ID = :ExpenseType_ID
INTO :METCategory;
IF (Text = '') THEN
Text = mText;
Error = 0;
ThroughItemCredit = 0;
IF ((ExpenseType_ID is Null) or (ExpenseType_ID = '')) THEN
Error = 1;
ELSE IF (ExpenseType_ID='A000000000') THEN BEGIN
ThroughItemCredit = Amount;
Amount = 0;
END
/* Typ příjem / výdej DPH se částka přsune do příslušného sloupce DPH*/
IF (mETCategory = 4) THEN BEGIN
VatDebit = VatDebit + Amount;
Amount = 0;
END
mRowNumber = mRowNumber + 1;
RowNumber = mRowNumber;
suspend;
CASHDEBIT = 0;
END
END
/* ted je jeste potreba vratit vsechny bankovni vypisy */
DocumentType = '09';
CashCredit = 0;
CashDebit = 0;
FOR
SELECT
A.DocDate$DATE, B.ID, A.IncomeType_ID, A.ExpenseType_ID, A.Credit,
A.Text, A.LocalTAmount, D.Code || '-' || B.OrdNumber || '/' || P.Code || '/' || A.PosIndex,
D.Name, ET.Category, IT.Category,
D.Code || '-' || IB_LPad(B.OrdNumber, 8, '0') || '/' || P.Code || '/' || IB_LPad(A.PosIndex, 3, '0')
FROM BankStatements2 A
JOIN BankStatements B ON B.ID = A.Parent_ID
JOIN DocQueues D ON D.ID = B.DocQueue_ID
JOIN Periods P ON P.ID = B.Period_ID
LEFT JOIN ExpenseTypes ET ON ET.ID = A.ExpenseType_ID
LEFT JOIN IncomeTypes IT ON IT.ID = A.IncomeType_ID
WHERE A.PDocument_ID is null and (A.DocDate$DATE<:ADateTo$DATE) and (A.DocDate$DATE>=:ADateFrom$DATE) and
(A.IsMultiPaymentRow = 'N')
INTO
:DocDate$DATE, :Document_ID, :IncomeType_ID, :ExpenseType_ID, :mPayCredit,
:Text, :Amount, :DocumentDisplayName, :mText, :mETCategory, :mITCategory, :Sort_DocumentDisplayName
DO BEGIN
Error = 0;
ThroughItemDebit = 0;
ThroughItemCredit = 0;
VATCredit = 0;
VATDebit = 0;
IF (mPayCredit = 'N') THEN BEGIN
Category = 1;
BankCredit = 0;
BankDebit = Amount;
IF ((ExpenseType_ID is Null) or (ExpenseType_ID = '')) THEN
Error = 1;
ELSE IF (ExpenseType_ID='A000000000') THEN BEGIN
ThroughItemCredit = Amount;
Amount = 0;
END
/* Typ výdej DPH se částka přsune do příslušného sloupce DPH*/
IF (mETCategory = 4) THEN BEGIN
VatDebit = VatDebit + Amount;
Amount = 0;
END
END ELSE BEGIN
Category = 0;
BankCredit = Amount;
BankDebit = 0;
IF ((IncomeType_ID is Null) or (IncomeType_ID = '')) THEN
Error = 1;
ELSE IF (IncomeType_ID='A000000000') THEN BEGIN
ThroughItemDebit = Amount;
Amount = 0;
END
/* Typ příjem DPH se částka přsune do příslušného sloupce DPH*/
IF (mITCategory = 2) THEN BEGIN
VatCredit = VatCredit + Amount;
Amount = 0;
END
END
IF (Text = '') THEN
Text = mText;
mRowNumber = mRowNumber + 1;
RowNumber = mRowNumber;
suspend;
END
ThroughItemDebit = 0;
ThroughItemCredit = 0;
/* Zaverkove kurzove rozdily bank */
DocumentType = '16';
CashCredit = 0;
CashDebit = 0;
VATCredit = 0;
VATDebit = 0;
FOR
SELECT B.DocDate$DATE, B.Amount, B.ID, BA.Name, B.Profit,
D.Code || '-' || B.OrdNumber || '/' || P.Code, D.Name,
D.Code || '-' || IB_LPad(B.OrdNumber, 8, '0') || '/' || P.Code
FROM BankExchangeDifferences B
JOIN BankAccounts BA ON BA.ID = B.BankAccount_ID
JOIN DocQueues D ON D.ID = B.DocQueue_ID
JOIN Periods P ON P.ID = B.Period_ID
WHERE (B.DocDate$DATE<:ADateTo$DATE) and (B.DocDate$DATE>=:ADateFrom$DATE)
INTO
:DocDate$DATE, :Amount, :Document_ID, :Text, :mPayCredit, :DocumentDisplayName, :mText, :Sort_DocumentDisplayName
DO BEGIN
Error = 0;
IF (mPayCredit = 'N') THEN BEGIN
BankCredit = 0;
BankDebit = Amount;
IncomeType_ID = Null;
ExpenseType_ID = mExchangeDifferences_ET_ID;
Category = 1;
IF ((ExpenseType_ID is Null) or (ExpenseType_ID = '') or (ExpenseType_ID='A000000000')) THEN
Error = 1;
END ELSE BEGIN
BankCredit = Amount;
BankDebit = 0;
IncomeType_ID = mExchangeDifferences_IT_ID;
ExpenseType_ID = Null;
Category = 0;
IF ((IncomeType_ID is Null) or (IncomeType_ID = '') or (IncomeType_ID='A000000000')) THEN
Error = 1;
END
IF (Text = '') THEN
Text = mText;
mRowNumber = mRowNumber + 1;
RowNumber = mRowNumber;
SUSPEND;
END
/* Zaverkove kurzove rozdily pokladen */
DocumentType = '19';
BankCredit = 0;
BankDebit = 0;
VATCredit = 0;
VATDebit = 0;
FOR
SELECT B.DocDate$DATE, B.Amount, B.ID, CD.Name, B.Profit,
D.Code || '-' || B.OrdNumber || '/' || P.Code, D.Name,
D.Code || '-' || IB_LPad(B.OrdNumber, 8, '0') || '/' || P.Code
FROM CashDeskExchangeDifferences B
JOIN CashDesks CD ON CD.ID = B.CashDesk_ID
JOIN DocQueues D ON D.ID = B.DocQueue_ID
JOIN Periods P ON P.ID = B.Period_ID
WHERE (B.DocDate$DATE<:ADateTo$DATE) and (B.DocDate$DATE>=:ADateFrom$DATE)
INTO
:DocDate$DATE, :Amount, :Document_ID, :Text, :mPayCredit, :DocumentDisplayName, :mText, :Sort_DocumentDisplayName
DO BEGIN
Error = 0;
IF (mPayCredit = 'N') THEN BEGIN
CashCredit = 0;
CashDebit = Amount;
IncomeType_ID = Null;
ExpenseType_ID = mExchangeDifferences_ET_ID;
Category = 1;
IF ((ExpenseType_ID is Null) or (ExpenseType_ID = '') or (ExpenseType_ID='A000000000')) THEN
Error = 1;
END ELSE BEGIN
CashCredit = Amount;
CashDebit = 0;
IncomeType_ID = mExchangeDifferences_IT_ID;
ExpenseType_ID = Null;
Category = 0;
IF ((IncomeType_ID is Null) or (IncomeType_ID = '') or (IncomeType_ID='A000000000')) THEN
Error = 1;
END
IF (Text = '') THEN
Text = mText;
mRowNumber = mRowNumber + 1;
RowNumber = mRowNumber;
SUSPEND;
END
/* tady se jeste zobrazi data z ostatnich zaznamu */
DocumentType = '99';
BankCredit = 0;
BankDebit = 0;
CashCredit = 0;
CashDebit = 0;
VATCredit = 0;
VATDebit = 0;
FOR
SELECT B.DocDate$DATE, A.LocalTAmount, A.IncomeType_ID, A.ExpenseType_ID,
B.ID, A.Text, B.Credit, B.HasImpactToThroughItem,
D.Code || '-' || B.OrdNumber || '/' || P.Code, B.Description, D.Name, ET.Category, IT.Category,
D.Code || '-' || IB_LPad(B.OrdNumber, 8, '0') || '/' || P.Code
FROM OtherRecords2 A
JOIN OtherRecords B ON B.ID = A.Parent_ID
JOIN DocQueues D ON D.ID = B.DocQueue_ID
JOIN Periods P ON P.ID = B.Period_ID
LEFT JOIN ExpenseTypes ET ON ET.ID = A.ExpenseType_ID
LEFT JOIN IncomeTypes IT ON IT.ID = A.IncomeType_ID
WHERE (B.DocDate$DATE<:ADateTo$DATE) and (B.DocDate$DATE>=:ADateFrom$DATE)
INTO
:DocDate$DATE, :Amount, :IncomeType_ID, :ExpenseType_ID, :Document_ID,
:Text, :mPayCredit, :mHasImpactToThroughItem, :DocumentDisplayName, :mText, :mPText, :mETCategory, :mITCategory, :Sort_DocumentDisplayName
DO BEGIN
ThroughItemCredit = 0;
ThroughItemDebit = 0;
VATCredit = 0;
VATDebit = 0;
Error = 0;
IF (mPayCredit = 'N') THEN BEGIN
Category = 1;
IncomeType_ID = Null;
IF (mHasImpactToThroughItem = 'A') THEN
ThroughItemDebit = Amount;
IF ((ExpenseType_ID is Null) or (ExpenseType_ID = '') or (ExpenseType_ID='A000000000')) THEN
Error = 1;
/* Typ výdej DPH se částka přsune do příslušného sloupce DPH*/
IF (mETCategory = 4) THEN BEGIN
VatDebit = Amount;
Amount = 0;
END
END ELSE BEGIN
Category = 0;
ExpenseType_ID = Null;
IF (mHasImpactToThroughItem = 'A') THEN
ThroughItemCredit = Amount;
IF ((IncomeType_ID is Null) or (IncomeType_ID = '') or (IncomeType_ID='A000000000')) THEN
Error = 1;
/* Typ příjem DPH se částka přsune do příslušného sloupce DPH*/
IF (mITCategory = 2) THEN BEGIN
VatCredit = Amount;
Amount = 0;
END
END
IF (Text = '') THEN
Text = mText;
IF (Text = '') THEN
Text = mPText;
mRowNumber = mRowNumber + 1;
RowNumber = mRowNumber;
SUSPEND;
END
/* tady se preuctuje zuctovani DZL v dokladech FV, DFV, FP, DFP */
FOR
SELECT A.Category, A.DocDate$DATE, A.Amount, A.VATCredit, A.VATDebit,
A.IncomeType_ID, A.ExpenseType_ID, A.Text, A.DocumentType, A.Document_ID,
A.PDocumentType, A.PDocument_ID,
A.DocumentDisplayName, A.PDocumentDisplayName, A.Error,
A.Sort_DocumentDisplayName, A.Sort_PDocumentDisplayName
FROM SimpleCashBookVATDUsages(:ADateFrom$DATE, :ADateTo$DATE, :mVATIssuedDeposits_IT_ID, :mVATReceivedDeposits_ET_ID) A
INTO
:Category, :DocDate$DATE, :Amount, :VATCredit, :VATDebit,
:IncomeType_ID, :ExpenseType_ID, :Text, :DocumentType, :Document_ID,
:PDocumentType, :PDocument_ID,
:DocumentDisplayName, :PDocumentDisplayName, :Error,
:Sort_DocumentDisplayName, :Sort_PDocumentDisplayName
DO BEGIN
ThroughItemCredit = 0;
ThroughItemDebit = 0;
BankCredit = 0;
BankDebit = 0;
CashCredit = 0;
CashDebit = 0;
mRowNumber = mRowNumber + 1;
RowNumber = mRowNumber;
SUSPEND;
END
/* Jeste souhrnne uctenky z POSu */
BankCredit = 0;
BankDebit = 0;
PDocumentType = Null;
PDocument_ID = Null;
PDocumentDisplayName = Null;
VATDebit = 0;
VATCredit = 0;
FOR
SELECT A.Category, A.DocDate$DATE, A.Amount, A.CashCredit, A.CashDebit,
A.ThroughItemCredit, A.ThroughItemDebit, A.VATCredit, A.VATDebit,
A.IncomeType_ID, A.ExpenseType_ID, A.Text, A.DocumentType, A.Document_ID,
A.DocumentDisplayName, A.Error, A.Sort_DocumentDisplayName
FROM SimpleCashBookPOS(:ADateFrom$DATE, :ADateTo$DATE, :mPOS_IT_ID) A
INTO
:Category, :DocDate$DATE, :Amount, :CashCredit, :CashDebit, :ThroughItemCredit,
:ThroughItemDebit, :VATCredit, :VATDebit, :IncomeType_ID, :ExpenseType_ID, :Text,
:DocumentType, :Document_ID, :DocumentDisplayName, :Error, :Sort_DocumentDisplayName
DO BEGIN
mRowNumber = mRowNumber + 1;
RowNumber = mRowNumber;
SUSPEND;
END
mResult = IB_SCBFREE(mDocument);
END