SET ANSI_NULLS ON;
GO
SET QUOTED_IDENTIFIER ON;
GO
ALTER PROCEDURE [dbo].[taRMTransaction]
@I_vRMDTYPAL SMALLINT,
@I_vDOCNUMBR CHAR(20),
@I_vDOCDATE DATETIME,
@I_vBACHNUMB CHAR(15),
@I_vCUSTNMBR CHAR(15),
@I_vDOCAMNT NUMERIC(19, 5),
@I_vSLSAMNT NUMERIC(19, 5),
@I_vDOCDESCR CHAR(30) = '',
@I_vADRSCODE CHAR(15) = '',
@I_vSLPRSNID CHAR(15) = NULL,
@I_vSALSTERR CHAR(15) = NULL,
@I_vSHIPMTHD CHAR(15) = '',
@I_vTAXSCHID CHAR(15) = NULL,
@I_vCSTPONBR CHAR(20) = '',
@I_vCOSTAMNT NUMERIC(19, 5) = 0,
@I_vTRDISAMT NUMERIC(19, 5) = 0,
@I_vTRDDISCT SMALLINT = 0,
@I_vFRTAMNT NUMERIC(19, 5) = 0,
@I_vMISCAMNT NUMERIC(19, 5) = 0,
@I_vTAXAMNT NUMERIC(19, 5) = 0,
@I_vBKTSLSAM NUMERIC(19, 5) = 0,
@I_vBKTFRTAM NUMERIC(19, 5) = 0,
@I_vBKTMSCAM NUMERIC(19, 5) = 0,
@I_vCASHAMNT NUMERIC(19, 5) = 0,
@I_vCBKIDCSH CHAR(15) = '',
@I_vCASHDATE DATETIME = '',
@I_vDCNUMCSH CHAR(20) = '',
@I_vCHEKAMNT NUMERIC(19, 5) = 0,
@I_vCBKIDCHK CHAR(15) = '',
@I_vCBKIDCRD CHAR(15) = '',
@I_vCHEKNMBR CHAR(20) = '',
@I_vCHEKDATE DATETIME = '',
@I_vDCNUMCHK CHAR(20) = '',
@I_vCRCRDAMT NUMERIC(19, 5) = 0,
@I_vCRCRDNAM CHAR(15) = '',
@I_vRCTNCCRD CHAR(20) = '',
@I_vCRCARDDT DATETIME = '',
@I_vDCNUMCRD CHAR(20) = '',
@I_vDISCRTND NUMERIC(19, 5) = 0,
@I_vDISTKNAM NUMERIC(19, 5) = 0,
@I_vWROFAMNT NUMERIC(19, 5) = 0,
@I_vPPSAMDED NUMERIC(19, 5) = 0,
@I_vGSTDSAMT NUMERIC(19, 5) = 0,
@I_vPYMTRMID CHAR(20) = NULL,
@I_vDISAVAMT NUMERIC(19, 5) = NULL,
@I_vDSCDLRAM NUMERIC(19, 5) = NULL,
@I_vDSCPCTAM NUMERIC(19, 2) = NULL,
@I_vLSTUSRED CHAR(15) = '',
@I_vPTDUSRID CHAR(15) = '',
@I_vDistRef CHAR(30) = '',
@I_vBatchCHEKBKID CHAR(15) = '',
@I_vDUEDATE DATETIME = '',
@I_vDISCDATE DATETIME = '',
@I_vCURNCYID CHAR(15) = '',
@I_vXCHGRATE NUMERIC(19, 7) = 0,
@I_vRATETPID CHAR(15) = '',
@I_vEXPNDATE DATETIME = '',
@I_vEXCHDATE DATETIME = '',
@I_vEXGTBDSC CHAR(30) = '',
@I_vEXTBLSRC CHAR(50) = '',
@I_vRATEEXPR SMALLINT = -1,
@I_vDYSTINCR SMALLINT = -1,
@I_vRATEVARC NUMERIC(19, 7) = 0,
@I_vTRXDTDEF SMALLINT = -1,
@I_vRTCLCMTD SMALLINT = -1,
@I_vPRVDSLMT SMALLINT = 0,
@I_vDATELMTS SMALLINT = 0,
@I_vTIME1 DATETIME = '',
@I_vCOMDLRAM NUMERIC(19, 2) = NULL,
@I_vCOMAPPTO SMALLINT = NULL,
@I_vRequesterTrx SMALLINT = 0,
@I_vCREATEDIST SMALLINT = 1,
@I_vUSRDEFND1 CHAR(50) = '',
@I_vUSRDEFND2 CHAR(50) = '',
@I_vUSRDEFND3 CHAR(50) = '',
@I_vUSRDEFND4 VARCHAR(8000) = '',
@I_vUSRDEFND5 VARCHAR(8000) = '',
@O_iErrorState INT OUTPUT,
@oErrString VARCHAR(255) OUTPUT
AS
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
SET NOCOUNT ON;
DECLARE @INTERID CHAR(5),
@FUNLCURR CHAR(15),
@EXGTBLID CHAR(15),
@ISMCTRX INT,
@ORCTRXAM NUMERIC(19, 5),
@ORSLSAMT NUMERIC(19, 5),
@ORCSTAMT NUMERIC(19, 5),
@ORFRTAMT NUMERIC(19, 5),
@ORMISCAMT NUMERIC(19, 5),
@ORTAXAMT NUMERIC(19, 5),
@ORCASAMT NUMERIC(19, 5),
@ORCHKAMT NUMERIC(19, 5),
@ORCCDAMT NUMERIC(19, 5),
@ORAPPAMT NUMERIC(19, 5),
@ORDISTKN NUMERIC(19, 5),
@ORDAVAMT NUMERIC(19, 5),
@ORDATKN NUMERIC(19, 5),
@ORDISRTD NUMERIC(19, 5),
@ORDDLRAT NUMERIC(19, 5),
@ORTDISAM NUMERIC(19, 5),
@ORORGTRX NUMERIC(19, 5),
@ORWROFAM NUMERIC(19, 5),
@ORCOMAMT NUMERIC(19, 5),
@ORBKTSLS NUMERIC(19, 5),
@ORBKTFRT NUMERIC(19, 5),
@ORBKTMSC NUMERIC(19, 5),
@DECPLCUR SMALLINT,
@ORDECPLCUR SMALLINT,
@MCINSTALLED SMALLINT,
@DOCTYPE SMALLINT,
@iStatus INT,
@iAddBatchErrState INT,
@CURRNIDX SMALLINT,
@O_oErrState INT,
@iCustomState INT,
@iCustomErrString VARCHAR(255),
@iCreateBatchErrString VARCHAR(255),
@O_oErrorState INT,
@iError INT,
@DOCPRFIX CHAR(3),
@I_TXENGCLD TINYINT,
@POSTED TINYINT,
@iUpdDistErrState INT,
@SLSCHDID CHAR(15),
@FRTSCHID CHAR(15),
@MSCSCHID CHAR(15),
@dDISCDATE DATETIME,
@dDUEDATE DATETIME,
@iCalcDueDateErrState INT,
@iCalcDueDateErrString VARCHAR(255),
@NCOMAMNT NUMERIC(19, 5),
@COMDLRAM NUMERIC(19, 5),
@TaxTotal NUMERIC(19, 5),
@APLYWITH TINYINT,
@CORRCTN TINYINT,
@SIMPLIFD TINYINT,
@CORRNXST TINYINT,
@DocPrinted TINYINT,
@DOCNCORR CHAR(20),
@Electronic TINYINT,
@ECTRX TINYINT,
@O_iInitErrorState INT,
@oInitErrString VARCHAR(255),
@DSCLCTYP SMALLINT,
@DSCDLRAM NUMERIC(19, 5),
@DSCPCTAM NUMERIC(19, 5),
@SALPURCH SMALLINT,
@DISCNTCB SMALLINT,
@FREIGHT SMALLINT,
@MISC SMALLINT,
@TAX SMALLINT,
@PymtTermAmnt NUMERIC(19, 5),
@NOTEINDX NUMERIC(19, 5),
@CMPANYID SMALLINT,
@iGetNextNoteIdxErrState INT,
@round NUMERIC(19, 5),
@SEQNUMB INT,
@ROUNDACCT INT,
@FUNLCURRINDEX INT,
@ROUNDAMT NUMERIC(19, 5),
@BACKOUTAMT NUMERIC(19, 5);
SELECT @INTERID = '',
@FUNLCURR = '',
@EXGTBLID = '',
@ISMCTRX = 0,
@ORCTRXAM = 0,
@ORSLSAMT = 0,
@ORCSTAMT = 0,
@ORFRTAMT = 0,
@ORMISCAMT = 0,
@ORTAXAMT = 0,
@ORCASAMT = 0,
@ORCHKAMT = 0,
@ORCCDAMT = 0,
@ORAPPAMT = 0,
@ORDISTKN = 0,
@ORDAVAMT = 0,
@ORDATKN = 0,
@ORDISRTD = 0,
@ORDDLRAT = 0,
@ORTDISAM = 0,
@ORORGTRX = 0,
@ORWROFAM = 0,
@ORCOMAMT = 0,
@ORBKTSLS = 0,
@ORBKTFRT = 0,
@ORBKTMSC = 0,
@DECPLCUR = 0,
@ORDECPLCUR = 0,
@MCINSTALLED = 1,
@O_iErrorState = 0,
@DOCPRFIX = '',
@I_TXENGCLD = 1,
@POSTED = 0,
@APLYWITH = 0,
@CORRCTN = 0,
@SIMPLIFD = 0,
@CORRNXST = 0,
@DocPrinted = 0,
@Electronic = 0,
@NCOMAMNT = 0,
@COMDLRAM = 0,
@ECTRX = 0,
@TaxTotal = 0,
@DOCNCORR = '',
@CURRNIDX = 0,
@SLSCHDID = '',
@FRTSCHID = '',
@MSCSCHID = '',
@DSCLCTYP = 0,
@DSCDLRAM = 0,
@DSCPCTAM = 0,
@dDISCDATE = '',
@dDUEDATE = '',
@SALPURCH = 1,
@DISCNTCB = 1,
@FREIGHT = 1,
@MISC = 1,
@TAX = 1,
@PymtTermAmnt = 0,
@round = 0,
@SEQNUMB = 0,
@ROUNDACCT = 0,
@FUNLCURRINDEX = 0,
@ROUNDAMT = 0,
@iCustomErrString = '',
@iCustomState = 0,
@O_oErrState = 0,
@iCalcDueDateErrString = '',
@iCreateBatchErrString = '',
@iUpdDistErrState = 0,
@BACKOUTAMT = 0;
SELECT @DOCTYPE = CASE @I_vRMDTYPAL
WHEN 1 THEN
1
WHEN 3 THEN
2
WHEN 4 THEN
3
WHEN 5 THEN
4
WHEN 6 THEN
5
WHEN 7 THEN
6
WHEN 8 THEN
7
ELSE
0
END;
IF (@oErrString IS NULL)
BEGIN
SELECT @oErrString = '';
END;
EXEC @iStatus = taRMTransactionPre @I_vRMDTYPAL OUTPUT,
@I_vDOCNUMBR OUTPUT,
@I_vDOCDATE OUTPUT,
@I_vBACHNUMB OUTPUT,
@I_vCUSTNMBR OUTPUT,
@I_vDOCAMNT OUTPUT,
@I_vSLSAMNT OUTPUT,
@I_vDOCDESCR OUTPUT,
@I_vADRSCODE OUTPUT,
@I_vSLPRSNID OUTPUT,
@I_vSALSTERR OUTPUT,
@I_vSHIPMTHD OUTPUT,
@I_vTAXSCHID OUTPUT,
@I_vCSTPONBR OUTPUT,
@I_vCOSTAMNT OUTPUT,
@I_vTRDISAMT OUTPUT,
@I_vTRDDISCT OUTPUT,
@I_vFRTAMNT OUTPUT,
@I_vMISCAMNT OUTPUT,
@I_vTAXAMNT OUTPUT,
@I_vBKTSLSAM OUTPUT,
@I_vBKTFRTAM OUTPUT,
@I_vBKTMSCAM OUTPUT,
@I_vCASHAMNT OUTPUT,
@I_vCBKIDCSH OUTPUT,
@I_vCASHDATE OUTPUT,
@I_vDCNUMCSH OUTPUT,
@I_vCHEKAMNT OUTPUT,
@I_vCBKIDCHK OUTPUT,
@I_vCBKIDCRD OUTPUT,
@I_vCHEKNMBR OUTPUT,
@I_vCHEKDATE OUTPUT,
@I_vDCNUMCHK OUTPUT,
@I_vCRCRDAMT OUTPUT,
@I_vCRCRDNAM OUTPUT,
@I_vRCTNCCRD OUTPUT,
@I_vCRCARDDT OUTPUT,
@I_vDCNUMCRD OUTPUT,
@I_vDISCRTND OUTPUT,
@I_vDISTKNAM OUTPUT,
@I_vWROFAMNT OUTPUT,
@I_vPPSAMDED OUTPUT,
@I_vGSTDSAMT OUTPUT,
@I_vPYMTRMID OUTPUT,
@I_vDISAVAMT OUTPUT,
@I_vDSCDLRAM OUTPUT,
@I_vDSCPCTAM OUTPUT,
@I_vLSTUSRED OUTPUT,
@I_vPTDUSRID OUTPUT,
@I_vDistRef OUTPUT,
@I_vBatchCHEKBKID OUTPUT,
@I_vDUEDATE OUTPUT,
@I_vDISCDATE OUTPUT,
@I_vCURNCYID OUTPUT,
@I_vXCHGRATE OUTPUT,
@I_vRATETPID OUTPUT,
@I_vEXPNDATE OUTPUT,
@I_vEXCHDATE OUTPUT,
@I_vEXGTBDSC OUTPUT,
@I_vEXTBLSRC OUTPUT,
@I_vRATEEXPR OUTPUT,
@I_vDYSTINCR OUTPUT,
@I_vRATEVARC OUTPUT,
@I_vTRXDTDEF OUTPUT,
@I_vRTCLCMTD OUTPUT,
@I_vPRVDSLMT OUTPUT,
@I_vDATELMTS OUTPUT,
@I_vTIME1 OUTPUT,
@I_vCOMDLRAM OUTPUT,
@I_vCOMAPPTO OUTPUT,
@I_vRequesterTrx OUTPUT,
@I_vCREATEDIST OUTPUT,
@I_vUSRDEFND1 OUTPUT,
@I_vUSRDEFND2 OUTPUT,
@I_vUSRDEFND3 OUTPUT,
@I_vUSRDEFND4 OUTPUT,
@I_vUSRDEFND5 OUTPUT,
@O_iErrorState = @iCustomState OUTPUT,
@oErrString = @iCustomErrString OUTPUT;
SELECT @iError = @@error;
IF @iStatus = 0
AND @iError <> 0
BEGIN
SELECT @iStatus = @iError;
END;
IF (@iStatus <> 0)
OR (@iCustomState <> 0)
BEGIN
SELECT @oErrString = RTRIM(@oErrString) + ' ' + LTRIM(RTRIM(@iCustomErrString));
SELECT @O_iErrorState = 161;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrorState OUTPUT;
RETURN (@O_iErrorState);
END;
WHILE 1 = 1
BEGIN
IF (
@I_vRMDTYPAL IS NULL
OR @I_vDOCNUMBR IS NULL
OR @I_vDOCDATE IS NULL
OR @I_vBACHNUMB IS NULL
OR @I_vCUSTNMBR IS NULL
OR @I_vDOCAMNT IS NULL
OR @I_vDOCDESCR IS NULL
OR @I_vADRSCODE IS NULL
OR @I_vSHIPMTHD IS NULL
OR @I_vCSTPONBR IS NULL
OR @I_vCOSTAMNT IS NULL
OR @I_vSLSAMNT IS NULL
OR @I_vTRDISAMT IS NULL
OR @I_vTRDDISCT IS NULL
OR @I_vFRTAMNT IS NULL
OR @I_vMISCAMNT IS NULL
OR @I_vTAXAMNT IS NULL
OR @I_vBKTSLSAM IS NULL
OR @I_vBKTFRTAM IS NULL
OR @I_vBKTMSCAM IS NULL
OR @I_vCASHAMNT IS NULL
OR @I_vCBKIDCSH IS NULL
OR @I_vCASHDATE IS NULL
OR @I_vDCNUMCSH IS NULL
OR @I_vCHEKAMNT IS NULL
OR @I_vCBKIDCHK IS NULL
OR @I_vCBKIDCRD IS NULL
OR @I_vCHEKNMBR IS NULL
OR @I_vCHEKDATE IS NULL
OR @I_vDCNUMCHK IS NULL
OR @I_vCRCRDAMT IS NULL
OR @I_vCRCRDNAM IS NULL
OR @I_vRCTNCCRD IS NULL
OR @I_vCRCARDDT IS NULL
OR @I_vDCNUMCRD IS NULL
OR @I_vDISCRTND IS NULL
OR @I_vDISTKNAM IS NULL
OR @I_vWROFAMNT IS NULL
OR @I_vPPSAMDED IS NULL
OR @I_vGSTDSAMT IS NULL
OR @I_vLSTUSRED IS NULL
OR @I_vPTDUSRID IS NULL
OR @I_vDUEDATE IS NULL
OR @I_vDISCDATE IS NULL
OR @I_vDistRef IS NULL
OR @I_vCURNCYID IS NULL
OR @I_vXCHGRATE IS NULL
OR @I_vRATETPID IS NULL
OR @I_vEXPNDATE IS NULL
OR @I_vEXCHDATE IS NULL
OR @I_vEXGTBDSC IS NULL
OR @I_vEXTBLSRC IS NULL
OR @I_vRATEEXPR IS NULL
OR @I_vDYSTINCR IS NULL
OR @I_vRATEVARC IS NULL
OR @I_vTRXDTDEF IS NULL
OR @I_vRTCLCMTD IS NULL
OR @I_vPRVDSLMT IS NULL
OR @I_vDATELMTS IS NULL
OR @I_vTIME1 IS NULL
OR @I_vRequesterTrx IS NULL
OR @I_vCREATEDIST IS NULL
)
BEGIN
SELECT @O_iErrorState = 185;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
SELECT @I_vDOCNUMBR = UPPER(@I_vDOCNUMBR),
@I_vBACHNUMB = UPPER(@I_vBACHNUMB),
@I_vCUSTNMBR = UPPER(@I_vCUSTNMBR),
@I_vSLPRSNID = UPPER(@I_vSLPRSNID),
@I_vSALSTERR = UPPER(@I_vSALSTERR),
@I_vTAXSCHID = UPPER(@I_vTAXSCHID),
@I_vSHIPMTHD = UPPER(@I_vSHIPMTHD),
@I_vCBKIDCHK = UPPER(@I_vCBKIDCHK),
@I_vCBKIDCSH = UPPER(@I_vCBKIDCSH),
@I_vBatchCHEKBKID = UPPER(@I_vBatchCHEKBKID),
@I_vADRSCODE = UPPER(@I_vADRSCODE),
@I_vCURNCYID = UPPER(@I_vCURNCYID),
@I_vRATETPID = UPPER(@I_vRATETPID);
IF (
(NOT EXISTS
(
SELECT TOP 1
CURNCYID
FROM IV00105 (NOLOCK)
WHERE CURNCYID <> ''
)
)
AND (NOT EXISTS
(
SELECT TOP 1
CURNCYID
FROM CM00100 (NOLOCK)
WHERE CURNCYID <> ''
)
)
)
BEGIN
SELECT @MCINSTALLED = 0;
END;
SELECT @INTERID = INTERID,
@CMPANYID = CMPANYID
FROM DYNAMICS..SY01500 (NOLOCK)
WHERE INTERID = DB_NAME();
EXEC @iStatus = DYNAMICS..tasmGetNextNoteIndex @I_sCompanyID = @CMPANYID,
@I_iSQLSessionID = 0,
@I_noteincrement = 1,
@O_mNoteIndex = @NOTEINDX OUTPUT,
@O_iErrorState = @iGetNextNoteIdxErrState OUTPUT;
SELECT @iError = @@error;
IF @iStatus = 0
AND @iError <> 0
BEGIN
SELECT @iStatus = @iError;
END;
IF (@iStatus <> 0)
OR (@iGetNextNoteIdxErrState <> 0)
BEGIN
IF (@iGetNextNoteIdxErrState <> 0)
BEGIN
EXEC @iStatus = taUpdateString @iGetNextNoteIdxErrState,
@oErrString,
@oErrString OUTPUT,
@O_oErrorState OUTPUT;
END;
SELECT @O_iErrorState = 5445;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrorState OUTPUT;
END;
IF (@I_vRATETPID <> '')
BEGIN
IF (NOT EXISTS
(
SELECT 1
FROM MC40100 (NOLOCK)
WHERE RATETPID = @I_vRATETPID
)
)
BEGIN
SELECT @O_iErrorState = 535;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrorState OUTPUT;
END;
END;
IF (@I_vDOCDATE = '')
BEGIN
SELECT @O_iErrorState = 216;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
IF (@I_vADRSCODE <> '')
BEGIN
IF (NOT EXISTS
(
SELECT 1
FROM RM00102 (NOLOCK)
WHERE CUSTNMBR = @I_vCUSTNMBR
AND ADRSCODE = @I_vADRSCODE
)
)
BEGIN
SELECT @O_iErrorState = 217;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
END;
IF (@I_vCUSTNMBR = '')
BEGIN
SELECT @O_iErrorState = 186;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
IF (@I_vDOCNUMBR = '')
BEGIN
SELECT @O_iErrorState = 187;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
IF (LEN(@I_vDOCNUMBR) > 17)
BEGIN
SELECT @O_iErrorState = 12003;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrorState OUTPUT;
END;
IF (
EXISTS
(
SELECT 1
FROM RM00401 (NOLOCK)
WHERE RMDTYPAL = @I_vRMDTYPAL
AND DOCNUMBR = @I_vDOCNUMBR
)
OR EXISTS
(
SELECT 1
FROM RM10301 (NOLOCK)
WHERE RMDTYPAL = @I_vRMDTYPAL
AND DOCNUMBR = @I_vDOCNUMBR
)
OR EXISTS
(
SELECT 1
FROM RM20101 (NOLOCK)
WHERE RMDTYPAL = @I_vRMDTYPAL
AND DOCNUMBR = @I_vDOCNUMBR
)
OR EXISTS
(
SELECT 1
FROM RM30101 (NOLOCK)
WHERE RMDTYPAL = @I_vRMDTYPAL
AND DOCNUMBR = @I_vDOCNUMBR
)
)
BEGIN
SELECT @O_iErrorState = 190;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
IF (@I_vDOCAMNT < 0)
BEGIN
SELECT @O_iErrorState = 188;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
SELECT @TaxTotal = ISNULL(SUM(TAXAMNT), 0)
FROM RM10601 (NOLOCK)
WHERE RMDTYPAL = @I_vRMDTYPAL
AND DOCNUMBR = @I_vDOCNUMBR
AND BKOUTTAX = 0;
IF (@I_vTAXAMNT <> @TaxTotal)
BEGIN
SELECT @O_iErrorState = 712;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
SELECT @BACKOUTAMT = ISNULL(SUM(TAXAMNT), 0.00)
FROM RM10601 (NOLOCK)
WHERE RMDTYPAL = @I_vRMDTYPAL
AND DOCNUMBR = @I_vDOCNUMBR
AND BKOUTTAX = 1;
IF (@I_vBACHNUMB = '')
BEGIN
SELECT @O_iErrorState = 189;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
IF (@I_vBACHNUMB <> '')
BEGIN
IF (EXISTS
(
SELECT 1
FROM SY00500 (NOLOCK)
WHERE BACHNUMB = @I_vBACHNUMB
AND MKDTOPST <> 0
AND BCHSOURC = 'RM_Sales'
)
)
BEGIN
SELECT @O_iErrorState = 202;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
END;
IF (@I_vBACHNUMB <> '')
BEGIN
IF EXISTS
(
SELECT 1
FROM SY00500 a (NOLOCK)
WHERE a.BACHNUMB = @I_vBACHNUMB
AND APPROVL = 1
)
BEGIN
SELECT @O_iErrorState = 5625;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrorState OUTPUT;
END;
END;
IF (@I_vRMDTYPAL NOT IN ( 1, 3, 4, 5, 6, 7, 8 ))
BEGIN
SELECT @O_iErrorState = 627;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
IF (@I_vXCHGRATE < 0)
BEGIN
SELECT @O_iErrorState = 5598;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrorState OUTPUT;
END;
IF (@I_vBatchCHEKBKID <> '')
BEGIN
IF (NOT EXISTS
(
SELECT 1
FROM CM00100 (NOLOCK)
WHERE CHEKBKID = @I_vBatchCHEKBKID
)
)
BEGIN
SELECT @O_iErrorState = 363;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
IF (EXISTS
(
SELECT 1
FROM CM00100 (NOLOCK)
WHERE CHEKBKID = @I_vBatchCHEKBKID
AND INACTIVE = 1
)
)
BEGIN
SELECT @O_iErrorState = 9522;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
END;
IF (@I_vCBKIDCHK <> '')
BEGIN
IF (NOT EXISTS
(
SELECT 1
FROM CM00100 (NOLOCK)
WHERE CHEKBKID = @I_vCBKIDCHK
)
)
BEGIN
SELECT @O_iErrorState = 632;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
IF (EXISTS
(
SELECT 1
FROM CM00100 (NOLOCK)
WHERE CHEKBKID = @I_vCBKIDCHK
AND INACTIVE = 1
)
)
BEGIN
SELECT @O_iErrorState = 9523;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
END;
IF (@I_vCBKIDCSH <> '')
BEGIN
IF (NOT EXISTS
(
SELECT 1
FROM CM00100 (NOLOCK)
WHERE CHEKBKID = @I_vCBKIDCSH
)
)
BEGIN
SELECT @O_iErrorState = 620;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
IF (EXISTS
(
SELECT 1
FROM CM00100 (NOLOCK)
WHERE CHEKBKID = @I_vCBKIDCSH
AND INACTIVE = 1
)
)
BEGIN
SELECT @O_iErrorState = 9524;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
END;
IF (@I_vCRCRDNAM <> '')
BEGIN
IF (NOT EXISTS
(
SELECT 1
FROM SY03100 (NOLOCK)
WHERE CARDNAME = @I_vCRCRDNAM
AND CBRCVBLE = 1
)
)
BEGIN
SELECT @O_iErrorState = 608;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
END;
IF (@I_vSLPRSNID <> '')
AND (@I_vSLPRSNID IS NOT NULL)
BEGIN
IF (NOT EXISTS
(
SELECT 1
FROM RM00301 (NOLOCK)
WHERE SLPRSNID = @I_vSLPRSNID
)
)
BEGIN
SELECT @O_iErrorState = 7149;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
IF (EXISTS
(
SELECT 1
FROM RM00301 (NOLOCK)
WHERE SLPRSNID = @I_vSLPRSNID
AND INACTIVE = 1
)
)
BEGIN
SELECT @O_iErrorState = 9537;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
END;
IF (@I_vTAXSCHID IS NULL)
AND (@I_vRMDTYPAL IN ( 1, 5, 8 ))
BEGIN
SELECT @I_vTAXSCHID = TAXSCHID
FROM RM00101 (NOLOCK)
WHERE CUSTNMBR = @I_vCUSTNMBR;
SELECT @I_vTAXSCHID = ISNULL(@I_vTAXSCHID, '');
END;
IF (@I_vTAXSCHID IS NULL)
AND (@I_vRMDTYPAL IN ( 2, 3, 4, 6, 7 ))
BEGIN
SELECT @I_vTAXSCHID = ISNULL(@I_vTAXSCHID, '');
END;
IF (@I_vTAXSCHID <> '')
BEGIN
IF (NOT EXISTS
(
SELECT 1
FROM TX00101 (NOLOCK)
WHERE TAXSCHID = @I_vTAXSCHID
)
)
BEGIN
SELECT @O_iErrorState = 7023;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
END;
IF (@I_vSALSTERR <> '')
AND (@I_vSALSTERR IS NOT NULL)
BEGIN
IF (NOT EXISTS
(
SELECT 1
FROM RM00303 (NOLOCK)
WHERE SALSTERR = @I_vSALSTERR
)
)
BEGIN
SELECT @O_iErrorState = 7024;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
END;
IF (@I_vRequesterTrx < 0 OR @I_vRequesterTrx > 1)
BEGIN
SELECT @O_iErrorState = 3723;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
IF (@I_vSHIPMTHD <> '')
BEGIN
IF (NOT EXISTS
(
SELECT 1
FROM SY03000 (NOLOCK)
WHERE SHIPMTHD = @I_vSHIPMTHD
)
)
BEGIN
SELECT @O_iErrorState = 1320;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
END;
IF (@I_vDISAVAMT > @I_vSLSAMNT - @I_vTRDISAMT + @I_vFRTAMNT + @I_vMISCAMNT + @I_vTAXAMNT)
BEGIN
SELECT @O_iErrorState = 586;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
IF (@I_vCURNCYID = '')
BEGIN
SELECT @I_vCURNCYID = ISNULL(CURNCYID, '')
FROM RM00101 (NOLOCK)
WHERE CUSTNMBR = @I_vCUSTNMBR;
IF (@I_vCURNCYID <> '')
BEGIN
SELECT @CURRNIDX = ISNULL(CURRNIDX, 0)
FROM DYNAMICS..MC40200 (NOLOCK)
WHERE CURNCYID = @I_vCURNCYID;
END;
ELSE
BEGIN
SELECT @I_vCURNCYID = ISNULL(FUNLCURR, ''),
@CURRNIDX = ISNULL(FUNCRIDX, 0)
FROM MC40000 (NOLOCK);
END;
END;
ELSE
BEGIN
SELECT @CURRNIDX = ISNULL(CURRNIDX, 0)
FROM DYNAMICS..MC40200 (NOLOCK)
WHERE CURNCYID = @I_vCURNCYID;
END;
IF ((@CURRNIDX = 0) OR (@I_vCURNCYID = ''))
BEGIN
SELECT @O_iErrorState = 536;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
IF (@I_vCOMDLRAM < 0)
BEGIN
SELECT @O_iErrorState = 7443;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
IF (@I_vCOMAPPTO < 0 OR @I_vCOMAPPTO > 1)
BEGIN
SELECT @O_iErrorState = 7449;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
IF (@I_vSLPRSNID IS NULL)
BEGIN
IF (@I_vRMDTYPAL IN ( 1, 5, 8 ))
BEGIN
SELECT @I_vSLPRSNID = SLPRSNID
FROM RM00101 (NOLOCK)
WHERE CUSTNMBR = @I_vCUSTNMBR;
END;
ELSE
BEGIN
SELECT @I_vSLPRSNID = '';
END;
END;
IF (@I_vSALSTERR IS NULL)
BEGIN
IF (@I_vRMDTYPAL IN ( 1, 5, 8 ))
BEGIN
SELECT @I_vSALSTERR = SALSTERR
FROM RM00101 (NOLOCK)
WHERE CUSTNMBR = @I_vCUSTNMBR;
END;
ELSE
BEGIN
SELECT @I_vSALSTERR = '';
END;
END;
IF (@I_vCOMAPPTO IS NULL)
BEGIN
SELECT @I_vCOMAPPTO = COMAPPTO
FROM RM00301 (NOLOCK)
WHERE SLPRSNID = @I_vSLPRSNID;
END;
IF (@I_vCOMAPPTO IS NULL)
BEGIN
SELECT @I_vCOMAPPTO = 0;
END;
SELECT @NCOMAMNT = ISNULL(SUM(NCOMAMNT), 0),
@COMDLRAM = ISNULL(SUM(COMDLRAM), 0)
FROM RM10501 (NOLOCK)
WHERE CUSTNMBR = @I_vCUSTNMBR
AND RMDTYPAL = @I_vRMDTYPAL
AND DOCNUMBR = @I_vDOCNUMBR;
IF (@I_vCOMDLRAM IS NULL)
BEGIN
SELECT @I_vCOMDLRAM = ISNULL(SUM(COMDLRAM), 0)
FROM RM10501
WHERE RMDTYPAL = @I_vRMDTYPAL
AND DOCNUMBR = @I_vDOCNUMBR;
END;
IF (@I_vCOMDLRAM <> @COMDLRAM)
BEGIN
SELECT @O_iErrorState = 7450;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
SELECT @FUNLCURR = FUNLCURR
FROM MC40000 (NOLOCK);
SELECT @DECPLCUR = DECPLCUR - 1
FROM DYNAMICS..MC40200 (NOLOCK)
WHERE CURNCYID = @FUNLCURR;
SELECT @ORDECPLCUR = DECPLCUR - 1
FROM DYNAMICS..MC40200 (NOLOCK)
WHERE CURNCYID = @I_vCURNCYID;
IF (@I_vCURNCYID <> '')
AND (@I_vCURNCYID <> @FUNLCURR)
BEGIN
SELECT @ISMCTRX = 1;
EXEC @iStatus = taMCCurrencyValidate @I_vMASTERID = @I_vCUSTNMBR,
@I_vDOCDATE = @I_vDOCDATE,
@I_vCURNCYID = @I_vCURNCYID,
@I_vEXGTBDSC = @I_vEXGTBDSC,
@I_vEXTBLSRC = @I_vEXTBLSRC,
@I_vRATEEXPR = @I_vRATEEXPR OUTPUT,
@I_vDYSTINCR = @I_vDYSTINCR OUTPUT,
@I_vRATEVARC = @I_vRATEVARC,
@I_vTRXDTDEF = @I_vTRXDTDEF,
@I_vPRVDSLMT = @I_vPRVDSLMT,
@I_vDATELMTS = @I_vDATELMTS,
@I_vMODULE = 1,
@I_vEXCHDATE = @I_vEXCHDATE OUTPUT,
@I_vTIME1 = @I_vTIME1 OUTPUT,
@I_vXCHGRATE = @I_vXCHGRATE OUTPUT,
@I_vEXPNDATE = @I_vEXPNDATE OUTPUT,
@I_vRATETPID = @I_vRATETPID OUTPUT,
@I_vRTCLCMTD = @I_vRTCLCMTD OUTPUT,
@I_vEXGTBLID = @EXGTBLID OUTPUT,
@oErrString = @oErrString OUTPUT,
@O_iErrorState = @iUpdDistErrState OUTPUT;
SELECT @iError = @@error;
IF @iStatus = 0
AND @iError <> 0
SELECT @iStatus = @iError;
IF (@iStatus <> 0)
OR (@iUpdDistErrState <> 0)
BEGIN
SELECT @O_iErrorState = 537;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
RETURN (@O_iErrorState);
END;
IF (@@error <> 0)
BEGIN
SELECT @O_iErrorState = 538;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
BREAK;
END;
END;
ELSE
BEGIN
SELECT @ISMCTRX = 0,
@I_vRATEEXPR = 0,
@I_vDYSTINCR = 0,
@I_vXCHGRATE = 1;
IF (
(@I_vDOCAMNT <> ROUND(@I_vDOCAMNT, @DECPLCUR, 1))
OR (@I_vSLSAMNT <> ROUND(@I_vSLSAMNT, @DECPLCUR, 1))
OR (@I_vCOSTAMNT <> ROUND(@I_vCOSTAMNT, @DECPLCUR, 1))
OR (@I_vTRDISAMT <> ROUND(@I_vTRDISAMT, @DECPLCUR, 1))
OR (@I_vFRTAMNT <> ROUND(@I_vFRTAMNT, @DECPLCUR, 1))
OR (@I_vMISCAMNT <> ROUND(@I_vMISCAMNT, @DECPLCUR, 1))
OR (@I_vTAXAMNT <> ROUND(@I_vTAXAMNT, @DECPLCUR, 1))
OR (@I_vBKTSLSAM <> ROUND(@I_vBKTSLSAM, @DECPLCUR, 1))
OR (@I_vBKTFRTAM <> ROUND(@I_vBKTFRTAM, @DECPLCUR, 1))
OR (@I_vBKTMSCAM <> ROUND(@I_vBKTMSCAM, @DECPLCUR, 1))
OR (@I_vCASHAMNT <> ROUND(@I_vCASHAMNT, @DECPLCUR, 1))
OR (@I_vCHEKAMNT <> ROUND(@I_vCHEKAMNT, @DECPLCUR, 1))
OR (@I_vCRCRDAMT <> ROUND(@I_vCRCRDAMT, @DECPLCUR, 1))
OR (@I_vDISCRTND <> ROUND(@I_vDISCRTND, @DECPLCUR, 1))
OR (@I_vDISTKNAM <> ROUND(@I_vDISTKNAM, @DECPLCUR, 1))
OR (@I_vWROFAMNT <> ROUND(@I_vWROFAMNT, @DECPLCUR, 1))
OR (@I_vPPSAMDED <> ROUND(@I_vPPSAMDED, @DECPLCUR, 1))
OR (@I_vGSTDSAMT <> ROUND(@I_vGSTDSAMT, @DECPLCUR, 1))
OR (@I_vDISAVAMT <> ROUND(@I_vDISAVAMT, @DECPLCUR, 1))
OR (@I_vDSCDLRAM <> ROUND(@I_vDSCDLRAM, @DECPLCUR, 1))
)
BEGIN
SELECT @O_iErrorState = 7020;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrorState OUTPUT;
RETURN (@O_iErrorState);
END;
END;
IF (@I_vDISAVAMT IS NOT NULL)
AND (@ISMCTRX = 1)
BEGIN
IF (@I_vDISAVAMT <> ROUND(@I_vDISAVAMT, @ORDECPLCUR, 1))
BEGIN
SELECT @O_iErrorState = 8147;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrorState OUTPUT;
RETURN (@O_iErrorState);
END;
END;
IF (@I_vRMDTYPAL IN ( 1, 3, 4, 5 ))
BEGIN
IF (@I_vPYMTRMID IS NULL)
BEGIN
SELECT @I_vPYMTRMID = PYMTRMID
FROM RM00101 (NOLOCK)
WHERE CUSTNMBR = @I_vCUSTNMBR;
SELECT @I_vPYMTRMID = ISNULL(@I_vPYMTRMID, '');
END;
SELECT @SALPURCH = SALPURCH,
@DISCNTCB = DISCNTCB,
@FREIGHT = FREIGHT,
@MISC = MISC,
@TAX = TAX
FROM SY03300 (NOLOCK)
WHERE PYMTRMID = @I_vPYMTRMID;
SELECT @PymtTermAmnt = @PymtTermAmnt + (@I_vSLSAMNT * @SALPURCH),
@PymtTermAmnt = @PymtTermAmnt - (@I_vTRDISAMT * @DISCNTCB),
@PymtTermAmnt = @PymtTermAmnt + (@I_vFRTAMNT * @FREIGHT),
@PymtTermAmnt = @PymtTermAmnt + (@I_vMISCAMNT * @MISC),
@PymtTermAmnt = @PymtTermAmnt + (@I_vTAXAMNT * @TAX);
IF (
(@I_vPYMTRMID = '')
AND (@I_vDISAVAMT IS NULL)
AND (@I_vDSCDLRAM IS NULL)
AND (@I_vDSCPCTAM IS NULL)
)
SELECT @I_vDISAVAMT = 0,
@I_vDSCDLRAM = 0,
@I_vDSCPCTAM = 0;
IF ((@I_vDISAVAMT IS NOT NULL) AND (@I_vDSCDLRAM IS NULL))
SELECT @I_vDSCDLRAM = 0;
IF (
(@I_vDISAVAMT IS NOT NULL)
AND
(
@I_vDSCPCTAM IS NULL
OR ROUND((@I_vDSCPCTAM / 100) * @PymtTermAmnt, @ORDECPLCUR) <> @I_vDISAVAMT
)
)
SELECT @I_vDSCPCTAM = 0;
IF (
(
@I_vDSCDLRAM IS NOT NULL
AND @I_vDSCDLRAM <> 0
)
AND
(
@I_vDSCPCTAM IS NOT NULL
AND @I_vDSCPCTAM <> 0
)
)
BEGIN
SELECT @O_iErrorState = 7126;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrorState OUTPUT;
END;
IF ((@I_vDSCDLRAM IS NOT NULL) AND (@I_vDISAVAMT IS NULL))
BEGIN
SELECT @I_vDISAVAMT = @I_vDSCDLRAM,
@I_vDSCPCTAM = 0;
END;
IF ((@I_vDSCPCTAM IS NOT NULL) AND (@I_vDISAVAMT IS NULL))
BEGIN
SELECT @I_vDISAVAMT = ((@I_vDSCPCTAM / 100) * @PymtTermAmnt),
@I_vDSCDLRAM = 0;
END;
IF (
(@I_vPYMTRMID <> '')
AND (@I_vDISAVAMT IS NULL)
AND (@I_vDSCDLRAM IS NULL)
AND (@I_vDSCPCTAM IS NULL)
)
BEGIN
SELECT @DSCLCTYP = DSCLCTYP,
@DSCDLRAM = DSCDLRAM,
@DSCPCTAM = DSCPCTAM
FROM SY03300 (NOLOCK)
WHERE PYMTRMID = @I_vPYMTRMID;
IF (@DSCLCTYP = 1)
BEGIN
SELECT @I_vDSCPCTAM = @DSCPCTAM / 100.0,
@I_vDSCDLRAM = 0;
IF (@ISMCTRX = 1)
BEGIN
SELECT @ORDAVAMT = ROUND((@I_vDSCPCTAM / 100.0) * @PymtTermAmnt, @ORDECPLCUR);
SELECT @ORDDLRAT = 0;
SELECT @I_vDISAVAMT = CASE
WHEN (@I_vRTCLCMTD = 0) THEN
ROUND(@ORDAVAMT * @I_vXCHGRATE, @DECPLCUR)
WHEN (@I_vRTCLCMTD = 1) THEN
ROUND(@ORDAVAMT / @I_vXCHGRATE, @DECPLCUR)
ELSE
0
END;
END;
ELSE
BEGIN
SELECT @I_vDISAVAMT = ROUND((@I_vDSCPCTAM / 100.0) * @PymtTermAmnt, @DECPLCUR);
SELECT @ORDAVAMT = @I_vDISAVAMT;
END;
END;
ELSE IF (@DSCLCTYP = 2)
BEGIN
SELECT @I_vDSCPCTAM = 0;
IF (@ISMCTRX = 1)
BEGIN
SELECT @I_vDISAVAMT = @DSCDLRAM,
@I_vDSCDLRAM = @DSCDLRAM;
SELECT @ORDAVAMT = CASE
WHEN (@I_vRTCLCMTD = 0) THEN
ROUND(@I_vDISAVAMT / @I_vXCHGRATE, @ORDECPLCUR)
WHEN (@I_vRTCLCMTD = 1) THEN
ROUND(@I_vDISAVAMT * @I_vXCHGRATE, @ORDECPLCUR)
ELSE
0
END;
SELECT @ORDDLRAT = @ORDAVAMT;
END;
ELSE
BEGIN
SELECT @I_vDSCDLRAM = @DSCDLRAM,
@I_vDISAVAMT = @DSCDLRAM;
SELECT @ORDDLRAT = 0,
@ORDAVAMT = @I_vDISAVAMT;
END;
END;
END;
ELSE IF (@ISMCTRX = 1)
BEGIN
SELECT @ORDAVAMT = @I_vDISAVAMT;
SELECT @I_vDISAVAMT = CASE
WHEN (@I_vRTCLCMTD = 0) THEN
ROUND(@ORDAVAMT * @I_vXCHGRATE, @DECPLCUR)
WHEN (@I_vRTCLCMTD = 1) THEN
ROUND(@ORDAVAMT / @I_vXCHGRATE, @DECPLCUR)
ELSE
0
END;
SELECT @ORDAVAMT = ROUND(@ORDAVAMT, @ORDECPLCUR);
IF ((@I_vDSCPCTAM = 0) AND (@I_vDSCDLRAM <> 0))
BEGIN
SELECT @ORDDLRAT = @ORDAVAMT;
SELECT @I_vDSCDLRAM = @I_vDISAVAMT;
END;
END;
ELSE
BEGIN
SELECT @I_vDISAVAMT = ROUND(@I_vDISAVAMT, @DECPLCUR);
END;
END;
ELSE
BEGIN
SELECT @I_vPYMTRMID = '',
@I_vDISAVAMT = 0,
@I_vDSCDLRAM = 0,
@I_vDSCPCTAM = 0;
END;
IF (@I_vPYMTRMID <> '')
BEGIN
IF (NOT EXISTS
(
SELECT 1
FROM SY03300 (NOLOCK)
WHERE PYMTRMID = @I_vPYMTRMID
)
)
BEGIN
SELECT @O_iErrorState = 626;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
END;
IF (@I_vPYMTRMID = '')
AND (@I_vDUEDATE = '')
AND (@I_vDISCDATE = '')
BEGIN
SELECT @I_vDUEDATE = @I_vDOCDATE,
@I_vDISCDATE = @I_vDOCDATE;
END;
IF ((@I_vCASHAMNT > 0) AND (@I_vCBKIDCSH = ''))
BEGIN
SELECT @O_iErrorState = 203;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
IF ((@I_vCASHAMNT > 0) AND (@I_vCASHDATE = ''))
BEGIN
SELECT @O_iErrorState = 204;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
IF ((@I_vCASHAMNT > 0) AND (@I_vDCNUMCSH = ''))
BEGIN
SELECT @O_iErrorState = 205;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
IF ((@I_vCASHAMNT > 0) AND (@I_vDCNUMCSH <> ''))
BEGIN
IF (EXISTS
(
SELECT 1
FROM RM00401 (NOLOCK)
WHERE RMDTYPAL = 9
AND DOCNUMBR = @I_vDCNUMCSH
)
)
BEGIN
SELECT @O_iErrorState = 241;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
END;
IF (
(@I_vCASHAMNT = 0)
AND
(
@I_vCBKIDCSH <> ''
OR @I_vDCNUMCSH <> ''
OR @I_vCASHDATE <> ''
)
)
BEGIN
SELECT @O_iErrorState = 642;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
IF ((@I_vCHEKAMNT > 0) AND (@I_vCBKIDCHK = ''))
BEGIN
SELECT @O_iErrorState = 206;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
IF ((@I_vCHEKAMNT > 0) AND (@I_vCHEKDATE = ''))
BEGIN
SELECT @O_iErrorState = 808;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
IF ((@I_vCHEKAMNT > 0) AND (@I_vDCNUMCHK = ''))
BEGIN
SELECT @O_iErrorState = 644;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
IF ((@I_vCHEKAMNT > 0) AND (@I_vDCNUMCHK <> ''))
BEGIN
IF (EXISTS
(
SELECT 1
FROM RM00401 (NOLOCK)
WHERE RMDTYPAL = 9
AND DOCNUMBR = @I_vDCNUMCHK
)
)
BEGIN
SELECT @O_iErrorState = 645;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
END;
IF (
(@I_vCHEKAMNT = 0)
AND
(
@I_vCBKIDCHK <> ''
OR @I_vCHEKNMBR <> ''
OR @I_vCHEKDATE <> ''
OR @I_vDCNUMCHK <> ''
)
)
BEGIN
SELECT @O_iErrorState = 643;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
IF ((@I_vCRCRDAMT > 0) AND (@I_vCRCRDNAM = ''))
BEGIN
SELECT @O_iErrorState = 809;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
IF ((@I_vCRCRDAMT > 0) AND (@I_vCRCARDDT = ''))
BEGIN
SELECT @O_iErrorState = 615;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
IF ((@I_vCRCRDAMT > 0) AND (@I_vDCNUMCRD = '') AND (@I_vRMDTYPAL <> 8))
BEGIN
SELECT @O_iErrorState = 616;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
IF ((@I_vCRCRDAMT > 0) AND (@I_vDCNUMCRD <> ''))
BEGIN
IF (EXISTS
(
SELECT 1
FROM RM00401 (NOLOCK)
WHERE RMDTYPAL = 9
AND DOCNUMBR = @I_vDCNUMCRD
)
)
BEGIN
SELECT @O_iErrorState = 646;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
END;
IF (@I_vPPSAMDED > @I_vDOCAMNT)
BEGIN
SELECT @O_iErrorState = 617;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
IF (@I_vPPSAMDED > @I_vWROFAMNT)
BEGIN
SELECT @O_iErrorState = 618;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
IF (@I_vGSTDSAMT > @I_vDISTKNAM)
BEGIN
SELECT @O_iErrorState = 619;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
IF (@I_vDOCAMNT <> @I_vSLSAMNT - @I_vTRDISAMT + @I_vFRTAMNT + @I_vMISCAMNT + @I_vTAXAMNT)
BEGIN
SELECT @O_iErrorState = 621;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
IF ((@I_vRMDTYPAL = 7 OR @I_vRMDTYPAL = 6) AND (@I_vCASHAMNT <> 0))
BEGIN
SELECT @O_iErrorState = 622;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
IF ((@I_vRMDTYPAL = 7 OR @I_vRMDTYPAL = 6) AND (@I_vCHEKAMNT <> 0))
BEGIN
SELECT @O_iErrorState = 623;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
IF ((@I_vRMDTYPAL = 7 OR @I_vRMDTYPAL = 6) AND (@I_vCRCRDAMT <> 0))
BEGIN
SELECT @O_iErrorState = 624;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
IF (@I_vRMDTYPAL = 6 AND @I_vDISTKNAM <> 0)
BEGIN
SELECT @O_iErrorState = 472;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
IF (@I_vRMDTYPAL = 6 AND @I_vPYMTRMID <> '')
BEGIN
SELECT @O_iErrorState = 473;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
IF ((@I_vRMDTYPAL = 7) AND (@I_vPYMTRMID <> ''))
BEGIN
SELECT @O_iErrorState = 625;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
IF ((@I_vRMDTYPAL = 8) AND (@I_vPYMTRMID <> ''))
BEGIN
SELECT @O_iErrorState = 474;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
IF (@I_vRMDTYPAL NOT IN ( 7, 8 ) AND (@I_vDISCRTND <> 0))
BEGIN
SELECT @O_iErrorState = 585;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
IF (@I_vRMDTYPAL IN ( 7, 8 ) AND (@I_vDISTKNAM <> 0))
BEGIN
SELECT @O_iErrorState = 475;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
IF (@I_vDSCDLRAM > 0 AND @I_vDSCPCTAM > 0)
BEGIN
SELECT @O_iErrorState = 476;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
IF (@I_vRMDTYPAL IN ( 6, 7, 8 ))
BEGIN
SELECT @I_vDUEDATE = @I_vDOCDATE;
SELECT @I_vDISCDATE = @I_vDOCDATE;
END;
ELSE
BEGIN
EXEC @iStatus = taCalcDueDateRM @I_vCUSTNMBR = @I_vCUSTNMBR,
@I_vPYMTRMID = @I_vPYMTRMID,
@I_vDOCDATE = @I_vDOCDATE,
@O_dDISCDATE = @dDISCDATE OUTPUT,
@O_dDUEDATE = @dDUEDATE OUTPUT,
@O_iErrorState = @iCalcDueDateErrState OUTPUT,
@oErrString = @iCalcDueDateErrString OUTPUT;
SELECT @iError = @@error;
IF @iStatus = 0
AND @iError <> 0
BEGIN
SELECT @iStatus = @iError;
END;
IF (@iStatus <> 0)
OR
(
@iCalcDueDateErrState <> 0
OR @dDISCDATE = NULL
OR @dDUEDATE = NULL
)
BEGIN
SELECT @oErrString = RTRIM(@oErrString) + ' ' + LTRIM(RTRIM(@iCalcDueDateErrString));
SELECT @O_iErrorState = 482;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrorState OUTPUT;
RETURN (@O_iErrorState);
END;
IF (@I_vDUEDATE = '')
SELECT @I_vDUEDATE = @dDUEDATE;
IF (@I_vDISCDATE = '')
SELECT @I_vDISCDATE = @dDISCDATE;
END;
IF (@O_iErrorState <> 0)
BEGIN
BREAK;
END;
SELECT @ORCTRXAM = CASE @I_vRMDTYPAL
WHEN 6 THEN
0
WHEN 7 THEN
(@I_vDOCAMNT - @I_vDISCRTND)
ELSE
(@I_vDOCAMNT - @I_vCASHAMNT - @I_vCHEKAMNT - @I_vCRCRDAMT - @I_vDISTKNAM)
END,
@ORSLSAMT = @I_vSLSAMNT,
@ORCSTAMT = @I_vCOSTAMNT,
@ORFRTAMT = @I_vFRTAMNT,
@ORMISCAMT = @I_vMISCAMNT,
@ORTAXAMT = @I_vTAXAMNT,
@ORCASAMT = @I_vCASHAMNT,
@ORCHKAMT = @I_vCHEKAMNT,
@ORCCDAMT = @I_vCRCRDAMT,
@ORDISTKN = @I_vDISTKNAM,
@ORDISRTD = @I_vDISCRTND,
@ORTDISAM = @I_vTRDISAMT,
@ORORGTRX = @I_vDOCAMNT,
@ORWROFAM = @I_vWROFAMNT,
@ORCOMAMT = @I_vCOMDLRAM,
@ORBKTSLS = @I_vBKTSLSAM,
@ORBKTFRT = @I_vBKTFRTAM,
@ORBKTMSC = @I_vBKTMSCAM;
IF (@ISMCTRX = 1)
BEGIN
IF (
(@I_vDOCAMNT <> ROUND(@I_vDOCAMNT, @ORDECPLCUR, 1))
OR (@I_vSLSAMNT <> ROUND(@I_vSLSAMNT, @ORDECPLCUR, 1))
OR (@I_vCOSTAMNT <> ROUND(@I_vCOSTAMNT, @ORDECPLCUR, 1))
OR (@I_vTRDISAMT <> ROUND(@I_vTRDISAMT, @ORDECPLCUR, 1))
OR (@I_vFRTAMNT <> ROUND(@I_vFRTAMNT, @ORDECPLCUR, 1))
OR (@I_vMISCAMNT <> ROUND(@I_vMISCAMNT, @ORDECPLCUR, 1))
OR (@I_vTAXAMNT <> ROUND(@I_vTAXAMNT, @ORDECPLCUR, 1))
OR (@I_vBKTSLSAM <> ROUND(@I_vBKTSLSAM, @ORDECPLCUR, 1))
OR (@I_vBKTFRTAM <> ROUND(@I_vBKTFRTAM, @ORDECPLCUR, 1))
OR (@I_vBKTMSCAM <> ROUND(@I_vBKTMSCAM, @ORDECPLCUR, 1))
OR (@I_vCASHAMNT <> ROUND(@I_vCASHAMNT, @ORDECPLCUR, 1))
OR (@I_vCHEKAMNT <> ROUND(@I_vCHEKAMNT, @ORDECPLCUR, 1))
OR (@I_vCRCRDAMT <> ROUND(@I_vCRCRDAMT, @ORDECPLCUR, 1))
OR (@I_vDISCRTND <> ROUND(@I_vDISCRTND, @ORDECPLCUR, 1))
OR (@I_vDISTKNAM <> ROUND(@I_vDISTKNAM, @ORDECPLCUR, 1))
OR (@I_vWROFAMNT <> ROUND(@I_vWROFAMNT, @ORDECPLCUR, 1))
OR (@I_vPPSAMDED <> ROUND(@I_vPPSAMDED, @ORDECPLCUR, 1))
OR (@I_vGSTDSAMT <> ROUND(@I_vGSTDSAMT, @ORDECPLCUR, 1))
OR (@I_vDSCDLRAM <> ROUND(@I_vDSCDLRAM, @ORDECPLCUR, 1))
)
BEGIN
SELECT @O_iErrorState = 4643;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrorState OUTPUT;
RETURN (@O_iErrorState);
END;
IF (
(
@I_vCASHDATE <> ''
AND @I_vCASHDATE <> @I_vDOCDATE
)
OR
(
@I_vCRCARDDT <> ''
AND @I_vCRCARDDT <> @I_vDOCDATE
)
OR
(
@I_vCHEKDATE <> ''
AND @I_vCHEKDATE <> @I_vDOCDATE
)
)
BEGIN
SELECT @O_iErrorState = 1322;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrorState OUTPUT;
RETURN (@O_iErrorState);
END;
INSERT MC020102
(
DCSTATUS,
RMDTYPAL,
DOCNUMBR,
DOCDATE,
CUSTNMBR,
CURNCYID,
TRXSORCE,
CURRNIDX,
RATETPID,
EXGTBLID,
XCHGRATE,
EXCHDATE,
TIME1,
RTCLCMTD,
ORCTRXAM,
ORSLSAMT,
ORCSTAMT,
ORFRTAMT,
ORMISCAMT,
ORTAXAMT,
ORCASAMT,
ORCHKAMT,
ORCCDAMT,
ORAPPAMT,
ORDISTKN,
ORDAVAMT,
ORDATKN,
ORDISRTD,
ORDDLRAT,
ORTDISAM,
ORORGTRX,
ORWROFAM,
ORCOMAMT,
ORBKTSLS,
ORBKTFRT,
ORBKTMSC,
UNGANLOS,
RMMCERRS,
DENXRATE,
MCTRXSTT,
OrigBackoutTradeDisc
)
SELECT 1,
@I_vRMDTYPAL,
@I_vDOCNUMBR,
@I_vDOCDATE,
@I_vCUSTNMBR,
@I_vCURNCYID,
'',
@CURRNIDX,
@I_vRATETPID,
@EXGTBLID,
@I_vXCHGRATE,
@I_vEXCHDATE,
@I_vTIME1,
@I_vRTCLCMTD,
@ORCTRXAM,
@ORSLSAMT,
@ORCSTAMT,
@ORFRTAMT,
@ORMISCAMT,
@ORTAXAMT,
@ORCASAMT,
@ORCHKAMT,
@ORCCDAMT,
0,
@ORDISTKN,
@ORDAVAMT,
@ORDATKN,
@ORDISRTD,
@ORDDLRAT,
@ORTDISAM,
@ORORGTRX,
@ORWROFAM,
@ORCOMAMT,
@ORBKTSLS,
@ORBKTFRT,
@ORBKTMSC,
0,
0,
0,
0,
0;
IF (@@error <> 0)
BEGIN
SELECT @O_iErrorState = 539;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
BREAK;
END;
IF (@I_vXCHGRATE = 0)
BEGIN
SELECT @O_iErrorState = 551;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
BREAK;
END;
IF @I_vRTCLCMTD = 0
BEGIN
SELECT @I_vSLSAMNT = ROUND(@I_vSLSAMNT * @I_vXCHGRATE, @DECPLCUR),
@I_vCOSTAMNT = ROUND(@I_vCOSTAMNT * @I_vXCHGRATE, @DECPLCUR),
@I_vTRDISAMT = ROUND(@I_vTRDISAMT * @I_vXCHGRATE, @DECPLCUR),
@I_vFRTAMNT = ROUND(@I_vFRTAMNT * @I_vXCHGRATE, @DECPLCUR),
@I_vMISCAMNT = ROUND(@I_vMISCAMNT * @I_vXCHGRATE, @DECPLCUR),
@I_vTAXAMNT = ROUND(@I_vTAXAMNT * @I_vXCHGRATE, @DECPLCUR),
@I_vBKTSLSAM = ROUND(@I_vBKTSLSAM * @I_vXCHGRATE, @DECPLCUR),
@I_vBKTFRTAM = ROUND(@I_vBKTFRTAM * @I_vXCHGRATE, @DECPLCUR),
@I_vBKTMSCAM = ROUND(@I_vBKTMSCAM * @I_vXCHGRATE, @DECPLCUR),
@I_vCASHAMNT = ROUND(@I_vCASHAMNT * @I_vXCHGRATE, @DECPLCUR),
@I_vCHEKAMNT = ROUND(@I_vCHEKAMNT * @I_vXCHGRATE, @DECPLCUR),
@I_vCRCRDAMT = ROUND(@I_vCRCRDAMT * @I_vXCHGRATE, @DECPLCUR),
@I_vDISCRTND = ROUND(@I_vDISCRTND * @I_vXCHGRATE, @DECPLCUR),
@I_vDISTKNAM = ROUND(@I_vDISTKNAM * @I_vXCHGRATE, @DECPLCUR),
@I_vWROFAMNT = ROUND(@I_vWROFAMNT * @I_vXCHGRATE, @DECPLCUR),
@I_vPPSAMDED = ROUND(@I_vPPSAMDED * @I_vXCHGRATE, @DECPLCUR),
@I_vGSTDSAMT = ROUND(@I_vGSTDSAMT * @I_vXCHGRATE, @DECPLCUR);
END;
ELSE IF @I_vRTCLCMTD = 1
BEGIN
SELECT @I_vSLSAMNT = ROUND(@I_vSLSAMNT / @I_vXCHGRATE, @DECPLCUR),
@I_vCOSTAMNT = ROUND(@I_vCOSTAMNT / @I_vXCHGRATE, @DECPLCUR),
@I_vTRDISAMT = ROUND(@I_vTRDISAMT / @I_vXCHGRATE, @DECPLCUR),
@I_vFRTAMNT = ROUND(@I_vFRTAMNT / @I_vXCHGRATE, @DECPLCUR),
@I_vMISCAMNT = ROUND(@I_vMISCAMNT / @I_vXCHGRATE, @DECPLCUR),
@I_vTAXAMNT = ROUND(@I_vTAXAMNT / @I_vXCHGRATE, @DECPLCUR),
@I_vBKTSLSAM = ROUND(@I_vBKTSLSAM / @I_vXCHGRATE, @DECPLCUR),
@I_vBKTFRTAM = ROUND(@I_vBKTFRTAM / @I_vXCHGRATE, @DECPLCUR),
@I_vBKTMSCAM = ROUND(@I_vBKTMSCAM / @I_vXCHGRATE, @DECPLCUR),
@I_vCASHAMNT = ROUND(@I_vCASHAMNT / @I_vXCHGRATE, @DECPLCUR),
@I_vCHEKAMNT = ROUND(@I_vCHEKAMNT / @I_vXCHGRATE, @DECPLCUR),
@I_vCRCRDAMT = ROUND(@I_vCRCRDAMT / @I_vXCHGRATE, @DECPLCUR),
@I_vDISCRTND = ROUND(@I_vDISCRTND / @I_vXCHGRATE, @DECPLCUR),
@I_vDISTKNAM = ROUND(@I_vDISTKNAM / @I_vXCHGRATE, @DECPLCUR),
@I_vWROFAMNT = ROUND(@I_vWROFAMNT / @I_vXCHGRATE, @DECPLCUR),
@I_vPPSAMDED = ROUND(@I_vPPSAMDED / @I_vXCHGRATE, @DECPLCUR),
@I_vGSTDSAMT = ROUND(@I_vGSTDSAMT / @I_vXCHGRATE, @DECPLCUR);
END;
IF ((@ISMCTRX = 1) AND (@I_vRTCLCMTD = 0))
BEGIN
UPDATE RM10601
SET TAXAMNT = ROUND(TAXAMNT * @I_vXCHGRATE, @DECPLCUR),
ORTAXAMT = TAXAMNT,
STAXAMNT = ROUND(STAXAMNT * @I_vXCHGRATE, @DECPLCUR),
ORSLSTAX = STAXAMNT,
FRTTXAMT = ROUND(FRTTXAMT * @I_vXCHGRATE, @DECPLCUR),
ORFRTTAX = FRTTXAMT,
MSCTXAMT = ROUND(MSCTXAMT * @I_vXCHGRATE, @DECPLCUR),
ORMSCTAX = MSCTXAMT,
TAXDTSLS = ROUND(TAXDTSLS * @I_vXCHGRATE, @DECPLCUR),
ORTOTSLS = TAXDTSLS,
TDTTXSLS = ROUND(TDTTXSLS * @I_vXCHGRATE, @DECPLCUR),
ORTXSLS = TDTTXSLS,
CURRNIDX = @CURRNIDX
WHERE RMDTYPAL = @I_vRMDTYPAL
AND DOCNUMBR = @I_vDOCNUMBR;
IF (@@error <> 0)
BEGIN
SELECT @O_iErrorState = 540;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
BREAK;
END;
UPDATE RM10101
SET DEBITAMT = ROUND(DEBITAMT * @I_vXCHGRATE, @DECPLCUR),
ORDBTAMT = DEBITAMT,
CRDTAMNT = ROUND(CRDTAMNT * @I_vXCHGRATE, @DECPLCUR),
ORCRDAMT = CRDTAMNT,
CURNCYID = @I_vCURNCYID,
CURRNIDX = @CURRNIDX
WHERE RMDTYPAL = @I_vRMDTYPAL
AND DOCNUMBR = @I_vDOCNUMBR
AND DISTTYPE <> 25;
IF (@@error <> 0)
BEGIN
SELECT @O_iErrorState = 1505;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
BREAK;
END;
UPDATE RM10501
SET NCOMAMNT = ROUND(NCOMAMNT * @I_vXCHGRATE, @DECPLCUR),
SLSAMNT = ROUND(SLSAMNT * @I_vXCHGRATE, @DECPLCUR),
COMDLRAM = ROUND(COMDLRAM * @I_vXCHGRATE, @DECPLCUR),
CURRNIDX = @CURRNIDX
WHERE RMDTYPAL = @I_vRMDTYPAL
AND DOCNUMBR = @I_vDOCNUMBR;
IF (@@error <> 0)
BEGIN
SELECT @O_iErrorState = 7451;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
BREAK;
END;
END;
ELSE IF ((@ISMCTRX = 1) AND (@I_vRTCLCMTD = 1))
BEGIN
UPDATE RM10601
SET TAXAMNT = ROUND(TAXAMNT / @I_vXCHGRATE, @DECPLCUR),
ORTAXAMT = TAXAMNT,
STAXAMNT = ROUND(STAXAMNT / @I_vXCHGRATE, @DECPLCUR),
ORSLSTAX = STAXAMNT,
FRTTXAMT = ROUND(FRTTXAMT / @I_vXCHGRATE, @DECPLCUR),
ORFRTTAX = FRTTXAMT,
MSCTXAMT = ROUND(MSCTXAMT / @I_vXCHGRATE, @DECPLCUR),
ORMSCTAX = MSCTXAMT,
TAXDTSLS = ROUND(TAXDTSLS / @I_vXCHGRATE, @DECPLCUR),
ORTOTSLS = TAXDTSLS,
TDTTXSLS = ROUND(TDTTXSLS / @I_vXCHGRATE, @DECPLCUR),
ORTXSLS = TDTTXSLS,
CURRNIDX = @CURRNIDX
WHERE RMDTYPAL = @I_vRMDTYPAL
AND DOCNUMBR = @I_vDOCNUMBR;
IF (@@error <> 0)
BEGIN
SELECT @O_iErrorState = 541;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
BREAK;
END;
UPDATE RM10101
SET DEBITAMT = ROUND(DEBITAMT / @I_vXCHGRATE, @DECPLCUR),
ORDBTAMT = DEBITAMT,
CRDTAMNT = ROUND(CRDTAMNT / @I_vXCHGRATE, @DECPLCUR),
ORCRDAMT = CRDTAMNT,
CURNCYID = @I_vCURNCYID,
CURRNIDX = @CURRNIDX
WHERE RMDTYPAL = @I_vRMDTYPAL
AND DOCNUMBR = @I_vDOCNUMBR
AND DISTTYPE <> 25;
IF (@@error <> 0)
BEGIN
SELECT @O_iErrorState = 1389;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
BREAK;
END;
UPDATE RM10501
SET NCOMAMNT = ROUND(NCOMAMNT / @I_vXCHGRATE, @DECPLCUR),
SLSAMNT = ROUND(SLSAMNT / @I_vXCHGRATE, @DECPLCUR),
COMDLRAM = ROUND(COMDLRAM / @I_vXCHGRATE, @DECPLCUR),
CURRNIDX = @CURRNIDX
WHERE RMDTYPAL = @I_vRMDTYPAL
AND DOCNUMBR = @I_vDOCNUMBR;
IF (@@error <> 0)
BEGIN
SELECT @O_iErrorState = 7452;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
BREAK;
END;
END;
SELECT @I_vTAXAMNT = ISNULL(SUM(TAXAMNT), 0)
FROM RM10601 (NOLOCK)
WHERE RMDTYPAL = @I_vRMDTYPAL
AND DOCNUMBR = @I_vDOCNUMBR;
SELECT @I_vDOCAMNT = @I_vSLSAMNT - @I_vTRDISAMT + @I_vFRTAMNT + @I_vMISCAMNT + @I_vTAXAMNT + @ROUNDAMT;
END;
ELSE
BEGIN
IF (NOT EXISTS
(
SELECT 1
FROM RM00101 (NOLOCK)
WHERE CUSTNMBR = @I_vCUSTNMBR
AND
(
CURNCYID = @I_vCURNCYID
OR CURNCYID = ''
)
)
)
BEGIN
UPDATE RM10101
SET CURNCYID = @I_vCURNCYID,
CURRNIDX = @CURRNIDX
WHERE RMDTYPAL = @I_vRMDTYPAL
AND DOCNUMBR = @I_vDOCNUMBR;
IF (@@error <> 0)
BEGIN
SELECT @O_iErrorState = 4016;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
BREAK;
END;
UPDATE RM10601
SET CURRNIDX = @CURRNIDX
WHERE RMDTYPAL = @I_vRMDTYPAL
AND DOCNUMBR = @I_vDOCNUMBR;
IF (@@error <> 0)
BEGIN
SELECT @O_iErrorState = 4017;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
BREAK;
END;
UPDATE RM10501
SET CURRNIDX = @CURRNIDX
WHERE RMDTYPAL = @I_vRMDTYPAL
AND DOCNUMBR = @I_vDOCNUMBR;
IF (@@error <> 0)
BEGIN
SELECT @O_iErrorState = 7453;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
BREAK;
END;
END;
END;
INSERT RM00401
(
DOCNUMBR,
RMDTYPAL,
DCSTATUS,
BCHSOURC,
TRXSORCE,
CUSTNMBR,
DOCDATE,
NEGQTYSOPINV
)
SELECT @I_vDOCNUMBR,
@I_vRMDTYPAL,
1,
'RM_Sales',
'',
@I_vCUSTNMBR,
@I_vDOCDATE,
0;
IF (@@error <> 0)
BEGIN
SELECT @O_iErrorState = 609;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
BREAK;
END;
IF (@I_vDCNUMCSH <> '')
BEGIN
INSERT RM00401
(
DOCNUMBR,
RMDTYPAL,
DCSTATUS,
BCHSOURC,
TRXSORCE,
CUSTNMBR,
DOCDATE,
NEGQTYSOPINV
)
SELECT @I_vDCNUMCSH,
9,
0,
'RM_Sales',
'',
@I_vCUSTNMBR,
@I_vCASHDATE,
0;
IF (@@error <> 0)
BEGIN
SELECT @O_iErrorState = 641;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
BREAK;
END;
END;
IF (@I_vDCNUMCHK <> '')
BEGIN
INSERT RM00401
(
DOCNUMBR,
RMDTYPAL,
DCSTATUS,
BCHSOURC,
TRXSORCE,
CUSTNMBR,
CHEKNMBR,
DOCDATE,
NEGQTYSOPINV
)
SELECT @I_vDCNUMCHK,
9,
0,
'RM_Sales',
'',
@I_vCUSTNMBR,
@I_vCHEKNMBR,
@I_vCHEKDATE,
0;
IF (@@error <> 0)
BEGIN
SELECT @O_iErrorState = 647;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
BREAK;
END;
END;
IF (@I_vDCNUMCRD <> '')
BEGIN
INSERT RM00401
(
DOCNUMBR,
RMDTYPAL,
DCSTATUS,
BCHSOURC,
TRXSORCE,
CUSTNMBR,
DOCDATE,
NEGQTYSOPINV
)
SELECT @I_vDCNUMCRD,
9,
0,
'RM_Sales',
'',
@I_vCUSTNMBR,
@I_vCRCARDDT,
0;
IF (@@error <> 0)
BEGIN
SELECT @O_iErrorState = 648;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
BREAK;
END;
END;
IF (@ORBKTSLS > 0)
BEGIN
SELECT @BACKOUTAMT = @I_vSLSAMNT - @ORBKTSLS;
END;
EXEC @iStatus = taRMDistributionCreate @I_vRMDTYPAL = @I_vRMDTYPAL,
@I_vDOCNUMBR = @I_vDOCNUMBR,
@I_vCUSTNMBR = @I_vCUSTNMBR,
@I_vCURRNIDX = @CURRNIDX,
@I_vCURNCYID = @I_vCURNCYID,
@I_vPTDUSRID = @I_vPTDUSRID,
@I_vTRADEAMT = @I_vTRDISAMT,
@I_vFREIGHTAMT = @I_vFRTAMNT,
@I_vMISCAMNT = @I_vMISCAMNT,
@I_vCASHAMT = @I_vCASHAMNT,
@I_vCashCHEKBKID = @I_vCBKIDCSH,
@I_vCHECKAMT = @I_vCHEKAMNT,
@I_vCheckCHEKBKID = @I_vCBKIDCHK,
@I_vCRCRDAMT = @I_vCRCRDAMT,
@I_vTDISTKAMT = @I_vDISTKNAM,
@I_vDISAVAMT = @I_vDISAVAMT,
@I_vCRCRDNAM = @I_vCRCRDNAM,
@I_vDISCRTND = @I_vDISCRTND,
@I_vDOCAMNT = @I_vDOCAMNT,
@I_vSLSAMNT = @I_vSLSAMNT,
@I_vCOSTAMNT = @I_vCOSTAMNT,
@I_vCOMDLRAM = @I_vCOMDLRAM,
@I_vRATETPID = @I_vRATETPID,
@I_vXCHGRATE = @I_vXCHGRATE,
@I_vEXCHDATE = @I_vEXCHDATE,
@I_vEXPNDATE = @I_vEXPNDATE,
@I_vEXGTBLID = @EXGTBLID,
@I_vTIME1 = @I_vTIME1,
@I_vFNDECPLCUR = @DECPLCUR,
@I_vORCTRXAM = @ORCTRXAM,
@I_vORSLSAMT = @ORSLSAMT,
@I_vORCSTAMT = @ORCSTAMT,
@I_vORFRTAMT = @ORFRTAMT,
@I_vORMISCAMT = @ORMISCAMT,
@I_vORTAXAMT = @ORTAXAMT,
@I_vORCASAMT = @ORCASAMT,
@I_vORCHKAMT = @ORCHKAMT,
@I_vORCCDAMT = @ORCCDAMT,
@I_vORAPPAMT = @ORAPPAMT,
@I_vORDISTKN = @ORDISTKN,
@I_vORDAVAMT = @ORDAVAMT,
@I_vORDATKN = @ORDATKN,
@I_vORDISRTD = @ORDISRTD,
@I_vORDDLRAT = @ORDDLRAT,
@I_vORTDISAM = @ORTDISAM,
@I_vORORGTRX = @ORORGTRX,
@I_vORWROFAM = @ORWROFAM,
@I_vORCOMAMT = @ORCOMAMT,
@I_vORBKTSLS = @BACKOUTAMT,
@I_vORBKTFRT = @ORBKTFRT,
@I_vORBKTMSC = @ORBKTMSC,
@I_vApply = 0,
@I_vTRXSORCE = '',
@I_vWROFAMNT = 0,
@I_vDistRef = '',
@I_vPOSTEDDT = '',
@I_vCMPANYID = @CMPANYID,
@I_vINTERID = @INTERID,
@I_vRTCLCMTD = @I_vRTCLCMTD,
@I_vDECPLCUR = @ORDECPLCUR,
@I_vCREATEDIST = @I_vCREATEDIST,
@O_iErrorState = @iUpdDistErrState OUTPUT,
@oErrString = @oErrString OUTPUT;
SELECT @iError = @@error;
IF @iStatus = 0
AND @iError <> 0
SELECT @iStatus = @iError;
IF (@iStatus <> 0)
OR (@iUpdDistErrState <> 0)
BEGIN
IF (@iUpdDistErrState <> 0)
BEGIN
EXEC @iStatus = taUpdateString @iUpdDistErrState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
END;
SELECT @O_iErrorState = 628;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
BREAK;
END;
IF (@iError <> 0)
BEGIN
SELECT @O_iErrorState = 611;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
BREAK;
END;
IF (@ISMCTRX = 1)
BEGIN
SELECT @ROUNDAMT = DEBITAMT
FROM RM10101 (NOLOCK)
WHERE DOCNUMBR = @I_vDOCNUMBR
AND RMDTYPAL = @I_vRMDTYPAL
AND DISTTYPE = 26;
IF (@ROUNDAMT = 0)
BEGIN
SELECT @ROUNDAMT = CRDTAMNT * -1
FROM RM10101 (NOLOCK)
WHERE DOCNUMBR = @I_vDOCNUMBR
AND RMDTYPAL = @I_vRMDTYPAL
AND DISTTYPE = 26;
END;
SELECT @I_vDOCAMNT = @I_vSLSAMNT - @I_vTRDISAMT + @I_vFRTAMNT + @I_vMISCAMNT + @I_vTAXAMNT + @ROUNDAMT;
END;
IF (@I_vRequesterTrx = 0)
BEGIN
EXEC @iStatus = eConnectOutVerify @I_vDOCTYPE = 'Receivables_Transaction',
@I_vINDEX1 = @I_vRMDTYPAL,
@I_vINDEX2 = @I_vDOCNUMBR,
@I_vINDEX3 = '',
@I_vINDEX4 = '',
@I_vINDEX5 = '',
@I_vINDEX6 = '',
@I_vINDEX7 = '',
@I_vINDEX8 = '',
@I_vINDEX9 = '',
@I_vINDEX10 = '',
@I_vINDEX11 = '',
@I_vINDEX12 = '',
@I_vINDEX13 = '',
@I_vINDEX14 = '',
@I_vINDEX15 = '',
@I_vDelete = 0,
@O_iErrorState = @iCustomState OUTPUT;
SELECT @iError = @@error;
IF @iStatus = 0
AND @iError <> 0
BEGIN
SELECT @iStatus = @iError;
END;
IF (@iStatus <> 0)
OR (@iCustomState <> 0)
BEGIN
SELECT @O_iErrorState = 1298;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrorState OUTPUT;
RETURN (@O_iErrorState);
END;
END;
SELECT @SLSCHDID = SLSCHDID,
@FRTSCHID = FRTSCHID,
@MSCSCHID = MSCSCHID
FROM RM40101 (NOLOCK)
WHERE SETUPKEY = 1;
INSERT RM10301
(
DOCTYPE,
RMDTYPAL,
RMDNUMWK,
DOCNUMBR,
DOCPRFIX,
DOCDESCR,
DOCDATE,
BACHNUMB,
BCHSOURC,
NOTEINDX,
CUSTNMBR,
CUSTNAME,
ADRSCODE,
SLPRSNID,
SALSTERR,
COMAPPTO,
COMDLRAM,
NCOMAMNT,
SHIPMTHD,
CSTPONBR,
TAXSCHID,
SLSCHDID,
FRTSCHID,
MSCSCHID,
COSTAMNT,
SLSAMNT,
TRDISAMT,
TRDDISCT,
FRTAMNT,
MISCAMNT,
TAXAMNT,
BKTSLSAM,
BKTFRTAM,
BKTMSCAM,
TXENGCLD,
DOCAMNT,
APPLDAMT,
CASHAMNT,
CBKIDCSH,
CASHDATE,
DCNUMCSH,
CHEKAMNT,
CBKIDCHK,
CBKIDCRD,
CHEKNMBR,
CHEKDATE,
DCNUMCHK,
CRCRDAMT,
CRCRDNAM,
RCTNCCRD,
CRCARDDT,
DCNUMCRD,
DISCRTND,
DISTKNAM,
DISAVTKN,
WROFAMNT,
PPSAMDED,
GSTDSAMT,
ACCTAMNT,
PYMTRMID,
DISAVAMT,
DISCDATE,
DUEDATE,
DSCDLRAM,
DSCPCTAM,
CURNCYID,
POSTED,
LSTEDTDT,
LSTUSRED,
RMTREMSG,
RMDPEMSG,
GLPOSTDT,
POSTEDDT,
PTDUSRID,
Tax_Date,
APLYWITH,
SALEDATE,
CORRCTN,
SIMPLIFD,
CORRNXST,
DOCNCORR,
RMTREMSG2,
DocPrinted,
DISGRPER,
DUEGRPER,
Electronic,
ECTRX,
PSTGSTUS,
BackoutTradeDisc,
DIRECTDEBIT,
EFTFLAG
)
SELECT @DOCTYPE,
@I_vRMDTYPAL,
@I_vDOCNUMBR,
@I_vDOCNUMBR,
@DOCPRFIX,
@I_vDOCDESCR,
@I_vDOCDATE,
@I_vBACHNUMB,
'RM_Sales',
@NOTEINDX,
@I_vCUSTNMBR,
CUSTNAME,
CASE
WHEN (@I_vADRSCODE = '') THEN
ADRSCODE
ELSE
@I_vADRSCODE
END,
@I_vSLPRSNID,
@I_vSALSTERR,
@I_vCOMAPPTO,
@I_vCOMDLRAM,
@NCOMAMNT,
CASE
WHEN (@I_vSHIPMTHD = '')
AND (@I_vRMDTYPAL IN ( 1, 5, 8 )) THEN
SHIPMTHD
ELSE
@I_vSHIPMTHD
END,
@I_vCSTPONBR,
CASE
WHEN (@I_vTAXSCHID = '')
AND (@I_vRMDTYPAL IN ( 1, 5, 8 )) THEN
TAXSCHID
ELSE
@I_vTAXSCHID
END,
@SLSCHDID,
@FRTSCHID,
@MSCSCHID,
@I_vCOSTAMNT,
@I_vSLSAMNT,
@I_vTRDISAMT,
@I_vTRDDISCT,
@I_vFRTAMNT,
@I_vMISCAMNT,
@I_vTAXAMNT,
CASE
WHEN @I_vBKTSLSAM = 0
AND @BACKOUTAMT > 0 THEN
@I_vSLSAMNT - @BACKOUTAMT
ELSE
@I_vBKTSLSAM
END,
@I_vBKTFRTAM,
@I_vBKTMSCAM,
@I_TXENGCLD,
@I_vDOCAMNT,
0,
@I_vCASHAMNT,
@I_vCBKIDCSH,
@I_vCASHDATE,
@I_vDCNUMCSH,
@I_vCHEKAMNT,
CASE
WHEN (@I_vRMDTYPAL IN ( 1, 3, 4, 5, 8 )) THEN
@I_vCBKIDCHK
ELSE
''
END,
@I_vCBKIDCRD,
@I_vCHEKNMBR,
@I_vCHEKDATE,
@I_vDCNUMCHK,
@I_vCRCRDAMT,
@I_vCRCRDNAM,
CASE
WHEN
(
(@I_vRCTNCCRD = '')
AND (@I_vCRCRDNAM <> '')
) THEN
CRCRDNUM
ELSE
@I_vRCTNCCRD
END,
@I_vCRCARDDT,
@I_vDCNUMCRD,
@I_vDISCRTND,
@I_vDISTKNAM,
0,
@I_vWROFAMNT,
@I_vPPSAMDED,
@I_vGSTDSAMT,
CASE
WHEN (@I_vRMDTYPAL = 6) THEN
0
WHEN @I_vRMDTYPAL = 7 THEN
(@I_vDOCAMNT - @I_vDISCRTND)
WHEN @I_vRMDTYPAL = 8
AND (@I_vCASHAMNT = 0)
AND (@I_vCHEKAMNT = 0)
AND (@I_vCRCRDAMT = 0) THEN
(@I_vDOCAMNT - @I_vDISCRTND)
ELSE
(@I_vDOCAMNT - @I_vCASHAMNT - @I_vCHEKAMNT - @I_vCRCRDAMT - @I_vDISTKNAM)
END,
@I_vPYMTRMID,
@I_vDISAVAMT,
@I_vDISCDATE,
@I_vDUEDATE,
@I_vDSCDLRAM,
@I_vDSCPCTAM * 100,
CASE
WHEN @MCINSTALLED = 1 THEN
@I_vCURNCYID
ELSE
''
END,
@POSTED,
CONVERT(VARCHAR(12), GETDATE()),
@I_vLSTUSRED,
0,
0,
@I_vDOCDATE,
'',
@I_vPTDUSRID,
@I_vDOCDATE,
@APLYWITH,
'',
@CORRCTN,
@SIMPLIFD,
@CORRNXST,
@DOCNCORR,
0,
@DocPrinted,
DISGRPER,
DUEGRPER,
@Electronic,
@ECTRX,
20,
0,
0,
0
FROM RM00101 (NOLOCK)
WHERE CUSTNMBR = @I_vCUSTNMBR;
IF (@@error <> 0)
BEGIN
SELECT @O_iErrorState = 201;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
BREAK;
END;
IF (@I_vRMDTYPAL IN ( 1, 3, 4, 5 ))
BEGIN
UPDATE RM00103
SET UNPSTDCA = UNPSTDCA + @I_vCASHAMNT + @I_vCHEKAMNT + @I_vCRCRDAMT,
UNPSTDSA = UNPSTDSA + @I_vSLSAMNT - @I_vTRDISAMT + @I_vFRTAMNT + @I_vMISCAMNT + @I_vTAXAMNT
WHERE CUSTNMBR = @I_vCUSTNMBR;
IF (@@error <> 0)
BEGIN
SELECT @O_iErrorState = 610;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
BREAK;
END;
END;
IF (@I_vRMDTYPAL = 7)
BEGIN
UPDATE RM00103
SET UNPSTDCA = UNPSTDCA + @I_vDOCAMNT
WHERE CUSTNMBR = @I_vCUSTNMBR;
IF (@@error <> 0)
BEGIN
SELECT @O_iErrorState = 469;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
BREAK;
END;
END;
IF (@I_vRMDTYPAL = 8)
BEGIN
UPDATE RM00103
SET UNPSTDCA = UNPSTDCA - @I_vCASHAMNT - @I_vCHEKAMNT - @I_vCRCRDAMT,
UNPSTDSA = UNPSTDSA - @I_vSLSAMNT + @I_vTRDISAMT - @I_vFRTAMNT - @I_vMISCAMNT - @I_vTAXAMNT
WHERE CUSTNMBR = @I_vCUSTNMBR;
IF (@@error <> 0)
BEGIN
SELECT @O_iErrorState = 468;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
BREAK;
END;
END;
EXEC @iStatus = taCreateUpdateBatchHeaderRcd @I_vBACHNUMB = @I_vBACHNUMB,
@I_vSERIES = 3,
@I_vGLPOSTDT = @I_vDOCDATE,
@I_vBCHSOURC = 'RM_Sales',
@I_vDOCAMT = @I_vDOCAMNT,
@I_vORIGIN = 1,
@I_vNUMOFTRX = 1,
@I_vCHEKBKID = @I_vBatchCHEKBKID,
@I_vUSERID = @I_vLSTUSRED,
@O_iErrorState = @iAddBatchErrState OUTPUT,
@oErrString = @iCreateBatchErrString OUTPUT;
SELECT @iError = @@error;
IF @iStatus = 0
AND @iError <> 0
SELECT @iStatus = @iError;
IF ((@iAddBatchErrState <> 0) OR (@iStatus <> 0))
BEGIN
IF (@iAddBatchErrState = 12012)
BEGIN
EXEC @iStatus = taUpdateString @iAddBatchErrState,
@oErrString,
@oErrString OUTPUT,
@O_oErrorState OUTPUT;
END;
SELECT @oErrString = RTRIM(ISNULL(@oErrString, '')) + ' ' + @iCreateBatchErrString;
SELECT @O_iErrorState = 633;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
BREAK;
END;
IF (@ISMCTRX = 0)
OR
(
(NOT EXISTS
(
SELECT DISTINCT
1
FROM IV00105 (NOLOCK)
WHERE CURNCYID <> ''
)
)
AND (NOT EXISTS
(
SELECT DISTINCT
1
FROM CM00100 (NOLOCK)
WHERE CURNCYID <> ''
)
)
)
BEGIN
UPDATE RM10101
SET ORCRDAMT = 0,
ORDBTAMT = 0
WHERE RMDTYPAL = @I_vRMDTYPAL
AND DOCNUMBR = @I_vDOCNUMBR;
IF (@@error <> 0)
BEGIN
SELECT @O_iErrorState = 5469;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
BREAK;
END;
IF EXISTS (SELECT 1 FROM sysobjects (NOLOCK) WHERE name = 'AAG20001')
BEGIN
UPDATE AAG20001
SET ORDBTAMT = 0,
ORCRDAMT = 0
WHERE aaSubLedgerHdrID =
(
SELECT aaSubLedgerHdrID
FROM AAG20000 (NOLOCK)
WHERE DOCNUMBR = @I_vDOCNUMBR
AND DOCTYPE = @I_vRMDTYPAL
);
IF (@@error <> 0)
BEGIN
SELECT @O_iErrorState = 8697;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrState OUTPUT;
BREAK;
END;
END;
END;
BREAK;
END;
IF @O_iErrorState <> 0
RETURN (@O_iErrorState);
EXEC @iStatus = taRMTransactionPost @I_vRMDTYPAL,
@I_vDOCNUMBR,
@I_vDOCDATE,
@I_vBACHNUMB,
@I_vCUSTNMBR,
@I_vDOCAMNT,
@I_vSLSAMNT,
@I_vDOCDESCR,
@I_vADRSCODE,
@I_vSLPRSNID,
@I_vSALSTERR,
@I_vSHIPMTHD,
@I_vTAXSCHID,
@I_vCSTPONBR,
@I_vCOSTAMNT,
@I_vTRDISAMT,
@I_vTRDDISCT,
@I_vFRTAMNT,
@I_vMISCAMNT,
@I_vTAXAMNT,
@I_vBKTSLSAM,
@I_vBKTFRTAM,
@I_vBKTMSCAM,
@I_vCASHAMNT,
@I_vCBKIDCSH,
@I_vCASHDATE,
@I_vDCNUMCSH,
@I_vCHEKAMNT,
@I_vCBKIDCHK,
@I_vCBKIDCRD,
@I_vCHEKNMBR,
@I_vCHEKDATE,
@I_vDCNUMCHK,
@I_vCRCRDAMT,
@I_vCRCRDNAM,
@I_vRCTNCCRD,
@I_vCRCARDDT,
@I_vDCNUMCRD,
@I_vDISCRTND,
@I_vDISTKNAM,
@I_vWROFAMNT,
@I_vPPSAMDED,
@I_vGSTDSAMT,
@I_vPYMTRMID,
@I_vDISAVAMT,
@I_vDSCDLRAM,
@I_vDSCPCTAM,
@I_vLSTUSRED,
@I_vPTDUSRID,
@I_vDistRef,
@I_vBatchCHEKBKID,
@I_vDUEDATE,
@I_vDISCDATE,
@I_vCURNCYID,
@I_vXCHGRATE,
@I_vRATETPID,
@I_vEXPNDATE,
@I_vEXCHDATE,
@I_vEXGTBDSC,
@I_vEXTBLSRC,
@I_vRATEEXPR,
@I_vDYSTINCR,
@I_vRATEVARC,
@I_vTRXDTDEF,
@I_vRTCLCMTD,
@I_vPRVDSLMT,
@I_vDATELMTS,
@I_vTIME1,
@I_vCOMDLRAM,
@I_vCOMAPPTO,
@I_vRequesterTrx,
@I_vCREATEDIST,
@I_vUSRDEFND1,
@I_vUSRDEFND2,
@I_vUSRDEFND3,
@I_vUSRDEFND4,
@I_vUSRDEFND5,
@O_iErrorState = @iCustomState OUTPUT,
@oErrString = @iCustomErrString OUTPUT;
SELECT @iError = @@error;
IF @iStatus = 0
AND @iError <> 0
BEGIN
SELECT @iStatus = @iError;
END;
IF (@iStatus <> 0)
OR (@iCustomState <> 0)
BEGIN
SELECT @oErrString = RTRIM(@oErrString) + ' ' + LTRIM(RTRIM(@iCustomErrString));
SELECT @O_iErrorState = 162;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrorState OUTPUT;
RETURN (@O_iErrorState);
END;
IF (@I_vRequesterTrx = 0)
BEGIN
EXEC @iStatus = eConnectOutVerify @I_vDOCTYPE = 'Receivables_Transaction',
@I_vINDEX1 = @I_vRMDTYPAL,
@I_vINDEX2 = @I_vDOCNUMBR,
@I_vINDEX3 = '',
@I_vINDEX4 = '',
@I_vINDEX5 = '',
@I_vINDEX6 = '',
@I_vINDEX7 = '',
@I_vINDEX8 = '',
@I_vINDEX9 = '',
@I_vINDEX10 = '',
@I_vINDEX11 = '',
@I_vINDEX12 = '',
@I_vINDEX13 = '',
@I_vINDEX14 = '',
@I_vINDEX15 = '',
@I_vDelete = 1,
@O_iErrorState = @iCustomState OUTPUT;
SELECT @iError = @@error;
IF @iStatus = 0
AND @iError <> 0
BEGIN
SELECT @iStatus = @iError;
END;
IF (@iStatus <> 0)
OR (@iCustomState <> 0)
BEGIN
SELECT @O_iErrorState = 1299;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrorState OUTPUT;
RETURN (@O_iErrorState);
END;
END;
RETURN (@O_iErrorState);