Procedura-VATSummaryInv

Parametry:

NázevPopisDatový typ
AFirmSel_IDChar(10)
ADivisionSel_IDChar(10)
ABusOrderSel_IDChar(10)
ABusTransactionSel_IDChar(10)
ABusProjectSel_IDChar(10)
AVATDateFromFloat(0, 0)
AVATDateToFloat(0, 0)
ADivisionsWithChildrenChar(1)
ABusOrdersWithChildrenChar(1)
ABusTransactionsWithChildrenChar(1)
ABusProjectsWithChildrenChar(1)
VATCountry_IDChar(10)
AWithMOSSZahrnout režim OSS/IOSS (TradeType=7,8)Char(1)

Návratové hodnoty:

NázevPopisDatový typ
VATIndex_IDChar(10)
DocQueue_IDChar(10)
OrdNumberNumeric(8, 0)
Period_IDChar(10)
TAmountWithoutVATNumeric(13, 2)
LocalTAmountWithoutVATNumeric(13, 2)
TAmountNumeric(13, 2)
LocalTAmountNumeric(13, 2)
TextChar(160)
DescriptionChar(50)
Division_IDChar(10)
BusOrder_IDChar(10)
BusTransaction_IDChar(10)
BusProject_IDChar(10)
Firm_IDChar(10)
VATDate$DateFloat(0, 0)
PosIndexInteger
RelatedDocNameVarChar(24)
VATModeRežim DPHInteger
Document_IDChar(10)
DRCArticle_IDChar(10)
ExternalNumberVarChar(30)
VarSymbolVarChar(30)
SimplifiedVATDocumentChar(1)
SourceDoc_IDVarChar(10)
SourceDocTypeChar(2)
VATReportReferenceVarChar(30)
VATReportPreferenceVarChar(2)
POSSumDoc_IDChar(10)
VATAdmitDate$DATEFloat(0, 0)
UsedRatioChar(1)

Závislosti:

NázevPopisTřída
FmtDocumentDisplayNameProcedures
CheckDivisionAndBusXProcedures

Tělo:

