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
|
|
81
|
-----------------BAODNQ 12/1/2023 : HOT FIX TẠM THỜI NẾU MAKER_ID = vanpt2 THÌ UPDATE MAKER_ID = admin----------
|
82
|
IF(@p_MAKER_ID = 'vanpt2')
|
83
|
BEGIN
|
84
|
SET @p_MAKER_ID = 'admin'
|
85
|
END
|
86
|
|
87
|
EXEC SYS_CodeMasters_Gen 'CM_HANGHOA', @l_HH_ID out
|
88
|
IF @l_HH_ID='' OR @l_HH_ID IS NULL GOTO ABORT
|
89
|
|
90
|
SET @p_AUTH_STATUS = 'A'
|
91
|
IF EXISTS (SELECT * FROM TL_MENU WHERE MENU_NAME_EL = N'hanghoa' and ISAPPROVE_FUNC = 1)
|
92
|
BEGIN
|
93
|
SET @p_AUTH_STATUS = 'U'
|
94
|
END
|
95
|
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])
|
96
|
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)
|
97
|
|
98
|
DELETE SYS_HH_GROUP_LIMIT WHERE HH_ID = @l_HH_ID
|
99
|
INSERT INTO SYS_HH_GROUP_LIMIT(HH_ID, GROUP_LIMIT_ID, TYPE_LIMIT)
|
100
|
VALUES (@l_HH_ID, @p_HHGROUP_GROUP_ID_TTCT, 'TTCT')
|
101
|
INSERT INTO SYS_HH_GROUP_LIMIT(HH_ID, GROUP_LIMIT_ID, TYPE_LIMIT)
|
102
|
VALUES (@l_HH_ID, @p_HHGROUP_GROUP_ID_CDT, 'CDT')
|
103
|
DELETE CM_HANGHOA_DVCM WHERE HH_ID = @l_HH_ID AND DVCM_ID = @p_DVCM_ID
|
104
|
INSERT INTO CM_HANGHOA_DVCM(HH_ID, DVCM_ID)
|
105
|
VALUES (@l_HH_ID, @p_DVCM_ID)
|
106
|
|
107
|
IF @@Error <> 0 GOTO ABORT
|
108
|
|
109
|
COMMIT TRANSACTION
|
110
|
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
|
111
|
RETURN 0
|
112
|
ABORT:
|
113
|
BEGIN
|
114
|
ROLLBACK TRANSACTION
|
115
|
SELECT -1 as Result, '' HH_ID, N'Thêm thất bại' ErrorDesc
|
116
|
RETURN -1
|
117
|
End
|