ALTER PROCEDURE dbo.CM_BRANCH_Ins @p_FATHER_ID varchar(15) = NULL, @p_IS_POTENTIAL varchar(1) = NULL, @p_BRANCH_CODE varchar(10) = NULL, @p_BRANCH_NAME nvarchar(200) = NULL, @p_REGION_ID varchar(15) = NULL, @p_BRANCH_TYPE varchar(5) = NULL, @p_ADDR nvarchar(200) = NULL, @p_TEL varchar(20) = NULL, @p_NOTES nvarchar(1000) = NULL, @p_RECORD_STATUS varchar(1) = NULL, @p_MAKER_ID varchar(15) = NULL, @p_CREATE_DT VARCHAR(20) = NULL, @p_AUTH_STATUS varchar(50) = NULL, @p_CHECKER_ID varchar(15) = NULL, @p_TAX_NO varchar(50) = NULL, @p_APPROVE_DT VARCHAR(20) = NULL AS --Validation is here DECLARE @ERRORSYS NVARCHAR(15) = '' IF ( EXISTS ( SELECT * FROM CM_BRANCH WHERE BRANCH_CODE = @p_BRANCH_CODE)) SET @ERRORSYS = 'CMCD-00001' ELSE IF( EXISTS (SELECT * FROM CM_BRANCH WHERE @p_TAX_NO IS NOT NULL AND @p_TAX_NO != '' AND TAX_NO = @p_TAX_NO)) SET @ERRORSYS = 'BRN-001' IF @ERRORSYS <> '' BEGIN SELECT ErrorCode Result, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS RETURN '0' END BEGIN TRANSACTION DECLARE @l_BRANCH_ID VARCHAR(15) EXEC SYS_CodeMasters_Gen 'CM_BRANCH', @l_BRANCH_ID out IF @l_BRANCH_ID='' OR @l_BRANCH_ID IS NULL GOTO ABORT INSERT INTO CM_BRANCH([BRANCH_ID],[FATHER_ID],[IS_POTENTIAL],[BRANCH_CODE],[TAX_NO],[BRANCH_NAME],[REGION_ID],[BRANCH_TYPE],[ADDR],[TEL],[NOTES],[RECORD_STATUS],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT]) VALUES(@l_BRANCH_ID ,@p_FATHER_ID, @p_IS_POTENTIAL ,@p_BRANCH_CODE, @p_TAX_NO ,@p_BRANCH_NAME ,@p_REGION_ID ,@p_BRANCH_TYPE ,@p_ADDR ,@p_TEL ,@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) ) IF @@Error <> 0 GOTO ABORT DECLARE @DMMS_ID VARCHAR(20) -- KIỂM TRA XEM ĐÃ KHAI BÁO ĐƠN VỊ / CHI NHÁNH NÀY TRONG CM_DMMS HAY CHƯA IF(NOT EXISTS (SELECT * FROM CM_DMMS WHERE BRANCH_ID =@l_BRANCH_ID)) BEGIN EXEC SYS_CodeMasters_Gen 'CM_DMMS', @DMMS_ID out INSERT INTO CM_DMMS (DMMS_ID,BRANCH_ID, DEP_ID,DVDM_ID) VALUES (@DMMS_ID,@l_BRANCH_ID,(SELECT TOP 1 DEP_ID FROM CM_DEPARTMENT WHERE BRANCH_ID =@l_BRANCH_ID),'') END COMMIT TRANSACTION SELECT '0' as Result, @l_BRANCH_ID Id, '' ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' Id, '' ErrorDesc RETURN '-1' End