Project

General

Profile

TR_REQUEST_JOB_FORM.txt

Luc Tran Van, 04/13/2023 12:03 PM

 
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