ALTER PROCEDURE [dbo].[taPMTransactionInsert]
@I_vBACHNUMB CHAR(15),
@I_vVCHNUMWK CHAR(17),
@I_vVENDORID CHAR(15),
@I_vDOCNUMBR CHAR(20),
@I_vDOCTYPE SMALLINT,
@I_vDOCAMNT NUMERIC(19, 5),
@I_vDOCDATE DATETIME,
@I_vPSTGDATE DATETIME = '',
@I_vVADCDTRO CHAR(15) = '',
@I_vVADDCDPR CHAR(15) = '',
@I_vPYMTRMID CHAR(20) = NULL,
@I_vTAXSCHID CHAR(15) = '',
@I_vDUEDATE DATETIME = '',
@I_vDSCDLRAM NUMERIC(19, 5) = NULL,
@I_vDISCDATE DATETIME = '',
@I_vPRCHAMNT NUMERIC(19, 5) = 0,
@I_vCHRGAMNT NUMERIC(19, 5) = 0,
@I_vCASHAMNT NUMERIC(19, 5) = 0,
@I_vCAMCBKID CHAR(15) = '',
@I_vCDOCNMBR CHAR(20) = '',
@I_vCAMTDATE DATETIME = '',
@I_vCAMPMTNM CHAR(20) = '',
@I_vCHEKAMNT NUMERIC(19, 5) = 0,
@I_vCHAMCBID CHAR(15) = '',
@I_vCHEKDATE DATETIME = '',
@I_vCAMPYNBR CHAR(20) = '',
@I_vCRCRDAMT NUMERIC(19, 5) = 0,
@I_vCCAMPYNM CHAR(20) = '',
@I_vCHEKNMBR CHAR(20) = '',
@I_vCARDNAME CHAR(15) = '',
@I_vCCRCTNUM CHAR(20) = '',
@I_vCRCARDDT DATETIME = '',
@I_vCHEKBKID CHAR(15) = '',
@I_vTRXDSCRN CHAR(30) = '',
@I_vTRDISAMT NUMERIC(19, 5) = 0,
@I_vTAXAMNT NUMERIC(19, 5) = 0,
@I_vFRTAMNT NUMERIC(19, 5) = 0,
@I_vTEN99AMNT NUMERIC(19, 5) = 0,
@I_vMSCCHAMT NUMERIC(19, 5) = 0,
@I_vPORDNMBR CHAR(20) = '',
@I_vSHIPMTHD CHAR(15) = NULL,
@I_vDISAMTAV NUMERIC(19, 5) = NULL,
@I_vDISTKNAM NUMERIC(19, 5) = 0,
@I_vAPDSTKAM NUMERIC(19, 5) = 0,
@I_vMDFUSRID CHAR(15) = '',
@I_vPOSTEDDT DATETIME = '',
@I_vPTDUSRID CHAR(15) = '',
@I_vPCHSCHID CHAR(15) = '',
@I_vFRTSCHID CHAR(15) = '',
@I_vMSCSCHID CHAR(15) = '',
@I_vPRCTDISC NUMERIC(19, 2) = NULL,
@I_vTax_Date 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_vBatchCHEKBKID CHAR(15) = '',
@I_vCREATEDIST SMALLINT = 1,
@I_vRequesterTrx SMALLINT = 0,
@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 @CMPANYID SMALLINT,
@NOTEINDX NUMERIC(19, 5),
@FUNLCURR CHAR(15),
@EXGTBLID CHAR(15),
@ISMCTRX INT,
@ORDISTKN NUMERIC(19, 5),
@ORDDLRAT NUMERIC(19, 5),
@ORTDISAM NUMERIC(19, 5),
@OCHGAMT NUMERIC(19, 5),
@OR1099AM NUMERIC(19, 5),
@ORCTRXAM NUMERIC(19, 5),
@ORCASAMT NUMERIC(19, 5),
@ORCHKAMT NUMERIC(19, 5),
@ORCCDAMT NUMERIC(19, 5),
@OMISCAMT NUMERIC(19, 5),
@ORFRTAMT NUMERIC(19, 5),
@ORTAXAMT NUMERIC(19, 5),
@OPURAMT NUMERIC(19, 5),
@ORDOCAMT NUMERIC(19, 5),
@ODISAMTAV NUMERIC(19, 5),
@DECPLCUR SMALLINT,
@PRCHAMNT NUMERIC(19, 5),
@CURTRXAM NUMERIC(19, 5),
@DCSTATUS TINYINT,
@CNTRLTYP TINYINT,
@TAXAMNT NUMERIC(19, 5),
@BCHSOURC CHAR(15),
@ADUPINNM INT,
@DSCLCTYP SMALLINT,
@DSCPCTAM NUMERIC(19, 5),
@DSCDLRAM NUMERIC(19, 5),
@dDISCDATE DATETIME,
@dDUEDATE DATETIME,
@iCalcDueDateErrState INT,
@iCalcDueDateErrString VARCHAR(255),
@iCustomState INT,
@iCustomErrString VARCHAR(255),
@iStatement INT,
@iStatus INT,
@iAddBatchErrState INT,
@iAddShippingErrState INT,
@iAddShippingErrString VARCHAR(255),
@iCreateBatchErrString VARCHAR(255),
@CURRNIDX SMALLINT,
@iAddCodeErrState INT,
@iError INT,
@iUpdDistErrState INT,
@O_oErrorState INT,
@CreditCardVendorID CHAR(15),
@O_iInitErrorState INT,
@oInitErrString VARCHAR(255),
@SALPURCH SMALLINT,
@DISCNTCB SMALLINT,
@FREIGHT SMALLINT,
@MISC SMALLINT,
@TAX SMALLINT,
@PymtTermAmnt NUMERIC(19, 5),
@ORDECPLCUR SMALLINT,
@iGetNextNoteIdxErrState INT,
@round NUMERIC(19, 5),
@SEQNUMB INT,
@ROUNDACCT INT,
@FUNLCURRINDEX INT,
@INTERID CHAR(5),
@BKTPURAM NUMERIC(19, 5),
@MCINSTALLED TINYINT,
@TEN99TYPE SMALLINT,
@TEN99BOXNUMBER SMALLINT,
@OBKPURAMT NUMERIC(19, 5),
@BKTFRTAM NUMERIC(19, 5),
@BKTMSCAM NUMERIC(19, 5),
@ORBKTFRT NUMERIC(19, 5),
@ORBKTMSC NUMERIC(19, 5),
@PYBLGRBX TINYINT,
@BACHNUMB CHAR(15),
@checkbookid CHAR(15),
@BatchExists TINYINT,
@RCVBGRBX TINYINT,
@Workflow_Status SMALLINT;
SELECT @CURTRXAM = 0,
@CMPANYID = 0,
@FUNLCURR = '',
@EXGTBLID = '',
@ISMCTRX = 0,
@ORDISTKN = 0,
@ORCTRXAM = 0,
@ORDDLRAT = 0,
@ORTDISAM = 0,
@OCHGAMT = 0,
@OR1099AM = 0,
@ORCASAMT = 0,
@ORCHKAMT = 0,
@ORCCDAMT = 0,
@OMISCAMT = 0,
@ORFRTAMT = 0,
@ORTAXAMT = 0,
@OPURAMT = 0,
@ORDOCAMT = 0,
@ODISAMTAV = 0,
@DECPLCUR = 0,
@PRCHAMNT = @I_vPRCHAMNT,
@DCSTATUS = 1,
@TAXAMNT = 0,
@CNTRLTYP = 0,
@ADUPINNM = 0,
@DSCLCTYP = 0,
@DSCPCTAM = 0,
@DSCDLRAM = 0,
@dDISCDATE = '',
@dDUEDATE = '',
@CURRNIDX = 0,
@BCHSOURC = 'PM_Trxent',
@iError = 0,
@iAddBatchErrState = 0,
@iAddCodeErrState = 0,
@iUpdDistErrState = 0,
@iCalcDueDateErrState = 0,
@iCalcDueDateErrString = '',
@iStatus = 0,
@oErrString = '',
@O_oErrorState = 0,
@iStatement = 0,
@O_iErrorState = 0,
@SALPURCH = 1,
@DISCNTCB = 1,
@FREIGHT = 1,
@MISC = 1,
@TAX = 1,
@PymtTermAmnt = 0,
@ORDECPLCUR = 0,
@round = 0,
@SEQNUMB = 0,
@ROUNDACCT = 0,
@FUNLCURRINDEX = 0,
@INTERID = '',
@MCINSTALLED = 1,
@BKTPURAM = 0,
@INTERID = '',
@TEN99TYPE = 0,
@TEN99BOXNUMBER = 0,
@OBKPURAMT = 0,
@BKTFRTAM = 0,
@BKTMSCAM = 0,
@ORBKTFRT = 0,
@ORBKTMSC = 0,
@PYBLGRBX = 0,
@BACHNUMB = '',
@checkbookid = '',
@BatchExists = 0,
@RCVBGRBX = 0,
@Workflow_Status = 0;
EXEC @iStatus = taPMTransactionInsertPre @I_vBACHNUMB OUTPUT,
@I_vVCHNUMWK OUTPUT,
@I_vVENDORID OUTPUT,
@I_vDOCNUMBR OUTPUT,
@I_vDOCTYPE OUTPUT,
@I_vDOCAMNT OUTPUT,
@I_vDOCDATE OUTPUT,
@I_vPSTGDATE OUTPUT,
@I_vVADCDTRO OUTPUT,
@I_vVADDCDPR OUTPUT,
@I_vPYMTRMID OUTPUT,
@I_vTAXSCHID OUTPUT,
@I_vDUEDATE OUTPUT,
@I_vDSCDLRAM OUTPUT,
@I_vDISCDATE OUTPUT,
@I_vPRCHAMNT OUTPUT,
@I_vCHRGAMNT OUTPUT,
@I_vCASHAMNT OUTPUT,
@I_vCAMCBKID OUTPUT,
@I_vCDOCNMBR OUTPUT,
@I_vCAMTDATE OUTPUT,
@I_vCAMPMTNM OUTPUT,
@I_vCHEKAMNT OUTPUT,
@I_vCHAMCBID OUTPUT,
@I_vCHEKDATE OUTPUT,
@I_vCAMPYNBR OUTPUT,
@I_vCRCRDAMT OUTPUT,
@I_vCCAMPYNM OUTPUT,
@I_vCHEKNMBR OUTPUT,
@I_vCARDNAME OUTPUT,
@I_vCCRCTNUM OUTPUT,
@I_vCRCARDDT OUTPUT,
@I_vCHEKBKID OUTPUT,
@I_vTRXDSCRN OUTPUT,
@I_vTRDISAMT OUTPUT,
@I_vTAXAMNT OUTPUT,
@I_vFRTAMNT OUTPUT,
@I_vTEN99AMNT OUTPUT,
@I_vMSCCHAMT OUTPUT,
@I_vPORDNMBR OUTPUT,
@I_vSHIPMTHD OUTPUT,
@I_vDISAMTAV OUTPUT,
@I_vDISTKNAM OUTPUT,
@I_vAPDSTKAM OUTPUT,
@I_vMDFUSRID OUTPUT,
@I_vPOSTEDDT OUTPUT,
@I_vPTDUSRID OUTPUT,
@I_vPCHSCHID OUTPUT,
@I_vFRTSCHID OUTPUT,
@I_vMSCSCHID OUTPUT,
@I_vPRCTDISC OUTPUT,
@I_vTax_Date 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_vBatchCHEKBKID OUTPUT,
@I_vCREATEDIST OUTPUT,
@I_vRequesterTrx 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 = 153;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrorState OUTPUT;
RETURN (@O_iErrorState);
END;
WHILE (@iStatement = 0)
BEGIN
IF (
@I_vBACHNUMB IS NULL
OR @I_vVCHNUMWK IS NULL
OR @I_vVENDORID IS NULL
OR @I_vDOCNUMBR IS NULL
OR @I_vDOCTYPE IS NULL
OR @I_vDOCAMNT IS NULL
OR @I_vDOCDATE IS NULL
OR @I_vPSTGDATE IS NULL
OR @I_vVADCDTRO IS NULL
OR @I_vVADDCDPR IS NULL
OR @I_vDUEDATE IS NULL
OR @I_vDISCDATE IS NULL
OR @I_vPRCHAMNT IS NULL
OR @I_vCHRGAMNT IS NULL
OR @I_vCASHAMNT IS NULL
OR @I_vCAMCBKID IS NULL
OR @I_vCDOCNMBR IS NULL
OR @I_vCAMTDATE IS NULL
OR @I_vCAMPMTNM IS NULL
OR @I_vCHEKAMNT IS NULL
OR @I_vCHAMCBID IS NULL
OR @I_vCHEKDATE IS NULL
OR @I_vCAMPYNBR IS NULL
OR @I_vCRCRDAMT IS NULL
OR @I_vCCAMPYNM IS NULL
OR @I_vCHEKNMBR IS NULL
OR @I_vCARDNAME IS NULL
OR @I_vCCRCTNUM IS NULL
OR @I_vCRCARDDT IS NULL
OR @I_vCHEKBKID IS NULL
OR @I_vTRXDSCRN IS NULL
OR @I_vTRDISAMT IS NULL
OR @I_vTAXAMNT IS NULL
OR @I_vFRTAMNT IS NULL
OR @I_vTEN99AMNT IS NULL
OR @I_vMSCCHAMT IS NULL
OR @I_vPORDNMBR IS NULL
OR @I_vDISTKNAM IS NULL
OR @I_vAPDSTKAM IS NULL
OR @I_vMDFUSRID IS NULL
OR @I_vPOSTEDDT IS NULL
OR @I_vPTDUSRID IS NULL
OR @I_vPCHSCHID IS NULL
OR @I_vFRTSCHID IS NULL
OR @I_vMSCSCHID 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_vBatchCHEKBKID IS NULL
OR @I_vCREATEDIST IS NULL
OR @I_vRequesterTrx IS NULL
)
BEGIN
SELECT @O_iErrorState = 481;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
IF (
(@I_vPRCHAMNT < 0)
OR (@I_vCHRGAMNT < 0)
OR (@I_vCASHAMNT < 0)
OR (@I_vCHEKAMNT < 0)
OR (@I_vCRCRDAMT < 0)
OR (@I_vTRDISAMT < 0)
OR (@I_vFRTAMNT < 0)
OR (@I_vTEN99AMNT < 0)
OR (@I_vTEN99AMNT < 0)
OR (@I_vXCHGRATE < 0)
OR (@I_vRATEVARC < 0)
OR (@I_vDSCDLRAM < 0)
)
BEGIN
SELECT @O_iErrorState = 5631;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrorState OUTPUT;
END;
SELECT @I_vVENDORID = UPPER(@I_vVENDORID),
@I_vBACHNUMB = UPPER(@I_vBACHNUMB),
@I_vDOCNUMBR = UPPER(@I_vDOCNUMBR),
@I_vTAXSCHID = UPPER(@I_vTAXSCHID),
@I_vCHEKBKID = UPPER(@I_vCHEKBKID),
@I_vPCHSCHID = UPPER(@I_vPCHSCHID),
@I_vFRTSCHID = UPPER(@I_vFRTSCHID),
@I_vMSCSCHID = UPPER(@I_vMSCSCHID),
@I_vCAMCBKID = UPPER(@I_vCAMCBKID),
@I_vCHAMCBID = UPPER(@I_vCHAMCBID),
@I_vCURNCYID = UPPER(@I_vCURNCYID),
@I_vSHIPMTHD = UPPER(@I_vSHIPMTHD),
@I_vBatchCHEKBKID = UPPER(@I_vBatchCHEKBKID);
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;
IF (@I_vCURNCYID = '')
BEGIN
SELECT @I_vCURNCYID = ISNULL(CURNCYID, '')
FROM PM00200 (NOLOCK)
WHERE VENDORID = @I_vVENDORID;
IF (@I_vCURNCYID = '')
SELECT @I_vCURNCYID = ISNULL(FUNLCURR, ''),
@CURRNIDX = ISNULL(FUNCRIDX, 0)
FROM MC40000 (NOLOCK);
END;
SELECT @CURRNIDX = ISNULL(CURRNIDX, 0)
FROM DYNAMICS..MC40200 (NOLOCK)
WHERE CURNCYID = @I_vCURNCYID;
IF ((@CURRNIDX = 0) OR (@I_vCURNCYID = ''))
BEGIN
SELECT @O_iErrorState = 761;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
IF (@I_vXCHGRATE < 0)
BEGIN
SELECT @O_iErrorState = 5597;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrorState OUTPUT;
END;
IF ((@I_vDSCDLRAM > @I_vPRCHAMNT) OR (@I_vDSCDLRAM < 0))
BEGIN
SELECT @O_iErrorState = 4608;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
IF ((@I_vDSCDLRAM > 0) AND (@I_vPRCTDISC > 0))
BEGIN
SELECT @O_iErrorState = 4637;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
IF ((@I_vDISAMTAV > @I_vPRCHAMNT) OR (@I_vDISAMTAV < 0))
BEGIN
SELECT @O_iErrorState = 4609;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState 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;
IF (
(
@I_vCAMTDATE <> ''
AND @I_vCAMTDATE <> @I_vDOCDATE
)
OR
(
@I_vCHEKDATE <> ''
AND @I_vCHEKDATE <> @I_vDOCDATE
)
OR
(
@I_vCRCARDDT <> ''
AND @I_vCRCARDDT <> @I_vDOCDATE
)
)
BEGIN
SELECT @O_iErrorState = 1323;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrorState OUTPUT;
BREAK;
END;
EXEC @iStatus = taMCCurrencyValidate @I_vMASTERID = @I_vVENDORID,
@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 = 0,
@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 = 265;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
BREAK;
END;
IF (@@error <> 0)
BEGIN
SELECT @O_iErrorState = 266;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
BREAK;
END;
END;
ELSE
BEGIN
SELECT @ISMCTRX = 0,
@I_vRATEEXPR = 0,
@I_vDYSTINCR = 0,
@I_vXCHGRATE = 1;
END;
IF (@I_vDOCTYPE NOT IN ( 4, 5 ))
BEGIN
IF (@I_vPYMTRMID IS NULL)
BEGIN
SELECT @I_vPYMTRMID = PYMTRMID
FROM PM00200 (NOLOCK)
WHERE VENDORID = @I_vVENDORID;
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_vPRCHAMNT * @SALPURCH),
@PymtTermAmnt = @PymtTermAmnt - (@I_vTRDISAMT * @DISCNTCB),
@PymtTermAmnt = @PymtTermAmnt + (@I_vFRTAMNT * @FREIGHT),
@PymtTermAmnt = @PymtTermAmnt + (@I_vMSCCHAMT * @MISC),
@PymtTermAmnt = @PymtTermAmnt + (@I_vTAXAMNT * (@TAX));
IF (
(@I_vPYMTRMID = '')
AND (@I_vDISAMTAV IS NULL)
AND (@I_vDSCDLRAM IS NULL)
AND (@I_vPRCTDISC IS NULL)
)
SELECT @I_vDISAMTAV = 0,
@I_vDSCDLRAM = 0,
@I_vPRCTDISC = 0;
IF (
(@I_vDISAMTAV IS NOT NULL)
AND
(
@I_vDSCDLRAM IS NULL
OR @I_vDSCDLRAM <> @I_vDISAMTAV
)
)
SELECT @I_vDSCDLRAM = 0;
IF (
(@I_vDISAMTAV IS NOT NULL)
AND
(
@I_vPRCTDISC IS NULL
OR ROUND((@I_vPRCTDISC / 100) * @PymtTermAmnt, @ORDECPLCUR) <> @I_vDISAMTAV
)
)
SELECT @I_vPRCTDISC = 0;
IF (
(
@I_vDSCDLRAM IS NOT NULL
AND @I_vDSCDLRAM <> 0
)
AND
(
@I_vPRCTDISC IS NOT NULL
AND @I_vPRCTDISC <> 0
)
)
BEGIN
SELECT @O_iErrorState = 4611;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
IF ((@I_vDSCDLRAM IS NOT NULL) AND (@I_vDISAMTAV IS NULL))
SELECT @I_vDISAMTAV = @I_vDSCDLRAM,
@I_vPRCTDISC = 0;
IF ((@I_vPRCTDISC IS NOT NULL) AND (@I_vDISAMTAV IS NULL))
SELECT @I_vDISAMTAV = ((@I_vPRCTDISC / 100) * @PymtTermAmnt),
@I_vDSCDLRAM = 0;
IF (
(@I_vPYMTRMID <> '')
AND (@I_vDISAMTAV IS NULL)
AND (@I_vDSCDLRAM IS NULL)
AND (@I_vPRCTDISC IS NULL)
)
BEGIN
SELECT @DSCLCTYP = DSCLCTYP,
@DSCDLRAM = DSCDLRAM,
@DSCPCTAM = DSCPCTAM
FROM SY03300 (NOLOCK)
WHERE PYMTRMID = @I_vPYMTRMID;
IF (@DSCLCTYP = 1)
BEGIN
SELECT @I_vPRCTDISC = @DSCPCTAM / 100,
@I_vDSCDLRAM = 0;
IF (@ISMCTRX = 1)
BEGIN
SELECT @ODISAMTAV = ROUND((@I_vPRCTDISC / 100) * @PymtTermAmnt, @ORDECPLCUR);
SELECT @ORDDLRAT = 0;
SELECT @I_vDISAMTAV = CASE
WHEN (@I_vRTCLCMTD = 0) THEN
ROUND(@ODISAMTAV * @I_vXCHGRATE, @DECPLCUR)
WHEN (@I_vRTCLCMTD = 1) THEN
ROUND(@ODISAMTAV / @I_vXCHGRATE, @DECPLCUR)
ELSE
0
END;
END;
ELSE
BEGIN
SELECT @I_vDISAMTAV = ROUND((@I_vPRCTDISC / 100) * @PymtTermAmnt, @DECPLCUR);
SELECT @ODISAMTAV = 0;
END;
END;
ELSE IF (@DSCLCTYP = 2)
BEGIN
SELECT @I_vPRCTDISC = 0;
IF (@ISMCTRX = 1)
BEGIN
SELECT @I_vDISAMTAV = @DSCDLRAM,
@I_vDSCDLRAM = @DSCDLRAM;
SELECT @ODISAMTAV = CASE
WHEN (@I_vRTCLCMTD = 0) THEN
ROUND(@I_vDISAMTAV / @I_vXCHGRATE, @ORDECPLCUR)
WHEN (@I_vRTCLCMTD = 1) THEN
ROUND(@I_vDISAMTAV * @I_vXCHGRATE, @ORDECPLCUR)
ELSE
0
END;
SELECT @ORDDLRAT = @ODISAMTAV;
END;
ELSE
BEGIN
SELECT @I_vDSCDLRAM = @DSCDLRAM,
@I_vDISAMTAV = @DSCDLRAM;
SELECT @ORDDLRAT = 0,
@ODISAMTAV = 0;
END;
END;
END;
ELSE IF (@ISMCTRX = 1)
BEGIN
SELECT @ODISAMTAV = @I_vDISAMTAV;
SELECT @I_vDISAMTAV = CASE
WHEN (@I_vRTCLCMTD = 0) THEN
ROUND(@ODISAMTAV * @I_vXCHGRATE, @DECPLCUR)
WHEN (@I_vRTCLCMTD = 1) THEN
ROUND(@ODISAMTAV / @I_vXCHGRATE, @DECPLCUR)
ELSE
0
END;
SELECT @ODISAMTAV = ROUND(@ODISAMTAV, @ORDECPLCUR);
IF (@I_vPRCTDISC = 0)
BEGIN
SELECT @ORDDLRAT = @ODISAMTAV,
@I_vDSCDLRAM = @I_vDISAMTAV;
END;
END;
ELSE
BEGIN
SELECT @I_vDISAMTAV = ROUND(@I_vDISAMTAV, @DECPLCUR);
IF (@I_vPRCTDISC = 0)
BEGIN
SELECT @I_vDSCDLRAM = @I_vDISAMTAV;
END;
END;
END;
ELSE
BEGIN
SELECT @I_vPYMTRMID = '',
@I_vDISAMTAV = 0,
@I_vDSCDLRAM = 0,
@I_vPRCTDISC = 0;
END;
IF (@ISMCTRX = 1)
SELECT @ORCTRXAM = @I_vCHRGAMNT,
@OPURAMT = @I_vPRCHAMNT,
@ORFRTAMT = @I_vFRTAMNT,
@OMISCAMT = @I_vMSCCHAMT,
@ORTAXAMT = @I_vTAXAMNT,
@ORCASAMT = @I_vCASHAMNT,
@ORCHKAMT = @I_vCHEKAMNT,
@ORCCDAMT = @I_vCRCRDAMT,
@ORDISTKN = @I_vDISTKNAM,
@ORTDISAM = @I_vTRDISAMT,
@OCHGAMT = @I_vCHRGAMNT,
@ORDOCAMT = @I_vDOCAMNT,
@OR1099AM = @I_vTEN99AMNT;
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 = 5373;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrorState OUTPUT;
END;
IF ((@I_vDOCTYPE < 1) OR (@I_vDOCTYPE > 5))
BEGIN
SELECT @O_iErrorState = 300;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
IF (
(@I_vDOCTYPE = 5)
AND
(
@I_vPYMTRMID <> ''
OR @I_vCASHAMNT <> 0
OR @I_vCHEKAMNT <> 0
OR @I_vCRCRDAMT <> 0
OR @I_vDISAMTAV <> 0
OR @I_vDISTKNAM <> 0
)
)
BEGIN
SELECT @O_iErrorState = 480;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
IF ((@I_vDOCTYPE = 4) AND (@I_vPYMTRMID <> ''))
BEGIN
SELECT @O_iErrorState = 1100;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
IF (@I_vRequesterTrx NOT IN ( 0, 1 ))
BEGIN
SELECT @O_iErrorState = 3725;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
SELECT @ADUPINNM = ISNULL(ADUPINNM, 0)
FROM PM40100 (NOLOCK)
WHERE UNIQKEY = '1';
IF (@I_vPSTGDATE = '')
SELECT @I_vPSTGDATE = @I_vDOCDATE;
IF (
(@I_vDUEDATE = '')
AND (@I_vPYMTRMID = '')
AND (@I_vDOCTYPE NOT IN ( 4, 5 ))
)
SELECT @I_vDUEDATE = @I_vDOCDATE;
IF (@I_vTax_Date = '')
SELECT @I_vTax_Date = @I_vDOCDATE;
SELECT @I_vPCHSCHID = CASE
WHEN (@I_vPCHSCHID = '') THEN
PCHSCHID
ELSE
@I_vPCHSCHID
END,
@I_vMSCSCHID = CASE
WHEN (@I_vMSCSCHID = '') THEN
MSCSCHID
ELSE
@I_vMSCSCHID
END,
@I_vFRTSCHID = CASE
WHEN (@I_vFRTSCHID = '') THEN
FRTSCHID
ELSE
@I_vFRTSCHID
END
FROM PM40100 (NOLOCK)
WHERE UNIQKEY = '1';
SELECT @CURTRXAM = @I_vCHRGAMNT;
IF (@I_vVENDORID = '')
BEGIN
SELECT @O_iErrorState = 255;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
IF NOT EXISTS
(
SELECT 1
FROM PM00200 (NOLOCK)
WHERE VENDORID = @I_vVENDORID
)
BEGIN
SELECT @O_iErrorState = 372;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
IF (@I_vDOCNUMBR = '')
BEGIN
SELECT @O_iErrorState = 257;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
IF ((@ADUPINNM = 1) OR (@ADUPINNM = 2))
BEGIN
IF EXISTS
(
SELECT 1
FROM PM00400 a (NOLOCK)
WHERE a.VENDORID = @I_vVENDORID
AND a.DOCNUMBR = @I_vDOCNUMBR
AND a.DOCTYPE <> 6
)
OR EXISTS
(
SELECT 1
FROM PM20000 a (NOLOCK)
WHERE a.VENDORID = @I_vVENDORID
AND a.DOCNUMBR = @I_vDOCNUMBR
AND a.DOCTYPE <> 6
)
OR EXISTS
(
SELECT 1
FROM PM10000 a (NOLOCK)
WHERE a.VENDORID = @I_vVENDORID
AND a.DOCNUMBR = @I_vDOCNUMBR
AND a.DOCTYPE <> 6
)
OR EXISTS
(
SELECT 1
FROM PM30200 a (NOLOCK)
WHERE a.VENDORID = @I_vVENDORID
AND a.DOCNUMBR = @I_vDOCNUMBR
AND a.DOCTYPE <> 6
)
OR EXISTS
(
SELECT 1
FROM POP10300 a (NOLOCK)
WHERE a.VENDORID = @I_vVENDORID
AND a.VNDDOCNM = @I_vDOCNUMBR
)
OR EXISTS
(
SELECT 1
FROM MC020103 a (NOLOCK)
WHERE a.DOCTYPE = @I_vDOCTYPE
AND a.VCHRNMBR = @I_vVCHNUMWK
)
BEGIN
SELECT @O_iErrorState = 305;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
END;
IF EXISTS
(
SELECT 1
FROM PM00400 a (NOLOCK)
WHERE a.CNTRLTYP = @CNTRLTYP
AND a.CNTRLNUM = @I_vVCHNUMWK
)
BEGIN
SELECT @O_iErrorState = 306;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
IF (@I_vDOCAMNT < 0)
BEGIN
SELECT @O_iErrorState = 307;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
IF (@I_vDOCAMNT <> @I_vMSCCHAMT + @I_vPRCHAMNT + @I_vTAXAMNT + @I_vFRTAMNT - @I_vTRDISAMT)
BEGIN
SELECT @O_iErrorState = 308;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
IF (@I_vCHRGAMNT <> @I_vDOCAMNT - @I_vCASHAMNT - @I_vCHEKAMNT - @I_vCRCRDAMT - @I_vDISTKNAM)
BEGIN
SELECT @O_iErrorState = 399;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
IF (@I_vTAXSCHID <> '')
BEGIN
IF NOT EXISTS
(
SELECT 1
FROM TX00102 (NOLOCK)
WHERE TAXSCHID = @I_vTAXSCHID
)
BEGIN
SELECT @O_iErrorState = 309;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrorState OUTPUT;
END;
END;
IF (@I_vPCHSCHID <> '')
BEGIN
IF NOT EXISTS
(
SELECT 1
FROM TX00102 (NOLOCK)
WHERE TAXSCHID = @I_vPCHSCHID
)
BEGIN
SELECT @O_iErrorState = 310;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrorState OUTPUT;
END;
END;
IF (@I_vMSCSCHID <> '')
BEGIN
IF NOT EXISTS
(
SELECT 1
FROM TX00102 (NOLOCK)
WHERE TAXSCHID = @I_vMSCSCHID
)
BEGIN
SELECT @O_iErrorState = 311;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrorState OUTPUT;
END;
END;
IF (@I_vFRTSCHID <> '')
BEGIN
IF NOT EXISTS
(
SELECT 1
FROM TX00102 (NOLOCK)
WHERE TAXSCHID = @I_vFRTSCHID
)
BEGIN
SELECT @O_iErrorState = 312;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrorState OUTPUT;
END;
END;
SELECT @TAXAMNT = ISNULL(SUM(TAXAMNT), 0.00)
FROM PM10500 (NOLOCK)
WHERE DOCTYPE = @I_vDOCTYPE
AND VCHRNMBR = @I_vVCHNUMWK
AND BKOUTTAX <> 1;
IF (@TAXAMNT <> @I_vTAXAMNT)
BEGIN
SELECT @O_iErrorState = 313;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrorState OUTPUT;
END;
IF EXISTS
(
SELECT 1
FROM PM10500 (NOLOCK)
WHERE DOCTYPE = @I_vDOCTYPE
AND VCHRNMBR = @I_vVCHNUMWK
AND BKOUTTAX = 1
)
BEGIN
SELECT @BKTPURAM = ISNULL(SUM(PCTAXAMT), 0),
@BKTFRTAM = ISNULL(SUM(FRTTXAMT), 0),
@BKTMSCAM = ISNULL(SUM(MSCTXAMT), 0)
FROM PM10500 (NOLOCK)
WHERE DOCTYPE = @I_vDOCTYPE
AND VCHRNMBR = @I_vVCHNUMWK
AND BKOUTTAX = 1;
IF (@ISMCTRX = 1)
BEGIN
SELECT @OBKPURAMT = @I_vPRCHAMNT - @BKTPURAM,
@ORBKTFRT = @I_vFRTAMNT - @BKTFRTAM,
@ORBKTMSC = @I_vMSCCHAMT - @BKTMSCAM;
END;
END;
IF (@I_vBACHNUMB = '')
BEGIN
SELECT @O_iErrorState = 314;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
IF (EXISTS
(
SELECT 1
FROM SY00500 (NOLOCK)
WHERE BACHNUMB = @I_vBACHNUMB
AND MKDTOPST <> 0
AND BCHSOURC = @BCHSOURC
)
)
BEGIN
SELECT @O_iErrorState = 316;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
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 = 5626;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrorState OUTPUT;
END;
END;
IF (@I_vDOCDATE = '')
BEGIN
SELECT @O_iErrorState = 317;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
IF (@I_vVADDCDPR <> '')
BEGIN
IF NOT EXISTS
(
SELECT 1
FROM PM00300 (NOLOCK)
WHERE VENDORID = @I_vVENDORID
AND ADRSCODE = @I_vVADDCDPR
)
BEGIN
SELECT @O_iErrorState = 318;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
END;
ELSE
BEGIN
SELECT @I_vVADDCDPR = VADDCDPR
FROM PM00200 (NOLOCK)
WHERE VENDORID = @I_vVENDORID;
END;
IF (@I_vVADCDTRO <> '')
BEGIN
IF NOT EXISTS
(
SELECT 1
FROM PM00300 (NOLOCK)
WHERE VENDORID = @I_vVENDORID
AND ADRSCODE = @I_vVADCDTRO
)
BEGIN
SELECT @O_iErrorState = 9286;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
END;
ELSE
BEGIN
SELECT @I_vVADCDTRO = VADCDTRO
FROM PM00200 (NOLOCK)
WHERE VENDORID = @I_vVENDORID;
END;
IF (@I_vPYMTRMID <> '')
BEGIN
IF (NOT EXISTS
(
SELECT 1
FROM SY03300 a (NOLOCK)
WHERE a.PYMTRMID = @I_vPYMTRMID
)
)
BEGIN
SELECT @O_iErrorState = 319;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
END;
IF ((@I_vPYMTRMID <> '') AND (@I_vDUEDATE = '' OR @I_vDISCDATE = ''))
BEGIN
EXEC @iStatus = taCalcDueDatePM @I_vVENDORID = @I_vVENDORID,
@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 = 4610;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
RETURN (@O_iErrorState);
END;
IF (@I_vDUEDATE = '')
SELECT @I_vDUEDATE = @dDUEDATE;
IF (@I_vDISCDATE = '')
SELECT @I_vDISCDATE = @dDISCDATE;
END;
IF ((@I_vPRCTDISC > 100) OR (@I_vPRCTDISC < 0))
BEGIN
SELECT @O_iErrorState = 4607;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
IF (@I_vBatchCHEKBKID <> '')
BEGIN
IF (NOT EXISTS
(
SELECT 1
FROM CM00100 (NOLOCK)
WHERE CHEKBKID = @I_vBatchCHEKBKID
)
)
BEGIN
SELECT @O_iErrorState = 361;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
IF (EXISTS
(
SELECT 1
FROM CM00100 (NOLOCK)
WHERE CHEKBKID = @I_vBatchCHEKBKID
AND INACTIVE = 1
)
)
BEGIN
SELECT @O_iErrorState = 9518;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
END;
IF (@I_vCAMCBKID <> '')
BEGIN
IF (NOT EXISTS
(
SELECT 1
FROM CM00100 (NOLOCK)
WHERE CHEKBKID = @I_vCAMCBKID
)
)
BEGIN
SELECT @O_iErrorState = 320;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
IF (EXISTS
(
SELECT 1
FROM CM00100 (NOLOCK)
WHERE CHEKBKID = @I_vCAMCBKID
AND INACTIVE = 1
)
)
BEGIN
SELECT @O_iErrorState = 9519;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
END;
IF (@I_vCHAMCBID <> '')
BEGIN
IF (NOT EXISTS
(
SELECT 1
FROM CM00100 (NOLOCK)
WHERE CHEKBKID = @I_vCHAMCBID
)
)
BEGIN
SELECT @O_iErrorState = 322;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
IF (EXISTS
(
SELECT 1
FROM CM00100 (NOLOCK)
WHERE CHEKBKID = @I_vCHAMCBID
AND INACTIVE = 1
)
)
BEGIN
SELECT @O_iErrorState = 9520;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
END;
IF (@I_vCHEKBKID <> '')
BEGIN
IF (NOT EXISTS
(
SELECT 1
FROM CM00100 (NOLOCK)
WHERE CHEKBKID = @I_vCHEKBKID
)
)
BEGIN
SELECT @O_iErrorState = 324;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
IF (EXISTS
(
SELECT 1
FROM CM00100 (NOLOCK)
WHERE CHEKBKID = @I_vCHEKBKID
AND INACTIVE = 1
)
)
BEGIN
SELECT @O_iErrorState = 9521;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
END;
IF (@I_vSHIPMTHD IS NULL)
BEGIN
SELECT @I_vSHIPMTHD = SHIPMTHD
FROM PM00200 (NOLOCK)
WHERE VENDORID = @I_vVENDORID;
SELECT @I_vSHIPMTHD = ISNULL(@I_vSHIPMTHD, '');
END;
IF (@I_vSHIPMTHD <> '')
BEGIN
IF (NOT EXISTS
(
SELECT 1
FROM SY03000 (NOLOCK)
WHERE SHIPMTHD = @I_vSHIPMTHD
)
)
BEGIN
EXEC @iStatus = taCreateShippingMethod @I_vSHIPMTHD = @I_vSHIPMTHD,
@I_vUpdateIfExists = 0,
@O_iErrorState = @iAddShippingErrState OUTPUT,
@oErrString = @iAddShippingErrString OUTPUT;
SELECT @iError = @@error;
IF ((@iStatus = 0) AND (@iError <> 0))
BEGIN
SELECT @iStatus = @iError;
END;
IF ((@iStatus <> 0) OR (@iAddShippingErrState <> 0))
BEGIN
SELECT @oErrString = RTRIM(@oErrString) + ' ' + LTRIM(RTRIM(@iAddShippingErrString));
SELECT @O_iErrorState = 326;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
END;
END;
IF ((@I_vCASHAMNT > 0) AND (@I_vCAMCBKID = ''))
BEGIN
SELECT @O_iErrorState = 327;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
IF ((@I_vCASHAMNT > 0) AND (@I_vCAMTDATE = ''))
BEGIN
SELECT @O_iErrorState = 328;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
IF ((@I_vCASHAMNT > 0) AND (@I_vCDOCNMBR = ''))
BEGIN
SELECT @O_iErrorState = 329;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
IF ((@I_vCASHAMNT > 0) AND (@I_vCAMPMTNM = ''))
BEGIN
SELECT @O_iErrorState = 330;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
IF ((@I_vCASHAMNT > 0) AND (@I_vCAMPMTNM <> ''))
BEGIN
IF (EXISTS
(
SELECT 1
FROM PM00400 (NOLOCK)
WHERE CNTRLTYP = 1
AND CNTRLNUM = @I_vCAMPMTNM
)
)
BEGIN
SELECT @O_iErrorState = 331;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
END;
IF (
(@I_vCASHAMNT = 0)
AND
(
@I_vCAMCBKID <> ''
OR @I_vCAMPMTNM <> ''
OR @I_vCAMTDATE <> ''
OR @I_vCDOCNMBR <> ''
)
)
BEGIN
SELECT @O_iErrorState = 332;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
IF ((@I_vCHEKAMNT > 0) AND (@I_vCHAMCBID = ''))
BEGIN
SELECT @O_iErrorState = 333;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
IF ((@I_vCHEKAMNT > 0) AND (@I_vCHEKDATE = ''))
BEGIN
SELECT @O_iErrorState = 334;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
IF ((@I_vCHEKAMNT > 0) AND (@I_vCAMPYNBR = ''))
BEGIN
SELECT @O_iErrorState = 335;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
IF ((@I_vCHEKAMNT > 0) AND (@I_vCHEKNMBR = ''))
BEGIN
SELECT @O_iErrorState = 336;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
IF ((@I_vCHEKAMNT > 0) AND (@I_vCAMPYNBR <> ''))
BEGIN
IF (EXISTS
(
SELECT 1
FROM PM00400 (NOLOCK)
WHERE CNTRLTYP = 1
AND CNTRLNUM = @I_vCAMPYNBR
)
)
BEGIN
SELECT @O_iErrorState = 337;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
IF (EXISTS
(
SELECT 1
FROM CM00100 (NOLOCK)
WHERE DUPCHNUM = 0
AND CHEKBKID = @I_vCHAMCBID
)
)
BEGIN
IF (EXISTS
(
SELECT 1
FROM PM00400 (NOLOCK)
WHERE DOCTYPE = 6
AND VENDORID = @I_vVENDORID
AND DOCNUMBR = @I_vCHEKNMBR
AND CHEKBKID = @I_vCHAMCBID
)
)
BEGIN
SELECT @O_iErrorState = 1643;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
END;
END;
IF (
(@I_vCHEKAMNT = 0)
AND
(
@I_vCHAMCBID <> ''
OR @I_vCHEKNMBR <> ''
OR @I_vCHEKDATE <> ''
OR @I_vCAMPYNBR <> ''
)
)
BEGIN
SELECT @O_iErrorState = 338;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
IF ((@I_vCRCRDAMT > 0) AND (@I_vCARDNAME = ''))
BEGIN
SELECT @O_iErrorState = 339;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
IF ((@I_vCRCRDAMT > 0) AND (@I_vCRCARDDT = ''))
BEGIN
SELECT @O_iErrorState = 340;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
IF ((@I_vCRCRDAMT > 0) AND (@I_vCCRCTNUM = ''))
BEGIN
SELECT @O_iErrorState = 341;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
IF ((@I_vCRCRDAMT > 0) AND (@I_vCCAMPYNM = ''))
BEGIN
SELECT @O_iErrorState = 342;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
IF ((@I_vCRCRDAMT > 0) AND (@I_vCCAMPYNM <> ''))
BEGIN
IF (EXISTS
(
SELECT 1
FROM PM00400 (NOLOCK)
WHERE CNTRLTYP = 0
AND CNTRLNUM = @I_vCCAMPYNM
)
)
BEGIN
SELECT @O_iErrorState = 343;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
END;
IF (@I_vCARDNAME <> '')
BEGIN
IF (NOT EXISTS
(
SELECT 1
FROM SY03100 (NOLOCK)
WHERE CARDNAME = @I_vCARDNAME
)
)
BEGIN
SELECT @O_iErrorState = 344;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
END;
IF (@I_vRATETPID <> '')
BEGIN
IF (NOT EXISTS
(
SELECT 1
FROM MC40100 (NOLOCK)
WHERE RATETPID = @I_vRATETPID
)
)
BEGIN
SELECT @O_iErrorState = 560;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
END;
IF (@I_vTEN99AMNT > 0)
BEGIN
IF (EXISTS
(
SELECT 1
FROM PM00200 (NOLOCK)
WHERE VENDORID = @I_vVENDORID
AND TEN99TYPE < 2
)
)
BEGIN
SELECT @O_iErrorState = 713;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
END;
IF (@I_vTEN99AMNT > 0)
AND (@I_vPRCHAMNT - @I_vTRDISAMT < @I_vTEN99AMNT)
BEGIN
SELECT @O_iErrorState = 714;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
IF (@I_vDOCTYPE <> 5)
BEGIN
SELECT @TEN99TYPE = TEN99TYPE,
@TEN99BOXNUMBER = TEN99BOXNUMBER
FROM PM00200 (NOLOCK)
WHERE VENDORID = @I_vVENDORID;
END;
IF (@O_iErrorState <> 0)
BEGIN
BREAK;
END;
INSERT PM00400
(
CNTRLNUM,
CNTRLTYP,
DCSTATUS,
DOCTYPE,
VENDORID,
DOCNUMBR,
TRXSORCE,
CHEKBKID,
DUEDATE,
DISCDATE,
BCHSOURC,
DOCDATE,
USERID
)
SELECT @I_vVCHNUMWK,
@CNTRLTYP,
@DCSTATUS,
@I_vDOCTYPE,
@I_vVENDORID,
@I_vDOCNUMBR,
'',
'',
@I_vDUEDATE,
@I_vDISCDATE,
@BCHSOURC,
@I_vDOCDATE,
@I_vMDFUSRID;
IF (@@error <> 0)
BEGIN
SELECT @O_iErrorState = 345;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
BREAK;
END;
IF (@I_vCAMPMTNM <> '')
BEGIN
INSERT PM00400
(
CNTRLNUM,
CNTRLTYP,
DCSTATUS,
DOCTYPE,
VENDORID,
DOCNUMBR,
TRXSORCE,
CHEKBKID,
BCHSOURC,
DOCDATE,
USERID
)
SELECT @I_vCAMPMTNM,
1,
@DCSTATUS,
6,
@I_vVENDORID,
@I_vCDOCNMBR,
'',
@I_vCAMCBKID,
@BCHSOURC,
@I_vCAMTDATE,
@I_vMDFUSRID;
IF (@@error <> 0)
BEGIN
SELECT @O_iErrorState = 346;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
BREAK;
END;
END;
IF (@I_vCAMPYNBR <> '')
BEGIN
INSERT PM00400
(
CNTRLNUM,
CNTRLTYP,
DCSTATUS,
DOCTYPE,
VENDORID,
DOCNUMBR,
TRXSORCE,
CHEKBKID,
BCHSOURC,
DOCDATE,
USERID
)
SELECT @I_vCAMPYNBR,
1,
@DCSTATUS,
6,
@I_vVENDORID,
@I_vCHEKNMBR,
'',
@I_vCHAMCBID,
@BCHSOURC,
@I_vCHEKDATE,
@I_vMDFUSRID;
IF (@@error <> 0)
BEGIN
SELECT @O_iErrorState = 347;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
BREAK;
END;
END;
SELECT @CreditCardVendorID = VENDORID,
@PYBLGRBX = PYBLGRBX,
@RCVBGRBX = RCVBGRBX
FROM SY03100 (NOLOCK)
WHERE CARDNAME = @I_vCARDNAME;
IF ((@I_vDOCTYPE IN ( 1, 2, 3, 4 )) AND (@I_vCCAMPYNM <> ''))
BEGIN
INSERT PM00400
(
CNTRLNUM,
CNTRLTYP,
DCSTATUS,
DOCTYPE,
VENDORID,
DOCNUMBR,
TRXSORCE,
CHEKBKID,
BCHSOURC,
DOCDATE,
USERID,
DUEDATE
)
SELECT @I_vCCAMPYNM,
CASE
WHEN @PYBLGRBX = 1 THEN
1
ELSE
0
END,
@DCSTATUS,
CASE
WHEN @I_vDOCTYPE = 4
AND @PYBLGRBX = 0 THEN
5
WHEN @PYBLGRBX = 1 THEN
6
ELSE
1
END,
CASE
WHEN @CreditCardVendorID <> '' THEN
@CreditCardVendorID
ELSE
@I_vVENDORID
END,
@I_vCCRCTNUM,
'',
'',
@BCHSOURC,
@I_vDOCDATE,
@I_vMDFUSRID,
@I_vDOCDATE;
IF (@@error <> 0)
BEGIN
SELECT @O_iErrorState = 348;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
BREAK;
END;
END;
IF (@I_vRequesterTrx = 0)
BEGIN
EXEC @iStatus = eConnectOutVerify @I_vDOCTYPE = 'Payables_Transaction',
@I_vINDEX1 = @I_vVCHNUMWK,
@I_vINDEX2 = @I_vBACHNUMB,
@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 = 1292;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrorState OUTPUT;
BREAK;
END;
END;
IF (@ISMCTRX = 1)
BEGIN
INSERT MC020103
(
DCSTATUS,
DOCTYPE,
VCHRNMBR,
PMNTNMBR,
DOCDATE,
VENDORID,
CURNCYID,
CURRNIDX,
RATETPID,
EXGTBLID,
XCHGRATE,
EXCHDATE,
TIME1,
RTCLCMTD,
ORCTRXAM,
OPURAMT,
ORFRTAMT,
OMISCAMT,
ORTAXAMT,
ORCASAMT,
ORCHKAMT,
ORCHKTTL,
ORCCDAMT,
ORAPPAMT,
ORDISTKN,
ORDATKN,
ORDDLRAT,
ORTDISAM,
ORWROFAM,
OBKPURAMT,
ORBKTFRT,
ORBKTMSC,
UNGANLOS,
RMMCERRS,
OCHGAMT,
ORDOCAMT,
ODISAMTAV,
ORGAPDISCTKN,
OTOTPAY,
OR1099AM,
DENXRATE,
MCTRXSTT,
OrigBackoutTradeDisc
)
SELECT 1,
@I_vDOCTYPE,
@I_vVCHNUMWK,
'',
@I_vDOCDATE,
@I_vVENDORID,
@I_vCURNCYID,
@CURRNIDX,
@I_vRATETPID,
@EXGTBLID,
@I_vXCHGRATE,
@I_vEXCHDATE,
@I_vTIME1,
@I_vRTCLCMTD,
@ORCTRXAM,
@OPURAMT,
@ORFRTAMT,
@OMISCAMT,
@ORTAXAMT,
@ORCASAMT,
@ORCHKAMT,
0,
@ORCCDAMT,
0,
@ORDISTKN,
0,
@ORDDLRAT,
@ORTDISAM,
0,
@OBKPURAMT,
@ORBKTFRT,
@ORBKTMSC,
0,
0,
@OCHGAMT,
@ORDOCAMT,
@ODISAMTAV,
0,
0,
@OR1099AM,
0,
0,
0;
IF (@@error <> 0)
BEGIN
SELECT @O_iErrorState = 264;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
BREAK;
END;
IF (@I_vXCHGRATE = 0)
BEGIN
SELECT @O_iErrorState = 552;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
BREAK;
END;
IF ((@ISMCTRX = 1) AND (@I_vRTCLCMTD = 0))
BEGIN
SELECT @I_vDOCAMNT
= ROUND(
(@I_vMSCCHAMT + @I_vPRCHAMNT + @I_vTAXAMNT + @I_vFRTAMNT - @I_vTRDISAMT) * @I_vXCHGRATE,
@DECPLCUR
);
SELECT @I_vPRCHAMNT = ROUND(@I_vPRCHAMNT * @I_vXCHGRATE, @DECPLCUR),
@BKTPURAM = ROUND(@BKTPURAM * @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_vTRDISAMT = ROUND(@I_vTRDISAMT * @I_vXCHGRATE, @DECPLCUR),
@I_vFRTAMNT = ROUND(@I_vFRTAMNT * @I_vXCHGRATE, @DECPLCUR),
@BKTFRTAM = ROUND(@BKTFRTAM * @I_vXCHGRATE, @DECPLCUR),
@I_vMSCCHAMT = ROUND(@I_vMSCCHAMT * @I_vXCHGRATE, @DECPLCUR),
@BKTMSCAM = ROUND(@BKTMSCAM * @I_vXCHGRATE, @DECPLCUR),
@I_vDISTKNAM = ROUND(@I_vDISTKNAM * @I_vXCHGRATE, @DECPLCUR),
@I_vTAXAMNT = ROUND(@I_vTAXAMNT * @I_vXCHGRATE, @DECPLCUR),
@CURTRXAM = ROUND(@CURTRXAM * @I_vXCHGRATE, @DECPLCUR);
END;
ELSE IF ((@ISMCTRX = 1) AND (@I_vRTCLCMTD = 1))
BEGIN
SELECT @I_vDOCAMNT
= ROUND(
(@I_vMSCCHAMT + @I_vPRCHAMNT + @I_vTAXAMNT + @I_vFRTAMNT - @I_vTRDISAMT) / @I_vXCHGRATE,
@DECPLCUR
);
SELECT @I_vPRCHAMNT = ROUND(@I_vPRCHAMNT / @I_vXCHGRATE, @DECPLCUR),
@BKTPURAM = ROUND(@BKTPURAM / @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_vTRDISAMT = ROUND(@I_vTRDISAMT / @I_vXCHGRATE, @DECPLCUR),
@I_vFRTAMNT = ROUND(@I_vFRTAMNT / @I_vXCHGRATE, @DECPLCUR),
@BKTFRTAM = ROUND(@BKTFRTAM / @I_vXCHGRATE, @DECPLCUR),
@I_vMSCCHAMT = ROUND(@I_vMSCCHAMT / @I_vXCHGRATE, @DECPLCUR),
@BKTMSCAM = ROUND(@BKTMSCAM / @I_vXCHGRATE, @DECPLCUR),
@I_vDISTKNAM = ROUND(@I_vDISTKNAM / @I_vXCHGRATE, @DECPLCUR),
@I_vTAXAMNT = ROUND(@I_vTAXAMNT / @I_vXCHGRATE, @DECPLCUR),
@CURTRXAM = ROUND(@CURTRXAM / @I_vXCHGRATE, @DECPLCUR);
END;
IF (@I_vDOCAMNT < 0.00)
BEGIN
SELECT @I_vDOCAMNT = 0.00;
END;
SELECT @I_vCHRGAMNT = @I_vDOCAMNT - @I_vCASHAMNT - @I_vCHEKAMNT - @I_vCRCRDAMT - @I_vDISTKNAM;
IF ((@ISMCTRX = 1) AND (@I_vRTCLCMTD = 0))
BEGIN
UPDATE PM10500
SET TAXAMNT = ROUND(TAXAMNT * @I_vXCHGRATE, @DECPLCUR),
ORTAXAMT = TAXAMNT,
PCTAXAMT = ROUND(PCTAXAMT * @I_vXCHGRATE, @DECPLCUR),
ORPURTAX = PCTAXAMT,
FRTTXAMT = ROUND(FRTTXAMT * @I_vXCHGRATE, @DECPLCUR),
ORFRTTAX = FRTTXAMT,
MSCTXAMT = ROUND(MSCTXAMT * @I_vXCHGRATE, @DECPLCUR),
ORMSCTAX = MSCTXAMT,
TDTTXPUR = CASE
WHEN TDTTXPUR <> 0 THEN
ROUND(TDTTXPUR * @I_vXCHGRATE, @DECPLCUR)
ELSE
ROUND(@PRCHAMNT * @I_vXCHGRATE, @DECPLCUR)
END,
ORTXBPUR = CASE
WHEN ORTXBPUR <> 0 THEN
ORTXBPUR
ELSE
@PRCHAMNT
END,
TXDTTPUR = CASE
WHEN TXDTTPUR <> 0 THEN
ROUND(TXDTTPUR * @I_vXCHGRATE, @DECPLCUR)
ELSE
ROUND(@PRCHAMNT * @I_vXCHGRATE, @DECPLCUR)
END,
ORTOTPUR = CASE
WHEN ORTOTPUR <> 0 THEN
ORTOTPUR
ELSE
@PRCHAMNT
END,
CURRNIDX = @CURRNIDX
WHERE VCHRNMBR = @I_vVCHNUMWK;
IF (@@error <> 0)
BEGIN
SELECT @O_iErrorState = 542;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
BREAK;
END;
UPDATE PM10100
SET DEBITAMT = ROUND(DEBITAMT * @I_vXCHGRATE, @DECPLCUR),
ORDBTAMT = DEBITAMT,
CRDTAMNT = ROUND(CRDTAMNT * @I_vXCHGRATE, @DECPLCUR),
ORCRDAMT = CRDTAMNT,
RATETPID = @I_vRATETPID,
EXGTBLID = @EXGTBLID,
XCHGRATE = @I_vXCHGRATE,
EXCHDATE = @I_vEXCHDATE,
TIME1 = @I_vTIME1,
RTCLCMTD = @I_vRTCLCMTD,
CURNCYID = CASE
WHEN @MCINSTALLED = 1 THEN
@I_vCURNCYID
ELSE
''
END,
CURRNIDX = @CURRNIDX
WHERE VCHRNMBR = @I_vVCHNUMWK;
IF (@@error <> 0)
BEGIN
SELECT @O_iErrorState = 934;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
BREAK;
END;
END;
ELSE IF ((@ISMCTRX = 1) AND (@I_vRTCLCMTD = 1))
BEGIN
UPDATE PM10500
SET TAXAMNT = ROUND(TAXAMNT / @I_vXCHGRATE, @DECPLCUR),
ORTAXAMT = TAXAMNT,
PCTAXAMT = ROUND(PCTAXAMT / @I_vXCHGRATE, @DECPLCUR),
ORPURTAX = PCTAXAMT,
FRTTXAMT = ROUND(FRTTXAMT / @I_vXCHGRATE, @DECPLCUR),
ORFRTTAX = FRTTXAMT,
MSCTXAMT = ROUND(MSCTXAMT / @I_vXCHGRATE, @DECPLCUR),
ORMSCTAX = MSCTXAMT,
TDTTXPUR = CASE
WHEN TDTTXPUR <> 0 THEN
ROUND(TDTTXPUR / @I_vXCHGRATE, @DECPLCUR)
ELSE
ROUND(@PRCHAMNT / @I_vXCHGRATE, @DECPLCUR)
END,
ORTXBPUR = CASE
WHEN ORTXBPUR <> 0 THEN
ORTXBPUR
ELSE
@PRCHAMNT
END,
TXDTTPUR = CASE
WHEN TXDTTPUR <> 0 THEN
ROUND(TXDTTPUR / @I_vXCHGRATE, @DECPLCUR)
ELSE
ROUND(@PRCHAMNT / @I_vXCHGRATE, @DECPLCUR)
END,
ORTOTPUR = CASE
WHEN ORTOTPUR <> 0 THEN
ORTOTPUR
ELSE
@PRCHAMNT
END,
CURRNIDX = @CURRNIDX
WHERE VCHRNMBR = @I_vVCHNUMWK;
IF (@@error <> 0)
BEGIN
SELECT @O_iErrorState = 543;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
BREAK;
END;
UPDATE PM10100
SET DEBITAMT = ROUND(DEBITAMT / @I_vXCHGRATE, @DECPLCUR),
ORDBTAMT = DEBITAMT,
CRDTAMNT = ROUND(CRDTAMNT / @I_vXCHGRATE, @DECPLCUR),
ORCRDAMT = CRDTAMNT,
RATETPID = @I_vRATETPID,
EXGTBLID = @EXGTBLID,
XCHGRATE = @I_vXCHGRATE,
EXCHDATE = @I_vEXCHDATE,
TIME1 = @I_vTIME1,
RTCLCMTD = @I_vRTCLCMTD,
CURNCYID = CASE
WHEN @MCINSTALLED = 1 THEN
@I_vCURNCYID
ELSE
''
END,
CURRNIDX = @CURRNIDX
WHERE VCHRNMBR = @I_vVCHNUMWK;
IF (@@error <> 0)
BEGIN
SELECT @O_iErrorState = 935;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
BREAK;
END;
END;
SELECT @I_vTAXAMNT = ISNULL(SUM(TAXAMNT), 0)
FROM PM10500 (NOLOCK)
WHERE VCHRNMBR = @I_vVCHNUMWK
AND DOCTYPE = @I_vDOCTYPE
AND BKOUTTAX <> 1;
UPDATE PM10000
SET TAXAMNT = @I_vTAXAMNT
WHERE VCHNUMWK = @I_vVCHNUMWK
AND BACHNUMB = @I_vBACHNUMB;
IF (@@error <> 0)
BEGIN
SELECT @O_iErrorState = 4018;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
BREAK;
END;
END;
ELSE
BEGIN
IF (NOT EXISTS
(
SELECT 1
FROM PM00200 (NOLOCK)
WHERE VENDORID = @I_vVENDORID
AND
(
CURNCYID = @I_vCURNCYID
OR CURNCYID = ''
)
)
)
BEGIN
UPDATE PM10100
SET CURNCYID = @I_vCURNCYID,
CURRNIDX = @CURRNIDX
WHERE VCHRNMBR = @I_vVCHNUMWK;
IF (@@error <> 0)
BEGIN
SELECT @O_iErrorState = 4019;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
BREAK;
END;
UPDATE PM10500
SET CURRNIDX = @CURRNIDX
WHERE VCHRNMBR = @I_vVCHNUMWK;
IF (@@error <> 0)
BEGIN
SELECT @O_iErrorState = 4020;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
BREAK;
END;
END;
END;
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 @I_vCURNCYID = '',
@CURRNIDX = 0;
END;
EXEC @iStatus = taPMDistributionCreate @I_vDOCTYPE = @I_vDOCTYPE,
@I_vVCHNUMWK = @I_vVCHNUMWK,
@I_vVENDORID = @I_vVENDORID,
@I_vCURRNIDX = @CURRNIDX,
@I_vCURNCYID = @I_vCURNCYID,
@I_vDECPLCUR = @DECPLCUR,
@I_vPTDUSRID = @I_vPTDUSRID,
@I_vPRCHAMNT = @I_vPRCHAMNT,
@I_vTRDISAMT = @I_vTRDISAMT,
@I_vFRTAMNT = @I_vFRTAMNT,
@I_vMSCCHAMT = @I_vMSCCHAMT,
@I_vDISTKNAM = @I_vDISTKNAM,
@I_vCASHAMNT = @I_vCASHAMNT,
@I_vCHEKAMNT = @I_vCHEKAMNT,
@I_vCRCRDAMT = @I_vCRCRDAMT,
@I_vDOCAMNT = @I_vDOCAMNT,
@I_vDISAMTAV = @I_vDISAMTAV,
@I_vGSTDSAMT = 0,
@I_vCAMCBKID = @I_vCAMCBKID,
@I_vCHAMCBID = @I_vCHAMCBID,
@I_vCARDNAME = @I_vCARDNAME,
@I_vRATETPID = @I_vRATETPID,
@I_vXCHGRATE = @I_vXCHGRATE,
@I_vEXCHDATE = @I_vEXCHDATE,
@I_vEXPNDATE = @I_vEXPNDATE,
@I_vEXGTBLID = @EXGTBLID,
@I_vTIME1 = @I_vTIME1,
@I_vORCASHAMNT = @ORCASAMT,
@I_vORCHEKAMNT = @ORCHKAMT,
@I_vORCRCRDAMT = @ORCCDAMT,
@I_vORDISTKNAM = @ORDISTKN,
@I_vORTRDISAMT = @ORTDISAM,
@I_vORMSCCHAMT = @OMISCAMT,
@I_vORFRTAMNT = @ORFRTAMT,
@I_vORTAXAMNT = @ORTAXAMT,
@I_vORPRCHAMNT = @OPURAMT,
@I_vORDOCAMNT = @ORDOCAMT,
@I_vORDISAMTAV = @ODISAMTAV,
@I_vRTCLCMTD = @I_vRTCLCMTD,
@I_vCMPANYID = @CMPANYID,
@I_vINTERID = @INTERID,
@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,
@iAddCodeErrState OUTPUT;
END;
SELECT @O_iErrorState = 349;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
BREAK;
END;
IF (@@error <> 0)
BEGIN
SELECT @O_iErrorState = 350;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
BREAK;
END;
BEGIN
IF EXISTS (SELECT Workflow_Type_Name FROM WF100001 WHERE FormID = 252)
AND EXISTS
(
SELECT 1
FROM WF100002
WHERE WF100002.ACTIVE = 1
AND Workflow_Type_Name =
(
SELECT Workflow_Type_Name FROM WF100001 WHERE FormID = 252
)
)
SELECT @Workflow_Status = 1;
ELSE
SELECT @Workflow_Status = 9;
END;
INSERT PM10000
(
BACHNUMB,
BCHSOURC,
VCHNUMWK,
VENDORID,
DOCNUMBR,
DOCTYPE,
SOURCDOC,
DOCAMNT,
DOCDATE,
PSTGDATE,
VADCDTRO,
VADDCDPR,
PYMTRMID,
TAXSCHID,
DUEDATE,
DSCDLRAM,
DISCDATE,
PRCHAMNT,
CHRGAMNT,
CASHAMNT,
CAMCBKID,
CDOCNMBR,
CAMTDATE,
CAMPMTNM,
CHEKAMNT,
CHAMCBID,
CHEKDATE,
CAMPYNBR,
CRCRDAMT,
CCAMPYNM,
CHEKNMBR,
CARDNAME,
CCRCTNUM,
CRCARDDT,
CURNCYID,
CHEKBKID,
TRXDSCRN,
TRDISAMT,
TAXAMNT,
FRTAMNT,
TEN99AMNT,
UN1099AM,
MSCCHAMT,
PORDNMBR,
SHIPMTHD,
DISAMTAV,
DISTKNAM,
APDSTKAM,
WROFAMNT,
CURTRXAM,
TXENGCLD,
GSTDSAMT,
PGRAMSBJ,
PPSAMDED,
PPSTAXRT,
POSTED,
PSTGSTUS,
APPLDAMT,
VCHRNMBR,
CNTRLTYP,
MODIFDT,
MDFUSRID,
POSTEDDT,
PTDUSRID,
NOTEINDX,
BKTFRTAM,
BKTMSCAM,
BKTPURAM,
PCHSCHID,
FRTSCHID,
MSCSCHID,
PRINTED,
PRCTDISC,
RETNAGAM,
ICTRX,
ICDISTS,
Tax_Date,
PRCHDATE,
CORRCTN,
SIMPLIFD,
CORRNXST,
VCHRNCOR,
BNKRCAMT,
APLYWITH,
Electronic,
ECTRX,
DocPrinted,
TaxInvReqd,
BackoutTradeDisc,
CBVAT,
TEN99TYPE,
TEN99BOXNUMBER,
Workflow_Status
)
SELECT @I_vBACHNUMB,
@BCHSOURC,
@I_vVCHNUMWK,
@I_vVENDORID,
@I_vDOCNUMBR,
@I_vDOCTYPE,
'',
@I_vDOCAMNT,
@I_vDOCDATE,
@I_vPSTGDATE,
CASE
WHEN @I_vDOCTYPE IN ( 4, 5 ) THEN
''
ELSE
@I_vVADCDTRO
END,
@I_vVADDCDPR,
@I_vPYMTRMID,
@I_vTAXSCHID,
@I_vDUEDATE,
@I_vDSCDLRAM,
@I_vDISCDATE,
@I_vPRCHAMNT,
@I_vCHRGAMNT,
@I_vCASHAMNT,
@I_vCAMCBKID,
@I_vCDOCNMBR,
@I_vCAMTDATE,
@I_vCAMPMTNM,
@I_vCHEKAMNT,
@I_vCHAMCBID,
@I_vCHEKDATE,
@I_vCAMPYNBR,
@I_vCRCRDAMT,
@I_vCCAMPYNM,
@I_vCHEKNMBR,
@I_vCARDNAME,
@I_vCCRCTNUM,
@I_vCRCARDDT,
CASE
WHEN @MCINSTALLED = 1 THEN
@I_vCURNCYID
ELSE
''
END,
@I_vCHEKBKID,
@I_vTRXDSCRN,
@I_vTRDISAMT,
@I_vTAXAMNT,
@I_vFRTAMNT,
@I_vTEN99AMNT,
@I_vTEN99AMNT,
@I_vMSCCHAMT,
@I_vPORDNMBR,
@I_vSHIPMTHD,
@I_vDISAMTAV,
@I_vDISTKNAM,
@I_vAPDSTKAM,
0,
@CURTRXAM,
1,
0,
0,
0,
0,
0,
20,
0,
@I_vVCHNUMWK,
@CNTRLTYP,
CONVERT(VARCHAR(12), GETDATE()),
@I_vMDFUSRID,
'',
@I_vPTDUSRID,
@NOTEINDX,
CASE
WHEN @BKTFRTAM > 0 THEN
@I_vFRTAMNT - @BKTFRTAM
ELSE
0
END,
CASE
WHEN @BKTMSCAM > 0 THEN
@I_vMSCCHAMT - @BKTMSCAM
ELSE
0
END,
CASE
WHEN @BKTPURAM > 0 THEN
@I_vPRCHAMNT - @BKTPURAM
ELSE
0
END,
@I_vPCHSCHID,
@I_vFRTSCHID,
@I_vMSCSCHID,
0,
@I_vPRCTDISC * 100.0,
0,
0,
0,
@I_vTax_Date,
'',
0,
0,
0,
'',
0,
0,
0,
0,
0,
0,
0,
0,
@TEN99TYPE,
@TEN99BOXNUMBER,
@Workflow_Status;
IF (@@error <> 0)
BEGIN
SELECT @O_iErrorState = 351;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
BREAK;
END;
SELECT @BACHNUMB = BACHNUMB
FROM SY00500 (NOLOCK)
WHERE BACHNUMB = @I_vBACHNUMB
AND BCHSOURC = 'PM_Trxent';
IF (@BACHNUMB <> '')
BEGIN
SELECT @BatchExists = 1;
END;
IF (@BatchExists = 1)
BEGIN
IF (@I_vBACHNUMB <> '' AND @I_vBatchCHEKBKID = '')
BEGIN
SELECT @checkbookid = CHEKBKID
FROM SY00500 (NOLOCK)
WHERE BACHNUMB = @I_vBACHNUMB
AND BCHSOURC = 'PM_Trxent';
SELECT @I_vBatchCHEKBKID = @checkbookid;
END;
ELSE
BEGIN
SELECT @checkbookid = CHEKBKID
FROM SY00500 (NOLOCK)
WHERE BACHNUMB = @I_vBACHNUMB
AND BCHSOURC = 'PM_Trxent';
END;
END;
ELSE
BEGIN
IF @I_vBatchCHEKBKID = ''
BEGIN
SELECT @I_vBatchCHEKBKID = CHEKBKID
FROM PM40100 (NOLOCK)
WHERE UNIQKEY = '1';
SELECT @checkbookid = @I_vBatchCHEKBKID;
BEGIN
IF (@I_vBatchCHEKBKID = '')
BEGIN
SELECT @O_iErrorState = 11479;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
END;
END;
ELSE
BEGIN
SELECT @checkbookid = @I_vBatchCHEKBKID;
END;
END;
IF (@I_vBatchCHEKBKID <> @checkbookid)
BEGIN
SELECT @O_iErrorState = 11986;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
END;
EXEC @iStatus = taCreateUpdateBatchHeaderRcd @I_vBACHNUMB = @I_vBACHNUMB,
@I_vSERIES = 4,
@I_vGLPOSTDT = @I_vPSTGDATE,
@I_vBCHSOURC = 'PM_Trxent',
@I_vDOCAMT = @I_vDOCAMNT,
@I_vORIGIN = 1,
@I_vNUMOFTRX = 1,
@I_vCHEKBKID = @I_vBatchCHEKBKID,
@O_iErrorState = @iAddBatchErrState OUTPUT,
@oErrString = @iCreateBatchErrString OUTPUT;
IF ((@iAddBatchErrState <> 0) OR (@iStatus <> 0))
BEGIN
IF (@iAddBatchErrState = 12012)
BEGIN
EXEC @iStatus = taUpdateString @iAddBatchErrState,
@oErrString,
@oErrString OUTPUT,
@O_oErrorState OUTPUT;
END;
SELECT @O_iErrorState = 352;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@iAddCodeErrState OUTPUT;
BREAK;
END;
SELECT @iStatement = 1;
BREAK;
END;
IF (@O_iErrorState <> 0)
RETURN (@O_iErrorState);
EXEC @iStatus = taPMTransactionInsertPost @I_vBACHNUMB,
@I_vVCHNUMWK,
@I_vVENDORID,
@I_vDOCNUMBR,
@I_vDOCTYPE,
@I_vDOCAMNT,
@I_vDOCDATE,
@I_vPSTGDATE,
@I_vVADCDTRO,
@I_vVADDCDPR,
@I_vPYMTRMID,
@I_vTAXSCHID,
@I_vDUEDATE,
@I_vDSCDLRAM,
@I_vDISCDATE,
@I_vPRCHAMNT,
@I_vCHRGAMNT,
@I_vCASHAMNT,
@I_vCAMCBKID,
@I_vCDOCNMBR,
@I_vCAMTDATE,
@I_vCAMPMTNM,
@I_vCHEKAMNT,
@I_vCHAMCBID,
@I_vCHEKDATE,
@I_vCAMPYNBR,
@I_vCRCRDAMT,
@I_vCCAMPYNM,
@I_vCHEKNMBR,
@I_vCARDNAME,
@I_vCCRCTNUM,
@I_vCRCARDDT,
@I_vCHEKBKID,
@I_vTRXDSCRN,
@I_vTRDISAMT,
@I_vTAXAMNT,
@I_vFRTAMNT,
@I_vTEN99AMNT,
@I_vMSCCHAMT,
@I_vPORDNMBR,
@I_vSHIPMTHD,
@I_vDISAMTAV,
@I_vDISTKNAM,
@I_vAPDSTKAM,
@I_vMDFUSRID,
@I_vPOSTEDDT,
@I_vPTDUSRID,
@I_vPCHSCHID,
@I_vFRTSCHID,
@I_vMSCSCHID,
@I_vPRCTDISC,
@I_vTax_Date,
@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_vBatchCHEKBKID,
@I_vCREATEDIST,
@I_vRequesterTrx,
@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 = 154;
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 = 'Payables_Transaction',
@I_vINDEX1 = @I_vVCHNUMWK,
@I_vINDEX2 = @I_vBACHNUMB,
@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 = 3343;
EXEC @iStatus = taUpdateString @O_iErrorState,
@oErrString,
@oErrString OUTPUT,
@O_oErrorState OUTPUT;
RETURN (@O_iErrorState);
END;
END;
RETURN (@O_iErrorState);