Project

General

Profile

[TR_RATE_SUPPLIER_MASTER_Upd].txt

Luc Tran Van, 03/22/2023 04:41 PM

 
1

    
2
ALTER   PROCEDURE [dbo].[TR_RATE_SUPPLIER_MASTER_Upd]
3
	@p_RATE_ID VARCHAR(15) = NULL,
4
	@p_RATE_REQ_NO VARCHAR(50) = NULL,
5
	@p_SUP_ID VARCHAR(15) = NULL,
6
	@p_RATE_FROM_DT VARCHAR(20) = NULL,
7
	@p_RATE_TO_DT VARCHAR(20) = NULL,
8
	@p_HH_ID VARCHAR(15) = NULL,
9
	@p_RECORD_STATUS VARCHAR(1) = NULL,
10
	@p_CREATE_DT VARCHAR(20) = NULL,
11
	@p_AUTH_STATUS VARCHAR(1) = NULL,
12
	@p_MAKER_ID VARCHAR(15) = NULL,
13
	@p_CHECKER_ID VARCHAR(15) = NULL,
14
	@p_APPROVE_DT VARCHAR(20) = NULL,
15
	@p_PROCESS_STATUS VARCHAR(15) = NULL,
16
	@p_BRANCH_ID VARCHAR(15) = NULL,
17
	@p_DEP_ID VARCHAR(15) = NULL,
18
	@p_TOTAL_POINT INT = 0,
19
	@p_COMMENT nvarchar(MAX) = NULL,
20
	@p_PROPOSE nvarchar(MAX) = NULL,
21
	@p_DECISION varchar(15) = NULL,
22
	@p_NOTES nvarchar(MAX) = NULL,
23
	@p_IS_SEND_APPR VARCHAR(1) = NULL,
24
	@p_SEND_APPR_DT VARCHAR(20) = NULL,
25
	@p_SIGN_USER VARCHAR(15) = NULL,
26
	@p_SIGN_DT VARCHAR(20) = NULL,
27
	@p_CONTRACT_ID VARCHAR(15) = NULL,
28
	@p_ATTENTION_NOTES NVARCHAR(1000) = NULL,
29
	@p_BASE_POINT INT = NULL,
30
	@p_TR_RATE_SUP_DT_XML XML = NULL
31

    
32
AS
33

    
34
IF(CONVERT(DATETIME, @p_RATE_TO_DT, 103) < CONVERT(DATETIME, @p_RATE_FROM_DT, 103))
35
BEGIN
36
	SELECT '-1' as Result, ''  RATE_ID,
37
		N'Thời gian đánh giá đến không được nhỏ hơn thời gian đánh giá từ' ErrorDesc
38
	RETURN '-1'
39
END
40
IF(ISNULL(@p_CONTRACT_ID,'')='')
41
BEGIN
42
	SELECT '-1' as Result, ''  RATE_ID,
43
		N'Dữ liệu nhập không hợp lệ. Hợp đồng tham chiếu không được để trống' ErrorDesc
44
	RETURN '-1'
45
END
46
BEGIN TRANSACTION
47
	
48
	DECLARE @p_BRANCH_TYPE VARCHAR(50) = (
49
		SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @p_BRANCH_ID
50
	)
51

    
52
	IF(EXISTS(SELECT * FROM TR_RATE_SUPPLIER_MASTER WHERE RATE_REQ_NO = @p_RATE_REQ_NO AND RATE_ID <> @p_RATE_ID))
53
	BEGIN
54
		ROLLBACK TRANSACTION
55
		SELECT '-1' as Result, ''  RATE_ID, 
56
			N'Mã phiếu đánh giá NCC đã tồn tại' ErrorDesc
57
		RETURN '-1'
58
	END
59

    
60
	------nếu BRANCH_ID <> 'HS', ko cần lấy DEP_ID
61
	IF(@p_BRANCH_TYPE <> 'HS')
62
	BEGIN
63
		SET @p_DEP_ID = ''
64
	END
65

    
66
	--------UPDATE MASTER-------
67
	UPDATE TR_RATE_SUPPLIER_MASTER SET
68
		RATE_REQ_NO = @p_RATE_REQ_NO,
69
		SUP_ID = @p_SUP_ID,
70
		RATE_FROM_DT = CONVERT(DATETIME,@p_RATE_FROM_DT,103),
