1 PACKAGE BODY ASO_SHIPMENT_PVT as
2 /* $Header: asovshpb.pls 120.5 2011/09/05 06:38:46 akushwah ship $ */
3 --
4 -- NAME
5 -- ASO_SHIPMENT_PVT
6 --
7 -- HISTORY
8 --
9
10 G_PKG_NAME CONSTANT VARCHAR2(30):= 'ASO_SHIPMENT_PVT';
11
12 PROCEDURE Delete_shipment(
13 P_Api_Version_Number IN NUMBER,
14 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
15 P_Commit IN VARCHAR2 := FND_API.G_FALSE,
16 p_qte_line_rec IN aso_quote_pub.qte_line_rec_type
17 := ASO_QUOTE_PUB.G_MISS_QTE_LINE_REC,
18 p_shipment_rec IN aso_quote_pub.shipment_rec_type,
19 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
20 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
21 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
22 )
23 IS
24 l_api_name CONSTANT VARCHAR2(30) := 'Delete_quote';
25 l_api_version_number CONSTANT NUMBER := 1.0;
26
27 CURSOR c_freight_charges IS
28 SELECT FREIGHT_CHARGE_ID FROM aso_freight_charges
29 WHERE QUOTE_SHIPMENT_ID = p_shipment_rec.shipment_id;
30
31 l_return_status VARCHAR2(240);
32 BEGIN
33 -- Standard Start of API savepoint
34 SAVEPOINT DELETE_SHIPMENT_PVT;
35
36 -- Standard call to check for call compatibility.
37 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
38 p_api_version_number,
39 l_api_name,
40 G_PKG_NAME)
41 THEN
42 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
43 END IF;
44
45
46 -- Initialize message list if p_init_msg_list is set to TRUE.
47 IF FND_API.to_Boolean( p_init_msg_list )
48 THEN
49 FND_MSG_PUB.initialize;
50 END IF;
51
52
53 -- Initialize API return status to SUCCESS
54 x_return_status := FND_API.G_RET_STS_SUCCESS;
55
56 --
57 -- Api body
58 --
59 IF p_shipment_rec.reservation_id <> FND_API.G_MISS_NUM AND
60 p_shipment_rec.reservation_id IS NOT NULL THEN
61 ASO_RESERVATION_INT.Delete_Reservation(
62 P_Api_Version_Number => 1.0,
63 P_Init_Msg_List => FND_API.G_FALSE,
64 P_Commit => FND_API.G_FALSE,
65 P_line_Rec => p_qte_line_rec,
66 p_shipment_rec => p_shipment_rec,
67 X_Return_Status => l_Return_Status,
68 X_Msg_Count => X_Msg_Count,
69 X_Msg_Data => X_Msg_Data);
70 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
71 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
72 FND_MESSAGE.Set_Name('ASO', 'ASO_API_ERROR_IN_DELETE_RSV');
73 FND_MSG_PUB.ADD;
74 END IF;
75 END IF;
76 END IF;
77
78 FOR freight_rec IN c_freight_charges LOOP
79 ASO_FREIGHT_CHARGES_PKG.Delete_Row(
80 p_FREIGHT_CHARGE_ID => freight_rec.FREIGHT_CHARGE_ID);
81 END LOOP;
82 -- Invoke table handler(ASO_SHIPMENTS_PKG.Delete_Row)
83 ASO_SHIPMENTS_PKG.Delete_Row(
84 p_SHIPMENT_ID => p_shipment_rec.shipment_id);
85
86
87
88 --
89 -- End of API body
90 --
91
92 -- Standard check for p_commit
93 IF FND_API.to_Boolean( p_commit )
94 THEN
95 COMMIT WORK;
96 END IF;
97
98
99 -- Standard call to get message count and if count is 1, get message info.
100 FND_MSG_PUB.Count_And_Get
101 ( p_count => x_msg_count,
102 p_data => x_msg_data
103 );
104 EXCEPTION
105 WHEN FND_API.G_EXC_ERROR THEN
106 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
107 P_API_NAME => L_API_NAME
108 ,P_PKG_NAME => G_PKG_NAME
109 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
110 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
111 ,X_MSG_COUNT => X_MSG_COUNT
112 ,X_MSG_DATA => X_MSG_DATA
113 ,X_RETURN_STATUS => X_RETURN_STATUS);
114
115 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
116 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
117 P_API_NAME => L_API_NAME
118 ,P_PKG_NAME => G_PKG_NAME
119 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
120 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
121 ,X_MSG_COUNT => X_MSG_COUNT
122 ,X_MSG_DATA => X_MSG_DATA
123 ,X_RETURN_STATUS => X_RETURN_STATUS);
124
125 WHEN OTHERS THEN
126 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
127 P_API_NAME => L_API_NAME
128 ,P_PKG_NAME => G_PKG_NAME
129 ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
130 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
131 ,P_SQLCODE => SQLCODE
132 ,P_SQLERRM => SQLERRM
133 ,X_MSG_COUNT => X_MSG_COUNT
134 ,X_MSG_DATA => X_MSG_DATA
135 ,X_RETURN_STATUS => X_RETURN_STATUS);
136 End Delete_Shipment;
137
138
139 FUNCTION Get_invoice_to_party_site_id (
140 p_qte_header_id NUMBER,
141 p_qte_line_id NUMBER
142 ) RETURN NUMBER
143 IS
144 CURSOR c_inv_site1 IS
145 SELECT invoice_to_party_site_id FROM ASO_quote_lines_All
146 WHERE quote_line_id = p_qte_line_id
147 AND quote_header_id = p_qte_header_id;
148
149 CURSOR c_inv_site2 IS
150 SELECT invoice_to_party_site_id FROM ASO_quote_headers_All
151 WHERE quote_header_id = p_qte_header_id;
152
153 l_inv_site_id NUMBER;
154
155 cursor c_root_model_line_id is
156 select quote_line_id
157 from aso_quote_line_details
158 where (config_header_id, config_revision_num) = (select config_header_id,config_revision_num
159 from aso_quote_line_details
160 where quote_line_id = p_qte_line_id)
161 and ref_type_code = 'CONFIG'
162 and ref_line_id is null;
163
164 cursor c_item_type_code is
165 select item_type_code
166 from aso_quote_lines_all
167 where quote_line_id = p_qte_line_id;
168
169 l_model_quote_line_id NUMBER;
170 l_item_type_code VARCHAR2(30);
171
172 BEGIN
173 OPEN c_inv_site1;
174 FETCH c_inv_site1 INTO l_inv_site_id;
175
176 IF c_inv_site1%FOUND and l_inv_site_id IS NOT NULL and l_inv_site_id <> FND_API.G_MISS_NUM THEN
177
178 CLOSE c_inv_site1;
179 return l_inv_site_id;
180
181 ELSE
182
183 CLOSE c_inv_site1;
184
185 open c_item_type_code;
186 fetch c_item_type_code into l_item_type_code;
187
188 IF aso_debug_pub.g_debug_flag = 'Y' THEN
189 aso_debug_pub.add('Get_invoice_to_party_site_id: c_item_type_code: l_item_type_code: '||l_item_type_code);
190 END IF;
191
192 IF c_item_type_code%FOUND and l_item_type_code = 'CFG' THEN
193
194 close c_item_type_code;
195
196 open c_root_model_line_id;
197 fetch c_root_model_line_id into l_model_quote_line_id;
198
199 IF aso_debug_pub.g_debug_flag = 'Y' THEN
200 aso_debug_pub.add('Get_invoice_to_party_site_id: c_root_model_line_id: l_model_quote_line_id: ' ||l_model_quote_line_id);
201 END IF;
202
203 IF c_root_model_line_id%FOUND and l_model_quote_line_id is not null THEN
204
205 close c_root_model_line_id;
206
207 l_inv_site_id := Get_invoice_to_party_site_id(p_qte_header_id, l_model_quote_line_id);
208
209 IF aso_debug_pub.g_debug_flag = 'Y' THEN
210 aso_debug_pub.add('Get_invoice_to_party_site_id: Model l_inv_site_id: '||l_inv_site_id);
211 END IF;
212
213 return l_inv_site_id;
214
215 END IF; --c_root_model_line_id
216
217 close c_root_model_line_id;
218
219 END IF; --c_item_type_code
220
221 END IF;
222
223
224 OPEN c_inv_site2;
225 FETCH c_inv_site2 INTO l_inv_site_id;
226
227 IF c_inv_site2%FOUND and l_inv_site_id IS NOT NULL and l_inv_site_id <> FND_API.G_MISS_NUM THEN
228
229 CLOSE c_inv_site2;
230 return l_inv_site_id;
231
232 END IF; --c_inv_site2
233
234 return l_inv_site_id;
235
236 END Get_invoice_to_party_site_id;
237
238
239 -- Function for getting the site_use_id based on Cust Account ID
240 FUNCTION Get_cust_to_party_site_id ( p_qte_header_id NUMBER,
241 p_qte_line_id NUMBER
242 ) RETURN NUMBER
243 IS
244
245 CURSOR c_inv_site1 IS
246 SELECT invoice_to_party_site_id FROM ASO_quote_lines_All
247 WHERE quote_line_id = p_qte_line_id
248 AND quote_header_id = p_qte_header_id;
249
250 CURSOR c_inv_site2 IS
251 SELECT invoice_to_party_site_id FROM ASO_quote_headers_All
252 WHERE quote_header_id = p_qte_header_id;
253
254 l_inv_site_id NUMBER;
255 l_ship_site_id NUMBER;
256 l_bill_site_use_id NUMBER;
257
258 CURSOR c_cust_id IS
259 SELECT cust_account_id FROM ASO_QUOTE_HEADERS_ALL
260 WHERE quote_header_id = p_qte_header_id;
261
262 CURSOR C_site_use(l_cust_id NUMBER, l_inv_site_id NUMBER) IS
263 SELECT site_use_id
264 FROM hz_cust_site_uses b,hz_cust_acct_sites a
265 WHERE b.cust_acct_site_id = a.cust_acct_site_id
266 AND b.site_use_code = 'BILL_TO' --and b.primary_flag = 'Y'
267 AND a.party_site_id = l_inv_site_id
268 AND a.cust_account_id = l_cust_id;
269
270 CURSOR c_inv_cust_id IS
271 SELECT INVOICE_TO_CUST_ACCOUNT_ID FROM ASO_QUOTE_LINES_ALL
272 WHERE quote_header_id = p_qte_header_id and quote_line_id =p_qte_line_id ;
273
274 CURSOR c_inv_cust_id1 IS
275 SELECT INVOICE_TO_CUST_ACCOUNT_ID FROM ASO_QUOTE_HEADERS_ALL
276 WHERE quote_header_id = p_qte_header_id ;
277
278 l_cust_id NUMBER;
279 p_shipment_id NUMBER := NULL;
280
281 cursor c_item_type_code is
282 select item_type_code
283 from aso_quote_lines_all
284 where quote_line_id = p_qte_line_id;
285
286 cursor c_root_model_line_id is
287 select quote_line_id
288 from aso_quote_line_details
289 where (config_header_id, config_revision_num) = (select config_header_id,config_revision_num
290 from aso_quote_line_details
291 where quote_line_id = p_qte_line_id)
292 and ref_type_code = 'CONFIG'
293 and ref_line_id is null;
294
295
296 l_model_quote_line_id NUMBER;
297 l_item_type_code VARCHAR2(30);
298
299 BEGIN
300
301 IF aso_debug_pub.g_debug_flag = 'Y' THEN
302 aso_debug_pub.add('ASO_SHIPMENT_PVT: Get_cust_to_party_site_id: Begin');
303 END IF;
304
305 OPEN c_inv_site1;
306 FETCH c_inv_site1 INTO l_inv_site_id;
307
308 IF c_inv_site1%FOUND AND l_inv_site_id IS NOT NULL and l_inv_site_id <> FND_API.G_MISS_NUM THEN
309
310 CLOSE c_inv_site1;
311
312 OPEN c_inv_cust_id;
313 FETCH c_inv_cust_id into l_cust_id;
314
315 IF c_inv_cust_id%NOTFOUND or l_cust_id IS NULL or l_cust_id = FND_API.G_MISS_NUM THEN
316
317 CLOSE c_inv_cust_id;
318
319 OPEN c_inv_cust_id1;
320 FETCH c_inv_cust_id1 into l_cust_id;
321
322 IF c_inv_cust_id1%NOTFOUND or l_cust_id IS NULL or l_cust_id = FND_API.G_MISS_NUM THEN
323
324 CLOSE c_inv_cust_id1;
325
326 --Get the Customer Account from the header
327
328 OPEN c_cust_id;
329 FETCH c_cust_id INTO l_cust_id;
330 CLOSE c_cust_id;
331
332 OPEN C_site_use(l_cust_id , l_inv_site_id);
333 FETCH C_site_use into l_bill_site_use_id;
334 CLOSE C_site_use;
335
336 return l_bill_site_use_id;
337
338 END IF;
339
340 CLOSE c_inv_cust_id1;
341
342 OPEN C_site_use(l_cust_id , l_inv_site_id);
343 FETCH C_site_use into l_bill_site_use_id;
344 CLOSE C_site_use;
345 return l_bill_site_use_id;
346
347 END IF;
348
349 CLOSE c_inv_cust_id;
350
351 --Get the site use id from the HZ_cust_site_uses
352
353 OPEN C_site_use(l_cust_id , l_inv_site_id);
354 FETCH C_site_use into l_bill_site_use_id;
355 CLOSE C_site_use;
356
357 return l_bill_site_use_id;
358
359 ELSE
360
361 IF aso_debug_pub.g_debug_flag = 'Y' THEN
362 aso_debug_pub.add('Get_cust_to_party_site_id: Else c_inv_site1');
363 END IF;
364
365 CLOSE c_inv_site1;
366
367 open c_item_type_code;
368 fetch c_item_type_code into l_item_type_code;
369
370 IF aso_debug_pub.g_debug_flag = 'Y' THEN
371 aso_debug_pub.add('Get_cust_to_party_site_id: c_item_type_code: l_item_type_code: '||l_item_type_code);
372 END IF;
373
374 IF c_item_type_code%FOUND and l_item_type_code = 'CFG' THEN
375
376 close c_item_type_code;
377
378 open c_root_model_line_id;
379 fetch c_root_model_line_id into l_model_quote_line_id;
380
381 IF aso_debug_pub.g_debug_flag = 'Y' THEN
382 aso_debug_pub.add('Get_cust_to_party_site_id: c_root_model_line_id: l_model_quote_line_id: '||l_model_quote_line_id);
383 END IF;
384
385 IF c_root_model_line_id%FOUND and l_model_quote_line_id is not null THEN
386
387 close c_root_model_line_id;
388
389 l_bill_site_use_id := Get_cust_to_party_site_id(p_qte_header_id, l_model_quote_line_id);
390
391 return l_bill_site_use_id;
392
393 END IF; --c_root_model_line_id
394
395 close c_root_model_line_id;
396
397 END IF; --c_item_type_code
398
399 close c_item_type_code;
400
401 END IF; --c_inv_site1
402
403
404 OPEN c_inv_site2;
405 FETCH c_inv_site2 INTO l_inv_site_id;
406
407 IF c_inv_site2%FOUND AND l_inv_site_id IS NOT NULL and l_inv_site_id <> FND_API.G_MISS_NUM THEN
408
409 CLOSE c_inv_site2;
410
411 OPEN c_inv_cust_id;
412 FETCH c_inv_cust_id into l_cust_id;
413
414 IF c_inv_cust_id%NOTFOUND or l_cust_id IS NULL or l_cust_id = FND_API.G_MISS_NUM THEN
415
416 CLOSE c_inv_cust_id;
417 OPEN c_inv_cust_id1;
418 FETCH c_inv_cust_id1 into l_cust_id;
419
420 IF c_inv_cust_id1%NOTFOUND or l_cust_id IS NULL or l_cust_id = FND_API.G_MISS_NUM THEN
421
422 CLOSE c_inv_cust_id1;
423
424 --Get the Customer Account from the header
425 OPEN c_cust_id;
426 FETCH c_cust_id INTO l_cust_id;
427 CLOSE c_cust_id;
428
429 OPEN C_site_use(l_cust_id , l_inv_site_id);
430 FETCH C_site_use into l_bill_site_use_id;
431 CLOSE C_site_use;
432
433 return l_bill_site_use_id;
434
435 END IF; --c_inv_cust_id1
436
437 CLOSE c_inv_cust_id1;
438
439 OPEN C_site_use(l_cust_id , l_inv_site_id);
440 FETCH C_site_use into l_bill_site_use_id;
441 CLOSE C_site_use;
442
443 return l_bill_site_use_id;
444
445 END IF; --c_inv_cust_id
446
447 CLOSE c_inv_cust_id;
448
449 --Get the site use id from the HZ_cust_site_uses
450
451 OPEN C_site_use(l_cust_id , l_inv_site_id);
452 FETCH C_site_use into l_bill_site_use_id;
453 CLOSE C_site_use;
454
455 return l_bill_site_use_id;
456
457 END IF; --c_inv_site2
458
459 close c_inv_site2;
460
461 return l_bill_site_use_id;
462
463 END Get_cust_to_party_site_id;
464
465
466
467 FUNCTION Get_Ship_To_site_Id (
468 p_qte_header_id NUMBER,
469 p_qte_line_id NUMBER,
470 p_shipment_id NUMBER) RETURN NUMBER
471 IS
472 CURSOR c_ship_site1 IS
473 SELECT ship_to_party_site_id, SHIP_TO_CUST_ACCOUNT_ID FROM ASO_SHIPMENTS
474 WHERE shipment_id = p_shipment_id AND quote_line_id =
475 p_qte_line_id AND quote_header_id = p_qte_header_id;
476
477 /* Commented for Bug 12938390(11i Bug 10253993)
478 -- performance fix for bug 5596369
479 CURSOR c_ship_site2 IS
480 SELECT ship_to_party_site_id , SHIP_TO_CUST_ACCOUNT_ID
481 FROM ASO_SHIPMENTS
482 WHERE quote_header_id = p_qte_header_id
483 and shipment_id =p_shipment_id
484 AND quote_line_id IS NULL;
485 */
486
487 /* Cursor c_ship_site2 modified for Bug 12938390 (11i Bug 10253993) */
488 CURSOR c_ship_site2(p_ship_id Number) IS
489 SELECT ship_to_party_site_id , SHIP_TO_CUST_ACCOUNT_ID
490 FROM ASO_SHIPMENTS
491 WHERE quote_header_id = p_qte_header_id
492 AND shipment_id = p_ship_id
493 AND quote_line_id IS NULL;
494
495 l_ship_site_id NUMBER;
496 l_ship_cust_acct_id NUMBER;
497 l_ship_site_use_id NUMBER;
498 CURSOR c_cust_id IS
499 SELECT cust_account_id FROM ASO_QUOTE_HEADERS_ALL
500 WHERE quote_header_id = p_qte_header_id;
501
502 CURSOR c_ship_cust_id IS
503 SELECT SHIP_TO_CUST_ACCOUNT_ID FROM ASO_SHIPMENTS
504 WHERE quote_header_id = p_qte_header_id and quote_line_id =p_qte_line_id and shipment_id =p_shipment_id;
505
506 /* Commented for Bug 12938390(11i Bug 12426838)
507 -- bug 5596369
508 CURSOR c_ship_cust_id1 IS
509 SELECT SHIP_TO_CUST_ACCOUNT_ID
510 FROM ASO_SHIPMENTS
511 WHERE quote_header_id = p_qte_header_id
512 and shipment_id =p_shipment_id
513 and quote_line_id IS NULL;
514 */
515
516 /* Cursor c_ship_cust_id1 modified for Bug 12938390(11i Bug 12426838) */
517 CURSOR c_ship_cust_id1(p_ship_id Number) IS
518 SELECT SHIP_TO_CUST_ACCOUNT_ID
519 FROM ASO_SHIPMENTS
520 WHERE quote_header_id = p_qte_header_id
521 and shipment_id = p_ship_id
522 and quote_line_id IS NULL;
523
524 CURSOR C_site_use(l_cust_id NUMBER, l_ship_site_id NUMBER) IS
525 SELECT site_use_id
526 FROM hz_cust_site_uses b,hz_cust_acct_sites a
527 WHERE b.cust_acct_site_id = a.cust_acct_site_id
528 AND b.site_use_code = 'SHIP_TO' --and b.primary_flag = 'Y'
529 AND a.party_site_id = l_ship_site_id
530 AND a.cust_account_id = l_cust_id;
531
532 cursor c_root_model_line_id is
533 select quote_line_id
534 from aso_quote_line_details
535 where (config_header_id, config_revision_num) = (select config_header_id,config_revision_num
536 from aso_quote_line_details
537 where quote_line_id = p_qte_line_id)
538 and ref_type_code = 'CONFIG'
539 and ref_line_id is null;
540
541 cursor c_item_type_code is
542 select item_type_code
543 from aso_quote_lines_all
544 where quote_line_id = p_qte_line_id;
545
546 cursor c_shipment_id (p_line_id NUMBER) is
547 select shipment_id
548 from aso_shipments
549 where quote_line_id = p_line_id
550 and quote_header_id = p_qte_header_id;
551
552 l_cust_id NUMBER;
553 l_inv_cust_id NUMBER;
554 l_return_status VARCHAR2(1);
555 l_msg_count number;
556 l_msg_data VARCHAR2(2000);
557
558 l_item_type_code VARCHAR2(30);
559 l_model_quote_line_id NUMBER;
560 l_model_shipment_id NUMBER;
561
562 /* Start : Code change for Bug 12938390(11i Bug 10253993) */
563 CURSOR C_SHIPMENT IS
564 SELECT SHIPMENT_ID
565 FROM ASO_SHIPMENTS
566 WHERE quote_header_id = p_qte_header_id
567 AND quote_line_id IS NULL;
568
569 l_shipment_id NUMBER;
570 /* End : Code change for Bug 12938390(11i Bug 10253993) */
571
572 BEGIN
573 IF aso_debug_pub.g_debug_flag = 'Y' THEN
574 aso_debug_pub.add('ASO_SHIPMENT_PVT:p_qte_header_id ' || p_qte_header_id, 1, 'N');
575 aso_debug_pub.add('ASO_SHIPMENT_PVT:quote_line_id ' || p_qte_line_id, 1, 'N');
576 aso_debug_pub.add('ASO_SHIPMENT_PVT:shipment_id ' || p_shipment_id, 1, 'N');
577 END IF;
578
579 OPEN c_ship_site1;
580 FETCH c_ship_site1 INTO l_ship_site_id, l_ship_cust_acct_id;
581
582 IF aso_debug_pub.g_debug_flag = 'Y' THEN
583 aso_debug_pub.add('ASO_SHIPMENT_PVT:c_ship_site1 l_ship_site_id ' || l_ship_site_id, 1, 'N');
584 aso_debug_pub.add('ASO_SHIPMENT_PVT:c_ship_site1 l_ship_cust_acct_id ' || l_ship_cust_acct_id, 1, 'N');
585 END IF;
586
587 /* Start : Code change for Bug 12938390(11i Bug 12426838) , changed position of this cursor */
588 Open C_SHIPMENT;
589 Fetch C_SHIPMENT INTO l_shipment_id;
590 Close C_SHIPMENT;
591
592 aso_debug_pub.add('ASO_SHIPMENT_PVT: At the start , l_shipment_id : '||l_shipment_id);
593
594 /* End : Code change for Bug 12938390(11i Bug 12426838) */
595
596 IF c_ship_site1%FOUND and l_ship_site_id IS NOT NULL and l_ship_site_id <> FND_API.G_MISS_NUM THEN
597
598 CLOSE c_ship_site1;
599
600 --Get the ship_to_cust_account if present
601 OPEN c_ship_cust_id;
602 FETCH c_ship_cust_id into l_cust_id;
603
604 IF aso_debug_pub.g_debug_flag = 'Y' THEN
605 aso_debug_pub.add('ASO_SHIPMENT_PVT:c_ship_cust_id l_cust_id ' || l_cust_id, 1, 'N');
606 END IF;
607
608 IF c_ship_cust_id%NOTFOUND or l_cust_id IS NULL or l_cust_id = FND_API.G_MISS_NUM THEN
609
610 CLOSE c_ship_cust_id;
611
612 --OPEN c_ship_cust_id1;
613 OPEN c_ship_cust_id1(l_shipment_id); -- Code change done for Bug 12938390(11i Bug 12426838)
614 FETCH c_ship_cust_id1 into l_cust_id;
615
616 IF aso_debug_pub.g_debug_flag = 'Y' THEN
617 aso_debug_pub.add('ASO_SHIPMENT_PVT:c_ship_cust_id1 l_cust_id ' || l_cust_id, 1, 'N');
618 END IF;
619
620 IF c_ship_cust_id1%NOTFOUND or l_cust_id IS NULL or l_cust_id = FND_API.G_MISS_NUM THEN
621
622 CLOSE c_ship_cust_id1;
623
624 -- Get the Customer Account from the header
625 OPEN c_cust_id;
626 FETCH c_cust_id INTO l_cust_id;
627 CLOSE c_cust_id;
628
629 IF aso_debug_pub.g_debug_flag = 'Y' THEN
630 aso_debug_pub.add('ASO_SHIPMENT_PVT:c_cust_id l_cust_id ' || l_cust_id, 1, 'N');
631 END IF;
632
633 OPEN C_site_use(l_cust_id , l_ship_site_id);
634 FETCH C_site_use into l_ship_site_use_id;
635
636 IF aso_debug_pub.g_debug_flag = 'Y' THEN
637 aso_debug_pub.add('ASO_SHIPMENT_PVT:C_site_use1 l_ship_site_use_id ' || l_ship_site_use_id, 1, 'N');
638 END IF;
639 CLOSE C_site_use;
640
641 return l_ship_site_use_id;
642
643 END IF;
644
645 CLOSE c_ship_cust_id1;
646
647 OPEN C_site_use(l_cust_id , l_ship_site_id);
648 FETCH C_site_use into l_ship_site_use_id;
649
650 IF aso_debug_pub.g_debug_flag = 'Y' THEN
651 aso_debug_pub.add('ASO_SHIPMENT_PVT:C_site_use2 l_ship_site_use_id ' || l_ship_site_use_id, 1, 'N');
652 END IF;
653 CLOSE C_site_use;
654
655 return l_ship_site_use_id;
656
657 END IF;
658
659 CLOSE c_ship_cust_id;
660
661
662 --Get the site use id from the HZ_cust_site_uses
663
664 OPEN C_site_use(l_cust_id , l_ship_site_id);
665 FETCH C_site_use into l_ship_site_use_id;
666
667 IF aso_debug_pub.g_debug_flag = 'Y' THEN
668 aso_debug_pub.add('ASO_SHIPMENT_PVT:C_site_use3 l_ship_site_use_id ' || l_ship_site_use_id, 1, 'N');
669 END IF;
670 CLOSE C_site_use;
671
672 return l_ship_site_use_id;
673
674 ELSE
675
676 CLOSE c_ship_site1;
677
678 open c_item_type_code;
679 fetch c_item_type_code into l_item_type_code;
680
681 IF aso_debug_pub.g_debug_flag = 'Y' THEN
682 aso_debug_pub.add('Get_Ship_To_site_Id: c_item_type_code: l_item_type_code: '||l_item_type_code);
683 END IF;
684
685 IF c_item_type_code%FOUND and l_item_type_code = 'CFG' THEN
686
687 close c_item_type_code;
688
689 open c_root_model_line_id;
690 fetch c_root_model_line_id into l_model_quote_line_id;
691
692 IF aso_debug_pub.g_debug_flag = 'Y' THEN
693 aso_debug_pub.add('Get_Ship_To_site_Id: c_root_model_line_id: l_model_quote_line_id: '||l_model_quote_line_id);
694 END IF;
695
696 IF c_root_model_line_id%FOUND and l_model_quote_line_id is not null THEN
697
698 close c_root_model_line_id;
699
700 open c_shipment_id(l_model_quote_line_id);
701 fetch c_shipment_id into l_model_shipment_id;
702
703 IF aso_debug_pub.g_debug_flag = 'Y' THEN
704 aso_debug_pub.add('Get_Ship_To_site_Id: c_shipment_id: l_model_shipment_id: '||l_model_shipment_id);
705 END IF;
706
707 IF c_shipment_id%FOUND and l_model_shipment_id is not null THEN
708
709 close c_shipment_id;
710
711 l_ship_site_use_id := Get_Ship_To_site_Id(p_qte_header_id, l_model_quote_line_id, l_model_shipment_id);
712 IF aso_debug_pub.g_debug_flag = 'Y' THEN
713 aso_debug_pub.add('Get_Ship_To_site_Id: l_ship_site_use_id: '||l_ship_site_use_id);
714 END IF;
715
716 return l_ship_site_use_id;
717
718 END IF; --c_shipment_id
719
720 close c_shipment_id;
721
722 END IF; --c_root_model_line_id
723
724 close c_root_model_line_id;
725
726 END IF; --c_item_type_code
727
728 close c_item_type_code;
729
730 END IF; --c_ship_site1
731
732 /* Start : Code change for Bug 12938390(11i Bug 10253993) , changed position of this cursor due to bug 12938390 (11i Bug 12426838)
733 Open C_SHIPMENT;
734 Fetch C_SHIPMENT INTO l_shipment_id;
735 Close C_SHIPMENT;
736
737 aso_debug_pub.add('ASO_SHIPMENT_PVT:c_ship_site2 l_shipment_id : '||l_shipment_id); */
738
739 OPEN c_ship_site2(l_shipment_id);
740 /* End : Code change for Bug 12938390(11i Bug 10253993) */
741
742 --OPEN c_ship_site2;
743 FETCH c_ship_site2 INTO l_ship_site_id, l_ship_cust_acct_id;
744
745 IF aso_debug_pub.g_debug_flag = 'Y' THEN
746 aso_debug_pub.add('ASO_SHIPMENT_PVT:c_ship_site2 l_ship_site_id ' || l_ship_site_id, 1, 'N');
747 aso_debug_pub.add('ASO_SHIPMENT_PVT:c_ship_site2 l_ship_cust_acct_id ' || l_ship_cust_acct_id, 1, 'N');
748 END IF;
749
750 IF c_ship_site2%FOUND AND l_ship_site_id IS NOT NULL and l_ship_site_id <> FND_API.G_MISS_NUM THEN
751
752 CLOSE c_ship_site2;
753 --Get the ship_to_cust_account if present
754 OPEN c_ship_cust_id;
755 FETCH c_ship_cust_id into l_cust_id;
756
757 IF aso_debug_pub.g_debug_flag = 'Y' THEN
758 aso_debug_pub.add('ASO_SHIPMENT_PVT:c_ship_cust_id l_cust_id ' || l_cust_id, 1, 'N');
759 END IF;
760
761 IF c_ship_cust_id%NOTFOUND or l_cust_id IS NULL or l_cust_id = FND_API.G_MISS_NUM THEN
762
763 CLOSE c_ship_cust_id;
764
765 -- OPEN c_ship_cust_id1;
766 OPEN c_ship_cust_id1(l_shipment_id); -- Code change for Bug 12938390(11i Bug 12426838)
767
768 FETCH c_ship_cust_id1 into l_cust_id;
769
770 IF aso_debug_pub.g_debug_flag = 'Y' THEN
771 aso_debug_pub.add('ASO_SHIPMENT_PVT:c_ship_cust_id1 l_cust_id ' || l_cust_id, 1, 'N');
772 END IF;
773
774 IF c_ship_cust_id1%NOTFOUND or l_cust_id IS NULL or l_cust_id = FND_API.G_MISS_NUM THEN
775
776 CLOSE c_ship_cust_id1;
777 --Get the Customer Account from the header
778 OPEN c_cust_id;
779 FETCH c_cust_id INTO l_cust_id;
780 CLOSE c_cust_id;
781
782 IF aso_debug_pub.g_debug_flag = 'Y' THEN
783 aso_debug_pub.add('ASO_SHIPMENT_PVT:c_cust_id l_cust_id ' || l_cust_id, 1, 'N');
784 END IF;
785
786 OPEN C_site_use(l_cust_id , l_ship_site_id);
787 FETCH C_site_use into l_ship_site_use_id;
788
789 IF aso_debug_pub.g_debug_flag = 'Y' THEN
790 aso_debug_pub.add('ASO_SHIPMENT_PVT:C_site_use4 l_ship_site_use_id ' || l_ship_site_use_id, 1, 'N');
791 END IF;
792
793 CLOSE C_site_use;
794 return l_ship_site_use_id;
795
796 END IF;
797
798 CLOSE c_ship_cust_id1;
799
800 OPEN C_site_use(l_cust_id , l_ship_site_id);
801 FETCH C_site_use into l_ship_site_use_id;
802
803 IF aso_debug_pub.g_debug_flag = 'Y' THEN
804 aso_debug_pub.add('ASO_SHIPMENT_PVT:C_site_use5 l_ship_site_use_id ' || l_ship_site_use_id, 1, 'N');
805 END IF;
806
807 CLOSE C_site_use;
808 return l_ship_site_use_id;
809
810 END IF;
811 CLOSE c_ship_cust_id;
812
813 --Get the site use id from the HZ_cust_site_uses
814
815 OPEN C_site_use(l_cust_id , l_ship_site_id);
816 FETCH C_site_use into l_ship_site_use_id;
817
818 IF aso_debug_pub.g_debug_flag = 'Y' THEN
819 aso_debug_pub.add('ASO_SHIPMENT_PVT:C_site_use6 l_ship_site_use_id ' || l_ship_site_use_id, 1, 'N');
820 END IF;
821 CLOSE C_site_use;
822
823 return l_ship_site_use_id;
824
825 END IF;
826
827 CLOSE c_ship_site2;
828
829 return l_ship_site_use_id;
830
831 END Get_Ship_To_site_Id;
832
833
834 FUNCTION Get_Ship_To_party_site_Id (
835 p_qte_header_id NUMBER,
836 p_qte_line_id NUMBER,
837 p_shipment_id NUMBER) RETURN NUMBER
838 IS
839 CURSOR c_ship_site1 IS
840 SELECT ship_to_party_site_id FROM ASO_SHIPMENTS
841 WHERE shipment_id = p_shipment_id
842 AND quote_line_id = p_qte_line_id
843 AND quote_header_id = p_qte_header_id;
844
845 CURSOR c_ship_site2 IS
846 SELECT ship_to_party_site_id FROM ASO_SHIPMENTS
847 WHERE quote_line_id IS NULL AND quote_header_id = p_qte_header_id;
848
849 l_ship_site_id NUMBER;
850
851 cursor c_root_model_line_id is
852 select quote_line_id
853 from aso_quote_line_details
854 where (config_header_id, config_revision_num) = (select config_header_id,config_revision_num
855 from aso_quote_line_details
856 where quote_line_id = p_qte_line_id)
857 and ref_type_code = 'CONFIG'
858 and ref_line_id is null;
859
860 cursor c_item_type_code is
861 select item_type_code
862 from aso_quote_lines_all
863 where quote_line_id = p_qte_line_id;
864
865 cursor c_shipment_id (p_line_id NUMBER) is
866 select shipment_id
867 from aso_shipments
868 where quote_line_id = p_line_id
869 and quote_header_id = p_qte_header_id;
870
871 l_model_quote_line_id NUMBER;
872 l_item_type_code VARCHAR2(30);
873 l_model_shipment_id NUMBER;
874
875 BEGIN
876
877 OPEN c_ship_site1;
878 FETCH c_ship_site1 INTO l_ship_site_id;
879
880 IF c_ship_site1%FOUND and l_ship_site_id IS NOT NULL and l_ship_site_id <> FND_API.G_MISS_NUM THEN
881
882 CLOSE c_ship_site1;
883 return l_ship_site_id;
884
885 ELSE
886
887 CLOSE c_ship_site1;
888
889 open c_item_type_code;
890 fetch c_item_type_code into l_item_type_code;
891
892 IF aso_debug_pub.g_debug_flag = 'Y' THEN
893 aso_debug_pub.add('Get_Ship_To_party_site_Id: c_item_type_code: l_item_type_code: '||l_item_type_code);
894 END IF;
895
896 IF c_item_type_code%FOUND and l_item_type_code = 'CFG' THEN
897
898 close c_item_type_code;
899
900 open c_root_model_line_id;
901 fetch c_root_model_line_id into l_model_quote_line_id;
902
903 IF aso_debug_pub.g_debug_flag = 'Y' THEN
904 aso_debug_pub.add('Get_Ship_To_party_site_Id: c_root_model_line_id: l_model_quote_line_id: '||l_model_quote_line_id);
905 END IF;
906
907 IF c_root_model_line_id%FOUND and l_model_quote_line_id is not null THEN
908
909 close c_root_model_line_id;
910
911 open c_shipment_id(l_model_quote_line_id);
912 fetch c_shipment_id into l_model_shipment_id;
913
914 IF aso_debug_pub.g_debug_flag = 'Y' THEN
915 aso_debug_pub.add('Get_Ship_To_party_site_Id: c_shipment_id: l_model_shipment_id: '||l_model_shipment_id);
916 END IF;
917
918 IF c_shipment_id%FOUND and l_model_shipment_id is not null THEN
919
920 close c_shipment_id;
921
922 l_ship_site_id := Get_Ship_To_party_site_Id(p_qte_header_id, l_model_quote_line_id, l_model_shipment_id);
923
924 IF aso_debug_pub.g_debug_flag = 'Y' THEN
925 aso_debug_pub.add('Get_Ship_To_party_site_Id: l_ship_site_id: '||l_ship_site_id);
926 END IF;
927
928 return l_ship_site_id;
929
930 END IF; --c_shipment_id
931
932 close c_shipment_id;
933
934 END IF; --c_root_model_line_id
935
936 close c_root_model_line_id;
937
938 END IF; --c_item_type_code
939
940 END IF; --c_ship_site1
941
942
943 OPEN c_ship_site2;
944 FETCH c_ship_site2 INTO l_ship_site_id;
945
946 IF c_ship_site2%FOUND and l_ship_site_id IS NOT NULL and l_ship_site_id <> FND_API.G_MISS_NUM THEN
947
948 CLOSE c_ship_site2;
949 return l_ship_site_id;
950
951 END IF; --c_ship_site2
952
953 return l_ship_site_id;
954
955 END Get_Ship_To_party_site_Id;
956
957
958 FUNCTION Get_party_name (
959 p_party_id NUMBER,
960 p_party_type VARCHAR2
961 ) RETURN VARCHAR2
962 IS
963 CURSOR C1 IS
964 select HP.party_id,HP.party_name
965 from hz_relationships HPR,hz_parties HP where hpr.party_id = p_party_id
966 and hp.party_id=HPR.object_id
967 and SUBJECT_TABLE_NAME(+) = 'HZ_PARTIES'
968 and OBJECT_TABLE_NAME(+) = 'HZ_PARTIES'
969 and HPR.directional_flag = 'B'; -- Added for bug 8634067
970
971 CURSOR C2 IS
972 select party_id,party_name
973 from hz_parties HP where party_id = p_party_id;
974 l_party_name VARCHAR2(360);
975 l_party_id NUMBER;
976 BEGIN
977 IF p_party_type = 'PARTY_RELATIONSHIP' THEN
978 OPEN C1;
979 FETCH C1 INTO l_party_id,l_party_name;
980 IF C1%NOTFOUND OR l_party_name IS NULL THEN
981 CLOSE C1;
982 l_party_name := NULL;
983 RETURN l_party_name;
984 END IF;
985 CLOSE C1;
986 RETURN l_party_name;
987 ELSE
988 OPEN C2;
989 FETCH C2 INTO l_party_id,l_party_name;
990 IF C2%NOTFOUND OR l_party_name IS NULL THEN
991 CLOSE C2;
992 l_party_name := NULL;
993 RETURN l_party_name;
994 END IF;
995 CLOSE C2;
996 RETURN l_party_name;
997 END IF;
998 END Get_party_name;
999
1000
1001 FUNCTION Get_party_first_name (
1002 p_party_id NUMBER,
1003 p_party_type VARCHAR2
1004 ) RETURN VARCHAR2
1005 IS
1006 CURSOR C1 IS
1007 select HP.party_id,HP.person_first_name
1008 from hz_relationships HPR,hz_parties HP where hpr.party_id = p_party_id
1009 and hp.party_id=HPR.subject_id
1010 and SUBJECT_TABLE_NAME(+) = 'HZ_PARTIES'
1011 and OBJECT_TABLE_NAME(+) = 'HZ_PARTIES'
1012 and HPR.directional_flag = 'F'; -- 8634067
1013
1014 CURSOR C2 IS
1015 select party_id,person_first_name
1016 from hz_parties HP where party_id = p_party_id;
1017 l_f_party_name VARCHAR2(150);
1018 l_party_id NUMBER;
1019 BEGIN
1020 IF p_party_type = 'PARTY_RELATIONSHIP' THEN
1021 OPEN C1;
1022 FETCH C1 INTO l_party_id,l_f_party_name;
1023 IF C1%NOTFOUND OR l_f_party_name IS NULL THEN
1024 CLOSE C1;
1025 l_f_party_name := NULL;
1026 RETURN l_f_party_name;
1027 END IF;
1028 CLOSE C1;
1029 RETURN l_f_party_name;
1030 ELSE
1031 OPEN C2;
1032 FETCH C2 INTO l_party_id,l_f_party_name;
1033 IF C2%NOTFOUND OR l_f_party_name IS NULL THEN
1034 CLOSE C2;
1035 l_f_party_name := NULL;
1036 RETURN l_f_party_name;
1037 END IF;
1038 CLOSE C2;
1039 RETURN l_f_party_name;
1040 END IF;
1041 END Get_party_first_name;
1042
1043
1044 FUNCTION Get_party_mid_name (
1045 p_party_id NUMBER,
1046 p_party_type VARCHAR2
1047 ) RETURN VARCHAR2
1048 IS
1049 CURSOR C1 IS
1050 select HP.party_id,HP.person_middle_name
1051 from hz_relationships HPR,hz_parties HP where hpr.party_id = p_party_id
1052 and hp.party_id=HPR.subject_id
1053 and SUBJECT_TABLE_NAME(+) = 'HZ_PARTIES'
1054 and OBJECT_TABLE_NAME(+) = 'HZ_PARTIES'
1055 and HPR.directional_flag = 'F'; -- 8634067
1056
1057 CURSOR C2 IS
1058 select party_id,person_middle_name
1059 from hz_parties HP where party_id = p_party_id;
1060 l_m_party_name VARCHAR2(60);
1061 l_party_id NUMBER;
1062 BEGIN
1063 IF p_party_type = 'PARTY_RELATIONSHIP' THEN
1064 OPEN C1;
1065 FETCH C1 INTO l_party_id,l_m_party_name;
1066 IF C1%NOTFOUND OR l_m_party_name IS NULL THEN
1067 CLOSE C1;
1068 l_m_party_name := NULL;
1069 RETURN l_m_party_name;
1070 END IF;
1071 CLOSE C1;
1072 RETURN l_m_party_name;
1073 ELSE
1074 OPEN C2;
1075 FETCH C2 INTO l_party_id,l_m_party_name;
1076 IF C2%NOTFOUND OR l_m_party_name IS NULL THEN
1077 CLOSE C2;
1078 l_m_party_name := NULL;
1079 RETURN l_m_party_name;
1080 END IF;
1081 CLOSE C2;
1082 RETURN l_m_party_name;
1083 END IF;
1084 END Get_party_mid_name;
1085
1086 FUNCTION Get_party_last_name (
1087 p_party_id NUMBER,
1088 p_party_type VARCHAR2
1089 ) RETURN VARCHAR2
1090 IS
1091 CURSOR C1 IS
1092 select HP.party_id,HP.person_last_name
1093 from hz_relationships HPR,hz_parties HP where hpr.party_id = p_party_id
1094 and hp.party_id=HPR.subject_id
1095 and SUBJECT_TABLE_NAME(+) = 'HZ_PARTIES'
1096 and OBJECT_TABLE_NAME(+) = 'HZ_PARTIES'
1097 and HPR.directional_flag = 'F'; -- 8634067
1098
1099 CURSOR C2 IS
1100 select party_id,person_last_name
1101 from hz_parties HP where party_id = p_party_id;
1102 l_l_party_name VARCHAR2(150);
1103 l_party_id NUMBER;
1104 BEGIN
1105 IF p_party_type = 'PARTY_RELATIONSHIP' THEN
1106 OPEN C1;
1107 FETCH C1 INTO l_party_id,l_l_party_name;
1108 IF C1%NOTFOUND OR l_l_party_name IS NULL THEN
1109 CLOSE C1;
1110 l_l_party_name := NULL;
1111 RETURN l_l_party_name;
1112 END IF;
1113 CLOSE C1;
1114 RETURN l_l_party_name;
1115 ELSE
1116 OPEN C2;
1117 FETCH C2 INTO l_party_id,l_l_party_name;
1118 IF C2%NOTFOUND OR l_l_party_name IS NULL THEN
1119 CLOSE C2;
1120 l_l_party_name := NULL;
1121 RETURN l_l_party_name;
1122 END IF;
1123 CLOSE C2;
1124 RETURN l_l_party_name;
1125 END IF;
1126 END Get_party_last_name;
1127
1128
1129 FUNCTION Get_ship_from_org_id (
1130 p_qte_header_id NUMBER,
1131 p_qte_line_id NUMBER
1132 ) RETURN NUMBER
1133
1134 IS
1135
1136 CURSOR c_line_shipment IS
1137 SELECT ship_from_org_id FROM ASO_shipments
1138 WHERE quote_line_id = p_qte_line_id
1139 AND quote_header_id = p_qte_header_id;
1140
1141
1142 CURSOR c_header_shipment IS
1143 SELECT ship_from_org_id FROM ASO_shipments
1144 WHERE quote_header_id = p_qte_header_id
1145 AND quote_line_id IS NULL;
1146
1147 l_ship_from_org_id NUMBER;
1148
1149
1150 Begin
1151 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1152 aso_debug_pub.add('ASO_SHIPMENT_PVT.Get_ship_from_org_id: p_qte_header_id :'||p_qte_header_id, 1, 'N');
1153 aso_debug_pub.add('ASO_SHIPMENT_PVT.Get_ship_from_org_id: p_qte_line_id :'||p_qte_line_id, 1, 'N');
1154 END IF;
1155
1156 -- Look for line-shipment level ship_from_org_id
1157
1158 open c_line_shipment;
1159 fetch c_line_shipment into l_ship_from_org_id;
1160
1161 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1162 aso_debug_pub.add('ASO_SHIPMENT_PVT.Get_ship_from_org_id: c_line_shipment: l_ship_from_org_id'||l_ship_from_org_id, 1, 'N');
1163 END IF;
1164
1165 -- Line-shipment level ship_from_org_id doesn't exist then look for header-shipment level ship_from_org_id
1166
1167 IF c_line_shipment%NOTFOUND OR l_ship_from_org_id IS NULL OR l_ship_from_org_id = FND_API.G_MISS_NUM THEN
1168 open c_header_shipment;
1169 fetch c_header_shipment into l_ship_from_org_id;
1170
1171 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1172 aso_debug_pub.add('ASO_SHIPMENT_PVT.Get_ship_from_org_id: c_header_shipment: l_ship_from_org_id'||l_ship_from_org_id, 1, 'N');
1173 END IF;
1174
1175 close c_header_shipment;
1176 END IF;
1177 close c_line_shipment;
1178 return l_ship_from_org_id;
1179 End Get_ship_from_org_id;
1180
1181
1182 FUNCTION Get_ship_method_code(p_qte_header_id NUMBER, p_qte_line_id NUMBER)
1183 RETURN VARCHAR2
1184
1185 IS
1186
1187 CURSOR c_line_shipment IS
1188 SELECT ship_method_code FROM ASO_shipments
1189 WHERE quote_line_id = p_qte_line_id
1190 AND quote_header_id = p_qte_header_id;
1191
1192
1193 CURSOR c_header_shipment IS
1194 SELECT ship_method_code FROM ASO_shipments
1195 WHERE quote_header_id = p_qte_header_id
1196 AND quote_line_id IS NULL;
1197
1198 l_ship_method_code varchar2(30) := null;
1199
1200 Begin
1201
1202 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1203 aso_debug_pub.add('ASO_SHIPMENT_PVT.Get_ship_method_code: p_qte_header_id : '||p_qte_header_id, 1, 'Y');
1204 aso_debug_pub.add('ASO_SHIPMENT_PVT.Get_ship_method_code: p_qte_line_id : '||p_qte_line_id, 1, 'Y');
1205 END IF;
1206
1207 -- Look for line-shipment level ship_method_code
1208
1209 if p_qte_line_id is not null and p_qte_header_id is not null then
1210
1211 open c_line_shipment;
1212 fetch c_line_shipment into l_ship_method_code;
1213
1214 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1215 aso_debug_pub.add('Get_ship_method_code: c_line_shipment: l_ship_method_code: '||l_ship_method_code, 1, 'N');
1216 END IF;
1217
1218 -- Line-shipment level ship_method_code doesn't exist then look for header-shipment level ship_method_code
1219
1220 IF c_line_shipment%NOTFOUND OR l_ship_method_code IS NULL THEN
1221
1222 open c_header_shipment;
1223 fetch c_header_shipment into l_ship_method_code;
1224
1225 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1226 aso_debug_pub.add('Get_ship_method_code: c_header_shipment: l_ship_method_code: '||l_ship_method_code, 1, 'N');
1227 END IF;
1228
1229 close c_header_shipment;
1230 END IF;
1231
1232 close c_line_shipment;
1233
1234 elsif p_qte_header_id is not null and p_qte_line_id is null then
1235
1236 open c_header_shipment;
1237 fetch c_header_shipment into l_ship_method_code;
1238
1239 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1240 aso_debug_pub.add('Get_ship_from_org_id: c_header_shipment: l_ship_method_code: '||l_ship_method_code, 1, 'N');
1241 END IF;
1242
1243 close c_header_shipment;
1244
1245 end if;
1246
1247 return l_ship_method_code;
1248
1249 End Get_ship_method_code;
1250
1251
1252 FUNCTION Get_demand_class_code(p_qte_header_id NUMBER, p_qte_line_id NUMBER)
1253 RETURN VARCHAR2
1254
1255 IS
1256
1257 CURSOR c_line_shipment IS
1258 SELECT demand_class_code FROM ASO_shipments
1259 WHERE quote_line_id = p_qte_line_id
1260 AND quote_header_id = p_qte_header_id;
1261
1262
1263 CURSOR c_header_shipment IS
1264 SELECT demand_class_code FROM ASO_shipments
1265 WHERE quote_header_id = p_qte_header_id
1266 AND quote_line_id IS NULL;
1267
1268 l_demand_class_code varchar2(30) := null;
1269
1270 Begin
1271
1272 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1273 aso_debug_pub.add('ASO_SHIPMENT_PVT.Get_demand_class_code: p_qte_header_id : '||p_qte_header_id, 1, 'Y');
1274 aso_debug_pub.add('ASO_SHIPMENT_PVT.Get_demand_class_code: p_qte_line_id : '||p_qte_line_id, 1, 'Y');
1275 END IF;
1276
1277 -- Look for line-shipment level demand_class_code
1278
1279 if p_qte_line_id is not null and p_qte_header_id is not null then
1280
1281 open c_line_shipment;
1282 fetch c_line_shipment into l_demand_class_code;
1283
1284 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1285 aso_debug_pub.add('Get_demand_class_code: c_line_shipment: l_demand_class_code: '||l_demand_class_code, 1, 'N');
1286 END IF;
1287
1288 -- Line-shipment level demand_class_code doesn't exist then look for header-shipment level demand_class_code
1289
1290 IF c_line_shipment%NOTFOUND OR l_demand_class_code IS NULL THEN
1291
1292 open c_header_shipment;
1293 fetch c_header_shipment into l_demand_class_code;
1294
1295 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1296 aso_debug_pub.add('Get_demand_class_code: c_header_shipment: l_demand_class_code: '||l_demand_class_code, 1, 'N');
1297 END IF;
1298
1299 close c_header_shipment;
1300 END IF;
1301
1302 close c_line_shipment;
1303
1304 elsif p_qte_header_id is not null and p_qte_line_id is null then
1305
1306 open c_header_shipment;
1307 fetch c_header_shipment into l_demand_class_code;
1308
1309 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1310 aso_debug_pub.add('Get_demand_class_code: c_header_shipment: l_demand_class_code: '||l_demand_class_code, 1, 'N');
1311 END IF;
1312
1313 close c_header_shipment;
1314
1315 end if;
1316
1317 return l_demand_class_code;
1318
1319 End Get_demand_class_code;
1320
1321
1322 FUNCTION Get_ship_to_party_site_id(p_qte_header_id NUMBER, p_qte_line_id NUMBER)
1323 RETURN NUMBER
1324
1325 IS
1326
1327 CURSOR c_line_shipment IS
1328 SELECT ship_to_party_site_id FROM ASO_shipments
1329 WHERE quote_line_id = p_qte_line_id
1330 AND quote_header_id = p_qte_header_id;
1331
1332
1333 CURSOR c_header_shipment IS
1334 SELECT ship_to_party_site_id FROM ASO_shipments
1335 WHERE quote_header_id = p_qte_header_id
1336 AND quote_line_id IS NULL;
1337
1338 l_ship_to_party_site_id number := null;
1339
1340 Begin
1341
1342 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1343 aso_debug_pub.add('ASO_SHIPMENT_PVT.Get_ship_to_party_site_id: p_qte_header_id : '||p_qte_header_id, 1, 'Y');
1344 aso_debug_pub.add('ASO_SHIPMENT_PVT.Get_ship_to_party_site_id: p_qte_line_id : '||p_qte_line_id, 1, 'Y');
1345 END IF;
1346
1347 -- Look for line-shipment level ship_to_party_site_id
1348
1349 if p_qte_line_id is not null and p_qte_header_id is not null then
1350
1351 open c_line_shipment;
1352 fetch c_line_shipment into l_ship_to_party_site_id;
1353
1354 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1355 aso_debug_pub.add('Get_ship_to_party_site_id: c_line_shipment: l_ship_to_party_site_id: '||l_ship_to_party_site_id, 1, 'N');
1356 END IF;
1357
1358 -- Line-shipment level ship_to_party_site_id doesn't exist then look for header-shipment level ship_to_party_site_id
1359
1360 IF c_line_shipment%NOTFOUND OR l_ship_to_party_site_id IS NULL THEN
1361
1362 open c_header_shipment;
1363 fetch c_header_shipment into l_ship_to_party_site_id;
1364
1365 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1366 aso_debug_pub.add('Get_ship_to_party_site_id: c_header_shipment: l_ship_to_party_site_id: '||l_ship_to_party_site_id, 1, 'N');
1367 END IF;
1368
1369 close c_header_shipment;
1370 END IF;
1371
1372 close c_line_shipment;
1373
1374 elsif p_qte_header_id is not null and p_qte_line_id is null then
1375
1376 open c_header_shipment;
1377 fetch c_header_shipment into l_ship_to_party_site_id;
1378
1379 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1380 aso_debug_pub.add('Get_ship_to_party_site_id: c_header_shipment: l_ship_to_party_site_id: '||l_ship_to_party_site_id, 1, 'N');
1381 END IF;
1382
1383 close c_header_shipment;
1384
1385 end if;
1386
1387 return l_ship_to_party_site_id;
1388
1389 End Get_ship_to_party_site_id;
1390
1391
1392 FUNCTION Get_ship_to_cust_account_id(p_qte_header_id NUMBER, p_qte_line_id NUMBER)
1393 RETURN NUMBER
1394
1395 IS
1396
1397 CURSOR c_line_shipment IS
1398 SELECT ship_to_cust_account_id FROM ASO_shipments
1399 WHERE quote_line_id = p_qte_line_id
1400 AND quote_header_id = p_qte_header_id;
1401
1402
1403 CURSOR c_header_shipment IS
1404 SELECT ship_to_cust_account_id FROM ASO_shipments
1405 WHERE quote_header_id = p_qte_header_id
1406 AND quote_line_id IS NULL;
1407
1408 l_ship_to_cust_account_id number := null;
1409
1410 Begin
1411
1412 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1413 aso_debug_pub.add('ASO_SHIPMENT_PVT.Get_ship_to_cust_account_id: p_qte_header_id : '||p_qte_header_id, 1, 'Y');
1414 aso_debug_pub.add('ASO_SHIPMENT_PVT.Get_ship_to_cust_account_id: p_qte_line_id : '||p_qte_line_id, 1, 'Y');
1415 END IF;
1416
1417 -- Look for line-shipment level ship_to_cust_account_id
1418
1419 if p_qte_line_id is not null and p_qte_header_id is not null then
1420
1421 open c_line_shipment;
1422 fetch c_line_shipment into l_ship_to_cust_account_id;
1423
1424 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1425 aso_debug_pub.add('Get_ship_to_party_site_id: c_line_shipment: l_ship_to_cust_account_id: '||l_ship_to_cust_account_id, 1, 'N');
1426 END IF;
1427
1428 -- Line-shipment level ship_to_cust_account_id doesn't exist then look for header-shipment level ship_to_cust_account_id
1429
1430 IF c_line_shipment%NOTFOUND OR l_ship_to_cust_account_id IS NULL THEN
1431
1432 open c_header_shipment;
1433 fetch c_header_shipment into l_ship_to_cust_account_id;
1434
1435 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1436 aso_debug_pub.add('Get_ship_to_cust_account_id: c_header_shipment: l_ship_to_cust_account_id: '||l_ship_to_cust_account_id, 1, 'N');
1437 END IF;
1438
1439 close c_header_shipment;
1440 END IF;
1441
1442 close c_line_shipment;
1443
1444 elsif p_qte_header_id is not null and p_qte_line_id is null then
1445
1446 open c_header_shipment;
1447 fetch c_header_shipment into l_ship_to_cust_account_id;
1448
1449 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1450 aso_debug_pub.add('Get_ship_to_cust_account_id: c_header_shipment: l_ship_to_cust_account_id: '||l_ship_to_cust_account_id, 1, 'N');
1451 END IF;
1452
1453 close c_header_shipment;
1454
1455 end if;
1456
1457 return l_ship_to_cust_account_id;
1458
1459 End Get_ship_to_cust_account_id;
1460
1461 END ASO_SHIPMENT_PVT;