BEGIN
SumIIAmount = 0;
SumCRAmount = 0;
SumIIAmountWithoutVAT = 0;
SumCRAmountWithoutVAT = 0;
SumIICreditAmount = 0;
SumCRCreditAmount = 0;
SumRIAmount = 0;
TotalAmount = 0;
SumIICreditAmountWithoutVAT = 0;
SumCRCreditAmountWithoutVAT = 0;
TotalAmountWithoutVAT = 0;
mSumVDIAmount = 0;
mSumVDIAmountWithoutVAT = 0;
mSumVDIUsedAmount = 0;
mSumVDIUsedAmountWithoutVAT = 0;
mSumVDICreditAmount = 0;
mSumVDICreditAmountWithoutVAT = 0;
SumPSAmount = 0;
SumPSAmountWithoutVAT = 0;
/* Faktury vydane */
if (IssInvoiceType <> 2) then begin
select Sum(II.LocalAmount), Sum(II.LocalCreditAmount), Sum(II.LocalAmountWithoutVAT), Sum(II.LocalCreditAmountWithoutVAT) from IssuedInvoices II
where II.Firm_ID = :AFirm_ID and
(:DocDateUsed <> 'A' or (II.DocDate$Date >= :DocDateFrom and II.DocDate$Date < :DocDateTo)) and
(:DueDateUsed <> 'A' or (II.DueDate$Date >= :DueDateFrom and II.DueDate$Date < :DueDateTo)) and
(:AccDateUsed <> 'A' or (II.AccDate$Date >= :AccDateFrom and II.AccDate$Date < :AccDateTo)) and
(('' = :PaidStatus) or
(('>' = :PaidStatus) AND (II.Amount > II.PaidAmount)) or
(('=' = :PaidStatus) AND (II.Amount = II.PaidAmount)) or
(('<=' = :PaidStatus) AND (II.Amount <= II.PaidAmount)) or
(('<>' = :PaidStatus) AND (II.Amount <> II.PaidAmount)) or
(('<' = :PaidStatus) AND (II.Amount < II.PaidAmount)))
into :SumIIAmount, :SumIICreditAmount, :SumIIAmountWithoutVAT, :SumIICreditAmountWithoutVAT;
if (SumIIAmount IS NULL) then
SumIIAmount = 0;
if (SumIICreditAmount IS NULL) then
SumIICreditAmount = 0;
if (SumIIAmountWithoutVAT IS NULL) then
SumIIAmountWithoutVAT = 0;
if (SumIICreditAmountWithoutVAT IS NULL) then
SumIICreditAmountWithoutVAT = 0;
end
/*Prijate platby*/
if (CashRecType <> 2) then begin
select Sum(CR.LocalAmount), Sum(CR.LocalCreditAmount), Sum(CR.LocalAmountWithoutVAT), Sum(CR.LocalCreditAmountWithoutVAT) from CashReceived CR
where CR.Firm_ID = :AFirm_ID and (COALESCE(CR.PDocument_ID, '0000000000') = '0000000000') and -- Aby server použil index za sloupec Firm_ID a ne index za pole PDocument_ID použiváme funkci COALESCE.
(:DocDateUsed <> 'A' or (CR.DocDate$Date >= :DocDateFrom and CR.DocDate$Date < :DocDateTo)) and
(:AccDateUsed <> 'A' or (CR.AccDate$Date >= :AccDateFrom and CR.AccDate$Date < :AccDateTo))
into :SumCRAmount, :SumCRCreditAmount, :SumCRAmountWithoutVAT, :SumCRCreditAmountWithoutVAT;
if (SumCRAmount IS NULL) then
SumCRAmount = 0;
if (SumCRCreditAmount IS NULL) then
SumCRCreditAmount = 0;
if (SumCRAmountWithoutVAT IS NULL) then
SumCRAmountWithoutVAT = 0;
if (SumCRCreditAmountWithoutVAT IS NULL) then
SumCRCreditAmountWithoutVAT = 0;
end
/*Souhrnne uctenky pokladniho prodeje*/
if (POSSummaredType <> 0) then begin
select SumPSAmount, SumPSAmountWithoutVAT
from SubscriberTurnover2Pos (
:POSSummaredType, :AFirm_ID,
:DocDateUsed, :DocDateFrom, :DocDateTo,
:AccDateUsed, :AccDateFrom, :AccDateTo
)
into
:SumPSAmount, SumPSAmountWithoutVAT;
end
/*Zalohove listy*/
if (IssDInv = 'A') then begin
select Sum(SI.LocalAmount) - Sum(SI.LocalUsedAmount) from IssuedDInvoices SI
where SI.Firm_ID = :AFirm_ID and
(:DocDateUsed <> 'A' or (SI.DocDate$Date >= :DocDateFrom and SI.DocDate$Date < :DocDateTo)) and
(:DueDateUsed <> 'A' or (SI.DueDate$Date >= :DueDateFrom and SI.DueDate$Date < :DueDateTo))
into :SumRIAmount;
if (SumRIAmount IS NULL) then
SumRIAmount = 0;
end
/* DZV */
if (AVATIssDInv <> 3) then begin
select
Sum(II.LocalAmount),
Sum(II.LocalCreditAmount),
Sum(II.LocalAmountWithoutVAT),
Sum(II.LocalCreditAmountWithoutVAT),
Sum(II.LocalUsedAmount),
Sum(II.LocalUsedAmountWithoutVAT)
from
VATIssuedDInvoices II
where
II.Firm_ID = :AFirm_ID and
(:DocDateUsed <> 'A' or (II.DocDate$Date >= :DocDateFrom and II.DocDate$Date < :DocDateTo)) and
(:AccDateUsed <> 'A' or (II.AccDate$Date >= :AccDateFrom and II.AccDate$Date < :AccDateTo)) and
(('' = :PaidStatus) or
(('>' = :PaidStatus) AND (II.Amount > II.PaidAmount)) or
(('=' = :PaidStatus) AND (II.Amount = II.PaidAmount)) or
(('<=' = :PaidStatus) AND (II.Amount <= II.PaidAmount)) or
(('<>' = :PaidStatus) AND (II.Amount <> II.PaidAmount)) or
(('<' = :PaidStatus) AND (II.Amount < II.PaidAmount)))
into
:mSumVDIAmount,
:mSumVDICreditAmount,
:mSumVDIAmountWithoutVAT,
:mSumVDICreditAmountWithoutVAT,
:mSumVDIUsedAmount,
:mSumVDIUsedAmountWithoutVAT;
if (mSumVDIAmount IS NULL) then
mSumVDIAmount = 0;
if (mSumVDICreditAmount IS NULL) then
mSumVDICreditAmount = 0;
if (mSumVDIAmountWithoutVAT IS NULL) then
mSumVDIAmountWithoutVAT = 0;
if (mSumVDICreditAmountWithoutVAT IS NULL) then
mSumVDICreditAmountWithoutVAT = 0;
if (mSumVDIUsedAmount IS NULL) then
mSumVDIUsedAmount = 0;
if (mSumVDIUsedAmountWithoutVAT IS NULL) then
mSumVDIUsedAmountWithoutVAT = 0;
end
ID = AFirm_ID;
if (IssInvoiceType = 0) then begin
SumIIAmount = SumIIAmount - SumIICreditAmount;
SumIIAmountWithoutVAT = SumIIAmountWithoutVAT - SumIICreditAmountWithoutVAT;
end
if (CashRecType = 0) then begin
SumCRAmount = SumCRAmount - SumCRCreditAmount;
SumCRAmountWithoutVAT = SumCRAmountWithoutVAT - SumCRCreditAmountWithoutVAT;
end
if (POSSummaredType <> 0) then begin
SumCRAmount = SumCRAmount + SumPSAmount;
SumCRAmountWithoutVAT = SumCRAmountWithoutVAT + SumPSAmountWithoutVAT;
end
if (AVATIssDInv = 0) then begin
SumIIAmount = SumIIAmount + mSumVDIAmount - mSumVDICreditAmount;
SumIIAmountWithoutVAT = SumIIAmountWithoutVAT + mSumVDIAmountWithoutVAT - mSumVDICreditAmountWithoutVAT;
end
if (AVATIssDInv = 1) then begin
SumIIAmount = SumIIAmount + mSumVDIAmount;
SumIIAmountWithoutVAT = SumIIAmountWithoutVAT + mSumVDIAmountWithoutVAT;
end
if (AVATIssDInv = 2) then begin
SumIIAmount = SumIIAmount + mSumVDIUsedAmount;
SumIIAmountWithoutVAT = SumIIAmountWithoutVAT + mSumVDIUsedAmountWithoutVAT;
end
SumIIAmount = SumIIAmount+ SumRIAmount;
SumIIAmountWithoutVAT = SumIIAmountWithoutVAT + SumRIAmount;
TotalAmount = SumIIAmount + SumCRAmount;
TotalAmountWithoutVAT = SumIIAmountWithoutVAT + SumCRAmountWithoutVAT;
Suspend;
end;