ALTER PROCEDURE dbo.CM_SUPPLIER_Ins @p_SUP_CODE varchar(15) = NULL, @p_SUP_NAME NVARCHAR(300) = NULL, @p_SUP_TYPE_ID varchar(15) = NULL, @p_REGION_ID varchar(15) = NULL, @p_ADDR nvarchar(200) = NULL, @p_EMAIL varchar(50) = NULL, @p_TAX_NO varchar(20) = NULL, @p_TEL varchar(20) = NULL, @p_CONTACT_PERSON nvarchar(200) = NULL, @p_DISCIPLINES VARCHAR(15) = NULL, @p_NOTES nvarchar(1000) = NULL, @p_RECORD_STATUS varchar(1) = NULL, @p_MAKER_ID varchar(100) = NULL, @p_CREATE_DT VARCHAR(20) = NULL, @p_AUTH_STATUS varchar(50) = NULL, @p_CHECKER_ID varchar(100) = NULL, @p_APPROVE_DT VARCHAR(20) = NULL, @p_ACC_NUM VARCHAR(100) = NULL, @p_ACC_NAME VARCHAR(100) = NULL, @p_BANK_NAME NVARCHAR(200) = NULL, @p_ACC_NUM_OUT VARCHAR(100) = NULL, @p_ACC_NAME_OUT VARCHAR(100) = NULL, @p_BANK_NAME_OUT NVARCHAR(200) = NULL AS BEGIN TRANSACTION --Validation is here IF EXISTS(SELECT * FROM CM_SUPPLIER WHERE SUP_NAME = @p_SUP_NAME) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' SUP_ID, N'Thêm mới nhà cung cấp thất bại, tên nhà cung cấp đã tồn tại trong hệ thống' ErrorDesc RETURN '-1' END DECLARE @ERRORSYS NVARCHAR(15) = '' IF ( EXISTS ( SELECT * FROM CM_SUPPLIER WHERE TAX_NO=@p_TAX_NO)) SET @ERRORSYS = 'SUP-0001' IF @ERRORSYS <> '' BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, N'Mã số thuế của nhà cung cấp đã tồn tại.' ErrorDesc RETURN '-1' RETURN '0' END IF (select case when @p_TAX_NO not like '%[^0-9]%' then 0 else 1 end) <> 0 BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, N' Mã số thuế chỉ được phép nhập số' ErrorDesc RETURN '-1' END DECLARE @l_SUP_ID VARCHAR(15) EXEC SYS_CodeMasters_Gen 'CM_SUPPLIER', @l_SUP_ID out IF @l_SUP_ID='' OR @l_SUP_ID IS NULL GOTO ABORT INSERT INTO CM_SUPPLIER([DISCIPLINES],[SUP_ID],[SUP_CODE],[SUP_NAME],[SUP_TYPE_ID],[REGION_ID],[ADDR],[EMAIL],[TAX_NO],[TEL],[CONTACT_PERSON],[NOTES],[RECORD_STATUS],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[ACC_NUM],[ACC_NAME],[BANK_NAME],[ACC_NUM_OUT],[ACC_NAME_OUT],[BANK_NAME_OUT]) VALUES(@p_DISCIPLINES, @l_SUP_ID ,@l_SUP_ID ,@p_SUP_NAME ,@p_SUP_TYPE_ID ,@p_REGION_ID ,@p_ADDR ,@p_EMAIL ,@p_TAX_NO ,@p_TEL ,@p_CONTACT_PERSON ,@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_ACC_NUM,@p_ACC_NAME,@p_BANK_NAME,@p_ACC_NUM_OUT,@p_ACC_NAME_OUT,@p_BANK_NAME_OUT) IF @@Error <> 0 GOTO ABORT COMMIT TRANSACTION SELECT 0 as Result, @l_SUP_ID SUP_ID, '' ErrorDesc, @l_SUP_ID id RETURN 0 ABORT: BEGIN ROLLBACK TRANSACTION SELECT -1 as Result, '' SUP_ID, '' ErrorDesc RETURN -1 End