taPMDistributionCreate

Full text below. This is from GP2018, NOT SUITABLE TO USE IN PRODUCTION, but it is useful for finding error messages

 

ALTER PROCEDURE [dbo].[taPMDistributionCreate]
    @I_vDOCTYPE SMALLINT,
    @I_vVCHNUMWK CHAR(17),
    @I_vVENDORID CHAR(15),
    @I_vCURRNIDX INT,
    @I_vCURNCYID CHAR(15),
    @I_vDECPLCUR INT,
    @I_vPTDUSRID CHAR(15) = '',
    @I_vPRCHAMNT NUMERIC(19, 5) = 0,
    @I_vTRDISAMT NUMERIC(19, 5) = 0,
    @I_vFRTAMNT NUMERIC(19, 5) = 0,
    @I_vMSCCHAMT NUMERIC(19, 5) = 0,
    @I_vDISTKNAM NUMERIC(19, 5) = 0,
    @I_vCASHAMNT NUMERIC(19, 5) = 0,
    @I_vCHEKAMNT NUMERIC(19, 5) = 0,
    @I_vCRCRDAMT NUMERIC(19, 5) = 0,
    @I_vDOCAMNT NUMERIC(19, 5) = 0,
    @I_vDISAMTAV NUMERIC(19, 5) = 0,
    @I_vGSTDSAMT NUMERIC(19, 5) = 0,
    @I_vCAMCBKID CHAR(15) = '',
    @I_vCHAMCBID CHAR(15) = '',
    @I_vCARDNAME CHAR(15) = '',
    @I_vRATETPID CHAR(15) = '',
    @I_vXCHGRATE NUMERIC(19, 7) = 0,
    @I_vEXCHDATE DATETIME = '',
    @I_vEXPNDATE DATETIME = '',
    @I_vEXGTBLID CHAR(15) = '',
    @I_vTIME1 DATETIME = '',
    @I_vORCASHAMNT NUMERIC(19, 5) = 0,
    @I_vORCHEKAMNT NUMERIC(19, 5) = 0,
    @I_vORCRCRDAMT NUMERIC(19, 5) = 0,
    @I_vORDISTKNAM NUMERIC(19, 5) = 0,
    @I_vORTRDISAMT NUMERIC(19, 5) = 0,
    @I_vORMSCCHAMT NUMERIC(19, 5) = 0,
    @I_vORFRTAMNT NUMERIC(19, 5) = 0,
    @I_vORTAXAMNT NUMERIC(19, 5) = 0,
    @I_vORPRCHAMNT NUMERIC(19, 5) = 0,
    @I_vORDOCAMNT NUMERIC(19, 5) = 0,
    @I_vORDISAMTAV NUMERIC(19, 5) = 0,
    @I_vRTCLCMTD SMALLINT = 0,
    @I_vCMPANYID SMALLINT = 0,
    @I_vINTERID CHAR(5) = '',
    @I_vCREATEDIST INT = 1,
    @O_iErrorState INT = NULL OUTPUT,
    @oErrString VARCHAR(255) OUTPUT
AS
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
SET NOCOUNT ON;
DECLARE @DTAREF CHAR(25),
        @VENDORID CHAR(15),
        @CKBKNUM2 CHAR(15),
        @PYBLGRBX SMALLINT,
        @PTCSHACF SMALLINT,
        @APADJ NUMERIC(19, 5),
        @APADJ2 NUMERIC(19, 5),
        @TEMP NUMERIC(19, 5),
        @TEMP2 NUMERIC(19, 5),
        @DISCAVAMT NUMERIC(19, 5),
        @ORDISCAVAMT NUMERIC(19, 5),
        @TRKDISAV INT,
        @ACTINDX INT,
        @O_oErrorState INT,
        @cDTYPE INT,
        @cDTAMT NUMERIC(19, 5),
        @cCTAMT NUMERIC(19, 5),
        @cORDTAMT NUMERIC(19, 5),
        @cORCTAMT NUMERIC(19, 5),
        @iCursorError INT,
        @cINDEX INT,
        @cStatement VARCHAR(255),
        @iStatus INT,
        @iError INT,
        @round NUMERIC(19, 5),
        @ISMCTRX INT,
        @aaSubLedgerHdrID INT,
        @O_iErrorStateAASub INT,
        @O_iErrorStringAASub VARCHAR(255),
        @itaProcessAnalyticsErrState INT,
        @itaProcessAnalyticsErrString VARCHAR(8000),
        @DSTSQNUM INT,
        @ROUNDACCT INT,
        @CURRNIDX INT,
        @CURNCYID CHAR(15),
        @INTERID CHAR(5);
SELECT @DTAREF = '',
       @O_iErrorState = 0,
       @iStatus = 0,
       @O_oErrorState = 0,
       @ACTINDX = 0,
       @DISCAVAMT = 0,
       @ORDISCAVAMT = 0,
       @TRKDISAV = 0,
       @TEMP = 0,
       @TEMP2 = 0,
       @APADJ = 0,
       @APADJ2 = 0,
       @PTCSHACF = 0,
       @PYBLGRBX = 0,
       @CKBKNUM2 = '',
       @VENDORID = '',
       @round = 0,
       @ISMCTRX = 1,
       @aaSubLedgerHdrID = 0,
       @O_iErrorStateAASub = 0,
       @O_iErrorStringAASub = '',
       @itaProcessAnalyticsErrState = 0,
       @itaProcessAnalyticsErrString = '',
       @DSTSQNUM = 0,
       @ROUNDACCT = 0,
       @CURRNIDX = 0,
       @CURNCYID = '',
       @INTERID = '';
IF (
       @I_vDOCTYPE IS NULL
       OR @I_vVCHNUMWK IS NULL
       OR @I_vVENDORID IS NULL
       OR @I_vCURRNIDX IS NULL
       OR @I_vCURNCYID IS NULL
       OR @I_vDECPLCUR IS NULL
       OR @I_vPTDUSRID IS NULL
       OR @I_vPRCHAMNT IS NULL
       OR @I_vTRDISAMT IS NULL
       OR @I_vFRTAMNT IS NULL
       OR @I_vMSCCHAMT IS NULL
       OR @I_vDISTKNAM IS NULL
       OR @I_vCASHAMNT IS NULL
       OR @I_vCHEKAMNT IS NULL
       OR @I_vCRCRDAMT IS NULL
       OR @I_vDOCAMNT IS NULL
       OR @I_vGSTDSAMT IS NULL
       OR @I_vDISAMTAV IS NULL
       OR @I_vCAMCBKID IS NULL
       OR @I_vCHAMCBID IS NULL
       OR @I_vCARDNAME IS NULL
       OR @I_vRATETPID IS NULL
       OR @I_vXCHGRATE IS NULL
       OR @I_vEXCHDATE IS NULL
       OR @I_vEXPNDATE IS NULL
       OR @I_vEXGTBLID IS NULL
       OR @I_vTIME1 IS NULL
       OR @I_vORCASHAMNT IS NULL
       OR @I_vORCHEKAMNT IS NULL
       OR @I_vORCRCRDAMT IS NULL
       OR @I_vORDISTKNAM IS NULL
       OR @I_vORTRDISAMT IS NULL
       OR @I_vORMSCCHAMT IS NULL
       OR @I_vORFRTAMNT IS NULL
       OR @I_vORTAXAMNT IS NULL
       OR @I_vORPRCHAMNT IS NULL
       OR @I_vORDOCAMNT IS NULL
       OR @I_vORDISAMTAV IS NULL
   )
