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
|