ALTER PROCEDURE [dbo].[CM_HANGHOA_Upd] @p_HH_ID varchar(15) = null , @p_HH_CODE varchar(150) = NULL , @p_HH_NAME nvarchar(200) = NULL , @p_HH_TYPE_ID varchar(15) = NULL , @p_DESCRIPTION nvarchar(2000) = NULL , @p_SUP_ID varchar(15) = NULL , @p_PRICE decimal(17) = 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_GD_ID varchar(15) = null, @p_GROUP_ID_TTCT varchar(15) = NULL, @p_GROUP_ID_CDT varchar(15) = NULL, @p_DVCM_ID varchar(15) = NULL AS BEGIN TRANSACTION declare @OLD_DVCM_ID NVARCHAR(15) = NULL SELECT @OLD_DVCM_ID = DVCM_ID FROM CM_HANGHOA_DVCM WHERE HH_ID = @p_HH_ID --kIEM TRA MA LA DUY NHAT IF EXISTS (SELECT * FROM CM_HANGHOA WHERE HH_CODE = @p_HH_CODE AND HH_ID <> @p_HH_ID AND RECORD_STATUS ='1') BEGIN ROLLBACK TRANSACTION SELECT -1 as Result, '' HH_ID, N'Mã hàng hóa: '+ @p_HH_CODE +N' đã tồn tại trong hệ thống' ErrorDesc RETURN -1 END --kIEM TRA MA LA DUY NHAT IF(@p_HH_CODE IS NULL OR @p_HH_CODE ='') BEGIN ROLLBACK TRANSACTION SELECT -1 as Result, '' HH_ID, N'Mã hàng hóa chưa tự động phát sinh. Vui lòng nhập mã hàng hóa' ErrorDesc RETURN -1 END IF(@p_MAKER_ID NOT IN ('vanpt2', 'cuongvd','tuyenlt')) BEGIN ROLLBACK TRANSACTION SELECT -1 as Result, '' HH_ID, N'Bạn không nằm trong danh sách những user được phép thêm mới hàng hóa. Vui lòng liên hệ bộ phận Mua Hàng - Phòng Hành Chính Hội Sở (vanpt2,cuongvd,tuyenlt)' ErrorDesc RETURN -1 END IF(@p_GROUP_ID_TTCT IS NULL OR @p_GROUP_ID_TTCT ='') BEGIN ROLLBACK TRANSACTION SELECT -1 as Result, '' HH_ID, N'Thông tin nhóm hạn mức phê duyệt chủ trương không được phép để trống. Đây là thông tin quan trọng cho quy trình phê duyệt chủ trương' ErrorDesc RETURN -1 END IF(@p_GROUP_ID_CDT IS NULL OR @p_GROUP_ID_CDT ='') BEGIN ROLLBACK TRANSACTION SELECT -1 as Result, '' HH_ID, N'Thông tin nhóm hạn mức phê duyệt hạn mức chỉ định thầu không được phép để trống. Đây là thông tin quan trọng cho quy trình phê duyệt chủ trương khi mua sắm chỉ định thầu' ErrorDesc RETURN -1 END UPDATE CM_HANGHOA SET [HH_CODE] = @p_HH_CODE,[HH_NAME] = @p_HH_NAME,[HH_TYPE_ID] = @p_HH_TYPE_ID,[DESCRIPTION] = @p_DESCRIPTION,[SUP_ID] = @p_SUP_ID,[PRICE] = @p_PRICE,[UNIT_ID] = @p_UNIT_ID,[NOTES] = @p_NOTES,[RECORD_STATUS] = @p_RECORD_STATUS,[MAKER_ID] = @p_MAKER_ID,[CREATE_DT] = CONVERT(DATETIME, @p_CREATE_DT, 103),[AUTH_STATUS] = @p_AUTH_STATUS,[CHECKER_ID] = @p_CHECKER_ID,[APPROVE_DT] = CONVERT(DATETIME, @p_APPROVE_DT, 103), [GD_ID] = @p_GD_ID WHERE HH_ID = @p_HH_ID DELETE SYS_HH_GROUP_LIMIT WHERE HH_ID = @p_HH_ID INSERT INTO SYS_HH_GROUP_LIMIT(HH_ID, GROUP_LIMIT_ID, TYPE_LIMIT) VALUES (@p_HH_ID, @p_GROUP_ID_TTCT, 'TTCT') INSERT INTO SYS_HH_GROUP_LIMIT(HH_ID, GROUP_LIMIT_ID, TYPE_LIMIT) VALUES (@p_HH_ID, @p_GROUP_ID_CDT, 'CDT') DELETE CM_HANGHOA_DVCM WHERE HH_ID = @p_HH_ID AND DVCM_ID = @OLD_DVCM_ID INSERT INTO CM_HANGHOA_DVCM(HH_ID, DVCM_ID) VALUES (@p_HH_ID, @p_DVCM_ID) IF @@Error <> 0 GOTO ABORT COMMIT TRANSACTION SELECT 0 as Result, @p_HH_ID HH_ID, '' ErrorDesc RETURN 0 ABORT: BEGIN ROLLBACK TRANSACTION SELECT -1 as Result, '' HH_ID, N'Cập nhật thất bại' ErrorDesc RETURN -1 End