71
		RATE_TO_DT = CONVERT(DATETIME,@p_RATE_TO_DT,103),
72
		HH_ID = @p_HH_ID,
73
		RECORD_STATUS = @p_RECORD_STATUS,
74
		CREATE_DT = CONVERT(DATETIME, @p_CREATE_DT, 103),
75
		AUTH_STATUS = @p_AUTH_STATUS,
76
		MAKER_ID = @p_MAKER_ID,
77
		CHECKER_ID = @p_CHECKER_ID,
78
		APPROVE_DT = CONVERT(DATETIME, @p_APPROVE_DT, 103),
79
		PROCESS_STATUS = @p_PROCESS_STATUS,
80
		BRANCH_ID = @p_BRANCH_ID,
81
		TOTAL_POINT = @p_TOTAL_POINT,
82
		COMMENT = @p_COMMENT,
83
		PROPOSE = @p_PROPOSE,
84
		DECISION = @p_DECISION,
85
		NOTES = @p_NOTES,
86
		IS_SEND_APPR = @p_IS_SEND_APPR,
87
		SEND_APPR_DT = CONVERT(DATETIME, @p_SEND_APPR_DT, 103),
88
		SIGN_USER = @p_SIGN_USER,
89
		SIGN_DT = CONVERT(DATETIME, @p_SIGN_DT, 103),
90
		DEP_ID = @p_DEP_ID,
91
		CONTRACT_ID = @p_CONTRACT_ID,
92
		ATTENTION_NOTES = @p_ATTENTION_NOTES,
93
		BASE_POINT = @p_BASE_POINT
94

    
95

    
96
	WHERE RATE_ID = @p_RATE_ID
97
	IF @@ERROR <> 0 GOTO ABORT
98
	PRINT 'PASS UPDATE MASTER'
99

    
100
	IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_RATE_ID AND STATUS = 'R' AND PROCESS_ID = 'APPNEW'))
101
	BEGIN
102
		UPDATE PL_REQUEST_PROCESS SET
103
			STATUS = 'U'
104
		WHERE REQ_ID = @p_RATE_ID AND PROCESS_ID = 'APPNEW' AND STATUS = 'R'
105
	END
106

    
107
	DELETE TR_RATE_SUPPLIER_DT WHERE RATE_ID = @p_RATE_ID
108
	IF @@ERROR <> 0 GOTO ABORT
109

    
110
	----------GET XML----------
111
	DECLARE @hdoc INT
112
	Exec sp_xml_preparedocument @hdoc Output,@p_TR_RATE_SUP_DT_XML
113
	DECLARE RateSupDetail CURSOR FOR
114
	SELECT *
115
	FROM OPENXML(@hdoc, 'Root/RateSupDetail', 2)
116
	WITH
117
	(
118
		RATE_CRITERIA NVARCHAR(500),
119
		RATE_POINT INT,
120
		SUP_ID_1 VARCHAR(15),
121
		TR_CONTRACT_ID_1 VARCHAR(15),
122
		SUP_POINT_1 INT,
123
		SUP_ID_2 VARCHAR(15),
124
		TR_CONTRACT_ID_2 VARCHAR(15),
125
		SUP_POINT_2 INT,
126
		SUP_ID_3 VARCHAR(15),
127
		TR_CONTRACT_ID_3 VARCHAR(15),
128
		SUP_POINT_3 INT,
129
		SUP_ID_4 VARCHAR(15),
130
		TR_CONTRACT_ID_4 VARCHAR(15),
131
		SUP_POINT_4 INT,
132
		NOTES NVARCHAR(MAX)
133
	)
134
	OPEN RateSupDetail
135
	PRINT 'PASS OPEN CURSOR'
136

    
137
	DECLARE @p_RATE_CRITERIA NVARCHAR(500),
138
			@p_RATE_POINT INT,
139
			@p_SUP_ID_1 VARCHAR(15),
140
			@p_TR_CONTRACT_ID_1 VARCHAR(15),
141
			@p_SUP_POINT_1 INT,
142
			@p_SUP_ID_2 VARCHAR(15),
143
			@p_TR_CONTRACT_ID_2 VARCHAR(15),
144
			@p_SUP_POINT_2 INT,
145
			@p_SUP_ID_3 VARCHAR(15),