BEGIN
  /* VATSummaryInv VATByPayment */
  SELECT Country_ID FROM GlobData INTO :mLocalCountry_ID;
  RelatedDocName = '';
  SourceDoc_ID = NULL;
  SourceDocType = '';
  POSSumDoc_ID = Null;
  UsedRatio = 'N';
  /* radky FV */
  FOR
    SELECT
      A.VATIndex_ID, B.DocQueue_ID, B.OrdNumber, B.Period_ID, B.VATDate$Date,
      A.TAmountWithoutVAT, A.LocalTAmountWithoutVAT, A.TAmount, A.LocalTAmount,
      A.Text, B.Description, B.Firm_ID, A.Division_ID, A.BusOrder_ID, A.BusTransaction_ID, A.BusProject_ID,
      A.PosIndex, A.RowType, A.Quantity, VI.Income, A.VATMode, B.ID as Document_ID,
      A.DRCArticle_ID, B.ExternalNumber, B.VarSymbol, B.SimplifiedVATDocument, B.VATReportReference, B.VATReportPreference,
      B.VATAdmitDate$DATE
    FROM
      IssuedInvoices2 A
      join IssuedInvoices B ON A.Parent_ID = B.ID
      left join VatIndexes VI on VI.ID = A.VatIndex_ID
    WHERE
      ((B.VATByPayment = 'N') OR (A.VATMode = 1)) AND
      B.VATDocument = 'A' and B.VATCountry_ID=:VATCountry_ID and
      A.VATIndex_ID IS NOT NULL and
      (:AWithMOSS = 'A' or (B.TradeType <> 7 and B.TradeType <> 8)) and
      B.VATDate$Date >= :AVATDateFrom and B.VATDate$Date < :AVATDateTo and
      ( (:AFirmSel_ID = '') OR
        (B.Firm_ID in (select OBJ_ID from SELDAT where SEL_ID = :AFirmSel_ID)) OR
        (B.Firm_ID in (SELECT ID FROM Firms WHERE Firm_ID in (select OBJ_ID from SELDAT where SEL_ID = :AFirmSel_ID))) )
    INTO
      :VATIndex_ID, :DocQueue_ID, :OrdNumber, :Period_ID, :VATDate$Date,
      :TAmountWithoutVAT, :LocalTAmountWithoutVAT, :TAmount, :LocalTAmount,
      :Text, :Description, :Firm_ID, :Division_ID, :BusOrder_ID, :BusTransaction_ID, :BusProject_ID,
      :PosIndex, :mRowType, :mQuantity, :mIncome, :VATMode, :Document_ID,
      :DRCArticle_ID, :ExternalNumber, :VarSymbol, :SimplifiedVATDocument, :VATReportReference, :VATReportPreference,
      :VATAdmitDate$DATE
  DO BEGIN
    EXECUTE PROCEDURE CheckDivisionAndBusX
      :Division_ID, :ADivisionSel_ID, :ADivisionsWithChildren,
      :BusOrder_ID, :ABusOrderSel_ID, :ABusOrdersWithChildren,
      :BusTransaction_ID, :ABusTransactionSel_ID, :ABusTransactionsWithChildren,
      :BusProject_ID, :ABusProjectSel_ID, :ABusProjectsWithChildren
    RETURNING_VALUES
      :mSuspend;
    IF (mSuspend > 0) THEN BEGIN
      IF (mRowType = 4) THEN 
        Text = '';      
      IF ((mRowType = 3) AND (mQuantity < 0)) THEN BEGIN
        IF (mIncome = 'A') THEN BEGIN --ERR-2721/2009 
          TAmountWithoutVAT = (-1) * TAmountWithoutVAT;
          LocalTAmountWithoutVAT = (-1) * LocalTAmountWithoutVAT;
          TAmount = (-1) * TAmount; 
          LocalTAmount = (-1) * LocalTAmount;
        END 
      END        
      SUSPEND;
    END
  END
  /* radky DZV */
  /*  DZV nepodlehaji rezimu VATByPayment - jsou vzdy predem zaplacene */
  VATMode = 0;
  UsedRatio = 'N';
  VarSymbol = '';
  FOR
    SELECT
      A.VATIndex_ID, B.DocQueue_ID, B.OrdNumber, B.Period_ID, B.VATDate$Date,
      A.TAmountWithoutVAT, A.LocalTAmountWithoutVAT, A.TAmount, A.LocalTAmount,
      A.Text, B.Description, B.Firm_ID, A.Division_ID, A.BusOrder_ID, A.BusTransaction_ID, A.BusProject_ID,
      A.PosIndex, B.ID as Document_ID,
      A.VATMode, A.DRCArticle_ID, B.ExternalNumber, B.SimplifiedVATDocument, B.VATReportReference, B.VATReportPreference,
      B.VATAdmitDate$DATE
    FROM
      VATIssuedDInvoices2 A
      join VATIssuedDInvoices B ON A.Parent_ID = B.ID
    WHERE
      B.VATCountry_ID=:VATCountry_ID and
      A.VATIndex_ID IS NOT NULL and
      (:AWithMOSS = 'A' or (B.TradeType <> 7 and B.TradeType <> 8)) and
      B.VATDate$Date >= :AVATDateFrom and B.VATDate$Date < :AVATDateTo and
      ( (:AFirmSel_ID = '') OR
        (B.Firm_ID in (select OBJ_ID from SELDAT where SEL_ID = :AFirmSel_ID)) OR
        (B.Firm_ID in (SELECT ID FROM Firms WHERE Firm_ID in (select OBJ_ID from SELDAT where SEL_ID = :AFirmSel_ID))) )
    INTO
      :VATIndex_ID, :DocQueue_ID, :OrdNumber, :Period_ID, :VATDate$Date,
      :TAmountWithoutVAT, :LocalTAmountWithoutVAT, :TAmount, :LocalTAmount,
      :Text, :Description, :Firm_ID, :Division_ID, :BusOrder_ID, :BusTransaction_ID, :BusProject_ID,
      :PosIndex, :Document_ID, :VATMode, :DRCArticle_ID, :ExternalNumber, :SimplifiedVATDocument, :VATReportReference, :VATReportPreference,
      :VATAdmitDate$DATE
  DO BEGIN
    EXECUTE PROCEDURE CheckDivisionAndBusX
      :Division_ID, :ADivisionSel_ID, :ADivisionsWithChildren,
      :BusOrder_ID, :ABusOrderSel_ID, :ABusOrdersWithChildren,
      :BusTransaction_ID, :ABusTransactionSel_ID, :ABusTransactionsWithChildren,
      :BusProject_ID, :ABusProjectSel_ID, :ABusProjectsWithChildren
    RETURNING_VALUES
      :mSuspend;
    IF (mSuspend > 0) THEN 
    BEGIN
      SUSPEND;
    END
  END
  /* radky FP */
  FOR
    SELECT
      A.VATIndex_ID, B.DocQueue_ID, B.OrdNumber, B.Period_ID, B.VATDate$Date,
      A.TAmountWithoutVAT, A.LocalTAmountWithoutVAT, A.TAmount, A.LocalTAmount,
      A.Text, B.Description, B.Firm_ID, A.Division_ID, A.BusOrder_ID, A.BusTransaction_ID, A.BusProject_ID,
      A.PosIndex, A.VATMode, B.ID as Document_ID,
      A.DRCArticle_ID, B.ExternalNumber, B.VarSymbol, B.SimplifiedVATDocument, B.VATReportReference, B.VATReportPreference,
      B.VATAdmitDate$DATE, A.UsedRatio
    FROM
      ReceivedInvoices2 A
      join ReceivedInvoices B ON A.Parent_ID = B.ID
    WHERE
      ((B.VATByPayment = 'N') OR (A.VATMode = 1)) AND
      B.VATDocument = 'A' and B.VATCountry_ID=:VATCountry_ID and
      A.VATIndex_ID IS NOT NULL and
      B.TradeType <> 4 and
      B.VATDate$Date >= :AVATDateFrom and B.VATDate$Date < :AVATDateTo and
      ( (:AFirmSel_ID = '') OR
        (B.Firm_ID in (select OBJ_ID from SELDAT where SEL_ID = :AFirmSel_ID)) OR
        (B.Firm_ID in (SELECT ID FROM Firms WHERE Firm_ID in (select OBJ_ID from SELDAT where SEL_ID = :AFirmSel_ID))) )
    INTO
      :VATIndex_ID, :DocQueue_ID, :OrdNumber, :Period_ID, :VATDate$Date,
      :TAmountWithoutVAT, :LocalTAmountWithoutVAT, :TAmount, :LocalTAmount,
      :Text, :Description, :Firm_ID, :Division_ID, :BusOrder_ID, :BusTransaction_ID, :BusProject_ID,
      :PosIndex, :VATMode, :Document_ID, :DRCArticle_ID, :ExternalNumber, :VarSymbol, :SimplifiedVATDocument, :VATReportReference, :VATReportPreference,
      :VATAdmitDate$DATE, :UsedRatio
  DO BEGIN
    EXECUTE PROCEDURE CheckDivisionAndBusX
      :Division_ID, :ADivisionSel_ID, :ADivisionsWithChildren,
      :BusOrder_ID, :ABusOrderSel_ID, :ABusOrdersWithChildren,
      :BusTransaction_ID, :ABusTransactionSel_ID, :ABusTransactionsWithChildren,
      :BusProject_ID, :ABusProjectSel_ID, :ABusProjectsWithChildren
    RETURNING_VALUES
      :mSuspend;
    IF (mSuspend > 0) THEN BEGIN
      SUSPEND;
    END
  END
  /* radky DZP */
  /*  DZP nepodlehaji rezimu VATByPayment - jsou vzdy predem zaplacene */
  VATMode = 0;
  VarSymbol = '';
  FOR
    SELECT
      A.VATIndex_ID, B.DocQueue_ID, B.OrdNumber, B.Period_ID, B.VATDate$Date,
      A.TAmountWithoutVAT, A.LocalTAmountWithoutVAT, A.TAmount, A.LocalTAmount,
      A.Text, B.Description, B.Firm_ID, A.Division_ID, A.BusOrder_ID, A.BusTransaction_ID, A.BusProject_ID,
      A.PosIndex, B.ID as Document_ID,
      A.VATMode, A.DRCArticle_ID, B.ExternalNumber, B.SimplifiedVATDocument, B.VATReportReference, B.VATReportPreference,
      B.VATAdmitDate$DATE, A.UsedRatio
    FROM
      VATReceivedDInvoices2 A
      join VATReceivedDInvoices B ON A.Parent_ID = B.ID
    WHERE
      B.VATCountry_ID=:VATCountry_ID and
      A.VATIndex_ID IS NOT NULL and
      B.TradeType <> 4 and
      B.VATDate$Date >= :AVATDateFrom and B.VATDate$Date < :AVATDateTo and
      ( (:AFirmSel_ID = '') OR
        (B.Firm_ID in (select OBJ_ID from SELDAT where SEL_ID = :AFirmSel_ID)) OR
        (B.Firm_ID in (SELECT ID FROM Firms WHERE Firm_ID in (select OBJ_ID from SELDAT where SEL_ID = :AFirmSel_ID))) )
    INTO
      :VATIndex_ID, :DocQueue_ID, :OrdNumber, :Period_ID, :VATDate$Date,
      :TAmountWithoutVAT, :LocalTAmountWithoutVAT, :TAmount, :LocalTAmount,
      :Text, :Description, :Firm_ID, :Division_ID, :BusOrder_ID, :BusTransaction_ID, :BusProject_ID,
      :PosIndex, :Document_ID, :VATMode, :DRCArticle_ID, :ExternalNumber, :SimplifiedVATDocument, :VATReportReference, :VATReportPreference,
      :VATAdmitDate$DATE, :UsedRatio
  DO BEGIN
    EXECUTE PROCEDURE CheckDivisionAndBusX
      :Division_ID, :ADivisionSel_ID, :ADivisionsWithChildren,
      :BusOrder_ID, :ABusOrderSel_ID, :ABusOrdersWithChildren,
      :BusTransaction_ID, :ABusTransactionSel_ID, :ABusTransactionsWithChildren,
      :BusProject_ID, :ABusProjectSel_ID, :ABusProjectsWithChildren
    RETURNING_VALUES
      :mSuspend;
    IF (mSuspend > 0) THEN BEGIN
      SUSPEND;
    END
  END
  /* radky DP */
  vatreportreference = '';
  FOR
    SELECT
      A.VATIndex_ID, B.DocQueue_ID, B.OrdNumber, B.Period_ID, B.VATDate$Date,
      (-1*A.TAmountWithoutVAT), (-1*A.LocalTAmountWithoutVAT), (-1*A.TAmount), (-1*A.LocalTAmount),
      A.Text, B.Description, B.Firm_ID, A.Division_ID, A.BusOrder_ID, A.BusTransaction_ID, A.BusProject_ID,
      A.PosIndex, A.VATMode, B.ID as Document_ID,
      A.DRCArticle_ID, B.ExternalNumber, B.VarSymbol, B.SimplifiedVATDocument, B.Source_ID, B.VATReportPreference,
      B.VATAdmitDate$DATE, A.UsedRatio
    FROM
      ReceivedCreditNotes2 A
      join ReceivedCreditNotes B ON A.Parent_ID = B.ID
    WHERE
      ((B.VATByPayment = 'N') OR (A.VATMode = 1)) AND
      B.VATDocument = 'A' and B.VATCountry_ID=:VATCountry_ID and
      A.VATIndex_ID IS NOT NULL and
      B.TradeType <> 4 and
      B.VATDate$Date >= :AVATDateFrom and B.VATDate$Date < :AVATDateTo and
      ( (:AFirmSel_ID = '') OR
        (B.Firm_ID in (select OBJ_ID from SELDAT where SEL_ID = :AFirmSel_ID)) OR
        (B.Firm_ID in (SELECT ID FROM Firms WHERE Firm_ID in (select OBJ_ID from SELDAT where SEL_ID = :AFirmSel_ID))) )
    INTO
      :VATIndex_ID, :DocQueue_ID, :OrdNumber, :Period_ID, :VATDate$Date,
      :TAmountWithoutVAT, :LocalTAmountWithoutVAT, :TAmount, :LocalTAmount,
      :Text, :Description, :Firm_ID, :Division_ID, :BusOrder_ID, :BusTransaction_ID, BusProject_ID, 
      :PosIndex, :VATMode, :Document_ID, :DRCArticle_ID, :ExternalNumber, :VarSymbol, :SimplifiedVATDocument, :SourceDoc_ID, :VATReportPreference,
      :VATAdmitDate$DATE, :UsedRatio
  DO BEGIN
    EXECUTE PROCEDURE CheckDivisionAndBusX
      :Division_ID, :ADivisionSel_ID, :ADivisionsWithChildren,
      :BusOrder_ID, :ABusOrderSel_ID, :ABusOrdersWithChildren,
      :BusTransaction_ID, :ABusTransactionSel_ID, :ABusTransactionsWithChildren,
      :BusProject_ID, :ABusProjectSel_ID, :ABusProjectsWithChildren
    RETURNING_VALUES
      :mSuspend;
    IF (mSuspend > 0) THEN BEGIN
      SourceDocType = '04';
      SUSPEND;
    END
  END
  /* radky DDZP */
  VATMode = 0;
  vatreportreference = '';
  FOR
    SELECT
      A.VATIndex_ID, B.DocQueue_ID, B.OrdNumber, B.Period_ID, B.VATDate$Date,
      (-1*A.TAmountWithoutVAT), (-1*A.LocalTAmountWithoutVAT), (-1*A.TAmount), (-1*A.LocalTAmount),
      A.Text, B.Description, B.Firm_ID, A.Division_ID, A.BusOrder_ID, A.BusTransaction_ID, A.BusProject_ID,
      A.PosIndex, B.ID as Document_ID,
      A.VATMode, A.DRCArticle_ID, B.ExternalNumber, B.VarSymbol, B.SimplifiedVATDocument, B.Source_ID, B.VATReportPreference,
      B.VATAdmitDate$DATE, A.UsedRatio
    FROM
      VATReceivedDCreditNotes2 A
      join VATReceivedDCreditNotes B ON A.Parent_ID = B.ID
    WHERE
      ((B.VATByPayment = 'N') OR (A.VATMode = 1)) AND
      B.VATCountry_ID=:VATCountry_ID and
      A.VATIndex_ID IS NOT NULL and
      B.TradeType <> 4 and
      B.VATDate$Date >= :AVATDateFrom and B.VATDate$Date < :AVATDateTo and
      ( (:AFirmSel_ID = '') OR
        (B.Firm_ID in (select OBJ_ID from SELDAT where SEL_ID = :AFirmSel_ID)) OR
        (B.Firm_ID in (SELECT ID FROM Firms WHERE Firm_ID in (select OBJ_ID from SELDAT where SEL_ID = :AFirmSel_ID))) )
    INTO
      :VATIndex_ID, :DocQueue_ID, :OrdNumber, :Period_ID, :VATDate$Date,
      :TAmountWithoutVAT, :LocalTAmountWithoutVAT, :TAmount, :LocalTAmount,
      :Text, :Description, :Firm_ID, :Division_ID, :BusOrder_ID, :BusTransaction_ID, :BusProject_ID,
      :PosIndex, :Document_ID, :VATMode, :DRCArticle_ID, :ExternalNumber, :VarSymbol, :SimplifiedVATDocument, :SourceDoc_ID, :VATReportPreference,
      :VATAdmitDate$DATE, :UsedRatio
  DO BEGIN
    EXECUTE PROCEDURE CheckDivisionAndBusX
      :Division_ID, :ADivisionSel_ID, :ADivisionsWithChildren,
      :BusOrder_ID, :ABusOrderSel_ID, :ABusOrdersWithChildren,
      :BusTransaction_ID, :ABusTransactionSel_ID, :ABusTransactionsWithChildren,
      :BusProject_ID, :ABusProjectSel_ID, :ABusProjectsWithChildren
    RETURNING_VALUES
      :mSuspend;
    IF (mSuspend > 0) THEN BEGIN
      SourceDocType = '64';
      SUSPEND;
    END
  END
  /* radky DV */
  vatreportreference = '';
  UsedRatio = 'N';
  FOR
    SELECT
      A.VATIndex_ID, B.DocQueue_ID, B.OrdNumber, B.Period_ID, 
      CASE B.Acknowledge
        WHEN 2 THEN CNA.DocDate$Date
        ELSE B.VATDate$Date
      END,
      (-1*A.TAmountWithoutVAT), (-1*A.LocalTAmountWithoutVAT), (-1*A.TAmount), (-1*A.LocalTAmount),
      A.Text, B.Description, B.Firm_ID, A.Division_ID, A.BusOrder_ID, A.BusTransaction_ID, A.BusProject_ID,
      A.PosIndex, A.RowType, A.VATMode, B.ID as Document_ID,
      A.DRCArticle_ID, B.ExternalNumber, B.VarSymbol, B.SimplifiedVATDocument, B.Source_ID, B.VATReportPreference,
      CASE B.Acknowledge
        WHEN 2 THEN CNA.DocDate$Date
        ELSE B.VATAdmitDate$DATE
      END
    FROM
      IssuedCreditNotes2 A
      join IssuedCreditNotes B ON A.Parent_ID = B.ID
      LEFT join CreditNotesAcknowledges CNA ON CNA.CreditNote_ID = B.ID
    WHERE
      ((B.VATByPayment = 'N') OR (A.VATMode = 1)) AND
      B.VATDocument = 'A' and B.VATCountry_ID=:VATCountry_ID and
      A.VATIndex_ID IS NOT NULL and
      (:AWithMOSS = 'A' or (B.TradeType <> 7 and B.TradeType <> 8)) and
      ( (B.Acknowledge = 0 and (B.VATDate$Date >= :AVATDateFrom and B.VATDate$Date < :AVATDateTo)) or
        (B.Acknowledge = 2 and (CNA.DocDate$Date >= :AVATDateFrom and CNA.DocDate$Date < :AVATDateTo)) ) and
      ( (:AFirmSel_ID = '') OR
        (B.Firm_ID in (select OBJ_ID from SELDAT where SEL_ID = :AFirmSel_ID)) OR
        (B.Firm_ID in (SELECT ID FROM Firms WHERE Firm_ID in (select OBJ_ID from SELDAT where SEL_ID = :AFirmSel_ID))) )
    INTO
      :VATIndex_ID, :DocQueue_ID, :OrdNumber, :Period_ID, :VATDate$Date,
      :TAmountWithoutVAT, :LocalTAmountWithoutVAT, :TAmount, :LocalTAmount,
      :Text, :Description, :Firm_ID, :Division_ID, :BusOrder_ID, :BusTransaction_ID, :BusProject_ID,
      :PosIndex, mRowType, :VATMode, :Document_ID, :DRCArticle_ID, :ExternalNumber, :VarSymbol, :SimplifiedVATDocument, :SourceDoc_ID, :VATReportPreference,
      :VATAdmitDate$DATE
  DO BEGIN
    EXECUTE PROCEDURE CheckDivisionAndBusX
      :Division_ID, :ADivisionSel_ID, :ADivisionsWithChildren,
      :BusOrder_ID, :ABusOrderSel_ID, :ABusOrdersWithChildren,
      :BusTransaction_ID, :ABusTransactionSel_ID, :ABusTransactionsWithChildren,
      :BusProject_ID, :ABusProjectSel_ID, :ABusProjectsWithChildren
    RETURNING_VALUES
      :mSuspend;
    IF (mSuspend > 0) THEN 
    BEGIN
      IF (mRowType = 4) THEN Text = '';
      SourceDocType = '03';
      SUSPEND;
    END
  END
  /* radky DDZV */
  VATMode = 0;
  vatreportreference = '';
  UsedRatio = 'N';
  FOR
    SELECT
      A.VATIndex_ID, B.DocQueue_ID, B.OrdNumber, B.Period_ID, B.VATDate$Date,
      (-1*A.TAmountWithoutVAT), (-1*A.LocalTAmountWithoutVAT), (-1*A.TAmount), (-1*A.LocalTAmount),
      A.Text, B.Description, B.Firm_ID, A.Division_ID, A.BusOrder_ID, A.BusTransaction_ID, A.BusProject_ID,
      A.PosIndex, B.ID as Document_ID,
      A.VATMode, A.DRCArticle_ID, B.ExternalNumber, B.VarSymbol, B.SimplifiedVATDocument, B.Source_ID, B.VATReportPreference,
      B.VATAdmitDate$DATE
    FROM
      VATIssuedDCreditNotes2 A
      join VATIssuedDCreditNotes B ON A.Parent_ID = B.ID
    WHERE
      ((B.VATByPayment = 'N') OR (A.VATMode = 1)) AND
      B.VATCountry_ID=:VATCountry_ID and
      A.VATIndex_ID IS NOT NULL and
      (:AWithMOSS = 'A' or (B.TradeType <> 7 and B.TradeType <> 8)) and
      B.VATDate$Date >= :AVATDateFrom and B.VATDate$Date < :AVATDateTo and
      ( (:AFirmSel_ID = '') OR
        (B.Firm_ID in (select OBJ_ID from SELDAT where SEL_ID = :AFirmSel_ID)) OR
        (B.Firm_ID in (SELECT ID FROM Firms WHERE Firm_ID in (select OBJ_ID from SELDAT where SEL_ID = :AFirmSel_ID))) )
    INTO
      :VATIndex_ID, :DocQueue_ID, :OrdNumber, :Period_ID, :VATDate$Date,
      :TAmountWithoutVAT, :LocalTAmountWithoutVAT, :TAmount, :LocalTAmount,
      :Text, :Description, :Firm_ID, :Division_ID, :BusOrder_ID, :BusTransaction_ID, :BusProject_ID,
      :PosIndex, :Document_ID, :VATMode, :DRCArticle_ID, :ExternalNumber, :VarSymbol, :SimplifiedVATDocument, :SourceDoc_ID, :VATReportPreference,
      :VATAdmitDate$DATE
  DO BEGIN
    EXECUTE PROCEDURE CheckDivisionAndBusX
      :Division_ID, :ADivisionSel_ID, :ADivisionsWithChildren,
      :BusOrder_ID, :ABusOrderSel_ID, :ABusOrdersWithChildren,
      :BusTransaction_ID, :ABusTransactionSel_ID, :ABusTransactionsWithChildren,
      :BusProject_ID, :ABusProjectSel_ID, :ABusProjectsWithChildren
    RETURNING_VALUES
      :mSuspend;
    IF (mSuspend > 0) THEN 
    BEGIN
      SourceDocType = '62';
      SUSPEND;
    END
  END
  /* radky DRC */
  /* DRC nepodlehaji rezimu VATByPayment */
  VATMode = 0;
  SimplifiedVATDocument = 'N';
  vatreportreference = '';
  UsedRatio = 'N';
  VarSymbol = '';
  ExternalNumber = ''; 
  FOR
    SELECT
      A.VATIndex_ID, B.DocQueue_ID, B.OrdNumber, B.Period_ID, B.VATDate$Date,
      A.BaseAmount,
      A.LocalBaseAmount,
      A.BaseAmount + A.VATAmount,
      A.LocalBaseAmount + A.LocalVATAmount,
      A.Text, B.Description, B.Firm_ID, A.Division_ID, A.BusOrder_ID, A.BusTransaction_ID, A.BusProject_ID,
      V.AllowanceVATIndex_ID, A.PosIndex,
      B.SDocument_ID, B.SDocumentType, B.VATDeductionDate$DATE, B.ID as Document_ID,
      A.DRCArticle_ID, B.VATReportPreference
    FROM
      ReverseChargeDeclarations2 A
      join ReverseChargeDeclarations B ON A.Parent_ID = B.ID
      join VATIndexes V ON A.VATIndex_ID = V.ID
    WHERE
      B.VATCountry_ID=:VATCountry_ID and
      A.VATIndex_ID IS NOT NULL and
      (
      (B.VATDate$Date >= :AVATDateFrom AND B.VATDate$Date < :AVATDateTo) OR
      (V.AllowanceVATIndex_ID IS NOT NULL AND B.VATDeductionDate$Date >= :AVATDateFrom AND B.VATDeductionDate$Date < :AVATDateTo)
      ) AND
      ( (:AFirmSel_ID = '') OR
        (B.Firm_ID in (select OBJ_ID from SELDAT where SEL_ID = :AFirmSel_ID)) OR
        (B.Firm_ID in (SELECT ID FROM Firms WHERE Firm_ID in (select OBJ_ID from SELDAT where SEL_ID = :AFirmSel_ID))) )
    INTO
      :VATIndex_ID, :DocQueue_ID, :OrdNumber, :Period_ID, :VATDate$Date,
      :TAmountWithoutVAT, :LocalTAmountWithoutVAT, :TAmount, :LocalTAmount,
      :Text, :Description, :Firm_ID, :Division_ID, :BusOrder_ID, :BusTransaction_ID, :BusProject_ID,
      :mAllowanceVATIndex_ID, :PosIndex,
      :SourceDoc_ID, :SourceDocType, :mVATDeductionDate, :Document_ID,
      :DRCArticle_ID, :VATReportPreference
  DO BEGIN
    EXECUTE PROCEDURE CheckDivisionAndBusX
      :Division_ID, :ADivisionSel_ID, :ADivisionsWithChildren,
      :BusOrder_ID, :ABusOrderSel_ID, :ABusOrdersWithChildren,
      :BusTransaction_ID, :ABusTransactionSel_ID, :ABusTransactionsWithChildren,
      :BusProject_ID, :ABusProjectSel_ID, :ABusProjectsWithChildren
    RETURNING_VALUES
      :mSuspend;
    IF (mSuspend > 0) THEN BEGIN
      IF ((SourceDocType = '61') or (SourceDocType = '08') or (SourceDocType = '65')) THEN
      BEGIN
        TAmountWithoutVAT = TAmountWithoutVAT * -1;
        LocalTAmountWithoutVAT = LocalTAmountWithoutVAT * -1;
        TAmount = TAmount * -1;
        LocalTAmount = LocalTAmount * -1;
      END
      SELECT
        Out_DisplayName
      FROM
        FmtDocumentDisplayName (
          :SourceDoc_ID,  :SourceDocType)
      INTO
        :RelatedDocName;
      RelatedDocName = COALESCE (:RelatedDocName, '');
      IF (VATDate$DATE >= :AVATDateFrom AND VATDate$DATE < :AVATDateTo) THEN
      BEGIN
        VATAdmitDate$DATE = VATDate$DATE;
        SUSPEND;
      END
      IF ((mAllowanceVATIndex_ID IS NOT NULL) AND
        (mVATDeductionDate >= :AVATDateFrom AND mVATDeductionDate < :AVATDateTo))
      THEN BEGIN
        VATIndex_ID = mAllowanceVATIndex_ID;
        VATDate$DATE = mVATDeductionDate;
        VATAdmitDate$DATE = VATDate$DATE;
        SUSPEND;
      END
    END
  END
  
  /* radky JSD */
  IF (VATCountry_ID=mLocalCountry_ID) then
  BEGIN
    RelatedDocName = '';
    VATMode = 0;
    DRCArticle_ID = NULL;
    VarSymbol = '';
    SimplifiedVATDocument = 'N';
    UsedRatio = 'N';
    SourceDoc_ID = NULL;
    SourceDocType = '';
    FOR
      SELECT
        A.VATIndex_ID, B.DocQueue_ID, B.OrdNumber, B.Period_ID, B.VATDate$Date,
        A.TAmount + A.VATBaseAmount + A.VATBaseCorrection - A.VATAmount,
        A.LocalTAmount + A.LocalVATBaseAmount + A.LocalVATBaseCorrection - A.LocalVATAmount,
        A.TAmount + A.VATBaseAmount + A.VATBaseCorrection,
        A.LocalTAmount + A.LocalVATBaseAmount + A.LocalVATBaseCorrection,
        A.Text, B.Description, B.Firm_ID, A.Division_ID, A.BusOrder_ID, A.BusTransaction_ID, A.BusProject_ID,
        A.PosIndex, B.ID as Document_ID, B.VATReportReference, B.VATReportPreference, B.ExternalNumber, B.VarSymbol,
        B.VATAdmitDate$DATE
      FROM
        CustomsDeclarations2 A
        join CustomsDeclarations B ON A.Parent_ID = B.ID
      WHERE
        B.VATDocument = 'A' and
        B.VATDate$Date >= :AVATDateFrom and B.VATDate$Date < :AVATDateTo and
        ( (:AFirmSel_ID = '') OR
          (B.Firm_ID in (select OBJ_ID from SELDAT where SEL_ID = :AFirmSel_ID)) OR
          (B.Firm_ID in (SELECT ID FROM Firms WHERE Firm_ID in (select OBJ_ID from SELDAT where SEL_ID = :AFirmSel_ID))) )
      INTO
        :VATIndex_ID, :DocQueue_ID, :OrdNumber, :Period_ID, :VATDate$Date,
        :TAmountWithoutVAT, :LocalTAmountWithoutVAT, :TAmount, :LocalTAmount,
        :Text, :Description, :Firm_ID, :Division_ID, :BusOrder_ID, :BusTransaction_ID, :BusProject_ID,
        :PosIndex, :Document_ID, :VATReportReference, :VATReportPreference, :ExternalNumber, :VarSymbol,
        :VATAdmitDate$DATE
    DO BEGIN
      EXECUTE PROCEDURE CheckDivisionAndBusX
        :Division_ID, :ADivisionSel_ID, :ADivisionsWithChildren,
        :BusOrder_ID, :ABusOrderSel_ID, :ABusOrdersWithChildren,
        :BusTransaction_ID, :ABusTransactionSel_ID, :ABusTransactionsWithChildren,
        :BusProject_ID, :ABusProjectSel_ID, :ABusProjectsWithChildren
      RETURNING_VALUES
        :mSuspend;
      IF (mSuspend > 0) THEN 
      BEGIN
        SUSPEND;
      END
    END
  END
  /* radky PCV Potvrzeni celnice o vyvozu */
  IF (VATCountry_ID=mLocalCountry_ID) then
  BEGIN
    RelatedDocName = '';
    VATMode = 0;
    DRCArticle_ID = NULL;
    VARSymbol = '';
    SimplifiedVATDocument = 'N';
    VATReportReference = '';
    UsedRatio = 'N';
    SourceDoc_ID = NULL;
    SourceDocType = '';
    /* radky PCV */
    IF (NOT (VATCountry_ID=mLocalCountry_ID)) then
      EXIT;
    FOR
      SELECT
        A.VATIndex_ID, B.DocQueue_ID, B.OrdNumber, B.Period_ID, B.VATDate$Date,
        A.TAmountWithoutVAT, A.LocalTAmountWithoutVAT, A.TAmount, A.LocalTAmount,
        A.Text, B.Description, B.Firm_ID, A.Division_ID, A.BusOrder_ID, A.BusTransaction_ID, A.BusProject_ID,
        A.PosIndex, B.ID as Document_ID,
        B.ExternalNumber, B.VATReportPreference
      FROM
        CustomsConfirmations2 A
        join CustomsConfirmations B ON A.Parent_ID = B.ID
      WHERE
        B.VATDocument = 'A' and
        B.VATDate$Date >= :AVATDateFrom and B.VATDate$Date < :AVATDateTo and
        ( (:AFirmSel_ID = '') OR
          (B.Firm_ID in (select OBJ_ID from SELDAT where SEL_ID = :AFirmSel_ID)) OR
          (B.Firm_ID in (SELECT ID FROM Firms WHERE Firm_ID in (select OBJ_ID from SELDAT where SEL_ID = :AFirmSel_ID))) )
      INTO
        :VATIndex_ID, :DocQueue_ID, :OrdNumber, :Period_ID, :VATDate$Date,
        :TAmountWithoutVAT, :LocalTAmountWithoutVAT, :TAmount, :LocalTAmount,
        :Text, :Description, :Firm_ID, :Division_ID, :BusOrder_ID, :BusTransaction_ID, :BusProject_ID,
        :PosIndex, :Document_ID, :ExternalNumber, :VATReportPreference
    DO BEGIN
      EXECUTE PROCEDURE CheckDivisionAndBusX
        :Division_ID, :ADivisionSel_ID, :ADivisionsWithChildren,
        :BusOrder_ID, :ABusOrderSel_ID, :ABusOrdersWithChildren,
        :BusTransaction_ID, :ABusTransactionSel_ID, :ABusTransactionsWithChildren,
        :BusProject_ID, :ABusProjectSel_ID, :ABusProjectsWithChildren
      RETURNING_VALUES
        :mSuspend;
      IF (mSuspend > 0) THEN 
      BEGIN
        VATAdmitDate$DATE = VATDate$DATE;
        SUSPEND;
      END
    END
  END
END

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