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