ALTER PROCEDURE dbo.CM_GOODS_Ins @p_GD_CODE varchar(150) = NULL, @p_GD_NAME nvarchar(200) = NULL, @p_GD_TYPE_ID varchar(15) = NULL, @p_DESCRIPTION nvarchar(2000) = NULL, @p_SUP_ID varchar(15) = NULL, @p_PRICE decimal(18) = NULL, @p_UNIT_ID varchar(15) = NULL, @p_NOTES nvarchar(1000) = NULL, @p_RECORD_STATUS varchar(1) = NULL, @p_MAKER_ID varchar(12) = NULL, @p_CREATE_DT VARCHAR(20) = NULL, @p_AUTH_STATUS varchar(50) = NULL, @p_CHECKER_ID varchar(12) = NULL, @p_APPROVE_DT VARCHAR(20) = NULL, @p_MONTHLY_ALLOCATED VARCHAR(20) = NULL, @p_DVDM_ID VARCHAR(20) = NULL AS DECLARE @l_GD_ID VARCHAR(15) DECLARE @ERRORSYS NVARCHAR(15) = '' IF ( EXISTS ( SELECT * FROM CM_GOODS WHERE GD_CODE = @p_GD_CODE AND RECORD_STATUS = '1')) SET @ERRORSYS = 'CMCD-00001' IF @ERRORSYS <> '' BEGIN SELECT ErrorCode Result, '' ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS RETURN '0' END BEGIN TRANSACTION EXEC SYS_CodeMasters_Gen 'CM_GOODS', @l_GD_ID out IF @l_GD_ID='' OR @l_GD_ID IS NULL GOTO ABORT INSERT INTO CM_GOODS([GD_ID],[GD_CODE],[GD_NAME],[GD_TYPE_ID],[DESCRIPTION],[SUP_ID],[PRICE],[UNIT_ID],[NOTES],[RECORD_STATUS],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[MONTHLY_ALLOCATED],[DVDM_ID]) VALUES(@l_GD_ID ,@p_GD_CODE ,@p_GD_NAME ,@p_GD_TYPE_ID ,@p_DESCRIPTION ,@p_SUP_ID ,@p_PRICE ,@p_UNIT_ID ,@p_NOTES ,@p_RECORD_STATUS ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_AUTH_STATUS ,@p_CHECKER_ID ,CONVERT(DATETIME, @p_APPROVE_DT, 103),@p_MONTHLY_ALLOCATED,@p_DVDM_ID) INSERT INTO CM_GOOD_DVDM (GD_ID, DVDM_ID) VALUES(@l_GD_ID,@p_DVDM_ID) IF @@Error <> 0 GOTO ABORT COMMIT TRANSACTION SELECT 0 as Result, @l_GD_ID ID, '' ErrorDesc RETURN 0 ABORT: BEGIN ROLLBACK TRANSACTION SELECT -1 as Result, '' ID, '' ErrorDesc RETURN -1 End