BEGIN
    SELECT @O_iErrorState = 700;
    RETURN (@O_iErrorState);
END;
SELECT @I_vVENDORID = UPPER(@I_vVENDORID);
SELECT @DTAREF = RTRIM(@I_vVCHNUMWK) + SPACE(20 - LEN(@I_vVCHNUMWK)) + '0';
IF @I_vRTCLCMTD NOT IN ( 0, 1 )
BEGIN
    SELECT @I_vXCHGRATE = 1,
           @I_vTIME1 = '',
           @ISMCTRX = 0;
END;
IF @I_vCREATEDIST = 1
BEGIN
    IF (EXISTS
    (
        SELECT 1
        FROM DTA10100 (NOLOCK)
        WHERE DTASERIES = 4
              AND DTAREF = @DTAREF
    )
       )
    BEGIN
        DELETE DTA10100
        WHERE DTASERIES = 4
              AND DTAREF = @DTAREF;
        IF (@@error <> 0)
        BEGIN
            SELECT @O_iErrorState = 3628;
            EXEC @iStatus = taUpdateString @O_iErrorState,
                                           @oErrString,
                                           @oErrString OUTPUT,
                                           @O_oErrorState OUTPUT;
            RETURN (@O_iErrorState);
        END;
    END;
    IF (EXISTS
    (
        SELECT 1
        FROM DTA10200 (NOLOCK)
        WHERE DTASERIES = 4
              AND DTAREF = @DTAREF
    )
       )
    BEGIN
        DELETE DTA10200
        WHERE DTASERIES = 4
              AND DTAREF = @DTAREF;
        IF (@@error <> 0)
        BEGIN
            SELECT @O_iErrorState = 3629;
            EXEC @iStatus = taUpdateString @O_iErrorState,
                                           @oErrString,
                                           @oErrString OUTPUT,
                                           @O_oErrorState OUTPUT;
            RETURN (@O_iErrorState);
        END;
    END;
    CREATE TABLE #temp
    (
        DTYPE INT,
        DTAMT NUMERIC(19, 5),
        CTAMT NUMERIC(19, 5),
        ORDTAMT NUMERIC(19, 5),
        ORCTAMT NUMERIC(19, 5),
        DTINDEX INT
    );
    IF (@@error <> 0)
    BEGIN
        SELECT @O_iErrorState = 703;
        RETURN (@O_iErrorState);
    END;
    IF (@I_vDOCTYPE = 1)
    BEGIN
        SELECT @ACTINDX = 0;
        SELECT @ACTINDX = ISNULL(PMPRCHIX, 0)
        FROM PM00200 (NOLOCK)
        WHERE VENDORID = @I_vVENDORID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM PM00203 (NOLOCK)
            WHERE VENDORID = @I_vVENDORID
                  AND DISTTYPE = 6;
        IF (@ACTINDX = 0)
           AND (NOT EXISTS
        (
            SELECT 1
            FROM PM00203 (NOLOCK)
            WHERE VENDORID = @I_vVENDORID
                  AND DISTTYPE = 6
        )
               )
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 600;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 6,
               @I_vPRCHAMNT,
               0,
               @I_vORPRCHAMNT,
               0,
               @ACTINDX;
        SELECT @ACTINDX = 0;
        SELECT @ACTINDX = ISNULL(PMTDSCIX, 0)
        FROM PM00200 (NOLOCK)
        WHERE VENDORID = @I_vVENDORID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 700;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 7,
               0,
               @I_vTRDISAMT,
               0,
               @I_vORTRDISAMT,
               @ACTINDX;
        SELECT @ACTINDX = 0;
        SELECT @ACTINDX = ISNULL(PMFRTIDX, 0)
        FROM PM00200 (NOLOCK)
        WHERE VENDORID = @I_vVENDORID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 900;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 9,
               @I_vFRTAMNT,
               0,
               @I_vORFRTAMNT,
               0,
               @ACTINDX;
        SELECT @ACTINDX = 0;
        SELECT @ACTINDX = ISNULL(PMMSCHIX, 0)
        FROM PM00200 (NOLOCK)
        WHERE VENDORID = @I_vVENDORID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 800;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 8,
               @I_vMSCCHAMT,
               0,
               @I_vORMSCCHAMT,
               0,
               @ACTINDX;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 10,
               ISNULL(SUM(TAXAMNT), 0),
               0,
               ISNULL(SUM(ORTAXAMT), 0),
               0,
               ACTINDX
        FROM PM10500 (NOLOCK)
        WHERE VCHRNMBR = @I_vVCHNUMWK
              AND DOCTYPE = @I_vDOCTYPE
        GROUP BY DOCTYPE,
                 VCHRNMBR,
                 ACTINDX;
        SELECT @ACTINDX = 0;
        SELECT @ACTINDX = ISNULL(PMTAXIDX, 0)
        FROM PM00200 (NOLOCK)
        WHERE VENDORID = @I_vVENDORID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 1000;
        UPDATE #temp
        SET DTINDEX = @ACTINDX
        WHERE DTYPE = 10
              AND DTINDEX = 0;
        SELECT @ACTINDX = 0;
        SELECT @ACTINDX = ISNULL(PMDTKIDX, 0)
        FROM PM00200 (NOLOCK)
        WHERE VENDORID = @I_vVENDORID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 400;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 4,
               0,
               @I_vDISTKNAM,
               0,
               @I_vORDISTKNAM,
               @ACTINDX;
        SELECT @ACTINDX = 0;
        SELECT @TRKDISAV = TRKDISAV
        FROM PM40100 (NOLOCK)
        WHERE UNIQKEY = '1';
        IF (@TRKDISAV = 1)
        BEGIN
            SELECT @ACTINDX = ISNULL(PMDAVIDX, 0)
            FROM PM00200 (NOLOCK)
            WHERE VENDORID = @I_vVENDORID;
            IF (@ACTINDX = 0)
                SELECT @ACTINDX = ISNULL(ACTINDX, 0)
                FROM SY01100 (NOLOCK)
                WHERE SERIES = 4
                      AND SEQNUMBR = 300;
            SELECT @TEMP = @I_vDOCAMNT - (@I_vCASHAMNT + @I_vCHEKAMNT + @I_vCRCRDAMT);
            SELECT @TEMP2 = @I_vORDOCAMNT - (@I_vORCASHAMNT + @I_vORCHEKAMNT + @I_vORCRCRDAMT);
            IF (@I_vDISTKNAM < @I_vDISAMTAV)
            BEGIN
                IF (@TEMP >= @I_vDISAMTAV)
                    SELECT @DISCAVAMT = @I_vDISAMTAV - @I_vDISTKNAM,
                           @ORDISCAVAMT = @I_vORDISAMTAV - @I_vORDISTKNAM;
                ELSE
                    SELECT @DISCAVAMT = @TEMP - @I_vDISTKNAM,
                           @ORDISCAVAMT = @TEMP2 - @I_vORDISTKNAM;
                INSERT INTO #temp
                (
                    DTYPE,
                    DTAMT,
                    CTAMT,
                    ORDTAMT,
                    ORCTAMT,
                    DTINDEX
                )
                SELECT 3,
                       0,
                       @DISCAVAMT,
                       0,
                       @ORDISCAVAMT,
                       @ACTINDX;
            END;
        END;
        SELECT @ACTINDX = 0;
        SELECT @ACTINDX = ISNULL(PMAPINDX, 0)
        FROM PM00200 (NOLOCK)
        WHERE VENDORID = @I_vVENDORID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 200;
        SELECT @APADJ = @I_vDOCAMNT - (@I_vCASHAMNT + @I_vCHEKAMNT + @I_vCRCRDAMT + @I_vDISTKNAM);
        SELECT @APADJ2 = @I_vORDOCAMNT - (@I_vORCASHAMNT + @I_vORCHEKAMNT + @I_vORCRCRDAMT + @I_vORDISTKNAM);
        IF (@TRKDISAV = 1)
            SELECT @APADJ = @APADJ - @DISCAVAMT;
        SELECT @APADJ2 = @APADJ2 - @ORDISCAVAMT;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 2,
               0,
               @APADJ,
               0,
               @APADJ2,
               @ACTINDX;
        SELECT @ACTINDX = 0;
        SELECT @PTCSHACF = PTCSHACF
        FROM PM00200 (NOLOCK)
        WHERE VENDORID = @I_vVENDORID;
        IF (@PTCSHACF = 1)
            SELECT @ACTINDX = ISNULL(PMCSHIDX, 0)
            FROM PM00200 (NOLOCK)
            WHERE VENDORID = @I_vVENDORID;
        ELSE
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM CM00100 (NOLOCK)
            WHERE CHEKBKID = @I_vCAMCBKID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 100;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 1,
               0,
               @I_vCASHAMNT,
               0,
               @I_vORCASHAMNT,
               @ACTINDX;
        SELECT @ACTINDX = 0;
        IF (@PTCSHACF = 1)
            SELECT @ACTINDX = ISNULL(PMCSHIDX, 0)
            FROM PM00200 (NOLOCK)
            WHERE VENDORID = @I_vVENDORID;
        ELSE
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM CM00100 (NOLOCK)
            WHERE CHEKBKID = @I_vCHAMCBID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 100;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 1,
               0,
               @I_vCHEKAMNT,
               0,
               @I_vORCHEKAMNT,
               @ACTINDX;
        SELECT @ACTINDX = 0;
        SELECT @ACTINDX = ISNULL(ACTINDX, 0),
               @PYBLGRBX = PYBLGRBX,
               @CKBKNUM2 = CKBKNUM2,
               @VENDORID = VENDORID
        FROM SY03100 (NOLOCK)
        WHERE CARDNAME = @I_vCARDNAME;
        IF (@PYBLGRBX = 1)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM CM00100 (NOLOCK)
            WHERE CHEKBKID = @CKBKNUM2;
        ELSE
            SELECT @ACTINDX = ISNULL(PMAPINDX, 0)
            FROM PM00200 (NOLOCK)
            WHERE VENDORID = @VENDORID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 100;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 1,
               0,
               @I_vCRCRDAMT,
               0,
               @I_vORCRCRDAMT,
               @ACTINDX;
    END;
    IF (@I_vDOCTYPE = 2)
    BEGIN
        SELECT @ACTINDX = 0;
        SELECT @ACTINDX = ISNULL(PMFINIDX, 0)
        FROM PM00200 (NOLOCK)
        WHERE VENDORID = @I_vVENDORID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM PM00203 (NOLOCK)
            WHERE VENDORID = @I_vVENDORID
                  AND DISTTYPE = 5;
        IF (@ACTINDX = 0)
           AND (NOT EXISTS
        (
            SELECT 1
            FROM PM00203 (NOLOCK)
            WHERE VENDORID = @I_vVENDORID
                  AND DISTTYPE = 5
        )
               )
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 500;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 5,
               @I_vPRCHAMNT,
               0,
               @I_vORPRCHAMNT,
               0,
               @ACTINDX;
        SELECT @ACTINDX = 0;
        SELECT @ACTINDX = ISNULL(PMTDSCIX, 0)
        FROM PM00200 (NOLOCK)
        WHERE VENDORID = @I_vVENDORID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 700;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 7,
               0,
               @I_vTRDISAMT,
               0,
               @I_vORTRDISAMT,
               @ACTINDX;
        SELECT @ACTINDX = 0;
        SELECT @ACTINDX = ISNULL(PMFRTIDX, 0)
        FROM PM00200 (NOLOCK)
        WHERE VENDORID = @I_vVENDORID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 900;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 9,
               @I_vFRTAMNT,
               0,
               @I_vORFRTAMNT,
               0,
               @ACTINDX;
        SELECT @ACTINDX = 0;
        SELECT @ACTINDX = ISNULL(PMMSCHIX, 0)
        FROM PM00200 (NOLOCK)
        WHERE VENDORID = @I_vVENDORID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 800;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 8,
               @I_vMSCCHAMT,
               0,
               @I_vORMSCCHAMT,
               0,
               @ACTINDX;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 10,
               ISNULL(SUM(TAXAMNT), 0),
               0,
               ISNULL(SUM(ORTAXAMT), 0),
               0,
               ACTINDX
        FROM PM10500 (NOLOCK)
        WHERE VCHRNMBR = @I_vVCHNUMWK
              AND DOCTYPE = @I_vDOCTYPE
        GROUP BY DOCTYPE,
                 VCHRNMBR,
                 ACTINDX;
        SELECT @ACTINDX = 0;
        SELECT @ACTINDX = ISNULL(PMTAXIDX, 0)
        FROM PM00200 (NOLOCK)
        WHERE VENDORID = @I_vVENDORID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 1000;
        UPDATE #temp
        SET DTINDEX = @ACTINDX
        WHERE DTYPE = 10
              AND DTINDEX = 0;
        SELECT @ACTINDX = 0;
        SELECT @ACTINDX = ISNULL(PMDTKIDX, 0)
        FROM PM00200 (NOLOCK)
        WHERE VENDORID = @I_vVENDORID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 400;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 4,
               0,
               @I_vDISTKNAM,
               0,
               @I_vORDISTKNAM,
               @ACTINDX;
        SELECT @ACTINDX = 0;
        SELECT @TRKDISAV = TRKDISAV
        FROM PM40100 (NOLOCK)
        WHERE UNIQKEY = '1';
        IF (@TRKDISAV = 1)
        BEGIN
            SELECT @ACTINDX = ISNULL(PMDAVIDX, 0)
            FROM PM00200 (NOLOCK)
            WHERE VENDORID = @I_vVENDORID;
            IF (@ACTINDX = 0)
                SELECT @ACTINDX = ISNULL(ACTINDX, 0)
                FROM SY01100 (NOLOCK)
                WHERE SERIES = 4
                      AND SEQNUMBR = 300;
            SELECT @TEMP = @I_vDOCAMNT - (@I_vCASHAMNT + @I_vCHEKAMNT + @I_vCRCRDAMT);
            SELECT @TEMP2 = @I_vORDOCAMNT - (@I_vORCASHAMNT + @I_vORCHEKAMNT + @I_vORCRCRDAMT);
            IF (@I_vDISTKNAM < @I_vDISAMTAV)
            BEGIN
                IF (@TEMP >= @I_vDISAMTAV)
                    SELECT @DISCAVAMT = @I_vDISAMTAV - @I_vDISTKNAM,
                           @ORDISCAVAMT = @I_vORDISAMTAV - @I_vORDISTKNAM;
                ELSE
                    SELECT @DISCAVAMT = @TEMP - @I_vDISTKNAM,
                           @ORDISCAVAMT = @TEMP2 - @I_vORDISTKNAM;
                INSERT INTO #temp
                (
                    DTYPE,
                    DTAMT,
                    CTAMT,
                    ORDTAMT,
                    ORCTAMT,
                    DTINDEX
                )
                SELECT 3,
                       0,
                       @DISCAVAMT,
                       0,
                       @ORDISCAVAMT,
                       @ACTINDX;
            END;
        END;
        SELECT @ACTINDX = 0;
        SELECT @ACTINDX = ISNULL(PMAPINDX, 0)
        FROM PM00200 (NOLOCK)
        WHERE VENDORID = @I_vVENDORID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 200;
        SELECT @APADJ = @I_vDOCAMNT - (@I_vCASHAMNT + @I_vCHEKAMNT + @I_vCRCRDAMT + @I_vDISTKNAM);
        SELECT @APADJ2 = @I_vORDOCAMNT - (@I_vORCASHAMNT + @I_vORCHEKAMNT + @I_vORCRCRDAMT + @I_vORDISTKNAM);
        IF (@TRKDISAV = 1)
            SELECT @APADJ = @APADJ - @DISCAVAMT;
        SELECT @APADJ2 = @APADJ2 - @ORDISCAVAMT;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 2,
               0,
               @APADJ,
               0,
               @APADJ2,
               @ACTINDX;
        SELECT @ACTINDX = 0;
        SELECT @PTCSHACF = PTCSHACF
        FROM PM00200 (NOLOCK)
        WHERE VENDORID = @I_vVENDORID;
        IF (@PTCSHACF = 1)
            SELECT @ACTINDX = ISNULL(PMCSHIDX, 0)
            FROM PM00200 (NOLOCK)
            WHERE VENDORID = @I_vVENDORID;
        ELSE
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM CM00100 (NOLOCK)
            WHERE CHEKBKID = @I_vCAMCBKID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 100;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 1,
               0,
               @I_vCASHAMNT,
               0,
               @I_vORCASHAMNT,
               @ACTINDX;
        SELECT @ACTINDX = 0;
        IF (@PTCSHACF = 1)
            SELECT @ACTINDX = ISNULL(PMCSHIDX, 0)
            FROM PM00200 (NOLOCK)
            WHERE VENDORID = @I_vVENDORID;
        ELSE
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM CM00100 (NOLOCK)
            WHERE CHEKBKID = @I_vCHAMCBID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 100;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 1,
               0,
               @I_vCHEKAMNT,
               0,
               @I_vORCHEKAMNT,
               @ACTINDX;
        SELECT @ACTINDX = 0;
        SELECT @ACTINDX = ISNULL(ACTINDX, 0),
               @PYBLGRBX = PYBLGRBX,
               @CKBKNUM2 = CKBKNUM2,
               @VENDORID = VENDORID
        FROM SY03100 (NOLOCK)
        WHERE CARDNAME = @I_vCARDNAME;
        IF (@PYBLGRBX = 1)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM CM00100 (NOLOCK)
            WHERE CHEKBKID = @CKBKNUM2;
        ELSE
            SELECT @ACTINDX = ISNULL(PMAPINDX, 0)
            FROM PM00200 (NOLOCK)
            WHERE VENDORID = @VENDORID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 100;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 1,
               0,
               @I_vCRCRDAMT,
               0,
               @I_vORCRCRDAMT,
               @ACTINDX;
    END;
    IF (@I_vDOCTYPE = 3)
    BEGIN
        SELECT @ACTINDX = 0;
        SELECT @ACTINDX = ISNULL(PMPRCHIX, 0)
        FROM PM00200 (NOLOCK)
        WHERE VENDORID = @I_vVENDORID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM PM00203 (NOLOCK)
            WHERE VENDORID = @I_vVENDORID
                  AND DISTTYPE = 5;
        IF (@ACTINDX = 0)
           AND (NOT EXISTS
        (
            SELECT 1
            FROM PM00203 (NOLOCK)
            WHERE VENDORID = @I_vVENDORID
                  AND DISTTYPE = 5
        )
               )
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 600;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 6,
               @I_vPRCHAMNT,
               0,
               @I_vORPRCHAMNT,
               0,
               @ACTINDX;
        SELECT @ACTINDX = 0;
        SELECT @ACTINDX = ISNULL(PMTDSCIX, 0)
        FROM PM00200 (NOLOCK)
        WHERE VENDORID = @I_vVENDORID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 700;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 7,
               0,
               @I_vTRDISAMT,
               0,
               @I_vORTRDISAMT,
               @ACTINDX;
        SELECT @ACTINDX = 0;
        SELECT @ACTINDX = ISNULL(PMFRTIDX, 0)
        FROM PM00200 (NOLOCK)
        WHERE VENDORID = @I_vVENDORID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 900;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 9,
               @I_vFRTAMNT,
               0,
               @I_vORFRTAMNT,
               0,
               @ACTINDX;
        SELECT @ACTINDX = 0;
        SELECT @ACTINDX = ISNULL(PMMSCHIX, 0)
        FROM PM00200 (NOLOCK)
        WHERE VENDORID = @I_vVENDORID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 800;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 8,
               @I_vMSCCHAMT,
               0,
               @I_vORMSCCHAMT,
               0,
               @ACTINDX;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 10,
               ISNULL(SUM(TAXAMNT), 0),
               0,
               ISNULL(SUM(ORTAXAMT), 0),
               0,
               ACTINDX
        FROM PM10500 (NOLOCK)
        WHERE VCHRNMBR = @I_vVCHNUMWK
              AND DOCTYPE = @I_vDOCTYPE
        GROUP BY DOCTYPE,
                 VCHRNMBR,
                 ACTINDX;
        SELECT @ACTINDX = 0;
        SELECT @ACTINDX = ISNULL(PMTAXIDX, 0)
        FROM PM00200 (NOLOCK)
        WHERE VENDORID = @I_vVENDORID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 1000;
        UPDATE #temp
        SET DTINDEX = @ACTINDX
        WHERE DTYPE = 10
              AND DTINDEX = 0;
        SELECT @ACTINDX = 0;
        SELECT @ACTINDX = ISNULL(PMDTKIDX, 0)
        FROM PM00200 (NOLOCK)
        WHERE VENDORID = @I_vVENDORID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 400;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 4,
               0,
               @I_vDISTKNAM,
               0,
               @I_vORDISTKNAM,
               @ACTINDX;
        SELECT @ACTINDX = 0;
        SELECT @TRKDISAV = TRKDISAV
        FROM PM40100 (NOLOCK)
        WHERE UNIQKEY = '1';
        IF (@TRKDISAV = 1)
        BEGIN
            SELECT @ACTINDX = ISNULL(PMDAVIDX, 0)
            FROM PM00200 (NOLOCK)
            WHERE VENDORID = @I_vVENDORID;
            IF (@ACTINDX = 0)
                SELECT @ACTINDX = ISNULL(ACTINDX, 0)
                FROM SY01100 (NOLOCK)
                WHERE SERIES = 4
                      AND SEQNUMBR = 300;
            SELECT @TEMP = @I_vDOCAMNT - (@I_vCASHAMNT + @I_vCHEKAMNT + @I_vCRCRDAMT);
            SELECT @TEMP2 = @I_vORDOCAMNT - (@I_vORCASHAMNT + @I_vORCHEKAMNT + @I_vORCRCRDAMT);
            IF (@I_vDISTKNAM < @I_vDISAMTAV)
            BEGIN
                IF (@TEMP >= @I_vDISAMTAV)
                    SELECT @DISCAVAMT = @I_vDISAMTAV - @I_vDISTKNAM,
                           @ORDISCAVAMT = @I_vORDISAMTAV - @I_vORDISTKNAM;
                ELSE
                    SELECT @DISCAVAMT = @TEMP - @I_vDISTKNAM,
                           @ORDISCAVAMT = @TEMP2 - @I_vORDISTKNAM;
                INSERT INTO #temp
                (
                    DTYPE,
                    DTAMT,
                    CTAMT,
                    ORDTAMT,
                    ORCTAMT,
                    DTINDEX
                )
                SELECT 3,
                       0,
                       @DISCAVAMT,
                       0,
                       @ORDISCAVAMT,
                       @ACTINDX;
            END;
        END;
        SELECT @ACTINDX = 0;
        SELECT @ACTINDX = ISNULL(PMAPINDX, 0)
        FROM PM00200 (NOLOCK)
        WHERE VENDORID = @I_vVENDORID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 200;
        SELECT @APADJ = @I_vDOCAMNT - (@I_vCASHAMNT + @I_vCHEKAMNT + @I_vCRCRDAMT + @I_vDISTKNAM);
        SELECT @APADJ2 = @I_vORDOCAMNT - (@I_vORCASHAMNT + @I_vORCHEKAMNT + @I_vORCRCRDAMT + @I_vORDISTKNAM);
        IF (@TRKDISAV = 1)
            SELECT @APADJ = @APADJ - @DISCAVAMT;
        SELECT @APADJ2 = @APADJ2 - @ORDISCAVAMT;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 2,
               0,
               @APADJ,
               0,
               @APADJ2,
               @ACTINDX;
        SELECT @ACTINDX = 0;
        SELECT @PTCSHACF = PTCSHACF
        FROM PM00200 (NOLOCK)
        WHERE VENDORID = @I_vVENDORID;
        IF (@PTCSHACF = 1)
            SELECT @ACTINDX = ISNULL(PMCSHIDX, 0)
            FROM PM00200 (NOLOCK)
            WHERE VENDORID = @I_vVENDORID;
        ELSE
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM CM00100 (NOLOCK)
            WHERE CHEKBKID = @I_vCAMCBKID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 100;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 1,
               0,
               @I_vCASHAMNT,
               0,
               @I_vORCASHAMNT,
               @ACTINDX;
        SELECT @ACTINDX = 0;
        IF (@PTCSHACF = 1)
            SELECT @ACTINDX = ISNULL(PMCSHIDX, 0)
            FROM PM00200 (NOLOCK)
            WHERE VENDORID = @I_vVENDORID;
        ELSE
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM CM00100 (NOLOCK)
            WHERE CHEKBKID = @I_vCHAMCBID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 100;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 1,
               0,
               @I_vCHEKAMNT,
               0,
               @I_vORCHEKAMNT,
               @ACTINDX;
        SELECT @ACTINDX = 0;
        SELECT @ACTINDX = ISNULL(ACTINDX, 0),
               @PYBLGRBX = PYBLGRBX,
               @CKBKNUM2 = CKBKNUM2,
               @VENDORID = VENDORID
        FROM SY03100 (NOLOCK)
        WHERE CARDNAME = @I_vCARDNAME;
        IF (@PYBLGRBX = 1)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM CM00100 (NOLOCK)
            WHERE CHEKBKID = @CKBKNUM2;
        ELSE
            SELECT @ACTINDX = ISNULL(PMAPINDX, 0)
            FROM PM00200 (NOLOCK)
            WHERE VENDORID = @VENDORID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 100;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 1,
               0,
               @I_vCRCRDAMT,
               0,
               @I_vORCRCRDAMT,
               @ACTINDX;
    END;
    IF (@I_vDOCTYPE = 4)
    BEGIN
        SELECT @ACTINDX = 0;
        SELECT @ACTINDX = ISNULL(PMPRCHIX, 0)
        FROM PM00200 (NOLOCK)
        WHERE VENDORID = @I_vVENDORID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM PM00203 (NOLOCK)
            WHERE VENDORID = @I_vVENDORID
                  AND DISTTYPE = 6;
        IF (@ACTINDX = 0)
           AND (NOT EXISTS
        (
            SELECT 1
            FROM PM00203 (NOLOCK)
            WHERE VENDORID = @I_vVENDORID
                  AND DISTTYPE = 6
        )
               )
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 600;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 6,
               0,
               @I_vPRCHAMNT,
               0,
               @I_vORPRCHAMNT,
               @ACTINDX;
        SELECT @ACTINDX = 0;
        SELECT @ACTINDX = ISNULL(PMTDSCIX, 0)
        FROM PM00200 (NOLOCK)
        WHERE VENDORID = @I_vVENDORID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 700;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 7,
               @I_vTRDISAMT,
               0,
               @I_vORTRDISAMT,
               0,
               @ACTINDX;
        SELECT @ACTINDX = 0;
        SELECT @ACTINDX = ISNULL(PMFRTIDX, 0)
        FROM PM00200 (NOLOCK)
        WHERE VENDORID = @I_vVENDORID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 900;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 9,
               0,
               @I_vFRTAMNT,
               0,
               @I_vORFRTAMNT,
               @ACTINDX;
        SELECT @ACTINDX = 0;
        SELECT @ACTINDX = ISNULL(PMMSCHIX, 0)
        FROM PM00200 (NOLOCK)
        WHERE VENDORID = @I_vVENDORID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 800;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 8,
               0,
               @I_vMSCCHAMT,
               0,
               @I_vORMSCCHAMT,
               @ACTINDX;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 10,
               0,
               ISNULL(SUM(TAXAMNT), 0),
               0,
               ISNULL(SUM(ORTAXAMT), 0),
               ACTINDX
        FROM PM10500 (NOLOCK)
        WHERE VCHRNMBR = @I_vVCHNUMWK
              AND DOCTYPE = @I_vDOCTYPE
        GROUP BY DOCTYPE,
                 VCHRNMBR,
                 ACTINDX;
        SELECT @ACTINDX = 0;
        SELECT @ACTINDX = ISNULL(PMTAXIDX, 0)
        FROM PM00200 (NOLOCK)
        WHERE VENDORID = @I_vVENDORID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 1000;
        UPDATE #temp
        SET DTINDEX = @ACTINDX
        WHERE DTYPE = 10
              AND DTINDEX = 0;
        SELECT @ACTINDX = 0;
        SELECT @ACTINDX = ISNULL(PMDTKIDX, 0)
        FROM PM00200 (NOLOCK)
        WHERE VENDORID = @I_vVENDORID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 400;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 4,
               @I_vDISTKNAM,
               0,
               @I_vORDISTKNAM,
               0,
               @ACTINDX;
        SELECT @ACTINDX = 0;
        SELECT @TRKDISAV = TRKDISAV
        FROM PM40100 (NOLOCK)
        WHERE UNIQKEY = '1';
        IF (@TRKDISAV = 1)
        BEGIN
            SELECT @ACTINDX = ISNULL(PMDAVIDX, 0)
            FROM PM00200 (NOLOCK)
            WHERE VENDORID = @I_vVENDORID;
            IF (@ACTINDX = 0)
                SELECT @ACTINDX = ISNULL(ACTINDX, 0)
                FROM SY01100 (NOLOCK)
                WHERE SERIES = 4
                      AND SEQNUMBR = 300;
            SELECT @TEMP = @I_vDOCAMNT - (@I_vCASHAMNT + @I_vCHEKAMNT + @I_vCRCRDAMT);
            SELECT @TEMP2 = @I_vORDOCAMNT - (@I_vORCASHAMNT + @I_vORCHEKAMNT + @I_vORCRCRDAMT);
            IF (@I_vDISTKNAM < @I_vDISAMTAV)
            BEGIN
                IF (@TEMP >= @I_vDISAMTAV)
                    SELECT @DISCAVAMT = @I_vDISAMTAV - @I_vDISTKNAM,
                           @ORDISCAVAMT = @I_vORDISAMTAV - @I_vORDISTKNAM;
                ELSE
                    SELECT @DISCAVAMT = @TEMP - @I_vDISTKNAM,
                           @ORDISCAVAMT = @TEMP2 - @I_vORDISTKNAM;
                INSERT INTO #temp
                (
                    DTYPE,
                    DTAMT,
                    CTAMT,
                    ORDTAMT,
                    ORCTAMT,
                    DTINDEX
                )
                SELECT 3,
                       @DISCAVAMT,
                       0,
                       @ORDISCAVAMT,
                       0,
                       @ACTINDX;
            END;
        END;
        SELECT @ACTINDX = 0;
        SELECT @ACTINDX = ISNULL(PMAPINDX, 0)
        FROM PM00200 (NOLOCK)
        WHERE VENDORID = @I_vVENDORID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 200;
        SELECT @APADJ = @I_vDOCAMNT - (@I_vCASHAMNT + @I_vCHEKAMNT + @I_vCRCRDAMT + @I_vDISTKNAM);
        SELECT @APADJ2 = @I_vORDOCAMNT - (@I_vORCASHAMNT + @I_vORCHEKAMNT + @I_vORCRCRDAMT + @I_vORDISTKNAM);
        IF (@TRKDISAV = 1)
            SELECT @APADJ = @APADJ - @DISCAVAMT;
        SELECT @APADJ2 = @APADJ2 - @ORDISCAVAMT;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 2,
               @APADJ,
               0,
               @APADJ2,
               0,
               @ACTINDX;
        SELECT @ACTINDX = 0;
        SELECT @PTCSHACF = PTCSHACF
        FROM PM00200 (NOLOCK)
        WHERE VENDORID = @I_vVENDORID;
        IF (@PTCSHACF = 1)
            SELECT @ACTINDX = ISNULL(PMCSHIDX, 0)
            FROM PM00200 (NOLOCK)
            WHERE VENDORID = @I_vVENDORID;
        ELSE
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM CM00100 (NOLOCK)
            WHERE CHEKBKID = @I_vCAMCBKID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 100;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 1,
               @I_vCASHAMNT,
               0,
               @I_vORCASHAMNT,
               0,
               @ACTINDX;
        SELECT @ACTINDX = 0;
        IF (@PTCSHACF = 1)
            SELECT @ACTINDX = ISNULL(PMCSHIDX, 0)
            FROM PM00200 (NOLOCK)
            WHERE VENDORID = @I_vVENDORID;
        ELSE
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM CM00100 (NOLOCK)
            WHERE CHEKBKID = @I_vCHAMCBID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 100;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 1,
               @I_vCHEKAMNT,
               0,
               @I_vORCHEKAMNT,
               0,
               @ACTINDX;
        SELECT @ACTINDX = 0;
        SELECT @ACTINDX = ISNULL(ACTINDX, 0),
               @PYBLGRBX = PYBLGRBX,
               @CKBKNUM2 = CKBKNUM2,
               @VENDORID = VENDORID
        FROM SY03100 (NOLOCK)
        WHERE CARDNAME = @I_vCARDNAME;
        IF (@PYBLGRBX = 1)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM CM00100 (NOLOCK)
            WHERE CHEKBKID = @CKBKNUM2;
        ELSE
            SELECT @ACTINDX = ISNULL(PMAPINDX, 0)
            FROM PM00200 (NOLOCK)
            WHERE VENDORID = @VENDORID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 100;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 1,
               @I_vCRCRDAMT,
               0,
               @I_vORCRCRDAMT,
               0,
               @ACTINDX;
    END;
    IF (@I_vDOCTYPE = 5)
    BEGIN
        SELECT @ACTINDX = 0;
        SELECT @ACTINDX = ISNULL(PMPRCHIX, 0)
        FROM PM00200 (NOLOCK)
        WHERE VENDORID = @I_vVENDORID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM PM00203 (NOLOCK)
            WHERE VENDORID = @I_vVENDORID
                  AND DISTTYPE = 6;
        IF (@ACTINDX = 0)
           AND (NOT EXISTS
        (
            SELECT 1
            FROM PM00203 (NOLOCK)
            WHERE VENDORID = @I_vVENDORID
                  AND DISTTYPE = 6
        )
               )
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 600;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 6,
               0,
               @I_vPRCHAMNT,
               0,
               @I_vORPRCHAMNT,
               @ACTINDX;
        SELECT @ACTINDX = 0;
        SELECT @ACTINDX = ISNULL(PMTDSCIX, 0)
        FROM PM00200 (NOLOCK)
        WHERE VENDORID = @I_vVENDORID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 700;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 7,
               @I_vTRDISAMT,
               0,
               @I_vORTRDISAMT,
               0,
               @ACTINDX;
        SELECT @ACTINDX = 0;
        SELECT @ACTINDX = ISNULL(PMFRTIDX, 0)
        FROM PM00200 (NOLOCK)
        WHERE VENDORID = @I_vVENDORID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 900;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 9,
               0,
               @I_vFRTAMNT,
               0,
               @I_vORFRTAMNT,
               @ACTINDX;
        SELECT @ACTINDX = 0;
        SELECT @ACTINDX = ISNULL(PMMSCHIX, 0)
        FROM PM00200 (NOLOCK)
        WHERE VENDORID = @I_vVENDORID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 800;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 8,
               0,
               @I_vMSCCHAMT,
               0,
               @I_vORMSCCHAMT,
               @ACTINDX;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 10,
               0,
               ISNULL(SUM(TAXAMNT), 0),
               0,
               ISNULL(SUM(ORTAXAMT), 0),
               ACTINDX
        FROM PM10500 (NOLOCK)
        WHERE VCHRNMBR = @I_vVCHNUMWK
              AND DOCTYPE = @I_vDOCTYPE
        GROUP BY DOCTYPE,
                 VCHRNMBR,
                 ACTINDX;
        SELECT @ACTINDX = 0;
        SELECT @ACTINDX = ISNULL(PMTAXIDX, 0)
        FROM PM00200 (NOLOCK)
        WHERE VENDORID = @I_vVENDORID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 1000;
        UPDATE #temp
        SET DTINDEX = @ACTINDX
        WHERE DTYPE = 10
              AND DTINDEX = 0;
        SELECT @ACTINDX = 0;
        SELECT @ACTINDX = ISNULL(PMAPINDX, 0)
        FROM PM00200 (NOLOCK)
        WHERE VENDORID = @I_vVENDORID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 200;
        SELECT @APADJ = @I_vDOCAMNT - (@I_vCASHAMNT + @I_vCHEKAMNT + @I_vCRCRDAMT + @I_vDISTKNAM);
        SELECT @APADJ2 = @I_vORDOCAMNT - (@I_vORCASHAMNT + @I_vORCHEKAMNT + @I_vORCRCRDAMT + @I_vORDISTKNAM);
        IF (@TRKDISAV = 1)
            SELECT @APADJ = @APADJ - @DISCAVAMT;
        SELECT @APADJ2 = @APADJ2 - @ORDISCAVAMT;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 2,
               @APADJ,
               0,
               @APADJ2,
               0,
               @ACTINDX;
    END;
    IF (@I_vDOCTYPE = 6)
    BEGIN
        SELECT @ACTINDX = 0;
        SELECT @PTCSHACF = PTCSHACF
        FROM PM00200 (NOLOCK)
        WHERE VENDORID = @I_vVENDORID;
        IF (@PTCSHACF = 1)
            SELECT @ACTINDX = ISNULL(PMCSHIDX, 0)
            FROM PM00200 (NOLOCK)
            WHERE VENDORID = @I_vVENDORID;
        ELSE
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM CM00100 (NOLOCK)
            WHERE CHEKBKID = @I_vCAMCBKID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 100;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 1,
               0,
               @I_vCASHAMNT,
               0,
               @I_vORCASHAMNT,
               @ACTINDX;
        SELECT @ACTINDX = 0;
        IF (@PTCSHACF = 1)
            SELECT @ACTINDX = ISNULL(PMCSHIDX, 0)
            FROM PM00200 (NOLOCK)
            WHERE VENDORID = @I_vVENDORID;
        ELSE
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM CM00100 (NOLOCK)
            WHERE CHEKBKID = @I_vCAMCBKID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 100;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 1,
               0,
               @I_vCHEKAMNT,
               0,
               @I_vORCHEKAMNT,
               @ACTINDX;
        SELECT @ACTINDX = 0;
        SELECT @ACTINDX = ISNULL(ACTINDX, 0),
               @PYBLGRBX = PYBLGRBX,
               @CKBKNUM2 = CKBKNUM2,
               @VENDORID = VENDORID
        FROM SY03100 (NOLOCK)
        WHERE CARDNAME = @I_vCARDNAME;
        IF (@PYBLGRBX = 1)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM CM00100 (NOLOCK)
            WHERE CHEKBKID = @CKBKNUM2;
        ELSE
            SELECT @ACTINDX = ISNULL(PMAPINDX, 0)
            FROM PM00200 (NOLOCK)
            WHERE VENDORID = @VENDORID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 200;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 1,
               0,
               @I_vCRCRDAMT,
               0,
               @I_vORCRCRDAMT,
               @ACTINDX;
        SELECT @ACTINDX = 0;
        SELECT @ACTINDX = ISNULL(PMAPINDX, 0)
        FROM PM00200 (NOLOCK)
        WHERE VENDORID = @I_vVENDORID;
        IF (@ACTINDX = 0)
            SELECT @ACTINDX = ISNULL(ACTINDX, 0)
            FROM SY01100 (NOLOCK)
            WHERE SERIES = 4
                  AND SEQNUMBR = 200;
        SELECT @APADJ = @I_vDOCAMNT;
        SELECT @APADJ2 = @I_vORDOCAMNT;
        INSERT INTO #temp
        (
            DTYPE,
            DTAMT,
            CTAMT,
            ORDTAMT,
            ORCTAMT,
            DTINDEX
        )
        SELECT 2,
               @APADJ,
               0,
               @APADJ2,
               0,
               @ACTINDX;
    END;
    IF @ISMCTRX = 1
    BEGIN
        IF (@I_vCURNCYID <> (SELECT FUNLCURR FROM MC40000 (NOLOCK)))
        BEGIN
            SELECT @round = ISNULL(SUM(DTAMT - CTAMT), 0)
            FROM #temp;
            INSERT #temp
            (
                DTYPE,
                DTAMT,
                CTAMT,
                ORDTAMT,
                ORCTAMT,
                DTINDEX
            )
            SELECT 16,
                   CASE
                       WHEN @round < 0 THEN
                           @round * -1
                       ELSE
                           0
                   END,
                   CASE
                       WHEN @round > 0 THEN
                           @round
                       ELSE
                           0
                   END,
                   0,
                   0,
                   RNDDIFF
            FROM MC40201 (NOLOCK)
            WHERE CURNCYID = @I_vCURNCYID;
        END;
    END;
    DELETE #temp
    WHERE DTAMT + CTAMT = 0.00;
    DECLARE DistLine INSENSITIVE CURSOR FOR
    SELECT DTYPE,
           DTAMT,
           CTAMT,
           ORDTAMT,
           ORCTAMT,
           DTINDEX
    FROM #temp;
    OPEN DistLine;
    SELECT @iCursorError = @@cursor_rows;
    IF (@iCursorError > 0)
    BEGIN
        FETCH NEXT FROM DistLine
        INTO @cDTYPE,
             @cDTAMT,
             @cCTAMT,
             @cORDTAMT,
             @cORCTAMT,
             @cINDEX;
        WHILE (@@fetch_status <> -1)
        BEGIN
            IF (@@fetch_status = -2)
            BEGIN
                SELECT @O_iErrorState = 704;
                BREAK;
            END;
            EXEC @iStatus = taPMDistributionBuild @I_vDOCTYPE = @I_vDOCTYPE,
                                                  @I_vVCHNUMWK = @I_vVCHNUMWK,
                                                  @I_vVENDORID = @I_vVENDORID,
                                                  @I_vACTINDX = @cINDEX,
                                                  @I_vDTSAMT = @cDTAMT,
                                                  @I_vCTSAMT = @cCTAMT,
                                                  @I_vTYPE = @cDTYPE,
                                                  @I_vCURRNIDX = @I_vCURRNIDX,
                                                  @I_vCURNCYID = @I_vCURNCYID,
                                                  @I_vDECPLCUR = @I_vDECPLCUR,
                                                  @I_vPTDUSRID = @I_vPTDUSRID,
                                                  @I_vRATETPID = @I_vRATETPID,
                                                  @I_vXCHGRATE = @I_vXCHGRATE,
                                                  @I_vEXCHDATE = @I_vEXCHDATE,
                                                  @I_vEXPNDATE = @I_vEXPNDATE,
                                                  @I_vEXGTBLID = @I_vEXGTBLID,
                                                  @I_vTIME1 = @I_vTIME1,
                                                  @I_vORDTSAMT = @cORDTAMT,
                                                  @I_vORCTSAMT = @cORCTAMT,
                                                  @I_vRTCLCMTD = @I_vRTCLCMTD,
                                                  @O_iErrorState = @O_iErrorState OUTPUT,
                                                  @oErrString = @oErrString OUTPUT;
            SELECT @iError = @@error;
            IF @iStatus = 0
               AND @iError <> 0
                SELECT @iStatus = @iError;
            IF (@iStatus <> 0)
               OR (@O_oErrorState <> 0)
            BEGIN
                SELECT @O_iErrorState = 705;
                DEALLOCATE DistLine;
                RETURN (@O_iErrorState);
            END;
            FETCH NEXT FROM DistLine
            INTO @cDTYPE,
                 @cDTAMT,
                 @cCTAMT,
                 @cORDTAMT,
                 @cORCTAMT,
                 @cINDEX;
        END;
    END;
    DEALLOCATE DistLine;
