taIVTransferHeaderInsert

This is the decrypted taIVTransferHeaderInsert from GP2018
/****** Object:  StoredProcedure [dbo].[taIVTransferHeaderInsert]    Script Date: 9/26/2024 2:28:56 PM ******/
SET ANSI_NULLS ON;
GO
SET QUOTED_IDENTIFIER ON;
GO
ALTER PROCEDURE [dbo].[taIVTransferHeaderInsert]
    @I_vBACHNUMB CHAR(15),
    @I_vIVDOCNBR CHAR(17),
    @I_vDOCDATE DATETIME,
    @I_vPOSTTOGL TINYINT = 0,
    @I_vRequesterTrx SMALLINT = 0,
    @I_vUSRDEFND1 CHAR(50) = '',
    @I_vUSRDEFND2 CHAR(50) = '',
    @I_vUSRDEFND3 CHAR(50) = '',
    @I_vUSRDEFND4 CHAR(8000) = '',
    @I_vUSRDEFND5 CHAR(8000) = '',
    @O_iErrorState INT OUTPUT,
    @oErrString VARCHAR(255) OUTPUT
AS
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
SET NOCOUNT ON;
DECLARE @IVDOCTYP SMALLINT,
        @BCHSOURC CHAR(15),
        @iStatus INT,
        @iAddCodeErrState INT,
        @iStatement INT,
        @O_oErrorState INT,
        @sCompanyID SMALLINT,
        @nNextNoteIndex NUMERIC(19, 5),
        @iGetNextNoteIdxErrState INT,
        @TRXTOTAL NUMERIC(19, 5),
        @iUpdtBthErrState INT,
        @iCustomState INT,
        @iCustomErrString VARCHAR(255),
        @iCreateBatchErrString VARCHAR(255),
        @iError INT,
        @DBName CHAR(50),
        @O_iInitErrorState INT,
        @oInitErrString VARCHAR(255),
        @O_iErrorStateAASub INT,
        @O_iErrorStringAASub VARCHAR(255),
        @itaProcessAnalyticsErrState INT,
        @itaProcessAnalyticsErrString VARCHAR(8000),
        @aaSubLedgerHdrID INT,
        @CURNCYID CHAR(15),
        @CURRNIDX INT,
        @INTERID CHAR(5);
SELECT @IVDOCTYP = 3,
       @BCHSOURC = 'IV_Trans',
       @iStatus = 0,
       @iAddCodeErrState = 0,
       @O_oErrorState = 0,
       @iStatement = 0,
       @TRXTOTAL = 0,
       @iUpdtBthErrState = 0,
       @O_iErrorState = 0,
       @O_iErrorStateAASub = 0,
       @O_iErrorStringAASub = '',
       @itaProcessAnalyticsErrState = 0,
       @itaProcessAnalyticsErrString = '',
       @aaSubLedgerHdrID = 0,
       @CURNCYID = '',
       @CURRNIDX = 0,
       @INTERID = '';
IF (@oErrString IS NULL)
BEGIN
    SELECT @oErrString = '';
END;
SELECT @DBName = DB_NAME();
EXEC @iStatus = taIVTransferHeaderInsertPre @I_vBACHNUMB OUTPUT,
                                            @I_vIVDOCNBR OUTPUT,
                                            @I_vDOCDATE OUTPUT,
                                            @I_vPOSTTOGL 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 = 1352;
    EXEC @iStatus = taUpdateString @O_iErrorState,
                                   @oErrString,
                                   @oErrString OUTPUT,
                                   @O_oErrorState OUTPUT;
    RETURN (@O_iErrorState);
END;
IF (
       @I_vBACHNUMB IS NULL
       OR @I_vIVDOCNBR IS NULL
       OR @I_vDOCDATE IS NULL
       OR @I_vPOSTTOGL IS NULL
       OR @I_vRequesterTrx IS NULL
   )
BEGIN
    SELECT @O_iErrorState = 1353;
    EXEC @iStatus = taUpdateString @O_iErrorState,
                                   @oErrString,
                                   @oErrString OUTPUT,
                                   @O_oErrorState OUTPUT;
END;
SELECT @I_vBACHNUMB = UPPER(@I_vBACHNUMB),
       @I_vIVDOCNBR = UPPER(@I_vIVDOCNBR);
IF NOT EXISTS (SELECT 1 FROM MC40000 (NOLOCK))
BEGIN
    SELECT @O_iErrorState = 7047;
    EXEC @iStatus = taUpdateString @O_iErrorState,
                                   @oErrString,
                                   @oErrString OUTPUT,
                                   @O_oErrorState OUTPUT;
END;
IF (@I_vBACHNUMB = '')
BEGIN
    SELECT @O_iErrorState = 1354;
    EXEC @iStatus = taUpdateString @O_iErrorState,
                                   @oErrString,
                                   @oErrString OUTPUT,
                                   @O_oErrorState OUTPUT;
