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);