Project

General

Profile

CM_HANGHOA_Ins.txt

Luc Tran Van, 10/24/2022 01:54 PM

 
1

    
2
ALTER   PROCEDURE [dbo].[CM_HANGHOA_Ins]
3
	@p_HH_CODE	varchar(50)  = NULL,
4
	@p_HH_NAME	nvarchar(200)  = NULL,
5
	@p_HH_TYPE_ID	varchar(15)  = NULL,
6
	@p_DESCRIPTION	nvarchar(2000)  = NULL,
7
	@p_SUP_ID	varchar(15)  = NULL,
8
	@p_PRICE	decimal(18)  = NULL,
9
	@p_UNIT_ID	varchar(15)  = NULL,
10
	@p_NOTES	nvarchar(1000)  = NULL,
11
	@p_RECORD_STATUS	varchar(1)  = NULL,
12
	@p_MAKER_ID	varchar(15)  = NULL,
13
	@p_CREATE_DT	VARCHAR(20) = NULL,
14
	@p_AUTH_STATUS	varchar(50)  = NULL,
15
	@p_CHECKER_ID	varchar(12)  = NULL,
16
	@p_APPROVE_DT	VARCHAR(20) = NULL,
17
	@p_GD_ID	varchar(15)  = NULL,
18
	@p_HHGROUP_GROUP_ID_TTCT varchar(15)  = NULL,
19
	@p_HHGROUP_GROUP_ID_CDT varchar(15)  = NULL,
20
	@p_DVCM_ID varchar(15)  = NULL,
21
	@p_IS_DVCM	varchar(1) =NULL
22
AS
23
	DECLARE @l_HH_ID VARCHAR(15)
24
	
25
BEGIN TRANSACTION
26
		
27
		--KIEM TRA MA LA DUY NHAT
28
		IF EXISTS (SELECT * FROM CM_HANGHOA WHERE HH_CODE = @p_HH_CODE AND RECORD_STATUS ='1')
29
		BEGIN
30
			ROLLBACK TRANSACTION
31
			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
32
			RETURN -1
33
		END
34
		IF(@p_MAKER_ID NOT IN ('vanpt2','phuongvn','tuyenlt'))
35
		BEGIN
36
			ROLLBACK TRANSACTION
37
			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
38
			RETURN -1
39
		END
40
		IF (@p_HH_CODE IS NULL OR @p_HH_CODE = '')
41
		BEGIN
42
			DECLARE @Max_ID int;
43
			DECLARE @s VARCHAR(200) = (SELECT MAX(HH_CODE) FROM CM_HANGHOA WHERE HH_TYPE_ID = @p_HH_TYPE_ID);
44
			WITH a AS (SELECT n=0, i=-1, j=0 
45
			UNION ALL SELECT n+1, j, 
46
			CHARINDEX('-', @s, j+1) FROM a WHERE j > i), 
47
			b AS 
48
			(SELECT n, SUBSTRING(@s, i+1, IIF(j>0, j, LEN(@s)+1)-i-1) s FROM a WHERE i >= 0)
49
			SELECT @Max_ID=(s+1) FROM b WHERE n = 3
50
			DECLARE @HH_CODE varchar(15) = (select HH_TYPE_CODE from CM_HANGHOA_TYPE where HH_TYPE_ID = @p_HH_TYPE_ID)
51
			select @p_HH_CODE = (@HH_CODE+'-' + right('00000'+convert(varchar(20),ISNULL(@Max_ID,0)),6))
52
		END
53
		IF(@p_HH_CODE IS NULL OR @p_HH_CODE ='')
54
		BEGIN
55
			ROLLBACK TRANSACTION
56
			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
57
			RETURN -1
58
		END
59
		IF(@p_HHGROUP_GROUP_ID_TTCT IS NULL OR @p_HHGROUP_GROUP_ID_TTCT ='')
60
		BEGIN
61
			ROLLBACK TRANSACTION
62
			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
63
			RETURN -1
64
		END
65
		IF(@p_HHGROUP_GROUP_ID_CDT IS NULL OR @p_HHGROUP_GROUP_ID_CDT ='')
66
		BEGIN
67
			ROLLBACK TRANSACTION
68
			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
69
			RETURN -1
70
		END
71
		------------------BAODNQ 24/10/2022 : K CHO CHỌN DVCM LÀ KHỐI-----------------
72
		IF EXISTS(SELECT * FROM CM_DVDM WHERE DVDM_ID = @p_DVCM_ID AND IS_KHOI = 1)
73
		BEGIN
74
			ROLLBACK TRANSACTION
75
			SELECT -1 as Result, '' HH_ID, 
76
			N'Không thể chọn đơn vị chuyên môn là Khối để đi với hàng hóa. Vui lòng chọn đơn vị chuyên môn khác' ErrorDesc
77
			RETURN -1
78
		END
79
		-------------------END BAODNQ------------------------
80
		EXEC SYS_CodeMasters_Gen 'CM_HANGHOA', @l_HH_ID out
81
		IF @l_HH_ID='' OR @l_HH_ID IS NULL GOTO ABORT
82
	
83
		SET @p_AUTH_STATUS = 'A'
84
		IF EXISTS (SELECT * FROM TL_MENU WHERE MENU_NAME_EL = N'hanghoa' and ISAPPROVE_FUNC = 1)
85
		BEGIN
86
			SET @p_AUTH_STATUS = 'U'	
87
		END
88
		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],[IS_DVCM])
89
		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,@p_IS_DVCM)
90
		
91
		DELETE SYS_HH_GROUP_LIMIT WHERE HH_ID = @l_HH_ID
92
		INSERT INTO SYS_HH_GROUP_LIMIT(HH_ID, GROUP_LIMIT_ID, TYPE_LIMIT)
93
		VALUES (@l_HH_ID, @p_HHGROUP_GROUP_ID_TTCT, 'TTCT')
94
		INSERT INTO SYS_HH_GROUP_LIMIT(HH_ID, GROUP_LIMIT_ID, TYPE_LIMIT)
95
		VALUES (@l_HH_ID, @p_HHGROUP_GROUP_ID_CDT, 'CDT')
96
		DELETE CM_HANGHOA_DVCM WHERE HH_ID = @l_HH_ID AND DVCM_ID = @p_DVCM_ID
97
		INSERT INTO CM_HANGHOA_DVCM(HH_ID, DVCM_ID)
98
		VALUES (@l_HH_ID, @p_DVCM_ID)
99

    
100
		IF @@Error <> 0 GOTO ABORT
101
		
102
COMMIT TRANSACTION
103
SELECT 0 as Result, @l_HH_ID  HH_ID,@p_HH_CODE as HH_CODE,@l_HH_ID as Id,@p_HH_CODE as Ids, '' ErrorDesc
104
RETURN 0
105
ABORT:
106
BEGIN
107
		ROLLBACK TRANSACTION
108
		SELECT -1 as Result, '' HH_ID, N'Thêm thất bại' ErrorDesc
109
		RETURN -1
110
End