1 PACKAGE BODY ASO_SHIPMENT_PVT as
2 /* $Header: asovshpb.pls 120.3 2006/10/25 18:04:21 skulkarn 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 -- performance fix for bug 5596369
478 CURSOR c_ship_site2 IS
479 SELECT ship_to_party_site_id , SHIP_TO_CUST_ACCOUNT_ID
480 FROM ASO_SHIPMENTS
481 WHERE quote_header_id = p_qte_header_id
482 and shipment_id =p_shipment_id
483 AND quote_line_id IS NULL;
484
485
486 l_ship_site_id NUMBER;
487 l_ship_cust_acct_id NUMBER;
488 l_ship_site_use_id NUMBER;
489 CURSOR c_cust_id IS
490 SELECT cust_account_id FROM ASO_QUOTE_HEADERS_ALL
491 WHERE quote_header_id = p_qte_header_id;
492
493 CURSOR c_ship_cust_id IS
494 SELECT SHIP_TO_CUST_ACCOUNT_ID FROM ASO_SHIPMENTS
495 WHERE quote_header_id = p_qte_header_id and quote_line_id =p_qte_line_id and shipment_id =p_shipment_id;
496
497
498 -- bug 5596369
499 CURSOR c_ship_cust_id1 IS
500 SELECT SHIP_TO_CUST_ACCOUNT_ID
501 FROM ASO_SHIPMENTS
502 WHERE quote_header_id = p_qte_header_id
503 and shipment_id =p_shipment_id
504 and quote_line_id IS NULL;
505
506 CURSOR C_site_use(l_cust_id NUMBER, l_ship_site_id NUMBER) IS
507 SELECT site_use_id
508 FROM hz_cust_site_uses b,hz_cust_acct_sites a
509 WHERE b.cust_acct_site_id = a.cust_acct_site_id
510 AND b.site_use_code = 'SHIP_TO' --and b.primary_flag = 'Y'
511 AND a.party_site_id = l_ship_site_id
512 AND a.cust_account_id = l_cust_id;
513
514 cursor c_root_model_line_id is
515 select quote_line_id
516 from aso_quote_line_details
517 where (config_header_id, config_revision_num) = (select config_header_id,config_revision_num
518 from aso_quote_line_details
519 where quote_line_id = p_qte_line_id)
520 and ref_type_code = 'CONFIG'
521 and ref_line_id is null;
522
523 cursor c_item_type_code is
524 select item_type_code
525 from aso_quote_lines_all
526 where quote_line_id = p_qte_line_id;
527
528 cursor c_shipment_id (p_line_id NUMBER) is
529 select shipment_id
530 from aso_shipments
531 where quote_line_id = p_line_id
532 and quote_header_id = p_qte_header_id;
533
534 l_cust_id NUMBER;
535 l_inv_cust_id NUMBER;
536 l_return_status VARCHAR2(1);
537 l_msg_count number;
538 l_msg_data VARCHAR2(2000);
539
540 l_item_type_code VARCHAR2(30);
541 l_model_quote_line_id NUMBER;
542 l_model_shipment_id NUMBER;
543
544 BEGIN
545 IF aso_debug_pub.g_debug_flag = 'Y' THEN
546 aso_debug_pub.add('ASO_SHIPMENT_PVT:p_qte_header_id ' || p_qte_header_id, 1, 'N');
547 aso_debug_pub.add('ASO_SHIPMENT_PVT:quote_line_id ' || p_qte_line_id, 1, 'N');
548 aso_debug_pub.add('ASO_SHIPMENT_PVT:shipment_id ' || p_shipment_id, 1, 'N');
549 END IF;
550
551 OPEN c_ship_site1;
552 FETCH c_ship_site1 INTO l_ship_site_id, l_ship_cust_acct_id;
553
554 IF aso_debug_pub.g_debug_flag = 'Y' THEN
555 aso_debug_pub.add('ASO_SHIPMENT_PVT:c_ship_site1 l_ship_site_id ' || l_ship_site_id, 1, 'N');
556 aso_debug_pub.add('ASO_SHIPMENT_PVT:c_ship_site1 l_ship_cust_acct_id ' || l_ship_cust_acct_id, 1, 'N');
557 END IF;
558
559 IF c_ship_site1%FOUND and l_ship_site_id IS NOT NULL and l_ship_site_id <> FND_API.G_MISS_NUM THEN
560
561 CLOSE c_ship_site1;
562
563 --Get the ship_to_cust_account if present
564 OPEN c_ship_cust_id;
565 FETCH c_ship_cust_id into l_cust_id;
566
567 IF aso_debug_pub.g_debug_flag = 'Y' THEN
568 aso_debug_pub.add('ASO_SHIPMENT_PVT:c_ship_cust_id l_cust_id ' || l_cust_id, 1, 'N');
569 END IF;
570
571 IF c_ship_cust_id%NOTFOUND or l_cust_id IS NULL or l_cust_id = FND_API.G_MISS_NUM THEN
572
573 CLOSE c_ship_cust_id;
574
575 OPEN c_ship_cust_id1;
576 FETCH c_ship_cust_id1 into l_cust_id;
577
578 IF aso_debug_pub.g_debug_flag = 'Y' THEN
579 aso_debug_pub.add('ASO_SHIPMENT_PVT:c_ship_cust_id1 l_cust_id ' || l_cust_id, 1, 'N');
580 END IF;
581
582 IF c_ship_cust_id1%NOTFOUND or l_cust_id IS NULL or l_cust_id = FND_API.G_MISS_NUM THEN
583
584 CLOSE c_ship_cust_id1;
585
586 -- Get the Customer Account from the header
587 OPEN c_cust_id;
588 FETCH c_cust_id INTO l_cust_id;
589 CLOSE c_cust_id;
590
591 IF aso_debug_pub.g_debug_flag = 'Y' THEN
592 aso_debug_pub.add('ASO_SHIPMENT_PVT:c_cust_id l_cust_id ' || l_cust_id, 1, 'N');
593 END IF;
594
595 OPEN C_site_use(l_cust_id , l_ship_site_id);
596 FETCH C_site_use into l_ship_site_use_id;
597
598 IF aso_debug_pub.g_debug_flag = 'Y' THEN
599 aso_debug_pub.add('ASO_SHIPMENT_PVT:C_site_use1 l_ship_site_use_id ' || l_ship_site_use_id, 1, 'N');
600 END IF;
601 CLOSE C_site_use;
602
603 return l_ship_site_use_id;
604
605 END IF;
606
607 CLOSE c_ship_cust_id1;
608
609 OPEN C_site_use(l_cust_id , l_ship_site_id);
610 FETCH C_site_use into l_ship_site_use_id;
611
612 IF aso_debug_pub.g_debug_flag = 'Y' THEN
613 aso_debug_pub.add('ASO_SHIPMENT_PVT:C_site_use2 l_ship_site_use_id ' || l_ship_site_use_id, 1, 'N');
614 END IF;
615 CLOSE C_site_use;
616
617 return l_ship_site_use_id;
618
619 END IF;
620
621 CLOSE c_ship_cust_id;
622
623
624 --Get the site use id from the HZ_cust_site_uses
625
626 OPEN C_site_use(l_cust_id , l_ship_site_id);
627 FETCH C_site_use into l_ship_site_use_id;
628
629 IF aso_debug_pub.g_debug_flag = 'Y' THEN
630 aso_debug_pub.add('ASO_SHIPMENT_PVT:C_site_use3 l_ship_site_use_id ' || l_ship_site_use_id, 1, 'N');
631 END IF;
632 CLOSE C_site_use;
633
634 return l_ship_site_use_id;
635
636 ELSE
637
638 CLOSE c_ship_site1;
639
640 open c_item_type_code;
641 fetch c_item_type_code into l_item_type_code;
642
643 IF aso_debug_pub.g_debug_flag = 'Y' THEN
644 aso_debug_pub.add('Get_Ship_To_site_Id: c_item_type_code: l_item_type_code: '||l_item_type_code);
645 END IF;
646
647 IF c_item_type_code%FOUND and l_item_type_code = 'CFG' THEN
648
649 close c_item_type_code;
650
651 open c_root_model_line_id;
652 fetch c_root_model_line_id into l_model_quote_line_id;
653
654 IF aso_debug_pub.g_debug_flag = 'Y' THEN
655 aso_debug_pub.add('Get_Ship_To_site_Id: c_root_model_line_id: l_model_quote_line_id: '||l_model_quote_line_id);
656 END IF;
657
658 IF c_root_model_line_id%FOUND and l_model_quote_line_id is not null THEN
659
660 close c_root_model_line_id;
661
662 open c_shipment_id(l_model_quote_line_id);
663 fetch c_shipment_id into l_model_shipment_id;
664
665 IF aso_debug_pub.g_debug_flag = 'Y' THEN
666 aso_debug_pub.add('Get_Ship_To_site_Id: c_shipment_id: l_model_shipment_id: '||l_model_shipment_id);
667 END IF;
668
669 IF c_shipment_id%FOUND and l_model_shipment_id is not null THEN
670
671 close c_shipment_id;
672
673 l_ship_site_use_id := Get_Ship_To_site_Id(p_qte_header_id, l_model_quote_line_id, l_model_shipment_id);
674 IF aso_debug_pub.g_debug_flag = 'Y' THEN
675 aso_debug_pub.add('Get_Ship_To_site_Id: l_ship_site_use_id: '||l_ship_site_use_id);
676 END IF;
677
678 return l_ship_site_use_id;
679
680 END IF; --c_shipment_id
681
682 close c_shipment_id;
683
684 END IF; --c_root_model_line_id
685
686 close c_root_model_line_id;
687
688 END IF; --c_item_type_code
689
690 close c_item_type_code;
691
692 END IF; --c_ship_site1
693
694
695 OPEN c_ship_site2;
696 FETCH c_ship_site2 INTO l_ship_site_id, l_ship_cust_acct_id;
697
698 IF aso_debug_pub.g_debug_flag = 'Y' THEN
699 aso_debug_pub.add('ASO_SHIPMENT_PVT:c_ship_site2 l_ship_site_id ' || l_ship_site_id, 1, 'N');
700 aso_debug_pub.add('ASO_SHIPMENT_PVT:c_ship_site2 l_ship_cust_acct_id ' || l_ship_cust_acct_id, 1, 'N');
701 END IF;
702
703 IF c_ship_site2%FOUND AND l_ship_site_id IS NOT NULL and l_ship_site_id <> FND_API.G_MISS_NUM THEN
704
705 CLOSE c_ship_site2;
706 --Get the ship_to_cust_account if present
707 OPEN c_ship_cust_id;
708 FETCH c_ship_cust_id into l_cust_id;
709
710 IF aso_debug_pub.g_debug_flag = 'Y' THEN
711 aso_debug_pub.add('ASO_SHIPMENT_PVT:c_ship_cust_id l_cust_id ' || l_cust_id, 1, 'N');
712 END IF;
713
714 IF c_ship_cust_id%NOTFOUND or l_cust_id IS NULL or l_cust_id = FND_API.G_MISS_NUM THEN
715
716 CLOSE c_ship_cust_id;
717 OPEN c_ship_cust_id1;
718
719 FETCH c_ship_cust_id1 into l_cust_id;
720
721 IF aso_debug_pub.g_debug_flag = 'Y' THEN
722 aso_debug_pub.add('ASO_SHIPMENT_PVT:c_ship_cust_id1 l_cust_id ' || l_cust_id, 1, 'N');
723 END IF;
724
725 IF c_ship_cust_id1%NOTFOUND or l_cust_id IS NULL or l_cust_id = FND_API.G_MISS_NUM THEN
726
727 CLOSE c_ship_cust_id1;
728 --Get the Customer Account from the header
729 OPEN c_cust_id;
730 FETCH c_cust_id INTO l_cust_id;
731 CLOSE c_cust_id;
732
733 IF aso_debug_pub.g_debug_flag = 'Y' THEN
734 aso_debug_pub.add('ASO_SHIPMENT_PVT:c_cust_id l_cust_id ' || l_cust_id, 1, 'N');
735 END IF;
736
737 OPEN C_site_use(l_cust_id , l_ship_site_id);
738 FETCH C_site_use into l_ship_site_use_id;
739
740 IF aso_debug_pub.g_debug_flag = 'Y' THEN
741 aso_debug_pub.add('ASO_SHIPMENT_PVT:C_site_use4 l_ship_site_use_id ' || l_ship_site_use_id, 1, 'N');
742 END IF;
743
744 CLOSE C_site_use;
745 return l_ship_site_use_id;
746
747 END IF;
748
749 CLOSE c_ship_cust_id1;
750
751 OPEN C_site_use(l_cust_id , l_ship_site_id);
752 FETCH C_site_use into l_ship_site_use_id;
753
754 IF aso_debug_pub.g_debug_flag = 'Y' THEN
755 aso_debug_pub.add('ASO_SHIPMENT_PVT:C_site_use5 l_ship_site_use_id ' || l_ship_site_use_id, 1, 'N');
756 END IF;
757
758 CLOSE C_site_use;
759 return l_ship_site_use_id;
760
761 END IF;
762 CLOSE c_ship_cust_id;
763
764 --Get the site use id from the HZ_cust_site_uses
765
766 OPEN C_site_use(l_cust_id , l_ship_site_id);
767 FETCH C_site_use into l_ship_site_use_id;
768
769 IF aso_debug_pub.g_debug_flag = 'Y' THEN
770 aso_debug_pub.add('ASO_SHIPMENT_PVT:C_site_use6 l_ship_site_use_id ' || l_ship_site_use_id, 1, 'N');
771 END IF;
772 CLOSE C_site_use;
773
774 return l_ship_site_use_id;
775
776 END IF;
777
778 CLOSE c_ship_site2;
779
780 return l_ship_site_use_id;
781
782 END Get_Ship_To_site_Id;
783
784
785 FUNCTION Get_Ship_To_party_site_Id (
786 p_qte_header_id NUMBER,
787 p_qte_line_id NUMBER,
788 p_shipment_id NUMBER) RETURN NUMBER
789 IS
790 CURSOR c_ship_site1 IS
791 SELECT ship_to_party_site_id FROM ASO_SHIPMENTS
792 WHERE shipment_id = p_shipment_id
793 AND quote_line_id = p_qte_line_id
794 AND quote_header_id = p_qte_header_id;
795
796 CURSOR c_ship_site2 IS
797 SELECT ship_to_party_site_id FROM ASO_SHIPMENTS
798 WHERE quote_line_id IS NULL AND quote_header_id = p_qte_header_id;
799
800 l_ship_site_id NUMBER;
801
802 cursor c_root_model_line_id is
803 select quote_line_id
804 from aso_quote_line_details
805 where (config_header_id, config_revision_num) = (select config_header_id,config_revision_num
806 from aso_quote_line_details
807 where quote_line_id = p_qte_line_id)
808 and ref_type_code = 'CONFIG'
809 and ref_line_id is null;
810
811 cursor c_item_type_code is
812 select item_type_code
813 from aso_quote_lines_all
814 where quote_line_id = p_qte_line_id;
815
816 cursor c_shipment_id (p_line_id NUMBER) is
817 select shipment_id
818 from aso_shipments
819 where quote_line_id = p_line_id
820 and quote_header_id = p_qte_header_id;
821
822 l_model_quote_line_id NUMBER;
823 l_item_type_code VARCHAR2(30);
824 l_model_shipment_id NUMBER;
825
826 BEGIN
827
828 OPEN c_ship_site1;
829 FETCH c_ship_site1 INTO l_ship_site_id;
830
831 IF c_ship_site1%FOUND and l_ship_site_id IS NOT NULL and l_ship_site_id <> FND_API.G_MISS_NUM THEN
832
833 CLOSE c_ship_site1;
834 return l_ship_site_id;
835
836 ELSE
837
838 CLOSE c_ship_site1;
839
840 open c_item_type_code;
841 fetch c_item_type_code into l_item_type_code;
842
843 IF aso_debug_pub.g_debug_flag = 'Y' THEN
844 aso_debug_pub.add('Get_Ship_To_party_site_Id: c_item_type_code: l_item_type_code: '||l_item_type_code);
845 END IF;
846
847 IF c_item_type_code%FOUND and l_item_type_code = 'CFG' THEN
848
849 close c_item_type_code;
850
851 open c_root_model_line_id;
852 fetch c_root_model_line_id into l_model_quote_line_id;
853
854 IF aso_debug_pub.g_debug_flag = 'Y' THEN
855 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);
856 END IF;
857
858 IF c_root_model_line_id%FOUND and l_model_quote_line_id is not null THEN
859
860 close c_root_model_line_id;
861
862 open c_shipment_id(l_model_quote_line_id);
863 fetch c_shipment_id into l_model_shipment_id;
864
865 IF aso_debug_pub.g_debug_flag = 'Y' THEN
866 aso_debug_pub.add('Get_Ship_To_party_site_Id: c_shipment_id: l_model_shipment_id: '||l_model_shipment_id);
867 END IF;
868
869 IF c_shipment_id%FOUND and l_model_shipment_id is not null THEN
870
871 close c_shipment_id;
872
873 l_ship_site_id := Get_Ship_To_party_site_Id(p_qte_header_id, l_model_quote_line_id, l_model_shipment_id);
874
875 IF aso_debug_pub.g_debug_flag = 'Y' THEN
876 aso_debug_pub.add('Get_Ship_To_party_site_Id: l_ship_site_id: '||l_ship_site_id);
877 END IF;
878
879 return l_ship_site_id;
880
881 END IF; --c_shipment_id
882
883 close c_shipment_id;
884
885 END IF; --c_root_model_line_id
886
887 close c_root_model_line_id;
888
889 END IF; --c_item_type_code
890
891 END IF; --c_ship_site1
892
893
894 OPEN c_ship_site2;
895 FETCH c_ship_site2 INTO l_ship_site_id;
896
897 IF c_ship_site2%FOUND and l_ship_site_id IS NOT NULL and l_ship_site_id <> FND_API.G_MISS_NUM THEN
898
899 CLOSE c_ship_site2;
900 return l_ship_site_id;
901
902 END IF; --c_ship_site2
903
904 return l_ship_site_id;
905
906 END Get_Ship_To_party_site_Id;
907
908
909 FUNCTION Get_party_name (
910 p_party_id NUMBER,
911 p_party_type VARCHAR2
912 ) RETURN VARCHAR2
913 IS
914 CURSOR C1 IS
915 select HP.party_id,HP.party_name
916 from hz_relationships HPR,hz_parties HP where hpr.party_id = p_party_id
917 and hp.party_id=HPR.object_id
918 and SUBJECT_TABLE_NAME(+) = 'HZ_PARTIES'
919 and OBJECT_TABLE_NAME(+) = 'HZ_PARTIES';
920
921 CURSOR C2 IS
922 select party_id,party_name
923 from hz_parties HP where party_id = p_party_id;
924 l_party_name VARCHAR2(360);
925 l_party_id NUMBER;
926 BEGIN
927 IF p_party_type = 'PARTY_RELATIONSHIP' THEN
928 OPEN C1;
929 FETCH C1 INTO l_party_id,l_party_name;
930 IF C1%NOTFOUND OR l_party_name IS NULL THEN
931 CLOSE C1;
932 l_party_name := NULL;
933 RETURN l_party_name;
934 END IF;
935 CLOSE C1;
936 RETURN l_party_name;
937 ELSE
938 OPEN C2;
939 FETCH C2 INTO l_party_id,l_party_name;
940 IF C2%NOTFOUND OR l_party_name IS NULL THEN
941 CLOSE C2;
942 l_party_name := NULL;
943 RETURN l_party_name;
944 END IF;
945 CLOSE C2;
946 RETURN l_party_name;
947 END IF;
948 END Get_party_name;
949
950
951 FUNCTION Get_party_first_name (
952 p_party_id NUMBER,
953 p_party_type VARCHAR2
954 ) RETURN VARCHAR2
955 IS
956 CURSOR C1 IS
957 select HP.party_id,HP.person_first_name
958 from hz_relationships HPR,hz_parties HP where hpr.party_id = p_party_id
959 and hp.party_id=HPR.subject_id
960 and SUBJECT_TABLE_NAME(+) = 'HZ_PARTIES'
961 and OBJECT_TABLE_NAME(+) = 'HZ_PARTIES';
962
963 CURSOR C2 IS
964 select party_id,person_first_name
965 from hz_parties HP where party_id = p_party_id;
966 l_f_party_name VARCHAR2(150);
967 l_party_id NUMBER;
968 BEGIN
969 IF p_party_type = 'PARTY_RELATIONSHIP' THEN
970 OPEN C1;
971 FETCH C1 INTO l_party_id,l_f_party_name;
972 IF C1%NOTFOUND OR l_f_party_name IS NULL THEN
973 CLOSE C1;
974 l_f_party_name := NULL;
975 RETURN l_f_party_name;
976 END IF;
977 CLOSE C1;
978 RETURN l_f_party_name;
979 ELSE
980 OPEN C2;
981 FETCH C2 INTO l_party_id,l_f_party_name;
982 IF C2%NOTFOUND OR l_f_party_name IS NULL THEN
983 CLOSE C2;
984 l_f_party_name := NULL;
985 RETURN l_f_party_name;
986 END IF;
987 CLOSE C2;
988 RETURN l_f_party_name;
989 END IF;
990 END Get_party_first_name;
991
992
993 FUNCTION Get_party_mid_name (
994 p_party_id NUMBER,
995 p_party_type VARCHAR2
996 ) RETURN VARCHAR2
997 IS
998 CURSOR C1 IS
999 select HP.party_id,HP.person_middle_name
1000 from hz_relationships HPR,hz_parties HP where hpr.party_id = p_party_id
1001 and hp.party_id=HPR.subject_id
1002 and SUBJECT_TABLE_NAME(+) = 'HZ_PARTIES'
1003 and OBJECT_TABLE_NAME(+) = 'HZ_PARTIES';
1004
1005 CURSOR C2 IS
1006 select party_id,person_middle_name
1007 from hz_parties HP where party_id = p_party_id;
1008 l_m_party_name VARCHAR2(60);
1009 l_party_id NUMBER;
1010 BEGIN
1011 IF p_party_type = 'PARTY_RELATIONSHIP' THEN
1012 OPEN C1;
1013 FETCH C1 INTO l_party_id,l_m_party_name;
1014 IF C1%NOTFOUND OR l_m_party_name IS NULL THEN
1015 CLOSE C1;
1016 l_m_party_name := NULL;
1017 RETURN l_m_party_name;
1018 END IF;
1019 CLOSE C1;
1020 RETURN l_m_party_name;
1021 ELSE
1022 OPEN C2;
1023 FETCH C2 INTO l_party_id,l_m_party_name;
1024 IF C2%NOTFOUND OR l_m_party_name IS NULL THEN
1025 CLOSE C2;
1026 l_m_party_name := NULL;
1027 RETURN l_m_party_name;
1028 END IF;
1029 CLOSE C2;
1030 RETURN l_m_party_name;
1031 END IF;
1032 END Get_party_mid_name;
1033 FUNCTION Get_party_last_name (
1034 p_party_id NUMBER,
1035 p_party_type VARCHAR2
1036 ) RETURN VARCHAR2
1037 IS
1038 CURSOR C1 IS
1039 select HP.party_id,HP.person_last_name
1040 from hz_relationships HPR,hz_parties HP where hpr.party_id = p_party_id
1041 and hp.party_id=HPR.subject_id
1042 and SUBJECT_TABLE_NAME(+) = 'HZ_PARTIES'
1043 and OBJECT_TABLE_NAME(+) = 'HZ_PARTIES';
1044
1045 CURSOR C2 IS
1046 select party_id,person_last_name
1047 from hz_parties HP where party_id = p_party_id;
1048 l_l_party_name VARCHAR2(150);
1049 l_party_id NUMBER;
1050 BEGIN
1051 IF p_party_type = 'PARTY_RELATIONSHIP' THEN
1052 OPEN C1;
1053 FETCH C1 INTO l_party_id,l_l_party_name;
1054 IF C1%NOTFOUND OR l_l_party_name IS NULL THEN
1055 CLOSE C1;
1056 l_l_party_name := NULL;
1057 RETURN l_l_party_name;
1058 END IF;
1059 CLOSE C1;
1060 RETURN l_l_party_name;
1061 ELSE
1062 OPEN C2;
1063 FETCH C2 INTO l_party_id,l_l_party_name;
1064 IF C2%NOTFOUND OR l_l_party_name IS NULL THEN
1065 CLOSE C2;
1066 l_l_party_name := NULL;
1067 RETURN l_l_party_name;
1068 END IF;
1069 CLOSE C2;
1070 RETURN l_l_party_name;
1071 END IF;
1072 END Get_party_last_name;
1073
1074
1075 FUNCTION Get_ship_from_org_id (
1076 p_qte_header_id NUMBER,
1077 p_qte_line_id NUMBER
1078 ) RETURN NUMBER
1079
1080 IS
1081
1082 CURSOR c_line_shipment IS
1083 SELECT ship_from_org_id FROM ASO_shipments
1084 WHERE quote_line_id = p_qte_line_id
1085 AND quote_header_id = p_qte_header_id;
1086
1087
1088 CURSOR c_header_shipment IS
1089 SELECT ship_from_org_id FROM ASO_shipments
1090 WHERE quote_header_id = p_qte_header_id
1091 AND quote_line_id IS NULL;
1092
1093 l_ship_from_org_id NUMBER;
1094
1095
1096 Begin
1097 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1098 aso_debug_pub.add('ASO_SHIPMENT_PVT.Get_ship_from_org_id: p_qte_header_id :'||p_qte_header_id, 1, 'N');
1099 aso_debug_pub.add('ASO_SHIPMENT_PVT.Get_ship_from_org_id: p_qte_line_id :'||p_qte_line_id, 1, 'N');
1100 END IF;
1101
1102 -- Look for line-shipment level ship_from_org_id
1103
1104 open c_line_shipment;
1105 fetch c_line_shipment into l_ship_from_org_id;
1106
1107 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1108 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');
1109 END IF;
1110
1111 -- Line-shipment level ship_from_org_id doesn't exist then look for header-shipment level ship_from_org_id
1112
1113 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
1114 open c_header_shipment;
1115 fetch c_header_shipment into l_ship_from_org_id;
1116
1117 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1118 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');
1119 END IF;
1120
1121 close c_header_shipment;
1122 END IF;
1123 close c_line_shipment;
1124 return l_ship_from_org_id;
1125 End Get_ship_from_org_id;
1126
1127
1128 FUNCTION Get_ship_method_code(p_qte_header_id NUMBER, p_qte_line_id NUMBER)
1129 RETURN VARCHAR2
1130
1131 IS
1132
1133 CURSOR c_line_shipment IS
1134 SELECT ship_method_code FROM ASO_shipments
1135 WHERE quote_line_id = p_qte_line_id
1136 AND quote_header_id = p_qte_header_id;
1137
1138
1139 CURSOR c_header_shipment IS
1140 SELECT ship_method_code FROM ASO_shipments
1141 WHERE quote_header_id = p_qte_header_id
1142 AND quote_line_id IS NULL;
1143
1144 l_ship_method_code varchar2(30) := null;
1145
1146 Begin
1147
1148 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1149 aso_debug_pub.add('ASO_SHIPMENT_PVT.Get_ship_method_code: p_qte_header_id : '||p_qte_header_id, 1, 'Y');
1150 aso_debug_pub.add('ASO_SHIPMENT_PVT.Get_ship_method_code: p_qte_line_id : '||p_qte_line_id, 1, 'Y');
1151 END IF;
1152
1153 -- Look for line-shipment level ship_method_code
1154
1155 if p_qte_line_id is not null and p_qte_header_id is not null then
1156
1157 open c_line_shipment;
1158 fetch c_line_shipment into l_ship_method_code;
1159
1160 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1161 aso_debug_pub.add('Get_ship_method_code: c_line_shipment: l_ship_method_code: '||l_ship_method_code, 1, 'N');
1162 END IF;
1163
1164 -- Line-shipment level ship_method_code doesn't exist then look for header-shipment level ship_method_code
1165
1166 IF c_line_shipment%NOTFOUND OR l_ship_method_code IS NULL THEN
1167
1168 open c_header_shipment;
1169 fetch c_header_shipment into l_ship_method_code;
1170
1171 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1172 aso_debug_pub.add('Get_ship_method_code: c_header_shipment: l_ship_method_code: '||l_ship_method_code, 1, 'N');
1173 END IF;
1174
1175 close c_header_shipment;
1176 END IF;
1177
1178 close c_line_shipment;
1179
1180 elsif p_qte_header_id is not null and p_qte_line_id is null then
1181
1182 open c_header_shipment;
1183 fetch c_header_shipment into l_ship_method_code;
1184
1185 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1186 aso_debug_pub.add('Get_ship_from_org_id: c_header_shipment: l_ship_method_code: '||l_ship_method_code, 1, 'N');
1187 END IF;
1188
1189 close c_header_shipment;
1190
1191 end if;
1192
1193 return l_ship_method_code;
1194
1195 End Get_ship_method_code;
1196
1197
1198 FUNCTION Get_demand_class_code(p_qte_header_id NUMBER, p_qte_line_id NUMBER)
1199 RETURN VARCHAR2
1200
1201 IS
1202
1203 CURSOR c_line_shipment IS
1204 SELECT demand_class_code FROM ASO_shipments
1205 WHERE quote_line_id = p_qte_line_id
1206 AND quote_header_id = p_qte_header_id;
1207
1208
1209 CURSOR c_header_shipment IS
1210 SELECT demand_class_code FROM ASO_shipments
1211 WHERE quote_header_id = p_qte_header_id
1212 AND quote_line_id IS NULL;
1213
1214 l_demand_class_code varchar2(30) := null;
1215
1216 Begin
1217
1218 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1219 aso_debug_pub.add('ASO_SHIPMENT_PVT.Get_demand_class_code: p_qte_header_id : '||p_qte_header_id, 1, 'Y');
1220 aso_debug_pub.add('ASO_SHIPMENT_PVT.Get_demand_class_code: p_qte_line_id : '||p_qte_line_id, 1, 'Y');
1221 END IF;
1222
1223 -- Look for line-shipment level demand_class_code
1224
1225 if p_qte_line_id is not null and p_qte_header_id is not null then
1226
1227 open c_line_shipment;
1228 fetch c_line_shipment into l_demand_class_code;
1229
1230 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1231 aso_debug_pub.add('Get_demand_class_code: c_line_shipment: l_demand_class_code: '||l_demand_class_code, 1, 'N');
1232 END IF;
1233
1234 -- Line-shipment level demand_class_code doesn't exist then look for header-shipment level demand_class_code
1235
1236 IF c_line_shipment%NOTFOUND OR l_demand_class_code IS NULL THEN
1237
1238 open c_header_shipment;
1239 fetch c_header_shipment into l_demand_class_code;
1240
1241 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1242 aso_debug_pub.add('Get_demand_class_code: c_header_shipment: l_demand_class_code: '||l_demand_class_code, 1, 'N');
1243 END IF;
1244
1245 close c_header_shipment;
1246 END IF;
1247
1248 close c_line_shipment;
1249
1250 elsif p_qte_header_id is not null and p_qte_line_id is null then
1251
1252 open c_header_shipment;
1253 fetch c_header_shipment into l_demand_class_code;
1254
1255 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1256 aso_debug_pub.add('Get_demand_class_code: c_header_shipment: l_demand_class_code: '||l_demand_class_code, 1, 'N');
1257 END IF;
1258
1259 close c_header_shipment;
1260
1261 end if;
1262
1263 return l_demand_class_code;
1264
1265 End Get_demand_class_code;
1266
1267
1268 FUNCTION Get_ship_to_party_site_id(p_qte_header_id NUMBER, p_qte_line_id NUMBER)
1269 RETURN NUMBER
1270
1271 IS
1272
1273 CURSOR c_line_shipment IS
1274 SELECT ship_to_party_site_id FROM ASO_shipments
1275 WHERE quote_line_id = p_qte_line_id
1276 AND quote_header_id = p_qte_header_id;
1277
1278
1279 CURSOR c_header_shipment IS
1280 SELECT ship_to_party_site_id FROM ASO_shipments
1281 WHERE quote_header_id = p_qte_header_id
1282 AND quote_line_id IS NULL;
1283
1284 l_ship_to_party_site_id number := null;
1285
1286 Begin
1287
1288 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1289 aso_debug_pub.add('ASO_SHIPMENT_PVT.Get_ship_to_party_site_id: p_qte_header_id : '||p_qte_header_id, 1, 'Y');
1290 aso_debug_pub.add('ASO_SHIPMENT_PVT.Get_ship_to_party_site_id: p_qte_line_id : '||p_qte_line_id, 1, 'Y');
1291 END IF;
1292
1293 -- Look for line-shipment level ship_to_party_site_id
1294
1295 if p_qte_line_id is not null and p_qte_header_id is not null then
1296
1297 open c_line_shipment;
1298 fetch c_line_shipment into l_ship_to_party_site_id;
1299
1300 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1301 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');
1302 END IF;
1303
1304 -- Line-shipment level ship_to_party_site_id doesn't exist then look for header-shipment level ship_to_party_site_id
1305
1306 IF c_line_shipment%NOTFOUND OR l_ship_to_party_site_id IS NULL THEN
1307
1308 open c_header_shipment;
1309 fetch c_header_shipment into l_ship_to_party_site_id;
1310
1311 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1312 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');
1313 END IF;
1314
1315 close c_header_shipment;
1316 END IF;
1317
1318 close c_line_shipment;
1319
1320 elsif p_qte_header_id is not null and p_qte_line_id is null then
1321
1322 open c_header_shipment;
1323 fetch c_header_shipment into l_ship_to_party_site_id;
1324
1325 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1326 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');
1327 END IF;
1328
1329 close c_header_shipment;
1330
1331 end if;
1332
1333 return l_ship_to_party_site_id;
1334
1335 End Get_ship_to_party_site_id;
1336
1337
1338 FUNCTION Get_ship_to_cust_account_id(p_qte_header_id NUMBER, p_qte_line_id NUMBER)
1339 RETURN NUMBER
1340
1341 IS
1342
1343 CURSOR c_line_shipment IS
1344 SELECT ship_to_cust_account_id FROM ASO_shipments
1345 WHERE quote_line_id = p_qte_line_id
1346 AND quote_header_id = p_qte_header_id;
1347
1348
1349 CURSOR c_header_shipment IS
1350 SELECT ship_to_cust_account_id FROM ASO_shipments
1351 WHERE quote_header_id = p_qte_header_id
1352 AND quote_line_id IS NULL;
1353
1354 l_ship_to_cust_account_id number := null;
1355
1356 Begin
1357
1358 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1359 aso_debug_pub.add('ASO_SHIPMENT_PVT.Get_ship_to_cust_account_id: p_qte_header_id : '||p_qte_header_id, 1, 'Y');
1360 aso_debug_pub.add('ASO_SHIPMENT_PVT.Get_ship_to_cust_account_id: p_qte_line_id : '||p_qte_line_id, 1, 'Y');
1361 END IF;
1362
1363 -- Look for line-shipment level ship_to_cust_account_id
1364
1365 if p_qte_line_id is not null and p_qte_header_id is not null then
1366
1367 open c_line_shipment;
1368 fetch c_line_shipment into l_ship_to_cust_account_id;
1369
1370 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1371 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');
1372 END IF;
1373
1374 -- Line-shipment level ship_to_cust_account_id doesn't exist then look for header-shipment level ship_to_cust_account_id
1375
1376 IF c_line_shipment%NOTFOUND OR l_ship_to_cust_account_id IS NULL THEN
1377
1378 open c_header_shipment;
1379 fetch c_header_shipment into l_ship_to_cust_account_id;
1380
1381 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1382 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');
1383 END IF;
1384
1385 close c_header_shipment;
1386 END IF;
1387
1388 close c_line_shipment;
1389
1390 elsif p_qte_header_id is not null and p_qte_line_id is null then
1391
1392 open c_header_shipment;
1393 fetch c_header_shipment into l_ship_to_cust_account_id;
1394
1395 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1396 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');
1397 END IF;
1398
1399 close c_header_shipment;
1400
1401 end if;
1402
1403 return l_ship_to_cust_account_id;
1404
1405 End Get_ship_to_cust_account_id;
1406
1407 END ASO_SHIPMENT_PVT;