Procedura-FirmNACETurnoverFirmCount2

Parametry:

NázevPopisDatový typ
innaceidChar(10)
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

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
firmwithturnovercountInteger
sumemployeecountInteger

Závislosti:

NázevPopisTřída
SubscriberTurnoverVrací obraty odběratelůProcedures
SubscriberTurnoverFromRowsProcedures

Tělo:

BEGIN
/* proceduru ma smysl volat jen s vyplnenym parametrem innaceid jinak dava sporny vysledek */
  missdinv = 'N';
  mavatissdinv = 3;
  mpaidstatus = '';
  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
    from Firms A
    join NACE N on N.ID=A.MainNACECode_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
    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;
      end
      FirmCount = :FirmCount + 1;
      suspend;
    end
  end else begin
    for  
    /* Firmy */
    select A.ID, A.MainNACECode_ID, N.Code from Firms A
    join NACE N on N.ID=A.MainNACECode_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
    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;
      end
      firmcount = :FirmCount + 1;
      suspend;                         
    end 
  end  
end

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