Procedura-GetRowsForDocument

Parametry:

NázevPopisDatový typ
ADOCUMENTTYPEChar(2)
ADOCUMENTIDChar(10)
AISSUEDDEPOSITS_IT_IDChar(10)
ARECEIVEDDEPOSITS_ET_IDChar(10)
ACUSTOMSDECLARATIONS_ET_IDChar(10)
AROUNDING_IT_IDChar(10)
AROUNDING_ET_IDChar(10)
AWAGES_ET_IDChar(10)
APOS_IT_IDChar(10)
AVATISSUEDDEPOSITS_IT_IDChar(10)
AVATRECEIVEDDEPOSITS_ET_IDChar(10)
ADateFrom$DATEFloat(0, 0)

Návratové hodnoty:

NázevPopisDatový typ
TYPE_IDChar(10)
AMOUNTNumeric(15, 2)
VATNumeric(15, 2)
POSINDEXInteger

Závislosti:

NázevPopisTřída
GetRowsForDocumentPOSProcedures
GetRowsForDocumentWageProcedures

Tělo:

BEGIN
IF (ADOCUMENTTYPE = '01') THEN BEGIN
  FOR
    SELECT A.INCOMETYPE_ID, (A.LOCALTAMOUNT - A.LOCALTAMOUNTWITHOUTVAT), A.LOCALTAMOUNTWITHOUTVAT, A.POSINDEX
    FROM OTHERINCOMES2 A
    WHERE A.PARENT_ID = :ADOCUMENTID
    UNION ALL
    SELECT CAST(:AROUNDING_IT_ID AS CHAR(10)), CAST(0 AS NUMERIC(15,2)), A.LOCALROUNDINGAMOUNT, CAST(NULL AS INTEGER)
    FROM OTHERINCOMES A
    WHERE (A.ID = :ADOCUMENTID) AND (A.LOCALROUNDINGAMOUNT <> 0)
    INTO :TYPE_ID, :VAT, :AMOUNT, :POSINDEX
  DO BEGIN
    SUSPEND;
  END
END ELSE IF (ADOCUMENTTYPE = '02') THEN BEGIN
  FOR
    SELECT A.EXPENSETYPE_ID, (A.LOCALTAMOUNT - A.LOCALTAMOUNTWITHOUTVAT), A.LOCALTAMOUNTWITHOUTVAT, A.POSINDEX
    FROM OTHEREXPENSES2 A
    WHERE A.PARENT_ID = :ADOCUMENTID
    UNION ALL
    SELECT CAST(:AROUNDING_ET_ID AS CHAR(10)), CAST(0 AS NUMERIC(15,2)), A.LOCALROUNDINGAMOUNT, CAST(NULL AS INTEGER)
    FROM OTHEREXPENSES A
    WHERE (A.ID = :ADOCUMENTID) AND (A.LOCALROUNDINGAMOUNT <> 0)
    INTO :TYPE_ID, :VAT, :AMOUNT, :POSINDEX
  DO BEGIN
    SUSPEND;
  END
END ELSE IF (ADOCUMENTTYPE = '03') THEN BEGIN
  FOR
    SELECT A.INCOMETYPE_ID, (A.LOCALTAMOUNT - A.LOCALTAMOUNTWITHOUTVAT), A.LOCALTAMOUNTWITHOUTVAT, A.POSINDEX
    FROM ISSUEDINVOICES2 A
    WHERE (A.PARENT_ID = :ADOCUMENTID) AND ((A.ROWTYPE <> 4) OR (A.VATIndex_ID IS NOT NULL))
    UNION ALL
    SELECT CAST(:AROUNDING_IT_ID AS CHAR(10)), CAST(0 AS NUMERIC(15,2)), A.LOCALROUNDINGAMOUNT, CAST(NULL AS INTEGER)
    FROM ISSUEDINVOICES A
    WHERE (A.ID = :ADOCUMENTID)  AND (A.LOCALROUNDINGAMOUNT <> 0)
    INTO :TYPE_ID, :VAT, :AMOUNT, :POSINDEX
  DO BEGIN
    SUSPEND;
  END
END ELSE IF (ADOCUMENTTYPE = '04') THEN BEGIN
  FOR
    SELECT A.EXPENSETYPE_ID, (A.LOCALTAMOUNT - A.LOCALTAMOUNTWITHOUTVAT), A.LOCALTAMOUNTWITHOUTVAT, A.POSINDEX
    FROM RECEIVEDINVOICES2 A
    WHERE A.PARENT_ID = :ADOCUMENTID
    UNION ALL
    SELECT CAST(:AROUNDING_ET_ID AS CHAR(10)), CAST(0 AS NUMERIC(15,2)), A.LOCALROUNDINGAMOUNT, CAST(NULL AS INTEGER)
    FROM RECEIVEDINVOICES A
    WHERE (A.ID = :ADOCUMENTID) AND (A.LOCALROUNDINGAMOUNT <> 0)
    INTO :TYPE_ID, :VAT, :AMOUNT, :POSINDEX
  DO BEGIN
    SUSPEND;
  END
