BEGIN
/* VATSummaryPos VATByPayment */
SELECT Country_ID FROM GlobData INTO :mLocalCountry_ID;
IF (NOT (VATCountry_ID=mLocalCountry_ID)) then
EXIT;
/* prodej */
VATMode = 0;
UsedRatio = 'N';
if (APOSDetailed = 'N') then
BEGIN
SourceDoc_ID = NULL;
SourceDocType = '';
SimplifiedVATDocument = 'A';
POSSumDoc_ID = Null;
FOR
SELECT
A.VATIndex_ID, B.DocQueue_ID, B.OrdNumber, B.Period_ID, B.VATDate$Date,
A.TAmountWithoutVAT, A.LocalTAmountWithoutVAT, A.TAmount, A.LocalTAmount,
B.Description, B.Description, B.Firm_ID, A.Division_ID, A.BusOrder_ID, A.BusTransaction_ID, '' as BusProject_ID,
A.PosIndex, B.ID as Document_ID
FROM
POSSummaredDocuments2 A
join POSSummaredDocuments B ON A.Parent_ID = B.ID
WHERE
B.VATDocument = 'A' and A.VATIndex_ID IS NOT NULL and
B.VATDate$Date >= :AVATDateFrom and B.VATDate$Date < :AVATDateTo and
( (:AFirmSel_ID = '') OR
(B.Firm_ID in (select OBJ_ID from SELDAT where SEL_ID = :AFirmSel_ID)) OR
(B.Firm_ID in (SELECT ID FROM Firms WHERE Firm_ID in (select OBJ_ID from SELDAT where SEL_ID = :AFirmSel_ID))) )
INTO
:VATIndex_ID, :DocQueue_ID, :OrdNumber, :Period_ID, :VATDate$Date,
:TAmountWithoutVAT, :LocalTAmountWithoutVAT, :TAmount, :LocalTAmount,
:Text, :Description, :Firm_ID, :Division_ID, :BusOrder_ID, :BusTransaction_ID, :BusProject_ID,
:PosIndex, :Document_ID
DO BEGIN
EXECUTE PROCEDURE CheckDivisionAndBusX
:Division_ID, :ADivisionSel_ID, :ADivisionsWithChildren,
:BusOrder_ID, :ABusOrderSel_ID, :ABusOrdersWithChildren,
:BusTransaction_ID, :ABusTransactionSel_ID, :ABusTransactionsWithChildren,
:BusProject_ID, :ABusProjectSel_ID, :ABusProjectsWithChildren
RETURNING_VALUES
:mSuspend;
IF (mSuspend > 0) THEN
BEGIN
VATAdmitDate$DATE = VATDate$DATE;
SUSPEND;
END
END
/* vracení */
VATMode = 0;
FOR
SELECT
A.VATIndex_ID, B.DocQueue_ID, B.OrdNumber, B.Period_ID, B.VATDate$Date,
A.TAmountWithoutVAT, A.LocalTAmountWithoutVAT, A.TAmount, A.LocalTAmount,
B.Description, B.Description, B.Firm_ID, A.Division_ID, A.BusOrder_ID, A.BusTransaction_ID, '' as BusProject_ID,
A.PosIndex, B.ID as Document_ID
FROM
POSSummaredDocuments3 A
join POSSummaredDocuments B ON A.Parent_ID = B.ID
WHERE
B.VATDocument = 'A' and A.VATIndex_ID IS NOT NULL and
B.VATDate$Date >= :AVATDateFrom and B.VATDate$Date < :AVATDateTo and
( (:AFirmSel_ID = '') OR
(B.Firm_ID in (select OBJ_ID from SELDAT where SEL_ID = :AFirmSel_ID)) OR
(B.Firm_ID in (SELECT ID FROM Firms WHERE Firm_ID in (select OBJ_ID from SELDAT where SEL_ID = :AFirmSel_ID))) )
INTO
:VATIndex_ID, :DocQueue_ID, :OrdNumber, :Period_ID, :VATDate$Date,
:TAmountWithoutVAT, :LocalTAmountWithoutVAT, :TAmount, :LocalTAmount,
:Text, :Description, :Firm_ID, :Division_ID, :BusOrder_ID, :BusTransaction_ID, :BusProject_ID,
:PosIndex, :Document_ID
DO BEGIN
EXECUTE PROCEDURE CheckDivisionAndBusX
:Division_ID, :ADivisionSel_ID, :ADivisionsWithChildren,
:BusOrder_ID, :ABusOrderSel_ID, :ABusOrdersWithChildren,
:BusTransaction_ID, :ABusTransactionSel_ID, :ABusTransactionsWithChildren,
:BusProject_ID, :ABusProjectSel_ID, :ABusProjectsWithChildren
RETURNING_VALUES
:mSuspend;
IF (mSuspend > 0) THEN
BEGIN
VATAdmitDate$DATE = VATDate$DATE;
SUSPEND;
END
END
END
ELSE
BEGIN
/* vyber jednotlivych uctenek - pro KH DPH CZ */
FOR
SELECT
VI.ID AS VATIndex_ID, B.DocQueue_ID, B.OrdNumber, B.Period_ID, PS.VATDate$Date,
A.TAmountWithoutVAT, A.LocalTAmountWithoutVAT, A.TAmount, A.LocalTAmount,
SUBSTRING(B.Description FROM 1 FOR 160) as Text, SUBSTRING(B.Description FROM 1 FOR 50) as Description, B.Firm_ID, VP.Division_ID, B.BusOrder_ID, B.BusTransaction_ID, B.BusProject_ID,
A.PosIndex, B.ID as Document_ID, B.RefundedDoc_ID, F.VATIdentNumber, B.POSSummaredDocument_ID
FROM
POSDocuments2 A
join POSDocuments B ON A.Parent_ID = B.ID
join POSSummaredDocuments ps on ps.id = b.POSSummaredDocument_ID
join VATIndexes vi ON vi.ID = (SELECT MAX(VATIndex_ID) FROM POSVATIndexes WHERE VATRate_ID = a.VATRate_ID)
join VirtualPOSs vp on vp.ID = b.VirtualPOS_ID
join Firms F on F.ID = B.Firm_ID
WHERE
PS.VATDocument = 'A' and VI.ID IS NOT NULL and
PS.VATDate$Date >= :AVATDateFrom and PS.VATDate$Date < :AVATDateTo and
( (:AFirmSel_ID = '') OR
(B.Firm_ID in (select OBJ_ID from SELDAT where SEL_ID = :AFirmSel_ID)) OR
(B.Firm_ID in (SELECT ID FROM Firms WHERE Firm_ID in (select OBJ_ID from SELDAT where SEL_ID = :AFirmSel_ID))) )
INTO
:VATIndex_ID, :DocQueue_ID, :OrdNumber, :Period_ID, :VATDate$Date,
:TAmountWithoutVAT, :LocalTAmountWithoutVAT, :TAmount, :LocalTAmount,
:Text, :Description, :Firm_ID, :Division_ID, :BusOrder_ID, :BusTransaction_ID, :BusProject_ID,
:PosIndex, :Document_ID, :SourceDoc_ID, :mVATIdentNumber, :POSSumDoc_ID
DO BEGIN
EXECUTE PROCEDURE CheckDivisionAndBusX
:Division_ID, :ADivisionSel_ID, :ADivisionsWithChildren,
:BusOrder_ID, :ABusOrderSel_ID, :ABusOrdersWithChildren,
:BusTransaction_ID, :ABusTransactionSel_ID, :ABusTransactionsWithChildren,
:BusProject_ID, :ABusProjectSel_ID, :ABusProjectsWithChildren
RETURNING_VALUES
:mSuspend;
IF (mSuspend > 0) THEN
BEGIN
SourceDocType = '';
IF (SourceDoc_ID IS NOT NULL) THEN SourceDocType = 'PD';
SimplifiedVATDocument = 'A';
IF (mVATIdentNumber <> '') THEN SimplifiedVATDocument = 'N';
VATAdmitDate$DATE = VATDate$DATE;
SUSPEND;
END
END
/* vyber zaokrouhleni z hlavicek jednotlivych uctenek - pro KH DPH CZ */
FOR
SELECT
VI.ID AS VATIndex_ID, B.DocQueue_ID, B.OrdNumber, B.Period_ID, PS.VATDate$Date,
B.RoundingWithoutVAT, B.LocalRoundingWithoutVAT, B.RoundingAmount, B.LocalRoundingAmount,
SUBSTRING(B.Description FROM 1 FOR 160) as Text, SUBSTRING(B.Description FROM 1 FOR 50) as Description, B.Firm_ID, VP.Division_ID, B.BusOrder_ID, B.BusTransaction_ID, B.BusProject_ID,
999999 as POSIndex, B.ID as Document_ID, B.RefundedDoc_ID, F.VATIdentNumber, B.POSSummaredDocument_ID
FROM
POSDocuments B
join POSSummaredDocuments ps on ps.id = b.POSSummaredDocument_ID
join VATIndexes vi ON vi.ID = (SELECT MAX(VATIndex_ID) FROM POSVATIndexes WHERE VATRate_ID = B.RoundingVATRate_ID)
join VirtualPOSS vp on vp.ID = b.VirtualPOS_ID
join Firms F on F.ID = B.Firm_ID
WHERE
B.RoundingVATRate_ID IS NOT NULL and
PS.VATDocument = 'A' and VI.ID IS NOT NULL and
PS.VATDate$Date >= :AVATDateFrom and PS.VATDate$Date < :AVATDateTo and
( (:AFirmSel_ID = '') OR
(B.Firm_ID in (select OBJ_ID from SELDAT where SEL_ID = :AFirmSel_ID)) OR
(B.Firm_ID in (SELECT ID FROM Firms WHERE Firm_ID in (select OBJ_ID from SELDAT where SEL_ID = :AFirmSel_ID))) )
INTO
:VATIndex_ID, :DocQueue_ID, :OrdNumber, :Period_ID, :VATDate$Date,
:TAmountWithoutVAT, :LocalTAmountWithoutVAT, :TAmount, :LocalTAmount,
:Text, :Description, :Firm_ID, :Division_ID, :BusOrder_ID, :BusTransaction_ID, :BusProject_ID,
:PosIndex, :Document_ID, :SourceDoc_ID, :mVATIdentNumber, :POSSumDoc_ID
DO BEGIN
EXECUTE PROCEDURE CheckDivisionAndBusX
:Division_ID, :ADivisionSel_ID, :ADivisionsWithChildren,
:BusOrder_ID, :ABusOrderSel_ID, :ABusOrdersWithChildren,
:BusTransaction_ID, :ABusTransactionSel_ID, :ABusTransactionsWithChildren,
:BusProject_ID, :ABusProjectSel_ID, :ABusProjectsWithChildren
RETURNING_VALUES
:mSuspend;
IF (mSuspend > 0) THEN
BEGIN
IF (LocalTAmountWithoutVAT = 0) THEN LocalTAmountWithoutVAT = TAmountWithoutVAT;
IF (LocalTAmount = 0) THEN LocalTAmount = TAmount;
SourceDocType = '';
IF (SourceDoc_ID IS NOT NULL) THEN SourceDocType = 'PD';
SimplifiedVATDocument = 'A';
IF (mVATIdentNumber <> '') THEN SimplifiedVATDocument = 'N';
VATAdmitDate$DATE = VATDate$DATE;
SUSPEND;
END
END
END
END