Procedura-FirmNACETurnoverTotalCounts

Parametry:

NázevPopisDatový typ
innaceidChar(10)
innaceselidChar(10)
innacewithchildsChar(1)
indocdateusedChar(1)
indocdatefromFloat(0, 0)
indocdatetoFloat(0, 0)
induedateusedChar(1)
induedatefromFloat(0, 0)
induedatetoFloat(0, 0)
indivisionselidChar(10)
indivisionswithchildsChar(1)
inbusorderselidChar(10)
inbusorderswithchildsChar(1)
inbustransactionselidChar(10)
inbustransactionswithchildsChar(1)
inbusprojectselidChar(10)
inbusprojectswithchildsChar(1)
infirmselidChar(10)
issinvoicetypeInteger
cashrectypeInteger
withemployeecountChar(1)
inturnoverstatusInteger

Návratové hodnoty:

NázevPopisDatový typ
idChar(10)
nace_idChar(10)
nace_codeChar(6)
sumiiamountNumeric(15, 2)
sumiiamountwithoutvatNumeric(15, 2)
sumcramountNumeric(15, 2)
sumcramountwithoutvatNumeric(15, 2)
totalamountNumeric(15, 2)
totalamountwithoutvatNumeric(15, 2)
firmcountInteger
sumemployeecountInteger

Závislosti:

NázevPopisTřída
FirmNACETurnoverFirmCount2Procedures
FirmNACETurnoverEmplCount2Procedures

Tělo:

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

Generated by ABRA Software a.s. 27.10.2021 16:34:55