END ELSE IF (ADOCUMENTTYPE = '17') THEN BEGIN
  FOR
    SELECT A.INCOMETYPE_ID, A.LOCALTAMOUNT, A.POSINDEX
    FROM PENALTYINVOICES2 A
    WHERE A.PARENT_ID = :ADOCUMENTID
    UNION ALL
    SELECT CAST(:AROUNDING_IT_ID AS CHAR(10)), A.LOCALROUNDINGAMOUNT, CAST(NULL AS INTEGER)
    FROM PENALTYINVOICES A
    WHERE (A.ID = :ADOCUMENTID) AND (A.LOCALROUNDINGAMOUNT <> 0)
    INTO :TYPE_ID, :AMOUNT, :POSINDEX
  DO BEGIN
    SUSPEND;
  END
END ELSE IF (ADOCUMENTTYPE = '10') THEN BEGIN
  FOR
    SELECT
    A.LOCALTAMOUNT ,A.POSINDEX
    FROM ISSUEDDINVOICES2 A
    WHERE A.PARENT_ID = :ADOCUMENTID
    INTO :AMOUNT, :POSINDEX
  DO BEGIN 
    TYPE_ID = AISSUEDDEPOSITS_IT_ID;
    SUSPEND;
  END
END ELSE IF (ADOCUMENTTYPE = '11') THEN BEGIN
  FOR
    SELECT
    A.LOCALTAMOUNT, A.POSINDEX
    FROM RECEIVEDDINVOICES2 A
    WHERE A.PARENT_ID = :ADOCUMENTID
    INTO :AMOUNT, :POSINDEX
  DO BEGIN
    TYPE_ID = ARECEIVEDDEPOSITS_ET_ID;
  SUSPEND;
END
END ELSE IF (ADOCUMENTTYPE = '12') THEN BEGIN
  FOR
    SELECT A.LOCALTAMOUNT, A.LOCALVATAMOUNT, A.POSINDEX, AA.VATDOCUMENT
    FROM CUSTOMSDECLARATIONS2 A
    JOIN CUSTOMSDECLARATIONS AA ON AA.ID=A.PARENT_ID 
    WHERE A.PARENT_ID = :ADOCUMENTID
    INTO :AMOUNT, :VAT, :POSINDEX, :mVATDOCUMENT
  DO BEGIN
    IF (mVATDOCUMENT = 'N') THEN
      VAT = 0;
    ELSE
      AMOUNT = AMOUNT - VAT;
    TYPE_ID = ACUSTOMSDECLARATIONS_ET_ID;
    SUSPEND;
  END
END ELSE IF (ADOCUMENTTYPE = '60') THEN BEGIN
  FOR
    SELECT A.INCOMETYPE_ID, A.LOCALTAMOUNT, A.POSINDEX
    FROM ISSUEDCREDITNOTES2 A
    WHERE (A.PARENT_ID = :ADOCUMENTID) AND ((A.ROWTYPE <> 4) OR (A.VATIndex_ID IS NOT NULL))
    UNION ALL
    SELECT CAST(:AROUNDING_IT_ID AS CHAR(10)), A.LOCALROUNDINGAMOUNT, CAST(NULL AS INTEGER)
    FROM ISSUEDCREDITNOTES A
    WHERE (A.ID = :ADOCUMENTID)  AND (A.LOCALROUNDINGAMOUNT <> 0)
    INTO :TYPE_ID, :AMOUNT, :POSINDEX
  DO BEGIN
    SUSPEND;
  END
END ELSE IF (ADOCUMENTTYPE = '61') THEN BEGIN
  FOR
    SELECT A.EXPENSETYPE_ID, A.LOCALTAMOUNT, A.POSINDEX
    FROM RECEIVEDCREDITNOTES2 A
    WHERE A.PARENT_ID = :ADOCUMENTID
    UNION ALL
    SELECT CAST(:AROUNDING_ET_ID AS CHAR(10)), A.LOCALROUNDINGAMOUNT, CAST(NULL AS INTEGER)
    FROM RECEIVEDCREDITNOTES A
    WHERE (A.ID = :ADOCUMENTID)  AND (A.LOCALROUNDINGAMOUNT <> 0)
    INTO :TYPE_ID, :AMOUNT, :POSINDEX
  DO BEGIN
    SUSPEND;
  END