END;
IF ((@ISMCTRX = 1) AND (@I_vCREATEDIST <> 1))
BEGIN
    IF (EXISTS
    (
        SELECT 1
        FROM PM10100 (NOLOCK)
        WHERE VCHRNMBR = @I_vVCHNUMWK
              AND DISTTYPE <> 15
        HAVING SUM(ORCRDAMT) = SUM(ORDBTAMT)
               AND SUM(CRDTAMNT) <> SUM(DEBITAMT)
    )
       )
    BEGIN
        SELECT @round = SUM(CRDTAMNT) - SUM(DEBITAMT),
               @DSTSQNUM = MAX(DSTSQNUM) + 16384
        FROM PM10100 (NOLOCK)
        WHERE VCHRNMBR = @I_vVCHNUMWK;
        SELECT @ROUNDACCT = RNDDIFF
        FROM MC40201 (NOLOCK)
        WHERE CURNCYID = @I_vCURNCYID;
        SELECT @CURRNIDX = FUNCRIDX,
               @CURNCYID = FUNLCURR
        FROM MC40000 (NOLOCK);
        SELECT @INTERID = INTERID
        FROM DYNAMICS..SY01500 (NOLOCK)
        WHERE INTERID = DB_NAME();
        INSERT INTO PM10100
        (
            VCHRNMBR,
            DSTSQNUM,
            CNTRLTYP,
            CRDTAMNT,
            DEBITAMT,
            DSTINDX,
            DISTTYPE,
            CHANGED,
            USERID,
            PSTGSTUS,
            VENDORID,
            TRXSORCE,
            PSTGDATE,
            INTERID,
            CURNCYID,
            CURRNIDX,
            ORCRDAMT,
            ORDBTAMT,
            APTVCHNM,
            APTODCTY,
            SPCLDIST,
            DistRef,
            RATETPID,
            EXGTBLID,
            XCHGRATE,
            EXCHDATE,
            TIME1,
            RTCLCMTD,
            DECPLACS,
            EXPNDATE,
            ICCURRID,
            ICCURRIX,
            DENXRATE,
            MCTRXSTT,
            CorrespondingUnit
        )
        SELECT @I_vVCHNUMWK,
               @DSTSQNUM,
               0,
               CASE
                   WHEN @round < 0 THEN
                       @round * -1
                   ELSE
                       0
               END,
               CASE
                   WHEN @round > 0 THEN
                       @round
                   ELSE
                       0
               END,
               @ROUNDACCT,
               16,
               0,
               '',
               0,
               @I_vVENDORID,
               '',
               '',
               @INTERID,
               @I_vCURNCYID,
               @I_vCURRNIDX,
               0,
               0,
               '',
               0,
               0,
               '',
               '',
               '',
               1,
               '',
               '',
               0,
               @I_vDECPLCUR,
               '',
               @CURNCYID,
               @CURRNIDX,
               0,
               0,
               '';
        IF (@@error <> 0)
        BEGIN
            SELECT @O_iErrorState = 8301;
            EXEC @iStatus = taUpdateString @O_iErrorState,
                                           @oErrString,
                                           @oErrString OUTPUT,
                                           @O_oErrorState OUTPUT;
            RETURN (@O_iErrorState);
        END;
    END;
