[Home] [Help]
PACKAGE BODY: APPS.FTE_MLS_WRAPPER
Source
1 PACKAGE BODY FTE_MLS_WRAPPER as
2 /* $Header: FTEMLWRB.pls 120.25 2006/06/09 14:43:28 nltan noship $ */
3
4 G_PKG_NAME CONSTANT VARCHAR2(30) := 'FTE_MLS_WRAPPER';
5
6 --------------
7 --No wrapper needed for delete delivery
8 -------------
9 --========================================================================
10 -- PROCEDURE : Create_Update_Stop FTE wrapper
11 --
12 -- COMMENT : Wrapper around WSH_TRIP_STOPS_GRP.Create_Update
13 -- Passes in all the parameters reqd (record type input changed to
14 -- number of parameters which are collected, assigned to a record
15 -- and call WSH_TRIP_STOPS_GRP.Create_Update
16 --========================================================================
17
18 PROCEDURE Create_Update_Stop
19 (
20 p_api_version_number IN NUMBER,
21 p_init_msg_list IN VARCHAR2,
22 x_return_status OUT NOCOPY VARCHAR2,
23 x_msg_count OUT NOCOPY NUMBER,
24 x_msg_data OUT NOCOPY VARCHAR2,
25 p_action_code IN VARCHAR2,
26 p_trip_id IN NUMBER DEFAULT FND_API.G_MISS_NUM,
27 p_trip_name IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
28 p_stop_location_id IN NUMBER DEFAULT FND_API.G_MISS_NUM,
29 p_stop_location_code IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
30 p_planned_dep_date IN DATE DEFAULT FND_API.G_MISS_DATE,
31 x_stop_id OUT NOCOPY NUMBER,
32 pp_STOP_ID IN NUMBER DEFAULT FND_API.G_MISS_NUM ,
33 pp_TRIP_ID IN NUMBER DEFAULT FND_API.G_MISS_NUM ,
34 pp_TRIP_NAME IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR ,
35 pp_STOP_LOCATION_ID IN NUMBER DEFAULT FND_API.G_MISS_NUM ,
36 pp_STOP_LOCATION_CODE IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
37 pp_PLANNED_ARRIVAL_DATE IN DATE DEFAULT FND_API.G_MISS_DATE,
38 pp_PLANNED_DEPARTURE_DATE IN DATE DEFAULT FND_API.G_MISS_DATE,
39 pp_ACTUAL_ARRIVAL_DATE IN DATE DEFAULT FND_API.G_MISS_DATE,
40 pp_ACTUAL_DEPARTURE_DATE IN DATE DEFAULT FND_API.G_MISS_DATE,
41 pp_DEPARTURE_GROSS_WEIGHT IN NUMBER DEFAULT FND_API.G_MISS_NUM ,
42 pp_DEPARTURE_NET_WEIGHT IN NUMBER DEFAULT FND_API.G_MISS_NUM ,
43 pp_WEIGHT_UOM_CODE IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
44 pp_WEIGHT_UOM_DESC IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
45 pp_DEPARTURE_VOLUME IN NUMBER DEFAULT FND_API.G_MISS_NUM ,
46 pp_VOLUME_UOM_CODE IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR ,
47 pp_VOLUME_UOM_DESC IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR ,
48 pp_DEPARTURE_SEAL_CODE IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR ,
49 pp_DEPARTURE_FILL_PERCENT IN NUMBER DEFAULT FND_API.G_MISS_NUM ,
50 pp_STOP_SEQUENCE_NUMBER IN NUMBER DEFAULT FND_API.G_MISS_NUM,
51 pp_LOCK_STOP_ID IN NUMBER DEFAULT FND_API.G_MISS_NUM,
52 pp_STATUS_CODE IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
53 pp_PENDING_INTERFACE_FLAG IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
54 pp_TRANSACTION_HEADER_ID IN NUMBER DEFAULT FND_API.G_MISS_NUM,
55 pp_WSH_LOCATION_ID IN NUMBER DEFAULT FND_API.G_MISS_NUM,
56 pp_TRACKING_DRILLDOWN_FLAG IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
57 pp_TRACKING_REMARKS IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
58 pp_CARRIER_EST_DEPARTURE_DATE IN DATE DEFAULT FND_API.G_MISS_DATE,
59 pp_CARRIER_EST_ARRIVAL_DATE IN DATE DEFAULT FND_API.G_MISS_DATE,
60 pp_LOADING_START_DATETIME IN DATE DEFAULT FND_API.G_MISS_DATE,
61 pp_LOADING_END_DATETIME IN DATE DEFAULT FND_API.G_MISS_DATE,
62 pp_UNLOADING_START_DATETIME IN DATE DEFAULT FND_API.G_MISS_DATE,
63 pp_UNLOADING_END_DATETIME IN DATE DEFAULT FND_API.G_MISS_DATE,
64 pp_TP_ATTRIBUTE_CATEGORY IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR ,
65 pp_TP_ATTRIBUTE1 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
66 pp_TP_ATTRIBUTE2 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR ,
67 pp_TP_ATTRIBUTE3 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR ,
68 pp_TP_ATTRIBUTE4 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR ,
69 pp_TP_ATTRIBUTE5 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR ,
70 pp_TP_ATTRIBUTE6 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
71 pp_TP_ATTRIBUTE7 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
72 pp_TP_ATTRIBUTE8 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR ,
73 pp_TP_ATTRIBUTE9 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR ,
74 pp_TP_ATTRIBUTE10 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR ,
75 pp_TP_ATTRIBUTE11 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
76 pp_TP_ATTRIBUTE12 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR ,
77 pp_TP_ATTRIBUTE13 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
78 pp_TP_ATTRIBUTE14 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR ,
79 pp_TP_ATTRIBUTE15 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR ,
80 pp_ATTRIBUTE_CATEGORY IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
81 pp_ATTRIBUTE1 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR ,
82 pp_ATTRIBUTE2 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
83 pp_ATTRIBUTE3 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR ,
84 pp_ATTRIBUTE4 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR ,
85 pp_ATTRIBUTE5 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
86 pp_ATTRIBUTE6 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
87 pp_ATTRIBUTE7 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR ,
88 pp_ATTRIBUTE8 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR ,
89 pp_ATTRIBUTE9 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR ,
90 pp_ATTRIBUTE10 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR ,
91 pp_ATTRIBUTE11 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR ,
92 pp_ATTRIBUTE12 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR ,
93 pp_ATTRIBUTE13 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR ,
94 pp_ATTRIBUTE14 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR ,
95 pp_ATTRIBUTE15 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
96 pp_CREATION_DATE IN DATE DEFAULT FND_API.G_MISS_DATE,
97 pp_CREATED_BY IN NUMBER DEFAULT FND_API.G_MISS_NUM ,
98 pp_LAST_UPDATE_DATE IN DATE DEFAULT FND_API.G_MISS_DATE,
99 pp_LAST_UPDATED_BY IN NUMBER DEFAULT FND_API.G_MISS_NUM ,
100 pp_LAST_UPDATE_LOGIN IN NUMBER DEFAULT FND_API.G_MISS_NUM ,
101 pp_PROGRAM_APPLICATION_ID IN NUMBER DEFAULT FND_API.G_MISS_NUM ,
102 pp_PROGRAM_ID IN NUMBER DEFAULT FND_API.G_MISS_NUM ,
103 pp_PROGRAM_UPDATE_DATE IN DATE DEFAULT FND_API.G_MISS_DATE,
104 pp_REQUEST_ID IN NUMBER DEFAULT FND_API.G_MISS_NUM,
105 p_new_stop_sequence IN NUMBER DEFAULT FND_API.G_MISS_NUM,
106 p_is_temp IN VARCHAR2 DEFAULT 'N',
107 p_wkend_layover_stops IN NUMBER DEFAULT FND_API.G_MISS_NUM,
108 p_wkday_layover_stops IN NUMBER DEFAULT FND_API.G_MISS_NUM,
109 p_shipments_type_flag IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR
110
111 ) IS
112
113 -- <insert here your local variables declaration>
114 p_stop_info WSH_TRIP_STOPS_PVT.Trip_Stop_Rec_Type;
115 p_in_rec WSH_TRIP_STOPS_GRP.stopInRecType;
116 l_stop_out_tab WSH_TRIP_STOPS_GRP.stop_out_tab_type;
117 l_rec_attr_tab WSH_TRIP_STOPS_PVT.Stop_Attr_Tbl_Type;
118
119 l_stop_seq_rec FTE_MLS_WRAPPER.stop_seq_rec;
120 p_commit VARCHAR2(1);
121 l_stop_seq NUMBER;
122 l_count NUMBER;
123
124
125 --
126 l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
127 --
128 l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME || '.' || 'CREATE_UPDATE_STOP';
129
130
131 BEGIN
132 SAVEPOINT CREATE_UPDATE_STOP_PUB;
133
134 -- Initialize message list if p_init_msg_list is set to TRUE.
135 --
136 --
137 IF FND_API.to_Boolean( p_init_msg_list )
138 THEN
139 FND_MSG_PUB.initialize;
140 END IF;
141 --
142 --
143 -- Initialize API return status to success
144 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
145 x_msg_count := 0;
146 x_msg_data := 0;
147
148 IF l_debug_on THEN
149 wsh_debug_sv.push(l_module_name);
150 END IF;
151
152 --create trip stop record
153 p_stop_info.STOP_ID:=pp_STOP_ID;
154 p_stop_info.TRIP_ID := pp_TRIP_ID ;
155 p_stop_info.STOP_LOCATION_ID:= pp_STOP_LOCATION_ID ;
156 p_stop_info.STOP_LOCATION_CODE:=pp_STOP_LOCATION_CODE;
157 p_stop_info.PLANNED_ARRIVAL_DATE :=pp_PLANNED_ARRIVAL_DATE ;
158 p_stop_info.PLANNED_DEPARTURE_DATE:=pp_PLANNED_DEPARTURE_DATE ;
159 p_stop_info.ACTUAL_ARRIVAL_DATE := pp_ACTUAL_ARRIVAL_DATE ;
160 p_stop_info.ACTUAL_DEPARTURE_DATE:= pp_ACTUAL_DEPARTURE_DATE ;
161 p_stop_info.DEPARTURE_GROSS_WEIGHT:=pp_DEPARTURE_GROSS_WEIGHT ;
162 p_stop_info.DEPARTURE_NET_WEIGHT := pp_DEPARTURE_NET_WEIGHT ;
163 p_stop_info.WEIGHT_UOM_CODE := pp_WEIGHT_UOM_CODE ;
164 p_stop_info.WEIGHT_UOM_DESC :=pp_WEIGHT_UOM_DESC;
165 p_stop_info.DEPARTURE_VOLUME := pp_DEPARTURE_VOLUME ;
166 p_stop_info.VOLUME_UOM_CODE := pp_VOLUME_UOM_CODE ;
167 p_stop_info.VOLUME_UOM_DESC :=pp_VOLUME_UOM_DESC;
168 p_stop_info.DEPARTURE_SEAL_CODE := pp_DEPARTURE_SEAL_CODE ;
169 p_stop_info.DEPARTURE_FILL_PERCENT :=pp_DEPARTURE_FILL_PERCENT ;
170 p_stop_info.STOP_SEQUENCE_NUMBER :=pp_STOP_SEQUENCE_NUMBER;
171
172 p_stop_info.LOCK_STOP_ID:=pp_LOCK_STOP_ID;
173 p_stop_info.STATUS_CODE:=pp_STATUS_CODE;
174 p_stop_info.PENDING_INTERFACE_FLAG:=pp_PENDING_INTERFACE_FLAG;
175 p_stop_info.TRANSACTION_HEADER_ID:=pp_TRANSACTION_HEADER_ID;
176
177 p_stop_info.WSH_LOCATION_ID:=pp_WSH_LOCATION_ID;
178 p_stop_info.TRACKING_DRILLDOWN_FLAG:=pp_TRACKING_DRILLDOWN_FLAG ;
179 p_stop_info.TRACKING_REMARKS:=pp_TRACKING_REMARKS;
180 p_stop_info.CARRIER_EST_DEPARTURE_DATE:=pp_CARRIER_EST_DEPARTURE_DATE;
181 p_stop_info.CARRIER_EST_ARRIVAL_DATE:=pp_CARRIER_EST_ARRIVAL_DATE;
182 p_stop_info.LOADING_START_DATETIME:=pp_LOADING_START_DATETIME;
183 p_stop_info.LOADING_END_DATETIME:=pp_LOADING_END_DATETIME;
184 p_stop_info.UNLOADING_START_DATETIME:=pp_UNLOADING_START_DATETIME;
185 p_stop_info.UNLOADING_END_DATETIME:=pp_UNLOADING_END_DATETIME;
186
187 p_stop_info.TP_ATTRIBUTE_CATEGORY := pp_TP_ATTRIBUTE_CATEGORY;
188 p_stop_info.TP_ATTRIBUTE1 := pp_TP_ATTRIBUTE1 ;
189 p_stop_info.TP_ATTRIBUTE2 := pp_TP_ATTRIBUTE2 ;
190 p_stop_info.TP_ATTRIBUTE3 := pp_TP_ATTRIBUTE3 ;
191 p_stop_info.TP_ATTRIBUTE4 := pp_TP_ATTRIBUTE4 ;
192 p_stop_info.TP_ATTRIBUTE5 := pp_TP_ATTRIBUTE5 ;
193 p_stop_info.TP_ATTRIBUTE6 := pp_TP_ATTRIBUTE6 ;
194 p_stop_info.TP_ATTRIBUTE7 := pp_TP_ATTRIBUTE7 ;
195 p_stop_info.TP_ATTRIBUTE8 := pp_TP_ATTRIBUTE8 ;
196 p_stop_info.TP_ATTRIBUTE9 := pp_TP_ATTRIBUTE9 ;
197 p_stop_info.TP_ATTRIBUTE10 := pp_TP_ATTRIBUTE10 ;
198 p_stop_info.TP_ATTRIBUTE11 := pp_TP_ATTRIBUTE11 ;
199 p_stop_info.TP_ATTRIBUTE12 := pp_TP_ATTRIBUTE12;
200 p_stop_info.TP_ATTRIBUTE13 := pp_TP_ATTRIBUTE13 ;
201 p_stop_info.TP_ATTRIBUTE14 := pp_TP_ATTRIBUTE14 ;
202 p_stop_info.TP_ATTRIBUTE15 := pp_TP_ATTRIBUTE15 ;
203 p_stop_info.ATTRIBUTE_CATEGORY := pp_ATTRIBUTE_CATEGORY ;
204 p_stop_info.ATTRIBUTE1 := pp_ATTRIBUTE1;
205 p_stop_info.ATTRIBUTE2 := pp_ATTRIBUTE2;
206 p_stop_info.ATTRIBUTE3 := pp_ATTRIBUTE3;
207 p_stop_info.ATTRIBUTE4 := pp_ATTRIBUTE4;
208 p_stop_info.ATTRIBUTE5 := pp_ATTRIBUTE5 ;
209 p_stop_info.ATTRIBUTE6 := pp_ATTRIBUTE6 ;
210 p_stop_info.ATTRIBUTE7 := pp_ATTRIBUTE7 ;
211 p_stop_info.ATTRIBUTE8 := pp_ATTRIBUTE8 ;
212 p_stop_info.ATTRIBUTE9 := pp_ATTRIBUTE9 ;
213 p_stop_info.ATTRIBUTE10 := pp_ATTRIBUTE10;
214 p_stop_info.ATTRIBUTE11 := pp_ATTRIBUTE11;
215 p_stop_info.ATTRIBUTE12 := pp_ATTRIBUTE12 ;
216 p_stop_info.ATTRIBUTE13 := pp_ATTRIBUTE13;
217 p_stop_info.ATTRIBUTE14 := pp_ATTRIBUTE14 ;
218 p_stop_info.ATTRIBUTE15 := pp_ATTRIBUTE15;
219 p_stop_info.CREATION_DATE := pp_CREATION_DATE;
220 p_stop_info.CREATED_BY := pp_CREATED_BY ;
221 p_stop_info.LAST_UPDATE_DATE := pp_LAST_UPDATE_DATE;
222 p_stop_info.LAST_UPDATED_BY := pp_LAST_UPDATED_BY;
223 p_stop_info.LAST_UPDATE_LOGIN := pp_LAST_UPDATE_LOGIN;
224 p_stop_info.PROGRAM_APPLICATION_ID := pp_PROGRAM_APPLICATION_ID;
225 p_stop_info.PROGRAM_ID := pp_PROGRAM_ID;
226 p_stop_info.PROGRAM_UPDATE_DATE := pp_PROGRAM_UPDATE_DATE;
227 p_stop_info.REQUEST_ID := pp_REQUEST_ID;
228 p_stop_info.wkend_layover_stops := p_wkend_layover_stops;
229 p_stop_info.wkday_layover_stops := p_wkday_layover_stops;
230 p_stop_info.shipments_type_flag := p_shipments_type_flag;
231
232 --call public API
233
234 IF l_debug_on THEN
235 WSH_DEBUG_SV.log(l_module_name,
236 'FTE_MLS_WRAPPER.p_is_temp value ',p_is_temp);
237 END IF;
238
239
240 IF (p_is_temp = 'N' OR
241 p_is_temp IS NULL)
242 THEN
243
244 p_in_rec.caller:='FTEMLWRB';
245 p_in_rec.phase:=null;
246 p_in_rec.action_code:=p_action_code;
247 l_rec_attr_tab(1):=p_stop_info;
248 p_commit:='F';
249
250 WSH_INTERFACE_GRP.Create_Update_Stop(p_api_version_number=>p_api_version_number,
251 p_init_msg_list=>FND_API.G_FALSE,
252 p_commit=>p_commit,
253 p_in_rec=>p_in_rec,
254 p_rec_attr_tab=>l_rec_attr_tab,
255 x_stop_out_tab=> l_stop_out_tab,
256 x_return_status=>x_return_status,
257 x_msg_count=>x_msg_count,
258 x_msg_data=>x_msg_data
259 );
260
261 -- update carrier est dates
262 IF (p_action_code = 'UPDATE') THEN
263 UPDATE WSH_TRIP_STOPS
264 SET CARRIER_EST_DEPARTURE_DATE = pp_CARRIER_EST_DEPARTURE_DATE,
265 CARRIER_EST_ARRIVAL_DATE = pp_CARRIER_EST_ARRIVAL_DATE
266 WHERE STOP_ID = pp_STOP_ID;
267 END IF;
268
269
270 IF l_debug_on THEN
271 WSH_DEBUG_SV.log(l_module_name,
272 'FTE_MLS_WRAPPER.CREATE_UPDATE_STOP x_return_status',x_return_status);
273 END IF;
274
275
276 --# Bug 2911100 : HBHAGAVA
277 IF ( ( x_return_status = WSH_UTIL_CORE.G_RET_STS_SUCCESS
278 OR x_return_status = WSH_UTIL_CORE.G_RET_STS_WARNING)
279 AND l_stop_out_tab.count > 0) THEN
280 x_stop_id := l_stop_out_tab(l_stop_out_tab.FIRST).stop_id;
281 END IF;
282 ELSE
283 l_stop_seq := pp_STOP_SEQUENCE_NUMBER;
284
285 IF l_debug_on THEN
286 WSH_DEBUG_SV.log(l_module_name,
287 'FTE_MLS_WRAPPER.CREATE_UPDATE_STOP Stop Seq Number ',
288 l_stop_seq);
289
290 WSH_DEBUG_SV.log(l_module_name,
291 'FTE_MLS_WRAPPER.CREATE_UPDATE_STOP New Stop Seq Number ',
292 p_new_stop_sequence);
293
294 WSH_DEBUG_SV.log(l_module_name,
295 'FTE_MLS_WRAPPER.CREATE_UPDATE_STOP Stop stop id ',
296 p_stop_info.stop_id);
297
298 END IF;
299
300 /**
301 -- if stop seq number is null then it is a new stop
302 -- so we can use new stop sequence number
303 IF (l_stop_seq IS NULL)
304 THEN
305 l_stop_seq := p_new_stop_sequence;
306 p_stop_info.STOP_SEQUENCE_NUMBER := p_new_stop_sequence;
307 END IF;
308
309
310 FTE_MLS_WRAPPER.G_STOPS_TAB_REC(l_stop_seq) := p_stop_info;
311
312 l_stop_seq_rec.OLD_STOP_SEQUENCE_NUMBER := l_stop_seq;
313 l_stop_seq_rec.NEW_STOP_SEQUENCE_NUMBER := p_new_stop_sequence;
314 FTE_MLS_WRAPPER.G_STOPS_SEQ_TAB(l_stop_seq) := l_stop_seq_rec;
315 */
316 -- Changed based on shipping changes to stop seq id
317
318
319 FTE_MLS_WRAPPER.G_STOPS_TAB_REC(p_new_stop_sequence) := p_stop_info;
320
321 l_stop_seq_rec.OLD_STOP_SEQUENCE_NUMBER := l_stop_seq;
322 l_stop_seq_rec.NEW_STOP_SEQUENCE_NUMBER := p_new_stop_sequence;
323 FTE_MLS_WRAPPER.G_STOPS_SEQ_TAB(p_new_stop_sequence) := l_stop_seq_rec;
324
325
326 IF l_debug_on THEN
327 WSH_DEBUG_SV.log(l_module_name,
328 'FTE_MLS_WRAPPER.CREATE_UPDATE_STOP Adding to temp table');
329 END IF;
330
331 END IF;
332
333
334 FND_MSG_PUB.Count_And_Get (
335 p_count => x_msg_count,
336 p_data => x_msg_data);
337
338 IF l_debug_on THEN
339 WSH_DEBUG_SV.pop(l_module_name);
340 END IF;
341
342 EXCEPTION
343 WHEN FND_API.G_EXC_ERROR THEN
344 ROLLBACK TO CREATE_UPDATE_STOP_PUB;
345 x_return_status := FND_API.G_RET_STS_ERROR;
346 FND_MSG_PUB.Count_And_Get
347 (
348 p_count => x_msg_count,
349 p_data => x_msg_data,
350 p_encoded => FND_API.G_FALSE
351 );
352 IF l_debug_on THEN
353 WSH_DEBUG_SV.pop(l_module_name);
354 END IF;
355
356 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
357 ROLLBACK TO CREATE_UPDATE_STOP_PUB;
358 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
359 FND_MSG_PUB.Count_And_Get
360 (
361 p_count => x_msg_count,
362 p_data => x_msg_data,
363 p_encoded => FND_API.G_FALSE
364 );
365 IF l_debug_on THEN
366 WSH_DEBUG_SV.pop(l_module_name);
367 END IF;
368 WHEN OTHERS THEN
369 ROLLBACK TO CREATE_UPDATE_STOP_PUB;
370 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
371 FND_MSG_PUB.Count_And_Get
372 (
373 p_count => x_msg_count,
374 p_data => x_msg_data,
375 p_encoded => FND_API.G_FALSE
376 );
377 IF l_debug_on THEN
378 WSH_DEBUG_SV.pop(l_module_name);
379 END IF;
380 END Create_Update_Stop;
381
382
383
384 -- PROCEDURE : Stop_Action
385 -- p_action_code 'DELETE'
386 PROCEDURE Stop_Action
387 ( p_api_version_number IN NUMBER,
388 p_init_msg_list IN VARCHAR2,
389 x_return_status OUT NOCOPY VARCHAR2,
390 x_msg_count OUT NOCOPY NUMBER,
391 x_msg_data OUT NOCOPY VARCHAR2,
392 p_action_code IN VARCHAR2,
393 p_stop_id IN NUMBER DEFAULT NULL,
394 p_trip_id IN NUMBER DEFAULT NULL,
395 p_trip_name IN VARCHAR2 DEFAULT NULL,
396 p_stop_location_id IN NUMBER DEFAULT NULL,
397 p_stop_location_code IN VARCHAR2 DEFAULT NULL,
398 p_planned_dep_date IN DATE DEFAULT NULL,
399 p_actual_date IN DATE DEFAULT NULL,
400 p_defer_interface_flag IN VARCHAR2 DEFAULT 'Y')
401
402 IS
403
404 x_stop_out_rec WSH_TRIP_STOPS_GRP.stopActionOutRecType;
405
406 p_action_prms WSH_TRIP_STOPS_GRP.action_parameters_rectype;
407 p_entity_id_tab WSH_UTIL_CORE.id_tab_type;
408 p_commit VARCHAR2(1);
409
410 --
411 l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
412 --
413 l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME || '.' || 'STOP_ACTION';
414
415 l_return_status VARCHAR2(32767);
416 l_msg_count NUMBER;
417 l_msg_data VARCHAR2(32767);
418 l_number_of_warnings NUMBER;
419 l_number_of_errors NUMBER;
420
421
422 BEGIN
423
424 SAVEPOINT STOP_ACTION_PUB;
425
426 -- Initialize message list if p_init_msg_list is set to TRUE.
427 --
428 --
429 IF FND_API.to_Boolean( p_init_msg_list )
430 THEN
431 FND_MSG_PUB.initialize;
432 END IF;
433 --
434 --
435 -- Initialize API return status to success
436 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
437 x_msg_count := 0;
438 x_msg_data := 0;
439 l_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
440 l_number_of_warnings := 0;
441 l_number_of_errors := 0;
442
443 IF l_debug_on THEN
444 wsh_debug_sv.push(l_module_name);
445 END IF;
446
447
448 p_entity_id_tab(1):=p_stop_id;
449 IF (p_action_code = 'ARRIVE' OR
450 p_action_code = 'CLOSE')
451 THEN
452 p_action_prms.action_code := 'UPDATE-STATUS';
453 p_action_prms.stop_action := p_action_code;
454 ELSE
455 p_action_prms.action_code:=p_action_code;
456 END IF;
457
458 p_action_prms.phase:=NULL;
459 p_action_prms.caller:=G_PKG_NAME;
460 p_action_prms.actual_date := p_actual_date;
461 p_commit:='F';
462
463 WSH_INTERFACE_GRP.Stop_Action
464 ( p_api_version_number => p_api_version_number,
465 p_init_msg_list => FND_API.G_FALSE,
466 p_commit => p_commit,
467 p_entity_id_tab => p_entity_id_tab,
468 p_action_prms => p_action_prms,
469 x_stop_out_rec => x_stop_out_rec,
470 x_return_status => l_return_status ,
471 x_msg_count => l_msg_count,
472 x_msg_data => l_msg_data
473
474 );
475
476 IF l_debug_on THEN
477 WSH_DEBUG_SV.logmsg(l_module_name,' WSH_INTERFACE_GRP.After calling stop action');
478 WSH_DEBUG_SV.logmsg(l_module_name,'l_return_status:' || l_return_status);
479 WSH_DEBUG_SV.logmsg(l_module_name,'l_msg_count:' || l_msg_count);
480 WSH_DEBUG_SV.logmsg(l_module_name,'l_msg_count:' || l_msg_data);
481
482 END IF;
483
484
485 wsh_util_core.api_post_call(
486 p_return_status =>l_return_status,
487 x_num_warnings =>l_number_of_warnings,
488 x_num_errors =>l_number_of_errors,
489 p_msg_data =>l_msg_data);
490
491 IF l_number_of_errors > 0
492 THEN
493 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
494 ELSIF l_number_of_warnings > 0
495 THEN
496 x_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
497 ELSE
498 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
499 END IF;
500
501 FND_MSG_PUB.Count_And_Get
502 (
503 p_count => x_msg_count,
504 p_data => x_msg_data,
505 p_encoded => FND_API.G_FALSE
506 );
507
508 IF l_debug_on THEN
509 WSH_DEBUG_SV.pop(l_module_name);
510 END IF;
511
512
513 EXCEPTION
514 WHEN FND_API.G_EXC_ERROR THEN
515 ROLLBACK TO STOP_ACTION_PUB;
516 x_return_status := FND_API.G_RET_STS_ERROR;
517 FND_MSG_PUB.Count_And_Get
518 (
519 p_count => x_msg_count,
520 p_data => x_msg_data,
521 p_encoded => FND_API.G_FALSE
522 );
523 IF l_debug_on THEN
524 WSH_DEBUG_SV.pop(l_module_name);
525 END IF;
526
527 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
528 ROLLBACK TO STOP_ACTION_PUB;
529 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
530 FND_MSG_PUB.Count_And_Get
531 (
532 p_count => x_msg_count,
533 p_data => x_msg_data,
534 p_encoded => FND_API.G_FALSE
535 );
536 IF l_debug_on THEN
537 WSH_DEBUG_SV.pop(l_module_name);
538 END IF;
539 WHEN OTHERS THEN
540 ROLLBACK TO STOP_ACTION_PUB;
541 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
542 FND_MSG_PUB.Count_And_Get
543 (
544 p_count => x_msg_count,
545 p_data => x_msg_data,
546 p_encoded => FND_API.G_FALSE
547 );
548 IF l_debug_on THEN
549 WSH_DEBUG_SV.pop(l_module_name);
550 END IF;
551 END Stop_Action;
552
553
554
555 --DELIVERY
556 --p_action_code will be either 'ASSIGN-TRIP','UNASSIGN-TRIP'
557 PROCEDURE Delivery_Action
558 ( p_api_version_number IN NUMBER,
559 p_init_msg_list IN VARCHAR2,
560 x_return_status OUT NOCOPY VARCHAR2,
561 x_msg_count OUT NOCOPY NUMBER,
562 x_msg_data OUT NOCOPY VARCHAR2,
563 p_action_code IN VARCHAR2,
564 p_delivery_id IN NUMBER DEFAULT NULL,
565 p_delivery_name IN VARCHAR2 DEFAULT NULL,
566 p_asg_trip_id IN NUMBER DEFAULT NULL,
567 p_asg_trip_name IN VARCHAR2 DEFAULT NULL,
568 p_asg_pickup_stop_id IN NUMBER DEFAULT NULL,
569 p_asg_pickup_loc_id IN NUMBER DEFAULT NULL,
570 p_asg_pickup_loc_code IN VARCHAR2 DEFAULT NULL,
571 p_asg_pickup_arr_date IN DATE DEFAULT NULL,
572 p_asg_pickup_dep_date IN DATE DEFAULT NULL,
573 p_asg_dropoff_stop_id IN NUMBER DEFAULT NULL,
574 p_asg_dropoff_loc_id IN NUMBER DEFAULT NULL,
575 p_asg_dropoff_loc_code IN VARCHAR2 DEFAULT NULL,
576 p_asg_dropoff_arr_date IN DATE DEFAULT NULL,
577 p_asg_dropoff_dep_date IN DATE DEFAULT NULL,
578 p_sc_action_flag IN VARCHAR2 DEFAULT 'S',
579 p_sc_intransit_flag IN VARCHAR2 DEFAULT 'N',
580 p_sc_close_trip_flag IN VARCHAR2 DEFAULT 'N',
581 p_sc_create_bol_flag IN VARCHAR2 DEFAULT 'N',
582 p_sc_stage_del_flag IN VARCHAR2 DEFAULT 'Y',
583 p_sc_trip_ship_method IN VARCHAR2 DEFAULT NULL,
584 p_sc_actual_dep_date IN DATE DEFAULT NULL,
585 p_sc_report_set_id IN NUMBER DEFAULT NULL,
586 p_sc_report_set_name IN VARCHAR2 DEFAULT NULL,
587 p_sc_defer_interface_flag IN VARCHAR2 DEFAULT 'Y',
588 p_wv_override_flag IN VARCHAR2 DEFAULT 'N',
589 x_trip_id OUT NOCOPY VARCHAR2,
590 x_trip_name OUT NOCOPY VARCHAR2,
591 x_delivery_leg_id OUT NOCOPY NUMBER ,
592 x_delivery_leg_seq OUT NOCOPY NUMBER )
593 IS
594 --{
595 CURSOR delivery_leg_cur
596 IS
597 SELECT delivery_leg_id, sequence_number
598 FROM wsh_delivery_legs wdl,
599 wsh_trip_stops wts
600 WHERE wts.trip_id = p_asg_trip_id
601 AND wts.stop_id = wdl.pick_up_stop_id
602 AND wdl.pick_up_stop_id = p_asg_pickup_stop_id
603 AND wdl.delivery_id = p_delivery_id;
604
605 --}
606
607 p_commit VARCHAR2(1);
608 l_action_prms WSH_DELIVERIES_GRP.action_parameters_rectype;
609 l_delivery_id_tab WSH_UTIL_CORE.id_tab_type;
610 l_delivery_out_rec WSH_DELIVERIES_GRP.Delivery_Action_Out_Rec_Type;
611
612
613
614 l_number_of_errors NUMBER;
615 l_number_of_warnings NUMBER;
616 l_return_status VARCHAR2(32767);
617 l_msg_count NUMBER;
618 l_index NUMBER;
619 l_msg_data VARCHAR2(32767);
620
621
622 --
623 l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
624 --
625 l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME || '.' || 'DELIVERY_ACTION';
626
627
628 BEGIN
629
630 SAVEPOINT DELIVERY_ACTION_PUB;
631
632 -- Initialize message list if p_init_msg_list is set to TRUE.
633 --
634 --
635 IF FND_API.to_Boolean( p_init_msg_list )
636 THEN
637 FND_MSG_PUB.initialize;
638 END IF;
639 --
640 --
641 -- Initialize API return status to success
642 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
643 x_msg_count := 0;
644 x_msg_data := 0;
645
646 l_number_of_errors := 0;
647 l_number_of_warnings := 0;
648
649 IF l_debug_on THEN
650 wsh_debug_sv.push(l_module_name);
651 END IF;
652
653
654 p_commit:='F';
655 l_action_prms.caller:=G_PKG_NAME;
656 l_action_prms.phase:=NULL;
657
658 l_action_prms.action_code:=p_action_code;
659 l_action_prms.trip_id := p_asg_trip_id;
660 l_action_prms.trip_name := p_asg_trip_name;
661 l_action_prms.pickup_stop_id := p_asg_pickup_stop_id;
662 l_action_prms.pickup_loc_id := p_asg_pickup_loc_id;
663 -- l_action_prms.pickup_stop_seq := p_asg_pickup_stop_seq;
664 l_action_prms.pickup_loc_code := p_asg_pickup_loc_code;
665 l_action_prms.pickup_arr_date := p_asg_pickup_arr_date;
666 l_action_prms.pickup_dep_date := p_asg_pickup_dep_date;
667 l_action_prms.dropoff_stop_id := p_asg_dropoff_stop_id;
668 l_action_prms.dropoff_loc_id := p_asg_dropoff_loc_id;
669 -- l_action_prms.dropoff_stop_seq := p_asg_dropoff_stop_seq;
670 l_action_prms.dropoff_loc_code := p_asg_dropoff_loc_code;
671 l_action_prms.dropoff_arr_date := p_asg_dropoff_arr_date;
672 l_action_prms.dropoff_dep_date := p_asg_dropoff_dep_date;
673 l_action_prms.action_flag := p_sc_action_flag;
674 l_action_prms.intransit_flag := p_sc_intransit_flag;
675 l_action_prms.close_trip_flag := p_sc_close_trip_flag;
676 -- l_action_prms.create_bol_flag := p_sc_create_bol_flag;
677 l_action_prms.stage_del_flag := p_sc_stage_del_flag;
678 l_action_prms.ship_method_code := p_sc_trip_ship_method;
679 l_action_prms.actual_dep_date := p_sc_actual_dep_date;
680 l_action_prms.report_set_id := p_sc_report_set_id;
681 l_action_prms.report_set_name := p_sc_report_set_name;
682 l_action_prms.defer_interface_flag := p_sc_defer_interface_flag;
683 l_action_prms.override_flag := p_wv_override_flag;
684 l_delivery_id_tab(1) := p_delivery_id;
685
686
687 --call public API
688
689 WSH_INTERFACE_GRP.Delivery_Action
690 ( p_api_version_number =>p_api_version_number, -- NUMBER
691 p_init_msg_list =>FND_API.G_FALSE, -- VARCHAR2
692 p_action_prms =>l_action_prms, -- WSH_DELIVERIES_GRP.action_parameters_rectype,
693 p_delivery_id_tab =>l_delivery_id_tab, -- wsh_util_core.id_tab_type,
694 x_delivery_out_rec =>l_delivery_out_rec, -- WSH_DELIVERIES_GRP.Delivery_Action_Out_Rec_Type,
695 x_return_status =>l_return_status,
696 x_msg_count =>l_msg_count,
697 x_msg_data =>l_msg_data
698 );
699
700
701 IF l_debug_on THEN
702 WSH_DEBUG_SV.logmsg(l_module_name,
703 ' WSH_INTERFACE_GRP.DeliveryAction Return status ' || x_return_status,
704 WSH_DEBUG_SV.C_PROC_LEVEL);
705 END IF;
706
707 wsh_util_core.api_post_call(
708 p_return_status =>l_return_status,
709 x_num_warnings =>l_number_of_warnings,
710 x_num_errors =>l_number_of_errors,
711 p_msg_data =>l_msg_data);
712
713 IF l_debug_on THEN
714 WSH_DEBUG_SV.logmsg(l_module_name,
715 'after wsh_util_core: x_return_status ' || x_return_status || ' l_return_status '||l_return_status,
716 WSH_DEBUG_SV.C_PROC_LEVEL);
717 END IF;
718
719 x_return_status := l_return_status;
720
721 IF (x_return_status = 'E')
722 THEN
723 RAISE FND_API.G_EXC_ERROR;
724 ELSIF (x_return_status = 'U')
725 THEN
726 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
727 END IF;
728
729
730
731 --
732 -- x_trip_id := l_delivery_out_rec.trip_id;
733 -- x_trip_name := l_delivery_out_rec.trip_name;
734 --
735
736 IF (x_return_status = WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
737 l_delivery_out_rec.result_id_tab.count > 0) THEN
738 x_trip_id := l_delivery_out_rec.result_id_tab(1);
739 --x_trip_name := l_delivery_out_rec(l_delivery_out_rec.FIRST).trip_name;
740 END IF;
741
742 --
743 FOR delivery_leg_rec IN delivery_leg_cur
744 LOOP
745 --{
746 x_delivery_leg_id := delivery_leg_rec.delivery_leg_id;
747 x_delivery_leg_seq := delivery_leg_rec.sequence_number;
748 --}
749 END LOOP;
750
751 FND_MSG_PUB.Count_And_Get
752 (
753 p_count => x_msg_count,
754 p_data => x_msg_data,
755 p_encoded => FND_API.G_FALSE
756 );
757
758 IF l_debug_on THEN
759 WSH_DEBUG_SV.pop(l_module_name);
760 END IF;
761
762
763 EXCEPTION
764 WHEN FND_API.G_EXC_ERROR THEN
765 ROLLBACK TO DELIVERY_ACTION_PUB;
766 x_return_status := FND_API.G_RET_STS_ERROR;
767 FND_MSG_PUB.Count_And_Get
768 (
769 p_count => x_msg_count,
770 p_data => x_msg_data,
771 p_encoded => FND_API.G_FALSE
772 );
773 IF l_debug_on THEN
774 WSH_DEBUG_SV.pop(l_module_name);
775 END IF;
776
777 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
778 ROLLBACK TO DELIVERY_ACTION_PUB;
779 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
780 FND_MSG_PUB.Count_And_Get
781 (
782 p_count => x_msg_count,
783 p_data => x_msg_data,
784 p_encoded => FND_API.G_FALSE
785 );
786 IF l_debug_on THEN
787 WSH_DEBUG_SV.pop(l_module_name);
788 END IF;
789
790 WHEN OTHERS THEN
791 ROLLBACK TO DELIVERY_ACTION_PUB;
792 WSH_UTIL_CORE.DEFAULT_HANDLER('FTE_MLS_WRAPPER.Delivery_Action');
793 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
794 FND_MSG_PUB.Count_And_Get
795 (
796 p_count => x_msg_count,
797 p_data => x_msg_data,
798 p_encoded => FND_API.G_FALSE
799 );
800 IF l_debug_on THEN
801 WSH_DEBUG_SV.pop(l_module_name);
802 END IF;
803
804 END Delivery_Action;
805
806 PROCEDURE Create_Update_Trip
807
808 ( p_api_version_number IN NUMBER,
809 p_init_msg_list IN VARCHAR2,
810 x_return_status OUT NOCOPY VARCHAR2,
811 x_msg_count OUT NOCOPY NUMBER,
812 x_msg_data OUT NOCOPY VARCHAR2,
813 x_trip_id OUT NOCOPY NUMBER,
814 x_trip_name OUT NOCOPY VARCHAR2,
815 p_action_code IN VARCHAR2,
816 p_rec_TRIP_ID IN NUMBER DEFAULT FND_API.G_MISS_NUM,
817 p_rec_NAME IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
818 p_rec_ARRIVE_AFTER_TRIP_ID IN NUMBER DEFAULT FND_API.G_MISS_NUM,
819 p_rec_ARRIVE_AFTER_TRIP_NAME IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
820 p_rec_VEHICLE_ITEM_ID IN NUMBER DEFAULT FND_API.G_MISS_NUM,
821 p_rec_VEHICLE_ITEM_DESC IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
822 p_rec_VEHICLE_ORGANIZATION_ID IN NUMBER DEFAULT FND_API.G_MISS_NUM,
823 p_rec_VEHICLE_ORGANIZATION_COD IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
824 p_rec_VEHICLE_NUMBER IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
825 p_rec_VEHICLE_NUM_PREFIX IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
826 p_rec_CARRIER_ID IN NUMBER DEFAULT FND_API.G_MISS_NUM,
827 p_rec_SHIP_METHOD_CODE IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
828 p_rec_SHIP_METHOD_NAME IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
829 p_rec_ROUTE_ID IN NUMBER DEFAULT FND_API.G_MISS_NUM,
830 p_rec_ROUTING_INSTRUCTIONS IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
831 p_rec_ATTRIBUTE_CATEGORY IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
832 p_rec_ATTRIBUTE1 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
833 p_rec_ATTRIBUTE2 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
834 p_rec_ATTRIBUTE3 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
835 p_rec_ATTRIBUTE4 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
836 p_rec_ATTRIBUTE5 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
837 p_rec_ATTRIBUTE6 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
838 p_rec_ATTRIBUTE7 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
839 p_rec_ATTRIBUTE8 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
840 p_rec_ATTRIBUTE9 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
841 p_rec_ATTRIBUTE10 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
842 p_rec_ATTRIBUTE11 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
843 p_rec_ATTRIBUTE12 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
844 p_rec_ATTRIBUTE13 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
845 p_rec_ATTRIBUTE14 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
846 p_rec_ATTRIBUTE15 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
847 p_rec_SERVICE_LEVEL IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
848 p_rec_MODE_OF_TRANSPORT IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
849 p_rec_CONSOLIDATION_ALLOWED IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
850 p_rec_PLANNED_FLAG IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
851 p_rec_STATUS_CODE IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
852 p_rec_FREIGHT_TERMS_CODE IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
853 p_rec_LOAD_TENDER_STATUS IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
854 p_rec_ROUTE_LANE_ID IN NUMBER DEFAULT FND_API.G_MISS_NUM,
855 p_rec_LANE_ID IN NUMBER DEFAULT FND_API.G_MISS_NUM,
856 p_rec_SCHEDULE_ID IN NUMBER DEFAULT FND_API.G_MISS_NUM,
857 p_rec_BOOKING_NUMBER IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
858 p_rec_CREATION_DATE IN DATE DEFAULT FND_API.G_MISS_DATE,
859 p_rec_CREATED_BY IN NUMBER DEFAULT FND_API.G_MISS_NUM,
860 p_rec_LAST_UPDATE_DATE IN DATE DEFAULT FND_API.G_MISS_DATE,
861 p_rec_LAST_UPDATED_BY IN NUMBER DEFAULT FND_API.G_MISS_NUM,
862 p_rec_LAST_UPDATE_LOGIN IN NUMBER DEFAULT FND_API.G_MISS_NUM,
863 p_rec_PROGRAM_APPLICATION_ID IN NUMBER DEFAULT FND_API.G_MISS_NUM,
864 p_rec_PROGRAM_ID IN NUMBER DEFAULT FND_API.G_MISS_NUM,
865 p_rec_PROGRAM_UPDATE_DATE IN DATE DEFAULT FND_API.G_MISS_DATE,
866 p_rec_REQUEST_ID IN NUMBER DEFAULT FND_API.G_MISS_NUM,
867 p_trip_name IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
868 p_carrier_contact_id IN NUMBER DEFAULT FND_API.G_MISS_NUM,
869 p_carrier_contact_name IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
870 p_shipper_name IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
871 p_shipper_wait_time IN NUMBER DEFAULT FND_API.G_MISS_NUM,
872 p_wait_time_uom IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
873 p_wf_name IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
874 p_wf_process_name IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
875 p_wf_item_key IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
876 p_load_tender_number IN NUMBER DEFAULT FND_API.G_MISS_NUM,
877 p_action IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
878 p_autoaccept IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
879 p_url IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
880 p_carrier_remarks IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
881 p_operator IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
882 p_rec_IGNORE_FOR_PLANNING IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
883 p_rec_CONSIGNEE_CAR_AC_NO IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
884 p_rec_CARRIER_REF_NUMBER IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
885 p_rec_ROUTING_RULE_ID IN NUMBER DEFAULT FND_API.G_MISS_NUM,
886 p_rec_APPEND_FLAG IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
887 p_rec_RANK_ID IN NUMBER DEFAULT FND_API.G_MISS_NUM
888 )
889 IS
890
891 l_creation_date DATE;
892 l_created_by NUMBER;
893 l_last_update_date DATE;
894 l_last_updated_by NUMBER;
895 l_last_update_login NUMBER;
896
897 l_number_of_warnings NUMBER;
898 l_number_of_errors NUMBER;
899 l_return_status VARCHAR2(32767);
900 l_msg_count NUMBER;
901 l_msg_data VARCHAR2(32767);
902
903 l_trip_id NUMBER;
904
905 BEGIN
906
907 SAVEPOINT CREATE_UPDATE_TRIP_OLD_PUB;
908
909
910 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
911 x_msg_count := 0;
912 x_msg_data := 0;
913 l_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
914 l_number_of_warnings := 0;
915 l_number_of_errors := 0;
916
917 Create_Update_Trip(p_api_version_number => p_api_version_number,
918 p_init_msg_list => p_init_msg_list ,
919 x_return_status => l_return_status ,
920 x_msg_count => l_msg_count ,
921 x_msg_data => l_msg_data ,
922 x_trip_id => l_trip_id ,
923 x_trip_name => x_trip_name ,
924 x_CREATION_DATE => l_CREATION_DATE ,
925 x_CREATED_BY => l_CREATED_BY ,
926 x_LAST_UPDATE_DATE => l_LAST_UPDATE_DATE ,
927 x_LAST_UPDATED_BY => l_LAST_UPDATED_BY ,
928 x_LAST_UPDATE_LOGIN => l_LAST_UPDATE_LOGIN ,
929 p_action_code => p_action_code ,
930 p_rec_TRIP_ID => p_rec_TRIP_ID,
931 p_rec_NAME => p_rec_NAME ,
932 p_rec_ARRIVE_AFTER_TRIP_ID => p_rec_ARRIVE_AFTER_TRIP_ID ,
933 p_rec_ARRIVE_AFTER_TRIP_NAME => p_rec_ARRIVE_AFTER_TRIP_NAME,
934 p_rec_VEHICLE_ITEM_ID => p_rec_VEHICLE_ITEM_ID ,
935 p_rec_VEHICLE_ITEM_DESC => p_rec_VEHICLE_ITEM_DESC ,
936 p_rec_VEHICLE_ORGANIZATION_ID => p_rec_VEHICLE_ORGANIZATION_ID,
937 p_rec_VEHICLE_ORGANIZATION_COD => p_rec_VEHICLE_ORGANIZATION_COD,
938 p_rec_VEHICLE_NUMBER => p_rec_VEHICLE_NUMBER ,
939 p_rec_VEHICLE_NUM_PREFIX => p_rec_VEHICLE_NUM_PREFIX ,
940 p_rec_CARRIER_ID => p_rec_CARRIER_ID ,
941 p_rec_SHIP_METHOD_CODE => p_rec_SHIP_METHOD_CODE ,
942 p_rec_SHIP_METHOD_NAME => p_rec_SHIP_METHOD_NAME ,
943 p_rec_ROUTE_ID => p_rec_ROUTE_ID ,
944 p_rec_ROUTING_INSTRUCTIONS => p_rec_ROUTING_INSTRUCTIONS ,
945 p_rec_ATTRIBUTE_CATEGORY => p_rec_ATTRIBUTE_CATEGORY ,
946 p_rec_ATTRIBUTE1 => p_rec_ATTRIBUTE1 ,
947 p_rec_ATTRIBUTE2 => p_rec_ATTRIBUTE2 ,
948 p_rec_ATTRIBUTE3 => p_rec_ATTRIBUTE3 ,
949 p_rec_ATTRIBUTE4 => p_rec_ATTRIBUTE4 ,
950 p_rec_ATTRIBUTE5 => p_rec_ATTRIBUTE5 ,
951 p_rec_ATTRIBUTE6 => p_rec_ATTRIBUTE6 ,
952 p_rec_ATTRIBUTE7 => p_rec_ATTRIBUTE7 ,
953 p_rec_ATTRIBUTE8 => p_rec_ATTRIBUTE8 ,
954 p_rec_ATTRIBUTE9 => p_rec_ATTRIBUTE9 ,
955 p_rec_ATTRIBUTE10 => p_rec_ATTRIBUTE10 ,
956 p_rec_ATTRIBUTE11 => p_rec_ATTRIBUTE11 ,
957 p_rec_ATTRIBUTE12 => p_rec_ATTRIBUTE12 ,
958 p_rec_ATTRIBUTE13 => p_rec_ATTRIBUTE13 ,
959 p_rec_ATTRIBUTE14 => p_rec_ATTRIBUTE14 ,
960 p_rec_ATTRIBUTE15 => p_rec_ATTRIBUTE15 ,
961 p_rec_SERVICE_LEVEL => p_rec_SERVICE_LEVEL ,
962 p_rec_MODE_OF_TRANSPORT => p_rec_MODE_OF_TRANSPORT ,
963 p_rec_CONSOLIDATION_ALLOWED => p_rec_CONSOLIDATION_ALLOWED ,
964 p_rec_PLANNED_FLAG => p_rec_PLANNED_FLAG ,
965 p_rec_STATUS_CODE => p_rec_STATUS_CODE ,
966 p_rec_FREIGHT_TERMS_CODE => p_rec_FREIGHT_TERMS_CODE ,
967 p_rec_LOAD_TENDER_STATUS => p_rec_LOAD_TENDER_STATUS ,
968 p_rec_ROUTE_LANE_ID => p_rec_ROUTE_LANE_ID ,
969 p_rec_LANE_ID => p_rec_LANE_ID ,
970 p_rec_SCHEDULE_ID => p_rec_SCHEDULE_ID ,
971 p_rec_BOOKING_NUMBER => p_rec_BOOKING_NUMBER ,
972 p_rec_CREATION_DATE => p_rec_CREATION_DATE ,
973 p_rec_CREATED_BY => p_rec_CREATED_BY ,
974 p_rec_LAST_UPDATE_DATE => p_rec_LAST_UPDATE_DATE ,
975 p_rec_LAST_UPDATED_BY => p_rec_LAST_UPDATED_BY ,
976 p_rec_LAST_UPDATE_LOGIN => p_rec_LAST_UPDATE_LOGIN ,
977 p_rec_PROGRAM_APPLICATION_ID => p_rec_PROGRAM_APPLICATION_ID,
978 p_rec_PROGRAM_ID => p_rec_PROGRAM_ID ,
979 p_rec_PROGRAM_UPDATE_DATE => p_rec_PROGRAM_UPDATE_DATE ,
980 p_rec_REQUEST_ID => p_rec_REQUEST_ID ,
981 p_carrier_contact_id => p_carrier_contact_id ,
982 p_shipper_name => p_shipper_name ,
983 p_shipper_wait_time => p_shipper_wait_time ,
984 p_wait_time_uom => p_wait_time_uom ,
985 p_action => p_action ,
986 p_carrier_remarks => p_carrier_remarks ,
987 p_operator => p_operator,
988 p_rec_IGNORE_FOR_PLANNING => p_rec_IGNORE_FOR_PLANNING ,
989 p_rec_CONSIGNEE_CAR_AC_NO => p_rec_CONSIGNEE_CAR_AC_NO ,
990 p_rec_CARRIER_REF_NUMBER => p_rec_CARRIER_REF_NUMBER ,
991 p_rec_ROUTING_RULE_ID => p_rec_ROUTING_RULE_ID ,
992 p_rec_APPEND_FLAG => p_rec_APPEND_FLAG ,
993 p_rec_RANK_ID => p_rec_RANK_ID );
994
995
996 x_trip_id := l_trip_id;
997
998 wsh_util_core.api_post_call(
999 p_return_status =>l_return_status,
1000 x_num_warnings =>l_number_of_warnings,
1001 x_num_errors =>l_number_of_errors,
1002 p_msg_data =>l_msg_data);
1003
1004 IF l_number_of_errors > 0
1005 THEN
1006 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1007 ELSIF l_number_of_warnings > 0
1008 THEN
1009 x_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
1010 ELSE
1011 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
1012 END IF;
1013
1014 FND_MSG_PUB.Count_And_Get
1015 (
1016 p_count => x_msg_count,
1017 p_data => x_msg_data,
1018 p_encoded => FND_API.G_FALSE
1019 );
1020
1021 EXCEPTION
1022 WHEN FND_API.G_EXC_ERROR THEN
1023 ROLLBACK TO CREATE_UPDATE_TRIP_OLD_PUB;
1024 x_return_status := FND_API.G_RET_STS_ERROR;
1025 FND_MSG_PUB.Count_And_Get
1026 (
1027 p_count => x_msg_count,
1028 p_data => x_msg_data,
1029 p_encoded => FND_API.G_FALSE
1030 );
1031 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1032 ROLLBACK TO CREATE_UPDATE_TRIP_OLD_PUB;
1033 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1034 FND_MSG_PUB.Count_And_Get
1035 (
1036 p_count => x_msg_count,
1037 p_data => x_msg_data,
1038 p_encoded => FND_API.G_FALSE
1039 );
1040 WHEN OTHERS THEN
1041 ROLLBACK TO CREATE_UPDATE_TRIP_OLD_PUB;
1042 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1043 FND_MSG_PUB.Count_And_Get
1044 (
1045 p_count => x_msg_count,
1046 p_data => x_msg_data,
1047 p_encoded => FND_API.G_FALSE
1048 );
1049 END Create_Update_Trip;
1050
1051 --========================================================================
1052 -- PROCEDURE : Create_Update_Trip FTE wrapper
1053 --
1054 -- COMMENT : Wrapper around WSH_TRIPS_PUB.Create_Update_Trip
1055 -- Passes in all the parameters reqd (record type input changed to
1056 -- number of parameters which are collected, assigned to a record
1057 -- and call WSH_TRIPS_PUB.Create_Update_Trip
1058 -- MODIFIED 09/04/2002 HBHAGAVA
1059 -- Added new paramters for Load Tender
1060 -- p_rec_tender_id
1061 -- p_delivery_leg_ids
1062 --========================================================================
1063 PROCEDURE Create_Update_Trip
1064 ( p_api_version_number IN NUMBER,
1065 p_init_msg_list IN VARCHAR2,
1066 x_return_status OUT NOCOPY VARCHAR2,
1067 x_msg_count OUT NOCOPY NUMBER,
1068 x_msg_data OUT NOCOPY VARCHAR2,
1069 x_trip_id OUT NOCOPY NUMBER,
1070 x_trip_name OUT NOCOPY VARCHAR2,
1071 x_CREATION_DATE OUT NOCOPY DATE,
1072 x_CREATED_BY OUT NOCOPY NUMBER,
1073 x_LAST_UPDATE_DATE OUT NOCOPY DATE,
1074 x_LAST_UPDATED_BY OUT NOCOPY NUMBER,
1075 x_LAST_UPDATE_LOGIN OUT NOCOPY NUMBER,
1076 p_action_code IN VARCHAR2,
1077 p_rec_TRIP_ID IN NUMBER DEFAULT FND_API.G_MISS_NUM,
1078 p_rec_NAME IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1079 p_rec_ARRIVE_AFTER_TRIP_ID IN NUMBER DEFAULT FND_API.G_MISS_NUM,
1080 p_rec_ARRIVE_AFTER_TRIP_NAME IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1081 p_rec_VEHICLE_ITEM_ID IN NUMBER DEFAULT FND_API.G_MISS_NUM,
1082 p_rec_VEHICLE_ITEM_DESC IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1083 p_rec_VEHICLE_ORGANIZATION_ID IN NUMBER DEFAULT FND_API.G_MISS_NUM,
1084 p_rec_VEHICLE_ORGANIZATION_COD IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1085 p_rec_VEHICLE_NUMBER IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1086 p_rec_VEHICLE_NUM_PREFIX IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1087 p_rec_CARRIER_ID IN NUMBER DEFAULT FND_API.G_MISS_NUM,
1088 p_rec_SHIP_METHOD_CODE IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1089 p_rec_SHIP_METHOD_NAME IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1090 p_rec_ROUTE_ID IN NUMBER DEFAULT FND_API.G_MISS_NUM,
1091 p_rec_ROUTING_INSTRUCTIONS IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1092 p_rec_ATTRIBUTE_CATEGORY IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1093 p_rec_ATTRIBUTE1 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1094 p_rec_ATTRIBUTE2 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1095 p_rec_ATTRIBUTE3 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1096 p_rec_ATTRIBUTE4 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1097 p_rec_ATTRIBUTE5 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1098 p_rec_ATTRIBUTE6 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1099 p_rec_ATTRIBUTE7 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1100 p_rec_ATTRIBUTE8 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1101 p_rec_ATTRIBUTE9 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1102 p_rec_ATTRIBUTE10 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1103 p_rec_ATTRIBUTE11 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1104 p_rec_ATTRIBUTE12 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1105 p_rec_ATTRIBUTE13 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1106 p_rec_ATTRIBUTE14 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1107 p_rec_ATTRIBUTE15 IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1108 p_rec_SERVICE_LEVEL IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1109 p_rec_MODE_OF_TRANSPORT IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1110 p_rec_CONSOLIDATION_ALLOWED IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1111 p_rec_PLANNED_FLAG IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1112 p_rec_STATUS_CODE IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1113 p_rec_FREIGHT_TERMS_CODE IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1114 p_rec_LOAD_TENDER_STATUS IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1115 p_rec_ROUTE_LANE_ID IN NUMBER DEFAULT FND_API.G_MISS_NUM,
1116 p_rec_LANE_ID IN NUMBER DEFAULT FND_API.G_MISS_NUM,
1117 p_rec_SCHEDULE_ID IN NUMBER DEFAULT FND_API.G_MISS_NUM,
1118 p_rec_BOOKING_NUMBER IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1119 p_rec_CREATION_DATE IN DATE DEFAULT FND_API.G_MISS_DATE,
1120 p_rec_CREATED_BY IN NUMBER DEFAULT FND_API.G_MISS_NUM,
1121 p_rec_LAST_UPDATE_DATE IN DATE DEFAULT FND_API.G_MISS_DATE,
1122 p_rec_LAST_UPDATED_BY IN NUMBER DEFAULT FND_API.G_MISS_NUM,
1123 p_rec_LAST_UPDATE_LOGIN IN NUMBER DEFAULT FND_API.G_MISS_NUM,
1124 p_rec_PROGRAM_APPLICATION_ID IN NUMBER DEFAULT FND_API.G_MISS_NUM,
1125 p_rec_PROGRAM_ID IN NUMBER DEFAULT FND_API.G_MISS_NUM,
1126 p_rec_PROGRAM_UPDATE_DATE IN DATE DEFAULT FND_API.G_MISS_DATE,
1127 p_rec_REQUEST_ID IN NUMBER DEFAULT FND_API.G_MISS_NUM,
1128 p_carrier_contact_id IN NUMBER DEFAULT FND_API.G_MISS_NUM,
1129 p_shipper_name IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1130 p_shipper_wait_time IN NUMBER DEFAULT FND_API.G_MISS_NUM,
1131 p_wait_time_uom IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1132 p_action IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1133 p_carrier_remarks IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1134 p_operator IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1135 p_rec_IGNORE_FOR_PLANNING IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1136 p_rec_CONSIGNEE_CAR_AC_NO IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1137 p_rec_CARRIER_REF_NUMBER IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1138 p_rec_ROUTING_RULE_ID IN NUMBER DEFAULT FND_API.G_MISS_NUM,
1139 p_rec_APPEND_FLAG IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1140 p_rec_RANK_ID IN NUMBER DEFAULT FND_API.G_MISS_NUM
1141 ) IS
1142
1143 -- <insert here your local variables declaration>
1144 p_trip_info_tab WSH_TRIPS_PVT.Trip_Attr_Tbl_Type;
1145 p_trip_info WSH_TRIPS_PVT.Trip_Rec_Type;
1146 p_trip_in_rec WSH_TRIPS_GRP.TripInRecType;
1147 x_out_tab WSH_TRIPS_GRP.trip_Out_tab_type;
1148 p_commit VARCHAR2(1);
1149
1150 l_shipper_wait_time NUMBER;
1151 l_carrier_name VARCHAR2(1000);
1152 l_temp_action VARCHAR2(30);
1153 l_load_tender_number NUMBER;
1154 l_db_tender_status VARCHAR2(30);
1155
1156 l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
1157 l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME || '.' || 'CREATE_UPDATE_TRIP';
1158
1159 l_number_of_warnings NUMBER;
1160 l_number_of_errors NUMBER;
1161 l_return_status VARCHAR2(32767);
1162 l_msg_count NUMBER;
1163 l_msg_data VARCHAR2(32767);
1164
1165 l_action_out_rec FTE_ACTION_OUT_REC;
1166 trip_action_param FTE_TRIP_ACTION_PARAM_REC;
1167 l_tender_attr_rec FTE_TENDER_ATTR_REC;
1168
1169 l_db_lane_id NUMBER;
1170
1171 BEGIN
1172
1173
1174 SAVEPOINT CREATE_UPDATE_TRIP_PUB;
1175
1176 -- Initialize message list if p_init_msg_list is set to TRUE.
1177 --
1178 --
1179 IF FND_API.to_Boolean( p_init_msg_list )
1180 THEN
1181 FND_MSG_PUB.initialize;
1182 END IF;
1183 --
1184 --
1185 -- Initialize API return status to success
1186 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
1187 x_msg_count := 0;
1188 x_msg_data := 0;
1189 l_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
1190 l_number_of_warnings := 0;
1191 l_number_of_errors := 0;
1192
1193 IF l_debug_on THEN
1194 wsh_debug_sv.push(l_module_name);
1195 END IF;
1196
1197 IF l_debug_on
1198 THEN
1199 WSH_DEBUG_SV.logmsg(l_module_name,' Trip id ' || p_rec_TRIP_ID, WSH_DEBUG_SV.C_PROC_LEVEL);
1200 WSH_DEBUG_SV.logmsg(l_module_name,' Carrrier Id ' || p_rec_CARRIER_ID, WSH_DEBUG_SV.C_PROC_LEVEL);
1201 WSH_DEBUG_SV.logmsg(l_module_name,' Mode ' || p_rec_MODE_OF_TRANSPORT, WSH_DEBUG_SV.C_PROC_LEVEL);
1202 WSH_DEBUG_SV.logmsg(l_module_name,' Lane Id ' || p_rec_lane_id, WSH_DEBUG_SV.C_PROC_LEVEL);
1203 WSH_DEBUG_SV.logmsg(l_module_name,' Trip Name ' || p_rec_NAME ,WSH_DEBUG_SV.C_PROC_LEVEL);
1204 WSH_DEBUG_SV.logmsg(l_module_name,' Load Tener Status ' || p_rec_LOAD_TENDER_STATUS ,WSH_DEBUG_SV.C_PROC_LEVEL);
1205 WSH_DEBUG_SV.logmsg(l_module_name,' Ignore for Plan '|| p_rec_IGNORE_FOR_PLANNING ,WSH_DEBUG_SV.C_PROC_LEVEL);
1206 WSH_DEBUG_SV.logmsg(l_module_name,' ShipMethod '|| p_rec_SHIP_METHOD_CODE ,WSH_DEBUG_SV.C_PROC_LEVEL);
1207 WSH_DEBUG_SV.logmsg(l_module_name,' Rank Id '|| p_rec_RANK_ID ,WSH_DEBUG_SV.C_PROC_LEVEL);
1208 WSH_DEBUG_SV.logmsg(l_module_name,' CarConsAcNo '|| p_rec_CONSIGNEE_CAR_AC_NO ,WSH_DEBUG_SV.C_PROC_LEVEL);
1209 WSH_DEBUG_SV.logmsg(l_module_name,' CarRefNumber '|| p_rec_CARRIER_REF_NUMBER ,WSH_DEBUG_SV.C_PROC_LEVEL);
1210 END IF;
1211
1212
1213 --populate trip record
1214 p_trip_info.TRIP_ID := p_rec_TRIP_ID;
1215 p_trip_info.NAME := p_rec_NAME;
1216 p_trip_info.ARRIVE_AFTER_TRIP_ID := p_rec_ARRIVE_AFTER_TRIP_ID;
1217 p_trip_info.ARRIVE_AFTER_TRIP_NAME := p_rec_ARRIVE_AFTER_TRIP_NAME;
1218 p_trip_info.VEHICLE_ITEM_ID := p_rec_VEHICLE_ITEM_ID;
1219 p_trip_info.VEHICLE_ITEM_DESC := p_rec_VEHICLE_ITEM_DESC;
1220 p_trip_info.VEHICLE_ORGANIZATION_ID := p_rec_VEHICLE_ORGANIZATION_ID;
1221 p_trip_info.VEHICLE_ORGANIZATION_CODE := p_rec_VEHICLE_ORGANIZATION_COD;
1222 p_trip_info.VEHICLE_NUMBER := p_rec_VEHICLE_NUMBER;
1223 p_trip_info.VEHICLE_NUM_PREFIX := p_rec_VEHICLE_NUM_PREFIX;
1224 p_trip_info.CARRIER_ID := p_rec_CARRIER_ID;
1225 --p_trip_info.SHIP_METHOD_CODE := p_rec_SHIP_METHOD_CODE;
1226 p_trip_info.SHIP_METHOD_CODE := FND_API.G_MISS_CHAR;
1227
1228 p_trip_info.SHIP_METHOD_NAME := p_rec_SHIP_METHOD_NAME;
1229 p_trip_info.ROUTE_ID := p_rec_ROUTE_ID;
1230 p_trip_info.ROUTING_INSTRUCTIONS := p_rec_ROUTING_INSTRUCTIONS;
1231 p_trip_info.ATTRIBUTE_CATEGORY := p_rec_ATTRIBUTE_CATEGORY;
1232 p_trip_info.ATTRIBUTE1 := p_rec_ATTRIBUTE1;
1233 p_trip_info.ATTRIBUTE2 := p_rec_ATTRIBUTE2;
1234 p_trip_info.ATTRIBUTE3 := p_rec_ATTRIBUTE3;
1235 p_trip_info.ATTRIBUTE4 := p_rec_ATTRIBUTE4;
1236 p_trip_info.ATTRIBUTE5 := p_rec_ATTRIBUTE5;
1237 p_trip_info.ATTRIBUTE6 := p_rec_ATTRIBUTE6;
1238 p_trip_info.ATTRIBUTE7 := p_rec_ATTRIBUTE7;
1239 p_trip_info.ATTRIBUTE8 := p_rec_ATTRIBUTE8;
1240 p_trip_info.ATTRIBUTE9 := p_rec_ATTRIBUTE9;
1241 p_trip_info.ATTRIBUTE10 := p_rec_ATTRIBUTE10;
1242 p_trip_info.ATTRIBUTE11 := p_rec_ATTRIBUTE11;
1243 p_trip_info.ATTRIBUTE12 := p_rec_ATTRIBUTE12;
1244 p_trip_info.ATTRIBUTE13 := p_rec_ATTRIBUTE13;
1245 p_trip_info.ATTRIBUTE14 := p_rec_ATTRIBUTE14;
1246 p_trip_info.ATTRIBUTE15 := p_rec_ATTRIBUTE15;
1247 p_trip_info.SERVICE_LEVEL := p_rec_SERVICE_LEVEL;
1248 p_trip_info.MODE_OF_TRANSPORT := p_rec_MODE_OF_TRANSPORT;
1249 p_trip_info.CONSOLIDATION_ALLOWED := p_rec_CONSOLIDATION_ALLOWED;
1250
1251 p_trip_info.PLANNED_FLAG := p_rec_PLANNED_FLAG;
1252 p_trip_info.STATUS_CODE := p_rec_STATUS_CODE;
1253 p_trip_info.FREIGHT_TERMS_CODE := p_rec_FREIGHT_TERMS_CODE;
1254 -- p_trip_info.LOAD_TENDER_STATUS := p_rec_LOAD_TENDER_STATUS;
1255 p_trip_info.ROUTE_LANE_ID := p_rec_ROUTE_LANE_ID;
1256 p_trip_info.LANE_ID := p_rec_LANE_ID;
1257 p_trip_info.SCHEDULE_ID := p_rec_SCHEDULE_ID;
1258 p_trip_info.BOOKING_NUMBER := p_rec_BOOKING_NUMBER;
1259
1260 p_trip_info.CREATION_DATE := p_rec_CREATION_DATE;
1261 p_trip_info.CREATED_BY := p_rec_CREATED_BY;
1262 p_trip_info.LAST_UPDATE_DATE := p_rec_LAST_UPDATE_DATE;
1263 p_trip_info.LAST_UPDATED_BY := p_rec_LAST_UPDATED_BY;
1264 p_trip_info.LAST_UPDATE_LOGIN := p_rec_LAST_UPDATE_LOGIN;
1265 p_trip_info.PROGRAM_APPLICATION_ID := p_rec_PROGRAM_APPLICATION_ID;
1266 p_trip_info.PROGRAM_ID := p_rec_PROGRAM_ID;
1267 p_trip_info.PROGRAM_UPDATE_DATE := p_rec_PROGRAM_UPDATE_DATE;
1268 p_trip_info.REQUEST_ID := p_rec_REQUEST_ID;
1269 p_trip_info.ignore_for_planning := p_rec_IGNORE_FOR_PLANNING;
1270
1271 --- Release 12 Attributes
1272 p_trip_info.carrier_reference_number := p_rec_CARRIER_REF_NUMBER;
1273 p_trip_info.rank_id := p_rec_RANK_ID;
1274 p_trip_info.consignee_carrier_ac_no := p_rec_CONSIGNEE_CAR_AC_NO;
1275 p_trip_info.routing_rule_id := p_rec_ROUTING_RULE_ID;
1276 p_trip_info.append_flag := p_rec_APPEND_FLAG;
1277
1278 IF l_debug_on THEN
1279 WSH_DEBUG_SV.logmsg(l_module_name,' p_action_code ' ||
1280 p_action_code,WSH_DEBUG_SV.C_PROC_LEVEL);
1281 WSH_DEBUG_SV.logmsg(l_module_name,' p_ship_method_code ' ||
1282 p_rec_ship_method_code,WSH_DEBUG_SV.C_PROC_LEVEL);
1283 END IF;
1284
1285 IF (p_action_code = 'UPDATE')
1286 THEN
1287 --{
1288
1289 -- Get Current load tender status of trip
1290 -- Modified for REL12 HBHAGAVA
1291 SELECT LOAD_TENDER_STATUS, LANE_ID INTO l_db_tender_status, l_db_lane_id
1292 FROM WSH_TRIPS
1293 WHERE TRIP_ID = p_rec_TRIP_ID;
1294
1295
1296 IF l_debug_on THEN
1297 WSH_DEBUG_SV.logmsg(l_module_name,' l_db_tender_status ' ||
1298 l_db_tender_status,WSH_DEBUG_SV.C_PROC_LEVEL);
1299 END IF;
1300
1301
1302 --
1303 -- rel 12 HBHAGAVA
1304 -- Set tender parameters to null if lane id on the trip is getting set to null
1305 -- when we cancel the service we should set tender related params to null.
1306 -- Even if lane id passed in is not same as the one in db then we should
1307 -- clear off the tender parameters. This is because we might have picked up
1308 -- tender enabled lane first and then might have picked up a non-tender
1309 -- enabled trip.
1310 IF ((p_rec_LANE_ID IS NULL) OR (p_rec_lane_id <> l_db_lane_id))
1311 THEN
1312 --{
1313
1314 p_trip_info.load_tender_status := NULL;
1315 p_trip_info.wf_name := NULL;
1316 p_trip_info.wf_process_name := NULL;
1317 p_trip_info.wf_item_key := NULL;
1318 p_trip_info.carrier_contact_id := NULL;
1319 p_trip_info.shipper_wait_time := NULL;
1320 p_trip_info.wait_time_uom := NULL;
1321 p_trip_info.load_tender_number := NULL;
1322 p_trip_info.LOAD_TENDERED_TIME := NULL;
1323 p_trip_info.OPERATOR := NULL;
1324 p_trip_info.CARRIER_RESPONSE := NULL;
1325 p_trip_info.CARRIER_REFERENCE_NUMBER := NULL;
1326 p_trip_info.RANK_ID := NULL;
1327
1328 --}
1329 ELSIF (l_db_tender_status IS NOT NULL)
1330 THEN
1331 --{
1332
1333 -- In packj User can update trip name/ routing instructions after tendered.
1334 -- In order to retain teneder parameters we have to set these values.
1335 -- added by HBHAGAVA
1336 p_trip_info.load_tender_status := FND_API.G_MISS_CHAR;
1337 p_trip_info.wf_name := FND_API.G_MISS_CHAR;
1338 p_trip_info.wf_process_name := FND_API.G_MISS_CHAR;
1339 p_trip_info.wf_item_key := FND_API.G_MISS_CHAR;
1340 p_trip_info.carrier_contact_id := FND_API.G_MISS_NUM;
1341 p_trip_info.shipper_wait_time := FND_API.G_MISS_NUM;
1342 p_trip_info.wait_time_uom := FND_API.G_MISS_CHAR;
1343 p_trip_info.load_tender_number := FND_API.G_MISS_NUM;
1344 p_trip_info.LOAD_TENDERED_TIME := FND_API.G_MISS_DATE;
1345 p_trip_info.OPERATOR := FND_API.G_MISS_CHAR;
1346 p_trip_info.CARRIER_RESPONSE := FND_API.G_MISS_CHAR;
1347 p_trip_info.CARRIER_REFERENCE_NUMBER := FND_API.G_MISS_CHAR;
1348 --}
1349 END IF;
1350
1351
1352
1353
1354
1355 --}
1356 END IF;
1357
1358
1359 p_trip_info_tab(1):=p_trip_info;
1360 p_trip_in_rec.caller:=G_PKG_NAME;
1361 p_trip_in_rec.phase:=NULL;
1362 p_trip_in_rec.action_code:=p_action_code;
1363 p_commit:='F';
1364
1365
1366 -- This is to make sure we do not udpate anything for update tender event
1367
1368 IF (p_action IS NULL OR p_action <> FTE_TENDER_PVT.S_SHIPPER_UPDATED)
1369 THEN
1370 --call wsh public API
1371 WSH_INTERFACE_GRP.Create_Update_Trip
1372 (
1373 p_api_version_number =>p_api_version_number,
1374 p_init_msg_list =>FND_API.G_FALSE,
1375 p_commit =>p_commit,
1376 x_return_status =>l_return_status,
1377 x_msg_count =>l_msg_count,
1378 x_msg_data =>l_msg_data,
1379 p_trip_info_tab =>p_trip_info_tab,
1380 p_in_rec =>p_trip_in_rec,
1381 x_out_tab =>x_out_tab
1382 );
1383
1384 IF l_debug_on THEN
1385 WSH_DEBUG_SV.logmsg(l_module_name,' l_return_status after
1386 WSH_INTERFACE_GRP.Create_Update_Trip ' ||
1387 l_return_status,WSH_DEBUG_SV.C_PROC_LEVEL);
1388 END IF;
1389
1390 wsh_util_core.api_post_call(
1391 p_return_status =>l_return_status,
1392 x_num_warnings =>l_number_of_warnings,
1393 x_num_errors =>l_number_of_errors,
1394 p_msg_data =>l_msg_data);
1395
1396 IF (l_return_status = WSH_UTIL_CORE.G_RET_STS_SUCCESS
1397 and x_out_tab.count > 0) THEN
1398 x_trip_id := x_out_tab(x_out_tab.FIRST).trip_id;
1399 x_trip_name := x_out_tab(x_out_tab.FIRST).trip_name;
1400 END IF;
1401 END IF;
1402
1403 IF l_debug_on THEN
1404 WSH_DEBUG_SV.logmsg(l_module_name,' trip_name ' ||
1405 x_trip_name,WSH_DEBUG_SV.C_PROC_LEVEL);
1406 WSH_DEBUG_SV.logmsg(l_module_name,' p_action_code => ' ||
1407 p_action_code,WSH_DEBUG_SV.C_PROC_LEVEL);
1408 WSH_DEBUG_SV.logmsg(l_module_name,' p_action => ' ||
1409 p_action,WSH_DEBUG_SV.C_PROC_LEVEL);
1410
1411 END IF;
1412
1413
1414 -- This is for Tender Call: HBHAGAVA
1415
1416 IF (p_action <> FND_API.G_MISS_CHAR
1417 AND p_action IS NOT NULL)
1418 THEN
1419 --{
1420
1421 trip_action_param := FTE_TRIP_ACTION_PARAM_REC(null,p_action,
1422 null,null,null,null,null,null,
1423 null,null,null,null,null,null,
1424 null,null);
1425
1426 l_tender_attr_rec := FTE_TENDER_ATTR_REC(
1427 p_rec_TRIP_ID, -- TripId
1428 p_rec_NAME, -- Trip Name
1429 p_rec_TRIP_ID, --tender id
1430 l_db_tender_status, -- status
1431 p_carrier_contact_id,-- car_contact_id
1432 null, -- car contact name
1433 null, -- auto_accept
1434 null, -- auto tender
1435 p_shipper_wait_time, -- ship wait time
1436 p_wait_time_uom, -- ship time uom
1437 null, -- wf name
1438 null, -- wf process name
1439 null, --wf item key
1440 p_carrier_remarks, -- Carrier response
1441 null, -- carrier pickup date
1442 null, -- carrier dropoff date
1443 p_rec_VEHICLE_NUMBER, -- vehicle number
1444 p_operator, -- operator
1445 p_rec_carrier_ref_number, -- carrier ref number
1446 null, -- shipment status header id
1447 FTE_TENDER_PVT.S_SOURCE_CP, -- response source
1448 null); -- transaction id
1449
1450
1451 Trip_Action
1452 ( p_api_version_number => 1.0,
1453 p_init_msg_list => FND_API.G_FALSE,
1454 x_return_status => l_return_status,
1455 x_msg_count => l_msg_count,
1456 x_msg_data => l_msg_data,
1457 x_action_out_rec => l_action_out_rec,
1458 p_trip_info_rec => l_tender_attr_rec,
1459 p_action_prms => trip_action_param);
1460
1461 IF l_debug_on THEN
1462 WSH_DEBUG_SV.logmsg(l_module_name,' l_return_status after
1463 Trpi_action ' || l_return_status,WSH_DEBUG_SV.C_PROC_LEVEL);
1464 END IF;
1465
1466 wsh_util_core.api_post_call(
1467 p_return_status =>l_return_status,
1468 x_num_warnings =>l_number_of_warnings,
1469 x_num_errors =>l_number_of_errors,
1470 p_msg_data =>l_msg_data);
1471
1472
1473 END IF;
1474 --}
1475
1476 -- query up WHO columns and assign the values
1477 IF (p_action_code <> 'CREATE') THEN
1478 SELECT CREATION_DATE, CREATED_BY, LAST_UPDATE_DATE,
1479 LAST_UPDATED_BY,LAST_UPDATE_LOGIN
1480 INTO x_CREATION_DATE,x_CREATED_BY,x_LAST_UPDATE_DATE,
1481 x_LAST_UPDATED_BY, x_LAST_UPDATE_LOGIN
1482 FROM WSH_TRIPS
1483 WHERE TRIP_ID = p_rec_TRIP_ID;
1484 END IF;
1485
1486 IF l_number_of_errors > 0
1487 THEN
1488 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1489 ELSIF l_number_of_warnings > 0
1490 THEN
1491 x_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
1492 ELSE
1493 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
1494 END IF;
1495
1496 FND_MSG_PUB.Count_And_Get
1497 (
1498 p_count => x_msg_count,
1499 p_data => x_msg_data,
1500 p_encoded => FND_API.G_FALSE
1501 );
1502
1503 IF l_debug_on THEN
1504 WSH_DEBUG_SV.logmsg(l_module_name,'x_return_status:' || x_return_status);
1505 WSH_DEBUG_SV.logmsg(l_module_name,'x_msg_count:' || x_msg_count);
1506 WSH_DEBUG_SV.logmsg(l_module_name,'x_t_id:' || x_trip_id);
1507 WSH_DEBUG_SV.logmsg(l_module_name,'x_t_name:' || x_trip_name);
1508 END IF;
1509
1510 IF l_debug_on THEN
1511 WSH_DEBUG_SV.pop(l_module_name);
1512 END IF;
1513
1514 EXCEPTION
1515 WHEN FND_API.G_EXC_ERROR THEN
1516 ROLLBACK TO CREATE_UPDATE_TRIP_PUB;
1517 x_return_status := FND_API.G_RET_STS_ERROR;
1518 FND_MSG_PUB.Count_And_Get
1519 (
1520 p_count => x_msg_count,
1521 p_data => x_msg_data,
1522 p_encoded => FND_API.G_FALSE
1523 );
1524
1525 IF l_debug_on THEN
1526 WSH_DEBUG_SV.logmsg(l_module_name,' Error Occured ' ||
1527 x_return_status,WSH_DEBUG_SV.C_PROC_LEVEL);
1528 WSH_DEBUG_SV.pop(l_module_name);
1529 END IF;
1530
1531 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1532 ROLLBACK TO CREATE_UPDATE_TRIP_PUB;
1533 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1534 FND_MSG_PUB.Count_And_Get
1535 (
1536 p_count => x_msg_count,
1537 p_data => x_msg_data,
1538 p_encoded => FND_API.G_FALSE
1539 );
1540 IF l_debug_on THEN
1541 WSH_DEBUG_SV.logmsg(l_module_name,' Unexpected error Occured ' ||
1542 x_return_status,WSH_DEBUG_SV.C_PROC_LEVEL);
1543 WSH_DEBUG_SV.pop(l_module_name);
1544 END IF;
1545
1546 WHEN OTHERS THEN
1547 IF l_debug_on THEN
1548 WSH_DEBUG_SV.logmsg(l_module_name,'P1DEBUG:13 ',WSH_DEBUG_SV.C_PROC_LEVEL);
1549 END IF;
1550
1551 ROLLBACK TO CREATE_UPDATE_TRIP_PUB;
1552 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1553 FND_MSG_PUB.Count_And_Get
1554 (
1555 p_count => x_msg_count,
1556 p_data => x_msg_data,
1557 p_encoded => FND_API.G_FALSE
1558 );
1559 IF l_debug_on THEN
1560 WSH_DEBUG_SV.logmsg(l_module_name,' SQL Error Occured ' ||
1561 SQLCODE||' '||SQLERRM, WSH_DEBUG_SV.C_PROC_LEVEL);
1562 WSH_DEBUG_SV.pop(l_module_name);
1563 END IF;
1564
1565 END Create_Update_Trip;
1566 --
1567 --========================================================================
1568 -- PROCEDURE : Trip_Action FTE wrapper
1569 --========================================================================
1570
1571 PROCEDURE Trip_Action
1572 ( p_api_version_number IN NUMBER,
1573 p_init_msg_list IN VARCHAR2,
1574 x_return_status OUT NOCOPY VARCHAR2,
1575 x_msg_count OUT NOCOPY NUMBER,
1576 x_msg_data OUT NOCOPY VARCHAR2,
1577 p_action_code IN VARCHAR2,
1578 p_trip_id IN NUMBER DEFAULT NULL,
1579 p_trip_name IN VARCHAR2 DEFAULT NULL,
1580 p_wv_override_flag IN VARCHAR2 DEFAULT 'N') IS
1581
1582
1583
1584 p_entity_id_tab WSH_UTIL_CORE.id_tab_type;
1585 p_action_prms WSH_TRIPS_GRP.action_parameters_rectype;
1586 x_trip_out_rec WSH_TRIPS_GRP.tripActionOutRecType;
1587 p_commit VARCHAR2(1);
1588
1589 --
1590 l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
1591 --
1592 l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME || '.' || 'TRIP_ACTION';
1593
1594
1595 BEGIN
1596
1597 SAVEPOINT TRIP_ACTION_PUB;
1598
1599 -- Initialize message list if p_init_msg_list is set to TRUE.
1600 --
1601 --
1602 IF FND_API.to_Boolean( p_init_msg_list )
1603 THEN
1604 FND_MSG_PUB.initialize;
1605 END IF;
1606 --
1607 --
1608 -- Initialize API return status to success
1609 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
1610 x_msg_count := 0;
1611 x_msg_data := 0;
1612
1613 IF l_debug_on THEN
1614 wsh_debug_sv.push(l_module_name);
1615 END IF;
1616
1617 p_entity_id_tab(1):=p_trip_id;
1618 p_action_prms.action_code:=p_action_code;
1619 p_action_prms.phase:=NULL;
1620 p_action_prms.caller:=G_PKG_NAME;
1621 p_commit:='F';
1622
1623 --call wsh public API
1624 WSH_INTERFACE_GRP.Trip_Action
1625 (
1626 p_api_version_number=>p_api_version_number,
1627 p_init_msg_list=>FND_API.G_FALSE,
1628 p_commit=>p_commit,
1629 p_entity_id_tab=>p_entity_id_tab,
1630 p_action_prms=>p_action_prms,
1631 x_trip_out_rec=>x_trip_out_rec,
1632 x_return_status=>x_return_status,
1633 x_msg_count=>x_msg_count,
1634 x_msg_data=>x_msg_data
1635 );
1636
1637 IF l_debug_on THEN
1638 WSH_DEBUG_SV.pop(l_module_name);
1639 END IF;
1640
1641
1642 EXCEPTION
1643 WHEN FND_API.G_EXC_ERROR THEN
1644 ROLLBACK TO TRIP_ACTION_PUB;
1645 x_return_status := FND_API.G_RET_STS_ERROR;
1646 FND_MSG_PUB.Count_And_Get
1647 (
1648 p_count => x_msg_count,
1649 p_data => x_msg_data,
1650 p_encoded => FND_API.G_FALSE
1651 );
1652
1653 IF l_debug_on THEN
1654 WSH_DEBUG_SV.pop(l_module_name);
1655 END IF;
1656 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1657 ROLLBACK TO TRIP_ACTION_PUB;
1658 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1659 FND_MSG_PUB.Count_And_Get
1660 (
1661 p_count => x_msg_count,
1662 p_data => x_msg_data,
1663 p_encoded => FND_API.G_FALSE
1664 );
1665 IF l_debug_on THEN
1666 WSH_DEBUG_SV.pop(l_module_name);
1667 END IF;
1668 WHEN OTHERS THEN
1669 ROLLBACK TO TRIP_ACTION_PUB;
1670 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1671 FND_MSG_PUB.Count_And_Get
1672 (
1673 p_count => x_msg_count,
1674 p_data => x_msg_data,
1675 p_encoded => FND_API.G_FALSE
1676 );
1677 IF l_debug_on THEN
1678 WSH_DEBUG_SV.pop(l_module_name);
1679 END IF;
1680 END Trip_Action;
1681 --
1682 --
1683 --
1684 --
1685 --======================================================================
1686 -- Added Following procedures for 10+ --ajpraba
1687 --======================================================================
1688
1689 --Added by ajprabha for 10+ validations.
1690 --========================================================================
1691 -- PROCEDURE : TENDER_TRIP_VALIDATIONS PRIVATE
1692 --
1693 -- PARAMETERS: p_tripNameTab IN FTE_NAME_TAB_TYPE
1694 --
1695 -- RETURN : Token of Trips Names as per required to display.
1696 -- VERSION : current version 1.0
1697 -- initial version 1.0
1698 --========================================================================
1699 FUNCTION GET_TRIP_MSG_TOKEN
1700 (p_tenderIdTab IN FTE_ID_TAB_TYPE -- Table of Trip Names
1701 ) RETURN VARCHAR2 IS
1702 l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
1703 l_module_name CONSTANT VARCHAR2(100) := 'FTE.PLSQL.' || G_PKG_NAME || '.' || 'GET_TRIP_MSG_TOKEN';
1704
1705 l_tokenName VARCHAR2(2000);
1706 BEGIN
1707 IF l_debug_on THEN
1708 WSH_DEBUG_SV.PUSH(l_module_name);
1709 WSH_DEBUG_SV.logmsg(l_module_name,'Setting new user-friendly message for '|| p_tenderIdTab.COUNT||' Trips');
1710 END IF;
1711 --Setting the Tender IDs for displaying the appropriate message.
1712 l_tokenName := '';
1713 FOR i IN p_tenderIdTab.FIRST..p_tenderIdTab.LAST LOOP
1714 l_tokenName := l_tokenName || p_tenderIdTab(i);
1715 IF ((i+1) = p_tenderIdTab.COUNT) THEN
1716 l_tokenName := l_tokenName || ' & ';
1717 ELSIF(i <> p_tenderIdTab.COUNT) THEN
1718 l_tokenName := l_tokenName || ' , ';
1719 END IF;
1720 END LOOP;
1721 IF l_debug_on THEN
1722 WSH_DEBUG_SV.logmsg(l_module_name, 'Setting Token as - ' || l_tokenName);
1723 WSH_DEBUG_SV.POP(l_module_name);
1724 END IF;
1725 RETURN l_tokenName;
1726 END GET_TRIP_MSG_TOKEN;
1727
1728
1729 --Added by ajprabha for 10+ validations.
1730 --========================================================================
1731 -- PROCEDURE : TENDER_TRIP_VALIDATIONS PRIVATE
1732 --
1733 -- PARAMETERS: p_tripNameTab IN FTE_NAME_TAB_TYPE
1734 --
1735 -- RETURN : Token of Trips Names as per required to display.
1736 -- VERSION : current version 1.0
1737 -- initial version 1.0
1738 --========================================================================
1739 FUNCTION GET_TRIP_MSG_TOKEN
1740 (p_tripNamesTab IN FTE_NAME_TAB_TYPE -- Table of Trip Names
1741 ) RETURN VARCHAR2 IS
1742 l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
1743 l_module_name CONSTANT VARCHAR2(100) := 'FTE.PLSQL.' || G_PKG_NAME || '.' || 'GET_TRIP_MSG_TOKEN';
1744
1745 l_tokenName VARCHAR2(2000);
1746 BEGIN
1747 IF l_debug_on THEN
1748 WSH_DEBUG_SV.PUSH(l_module_name);
1749 WSH_DEBUG_SV.logmsg(l_module_name,'Setting new user-friendly message for '|| p_tripNamesTab.COUNT||' Trips');
1750 END IF;
1751 --Setting the Tender IDs for displaying the appropriate message.
1752 l_tokenName := '';
1753 FOR i IN p_tripNamesTab.FIRST..p_tripNamesTab.LAST LOOP
1754 l_tokenName := l_tokenName || p_tripNamesTab(i);
1755 IF ((i+1) = p_tripNamesTab.COUNT) THEN
1756 l_tokenName := l_tokenName || ' & ';
1757 ELSIF(i <> p_tripNamesTab.COUNT) THEN
1758 l_tokenName := l_tokenName || ' , ';
1759 END IF;
1760 END LOOP;
1761 IF l_debug_on THEN
1762 WSH_DEBUG_SV.logmsg(l_module_name, 'Setting Token as - ' || l_tokenName);
1763 WSH_DEBUG_SV.POP(l_module_name);
1764 END IF;
1765 RETURN l_tokenName;
1766 END GET_TRIP_MSG_TOKEN;
1767
1768
1769 --Added by ajprabha for 10+ validations.
1770 --========================================================================
1771 -- PROCEDURE : TENDER_TRIP_VALIDATIONS PRIVATE
1772 --
1773 -- PARAMETERS: p_tripID Trip ID
1774 --
1775 -- RETURN : True if all validations are done.
1776 -- VERSION : current version 1.0
1777 -- initial version 1.0
1778 --========================================================================
1779 FUNCTION TENDER_TRIP_VALIDATIONS
1780 (p_tripID IN NUMBER, -- TRIP ID
1781 x_tripName OUT NOCOPY VARCHAR2,
1782 x_carrierID OUT NOCOPY VARCHAR2,
1783 x_tripType OUT NOCOPY VARCHAR2,
1784 x_tripTenderStatus OUT NOCOPY VARCHAR2
1785 ) RETURN BOOLEAN IS
1786 l_isCarrierTenderEnabled VARCHAR2(1);
1787 l_autoTenderEnabled VARCHAR2(1);
1788 l_numberOfDeliveries NUMBER;
1789 l_laneID NUMBER;
1790 l_modeOfTransport VARCHAR2(30);
1791 l_serviceLevel VARCHAR2(30);
1792 l_carrier_name VARCHAR2(360);
1793
1794 l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
1795 l_module_name CONSTANT VARCHAR2(100) := 'FTE.PLSQL.' || G_PKG_NAME || '.' || 'TENDER_TRIP_VALIDATIONS';
1796
1797 CURSOR c_tripDetails(p_tripID NUMBER) IS
1798 SELECT CARRIER_ID, NAME, LANE_ID, MODE_OF_TRANSPORT, SERVICE_LEVEL, SHIPMENTS_TYPE_FLAG,
1799 LOAD_TENDER_STATUS
1800 FROM WSH_TRIPS
1801 WHERE TRIP_ID = p_tripID;
1802
1803 CURSOR c_isCarrierTenderEnabled (p_CarrierID NUMBER) IS
1804 SELECT 'Y', decode(ENABLE_AUTO_TENDER,null,'N','N','N','Y') AUTO_TENDER,
1805 party_name carrier_name
1806 FROM WSH_CARRIER_SITES sites, HZ_PARTIES parties
1807 WHERE CARRIER_ID = p_CarrierID
1808 AND parties.party_id = carrier_id
1809 AND (sites.EMAIL_ADDRESS IS NOT NULL OR TENDER_TRANSMISSION_METHOD IS NOT NULL)
1810 AND ROWNUM = 1;
1811
1812
1813 CURSOR c_numberOfDel(p_TripID NUMBER) IS
1814 SELECT COUNT(LEGS.DELIVERY_ID)
1815 FROM WSH_DELIVERY_LEGS LEGS,
1816 WSH_TRIP_STOPS ST
1817 WHERE
1818 ST.STOP_ID = LEGS.PICK_UP_STOP_ID
1819 AND ST.TRIP_ID = p_TripID;
1820
1821 BEGIN
1822
1823 IF l_debug_on THEN
1824 WSH_DEBUG_SV.PUSH(l_module_name);
1825 WSH_DEBUG_SV.logmsg(l_module_name,' Begin Validations for trip ' || p_tripID);
1826 END IF;
1827
1828 BEGIN
1829 --Get Carrier, TripName and LoadTender Status.
1830 x_carrierID := -99; -- Default Value in case Trip is not present.
1831 OPEN c_tripDetails(p_tripID);
1832 FETCH c_tripDetails
1833 INTO x_carrierID, x_tripName, l_laneID, l_modeOfTransport, l_serviceLevel,
1834 x_tripType, x_tripTenderStatus;
1835 CLOSE c_tripDetails;
1836
1837 IF (l_debug_on) THEN
1838 WSH_DEBUG_SV.logmsg(l_module_name,' Got Carrier '|| x_carrierID || ' for trip ' || x_tripName);
1839 END IF;
1840
1841 --Checking if Carrier is present in the Trip Level
1842 IF ((x_carrierID = -99) OR
1843 (x_carrierID IS NULL) OR
1844 (l_laneID IS NULL) OR
1845 (l_modeOfTransport IS NULL) OR
1846 (l_serviceLevel IS NULL)) THEN
1847
1848 FND_MESSAGE.SET_NAME('FTE','FTE_MLS_TENDER_INIT_FAIL');
1849 FND_MSG_PUB.ADD;
1850
1851 IF l_debug_on THEN
1852 WSH_DEBUG_SV.logmsg(l_module_name,' Carrier/Lane/ServiceLevel/Mode is null. Trip Cannot be tendered.');
1853 WSH_DEBUG_SV.pop(l_module_name);
1854 END IF;
1855 RETURN FALSE;
1856 END IF;
1857
1858 IF (l_debug_on) THEN
1859 WSH_DEBUG_SV.logmsg(l_module_name,' Checking if Carrier is Tender Enabled');
1860 END IF;
1861
1862 l_isCarrierTenderEnabled := 'N';
1863 l_autoTenderEnabled := 'N';
1864
1865 --Checking if Carrier is Tender enabled.
1866 OPEN c_isCarrierTenderEnabled(x_carrierID);
1867 FETCH c_isCarrierTenderEnabled
1868 INTO l_isCarrierTenderEnabled,l_autoTenderEnabled,l_carrier_name;
1869 CLOSE c_isCarrierTenderEnabled;
1870
1871
1872 IF (l_debug_on) THEN
1873 WSH_DEBUG_SV.logmsg(l_module_name,' Carrier Tender Enabled - ' || l_isCarrierTenderEnabled);
1874 END IF;
1875
1876 IF l_isCarrierTenderEnabled <> 'Y' THEN
1877 --Log exception into FND
1878 FND_MESSAGE.SET_NAME('FTE','FTE_CARRIER_NOT_TENDER_ENBL');
1879 FND_MESSAGE.SET_TOKEN('CARRIER_NAME', l_carrier_name);
1880 FND_MSG_PUB.ADD;
1881 IF l_debug_on THEN
1882 WSH_DEBUG_SV.logmsg(l_module_name,' Carrier is not tender Enabled');
1883 WSH_DEBUG_SV.pop(l_module_name);
1884 END IF;
1885 RETURN FALSE;
1886 END IF;
1887
1888 IF l_debug_on THEN
1889 WSH_DEBUG_SV.logmsg(l_module_name,' checking autotender enabled ' || l_autoTenderEnabled);
1890 END IF;
1891
1892 -- As part of HIDDING PROJECT we are going to set this flag to Y
1893 -- l_autoTenderEnabled = 'Y'
1894 l_autoTenderEnabled := 'Y';
1895
1896 IF l_autoTenderEnabled <> 'Y' THEN
1897 FND_MESSAGE.SET_NAME('FTE','FTE_CARRIER_NO_AUTO_TENDER');
1898 FND_MESSAGE.SET_TOKEN('CARRIER_NAME', l_carrier_name);
1899 FND_MSG_PUB.ADD;
1900 IF l_debug_on THEN
1901 WSH_DEBUG_SV.logmsg(l_module_name,' Carrier is not auto tender enabled ');
1902 WSH_DEBUG_SV.pop(l_module_name);
1903 END IF;
1904 RETURN FALSE;
1905 END IF;
1906
1907
1908 --Checking for number of deliveries on the Trip.
1909 OPEN c_numberOfDel(p_TripID);
1910 FETCH c_numberOfDel INTO l_numberOfDeliveries;
1911 CLOSE c_numberOfDel;
1912
1913 IF l_debug_on THEN
1914 WSH_DEBUG_SV.logmsg(l_module_name,' Number of deliveries in the Trip is - ' || l_numberOfDeliveries);
1915 END IF;
1916
1917 --Trip cannot be tendered in case there arent any deliveries in the trip.
1918 IF l_numberOfDeliveries = 0 THEN
1919 --Log Exception FTE_TRIP_CNT_TENDER_NO_DLVY with token TRIP_NAME
1920 FND_MESSAGE.SET_NAME('FTE','FTE_TRIP_CNT_TENDER_NO_DLVY');
1921 FND_MESSAGE.SET_TOKEN('TRIP_NAME', x_tripName);
1922 FND_MSG_PUB.ADD;
1923 IF l_debug_on THEN
1924 WSH_DEBUG_SV.logmsg(l_module_name,' Trip Cannot be tendered since there are no delieries on the trip ');
1925 WSH_DEBUG_SV.pop(l_module_name);
1926 END IF;
1927 RETURN FALSE;
1928 END IF;
1929
1930 IF (l_debug_on) THEN
1931 WSH_DEBUG_SV.logmsg(l_module_name,' Validations are all passes, Trip can now be tendered.');
1932 WSH_DEBUG_SV.pop(l_module_name);
1933 END IF;
1934
1935 RETURN TRUE;
1936
1937 EXCEPTION
1938 WHEN OTHERS THEN
1939 IF l_debug_on THEN
1940 WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. '||
1941 'Oracle error message is '||
1942 SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
1943 WSH_DEBUG_SV.pop(l_module_name);
1944 END IF;
1945 RETURN FALSE;
1946 END;
1947 END TENDER_TRIP_VALIDATIONS;
1948
1949 --========================================================================
1950 -- PROCEDURE : Tender_Trips PRIVATE
1951 --
1952 -- PARAMETERS: p_api_version_number known api version error number
1953 -- p_init_msg_list FND_API.G_TRUE to reset list
1954 -- p_trip_id_tab Table of trip id's
1955 -- x_action_out_rec List of Successfull and Failed Trips
1956 -- x_return_status return status
1957 -- x_msg_count number of messages in the list
1958 -- x_msg_data text of messages
1959 -- VERSION : current version 1.0
1960 -- initial version 1.0
1961 --========================================================================
1962 PROCEDURE TENDER_TRIPS
1963 ( p_api_version_number IN NUMBER,
1964 p_init_msg_list IN VARCHAR2,
1965 p_trip_id_tab IN FTE_ID_TAB_TYPE,
1966 p_caller IN VARCHAR2,
1967 x_action_out_rec OUT NOCOPY FTE_ACTION_OUT_REC,
1968 x_return_status OUT NOCOPY VARCHAR2,
1969 x_msg_count OUT NOCOPY NUMBER,
1970 x_msg_data OUT NOCOPY VARCHAR2
1971 ) IS
1972 l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
1973 l_module_name CONSTANT VARCHAR2(100) := 'FTE.PLSQL.' || G_PKG_NAME || '.' || 'TENDER_TRIPS';
1974 i NUMBER := 0;
1975 l_tripType VARCHAR2(30);
1976 l_tripTenderStatus VARCHAR2(30);
1977 l_orgID NUMBER := 0;
1978 l_carrierID NUMBER := 0;
1979 l_tripName VARCHAR2(30);
1980 l_stopLocID NUMBER := 0;
1981
1982 l_return_status VARCHAR2(100);
1983 l_msg_count NUMBER := 0;
1984 l_msg_data VARCHAR2(500) := NULL;
1985 l_number_of_warnings NUMBER := 0;
1986 l_number_of_errors NUMBER := 0;
1987
1988 x_trip_id NUMBER := 0;
1989 x_trip_name VARCHAR2(30);
1990 x_CREATION_DATE DATE;
1991 x_CREATED_BY NUMBER;
1992 x_LAST_UPDATE_DATE DATE;
1993 x_LAST_UPDATED_BY NUMBER;
1994 x_LAST_UPDATE_LOGIN NUMBER;
1995
1996 l_carrier_contact_id NUMBER;
1997 l_carrier_contact_name VARCHAR2(2000);
1998 l_shipper_wait_time NUMBER;
1999 l_wait_time_uom VARCHAR2(50);
2000 l_autoAcceptLoadTender VARCHAR2(1);
2001 l_wFItemKey VARCHAR2(240);
2002 l_error_tkn VARCHAR2(500);
2003
2004 --Result and Failed IDs
2005 l_error_id_tab FTE_ID_TAB_TYPE;
2006 l_valid_ids_tab FTE_ID_TAB_TYPE;
2007 l_error_name_tab FTE_NAME_TAB_TYPE;
2008 l_valid_name_tab FTE_NAME_TAB_TYPE;
2009
2010 l_tenderIds VARCHAR2(500);
2011
2012 l_trip_action_rec FTE_TRIP_ACTION_PARAM_REC;
2013 l_action_out_rec FTE_ACTION_OUT_REC;
2014 l_tender_attr_rec FTE_TENDER_ATTR_REC;
2015
2016
2017 --OUTBOUND TripStops
2018 CURSOR c_tripStops (p_tripID NUMBER) IS
2019 SELECT STOP_LOCATION_ID
2020 FROM WSH_TRIP_STOPS
2021 WHERE TRIP_ID = p_tripID
2022 ORDER BY PLANNED_ARRIVAL_DATE,
2023 STOP_SEQUENCE_NUMBER,
2024 STOP_ID;
2025
2026 --INBOUND Trip Stops
2027 CURSOR c_tripStopsIB (p_tripID NUMBER) IS
2028 SELECT STOP_LOCATION_ID
2029 FROM WSH_TRIP_STOPS
2030 WHERE TRIP_ID = p_tripID
2031 ORDER BY PLANNED_ARRIVAL_DATE DESC,
2032 STOP_SEQUENCE_NUMBER DESC,
2033 STOP_ID DESC;
2034
2035 --INBOUND Trip Stops
2036 CURSOR c_getStops (p_tripID NUMBER) IS
2037 SELECT stop_id,
2038 departure_gross_weight,departure_volume,weight_uom_code,volume_uom_code
2039 FROM WSH_TRIP_STOPS
2040 WHERE TRIP_ID = p_tripID
2041 ORDER BY PLANNED_ARRIVAL_DATE DESC,
2042 STOP_SEQUENCE_NUMBER DESC,
2043 STOP_ID DESC;
2044
2045 --Get Organization for the Pickup(O/B) or DropOff(I/B) Stop
2046 CURSOR c_getOrganization (p_stopID NUMBER) IS
2047 SELECT ORG_DEF.ORGANIZATION_ID
2048 FROM
2049 ORG_ORGANIZATION_DEFINITIONS ORG_DEF,
2050 HR_ALL_ORGANIZATION_UNITS HR_ALL_ORG_UNT
2051 WHERE
2052 ORG_DEF.ORGANIZATION_ID = HR_ALL_ORG_UNT.ORGANIZATION_ID
2053 AND HR_ALL_ORG_UNT.LOCATION_ID = p_stopID;
2054
2055
2056 CURSOR c_CarrierContact (p_CarrierID NUMBER) IS
2057 SELECT
2058 REL.PARTY_ID CONTACT_PARTY_ID,
2059 PARTY.PARTY_NAME NAME,
2060 CAR_SITES.TENDER_WAIT_TIME SHIPPER_WAIT_TIME,
2061 CAR_SITES.WAIT_TIME_UOM WAIT_TIME_UOM,
2062 CAR_SITES.AUTO_ACCEPT_LOAD_TENDER AUTO_ACCEPT_LOAD_TENDER
2063 FROM
2064 HZ_PARTIES PARTY,
2065 HZ_RELATIONSHIPS REL,
2066 HZ_PARTY_SITES SITES,
2067 HZ_ORG_CONTACTS CONT,
2068 HZ_CONTACT_POINTS POINTS,
2069 --HZ_CONTACT_POINTS PHONE,
2070 WSH_CARRIER_SITES CAR_SITES,
2071 WSH_LOCATIONS WL
2072 WHERE
2073 REL.OBJECT_ID = PARTY.PARTY_ID
2074 AND REL.SUBJECT_TYPE = 'ORGANIZATION'
2075 AND REL.SUBJECT_TABLE_NAME = 'HZ_PARTIES'
2076 AND SITES.PARTY_ID = REL.SUBJECT_ID
2077 AND CONT.PARTY_SITE_ID = SITES.PARTY_SITE_ID
2078 AND CONT.PARTY_RELATIONSHIP_ID = REL.RELATIONSHIP_ID
2079 AND POINTS.OWNER_TABLE_ID = REL.PARTY_ID
2080 AND POINTS.OWNER_TABLE_NAME = 'HZ_PARTIES'
2081 AND POINTS.CONTACT_POINT_TYPE = 'EMAIL'
2082 --AND PHONE.OWNER_TABLE_ID(+) = REL.PARTY_ID
2083 --AND PHONE.OWNER_TABLE_NAME(+) = 'HZ_PARTIES'
2084 --AND PHONE.CONTACT_POINT_TYPE(+) = 'PHONE'
2085 AND CAR_SITES.CARRIER_SITE_ID = SITES.PARTY_SITE_ID
2086 AND WL.WSH_LOCATION_ID = SITES.LOCATION_ID
2087 AND (DECODE(CAR_SITES.EMAIL_ADDRESS, POINTS.EMAIL_ADDRESS,'Y','N') = 'Y'
2088 OR CAR_SITES.TENDER_TRANSMISSION_METHOD IS NOT NULL)
2089 AND CAR_SITES.CARRIER_ID = p_CarrierID;
2090
2091 CURSOR c_CarrierContactOrg (p_CarrierID NUMBER, p_orgID NUMBER) IS
2092 SELECT
2093 REL.PARTY_ID CONTACT_PARTY_ID,
2094 PARTY.PARTY_NAME NAME,
2095 CAR_SITES.TENDER_WAIT_TIME SHIPPER_WAIT_TIME,
2096 CAR_SITES.WAIT_TIME_UOM WAIT_TIME_UOM,
2097 CAR_SITES.AUTO_ACCEPT_LOAD_TENDER AUTO_ACCEPT_LOAD_TENDER
2098 FROM
2099 HZ_PARTIES PARTY,
2100 HZ_RELATIONSHIPS REL,
2101 HZ_PARTY_SITES SITES,
2102 HZ_ORG_CONTACTS CONT,
2103 HZ_CONTACT_POINTS POINTS,
2104 --HZ_CONTACT_POINTS PHONE,
2105 WSH_CARRIER_SITES CAR_SITES,
2106 WSH_LOCATIONS WL,
2107 WSH_ORG_CARRIER_SITES ORG_CAR_SITES
2108 WHERE
2109 REL.OBJECT_ID = PARTY.PARTY_ID
2110 AND REL.SUBJECT_TYPE = 'ORGANIZATION'
2111 AND REL.SUBJECT_TABLE_NAME = 'HZ_PARTIES'
2112 AND SITES.PARTY_ID = REL.SUBJECT_ID
2113 AND CONT.PARTY_SITE_ID = SITES.PARTY_SITE_ID
2114 AND CONT.PARTY_RELATIONSHIP_ID = REL.RELATIONSHIP_ID
2115 AND POINTS.OWNER_TABLE_ID = REL.PARTY_ID
2116 AND POINTS.OWNER_TABLE_NAME = 'HZ_PARTIES'
2117 AND POINTS.CONTACT_POINT_TYPE = 'EMAIL'
2118 --AND PHONE.OWNER_TABLE_ID(+) = REL.PARTY_ID
2119 --AND PHONE.OWNER_TABLE_NAME(+) = 'HZ_PARTIES'
2120 --AND PHONE.CONTACT_POINT_TYPE(+) = 'PHONE'
2121 AND CAR_SITES.CARRIER_SITE_ID = SITES.PARTY_SITE_ID
2122 AND WL.WSH_LOCATION_ID = SITES.LOCATION_ID
2123 AND (DECODE(CAR_SITES.EMAIL_ADDRESS, POINTS.EMAIL_ADDRESS,'Y','N') = 'Y'
2124 OR CAR_SITES.TENDER_TRANSMISSION_METHOD IS NOT NULL)
2125 AND CAR_SITES.CARRIER_ID = p_CarrierID
2126 AND ORG_CAR_SITES.ENABLED_FLAG = 'Y'
2127 AND ORG_CAR_SITES.ORGANIZATION_ID = p_orgID;
2128
2129 BEGIN
2130 SAVEPOINT TENDER_TRIPS;
2131 -- Initialize message list if p_init_msg_list is set to TRUE.
2132 --
2133 IF FND_API.to_Boolean( p_init_msg_list ) THEN
2134 FND_MSG_PUB.initialize;
2135 END IF;
2136
2137 IF l_debug_on THEN
2138 WSH_DEBUG_SV.PUSH(l_module_name);
2139 WSH_DEBUG_SV.logmsg(l_module_name,'About to tender ' || p_trip_id_tab.COUNT || ' Trips');
2140 END IF;
2141
2142 l_error_id_tab := FTE_ID_TAB_TYPE();
2143 l_valid_ids_tab := FTE_ID_TAB_TYPE();
2144 l_error_name_tab := FTE_NAME_TAB_TYPE();
2145 l_valid_name_tab := FTE_NAME_TAB_TYPE();
2146
2147
2148 BEGIN
2149 --Looping through the trips to tender if possible.
2150 FOR i IN p_trip_id_tab.FIRST..p_trip_id_tab.LAST LOOP
2151 IF l_debug_on THEN
2152 WSH_DEBUG_SV.logmsg(l_module_name,'About to tender Trip - ' || p_trip_id_tab(i));
2153 END IF;
2154 --Checking if trip has got deliveries present to go ahead and tender
2155 IF (TENDER_TRIP_VALIDATIONS(p_trip_id_tab(i),
2156 l_tripName,
2157 l_carrierID,
2158 l_tripType,
2159 l_tripTenderStatus
2160 )) THEN
2161 IF l_debug_on THEN
2162 WSH_DEBUG_SV.logmsg(l_module_name,
2163 'Validated the trip Successfuly, Querrying data for the trip ');
2164 WSH_DEBUG_SV.logmsg(l_module_name,'Type of Trip - ' || l_tripType);
2165 END IF;
2166
2167 -- If trip is Inbound then get DESC order of Arrival Date
2168 IF l_tripType = 'I' THEN
2169 OPEN c_tripStopsIB(p_trip_id_tab(i));
2170 FETCH c_tripStopsIB INTO l_stopLocID;
2171 CLOSE c_tripStopsIB;
2172 ELSIF l_tripType = 'O' OR l_tripType = 'M'THEN
2173 OPEN c_tripStops(p_trip_id_tab(i));
2174 FETCH c_tripStops INTO l_stopLocID;
2175 CLOSE c_tripStops;
2176 END IF;
2177
2178 IF l_debug_on THEN
2179 WSH_DEBUG_SV.logmsg(l_module_name,'Querried up the InitialPickup Stop ' || l_stopLocID || ' for the trip successfully.');
2180 END IF;
2181
2182 --Getting the Organization of Final Stop.
2183 OPEN c_getOrganization(l_stopLocID);
2184 FETCH c_getOrganization INTO l_orgID;
2185 CLOSE c_getOrganization;
2186 IF l_debug_on THEN
2187 WSH_DEBUG_SV.logmsg(l_module_name,'Querried up the Organization ' || l_orgID || ' for the Stop successfully.');
2188 END IF;
2189
2190 --If Organization is set to the carrier Site use it, else pick all.
2191 IF l_orgID <> NULL THEN
2192 OPEN c_CarrierContactOrg(l_carrierID, l_orgID);
2193 FETCH c_CarrierContactOrg
2194 INTO
2195 l_carrier_contact_id,
2196 l_carrier_contact_name,
2197 l_shipper_wait_time,
2198 l_wait_time_uom,
2199 l_autoAcceptLoadTender;
2200
2201
2202 CLOSE c_CarrierContactOrg;
2203 ELSE
2204 OPEN c_CarrierContact(l_carrierID);
2205 FETCH c_CarrierContact
2206 INTO
2207 l_carrier_contact_id,
2208 l_carrier_contact_name,
2209 l_shipper_wait_time,
2210 l_wait_time_uom,
2211 l_autoAcceptLoadTender;
2212 CLOSE c_CarrierContact;
2213 END IF;
2214
2215
2216 --{
2217 IF (l_carrier_contact_id IS NULL)
2218 THEN
2219 IF l_debug_on THEN
2220 WSH_DEBUG_SV.logmsg(l_module_name,' Invalid Carrier Contact information. Cannot Tender ');
2221 END IF;
2222
2223 l_error_id_tab.EXTEND;
2224 l_error_id_tab(l_error_id_tab.COUNT) := p_trip_id_tab(i);
2225 l_error_name_tab.EXTEND;
2226 l_error_name_tab(l_error_name_tab.COUNT) := l_tripName;
2227 l_number_of_errors := l_number_of_errors + 1;
2228 ELSE
2229
2230 IF l_debug_on THEN
2231 WSH_DEBUG_SV.logmsg(l_module_name,'Querried up the data for the trip successfully, Updating the Trip');
2232 END IF;
2233
2234 --Call new TRIP_ACTION api
2235
2236 l_trip_action_rec := FTE_TRIP_ACTION_PARAM_REC(null,'TENDERED',
2237 null,null,null,null,null,null,
2238 null,null,null,null,null,null,
2239 null,null);
2240
2241
2242 l_tender_attr_rec := FTE_TENDER_ATTR_REC(
2243 p_trip_id_tab(i), -- TripId
2244 l_tripName, -- Trip Name
2245 p_trip_id_tab(i), --tender id
2246 l_tripTenderStatus, -- status
2247 l_carrier_contact_id,-- car_contact_id
2248 l_carrier_contact_name, -- car contact name
2249 null, -- auto_accept
2250 null, -- auto tender
2251 l_shipper_wait_time, -- ship wait time
2252 l_wait_time_uom, -- ship time uom
2253 null, -- wf name
2254 null, -- wf process name
2255 null, --wf item key
2256 null,null,null,null,null,null,null,null,null);
2257
2258
2259
2260 Trip_Action (p_api_version_number => 1.0,
2261 p_init_msg_list => FND_API.G_TRUE,
2262 x_return_status => l_return_status,
2263 x_msg_count => l_msg_count,
2264 x_msg_data => l_msg_data,
2265 x_action_out_rec => l_action_out_rec,
2266 p_trip_info_rec => l_tender_attr_rec,
2267 p_action_prms => l_trip_action_rec);
2268
2269 IF l_debug_on THEN
2270 WSH_DEBUG_SV.logmsg(l_module_name,'Updated the Trip ' || l_return_status || ' l_msg_data = ' || l_msg_data);
2271 END IF;
2272
2273
2274 IF l_return_status = 'E' THEN
2275 IF l_debug_on THEN
2276 WSH_DEBUG_SV.logmsg(l_module_name,'Failed to update the trip. ' || l_msg_data);
2277 END IF;
2278 l_error_id_tab.EXTEND;
2279 l_error_id_tab(l_error_id_tab.COUNT) := p_trip_id_tab(i);
2280 l_error_name_tab.EXTEND;
2281 l_error_name_tab(l_error_name_tab.COUNT) := l_tripName;
2282 l_number_of_errors := l_number_of_errors + 1;
2283 END IF;
2284
2285 IF l_debug_on THEN
2286 WSH_DEBUG_SV.logmsg(l_module_name,'Before Post API Call');
2287 WSH_DEBUG_SV.logmsg(l_module_name,'l_return_status: ' || l_return_status);
2288 WSH_DEBUG_SV.logmsg(l_module_name,'l_msg_count: ' || l_msg_count);
2289 WSH_DEBUG_SV.logmsg(l_module_name,'l_msg_data: ' || l_msg_data);
2290 WSH_DEBUG_SV.logmsg(l_module_name,'l_number_of_warnings: ' || l_number_of_warnings);
2291 END IF;
2292 WSH_UTIL_CORE.API_POST_CALL(
2293 p_return_status =>l_return_status,
2294 x_num_warnings =>l_number_of_warnings,
2295 x_num_errors =>l_number_of_errors,
2296 p_msg_data =>l_msg_data,
2297 p_raise_error_flag => FALSE);
2298
2299 -- Take snapshot
2300 --}
2301 END IF;
2302 ELSE
2303 --Failed Validations. Adding tripID to result table.
2304 l_error_id_tab.EXTEND;
2305 l_error_id_tab(l_error_id_tab.COUNT) := p_trip_id_tab(i);
2306 l_error_name_tab.EXTEND;
2307 l_error_name_tab(l_error_name_tab.COUNT) := l_tripName;
2308 l_number_of_errors := l_number_of_errors + 1;
2309 IF l_debug_on THEN
2310 WSH_DEBUG_SV.logmsg(l_module_name,'Validation Failed for trip - ' || p_trip_id_tab(i) || '. Did not tender.');
2311 END IF;
2312
2313 END IF;
2314 END LOOP;
2315
2316 x_action_out_rec := FTE_ACTION_OUT_REC(l_error_id_tab,l_valid_ids_tab,null,null,null,null,null,null);
2317
2318 --Setting Return Status appropriately.
2319 IF l_number_of_errors > 0 THEN
2320 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2321 ELSIF l_number_of_warnings > 0 THEN
2322 x_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
2323 ELSE
2324 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
2325 END IF;
2326
2327
2328 --If some trips failed and some passed, return warning msg.
2329 IF ((l_error_id_tab.COUNT > 0) AND (l_error_id_tab.COUNT < p_trip_id_tab.COUNT)) THEN
2330 x_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
2331 END IF;
2332
2333 FND_MSG_PUB.Count_And_Get (
2334 p_count => x_msg_count,
2335 p_data => x_msg_data,
2336 p_encoded => FND_API.G_FALSE);
2337
2338 IF (p_caller = 'UI')
2339 THEN
2340 --{
2341
2342 IF l_debug_on THEN
2343 WSH_DEBUG_SV.logmsg(l_module_name,'x_return_status ' || x_return_status);
2344 WSH_DEBUG_SV.logmsg(l_module_name,'x_msg_count ' || x_msg_count);
2345 WSH_DEBUG_SV.logmsg(l_module_name,'x_msg_data ' ||
2346 FTE_MLS_UTIL.GET_MESSAGE(x_msg_count,x_msg_data));
2347 END IF;
2348
2349 --Suppressing the detailed msg to be shown to the user
2350 IF l_debug_on THEN
2351 WSH_DEBUG_SV.logmsg(l_module_name,'Clearing off unrequired messages');
2352 END IF;
2353
2354 FND_MSG_PUB.initialize; -- FND messages are not sent back to the UI hence clearing the stack
2355 x_msg_data := '';
2356 x_msg_count := 0;
2357
2358 IF (l_error_id_tab.COUNT > 0) THEN --In case any error is present.
2359 WSH_DEBUG_SV.logmsg(l_module_name,'Getting new user-friendly message for '||l_error_name_tab.COUNT||' ERROR Trips');
2360 l_tenderIds := GET_TRIP_MSG_TOKEN(l_error_id_tab);
2361 ELSIF (l_valid_ids_tab.COUNT > 0) THEN --In case Only success is present.
2362 WSH_DEBUG_SV.logmsg(l_module_name,'Getting new user-friendly message for '||l_error_name_tab.COUNT||' SUCCESS Trips');
2363 l_tenderIds := GET_TRIP_MSG_TOKEN(l_valid_ids_tab);
2364 END IF;
2365
2366 --Setting new user friendly message for Error and Warning.
2367 IF x_return_status = WSH_UTIL_CORE.G_RET_STS_ERROR THEN
2368 FND_MESSAGE.SET_NAME('FTE','FTE_MULTI_TENDER_FAIL');
2369 FND_MESSAGE.SET_TOKEN('trip_names', l_tenderIds);
2370 ELSIF x_return_status = WSH_UTIL_CORE.G_RET_STS_WARNING THEN
2371 FND_MESSAGE.SET_NAME('FTE','FTE_MULTI_TENDER_WARN');
2372 FND_MESSAGE.SET_TOKEN('trip_names', l_tenderIds);
2373 ELSIF x_return_status = WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
2374 FND_MESSAGE.SET_NAME('FTE','FTE_MULTI_TENDER_PASS');
2375 END IF;
2376 FND_MSG_PUB.ADD;
2377
2378 FND_MSG_PUB.Count_And_Get (
2379 p_count => x_msg_count,
2380 p_data => x_msg_data,
2381 p_encoded => FND_API.G_FALSE);
2382
2383 IF l_debug_on THEN
2384 WSH_DEBUG_SV.logmsg(l_module_name,'x_msg_count - ' || x_msg_count);
2385 WSH_DEBUG_SV.logmsg(l_module_name,'x_msg_data - ' || x_msg_data);
2386 WSH_DEBUG_SV.logmsg(l_module_name,'x_msg_data - ' || FTE_MLS_UTIL.GET_MESSAGE(x_msg_count,x_msg_data));
2387 END IF;
2388 --}
2389 END IF;
2390
2391 IF l_debug_on THEN
2392 WSH_DEBUG_SV.pop(l_module_name);
2393 END IF;
2394
2395 EXCEPTION
2396 WHEN FND_API.G_EXC_ERROR THEN
2397 ROLLBACK TO TENDER_TRIPS;
2398 x_return_status := FND_API.G_RET_STS_ERROR;
2399 FND_MSG_PUB.Count_And_Get
2400 (
2401 p_count => x_msg_count,
2402 p_data => x_msg_data,
2403 p_encoded => FND_API.G_FALSE
2404 );
2405 IF l_debug_on THEN
2406 WSH_DEBUG_SV.pop(l_module_name);
2407 END IF;
2408 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2409 ROLLBACK TO TENDER_TRIPS;
2410 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
2411 FND_MSG_PUB.Count_And_Get
2412 (
2413 p_count => x_msg_count,
2414 p_data => x_msg_data,
2415 p_encoded => FND_API.G_FALSE
2416 );
2417 IF l_debug_on THEN
2418 WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '|| SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
2419 WSH_DEBUG_SV.pop(l_module_name);
2420 END IF;
2421 WHEN OTHERS THEN
2422 ROLLBACK TO TENDER_TRIPS;
2423 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
2424 FND_MSG_PUB.Count_And_Get
2425 (
2426 p_count => x_msg_count,
2427 p_data => x_msg_data,
2428 p_encoded => FND_API.G_FALSE
2429 );
2430 IF l_debug_on THEN
2431 WSH_DEBUG_SV.logmsg(l_module_name,'Unlown error has occured. Oracle error message is '|| SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
2432 WSH_DEBUG_SV.pop(l_module_name);
2433 END IF;
2434 END;
2435 END TENDER_TRIPS;
2436 --}
2437 --Added by ajprabha for 10+ validations.
2438 --========================================================================
2439 -- PROCEDURE : CANCEL_TENDER_VALIDATIONS PRIVATE
2440 --
2441 -- PARAMETERS: p_tripID Trip ID
2442 --
2443 -- RETURN : True if all validations are done.
2444 -- VERSION : current version 1.0
2445 -- initial version 1.0
2446 --========================================================================
2447 FUNCTION CANCEL_TENDER_VALIDATIONS
2448 (p_tripID IN NUMBER, -- TRIP ID
2449 x_tripName OUT NOCOPY VARCHAR2,
2450 x_carrierID OUT NOCOPY VARCHAR2,
2451 x_tripLoadTenderStatus OUT NOCOPY VARCHAR2,
2452 x_carrier_contact_id OUT NOCOPY NUMBER,
2453 x_wFItemKey OUT NOCOPY VARCHAR2
2454 ) RETURN BOOLEAN IS
2455 l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
2456 l_module_name CONSTANT VARCHAR2(100) := 'FTE.PLSQL.' || G_PKG_NAME || '.' || 'CANCEL_TENDER_VALIDATIONS';
2457
2458 CURSOR c_tripDetails (p_tripID NUMBER) IS
2459 SELECT NAME, PLANNED_FLAG, LOAD_TENDER_STATUS,
2460 CARRIER_ID, CARRIER_CONTACT_ID, WF_ITEM_KEY, LANE_ID
2461 FROM WSH_TRIPS
2462 WHERE TRIP_ID = p_tripID;
2463
2464 l_tripName VARCHAR2(30);
2465 l_laneID NUMBER;
2466 l_tripLoadTenderStatus VARCHAR2(30);
2467 l_tripPlannedFlag VARCHAR2(1);
2468 TRIP_SHIPPER_CANCELLED CONSTANT VARCHAR2(20) := 'SHIPPER_CANCELLED';
2469 TRIP_FIRM CONSTANT VARCHAR(1) := 'F';
2470 TRIP_PLANNED CONSTANT VARCHAR(1) := 'Y';
2471
2472 BEGIN
2473
2474 IF l_debug_on THEN
2475 WSH_DEBUG_SV.PUSH(l_module_name);
2476 WSH_DEBUG_SV.logmsg(l_module_name,' Begin Validations for trip ' || p_tripID);
2477 END IF;
2478
2479 --Getting trip details for all the validations
2480 OPEN c_tripDetails(p_tripID);
2481 FETCH c_tripDetails INTO x_tripName, l_tripPlannedFlag, x_tripLoadTenderStatus,
2482 x_carrierID, x_carrier_contact_id, x_wFItemKey, l_laneID;
2483 CLOSE c_tripDetails;
2484
2485 -- Check for NULL Lane
2486 IF (l_laneID IS NULL) THEN
2487 --No msg as of now. Will check later --AJPRABHA
2488 IF l_debug_on THEN
2489 WSH_DEBUG_SV.logmsg(l_module_name,'Failed since LaneID is null ');
2490 WSH_DEBUG_SV.pop(l_module_name);
2491 END IF;
2492 RETURN FALSE;
2493 END IF;
2494
2495 --Check if PlannedFlag = F (Firm) or Y (Planned)
2496 IF ((l_tripPlannedFlag = TRIP_FIRM) OR (l_tripPlannedFlag = TRIP_PLANNED)) THEN
2497 FND_MESSAGE.SET_NAME('FTE','FTE_CNT_CAN_TENDER_FIRMED');
2498 FND_MESSAGE.SET_TOKEN('TRIP_NAME', l_tripName);
2499 FND_MSG_PUB.ADD;
2500 IF l_debug_on THEN
2501 WSH_DEBUG_SV.logmsg(l_module_name,'Failed since Planned Flag is ' || l_tripPlannedFlag);
2502 WSH_DEBUG_SV.pop(l_module_name);
2503 END IF;
2504 RETURN FALSE;
2505 END IF;
2506
2507
2508 IF l_debug_on THEN
2509 WSH_DEBUG_SV.logmsg(l_module_name,' Validations are all passed, Cancel tender can now be performed.');
2510 WSH_DEBUG_SV.pop(l_module_name);
2511 END IF;
2512 RETURN TRUE;
2513
2514 EXCEPTION
2515 WHEN OTHERS THEN
2516 IF l_debug_on THEN
2517 WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. '||
2518 'Oracle error message is '||
2519 SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
2520 WSH_DEBUG_SV.pop(l_module_name);
2521 END IF;
2522 RETURN FALSE;
2523 END CANCEL_TENDER_VALIDATIONS;
2524
2525 --========================================================================
2526 -- PROCEDURE : Cancel_Tender_Trips PRIVATE
2527 --
2528 -- PARAMETERS: p_api_version_number known api version error number
2529 -- p_init_msg_list FND_API.G_TRUE to reset list
2530 -- p_trip_id_tab Table of trip id's
2531 -- x_success_trip_id_tab Out Table of failed trip IDs.
2532 -- x_return_status return status
2533 -- x_msg_count number of messages in the list
2534 -- x_msg_data text of messages
2535 -- VERSION : current version 1.0
2536 -- initial version 1.0
2537 --========================================================================
2538 PROCEDURE CANCEL_TENDER_TRIPS
2539 ( p_api_version_number IN NUMBER,
2540 p_init_msg_list IN VARCHAR2,
2541 p_trip_id_tab IN FTE_ID_TAB_TYPE,
2542 x_action_out_rec OUT NOCOPY FTE_ACTION_OUT_REC,
2543 x_return_status OUT NOCOPY VARCHAR2,
2544 x_msg_count OUT NOCOPY NUMBER,
2545 x_msg_data OUT NOCOPY VARCHAR2
2546 ) IS
2547
2548 l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
2549 l_module_name CONSTANT VARCHAR2(100) := 'FTE.PLSQL.' || G_PKG_NAME || '.' || 'CANCEL_TENDER_TRIPS';
2550
2551 l_return_status VARCHAR2(1);
2552 l_error_tkn VARCHAR2(500);
2553 l_msg_count NUMBER := 0;
2554 l_msg_data VARCHAR2(500);
2555 l_number_of_warnings NUMBER := 0;
2556 l_number_of_errors NUMBER := 0;
2557 l_tripNames VARCHAR2(500);
2558
2559 l_tripName VARCHAR2(30);
2560 l_carrierID NUMBER := 0;
2561 l_load_tender_status VARCHAR2(30);
2562 l_carrier_contact_id NUMBER := 0;
2563 l_wFItemKey VARCHAR2(240);
2564
2565 --Result and Failed IDs
2566 l_error_id_tab FTE_ID_TAB_TYPE;
2567 l_valid_ids_tab FTE_ID_TAB_TYPE;
2568 l_error_name_tab FTE_NAME_TAB_TYPE;
2569
2570 x_trip_id NUMBER := 0;
2571 x_trip_name VARCHAR2(30);
2572 x_CREATION_DATE DATE;
2573 x_CREATED_BY NUMBER;
2574 x_LAST_UPDATE_DATE DATE;
2575 x_LAST_UPDATED_BY NUMBER;
2576 x_LAST_UPDATE_LOGIN NUMBER;
2577
2578 l_trip_action_rec FTE_TRIP_ACTION_PARAM_REC;
2579 l_action_out_rec FTE_ACTION_OUT_REC;
2580 l_tender_attr_rec FTE_TENDER_ATTR_REC;
2581
2582
2583 BEGIN
2584 -- Initialize message list if p_init_msg_list is set to TRUE.
2585 IF FND_API.to_Boolean( p_init_msg_list ) THEN
2586 FND_MSG_PUB.initialize;
2587 END IF;
2588 SAVEPOINT CANCEL_TENDER_TRIPS;
2589 IF l_debug_on THEN
2590 WSH_DEBUG_SV.PUSH(l_module_name);
2591 WSH_DEBUG_SV.logmsg(l_module_name,'About to cancel tender ' || p_trip_id_tab.COUNT || ' Trips');
2592 END IF;
2593
2594 l_error_id_tab := FTE_ID_TAB_TYPE();
2595 l_valid_ids_tab := FTE_ID_TAB_TYPE();
2596 l_error_name_tab := FTE_NAME_TAB_TYPE();
2597
2598 BEGIN
2599 FOR i IN p_trip_id_tab.FIRST..p_trip_id_tab.LAST LOOP
2600 IF l_debug_on THEN
2601 WSH_DEBUG_SV.logmsg(l_module_name,'About to cancel tender for Trip - ' || p_trip_id_tab(i));
2602 END IF;
2603
2604 IF (CANCEL_TENDER_VALIDATIONS(
2605 p_tripID => p_trip_id_tab(i),
2606 x_tripName => l_tripName,
2607 x_carrierID => l_carrierID,
2608 x_tripLoadTenderStatus => l_load_tender_status,
2609 x_carrier_contact_id => l_carrier_contact_id,
2610 x_wFItemKey => l_wFItemKey))
2611 THEN
2612 --{
2613
2614 l_trip_action_rec := FTE_TRIP_ACTION_PARAM_REC(null,FTE_TENDER_PVT.S_SHIPPER_CANCELLED,
2615 null,null,null,null,null,null,
2616 null,null,null,null,null,null,
2617 null,null);
2618
2619 l_tender_attr_rec := FTE_TENDER_ATTR_REC(
2620 p_trip_id_tab(i), -- TripId
2621 null, -- Trip Name
2622 p_trip_id_tab(i), --tender id
2623 FTE_TENDER_PVT.S_SHIPPER_CANCELLED, -- status
2624 null,-- car_contact_id
2625 null, -- car contact name
2626 null, -- auto_accept
2627 null, -- auto tender
2628 null, -- ship wait time
2629 null, -- ship time uom
2630 null, -- wf name
2631 null, -- wf process name
2632 null, --wf item key
2633 null,null,null,null,null,null,null,null,null);
2634
2635
2636 FTE_MLS_WRAPPER.Trip_Action (p_api_version_number => 1.0,
2637 p_init_msg_list => FND_API.G_TRUE,
2638 x_return_status => l_return_status,
2639 x_msg_count => l_msg_count,
2640 x_msg_data => l_msg_data,
2641 x_action_out_rec => l_action_out_rec,
2642 p_trip_info_rec => l_tender_attr_rec,
2643 p_action_prms => l_trip_action_rec);
2644
2645
2646 IF l_debug_on THEN
2647 WSH_DEBUG_SV.logmsg(l_module_name,'Updated the Trip ' || l_return_status || ' l_msg_data = ' || l_msg_data);
2648 END IF;
2649
2650 IF l_return_status = 'E' THEN
2651 --{
2652 IF l_debug_on THEN
2653 WSH_DEBUG_SV.logmsg(l_module_name,'Failed to update the trip.' || l_msg_data);
2654 END IF;
2655 l_error_id_tab.EXTEND;
2656 l_error_id_tab(l_error_id_tab.COUNT) := p_trip_id_tab(i);
2657 l_error_name_tab.EXTEND;
2658 l_error_name_tab(l_error_name_tab.COUNT) := l_tripName;
2659 l_number_of_errors := l_number_of_errors + 1;
2660 --}
2661 ELSE
2662 --{
2663 IF l_debug_on THEN
2664 WSH_DEBUG_SV.logmsg(l_module_name,'Updated the trip successfully.' || l_msg_data);
2665 END IF;
2666
2667 l_valid_ids_tab.EXTEND;
2668 l_valid_ids_tab(l_valid_ids_tab.COUNT) := p_trip_id_tab(i);
2669 --Find Delivery Legs and Add history Data
2670 /**
2671 FTE_DELIVERY_ACTIVITY.ADD_HISTORY(
2672 p_trip_id => p_trip_id_tab(i),
2673 p_activity_date => SYSDATE,
2674 p_activity_type => 'TENDER_CANCEL_PROCESS',
2675 p_request_id => FND_GLOBAL.USER_ID,
2676 p_action_by => FND_GLOBAL.USER_ID,
2677 p_action_by_name=> FND_GLOBAL.USER_NAME,
2678 p_remarks => NULL, --Checked and confimred with HB consistent with Java
2679 p_result_status => NULL, --Checked and confimred with HB consistent with Java
2680 p_initial_status=> l_load_tender_status,
2681 x_return_status => l_return_status,
2682 x_error_msg => l_msg_data,
2683 x_error_tkn => l_error_tkn --Check with HB
2684 );
2685
2686 WSH_UTIL_CORE.API_POST_CALL(
2687 p_return_status =>l_return_status,
2688 x_num_warnings =>l_number_of_warnings,
2689 x_num_errors =>l_number_of_errors,
2690 p_msg_data =>l_msg_data,
2691 p_raise_error_flag => FALSE);
2692
2693 -- delete tender snapshot
2694
2695 FTE_TENDER_PVT.DELETE_TENDER_SNAPSHOT(
2696 p_init_msg_list => FND_API.G_FALSE,
2697 p_tender_id => p_trip_id_tab(i),
2698 x_return_status => l_return_status,
2699 x_msg_count => l_number_of_errors,
2700 x_msg_data => l_msg_data);
2701
2702 WSH_UTIL_CORE.API_POST_CALL(
2703 p_return_status =>l_return_status,
2704 x_num_warnings =>l_number_of_warnings,
2705 x_num_errors =>l_number_of_errors,
2706 p_msg_data =>l_msg_data,
2707 p_raise_error_flag => FALSE);
2708 */
2709 --}
2710 END IF;
2711
2712 IF l_debug_on THEN
2713 WSH_DEBUG_SV.logmsg(l_module_name,'Before Post API Call');
2714 WSH_DEBUG_SV.logmsg(l_module_name,'l_return_status: ' || l_return_status);
2715 WSH_DEBUG_SV.logmsg(l_module_name,'l_msg_count: ' || l_msg_count);
2716 WSH_DEBUG_SV.logmsg(l_module_name,'l_msg_data: ' || l_msg_data);
2717 END IF;
2718
2719 WSH_UTIL_CORE.API_POST_CALL(
2720 p_return_status =>l_return_status,
2721 x_num_warnings =>l_number_of_warnings,
2722 x_num_errors =>l_number_of_errors,
2723 p_msg_data =>l_msg_data,
2724 p_raise_error_flag => FALSE);
2725 --}
2726 ELSE
2727 --{
2728 --Failed Validations. Adding tripID to result table.
2729 l_error_id_tab.EXTEND;
2730 l_error_id_tab(l_error_id_tab.COUNT) := p_trip_id_tab(i);
2731 l_error_name_tab.EXTEND;
2732 l_error_name_tab(l_error_name_tab.COUNT) := l_tripName;
2733 l_number_of_errors := l_number_of_errors + 1;
2734 IF l_debug_on THEN
2735 WSH_DEBUG_SV.logmsg(l_module_name,'Validation Failed for cancel tender trip - ' || p_trip_id_tab(i) || '. Did not tender.');
2736 END IF;
2737 --}
2738 END IF;
2739 END LOOP;
2740
2741 IF l_debug_on THEN
2742 WSH_DEBUG_SV.logmsg(l_module_name,'End of Loop');
2743 WSH_DEBUG_SV.logmsg(l_module_name,'l_number_of_errors - ' || l_number_of_errors);
2744 WSH_DEBUG_SV.logmsg(l_module_name,'l_number_of_warnings - ' || l_number_of_warnings);
2745 WSH_DEBUG_SV.logmsg(l_module_name,'l_number_of_errors - ' || l_number_of_errors);
2746 END IF;
2747 x_action_out_rec := FTE_ACTION_OUT_REC(
2748 l_error_id_tab,l_valid_ids_tab,NULL,NULL,NULL,NULL,NULL,NULL);
2749
2750 --Setting Return Status appropriately.
2751 IF l_number_of_errors > 0 THEN
2752 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2753 ELSIF l_number_of_warnings > 0 THEN
2754 x_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
2755 ELSE
2756 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
2757 END IF;
2758
2759
2760 --If some trips failed and some passed, return warning msg.
2761 IF ((l_error_id_tab.COUNT > 0) AND (l_error_id_tab.COUNT < p_trip_id_tab.COUNT)) THEN
2762 WSH_DEBUG_SV.logmsg(l_module_name,'Reset the return status to warn');
2763 x_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
2764 END IF;
2765
2766 IF l_debug_on THEN
2767 WSH_DEBUG_SV.logmsg(l_module_name,'x_return_status: ' || x_return_status);
2768 WSH_DEBUG_SV.logmsg(l_module_name,'l_msg_count: ' || l_msg_count);
2769 WSH_DEBUG_SV.logmsg(l_module_name,'l_number_of_errors: ' || l_number_of_errors);
2770 WSH_DEBUG_SV.logmsg(l_module_name,'l_number_of_warnings: ' || l_number_of_warnings);
2771 END IF;
2772
2773 --Suppressing the detailed msg to be shown to the user
2774 IF l_debug_on THEN
2775 WSH_DEBUG_SV.logmsg(l_module_name,'Clearing off unrequired messages - ' || l_msg_data);
2776 END IF;
2777 FND_MSG_PUB.initialize; -- FND messages are not sent back to the UI hence clearing the stack
2778 x_msg_data := '';
2779 x_msg_count := 0;
2780
2781 IF (l_error_name_tab.COUNT > 0) THEN -- If error/warning get trip name list
2782 l_tripNames := GET_TRIP_MSG_TOKEN(l_error_name_tab);
2783 END IF;
2784
2785 --Setting new user friendly message for Error and Warning.
2786 IF x_return_status = WSH_UTIL_CORE.G_RET_STS_ERROR THEN
2787 FND_MESSAGE.SET_NAME('FTE','FTE_MULTI_CANCEL_TENDER_FAIL');
2788 ELSIF x_return_status = WSH_UTIL_CORE.G_RET_STS_WARNING THEN
2789 FND_MESSAGE.SET_NAME('FTE','FTE_MULTI_CANCEL_TENDER_WARN');
2790 ELSIF x_return_status = WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
2791 FND_MESSAGE.SET_NAME('FTE','FTE_MULTI_CANCEL_TENDER_PASS');
2792 END IF;
2793
2794 IF x_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
2795 FND_MESSAGE.SET_TOKEN('trip_names', l_tripNames);
2796 END IF;
2797 FND_MSG_PUB.ADD;
2798
2799 FND_MSG_PUB.Count_And_Get (
2800 p_count => x_msg_count,
2801 p_data => x_msg_data,
2802 p_encoded => FND_API.G_FALSE);
2803
2804 IF l_debug_on THEN
2805 WSH_DEBUG_SV.pop(l_module_name);
2806 END IF;
2807 EXCEPTION
2808 WHEN FND_API.G_EXC_ERROR THEN
2809 ROLLBACK TO CANCEL_TENDER_TRIPS;
2810 x_return_status := FND_API.G_RET_STS_ERROR;
2811 FND_MSG_PUB.COUNT_AND_GET
2812 (
2813 p_count => x_msg_count,
2814 p_data => x_msg_data,
2815 p_encoded => FND_API.G_FALSE
2816 );
2817 IF l_debug_on THEN
2818 WSH_DEBUG_SV.pop(l_module_name);
2819 END IF;
2820 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2821 ROLLBACK TO CANCEL_TENDER_TRIPS;
2822 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
2823 FND_MSG_PUB.COUNT_AND_GET
2824 (
2825 p_count => x_msg_count,
2826 p_data => x_msg_data,
2827 p_encoded => FND_API.G_FALSE
2828 );
2829 IF l_debug_on THEN
2830 WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '|| SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
2831 WSH_DEBUG_SV.pop(l_module_name);
2832 END IF;
2833 WHEN OTHERS THEN
2834 ROLLBACK TO CANCEL_TENDER_TRIPS;
2835 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
2836 FND_MSG_PUB.COUNT_AND_GET
2837 (
2838 p_count => x_msg_count,
2839 p_data => x_msg_data,
2840 p_encoded => FND_API.G_FALSE
2841 );
2842 IF l_debug_on THEN
2843 WSH_DEBUG_SV.pop(l_module_name);
2844 END IF;
2845 END;
2846 END CANCEL_TENDER_TRIPS;
2847 --------- End of 10+ Enhancement - ajprabha
2848 --========================================================================
2849 -- Added Following procedure for PACK J
2850 --========================================================================
2851
2852
2853 --========================================================================
2854 -- PROCEDURE : TRIP_ACTION Wrapper API PUBLIC
2855 --
2856 -- PARAMETERS: p_api_version_number known api version error number
2857 -- p_init_msg_list FND_API.G_TRUE to reset list
2858 -- p_trip_id_tab table of trip id's
2859 -- p_action_prms Record of caller, phase, action_code and other
2860 -- parameters specific to the actions.
2861 -- x_action_out_rec Out rec based on actions.
2862 -- x_return_status return status
2863 -- x_msg_count number of messages in the list
2864 -- x_msg_data text of messages
2865 -- VERSION : current version 1.0
2866 -- initial version 1.0
2867 --========================================================================
2868
2869 PROCEDURE Trip_Action
2870 ( p_api_version_number IN NUMBER,
2871 p_init_msg_list IN VARCHAR2,
2872 p_trip_id_tab IN FTE_ID_TAB_TYPE,
2873 p_action_prms IN FTE_TRIP_ACTION_PARAM_REC,
2874 x_action_out_rec OUT NOCOPY FTE_ACTION_OUT_REC,
2875 x_return_status OUT NOCOPY VARCHAR2,
2876 x_msg_count OUT NOCOPY NUMBER,
2877 x_msg_data OUT NOCOPY VARCHAR2
2878 ) IS
2879
2880 l_trip_id NUMBER;
2881
2882 l_wsh_id_tab WSH_UTIL_CORE.id_tab_type;
2883 l_wsh_action_prms WSH_TRIPS_GRP.action_parameters_rectype;
2884 l_wsh_out_rec WSH_TRIPS_GRP.tripActionOutRecType;
2885
2886 l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
2887 l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME ||
2888 '.' || 'TRIP_ACTION';
2889 l_result_id_tab FTE_ID_TAB_TYPE;
2890 l_valid_ids_tab FTE_ID_TAB_TYPE;
2891
2892
2893 BEGIN
2894
2895 SAVEPOINT TRIP_ACTION_PUB;
2896
2897 -- Initialize message list if p_init_msg_list is set to TRUE.
2898 --
2899 --
2900 IF FND_API.to_Boolean( p_init_msg_list )
2901 THEN
2902 FND_MSG_PUB.initialize;
2903 END IF;
2904 --
2905 --
2906 -- Initialize API return status to success
2907 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
2908 x_msg_count := 0;
2909 x_msg_data := 0;
2910
2911 IF l_debug_on THEN
2912 wsh_debug_sv.push(l_module_name);
2913 END IF;
2914
2915 --AJPRABHA 10+
2916 IF P_ACTION_PRMS.ACTION_CODE = 'TENDER' THEN
2917 TENDER_TRIPS(
2918 p_api_version_number => p_api_version_number,
2919 p_init_msg_list => p_init_msg_list,
2920 p_trip_id_tab => p_trip_id_tab,
2921 p_caller => 'UI',
2922 x_action_out_rec => x_action_out_rec,
2923 x_return_status => x_return_status,
2924 x_msg_count => x_msg_count,
2925 x_msg_data => x_msg_data
2926 );
2927 ELSIF P_ACTION_PRMS.ACTION_CODE = 'CANCEL_TENDER' THEN
2928 CANCEL_TENDER_TRIPS (
2929 p_api_version_number => p_api_version_number,
2930 p_init_msg_list => p_init_msg_list,
2931 p_trip_id_tab => p_trip_id_tab,
2932 x_action_out_rec => x_action_out_rec,
2933 x_return_status => x_return_status,
2934 x_msg_count => x_msg_count,
2935 x_msg_data => x_msg_data
2936 );
2937 ELSE
2938
2939 --Step 1: Copy id's to wsh id's. If there are no id's then we don't have to do
2940 -- anything. Check if shipping does this.
2941
2942
2943
2944 FTE_MLS_UTIL.COPY_FTE_ID_TO_WSH_ID(
2945 p_fte_id_tab => p_trip_id_tab,
2946 x_wsh_id_tab => l_wsh_id_tab);
2947
2948 IF l_debug_on THEN
2949 WSH_DEBUG_SV.logmsg(l_module_name,' Action to be performed ' || p_action_prms.action_code);
2950 END IF;
2951
2952 --Step 2: now copy action params.
2953 /** Valid Actions.
2954 -- 'PLAN','UNPLAN',
2955 -- 'WT-VOL'
2956 -- 'PICK-RELEASE'
2957 -- 'DELETE'
2958 */
2959 l_wsh_action_prms.action_code := p_action_prms.action_code;
2960 l_wsh_action_prms.phase := p_action_prms.phase;
2961 l_wsh_action_prms.caller := G_PKG_NAME;
2962 /** Enabled these parameters when they need. No need of copying them right now
2963 l_wsh_action_prms.organization_id := p_action_prms.organization_id;
2964 l_wsh_action_prms.report_set_id := p_action_prms.report_set_id;
2965 l_wsh_action_prms.override_flag := p_action_prms.override_flag;
2966 l_wsh_action_prms.trip_name := p_action_prms.trip_name;
2967 l_wsh_action_prms.actual_date := p_action_prms.actual_date;
2968 l_wsh_action_prms.stop_id := p_action_prms.stop_id;
2969 l_wsh_action_prms.action_flag := p_action_prms.action_flag;
2970 l_wsh_action_prms.autointransit_flag := p_action_prms.autointransit_flag;
2971 l_wsh_action_prms.autoclose_flag := p_action_prms.autoclose_flag;
2972 l_wsh_action_prms.stage_del_flag := p_action_prms.stage_del_flag;
2973 l_wsh_action_prms.ship_method := p_action_prms.ship_method;
2974 l_wsh_action_prms.bill_of_lading_flag := p_action_prms.bill_of_lading_flag;
2975 l_wsh_action_prms.defer_interface_flag := p_action_prms.defer_interface_flag;
2976 l_wsh_action_prms.actual_departure_date := p_action_prms.actual_departure_date;
2977 **/
2978
2979
2980 -- Step 3: Call Wsh API
2981 --call wsh public API
2982 WSH_INTERFACE_GRP.Trip_Action
2983 (
2984 p_api_version_number => 1.0,
2985 p_init_msg_list => FND_API.G_FALSE,
2986 p_commit => 'F',
2987 p_entity_id_tab => l_wsh_id_tab,
2988 p_action_prms => l_wsh_action_prms,
2989 x_trip_out_rec => l_wsh_out_rec,
2990 x_return_status => x_return_status,
2991 x_msg_count => x_msg_count,
2992 x_msg_data => x_msg_data
2993 );
2994
2995
2996 -- Step 4: Copy out wsh out rec to fte out rec
2997 l_result_id_tab := FTE_ID_TAB_TYPE();
2998 l_valid_ids_tab := FTE_ID_TAB_TYPE();
2999 x_action_out_rec := FTE_ACTION_OUT_REC(
3000 l_result_id_tab,l_valid_ids_tab,null,null,null,null,null,null);
3001
3002 -- Step 4.1 Copy wsh result id from l_wsh_out_rec to
3003 -- result id tab of x_action_out_rec
3004 WSH_DEBUG_SV.logmsg(l_module_name,'result_id_tab.count' || l_wsh_out_rec.result_id_tab.count);
3005 FTE_MLS_UTIL.COPY_WSH_ID_TO_FTE_ID(
3006 p_wsh_id_tab => l_wsh_out_rec.result_id_tab,
3007 x_fte_id_tab => x_action_out_rec.result_id_tab);
3008
3009
3010 -- Step 4.2 Copy wsh valid ids tab from l_wsh_out_rec to
3011 -- valid ids tab of x_action_out_rec
3012 WSH_DEBUG_SV.logmsg(l_module_name,'valid_ids_tab.count' || l_wsh_out_rec.valid_ids_tab.count);
3013
3014
3015 FTE_MLS_UTIL.COPY_WSH_ID_TO_FTE_ID(
3016 p_wsh_id_tab => l_wsh_out_rec.valid_ids_tab,
3017 x_fte_id_tab => x_action_out_rec.valid_ids_tab);
3018
3019 -- Step 4.3 copy selection issue flag of l_wsh_out_rec
3020 -- to selection issue flag of x_action_out_rec
3021 -- no need to copy this value since it is used by shipping transaction form
3022 -- x_action_out_rec.selection_issue_flag := l_wsh_out_rec.selection_issue_flag;
3023
3024 /**
3025 -- Testing purpose
3026 FTE_MLS_UTIL.COPY_WSH_ID_TO_FTE_ID(
3027 p_wsh_id_tab => l_wsh_id_tab,
3028 x_fte_id_tab => x_action_out_rec.valid_ids_tab);
3029 */
3030 END IF;
3031 IF l_debug_on THEN
3032 WSH_DEBUG_SV.logmsg(l_module_name,'Return Count ' || x_action_out_rec.result_id_tab.count);
3033 WSH_DEBUG_SV.logmsg(l_module_name,'x_return_status:' || x_return_status);
3034 WSH_DEBUG_SV.logmsg(l_module_name,'x_msg_count:' || x_msg_count);
3035 END IF;
3036
3037
3038 FND_MSG_PUB.Count_And_Get
3039 (
3040 p_count => x_msg_count,
3041 p_data => x_msg_data,
3042 p_encoded => FND_API.G_FALSE
3043 );
3044
3045
3046 IF l_debug_on THEN
3047 WSH_DEBUG_SV.pop(l_module_name);
3048 END IF;
3049
3050
3051 EXCEPTION
3052 WHEN FND_API.G_EXC_ERROR THEN
3053 ROLLBACK TO TRIP_ACTION_PUB;
3054 x_return_status := FND_API.G_RET_STS_ERROR;
3055 FND_MSG_PUB.Count_And_Get
3056 (
3057 p_count => x_msg_count,
3058 p_data => x_msg_data,
3059 p_encoded => FND_API.G_FALSE
3060 );
3061
3062 IF l_debug_on THEN
3063 WSH_DEBUG_SV.pop(l_module_name);
3064 END IF;
3065 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3066 ROLLBACK TO TRIP_ACTION_PUB;
3067 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
3068 FND_MSG_PUB.Count_And_Get
3069 (
3070 p_count => x_msg_count,
3071 p_data => x_msg_data,
3072 p_encoded => FND_API.G_FALSE
3073 );
3074 IF l_debug_on THEN
3075 WSH_DEBUG_SV.pop(l_module_name);
3076 END IF;
3077 WHEN OTHERS THEN
3078 ROLLBACK TO TRIP_ACTION_PUB;
3079 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
3080 FND_MSG_PUB.Count_And_Get
3081 (
3082 p_count => x_msg_count,
3083 p_data => x_msg_data,
3084 p_encoded => FND_API.G_FALSE
3085 );
3086 IF l_debug_on THEN
3087 wsh_debug_sv.log (l_module_name,'Error',substr(sqlerrm,1,200));
3088 WSH_DEBUG_SV.pop(l_module_name);
3089 END IF;
3090 END Trip_Action;
3091
3092
3093 --========================================================================
3094 -- PROCEDURE : STOP_ACTION Wrapper API PUBLIC
3095 --
3096 -- PARAMETERS: p_api_version_number known api version error number
3097 -- p_init_msg_list FND_API.G_TRUE to reset list
3098 -- p_stop_id_tab table of stop id's
3099 -- p_action_prms Record of caller, phase, action_code and other
3100 -- parameters specific to the actions.
3101 -- x_action_out_rec Out rec based on actions.
3102 -- x_return_status return status
3103 -- x_msg_count number of messages in the list
3104 -- x_msg_data text of messages
3105 -- VERSION : current version 1.0
3106 -- initial version 1.0
3107 --========================================================================
3108
3109 PROCEDURE STOP_ACTION
3110 ( p_api_version_number IN NUMBER,
3111 p_init_msg_list IN VARCHAR2,
3112 p_stop_id_tab IN FTE_ID_TAB_TYPE,
3113 p_action_prms IN FTE_STOP_ACTION_PARAM_REC,
3114 x_action_out_rec OUT NOCOPY FTE_ACTION_OUT_REC,
3115 x_return_status OUT NOCOPY VARCHAR2,
3116 x_msg_count OUT NOCOPY NUMBER,
3117 x_msg_data OUT NOCOPY VARCHAR2
3118 ) IS
3119
3120
3121 l_wsh_out_rec WSH_TRIP_STOPS_GRP.stopActionOutRecType;
3122 l_wsh_action_prms WSH_TRIP_STOPS_GRP.action_parameters_rectype;
3123 l_wsh_id_tab WSH_UTIL_CORE.id_tab_type;
3124 l_commit VARCHAR2(1);
3125
3126
3127 l_return_status VARCHAR2(10);
3128 l_msg_count NUMBER;
3129 l_msg_data VARCHAR2(32767);
3130
3131 l_number_of_warnings NUMBER;
3132 l_number_of_errors NUMBER;
3133
3134 --
3135 l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
3136 --
3137 l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME || '.' || 'STOP_ACTION';
3138
3139
3140 BEGIN
3141
3142 SAVEPOINT STOP_ACTION_PUB;
3143
3144 -- Initialize message list if p_init_msg_list is set to TRUE.
3145 --
3146 --
3147 IF FND_API.to_Boolean( p_init_msg_list )
3148 THEN
3149 FND_MSG_PUB.initialize;
3150 END IF;
3151 --
3152 --
3153 -- Initialize API return status to success
3154 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
3155 x_msg_count := 0;
3156 x_msg_data := 0;
3157
3158 l_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
3159 l_number_of_warnings := 0;
3160 l_number_of_errors := 0;
3161
3162
3163
3164 IF l_debug_on THEN
3165 wsh_debug_sv.push(l_module_name);
3166 END IF;
3167
3168 --Step 1: Copy id's to wsh id's. If there are no id's then we don't have to do
3169 -- anything. Check if shipping does this.
3170
3171
3172
3173 FTE_MLS_UTIL.COPY_FTE_ID_TO_WSH_ID(
3174 p_fte_id_tab => p_stop_id_tab,
3175 x_wsh_id_tab => l_wsh_id_tab);
3176
3177 IF l_debug_on THEN
3178 WSH_DEBUG_SV.logmsg(l_module_name,' Action to be performed ' || p_action_prms.action_code);
3179 END IF;
3180
3181 --Step 2: now copy action params.
3182 /** Valid Actions.
3183 -- 'PLAN','UNPLAN',
3184 -- 'ARRIVE','CLOSE'
3185 -- 'PICK-RELEASE'
3186 -- 'DELETE'
3187 */
3188 l_wsh_action_prms.action_code := p_action_prms.action_code;
3189 l_wsh_action_prms.phase := p_action_prms.phase;
3190 l_wsh_action_prms.caller := G_PKG_NAME;
3191
3192
3193 -- Step 3: Call Wsh API
3194 --call wsh public API
3195 WSH_INTERFACE_GRP.Stop_Action
3196 (
3197 p_api_version_number => 1.0,
3198 p_init_msg_list => FND_API.G_FALSE,
3199 p_commit => 'F',
3200 p_entity_id_tab => l_wsh_id_tab,
3201 p_action_prms => l_wsh_action_prms,
3202 x_stop_out_rec => l_wsh_out_rec,
3203 x_return_status => l_return_status,
3204 x_msg_count => l_msg_count,
3205 x_msg_data => l_msg_data
3206 );
3207
3208
3209 -- Step 4: Copy out wsh out rec to fte out rec
3210 -- Step 4.1 Copy wsh result id from l_wsh_out_rec to
3211 -- result id tab of x_action_out_rec
3212 FTE_MLS_UTIL.COPY_WSH_ID_TO_FTE_ID(
3213 p_wsh_id_tab => l_wsh_out_rec.result_id_tab,
3214 x_fte_id_tab => x_action_out_rec.result_id_tab);
3215
3216
3217 -- Step 4.2 Copy wsh valid ids tab from l_wsh_out_rec to
3218 -- valid ids tab of x_action_out_rec
3219 FTE_MLS_UTIL.COPY_WSH_ID_TO_FTE_ID(
3220 p_wsh_id_tab => l_wsh_out_rec.valid_ids_tab,
3221 x_fte_id_tab => x_action_out_rec.valid_ids_tab);
3222
3223 -- Step 4.3 copy selection issue flag of l_wsh_out_rec
3224 -- to selection issue flag of x_action_out_rec
3225 -- no need to copy this value since it is used by shipping transaction form
3226 -- x_action_out_rec.selection_issue_flag := l_wsh_out_rec.selection_issue_flag;
3227
3228
3229 IF l_debug_on THEN
3230 WSH_DEBUG_SV.logmsg(l_module_name,' WSH_INTERFACE_GRP.After calling stop action');
3231 WSH_DEBUG_SV.logmsg(l_module_name,'l_return_status:' || l_return_status);
3232 WSH_DEBUG_SV.logmsg(l_module_name,'l_msg_count:' || l_msg_count);
3233 WSH_DEBUG_SV.logmsg(l_module_name,'data:' || l_msg_data);
3234 WSH_DEBUG_SV.logmsg(l_module_name,' l_number_of_warnings ' || l_number_of_warnings);
3235 WSH_DEBUG_SV.logmsg(l_module_name,' l_number_of_errors ' || l_number_of_errors);
3236 END IF;
3237
3238
3239 wsh_util_core.api_post_call(
3240 p_return_status =>l_return_status,
3241 x_num_warnings =>l_number_of_warnings,
3242 x_num_errors =>l_number_of_errors,
3243 p_msg_data =>l_msg_data,
3244 p_raise_error_flag => FALSE);
3245
3246
3247 IF l_number_of_errors > 0
3248 THEN
3249 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3250 ELSIF l_number_of_warnings > 0
3251 THEN
3252 x_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
3253 ELSE
3254 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
3255 END IF;
3256
3257 IF l_debug_on THEN
3258 WSH_DEBUG_SV.logmsg(l_module_name,' After count and get');
3259 WSH_DEBUG_SV.logmsg(l_module_name,'x_return_status:' || x_return_status);
3260 WSH_DEBUG_SV.logmsg(l_module_name,'x_msg_count:' || x_msg_count);
3261 WSH_DEBUG_SV.logmsg(l_module_name,'x_msg_data:' || x_msg_data);
3262 END IF;
3263
3264
3265 FND_MSG_PUB.Count_And_Get
3266 (
3267 p_count => x_msg_count,
3268 p_data => x_msg_data,
3269 p_encoded => FND_API.G_FALSE
3270 );
3271
3272
3273
3274
3275 IF l_debug_on THEN
3276 WSH_DEBUG_SV.pop(l_module_name);
3277 END IF;
3278
3279
3280 EXCEPTION
3281 WHEN FND_API.G_EXC_ERROR THEN
3282 ROLLBACK TO STOP_ACTION_PUB;
3283 x_return_status := FND_API.G_RET_STS_ERROR;
3284 FND_MSG_PUB.Count_And_Get
3285 (
3286 p_count => x_msg_count,
3287 p_data => x_msg_data,
3288 p_encoded => FND_API.G_FALSE
3289 );
3290 IF l_debug_on THEN
3291 WSH_DEBUG_SV.pop(l_module_name);
3292 END IF;
3293
3294 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3295 ROLLBACK TO STOP_ACTION_PUB;
3296 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
3297 FND_MSG_PUB.Count_And_Get
3298 (
3299 p_count => x_msg_count,
3300 p_data => x_msg_data,
3301 p_encoded => FND_API.G_FALSE
3302 );
3303 IF l_debug_on THEN
3304 WSH_DEBUG_SV.pop(l_module_name);
3305 END IF;
3306 WHEN OTHERS THEN
3307 ROLLBACK TO STOP_ACTION_PUB;
3308 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
3309 FND_MSG_PUB.Count_And_Get
3310 (
3311 p_count => x_msg_count,
3312 p_data => x_msg_data,
3313 p_encoded => FND_API.G_FALSE
3314 );
3315 IF l_debug_on THEN
3316 wsh_debug_sv.log (l_module_name,'Error',substr(sqlerrm,1,200));
3317 WSH_DEBUG_SV.pop(l_module_name);
3318 END IF;
3319
3320 END STOP_ACTION;
3321
3322
3323 --========================================================================
3324 -- PROCEDURE : INIT_STOPS_PLS_TABLE Wrapper API PUBLIC
3325 --
3326 -- PARAMETERS: p_api_version_number known api version error number
3327 -- p_init_msg_list FND_API.G_TRUE to reset list
3328 -- p_stop_id_tab table of stop id's
3329 -- p_action_prms Record of caller, phase, action_code and other
3330 -- parameters specific to the actions.
3331 -- x_action_out_rec Out rec based on actions.
3332 -- x_return_status return status
3333 -- x_msg_count number of messages in the list
3334 -- x_msg_data text of messages
3335 -- VERSION : current version 1.0
3336 -- initial version 1.0
3337 --========================================================================
3338
3339
3340 PROCEDURE INIT_STOPS_PLS_TABLE
3341 ( p_api_version_number IN NUMBER,
3342 p_init_msg_list IN VARCHAR2,
3343 x_return_status OUT NOCOPY VARCHAR2,
3344 x_msg_count OUT NOCOPY NUMBER,
3345 x_msg_data OUT NOCOPY VARCHAR2
3346 ) IS
3347
3348
3349 l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
3350 --
3351 l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME || '.' || 'INIT_STOPS_PLS_TABLE';
3352
3353
3354 BEGIN
3355
3356 SAVEPOINT INIT_STOPS_PLS_TABLE_PUB;
3357
3358 -- Initialize message list if p_init_msg_list is set to TRUE.
3359 --
3360 --
3361 IF FND_API.to_Boolean( p_init_msg_list )
3362 THEN
3363 FND_MSG_PUB.initialize;
3364 END IF;
3365 --
3366 --
3367 -- Initialize API return status to success
3368 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
3369 x_msg_count := 0;
3370 x_msg_data := 0;
3371
3372 IF l_debug_on THEN
3373 wsh_debug_sv.push(l_module_name);
3374 END IF;
3375
3376
3377
3378 FTE_MLS_WRAPPER.G_STOPS_TAB_REC.delete;
3379 FTE_MLS_WRAPPER.G_STOPS_SEQ_TAB.delete;
3380
3381 IF l_debug_on THEN
3382 WSH_DEBUG_SV.logmsg(l_module_name, ' deleteing G_STOPS_TAB_REC ' );
3383 WSH_DEBUG_SV.logmsg(l_module_name, ' deleteing G_STOPS_SEQ_TAB ' );
3384 WSH_DEBUG_SV.logmsg(l_module_name,'x_return_status:' || x_return_status);
3385 WSH_DEBUG_SV.logmsg(l_module_name,'x_msg_count:' || x_msg_count);
3386 END IF;
3387
3388
3389 FND_MSG_PUB.Count_And_Get
3390 (
3391 p_count => x_msg_count,
3392 p_data => x_msg_data,
3393 p_encoded => FND_API.G_FALSE
3394 );
3395
3396
3397 IF l_debug_on THEN
3398 WSH_DEBUG_SV.pop(l_module_name);
3399 END IF;
3400
3401
3402 EXCEPTION
3403 WHEN FND_API.G_EXC_ERROR THEN
3404 ROLLBACK TO INIT_STOPS_PLS_TABLE_PUB;
3405 x_return_status := FND_API.G_RET_STS_ERROR;
3406 FND_MSG_PUB.Count_And_Get
3407 (
3408 p_count => x_msg_count,
3409 p_data => x_msg_data,
3410 p_encoded => FND_API.G_FALSE
3411 );
3412 IF l_debug_on THEN
3413 WSH_DEBUG_SV.pop(l_module_name);
3414 END IF;
3415
3416 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3417 ROLLBACK TO INIT_STOPS_PLS_TABLE_PUB;
3418 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
3419 FND_MSG_PUB.Count_And_Get
3420 (
3421 p_count => x_msg_count,
3422 p_data => x_msg_data,
3423 p_encoded => FND_API.G_FALSE
3424 );
3425 IF l_debug_on THEN
3426 WSH_DEBUG_SV.pop(l_module_name);
3427 END IF;
3428 WHEN OTHERS THEN
3429 ROLLBACK TO INIT_STOPS_PLS_TABLE_PUB;
3430 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
3431 FND_MSG_PUB.Count_And_Get
3432 (
3433 p_count => x_msg_count,
3434 p_data => x_msg_data,
3435 p_encoded => FND_API.G_FALSE
3436 );
3437 IF l_debug_on THEN
3438 wsh_debug_sv.log (l_module_name,'Error',substr(sqlerrm,1,200));
3439 WSH_DEBUG_SV.pop(l_module_name);
3440 END IF;
3441
3442 END INIT_STOPS_PLS_TABLE;
3443
3444
3445 --========================================================================
3446 -- PROCEDURE : PROCESS_STOPS Wrapper API PUBLIC
3447 --
3448 -- PARAMETERS: p_api_version_number known api version error number
3449 -- p_init_msg_list FND_API.G_TRUE to reset list
3450 -- p_stop_id_tab table of stop id's
3451 -- p_action_prms Record of caller, phase, action_code and other
3452 -- parameters specific to the actions.
3453 -- x_action_out_rec Out rec based on actions.
3454 -- x_return_status return status
3455 -- x_msg_count number of messages in the list
3456 -- x_msg_data text of messages
3457 -- VERSION : current version 1.0
3458 -- initial version 1.0
3459 --========================================================================
3460 PROCEDURE PROCESS_STOPS(
3461 p_api_version_number IN NUMBER,
3462 p_init_msg_list IN VARCHAR2,
3463 p_commit IN VARCHAR2,
3464 x_stop_out_tab OUT NOCOPY FTE_ID_TAB_TYPE,
3465 x_stop_seq_tab OUT NOCOPY FTE_ID_TAB_TYPE,
3466 x_return_status OUT NOCOPY VARCHAR2,
3467 x_msg_count OUT NOCOPY NUMBER,
3468 x_msg_data OUT NOCOPY VARCHAR2)
3469 IS
3470
3471 l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
3472 --
3473 l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME || '.' || 'PROCESS_STOPS';
3474
3475 l_stop_info WSH_TRIP_STOPS_PVT.Trip_Stop_Rec_Type;
3476 l_in_rec WSH_TRIP_STOPS_GRP.stopInRecType;
3477 l_stop_out_tab WSH_TRIP_STOPS_GRP.stop_out_tab_type;
3478 l_rec_attr_tab WSH_TRIP_STOPS_PVT.Stop_Attr_Tbl_Type;
3479
3480 l_index NUMBER;
3481
3482 l_action_code VARCHAR2(30);
3483 l_number_of_warnings NUMBER;
3484 l_number_of_errors NUMBER;
3485 l_return_status VARCHAR2(32767);
3486 l_msg_count NUMBER;
3487 l_msg_data VARCHAR2(32767);
3488 l_idx NUMBER;
3489
3490 BEGIN
3491
3492 SAVEPOINT PROCESS_STOPS_PUB;
3493
3494 -- Initialize message list if p_init_msg_list is set to TRUE.
3495 --
3496 --
3497 IF FND_API.to_Boolean( p_init_msg_list )
3498 THEN
3499 FND_MSG_PUB.initialize;
3500 END IF;
3501 --
3502 --
3503 -- Initialize API return status to success
3504 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
3505 x_msg_count := 0;
3506 x_msg_data := 0;
3507 l_number_of_warnings := 0;
3508 l_number_of_errors := 0;
3509
3510
3511 IF l_debug_on THEN
3512 wsh_debug_sv.push(l_module_name);
3513 END IF;
3514
3515 -- sort stops based on old sequence
3516 -- sort values in G_STOPS_SEQ_TAB
3517
3518 IF l_debug_on THEN
3519 WSH_DEBUG_SV.logmsg(l_module_name,' ......................... ');
3520 WSH_DEBUG_SV.logmsg(l_module_name,' Number of Records in Glocal Stop Table ' ||
3521 G_STOPS_TAB_REC.count);
3522 WSH_DEBUG_SV.logmsg(l_module_name,' Number of Records in Global Stop Seq ' ||
3523 G_STOPS_SEQ_TAB.count);
3524
3525 END IF;
3526
3527 x_stop_out_tab := FTE_ID_TAB_TYPE();
3528 x_stop_seq_tab := FTE_ID_TAB_TYPE();
3529
3530
3531 IF l_debug_on THEN
3532
3533 WSH_DEBUG_SV.logmsg(l_module_name,' Printing all stops ');
3534
3535 IF G_STOPS_TAB_REC.count > 0
3536 THEN
3537
3538 l_index := G_STOPS_TAB_REC.LAST;
3539 l_idx := 1;
3540 WHILE l_index IS NOT NULL
3541 LOOP
3542 WSH_DEBUG_SV.logmsg(l_module_name,' Index ' || l_index);
3543 l_index := G_STOPS_TAB_REC.PRIOR(l_index);
3544 END LOOP;
3545 END IF;
3546
3547 END IF;
3548
3549
3550
3551 IF G_STOPS_TAB_REC.count > 0
3552 THEN
3553
3554
3555 l_index := G_STOPS_TAB_REC.LAST;
3556 l_idx := 1;
3557 WHILE l_index IS NOT NULL
3558 LOOP
3559
3560 l_stop_info := FTE_MLS_WRAPPER.G_STOPS_TAB_REC(l_index);
3561
3562 IF l_debug_on THEN
3563 WSH_DEBUG_SV.logmsg(l_module_name, ' Index ' || l_index);
3564 WSH_DEBUG_SV.logmsg(l_module_name,' stop seq ' || l_stop_info.STOP_SEQUENCE_NUMBER);
3565 WSH_DEBUG_SV.logmsg(l_module_name,' stop id ' || l_stop_info.STOP_ID);
3566 END IF;
3567
3568 /** Changes based on the wsh stop seq changes
3569 l_stop_info.STOP_SEQUENCE_NUMBER :=
3570 FTE_MLS_WRAPPER.G_STOPS_SEQ_TAB(l_index).NEW_STOP_SEQUENCE_NUMBER;
3571 */
3572 l_stop_info.STOP_SEQUENCE_NUMBER :=
3573 FTE_MLS_WRAPPER.G_STOPS_SEQ_TAB(l_index).OLD_STOP_SEQUENCE_NUMBER;
3574
3575
3576 IF (l_stop_info.STOP_ID IS NULL)
3577 THEN
3578 l_action_code := 'CREATE';
3579 ELSE
3580 l_action_code := 'UPDATE';
3581 END IF;
3582
3583
3584 l_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
3585 l_msg_count := 0;
3586 l_msg_data := 0;
3587
3588 l_in_rec.caller:='FTEMLWRB';
3589 l_in_rec.phase:=null;
3590 l_in_rec.action_code:=l_action_code;
3591 l_rec_attr_tab(1):=l_stop_info;
3592
3593 Create_Update_Stop(p_api_version_number => p_api_version_number,
3594 p_init_msg_list => FND_API.G_FALSE,
3595 p_commit => p_commit,
3596 p_in_rec => l_in_rec,
3597 p_rec_attr_tab => l_rec_attr_tab,
3598 x_stop_out_tab => l_stop_out_tab,
3599 x_return_status => l_return_status,
3600 x_msg_count => l_msg_count,
3601 x_msg_data => l_msg_data
3602 );
3603
3604
3605 /**
3606 IF ( ( l_return_status = WSH_UTIL_CORE.G_RET_STS_SUCCESS
3607 OR l_return_status = WSH_UTIL_CORE.G_RET_STS_WARNING)
3608 AND l_stop_out_tab.count > 0)
3609 THEN
3610 x_stop_out_tab.EXTEND;
3611 x_stop_out_tab(l_idx) := l_stop_out_tab(l_stop_out_tab.FIRST).stop_id;
3612
3613 x_stop_seq_tab.EXTEND;
3614 -- send stop seq number back
3615 x_stop_seq_tab(l_idx) := l_stop_info.STOP_SEQUENCE_NUMBER;
3616 END IF;
3617 */
3618
3619 wsh_util_core.api_post_call(
3620 p_return_status =>l_return_status,
3621 x_num_warnings =>l_number_of_warnings,
3622 x_num_errors =>l_number_of_errors,
3623 p_msg_data =>l_msg_data);
3624
3625 l_idx := l_idx+1;
3626
3627 l_index := G_STOPS_TAB_REC.PRIOR(l_index);
3628
3629
3630 END LOOP;
3631 END IF;
3632
3633 IF l_number_of_errors > 0
3634 THEN
3635 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3636 ELSIF l_number_of_warnings > 0
3637 THEN
3638 x_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
3639 ELSE
3640 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
3641 END IF;
3642
3643
3644 FND_MSG_PUB.Count_And_Get
3645 (
3646 p_count => x_msg_count,
3647 p_data => x_msg_data,
3648 p_encoded => FND_API.G_FALSE
3649 );
3650
3651
3652 IF l_debug_on THEN
3653 WSH_DEBUG_SV.logmsg(l_module_name,'x_return_status:' || x_return_status);
3654 WSH_DEBUG_SV.logmsg(l_module_name,'x_msg_count:' || x_msg_count);
3655 END IF;
3656
3657 IF l_debug_on THEN
3658 WSH_DEBUG_SV.pop(l_module_name);
3659 END IF;
3660
3661
3662 EXCEPTION
3663 WHEN FND_API.G_EXC_ERROR THEN
3664 ROLLBACK TO PROCESS_STOPS_PUB;
3665 x_return_status := FND_API.G_RET_STS_ERROR;
3666 FND_MSG_PUB.Count_And_Get
3667 (
3668 p_count => x_msg_count,
3669 p_data => x_msg_data,
3670 p_encoded => FND_API.G_FALSE
3671 );
3672 IF l_debug_on THEN
3673 WSH_DEBUG_SV.logmsg(l_module_name,'x_return_status:' || x_return_status);
3674 WSH_DEBUG_SV.logmsg(l_module_name,'x_msg_count:' || x_msg_count);
3675 WSH_DEBUG_SV.pop(l_module_name);
3676 END IF;
3677
3678 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3679 ROLLBACK TO PROCESS_STOPS_PUB;
3680 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
3681 FND_MSG_PUB.Count_And_Get
3682 (
3683 p_count => x_msg_count,
3684 p_data => x_msg_data,
3685 p_encoded => FND_API.G_FALSE
3686 );
3687 IF l_debug_on THEN
3688 WSH_DEBUG_SV.pop(l_module_name);
3689 END IF;
3690 WHEN OTHERS THEN
3691 ROLLBACK TO PROCESS_STOPS_PUB;
3692 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
3693 x_msg_data := substr(sqlerrm,1,200);
3694 IF l_debug_on THEN
3695 wsh_debug_sv.log (l_module_name,'Error',substr(sqlerrm,1,200));
3696 WSH_DEBUG_SV.pop(l_module_name);
3697 END IF;
3698
3699 FND_MSG_PUB.Count_And_Get
3700 (
3701 p_count => x_msg_count,
3702 p_data => x_msg_data,
3703 p_encoded => FND_API.G_FALSE
3704 );
3705
3706 END PROCESS_STOPS;
3707
3708
3709 --========================================================================
3710 -- PROCEDURE : CREATE_UPDATE_STOP Wrapper API PUBLIC
3711 --
3712 -- PARAMETERS: p_api_version_number known api version error number
3713 -- p_init_msg_list FND_API.G_TRUE to reset list
3714 -- p_stop_id_tab table of stop id's
3715 -- p_action_prms Record of caller, phase, action_code and other
3716 -- parameters specific to the actions.
3717 -- x_action_out_rec Out rec based on actions.
3718 -- x_return_status return status
3719 -- x_msg_count number of messages in the list
3720 -- x_msg_data text of messages
3721 -- VERSION : current version 1.0
3722 -- initial version 1.0
3723 --========================================================================
3724
3725 PROCEDURE CREATE_UPDATE_STOP(
3726 p_api_version_number IN NUMBER,
3727 p_init_msg_list IN VARCHAR2,
3728 p_commit IN VARCHAR2,
3729 p_in_rec IN WSH_TRIP_STOPS_GRP.stopInRecType,
3730 p_rec_attr_tab IN WSH_TRIP_STOPS_PVT.Stop_Attr_Tbl_Type,
3731 x_stop_out_tab OUT NOCOPY WSH_TRIP_STOPS_GRP.stop_out_tab_type,
3732 x_return_status OUT NOCOPY VARCHAR2,
3733 x_msg_count OUT NOCOPY NUMBER,
3734 x_msg_data OUT NOCOPY VARCHAR2) IS
3735
3736 l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
3737 --
3738 l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME || '.' || 'CREATE_UPDATE_STOP';
3739
3740 l_stop_out_tab WSH_TRIP_STOPS_GRP.stop_out_tab_type;
3741 l_rec_attr_tab WSH_TRIP_STOPS_PVT.Stop_Attr_Tbl_Type;
3742
3743 l_number_of_warnings NUMBER;
3744 l_number_of_errors NUMBER;
3745 l_return_status VARCHAR2(32767);
3746 l_msg_count NUMBER;
3747 l_msg_data VARCHAR2(32767);
3748
3749 BEGIN
3750
3751 SAVEPOINT CREATE_UPDATE_STOP_PUB;
3752
3753 -- Initialize message list if p_init_msg_list is set to TRUE.
3754 --
3755 --
3756 IF FND_API.to_Boolean( p_init_msg_list )
3757 THEN
3758 FND_MSG_PUB.initialize;
3759 END IF;
3760 --
3761 --
3762 -- Initialize API return status to success
3763 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
3764 x_msg_count := 0;
3765 x_msg_data := 0;
3766 l_number_of_warnings := 0;
3767 l_number_of_errors := 0;
3768
3769 IF l_debug_on THEN
3770 wsh_debug_sv.push(l_module_name);
3771 END IF;
3772
3773
3774 IF l_debug_on THEN
3775 WSH_DEBUG_SV.logmsg(l_module_name,
3776 ' Stop Planned Departure Date ' || p_rec_attr_tab(1).planned_departure_date,
3777 WSH_DEBUG_SV.C_PROC_LEVEL);
3778 WSH_DEBUG_SV.logmsg(l_module_name,
3779 ' Stop Planned Arrival Date ' || p_rec_attr_tab(1).planned_arrival_date,
3780 WSH_DEBUG_SV.C_PROC_LEVEL);
3781 END IF;
3782
3783 WSH_INTERFACE_GRP.Create_Update_Stop(p_api_version_number=>p_api_version_number,
3784 p_init_msg_list=>FND_API.G_FALSE,
3785 p_commit=>p_commit,
3786 p_in_rec=>p_in_rec,
3787 p_rec_attr_tab=>p_rec_attr_tab,
3788 x_stop_out_tab=> x_stop_out_tab,
3789 x_return_status=>l_return_status,
3790 x_msg_count=>l_msg_count,
3791 x_msg_data=>l_msg_data
3792 );
3793 wsh_util_core.api_post_call(
3794 p_return_status =>l_return_status,
3795 x_num_warnings =>l_number_of_warnings,
3796 x_num_errors =>l_number_of_errors,
3797 p_msg_data =>l_msg_data);
3798
3799
3800 IF l_number_of_errors > 0
3801 THEN
3802 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3803 ELSIF l_number_of_warnings > 0
3804 THEN
3805 x_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
3806 ELSE
3807 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
3808 END IF;
3809
3810 FND_MSG_PUB.Count_And_Get
3811 (
3812 p_count => x_msg_count,
3813 p_data => x_msg_data,
3814 p_encoded => FND_API.G_FALSE
3815 );
3816
3817 IF l_debug_on THEN
3818 WSH_DEBUG_SV.logmsg(l_module_name,'x_return_status:' || x_return_status);
3819 WSH_DEBUG_SV.logmsg(l_module_name,'x_msg_count:' || x_msg_count);
3820 END IF;
3821
3822 IF l_debug_on THEN
3823 WSH_DEBUG_SV.pop(l_module_name);
3824 END IF;
3825
3826
3827 EXCEPTION
3828 WHEN FND_API.G_EXC_ERROR THEN
3829 ROLLBACK TO CREATE_UPDATE_STOP_PUB;
3830 x_return_status := FND_API.G_RET_STS_ERROR;
3831 FND_MSG_PUB.Count_And_Get
3832 (
3833 p_count => x_msg_count,
3834 p_data => x_msg_data,
3835 p_encoded => FND_API.G_FALSE
3836 );
3837 IF l_debug_on THEN
3838 WSH_DEBUG_SV.pop(l_module_name);
3839 END IF;
3840
3841 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3842 ROLLBACK TO CREATE_UPDATE_STOP_PUB;
3843 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
3844 FND_MSG_PUB.Count_And_Get
3845 (
3846 p_count => x_msg_count,
3847 p_data => x_msg_data,
3848 p_encoded => FND_API.G_FALSE
3849 );
3850 IF l_debug_on THEN
3851 WSH_DEBUG_SV.pop(l_module_name);
3852 END IF;
3853 WHEN OTHERS THEN
3854 ROLLBACK TO CREATE_UPDATE_STOP_PUB;
3855 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
3856 FND_MSG_PUB.Count_And_Get
3857 (
3858 p_count => x_msg_count,
3859 p_data => x_msg_data,
3860 p_encoded => FND_API.G_FALSE
3861 );
3862 IF l_debug_on THEN
3863 wsh_debug_sv.log (l_module_name,'Error',substr(sqlerrm,1,200));
3864 WSH_DEBUG_SV.pop(l_module_name);
3865 END IF;
3866
3867 END CREATE_UPDATE_STOP;
3868
3869
3870 PROCEDURE REPRICE_TRIP (
3871 p_api_version IN NUMBER DEFAULT 1.0,
3872 p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_FALSE,
3873 p_trip_id IN NUMBER,
3874 x_return_status OUT NOCOPY VARCHAR2,
3875 x_msg_count OUT NOCOPY NUMBER,
3876 x_msg_data OUT NOCOPY VARCHAR2
3877 ) AS
3878
3879 l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
3880 --
3881 l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME || '.' || 'REPRICE_TRIP';
3882
3883 l_action_params FTE_TRIP_RATING_GRP.action_param_rec;
3884 l_trip_id_list WSH_UTIL_CORE.id_tab_type;
3885
3886 l_number_of_warnings NUMBER;
3887 l_number_of_errors NUMBER;
3888 l_return_status VARCHAR2(32767);
3889 l_msg_count NUMBER;
3890 l_msg_data VARCHAR2(32767);
3891
3892 BEGIN
3893
3894 SAVEPOINT REPRICE_TRIP_PUB;
3895
3896 -- Initialize message list if p_init_msg_list is set to TRUE.
3897 --
3898 --
3899 IF FND_API.to_Boolean( p_init_msg_list )
3900 THEN
3901 FND_MSG_PUB.initialize;
3902 END IF;
3903 --
3904 --
3905 -- Initialize API return status to success
3906 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
3907 x_msg_count := 0;
3908 x_msg_data := 0;
3909 l_number_of_warnings := 0;
3910 l_number_of_errors := 0;
3911
3912 IF l_debug_on THEN
3913 wsh_debug_sv.push(l_module_name);
3914 WSH_DEBUG_SV.logmsg(l_module_name,' trip id ' || p_trip_id);
3915 END IF;
3916
3917 l_trip_id_list(1) := p_trip_id;
3918 l_action_params.caller := 'FTE';
3919 l_action_params.event := 'RE-RATING';
3920 l_action_params.action := 'RATE';
3921 l_action_params.trip_id_list := l_trip_id_list;
3922
3923
3924 FTE_TRIP_RATING_GRP.Rate_Trip (
3925 p_api_version => 1.0,
3926 p_init_msg_list => FND_API.G_FALSE,
3927 p_action_params => l_action_params,
3928 p_commit => FND_API.G_FALSE,
3929 x_return_status => l_return_status,
3930 x_msg_count => l_msg_count,
3931 x_msg_data => l_msg_data);
3932
3933 wsh_util_core.api_post_call(
3934 p_return_status =>l_return_status,
3935 x_num_warnings =>l_number_of_warnings,
3936 x_num_errors =>l_number_of_errors,
3937 p_msg_data =>l_msg_data);
3938
3939
3940 IF l_number_of_errors > 0
3941 THEN
3942 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3943 ELSIF l_number_of_warnings > 0
3944 THEN
3945 x_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
3946 ELSE
3947 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
3948 END IF;
3949
3950 FND_MSG_PUB.Count_And_Get
3951 (
3952 p_count => x_msg_count,
3953 p_data => x_msg_data,
3954 p_encoded => FND_API.G_FALSE
3955 );
3956
3957 IF l_debug_on THEN
3958 WSH_DEBUG_SV.logmsg(l_module_name,'x_return_status:' || x_return_status);
3959 WSH_DEBUG_SV.logmsg(l_module_name,'x_msg_count:' || x_msg_count);
3960 END IF;
3961
3962 IF l_debug_on THEN
3963 WSH_DEBUG_SV.pop(l_module_name);
3964 END IF;
3965
3966
3967 EXCEPTION
3968 WHEN FND_API.G_EXC_ERROR THEN
3969 ROLLBACK TO REPRICE_TRIP_PUB;
3970 x_return_status := FND_API.G_RET_STS_ERROR;
3971 FND_MSG_PUB.Count_And_Get
3972 (
3973 p_count => x_msg_count,
3974 p_data => x_msg_data,
3975 p_encoded => FND_API.G_FALSE
3976 );
3977 IF l_debug_on THEN
3978 WSH_DEBUG_SV.pop(l_module_name);
3979 END IF;
3980
3981 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3982 ROLLBACK TO REPRICE_TRIP_PUB;
3983 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
3984 FND_MSG_PUB.Count_And_Get
3985 (
3986 p_count => x_msg_count,
3987 p_data => x_msg_data,
3988 p_encoded => FND_API.G_FALSE
3989 );
3990 IF l_debug_on THEN
3991 WSH_DEBUG_SV.pop(l_module_name);
3992 END IF;
3993 WHEN OTHERS THEN
3994 ROLLBACK TO REPRICE_TRIP_PUB;
3995 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
3996 FND_MSG_PUB.Count_And_Get
3997 (
3998 p_count => x_msg_count,
3999 p_data => x_msg_data,
4000 p_encoded => FND_API.G_FALSE
4001 );
4002 IF l_debug_on THEN
4003 wsh_debug_sv.log (l_module_name,'Error',substr(sqlerrm,1,200));
4004 WSH_DEBUG_SV.pop(l_module_name);
4005 END IF;
4006
4007 END REPRICE_TRIP;
4008 --
4009 --
4010 --========================================================================
4011 -- PROCEDURE : Delivery_Detail_Action FTE wrapper
4012 -- p_action_code: UNASSIGN, IGNORE_PLAN, INCLUDE_PLAN, AUTOCREATE-DLVY
4013 --========================================================================
4014
4015 PROCEDURE Delivery_Detail_Action
4016 ( p_api_version_number IN NUMBER,
4017 p_init_msg_list IN VARCHAR2,
4018 p_mls_id_tab IN FTE_ID_TAB_TYPE,
4019 p_action_params IN FTE_DDL_ACTION_PARAM_REC,
4020 x_return_status OUT NOCOPY VARCHAR2,
4021 x_msg_count OUT NOCOPY NUMBER,
4022 x_msg_data OUT NOCOPY VARCHAR2,
4023 x_action_out_rec OUT NOCOPY FTE_ACTION_OUT_REC
4024 ) IS
4025
4026 l_detail_id_tab WSH_UTIL_CORE.id_tab_type;
4027 l_detail_out_rec wsh_glbl_var_strct_grp.dd_action_out_rec_type;
4028 l_action_prms wsh_glbl_var_strct_grp.dd_action_parameters_rec_type;
4029 l_group_id_tab WSH_UTIL_CORE.id_tab_type;
4030
4031 -- Set action_out_rec
4032 l_result_id_tab FTE_ID_TAB_TYPE;
4033 l_valid_id_tab FTE_ID_TAB_TYPE;
4034 l_delivery_id_tab FTE_ID_TAB_TYPE;
4035 l_selection_issue_flag VARCHAR(1);
4036 l_split_quantity NUMBER;
4037 l_split_quantity2 NUMBER;
4038 l_caller VARCHAR(100);
4039
4040 --
4041 l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
4042 --
4043 l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME || '.' || 'DELIVERY_DETAIL_ACTION';
4044
4045
4046 BEGIN
4047
4048 SAVEPOINT DETAIL_ACTION_PUB;
4049
4050 -- Initialize message list if p_init_msg_list is set to TRUE.
4051 --
4052 --
4053 IF FND_API.to_Boolean( p_init_msg_list )
4054 THEN
4055 FND_MSG_PUB.initialize;
4056 END IF;
4057 --
4058 --
4059 -- Initialize API return status to success
4060 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
4061 x_msg_count := 0;
4062 x_msg_data := 0;
4063
4064 IF l_debug_on THEN
4065 wsh_debug_sv.push(l_module_name);
4066 END IF;
4067
4068 -- set action_prms
4069
4070 IF p_action_params.caller IS NULL
4071 THEN
4072 l_caller := G_PKG_NAME;
4073 ELSE
4074 l_caller := p_action_params.caller;
4075 END IF;
4076
4077 IF l_debug_on THEN
4078 WSH_DEBUG_SV.logmsg(l_module_name,'CALLER:' || l_caller);
4079 END IF;
4080
4081 l_action_prms.caller := l_caller;
4082 l_action_prms.action_code := p_action_params.action_code;
4083 l_action_prms.phase := p_action_params.phase;
4084 l_action_prms.delivery_id := p_action_params.delivery_id;
4085 l_action_prms.delivery_name := p_action_params.delivery_name;
4086 l_action_prms.wv_override_flag := p_action_params.wv_override_flag;
4087 l_action_prms.quantity_to_split := p_action_params.quantity_to_split;
4088 l_action_prms.quantity2_to_split := p_action_params.quantity2_to_split;
4089 l_action_prms.container_name := p_action_params.container_name;
4090 l_action_prms.container_instance_id := p_action_params.container_instance_id;
4091 l_action_prms.container_flag := p_action_params.container_flag;
4092 l_action_prms.delivery_flag := p_action_params.delivery_flag;
4093 l_action_prms.group_id_tab := l_group_id_tab;
4094 l_action_prms.split_quantity := p_action_params.split_quantity;
4095 l_action_prms.split_quantity2 := p_action_params.split_quantity2;
4096
4097 -- Set l_detail_id_tab
4098 FOR i IN p_mls_id_tab.FIRST..p_mls_id_tab.LAST LOOP
4099 l_detail_id_tab(i) := p_mls_id_tab(i);
4100 END LOOP;
4101
4102 WSH_INTERFACE_GRP.Delivery_Detail_Action
4103 (
4104 p_api_version_number =>p_api_version_number,
4105 p_init_msg_list =>FND_API.G_TRUE,
4106 p_commit =>FND_API.G_FALSE,
4107 x_return_status =>x_return_status,
4108 x_msg_count =>x_msg_count,
4109 x_msg_data =>x_msg_data,
4110 p_detail_id_tab =>l_detail_id_tab, -- wsh_util_core.id_tab_type
4111 p_action_prms =>l_action_prms, -- wsh_glbl_var_strct_grp.dd_action_parameters_rec_type
4112 x_action_out_rec =>l_detail_out_rec -- wsh_glbl_var_strct_grp.dd_action_out_rec_type
4113 );
4114
4115 l_result_id_tab := FTE_ID_TAB_TYPE();
4116 l_valid_id_tab := FTE_ID_TAB_TYPE();
4117 l_delivery_id_tab := FTE_ID_TAB_TYPE();
4118 x_action_out_rec := FTE_ACTION_OUT_REC(
4119 l_result_id_tab,l_valid_id_tab,l_delivery_id_tab,null,null,null,null,null);
4120
4121 -- set valid ids tab
4122 IF (l_detail_out_rec.valid_id_tab.count>0) THEN
4123 FOR i IN l_detail_out_rec.valid_id_tab.FIRST..l_detail_out_rec.valid_id_tab.LAST LOOP
4124 l_valid_id_tab.EXTEND;
4125 l_valid_id_tab(i) := l_detail_out_rec.valid_id_tab(i);
4126 END LOOP;
4127 END IF;
4128
4129 -- set result ids tab
4130 IF (l_detail_out_rec.result_id_tab.count>0) THEN
4131 FOR i IN l_detail_out_rec.result_id_tab.FIRST..l_detail_out_rec.result_id_tab.LAST LOOP
4132 l_result_id_tab.EXTEND;
4133 l_result_id_tab(i) := l_detail_out_rec.result_id_tab(i);
4134 END LOOP;
4135 END IF;
4136
4137 -- set delivery ids tab
4138 IF (l_detail_out_rec.delivery_id_tab.count>0) THEN
4139 FOR i IN l_detail_out_rec.delivery_id_tab.FIRST..l_detail_out_rec.delivery_id_tab.LAST LOOP
4140 l_delivery_id_tab.EXTEND;
4141 l_delivery_id_tab(i) := l_detail_out_rec.delivery_id_tab(i);
4142 END LOOP;
4143 END IF;
4144
4145 -- set selection issue flag
4146 l_selection_issue_flag := l_detail_out_rec.selection_issue_flag;
4147
4148 -- set split quantity
4149 l_split_quantity := l_detail_out_rec.split_quantity;
4150
4151 -- set split quantity2
4152 l_split_quantity := l_detail_out_rec.split_quantity2;
4153
4154
4155 IF l_debug_on THEN
4156 WSH_DEBUG_SV.logmsg(l_module_name,'Return Count ' || x_action_out_rec.result_id_tab.count);
4157 WSH_DEBUG_SV.logmsg(l_module_name,'x_return_status:' || x_return_status);
4158 WSH_DEBUG_SV.logmsg(l_module_name,'x_msg_count:' || x_msg_count);
4159 END IF;
4160
4161
4162 FND_MSG_PUB.Count_And_Get
4163 (
4164 p_count => x_msg_count,
4165 p_data => x_msg_data,
4166 p_encoded => FND_API.G_FALSE
4167 );
4168
4169
4170 IF l_debug_on THEN
4171 WSH_DEBUG_SV.pop(l_module_name);
4172 END IF;
4173
4174 EXCEPTION
4175 WHEN FND_API.G_EXC_ERROR THEN
4176 ROLLBACK TO DETAIL_ACTION_PUB;
4177 x_return_status := FND_API.G_RET_STS_ERROR;
4178 FND_MSG_PUB.Count_And_Get
4179 (
4180 p_count => x_msg_count,
4181 p_data => x_msg_data,
4182 p_encoded => FND_API.G_FALSE
4183 );
4184
4185 IF l_debug_on THEN
4186 WSH_DEBUG_SV.pop(l_module_name);
4187 END IF;
4188 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4189 ROLLBACK TO DETAIL_ACTION_PUB;
4190 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
4191 FND_MSG_PUB.Count_And_Get
4192 (
4193 p_count => x_msg_count,
4194 p_data => x_msg_data,
4195 p_encoded => FND_API.G_FALSE
4196 );
4197 IF l_debug_on THEN
4198 WSH_DEBUG_SV.pop(l_module_name);
4199 END IF;
4200 WHEN OTHERS THEN
4201 ROLLBACK TO DETAIL_ACTION_PUB;
4202 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
4203 FND_MSG_PUB.Count_And_Get
4204 (
4205 p_count => x_msg_count,
4206 p_data => x_msg_data,
4207 p_encoded => FND_API.G_FALSE
4208 );
4209 IF l_debug_on THEN
4210 WSH_DEBUG_SV.pop(l_module_name);
4211 END IF;
4212
4213
4214
4215 --
4216 END Delivery_Detail_Action;
4217 --
4218 --========================================================================
4219 -- PROCEDURE : Create_Update_Delivery_Detail FTE wrapper
4220 -- p_action_code: UPDATE
4221 --========================================================================
4222
4223 PROCEDURE Create_Update_Delivery_Detail
4224 (
4225 p_api_version_number IN NUMBER,
4226 p_init_msg_list IN VARCHAR2,
4227 p_commit IN VARCHAR2,
4228 p_detail_info_tab IN FTE_DDL_ATTR_TAB_TYPE,
4229 p_action_code IN VARCHAR2,
4230 x_return_status OUT NOCOPY VARCHAR2,
4231 x_msg_count OUT NOCOPY NUMBER,
4232 x_msg_data OUT NOCOPY VARCHAR2,
4233 x_detail_id_tab OUT NOCOPY FTE_ID_TAB_TYPE
4234 ) IS
4235
4236 l_detail_attr_tab_type wsh_glbl_var_strct_grp.delivery_details_Attr_tbl_Type;
4237 l_detail_attr_rec wsh_glbl_var_strct_grp.delivery_details_rec_type;
4238 l_detail_in_rec wsh_glbl_var_strct_grp.detailInRecType;
4239 l_detail_out_rec wsh_glbl_var_strct_grp.detailOutRecType;
4240 l_fte_detail_attr_rec FTE_DDL_ATTR_REC;
4241
4242 l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
4243 --
4244 l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME || '.' || 'CREATE_UPDATE_DDL';
4245
4246
4247 BEGIN
4248
4249 SAVEPOINT DDL_CREATE_UPDATE_PUB;
4250
4251 -- Initialize message list if p_init_msg_list is set to TRUE.
4252 --
4253 --
4254 IF FND_API.to_Boolean( p_init_msg_list )
4255 THEN
4256 FND_MSG_PUB.initialize;
4257 END IF;
4258 --
4259 --
4260 -- Initialize API return status to success
4261 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
4262 x_msg_count := 0;
4263 x_msg_data := 0;
4264
4265 IF l_debug_on THEN
4266 wsh_debug_sv.push(l_module_name);
4267 END IF;
4268
4269 -- Extract detailsAttrRec from table - table should only have one row
4270 -- 188 Attributes mapped
4271 IF (p_detail_info_tab.count>0) THEN
4272 FOR i IN p_detail_info_tab.FIRST..p_detail_info_tab.LAST LOOP
4273 l_fte_detail_attr_rec := p_detail_info_tab(i);
4274
4275 l_detail_attr_rec.delivery_detail_id := l_fte_detail_attr_rec.delivery_detail_id;
4276 l_detail_attr_rec.source_code := l_fte_detail_attr_rec.source_code;
4277 l_detail_attr_rec.source_header_id := l_fte_detail_attr_rec.source_header_id;
4278 l_detail_attr_rec.source_line_id := l_fte_detail_attr_rec.source_line_id;
4279 l_detail_attr_rec.customer_id := l_fte_detail_attr_rec.customer_id;
4280 l_detail_attr_rec.sold_to_contact_id := l_fte_detail_attr_rec.sold_to_contact_id;
4281 l_detail_attr_rec.inventory_item_id := l_fte_detail_attr_rec.inventory_item_id;
4282 l_detail_attr_rec.item_description := l_fte_detail_attr_rec.item_description;
4283 l_detail_attr_rec.hazard_class_id := l_fte_detail_attr_rec.hazard_class_id;
4284 l_detail_attr_rec.country_of_origin := l_fte_detail_attr_rec.country_of_origin;
4285 l_detail_attr_rec.classification := l_fte_detail_attr_rec.classification;
4286 l_detail_attr_rec.ship_from_location_id := l_fte_detail_attr_rec.ship_from_location_id;
4287 l_detail_attr_rec.ship_to_location_id := l_fte_detail_attr_rec.ship_to_location_id;
4288 l_detail_attr_rec.ship_to_contact_id := l_fte_detail_attr_rec.ship_to_contact_id;
4289 l_detail_attr_rec.ship_to_site_use_id := l_fte_detail_attr_rec.ship_to_site_use_id;
4290 l_detail_attr_rec.deliver_to_location_id := l_fte_detail_attr_rec.deliver_to_location_id;
4291 l_detail_attr_rec.deliver_to_contact_id := l_fte_detail_attr_rec.deliver_to_contact_id;
4292 l_detail_attr_rec.deliver_to_site_use_id := l_fte_detail_attr_rec.deliver_to_site_use_id;
4293 l_detail_attr_rec.intmed_ship_to_location_id := l_fte_detail_attr_rec.intmed_ship_to_location_id;
4294 l_detail_attr_rec.intmed_ship_to_contact_id := l_fte_detail_attr_rec.intmed_ship_to_contact_id;
4295 l_detail_attr_rec.hold_code := l_fte_detail_attr_rec.hold_code;
4296 l_detail_attr_rec.ship_tolerance_above := l_fte_detail_attr_rec.ship_tolerance_above;
4297 l_detail_attr_rec.ship_tolerance_below := l_fte_detail_attr_rec.ship_tolerance_below;
4298 l_detail_attr_rec.requested_quantity := l_fte_detail_attr_rec.requested_quantity;
4299 l_detail_attr_rec.shipped_quantity := l_fte_detail_attr_rec.shipped_quantity;
4300 l_detail_attr_rec.delivered_quantity := l_fte_detail_attr_rec.delivered_quantity;
4301 l_detail_attr_rec.requested_quantity_uom := l_fte_detail_attr_rec.requested_quantity_uom;
4302 l_detail_attr_rec.subinventory := l_fte_detail_attr_rec.subinventory;
4303 l_detail_attr_rec.revision := l_fte_detail_attr_rec.revision;
4304 l_detail_attr_rec.lot_number := l_fte_detail_attr_rec.lot_number;
4305 l_detail_attr_rec.customer_requested_lot_flag := l_fte_detail_attr_rec.customer_requested_lot_flag;
4306 l_detail_attr_rec.serial_number := l_fte_detail_attr_rec.serial_number;
4307 l_detail_attr_rec.locator_id := l_fte_detail_attr_rec.locator_id;
4308 l_detail_attr_rec.date_requested := l_fte_detail_attr_rec.date_requested;
4309 l_detail_attr_rec.date_scheduled := l_fte_detail_attr_rec.date_scheduled;
4310 l_detail_attr_rec.master_container_item_id := l_fte_detail_attr_rec.master_container_item_id;
4311 l_detail_attr_rec.detail_container_item_id := l_fte_detail_attr_rec.detail_container_item_id;
4312 l_detail_attr_rec.load_seq_number := l_fte_detail_attr_rec.load_seq_number;
4313 l_detail_attr_rec.ship_method_code := l_fte_detail_attr_rec.ship_method_code;
4314 l_detail_attr_rec.carrier_id := l_fte_detail_attr_rec.carrier_id;
4315 l_detail_attr_rec.freight_terms_code := l_fte_detail_attr_rec.freight_terms_code;
4316 l_detail_attr_rec.shipment_priority_code := l_fte_detail_attr_rec.shipment_priority_code;
4317 l_detail_attr_rec.fob_code := l_fte_detail_attr_rec.fob_code;
4318 l_detail_attr_rec.customer_item_id := l_fte_detail_attr_rec.customer_item_id;
4319 l_detail_attr_rec.dep_plan_required_flag := l_fte_detail_attr_rec.dep_plan_required_flag;
4320 l_detail_attr_rec.customer_prod_seq := l_fte_detail_attr_rec.customer_prod_seq;
4321 l_detail_attr_rec.customer_dock_code := l_fte_detail_attr_rec.customer_dock_code;
4322 l_detail_attr_rec.cust_model_serial_number := l_fte_detail_attr_rec.cust_model_serial_number;
4323 l_detail_attr_rec.customer_job := l_fte_detail_attr_rec.customer_job;
4324 l_detail_attr_rec.customer_production_line := l_fte_detail_attr_rec.customer_production_line;
4325 l_detail_attr_rec.net_weight := l_fte_detail_attr_rec.net_weight;
4326 l_detail_attr_rec.weight_uom_code := l_fte_detail_attr_rec.weight_uom_code;
4327 l_detail_attr_rec.volume := l_fte_detail_attr_rec.volume;
4328 l_detail_attr_rec.volume_uom_code := l_fte_detail_attr_rec.volume_uom_code;
4329 l_detail_attr_rec.tp_attribute_category := l_fte_detail_attr_rec.tp_attribute_category;
4330 l_detail_attr_rec.tp_attribute1 := l_fte_detail_attr_rec.tp_attribute1;
4331 l_detail_attr_rec.tp_attribute2 := l_fte_detail_attr_rec.tp_attribute2;
4332 l_detail_attr_rec.tp_attribute3 := l_fte_detail_attr_rec.tp_attribute3;
4333 l_detail_attr_rec.tp_attribute4 := l_fte_detail_attr_rec.tp_attribute4;
4334 l_detail_attr_rec.tp_attribute5 := l_fte_detail_attr_rec.tp_attribute5;
4335 l_detail_attr_rec.tp_attribute6 := l_fte_detail_attr_rec.tp_attribute6;
4336 l_detail_attr_rec.tp_attribute7 := l_fte_detail_attr_rec.tp_attribute7;
4337 l_detail_attr_rec.tp_attribute8 := l_fte_detail_attr_rec.tp_attribute8;
4338 l_detail_attr_rec.tp_attribute9 := l_fte_detail_attr_rec.tp_attribute9;
4339 l_detail_attr_rec.tp_attribute10 := l_fte_detail_attr_rec.tp_attribute10;
4340 l_detail_attr_rec.tp_attribute11 := l_fte_detail_attr_rec.tp_attribute11;
4341 l_detail_attr_rec.tp_attribute12 := l_fte_detail_attr_rec.tp_attribute12;
4342 l_detail_attr_rec.tp_attribute13 := l_fte_detail_attr_rec.tp_attribute13;
4343 l_detail_attr_rec.tp_attribute14 := l_fte_detail_attr_rec.tp_attribute14;
4344 l_detail_attr_rec.tp_attribute15 := l_fte_detail_attr_rec.tp_attribute15;
4345 l_detail_attr_rec.attribute_category := l_fte_detail_attr_rec.attribute_category;
4346 l_detail_attr_rec.attribute1 := l_fte_detail_attr_rec.attribute1;
4347 l_detail_attr_rec.attribute2 := l_fte_detail_attr_rec.attribute2;
4348 l_detail_attr_rec.attribute3 := l_fte_detail_attr_rec.attribute3;
4349 l_detail_attr_rec.attribute4 := l_fte_detail_attr_rec.attribute4;
4350 l_detail_attr_rec.attribute5 := l_fte_detail_attr_rec.attribute5;
4351 l_detail_attr_rec.attribute6 := l_fte_detail_attr_rec.attribute6;
4352 l_detail_attr_rec.attribute7 := l_fte_detail_attr_rec.attribute7;
4353 l_detail_attr_rec.attribute8 := l_fte_detail_attr_rec.attribute8;
4354 l_detail_attr_rec.attribute9 := l_fte_detail_attr_rec.attribute9;
4355 l_detail_attr_rec.attribute10 := l_fte_detail_attr_rec.attribute10;
4356 l_detail_attr_rec.attribute11 := l_fte_detail_attr_rec.attribute11;
4357 l_detail_attr_rec.attribute12 := l_fte_detail_attr_rec.attribute12;
4358 l_detail_attr_rec.attribute13 := l_fte_detail_attr_rec.attribute13;
4359 l_detail_attr_rec.attribute14 := l_fte_detail_attr_rec.attribute14;
4360 l_detail_attr_rec.attribute15 := l_fte_detail_attr_rec.attribute15;
4361 l_detail_attr_rec.created_by := l_fte_detail_attr_rec.created_by;
4362 l_detail_attr_rec.creation_date := l_fte_detail_attr_rec.creation_date;
4363 l_detail_attr_rec.last_update_date := l_fte_detail_attr_rec.last_update_date;
4364 l_detail_attr_rec.last_update_login := l_fte_detail_attr_rec.last_update_login;
4365 l_detail_attr_rec.last_updated_by := l_fte_detail_attr_rec.last_updated_by;
4366 l_detail_attr_rec.program_application_id := l_fte_detail_attr_rec.program_application_id;
4367 l_detail_attr_rec.program_id := l_fte_detail_attr_rec.program_id;
4368 l_detail_attr_rec.program_update_date := l_fte_detail_attr_rec.program_update_date;
4369 l_detail_attr_rec.request_id := l_fte_detail_attr_rec.request_id;
4370 l_detail_attr_rec.mvt_stat_status := l_fte_detail_attr_rec.mvt_stat_status;
4371 l_detail_attr_rec.released_flag := l_fte_detail_attr_rec.released_flag;
4372 l_detail_attr_rec.organization_id := l_fte_detail_attr_rec.organization_id;
4373 l_detail_attr_rec.transaction_temp_id := l_fte_detail_attr_rec.transaction_temp_id;
4374 l_detail_attr_rec.ship_set_id := l_fte_detail_attr_rec.ship_set_id;
4375 l_detail_attr_rec.arrival_set_id := l_fte_detail_attr_rec.arrival_set_id;
4376 l_detail_attr_rec.ship_model_complete_flag := l_fte_detail_attr_rec.ship_model_complete_flag;
4377 l_detail_attr_rec.top_model_line_id := l_fte_detail_attr_rec.top_model_line_id;
4378 l_detail_attr_rec.source_header_number := l_fte_detail_attr_rec.source_header_number;
4379 l_detail_attr_rec.source_header_type_id := l_fte_detail_attr_rec.source_header_type_id;
4380 l_detail_attr_rec.source_header_type_name := l_fte_detail_attr_rec.source_header_type_name;
4381 l_detail_attr_rec.cust_po_number := l_fte_detail_attr_rec.cust_po_number;
4382 l_detail_attr_rec.ato_line_id := l_fte_detail_attr_rec.ato_line_id;
4383 l_detail_attr_rec.src_requested_quantity := l_fte_detail_attr_rec.src_requested_quantity;
4384 l_detail_attr_rec.src_requested_quantity_uom := l_fte_detail_attr_rec.src_requested_quantity_uom;
4385 l_detail_attr_rec.move_order_line_id := l_fte_detail_attr_rec.move_order_line_id;
4386 l_detail_attr_rec.cancelled_quantity := l_fte_detail_attr_rec.cancelled_quantity;
4387 l_detail_attr_rec.quality_control_quantity := l_fte_detail_attr_rec.quality_control_quantity;
4388 l_detail_attr_rec.cycle_count_quantity := l_fte_detail_attr_rec.cycle_count_quantity;
4389 l_detail_attr_rec.tracking_number := l_fte_detail_attr_rec.tracking_number;
4390 l_detail_attr_rec.movement_id := l_fte_detail_attr_rec.movement_id;
4391 l_detail_attr_rec.shipping_instructions := l_fte_detail_attr_rec.shipping_instructions;
4392 l_detail_attr_rec.packing_instructions := l_fte_detail_attr_rec.packing_instructions;
4393 l_detail_attr_rec.project_id := l_fte_detail_attr_rec.project_id;
4394 l_detail_attr_rec.task_id := l_fte_detail_attr_rec.task_id;
4395 l_detail_attr_rec.org_id := l_fte_detail_attr_rec.org_id;
4396 l_detail_attr_rec.oe_interfaced_flag := l_fte_detail_attr_rec.oe_interfaced_flag;
4397 l_detail_attr_rec.split_from_detail_id := l_fte_detail_attr_rec.split_from_detail_id;
4398 l_detail_attr_rec.inv_interfaced_flag := l_fte_detail_attr_rec.inv_interfaced_flag;
4399 l_detail_attr_rec.source_line_number := l_fte_detail_attr_rec.source_line_number;
4400 l_detail_attr_rec.inspection_flag := l_fte_detail_attr_rec.inspection_flag;
4401 l_detail_attr_rec.released_status := l_fte_detail_attr_rec.released_status;
4402 l_detail_attr_rec.container_flag := l_fte_detail_attr_rec.container_flag;
4403 l_detail_attr_rec.container_type_code := l_fte_detail_attr_rec.container_type_code;
4404 l_detail_attr_rec.container_name := l_fte_detail_attr_rec.container_name;
4405 l_detail_attr_rec.fill_percent := l_fte_detail_attr_rec.fill_percent;
4406 l_detail_attr_rec.gross_weight := l_fte_detail_attr_rec.gross_weight;
4407 l_detail_attr_rec.master_serial_number := l_fte_detail_attr_rec.master_serial_number;
4408 l_detail_attr_rec.maximum_load_weight := l_fte_detail_attr_rec.maximum_load_weight;
4409 l_detail_attr_rec.maximum_volume := l_fte_detail_attr_rec.maximum_volume;
4410 l_detail_attr_rec.minimum_fill_percent := l_fte_detail_attr_rec.minimum_fill_percent;
4411 l_detail_attr_rec.seal_code := l_fte_detail_attr_rec.seal_code;
4412 l_detail_attr_rec.unit_number := l_fte_detail_attr_rec.unit_number;
4413 l_detail_attr_rec.unit_price := l_fte_detail_attr_rec.unit_price;
4414 l_detail_attr_rec.currency_code := l_fte_detail_attr_rec.currency_code;
4415 l_detail_attr_rec.freight_class_cat_id := l_fte_detail_attr_rec.freight_class_cat_id;
4416 l_detail_attr_rec.commodity_code_cat_id := l_fte_detail_attr_rec.commodity_code_cat_id;
4417 l_detail_attr_rec.preferred_grade := l_fte_detail_attr_rec.preferred_grade;
4418 l_detail_attr_rec.src_requested_quantity2 := l_fte_detail_attr_rec.src_requested_quantity2;
4419 l_detail_attr_rec.src_requested_quantity_uom2 := l_fte_detail_attr_rec.src_requested_quantity_uom2;
4420 l_detail_attr_rec.requested_quantity2 := l_fte_detail_attr_rec.requested_quantity2;
4421 l_detail_attr_rec.shipped_quantity2 := l_fte_detail_attr_rec.shipped_quantity2;
4422 l_detail_attr_rec.delivered_quantity2 := l_fte_detail_attr_rec.delivered_quantity2;
4423 l_detail_attr_rec.cancelled_quantity2 := l_fte_detail_attr_rec.cancelled_quantity2;
4424 l_detail_attr_rec.quality_control_quantity2 := l_fte_detail_attr_rec.quality_control_quantity2;
4425 l_detail_attr_rec.cycle_count_quantity2 := l_fte_detail_attr_rec.cycle_count_quantity2;
4426 l_detail_attr_rec.requested_quantity_uom2 := l_fte_detail_attr_rec.requested_quantity_uom2;
4427 --l_detail_attr_rec.sublot_number := l_fte_detail_attr_rec.sublot_number;
4428 l_detail_attr_rec.lpn_id := l_fte_detail_attr_rec.lpn_id;
4429 l_detail_attr_rec.pickable_flag := l_fte_detail_attr_rec.pickable_flag;
4430 l_detail_attr_rec.original_subinventory := l_fte_detail_attr_rec.original_subinventory;
4431 l_detail_attr_rec.to_serial_number := l_fte_detail_attr_rec.to_serial_number;
4432 l_detail_attr_rec.picked_quantity := l_fte_detail_attr_rec.picked_quantity;
4433 l_detail_attr_rec.picked_quantity2 := l_fte_detail_attr_rec.picked_quantity2;
4434 l_detail_attr_rec.received_quantity := l_fte_detail_attr_rec.received_quantity;
4435 l_detail_attr_rec.received_quantity2 := l_fte_detail_attr_rec.received_quantity2;
4436 l_detail_attr_rec.source_line_set_id := l_fte_detail_attr_rec.source_line_set_id;
4437 l_detail_attr_rec.batch_id := l_fte_detail_attr_rec.batch_id;
4438 l_detail_attr_rec.ROWID := l_fte_detail_attr_rec.ROW_ID;
4439 l_detail_attr_rec.transaction_id := l_fte_detail_attr_rec.transaction_id;
4440 l_detail_attr_rec.VENDOR_ID := l_fte_detail_attr_rec.VENDOR_ID;
4441 l_detail_attr_rec.SHIP_FROM_SITE_ID := l_fte_detail_attr_rec.SHIP_FROM_SITE_ID;
4442 l_detail_attr_rec.LINE_DIRECTION := l_fte_detail_attr_rec.LINE_DIRECTION;
4443 l_detail_attr_rec.PARTY_ID := l_fte_detail_attr_rec.PARTY_ID;
4444 l_detail_attr_rec.ROUTING_REQ_ID := l_fte_detail_attr_rec.ROUTING_REQ_ID;
4445 l_detail_attr_rec.SHIPPING_CONTROL := l_fte_detail_attr_rec.SHIPPING_CONTROL;
4446 l_detail_attr_rec.SOURCE_BLANKET_REFERENCE_ID := l_fte_detail_attr_rec.SOURCE_BLANKET_REFERENCE_ID;
4447 l_detail_attr_rec.SOURCE_BLANKET_REFERENCE_NUM := l_fte_detail_attr_rec.SOURCE_BLANKET_REFERENCE_NUM;
4448 l_detail_attr_rec.PO_SHIPMENT_LINE_ID := l_fte_detail_attr_rec.PO_SHIPMENT_LINE_ID;
4449 l_detail_attr_rec.PO_SHIPMENT_LINE_NUMBER := l_fte_detail_attr_rec.PO_SHIPMENT_LINE_NUMBER;
4450 l_detail_attr_rec.RETURNED_QUANTITY := l_fte_detail_attr_rec.RETURNED_QUANTITY;
4451 l_detail_attr_rec.RETURNED_QUANTITY2 := l_fte_detail_attr_rec.RETURNED_QUANTITY2;
4452 l_detail_attr_rec.RCV_SHIPMENT_LINE_ID := l_fte_detail_attr_rec.RCV_SHIPMENT_LINE_ID;
4453 l_detail_attr_rec.SOURCE_LINE_TYPE_CODE := l_fte_detail_attr_rec.SOURCE_LINE_TYPE_CODE;
4454 l_detail_attr_rec.SUPPLIER_ITEM_NUMBER := l_fte_detail_attr_rec.SUPPLIER_ITEM_NUMBER;
4455 l_detail_attr_rec.IGNORE_FOR_PLANNING := l_fte_detail_attr_rec.IGNORE_FOR_PLANNING;
4456 l_detail_attr_rec.EARLIEST_PICKUP_DATE := l_fte_detail_attr_rec.EARLIEST_PICKUP_DATE;
4457 l_detail_attr_rec.LATEST_PICKUP_DATE := l_fte_detail_attr_rec.LATEST_PICKUP_DATE;
4458 l_detail_attr_rec.EARLIEST_DROPOFF_DATE := l_fte_detail_attr_rec.EARLIEST_DROPOFF_DATE;
4459 l_detail_attr_rec.LATEST_DROPOFF_DATE := l_fte_detail_attr_rec.LATEST_DROPOFF_DATE;
4460 l_detail_attr_rec.REQUEST_DATE_TYPE_CODE := l_fte_detail_attr_rec.REQUEST_DATE_TYPE_CODE;
4461 l_detail_attr_rec.tp_delivery_detail_id := l_fte_detail_attr_rec.tp_delivery_detail_id;
4462 l_detail_attr_rec.source_document_type_id := l_fte_detail_attr_rec.source_document_type_id;
4463
4464 END LOOP;
4465 END IF;
4466
4467 -- Create details_attr_tab_type
4468 l_detail_attr_tab_type(1) := l_detail_attr_rec;
4469
4470 -- Create detailsInRec
4471 l_detail_in_rec.caller := G_PKG_NAME;
4472 l_detail_in_rec.action_code := p_action_code;
4473
4474 -- Call WSH's Create_Update_DDL API
4475 WSH_INTERFACE_GRP.Create_Update_Delivery_Detail (
4476 p_api_version_number => 1.0,
4477 p_init_msg_list => FND_API.G_TRUE,
4478 p_commit => FND_API.G_FALSE,
4479 x_return_status => x_return_status,
4480 x_msg_count => x_msg_count,
4481 x_msg_data => x_msg_data,
4482 p_detail_info_tab => l_detail_attr_tab_type,
4483 p_IN_rec => l_detail_in_rec,
4484 x_OUT_rec => l_detail_out_rec -- WSH_UTIL_CORE.Id_Tab_Type
4485 );
4486
4487 -- Handle detailsOutRec
4488
4489 IF l_debug_on THEN
4490 WSH_DEBUG_SV.logmsg(l_module_name,'x_return_status:' || x_return_status);
4491 WSH_DEBUG_SV.logmsg(l_module_name,'x_msg_count:' || x_msg_count);
4492 END IF;
4493
4494 FND_MSG_PUB.Count_And_Get
4495 (
4496 p_count => x_msg_count,
4497 p_data => x_msg_data,
4498 p_encoded => FND_API.G_FALSE
4499 );
4500
4501
4502 IF l_debug_on THEN
4503 WSH_DEBUG_SV.pop(l_module_name);
4504 END IF;
4505
4506
4507 EXCEPTION
4508 WHEN FND_API.G_EXC_ERROR THEN
4509 ROLLBACK TO DDL_CREATE_UPDATE_PUB;
4510 x_return_status := FND_API.G_RET_STS_ERROR;
4511 FND_MSG_PUB.Count_And_Get
4512 (
4513 p_count => x_msg_count,
4514 p_data => x_msg_data,
4515 p_encoded => FND_API.G_FALSE
4516 );
4517
4518 IF l_debug_on THEN
4519 WSH_DEBUG_SV.pop(l_module_name);
4520 END IF;
4521 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4522 ROLLBACK TO DDL_CREATE_UPDATE_PUB;
4523 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
4524 FND_MSG_PUB.Count_And_Get
4525 (
4526 p_count => x_msg_count,
4527 p_data => x_msg_data,
4528 p_encoded => FND_API.G_FALSE
4529 );
4530 IF l_debug_on THEN
4531 WSH_DEBUG_SV.pop(l_module_name);
4532 END IF;
4533 WHEN OTHERS THEN
4534 ROLLBACK TO DDL_CREATE_UPDATE_PUB;
4535 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
4536 FND_MSG_PUB.Count_And_Get
4537 (
4538 p_count => x_msg_count,
4539 p_data => x_msg_data,
4540 p_encoded => FND_API.G_FALSE
4541 );
4542 IF l_debug_on THEN
4543 WSH_DEBUG_SV.pop(l_module_name);
4544 END IF;
4545 --
4546
4547 END Create_Update_Delivery_Detail;
4548
4549 --
4550 --
4551 --========================================================================
4552 -- PROCEDURE : Delivery_Action FTE wrapper
4553 -- p_action_code: AUTOCREATE_TRIP,CALC_WT_VOL,UNASSIGN,
4554 -- SPLIT,SELECT-CARRIER,CLOSE,FIRM,PLAN,UNPLAN,
4555 -- IGNORE_PLAN,INCLUDE_PLAN
4556 --========================================================================
4557
4558 PROCEDURE Delivery_Action
4559 ( p_api_version_number IN NUMBER,
4560 p_init_msg_list IN VARCHAR2,
4561 p_mls_id_tab IN FTE_ID_TAB_TYPE,
4562 p_action_params IN FTE_DLV_ACTION_PARAM_REC,
4563 x_return_status OUT NOCOPY VARCHAR2,
4564 x_msg_count OUT NOCOPY NUMBER,
4565 x_msg_data OUT NOCOPY VARCHAR2,
4566 x_action_out_rec OUT NOCOPY FTE_ACTION_OUT_REC
4567 ) IS
4568
4569 l_delivery_id_tab WSH_UTIL_CORE.id_tab_type;
4570 l_delivery_out_rec WSH_DELIVERIES_GRP.Delivery_Action_Out_Rec_Type;
4571 l_action_prms WSH_DELIVERIES_GRP.action_parameters_rectype;
4572
4573 -- Set delivery action_out_rec
4574 l_result_id_tab FTE_ID_TAB_TYPE;
4575 l_valid_id_tab FTE_ID_TAB_TYPE;
4576 l_selection_issue_flag VARCHAR(1);
4577 l_packing_slip_number VARCHAR2(50);
4578
4579
4580 l_number_of_errors NUMBER;
4581 l_number_of_warnings NUMBER;
4582 l_return_status VARCHAR2(32767);
4583 l_msg_count NUMBER;
4584 l_index NUMBER;
4585 l_msg_data VARCHAR2(32767);
4586
4587
4588 --
4589 l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
4590 --
4591 l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME || '.' || 'DELIVERY_ACTION';
4592
4593
4594 CURSOR stop_info (p_tripId NUMBER)
4595 IS
4596 SELECT stop_id, trip_id, planned_arrival_Date,planned_departure_date
4597 FROM wsh_trip_stops
4598 WHERE trip_id = p_tripId;
4599
4600 BEGIN
4601
4602 SAVEPOINT DELIVERY_ACTION_PUB;
4603
4604 -- Initialize message list if p_init_msg_list is set to TRUE.
4605 --
4606 --
4607 IF FND_API.to_Boolean( p_init_msg_list )
4608 THEN
4609 FND_MSG_PUB.initialize;
4610 END IF;
4611 --
4612 --
4613 -- Initialize API return status to success
4614 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
4615 x_msg_count := 0;
4616 x_msg_data := null;
4617
4618
4619 l_number_of_errors := 0;
4620 l_number_of_warnings := 0;
4621
4622
4623
4624 IF l_debug_on THEN
4625 wsh_debug_sv.push(l_module_name);
4626 END IF;
4627
4628 -- set action_prms
4629 l_action_prms.caller := G_PKG_NAME;
4630 l_action_prms.phase := p_action_params.phase;
4631 l_action_prms.action_code := p_action_params.action_code;
4632 l_action_prms.trip_id := p_action_params.trip_id;
4633 l_action_prms.trip_name := p_action_params.trip_name;
4634 l_action_prms.pickup_stop_id := p_action_params.pickup_stop_id;
4635 l_action_prms.pickup_loc_id := p_action_params.pickup_loc_id;
4636 l_action_prms.pickup_stop_seq := p_action_params.pickup_stop_seq;
4637 l_action_prms.pickup_loc_code := p_action_params.pickup_loc_code;
4638 l_action_prms.pickup_arr_date := p_action_params.pickup_arr_date;
4639 l_action_prms.pickup_dep_date := p_action_params.pickup_dep_date;
4640 l_action_prms.pickup_stop_status := p_action_params.pickup_stop_status;
4641 l_action_prms.dropoff_stop_id := p_action_params.dropoff_stop_id;
4642 l_action_prms.dropoff_loc_id := p_action_params.dropoff_loc_id;
4643 l_action_prms.dropoff_stop_seq := p_action_params.dropoff_stop_seq;
4644 l_action_prms.dropoff_loc_code := p_action_params.dropoff_loc_code;
4645 l_action_prms.dropoff_arr_date := p_action_params.dropoff_arr_date;
4646 l_action_prms.dropoff_dep_date := p_action_params.dropoff_dep_date;
4647 l_action_prms.dropoff_stop_status := p_action_params.dropoff_stop_status;
4648 l_action_prms.action_flag := p_action_params.action_flag;
4649 l_action_prms.intransit_flag := p_action_params.intransit_flag;
4650 l_action_prms.close_trip_flag := p_action_params.close_trip_flag;
4651 l_action_prms.stage_del_flag := p_action_params.stage_del_flag;
4652 l_action_prms.bill_of_lading_flag := p_action_params.bill_of_lading_flag;
4653 l_action_prms.mc_bill_of_lading_flag := p_action_params.mc_bill_of_lading_flag;
4654 l_action_prms.override_flag := p_action_params.override_flag;
4655 l_action_prms.ship_method_code := p_action_params.ship_method_code;
4656 l_action_prms.actual_dep_date := p_action_params.actual_dep_date;
4657 l_action_prms.report_set_id := p_action_params.report_set_id;
4658 l_action_prms.report_set_name := p_action_params.report_set_name;
4659 l_action_prms.send_945_flag := p_action_params.send_945_flag;
4660 l_action_prms.action_type := p_action_params.action_type;
4661 l_action_prms.document_type := p_action_params.document_type;
4662 l_action_prms.organization_id := p_action_params.organization_id;
4663 l_action_prms.reason_of_transport := p_action_params.reason_of_transport;
4664 l_action_prms.description := p_action_params.description;
4665
4666 -- Set id_tab
4667 FOR i IN p_mls_id_tab.FIRST..p_mls_id_tab.LAST LOOP
4668 l_delivery_id_tab(i) := p_mls_id_tab(i);
4669 END LOOP;
4670
4671 WSH_INTERFACE_GRP.Delivery_Action
4672 (
4673 p_api_version_number =>p_api_version_number,
4674 p_init_msg_list =>FND_API.G_TRUE,
4675 p_commit =>FND_API.G_FALSE,
4676 p_action_prms =>l_action_prms, -- WSH_DELIVERIES_GRP.action_parameters_rectype
4677 p_delivery_id_tab =>l_delivery_id_tab, -- wsh_util_core.id_tab_type
4678 x_delivery_out_rec =>l_delivery_out_rec, -- WSH_DELIVERIES_GRP.Delivery_Action_Out_Rec_Type
4679 x_return_status =>l_return_status,
4680 x_msg_count =>l_msg_count,
4681 x_msg_data =>l_msg_data
4682 );
4683
4684
4685 IF l_debug_on THEN
4686 WSH_DEBUG_SV.logmsg(l_module_name,' Return Message ' || l_return_status );
4687 WSH_DEBUG_SV.logmsg(l_module_name,' l_msg_data ' || l_msg_data );
4688 WSH_DEBUG_SV.logmsg(l_module_name,' l_msg_count ' || l_msg_count );
4689 END IF;
4690
4691
4692 wsh_util_core.api_post_call(
4693 p_return_status =>l_return_status,
4694 x_num_warnings =>l_number_of_warnings,
4695 x_num_errors =>l_number_of_errors,
4696 p_msg_data =>l_msg_data);
4697
4698
4699
4700 l_result_id_tab := FTE_ID_TAB_TYPE();
4701 l_valid_id_tab := FTE_ID_TAB_TYPE();
4702 x_action_out_rec := FTE_ACTION_OUT_REC(
4703 l_result_id_tab,l_valid_id_tab,null,null,null,null,null,null);
4704
4705 -- set valid ids tab
4706 IF (l_delivery_out_rec.valid_ids_tab.count>0) THEN
4707 FOR i IN l_delivery_out_rec.valid_ids_tab.FIRST..l_delivery_out_rec.valid_ids_tab.LAST LOOP
4708 l_valid_id_tab.EXTEND;
4709 l_valid_id_tab(i) := l_delivery_out_rec.valid_ids_tab(i);
4710 END LOOP;
4711 END IF;
4712
4713 -- set result ids tab
4714 IF (l_delivery_out_rec.result_id_tab.count>0) THEN
4715 FOR i IN l_delivery_out_rec.result_id_tab.FIRST..l_delivery_out_rec.result_id_tab.LAST LOOP
4716 l_result_id_tab.EXTEND;
4717 l_result_id_tab(i) := l_delivery_out_rec.result_id_tab(i);
4718 END LOOP;
4719 END IF;
4720
4721
4722 -- set selection issue flag
4723 l_selection_issue_flag := l_delivery_out_rec.selection_issue_flag;
4724
4725 IF l_debug_on THEN
4726 WSH_DEBUG_SV.logmsg(l_module_name,'Return Count ' || x_action_out_rec.result_id_tab.count);
4727
4728
4729 FOR stop_info_rec IN stop_info (p_action_params.trip_id)
4730 LOOP
4731 --{
4732 WSH_DEBUG_SV.logmsg(l_module_name,' Stop Id ' || stop_info_rec.stop_id);
4733 WSH_DEBUG_SV.logmsg(l_module_name,' Planned Arrival Date ' || stop_info_rec.planned_arrival_date);
4734 WSH_DEBUG_SV.logmsg(l_module_name,' Planned departure date ' || stop_info_rec.planned_departure_date);
4735 --}
4736 END LOOP;
4737
4738 END IF;
4739
4740 IF l_number_of_errors > 0
4741 THEN
4742 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4743 ELSIF l_number_of_warnings > 0
4744 THEN
4745 x_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
4746 ELSE
4747 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
4748 END IF;
4749
4750 IF l_debug_on THEN
4751 WSH_DEBUG_SV.logmsg(l_module_name,'x_return_status:' || x_return_status);
4752 WSH_DEBUG_SV.logmsg(l_module_name,'x_msg_count:' || x_msg_count);
4753 WSH_DEBUG_SV.logmsg(l_module_name,'x_msg_data:' || x_msg_data);
4754 END IF;
4755
4756
4757 /**
4758 FND_MSG_PUB.Count_And_Get
4759 (
4760 p_count => x_msg_count,
4761 p_data => x_msg_data,
4762 p_encoded => FND_API.G_FALSE
4763 );
4764 */
4765
4766
4767 IF l_debug_on THEN
4768 WSH_DEBUG_SV.pop(l_module_name);
4769 END IF;
4770
4771
4772 EXCEPTION
4773 WHEN FND_API.G_EXC_ERROR THEN
4774 ROLLBACK TO DELIVERY_ACTION_PUB;
4775 x_return_status := FND_API.G_RET_STS_ERROR;
4776 FND_MSG_PUB.Count_And_Get
4777 (
4778 p_count => x_msg_count,
4779 p_data => x_msg_data,
4780 p_encoded => FND_API.G_FALSE
4781 );
4782
4783 IF l_debug_on THEN
4784 WSH_DEBUG_SV.pop(l_module_name);
4785 END IF;
4786 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4787 ROLLBACK TO DELIVERY_ACTION_PUB;
4788 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
4789 FND_MSG_PUB.Count_And_Get
4790 (
4791 p_count => x_msg_count,
4792 p_data => x_msg_data,
4793 p_encoded => FND_API.G_FALSE
4794 );
4795 IF l_debug_on THEN
4796 WSH_DEBUG_SV.pop(l_module_name);
4797 END IF;
4798 WHEN OTHERS THEN
4799 ROLLBACK TO DELIVERY_ACTION_PUB;
4800 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
4801 FND_MSG_PUB.Count_And_Get
4802 (
4803 p_count => x_msg_count,
4804 p_data => x_msg_data,
4805 p_encoded => FND_API.G_FALSE
4806 );
4807 IF l_debug_on THEN
4808 WSH_DEBUG_SV.pop(l_module_name);
4809 END IF;
4810
4811
4812 --
4813 --
4814 END Delivery_Action;
4815 --
4816 --
4817 --========================================================================
4818 --
4819 -- PROCEDURE : Delivery_Action_On_Trip FTE wrapper
4820 -- p_action_code: UNASSIGN-TRIP
4821 -- Description : Unassigns 1 delivery from 1 trip. If you pass in multiple
4822 -- deliveres, each on a single trip (as validated in FTE),
4823 -- procedure iteratively calls WSH Group APIs for each
4824 -- delivery.
4825 --
4826 --========================================================================
4827
4828 PROCEDURE Delivery_Action_On_Trip
4829 ( p_api_version_number IN NUMBER,
4830 p_init_msg_list IN VARCHAR2,
4831 p_mls_delivery_id_tab IN FTE_ID_TAB_TYPE,
4832 p_mls_trip_id_tab IN FTE_ID_TAB_TYPE,
4833 p_action_params IN FTE_DLV_ACTION_PARAM_REC,
4834 x_return_status OUT NOCOPY VARCHAR2,
4835 x_msg_count OUT NOCOPY NUMBER,
4836 x_msg_data OUT NOCOPY VARCHAR2,
4837 x_action_out_rec OUT NOCOPY FTE_ACTION_OUT_REC
4838 ) IS
4839
4840 l_delivery_id_tab WSH_UTIL_CORE.id_tab_type;
4841 l_delivery_out_rec WSH_DELIVERIES_GRP.Delivery_Action_Out_Rec_Type;
4842 l_action_prms WSH_DELIVERIES_GRP.action_parameters_rectype;
4843
4844 -- Set delivery action_out_rec
4845 x_result_id_tab FTE_ID_TAB_TYPE;
4846 x_valid_id_tab FTE_ID_TAB_TYPE;
4847 l_selection_issue_flag VARCHAR(1);
4848 l_packing_slip_number VARCHAR2(50);
4849 l_return_status VARCHAR2(100);
4850 l_msg_count NUMBER;
4851 l_msg_data VARCHAR2(500);
4852 l_number_of_warnings NUMBER;
4853 l_number_of_errors NUMBER;
4854 l_number_valid NUMBER;
4855
4856 --
4857 l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
4858 --
4859 l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME || '.' || 'DELIVERY_ACTION_ON_TRIP';
4860
4861
4862 BEGIN
4863
4864 SAVEPOINT DELIVERY_ACTION_ON_TRIP_PUB;
4865
4866 -- Initialize message list if p_init_msg_list is set to TRUE.
4867 --
4868 --
4869 IF FND_API.to_Boolean( p_init_msg_list )
4870 THEN
4871 FND_MSG_PUB.initialize;
4872 END IF;
4873 --
4874 --
4875 -- Initialize API return status to success
4876 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
4877 x_msg_count := 0;
4878 --x_msg_data := 0;
4879 l_number_of_warnings := 0;
4880 l_number_of_errors := 0;
4881 l_number_valid := 1;
4882
4883 IF l_debug_on THEN
4884 wsh_debug_sv.push(l_module_name);
4885 END IF;
4886
4887 x_result_id_tab := FTE_ID_TAB_TYPE();
4888 x_valid_id_tab := FTE_ID_TAB_TYPE();
4889
4890 FOR i IN p_mls_delivery_id_tab.FIRST..p_mls_delivery_id_tab.LAST LOOP
4891 -- set action_prms
4892 l_action_prms.phase := p_action_params.phase;
4893 l_action_prms.action_code := p_action_params.action_code;
4894 l_action_prms.caller := G_PKG_NAME;
4895 l_action_prms.trip_id := p_mls_trip_id_tab(i);
4896
4897 -- set id tab
4898 l_delivery_id_tab(1) := p_mls_delivery_id_tab(i);
4899
4900 -- Initialize API return status to success
4901 l_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
4902 l_msg_count := 0;
4903 l_msg_data := 0;
4904
4905 WSH_INTERFACE_GRP.Delivery_Action
4906 (
4907 p_api_version_number =>p_api_version_number,
4908 p_init_msg_list =>p_init_msg_list,
4909 p_commit =>FND_API.G_FALSE,
4910 p_action_prms =>l_action_prms, -- WSH_DELIVERIES_GRP.action_parameters_rectype
4911 p_delivery_id_tab =>l_delivery_id_tab, -- wsh_util_core.id_tab_type
4912 x_delivery_out_rec =>l_delivery_out_rec, -- WSH_DELIVERIES_GRP.Delivery_Action_Out_Rec_Type
4913 x_return_status =>l_return_status,
4914 x_msg_count =>l_msg_count,
4915 x_msg_data =>l_msg_data
4916 );
4917
4918 -- if success, populate valid ids tab
4919 IF ((l_return_status = WSH_UTIL_CORE.G_RET_STS_SUCCESS)
4920 OR (l_return_status = WSH_UTIL_CORE.G_RET_STS_WARNING))
4921 THEN
4922 x_valid_id_tab.EXTEND;
4923 x_valid_id_tab(l_number_valid) := l_delivery_id_tab(1);
4924 END IF;
4925
4926 WSH_UTIL_CORE.API_POST_CALL(
4927 p_return_status =>l_return_status,
4928 x_num_warnings =>l_number_of_warnings,
4929 x_num_errors =>l_number_of_errors,
4930 p_msg_data =>l_msg_data,
4931 p_raise_error_flag =>FALSE);
4932
4933 -- set selection issue flag
4934 l_selection_issue_flag := l_delivery_out_rec.selection_issue_flag;
4935
4936 IF l_debug_on THEN
4937 WSH_DEBUG_SV.logmsg(l_module_name,'l_return_status:' || l_return_status);
4938 WSH_DEBUG_SV.logmsg(l_module_name,'l_msg_count:' || l_msg_count);
4939 END IF;
4940
4941 x_msg_count := x_msg_count+l_msg_count;
4942 --x_msg_data := x_msg_data||' '||l_msg_data;
4943
4944 END LOOP;
4945
4946 IF l_debug_on THEN
4947 WSH_DEBUG_SV.logmsg(l_module_name,'x_msg_count total:' || x_msg_count);
4948 WSH_DEBUG_SV.logmsg(l_module_name,'x_msg_data total:' || x_msg_data);
4949 END IF;
4950
4951 IF l_debug_on THEN
4952 WSH_DEBUG_SV.logmsg(l_module_name,'x_valid_id count:' || x_valid_id_tab.count);
4953 END IF;
4954
4955
4956 x_action_out_rec := FTE_ACTION_OUT_REC(
4957 x_result_id_tab,x_valid_id_tab,null,null,null,null,null,null);
4958
4959 IF ((x_valid_id_tab.count > 0) AND (x_valid_id_tab.count = p_mls_delivery_id_tab.count))
4960 THEN
4961 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
4962 ELSIF ((x_valid_id_tab.count > 0) AND (x_valid_id_tab.count <> p_mls_delivery_id_tab.count))
4963 THEN
4964 x_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
4965 ELSIF (x_valid_id_tab.count <= 0)
4966 THEN
4967 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4968 ELSE
4969 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4970 END IF;
4971
4972 IF l_debug_on THEN
4973 WSH_DEBUG_SV.logmsg(l_module_name,'x_return_status count:' || x_return_status);
4974 END IF;
4975
4976 IF l_debug_on THEN
4977 WSH_DEBUG_SV.pop(l_module_name);
4978 END IF;
4979
4980
4981 EXCEPTION
4982 WHEN FND_API.G_EXC_ERROR THEN
4983 ROLLBACK TO DELIVERY_ACTION_ON_TRIP_PUB;
4984 x_return_status := FND_API.G_RET_STS_ERROR;
4985 FND_MSG_PUB.Count_And_Get
4986 (
4987 p_count => x_msg_count,
4988 p_data => x_msg_data,
4989 p_encoded => FND_API.G_FALSE
4990 );
4991 IF l_debug_on THEN
4992 WSH_DEBUG_SV.pop(l_module_name);
4993 END IF;
4994 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4995 ROLLBACK TO DELIVERY_ACTION_ON_TRIP_PUB;
4996 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
4997 FND_MSG_PUB.Count_And_Get
4998 (
4999 p_count => x_msg_count,
5000 p_data => x_msg_data,
5001 p_encoded => FND_API.G_FALSE
5002 );
5003 IF l_debug_on THEN
5004 WSH_DEBUG_SV.pop(l_module_name);
5005 END IF;
5006 WHEN OTHERS THEN
5007 ROLLBACK TO DELIVERY_ACTION_ON_TRIP_PUB;
5008 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
5009 FND_MSG_PUB.Count_And_Get
5010 (
5011 p_count => x_msg_count,
5012 p_data => x_msg_data,
5013 p_encoded => FND_API.G_FALSE
5014 );
5015 IF l_debug_on THEN
5016 WSH_DEBUG_SV.pop(l_module_name);
5017 END IF;
5018
5019
5020
5021
5022 END Delivery_Action_On_Trip;
5023 --
5024 --
5025 --========================================================================
5026 -- PROCEDURE : Delivery_Action FTE wrapper
5027 -- p_action_code: AUTOCREATE_TRIP,CALC_WT_VOL,UNASSIGN,
5028 -- SPLIT,SELECT-CARRIER,CLOSE,FIRM,PLAN,UNPLAN,
5029 -- IGNORE_PLAN,INCLUDE_PLAN
5030 --========================================================================
5031 --
5032 PROCEDURE Create_Update_Delivery
5033 ( p_api_version_number IN NUMBER,
5034 p_init_msg_list IN VARCHAR2,
5035 p_commit IN VARCHAR2,
5036 p_dlvy_info_tab IN FTE_DLV_ATTR_TAB_TYPE,
5037 p_action_code IN VARCHAR2,
5038 x_return_status OUT NOCOPY VARCHAR2,
5039 x_msg_count OUT NOCOPY NUMBER,
5040 x_msg_data OUT NOCOPY VARCHAR2,
5041 x_dlvy_id_tab OUT NOCOPY FTE_ID_TAB_TYPE
5042 ) IS
5043
5044 l_dlvy_attr_tab_type WSH_NEW_DELIVERIES_PVT.Delivery_Attr_Tbl_Type;
5045 l_dlvy_attr_rec WSH_NEW_DELIVERIES_PVT.Delivery_Rec_Type;
5046 l_dlvy_in_rec WSH_DELIVERIES_GRP.Del_In_Rec_Type;
5047 l_dlvy_out_rec WSH_DELIVERIES_GRP.Del_Out_Tbl_Type;
5048 l_fte_dlvy_attr_rec FTE_DLV_ATTR_REC;
5049
5050 --
5051 l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
5052 --
5053 l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME || '.' || 'CREATE_UPDATE_DLVY';
5054
5055
5056 BEGIN
5057
5058 SAVEPOINT DELIVERY_CREATE_UPDATE_PUB;
5059
5060 -- Initialize message list if p_init_msg_list is set to TRUE.
5061 --
5062 --
5063 IF FND_API.to_Boolean( p_init_msg_list )
5064 THEN
5065 FND_MSG_PUB.initialize;
5066 END IF;
5067 --
5068 --
5069 -- Initialize API return status to success
5070 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
5071 x_msg_count := 0;
5072 x_msg_data := 0;
5073
5074 IF l_debug_on THEN
5075 wsh_debug_sv.push(l_module_name);
5076 END IF;
5077
5078 -- Extract delivery_rec_type from table - table should only have one row
5079 -- 153 Attributes mapped
5080 IF (p_dlvy_info_tab.count>0) THEN
5081 FOR i IN p_dlvy_info_tab.FIRST..p_dlvy_info_tab.LAST LOOP
5082 l_fte_dlvy_attr_rec := p_dlvy_info_tab(i);
5083
5084 l_dlvy_attr_rec.DELIVERY_ID := l_fte_dlvy_attr_rec.DELIVERY_ID;
5085 l_dlvy_attr_rec.NAME := l_fte_dlvy_attr_rec.DELIVERY_NAME;
5086 l_dlvy_attr_rec.PLANNED_FLAG := l_fte_dlvy_attr_rec.PLANNED_FLAG;
5087 l_dlvy_attr_rec.STATUS_CODE := l_fte_dlvy_attr_rec.STATUS_CODE;
5088 l_dlvy_attr_rec.DELIVERY_TYPE := l_fte_dlvy_attr_rec.DELIVERY_TYPE;
5089 l_dlvy_attr_rec.LOADING_SEQUENCE := l_fte_dlvy_attr_rec.LOADING_SEQUENCE;
5090 l_dlvy_attr_rec.LOADING_ORDER_FLAG := l_fte_dlvy_attr_rec.LOADING_ORDER_FLAG;
5091 l_dlvy_attr_rec.INITIAL_PICKUP_DATE := l_fte_dlvy_attr_rec.INITIAL_PICKUP_DATE;
5092 l_dlvy_attr_rec.INITIAL_PICKUP_LOCATION_ID := l_fte_dlvy_attr_rec.INITIAL_PICKUP_LOCATION_ID;
5093 l_dlvy_attr_rec.ORGANIZATION_ID := l_fte_dlvy_attr_rec.ORGANIZATION_ID;
5094 l_dlvy_attr_rec.ULTIMATE_DROPOFF_LOCATION_ID := l_fte_dlvy_attr_rec.ULTIMATE_DROPOFF_LOCATION_ID;
5095 l_dlvy_attr_rec.ULTIMATE_DROPOFF_DATE := l_fte_dlvy_attr_rec.ULTIMATE_DROPOFF_DATE;
5096 l_dlvy_attr_rec.CUSTOMER_ID := l_fte_dlvy_attr_rec.CUSTOMER_ID;
5097 l_dlvy_attr_rec.INTMED_SHIP_TO_LOCATION_ID := l_fte_dlvy_attr_rec.INTMED_SHIP_TO_LOCATION_ID;
5098 l_dlvy_attr_rec.POOLED_SHIP_TO_LOCATION_ID := l_fte_dlvy_attr_rec.POOLED_SHIP_TO_LOCATION_ID;
5099 l_dlvy_attr_rec.CARRIER_ID := l_fte_dlvy_attr_rec.CARRIER_ID;
5100 l_dlvy_attr_rec.SHIP_METHOD_CODE := l_fte_dlvy_attr_rec.SHIP_METHOD_CODE;
5101 l_dlvy_attr_rec.FREIGHT_TERMS_CODE := l_fte_dlvy_attr_rec.FREIGHT_TERMS_CODE;
5102 l_dlvy_attr_rec.FOB_CODE := l_fte_dlvy_attr_rec.FOB_CODE;
5103 l_dlvy_attr_rec.FOB_LOCATION_ID := l_fte_dlvy_attr_rec.FOB_LOCATION_ID;
5104 l_dlvy_attr_rec.WAYBILL := l_fte_dlvy_attr_rec.WAYBILL;
5105 l_dlvy_attr_rec.DOCK_CODE := l_fte_dlvy_attr_rec.DOCK_CODE;
5106 l_dlvy_attr_rec.ACCEPTANCE_FLAG := l_fte_dlvy_attr_rec.ACCEPTANCE_FLAG;
5107 l_dlvy_attr_rec.ACCEPTED_BY := l_fte_dlvy_attr_rec.ACCEPTED_BY;
5108 l_dlvy_attr_rec.ACCEPTED_DATE := l_fte_dlvy_attr_rec.ACCEPTED_DATE;
5109 l_dlvy_attr_rec.ACKNOWLEDGED_BY := l_fte_dlvy_attr_rec.ACKNOWLEDGED_BY;
5110 l_dlvy_attr_rec.CONFIRMED_BY := l_fte_dlvy_attr_rec.CONFIRMED_BY;
5111 l_dlvy_attr_rec.CONFIRM_DATE := l_fte_dlvy_attr_rec.CONFIRM_DATE;
5112 l_dlvy_attr_rec.ASN_DATE_SENT := l_fte_dlvy_attr_rec.ASN_DATE_SENT;
5113 l_dlvy_attr_rec.ASN_STATUS_CODE := l_fte_dlvy_attr_rec.ASN_STATUS_CODE;
5114 l_dlvy_attr_rec.ASN_SEQ_NUMBER := l_fte_dlvy_attr_rec.ASN_SEQ_NUMBER;
5115 l_dlvy_attr_rec.GROSS_WEIGHT := l_fte_dlvy_attr_rec.GROSS_WEIGHT;
5116 l_dlvy_attr_rec.NET_WEIGHT := l_fte_dlvy_attr_rec.NET_WEIGHT;
5117 l_dlvy_attr_rec.WEIGHT_UOM_CODE := l_fte_dlvy_attr_rec.WEIGHT_UOM_CODE;
5118 l_dlvy_attr_rec.VOLUME := l_fte_dlvy_attr_rec.VOLUME;
5119 l_dlvy_attr_rec.VOLUME_UOM_CODE := l_fte_dlvy_attr_rec.VOLUME_UOM_CODE;
5120 l_dlvy_attr_rec.ADDITIONAL_SHIPMENT_INFO := l_fte_dlvy_attr_rec.ADDITIONAL_SHIPMENT_INFO;
5121 l_dlvy_attr_rec.CURRENCY_CODE := l_fte_dlvy_attr_rec.CURRENCY_CODE;
5122 l_dlvy_attr_rec.ATTRIBUTE_CATEGORY := l_fte_dlvy_attr_rec.ATTRIBUTE_CATEGORY;
5123 l_dlvy_attr_rec.ATTRIBUTE1 := l_fte_dlvy_attr_rec.ATTRIBUTE1;
5124 l_dlvy_attr_rec.ATTRIBUTE2 := l_fte_dlvy_attr_rec.ATTRIBUTE2;
5125 l_dlvy_attr_rec.ATTRIBUTE3 := l_fte_dlvy_attr_rec.ATTRIBUTE3;
5126 l_dlvy_attr_rec.ATTRIBUTE4 := l_fte_dlvy_attr_rec.ATTRIBUTE4;
5127 l_dlvy_attr_rec.ATTRIBUTE5 := l_fte_dlvy_attr_rec.ATTRIBUTE5;
5128 l_dlvy_attr_rec.ATTRIBUTE6 := l_fte_dlvy_attr_rec.ATTRIBUTE6;
5129 l_dlvy_attr_rec.ATTRIBUTE7 := l_fte_dlvy_attr_rec.ATTRIBUTE7;
5130 l_dlvy_attr_rec.ATTRIBUTE8 := l_fte_dlvy_attr_rec.ATTRIBUTE8;
5131 l_dlvy_attr_rec.ATTRIBUTE9 := l_fte_dlvy_attr_rec.ATTRIBUTE9;
5132 l_dlvy_attr_rec.ATTRIBUTE10 := l_fte_dlvy_attr_rec.ATTRIBUTE10;
5133 l_dlvy_attr_rec.ATTRIBUTE11 := l_fte_dlvy_attr_rec.ATTRIBUTE11;
5134 l_dlvy_attr_rec.ATTRIBUTE12 := l_fte_dlvy_attr_rec.ATTRIBUTE12;
5135 l_dlvy_attr_rec.ATTRIBUTE13 := l_fte_dlvy_attr_rec.ATTRIBUTE13;
5136 l_dlvy_attr_rec.ATTRIBUTE14 := l_fte_dlvy_attr_rec.ATTRIBUTE14;
5137 l_dlvy_attr_rec.ATTRIBUTE15 := l_fte_dlvy_attr_rec.ATTRIBUTE15;
5138 l_dlvy_attr_rec.TP_ATTRIBUTE_CATEGORY := l_fte_dlvy_attr_rec.TP_ATTRIBUTE_CATEGORY;
5139 l_dlvy_attr_rec.TP_ATTRIBUTE1 := l_fte_dlvy_attr_rec.TP_ATTRIBUTE1;
5140 l_dlvy_attr_rec.TP_ATTRIBUTE2 := l_fte_dlvy_attr_rec.TP_ATTRIBUTE2;
5141 l_dlvy_attr_rec.TP_ATTRIBUTE3 := l_fte_dlvy_attr_rec.TP_ATTRIBUTE3;
5142 l_dlvy_attr_rec.TP_ATTRIBUTE4 := l_fte_dlvy_attr_rec.TP_ATTRIBUTE4;
5143 l_dlvy_attr_rec.TP_ATTRIBUTE5 := l_fte_dlvy_attr_rec.TP_ATTRIBUTE5;
5144 l_dlvy_attr_rec.TP_ATTRIBUTE6 := l_fte_dlvy_attr_rec.TP_ATTRIBUTE6;
5145 l_dlvy_attr_rec.TP_ATTRIBUTE7 := l_fte_dlvy_attr_rec.TP_ATTRIBUTE7;
5146 l_dlvy_attr_rec.TP_ATTRIBUTE8 := l_fte_dlvy_attr_rec.TP_ATTRIBUTE8;
5147 l_dlvy_attr_rec.TP_ATTRIBUTE9 := l_fte_dlvy_attr_rec.TP_ATTRIBUTE9;
5148 l_dlvy_attr_rec.TP_ATTRIBUTE10 := l_fte_dlvy_attr_rec.TP_ATTRIBUTE10;
5149 l_dlvy_attr_rec.TP_ATTRIBUTE11 := l_fte_dlvy_attr_rec.TP_ATTRIBUTE11;
5150 l_dlvy_attr_rec.TP_ATTRIBUTE12 := l_fte_dlvy_attr_rec.TP_ATTRIBUTE12;
5151 l_dlvy_attr_rec.TP_ATTRIBUTE13 := l_fte_dlvy_attr_rec.TP_ATTRIBUTE13;
5152 l_dlvy_attr_rec.TP_ATTRIBUTE14 := l_fte_dlvy_attr_rec.TP_ATTRIBUTE14;
5153 l_dlvy_attr_rec.TP_ATTRIBUTE15 := l_fte_dlvy_attr_rec.TP_ATTRIBUTE15;
5154 l_dlvy_attr_rec.GLOBAL_ATTRIBUTE_CATEGORY := l_fte_dlvy_attr_rec.GLOBAL_ATTRIBUTE_CATEGORY;
5155 l_dlvy_attr_rec.GLOBAL_ATTRIBUTE1 := l_fte_dlvy_attr_rec.GLOBAL_ATTRIBUTE1;
5156 l_dlvy_attr_rec.GLOBAL_ATTRIBUTE2 := l_fte_dlvy_attr_rec.GLOBAL_ATTRIBUTE2;
5157 l_dlvy_attr_rec.GLOBAL_ATTRIBUTE3 := l_fte_dlvy_attr_rec.GLOBAL_ATTRIBUTE3;
5158 l_dlvy_attr_rec.GLOBAL_ATTRIBUTE4 := l_fte_dlvy_attr_rec.GLOBAL_ATTRIBUTE4;
5159 l_dlvy_attr_rec.GLOBAL_ATTRIBUTE5 := l_fte_dlvy_attr_rec.GLOBAL_ATTRIBUTE5;
5160 l_dlvy_attr_rec.GLOBAL_ATTRIBUTE6 := l_fte_dlvy_attr_rec.GLOBAL_ATTRIBUTE6;
5161 l_dlvy_attr_rec.GLOBAL_ATTRIBUTE7 := l_fte_dlvy_attr_rec.GLOBAL_ATTRIBUTE7;
5162 l_dlvy_attr_rec.GLOBAL_ATTRIBUTE8 := l_fte_dlvy_attr_rec.GLOBAL_ATTRIBUTE8;
5163 l_dlvy_attr_rec.GLOBAL_ATTRIBUTE9 := l_fte_dlvy_attr_rec.GLOBAL_ATTRIBUTE9;
5164 l_dlvy_attr_rec.GLOBAL_ATTRIBUTE10 := l_fte_dlvy_attr_rec.GLOBAL_ATTRIBUTE10;
5165 l_dlvy_attr_rec.GLOBAL_ATTRIBUTE11 := l_fte_dlvy_attr_rec.GLOBAL_ATTRIBUTE11;
5166 l_dlvy_attr_rec.GLOBAL_ATTRIBUTE12 := l_fte_dlvy_attr_rec.GLOBAL_ATTRIBUTE12;
5167 l_dlvy_attr_rec.GLOBAL_ATTRIBUTE13 := l_fte_dlvy_attr_rec.GLOBAL_ATTRIBUTE13;
5168 l_dlvy_attr_rec.GLOBAL_ATTRIBUTE14 := l_fte_dlvy_attr_rec.GLOBAL_ATTRIBUTE14;
5169 l_dlvy_attr_rec.GLOBAL_ATTRIBUTE15 := l_fte_dlvy_attr_rec.GLOBAL_ATTRIBUTE15;
5170 l_dlvy_attr_rec.GLOBAL_ATTRIBUTE16 := l_fte_dlvy_attr_rec.GLOBAL_ATTRIBUTE16;
5171 l_dlvy_attr_rec.GLOBAL_ATTRIBUTE17 := l_fte_dlvy_attr_rec.GLOBAL_ATTRIBUTE17;
5172 l_dlvy_attr_rec.GLOBAL_ATTRIBUTE18 := l_fte_dlvy_attr_rec.GLOBAL_ATTRIBUTE18;
5173 l_dlvy_attr_rec.GLOBAL_ATTRIBUTE19 := l_fte_dlvy_attr_rec.GLOBAL_ATTRIBUTE19;
5174 l_dlvy_attr_rec.GLOBAL_ATTRIBUTE20 := l_fte_dlvy_attr_rec.GLOBAL_ATTRIBUTE20;
5175 l_dlvy_attr_rec.CREATION_DATE := l_fte_dlvy_attr_rec.CREATION_DATE;
5176 l_dlvy_attr_rec.CREATED_BY := l_fte_dlvy_attr_rec.CREATED_BY;
5177 l_dlvy_attr_rec.LAST_UPDATE_DATE := l_fte_dlvy_attr_rec.LAST_UPDATE_DATE;
5178 l_dlvy_attr_rec.LAST_UPDATED_BY := l_fte_dlvy_attr_rec.LAST_UPDATED_BY;
5179 l_dlvy_attr_rec.LAST_UPDATE_LOGIN := l_fte_dlvy_attr_rec.LAST_UPDATE_LOGIN;
5180 l_dlvy_attr_rec.PROGRAM_APPLICATION_ID := l_fte_dlvy_attr_rec.PROGRAM_APPLICATION_ID;
5181 l_dlvy_attr_rec.PROGRAM_ID := l_fte_dlvy_attr_rec.PROGRAM_ID;
5182 l_dlvy_attr_rec.PROGRAM_UPDATE_DATE := l_fte_dlvy_attr_rec.PROGRAM_UPDATE_DATE;
5183 l_dlvy_attr_rec.REQUEST_ID := l_fte_dlvy_attr_rec.REQUEST_ID;
5184 l_dlvy_attr_rec.BATCH_ID := l_fte_dlvy_attr_rec.BATCH_ID;
5185 l_dlvy_attr_rec.HASH_VALUE := l_fte_dlvy_attr_rec.HASH_VALUE;
5186 l_dlvy_attr_rec.SOURCE_HEADER_ID := l_fte_dlvy_attr_rec.SOURCE_HEADER_ID;
5187 l_dlvy_attr_rec.NUMBER_OF_LPN := l_fte_dlvy_attr_rec.NUMBER_OF_LPN;
5188 l_dlvy_attr_rec.COD_AMOUNT := l_fte_dlvy_attr_rec.COD_AMOUNT;
5189 l_dlvy_attr_rec.COD_CURRENCY_CODE := l_fte_dlvy_attr_rec.COD_CURRENCY_CODE;
5190 l_dlvy_attr_rec.COD_REMIT_TO := l_fte_dlvy_attr_rec.COD_REMIT_TO;
5191 l_dlvy_attr_rec.COD_CHARGE_PAID_BY := l_fte_dlvy_attr_rec.COD_CHARGE_PAID_BY;
5192 l_dlvy_attr_rec.PROBLEM_CONTACT_REFERENCE := l_fte_dlvy_attr_rec.PROBLEM_CONTACT_REFERENCE;
5193 l_dlvy_attr_rec.PORT_OF_LOADING := l_fte_dlvy_attr_rec.PORT_OF_LOADING;
5194 l_dlvy_attr_rec.PORT_OF_DISCHARGE := l_fte_dlvy_attr_rec.PORT_OF_DISCHARGE;
5195 l_dlvy_attr_rec.FTZ_NUMBER := l_fte_dlvy_attr_rec.FTZ_NUMBER;
5196 l_dlvy_attr_rec.ROUTED_EXPORT_TXN := l_fte_dlvy_attr_rec.ROUTED_EXPORT_TXN;
5197 l_dlvy_attr_rec.ENTRY_NUMBER := l_fte_dlvy_attr_rec.ENTRY_NUMBER;
5198 l_dlvy_attr_rec.ROUTING_INSTRUCTIONS := l_fte_dlvy_attr_rec.ROUTING_INSTRUCTIONS;
5199 l_dlvy_attr_rec.IN_BOND_CODE := l_fte_dlvy_attr_rec.IN_BOND_CODE;
5200 l_dlvy_attr_rec.SHIPPING_MARKS:= l_fte_dlvy_attr_rec.SHIPPING_MARKS;
5201 l_dlvy_attr_rec.SERVICE_LEVEL := l_fte_dlvy_attr_rec.SERVICE_LEVEL;
5202 l_dlvy_attr_rec.MODE_OF_TRANSPORT := l_fte_dlvy_attr_rec.MODE_OF_TRANSPORT;
5203 l_dlvy_attr_rec.ASSIGNED_TO_FTE_TRIPS := l_fte_dlvy_attr_rec.ASSIGNED_TO_FTE_TRIPS;
5204 l_dlvy_attr_rec.AUTO_SC_EXCLUDE_FLAG := l_fte_dlvy_attr_rec.AUTO_SC_EXCLUDE_FLAG;
5205 l_dlvy_attr_rec.AUTO_AP_EXCLUDE_FLAG := l_fte_dlvy_attr_rec.AUTO_AP_EXCLUDE_FLAG;
5206 l_dlvy_attr_rec.AP_BATCH_ID := l_fte_dlvy_attr_rec.AP_BATCH_ID;
5207 l_dlvy_attr_rec.ROWID := l_fte_dlvy_attr_rec.ROW_ID;
5208 l_dlvy_attr_rec.LOADING_ORDER_DESC := l_fte_dlvy_attr_rec.LOADING_ORDER_DESC;
5209 l_dlvy_attr_rec.ORGANIZATION_CODE := l_fte_dlvy_attr_rec.ORGANIZATION_CODE;
5210 l_dlvy_attr_rec.ULTIMATE_DROPOFF_LOCATION_CODE := l_fte_dlvy_attr_rec.ULTIMATE_DROPOFF_LOCATION_CODE;
5211 l_dlvy_attr_rec.INITIAL_PICKUP_LOCATION_CODE := l_fte_dlvy_attr_rec.INITIAL_PICKUP_LOCATION_CODE;
5212 l_dlvy_attr_rec.CUSTOMER_NUMBER := l_fte_dlvy_attr_rec.CUSTOMER_NUMBER;
5213 l_dlvy_attr_rec.INTMED_SHIP_TO_LOCATION_CODE := l_fte_dlvy_attr_rec.INTMED_SHIP_TO_LOCATION_CODE;
5214 l_dlvy_attr_rec.POOLED_SHIP_TO_LOCATION_CODE := l_fte_dlvy_attr_rec.POOLED_SHIP_TO_LOCATION_CODE;
5215 l_dlvy_attr_rec.CARRIER_CODE := l_fte_dlvy_attr_rec.CARRIER_CODE;
5216 l_dlvy_attr_rec.SHIP_METHOD_NAME := l_fte_dlvy_attr_rec.SHIP_METHOD_NAME;
5217 l_dlvy_attr_rec.FREIGHT_TERMS_NAME := l_fte_dlvy_attr_rec.FREIGHT_TERMS_NAME;
5218 l_dlvy_attr_rec.FOB_NAME := l_fte_dlvy_attr_rec.FOB_NAME;
5219 l_dlvy_attr_rec.FOB_LOCATION_CODE := l_fte_dlvy_attr_rec.FOB_LOCATION_CODE;
5220 l_dlvy_attr_rec.WEIGHT_UOM_DESC := l_fte_dlvy_attr_rec.WEIGHT_UOM_DESC;
5221 l_dlvy_attr_rec.VOLUME_UOM_DESC := l_fte_dlvy_attr_rec.VOLUME_UOM_DESC;
5222 l_dlvy_attr_rec.CURRENCY_NAME := l_fte_dlvy_attr_rec.CURRENCY_NAME;
5223 l_dlvy_attr_rec.SHIPMENT_DIRECTION := l_fte_dlvy_attr_rec.SHIPMENT_DIRECTION;
5224 l_dlvy_attr_rec.VENDOR_ID := l_fte_dlvy_attr_rec.VENDOR_ID;
5225 l_dlvy_attr_rec.PARTY_ID := l_fte_dlvy_attr_rec.PARTY_ID;
5226 l_dlvy_attr_rec.ROUTING_RESPONSE_ID := l_fte_dlvy_attr_rec.ROUTING_RESPONSE_ID;
5227 l_dlvy_attr_rec.RCV_SHIPMENT_HEADER_ID := l_fte_dlvy_attr_rec.RCV_SHIPMENT_HEADER_ID;
5228 l_dlvy_attr_rec.ASN_SHIPMENT_HEADER_ID := l_fte_dlvy_attr_rec.ASN_SHIPMENT_HEADER_ID;
5229 l_dlvy_attr_rec.SHIPPING_CONTROL := l_fte_dlvy_attr_rec.SHIPPING_CONTROL;
5230 l_dlvy_attr_rec.TP_DELIVERY_NUMBER := l_fte_dlvy_attr_rec.TP_DELIVERY_NUMBER;
5231 l_dlvy_attr_rec.EARLIEST_PICKUP_DATE := l_fte_dlvy_attr_rec.EARLIEST_PICKUP_DATE;
5232 l_dlvy_attr_rec.LATEST_PICKUP_DATE := l_fte_dlvy_attr_rec.LATEST_PICKUP_DATE;
5233 l_dlvy_attr_rec.EARLIEST_DROPOFF_DATE := l_fte_dlvy_attr_rec.EARLIEST_DROPOFF_DATE;
5234 l_dlvy_attr_rec.LATEST_DROPOFF_DATE := l_fte_dlvy_attr_rec.LATEST_DROPOFF_DATE;
5235 l_dlvy_attr_rec.IGNORE_FOR_PLANNING := l_fte_dlvy_attr_rec.IGNORE_FOR_PLANNING;
5236 l_dlvy_attr_rec.TP_PLAN_NAME := l_fte_dlvy_attr_rec.TP_PLAN_NAME;
5237 l_dlvy_attr_rec.PRORATE_WT_FLAG := l_fte_dlvy_attr_rec.PRORATE_WT_FLAG;
5238 END LOOP;
5239 END IF;
5240
5241 IF l_debug_on THEN
5242 WSH_DEBUG_SV.logmsg(l_module_name,'DeliveryId:' || l_dlvy_attr_rec.DELIVERY_ID);
5243 WSH_DEBUG_SV.logmsg(l_module_name,'ProrateWtFlag:' || l_dlvy_attr_rec.PRORATE_WT_FLAG);
5244 END IF;
5245
5246
5247 -- Create details_attr_tab_type
5248 l_dlvy_attr_tab_type(1) := l_dlvy_attr_rec;
5249
5250 -- Create detailsInRec
5251 l_dlvy_in_rec.caller := G_PKG_NAME;
5252 l_dlvy_in_rec.action_code := p_action_code;
5253
5254 -- Call WSH's Create_Update_DLVY API
5255 WSH_INTERFACE_GRP.Create_Update_Delivery (
5256 p_api_version_number => 1.0,
5257 p_init_msg_list => FND_API.G_TRUE,
5258 p_commit => FND_API.G_FALSE,
5259 p_in_rec => l_dlvy_in_rec,
5260 p_rec_attr_tab => l_dlvy_attr_tab_type,
5261 x_del_out_rec_tab => l_dlvy_out_rec,
5262 x_return_status => x_return_status,
5263 x_msg_count => x_msg_count,
5264 x_msg_data => x_msg_data
5265 );
5266
5267 -- Handle dlvyOutRec
5268 /* Del_Out_Rec_Type is RECORD (
5269 delivery_id NUMBER,
5270 name VARCHAR2(30),
5271 rowid VARCHAR2(4000));
5272 */
5273
5274 IF l_debug_on THEN
5275 WSH_DEBUG_SV.logmsg(l_module_name,'x_return_status:' || x_return_status);
5276 WSH_DEBUG_SV.logmsg(l_module_name,'x_msg_count:' || x_msg_count);
5277 END IF;
5278
5279 FND_MSG_PUB.Count_And_Get
5280 (
5281 p_count => x_msg_count,
5282 p_data => x_msg_data,
5283 p_encoded => FND_API.G_FALSE
5284 );
5285
5286
5287 IF l_debug_on THEN
5288 WSH_DEBUG_SV.pop(l_module_name);
5289 END IF;
5290
5291
5292 EXCEPTION
5293 WHEN FND_API.G_EXC_ERROR THEN
5294 ROLLBACK TO DELIVERY_CREATE_UPDATE_PUB;
5295 x_return_status := FND_API.G_RET_STS_ERROR;
5296 FND_MSG_PUB.Count_And_Get
5297 (
5298 p_count => x_msg_count,
5299 p_data => x_msg_data,
5300 p_encoded => FND_API.G_FALSE
5301 );
5302
5303 IF l_debug_on THEN
5304 WSH_DEBUG_SV.pop(l_module_name);
5305 END IF;
5306 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
5307 ROLLBACK TO DELIVERY_CREATE_UPDATE_PUB;
5308 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
5309 FND_MSG_PUB.Count_And_Get
5310 (
5311 p_count => x_msg_count,
5312 p_data => x_msg_data,
5313 p_encoded => FND_API.G_FALSE
5314 );
5315 IF l_debug_on THEN
5316 WSH_DEBUG_SV.pop(l_module_name);
5317 END IF;
5318 WHEN OTHERS THEN
5319 ROLLBACK TO DELIVERY_CREATE_UPDATE_PUB;
5320 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
5321 FND_MSG_PUB.Count_And_Get
5322 (
5323 p_count => x_msg_count,
5324 p_data => x_msg_data,
5325 p_encoded => FND_API.G_FALSE
5326 );
5327 IF l_debug_on THEN
5328 WSH_DEBUG_SV.pop(l_module_name);
5329 END IF;
5330 --
5331 END CREATE_UPDATE_DELIVERY;
5332 --
5333 --
5334 --========================================================================
5335 -- PROCEDURE : Exception_Action FTE wrapper
5336 -- p_action_code: CHANGE_STATUS
5337 -- new_status: CLOSED, NO_ACTION_REQUIRED
5338 -- lookup_type: EXCEPTION_STATUS
5339 --========================================================================
5340 --
5341 PROCEDURE Exception_Action
5342 ( p_api_version_number IN NUMBER,
5343 p_init_msg_list IN VARCHAR2,
5344 p_validation_level IN NUMBER,
5345 p_commit IN VARCHAR2,
5346 p_action IN VARCHAR2,
5347 p_xc_action_tab IN FTE_XC_ACTION_TAB_TYPE,
5348 x_return_status OUT NOCOPY VARCHAR2,
5349 x_msg_count OUT NOCOPY NUMBER,
5350 x_msg_data OUT NOCOPY VARCHAR2,
5351 x_action_out_rec OUT NOCOPY FTE_ACTION_OUT_REC
5352 )IS
5353
5354 l_exception_action_param_rec WSH_EXCEPTIONS_PUB.XC_ACTION_REC_TYPE;
5355 l_fte_dlvy_attr_rec FTE_XC_ACTION_PARAM_REC;
5356
5357 -- Set delivery action_out_rec
5358 x_result_id_tab FTE_ID_TAB_TYPE;
5359 x_valid_id_tab FTE_ID_TAB_TYPE;
5360 l_return_status VARCHAR2(100);
5361 l_msg_count NUMBER;
5362 l_msg_data VARCHAR2(500);
5363 l_number_of_warnings NUMBER;
5364 l_number_of_errors NUMBER;
5365
5366 --
5367 l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
5368 --
5369 l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME || '.' || 'EXCEPTION_ACTION';
5370
5371
5372 BEGIN
5373
5374 SAVEPOINT EXCEPTION_ACTION_PUB;
5375
5376 -- Initialize message list if p_init_msg_list is set to TRUE.
5377 --
5378 --
5379 IF FND_API.to_Boolean( p_init_msg_list )
5380 THEN
5381 FND_MSG_PUB.initialize;
5382 END IF;
5383 --
5384 --
5385 -- Initialize API return status to success
5386 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
5387 x_msg_count := 0;
5388 x_msg_data := '';
5389 l_number_of_warnings := 0;
5390 l_number_of_errors := 0;
5391
5392 IF l_debug_on THEN
5393 wsh_debug_sv.push(l_module_name);
5394 END IF;
5395
5396 -- Iteratively loop through each rec in the tab and call WSH API
5397 x_result_id_tab := FTE_ID_TAB_TYPE();
5398 x_valid_id_tab := FTE_ID_TAB_TYPE();
5399
5400 FOR i IN p_xc_action_tab.FIRST..p_xc_action_tab.LAST LOOP
5401 l_fte_dlvy_attr_rec := p_xc_action_tab(i);
5402
5403 -- map action param rec
5404 l_exception_action_param_rec.request_id := l_fte_dlvy_attr_rec.request_id;
5405 l_exception_action_param_rec.batch_id := l_fte_dlvy_attr_rec.batch_id;
5406 l_exception_action_param_rec.exception_id := l_fte_dlvy_attr_rec.exception_id;
5407 l_exception_action_param_rec.exception_name := l_fte_dlvy_attr_rec.exception_name;
5408 l_exception_action_param_rec.logging_entity := l_fte_dlvy_attr_rec.logging_entity;
5409 l_exception_action_param_rec.logging_entity_id := l_fte_dlvy_attr_rec.logging_entity_id;
5410 l_exception_action_param_rec.manually_logged := l_fte_dlvy_attr_rec.manually_logged;
5411 l_exception_action_param_rec.message := l_fte_dlvy_attr_rec.message;
5412 l_exception_action_param_rec.logged_at_location_code := l_fte_dlvy_attr_rec.logged_at_location_code;
5413 l_exception_action_param_rec.exception_location_code := l_fte_dlvy_attr_rec.exception_location_code;
5414 l_exception_action_param_rec.severity := l_fte_dlvy_attr_rec.severity;
5415 l_exception_action_param_rec.delivery_name := l_fte_dlvy_attr_rec.delivery_name;
5416 l_exception_action_param_rec.trip_name := l_fte_dlvy_attr_rec.trip_name;
5417 l_exception_action_param_rec.stop_location_id := l_fte_dlvy_attr_rec.stop_location_id;
5418 l_exception_action_param_rec.delivery_detail_id := l_fte_dlvy_attr_rec.delivery_detail_id;
5419 l_exception_action_param_rec.container_name := l_fte_dlvy_attr_rec.container_name;
5420 l_exception_action_param_rec.org_id := l_fte_dlvy_attr_rec.org_id;
5421 l_exception_action_param_rec.inventory_item_id := l_fte_dlvy_attr_rec.inventory_item_id;
5422 l_exception_action_param_rec.lot_number := l_fte_dlvy_attr_rec.lot_number;
5423 --l_exception_action_param_rec.sublot_number := l_fte_dlvy_attr_rec.sublot_number;
5424 l_exception_action_param_rec.revision := l_fte_dlvy_attr_rec.revision;
5425
5426 l_exception_action_param_rec.serial_number := l_fte_dlvy_attr_rec.serial_number;
5427 l_exception_action_param_rec.unit_of_measure := l_fte_dlvy_attr_rec.unit_of_measure;
5428 l_exception_action_param_rec.quantity := l_fte_dlvy_attr_rec.quantity;
5429 l_exception_action_param_rec.unit_of_measure2 := l_fte_dlvy_attr_rec.unit_of_measure2;
5430 l_exception_action_param_rec.quantity2 := l_fte_dlvy_attr_rec.quantity2;
5431 l_exception_action_param_rec.subinventory := l_fte_dlvy_attr_rec.subinventory;
5432 l_exception_action_param_rec.locator_id := l_fte_dlvy_attr_rec.locator_id;
5433 l_exception_action_param_rec.error_message := l_fte_dlvy_attr_rec.error_message;
5434 l_exception_action_param_rec.attribute_category := l_fte_dlvy_attr_rec.attribute_category;
5435 l_exception_action_param_rec.attribute1 := l_fte_dlvy_attr_rec.attribute1;
5436
5437 l_exception_action_param_rec.attribute2 := l_fte_dlvy_attr_rec.attribute2;
5438 l_exception_action_param_rec.attribute3 := l_fte_dlvy_attr_rec.attribute3;
5439 l_exception_action_param_rec.attribute4 := l_fte_dlvy_attr_rec.attribute4;
5440 l_exception_action_param_rec.attribute5 := l_fte_dlvy_attr_rec.attribute5;
5441 l_exception_action_param_rec.attribute6 := l_fte_dlvy_attr_rec.attribute6;
5442 l_exception_action_param_rec.attribute7 := l_fte_dlvy_attr_rec.attribute7;
5443 l_exception_action_param_rec.attribute8 := l_fte_dlvy_attr_rec.attribute8;
5444 l_exception_action_param_rec.attribute9 := l_fte_dlvy_attr_rec.attribute9;
5445 l_exception_action_param_rec.attribute10 := l_fte_dlvy_attr_rec.attribute10;
5446 l_exception_action_param_rec.attribute11 := l_fte_dlvy_attr_rec.attribute11;
5447
5448 l_exception_action_param_rec.attribute12 := l_fte_dlvy_attr_rec.attribute12;
5449 l_exception_action_param_rec.attribute13 := l_fte_dlvy_attr_rec.attribute13;
5450 l_exception_action_param_rec.attribute14 := l_fte_dlvy_attr_rec.attribute14;
5451 l_exception_action_param_rec.attribute15 := l_fte_dlvy_attr_rec.attribute15;
5452 l_exception_action_param_rec.departure_date := l_fte_dlvy_attr_rec.departure_date;
5453 l_exception_action_param_rec.arrival_date := l_fte_dlvy_attr_rec.arrival_date;
5454 /* Do not set the following fields. They are used for Purge. Do not set them
5455 l_exception_action_param_rec.exception_type := l_fte_dlvy_attr_rec.exception_type;
5456 l_exception_action_param_rec.departure_date_to := l_fte_dlvy_attr_rec.departure_date_to;
5457 l_exception_action_param_rec.arrival_date_to := l_fte_dlvy_attr_rec.arrival_date_to;
5458 l_exception_action_param_rec.creation_date := l_fte_dlvy_attr_rec.creation_date;
5459 l_exception_action_param_rec.creation_date_to := l_fte_dlvy_attr_rec.creation_date_to;
5460 l_exception_action_param_rec.data_older_no_of_days := l_fte_dlvy_attr_rec.data_older_no_of_days;
5461 */
5462 l_exception_action_param_rec.status := l_fte_dlvy_attr_rec.status;
5463 l_exception_action_param_rec.new_status := l_fte_dlvy_attr_rec.new_status;
5464 l_exception_action_param_rec.caller := G_PKG_NAME;
5465 l_exception_action_param_rec.phase := l_fte_dlvy_attr_rec.phase;
5466
5467 WSH_EXCEPTIONS_GRP.Exception_Action (
5468 p_api_version => p_api_version_number,
5469 p_init_msg_list => p_commit,
5470 p_validation_level => p_validation_level,
5471 p_commit => p_commit,
5472 x_msg_count => l_msg_count,
5473 x_msg_data => l_msg_data,
5474 x_return_status => l_return_status,
5475 p_exception_rec => l_exception_action_param_rec,
5476 p_action => p_action
5477 );
5478
5479 -- if success, populate valid ids tab
5480 IF ((l_return_status = WSH_UTIL_CORE.G_RET_STS_SUCCESS)
5481 OR (l_return_status = WSH_UTIL_CORE.G_RET_STS_WARNING))
5482 THEN
5483 x_valid_id_tab.EXTEND;
5484 x_valid_id_tab(i) := l_exception_action_param_rec.exception_id;
5485 ELSIF (l_return_status = WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR) THEN
5486 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
5487 END IF;
5488
5489 WSH_UTIL_CORE.API_POST_CALL(
5490 p_return_status =>l_return_status,
5491 x_num_warnings =>l_number_of_warnings,
5492 x_num_errors =>l_number_of_errors,
5493 p_msg_data =>l_msg_data,
5494 p_raise_error_flag =>FALSE);
5495
5496 IF l_debug_on THEN
5497 WSH_DEBUG_SV.logmsg(l_module_name,'entity_id:' || l_exception_action_param_rec.logging_entity_id);
5498 WSH_DEBUG_SV.logmsg(l_module_name,'l_return_status:' || l_return_status);
5499 WSH_DEBUG_SV.logmsg(l_module_name,'l_msg_count:' || l_msg_count);
5500 END IF;
5501
5502 -- set the return params
5503 x_msg_count := x_msg_count+l_msg_count;
5504 x_msg_data := x_msg_data ||' '||l_msg_data;
5505
5506 END LOOP;
5507
5508 IF x_valid_id_tab.count<=0 -- there are no valid ids
5509 THEN
5510 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
5511 ELSIF x_valid_id_tab.count>0 AND x_valid_id_tab.count < p_xc_action_tab.count
5512 THEN
5513 x_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
5514 ELSIF x_valid_id_tab.count>0 AND x_valid_id_tab.count = p_xc_action_tab.count
5515 THEN
5516 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
5517 ELSE
5518 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
5519 END IF;
5520
5521 IF l_debug_on THEN
5522 WSH_DEBUG_SV.logmsg(l_module_name,'x_valid_id_tab.count:' || x_valid_id_tab.count);
5523 WSH_DEBUG_SV.logmsg(l_module_name,'p_xc_action_tab.count:' || p_xc_action_tab.count);
5524 WSH_DEBUG_SV.logmsg(l_module_name,'x_return_status:' || x_return_status);
5525 END IF;
5526
5527 /**
5528 FND_MSG_PUB.Count_And_Get
5529 (
5530 p_count => x_msg_count,
5531 p_data => x_msg_data,
5532 p_encoded => FND_API.G_FALSE
5533 );
5534 */
5535
5536 x_action_out_rec := FTE_ACTION_OUT_REC(
5537 x_result_id_tab,x_valid_id_tab,null,null,null,null,null,null);
5538
5539 IF l_debug_on THEN
5540 WSH_DEBUG_SV.pop(l_module_name);
5541 END IF;
5542
5543
5544 EXCEPTION
5545 WHEN FND_API.G_EXC_ERROR THEN
5546 ROLLBACK TO EXCEPTION_ACTION_PUB;
5547 x_return_status := FND_API.G_RET_STS_ERROR;
5548 FND_MSG_PUB.Count_And_Get
5549 (
5550 p_count => x_msg_count,
5551 p_data => x_msg_data,
5552 p_encoded => FND_API.G_FALSE
5553 );
5554
5555 IF l_debug_on THEN
5556 WSH_DEBUG_SV.pop(l_module_name);
5557 END IF;
5558 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
5559 ROLLBACK TO EXCEPTION_ACTION_PUB;
5560 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
5561 FND_MSG_PUB.Count_And_Get
5562 (
5563 p_count => x_msg_count,
5564 p_data => x_msg_data,
5565 p_encoded => FND_API.G_FALSE
5566 );
5567 IF l_debug_on THEN
5568 WSH_DEBUG_SV.pop(l_module_name);
5569 END IF;
5570 WHEN OTHERS THEN
5571 ROLLBACK TO EXCEPTION_ACTION_PUB;
5572 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
5573 FND_MSG_PUB.Count_And_Get
5574 (
5575 p_count => x_msg_count,
5576 p_data => x_msg_data,
5577 p_encoded => FND_API.G_FALSE
5578 );
5579 IF l_debug_on THEN
5580 WSH_DEBUG_SV.pop(l_module_name);
5581 END IF;
5582 END EXCEPTION_ACTION;
5583
5584 --
5585 --
5586 --========================================================================
5587 -- PROCEDURE : Group_Detail_Search_Dlvy FTE wrapper
5588 -- DESC: Procedure calls WSH api to group details
5589 -- and search for matching segments.
5590 --========================================================================
5591 --
5592 PROCEDURE GROUP_DETAIL_SEARCH_DLVY
5593 ( p_api_version_number IN NUMBER,
5594 p_init_msg_list IN VARCHAR2,
5595 p_commit IN VARCHAR2,
5596 p_id_tab IN FTE_ID_TAB_TYPE,
5597 x_return_status OUT NOCOPY VARCHAR2,
5598 x_msg_count OUT NOCOPY NUMBER,
5599 x_msg_data OUT NOCOPY VARCHAR2
5600 )IS
5601
5602 l_id_attr_tab WSH_DELIVERY_AUTOCREATE.GRP_ATTR_TAB_TYPE; -- DetailIdTab
5603 l_id_attr_rec WSH_DELIVERY_AUTOCREATE.GRP_ATTR_REC_TYPE; -- DetailIdRec
5604 l_id_entity_tab WSH_UTIL_CORE.ID_TAB_TYPE; -- MatchingIdTab
5605 l_action_rec WSH_DELIVERY_AUTOCREATE.ACTION_REC_TYPE; -- ActionOutRec
5606 l_out_rec WSH_DELIVERY_AUTOCREATE.OUT_REC_TYPE; -- OutRecType
5607 l_targ_attr_rec WSH_DELIVERY_AUTOCREATE.GRP_ATTR_REC_TYPE; -- TargetIdRec
5608 l_grp_attr_tab WSH_DELIVERY_AUTOCREATE.GRP_ATTR_TAB_TYPE; -- GroupIdTab
5609 --
5610 l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
5611 --
5612 l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME || '.' || 'GROUP_DETAIL_SEARCH_DLVY';
5613
5614
5615 BEGIN
5616
5617 SAVEPOINT GROUP_DETAIL_SEARCH_DLVY_PUB;
5618
5619 -- Initialize message list if p_init_msg_list is set to FALSE.
5620 --
5621 --
5622 IF FND_API.to_Boolean( p_init_msg_list )
5623 THEN
5624 FND_MSG_PUB.initialize;
5625 END IF;
5626 --
5627 --
5628 -- Initialize API return status to success
5629 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
5630 x_msg_count := 0;
5631 x_msg_data := 0;
5632
5633 IF l_debug_on THEN
5634 wsh_debug_sv.push(l_module_name);
5635 END IF;
5636
5637 -- Create DetailIdTab
5638 FOR i IN p_id_tab.FIRST..p_id_tab.LAST LOOP
5639 -- Create DetailIdRec
5640 l_id_attr_rec.entity_id := p_id_tab(i);
5641 l_id_attr_rec.entity_type := 'DELIVERY_DETAIL';
5642 l_id_attr_tab(i) := l_id_attr_rec;
5643 END LOOP;
5644
5645 -- Create ActionRecType
5646 l_action_rec.action := 'MATCH_GROUPS';
5647 l_action_rec.caller := G_PKG_NAME;
5648 l_action_rec.output_format_type := 'TEMP_TAB';
5649 -- l_action_rec.output_entity_type := 'DELIVERY';
5650 l_action_rec.check_single_grp := 'N';
5651
5652 -- Create targetRecType
5653 l_targ_attr_rec.entity_type := 'DELIVERY';
5654
5655 -- Call WSH's grouping API
5656 WSH_DELIVERY_AUTOCREATE.Find_Matching_Groups(
5657 p_attr_tab => l_id_attr_tab,
5658 p_action_rec => l_action_rec,
5659 p_target_rec => l_targ_attr_rec,
5660 p_group_tab => l_grp_attr_tab,
5661 x_matched_entities => l_id_entity_tab,
5662 x_out_rec => l_out_rec,
5663 x_return_status => x_return_status
5664 );
5665
5666 -- Check output params
5667 IF (x_return_status = WSH_UTIL_CORE.G_RET_STS_SUCCESS
5668 AND l_grp_attr_tab.count>1)
5669 THEN
5670 WSH_DELIVERY_AUTOCREATE.Reset_WSH_TMP;
5671 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
5672 FND_MESSAGE.SET_NAME('FTE','FTE_LINES_NOT_GROUPABLE');
5673 FND_MSG_PUB.ADD;
5674 ELSIF (x_return_status = WSH_UTIL_CORE.G_RET_STS_WARNING
5675 AND l_grp_attr_tab.count>1)
5676 THEN
5677 WSH_DELIVERY_AUTOCREATE.Reset_WSH_TMP;
5678 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
5679 FND_MESSAGE.SET_NAME('FTE','FTE_LINES_NOT_GROUPABLE');
5680 FND_MSG_PUB.ADD;
5681 ELSIF (x_return_status = WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR
5682 OR x_return_status = WSH_UTIL_CORE.G_RET_STS_ERROR)
5683 THEN
5684 WSH_DELIVERY_AUTOCREATE.Reset_WSH_TMP;
5685 END IF;
5686
5687 FND_MSG_PUB.Count_And_Get
5688 (
5689 p_count => x_msg_count,
5690 p_data => x_msg_data,
5691 p_encoded => FND_API.G_FALSE
5692 );
5693
5694 IF l_debug_on THEN
5695 WSH_DEBUG_SV.pop(l_module_name);
5696 END IF;
5697
5698 EXCEPTION
5699 WHEN FND_API.G_EXC_ERROR THEN
5700 ROLLBACK TO GROUP_DETAIL_SEARCH_DLVY_PUB;
5701 x_return_status := FND_API.G_RET_STS_ERROR;
5702 FND_MSG_PUB.Count_And_Get
5703 (
5704 p_count => x_msg_count,
5705 p_data => x_msg_data,
5706 p_encoded => FND_API.G_FALSE
5707 );
5708
5709 IF l_debug_on THEN
5710 WSH_DEBUG_SV.pop(l_module_name);
5711 END IF;
5712 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
5713 ROLLBACK TO GROUP_DETAIL_SEARCH_DLVY_PUB;
5714 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
5715 FND_MSG_PUB.Count_And_Get
5716 (
5717 p_count => x_msg_count,
5718 p_data => x_msg_data,
5719 p_encoded => FND_API.G_FALSE
5720 );
5721 IF l_debug_on THEN
5722 WSH_DEBUG_SV.pop(l_module_name);
5723 END IF;
5724 WHEN OTHERS THEN
5725 ROLLBACK TO GROUP_DETAIL_SEARCH_DLVY_PUB;
5726 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
5727 FND_MSG_PUB.Count_And_Get
5728 (
5729 p_count => x_msg_count,
5730 p_data => x_msg_data,
5731 p_encoded => FND_API.G_FALSE
5732 );
5733 IF l_debug_on THEN
5734 WSH_DEBUG_SV.pop(l_module_name);
5735 END IF;
5736 END GROUP_DETAIL_SEARCH_DLVY;
5737
5738 PROCEDURE Get_Disabled_List(
5739 p_entity_type IN VARCHAR2,
5740 p_entity_id IN NUMBER,
5741 p_parent_entity_id IN NUMBER DEFAULT NULL,
5742 x_disabled_list OUT NOCOPY FTE_NAME_TAB_TYPE,
5743 x_return_status OUT NOCOPY VARCHAR2,
5744 x_msg_count OUT NOCOPY NUMBER,
5745 x_msg_data OUT NOCOPY VARCHAR2
5746 ) IS
5747
5748 l_disabled_list wsh_util_core.column_tab_type;
5749 i NUMBER;
5750
5751
5752 --
5753 l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
5754 --
5755 l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME || '.' || 'Get_Disabled_List';
5756
5757
5758 BEGIN
5759
5760 IF l_debug_on
5761 THEN
5762 wsh_debug_sv.push(l_module_name);
5763 END IF;
5764
5765
5766 WSH_DATA_PROTECTION.Get_Disabled_List(
5767 p_api_version=> 1.0,
5768 p_entity_type=>p_entity_type,
5769 p_entity_id=>p_entity_id,
5770 p_parent_entity_id=>p_parent_entity_id,
5771 p_list_type=>'FORM',
5772 p_caller => 'FTE',
5773 x_disabled_list=>l_disabled_list,
5774 x_return_status=>x_return_status,
5775 x_msg_count=>x_msg_count,
5776 x_msg_data=> x_msg_data
5777 );
5778
5779 IF (l_debug_on)
5780 THEN
5781 WSH_DEBUG_SV.logmsg(l_module_name,' WSH GET DISABLED LIST :Status:'||x_return_status);
5782 WSH_DEBUG_SV.logmsg(l_module_name,' WSH GET DISABLED LIST ::message:'||x_msg_data);
5783 END IF;
5784
5785
5786
5787 IF ((l_disabled_list IS NOT NULL) AND (l_disabled_list.COUNT > 0) AND
5788 ((x_return_status <>WSH_UTIL_CORE.G_RET_STS_ERROR ) OR
5789 (x_return_status <>WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR)))
5790 THEN
5791 x_disabled_list:=FTE_NAME_TAB_TYPE('NULL');
5792 x_disabled_list.EXTEND(l_disabled_list.COUNT-1,1);
5793 i:=l_disabled_list.FIRST();
5794
5795 WHILE( i IS NOT NULL)
5796 LOOP
5797
5798 IF (l_debug_on)
5799 THEN
5800 WSH_DEBUG_SV.logmsg(l_module_name,' GET DISABLED LIST '||i||':'||l_disabled_list(i));
5801
5802 END IF;
5803 x_disabled_list(i):=l_disabled_list(i);
5804 i:=l_disabled_list.NEXT(i);
5805
5806 END LOOP;
5807
5808
5809
5810 END IF;
5811
5812 IF l_debug_on THEN
5813 WSH_DEBUG_SV.pop(l_module_name);
5814 END IF;
5815
5816 EXCEPTION
5817
5818 WHEN OTHERS THEN
5819
5820 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
5821 IF l_debug_on THEN
5822 WSH_DEBUG_SV.pop(l_module_name);
5823 END IF;
5824
5825 END Get_Disabled_List;
5826 --
5827 --
5828 --**************************************************************************
5829 -- Rel 12
5830 --***************************************************************************
5831 --========================================================================
5832 -- PROCEDURE : TRIP_ACTION Wrapper API PUBLIC
5833 -- Added for Rel 12
5834 --
5835 -- PARAMETERS: p_api_version_number known api version error number
5836 -- p_init_msg_list FND_API.G_TRUE to reset list
5837 -- x_return_status return status
5838 -- x_msg_count number of messages in the list
5839 -- x_msg_data text of messages
5840 -- x_action_out_rec Out rec based on actions.
5841 -- p_trip_info_rec table of trip id's
5842 -- p_action_prms Record of caller, phase, action_code and other
5843 -- parameters specific to the actions.
5844 -- VERSION : current version 1.0
5845 -- initial version 1.0
5846 --========================================================================
5847
5848 PROCEDURE Trip_Action
5849 ( p_api_version_number IN NUMBER,
5850 p_init_msg_list IN VARCHAR2,
5851 x_return_status OUT NOCOPY VARCHAR2,
5852 x_msg_count OUT NOCOPY NUMBER,
5853 x_msg_data OUT NOCOPY VARCHAR2,
5854 x_action_out_rec OUT NOCOPY FTE_ACTION_OUT_REC,
5855 p_trip_info_rec IN FTE_TENDER_ATTR_REC,
5856 p_action_prms IN FTE_TRIP_ACTION_PARAM_REC
5857 ) IS
5858
5859
5860
5861 -- Initial Variables
5862 l_return_status VARCHAR2(32767);
5863 l_msg_count NUMBER;
5864 l_msg_data VARCHAR2(32767);
5865 l_number_of_warnings NUMBER;
5866 l_number_of_errors NUMBER;
5867
5868 l_mbol_number VARCHAR2(32767);
5869 l_tender_action VARCHAR2(30);
5870 l_item_key VARCHAR2(240);
5871 l_trip_info_rec FTE_TENDER_ATTR_REC;
5872
5873 l_trip_id NUMBER;
5874 l_trip_name VARCHAR2(100);
5875 db_mode_of_transport VARCHAR2(30);
5876
5877 l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
5878
5879 l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME || '.' || 'TRIP_ACTION';
5880
5881 --{Trip update parameters
5882 p_trip_info_tab WSH_TRIPS_PVT.Trip_Attr_Tbl_Type;
5883 p_trip_info WSH_TRIPS_PVT.Trip_Rec_Type;
5884 p_trip_in_rec WSH_TRIPS_GRP.TripInRecType;
5885 x_out_tab WSH_TRIPS_GRP.trip_Out_tab_type;
5886 --}
5887 l_tmp VARCHAR2(100);
5888 l_db_sm_code VARCHAR2(30);
5889
5890 BEGIN
5891
5892 SAVEPOINT TRIP_ACTION_PUB;
5893
5894 -- Initialize message list if p_init_msg_list is set to TRUE.
5895 --
5896 --
5897
5898 IF FND_API.to_Boolean( p_init_msg_list )
5899 THEN
5900 FND_MSG_PUB.initialize;
5901 END IF;
5902 --
5903 --
5904 -- Initialize API return status to success
5905 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
5906 x_msg_count := 0;
5907 x_msg_data := 0;
5908 l_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
5909 l_number_of_warnings := 0;
5910 l_number_of_errors := 0;
5911
5912 IF l_debug_on
5913 THEN
5914 wsh_debug_sv.push(l_module_name);
5915 WSH_DEBUG_SV.logmsg(l_module_name,' Action to be performed ' || p_action_prms.action_code);
5916 END IF;
5917
5918
5919 l_tender_action := p_action_prms.action_code;
5920 --{
5921 --{ Call validate tender request to check the action
5922 FTE_TENDER_PVT.VALIDATE_TENDER_REQUEST(
5923 p_api_version_number => p_api_version_number,
5924 p_init_msg_list => FND_API.G_FALSE,
5925 x_return_status => l_return_status,
5926 x_msg_count => l_msg_count,
5927 x_msg_data => l_msg_data,
5928 p_trip_id => p_trip_info_rec.trip_id,
5929 p_action_code => 'UPDATE',
5930 p_tender_action => p_action_prms.action_code,
5931 p_trip_name => p_trip_info_rec.TRIP_NAME);
5932
5933 IF l_debug_on
5934 THEN
5935 WSH_DEBUG_SV.logmsg(l_module_name, ' VALIDATE_TENDER_REQUEST return status '
5936 || l_return_status, WSH_DEBUG_SV.C_PROC_LEVEL);
5937 END IF;
5938
5939
5940 wsh_util_core.api_post_call(
5941 p_return_status =>l_return_status,
5942 x_num_warnings =>l_number_of_warnings,
5943 x_num_errors =>l_number_of_errors,
5944 p_msg_data =>l_msg_data);
5945 --}
5946
5947 IF l_tender_action = FTE_TENDER_PVT.S_TENDERED THEN
5948 --{
5949
5950 l_item_key := FTE_TENDER_PVT.GET_ITEM_KEY(p_trip_info_rec.trip_id);
5951
5952 SELECT SHIP_METHOD_CODE,MODE_OF_TRANSPORT
5953 INTO l_db_sm_code,db_mode_of_transport FROM WSH_TRIPS
5954 WHERE TRIP_ID = p_trip_info_rec.trip_id;
5955
5956 l_trip_info_rec := FTE_TENDER_ATTR_REC(
5957 p_trip_info_rec.trip_id, -- TripId
5958 p_trip_info_rec.trip_name, -- Trip Name
5959 p_trip_info_rec.tender_id, --tender id
5960 FTE_TENDER_PVT.S_TENDERED, -- status
5961 p_trip_info_rec.car_contact_id,-- car_contact_id
5962 p_trip_info_rec.car_contact_name, -- car contact name
5963 null, -- auto_accept
5964 null, -- auto tender
5965 p_trip_info_rec.ship_wait_time, -- ship wait time
5966 p_trip_info_rec.ship_time_uom, -- ship time uom
5967 'FTETEREQ', -- wf name
5968 'TENDER_REQUEST_PROCESS', -- wf process name
5969 l_item_key, --wf item key
5970 null,null,null,null,null,null,null,null,null);
5971
5972 -- Update Trip information
5973 INITIALIZE_TRIP_REC(x_trip_info => p_trip_info);
5974
5975 p_trip_info.TRIP_ID := l_trip_info_rec.trip_id;
5976 p_trip_info.SHIP_METHOD_CODE := l_db_sm_code;--FND_API.G_MISS_CHAR;
5977 p_trip_info.shipper_wait_time := l_trip_info_rec.SHIP_WAIT_TIME;
5978 p_trip_info.wait_time_uom := l_trip_info_rec.SHIP_TIME_UOM;
5979 p_trip_info.wf_name := l_trip_info_rec.WF_NAME;
5980 p_trip_info.wf_process_name := l_trip_info_rec.wf_process_name;
5981 p_trip_info.wf_item_key := l_trip_info_rec.wf_item_key;
5982 p_trip_info.load_Tender_number := l_trip_info_rec.trip_id;
5983 p_trip_info.load_tender_status := FTE_TENDER_PVT.S_TENDERED;
5984 p_trip_info.carrier_contact_id := l_trip_info_rec.car_contact_id;
5985 p_trip_info.carrier_response := null;
5986 p_trip_info.carrier_reference_number := null;
5987 p_trip_info.operator := null;
5988 p_trip_info.load_Tendered_time := SYSDATE;
5989
5990 p_trip_info_tab(1) :=p_trip_info;
5991 p_trip_in_rec.caller :=G_PKG_NAME;
5992 p_trip_in_rec.phase :=NULL;
5993 p_trip_in_rec.action_code :='UPDATE';
5994
5995 WSH_INTERFACE_GRP.Create_Update_Trip
5996 (
5997 p_api_version_number =>p_api_version_number,
5998 p_init_msg_list =>FND_API.G_FALSE,
5999 p_commit =>FND_API.G_FALSE,
6000 x_return_status =>l_return_status,
6001 x_msg_count =>l_msg_count,
6002 x_msg_data =>l_msg_data,
6003 p_trip_info_tab =>p_trip_info_tab,
6004 p_in_rec =>p_trip_in_rec,
6005 x_out_tab =>x_out_tab
6006 );
6007
6008
6009 /**
6010 UPDATE WSH_TRIPS
6011 SET shipper_wait_time = l_trip_info_rec.SHIP_WAIT_TIME,
6012 wait_time_uom = l_trip_info_rec.SHIP_TIME_UOM,
6013 wf_name = l_trip_info_rec.wf_name,
6014 wf_process_name = l_trip_info_rec.wf_process_name,
6015 wf_item_key = l_trip_info_rec.wf_item_key,
6016 load_Tender_number = l_trip_info_rec.trip_id,
6017 load_tender_status = l_trip_info_rec.tender_status,
6018 carrier_contact_id = l_trip_info_rec.car_contact_id,
6019 carrier_response = null,
6020 carrier_reference_number = null,
6021 operator = null,
6022 load_Tendered_time = SYSDATE
6023 WHERE trip_id = l_trip_info_rec.trip_id;
6024 */
6025
6026
6027 IF l_debug_on
6028 THEN
6029 WSH_DEBUG_SV.logmsg(l_module_name,' WSH_INTERFACE_GRP.CREATE_UPDATE_TRIP return status '
6030 || l_return_status, WSH_DEBUG_SV.C_PROC_LEVEL);
6031 END IF;
6032
6033
6034 wsh_util_core.api_post_call(
6035 p_return_status =>l_return_status,
6036 x_num_warnings =>l_number_of_warnings,
6037 x_num_errors =>l_number_of_errors,
6038 p_msg_data =>l_msg_data);
6039
6040
6041 --{
6042 -- First get the MBOL Information for the trip
6043 IF (db_mode_of_transport = 'TRUCK')
6044 THEN
6045
6046 WSH_MBOLS_PVT.Generate_MBOL(p_trip_id => p_trip_info_rec.trip_id,
6047 x_sequence_number => l_mbol_number,
6048 x_return_status => l_return_status);
6049
6050 IF l_debug_on
6051 THEN
6052 WSH_DEBUG_SV.logmsg(l_module_name,' WSH_MBOLS_PVT.Generate_MBOL return status '
6053 || l_return_status, WSH_DEBUG_SV.C_PROC_LEVEL);
6054 END IF;
6055
6056
6057 IF ( (l_return_status = 'E') OR (l_return_status = 'U') )
6058 THEN
6059
6060 IF l_debug_on
6061 THEN
6062 WSH_DEBUG_SV.logmsg(l_module_name,' MBOL is not generated ');
6063 END IF;
6064 FND_MESSAGE.SET_NAME('FTE','FTE_MBOL_NOT_GENERATED');
6065 l_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
6066 WSH_UTIL_CORE.ADD_MESSAGE(l_return_status);
6067 END IF;
6068
6069 wsh_util_core.api_post_call(
6070 p_return_status =>l_return_status,
6071 x_num_warnings =>l_number_of_warnings,
6072 x_num_errors =>l_number_of_errors,
6073 p_msg_data =>l_msg_data);
6074
6075 END IF;
6076 --}
6077
6078 IF l_debug_on
6079 THEN
6080 WSH_DEBUG_SV.logmsg(l_module_name,' Call FTE_TENDER_PVT.RAISE_TENDER_EVENT ',
6081 WSH_DEBUG_SV.C_PROC_LEVEL);
6082 END IF;
6083
6084
6085 FTE_TENDER_PVT.RAISE_TENDER_EVENT(
6086 p_init_msg_list => FND_API.G_FALSE,
6087 x_return_status => l_return_status,
6088 x_msg_count => l_msg_count,
6089 x_msg_data => l_msg_data,
6090 p_trip_info => l_trip_info_rec,
6091 p_mbol_number => l_mbol_number);
6092
6093
6094 IF l_debug_on
6095 THEN
6096 WSH_DEBUG_SV.logmsg(l_module_name,' FTE_TENDER_PVT.RAISE_TENDER_EVENT '
6097 || l_return_status, WSH_DEBUG_SV.C_PROC_LEVEL);
6098 END IF;
6099
6100
6101 wsh_util_core.api_post_call(
6102 p_return_status =>l_return_status,
6103 x_num_warnings =>l_number_of_warnings,
6104 x_num_errors =>l_number_of_errors,
6105 p_msg_data =>l_msg_data);
6106
6107
6108
6109 --}
6110 ELSIF (l_tender_action = FTE_TENDER_PVT.S_ACCEPTED OR
6111 l_tender_action = FTE_TENDER_PVT.S_REJECTED) THEN
6112 --{
6113
6114 IF l_debug_on
6115 THEN
6116 WSH_DEBUG_SV.logmsg(l_module_name,' Action ' || l_tender_action,
6117 WSH_DEBUG_SV.C_PROC_LEVEL);
6118 END IF;
6119
6120
6121 select wf_item_key into l_item_key from wsh_trips
6122 where trip_id = p_trip_info_rec.trip_id;
6123
6124 IF (l_tender_action = FTE_TENDER_PVT.S_REJECTED) THEN
6125 l_trip_info_rec := FTE_TENDER_ATTR_REC(
6126 p_trip_info_rec.trip_id, -- TripId
6127 p_trip_info_rec.trip_name, -- Trip Name
6128 p_trip_info_rec.trip_id, --tender id
6129 FTE_TENDER_PVT.S_REJECTED, -- status
6130 null,-- car_contact_id
6131 null, -- car contact name
6132 null, -- auto_accept
6133 null, -- auto tender
6134 null, -- ship wait time
6135 null, -- ship time uom
6136 'FTETERES', -- wf name
6137 'TENDER_REJECT_PROCESS', -- wf process name
6138 l_item_key, --wf item key
6139 p_trip_info_rec.remarks,
6140 null,null,null,null,
6141 null,null,
6142 p_trip_info_rec.response_source,null);
6143 ELSIF (l_tender_action = FTE_TENDER_PVT.S_ACCEPTED) THEN
6144 l_trip_info_rec := FTE_TENDER_ATTR_REC(
6145 p_trip_info_rec.trip_id, -- TripId
6146 p_trip_info_rec.trip_name, -- Trip Name
6147 p_trip_info_rec.trip_id, --tender id
6148 FTE_TENDER_PVT.S_ACCEPTED, -- status
6149 null,-- car_contact_id
6150 null, -- car contact name
6151 null, -- auto_accept
6152 null, -- auto tender
6153 null, -- ship wait time
6154 null, -- ship time uom
6155 'FTETERES', -- wf name
6156 'TENDER_ACCEPT_PROCESS', -- wf process name
6157 l_item_key, --wf item key
6158 p_trip_info_rec.REMARKS,
6159 p_trip_info_rec.CARRIER_PICKUP_DATE,
6160 p_trip_info_rec.CARRIER_DROPOFF_DATE,
6161 p_trip_info_rec.VEHICLE_NUMBER,
6162 p_trip_info_rec.OPERATOR,
6163 p_trip_info_rec.CARRIER_REF_NUMBER,null,
6164 p_trip_info_rec.response_source,null);
6165 END IF;
6166
6167
6168
6169 FTE_TENDER_PVT.HANDLE_TENDER_RESPONSE(
6170 p_init_msg_list => FND_API.G_FALSE,
6171 x_return_status => l_return_status,
6172 x_msg_count => l_msg_count,
6173 x_msg_data => l_msg_data,
6174 p_trip_info => l_trip_info_rec);
6175
6176 wsh_util_core.api_post_call(
6177 p_return_status =>l_return_status,
6178 x_num_warnings =>l_number_of_warnings,
6179 x_num_errors =>l_number_of_errors,
6180 p_msg_data =>l_msg_data);
6181 --}
6182 ELSIF (l_tender_action = FTE_TENDER_PVT.S_NORESPONSE) THEN
6183 --{
6184
6185 IF l_debug_on
6186 THEN
6187 WSH_DEBUG_SV.logmsg(l_module_name,' No Response call',
6188 WSH_DEBUG_SV.C_PROC_LEVEL);
6189 END IF;
6190
6191 INITIALIZE_TRIP_REC(x_trip_info => p_trip_info);
6192
6193 -- Update trip information
6194 p_trip_info.TRIP_ID := p_trip_info_rec.trip_id;
6195 p_trip_info.wf_name := p_trip_info_rec.WF_NAME;
6196 p_trip_info.wf_process_name := p_trip_info_rec.wf_process_name;
6197 p_trip_info.wf_item_key := p_trip_info_rec.wf_item_key;
6198 p_trip_info.load_Tender_number := p_trip_info_rec.tender_id;
6199 p_trip_info.load_tender_status := FTE_TENDER_PVT.S_NORESPONSE;
6200
6201 p_trip_info_tab(1) :=p_trip_info;
6202 p_trip_in_rec.caller :=G_PKG_NAME;
6203 p_trip_in_rec.phase :=NULL;
6204 p_trip_in_rec.action_code :='UPDATE';
6205
6206 IF l_debug_on
6207 THEN
6208 WSH_DEBUG_SV.logmsg(l_module_name,' Trip Id ' || p_trip_info.TRIP_ID,
6209 WSH_DEBUG_SV.C_PROC_LEVEL);
6210 END IF;
6211
6212
6213 WSH_INTERFACE_GRP.Create_Update_Trip
6214 (
6215 p_api_version_number =>p_api_version_number,
6216 p_init_msg_list =>FND_API.G_FALSE,
6217 p_commit =>FND_API.G_FALSE,
6218 x_return_status =>l_return_status,
6219 x_msg_count =>l_msg_count,
6220 x_msg_data =>l_msg_data,
6221 p_trip_info_tab =>p_trip_info_tab,
6222 p_in_rec =>p_trip_in_rec,
6223 x_out_tab =>x_out_tab
6224 );
6225
6226 IF l_debug_on
6227 THEN
6228 WSH_DEBUG_SV.logmsg(l_module_name,' REturn value from Create update trip ' ||
6229 l_return_status,
6230 WSH_DEBUG_SV.C_PROC_LEVEL);
6231 END IF;
6232
6233 wsh_util_core.api_post_call(
6234 p_return_status =>l_return_status,
6235 x_num_warnings =>l_number_of_warnings,
6236 x_num_errors =>l_number_of_errors,
6237 p_msg_data =>l_msg_data);
6238
6239 ELSIF (l_tender_action = FTE_TENDER_PVT.S_AUTO_ACCEPTED) THEN
6240 --{
6241
6242 IF l_debug_on
6243 THEN
6244 WSH_DEBUG_SV.logmsg(l_module_name,' Autoaccept call ',
6245 WSH_DEBUG_SV.C_PROC_LEVEL);
6246 END IF;
6247
6248 INITIALIZE_TRIP_REC(x_trip_info => p_trip_info);
6249
6250 -- Update trip information
6251 p_trip_info.TRIP_ID := p_trip_info_rec.trip_id;
6252 p_trip_info.wf_name := p_trip_info_rec.WF_NAME;
6253 p_trip_info.wf_process_name := p_trip_info_rec.wf_process_name;
6254 p_trip_info.wf_item_key := p_trip_info_rec.wf_item_key;
6255 p_trip_info.load_Tender_number := p_trip_info_rec.tender_id;
6256 p_trip_info.load_tender_status := FTE_TENDER_PVT.S_AUTO_ACCEPTED;
6257
6258 p_trip_info_tab(1) :=p_trip_info;
6259 p_trip_in_rec.caller :=G_PKG_NAME;
6260 p_trip_in_rec.phase :=NULL;
6261 p_trip_in_rec.action_code :='UPDATE';
6262
6263 IF l_debug_on
6264 THEN
6265 WSH_DEBUG_SV.logmsg(l_module_name,' Trip Id ' || p_trip_info.TRIP_ID,
6266 WSH_DEBUG_SV.C_PROC_LEVEL);
6267 END IF;
6268
6269
6270 WSH_INTERFACE_GRP.Create_Update_Trip
6271 (
6272 p_api_version_number =>p_api_version_number,
6273 p_init_msg_list =>FND_API.G_FALSE,
6274 p_commit =>FND_API.G_FALSE,
6275 x_return_status =>l_return_status,
6276 x_msg_count =>l_msg_count,
6277 x_msg_data =>l_msg_data,
6278 p_trip_info_tab =>p_trip_info_tab,
6279 p_in_rec =>p_trip_in_rec,
6280 x_out_tab =>x_out_tab
6281 );
6282
6283 IF l_debug_on
6284 THEN
6285 WSH_DEBUG_SV.logmsg(l_module_name,' REturn value from Create update trip ' ||
6286 l_return_status,
6287 WSH_DEBUG_SV.C_PROC_LEVEL);
6288 END IF;
6289
6290 wsh_util_core.api_post_call(
6291 p_return_status =>l_return_status,
6292 x_num_warnings =>l_number_of_warnings,
6293 x_num_errors =>l_number_of_errors,
6294 p_msg_data =>l_msg_data);
6295
6296 ELSIF (l_tender_action = FTE_TENDER_PVT.S_SHIPPER_CANCELLED) THEN
6297 --{
6298
6299 IF l_debug_on
6300 THEN
6301 WSH_DEBUG_SV.logmsg(l_module_name,' Action ' || l_tender_action,
6302 WSH_DEBUG_SV.C_PROC_LEVEL);
6303 END IF;
6304
6305
6306 select wf_item_key into l_item_key from wsh_trips
6307 where trip_id = p_trip_info_rec.trip_id;
6308
6309 l_trip_info_rec := FTE_TENDER_ATTR_REC(
6310 p_trip_info_rec.trip_id, -- TripId
6311 p_trip_info_rec.trip_name, -- Trip Name
6312 p_trip_info_rec.trip_id, --tender id
6313 FTE_TENDER_PVT.S_SHIPPER_CANCELLED, -- status
6314 null,-- car_contact_id
6315 null, -- car contact name
6316 null, -- auto_accept
6317 null, -- auto tender
6318 null, -- ship wait time
6319 null, -- ship time uom
6320 'FTETESCA', -- wf name
6321 'TENDER_CANCEL_PROCESS', -- wf process name
6322 l_item_key, --wf item key
6323 null,
6324 null,null,null,null,
6325 null,null,
6326 p_trip_info_rec.response_source,null);
6327
6328 FTE_TENDER_PVT.HANDLE_CANCEL_TENDER(
6329 p_init_msg_list => FND_API.G_FALSE,
6330 x_return_status => l_return_status,
6331 x_msg_count => l_msg_count,
6332 x_msg_data => l_msg_data,
6333 p_trip_info => l_trip_info_rec);
6334
6335 wsh_util_core.api_post_call(
6336 p_return_status =>l_return_status,
6337 x_num_warnings =>l_number_of_warnings,
6338 x_num_errors =>l_number_of_errors,
6339 p_msg_data =>l_msg_data);
6340
6341 --}
6342 ELSIF (l_tender_action = FTE_TENDER_PVT.S_SHIPPER_UPDATED) THEN
6343 --{
6344
6345 IF l_debug_on
6346 THEN
6347 WSH_DEBUG_SV.logmsg(l_module_name,' Action ' || l_tender_action,
6348 WSH_DEBUG_SV.C_PROC_LEVEL);
6349 END IF;
6350
6351
6352 select wf_item_key into l_item_key from wsh_trips
6353 where trip_id = p_trip_info_rec.trip_id;
6354
6355 l_trip_info_rec := FTE_TENDER_ATTR_REC(
6356 p_trip_info_rec.trip_id, -- TripId
6357 p_trip_info_rec.trip_name, -- Trip Name
6358 p_trip_info_rec.trip_id, --tender id
6359 FTE_TENDER_PVT.S_SHIPPER_UPDATED, -- status
6360 null,-- car_contact_id
6361 null, -- car contact name
6362 null, -- auto_accept
6363 null, -- auto tender
6364 null, -- ship wait time
6365 null, -- ship time uom
6366 'FTETEREQ', -- wf name
6367 'TENDER_UPDATE_PROCESS', -- wf process name
6368 l_item_key, --wf item key
6369 null,
6370 null,null,null,null,
6371 null,null,
6372 null,null);
6373
6374
6375 FTE_TENDER_PVT.HANDLE_UPDATE_TENDER(
6376 p_init_msg_list => FND_API.G_FALSE,
6377 x_return_status => l_return_status,
6378 x_msg_count => l_msg_count,
6379 x_msg_data => l_msg_data,
6380 p_trip_info => l_trip_info_rec);
6381
6382 wsh_util_core.api_post_call(
6383 p_return_status =>l_return_status,
6384 x_num_warnings =>l_number_of_warnings,
6385 x_num_errors =>l_number_of_errors,
6386 p_msg_data =>l_msg_data);
6387
6388 --}
6389 END IF;
6390
6391 IF l_number_of_errors > 0
6392 THEN
6393 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
6394 RAISE FND_API.G_EXC_ERROR;
6395 ELSIF l_number_of_warnings > 0 THEN
6396 x_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
6397 ELSE
6398 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
6399 END IF;
6400
6401
6402 FND_MSG_PUB.Count_And_Get
6403 (
6404 p_count => x_msg_count,
6405 p_data => x_msg_data,
6406 p_encoded => FND_API.G_FALSE
6407 );
6408
6409
6410 IF l_debug_on THEN
6411 WSH_DEBUG_SV.pop(l_module_name);
6412 END IF;
6413
6414
6415 EXCEPTION
6416 WHEN FND_API.G_EXC_ERROR THEN
6417 ROLLBACK TO TRIP_ACTION_PUB;
6418 x_return_status := FND_API.G_RET_STS_ERROR;
6419 FND_MSG_PUB.Count_And_Get
6420 (
6421 p_count => x_msg_count,
6422 p_data => x_msg_data,
6423 p_encoded => FND_API.G_FALSE
6424 );
6425
6426 IF l_debug_on THEN
6427 WSH_DEBUG_SV.pop(l_module_name);
6428 END IF;
6429 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
6430 ROLLBACK TO TRIP_ACTION_PUB;
6431 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
6432 FND_MSG_PUB.Count_And_Get
6433 (
6434 p_count => x_msg_count,
6435 p_data => x_msg_data,
6436 p_encoded => FND_API.G_FALSE
6437 );
6438 IF l_debug_on THEN
6439 WSH_DEBUG_SV.pop(l_module_name);
6440 END IF;
6441 WHEN OTHERS THEN
6442 ROLLBACK TO TRIP_ACTION_PUB;
6443 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
6444 FND_MSG_PUB.Count_And_Get
6445 (
6446 p_count => x_msg_count,
6447 p_data => x_msg_data,
6448 p_encoded => FND_API.G_FALSE
6449 );
6450 IF l_debug_on THEN
6451 wsh_debug_sv.log (l_module_name,'Error',substr(sqlerrm,1,200));
6452 WSH_DEBUG_SV.pop(l_module_name);
6453 END IF;
6454 END Trip_Action;
6455 --
6456 --***************************************************************************
6457 --========================================================================
6458 -- PROCEDURE : TRIP_ACTION Wrapper API PUBLIC
6459 -- Added for Rel 12
6460 --
6461 -- PARAMETERS: p_api_version_number known api version error number
6462 -- p_init_msg_list FND_API.G_TRUE to reset list
6463 -- x_return_status return status
6464 -- x_msg_count number of messages in the list
6465 -- x_msg_data text of messages
6466 -- x_action_out_rec Out rec based on actions.
6467 -- p_tripId trip id
6468 -- p_action_prms Record of caller, phase, action_code and other
6469 -- parameters specific to the actions.
6470 -- VERSION : current version 1.0
6471 -- initial version 1.0
6472 --========================================================================
6473 PROCEDURE Trip_Action
6474 ( p_api_version_number IN NUMBER,
6475 p_init_msg_list IN VARCHAR2,
6476 x_return_status OUT NOCOPY VARCHAR2,
6477 x_msg_count OUT NOCOPY NUMBER,
6478 x_msg_data OUT NOCOPY VARCHAR2,
6479 x_action_out_rec OUT NOCOPY FTE_ACTION_OUT_REC,
6480 p_tripId IN NUMBER,
6481 p_action_prms IN FTE_TRIP_ACTION_PARAM_REC
6482 )
6483 IS
6484 -- Initial Variables
6485 l_return_status VARCHAR2(32767);
6486 l_msg_count NUMBER;
6487 l_msg_data VARCHAR2(32767);
6488 l_number_of_warnings NUMBER;
6489 l_number_of_errors NUMBER;
6490
6491 l_trip_id_tab FTE_ID_TAB_TYPE;
6492
6493
6494
6495 l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
6496
6497 l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME || '.' || 'TRIP_ACTION';
6498
6499
6500 BEGIN
6501
6502 SAVEPOINT TRIP_ACTION_PUB;
6503
6504 -- This procedure will try to load trip information and call
6505 -- TRIP_ACTION procedure with trip_rec. Since shipper wait time and
6506 -- other values are not updated by calling application,
6507 -- we are going to default them from the first
6508 -- found carrier site.
6509 IF FND_API.to_Boolean( p_init_msg_list )
6510 THEN
6511 FND_MSG_PUB.initialize;
6512 END IF;
6513 --
6514 --
6515 -- Initialize API return status to success
6516 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
6517 x_msg_count := 0;
6518 x_msg_data := 0;
6519 l_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
6520 l_number_of_warnings := 0;
6521 l_number_of_errors := 0;
6522
6523 IF l_debug_on
6524 THEN
6525 wsh_debug_sv.push(l_module_name);
6526 WSH_DEBUG_SV.logmsg(l_module_name,' Action to be performed ' || p_action_prms.action_code);
6527 END IF;
6528
6529
6530 IF p_action_prms.action_code = FTE_TENDER_PVT.S_TENDERED THEN
6531 --{
6532 l_trip_id_tab := FTE_ID_TAB_TYPE();
6533 l_trip_id_tab.EXTEND;
6534 l_trip_id_tab(l_trip_id_tab.COUNT) := p_tripId;
6535
6536 FTE_MLS_WRAPPER.TENDER_TRIPS
6537 ( p_api_version_number => 1.0,
6538 p_init_msg_list => FND_API.G_FALSE,
6539 p_trip_id_tab => l_trip_id_tab,
6540 p_caller => 'BE', --Back end
6541 x_action_out_rec => x_action_out_rec,
6542 x_return_status => l_return_status,
6543 x_msg_count => l_msg_count,
6544 x_msg_data => l_msg_data);
6545
6546 IF l_debug_on THEN
6547 WSH_DEBUG_SV.logmsg(l_module_name,' return status from TENDER_TRIPS ' || l_return_status);
6548 END IF;
6549
6550 --}
6551 END IF;
6552
6553 wsh_util_core.api_post_call(
6554 p_return_status =>l_return_status,
6555 x_num_warnings =>l_number_of_warnings,
6556 x_num_errors =>l_number_of_errors,
6557 p_msg_data =>l_msg_data);
6558
6559
6560 IF l_number_of_errors > 0
6561 THEN
6562 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
6563 RAISE FND_API.G_EXC_ERROR;
6564 ELSIF l_number_of_warnings > 0 THEN
6565 x_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
6566 ELSE
6567 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
6568 END IF;
6569
6570
6571 FND_MSG_PUB.Count_And_Get
6572 (
6573 p_count => x_msg_count,
6574 p_data => x_msg_data,
6575 p_encoded => FND_API.G_FALSE
6576 );
6577
6578 IF l_debug_on THEN
6579 WSH_DEBUG_SV.pop(l_module_name);
6580 END IF;
6581
6582
6583 EXCEPTION
6584 WHEN FND_API.G_EXC_ERROR THEN
6585 ROLLBACK TO TRIP_ACTION_PUB;
6586 x_return_status := FND_API.G_RET_STS_ERROR;
6587 FND_MSG_PUB.Count_And_Get
6588 (
6589 p_count => x_msg_count,
6590 p_data => x_msg_data,
6591 p_encoded => FND_API.G_FALSE
6592 );
6593
6594 IF l_debug_on THEN
6595 WSH_DEBUG_SV.pop(l_module_name);
6596 END IF;
6597 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
6598 ROLLBACK TO TRIP_ACTION_PUB;
6599 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
6600 FND_MSG_PUB.Count_And_Get
6601 (
6602 p_count => x_msg_count,
6603 p_data => x_msg_data,
6604 p_encoded => FND_API.G_FALSE
6605 );
6606 IF l_debug_on THEN
6607 WSH_DEBUG_SV.pop(l_module_name);
6608 END IF;
6609 WHEN OTHERS THEN
6610 ROLLBACK TO TRIP_ACTION_PUB;
6611 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
6612 FND_MSG_PUB.Count_And_Get
6613 (
6614 p_count => x_msg_count,
6615 p_data => x_msg_data,
6616 p_encoded => FND_API.G_FALSE
6617 );
6618 IF l_debug_on THEN
6619 wsh_debug_sv.log (l_module_name,'Error',substr(sqlerrm,1,200));
6620 WSH_DEBUG_SV.pop(l_module_name);
6621 END IF;
6622 END TRIP_ACTION;
6623 --========================================================================
6624 -- PROCEDURE : UPDATE_SERVICE_TO_TRIP FTE wrapper
6625 --
6626 -- COMMENT : Procedure updates trip with new service by calling
6627 -- FTE_MLS_WRAPPER and raises appropriate select service
6628 -- or cancel service event.
6629 -- ORIG CALLER : FTE_UI: TripWB, DeliveryWB, ManageItinerary
6630 --
6631 -- SERVICE_ACTION: 'UPDATE' means overwriting existing service.
6632 -- 'ADD_NEW' means assigning new service.
6633 -- 'REMOVE' means user is canceling service
6634 -- DELIVERY_LEG_ID: If this value is populated, it means it is coming
6635 -- Manage Itinerary
6636 -- TRIP_ID: If this value is populated and both DELIVERY_ID,
6637 -- DELIVERY_LEG_ID are NULL, it means it is coming from TWB
6638 --========================================================================
6639 --
6640 --
6641 PROCEDURE UPDATE_SERVICE_ON_TRIP
6642 (
6643 p_API_VERSION_NUMBER IN NUMBER,
6644 p_INIT_MSG_LIST IN VARCHAR2,
6645 p_COMMIT IN VARCHAR2,
6646 p_CALLER IN VARCHAR2,
6647 p_SERVICE_ACTION IN VARCHAR2,
6648 p_DELIVERY_ID IN NUMBER,
6649 p_DELIVERY_LEG_ID IN NUMBER,
6650 p_TRIP_ID IN NUMBER,
6651 p_LANE_ID IN NUMBER,
6652 p_SCHEDULE_ID IN NUMBER,
6653 p_CARRIER_ID IN NUMBER,
6654 p_SERVICE_LEVEL IN VARCHAR2,
6655 p_MODE_OF_TRANSPORT IN VARCHAR2,
6656 p_VEHICLE_ITEM_ID IN NUMBER,
6657 p_VEHICLE_ORG_ID IN NUMBER,
6658 p_CONSIGNEE_CARRIER_AC_NO IN VARCHAR2,
6659 p_FREIGHT_TERMS_CODE IN VARCHAR2,
6660 x_RETURN_STATUS OUT NOCOPY VARCHAR2,
6661 x_MSG_COUNT OUT NOCOPY NUMBER,
6662 x_MSG_DATA OUT NOCOPY VARCHAR2
6663 )
6664 IS
6665 l_ret_trip_id NUMBER;
6666 l_ret_trip_name VARCHAR2(30);
6667
6668 l_number_of_warnings NUMBER;
6669 l_number_of_errors NUMBER;
6670 l_return_status VARCHAR2(32767);
6671 l_msg_count NUMBER;
6672 l_msg_data VARCHAR2(32767);
6673 l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
6674 l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.'|| G_PKG_NAME ||'.'||'UPDATE_SERVICE_ON_TRIP';
6675
6676 BEGIN
6677
6678 SAVEPOINT UPD_SERV_ON_TRIP_PUB;
6679
6680
6681 -- Initialize message list if p_init_msg_list is set to TRUE.
6682 --
6683 --IF FND_API.to_Boolean( p_init_msg_list )
6684 --THEN
6685 FND_MSG_PUB.initialize;
6686 --END IF;
6687 --
6688 IF l_debug_on THEN
6689 wsh_debug_sv.push(l_module_name);
6690 END IF;
6691 --
6692 l_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
6693 l_msg_count := 0;
6694
6695 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
6696 x_msg_count := 0;
6697 --
6698
6699 IF l_debug_on THEN
6700 WSH_DEBUG_SV.logmsg(l_module_name, 'Service Action:'||p_service_action);
6701 END IF;
6702
6703 -- Step 1. First update service on the trip
6704 CREATE_UPDATE_TRIP(
6705 p_api_version_number => 1.0,
6706 p_init_msg_list => FND_API.G_FALSE,
6707 x_return_status => l_return_status,
6708 x_msg_count => l_msg_count,
6709 x_msg_data => l_msg_data,
6710 x_trip_id => l_ret_trip_id,
6711 x_trip_name => l_ret_trip_name,
6712 p_action_code => 'UPDATE',
6713 p_rec_TRIP_ID => p_trip_id,
6714 p_rec_LANE_ID => p_lane_id,
6715 p_rec_SCHEDULE_ID => p_schedule_id,
6716 p_rec_CARRIER_ID => p_carrier_id,
6717 p_rec_SERVICE_LEVEL => p_service_level,
6718 p_rec_MODE_OF_TRANSPORT => p_mode_of_transport,
6719 p_rec_SHIP_METHOD_CODE => NULL,
6720 p_rec_VEHICLE_ORGANIZATION_ID => p_vehicle_org_id,
6721 p_rec_VEHICLE_ITEM_ID => p_vehicle_item_id,
6722 p_rec_CONSIGNEE_CAR_AC_NO => p_CONSIGNEE_CARRIER_AC_NO,
6723 p_rec_FREIGHT_TERMS_CODE => p_FREIGHT_TERMS_CODE);
6724
6725 WSH_UTIL_CORE.API_POST_CALL(
6726 p_return_status =>l_return_status,
6727 x_num_warnings =>l_number_of_warnings,
6728 x_num_errors =>l_number_of_errors,
6729 p_msg_data =>l_msg_data);
6730
6731 IF l_debug_on THEN
6732 WSH_DEBUG_SV.logmsg(l_module_name, 'API:FTE_MLS_WRAPPER.CREATE_UPD_TRIP');
6733 WSH_DEBUG_SV.logmsg(l_module_name, 'l_return_status:'||l_return_status);
6734 WSH_DEBUG_SV.logmsg(l_module_name, 'l_number_of_warnings:'||l_number_of_warnings);
6735 WSH_DEBUG_SV.logmsg(l_module_name, 'l_number_of_errors:'||l_number_of_errors);
6736 WSH_DEBUG_SV.logmsg(l_module_name, 'l_msg_data:'||l_msg_data);
6737 END IF;
6738
6739 -- Step 2:Raise appropriate business events:
6740 -- If service action is UPDATE,
6741 -- raise a cancel service event first,
6742 -- then raise a select service event
6743 -- Else raise only a select service event
6744
6745 /* R12 Hiding Project
6746 IF l_debug_on THEN
6747 WSH_DEBUG_SV.logmsg(l_module_name, 'Service Action:'||p_service_action);
6748 END IF;
6749
6750 IF ( p_service_action = 'UPDATE' OR p_service_action = 'REMOVE') THEN
6751
6752 FTE_WORKFLOW_UTIL.TRIP_CANCEL_SERVICE(
6753 p_trip_id => p_trip_id,
6754 x_return_status => l_return_status);
6755
6756 WSH_UTIL_CORE.API_POST_CALL(
6757 p_return_status =>l_return_status,
6758 x_num_warnings =>l_number_of_warnings,
6759 x_num_errors =>l_number_of_errors,
6760 p_msg_data =>l_msg_data);
6761
6762 IF l_debug_on THEN
6763 WSH_DEBUG_SV.logmsg(l_module_name, 'API:FTE_WORKFLOW_UTIL: CANCEL SERVICE');
6764 WSH_DEBUG_SV.logmsg(l_module_name, 'l_return_status:'||l_return_status);
6765 WSH_DEBUG_SV.logmsg(l_module_name, 'l_number_of_warnings:'||l_number_of_warnings);
6766 WSH_DEBUG_SV.logmsg(l_module_name, 'l_number_of_errors:'||l_number_of_errors);
6767 WSH_DEBUG_SV.logmsg(l_module_name, 'l_msg_data:'||l_msg_data);
6768 END IF;
6769
6770 END IF;
6771
6772 IF (p_service_action = 'ADD_NEW' OR p_service_action = 'UPDATE') THEN
6773 IF l_debug_on THEN
6774 WSH_DEBUG_SV.logmsg(l_module_name, 'Raising Select Trip Service Event');
6775 END IF;
6776
6777 FTE_WORKFLOW_UTIL.TRIP_SELECT_SERVICE_INIT(
6778 p_trip_id => p_trip_id,
6779 x_return_status => l_return_status);
6780
6781 WSH_UTIL_CORE.API_POST_CALL(
6782 p_return_status =>l_return_status,
6783 x_num_warnings =>l_number_of_warnings,
6784 x_num_errors =>l_number_of_errors,
6785 p_msg_data =>l_msg_data);
6786
6787 IF l_debug_on THEN
6788 WSH_DEBUG_SV.logmsg(l_module_name, 'API:FTE_WORKFLOW_UTIL: SELECT SERVICE');
6789 WSH_DEBUG_SV.logmsg(l_module_name, 'l_return_status:'||l_return_status);
6790 WSH_DEBUG_SV.logmsg(l_module_name, 'l_number_of_warnings:'||l_number_of_warnings);
6791 WSH_DEBUG_SV.logmsg(l_module_name, 'l_number_of_errors:'||l_number_of_errors);
6792 WSH_DEBUG_SV.logmsg(l_module_name, 'l_msg_data:'||l_msg_data);
6793 END IF;
6794 END IF;
6795 */
6796
6797 IF l_number_of_errors > 0
6798 THEN
6799 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
6800 RAISE FND_API.G_EXC_ERROR;
6801 ELSIF l_number_of_warnings > 0 THEN
6802 x_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
6803 ELSE
6804 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
6805 END IF;
6806
6807 FND_MSG_PUB.Count_And_Get
6808 (
6809 p_count => x_msg_count,
6810 p_data => x_msg_data,
6811 p_encoded => FND_API.G_FALSE
6812 );
6813
6814 --
6815 EXCEPTION
6816 WHEN FND_API.G_EXC_ERROR THEN
6817 ROLLBACK TO UPD_SERV_ON_TRIP_PUB;
6818 x_return_status := FND_API.G_RET_STS_ERROR;
6819 FND_MSG_PUB.Count_And_Get
6820 (
6821 p_count => x_msg_count,
6822 p_data => x_msg_data,
6823 p_encoded => FND_API.G_FALSE
6824 );
6825 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
6826 ROLLBACK TO UPD_SERV_ON_TRIP_PUB;
6827 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
6828 FND_MSG_PUB.Count_And_Get
6829 (
6830 p_count => x_msg_count,
6831 p_data => x_msg_data,
6832 p_encoded => FND_API.G_FALSE
6833 );
6834 WHEN OTHERS THEN
6835 ROLLBACK TO UPD_SERV_ON_TRIP_PUB;
6836 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
6837 FND_MSG_PUB.Count_And_Get
6838 (
6839 p_count => x_msg_count,
6840 p_data => x_msg_data,
6841 p_encoded => FND_API.G_FALSE
6842 );
6843 END UPDATE_SERVICE_ON_TRIP;
6844 --
6845 PROCEDURE INITIALIZE_TRIP_REC(x_trip_info OUT NOCOPY WSH_TRIPS_PVT.Trip_Rec_Type)
6846 IS
6847
6848 p_trip_info WSH_TRIPS_PVT.Trip_Rec_Type;
6849
6850 BEGIN
6851
6852 p_trip_info.TRIP_ID := FND_API.G_MISS_NUM;
6853 p_trip_info.NAME := FND_API.G_MISS_CHAR;
6854 p_trip_info.ARRIVE_AFTER_TRIP_ID := FND_API.G_MISS_NUM;
6855 p_trip_info.ARRIVE_AFTER_TRIP_NAME := FND_API.G_MISS_CHAR;
6856 p_trip_info.VEHICLE_ITEM_ID := FND_API.G_MISS_NUM;
6857 p_trip_info.VEHICLE_ITEM_DESC := FND_API.G_MISS_CHAR;
6858 p_trip_info.VEHICLE_ORGANIZATION_ID := FND_API.G_MISS_NUM;
6859 p_trip_info.VEHICLE_ORGANIZATION_CODE := FND_API.G_MISS_CHAR;
6860 p_trip_info.VEHICLE_NUMBER := FND_API.G_MISS_CHAR;
6861 p_trip_info.VEHICLE_NUM_PREFIX := FND_API.G_MISS_CHAR;
6862 p_trip_info.CARRIER_ID := FND_API.G_MISS_NUM;
6863 p_trip_info.SHIP_METHOD_CODE := FND_API.G_MISS_CHAR;
6864 p_trip_info.SHIP_METHOD_NAME := FND_API.G_MISS_CHAR;
6865 p_trip_info.ROUTE_ID := FND_API.G_MISS_NUM;
6866 p_trip_info.ROUTING_INSTRUCTIONS := FND_API.G_MISS_CHAR;
6867 p_trip_info.ATTRIBUTE_CATEGORY := FND_API.G_MISS_CHAR;
6868 p_trip_info.ATTRIBUTE1 := FND_API.G_MISS_CHAR;
6869 p_trip_info.ATTRIBUTE2 := FND_API.G_MISS_CHAR;
6870 p_trip_info.ATTRIBUTE3 := FND_API.G_MISS_CHAR;
6871 p_trip_info.ATTRIBUTE4 := FND_API.G_MISS_CHAR;
6872 p_trip_info.ATTRIBUTE5 := FND_API.G_MISS_CHAR;
6873 p_trip_info.ATTRIBUTE6 := FND_API.G_MISS_CHAR;
6874 p_trip_info.ATTRIBUTE7 := FND_API.G_MISS_CHAR;
6875 p_trip_info.ATTRIBUTE8 := FND_API.G_MISS_CHAR;
6876 p_trip_info.ATTRIBUTE9 := FND_API.G_MISS_CHAR;
6877 p_trip_info.ATTRIBUTE10 := FND_API.G_MISS_CHAR;
6878 p_trip_info.ATTRIBUTE11 := FND_API.G_MISS_CHAR;
6879 p_trip_info.ATTRIBUTE12 := FND_API.G_MISS_CHAR;
6880 p_trip_info.ATTRIBUTE13 := FND_API.G_MISS_CHAR;
6881 p_trip_info.ATTRIBUTE14 := FND_API.G_MISS_CHAR;
6882 p_trip_info.ATTRIBUTE15 := FND_API.G_MISS_CHAR;
6883 p_trip_info.SERVICE_LEVEL := FND_API.G_MISS_CHAR;
6884 p_trip_info.MODE_OF_TRANSPORT := FND_API.G_MISS_CHAR;
6885 p_trip_info.CONSOLIDATION_ALLOWED := FND_API.G_MISS_CHAR;
6886 p_trip_info.PLANNED_FLAG := FND_API.G_MISS_CHAR;
6887 p_trip_info.STATUS_CODE := FND_API.G_MISS_CHAR;
6888 p_trip_info.FREIGHT_TERMS_CODE := FND_API.G_MISS_CHAR;
6889 p_trip_info.LOAD_TENDER_STATUS := FND_API.G_MISS_CHAR;
6890 p_trip_info.ROUTE_LANE_ID := FND_API.G_MISS_NUM;
6891 p_trip_info.LANE_ID := FND_API.G_MISS_NUM;
6892 p_trip_info.SCHEDULE_ID := FND_API.G_MISS_NUM;
6893 p_trip_info.BOOKING_NUMBER := FND_API.G_MISS_CHAR;
6894 p_trip_info.carrier_contact_id := FND_API.G_MISS_NUM;
6895 p_trip_info.shipper_wait_time := FND_API.G_MISS_NUM;
6896 p_trip_info.wait_time_uom := FND_API.G_MISS_CHAR;
6897 p_trip_info.wf_name := FND_API.G_MISS_CHAR;
6898 p_trip_info.wf_process_name := FND_API.G_MISS_CHAR;
6899 p_trip_info.wf_item_key := FND_API.G_MISS_CHAR;
6900 p_trip_info.load_tender_number := FND_API.G_MISS_NUM;
6901 p_trip_info.Load_tendered_time := FND_API.G_MISS_DATE;
6902 p_trip_info.carrier_response := FND_API.G_MISS_CHAR;
6903 p_trip_info.operator := FND_API.G_MISS_CHAR;
6904 p_trip_info.IGNORE_FOR_PLANNING := FND_API.G_MISS_CHAR;
6905 p_trip_info.CONSIGNEE_CARRIER_AC_NO := FND_API.G_MISS_CHAR;
6906 p_trip_info.CARRIER_REFERENCE_NUMBER := FND_API.G_MISS_CHAR;
6907 p_trip_info.ROUTING_RULE_ID := FND_API.G_MISS_NUM;
6908 p_trip_info.APPEND_FLAG := FND_API.G_MISS_CHAR;
6909 p_trip_info.RANK_ID := FND_API.G_MISS_NUM;
6910
6911 x_trip_info := p_trip_info;
6912
6913 END INITIALIZE_TRIP_REC;
6914
6915 --
6916 END FTE_MLS_WRAPPER;