[Home] [Help]
PACKAGE BODY: APPS.WSH_DELIVERY_DETAILS_PUB
Source
1 PACKAGE BODY WSH_DELIVERY_DETAILS_PUB as
2 /* $Header: WSHDDPBB.pls 120.3 2006/03/21 12:57:11 wrudge ship $ */
3
4 -- standard global constants
5 G_PKG_NAME CONSTANT VARCHAR2(30) := 'WSH_DELIVERY_DETAILS_PUB';
6 p_message_type CONSTANT VARCHAR2(1) := 'E';
7
8
9 PROCEDURE Copy_Attributes(
10 x_detail_info_tab OUT NOCOPY WSH_GLBL_VAR_STRCT_GRP.Delivery_Details_Attr_Tbl_Type
11 , x_changed_attributes IN WSH_DELIVERY_DETAILS_PUB.ChangedAttributeTabType);
12
13
14 -- -----------------------------------------------------------------------
15 -- Procedure: detail_to_delivery
16 --
17 -- Parameters: 1) table of delivery_detail_ids
18 -- 2) action: assign/unassign
19 -- 3) delivery_id: need to specify delivery id or delivery name
20 -- if the action is 'ASSIGN'
21 -- 4) delivery_name: need to specify delivery id or delivery
22 -- name if the action is 'ASSIGN'
23 -- 5) other standard parameters
24 --
25 --
26 -- Description: This procedure assign/unassign delivery_details to
27 -- a delivery.
28 -- Parameters: p_TabOfDelDets: required
29 -- p_action: required
30 -- p_delivery_id: required if action='ASSIGN'
31 -- -----------------------------------------------------------------------
32
33 PROCEDURE detail_to_delivery(
34 -- Standard parameters
35 p_api_version IN NUMBER,
36 p_init_msg_list IN VARCHAR2,
37 p_commit IN VARCHAR2,
38 p_validation_level IN NUMBER,
39 x_return_status OUT NOCOPY VARCHAR2,
40 x_msg_count OUT NOCOPY NUMBER,
41 x_msg_data OUT NOCOPY VARCHAR2,
42
43 -- procedure specific parameters
44 p_TabOfDelDets IN ID_TAB_TYPE,
45 p_action IN VARCHAR2,
46 p_delivery_id IN NUMBER,
47 p_delivery_name IN VARCHAR2
48 ) IS
49
50 -- Standard call to check for call compatibility
51 l_api_version CONSTANT NUMBER := 1.0;
52 l_api_name CONSTANT VARCHAR2(30):= 'delivery_detail_to_delivery';
53
54 l_return_status VARCHAR2(30) := NULL;
55 l_delivery_id number := NULL;
56 l_cont_ins_id number := NULL;
57 l_TabOfDelDets WSH_UTIL_CORE.ID_TAB_TYPE;
58 l_msg_summary varchar2(2000) := NULL;
59 l_msg_details varchar2(4000) := NULL;
60
61 -- Harmonization Project
62 l_action_prms WSH_GLBL_VAR_STRCT_GRP.dd_action_parameters_rec_type;
63 l_action_out_rec WSH_GLBL_VAR_STRCT_GRP.dd_action_out_rec_type;
64 l_dummy_qty NUMBER;
65 l_dummy_qty2 NUMBER;
66 l_dummy_ids wsh_util_core.id_tab_type;
67
68 l_msg_count NUMBER;
69 l_msg_data VARCHAR2(32767);
70 l_number_of_errors NUMBER := 0;
71 l_number_of_warnings NUMBER := 0;
72
73 -- Harmonization Project
74
75 WSH_NO_DEL_DET_TBL exception;
76 --
77 l_debug_on BOOLEAN;
78 --
79 l_module_name CONSTANT VARCHAR2(100) := 'wsh.plsql.' || G_PKG_NAME || '.' || 'DETAIL_TO_DELIVERY';
80 --
81 begin
82
83 -- Standard begin of API savepoint
84 --
85 l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
86 --
87 IF l_debug_on IS NULL
88 THEN
89 l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
90 END IF;
91 --
92 SAVEPOINT DETAIL_TO_DELIVERY_PUB;
93 IF l_debug_on THEN
94 WSH_DEBUG_SV.push(l_module_name);
95 --
96 WSH_DEBUG_SV.log(l_module_name,'P_API_VERSION',P_API_VERSION);
97 WSH_DEBUG_SV.log(l_module_name,'P_INIT_MSG_LIST',P_INIT_MSG_LIST);
98 WSH_DEBUG_SV.log(l_module_name,'P_COMMIT',P_COMMIT);
99 WSH_DEBUG_SV.log(l_module_name,'P_VALIDATION_LEVEL',P_VALIDATION_LEVEL);
100 WSH_DEBUG_SV.log(l_module_name,'P_ACTION',P_ACTION);
101 WSH_DEBUG_SV.log(l_module_name,'P_DELIVERY_ID',P_DELIVERY_ID);
102 WSH_DEBUG_SV.log(l_module_name,'P_DELIVERY_NAME',P_DELIVERY_NAME);
103 END IF;
104 --
105
106 IF NOT FND_API.compatible_api_call( l_api_version,
107 p_api_version,
108 l_api_name,
109 G_PKG_NAME) THEN
110 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
111 END IF;
112
113 -- Check p_init_msg_list
114 IF FND_API.to_boolean(p_init_msg_list) THEN
115 FND_MSG_PUB.initialize;
116 END IF;
117
118 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
119
120 if (p_TabOfDelDets.count = 0) then
121 raise WSH_NO_DEL_DET_TBL;
122 end if;
123
124
125 FOR I IN p_TabOfDelDets.first .. p_TabOfDelDets.last
126 LOOP
127
128 l_TabOfDelDets(i) := p_TabOfDelDets(i);
129 -- dbms_output.put_line(l_TabOfDelDets(i));
130 END LOOP;
131 l_action_prms.caller := 'WSH_PUB';
132 l_action_prms.action_code := p_action;
133 l_action_prms.delivery_id := p_delivery_id;
134 l_action_prms.delivery_name := p_delivery_name;
135
136 /* Patchset I: Harmonization Project. Call group API
137 All validations done by Group API */
138
139 IF l_debug_on THEN
140 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_INTERFACE_GRP.DELIVERY_DETAIL_ACTION',WSH_DEBUG_SV.C_PROC_LEVEL);
141 END IF;
142 --
143
144 wsh_interface_grp.delivery_detail_action(
145 p_api_version_number => p_api_version,
146 p_init_msg_list => FND_API.G_FALSE,
147 p_commit => FND_API.G_FALSE,
148 x_return_status => l_return_status,
149 x_msg_count => l_msg_count,
150 x_msg_data => l_msg_data,
151 p_detail_id_tab => l_TabOfDelDets,
152 p_action_prms => l_action_prms ,
153 x_action_out_rec => l_action_out_rec);
154
155 IF l_debug_on THEN
156 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_UTIL_CORE.API_POST_CALL',WSH_DEBUG_SV.C_PROC_LEVEL);
157 END IF;
158 --
159 wsh_util_core.api_post_call(
160 p_return_status => l_return_status,
161 x_num_warnings => l_number_of_warnings,
162 x_num_errors => l_number_of_errors,
163 p_msg_data => l_msg_data
164 );
165
166 IF l_number_of_warnings > 0 THEN
167 x_return_status := wsh_util_core.g_ret_sts_warning;
168 END IF;
169
170
171 IF FND_API.TO_BOOLEAN(p_commit) THEN
172 -- dbms_output.put_line('commit');
173 COMMIT WORK;
174 END IF;
175
176 FND_MSG_PUB.Count_And_Get
177 (
178 p_count => x_msg_count,
179 p_data => x_msg_data,
180 p_encoded => FND_API.G_FALSE
181 );
182
183 IF l_debug_on THEN
184 WSH_DEBUG_SV.pop(l_module_name);
185 END IF;
186 --
187 exception
188 WHEN FND_API.G_EXC_ERROR THEN
189 ROLLBACK TO DETAIL_TO_DELIVERY_PUB;
190 x_return_status := FND_API.G_RET_STS_ERROR ;
191 wsh_util_core.add_message(x_return_status);
192 FND_MSG_PUB.Count_And_Get
193 (
194 p_count => x_msg_count,
195 p_data => x_msg_data,
196 p_encoded => FND_API.G_FALSE
197 );
198
199 IF l_debug_on THEN
200 WSH_DEBUG_SV.logmsg(l_module_name,'FND_API.G_EXC_ERROR exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
201 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:FND_API.G_EXC_ERROR');
202 END IF;
203 --
204 WHEN WSH_NO_DEL_DET_TBL then
205 ROLLBACK TO DETAIL_TO_DELIVERY_PUB;
206 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
207 fnd_message.set_name('WSH', 'WSH_PUB_NO_DEL_DET_TBL');
208 WSH_UTIL_CORE.ADD_MESSAGE(x_return_status);
209 FND_MSG_PUB.Count_And_Get
210 (
211 p_count => x_msg_count,
212 p_data => x_msg_data,
213 p_encoded => FND_API.G_FALSE
214 );
215
216 IF l_debug_on THEN
217 WSH_DEBUG_SV.logmsg(l_module_name,'WSH_NO_DEL_DET_TBL exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
218 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:WSH_NO_DEL_DET_TBL');
219 END IF;
220 --
221 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
222 ROLLBACK TO DETAIL_TO_DELIVERY_PUB;
223 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
224 wsh_util_core.add_message(x_return_status, l_module_name);
225 FND_MSG_PUB.Count_And_Get
226 (
227 p_count => x_msg_count,
228 p_data => x_msg_data,
229 p_encoded => FND_API.G_FALSE
230 );
231 --
232
233 IF l_debug_on THEN
234 WSH_DEBUG_SV.logmsg(l_module_name,'FND_API.G_EXC_UNEXPECTED_ERROR exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
235 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:FND_API.G_EXC_UNEXPECTED_ERROR');
236 END IF;
237 WHEN others then
238 ROLLBACK TO DETAIL_TO_DELIVERY_PUB;
239 wsh_util_core.default_handler('WSH_DELIVERY_DETAILS_PUB.DETAIL_TO_DELIVERY');
240 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
241 FND_MSG_PUB.Count_And_Get
242 (
243 p_count => x_msg_count,
244 p_data => x_msg_data,
245 p_encoded => FND_API.G_FALSE
246 );
247
248 IF l_debug_on THEN
249 WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '|| SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
250 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
251 END IF;
252 --
253 END detail_to_delivery;
254
255 -- ----------------------------------------------------------------------
256 -- Procedure: split_line
257 -- Parameters: p_from_detail_id: The delivery detail ID to be split
258 -- x_new_detail_id: The new delivery detail ID
259 -- p_source_quantity:
260 -- split_quantity:
261 --
262 -- Description: This procedure split a delivery_deatil line
263 -- 03/19/01 OPM changes. Added split_quantity2
264 -- ----------------------------------------------------------------------
265
266 PROCEDURE split_line
267 (
268 -- Standard parameters
269 p_api_version IN NUMBER,
270 p_init_msg_list IN VARCHAR2,
271 p_commit IN VARCHAR2,
272 p_validation_level IN NUMBER,
273 x_return_status OUT NOCOPY VARCHAR2,
274 x_msg_count OUT NOCOPY NUMBER,
275 x_msg_data OUT NOCOPY VARCHAR2,
276
277 -- Procedure specific parameters
278 p_from_detail_id IN NUMBER,
279 x_new_detail_id OUT NOCOPY NUMBER,
280 x_split_quantity IN OUT NOCOPY NUMBER,
281 x_split_quantity2 IN OUT NOCOPY NUMBER
282 ) is
283
284 l_msg_summary varchar2(2000);
285 l_msg_details varchar2(4000);
286
287 -- Harmonization Project
288 l_action_prms WSH_GLBL_VAR_STRCT_GRP.dd_action_parameters_rec_type;
289 l_action_out_rec WSH_GLBL_VAR_STRCT_GRP.dd_action_out_rec_type;
290 l_dummy_qty NUMBER;
291 l_dummy_qty2 NUMBER;
292 l_dummy_ids wsh_util_core.id_tab_type;
293 l_detail_ids wsh_util_core.id_tab_type;
294 l_msg_count NUMBER;
295 l_msg_data VARCHAR2(32767);
296 l_number_of_errors NUMBER := 0;
297 l_number_of_warnings NUMBER := 0;
298 l_return_status VARCHAR2(30);
299 l_index NUMBER;
300
301 -- Standard call to check for call compatibility.
302 l_api_version CONSTANT NUMBER := 1.0;
303 l_api_name CONSTANT VARCHAR2(30):= 'delivery_detail_to_delivery';
304
305 l_debug_on BOOLEAN;
306 --
307 l_module_name CONSTANT VARCHAR2(100) := 'wsh.plsql.' || G_PKG_NAME || '.' || 'SPLIT_LINE';
308 --
309 BEGIN
310
311 -- Standard begin of API savepoint
312 --
313 l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
314 --
315 IF l_debug_on IS NULL
316 THEN
317 l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
318 END IF;
319 --
320 SAVEPOINT SPLIT_LINE_PUB;
321
322 IF l_debug_on THEN
323 WSH_DEBUG_SV.push(l_module_name);
324 --
325 WSH_DEBUG_SV.log(l_module_name,'P_API_VERSION',P_API_VERSION);
326 WSH_DEBUG_SV.log(l_module_name,'P_INIT_MSG_LIST',P_INIT_MSG_LIST);
327 WSH_DEBUG_SV.log(l_module_name,'P_COMMIT',P_COMMIT);
328 WSH_DEBUG_SV.log(l_module_name,'P_VALIDATION_LEVEL',P_VALIDATION_LEVEL);
329 WSH_DEBUG_SV.log(l_module_name,'P_FROM_DETAIL_ID',P_FROM_DETAIL_ID);
330 WSH_DEBUG_SV.log(l_module_name,'X_SPLIT_QUANTITY',X_SPLIT_QUANTITY);
331 WSH_DEBUG_SV.log(l_module_name,'X_SPLIT_QUANTITY2',X_SPLIT_QUANTITY2);
332 END IF;
333 --
334
335 IF NOT FND_API.compatible_api_call(l_api_version,
336 p_api_version,
337 l_api_name,
338 G_PKG_NAME) THEN
339 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
340 END IF;
341 -- Check p_init_msg_list
342 IF FND_API.to_boolean(p_init_msg_list) THEN
343 FND_MSG_PUB.initialize;
344 END IF;
345 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
346
347
348 l_detail_ids(1) := p_from_detail_id;
349 l_action_prms.caller := 'WSH_PUB';
350 l_action_prms.action_code := 'SPLIT-LINE';
351 l_action_prms.split_quantity := x_split_quantity;
352 l_action_prms.split_quantity2 := x_split_quantity2;
353
354 /* Patchset I: Harmonization Project. Call group API
355 All validations done by Group API */
356
357 IF l_debug_on THEN
358 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_INTERFACE_GRP.DELIVERY_DETAIL_ACTION',WSH_DEBUG_SV.C_PROC_LEVEL);
359 END IF;
360
361 wsh_interface_grp.delivery_detail_action(
362 p_api_version_number => p_api_version,
363 p_init_msg_list => FND_API.G_FALSE,
364 p_commit => FND_API.G_FALSE,
365 x_return_status => l_return_status,
366 x_msg_count => l_msg_count,
367 x_msg_data => l_msg_data,
368 p_detail_id_tab => l_detail_ids,
369 p_action_prms => l_action_prms ,
370 x_action_out_rec => l_action_out_rec);
371
372 IF l_debug_on THEN
373 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_UTIL_CORE.API_POST_CALL',WSH_DEBUG_SV.C_PROC_LEVEL);
374 END IF;
375 --
376 wsh_util_core.api_post_call(
377 p_return_status => l_return_status,
378 x_num_warnings => l_number_of_warnings,
379 x_num_errors => l_number_of_errors,
380 p_msg_data => l_msg_data
381 );
382
383 x_split_quantity := l_action_out_rec.split_quantity;
384 x_split_quantity2 := l_action_out_rec.split_quantity2;
385 l_index := l_action_out_rec.result_id_tab.first;
386 x_new_detail_id := l_action_out_rec.result_id_tab(l_index);
387
388 IF l_number_of_warnings > 0 THEN
389 x_return_status := wsh_util_core.g_ret_sts_warning;
390 END IF;
391
392 IF FND_API.TO_BOOLEAN(p_commit) THEN
393 -- dbms_output.put_line('commit');
394 COMMIT WORK;
395 END IF;
396
397 FND_MSG_PUB.Count_And_Get
398 (
399 p_count => x_msg_count,
400 p_data => x_msg_data,
401 p_encoded => FND_API.G_FALSE
402 );
403
404 IF l_debug_on THEN
405 WSH_DEBUG_SV.pop(l_module_name);
406 END IF;
407 --
408 exception
409 WHEN FND_API.G_EXC_ERROR THEN
410 ROLLBACK TO SPLIT_LINE_PUB;
411 x_return_status := FND_API.G_RET_STS_ERROR ;
412 wsh_util_core.add_message(x_return_status);
413 FND_MSG_PUB.Count_And_Get
414 (
415 p_count => x_msg_count,
416 p_data => x_msg_data,
417 p_encoded => FND_API.G_FALSE
418 );
419
420 IF l_debug_on THEN
421 WSH_DEBUG_SV.logmsg(l_module_name,'FND_API.G_EXC_ERROR exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
422 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:FND_API.G_EXC_ERROR');
423 END IF;
424 --
425 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
426 ROLLBACK TO SPLIT_LINE_PUB;
427 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
428 wsh_util_core.add_message(x_return_status, l_module_name);
429 FND_MSG_PUB.Count_And_Get
430 (
431 p_count => x_msg_count,
432 p_data => x_msg_data,
433 p_encoded => FND_API.G_FALSE
434 );
435 --
436
437 IF l_debug_on THEN
438 WSH_DEBUG_SV.logmsg(l_module_name,'FND_API.G_EXC_UNEXPECTED_ERROR exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
439 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:FND_API.G_EXC_UNEXPECTED_ERROR');
440 END IF;
441 WHEN OTHERS THEN
442 ROLLBACK TO SPLIT_LINE_PUB;
443 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
444 wsh_util_core.add_message(x_return_status, l_module_name);
445 WSH_UTIL_CORE.default_handler('WSH_DELIVERY_DETAILS_PUB.Split_Line');
446 FND_MSG_PUB.Count_And_Get
447 (
448 p_count => x_msg_count,
449 p_data => x_msg_data,
450 p_encoded => FND_API.G_FALSE
451 );
452 --
453 IF l_debug_on THEN
454 WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '|| SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
455 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
456 END IF;
457 --
458 END split_line;
459 --===================
460 -- PROCEDURES
461 --===================
462
463 -- Procedure Init_Changed_Attribute_Rec
464 -- Parameter p_init_rec record that needs to be initialized.
465 -- This procedure takes in a record of WSH_DELIVERY_DETAILS_PUB.ChangedAttributeRecType and
466 -- initializes its attributes to the default FND_API_G values.
467
468 Procedure Init_Changed_Attribute_Rec(p_init_rec IN OUT NOCOPY WSH_DELIVERY_DETAILS_PUB.ChangedAttributeRecType,
469 x_return_status OUT NOCOPY VARCHAR2) IS
470 --
471 l_debug_on BOOLEAN;
472 --
473 l_module_name CONSTANT VARCHAR2(100) := 'wsh.plsql.' || G_PKG_NAME || '.' || 'INIT_CHANGED_ATTRIBUTE_REC';
474 --
475 BEGIN
476 --
477 -- Debug Statements
478 --
479 --
480 l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
481 --
482 IF l_debug_on IS NULL
483 THEN
484 l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
485 END IF;
486 --
487 IF l_debug_on THEN
488 WSH_DEBUG_SV.push(l_module_name);
489 END IF;
490 --
491 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
492 p_init_rec.source_header_id := FND_API.G_MISS_NUM;
493 p_init_rec.source_line_id := FND_API.G_MISS_NUM;
494 p_init_rec.sold_to_org_id := FND_API.G_MISS_NUM;
495 p_init_rec.customer_number := FND_API.G_MISS_NUM;
496 p_init_rec.sold_to_contact_id := FND_API.G_MISS_NUM;
497 p_init_rec.ship_from_org_id := FND_API.G_MISS_NUM;
498 p_init_rec.ship_from_org_code := FND_API.G_MISS_CHAR;
499 p_init_rec.ship_to_org_id := FND_API.G_MISS_NUM;
500 p_init_rec.ship_to_org_code := FND_API.G_MISS_CHAR;
501 p_init_rec.ship_to_contact_id := FND_API.G_MISS_NUM;
502 p_init_rec.deliver_to_org_id := FND_API.G_MISS_NUM;
503 p_init_rec.deliver_to_org_code := FND_API.G_MISS_CHAR;
504 p_init_rec.deliver_to_contact_id := FND_API.G_MISS_NUM;
505 p_init_rec.intmed_ship_to_org_id := FND_API.G_MISS_NUM;
506 p_init_rec.intmed_ship_to_org_code := FND_API.G_MISS_CHAR;
507 p_init_rec.intmed_ship_to_contact_id := FND_API.G_MISS_NUM;
508 p_init_rec.ship_tolerance_above := FND_API.G_MISS_NUM;
509 p_init_rec.ship_tolerance_below := FND_API.G_MISS_NUM;
510 p_init_rec.ordered_quantity := FND_API.G_MISS_NUM;
511 p_init_rec.ordered_quantity2 := FND_API.G_MISS_NUM;
512 p_init_rec.order_quantity_uom := FND_API.G_MISS_CHAR;
513 p_init_rec.ordered_quantity_uom2 := FND_API.G_MISS_CHAR;
514 p_init_rec.preferred_grade := FND_API.G_MISS_CHAR;
515 p_init_rec.ordered_qty_unit_of_measure := FND_API.G_MISS_CHAR;
516 p_init_rec.ordered_qty_unit_of_measure2 := FND_API.G_MISS_CHAR;
517 p_init_rec.subinventory := FND_API.G_MISS_CHAR;
518 p_init_rec.revision := FND_API.G_MISS_CHAR;
519 p_init_rec.lot_number := FND_API.G_MISS_CHAR;
520 -- HW OPMCONV - No need for sublot_number
521 -- p_init_rec.sublot_number := FND_API.G_MISS_CHAR;
522 p_init_rec.customer_requested_lot_flag := FND_API.G_MISS_CHAR;
523 p_init_rec.serial_number := FND_API.G_MISS_CHAR;
524 p_init_rec.locator_id := FND_API.G_MISS_NUM;
525 p_init_rec.date_requested := FND_API.G_MISS_DATE;
526 p_init_rec.date_scheduled := FND_API.G_MISS_DATE;
527 p_init_rec.master_container_item_id := FND_API.G_MISS_NUM;
528 p_init_rec.detail_container_item_id := FND_API.G_MISS_NUM;
529 p_init_rec.shipping_method_code := FND_API.G_MISS_CHAR;
530 p_init_rec.carrier_id := FND_API.G_MISS_NUM;
531 p_init_rec.freight_terms_code := FND_API.G_MISS_CHAR;
532 p_init_rec.freight_terms_name := FND_API.G_MISS_CHAR;
533 p_init_rec.freight_carrier_code := FND_API.G_MISS_CHAR;
534 p_init_rec.shipment_priority_code := FND_API.G_MISS_CHAR;
535 p_init_rec.fob_code := FND_API.G_MISS_CHAR;
536 p_init_rec.fob_name := FND_API.G_MISS_CHAR;
537 p_init_rec.dep_plan_required_flag := FND_API.G_MISS_CHAR;
538 p_init_rec.customer_prod_seq := FND_API.G_MISS_CHAR;
539 p_init_rec.customer_dock_code := FND_API.G_MISS_CHAR;
540 p_init_rec.gross_weight := FND_API.G_MISS_NUM;
541 p_init_rec.net_weight := FND_API.G_MISS_NUM;
542 p_init_rec.weight_uom_code := FND_API.G_MISS_CHAR;
543 p_init_rec.weight_uom_desc := FND_API.G_MISS_CHAR;
544 p_init_rec.volume := FND_API.G_MISS_NUM;
545 p_init_rec.volume_uom_code := FND_API.G_MISS_CHAR;
546 p_init_rec.volume_uom_desc := FND_API.G_MISS_CHAR;
547 p_init_rec.top_model_line_id := FND_API.G_MISS_NUM;
548 p_init_rec.ship_set_id := FND_API.G_MISS_NUM;
549 p_init_rec.ato_line_id := FND_API.G_MISS_NUM;
550 p_init_rec.arrival_set_id := FND_API.G_MISS_NUM;
551 p_init_rec.ship_model_complete_flag := FND_API.G_MISS_CHAR;
552 p_init_rec.cust_po_number := FND_API.G_MISS_CHAR;
553 p_init_rec.released_status := FND_API.G_MISS_CHAR;
554 p_init_rec.packing_instructions := FND_API.G_MISS_CHAR;
555 p_init_rec.shipping_instructions := FND_API.G_MISS_CHAR;
556 p_init_rec.container_name := FND_API.G_MISS_CHAR;
557 p_init_rec.container_flag := FND_API.G_MISS_CHAR;
558 p_init_rec.delivery_detail_id := FND_API.G_MISS_NUM;
559 p_init_rec.shipped_quantity := FND_API.G_MISS_NUM;
560 p_init_rec.cycle_count_quantity := FND_API.G_MISS_NUM;
561 -- HW OPMCONV - Added Qty2
562 p_init_rec.shipped_quantity2 := FND_API.G_MISS_NUM;
563 p_init_rec.cycle_count_quantity2 := FND_API.G_MISS_NUM;
564 p_init_rec.tracking_number := FND_API.G_MISS_CHAR;
565 p_init_rec.attribute1 := FND_API.G_MISS_CHAR;
566 p_init_rec.attribute2 := FND_API.G_MISS_CHAR;
567 p_init_rec.attribute3 := FND_API.G_MISS_CHAR;
568 p_init_rec.attribute4 := FND_API.G_MISS_CHAR;
569 p_init_rec.attribute5 := FND_API.G_MISS_CHAR;
570 p_init_rec.attribute6 := FND_API.G_MISS_CHAR;
571 p_init_rec.attribute7 := FND_API.G_MISS_CHAR;
572 p_init_rec.attribute8 := FND_API.G_MISS_CHAR;
573 p_init_rec.attribute9 := FND_API.G_MISS_CHAR;
574 p_init_rec.attribute10 := FND_API.G_MISS_CHAR;
575 p_init_rec.attribute11 := FND_API.G_MISS_CHAR;
576 p_init_rec.attribute12 := FND_API.G_MISS_CHAR;
577 p_init_rec.attribute13 := FND_API.G_MISS_CHAR;
578 p_init_rec.attribute14 := FND_API.G_MISS_CHAR;
579 p_init_rec.attribute15 := FND_API.G_MISS_CHAR;
580 -- J: W/V Changes
581 p_init_rec.filled_volume := FND_API.G_MISS_NUM;
582
583 --
584 -- Debug Statements
585 --
586 IF l_debug_on THEN
587 WSH_DEBUG_SV.pop(l_module_name);
588 END IF;
589 --
590 EXCEPTION
591 WHEN Others THEN
592 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
593 WSH_UTIL_CORE.add_message (x_return_status);
594 WSH_UTIL_CORE.default_handler('WSH_DELIVERY_DETAILS_PUB.Init_Changed_Attribute_Rec');
595
596
597 --
598 -- Debug Statements
599 --
600 IF l_debug_on THEN
601 WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '|| SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
602 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
603 END IF;
604 --
605 END Init_Changed_Attribute_Rec;
606
607 --========================================================================
608 -- PROCEDURE : Update_Shipping_Attributes
609 --
610 -- PARAMETERS: p_api_version_number known api versionerror buffer
611 -- p_init_msg_list initialize message stack
612 -- x_return_status return status
613 -- x_msg_count number of messages in the list
614 -- x_msg_data text of messages
615 -- p_changed_attributes changed attributes for delivery details
616 -- p_source_code source system
617 --
618 --
619 -- COMMENT : Validates Organization_id and Organization_code against view
620 -- org_organization_definitions. If both values are
621 -- specified then only Org_Id is used
622 --
623 --DESCRIPTION: This overloaded version of Update_Shipping_Attributes is created
624 -- to enable entry of multiple serial ranges for a given delivery
625 -- detail
626 --
627 --CREATED: During patchset I
628 --========================================================================
629
630 PROCEDURE Update_Shipping_Attributes (
631 -- Standard parameters
632 p_api_version_number IN NUMBER
633 , p_init_msg_list IN VARCHAR2
634 , p_commit IN VARCHAR2
635 , x_return_status OUT NOCOPY VARCHAR2
636 , x_msg_count OUT NOCOPY NUMBER
637 , x_msg_data OUT NOCOPY VARCHAR2
638
639 -- Procedure specific parameters
640 , p_changed_attributes IN WSH_DELIVERY_DETAILS_PUB.ChangedAttributeTabType
641 , p_source_code IN VARCHAR2
642 , p_container_flag IN VARCHAR2
643 )
644 IS
645
646 l_msg_summary varchar2(2000) := NULL;
647 l_msg_details varchar2(4000) := NULL;
648 l_return_status VARCHAR2(30);
649 l_counter NUMBER;
650 l_index NUMBER;
651 l_api_version_number NUMBER := 1.0;
652 l_api_name VARCHAR2(30) := 'Update_Shipping_Attributes';
653 l_ship_to_location_id NUMBER;
654 invalid_source_code EXCEPTION;
655
656 m NUMBER := 0;
657
658
659 -- Harmonization Project
660 l_detail_info_tab WSH_GLBL_VAR_STRCT_GRP.Delivery_Details_Attr_Tbl_Type;
661 l_in_rec WSH_GLBL_VAR_STRCT_GRP.detailInRecType;
662 l_lpn_ids wsh_util_core.id_Tab_type;
663 l_out_Rec WSH_GLBL_VAR_STRCT_GRP.detailOutRecType;
664 l_msg_count NUMBER;
665 l_msg_data VARCHAR2(32767);
666 l_number_of_errors NUMBER := 0;
667 l_number_of_warnings NUMBER := 0;
668 --
669 l_debug_on BOOLEAN;
670 --
671 l_module_name CONSTANT VARCHAR2(100) := 'wsh.plsql.' || G_PKG_NAME || '.' || 'UPDATE_SHIPPING_ATTRIBUTES';
672 --
673 BEGIN
674 --
675 l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
676 --
677 IF l_debug_on IS NULL
678 THEN
679 l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
680 END IF;
681 --
682 SAVEPOINT UPDATE_SHIPPING_ATTR_PUB;
683
684 IF l_debug_on THEN
685 WSH_DEBUG_SV.push(l_module_name);
686 --
687 WSH_DEBUG_SV.log(l_module_name,'P_API_VERSION_NUMBER',P_API_VERSION_NUMBER);
688 WSH_DEBUG_SV.log(l_module_name,'P_INIT_MSG_LIST',P_INIT_MSG_LIST);
689 WSH_DEBUG_SV.log(l_module_name,'P_COMMIT',P_COMMIT);
690 WSH_DEBUG_SV.log(l_module_name,'P_SOURCE_CODE',P_SOURCE_CODE);
691 WSH_DEBUG_SV.log(l_module_name,'P_CONTAINER_FLAG',P_CONTAINER_FLAG);
692 END IF;
693 --
694
695 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
696
697 -- Standard call to check for call compatibility
698 IF NOT FND_API.Compatible_API_Call(
699 l_api_version_number,
700 p_api_version_number,
701 l_api_name,
702 G_PKG_NAME) THEN
703 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
704 END IF;
705
706 -- Initialize message stack if required
707 IF FND_API.to_Boolean(p_init_msg_list) THEN
708 FND_MSG_PUB.initialize;
709 END IF;
710
711 -- <start of API logic>
712 -- sperera source_code has to be 'OE' or 'WSH'
713 IF (NVL(p_source_code, FND_API.G_MISS_CHAR) NOT IN ('WSH', 'OE')) THEN
714 RAISE invalid_source_code;
715 END IF;
716
717
718 -- call the copy procedure here
719
720 Copy_Attributes(x_detail_info_tab => l_detail_info_tab,
721 x_changed_attributes=>p_changed_attributes);
722
723 l_in_rec.caller := 'WSH_PUB';
724 l_in_rec.action_code := 'UPDATE';
725
726 /* Patchset I: Harmonization Project. Call group API
727 All validations done by Group API */
728
729 IF l_debug_on THEN
730 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_DELIVERY_DETAILS_GRP.CREATE_UPDATE_DELIVERY_DETAIL',WSH_DEBUG_SV.C_PROC_LEVEL);
731 END IF;
732 wsh_interface_grp.create_update_delivery_detail(
733 p_api_version_number => p_api_version_number,
734 p_init_msg_list => FND_API.G_FALSE,
735 p_commit => FND_API.G_FALSE,
736 x_return_status => l_return_status,
737 x_msg_count => l_msg_count,
738 x_msg_data => l_msg_data,
739 p_detail_info_tab => l_detail_info_tab,
740 p_IN_rec => l_in_rec,
741 x_OUT_rec => l_out_rec);
742
743 IF l_debug_on THEN
744 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_UTIL_CORE.API_POST_CALL',WSH_DEBUG_SV.C_PROC_LEVEL);
745 END IF;
746 --
747 wsh_util_core.api_post_call(
748 p_return_status => l_return_status,
749 x_num_warnings => l_number_of_warnings,
750 x_num_errors => l_number_of_errors,
751 p_msg_data => l_msg_data
752 );
753 --
754
755 IF l_number_of_warnings > 0 THEN
756 x_return_status := wsh_util_core.g_ret_sts_warning;
757 END IF;
758
759 -- report success
760 IF FND_API.TO_BOOLEAN(p_commit) THEN
761 COMMIT WORK;
762 END IF;
763
764 FND_MSG_PUB.Count_And_Get (
765 p_count => x_msg_count,
766 p_data => x_msg_data,
767 p_encoded => FND_API.G_FALSE
768 );
769
770 IF l_debug_on THEN
771 WSH_DEBUG_SV.pop(l_module_name);
772 END IF;
773 --
774 EXCEPTION
775 WHEN FND_API.G_EXC_ERROR THEN
776 ROLLBACK TO UPDATE_SHIPPING_ATTR_PUB;
777 x_return_status := FND_API.G_RET_STS_ERROR ;
778 wsh_util_core.add_message(x_return_status);
779 FND_MSG_PUB.Count_And_Get
780 (
781 p_count => x_msg_count,
782 p_data => x_msg_data,
783 p_encoded => FND_API.G_FALSE
784 );
785
786 IF l_debug_on THEN
787 WSH_DEBUG_SV.logmsg(l_module_name,'FND_API.G_EXC_ERROR exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
788 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:FND_API.G_EXC_ERROR');
789 END IF;
790 --
791 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
792 ROLLBACK TO UPDATE_SHIPPING_ATTR_PUB;
793 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
794 wsh_util_core.add_message(x_return_status, l_module_name);
795 FND_MSG_PUB.Count_And_Get
796 (
797 p_count => x_msg_count,
798 p_data => x_msg_data,
799 p_encoded => FND_API.G_FALSE
800 );
801 --
802
803 IF l_debug_on THEN
804 WSH_DEBUG_SV.logmsg(l_module_name,'FND_API.G_EXC_UNEXPECTED_ERROR exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
805 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:FND_API.G_EXC_UNEXPECTED_ERROR');
806 END IF;
807 --
808 WHEN invalid_source_code THEN
809 ROLLBACK TO UPDATE_SHIPPING_ATTR_PUB;
810 x_return_status := FND_API.G_RET_STS_ERROR;
811 FND_MESSAGE.Set_Name('WSH', 'WSH_INVALID_SOURCE_CODE');
812 FND_MESSAGE.SET_TOKEN('SOURCE_CODE',p_source_code );
813 WSH_UTIL_CORE.Add_Message(x_return_status);
814
815 FND_MSG_PUB.Count_And_Get
816 (
817 p_count => x_msg_count,
818 p_data => x_msg_data,
819 p_encoded => FND_API.G_FALSE
820 );
821
822 IF l_debug_on THEN
823 WSH_DEBUG_SV.logmsg(l_module_name,'INVALID_SOURCE_CODE exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
824 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:INVALID_SOURCE_CODE');
825 END IF;
826 --
827 WHEN Others THEN
828 ROLLBACK TO UPDATE_SHIPPING_ATTR_PUB;
829 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
830 WSH_UTIL_CORE.add_message (x_return_status);
831 WSH_UTIL_CORE.default_handler('WSH_DELIVERY_DETAILS_PUB.Update_Shipping_Attributes')
832 ;
833
834 FND_MSG_PUB.Count_And_Get
835 (
836 p_count => x_msg_count,
837 p_data => x_msg_data,
838 p_encoded => FND_API.G_FALSE
839 );
840
841 IF l_debug_on THEN
842 WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '|| SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
843 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
844 END IF;
845 --
846 END Update_Shipping_Attributes;
847
848
849 --Overloaded Update_Shipping_Attributes
850
851
852 --========================================================================
853 -- PROCEDURE : Update_Shipping_Attributes (overloaded)
854 --
855 -- PARAMETERS: p_api_version_number known api versionerror buffer
856 -- p_init_msg_list initialize message stack
857 -- x_return_status return status
858 -- x_msg_count number of messages in the list
859 -- x_msg_data text of messages
860 -- p_changed_attributes changed attributes for delivery details
861 -- p_source_code source system
862 -- p_serial_range_tab serial number range
863 --
864 --
865 -- COMMENT : Validates Organization_id and Organization_code against view
866 -- org_organization_definitions. If both values are
867 -- specified then only Org_Id is used
868 --========================================================================
869
870 PROCEDURE Update_Shipping_Attributes (
871 -- Standard parameters
872 p_api_version_number IN NUMBER
873 , p_init_msg_list IN VARCHAR2
874 , p_commit IN VARCHAR2
875 , x_return_status OUT NOCOPY VARCHAR2
876 , x_msg_count OUT NOCOPY NUMBER
877 , x_msg_data OUT NOCOPY VARCHAR2
878
879 -- Procedure specific parameters
880 , p_changed_attributes IN WSH_DELIVERY_DETAILS_PUB.ChangedAttributeTabType
881 , p_source_code IN VARCHAR2
882 , p_container_flag IN VARCHAR2
883 , p_serial_range_tab IN WSH_GLBL_VAR_STRCT_GRP.ddSerialRangeTabType
884 )
885 IS
886
887 l_msg_summary varchar2(2000) := NULL;
888 l_msg_details varchar2(4000) := NULL;
889 l_return_status VARCHAR2(30);
890 l_counter NUMBER;
891 l_index NUMBER;
892 l_api_version_number NUMBER := 1.0;
893 l_api_name VARCHAR2(30) := 'Update_Shipping_Attributes2';
894 l_ship_to_location_id NUMBER;
895 invalid_source_code EXCEPTION;
896
897 l_serial_range_tab WSH_GLBL_VAR_STRCT_GRP.ddSerialRangeTabType;
898
899 m NUMBER := 0;
900
901
902 -- Harmonization Project
903 l_detail_info_tab WSH_GLBL_VAR_STRCT_GRP.Delivery_Details_Attr_Tbl_Type;
904 l_in_rec WSH_GLBL_VAR_STRCT_GRP.detailInRecType;
905 l_lpn_ids wsh_util_core.id_Tab_type;
906 l_out_Rec WSH_GLBL_VAR_STRCT_GRP.detailOutRecType;
907 l_msg_count NUMBER;
908 l_msg_data VARCHAR2(32767);
909 l_number_of_errors NUMBER := 0;
910 l_number_of_warnings NUMBER := 0;
911 --
912 l_debug_on BOOLEAN;
913 --
914 l_module_name CONSTANT VARCHAR2(100) := 'wsh.plsql.' || G_PKG_NAME || '.' || 'UPDATE_SHIPPING_ATTRIBUTES';
915 --
916 BEGIN
917 --
918 l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
919 --
920 IF l_debug_on IS NULL
921 THEN
922 l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
923 END IF;
924 --
925 SAVEPOINT UPDATE_SHIPPING_ATTR_PUB2;
926
927 IF l_debug_on THEN
928 WSH_DEBUG_SV.push(l_module_name);
929 --
930 WSH_DEBUG_SV.log(l_module_name,'P_API_VERSION_NUMBER',P_API_VERSION_NUMBER);
931 WSH_DEBUG_SV.log(l_module_name,'P_INIT_MSG_LIST',P_INIT_MSG_LIST);
932 WSH_DEBUG_SV.log(l_module_name,'P_COMMIT',P_COMMIT);
933 WSH_DEBUG_SV.log(l_module_name,'P_SOURCE_CODE',P_SOURCE_CODE);
934 WSH_DEBUG_SV.log(l_module_name,'P_CONTAINER_FLAG',P_CONTAINER_FLAG);
935 WSH_DEBUG_SV.log(l_module_name,'P_SERIAL_RANGE_TAB.COUNT', P_SERIAL_RANGE_TAB.COUNT);
936
937
938 END IF;
939 --
940
941 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
942
943 -- Standard call to check for call compatibility
944 IF NOT FND_API.Compatible_API_Call(
945 l_api_version_number,
946 p_api_version_number,
947 l_api_name,
948 G_PKG_NAME) THEN
949 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
950 END IF;
951
952 -- Initialize message stack if required
953 IF FND_API.to_Boolean(p_init_msg_list) THEN
954 FND_MSG_PUB.initialize;
955 END IF;
956
957 -- <start of API logic>
958 -- sperera source_code has to be 'OE' or 'WSH'
959 IF (NVL(p_source_code, FND_API.G_MISS_CHAR) NOT IN ('WSH', 'OE')) THEN
960 RAISE invalid_source_code;
961 END IF;
962
963 -- call the copy procedure here
964
965 Copy_Attributes(x_detail_info_tab => l_detail_info_tab,
966 x_changed_attributes=>p_changed_attributes);
967
968 -- frontport bug 5049214 - Trim leading spaces from serial number
969 l_serial_range_tab := p_serial_range_tab;
970 l_index := l_serial_range_tab.FIRST;
971 WHILE l_index IS NOT NULL LOOP
972 l_serial_range_tab(l_index).from_serial_number :=
973 LTRIM(RTRIM(l_serial_range_tab(l_index).from_serial_number));
974 l_serial_range_tab(l_index).to_serial_number :=
975 LTRIM(RTRIM(l_serial_range_tab(l_index).to_serial_number));
976 l_index := l_serial_range_tab.NEXT(l_index);
977 END LOOP;
978
979 l_in_rec.caller := 'WSH_PUB';
980 l_in_rec.action_code := 'UPDATE';
981
982 /* Patchset I: Harmonization Project. Call group API
983 All validations done by Group API */
984
985 IF l_debug_on THEN
986 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_DELIVERY_DETAILS_GRP.CREATE_UPDATE_DELIVERY_DETAIL',WSH_DEBUG_SV.C_PROC_LEVEL);
987 END IF;
988
989 wsh_delivery_details_grp.create_update_delivery_detail(
990 p_api_version_number => p_api_version_number,
991 p_init_msg_list => FND_API.G_FALSE,
992 p_commit => FND_API.G_FALSE,
993 x_return_status => l_return_status,
994 x_msg_count => l_msg_count,
995 x_msg_data => l_msg_data,
996 p_detail_info_tab => l_detail_info_tab,
997 p_IN_rec => l_in_rec,
998 x_OUT_rec => l_out_rec,
999 p_serial_range_tab => l_serial_range_tab
1000 );
1001
1002 IF l_debug_on THEN
1003 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_UTIL_CORE.API_POST_CALL',WSH_DEBUG_SV.C_PROC_LEVEL);
1004 END IF;
1005 --
1006 wsh_util_core.api_post_call(
1007 p_return_status => l_return_status,
1008 x_num_warnings => l_number_of_warnings,
1009 x_num_errors => l_number_of_errors,
1010 p_msg_data => l_msg_data
1011 );
1012 --
1013
1014 IF l_number_of_warnings > 0 THEN
1015 x_return_status := wsh_util_core.g_ret_sts_warning;
1016 END IF;
1017 -- report success
1018 IF FND_API.TO_BOOLEAN(p_commit) THEN
1019 COMMIT WORK;
1020 END IF;
1021
1022 FND_MSG_PUB.Count_And_Get (
1023 p_count => x_msg_count,
1024 p_data => x_msg_data,
1025 p_encoded => FND_API.G_FALSE
1026 );
1027
1028 IF l_debug_on THEN
1029 WSH_DEBUG_SV.pop(l_module_name);
1030 END IF;
1031 --
1032 EXCEPTION
1033 WHEN FND_API.G_EXC_ERROR THEN
1034 ROLLBACK TO UPDATE_SHIPPING_ATTR_PUB2;
1035 x_return_status := FND_API.G_RET_STS_ERROR ;
1036 wsh_util_core.add_message(x_return_status);
1037 FND_MSG_PUB.Count_And_Get
1038 (
1039 p_count => x_msg_count,
1040 p_data => x_msg_data,
1041 p_encoded => FND_API.G_FALSE
1042 );
1043
1044 IF l_debug_on THEN
1045 WSH_DEBUG_SV.logmsg(l_module_name,'FND_API.G_EXC_ERROR exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
1046 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:FND_API.G_EXC_ERROR');
1047 END IF;
1048 --
1049 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1050 ROLLBACK TO UPDATE_SHIPPING_ATTR_PUB2;
1051 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1052 wsh_util_core.add_message(x_return_status, l_module_name);
1053 FND_MSG_PUB.Count_And_Get
1054 (
1055 p_count => x_msg_count,
1056 p_data => x_msg_data,
1057 p_encoded => FND_API.G_FALSE
1058 );
1059 --
1060
1061 IF l_debug_on THEN
1062 WSH_DEBUG_SV.logmsg(l_module_name,'FND_API.G_EXC_UNEXPECTED_ERROR exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
1063 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:FND_API.G_EXC_UNEXPECTED_ERROR');
1064 END IF;
1065 --
1066 WHEN invalid_source_code THEN
1067 ROLLBACK TO UPDATE_SHIPPING_ATTR_PUB2;
1068 x_return_status := FND_API.G_RET_STS_ERROR;
1069 FND_MESSAGE.Set_Name('WSH', 'WSH_INVALID_SOURCE_CODE');
1070 FND_MESSAGE.SET_TOKEN('SOURCE_CODE',p_source_code );
1071 WSH_UTIL_CORE.Add_Message(x_return_status);
1072
1073 FND_MSG_PUB.Count_And_Get
1074 (
1075 p_count => x_msg_count,
1076 p_data => x_msg_data,
1077 p_encoded => FND_API.G_FALSE
1078 );
1079
1080 IF l_debug_on THEN
1081 WSH_DEBUG_SV.logmsg(l_module_name,'INVALID_SOURCE_CODE exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
1082 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:INVALID_SOURCE_CODE');
1083 END IF;
1084 --
1085 WHEN Others THEN
1086 ROLLBACK TO UPDATE_SHIPPING_ATTR_PUB2;
1087 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1088 WSH_UTIL_CORE.add_message (x_return_status);
1089 WSH_UTIL_CORE.default_handler('WSH_DELIVERY_DETAILS_PUB.Update_Shipping_Attributes')
1090 ;
1091
1092 FND_MSG_PUB.Count_And_Get
1093 (
1094 p_count => x_msg_count,
1095 p_data => x_msg_data,
1096 p_encoded => FND_API.G_FALSE
1097 );
1098 IF l_debug_on THEN
1099 WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '|| SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
1100 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
1101 END IF;
1102 --
1103 END Update_Shipping_Attributes;
1104
1105
1106 PROCEDURE Get_Detail_Status(
1107 p_delivery_detail_id IN NUMBER
1108 , x_line_status OUT NOCOPY VARCHAR2
1109 , x_return_status OUT NOCOPY VARCHAR2
1110 )
1111 IS
1112 CURSOR del_assign IS
1113 SELECT delivery_id, parent_delivery_detail_id
1114 FROM wsh_delivery_assignments_v
1115 WHERE delivery_detail_id = p_delivery_detail_id;
1116 l_assign_rec del_assign%ROWTYPE;
1117
1118 CURSOR del_status(c_del_id NUMBER) IS
1119 SELECT status_code
1120 FROM wsh_new_deliveries
1121 WHERE delivery_id = c_del_id;
1122
1123 l_del_status VARCHAR2(100) := NULL;
1124 l_msg_summary VARCHAR2(3000);
1125 x_msg_count NUMBER;
1126 --
1127 l_debug_on BOOLEAN;
1128 --
1129 l_module_name CONSTANT VARCHAR2(100) := 'wsh.plsql.' || G_PKG_NAME || '.' || 'GET_DETAIL_STATUS';
1130 --
1131 BEGIN
1132 --
1133 -- Debug Statements
1134 --
1135 --
1136 l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
1137 --
1138 IF l_debug_on IS NULL
1139 THEN
1140 l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
1141 END IF;
1142 --
1143 IF l_debug_on THEN
1144 WSH_DEBUG_SV.push(l_module_name);
1145 --
1146 WSH_DEBUG_SV.log(l_module_name,'P_DELIVERY_DETAIL_ID',P_DELIVERY_DETAIL_ID);
1147 END IF;
1148 --
1149 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
1150
1151 -- get line status for delivery detail
1152 OPEN del_assign;
1153 FETCH del_assign INTO l_assign_rec;
1154 IF (l_assign_rec.delivery_id IS NOT NULL) THEN
1155 OPEN del_status(l_assign_rec.delivery_id);
1156 FETCH del_status INTO l_del_status;
1157 CLOSE del_status;
1158 END IF;
1159 CLOSE del_assign;
1160
1161 IF (l_del_status IN ('CO', 'IT', 'CL')) THEN
1162 x_line_status := 'SIC';
1163 ELSIF (l_assign_rec.parent_delivery_detail_id IS NOT NULL) THEN
1164 x_line_status := 'PK';
1165 ELSIF( l_assign_rec.parent_delivery_detail_id IS NULL) THEN
1166 x_line_status := 'OK';
1167 ELSE
1168 NULL;
1169 END IF;
1170
1171 /*
1172 EXCEPTION
1173 when others then
1174 wsh_util_core.default_handler('WSH_SHIP_CONFRIM_ACTIONS.SHIP_CONFIRM_A_TRIP_STOP');
1175 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1176 WSH_UTIL_CORE.get_messages('Y', l_msg_summary, l_msg_details, x_msg_count);
1177 if x_msg_count > 1 then
1178 x_msg_data := l_msg_summary || l_msg_details;
1179 else
1180 x_msg_data := l_msg_summary;
1181 end if;
1182 */
1183 --
1184 -- Debug Statements
1185 --
1186 IF l_debug_on THEN
1187 WSH_DEBUG_SV.pop(l_module_name);
1188 END IF;
1189 --
1190 END get_detail_status;
1191
1192 PROCEDURE Autocreate_Deliveries(
1193 -- Standard parameters
1194 p_api_version_number IN NUMBER
1195 , p_init_msg_list IN VARCHAR2
1196 , p_commit IN VARCHAR2
1197 , x_return_status OUT NOCOPY VARCHAR2
1198 , x_msg_count OUT NOCOPY NUMBER
1199 , x_msg_data OUT NOCOPY VARCHAR2
1200 , p_line_rows IN WSH_UTIL_CORE.id_tab_type
1201 , x_del_rows OUT NOCOPY wsh_util_core.id_tab_type
1202 )
1203 IS
1204 l_dummy_rows WSH_UTIL_CORE.id_tab_type;
1205 l_api_version_number NUMBER := 1.0;
1206 l_api_name CONSTANT VARCHAR2(30):= 'Autocreate_Deliveries';
1207 l_return_status VARCHAR2(30);
1208 autocreate_delivery_failed EXCEPTION;
1209 l_msg_summary varchar2(2000) := NULL;
1210 l_msg_details varchar2(4000) := NULL;
1211
1212 -- Harmonization Project
1213 l_action_prms WSH_GLBL_VAR_STRCT_GRP.dd_action_parameters_rec_type;
1214 l_action_out_rec WSH_GLBL_VAR_STRCT_GRP.dd_action_out_rec_type;
1215 l_dummy_qty NUMBER;
1216 l_dummy_qty2 NUMBER;
1217 l_dummy_ids wsh_util_core.id_tab_type;
1218 l_msg_count NUMBER;
1219 l_msg_data VARCHAR2(32767);
1220 l_number_of_errors NUMBER := 0;
1221 l_number_of_warnings NUMBER := 0;
1222 --
1223 l_debug_on BOOLEAN;
1224 --
1225 l_module_name CONSTANT VARCHAR2(100) := 'wsh.plsql.' || G_PKG_NAME || '.' || 'AUTOCREATE_DELIVERIES';
1226 --
1227 BEGIN
1228 -- Standard begin of API savepoint
1229 --
1230 l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
1231 --
1232 IF l_debug_on IS NULL
1233 THEN
1234 l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
1235 END IF;
1236 --
1237 SAVEPOINT AUTOCREATE_DEL_PUB;
1238 --
1239 IF l_debug_on THEN
1240 WSH_DEBUG_SV.push(l_module_name);
1241 --
1242 WSH_DEBUG_SV.log(l_module_name,'P_API_VERSION_NUMBER',P_API_VERSION_NUMBER);
1243 WSH_DEBUG_SV.log(l_module_name,'P_INIT_MSG_LIST',P_INIT_MSG_LIST);
1244 WSH_DEBUG_SV.log(l_module_name,'P_COMMIT',P_COMMIT);
1245 END IF;
1246 --
1247
1248
1249 IF NOT FND_API.compatible_api_call(
1250 l_api_version_number,
1251 p_api_version_number,
1252 l_api_name,
1253 G_PKG_NAME) THEN
1254 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1255 END IF;
1256
1257 -- Check p_init_msg_list
1258 IF FND_API.to_boolean(p_init_msg_list) THEN
1259 FND_MSG_PUB.initialize;
1260 END IF;
1261 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
1262
1263 l_action_prms.caller := 'WSH_PUB';
1264 l_action_prms.action_code := 'AUTOCREATE-DEL';
1265
1266 /* Patchset I: Harmonization Project. Call group API
1267 All validations done by Group API */
1268
1269 IF l_debug_on THEN
1270 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_INTERFACE_GRP.DELIVERY_DETAIL_ACTION',WSH_DEBUG_SV.C_PROC_LEVEL);
1271 END IF;
1272
1273 wsh_interface_grp.delivery_detail_action(
1274 p_api_version_number => p_api_version_number,
1275 p_init_msg_list => FND_API.G_FALSE,
1276 p_commit => FND_API.G_FALSE,
1277 x_return_status => l_return_status,
1278 x_msg_count => l_msg_count,
1279 x_msg_data => l_msg_data,
1280 p_detail_id_tab => p_line_rows,
1281 p_action_prms => l_action_prms ,
1282 x_action_out_rec => l_action_out_rec);
1283
1284 IF l_debug_on THEN
1285 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_UTIL_CORE.API_POST_CALL',WSH_DEBUG_SV.C_PROC_LEVEL);
1286 END IF;
1287 --
1288 wsh_util_core.api_post_call(
1289 p_return_status => l_return_status,
1290 x_num_warnings => l_number_of_warnings,
1291 x_num_errors => l_number_of_errors,
1292 p_msg_data => l_msg_data
1293 );
1294
1295 x_del_rows := l_action_out_rec.delivery_id_tab;
1296
1297 IF l_number_of_warnings > 0 THEN
1298 x_return_status := wsh_util_core.g_ret_sts_warning;
1299 END IF;
1300
1301
1302 FND_MSG_PUB.Count_And_Get
1303 (
1304 p_count => x_msg_count,
1305 p_data => x_msg_data,
1306 p_encoded => FND_API.G_FALSE
1307 );
1308
1309
1310 IF FND_API.TO_BOOLEAN(p_commit) THEN
1311 COMMIT WORK;
1312 END IF;
1313
1314
1315 IF l_debug_on THEN
1316 WSH_DEBUG_SV.pop(l_module_name);
1317 END IF;
1318 --
1319 EXCEPTION
1320 WHEN FND_API.G_EXC_ERROR THEN
1321 ROLLBACK TO AUTOCREATE_DEL_PUB;
1322 x_return_status := FND_API.G_RET_STS_ERROR ;
1323 wsh_util_core.add_message(x_return_status);
1324 FND_MSG_PUB.Count_And_Get
1325 (
1326 p_count => x_msg_count,
1327 p_data => x_msg_data,
1328 p_encoded => FND_API.G_FALSE
1329 );
1330
1331 IF l_debug_on THEN
1332 WSH_DEBUG_SV.logmsg(l_module_name,'FND_API.G_EXC_ERROR exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
1333 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:FND_API.G_EXC_ERROR');
1334 END IF;
1335
1336 WHEN autocreate_delivery_failed THEN
1337 ROLLBACK TO AUTOCREATE_DEL_PUB;
1338 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1339 FND_MSG_PUB.Count_And_Get
1340 (
1341 p_count => x_msg_count,
1342 p_data => x_msg_data,
1343 p_encoded => FND_API.G_FALSE
1344 );
1345
1346 IF l_debug_on THEN
1347 WSH_DEBUG_SV.logmsg(l_module_name,'AUTOCREATE_DELIVERY_FAILED exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
1348 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:AUTOCREATE_DELIVERY_FAILED');
1349 END IF;
1350
1351 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1352 ROLLBACK TO AUTOCREATE_DEL_PUB;
1353 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1354 wsh_util_core.add_message(x_return_status, l_module_name);
1355 FND_MSG_PUB.Count_And_Get
1356 (
1357 p_count => x_msg_count,
1358 p_data => x_msg_data,
1359 p_encoded => FND_API.G_FALSE
1360 );
1361 --
1362
1363 IF l_debug_on THEN
1364 WSH_DEBUG_SV.logmsg(l_module_name,'FND_API.G_EXC_UNEXPECTED_ERROR exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
1365 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:FND_API.G_EXC_UNEXPECTED_ERROR');
1366 END IF;
1367 WHEN OTHERS THEN
1368 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1369 ROLLBACK TO AUTOCREATE_DEL_PUB;
1370 wsh_util_core.add_message(x_return_status, l_module_name);
1371 WSH_UTIL_CORE.default_handler('WSH_DELIVERY_DETAILS_PUB.Autocreate_Deliveries');
1372 FND_MSG_PUB.Count_And_Get
1373 (
1374 p_count => x_msg_count,
1375 p_data => x_msg_data,
1376 p_encoded => FND_API.G_FALSE
1377 );
1378 --
1379 IF l_debug_on THEN
1380 WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '|| SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
1381 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
1382 END IF;
1383 --
1384 END Autocreate_Deliveries;
1385
1386 PROCEDURE Autocreate_del_trip(
1387 -- Standard parameters
1388 p_api_version_number IN NUMBER
1389 , p_init_msg_list IN VARCHAR2
1390 , p_commit IN VARCHAR2
1391 , x_return_status OUT NOCOPY VARCHAR2
1392 , x_msg_count OUT NOCOPY NUMBER
1393 , x_msg_data OUT NOCOPY VARCHAR2
1394 , p_line_rows IN WSH_UTIL_CORE.id_tab_type
1395 , x_del_rows OUT NOCOPY WSH_UTIL_CORE.id_tab_type
1396 , x_trip_id OUT NOCOPY NUMBER
1397 , x_trip_name OUT NOCOPY VARCHAR2
1398 )
1399 IS
1400
1401 l_trip_rows WSH_UTIL_CORE.id_tab_type;
1402 l_first NUMBER := 0;
1403 l_debug_on BOOLEAN;
1404 --
1405 l_module_name CONSTANT VARCHAR2(100) := 'wsh.plsql.' || G_PKG_NAME || '.' || 'AUTOCREATE_DEL_TRIP - single trip';
1406
1407 BEGIN
1408 -- Standard begin of API savepoint
1409 --
1410 l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
1411 --
1412 IF l_debug_on IS NULL THEN
1413 l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
1414 END IF;
1415 --
1416 SAVEPOINT AUTOCREATE_TRIP_PUB;
1417 --
1418 IF l_debug_on THEN
1419 WSH_DEBUG_SV.push(l_module_name);
1420 END IF;
1421 --
1422
1423
1424 IF l_debug_on THEN
1425 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_DELIVERY_DETAILS_PUB.Autocreate_del_trip - multiple trips',WSH_DEBUG_SV.C_PROC_LEVEL);
1426 END IF;
1427
1428
1429 WSH_DELIVERY_DETAILS_PUB.Autocreate_del_trip(
1430 -- Standard parameters
1431 p_api_version_number => p_api_version_number,
1432 p_init_msg_list => p_init_msg_list,
1433 p_commit => p_commit,
1434 x_return_status => x_return_status,
1435 x_msg_count => x_msg_count,
1436 x_msg_data => x_msg_data,
1437 p_line_rows => p_line_rows,
1438 x_del_rows => x_del_rows,
1439 x_trip_rows => l_trip_rows );
1440
1441 IF l_trip_rows.count > 0 THEN
1442 l_first := l_trip_rows.first;
1443 x_trip_id := l_trip_rows(l_first);
1444 IF x_trip_id IS NOT NULL THEN
1445 x_trip_name := wsh_trips_pvt.get_name(x_trip_id);
1446 ELSE
1447 x_trip_name := NULL;
1448 END IF;
1449 ELSE
1450 x_trip_id := NULL;
1451 x_trip_name := NULL;
1452 END IF;
1453
1454 IF l_debug_on THEN
1455 WSH_DEBUG_SV.pop(l_module_name);
1456 END IF;
1457
1458 EXCEPTION
1459
1460
1461 WHEN OTHERS THEN
1462
1463 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1464 ROLLBACK TO AUTOCREATE_TRIP_PUB;
1465 wsh_util_core.add_message(x_return_status, l_module_name);
1466 WSH_UTIL_CORE.default_handler('WSH_DELIVERY_DETAILS_PUB.Autocreate_Del_Trip');
1467 FND_MSG_PUB.Count_And_Get
1468 (
1469 p_count => x_msg_count,
1470 p_data => x_msg_data,
1471 p_encoded => FND_API.G_FALSE
1472 );
1473
1474 IF l_debug_on THEN
1475 WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '|| SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
1476 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
1477 END IF;
1478
1479 END Autocreate_del_trip;
1480
1481
1482 PROCEDURE Autocreate_del_trip(
1483 -- Standard parameters
1484 p_api_version_number IN NUMBER
1485 , p_init_msg_list IN VARCHAR2
1486 , p_commit IN VARCHAR2
1487 , x_return_status OUT NOCOPY VARCHAR2
1488 , x_msg_count OUT NOCOPY NUMBER
1489 , x_msg_data OUT NOCOPY VARCHAR2
1490 , p_line_rows IN WSH_UTIL_CORE.id_tab_type
1491 , x_del_rows OUT NOCOPY WSH_UTIL_CORE.id_tab_type
1492 , x_trip_rows OUT NOCOPY WSH_UTIL_CORE.id_tab_type
1493 )
1494 IS
1495 l_api_name CONSTANT VARCHAR2(30):= 'Autocreate_del_trip';
1496 l_api_version_number CONSTANT NUMBER := 1.0;
1497 l_return_status VARCHAR2(30);
1498 l_msg_summary varchar2(2000) := NULL;
1499 l_msg_details varchar2(4000) := NULL;
1500 l_org_rows wsh_util_core.id_tab_type; -- bug 1668578
1501 autocreate_trip_failed EXCEPTION;
1502
1503 -- Harmonization Project
1504 l_action_prms WSH_GLBL_VAR_STRCT_GRP.dd_action_parameters_rec_type;
1505 l_action_out_rec WSH_GLBL_VAR_STRCT_GRP.dd_action_out_rec_type;
1506 l_dummy_qty NUMBER;
1507 l_dummy_qty2 NUMBER;
1508 l_del_rows wsh_util_core.id_tab_type;
1509 l_msg_count NUMBER;
1510 l_msg_data VARCHAR2(32767);
1511 l_number_of_errors NUMBER := 0;
1512 l_number_of_warnings NUMBER := 0;
1513 --
1514 l_debug_on BOOLEAN;
1515 --
1516 l_module_name CONSTANT VARCHAR2(100) := 'wsh.plsql.' || G_PKG_NAME || '.' || 'AUTOCREATE_DEL_TRIP - multiple trips';
1517 --
1518 BEGIN
1519 -- Standard begin of API savepoint
1520 --
1521 l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
1522 --
1523 IF l_debug_on IS NULL
1524 THEN
1525 l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
1526 END IF;
1527 --
1528 SAVEPOINT AUTOCREATE_TRIP_PUB;
1529 --
1530 IF l_debug_on THEN
1531 WSH_DEBUG_SV.push(l_module_name);
1532 --
1533 WSH_DEBUG_SV.log(l_module_name,'P_API_VERSION_NUMBER',P_API_VERSION_NUMBER);
1534 WSH_DEBUG_SV.log(l_module_name,'P_INIT_MSG_LIST',P_INIT_MSG_LIST);
1535 WSH_DEBUG_SV.log(l_module_name,'P_COMMIT',P_COMMIT);
1536 END IF;
1537 --
1538
1539 IF NOT FND_API.compatible_api_call(
1540 l_api_version_number,
1541 p_api_version_number,
1542 l_api_name,
1543 G_PKG_NAME) THEN
1544 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1545 END IF;
1546
1547 -- Check p_init_msg_list
1548 IF FND_API.to_boolean(p_init_msg_list) THEN
1549 FND_MSG_PUB.initialize;
1550 END IF;
1551 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
1552
1553 l_action_prms.caller := 'WSH_PUB';
1554 l_action_prms.action_code := 'AUTOCREATE-TRIP';
1555
1556 /* Patchset I: Harmonization Project. Call group API
1557 All validations done by Group API */
1558
1559 IF l_debug_on THEN
1560 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_INTERFACE_GRP.DELIVERY_DETAIL_ACTION',WSH_DEBUG_SV.C_PROC_LEVEL);
1561 END IF;
1562
1563 wsh_interface_grp.delivery_detail_action(
1564 p_api_version_number => p_api_version_number,
1565 p_init_msg_list => FND_API.G_FALSE,
1566 p_commit => FND_API.G_FALSE,
1567 x_return_status => l_return_status,
1568 x_msg_count => l_msg_count,
1569 x_msg_data => l_msg_data,
1570 p_detail_id_tab => p_line_rows,
1571 p_action_prms => l_action_prms ,
1572 x_action_out_rec => l_action_out_rec);
1573
1574 IF l_debug_on THEN
1575 WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_UTIL_CORE.API_POST_CALL',WSH_DEBUG_SV.C_PROC_LEVEL);
1576 END IF;
1577 --
1578 wsh_util_core.api_post_call(
1579 p_return_status => l_return_status,
1580 x_num_warnings => l_number_of_warnings,
1581 x_num_errors => l_number_of_errors,
1582 p_msg_data => l_msg_data
1583 );
1584
1585 x_del_rows := l_action_out_rec.delivery_id_tab;
1586 x_trip_rows:= l_action_out_rec.result_id_tab;
1587
1588 IF l_number_of_warnings > 0 THEN
1589 x_return_status := wsh_util_core.g_ret_sts_warning;
1590 END IF;
1591
1592 IF FND_API.TO_BOOLEAN(p_commit) THEN
1593 COMMIT WORK;
1594 END IF;
1595
1596 FND_MSG_PUB.Count_And_Get
1597 (
1598 p_count => x_msg_count,
1599 p_data => x_msg_data,
1600 p_encoded => FND_API.G_FALSE
1601 );
1602
1603
1604 IF l_debug_on THEN
1605 WSH_DEBUG_SV.pop(l_module_name);
1606 END IF;
1607
1608 EXCEPTION
1609 WHEN FND_API.G_EXC_ERROR THEN
1610 ROLLBACK TO AUTOCREATE_TRIP_PUB;
1611 x_return_status := FND_API.G_RET_STS_ERROR ;
1612 wsh_util_core.add_message(x_return_status);
1613 FND_MSG_PUB.Count_And_Get
1614 (
1615 p_count => x_msg_count,
1616 p_data => x_msg_data,
1617 p_encoded => FND_API.G_FALSE
1618 );
1619
1620 IF l_debug_on THEN
1621 WSH_DEBUG_SV.logmsg(l_module_name,'FND_API.G_EXC_ERROR exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
1622 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:FND_API.G_EXC_ERROR');
1623 END IF;
1624
1625 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1626 ROLLBACK TO AUTOCREATE_TRIP_PUB;
1627 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1628 wsh_util_core.add_message(x_return_status, l_module_name);
1629 FND_MSG_PUB.Count_And_Get
1630 (
1631 p_count => x_msg_count,
1632 p_data => x_msg_data,
1633 p_encoded => FND_API.G_FALSE
1634 );
1635 --
1636
1637 IF l_debug_on THEN
1638 WSH_DEBUG_SV.logmsg(l_module_name,'FND_API.G_EXC_UNEXPECTED_ERROR exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
1639 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:FND_API.G_EXC_UNEXPECTED_ERROR');
1640 END IF;
1641
1642
1643 WHEN autocreate_trip_failed THEN
1644 ROLLBACK TO AUTOCREATE_TRIP_PUB;
1645 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1646 FND_MSG_PUB.Count_And_Get
1647 (
1648 p_count => x_msg_count,
1649 p_data => x_msg_data,
1650 p_encoded => FND_API.G_FALSE
1651 );
1652
1653 IF l_debug_on THEN
1654 WSH_DEBUG_SV.logmsg(l_module_name,'AUTOCREATE_TRIP_FAILED exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
1655 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:AUTOCREATE_TRIP_FAILED');
1656 END IF;
1657
1658 WHEN OTHERS THEN
1659
1660 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1661 ROLLBACK TO AUTOCREATE_TRIP_PUB;
1662 wsh_util_core.add_message(x_return_status, l_module_name);
1663 WSH_UTIL_CORE.default_handler('WSH_DELIVERY_DETAILS_PUB.Autocreate_Del_Trip');
1664 FND_MSG_PUB.Count_And_Get
1665 (
1666 p_count => x_msg_count,
1667 p_data => x_msg_data,
1668 p_encoded => FND_API.G_FALSE
1669 );
1670 --
1671 IF l_debug_on THEN
1672 WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '|| SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
1673 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
1674 END IF;
1675 --
1676 END Autocreate_del_trip;
1677
1678
1679 PROCEDURE Copy_Attributes(
1680 x_detail_info_tab OUT NOCOPY WSH_GLBL_VAR_STRCT_GRP.Delivery_Details_Attr_Tbl_Type
1681 , x_changed_attributes IN WSH_DELIVERY_DETAILS_PUB.ChangedAttributeTabType)
1682
1683 IS
1684
1685 l_index NUMBER;
1686 l_debug_on BOOLEAN;
1687 l_module_name CONSTANT VARCHAR2(100) := 'wsh.plsql.' || G_PKG_NAME || '.' || 'COPY_ATTRIBUTES';
1688
1689 BEGIN
1690 --
1691 l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
1692 --
1693 IF l_debug_on IS NULL
1694 THEN
1695 l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
1696 END IF;
1697 --
1698 IF l_debug_on THEN
1699
1700 WSH_DEBUG_SV.push(l_module_name);
1701 WSH_DEBUG_SV.log(l_module_name,'X_CHANGED_ATTRIBUTES.COUNT', X_CHANGED_ATTRIBUTES.COUNT);
1702
1703 END IF;
1704
1705 l_index := x_changed_attributes.FIRST;
1706
1707
1708 WHILE l_index IS NOT NULL
1709 LOOP
1710
1711 x_detail_info_tab(l_index).source_header_id := x_changed_attributes(l_index).source_header_id;
1712 x_detail_info_tab(l_index).source_line_id := x_changed_attributes(l_index).source_line_id;
1713 x_detail_info_tab(l_index).sold_to_contact_id := x_changed_attributes(l_index).sold_to_contact_id;
1714 x_detail_info_tab(l_index).ship_to_contact_id := x_changed_attributes(l_index).ship_to_contact_id;
1715 x_detail_info_tab(l_index).deliver_to_contact_id := x_changed_attributes(l_index).deliver_to_contact_id;
1716 x_detail_info_tab(l_index).intmed_ship_to_contact_id := x_changed_attributes(l_index).intmed_ship_to_contact_id;
1717 x_detail_info_tab(l_index).ship_tolerance_above := x_changed_attributes(l_index).ship_tolerance_above;
1718 x_detail_info_tab(l_index).ship_tolerance_below := x_changed_attributes(l_index).ship_tolerance_below;
1719 x_detail_info_tab(l_index).preferred_grade := x_changed_attributes(l_index).preferred_grade;
1720 x_detail_info_tab(l_index).subinventory := x_changed_attributes(l_index).subinventory;
1721 x_detail_info_tab(l_index).revision := x_changed_attributes(l_index).revision;
1722 x_detail_info_tab(l_index).lot_number := x_changed_attributes(l_index).lot_number;
1723 -- HW OPMCONV - No need for sublot_number
1724 -- x_detail_info_tab(l_index).sublot_number := x_changed_attributes(l_index).sublot_number;
1725 x_detail_info_tab(l_index).customer_requested_lot_flag := x_changed_attributes(l_index).customer_requested_lot_flag;
1726 x_detail_info_tab(l_index).serial_number := x_changed_attributes(l_index).serial_number;
1727 x_detail_info_tab(l_index).to_serial_number := x_changed_attributes(l_index).to_serial_number;
1728 x_detail_info_tab(l_index).locator_id := x_changed_attributes(l_index).locator_id;
1729 x_detail_info_tab(l_index).date_requested := x_changed_attributes(l_index).date_requested;
1730 x_detail_info_tab(l_index).date_scheduled := x_changed_attributes(l_index).date_scheduled;
1731 x_detail_info_tab(l_index).master_container_item_id := x_changed_attributes(l_index).master_container_item_id;
1732 x_detail_info_tab(l_index).detail_container_item_id := x_changed_attributes(l_index).detail_container_item_id;
1733 x_detail_info_tab(l_index).ship_method_code := x_changed_attributes(l_index).shipping_method_code;
1734 x_detail_info_tab(l_index).carrier_id := x_changed_attributes(l_index).carrier_id;
1735 x_detail_info_tab(l_index).freight_terms_code := x_changed_attributes(l_index).freight_terms_code;
1736 x_detail_info_tab(l_index).shipment_priority_code := x_changed_attributes(l_index).shipment_priority_code;
1737 x_detail_info_tab(l_index).fob_code := x_changed_attributes(l_index).fob_code;
1738 x_detail_info_tab(l_index).dep_plan_required_flag := x_changed_attributes(l_index).dep_plan_required_flag;
1739 x_detail_info_tab(l_index).customer_prod_seq := x_changed_attributes(l_index).customer_prod_seq;
1740 x_detail_info_tab(l_index).customer_dock_code := x_changed_attributes(l_index).customer_dock_code;
1741 x_detail_info_tab(l_index).gross_weight := x_changed_attributes(l_index).gross_weight;
1742 x_detail_info_tab(l_index).net_weight := x_changed_attributes(l_index).net_weight;
1743 x_detail_info_tab(l_index).weight_uom_code := x_changed_attributes(l_index).weight_uom_code;
1744 x_detail_info_tab(l_index).volume := x_changed_attributes(l_index).volume;
1745 x_detail_info_tab(l_index).volume_uom_code := x_changed_attributes(l_index).volume_uom_code;
1746 x_detail_info_tab(l_index).top_model_line_id := x_changed_attributes(l_index).top_model_line_id;
1747 x_detail_info_tab(l_index).ship_set_id := x_changed_attributes(l_index).ship_set_id;
1748 x_detail_info_tab(l_index).ato_line_id := x_changed_attributes(l_index).ato_line_id;
1749 x_detail_info_tab(l_index).arrival_set_id := x_changed_attributes(l_index).arrival_set_id;
1750 x_detail_info_tab(l_index).ship_model_complete_flag := x_changed_attributes(l_index).ship_model_complete_flag;
1751 x_detail_info_tab(l_index).cust_po_number := x_changed_attributes(l_index).cust_po_number;
1752 x_detail_info_tab(l_index).released_status := x_changed_attributes(l_index).released_status;
1753 x_detail_info_tab(l_index).packing_instructions := x_changed_attributes(l_index).packing_instructions;
1754 x_detail_info_tab(l_index).shipping_instructions := x_changed_attributes(l_index).shipping_instructions;
1755 x_detail_info_tab(l_index).container_name := x_changed_attributes(l_index).container_name;
1756 x_detail_info_tab(l_index).container_flag := x_changed_attributes(l_index).container_flag ;
1757 x_detail_info_tab(l_index).delivery_detail_id := x_changed_attributes(l_index).delivery_detail_id;
1758 x_detail_info_tab(l_index).shipped_quantity := x_changed_attributes(l_index).shipped_quantity ;
1759 x_detail_info_tab(l_index).cycle_count_quantity := x_changed_attributes(l_index).cycle_count_quantity ;
1760 /* Bug 3055126 added shipped_quantity 2 and cycle_count_quantity2 and removed from defaulting below */
1761 x_detail_info_tab(l_index).shipped_quantity2 := x_changed_attributes(l_index).shipped_quantity2 ;
1762 x_detail_info_tab(l_index).cycle_count_quantity2 := x_changed_attributes(l_index).cycle_count_quantity2 ;x_detail_info_tab(l_index).tracking_number := x_changed_attributes(l_index).tracking_number ;
1763 x_detail_info_tab(l_index).attribute_category := x_changed_attributes(l_index).attribute_category;
1764 x_detail_info_tab(l_index).attribute1 := x_changed_attributes(l_index).attribute1;
1765 x_detail_info_tab(l_index).attribute2 := x_changed_attributes(l_index).attribute2;
1766 x_detail_info_tab(l_index).attribute3 := x_changed_attributes(l_index).attribute3;
1767 x_detail_info_tab(l_index).attribute4 := x_changed_attributes(l_index).attribute4;
1768 x_detail_info_tab(l_index).attribute5 := x_changed_attributes(l_index).attribute5;
1769 x_detail_info_tab(l_index).attribute6 := x_changed_attributes(l_index).attribute6;
1770 x_detail_info_tab(l_index).attribute7 := x_changed_attributes(l_index).attribute7;
1771 x_detail_info_tab(l_index).attribute8 := x_changed_attributes(l_index).attribute8;
1772 x_detail_info_tab(l_index).attribute9 := x_changed_attributes(l_index).attribute9;
1773 x_detail_info_tab(l_index).attribute10 := x_changed_attributes(l_index).attribute10;
1774 x_detail_info_tab(l_index).attribute11 := x_changed_attributes(l_index).attribute11;
1775 x_detail_info_tab(l_index).attribute12 := x_changed_attributes(l_index).attribute12;
1776 x_detail_info_tab(l_index).attribute13 := x_changed_attributes(l_index).attribute13;
1777 x_detail_info_tab(l_index).attribute14 := x_changed_attributes(l_index).attribute14;
1778 x_detail_info_tab(l_index).attribute15 := x_changed_attributes(l_index).attribute15;
1779 -- Bug 3723831 :tp attributes also part of the public API update_shipping_attributes
1780 x_detail_info_tab(l_index).tp_attribute_category := x_changed_attributes(l_index).tp_attribute_category;
1781 x_detail_info_tab(l_index).tp_attribute1 := x_changed_attributes(l_index).tp_attribute1;
1782 x_detail_info_tab(l_index).tp_attribute2 := x_changed_attributes(l_index).tp_attribute2;
1783 x_detail_info_tab(l_index).tp_attribute3 := x_changed_attributes(l_index).tp_attribute3;
1784 x_detail_info_tab(l_index).tp_attribute4 := x_changed_attributes(l_index).tp_attribute4;
1785 x_detail_info_tab(l_index).tp_attribute5 := x_changed_attributes(l_index).tp_attribute5;
1786 x_detail_info_tab(l_index).tp_attribute6 := x_changed_attributes(l_index).tp_attribute6;
1787 x_detail_info_tab(l_index).tp_attribute7 := x_changed_attributes(l_index).tp_attribute7;
1788 x_detail_info_tab(l_index).tp_attribute8 := x_changed_attributes(l_index).tp_attribute8;
1789 x_detail_info_tab(l_index).tp_attribute9 := x_changed_attributes(l_index).tp_attribute9;
1790 x_detail_info_tab(l_index).tp_attribute10 := x_changed_attributes(l_index).tp_attribute10;
1791 x_detail_info_tab(l_index).tp_attribute11 := x_changed_attributes(l_index).tp_attribute11;
1792 x_detail_info_tab(l_index).tp_attribute12 := x_changed_attributes(l_index).tp_attribute12;
1793 x_detail_info_tab(l_index).tp_attribute13 := x_changed_attributes(l_index).tp_attribute13;
1794 x_detail_info_tab(l_index).tp_attribute14 := x_changed_attributes(l_index).tp_attribute14;
1795 x_detail_info_tab(l_index).tp_attribute15 := x_changed_attributes(l_index).tp_attribute15;
1796
1797 -- J: W/V Changes
1798 x_detail_info_tab(l_index).filled_volume := x_changed_attributes(l_index).filled_volume;
1799 -- Bug 4146352 : Added seal_code and load_seq_number.
1800 --
1801 x_detail_info_tab(l_index).seal_code := x_changed_attributes(l_index).seal_code;
1802 x_detail_info_tab(l_index).load_seq_number := x_changed_attributes(l_index).load_seq_number;
1803 /* Start of fix for Bug 2766446
1804 For those attributes that are not available in public api record,
1805 need to send G_MISS values so that the database values are used for such attributes */
1806
1807 x_detail_info_tab(l_index).batch_id := FND_API.G_MISS_NUM;
1808 x_detail_info_tab(l_index).cancelled_quantity := FND_API.G_MISS_NUM;
1809 x_detail_info_tab(l_index).cancelled_quantity2 := FND_API.G_MISS_NUM;
1810 x_detail_info_tab(l_index).classification := FND_API.G_MISS_CHAR;
1811 x_detail_info_tab(l_index).commodity_code_cat_id := FND_API.G_MISS_NUM;
1812 x_detail_info_tab(l_index).container_type_code := FND_API.G_MISS_CHAR;
1813 x_detail_info_tab(l_index).country_of_origin := FND_API.G_MISS_CHAR;
1814 x_detail_info_tab(l_index).currency_code := FND_API.G_MISS_CHAR;
1815 x_detail_info_tab(l_index).cust_model_serial_number := FND_API.G_MISS_CHAR;
1816 x_detail_info_tab(l_index).customer_id := FND_API.G_MISS_NUM;
1817 x_detail_info_tab(l_index).customer_item_id := FND_API.G_MISS_NUM;
1818 x_detail_info_tab(l_index).customer_job := FND_API.G_MISS_CHAR;
1819 x_detail_info_tab(l_index).customer_production_line := FND_API.G_MISS_CHAR;
1820 x_detail_info_tab(l_index).deliver_to_location_id := FND_API.G_MISS_NUM;
1821 x_detail_info_tab(l_index).deliver_to_site_use_id := FND_API.G_MISS_NUM;
1822 x_detail_info_tab(l_index).delivered_quantity := FND_API.G_MISS_NUM;
1823 x_detail_info_tab(l_index).delivered_quantity2 := FND_API.G_MISS_NUM;
1824 x_detail_info_tab(l_index).freight_class_cat_id := FND_API.G_MISS_NUM;
1825 x_detail_info_tab(l_index).fill_percent := FND_API.G_MISS_NUM;
1826 x_detail_info_tab(l_index).hazard_class_id := FND_API.G_MISS_NUM;
1827 x_detail_info_tab(l_index).hold_code := FND_API.G_MISS_CHAR;
1828 x_detail_info_tab(l_index).inspection_flag := FND_API.G_MISS_CHAR;
1829 x_detail_info_tab(l_index).intmed_ship_to_location_id := FND_API.G_MISS_NUM;
1830 x_detail_info_tab(l_index).inv_interfaced_flag := FND_API.G_MISS_CHAR;
1831 x_detail_info_tab(l_index).inventory_item_id := FND_API.G_MISS_NUM;
1832 x_detail_info_tab(l_index).item_description := FND_API.G_MISS_CHAR;
1833 -- Bug 4146352 : Need to comment seal_code as this is now added to
1834 -- the public api record structure.
1835 -- x_detail_info_tab(l_index).load_seq_number := FND_API.G_MISS_NUM;
1836 x_detail_info_tab(l_index).lpn_id := FND_API.G_MISS_NUM;
1837 x_detail_info_tab(l_index).master_serial_number := FND_API.G_MISS_CHAR;
1838 x_detail_info_tab(l_index).maximum_load_weight := FND_API.G_MISS_NUM;
1839 x_detail_info_tab(l_index).maximum_volume := FND_API.G_MISS_NUM;
1840 x_detail_info_tab(l_index).minimum_fill_percent := FND_API.G_MISS_NUM;
1841 x_detail_info_tab(l_index).move_order_line_id := FND_API.G_MISS_NUM;
1842 x_detail_info_tab(l_index).movement_id := FND_API.G_MISS_NUM;
1843 x_detail_info_tab(l_index).mvt_stat_status := FND_API.G_MISS_CHAR;
1844 x_detail_info_tab(l_index).oe_interfaced_flag := FND_API.G_MISS_CHAR;
1845 x_detail_info_tab(l_index).org_id := FND_API.G_MISS_NUM;
1846 x_detail_info_tab(l_index).organization_id := FND_API.G_MISS_NUM;
1847 x_detail_info_tab(l_index).original_subinventory := FND_API.G_MISS_CHAR;
1848 x_detail_info_tab(l_index).pickable_flag := FND_API.G_MISS_CHAR;
1849 x_detail_info_tab(l_index).picked_quantity := FND_API.G_MISS_NUM;
1850 x_detail_info_tab(l_index).picked_quantity2 := FND_API.G_MISS_NUM;
1851 x_detail_info_tab(l_index).project_id := FND_API.G_MISS_NUM;
1852 x_detail_info_tab(l_index).quality_control_quantity := FND_API.G_MISS_NUM;
1853 x_detail_info_tab(l_index).quality_control_quantity2 := FND_API.G_MISS_NUM;
1854 x_detail_info_tab(l_index).received_quantity := FND_API.G_MISS_NUM;
1855 x_detail_info_tab(l_index).received_quantity2 := FND_API.G_MISS_NUM;
1856 x_detail_info_tab(l_index).released_flag := FND_API.G_MISS_CHAR;
1857 x_detail_info_tab(l_index).request_id := FND_API.G_MISS_NUM;
1858 x_detail_info_tab(l_index).requested_quantity := FND_API.G_MISS_NUM;
1859 x_detail_info_tab(l_index).requested_quantity_uom := FND_API.G_MISS_CHAR;
1860 x_detail_info_tab(l_index).requested_quantity_uom2 := FND_API.G_MISS_CHAR;
1861 x_detail_info_tab(l_index).requested_quantity2 := FND_API.G_MISS_NUM;
1862 -- Bug 4146352 : Need to comment seal_code as this is now added to
1863 -- the public api record structure.
1864 -- x_detail_info_tab(l_index).seal_code := FND_API.G_MISS_CHAR;
1865 x_detail_info_tab(l_index).ship_from_location_id := FND_API.G_MISS_NUM;
1866 x_detail_info_tab(l_index).ship_to_location_id := FND_API.G_MISS_NUM;
1867 x_detail_info_tab(l_index).ship_to_site_use_id := FND_API.G_MISS_NUM;
1868 x_detail_info_tab(l_index).source_code := FND_API.G_MISS_CHAR;
1869 x_detail_info_tab(l_index).source_header_number := FND_API.G_MISS_CHAR;
1870 x_detail_info_tab(l_index).source_header_type_id := FND_API.G_MISS_NUM;
1871 x_detail_info_tab(l_index).source_header_type_name := FND_API.G_MISS_CHAR;
1872 x_detail_info_tab(l_index).source_line_number := FND_API.G_MISS_CHAR;
1873 x_detail_info_tab(l_index).source_line_set_id := FND_API.G_MISS_NUM;
1874 x_detail_info_tab(l_index).split_from_detail_id := FND_API.G_MISS_NUM;
1875 x_detail_info_tab(l_index).src_requested_quantity := FND_API.G_MISS_NUM;
1876 x_detail_info_tab(l_index).src_requested_quantity_uom := FND_API.G_MISS_CHAR;
1877 x_detail_info_tab(l_index).src_requested_quantity_uom2 := FND_API.G_MISS_CHAR;
1878 x_detail_info_tab(l_index).src_requested_quantity2 := FND_API.G_MISS_NUM;
1879 x_detail_info_tab(l_index).task_id := FND_API.G_MISS_NUM;
1880 x_detail_info_tab(l_index).transaction_temp_id := FND_API.G_MISS_NUM;
1881 x_detail_info_tab(l_index).unit_number := FND_API.G_MISS_CHAR;
1882 x_detail_info_tab(l_index).unit_price := FND_API.G_MISS_NUM;
1883 -- J: W/V Changes
1884 x_detail_info_tab(l_index).unit_weight := FND_API.G_MISS_NUM;
1885 x_detail_info_tab(l_index).unit_volume := FND_API.G_MISS_NUM;
1886
1887 /* End of fix for Bug 2766446 */
1888
1889 l_index := x_changed_attributes.NEXT(l_index);
1890 END LOOP;
1891
1892 IF l_debug_on THEN
1893 WSH_DEBUG_SV.pop(l_module_name);
1894 END IF;
1895
1896 EXCEPTION
1897
1898 WHEN FND_API.G_EXC_ERROR THEN
1899
1900 IF l_debug_on THEN
1901 WSH_DEBUG_SV.logmsg(l_module_name,'FND_API.G_EXC_ERROR exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
1902 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:FND_API.G_EXC_ERROR');
1903 END IF;
1904 raise;
1905
1906
1907 WHEN OTHERS THEN
1908
1909 wsh_util_core.default_handler('WSH_DELIVERY_DETAILS_PUB.UPDATE_ATTRIBUTES');
1910 IF l_debug_on THEN
1911 WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '|| SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
1912 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
1913 END IF;
1914 raise;
1915
1916 END Copy_Attributes;
1917
1918
1919 END WSH_DELIVERY_DETAILS_PUB;