begin
sumiiamount = 0;
sumiiamountwithoutvat = 0;
sumcramount = 0;
sumcramountwithoutvat = 0;
totalamount = 0;
totalamountwithoutvat = 0;
id = '0000000000';
nace_id = :innaceid;
sumemployeecount = 0;
select code from NACE where ID = :innaceid into :nace_code;
if (:withemployeecount in ('1','A')) then begin
select
sum(sumiiamount) as sumiiamount, sum(sumiiamountwithoutvat) as sumiiamountwithoutvat,
sum(sumcramount) as sumcramount, sum(sumcramountwithoutvat) as sumcramountwithoutvat,
sum(totalamount) as totalamount, sum(totalamountwithoutvat) as totalamountwithoutvat,
max(ID), max(nace_id), max(nace_code), max(firmcount),
max(sumemployeecount), max(firmwithturnovercount)
from
FirmNACETurnoverEmplCount2(:Innaceid, :Indocdateused, :Indocdatefrom, :InDocDateTo,
:Induedateused, :Induedatefrom, :Induedateto, :Indivisionselid, :Indivisionswithchilds, :Inbusorderselid, :Inbusorderswithchilds,
:Inbustransactionselid, :Inbustransactionswithchilds, :Inbusprojectselid, :Inbusprojectswithchilds,
:Infirmselid, :Issinvoicetype, :Cashrectype)
where
((:InNACESelID = '') or
(:Innaceid in
(
SELECT Bx.ID FROM NACE Bx WHERE Bx.Hidden = 'N' AND
( (Bx.ID in (select OBJ_ID from SELDAT where SEL_ID = :InNACESelID)) OR
((:InNACEWithChilds in ('1', 'A')) and
(Bx.ID in (select ID from Sys$NACE2 where Superior_ID in (select OBJ_ID from SELDAT where SEL_ID = :InNACESelID)))))
)))
group by nace_id
into
:sumiiamount, :sumiiamountwithoutvat, sumcramount, :sumcramountwithoutvat, :totalamount, :totalamountwithoutvat,
:id, :nace_id, :nace_code, :mfirmcount, :sumemployeecount, :mfirmwithturnovercount;
end else begin
select
sum(sumiiamount) as sumiiamount, sum(sumiiamountwithoutvat) as sumiiamountwithoutvat,
sum(sumcramount) as sumcramount, sum(sumcramountwithoutvat) as sumcramountwithoutvat,
sum(totalamount) as totalamount, sum(totalamountwithoutvat) as totalamountwithoutvat,
max(ID), max(nace_id), max(nace_code), max(firmcount),
max(sumemployeecount), max(firmwithturnovercount)
from
FirmNACETurnoverFirmCount2(:Innaceid, :Indocdateused, :Indocdatefrom, :InDocDateTo,
:Induedateused, :Induedatefrom, :Induedateto, :Indivisionselid, :Indivisionswithchilds, :Inbusorderselid, :Inbusorderswithchilds,
:Inbustransactionselid, :Inbustransactionswithchilds, :Inbusprojectselid, :Inbusprojectswithchilds,
:Infirmselid, :Issinvoicetype, :Cashrectype)
where
((:InNACESelID = '') or
(:Innaceid in
(
SELECT Bx.ID FROM NACE Bx WHERE Bx.Hidden = 'N' AND
( (Bx.ID in (select OBJ_ID from SELDAT where SEL_ID = :InNACESelID)) OR
((:InNACEWithChilds in ('1', 'A')) and
(Bx.ID in (select ID from Sys$NACE2 where Superior_ID in (select OBJ_ID from SELDAT where SEL_ID = :InNACESelID)))))
)))
group by nace_id
into
:sumiiamount, :sumiiamountwithoutvat, sumcramount, :sumcramountwithoutvat, :totalamount, :totalamountwithoutvat,
:id, :nace_id, :nace_code, :mfirmcount, :sumemployeecount, :mfirmwithturnovercount;
end
if (:InTurnOverStatus = 0) then
FirmCount = mFirmCount;
else
if (:InTurnOverStatus = 1) then
FirmCount = mFirmWithTurnoverCount;
else
if (:InTurnOverStatus = 2) then
FirmCount = mFirmCount - :mFirmWithTurnoverCount;
if (FirmCount is null) then
FirmCount = 0;
suspend;
end