BEGIN
/* proceduru ma smysl volat jen s vyplnenym parametrem innaceid jinak dava sporny vysledek */
mpaidstatus = '';
memployeecount = 0;
firmcount = 0;
FirmWithTurnoverCount = 0;
sumemployeecount = 0;
if ((:InDivisionSelID = '') and (:InBusOrderSelID = '') and (:InBusTransactionSelID = '') and (:InBusProjectSelID = '')) then begin
for
/* Firmy */
select A.ID, A.MainNACECode_ID, N.Code, E.MeanValue
from Firms A
join NACE N on N.ID=A.MainNACECode_ID
join EmployeeCountCategories E on E.ID=A.EmployeeCount_ID
where
(A.Hidden = 'N') and
((A.MainNACECode_ID is not null) and ((:InNACEID='') or (A.MainNACECode_ID = :InNACEID))) and
(
(A.ID in (select OBJ_ID from SELDAT where SEL_ID = :InFirmSelID)) or
(:InFirmSelID = '' and A.Firm_ID is null)
)
into :mFirm_ID, :NACE_ID, :NACE_Code, :mEmployeeCount
do begin
/* Zjisteni obratu pro aktualni firmu */
select SumIIAmount, SumIIAmountWithoutVAT, SumCRAmount, SumCRAmountWithoutVAT,
ID, TotalAmount, TotalAmountWithoutVAT
from
SubscriberTurnover(:IssInvoiceType, :CashRecType, :mIssDInv, :mAVATIssDInv,
:InDocDateUsed, :InDocDateFrom, :InDocDateTo, :InDueDateUsed,
:InDueDateFrom, :InDueDateTo, :mFirm_ID, :mPaidStatus)
into
:SumIIAmount, :SumIIAmountWithoutVAT, :SumCRAmount, :SumCRAmountWithoutVAT,
:ID, :TotalAmount, :TotalAmountWithoutVAT;
/* Navyseni za obraty predchudcu */
for
select B.ID from Firms B
where
B.Firm_ID = :mFirm_ID
into
:mAncestor_ID
do begin
select SumIIAmount, SumIIAmountWithoutVAT, SumCRAmount, SumCRAmountWithoutVAT,
TotalAmount, TotalAmountWithoutVAT
from
SubscriberTurnover(:IssInvoiceType, :CashRecType, :mIssDInv, :mAVATIssDInv,
:InDocDateUsed, :InDocDateFrom, :InDocDateTo, :InDueDateUsed,
:InDueDateFrom, :InDueDateTo, :mAncestor_ID, :mPaidStatus)
into
:mSumIIAmount, :mSumIIAmountWithoutVAT, :mSumCRAmount, :mSumCRAmountWithoutVAT,
:mTotalAmount, :mTotalAmountWithoutVAT;
SumIIAmount = SumIIAmount + mSumIIAmount;
SumIIAmountWithoutVAT = SumIIAmountWithoutVAT + mSumIIAmountWithoutVAT;
SumCRAmount = SumCRAmount + mSumCRAmount;
SumCRAmountWithoutVAT = SumCRAmountWithoutVAT + mSumCRAmountWithoutVAT;
TotalAmount = TotalAmount + mTotalAmount;
TotalAmountWithoutVAT = TotalAmountWithoutVAT + mTotalAmountWithoutVAT;
end
if (:totalamount <> 0) then begin
FirmWithTurnOverCount = :FirmWithTurnOverCount + 1;
SumEmployeeCount = :SumEmployeeCount + mEmployeeCount;
end
Firmcount = :FirmCount + 1;
suspend;
end
end else begin
for
/* Firmy */
select A.ID, A.MainNACECode_ID, N.Code, E.MeanValue
from Firms A
join NACE N on N.ID=A.MainNACECode_ID
join EmployeeCountCategories E on E.ID=A.EmployeeCount_ID
where
(A.Hidden = 'N') and
((A.MainNACECode_ID is not null) and ((:InNACEID='') or (A.MainNACECode_ID = :InNACEID))) and
(
(A.ID in (select OBJ_ID from SELDAT where SEL_ID = :InFirmSelID)) or
(:InFirmSelID = '' and A.Firm_ID is null)
)
into :mFirm_ID, :NACE_ID, :NACE_Code, :mEmployeeCount
do begin
/* Zjisteni obratu pro aktualni firmu */
select SumIIAmount, SumIIAmountWithoutVAT, SumCRAmount, SumCRAmountWithoutVAT,
ID, TotalAmount, TotalAmountWithoutVAT
from
SubscriberTurnoverFromRows(:IssInvoiceType, :CashRecType, :mIssDInv, :mAVATIssDInv,
:InDocDateUsed, :InDocDateFrom, :InDocDateTo, :InDivisionSelID, :InDueDateUsed,
:InDueDateFrom, :InDueDateTo, :mFirm_ID, :InBusOrderSelID, :InBusOrdersWithChilds,
:InBusTransactionSelID, :InBusTransactionsWithChilds, :InBusProjectSelID, :InBusProjectsWithChilds, :mPaidStatus,
:InDivisionsWithChilds)
into
:SumIIAmount, :SumIIAmountWithoutVAT, :SumCRAmount, :SumCRAmountWithoutVAT,
:ID, :TotalAmount, :TotalAmountWithoutVAT;
/* Navyseni za obraty predchudcu */
for
select B.ID from Firms B
where
B.Firm_ID = :mFirm_ID
into
:mAncestor_ID
do begin
select SumIIAmount, SumIIAmountWithoutVAT, SumCRAmount, SumCRAmountWithoutVAT,
TotalAmount, TotalAmountWithoutVAT
from
SubscriberTurnoverFromRows(:IssInvoiceType, :CashRecType, :mIssDInv, :mAVATIssDInv,
:InDocDateUsed, :InDocDateFrom, :InDocDateTo, :InDivisionSelID, :InDueDateUsed,
:InDueDateFrom, :InDueDateTo, :mAncestor_ID, :InBusOrderSelID, :InBusOrdersWithChilds,
:InBusTransactionSelID, :InBusTransactionsWithChilds, :InBusProjectSelID, :InBusProjectsWithChilds, :mPaidStatus,
:InDivisionsWithChilds)
into
:mSumIIAmount, :mSumIIAmountWithoutVAT, :mSumCRAmount, :mSumCRAmountWithoutVAT,
:mTotalAmount, :mTotalAmountWithoutVAT;
SumIIAmount = SumIIAmount + mSumIIAmount;
SumIIAmountWithoutVAT = SumIIAmountWithoutVAT + mSumIIAmountWithoutVAT;
SumCRAmount = SumCRAmount + mSumCRAmount;
SumCRAmountWithoutVAT = SumCRAmountWithoutVAT + mSumCRAmountWithoutVAT;
TotalAmount = TotalAmount + mTotalAmount;
TotalAmountWithoutVAT = TotalAmountWithoutVAT + mTotalAmountWithoutVAT;
end
if (:totalamount <> 0) then begin
FirmWithTurnOverCount = :FirmWithTurnOverCount + 1;
SumEmployeeCount = :SumEmployeeCount + mEmployeeCount;
end
Firmcount = :FirmCount + 1;
suspend;
end
end
end