Project

General

Profile

CM_HANGHOA_Ins.txt

Luc Tran Van, 03/04/2022 02:08 PM

 
1
ALTER PROCEDURE [dbo].[CM_HANGHOA_Ins]
2
	@p_HH_CODE	varchar(50)  = NULL,
3
	@p_HH_NAME	nvarchar(200)  = NULL,
4
	@p_HH_TYPE_ID	varchar(15)  = NULL,
5
	@p_DESCRIPTION	nvarchar(2000)  = NULL,
6
	@p_SUP_ID	varchar(15)  = NULL,
7
	@p_PRICE	decimal(18)  = NULL,
8
	@p_UNIT_ID	varchar(15)  = NULL,
9
	@p_NOTES	nvarchar(1000)  = NULL,
10
	@p_RECORD_STATUS	varchar(1)  = NULL,
11
	@p_MAKER_ID	varchar(15)  = NULL,
12
	@p_CREATE_DT	VARCHAR(20) = NULL,
13
	@p_AUTH_STATUS	varchar(50)  = NULL,
14
	@p_CHECKER_ID	varchar(12)  = NULL,
15
	@p_APPROVE_DT	VARCHAR(20) = NULL,
16
	@p_GD_ID	varchar(15)  = NULL,
17
	@p_HHGROUP_GROUP_ID_TTCT varchar(15)  = NULL,
18
	@p_HHGROUP_GROUP_ID_CDT varchar(15)  = NULL,
19
	@p_DVCM_ID varchar(15)  = NULL
20
AS
21
	DECLARE @l_HH_ID VARCHAR(15)
22
	
23
BEGIN TRANSACTION
24
		
25
		--KIEM TRA MA LA DUY NHAT
26
		IF EXISTS (SELECT * FROM CM_HANGHOA WHERE HH_CODE = @p_HH_CODE AND RECORD_STATUS ='1')
27
		BEGIN
28
			ROLLBACK TRANSACTION
29
			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
30
			RETURN -1
31
		END
32
		IF(@p_MAKER_ID NOT IN ('vanpt2','phuongvn','tuyenlt'))
33
		BEGIN
34
			ROLLBACK TRANSACTION
35
			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ở' ErrorDesc
36
			RETURN -1
37
		END
38
		IF (@p_HH_CODE IS NULL OR @p_HH_CODE = '')
39
		BEGIN
40
			DECLARE @Max_ID int;
41
			DECLARE @s VARCHAR(200) = (SELECT MAX(HH_CODE) FROM CM_HANGHOA WHERE HH_TYPE_ID = @p_HH_TYPE_ID);
42
			WITH a AS (SELECT n=0, i=-1, j=0 
43
			UNION ALL SELECT n+1, j, 
44
			CHARINDEX('-', @s, j+1) FROM a WHERE j > i), 
45
			b AS 
46
			(SELECT n, SUBSTRING(@s, i+1, IIF(j>0, j, LEN(@s)+1)-i-1) s FROM a WHERE i >= 0)
47
			SELECT @Max_ID=(s+1) FROM b WHERE n = 3
48
			DECLARE @HH_CODE varchar(15) = (select HH_TYPE_CODE from CM_HANGHOA_TYPE where HH_TYPE_ID = @p_HH_TYPE_ID)
49
			select @p_HH_CODE = (@HH_CODE+'-' + right('00000'+convert(varchar(20),ISNULL(@Max_ID,0)),6))
50
		END
51
		IF(@p_HH_CODE IS NULL OR @p_HH_CODE ='')
52
		BEGIN
53
			ROLLBACK TRANSACTION
54
			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
55
			RETURN -1
56
		END
57
		IF(@p_HHGROUP_GROUP_ID_TTCT IS NULL OR @p_HHGROUP_GROUP_ID_TTCT ='')
58
		BEGIN
59
			ROLLBACK TRANSACTION
60
			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
61
			RETURN -1
62
		END
63
		IF(@p_HHGROUP_GROUP_ID_CDT IS NULL OR @p_HHGROUP_GROUP_ID_CDT ='')
64
		BEGIN
65
			ROLLBACK TRANSACTION
66
			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 -mua sắm chỉ định thầu' ErrorDesc
67
			RETURN -1
68
		END
69
		EXEC SYS_CodeMasters_Gen 'CM_HANGHOA', @l_HH_ID out
70
		IF @l_HH_ID='' OR @l_HH_ID IS NULL GOTO ABORT
71
	
72
		SET @p_AUTH_STATUS = 'A'
73
		IF EXISTS (SELECT * FROM TL_MENU WHERE MENU_NAME_EL = N'hanghoa' and ISAPPROVE_FUNC = 1)
74
		BEGIN
75
			SET @p_AUTH_STATUS = 'U'	
76
		END
77
		INSERT INTO CM_HANGHOA([HH_ID],[HH_CODE],[HH_NAME],[HH_TYPE_ID],[DESCRIPTION],[SUP_ID],[PRICE],[UNIT_ID],[NOTES],[RECORD_STATUS],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[GD_ID])
78
		VALUES(@l_HH_ID ,@p_HH_CODE ,@p_HH_NAME ,@p_HH_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_GD_ID)
79
		
80
		DELETE SYS_HH_GROUP_LIMIT WHERE HH_ID = @l_HH_ID
81
		INSERT INTO SYS_HH_GROUP_LIMIT(HH_ID, GROUP_LIMIT_ID, TYPE_LIMIT)
82
		VALUES (@l_HH_ID, @p_HHGROUP_GROUP_ID_TTCT, 'TTCT')
83
		INSERT INTO SYS_HH_GROUP_LIMIT(HH_ID, GROUP_LIMIT_ID, TYPE_LIMIT)
84
		VALUES (@l_HH_ID, @p_HHGROUP_GROUP_ID_CDT, 'CDT')
85
		DELETE CM_HANGHOA_DVCM WHERE HH_ID = @l_HH_ID AND DVCM_ID = @p_DVCM_ID
86
		INSERT INTO CM_HANGHOA_DVCM(HH_ID, DVCM_ID)
87
		VALUES (@l_HH_ID, @p_DVCM_ID)
88

    
89
		IF @@Error <> 0 GOTO ABORT
90
		
91
COMMIT TRANSACTION
92
SELECT 0 as Result, @l_HH_ID  HH_ID, '' ErrorDesc
93
RETURN 0
94
ABORT:
95
BEGIN
96
		ROLLBACK TRANSACTION
97
		SELECT -1 as Result, '' HH_ID, N'Thêm thất bại' ErrorDesc
98
		RETURN -1
99
End
100