1 PACKAGE BODY ASO_VALIDATE_PVT as
2 /* $Header: asovvldb.pls 120.30.12000000.2 2007/01/30 20:20:08 pkoka ship $ */
3
4 -- Start of Comments
5 -- Package name : ASO_VALIDATE_PVT
6 -- Purpose :
7 --
8 -- History :
9 -- 08/01/2002 hyang - 2492841, performance change
10 -- 10/18/2002 hyang - 2633507, performance fix
11 -- NOTE :
12 -- End of Comments
13 G_PKG_NAME CONSTANT VARCHAR2(30):= 'ASO_VALIDATE_PVT';
14
15
16 PROCEDURE Validate_NotNULL_NUMBER (
17 p_init_msg_list IN VARCHAR2,
18 p_column_name IN VARCHAR2,
19 p_notnull_column IN NUMBER,
20 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
21 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
22 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
23 IS
24 BEGIN
25 -- Initialize message list if p_init_msg_list is set to TRUE.
26 IF FND_API.to_Boolean( p_init_msg_list ) THEN
27 FND_MSG_PUB.initialize;
28 END IF;
29
30 -- Initialize API return status to success
31 x_return_status := FND_API.G_RET_STS_SUCCESS;
32
33 IF (p_notnull_column IS NULL OR p_notnull_column = FND_API.G_MISS_NUM) THEN
34 x_return_status := FND_API.G_RET_STS_ERROR;
35 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
36 FND_MESSAGE.Set_Name('ASO', 'API_MISSING_COLUMN');
37 FND_MESSAGE.Set_Token('COLUMN', p_column_name, FALSE);
38 FND_MSG_PUB.ADD;
39 END IF;
40 END IF;
41
42 FND_MSG_PUB.Count_And_Get(
43 p_count => x_msg_count,
44 p_data => x_msg_data);
45
46 END Validate_NotNULL_NUMBER;
47
48
49 PROCEDURE Validate_NotNULL_VARCHAR2 (
50 p_init_msg_list IN VARCHAR2,
51 p_column_name IN VARCHAR2,
52 p_notnull_column IN VARCHAR2,
53 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
54 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
55 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
56 IS
57 BEGIN
58 -- Initialize message list if p_init_msg_list is set to TRUE.
59 IF FND_API.to_Boolean( p_init_msg_list ) THEN
60 FND_MSG_PUB.initialize;
61 END IF;
62
63 -- Initialize API return status to success
64 x_return_status := FND_API.G_RET_STS_SUCCESS;
65
66 IF (p_notnull_column IS NULL OR p_notnull_column = FND_API.G_MISS_CHAR) THEN
67 x_return_status := FND_API.G_RET_STS_ERROR;
68 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
69 FND_MESSAGE.Set_Name('ASO', 'API_MISSING_COLUMN');
70 FND_MESSAGE.Set_Token('COLUMN', p_column_name, FALSE);
71 FND_MSG_PUB.ADD;
72 END IF;
73 END IF;
74
75 FND_MSG_PUB.Count_And_Get(
76 p_count => x_msg_count,
77 p_data => x_msg_data);
78
79 END Validate_NotNULL_VARCHAR2;
80
81
82 PROCEDURE Validate_NotNULL_DATE (
83 p_init_msg_list IN VARCHAR2,
84 p_column_name IN VARCHAR2,
85 p_notnull_column IN DATE,
86 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
87 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
88 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
89 IS
90 BEGIN
91 -- Initialize message list if p_init_msg_list is set to TRUE.
92 IF FND_API.to_Boolean( p_init_msg_list ) THEN
93 FND_MSG_PUB.initialize;
94 END IF;
95
96 -- Initialize API return status to success
97 x_return_status := FND_API.G_RET_STS_SUCCESS;
98
99 IF (p_notnull_column IS NULL OR p_notnull_column = FND_API.G_MISS_DATE) THEN
100 x_return_status := FND_API.G_RET_STS_ERROR;
101 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
102 FND_MESSAGE.Set_Name('ASO', 'API_MISSING_COLUMN');
103 FND_MESSAGE.Set_Token('COLUMN', p_column_name, FALSE);
104 FND_MSG_PUB.ADD;
105 END IF;
106 END IF;
107
108 FND_MSG_PUB.Count_And_Get(
109 p_count => x_msg_count,
110 p_data => x_msg_data);
111
112 END Validate_NotNULL_DATE;
113
114
115 PROCEDURE Validate_For_GreaterEndDate (
116 p_init_msg_list IN VARCHAR2,
117 p_start_date IN DATE,
118 p_end_date IN DATE,
119 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
120 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
121 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
122 IS
123 BEGIN
124 -- Initialize message list if p_init_msg_list is set to TRUE.
125 IF FND_API.to_Boolean( p_init_msg_list ) THEN
126 FND_MSG_PUB.initialize;
127 END IF;
128
129 -- Initialize API return status to success
130 x_return_status := FND_API.G_RET_STS_SUCCESS;
131
132 IF (p_start_date IS NOT NULL AND p_start_date <> FND_API.G_MISS_DATE) AND
133 (p_end_date IS NOT NULL AND p_end_date <> FND_API.G_MISS_DATE) THEN
134
135 IF (p_end_date < p_start_date ) THEN
136 x_return_status := FND_API.G_RET_STS_ERROR;
137 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
138 FND_MESSAGE.Set_Name('ASO', 'INVALID COLUMN');
139 FND_MESSAGE.Set_Token('COLUMN', 'END DATE', FALSE);
140 FND_MSG_PUB.ADD;
141 END IF;
142 END IF;
143 END IF;
144
145 FND_MSG_PUB.Count_And_Get(
146 p_count => x_msg_count,
147 p_data => x_msg_data);
148
149 END Validate_For_GreaterEndDate;
150
151
152 PROCEDURE Validate_Party(
153 p_init_msg_list IN VARCHAR2,
154 p_party_id IN NUMBER,
155 p_party_usage IN VARCHAR2,
156 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
157 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
158 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
159 IS
160 CURSOR C_Party IS
161 SELECT status FROM HZ_PARTIES
162 WHERE party_id = p_party_id;
163 l_party_status VARCHAR2(1);
164
165 BEGIN
166 -- Initialize message list if p_init_msg_list is set to TRUE.
167 IF FND_API.to_Boolean( p_init_msg_list ) THEN
168 FND_MSG_PUB.initialize;
169 END IF;
170
171 -- Initialize API return status to success
172 x_return_status := FND_API.G_RET_STS_SUCCESS;
173
174 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
175 aso_debug_pub.add('Validate_Party: Begin: p_party_id: '||p_party_id, 1, 'N');
176 aso_debug_pub.add('Validate_Party: p_party_usage: '||p_party_usage, 1, 'N');
177 END IF;
178
179 IF (p_party_id IS NOT NULL AND p_party_id <> FND_API.G_MISS_NUM) THEN
180 OPEN C_Party;
181 FETCH C_Party INTO l_party_status;
182 IF (C_Party%NOTFOUND OR l_party_status <> 'A') THEN
183 CLOSE C_Party;
184 x_return_status := FND_API.G_RET_STS_ERROR;
185 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
186 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
187 FND_MESSAGE.Set_Token('COLUMN', p_party_usage, FALSE);
188 FND_MSG_PUB.ADD;
189 END IF;
190 ELSE
191 CLOSE C_Party;
192 END IF;
193 END IF;
194
195 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
196 aso_debug_pub.add('Validate_Party: x_return_status: '||x_return_status, 1, 'N');
197 END IF;
198
199 FND_MSG_PUB.Count_And_Get(
200 p_count => x_msg_count,
201 p_data => x_msg_data);
202
203 END Validate_Party;
204
205 PROCEDURE Validate_Contact(
206 p_init_msg_list IN VARCHAR2,
207 p_contact_id IN NUMBER,
208 p_contact_usage IN VARCHAR2,
209 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
210 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
211 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
212 IS
213 CURSOR C_Contact IS
214 SELECT status FROM HZ_ORG_CONTACTS
215 WHERE org_contact_id = p_contact_id;
216
217 l_contact_status VARCHAR2(1);
218
219 BEGIN
220 -- Initialize message list if p_init_msg_list is set to TRUE.
221 IF FND_API.to_Boolean( p_init_msg_list ) THEN
222 FND_MSG_PUB.initialize;
223 END IF;
224
225 -- Initialize API return status to success
226 x_return_status := FND_API.G_RET_STS_SUCCESS;
227
228 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
229 aso_debug_pub.add('Validate_Contact: p_contact_id: '||p_contact_id, 1, 'N');
230 aso_debug_pub.add('Validate_Contact: p_contact_usage: '||p_contact_usage, 1, 'N');
231 END IF;
232
233 IF (p_contact_id IS NOT NULL AND p_contact_id <> FND_API.G_MISS_NUM) THEN
234 OPEN C_Contact;
235 FETCH C_Contact INTO l_contact_status;
236 IF (C_Contact%NOTFOUND OR l_contact_status <> 'A') THEN
237 CLOSE C_Contact;
238 x_return_status := FND_API.G_RET_STS_ERROR;
239 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
240 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
241 FND_MESSAGE.Set_Token('COLUMN', p_contact_usage, FALSE);
242 FND_MSG_PUB.ADD;
243 END IF;
244 ELSE
245 CLOSE C_Contact;
246 END IF;
247 END IF;
248
249 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
250 aso_debug_pub.add('Validate_Contact: x_return_status: '||x_return_status, 1, 'N');
251 END IF;
252 FND_MSG_PUB.Count_And_Get(
253 p_count => x_msg_count,
254 p_data => x_msg_data);
255
256 END Validate_Contact;
257
258
259 PROCEDURE Validate_PartySite(
260 p_init_msg_list IN VARCHAR2,
261 p_party_id IN NUMBER,
262 p_party_site_id IN NUMBER,
263 p_site_usage IN VARCHAR2,
264 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
265 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
266 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
267 IS
268 CURSOR C_Party_Site IS
269 SELECT status -- start_date_active, end_date_active obsolete
270 FROM HZ_PARTY_SITES
271 WHERE party_site_id = p_party_site_id;
272
273 l_status VARCHAR2(1);
274
275 BEGIN
276 -- Initialize message list if p_init_msg_list is set to TRUE.
277 IF FND_API.to_Boolean( p_init_msg_list ) THEN
278 FND_MSG_PUB.initialize;
279 END IF;
280
281 -- Initialize API return status to success
282 x_return_status := FND_API.G_RET_STS_SUCCESS;
283
284 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
285 aso_debug_pub.add('Validate_PartySite: p_party_id: '||p_party_id, 1, 'N');
286 aso_debug_pub.add('Validate_PartySite: p_party_site_id: '||p_party_site_id, 1, 'N');
287 aso_debug_pub.add('Validate_PartySite: p_site_usage: '||p_site_usage, 1, 'N');
288 END IF;
289
290 IF (p_party_site_id IS NOT NULL AND p_party_site_id <> FND_API.G_MISS_NUM) THEN
291 OPEN C_Party_Site;
292 FETCH C_Party_Site INTO l_status;
293 IF C_Party_Site%NOTFOUND OR
294 l_status <> 'A' THEN
295
296 CLOSE C_Party_Site;
297 x_return_status := FND_API.G_RET_STS_ERROR;
298 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
299 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
300 FND_MESSAGE.Set_Token('COLUMN', p_site_usage, FALSE);
301 FND_MSG_PUB.ADD;
302 END IF;
303 ELSE
304 CLOSE C_Party_Site;
305 END IF;
306 END IF;
307
308 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
309 aso_debug_pub.add('Validate_PartySite: x_return_status: '||x_return_status, 1, 'N');
310 END IF;
311 END Validate_PartySite;
312
313 PROCEDURE Validate_OrderType(
314 p_init_msg_list IN VARCHAR2,
315 p_order_type_id IN NUMBER,
316 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
317 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
318 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
319 IS
320 CURSOR C_Order_Type IS
321 SELECT start_date_active, end_date_active FROM ASO_I_ORDER_TYPES_V
322 WHERE order_type_id = p_order_type_id;
323 l_start_date DATE;
324 l_end_date DATE;
325 BEGIN
326 -- Initialize message list if p_init_msg_list is set to TRUE.
327 IF FND_API.to_Boolean( p_init_msg_list ) THEN
328 FND_MSG_PUB.initialize;
329 END IF;
330
331 -- Initialize API return status to success
332 x_return_status := FND_API.G_RET_STS_SUCCESS;
333
334 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
335 aso_debug_pub.add('Validate_OrderType: p_order_type_id: '||p_order_type_id, 1, 'N');
336 END IF;
337 IF (p_order_type_id IS NOT NULL AND p_order_type_id <> FND_API.G_MISS_NUM) THEN
338 OPEN C_Order_Type;
339 FETCH C_Order_Type INTO l_start_date, l_end_date;
340 IF (C_Order_Type%NOTFOUND OR
341 (sysdate NOT BETWEEN NVL(l_start_date, sysdate) AND
342 NVL(l_end_date, sysdate))) THEN
343 CLOSE C_Order_Type;
344 x_return_status := FND_API.G_RET_STS_ERROR;
345 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
346 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
347 FND_MESSAGE.Set_Token('COLUMN', 'ORDER_TYPE_ID', FALSE);
348 FND_MESSAGE.Set_Token ('VALUE' ,to_char(p_order_type_id), FALSE );
349 FND_MSG_PUB.ADD;
350 END IF;
351 ELSE
352 CLOSE C_Order_Type;
353 END IF;
354 END IF;
355
356 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
357 aso_debug_pub.add('Validate_OrderType: x_return_status: '||x_return_status, 1, 'N');
358 END IF;
359 END Validate_OrderType;
360
361
362
363 PROCEDURE Validate_LineType(
364 p_init_msg_list IN VARCHAR2,
365 p_order_line_type_id IN NUMBER,
366 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
367 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
368 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
369 IS
370 CURSOR C_Order_Line_Type IS
371 SELECT start_date_active, end_date_active FROM ASO_I_LINE_TYPES_V
372 WHERE line_type_id = p_order_line_type_id;
373 l_start_date DATE;
374 l_end_date DATE;
375 BEGIN
376 -- Initialize message list if p_init_msg_list is set to TRUE.
377 IF FND_API.to_Boolean( p_init_msg_list ) THEN
378 FND_MSG_PUB.initialize;
379 END IF;
380
381 -- Initialize API return status to success
382 x_return_status := FND_API.G_RET_STS_SUCCESS;
383
384 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
385 aso_debug_pub.add('Validate_LineType: p_order_line_type_id: '||p_order_line_type_id, 1, 'N');
386 END IF;
387 IF (p_order_line_type_id IS NOT NULL AND p_order_line_type_id <> FND_API.G_MISS_NUM) THEN
388 OPEN C_Order_Line_Type;
389 FETCH C_Order_Line_Type INTO l_start_date, l_end_date;
390 IF (C_Order_Line_Type%NOTFOUND OR
391 (sysdate NOT BETWEEN NVL(l_start_date, sysdate) AND
392 NVL(l_end_date, sysdate))) THEN
393 CLOSE C_Order_Line_Type;
394 x_return_status := FND_API.G_RET_STS_ERROR;
395 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
396 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
397 FND_MESSAGE.Set_Token('COLUMN', 'ORDER_LINE_TYPE_ID', FALSE);
398 FND_MESSAGE.Set_Token ('VALUE' ,to_char(p_order_line_type_id), FALSE );
399 FND_MSG_PUB.ADD;
400 END IF;
401 ELSE
402 CLOSE C_Order_Line_Type;
403 END IF;
404 END IF;
405
406 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
407 aso_debug_pub.add('Validate_LineType: x_return_status: '||x_return_status, 1, 'N');
408 END IF;
409 END Validate_LineType;
410
411
412 PROCEDURE Validate_PriceList(
413 p_init_msg_list IN VARCHAR2,
414 p_price_list_id IN NUMBER,
415 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
416 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
417 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
418 IS
419 CURSOR C_Price_List IS
420 SELECT (start_date_active), (end_date_active) FROM QP_PRICELISTS_LOV_V
421 WHERE price_list_id = p_price_list_id and (orig_org_id = mo_global.get_current_org_id or global_flag ='Y'); --bug5188699
422 /* Verified with QP this UNION is not necessary dgyawali verified with spgopal 08/12/02*/
423 /**
424 UNION
425 select qlhv.start_date_active, qlhv.end_date_active
426 from qp_list_headers_vl qlhv, oe_agreements oa
427 where oa.price_list_id = qlhv.list_header_id
428 and qlhv.list_type_code = 'PRL'
429 and oa.price_list_id = p_price_list_id;
430 **/
431
432
433 l_start_date DATE;
434 l_end_date DATE;
435 l_org_id NUMBER := mo_global.get_current_org_id;
436 BEGIN
437 -- Initialize message list if p_init_msg_list is set to TRUE.
438 IF FND_API.to_Boolean( p_init_msg_list ) THEN
439 FND_MSG_PUB.initialize;
440 END IF;
441
442 -- Initialize API return status to success
443 x_return_status := FND_API.G_RET_STS_SUCCESS;
444
445 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
446 aso_debug_pub.add('Validate_PriceList Begin: p_price_list_id: '||p_price_list_id, 1, 'N');
447 aso_debug_pub.add('Validate_PriceList :mo_global.get_current_org_id '||l_org_id, 1, 'N');
448 END IF;
449
450
451
452 IF (p_price_list_id IS NOT NULL AND p_price_list_id <> FND_API.G_MISS_NUM) THEN
453 OPEN C_Price_List;
454 FETCH C_Price_List INTO l_start_date, l_end_date;
455 IF (C_Price_List%NOTFOUND OR
456 (trunc(sysdate) NOT BETWEEN NVL(trunc(l_start_date), trunc(sysdate)) AND
457 NVL(trunc(l_end_date), trunc(sysdate)))) THEN
458 CLOSE C_Price_List;
459 x_return_status := FND_API.G_RET_STS_ERROR;
460 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
461 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
462 FND_MESSAGE.Set_Token('COLUMN', 'PRICE_LIST_ID', FALSE);
463 FND_MESSAGE.Set_Token('VALUE',to_char(p_price_list_id),FALSE);
464 FND_MSG_PUB.ADD;
465 END IF;
466 ELSE
467 CLOSE C_Price_List;
468 END IF;
469 END IF;
470
471 END Validate_PriceList;
472
473 PROCEDURE Validate_Quote_Price_Exp(
474 p_init_msg_list IN VARCHAR2,
475 p_price_list_id IN NUMBER,
476 p_quote_expiration_date IN DATE,
477 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
478 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
479 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
480 IS
481 CURSOR C_Price_List IS
482 SELECT start_date_active, end_date_active FROM QP_PRICE_LISTS_V
483 WHERE price_list_id = p_price_list_id;
484 /* Verified with QP this UNION is not necessary dgyawali verified with spgopal 08/12/02*/
485 /**
486 UNION
487 select qlhv.start_date_active, qlhv.end_date_active
488 from qp_list_headers_vl qlhv, oe_agreements oa
489 where oa.price_list_id = qlhv.list_header_id
490 and qlhv.list_type_code = 'PRL'
491 and oa.price_list_id = p_price_list_id;
492 **/
493
494 l_start_date DATE;
495 l_end_date DATE;
496 l_quote_expiration_date DATE;
497 BEGIN
498 -- Initialize message list if p_init_msg_list is set to TRUE.
499 IF FND_API.to_Boolean( p_init_msg_list ) THEN
500 FND_MSG_PUB.initialize;
501 END IF;
502
503 -- Initialize API return status to success
504 x_return_status := FND_API.G_RET_STS_SUCCESS;
505
506 IF (p_price_list_id IS NOT NULL AND p_price_list_id <> FND_API.G_MISS_NUM) THEN
507
508 OPEN C_Price_List;
509 FETCH C_Price_List INTO l_start_date, l_end_date;
510 IF (C_Price_List%NOTFOUND OR
511 (sysdate NOT BETWEEN NVL(l_start_date, sysdate) AND
512 NVL(l_end_date, sysdate))) THEN
513 CLOSE C_Price_List;
514 x_return_status := FND_API.G_RET_STS_ERROR;
515 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
516 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
517 FND_MESSAGE.Set_Token('COLUMN', 'PRICE_LIST_ID', FALSE);
518 FND_MESSAGE.Set_Token('VALUE',to_char(p_price_list_id),FALSE);
519 FND_MSG_PUB.ADD;
520 END IF;
521 ELSIF l_end_date IS NOT NULL AND p_quote_expiration_date <> FND_API.G_MISS_DATE AND nvl(trunc(p_quote_expiration_date), trunc(l_end_date)) > trunc(l_end_date) THEN
522 -- ELSIF nvl(p_quote_expiration_date,(sysdate+30)) > l_end_date THEN
523 x_return_status := FND_API.G_RET_STS_ERROR;
524 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
525 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
526 FND_MESSAGE.Set_Token('COLUMN', 'Price List Expires Before Quote', FALSE);
527 FND_MESSAGE.Set_Token('VALUE',to_char(p_price_list_id),FALSE);
528 FND_MSG_PUB.ADD;
529 END IF;
530 --CLOSE C_Price_List;
531 END IF;
532 CLOSE C_Price_List;
533 END IF;
534 --END IF;
535 END Validate_Quote_Price_Exp;
536
537
538 PROCEDURE Validate_Quote_Exp_date(
539 p_init_msg_list IN VARCHAR2,
540 p_quote_expiration_date IN DATE,
541 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
542 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
543 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
544 )
545 IS
546
547 l_start_date DATE;
548 l_end_date DATE;
549 l_quote_expiration_date DATE;
550
551 BEGIN
552
553 -- Initialize message list if p_init_msg_list is set to TRUE.
554 IF FND_API.to_Boolean( p_init_msg_list ) THEN
555 FND_MSG_PUB.initialize;
556 END IF;
557
558 -- Initialize API return status to success
559 x_return_status := FND_API.G_RET_STS_SUCCESS;
560
561 IF p_quote_expiration_date IS NOT NULL and p_quote_expiration_date <> FND_API.G_MISS_DATE THEN
562 IF (trunc(sysdate) > trunc(p_quote_expiration_date))THEN
563 x_return_status := FND_API.G_RET_STS_ERROR;
564 END IF;
565 END IF;
566
567 END Validate_Quote_Exp_date;
568
569
570
571 -- hyang quote_status
572 PROCEDURE Validate_Quote_Status(
573 p_init_msg_list IN VARCHAR2,
574 p_quote_status_id IN NUMBER,
575 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
576 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
577 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
578 IS
579
580 CURSOR c_Quote_Status
581 IS
582 SELECT quote_status_id, enabled_flag
583 FROM ASO_QUOTE_STATUSES_B
584 WHERE quote_status_id = p_quote_status_id;
585
586
587 l_quote_status_id NUMBER;
588 l_enabled_flag VARCHAR2(1);
589
590 BEGIN
591 -- Initialize message list if p_init_msg_list is set to TRUE.
592 IF FND_API.to_Boolean( p_init_msg_list ) THEN
593 FND_MSG_PUB.initialize;
594 END IF;
595
596 -- Initialize API return status to success
597 x_return_status := FND_API.G_RET_STS_SUCCESS;
598
599 OPEN c_Quote_Status;
600 FETCH c_Quote_Status INTO l_quote_status_id, l_enabled_flag;
601 IF (c_Quote_Status%NOTFOUND) THEN
602 x_return_status := FND_API.G_RET_STS_ERROR;
603 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
604 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
605 FND_MESSAGE.Set_Token('COLUMN', 'QUOTE_STATUS_ID', FALSE);
606 FND_MSG_PUB.ADD;
607 END IF;
608 ELSIF (l_enabled_flag <> 'Y') THEN
609 x_return_status := FND_API.G_RET_STS_ERROR;
610 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
611 FND_MESSAGE.Set_Name('ASO', 'ASO_DISABLED_STATUS');
612 FND_MSG_PUB.ADD;
613 END IF;
614 END IF;
615 CLOSE C_Quote_Status;
616
617 END Validate_Quote_Status;
618 -- end of hyang quote_status
619
620
621 PROCEDURE Validate_Inventory_Item(
622 p_init_msg_list IN VARCHAR2,
623 p_inventory_item_id IN NUMBER,
624 p_organization_id IN NUMBER,
625 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
626 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
627 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
628 IS
629
630 /* 2633507 - hyang: use mtl_system_items_b instead of vl */
631
632 CURSOR C_Inventory_Item IS
633 SELECT start_date_active, end_date_active,vendor_warranty_flag,service_item_flag FROM MTL_SYSTEM_ITEMS_B
634 WHERE inventory_item_id = p_inventory_item_id
635 and organization_id = p_organization_id;
636
637 l_start_date DATE;
638 l_end_date DATE;
639 l_war_flag VARCHAR2(1);
640 l_svr_flag VARCHAr2(1);
641 BEGIN
642 -- Initialize message list if p_init_msg_list is set to TRUE.
643 IF FND_API.to_Boolean( p_init_msg_list ) THEN
644 FND_MSG_PUB.initialize;
645 END IF;
646
647 -- Initialize API return status to success
648 x_return_status := FND_API.G_RET_STS_SUCCESS;
649 IF (p_inventory_item_id IS NULL OR p_inventory_item_id = FND_API.G_MISS_NUM) THEN
650 x_return_status := FND_API.G_RET_STS_ERROR;
651 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
652 FND_MESSAGE.Set_Name('ASO', 'API_MISSING_COLUMN');
653 FND_MESSAGE.Set_Token('COLUMN', 'INVENTORY_ITEM_ID', FALSE);
654 FND_MSG_PUB.ADD;
655 END IF;
656 ELSE
657 OPEN C_Inventory_Item;
658 FETCH C_Inventory_Item INTO l_start_date, l_end_date,l_war_flag,l_svr_flag;
659 IF (C_Inventory_Item%NOTFOUND OR
660 (sysdate NOT BETWEEN NVL(l_start_date, sysdate) AND
661 NVL(l_end_date, sysdate))) THEN
662 CLOSE C_Inventory_Item;
663 x_return_status := FND_API.G_RET_STS_ERROR;
664 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
665 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
666 FND_MESSAGE.Set_Token('COLUMN', 'INVENTORY_ITEM_ID', FALSE);
667 FND_MESSAGE.Set_Token('VALUE',to_char(p_inventory_item_id),FALSE);
668 FND_MSG_PUB.ADD;
669 END IF;
670 ELSIF l_war_flag ='Y'and l_svr_flag ='Y' THEN
671 CLOSE C_Inventory_Item;
672 x_return_status := FND_API.G_RET_STS_ERROR;
673 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
674 FND_MESSAGE.Set_Name('ASO', 'ASO_API_MISSING_SRV_INFO4');
675 -- FND_MESSAGE.Set_Token('COLUMN', 'INVENTORY_ITEM_ID', FALSE);
676 FND_MSG_PUB.ADD;
677 END IF;
678 ELSE
679 CLOSE C_Inventory_Item;
680 END IF;
681 END IF;
682
683 END Validate_Inventory_Item;
684
685 PROCEDURE Validate_Item_Type_Code(
686 p_init_msg_list IN VARCHAR2,
687 p_item_type_code IN VARCHAR2,
688 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
689 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
690 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
691 IS
692 CURSOR C_item_type_code IS
693 SELECT lookup_code
694 FROM aso_lookups lk
695 WHERE lookup_type = 'ASO_ITEM_TYPE'
696 AND lookup_code = p_item_type_code;
697
698 /* select item_type_code from aso_i_item_types_v
699 where item_type_code = p_item_type_code; */
700
701 l_item_type_code VARCHAR2(30);
702 BEGIN
703 --dbms_output.put_line('beginning of item type code '||p_item_type_code);
704 -- Initialize message list if p_init_msg_list is set to TRUE.
705 IF FND_API.to_Boolean( p_init_msg_list ) THEN
706 FND_MSG_PUB.initialize;
707 END IF;
708
709 -- Initialize API return status to success
710 x_return_status := FND_API.G_RET_STS_SUCCESS;
711 IF (p_item_type_code IS NOT NULL AND p_item_type_code <> FND_API.G_MISS_CHAR) THEN
712 -- dbms_output.put_line('in item type code '|| x_return_status);
713 OPEN C_item_type_code;
714 FETCH C_item_type_code INTO l_item_type_code;
715 IF (C_item_type_code%NOTFOUND) THEN
716 CLOSE C_item_type_code;
717 x_return_status := FND_API.G_RET_STS_ERROR;
718 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
719 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
720 FND_MESSAGE.Set_Token('COLUMN', 'ITEM_TYPE_CODE', FALSE);
721 FND_MESSAGE.Set_Token('VALUE',p_item_type_code,FALSE);
722 FND_MSG_PUB.ADD;
723 END IF;
724 ELSE
725 CLOSE C_item_type_code;
726 END IF;
727 END IF;
728 END Validate_ITEM_TYPE_CODE;
729
730
731
732
733 PROCEDURE Validate_Marketing_Source_Code(
734 p_init_msg_list IN VARCHAR2,
735 p_mkting_source_code_id IN NUMBER,
736 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
737 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
738 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
739 IS
740 CURSOR C_marketing_code IS
741 select source_code_id from aso_i_mktg_src_codes_v
742 where source_code_id = p_mkting_source_code_id;
743
744 l_mkting_source_code NUMBER;
745 BEGIN
746 -- Initialize message list if p_init_msg_list is set to TRUE.
747 IF FND_API.to_Boolean( p_init_msg_list ) THEN
748 FND_MSG_PUB.initialize;
749 END IF;
750
751 -- Initialize API return status to success
752 x_return_status := FND_API.G_RET_STS_SUCCESS;
753
754 IF (p_mkting_source_code_id IS NOT NULL AND p_mkting_source_code_id <> FND_API.G_MISS_NUM) THEN
755 OPEN C_marketing_code;
756 FETCH C_marketing_code INTO l_mkting_source_code;
757 IF (C_marketing_code%NOTFOUND) THEN
758 CLOSE C_marketing_code;
759 x_return_status := FND_API.G_RET_STS_ERROR;
760 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
761 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
762 FND_MESSAGE.Set_Token('COLUMN', 'MARKETING_SOURCE_CODE_ID', FALSE);
763 FND_MESSAGE.Set_Token('VALUE',to_char(p_mkting_source_code_id),FALSE);
764 FND_MSG_PUB.ADD;
765 END IF;
766 ELSE
767 CLOSE C_marketing_code;
768 END IF;
769 END IF;
770
771 END Validate_MARKETING_SOURCE_CODE;
772
773
774 PROCEDURE Validate_UOM_code(
775 p_init_msg_list IN VARCHAR2,
776 p_uom_code IN VARCHAR2,
777 p_organization_id IN NUMBER,
778 p_inventory_item_id IN NUMBER,
779 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
780 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
781 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
782 IS
783 CURSOR C_uom_code IS
784 select uom_code from MTL_ITEM_UOMS_VIEW
785 where uom_code = p_uom_code
786 and inventory_item_id = p_inventory_item_id
787 and organization_id = p_organization_id;
788
789 l_uom_code VARCHAR2(30);
790 BEGIN
791 -- Initialize message list if p_init_msg_list is set to TRUE.
792 IF FND_API.to_Boolean( p_init_msg_list ) THEN
793 FND_MSG_PUB.initialize;
794 END IF;
795
796 -- Initialize API return status to success
797 x_return_status := FND_API.G_RET_STS_SUCCESS;
798
799 IF (p_uom_code IS NOT NULL AND p_uom_code <> FND_API.G_MISS_CHAR) THEN
800 OPEN C_uom_code;
801 FETCH C_uom_code INTO l_uom_code;
802 IF (C_uom_code%NOTFOUND) THEN
803 CLOSE C_uom_code;
804 x_return_status := FND_API.G_RET_STS_ERROR;
805 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
806 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
807 FND_MESSAGE.Set_Token('COLUMN', 'UOM_CODE', FALSE);
808 FND_MESSAGE.Set_Token('VALUE',p_uom_code,FALSE);
809 FND_MSG_PUB.ADD;
810 END IF;
811 ELSE
812 CLOSE C_uom_code;
813 END IF;
814 END IF;
815
816 END Validate_UOM_CODE;
817
818
819 PROCEDURE Validate_Tax_Exemption(
820 p_init_msg_list IN VARCHAR2,
821 p_tax_exempt_flag IN VARCHAR2,
822 p_tax_exempt_reason_code IN VARCHAR2,
823 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
824 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
825 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
826 IS
827 BEGIN
828 -- Initialize message list if p_init_msg_list is set to TRUE.
829 IF FND_API.to_Boolean( p_init_msg_list ) THEN
830 FND_MSG_PUB.initialize;
831 END IF;
832
833 -- Initialize API return status to success
834 x_return_status := FND_API.G_RET_STS_SUCCESS;
835
836 IF p_tax_exempt_flag = 'E' AND
837 (p_tax_exempt_reason_code IS NULL OR
838 p_tax_exempt_reason_code = FND_API.G_MISS_CHAR) THEN
839 x_return_status := FND_API.G_RET_STS_ERROR;
840 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
841 FND_MESSAGE.Set_Name('ASO', 'API_MISSING_COLUMN');
842 FND_MESSAGE.Set_Token('COLUMN', 'TAX_EXEMPT_REASON', FALSE);
843 FND_MSG_PUB.ADD;
844 END IF;
845 END IF;
846
847 FND_MSG_PUB.Count_And_Get(
848 p_count => x_msg_count,
849 p_data => x_msg_data);
850
851 END Validate_Tax_Exemption;
852
853
854 -- New procedure added by Bmishra on 01/23/2002 by removing the earlier validate_configuration procedure
855
856 PROCEDURE Validate_Configuration(
857 p_init_msg_list IN VARCHAR2,
858 p_config_header_id IN NUMBER,
859 p_config_revision_num IN NUMBER,
860 p_config_item_id IN NUMBER,
861 --p_component_code IN VARCHAR2,
862 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
863 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
864 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
865 IS
866 -- We will add config_item_id when we will implement solution model
867 CURSOR C_configuration IS
868 SELECT component_code
869 FROM cz_config_details_V
870 WHERE CONFIG_HDR_ID = p_config_header_id
871 AND CONFIG_REV_NBR = p_config_revision_num
872 --AND component_code = p_component_code;
873 AND CONFIG_ITEM_ID = config_item_id;
874
875 l_component_code VARCHAR2(1000);
876 BEGIN
877 -- Initialize message list if p_init_msg_list is set to TRUE.
878 IF FND_API.to_Boolean( p_init_msg_list ) THEN
879 FND_MSG_PUB.initialize;
880 END IF;
881
882 -- Initialize API return status to success
883 x_return_status := FND_API.G_RET_STS_SUCCESS;
884
885 OPEN C_configuration;
886 FETCH C_configuration INTO l_component_code;
887 IF (C_configuration%NOTFOUND) THEN
888 CLOSE C_configuration;
889 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
890 aso_debug_pub.add('ASO_VALIDATE_PVT.validate_configuration: Inside C_configuration Not Found condition',1,'N');
891 END IF;
892 x_return_status := FND_API.G_RET_STS_ERROR;
893 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
894 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_CONFIGURATION');
895 FND_MESSAGE.Set_Token('HDR_ID',p_config_header_id, FALSE);
896 FND_MESSAGE.Set_Token('REV_NO',p_config_revision_num, FALSE);
897 FND_MESSAGE.Set_Token('CONFIG_ITEM_ID',p_config_item_id, FALSE);
898 FND_MSG_PUB.ADD;
899 END IF;
900 ELSE
901 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
902 aso_debug_pub.add('ASO_VALIDATE_PVT.validate_configuration: Inside C_configuration Not Found ELSE condition', 1, 'N');
903 END IF;
904 CLOSE C_configuration;
905 END IF;
906 END Validate_Configuration;
907
908 -- End Of procedure Bmishra 01/23/2002
909
910 PROCEDURE Validate_Delayed_Service(
911 p_init_msg_list IN VARCHAR2,
912 p_service_ref_type_code IN VARCHAR2,
913 p_service_ref_line_id IN NUMBER,
914 p_service_ref_system_id IN NUMBER,
915 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
916 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
917 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
918 IS
919 /*CURSOR C_servicetypes IS
920 select service_reference_type_code
921 from aso_i_service_types_v
922 where service_reference_type_code = p_service_ref_type_code;*/
923 CURSOR C_servicetypes IS
924 select lookup_code
925 from aso_lookups
926 where lookup_code = p_service_ref_type_code and
927 lookup_type = 'ASO_SERVICE_TYPE';
928
929 l_service_code VARCHAR2(30);
930
931 BEGIN
932 -- Initialize message list if p_init_msg_list is set to TRUE.
933 IF FND_API.to_Boolean( p_init_msg_list ) THEN
934 FND_MSG_PUB.initialize;
935 END IF;
936
937 -- Initialize API return status to success
938 x_return_status := FND_API.G_RET_STS_SUCCESS;
939
940 IF (p_service_ref_type_code IS NOT NULL AND p_service_ref_type_code <> FND_API.G_MISS_CHAR) THEN
941 OPEN C_servicetypes;
942 FETCH C_servicetypes INTO l_service_code;
943 IF (C_servicetypes%NOTFOUND) THEN
944 CLOSE C_servicetypes;
945 x_return_status := FND_API.G_RET_STS_ERROR;
946 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
947 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
948 FND_MESSAGE.Set_Token('COLUMN', 'SERVICE_TYPE_CODE', FALSE);
949 FND_MESSAGE.Set_Token('VALUE',p_service_ref_type_code,FALSE);
950 FND_MSG_PUB.ADD;
951 END IF;
952 ELSE
953 CLOSE C_servicetypes;
954 null;
955 -- kchervel check
956 -- IF p_service_ref_type_code = 'CUSTOMER_PRODUCT' THEN
957 -- IF p_service_ref_type_code = 'ORDER' THEN
958
959 END IF;
960 END IF;
961
962
963 END;
964
965
966 PROCEDURE Validate_Service(
967 p_init_msg_list IN VARCHAR2,
968 p_inventory_item_id IN NUMBER,
969 p_start_date_active IN DATE,
970 p_end_date_active IN DATE,
971 p_service_duration IN NUMBER,
972 p_service_period IN VARCHAR2,
973 p_service_coterminate_flag IN VARCHAR2,
974 p_organization_id IN NUMBER,
975 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
976 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
977 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
978 IS
979
980 CURSOR C_service_item IS
981 SELECT inventory_item_id, service_item_flag
982 FROM mtl_system_items_b
983 WHERE inventory_item_id = p_inventory_item_id
984 AND organization_id = p_organization_id;
985
986 l_inventory_item_id NUMBER;
987 l_service_item_flag VARCHAR(1);
988
989 BEGIN
990
991 --Initialize message list if p_init_msg_list is set to TRUE.
992 IF FND_API.to_Boolean( p_init_msg_list ) THEN
993 FND_MSG_PUB.initialize;
994 END IF;
995
996 --Initialize API return status to success
997 x_return_status := FND_API.G_RET_STS_SUCCESS;
998
999 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
1000 aso_debug_pub.add('ASO_VALIDATE_PVT: Validate_Service: Begin validate_service procedure.');
1001 aso_debug_pub.add('Validate_Service: p_inventory_item_id: '|| p_inventory_item_id);
1002 aso_debug_pub.add('Validate_Service: p_start_date_active: '|| p_start_date_active);
1003 aso_debug_pub.add('Validate_Service: p_end_date_active: '|| p_end_date_active);
1004 aso_debug_pub.add('Validate_Service: p_service_duration: '|| p_service_duration);
1005 aso_debug_pub.add('Validate_Service: p_service_period: '|| p_service_period);
1006 aso_debug_pub.add('Validate_Service: p_service_coterminate_flag: '|| p_service_coterminate_flag);
1007 aso_debug_pub.add('Validate_Service: p_organization_id: '|| p_organization_id);
1008 END IF;
1009
1010 IF p_inventory_item_id <> FND_API.G_MISS_NUM THEN
1011
1012 OPEN C_service_item;
1013 FETCH C_service_item INTO l_inventory_item_id, l_service_item_flag;
1014
1015 IF C_service_item%NOTFOUND THEN
1016
1017 CLOSE C_service_item;
1018 x_return_status := FND_API.G_RET_STS_ERROR;
1019
1020 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1021 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
1022 FND_MESSAGE.Set_Token('COLUMN', 'Inventory_item_id', FALSE);
1023 FND_MESSAGE.Set_Token('VALUE',to_char(p_inventory_item_id),FALSE);
1024 FND_MSG_PUB.ADD;
1025 END IF;
1026
1027 ELSE
1028 CLOSE C_service_item;
1029
1030 --if service start date must exist
1031 IF l_service_item_flag = 'Y' THEN
1032
1033 IF p_start_date_active IS NULL OR p_start_date_active = FND_API.G_MISS_DATE THEN
1034
1035 x_return_status := FND_API.G_RET_STS_ERROR;
1036
1037 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1038 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
1039 FND_MESSAGE.Set_Token('COLUMN', 'SERVICE_START_DATE', FALSE);
1040 FND_MSG_PUB.ADD;
1041 END IF;
1042
1043 -- if service we should be able to calc end date
1044 ELSIF (p_end_date_active IS NULL OR p_end_date_active = FND_API.G_MISS_DATE) AND
1045 (p_service_duration IS NULL OR p_service_duration = FND_API.G_MISS_NUM) AND
1046 (p_service_coterminate_flag IS NULL OR
1047 p_service_coterminate_flag = FND_API.G_MISS_CHAR) THEN
1048
1049
1050 x_return_status := FND_API.G_RET_STS_ERROR;
1051
1052 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1053 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
1054 FND_MESSAGE.Set_Token('COLUMN', 'SERVICE_END_DATE', FALSE);
1055 FND_MSG_PUB.ADD;
1056 END IF;
1057
1058 END IF; -- start and end date active
1059
1060 END IF; -- l_service_item_flag = 'Y'
1061
1062 END IF; -- C_service_item%NOTFOUND
1063
1064 END IF; -- p_inventory_item_id <> FND_API.G_MISS_NUM
1065 END;
1066
1067
1068
1069 PROCEDURE Validate_Service_Duration(
1070 p_init_msg_list IN VARCHAR2,
1071 p_service_duration IN NUMBER,
1072 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
1073 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
1074 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
1075 IS
1076 BEGIN
1077 -- Initialize message list if p_init_msg_list is set to TRUE.
1078 IF FND_API.to_Boolean( p_init_msg_list ) THEN
1079 FND_MSG_PUB.initialize;
1080 END IF;
1081
1082 -- Initialize API return status to success
1083 x_return_status := FND_API.G_RET_STS_SUCCESS;
1084
1085 IF (p_service_duration IS NOT NULL AND p_service_duration <> FND_API.G_MISS_NUM) THEN
1086 IF p_service_duration < 1 THEN
1087 x_return_status := FND_API.G_RET_STS_ERROR;
1088 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1089 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
1090 FND_MESSAGE.Set_Token('COLUMN', 'SERVICE_DURATION', FALSE);
1091 FND_MESSAGE.Set_Token('VALUE',to_char(p_service_duration),FALSE);
1092 FND_MSG_PUB.ADD;
1093 END IF;
1094 END IF;
1095 END IF;
1096
1097 END;
1098
1099 PROCEDURE Validate_Service_Period(
1100 p_init_msg_list IN VARCHAR2,
1101 p_service_period IN VARCHAR2,
1102 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
1103 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
1104 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
1105 IS
1106 BEGIN
1107 null;
1108 END;
1109
1110 PROCEDURE Validate_Returns(
1111 p_init_msg_list IN VARCHAR2,
1112 p_return_ref_type_code IN VARCHAR2,
1113 p_return_ref_header_id IN NUMBER,
1114 p_return_ref_line_id IN NUMBER,
1115 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
1116 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
1117 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
1118 IS
1119 CURSOR C_returntypes IS
1120 select return_reference_type_code
1121 from aso_i_return_types_v
1122 where return_reference_type_code = p_return_ref_type_code;
1123
1124 l_return_code VARCHAR2(30);
1125
1126 BEGIN
1127 -- Initialize message list if p_init_msg_list is set to TRUE.
1128 IF FND_API.to_Boolean( p_init_msg_list ) THEN
1129 FND_MSG_PUB.initialize;
1130 END IF;
1131
1132 -- Initialize API return status to success
1133 x_return_status := FND_API.G_RET_STS_SUCCESS;
1134
1135 IF (p_return_ref_type_code IS NOT NULL AND p_return_ref_type_code <> FND_API.G_MISS_CHAR) THEN
1136 OPEN C_returntypes;
1137 FETCH C_returntypes INTO l_return_code;
1138 IF (C_returntypes%NOTFOUND) THEN
1139 CLOSE C_returntypes;
1140 x_return_status := FND_API.G_RET_STS_ERROR;
1141 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1142 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
1143 FND_MESSAGE.Set_Token('COLUMN', 'RETURN_TYPE_CODE', FALSE);
1144 FND_MESSAGE.Set_Token('VALUE',p_return_ref_type_code,FALSE);
1145 FND_MSG_PUB.ADD;
1146 END IF;
1147 ELSE
1148 CLOSE C_returntypes;
1149 END IF;
1150 END IF;
1151
1152
1153 END ;
1154
1155
1156 PROCEDURE Validate_EmployPerson(
1157 p_init_msg_list IN VARCHAR2,
1158 p_employee_id IN NUMBER,
1159 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
1160 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
1161 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
1162 IS
1163 CURSOR C_employperson IS
1164 SELECT start_date_active, end_date_active,status
1165 FROM jtf_rs_srp_vl
1166 WHERE person_id = p_employee_id;
1167
1168 l_start_date DATE;
1169 l_end_date DATE;
1170 l_status VARCHAR2(1);
1171 BEGIN
1172
1173 IF FND_API.to_Boolean( p_init_msg_list ) THEN
1174 FND_MSG_PUB.initialize;
1175 END IF;
1176
1177 -- Initialize API return status to success
1178 x_return_status := FND_API.G_RET_STS_SUCCESS;
1179
1180 IF p_employee_id IS NOT NULL AND p_employee_id <> FND_API.G_MISS_NUM THEN
1181 Open C_employperson;
1182 FETCH C_employperson into l_start_date, l_end_date,l_status;
1183
1184 IF (C_employperson%NOTFOUND OR l_status<> 'A') THEN
1185 CLOSE C_employperson;
1186 x_return_status := FND_API.G_RET_STS_ERROR;
1187 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1188 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_SALES_REP');
1189 FND_MESSAGE.Set_Token('COLUMN','EMPLOYEE_PERSON_ID' , FALSE);
1190 FND_MSG_PUB.ADD;
1191 END IF;
1192 ELSE
1193 CLOSE C_employperson;
1194 IF trunc(sysdate) > nvl(trunc(l_end_date), trunc(sysdate)) THEN
1195 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1196 FND_MESSAGE.Set_Name('ASO', 'NOT_EFFECTIVE');
1197 FND_MESSAGE.Set_Token('COLUMN','EMPLOYEE_PERSON_ID' , FALSE);
1198 FND_MSG_PUB.ADD;
1199 END IF;
1200 END IF;
1201 END IF;
1202 END IF;
1203 END;
1204
1205 PROCEDURE Validate_CategoryCode(
1206 p_init_msg_list IN VARCHAR2,
1207 p_category_code IN VARCHAR2,
1208 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
1209 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
1210 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
1211 IS
1212 BEGIN
1213 null;
1214 END;
1215
1216
1217
1218 PROCEDURE Validate_For_Positive(
1219 p_init_msg_list IN VARCHAR2,
1220 p_column_name IN VARCHAR2,
1221 p_value IN NUMBER,
1222 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
1223 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
1224 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
1225 IS
1226 BEGIN
1227 -- Initialize message list if p_init_msg_list is set to TRUE.
1228 IF FND_API.to_Boolean( p_init_msg_list ) THEN
1229 FND_MSG_PUB.initialize;
1230 END IF;
1231
1232 -- Initialize API return status to success
1233 x_return_status := FND_API.G_RET_STS_SUCCESS;
1234
1235 IF (p_value < 0) THEN
1236 x_return_status := FND_API.G_RET_STS_ERROR;
1237 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1238 FND_MESSAGE.Set_Name('ASO', 'API_MISSING_COLUMN');
1239 FND_MESSAGE.Set_Token('COLUMN', p_column_name, FALSE);
1240 FND_MSG_PUB.ADD;
1241 END IF;
1242 END IF;
1243
1244 FND_MSG_PUB.Count_And_Get(
1245 p_count => x_msg_count,
1246 p_data => x_msg_data);
1247
1248 END Validate_For_Positive;
1249
1250
1251 PROCEDURE Validate_Salescredit_Type(
1252 p_init_msg_list IN VARCHAR2,
1253 p_salescredit_type_id IN NUMBER,
1254 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
1255 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
1256 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
1257 IS
1258
1259 /*
1260 * 2633507 - hyang: use oe_sales_credit_types instead of
1261 * aso_i_sales_credit_types_v
1262 */
1263
1264 CURSOR C_salescredit_type IS
1265 select name from oe_sales_credit_types
1266 where sales_credit_type_id = p_salescredit_type_id;
1267
1268 l_sc_type VARCHAR2(240);
1269 BEGIN
1270 -- Initialize message list if p_init_msg_list is set to TRUE.
1271 IF FND_API.to_Boolean( p_init_msg_list ) THEN
1272 FND_MSG_PUB.initialize;
1273 END IF;
1274
1275 -- Initialize API return status to success
1276 x_return_status := FND_API.G_RET_STS_SUCCESS;
1277
1278 IF (p_salescredit_type_id IS NOT NULL AND p_salescredit_type_id <> FND_API.G_MISS_NUM) THEN
1279 OPEN C_salescredit_type;
1280 FETCH C_salescredit_type INTO l_sc_type;
1281 IF (C_salescredit_type%NOTFOUND) THEN
1282 CLOSE C_salescredit_type;
1283 x_return_status := FND_API.G_RET_STS_ERROR;
1284 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1285 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
1286 FND_MESSAGE.Set_Token('COLUMN', 'SALES CREDIT TYPE', FALSE);
1287 FND_MESSAGE.Set_Token('VALUE',to_char(p_salescredit_type_id),FALSE);
1288 FND_MSG_PUB.ADD;
1289 END IF;
1290 ELSE
1291 CLOSE C_salescredit_type;
1292 END IF;
1293 END IF;
1294
1295 END Validate_Salescredit_Type;
1296
1297 PROCEDURE Validate_Party_Type(
1298 p_init_msg_list IN VARCHAR2,
1299 p_party_type IN VARCHAR2,
1300 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
1301 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
1302 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
1303 IS
1304 CURSOR C_party_type IS
1305 select 'VALID'
1306 from aso_lookups
1307 where lookup_type = 'ASO_PARTY_TYPE'
1308 and lookup_code = p_party_type;
1309
1310 l_valid VARCHAR2(240);
1311 BEGIN
1312 -- Initialize message list if p_init_msg_list is set to TRUE.
1313 IF FND_API.to_Boolean( p_init_msg_list ) THEN
1314 FND_MSG_PUB.initialize;
1315 END IF;
1316
1317 -- Initialize API return status to success
1318 x_return_status := FND_API.G_RET_STS_SUCCESS;
1319
1320 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
1321 aso_debug_pub.add('Validate_PartyType: p_party_type: '||p_party_type, 1, 'N');
1322 END IF;
1323 IF (p_party_type IS NOT NULL AND p_party_type <> FND_API.G_MISS_CHAR) THEN
1324 OPEN C_party_type;
1325 FETCH C_party_type INTO l_valid;
1326 IF (C_party_type%NOTFOUND) THEN
1327 CLOSE C_party_type;
1328 x_return_status := FND_API.G_RET_STS_ERROR;
1329 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1330 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
1331 FND_MESSAGE.Set_Token('COLUMN', 'PARTY TYPE', FALSE);
1332 FND_MESSAGE.Set_Token('VALUE',p_party_type,FALSE);
1333 FND_MSG_PUB.ADD;
1334 END IF;
1335 ELSE
1336 CLOSE C_party_type;
1337 END IF;
1338 END IF;
1339 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
1340 aso_debug_pub.add('Validate_PartyType: x_return_status: '||x_return_status, 1, 'N');
1341 END IF;
1342 END Validate_Party_Type;
1343
1344 PROCEDURE Validate_Resource_id(
1345 p_init_msg_list IN VARCHAR2,
1346 p_resource_id IN NUMBER,
1347 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
1348 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
1349 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1350 )
1351 IS
1352
1353 CURSOR C_sales_rep (l_resource_id NUMBER) IS
1354 select 'VALID'
1355 /* from jtf_rs_srp_vl */ --Commented Code Yogeshwar (MOAC)
1356 from jtf_rs_salesreps_mo_v --New Code Yogeshwar (MOAC)
1357 WHERE trunc(sysdate) BETWEEN trunc(NVL(start_date_active, sysdate))
1358 AND trunc(NVL(end_date_active, sysdate))
1359 --Commentd Code Start Yogeshwar (MOAC)
1360 /*
1361 AND NVL(ORG_ID,NVL(TO_NUMBER(DECODE(SUBSTRB(USERENV('CLIENT_INFO' ),1,1) , ' ', NULL, SUBSTRB(USERENV('CLIENT_INFO'),1,10))),-99)) = NVL(TO_NUMBER(DECODE(SUBSTRB(USERENV('CLIENT_INFO'),1,1), ' ', NULL,SUBSTRB(USERENV('CLIENT_INFO'),1,10))),-99)
1362 */
1363 --Commented Code End Yogeshwar (MOAC)
1364 AND resource_id = l_resource_id;
1365
1366 l_valid VARCHAR2(240);
1367
1368 BEGIN
1369
1370 -- Initialize message list if p_init_msg_list is set to TRUE.
1371 IF FND_API.to_Boolean( p_init_msg_list ) THEN
1372 FND_MSG_PUB.initialize;
1373 END IF;
1374
1375 -- Initialize API return status to success
1376 x_return_status := FND_API.G_RET_STS_SUCCESS;
1377
1378 IF (p_resource_id IS NOT NULL AND p_resource_id <> FND_API.G_MISS_NUM) THEN
1379 OPEN C_sales_rep(p_resource_id);
1380 FETCH C_sales_rep INTO l_valid;
1381 IF (C_sales_rep%NOTFOUND) THEN
1382 x_return_status := FND_API.G_RET_STS_ERROR;
1383 END IF;
1384 CLOSE C_sales_rep;
1385 END IF;
1386
1387 END Validate_Resource_id;
1388
1389 -- jtf_rs_resource_ext
1390 -- jtf_rs_res_emp_vl
1391
1392 PROCEDURE Validate_Emp_Res_id(
1393 p_init_msg_list IN VARCHAR2,
1394 p_resource_id IN NUMBER,
1395 p_employee_person_id IN NUMBER,
1396 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
1397 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
1398 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
1399 IS
1400 CURSOR C_emp_res IS
1401 select person_id
1402 from jtf_rs_srp_vl
1403 where resource_id = p_resource_id
1404 and trunc(sysdate) BETWEEN trunc(NVL(start_date_active, sysdate)) AND
1405 trunc(NVL(end_date_active, sysdate));
1406
1407 l_person_id NUMBER;
1408 BEGIN
1409 -- Initialize message list if p_init_msg_list is set to TRUE.
1410 IF FND_API.to_Boolean( p_init_msg_list ) THEN
1411 FND_MSG_PUB.initialize;
1412 END IF;
1413
1414 -- Initialize API return status to success
1415 x_return_status := FND_API.G_RET_STS_SUCCESS;
1416
1417 IF (p_resource_id IS NOT NULL AND p_resource_id <> FND_API.G_MISS_NUM)
1418 AND (p_employee_person_id IS NOT NULL AND p_employee_person_id <> FND_API.G_MISS_NUM) THEN
1419 OPEN C_emp_res;
1420 FETCH C_emp_res INTO l_person_id;
1421 IF (C_emp_res%NOTFOUND) OR l_person_id IS NULL OR l_person_id = FND_API.G_MISS_NUM THEN
1422 CLOSE C_emp_res;
1423 x_return_status := FND_API.G_RET_STS_ERROR;
1424 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1425 FND_MESSAGE.Set_Name('ASO', 'ASO_SALESREP');
1426 FND_MESSAGE.Set_Token('COLUMN', 'RESOURCE ID', FALSE);
1427 FND_MSG_PUB.ADD;
1428 END IF;
1429 ELSIF l_person_id <> p_employee_person_id THEN
1430 CLOSE C_emp_res;
1431 x_return_status := FND_API.G_RET_STS_ERROR;
1432 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1433 FND_MESSAGE.Set_Name('ASO', 'ASO_SALESREP');
1434 FND_MESSAGE.Set_Token('COLUMN', 'RESOURCE ID', FALSE);
1435 FND_MSG_PUB.ADD;
1436 END IF;
1437 END IF;
1438 END IF;
1439
1440 END Validate_Emp_Res_id;
1441
1442 PROCEDURE Validate_Resource_group_id(
1443 p_init_msg_list IN VARCHAR2,
1444 p_resource_group_id IN NUMBER,
1445 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
1446 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
1447 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
1448 IS
1449 CURSOR C_resource_group IS
1450 select 'VALID'
1451 from jtf_rs_groups_b
1452 where group_id = p_resource_group_id
1453 and trunc(sysdate) BETWEEN trunc(NVL(start_date_active, sysdate)) AND
1454 trunc(NVL(end_date_active, sysdate));
1455
1456 l_valid VARCHAR2(240);
1457 BEGIN
1458 -- Initialize message list if p_init_msg_list is set to TRUE.
1459 IF FND_API.to_Boolean( p_init_msg_list ) THEN
1460 FND_MSG_PUB.initialize;
1461 END IF;
1462
1463 -- Initialize API return status to success
1464 x_return_status := FND_API.G_RET_STS_SUCCESS;
1465
1466 IF (p_resource_group_id IS NOT NULL AND p_resource_group_id <> FND_API.G_MISS_NUM) THEN
1467 OPEN C_resource_group;
1468 FETCH C_resource_group INTO l_valid;
1469 IF (C_resource_group%NOTFOUND) THEN
1470 CLOSE C_resource_group;
1471 x_return_status := FND_API.G_RET_STS_ERROR;
1472 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1473 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
1474 FND_MESSAGE.Set_Token('COLUMN', 'RESOURCE GROUP', FALSE);
1475 FND_MESSAGE.Set_Token('VALUE',to_char(p_resource_group_id),FALSE);
1476 FND_MSG_PUB.ADD;
1477 END IF;
1478 ELSE
1479 CLOSE C_resource_group;
1480 END IF;
1481 END IF;
1482
1483 END Validate_Resource_group_id;
1484
1485 PROCEDURE Validate_Party_Object_Type(
1486 p_init_msg_list IN VARCHAR2,
1487 p_party_object_type IN VARCHAR2,
1488 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
1489 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
1490 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
1491 IS
1492 CURSOR C_party_object_type IS
1493 select 'VALID'
1494 from aso_lookups
1495 where lookup_type = 'ASO_PARTY_OBJECT_TYPE'
1496 and lookup_code = p_party_object_type;
1497
1498 l_valid VARCHAR2(240);
1499 BEGIN
1500 -- Initialize message list if p_init_msg_list is set to TRUE.
1501 IF FND_API.to_Boolean( p_init_msg_list ) THEN
1502 FND_MSG_PUB.initialize;
1503 END IF;
1504
1505 -- Initialize API return status to success
1506 x_return_status := FND_API.G_RET_STS_SUCCESS;
1507
1508 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
1509 aso_debug_pub.add('Validate_PartyObjType: p_party_object_type: '||p_party_object_type, 1, 'N');
1510 END IF;
1511 IF (p_party_object_type IS NOT NULL AND p_party_object_type <> FND_API.G_MISS_CHAR) THEN
1512 OPEN C_party_object_type;
1513 FETCH C_party_object_type INTO l_valid;
1514 IF (C_party_object_type%NOTFOUND) THEN
1515 CLOSE C_party_object_type;
1516 x_return_status := FND_API.G_RET_STS_ERROR;
1517 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1518 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
1519 FND_MESSAGE.Set_Token('COLUMN', 'PARTY OBJECT TYPE', FALSE);
1520 FND_MESSAGE.Set_Token('VALUE',p_party_object_type,FALSE);
1521 FND_MSG_PUB.ADD;
1522 END IF;
1523 ELSE
1524 CLOSE C_party_object_type;
1525 END IF;
1526 END IF;
1527
1528 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
1529 aso_debug_pub.add('Validate_PartyObjType: x_return_status: '||x_return_status, 1, 'N');
1530 END IF;
1531 END Validate_Party_Object_Type;
1532
1533 PROCEDURE Validate_Party_Object_Id(
1534 p_init_msg_list IN VARCHAR2,
1535 p_party_id IN NUMBER,
1536 p_party_object_type IN VARCHAR2,
1537 p_party_object_id IN NUMBER,
1538 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
1539 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
1540 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
1541 IS
1542 CURSOR C_contact_point IS
1543 select contact_point_type
1544 from aso_i_contact_points_v
1545 where contact_point_id = p_party_object_id;
1546
1547 l_type varchar(240);
1548 BEGIN
1549 -- Initialize message list if p_init_msg_list is set to TRUE.
1550 IF FND_API.to_Boolean( p_init_msg_list ) THEN
1551 FND_MSG_PUB.initialize;
1552 END IF;
1553
1554 -- Initialize API return status to success
1555 x_return_status := FND_API.G_RET_STS_SUCCESS;
1556
1557
1558 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
1559 aso_debug_pub.add('Validate_PartyObjId: p_party_object_type: '||p_party_object_type, 1, 'N');
1560 aso_debug_pub.add('Validate_PartyObjId: p_party_object_id: '||p_party_object_id, 1, 'N');
1561 END IF;
1562 IF p_party_object_type IS NOT NULL and p_party_object_type <> FND_API.G_MISS_CHAR THEN
1563 IF p_party_object_id is null OR p_party_object_id = FND_API.G_MISS_NUM THEN
1564 x_return_status := FND_API.G_RET_STS_ERROR;
1565 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1566 FND_MESSAGE.Set_Name('ASO', 'API_MISSING_COLUMN');
1567 FND_MESSAGE.Set_Token('COLUMN', 'PARTY OBJECT ID', FALSE);
1568 FND_MSG_PUB.ADD;
1569 END IF;
1570 END IF;
1571
1572 /* IF (p_party_object_type = 'PARTY_SITE') THEN
1573
1574 Validate_PartySite(
1575 p_init_msg_list => p_init_msg_list,
1576 p_party_id => p_party_id,
1577 p_party_site_id => p_party_object_id,
1578 p_site_usage => p_party_object_type,
1579 x_return_status => x_return_status,
1580 x_msg_count => x_msg_count,
1581 x_msg_data => x_msg_data) ;
1582 */
1583
1584 IF (p_party_object_type = 'CONTACT_POINT') THEN
1585
1586 OPEN C_contact_point;
1587 FETCH C_contact_point INTO l_type;
1588 IF (C_contact_point%NOTFOUND) THEN
1589 CLOSE C_contact_point;
1590 x_return_status := FND_API.G_RET_STS_ERROR;
1591 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1592 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
1593 FND_MESSAGE.Set_Token('COLUMN', 'CONTACT POINT', FALSE);
1594 FND_MSG_PUB.ADD;
1595 END IF;
1596 ELSE
1597 CLOSE C_contact_point;
1598 END IF;
1599
1600
1601 END IF; -- party site.
1602 END IF;
1603
1604 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
1605 aso_debug_pub.add('Validate_PartyObjId: x_return_status: '||x_return_status, 1, 'N');
1606 END IF;
1607 END;
1608
1609
1610 -- this procedure is used to make sure that the same quote number is not
1611 -- being used especially when the user calls create quote and passes the
1612 -- quote number
1613
1614 PROCEDURE Validate_Quote_Number(
1615 p_init_msg_list IN VARCHAR2,
1616 p_quote_number IN NUMBER,
1617 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
1618 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
1619 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
1620 IS
1621 CURSOR C_quote_number IS
1622 select quote_version
1623 from aso_quote_headers_all
1624 where quote_number = p_quote_number;
1625
1626 l_version varchar(240);
1627 BEGIN
1628 -- Initialize message list if p_init_msg_list is set to TRUE.
1629 IF FND_API.to_Boolean( p_init_msg_list ) THEN
1630 FND_MSG_PUB.initialize;
1631 END IF;
1632
1633 -- Initialize API return status to success
1634 x_return_status := FND_API.G_RET_STS_SUCCESS;
1635
1636 IF p_quote_number is not NULL and p_quote_number <> FND_API.G_MISS_NUM THEN
1637
1638 OPEN C_quote_number;
1639 FETCH C_quote_number INTO l_version;
1640 IF (C_quote_number%NOTFOUND) THEN
1641 CLOSE C_quote_number; -- unique quote number
1642 ELSE
1643 CLOSE C_quote_number;
1644 x_return_status := FND_API.G_RET_STS_ERROR;
1645 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1646 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
1647 FND_MESSAGE.Set_Token('COLUMN', 'QUOTE NUMBER', FALSE);
1648 FND_MSG_PUB.ADD;
1649 END IF;
1650 END IF;
1651
1652 END IF;
1653 END Validate_Quote_Number;
1654
1655 PROCEDURE Validate_Desc_Flexfield(
1656 p_desc_flex_rec IN OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.attribute_rec_type,
1657 p_desc_flex_name IN VARCHAR2 ,
1658 p_value_or_id IN VARCHAR2 := 'I',
1659 x_return_status OUT NOCOPY /* file.sql.39 change */ varchar2)
1660 IS
1661
1662 l_flex_name fnd_descriptive_flexs.descriptive_flexfield_name%type;
1663 l_count NUMBER;
1664 l_col_name VARCHAR2(50);
1665 l_flex_exists VARCHAR2(1);
1666 l_error_msg VARCHAR2(240);
1667
1668 CURSOR desc_flex_exists IS
1669 SELECT 'Y'
1670 FROM fnd_descriptive_flexs
1671 WHERE application_id = ASO_QUOTE_PUB.OC_APPL_ID
1672 and descriptive_flexfield_name = p_desc_flex_name;
1673
1674
1675 BEGIN
1676
1677 x_return_status := FND_API.G_RET_STS_SUCCESS;
1678
1679
1680 OPEN desc_flex_exists;
1681 FETCH desc_flex_exists INTO l_flex_exists;
1682 IF desc_flex_exists%NOTFOUND THEN
1683 CLOSE desc_flex_exists;
1684 x_return_status := FND_API.G_RET_STS_ERROR;
1685 FND_MESSAGE.SET_NAME('ASO', 'ASO_FLEX_INVALID_NAME');
1686 FND_MESSAGE.SET_TOKEN('FLEX_NAME',p_desc_flex_name);
1687 FND_MSG_PUB.ADD ;
1688 return;
1689 END IF;
1690 CLOSE desc_flex_exists;
1691
1692
1693 fnd_flex_descval.set_context_value(p_desc_flex_rec.attribute_category);
1694 fnd_flex_descval.set_column_value('ATTRIBUTE1', p_desc_flex_rec.attribute1);
1695 fnd_flex_descval.set_column_value('ATTRIBUTE2', p_desc_flex_rec.attribute2);
1696 fnd_flex_descval.set_column_value('ATTRIBUTE3', p_desc_flex_rec.attribute3);
1697 fnd_flex_descval.set_column_value('ATTRIBUTE4', p_desc_flex_rec.attribute4);
1698 fnd_flex_descval.set_column_value('ATTRIBUTE5', p_desc_flex_rec.attribute5);
1699 fnd_flex_descval.set_column_value('ATTRIBUTE6', p_desc_flex_rec.attribute6);
1700 fnd_flex_descval.set_column_value('ATTRIBUTE7', p_desc_flex_rec.attribute7);
1701 fnd_flex_descval.set_column_value('ATTRIBUTE8', p_desc_flex_rec.attribute8);
1702 fnd_flex_descval.set_column_value('ATTRIBUTE9', p_desc_flex_rec.attribute9);
1703 fnd_flex_descval.set_column_value('ATTRIBUTE10', p_desc_flex_rec.attribute10);
1704 fnd_flex_descval.set_column_value('ATTRIBUTE11',p_desc_flex_rec.attribute11);
1705 fnd_flex_descval.set_column_value('ATTRIBUTE12', p_desc_flex_rec.attribute12);
1706 fnd_flex_descval.set_column_value('ATTRIBUTE13', p_desc_flex_rec.attribute13);
1707 fnd_flex_descval.set_column_value('ATTRIBUTE14', p_desc_flex_rec.attribute14);
1708 fnd_flex_descval.set_column_value('ATTRIBUTE15', p_desc_flex_rec.attribute15);
1709
1710 IF ( NOT fnd_flex_descval.validate_desccols('ASO', p_desc_flex_name, p_value_or_id) )
1711 THEN
1712
1713 FND_MESSAGE.SET_NAME('ASO', 'ASO_DESC_FLEX_INVALID');
1714 FND_MESSAGE.SET_TOKEN('DFF_NAME',p_desc_flex_name);
1715 FND_MSG_PUB.ADD ;
1716 x_return_status := FND_API.G_RET_STS_ERROR;
1717 l_error_msg := FND_FLEX_DESCVAL.error_message;
1718 FND_MESSAGE.SET_NAME('ASO', 'ASO_FLEX_INVALID_MSG');
1719 FND_MESSAGE.SET_TOKEN('MSG_TEXT',l_error_msg);
1720 FND_MSG_PUB.ADD ;
1721 END IF;
1722
1723 l_count := fnd_flex_descval.segment_count;
1724
1725 FOR i in 1..l_count LOOP
1726 l_col_name := fnd_flex_descval.segment_column_name(i);
1727
1728 IF l_col_name = 'ATTRIBUTE1' THEN
1729 p_desc_flex_rec.attribute1 := fnd_flex_descval.segment_value(i);
1730 ELSIF l_col_name = 'ATTRIBUTE_CATEGORY' THEN
1731 p_desc_flex_rec.attribute_category := fnd_flex_descval.segment_value(i);
1732 ELSIF l_col_name = 'ATTRIBUTE2' THEN
1733 p_desc_flex_rec.attribute2 := fnd_flex_descval.segment_value(i);
1734 ELSIF l_col_name = 'ATTRIBUTE3' THEN
1735 p_desc_flex_rec.attribute3 := fnd_flex_descval.segment_value(i);
1736 ELSIF l_col_name = 'ATTRIBUTE4' THEN
1737 p_desc_flex_rec.attribute4 := fnd_flex_descval.segment_value(i);
1738 ELSIF l_col_name = 'ATTRIBUTE5' THEN
1739 p_desc_flex_rec.attribute5 := fnd_flex_descval.segment_value(i);
1740 ELSIF l_col_name = 'ATTRIBUTE6' THEN
1741 p_desc_flex_rec.attribute6 := fnd_flex_descval.segment_value(i);
1742 ELSIF l_col_name = 'ATTRIBUTE7' THEN
1743 p_desc_flex_rec.attribute7 := fnd_flex_descval.segment_value(i);
1744 ELSIF l_col_name = 'ATTRIBUTE8' THEN
1745 p_desc_flex_rec.attribute8 := fnd_flex_descval.segment_value(i);
1746 ELSIF l_col_name = 'ATTRIBUTE9' THEN
1747 p_desc_flex_rec.attribute9 := fnd_flex_descval.segment_value(i);
1748 ELSIF l_col_name = 'ATTRIBUTE10' THEN
1749 p_desc_flex_rec.attribute10 := fnd_flex_descval.segment_value(i);
1750 ELSIF l_col_name = 'ATTRIBUTE11' THEN
1751 p_desc_flex_rec.attribute11 := fnd_flex_descval.segment_value(i);
1752 ELSIF l_col_name = 'ATTRIBUTE12' THEN
1753 p_desc_flex_rec.attribute12 := fnd_flex_descval.segment_value(i);
1754 ELSIF l_col_name = 'ATTRIBUTE13' THEN
1755 p_desc_flex_rec.attribute13 := fnd_flex_descval.segment_value(i);
1756 ELSIF l_col_name = 'ATTRIBUTE14' THEN
1757 p_desc_flex_rec.attribute14 := fnd_flex_descval.segment_value(i);
1758 ELSIF l_col_name = 'ATTRIBUTE15' THEN
1759 p_desc_flex_rec.attribute15 := fnd_flex_descval.segment_value(i);
1760 END IF;
1761
1762 IF i > l_count THEN
1763 EXIT;
1764 END IF;
1765 END LOOP;
1766
1767 EXCEPTION
1768 WHEN OTHERS THEN
1769 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1770 RETURN;
1771
1772 END Validate_Desc_Flexfield;
1773
1774
1775 -- TCA CHANGES
1776 /*
1777 If specified, should be a valid (i.e. active) cust account.
1778 Should not be null if either the invoice_to_cust_account_id
1779 or the ship_to_cust_account_id is specified
1780 */
1781 PROCEDURE Validate_CustAccount_bsc(
1782 p_init_msg_list IN VARCHAR2,
1783 p_party_id IN NUMBER,
1784 p_cust_account_id IN NUMBER,
1785 p_inv_cust_account_id IN NUMBER,
1786 p_end_cust_account_id IN NUMBER,
1787 p_shp_cust_account_id IN NUMBER,
1788 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
1789 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
1790 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
1791 IS
1792 CURSOR C_Account(l_account_id NUMBER) IS
1793 SELECT status, account_activation_date, account_termination_date
1794 FROM HZ_CUST_ACCOUNTS
1795 WHERE cust_account_id = l_account_id;
1796
1797 l_api_name VARCHAR2(40) := 'Validate_CustAccount_bsc' ;
1798 l_account_status VARCHAR2(1);
1799 l_activation_date DATE;
1800 l_termination_date DATE;
1801 BEGIN
1802 -- SAVEPOINT VALIDATE_CUSTACCOUNT_PVT;
1803 -- Initialize message list if p_init_msg_list is set to TRUE.
1804 IF FND_API.to_Boolean( p_init_msg_list ) THEN
1805 FND_MSG_PUB.initialize;
1806 END IF;
1807
1808 -- Initialize API return status to success
1809 x_return_status := FND_API.G_RET_STS_SUCCESS;
1810
1811 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
1812 aso_debug_pub.add('Validate_custAcctBsc: p_cust_account_id: '||p_cust_account_id, 1, 'N');
1813 END IF;
1814 IF (p_cust_account_id IS NOT NULL AND p_cust_account_id <> FND_API.G_MISS_NUM) THEN
1815 OPEN C_Account(p_cust_account_id);
1816 FETCH C_Account INTO l_account_status, l_activation_date, l_termination_date;
1817 IF (C_Account%NOTFOUND OR
1818 (sysdate NOT BETWEEN NVL(l_activation_date, sysdate) AND
1819 NVL(l_termination_date, sysdate))OR
1820 l_account_status <> 'A') THEN
1821 x_return_status := FND_API.G_RET_STS_ERROR;
1822 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1823 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
1824 FND_MESSAGE.Set_Token('COLUMN', 'CUST_ACCOUNT', FALSE);
1825 FND_MESSAGE.Set_Token('VALUE',to_char(p_cust_account_id),FALSE);
1826 FND_MSG_PUB.ADD;
1827 END IF;
1828
1829 END IF;
1830 CLOSE C_Account;
1831 END IF;
1832
1833 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
1834 aso_debug_pub.add('p_ship_cust_account_id = ' ||p_shp_cust_account_id,2,'N');
1835 aso_debug_pub.add('p_inv_cust_account = ' || p_inv_cust_account_id , 2, 'N');
1836 aso_debug_pub.add('p_end_cust_account = ' || p_end_cust_account_id , 2, 'N');
1837 END IF;
1838
1839 IF (p_inv_cust_account_id IS NOT NULL AND
1840 p_inv_cust_account_id <> FND_API.G_MISS_NUM) THEN
1841
1842 OPEN C_Account(p_inv_cust_account_id);
1843 FETCH C_Account INTO l_account_status, l_activation_date, l_termination_date;
1844 IF (C_Account%NOTFOUND OR
1845 (sysdate NOT BETWEEN NVL(l_activation_date, sysdate) AND
1846 NVL(l_termination_date, sysdate))OR
1847 l_account_status <> 'A') THEN
1848
1849 x_return_status := FND_API.G_RET_STS_ERROR;
1850 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1851 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
1852 FND_MESSAGE.Set_Token('COLUMN', 'INVOICE_CUST_ACCOUNT', FALSE);
1853 FND_MESSAGE.Set_Token('VALUE',to_char(p_inv_cust_account_id),FALSE);
1854 FND_MSG_PUB.ADD;
1855 END IF;
1856
1857 END IF;
1858 CLOSE C_Account;
1859 END IF;
1860
1861 IF (p_end_cust_account_id IS NOT NULL AND
1862 p_end_cust_account_id <> FND_API.G_MISS_NUM) THEN
1863
1864 OPEN C_Account(p_end_cust_account_id);
1865 FETCH C_Account INTO l_account_status, l_activation_date, l_termination_date;
1866 IF (C_Account%NOTFOUND OR
1867 (sysdate NOT BETWEEN NVL(l_activation_date, sysdate) AND
1868 NVL(l_termination_date, sysdate))OR
1869 l_account_status <> 'A') THEN
1870
1871 x_return_status := FND_API.G_RET_STS_ERROR;
1872 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1873 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
1874 FND_MESSAGE.Set_Token('COLUMN', 'END_CUST_ACCOUNT', FALSE);
1875 FND_MESSAGE.Set_Token('VALUE',to_char(p_end_cust_account_id),FALSE);
1876 FND_MSG_PUB.ADD;
1877 END IF;
1878
1879 END IF;
1880 CLOSE C_Account;
1881 END IF;
1882
1883 IF (p_shp_cust_account_id IS NOT NULL AND
1884 p_shp_cust_account_id <> FND_API.G_MISS_NUM) THEN
1885
1886 OPEN C_Account(p_shp_cust_account_id);
1887 FETCH C_Account INTO l_account_status, l_activation_date, l_termination_date;
1888 IF (C_Account%NOTFOUND OR
1889 (sysdate NOT BETWEEN NVL(l_activation_date, sysdate) AND
1890 NVL(l_termination_date, sysdate))OR
1891 l_account_status <> 'A') THEN
1892
1893 x_return_status := FND_API.G_RET_STS_ERROR;
1894 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1895 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
1896 FND_MESSAGE.Set_Token('COLUMN', 'SHIP_CUST_ACCOUNT', FALSE);
1897 FND_MESSAGE.Set_Token('VALUE',to_char(p_shp_cust_account_id),FALSE);
1898 FND_MSG_PUB.ADD;
1899 END IF;
1900
1901 END IF;
1902 CLOSE C_Account;
1903 END IF;
1904 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
1905 aso_debug_pub.add('after validate cust ' || x_return_status , 2, 'N');
1906 END IF;
1907
1908 END Validate_CustAccount_bsc;
1909
1910 /* If specified, should be a valid org_contact_id, where
1911 party in the subject of the relationship is of type person*/
1912 PROCEDURE Validate_org_contact_bsc(
1913 p_init_msg_list IN VARCHAR2,
1914 p_contact_id IN NUMBER,
1915 p_cust_account_id IN NUMBER,
1916 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
1917 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
1918 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
1919 IS
1920
1921 CURSOR C_Contact(l_contact_id NUMBER) IS
1922 SELECT subject_id, a.status
1923 FROM HZ_ORG_CONTACTS a, HZ_RELATIONSHIPS b
1924 WHERE org_contact_id = l_contact_id
1925 AND a.party_relationship_id = b.relationship_id;
1926
1927 CURSOR C_Party_Cust(l_party_id NUMBER) IS
1928 SELECT status, party_type
1929 FROM HZ_PARTIES
1930 WHERE party_id= l_party_id;
1931
1932 l_party_relationship_id NUMBER;
1933 l_subject_id NUMBER;
1934 l_status VARCHAR2(1);
1935 l_party_type VARCHAR2(30);
1936
1937 BEGIN
1938 -- Initialize message list if p_init_msg_list is set to TRUE.
1939 IF FND_API.to_Boolean( p_init_msg_list ) THEN
1940 FND_MSG_PUB.initialize;
1941 END IF;
1942
1943 -- Initialize API return status to success
1944 x_return_status := FND_API.G_RET_STS_SUCCESS;
1945
1946
1947 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
1948 aso_debug_pub.add('Validate_OrgContBsc: p_contact_id: '||p_contact_id, 1, 'N');
1949 aso_debug_pub.add('Validate_OrgContBsc: p_cust_account_id: '||p_cust_account_id, 1, 'N');
1950 END IF;
1951 IF (p_contact_id IS NOT NULL AND p_contact_id <> FND_API.G_MISS_NUM) THEN
1952 OPEN C_Contact(p_contact_id);
1953 FETCH C_Contact INTO l_subject_id, l_status;
1954 IF (C_Contact%NOTFOUND OR l_status <>'A') THEN
1955
1956 x_return_status := FND_API.G_RET_STS_ERROR;
1957 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1958 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
1959 FND_MESSAGE.Set_Token('COLUMN', 'org_contact_id', FALSE);
1960 FND_MESSAGE.Set_Token('VALUE',to_char(p_contact_id),FALSE);
1961 FND_MSG_PUB.ADD;
1962 END IF;
1963 ELSE
1964 OPEN C_Party_Cust(l_subject_id);
1965 FETCH C_Party_Cust INTO l_status ,l_party_type;
1966 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
1967 aso_debug_pub.add('Validate_OrgContBsc: l_subject_id: '||l_subject_id, 1, 'N');
1968 aso_debug_pub.add('Validate_OrgContBsc: l_party_type: '||l_party_type, 1, 'N');
1969 END IF;
1970 IF ( C_Party_Cust%NOTFOUND OR l_status <> 'A' OR l_party_type <> 'PERSON' ) THEN
1971 CLOSE C_Party_Cust;
1972 x_return_status := FND_API.G_RET_STS_ERROR;
1973 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1974 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
1975 FND_MESSAGE.Set_Token('COLUMN', 'org_contact_id', FALSE);
1976 FND_MESSAGE.Set_Token('VALUE',to_char(p_contact_id),FALSE);
1977 FND_MSG_PUB.ADD;
1978 END IF;
1979 END IF;
1980 CLOSE C_Party_Cust;
1981 END IF;
1982 CLOSE C_Contact;
1983 END IF;
1984
1985 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
1986 aso_debug_pub.add('Validate_OrgContBsc: x_return_status: '||x_return_status, 1, 'N');
1987 END IF;
1988 END Validate_Org_Contact_bsc;
1989
1990 /* Should not be null, Should be a valid party_id of type person,
1991 organization or relationship.*/
1992 PROCEDURE Validate_Party_bsc(
1993 p_init_msg_list IN VARCHAR2,
1994 p_party_id IN NUMBER,
1995 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
1996 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
1997 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
1998 IS
1999 CURSOR C_Party(l_pty_id NUMBER) IS
2000 SELECT status FROM HZ_PARTIES
2001 WHERE party_id = l_pty_id and party_type in
2002 ('PERSON','PARTY_RELATIONSHIP','ORGANIZATION');
2003
2004 l_party_status VARCHAR2(1);
2005
2006 BEGIN
2007 -- Initialize message list if p_init_msg_list is set to TRUE.
2008 IF FND_API.to_Boolean( p_init_msg_list ) THEN
2009 FND_MSG_PUB.initialize;
2010 END IF;
2011
2012 -- Initialize API return status to success
2013 x_return_status := FND_API.G_RET_STS_SUCCESS;
2014
2015 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2016 aso_debug_pub.add('Validate_PtyBsc: p_party_id: '||p_party_id, 1, 'N');
2017 END IF;
2018 IF (p_party_id IS NOT NULL AND p_party_id <> FND_API.G_MISS_NUM) THEN
2019 OPEN C_Party(p_party_id);
2020 FETCH C_Party INTO l_party_status;
2021 IF (C_Party%NOTFOUND OR l_party_status <> 'A') THEN
2022 CLOSE C_Party;
2023 x_return_status := FND_API.G_RET_STS_ERROR;
2024 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2025 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
2026 FND_MESSAGE.Set_Token('COLUMN', 'party_Id', FALSE);
2027 FND_MESSAGE.Set_Token('VALUE',to_char(p_party_id),FALSE);
2028 FND_MSG_PUB.ADD;
2029 END IF;
2030 ELSE
2031 CLOSE C_Party;
2032 END IF;
2033 END IF;
2034
2035 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2036 aso_debug_pub.add('Validate_PtyBsc: x_return_status: '||x_return_status, 1, 'N');
2037 END IF;
2038 FND_MSG_PUB.Count_And_Get(
2039 p_count => x_msg_count,
2040 p_data => x_msg_data);
2041
2042 END Validate_Party_bsc;
2043
2044 PROCEDURE Validate_Inv_Party_bsc(
2045 p_init_msg_list IN VARCHAR2,
2046 p_party_id IN NUMBER ,
2047 p_site_use IN VARCHAR2,
2048 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
2049 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
2050 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
2051 IS
2052 CURSOR C_Party(l_pty_id NUMBER) IS
2053 SELECT status FROM HZ_PARTIES
2054 WHERE party_id = l_pty_id AND party_type ='PARTY_RELATIONSHIP';
2055
2056 l_party_status VARCHAR2(1);
2057
2058 BEGIN
2059 -- Initialize message list if p_init_msg_list is set to TRUE.
2060 IF FND_API.to_Boolean( p_init_msg_list ) THEN
2061 FND_MSG_PUB.initialize;
2062 END IF;
2063
2064 -- Initialize API return status to success
2065 x_return_status := FND_API.G_RET_STS_SUCCESS;
2066
2067 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2068 aso_debug_pub.add('Validate_InvPtyBsc: p_party_id: '||p_party_id, 1, 'N');
2069 aso_debug_pub.add('Validate_InvPtyBsc: p_site_use: '||p_site_use, 1, 'N');
2070 END IF;
2071 IF (p_party_id IS NOT NULL AND p_party_id <> FND_API.G_MISS_NUM) THEN
2072 OPEN C_Party(p_party_id);
2073 FETCH C_Party INTO l_party_status;
2074 IF (C_Party%NOTFOUND OR l_party_status <> 'A') THEN
2075 CLOSE C_Party;
2076 x_return_status := FND_API.G_RET_STS_ERROR;
2077 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2078 IF p_site_use ='BILL_TO' THEN
2079 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
2080 FND_MESSAGE.Set_Token('COLUMN', 'Invoice_to_party_Id', FALSE);
2081 FND_MESSAGE.Set_Token('VALUE',to_char(p_party_id),FALSE);
2082 FND_MSG_PUB.ADD;
2083 ELSIF p_site_use ='END_USER' THEN
2084 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
2085 FND_MESSAGE.Set_Token('COLUMN', 'End_Customer_party_Id', FALSE);
2086 FND_MESSAGE.Set_Token('VALUE',to_char(p_party_id),FALSE);
2087 FND_MSG_PUB.ADD;
2088 ELSIF p_site_use ='SHIP_TO' THEN
2089 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
2090 FND_MESSAGE.Set_Token('COLUMN', 'Ship_to_party_Id', FALSE);
2091 FND_MESSAGE.Set_Token('VALUE',to_char(p_party_id),FALSE);
2092 FND_MSG_PUB.ADD;
2093 END IF;
2094 END IF;
2095 ELSE
2096 CLOSE C_Party;
2097 END IF;
2098
2099 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2100 aso_debug_pub.add('Validate_InvPtyBsc: x_return_status: '||x_return_status, 1, 'N');
2101 END IF;
2102 END IF;
2103
2104 FND_MSG_PUB.Count_And_Get(
2105 p_count => x_msg_count,
2106 p_data => x_msg_data);
2107
2108 END Validate_Inv_Party_bsc;
2109
2110
2111 /*Should not be null if either -invoice_to_party_id is specified,
2112 should be a valid party_site_id with party_site_use of 'Bill_To'*/
2113
2114 PROCEDURE Validate_Inv_PartySite_bsc(
2115 p_init_msg_list IN VARCHAR2,
2116 p_party_id IN NUMBER,
2117 p_party_site_id IN NUMBER,
2118 p_party_site_use IN VARCHAR2,
2119 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
2120 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
2121 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
2122 IS
2123
2124 CURSOR C_Inv_Party_Site(l_pty_site NUMBER) IS
2125 SELECT a.status
2126 FROM HZ_PARTY_SITES a
2127 WHERE a.party_site_id = l_pty_site;
2128
2129 l_status VARCHAR2(1);
2130
2131 BEGIN
2132
2133 -- Initialize message list if p_init_msg_list is set to TRUE.
2134 IF FND_API.to_Boolean( p_init_msg_list ) THEN
2135 FND_MSG_PUB.initialize;
2136 END IF;
2137
2138 -- Initialize API return status to success
2139 x_return_status := FND_API.G_RET_STS_SUCCESS;
2140
2141 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2142 aso_debug_pub.add('Validate_InvPtySiteBsc: p_party_id: '||p_party_id, 1, 'N');
2143 aso_debug_pub.add('Validate_InvPtySiteBsc: p_party_site_id: '||p_party_site_id, 1, 'N');
2144 aso_debug_pub.add('Validate_InvPtySiteBsc: p_party_site_use: '||p_party_site_use, 1, 'N');
2145 END IF;
2146 IF (p_party_id IS NOT NULL AND p_party_id <> FND_API.G_MISS_NUM) THEN
2147 IF (p_party_site_id IS NULL OR p_party_site_id = FND_API.G_MISS_NUM) THEN
2148 x_return_status := FND_API.G_RET_STS_ERROR;
2149 IF p_party_site_use = 'BILL_TO' THEN
2150 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2151 FND_MESSAGE.Set_Name('ASO', 'ASO_BILL_ADDRESS_REQD');
2152 FND_MSG_PUB.ADD;
2153 END IF;
2154 ELSIF p_party_site_use = 'END_USER' THEN
2155 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2156 FND_MESSAGE.Set_Name('ASO', 'ASO_END_ADDRESS_REQD');
2157 FND_MSG_PUB.ADD;
2158 END IF;
2159 ELSIF p_party_site_use = 'SHIP_TO' THEN
2160 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2161 FND_MESSAGE.Set_Name('ASO', 'ASO_SHIP_ADDRESS_REQD');
2162 FND_MSG_PUB.ADD;
2163 END IF;
2164 END IF;
2165 END IF;
2166 ELSE
2167 IF (p_party_site_id IS NOT NULL AND p_party_site_id <> FND_API.G_MISS_NUM) THEN
2168 OPEN C_Inv_Party_Site(p_party_site_id);
2169 FETCH C_Inv_Party_Site INTO l_status;
2170 IF (C_Inv_Party_Site%NOTFOUND OR
2171 l_status <> 'A') THEN
2172 x_return_status := FND_API.G_RET_STS_ERROR;
2173 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2174 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
2175 FND_MESSAGE.Set_Token('COLUMN', 'party_site_id', FALSE);
2176 FND_MESSAGE.Set_Token('VALUE',to_char(p_party_site_id),FALSE);
2177 FND_MSG_PUB.ADD;
2178 END IF;
2179 END IF;
2180 CLOSE C_Inv_Party_Site;
2181 END IF;
2182 END IF;
2183
2184 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2185 aso_debug_pub.add('Validate_InvPtySiteBsc: x_return_status: '||x_return_status, 1, 'N');
2186 END IF;
2187 END Validate_Inv_PartySite_bsc;
2188
2189 PROCEDURE Validate_Party_Crs(
2190 p_init_msg_list IN VARCHAR2,
2191 p_party_id IN NUMBER,
2192 p_cust_party_id IN NUMBER,
2193 p_cust_account_id IN NUMBER,
2194 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
2195 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
2196 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
2197 IS
2198
2199 CURSOR C_Account IS
2200 SELECT a.status FROM HZ_CUST_ACCOUNTS a
2201 WHERE a.party_id = p_cust_party_id AND cust_account_id = p_cust_account_id;
2202
2203 CURSOR C_Account_Role IS
2204 SELECT begin_date, end_date FROM HZ_CUST_ACCOUNT_ROLES
2205 WHERE party_id = p_party_id AND cust_account_id = p_cust_account_id
2206 AND role_type ='ACCOUNT_USER';
2207
2208 CURSOR C_party(l_pty_id NUMBER) IS
2209 SELECT party_type FROM HZ_PARTIES
2210 WHERE party_id= l_pty_id;
2211
2212 CURSOR C_relation IS
2213 SELECT 'x' FROM
2214 HZ_RELATIONSHIPS a, HZ_ORG_CONTACTS b
2215 WHERE a.relationship_id = b.party_relationship_id
2216 AND a.object_id = p_cust_party_id;
2217
2218 CURSOR C_org_reltn IS
2219 SELECT 'x' FROM
2220 HZ_RELATIONSHIPS a, HZ_ORG_CONTACTS b,
2221 HZ_CUST_ACCOUNTS c
2222 WHERE a.relationship_id= b.party_relationship_id
2223 AND c.cust_Account_id = p_cust_account_id
2224 AND a.object_id = c.party_id;
2225
2226 CURSOR C_Person_Reltn (l_party NUMBER) IS
2227 SELECT 'X'
2228 FROM HZ_RELATIONSHIPS
2229 WHERE party_id = l_party
2230 AND subject_type = 'PERSON'
2231 AND object_type = 'PERSON';
2232
2233 l_api_name VARCHAR2(40) := 'Validate_Party_Crs' ;
2234 l_account_status VARCHAR2(1);
2235 l_start_date DATE;
2236 l_end_date DATE;
2237 l_party_type VARCHAR2(30);
2238 l_test VARCHAR2(1);
2239 l_dummy VARCHAR2(1);
2240
2241 BEGIN
2242 --SAVEPOINT Validate_Party_CustAccount;
2243 -- Initialize message list if p_init_msg_list is set to TRUE.
2244 IF FND_API.to_Boolean( p_init_msg_list ) THEN
2245 FND_MSG_PUB.initialize;
2246 END IF;
2247
2248 -- Initialize API return status to success
2249 x_return_status := FND_API.G_RET_STS_SUCCESS;
2250
2251 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2252 aso_debug_pub.add('Validate_PtyCrs: p_party_id: '||p_party_id, 1, 'N');
2253 aso_debug_pub.add('Validate_PtyCrs: p_cust_party_id: '||p_cust_party_id, 1, 'N');
2254 aso_debug_pub.add('Validate_PtyCrs: p_cust_account_id: '||p_cust_account_id, 1, 'N');
2255 END IF;
2256
2257 IF (p_cust_account_id IS NOT NULL AND p_cust_account_id <> FND_API.G_MISS_NUM) THEN
2258 IF (p_cust_party_id IS NOT NULL AND p_cust_party_id <> FND_API.G_MISS_NUM) THEN
2259 OPEN C_Account;
2260 FETCH C_Account INTO l_account_status;
2261 IF (C_Account%NOTFOUND OR l_account_status <> 'A') THEN
2262 x_return_status := FND_API.G_RET_STS_ERROR;
2263 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2264 THEN
2265 FND_MESSAGE.Set_Name('ASO', 'ASO_VALIDATE_PARTY_CRS');
2266 FND_MSG_PUB.ADD;
2267 END IF;
2268 END IF;
2269 CLOSE C_Account;
2270 END IF;
2271 END IF;
2272
2273 IF p_party_id IS NOT NULL AND p_party_id <> FND_API.G_MISS_NUM THEN
2274 OPEN C_party(p_party_id);
2275 FETCH C_party into l_party_type;
2276
2277 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2278 aso_debug_pub.add('Validate_PtyCrs: l_party_type: '||l_party_type, 1, 'N');
2279 END IF;
2280 IF l_party_type <> 'PARTY_RELATIONSHIP' THEN
2281 IF (p_cust_party_id IS NOT NULL AND p_cust_party_id <> FND_API.G_MISS_NUM) THEN
2282 IF p_party_id <> p_cust_party_id THEN
2283 x_return_status := FND_API.G_RET_STS_ERROR;
2284 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2285 FND_MESSAGE.Set_Name('ASO', 'ASO_VALIDATE_PARTY_CRS');
2286 FND_MSG_PUB.ADD;
2287 END IF;
2288 END IF;
2289 END IF;
2290 ELSE -- relationship
2291
2292 OPEN C_Person_Reltn (p_party_id);
2293 FETCH C_Person_Reltn INTO l_dummy;
2294 IF l_dummy = 'X' THEN
2295 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2296 aso_debug_pub.add('Validate_PtyCrs: Person_Reltn: '||l_dummy, 1, 'N');
2297 END IF;
2298 x_return_status := FND_API.G_RET_STS_ERROR;
2299 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2300 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_RELATIONSHIP');
2301 FND_MSG_PUB.ADD;
2302 END IF;
2303 END IF;
2304 CLOSE C_Person_Reltn;
2305
2306 IF (p_cust_party_id IS NOT NULL AND p_cust_party_id <> FND_API.G_MISS_NUM) THEN
2307 OPEN C_relation;
2308 FETCH C_relation into l_test;
2309 IF (C_relation%NOTFOUND OR l_test IS NULL) THEN
2310 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2311 aso_debug_pub.add('Validate_PtyCrs: Cust_Party Relation not found: '||l_test, 1, 'N');
2312 END IF;
2313 x_return_status := FND_API.G_RET_STS_ERROR;
2314 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2315 FND_MESSAGE.Set_Name('ASO', 'ASO_VALIDATE_PARTY_CRS');
2316 FND_MSG_PUB.ADD;
2317 END IF;
2318 END IF;
2319 END IF;
2320
2321 IF (p_cust_account_id IS NOT NULL AND
2322 p_cust_account_id <> FND_API.G_MISS_NUM) THEN
2323 OPEN C_org_reltn;
2324 FETCH C_org_reltn into l_test;
2325 IF (C_org_reltn%NOTFOUND OR l_test IS NULL ) THEN
2326 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2327 aso_debug_pub.add('Validate_PtyCrs: Org Relation not found: '||l_test, 1, 'N');
2328 END IF;
2329 x_return_status := FND_API.G_RET_STS_ERROR;
2330 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2331 FND_MESSAGE.Set_Name('ASO', 'ASO_VALIDATE_PARTY_CRS');
2332 FND_MSG_PUB.ADD;
2333 END IF;
2334 END IF;
2335 CLOSE C_org_reltn;
2336 END IF;
2337 END IF;--l_party_type
2338 CLOSE C_party;
2339 END IF;
2340
2341 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2342 aso_debug_pub.add('Validate_PtyCrs: x_return_status: '||x_return_status, 1, 'N');
2343 END IF;
2344 END Validate_Party_Crs;
2345
2346
2347 PROCEDURE Validate_Inv_Party_Crs(
2348 p_init_msg_list IN VARCHAR2,
2349 p_party_id IN NUMBER,
2350 p_cust_party_id IN NUMBER,
2351 p_inv_party_id IN NUMBER,
2352 p_cust_account_id IN NUMBER,
2353 p_inv_cust_account_id IN NUMBER,
2354 p_inv_cust_party_id IN NUMBER,
2355 p_site_use IN VARCHAR2,
2356 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
2357 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
2358 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
2359 IS
2360 CURSOR C_val_inv_id(lc_party_id number) IS
2361 SELECT 'x' FROM
2362 HZ_RELATIONSHIPS a, hz_org_contacts b
2363 WHERE
2364 a.party_id = p_inv_party_id
2365 AND a.object_id = lc_party_id
2366 AND b.party_relationship_id = a.relationship_id
2367 AND exists (select 'y' from HZ_PARTIES d
2368 where d.party_type ='PERSON' and
2369 d.party_id= a.subject_id);
2370
2371
2372 CURSOR C_Cust_party_id(l_cust_acct_id number) IS
2373 select party_id from
2374 hz_cust_accounts
2375 where
2376 cust_account_id = l_cust_acct_id;
2377 CURSOR C_party_type IS
2378 select party_type
2379 from hz_parties
2380 where party_id = p_party_id;
2381
2382 CURSOR C_relation_object IS
2383 select object_id
2384 from
2385 hz_relationships
2386 where party_id = p_party_id
2387 and subject_type ='PERSON'
2388 and subject_table_name = 'HZ_PARTIES'
2389 and object_type = 'ORGANIZATION'
2390 and object_table_name = 'HZ_PARTIES';
2391
2392 CURSOR C_Person_Reltn (l_party NUMBER) IS
2393 SELECT 'X'
2394 FROM HZ_RELATIONSHIPS
2395 WHERE party_id = l_party
2396 AND subject_type = 'PERSON'
2397 AND object_type = 'PERSON';
2398
2399 l_party_id NUMBER;
2400 l_api_name VARCHAR2(40) := 'Validate_Inv_Party_Crs' ;
2401 l_exist VARCHAR2(1);
2402 l_party_type VARCHAR2(40);
2403 l_dummy VARCHAR2(1);
2404
2405 BEGIN
2406 --SAVEPOINT Validate_Party_CustAccount;
2407 -- Initialize message list if p_init_msg_list is set to TRUE.
2408 IF FND_API.to_Boolean( p_init_msg_list ) THEN
2409 FND_MSG_PUB.initialize;
2410 END IF;
2411
2412 -- Initialize API return status to success
2413 x_return_status := FND_API.G_RET_STS_SUCCESS;
2414 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2415 aso_debug_pub.add('in validate_inv_party_crs',1,'N');
2416 aso_debug_pub.add('Validate_InvPtyCrs: p_inv_party_id = '|| p_inv_party_id ,1,'N');
2417 aso_debug_pub.add('Validate_InvPtyCrs: p_inv_cust_party_id = '|| p_inv_cust_party_id ,1,'N');
2418 aso_debug_pub.add('Validate_InvPtyCrs: p_inv_cust_account_id = '|| p_inv_cust_account_id ,1,'N');
2419 aso_debug_pub.add('Validate_InvPtyCrs: p_cust_party_id = '|| p_cust_party_id ,1,'N');
2420 aso_debug_pub.add('Validate_InvPtyCrs: p_cust_account_id = '|| p_cust_account_id ,1,'N');
2421 aso_debug_pub.add('Validate_InvPtyCrs: p_party_id = '|| p_party_id ,1,'N');
2422 END IF;
2423 IF (p_inv_party_id IS NOT NULL AND p_inv_party_id <> FND_API.G_MISS_NUM) THEN
2424 IF (p_inv_cust_party_id IS NOT NULL AND
2425 p_inv_cust_party_id <> FND_API.G_MISS_NUM) THEN
2426 l_party_id := p_inv_cust_party_id;
2427 ELSE
2428 IF (p_inv_cust_account_id IS NOT NULL AND
2429 p_inv_cust_account_id <> FND_API.G_MISS_NUM) THEN
2430 OPEN C_cust_party_id(p_inv_cust_account_id);
2431 FETCH C_cust_party_id INTO l_party_id;
2432 CLOSE C_cust_party_id;
2433 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2434 aso_debug_pub.add('Validate_InvPtyCrs: 1: l_party_id = '|| l_party_id ,1,'N');
2435 END IF;
2436 ELSE
2437 IF (p_cust_party_id IS NOT NULL AND
2438 p_cust_party_id <> FND_API.G_MISS_NUM) THEN
2439 l_party_id := p_cust_party_id;
2440 ELSE
2441 IF (p_cust_account_id IS NOT NULL AND
2442 p_cust_account_id <> FND_API.G_MISS_NUM) THEN
2443 OPEN C_cust_party_id(p_cust_account_id);
2444 FETCH C_cust_party_id INTO l_party_id;
2445 CLOSE C_cust_party_id;
2446 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2447 aso_debug_pub.add('Validate_InvPtyCrs: 2: l_party_id = '|| l_party_id ,1,'N');
2448 END IF;
2449 ELSE
2450 IF (p_party_id IS NOT NULL AND
2451 p_party_id <> FND_API.G_MISS_NUM) THEN
2452 OPEN C_party_type;
2453 FETCH C_party_type into l_party_type;
2454 CLOSE C_party_type;
2455 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2456 aso_debug_pub.add('Validate_InvPtyCrs: p_party_id: party_type = ' ||l_party_type,1,'N');
2457 END IF;
2458 IF l_party_type = 'PARTY_RELATIONSHIP' THEN
2459 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2460 aso_debug_pub.add('Validate_InvPtyCrs: in reltn'||p_inv_party_id,1);
2461 END IF;
2462 OPEN C_Person_Reltn (p_inv_party_id);
2463 FETCH C_Person_Reltn INTO l_dummy;
2464 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2465 aso_debug_pub.add('Validate_InvPtyCrs: in dummy'||l_dummy,1);
2466 END IF;
2467 IF l_dummy = 'X' THEN
2468 x_return_status := FND_API.G_RET_STS_ERROR;
2469 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2470 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_RELATIONSHIP');
2471 FND_MSG_PUB.ADD;
2472 END IF;
2473 END IF;
2474 CLOSE C_Person_Reltn;
2475
2476 OPEN C_relation_object;
2477 FETCH C_relation_object into l_party_id;
2478 CLOSE C_relation_object;
2479 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2480 aso_debug_pub.add('Validate_InvPtyCrs: 3: l_party_id = '|| l_party_id ,1,'N');
2481 END IF;
2482 ELSE
2483 l_party_id := p_party_id;
2484 END IF;
2485 END IF;
2486 END IF;
2487 END IF;
2488 END IF;
2489 END IF;
2490
2491 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2492 aso_debug_pub.add('Validate_InvPtyCrs: 4: l_party_id = '|| l_party_id ,1,'N');
2493 END IF;
2494 IF l_party_id IS NOT NULL AND l_party_id <> FND_API.G_MISS_NUM THEN
2495 IF l_party_id <> p_inv_party_id THEN
2496 OPEN C_val_inv_id(l_party_id);
2497 FETCH C_val_inv_id INTO l_exist;
2498 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2499 aso_debug_pub.add('Validate_InvPtyCrs: l_exist = ' ||l_exist,1, 'N');
2500 END IF;
2501 IF C_val_inv_id%NOTFOUND or l_exist IS NULL THEN
2502 x_return_status := FND_API.G_RET_STS_ERROR;
2503 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)THEN
2504 IF p_site_use = 'BILL_TO' THEN
2505 FND_MESSAGE.Set_Name('ASO','ASO_VALIDATE_INV_PARTY_PT_CRS');
2506 ELSIF p_site_use = 'END_USER' THEN
2507 FND_MESSAGE.Set_Name('ASO','ASO_VALIDATE_END_PARTY_PT_CRS');
2508 ELSIF p_site_use = 'SHIP_TO' THEN
2509 FND_MESSAGE.Set_Name('ASO','ASO_VALIDATE_SHP_PARTY_PT_CRS');
2510 END IF;
2511 FND_MSG_PUB.ADD;
2512 END IF;
2513 END IF;
2514 CLOSE C_val_inv_id;
2515 END IF ;
2516 END IF;
2517
2518 END IF;
2519 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2520 aso_debug_pub.add('Validate_InvPtyCrs: x_return_status = ' || x_return_status,1,'N');
2521 aso_debug_pub.add('Validate_Inv_Party_Crs: End',1,'N');
2522 END IF;
2523 END Validate_Inv_Party_Crs;
2524
2525
2526
2527
2528 PROCEDURE Validate_inv_PartySite_crs(
2529 p_init_msg_list IN VARCHAR2,
2530 p_party_id IN NUMBER,
2531 p_cust_party_id IN NUMBER,
2532 p_inv_party_id IN NUMBER,
2533 p_cust_account_id IN NUMBER,
2534 p_inv_cust_account_id IN NUMBER,
2535 p_inv_cust_party_id IN NUMBER,
2536 p_party_site_id IN NUMBER,
2537 p_site_usage IN VARCHAR2,
2538 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
2539 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
2540 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
2541 IS
2542
2543 CURSOR c_party_site( l_party_site_id NUMBER) IS
2544 SELECT b.party_id,a.party_type FROM HZ_PARTIES a,HZ_PARTY_SITES b
2545 WHERE a.party_id = b.party_id
2546 AND b.party_site_id = l_party_site_id;
2547
2548 CURSOR C_Cust_party_id(l_cust_acct_id number) IS
2549 select party_id from
2550 hz_cust_accounts
2551 where
2552 cust_account_id = l_cust_acct_id;
2553 CURSOR C_party_type IS
2554 select party_type
2555 from hz_parties
2556 where party_id = p_party_id;
2557
2558 CURSOR C_relation_object(px_party_id number) IS
2559 select object_id
2560 from
2561 hz_relationships
2562 where party_id = px_party_id
2563 and subject_type ='PERSON'
2564 and subject_table_name = 'HZ_PARTIES'
2565 and object_type = 'ORGANIZATION'
2566 and object_table_name = 'HZ_PARTIES';
2567
2568
2569 l_party_type VARCHAR2(30);
2570 l_party_id NUMBER;
2571 lp_party_id NUMBER;
2572 lp_party_type VARCHAR2(30);
2573 l_status VARCHAR2(1);
2574 l_party_site_object_id number;
2575
2576 BEGIN
2577 -- Initialize message list if p_init_msg_list is set to TRUE.
2578 IF FND_API.to_Boolean( p_init_msg_list ) THEN
2579 FND_MSG_PUB.initialize;
2580 END IF;
2581 -- Initialize API return status to success
2582 x_return_status := FND_API.G_RET_STS_SUCCESS;
2583 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2584 aso_debug_pub.add('in validate_inv_party_site_crs',1,'N');
2585 aso_debug_pub.add('Validate_InvPtySiteCrs: validate inv party site- p_party_site_id '||p_party_site_id, 1, 'N');
2586 aso_debug_pub.add('Validate_InvPtySiteCrs: p_inv_party_id = '|| p_inv_party_id ,1,'N');
2587 aso_debug_pub.add('Validate_InvPtySiteCrs: p_inv_cust_party_id = '|| p_inv_cust_party_id ,1,'N');
2588 aso_debug_pub.add('Validate_InvPtySiteCrs: p_inv_cust_account_id = '|| p_inv_cust_account_id ,1,'N');
2589 aso_debug_pub.add('Validate_InvPtySiteCrs: p_cust_party_id = '|| p_cust_party_id ,1,'N');
2590 aso_debug_pub.add('Validate_InvPtySiteCrs: p_cust_account_id = '|| p_cust_account_id ,1,'N');
2591 aso_debug_pub.add('Validate_InvPtySiteCrs: p_party_id = '|| p_party_id ,1,'N');
2592 END IF;
2593
2594 IF (p_party_site_id IS NOT NULL AND p_party_site_id <> FND_API.G_MISS_NUM) THEN
2595 IF (p_inv_cust_party_id IS NOT NULL AND
2596 p_inv_cust_party_id <> FND_API.G_MISS_NUM) THEN
2597 l_party_id := p_inv_cust_party_id;
2598 ELSE
2599 IF (p_inv_cust_account_id IS NOT NULL AND
2600 p_inv_cust_account_id <> FND_API.G_MISS_NUM) THEN
2601 OPEN C_cust_party_id(p_inv_cust_account_id);
2602 FETCH C_cust_party_id INTO l_party_id;
2603 CLOSE C_cust_party_id;
2604 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2605 aso_debug_pub.add('Validate_InvPtySiteCrs: 1: l_party_id = '|| l_party_id ,1,'N');
2606 END IF;
2607 ELSE
2608 IF (p_cust_party_id IS NOT NULL AND
2609 p_cust_party_id <> FND_API.G_MISS_NUM) THEN
2610 l_party_id := p_cust_party_id;
2611 ELSE
2612 IF (p_cust_account_id IS NOT NULL AND
2613 p_cust_account_id <> FND_API.G_MISS_NUM) THEN
2614 OPEN C_cust_party_id(p_cust_account_id);
2615 FETCH C_cust_party_id INTO l_party_id;
2616 CLOSE C_cust_party_id;
2617 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2618 aso_debug_pub.add('Validate_InvPtySiteCrs: 2: l_party_id = '|| l_party_id ,1,'N');
2619 END IF;
2620 ELSE
2621 IF (p_party_id IS NOT NULL AND
2622 p_party_id <> FND_API.G_MISS_NUM) THEN
2623 OPEN C_party_type;
2624 FETCH C_party_type into l_party_type;
2625 CLOSE C_party_type;
2626 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2627 aso_debug_pub.add('Validate_InvPtySiteCrs: p_party_id: party_type = ' ||l_party_type,1,'N');
2628 END IF;
2629 IF l_party_type = 'PARTY_RELATIONSHIP' THEN
2630 OPEN C_relation_object(p_party_id);
2631 FETCH C_relation_object into l_party_id;
2632 CLOSE C_relation_object;
2633 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2634 aso_debug_pub.add('Validate_InvPtySiteCrs: 3: l_party_id = '|| l_party_id ,1,'N');
2635 END IF;
2636 ELSE
2637 l_party_id := p_party_id;
2638 END IF;
2639 END IF;
2640 END IF;
2641 END IF;
2642 END IF;
2643 END IF;
2644
2645 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2646 aso_debug_pub.add('Validate_InvPtySiteCrs: 4: l_party_id = '|| l_party_id ,1,'N');
2647 END IF;
2648 OPEN c_party_site(p_party_site_id);
2649 FETCH c_party_site into lp_party_id,lp_party_type;
2650 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2651 aso_debug_pub.add('Validate_InvPtySiteCrs: lp_party_id = ' ||lp_party_id, 1,'N');
2652 aso_debug_pub.add('Validate_InvPtySiteCrs: lp_party_type = ' || lp_party_type, 1 , 'N');
2653 END IF;
2654 IF c_party_site%NOTFOUND THEN
2655 x_return_status := FND_API.G_RET_STS_ERROR;
2656 ELSIF lp_party_type = 'PARTY_RELATIONSHIP' THEN
2657 IF (p_inv_party_id IS NOT NULL AND p_inv_party_id <> FND_API.G_MISS_NUM) THEN
2658 IF p_inv_party_id <> lp_party_id THEN
2659 x_return_status := FND_API.G_RET_STS_ERROR;
2660 END IF;
2661 ELSE
2662 OPEN C_relation_object(lp_party_id);
2663 FETCH C_relation_object into l_party_site_object_id;
2664 CLOSE C_relation_object;
2665 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2666 aso_debug_pub.add('Validate_InvPtySiteCrs: l_party_site_object_id = ' || l_party_site_object_id,1,'N');
2667 END IF;
2668 IF l_party_site_object_id <> l_party_id THEN
2669 x_return_status := FND_API.G_RET_STS_ERROR;
2670 END IF;
2671 END IF;
2672 ELSE
2673 IF lp_party_id <> l_party_id THEN
2674 x_return_status := FND_API.G_RET_STS_ERROR;
2675 END IF;
2676 END IF;
2677 CLOSE C_party_site;
2678 END IF;
2679
2680 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2681 aso_debug_pub.add('Validate_InvPtySiteCrs: x_return_status = ' || x_return_status,1,'N');
2682 END IF;
2683 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2684 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)THEN
2685 IF p_site_usage = 'BILL_TO' THEN
2686 FND_MESSAGE.Set_Name('ASO', 'ASO_VALIDATE_INV_SITE_AC_CRS');
2687 ELSIF p_site_usage = 'END_USER' THEN
2688 FND_MESSAGE.Set_Name('ASO', 'ASO_VALIDATE_END_SITE_AC_CRS');
2689 ELSIF p_site_usage = 'SHIP_TO' THEN
2690 FND_MESSAGE.Set_Name('ASO', 'ASO_VALIDATE_SHP_SITE_AC_CRS');
2691 ELSIF p_site_usage = 'SOLD_TO' THEN
2692 FND_MESSAGE.Set_Name('ASO', 'ASO_VALIDATE_SLD_SITE_AC_CRS'); -- Sold_to
2693 END IF;
2694 FND_MSG_PUB.ADD;
2695 END IF;
2696 END IF;
2697 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2698 aso_debug_pub.add('Validate_inv_partysite_crs: end',1,'N');
2699 END IF;
2700
2701 END Validate_inv_PartySite_crs;
2702
2703
2704
2705 PROCEDURE Validate_org_contact_crs(
2706 p_init_msg_list IN VARCHAR2,
2707 p_contact_id IN NUMBER,
2708 p_cust_account_id IN NUMBER,
2709 p_party_id IN NUMBER,
2710 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
2711 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
2712 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
2713 IS
2714 CURSOR C_Contact IS
2715 SELECT object_id ,a.status FROM HZ_ORG_CONTACTS a,
2716 HZ_RELATIONSHIPS b
2717 WHERE org_contact_id = p_contact_id
2718 and a.party_relationship_id = b.relationship_id;
2719 CURSOR C_Party(l_party_id NUMBER) IS
2720 SELECT status from HZ_PARTIES a
2721 WHERE a.party_id=l_party_id and a.party_id=p_party_id
2722 AND Party_type in('ORGANIZATION','PARTY_RELATIONSHIP');
2723
2724
2725 CURSOR C_Cust_account(l_party_id NUMBER) IS
2726 SELECT status from HZ_CUST_ACCOUNTS
2727 WHERE party_id=l_party_id and
2728 cust_account_id = p_cust_account_id;
2729 l_party_relationship_id NUMBER;
2730 l_object_id NUMBER;
2731 l_status VARCHAR2(1);
2732 l_acct_status VARCHAR2(1);
2733 l_party_status VARCHAR2(1);
2734
2735 BEGIN
2736 -- Initialize message list if p_init_msg_list is set to TRUE.
2737 IF FND_API.to_Boolean( p_init_msg_list ) THEN
2738 FND_MSG_PUB.initialize;
2739 END IF;
2740
2741 -- Initialize API return status to success
2742 x_return_status := FND_API.G_RET_STS_SUCCESS;
2743
2744
2745 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2746 aso_debug_pub.add('Validate_OrgConCrs: p_contact_id = ' || p_contact_id,1,'N');
2747 aso_debug_pub.add('Validate_OrgConCrs: p_cust_account_id = ' || p_cust_account_id,1,'N');
2748 aso_debug_pub.add('Validate_OrgConCrs: p_party_id = ' || p_party_id,1,'N');
2749 END IF;
2750 IF (p_contact_id IS NOT NULL AND p_contact_id <> FND_API.G_MISS_NUM) THEN
2751 OPEN C_Contact;
2752 FETCH C_Contact INTO l_object_id,l_status ;
2753 IF (C_Contact%NOTFOUND OR l_status <> 'A') THEN
2754 x_return_status := FND_API.G_RET_STS_ERROR;
2755 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2756 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
2757 FND_MESSAGE.Set_Token('COLUMN', 'Org_contact_id', FALSE);
2758 FND_MESSAGE.Set_Token('VALUE',to_char(p_contact_id),FALSE);
2759 FND_MSG_PUB.ADD;
2760 END IF;
2761 END IF;
2762 CLOSE C_Contact;
2763 END IF;
2764 IF (p_cust_account_id IS NOT NULL AND p_cust_account_id <> FND_API.G_MISS_NUM)
2765 AND (p_contact_id IS NOT NULL AND p_contact_id <> FND_API.G_MISS_NUM) THEN
2766 OPEN C_Contact ;
2767 FETCH C_Contact INTO l_object_id,l_status ;
2768 IF C_Contact%FOUND and l_object_id is NOT NULL THEN
2769 OPEN C_Cust_account(l_object_id);
2770 FETCH C_Cust_account INTO l_acct_status ;
2771 IF C_Cust_account%NOTFOUND or l_acct_status <>'A' THEN
2772 x_return_status := FND_API.G_RET_STS_ERROR;
2773 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2774 FND_MESSAGE.Set_Name('ASO', 'ASO_VALIDATE_ORG_CON_ACT_CRS');
2775 -- FND_MESSAGE.Set_Name('ASO', 'INVALID_OBJECT_PARTY_ID');
2776
2777 FND_MSG_PUB.ADD;
2778 END IF;
2779 END IF;
2780 CLOSE C_Cust_account;
2781 END IF;
2782 CLOSE C_Contact;
2783
2784 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2785 aso_debug_pub.add('Validate_OrgConCrs: x_return_status = ' || x_return_status,1,'N');
2786 END IF;
2787 ELSE
2788 IF (p_party_id IS NOT NULL AND p_party_id <> FND_API.G_MISS_NUM)
2789 AND (p_contact_id IS NOT NULL AND p_contact_id <> FND_API.G_MISS_NUM) THEN
2790 OPEN C_Contact;
2791 FETCH C_Contact INTO l_object_id,l_status ;
2792 IF (C_Contact%NOTFOUND OR l_status <> 'A') THEN
2793
2794 x_return_status := FND_API.G_RET_STS_ERROR;
2795 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2796
2797 FND_MESSAGE.Set_Name('ASO', 'ASO_VALIDATE_ORG_CON_PTY_CRS');
2798
2799 FND_MSG_PUB.ADD;
2800 END IF;
2801 CLOSE C_Contact;
2802 ELSE
2803 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2804 aso_debug_pub.add('Validate_InvPtySiteCrs: l_object_id = ' || l_object_id,1,'N');
2805 END IF;
2806 OPEN c_party(l_object_id);
2807 FETCH c_party into l_party_status;
2808 IF c_party%NOTFOUND or l_party_status <> 'A' THEN
2809 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2810 THEN
2811 FND_MESSAGE.Set_Name('ASO',
2812 'ASO_VALIDATE_ORG_CON_PTY_CRS');
2813 --FND_MESSAGE.Set_Token('COLUMN', 'Org_contact_id', FALSE);
2814 FND_MSG_PUB.ADD;
2815 END IF;
2816 END IF;
2817 CLOSE c_party;
2818 CLOSE C_Contact;
2819 END IF;
2820
2821 END IF;
2822 END IF;
2823 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2824 aso_debug_pub.add('Validate_OrgConCrs: x_return_status = ' || x_return_status,1,'N');
2825 END IF;
2826 END Validate_Org_Contact_crs;
2827
2828 PROCEDURE Validate_item_tca_bsc(
2829 p_init_msg_list IN VARCHAR2,
2830 p_qte_header_rec IN ASO_QUOTE_PUB.Qte_Header_Rec_Type :=
2831 ASO_QUOTE_PUB.G_Miss_Qte_Header_Rec,
2832 p_shipment_rec IN ASO_QUOTE_PUB.shipment_rec_type :=
2833 ASO_QUOTE_PUB.G_MISS_SHIPMENT_REC,
2834 p_operation_code IN VARCHAR2 := FND_API.G_MISS_CHAR,
2835 p_application_type_code IN VARCHAR2 := FND_API.G_MISS_CHAR,
2836 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
2837 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
2838 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
2839 IS
2840 l_api_name CONSTANT VARCHAR2(30) := 'Validate_item_tca_bsc';
2841 l_party_id NUMBER;
2842
2843 l_qte_header_rec ASO_QUOTE_PUB.Qte_Header_Rec_Type := ASO_QUOTE_PUB.G_Miss_Qte_Header_Rec;
2844 lp_qte_header_rec ASO_QUOTE_PUB.Qte_Header_Rec_Type := ASO_QUOTE_PUB.G_Miss_Qte_Header_Rec;
2845 l_shipment_rec ASO_QUOTE_PUB.shipment_rec_type := ASO_QUOTE_PUB.G_MISS_SHIPMENT_REC;
2846 lp_shipment_rec ASO_QUOTE_PUB.shipment_rec_type := ASO_QUOTE_PUB.G_MISS_SHIPMENT_REC;
2847
2848 CURSOR C_Get_Party_From_Org(l_org_contact_id NUMBER) IS
2849 SELECT par.party_id
2850 FROM hz_relationships par,
2851 hz_org_contacts org
2852 WHERE org.party_relationship_id = par.relationship_id
2853 AND org.org_contact_id = l_org_contact_id
2854 -- AND org.status = 'A' status column obseleted
2855 and par.status = 'A'
2856 and (sysdate between nvl(par.start_date, sysdate) and nvl(par.end_date, sysdate));
2857
2858 BEGIN
2859 SAVEPOINT VALIDATE_ITEM_TCA_BSC_PVT;
2860 -- Initialize message list if p_init_msg_list is set to TRUE.
2861 IF FND_API.to_Boolean( p_init_msg_list ) THEN
2862 FND_MSG_PUB.initialize;
2863 END IF;
2864
2865 -- Initialize API return status to success
2866 x_return_status := FND_API.G_RET_STS_SUCCESS;
2867
2868 /** Changes for OA uptake **/
2869 lp_qte_header_rec := p_qte_header_rec;
2870 lp_shipment_rec := p_shipment_rec;
2871
2872 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2873 aso_debug_pub.add('Validate_ItemTcaBsc: lp_qte_header_rec.quote_header_id: ' || lp_qte_header_rec.quote_header_id,1,'N');
2874 aso_debug_pub.add('Validate_ItemTcaBsc: lp_shipment_rec.shipment_id: ' || lp_shipment_rec.shipment_id,1,'N');
2875 END IF;
2876
2877 IF (p_application_type_code = 'QUOTING HTML' AND p_operation_code = 'UPDATE') THEN
2878 l_qte_header_rec := ASO_UTILITY_PVT.query_header_row (lp_qte_header_rec.quote_header_id);
2879
2880 IF lp_qte_header_rec.party_id = FND_API.G_MISS_NUM THEN
2881 lp_qte_header_rec.party_id := l_qte_header_rec.party_id;
2882 END IF;
2883 IF lp_qte_header_rec.cust_party_id = FND_API.G_MISS_NUM THEN
2884 lp_qte_header_rec.cust_party_id := l_qte_header_rec.cust_party_id;
2885 END IF;
2886 IF lp_qte_header_rec.invoice_to_cust_party_id = FND_API.G_MISS_NUM THEN
2887 lp_qte_header_rec.invoice_to_cust_party_id := l_qte_header_rec.invoice_to_cust_party_id;
2888 END IF;
2889 IF lp_qte_header_rec.End_Customer_cust_party_id = FND_API.G_MISS_NUM THEN
2890 lp_qte_header_rec.End_Customer_cust_party_id := l_qte_header_rec.End_Customer_cust_party_id;
2891 END IF;
2892 IF lp_qte_header_rec.cust_account_id = FND_API.G_MISS_NUM THEN
2893 lp_qte_header_rec.cust_account_id := l_qte_header_rec.cust_account_id;
2894 END IF;
2895 IF lp_qte_header_rec.invoice_to_cust_account_id = FND_API.G_MISS_NUM THEN
2896 lp_qte_header_rec.invoice_to_cust_account_id := l_qte_header_rec.invoice_to_cust_account_id;
2897 END IF;
2898 IF lp_qte_header_rec.End_Customer_cust_account_id = FND_API.G_MISS_NUM THEN
2899 lp_qte_header_rec.End_Customer_cust_account_id := l_qte_header_rec.End_Customer_cust_account_id;
2900 END IF;
2901 IF lp_qte_header_rec.org_contact_id = FND_API.G_MISS_NUM THEN
2902 lp_qte_header_rec.org_contact_id := l_qte_header_rec.org_contact_id;
2903 END IF;
2904 IF lp_qte_header_rec.invoice_to_party_id = FND_API.G_MISS_NUM THEN
2905 lp_qte_header_rec.invoice_to_party_id := l_qte_header_rec.invoice_to_party_id;
2906 END IF;
2907 IF lp_qte_header_rec.End_Customer_party_id = FND_API.G_MISS_NUM THEN
2908 lp_qte_header_rec.End_Customer_party_id := l_qte_header_rec.End_Customer_party_id;
2909 END IF;
2910 IF lp_qte_header_rec.invoice_to_party_site_id = FND_API.G_MISS_NUM THEN
2911 lp_qte_header_rec.invoice_to_party_site_id := l_qte_header_rec.invoice_to_party_site_id;
2912 END IF;
2913 IF lp_qte_header_rec.End_Customer_party_site_id = FND_API.G_MISS_NUM THEN
2914 lp_qte_header_rec.End_Customer_party_site_id := l_qte_header_rec.End_Customer_party_site_id;
2915 END IF;
2916 IF lp_qte_header_rec.sold_to_party_site_id = FND_API.G_MISS_NUM THEN
2917 lp_qte_header_rec.sold_to_party_site_id := l_qte_header_rec.sold_to_party_site_id;
2918 END IF;
2919
2920 IF lp_shipment_rec.operation_code = 'UPDATE' THEN
2921 IF lp_shipment_rec.shipment_id IS NOT NULL AND lp_shipment_rec.shipment_id <> FND_API.G_MISS_NUM THEN
2922 l_shipment_rec := ASO_UTILITY_PVT.query_shipment_row (lp_shipment_rec.shipment_id);
2923 IF lp_shipment_rec.ship_to_cust_party_id = FND_API.G_MISS_NUM THEN
2924 lp_shipment_rec.ship_to_cust_party_id := l_shipment_rec.ship_to_cust_party_id;
2925 END IF;
2926 IF lp_shipment_rec.ship_to_cust_account_id = FND_API.G_MISS_NUM THEN
2927 lp_shipment_rec.ship_to_cust_account_id := l_shipment_rec.ship_to_cust_account_id;
2928 END IF;
2929 IF lp_shipment_rec.ship_to_party_id = FND_API.G_MISS_NUM THEN
2930 lp_shipment_rec.ship_to_party_id := l_shipment_rec.ship_to_party_id;
2931 END IF;
2932 IF lp_shipment_rec.ship_to_party_site_id = FND_API.G_MISS_NUM THEN
2933 lp_shipment_rec.ship_to_party_site_id := l_shipment_rec.ship_to_party_site_id;
2934 END IF;
2935 END IF;
2936 END IF;
2937
2938 END IF; -- UPDATE
2939
2940 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2941 aso_debug_pub.add('Validate_ItemTcaBsc: Begin ',1,'N');
2942 END IF;
2943 ASO_VALIDATE_PVT.Validate_Party_bsc(
2944 p_init_msg_list => p_init_msg_list,
2945 p_party_id => lp_qte_header_rec.party_id,
2946 x_return_status => x_return_status,
2947 x_msg_count => x_msg_count,
2948 x_msg_data => x_msg_data);
2949 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
2950 RAISE FND_API.G_EXC_ERROR;
2951 END IF;
2952 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2953 aso_debug_pub.add('Validate_ItemTcaBsc: party_id: x_return_status: ' || x_return_status,1,'N');
2954 END IF;
2955
2956 ASO_VALIDATE_PVT.Validate_Party_bsc(
2957 p_init_msg_list => p_init_msg_list,
2958 p_party_id => lp_qte_header_rec.cust_party_id,
2959 x_return_status => x_return_status,
2960 x_msg_count => x_msg_count,
2961 x_msg_data => x_msg_data);
2962 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
2963 RAISE FND_API.G_EXC_ERROR;
2964 END IF;
2965 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2966 aso_debug_pub.add('Validate_ItemTcaBsc: cust_party_id: x_return_status: ' || x_return_status,1,'N');
2967 END IF;
2968
2969 ASO_VALIDATE_PVT.Validate_Party_bsc(
2970 p_init_msg_list => p_init_msg_list,
2971 p_party_id => lp_qte_header_rec.invoice_to_cust_party_id,
2972 x_return_status => x_return_status,
2973 x_msg_count => x_msg_count,
2974 x_msg_data => x_msg_data);
2975 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
2976 RAISE FND_API.G_EXC_ERROR;
2977 END IF;
2978 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2979 aso_debug_pub.add('Validate_ItemTcaBsc: inv_cust_party_id: x_return_status: ' || x_return_status,1,'N');
2980 END IF;
2981
2982 ASO_VALIDATE_PVT.Validate_Party_bsc(
2983 p_init_msg_list => p_init_msg_list,
2984 p_party_id => lp_qte_header_rec.End_Customer_cust_party_id,
2985 x_return_status => x_return_status,
2986 x_msg_count => x_msg_count,
2987 x_msg_data => x_msg_data);
2988 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
2989 RAISE FND_API.G_EXC_ERROR;
2990 END IF;
2991 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2992 aso_debug_pub.add('Validate_ItemTcaBsc: end_cust_party_id: x_return_status: ' || x_return_status,1,'N');
2993 END IF;
2994
2995 ASO_VALIDATE_PVT.Validate_Party_bsc(
2996 p_init_msg_list => p_init_msg_list,
2997 p_party_id => lp_shipment_rec.ship_to_cust_party_id,
2998 x_return_status => x_return_status,
2999 x_msg_count => x_msg_count,
3000 x_msg_data => x_msg_data);
3001 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3002 RAISE FND_API.G_EXC_ERROR;
3003 END IF;
3004 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3005 aso_debug_pub.add('Validate_ItemTcaBsc: shp_cust_party_id: x_return_status: ' || x_return_status,1,'N');
3006 END IF;
3007
3008
3009 ASO_VALIDATE_PVT.Validate_CustAccount_bsc(
3010 p_init_msg_list => p_init_msg_list,
3011 p_party_id => lp_qte_header_rec.party_id,
3012 p_cust_account_id => lp_qte_header_rec.cust_account_id,
3013 p_inv_cust_account_id => lp_qte_header_rec.invoice_to_cust_account_id,
3014 p_end_cust_account_id => lp_qte_header_rec.End_Customer_cust_account_id,
3015 p_shp_cust_account_id => lp_shipment_rec.ship_to_cust_account_id,
3016 x_return_status => x_return_status,
3017 x_msg_count => x_msg_count,
3018 x_msg_data => x_msg_data);
3019 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3020 RAISE FND_API.G_EXC_ERROR;
3021 END IF;
3022 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3023 aso_debug_pub.add('Validate_ItemTcaBsc: custAcctBsc: x_return_status: ' || x_return_status,1,'N');
3024 END IF;
3025
3026 ASO_VALIDATE_PVT.Validate_org_contact_bsc(
3027 p_init_msg_list => p_init_msg_list,
3028 p_contact_id => lp_qte_header_rec.org_contact_id,
3029 p_cust_account_id => lp_qte_header_rec.cust_account_id,
3030 x_return_status => x_return_status,
3031 x_msg_count => x_msg_count,
3032 x_msg_data => x_msg_data);
3033 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3034 RAISE FND_API.G_EXC_ERROR;
3035 END IF;
3036 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3037 aso_debug_pub.add('Validate_ItemTcaBsc: OrgConBsc: x_return_status: ' || x_return_status,1,'N');
3038 END IF;
3039
3040
3041 ASO_VALIDATE_PVT.Validate_Inv_Party_bsc(
3042 p_init_msg_list => p_init_msg_list,
3043 p_party_id => lp_qte_header_rec.invoice_to_party_id,
3044 p_site_use => 'BILL_TO',
3045 x_return_status => x_return_status,
3046 x_msg_count => x_msg_count,
3047 x_msg_data => x_msg_data);
3048 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3049 RAISE FND_API.G_EXC_ERROR;
3050 END IF;
3051 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3052 aso_debug_pub.add('Validate_ItemTcaBsc: InvPty: BillTo: x_return_status: ' || x_return_status,1,'N');
3053 END IF;
3054
3055 ASO_VALIDATE_PVT.Validate_Inv_Party_bsc(
3056 p_init_msg_list => p_init_msg_list,
3057 p_party_id => lp_qte_header_rec.End_Customer_party_id,
3058 p_site_use => 'END_USER',
3059 x_return_status => x_return_status,
3060 x_msg_count => x_msg_count,
3061 x_msg_data => x_msg_data);
3062 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3063 RAISE FND_API.G_EXC_ERROR;
3064 END IF;
3065 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3066 aso_debug_pub.add('Validate_ItemTcaBsc: InvPty: EndUser: x_return_status: ' || x_return_status,1,'N');
3067 END IF;
3068
3069 ASO_VALIDATE_PVT.Validate_Inv_Party_bsc(
3070 p_init_msg_list => p_init_msg_list,
3071 p_party_id => lp_shipment_rec.ship_to_party_id,
3072 p_site_use => 'SHIP_TO',
3073 x_return_status => x_return_status,
3074 x_msg_count => x_msg_count,
3075 x_msg_data => x_msg_data);
3076 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3077 RAISE FND_API.G_EXC_ERROR;
3078 END IF;
3079 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3080 aso_debug_pub.add('Validate_ItemTcaBsc: InvPty: ShipTo: x_return_status: ' || x_return_status,1,'N');
3081 aso_debug_pub.add('before Validate_Inv_PartySite_bsc:lp_qte_header_rec.invoice_to_cust_party_id: '||p_qte_header_rec.invoice_to_cust_party_id, 1, 'Y');
3082 aso_debug_pub.add('before Validate_Inv_PartySite_bsc:lp_qte_header_rec.invoice_to_party_site_id: '||p_qte_header_rec.invoice_to_party_site_id, 1, 'Y');
3083 END IF;
3084
3085 ASO_VALIDATE_PVT.Validate_Inv_PartySite_bsc(
3086 p_init_msg_list => p_init_msg_list,
3087 p_party_id => lp_qte_header_rec.invoice_to_cust_party_id,
3088 p_party_site_id => lp_qte_header_rec.invoice_to_party_site_id,
3089 p_party_site_use => 'BILL_TO',
3090 x_return_status => x_return_status,
3091 x_msg_count => x_msg_count,
3092 x_msg_data => x_msg_data);
3093 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3094 RAISE FND_API.G_EXC_ERROR;
3095 END IF;
3096 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3097 aso_debug_pub.add('Validate_ItemTcaBsc: InvPtySite: ShipTo: x_return_status: ' || x_return_status,1,'N');
3098 aso_debug_pub.add('before Validate_Inv_PartySite_bsc:lp_qte_header_rec.End_Customer_cust_party_id: '||p_qte_header_rec.End_Customer_cust_party_id, 1, 'Y');
3099 aso_debug_pub.add('before Validate_Inv_PartySite_bsc:lp_qte_header_rec.End_Customer_party_site_id: '||p_qte_header_rec.End_Customer_party_site_id, 1, 'Y');
3100 END IF;
3101
3102 ASO_VALIDATE_PVT.Validate_Inv_PartySite_bsc(
3103 p_init_msg_list => p_init_msg_list,
3104 p_party_id => lp_qte_header_rec.End_Customer_cust_party_id,
3105 p_party_site_id => lp_qte_header_rec.End_Customer_party_site_id,
3106 p_party_site_use => 'END_USER',
3107 x_return_status => x_return_status,
3108 x_msg_count => x_msg_count,
3109 x_msg_data => x_msg_data);
3110 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3111 RAISE FND_API.G_EXC_ERROR;
3112 END IF;
3113 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3114 aso_debug_pub.add('Validate_ItemTcaBsc: InvPtySite: ShipTo: x_return_status: ' || x_return_status,1,'N');
3115 aso_debug_pub.add('before Validate_Inv_PartySite_bsc:lp_shipment_rec.ship_to_cust_party_id: '||p_shipment_rec.ship_to_cust_party_id, 1, 'Y');
3116 aso_debug_pub.add('before Validate_Inv_PartySite_bsc:lp_shipment_rec.ship_to_party_site_id: '||p_shipment_rec.ship_to_party_site_id, 1, 'Y');
3117 END IF;
3118
3119 ASO_VALIDATE_PVT.Validate_Inv_PartySite_bsc(
3120 p_init_msg_list => p_init_msg_list,
3121 p_party_id => lp_shipment_rec.ship_to_cust_party_id,
3122 p_party_site_id => lp_shipment_rec.ship_to_party_site_id,
3123 p_party_site_use => 'SHIP_TO',
3124 x_return_status => x_return_status,
3125 x_msg_count => x_msg_count,
3126 x_msg_data => x_msg_data);
3127 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3128 RAISE FND_API.G_EXC_ERROR;
3129 END IF;
3130 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3131 aso_debug_pub.add('Validate_ItemTcaBsc: InvPtySite: ShipTo: x_return_status: ' || x_return_status,1,'N');
3132 END IF;
3133
3134 -- Sold_to
3135 IF lp_qte_header_rec.sold_to_party_site_id IS NOT NULL
3136 AND lp_qte_header_rec.sold_to_party_site_id <> FND_API.G_MISS_NUM THEN
3137 IF lp_qte_header_rec.org_contact_id IS NOT NULL
3138 AND lp_qte_header_rec.org_contact_id <> FND_API.G_MISS_NUM THEN
3139 OPEN C_Get_Party_From_Org(lp_qte_header_rec.org_contact_id);
3140 FETCH C_Get_Party_From_Org INTO l_party_id;
3141 CLOSE C_Get_Party_From_Org;
3142 ELSE
3143 l_party_id := lp_qte_header_rec.party_id;
3144 END IF;
3145
3146 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3147 aso_debug_pub.add('before Validate_Inv_PartySite_bsc:l_party_id: '||l_party_id, 1, 'Y');
3148 END IF;
3149 ASO_VALIDATE_PVT.Validate_Inv_PartySite_bsc(
3150 p_init_msg_list => p_init_msg_list,
3151 p_party_id => l_party_id,
3152 p_party_site_id => lp_qte_header_rec.sold_to_party_site_id,
3153 p_party_site_use => 'SOLD_TO',
3154 x_return_status => x_return_status,
3155 x_msg_count => x_msg_count,
3156 x_msg_data => x_msg_data);
3157 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3158 RAISE FND_API.G_EXC_ERROR;
3159 END IF;
3160 END IF;
3161 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3162 aso_debug_pub.add('Validate_ItemTcaBsc: InvPtySite: SoldTo: x_return_status: ' || x_return_status,1,'N');
3163 END IF;
3164 -- Sold_to
3165
3166 FND_MSG_PUB.Count_And_Get
3167 ( p_count => x_msg_count,
3168 p_data => x_msg_data
3169 );
3170
3171 EXCEPTION
3172 WHEN FND_API.G_EXC_ERROR THEN
3173 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
3174 P_API_NAME => L_API_NAME
3175 ,P_PKG_NAME => G_PKG_NAME
3176 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
3177 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
3178 ,P_SQLCODE => SQLCODE
3179 ,P_SQLERRM => SQLERRM
3180 ,X_MSG_COUNT => X_MSG_COUNT
3181 ,X_MSG_DATA => X_MSG_DATA
3182 ,X_RETURN_STATUS => X_RETURN_STATUS);
3183
3184 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3185 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
3186 P_API_NAME => L_API_NAME
3187 ,P_PKG_NAME => G_PKG_NAME
3188 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
3189 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
3190 ,P_SQLCODE => SQLCODE
3191 ,P_SQLERRM => SQLERRM
3192 ,X_MSG_COUNT => X_MSG_COUNT
3193 ,X_MSG_DATA => X_MSG_DATA
3194 ,X_RETURN_STATUS => X_RETURN_STATUS);
3195
3196 WHEN OTHERS THEN
3197 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
3198 P_API_NAME => L_API_NAME
3199 ,P_PKG_NAME => G_PKG_NAME
3200 ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
3201 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
3202 ,P_SQLCODE => SQLCODE
3203 ,P_SQLERRM => SQLERRM
3204 ,X_MSG_COUNT => X_MSG_COUNT
3205 ,X_MSG_DATA => X_MSG_DATA
3206 ,X_RETURN_STATUS => X_RETURN_STATUS);
3207
3208 END Validate_item_tca_bsc;
3209
3210
3211 PROCEDURE Validate_record_tca_crs(
3212 p_init_msg_list IN VARCHAR2,
3213 p_qte_header_rec IN ASO_QUOTE_PUB.Qte_Header_Rec_Type :=
3214 ASO_QUOTE_PUB.G_Miss_Qte_Header_Rec,
3215 p_shipment_rec IN ASO_QUOTE_PUB.shipment_rec_type :=
3216 ASO_QUOTE_PUB.G_MISS_SHIPMENT_REC,
3217 p_operation_code IN VARCHAR2 := FND_API.G_MISS_CHAR,
3218 p_application_type_code IN VARCHAR2 := FND_API.G_MISS_CHAR,
3219 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
3220 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
3221 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
3222 IS
3223
3224 l_api_name VARCHAR2(40) := 'Validate_record_tca_crs' ;
3225 l_party_id NUMBER;
3226
3227 l_qte_header_rec ASO_QUOTE_PUB.Qte_Header_Rec_Type := ASO_QUOTE_PUB.G_Miss_Qte_Header_Rec;
3228 lp_qte_header_rec ASO_QUOTE_PUB.Qte_Header_Rec_Type := ASO_QUOTE_PUB.G_Miss_Qte_Header_Rec;
3229 l_shipment_rec ASO_QUOTE_PUB.shipment_rec_type := ASO_QUOTE_PUB.G_MISS_SHIPMENT_REC;
3230 lp_shipment_rec ASO_QUOTE_PUB.shipment_rec_type := ASO_QUOTE_PUB.G_MISS_SHIPMENT_REC;
3231
3232 CURSOR C_Get_Party_From_Org(l_org_contact_id NUMBER) IS
3233 SELECT par.party_id
3234 FROM hz_relationships par,
3235 hz_org_contacts org
3236 WHERE org.party_relationship_id = par.relationship_id
3237 AND org.org_contact_id = l_org_contact_id
3238 -- AND org.status = 'A' -- status column obseleted
3239 and par.status = 'A'
3240 and (sysdate between nvl(par.start_date, sysdate) and nvl(par.end_date, sysdate));
3241
3242 BEGIN
3243 SAVEPOINT VALIDATE_RECORD_TCA_CRS_PVT;
3244
3245 -- Initialize message list if p_init_msg_list is set to TRUE.
3246 IF FND_API.to_Boolean( p_init_msg_list ) THEN
3247 FND_MSG_PUB.initialize;
3248 END IF;
3249
3250 /** Changes for OA uptake **/
3251 lp_qte_header_rec := p_qte_header_rec;
3252 lp_shipment_rec := p_shipment_rec;
3253
3254 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3255 aso_debug_pub.add('Validate_ItemTcaCrs: lp_qte_header_rec.quote_header_id: ' || lp_qte_header_rec.quote_header_id,1,'N');
3256 aso_debug_pub.add('Validate_ItemTcaCrs: lp_shipment_rec.shipment_id: ' || lp_shipment_rec.shipment_id,1,'N');
3257 END IF;
3258
3259 IF (p_application_type_code = 'QUOTING HTML' AND p_operation_code = 'UPDATE') THEN
3260 l_qte_header_rec := ASO_UTILITY_PVT.query_header_row (lp_qte_header_rec.quote_header_id);
3261
3262 IF lp_qte_header_rec.party_id = FND_API.G_MISS_NUM THEN
3263 lp_qte_header_rec.party_id := l_qte_header_rec.party_id;
3264 END IF;
3265 IF lp_qte_header_rec.cust_party_id = FND_API.G_MISS_NUM THEN
3266 lp_qte_header_rec.cust_party_id := l_qte_header_rec.cust_party_id;
3267 END IF;
3268 IF lp_qte_header_rec.invoice_to_cust_party_id = FND_API.G_MISS_NUM THEN
3269 lp_qte_header_rec.invoice_to_cust_party_id := l_qte_header_rec.invoice_to_cust_party_id;
3270 END IF;
3271 IF lp_qte_header_rec.End_Customer_cust_party_id = FND_API.G_MISS_NUM THEN
3272 lp_qte_header_rec.End_Customer_cust_party_id := l_qte_header_rec.End_Customer_cust_party_id;
3273 END IF;
3274 IF lp_qte_header_rec.cust_account_id = FND_API.G_MISS_NUM THEN
3275 lp_qte_header_rec.cust_account_id := l_qte_header_rec.cust_account_id;
3276 END IF;
3277 IF lp_qte_header_rec.invoice_to_cust_account_id = FND_API.G_MISS_NUM THEN
3278 lp_qte_header_rec.invoice_to_cust_account_id := l_qte_header_rec.invoice_to_cust_account_id;
3279 END IF;
3280 IF lp_qte_header_rec.End_Customer_cust_account_id = FND_API.G_MISS_NUM THEN
3281 lp_qte_header_rec.End_Customer_cust_account_id := l_qte_header_rec.End_Customer_cust_account_id;
3282 END IF;
3283 IF lp_qte_header_rec.org_contact_id = FND_API.G_MISS_NUM THEN
3284 lp_qte_header_rec.org_contact_id := l_qte_header_rec.org_contact_id;
3285 END IF;
3286 IF lp_qte_header_rec.invoice_to_party_id = FND_API.G_MISS_NUM THEN
3287 lp_qte_header_rec.invoice_to_party_id := l_qte_header_rec.invoice_to_party_id;
3288 END IF;
3289 IF lp_qte_header_rec.End_Customer_party_id = FND_API.G_MISS_NUM THEN
3290 lp_qte_header_rec.End_Customer_party_id := l_qte_header_rec.End_Customer_party_id;
3291 END IF;
3292 IF lp_qte_header_rec.invoice_to_party_site_id = FND_API.G_MISS_NUM THEN
3293 lp_qte_header_rec.invoice_to_party_site_id := l_qte_header_rec.invoice_to_party_site_id;
3294 END IF;
3295 IF lp_qte_header_rec.End_Customer_party_site_id = FND_API.G_MISS_NUM THEN
3296 lp_qte_header_rec.End_Customer_party_site_id := l_qte_header_rec.End_Customer_party_site_id;
3297 END IF;
3298 IF lp_qte_header_rec.sold_to_party_site_id = FND_API.G_MISS_NUM THEN
3299 lp_qte_header_rec.sold_to_party_site_id := l_qte_header_rec.sold_to_party_site_id;
3300 END IF;
3301
3302 IF lp_shipment_rec.operation_code = 'UPDATE' THEN
3303 IF lp_shipment_rec.shipment_id IS NOT NULL AND lp_shipment_rec.shipment_id <> FND_API.G_MISS_NUM THEN
3304 l_shipment_rec := ASO_UTILITY_PVT.query_shipment_row (lp_shipment_rec.shipment_id);
3305 IF lp_shipment_rec.ship_to_cust_party_id = FND_API.G_MISS_NUM THEN
3306 lp_shipment_rec.ship_to_cust_party_id := l_shipment_rec.ship_to_cust_party_id;
3307 END IF;
3308 IF lp_shipment_rec.ship_to_cust_account_id = FND_API.G_MISS_NUM THEN
3309 lp_shipment_rec.ship_to_cust_account_id := l_shipment_rec.ship_to_cust_account_id;
3310 END IF;
3311 IF lp_shipment_rec.ship_to_party_id = FND_API.G_MISS_NUM THEN
3312 lp_shipment_rec.ship_to_party_id := l_shipment_rec.ship_to_party_id;
3313 END IF;
3314 IF lp_shipment_rec.ship_to_party_site_id = FND_API.G_MISS_NUM THEN
3315 lp_shipment_rec.ship_to_party_site_id := l_shipment_rec.ship_to_party_site_id;
3316 END IF;
3317 END IF;
3318 END IF;
3319
3320 END IF; -- UPDATE
3321
3322 -- Initialize API return status to success
3323 x_return_status := FND_API.G_RET_STS_SUCCESS;
3324 ASO_VALIDATE_PVT.Validate_Party_Crs(
3325 p_init_msg_list => p_init_msg_list,
3326 p_party_id => lp_qte_header_rec.party_id,
3327 p_cust_party_id => lp_qte_header_rec.cust_party_id,
3328 p_cust_account_id => lp_qte_header_rec.cust_account_id,
3329 x_return_status => x_return_status,
3330 x_msg_count => x_msg_count,
3331 x_msg_data => x_msg_data);
3332 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3333 aso_debug_pub.add('validate record tca crs - after validate party crs '||x_return_status, 1, 'N');
3334 END IF;
3335
3336 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3337 RAISE FND_API.G_EXC_ERROR;
3338 END IF;
3339 ASO_VALIDATE_PVT.Validate_org_contact_crs(
3340 p_init_msg_list => p_init_msg_list,
3341 p_contact_id => lp_qte_header_rec.org_contact_id,
3342 p_cust_account_id => lp_qte_header_rec.cust_account_id,
3343 p_party_id => lp_qte_header_rec.party_id,
3344 x_return_status => x_return_status,
3345 x_msg_count => x_msg_count,
3346 x_msg_data => x_msg_data);
3347 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3348 aso_debug_pub.add('validate record tca crs - after validate org contact crs '||x_return_status, 1, 'N');
3349 END IF;
3350
3351 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3352 RAISE FND_API.G_EXC_ERROR;
3353 END IF;
3354 ASO_VALIDATE_PVT.Validate_Inv_Party_Crs(
3355 p_init_msg_list => p_init_msg_list,
3356 p_party_id => lp_qte_header_rec.party_id,
3357 p_cust_party_id => lp_qte_header_rec.cust_party_id,
3358 p_inv_party_id => lp_qte_header_rec.invoice_to_party_id,
3359 p_cust_account_id => lp_qte_header_rec.cust_account_id,
3360 p_inv_cust_account_id => lp_qte_header_rec.invoice_to_cust_account_id,
3361 p_inv_cust_party_id => lp_qte_header_rec.invoice_to_cust_party_id,
3362 p_site_use => 'BILL_TO',
3363 x_return_status => x_return_status,
3364 x_msg_count => x_msg_count,
3365 x_msg_data => x_msg_data);
3366 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3367 aso_debug_pub.add('validate record tca crs - after validate Inv party crs(Bill to) '||x_return_status, 1, 'N');
3368 END IF;
3369
3370 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3371 RAISE FND_API.G_EXC_ERROR;
3372 END IF;
3373
3374 ASO_VALIDATE_PVT.Validate_Inv_Party_Crs(
3375 p_init_msg_list => p_init_msg_list,
3376 p_party_id => lp_qte_header_rec.party_id,
3377 p_cust_party_id => lp_qte_header_rec.cust_party_id,
3378 p_inv_party_id => lp_qte_header_rec.End_Customer_party_id,
3379 p_cust_account_id => lp_qte_header_rec.cust_account_id,
3380 p_inv_cust_account_id => lp_qte_header_rec.End_Customer_cust_account_id,
3381 p_inv_cust_party_id => lp_qte_header_rec.End_Customer_cust_party_id,
3382 p_site_use => 'END_USER',
3383 x_return_status => x_return_status,
3384 x_msg_count => x_msg_count,
3385 x_msg_data => x_msg_data);
3386 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3387 aso_debug_pub.add('validate record tca crs - after validate Inv party crs(End User) '||x_return_status, 1, 'N');
3388 END IF;
3389
3390 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3391 RAISE FND_API.G_EXC_ERROR;
3392 END IF;
3393
3394 ASO_VALIDATE_PVT.Validate_Inv_Party_Crs(
3395 p_init_msg_list => p_init_msg_list,
3396 p_party_id => lp_qte_header_rec.party_id,
3397 p_cust_party_id => lp_qte_header_rec.cust_party_id,
3398 p_inv_party_id => lp_shipment_rec.ship_to_party_id,
3399 p_cust_account_id => lp_qte_header_rec.cust_account_id,
3400 p_inv_cust_account_id => lp_shipment_rec.ship_to_cust_account_id,
3401 p_inv_cust_party_id => lp_shipment_rec.ship_to_cust_party_id,
3402 p_site_use => 'SHIP_TO',
3403 x_return_status => x_return_status,
3404 x_msg_count => x_msg_count,
3405 x_msg_data => x_msg_data);
3406 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3407 aso_debug_pub.add('validate record tca crs - after validate Inv party crs(Ship to) '||x_return_status, 1, 'N');
3408 END IF;
3409
3410 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3411 RAISE FND_API.G_EXC_ERROR;
3412 END IF;
3413 ASO_VALIDATE_PVT.Validate_inv_PartySite_crs(
3414 p_init_msg_list => p_init_msg_list,
3415 p_party_id => lp_qte_header_rec.party_id,
3416 p_cust_party_id => lp_qte_header_rec.cust_party_id,
3417 p_inv_party_id => lp_qte_header_rec.invoice_to_party_id,
3418 p_cust_account_id => lp_qte_header_rec.cust_account_id,
3419 p_inv_cust_account_id => lp_qte_header_rec.invoice_to_cust_account_id,
3420 p_inv_cust_party_id => lp_qte_header_rec.invoice_to_cust_party_id,
3421 p_party_site_id => lp_qte_header_rec.invoice_to_party_Site_id,
3422 p_site_usage => 'BILL_TO',
3423 x_return_status => x_return_status,
3424 x_msg_count => x_msg_count,
3425 x_msg_data => x_msg_data);
3426 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3427 aso_debug_pub.add('validate record tca crs - after validate Inv party site crs(Bill to) '||x_return_status, 1, 'N');
3428 END IF;
3429
3430 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3431 RAISE FND_API.G_EXC_ERROR;
3432 END IF;
3433
3434 ASO_VALIDATE_PVT.Validate_inv_PartySite_crs(
3435 p_init_msg_list => p_init_msg_list,
3436 p_party_id => lp_qte_header_rec.party_id,
3437 p_cust_party_id => lp_qte_header_rec.cust_party_id,
3438 p_inv_party_id => lp_qte_header_rec.End_Customer_party_id,
3439 p_cust_account_id => lp_qte_header_rec.cust_account_id,
3440 p_inv_cust_account_id => lp_qte_header_rec.End_Customer_cust_account_id,
3441 p_inv_cust_party_id => lp_qte_header_rec.End_Customer_cust_party_id,
3442 p_party_site_id => lp_qte_header_rec.End_Customer_party_Site_id,
3443 p_site_usage => 'END_USER',
3444 x_return_status => x_return_status,
3445 x_msg_count => x_msg_count,
3446 x_msg_data => x_msg_data);
3447 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3448 aso_debug_pub.add('validate record tca crs - after validate Inv party site crs(End User) '||x_return_status, 1, 'N');
3449 END IF;
3450
3451 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3452 RAISE FND_API.G_EXC_ERROR;
3453 END IF;
3454
3455 ASO_VALIDATE_PVT.Validate_inv_PartySite_crs(
3456 p_init_msg_list => p_init_msg_list,
3457 p_party_id => lp_qte_header_rec.party_id,
3458 p_party_site_id => lp_shipment_rec.ship_to_party_Site_id,
3459 p_cust_party_id => lp_qte_header_rec.cust_party_id,
3460 p_inv_party_id => lp_shipment_rec.ship_to_party_id,
3461 p_cust_account_id => lp_qte_header_rec.cust_account_id,
3462 p_inv_cust_account_id => lp_shipment_rec.ship_to_cust_account_id,
3463 p_inv_cust_party_id => lp_shipment_rec.ship_to_cust_party_id,
3464 p_site_usage => 'SHIP_TO',
3465 x_return_status => x_return_status,
3466 x_msg_count => x_msg_count,
3467 x_msg_data => x_msg_data);
3468 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3469 aso_debug_pub.add('validate record tca crs - after validate Inv party site crs(Ship to) '||x_return_status, 1, 'N');
3470 END IF;
3471
3472 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3473 RAISE FND_API.G_EXC_ERROR;
3474 END IF;
3475
3476 -- Sold_to
3477 IF lp_qte_header_rec.org_contact_id IS NOT NULL
3478 AND lp_qte_header_rec.org_contact_id <> FND_API.G_MISS_NUM THEN
3479 OPEN C_Get_Party_From_Org(lp_qte_header_rec.org_contact_id);
3480 FETCH C_Get_Party_From_Org INTO l_party_id;
3481 CLOSE C_Get_Party_From_Org;
3482 ELSE
3483 l_party_id := lp_qte_header_rec.party_id;
3484 END IF;
3485
3486 ASO_VALIDATE_PVT.Validate_inv_PartySite_crs(
3487 p_init_msg_list => p_init_msg_list,
3488 p_party_id => l_party_id,
3489 p_cust_party_id => lp_qte_header_rec.cust_party_id,
3490 p_inv_party_id => null,
3491 p_cust_account_id => lp_qte_header_rec.cust_account_id,
3492 p_inv_cust_account_id => null,
3493 p_inv_cust_party_id => null,
3494 p_party_site_id => lp_qte_header_rec.sold_to_party_Site_id,
3495 p_site_usage => 'SOLD_TO',
3496 x_return_status => x_return_status,
3497 x_msg_count => x_msg_count,
3498 x_msg_data => x_msg_data);
3499 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3500 aso_debug_pub.add('validate record tca crs - after validate Inv party site crs(Sold to) '||x_return_status, 1, 'N');
3501 END IF;
3502
3503 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3504 RAISE FND_API.G_EXC_ERROR;
3505 END IF;
3506 -- Sold_to
3507
3508 FND_MSG_PUB.Count_And_Get
3509 ( p_count => x_msg_count,
3510 p_data => x_msg_data
3511 );
3512
3513 EXCEPTION
3514 WHEN FND_API.G_EXC_ERROR THEN
3515 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
3516 P_API_NAME => L_API_NAME
3517 ,P_PKG_NAME => G_PKG_NAME
3518 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
3519 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
3520 ,P_SQLCODE => SQLCODE
3521 ,P_SQLERRM => SQLERRM
3522 ,X_MSG_COUNT => X_MSG_COUNT
3523 ,X_MSG_DATA => X_MSG_DATA
3524 ,X_RETURN_STATUS => X_RETURN_STATUS);
3525
3526 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3527 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
3528 P_API_NAME => L_API_NAME
3529 ,P_PKG_NAME => G_PKG_NAME
3530 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
3531 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
3532 ,P_SQLCODE => SQLCODE
3533 ,P_SQLERRM => SQLERRM
3534 ,X_MSG_COUNT => X_MSG_COUNT
3535 ,X_MSG_DATA => X_MSG_DATA
3536 ,X_RETURN_STATUS => X_RETURN_STATUS);
3537
3538 WHEN OTHERS THEN
3539 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
3540 P_API_NAME => L_API_NAME
3541 ,P_PKG_NAME => G_PKG_NAME
3542 ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
3543 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
3544 ,P_SQLCODE => SQLCODE
3545 ,P_SQLERRM => SQLERRM
3546 ,X_MSG_COUNT => X_MSG_COUNT
3547 ,X_MSG_DATA => X_MSG_DATA
3548 ,X_RETURN_STATUS => X_RETURN_STATUS);
3549
3550 END Validate_record_tca_crs;
3551
3552 PROCEDURE Validate_QTE_OBJ_TYPE_CODE (
3553 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
3554 P_QUOTE_OBJECT_TYPE_CODE IN VARCHAR2,
3555 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
3556 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
3557 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
3558 )
3559 IS
3560 CURSOR C1 IS select 'x'
3561 from aso_lookups
3562 where lookup_type = 'ASO_QUOTE_OBJECT_TYPE'
3563 and lookup_code = p_QUOTE_OBJECT_TYPE_CODE;
3564 l_exist VARCHAR2(1);
3565 BEGIN
3566
3567 -- Initialize message list if p_init_msg_list is set to TRUE.
3568 IF FND_API.to_Boolean( p_init_msg_list )
3569 THEN
3570 FND_MSG_PUB.initialize;
3571 END IF;
3572
3573
3574 -- Initialize API return status to SUCCESS
3575 x_return_status := FND_API.G_RET_STS_SUCCESS;
3576 IF P_QUOTE_OBJECT_TYPE_CODE IS NOT NULL AND P_QUOTE_OBJECT_TYPE_CODE <> FND_API.G_MISS_CHAR THEN
3577 OPEN C1;
3578 FETCH C1 INTO l_exist;
3579 IF C1%NOTFOUND or l_exist is NULL THEN
3580 CLOSE C1;
3581 x_return_status := FND_API.G_RET_STS_ERROR;
3582 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3583 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
3584 FND_MESSAGE.Set_Token('COLUMN', 'QUOTE_OBJECT_TYPE_CODE', FALSE);
3585 FND_MESSAGE.Set_Token('VALUE',P_QUOTE_OBJECT_TYPE_CODE,FALSE);
3586 FND_MSG_PUB.ADD;
3587 END IF;
3588
3589 ELSE
3590 CLOSE C1;
3591 END IF;
3592
3593 END IF;
3594
3595 END Validate_QTE_OBJ_TYPE_CODE;
3596
3597 PROCEDURE Validate_OBJECT_TYPE_CODE (
3598 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
3599 P_OBJECT_TYPE_CODE IN VARCHAR2,
3600 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
3601 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
3602 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
3603 )
3604 IS
3605 CURSOR C1 IS select 'x'
3606 from aso_lookups
3607 where lookup_type = 'ASO_RELATED_OBJECT_TYPE'
3608 and lookup_code = p_OBJECT_TYPE_CODE;
3609
3610 l_exist VARCHAR2(1);
3611 BEGIN
3612
3613 -- Initialize message list if p_init_msg_list is set to TRUE.
3614 IF FND_API.to_Boolean( p_init_msg_list )
3615 THEN
3616 FND_MSG_PUB.initialize;
3617 END IF;
3618
3619
3620 -- Initialize API return status to SUCCESS
3621 x_return_status := FND_API.G_RET_STS_SUCCESS;
3622
3623 IF p_OBJECT_TYPE_CODE IS NOT NULL AND p_OBJECT_TYPE_CODE <> FND_API.G_MISS_CHAR THEN
3624 OPEN C1;
3625 FETCH C1 INTO l_exist;
3626 IF C1%NOTFOUND or l_exist is NULL THEN
3627 CLOSE C1;
3628 x_return_status := FND_API.G_RET_STS_ERROR;
3629 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3630 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
3631 FND_MESSAGE.Set_Token('COLUMN', 'OBJECT_TYPE_CODE', FALSE);
3632 FND_MESSAGE.Set_Token('VALUE',p_OBJECT_TYPE_CODE,FALSE);
3633 FND_MSG_PUB.ADD;
3634 END IF;
3635
3636 ELSE
3637 CLOSE C1;
3638 END IF;
3639
3640 END IF;
3641
3642
3643 END Validate_OBJECT_TYPE_CODE;
3644 PROCEDURE Validate_RLTSHIP_TYPE_CODE (
3645 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
3646 P_RELATIONSHIP_TYPE_CODE IN VARCHAR2,
3647 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
3648 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
3649 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
3650 )
3651 IS
3652 CURSOR C1 IS SELECT 'x'
3653 from aso_lookups
3654 where lookup_type = 'ASO_OBJECT_RELATIONSHIP_TYPE'
3655 and lookup_code = p_RELATIONSHIP_TYPE_CODE;
3656
3657 l_exist VARCHAR2(1);
3658 BEGIN
3659
3660 -- Initialize message list if p_init_msg_list is set to TRUE.
3661 IF FND_API.to_Boolean( p_init_msg_list )
3662 THEN
3663 FND_MSG_PUB.initialize;
3664 END IF;
3665
3666
3667 -- Initialize API return status to SUCCESS
3668 x_return_status := FND_API.G_RET_STS_SUCCESS;
3669 IF P_RELATIONSHIP_TYPE_CODE IS NOT NULL AND P_RELATIONSHIP_TYPE_CODE <> FND_API.G_MISS_CHAR THEN
3670 OPEN C1;
3671 FETCH C1 INTO l_exist;
3672 IF C1%NOTFOUND or l_exist is NULL THEN
3673 CLOSE C1;
3674 x_return_status := FND_API.G_RET_STS_ERROR;
3675 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3676 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
3677 FND_MESSAGE.Set_Token('COLUMN', 'RELATIONSHIP_TYPE_CODE', FALSE);
3678 FND_MESSAGE.Set_Token('VALUE',P_RELATIONSHIP_TYPE_CODE,FALSE);
3679 FND_MSG_PUB.ADD;
3680 END IF;
3681
3682 ELSE
3683 CLOSE C1;
3684 END IF;
3685
3686 END IF;
3687
3688
3689 END Validate_RLTSHIP_TYPE_CODE;
3690
3691
3692
3693 PROCEDURE Validate_Minisite(
3694 p_init_msg_list IN VARCHAR2,
3695 p_minisite_id IN NUMBER,
3696 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
3697 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
3698 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
3699 IS
3700 CURSOR C_Minisite IS
3701 SELECT start_date_active, end_date_active FROM IBE_MSITES_B
3702 WHERE msite_id = p_minisite_id;
3703 l_start_date DATE;
3704 l_end_date DATE;
3705 BEGIN
3706 -- Initialize message list if p_init_msg_list is set to TRUE.
3707 IF FND_API.to_Boolean( p_init_msg_list ) THEN
3708 FND_MSG_PUB.initialize;
3709 END IF;
3710
3711 -- Initialize API return status to success
3712 x_return_status := FND_API.G_RET_STS_SUCCESS;
3713
3714 IF (p_minisite_id IS NOT NULL AND p_minisite_id <> FND_API.G_MISS_NUM) THEN
3715 OPEN C_Minisite;
3716 FETCH C_Minisite INTO l_start_date, l_end_date;
3717 IF (C_Minisite%NOTFOUND OR
3718 (sysdate NOT BETWEEN NVL(l_start_date, sysdate) AND
3719 NVL(l_end_date, sysdate))) THEN
3720 CLOSE C_Minisite;
3721 x_return_status := FND_API.G_RET_STS_ERROR;
3722 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3723 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
3724 FND_MESSAGE.Set_Token('COLUMN', 'MSITE_ID', FALSE);
3725 FND_MESSAGE.Set_Token('VALUE',to_char(p_minisite_id),FALSE);
3726 FND_MSG_PUB.ADD;
3727 END IF;
3728 ELSE
3729 CLOSE C_Minisite;
3730 END IF;
3731 END IF;
3732
3733 END Validate_Minisite;
3734
3735
3736
3737 PROCEDURE Validate_Section(
3738 p_init_msg_list IN VARCHAR2,
3739 p_section_id IN NUMBER,
3740 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
3741 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
3742 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
3743 IS
3744 CURSOR C_Section IS
3745 SELECT start_date_active, end_date_active FROM IBE_DSP_SECTIONS_B
3746 WHERE section_id = p_section_id;
3747 l_start_date DATE;
3748 l_end_date DATE;
3749 BEGIN
3750 -- Initialize message list if p_init_msg_list is set to TRUE.
3751 IF FND_API.to_Boolean( p_init_msg_list ) THEN
3752 FND_MSG_PUB.initialize;
3753 END IF;
3754
3755 -- Initialize API return status to success
3756 x_return_status := FND_API.G_RET_STS_SUCCESS;
3757
3758 IF (p_section_id IS NOT NULL AND p_section_id <> FND_API.G_MISS_NUM) THEN
3759 OPEN C_Section;
3760 FETCH C_Section INTO l_start_date, l_end_date;
3761 IF (C_Section%NOTFOUND OR
3762 (sysdate NOT BETWEEN NVL(l_start_date, sysdate) AND
3763 NVL(l_end_date, sysdate))) THEN
3764 CLOSE C_Section;
3765 x_return_status := FND_API.G_RET_STS_ERROR;
3766 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3767 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
3768 FND_MESSAGE.Set_Token('COLUMN', 'SECTION_ID', FALSE);
3769 FND_MESSAGE.Set_Token('VALUE',to_char(p_section_id),FALSE);
3770 FND_MSG_PUB.ADD;
3771 END IF;
3772 ELSE
3773 CLOSE C_Section;
3774 END IF;
3775 END IF;
3776
3777 END Validate_Section;
3778
3779
3780 Procedure Validate_Quote_Percent(
3781 p_init_msg_list IN VARCHAR2,
3782 p_sales_credit_tbl IN ASO_QUOTE_PUB.Sales_Credit_Tbl_Type,
3783 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
3784 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
3785 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
3786 )
3787 IS
3788
3789 CURSOR C_Quota_Header(l_quote_header_id NUMBER) IS
3790 SELECT SUM(A.percent) total
3791 FROM ASO_SALES_CREDITS A,
3792 OE_SALES_CREDIT_TYPES B
3793 WHERE A.quote_header_id = l_quote_header_id
3794 AND A.quote_line_id IS NULL
3795 AND A.sales_credit_type_id = B.sales_credit_type_id
3796 AND B.quota_flag = 'Y';
3797
3798 CURSOR C_Quota_Line(l_quote_header_id NUMBER, l_quote_line_id NUMBER) IS
3799 SELECT SUM(A.percent) total
3800 FROM ASO_SALES_CREDITS A,
3801 OE_SALES_CREDIT_TYPES B
3802 WHERE A.quote_header_id = l_quote_header_id
3803 AND A.quote_line_id = l_quote_line_id
3804 AND A.sales_credit_type_id = B.sales_credit_type_id
3805 AND B.quota_flag = 'Y';
3806
3807 l_percent_total NUMBER;
3808
3809 BEGIN
3810
3811 -- Initialize message list if p_init_msg_list is set to TRUE.
3812 IF FND_API.to_Boolean( p_init_msg_list ) THEN
3813 FND_MSG_PUB.initialize;
3814 END IF;
3815
3816 -- Initialize API return status to success
3817 x_return_status := FND_API.G_RET_STS_SUCCESS;
3818
3819 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3820 aso_debug_pub.add('validate_quote_percent: sales_credit_tbl.cnt: '|| p_sales_credit_tbl.count, 1, 'N');
3821 aso_debug_pub.add('validate_quote_percent: quote_header_id: '|| p_sales_credit_tbl(1).quote_header_id, 1, 'N');
3822 aso_debug_pub.add('validate_quote_percent: quote_line_id: '|| p_sales_credit_tbl(1).quote_line_id, 1, 'N');
3823 aso_debug_pub.add('validate_quote_percent: qte_line_index: '|| p_sales_credit_tbl(1).qte_line_index, 1, 'N');
3824 END IF;
3825
3826 IF p_sales_credit_tbl(1).quote_header_id IS NOT NULL AND p_sales_credit_tbl(1).quote_header_id <> FND_API.G_MISS_NUM THEN
3827 IF p_sales_credit_tbl(1).quote_line_id IS NOT NULL AND p_sales_credit_tbl(1).quote_line_id <> FND_API.G_MISS_NUM THEN
3828 FOR percent_rec IN c_quota_line(p_sales_credit_tbl(1).quote_header_id, p_sales_credit_tbl(1).quote_line_id) LOOP
3829 l_percent_total := percent_rec.total;
3830 END LOOP;
3831 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3832 aso_debug_pub.add('validate_quote_percent: line level sales credit', 1, 'N');
3833 aso_debug_pub.add('validate_quote_percent: percent in line db: '|| l_percent_total, 1, 'N');
3834 END IF;
3835 ELSE
3836 FOR percent_rec IN c_quota_header(p_sales_credit_tbl(1).quote_header_id) LOOP
3837 l_percent_total := percent_rec.total;
3838 END LOOP;
3839 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3840 aso_debug_pub.add('validate_quote_percent: header level sales credit', 1, 'N');
3841 aso_debug_pub.add('validate_quote_percent: percent in header db: '|| l_percent_total, 1, 'N');
3842 END IF;
3843 END IF;
3844 END IF;
3845
3846 --IF nvl(l_percent_total,0) <> 100 THEN --commented to fix bug5671266
3847 IF l_percent_total IS NOT NULL AND l_percent_total <> 100 THEN
3848 x_return_status := FND_API.G_RET_STS_ERROR;
3849 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3850 FND_MESSAGE.Set_Name('ASO', 'ASO_SALES_CREDIT_PERCENT');
3851 FND_MSG_PUB.ADD;
3852 END IF;
3853 END IF;
3854
3855 END Validate_Quote_Percent;
3856
3857
3858 Procedure Validate_Sales_Credit_Return(
3859 p_init_msg_list IN VARCHAR2,
3860 p_sales_credit_tbl IN ASO_QUOTE_PUB.Sales_Credit_Tbl_Type,
3861 p_qte_line_rec IN ASO_QUOTE_PUB.Qte_Line_Rec_Type,
3862 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
3863 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
3864 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
3865 )
3866 IS
3867
3868 BEGIN
3869 -- Initialize message list if p_init_msg_list is set to TRUE.
3870 IF FND_API.to_Boolean( p_init_msg_list ) THEN
3871 FND_MSG_PUB.initialize;
3872 END IF;
3873
3874 -- Initialize API return status to success
3875 x_return_status := FND_API.G_RET_STS_SUCCESS;
3876
3877 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3878 aso_debug_pub.add('validate_sales_credit_return: start '|| x_return_status, 1, 'N');
3879 END IF;
3880
3881 IF p_qte_line_rec.LINE_CATEGORY_CODE = 'RETURN' THEN
3882 IF p_sales_credit_tbl.count > 0 THEN
3883 x_return_status := FND_API.G_RET_STS_ERROR;
3884 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3885 FND_MESSAGE.Set_Name('ASO', 'ASO_SALES_CREDIT_RETURN');
3886 FND_MSG_PUB.ADD;
3887 END IF;
3888 END IF;
3889 END IF;
3890
3891 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3892 aso_debug_pub.add('validate_sales_credit_return: end '|| x_return_status, 1, 'N');
3893 END IF;
3894
3895 END Validate_Sales_Credit_Return;
3896
3897
3898 PROCEDURE validate_ship_from_org_ID (
3899 P_Qte_Line_rec IN ASO_QUOTE_PUB.Qte_Line_Rec_Type,
3900 P_Shipment_rec IN ASO_QUOTE_PUB.Shipment_Rec_Type,
3901 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
3902 )
3903 IS
3904
3905 l_org_id NUMBER;
3906
3907 -- bug 2492841
3908 -- view org_organization_definitions is changed to base table
3909 -- hr_organization_units
3910
3911 CURSOR c_org_id is
3912 SELECT org.organization_id
3913 FROM mtl_system_items msi, hr_organization_units org
3914 WHERE msi.inventory_item_id = p_qte_line_rec.inventory_item_id
3915 AND org.organization_id= msi.organization_id
3916 AND sysdate <= nvl( org.date_to, sysdate)
3917 AND org.organization_id= p_shipment_rec.ship_from_org_id
3918 --AND msi.organization_id= p_qte_line_rec.organization_id
3919 AND rownum = 1 ;
3920
3921 BEGIN
3922 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3923 aso_debug_pub.add('ASO_VALIDATE_PVT inventory_item_id: '||p_qte_line_rec.inventory_item_id, 1, 'N');
3924 aso_debug_pub.add('ASO_VALIDATE_PVT organization_id: '||p_qte_line_rec.organization_id, 1, 'N');
3925 aso_debug_pub.add('ASO_VALIDATE_PVT ship_from_org_id: '||p_shipment_rec.ship_from_org_id, 1, 'N');
3926 END IF;
3927
3928 x_return_status := FND_API.G_RET_STS_SUCCESS;
3929 IF (p_qte_line_rec.inventory_item_id is not null AND p_qte_line_rec.inventory_item_id <> FND_API.G_MISS_NUM) AND
3930 (p_qte_line_rec.organization_id is not null AND p_qte_line_rec.organization_id <> FND_API.G_MISS_NUM) AND
3931 (p_shipment_rec.ship_from_org_id is not null AND p_shipment_rec.ship_from_org_id <> FND_API.G_MISS_NUM) THEN
3932
3933 open c_org_id;
3934 fetch c_org_id into l_org_id;
3935 IF c_org_id%NOTFOUND THEN
3936 x_return_status := FND_API.G_RET_STS_ERROR;
3937 END IF;
3938 close c_org_id;
3939 END IF;
3940 END validate_ship_from_org_ID;
3941
3942
3943 PROCEDURE Validate_Commitment(
3944 P_Init_Msg_List IN VARCHAR2,
3945 P_Qte_Header_Rec IN ASO_QUOTE_PUB.Qte_Header_Rec_Type,
3946 P_Qte_Line_Rec IN ASO_QUOTE_PUB.Qte_Line_Rec_Type,
3947 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
3948 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
3949 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
3950
3951 IS
3952
3953 CURSOR C_Commitment_Cur(l_cust_account_id NUMBER, l_currency_code VARCHAR2, l_org_id NUMBER,
3954 l_agreement_id NUMBER, l_commitment_id NUMBER, l_inventory_item_id NUMBER) IS
3955 SELECT 'VALID'
3956 FROM ra_customer_trx ratrx, ra_customer_trx_lines ratrl
3957 WHERE EXISTS
3958 (SELECT 1 FROM ra_cust_trx_types ractt
3959 WHERE ractt.type IN ('DEP', 'GUAR')
3960 AND ratrx.cust_trx_type_id = ractt.cust_trx_type_id
3961 AND ractt.org_id = l_org_id)
3962 AND ratrx.bill_to_customer_id = l_cust_account_id
3963 AND ratrx.complete_flag = 'Y'
3964 AND trunc(sysdate) BETWEEN trunc(nvl(ratrx.start_date_commitment, sysdate))
3965 AND trunc(nvl(ratrx.end_date_commitment, sysdate))
3966 AND ratrx.invoice_currency_code = l_currency_code
3967 AND nvl(l_agreement_id, nvl(ratrx.agreement_id,0)) = nvl(ratrx.agreement_id, nvl(l_agreement_id,0))
3968 AND ratrl.customer_trx_id = ratrx.customer_trx_id
3969 AND nvl(ratrl.inventory_item_id, nvl(l_inventory_item_id,0)) = nvl(l_inventory_item_id,0)
3970 AND ratrx.customer_trx_id = l_commitment_id;
3971
3972 CURSOR C_Get_Agreement(l_qte_hdr_id NUMBER) IS
3973 SELECT Contract_Id
3974 FROM ASO_QUOTE_HEADERS_ALL
3975 WHERE Quote_Header_Id = l_qte_hdr_id;
3976
3977 CURSOR C_Header_Cur(l_qte_hdr_id NUMBER) IS
3978 SELECT Org_Id, Currency_Code, Invoice_To_Cust_Account_Id
3979 FROM ASO_QUOTE_HEADERS_ALL
3980 WHERE Quote_Header_Id = l_qte_hdr_id;
3981 CURSOR C_Line_Cur(l_qte_ln_id NUMBER) IS
3982 SELECT Agreement_Id, Commitment_Id, Inventory_Item_Id
3983 FROM ASO_QUOTE_LINES_ALL
3984 WHERE Quote_Line_Id = l_qte_ln_id;
3985
3986 l_Org_Id NUMBER;
3987 l_Currency_Code VARCHAR2(15);
3988 l_Cust_Account_Id NUMBER;
3989 l_Agreement_Id NUMBER;
3990 l_Commitment_Id NUMBER;
3991 l_Inventory_Item_Id NUMBER;
3992 l_Cur_Variable VARCHAR2(10);
3993
3994 BEGIN
3995
3996 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3997 aso_debug_pub.add('Entering Validate_Commitment', 1, 'N');
3998 END IF;
3999
4000 -- Initialize message list if p_init_msg_list is set to TRUE.
4001 IF FND_API.to_Boolean( p_init_msg_list ) THEN
4002 FND_MSG_PUB.initialize;
4003 END IF;
4004
4005 -- Initialize API return status to success
4006 x_return_status := FND_API.G_RET_STS_SUCCESS;
4007
4008 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4009 aso_debug_pub.add('Validate_Commitment-P_Qte_Header_Rec.Quote_Header_Id: '||P_Qte_Header_Rec.Quote_Header_Id, 1, 'N');
4010 aso_debug_pub.add('Validate_Commitment-P_Qte_Line_Rec.Commitment_Id: '||P_Qte_Line_Rec.Commitment_Id, 1, 'N');
4011 END IF;
4012
4013 IF P_Qte_Line_Rec.Commitment_Id IS NOT NULL AND
4014 P_Qte_Line_Rec.Commitment_Id <> FND_API.G_MISS_NUM THEN
4015
4016 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4017 aso_debug_pub.add('Validate_Commitment-P_Qte_Line_Rec.Operation_Code: '||P_Qte_Line_Rec.Operation_Code, 1, 'N');
4018 END IF;
4019 IF P_Qte_Line_Rec.Operation_Code = 'CREATE' THEN
4020
4021 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4022 aso_debug_pub.add('Validate_Commitment-P_Qte_Header_Rec.Org_Id: '||P_Qte_Header_Rec.Org_Id, 1, 'N');
4023 aso_debug_pub.add('Validate_Commitment-P_Qte_Header_Rec.Currency_Code: '||P_Qte_Header_Rec.Currency_Code, 1, 'N');
4024 aso_debug_pub.add('Validate_Commitment-P_Qte_Header_Rec.Invoice_To_Cust_Account_Id: '||P_Qte_Header_Rec.Invoice_To_Cust_Account_Id, 1, 'N');
4025 aso_debug_pub.add('Validate_Commitment-P_Qte_Header_Rec.Cust_Account_Id: '||P_Qte_Header_Rec.Cust_Account_Id, 1, 'N');
4026 aso_debug_pub.add('Validate_Commitment-P_Qte_Line_Rec.Agreement_Id: '||P_Qte_Line_Rec.Agreement_Id, 1, 'N');
4027 aso_debug_pub.add('Validate_Commitment-P_Qte_Line_Rec.Commitment_Id: '||P_Qte_Line_Rec.Commitment_Id, 1, 'N');
4028 aso_debug_pub.add('Validate_Commitment-P_Qte_Line_Rec.Inventory_Item_Id: '||P_Qte_Line_Rec.Inventory_Item_Id, 1, 'N');
4029 END IF;
4030 l_Org_Id := P_Qte_Header_Rec.Org_Id;
4031 l_Currency_Code := P_Qte_Header_Rec.Currency_Code;
4032 /*
4033 IF P_Qte_Line_Rec.Invoice_To_Cust_Account_Id IS NOT NULL AND
4034 P_Qte_Line_Rec.Invoice_To_Cust_Account_Id <> FND_API.G_MISS_NUM THEN
4035 aso_debug_pub.add('Validate_Commitment-P_Qte_Line_Rec.Invoice_To_Cust_Account_Id: '||P_Qte_Line_Rec.Invoice_To_Cust_Account_Id, 1, 'N');
4036
4037 l_Cust_Account_Id := P_Qte_Line_Rec.Invoice_To_Cust_Account_Id;
4038
4039 ELSIF P_Qte_Header_Rec.Invoice_To_Cust_Account_Id IS NOT NULL AND
4040 P_Qte_Header_Rec.Invoice_To_Cust_Account_Id <> FND_API.G_MISS_NUM THEN
4041 aso_debug_pub.add('Validate_Commitment-P_Qte_Header_Rec.Invoice_To_Cust_Account_Id: '||P_Qte_Header_Rec.Invoice_To_Cust_Account_Id, 1, 'N');
4042
4043 l_Cust_Account_Id := P_Qte_Header_Rec.Invoice_To_Cust_Account_Id;
4044
4045 ELSE
4046 aso_debug_pub.add('Validate_Commitment-P_Qte_Header_Rec.Cust_Account_Id: '||P_Qte_Header_Rec.Cust_Account_Id, 1, 'N');
4047 */
4048 l_Cust_Account_Id := P_Qte_Header_Rec.Cust_Account_Id;
4049
4050 /* END IF; */
4051
4052 l_Agreement_Id := P_Qte_Line_Rec.Agreement_Id;
4053 l_Commitment_Id := P_Qte_Line_Rec.Commitment_Id;
4054 l_Inventory_Item_Id := P_Qte_Line_Rec.Inventory_Item_Id;
4055
4056 IF l_Agreement_Id IS NULL OR l_agreement_id = FND_API.G_MISS_NUM
4057 THEN
4058 OPEN C_Get_Agreement(P_Qte_Header_Rec.Quote_Header_id);
4059 FETCH C_Get_Agreement INTO l_Agreement_Id;
4060 CLOSE C_Get_Agreement;
4061 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4062 aso_debug_pub.add('Validate_Commitment-l_Agreement_Id: '||l_Agreement_Id, 1, 'N');
4063 END IF;
4064 END IF;
4065
4066 OPEN C_Commitment_Cur(l_cust_account_id, l_currency_code, l_org_id,
4067 l_agreement_id, l_commitment_id, l_inventory_item_id);
4068 FETCH C_Commitment_Cur INTO l_Cur_Variable;
4069 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4070 aso_debug_pub.add('Validate_Commitment-l_Cur_Variable: '||l_Cur_Variable, 1, 'N');
4071 END IF;
4072 IF C_Commitment_Cur%NOTFOUND OR l_Cur_Variable <> 'VALID' THEN
4073 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4074 aso_debug_pub.add('Validate_Commitment-Invalid Commitment: ', 1, 'N');
4075 END IF;
4076 x_return_status := FND_API.G_RET_STS_ERROR;
4077 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4078 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_COMMITMENT');
4079 FND_MSG_PUB.ADD;
4080 END IF;
4081 END IF;
4082
4083 CLOSE C_Commitment_Cur;
4084
4085 ELSE -- Operation is 'UPDATE'
4086
4087 OPEN C_Header_Cur(P_Qte_Header_Rec.Quote_Header_Id);
4088 FETCH C_Header_Cur INTO l_Org_Id, l_Currency_Code, l_Cust_Account_Id;
4089 CLOSE C_Header_Cur;
4090
4091 IF P_Qte_Header_Rec.Org_Id IS NOT NULL AND
4092 P_Qte_Header_Rec.Org_Id <> FND_API.G_MISS_NUM THEN
4093 l_Org_Id := P_Qte_Header_Rec.Org_Id;
4094 END IF;
4095
4096 IF P_Qte_Header_Rec.Currency_Code IS NOT NULL AND
4097 P_Qte_Header_Rec.Currency_Code <> FND_API.G_MISS_CHAR THEN
4098 l_Currency_Code := P_Qte_Header_Rec.Currency_Code;
4099 END IF;
4100
4101 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4102 aso_debug_pub.add('Validate_Commitment-l_Org_Id: '||l_Org_Id, 1, 'N');
4103 aso_debug_pub.add('Validate_Commitment-l_Currency_Code: '||l_Currency_Code, 1, 'N');
4104 END IF;
4105 /*
4106 IF P_Qte_Line_Rec.Invoice_To_Cust_Account_Id IS NOT NULL AND
4107 P_Qte_Line_Rec.Invoice_To_Cust_Account_Id <> FND_API.G_MISS_NUM THEN
4108 aso_debug_pub.add('Validate_Commitment-P_Qte_Line_Rec.Invoice_To_Cust_Account_Id: '||P_Qte_Line_Rec.Invoice_To_Cust_Account_Id, 1, 'N');
4109
4110 l_Cust_Account_Id := P_Qte_Line_Rec.Invoice_To_Cust_Account_Id;
4111
4112 ELSIF P_Qte_Header_Rec.Invoice_To_Cust_Account_Id IS NOT NULL AND
4113 P_Qte_Header_Rec.Invoice_To_Cust_Account_Id <> FND_API.G_MISS_NUM THEN
4114 aso_debug_pub.add('Validate_Commitment-P_Qte_Header_Rec.Invoice_To_Cust_Account_Id: '||P_Qte_Header_Rec.Invoice_To_Cust_Account_Id, 1, 'N');
4115
4116 l_Cust_Account_Id := P_Qte_Header_Rec.Invoice_To_Cust_Account_Id;
4117
4118 ELSE
4119 aso_debug_pub.add('Validate_Commitment-P_Qte_Header_Rec.Cust_Account_Id: '||P_Qte_Header_Rec.Cust_Account_Id, 1, 'N');
4120 */
4121 l_Cust_Account_Id := P_Qte_Header_Rec.Cust_Account_Id;
4122
4123 /* END IF; */
4124
4125 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4126 aso_debug_pub.add('Validate_Commitment-P_Qte_Line_Rec.Quote_Line_Id: '||P_Qte_Line_Rec.Quote_Line_Id, 1, 'N');
4127 END IF;
4128
4129 OPEN C_Line_Cur(P_Qte_Line_Rec.Quote_Line_Id);
4130 FETCH C_Line_Cur INTO l_Agreement_Id, l_Commitment_Id, l_Inventory_Item_Id;
4131 CLOSE C_Line_Cur;
4132
4133 IF P_Qte_Line_Rec.Agreement_Id IS NOT NULL AND
4134 P_Qte_Line_Rec.Agreement_Id <> FND_API.G_MISS_NUM THEN
4135 l_Agreement_Id := P_Qte_Line_Rec.Agreement_Id;
4136 END IF;
4137
4138 IF P_Qte_Line_Rec.Commitment_id IS NOT NULL AND
4139 P_Qte_Line_Rec.Commitment_Id <> FND_API.G_MISS_NUM THEN
4140 l_Commitment_Id := P_Qte_Line_Rec.Commitment_Id;
4141 END IF;
4142
4143 IF P_Qte_Line_Rec.Inventory_Item_Id IS NOT NULL AND
4144 P_Qte_Line_Rec.Inventory_Item_Id <> FND_API.G_MISS_NUM THEN
4145 l_Inventory_Item_Id := P_Qte_Line_Rec.Inventory_Item_Id;
4146 END IF;
4147
4148 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4149 aso_debug_pub.add('Validate_Commitment-l_Agreement_Id: '||l_Agreement_Id, 1, 'N');
4150 aso_debug_pub.add('Validate_Commitment-l_Commitment_Id: '||l_Commitment_Id, 1, 'N');
4151 aso_debug_pub.add('Validate_Commitment-l_inventory_item_id: '||l_inventory_item_id, 1, 'N');
4152 END IF;
4153
4154 OPEN C_Commitment_Cur(l_cust_account_id, l_currency_code, l_org_id,
4155 l_agreement_id, l_commitment_id, l_inventory_item_id);
4156 FETCH C_Commitment_Cur INTO l_Cur_Variable;
4157
4158 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4159 aso_debug_pub.add('Validate_Commitment-l_Cur_Variable: '||l_Cur_Variable, 1, 'N');
4160 END IF;
4161 IF C_Commitment_Cur%NOTFOUND OR l_Cur_Variable <> 'VALID' THEN
4162 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4163 aso_debug_pub.add('Validate_Commitment-Invalid Commitment: ', 1, 'N');
4164 END IF;
4165 x_return_status := FND_API.G_RET_STS_ERROR;
4166 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4167 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_COMMITMENT');
4168 FND_MSG_PUB.ADD;
4169 END IF;
4170 END IF;
4171
4172 CLOSE C_Commitment_Cur;
4173
4174 END IF; -- Operation
4175
4176 END IF;
4177
4178 END Validate_Commitment;
4179
4180
4181 PROCEDURE Validate_Agreement(
4182 P_Init_Msg_List IN VARCHAR2,
4183 P_Agreement_Id IN NUMBER,
4184 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
4185 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
4186 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
4187
4188 IS
4189
4190 CURSOR C_Agreement_Cur(l_agreement_id NUMBER) IS
4191 SELECT Start_Date_Active, End_Date_Active
4192 FROM OE_AGREEMENTS_B
4193 WHERE Agreement_Id = l_agreement_id;
4194
4195 l_Start_Date_Active DATE;
4196 l_End_Date_Active DATE;
4197
4198 BEGIN
4199
4200 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4201 aso_debug_pub.add('Entering Validate_Agreement', 1, 'N');
4202 aso_debug_pub.add('Validate_Agreement-P_Agreement_Id: '||P_Agreement_Id, 1, 'N');
4203 END IF;
4204
4205 -- Initialize message list if p_init_msg_list is set to TRUE.
4206 IF FND_API.to_Boolean( p_init_msg_list ) THEN
4207 FND_MSG_PUB.initialize;
4208 END IF;
4209
4210 -- Initialize API return status to success
4211 x_return_status := FND_API.G_RET_STS_SUCCESS;
4212
4213 OPEN C_Agreement_Cur(P_Agreement_Id);
4214 FETCH C_Agreement_Cur INTO l_Start_Date_Active, l_End_Date_Active;
4215
4216 IF C_Agreement_Cur%NOTFOUND THEN
4217 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4218 aso_debug_pub.add('Validate_Agreement-Agreement Not Found', 1, 'N');
4219 END IF;
4220 x_return_status := FND_API.G_RET_STS_ERROR;
4221 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4222 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_AGREEMENT');
4223 FND_MSG_PUB.ADD;
4224 END IF;
4225 END IF;
4226
4227 IF (trunc(sysdate) NOT BETWEEN trunc(l_Start_Date_Active) AND NVL(trunc(l_End_Date_Active),trunc(sysdate))) THEN
4228 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4229 aso_debug_pub.add('Validate_Agreement-Agreement Invalid', 1, 'N');
4230 END IF;
4231 x_return_status := FND_API.G_RET_STS_ERROR;
4232 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4233 FND_MESSAGE.Set_Name('ASO', 'ASO_INACTIVE_AGREEMENT');
4234 FND_MSG_PUB.ADD;
4235 END IF;
4236 END IF;
4237
4238 CLOSE C_Agreement_Cur;
4239
4240 END Validate_Agreement;
4241
4242 -- hyang quote_status
4243 PROCEDURE Validate_Status_Transition(
4244 p_init_msg_list IN VARCHAR2,
4245 p_source_status_id IN NUMBER,
4246 p_dest_status_id IN NUMBER,
4247 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
4248 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
4249 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
4250 IS
4251
4252 CURSOR c_transition(from_status_id NUMBER, to_status_id NUMBER)
4253 IS
4254 SELECT transition_id, enabled_flag
4255 FROM ASO_QUOTE_STATUS_TRANSITIONS
4256 WHERE from_status_id = p_source_status_id
4257 AND to_status_id = p_dest_status_id;
4258
4259 l_transition_id NUMBER;
4260 l_enabled_flag VARCHAR2(1);
4261
4262 BEGIN
4263 -- Initialize message list if p_init_msg_list is set to TRUE.
4264 IF FND_API.to_Boolean( p_init_msg_list ) THEN
4265 FND_MSG_PUB.initialize;
4266 END IF;
4267
4268 -- Initialize API return status to success
4269 x_return_status := FND_API.G_RET_STS_SUCCESS;
4270
4271 Validate_Quote_Status(
4272 p_init_msg_list => p_init_msg_list,
4273 p_quote_status_id => p_source_status_id,
4274 x_return_status => x_return_status,
4275 x_msg_count => x_msg_count,
4276 x_msg_data => x_msg_data);
4277
4278 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4279 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4280 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
4281 FND_MESSAGE.Set_Token('COLUMN', 'SOURCE_STATUS_ID', FALSE);
4282 FND_MESSAGE.Set_Token('VALUE',to_char(p_source_status_id),FALSE);
4283 FND_MSG_PUB.ADD;
4284 END IF;
4285 RETURN;
4286 END IF;
4287
4288 Validate_Quote_Status(
4289 p_init_msg_list => p_init_msg_list,
4290 p_quote_status_id => p_dest_status_id,
4291 x_return_status => x_return_status,
4292 x_msg_count => x_msg_count,
4293 x_msg_data => x_msg_data);
4294
4295 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4296 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4297 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
4298 FND_MESSAGE.Set_Token('COLUMN', 'DEST_STATUS_ID', FALSE);
4299 FND_MESSAGE.Set_Token('VALUE',to_char(p_dest_status_id),FALSE);
4300 FND_MSG_PUB.ADD;
4301 END IF;
4302 RETURN;
4303 END IF;
4304
4305 OPEN c_transition(p_source_status_id, p_dest_status_id);
4306 FETCH c_transition INTO l_transition_id, l_enabled_flag;
4307 IF (c_transition%NOTFOUND) THEN
4308 x_return_status := FND_API.G_RET_STS_ERROR;
4309 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4310 FND_MESSAGE.Set_Name('ASO', 'ASO_NONEXISTENT_STATUS_TRANS');
4311 FND_MSG_PUB.ADD;
4312 END IF;
4313 ELSIF (l_enabled_flag <> 'Y') THEN
4314 x_return_status := FND_API.G_RET_STS_ERROR;
4315 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4316 FND_MESSAGE.Set_Name('ASO', 'ASO_DISABLED_STATUS_TRANS');
4317 FND_MSG_PUB.ADD;
4318 END IF;
4319 END IF;
4320 CLOSE c_transition;
4321
4322 END Validate_Status_Transition;
4323
4324 -- end of hyang quote_status
4325
4326 -- hyang okc
4327 PROCEDURE Validate_Contract_Template(
4328 p_init_msg_list IN VARCHAR2,
4329 p_template_id IN NUMBER,
4330 p_template_major_version IN NUMBER,
4331 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
4332 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
4333 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
4334 IS
4335
4336 l_major_version NUMBER;
4337
4338 CURSOR c_k_template (lc_template_id NUMBER) IS
4339 SELECT major_version
4340 FROM okc_sales_templates_v
4341 WHERE id = lc_template_id;
4342
4343 BEGIN
4344
4345 -- Initialize message list if p_init_msg_list is set to TRUE.
4346 IF FND_API.to_Boolean( p_init_msg_list ) THEN
4347 FND_MSG_PUB.initialize;
4348 END IF;
4349
4350 -- Initialize API return status to success
4351 x_return_status := FND_API.G_RET_STS_SUCCESS;
4352
4353 OPEN c_k_template(p_template_id);
4354 FETCH c_k_template INTO l_major_version;
4355 IF c_k_template%NOTFOUND
4356 THEN
4357 x_return_status := FND_API.G_RET_STS_ERROR;
4358 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4359 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
4360 FND_MESSAGE.Set_Token('COLUMN', 'TEMPLATE_ID', FALSE);
4361 FND_MSG_PUB.ADD;
4362 END IF;
4363 ELSE
4364 IF l_major_version <> p_template_major_version
4365 THEN
4366 x_return_status := FND_API.G_RET_STS_ERROR;
4367 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4368 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
4369 FND_MESSAGE.Set_Token('COLUMN', 'TEMPLATE_MAJOR_VERSION', FALSE);
4370 FND_MESSAGE.Set_Token('VALUE',to_char(p_template_major_version),FALSE);
4371 FND_MSG_PUB.ADD;
4372 END IF;
4373 END IF;
4374 END IF;
4375
4376 CLOSE c_k_template;
4377
4378 END Validate_Contract_Template;
4379
4380 -- end of hyang okc
4381
4382 PROCEDURE Validate_Promotion (
4383 P_Api_Version_Number IN NUMBER,
4384 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
4385 P_Commit IN VARCHAR2 := FND_API.G_FALSE,
4386 p_price_attr_tbl IN ASO_QUOTE_PUB.Price_Attributes_Tbl_Type,
4387 x_price_attr_tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Attributes_Tbl_Type,
4388 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
4389 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
4390 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
4391 IS
4392 l_api_name CONSTANT VARCHAR2(30) := 'Validate_Promotion';
4393 l_api_version_number CONSTANT NUMBER := 1.0;
4394 l_price_attr_tbl ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
4395 m_price_attr_tbl ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
4396 l_search_price_attr1_tbl ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
4397 l_search_price_attr2_tbl ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
4398 l_search_priceline_attr1_tbl ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
4399 l_search_priceline_attr2_tbl ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
4400 i BINARY_INTEGER;
4401 j BINARY_INTEGER;
4402 temp_count NUMBER;
4403 G_USER_ID NUMBER := FND_GLOBAL.USER_ID;
4404 G_LOGIN_ID NUMBER := FND_GLOBAL.CONC_LOGIN_ID;
4405 l_count NUMBER := 0;
4406 l_dup_count NUMBER := 0;
4407 l_dup_ln_count NUMBER := 0;
4408 l_list_header_id NUMBER;
4409 l_list_line_id NUMBER;
4410 l_price_attribute_id NUMBER;
4411 adj_rec_exists VARCHAR2(1):= 'N';
4412
4413 Cursor C_get_list_lines(p_list_header_id NUMBER) IS
4414 SELECT list_line_id
4415 FROM qp_list_lines
4416 WHERE list_header_id = p_list_header_id;
4417
4418 Cursor C_get_list_header(p_list_line_id NUMBER) IS
4419 SELECT list_header_id
4420 FROM qp_list_lines
4421 WHERE list_line_id = p_list_line_id;
4422
4423 Cursor C_get_attr(p_quote_header_id NUMBER,
4424 p_quote_line_id NUMBER,
4425 p_pricing_attribute1 VARCHAR2,
4426 p_pricing_attribute2 VARCHAR2 ) IS
4427 SELECT price_attribute_id
4428 FROM aso_price_attributes
4429 WHERE quote_header_id = p_quote_header_id
4430 AND nvl(quote_line_id,0) = nvl(decode(p_quote_line_id,FND_API.G_MISS_NUM,null,p_quote_line_id),0)
4431 AND nvl(pricing_attribute1,'X') = nvl(p_pricing_attribute1,'X')
4432 AND nvl(pricing_attribute2,'Y') = nvl(p_pricing_attribute2,'Y');
4433
4434 Cursor C_get_attr1(p_quote_header_id NUMBER,
4435 p_quote_line_id NUMBER,
4436 p_list_line_id NUMBER) IS
4437 SELECT price_attribute_id
4438 FROM aso_price_attributes
4439 WHERE quote_header_id = p_quote_header_id
4440 AND nvl(quote_line_id,0) = nvl(decode(p_quote_line_id,FND_API.G_MISS_NUM,null,p_quote_line_id),0)
4441 AND pricing_attribute1 IN ( SELECT to_char(qpe.list_header_id)
4442 FROM qp_list_lines qpe
4443 WHERE qpe.list_line_id = p_list_line_id);
4444
4445 Cursor C_get_attr2(p_quote_header_id NUMBER,
4446 p_quote_line_id NUMBER,
4447 p_list_header_id NUMBER,
4448 p_pricing_attribute2 VARCHAR2) IS
4449 SELECT price_attribute_id
4450 FROM aso_price_attributes
4451 WHERE quote_header_id = p_quote_header_id
4452 AND nvl(quote_line_id,0) = nvl(decode(p_quote_line_id,FND_API.G_MISS_NUM,null,p_quote_line_id),0)
4453 AND (
4454 ( nvl(pricing_attribute2,'X') = nvl(p_pricing_attribute2,'X') AND
4455 p_pricing_attribute2 IS NOT NULL
4456 )
4457 OR ( p_pricing_attribute2 IS NULL
4458 AND pricing_attribute2 IN ( SELECT to_char(qpe.list_line_id)
4459 FROM qp_list_lines qpe
4460 WHERE qpe.list_header_id = p_list_header_id)
4461 )
4462 );
4463
4464 /*
4465 OR (quote_header_id = p_quote_header_id
4466 AND nvl(quote_line_id,0) = nvl(p_quote_line_id,0)
4467 AND nvl(pricing_attribute1,'X') = nvl(to_char(p_list_header_id),'X')
4468 )
4469 OR (quote_header_id = p_quote_header_id
4470 AND nvl(quote_line_id,0) = nvl(p_quote_line_id,0)
4471 AND nvl(pricing_attribute2,'Y') = nvl(to_char(p_list_line_id),'Y')
4472 )
4473 OR (NVL(qp.list_line_id,'0') = nvl(to_char(p_list_line_id),'0')
4474 AND quote_header_id = p_quote_header_id
4475 AND nvl(quote_line_id,0) = nvl(p_quote_line_id,0)
4476 AND pricing_attribute1 IS NULL
4477 AND nvl(pricing_attribute2,'Y') IN ( SELECT qpe.list_line_id
4478 FROM qp_list_lines qpe
4479 WHERE qpe.list_header_id = qp.list_header_id)
4480 )
4481 */
4482
4483 BEGIN
4484
4485 -- Standard Start of API savepoint
4486 SAVEPOINT VALIDATE_PROMOTION_PVT;
4487
4488 -- Standard call to check for call compatibility.
4489 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
4490 p_api_version_number,
4491 l_api_name,
4492 G_PKG_NAME)
4493 THEN
4494 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4495 END IF;
4496
4497 aso_debug_pub.g_debug_flag := nvl(fnd_profile.value('ASO_ENABLE_DEBUG'),'N');
4498
4499 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4500 aso_debug_pub.add('Start of Validate_Promotion .....',1,'Y');
4501 END IF;
4502
4503 -- Initialize message list if p_init_msg_list is set to TRUE.
4504 IF FND_API.to_Boolean( p_init_msg_list )
4505 THEN
4506 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4507 aso_debug_pub.add('Begin FND_API.to_Boolean'||p_init_msg_list, 1, 'Y');
4508 END IF;
4509 FND_MSG_PUB.initialize;
4510 END IF;
4511
4512 x_return_status := FND_API.G_RET_STS_SUCCESS;
4513
4514 l_price_attr_tbl := p_price_attr_tbl;
4515 m_price_attr_tbl := p_price_attr_tbl;
4516
4517
4518 l_count := 0;
4519 adj_rec_exists := 'N';
4520 For i IN 1..m_price_attr_tbl.count LOOP
4521 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4522 aso_debug_pub.add('********Loop No:'||i,1,'N');
4523 aso_debug_pub.add('m_price_attr_tbl(i).operation_code:'||m_price_attr_tbl(i).operation_code,1,'N');
4524 END IF;
4525 If m_price_attr_tbl(i).operation_code = 'CREATE' Then
4526
4527 If m_price_attr_tbl(i).pricing_attribute1 IS NOT NULL
4528 AND m_price_attr_tbl(i).pricing_attribute1 <> FND_API.G_MISS_CHAR THEN
4529 m_price_attr_tbl(i).pricing_attribute2 := null;
4530 l_list_header_id := to_number(m_price_attr_tbl(i).pricing_attribute1);
4531 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4532 aso_debug_pub.add('If m_price_attr_tbl(i).pricing_attribute1 IS NOT NULL l_list_header_id:'
4533 ||l_list_header_id,1,'N');
4534 END IF;
4535
4536 If l_search_price_attr1_tbl.exists(l_list_header_id) Then
4537 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4538 aso_debug_pub.add('p_price_attr1_tbl(i).pricing_attribute1 already searched:'
4539 ||l_list_header_id,1,'N');
4540 END IF;
4541 l_dup_count := l_dup_count + 1;
4542 else
4543 l_search_price_attr1_tbl(l_list_header_id).qte_line_index := l_list_header_id;
4544
4545 For j IN 1..l_price_attr_tbl.count LOOP
4546 If m_price_attr_tbl(i).pricing_attribute1 = l_price_attr_tbl(j).pricing_attribute1
4547 AND l_price_attr_tbl(j).operation_code = 'CREATE' THEN
4548 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4549 aso_debug_pub.add('Comparing with CREATE incrementing l_count',1,'N');
4550 END IF;
4551 l_count := l_count + 1;
4552 END If;
4553
4554 If m_price_attr_tbl(i).pricing_attribute1 = l_price_attr_tbl(j).pricing_attribute1
4555 AND l_price_attr_tbl(j).operation_code = 'DELETE' THEN
4556 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4557 aso_debug_pub.add('Comparing with DELETE decrementing l_count',1,'N');
4558 END IF;
4559 l_count := l_count - 1;
4560 END If;
4561
4562 End LOOP;--j IN 1..l_price_attr_tbl.count
4563 End If;--l_search_price_attr1_tbl.exists(l_list_header_id)
4564
4565 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4566 aso_debug_pub.add('After Comparing within PL/SQL table l_count:'||l_count,1,'N');
4567 END IF;
4568
4569 For C_get_list_lines_rec in C_get_list_lines(l_list_header_id) LOOP
4570 l_list_line_id := C_get_list_lines_rec.list_line_id;
4571 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4572 aso_debug_pub.add('Inside C_get_list_lines list line id to compare:'||l_list_line_id,1,'N');
4573 END IF;
4574
4575 If l_search_price_attr2_tbl.exists(l_list_line_id) Then
4576 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4577 aso_debug_pub.add('p_price_attr2_tbl(i).pricing_attribute2 already searched:'
4578 ||l_list_line_id,1,'N');
4579 END IF;
4580 l_dup_ln_count := l_dup_ln_count + 1;
4581 else
4582 l_search_price_attr2_tbl(l_list_line_id).qte_line_index := l_list_line_id;
4583 For j IN 1..l_price_attr_tbl.count LOOP
4584 if ( l_price_attr_tbl(j).pricing_attribute2 = FND_API.G_MISS_CHAR ) then
4585 l_price_attr_tbl(j).pricing_attribute2 := null;
4586 end if;
4587 If l_list_line_id = to_number(nvl(l_price_attr_tbl(j).pricing_attribute2,'0'))
4588 AND l_price_attr_tbl(j).operation_code = 'CREATE' THEN
4589 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4590 aso_debug_pub.add('Comparing with CREATE incrementing l_count',1,'N');
4591 END IF;
4592 l_count := l_count + 1;
4593 END If;
4594
4595 If l_list_line_id = to_number(nvl(l_price_attr_tbl(j).pricing_attribute2,'0'))
4596 AND l_price_attr_tbl(j).operation_code = 'DELETE' THEN
4597 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4598 aso_debug_pub.add('Comparing with DELETE decrementing l_count',1,'N');
4599 END IF;
4600 l_count := l_count - 1;
4601 END If;
4602
4603 End LOOP;--j IN 1..l_price_attr_tbl.count
4604 End If;--l_search_price_attr2_tbl.exists( l_list_header_id )
4605
4606 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4607 aso_debug_pub.add('After comparing the modifier hdr and ln l_count:'||l_count,1,'N');
4608 END IF;
4609
4610 End Loop;-- C_get_list_lines_rec in C_get_list_lines( l_list_header_id )
4611
4612 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4613 aso_debug_pub.add('B4 C_get_attr: m_price_attr_tbl(i).quote_header_id:'
4614 ||m_price_attr_tbl(i).quote_header_id,1,'N');
4615 aso_debug_pub.add('B4 C_get_attr: m_price_attr_tbl(i).quote_line_id:'
4616 ||m_price_attr_tbl(i).quote_line_id,1,'N');
4617 aso_debug_pub.add('B4 C_get_attr: m_price_attr_tbl(i).pricing_attribute1:'
4618 ||m_price_attr_tbl(i).pricing_attribute1,1,'N');
4619 aso_debug_pub.add('B4 C_get_attr: m_price_attr_tbl(i).pricing_attribute2:'
4620 ||nvl(m_price_attr_tbl(i).pricing_attribute2,'null'),1,'N');
4621 aso_debug_pub.add('B4 C_get_attr: l_list_header_id:'
4622 ||l_list_header_id,1,'N');
4623 aso_debug_pub.add('B4 C_get_attr: l_list_line_id:'
4624 ||l_list_line_id,1,'N');
4625 END IF;
4626
4627 OPEN C_get_attr(m_price_attr_tbl(i).quote_header_id,
4628 m_price_attr_tbl(i).quote_line_id,
4629 m_price_attr_tbl(i).pricing_attribute1,
4630 m_price_attr_tbl(i).pricing_attribute2);
4631 FETCH C_get_attr INTO l_price_attribute_id;
4632 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4633 aso_debug_pub.add('Inside C_get_attr - record existing in db - Price_attribute_Id: '
4634 ||l_price_attribute_id,1,'N');
4635 aso_debug_pub.add('Inside C_get_attr - Total # of rows : '
4636 ||C_get_attr%ROWCOUNT,1,'N');
4637 END IF;
4638 IF (C_get_attr%FOUND OR C_get_attr%ROWCOUNT > 0) THEN
4639 adj_rec_exists := 'Y';
4640 END IF;
4641 CLOSE C_get_attr;
4642 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4643 aso_debug_pub.add('Inside C_get_attr - adj_rec_exists : '
4644 ||adj_rec_exists,1,'N');
4645 END IF;
4646
4647 OPEN C_get_attr1(m_price_attr_tbl(i).quote_header_id,
4648 m_price_attr_tbl(i).quote_line_id,
4649 l_list_line_id);
4650 FETCH C_get_attr1 INTO l_price_attribute_id;
4651 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4652 aso_debug_pub.add('Inside C_get_attr1 - record existing in db - Price_attribute_Id: '
4653 ||l_price_attribute_id,1,'N');
4654 aso_debug_pub.add('Inside C_get_attr1 - Total # of rows : '
4655 ||C_get_attr1%ROWCOUNT,1,'N');
4656 END IF;
4657 IF (C_get_attr1%FOUND OR C_get_attr1%ROWCOUNT > 0) THEN
4658 adj_rec_exists := 'Y';
4659 END IF;
4660 CLOSE C_get_attr1;
4661 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4662 aso_debug_pub.add('Inside C_get_attr1 - adj_rec_exists : '
4663 ||adj_rec_exists,1,'N');
4664 END IF;
4665
4666
4667 OPEN C_get_attr2(m_price_attr_tbl(i).quote_header_id,
4668 m_price_attr_tbl(i).quote_line_id,
4669 l_list_header_id,
4670 m_price_attr_tbl(i).pricing_attribute2);
4671 FETCH C_get_attr2 INTO l_price_attribute_id;
4672 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4673 aso_debug_pub.add('Inside C_get_attr2 - record existing in db - Price_attribute_Id: '
4674 ||l_price_attribute_id,1,'N');
4675 aso_debug_pub.add('Inside C_get_attr2 - Total # of rows : '
4676 ||C_get_attr2%ROWCOUNT,1,'N');
4677 END IF;
4678 IF (C_get_attr2%FOUND OR C_get_attr2%ROWCOUNT > 0) THEN
4679 adj_rec_exists := 'Y';
4680 END IF;
4681 CLOSE C_get_attr2;
4682 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4683 aso_debug_pub.add('Inside C_get_attr2 - adj_rec_exists : '
4684 ||adj_rec_exists,1,'N');
4685 aso_debug_pub.add('Before the error stack - for PRICING_ATTRIBUTE1 NOT NULL',1,'N');
4686 aso_debug_pub.add('l_count:'||l_count||' adj_rec_exists:'||adj_rec_exists,1,'N');
4687 aso_debug_pub.add('l_dup_count:'||l_dup_count,1,'N');
4688 END IF;
4689
4690
4691 If (l_count > 1 AND l_dup_count >= 1) OR (l_count >= 1 AND adj_rec_exists = 'Y') Then
4692 /*Duplicate*/
4693 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4694 aso_debug_pub.add('Duplicate record for list_header_id: '
4695 ||m_price_attr_tbl(i).pricing_attribute1,1,'N');
4696 END IF;
4697 x_return_status := FND_API.G_RET_STS_ERROR;
4698 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4699 FND_MESSAGE.Set_Name('ASO', 'ASO_VAL_PROMO_DUPLICATE_HDR');
4700 FND_MESSAGE.Set_Token('MODHDRID', m_price_attr_tbl(i).pricing_attribute1, FALSE);
4701 FND_MSG_PUB.Add;
4702 END IF;
4703 --RAISE FND_API.G_EXC_ERROR;
4704 End If;
4705 End If;-- m_price_attr_tbl(i).pricing_attribute1 IS NOT NULL
4706
4707 If m_price_attr_tbl(i).pricing_attribute2 IS NOT NULL
4708 AND m_price_attr_tbl(i).pricing_attribute2 <> FND_API.G_MISS_CHAR THEN
4709
4710 m_price_attr_tbl(i).pricing_attribute1 := null;
4711
4712 l_list_line_id := to_number(m_price_attr_tbl(i).pricing_attribute2);
4713 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4714 aso_debug_pub.add('If m_price_attr_tbl(i).pricing_attribute2 IS NOT NULL l_list_line_id:'
4715 ||l_list_line_id,1,'N');
4716 END IF;
4717
4718 If l_search_price_attr2_tbl.exists(l_list_line_id) Then
4719 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4720 aso_debug_pub.add('p_price_attr1_tbl(i).pricing_attribute2 already searched:'
4721 ||l_list_line_id,1,'N');
4722 END IF;
4723 l_dup_ln_count := l_dup_ln_count + 1;
4724 else
4725 l_search_price_attr2_tbl(l_list_line_id).qte_line_index := l_list_line_id;
4726
4727 For j IN 1..l_price_attr_tbl.count LOOP
4728 If m_price_attr_tbl(i).pricing_attribute2 = l_price_attr_tbl(j).pricing_attribute2
4729 AND l_price_attr_tbl(j).operation_code = 'CREATE' THEN
4730 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4731 aso_debug_pub.add('Comparing with CREATE incrementing l_count',1,'N');
4732 END IF;
4733 l_count := l_count + 1;
4734 END If;
4735
4736 If m_price_attr_tbl(i).pricing_attribute2 = l_price_attr_tbl(j).pricing_attribute2
4737 AND l_price_attr_tbl(j).operation_code = 'DELETE' THEN
4738 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4739 aso_debug_pub.add('Comparing with DELETE decrementing l_count',1,'N');
4740 END IF;
4741 l_count := l_count - 1;
4742 END If;
4743
4744 End LOOP;--j IN 1..l_price_attr_tbl.count
4745 End If;--l_search_price_attr2_tbl.exists(l_list_line_id)
4746 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4747 aso_debug_pub.add('After Comparing within PL/SQL table l_count:'||l_count,1,'N');
4748 END IF;
4749
4750 For C_get_list_header_rec in C_get_list_header(l_list_line_id) LOOP
4751
4752 l_list_header_id := C_get_list_header_rec.list_header_id;
4753 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4754 aso_debug_pub.add('Inside C_get_list_header list header id to compare:'||l_list_header_id,1,'N');
4755 END IF;
4756
4757 If l_search_price_attr1_tbl.exists(l_list_header_id) Then
4758 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4759 aso_debug_pub.add('p_price_attr1_tbl(i).pricing_attribute2 already searched:'
4760 ||l_list_header_id,1,'N');
4761 END IF;
4762 l_dup_count := l_dup_count + 1;
4763 else
4764 l_search_price_attr1_tbl(l_list_header_id).qte_line_index := l_list_header_id;
4765
4766 For j IN 1..l_price_attr_tbl.count LOOP
4767 if ( l_price_attr_tbl(j).pricing_attribute1 = FND_API.G_MISS_CHAR ) then
4768 l_price_attr_tbl(j).pricing_attribute1 := null;
4769 end if;
4770 If l_list_header_id = to_number(nvl(l_price_attr_tbl(j).pricing_attribute1,'0'))
4771 AND l_price_attr_tbl(j).operation_code = 'CREATE' THEN
4772 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4773 aso_debug_pub.add('Comparing with CREATE incrementing l_count',1,'N');
4774 END IF;
4775 l_count := l_count + 1;
4776 END If;
4777
4778 If l_list_header_id = to_number(nvl(l_price_attr_tbl(j).pricing_attribute1,'0'))
4779 AND l_price_attr_tbl(j).operation_code = 'DELETE' THEN
4780 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4781 aso_debug_pub.add('Comparing with DELETE decrementing l_count',1,'N');
4782 END IF;
4783 l_count := l_count - 1;
4784 END If;
4785
4786 End LOOP;--j IN 1..l_price_attr_tbl.count
4787 End If;--l_search_price_attr1_tbl.exists( l_list_header_id )
4788
4789 End Loop;-- C_get_list_header_rec in C_get_list_header( l_list_line_id )
4790 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4791 aso_debug_pub.add('After comparing the modifier hdr and ln l_count:'||l_count,1,'N');
4792 aso_debug_pub.add('B4 C_get_attr: m_price_attr_tbl(i).quote_header_id:'
4793 ||m_price_attr_tbl(i).quote_header_id,1,'N');
4794 aso_debug_pub.add('B4 C_get_attr: m_price_attr_tbl(i).quote_line_id:'
4795 ||m_price_attr_tbl(i).quote_line_id,1,'N');
4796 aso_debug_pub.add('B4 C_get_attr: m_price_attr_tbl(i).pricing_attribute1:'
4797 ||m_price_attr_tbl(i).pricing_attribute1,1,'N');
4798 aso_debug_pub.add('B4 C_get_attr: m_price_attr_tbl(i).pricing_attribute2:'
4799 ||nvl(m_price_attr_tbl(i).pricing_attribute2,'null'),1,'N');
4800 aso_debug_pub.add('B4 C_get_attr: l_list_header_id:'
4801 ||l_list_header_id,1,'N');
4802 aso_debug_pub.add('B4 C_get_attr: l_list_line_id:'
4803 ||l_list_line_id,1,'N');
4804 END IF;
4805
4806 OPEN C_get_attr(m_price_attr_tbl(i).quote_header_id,
4807 m_price_attr_tbl(i).quote_line_id,
4808 m_price_attr_tbl(i).pricing_attribute1,
4809 m_price_attr_tbl(i).pricing_attribute2);
4810 FETCH C_get_attr INTO l_price_attribute_id;
4811 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4812 aso_debug_pub.add('Inside C_get_attr - record existing in db - Price_attribute_Id: '
4813 ||l_price_attribute_id,1,'N');
4814 aso_debug_pub.add('Inside C_get_attr - Total # of rows : '
4815 ||C_get_attr%ROWCOUNT,1,'N');
4816 END IF;
4817 IF (C_get_attr%FOUND OR C_get_attr%ROWCOUNT > 0) THEN
4818 adj_rec_exists := 'Y';
4819 END IF;
4820 CLOSE C_get_attr;
4821 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4822 aso_debug_pub.add('Inside C_get_attr - adj_rec_exists : '
4823 ||adj_rec_exists,1,'N');
4824 END IF;
4825
4826 OPEN C_get_attr1(m_price_attr_tbl(i).quote_header_id,
4827 m_price_attr_tbl(i).quote_line_id,
4828 l_list_line_id);
4829 FETCH C_get_attr1 INTO l_price_attribute_id;
4830 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4831 aso_debug_pub.add('Inside C_get_attr1 - record existing in db - Price_attribute_Id: '
4832 ||l_price_attribute_id,1,'N');
4833 aso_debug_pub.add('Inside C_get_attr1 - Total # of rows : '
4834 ||C_get_attr1%ROWCOUNT,1,'N');
4835 END IF;
4836 IF (C_get_attr1%FOUND OR C_get_attr1%ROWCOUNT > 0) THEN
4837 adj_rec_exists := 'Y';
4838 END IF;
4839 CLOSE C_get_attr1;
4840 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4841 aso_debug_pub.add('Inside C_get_attr1 - adj_rec_exists : '
4842 ||adj_rec_exists,1,'N');
4843 END IF;
4844
4845
4846 OPEN C_get_attr2(m_price_attr_tbl(i).quote_header_id,
4847 m_price_attr_tbl(i).quote_line_id,
4848 l_list_header_id,
4849 m_price_attr_tbl(i).pricing_attribute2);
4850 FETCH C_get_attr2 INTO l_price_attribute_id;
4851 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4852 aso_debug_pub.add('Inside C_get_attr2 - record existing in db - Price_attribute_Id: '
4853 ||l_price_attribute_id,1,'N');
4854 aso_debug_pub.add('Inside C_get_attr2 - Total # of rows : '
4855 ||C_get_attr2%ROWCOUNT,1,'N');
4856 END IF;
4857 IF (C_get_attr2%FOUND OR C_get_attr2%ROWCOUNT > 0) THEN
4858 adj_rec_exists := 'Y';
4859 END IF;
4860 CLOSE C_get_attr2;
4861 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4862 aso_debug_pub.add('Inside C_get_attr2 - adj_rec_exists : '
4863 ||adj_rec_exists,1,'N');
4864 aso_debug_pub.add('Before the error stack - for PRICING_ATTRIBUTE2 NOT NULL',1,'N');
4865 aso_debug_pub.add('l_count:'||l_count||' adj_rec_exists:'||adj_rec_exists,1,'N');
4866 aso_debug_pub.add('l_dup_ln_count:'||l_dup_ln_count,1,'N');
4867 END IF;
4868
4869
4870 If ( l_count > 1 AND l_dup_ln_count >= 1) OR (l_count >= 1 AND adj_rec_exists = 'Y') Then
4871 /*Duplicate*/
4872 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4873 aso_debug_pub.add('Duplicate record for list_line_id: '
4874 ||m_price_attr_tbl(i).pricing_attribute2,1,'N');
4875 END IF;
4876 x_return_status := FND_API.G_RET_STS_ERROR;
4877 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4878 FND_MESSAGE.Set_Name('ASO', 'ASO_VAL_PROMO_DUPLICATE_LN');
4879 FND_MESSAGE.Set_Token('MODLNID', m_price_attr_tbl(i).pricing_attribute2, FALSE);
4880 FND_MSG_PUB.Add;
4881 END IF;
4882 --RAISE FND_API.G_EXC_ERROR;
4883 End If;
4884
4885
4886 End If;-- m_price_attr_tbl(i).pricing_attribute2 IS NOT NULL
4887
4888 End If;-- m_price_attr_tbl(i).operation_code = 'CREATE'
4889
4890 END LOOP;
4891
4892 -- Standard check for p_commit
4893 IF FND_API.to_Boolean( p_commit ) THEN
4894 COMMIT WORK;
4895 END IF;
4896
4897 FND_MSG_PUB.Count_And_Get
4898 ( p_encoded => 'F',
4899 p_count => x_msg_count,
4900 p_data => x_msg_data
4901 );
4902
4903 for l in 1 .. x_msg_count loop
4904 x_msg_data := fnd_msg_pub.get( p_msg_index => l, p_encoded => 'F');
4905 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4906 aso_debug_pub.add('Messge count and get '||x_msg_data, 1, 'Y');
4907 aso_debug_pub.add('Messge count and get '||x_msg_count, 1, 'Y');
4908 END IF;
4909 end loop;
4910 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4911 aso_debug_pub.add('End Validate_Promotion',1,'N');
4912 END IF;
4913
4914 EXCEPTION
4915 WHEN FND_API.G_EXC_ERROR THEN
4916 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4917 aso_debug_pub.add('after inside EXCEPTION return status'||x_return_status, 1, 'Y');
4918 END IF;
4919 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
4920 P_API_NAME => L_API_NAME
4921 ,P_PKG_NAME => G_PKG_NAME
4922 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
4923 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
4924 ,P_SQLCODE => SQLCODE
4925 ,P_SQLERRM => SQLERRM
4926 ,X_MSG_COUNT => X_MSG_COUNT
4927 ,X_MSG_DATA => X_MSG_DATA
4928 ,X_RETURN_STATUS => X_RETURN_STATUS);
4929
4930 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4931 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
4932 P_API_NAME => L_API_NAME
4933 ,P_PKG_NAME => G_PKG_NAME
4934 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
4935 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
4936 ,P_SQLCODE => SQLCODE
4937 ,P_SQLERRM => SQLERRM
4938 ,X_MSG_COUNT => X_MSG_COUNT
4939 ,X_MSG_DATA => X_MSG_DATA
4940 ,X_RETURN_STATUS => X_RETURN_STATUS);
4941
4942 WHEN OTHERS THEN
4943 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
4944 P_API_NAME => L_API_NAME
4945 ,P_PKG_NAME => G_PKG_NAME
4946 ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
4947 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
4948 ,P_SQLCODE => SQLCODE
4949 ,P_SQLERRM => SQLERRM
4950 ,X_MSG_COUNT => X_MSG_COUNT
4951 ,X_MSG_DATA => X_MSG_DATA
4952 ,X_RETURN_STATUS => X_RETURN_STATUS);
4953
4954 END Validate_Promotion;
4955
4956
4957 FUNCTION Validate_PaymentTerms(
4958 p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
4959 p_payment_term_id IN NUMBER)
4960 RETURN VARCHAR2
4961 IS
4962 CURSOR C_Payment_Terms IS
4963 SELECT start_date_active, end_date_active FROM RA_TERMS_VL
4964 WHERE term_id = p_payment_term_id;
4965
4966 l_start_date DATE;
4967 l_end_date DATE;
4968 x_return_status VARCHAR2(1);
4969
4970 BEGIN
4971 -- Initialize message list if p_init_msg_list is set to TRUE.
4972 IF FND_API.to_Boolean( p_init_msg_list ) THEN
4973 FND_MSG_PUB.initialize;
4974 END IF;
4975
4976 -- Inititalizing Global Debug Flag Variable.
4977
4978 aso_debug_pub.g_debug_flag := nvl(fnd_profile.value('ASO_ENABLE_DEBUG'),'N');
4979
4980 -- Initialize API return status to success
4981 x_return_status := FND_API.G_RET_STS_SUCCESS;
4982
4983 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
4984 aso_debug_pub.add('Validate_PaymentTerms: p_payment_term_id: '||p_payment_term_id, 1, 'N');
4985 END IF;
4986
4987 IF (p_payment_term_id IS NOT NULL AND p_payment_term_id <> FND_API.G_MISS_NUM) THEN
4988 OPEN C_Payment_Terms;
4989 FETCH C_Payment_Terms INTO l_start_date, l_end_date;
4990 IF (C_Payment_Terms%NOTFOUND OR
4991 (TRUNC(sysdate) NOT BETWEEN NVL(TRUNC(l_start_date), TRUNC(sysdate)) AND
4992 NVL(TRUNC(l_end_date), TRUNC(sysdate)))) THEN
4993 CLOSE C_Payment_Terms;
4994 x_return_status := FND_API.G_RET_STS_ERROR;
4995 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4996 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
4997 FND_MESSAGE.Set_Token('COLUMN', 'PAYMENT_TERM', FALSE);
4998 FND_MESSAGE.Set_Token('VALUE',to_char(p_payment_term_id),FALSE);
4999 FND_MSG_PUB.ADD;
5000 END IF;
5001 ELSE
5002 CLOSE C_Payment_Terms;
5003 END IF;
5004 END IF;
5005
5006 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
5007 aso_debug_pub.add('Validate_PaymentTerms: x_return_status: '||x_return_status, 1, 'N');
5008 END IF;
5009 RETURN x_return_status;
5010 END Validate_PaymentTerms;
5011
5012
5013 FUNCTION Validate_FreightTerms(
5014 p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
5015 p_freight_terms_code IN VARCHAR2)
5016 RETURN VARCHAR2
5017 IS
5018 CURSOR C_Freight_Terms IS
5019 SELECT start_date_active, end_date_active FROM OE_LOOKUPS
5020 WHERE lookup_type = 'FREIGHT_TERMS'
5021 AND enabled_flag = 'Y'
5022 AND lookup_code = p_freight_terms_code;
5023
5024 l_start_date DATE;
5025 l_end_date DATE;
5026 x_return_status VARCHAR2(1);
5027
5028 BEGIN
5029 -- Initialize message list if p_init_msg_list is set to TRUE.
5030 IF FND_API.to_Boolean( p_init_msg_list ) THEN
5031 FND_MSG_PUB.initialize;
5032 END IF;
5033
5034 -- Inititalizing Global Debug Flag Variable.
5035
5036 aso_debug_pub.g_debug_flag := nvl(fnd_profile.value('ASO_ENABLE_DEBUG'),'N');
5037
5038 -- Initialize API return status to success
5039 x_return_status := FND_API.G_RET_STS_SUCCESS;
5040
5041 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
5042 aso_debug_pub.add('Validate_FreightTerms: p_freight_terms_code: '||p_freight_terms_code, 1, 'N');
5043 END IF;
5044
5045 IF (p_freight_terms_code IS NOT NULL AND p_freight_terms_code <> FND_API.G_MISS_NUM) THEN
5046 OPEN C_Freight_Terms;
5047 FETCH C_Freight_Terms INTO l_start_date, l_end_date;
5048 IF (C_Freight_Terms%NOTFOUND OR
5049 (TRUNC(sysdate) NOT BETWEEN NVL(TRUNC(l_start_date), TRUNC(sysdate)) AND
5050 NVL(TRUNC(l_end_date), TRUNC(sysdate)))) THEN
5051 CLOSE C_Freight_Terms;
5052 x_return_status := FND_API.G_RET_STS_ERROR;
5053 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5054 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
5055 FND_MESSAGE.Set_Token('COLUMN', 'FREIGHT_TERM', FALSE);
5056 FND_MESSAGE.Set_Token('VALUE',p_freight_terms_code,FALSE);
5057 FND_MSG_PUB.ADD;
5058 END IF;
5059 ELSE
5060 CLOSE C_Freight_Terms;
5061 END IF;
5062 END IF;
5063
5064 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
5065 aso_debug_pub.add('Validate_FreightTerms: x_return_status: '||x_return_status, 1, 'N');
5066 END IF;
5067 RETURN x_return_status;
5068 END Validate_FreightTerms;
5069
5070
5071 FUNCTION Validate_ShipMethods(
5072 p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
5073 p_ship_method_code IN VARCHAR2,
5074 p_ship_from_org_id IN NUMBER := FND_API.G_MISS_NUM,
5075 p_qte_header_id IN NUMBER,
5076 p_qte_line_id IN NUMBER := FND_API.G_MISS_NUM)
5077 RETURN VARCHAR2
5078 IS
5079 CURSOR C_ship_method_code (p_org_id NUMBER) IS
5080 SELECT start_date_active, end_date_active
5081 FROM wsh_carrier_ship_methods csm,
5082 fnd_lookup_values fl
5083 WHERE csm.ship_method_code = p_ship_method_code
5084 AND csm.organization_id = p_org_id
5085 AND csm.enabled_flag = 'Y'
5086 AND fl.lookup_type = 'SHIP_METHOD'
5087 AND fl.lookup_code = csm.ship_method_code
5088 AND fl.view_application_id = 3
5089 AND fl.LANGUAGE = userenv('LANG')
5090 AND fl.enabled_flag = 'Y';
5091
5092 CURSOR C_qte_header_org_info IS
5093 SELECT aso.org_id
5094 FROM ASO_QUOTE_HEADERS_ALL aso
5095 WHERE aso.quote_header_id = p_qte_header_id;
5096
5097 CURSOR C_qte_line_organization IS
5098 SELECT aso.organization_id
5099 FROM ASO_QUOTE_LINES_ALL aso
5100 WHERE aso.quote_line_id = p_qte_line_id;
5101
5102 CURSOR C_qte_line_org_id_info IS
5103 SELECT aso.org_id
5104 FROM ASO_QUOTE_LINES_ALL aso
5105 WHERE aso.quote_line_id = p_qte_line_id;
5106
5107 l_start_date DATE;
5108 l_end_date DATE;
5109 l_org_id NUMBER := FND_API.G_MISS_NUM;
5110 l_hdr_org_id NUMBER;
5111 l_line_organization_id NUMBER;
5112 l_line_org_id NUMBER;
5113 x_return_status VARCHAR2(1);
5114
5115 BEGIN
5116
5117 -- Initialize message list if p_init_msg_list is set to TRUE.
5118 IF FND_API.to_Boolean( p_init_msg_list ) THEN
5119 FND_MSG_PUB.initialize;
5120 END IF;
5121
5122 -- Inititalizing Global Debug Flag Variable.
5123
5124 aso_debug_pub.g_debug_flag := nvl(fnd_profile.value('ASO_ENABLE_DEBUG'),'N');
5125
5126 -- Initialize API return status to success
5127 x_return_status := FND_API.G_RET_STS_SUCCESS;
5128
5129 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
5130 aso_debug_pub.add('Validate_ShipMethods: p_ship_method_code :'||p_ship_method_code, 1, 'N');
5131 aso_debug_pub.add('Validate_ShipMethods: p_ship_from_org_id :'||p_ship_from_org_id, 1, 'N');
5132 aso_debug_pub.add('Validate_ShipMethods: p_qte_header_id:'||p_qte_header_id, 1, 'N');
5133 aso_debug_pub.add('Validate_ShipMethods: p_qte_line_id:'||p_qte_line_id, 1, 'N');
5134 END IF;
5135
5136 IF (p_ship_from_org_id IS NULL OR p_ship_from_org_id = FND_API.G_MISS_NUM) THEN
5137 IF (p_qte_header_id IS NOT NULL AND p_qte_header_id <> FND_API.G_MISS_NUM) THEN
5138 IF (p_qte_line_id IS NULL OR p_qte_line_id = FND_API.G_MISS_NUM) THEN
5139 -- Header Level
5140 OPEN C_qte_header_org_info;
5141 FETCH C_qte_header_org_info INTO l_hdr_org_id;
5142 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
5143 aso_debug_pub.add('Validate_ShipMethods: l_hdr_org_id:'||l_hdr_org_id, 1, 'N');
5144 END IF;
5145 IF C_qte_header_org_info%FOUND THEN
5146 l_org_id := TO_NUMBER(OE_PROFILE.VALUE('OE_ORGANIZATION_ID',l_hdr_org_id));
5147 ELSE
5148 x_return_status := FND_API.G_RET_STS_ERROR;
5149 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5150 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
5151 FND_MESSAGE.Set_Token('COLUMN', 'SHIPPING_METHOD', FALSE);
5152 FND_MESSAGE.Set_Token('VALUE',p_ship_method_code,FALSE);
5153 FND_MSG_PUB.ADD;
5154 END IF;
5155 END IF;
5156 CLOSE C_qte_header_org_info;
5157 ELSIF (p_qte_line_id IS NOT NULL AND p_qte_line_id <> FND_API.G_MISS_NUM) THEN
5158 -- Line Level
5159 OPEN C_qte_line_organization;
5160 FETCH C_qte_line_organization INTO l_line_organization_id;
5161 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
5162 aso_debug_pub.add('Validate_ShipMethods: l_line_organization_id:'||l_line_organization_id, 1, 'N');
5163 END IF;
5164 IF C_qte_line_organization%FOUND THEN
5165 l_org_id := l_line_organization_id;
5166 ELSE
5167 OPEN C_qte_line_org_id_info;
5168 FETCH C_qte_line_org_id_info INTO l_line_org_id;
5169 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
5170 aso_debug_pub.add('Validate_ShipMethods: l_line_org_id:'||l_line_org_id, 1, 'N');
5171 END IF;
5172 IF C_qte_line_org_id_info%FOUND THEN
5173 l_org_id := TO_NUMBER(OE_PROFILE.VALUE('OE_ORGANIZATION_ID',l_line_org_id));
5174 ELSE
5175 x_return_status := FND_API.G_RET_STS_ERROR;
5176 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5177 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
5178 FND_MESSAGE.Set_Token('COLUMN', 'SHIPPING_METHOD', FALSE);
5179 FND_MESSAGE.Set_Token('VALUE',p_ship_method_code,FALSE);
5180 FND_MSG_PUB.ADD;
5181 END IF;
5182 END IF;
5183
5184 CLOSE C_qte_line_org_id_info;
5185 END IF;
5186 CLOSE C_qte_line_organization;
5187 END IF;
5188 ELSIF (p_qte_header_id IS NULL OR p_qte_header_id = FND_API.G_MISS_NUM) THEN
5189 x_return_status := FND_API.G_RET_STS_ERROR;
5190 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5191 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
5192 FND_MESSAGE.Set_Token('COLUMN', 'SHIPPING_METHOD', FALSE);
5193 FND_MESSAGE.Set_Token('VALUE',p_ship_method_code,FALSE);
5194 FND_MSG_PUB.ADD;
5195 END IF;
5196 END IF;
5197 ELSE -- Ship_from_org_id is not null.
5198 l_org_id := p_ship_from_org_id;
5199 END IF;
5200
5201 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
5202 aso_debug_pub.add('Validate_ShipMethods: l_org_id:'||l_org_id, 1, 'N');
5203 aso_debug_pub.add('Validate_ShipMethods: Before Process x_return_status:'||x_return_status, 1, 'N');
5204 END IF;
5205 IF (p_ship_method_code IS NOT NULL ) AND
5206 -- AND p_ship_method_code <> FND_API.G_MISS_CHAR) AND
5207 (l_org_id IS NOT NULL AND l_org_id <> FND_API.G_MISS_NUM) AND
5208 (x_return_status = FND_API.G_RET_STS_SUCCESS)
5209 THEN
5210 OPEN C_ship_method_code(l_org_id);
5211 FETCH C_ship_method_code INTO l_start_date, l_end_date;
5212 IF (C_ship_method_code%NOTFOUND OR
5213 (TRUNC(sysdate) NOT BETWEEN NVL(TRUNC(l_start_date), TRUNC(sysdate)) AND
5214 NVL(TRUNC(l_end_date), TRUNC(sysdate)))) THEN
5215 CLOSE C_ship_method_code;
5216 x_return_status := FND_API.G_RET_STS_ERROR;
5217 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5218 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
5219 FND_MESSAGE.Set_Token('COLUMN', 'SHIP_METHOD_CODE', FALSE);
5220 FND_MESSAGE.Set_Token('VALUE',p_ship_method_code,FALSE);
5221 FND_MSG_PUB.ADD;
5222 END IF;
5223 ELSE
5224 CLOSE C_ship_method_code;
5225 END IF;
5226 END IF;
5227
5228 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
5229 aso_debug_pub.add('Validate_ShipMethods: After Process FINAL RESULT - X_RETURN_STATUS: '||x_return_status, 1, 'N');
5230 END IF;
5231 RETURN x_return_status;
5232
5233 END Validate_ShipMethods;
5234
5235 Procedure Validate_ln_type_for_ord_type
5236 (
5237 p_init_msg_list IN VARCHAR2,
5238 p_qte_header_rec IN ASO_QUOTE_PUB.Qte_Header_Rec_Type,
5239 P_Qte_Line_rec IN ASO_QUOTE_PUB.Qte_Line_Rec_Type,
5240 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
5241 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
5242 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
5243 IS
5244 --Validate line type passed in p_qte_line_rec against the Order type
5245 --passed in p_qte_header_rec using the following query:
5246
5247 Cursor c_ln_type_for_ord_type is
5248 SELECT start_date_active, end_date_active
5249 FROM OE_WF_LINE_ASSIGN_V
5250 WHERE order_type_id = p_qte_header_rec.order_type_id
5251 and line_type_id = p_qte_line_rec.order_line_type_id
5252 and (trunc(sysdate) BETWEEN NVL(start_date_active, sysdate) AND
5253 NVL(end_date_active, sysdate));
5254
5255 l_start_date date;
5256 l_end_date date;
5257
5258 Begin
5259 IF p_qte_line_rec.order_line_type_id IS NOT NULL AND
5260 p_qte_line_rec.order_line_type_id <> FND_API.G_MISS_NUM THEN
5261
5262 OPEN c_ln_type_for_ord_type;
5263 FETCH c_ln_type_for_ord_type into l_start_date, l_end_Date;
5264
5265 IF c_ln_type_for_ord_type%NOTFOUND THEN
5266
5267 x_return_status := FND_API.G_RET_STS_ERROR;
5268
5269 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5270 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_LINE_TYPE');
5271 FND_MSG_PUB.ADD;
5272 END IF;
5273 END IF;
5274 CLOSE c_ln_type_for_ord_type;
5275 END IF;
5276 End Validate_ln_type_for_ord_type;
5277
5278 Procedure Validate_ln_category_code
5279 (
5280 p_init_msg_list IN VARCHAR2,
5281 p_qte_header_rec IN ASO_QUOTE_PUB.Qte_Header_Rec_Type,
5282 P_Qte_Line_rec IN ASO_QUOTE_PUB.Qte_Line_Rec_Type,
5283 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
5284 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
5285 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
5286 IS
5287 --Validate line category code for the quote line
5288 --against the Order type using the following query:
5289 Cursor c_ln_category_code is
5290 SELECT line_category_code from aso_quote_lines_all
5291 where quote_line_id = p_qte_line_rec.quote_line_id;
5292
5293
5294 Cursor c_qte_category_code is
5295 SELECT quote_category_code from aso_quote_headers_all
5296 where quote_header_id = p_qte_header_rec.quote_header_id;
5297
5298 l_line_category_code VARCHAR2(30);
5299 l_quote_category_code VARCHAR2(240);
5300
5301 Begin
5302
5303 OPEN c_ln_category_code;
5304 FETCH c_ln_category_code into l_line_category_code;
5305 CLOSE c_ln_category_code;
5306
5307 IF (p_qte_header_rec.quote_category_code = FND_API.G_MISS_CHAR) THEN
5308 OPEN c_qte_category_code;
5309 FETCH c_qte_category_code into l_quote_category_code;
5310 CLOSE c_qte_category_code;
5311 else
5312 l_quote_category_code := p_qte_header_rec.quote_category_code;
5313 end if;
5314
5315 IF l_line_category_code = 'RETURN' THEN
5316 IF (l_quote_category_code <> 'MIXED') THEN
5317
5318 x_return_status := FND_API.G_RET_STS_ERROR;
5319 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5320 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_LINE_CATEGORY_CODE');
5321 FND_MSG_PUB.ADD;
5322 END IF;
5323 END IF;
5324
5325 END IF;
5326
5327 End Validate_ln_category_code;
5328
5329
5330 Procedure Validate_po_line_number
5331 (
5332 p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
5333 p_qte_header_rec IN ASO_QUOTE_PUB.Qte_Header_Rec_Type,
5334 P_Qte_Line_rec IN ASO_QUOTE_PUB.Qte_Line_Rec_Type := ASO_QUOTE_PUB.G_MISS_QTE_LINE_REC,
5335 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
5336 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
5337 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
5338 IS
5339 -- cursor to find any line payments with po line number
5340 Cursor c_po_ln_number_lines is
5341 SELECT 'x' from aso_payments
5342 where quote_header_id = p_qte_header_rec.quote_header_id
5343 and cust_po_line_number is not null
5344 and cust_po_number is null;
5345
5346 -- cursor to find po line number from header payment
5347 Cursor c_ln_hd_po_number is
5348 SELECT cust_po_number from aso_payments
5349 where quote_header_id = p_qte_header_rec.quote_header_id
5350 and quote_line_id is null;
5351
5352 -- cursor to find po number and po line number for line payment
5353 Cursor c_ln_po_line_number is
5354 SELECT cust_po_number, cust_po_line_number from aso_payments
5355 where quote_header_id = p_qte_header_rec.quote_header_id
5356 and quote_line_id = p_qte_line_rec.quote_line_id;
5357
5358 l_cust_po_line_number varchar2(50);
5359 l_ln_po_number varchar2(50);
5360 l_ln_hd_po_number varchar2(50);
5361 l_po_ln_number_lines varchar2(50);
5362
5363
5364 Begin
5365 x_return_status := FND_API.G_RET_STS_SUCCESS;
5366
5367 if (P_Qte_Line_rec.quote_line_id is not null) and (P_Qte_Line_rec.quote_line_id <> FND_API.G_MISS_NUM) then
5368
5369 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
5370 aso_debug_pub.add('Validate_po_line_number:quote_header_id:'||p_qte_header_rec.quote_header_id , 1, 'N');
5371 aso_debug_pub.add('Validate_po_line_number:quote_line_id:'||P_Qte_Line_rec.quote_line_id , 1, 'N');
5372 END IF;
5373
5374
5375 OPEN c_ln_po_line_number;
5376
5377 FETCH c_ln_po_line_number into l_ln_po_number,l_cust_po_line_number;
5378
5379 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
5380 aso_debug_pub.add('Validate_po_line_number:l_ln_po_number:'||l_ln_po_number, 1, 'N');
5381 aso_debug_pub.add('Validate_po_line_number:l_cust_po_line_number:'||l_cust_po_line_number, 1, 'N');
5382 END IF;
5383
5384 IF c_ln_po_line_number%FOUND AND l_cust_po_line_number is not null THEN
5385
5386 IF l_ln_po_number is null THEN
5387
5388 OPEN c_ln_hd_po_number;
5389 FETCH c_ln_hd_po_number into l_ln_hd_po_number;
5390
5391 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
5392 aso_debug_pub.add('Validate_po_line_number:l_ln_hd_po_number:'||l_ln_hd_po_number, 1, 'N');
5393 END IF;
5394
5395
5396 IF l_ln_hd_po_number is null THEN
5397 x_return_status := FND_API.G_RET_STS_ERROR;
5398
5399 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5400 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_PO_NUMBER');
5401 FND_MSG_PUB.ADD;
5402 END IF;
5403
5404 end if;
5405
5406 CLOSE c_ln_hd_po_number;
5407
5408 end if;
5409
5410 end if;
5411 CLOSE c_ln_po_line_number;
5412
5413 else
5414
5415 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
5416 aso_debug_pub.add('Validate_po_line_number:quote_header_id:'||p_qte_header_rec.quote_header_id , 1, 'N');
5417 END IF;
5418
5419 OPEN c_ln_hd_po_number;
5420 FETCH c_ln_hd_po_number into l_ln_hd_po_number;
5421
5422 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
5423 aso_debug_pub.add('Validate_po_line_number:l_ln_hd_po_number:'||l_ln_hd_po_number, 1, 'N');
5424 END IF;
5425
5426 IF l_ln_hd_po_number is null THEN
5427
5428 OPEN c_po_ln_number_lines;
5429 FETCH c_po_ln_number_lines into l_po_ln_number_lines;
5430
5431 IF l_po_ln_number_lines is not null THEN
5432
5433 x_return_status := FND_API.G_RET_STS_ERROR;
5434
5435 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5436 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_PO_NUMBER');
5437 FND_MSG_PUB.ADD;
5438 END IF;
5439 end if;
5440
5441 close c_po_ln_number_lines;
5442
5443 end if;
5444
5445 close c_ln_hd_po_number;
5446
5447
5448 END IF;
5449
5450 FND_MSG_PUB.Count_And_Get(
5451 p_count => x_msg_count,
5452 p_data => x_msg_data);
5453
5454 End Validate_po_line_number;
5455
5456
5457 PROCEDURE validate_service_ref_line_id
5458 (
5459 p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
5460 p_service_ref_type_code IN VARCHAR2,
5461 p_service_ref_line_id IN NUMBER,
5462 p_qte_header_id IN NUMBER := fnd_api.g_miss_num,
5463 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
5464 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
5465 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
5466 is
5467
5468 cursor c_quote is
5469 select quote_line_id from aso_quote_lines_all
5470 where quote_line_id = p_service_ref_line_id
5471 and quote_header_id = p_qte_header_id;
5472
5473 cursor c_order is
5474 select line_id from oe_order_lines_all
5475 where line_id = p_service_ref_line_id;
5476
5477 cursor c_customer_product is
5478 select instance_id
5479 from csi_item_instances
5480 where instance_id = p_service_ref_line_id;
5481
5482 identifier number;
5483
5484 Begin
5485 if aso_debug_pub.g_debug_flag = 'Y' then
5486 aso_debug_pub.add('Begin validate_service_ref_line_id', 1, 'Y');
5487 end if;
5488
5489 if p_init_msg_list = fnd_api.g_true then
5490 fnd_msg_pub.initialize;
5491 end if;
5492
5493 x_return_status := fnd_api.g_ret_sts_success;
5494
5495 if p_service_ref_type_code = 'QUOTE' then
5496
5497 open c_quote;
5498 fetch c_quote into identifier;
5499
5500 if aso_debug_pub.g_debug_flag = 'Y' then
5501 aso_debug_pub.add('validate_service_ref_line_id: Quote: identifier: '|| identifier, 1, 'Y');
5502 end if;
5503
5504 if c_quote%notfound then
5505
5506 x_return_status := fnd_api.g_ret_sts_error;
5507
5508 IF fnd_msg_pub.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5509 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
5510 FND_MESSAGE.Set_Token('COLUMN', 'SERVICE_REF_LINE_ID', FALSE);
5511 FND_MESSAGE.Set_Token('VALUE',p_service_ref_line_id,FALSE);
5512 FND_MSG_PUB.ADD;
5513 END IF;
5514
5515 end if;
5516
5517 close c_quote;
5518
5519 elsif p_service_ref_type_code = 'ORDER' then
5520
5521 open c_order;
5522 fetch c_order into identifier;
5523
5524 if aso_debug_pub.g_debug_flag = 'Y' then
5525 aso_debug_pub.add('validate_service_ref_line_id: Order: identifier: '|| identifier, 1, 'Y');
5526 end if;
5527
5528 if c_order%notfound then
5529
5530 x_return_status := fnd_api.g_ret_sts_error;
5531
5532 IF fnd_msg_pub.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5533 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
5534 FND_MESSAGE.Set_Token('COLUMN', 'SERVICE_REF_LINE_ID', FALSE);
5535 FND_MESSAGE.Set_Token('VALUE',p_service_ref_line_id,FALSE);
5536 FND_MSG_PUB.ADD;
5537 END IF;
5538
5539 end if;
5540
5541 close c_order;
5542
5543 elsif p_service_ref_type_code = 'CUSTOMER_PRODUCT' then
5544
5545 open c_customer_product;
5546 fetch c_customer_product into identifier;
5547
5548 if aso_debug_pub.g_debug_flag = 'Y' then
5549 aso_debug_pub.add('validate_service_ref_line_id: c_customer_product: identifier: '|| identifier, 1, 'Y');
5550 end if;
5551
5552 if c_customer_product%notfound then
5553
5554 x_return_status := fnd_api.g_ret_sts_error;
5555
5556 IF fnd_msg_pub.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5557 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
5558 FND_MESSAGE.Set_Token('COLUMN', 'SERVICE_REF_LINE_ID', FALSE);
5559 FND_MESSAGE.Set_Token('VALUE',p_service_ref_line_id,FALSE);
5560 FND_MSG_PUB.ADD;
5561 END IF;
5562
5563 end if;
5564
5565 close c_customer_product;
5566
5567 end if;
5568
5569 End validate_service_ref_line_id;
5570
5571 --Changes for Validating Defaulting Parameters (Start):14/09/2005
5572 PROCEDURE VALIDATE_DEFAULTING_DATA(
5573 P_quote_header_rec IN ASO_QUOTE_PUB.QTE_HEADER_REC_TYPE,
5574 P_quote_line_rec IN ASO_QUOTE_PUB.QTE_LINE_Rec_Type,
5575 P_Shipment_header_rec IN ASO_QUOTE_PUB.shipment_rec_type,
5576 P_shipment_line_rec IN ASO_QUOTE_PUB.shipment_rec_type,
5577 P_Payment_header_rec IN ASO_QUOTE_PUB.Payment_Rec_Type,
5578 P_Payment_line_rec IN ASO_QUOTE_PUB.Payment_Rec_Type,
5579 P_tax_header_rec IN ASO_QUOTE_PUB.TAX_DETAIL_REC_TYPE,
5580 P_tax_line_rec IN ASO_QUOTE_PUB.TAX_DETAIL_REC_TYPE,
5581 p_def_object_name IN VARCHAR,
5582 X_quote_header_rec OUT NOCOPY ASO_QUOTE_PUB.QTE_HEADER_REC_TYPE,
5583 X_quote_line_rec OUT NOCOPY ASO_QUOTE_PUB.QTE_LINE_Rec_Type,
5584 X_Shipment_header_rec OUT NOCOPY ASO_QUOTE_PUB.shipment_rec_type,
5585 X_Shipment_line_rec OUT NOCOPY ASO_QUOTE_PUB.shipment_rec_type,
5586 X_Payment_header_rec OUT NOCOPY ASO_QUOTE_PUB.Payment_Rec_Type,
5587 X_Payment_line_rec OUT NOCOPY ASO_QUOTE_PUB.Payment_Rec_Type,
5588 X_tax_header_rec OUT NOCOPY ASO_QUOTE_PUB.TAX_DETAIL_REC_TYPE,
5589 X_tax_line_rec OUT NOCOPY ASO_QUOTE_PUB.TAX_DETAIL_REC_TYPE,
5590 X_RETURN_STATUS OUT NOCOPY VARCHAR2,
5591 X_MSG_DATA OUT NOCOPY VARCHAR2,
5592 X_MSG_COUNT OUT NOCOPY VARCHAR2
5593
5594 ) is
5595
5596
5597 l_data_exists VARCHAR2(10);
5598 P_Api_Version_Number NUMBER;
5599 P_Init_Msg_List VARCHAR2(100) := FND_API.G_FALSE ;
5600 l_api_version_number CONSTANT NUMBER := 1.0;
5601 l_api_name CONSTANT VARCHAR2(30) := 'VALIDATE_DEFAULTING_DATA';
5602 G_PKG_NAME CONSTANT VARCHAR2(30) := 'ASO_VALIDATE_PVT';
5603 l_periodicity_profile varchar2(30);
5604 P_FLAG VARCHAR2(10);
5605 P_HEADER VARCHAR2(1);
5606
5607
5608 CURSOR C_FOB(p_lookup_code varchar2)is
5609 SELECT 1 FROM DUAL WHERE exists
5610 (
5611 SELECT meaning fob
5612 FROM ar_lookups
5613 WHERE lookup_type = 'FOB'
5614 AND enabled_flag = 'Y'
5615 AND trunc(sysdate) BETWEEN NVL(start_date_active, trunc(sysdate))
5616 AND NVL(end_date_active, trunc(sysdate))
5617 AND lookup_code = p_lookup_code
5618 ) ;
5619
5620 CURSOR C_SHIPMENT_PRIORITY_CODE(p_shipment_priority_code varchar2) IS
5621 SELECT 1 FROM DUAL WHERE EXISTS
5622 (
5623 SELECT meaning shipment_priority
5624 FROM oe_lookups
5625 WHERE lookup_type = 'SHIPMENT_PRIORITY'
5626 AND enabled_flag = 'Y'
5627 AND trunc(sysdate) between nvl(start_date_active, trunc(sysdate)) and nvl(end_date_active, trunc(sysdate))
5628 AND lookup_code = p_shipment_priority_code
5629 );
5630
5631 CURSOR C_SALESCHANNEL(p_lookup_code varchar2) is
5632 SELECT 1 FROM DUAL WHERE exists
5633 (
5634 SELECT lookup_code
5635 FROM fnd_lookup_values_vl
5636 WHERE lookup_type = 'SALES_CHANNEL'
5637 AND view_application_id = 660
5638 AND enabled_flag = 'Y'
5639 AND trunc( NVL(start_date_active, sysdate) ) <= trunc( sysdate )
5640 AND trunc( NVL(end_date_active, sysdate) ) >= trunc( sysdate )
5641 and lookup_code = p_lookup_code
5642 );
5643
5644
5645 CURSOR C_QOTHDDET_CURRENCY_NOT_NULL(p_currency_code varchar2,p_price_list_id varchar2) is
5646 SELECT 1 FROM DUAL WHERE exists
5647 (
5648 SELECT d.currency_code currency_code
5649 FROM Fnd_currencies d
5650 ,qp_currency_details b
5651 ,qp_list_headers_b c
5652 WHERE c.list_header_id = p_price_list_id
5653 AND b.currency_header_id = c.currency_header_id
5654 AND d.currency_code = b.to_currency_code
5655 AND c.list_type_code IN ('PRL', 'AGR')
5656 AND d.currency_flag = 'Y'
5657 AND d.enabled_flag = 'Y'
5658 AND trunc(sysdate) between trunc(nvl(d.start_date_active,sysdate)) and trunc(nvl(d.end_date_active,sysdate))
5659 and trunc(sysdate) between trunc(nvl(c.start_date_active,sysdate)) and trunc(nvl(c.end_date_active,sysdate))
5660 and trunc(sysdate) between trunc(nvl(b.start_date_active,sysdate)) and trunc(nvl(b.end_date_active,sysdate))
5661 AND d.currency_code = p_currency_code
5662 UNION
5663 SELECT b.currency_code currency_code
5664 FROM fnd_currencies b,qp_list_headers_b c
5665 WHERE c.currency_code = b.currency_code
5666 AND c.list_header_id = p_price_list_id
5667 AND c.list_type_code IN ('PRL', 'AGR')
5668 AND b.currency_flag = 'Y'
5669 AND b.enabled_flag = 'Y'
5670 and trunc(sysdate) between trunc(nvl(b.start_date_active,sysdate)) and trunc(nvl(b.end_date_active,sysdate))
5671 AND b.currency_code = p_currency_code
5672 );
5673
5674
5675 CURSOR C_QOTHDDET_CURRENCY_NULL(p_currency_code varchar2) is
5676 SELECT 1 FROM DUAL WHERE exists
5677 (
5678 SELECT b.currency_code
5679 FROM fnd_currencies b
5680 WHERE b.currency_flag = 'Y'
5681 AND b.enabled_flag = 'Y'
5682 AND trunc(sysdate) between trunc(nvl(start_date_active,sysdate)) and trunc(nvl(end_date_active,sysdate))
5683 and b.currency_code = p_currency_code
5684 );
5685
5686 --New Cursor(s) start
5687 CURSOR C_PAYMENT_TYPE(p_lookup_code varchar2) is --Payment Type
5688 SELECT 1 FROM DUAL WHERE exists
5689 (
5690 SELECT Lookup_Code Payment_Type_Code
5691 from ASO_LOOKUPS
5692 WHERE LOOKUP_TYPE = 'ASO_PAYMENT_TYPE'
5693 and lookup_code <> 'PO'
5694 and trunc(nvl(start_date_active,sysdate)) <= trunc(sysdate)
5695 and trunc(nvl(end_daTe_active,sysdate)) >= trunc (sysdate)
5696 and enabled_flag = 'Y'
5697 and lookup_code = p_lookup_code
5698 );
5699
5700 CURSOR C_CREDIT_CARD_TYPE(p_credit_card_code varchar2) is --Credit Card Type
5701 SELECT 1 FROM DUAL WHERE exists
5702 (
5703 SELECT CARD_ISSUER_CODE credit_card_code
5704 FROM IBY_CREDITCARD_ISSUERS_V
5705 where CARD_ISSUER_CODE = p_credit_card_code
5706 );
5707
5708 CURSOR C_DEMAND_CLASS(p_lookup_code varchar2) is --Demand Class
5709 SELECT 1 FROM DUAL WHERE exists
5710 (
5711 Select lookup_code Demand_Class_Code,
5712 meaning Demand_Class,
5713 description
5714 From FND_COMMON_LOOKUPS
5715 Where lookup_type = 'DEMAND_CLASS'
5716 And application_id = 700
5717 And enabled_flag = 'Y'
5718 And trunc(sysdate) Between NVL(start_date_active,trunc(sysdate))
5719 And NVL(end_date_active,trunc(sysdate))
5720 And lookup_code = p_lookup_code
5721 );
5722
5723 CURSOR C_REQUEST_DATE_TYPE(p_lookup_code varchar2) is --Request Date Type
5724 SELECT 1 FROM DUAL WHERE exists
5725 (
5726 Select lookup_code
5727 from oe_lookups
5728 where lookup_type='REQUEST_DATE_TYPE'
5729 and lookup_code = p_lookup_code
5730 and ENABLED_FLAG = 'Y'
5731 and trunc(sysdate) between trunc(start_date_active)
5732 and trunc(nvl(end_date_active,sysdate))
5733 );
5734
5735 CURSOR C_REQUEST_DATE(p_request_date date) is --Request Date(Confirm it)
5736 SELECT 1 FROM DUAL WHERE exists
5737 (
5738 select 1 from dual where trunc(p_request_date) >= trunc(sysdate)
5739 );
5740
5741 CURSOR C_OPERATING_UNIT(p_org_id varchar2) is
5742 select DECODE(MO_GLOBAL.CHECK_ACCESS(p_org_id),'Y','Y','N',NULL,NULL) from dual ;
5743
5744
5745 CURSOR C_CHARGE_PERIODICITY_CODE(p_periodicity_code VARCHAR2,p_periodicity_profile VARCHAR2) is --CHARGE_PERIODICITY
5746 SELECT 1 FROM DUAL WHERE exists
5747 (
5748 Select distinct uom_code
5749 From MTL_UNITS_OF_MEASURE_VL --Changed mtl_uom_conversions to MTL_UNITS_OF_MEASURE_VL 05/10/2005(Yogeshwar)
5750 Where uom_class=p_periodicity_profile
5751 And uom_code=p_periodicity_code
5752 );
5753
5754 CURSOR C_AUTOMATIC_PRICING(p_lookup_code varchar2) IS --Auotmatic Pricing
5755 SELECT 1 FROM DUAL WHERE exists
5756 (
5757 select lookup_code
5758 from aso_lookups
5759 where lookup_type='ASO_PRICE_TAX_COMPUTE_OPTION'
5760 and lookup_code = p_lookup_code
5761 and ENABLED_FLAG = 'Y'
5762 and trunc(sysdate) between trunc(start_date_active)
5763 and trunc(nvl(end_date_active,sysdate))
5764
5765 );
5766
5767
5768 CURSOR C_AUTOMATIC_TAX(p_lookup_code varchar2) IS --Auotmatic Tax
5769 SELECT 1 FROM DUAL WHERE exists
5770 (
5771 select lookup_code
5772 from aso_lookups
5773 where lookup_type='ASO_PRICE_TAX_COMPUTE_OPTION'
5774 and lookup_code = p_lookup_code
5775 and ENABLED_FLAG = 'Y'
5776 and trunc(sysdate) between trunc(start_date_active)
5777 and trunc(nvl(end_date_active,sysdate))
5778
5779 );
5780
5781 --New Cursors end
5782
5783
5784 --- TCA Routines Start --------------------------------
5785
5786 --1) Validate Phone
5787 PROCEDURE VALIDATE_PHONE
5788 ( p_phone_id varchar2,
5789 p_party_id varchar2, -- QOTHDDET_MAIN.sold_to_contact_party_id
5790 p_cust_party_id varchar2 -- QOTHDDET_MAIN.sold_to_cust_party_id'
5791 ) is
5792
5793
5794 CURSOR C_VALIDATE_PHONE_CONTACT IS
5795 SELECT 1 FROM DUAL WHERE EXISTS
5796 (
5797 SELECT phone.contact_point_id
5798 FROM HZ_CONTACT_POINTS phone,
5799 HZ_PARTIES hp
5800 WHERE HP.party_id = p_party_id --When contact is specified
5801 AND phone.owner_table_id = hp.party_id
5802 AND hp.status = 'A'
5803 AND phone.status = 'A'
5804 AND phone.owner_table_name = 'HZ_PARTIES'
5805 AND phone.contact_point_type = 'PHONE'
5806 AND phone.contact_point_id = p_phone_id
5807 );
5808
5809
5810 CURSOR C_VALIDATE_PHONE_CUSTOMER IS -- when customer is specified and party_type is of type 'PERSON'
5811 SELECT 1 FROM DUAL WHERE EXISTS
5812 (
5813
5814 SELECT phone.contact_point_id
5815 FROM HZ_CONTACT_POINTS phone,
5816 HZ_PARTIES hp
5817 WHERE HP.party_id = p_cust_party_id
5818 AND phone.owner_table_id = hp.party_id
5819 AND hp.status = 'A'
5820 AND phone.status = 'A'
5821 AND phone.owner_table_name = 'HZ_PARTIES'
5822 AND phone.contact_point_type = 'PHONE'
5823 AND phone.contact_point_id = p_phone_id
5824 );
5825
5826 l_data_exists varchar2(10);
5827 l_cust_party_type varchar(20);
5828
5829 BEGIN
5830
5831 SELECT PARTY_TYPE --Selecting the party type from HZ_PARTIES
5832 INTO l_cust_party_type
5833 FROM HZ_PARTIES
5834 WHERE PARTY_ID = nvl(p_party_id,p_cust_party_id);
5835
5836 --When contact is specified
5837 IF p_party_id is not null then
5838 aso_debug_pub.add('Before Opening the cursor...C_VALIDATE_PHONE_CONTACT', 1, 'Y');
5839 OPEN C_VALIDATE_PHONE_CONTACT ;
5840
5841 aso_debug_pub.add('After Opening the cursor...C_VALIDATE_PHONE_CONTACT', 1, 'Y');
5842 FETCH C_VALIDATE_PHONE_CONTACT INTO l_data_exists ;
5843
5844 aso_debug_pub.add('After Fetching the cursor...C_VALIDATE_PHONE_CONTACT', 1, 'Y');
5845
5846 IF C_VALIDATE_PHONE_CONTACT%FOUND THEN
5847 x_quote_header_rec.PHONE_ID := p_phone_id;
5848 ELSE
5849 x_quote_header_rec.PHONE_ID := NULL ;
5850 aso_debug_pub.add('No Data Found for Cursor...C_VALIDATE_PHONE_CONTACT', 1, 'Y');
5851
5852 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
5853 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_QUOTE_PHONE_NO', TRUE);
5854 FND_MSG_PUB.ADD;
5855 END IF;
5856 aso_debug_pub.add('before Closing the Cursor...C_VALIDATE_PHONE_CONTACT', 1, 'Y');
5857 CLOSE C_VALIDATE_PHONE_CONTACT;
5858 aso_debug_pub.add('After Closing the Cursor...C_VALIDATE_PHONE_CONTACT', 1, 'Y');
5859 END IF;
5860
5861 -- when customer is specified and party_type is of type 'PERSON'
5862
5863 IF p_cust_party_id is NOT NULL AND l_cust_party_type = 'PERSON' THEN
5864 aso_debug_pub.add('Before Opening the cursor...C_VALIDATE_PHONE_CUSTOMER', 1, 'Y');
5865 OPEN C_VALIDATE_PHONE_CUSTOMER ;
5866 aso_debug_pub.add('After Opening the cursor...C_VALIDATE_PHONE_CUSTOMER', 1, 'Y');
5867 FETCH C_VALIDATE_PHONE_CUSTOMER INTO l_data_exists ;
5868 aso_debug_pub.add('After Fetching the cursor...C_VALIDATE_PHONE_CUSTOMER', 1, 'Y');
5869
5870 IF C_VALIDATE_PHONE_CUSTOMER%FOUND THEN
5871 x_quote_header_rec.PHONE_ID := p_phone_id;
5872 ELSE
5873 x_quote_header_rec.PHONE_ID := NULL ;
5874 aso_debug_pub.add('No Data Found for Cursor...C_VALIDATE_PHONE_CUSTOMER', 1, 'Y');
5875
5876 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
5877 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_QUOTE_PHONE_NO', TRUE);
5878 FND_MSG_PUB.ADD;
5879 END IF;
5880 aso_debug_pub.add('Before Closing the Cursor...C_VALIDATE_PHONE_CUSTOMER', 1, 'Y');
5881 CLOSE C_VALIDATE_PHONE_CUSTOMER;
5882 aso_debug_pub.add('After Closing the Cursor...C_VALIDATE_PHONE_CUSTOMER', 1, 'Y');
5883 END IF;
5884
5885 END VALIDATE_PHONE;
5886
5887
5888 --2): Validate Customer
5889 PROCEDURE VALIDATE_CUSTOMER
5890 ( p_cust_party_id varchar2,
5891 p_resource_id varchar2,
5892 p_flag varchar2,
5893 p_header varchar2
5894 ) IS
5895
5896 --Routine for End Customer
5897 -- p_flag possible values END-
5898 -- p_header possible values Y and N
5899
5900 CURSOR C_CUST_PARTY IS
5901 SELECT 1 FROM DUAL WHERE EXISTS
5902 (
5903 SELECT hp.party_name --(Base Query)
5904 FROM HZ_PARTIES HP
5905 WHERE hp.party_type in ('PERSON','ORGANIZATION')
5906 AND hp.status = 'A'
5907 AND HP.PARTY_ID = p_cust_party_id
5908 );
5909
5910
5911 -- When ASN_CUST_ACCESS = T and manager_flag = 'Y'
5912 CURSOR C_CUST_PARTY_MANAGER IS
5913 SELECT 1 FROM DUAL WHERE EXISTS
5914 (
5915 select null
5916 from HZ_PARTIES P
5917 where P.status = 'A'
5918 AND p.party_type in ('PERSON','ORGANIZATION')
5919 AND P.party_id = p_cust_party_id
5920 AND EXISTS ( SELECT null
5921 FROM as_accesses_all_all secu
5922 WHERE secu.customer_id = P.party_id
5923 and secu.delete_flag is null
5924 and secu.sales_group_id in (
5925 SELECT jrgd.group_id
5926 FROM jtf_rs_groups_denorm jrgd,
5927 jtf_rs_group_usages jrgu
5928 WHERE jrgd.parent_group_id IN (
5929 select u.group_id
5930 from jtf_rs_rep_managers mgr,
5931 jtf_rs_group_usages u
5932 where mgr.parent_resource_id = p_resource_id
5933 and trunc(sysdate) between trunc(mgr.start_date_active)
5934 and trunc(nvl(mgr.end_date_active,sysdate))
5935 and mgr.hierarchy_type = 'MGR_TO_REP'
5936 and mgr.group_id = u.group_id
5937 and u.usage in ('SALES','PRM')
5938 )
5939 AND trunc(jrgd.start_date_active) <= TRUNC(SYSDATE)
5940 AND trunc(NVL(jrgd.end_date_active, SYSDATE)) >= TRUNC(SYSDATE)
5941 AND jrgu.group_id = jrgd.group_id
5942 AND jrgu.usage in ('SALES', 'PRM'))
5943 AND secu.lead_id IS NULL
5944 AND secu.sales_lead_id IS NULL )
5945 UNION ALL
5946 SELECT null
5947 FROM as_accesses_all_all secu,
5948 HZ_PARTIES P
5949 WHERE secu.customer_id = P.party_id
5950 AND secu.lead_id IS NULL
5951 AND secu.sales_lead_id IS NULL
5952 AND secu.delete_flag is NULL
5953 AND salesforce_id = p_resource_id
5954
5955 ) ;
5956
5957 -- When ASN_CUST_ACCESS = T and manager_flag = 'N'
5958
5959 CURSOR C_CUST_PARTY_NO_MANAGER IS
5960 SELECT 1 FROM DUAL WHERE EXISTS
5961 (
5962
5963 select P.party_name
5964 from HZ_PARTIES P
5965 where P.status = 'A'
5966 AND P.party_id = p_cust_party_id
5967 AND p.party_type in ('PERSON','ORGANIZATION')
5968 AND (exists (SELECT null
5969 FROM as_accesses_all secu
5970 WHERE secu.customer_id = p.party_id
5971 AND secu.lead_id IS NULL
5972 AND secu.sales_lead_id IS NULL AND salesforce_id = p_resource_id
5973 )
5974 )
5975
5976 );
5977
5978 Cursor C_Mgr_Check Is --to check the manager flag
5979 select 1 from dual where exists
5980 (
5981 SELECT MGR.group_id
5982 FROM jtf_rs_rep_managers MGR ,
5983 jtf_rs_group_usages U
5984 WHERE U.usage = 'SALES'
5985 AND U.group_id = MGR.group_id
5986 AND trunc(MGR.start_date_active) <= trunc(SYSDATE)
5987 AND trunc(NVL(MGR.end_date_active, SYSDATE)) >= trunc(SYSDATE)
5988 AND MGR.parent_resource_id = MGR.resource_id
5989 AND MGR.hierarchy_type in ('MGR_TO_MGR', 'MGR_TO_REP')
5990 AND MGR.parent_resource_id = p_resource_id
5991 );
5992
5993 l_data_exists VARCHAR2(10);
5994 l_manager_flag VARCHAR2(1);
5995
5996 BEGIN
5997
5998 IF NVL(FND_PROFILE.VALUE('ASN_CUST_ACCESS'),'T') = 'F' THEN --Base Query
5999
6000 aso_debug_pub.add('Before Opening the cursor...C_CUST_PARTY', 1, 'Y');
6001
6002 OPEN C_CUST_PARTY ;
6003 aso_debug_pub.add('After Opening the cursor...C_CUST_PARTY', 1, 'Y');
6004 FETCH C_CUST_PARTY INTO l_data_exists ;
6005 aso_debug_pub.add('After Fetching the cursor...C_CUST_PARTY', 1, 'Y');
6006
6007 IF C_CUST_PARTY%FOUND THEN
6008 aso_debug_pub.add('Value of p_flag is..'||p_flag, 1, 'Y');
6009 aso_debug_pub.add('Value of p_header is..'||p_header, 1, 'Y');
6010
6011 IF ( p_flag = 'SOLD' ) THEN
6012 IF ( p_header = 'Y' ) THEN
6013 x_quote_header_rec.cust_party_id := p_cust_party_id;
6014 END IF;
6015 END IF;
6016
6017 IF ( p_flag = 'END' ) THEN
6018 IF ( p_header = 'Y' ) THEN
6019 x_quote_header_rec.end_customer_cust_party_id := p_cust_party_id;
6020 END IF;
6021 IF ( p_header = 'N' ) THEN
6022 x_quote_line_rec.end_customer_cust_party_id := p_cust_party_id;
6023 END IF;
6024 END IF;
6025
6026 ELSE
6027 IF ( p_flag = 'SOLD' ) THEN
6028 IF ( p_header = 'Y' ) THEN
6029 x_quote_header_rec.cust_party_id := NULL;
6030 aso_debug_pub.add('No Data Found for Cursor...C_CUST_PARTY(Line Header)', 1, 'Y');
6031
6032 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
6033 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_QUOTE_CUSTOMER', TRUE);
6034 FND_MSG_PUB.ADD;
6035 END IF;
6036 END IF;
6037
6038 IF ( p_flag = 'END' ) THEN
6039 IF ( p_header = 'Y' ) THEN
6040 x_quote_header_rec.end_customer_cust_party_id := NULL;
6041 aso_debug_pub.add('No Data Found for Cursor...C_CUST_PARTY(Line Header)', 1, 'Y');
6042
6043 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
6044 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_END_CUSTOMER', TRUE);
6045 FND_MSG_PUB.ADD;
6046 END IF;
6047
6048 IF ( p_header = 'N' ) THEN
6049 x_quote_line_rec.end_customer_cust_party_id := NULL;
6050 aso_debug_pub.add('No Data Found for Cursor...C_CUST_PARTY(Line End)', 1, 'Y');
6051 END IF;
6052 END IF;
6053 END IF;
6054 aso_debug_pub.add('Before Closing the Cursor...C_CUST_PARTY', 1, 'Y');
6055 CLOSE C_CUST_PARTY;
6056 aso_debug_pub.add('After Closing the Cursor...C_CUST_PARTY', 1, 'Y');
6057 END IF;
6058
6059
6060 IF (NVL(FND_PROFILE.VALUE('ASN_CUST_ACCESS'),'T') = 'T' AND p_resource_id IS NOT NULL) THEN
6061
6062 aso_debug_pub.add('Before Opening the cursor...C_Mgr_Check', 1, 'Y');
6063 OPEN C_Mgr_Check ; --Assigning the manager flag
6064 aso_debug_pub.add('After Opening the cursor...C_Mgr_Check', 1, 'Y');
6065 FETCH C_Mgr_Check INTO l_data_exists ;
6066 aso_debug_pub.add('After Fetching the cursor...C_Mgr_Check', 1, 'Y');
6067
6068 IF C_Mgr_Check%FOUND THEN
6069 l_manager_flag := 'Y';
6070 ELSE
6071 l_manager_flag := 'N';
6072 aso_debug_pub.add('No Data Found for Cursor...C_Mgr_Check', 1, 'Y');
6073 END IF ;
6074
6075 CLOSE C_Mgr_Check ;
6076
6077 IF l_manager_flag = 'Y' THEN
6078
6079 OPEN C_CUST_PARTY_MANAGER;
6080 FETCH C_CUST_PARTY_MANAGER INTO l_data_exists ;
6081
6082 IF C_CUST_PARTY_MANAGER%FOUND THEN
6083
6084 IF ( p_flag = 'SOLD' ) THEN
6085 IF ( p_header = 'Y' ) THEN
6086 x_quote_header_rec.cust_party_id := p_cust_party_id;
6087 END IF;
6088 END IF;
6089
6090 IF ( p_flag = 'END' ) THEN
6091 IF ( p_header = 'Y' ) THEN
6092 x_quote_header_rec.end_customer_cust_party_id := p_cust_party_id;
6093 END IF;
6094 IF ( p_header = 'N' ) THEN
6095 x_quote_line_rec.end_customer_cust_party_id := p_cust_party_id;
6096 END IF;
6097
6098 END IF;
6099 ELSE
6100 IF ( p_flag = 'SOLD' ) THEN
6101 IF ( p_header = 'Y' ) THEN
6102
6103 x_quote_header_rec.cust_party_id := NULL;
6104 aso_debug_pub.add('No Data Found for Cursor...C_CUST_PARTY_MANAGER(Line/Header)', 1, 'Y');
6105
6106 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
6107 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_QUOTE_CUSTOMER', TRUE);
6108 FND_MSG_PUB.ADD;
6109 END IF;
6110 END IF;
6111
6112 IF ( p_flag = 'END' ) THEN
6113 IF ( p_header = 'Y' ) THEN
6114
6115 x_quote_header_rec.end_customer_cust_party_id := NULL;
6116 aso_debug_pub.add('No Data Found for Cursor...C_CUST_PARTY_MANAGER(Line/Header)', 1, 'Y');
6117
6118 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
6119 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_END_CUSTOMER', TRUE);
6120 FND_MSG_PUB.ADD;
6121 END IF;
6122
6123 IF ( p_header = 'N' ) THEN
6124 x_quote_line_rec.end_customer_cust_party_id := NULL;
6125 aso_debug_pub.add('No Data Found for Cursor...C_CUST_PARTY_MANAGER(Line/End)', 1, 'Y');
6126 END IF;
6127 END IF;
6128 END IF;
6129 CLOSE C_CUST_PARTY_MANAGER;
6130 END IF;
6131
6132 IF l_manager_flag = 'N' THEN
6133
6134 aso_debug_pub.add('Before Opening the cursor...C_CUST_PARTY_NO_MANAGER', 1, 'Y');
6135 OPEN C_CUST_PARTY_NO_MANAGER;
6136 aso_debug_pub.add('After Opening the cursor...C_CUST_PARTY_NO_MANAGER', 1, 'Y');
6137 FETCH C_CUST_PARTY_NO_MANAGER INTO l_data_exists ;
6138 aso_debug_pub.add('After Fetching the cursor...C_CUST_PARTY_NO_MANAGER', 1, 'Y');
6139
6140 IF C_CUST_PARTY_NO_MANAGER%FOUND THEN
6141
6142 IF ( p_flag = 'SOLD' ) THEN
6143 IF ( p_header = 'Y' ) THEN
6144 x_quote_header_rec.cust_party_id := p_cust_party_id;
6145 END IF;
6146 END IF;
6147
6148 IF ( p_flag = 'END' ) THEN
6149 IF ( p_header = 'Y' ) THEN
6150 x_quote_header_rec.end_customer_cust_party_id := p_cust_party_id;
6151 END IF;
6152 IF ( p_header = 'N' ) THEN
6153 x_quote_line_rec.end_customer_cust_party_id := p_cust_party_id;
6154 END IF;
6155 END IF;
6156
6157 ELSE
6158 IF ( p_flag = 'SOLD' ) THEN
6159 IF ( p_header = 'Y' ) THEN
6160 x_quote_header_rec.cust_party_id := NULL;
6161 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
6162 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_QUOTE_CUSTOMER', TRUE);
6163 FND_MSG_PUB.ADD;
6164 END IF;
6165 END IF;
6166
6167 IF ( p_flag = 'END' ) THEN
6168 IF ( p_header = 'Y' ) THEN
6169 x_quote_header_rec.end_customer_cust_party_id := NULL;
6170 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
6171 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_END_CUSTOMER', TRUE);
6172 FND_MSG_PUB.ADD;
6173 END IF;
6174 IF ( p_header = 'N' ) THEN
6175 x_quote_line_rec.end_customer_cust_party_id := NULL;
6176 END IF;
6177 END IF;
6178
6179 aso_debug_pub.add('No Data Found for Cursor...C_CUST_PARTY_NO_MANAGER', 1, 'Y');
6180 END IF;
6181
6182 aso_debug_pub.add('Before Closing the cursor...C_CUST_PARTY_NO_MANAGER', 1, 'Y');
6183 CLOSE C_CUST_PARTY_NO_MANAGER;
6184 aso_debug_pub.add('After Closing the cursor...C_CUST_PARTY_NO_MANAGER', 1, 'Y');
6185
6186 END IF;
6187 END IF;
6188
6189 END VALIDATE_CUSTOMER ;
6190 --3): Validate Contact
6191
6192 PROCEDURE VALIDATE_CONTACT( p_party_id varchar2,
6193 p_cust_party_id varchar2,
6194 p_flag varchar2,
6195 p_header varchar2
6196 )IS
6197
6198 l_data_exists VARCHAR2(10);
6199
6200 -- SOLD to/Bill to/Ship to/ENd Customer - Header or Line
6201 -- p_flag possible values : BILL/SHIP/END/SOLD
6202 -- p_header possible values : Y or N
6203 -- QOTHDDET_MAIN.sold_to_cust_party_id --> p_quote_header_rec.cust_party_id
6204
6205 --CURSOR C_BILL_SHIP_CONTACT_NAME IS
6206 CURSOR C_CONTACT_NAME IS
6207 SELECT 1 FROM DUAL WHERE EXISTS
6208 (
6209 SELECT hp_contact.party_name
6210 FROM HZ_PARTIES hp_contact,
6211 HZ_RELATIONSHIPS hp_rltn
6212 WHERE hp_rltn.object_id = p_cust_party_id --lv_cust_party_id
6213 AND hp_rltn.party_id = p_party_id
6214 AND hp_contact.party_id = hp_rltn.subject_id
6215 AND hp_contact.party_type = 'PERSON'
6216 AND hp_rltn.relationship_code IN ( Select distinct reltype.forward_rel_code
6217 From HZ_RELATIONSHIP_TYPES reltype, HZ_CODE_ASSIGNMENTS code
6218 Where code.class_category = 'RELATIONSHIP_TYPE_GROUP'
6219 and code.class_code = 'PARTY_REL_GRP_CONTACTS'
6220 and code.owner_table_name = 'HZ_RELATIONSHIP_TYPES'
6221 and code.owner_table_id = reltype.relationship_type_id
6222 and code.status = 'A'
6223 and trunc(code.start_date_active) <= trunc(sysdate)
6224 and trunc(nvl(code.end_date_active,sysdate)) >= trunc(sysdate)
6225 and reltype.subject_type = 'PERSON'
6226 and reltype.object_type = 'ORGANIZATION'
6227 )
6228 AND hp_contact.status = 'A'
6229 AND hp_rltn.status = 'A'
6230 AND trunc(hp_rltn.start_date) <= trunc(sysdate)
6231 AND trunc(nvl(hp_rltn.end_date,sysdate)) >= trunc(sysdate)
6232 );
6233
6234 BEGIN
6235 aso_debug_pub.add('Before Opening the cursor...C_CONTACT_NAME', 1, 'Y');
6236 OPEN C_CONTACT_NAME ;
6237 aso_debug_pub.add('After Opening the cursor...C_CONTACT_NAME', 1, 'Y');
6238 FETCH C_CONTACT_NAME INTO l_data_exists ;
6239 aso_debug_pub.add('After Fteching the cursor...C_CONTACT_NAME', 1, 'Y');
6240 aso_debug_pub.add('Value of p_flag is...'||p_flag, 1, 'Y');
6241 aso_debug_pub.add('Value of p_header is...'||p_header, 1, 'Y');
6242 IF C_CONTACT_NAME%FOUND THEN
6243 --Case:1 BILL
6244 IF P_FLAG = 'BILL' THEN
6245 IF ( p_header = 'Y' ) THEN
6246 x_quote_header_rec.INVOICE_TO_PARTY_ID := p_party_id;
6247 END IF;
6248
6249 IF ( p_header = 'N' ) THEN
6250 x_quote_line_rec.INVOICE_TO_PARTY_ID := p_party_id;
6251 END IF;
6252 END IF;
6253
6254 --Case:2 SHIP
6255
6256 IF P_FLAG = 'SHIP' THEN
6257 IF ( p_header = 'Y' ) THEN
6258 x_shipment_header_rec.SHIP_TO_PARTY_ID := p_party_id;
6259 END IF;
6260
6261 IF ( p_header = 'N' ) THEN
6262 x_shipment_line_rec.SHIP_TO_PARTY_ID := p_party_id;
6263 END IF;
6264 END IF;
6265
6266 --Case:3 END
6267 IF P_FLAG = 'END' THEN
6268 IF ( p_header = 'Y' ) THEN
6269 x_quote_header_rec.END_CUSTOMER_PARTY_ID := p_party_id;
6270 END IF;
6271
6272 IF ( p_header = 'N' ) THEN
6273 x_quote_line_rec.END_CUSTOMER_PARTY_ID := p_party_id;
6274 END IF;
6275 END IF;
6276
6277 --Case:4 SOLD
6278 IF P_FLAG = 'SOLD' THEN --No Check for line level
6279 IF ( p_header = 'Y' ) THEN
6280 x_quote_header_rec.PARTY_ID := p_party_id;
6281 END IF;
6282 END IF;
6283
6284 ELSE --Set al values to NULL
6285
6286 --Case:1 BILL
6287 IF P_FLAG = 'BILL' THEN
6288 IF ( p_header = 'Y' ) THEN
6289 x_quote_header_rec.INVOICE_TO_PARTY_ID := NULL;
6290 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
6291 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_BILL_CONTACT', TRUE);
6292 FND_MSG_PUB.ADD;
6293 END IF;
6294
6295 IF ( p_header = 'N' ) THEN
6296 x_quote_line_rec.INVOICE_TO_PARTY_ID := NULL;
6297 END IF;
6298 END IF;
6299
6300 --Case:2 SHIP
6301
6302 IF P_FLAG = 'SHIP' THEN
6303 IF ( p_header = 'Y' ) THEN
6304 x_shipment_header_rec.SHIP_TO_PARTY_ID := NULL;
6305 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
6306 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_SHIP_CONTACT', TRUE);
6307 FND_MSG_PUB.ADD;
6308 END IF;
6309
6310 IF ( p_header = 'N' ) THEN
6311 x_shipment_line_rec.SHIP_TO_PARTY_ID := NULL;
6312 END IF;
6313 END IF;
6314
6315 --Case:3 END
6316 IF P_FLAG = 'END' THEN
6317 IF ( p_header = 'Y' ) THEN
6318 x_quote_header_rec.END_CUSTOMER_PARTY_ID := NULL;
6319 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
6320 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_END_CONTACT', TRUE);
6321 FND_MSG_PUB.ADD;
6322 END IF;
6323
6324 IF ( p_header = 'N' ) THEN
6325 x_quote_line_rec.END_CUSTOMER_PARTY_ID := NULL;
6326 END IF;
6327 END IF;
6328
6329 --Case:4 SOLD
6330 IF P_FLAG = 'SOLD' THEN --No Check for line level
6331 IF ( p_header = 'Y' ) THEN
6332 x_quote_header_rec.PARTY_ID := NULL;
6333 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
6334 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_QUOTE_CONTACT', TRUE);
6335 FND_MSG_PUB.ADD;
6336 END IF;
6337 END IF;
6338
6339 END IF;
6340 aso_debug_pub.add('Before Closing the Cursor...C_CONTACT_NAME', 1, 'Y');
6341 CLOSE C_CONTACT_NAME;
6342 aso_debug_pub.add('After Closing the Cursor...C_CONTACT_NAME', 1, 'Y');
6343 END VALIDATE_CONTACT ;
6344
6345
6346 --4): Validate Bill Ship Customer
6347 --PARTY NAME
6348 PROCEDURE VALIDATE_BILL_SHIP_CUSTOMER( p_cust_party_id varchar2,
6349 p_cust_acct_id varchar2,
6350 p_resource_id varchar2,
6351 p_flag varchar2,
6352 p_header varchar2
6353 ) IS
6354
6355 --CREATE OR REPLACE PROCEDURE ASO_SHIP_BILL_CUST_PARTY(p_cust_acct_id varchar2,p_flag varchar2) AS
6356 --:QOTHDDET_MAIN.sold_to_cust_party_id -->p_quote_header_record.CUST_PARTY_ID
6357 --QOTHDDET_MAIN.sold_to_cust_acct_id - > p_quote_header_rec.cust_account_id --> P_CUST_ACCT_ID
6358 -- p_flag possible values : BILL or SHIP
6359 -- p_header possible values : Y or N
6360
6361 Cursor C_Mgr_Check Is --to check the manager flag
6362 select 1 from DUAL where exists
6363 (
6364 SELECT MGR.group_id
6365 FROM jtf_rs_rep_managers MGR ,
6366 jtf_rs_group_usages U
6367 WHERE U.usage = 'SALES'
6368 AND U.group_id = MGR.group_id
6369 AND TRUNC(MGR.start_date_active) <= trunc(SYSDATE)
6370 AND TRUNC(NVL(MGR.end_date_active, SYSDATE) )>= trunc(SYSDATE)
6371 AND MGR.parent_resource_id = MGR.resource_id
6372 AND MGR.hierarchy_type in ('MGR_TO_MGR', 'MGR_TO_REP')
6373 AND MGR.parent_resource_id = p_resource_id
6374 );
6375
6376 --CURSOR C_INVOICE_TO_CUST_PARTY_NAME_FLD IS
6377 CURSOR C_INVOICE_TO_CUSTOMER IS
6378 --p_quote_header_rec.cust_account_id-->p_cust_acct_id
6379 SELECT 1 FROM DUAL WHERE EXISTS
6380 (
6381 SELECT hp.party_id --Removed HZ_CUST_ACCOUNTS ca
6382 FROM HZ_PARTIES hp
6383 WHERE hp.party_type in ('PERSON','ORGANIZATION')
6384 AND hp.party_id = p_cust_party_id
6385 AND hp.status = 'A'
6386 UNION
6387 SELECT hp.party_id
6388 FROM HZ_PARTIES hp,
6389 HZ_CUST_ACCT_RELATE car
6390 WHERE car.related_cust_account_id = p_cust_acct_id
6391 AND car.relationship_type = 'ALL'
6392 AND car.bill_to_flag = 'Y'
6393 AND hp.party_id = p_cust_party_id
6394 AND hp.party_type in ('PERSON','ORGANIZATION')
6395 AND hp.status = 'A'
6396 AND car.status = 'A'
6397 ) ;
6398
6399
6400 CURSOR C_SHIP_TO_CUSTOMER IS
6401 --CURSOR C_SHIP_TO_CUST_PARTY_NAME_FLD IS
6402 --p_quote_header_rec.cust_account_id-->p_cust_acct_id
6403 SELECT 1 FROM DUAL WHERE EXISTS
6404 (
6405 SELECT hp.party_id
6406 FROM HZ_PARTIES hp
6407 WHERE hp.party_id = p_cust_party_id
6408 AND hp.status = 'A'
6409 AND hp.party_type in ('PERSON','ORGANIZATION')
6410 UNION
6411 SELECT hp.party_id
6412 FROM HZ_PARTIES hp,
6413 HZ_CUST_ACCT_RELATE car
6414 WHERE car.related_cust_account_id = p_cust_acct_id
6415 AND car.relationship_type = 'ALL'
6416 AND car.ship_to_flag = 'Y'
6417 AND hp.party_id = p_cust_party_id
6418 AND hp.party_type in ('PERSON','ORGANIZATION')
6419 AND hp.status = 'A'
6420 AND car.status = 'A'
6421 );
6422
6423 -- When ASO_ENFORCE_ACCOUNT_RELATIONSHIPS = 'N' and ASN_CUST_ACCESS = T
6424 --CURSOR C_CUST_PARTY_NAME1 IS
6425 CURSOR C_CUSTOMER IS
6426 SELECT 1 FROM DUAL WHERE EXISTS
6427 (
6428 SELECT hp.party_id
6429 FROM HZ_PARTIES hp
6430 WHERE hp.party_type in ('PERSON','ORGANIZATION')
6431 AND hp.status = 'A'
6432 AND hp.party_id = p_cust_party_id --:QOTHDDET_MAIN.sold_to_cust_party_id
6433 ) ;
6434
6435 -- When ASO_ENFORCE_ACCOUNT_RELATIONSHIPS = 'N' and ASN_CUST_ACCESS = T and manager_flag = 'Y'
6436 --CURSOR C_CUST_PARTY_NAME2 IS
6437 CURSOR C_CUSTOMER_MANAGER IS
6438 SELECT 1 FROM DUAL WHERE EXISTS
6439 (
6440 select P.party_id
6441 from HZ_PARTIES P
6442 where P.status = 'A'
6443 AND P.party_id = p_cust_party_id
6444 AND EXISTS ( SELECT null
6445 FROM as_accesses_all secu
6446 WHERE secu.customer_id = P.party_id
6447 AND secu.sales_group_id in (
6448 SELECT jrgd.group_id
6449 FROM jtf_rs_groups_denorm jrgd,
6450 jtf_rs_group_usages jrgu
6451 WHERE jrgd.parent_group_id IN (
6452 select u.group_id
6453 from jtf_rs_rep_managers mgr,
6454 jtf_rs_group_usages u
6455 where mgr.parent_resource_id = p_resource_id
6456 and trunc(sysdate) between trunc(mgr.start_date_active)
6457 and trunc(nvl(mgr.end_date_active,sysdate))
6458 and mgr.hierarchy_type = 'MGR_TO_REP'
6459 and mgr.group_id = u.group_id
6460 and u.usage in ('SALES','PRM')
6461 )
6462 AND TRUNC(jrgd.start_date_active) <= TRUNC(SYSDATE)
6463 AND TRUNC(NVL(jrgd.end_date_active, SYSDATE) )>= TRUNC(SYSDATE)
6464 AND jrgu.group_id = jrgd.group_id
6465 AND jrgu.usage in ('SALES', 'PRM'))
6466 AND secu.lead_id IS NULL
6467 AND secu.sales_lead_id IS NULL
6468 UNION ALL
6469 SELECT null
6470 FROM as_accesses_all secu
6471 WHERE secu.customer_id = p.party_id
6472 AND secu.lead_id IS NULL
6473 AND secu.sales_lead_id IS NULL
6474 AND salesforce_id = p_resource_id
6475 )
6476 ) ;
6477
6478 -- When ASO_ENFORCE_ACCOUNT_RELATIONSHIPS = 'N' and ASN_CUST_ACCESS = T and manager_flag = 'N'
6479
6480 CURSOR C_CUSTOMER_NO_MANAGER IS
6481 SELECT 1 FROM DUAL WHERE EXISTS
6482 (
6483
6484 select P.status
6485 from HZ_PARTIES P
6486 where P.status = 'A'
6487 AND P.party_id = p_cust_party_id
6488 AND (exists (SELECT null
6489 FROM as_accesses_all secu
6490 WHERE secu.customer_id = p.party_id
6491 AND secu.lead_id IS NULL
6492 AND secu.sales_lead_id IS NULL
6493 AND salesforce_id = p_resource_id
6494 )
6495 )
6496 );
6497
6498 l_data_exists varchar2(10);
6499 l_manager_flag varchar2(1);
6500
6501 BEGIN
6502
6503 --Case:1 ==================================Enforced Account Relationship is set to 'Y'(Start)=========================================================
6504
6505 IF NVL(FND_PROFILE.value('ASO_ENFORCE_ACCOUNT_RELATIONSHIPS'),'N') = 'Y'
6506 AND p_cust_acct_id IS NOT NULL THEN
6507
6508 IF P_FLAG = 'BILL' THEN
6509 aso_debug_pub.add('Before Opening the cursor...C_INVOICE_TO_CUSTOMER', 1, 'Y');
6510 OPEN C_INVOICE_TO_CUSTOMER ;
6511 aso_debug_pub.add('Before Fetching the cursor...C_INVOICE_TO_CUSTOMER', 1, 'Y');
6512 FETCH C_INVOICE_TO_CUSTOMER INTO l_data_exists ;
6513
6514 IF C_INVOICE_TO_CUSTOMER%FOUND THEN
6515
6516 IF ( p_header = 'Y' ) THEN
6517 x_quote_header_rec.INVOICE_TO_CUST_PARTY_ID := p_cust_party_id;
6518 END IF;
6519
6520 IF ( p_header = 'N' ) THEN
6521 x_quote_line_rec.INVOICE_TO_CUST_PARTY_ID := p_cust_party_id;
6522 END IF;
6523
6524 ELSE --Assign Null
6525 IF ( p_header = 'Y' ) THEN
6526 x_quote_header_rec.INVOICE_TO_CUST_PARTY_ID := NULL ;
6527 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
6528 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_BILL_CUSTOMER', TRUE);
6529 FND_MSG_PUB.ADD;
6530 END IF;
6531
6532 IF ( p_header = 'N' ) THEN
6533 x_quote_line_rec.INVOICE_TO_CUST_PARTY_ID := NULL;
6534 END IF;
6535 aso_debug_pub.add('No Data Found for the cursor...C_INVOICE_TO_CUSTOMER', 1, 'Y');
6536 END IF;
6537 aso_debug_pub.add('Before Closing the cursor...C_INVOICE_TO_CUSTOMER', 1, 'Y');
6538 CLOSE C_INVOICE_TO_CUSTOMER;
6539 END IF ;
6540
6541 IF P_FLAG = 'SHIP' THEN
6542 aso_debug_pub.add('Before Opening the cursor...C_SHIP_TO_CUSTOMER', 1, 'Y');
6543 OPEN C_SHIP_TO_CUSTOMER ;
6544 aso_debug_pub.add('Before Fetching the cursor...C_SHIP_TO_CUSTOMER', 1, 'Y');
6545 FETCH C_SHIP_TO_CUSTOMER INTO l_data_exists ;
6546
6547 IF C_SHIP_TO_CUSTOMER%FOUND THEN
6548 IF ( p_header = 'Y' ) THEN
6549 x_shipment_header_rec.SHIP_TO_CUST_PARTY_ID := p_cust_party_id;
6550 END IF;
6551
6552 IF ( p_header = 'N' ) THEN
6553 x_shipment_line_rec.SHIP_TO_CUST_PARTY_ID := p_cust_party_id;
6554 END IF;
6555 ELSE
6556 IF ( p_header = 'Y' ) THEN
6557 x_shipment_header_rec.SHIP_TO_CUST_PARTY_ID := NULL;
6558 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
6559 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_SHIP_CUSTOMER', TRUE);
6560 FND_MSG_PUB.ADD;
6561 END IF;
6562
6563 IF ( p_header = 'N' ) THEN
6564 x_shipment_line_rec.SHIP_TO_CUST_PARTY_ID := NULL;
6565 END IF;
6566
6567 END IF;
6568 aso_debug_pub.add('Before Closing the cursor...C_SHIP_TO_CUSTOMER', 1, 'Y');
6569 CLOSE C_SHIP_TO_CUSTOMER ;
6570 aso_debug_pub.add('After Closing the cursor...C_SHIP_TO_CUSTOMER', 1, 'Y');
6571 END IF;
6572 END IF;
6573
6574 --Case:2==================================Enforced Account Relationship is set to 'N' =========================================================
6575
6576 IF NVL(FND_PROFILE.value('ASO_ENFORCE_ACCOUNT_RELATIONSHIPS'),'N') = 'N' THEN
6577 --Case 2a
6578 IF NVL(FND_PROFILE.VALUE('ASN_CUST_ACCESS'),'T') = 'F' THEN --Put the base query
6579 aso_debug_pub.add('Before Opening the cursor...C_CUSTOMER', 1, 'Y');
6580 OPEN C_CUSTOMER ;
6581 aso_debug_pub.add('Before Fetching the cursor...C_CUSTOMER', 1, 'Y');
6582 FETCH C_CUSTOMER INTO l_data_exists ;
6583
6584 IF C_CUSTOMER%FOUND THEN
6585
6586 IF P_FLAG = 'BILL' THEN
6587
6588 IF ( p_header = 'Y' ) THEN
6589 x_quote_header_rec.INVOICE_TO_CUST_PARTY_ID := p_cust_party_id;
6590 END IF;
6591
6592 IF ( p_header = 'N' ) THEN
6593 x_quote_line_rec.INVOICE_TO_CUST_PARTY_ID := p_cust_party_id;
6594 END IF;
6595
6596 END IF;
6597
6598 IF P_FLAG = 'SHIP' THEN
6599 IF ( p_header = 'Y' ) THEN
6600 x_shipment_header_rec.SHIP_TO_CUST_PARTY_ID := p_cust_party_id;
6601 END IF;
6602
6603 IF ( p_header = 'N' ) THEN
6604 x_shipment_line_rec.SHIP_TO_CUST_PARTY_ID := p_cust_party_id;
6605 END IF;
6606 END IF;
6607 ELSE --Assign Null
6608 IF P_FLAG = 'BILL' THEN
6609
6610 IF ( p_header = 'Y' ) THEN
6611 x_quote_header_rec.INVOICE_TO_CUST_PARTY_ID := NULL ;
6612 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
6613 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_BILL_CUSTOMER', TRUE);
6614 FND_MSG_PUB.ADD;
6615 END IF;
6616
6617 IF ( p_header = 'N' ) THEN
6618 x_quote_line_rec.INVOICE_TO_CUST_PARTY_ID := NULL;
6619 END IF;
6620
6621 END IF;
6622
6623 IF P_FLAG = 'SHIP' THEN
6624 IF ( p_header = 'Y' ) THEN
6625 x_shipment_header_rec.SHIP_TO_CUST_PARTY_ID := NULL;
6626 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
6627 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_SHIP_CUSTOMER', TRUE);
6628 FND_MSG_PUB.ADD;
6629 END IF;
6630
6631 IF ( p_header = 'N' ) THEN
6632 x_shipment_line_rec.SHIP_TO_CUST_PARTY_ID := NULL;
6633 END IF ;
6634 END IF ;
6635 aso_debug_pub.add('No Data found for the cursor...C_CUSTOMER', 1, 'Y');
6636 END IF ;
6637 aso_debug_pub.add('Before Closing the cursor...C_CUSTOMER', 1, 'Y');
6638 CLOSE C_CUSTOMER;
6639 END IF;
6640
6641 --Case 2b
6642
6643 IF NVL(FND_PROFILE.VALUE('ASN_CUST_ACCESS'),'T') = 'T' then --Check for the manager flag
6644
6645 OPEN C_Mgr_Check ; --Assigning the manager flag
6646 FETCH C_Mgr_Check INTO l_data_exists ;
6647 IF C_Mgr_Check%FOUND THEN
6648 l_manager_flag := 'Y';
6649 ELSE
6650 l_manager_flag := 'N';
6651 aso_debug_pub.add('No Data Found for Cursor...C_Mgr_Check', 1, 'Y');
6652 END IF ;
6653 CLOSE C_Mgr_Check ;
6654
6655 IF l_manager_flag = 'Y' THEN --New query for manager_flag = 'Y'
6656 aso_debug_pub.add('Before Opening the cursor...C_CUSTOMER_MANAGER', 1, 'Y');
6657 OPEN C_CUSTOMER_MANAGER;
6658 aso_debug_pub.add('Before Fetching the cursor...C_CUSTOMER_MANAGER', 1, 'Y');
6659 FETCH C_CUSTOMER_MANAGER INTO l_data_exists ;
6660 IF C_CUSTOMER_MANAGER%FOUND THEN
6661
6662 IF P_FLAG = 'BILL' THEN
6663
6664 IF ( p_header = 'Y' ) THEN
6665 x_quote_header_rec.INVOICE_TO_CUST_PARTY_ID := p_cust_party_id;
6666 END IF;
6667
6668 IF ( p_header = 'N' ) THEN
6669 x_quote_line_rec.INVOICE_TO_CUST_PARTY_ID := p_cust_party_id;
6670 END IF;
6671
6672 END IF;
6673
6674 IF P_FLAG = 'SHIP' THEN
6675 IF ( p_header = 'Y' ) THEN
6676 x_shipment_header_rec.SHIP_TO_CUST_PARTY_ID := p_cust_party_id;
6677 END IF;
6678
6679 IF ( p_header = 'N' ) THEN
6680 x_shipment_line_rec.SHIP_TO_CUST_PARTY_ID := p_cust_party_id;
6681 END IF;
6682 END IF;
6683 ELSE --Assign Null
6684 IF P_FLAG = 'BILL' THEN
6685
6686 IF ( p_header = 'Y' ) THEN
6687 x_quote_header_rec.INVOICE_TO_CUST_PARTY_ID := NULL ;
6688 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
6689 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_BILL_CUSTOMER', TRUE);
6690 FND_MSG_PUB.ADD;
6691 END IF;
6692
6693 IF ( p_header = 'N' ) THEN
6694 x_quote_line_rec.INVOICE_TO_CUST_PARTY_ID := NULL;
6695 END IF;
6696
6697 END IF;
6698
6699 IF P_FLAG = 'SHIP' THEN
6700 IF ( p_header = 'Y' ) THEN
6701 x_shipment_header_rec.SHIP_TO_CUST_PARTY_ID := NULL;
6702 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
6703 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_SHIP_CUSTOMER', TRUE);
6704 FND_MSG_PUB.ADD;
6705 END IF;
6706
6707 IF ( p_header = 'N' ) THEN
6708 x_shipment_line_rec.SHIP_TO_CUST_PARTY_ID := NULL;
6709 END IF ;
6710 END IF ;
6711 aso_debug_pub.add('No Data Found for the cursor...C_CUSTOMER_MANAGER', 1, 'Y');
6712 END IF ;
6713
6714 aso_debug_pub.add('Before Closing the cursor...C_CUSTOMER_MANAGER', 1, 'Y');
6715 CLOSE C_CUSTOMER_MANAGER;
6716 aso_debug_pub.add('After Closing the cursor...C_CUSTOMER_MANAGER', 1, 'Y');
6717
6718 END IF;
6719
6720
6721 IF l_manager_flag = 'N' THEN --New query for manager_flag = 'N'
6722 aso_debug_pub.add('Before Opening the cursor...C_CUSTOMER_NO_MANAGER', 1, 'Y');
6723 OPEN C_CUSTOMER_NO_MANAGER;
6724 aso_debug_pub.add('Before Fetching the cursor...C_CUSTOMER_NO_MANAGER', 1, 'Y');
6725 FETCH C_CUSTOMER_NO_MANAGER INTO l_data_exists ;
6726 IF C_CUSTOMER_NO_MANAGER%FOUND THEN
6727 IF P_FLAG = 'BILL' THEN
6728
6729 IF ( p_header = 'Y' ) THEN
6730 x_quote_header_rec.INVOICE_TO_CUST_PARTY_ID := p_cust_party_id;
6731 END IF;
6732
6733 IF ( p_header = 'N' ) THEN
6734 x_quote_line_rec.INVOICE_TO_CUST_PARTY_ID := p_cust_party_id;
6735 END IF;
6736
6737 END IF;
6738
6739 IF P_FLAG = 'SHIP' THEN
6740 IF ( p_header = 'Y' ) THEN
6741 x_shipment_header_rec.SHIP_TO_CUST_PARTY_ID := p_cust_party_id;
6742 END IF;
6743
6744 IF ( p_header = 'N' ) THEN
6745 x_shipment_line_rec.SHIP_TO_CUST_PARTY_ID := p_cust_party_id;
6746 END IF;
6747 END IF;
6748 ELSE --Assign Null
6749 IF P_FLAG = 'BILL' THEN
6750
6751 IF ( p_header = 'Y' ) THEN
6752 x_quote_header_rec.INVOICE_TO_CUST_PARTY_ID := NULL ;
6753 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
6754 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_BILL_CUSTOMER', TRUE);
6755 FND_MSG_PUB.ADD;
6756 END IF;
6757
6758 IF ( p_header = 'N' ) THEN
6759 x_quote_line_rec.INVOICE_TO_CUST_PARTY_ID := NULL;
6760 END IF;
6761
6762 END IF;
6763
6764 IF P_FLAG = 'SHIP' THEN
6765 IF ( p_header = 'Y' ) THEN
6766 x_shipment_header_rec.SHIP_TO_CUST_PARTY_ID := NULL;
6767 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
6768 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_SHIP_CUSTOMER', TRUE);
6769 FND_MSG_PUB.ADD;
6770 END IF;
6771
6772 IF ( p_header = 'N' ) THEN
6773 x_shipment_line_rec.SHIP_TO_CUST_PARTY_ID := NULL;
6774 END IF ;
6775 END IF ;
6776 aso_debug_pub.add('No Data Found for the cursor...C_CUSTOMER_NO_MANAGER', 1, 'Y');
6777 END IF;
6778 aso_debug_pub.add('Before closing the cursor...C_CUSTOMER_NO_MANAGER', 1, 'Y');
6779 CLOSE C_CUSTOMER_NO_MANAGER;
6780 aso_debug_pub.add('After closing the cursor...C_CUSTOMER_NO_MANAGER', 1, 'Y');
6781
6782 END IF;
6783 END if;
6784 END IF;
6785
6786 END VALIDATE_BILL_SHIP_CUSTOMER;
6787 --5): Validate Bill Ship Account
6788
6789 PROCEDURE VALIDATE_BILL_SHIP_ACCOUNT(
6790 p_cust_acct_id VARCHAR2,
6791 p_cust_party_id VARCHAR2,
6792 p_resource_id VARCHAR2,
6793 p_sold_to_cust_acct_id VARCHAR2,
6794 p_flag VARCHAR2,
6795 p_header VARCHAR2
6796 ) IS
6797
6798 --:QOTHDDET_MAIN.sold_to_cust_party_id -->p_quote_header_record.CUST_PARTY_ID
6799 --QOTHDDET_MAIN.sold_to_cust_acct_id - > p_quote_header_rec.cust_account_id --> P_CUST_ACCT_ID
6800 --p_flag is the parameter to differentiate between bill to and ship to
6801 -- p_flag possible values : BILL or SHIP
6802 -- p_header possible values : Y or N
6803
6804 Cursor C_Mgr_Check Is --to check the manager flag
6805 select 1 from dual where exists
6806 (
6807 SELECT MGR.group_id
6808 FROM jtf_rs_rep_managers MGR ,
6809 jtf_rs_group_usages U
6810 WHERE U.usage = 'SALES'
6811 AND U.group_id = MGR.group_id
6812 AND trunc(MGR.start_date_active) <= trunc(SYSDATE)
6813 AND trunc(NVL(MGR.end_date_active, SYSDATE)) >= trunc(SYSDATE)
6814 AND MGR.parent_resource_id = MGR.resource_id
6815 AND MGR.hierarchy_type in ('MGR_TO_MGR', 'MGR_TO_REP')
6816 AND MGR.parent_resource_id = p_resource_id
6817 );
6818
6819 CURSOR C_INVOICE_TO_CUST_ACCOUNT IS
6820 --p_quote_header_rec.cust_account_id-->p_cust_acct_id
6821 --SELECT 1 FROM DUAL WHERE EXISTS
6822 --(
6823 -- SELECT ca.account_number
6824 -- FROM HZ_PARTIES hp,
6825 -- HZ_CUST_ACCOUNTS ca,
6826 -- HZ_CUST_ACCT_RELATE car
6827 -- WHERE hp.party_id = ca.party_id
6828 -- AND ((car.related_cust_account_id = p_sold_to_cust_acct_id
6829 -- AND car.cust_account_id = ca.cust_account_id
6830 -- AND car.relationship_type = 'ALL'
6831 -- AND car.bill_to_flag = 'Y')
6832 -- OR ca.cust_account_id = p_sold_to_cust_acct_id )
6833 -- AND hp.party_id = p_cust_party_id
6834 -- AND ca.cust_account_id = p_cust_acct_id
6835 -- AND hp.party_type in ('PERSON','ORGANIZATION')
6836 -- AND hp.status = 'A'
6837 -- AND ca.status = 'A'
6838 -- AND trunc(nvl(ca.account_activation_date,sysdate)) <= trunc(sysdate)
6839 -- AND trunc(nvl(ca.account_termination_date,sysdate)) >= trunc(sysdate)
6840 -- AND car.status = 'A'
6841 --) ;
6842 SELECT 1 FROM DUAL WHERE EXISTS
6843 (
6844 SELECT ca.account_number
6845 FROM HZ_PARTIES hp,
6846 HZ_CUST_ACCOUNTS ca,
6847 HZ_CUST_ACCT_RELATE car
6848 WHERE hp.party_id = ca.party_id
6849 AND car.related_cust_account_id = p_sold_to_cust_acct_id
6850 AND car.cust_account_id = ca.cust_account_id
6851 AND car.relationship_type = 'ALL'
6852 AND car.ship_to_flag = 'Y'
6853 AND hp.party_id = p_cust_party_id
6854 AND ca.cust_account_id = p_cust_acct_id
6855 AND hp.party_type in ('PERSON','ORGANIZATION')
6856 AND hp.status = 'A'
6857 AND ca.status = 'A'
6858 AND trunc(nvl(ca.account_activation_date,sysdate)) <= trunc(sysdate)
6859 AND trunc(nvl(ca.account_termination_date,sysdate)) >= trunc(sysdate)
6860 AND car.status = 'A'
6861 UNION
6862 SELECT ca.account_number
6863 FROM HZ_PARTIES hp,
6864 HZ_CUST_ACCOUNTS ca
6865 WHERE hp.party_id = ca.party_id
6866 AND ca.cust_account_id = p_sold_to_cust_acct_id
6867 AND hp.party_id = p_cust_party_id
6868 AND ca.cust_account_id = p_cust_acct_id
6869 AND hp.party_type in ('PERSON','ORGANIZATION')
6870 AND hp.status = 'A'
6871 AND ca.status = 'A'
6872 AND trunc(nvl(ca.account_activation_date,sysdate)) <= trunc(sysdate)
6873 AND trunc(nvl(ca.account_termination_date,sysdate)) >= trunc(sysdate)
6874 );
6875
6876
6877
6878 CURSOR C_SHIP_TO_CUST_ACCOUNT IS
6879 --p_quote_header_rec.cust_account_id-->p_cust_acct_id
6880 --SELECT 1 FROM DUAL WHERE EXISTS
6881 --(
6882 -- SELECT ca.account_number
6883 -- FROM HZ_PARTIES hp,
6884 -- HZ_CUST_ACCOUNTS ca,
6885 -- HZ_CUST_ACCT_RELATE car
6886 -- WHERE hp.party_id = ca.party_id
6887 -- AND ((car.related_cust_account_id = p_sold_to_cust_acct_id
6888 -- AND car.cust_account_id = ca.cust_account_id
6889 -- AND car.relationship_type = 'ALL'
6890 -- AND car.ship_to_flag = 'Y')
6891 -- OR ca.cust_account_id = p_sold_to_cust_acct_id )
6892 -- AND hp.party_id = p_cust_party_id
6893 -- AND ca.cust_account_id = p_cust_acct_id
6894 -- AND hp.party_type in ('PERSON','ORGANIZATION')
6895 -- AND hp.status = 'A'
6896 -- AND ca.status = 'A'
6897 -- AND trunc(nvl(ca.account_activation_date,sysdate)) <= trunc(sysdate)
6898 -- AND trunc(nvl(ca.account_termination_date,sysdate)) >= trunc(sysdate)
6899 -- AND car.status = 'A'
6900 --) ;
6901 SELECT ca.account_number
6902 FROM HZ_PARTIES hp,
6903 HZ_CUST_ACCOUNTS ca,
6904 HZ_CUST_ACCT_RELATE car
6905 WHERE hp.party_id = ca.party_id
6906 AND car.related_cust_account_id = p_sold_to_cust_acct_id
6907 AND car.status = 'A'
6908 AND ca.cust_account_id = car.cust_account_id
6909 AND car.relationship_type = 'ALL'
6910 AND car.ship_to_flag = 'Y'
6911 AND hp.party_id = p_cust_party_id
6912 AND ca.cust_account_id = p_cust_acct_id
6913 AND hp.party_type in ('PERSON','ORGANIZATION')
6914 AND hp.status = 'A'
6915 AND ca.status = 'A'
6916 UNION
6917 SELECT ca.account_number
6918 FROM HZ_PARTIES hp,
6919 HZ_CUST_ACCOUNTS ca
6920 WHERE hp.party_id = ca.party_id
6921 AND ca.cust_account_id = p_sold_to_cust_acct_id
6922 AND hp.party_id = p_cust_party_id
6923 AND ca.cust_account_id = p_cust_acct_id
6924 AND hp.party_type in ('PERSON','ORGANIZATION')
6925 AND hp.status = 'A'
6926 AND ca.status = 'A'
6927 AND trunc(nvl(ca.account_activation_date,sysdate)) <= trunc(sysdate)
6928 AND trunc(nvl(ca.account_termination_date,sysdate)) >= trunc(sysdate) ;
6929
6930
6931 -- When ASO_ENFORCE_ACCOUNT_RELATIONSHIPS = 'N' and ASN_CUST_ACCESS = F
6932 CURSOR C_CUST_ACCOUNT IS
6933 SELECT 1 FROM DUAL WHERE EXISTS
6934 (
6935 SELECT ca.account_number
6936 FROM HZ_PARTIES hp,
6937 HZ_CUST_ACCOUNTS ca
6938 WHERE hp.party_id = ca.party_id
6939 AND hp.party_type in ('PERSON','ORGANIZATION')
6940 AND hp.status = 'A'
6941 AND ca.status = 'A'
6942 AND hp.party_id = p_cust_party_id
6943 AND CA.CUST_ACCOUNT_ID = p_cust_acct_id
6944 AND trunc(nvl(ca.account_activation_date,sysdate)) <= trunc(sysdate)
6945 AND trunc(nvl(ca.account_termination_date,sysdate)) >= trunc(sysdate)
6946 ) ;
6947
6948 -- When ASO_ENFORCE_ACCOUNT_RELATIONSHIPS = 'N' and ASN_CUST_ACCESS = T and manager_flag = 'Y'
6949
6950 CURSOR C_CUST_ACCOUNT_MANAGER IS
6951 SELECT 1 FROM DUAL WHERE EXISTS
6952 (
6953 select null
6954 from HZ_PARTIES P
6955 ,HZ_CUST_ACCOUNTS CA
6956 where CA.status = 'A'
6957 AND p.party_type in ('PERSON','ORGANIZATION')
6958 AND P.party_id = p_cust_party_id
6959 AND P.status = 'A'
6960 AND P.party_id = CA.party_id
6961 AND CA.CUST_ACCOUNT_ID = p_cust_acct_id
6962 AND EXISTS ( SELECT null
6963 FROM as_accesses_all_all secu
6964 WHERE secu.customer_id = P.party_id
6965 AND secu.lead_id IS NULL
6966 AND secu.sales_lead_id IS NULL
6967 AND secu.delete_flag is NULL
6968 and secu.sales_group_id in (
6969 SELECT jrgd.group_id
6970 FROM jtf_rs_groups_denorm jrgd,
6971 jtf_rs_group_usages jrgu
6972 WHERE jrgd.parent_group_id IN (
6973 select u.group_id
6974 from jtf_rs_rep_managers mgr,
6975 jtf_rs_group_usages u
6976 where mgr.parent_resource_id = p_resource_id
6977 and trunc(sysdate) between trunc(mgr.start_date_active)
6978 and trunc(nvl(mgr.end_date_active,sysdate))
6979 and mgr.hierarchy_type = 'MGR_TO_REP'
6980 and mgr.group_id = u.group_id
6981 and u.usage in ('SALES','PRM')
6982 )
6983 AND trunc(jrgd.start_date_active) <= TRUNC(SYSDATE)
6984 AND trunc(NVL(jrgd.end_date_active, SYSDATE)) >= TRUNC(SYSDATE)
6985 AND jrgu.group_id = jrgd.group_id
6986 AND jrgu.usage in ('SALES', 'PRM')))
6987 UNION ALL
6988 SELECT null
6989 FROM as_accesses_all_all secu,
6990 HZ_PARTIES P
6991 WHERE secu.customer_id = P.party_id
6992 AND secu.lead_id IS NULL
6993 AND secu.sales_lead_id IS NULL
6994 AND secu.delete_flag is NULL
6995 AND salesforce_id = p_resource_id
6996
6997 ) ;
6998
6999 -- When ASO_ENFORCE_ACCOUNT_RELATIONSHIPS = 'N' and ASN_CUST_ACCESS = T and manager_flag = 'N'
7000
7001 CURSOR C_CUST_ACCOUNT_NO_MANAGER IS
7002 SELECT 1 FROM DUAL WHERE EXISTS
7003 (
7004
7005 select CA.account_number
7006 from HZ_PARTIES HP ,
7007 HZ_CUST_ACCOUNTS CA
7008 where CA.status = 'A'
7009 AND trunc(nvl(CA.account_activation_date, SYSDATE)) <= trunc(SYSDATE)
7010 AND trunc(nvl(CA.account_termination_date, SYSDATE)) >= trunc(SYSDATE)
7011 AND HP.status = 'A'
7012 AND HP.party_id = CA.party_id
7013 AND hp.party_type in ('PERSON','ORGANIZATION')
7014 AND HP.party_id = p_cust_party_id
7015 AND CA.cust_account_id = p_cust_acct_id
7016 AND (exists (SELECT null
7017 FROM as_accesses_all secu
7018 WHERE secu.customer_id = hp.party_id
7019 AND secu.lead_id IS NULL
7020 AND secu.sales_lead_id IS NULL
7021 AND salesforce_id = p_resource_id
7022 )
7023 )
7024
7025 );
7026
7027 l_data_exists varchar2(10);
7028 l_manager_flag varchar2(1);
7029
7030 BEGIN
7031
7032 --Case:1 ==================================Enforced Account Relationship is set to 'Y'(Start)=========================================================
7033 IF NVL(FND_PROFILE.value('ASO_ENFORCE_ACCOUNT_RELATIONSHIPS'),'N') = 'Y' then
7034
7035 IF P_FLAG = 'BILL' THEN
7036 aso_debug_pub.add('Before opening the cursor...C_INVOICE_TO_CUST_ACCOUNT', 1, 'Y');
7037 OPEN C_INVOICE_TO_CUST_ACCOUNT;
7038 aso_debug_pub.add('Before Fetching the cursor...C_INVOICE_TO_CUST_ACCOUNT', 1, 'Y');
7039 FETCH C_INVOICE_TO_CUST_ACCOUNT INTO l_data_exists ;
7040
7041 IF C_INVOICE_TO_CUST_ACCOUNT%FOUND THEN
7042 IF ( p_header = 'Y' ) THEN
7043 x_quote_header_rec.invoice_to_cust_account_id := p_cust_acct_id;
7044 END IF;
7045 IF ( p_header = 'N' ) THEN
7046 x_quote_line_rec.invoice_to_cust_account_id := p_cust_acct_id;
7047 END IF;
7048 ELSE
7049 IF ( p_header = 'Y' ) THEN
7050 x_quote_header_rec.invoice_to_cust_account_id := NULL;
7051 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
7052 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_BILL_ACCOUNT', TRUE);
7053 FND_MSG_PUB.ADD;
7054 END IF;
7055 IF ( p_header = 'N' ) THEN
7056 x_quote_line_rec.invoice_to_cust_account_id := NULL;
7057 END IF;
7058 aso_debug_pub.add('No Data found for the cursor...C_INVOICE_TO_CUST_ACCOUNT', 1, 'Y');
7059 END IF;
7060 aso_debug_pub.add('Before closing the cursor...C_INVOICE_TO_CUST_ACCOUNT', 1, 'Y');
7061 CLOSE C_INVOICE_TO_CUST_ACCOUNT;
7062 aso_debug_pub.add('After closing the cursor...C_INVOICE_TO_CUST_ACCOUNT', 1, 'Y');
7063
7064 END IF;
7065
7066
7067 IF P_FLAG = 'SHIP' THEN
7068 aso_debug_pub.add('Before Opening the cursor...C_SHIP_TO_CUST_ACCOUNT', 1, 'Y');
7069 OPEN C_SHIP_TO_CUST_ACCOUNT;
7070 aso_debug_pub.add('Before Fetching the cursor...C_SHIP_TO_CUST_ACCOUNT', 1, 'Y');
7071 FETCH C_SHIP_TO_CUST_ACCOUNT INTO l_data_exists ;
7072
7073 IF C_SHIP_TO_CUST_ACCOUNT%FOUND THEN
7074 IF ( p_header = 'Y' ) THEN
7075 x_shipment_header_rec.ship_to_cust_account_id := p_cust_acct_id;
7076 END IF;
7077 IF ( p_header = 'N' ) THEN
7078 x_shipment_line_rec.ship_to_cust_account_id := p_cust_acct_id;
7079 END IF;
7080 ELSE
7081 IF ( p_header = 'Y' ) THEN
7082 x_shipment_header_rec.ship_to_cust_account_id := NULL;
7083 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
7084 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_SHIP_ACCOUNT', TRUE);
7085 FND_MSG_PUB.ADD;
7086 END IF;
7087 IF ( p_header = 'N' ) THEN
7088 x_shipment_line_rec.ship_to_cust_account_id := NULL;
7089 END IF;
7090 aso_debug_pub.add('No Data Found for the cursor...C_SHIP_TO_CUST_ACCOUNT', 1, 'Y');
7091 END IF;
7092 aso_debug_pub.add('Before Closing the cursor...C_SHIP_TO_CUST_ACCOUNT', 1, 'Y');
7093 CLOSE C_SHIP_TO_CUST_ACCOUNT;
7094 aso_debug_pub.add('After Closing the cursor...C_SHIP_TO_CUST_ACCOUNT', 1, 'Y');
7095
7096
7097 END IF;
7098 END IF;
7099 --Case:2==================================Enforced Account Relationship is set to 'N' =========================================================
7100
7101 IF NVL(FND_PROFILE.value('ASO_ENFORCE_ACCOUNT_RELATIONSHIPS'),'N') = 'N' THEN
7102
7103 --Case 2a
7104 IF NVL(FND_PROFILE.VALUE('ASN_CUST_ACCESS'),'T') = 'F' THEN --Put the base query
7105 aso_debug_pub.add('Before Opening the cursor...C_CUST_ACCOUNT', 1, 'Y');
7106 OPEN C_CUST_ACCOUNT;
7107 aso_debug_pub.add('Before Fetching the cursor...C_CUST_ACCOUNT', 1, 'Y');
7108 FETCH C_CUST_ACCOUNT INTO l_data_exists ;
7109 IF C_CUST_ACCOUNT%FOUND THEN
7110 IF ( p_flag = 'BILL') THEN
7111 IF ( p_header = 'Y' ) THEN
7112 x_quote_header_rec.invoice_to_cust_account_id := p_cust_acct_id;
7113 END IF;
7114
7115 IF ( p_header = 'N' ) THEN
7116 x_quote_line_rec.invoice_to_cust_account_id := p_cust_acct_id;
7117 END IF;
7118 END IF;
7119
7120 IF ( p_flag = 'SHIP') THEN
7121 IF ( p_header = 'Y' ) THEN
7122 x_shipment_header_rec.ship_to_cust_account_id := p_cust_acct_id;
7123 END IF;
7124
7125 IF ( p_header = 'N' ) THEN
7126 x_shipment_line_rec.ship_to_cust_account_id := p_cust_acct_id;
7127 END IF;
7128 END IF;
7129
7130 ELSE
7131 IF ( p_flag = 'BILL') THEN
7132 IF ( p_header = 'Y' ) THEN
7133 x_quote_header_rec.invoice_to_cust_account_id := NULL;
7134 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
7135 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_BILL_ACCOUNT', TRUE);
7136 FND_MSG_PUB.ADD;
7137 END IF;
7138 IF ( p_header = 'N' ) THEN
7139 x_quote_line_rec.invoice_to_cust_account_id := NULL;
7140 END IF;
7141 END IF;
7142 IF ( p_flag = 'SHIP') THEN
7143 IF ( p_header = 'Y' ) THEN
7144 x_shipment_header_rec.ship_to_cust_account_id := NULL;
7145 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
7146 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_SHIP_ACCOUNT', TRUE);
7147 FND_MSG_PUB.ADD;
7148 END IF;
7149 IF ( p_header = 'N' ) THEN
7150 x_shipment_line_rec.ship_to_cust_account_id := NULL;
7151 END IF;
7152 END IF;
7153 aso_debug_pub.add('No Data Found for the cursor the cursor...C_CUST_ACCOUNT', 1, 'Y');
7154 END IF;
7155 aso_debug_pub.add('Before closing the cursor...C_CUST_ACCOUNT', 1, 'Y');
7156 CLOSE C_CUST_ACCOUNT;
7157 aso_debug_pub.add('After closing the cursor...C_CUST_ACCOUNT', 1, 'Y');
7158
7159 END IF;
7160
7161 --Case 2b
7162 IF NVL(FND_PROFILE.VALUE('ASN_CUST_ACCESS'),'T') = 'T' then --Check for the manager flag
7163
7164 OPEN C_Mgr_Check ; --Assigning the manager flag
7165 FETCH C_Mgr_Check INTO l_data_exists ;
7166
7167 IF C_Mgr_Check%FOUND THEN
7168 l_manager_flag := 'Y';
7169 ELSE
7170 l_manager_flag := 'N';
7171 aso_debug_pub.add('No Data Found for Cursor...C_Mgr_Check', 1, 'Y');
7172 END IF;
7173
7174 CLOSE C_Mgr_Check;
7175
7176 IF l_manager_flag = 'Y' THEN --New query for manager_flag = 'Y'
7177 aso_debug_pub.add('Before opening the cursor...C_CUST_ACCOUNT_MANAGER', 1, 'Y');
7178 OPEN C_CUST_ACCOUNT_MANAGER;
7179 aso_debug_pub.add('Before fetching the cursor...C_CUST_ACCOUNT_MANAGER', 1, 'Y');
7180 FETCH C_CUST_ACCOUNT_MANAGER INTO l_data_exists ;
7181 IF C_CUST_ACCOUNT_MANAGER%FOUND THEN
7182 IF ( p_flag = 'BILL') THEN
7183 IF ( p_header = 'Y' ) THEN
7184 x_quote_header_rec.invoice_to_cust_account_id := p_cust_acct_id;
7185 END IF;
7186 IF ( p_header = 'N' ) THEN
7187 x_quote_line_rec.invoice_to_cust_account_id := p_cust_acct_id;
7188 END IF;
7189 END IF;
7190
7191 IF ( p_flag = 'SHIP') THEN
7192 IF ( p_header = 'Y' ) THEN
7193 x_shipment_header_rec.ship_to_cust_account_id := p_cust_acct_id;
7194 END IF;
7195 IF ( p_header = 'N' ) THEN
7196 x_shipment_line_rec.ship_to_cust_account_id := p_cust_acct_id;
7197 END IF;
7198 END IF;
7199 ELSE
7200 IF ( p_flag = 'BILL') THEN
7201 IF ( p_header = 'Y' ) THEN
7202 x_quote_header_rec.invoice_to_cust_account_id := NULL;
7203 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
7204 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_BILL_ACCOUNT', TRUE);
7205 FND_MSG_PUB.ADD;
7206 END IF;
7207 IF ( p_header = 'N' ) THEN
7208 x_quote_line_rec.invoice_to_cust_account_id := NULL;
7209 END IF;
7210 END IF;
7211
7212 IF ( p_flag = 'SHIP') THEN
7213 IF ( p_header = 'Y' ) THEN
7214 x_shipment_header_rec.ship_to_cust_account_id := NULL;
7215 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
7216 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_SHIP_ACCOUNT', TRUE);
7217 FND_MSG_PUB.ADD;
7218 END IF;
7219 IF ( p_header = 'N' ) THEN
7220 x_shipment_line_rec.ship_to_cust_account_id := NULL;
7221 END IF;
7222 END IF;
7223 aso_debug_pub.add('No Data Found for the cursor...C_CUST_ACCOUNT_MANAGER', 1, 'Y');
7224
7225 END IF;
7226 aso_debug_pub.add('Before closing the cursor...C_CUST_ACCOUNT_MANAGER', 1, 'Y');
7227 CLOSE C_CUST_ACCOUNT_MANAGER;
7228 aso_debug_pub.add('After closing the cursor...C_CUST_ACCOUNT_MANAGER', 1, 'Y');
7229
7230 END IF;
7231
7232 IF l_manager_flag = 'N' THEN --New query for manager_flag = 'N'
7233 aso_debug_pub.add('Before opening the cursor...C_CUST_ACCOUNT_MANAGER', 1, 'Y');
7234 OPEN C_CUST_ACCOUNT_NO_MANAGER;
7235 aso_debug_pub.add('Before fetching the cursor...C_CUST_ACCOUNT_MANAGER', 1, 'Y');
7236 FETCH C_CUST_ACCOUNT_NO_MANAGER INTO l_data_exists ;
7237 IF C_CUST_ACCOUNT_NO_MANAGER%FOUND THEN
7238 IF ( p_flag = 'BILL') THEN
7239 IF ( p_header = 'Y' ) THEN
7240 x_quote_header_rec.invoice_to_cust_account_id := p_cust_acct_id;
7241 END IF;
7242 IF ( p_header = 'N' ) THEN
7243 x_quote_line_rec.invoice_to_cust_account_id := p_cust_acct_id;
7244 END IF;
7245 END IF;
7246
7247 IF ( p_flag = 'SHIP') THEN
7248 IF ( p_header = 'Y' ) THEN
7249 x_shipment_header_rec.ship_to_cust_account_id := p_cust_acct_id;
7250 END IF;
7251
7252 IF ( p_header = 'N' ) THEN
7253 x_shipment_line_rec.ship_to_cust_account_id := p_cust_acct_id;
7254 END IF;
7255 END IF;
7256 ELSE
7257 IF ( p_flag = 'BILL') THEN
7258 IF ( p_header = 'Y' ) THEN
7259 x_quote_header_rec.invoice_to_cust_account_id := NULL;
7260 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
7261 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_BILL_ACCOUNT', TRUE);
7262 FND_MSG_PUB.ADD;
7263 END IF;
7264 IF ( p_header = 'N' ) THEN
7265 x_quote_line_rec.invoice_to_cust_account_id := NULL;
7266 END IF;
7267 END IF;
7268
7269 IF ( p_flag = 'SHIP') THEN
7270 IF ( p_header = 'Y' ) THEN
7271 x_shipment_header_rec.ship_to_cust_account_id := NULL;
7272 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
7273 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_SHIP_ACCOUNT', TRUE);
7274 FND_MSG_PUB.ADD;
7275 END IF;
7276
7277 IF ( p_header = 'N' ) THEN
7278 x_shipment_line_rec.ship_to_cust_account_id := NULL;
7279 END IF;
7280 END IF;
7281 aso_debug_pub.add('No Data Found for the cursor...C_CUST_ACCOUNT_MANAGER', 1, 'Y');
7282 END IF;
7283 aso_debug_pub.add('Before closing the cursor...C_CUST_ACCOUNT_MANAGER', 1, 'Y');
7284 CLOSE C_CUST_ACCOUNT_NO_MANAGER;
7285 aso_debug_pub.add('After closing the cursor...C_CUST_ACCOUNT_MANAGER', 1, 'Y');
7286
7287
7288 END IF;
7289 END IF;
7290 END IF;
7291
7292 END VALIDATE_BILL_SHIP_ACCOUNT ;
7293
7294
7295 --6): Validate Address
7296 PROCEDURE VALIDATE_ADDRESS( p_party_site_id VARCHAR2,
7297 p_party_id VARCHAR2,
7298 p_cust_party_id VARCHAR2,
7299 p_flag VARCHAR2,
7300 p_header VARCHAR2
7301 ) is
7302
7303 --parameters
7304 --party id can be bill to ,ship to or end customer
7305 --party_site_id is the party address
7306 --hd_sold_to_cust_party_id --> l_quote_header_rec.cust_party_id --> p_cust_party_id
7307 --hd_ship_to_party_id --> l_quote_header_rec.PARTY_ID --> P_PARTY_ID
7308 -- p_flag possible values : BILL/SHIP/END/SOLD
7309 -- p_header possible values : Y or N
7310
7311 l_data_exists VARCHAR2(10) ;
7312
7313 CURSOR C_PARTY_ADDRESS IS
7314 SELECT 1 FROM DUAL WHERE EXISTS
7315 (
7316 SELECT site.party_site_id
7317 FROM HZ_PARTIES hp,
7318 HZ_PARTY_SITES site
7319 WHERE site.party_id = hp.party_id
7320 AND site.PARTY_SITE_ID = p_party_site_id --Added join for party_site_id
7321 AND hp.status = 'A'
7322 AND site.status = 'A'
7323 AND hp.party_id in (p_party_id,p_cust_party_id)
7324 );
7325
7326 --CURSOR C_PARTY_ADDRESS2 IS
7327 CURSOR C_CUST_PARTY_ADDRESS_NOT_NULL IS
7328 SELECT 1 FROM DUAL WHERE EXISTS
7329 (
7330 SELECT site.party_site_id
7331 FROM HZ_PARTIES hp,
7332 HZ_PARTY_SITES site
7333 WHERE site.party_id = hp.party_id
7334 AND site.PARTY_SITE_ID = p_party_site_id --Added join for party_site_id
7335 AND hp.status = 'A'
7336 AND site.status = 'A'
7337 AND hp.party_id = p_cust_party_id
7338 );
7339
7340 --CURSOR C_PARTY_ADDRESS3 IS
7341 CURSOR C_CUSTOMER_ADDRESS_NOT_NULL IS
7342 SELECT 1 FROM DUAL WHERE EXISTS
7343 (
7344
7345 SELECT site.party_site_id
7346 FROM HZ_PARTIES hp,
7347 HZ_PARTY_SITES site
7348 WHERE site.party_id = hp.party_id
7349 AND site.PARTY_SITE_ID = p_party_site_id --Added join for party_site_id
7350 AND hp.status = 'A'
7351 AND site.status = 'A'
7352 AND hp.party_id = p_party_id
7353
7354
7355 );
7356
7357 BEGIN
7358 --Case 1 : IF lv_cust_party_id is not null and lv_party_id is not null (p_cust_party_id and p_party_id)
7359
7360 IF p_party_id IS NOT NULL AND p_cust_party_id IS NOT NULL THEN
7361 aso_debug_pub.add('Before opening the cursor...C_CUST_ACCOUNT_MANAGER', 1, 'Y');
7362 OPEN C_PARTY_ADDRESS ;
7363 aso_debug_pub.add('Before fetching the cursor...C_CUST_ACCOUNT_MANAGER', 1, 'Y');
7364 FETCH C_PARTY_ADDRESS INTO l_data_exists ;
7365 IF C_PARTY_ADDRESS%FOUND THEN
7366 --Case:1 BILL
7367 IF P_FLAG = 'BILL' THEN
7368 IF ( p_header = 'Y' ) THEN
7369 x_quote_header_rec.INVOICE_TO_PARTY_SITE_ID := p_party_site_id;
7370 END IF;
7371
7372 IF ( p_header = 'N' ) THEN
7373 x_quote_line_rec.INVOICE_TO_PARTY_SITE_ID := p_party_site_id;
7374 END IF;
7375 END IF;
7376 --Case:2 SHIP
7377 IF P_FLAG = 'SHIP' THEN
7378 IF ( p_header = 'Y' ) THEN
7379 x_shipment_header_rec.SHIP_TO_PARTY_SITE_ID := p_party_site_id;
7380 END IF;
7381
7382 IF ( p_header = 'N' ) THEN
7383 x_shipment_line_rec.SHIP_TO_PARTY_SITE_ID := p_party_site_id;
7384 END IF;
7385 END IF;
7386 --Case:3 END
7387 IF P_FLAG = 'END' THEN
7388 IF ( p_header = 'Y' ) THEN
7389 x_quote_header_rec.END_CUSTOMER_PARTY_SITE_ID := p_party_site_id;
7390 END IF;
7391
7392 IF ( p_header = 'N' ) THEN
7393 x_quote_line_rec.END_CUSTOMER_PARTY_SITE_ID := p_party_site_id;
7394 END IF;
7395 END IF;
7396 --Case:4 SOLD
7397 IF P_FLAG = 'SOLD' THEN
7398 IF ( p_header = 'Y' ) THEN
7399 x_quote_header_rec.SOLD_TO_PARTY_SITE_ID := p_party_site_id;
7400 END IF;
7401 END IF;
7402 ELSE --Set all values to NULL
7403 --Case:1 BILL
7404 IF P_FLAG = 'BILL' THEN
7405 IF ( p_header = 'Y' ) THEN
7406 x_quote_header_rec.INVOICE_TO_PARTY_SITE_ID := NULL;
7407 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
7408 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_BILL_ADDRESS', TRUE);
7409 FND_MSG_PUB.ADD;
7410 END IF;
7411
7412 IF ( p_header = 'N' ) THEN
7413 x_quote_line_rec.INVOICE_TO_PARTY_SITE_ID := NULL;
7414 END IF;
7415 END IF;
7416 --Case:2 SHIP
7417 IF P_FLAG = 'SHIP' THEN
7418 IF ( p_header = 'Y' ) THEN
7419 x_shipment_header_rec.SHIP_TO_PARTY_SITE_ID := NULL;
7420 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
7421 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_SHIP_ADDRESS', TRUE);
7422 FND_MSG_PUB.ADD;
7423 END IF;
7424
7425 IF ( p_header = 'N' ) THEN
7426 x_shipment_line_rec.SHIP_TO_PARTY_SITE_ID := NULL;
7427 END IF;
7428 END IF;
7429 --Case:3 END
7430 IF P_FLAG = 'END' THEN
7431 IF ( p_header = 'Y' ) THEN
7432 x_quote_header_rec.END_CUSTOMER_PARTY_SITE_ID := NULL;
7433 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
7434 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_END_ADDRESS', TRUE);
7435 FND_MSG_PUB.ADD;
7436 END IF;
7437
7438 IF ( p_header = 'N' ) THEN
7439 x_quote_line_rec.END_CUSTOMER_PARTY_SITE_ID := NULL;
7440 END IF;
7441 END IF;
7442 --Case:4 SOLD
7443 IF P_FLAG = 'SOLD' THEN
7444 IF ( p_header = 'Y' ) THEN
7445 x_quote_header_rec.SOLD_TO_PARTY_SITE_ID := NULL;
7446 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
7447 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_QUOTE_ADDRESS', TRUE);
7448 FND_MSG_PUB.ADD;
7449 END IF;
7450 END IF;
7451 aso_debug_pub.add('No data found for the cursor...C_CUST_ACCOUNT_MANAGER', 1, 'Y');
7452 END IF ;
7453 aso_debug_pub.add('Before closing the cursor...C_CUST_ACCOUNT_MANAGER', 1, 'Y');
7454 CLOSE C_PARTY_ADDRESS;
7455 aso_debug_pub.add('After closing the cursor...C_CUST_ACCOUNT_MANAGER', 1, 'Y');
7456
7457 END IF;
7458
7459 --Case 2 : incase only customer is there(p_cust_party_id IS NOT NULL AND p_party_id IS NULL)
7460
7461 IF p_party_id IS NULL AND p_cust_party_id IS NOT NULL THEN
7462 aso_debug_pub.add('before opening the cursor...C_CUST_PARTY_ADDRESS_NOT_NULL', 1, 'Y');
7463 OPEN C_CUST_PARTY_ADDRESS_NOT_NULL ;
7464 aso_debug_pub.add('before fetching the cursor...C_CUST_PARTY_ADDRESS_NOT_NULL', 1, 'Y');
7465 FETCH C_CUST_PARTY_ADDRESS_NOT_NULL INTO l_data_exists ;
7466
7467 IF C_CUST_PARTY_ADDRESS_NOT_NULL%FOUND THEN
7468 --Case:1 BILL
7469 IF P_FLAG = 'BILL' THEN
7470 IF ( p_header = 'Y' ) THEN
7471 x_quote_header_rec.INVOICE_TO_PARTY_SITE_ID := p_party_site_id;
7472 END IF;
7473
7474 IF ( p_header = 'N' ) THEN
7475 x_quote_line_rec.INVOICE_TO_PARTY_SITE_ID := p_party_site_id;
7476 END IF;
7477 END IF;
7478 --Case:2 SHIP
7479 IF P_FLAG = 'SHIP' THEN
7480 IF ( p_header = 'Y' ) THEN
7481 x_shipment_header_rec.SHIP_TO_PARTY_SITE_ID := p_party_site_id;
7482 END IF;
7483
7484 IF ( p_header = 'N' ) THEN
7485 x_shipment_line_rec.SHIP_TO_PARTY_SITE_ID := p_party_site_id;
7486 END IF;
7487 END IF;
7488 --Case:3 END
7489 IF P_FLAG = 'END' THEN
7490 IF ( p_header = 'Y' ) THEN
7491 x_quote_header_rec.END_CUSTOMER_PARTY_SITE_ID := p_party_site_id;
7492 END IF;
7493
7494 IF ( p_header = 'N' ) THEN
7495 x_quote_line_rec.END_CUSTOMER_PARTY_SITE_ID := p_party_site_id;
7496 END IF;
7497 END IF;
7498 --Case:4 SOLD
7499 IF P_FLAG = 'SOLD' THEN
7500 IF ( p_header = 'Y' ) THEN
7501 x_quote_header_rec.SOLD_TO_PARTY_SITE_ID := p_party_site_id;
7502 END IF;
7503 END IF;
7504 ELSE --Set all values to NULL
7505 --Case:1 BILL
7506 IF P_FLAG = 'BILL' THEN
7507 IF ( p_header = 'Y' ) THEN
7508 x_quote_header_rec.INVOICE_TO_PARTY_SITE_ID := NULL;
7509 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
7510 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_BILL_ADDRESS', TRUE);
7511 FND_MSG_PUB.ADD;
7512 END IF;
7513
7514 IF ( p_header = 'N' ) THEN
7515 x_quote_line_rec.INVOICE_TO_PARTY_SITE_ID := NULL;
7516 END IF;
7517 END IF;
7518 --Case:2 SHIP
7519 IF P_FLAG = 'SHIP' THEN
7520 IF ( p_header = 'Y' ) THEN
7521 x_shipment_header_rec.SHIP_TO_PARTY_SITE_ID := NULL;
7522 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
7523 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_SHIP_ADDRESS', TRUE);
7524 FND_MSG_PUB.ADD;
7525 END IF;
7526
7527 IF ( p_header = 'N' ) THEN
7528 x_shipment_line_rec.SHIP_TO_PARTY_SITE_ID := NULL;
7529 END IF;
7530 END IF;
7531 --Case:3 END
7532 IF P_FLAG = 'END' THEN
7533 IF ( p_header = 'Y' ) THEN
7534 x_quote_header_rec.END_CUSTOMER_PARTY_SITE_ID := NULL;
7535 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
7536 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_END_ADDRESS', TRUE);
7537 FND_MSG_PUB.ADD;
7538 END IF;
7539
7540 IF ( p_header = 'N' ) THEN
7541 x_quote_line_rec.END_CUSTOMER_PARTY_SITE_ID := NULL;
7542 END IF;
7543 END IF;
7544 --Case:4 SOLD
7545 IF P_FLAG = 'SOLD' THEN
7546 IF ( p_header = 'Y' ) THEN
7547 x_quote_header_rec.SOLD_TO_PARTY_SITE_ID := NULL;
7548 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
7549 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_QUOTE_ADDRESS', TRUE);
7550 FND_MSG_PUB.ADD;
7551 END IF;
7552 END IF;
7553 aso_debug_pub.add('No Data Found for the cursor...C_CUST_PARTY_ADDRESS_NOT_NULL', 1, 'Y');
7554 END IF ;
7555 aso_debug_pub.add('Before closing the cursor...C_CUST_PARTY_ADDRESS_NOT_NULL', 1, 'Y');
7556 CLOSE C_CUST_PARTY_ADDRESS_NOT_NULL;
7557 aso_debug_pub.add('After closing the cursor...C_CUST_PARTY_ADDRESS_NOT_NULL', 1, 'Y');
7558
7559 END IF;
7560
7561 --Case 3 : incase only customer is there(p_cust_party_id IS NULL AND p_party_id IS NOT NULL)
7562
7563 IF p_party_id IS NOT NULL AND p_cust_party_id IS NULL THEN
7564 aso_debug_pub.add('Before opening the cursor...C_CUSTOMER_ADDRESS_NOT_NULL', 1, 'Y');
7565 OPEN C_CUSTOMER_ADDRESS_NOT_NULL ;
7566 aso_debug_pub.add('Before fetching the cursor...C_CUSTOMER_ADDRESS_NOT_NULL', 1, 'Y');
7567 FETCH C_CUSTOMER_ADDRESS_NOT_NULL INTO l_data_exists ;
7568
7569 IF C_CUSTOMER_ADDRESS_NOT_NULL%FOUND THEN
7570 --Case:1 BILL
7571 IF P_FLAG = 'BILL' THEN
7572 IF ( p_header = 'Y' ) THEN
7573 x_quote_header_rec.INVOICE_TO_PARTY_SITE_ID := p_party_site_id;
7574 END IF;
7575
7576 IF ( p_header = 'N' ) THEN
7577 x_quote_line_rec.INVOICE_TO_PARTY_SITE_ID := p_party_site_id;
7578 END IF;
7579 END IF;
7580 --Case:2 SHIP
7581 IF P_FLAG = 'SHIP' THEN
7582 IF ( p_header = 'Y' ) THEN
7583 x_shipment_header_rec.SHIP_TO_PARTY_SITE_ID := p_party_site_id;
7584 END IF;
7585
7586 IF ( p_header = 'N' ) THEN
7587 x_shipment_line_rec.SHIP_TO_PARTY_SITE_ID := p_party_site_id;
7588 END IF;
7589 END IF;
7590 --Case:3 END
7591 IF P_FLAG = 'END' THEN
7592 IF ( p_header = 'Y' ) THEN
7593 x_quote_header_rec.END_CUSTOMER_PARTY_SITE_ID := p_party_site_id;
7594 END IF;
7595
7596 IF ( p_header = 'N' ) THEN
7597 x_quote_line_rec.END_CUSTOMER_PARTY_SITE_ID := p_party_site_id;
7598 END IF;
7599 END IF;
7600 --Case:4 SOLD
7601 IF P_FLAG = 'SOLD' THEN
7602 IF ( p_header = 'Y' ) THEN
7603 x_quote_header_rec.SOLD_TO_PARTY_SITE_ID := p_party_site_id;
7604 END IF;
7605 END IF;
7606 ELSE --Set all values to NULL
7607 --Case:1 BILL
7608 IF P_FLAG = 'BILL' THEN
7609 IF ( p_header = 'Y' ) THEN
7610 x_quote_header_rec.INVOICE_TO_PARTY_SITE_ID := NULL;
7611 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
7612 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_BILL_ADDRESS', TRUE);
7613 FND_MSG_PUB.ADD;
7614 END IF;
7615
7616 IF ( p_header = 'N' ) THEN
7617 x_quote_line_rec.INVOICE_TO_PARTY_SITE_ID := NULL;
7618 END IF;
7619 END IF;
7620 --Case:2 SHIP
7621 IF P_FLAG = 'SHIP' THEN
7622 IF ( p_header = 'Y' ) THEN
7623 x_shipment_header_rec.SHIP_TO_PARTY_SITE_ID := NULL;
7624 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
7625 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_SHIP_ADDRESS', TRUE);
7626 FND_MSG_PUB.ADD;
7627 END IF;
7628
7629 IF ( p_header = 'N' ) THEN
7630 x_shipment_line_rec.SHIP_TO_PARTY_SITE_ID := NULL;
7631 END IF;
7632 END IF;
7633 --Case:3 END
7634 IF P_FLAG = 'END' THEN
7635 IF ( p_header = 'Y' ) THEN
7636 x_quote_header_rec.END_CUSTOMER_PARTY_SITE_ID := NULL;
7637 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
7638 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_END_ADDRESS', TRUE);
7639 FND_MSG_PUB.ADD;
7640 END IF;
7641
7642 IF ( p_header = 'N' ) THEN
7643 x_quote_line_rec.END_CUSTOMER_PARTY_SITE_ID := NULL;
7644 END IF;
7645 END IF;
7646 --Case:4 SOLD
7647 IF P_FLAG = 'SOLD' THEN
7648 IF ( p_header = 'Y' ) THEN
7649 x_quote_header_rec.SOLD_TO_PARTY_SITE_ID := NULL;
7650 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
7651 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_QUOTE_ADDRESS', TRUE);
7652 FND_MSG_PUB.ADD;
7653 END IF;
7654 END IF;
7655 aso_debug_pub.add('no data found for the cursor...C_CUSTOMER_ADDRESS_NOT_NULL', 1, 'Y');
7656 END IF ;
7657 aso_debug_pub.add('Before Closing the cursor...C_CUSTOMER_ADDRESS_NOT_NULL', 1, 'Y');
7658 CLOSE C_CUSTOMER_ADDRESS_NOT_NULL;
7659 aso_debug_pub.add('After Closing the cursor...C_CUSTOMER_ADDRESS_NOT_NULL', 1, 'Y');
7660
7661 END IF;
7662
7663 END VALIDATE_ADDRESS;
7664
7665 --7): Validate Account
7666
7667
7668 PROCEDURE VALIDATE_ACCOUNT
7669 ( p_cust_acct_id varchar2,
7670 p_cust_party_id varchar2,
7671 p_resource_id varchar2,
7672 p_flag varchar2,
7673 p_header varchar2
7674 ) IS
7675
7676 -- p_flag possible values : SOLD or END
7677 -- p_header possible values : Y or N
7678 -- Calling procedure should pass ASO_TCA_SOLD_TO_ACCOUNT(p_quote_header_rec.cust_party_id,P_quote_header_rec.RESOURCE_ID )
7679 --:QOTHDDET_MAIN.sold_to_cust_party_id --> p_cust_party_id --> p_quote_header_rec.cust_party_id)
7680 --:PARAMETER.user_resource_id-->p_resource_id-->p_quote_header_rec.resource_id
7681
7682
7683 Cursor C_Mgr_Check Is --to check the manager flag
7684 select 1 from dual where exists
7685 (
7686 SELECT MGR.group_id
7687 FROM jtf_rs_rep_managers MGR ,
7688 jtf_rs_group_usages U
7689 WHERE U.usage = 'SALES'
7690 AND U.group_id = MGR.group_id
7691 AND trunc(MGR.start_date_active) <= trunc(SYSDATE)
7692 AND trunc(NVL(MGR.end_date_active, SYSDATE)) >= trunc(SYSDATE)
7693 AND MGR.parent_resource_id = MGR.resource_id
7694 AND MGR.hierarchy_type in ('MGR_TO_MGR', 'MGR_TO_REP')
7695 AND MGR.parent_resource_id = p_resource_id
7696 );
7697
7698
7699 CURSOR C_SOLD_TO_ACCOUNT IS
7700 SELECT 1 FROM DUAL WHERE EXISTS
7701 (
7702 SELECT ca.account_number
7703 FROM HZ_PARTIES HP,
7704 HZ_CUST_ACCOUNTS CA
7705 WHERE hp.party_id = ca.party_id
7706 AND hp.status = 'A'
7707 AND ca.status = 'A'
7708 AND trunc(nvl(ca.account_activation_date,sysdate)) <= trunc(sysdate)
7709 AND trunc(nvl(ca.account_termination_date,sysdate)) >= trunc(sysdate)
7710 AND HP.party_id = p_cust_party_id
7711 AND ca.cust_account_id = p_cust_acct_id
7712 );
7713
7714 CURSOR C_SOLD_TO_ACCOUNT_NO_MANAGER IS
7715 SELECT 1 FROM DUAL WHERE EXISTS
7716 (
7717 select ca.account_number
7718 from HZ_PARTIES P
7719 , HZ_CUST_ACCOUNTS CA
7720 where CA.status = 'A'
7721 AND trunc(nvl(CA.account_activation_date, SYSDATE)) <= trunc(SYSDATE)
7722 AND trunc(nvl(CA.account_termination_date, SYSDATE)) >= trunc(SYSDATE)
7723 AND P.status = 'A'
7724 AND P.party_id = CA.party_id
7725 AND (exists (SELECT null
7726 FROM as_accesses_all secu
7727 WHERE secu.customer_id = p.party_id
7728 AND secu.lead_id IS NULL
7729 AND secu.sales_lead_id IS NULL AND salesforce_id = p_resource_id
7730 ))
7731 AND P.party_id = p_cust_party_id --Added joins for cust_account_id
7732 AND ca.cust_account_id = p_cust_acct_id --and party id
7733
7734 );
7735
7736
7737 CURSOR C_SOLD_TO_ACCOUNT_MANAGER IS
7738 SELECT 1 FROM DUAL WHERE EXISTS
7739 (
7740
7741 select null
7742 from HZ_PARTIES P
7743 ,HZ_CUST_ACCOUNTS CA
7744 where CA.status = 'A'
7745 AND P.status = 'A'
7746 AND P.party_id = CA.party_id
7747 AND P.party_id = p_cust_party_id --Added joins for cust_acct_id and
7748 AND ca.cust_account_id = p_cust_acct_id --party id
7749 AND EXISTS ( SELECT null
7750 FROM as_accesses_all_all secu
7751 WHERE secu.customer_id = P.party_id
7752 AND secu.lead_id IS NULL
7753 AND secu.sales_lead_id IS NULL
7754 AND secu.delete_flag is NULL
7755 AND secu.sales_group_id in (
7756 SELECT jrgd.group_id
7757 FROM jtf_rs_groups_denorm jrgd,
7758 jtf_rs_group_usages jrgu
7759 WHERE jrgd.parent_group_id IN (
7760 select U.group_id
7761 from jtf_rs_rep_managers mgr,
7762 jtf_rs_group_usages u
7763 where mgr.parent_resource_id = p_resource_id
7764 and trunc(sysdate) between trunc(mgr.start_date_active) and trunc(nvl(mgr.end_date_active,sysdate))
7765 and mgr.hierarchy_type = 'MGR_TO_REP'
7766 and mgr.group_id = u.group_id
7767 and u.usage in ('SALES','PRM')
7768 )
7769 AND trunc(jrgd.start_date_active) <= TRUNC(SYSDATE)
7770 AND trunc(NVL(jrgd.end_date_active, SYSDATE)) >= TRUNC(SYSDATE)
7771 AND jrgu.group_id = jrgd.group_id
7772 AND jrgu.usage in ('SALES', 'PRM')) )
7773 UNION ALL
7774 SELECT null
7775 FROM as_accesses_all_all secu,HZ_PARTIES P
7776 WHERE secu.customer_id = P.party_id
7777 AND secu.lead_id IS NULL
7778 AND secu.sales_lead_id IS NULL
7779 AND secu.delete_flag is NULL
7780 AND salesforce_id = p_resource_id --Added new join for salesforceid
7781
7782 );
7783
7784 l_data_exists varchar2(10);
7785 l_manager_flag varchar2(1) ;
7786
7787 BEGIN
7788 --case:1 When sold-to or End Customer customer is specified
7789
7790 IF NVL(FND_PROFILE.VALUE('ASN_CUST_ACCESS'),'T') = 'F' AND p_cust_party_id is not null THEN
7791 aso_debug_pub.add('Before opeing the cursor...C_SOLD_TO_ACCOUNT', 1, 'Y');
7792 OPEN C_SOLD_TO_ACCOUNT;
7793 FETCH C_SOLD_TO_ACCOUNT INTO l_data_exists ;
7794
7795 IF C_SOLD_TO_ACCOUNT%FOUND THEN
7796 IF ( p_flag = 'SOLD' ) THEN
7797 IF ( p_header = 'Y' ) THEN
7798 x_quote_header_rec.CUST_ACCOUNT_ID := p_cust_acct_id;
7799 END IF;
7800 END IF;
7801 IF ( p_flag = 'END' ) THEN
7802 IF ( p_header = 'Y' ) THEN
7803 x_quote_header_rec.END_CUSTOMER_CUST_ACCOUNT_ID := p_cust_acct_id;
7804 END IF;
7805 IF ( p_header = 'N' ) THEN
7806 x_quote_line_rec.END_CUSTOMER_CUST_ACCOUNT_ID := p_cust_acct_id;
7807 END IF;
7808 END IF;
7809 ELSE
7810 IF ( p_flag = 'SOLD' ) THEN
7811 IF ( p_header = 'Y' ) THEN
7812 x_quote_header_rec.CUST_ACCOUNT_ID := NULL;
7813 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
7814 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_QUOTE_ACCOUNT', TRUE);
7815 FND_MSG_PUB.ADD;
7816 END IF;
7817 END IF;
7818 IF ( p_flag = 'END' ) THEN
7819 IF ( p_header = 'Y' ) THEN
7820 x_quote_header_rec.END_CUSTOMER_CUST_ACCOUNT_ID := NULL;
7821 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
7822 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_END_ACCOUNT', TRUE);
7823 FND_MSG_PUB.ADD;
7824 END IF;
7825 IF ( p_header = 'N' ) THEN
7826 x_quote_line_rec.END_CUSTOMER_CUST_ACCOUNT_ID := NULL;
7827 END IF;
7828 END IF;
7829 aso_debug_pub.add('No Data Found for the cursor...C_SOLD_TO_ACCOUNT', 1, 'Y');
7830 END IF;
7831 aso_debug_pub.add('Before Closing the cursor...C_SOLD_TO_ACCOUNT', 1, 'Y');
7832 CLOSE C_SOLD_TO_ACCOUNT;
7833 aso_debug_pub.add('After Closing the cursor...C_SOLD_TO_ACCOUNT', 1, 'Y');
7834
7835 END IF;
7836
7837 --Case:2 When ASN:Customer Access Privilege is set to Sales Team and resource_id is not null
7838
7839 IF NVL(FND_PROFILE.VALUE('ASN_CUST_ACCESS'),'T') = 'T' AND p_resource_id IS NOT NULL THEN
7840
7841
7842 OPEN C_Mgr_Check; --Checking the manager flag
7843 FETCH C_Mgr_Check INTO l_data_exists ;
7844
7845 IF C_Mgr_Check%FOUND THEN
7846 l_manager_flag := 'Y';
7847 ELSE
7848 l_manager_flag := 'N';
7849 aso_debug_pub.add('No Data Found for Cursor...C_Mgr_Check', 1, 'Y');
7850 END IF;
7851 CLOSE C_Mgr_Check;
7852
7853
7854 IF l_manager_flag = 'N' THEN --New Query
7855 aso_debug_pub.add('Before opening the cursor...C_SOLD_TO_ACCOUNT_NO_MANAGER', 1, 'Y');
7856 OPEN C_SOLD_TO_ACCOUNT_NO_MANAGER;
7857 aso_debug_pub.add('Before fetching the cursor...C_SOLD_TO_ACCOUNT_NO_MANAGER', 1, 'Y');
7858
7859 FETCH C_SOLD_TO_ACCOUNT_NO_MANAGER INTO l_data_exists ;
7860
7861 IF C_SOLD_TO_ACCOUNT_NO_MANAGER%FOUND THEN
7862 IF ( p_flag = 'SOLD' ) THEN
7863 IF ( p_header = 'Y' ) THEN
7864 x_quote_header_rec.CUST_ACCOUNT_ID := p_cust_acct_id;
7865 END IF;
7866 END IF;
7867 IF ( p_flag = 'END' ) THEN
7868 IF ( p_header = 'Y' ) THEN
7869 x_quote_header_rec.END_CUSTOMER_CUST_ACCOUNT_ID := p_cust_acct_id;
7870 END IF;
7871 IF ( p_header = 'N' ) THEN
7872 x_quote_line_rec.END_CUSTOMER_CUST_ACCOUNT_ID := p_cust_acct_id;
7873 END IF;
7874 END IF;
7875 ELSE
7876 IF ( p_flag = 'SOLD' ) THEN
7877 IF ( p_header = 'Y' ) THEN
7878 x_quote_header_rec.CUST_ACCOUNT_ID := NULL;
7879 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
7880 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_QUOTE_ACCOUNT', TRUE);
7881 FND_MSG_PUB.ADD;
7882 END IF;
7883 END IF;
7884 IF ( p_flag = 'END' ) THEN
7885 IF ( p_header = 'Y' ) THEN
7886 x_quote_header_rec.END_CUSTOMER_CUST_ACCOUNT_ID := NULL;
7887 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
7888 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_END_ACCOUNT', TRUE);
7889 FND_MSG_PUB.ADD;
7890 END IF;
7891 IF ( p_header = 'N' ) THEN
7892 x_quote_line_rec.END_CUSTOMER_CUST_ACCOUNT_ID := NULL;
7893 END IF;
7894 END IF;
7895 aso_debug_pub.add('No data found for the cursor...C_SOLD_TO_ACCOUNT_NO_MANAGER', 1, 'Y');
7896 END IF;
7897 aso_debug_pub.add('Before closing the cursor...C_SOLD_TO_ACCOUNT_NO_MANAGER', 1, 'Y');
7898 CLOSE C_SOLD_TO_ACCOUNT_NO_MANAGER;
7899 END IF;
7900
7901
7902 IF l_manager_flag = 'Y' THEN --New Query
7903 aso_debug_pub.add('Before opeing the cursor...C_SOLD_TO_ACCOUNT_MANAGER', 1, 'Y');
7904
7905 OPEN C_SOLD_TO_ACCOUNT_MANAGER;
7906 aso_debug_pub.add('Before Fetching the cursor...C_SOLD_TO_ACCOUNT_MANAGER', 1, 'Y');
7907
7908 FETCH C_SOLD_TO_ACCOUNT_MANAGER INTO l_data_exists ;
7909
7910 IF C_SOLD_TO_ACCOUNT_MANAGER%FOUND THEN
7911 IF ( p_flag = 'SOLD' ) THEN
7912 IF ( p_header = 'Y' ) THEN
7913 x_quote_header_rec.CUST_ACCOUNT_ID := p_cust_acct_id;
7914 END IF;
7915 END IF;
7916 IF ( p_flag = 'END' ) THEN
7917 IF ( p_header = 'Y' ) THEN
7918 x_quote_header_rec.END_CUSTOMER_CUST_ACCOUNT_ID := p_cust_acct_id;
7919 END IF;
7920 IF ( p_header = 'N' ) THEN
7921 x_quote_line_rec.END_CUSTOMER_CUST_ACCOUNT_ID := p_cust_acct_id;
7922 END IF;
7923 END IF;
7924 ELSE
7925 IF ( p_flag = 'SOLD' ) THEN
7926 IF ( p_header = 'Y' ) THEN
7927 x_quote_header_rec.CUST_ACCOUNT_ID := NULL;
7928 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
7929 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_QUOTE_ACCOUNT', TRUE);
7930 FND_MSG_PUB.ADD;
7931 END IF;
7932 END IF;
7933 IF ( p_flag = 'END' ) THEN
7934 IF ( p_header = 'Y' ) THEN
7935 x_quote_header_rec.END_CUSTOMER_CUST_ACCOUNT_ID := NULL;
7936 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
7937 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_END_ACCOUNT', TRUE);
7938 FND_MSG_PUB.ADD;
7939 END IF;
7940 IF ( p_header = 'N' ) THEN
7941 x_quote_line_rec.END_CUSTOMER_CUST_ACCOUNT_ID := NULL;
7942 END IF;
7943 END IF;
7944 aso_debug_pub.add('No Data Found for the cursor...C_SOLD_TO_ACCOUNT_MANAGER', 1, 'Y');
7945 END IF;
7946 aso_debug_pub.add('Before Closing the cursor...C_SOLD_TO_ACCOUNT_MANAGER', 1, 'Y');
7947 CLOSE C_SOLD_TO_ACCOUNT_MANAGER;
7948 aso_debug_pub.add('After Closing the cursor...C_SOLD_TO_ACCOUNT_MANAGER', 1, 'Y');
7949
7950 END IF ;
7951 END IF;
7952 END VALIDATE_ACCOUNT;
7953
7954 --- TCA Routines End --------------------------------
7955 PROCEDURE PRINT_DEFAULTING_ATTRIBUTES(p_begin_flag VARCHAR2) IS
7956
7957 BEGIN
7958 --Header and Line Attributes that are not validated by the ASO_VALIDATE_PROCEDURE
7959 X_SHIPMENT_HEADER_REC.FREIGHT_TERMS_CODE := P_SHIPMENT_HEADER_REC.FREIGHT_TERMS_CODE ;
7960 X_QUOTE_HEADER_REC.RESOURCE_GRP_ID:=P_QUOTE_HEADER_REC.RESOURCE_GRP_ID ;
7961 X_QUOTE_HEADER_REC.RESOURCE_ID := P_QUOTE_HEADER_REC.RESOURCE_ID ;
7962 X_SHIPMENT_HEADER_REC.PACKING_INSTRUCTIONS := P_SHIPMENT_HEADER_REC.PACKING_INSTRUCTIONS ;
7963 X_SHIPMENT_LINE_REC.PACKING_INSTRUCTIONS := P_SHIPMENT_LINE_REC.PACKING_INSTRUCTIONS ;
7964 X_SHIPMENT_HEADER_REC.SHIPPING_INSTRUCTIONS := P_SHIPMENT_HEADER_REC.SHIPPING_INSTRUCTIONS ;
7965 X_SHIPMENT_LINE_REC.SHIPPING_INSTRUCTIONS := P_SHIPMENT_LINE_REC.SHIPPING_INSTRUCTIONS ;
7966 X_QUOTE_HEADER_REC.QUOTE_EXPIRATION_DATE := p_QUOTE_HEADER_REC.QUOTE_EXPIRATION_DATE ;
7967 X_QUOTE_HEADER_REC.PRICE_LIST_ID := P_QUOTE_HEADER_REC.PRICE_LIST_ID ;
7968 X_QUOTE_LINE_REC.PRICE_LIST_ID := P_QUOTE_LINE_REC.PRICE_LIST_ID ;
7969 x_QUOTE_HEADER_REC.ORDER_TYPE_ID := p_QUOTE_HEADER_REC.ORDER_TYPE_ID;
7970 x_QUOTE_HEADER_REC.CONTRACT_TEMPLATE_ID := P_QUOTE_HEADER_REC.CONTRACT_TEMPLATE_ID ;
7971 x_PAYMENT_HEADER_REC.PAYMENT_TERM_ID := P_PAYMENT_HEADER_REC.PAYMENT_TERM_ID ;
7972 x_PAYMENT_LINE_REC.PAYMENT_TERM_ID := P_PAYMENT_LINE_REC.PAYMENT_TERM_ID ;
7973 x_SHIPMENT_HEADER_REC.SHIP_METHOD_CODE := P_SHIPMENT_HEADER_REC.SHIP_METHOD_CODE ;
7974 x_SHIPMENT_LINE_REC.SHIP_METHOD_CODE := P_SHIPMENT_LINE_REC.SHIP_METHOD_CODE ;
7975 x_quote_line_rec.ORDER_LINE_TYPE_ID := p_quote_line_rec.ORDER_LINE_TYPE_ID;
7976 x_PAYMENT_HEADER_REC.CUST_PO_NUMBER := P_PAYMENT_HEADER_REC.CUST_PO_NUMBER;
7977 x_PAYMENT_LINE_REC.CUST_PO_NUMBER := P_PAYMENT_LINE_REC.CUST_PO_NUMBER ;
7978 x_quote_header_rec.CREATED_BY := p_quote_header_rec.CREATED_BY ;
7979 x_quote_line_rec.CREATED_BY := p_quote_line_rec.CREATED_BY ;
7980 x_QUOTE_HEADER_REC.QUOTE_NAME := p_QUOTE_HEADER_REC.QUOTE_NAME ;
7981 x_QUOTE_HEADER_REC.QUOTE_STATUS_ID := p_QUOTE_HEADER_REC.QUOTE_STATUS_ID ;
7982 -- END --------
7983
7984
7985 IF p_begin_flag = 'Y' THEN
7986
7987 aso_debug_pub.add('***************************************************************', 1, 'Y');
7988 aso_debug_pub.add('ASO_VALIDATE_PVT: Begin PRINT_DEFAULTING_ATTRIBUTES Procedure..');
7989 aso_debug_pub.add('***************************************************************', 1, 'Y');
7990 IF p_def_object_name = 'ASO_AK_QUOTE_HEADER_V' THEN --Print header attributes only'
7991
7992 aso_debug_pub.add('** Header Attributes Start **', 1, 'Y');
7993 --Header Attributes (Input)
7994 aso_debug_pub.add('1. Value of P_QUOTE_HEADER_REC.PRICE_LIST_ID: '||p_quote_header_rec.PRICE_LIST_ID, 1,'Y');
7995 aso_debug_pub.add('2. Value of P_QUOTE_HEADER_REC.CURRENCY_CODE: '||p_quote_header_rec.CURRENCY_CODE, 1,'Y');
7996 aso_debug_pub.add('3. Value of P_QUOTE_HEADER_REC.SALES_CHANNEL_CODE: '||p_quote_header_rec.SALES_CHANNEL_CODE, 1,'Y');
7997 aso_debug_pub.add('4. Value of P_QUOTE_HEADER_REC.AUTOMATIC_PRICE_FLAG: '||p_quote_header_rec.AUTOMATIC_PRICE_FLAG, 1,'Y');
7998 aso_debug_pub.add('5. Value of P_QUOTE_HEADER_REC.AUTOMATIC_TAX_FLAG: '||p_quote_header_rec.AUTOMATIC_TAX_FLAG, 1,'Y');
7999 aso_debug_pub.add('6. Value of P_QUOTE_HEADER_REC.PHONE_ID: '||p_quote_header_rec.phone_id, 1,'Y');
8000
8001 aso_debug_pub.add('7. Value of P_QUOTE_HEADER_REC.CUST_PARTY_ID: '||p_quote_header_rec.cust_party_id, 1,'Y');
8002 aso_debug_pub.add('8. Value of P_QUOTE_HEADER_REC.CUST_ACCOUNT_ID: '||p_quote_header_rec.CUST_ACCOUNT_ID, 1,'Y');
8003 aso_debug_pub.add('9. Value of P_QUOTE_HEADER_REC.PARTY_ID: '||p_quote_header_rec.party_id, 1,'Y');
8004 aso_debug_pub.add('10. Value of P_QUOTE_HEADER_REC.SOLD_TO_PARTY_SITE_ID: '||p_quote_header_rec.SOLD_TO_PARTY_SITE_ID, 1,'Y');
8005
8006 aso_debug_pub.add('11. Value of P_QUOTE_HEADER_REC.INVOICE_TO_CUST_PARTY_ID: '||p_quote_header_rec.INVOICE_TO_CUST_PARTY_ID, 1,'Y');
8007 aso_debug_pub.add('12. Value of P_QUOTE_HEADER_REC.INVOICE_TO_CUST_ACCOUNT_ID:'||p_quote_header_rec.INVOICE_TO_CUST_ACCOUNT_ID, 1,'Y');
8008 aso_debug_pub.add('13. Value of P_QUOTE_HEADER_REC.INVOICE_TO_PARTY_ID: '||p_quote_header_rec.INVOICE_TO_PARTY_ID, 1,'Y');
8009 aso_debug_pub.add('14. Value of P_QUOTE_HEADER_REC.INVOICE_TO_PARTY_SITE_ID: '||p_quote_header_rec.INVOICE_TO_PARTY_SITE_ID, 1,'Y');
8010
8011 aso_debug_pub.add('15. Value of P_QUOTE_HEADER_REC.ATTRIBUTE_CATEGORY: '|| p_quote_header_rec.ATTRIBUTE_CATEGORY,1,'Y');
8012 aso_debug_pub.add('16. Value of P_QUOTE_HEADER_REC.CONTRACT_ID: '|| p_quote_header_rec.CONTRACT_ID,1,'Y');
8013 aso_debug_pub.add('17. Value of P_QUOTE_HEADER_REC.CONTRACT_TEMPLATE_ID: '|| p_quote_header_rec.CONTRACT_TEMPLATE_ID,1,'Y');
8014 aso_debug_pub.add('18. Value of P_QUOTE_HEADER_REC.CREATED_BY: '|| p_quote_header_rec.CREATED_BY,1,'Y');
8015 aso_debug_pub.add('19. Value of P_QUOTE_HEADER_REC.LAST_UPDATE_DATE: '|| p_quote_header_rec.LAST_UPDATE_DATE,1,'Y');
8016 aso_debug_pub.add('20. Value of P_QUOTE_HEADER_REC.MARKETING_SOURCE_CODE_ID: '|| p_quote_header_rec.MARKETING_SOURCE_CODE_ID,1,'Y');
8017 aso_debug_pub.add('21. Value of P_QUOTE_HEADER_REC.OBJECT_VERSION_NUMBER: '|| p_quote_header_rec.OBJECT_VERSION_NUMBER,1,'Y');
8018 aso_debug_pub.add('22. Value of P_QUOTE_HEADER_REC.ORDER_TYPE_ID: '|| p_quote_header_rec.ORDER_TYPE_ID,1,'Y');
8019 aso_debug_pub.add('23. Value of P_QUOTE_HEADER_REC.PHONE_ID: '|| p_quote_header_rec.PHONE_ID,1,'Y');
8020 aso_debug_pub.add('24. Value of P_QUOTE_HEADER_REC.PRICE_FROZEN_DATE: '|| p_quote_header_rec.PRICE_FROZEN_DATE,1,'Y');
8021 aso_debug_pub.add('25. Value of P_QUOTE_HEADER_REC.QUOTE_EXPIRATION_DATE: '|| p_quote_header_rec.QUOTE_EXPIRATION_DATE,1,'Y');
8022 aso_debug_pub.add('26. Value of P_QUOTE_HEADER_REC.QUOTE_HEADER_ID: '|| p_quote_header_rec.QUOTE_HEADER_ID,1,'Y');
8023 aso_debug_pub.add('27. Value of P_QUOTE_HEADER_REC.QUOTE_NAME: '|| p_quote_header_rec.QUOTE_NAME,1,'Y');
8024 aso_debug_pub.add('28. Value of P_QUOTE_HEADER_REC.QUOTE_STATUS_ID: '|| p_quote_header_rec.QUOTE_STATUS_ID,1,'Y');
8025 aso_debug_pub.add('29. Value of P_QUOTE_HEADER_REC.RESOURCE_GRP_ID: '|| p_quote_header_rec.RESOURCE_GRP_ID,1,'Y');
8026 aso_debug_pub.add('30. Value of P_QUOTE_HEADER_REC.RESOURCE_ID: '|| p_quote_header_rec.RESOURCE_ID,1,'Y');
8027 aso_debug_pub.add('31. Value of P_QUOTE_HEADER_REC.RESOURCE_ID: '||p_quote_header_rec.resource_id, 1,'Y');
8028
8029 aso_debug_pub.add('32. Value of P_SHIPMENT_HEADER_REC.SHIP_TO_CUST_PARTY_ID: '||p_shipment_header_rec.SHIP_TO_CUST_PARTY_ID, 1,'Y');
8030 aso_debug_pub.add('33. Value of P_SHIPMENT_HEADER_REC.SHIP_TO_CUST_ACCOUNT_ID:'||p_shipment_header_rec.SHIP_TO_CUST_ACCOUNT_ID, 1,'Y');
8031 aso_debug_pub.add('34. Value of P_SHIPMENT_HEADER_REC.SHIP_TO_PARTY_ID: '||p_shipment_header_rec.SHIP_TO_PARTY_ID, 1,'Y');
8032 aso_debug_pub.add('35. Value of P_SHIPMENT_HEADER_REC.SHIP_TO_PARTY_SITE_ID: '||p_shipment_header_rec.SHIP_TO_PARTY_SITE_ID, 1,'Y');
8033 aso_debug_pub.add('36. Value of P_SHIPMENT_HEADER_REC.REQUEST_DATE_TYPE: '||p_Shipment_header_rec.REQUEST_DATE_TYPE, 1,'Y');
8034 aso_debug_pub.add('37. Value of P_SHIPMENT_HEADER_REC.REQUEST_DATE: '||P_Shipment_header_rec.REQUEST_DATE, 1,'Y');
8035 aso_debug_pub.add('38. Value of P_SHIPMENT_HEADER_REC.SHIPMENT_PRIORITY_CODE: '||P_Shipment_header_rec.SHIPMENT_PRIORITY_CODE, 1,'Y');
8036 aso_debug_pub.add('39. Value of P_SHIPMENT_HEADER_REC.FOB_CODE: '||P_Shipment_header_rec.FOB_CODE, 1,'Y');
8037 aso_debug_pub.add('40. Value of P_SHIPMENT_HEADER_REC.DEMAND_CLASS_CODE: '||P_Shipment_header_rec.DEMAND_CLASS_CODE, 1,'Y');
8038 aso_debug_pub.add('41. Value of P_SHIPMENT_HEADER_REC.SHIPPING_INSTRUCTIONS: '|| P_SHIPMENT_HEADER_REC.SHIPPING_INSTRUCTIONS,1,'Y');
8039 aso_debug_pub.add('42. Value of P_SHIPMENT_HEADER_REC.PACKING_INSTRUCTIONS: '|| p_shipment_header_rec.PACKING_INSTRUCTIONS,1,'Y');
8040 aso_debug_pub.add('43. Value of P_SHIPMENT_HEADER_REC.SHIP_METHOD_CODE: '|| P_SHIPMENT_HEADER_REC.SHIP_METHOD_CODE,1,'Y');
8041 aso_debug_pub.add('44. Value of P_SHIPMENT_HEADER_REC.FREIGHT_TERMS_CODE: '|| P_SHIPMENT_HEADER_REC.FREIGHT_TERMS_CODE,1,'Y');
8042
8043 aso_debug_pub.add('45. Value of P_PAYMENT_HEADER_REC.PAYMENT_TYPE_CODE: '||P_Payment_header_rec.PAYMENT_TYPE_CODE, 1,'Y');
8044 aso_debug_pub.add('46. Value of P_PAYMENT_HEADER_REC.CREDIT_CARD_CODE: '||P_Payment_header_rec.CREDIT_CARD_CODE, 1,'Y');
8045 aso_debug_pub.add('47. Value of P_PAYMENT_HEADER_REC.CREDIT_CARD_EXPIRATION_DATE:'|| P_PAYMENT_HEADER_REC.CREDIT_CARD_EXPIRATION_DATE,1,'Y');
8046 aso_debug_pub.add('48. Value of P_PAYMENT_HEADER_REC.CREDIT_CARD_HOLDER_NAME: '|| P_PAYMENT_HEADER_REC.CREDIT_CARD_HOLDER_NAME,1,'Y');
8047 aso_debug_pub.add('49. Value of P_PAYMENT_HEADER_REC.CUST_PO_NUMBER: '|| p_payment_header_rec.CUST_PO_NUMBER,1,'Y');
8048 aso_debug_pub.add('50. Value of P_PAYMENT_HEADER_REC.PAYMENT_REF_NUMBER: '|| P_PAYMENT_HEADER_REC.PAYMENT_REF_NUMBER,1,'Y');
8049 aso_debug_pub.add('51. Value of P_PAYMENT_HEADER_REC.PAYMENT_TERM_ID: '|| P_PAYMENT_HEADER_REC.PAYMENT_TERM_ID,1,'Y');
8050
8051 aso_debug_pub.add('52. Value of P_QUOTE_HEADER_REC.END_CUSTOMER_CUST_PARTY_ID: '||p_quote_header_rec.end_customer_cust_party_id, 1,'Y');
8052 aso_debug_pub.add('53. Value of P_QUOTE_HEADER_REC.END_CUSTOMER_CUST_ACCOUNT_ID:'||p_quote_header_rec.END_CUSTOMER_CUST_ACCOUNT_ID, 1,'Y');
8053 aso_debug_pub.add('54. Value of P_QUOTE_HEADER_REC.END_CUSTOMER_PARTY_ID: '||p_quote_header_rec.END_CUSTOMER_PARTY_ID, 1,'Y');
8054 aso_debug_pub.add('55. Value of P_QUOTE_HEADER_REC.END_CUSTOMER_PARTY_SITE_ID: '||p_quote_header_rec.END_CUSTOMER_PARTY_SITE_ID, 1,'Y');
8055
8056 aso_debug_pub.add('56. Value of P_QUOTE_HEADER_REC.ORG_ID: '||p_quote_header_rec.ORG_ID, 1,'Y');
8057 aso_debug_pub.add('57. Value of P_QUOTE_HEADER_REC.ATTRIBUTE1: '|| p_quote_header_rec.ATTRIBUTE1,1,'Y');
8058 aso_debug_pub.add('58. Value of P_QUOTE_HEADER_REC.ATTRIBUTE10: '|| p_quote_header_rec.ATTRIBUTE10,1,'Y');
8059 aso_debug_pub.add('59. Value of P_QUOTE_HEADER_REC.ATTRIBUTE11: '|| p_quote_header_rec.ATTRIBUTE11,1,'Y');
8060 aso_debug_pub.add('60. Value of P_QUOTE_HEADER_REC.ATTRIBUTE12: '|| p_quote_header_rec.ATTRIBUTE12,1,'Y');
8061 aso_debug_pub.add('61. Value of P_QUOTE_HEADER_REC.ATTRIBUTE13: '|| p_quote_header_rec.ATTRIBUTE13,1,'Y');
8062 aso_debug_pub.add('62. Value of P_QUOTE_HEADER_REC.ATTRIBUTE14: '|| p_quote_header_rec.ATTRIBUTE14,1,'Y');
8063 aso_debug_pub.add('63. Value of P_QUOTE_HEADER_REC.ATTRIBUTE15: '|| p_quote_header_rec.ATTRIBUTE15,1,'Y');
8064 aso_debug_pub.add('64. Value of P_QUOTE_HEADER_REC.ATTRIBUTE16: '|| p_quote_header_rec.ATTRIBUTE16,1,'Y');
8065 aso_debug_pub.add('65. Value of P_QUOTE_HEADER_REC.ATTRIBUTE17: '|| p_quote_header_rec.ATTRIBUTE17,1,'Y');
8066 aso_debug_pub.add('66. Value of P_QUOTE_HEADER_REC.ATTRIBUTE18: '|| p_quote_header_rec.ATTRIBUTE18,1,'Y');
8067 aso_debug_pub.add('67. Value of P_QUOTE_HEADER_REC.ATTRIBUTE19: '|| p_quote_header_rec.ATTRIBUTE19,1,'Y');
8068 aso_debug_pub.add('68. Value of P_QUOTE_HEADER_REC.ATTRIBUTE2: '|| p_quote_header_rec.ATTRIBUTE2,1,'Y');
8069 aso_debug_pub.add('69. Value of P_QUOTE_HEADER_REC.ATTRIBUTE20: '|| p_quote_header_rec.ATTRIBUTE20,1,'Y');
8070 aso_debug_pub.add('70. Value of P_QUOTE_HEADER_REC.ATTRIBUTE3: '|| p_quote_header_rec.ATTRIBUTE3,1,'Y');
8071 aso_debug_pub.add('71. Value of P_QUOTE_HEADER_REC.ATTRIBUTE4: '|| p_quote_header_rec.ATTRIBUTE4,1,'Y');
8072 aso_debug_pub.add('72. Value of P_QUOTE_HEADER_REC.ATTRIBUTE5: '|| p_quote_header_rec.ATTRIBUTE5,1,'Y');
8073 aso_debug_pub.add('73. Value of P_QUOTE_HEADER_REC.ATTRIBUTE6: '|| p_quote_header_rec.ATTRIBUTE6,1,'Y');
8074 aso_debug_pub.add('74. Value of P_QUOTE_HEADER_REC.ATTRIBUTE7: '|| p_quote_header_rec.ATTRIBUTE7,1,'Y');
8075 aso_debug_pub.add('75. Value of P_QUOTE_HEADER_REC.ATTRIBUTE8: '|| p_quote_header_rec.ATTRIBUTE8,1,'Y');
8076 aso_debug_pub.add('76. Value of P_QUOTE_HEADER_REC.ATTRIBUTE9: '|| p_quote_header_rec.ATTRIBUTE9,1,'Y');
8077 aso_debug_pub.add('** Header Attributes End **', 1, 'Y');
8078
8079 ELSIF p_def_object_name = 'ASO_AK_QUOTE_LINE_V' THEN --Print Line Attribues Only
8080
8081 --Line Attributes (Input)
8082 aso_debug_pub.add('** Line Attributes Start **', 1, 'Y');
8083
8084 aso_debug_pub.add('78. Value of P_QUOTE_LINE_REC.CHARGE_PERIODICITY_CODE: '||p_quote_line_rec.CHARGE_PERIODICITY_CODE,1,'Y');
8085 aso_debug_pub.add('79. Value of P_QUOTE_LINE_REC.PRICE_LIST_ID: '||p_quote_line_rec.PRICE_LIST_ID, 1,'Y');
8086
8087 aso_debug_pub.add('80. Value of P_QUOTE_LINE_REC.INVOICE_TO_CUST_PARTY_ID: '||p_quote_line_rec.INVOICE_TO_CUST_PARTY_ID, 1,'Y');
8088 aso_debug_pub.add('81. Value of P_QUOTE_LINE_REC.INVOICE_TO_CUST_ACCOUNT_ID: '||p_quote_line_rec.INVOICE_TO_CUST_ACCOUNT_ID, 1,'Y');
8089 aso_debug_pub.add('82. Value of P_QUOTE_LINE_REC.INVOICE_TO_PARTY_ID '||p_quote_Line_rec.INVOICE_TO_PARTY_ID, 1,'Y');
8090 aso_debug_pub.add('83. Value of P_QUOTE_LINE_REC.INVOICE_TO_PARTY_SITE_ID: '||p_quote_line_rec.INVOICE_TO_PARTY_SITE_ID, 1,'Y');
8091
8092 aso_debug_pub.add('84. Value of P_QUOTE_LINE_REC.END_CUSTOMER_CUST_PARTY_ID: '||p_quote_line_rec.end_customer_cust_party_id, 1,'Y');
8093 aso_debug_pub.add('85. Value of P_QUOTE_LINE_REC.END_CUSTOMER_CUST_ACCOUNT_ID: '||p_quote_line_rec.END_CUSTOMER_CUST_ACCOUNT_ID, 1,'Y');
8094 aso_debug_pub.add('86. Value of P_QUOTE_LINE_REC.END_CUSTOMER_PARTY_ID: '||p_quote_Line_rec.END_CUSTOMER_PARTY_ID, 1,'Y');
8095 aso_debug_pub.add('87. Value of P_QUOTE_LINE_REC.END_CUSTOMER_PARTY_SITE_ID: '||p_quote_line_rec.END_CUSTOMER_PARTY_SITE_ID, 1,'Y');
8096
8097 aso_debug_pub.add('88. Value of P_PAYMENT_LINE_REC.PAYMENT_TYPE_CODE: '||P_Payment_line_rec.PAYMENT_TYPE_CODE, 1,'Y');
8098 aso_debug_pub.add('89. Value of P_PAYMENT_LINE_REC.CREDIT_CARD_CODE: '||P_Payment_line_rec.CREDIT_CARD_CODE, 1,'Y');
8099 aso_debug_pub.add('90. Value of p_payment_line_rec.CREDIT_CARD_EXPIRATION_DATE:'|| p_payment_line_rec.CREDIT_CARD_EXPIRATION_DATE,1,'Y');
8100 aso_debug_pub.add('91. Value of p_payment_line_rec.CREDIT_CARD_HOLDER_NAME: '|| p_payment_line_rec.CREDIT_CARD_HOLDER_NAME,1,'Y');
8101 aso_debug_pub.add('92. Value of p_payment_line_rec.CUST_PO_LINE_NUMBER: '|| p_payment_line_rec.CUST_PO_LINE_NUMBER,1,'Y');
8102 aso_debug_pub.add('93. Value of p_payment_line_rec.CUST_PO_NUMBER: '|| p_payment_line_rec.CUST_PO_NUMBER,1,'Y');
8103 aso_debug_pub.add('94. Value of p_payment_line_rec.PAYMENT_REF_NUMBER: '|| p_payment_line_rec.PAYMENT_REF_NUMBER,1,'Y');
8104 aso_debug_pub.add('95. Value of p_payment_line_rec.PAYMENT_TERM_ID: '|| p_payment_line_rec.PAYMENT_TERM_ID,1,'Y');
8105
8106
8107 aso_debug_pub.add('96. Value of P_SHIPMENT_LINE_REC.SHIP_TO_CUST_PARTY_ID: '||p_shipment_line_rec.SHIP_TO_CUST_PARTY_ID, 1,'Y');
8108 aso_debug_pub.add('97. Value of P_SHIPMENT_LINE_REC.SHIP_TO_CUST_ACCOUNT_ID: '||p_shipment_line_rec.SHIP_TO_CUST_ACCOUNT_ID, 1,'Y');
8109 aso_debug_pub.add('98. Value of P_SHIPMENT_LINE_REC.SHIP_TO_PARTY_ID: '||p_shipment_Line_rec.SHIP_TO_PARTY_ID, 1,'Y');
8110 aso_debug_pub.add('99. Value of P_SHIPMENT_LINE_REC.SHIP_TO_PARTY_SITE_ID: '||p_shipment_line_rec.SHIP_TO_PARTY_SITE_ID, 1,'Y');
8111 aso_debug_pub.add('100. Value of p_shipment_line_rec.ATTRIBUTE_CATEGORY: '|| p_shipment_line_rec.ATTRIBUTE_CATEGORY,1,'Y');
8112 aso_debug_pub.add('101. Value of p_shipment_line_rec.FREIGHT_TERMS_CODE: '|| p_shipment_line_rec.FREIGHT_TERMS_CODE,1,'Y');
8113 aso_debug_pub.add('102. Value of p_shipment_line_rec.SHIP_FROM_ORG_ID: '|| p_shipment_line_rec.SHIP_FROM_ORG_ID,1,'Y');
8114 aso_debug_pub.add('103. Value of p_shipment_line_rec.PACKING_INSTRUCTIONS: '|| p_shipment_line_rec.PACKING_INSTRUCTIONS,1,'Y');
8115 aso_debug_pub.add('104. Value of p_shipment_line_rec.SHIPPING_INSTRUCTIONS: '|| p_shipment_line_rec.SHIPPING_INSTRUCTIONS,1,'Y');
8116 aso_debug_pub.add('105. Value of p_shipment_line_rec.SHIP_METHOD_CODE: '|| p_shipment_line_rec.SHIP_METHOD_CODE,1,'Y');
8117
8118 aso_debug_pub.add('106. Value of P_SHIPMENT_LINE_REC.REQUEST_DATE_TYPE: '||p_Shipment_line_rec.REQUEST_DATE_TYPE, 1,'Y');
8119 aso_debug_pub.add('107. Value of P_SHIPMENT_LINE_REC.REQUEST_DATE: '||P_Shipment_line_rec.REQUEST_DATE, 1,'Y');
8120 aso_debug_pub.add('108. Value of P_SHIPMENT_LINE_REC.SHIPMENT_PRIORITY_CODE: '||P_Shipment_line_rec.SHIPMENT_PRIORITY_CODE, 1,'Y');
8121 aso_debug_pub.add('109. Value of P_SHIPMENT_LINE_REC.FOB_CODE: '||P_Shipment_line_rec.FOB_CODE, 1,'Y');
8122 aso_debug_pub.add('110. Value of P_SHIPMENT_LINE_REC.DEMAND_CLASS_CODE: '||P_Shipment_line_rec.DEMAND_CLASS_CODE, 1,'Y');
8123
8124 aso_debug_pub.add('111. Value of P_QUOTE_LINE_REC.ORG_ID: '||P_quote_line_rec.ORG_ID, 1,'Y');
8125 aso_debug_pub.add('112. Value of p_quote_line_rec.AGREEMENT_ID: '|| p_quote_line_rec.AGREEMENT_ID,1,'Y');
8126 aso_debug_pub.add('113. Value of p_quote_line_rec.ATTRIBUTE1: '|| p_quote_line_rec.ATTRIBUTE1,1,'Y');
8127 aso_debug_pub.add('114. Value of p_quote_line_rec.ATTRIBUTE10: '|| p_quote_line_rec.ATTRIBUTE10,1,'Y');
8128 aso_debug_pub.add('115. Value of p_quote_line_rec.ATTRIBUTE11: '|| p_quote_line_rec.ATTRIBUTE11,1,'Y');
8129 aso_debug_pub.add('116. Value of p_quote_line_rec.ATTRIBUTE12: '|| p_quote_line_rec.ATTRIBUTE12,1,'Y');
8130 aso_debug_pub.add('117. Value of p_quote_line_rec.ATTRIBUTE13: '|| p_quote_line_rec.ATTRIBUTE13,1,'Y');
8131 aso_debug_pub.add('118. Value of p_quote_line_rec.ATTRIBUTE14: '|| p_quote_line_rec.ATTRIBUTE14,1,'Y');
8132 aso_debug_pub.add('119. Value of p_quote_line_rec.ATTRIBUTE15: '|| p_quote_line_rec.ATTRIBUTE15,1,'Y');
8133 aso_debug_pub.add('120. Value of p_quote_line_rec.ATTRIBUTE16: '|| p_quote_line_rec.ATTRIBUTE16,1,'Y');
8134 aso_debug_pub.add('121. Value of p_quote_line_rec.ATTRIBUTE17: '|| p_quote_line_rec.ATTRIBUTE17,1,'Y');
8135 aso_debug_pub.add('122. Value of p_quote_line_rec.ATTRIBUTE18: '|| p_quote_line_rec.ATTRIBUTE18,1,'Y');
8136 aso_debug_pub.add('123. Value of p_quote_line_rec.ATTRIBUTE19: '|| p_quote_line_rec.ATTRIBUTE19,1,'Y');
8137 aso_debug_pub.add('124. Value of p_quote_line_rec.ATTRIBUTE2: '|| p_quote_line_rec.ATTRIBUTE2,1,'Y');
8138 aso_debug_pub.add('125. Value of p_quote_line_rec.ATTRIBUTE20: '|| p_quote_line_rec.ATTRIBUTE20,1,'Y');
8139 aso_debug_pub.add('126. Value of p_quote_line_rec.ATTRIBUTE3: '|| p_quote_line_rec.ATTRIBUTE3,1,'Y');
8140 aso_debug_pub.add('127. Value of p_quote_line_rec.ATTRIBUTE4: '|| p_quote_line_rec.ATTRIBUTE4,1,'Y');
8141 aso_debug_pub.add('128. Value of p_quote_line_rec.ATTRIBUTE5: '|| p_quote_line_rec.ATTRIBUTE5,1,'Y');
8142 aso_debug_pub.add('129. Value of p_quote_line_rec.ATTRIBUTE6: '|| p_quote_line_rec.ATTRIBUTE6,1,'Y');
8143 aso_debug_pub.add('130. Value of p_quote_line_rec.ATTRIBUTE7: '|| p_quote_line_rec.ATTRIBUTE7,1,'Y');
8144 aso_debug_pub.add('131. Value of p_quote_line_rec.ATTRIBUTE8: '|| p_quote_line_rec.ATTRIBUTE8,1,'Y');
8145 aso_debug_pub.add('132. Value of p_quote_line_rec.ATTRIBUTE9: '|| p_quote_line_rec.ATTRIBUTE9,1,'Y');
8146 aso_debug_pub.add('133. Value of p_quote_line_rec.CREATED_BY: '|| p_quote_line_rec.CREATED_BY,1,'Y');
8147 aso_debug_pub.add('134. Value of p_quote_line_rec.ORDER_LINE_TYPE_ID: '|| p_quote_line_rec.ORDER_LINE_TYPE_ID,1,'Y');
8148 aso_debug_pub.add('135. Value of p_quote_line_rec.LAST_UPDATE_DATE: '|| p_quote_line_rec.LAST_UPDATE_DATE,1,'Y');
8149 aso_debug_pub.add('136. Value of p_quote_line_rec.LINE_CATEGORY_CODE: '|| p_quote_line_rec.LINE_CATEGORY_CODE,1,'Y');
8150 aso_debug_pub.add('137. Value of p_quote_line_rec.OBJECT_VERSION_NUMBER: '|| p_quote_line_rec.OBJECT_VERSION_NUMBER,1,'Y');
8151 aso_debug_pub.add('138. Value of p_quote_line_rec.QUOTE_HEADER_ID: '|| p_quote_line_rec.QUOTE_HEADER_ID,1,'Y');
8152 aso_debug_pub.add('139. Value of p_quote_line_rec.QUOTE_LINE_ID: '|| p_quote_line_rec.QUOTE_LINE_ID,1,'Y');
8153
8154 aso_debug_pub.add('** Line Attributes End **', 1, 'Y');
8155 END IF ;
8156
8157 ELSIF p_begin_flag = 'N' THEN
8158
8159 IF p_def_object_name = 'ASO_AK_QUOTE_HEADER_V' THEN
8160
8161 --Header Attributes(Output)
8162 aso_debug_pub.add('** Header Attributes Start **', 1, 'Y');
8163
8164 aso_debug_pub.add('1. Value of x_QUOTE_HEADER_REC.PRICE_LIST_ID: '||x_quote_header_rec.PRICE_LIST_ID, 1,'Y');
8165 aso_debug_pub.add('2. Value of x_QUOTE_HEADER_REC.CURRENCY_CODE: '||x_quote_header_rec.CURRENCY_CODE, 1,'Y');
8166 aso_debug_pub.add('3. Value of x_QUOTE_HEADER_REC.SALES_CHANNEL_CODE: '||x_quote_header_rec.SALES_CHANNEL_CODE, 1,'Y');
8167 aso_debug_pub.add('4. Value of x_QUOTE_HEADER_REC.AUTOMATIC_PRICE_FLAG: '||x_quote_header_rec.AUTOMATIC_PRICE_FLAG, 1,'Y');
8168 aso_debug_pub.add('5. Value of x_QUOTE_HEADER_REC.AUTOMATIC_TAX_FLAG: '||x_quote_header_rec.AUTOMATIC_TAX_FLAG, 1,'Y');
8169 aso_debug_pub.add('6. Value of x_QUOTE_HEADER_REC.PHONE_ID: '||x_quote_header_rec.phone_id, 1,'Y');
8170
8171 aso_debug_pub.add('7. Value of x_QUOTE_HEADER_REC.CUST_PARTY_ID: '||x_quote_header_rec.cust_party_id, 1,'Y');
8172 aso_debug_pub.add('8. Value of x_QUOTE_HEADER_REC.CUST_ACCOUNT_ID: '||x_quote_header_rec.CUST_ACCOUNT_ID, 1,'Y');
8173 aso_debug_pub.add('9. Value of x_QUOTE_HEADER_REC.PARTY_ID: '||x_quote_header_rec.party_id, 1,'Y');
8174 aso_debug_pub.add('10. Value of x_QUOTE_HEADER_REC.SOLD_TO_PARTY_SITE_ID: '||x_quote_header_rec.SOLD_TO_PARTY_SITE_ID, 1,'Y');
8175
8176 aso_debug_pub.add('11. Value of x_QUOTE_HEADER_REC.INVOICE_TO_CUST_PARTY_ID: '||x_quote_header_rec.INVOICE_TO_CUST_PARTY_ID, 1,'Y');
8177 aso_debug_pub.add('12. Value of x_QUOTE_HEADER_REC.INVOICE_TO_CUST_ACCOUNT_ID:'||x_quote_header_rec.INVOICE_TO_CUST_ACCOUNT_ID, 1,'Y');
8178 aso_debug_pub.add('13. Value of x_QUOTE_HEADER_REC.INVOICE_TO_PARTY_ID: '||x_quote_header_rec.INVOICE_TO_PARTY_ID, 1,'Y');
8179 aso_debug_pub.add('14. Value of x_QUOTE_HEADER_REC.INVOICE_TO_PARTY_SITE_ID: '||x_quote_header_rec.INVOICE_TO_PARTY_SITE_ID, 1,'Y');
8180
8181 aso_debug_pub.add('15. Value of x_QUOTE_HEADER_REC.ATTRIBUTE_CATEGORY: '|| x_quote_header_rec.ATTRIBUTE_CATEGORY,1,'Y');
8182 aso_debug_pub.add('16. Value of x_QUOTE_HEADER_REC.CONTRACT_ID: '|| x_quote_header_rec.CONTRACT_ID,1,'Y');
8183 aso_debug_pub.add('17. Value of x_QUOTE_HEADER_REC.CONTRACT_TEMPLATE_ID: '|| x_quote_header_rec.CONTRACT_TEMPLATE_ID,1,'Y');
8184 aso_debug_pub.add('18. Value of x_QUOTE_HEADER_REC.CREATED_BY: '|| x_quote_header_rec.CREATED_BY,1,'Y');
8185 aso_debug_pub.add('19. Value of x_QUOTE_HEADER_REC.LAST_UPDATE_DATE: '|| x_quote_header_rec.LAST_UPDATE_DATE,1,'Y');
8186 aso_debug_pub.add('20. Value of x_QUOTE_HEADER_REC.MARKETING_SOURCE_CODE_ID: '|| x_quote_header_rec.MARKETING_SOURCE_CODE_ID,1,'Y');
8187 aso_debug_pub.add('21. Value of x_QUOTE_HEADER_REC.OBJECT_VERSION_NUMBER: '|| x_quote_header_rec.OBJECT_VERSION_NUMBER,1,'Y');
8188 aso_debug_pub.add('22. Value of x_QUOTE_HEADER_REC.ORDER_TYPE_ID: '|| x_quote_header_rec.ORDER_TYPE_ID,1,'Y');
8189 aso_debug_pub.add('23. Value of x_QUOTE_HEADER_REC.PHONE_ID: '|| x_quote_header_rec.PHONE_ID,1,'Y');
8190 aso_debug_pub.add('24. Value of x_QUOTE_HEADER_REC.PRICE_FROZEN_DATE: '|| x_quote_header_rec.PRICE_FROZEN_DATE,1,'Y');
8191 aso_debug_pub.add('25. Value of x_QUOTE_HEADER_REC.QUOTE_EXPIRATION_DATE: '|| x_quote_header_rec.QUOTE_EXPIRATION_DATE,1,'Y');
8192 aso_debug_pub.add('26. Value of x_QUOTE_HEADER_REC.QUOTE_HEADER_ID: '|| x_quote_header_rec.QUOTE_HEADER_ID,1,'Y');
8193 aso_debug_pub.add('27. Value of x_QUOTE_HEADER_REC.QUOTE_NAME: '|| x_quote_header_rec.QUOTE_NAME,1,'Y');
8194 aso_debug_pub.add('28. Value of x_QUOTE_HEADER_REC.QUOTE_STATUS_ID: '|| x_quote_header_rec.QUOTE_STATUS_ID,1,'Y');
8195 aso_debug_pub.add('29. Value of x_QUOTE_HEADER_REC.RESOURCE_GRP_ID: '|| x_quote_header_rec.RESOURCE_GRP_ID,1,'Y');
8196 aso_debug_pub.add('30. Value of x_QUOTE_HEADER_REC.RESOURCE_ID: '|| x_quote_header_rec.RESOURCE_ID,1,'Y');
8197 aso_debug_pub.add('31. Value of x_QUOTE_HEADER_REC.RESOURCE_ID: '||x_quote_header_rec.resource_id, 1,'Y');
8198
8199 aso_debug_pub.add('32. Value of x_SHIPMENT_HEADER_REC.ship_TO_CUST_PARTY_ID: '||x_shipment_header_rec.ship_TO_CUST_PARTY_ID, 1,'Y');
8200 aso_debug_pub.add('33. Value of x_SHIPMENT_HEADER_REC.ship_TO_CUST_ACCOUNT_ID:'||x_shipment_header_rec.ship_TO_CUST_ACCOUNT_ID, 1,'Y');
8201 aso_debug_pub.add('34. Value of x_SHIPMENT_HEADER_REC.ship_TO_PARTY_ID: '||x_shipment_header_rec.ship_TO_PARTY_ID, 1,'Y');
8202 aso_debug_pub.add('35. Value of x_SHIPMENT_HEADER_REC.ship_TO_PARTY_SITE_ID: '||x_shipment_header_rec.ship_TO_PARTY_SITE_ID, 1,'Y');
8203 aso_debug_pub.add('36. Value of x_SHIPMENT_HEADER_REC.REQUEST_DATE_TYPE: '||x_Shipment_header_rec.REQUEST_DATE_TYPE, 1,'Y');
8204 aso_debug_pub.add('37. Value of x_SHIPMENT_HEADER_REC.REQUEST_DATE: '||x_Shipment_header_rec.REQUEST_DATE, 1,'Y');
8205 aso_debug_pub.add('38. Value of x_SHIPMENT_HEADER_REC.SHIPMENT_PRIORITY_CODE: '||x_Shipment_header_rec.SHIPMENT_PRIORITY_CODE, 1,'Y');
8206 aso_debug_pub.add('39. Value of x_SHIPMENT_HEADER_REC.FOB_CODE: '||x_Shipment_header_rec.FOB_CODE, 1,'Y');
8207 aso_debug_pub.add('40. Value of x_SHIPMENT_HEADER_REC.DEMAND_CLASS_CODE: '||x_Shipment_header_rec.DEMAND_CLASS_CODE, 1,'Y');
8208 aso_debug_pub.add('41. Value of x_SHIPMENT_HEADER_REC.SHIPPING_INSTRUCTIONS: '|| x_SHIPMENT_HEADER_REC.SHIPPING_INSTRUCTIONS,1,'Y');
8209 aso_debug_pub.add('42. Value of x_SHIPMENT_HEADER_REC.PACKING_INSTRUCTIONS: '|| x_shipment_header_rec.PACKING_INSTRUCTIONS,1,'Y');
8210 aso_debug_pub.add('43. Value of x_SHIPMENT_HEADER_REC.ship_METHOD_CODE: '|| x_SHIPMENT_HEADER_REC.ship_METHOD_CODE,1,'Y');
8211 aso_debug_pub.add('44. Value of x_SHIPMENT_HEADER_REC.FREIGHT_TERMS_CODE: '|| x_SHIPMENT_HEADER_REC.FREIGHT_TERMS_CODE,1,'Y');
8212
8213 aso_debug_pub.add('45. Value of x_PAYMENT_HEADER_REC.PAYMENT_TYPE_CODE: '||x_Payment_header_rec.PAYMENT_TYPE_CODE, 1,'Y');
8214 aso_debug_pub.add('46. Value of x_PAYMENT_HEADER_REC.CREDIT_CARD_CODE: '||x_Payment_header_rec.CREDIT_CARD_CODE, 1,'Y');
8215 aso_debug_pub.add('47. Value of x_PAYMENT_HEADER_REC.CREDIT_CARD_EXPIRATION_DATE:'|| x_PAYMENT_HEADER_REC.CREDIT_CARD_EXPIRATION_DATE,1,'Y');
8216 aso_debug_pub.add('48. Value of x_PAYMENT_HEADER_REC.CREDIT_CARD_HOLDER_NAME: '|| x_PAYMENT_HEADER_REC.CREDIT_CARD_HOLDER_NAME,1,'Y');
8217 aso_debug_pub.add('49. Value of x_PAYMENT_HEADER_REC.CUST_PO_NUMBER: '|| x_payment_header_rec.CUST_PO_NUMBER,1,'Y');
8218 aso_debug_pub.add('50. Value of x_PAYMENT_HEADER_REC.PAYMENT_REF_NUMBER: '|| x_PAYMENT_HEADER_REC.PAYMENT_REF_NUMBER,1,'Y');
8219 aso_debug_pub.add('51. Value of x_PAYMENT_HEADER_REC.PAYMENT_TERM_ID: '|| x_PAYMENT_HEADER_REC.PAYMENT_TERM_ID,1,'Y');
8220
8221 aso_debug_pub.add('52. Value of x_QUOTE_HEADER_REC.END_CUSTOMER_CUST_PARTY_ID: '||x_quote_header_rec.end_customer_cust_party_id, 1,'Y');
8222 aso_debug_pub.add('53. Value of x_QUOTE_HEADER_REC.END_CUSTOMER_CUST_ACCOUNT_ID:'||x_quote_header_rec.END_CUSTOMER_CUST_ACCOUNT_ID, 1,'Y');
8223 aso_debug_pub.add('54. Value of x_QUOTE_HEADER_REC.END_CUSTOMER_PARTY_ID: '||x_quote_header_rec.END_CUSTOMER_PARTY_ID, 1,'Y');
8224 aso_debug_pub.add('55. Value of x_QUOTE_HEADER_REC.END_CUSTOMER_PARTY_SITE_ID: '||x_quote_header_rec.END_CUSTOMER_PARTY_SITE_ID, 1,'Y');
8225
8226 aso_debug_pub.add('56. Value of x_QUOTE_HEADER_REC.ORG_ID: '||x_quote_header_rec.ORG_ID, 1,'Y');
8227 aso_debug_pub.add('57. Value of x_QUOTE_HEADER_REC.ATTRIBUTE1: '|| x_quote_header_rec.ATTRIBUTE1,1,'Y');
8228 aso_debug_pub.add('58. Value of x_QUOTE_HEADER_REC.ATTRIBUTE10: '|| x_quote_header_rec.ATTRIBUTE10,1,'Y');
8229 aso_debug_pub.add('59. Value of x_QUOTE_HEADER_REC.ATTRIBUTE11: '|| x_quote_header_rec.ATTRIBUTE11,1,'Y');
8230 aso_debug_pub.add('60. Value of x_QUOTE_HEADER_REC.ATTRIBUTE12: '|| x_quote_header_rec.ATTRIBUTE12,1,'Y');
8231 aso_debug_pub.add('61. Value of x_QUOTE_HEADER_REC.ATTRIBUTE13: '|| x_quote_header_rec.ATTRIBUTE13,1,'Y');
8232 aso_debug_pub.add('62. Value of x_QUOTE_HEADER_REC.ATTRIBUTE14: '|| x_quote_header_rec.ATTRIBUTE14,1,'Y');
8233 aso_debug_pub.add('63. Value of x_QUOTE_HEADER_REC.ATTRIBUTE15: '|| x_quote_header_rec.ATTRIBUTE15,1,'Y');
8234 aso_debug_pub.add('64. Value of x_QUOTE_HEADER_REC.ATTRIBUTE16: '|| x_quote_header_rec.ATTRIBUTE16,1,'Y');
8235 aso_debug_pub.add('65. Value of x_QUOTE_HEADER_REC.ATTRIBUTE17: '|| x_quote_header_rec.ATTRIBUTE17,1,'Y');
8236 aso_debug_pub.add('66. Value of x_QUOTE_HEADER_REC.ATTRIBUTE18: '|| x_quote_header_rec.ATTRIBUTE18,1,'Y');
8237 aso_debug_pub.add('67. Value of x_QUOTE_HEADER_REC.ATTRIBUTE19: '|| x_quote_header_rec.ATTRIBUTE19,1,'Y');
8238 aso_debug_pub.add('68. Value of x_QUOTE_HEADER_REC.ATTRIBUTE2: '|| x_quote_header_rec.ATTRIBUTE2,1,'Y');
8239 aso_debug_pub.add('69. Value of x_QUOTE_HEADER_REC.ATTRIBUTE20: '|| x_quote_header_rec.ATTRIBUTE20,1,'Y');
8240 aso_debug_pub.add('70. Value of x_QUOTE_HEADER_REC.ATTRIBUTE3: '|| x_quote_header_rec.ATTRIBUTE3,1,'Y');
8241 aso_debug_pub.add('71. Value of x_QUOTE_HEADER_REC.ATTRIBUTE4: '|| x_quote_header_rec.ATTRIBUTE4,1,'Y');
8242 aso_debug_pub.add('72. Value of x_QUOTE_HEADER_REC.ATTRIBUTE5: '|| x_quote_header_rec.ATTRIBUTE5,1,'Y');
8243 aso_debug_pub.add('73. Value of x_QUOTE_HEADER_REC.ATTRIBUTE6: '|| x_quote_header_rec.ATTRIBUTE6,1,'Y');
8244 aso_debug_pub.add('74. Value of x_QUOTE_HEADER_REC.ATTRIBUTE7: '|| x_quote_header_rec.ATTRIBUTE7,1,'Y');
8245 aso_debug_pub.add('75. Value of x_QUOTE_HEADER_REC.ATTRIBUTE8: '|| x_quote_header_rec.ATTRIBUTE8,1,'Y');
8246 aso_debug_pub.add('76. Value of x_QUOTE_HEADER_REC.ATTRIBUTE9: '|| x_quote_header_rec.ATTRIBUTE9,1,'Y');
8247 aso_debug_pub.add('** Header Attributes End **', 1, 'Y');
8248
8249 ELSIF p_def_object_name = 'ASO_AK_QUOTE_LINE_V' THEN
8250 --Line Attributes (Input)
8251 aso_debug_pub.add('** Line Attributes Start **', 1, 'Y');
8252
8253 aso_debug_pub.add('78. Value of x_QUOTE_LINE_REC.CHARGE_PERIODICITY_CODE: '||x_quote_line_rec.CHARGE_PERIODICITY_CODE,1,'Y');
8254 aso_debug_pub.add('79. Value of x_QUOTE_LINE_REC.PRICE_LIST_ID: '||x_quote_line_rec.PRICE_LIST_ID, 1,'Y');
8255
8256 aso_debug_pub.add('80. Value of x_QUOTE_LINE_REC.INVOICE_TO_CUST_PARTY_ID: '||x_quote_line_rec.INVOICE_TO_CUST_PARTY_ID, 1,'Y');
8257 aso_debug_pub.add('81. Value of x_QUOTE_LINE_REC.INVOICE_TO_CUST_ACCOUNT_ID: '||x_quote_line_rec.INVOICE_TO_CUST_ACCOUNT_ID, 1,'Y');
8258 aso_debug_pub.add('82. Value of x_QUOTE_LINE_REC.INVOICE_TO_PARTY_ID '||x_quote_Line_rec.INVOICE_TO_PARTY_ID, 1,'Y');
8259 aso_debug_pub.add('83. Value of x_QUOTE_LINE_REC.INVOICE_TO_PARTY_SITE_ID: '||x_quote_line_rec.INVOICE_TO_PARTY_SITE_ID, 1,'Y');
8260
8261 aso_debug_pub.add('84. Value of x_QUOTE_LINE_REC.END_CUSTOMER_CUST_PARTY_ID: '||x_quote_line_rec.end_customer_cust_party_id, 1,'Y');
8262 aso_debug_pub.add('85. Value of x_QUOTE_LINE_REC.END_CUSTOMER_CUST_ACCOUNT_ID: '||x_quote_line_rec.END_CUSTOMER_CUST_ACCOUNT_ID, 1,'Y');
8263 aso_debug_pub.add('86. Value of x_QUOTE_LINE_REC.END_CUSTOMER_PARTY_ID: '||x_quote_Line_rec.END_CUSTOMER_PARTY_ID, 1,'Y');
8264 aso_debug_pub.add('87. Value of x_QUOTE_LINE_REC.END_CUSTOMER_PARTY_SITE_ID: '||x_quote_line_rec.END_CUSTOMER_PARTY_SITE_ID, 1,'Y');
8265
8266 aso_debug_pub.add('88. Value of x_PAYMENT_LINE_REC.PAYMENT_TYPE_CODE: '||x_Payment_line_rec.PAYMENT_TYPE_CODE, 1,'Y');
8267 aso_debug_pub.add('89. Value of x_PAYMENT_LINE_REC.CREDIT_CARD_CODE: '||x_Payment_line_rec.CREDIT_CARD_CODE, 1,'Y');
8268 aso_debug_pub.add('90. Value of x_payment_line_rec.CREDIT_CARD_EXPIRATION_DATE:'|| x_payment_line_rec.CREDIT_CARD_EXPIRATION_DATE,1,'Y');
8269 aso_debug_pub.add('91. Value of x_payment_line_rec.CREDIT_CARD_HOLDER_NAME: '|| x_payment_line_rec.CREDIT_CARD_HOLDER_NAME,1,'Y');
8270 aso_debug_pub.add('92. Value of x_payment_line_rec.CUST_PO_LINE_NUMBER: '|| x_payment_line_rec.CUST_PO_LINE_NUMBER,1,'Y');
8271 aso_debug_pub.add('93. Value of x_payment_line_rec.CUST_PO_NUMBER: '|| x_payment_line_rec.CUST_PO_NUMBER,1,'Y');
8272 aso_debug_pub.add('94. Value of x_payment_line_rec.PAYMENT_REF_NUMBER: '|| x_payment_line_rec.PAYMENT_REF_NUMBER,1,'Y');
8273 aso_debug_pub.add('95. Value of x_payment_line_rec.PAYMENT_TERM_ID: '|| x_payment_line_rec.PAYMENT_TERM_ID,1,'Y');
8274
8275
8276 aso_debug_pub.add('96. Value of x_SHIPMENT_LINE_REC.ship_TO_CUST_PARTY_ID: '||x_shipment_line_rec.ship_TO_CUST_PARTY_ID, 1,'Y');
8277 aso_debug_pub.add('97. Value of x_SHIPMENT_LINE_REC.ship_TO_CUST_ACCOUNT_ID: '||x_shipment_line_rec.ship_TO_CUST_ACCOUNT_ID, 1,'Y');
8278 aso_debug_pub.add('98. Value of x_SHIPMENT_LINE_REC.ship_TO_PARTY_ID: '||x_shipment_Line_rec.ship_TO_PARTY_ID, 1,'Y');
8279 aso_debug_pub.add('99. Value of x_SHIPMENT_LINE_REC.ship_TO_PARTY_SITE_ID: '||x_shipment_line_rec.ship_TO_PARTY_SITE_ID, 1,'Y');
8280 aso_debug_pub.add('100. Value of x_shipment_line_rec.ATTRIBUTE_CATEGORY: '|| x_shipment_line_rec.ATTRIBUTE_CATEGORY,1,'Y');
8281 aso_debug_pub.add('101. Value of x_shipment_line_rec.FREIGHT_TERMS_CODE: '|| x_shipment_line_rec.FREIGHT_TERMS_CODE,1,'Y');
8282 aso_debug_pub.add('102. Value of x_shipment_line_rec.ship_FROM_ORG_ID: '|| x_shipment_line_rec.ship_FROM_ORG_ID,1,'Y');
8283 aso_debug_pub.add('103. Value of x_shipment_line_rec.PACKING_INSTRUCTIONS: '|| x_shipment_line_rec.PACKING_INSTRUCTIONS,1,'Y');
8284 aso_debug_pub.add('104. Value of x_shipment_line_rec.SHIPPING_INSTRUCTIONS: '|| x_shipment_line_rec.SHIPPING_INSTRUCTIONS,1,'Y');
8285 aso_debug_pub.add('105. Value of x_shipment_line_rec.ship_METHOD_CODE: '|| x_shipment_line_rec.ship_METHOD_CODE,1,'Y');
8286
8287 aso_debug_pub.add('106. Value of x_SHIPMENT_LINE_REC.REQUEST_DATE_TYPE: '||x_Shipment_line_rec.REQUEST_DATE_TYPE, 1,'Y');
8288 aso_debug_pub.add('107. Value of x_SHIPMENT_LINE_REC.REQUEST_DATE: '||x_Shipment_line_rec.REQUEST_DATE, 1,'Y');
8289 aso_debug_pub.add('108. Value of x_SHIPMENT_LINE_REC.SHIPMENT_PRIORITY_CODE: '||x_Shipment_line_rec.SHIPMENT_PRIORITY_CODE, 1,'Y');
8290 aso_debug_pub.add('109. Value of x_SHIPMENT_LINE_REC.FOB_CODE: '||x_Shipment_line_rec.FOB_CODE, 1,'Y');
8291 aso_debug_pub.add('110. Value of x_SHIPMENT_LINE_REC.DEMAND_CLASS_CODE: '||x_Shipment_line_rec.DEMAND_CLASS_CODE, 1,'Y');
8292
8293 aso_debug_pub.add('111. Value of x_QUOTE_LINE_REC.ORG_ID: '||x_quote_line_rec.ORG_ID, 1,'Y');
8294 aso_debug_pub.add('112. Value of x_quote_line_rec.AGREEMENT_ID: '|| x_quote_line_rec.AGREEMENT_ID,1,'Y');
8295 aso_debug_pub.add('113. Value of x_quote_line_rec.ATTRIBUTE1: '|| x_quote_line_rec.ATTRIBUTE1,1,'Y');
8296 aso_debug_pub.add('114. Value of x_quote_line_rec.ATTRIBUTE10: '|| x_quote_line_rec.ATTRIBUTE10,1,'Y');
8297 aso_debug_pub.add('115. Value of x_quote_line_rec.ATTRIBUTE11: '|| x_quote_line_rec.ATTRIBUTE11,1,'Y');
8298 aso_debug_pub.add('116. Value of x_quote_line_rec.ATTRIBUTE12: '|| x_quote_line_rec.ATTRIBUTE12,1,'Y');
8299 aso_debug_pub.add('117. Value of x_quote_line_rec.ATTRIBUTE13: '|| x_quote_line_rec.ATTRIBUTE13,1,'Y');
8300 aso_debug_pub.add('118. Value of x_quote_line_rec.ATTRIBUTE14: '|| x_quote_line_rec.ATTRIBUTE14,1,'Y');
8301 aso_debug_pub.add('119. Value of x_quote_line_rec.ATTRIBUTE15: '|| x_quote_line_rec.ATTRIBUTE15,1,'Y');
8302 aso_debug_pub.add('120. Value of x_quote_line_rec.ATTRIBUTE16: '|| x_quote_line_rec.ATTRIBUTE16,1,'Y');
8303 aso_debug_pub.add('121. Value of x_quote_line_rec.ATTRIBUTE17: '|| x_quote_line_rec.ATTRIBUTE17,1,'Y');
8304 aso_debug_pub.add('122. Value of x_quote_line_rec.ATTRIBUTE18: '|| x_quote_line_rec.ATTRIBUTE18,1,'Y');
8305 aso_debug_pub.add('123. Value of x_quote_line_rec.ATTRIBUTE19: '|| x_quote_line_rec.ATTRIBUTE19,1,'Y');
8306 aso_debug_pub.add('124. Value of x_quote_line_rec.ATTRIBUTE2: '|| x_quote_line_rec.ATTRIBUTE2,1,'Y');
8307 aso_debug_pub.add('125. Value of x_quote_line_rec.ATTRIBUTE20: '|| x_quote_line_rec.ATTRIBUTE20,1,'Y');
8308 aso_debug_pub.add('126. Value of x_quote_line_rec.ATTRIBUTE3: '|| x_quote_line_rec.ATTRIBUTE3,1,'Y');
8309 aso_debug_pub.add('127. Value of x_quote_line_rec.ATTRIBUTE4: '|| x_quote_line_rec.ATTRIBUTE4,1,'Y');
8310 aso_debug_pub.add('128. Value of x_quote_line_rec.ATTRIBUTE5: '|| x_quote_line_rec.ATTRIBUTE5,1,'Y');
8311 aso_debug_pub.add('129. Value of x_quote_line_rec.ATTRIBUTE6: '|| x_quote_line_rec.ATTRIBUTE6,1,'Y');
8312 aso_debug_pub.add('130. Value of x_quote_line_rec.ATTRIBUTE7: '|| x_quote_line_rec.ATTRIBUTE7,1,'Y');
8313 aso_debug_pub.add('131. Value of x_quote_line_rec.ATTRIBUTE8: '|| x_quote_line_rec.ATTRIBUTE8,1,'Y');
8314 aso_debug_pub.add('132. Value of x_quote_line_rec.ATTRIBUTE9: '|| x_quote_line_rec.ATTRIBUTE9,1,'Y');
8315 aso_debug_pub.add('133. Value of x_quote_line_rec.CREATED_BY: '|| x_quote_line_rec.CREATED_BY,1,'Y');
8316 aso_debug_pub.add('134. Value of x_quote_line_rec.ORDER_LINE_TYPE_ID: '|| x_quote_line_rec.ORDER_LINE_TYPE_ID,1,'Y');
8317 aso_debug_pub.add('135. Value of x_quote_line_rec.LAST_UPDATE_DATE: '|| x_quote_line_rec.LAST_UPDATE_DATE,1,'Y');
8318 aso_debug_pub.add('136. Value of x_quote_line_rec.LINE_CATEGORY_CODE: '|| x_quote_line_rec.LINE_CATEGORY_CODE,1,'Y');
8319 aso_debug_pub.add('137. Value of x_quote_line_rec.OBJECT_VERSION_NUMBER: '|| x_quote_line_rec.OBJECT_VERSION_NUMBER,1,'Y');
8320 aso_debug_pub.add('138. Value of x_quote_line_rec.QUOTE_HEADER_ID: '|| x_quote_line_rec.QUOTE_HEADER_ID,1,'Y');
8321 aso_debug_pub.add('139. Value of x_quote_line_rec.QUOTE_LINE_ID: '|| x_quote_line_rec.QUOTE_LINE_ID,1,'Y');
8322
8323 aso_debug_pub.add('** Line Attributes End **', 1, 'Y');
8324 END IF;
8325 END IF ;
8326 END;
8327
8328 BEGIN
8329
8330 aso_debug_pub.g_debug_flag := nvl(fnd_profile.value('ASO_ENABLE_DEBUG'),'N');
8331
8332 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8333 aso_debug_pub.add('******************************************************', 1, 'Y');
8334 aso_debug_pub.add('Begin VALIDATE_DEFAULTING_DATA', 1, 'Y');
8335 aso_debug_pub.add('******************************************************', 1, 'Y');
8336 END IF;
8337 -- Standard call to check for call compatibility.
8338 -- IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
8339 -- p_api_version_number,
8340 -- l_api_name,
8341 -- G_PKG_NAME) THEN
8342 --
8343 -- RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8344 -- END IF;
8345 -- Initialize message list if p_init_msg_list is set to TRUE.
8346 IF FND_API.to_Boolean( p_init_msg_list ) THEN
8347 FND_MSG_PUB.initialize;
8348 END IF;
8349
8350 --- Initialize API return status to SUCCESS
8351 x_return_status := FND_API.G_RET_STS_SUCCESS;
8352
8353 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8354 aso_debug_pub.add('Before copying all the input parameters to output parameters', 1, 'Y');
8355 END IF;
8356
8357 X_quote_header_rec := P_quote_header_rec ;
8358 X_quote_line_rec := P_quote_line_rec ;
8359 X_Shipment_header_rec := P_Shipment_header_rec ;
8360 X_Shipment_line_rec := P_shipment_line_rec ;
8361 X_Payment_header_rec := P_Payment_header_rec ;
8362 X_Payment_line_rec := P_Payment_line_rec ;
8363 X_tax_header_rec := P_tax_header_rec ;
8364 X_tax_line_rec := P_tax_line_rec ;
8365
8366 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8367 aso_debug_pub.add('Copied all the input parameters to output parameters', 1, 'Y');
8368 END IF;
8369
8370
8371 --For charged periodicity
8372 l_periodicity_profile := FND_PROFILE.value('ONT_UOM_CLASS_CHARGE_PERIODICITY');
8373 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8374 aso_debug_pub.add('Value of profile ONT_UOM_CLASS_CHARGE_PERIODICITY : '||l_periodicity_profile, 1, 'Y');
8375 END IF;
8376
8377 --Printing the Values before processing
8378 PRINT_DEFAULTING_ATTRIBUTES('Y');
8379
8380 --Shipment Priority
8381
8382 if ( p_shipment_header_rec.SHIPMENT_PRIORITY_CODE is NOT NULL
8383 AND p_shipment_header_rec.SHIPMENT_PRIORITY_CODE <> FND_API.G_MISS_CHAR) THEN
8384
8385 aso_debug_pub.add('Before opening Cursor C_SHIPMENT_PRIORITY_CODE--Header Level', 1, 'Y');
8386 OPEN C_SHIPMENT_PRIORITY_CODE(P_Shipment_header_rec.SHIPMENT_PRIORITY_CODE); --Header Level
8387 aso_debug_pub.add('Before fetching Cursor C_SHIPMENT_PRIORITY_CODE--Header Level', 1, 'Y');
8388 FETCH C_SHIPMENT_PRIORITY_CODE INTO l_data_exists ;
8389
8390 IF C_SHIPMENT_PRIORITY_CODE%FOUND THEN
8391 x_Shipment_header_rec.SHIPMENT_PRIORITY_CODE := P_Shipment_header_rec.SHIPMENT_PRIORITY_CODE;
8392 ELSE
8393 x_Shipment_header_rec.SHIPMENT_PRIORITY_CODE := NULL ;
8394 aso_debug_pub.add('No Data Found for Cursor...C_SHIPMENT_PRIORITY_CODE--Header Level', 1, 'Y');
8395
8396 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
8397 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_SHPMT_PRIORITY', TRUE);
8398 FND_MSG_PUB.ADD;
8399
8400 aso_debug_pub.add('No Data Found for Cursor C_SHIPMENT_PRIORITY_CODE--Header Level', 1, 'Y');
8401 END IF;
8402 aso_debug_pub.add('Before Closing Cursor C_SHIPMENT_PRIORITY_CODE-Header Level', 1, 'Y');
8403 CLOSE C_SHIPMENT_PRIORITY_CODE;
8404 aso_debug_pub.add('After Closing Cursor C_SHIPMENT_PRIORITY_CODE-Header Level', 1, 'Y');
8405
8406 END IF;
8407
8408 if ( p_shipment_line_rec.SHIPMENT_PRIORITY_CODE is NOT NULL
8409 AND p_shipment_line_rec.SHIPMENT_PRIORITY_CODE <> FND_API.G_MISS_CHAR) THEN
8410
8411 aso_debug_pub.add('Before opening Cursor C_SHIPMENT_PRIORITY_CODE--Line Level', 1, 'Y');
8412 OPEN C_SHIPMENT_PRIORITY_CODE(P_Shipment_line_rec.SHIPMENT_PRIORITY_CODE); --line Level
8413 aso_debug_pub.add('Before fetching Cursor C_SHIPMENT_PRIORITY_CODE--Line Level', 1, 'Y');
8414
8415 FETCH C_SHIPMENT_PRIORITY_CODE INTO l_data_exists ;
8416
8417 IF C_SHIPMENT_PRIORITY_CODE%FOUND THEN
8418 x_Shipment_line_rec.SHIPMENT_PRIORITY_CODE := P_Shipment_line_rec.SHIPMENT_PRIORITY_CODE;
8419 ELSE
8420 x_Shipment_line_rec.SHIPMENT_PRIORITY_CODE := NULL ;
8421 aso_debug_pub.add('No Data Found for Cursor...C_SHIPMENT_PRIORITY_CODE--Line Level', 1, 'Y');
8422 --x_return_status := FND_API.G_RET_STS_ERROR;
8423 END IF;
8424 aso_debug_pub.add('Before Closing Cursor C_SHIPMENT_PRIORITY_CODE-Line Level', 1, 'Y');
8425 CLOSE C_SHIPMENT_PRIORITY_CODE;
8426 aso_debug_pub.add('After Closing Cursor C_SHIPMENT_PRIORITY_CODE-Line Level', 1, 'Y');
8427
8428 END IF;
8429
8430 --FOB CODE
8431
8432 if ( p_shipment_header_rec.FOB_CODE is NOT NULL
8433 AND p_shipment_header_rec.FOB_CODE <> FND_API.G_MISS_CHAR) THEN
8434 aso_debug_pub.add('Before opening Cursor C_FOB--Header Level', 1, 'Y');
8435 OPEN C_FOB(P_Shipment_header_rec.FOB_CODE) ; --Header Level
8436 aso_debug_pub.add('Before fetching Cursor C_FOB--Header Level', 1, 'Y');
8437
8438 FETCH C_FOB INTO l_data_exists ;
8439
8440 IF C_FOB%FOUND THEN
8441 x_Shipment_header_rec.FOB_CODE := P_Shipment_header_rec.FOB_CODE ;
8442 ELSE
8443 x_Shipment_header_rec.FOB_CODE := NULL ;
8444 aso_debug_pub.add('No Data Found for Cursor...C_FOB--Header Level', 1, 'Y');
8445
8446 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
8447 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_FOB', TRUE);
8448 FND_MSG_PUB.ADD;
8449
8450 --x_return_status := FND_API.G_RET_STS_ERROR;
8451 END IF;
8452 aso_debug_pub.add('Before Closing Cursor C_FOB--Header Level', 1, 'Y');
8453 CLOSE C_FOB;
8454 aso_debug_pub.add('After Closing Cursor C_FOB--Header Level', 1, 'Y');
8455
8456 END IF;
8457
8458 if ( p_shipment_line_rec.FOB_CODE is NOT NULL
8459 AND p_shipment_line_rec.FOB_CODE <> FND_API.G_MISS_CHAR) THEN
8460 aso_debug_pub.add('Before opening Cursor C_FOB--Line Level', 1, 'Y');
8461 OPEN C_FOB(P_Shipment_line_rec.FOB_CODE) ; --line Level
8462 aso_debug_pub.add('Before fetching Cursor C_FOB--Line Level', 1, 'Y');
8463 FETCH C_FOB INTO l_data_exists ;
8464
8465 IF C_FOB%FOUND THEN
8466 x_Shipment_line_rec.FOB_CODE := P_Shipment_line_rec.FOB_CODE ;
8467 ELSE
8468 x_Shipment_line_rec.FOB_CODE := NULL ;
8469 aso_debug_pub.add('No Data Found for Cursor...C_FOB--Line Level', 1, 'Y');
8470 --x_return_status := FND_API.G_RET_STS_ERROR;
8471 END IF;
8472 aso_debug_pub.add('Before Closing Cursor C_FOB--Line Level', 1, 'Y');
8473 CLOSE C_FOB;
8474 aso_debug_pub.add('After Closing Cursor C_FOB--Line Level', 1, 'Y');
8475
8476 END IF;
8477
8478 --Credit Card Type
8479
8480 if ( P_Payment_header_rec.CREDIT_CARD_CODE is NOT NULL
8481 AND P_Payment_header_rec.CREDIT_CARD_CODE <> FND_API.G_MISS_CHAR ) THEN
8482
8483 IF (P_Payment_header_rec.PAYMENT_TYPE_CODE = 'CREDIT_CARD') THEN
8484
8485 aso_debug_pub.add('Before opening Cursor C_CREDIT_CARD_TYPE--Header Level', 1, 'Y');
8486
8487 OPEN C_CREDIT_CARD_TYPE(P_Payment_header_rec.CREDIT_CARD_CODE) ; --Header Level
8488 aso_debug_pub.add('Before fetching Cursor C_CREDIT_CARD_TYPE--Header Level', 1, 'Y');
8489 FETCH C_CREDIT_CARD_TYPE INTO l_data_exists ;
8490
8491 IF C_CREDIT_CARD_TYPE%FOUND THEN
8492 x_Payment_header_rec.CREDIT_CARD_CODE := P_Payment_header_rec.CREDIT_CARD_CODE;
8493 ELSE
8494 x_Payment_header_rec.CREDIT_CARD_CODE := NULL ;
8495 aso_debug_pub.add('No Data Found for Cursor...C_CREDIT_CARD_TYPE--Header Level', 1, 'Y');
8496
8497 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
8498 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_CREDIT_CARD_TYPE', TRUE);
8499 FND_MSG_PUB.ADD;
8500
8501 --x_return_status := FND_API.G_RET_STS_ERROR;
8502 END IF;
8503 aso_debug_pub.add('Before Closing Cursor C_CREDIT_CARD_TYPE--Header Level', 1, 'Y');
8504 CLOSE C_CREDIT_CARD_TYPE;
8505 aso_debug_pub.add('After Closing Cursor C_CREDIT_CARD_TYPE--Header Level', 1, 'Y');
8506
8507 ELSE
8508 x_Payment_header_rec.CREDIT_CARD_CODE := NULL ;
8509 aso_debug_pub.add('Credit card code needs to be null if payment type is not CREDIT_CARD.', 1, 'Y');
8510
8511 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
8512 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_CREDIT_CARD_TYPE', TRUE);
8513 FND_MSG_PUB.ADD;
8514
8515 END IF ;
8516 end if;
8517
8518
8519 if ( P_Payment_line_rec.CREDIT_CARD_CODE is NOT NULL
8520 AND P_Payment_line_rec.CREDIT_CARD_CODE <> FND_API.G_MISS_CHAR ) THEN
8521
8522 IF (P_Payment_header_rec.PAYMENT_TYPE_CODE = 'CREDIT_CARD') THEN
8523
8524 aso_debug_pub.add('Before opening Cursor C_CREDIT_CARD_TYPE--Line Level', 1, 'Y');
8525 OPEN C_CREDIT_CARD_TYPE(P_Payment_line_rec.CREDIT_CARD_CODE) ; --line Level
8526 aso_debug_pub.add('Before fetching Cursor C_CREDIT_CARD_TYPE--Line Level', 1, 'Y');
8527 FETCH C_CREDIT_CARD_TYPE INTO l_data_exists ;
8528
8529 IF C_CREDIT_CARD_TYPE%FOUND THEN
8530 x_Payment_line_rec.CREDIT_CARD_CODE := P_Payment_line_rec.CREDIT_CARD_CODE;
8531 ELSE
8532 x_Payment_line_rec.CREDIT_CARD_CODE := NULL ;
8533 aso_debug_pub.add('No Data Found for Cursor...C_CREDIT_CARD_TYPE--Line Level', 1, 'Y');
8534 --x_return_status := FND_API.G_RET_STS_ERROR;
8535 END IF;
8536 aso_debug_pub.add('Before Closing Cursor C_CREDIT_CARD_TYPE--Line Level', 1, 'Y');
8537 CLOSE C_CREDIT_CARD_TYPE;
8538 aso_debug_pub.add('After Closing Cursor C_CREDIT_CARD_TYPE--Line Level', 1, 'Y');
8539
8540 ELSE
8541 x_Payment_line_rec.CREDIT_CARD_CODE := NULL ;
8542 aso_debug_pub.add('Credit card code needs to be null if payment type is not CREDIT_CARD.', 1, 'Y');
8543 END IF ;
8544
8545 END IF;
8546
8547 --Demand Class
8548
8549 if ( P_Shipment_header_rec.DEMAND_CLASS_CODE is NOT NULL
8550 AND P_Shipment_header_rec.DEMAND_CLASS_CODE <> FND_API.G_MISS_CHAR) THEN
8551 aso_debug_pub.add('Before opening Cursor C_DEMAND_CLASS--Header Level', 1, 'Y');
8552
8553 OPEN C_DEMAND_CLASS(P_Shipment_header_rec.DEMAND_CLASS_CODE) ; --Header Level
8554 aso_debug_pub.add('Before fetching Cursor C_DEMAND_CLASS--Header Level', 1, 'Y');
8555 FETCH C_DEMAND_CLASS INTO l_data_exists ;
8556
8557 IF C_DEMAND_CLASS%FOUND THEN
8558 x_Shipment_header_rec.DEMAND_CLASS_CODE := P_Shipment_header_rec.DEMAND_CLASS_CODE ;
8559 ELSE
8560 x_Shipment_header_rec.DEMAND_CLASS_CODE := NULL ;
8561 aso_debug_pub.add('No Data Found for Cursor...C_DEMAND_CLASS--Header Level', 1, 'Y');
8562
8563 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
8564 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_DEMAND_CLASS', TRUE);
8565 FND_MSG_PUB.ADD;
8566 --x_return_status := FND_API.G_RET_STS_ERROR;
8567 END IF;
8568 aso_debug_pub.add('before Closing Cursor C_DEMAND_CLASS--Header Level', 1, 'Y');
8569 CLOSE C_DEMAND_CLASS;
8570 aso_debug_pub.add('After Closing Cursor C_DEMAND_CLASS--Header Level', 1, 'Y');
8571
8572 end if;
8573
8574 if ( P_Shipment_line_rec.DEMAND_CLASS_CODE is NOT NULL
8575 AND P_Shipment_line_rec.DEMAND_CLASS_CODE <> FND_API.G_MISS_CHAR) THEN
8576 aso_debug_pub.add('Before opening Cursor C_DEMAND_CLASS--Line Level', 1, 'Y');
8577
8578 OPEN C_DEMAND_CLASS(P_Shipment_line_rec.DEMAND_CLASS_CODE) ; --Line Level
8579 aso_debug_pub.add('Before fetching Cursor C_DEMAND_CLASS--Line Level', 1, 'Y');
8580 FETCH C_DEMAND_CLASS INTO l_data_exists ;
8581
8582 IF C_DEMAND_CLASS%FOUND THEN
8583 x_Shipment_line_rec.DEMAND_CLASS_CODE := P_Shipment_line_rec.DEMAND_CLASS_CODE ;
8584 ELSE
8585 x_Shipment_line_rec.DEMAND_CLASS_CODE := NULL ;
8586 aso_debug_pub.add('No Data Found for Cursor...C_DEMAND_CLASS--Line Level', 1, 'Y');
8587 --x_return_status := FND_API.G_RET_STS_ERROR;
8588 END IF;
8589 aso_debug_pub.add('Before Closing Cursor C_DEMAND_CLASS--Line Level', 1, 'Y');
8590 CLOSE C_DEMAND_CLASS;
8591 aso_debug_pub.add('After Closing Cursor C_DEMAND_CLASS--Line Level', 1, 'Y');
8592
8593 END IF;
8594
8595 --Request Date Type
8596
8597 if ( P_Shipment_header_rec.REQUEST_DATE_TYPE is NOT NULL
8598 AND P_Shipment_header_rec.REQUEST_DATE_TYPE <> FND_API.G_MISS_CHAR) THEN
8599
8600 aso_debug_pub.add('Before opening Cursor C_REQUEST_DATE_TYPE--Header Level', 1, 'Y');
8601
8602 OPEN C_REQUEST_DATE_TYPE(p_Shipment_header_rec.REQUEST_DATE_TYPE) ; --Header Level
8603 aso_debug_pub.add('Before fetching Cursor C_REQUEST_DATE_TYPE--Header Level', 1, 'Y');
8604 FETCH C_REQUEST_DATE_TYPE INTO l_data_exists ;
8605
8606 IF C_REQUEST_DATE_TYPE%FOUND THEN
8607 x_Shipment_header_rec.REQUEST_DATE_TYPE := p_Shipment_header_rec.REQUEST_DATE_TYPE ;
8608 ELSE
8609 x_Shipment_header_rec.REQUEST_DATE_TYPE := NULL ;
8610 aso_debug_pub.add('No Data Found for Cursor...C_REQUEST_DATE_TYPE--Header Level', 1, 'Y');
8611
8612 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
8613 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_RQSTD_DATE_TYPE', TRUE);
8614 FND_MSG_PUB.ADD;
8615
8616 --x_return_status := FND_API.G_RET_STS_ERROR;
8617 END IF;
8618 aso_debug_pub.add('Before closing Cursor C_REQUEST_DATE_TYPE--Header Level', 1, 'Y');
8619 CLOSE C_REQUEST_DATE_TYPE;
8620 aso_debug_pub.add('After Closing Cursor C_REQUEST_DATE_TYPE--Header Level', 1, 'Y');
8621
8622 end if;
8623
8624 if ( P_Shipment_line_rec.REQUEST_DATE_TYPE is NOT NULL
8625 AND P_Shipment_line_rec.REQUEST_DATE_TYPE <> FND_API.G_MISS_CHAR) THEN
8626
8627 aso_debug_pub.add('Before opening Cursor REQUEST_DATE_TYPE--Line Level', 1, 'Y');
8628
8629 OPEN C_REQUEST_DATE_TYPE(p_Shipment_line_rec.REQUEST_DATE_TYPE) ; --Line Level
8630 aso_debug_pub.add('Before fetching Cursor REQUEST_DATE_TYPE--Line Level', 1, 'Y');
8631 FETCH C_REQUEST_DATE_TYPE INTO l_data_exists ;
8632
8633 IF C_REQUEST_DATE_TYPE%FOUND THEN
8634 x_Shipment_line_rec.REQUEST_DATE_TYPE := p_Shipment_line_rec.REQUEST_DATE_TYPE ;
8635 ELSE
8636 x_Shipment_line_rec.REQUEST_DATE_TYPE := NULL ;
8637 aso_debug_pub.add('No Data Found for Cursor...C_REQUEST_DATE_TYPE--Line Level', 1, 'Y');
8638 --x_return_status := FND_API.G_RET_STS_ERROR;
8639 END IF;
8640 aso_debug_pub.add('Before Closing Cursor REQUEST_DATE_TYPE--Line Level', 1, 'Y');
8641 CLOSE C_REQUEST_DATE_TYPE;
8642 aso_debug_pub.add('After Closing Cursor REQUEST_DATE_TYPE--Line Level', 1, 'Y');
8643
8644 END IF;
8645
8646 --Request Date
8647
8648 if ( P_Shipment_header_rec.REQUEST_DATE is NOT NULL
8649 AND P_Shipment_header_rec.REQUEST_DATE <> FND_API.G_MISS_DATE) THEN
8650
8651 aso_debug_pub.add('Before opening Cursor C_REQUEST_DATE--Header Level', 1, 'Y');
8652 OPEN C_REQUEST_DATE(p_Shipment_header_rec.REQUEST_DATE) ; --Header Level
8653 aso_debug_pub.add('Before fetching Cursor C_REQUEST_DATE--Header Level', 1, 'Y');
8654 FETCH C_REQUEST_DATE INTO l_data_exists ;
8655
8656 IF C_REQUEST_DATE%FOUND THEN
8657 x_Shipment_header_rec.REQUEST_DATE := p_Shipment_header_rec.REQUEST_DATE ;
8658 ELSE
8659 x_Shipment_header_rec.REQUEST_DATE := NULL ;
8660 aso_debug_pub.add('No Data Found for Cursor...C_REQUEST_DATE--Header Level', 1, 'Y');
8661
8662 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
8663 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_REQUESTED_DATE', TRUE);
8664 FND_MSG_PUB.ADD;
8665
8666 --x_return_status := FND_API.G_RET_STS_ERROR;
8667 END IF;
8668 aso_debug_pub.add('before Closing Cursor C_REQUEST_DATE--Header Level', 1, 'Y');
8669 CLOSE C_REQUEST_DATE;
8670 aso_debug_pub.add('After Closing Cursor C_REQUEST_DATE--Header Level', 1, 'Y');
8671
8672 end if;
8673
8674 if ( P_Shipment_line_rec.REQUEST_DATE is NOT NULL
8675 AND P_Shipment_line_rec.REQUEST_DATE <> FND_API.G_MISS_DATE) THEN
8676
8677 aso_debug_pub.add('Before opening Cursor C_REQUEST_DATE--Line Level', 1, 'Y');
8678
8679 OPEN C_REQUEST_DATE(p_Shipment_line_rec.REQUEST_DATE) ; --Line Level
8680 aso_debug_pub.add('Before fetching Cursor C_REQUEST_DATE--Line Level', 1, 'Y');
8681 FETCH C_REQUEST_DATE INTO l_data_exists ;
8682
8683 IF C_REQUEST_DATE%FOUND THEN
8684 x_Shipment_line_rec.REQUEST_DATE := p_Shipment_line_rec.REQUEST_DATE ;
8685 ELSE
8686 x_Shipment_line_rec.REQUEST_DATE := NULL ;
8687 aso_debug_pub.add('No Data Found for Cursor...C_REQUEST_DATE--Line Level', 1, 'Y');
8688 --x_return_status := FND_API.G_RET_STS_ERROR;
8689 END IF;
8690 aso_debug_pub.add('Before closing Cursor C_REQUEST_DATE--Line Level', 1, 'Y');
8691 CLOSE C_REQUEST_DATE;
8692 aso_debug_pub.add('After Closing Cursor C_REQUEST_DATE--Line Level', 1, 'Y');
8693
8694 END IF;
8695
8696 --Operating Unit
8697
8698
8699 if ( p_quote_header_rec.ORG_ID is NOT NULL
8700 AND p_quote_header_rec.ORG_ID <> FND_API.G_MISS_NUM) THEN
8701
8702 aso_debug_pub.add('Before opening Cursor C_OPERATING_UNIT--Header Level', 1, 'Y');
8703
8704 OPEN C_OPERATING_UNIT(p_quote_header_rec.ORG_ID) ; --Header Level
8705 aso_debug_pub.add('Before fetching Cursor C_OPERATING_UNIT--Header Level', 1, 'Y');
8706
8707 FETCH C_OPERATING_UNIT INTO l_data_exists ;
8708
8709 IF C_OPERATING_UNIT%FOUND THEN
8710 if l_data_exists is NOT NULL then
8711 x_quote_header_rec.ORG_ID := p_quote_header_rec.ORG_ID ;
8712 else
8713 x_quote_header_rec.ORG_ID := NULL;
8714
8715 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
8716 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_OPERATING_UNIT', TRUE);
8717 FND_MSG_PUB.ADD;
8718 end if;
8719 ELSE
8720 x_quote_header_rec.ORG_ID := NULL ;
8721 aso_debug_pub.add('No Data Found for Cursor...C_OPERATING_UNIT', 1, 'Y');
8722
8723 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
8724 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_OPERATING_UNIT', TRUE);
8725 FND_MSG_PUB.ADD;
8726
8727 --x_return_status := FND_API.G_RET_STS_ERROR;
8728 END IF;
8729 aso_debug_pub.add('Before closing Cursor C_OPERATING_UNIT--Header Level', 1, 'Y');
8730 CLOSE C_OPERATING_UNIT;
8731 aso_debug_pub.add('After Closing Cursor C_CHARGE_PERIODICITY_CODE--Header Level', 1, 'Y');
8732 end if;
8733
8734 if ( p_quote_line_rec.ORG_ID is NOT NULL
8735 AND p_quote_line_rec.ORG_ID <> FND_API.G_MISS_NUM) THEN
8736
8737 aso_debug_pub.add('Before opening Cursor C_OPERATING_UNIT--Line Level', 1, 'Y');
8738 OPEN C_OPERATING_UNIT(p_quote_line_rec.ORG_ID) ; --Line Level
8739 aso_debug_pub.add('Before fetching Cursor C_OPERATING_UNIT--Line Level', 1, 'Y');
8740 FETCH C_OPERATING_UNIT INTO l_data_exists ;
8741
8742 IF C_OPERATING_UNIT%FOUND THEN
8743 if l_data_exists is NOT NULL then
8744 x_quote_line_rec.ORG_ID := p_quote_line_rec.ORG_ID ;
8745 else
8746 x_quote_line_rec.ORG_ID := NULL;
8747 end if;
8748 ELSE
8749 x_quote_line_rec.ORG_ID := NULL ;
8750 aso_debug_pub.add('No Data Found for Cursor...C_OPERATING_UNIT--Line Level', 1, 'Y');
8751 --x_return_status := FND_API.G_RET_STS_ERROR;
8752 END IF;
8753 aso_debug_pub.add('before Closing Cursor C_CHARGE_PERIODICITY_CODE--Line Level', 1, 'Y');
8754 CLOSE C_OPERATING_UNIT;
8755 aso_debug_pub.add('After Closing Cursor C_CHARGE_PERIODICITY_CODE--Line Level', 1, 'Y');
8756
8757 END IF;
8758
8759 --Charged Periodicity
8760
8761 if ( p_quote_line_rec.CHARGE_PERIODICITY_CODE is NOT NULL
8762 AND p_quote_line_rec.CHARGE_PERIODICITY_CODE <> FND_API.G_MISS_CHAR) THEN
8763
8764 if ( l_periodicity_profile is NOT NULL
8765 AND l_periodicity_profile <> FND_API.G_MISS_CHAR) THEN
8766 aso_debug_pub.add('Before opening Cursor C_CHARGE_PERIODICITY_CODE', 1, 'Y');
8767
8768 OPEN C_CHARGE_PERIODICITY_CODE(p_quote_line_rec.CHARGE_PERIODICITY_CODE,l_periodicity_profile) ; --Line Level Only
8769
8770 aso_debug_pub.add('Before fetching Cursor C_CHARGE_PERIODICITY_CODE', 1, 'Y');
8771 FETCH C_CHARGE_PERIODICITY_CODE INTO l_data_exists ;
8772
8773 IF C_CHARGE_PERIODICITY_CODE%FOUND THEN
8774 x_quote_line_rec.CHARGE_PERIODICITY_CODE := p_quote_line_rec.CHARGE_PERIODICITY_CODE ;
8775 ELSE
8776 x_quote_line_rec.CHARGE_PERIODICITY_CODE := NULL ;
8777 aso_debug_pub.add('No Data Found for Cursor...CHARGE_PERIODICITY_CODE', 1, 'Y');
8778 --x_return_status := FND_API.G_RET_STS_ERROR;
8779 END IF;
8780 aso_debug_pub.add('Before closing Cursor C_CHARGE_PERIODICITY_CODE', 1, 'Y');
8781 CLOSE C_CHARGE_PERIODICITY_CODE;
8782 aso_debug_pub.add('After Closing Cursor C_CHARGE_PERIODICITY_CODE', 1, 'Y');
8783
8784 END IF;
8785 END IF;
8786
8787 --Auotmatic Pricing
8788
8789 if ( p_quote_header_rec.AUTOMATIC_PRICE_FLAG is NOT NULL
8790 AND p_quote_header_rec.AUTOMATIC_PRICE_FLAG <> FND_API.G_MISS_CHAR) THEN
8791 aso_debug_pub.add('Before opening Cursor C_AUTOMATIC_PRICING', 1, 'Y');
8792
8793 OPEN C_AUTOMATIC_PRICING(p_quote_header_rec.AUTOMATIC_PRICE_FLAG) ; --Header Level
8794 aso_debug_pub.add('Before fetching Cursor C_AUTOMATIC_PRICING', 1, 'Y');
8795 FETCH C_AUTOMATIC_PRICING INTO l_data_exists ;
8796
8797 IF C_AUTOMATIC_PRICING%FOUND THEN
8798 x_quote_header_rec.AUTOMATIC_PRICE_FLAG := p_quote_header_rec.AUTOMATIC_PRICE_FLAG ;
8799 ELSE
8800 x_quote_header_rec.AUTOMATIC_PRICE_FLAG := NULL ;
8801 aso_debug_pub.add('No Data Found for Cursor...C_AUTOMATIC_PRICING', 1, 'Y');
8802
8803 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
8804 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_AUTO_PRICING', TRUE);
8805 FND_MSG_PUB.ADD;
8806 --x_return_status := FND_API.G_RET_STS_ERROR;
8807 END IF;
8808 aso_debug_pub.add('Before closing Cursor C_AUTOMATIC_PRICING', 1, 'Y');
8809 CLOSE C_AUTOMATIC_PRICING;
8810 aso_debug_pub.add('After Closing Cursor C_AUTOMATIC_PRICING', 1, 'Y');
8811
8812 END IF;
8813
8814 --Auotmatic TAX
8815
8816 if ( p_quote_header_rec.AUTOMATIC_TAX_FLAG is NOT NULL
8817 AND p_quote_header_rec.AUTOMATIC_TAX_FLAG <> FND_API.G_MISS_CHAR) THEN
8818
8819 aso_debug_pub.add('Before opening Cursor C_AUTOMATIC_TAX', 1, 'Y');
8820
8821 OPEN C_AUTOMATIC_TAX(p_quote_header_rec.AUTOMATIC_TAX_FLAG) ; --Header Level
8822 aso_debug_pub.add('Before fetching Cursor C_AUTOMATIC_TAX', 1, 'Y');
8823 FETCH C_AUTOMATIC_TAX INTO l_data_exists ;
8824
8825 IF C_AUTOMATIC_TAX%FOUND THEN
8826 x_quote_header_rec.AUTOMATIC_TAX_FLAG := p_quote_header_rec.AUTOMATIC_TAX_FLAG ;
8827 ELSE
8828 x_quote_header_rec.AUTOMATIC_TAX_FLAG := NULL ;
8829 aso_debug_pub.add('No Data Found for Cursor...C_AUTOMATIC_TAX', 1, 'Y');
8830
8831 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
8832 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_AUTOMATIC_TAX', TRUE);
8833 FND_MSG_PUB.ADD;
8834
8835 --x_return_status := FND_API.G_RET_STS_ERROR;
8836 END IF;
8837 aso_debug_pub.add('Before closing Cursor C_AUTOMATIC_TAX', 1, 'Y');
8838 CLOSE C_AUTOMATIC_TAX;
8839 aso_debug_pub.add('After Closing Cursor C_AUTOMATIC_TAX.', 1, 'Y');
8840
8841
8842 END IF;
8843
8844 --Payment Type
8845
8846 if ( P_Payment_header_rec.PAYMENT_TYPE_CODE is NOT NULL
8847 AND P_Payment_header_rec.PAYMENT_TYPE_CODE <> FND_API.G_MISS_CHAR) THEN
8848
8849 aso_debug_pub.add('Before opening C_PAYMENT_TYPE--Header Level', 1, 'Y');
8850
8851 OPEN C_PAYMENT_TYPE(P_Payment_header_rec.PAYMENT_TYPE_CODE) ; --Header Level
8852 aso_debug_pub.add('Before fetching C_PAYMENT_TYPE--Header Level', 1, 'Y');
8853 FETCH C_PAYMENT_TYPE INTO l_data_exists ;
8854
8855 IF C_PAYMENT_TYPE%FOUND THEN
8856 x_Payment_header_rec.PAYMENT_TYPE_CODE := P_Payment_header_rec.PAYMENT_TYPE_CODE ;
8857 ELSE
8858 x_Payment_header_rec.PAYMENT_TYPE_CODE := NULL ;
8859 aso_debug_pub.add('No Data Found for Cursor...C_PAYMENT_TYPE--Header Level', 1, 'Y');
8860
8861 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
8862 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_PAYMENT_TYPE', TRUE);
8863 FND_MSG_PUB.ADD;
8864
8865 --x_return_status := FND_API.G_RET_STS_ERROR;
8866 END IF;
8867 aso_debug_pub.add('before Closing Cursor C_PAYMENT_TYPE--Header Level', 1, 'Y');
8868 CLOSE C_PAYMENT_TYPE;
8869 aso_debug_pub.add('After Closing Cursor C_PAYMENT_TYPE--Header Level', 1, 'Y');
8870
8871 end if;
8872
8873 if ( P_Payment_line_rec.PAYMENT_TYPE_CODE is NOT NULL
8874 AND P_Payment_line_rec.PAYMENT_TYPE_CODE <> FND_API.G_MISS_CHAR) THEN
8875
8876 aso_debug_pub.add('Before opening cursor C_PAYMENT_TYPE--Line Level', 1, 'Y');
8877
8878 OPEN C_PAYMENT_TYPE(P_Payment_line_rec.PAYMENT_TYPE_CODE) ; --Line Level
8879 aso_debug_pub.add('Before fetching cursor C_PAYMENT_TYPE--Line Level', 1, 'Y');
8880
8881 FETCH C_PAYMENT_TYPE INTO l_data_exists ;
8882
8883 IF C_PAYMENT_TYPE%FOUND THEN
8884 x_Payment_line_rec.PAYMENT_TYPE_CODE := P_Payment_line_rec.PAYMENT_TYPE_CODE ;
8885 ELSE
8886 x_Payment_line_rec.PAYMENT_TYPE_CODE := NULL ;
8887 aso_debug_pub.add('No Data Found for Cursor...C_PAYMENT_TYPE--Line Level', 1, 'Y');
8888 --x_return_status := FND_API.G_RET_STS_ERROR;
8889 END IF;
8890
8891 aso_debug_pub.add('Before closing cursor C_PAYMENT_TYPE--Line Level', 1, 'Y');
8892 CLOSE C_PAYMENT_TYPE;
8893 aso_debug_pub.add('After Closing cursor C_PAYMENT_TYPE--Line Level', 1, 'Y');
8894
8895
8896 END IF;
8897
8898 if ( p_quote_header_rec.SALES_CHANNEL_CODE is NOT NULL
8899 AND p_quote_header_rec.SALES_CHANNEL_CODE <> FND_API.G_MISS_CHAR) THEN
8900
8901 aso_debug_pub.add('Before opening Cursor..C_SALESCHANNEL', 1, 'Y');
8902
8903 OPEN C_SALESCHANNEL(p_quote_header_rec.SALES_CHANNEL_CODE) ; -- Sales Channel(Header)
8904 aso_debug_pub.add('Before fetching Cursor..C_SALESCHANNEL', 1, 'Y');
8905
8906 FETCH C_SALESCHANNEL INTO l_data_exists ;
8907
8908
8909 IF C_SALESCHANNEL%FOUND THEN
8910 x_quote_header_rec.SALES_CHANNEL_CODE := p_quote_header_rec.SALES_CHANNEL_CODE ;
8911 ELSE
8912 x_quote_header_rec.SALES_CHANNEL_CODE := NULL ;
8913 aso_debug_pub.add('No Data Found for Cursor...C_SALESCHANNEL', 1, 'Y');
8914
8915 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
8916 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_SALES_CHANNEL', TRUE);
8917 FND_MSG_PUB.ADD;
8918
8919 --x_return_status := FND_API.G_RET_STS_ERROR;
8920
8921 END IF;
8922 aso_debug_pub.add('Before closing Cursor..C_SALESCHANNEL', 1, 'Y');
8923 CLOSE C_SALESCHANNEL;
8924 aso_debug_pub.add('After Closing Cursor..C_SALESCHANNEL', 1, 'Y');
8925
8926
8927 END IF;
8928 -- ============ Currency-queries (Start) ====================
8929
8930 if ( p_quote_header_rec.CURRENCY_CODE is NOT NULL
8931 AND p_quote_header_rec.CURRENCY_CODE <> FND_API.G_MISS_CHAR) THEN
8932
8933 if ( p_quote_header_rec.PRICE_LIST_ID is NOT NULL
8934 AND p_quote_header_rec.PRICE_LIST_ID <> FND_API.G_MISS_NUM ) THEN
8935
8936 aso_debug_pub.add('Before opening Cursor..C_QOTHDDET_CURRENCY_NOT_NULL', 1, 'Y');
8937
8938 OPEN C_QOTHDDET_CURRENCY_NOT_NULL(p_quote_header_rec.CURRENCY_CODE,p_quote_header_rec.PRICE_LIST_ID) ; -- Header Record
8939 aso_debug_pub.add('Before fetching Cursor..C_QOTHDDET_CURRENCY_NOT_NULL', 1, 'Y');
8940
8941 FETCH C_QOTHDDET_CURRENCY_NOT_NULL INTO l_data_exists ;
8942 IF C_QOTHDDET_CURRENCY_NOT_NULL%FOUND THEN
8943 x_quote_header_rec.CURRENCY_CODE := p_quote_header_rec.CURRENCY_CODE;
8944 ELSE
8945 x_quote_header_rec.CURRENCY_CODE := NULL ;
8946 aso_debug_pub.add('No Data Found for Cursor...C_QOTHDDET_CURRENCY_NOT_NULL', 1, 'Y');
8947
8948 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
8949 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_CURRENCY', TRUE);
8950 FND_MSG_PUB.ADD;
8951
8952 --x_return_status := FND_API.G_RET_STS_ERROR;
8953
8954 END IF;
8955 aso_debug_pub.add('Before closing Cursor..C_QOTHDDET_CURRENCY_NOT_NULL', 1, 'Y');
8956
8957 CLOSE C_QOTHDDET_CURRENCY_NOT_NULL;
8958
8959 aso_debug_pub.add('After closing Cursor..C_QOTHDDET_CURRENCY_NOT_NULL', 1, 'Y');
8960
8961 ELSE
8962 aso_debug_pub.add('Before opening Cursor..C_QOTHDDET_CURRENCY_NULL', 1, 'Y');
8963
8964 OPEN C_QOTHDDET_CURRENCY_NULL(p_quote_header_rec.CURRENCY_CODE) ; --Header Record
8965 aso_debug_pub.add('Before fetching Cursor..C_QOTHDDET_CURRENCY_NULL', 1, 'Y');
8966
8967 FETCH C_QOTHDDET_CURRENCY_NULL INTO l_data_exists ;
8968 IF C_QOTHDDET_CURRENCY_NULL%FOUND THEN
8969 x_quote_header_rec.CURRENCY_CODE := p_quote_header_rec.CURRENCY_CODE;
8970 ELSE
8971 x_quote_header_rec.CURRENCY_CODE := NULL ;
8972 aso_debug_pub.add('No Data Found for Cursor...C_QOTHDDET_CURRENCY_NULL', 1, 'Y');
8973
8974 FND_MESSAGE.SET_NAME('ASO', 'ASO_DFLT_VLDN_ERR_MSG');
8975 FND_MESSAGE.SET_TOKEN('ATTRIBUTE_NAME', 'ASO_DFLT_VLDN_CURRENCY', TRUE);
8976 FND_MSG_PUB.ADD;
8977 --x_return_status := FND_API.G_RET_STS_ERROR;
8978
8979 END IF;
8980 aso_debug_pub.add('Before closing Cursor..C_QOTHDDET_CURRENCY_NULL', 1, 'Y');
8981 CLOSE C_QOTHDDET_CURRENCY_NULL;
8982 aso_debug_pub.add('After Closing Cursor..C_QOTHDDET_CURRENCY_NULL', 1, 'Y');
8983
8984 END IF;
8985 END IF;
8986
8987 -- TCA Calls Start
8988
8989 --1. ***Validate Contact - Header and Line Level***
8990
8991 --Validate Contact(Header/Bill)
8992 if ( p_quote_header_rec.invoice_to_party_id is NOT NULL
8993 AND p_quote_header_rec.invoice_to_party_id <> FND_API.G_MISS_NUM) THEN
8994
8995 aso_debug_pub.add('Before Calling Validate Contact(Header/Bill)', 1, 'Y');
8996
8997 VALIDATE_CONTACT(p_party_id=>p_quote_header_rec.INVOICE_TO_PARTY_ID,
8998 p_cust_party_id=>p_quote_header_rec.INVOICE_TO_CUST_PARTY_ID,
8999 p_flag=>'BILL',
9000 p_header=>'Y'
9001 );
9002 aso_debug_pub.add('After Calling Validate Contact(Header/Bill)', 1, 'Y');
9003 END IF ;
9004
9005
9006
9007 --Validate Contact(Header/Ship)
9008 if ( p_shipment_header_rec.ship_to_party_id is NOT NULL
9009 AND p_shipment_header_rec.ship_to_party_id <> FND_API.G_MISS_NUM) THEN
9010
9011 aso_debug_pub.add('Before Calling Validate Contact(Header/Ship)', 1, 'Y');
9012
9013 VALIDATE_CONTACT(p_party_id=>p_shipment_header_rec.SHIP_TO_PARTY_ID,
9014 p_cust_party_id=>p_shipment_header_rec.SHIP_TO_CUST_PARTY_ID,
9015 p_flag=>'SHIP',
9016 p_header=>'Y'
9017 );
9018 aso_debug_pub.add('After Calling Validate Contact(Header/Ship)', 1, 'Y');
9019 END IF ;
9020
9021 --Validate Contact(Header/End)
9022 if ( p_quote_header_rec.end_customer_party_id is NOT NULL
9023 AND p_quote_header_rec.end_customer_party_id <> FND_API.G_MISS_NUM) THEN
9024
9025 aso_debug_pub.add('Before Calling Validate Contact(Header/End)', 1, 'Y');
9026
9027 VALIDATE_CONTACT(p_party_id=>p_quote_header_rec.END_CUSTOMER_PARTY_ID,
9028 p_cust_party_id=>p_quote_header_rec.END_CUSTOMER_CUST_PARTY_ID,
9029 p_flag=>'END',
9030 p_header=>'Y'
9031 );
9032 aso_debug_pub.add('After Calling Validate Contact(Header/End)', 1, 'Y');
9033 END IF ;
9034
9035 --Validate Contact(Header/SOLD)
9036 if ( p_quote_header_rec.party_id is NOT NULL
9037 AND p_quote_header_rec.party_id <> FND_API.G_MISS_NUM) THEN
9038
9039 aso_debug_pub.add('Before Calling Validate Contact(Header/SOLD)', 1, 'Y');
9040
9041 VALIDATE_CONTACT(p_party_id=>p_quote_header_rec.PARTY_ID,
9042 p_cust_party_id=>p_quote_header_rec.CUST_PARTY_ID,
9043 p_flag=>'SOLD',
9044 p_header=>'Y'
9045 );
9046 aso_debug_pub.add('After Calling Validate Contact(Header/SOLD)', 1, 'Y');
9047 END IF ;
9048
9049 --Validate Contact(Line/Bill)
9050 if ( p_quote_line_rec.invoice_to_party_id is NOT NULL
9051 AND p_quote_line_rec.invoice_to_party_id <> FND_API.G_MISS_NUM) THEN
9052
9053 aso_debug_pub.add('Before Calling Validate Contact(Line/Bill)', 1, 'Y');
9054
9055 VALIDATE_CONTACT(p_party_id=>p_quote_line_rec.INVOICE_TO_PARTY_ID,
9056 p_cust_party_id=>p_quote_line_rec.INVOICE_TO_CUST_PARTY_ID,
9057 p_flag=>'BILL',
9058 p_header=>'N'
9059 );
9060 aso_debug_pub.add('After Calling Validate Contact(Line/Bill)', 1, 'Y');
9061
9062 END IF ;
9063
9064 --Validate Contact(Line/Ship)
9065 if ( p_shipment_line_rec.ship_to_party_id is NOT NULL
9066 AND p_shipment_line_rec.ship_to_party_id <> FND_API.G_MISS_NUM) THEN
9067
9068 aso_debug_pub.add('Before Calling Validate Contact(Line/Ship))', 1, 'Y');
9069
9070 VALIDATE_CONTACT(p_party_id=>p_shipment_line_rec.ship_to_party_id,
9071 p_cust_party_id=>p_shipment_line_rec.ship_to_cust_party_id,
9072 p_flag=>'SHIP',
9073 p_header=>'N'
9074 );
9075 aso_debug_pub.add('Before Calling Validate Contact(Line/Ship))', 1, 'Y');
9076
9077 END IF;
9078
9079 --Validate Contact(Line/End)
9080 if ( p_quote_line_rec.end_customer_party_id is NOT NULL
9081 AND p_quote_line_rec.end_customer_party_id <> FND_API.G_MISS_NUM) THEN
9082
9083 aso_debug_pub.add('Before Calling Validate Contact(Line/End)', 1, 'Y');
9084
9085 VALIDATE_CONTACT(p_party_id=>p_quote_line_rec.end_customer_party_id,
9086 p_cust_party_id=>p_quote_line_rec.end_customer_cust_party_id,
9087 p_flag=>'END',
9088 p_header=>'N'
9089 );
9090 aso_debug_pub.add('After Calling Validate Contact(Line/End)', 1, 'Y');
9091
9092 END IF ;
9093
9094
9095 --2. ***Validate Phone - Header Level Only***
9096
9097 if ( p_quote_header_rec.phone_id is NOT NULL
9098 AND p_quote_header_rec.phone_id <> FND_API.G_MISS_NUM) THEN
9099
9100 aso_debug_pub.add('Before Calling Validate Phone', 1, 'Y');
9101
9102 VALIDATE_PHONE(p_phone_id => p_quote_header_rec.phone_id,
9103 p_party_id => p_quote_header_rec.party_id,
9104 p_cust_party_id => p_quote_header_rec.cust_party_id
9105 );
9106 aso_debug_pub.add('After Calling Validate Phone', 1, 'Y');
9107
9108 END IF ;
9109
9110
9111 --3. ***Validate Address - Header and Line Level***
9112
9113 --Validate Address(Header/Bill)
9114 if ( p_quote_header_rec.INVOICE_TO_PARTY_SITE_ID is NOT NULL
9115 AND p_quote_header_rec.INVOICE_TO_PARTY_SITE_ID <> FND_API.G_MISS_NUM) THEN
9116
9117 aso_debug_pub.add('Before Calling Validate Address(Header/Bill)', 1, 'Y');
9118
9119 VALIDATE_ADDRESS(p_party_site_id => p_quote_header_rec.INVOICE_TO_PARTY_SITE_ID,
9120 p_party_id => p_quote_header_rec.INVOICE_TO_PARTY_ID,
9121 p_cust_party_id =>p_quote_header_rec.INVOICE_TO_CUST_PARTY_ID,
9122 p_flag =>'BILL',
9123 p_header => 'Y'
9124 );
9125 aso_debug_pub.add('After Calling Validate Address(Header/Bill)', 1, 'Y');
9126
9127 END IF ;
9128
9129 --Validate Address(Header/Ship)
9130
9131 if ( p_shipment_header_rec.SHIP_TO_PARTY_SITE_ID is NOT NULL
9132 AND p_shipment_header_rec.SHIP_TO_PARTY_SITE_ID <> FND_API.G_MISS_NUM) THEN
9133
9134 aso_debug_pub.add('Before Calling Validate Address(Header/Ship)', 1, 'Y');
9135
9136 VALIDATE_ADDRESS(p_party_site_id => p_shipment_header_rec.SHIP_TO_PARTY_SITE_ID,
9137 p_party_id => p_shipment_header_rec.SHIP_TO_PARTY_ID,
9138 p_cust_party_id =>p_shipment_header_rec.SHIP_TO_CUST_PARTY_ID,
9139 p_flag =>'SHIP',
9140 p_header => 'Y'
9141 );
9142
9143 aso_debug_pub.add('After Calling Validate Address(Header/Ship)', 1, 'Y');
9144
9145 END IF ;
9146
9147 --Validate Address(Header/end)
9148 if ( p_quote_header_rec.END_CUSTOMER_PARTY_SITE_ID is NOT NULL
9149 AND p_quote_header_rec.END_CUSTOMER_PARTY_SITE_ID <> FND_API.G_MISS_NUM) THEN
9150
9151 aso_debug_pub.add('Before Calling Validate Address(Header/end)', 1, 'Y');
9152
9153 VALIDATE_ADDRESS(p_party_site_id => p_quote_header_rec.END_CUSTOMER_PARTY_SITE_ID,
9154 p_party_id => p_quote_header_rec.END_CUSTOMER_PARTY_ID,
9155 p_cust_party_id =>p_quote_header_rec.END_CUSTOMER_CUST_PARTY_ID,
9156 p_flag =>'END',
9157 p_header => 'Y'
9158 );
9159 aso_debug_pub.add('After Calling Validate Address(Header/end)', 1, 'Y');
9160
9161 END IF ;
9162
9163
9164
9165 --Validate Address(Header/SOLD)
9166 if ( p_quote_header_rec.SOLD_TO_PARTY_SITE_ID is NOT NULL
9167 AND p_quote_header_rec.SOLD_TO_PARTY_SITE_ID <> FND_API.G_MISS_NUM) THEN
9168
9169 aso_debug_pub.add('Before Calling Validate Address(Header/SOLD)', 1, 'Y');
9170
9171 VALIDATE_ADDRESS(p_party_site_id => p_quote_header_rec.SOLD_TO_PARTY_SITE_ID,
9172 p_party_id => p_quote_header_rec.party_id,
9173 p_cust_party_id =>p_quote_header_rec.cust_party_id,
9174 p_flag =>'SOLD',
9175 p_header => 'Y'
9176 );
9177 aso_debug_pub.add('After Calling Validate Address(Header/SOLD)', 1, 'Y');
9178 END IF ;
9179
9180
9181 --Validate Address(Line/Bill)
9182 if ( p_quote_line_rec.INVOICE_TO_PARTY_SITE_ID is NOT NULL
9183 AND p_quote_line_rec.INVOICE_TO_PARTY_SITE_ID <> FND_API.G_MISS_NUM) THEN
9184 aso_debug_pub.add('Before Calling Validate Address(Line/Bill)', 1, 'Y');
9185
9186 VALIDATE_ADDRESS(p_party_site_id => p_quote_line_rec.INVOICE_TO_PARTY_SITE_ID,
9187 p_party_id => p_quote_line_rec.INVOICE_TO_PARTY_ID,
9188 p_cust_party_id =>p_quote_line_rec.INVOICE_TO_CUST_PARTY_ID,
9189 p_flag =>'BILL',
9190 p_header => 'N'
9191 );
9192 aso_debug_pub.add('After Calling Validate Address(Line/Bill)', 1, 'Y');
9193 END IF;
9194
9195 --Validate Address(Line/Ship)
9196 if ( p_shipment_line_rec.SHIP_TO_PARTY_SITE_ID is NOT NULL
9197 AND p_shipment_line_rec.SHIP_TO_PARTY_SITE_ID <> FND_API.G_MISS_NUM) THEN
9198
9199 aso_debug_pub.add('Before Calling Validate Address(Line/Ship)', 1, 'Y');
9200
9201 VALIDATE_ADDRESS(p_party_site_id => p_shipment_line_rec.SHIP_TO_PARTY_SITE_ID,
9202 p_party_id => p_shipment_line_rec.SHIP_TO_PARTY_ID,
9203 p_cust_party_id =>p_shipment_line_rec.SHIP_TO_CUST_PARTY_ID,
9204 p_flag =>'SHIP',
9205 p_header => 'N'
9206 );
9207 aso_debug_pub.add('End Calling Validate Address(Line/Ship)', 1, 'Y');
9208 END IF;
9209
9210 --Validate Address(Line/end)
9211 if ( p_quote_line_rec.END_CUSTOMER_PARTY_SITE_ID is NOT NULL
9212 AND p_quote_line_rec.END_CUSTOMER_PARTY_SITE_ID <> FND_API.G_MISS_NUM) THEN
9213
9214 aso_debug_pub.add('Before Calling Validate Address(Line/end)', 1, 'Y');
9215
9216 VALIDATE_ADDRESS(p_party_site_id => p_quote_line_rec.END_CUSTOMER_PARTY_SITE_ID,
9217 p_party_id => p_quote_line_rec.END_CUSTOMER_PARTY_ID,
9218 p_cust_party_id =>p_quote_line_rec.END_CUSTOMER_CUST_PARTY_ID,
9219 p_flag =>'END',
9220 p_header => 'N'
9221 );
9222 aso_debug_pub.add('After Calling Validate Address(Line/end)', 1, 'Y');
9223
9224 END IF;
9225
9226
9227 --4. ***Validate Customer - Header and Line Level***
9228
9229 --Validate Customer(Header/Sold)
9230 if ( P_QUOTE_HEADER_REC.CUST_PARTY_ID is NOT NULL
9231 AND P_QUOTE_HEADER_REC.CUST_PARTY_ID <> FND_API.G_MISS_NUM) THEN
9232
9233 aso_debug_pub.add('Before Calling Validate Customer(Header/Sold)', 1, 'Y');
9234
9235 VALIDATE_CUSTOMER(p_cust_party_id => p_quote_header_rec.cust_party_id,
9236 p_resource_id => p_quote_header_rec.resource_id,
9237 p_flag => 'SOLD',
9238 p_header=> 'Y'
9239 );
9240 aso_debug_pub.add('After Calling Validate Customer(Header/Sold)', 1, 'Y');
9241
9242 END IF;
9243
9244
9245 --Validate Customer(Header/End)
9246 if ( P_QUOTE_HEADER_REC.END_CUSTOMER_CUST_PARTY_ID is NOT NULL
9247 AND P_QUOTE_HEADER_REC.END_CUSTOMER_CUST_PARTY_ID <> FND_API.G_MISS_NUM) THEN
9248
9249 aso_debug_pub.add('Before Calling Validate Customer(Header/End)', 1, 'Y');
9250
9251 VALIDATE_CUSTOMER(p_cust_party_id => p_quote_header_rec.end_customer_cust_party_id,
9252 p_resource_id => p_quote_header_rec.resource_id,
9253 p_flag => 'END',
9254 p_header=> 'Y'
9255 );
9256 aso_debug_pub.add('After Calling Validate Customer(Header/End)', 1, 'Y');
9257
9258 END IF;
9259
9260
9261 --Validate Customer(Line/End)
9262 if ( P_QUOTE_LINE_REC.END_CUSTOMER_CUST_PARTY_ID is NOT NULL
9263 AND P_QUOTE_LINE_REC.END_CUSTOMER_CUST_PARTY_ID <> FND_API.G_MISS_NUM) THEN
9264
9265 aso_debug_pub.add('Before Calling Validate Customer(Line/End)', 1, 'Y');
9266
9267 VALIDATE_CUSTOMER(p_cust_party_id => p_quote_line_rec.end_customer_cust_party_id,
9268 p_resource_id => p_quote_header_rec.resource_id,
9269 p_flag => 'END',
9270 p_header=> 'N'
9271 );
9272 aso_debug_pub.add('After Calling Validate Customer(Line/End)', 1, 'Y');
9273
9274 END IF;
9275
9276 --5. ***Validate Bill Ship Customer***
9277
9278 --Validate Bill Ship Customer (Header/Bill)
9279 if ( p_quote_header_rec.INVOICE_TO_CUST_PARTY_ID is NOT NULL
9280 AND p_quote_header_rec.INVOICE_TO_CUST_PARTY_ID <> FND_API.G_MISS_NUM) THEN
9281
9282 aso_debug_pub.add('Before calling Validate Bill Ship Customer (Header/Bill)', 1, 'Y');
9283
9284 VALIDATE_BILL_SHIP_CUSTOMER(p_cust_party_id =>p_quote_header_rec.INVOICE_TO_CUST_PARTY_ID,
9285 p_cust_acct_id =>p_quote_header_rec.CUST_ACCOUNT_ID, p_resource_id =>p_quote_header_rec.resource_id,
9286 p_flag =>'BILL',
9287 p_header => 'Y'
9288 );
9289 aso_debug_pub.add('After calling Validate Bill Ship Customer (Header/Bill)', 1, 'Y');
9290
9291 END IF;
9292
9293
9294
9295 --Validate Bill Ship Customer (Header/Ship)
9296 if ( p_shipment_header_rec.SHIP_TO_CUST_PARTY_ID is NOT NULL
9297 AND p_shipment_header_rec.SHIP_TO_CUST_PARTY_ID <> FND_API.G_MISS_NUM) THEN
9298
9299 aso_debug_pub.add('Before Calling Validate Bill Ship Customer (Header/Ship)', 1, 'Y');
9300
9301 VALIDATE_BILL_SHIP_CUSTOMER(p_cust_party_id =>p_shipment_header_rec.SHIP_TO_CUST_PARTY_ID,
9302 p_cust_acct_id =>p_quote_header_rec.CUST_ACCOUNT_ID, p_resource_id =>p_quote_header_rec.resource_id,
9303 p_flag =>'SHIP',
9304 p_header => 'Y'
9305 );
9306
9307 aso_debug_pub.add('After Calling Validate Bill Ship Customer (Header/Ship)', 1, 'Y');
9308 END IF;
9309
9310
9311 --Validate Bill Ship Customer (Line/Bill)
9312 if ( p_quote_line_rec.INVOICE_TO_CUST_PARTY_ID is NOT NULL
9313 AND p_quote_line_rec.INVOICE_TO_CUST_PARTY_ID <> FND_API.G_MISS_NUM) THEN
9314
9315 aso_debug_pub.add('Before Calling Validate Bill Ship Customer (Line/Bill)', 1, 'Y');
9316
9317 VALIDATE_BILL_SHIP_CUSTOMER(p_cust_party_id =>p_quote_line_rec.INVOICE_TO_CUST_PARTY_ID,
9318 p_cust_acct_id =>p_quote_header_rec.CUST_ACCOUNT_ID, p_resource_id =>p_quote_header_rec.resource_id,
9319 p_flag =>'BILL',
9320 p_header => 'N'
9321 );
9322
9323 aso_debug_pub.add('After Calling Validate Bill Ship Customer (Line/Bill)', 1, 'Y');
9324 END IF;
9325
9326
9327 --Validate Bill Ship Customer (Line/Ship)
9328 if ( p_shipment_line_rec.SHIP_TO_CUST_PARTY_ID is NOT NULL
9329 AND p_shipment_line_rec.SHIP_TO_CUST_PARTY_ID <> FND_API.G_MISS_NUM) THEN
9330
9331 aso_debug_pub.add('Before Calling Validate Bill Ship Customer (Line/Ship)', 1, 'Y');
9332
9333 VALIDATE_BILL_SHIP_CUSTOMER(p_cust_party_id =>p_shipment_line_rec.SHIP_TO_CUST_PARTY_ID,
9334 p_cust_acct_id =>p_quote_header_rec.CUST_ACCOUNT_ID, p_resource_id =>p_quote_header_rec.resource_id,
9335 p_flag =>'SHIP',
9336 p_header => 'N'
9337 );
9338
9339 aso_debug_pub.add('After Calling Validate Bill Ship Customer (Line/Ship)', 1, 'Y');
9340 END IF;
9341
9342 --6. ***Validate Bill Ship Account***
9343
9344 --Validate Bill Ship Account(Header/Bill)
9345 if ( p_quote_header_rec.INVOICE_TO_CUST_ACCOUNT_ID is NOT NULL
9346 AND p_quote_header_rec.INVOICE_TO_CUST_ACCOUNT_ID <> FND_API.G_MISS_NUM) THEN
9347
9348 aso_debug_pub.add('Before Calling Validate Bill Ship Account(Header/Bill)', 1, 'Y');
9349
9350 VALIDATE_BILL_SHIP_ACCOUNT(p_cust_acct_id =>p_quote_header_rec.INVOICE_TO_CUST_ACCOUNT_ID,
9351 p_cust_party_id =>p_quote_header_rec.INVOICE_TO_CUST_PARTY_ID,
9352 p_resource_id =>p_quote_header_rec.resource_id,
9353 p_sold_to_cust_acct_id=>p_quote_header_rec.CUST_ACCOUNT_ID,
9354 p_flag =>'BILL',
9355 p_header => 'Y'
9356 );
9357 aso_debug_pub.add('After Calling Validate Bill Ship Account(Header/Bill)', 1, 'Y');
9358 END IF;
9359
9360
9361 --Validate Bill Ship Account(Header/Ship)
9362 if ( p_shipment_header_rec.SHIP_TO_CUST_ACCOUNT_ID is NOT NULL
9363 AND p_shipment_header_rec.SHIP_TO_CUST_ACCOUNT_ID <> FND_API.G_MISS_NUM) THEN
9364
9365 aso_debug_pub.add('Before Calling Validate Bill Ship Account(Header/Ship)', 1, 'Y');
9366
9367
9368 VALIDATE_BILL_SHIP_ACCOUNT(p_cust_acct_id =>p_shipment_header_rec.SHIP_TO_CUST_ACCOUNT_ID,
9369 p_cust_party_id =>p_shipment_header_rec.SHIP_TO_CUST_PARTY_ID,
9370 p_resource_id =>p_quote_header_rec.resource_id,
9371 p_sold_to_cust_acct_id=>p_quote_header_rec.CUST_ACCOUNT_ID,
9372 p_flag =>'SHIP',
9373 p_header => 'Y'
9374 );
9375 aso_debug_pub.add('After Calling Validate Bill Ship Account(Header/Ship)', 1, 'Y');
9376 END IF;
9377
9378
9379
9380 --Validate Bill Ship Account(Line/Bill)
9381 if ( p_quote_line_rec.INVOICE_TO_CUST_ACCOUNT_ID is NOT NULL
9382 AND p_quote_line_rec.INVOICE_TO_CUST_ACCOUNT_ID <> FND_API.G_MISS_NUM) THEN
9383
9384 aso_debug_pub.add('Before Calling Validate Bill Ship Account(Line/Bill)', 1, 'Y');
9385
9386 VALIDATE_BILL_SHIP_ACCOUNT(p_cust_acct_id =>p_quote_line_rec.INVOICE_TO_CUST_ACCOUNT_ID,
9387 p_cust_party_id =>p_quote_line_rec.INVOICE_TO_CUST_PARTY_ID,
9388 p_resource_id =>p_quote_header_rec.resource_id,
9389 p_sold_to_cust_acct_id=>p_quote_header_rec.CUST_ACCOUNT_ID,
9390 p_flag =>'BILL',
9391 p_header => 'N'
9392 );
9393 aso_debug_pub.add('After Calling Validate Bill Ship Account(Line/Bill)', 1, 'Y');
9394 END IF;
9395
9396
9397
9398 --Validate Bill Ship Account(Line/Ship)
9399 if ( p_shipment_line_rec.SHIP_TO_CUST_ACCOUNT_ID is NOT NULL
9400 AND p_shipment_line_rec.SHIP_TO_CUST_ACCOUNT_ID <> FND_API.G_MISS_NUM) THEN
9401
9402 aso_debug_pub.add('Before Calling Validate Bill Ship Account(Line/Ship)', 1, 'Y');
9403
9404 VALIDATE_BILL_SHIP_ACCOUNT(p_cust_acct_id =>p_shipment_line_rec.SHIP_TO_CUST_ACCOUNT_ID,
9405 p_cust_party_id =>p_shipment_line_rec.SHIP_TO_CUST_PARTY_ID,
9406 p_resource_id =>p_quote_header_rec.resource_id,
9407 p_sold_to_cust_acct_id=>p_quote_header_rec.CUST_ACCOUNT_ID,
9408 p_flag =>'SHIP',
9409 p_header => 'N'
9410 );
9411 aso_debug_pub.add('After Calling Validate Bill Ship Account(Line/Ship)', 1, 'Y');
9412 END IF;
9413
9414
9415
9416 --7. ***Validate Account***
9417
9418 --Validate Account (Header/SOLD)
9419 if ( p_quote_header_rec.CUST_ACCOUNT_ID is NOT NULL
9420 AND p_quote_header_rec.CUST_ACCOUNT_ID <> FND_API.G_MISS_NUM) THEN
9421
9422 aso_debug_pub.add('Before Calling Validate Account (Header/SOLD)', 1, 'Y');
9423
9424 VALIDATE_ACCOUNT(p_cust_acct_id => p_quote_header_rec.CUST_ACCOUNT_ID,
9425 p_cust_party_id => p_quote_header_rec.cust_party_id,
9426 p_resource_id => p_quote_header_rec.resource_id,
9427 p_flag => 'SOLD' ,
9428 p_header => 'Y'
9429 );
9430 aso_debug_pub.add('After Calling Validate Account (Header/SOLD)', 1, 'Y');
9431 END IF;
9432
9433
9434 --Validate Account (Header/END)
9435 if ( p_quote_header_rec.END_CUSTOMER_CUST_ACCOUNT_ID is NOT NULL
9436 AND p_quote_header_rec.END_CUSTOMER_CUST_ACCOUNT_ID <> FND_API.G_MISS_NUM) THEN
9437
9438 aso_debug_pub.add('Before Calling Validate Account (Header/END)', 1, 'Y');
9439
9440 VALIDATE_ACCOUNT(p_cust_acct_id => p_quote_header_rec.END_CUSTOMER_CUST_ACCOUNT_ID,
9441 p_cust_party_id => p_quote_header_rec.END_CUSTOMER_CUST_PARTY_ID,
9442 p_resource_id => p_quote_header_rec.resource_id,
9443 p_flag => 'END',
9444 p_header => 'Y'
9445 );
9446 aso_debug_pub.add('After Calling Validate Account (Header/END)', 1, 'Y');
9447 END IF;
9448
9449
9450 --Validate Account (Line/END)
9451 if ( p_quote_line_rec.END_CUSTOMER_CUST_ACCOUNT_ID is NOT NULL
9452 AND p_quote_line_rec.END_CUSTOMER_CUST_ACCOUNT_ID <> FND_API.G_MISS_NUM) THEN
9453
9454 aso_debug_pub.add('Before Calling Validate Account (Line/END)', 1, 'Y');
9455
9456 VALIDATE_ACCOUNT(p_cust_acct_id => p_quote_line_rec.END_CUSTOMER_CUST_ACCOUNT_ID,
9457 p_cust_party_id => p_quote_line_rec.END_CUSTOMER_CUST_PARTY_ID,
9458 p_resource_id => p_quote_header_rec.resource_id,
9459 p_flag => 'END',
9460 p_header => 'N'
9461 );
9462 aso_debug_pub.add('After Calling Validate Account (Line/END)', 1, 'Y');
9463 END IF;
9464
9465
9466 --TCA Calls End
9467
9468 -- Standard call to get message count and if count is 1, get message info.
9469 FND_MSG_PUB.Count_And_Get
9470 ( p_count => x_msg_count,
9471 p_data => x_msg_data
9472 );
9473
9474 --Printing the Values After processing
9475 PRINT_DEFAULTING_ATTRIBUTES('N');
9476
9477 END VALIDATE_DEFAULTING_DATA ;
9478 --Changes for Validating Defaulting Parameters (End):14/09/2005
9479
9480 Procedure Validate_cc_info
9481 (
9482 p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
9483 p_payment_rec IN aso_quote_pub.payment_rec_type,
9484 p_qte_header_rec IN ASO_QUOTE_PUB.Qte_Header_Rec_Type,
9485 P_Qte_Line_rec IN ASO_QUOTE_PUB.Qte_Line_Rec_Type := ASO_QUOTE_PUB.G_MISS_QTE_LINE_REC,
9486 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
9487 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
9488 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
9489 IS
9490 l_payment_type_code varchar2(240);
9491 l_inv_cust_party_id number;
9492
9493 cursor c_get_payment_type_code(p_qte_hdr_id number) is
9494 select payment_type_code
9495 from aso_payments
9496 where quote_header_id = p_qte_hdr_id
9497 and quote_line_id is null;
9498
9499 cursor c_get_lines_with_null_payment(p_qte_hdr_id number) is
9500 select b.invoice_to_cust_party_id
9501 from aso_payments a, aso_quote_lines_all b
9502 where a.quote_header_id = b.quote_header_id
9503 and a.quote_line_id = b.quote_line_id
9504 and b.quote_header_id = p_qte_hdr_id
9505 and a.quote_line_id is not null
9506 and a.payment_type_code is null
9507 and b.invoice_to_cust_party_id is not null;
9508
9509 Begin
9510 if aso_debug_pub.g_debug_flag = 'Y' then
9511 aso_debug_pub.add('Begin Validate_payment_rec', 1, 'Y');
9512 end if;
9513
9514 if p_init_msg_list = fnd_api.g_true then
9515 fnd_msg_pub.initialize;
9516 end if;
9517
9518 x_return_status := fnd_api.g_ret_sts_success;
9519
9520 if aso_debug_pub.g_debug_flag = 'Y' then
9521 aso_debug_pub.add('Payment Rec.payment_type_code: '||p_payment_rec.payment_type_code, 1, 'Y');
9522 aso_debug_pub.add('Payment Rec.quote_header_id: '||p_payment_rec.quote_header_id, 1, 'Y');
9523 aso_debug_pub.add('Payment Rec.quote_line_id: '||p_payment_rec.quote_line_id, 1, 'Y');
9524 aso_debug_pub.add('P_Qte_Line_rec.invoice_to_cust_party_id: '||P_Qte_Line_rec.invoice_to_cust_party_id, 1, 'Y');
9525 aso_debug_pub.add('p_qte_header_rec.invoice_to_cust_party_id: '||p_qte_header_rec.invoice_to_cust_party_id, 1, 'Y');
9526 end if;
9527
9528
9529
9530 if (p_payment_rec.payment_type_code = 'CREDIT_CARD' and
9531 (p_payment_rec.quote_line_id is null or p_payment_rec.quote_line_id = fnd_api.g_miss_num) and
9532 (p_qte_header_rec.invoice_to_cust_party_id is null or p_qte_header_rec.invoice_to_cust_party_id = fnd_api.g_miss_num))
9533 or
9534 (p_payment_rec.payment_type_code = 'CREDIT_CARD' and
9535 (p_payment_rec.quote_line_id is not null and p_payment_rec.quote_line_id <> fnd_api.g_miss_num) and
9536 (P_Qte_Line_rec.invoice_to_cust_party_id is null or P_Qte_Line_rec.invoice_to_cust_party_id = fnd_api.g_miss_num))
9537 then
9538
9539 x_return_status := fnd_api.g_ret_sts_error;
9540
9541 IF fnd_msg_pub.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
9542 FND_MESSAGE.Set_Name('ASO', 'ASO_MISSING_BILLTOPARTY');
9543 FND_MSG_PUB.ADD;
9544 END IF;
9545
9546 end if;
9547
9548 -- if line payment has bill to and payment type is null while header has payment type credit card, throw error
9549 if ((p_payment_rec.quote_line_id is not null and p_payment_rec.quote_line_id <> fnd_api.g_miss_num) and
9550 (P_Qte_Line_rec.invoice_to_cust_party_id is not null and P_Qte_Line_rec.invoice_to_cust_party_id <> fnd_api.g_miss_num) and
9551 (p_payment_rec.payment_type_code is null or p_payment_rec.payment_type_code = fnd_api.g_miss_char)) then
9552
9553 -- get the payment type from header payment record
9554 open c_get_payment_type_code(p_payment_rec.quote_header_id);
9555 fetch c_get_payment_type_code into l_payment_type_code;
9556 close c_get_payment_type_code;
9557
9558 if nvl(l_payment_type_code,'null') = 'CREDIT_CARD' then
9559
9560 x_return_status := fnd_api.g_ret_sts_error;
9561
9562 IF fnd_msg_pub.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
9563 FND_MESSAGE.Set_Name('ASO', 'ASO_MISSING_PAYMENT_DETAILS');
9564 FND_MSG_PUB.ADD;
9565 END IF;
9566
9567 end if;
9568
9569 end if;
9570
9571 -- if hdr payment is changed to cc, then make sure all lines have no null payment type if bill to is specified at line
9572 if ((p_payment_rec.quote_line_id is null or p_payment_rec.quote_line_id = fnd_api.g_miss_num) and
9573 (p_payment_rec.payment_type_code = 'CREDIT_CARD' )) then
9574
9575 -- get all the lines in quote and check their payment type
9576 open c_get_lines_with_null_payment(p_payment_rec.quote_header_id);
9577 fetch c_get_lines_with_null_payment into l_inv_cust_party_id;
9578
9579 if c_get_lines_with_null_payment%FOUND Then
9580 close c_get_lines_with_null_payment;
9581 x_return_status := fnd_api.g_ret_sts_error;
9582
9583 IF fnd_msg_pub.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
9584 FND_MESSAGE.Set_Name('ASO', 'ASO_MISSING_LN_PAYMENT_DETAILS');
9585 FND_MSG_PUB.ADD;
9586 END IF;
9587
9588 end if;
9589
9590 end if;
9591 if aso_debug_pub.g_debug_flag = 'Y' then
9592 aso_debug_pub.add('End Validate_payment_rec', 1, 'Y');
9593 end if;
9594
9595 End Validate_cc_info;
9596
9597
9598 PROCEDURE VALIDATE_OU(p_qte_header_rec IN ASO_QUOTE_PUB.Qte_Header_Rec_Type) IS --Procedure for OU Validtion (Yogeshwar 05/10/2005)
9599
9600 l_org_id number;
9601 l_access_mode varchar2(1);
9602
9603 BEGIN
9604 --Getting the current org_id
9605 l_org_id := MO_GLOBAL.GET_CURRENT_ORG_ID;
9606
9607 --Getting the Context Mode
9608 l_access_mode := MO_GLOBAL.GET_ACCESS_MODE ;
9609
9610 --when access mode is set to 'S'
9611 --Check if the current org_id matches with the org_id in p_qte_header_rec
9612 IF l_access_mode IS NOT NULL AND l_access_mode = 'S' THEN
9613 BEGIN
9614 IF ((p_qte_header_rec.org_id <> FND_API.G_MISS_NUM)
9615 AND (p_qte_header_rec.org_id IS NOT NULL)
9616 AND (l_org_id <> p_qte_header_rec.org_id)) THEN
9617
9618 IF fnd_msg_pub.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
9619 FND_MESSAGE.Set_Name('ASO', 'ASO_ORG_ID_MISMATCH');
9620 FND_MSG_PUB.ADD;
9621 END IF;
9622
9623 RAISE FND_API.G_EXC_ERROR;
9624 END IF;
9625 END ;
9626 ELSE
9627 IF fnd_msg_pub.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
9628 FND_MESSAGE.Set_Name('ASO', 'ASO_WRONG_ACCESS_MODE');
9629 FND_MSG_PUB.ADD;
9630 END IF;
9631
9632 RAISE FND_API.G_EXC_ERROR;
9633 END IF;
9634 END VALIDATE_OU;
9635
9636 PROCEDURE validate_ship_method_code
9637 (
9638 p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
9639 p_qte_header_id IN NUMBER := fnd_api.g_miss_num,
9640 p_qte_line_id IN NUMBER := fnd_api.g_miss_num,
9641 p_organization_id IN NUMBER := fnd_api.g_miss_num,
9642 p_ship_method_code IN VARCHAR2 := fnd_api.g_miss_char,
9643 p_operation_code IN VARCHAR2 := fnd_api.g_miss_char,
9644 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
9645 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
9646 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2) is
9647
9648 Cursor C_Get_ship_method ( l_ship_method_code varchar2, l_org_id number) is
9649 SELECT csm.ship_method_code
9650 from wsh_carrier_ship_methods csm,
9651 fnd_lookup_values fl
9652 where fl.lookup_type = 'SHIP_METHOD'
9653 and csm.ship_method_code = l_ship_method_code
9654 and fl.view_application_id = 3
9655 and csm.organization_id = l_org_id
9656 and fl.enabled_flag = 'Y'
9657 and csm.enabled_flag = 'Y'
9658 and (trunc(sysdate) between nvl(fl.start_date_active,trunc(sysdate))
9659 AND nvl(fl.end_date_active,trunc(sysdate)) );
9660
9661
9662 Cursor get_organization_id(l_qte_line_id number) is
9663 select organization_id
9664 from aso_quote_lines_all
9665 where quote_line_id = l_qte_line_id;
9666
9667 Cursor get_ship_code(l_qte_line_id number) is
9668 select ship_method_code
9669 from aso_shipments
9670 where quote_line_id = l_qte_line_id;
9671
9672 Cursor get_ship_code_from_hdr(l_qte_header number) is
9673 select ship_method_code
9674 from aso_shipments
9675 where quote_header_id = l_qte_header;
9676
9677 l_ship_method_code varchar2(30) := p_ship_method_code;
9678 lx_ship_method_code varchar2(30);
9679 l_organization_id number := p_organization_id;
9680
9681
9682 BEGIN
9683
9684 if aso_debug_pub.g_debug_flag = 'Y' then
9685 aso_debug_pub.add('Begin validate_ship_method_code', 1, 'Y');
9686 end if;
9687
9688 if p_init_msg_list = fnd_api.g_true then
9689 fnd_msg_pub.initialize;
9690 end if;
9691
9692 x_return_status := fnd_api.g_ret_sts_success;
9693
9694 if aso_debug_pub.g_debug_flag = 'Y' then
9695 aso_debug_pub.add('p_qte_header_id : '||p_qte_header_id, 1, 'Y');
9696 aso_debug_pub.add('p_qte_line_id: '||p_qte_line_id, 1, 'Y');
9697 aso_debug_pub.add('p_organization_id: '||p_organization_id, 1, 'Y');
9698 aso_debug_pub.add('p_ship_method_code: '||p_ship_method_code, 1, 'Y');
9699 aso_debug_pub.add('p_operation_code: '||p_operation_code, 1, 'Y');
9700 end if;
9701
9702 IF (p_operation_code = 'CREATE' and p_ship_method_code is not null and p_ship_method_code <> fnd_api.g_miss_char) THEN
9703
9704 OPEN C_Get_ship_method(p_ship_method_code,p_organization_id);
9705 fetch C_Get_ship_method into lx_ship_method_code;
9706
9707 if aso_debug_pub.g_debug_flag = 'Y' then
9708 aso_debug_pub.add('Operation code is CREATE', 1, 'Y');
9709 aso_debug_pub.add('lx_ship_method_code : '|| lx_ship_method_code, 1, 'Y');
9710 end if;
9711
9712 if C_Get_ship_method%NOTFOUND THEN
9713 Close C_Get_ship_method;
9714 x_return_status := FND_API.G_RET_STS_ERROR;
9715 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
9716 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
9717 FND_MESSAGE.Set_Token('COLUMN', 'SHIP_METHOD', FALSE);
9718 FND_MESSAGE.Set_Token('VALUE', p_ship_method_code, FALSE);
9719 FND_MSG_PUB.ADD;
9720 END IF;
9721 else
9722 Close C_Get_ship_method;
9723 end if;
9724
9725
9726 ELSIF p_operation_code = 'UPDATE' THEN
9727
9728 -- get the value from the db if not passed in
9729 IF (p_organization_id is null or p_organization_id = fnd_api.g_miss_num) then
9730 open get_organization_id(p_qte_line_id);
9731 fetch get_organization_id into l_organization_id;
9732 close get_organization_id;
9733 END IF;
9734
9735 IF (p_ship_method_code is null or p_ship_method_code = fnd_api.g_miss_char) then
9736 IF (p_qte_line_id is not null and p_qte_line_id <> fnd_api.g_miss_num) then
9737 open get_ship_code(p_qte_line_id);
9738 fetch get_ship_code into l_ship_method_code;
9739 close get_ship_code;
9740 ELSE
9741 open get_ship_code_from_hdr(p_qte_header_id);
9742 fetch get_ship_code_from_hdr into l_ship_method_code;
9743 close get_ship_code_from_hdr;
9744 END IF;
9745 End if;
9746
9747 if aso_debug_pub.g_debug_flag = 'Y' then
9748 aso_debug_pub.add('l_organization_id: '|| l_organization_id, 1, 'Y');
9749 aso_debug_pub.add('l_ship_method_code: '|| l_ship_method_code, 1, 'Y');
9750 end if;
9751
9752 IF (l_ship_method_code is not null and l_ship_method_code <> fnd_api.g_miss_char) then
9753 OPEN C_Get_ship_method(l_ship_method_code,l_organization_id);
9754 fetch C_Get_ship_method into lx_ship_method_code;
9755
9756 if aso_debug_pub.g_debug_flag = 'Y' then
9757 aso_debug_pub.add('Operation code is UPDATE', 1, 'Y');
9758 aso_debug_pub.add('lx_ship_method_code : '|| lx_ship_method_code, 1, 'Y');
9759 end if;
9760
9761 if C_Get_ship_method%NOTFOUND THEN
9762 Close C_Get_ship_method;
9763 x_return_status := FND_API.G_RET_STS_ERROR;
9764 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
9765 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
9766 FND_MESSAGE.Set_Token('COLUMN', 'SHIP_METHOD', FALSE);
9767 FND_MESSAGE.Set_Token('VALUE', l_ship_method_code, FALSE);
9768 FND_MSG_PUB.ADD;
9769 END IF;
9770 else
9771 Close C_Get_ship_method;
9772 end if;
9773 end if; -- end if for the ship_method code check
9774 END IF; -- end if for the operation_code check
9775
9776
9777 if aso_debug_pub.g_debug_flag = 'Y' then
9778 aso_debug_pub.add('End validate_ship_method_code', 1, 'Y');
9779 end if;
9780 END validate_ship_method_code;
9781
9782 End ASO_VALIDATE_PVT;
9783