END ELSE IF (ADOCUMENTTYPE = '62') THEN BEGIN
  FOR
    SELECT CAST(:AVATISSUEDDEPOSITS_IT_ID AS CHAR(10)), (A.LOCALTAMOUNT - A.LOCALTAMOUNTWITHOUTVAT), A.LOCALTAMOUNTWITHOUTVAT, A.POSINDEX
    FROM VATISSUEDDINVOICES2 A
    WHERE A.PARENT_ID = :ADOCUMENTID
    UNION ALL
    SELECT CAST(:AROUNDING_IT_ID AS CHAR(10)), CAST(0 AS NUMERIC(15,2)), A.LOCALROUNDINGAMOUNT, CAST(NULL AS INTEGER)
    FROM VATISSUEDDINVOICES A
    WHERE (A.ID = :ADOCUMENTID)  AND (A.LOCALROUNDINGAMOUNT <> 0)
    INTO :TYPE_ID, :VAT, :AMOUNT, :POSINDEX
  DO BEGIN
    SUSPEND;
  END
END ELSE IF (ADOCUMENTTYPE = '64') THEN BEGIN
  FOR
    SELECT CAST(:AVATRECEIVEDDEPOSITS_ET_ID AS CHAR(10)), (A.LOCALTAMOUNT - A.LOCALTAMOUNTWITHOUTVAT), A.LOCALTAMOUNTWITHOUTVAT, A.POSINDEX
    FROM VATRECEIVEDDINVOICES2 A
    WHERE A.PARENT_ID = :ADOCUMENTID
    UNION ALL
    SELECT CAST(:AROUNDING_ET_ID AS CHAR(10)), CAST(0 AS NUMERIC(15,2)), A.LOCALROUNDINGAMOUNT, CAST(NULL AS INTEGER)
    FROM VATRECEIVEDDINVOICES A
    WHERE (A.ID = :ADOCUMENTID)  AND (A.LOCALROUNDINGAMOUNT <> 0)
    INTO :TYPE_ID, :VAT, :AMOUNT, :POSINDEX
  DO BEGIN
    SUSPEND;
  END
END ELSE IF (ADOCUMENTTYPE = '63') THEN BEGIN
  FOR
    SELECT CAST(:AVATISSUEDDEPOSITS_IT_ID AS CHAR(10)), A.LOCALTAMOUNT, A.POSINDEX
    FROM VATISSUEDDCREDITNOTES2 A
    WHERE A.PARENT_ID = :ADOCUMENTID
    UNION ALL
    SELECT CAST(:AROUNDING_IT_ID AS CHAR(10)), A.LOCALROUNDINGAMOUNT, CAST(NULL AS INTEGER)
    FROM VATISSUEDDCREDITNOTES A
    WHERE (A.ID = :ADOCUMENTID)  AND (A.LOCALROUNDINGAMOUNT <> 0)
    INTO :TYPE_ID, :AMOUNT, :POSINDEX
  DO BEGIN
    SUSPEND;
  END
END ELSE IF (ADOCUMENTTYPE = '65') THEN BEGIN
  FOR
    SELECT CAST(:AVATRECEIVEDDEPOSITS_ET_ID AS CHAR(10)), A.LOCALTAMOUNT, A.POSINDEX
    FROM VATRECEIVEDDCREDITNOTES2 A
    WHERE A.PARENT_ID = :ADOCUMENTID
    UNION ALL
    SELECT CAST(:AROUNDING_ET_ID AS CHAR(10)), A.LOCALROUNDINGAMOUNT, CAST(NULL AS INTEGER)
    FROM VATRECEIVEDDCREDITNOTES A
    WHERE (A.ID = :ADOCUMENTID)  AND (A.LOCALROUNDINGAMOUNT <> 0)
    INTO :TYPE_ID, :AMOUNT, :POSINDEX
  DO BEGIN
    SUSPEND;
  END
END ELSE IF ((ADOCUMENTTYPE = 'CP') OR (ADOCUMENTTYPE = 'CR')) THEN BEGIN
  FOR
    SELECT TYPE_ID, AMOUNT, VAT, POSINDEX
    FROM GETROWSFORDOCUMENTPOS(:ADOCUMENTTYPE, :ADOCUMENTID, :APOS_IT_ID, :ADateFrom$DATE)
    INTO :TYPE_ID, :AMOUNT, :VAT, :POSINDEX
  DO BEGIN
   SUSPEND;
  END
END ELSE IF (ADOCUMENTTYPE = '47') THEN BEGIN
  SELECT TYPE_ID, AMOUNT, VAT, POSINDEX FROM
  GETROWSFORDOCUMENTWAGE(:ADOCUMENTTYPE, :ADOCUMENTID, :AWAGES_ET_ID)
  INTO :TYPE_ID, :AMOUNT, :VAT, :POSINDEX;
  SUSPEND;
END
END

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