END;
IF (EXISTS
(
    SELECT 1
    FROM SY00500 (NOLOCK)
    WHERE BACHNUMB = @I_vBACHNUMB
          AND MKDTOPST <> 0
          AND BCHSOURC = @BCHSOURC
)
   )
BEGIN
    SELECT @O_iErrorState = 1356;
    EXEC @iStatus = taUpdateString @O_iErrorState,
                                   @oErrString,
                                   @oErrString OUTPUT,
                                   @iAddCodeErrState OUTPUT;
END;
IF (@I_vIVDOCNBR = '')
BEGIN
    SELECT @O_iErrorState = 1357;
    EXEC @iStatus = taUpdateString @O_iErrorState,
                                   @oErrString,
                                   @oErrString OUTPUT,
                                   @O_oErrorState OUTPUT;
END;
IF EXISTS
(
    SELECT 1
    FROM IV10000 (NOLOCK)
    WHERE IVDOCTYP = @IVDOCTYP
          AND IVDOCNBR = @I_vIVDOCNBR
)
   OR EXISTS
(
    SELECT 1
    FROM IV30200 (NOLOCK)
    WHERE IVDOCTYP = @IVDOCTYP
          AND DOCNUMBR = @I_vIVDOCNBR
)
BEGIN
    SELECT @O_iErrorState = 1358;
    EXEC @iStatus = taUpdateString @O_iErrorState,
                                   @oErrString,
                                   @oErrString OUTPUT,
                                   @O_oErrorState OUTPUT;
END;
SELECT @INTERID = INTERID,
       @sCompanyID = CMPANYID
FROM DYNAMICS..SY01500 (NOLOCK)
WHERE INTERID = DB_NAME();
EXEC @iStatus = DYNAMICS..tasmGetNextNoteIndex @I_sCompanyID = @sCompanyID,
                                               @I_iSQLSessionID = 0,
                                               @I_noteincrement = 1,
                                               @O_mNoteIndex = @nNextNoteIndex 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 = 1359;
    EXEC @iStatus = taUpdateString @O_iErrorState,
                                   @oErrString,
                                   @oErrString OUTPUT,
                                   @O_oErrorState OUTPUT;
    RETURN (@O_iErrorState);
END;
SELECT @TRXTOTAL = ISNULL(SUM(TRXQTY), 0)
FROM IV10001 (NOLOCK)
WHERE IVDOCTYP = @IVDOCTYP
      AND IVDOCNBR = @I_vIVDOCNBR
      AND TRXQTY > 0;
IF (@TRXTOTAL < 0)
BEGIN
    SELECT @O_iErrorState = 1355;
    EXEC @iStatus = taUpdateString @O_iErrorState,
                                   @oErrString,
                                   @oErrString OUTPUT,
                                   @O_oErrorState OUTPUT;
END;
IF (@I_vRequesterTrx < 0 OR @I_vRequesterTrx > 1)
BEGIN
    SELECT @O_iErrorState = 3703;
    EXEC @iStatus = taUpdateString @O_iErrorState,
                                   @oErrString,
                                   @oErrString OUTPUT,
                                   @iAddCodeErrState OUTPUT;
END;
IF (@O_iErrorState <> 0)
BEGIN
    RETURN (@O_iErrorState);
END;
IF (@I_vRequesterTrx = 0)
BEGIN
    EXEC @iStatus = eConnectOutVerify @I_vDOCTYPE = 'IV_Transaction',
                                      @I_vINDEX1 = @I_vIVDOCNBR,
                                      @I_vINDEX2 = @IVDOCTYP,
                                      @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 = 2925;
        EXEC @iStatus = taUpdateString @O_iErrorState,
                                       @oErrString,
                                       @oErrString OUTPUT,
                                       @O_oErrorState OUTPUT;
        RETURN (@O_iErrorState);
    END;
END;
EXEC @iStatus = taCreateUpdateBatchHeaderRcd @I_vBACHNUMB = @I_vBACHNUMB,
                                             @I_vSERIES = 5,
                                             @I_vGLPOSTDT = @I_vDOCDATE,
                                             @I_vBCHSOURC = @BCHSOURC,
                                             @I_vDOCAMT = @TRXTOTAL,
                                             @I_vORIGIN = 2,
                                             @I_vNUMOFTRX = 1,
                                             @I_vCHEKBKID = '',
                                             @I_vPOSTTOGL = @I_vPOSTTOGL,
                                             @O_iErrorState = @iUpdtBthErrState OUTPUT,
                                             @oErrString = @iCreateBatchErrString OUTPUT;
SELECT @iError = @@error;
IF @iStatus = 0
   AND @iError <> 0
    SELECT @iStatus = @iError;
IF (@iStatus <> 0)
   OR (@iUpdtBthErrState <> 0)
