1 PACKAGE BODY FTE_WORKFLOW_UTIL AS
2 /* $Header: FTEWKFUB.pls 120.3 2005/08/12 13:52:02 schennal noship $ */
3
4 --===================
5 -- PUBLIC VARIABLES
6 --===================
7 G_PKG_NAME CONSTANT VARCHAR2(30) := 'FTE_WORKFLOW_UTIL';
8
9 --========================================================================
10 -- CURSOR : Get_Trip_Deliveries
11 --
12 -- PARAMETERS: c_trip_id Trip Id
13 --
14 -- COMMENT : Gets the deliveries assigned to the trip.
15 --========================================================================
16 CURSOR Get_Trip_Deliveries(c_trip_id NUMBER)
17 IS
18 SELECT WDL.DELIVERY_ID
19 FROM WSH_TRIP_STOPS WTS, WSH_DELIVERY_LEGS WDL
20 WHERE WTS.STOP_ID = WDL.PICK_UP_STOP_ID
21 AND WTS.TRIP_ID = c_trip_id;
22
23 --========================================================================
24 -- CURSOR : Get_Dleg_Delivery
25 --
26 -- PARAMETERS: c_dleg_id Delivery Leg Id
27 --
28 -- COMMENT : Gets the delivery attached to the leg.
29 --========================================================================
30 CURSOR Get_Dleg_Delivery(c_dleg_id NUMBER)
31 IS
32 SELECT WDL.DELIVERY_ID
33 FROM WSH_DELIVERY_LEGS WDL
34 WHERE WDL.DELIVERY_LEG_ID = c_dleg_id;
35
36 --========================================================================
37 -- CURSOR : Get_Dleg_Trip
38 --
39 -- PARAMETERS: c_dleg_id Delivery Leg Id
40 --
41 -- COMMENT : Gets the trip to which the delivery leg is attached.
42 --========================================================================
43 CURSOR Get_Dleg_Trip(c_dleg_id NUMBER)
44 IS
45 SELECT WTS.TRIP_ID
46 FROM WSH_TRIP_STOPS WTS, WSH_DELIVERY_LEGS WDL
47 WHERE WTS.STOP_ID = WDL.PICK_UP_STOP_ID
48 AND WDL.DELIVERY_LEG_ID = c_dleg_id;
49
50 --========================================================================
51 -- CURSOR : Get_Delivery_Org
52 --
53 -- PARAMETERS: c_del_id Delivery Id
54 --
55 -- COMMENT : Gets the organization id of the delivery
56 --========================================================================
57 CURSOR Get_Delivery_Org(c_del_id NUMBER)
58 IS
59 SELECT ORGANIZATION_ID
60 FROM WSH_NEW_DELIVERIES
61 WHERE DELIVERY_ID = c_del_id;
62
63 --===================
64 -- PROCEDURES
65 --===================
66
67
68 --========================================================================
69 -- PROCEDURE : Single_Trip_Sel_Ser_Init
70 --
71 -- PARAMETERS: p_trip_id Trip Id
72 -- x_return_status Return status
73 --
74 -- COMMENT : This procedure accepts a trip id and raises the Select Service
75 -- Initiated event for the trip.
76 --========================================================================
77 PROCEDURE Single_Trip_Sel_Ser_Init(
78 p_trip_id IN NUMBER,
79 x_return_status OUT NOCOPY VARCHAR2)
80 IS
81 l_return_status VARCHAR2(1);
82 l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME || '.' || 'SINGLE_TRIP_SEL_SER_INIT';
83 l_debug_on BOOLEAN;
84 BEGIN
85 l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
86
87 IF l_debug_on IS NULL
88 THEN
89 l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
90 END IF;
91
92 IF l_debug_on
93 THEN
94 WSH_DEBUG_SV.push(l_module_name);
95 WSH_DEBUG_SV.log(l_module_name,'P_TRIP_ID',p_trip_id);
96 WSH_DEBUG_SV.logmsg(l_module_name,'Raising event oracle.apps.fte.trip.svc.serviceselectioninitiated for trip '||p_trip_id);
97 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_WF_STD.RAISE_EVENT',WSH_DEBUG_SV.C_PROC_LEVEL);
98 END IF;
99
100 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
101 WSH_WF_STD.Raise_Event(
102 p_entity_type => 'TRIP',
103 p_entity_id => p_trip_id,
104 p_event => 'oracle.apps.fte.trip.svc.serviceselectioninitiated' ,
105 x_return_status => l_return_status);
106
107 IF (l_return_status = WSH_UTIL_CORE.G_RET_STS_ERROR)
108 OR (l_return_status = WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR)
109 THEN
110 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
111 IF l_debug_on
112 THEN
113 WSH_DEBUG_SV.logmsg(l_module_name, 'Error occurred in WSH_WF_STD.RAISE_EVENT');
114 WSH_DEBUG_SV.logmsg(l_module_name, 'Unable to raise Select Service Init for trip '||p_trip_id);
115 END IF;
116 END IF;
117
118 IF l_debug_on
119 THEN
120 WSH_DEBUG_SV.pop(l_module_name);
121 END IF;
122
123 EXCEPTION
124 WHEN FND_API.G_EXC_ERROR
125 THEN
126
127 IF l_debug_on
128 THEN
129 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:FND_API.G_EXC_ERROR');
130 END IF;
131 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
132 WHEN OTHERS
133 THEN
134 IF l_debug_on
135 THEN
136 WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '|| SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
137 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
138 END IF;
139 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
140 END Single_Trip_Sel_Ser_Init;
141
142
143 --========================================================================
144 -- PROCEDURE : Single_Del_Sel_Ser
145 --
146 -- PARAMETERS: p_del_id Delivery Id
147 -- p_org_id Organization Id
148 -- x_return_status Return status
149 --
150 -- COMMENT : This procedure accepts a delivery id and raises the Select Service
151 -- event for the delivery.
152 --========================================================================
153 PROCEDURE Single_Del_Sel_Ser(
154 p_del_id IN NUMBER,
155 p_org_id IN NUMBER,
156 x_return_status OUT NOCOPY VARCHAR2)
157 IS
158 l_return_status VARCHAR2(1);
159 l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME || '.' || 'SINGLE_DEL_SEL_SER';
160 l_debug_on BOOLEAN;
161 BEGIN
162 l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
163
164 IF l_debug_on IS NULL
165 THEN
166 l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
167 END IF;
168
169 IF l_debug_on
170 THEN
171 WSH_DEBUG_SV.push(l_module_name);
172 WSH_DEBUG_SV.log(l_module_name,'P_DEL_ID',p_del_id);
173 WSH_DEBUG_SV.log(l_module_name,'P_ORG_ID',p_org_id);
174 WSH_DEBUG_SV.logmsg(l_module_name,'Raising event oracle.apps.wsh.delivery.svc.serviceselected for delivery '||p_del_id||', org '||p_org_id);
175 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_WF_STD.RAISE_EVENT',WSH_DEBUG_SV.C_PROC_LEVEL);
176 END IF;
177
178 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
179 WSH_WF_STD.Raise_Event(
180 p_entity_type => 'DELIVERY',
181 p_entity_id => p_del_id,
182 p_event => 'oracle.apps.fte.delivery.svc.serviceselected',
183 p_organization_id => p_org_id,
184 x_return_status => l_return_status);
185
186 IF (l_return_status = WSH_UTIL_CORE.G_RET_STS_ERROR)
187 OR (l_return_status = WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR)
188 THEN
189 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
190 IF l_debug_on
191 THEN
192 WSH_DEBUG_SV.logmsg(l_module_name, 'Error occurred in WSH_WF_STD.RAISE_EVENT');
193 WSH_DEBUG_SV.logmsg(l_module_name, 'Unable to raise Select Service for delivery '||p_del_id||', org '||p_org_id);
194 END IF;
195 END IF;
196
197 IF l_debug_on
198 THEN
199 WSH_DEBUG_SV.pop(l_module_name);
200 END IF;
201
202 EXCEPTION
203 WHEN FND_API.G_EXC_ERROR
204 THEN
205
206 IF l_debug_on
207 THEN
208 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:FND_API.G_EXC_ERROR');
209 END IF;
210 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
211 WHEN OTHERS
212 THEN
213 IF l_debug_on
214 THEN
215 WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '|| SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
216 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
217 END IF;
218 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
219
220 END Single_Del_Sel_Ser;
221
222
223
224 --========================================================================
225 -- PROCEDURE : Single_Del_Can_Ser
226 --
227 -- PARAMETERS: p_del_id Delivery Id
228 -- p_org_id Organization Id
229 -- x_return_status Return status
230 --
231 -- COMMENT : This procedure accepts a delivery id and raises the Cancel Service
232 -- event for the delivery.
233 --========================================================================
234 PROCEDURE Single_Del_Can_Ser(
235 p_del_id IN NUMBER,
236 p_org_id IN NUMBER,
237 x_return_status OUT NOCOPY VARCHAR2)
238 IS
239 l_return_status VARCHAR2(1);
240 l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME || '.' || 'SINGLE_DEL_CAN_SER';
241 l_debug_on BOOLEAN;
242 BEGIN
243 l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
244
245 IF l_debug_on IS NULL
246 THEN
247 l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
248 END IF;
249
250 IF l_debug_on
251 THEN
252 WSH_DEBUG_SV.push(l_module_name);
253 WSH_DEBUG_SV.log(l_module_name,'P_DEL_ID',p_del_id);
254 WSH_DEBUG_SV.log(l_module_name,'P_ORG_ID',p_org_id);
255 WSH_DEBUG_SV.logmsg(l_module_name,'Raising event oracle.apps.wsh.delivery.svc.servicecancelled for delivery '||p_del_id||', org '||p_org_id);
256 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_WF_STD.RAISE_EVENT',WSH_DEBUG_SV.C_PROC_LEVEL);
257 END IF;
258
259 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
260 WSH_WF_STD.Raise_Event(
261 p_entity_type => 'DELIVERY',
262 p_entity_id => p_del_id,
263 p_event => 'oracle.apps.fte.delivery.svc.servicecancelled',
264 p_organization_id => p_org_id,
265 x_return_status => l_return_status);
266
267 IF (l_return_status = WSH_UTIL_CORE.G_RET_STS_ERROR)
268 OR (l_return_status = WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR)
269 THEN
270 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
271 IF l_debug_on
272 THEN
273 WSH_DEBUG_SV.logmsg(l_module_name, 'Error occurred in WSH_WF_STD.RAISE_EVENT');
274 WSH_DEBUG_SV.logmsg(l_module_name, 'Unable to raise Cancel Service for delivery '||p_del_id||', org '||p_org_id);
275 END IF;
276 END IF;
277
278 IF l_debug_on
279 THEN
280 WSH_DEBUG_SV.pop(l_module_name);
281 END IF;
282
283 EXCEPTION
284 WHEN FND_API.G_EXC_ERROR
285 THEN
286
287 IF l_debug_on
288 THEN
289 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:FND_API.G_EXC_ERROR');
290 END IF;
291 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
292 WHEN OTHERS
293 THEN
294 IF l_debug_on
295 THEN
296 WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '|| SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
297 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
301 END Single_Del_Can_Ser;
298 END IF;
299 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
300
302
303
304 --========================================================================
305 -- PROCEDURE : Trip_Select_Service_Init
306 --
307 -- PARAMETERS: p_trip_id Trip Id
308 -- x_return_status Return status
309 --
310 -- COMMENT : This procedure accepts a trip and calls the procedures which
311 -- raises the Service Selection Initiation for the trip and
312 -- Select Service event for all the deliveries assigned to the trip.
313 --========================================================================
314 PROCEDURE Trip_Select_Service_Init(
315 p_trip_id IN NUMBER,
316 x_return_status OUT NOCOPY VARCHAR2)
317 IS
318 l_del_id NUMBER;
319 l_org_id NUMBER;
320 l_return_status VARCHAR2(1);
321 l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME || '.' || 'TRIP_SELECT_SERVICE_INIT';
322 l_debug_on BOOLEAN;
323 BEGIN
324
325 l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
326
327 IF l_debug_on IS NULL
328 THEN
329 l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
330 END IF;
331
332 IF l_debug_on
333 THEN
334 WSH_DEBUG_SV.push(l_module_name);
335 WSH_DEBUG_SV.log(l_module_name,'P_TRIP_ID',p_trip_id);
336 END IF;
337
338 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
339 IF l_debug_on THEN
340 WSH_DEBUG_SV.logmsg(l_module_name,'Raising Service Selection Initiated for the trip '||p_trip_id);
341 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit FTE_WORKFLOW_UTIL.SINGLE_TRIP_SEL_SER_INIT',WSH_DEBUG_SV.C_PROC_LEVEL);
342 END IF;
343
344 Single_Trip_Sel_Ser_Init(
345 p_trip_id => p_trip_id,
346 x_return_status => l_return_status);
347
348 IF (l_return_status = WSH_UTIL_CORE.G_RET_STS_ERROR)
349 OR (l_return_status = WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR)
350 THEN
351 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
352 IF l_debug_on
353 THEN
354 WSH_DEBUG_SV.logmsg(l_module_name, 'Error occurred in FTE_WORKFLOW_UTIL.SINGLE_TRIP_SEL_SER_INIT');
355 WSH_DEBUG_SV.logmsg(l_module_name, 'Raising Select Service Initiated for the trip '||p_trip_id||' failed');
356 END IF;
357 RAISE FND_API.G_EXC_ERROR;
358 END IF;
359
360 IF l_debug_on
361 THEN
362 WSH_DEBUG_SV.logmsg(l_module_name,'Fetching the deliveries assigned to the trip');
363 END IF;
364
365 OPEN Get_Trip_Deliveries(p_trip_id);
366 LOOP
367 FETCH Get_Trip_Deliveries INTO l_del_id;
368 EXIT WHEN Get_Trip_Deliveries%NOTFOUND;
369
370 OPEN Get_Delivery_Org(l_del_id);
371 FETCH Get_Delivery_Org INTO l_org_id;
372 CLOSE Get_Delivery_Org;
373
374 IF l_debug_on THEN
375 WSH_DEBUG_SV.logmsg(l_module_name,'Got delivery '||l_del_id);
376 WSH_DEBUG_SV.logmsg(l_module_name,'Raising Service Selection for the delivery '||l_del_id);
377 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit FTE_WORKFLOW_UTIL.SINGLE_DEL_SEL_SER',WSH_DEBUG_SV.C_PROC_LEVEL);
378 END IF;
379
380 Single_Del_Sel_Ser(
381 p_del_id => l_del_id,
382 p_org_id => l_org_id,
383 x_return_status => l_return_status);
384
385 IF (l_return_status = WSH_UTIL_CORE.G_RET_STS_ERROR)
386 OR (l_return_status = WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR)
387 THEN
388 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
389 IF l_debug_on
390 THEN
391 WSH_DEBUG_SV.logmsg(l_module_name, 'Error occurred in FTE_WORKFLOW_UTIL.SINGLE_DEL_SEL_SER');
392 WSH_DEBUG_SV.logmsg(l_module_name, 'Raising Select Service for the delivery '||l_del_id||' failed');
393 END IF;
394 END IF;
395
396 END LOOP;
397 CLOSE Get_Trip_Deliveries;
398
399 IF l_debug_on
400 THEN
401 WSH_DEBUG_SV.pop(l_module_name);
402 END IF;
403
404 EXCEPTION
405 WHEN FND_API.G_EXC_ERROR
406 THEN
407
408 IF l_debug_on
409 THEN
410 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:FND_API.G_EXC_ERROR');
411 END IF;
412 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
413 WHEN OTHERS
414 THEN
415 IF l_debug_on
416 THEN
417 WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '|| SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
418 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
419 END IF;
420 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
421
422 END Trip_Select_Service_Init;
423
424
425 --========================================================================
426 -- PROCEDURE : Trip_Cancel_Service
427 --
428 -- PARAMETERS: p_trip_id Trip Id
429 -- x_return_status Return status
430 --
431 -- COMMENT : This procedure accepts a trip and calls the procedures which
432 -- raises the Cancel Service event for all the deliveries
433 -- assigned to the trip.
434 --========================================================================
435 PROCEDURE Trip_Cancel_Service(
436 p_trip_id IN NUMBER,
437 x_return_status OUT NOCOPY VARCHAR2)
438
439 IS
440 l_del_id NUMBER;
441 l_org_id NUMBER;
442 l_return_status VARCHAR2(1);
443 l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME || '.' || 'TRIP_CANCEL_SERVICE';
444 l_debug_on BOOLEAN;
445 BEGIN
446
447 l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
448
449 IF l_debug_on IS NULL
450 THEN
451 l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
452 END IF;
453
454 IF l_debug_on
455 THEN
456 WSH_DEBUG_SV.push(l_module_name);
457 WSH_DEBUG_SV.log(l_module_name,'P_TRIP_ID',p_trip_id);
458 END IF;
459
460 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
461
462 IF l_debug_on
463 THEN
464 WSH_DEBUG_SV.logmsg(l_module_name,'Fetching the deliveries assigned to the trip');
465 END IF;
466
467 OPEN Get_Trip_Deliveries(p_trip_id);
468 LOOP
469 FETCH Get_Trip_Deliveries INTO l_del_id;
470 EXIT WHEN Get_Trip_Deliveries%NOTFOUND;
471
472 OPEN Get_Delivery_Org(l_del_id);
473 FETCH Get_Delivery_Org INTO l_org_id;
474 CLOSE Get_Delivery_Org;
475
476 IF l_debug_on THEN
477 WSH_DEBUG_SV.logmsg(l_module_name,'Got delivery '||l_del_id);
478 WSH_DEBUG_SV.logmsg(l_module_name,'Raising Service Cancellation for the delivery '||l_del_id);
482 Single_Del_Can_Ser(
479 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit FTE_WORKFLOW_UTIL.SINGLE_DEL_CAN_SER',WSH_DEBUG_SV.C_PROC_LEVEL);
480 END IF;
481
483 p_del_id => l_del_id,
484 p_org_id => l_org_id,
485 x_return_status => l_return_status);
486
487 IF (l_return_status = WSH_UTIL_CORE.G_RET_STS_ERROR)
488 OR (l_return_status = WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR)
489 THEN
490 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
491 IF l_debug_on
492 THEN
493 WSH_DEBUG_SV.logmsg(l_module_name, 'Error occurred in FTE_WORKFLOW_UTIL.SINGLE_DEL_CAN_SER');
494 WSH_DEBUG_SV.logmsg(l_module_name, 'Raising Cancel Service for the delivery '||l_del_id||' failed');
495 END IF;
496 END IF;
497
498 END LOOP;
499 CLOSE Get_Trip_Deliveries;
500
501 IF l_debug_on
502 THEN
503 WSH_DEBUG_SV.pop(l_module_name);
504 END IF;
505
506 EXCEPTION
507 WHEN FND_API.G_EXC_ERROR
508 THEN
509
510 IF l_debug_on
511 THEN
512 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:FND_API.G_EXC_ERROR');
513 END IF;
514 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
515 WHEN OTHERS
516 THEN
517 IF l_debug_on
518 THEN
519 WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '|| SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
520 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
521 END IF;
522 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
523
524 END Trip_Cancel_Service;
525
526
527 --========================================================================
528 -- PROCEDURE : Dleg_Select_Service
529 --
530 -- PARAMETERS: p_dleg_id Delivery Leg Id
531 -- x_return_status Return status
532 --
533 -- COMMENT : This procedure accepts a delivery leg and calls the procedures which
534 -- raises the Select Service Event for the delivery and Select Service
535 -- Initiation event for the trip to which the delivery is assigned.
536 --========================================================================
537 PROCEDURE Dleg_Select_Service(
538 p_dleg_id IN NUMBER,
539 x_return_status OUT NOCOPY VARCHAR2)
540 IS
541 l_trip_id NUMBER;
542 l_del_id NUMBER;
543 l_org_id NUMBER;
544 l_return_status VARCHAR2(1);
545 l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME || '.' || 'DLEG_SELECT_SERVICE';
546 l_debug_on BOOLEAN;
547 BEGIN
551 THEN
548 l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
549
550 IF l_debug_on IS NULL
552 l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
553 END IF;
554
555 IF l_debug_on
556 THEN
557 WSH_DEBUG_SV.push(l_module_name);
558 WSH_DEBUG_SV.log(l_module_name,'P_DLEG_ID',p_dleg_id);
559 END IF;
560
561 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
562
563 OPEN Get_Dleg_Delivery(p_dleg_id);
564 FETCH Get_Dleg_Delivery INTO l_del_id;
565 CLOSE Get_Dleg_Delivery;
566
567 IF l_del_id IS NULL
568 THEN
569 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
570 IF l_debug_on THEN
571 WSH_DEBUG_SV.logmsg(l_module_name,'Failed to fetch the delivery associated with the delivery leg');
572 END IF;
573 RAISE FND_API.G_EXC_ERROR;
574 END IF;
575
576 OPEN Get_Delivery_Org(l_del_id);
577 FETCH Get_Delivery_Org INTO l_org_id;
578 CLOSE Get_Delivery_Org;
579
580 IF l_debug_on THEN
581 WSH_DEBUG_SV.logmsg(l_module_name,'Raising Service Selection for the delivery '||l_del_id);
582 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit FTE_WORKFLOW_UTIL.SINGLE_DEL_SEL_SER',WSH_DEBUG_SV.C_PROC_LEVEL);
583 END IF;
584
585 Single_Del_Sel_Ser(
586 p_del_id => l_del_id,
587 p_org_id => l_org_id,
588 x_return_status => l_return_status);
589
590 IF (l_return_status = WSH_UTIL_CORE.G_RET_STS_ERROR)
591 OR (l_return_status = WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR)
592 THEN
593 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
594 IF l_debug_on
595 THEN
596 WSH_DEBUG_SV.logmsg(l_module_name, 'Error occurred in FTE_WORKFLOW_UTIL.SINGLE_DEL_SEL_SER');
597 WSH_DEBUG_SV.logmsg(l_module_name, 'Raising Select Service for the delivery '||l_del_id||' failed');
598 END IF;
599 RAISE FND_API.G_EXC_ERROR;
600 END IF;
601
602 IF l_debug_on THEN
603 WSH_DEBUG_SV.logmsg(l_module_name,'Fetching trip to which the delivery '||l_del_id||' is assigned');
604 END IF;
605
606 OPEN Get_Dleg_Trip(p_dleg_id);
607 FETCH Get_Dleg_Trip INTO l_trip_id;
608 CLOSE Get_Dleg_Trip;
609
610 IF l_trip_id IS NOT NULL
611 THEN
612
613 IF l_debug_on THEN
614 WSH_DEBUG_SV.logmsg(l_module_name,'Found trip '||l_trip_id);
615 WSH_DEBUG_SV.logmsg(l_module_name,'Raising Service Selection Initiated for the trip '||l_trip_id);
616 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit FTE_WORKFLOW_UTIL.SINGLE_TRIP_SEL_SER_INIT',WSH_DEBUG_SV.C_PROC_LEVEL);
617 END IF;
618
619 Single_Trip_Sel_Ser_Init(
620 p_trip_id => l_trip_id,
621 x_return_status => l_return_status);
622
623 IF (l_return_status = WSH_UTIL_CORE.G_RET_STS_ERROR)
624 OR (l_return_status = WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR)
625 THEN
626 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
627 IF l_debug_on
628 THEN
629 WSH_DEBUG_SV.logmsg(l_module_name, 'Error occurred in FTE_WORKFLOW_UTIL.SINGLE_TRIP_SEL_SER_INIT');
630 WSH_DEBUG_SV.logmsg(l_module_name, 'Raising Select Service for the trip '||l_trip_id||' failed');
631 END IF;
632 END IF;
633 ELSE
634 IF l_debug_on THEN
638
635 WSH_DEBUG_SV.logmsg(l_module_name,'No trip found trip');
636 END IF;
637 END IF;
639 IF l_debug_on
640 THEN
641 WSH_DEBUG_SV.pop(l_module_name);
642 END IF;
643
644 EXCEPTION
645 WHEN FND_API.G_EXC_ERROR
646 THEN
647
648 IF l_debug_on
649 THEN
650 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:FND_API.G_EXC_ERROR');
651 END IF;
652 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
653 WHEN OTHERS
654 THEN
655 IF l_debug_on
656 THEN
657 WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '|| SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
658 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
659 END IF;
660 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
661
662 END Dleg_Select_Service;
663
664
665 --========================================================================
666 -- PROCEDURE : Dleg_Cancel_Service
667 --
668 -- PARAMETERS: p_dleg_id Delivery Leg Id
669 -- x_return_status Return status
670 --
671 -- COMMENT : This procedure accepts a delivery leg and calls the procedure which
672 -- raises the Cancel Service Event for the delivery.
673 --========================================================================
674 PROCEDURE Dleg_Cancel_Service(
675 p_dleg_id IN NUMBER,
676 x_return_status OUT NOCOPY VARCHAR2)
677 IS
678 l_del_id NUMBER;
679 l_org_id NUMBER;
680 l_return_status VARCHAR2(1);
681 l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME || '.' || 'DLEG_CANCEL_SERVICE';
682 l_debug_on BOOLEAN;
683 BEGIN
684 l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
685
686 IF l_debug_on IS NULL
687 THEN
688 l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
689 END IF;
690
691 IF l_debug_on
692 THEN
693 WSH_DEBUG_SV.push(l_module_name);
694 WSH_DEBUG_SV.log(l_module_name,'P_DLEG_ID',p_dleg_id);
695 END IF;
696
697 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
698
699 OPEN Get_Dleg_Delivery(p_dleg_id);
700 FETCH Get_Dleg_Delivery INTO l_del_id;
701 CLOSE Get_Dleg_Delivery;
702
703 IF l_del_id IS NULL
704 THEN
705 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
706 IF l_debug_on THEN
707 WSH_DEBUG_SV.logmsg(l_module_name,'Failed to fetch the delivery associated with the delivery leg');
708 END IF;
709 RAISE FND_API.G_EXC_ERROR;
710 END IF;
711
712 OPEN Get_Delivery_Org(l_del_id);
713 FETCH Get_Delivery_Org INTO l_org_id;
714 CLOSE Get_Delivery_Org;
715
716 IF l_debug_on THEN
717 WSH_DEBUG_SV.logmsg(l_module_name,'Raising Cancel Service for the delivery '||l_del_id);
718 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit FTE_WORKFLOW_UTIL.SINGLE_DEL_CAN_SER',WSH_DEBUG_SV.C_PROC_LEVEL);
719 END IF;
720
721 Single_Del_Can_Ser(
722 p_del_id => l_del_id,
723 p_org_id => l_org_id,
724 x_return_status => l_return_status);
725
726 IF (l_return_status = WSH_UTIL_CORE.G_RET_STS_ERROR)
727 OR (l_return_status = WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR)
728 THEN
729 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
730 IF l_debug_on
731 THEN
732 WSH_DEBUG_SV.logmsg(l_module_name, 'Error occurred in FTE_WORKFLOW_UTIL.SINGLE_DEL_CAN_SER');
733 WSH_DEBUG_SV.logmsg(l_module_name, 'Raising Cancel Service for the delivery '||l_del_id||' failed');
734 END IF;
735 RAISE FND_API.G_EXC_ERROR;
736 END IF;
737
738 IF l_debug_on
739 THEN
740 WSH_DEBUG_SV.pop(l_module_name);
741 END IF;
742
743 EXCEPTION
744 WHEN FND_API.G_EXC_ERROR
745 THEN
746
747 IF l_debug_on
748 THEN
749 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:FND_API.G_EXC_ERROR');
750 END IF;
751 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
752 WHEN OTHERS
753 THEN
754 IF l_debug_on
755 THEN
756 WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '|| SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
757 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
758 END IF;
759 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
760
761 END Dleg_Cancel_Service;
762
763
764 END FTE_WORKFLOW_UTIL;