1
|
|
2
|
ALTER PROCEDURE [dbo].[TR_RATE_SUPPLIER_MASTER_Ins]
|
3
|
@p_SUP_ID VARCHAR(15) = NULL,
|
4
|
@p_RATE_FROM_DT VARCHAR(20) = NULL,
|
5
|
@p_RATE_TO_DT VARCHAR(20) = NULL,
|
6
|
@p_HH_ID VARCHAR(15) = NULL,
|
7
|
@p_RECORD_STATUS VARCHAR(1) = NULL,
|
8
|
@p_CREATE_DT VARCHAR(20) = NULL,
|
9
|
@p_AUTH_STATUS VARCHAR(1) = NULL,
|
10
|
@p_MAKER_ID VARCHAR(15) = NULL,
|
11
|
@p_CHECKER_ID VARCHAR(15) = NULL,
|
12
|
@p_APPROVE_DT VARCHAR(20) = NULL,
|
13
|
@p_PROCESS_STATUS VARCHAR(15) = NULL,
|
14
|
@p_BRANCH_ID VARCHAR(15) = NULL,
|
15
|
@p_DEP_ID VARCHAR(15) = NULL,
|
16
|
@p_TOTAL_POINT INT = 0,
|
17
|
@p_COMMENT nvarchar(MAX) = NULL,
|
18
|
@p_PROPOSE nvarchar(MAX) = NULL,
|
19
|
@p_DECISION varchar(15) = NULL,
|
20
|
@p_NOTES nvarchar(MAX) = NULL,
|
21
|
@p_IS_SEND_APPR VARCHAR(1) = NULL,
|
22
|
@p_SEND_APPR_DT VARCHAR(20) = NULL,
|
23
|
@p_SIGN_USER VARCHAR(15) = NULL,
|
24
|
@p_SIGN_DT VARCHAR(20) = NULL,
|
25
|
@p_CONTRACT_ID VARCHAR(15) = NULL,
|
26
|
@p_ATTENTION_NOTES NVARCHAR(1000) = NULL,
|
27
|
@p_BASE_POINT INT = NULL,
|
28
|
@p_TR_RATE_SUP_DT_XML XML = NULL
|
29
|
|
30
|
AS
|
31
|
|
32
|
IF(CONVERT(DATETIME, @p_RATE_TO_DT, 103) < CONVERT(DATETIME, @p_RATE_FROM_DT, 103))
|
33
|
BEGIN
|
34
|
SELECT '-1' as Result, '' RATE_ID,
|
35
|
N'Thời gian đánh giá đến không được nhỏ hơn thời gian đánh giá từ' ErrorDesc
|
36
|
RETURN '-1'
|
37
|
END
|
38
|
IF(ISNULL(@p_CONTRACT_ID,'')='')
|
39
|
BEGIN
|
40
|
SELECT '-1' as Result, '' RATE_ID,
|
41
|
N'Dữ liệu nhập không hợp lệ. Hợp đồng tham chiếu không được để trống' ErrorDesc
|
42
|
RETURN '-1'
|
43
|
END
|
44
|
|
45
|
BEGIN TRANSACTION
|
46
|
|
47
|
DECLARE @p_BRANCH_TYPE VARCHAR(50) = (
|
48
|
SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @p_BRANCH_ID
|
49
|
)
|
50
|
DECLARE @p_RATE_REQ_NO VARCHAR(100)
|
51
|
-----------------TẠO SỐ PHIẾU----------------
|
52
|
EXEC TR_RATE_SUPPLIER_CODE_GenKey
|
53
|
'TR_RATE_SUPPLIER_MASTER', '', '', @p_BRANCH_ID, @p_DEP_ID, @p_RATE_REQ_NO OUT
|
54
|
PRINT @p_RATE_REQ_NO
|
55
|
IF(EXISTS(SELECT * FROM TR_RATE_SUPPLIER_MASTER WHERE RATE_REQ_NO = @p_RATE_REQ_NO))
|
56
|
BEGIN
|
57
|
ROLLBACK TRANSACTION
|
58
|
SELECT '-1' as Result, '' RATE_ID, '' RATE_REQ_NO,
|
59
|
N'Phiếu đánh giá NCC số: ' +@p_RATE_REQ_NO+ N' đã tồn tại' ErrorDesc
|
60
|
RETURN '-1'
|
61
|
END
|
62
|
|
63
|
-------INSERT MASTER--------
|
64
|
DECLARE @p_RATE_ID VARCHAR(15)
|
65
|
EXEC SYS_CodeMasters_Gen 'TR_RATE_SUPPLIER_MASTER' ,@p_RATE_ID OUT
|
66
|
IF @p_RATE_ID IS NULL OR @p_RATE_ID = '' GOTO ABORT
|
67
|
PRINT 'PASS TAO ID'
|
68
|
|
69
|
IF(@p_BRANCH_TYPE <> 'HS')
|
70
|
BEGIN
|
71
|
SET @p_DEP_ID = NULL
|
72
|
END
|
73
|
|
74
|
INSERT INTO TR_RATE_SUPPLIER_MASTER
|
75
|
(RATE_ID, RATE_REQ_NO, SUP_ID, RATE_FROM_DT, RATE_TO_DT, HH_ID, RECORD_STATUS, CREATE_DT, AUTH_STATUS,
|
76
|
MAKER_ID, CHECKER_ID, APPROVE_DT, PROCESS_STATUS, BRANCH_ID, TOTAL_POINT, COMMENT, PROPOSE,
|
77
|
DECISION, NOTES, IS_SEND_APPR, SEND_APPR_DT, SIGN_USER, SIGN_DT, DEP_ID, CONTRACT_ID, ATTENTION_NOTES,
|
78
|
BASE_POINT)
|
79
|
VALUES(@p_RATE_ID, @p_RATE_REQ_NO, @p_SUP_ID, CONVERT(DATETIME, @p_RATE_FROM_DT, 103), CONVERT(DATETIME, @p_RATE_TO_DT, 103), @p_HH_ID, @p_RECORD_STATUS,
|
80
|
CONVERT(DATETIME , @p_CREATE_DT, 103), @p_AUTH_STATUS, @p_MAKER_ID, @p_CHECKER_ID, CONVERT(DATETIME, @p_APPROVE_DT, 103),
|
81
|
@p_PROCESS_STATUS, @p_BRANCH_ID, @p_TOTAL_POINT, @p_COMMENT, @p_PROPOSE, @p_DECISION, @p_NOTES,
|
82
|
@p_IS_SEND_APPR, CONVERT(DATETIME, @p_SEND_APPR_DT, 103), @p_SIGN_USER, CONVERT(DATETIME, @p_SIGN_DT, 103),
|
83
|
@p_DEP_ID, @p_CONTRACT_ID, @p_ATTENTION_NOTES, @p_BASE_POINT)
|
84
|
IF @@ERROR <> 0 GOTO ABORT
|
85
|
PRINT 'PASS INSERT MASTER'
|
86
|
|
87
|
----------GET XML----------
|
88
|
DECLARE @hdoc INT
|
89
|
Exec sp_xml_preparedocument @hdoc Output,@p_TR_RATE_SUP_DT_XML
|
90
|
DECLARE RateSupDetail CURSOR FOR
|
91
|
SELECT *
|
92
|
FROM OPENXML(@hdoc, 'Root/RateSupDetail', 2)
|
93
|
WITH
|
94
|
(
|
95
|
RATE_CRITERIA NVARCHAR(500),
|
96
|
RATE_POINT INT,
|
97
|
SUP_ID_1 VARCHAR(15),
|
98
|
TR_CONTRACT_ID_1 VARCHAR(15),
|
99
|
SUP_POINT_1 INT,
|
100
|
SUP_ID_2 VARCHAR(15),
|
101
|
TR_CONTRACT_ID_2 VARCHAR(15),
|
102
|
SUP_POINT_2 INT,
|
103
|
SUP_ID_3 VARCHAR(15),
|
104
|
TR_CONTRACT_ID_3 VARCHAR(15),
|
105
|
SUP_POINT_3 INT,
|
106
|
SUP_ID_4 VARCHAR(15),
|
107
|
TR_CONTRACT_ID_4 VARCHAR(15),
|
108
|
SUP_POINT_4 INT,
|
109
|
NOTES NVARCHAR(MAX)
|
110
|
)
|
111
|
OPEN RateSupDetail
|
112
|
PRINT 'PASS OPEN CURSOR'
|
113
|
|
114
|
DECLARE @p_RATE_CRITERIA NVARCHAR(500),
|
115
|
@p_RATE_POINT INT,
|
116
|
@p_SUP_ID_1 VARCHAR(15),
|
117
|
@p_TR_CONTRACT_ID_1 VARCHAR(15),
|
118
|
@p_SUP_POINT_1 INT,
|
119
|
@p_SUP_ID_2 VARCHAR(15),
|
120
|
@p_TR_CONTRACT_ID_2 VARCHAR(15),
|
121
|
@p_SUP_POINT_2 INT,
|
122
|
@p_SUP_ID_3 VARCHAR(15),
|
123
|
@p_TR_CONTRACT_ID_3 VARCHAR(15),
|
124
|
@p_SUP_POINT_3 INT,
|
125
|
@p_SUP_ID_4 VARCHAR(15),
|
126
|
@p_TR_CONTRACT_ID_4 VARCHAR(15),
|
127
|
@p_SUP_POINT_4 INT,
|
128
|
@p_NOTES_DT NVARCHAR(MAX)
|
129
|
|
130
|
------INSERT DT---------
|
131
|
DECLARE @p_RATE_DT_ID VARCHAR(15)
|
132
|
FETCH NEXT FROM RateSupDetail INTO
|
133
|
@p_RATE_CRITERIA,
|
134
|
@p_RATE_POINT,
|
135
|
@p_SUP_ID_1,
|
136
|
@p_TR_CONTRACT_ID_1,
|
137
|
@p_SUP_POINT_1,
|
138
|
@p_SUP_ID_2,
|
139
|
@p_TR_CONTRACT_ID_2,
|
140
|
@p_SUP_POINT_2,
|
141
|
@p_SUP_ID_3,
|
142
|
@p_TR_CONTRACT_ID_3,
|
143
|
@p_SUP_POINT_3,
|
144
|
@p_SUP_ID_4,
|
145
|
@p_TR_CONTRACT_ID_4,
|
146
|
@p_SUP_POINT_4,
|
147
|
@p_NOTES_DT
|
148
|
WHILE @@FETCH_STATUS = 0
|
149
|
BEGIN
|
150
|
EXEC SYS_CodeMasters_Gen 'TR_RATE_SUPPLIER_DT' ,@p_RATE_DT_ID OUT
|
151
|
IF @p_RATE_DT_ID IS NULL OR @p_RATE_DT_ID = '' GOTO ABORT
|
152
|
|
153
|
INSERT INTO TR_RATE_SUPPLIER_DT
|
154
|
(RATE_DT_ID, RATE_ID, RATE_CRITERIA, RATE_POINT, SUP_ID_1, TR_CONTRACT_ID_1, SUP_POINT_1,
|
155
|
SUP_ID_2, TR_CONTRACT_ID_2, SUP_POINT_2, SUP_ID_3, TR_CONTRACT_ID_3, SUP_POINT_3,
|
156
|
SUP_ID_4, TR_CONTRACT_ID_4, SUP_POINT_4, NOTES)
|
157
|
VALUES(@p_RATE_DT_ID, @p_RATE_ID, @p_RATE_CRITERIA, @p_RATE_POINT, @p_SUP_ID_1, @p_TR_CONTRACT_ID_1,
|
158
|
@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,
|
159
|
@p_SUP_POINT_3, @p_SUP_ID_4, @p_TR_CONTRACT_ID_4, @p_SUP_POINT_4, @p_NOTES_DT)
|
160
|
IF @@ERROR <> 0 GOTO ABORT
|
161
|
PRINT 'PASS INSERT DT'
|
162
|
|
163
|
----FETCH NEXT----
|
164
|
FETCH NEXT FROM RateSupDetail INTO
|
165
|
@p_RATE_CRITERIA,
|
166
|
@p_RATE_POINT,
|
167
|
@p_SUP_ID_1,
|
168
|
@p_TR_CONTRACT_ID_1,
|
169
|
@p_SUP_POINT_1,
|
170
|
@p_SUP_ID_2,
|
171
|
@p_TR_CONTRACT_ID_2,
|
172
|
@p_SUP_POINT_2,
|
173
|
@p_SUP_ID_3,
|
174
|
@p_TR_CONTRACT_ID_3,
|
175
|
@p_SUP_POINT_3,
|
176
|
@p_SUP_ID_4,
|
177
|
@p_TR_CONTRACT_ID_4,
|
178
|
@p_SUP_POINT_4,
|
179
|
@p_NOTES_DT
|
180
|
END
|
181
|
|
182
|
CLOSE RateSupDetail
|
183
|
DEALLOCATE RateSupDetail
|
184
|
PRINT 'INSERT COMPLETE'
|
185
|
|
186
|
--------------INSERT lưu bước xử lý----------
|
187
|
INSERT INTO dbo.PL_REQUEST_PROCESS
|
188
|
(
|
189
|
REQ_ID,
|
190
|
PROCESS_ID,
|
191
|
STATUS,
|
192
|
ROLE_USER,
|
193
|
BRANCH_ID,
|
194
|
CHECKER_ID,
|
195
|
APPROVE_DT,
|
196
|
PARENT_PROCESS_ID,
|
197
|
IS_LEAF,
|
198
|
COST_ID,
|
199
|
DVDM_ID,
|
200
|
NOTES,
|
201
|
IS_HAS_CHILD
|
202
|
)
|
203
|
VALUES
|
204
|
( @p_RATE_ID, -- REQ_ID - varchar(15)
|
205
|
'NEW', -- PROCESS_ID - varchar(10)
|
206
|
'C', -- STATUS - varchar(5)
|
207
|
'', -- ROLE_USER - varchar(50)
|
208
|
'', -- BRANCH_ID - varchar(15)
|
209
|
'', -- CHECKER_ID - varchar(15)
|
210
|
NULL, -- APPROVE_DT - datetime
|
211
|
'', -- PARENT_PROCESS_ID - varchar(10)
|
212
|
'N', -- IS_LEAF - varchar(1)
|
213
|
'', -- COST_ID - varchar(15)
|
214
|
'', -- DVDM_ID - varchar(15)
|
215
|
N'Chờ gửi phê duyệt', -- NOTES - nvarchar(500)
|
216
|
NULL -- IS_HAS_CHILD - bit
|
217
|
)
|
218
|
|
219
|
COMMIT TRANSACTION
|
220
|
SELECT '0' as Result, @p_RATE_ID RATE_ID, @p_RATE_REQ_NO RATE_REQ_NO,'' ErrorDesc
|
221
|
RETURN '0'
|
222
|
ABORT:
|
223
|
BEGIN
|
224
|
CLOSE RateSupDetail
|
225
|
DEALLOCATE RateSupDetail
|
226
|
SELECT '-1' as Result, '' RATE_ID, '' RATE_REQ_NO,'' ErrorDesc
|
227
|
RETURN '-1'
|
228
|
END
|