1
|
|
2
|
ALTER PROC dbo.TR_REQUEST_JOB_FORM_Ins
|
3
|
@p_REQ_CODE VARCHAR(15) = NULL,
|
4
|
@p_REQ_DT VARCHAR(150) = NULL,
|
5
|
@p_MAKER_ID VARCHAR(15) = NULL,
|
6
|
@p_CREATE_DT VARCHAR(20) = NULL,
|
7
|
@p_AUTH_STATUS VARCHAR(1) = NULL,
|
8
|
@p_CHECKER_ID VARCHAR(15) = NULL,
|
9
|
@p_APPROVE_DT VARCHAR(20) = NULL,
|
10
|
@p_REQ_REASON NVARCHAR(MAX) = NULL,
|
11
|
@p_REQ_DESC NVARCHAR(MAX) = NULL,
|
12
|
@p_NOTES NVARCHAR(MAX) = NULL,
|
13
|
@p_REQ_TYPE_TRANS VARCHAR(15) = NULL,
|
14
|
@p_REQ_TYPE_GROUP VARCHAR(15) = NULL,
|
15
|
@p_REQ_TYPE_BOOKING_HOTEL VARCHAR(15) = NULL,
|
16
|
@p_REQ_TYPE_BOOKING_AIR VARCHAR(15) = NULL,
|
17
|
@p_REQ_TYPE_BOOKING_TRAIN VARCHAR(15) = NULL,
|
18
|
@p_REQ_TYPE_BOOKING_CAR VARCHAR(15) = NULL,
|
19
|
@p_SENDER_ID VARCHAR(15) = NULL,
|
20
|
@p_SEND_DT VARCHAR(20) = NULL,
|
21
|
@p_SIGN_USER VARCHAR(15) = NULL,
|
22
|
@p_SIGN_DT VARCHAR(20) = NULL,
|
23
|
@p_BRANCH_CREATE VARCHAR(15) = NULL,
|
24
|
@p_DEP_CREATE VARCHAR(15) = NULL,
|
25
|
@p_BRANCH_ID NVARCHAR(500) = NULL,
|
26
|
@p_DEP_ID NVARCHAR(500) = NULL,
|
27
|
@p_EMP_PHONE VARCHAR(20) NULL,
|
28
|
@p_NUM_TRIP_PEOPLE VARCHAR(20) NULL,
|
29
|
@p_OVERALL_TIME VARCHAR(20) NULL,
|
30
|
@p_TYPE_WORK VARCHAR(20) NULL,
|
31
|
@p_IS_SEND_APPR VARCHAR(15) = NULL,
|
32
|
@p_FROM_DATE VARCHAR(20) = NULL,
|
33
|
@p_TO_DATE VARCHAR(20) = NULL,
|
34
|
@p_EMP_ID VARCHAR(20) = NULL,
|
35
|
@p_HOTEL_NT NVARCHAR(1000) = NULL,
|
36
|
@p_REQ_CAR_ID VARCHAR(20)=NULL,
|
37
|
@p_ListReqJobDetail XML = NULL,
|
38
|
@p_ListReqJobTrain XML = NULL
|
39
|
AS
|
40
|
|
41
|
|
42
|
BEGIN TRANSACTION
|
43
|
|
44
|
IF(@p_REQ_TYPE_GROUP IS NULL OR @p_REQ_TYPE_GROUP ='')
|
45
|
BEGIN
|
46
|
ROLLBACK TRANSACTION
|
47
|
SELECT '-1' Result, '' REQ_ID, N'Lưu thất bại! Bạn cần chọn Cá Nhân/Theo đoàn' ErrorDesc
|
48
|
RETURN '-1'
|
49
|
END
|
50
|
IF(@p_REQ_TYPE_BOOKING_HOTEL IS NULL OR @p_REQ_TYPE_BOOKING_HOTEL ='')
|
51
|
BEGIN
|
52
|
ROLLBACK TRANSACTION
|
53
|
SELECT '-1' Result, '' REQ_ID, N'Lưu thất bại! Bạn cần chọn khách sạn' ErrorDesc
|
54
|
RETURN '-1'
|
55
|
END
|
56
|
IF(@p_REQ_TYPE_BOOKING_AIR IS NULL OR @p_REQ_TYPE_BOOKING_AIR ='')
|
57
|
BEGIN
|
58
|
ROLLBACK TRANSACTION
|
59
|
SELECT '-1' Result, '' REQ_ID, N'Lưu thất bại! Bạn cần chọn vé máy bay' ErrorDesc
|
60
|
RETURN '-1'
|
61
|
END
|
62
|
IF((@p_REQ_TYPE_TRANS IS NULL OR @p_REQ_TYPE_TRANS ='')AND @p_REQ_TYPE_BOOKING_AIR ='AIR_B')
|
63
|
BEGIN
|
64
|
ROLLBACK TRANSACTION
|
65
|
SELECT '-1' Result, '' REQ_ID, N'Lưu thất bại! Bạn cần chọn Một chiều/khứ hồi' ErrorDesc
|
66
|
RETURN '-1'
|
67
|
END
|
68
|
IF(@p_REQ_TYPE_BOOKING_TRAIN IS NULL OR @p_REQ_TYPE_BOOKING_TRAIN ='')
|
69
|
BEGIN
|
70
|
ROLLBACK TRANSACTION
|
71
|
SELECT '-1' Result, '' REQ_ID, N'Lưu thất bại! Vé tàu bạn cần chọn Tự đặt/Không' ErrorDesc
|
72
|
RETURN '-1'
|
73
|
END
|
74
|
IF((@p_REQ_CAR_ID IS NULL OR @p_REQ_CAR_ID ='')AND @p_REQ_TYPE_BOOKING_CAR ='CAR_B')
|
75
|
BEGIN
|
76
|
ROLLBACK TRANSACTION
|
77
|
SELECT '-1' Result, '' REQ_ID, N'Lưu thất bại! Bạn cần đăng ký phiếu xe' ErrorDesc
|
78
|
RETURN '-1'
|
79
|
END
|
80
|
|
81
|
DECLARE @lstRJD TABLE(
|
82
|
EMP_ID varchar(15),
|
83
|
TLNANME varchar(15),
|
84
|
BRANCH_ID varchar(15),
|
85
|
DEP_ID varchar(15),
|
86
|
PHONE varchar(150),
|
87
|
NOTES nvarchar(MAX)
|
88
|
)
|
89
|
DECLARE @doc INT
|
90
|
Exec sp_xml_preparedocument @doc Output,@p_ListReqJobDetail
|
91
|
|
92
|
--Lưới Lộ Trình
|
93
|
DECLARE @lstRJT TABLE(
|
94
|
TIME_TRAIN varchar(15),
|
95
|
DAY_TRAIN varchar(15),
|
96
|
FROM_TRAIN varchar(15),
|
97
|
TO_TRAIN varchar(15),
|
98
|
NOTES NVARCHAR(2000),
|
99
|
VEHICLE_TYPE varchar(15),
|
100
|
CONSIGNMENT varchar(5)
|
101
|
)
|
102
|
DECLARE @hdoc INT
|
103
|
Exec sp_xml_preparedocument @hdoc Output,@p_ListReqJobTrain
|
104
|
|
105
|
IF(@p_REQ_TYPE_GROUP ='InGroup' AND NOT EXISTS (SELECT *
|
106
|
FROM OPENXML(@doc,'/Root/ListReqJobDetail',2)
|
107
|
WITH
|
108
|
(
|
109
|
EMP_ID varchar(15),
|
110
|
TLNANME varchar(15),
|
111
|
BRANCH_ID varchar(15),
|
112
|
DEP_ID varchar(15),
|
113
|
PHONE varchar(150),
|
114
|
NOTES nvarchar(MAX)
|
115
|
)))
|
116
|
BEGIN
|
117
|
ROLLBACK TRANSACTION
|
118
|
SELECT '-1' Result, '' REQ_ID, N'Lưu thất bại! Lưới Danh sách công tác không được để trống' ErrorDesc
|
119
|
RETURN '-1'
|
120
|
END
|
121
|
|
122
|
IF(@p_REQ_TYPE_TRANS ='RoundTrip' AND ( SELECT COUNT(*)
|
123
|
FROM OPENXML(@hdoc,'/Root/ListReqJobTrain',2)
|
124
|
WITH
|
125
|
(
|
126
|
TIME_TRAIN varchar(15),
|
127
|
DAY_TRAIN varchar(15),
|
128
|
FROM_TRAIN varchar(15),
|
129
|
TO_TRAIN varchar(15),
|
130
|
NOTES NVARCHAR(2000),
|
131
|
VEHICLE_TYPE varchar(15),
|
132
|
CONSIGNMENT varchar(5)
|
133
|
) WHERE VEHICLE_TYPE='AIR')<2)
|
134
|
BEGIN
|
135
|
ROLLBACK TRANSACTION
|
136
|
SELECT '-1' Result, '' REQ_ID, N'Lưu thất bại! Lưới lộ trình cần bổ sung thông tin khứ hồi' ErrorDesc
|
137
|
RETURN '-1'
|
138
|
END
|
139
|
|
140
|
-- insert master
|
141
|
DECLARE @l_REQ_ID varchar(15)
|
142
|
EXEC SYS_CodeMasters_Gen 'TR_REQUEST_JOB_FORM', @l_REQ_ID OUT
|
143
|
EXEC [TR_REQ_JOB_CODE_GenKey] 'TR_REQUEST_JOB_FORM', '','AFT', @p_REQ_CODE OUT
|
144
|
IF @l_REQ_ID='' OR @l_REQ_ID IS NULL GOTO ABORT
|
145
|
|
146
|
INSERT INTO TR_REQUEST_JOB_FORM
|
147
|
(
|
148
|
[REQ_ID],[REQ_CODE],[REQ_DT],[REF_ID],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[REQ_REASON],[REQ_DESC],[NOTES],[REQ_TYPE_TRANS],[REQ_TYPE_GROUP],[REQ_TYPE_BOOKING_HOTEL],[REQ_TYPE_BOOKING_AIR],
|
149
|
[REQ_TYPE_BOOKING_TRAIN],[SENDER_ID],[SEND_DT],[SIGN_USER],[SIGN_DT],[BRANCH_CREATE],[DEP_CREATE],[BRANCH_ID],[DEP_ID],[IS_SEND_APPR],[EMP_PHONE],[NUM_TRIP_PEOPLE],[OVERALL_TIME],[TYPE_WORK],[PROCESS_ID],[FROM_DATE],[TO_DATE],[EMP_ID],[HOTEL_NT],[REQ_TYPE_BOOKING_CAR],[REQ_CAR_ID]
|
150
|
)
|
151
|
VALUES(@l_REQ_ID,@p_REQ_CODE,CONVERT(DATETIME, @p_REQ_DT, 103),@p_MAKER_ID,@p_MAKER_ID,CONVERT(DATETIME, @p_CREATE_DT, 103),'E',@p_CHECKER_ID,CONVERT(DATETIME, @p_APPROVE_DT, 103),@p_REQ_REASON,@p_REQ_DESC,@p_NOTES,@p_REQ_TYPE_TRANS,@p_REQ_TYPE_GROUP,@p_REQ_TYPE_BOOKING_HOTEL,@p_REQ_TYPE_BOOKING_AIR,
|
152
|
@p_REQ_TYPE_BOOKING_TRAIN,@p_SENDER_ID,CONVERT(DATETIME, @p_SEND_DT, 103),@p_SIGN_USER,CONVERT(DATETIME, @p_SIGN_DT, 103),@p_BRANCH_CREATE,@p_DEP_CREATE,@p_BRANCH_ID,@p_DEP_ID,@p_IS_SEND_APPR,@p_EMP_PHONE,@p_NUM_TRIP_PEOPLE ,@p_OVERALL_TIME,@p_TYPE_WORK,'NEW',CONVERT(DATETIME,@p_FROM_DATE ,103),CONVERT(DATETIME,@p_TO_DATE,103),@p_EMP_ID,@p_HOTEL_NT,@p_REQ_TYPE_BOOKING_CAR,@p_REQ_CAR_ID)
|
153
|
IF @@Error <> 0 GOTO ABORT
|
154
|
--Lưới Danh sách công tác
|
155
|
|
156
|
|
157
|
INSERT INTO @lstRJD
|
158
|
SELECT *
|
159
|
FROM OPENXML(@doc,'/Root/ListReqJobDetail',2)
|
160
|
WITH
|
161
|
(
|
162
|
EMP_ID varchar(15),
|
163
|
TLNANME varchar(15),
|
164
|
BRANCH_ID varchar(15),
|
165
|
DEP_ID varchar(15),
|
166
|
PHONE varchar(150),
|
167
|
NOTES nvarchar(MAX)
|
168
|
)
|
169
|
DECLARE PlDetailCur CURSOR FOR
|
170
|
SELECT * FROM @lstRJD
|
171
|
OPEN PlDetailCur
|
172
|
|
173
|
DECLARE
|
174
|
@EMP_ID varchar(15),
|
175
|
@TLNANME varchar(15),
|
176
|
@BRANCH_ID varchar(15),
|
177
|
@DEP_ID varchar(15),
|
178
|
@PHONE varchar(150),
|
179
|
@NOTES nvarchar(MAX)
|
180
|
FETCH NEXT FROM PlDetailCur INTO @EMP_ID, @TLNANME, @BRANCH_ID, @DEP_ID, @PHONE,@NOTES
|
181
|
WHILE @@FETCH_STATUS = 0
|
182
|
BEGIN
|
183
|
DECLARE @l_RJD_ID VARCHAR(15)
|
184
|
EXEC SYS_CodeMasters_Gen 'TR_REQUEST_JOB_DETAIL', @l_RJD_ID out
|
185
|
IF @l_RJD_ID='' OR @l_RJD_ID IS NULL GOTO ABORT
|
186
|
INSERT INTO dbo.TR_REQUEST_JOB_DETAIL
|
187
|
(
|
188
|
REQ_DT_ID, REQ_ID, EMP_ID, TLNANME, BRANCH_ID, DEP_ID, PHONE, NOTES
|
189
|
)
|
190
|
VALUES
|
191
|
(
|
192
|
@l_RJD_ID, @l_REQ_ID, @EMP_ID, @TLNANME, @BRANCH_ID, @DEP_ID, @PHONE,@NOTES
|
193
|
)
|
194
|
IF @@ERROR <> 0 GOTO ABORT
|
195
|
FETCH NEXT FROM PlDetailCur INTO @EMP_ID, @TLNANME, @BRANCH_ID, @DEP_ID, @PHONE,@NOTES
|
196
|
END
|
197
|
CLOSE PlDetailCur
|
198
|
DEALLOCATE PlDetailCur
|
199
|
|
200
|
--Lưới Danh sách Lộ Trình
|
201
|
INSERT INTO @lstRJT
|
202
|
SELECT *
|
203
|
FROM OPENXML(@hdoc,'/Root/ListReqJobTrain',2)
|
204
|
WITH
|
205
|
(
|
206
|
TIME_TRAIN varchar(15),
|
207
|
DAY_TRAIN varchar(15),
|
208
|
FROM_TRAIN varchar(15),
|
209
|
TO_TRAIN varchar(15),
|
210
|
NOTES NVARCHAR(2000),
|
211
|
VEHICLE_TYPE varchar(15),
|
212
|
CONSIGNMENT varchar(5)
|
213
|
)
|
214
|
DECLARE PlTrainsCur CURSOR FOR SELECT * FROM @lstRJT
|
215
|
OPEN PlTrainsCur
|
216
|
|
217
|
DECLARE
|
218
|
@TIME_TRAIN varchar(15),
|
219
|
@DAY_TRAIN varchar(15),
|
220
|
@FROM_TRAIN varchar(15),
|
221
|
@TO_TRAIN varchar(15),
|
222
|
@VEHICLE_TYPE varchar(15),
|
223
|
@CONSIGNMENT varchar(5)
|
224
|
|
225
|
|
226
|
FETCH NEXT FROM PlTrainsCur INTO @TIME_TRAIN, @DAY_TRAIN, @FROM_TRAIN, @TO_TRAIN,@NOTES,@VEHICLE_TYPE,@CONSIGNMENT
|
227
|
|
228
|
WHILE @@FETCH_STATUS = 0
|
229
|
BEGIN
|
230
|
|
231
|
DECLARE @l_RJT_ID VARCHAR(15)
|
232
|
EXEC SYS_CodeMasters_Gen 'TR_REQUEST_JOB_TRAIN', @l_RJT_ID out
|
233
|
|
234
|
IF @l_RJT_ID='' OR @l_RJT_ID IS NULL GOTO ABORT
|
235
|
IF(@VEHICLE_TYPE='AIR' AND @CONSIGNMENT IS NULL)
|
236
|
BEGIN
|
237
|
ROLLBACK TRANSACTION
|
238
|
SELECT '-1' Result, '' REQ_ID, N'Lưu thất bại! Lưới lộ trình. Chuyến bay '+@TO_TRAIN+' - '+@FROM_TRAIN +N'cần chọn loại ký gửi' ErrorDesc
|
239
|
RETURN '-1'
|
240
|
END
|
241
|
IF(@VEHICLE_TYPE!='AIR')
|
242
|
BEGIN
|
243
|
SET @CONSIGNMENT=NULL
|
244
|
END
|
245
|
|
246
|
INSERT INTO dbo.TR_REQUEST_JOB_TRAIN
|
247
|
(
|
248
|
TRAIN_ID,REQ_ID, TIME_TRAIN, DAY_TRAIN, FROM_TRAIN, TO_TRAIN, NOTES,VEHICLE_TYPE,CONSIGNMENT,IS_OLD
|
249
|
)
|
250
|
VALUES
|
251
|
(
|
252
|
@l_RJT_ID, @l_REQ_ID, @TIME_TRAIN,CONVERT(DATETIME, @DAY_TRAIN, 103), @FROM_TRAIN,@TO_TRAIN,@NOTES, @VEHICLE_TYPE,@CONSIGNMENT,0
|
253
|
)
|
254
|
IF @@ERROR <> 0 GOTO ABORT
|
255
|
FETCH NEXT FROM PlTrainsCur INTO @TIME_TRAIN, @DAY_TRAIN, @FROM_TRAIN, @TO_TRAIN,@NOTES,@VEHICLE_TYPE,@CONSIGNMENT
|
256
|
END
|
257
|
CLOSE PlTrainsCur
|
258
|
DEALLOCATE PlTrainsCur
|
259
|
|
260
|
|
261
|
INSERT INTO dbo.PL_PROCESS
|
262
|
(
|
263
|
REQ_ID,
|
264
|
PROCESS_ID,
|
265
|
CHECKER_ID,
|
266
|
APPROVE_DT,
|
267
|
PROCESS_DESC,
|
268
|
NOTES
|
269
|
)
|
270
|
VALUES
|
271
|
(
|
272
|
@l_REQ_ID,
|
273
|
'INSERT',
|
274
|
@p_MAKER_ID,
|
275
|
GETDATE(),
|
276
|
N'Thêm mới PYC công tác thành công' ,
|
277
|
N'Thêm mới PYC công tác'
|
278
|
)
|
279
|
|
280
|
|
281
|
|
282
|
COMMIT TRANSACTION
|
283
|
SELECT '0' as Result, @l_REQ_ID REQ_ID, '' ErrorDesc
|
284
|
RETURN '0'
|
285
|
ABORT:
|
286
|
BEGIN
|
287
|
CLOSE PlTrainsCur
|
288
|
DEALLOCATE PlTrainsCur
|
289
|
CLOSE PlDetailCur
|
290
|
DEALLOCATE PlDetailCur
|
291
|
ROLLBACK TRANSACTION
|
292
|
SELECT '-1' as Result, '' REQ_ID, '' ErrorDesc
|
293
|
RETURN '-1'
|
294
|
END
|
295
|
|