Procedura-SubscriberTurnovers2

Parametry:

NázevPopisDatový typ
IssInvoiceTypeFaktury vydané 0 = Snížené o dobropisy 1 = Nesnížené o dobropisy 2 = NezahrnoutInteger
CashRecTypePokladní příjem 0 = Snížené o vrácení příjmu 1 = Nesnížené o vrácení příjmu 2 = NezahrnoutInteger
POSSummaredTypeSouhrnné účtenky pokladního prodeje 0=Nezahrnout 1=Snížené o vrácení 2=Nesnížené o vráceníInteger
IssDInvZálohové listy A= Zahrnout nezúčtované zálohy N = NezahrnoutChar(1)
AVATIssDInvZálohové listy daňové 0 = Snížené o dobropisy 1 = Nesnížené o dobropisy 2 = Zúčtované 3 = NezahrnoutInteger
DocDateUsedChar(1)
DocDateFromFloat(0, 0)
DocDateToFloat(0, 0)
DivisionSelIDChar(10)
DueDateUsedChar(1)
DueDateFromFloat(0, 0)
DueDateToFloat(0, 0)
AccDateUsedChar(1)
AccDateFromFloat(0, 0)
AccDateToFloat(0, 0)
FirmSelIDChar(10)
BusOrderSelIDChar(10)
ABusOrdersWithChildsChar(1)
BusTransactionSelIDChar(10)
ABusTransactionsWithChildsChar(1)
BusProjectSelIDChar(10)
ABusProjectsWithChildsChar(1)
PaidStatusVarChar(2)
ADivisionsWithChildsChar(1)

Návratové hodnoty:

NázevPopisDatový typ
SumIIAmountNumeric(15, 2)
SumIIAmountWithoutVATNumeric(15, 2)
SumCRAmountNumeric(15, 2)
SumCRAmountWithoutVATNumeric(15, 2)
IDChar(10)
TotalAmountNumeric(15, 2)
TotalAmountWithoutVATNumeric(15, 2)

Závislosti:

NázevPopisTřída
SubscriberTurnover2Vrací obraty odběratelůProcedures
SubscriberTurnoverFromRows2Procedures

Tělo:

BEGIN
  if ((:DivisionSelID = '') and (:BusOrderSelID = '') and (:BusTransactionSelID = '') and (:BusProjectSelID = '')) then begin
    for  
    /* Firmy */
    select A.ID from Firms A
     where
       A.Hidden = 'N' and
       (
         (A.ID in (select OBJ_ID from SELDAT where SEL_ID = :FirmSelID)) or
         (:FirmSelID = '' and A.Firm_ID is null)
       )
     into :mFirm_ID   
    do begin
      /* Zjisteni obratu pro aktualni firmu */
      select SumIIAmount, SumIIAmountWithoutVAT, SumCRAmount, SumCRAmountWithoutVAT,
        ID, TotalAmount, TotalAmountWithoutVAT
      from
        SubscriberTurnover2(:IssInvoiceType, :CashRecType, :POSSummaredType, :IssDInv, :AVATIssDInv,
          :DocDateUsed, :DocDateFrom, :DocDateTo, 
          :DueDateUsed, :DueDateFrom, :DueDateTo, 
          :AccDateUsed, :AccDateFrom, :AccDateTo,
          :mFirm_ID, :PaidStatus)
      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
            SubscriberTurnover2(:IssInvoiceType, :CashRecType, :POSSummaredType, :IssDInv, :AVATIssDInv,
              :DocDateUsed, :DocDateFrom, :DocDateTo, 
              :DueDateUsed, :DueDateFrom, :DueDateTo, 
              :AccDateUsed, :AccDateFrom, :AccDateTo,
              :mAncestor_ID, :PaidStatus) 
          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
      suspend;                         
    end
  end else begin
    for  
    /* Firmy */
    select A.ID from Firms A
     where
       A.Hidden = 'N' and
       (
         (A.ID in (select OBJ_ID from SELDAT where SEL_ID = :FirmSelID)) or
         (:FirmSelID = '' and A.Firm_ID is null)
       )
     into :mFirm_ID   
    do begin
      /* Zjisteni obratu pro aktualni firmu */
      select SumIIAmount, SumIIAmountWithoutVAT, SumCRAmount, SumCRAmountWithoutVAT,
        ID, TotalAmount, TotalAmountWithoutVAT
      from
        SubscriberTurnoverFromRows2(:IssInvoiceType, :CashRecType, :POSSummaredType, :IssDInv, :AVATIssDInv,
          :DocDateUsed, :DocDateFrom, :DocDateTo, :DivisionSelID, 
          :DueDateUsed, :DueDateFrom, :DueDateTo,
          :AccDateUsed, :AccDateFrom, :AccDateTo, :mFirm_ID, 
          :BusOrderSelID, :ABusOrdersWithChilds,
          :BusTransactionSelID, :ABusTransactionsWithChilds, :BusProjectSelID, :ABusProjectsWithChilds, :PaidStatus,
          :ADivisionsWithChilds)
      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
            SubscriberTurnoverFromRows2(:IssInvoiceType, :CashRecType, :POSSummaredType, :IssDInv, :AVATIssDInv,
              :DocDateUsed, :DocDateFrom, :DocDateTo, :DivisionSelID, 
              :DueDateUsed, :DueDateFrom, :DueDateTo, 
              :AccDateUsed, :AccDateFrom, :AccDateTo, :mAncestor_ID, 
              :BusOrderSelID, :ABusOrdersWithChilds,
              :BusTransactionSelID, :ABusTransactionsWithChilds, :BusProjectSelID, :ABusProjectsWithChilds, :PaidStatus,
              :ADivisionsWithChilds) 
          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
      suspend;                         
    end 
  end  
end;

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