BEGIN
/* radky DRC - z FP, PV a DZP*/
FOR
SELECT
A.VATIndex_ID, A.Division_ID, A.BusOrder_ID, A.BusTransaction_ID, A.BusProject_ID,
A.LocalBaseAmount,
A.LocalBaseAmount + A.LocalVATAmount,
A.BaseAmount,
A.BaseAmount + A.VATAmount,
V.AllowanceVATIndex_ID,
B.VATDate$DATE, B.VATDeductionDate$DATE
FROM
ReverseChargeDeclarations2 A
join ReverseChargeDeclarations B ON A.Parent_ID = B.ID
join VATIndexes V ON A.VATIndex_ID = V.ID
WHERE
((B.SDocumentType = '04') or (B.SDocumentType = '06')
or (B.SDocumentType = '64') or (B.SDocumentType = '12')) and
(
(B.VATDate$Date >= :AVATDateFrom AND B.VATDate$Date < :AVATDateTo) OR
(V.AllowanceVATIndex_ID IS NOT NULL AND B.VATDeductionDate$Date >= :AVATDateFrom AND B.VATDeductionDate$Date < :AVATDateTo)
) AND
B.VATCountry_ID=:AVATCountry_ID AND
(( :AFirmSelID = '' OR
(B.Firm_ID in (select OBJ_ID from SELDAT where SEL_ID = :AFirmSelID)) OR
(B.Firm_ID in (SELECT ID FROM Firms WHERE Firm_ID in (select OBJ_ID from SELDAT where SEL_ID = :AFirmSelID))) ))
INTO
:VATIndex_ID, :mDivision_ID, :mBusOrder_ID, :mBusTransaction_ID, :mBusProject_ID,
:TAmountWithoutVAT, :TAmount, :ForeignTAmountWithoutVAT, :ForeignTAmount,
:mAllowanceVATIndex_ID, :mVATDate, :mVATDeductionDate
DO BEGIN
EXECUTE PROCEDURE CheckDivisionAndBusX
:mDivision_ID, :ADivisionsSelID, :ADivisionsWithChilds,
:mBusOrder_ID, :ABusOrdersSelID, :ABusOrdersWithChilds,
:mBusTransaction_ID, :ABusTransactionsSelID, :ABusTransactionsWithChilds,
:mBusProject_ID, :ABusProjectsSelID, :ABusProjectsWithChilds
RETURNING_VALUES
:mSuspend;
IF (mSuspend > 0) THEN BEGIN
IF (mVATDate >= :AVATDateFrom AND mVATDate < :AVATDateTo) THEN
SUSPEND;
IF ((mAllowanceVATIndex_ID IS NOT NULL) AND
(mVATDeductionDate >= :AVATDateFrom AND mVATDeductionDate < :AVATDateTo))
THEN BEGIN
VATIndex_ID = mAllowanceVATIndex_ID;
SUSPEND;
END
END
END
/* radky DRC - z DP, VV a DDZP*/
FOR
SELECT
A.VATIndex_ID, A.Division_ID, A.BusOrder_ID, A.BusTransaction_ID, A.BusProject_ID,
-1 * A.LocalBaseAmount,
-1 * (A.LocalBaseAmount + A.LocalVATAmount),
-1 * A.BaseAmount,
-1 * (A.BaseAmount + A.VATAmount),
V.AllowanceVATIndex_ID,
B.VATDate$DATE, B.VATDeductionDate$DATE
FROM
ReverseChargeDeclarations2 A
join ReverseChargeDeclarations B ON A.Parent_ID = B.ID
join VATIndexes V ON A.VATIndex_ID = V.ID
WHERE
((B.SDocumentType = '61') or (B.SDocumentType = '08') or (B.SDocumentType = '65')) and
(
(B.VATDate$Date >= :AVATDateFrom AND B.VATDate$Date < :AVATDateTo) OR
(V.AllowanceVATIndex_ID IS NOT NULL AND B.VATDeductionDate$Date >= :AVATDateFrom AND B.VATDeductionDate$Date < :AVATDateTo)
) AND
B.VATCountry_ID=:AVATCountry_ID AND
(( :AFirmSelID = '' OR
(B.Firm_ID in (select OBJ_ID from SELDAT where SEL_ID = :AFirmSelID)) OR
(B.Firm_ID in (SELECT ID FROM Firms WHERE Firm_ID in (select OBJ_ID from SELDAT where SEL_ID = :AFirmSelID))) ))
INTO
:VATIndex_ID, :mDivision_ID, :mBusOrder_ID, :mBusTransaction_ID, :mBusProject_ID,
:TAmountWithoutVAT, :TAmount, :ForeignTAmountWithoutVAT, :ForeignTAmount,
:mAllowanceVATIndex_ID, :mVATDate, :mVATDeductionDate
DO BEGIN
EXECUTE PROCEDURE CheckDivisionAndBusX
:mDivision_ID, :ADivisionsSelID, :ADivisionsWithChilds,
:mBusOrder_ID, :ABusOrdersSelID, :ABusOrdersWithChilds,
:mBusTransaction_ID, :ABusTransactionsSelID, :ABusTransactionsWithChilds,
:mBusProject_ID, :ABusProjectsSelID, :ABusProjectsWithChilds
RETURNING_VALUES
:mSuspend;
IF (mSuspend > 0) THEN BEGIN
IF (mVATDate >= :AVATDateFrom AND mVATDate < :AVATDateTo) THEN
SUSPEND;
IF ((mAllowanceVATIndex_ID IS NOT NULL) AND
(mVATDeductionDate >= :AVATDateFrom AND mVATDeductionDate < :AVATDateTo))
THEN BEGIN
VATIndex_ID = mAllowanceVATIndex_ID;
SUSPEND;
END
END
END
END;