BEGIN
    IF (@iUpdtBthErrState <> 0)
    BEGIN
        EXEC @iStatus = taUpdateString @iUpdtBthErrState,
                                       @oErrString,
                                       @oErrString OUTPUT,
                                       @O_oErrorState OUTPUT;
    END;
    SELECT @O_iErrorState = 1360;
    EXEC @iStatus = taUpdateString @O_iErrorState,
                                   @oErrString,
                                   @oErrString OUTPUT,
                                   @O_oErrorState OUTPUT;
    RETURN (@O_iErrorState);
END;
INSERT INTO IV10000
(
    BACHNUMB,
    BCHSOURC,
    IVDOCNBR,
    RCDOCNUM,
    IVDOCTYP,
    DOCDATE,
    MODIFDT,
    MDFUSRID,
    PTDUSRID,
    GLPOSTDT,
    PSTGSTUS,
    TRXQTYTL,
    NOTEINDX,
    SRCRFRNCNMBR,
    SOURCEINDICATOR
)
SELECT @I_vBACHNUMB,
       @BCHSOURC,
       @I_vIVDOCNBR,
       @I_vIVDOCNBR,
       @IVDOCTYP,
       @I_vDOCDATE,
       CONVERT(VARCHAR(12), GETDATE()),
       '',
       '',
       @I_vDOCDATE,
       0,
       @TRXTOTAL,
       @nNextNoteIndex,
       '',
       1;
IF @@error <> 0
BEGIN
    SELECT @O_iErrorState = 1361;
    SELECT @iStatement = 1;
    EXEC @iStatus = taUpdateString @O_iErrorState,
                                   @oErrString,
                                   @oErrString OUTPUT,
                                   @iAddCodeErrState OUTPUT;
    RETURN (@O_iErrorState);
END;
IF EXISTS
(
    SELECT 1
    FROM DYNAMICS..sysobjects (NOLOCK)
    WHERE name = 'AAG00102'
)
BEGIN
    IF EXISTS
    (
        SELECT 1
        FROM DYNAMICS..AAG00102 (NOLOCK)
        WHERE CMPANYID = @sCompanyID
    )
    BEGIN
        EXEC @iStatus = aagCreateSubWorkDist @aaSubLedgerHdrID OUT,
                                             0,
                                             3,
                                             @I_vIVDOCNBR,
                                             '',
                                             10001,
                                             5,
                                             @sCompanyID,
                                             0,
                                             @CURNCYID,
                                             @CURRNIDX,
                                             '',
                                             '',
                                             0,
                                             '',
                                             '',
                                             '',
                                             0,
                                             0,
                                             0,
                                             1,
                                             @INTERID,
                                             0,
                                             0,
                                             '',
                                             @O_iErrorStateAASub OUTPUT,
                                             @O_iErrorStringAASub OUTPUT;
        IF (@@error <> 0)
        BEGIN
            SELECT @O_iErrorState = 9443;
            EXEC @iStatus = taUpdateString @O_iErrorState,
                                           @oErrString,
                                           @oErrString OUTPUT,
                                           @O_oErrorState OUTPUT;
            RETURN (@O_iErrorState);
        END;
        IF @aaSubLedgerHdrID <> 0
        BEGIN
            EXEC @iStatus = taProcessAnalytics @I_vDOCNMBR = @I_vIVDOCNBR,
                                               @I_vKey = @I_vIVDOCNBR,
                                               @I_vDOCTYPE = 0,
                                               @O_iErrorState = @itaProcessAnalyticsErrState OUTPUT,
                                               @oErrString = @itaProcessAnalyticsErrString OUTPUT;
            SELECT @iError = @@error;
            IF (
                   (@iStatus <> 0)
                   OR (@itaProcessAnalyticsErrState <> 0)
                   OR (@iError <> 0)
               )
            BEGIN
                SELECT @oErrString = RTRIM(@oErrString) + ' ' + @itaProcessAnalyticsErrString;
                SELECT @O_iErrorState = 9444;
                EXEC @iStatus = taUpdateString @O_iErrorState,
                                               @oErrString,
                                               @oErrString OUTPUT,
                                               @O_oErrorState OUTPUT;
                RETURN (@O_iErrorState);
            END;
        END;
    END;
END;
EXEC @iStatus = taIVTransferHeaderInsertPost @I_vBACHNUMB,
                                             @I_vIVDOCNBR,
                                             @I_vDOCDATE,
                                             @I_vPOSTTOGL,
                                             @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 = 1362;
    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 = 'IV_Transaction',
                                      @I_vINDEX1 = @I_vIVDOCNBR,
                                      @I_vINDEX2 = @IVDOCTYP,
                                      @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 = 2926;
        EXEC @iStatus = taUpdateString @O_iErrorState,
                                       @oErrString,
                                       @oErrString OUTPUT,
                                       @O_oErrorState OUTPUT;
        RETURN (@O_iErrorState);
    END;
END;
RETURN (@O_iErrorState);

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