[Home] [Help]
PACKAGE BODY: APPS.WSH_CONTAINER_GRP
Source
1 PACKAGE BODY WSH_CONTAINER_GRP AS
2 /* $Header: WSHCOGPB.pls 120.7.12020000.2 2013/03/01 00:34:31 adagur ship $ */
3
4 -- standard global constants
5 G_PKG_NAME CONSTANT VARCHAR2(30) := 'WSH_CONTAINER_GRP';
6 p_message_type CONSTANT VARCHAR2(1) := 'E';
7
8
9 ------------------------------------------------------------------------------
10 -- Procedure: Create_Containers
11 --
12 -- Parameters: 1) container_item_id (key flex id)
13 -- 2) container_item_name (concatinated name for container item)
14 -- 3) container_item_seg (flex field seg array for item name)
15 -- 4) organization_id - organization id for container
16 -- 5) organization_code - organization code for container
17 -- 6) name_prefix - container name prefix
18 -- 7) name_suffix - container name suffix
19 -- 8) base_number - starting number for numeric portion of name
20 -- 9) num_digits - precision for number of digits
21 -- 10) quantity - number of containers
22 -- 11) container_name - container name if creating 1 container
23 -- 12) table of container ids - out table of ids
24 -- 13) other standard parameters
25 --
26 -- Description: This procedure takes in a container item id or container item
27 -- name and other necessary parameters to create one or more containers and
28 -- creates the required containers. It returns a table of container instance
29 -- ids (delivery detail ids) along with the standard out parameters.
30 --
31 -- THIS PROCEDURE SHOULD NOT BE USED ANYMORE, IT IS USED ONLY FOR BACKWARD
32 -- COMPATIBILITY.
33 --
34 ------------------------------------------------------------------------------
35
36 PROCEDURE Create_Containers (
37 -- Standard parameters
38 p_api_version IN NUMBER,
39 p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_FALSE,
40 p_commit IN VARCHAR2 DEFAULT FND_API.G_FALSE,
41 p_validation_level IN NUMBER DEFAULT FND_API.G_VALID_LEVEL_FULL,
42 x_return_status OUT NOCOPY VARCHAR2,
43 x_msg_count OUT NOCOPY NUMBER,
44 x_msg_data OUT NOCOPY VARCHAR2,
45
46 -- program specific parameters
47 p_container_item_id IN NUMBER,
48 p_container_item_name IN VARCHAR2,
49 p_container_item_seg IN FND_FLEX_EXT.SegmentArray,
50 p_organization_id IN NUMBER,
51 p_organization_code IN VARCHAR2,
52 p_name_prefix IN VARCHAR2,
53 p_name_suffix IN VARCHAR2,
54 p_base_number IN NUMBER,
55 p_num_digits IN NUMBER,
56 p_quantity IN NUMBER,
57 p_container_name IN VARCHAR2,
58 p_lpn_ids IN WSH_UTIL_CORE.ID_TAB_TYPE,
59
60 -- program specific out parameters
61 x_container_ids OUT NOCOPY WSH_UTIL_CORE.ID_TAB_TYPE,
62 p_caller IN VARCHAR2 -- Has default 'WMS' in spec
63 ) IS
64
65
66 -- Standard call to check for call compatibility
67 l_api_version CONSTANT NUMBER := 1.0;
68 l_api_name CONSTANT VARCHAR2(30):= 'Create_Containers';
69
70 l_return_status VARCHAR2(30) := NULL;
71 l_cont_item_id NUMBER := NULL;
72 l_cont_item_seg FND_FLEX_EXT.SegmentArray;
73 l_cont_item_name VARCHAR2(30) := NULL;
74 l_cont_name VARCHAR2(30) := NULL;
75
76 l_cont_inst_tab WSH_UTIL_CORE.ID_TAB_TYPE;
77 l_msg_summary VARCHAR2(2000) := NULL;
78 l_msg_details VARCHAR2(4000) := NULL;
79
80 l_organization_id NUMBER := NULL;
81 l_organization_code VARCHAR2(240) := NULL;
82
83 -- Bug fix 2657429
84 l_verify_org_level NUMBER;
85 l_verify_cont_item NUMBER;
86 -- Bug fix 2657429
87
88 /* wms changes begin */
89 wms_return_status VARCHAR2(10);
90 wms_msg_count NUMBER;
91 wms_msg_data VARCHAR2(2000);
92 wms_organization_id NUMBER;
93 wms_enabled BOOLEAN;
94 /* -- wms changes end */
95
96 --lpn conv
97 l_detail_info_tab WSH_GLBL_VAR_STRCT_GRP.delivery_details_Attr_tbl_Type;
98 l_IN_rec WSH_GLBL_VAR_STRCT_GRP.detailInRecType;
99 l_OUT_rec WSH_GLBL_VAR_STRCT_GRP.detailOutRecType;
100
101 l_msg_count NUMBER;
102 l_msg_data VARCHAR2(2000);
103
104 WSH_NO_INV_ITEM EXCEPTION;
105 WSH_INVALID_QTY EXCEPTION;
106 WSH_FAIL_CONT_CREATION EXCEPTION;
107 WSH_LPN_COUNT_INVALID EXCEPTION;
108
109 --
110 l_debug_on BOOLEAN;
111 --
112 l_module_name CONSTANT VARCHAR2(100) := 'wsh.plsql.' || G_PKG_NAME || '.' || 'CREATE_CONTAINERS';
113 --
114 BEGIN
115
116 -- Standard begin of API savepoint
117 --
118 -- Debug Statements
119 --
120 --
121 l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
122 --
123 IF l_debug_on IS NULL
124 THEN
125 l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
126 END IF;
127 --
128 IF l_debug_on THEN
129 WSH_DEBUG_SV.push(l_module_name);
130 --
131 WSH_DEBUG_SV.log(l_module_name,'P_API_VERSION',P_API_VERSION);
132 WSH_DEBUG_SV.log(l_module_name,'P_INIT_MSG_LIST',P_INIT_MSG_LIST);
133 WSH_DEBUG_SV.log(l_module_name,'P_COMMIT',P_COMMIT);
134 WSH_DEBUG_SV.log(l_module_name,'P_VALIDATION_LEVEL',P_VALIDATION_LEVEL);
135 WSH_DEBUG_SV.log(l_module_name,'P_CONTAINER_ITEM_ID',P_CONTAINER_ITEM_ID);
136 WSH_DEBUG_SV.log(l_module_name,'P_CONTAINER_ITEM_NAME',P_CONTAINER_ITEM_NAME);
137 WSH_DEBUG_SV.log(l_module_name,'P_ORGANIZATION_ID',P_ORGANIZATION_ID);
138 WSH_DEBUG_SV.log(l_module_name,'P_ORGANIZATION_CODE',P_ORGANIZATION_CODE);
139 WSH_DEBUG_SV.log(l_module_name,'P_NAME_PREFIX',P_NAME_PREFIX);
140 WSH_DEBUG_SV.log(l_module_name,'P_NAME_SUFFIX',P_NAME_SUFFIX);
141 WSH_DEBUG_SV.log(l_module_name,'P_BASE_NUMBER',P_BASE_NUMBER);
142 WSH_DEBUG_SV.log(l_module_name,'P_NUM_DIGITS',P_NUM_DIGITS);
143 WSH_DEBUG_SV.log(l_module_name,'P_QUANTITY',P_QUANTITY);
144 WSH_DEBUG_SV.log(l_module_name,'P_CONTAINER_NAME',P_CONTAINER_NAME);
145 END IF;
146 --
147 SAVEPOINT Create_Containers_SP_GRP;
148
149 IF NOT FND_API.compatible_api_call (
150 l_api_version,
151 p_api_version,
152 l_api_name,
153 G_PKG_NAME) THEN
154 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
155 END IF;
156
157 -- Check p_init_msg_list
158 IF FND_API.to_boolean(p_init_msg_list) THEN
159 FND_MSG_PUB.initialize;
160 END IF;
161
162 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
163
164 --lpn conv
165 -- validate quantity
166 IF NVL(p_quantity,0) <> 1 THEN
167 RAISE WSH_INVALID_QTY;
168 END IF;
169
170 IF p_caller NOT LIKE 'WMS%' THEN
171 IF l_debug_on THEN
172 WSH_DEBUG_SV.log(l_module_name,'Invalid caller',p_caller);
173 END IF;
174 RAISE FND_API.G_EXC_ERROR;
175 END IF;
176
177 IF p_lpn_ids.COUNT = 0 THEN
178 IF l_debug_on THEN
179 wsh_debug_sv.logmsg(l_module_name,'lpn_id cannot be null');
180 END IF;
181 FND_MESSAGE.SET_NAME('WSH','WSH_REQUIRED_FIELD_NULL');
182 FND_MESSAGE.SET_TOKEN('FIELD_NAME','LPN_ID');
183 WSH_UTIL_CORE.Add_Message(WSH_UTIL_CORE.G_RET_STS_ERROR,l_module_name);
184 RAISE FND_API.G_EXC_ERROR;
185 ELSIF p_lpn_ids(1) = NULL THEN
186 FND_MESSAGE.SET_NAME('WSH','WSH_REQUIRED_FIELD_NULL');
187 FND_MESSAGE.SET_TOKEN('FIELD_NAME','LPN_ID');
188 WSH_UTIL_CORE.Add_Message(WSH_UTIL_CORE.G_RET_STS_ERROR,l_module_name);
189 RAISE FND_API.G_EXC_ERROR;
190 END IF;
191
192 -- Bug fix 2657429
193 IF p_validation_level <> C_DELIVERY_DETAIL_CALL THEN
194 WSH_ACTIONS_LEVELS.set_validation_level (
195 p_entity => 'DLVB',
196 p_caller => p_caller,
197 p_phase => 1,
198 p_action => 'CREATE',
199 x_return_status => l_return_status);
200
201 END IF;
202
203 l_verify_org_level := WSH_ACTIONS_LEVELS.g_validation_level_tab(WSH_ACTIONS_LEVELS.C_CONTAINER_ORG_LVL);
204 l_verify_cont_item := WSH_ACTIONS_LEVELS.g_validation_level_tab(WSH_ACTIONS_LEVELS.C_CONT_ITEM_LVL);
205 -- Bug fix 2657429
206 -- validate the organization id and organization code
207
208 l_organization_id := p_organization_id;
209 l_organization_code := p_organization_code;
210
211 IF l_verify_org_level = 1 THEN
212 IF l_debug_on THEN
213 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_UTIL_VALIDATE.VALIDATE_ORG',WSH_DEBUG_SV.C_PROC_LEVEL);
214 END IF;
215 --
216 WSH_UTIL_VALIDATE.Validate_Org (l_organization_id,
217 l_organization_code,
218 x_return_status);
219 IF x_return_status <> wsh_util_core.g_ret_sts_success THEN
220 fnd_message.set_name('WSH', 'WSH_OI_INVALID_ORG');
221 wsh_util_core.add_message(wsh_util_core.g_ret_sts_error, l_module_name);
222 raise fnd_api.g_exc_error;
223 END IF;
224
225 END IF;
226
227 -- validate the key flex valaues (item id and item name)
228
229 l_cont_item_id := p_container_item_id;
230 l_cont_item_seg := p_container_item_seg;
231 l_cont_item_name := p_container_item_name;
232 --
233 IF l_verify_cont_item = 1 THEN
234 /* wms change: Validate Item check is to be skipped if the Org. is WMS enabled */
235
236 IF l_debug_on THEN
237 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WMS_INSTALL.CHECK_INSTALL',WSH_DEBUG_SV.C_PROC_LEVEL);
238 END IF;
239
240 wms_enabled := WMS_INSTALL.check_install(
241 wms_return_status,
242 wms_msg_count,
243 wms_msg_data,
244 l_organization_id);
245
246 IF l_debug_on THEN
247 wsh_debug_sv.log(l_module_name, 'wms enabled', wms_enabled);
248 END IF;
249
250 IF (wms_enabled = FALSE) THEN
251 IF (l_cont_item_id IS NULL
252 AND l_cont_item_name IS NULL
253 AND l_cont_item_seg.count = 0) then
254 fnd_message.set_name('WSH', 'WSH_CONT_INVALID_ITEM');
255 WSH_UTIL_CORE.ADD_MESSAGE(wsh_util_core.g_ret_sts_error, l_module_name);
256 RAISE WSH_NO_INV_ITEM;
257 ELSE
258 IF l_debug_on THEN
259 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_UTIL_VALIDATE.VALIDATE_ITEM',WSH_DEBUG_SV.C_PROC_LEVEL);
260 END IF;
261 --
262 WSH_UTIL_VALIDATE.Validate_Item
263 (p_inventory_item_id => l_cont_item_id,
264 p_inventory_item => l_cont_item_name,
265 p_organization_id => l_organization_id,
266 p_seg_array => l_cont_item_seg,
267 x_return_status => x_return_status,
268 p_item_type => 'CONT_ITEM');
269
270 IF x_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
271 fnd_message.set_name('WSH', 'WSH_CONT_INVALID_ITEM');
272 WSH_UTIL_CORE.ADD_MESSAGE(wsh_util_core.g_ret_sts_error, l_module_name);
273 RAISE WSH_NO_INV_ITEM;
274 END IF;
275 END IF;
276 ELSE
277 fnd_message.set_name('WSH', 'WSH_INCORRECT_ORG');
278 fnd_message.set_token('ORG_CODE', l_organization_code);
279 wsh_util_core.add_message(wsh_util_core.g_ret_sts_error, l_module_name);
280 RAISE FND_API.G_EXC_ERROR;
281 END IF; -- wms_enabled
282 END IF;
283
284
285 l_IN_rec.caller := p_caller;
286 l_IN_rec.action_code := 'CREATE';
287 l_IN_rec.quantity := 1;
288 l_detail_info_tab(1).organization_id := l_organization_id;
289 l_detail_info_tab(1).inventory_item_id := l_cont_item_id;
290 l_detail_info_tab(1).container_name := p_container_name;
291 l_detail_info_tab(1).lpn_id := p_lpn_ids(1);
292
293 WSH_WMS_LPN_GRP.create_update_containers
294 ( p_api_version => p_api_version,
295 p_init_msg_list => p_init_msg_list,
296 p_commit => p_commit,
297 x_return_status => l_return_status,
298 x_msg_count => l_msg_count,
299 x_msg_data => l_msg_data,
300 p_detail_info_tab => l_detail_info_tab,
301 p_IN_rec => l_IN_rec,
302 x_OUT_rec => l_OUT_rec
303 );
304 IF l_return_status NOT IN ( WSH_UTIL_CORE.G_RET_STS_SUCCESS,WSH_UTIL_CORE.G_RET_STS_WARNING)
305 THEN
306 RAISE WSH_FAIL_CONT_CREATION;
307 END IF;
308
309 x_return_status := l_return_status;
310
311 x_container_ids := l_OUT_rec.detail_ids;
312
313
314
315 IF FND_API.TO_BOOLEAN(p_commit) THEN
316 -- dbms_output.put_line('commit');
317 COMMIT;
318 END IF;
319
320 FND_MSG_PUB.Count_And_Get
321 ( p_count => x_msg_count
322 , p_data => x_msg_data
323 , p_encoded => FND_API.G_FALSE
324 );
325
326
327 IF l_debug_on THEN
328 WSH_DEBUG_SV.pop(l_module_name);
329 END IF;
330 --
331 EXCEPTION
332 WHEN FND_API.G_EXC_ERROR THEN
333 ROLLBACK TO Create_Containers_SP_GRP;
334 x_return_status := FND_API.G_RET_STS_ERROR ;
335 FND_MSG_PUB.Count_And_Get
336 (
337 p_count => x_msg_count,
338 p_data => x_msg_data,
339 p_encoded => FND_API.G_FALSE
340 );
341 --
342 IF l_debug_on THEN
343 WSH_DEBUG_SV.logmsg(l_module_name,'FND_API.G_EXC_ERROR exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
344 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:FND_API.G_EXC_ERROR');
345 END IF;
346
347 WHEN WSH_NO_INV_ITEM then
348 rollback to Create_Containers_SP_GRP;
349 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
350
351 FND_MSG_PUB.Count_And_Get
352 ( p_count => x_msg_count
353 , p_data => x_msg_data
354 , p_encoded => FND_API.G_FALSE
355 );
356
357
358 IF l_debug_on THEN
359 WSH_DEBUG_SV.logmsg(l_module_name,'WSH_NO_INV_ITEM exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
360 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:WSH_NO_INV_ITEM');
361 END IF;
362 --
363 WHEN WSH_INVALID_QTY then
364 rollback to Create_Containers_SP_GRP;
365 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
366 fnd_message.set_name('WSH', 'WSH_CONT_INVALID_QTY');
367 WSH_UTIL_CORE.ADD_MESSAGE(x_return_status);
368
369 FND_MSG_PUB.Count_And_Get
370 ( p_count => x_msg_count
371 , p_data => x_msg_data
372 , p_encoded => FND_API.G_FALSE
373 );
374
375 IF l_debug_on THEN
376 WSH_DEBUG_SV.logmsg(l_module_name,'WSH_INVALID_QTY exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
377 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:WSH_INVALID_QTY');
378 END IF;
379 --
380 WHEN WSH_FAIL_CONT_CREATION then
381 rollback to Create_Containers_SP_GRP;
382 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
383 fnd_message.set_name('WSH', 'WSH_CONT_CREATE_ERROR');
384 WSH_UTIL_CORE.ADD_MESSAGE(x_return_status);
385
386 FND_MSG_PUB.Count_And_Get
387 ( p_count => x_msg_count
388 , p_data => x_msg_data
389 , p_encoded => FND_API.G_FALSE
390 );
391
392 IF l_debug_on THEN
393 WSH_DEBUG_SV.logmsg(l_module_name,'WSH_FAIL_CONT_CREATION exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
394 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:WSH_FAIL_CONT_CREATION');
395 END IF;
396 --
397 WHEN WSH_LPN_COUNT_INVALID then
398 rollback to Create_Containers_SP_GRP;
399 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
400 fnd_message.set_name('WSH', 'WSH_LPN_COUNT_INVALID');
401 WSH_UTIL_CORE.ADD_MESSAGE(x_return_status);
402
403 FND_MSG_PUB.Count_And_Get
404 ( p_count => x_msg_count
405 , p_data => x_msg_data
406 , p_encoded => FND_API.G_FALSE
407 );
408
409 IF l_debug_on THEN
410 WSH_DEBUG_SV.logmsg(l_module_name,'WSH_LPN_COUNT_INVALID exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
411 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:WSH_LPN_COUNT_INVALID');
412 END IF;
413 --
414 WHEN OTHERS then
415 rollback to Create_Containers_SP_GRP;
416 wsh_util_core.default_handler('WSH_CONTAINER_GRP.Create_Containers');
417 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
418 FND_MSG_PUB.Count_And_Get
419 ( p_count => x_msg_count
420 , p_data => x_msg_data
421 , p_encoded => FND_API.G_FALSE
422 );
423
424 IF l_debug_on THEN
425 WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '|| SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
426 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
427 END IF;
428 --
429 END Create_Containers;
430
431
432 ------------------------------------------------------------------------------
433 -- Procedure: Update_Container
434 --
435 -- Parameters: 1) container_rec - container record of type
436 -- wsh_interface.changedattributerectype
437 -- 2) other standard parameters
438 --
439 -- Description: This procedure takes in a record of container attributes that
440 -- contains the name and delivery detail id of container to update the
441 -- container record in WSH_DELIVERY_DETAILS with the attributes input in the
442 -- container rec type. The API validates the container name and detail id and
443 -- calls the wsh_delivery_details_grp.update_shipping_attributes public API.
444
445 -- THIS PROCEDURE SHOULD NOT BE USED ANYMORE, IT IS USED ONLY FOR BACKWARD
446 -- COMPATIBILITY.
447 ------------------------------------------------------------------------------
448
449 PROCEDURE Update_Container (
450 -- Standard parameters
451 p_api_version IN NUMBER,
452 p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_FALSE,
453 p_commit IN VARCHAR2 DEFAULT FND_API.G_FALSE,
454 p_validation_level IN NUMBER DEFAULT FND_API.G_VALID_LEVEL_FULL,
455 x_return_status OUT NOCOPY VARCHAR2,
456 x_msg_count OUT NOCOPY NUMBER,
457 x_msg_data OUT NOCOPY VARCHAR2,
458
459 -- program specific parameters
460 p_container_rec IN WSH_CONTAINER_GRP.CHANGEDATTRIBUTETABTYPE
461
462 ) IS
463
464 -- Standard call to check for call compatibility
465 l_api_version CONSTANT NUMBER := 1.0;
466 l_api_name CONSTANT VARCHAR2(30):= 'Update_Containers';
467
468 l_return_status VARCHAR2(30) := NULL;
469
470 l_cont_name VARCHAR2(30) := NULL;
471 l_cont_flag VARCHAR2(1);
472 l_cont_instance_id NUMBER;
473
474 l_old_cont_name VARCHAR2(30);
475 l_old_cont_instance_id NUMBER;
476 l_old_lpn_id NUMBER;
477 l_old_rel_status VARCHAR2(1);
478
479
480 l_cont_tab WSH_INTERFACE.CHANGEDATTRIBUTETABTYPE;
481
482 l_msg_summary VARCHAR2(2000) := NULL;
483 l_msg_details VARCHAR2(4000) := NULL;
484
485 l_delivery_id NUMBER;
486 l_del_status VARCHAR2(10);
487 l_detail_info_tab WSH_GLBL_VAR_STRCT_GRP.delivery_details_Attr_tbl_Type;
488 l_IN_rec WSH_GLBL_VAR_STRCT_GRP.detailInRecType;
489 l_OUT_rec WSH_GLBL_VAR_STRCT_GRP.detailOutRecType;
490
491 l_msg_count NUMBER;
492 l_msg_data VARCHAR2(2000);
493
494 WSH_INVALID_CONT EXCEPTION;
495 WSH_INVALID_CONT_UPDATE EXCEPTION;
496 WSH_FAIL_CONT_UPDATE EXCEPTION;
497
498 --lpn conv
499 CURSOR Check_Cont (v_cont_id NUMBER ) IS
500 SELECT container_flag, delivery_detail_id, lpn_id, released_status
501 FROM WSH_DELIVERY_DETAILS
502 WHERE delivery_detail_id = v_cont_id
503 AND nvl(LINE_DIRECTION , 'O') IN ('O', 'IO');
504
505 CURSOR Check_Cont_Name (v_cont_name VARCHAR2) IS
506 SELECT delivery_detail_id, container_name
507 FROM WSH_DELIVERY_DETAILS
508 WHERE container_name = v_cont_name
509 AND nvl(LINE_DIRECTION , 'O') IN ('O', 'IO');
510
511 CURSOR c_get_lpn (l_delivery_detail_id NUMBER) IS
512 SELECT lpn_id
513 FROM wsh_delivery_details
514 WHERE delivery_detail_id = l_delivery_detail_id;
515
516
517 --
518 l_debug_on BOOLEAN;
519 --
520 l_module_name CONSTANT VARCHAR2(100) := 'wsh.plsql.' || G_PKG_NAME || '.' || 'UPDATE_CONTAINER';
521 --
522 BEGIN
523
524 -- Standard begin of API savepoint
525 --
526 -- Debug Statements
527 --
528 --
529 l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
530 --
531 IF l_debug_on IS NULL
532 THEN
533 l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
534 END IF;
535 --
536 IF l_debug_on THEN
537 WSH_DEBUG_SV.push(l_module_name);
538 --
539 WSH_DEBUG_SV.log(l_module_name,'P_API_VERSION',P_API_VERSION);
540 WSH_DEBUG_SV.log(l_module_name,'P_INIT_MSG_LIST',P_INIT_MSG_LIST);
541 WSH_DEBUG_SV.log(l_module_name,'P_COMMIT',P_COMMIT);
542 WSH_DEBUG_SV.log(l_module_name,'P_VALIDATION_LEVEL',P_VALIDATION_LEVEL);
543 END IF;
544 --
545 SAVEPOINT Update_Containers_SP_Grp;
546
547 IF NOT FND_API.compatible_api_call (
548 l_api_version,
549 p_api_version,
550 l_api_name,
551 G_PKG_NAME) THEN
552 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
553 END IF;
554
555 -- Check p_init_msg_list
556 IF FND_API.to_boolean(p_init_msg_list) THEN
557 FND_MSG_PUB.initialize;
558 END IF;
559
560 /*
561 IF p_caller NOT LIKE 'WMS%' THEN
562 IF l_debug_on THEN
563 WSH_DEBUG_SV.log(l_module_name,'Invalid caller',p_caller);
564 END IF;
565 RAISE FND_API.G_EXC_ERROR;
566 END IF;
567 p_caller does not exist
568 */
569
570 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
571
572 -- check to make sure that the container record being input for update
573 -- does not have null delivery detail ids or container name or the
574 -- container flag is null or 'N'
575 IF p_container_rec(1).delivery_detail_id IS NULL OR p_container_rec(1).container_name IS NULL OR nvl(p_container_rec(1).container_flag,'N') = 'N' THEN
576 RAISE WSH_INVALID_CONT_UPDATE;
577 END IF;
578
579 -- Now check for valid container based on the information in the
580 -- container rec.
581
582
583 IF p_container_rec(1).delivery_detail_id IS NOT NULL AND p_container_rec(1).container_name IS NOT NULL THEN
584
585 l_cont_instance_id := p_container_rec(1).delivery_detail_id;
586 l_cont_name := p_container_rec(1).container_name;
587
588 OPEN Check_Cont (l_cont_instance_id );
589
590 FETCH Check_Cont INTO
591 l_cont_flag,
592 l_old_cont_instance_id,
593 l_old_lpn_id,
594 l_old_rel_status;
595
596 IF Check_Cont%NOTFOUND OR Check_Cont%ROWCOUNT > 1 THEN
597 CLOSE Check_Cont;
598 RAISE WSH_INVALID_CONT;
599 END IF;
600
601 IF Check_Cont%ISOPEN THEN
602 CLOSE Check_Cont;
603 END IF;
604
605 -- if the input container instance id does not match the
606 -- delivery detail id in the database (for the given container
607 -- name) then error out..
608
609 IF l_old_cont_instance_id <> l_cont_instance_id OR l_cont_flag <> 'Y' THEN
610 RAISE WSH_INVALID_CONT;
611 END IF;
612 -- Bug 2657803/2911387, Let WMS update container name and null out LPN ID if container has been shipped,
613 -- and LPN id is not null.
614 -- If not, validate delivery status and container name
615 IF l_old_lpn_id IS NULL or l_old_rel_status <> 'C' or p_container_rec(1).lpn_id is NOT NULL THEN
616
617
618 /* lpn conv
619 OPEN Check_Cont_Name (l_cont_name);
620
621 FETCH Check_Cont_Name INTO
622 l_old_cont_instance_id,
623 l_old_cont_name;
624
625 IF Check_Cont_Name%FOUND AND l_old_cont_instance_id <> l_cont_instance_id THEN
626 CLOSE Check_Cont_Name;
627 RAISE WSH_INVALID_CONT_UPDATE;
628 END IF;
629
630 IF Check_Cont_Name%ISOPEN THEN
631 CLOSE Check_Cont_Name;
632 END IF;
633 */
634
635 WSH_CONTAINER_UTILITIES.Get_Delivery_Status (
636 l_old_cont_instance_id,
637 l_delivery_id,
638 l_del_status,
639 x_return_status);
640
641 IF x_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
642 RAISE WSH_FAIL_CONT_UPDATE;
643 END IF;
644
645 -- Bug: 1577876.
646 -- 1. Update is allowed even if Container is not assigned to a Delivery.
647 -- 2. if Assigned then Updateable only if Delivery Status not in 'IT', 'CL', 'CO'
648 IF (l_delivery_id <> -99 AND l_del_status in ('IT', 'CL', 'CO', 'SR', 'SC') ) THEN
649 RAISE WSH_FAIL_CONT_UPDATE;
650 END IF;
651
652
653 END IF;
654
655
656 -- call update delivery details public API to update entire
657 -- container record with all validations..
658
659
660 --l_cont_tab(1) := p_container_rec(1);
661
662 --
663 l_IN_rec.caller := WSH_GLBL_VAR_STRCT_GRP.c_skip_miss_info;
664 l_IN_rec.action_code := 'UPDATE';
665 l_detail_info_tab(1).delivery_detail_id := p_container_rec(1).delivery_detail_id ;
666 l_detail_info_tab(1).source_code := p_container_rec(1).source_code ;
667 l_detail_info_tab(1).source_header_id := p_container_rec(1).source_header_id ;
668 l_detail_info_tab(1).source_line_id := p_container_rec(1).source_line_id ;
669 l_detail_info_tab(1).customer_id := p_container_rec(1).customer_id ;
670 l_detail_info_tab(1).sold_to_contact_id := p_container_rec(1).sold_to_contact_id ;
671 l_detail_info_tab(1).inventory_item_id := p_container_rec(1).inventory_item_id ;
672 l_detail_info_tab(1).item_description := p_container_rec(1).item_description ;
673 l_detail_info_tab(1).hazard_class_id := p_container_rec(1).hazard_class_id ;
674 l_detail_info_tab(1).country_of_origin := p_container_rec(1).country_of_origin ;
675 l_detail_info_tab(1).classification := p_container_rec(1).classification ;
676 l_detail_info_tab(1).ship_to_contact_id := p_container_rec(1).ship_to_contact_id ;
677 l_detail_info_tab(1).ship_to_site_use_id := p_container_rec(1).ship_to_site_use_id ;
678 l_detail_info_tab(1).deliver_to_contact_id := p_container_rec(1).deliver_to_contact_id ;
679 l_detail_info_tab(1).intmed_ship_to_contact_id := p_container_rec(1).intmed_ship_to_contact_id ;
680 l_detail_info_tab(1).hold_code := p_container_rec(1).hold_code ;
681 l_detail_info_tab(1).ship_tolerance_above := p_container_rec(1).ship_tolerance_above ;
682 l_detail_info_tab(1).ship_tolerance_below := p_container_rec(1).ship_tolerance_below ;
683 l_detail_info_tab(1).shipped_quantity := p_container_rec(1).shipped_quantity ;
684 l_detail_info_tab(1).delivered_quantity := p_container_rec(1).delivered_quantity ;
685 l_detail_info_tab(1).subinventory := p_container_rec(1).subinventory ;
686 l_detail_info_tab(1).revision := p_container_rec(1).revision ;
687 l_detail_info_tab(1).lot_number := p_container_rec(1).lot_number ;
688 l_detail_info_tab(1).customer_requested_lot_flag := p_container_rec(1).customer_requested_lot_flag ;
689 l_detail_info_tab(1).serial_number := p_container_rec(1).serial_number ;
690 l_detail_info_tab(1).locator_id := p_container_rec(1).locator_id ;
691 l_detail_info_tab(1).date_requested := p_container_rec(1).date_requested ;
692 l_detail_info_tab(1).date_scheduled := p_container_rec(1).date_scheduled ;
693 l_detail_info_tab(1).master_container_item_id := p_container_rec(1).master_container_item_id ;
694 l_detail_info_tab(1).detail_container_item_id := p_container_rec(1).detail_container_item_id ;
695 l_detail_info_tab(1).load_seq_number := p_container_rec(1).load_seq_number ;
696 l_detail_info_tab(1).carrier_id := p_container_rec(1).carrier_id ;
697 l_detail_info_tab(1).freight_terms_code := p_container_rec(1).freight_terms_code ;
698 l_detail_info_tab(1).shipment_priority_code := p_container_rec(1).shipment_priority_code ;
699 l_detail_info_tab(1).fob_code := p_container_rec(1).fob_code ;
700 l_detail_info_tab(1).customer_item_id := p_container_rec(1).customer_item_id ;
701 l_detail_info_tab(1).dep_plan_required_flag := p_container_rec(1).dep_plan_required_flag ;
702 l_detail_info_tab(1).customer_prod_seq := p_container_rec(1).customer_prod_seq ;
703 l_detail_info_tab(1).customer_dock_code := p_container_rec(1).customer_dock_code ;
704 l_detail_info_tab(1).cust_model_serial_number := p_container_rec(1).cust_model_serial_number ;
705 l_detail_info_tab(1).customer_job := p_container_rec(1).customer_job ;
706 l_detail_info_tab(1).customer_production_line := p_container_rec(1).customer_production_line ;
707 l_detail_info_tab(1).net_weight := p_container_rec(1).net_weight ;
708 l_detail_info_tab(1).weight_uom_code := p_container_rec(1).weight_uom_code ;
709 l_detail_info_tab(1).volume := p_container_rec(1).volume ;
710 l_detail_info_tab(1).volume_uom_code := p_container_rec(1).volume_uom_code ;
711 l_detail_info_tab(1).tp_attribute_category := p_container_rec(1).tp_attribute_category ;
712 l_detail_info_tab(1).tp_attribute1 := p_container_rec(1).tp_attribute1 ;
713 l_detail_info_tab(1).tp_attribute2 := p_container_rec(1).tp_attribute2 ;
714 l_detail_info_tab(1).tp_attribute3 := p_container_rec(1).tp_attribute3 ;
715 l_detail_info_tab(1).tp_attribute4 := p_container_rec(1).tp_attribute4 ;
716 l_detail_info_tab(1).tp_attribute5 := p_container_rec(1).tp_attribute5 ;
717 l_detail_info_tab(1).tp_attribute6 := p_container_rec(1).tp_attribute6 ;
718 l_detail_info_tab(1).tp_attribute7 := p_container_rec(1).tp_attribute7 ;
719 l_detail_info_tab(1).tp_attribute8 := p_container_rec(1).tp_attribute8 ;
720 l_detail_info_tab(1).tp_attribute9 := p_container_rec(1).tp_attribute9 ;
721 l_detail_info_tab(1).tp_attribute10 := p_container_rec(1).tp_attribute10 ;
722 l_detail_info_tab(1).tp_attribute11 := p_container_rec(1).tp_attribute11 ;
723 l_detail_info_tab(1).tp_attribute12 := p_container_rec(1).tp_attribute12 ;
724 l_detail_info_tab(1).tp_attribute13 := p_container_rec(1).tp_attribute13 ;
725 l_detail_info_tab(1).tp_attribute14 := p_container_rec(1).tp_attribute14 ;
726 l_detail_info_tab(1).tp_attribute15 := p_container_rec(1).tp_attribute15 ;
727 l_detail_info_tab(1).attribute_category := p_container_rec(1).attribute_category ;
728 l_detail_info_tab(1).attribute1 := p_container_rec(1).attribute1 ;
729 l_detail_info_tab(1).attribute2 := p_container_rec(1).attribute2 ;
730 l_detail_info_tab(1).attribute3 := p_container_rec(1).attribute3 ;
731 l_detail_info_tab(1).attribute4 := p_container_rec(1).attribute4 ;
732 l_detail_info_tab(1).attribute5 := p_container_rec(1).attribute5 ;
733 l_detail_info_tab(1).attribute6 := p_container_rec(1).attribute6 ;
734 l_detail_info_tab(1).attribute7 := p_container_rec(1).attribute7 ;
735 l_detail_info_tab(1).attribute8 := p_container_rec(1).attribute8 ;
736 l_detail_info_tab(1).attribute9 := p_container_rec(1).attribute9 ;
737 l_detail_info_tab(1).attribute10 := p_container_rec(1).attribute10 ;
738 l_detail_info_tab(1).attribute11 := p_container_rec(1).attribute11 ;
739 l_detail_info_tab(1).attribute12 := p_container_rec(1).attribute12 ;
740 l_detail_info_tab(1).attribute13 := p_container_rec(1).attribute13 ;
741 l_detail_info_tab(1).attribute14 := p_container_rec(1).attribute14 ;
742 l_detail_info_tab(1).attribute15 := p_container_rec(1).attribute15 ;
743 l_detail_info_tab(1).request_id := p_container_rec(1).request_id ;
744 l_detail_info_tab(1).mvt_stat_status := p_container_rec(1).mvt_stat_status ;
745 l_detail_info_tab(1).organization_id := p_container_rec(1).organization_id ;
746 l_detail_info_tab(1).transaction_temp_id := p_container_rec(1).transaction_temp_id ;
747 l_detail_info_tab(1).ship_set_id := p_container_rec(1).ship_set_id ;
748 l_detail_info_tab(1).arrival_set_id := p_container_rec(1).arrival_set_id ;
749 l_detail_info_tab(1).ship_model_complete_flag := p_container_rec(1).ship_model_complete_flag ;
750 l_detail_info_tab(1).top_model_line_id := p_container_rec(1).top_model_line_id ;
751 l_detail_info_tab(1).source_header_number := p_container_rec(1).source_header_number ;
752 l_detail_info_tab(1).source_header_type_id := p_container_rec(1).source_header_type_id ;
753 l_detail_info_tab(1).source_header_type_name := p_container_rec(1).source_header_type_name ;
754 l_detail_info_tab(1).cust_po_number := p_container_rec(1).cust_po_number ;
755 l_detail_info_tab(1).ato_line_id := p_container_rec(1).ato_line_id ;
756 l_detail_info_tab(1).src_requested_quantity := p_container_rec(1).src_requested_quantity ;
757 l_detail_info_tab(1).src_requested_quantity_uom := p_container_rec(1).src_requested_quantity_uom ;
758 l_detail_info_tab(1).move_order_line_id := p_container_rec(1).move_order_line_id ;
759 l_detail_info_tab(1).cancelled_quantity := p_container_rec(1).cancelled_quantity ;
760 l_detail_info_tab(1).quality_control_quantity := p_container_rec(1).quality_control_quantity ;
761 l_detail_info_tab(1).cycle_count_quantity := p_container_rec(1).cycle_count_quantity ;
762 l_detail_info_tab(1).tracking_number := p_container_rec(1).tracking_number ;
763 l_detail_info_tab(1).movement_id := p_container_rec(1).movement_id ;
764 l_detail_info_tab(1).shipping_instructions := p_container_rec(1).shipping_instructions ;
765 l_detail_info_tab(1).packing_instructions := p_container_rec(1).packing_instructions ;
766 l_detail_info_tab(1).project_id := p_container_rec(1).project_id ;
767 l_detail_info_tab(1).task_id := p_container_rec(1).task_id ;
768 l_detail_info_tab(1).org_id := p_container_rec(1).org_id ;
769 l_detail_info_tab(1).oe_interfaced_flag := p_container_rec(1).oe_interfaced_flag ;
770 l_detail_info_tab(1).inv_interfaced_flag := p_container_rec(1).inv_interfaced_flag ;
771 l_detail_info_tab(1).inspection_flag := p_container_rec(1).inspection_flag ;
772 l_detail_info_tab(1).released_status := p_container_rec(1).released_status ;
773 l_detail_info_tab(1).container_flag := p_container_rec(1).container_flag ;
774 l_detail_info_tab(1).container_type_code := p_container_rec(1).container_type_code ;
775 l_detail_info_tab(1).container_name := p_container_rec(1).container_name ;
776 l_detail_info_tab(1).fill_percent := p_container_rec(1).fill_percent ;
777 l_detail_info_tab(1).gross_weight := p_container_rec(1).gross_weight ;
778 l_detail_info_tab(1).master_serial_number := p_container_rec(1).master_serial_number ;
779 l_detail_info_tab(1).maximum_load_weight := p_container_rec(1).maximum_load_weight ;
780 l_detail_info_tab(1).maximum_volume := p_container_rec(1).maximum_volume ;
781 l_detail_info_tab(1).minimum_fill_percent := p_container_rec(1).minimum_fill_percent ;
782 l_detail_info_tab(1).seal_code := p_container_rec(1).seal_code ;
783 l_detail_info_tab(1).unit_number := p_container_rec(1).unit_number ;
784 l_detail_info_tab(1).unit_price := p_container_rec(1).unit_price ;
785 l_detail_info_tab(1).currency_code := p_container_rec(1).currency_code ;
786 l_detail_info_tab(1).freight_class_cat_id := p_container_rec(1).freight_class_cat_id ;
787 l_detail_info_tab(1).commodity_code_cat_id := p_container_rec(1).commodity_code_cat_id ;
788 l_detail_info_tab(1).preferred_grade := p_container_rec(1).preferred_grade ;
789 l_detail_info_tab(1).shipped_quantity2 := p_container_rec(1).shipped_quantity2 ;
790 l_detail_info_tab(1).delivered_quantity2 := p_container_rec(1).delivered_quantity2 ;
791 l_detail_info_tab(1).cancelled_quantity2 := p_container_rec(1).cancelled_quantity2 ;
792 l_detail_info_tab(1).quality_control_quantity2 := p_container_rec(1).quality_control_quantity2 ;
793 l_detail_info_tab(1).cycle_count_quantity2 := p_container_rec(1).cycle_count_quantity2 ;
794
795 l_detail_info_tab(1).lpn_id := p_container_rec(1).lpn_id ;
796
797 IF( p_container_rec(1).lpn_id IS NULL ) OR
798 (p_container_rec(1).lpn_id = FND_API.G_MISS_NUM)
799 THEN
800 IF p_container_rec(1).lpn_id IS NULL THEN
801 l_IN_rec.action_code := 'UPDATE_NULL';
802 END IF;
803 OPEN c_get_lpn(p_container_rec(1).delivery_detail_id);
804 FETCH c_get_lpn INTO l_detail_info_tab(1).lpn_id;
805 CLOSE c_get_lpn;
806 END IF;
807
808 l_detail_info_tab(1).pickable_flag := p_container_rec(1).pickable_flag ;
809 l_detail_info_tab(1).original_subinventory := p_container_rec(1).original_subinventory ;
810 l_detail_info_tab(1).to_serial_number := p_container_rec(1).to_serial_number ;
811 l_detail_info_tab(1).picked_quantity := p_container_rec(1).picked_quantity ;
812 l_detail_info_tab(1).picked_quantity2 := p_container_rec(1).picked_quantity2 ;
813 l_detail_info_tab(1).received_quantity := p_container_rec(1).received_quantity ;
814 l_detail_info_tab(1).received_quantity2 := p_container_rec(1).received_quantity2 ;
815 l_detail_info_tab(1).source_line_set_id := p_container_rec(1).source_line_set_id ;
816 l_detail_info_tab(1).ship_from_location_id := FND_API.G_MISS_NUM;
817 l_detail_info_tab(1).ship_to_location_id := FND_API.G_MISS_NUM;
818 l_detail_info_tab(1).deliver_to_location_id := FND_API.G_MISS_NUM;
819 l_detail_info_tab(1).deliver_to_site_use_id := p_container_rec(1).deliver_to_org_id;
820 l_detail_info_tab(1).intmed_ship_to_location_id := FND_API.G_MISS_NUM;
821 l_detail_info_tab(1).requested_quantity := FND_API.G_MISS_NUM;
822 l_detail_info_tab(1).requested_quantity_uom := FND_API.G_MISS_CHAR;
823 l_detail_info_tab(1).ship_method_code := p_container_rec(1).shipping_method_code;
824 l_detail_info_tab(1).created_by := FND_API.G_MISS_NUM;
825 l_detail_info_tab(1).creation_date := FND_API.G_MISS_DATE;
826 l_detail_info_tab(1).last_update_date := FND_API.G_MISS_DATE;
827 l_detail_info_tab(1).last_update_login := FND_API.G_MISS_NUM;
828 l_detail_info_tab(1).last_updated_by := FND_API.G_MISS_NUM;
829 l_detail_info_tab(1).program_application_id := FND_API.G_MISS_NUM;
830 l_detail_info_tab(1).program_id := FND_API.G_MISS_NUM;
831 l_detail_info_tab(1).program_update_date := FND_API.G_MISS_DATE;
832 l_detail_info_tab(1).released_flag := FND_API.G_MISS_CHAR;
833 l_detail_info_tab(1).split_from_detail_id := p_container_rec(1).split_from_delivery_detail_id;
834 l_detail_info_tab(1).source_line_number := FND_API.G_MISS_CHAR;
835 l_detail_info_tab(1).src_requested_quantity2 := FND_API.G_MISS_NUM;
836 l_detail_info_tab(1).src_requested_quantity_uom2 := FND_API.G_MISS_CHAR;
837 l_detail_info_tab(1).requested_quantity2 := FND_API.G_MISS_NUM;
838 l_detail_info_tab(1).requested_quantity_uom2 := FND_API.G_MISS_CHAR;
839 l_detail_info_tab(1).batch_id := FND_API.G_MISS_NUM;
840 --l_detail_info_tab(1).ROWID := FND_API.G_MISS_CHAR;
841 l_detail_info_tab(1).transaction_id := FND_API.G_MISS_NUM;
842 l_detail_info_tab(1).VENDOR_ID := FND_API.G_MISS_NUM;
843 l_detail_info_tab(1).SHIP_FROM_SITE_ID := FND_API.G_MISS_NUM;
844 l_detail_info_tab(1).LINE_DIRECTION := FND_API.G_MISS_CHAR;
845 l_detail_info_tab(1).PARTY_ID := FND_API.G_MISS_NUM;
846 l_detail_info_tab(1).ROUTING_REQ_ID := FND_API.G_MISS_NUM;
847 l_detail_info_tab(1).SHIPPING_CONTROL := FND_API.G_MISS_CHAR;
848 l_detail_info_tab(1).SOURCE_BLANKET_REFERENCE_ID := FND_API.G_MISS_NUM;
849 l_detail_info_tab(1).SOURCE_BLANKET_REFERENCE_NUM := FND_API.G_MISS_NUM;
850 l_detail_info_tab(1).PO_SHIPMENT_LINE_ID := FND_API.G_MISS_NUM;
851 l_detail_info_tab(1).PO_SHIPMENT_LINE_NUMBER := FND_API.G_MISS_NUM;
852 l_detail_info_tab(1).RETURNED_QUANTITY := FND_API.G_MISS_NUM;
853 l_detail_info_tab(1).RETURNED_QUANTITY2 := FND_API.G_MISS_NUM;
854 l_detail_info_tab(1).RCV_SHIPMENT_LINE_ID := FND_API.G_MISS_NUM;
855 l_detail_info_tab(1).SOURCE_LINE_TYPE_CODE := FND_API.G_MISS_CHAR;
856 l_detail_info_tab(1).SUPPLIER_ITEM_NUMBER := FND_API.G_MISS_CHAR;
857 l_detail_info_tab(1).IGNORE_FOR_PLANNING := FND_API.G_MISS_CHAR;
858 l_detail_info_tab(1).EARLIEST_PICKUP_DATE := FND_API.G_MISS_DATE;
859 l_detail_info_tab(1).LATEST_PICKUP_DATE := FND_API.G_MISS_DATE;
860 l_detail_info_tab(1).EARLIEST_DROPOFF_DATE := FND_API.G_MISS_DATE;
861 l_detail_info_tab(1).LATEST_DROPOFF_DATE := FND_API.G_MISS_DATE;
862 l_detail_info_tab(1).REQUEST_DATE_TYPE_CODE := FND_API.G_MISS_CHAR;
863 l_detail_info_tab(1).tp_delivery_detail_id := FND_API.G_MISS_NUM;
864 l_detail_info_tab(1).source_document_type_id := FND_API.G_MISS_NUM;
865 l_detail_info_tab(1).unit_weight := FND_API.G_MISS_NUM;
866 l_detail_info_tab(1).unit_volume := FND_API.G_MISS_NUM;
867 l_detail_info_tab(1).filled_volume := FND_API.G_MISS_NUM;
868 l_detail_info_tab(1).wv_frozen_flag := FND_API.G_MISS_CHAR;
869 l_detail_info_tab(1).mode_of_transport := FND_API.G_MISS_CHAR;
870 l_detail_info_tab(1).service_level := FND_API.G_MISS_CHAR;
871 l_detail_info_tab(1).po_revision_number := FND_API.G_MISS_NUM;
872 l_detail_info_tab(1).release_revision_number := FND_API.G_MISS_NUM;
873
874 WSH_WMS_LPN_GRP.create_update_containers
875 ( p_api_version => p_api_version,
876 p_init_msg_list => p_init_msg_list,
877 p_commit => p_commit,
878 x_return_status => l_return_status,
879 x_msg_count => l_msg_count,
880 x_msg_data => l_msg_data,
881 p_detail_info_tab => l_detail_info_tab,
882 p_IN_rec => l_IN_rec,
883 x_OUT_rec => l_OUT_rec
884 );
885
886
887 IF x_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
888 RAISE WSH_FAIL_CONT_UPDATE;
889 END IF;
890
891 END IF; -- if p_container_rec is not null
892
893
894 IF FND_API.TO_BOOLEAN(p_commit) THEN
895 -- dbms_output.put_line('commit');
896 COMMIT;
897 END IF;
898
899 FND_MSG_PUB.Count_And_Get
900 ( p_count => x_msg_count
901 , p_data => x_msg_data
902 , p_encoded => FND_API.G_FALSE
903 );
904
905
906 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
907
908 --
909 -- Debug Statements
910 --
911 IF l_debug_on THEN
912 WSH_DEBUG_SV.pop(l_module_name);
913 END IF;
914 --
915 EXCEPTION
916
917 WHEN WSH_INVALID_CONT_UPDATE then
918 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
919 rollback to Update_Containers_SP_Grp;
920 fnd_message.set_name('WSH', 'WSH_CONT_INVALID_UPDATE');
921 WSH_UTIL_CORE.ADD_MESSAGE(x_return_status);
922 /*
923 WSH_UTIL_CORE.get_messages('Y', l_msg_summary, l_msg_details, x_msg_count);
924 if x_msg_count > 1 then
925 x_msg_data := l_msg_summary || l_msg_details;
926 else
927 x_msg_data := l_msg_summary;
928 end if;
929 */
930 FND_MSG_PUB.Count_And_Get
931 ( p_count => x_msg_count
932 , p_data => x_msg_data
933 , p_encoded => FND_API.G_FALSE
934 );
935
936 --
937 -- Debug Statements
938 --
939 IF l_debug_on THEN
940 WSH_DEBUG_SV.logmsg(l_module_name,'WSH_INVALID_CONT_UPDATE exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
941 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:WSH_INVALID_CONT_UPDATE');
942 END IF;
943 --
944 WHEN WSH_INVALID_CONT then
945 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
946 rollback to Update_Containers_SP_Grp;
947 fnd_message.set_name('WSH', 'WSH_CONT_INVALID_NAME');
948 WSH_UTIL_CORE.ADD_MESSAGE(x_return_status);
949 /*
950 WSH_UTIL_CORE.get_messages('Y', l_msg_summary, l_msg_details, x_msg_count);
951 if x_msg_count > 1 then
952 x_msg_data := l_msg_summary || l_msg_details;
953 else
954 x_msg_data := l_msg_summary;
955 end if;
956 */
957 FND_MSG_PUB.Count_And_Get
958 ( p_count => x_msg_count
959 , p_data => x_msg_data
960 , p_encoded => FND_API.G_FALSE
961 );
962 --
963 -- Debug Statements
964 --
965 IF l_debug_on THEN
966 WSH_DEBUG_SV.logmsg(l_module_name,'WSH_INVALID_CONT exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
967 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:WSH_INVALID_CONT');
968 END IF;
969 --
970 WHEN WSH_FAIL_CONT_UPDATE then
971 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
972 rollback to Update_Containers_SP_Grp;
973 fnd_message.set_name('WSH', 'WSH_CONT_UPDATE_ERROR');
974 WSH_UTIL_CORE.ADD_MESSAGE(x_return_status);
975 /*
976 WSH_UTIL_CORE.get_messages('Y', l_msg_summary, l_msg_details, x_msg_count);
977 if x_msg_count > 1 then
978 x_msg_data := l_msg_summary || l_msg_details;
979 else
980 x_msg_data := l_msg_summary;
981 end if;
982 */
983 FND_MSG_PUB.Count_And_Get
984 ( p_count => x_msg_count
985 , p_data => x_msg_data
986 , p_encoded => FND_API.G_FALSE
987 );
988
989 --
990 -- Debug Statements
991 --
992 IF l_debug_on THEN
993 WSH_DEBUG_SV.logmsg(l_module_name,'WSH_FAIL_CONT_UPDATE exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
994 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:WSH_FAIL_CONT_UPDATE');
995 END IF;
996 --
997 WHEN OTHERS then
998 wsh_util_core.default_handler('WSH_CONTAINER_GRP.Update_Container');
999 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1000 rollback to Update_Containers_SP_Grp;
1001 /*
1002
1003 WSH_UTIL_CORE.get_messages('Y', l_msg_summary, l_msg_details, x_msg_count);
1004 if x_msg_count > 1 then
1005 x_msg_data := l_msg_summary || l_msg_details;
1006 else
1007 x_msg_data := l_msg_summary;
1008 end if;
1009
1010 */
1011 FND_MSG_PUB.Count_And_Get
1012 ( p_count => x_msg_count
1013 , p_data => x_msg_data
1014 , p_encoded => FND_API.G_FALSE
1015 );
1016
1017
1018 --
1019 -- Debug Statements
1020 --
1021 IF l_debug_on THEN
1022 WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '|| SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
1023 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
1024 END IF;
1025 --
1026 END Update_Container;
1027
1028
1029 ------------------------------------------------------------------------------
1030 -- Procedure: Auto_Pack
1031 --
1032 -- Parameters: 1) entity_tab - table of ids of either lines or containers or
1033 -- deliveries that need to be autopacked
1034 -- 2) entity_type - type of entity id contained in the entity_tab
1035 -- that needs to be autopacked ('L' - lines,
1036 -- 'C' - containers OR 'D' - deliveries)
1037 -- 3) group_id_tab - table of ids (numbers that determine
1038 -- the grouping of lines for packing into containers)
1039 -- 4) container_instance_tab - table of delivery detail ids of
1040 -- containers that are created during the autopacking
1041 -- 5) pack cont flag - a 'Y' or 'N' value to determine whether to
1042 -- to autopack the detail containers that are created into
1043 -- parent containers.
1044 -- 6) other standard parameters
1045 --
1046 -- Description: This procedure takes in a table of ids of either delivery lines
1047 -- or container or deliveries and autopacks the lines/containers/deliveries
1048 -- into detail containers. The grouping id table is used only if the input
1049 -- table of entities are lines or containers only. The packing of lines and
1050 -- containers into parent containers is determined by the grouping id for each
1051 -- line/container. If the grouping id table is not input, the API determines
1052 -- the grouping ids for the lines/containers based on the grouping attributes
1053 -- of the lines/containers. The lines/containers are then autopacked into
1054 -- detail containers and the detail containers are packed into parent/master
1055 -- containers based on whether the pack cont flag is set to 'Y' or 'N'. The
1056 -- API returns a table of container instance ids created during the autopacking
1057 -- operation. If the detail containers are packed into parent containers, the
1058 -- output table of ids will contain both the detail and parent containers'
1059 -- delivery detail ids.
1060 ------------------------------------------------------------------------------
1061
1062 PROCEDURE Auto_Pack (
1063 -- Standard parameters
1064 p_api_version IN NUMBER,
1065 p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_FALSE,
1066 p_commit IN VARCHAR2 DEFAULT FND_API.G_FALSE,
1067 p_validation_level IN NUMBER DEFAULT FND_API.G_VALID_LEVEL_FULL,
1068 x_return_status OUT NOCOPY VARCHAR2,
1069 x_msg_count OUT NOCOPY NUMBER,
1070 x_msg_data OUT NOCOPY VARCHAR2,
1071
1072 -- program specific parameters
1073 p_entity_tab IN WSH_UTIL_CORE.ID_TAB_TYPE,
1074 p_entity_type IN VARCHAR2,
1075 p_group_id_tab IN WSH_UTIL_CORE.ID_TAB_TYPE,
1076 p_pack_cont_flag IN VARCHAR2,
1077
1078 -- program specific out parameters
1079 x_cont_inst_tab OUT NOCOPY WSH_UTIL_CORE.ID_TAB_TYPE
1080
1081 ) IS
1082
1083 -- Standard call to check for call compatibility
1084 l_api_version CONSTANT NUMBER := 1.0;
1085 l_api_name CONSTANT VARCHAR2(30):= 'Update_Containers';
1086
1087 l_return_status VARCHAR2(30) := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
1088
1089 l_det_tab WSH_UTIL_CORE.ID_TAB_TYPE;
1090 l_cont_tab WSH_UTIL_CORE.ID_TAB_TYPE;
1091 l_del_tab WSH_UTIL_CORE.ID_TAB_TYPE;
1092
1093 l_delivery_detail_id NUMBER;
1094 l_delivery_id NUMBER;
1095 l_del_status VARCHAR2(10);
1096 l_delivery_name VARCHAR2(30);
1097
1098 l_cont_name VARCHAR2(30) := NULL;
1099 l_cont_flag VARCHAR2(1);
1100 l_cont_instance_id NUMBER;
1101
1102 l_old_cont_name VARCHAR2(30);
1103 l_old_cont_instance_id NUMBER;
1104
1105 l_det_cnt NUMBER := 0;
1106 l_cont_cnt NUMBER := 0;
1107 l_del_cnt NUMBER := 0;
1108
1109 l_msg_summary VARCHAR2(2000) := NULL;
1110 l_msg_details VARCHAR2(4000) := NULL;
1111 l_ret_status VARCHAR2(30) := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
1112
1113
1114
1115 WSH_INVALID_CONT EXCEPTION;
1116 WSH_INVALID_DETAIL EXCEPTION;
1117 WSH_INVALID_DELIVERY EXCEPTION;
1118 WSH_INVALID_ENTITY_TYPE EXCEPTION;
1119 WSH_FAIL_AUTOPACK EXCEPTION;
1120
1121 CURSOR Check_Detail (v_detail_id NUMBER)
1122 IS
1123 SELECT delivery_detail_id
1124 , container_flag
1125 FROM wsh_delivery_details
1126 WHERE delivery_detail_id = v_detail_id
1127 AND NVL(line_direction,'O') IN ('O','IO'); -- J-IB-NPARIKH;
1128
1129 CURSOR Check_Delivery (v_del_id NUMBER)
1130 IS
1131 SELECT delivery_id
1132 , name
1133 , status_code
1134 FROM wsh_new_deliveries
1135 WHERE delivery_id = v_del_id
1136 AND NVL(shipment_direction,'O') IN ('O','IO'); -- J-IB-NPARIKH;
1137
1138 --added by adagur for bug 16397445
1139 CURSOR Get_cont_Detail_Id (v_delivery_detail_id VARCHAR2)
1140 IS
1141 SELECT wdd.delivery_detail_id
1142 , wdd.container_flag
1143 , wdacnt.delivery_id
1144 FROM wsh_delivery_details wdd
1145 , wsh_delivery_assignments wda
1146 , wsh_delivery_assignments wdacnt
1147 WHERE wda.delivery_id IS NULL
1148 AND wda.delivery_detail_id = v_delivery_detail_id
1149 AND wda.parent_delivery_detail_id = wdd.delivery_detail_id
1150 AND wdacnt.parent_delivery_detail_id = wda.parent_delivery_detail_id
1151 AND wdacnt.delivery_id IS NOT NULL
1152 UNION
1153 SELECT wdd.delivery_detail_id
1154 , wdd.container_flag
1155 , wda.delivery_id
1156 FROM wsh_delivery_details wdd
1157 , wsh_delivery_assignments wda
1158 , wsh_delivery_assignments wdacnt
1159 WHERE wda.delivery_detail_id = v_delivery_detail_id
1160 AND wda.parent_delivery_detail_id = wdd.delivery_detail_id
1161 AND wda.delivery_id IS NOT NULL
1162 AND wdacnt.delivery_id IS NULL
1163 AND wdacnt.delivery_detail_id = wdd.delivery_detail_id
1164 AND wdacnt.parent_delivery_detail_id IS NULL;
1165 --End by adagur for bug 16397445
1166
1167
1168 -- K LPN CONV. rv
1169 l_lpn_in_sync_comm_rec WSH_GLBL_VAR_STRCT_GRP.lpn_sync_comm_in_rec_type;
1170 l_lpn_out_sync_comm_rec WSH_GLBL_VAR_STRCT_GRP.lpn_sync_comm_out_rec_type;
1171 l_msg_count NUMBER;
1172 l_msg_data VARCHAR2(32767);
1173 -- K LPN CONV. rv
1174
1175 --
1176 l_debug_on BOOLEAN;
1177 --
1178 l_module_name CONSTANT VARCHAR2(100) := 'wsh.plsql.' || G_PKG_NAME || '.' || 'AUTO_PACK';
1179 --
1180 --Bugfix 4070732
1181 l_api_session_name CONSTANT VARCHAR2(150) := G_PKG_NAME ||'.' || l_module_name;
1182 l_reset_flags BOOLEAN;
1183 l_num_warnings NUMBER;
1184 l_num_errors NUMBER;
1185
1186 BEGIN
1187 --Bugfix 4070732
1188
1189 l_num_warnings := 0;
1190 l_num_errors := 0;
1191
1192 IF WSH_UTIL_CORE.G_START_OF_SESSION_API is null THEN
1193 WSH_UTIL_CORE.G_START_OF_SESSION_API := l_api_session_name;
1194 WSH_UTIL_CORE.G_CALL_FTE_LOAD_TENDER_API := FALSE;
1195 END IF;
1196
1197 -- Standard begin of API savepoint
1198 --
1199 -- Debug Statements
1200 --
1201 --
1202 l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
1203 --
1204 IF l_debug_on IS NULL
1205 THEN
1206 l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
1207 END IF;
1208 --
1209 IF l_debug_on THEN
1210 WSH_DEBUG_SV.push(l_module_name);
1211 --
1212 WSH_DEBUG_SV.log(l_module_name,'P_API_VERSION',P_API_VERSION);
1213 WSH_DEBUG_SV.log(l_module_name,'P_INIT_MSG_LIST',P_INIT_MSG_LIST);
1214 WSH_DEBUG_SV.log(l_module_name,'P_COMMIT',P_COMMIT);
1215 WSH_DEBUG_SV.log(l_module_name,'P_VALIDATION_LEVEL',P_VALIDATION_LEVEL);
1216 WSH_DEBUG_SV.log(l_module_name,'P_ENTITY_TYPE',P_ENTITY_TYPE);
1217 WSH_DEBUG_SV.log(l_module_name,'P_PACK_CONT_FLAG',P_PACK_CONT_FLAG);
1218 END IF;
1219 --
1220 SAVEPOINT Autopack_SP_Grp;
1221
1222 IF NOT FND_API.compatible_api_call (
1223 l_api_version,
1224 p_api_version,
1225 l_api_name,
1226 G_PKG_NAME) THEN
1227 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1228 END IF;
1229
1230 -- Check p_init_msg_list
1231 IF FND_API.to_boolean(p_init_msg_list) THEN
1232 FND_MSG_PUB.initialize;
1233 END IF;
1234
1235 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
1236
1237 -- first decide which entity it is by checking entity type..
1238 -- based on entity type validate all the entity ids..
1239
1240 IF p_entity_type = 'L' OR p_entity_type = 'C' THEN
1241
1242 FOR i IN 1..p_entity_tab.count LOOP
1243
1244 IF p_entity_tab(i) IS NOT NULL THEN
1245
1246 OPEN Check_Detail(p_entity_tab(i));
1247
1248 FETCH Check_Detail INTO
1249 l_delivery_detail_id,
1250 l_cont_flag;
1251
1252 IF Check_Detail%NOTFOUND THEN
1253 CLOSE Check_Detail;
1254 l_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1255 END IF;
1256
1257 IF Check_Detail%ISOPEN THEN
1258 CLOSE Check_Detail;
1259 END IF;
1260
1261 l_det_cnt := l_det_cnt + 1;
1262 l_det_tab(l_det_cnt) := p_entity_tab(i);
1263
1264 ELSE
1265 IF l_return_status = WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
1266 l_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
1267 END IF;
1268 END IF;
1269 END LOOP;
1270
1271 IF l_det_tab.count > 0 THEN
1272
1273 --
1274 -- Debug Statements
1275 --
1276 IF l_debug_on THEN
1277 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_DLVB_COMMON_ACTIONS.AUTO_PACK_LINES',WSH_DEBUG_SV.C_PROC_LEVEL);
1278 END IF;
1279 --
1280 WSH_DLVB_COMMON_ACTIONS.Auto_Pack_Lines (
1281 p_group_id_tab => p_group_id_tab,
1282 p_detail_tab => l_det_tab,
1283 p_pack_cont_flag => p_pack_cont_flag,
1284 p_group_api_flag => 'Y',
1285 x_cont_inst_tab => x_cont_inst_tab,
1286 x_return_status => l_ret_status);
1287
1288 IF l_ret_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
1289 IF l_ret_status = WSH_UTIL_CORE.G_RET_STS_WARNING THEN
1290 -- Bug#4280365 Start
1291 If p_pack_cont_flag = 'Y' then
1292 fnd_message.set_name('WSH', 'WSH_AUTO_PACK_MASTER_MSG');
1293 -- Bug#4280365 End
1294 Else
1295 fnd_message.set_name('WSH', 'WSH_AUTOPACK_ERROR');
1296 End If;
1297 WSH_UTIL_CORE.ADD_MESSAGE(l_return_status);
1298 RAISE WSH_UTIL_CORE.G_EXC_WARNING;
1299 ELSE
1300 RAISE WSH_FAIL_AUTOPACK;
1301 END IF;
1302 ELSE
1303 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
1304 IF l_debug_on THEN
1305 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_TP_RELEASE.CALCULATE_CONT_DEL_TPDATES',WSH_DEBUG_SV.C_PROC_LEVEL);
1306 END IF;
1307 WSH_TP_RELEASE.calculate_cont_del_tpdates(
1308 p_entity => 'DLVB',
1309 p_entity_ids =>x_cont_inst_tab,
1310 x_return_status => x_return_status);
1311 END IF;
1312 ELSE
1313 RAISE WSH_INVALID_DETAIL;
1314 END IF;
1315
1316
1317
1318 ELSIF p_entity_type = 'D' THEN
1319
1320 FOR i IN 1..p_entity_tab.count LOOP
1321
1322 IF p_entity_tab(i) IS NOT NULL THEN
1323
1324 OPEN Check_Delivery(p_entity_tab(i));
1325
1326 FETCH Check_Delivery INTO
1327 l_delivery_id,
1328 l_delivery_name,
1329 l_del_status;
1330
1331 IF Check_Delivery%NOTFOUND THEN
1332 CLOSE Check_Delivery;
1333 l_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1334 END IF;
1335
1336 IF Check_Delivery%ISOPEN THEN
1337 CLOSE Check_Delivery;
1338 END IF;
1339
1340 IF nvl(l_del_status,'OP') IN ('OP', 'SA') THEN
1341 l_del_cnt := l_del_cnt + 1;
1342 l_del_tab(l_del_cnt) := p_entity_tab(i);
1343 ELSE
1344 IF l_return_status = WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
1345 l_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
1346 END IF;
1347 END IF;
1348
1349 ELSE
1350 IF l_return_status = WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
1351 l_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
1352 END IF;
1353 END IF;
1354
1355 END LOOP;
1356
1357 IF l_del_tab.count > 0 THEN
1358
1359 --
1360 -- Debug Statements
1361 --
1362 IF l_debug_on THEN
1363 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_CONTAINER_ACTIONS.AUTO_PACK_DELIVERY',WSH_DEBUG_SV.C_PROC_LEVEL);
1364 END IF;
1365 --
1366 WSH_CONTAINER_ACTIONS.Auto_Pack_Delivery (
1367 l_del_tab,
1368 p_pack_cont_flag,
1369 x_cont_inst_tab,
1370 x_return_status);
1371
1372 IF x_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
1373 IF x_return_status = WSH_UTIL_CORE.G_RET_STS_WARNING THEN
1374 -- Bug#4280365 Start
1375 If p_pack_cont_flag = 'Y' then
1376 fnd_message.set_name('WSH', 'WSH_AUTO_PACK_MASTER_MSG');
1377 -- Bug#4280365 End
1378 Else
1379 fnd_message.set_name('WSH', 'WSH_AUTOPACK_ERROR');
1380 End If;
1381 WSH_UTIL_CORE.ADD_MESSAGE(l_return_status);
1382 RAISE WSH_UTIL_CORE.G_EXC_WARNING;
1383 ELSE
1384 RAISE WSH_FAIL_AUTOPACK;
1385 END IF;
1386 ELSE
1387 IF l_debug_on THEN
1388 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_TP_RELEASE.CALCULATE_CONT_DEL_TPDATES',WSH_DEBUG_SV.C_PROC_LEVEL);
1389 END IF;
1390 WSH_TP_RELEASE.calculate_cont_del_tpdates(
1391 p_entity => 'DLVY',
1392 p_entity_ids =>l_del_tab,
1393 x_return_status => x_return_status);
1394
1395 END IF;
1396
1397 ELSE
1398 RAISE WSH_INVALID_DELIVERY;
1399 END IF;
1400
1401 ELSE
1402 RAISE WSH_INVALID_ENTITY_TYPE;
1403 END IF;
1404
1405 --added by adagur for bug 16397445
1406 -- L is for auto-pack
1407 IF p_entity_type = 'L'
1408 THEN
1409 IF l_det_tab.count > 0
1410 THEN
1411 FOR i IN 1..l_det_tab.count
1412 LOOP
1413 OPEN Get_cont_Detail_Id (l_det_tab(i));
1414 FETCH Get_cont_Detail_Id
1415 INTO l_cont_instance_id
1416 , l_cont_flag
1417 , l_delivery_id;
1418
1419 IF Get_cont_Detail_Id%FOUND
1420 THEN
1421 wsh_delivery_details_actions.Assign_Detail_to_Delivery
1422 ( p_detail_id => l_det_tab(i)
1423 , p_delivery_id => l_delivery_id
1424 , x_return_status => x_return_status) ;
1425 CLOSE Get_cont_Detail_Id;
1426 ELSE
1427 CLOSE Get_cont_Detail_Id;
1428 END IF;
1429 END LOOP;
1430 END IF;
1431 END IF;
1432 --End by adagur for bug 16397445
1433 --
1434 -- K LPN CONV. rv
1435 --
1436 IF WSH_WMS_LPN_GRP.G_CALLBACK_REQUIRED = 'Y'
1437 THEN
1438 --{
1439 WSH_LPN_SYNC_COMM_PKG.SYNC_LPNS_TO_WMS
1440 (
1441 p_in_rec => l_lpn_in_sync_comm_rec,
1442 x_return_status => l_return_status,
1443 x_out_rec => l_lpn_out_sync_comm_rec
1444 );
1445 --
1446 --
1447 IF l_debug_on THEN
1448 WSH_DEBUG_SV.log(l_module_name,'Return status after calling WSH_LPN_SYNC_COMM_PKG.SYNC_LPNS_TO_WMS',l_return_status);
1449 END IF;
1450 --
1451 --
1452 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
1453 IF l_return_status = WSH_UTIL_CORE.G_RET_STS_WARNING THEN
1454 RAISE WSH_UTIL_CORE.G_EXC_WARNING;
1455 ELSIF l_return_status = WSH_UTIL_CORE.G_RET_STS_ERROR THEN
1456 RAISE WSH_FAIL_AUTOPACK;
1457 ELSE
1458 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1459 END IF;
1460 END IF;
1461 --}
1462 END IF;
1463 --
1464 -- K LPN CONV. rv
1465 --
1466 --Bugfix 4070732 {
1467 IF FND_API.TO_BOOLEAN(p_commit) THEN
1468
1469 l_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
1470
1471 -- dbms_output.put_line('commit');
1472 IF NOT(WSH_UTIL_CORE.G_CALL_FTE_LOAD_TENDER_API) THEN --{
1473 WSH_UTIL_CORE.Process_stops_for_load_tender(
1474 p_reset_flags => FALSE,
1475 x_return_status => l_return_status);
1476
1477 IF l_debug_on THEN
1478 WSH_DEBUG_SV.log(l_module_name,'l_return_status',l_return_status);
1479 END IF;
1480 END IF; --}
1481 IF (l_return_status = WSH_UTIL_CORE.G_RET_STS_SUCCESS)
1482 OR (l_return_status = WSH_UTIL_CORE.G_RET_STS_WARNING) THEN --{
1483
1484 COMMIT;
1485
1486 END IF; --}
1487
1488 wsh_util_core.api_post_call(p_return_status =>l_return_status,
1489 x_num_warnings =>l_num_warnings,
1490 x_num_errors =>l_num_errors);
1491 END IF;
1492 --Bugfix 4070732 }
1493
1494 /*
1495
1496 WSH_UTIL_CORE.get_messages('Y', l_msg_summary, l_msg_details, x_msg_count);
1497 if x_msg_count > 1 then
1498 x_msg_data := l_msg_summary || l_msg_details;
1499 else
1500 x_msg_data := l_msg_summary;
1501 end if;
1502 */
1503 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
1504
1505 --Bugfix 4070732 {
1506 IF upper(WSH_UTIL_CORE.G_START_OF_SESSION_API) = upper(l_api_session_name) THEN --{
1507 IF NOT(WSH_UTIL_CORE.G_CALL_FTE_LOAD_TENDER_API) THEN
1508
1509 IF FND_API.TO_BOOLEAN(p_commit) THEN
1510
1511 IF l_debug_on THEN
1512 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_UTIL_CORE.reset_stops_for_load_tender',WSH_DEBUG_SV.C_PROC_LEVEL);
1513 END IF;
1514 WSH_UTIL_CORE.reset_stops_for_load_tender(
1515 p_reset_flags => TRUE,
1516 x_return_status => l_return_status);
1517 ELSE
1518
1519 IF l_debug_on THEN
1520 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_UTIL_CORE.Process_stops_for_load_tender',WSH_DEBUG_SV.C_PROC_LEVEL);
1521 END IF;
1522 WSH_UTIL_CORE.Process_stops_for_load_tender(
1523 p_reset_flags => TRUE,
1524 x_return_status => l_return_status);
1525 END IF;
1526
1527 IF l_debug_on THEN
1528 WSH_DEBUG_SV.log(l_module_name,'l_return_status',l_return_status);
1529 END IF;
1530
1531 IF l_return_status IN (WSH_UTIL_CORE.G_RET_STS_ERROR,
1532 WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR) THEN
1533 IF NOT(FND_API.TO_BOOLEAN(p_commit)) THEN
1534 rollback to Autopack_SP_Grp;
1535 end if;
1536 END IF;
1537
1538 --x_return_status is set to success before the call to fte load tender
1539 -- setting the return status to l_return_status
1540 x_return_status := l_return_status;
1541
1542 END IF;
1543 END IF; --}
1544
1545 --}
1546 --End of bug 4070732
1547
1548 FND_MSG_PUB.Count_And_Get
1549 ( p_count => x_msg_count
1550 , p_data => x_msg_data
1551 , p_encoded => FND_API.G_FALSE
1552 );
1553
1554
1555 --
1556 -- Debug Statements
1557 --
1558 IF l_debug_on THEN
1559 WSH_DEBUG_SV.pop(l_module_name);
1560 END IF;
1561 --
1562 EXCEPTION
1563
1564 WHEN WSH_INVALID_DETAIL then
1565 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1566 rollback to Autopack_SP_Grp;
1567 fnd_message.set_name('WSH', 'WSH_DET_INVALID_DETAIL');
1568 WSH_UTIL_CORE.ADD_MESSAGE(x_return_status);
1569 /*
1570
1571 WSH_UTIL_CORE.get_messages('Y', l_msg_summary, l_msg_details, x_msg_count);
1572 if x_msg_count > 1 then
1573 x_msg_data := l_msg_summary || l_msg_details;
1574 else
1575 x_msg_data := l_msg_summary;
1576 end if;
1577 */
1578 --Bugfix 4070732 {
1579 IF upper(WSH_UTIL_CORE.G_START_OF_SESSION_API) = upper(l_api_session_name) THEN
1580 IF NOT(WSH_UTIL_CORE.G_CALL_FTE_LOAD_TENDER_API) THEN
1581 IF l_debug_on THEN
1582 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_UTIL_CORE.Reset_stops_for_load_tender',WSH_DEBUG_SV.C_PROC_LEVEL);
1583 END IF;
1584
1585 WSH_UTIL_CORE.Reset_stops_for_load_tender(p_reset_flags => TRUE,
1586 x_return_status => l_return_status);
1587
1588
1589 IF l_debug_on THEN
1590 WSH_DEBUG_SV.log(l_module_name,'l_return_status',l_return_status);
1591 END IF;
1592
1593 IF l_return_status = WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR THEN
1594 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1595 END IF;
1596 END IF;
1597 END IF;
1598 --}
1599 --End of bug 4070732
1600
1601
1602 FND_MSG_PUB.Count_And_Get
1603 ( p_count => x_msg_count
1604 , p_data => x_msg_data
1605 , p_encoded => FND_API.G_FALSE
1606 );
1607
1608 --
1609 -- Debug Statements
1610 --
1611 IF l_debug_on THEN
1612 WSH_DEBUG_SV.logmsg(l_module_name,'WSH_INVALID_DETAIL exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
1613 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:WSH_INVALID_DETAIL');
1614 END IF;
1615 --
1616
1617 WHEN FND_API.G_EXC_ERROR then
1618 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1619 rollback to Autopack_SP_Grp;
1620
1621 IF upper(WSH_UTIL_CORE.G_START_OF_SESSION_API) = upper(l_api_session_name) THEN
1622 IF NOT(WSH_UTIL_CORE.G_CALL_FTE_LOAD_TENDER_API) THEN
1623 IF l_debug_on THEN
1624 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_UTIL_CORE.Reset_stops_for_load_tender',WSH_DEBUG_SV.C_PROC_LEVEL);
1625 END IF;
1626
1627 WSH_UTIL_CORE.Reset_stops_for_load_tender(p_reset_flags => TRUE,
1628 x_return_status => l_return_status);
1629
1630
1631 IF l_debug_on THEN
1632 WSH_DEBUG_SV.log(l_module_name,'l_return_status',l_return_status);
1633 END IF;
1634
1635 IF l_return_status = WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR THEN
1636 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1637 END IF;
1638 END IF;
1639 END IF;
1640 --}
1641 --End of bug 4070732
1642
1643 FND_MSG_PUB.Count_And_Get
1644 ( p_count => x_msg_count
1645 , p_data => x_msg_data
1646 , p_encoded => FND_API.G_FALSE
1647 );
1648 --Bugfix 4070732 {
1649
1650 --
1651 -- Debug Statements
1652 --
1653 IF l_debug_on THEN
1654 WSH_DEBUG_SV.logmsg(l_module_name,'WSH_INVALID_DETAIL exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
1655 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:G_EXC_ERROR');
1656 END IF;
1657 --
1658 WHEN WSH_INVALID_CONT then
1659 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1660 rollback to Autopack_SP_Grp;
1661 fnd_message.set_name('WSH', 'WSH_CONT_INVALID_NAME');
1662 WSH_UTIL_CORE.ADD_MESSAGE(x_return_status);
1663 /*
1664
1665 WSH_UTIL_CORE.get_messages('Y', l_msg_summary, l_msg_details, x_msg_count);
1666 if x_msg_count > 1 then
1667 x_msg_data := l_msg_summary || l_msg_details;
1668 else
1669 x_msg_data := l_msg_summary;
1670 end if;
1671 */
1672 --Bugfix 4070732 {
1673 IF upper(WSH_UTIL_CORE.G_START_OF_SESSION_API) = upper(l_api_session_name) THEN
1674 IF NOT(WSH_UTIL_CORE.G_CALL_FTE_LOAD_TENDER_API) THEN
1675 IF l_debug_on THEN
1676 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_UTIL_CORE.Reset_stops_for_load_tender',WSH_DEBUG_SV.C_PROC_LEVEL);
1677 END IF;
1678
1679 WSH_UTIL_CORE.Reset_stops_for_load_tender(p_reset_flags => TRUE,
1680 x_return_status => l_return_status);
1681
1682
1683 IF l_debug_on THEN
1684 WSH_DEBUG_SV.log(l_module_name,'l_return_status',l_return_status);
1685 END IF;
1686 IF l_return_status = WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR THEN
1687 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1688 END IF;
1689
1690 END IF;
1691 END IF;
1692 --}
1693 --End of bug 4070732
1694
1695
1696 FND_MSG_PUB.Count_And_Get
1697 ( p_count => x_msg_count
1698 , p_data => x_msg_data
1699 , p_encoded => FND_API.G_FALSE
1700 );
1701 --
1702 -- Debug Statements
1703 --
1704 IF l_debug_on THEN
1705 WSH_DEBUG_SV.logmsg(l_module_name,'WSH_INVALID_CONT exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
1706 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:WSH_INVALID_CONT');
1707 END IF;
1708 --
1709 WHEN WSH_INVALID_DELIVERY then
1710 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1711 rollback to Autopack_SP_Grp;
1712 fnd_message.set_name('WSH', 'WSH_DET_INVALID_DEL');
1713 WSH_UTIL_CORE.ADD_MESSAGE(x_return_status);
1714 /*
1715
1716 WSH_UTIL_CORE.get_messages('Y', l_msg_summary, l_msg_details, x_msg_count);
1717 if x_msg_count > 1 then
1718 x_msg_data := l_msg_summary || l_msg_details;
1719 else
1720 x_msg_data := l_msg_summary;
1721 end if;
1722 */
1723
1724 --Bugfix 4070732 {
1725 IF upper(WSH_UTIL_CORE.G_START_OF_SESSION_API) = upper(l_api_session_name) THEN
1726 IF NOT(WSH_UTIL_CORE.G_CALL_FTE_LOAD_TENDER_API) THEN
1727 IF l_debug_on THEN
1728 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_UTIL_CORE.Reset_stops_for_load_tender',WSH_DEBUG_SV.C_PROC_LEVEL);
1729 END IF;
1730
1731 WSH_UTIL_CORE.Reset_stops_for_load_tender(p_reset_flags => TRUE,
1732 x_return_status => l_return_status);
1733
1734
1735 IF l_debug_on THEN
1736 WSH_DEBUG_SV.log(l_module_name,'l_return_status',l_return_status);
1737 END IF;
1738 IF l_return_status = WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR THEN
1739 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1740 END IF;
1741
1742 END IF;
1743 END IF;
1744 --}
1745 --End of bug 4070732
1746
1747
1748 FND_MSG_PUB.Count_And_Get
1749 ( p_count => x_msg_count
1750 , p_data => x_msg_data
1751 , p_encoded => FND_API.G_FALSE
1752 );
1753 --
1754 -- Debug Statements
1755 --
1756 IF l_debug_on THEN
1757 WSH_DEBUG_SV.logmsg(l_module_name,'WSH_INVALID_DELIVERY exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
1758 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:WSH_INVALID_DELIVERY');
1759 END IF;
1760 --
1761 WHEN WSH_UTIL_CORE.G_EXC_WARNING then
1762 x_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
1763 --
1764 -- K LPN CONV. rv
1765 --
1766 IF WSH_WMS_LPN_GRP.G_CALLBACK_REQUIRED = 'Y'
1767 THEN
1768 --{
1769 WSH_LPN_SYNC_COMM_PKG.SYNC_LPNS_TO_WMS
1770 (
1771 p_in_rec => l_lpn_in_sync_comm_rec,
1772 x_return_status => l_return_status,
1773 x_out_rec => l_lpn_out_sync_comm_rec
1774 );
1775 --
1776 --
1777 IF l_debug_on THEN
1778 WSH_DEBUG_SV.log(l_module_name,'Return status after calling WSH_LPN_SYNC_COMM_PKG.SYNC_LPNS_TO_WMS',l_return_status);
1779 END IF;
1780 --
1781 --
1782 IF (l_return_status IN (WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR, WSH_UTIL_CORE.G_RET_STS_ERROR)) THEN
1783 x_return_status := l_return_status;
1784 END IF;
1785 --
1786 --}
1787 END IF;
1788 --
1789 -- K LPN CONV. rv
1790 --
1791
1792 --Bugfix 4070732 {
1793 IF upper(WSH_UTIL_CORE.G_START_OF_SESSION_API) = upper(l_api_session_name) THEN
1794 IF NOT(WSH_UTIL_CORE.G_CALL_FTE_LOAD_TENDER_API) THEN
1795 IF l_debug_on THEN
1796 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_UTIL_CORE.Process_stops_for_load_tender',WSH_DEBUG_SV.C_PROC_LEVEL);
1797 END IF;
1798
1799 WSH_UTIL_CORE.Process_stops_for_load_tender(p_reset_flags => TRUE,
1800 x_return_status => l_return_status);
1801
1802 IF l_debug_on THEN
1803 WSH_DEBUG_SV.log(l_module_name,'l_return_status',l_return_status);
1804 END IF;
1805
1806 IF l_return_status = WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR
1807 OR l_return_status = WSH_UTIL_CORE.G_RET_STS_ERROR THEN
1808 rollback to Autopack_SP_Grp;
1809 X_return_status := l_return_status;
1810 END IF;
1811
1812 END IF;
1813 END IF;
1814 --}
1815 -- End of bug 4070732
1816
1817
1818 FND_MSG_PUB.Count_And_Get
1819 ( p_count => x_msg_count
1820 , p_data => x_msg_data
1821 , p_encoded => FND_API.G_FALSE
1822 );
1823 IF l_debug_on THEN
1824 WSH_DEBUG_SV.logmsg(l_module_name,'G_RET_STS_WARNING exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
1825 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:G_RET_STS_WARNING');
1826 END IF;
1827 --
1828 WHEN WSH_FAIL_AUTOPACK then
1829 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1830 rollback to Autopack_SP_Grp;
1831 fnd_message.set_name('WSH', 'WSH_AUTOPACK_ERROR');
1832 WSH_UTIL_CORE.ADD_MESSAGE(x_return_status);
1833 --Bugfix 4070732 {
1834 IF upper(WSH_UTIL_CORE.G_START_OF_SESSION_API) = upper(l_api_session_name) THEN
1835 IF NOT(WSH_UTIL_CORE.G_CALL_FTE_LOAD_TENDER_API) THEN
1836 IF l_debug_on THEN
1837 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_UTIL_CORE.Reset_stops_for_load_tender',WSH_DEBUG_SV.C_PROC_LEVEL);
1838 END IF;
1839
1840 WSH_UTIL_CORE.Reset_stops_for_load_tender(p_reset_flags => TRUE,
1841 x_return_status => l_return_status);
1842
1843
1844 IF l_debug_on THEN
1845 WSH_DEBUG_SV.log(l_module_name,'l_return_status',l_return_status);
1846 END IF;
1847
1848 IF l_return_status = WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR THEN
1849 X_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1850 END IF;
1851 END IF;
1852 END IF;
1853 --}
1854 --End of bug 4070732
1855
1856 FND_MSG_PUB.Count_And_Get
1857 ( p_count => x_msg_count
1858 , p_data => x_msg_data
1859 , p_encoded => FND_API.G_FALSE
1860 );
1861 IF l_debug_on THEN
1862 WSH_DEBUG_SV.logmsg(l_module_name,'WSH_FAIL_AUTOPACK exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
1863 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:WSH_FAIL_AUTOPACK');
1864 END IF;
1865 --
1866 WHEN WSH_INVALID_ENTITY_TYPE then
1867 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1868 rollback to Autopack_SP_Grp;
1869 fnd_message.set_name('WSH', 'WSH_PUB_CONT_TYPE_ERR');
1870 WSH_UTIL_CORE.ADD_MESSAGE(x_return_status);
1871 /*
1872
1873 WSH_UTIL_CORE.get_messages('Y', l_msg_summary, l_msg_details, x_msg_count);
1874 if x_msg_count > 1 then
1875 x_msg_data := l_msg_summary || l_msg_details;
1876 else
1877 x_msg_data := l_msg_summary;
1878 end if;
1879 */
1880 --Bugfix 4070732 {
1881 IF upper(WSH_UTIL_CORE.G_START_OF_SESSION_API) = upper(l_api_session_name) THEN
1882 IF NOT(WSH_UTIL_CORE.G_CALL_FTE_LOAD_TENDER_API) THEN
1883 IF l_debug_on THEN
1884 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_UTIL_CORE.Reset_stops_for_load_tender',WSH_DEBUG_SV.C_PROC_LEVEL);
1885 END IF;
1886
1887 WSH_UTIL_CORE.Reset_stops_for_load_tender(p_reset_flags => TRUE,
1888 x_return_status => l_return_status);
1889
1890
1891 IF l_debug_on THEN
1892 WSH_DEBUG_SV.log(l_module_name,'l_return_status',l_return_status);
1893 END IF;
1894 IF l_return_status = WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR THEN
1895 X_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1896 END IF;
1897
1898 END IF;
1899 END IF;
1900 --}
1901 --End of bug 4070732
1902
1903
1904 FND_MSG_PUB.Count_And_Get
1905 ( p_count => x_msg_count
1906 , p_data => x_msg_data
1907 , p_encoded => FND_API.G_FALSE
1908 );
1909
1910 --
1911 -- Debug Statements
1912 --
1913 IF l_debug_on THEN
1914 WSH_DEBUG_SV.logmsg(l_module_name,'WSH_INVALID_ENTITY_TYPE exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
1915 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:WSH_INVALID_ENTITY_TYPE');
1916 END IF;
1917 --
1918 WHEN OTHERS then
1919 wsh_util_core.default_handler('WSH_CONTAINER_PUB.Auto_Pack');
1920 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1921 rollback to Autopack_SP_Grp;
1922
1923 /*
1924
1925 WSH_UTIL_CORE.get_messages('Y', l_msg_summary, l_msg_details, x_msg_count);
1926 if x_msg_count > 1 then
1927 x_msg_data := l_msg_summary || l_msg_details;
1928 else
1929 x_msg_data := l_msg_summary;
1930 end if;
1931
1932 */
1933 --Bugfix 4070732 {
1934 IF upper(WSH_UTIL_CORE.G_START_OF_SESSION_API) = upper(l_api_session_name) THEN
1935 IF NOT(WSH_UTIL_CORE.G_CALL_FTE_LOAD_TENDER_API) THEN
1936 IF l_debug_on THEN
1937 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_UTIL_CORE.Reset_stops_for_load_tender',WSH_DEBUG_SV.C_PROC_LEVEL);
1938 END IF;
1939
1940 WSH_UTIL_CORE.Reset_stops_for_load_tender(p_reset_flags => TRUE,
1941 x_return_status => l_return_status);
1942
1943
1944 IF l_debug_on THEN
1945 WSH_DEBUG_SV.log(l_module_name,'l_return_status',l_return_status);
1946 END IF;
1947
1948 END IF;
1949 END IF;
1950 --}
1951 --End of bug 4070732
1952
1953
1954 FND_MSG_PUB.Count_And_Get
1955 ( p_count => x_msg_count
1956 , p_data => x_msg_data
1957 , p_encoded => FND_API.G_FALSE
1958 );
1959
1960 --
1961 -- Debug Statements
1962 --
1963 IF l_debug_on THEN
1964 WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '|| SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
1965 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
1966 END IF;
1967 --
1968 END Auto_Pack;
1969
1970
1971 ------------------------------------------------------------------------------
1972 -- Procedure: Container_Actions
1973 --
1974 -- Parameters: 1) detail_tab - input table of delivery detail ids
1975 -- 2) container_instance_id - delivery detail id of parent
1976 -- container that is being packed.
1977 -- 3) container_name - container name if id is not known
1978 -- 4) container_flag - 'Y' or 'N' depending on whether to unpack
1979 -- or not. ('Y' is unpack)
1980 -- 5) delivery_flag - 'Y' or 'N' if container needs to be
1981 -- unassigned from delivery. ('Y' if unassign from del)
1982 -- 6) delivery_id - delivery id to assign container to.
1983 -- 7) delivery_name - name of delivery that container is being
1984 -- assigned to.
1985 -- 8) action_code - action code 'Pack', 'Assign', 'Unpack' or
1986 -- 'Unassign' to specify what action to perform.
1987 -- 9) other standard parameters
1988 --
1989 -- Description: This procedure takes in a table of delivery detail ids and
1990 -- name and/or delivery detail id of container to pack. If the action code is
1991 -- is assign then delivery id and delivery name must be specified. The API
1992 -- determines what action to perform based on the action code and then calls
1993 -- appropriate private pack/assign/unpack/unassign API.
1994 -- The input table of ids could be lines or containers. The delivery lines and
1995 -- containers are separated from the input table and validated before the
1996 -- appropriate private APIs are called
1997 -- THIS PROCEDURE IS ONLY TO BE CALLED FROM
1998 -- WSH_DELIVERY_DETAIL_GRP.Delivery_Detail_Action
1999
2000 ------------------------------------------------------------------------------
2001
2002
2003
2004
2005 PROCEDURE Container_Actions (
2006 -- Standard parameters
2007 p_api_version IN NUMBER,
2008 p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_FALSE,
2009 p_commit IN VARCHAR2 DEFAULT FND_API.G_FALSE,
2010 p_validation_level IN NUMBER DEFAULT FND_API.G_VALID_LEVEL_FULL,
2011 x_return_status OUT NOCOPY VARCHAR2,
2012 x_msg_count OUT NOCOPY NUMBER,
2013 x_msg_data OUT NOCOPY VARCHAR2,
2014 -- program specific parameters
2015 p_detail_tab IN WSH_UTIL_CORE.ID_TAB_TYPE,
2016 p_container_name IN VARCHAR2 DEFAULT NULL,
2017 p_cont_instance_id IN NUMBER DEFAULT NULL,
2018 p_container_flag IN VARCHAR2 DEFAULT 'N',
2019 p_delivery_flag IN VARCHAR2 DEFAULT 'N',
2020 p_delivery_id IN NUMBER DEFAULT NULL,
2021 p_delivery_name IN VARCHAR2 DEFAULT NULL,
2022 p_action_code IN VARCHAR2 ,
2023 p_caller IN VARCHAR2 DEFAULT 'WMS'
2024
2025 ) IS
2026 -- Standard call to check for call compatibility
2027 l_api_version CONSTANT NUMBER := 1.0;
2028 l_api_name CONSTANT VARCHAR2(30):= 'Update_Containers';
2029
2030 l_detail_tab WSH_UTIL_CORE.ID_TAB_TYPE;
2031 l_cont_tab WSH_UTIL_CORE.ID_TAB_TYPE;
2032
2033 l_delivery_detail_id NUMBER;
2034 l_delivery_id NUMBER;
2035 l_del_sts VARCHAR2(10);
2036 l_delivery_name VARCHAR2(30);
2037
2038 l_cont_name VARCHAR2(30) := NULL;
2039 l_cont_flag VARCHAR2(1);
2040 l_cont_instance_id NUMBER;
2041
2042 l_old_cont_name VARCHAR2(30);
2043 l_old_cont_instance_id NUMBER;
2044
2045 l_det_cnt NUMBER := 0;
2046 l_cont_cnt NUMBER := 0;
2047 l_del_cnt NUMBER := 0;
2048
2049 i NUMBER;
2050
2051 l_msg_summary VARCHAR2(32000) := NULL;
2052 l_msg_details VARCHAR2(32000) := NULL;
2053
2054 l_pack_status VARCHAR2(30);
2055 l_group_api_flag VARCHAR2(1);
2056 l_verify_status_lvl NUMBER ;
2057 l_verify_org NUMBER ;
2058 l_verify_dlvy NUMBER ;
2059 l_wms_enabled_flag VARCHAR2(10);
2060 l_dlvy_status_code wsh_new_deliveries.status_code%TYPE;
2061 l_cont_org_id NUMBER;
2062 l_cont_released_status wsh_delivery_details.released_status%TYPE;
2063 l_return_status VARCHAR2(1) := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
2064 l_num_warning NUMBER := 0;
2065 l_num_errors NUMBER := 0;
2066 l_next NUMBER ;
2067
2068 WSH_INVALID_CONT EXCEPTION;
2069 WSH_INVALID_DETAIL EXCEPTION;
2070 WSH_INVALID_DELIVERY EXCEPTION;
2071 WSH_INVALID_ACTION EXCEPTION;
2072 WSH_FAIL_CONT_ACTION EXCEPTION;
2073 WSH_INVALID_ENTITY_TYPE EXCEPTION;
2074
2075 --Bug 4329611. Perf Fix .
2076 CURSOR Get_Detail_Id (v_cont_name VARCHAR2) IS
2077 SELECT delivery_detail_id, container_flag
2078 FROM WSH_DELIVERY_DETAILS
2079 WHERE container_name = v_cont_name
2080 --LPN reuse project
2081 AND released_status = 'X'
2082 AND container_flag = 'Y';
2083
2084 CURSOR Check_Detail (v_detail_id NUMBER) IS
2085 SELECT wdd.delivery_detail_id, wdd.container_flag,wdd.released_status,
2086 wdd.organization_id ,wda.delivery_id
2087 FROM WSH_DELIVERY_DETAILS wdd, wsh_delivery_assignments_v wda
2088 WHERE wdd.delivery_detail_id = v_detail_id
2089 AND wdd.delivery_detail_id = wda.delivery_detail_id
2090 AND nvl(wdd.line_direction,'O') in ('O','IO'); -- J-IB-NPARIKH
2091
2092 CURSOR Check_Delivery_by_id (v_del_id NUMBER) IS
2093 SELECT delivery_id, name, status_code
2094 FROM WSH_NEW_DELIVERIES
2095 WHERE delivery_id = v_del_id;
2096
2097 CURSOR Check_Delivery_by_Name ( v_del_name VARCHAR2) IS
2098 SELECT delivery_id, name, status_code
2099 FROM WSH_NEW_DELIVERIES
2100 WHERE name = v_del_name;
2101
2102 CURSOR c_dlvy(l_delivery_id number) IS
2103 SELECT status_code
2104 FROM wsh_new_deliveries
2105 WHERE delivery_id = l_delivery_id;
2106
2107 -- K LPN CONV. rv
2108 l_lpn_in_sync_comm_rec WSH_GLBL_VAR_STRCT_GRP.lpn_sync_comm_in_rec_type;
2109 l_lpn_out_sync_comm_rec WSH_GLBL_VAR_STRCT_GRP.lpn_sync_comm_out_rec_type;
2110 l_msg_count NUMBER;
2111 l_msg_data VARCHAR2(32767);
2112 -- K LPN CONV. rv
2113
2114 l_debug_on BOOLEAN;
2115 --
2116 l_module_name CONSTANT VARCHAR2(100) := 'wsh.plsql.' || G_PKG_NAME || '.' || 'CONTAINER_ACTIONS';
2117 --
2118 --Bugfix 4070732
2119 l_api_session_name CONSTANT VARCHAR2(150) := G_PKG_NAME ||'.' || l_module_name;
2120 l_reset_flags BOOLEAN;
2121
2122 BEGIN
2123 --
2124 --Bugfix 4070732
2125 IF WSH_UTIL_CORE.G_START_OF_SESSION_API is null THEN
2126 WSH_UTIL_CORE.G_START_OF_SESSION_API := l_api_session_name;
2127 WSH_UTIL_CORE.G_CALL_FTE_LOAD_TENDER_API := FALSE;
2128 END IF;
2129 --
2130 l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
2131 --
2132 IF l_debug_on IS NULL
2133 THEN
2134 l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
2135 END IF;
2136 --
2137 SAVEPOINT Container_Action_SP_Grp;
2138 --
2139 IF l_debug_on THEN
2140 WSH_DEBUG_SV.push(l_module_name);
2141 --
2142 WSH_DEBUG_SV.log(l_module_name,'P_API_VERSION',P_API_VERSION);
2143 WSH_DEBUG_SV.log(l_module_name,'P_INIT_MSG_LIST',P_INIT_MSG_LIST);
2144 WSH_DEBUG_SV.log(l_module_name,'P_COMMIT',P_COMMIT);
2145 WSH_DEBUG_SV.log(l_module_name,'P_VALIDATION_LEVEL',P_VALIDATION_LEVEL);
2146 WSH_DEBUG_SV.log(l_module_name,'P_CONTAINER_NAME',P_CONTAINER_NAME);
2147 WSH_DEBUG_SV.log(l_module_name,'P_CONT_INSTANCE_ID',P_CONT_INSTANCE_ID);
2148 WSH_DEBUG_SV.log(l_module_name,'P_CONTAINER_FLAG',P_CONTAINER_FLAG);
2149 WSH_DEBUG_SV.log(l_module_name,'P_DELIVERY_FLAG',P_DELIVERY_FLAG);
2150 WSH_DEBUG_SV.log(l_module_name,'P_DELIVERY_ID',P_DELIVERY_ID);
2151 WSH_DEBUG_SV.log(l_module_name,'P_DELIVERY_NAME',P_DELIVERY_NAME);
2152 WSH_DEBUG_SV.log(l_module_name,'P_ACTION_CODE',P_ACTION_CODE);
2153 WSH_DEBUG_SV.log(l_module_name,'p_caller',p_caller);
2154 END IF;
2155 --
2156 -- Check p_init_msg_list
2157 IF FND_API.to_boolean(p_init_msg_list) THEN
2158 FND_MSG_PUB.initialize;
2159 END IF;
2160
2161 IF NOT FND_API.compatible_api_call (
2162 l_api_version,
2163 p_api_version,
2164 l_api_name,
2165 G_PKG_NAME) THEN
2166 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2167
2168 END IF;
2169
2170 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
2171
2172 IF p_caller LIKE 'WMS%' THEN
2173 l_group_api_flag := 'Y';
2174 END IF;
2175
2176
2177
2178 IF nvl(p_detail_tab.COUNT,0) <= 0 THEN
2179 RAISE WSH_INVALID_DETAIL;
2180 END IF;
2181
2182 IF p_validation_level <> C_DELIVERY_DETAIL_CALL THEN
2183 WSH_ACTIONS_LEVELS.set_validation_level (
2184 p_entity => 'DLVB',
2185 p_caller => p_caller,
2186 p_phase => 1,
2187 p_action =>p_action_code ,
2188 x_return_status => l_return_status);
2189
2190 wsh_util_core.api_post_call(p_return_status =>l_return_status,
2191 x_num_warnings =>l_num_warning,
2192 x_num_errors =>l_num_errors);
2193 END IF;
2194
2195 l_verify_status_lvl := WSH_ACTIONS_LEVELS.g_validation_level_tab(WSH_ACTIONS_LEVELS.C_CONTAINER_STATUS_LVL);
2196 l_verify_org := WSH_ACTIONS_LEVELS.g_validation_level_tab(WSH_ACTIONS_LEVELS.C_CONTAINER_ORG_LVL);
2197 l_verify_dlvy := WSH_ACTIONS_LEVELS.g_validation_level_tab(WSH_ACTIONS_LEVELS.C_CONT_DLVY_LVL);
2198
2199 IF l_debug_on THEN
2200 WSH_DEBUG_SV.log(l_module_name,'l_verify_status_lvl'
2201 ,l_verify_status_lvl);
2202 WSH_DEBUG_SV.log(l_module_name,'l_verify_org',l_verify_org);
2203 WSH_DEBUG_SV.log(l_module_name,'l_verify_dlvy',l_verify_dlvy);
2204 END IF;
2205
2206 l_next := p_detail_tab.first;
2207 WHILE l_next IS NOT NULL LOOP
2208
2209 OPEN Check_Detail (p_detail_tab(l_next));
2210 Fetch Check_Detail INTO
2211 l_delivery_detail_id,
2212 l_cont_flag,
2213 l_cont_released_status,
2214 l_cont_org_id,
2215 l_delivery_id;
2216 IF Check_Detail%NOTFOUND THEN
2217 CLOSE Check_Detail;
2218 FND_MESSAGE.SET_NAME('WSH','WSH_DET_INVALID_DETAIL');
2219 l_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
2220 WSH_UTIL_CORE.Add_Message(l_return_status,l_module_name);
2221 ELSE
2222 l_det_cnt := l_det_cnt + 1;
2223 l_detail_tab(l_det_cnt) := l_delivery_detail_id;
2224
2225 END IF;
2226
2227 IF Check_Detail%ISOPEN THEN
2228 CLOSE Check_Detail;
2229 END IF;
2230
2231 l_next := p_detail_tab.NEXT(l_next);
2232
2233 END LOOP;
2234
2235
2236 IF UPPER(p_action_code) = 'ASSIGN' THEN
2237 IF p_delivery_id IS NULL THEN --{
2238 IF p_delivery_name IS NULL THEN
2239 RAISE WSH_INVALID_DELIVERY;
2240 END IF;
2241 OPEN Check_Delivery_by_Name ( p_delivery_name);
2242 FETCH Check_Delivery_by_Name INTO
2243 l_delivery_id,
2244 l_delivery_name,
2245 l_del_sts;
2246
2247 IF Check_Delivery_by_Name%NOTFOUND OR SQL%ROWCOUNT > 1 OR (nvl(l_del_sts,'OP') NOT IN ('OP', 'SA')) THEN
2248 CLOSE Check_Delivery_by_Name;
2249 RAISE WSH_INVALID_DELIVERY;
2250 END IF;
2251
2252 IF Check_Delivery_by_Name%ISOPEN THEN
2253 CLOSE Check_Delivery_by_Name;
2254 END IF;
2255 ELSE --}{
2256 OPEN Check_Delivery_by_id (p_delivery_id);
2257
2258 Fetch Check_Delivery_by_id INTO
2259 l_delivery_id,
2260 l_delivery_name,
2261 l_del_sts;
2262
2263 IF Check_Delivery_by_id%NOTFOUND OR SQL%ROWCOUNT > 1 OR (nvl(l_del_sts,'OP') NOT IN ('OP', 'SA') )THEN
2264 CLOSE Check_Delivery_by_id;
2265 RAISE WSH_INVALID_DELIVERY;
2266 END IF;
2267 -- close the cursor
2268 IF Check_Delivery_by_id%ISOPEN THEN
2269 CLOSE Check_Delivery_by_id;
2270 END IF;
2271 END IF; --}
2272
2273 END IF;
2274 IF UPPER(p_action_code) in ('PACK','UNPACK') THEN
2275 IF l_verify_org=1 THEN
2276 l_wms_enabled_flag := WSH_UTIL_VALIDATE.check_wms_org(l_cont_org_id);
2277 IF l_debug_on THEN
2278 WSH_DEBUG_SV.log(l_module_name,'l_wms_enabled_flag'
2279 ,l_wms_enabled_flag);
2280 END IF;
2281
2282 IF NVL(l_wms_enabled_flag,'N') = 'Y' THEN
2283 RAISE WSH_INVALID_CONT;
2284 END IF;
2285 END IF;
2286 END IF;
2287
2288 IF UPPER(p_action_code) = 'PACK' THEN
2289
2290 IF p_cont_instance_id IS NULL THEN
2291
2292 OPEN Get_Detail_Id (p_container_name);
2293
2294 FETCH Get_Detail_Id INTO
2295 l_cont_instance_id,
2296 l_cont_flag;
2297
2298 IF Get_Detail_Id%NOTFOUND OR SQL%ROWCOUNT > 1 OR (nvl(l_cont_flag,'N') = 'N') THEN
2299 CLOSE Get_Detail_Id;
2300 RAISE WSH_INVALID_CONT;
2301
2302 ELSE
2303 CLOSE Get_Detail_Id;
2304 END IF;
2305 ELSE l_cont_instance_id := p_cont_instance_id;
2306 END IF;
2307 IF l_debug_on THEN
2308 WSH_DEBUG_SV.log(l_module_name,'l_verify_status_lvl'
2309 ,l_verify_status_lvl);
2310 WSH_DEBUG_SV.log(l_module_name,'l_verify_org',l_verify_org);
2311 WSH_DEBUG_SV.log(l_module_name,'l_verify_dlvy',l_verify_dlvy);
2312 WSH_DEBUG_SV.log(l_module_name,'l_cont_instance_id'
2313 ,l_cont_instance_id);
2314 END IF;
2315 IF l_verify_status_lvl =1 OR l_verify_org=1 OR l_verify_dlvy=1 THEN
2316
2317 OPEN Check_Detail (l_cont_instance_id);
2318 Fetch Check_Detail INTO
2319 l_cont_instance_id,
2320 l_cont_flag,
2321 l_cont_released_status,
2322 l_cont_org_id,
2323 l_delivery_id;
2324
2325 IF Check_Detail%NOTFOUND THEN
2326 CLOSE Check_Detail;
2327 RAISE WSH_INVALID_CONT;
2328 ELSE
2329 CLOSE Check_Detail;
2330 END IF;
2331 IF l_debug_on THEN
2332 WSH_DEBUG_SV.log(l_module_name,'l_cont_instance_id'
2333 ,l_cont_instance_id);
2334 WSH_DEBUG_SV.log(l_module_name,'l_cont_flag',l_cont_flag);
2335 WSH_DEBUG_SV.log(l_module_name,'l_cont_released_status'
2336 ,l_cont_released_status);
2337 WSH_DEBUG_SV.log(l_module_name,'l_cont_org_id',l_cont_org_id);
2338 WSH_DEBUG_SV.log(l_module_name,'l_delivery_id',l_delivery_id);
2339 END IF;
2340
2341 IF l_verify_status_lvl=1 THEN
2342 IF (nvl(l_cont_flag,'N') = 'N')
2343 OR (NVL(l_cont_released_status,'Z') <> 'X') THEN
2344 RAISE WSH_INVALID_CONT;
2345 END IF;
2346 END IF;
2347 IF (l_verify_dlvy =1) AND (l_delivery_id IS NOT NULL )THEN
2348 OPEN c_dlvy(l_delivery_id);
2349 FETCH c_dlvy INTO l_dlvy_status_code;
2350 IF c_dlvy%NOTFOUND THEN
2351 CLOSE c_dlvy;
2352 RAISE WSH_INVALID_DELIVERY;
2353 ELSE
2354 CLOSE c_dlvy;
2355 END IF;
2356 IF l_debug_on THEN
2357 WSH_DEBUG_SV.log(l_module_name,'l_dlvy_status_code'
2358 ,l_dlvy_status_code);
2359 END IF;
2360 IF l_dlvy_status_code <> 'OP' THEN
2361 RAISE WSH_INVALID_DELIVERY ;
2362 END IF;
2363 END IF;
2364 END IF;
2365 -- verified call the private APIs to pack..
2366 END IF;
2367
2368 IF UPPER(p_action_code) = 'UNPACK' THEN
2369 IF nvl(p_container_flag,'N') = 'N' THEN
2370 RAISE WSH_INVALID_ACTION;
2371 END IF;
2372 ELSIF UPPER(p_action_code) = 'UNASSIGN' THEN
2373 IF nvl(p_delivery_flag,'N') = 'N' THEN
2374 RAISE WSH_INVALID_ACTION;
2375 END IF;
2376 END IF;
2377 -- call the private APIs to assign/unassign..
2378
2379 IF (UPPER(p_action_code) = 'PACK') OR (UPPER(p_action_code) = 'ASSIGN') THEN
2380 IF l_debug_on THEN
2381 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_DLVB_COMMON_ACTIONS.ASSIGN_DETAILS',WSH_DEBUG_SV.C_PROC_LEVEL);
2382 END IF;
2383 --
2384 WSH_DLVB_COMMON_ACTIONS.Assign_Details (
2385 p_detail_tab => l_detail_tab,
2386 p_parent_detail_id => l_cont_instance_id,
2387 p_delivery_id => l_delivery_id,
2388 p_group_api_flag => l_group_api_flag,
2389 x_pack_status => l_pack_status,
2390 x_return_status => x_return_status);
2391
2392 IF x_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
2393 IF x_return_status = WSH_UTIL_CORE.G_RET_STS_WARNING THEN
2394 RAISE WSH_UTIL_CORE.G_EXC_WARNING;
2395 ELSE
2396 RAISE WSH_FAIL_CONT_ACTION;
2397 END IF;
2398 ELSE
2399 --Start of fix for bug 5234326/5282496
2400 IF ( l_cont_instance_id IS NOT NULL ) THEN
2401 IF l_debug_on THEN
2402 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_TP_RELEASE.CALCULATE_CONT_DEL_TPDATES for entity LPN',WSH_DEBUG_SV.C_PROC_LEVEL);
2403 END IF;
2404
2405 l_cont_tab(1) := l_cont_instance_id;
2406 WSH_TP_RELEASE.calculate_cont_del_tpdates(
2407 p_entity => 'LPN',
2408 p_entity_ids =>l_cont_tab,
2409 x_return_status => x_return_status);
2410 ELSE
2411 IF l_debug_on THEN
2412 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_TP_RELEASE.CALCULATE_CONT_DEL_TPDATES for entity DLVB',WSH_DEBUG_SV.C_PROC_LEVEL);
2413 END IF;
2414 WSH_TP_RELEASE.calculate_cont_del_tpdates(
2415 p_entity => 'DLVB',
2416 p_entity_ids =>l_detail_tab,
2417 x_return_status => x_return_status);
2418 END IF;
2419 --End of fix for bug 5234326/5282496
2420
2421 END IF;
2422 ELSIF (UPPER(p_action_code) = 'UNPACK') OR (UPPER(p_action_code) = 'UNASSIGN') THEN
2423 IF l_debug_on THEN
2424 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_DLVB_COMMON_ACTIONS.UNASSIGN_DETAILS',WSH_DEBUG_SV.C_PROC_LEVEL);
2425 END IF;
2426 WSH_DLVB_COMMON_ACTIONS.Unassign_Details (
2427 p_detail_tab => l_detail_tab,
2428 p_parent_detail_flag => p_container_flag,
2429 p_delivery_flag => p_delivery_flag,
2430 p_group_api_flag => l_group_api_flag,
2431 x_return_status => x_return_status);
2432
2433 IF x_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
2434 IF x_return_status = WSH_UTIL_CORE.G_RET_STS_WARNING THEN
2435 RAISE WSH_UTIL_CORE.G_EXC_WARNING;
2436 ELSE
2437 RAISE WSH_FAIL_CONT_ACTION;
2438 END IF;
2439 END IF;
2440 ELSE
2441 RAISE WSH_INVALID_ACTION;
2442 END IF;
2443
2444 --
2445 -- K LPN CONV. rv
2446 --
2447 IF WSH_WMS_LPN_GRP.G_CALLBACK_REQUIRED = 'Y'
2448 THEN
2449 --{
2450 WSH_LPN_SYNC_COMM_PKG.SYNC_LPNS_TO_WMS
2451 (
2452 p_in_rec => l_lpn_in_sync_comm_rec,
2453 x_return_status => l_return_status,
2454 x_out_rec => l_lpn_out_sync_comm_rec
2455 );
2456 --
2457 --
2458 IF l_debug_on THEN
2459 WSH_DEBUG_SV.log(l_module_name,'Return status after calling WSH_LPN_SYNC_COMM_PKG.SYNC_LPNS_TO_WMS',l_return_status);
2460 WSH_DEBUG_SV.log(l_module_name,'Msg Count after calling WSH_LPN_SYNC_COMM_PKG.SYNC_LPNS_TO_WMS',l_msg_count);
2461 END IF;
2462 --
2463 --
2464 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
2465 IF l_return_status = WSH_UTIL_CORE.G_RET_STS_WARNING THEN
2466 RAISE WSH_UTIL_CORE.G_EXC_WARNING;
2467 ELSIF l_return_status = WSH_UTIL_CORE.G_RET_STS_ERROR THEN
2468 RAISE WSH_FAIL_CONT_ACTION;
2469 ELSE
2470 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2471 END IF;
2472 END IF;
2473 --}
2474 END IF;
2475 --
2476 -- K LPN CONV. rv
2477 --
2478
2479
2480 --Bugfix 4070732 {
2481 IF FND_API.TO_BOOLEAN(p_commit) THEN
2482 l_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
2483 IF NOT(WSH_UTIL_CORE.G_CALL_FTE_LOAD_TENDER_API) THEN
2484 WSH_UTIL_CORE.Process_stops_for_load_tender(
2485 p_reset_flags => FALSE,
2486 x_return_status => l_return_status);
2487 END IF;
2488 IF (l_return_status = WSH_UTIL_CORE.G_RET_STS_SUCCESS)
2489 OR (l_return_status = WSH_UTIL_CORE.G_RET_STS_WARNING) THEN --{
2490
2491 COMMIT;
2492
2493 END IF; --}
2494
2495 wsh_util_core.api_post_call(p_return_status =>l_return_status,
2496 x_num_warnings =>l_num_warning,
2497 x_num_errors =>l_num_errors);
2498 END IF;
2499 --Bugfix 4070732 }
2500
2501 /*
2502 WSH_UTIL_CORE.get_messages('Y', l_msg_summary, l_msg_details, x_msg_count);
2503 if x_msg_count > 1 then
2504 x_msg_data := l_msg_summary || l_msg_details;
2505 else
2506 x_msg_data := l_msg_summary;
2507 end if;
2508 */
2509
2510 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
2511 --Bugfix 4070732 {
2512 IF upper(WSH_UTIL_CORE.G_START_OF_SESSION_API) <> upper(l_api_session_name)
2513 THEN --{
2514 IF NOT(WSH_UTIL_CORE.G_CALL_FTE_LOAD_TENDER_API) THEN
2515 IF FND_API.TO_BOOLEAN(p_commit) THEN
2516
2517 IF l_debug_on THEN
2518 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_UTIL_CORE.reset_stops_for_load_tender',WSH_DEBUG_SV.C_PROC_LEVEL);
2519 END IF;
2520 WSH_UTIL_CORE.reset_stops_for_load_tender(
2521 p_reset_flags => TRUE,
2522 x_return_status => l_return_status);
2523
2524 ELSE
2525
2526
2527 IF l_debug_on THEN
2528 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_UTIL_CORE.Process_stops_for_load_tender',WSH_DEBUG_SV.C_PROC_LEVEL);
2529 END IF;
2530 WSH_UTIL_CORE.Process_stops_for_load_tender(
2531 p_reset_flags => TRUE,
2532 x_return_status => l_return_status);
2533 END IF;
2534
2535 IF l_debug_on THEN
2536 WSH_DEBUG_SV.log(l_module_name,'l_return_status',l_return_status);
2537 END IF;
2538
2539 IF l_return_status IN (WSH_UTIL_CORE.G_RET_STS_ERROR,
2540 WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR) THEN
2541 IF NOT(FND_API.TO_BOOLEAN(p_commit)) THEN
2542 rollback to Container_Action_SP_Grp;
2543 end if;
2544 END IF;
2545 --x_return_status is set to success before the call to fte load tender
2546 -- setting the return status to l_return_status
2547 x_return_status := l_return_status;
2548
2549 END IF;
2550 END IF; --}
2551
2552 --}
2553 --End of bug 4070732
2554
2555
2556 FND_MSG_PUB.Count_And_Get
2557 ( p_count => x_msg_count
2558 , p_data => x_msg_data
2559 , p_encoded => FND_API.G_FALSE
2560 );
2561 --
2562 IF l_debug_on THEN
2563 WSH_DEBUG_SV.pop(l_module_name);
2564 END IF;
2565 --
2566 EXCEPTION
2567
2568 WHEN WSH_UTIL_CORE.G_EXC_WARNING then
2569 x_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
2570 --
2571 -- K LPN CONV. rv
2572 --
2573 IF WSH_WMS_LPN_GRP.G_CALLBACK_REQUIRED = 'Y'
2574 THEN
2575 --{
2576 WSH_LPN_SYNC_COMM_PKG.SYNC_LPNS_TO_WMS
2577 (
2578 p_in_rec => l_lpn_in_sync_comm_rec,
2579 x_return_status => l_return_status,
2580 x_out_rec => l_lpn_out_sync_comm_rec
2581 );
2582 --
2583 --
2584 IF l_debug_on THEN
2585 WSH_DEBUG_SV.log(l_module_name,'Return status after calling WSH_LPN_SYNC_COMM_PKG.SYNC_LPNS_TO_WMS',l_return_status);
2586 WSH_DEBUG_SV.log(l_module_name,'Msg Count after calling WSH_LPN_SYNC_COMM_PKG.SYNC_LPNS_TO_WMS',l_msg_count);
2587 END IF;
2588 --
2589 --
2590 IF (l_return_status IN (WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR, WSH_UTIL_CORE.G_RET_STS_ERROR)) THEN
2591 x_return_status := l_return_status;
2592 END IF;
2593 --
2594 --}
2595 END IF;
2596 --
2597 -- K LPN CONV. rv
2598 --
2599
2600 --Bugfix 4070732 {
2601 IF upper(WSH_UTIL_CORE.G_START_OF_SESSION_API) = upper(l_api_session_name) THEN
2602 IF NOT(WSH_UTIL_CORE.G_CALL_FTE_LOAD_TENDER_API) THEN
2603 IF l_debug_on THEN
2604 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_UTIL_CORE.Process_stops_for_load_tender',WSH_DEBUG_SV.C_PROC_LEVEL);
2605 END IF;
2606
2607 WSH_UTIL_CORE.Process_stops_for_load_tender(p_reset_flags => TRUE,
2608 x_return_status => l_return_status);
2609
2610 IF l_debug_on THEN
2611 WSH_DEBUG_SV.log(l_module_name,'l_return_status',l_return_status);
2612 END IF;
2613
2614 IF (l_return_status = WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR)
2615 OR (l_return_status = WSH_UTIL_CORE.G_RET_STS_ERROR) THEN
2616 rollback to Container_Action_SP_Grp;
2617 x_return_status := l_return_status;
2618 END IF;
2619 END IF;
2620 END IF;
2621 --}
2622
2623 FND_MSG_PUB.Count_And_Get
2624 ( p_count => x_msg_count
2625 , p_data => x_msg_data
2626 , p_encoded => FND_API.G_FALSE
2627 );
2628 IF l_debug_on THEN
2629 WSH_DEBUG_SV.logmsg(l_module_name,'G_RET_STS_WARNING exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
2630 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:G_RET_STS_WARNING');
2631 END IF;
2632
2633 WHEN WSH_INVALID_DETAIL then
2634 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2635 rollback to Container_Action_SP_Grp;
2636 fnd_message.set_name('WSH', 'WSH_DET_INVALID_DETAIL');
2637 WSH_UTIL_CORE.ADD_MESSAGE(x_return_status);
2638 /*
2639 WSH_UTIL_CORE.get_messages('Y', l_msg_summary, l_msg_details, x_msg_count);
2640 if x_msg_count > 1 then
2641 x_msg_data := l_msg_summary || l_msg_details;
2642 else
2643 x_msg_data := l_msg_summary;
2644 end if;
2645 */
2646
2647 --Bugfix 4070732 {
2648 IF upper(WSH_UTIL_CORE.G_START_OF_SESSION_API) = upper(l_api_session_name) THEN
2649 IF NOT(WSH_UTIL_CORE.G_CALL_FTE_LOAD_TENDER_API) THEN
2650 IF l_debug_on THEN
2651 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_UTIL_CORE.Reset_stops_for_load_tender',WSH_DEBUG_SV.C_PROC_LEVEL);
2652 END IF;
2653
2654 WSH_UTIL_CORE.Reset_stops_for_load_tender(p_reset_flags => TRUE,
2655 x_return_status => l_return_status);
2656
2657
2658 IF l_debug_on THEN
2659 WSH_DEBUG_SV.log(l_module_name,'l_return_status',l_return_status);
2660 END IF;
2661
2662 IF (l_return_status = WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR) THEN
2663 x_return_status := l_return_status;
2664 END IF;
2665
2666 END IF;
2667 END IF;
2668 --}
2669 --End of bug 4070732
2670
2671 FND_MSG_PUB.Count_And_Get
2672 ( p_count => x_msg_count
2673 , p_data => x_msg_data
2674 , p_encoded => FND_API.G_FALSE
2675 );
2676 IF l_debug_on THEN
2677 WSH_DEBUG_SV.logmsg(l_module_name,'WSH_INVALID_DETAIL exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
2678 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:WSH_INVALID_DETAIL');
2679 END IF;
2680
2681 WHEN WSH_INVALID_CONT then
2682 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2683 rollback to Container_Action_SP_Grp;
2684 fnd_message.set_name('WSH', 'WSH_CONT_INVALID_NAME');
2685 WSH_UTIL_CORE.ADD_MESSAGE(x_return_status);
2686 /*
2687 WSH_UTIL_CORE.get_messages('Y', l_msg_summary, l_msg_details, x_msg_count);
2688 if x_msg_count > 1 then
2689 x_msg_data := l_msg_summary || l_msg_details;
2690 else
2691 x_msg_data := l_msg_summary;
2692 end if;
2693 */
2694
2695 --Bugfix 4070732 {
2696 IF upper(WSH_UTIL_CORE.G_START_OF_SESSION_API) = upper(l_api_session_name) THEN
2697 IF NOT(WSH_UTIL_CORE.G_CALL_FTE_LOAD_TENDER_API) THEN
2698 IF l_debug_on THEN
2699 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_UTIL_CORE.Reset_stops_for_load_tender',WSH_DEBUG_SV.C_PROC_LEVEL);
2700 END IF;
2701
2702 WSH_UTIL_CORE.Reset_stops_for_load_tender(p_reset_flags => TRUE,
2703 x_return_status => l_return_status);
2704
2705
2706 IF l_debug_on THEN
2707 WSH_DEBUG_SV.log(l_module_name,'l_return_status',l_return_status);
2708 END IF;
2709
2710 IF (l_return_status = WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR) THEN
2711 x_return_status := l_return_status;
2712 END IF;
2713 END IF;
2714 END IF;
2715 --}
2716 --End of bug 4070732
2717
2718 FND_MSG_PUB.Count_And_Get
2719 ( p_count => x_msg_count
2720 , p_data => x_msg_data
2721 , p_encoded => FND_API.G_FALSE
2722 );
2723 IF l_debug_on THEN
2724 WSH_DEBUG_SV.logmsg(l_module_name,'WSH_INVALID_CONT exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
2725 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:WSH_INVALID_CONT');
2726 END IF;
2727 --
2728 WHEN WSH_INVALID_DELIVERY then
2729 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2730 rollback to Container_Action_SP_Grp;
2731 fnd_message.set_name('WSH', 'WSH_DET_INVALID_DEL');
2732 WSH_UTIL_CORE.ADD_MESSAGE(x_return_status);
2733 /*
2734 WSH_UTIL_CORE.get_messages('Y', l_msg_summary, l_msg_details, x_msg_count);
2735 if x_msg_count > 1 then
2736 x_msg_data := l_msg_summary || l_msg_details;
2737 else
2738 x_msg_data := l_msg_summary;
2739 end if;
2740 */
2741
2742 --Bugfix 4070732 {
2743 IF upper(WSH_UTIL_CORE.G_START_OF_SESSION_API) = upper(l_api_session_name) THEN
2744 IF NOT(WSH_UTIL_CORE.G_CALL_FTE_LOAD_TENDER_API) THEN
2745 IF l_debug_on THEN
2746 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_UTIL_CORE.Reset_stops_for_load_tender',WSH_DEBUG_SV.C_PROC_LEVEL);
2747 END IF;
2748
2749 WSH_UTIL_CORE.Reset_stops_for_load_tender(p_reset_flags => TRUE,
2750 x_return_status => l_return_status);
2751
2752
2753 IF l_debug_on THEN
2754 WSH_DEBUG_SV.log(l_module_name,'l_return_status',l_return_status);
2755 END IF;
2756
2757 IF (l_return_status = WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR) THEN
2758 x_return_status := l_return_status;
2759 END IF;
2760 END IF;
2761 END IF;
2762 --}
2763 --End of bug 4070732
2764
2765 FND_MSG_PUB.Count_And_Get
2766 ( p_count => x_msg_count
2767 , p_data => x_msg_data
2768 , p_encoded => FND_API.G_FALSE
2769 );
2770 IF l_debug_on THEN
2771 WSH_DEBUG_SV.logmsg(l_module_name,'WSH_INVALID_DELIVERY exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
2772 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:WSH_INVALID_DELIVERY');
2773 END IF;
2774 --
2775 WHEN WSH_FAIL_CONT_ACTION then
2776 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2777 rollback to Container_Action_SP_Grp;
2778 fnd_message.set_name('WSH', 'WSH_CONT_ACTION_ERROR');
2779 WSH_UTIL_CORE.ADD_MESSAGE(x_return_status);
2780 /*
2781 WSH_UTIL_CORE.get_messages('Y', l_msg_summary, l_msg_details, x_msg_count);
2782 if x_msg_count > 1 then
2783 x_msg_data := l_msg_summary || l_msg_details;
2784 else
2785 x_msg_data := l_msg_summary;
2786 end if;
2787 */
2788
2789 --Bugfix 4070732 {
2790 IF upper(WSH_UTIL_CORE.G_START_OF_SESSION_API) = upper(l_api_session_name) THEN
2791 IF NOT(WSH_UTIL_CORE.G_CALL_FTE_LOAD_TENDER_API) THEN
2792 IF l_debug_on THEN
2793 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_UTIL_CORE.Reset_stops_for_load_tender',WSH_DEBUG_SV.C_PROC_LEVEL);
2794 END IF;
2795
2796 WSH_UTIL_CORE.Reset_stops_for_load_tender(p_reset_flags => TRUE,
2797 x_return_status => l_return_status);
2798
2799
2800 IF l_debug_on THEN
2801 WSH_DEBUG_SV.log(l_module_name,'l_return_status',l_return_status);
2802 END IF;
2803
2804 IF (l_return_status = WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR) THEN
2805 x_return_status := l_return_status;
2806 END IF;
2807 END IF;
2808 END IF;
2809 --}
2810 --End of bug 4070732
2811
2812 FND_MSG_PUB.Count_And_Get
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.logmsg(l_module_name,'WSH_FAIL_CONT_ACTION exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
2819 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:WSH_FAIL_CONT_ACTION');
2820 END IF;
2821 --
2822 WHEN WSH_INVALID_ENTITY_TYPE then
2823 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2824 rollback to Container_Action_SP_Grp;
2825 fnd_message.set_name('WSH', 'WSH_PUB_CONT_TYPE_ERR');
2826 WSH_UTIL_CORE.ADD_MESSAGE(x_return_status);
2827 /*
2828 WSH_UTIL_CORE.get_messages('Y', l_msg_summary, l_msg_details, x_msg_count);
2829 if x_msg_count > 1 then
2830 x_msg_data := l_msg_summary || l_msg_details;
2831 else
2832 x_msg_data := l_msg_summary;
2833 end if;
2834 */
2835 --Bugfix 4070732 {
2836 IF upper(WSH_UTIL_CORE.G_START_OF_SESSION_API) = upper(l_api_session_name) THEN
2837 IF NOT(WSH_UTIL_CORE.G_CALL_FTE_LOAD_TENDER_API) THEN
2838 IF l_debug_on THEN
2839 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_UTIL_CORE.Reset_stops_for_load_tender',WSH_DEBUG_SV.C_PROC_LEVEL);
2840 END IF;
2841
2842 WSH_UTIL_CORE.Reset_stops_for_load_tender(p_reset_flags => TRUE,
2843 x_return_status => l_return_status);
2844
2845
2846 IF l_debug_on THEN
2847 WSH_DEBUG_SV.log(l_module_name,'l_return_status',l_return_status);
2848 END IF;
2849
2850 IF (l_return_status = WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR) THEN
2851 x_return_status := l_return_status;
2852 END IF;
2853 END IF;
2854 END IF;
2855 --}
2856 --End of bug 4070732
2857
2858 FND_MSG_PUB.Count_And_Get
2859 ( p_count => x_msg_count
2860 , p_data => x_msg_data
2861 , p_encoded => FND_API.G_FALSE
2862 );
2863 IF l_debug_on THEN
2864 WSH_DEBUG_SV.logmsg(l_module_name,'WSH_INVALID_ENTITY_TYPE exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
2865 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:WSH_INVALID_ENTITY_TYPE');
2866 END IF;
2867 --
2868 WHEN FND_API.G_EXC_ERROR THEN
2869 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2870 rollback to Container_Action_SP_Grp;
2871 --Bugfix 4070732 {
2872 IF upper(WSH_UTIL_CORE.G_START_OF_SESSION_API) = upper(l_api_session_name) THEN
2873 IF NOT(WSH_UTIL_CORE.G_CALL_FTE_LOAD_TENDER_API) THEN
2874 IF l_debug_on THEN
2875 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_UTIL_CORE.Reset_stops_for_load_tender',WSH_DEBUG_SV.C_PROC_LEVEL);
2876 END IF;
2877
2878 WSH_UTIL_CORE.Reset_stops_for_load_tender(p_reset_flags => TRUE,
2879 x_return_status => l_return_status);
2880
2881
2882 IF l_debug_on THEN
2883 WSH_DEBUG_SV.log(l_module_name,'l_return_status',l_return_status);
2884 END IF;
2885 IF l_return_status = WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR THEN
2886 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
2887 END IF;
2888
2889 END IF;
2890 END IF;
2891 --}
2892 --End of bug 4070732
2893
2894 FND_MSG_PUB.Count_And_Get
2895 ( p_count => x_msg_count
2896 , p_data => x_msg_data
2897 , p_encoded => FND_API.G_FALSE
2898 );
2899
2900 IF l_debug_on THEN
2901 WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '|| SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
2902 WSH_DEBUG_SV.pop(l_module_name);
2903 END IF;
2904 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2905 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
2906 rollback to Container_Action_SP_Grp;
2907 --Bugfix 4070732 {
2908 IF upper(WSH_UTIL_CORE.G_START_OF_SESSION_API) = upper(l_api_session_name) THEN
2909 IF NOT(WSH_UTIL_CORE.G_CALL_FTE_LOAD_TENDER_API) THEN
2910 IF l_debug_on THEN
2911 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_UTIL_CORE.Reset_stops_for_load_tender',WSH_DEBUG_SV.C_PROC_LEVEL);
2912 END IF;
2913
2914 WSH_UTIL_CORE.Reset_stops_for_load_tender(p_reset_flags => TRUE,
2915 x_return_status => l_return_status);
2916
2917
2918 IF l_debug_on THEN
2919 WSH_DEBUG_SV.log(l_module_name,'l_return_status',l_return_status);
2920 END IF;
2921
2922 END IF;
2923 END IF;
2924 --}
2925 --End of bug 4070732
2926
2927 FND_MSG_PUB.Count_And_Get
2928 ( p_count => x_msg_count
2929 , p_data => x_msg_data
2930 , p_encoded => FND_API.G_FALSE
2931 );
2932
2933 IF l_debug_on THEN
2934 WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '|| SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
2935 WSH_DEBUG_SV.pop(l_module_name);
2936 END IF;
2937 WHEN OTHERS then
2938 wsh_util_core.default_handler('WSH_CONTAINER_GRP.Container_Actions');
2939 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
2940 rollback to Container_Action_SP_Grp;
2941 /*
2942 WSH_UTIL_CORE.get_messages('Y', l_msg_summary, l_msg_details, x_msg_count);
2943 if x_msg_count > 1 then
2944 x_msg_data := l_msg_summary || l_msg_details;
2945 else
2946 x_msg_data := l_msg_summary;
2947 end if;
2948 */
2949 --Bugfix 4070732 {
2950 IF upper(WSH_UTIL_CORE.G_START_OF_SESSION_API) = upper(l_api_session_name) THEN
2951 IF NOT(WSH_UTIL_CORE.G_CALL_FTE_LOAD_TENDER_API) THEN
2952 IF l_debug_on THEN
2953 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_UTIL_CORE.Reset_stops_for_load_tender',WSH_DEBUG_SV.C_PROC_LEVEL);
2954 END IF;
2955
2956 WSH_UTIL_CORE.Reset_stops_for_load_tender(p_reset_flags => TRUE,
2957 x_return_status => l_return_status);
2958
2959
2960 IF l_debug_on THEN
2961 WSH_DEBUG_SV.log(l_module_name,'l_return_status',l_return_status);
2962 END IF;
2963
2964 END IF;
2965 END IF;
2966 --}
2967 --End of bug 4070732
2968
2969 FND_MSG_PUB.Count_And_Get
2970 ( p_count => x_msg_count
2971 , p_data => x_msg_data
2972 , p_encoded => FND_API.G_FALSE
2973 );
2974
2975 IF l_debug_on THEN
2976 WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '|| SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
2977 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
2978 END IF;
2979 --
2980 END Container_Actions;
2981
2982
2983 END WSH_CONTAINER_GRP;