END;
IF EXISTS
(
    SELECT 1
    FROM DYNAMICS..sysobjects (NOLOCK)
    WHERE name = 'AAG00102'
)
BEGIN
    IF EXISTS
    (
        SELECT 1
        FROM DYNAMICS..AAG00102 (NOLOCK)
        WHERE CMPANYID = @I_vCMPANYID
    )
    BEGIN
        IF @I_vDOCTYPE = 6
            SELECT @I_vDOCTYPE = 1;
        ELSE
            SELECT @I_vDOCTYPE = 0;
        SELECT @I_vDECPLCUR = DECPLCUR - 1
        FROM DYNAMICS..MC40200 (NOLOCK)
        WHERE CURNCYID = @I_vCURNCYID;
        EXEC @iStatus = aagCreateSubWorkDist @aaSubLedgerHdrID OUT,
                                             0,
                                             @I_vDOCTYPE,
                                             @I_vVCHNUMWK,
                                             '',
                                             10100,
                                             4,
                                             @I_vCMPANYID,
                                             0,
                                             @I_vCURNCYID,
                                             @I_vCURRNIDX,
                                             @I_vRATETPID,
                                             @I_vEXGTBLID,
                                             @I_vXCHGRATE,
                                             @I_vEXCHDATE,
                                             @I_vTIME1,
                                             @I_vRTCLCMTD,
                                             0,
                                             0,
                                             @I_vDECPLCUR,
                                             1,
                                             @I_vINTERID,
                                             0,
                                             0,
                                             '',
                                             @O_iErrorStateAASub OUTPUT,
                                             @O_iErrorStringAASub OUTPUT;
        IF (@@error <> 0)
        BEGIN
            SELECT @O_iErrorState = 8196;
            EXEC @iStatus = taUpdateString @O_iErrorState,
                                           @oErrString,
                                           @oErrString OUTPUT,
                                           @O_oErrorState OUTPUT;
            RETURN (@O_iErrorState);
        END;
        IF @aaSubLedgerHdrID <> 0
        BEGIN
            EXEC @iStatus = taProcessAnalytics @I_vDOCNMBR = @I_vVCHNUMWK,
                                               @I_vKey = @I_vVCHNUMWK,
                                               @I_vDOCTYPE = 0,
                                               @O_iErrorState = @itaProcessAnalyticsErrState OUTPUT,
                                               @oErrString = @itaProcessAnalyticsErrString OUTPUT;
            SELECT @iError = @@error;
            IF (
                   (@iStatus <> 0)
                   OR (@itaProcessAnalyticsErrState <> 0)
                   OR (@iError <> 0)
               )
            BEGIN
                SELECT @oErrString = RTRIM(@oErrString) + ' ' + @itaProcessAnalyticsErrString;
                SELECT @O_iErrorState = 8197;
                EXEC @iStatus = taUpdateString @O_iErrorState,
                                               @oErrString,
                                               @oErrString OUTPUT,
                                               @O_oErrorState OUTPUT;
                RETURN (@O_iErrorState);
            END;
        END;
    END;
END;
RETURN (@O_iErrorState);

 

 


RealWorldCode gives developers practical, real‑world solutions with clean, working code — no fluff, no theory, just answers.
Links
Home
Knowledge Areas
Sitemap
Contact
Et cetera
Privacy Policy
Terms and Conditions
Cookie Preferences