146
			@p_TR_CONTRACT_ID_3 VARCHAR(15),
147
			@p_SUP_POINT_3 INT,
148
			@p_SUP_ID_4 VARCHAR(15),
149
			@p_TR_CONTRACT_ID_4 VARCHAR(15),
150
			@p_SUP_POINT_4 INT,
151
			@p_NOTES_DT NVARCHAR(MAX)
152

    
153
	------INSERT DT---------
154
	DECLARE @p_RATE_DT_ID VARCHAR(15)
155
	FETCH NEXT FROM RateSupDetail INTO
156
		@p_RATE_CRITERIA,
157
		@p_RATE_POINT,
158
		@p_SUP_ID_1,
159
		@p_TR_CONTRACT_ID_1,
160
		@p_SUP_POINT_1,
161
		@p_SUP_ID_2,
162
		@p_TR_CONTRACT_ID_2,
163
		@p_SUP_POINT_2,
164
		@p_SUP_ID_3,
165
		@p_TR_CONTRACT_ID_3,
166
		@p_SUP_POINT_3,
167
		@p_SUP_ID_4,
168
		@p_TR_CONTRACT_ID_4,
169
		@p_SUP_POINT_4,
170
		@p_NOTES_DT
171
	WHILE @@FETCH_STATUS = 0
172
	BEGIN
173
		EXEC SYS_CodeMasters_Gen 'TR_RATE_SUPPLIER_DT' ,@p_RATE_DT_ID OUT
174
		IF @p_RATE_DT_ID IS NULL OR @p_RATE_DT_ID = '' GOTO ABORT
175

    
176
		INSERT INTO TR_RATE_SUPPLIER_DT
177
			(RATE_DT_ID, RATE_ID, RATE_CRITERIA, RATE_POINT, SUP_ID_1, TR_CONTRACT_ID_1, SUP_POINT_1,
178
			SUP_ID_2, TR_CONTRACT_ID_2, SUP_POINT_2, SUP_ID_3,TR_CONTRACT_ID_3, SUP_POINT_3, 
179
			SUP_ID_4, TR_CONTRACT_ID_4, SUP_POINT_4, NOTES)
180
		VALUES(@p_RATE_DT_ID, @p_RATE_ID, @p_RATE_CRITERIA, @p_RATE_POINT, @p_SUP_ID_1, @p_TR_CONTRACT_ID_1, 
181
				@p_SUP_POINT_1, @p_SUP_ID_2, @p_TR_CONTRACT_ID_2, @p_SUP_POINT_2, @p_SUP_ID_3, @p_TR_CONTRACT_ID_3, 
182
				@p_SUP_POINT_3, @p_SUP_ID_4, @p_TR_CONTRACT_ID_4, @p_SUP_POINT_4, @p_NOTES_DT)
183
		IF @@ERROR <> 0 GOTO ABORT
184
		PRINT 'PASS INSERT DT'
185

    
186
		----FETCH NEXT----
187
		FETCH NEXT FROM RateSupDetail INTO
188
			@p_RATE_CRITERIA,
189
			@p_RATE_POINT,
190
			@p_SUP_ID_1,
191
			@p_TR_CONTRACT_ID_1,
192
			@p_SUP_POINT_1,
193
			@p_SUP_ID_2,
194
			@p_TR_CONTRACT_ID_2,
195
			@p_SUP_POINT_2,
196
			@p_SUP_ID_3,
197
			@p_TR_CONTRACT_ID_3,
198
			@p_SUP_POINT_3,
199
			@p_SUP_ID_4,
200
			@p_TR_CONTRACT_ID_4,
201
			@p_SUP_POINT_4,
202
			@p_NOTES_DT
203
	END
204
	
205
	CLOSE RateSupDetail
206
	DEALLOCATE RateSupDetail
207
	PRINT 'PASS INSERT DT'
208

    
209
COMMIT TRANSACTION
210
SELECT '0' as Result, @p_RATE_ID  RATE_ID, '' ErrorDesc
211
RETURN '0'
212
ABORT:
213
BEGIN
214
	CLOSE RateSupDetail
215
	DEALLOCATE RateSupDetail
216
	SELECT '-1' as Result, ''  RATE_ID, '' ErrorDesc
217
	RETURN '-1'
218
END