[Home] [Help]
PACKAGE BODY: APPS.OE_CNCL_VALIDATE_HEADER
Source
1 PACKAGE BODY OE_CNCL_Validate_Header AS
2 /* $Header: OEXVCHDB.pls 120.8 2006/06/26 17:43:08 aycui ship $ */
3
4 -- Global constant holding the package name
5
6 G_PKG_NAME CONSTANT VARCHAR2(30) := 'OE_CNCL_Validate_Header';
7
8
9 /* LOCAL PROCEDURES */
10
11 /*-------------------------------------------------------
12 PROCEDURE: Check_Book_Reqd_Attributes
13 Description:
14 --------------------------------------------------------*/
15
16 PROCEDURE Check_Book_Reqd_Attributes
17 ( p_header_rec IN OE_Order_PUB.Header_Rec_Type
18 , x_return_status IN OUT NOCOPY /* file.sql.39 change */ VARCHAR2
19 )
20 IS
21 l_order_type_rec OE_Order_Cache.Order_Type_Rec_Type;
22 l_set_of_books_rec OE_Order_Cache.Set_Of_Books_Rec_Type;
23 BEGIN
24
25 oe_debug_pub.add('Enter OE_CNCL_VALIDATE_HEADER.CHECK_BOOK_REQD',1);
26
27 -- Check for the following required fields on a booked order:
28 -- Order Number, Sold To Org, Invoice To Org,
29 -- Price List, Tax Exempt Flag, Sales Person, Order Date
30
31 IF p_header_rec.sold_to_org_id IS NULL
32 THEN
33 x_return_status := FND_API.G_RET_STS_ERROR;
34 FND_MESSAGE.SET_NAME('ONT','OE_BOOK_REQUIRED_ATTRIBUTE');
35 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
36 OE_Order_UTIL.Get_Attribute_Name('SOLD_TO_ORG_ID'));
37 OE_MSG_PUB.ADD;
38 END IF;
39
40 IF p_header_rec.salesrep_id IS NULL
41 THEN
42 x_return_status := FND_API.G_RET_STS_ERROR;
43 FND_MESSAGE.SET_NAME('ONT','OE_BOOK_REQUIRED_ATTRIBUTE');
44 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
45 OE_Order_UTIL.Get_Attribute_Name('SALESREP_ID'));
46 OE_MSG_PUB.ADD;
47 END IF;
48
49 IF p_header_rec.ordered_date IS NULL
50 THEN
51 x_return_status := FND_API.G_RET_STS_ERROR;
52 FND_MESSAGE.SET_NAME('ONT','OE_BOOK_REQUIRED_ATTRIBUTE');
53 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
54 OE_Order_UTIL.Get_Attribute_Name('ORDERED_DATE'));
55 OE_MSG_PUB.ADD;
56 END IF;
57
58 IF p_header_rec.invoice_to_org_id IS NULL
59 THEN
60 x_return_status := FND_API.G_RET_STS_ERROR;
61 FND_MESSAGE.SET_NAME('ONT','OE_BOOK_REQUIRED_ATTRIBUTE');
62 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
63 OE_Order_UTIL.Get_Attribute_Name('INVOICE_TO_ORG_ID'));
64 OE_MSG_PUB.ADD;
65 END IF;
66
67 IF p_header_rec.tax_exempt_flag IS NULL
68 THEN
69 x_return_status := FND_API.G_RET_STS_ERROR;
70 FND_MESSAGE.SET_NAME('ONT','OE_BOOK_REQUIRED_ATTRIBUTE');
71 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
72 OE_Order_UTIL.Get_Attribute_Name('TAX_EXEMPT_FLAG'));
73 OE_MSG_PUB.ADD;
74 END IF;
75
76
77 -- Fix bug 1262790
78 -- Ship To Org and Payment Term are required only on regular or
79 -- MIXED orders, NOT on RETURN orders
80
81 oe_debug_pub.add('p_header_rec.ship_to_org_id' || to_char(p_header_rec.ship_to_org_id),2);
82
83 IF p_header_rec.order_category_code <>
84 OE_GLOBALS.G_RETURN_CATEGORY_CODE THEN
85
86 IF p_header_rec.ship_to_org_id IS NULL
87 THEN
88 x_return_status := FND_API.G_RET_STS_ERROR;
89 FND_MESSAGE.SET_NAME('ONT','OE_BOOK_REQUIRED_ATTRIBUTE');
90 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
91 OE_Order_UTIL.Get_Attribute_Name('SHIP_TO_ORG_ID'));
92 OE_MSG_PUB.ADD;
93 END IF;
94
95 IF p_header_rec.payment_term_id IS NULL
96 THEN
97 x_return_status := FND_API.G_RET_STS_ERROR;
98 FND_MESSAGE.SET_NAME('ONT','OE_BOOK_REQUIRED_ATTRIBUTE');
99 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
100 OE_Order_UTIL.Get_Attribute_Name('PAYMENT_TERM_ID'));
101 OE_MSG_PUB.ADD;
102 END IF;
103
104 END IF;
105
106
107 -- Check for additional required fields based on flags set
108 -- at the order type: agreement, customer po number
109
110 l_order_type_rec := OE_Order_Cache.Load_Order_Type
111 (p_header_rec.order_type_id);
112
113 IF ( l_order_type_rec.agreement_required_flag = 'Y' AND
114 p_header_rec.agreement_id IS NULL)
115 THEN
116 x_return_status := FND_API.G_RET_STS_ERROR;
117 FND_MESSAGE.SET_NAME('ONT','OE_BOOK_REQUIRED_ATTRIBUTE');
118 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
119 OE_Order_UTIL.Get_Attribute_Name('AGREEMENT_ID'));
120 OE_MSG_PUB.ADD;
121 END IF;
122
123 IF ( l_order_type_rec.require_po_flag = 'Y' AND
124 p_header_rec.cust_po_number IS NULL)
125 THEN
126 x_return_status := FND_API.G_RET_STS_ERROR;
127 FND_MESSAGE.SET_NAME('ONT','OE_BOOK_REQUIRED_ATTRIBUTE');
128 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
129 OE_Order_UTIL.Get_Attribute_Name('CUST_PO_NUMBER'));
130 OE_MSG_PUB.ADD;
131 END IF;
132
133
134 -- Conversion Type Related Checks
135
136 -- IF SOB currency is dIFferent from order currency,
137 -- conversion type is required
138
139 IF p_header_rec.conversion_type_code IS NULL
140 THEN
141 l_set_of_books_rec := OE_Order_Cache.Load_Set_Of_Books;
142
143 IF ( l_set_of_books_rec.currency_code <>
144 p_header_rec.transactional_curr_code) THEN
145 x_return_status := FND_API.G_RET_STS_ERROR;
146 FND_MESSAGE.SET_NAME('ONT','OE_VAL_REQ_NON_BASE_CURRENCY');
147 FND_MESSAGE.SET_TOKEN
148 ('ORDER_CURRENCY',p_header_rec.transactional_curr_code);
149 FND_MESSAGE.SET_TOKEN('SOB_CURRENCY',l_set_of_books_rec.currency_code);
150 OE_MSG_PUB.ADD;
151 END IF;
152
153 -- IF conversion type is 'User', conversion rate AND conversion rate date
154 -- required.
155
156 ELSIF p_header_rec.conversion_type_code = 'User'
157 THEN
158
159 IF p_header_rec.conversion_rate IS NULL OR
160 p_header_rec.conversion_rate_date IS NULL
161 THEN
162 x_return_status := FND_API.G_RET_STS_ERROR;
163 FND_MESSAGE.SET_NAME('ONT','OE_VAL_USER_CONVERSION_TYPE');
164 OE_MSG_PUB.ADD;
165 END IF;
166
167 END IF; -- END of checks based on conversion type
168
169
170 -- Checks based on payment type attached to the order
171
172 IF p_header_rec.payment_type_code IS NOT NULL THEN
173
174 -- payment amount should be specIFied
175 -- only IF Payment Type is NOT Credit Card
176
177 IF p_header_rec.payment_type_code <> 'CREDIT_CARD' AND
178 p_header_rec.payment_amount IS NULL
179 THEN
180 x_return_status := FND_API.G_RET_STS_ERROR;
181 FND_MESSAGE.SET_NAME('ONT','OE_BOOK_REQUIRED_ATTRIBUTE');
182 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
183 OE_Order_UTIL.Get_Attribute_Name('PAYMENT_AMOUNT'));
184 OE_MSG_PUB.ADD;
185 END IF;
186
187 -- check number required IF payment type is Check
188
189 IF (p_header_rec.payment_type_code = 'CHECK' AND
190 p_header_rec.check_number IS NULL )
191 THEN
192 x_return_status := FND_API.G_RET_STS_ERROR;
193 FND_MESSAGE.SET_NAME('ONT','OE_VAL_CHECK_NUM_REQD');
194 OE_MSG_PUB.ADD;
195 END IF;
196
197 -- credit card holder name, number AND expiration date
198 -- required for payment type of Credit Card
199
200 /*
201 ** Following Validation Moved to Authorize Credit Card
202 ** Payment Routine. Not required anymore at BOOKING.
203 IF p_header_rec.payment_type_code = 'CREDIT_CARD' THEN
204 IF p_header_rec.credit_card_holder_name IS NULL
205 OR p_header_rec.credit_card_number IS NULL
206 OR p_header_rec.credit_card_expiration_date IS NULL
207 THEN
208 x_return_status := FND_API.G_RET_STS_ERROR;
209 FND_MESSAGE.SET_NAME('ONT','OE_VAL_CREDIT_CARD_REQD');
210 OE_MSG_PUB.ADD;
211 END IF;
212 END IF;
213 */
214
215 END IF; -- END of checks related to payment type
216
217 oe_debug_pub.add('Exiting OE_CNCL_VALIDATE_HEADER.CHECK_BOOK_REQD',1);
218 EXCEPTION
219 WHEN OTHERS THEN
220 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
221
222 IF OE_MSG_PUB.Check_Msg_Level (OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
223 THEN
224 OE_MSG_PUB.Add_Exc_Msg
225 ( G_PKG_NAME ,
226 'Check_Book_Reqd_Attributes'
227 );
228 END IF;
229
230 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
231 END Check_Book_Reqd_Attributes;
232
233 ---------------------------------------------------------------
234 -- FUNCTION Is_Duplicate_PO_Number
235 -- Added to fix bug 1162304
236 -- Returns TRUE if the PO number is referenced on another order
237 -- for the same customer
238 ---------------------------------------------------------------
239
240 FUNCTION Is_Duplicate_PO_Number
241 ( p_cust_po_number IN VARCHAR2
242 , p_sold_to_org_id IN NUMBER
243 , p_header_id IN NUMBER
244 ) RETURN BOOLEAN
245 IS
246 l_duplicate_exists varchar2(1);
247 BEGIN
248
249 SELECT /* MOAC_SQL_NO_CHANGE */ 'Y'
250 INTO l_duplicate_exists
251 FROM DUAL
252 WHERE EXISTS (SELECT 'Y'
253 FROM OE_ORDER_HEADERS
254 WHERE HEADER_ID <> p_header_id
255 AND SOLD_TO_ORG_ID = p_sold_to_org_id
256 AND CUST_PO_NUMBER = p_cust_po_number )
257 OR EXISTS (SELECT 'Y'
258 FROM OE_ORDER_LINES
259 WHERE HEADER_ID <> p_header_id
260 AND SOLD_TO_ORG_ID = p_sold_to_org_id
261 AND CUST_PO_NUMBER = p_cust_po_number );
262
263 RETURN TRUE;
264
265 EXCEPTION
266 WHEN NO_DATA_FOUND THEN
267 RETURN FALSE;
268
269 END Is_Duplicate_PO_Number;
270
271 /*-------------------------------------------------------
272 PROCEDURE: Entity
273 Description:
274 --------------------------------------------------------*/
275
276 PROCEDURE Entity
277 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
278 , p_header_rec IN OE_Order_PUB.Header_Rec_Type
279 )
280 IS
281 l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
282 l_dummy VARCHAR2(10);
283 l_price_list_rec OE_Order_Cache.Price_List_Rec_Type;
284 -- l_order_type_rec OE_Order_Cache.Order_Type_Rec_Type;
285 -- L_agreement_rec OE_Order_Cache.Agreement_Rec_Type;
286
287 l_agreement_name varchar2(240);
288 l_sold_to_org number;
289 l_price_list_id number;
290 lcustomer_relations varchar2(1);
291 l_list_type_code VARCHAR2(30);
292
293 -- eBTax Changes
294 l_ship_to_cust_Acct_id hz_cust_Accounts.cust_Account_id%type;
295 l_ship_to_party_id hz_cust_accounts.party_id%type;
296 l_ship_to_party_site_id hz_party_sites.party_site_id%type;
297 l_bill_to_cust_Acct_id hz_cust_Accounts.cust_Account_id%type;
298 l_bill_to_party_id hz_cust_accounts.party_id%type;
299 l_bill_to_party_site_id hz_party_sites.party_site_id%type;
300 l_org_id NUMBER;
301 -- l_legal_entity_id NUMBER;
302
303 cursor partyinfo(p_site_org_id HZ_CUST_SITE_USES_ALL.SITE_USE_ID%type) is
304 SELECT cust_acct.cust_account_id,
305 cust_Acct.party_id,
306 acct_site.party_site_id,
307 site_use.org_id
308 FROM
309 HZ_CUST_SITE_USES_ALL site_use,
310 HZ_CUST_ACCT_SITES_ALL acct_site,
311 HZ_CUST_ACCOUNTS_ALL cust_Acct
312 WHERE site_use.site_use_id = p_site_org_id
313 AND site_use.cust_acct_site_id = acct_site.cust_acct_site_id
314 and acct_site.cust_account_id = cust_acct.cust_account_id;
315 -- end eBtax changes
316
317 --bug 4729536
318 Cursor Cur_Customer_Relations IS
319 SELECT /*MOAC_SQL_NO_CHANGE*/ 'VALID'
320 FROM oe_ship_to_orgs_v
321 WHERE site_use_id = p_header_rec.ship_to_org_id
322 AND customer_id = p_header_rec.sold_to_org_id
323 AND ROWNUM = 1
324
325 UNION ALL
326
327 SELECT /*MOAC_SQL_NO_CHANGE*/ 'VALID'
328 FROM oe_ship_to_orgs_v osov
329 WHERE site_use_id = p_header_rec.ship_to_org_id
330 AND EXISTS
331 (SELECT 1 FROM
332 HZ_CUST_ACCT_RELATE hcar
333 WHERE hcar.cust_account_id = osov.customer_id AND
334 hcar.related_cust_account_id = p_header_rec.sold_to_org_id
335 /* added the following condition to fix the bug 2002486 */
336 AND hcar.ship_to_flag = 'Y')
337 AND ROWNUM = 1;
338
339 Cursor Cur_customer_relations_inv IS
340 SELECT /*MOAC_SQL_NO_CHANGE*/ 'VALID'
341 FROM oe_invoice_to_orgs_v
342 WHERE site_use_id = p_header_rec.invoice_to_org_id
343 AND customer_id = p_header_rec.sold_to_org_id
344 AND ROWNUM = 1
345
346 UNION ALL
347
348 SELECT /*MOAC_SQL_NO_CHANGE*/ 'VALID'
349 FROM oe_invoice_to_orgs_v oito
350 WHERE oito.site_use_id = p_header_rec.invoice_to_org_id
351 AND EXISTS(
352 SELECT 1 FROM
353 HZ_CUST_ACCT_RELATE hcar WHERE
354 hcar.cust_account_id = oito.customer_id AND
355 hcar.related_cust_account_id = p_header_rec.sold_to_org_id
356 AND hcar.bill_to_flag = 'Y')
357 AND ROWNUM = 1;
358
359
360 BEGIN
361 oe_debug_pub.add('Enter OE_CNCL_VALIDATE_HEADER.ENTITY',1);
362
363 -- Check required attributes.
364 --lcustomer_relations := FND_PROFILE.VALUE('ONT_CUSTOMER_RELATIONSHIPS');
365 lcustomer_relations := OE_Sys_Parameters.VALUE('CUSTOMER_RELATIONSHIPS_FLAG');
366
367
368
369
370 ----------------------------------------------------------
371 -- Check rest of required attributes here.
372 ----------------------------------------------------------
373
374
375 oe_debug_pub.add('p_header_rec.order_type_id' || p_header_rec.order_type_id, 2);
376
377 IF p_header_rec.order_type_id IS NULL
378 THEN
379 l_return_status := FND_API.G_RET_STS_ERROR;
380
381 IF OE_MSG_PUB.Check_Msg_Level (OE_MSG_PUB.G_MSG_LVL_ERROR)
382 THEN
383 fnd_message.set_name('ONT','OE_ATTRIBUTE_REQUIRED');
384 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
385 OE_Order_UTIL.Get_Attribute_Name('ORDER_TYPE_ID'));
386 OE_MSG_PUB.Add;
387 END IF;
388 END IF;
389
390 --add messages
391
392
393 oe_debug_pub.add('p_header_rec.transactional_curr_code' || p_header_rec.transactional_curr_code, 2);
394
395 IF p_header_rec.transactional_curr_code IS NULL
396 THEN
397 l_return_status := FND_API.G_RET_STS_ERROR;
398
399 IF OE_MSG_PUB.Check_Msg_Level (OE_MSG_PUB.G_MSG_LVL_ERROR)
400 THEN
401 fnd_message.set_name('ONT','OE_ATTRIBUTE_REQUIRED');
402 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
403 OE_Order_UTIL.Get_Attribute_Name('TRANSACTIONAL_CURR_CODE'));
404 OE_MSG_PUB.Add;
405 END IF;
406
407 END IF;
408
409
410 -- Return Error IF a required attribute is missing.
411 IF l_return_status = FND_API.G_RET_STS_ERROR
412 THEN
413 RAISE FND_API.G_EXC_ERROR;
414 END IF;
415
416
417 ----------------------------------------------------------
418 -- Check conditionally required attributes here.
419 ----------------------------------------------------------
420
421 -- Check attributes required for booked header
422
423
424 oe_debug_pub.add('p_header_rec.booked_flag' || p_header_rec.booked_flag, 2);
425
426
427 IF p_header_rec.booked_flag = 'Y' THEN
428
429 Check_Book_Reqd_Attributes
430 ( p_header_rec => p_header_rec
431 , x_return_status => l_return_status
432 );
433
434 END IF;
435
439
436 -- IF the Tax handling is "Exempt"
437
438 oe_debug_pub.add('p_header_rec.tax_exempt_flag' || p_header_rec.tax_exempt_flag, 2);
440 IF p_header_rec.tax_exempt_flag = 'E'
441 THEN
442 -- Check for Tax exempt reason
443 IF p_header_rec.tax_exempt_reason_code IS NULL OR
444 p_header_rec.tax_exempt_reason_code = FND_API.G_MISS_CHAR
445 THEN
446 l_return_status := FND_API.G_RET_STS_ERROR;
447
448 IF OE_MSG_PUB.Check_Msg_Level (OE_MSG_PUB.G_MSG_LVL_ERROR)
449 THEN
450 fnd_message.set_name('ONT','OE_ATTRIBUTE_REQUIRED');
451 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
452 OE_Order_UTIL.Get_Attribute_Name('TAX_EXEMPT_REASON_CODE'));
453 OE_MSG_PUB.Add;
454 END IF;
455
456 END IF;
457
458 END IF; -- IF Tax handling is exempt
459
460 -- IF the TAX handling is STANDARD THEN we can not validate the
461 -- Tax Exempt Number as it can be a NULL value.
462
463 -- IF the Tax handling is "Required"
464 IF p_header_rec.tax_exempt_flag = 'R'
465 THEN
466
467 -- Check for Tax exempt number/Tax exempt reason.
468
469 IF (p_header_rec.tax_exempt_number IS NOT NULL AND
470 p_header_rec.tax_exempt_number <> FND_API.G_MISS_CHAR)
471 OR
472 (p_header_rec.tax_exempt_reason_code IS NOT NULL AND
473 p_header_rec.tax_exempt_reason_code <> FND_API.G_MISS_CHAR)
474 THEN
475 l_return_status := FND_API.G_RET_STS_ERROR;
476
477 IF OE_MSG_PUB.Check_Msg_Level (OE_MSG_PUB.G_MSG_LVL_ERROR)
478 THEN
479 fnd_message.set_name('ONT','OE_TAX_EXEMPTION_NOT_ALLOWED');
480 OE_MSG_PUB.Add;
481 END IF;
482 END IF;
483
484 END IF;
485
486 -- Return Error IF a conditionally required attribute is missing.
487
488 IF l_return_status = FND_API.G_RET_STS_ERROR
489 THEN
490 RAISE FND_API.G_EXC_ERROR;
491 END IF;
492
493
494 ----------------------------------------------------------------
495 -- VALIDATE ATTRIBUTE DEPENDENCIES
496 ----------------------------------------------------------------
497
498 oe_debug_pub.add('New price ' || p_header_rec.price_list_id,2);
499 oe_debug_pub.add('New curr ' || p_header_rec.transactional_curr_code,2);
500 -- Validate currency
501
502 l_price_list_rec :=
503 OE_Order_Cache.Load_Price_List ( p_header_rec.price_list_id );
504
505
506 oe_debug_pub.add('p_header_rec.price_list_id' || p_header_rec.price_list_id, 2);
507
508
509 IF p_header_rec.price_list_id IS NOT NULL
510 THEN
511
512 IF p_header_rec.transactional_curr_code <>
513 l_price_list_rec.currency_code
514 THEN
515 l_return_status := FND_API.G_RET_STS_ERROR;
516 fnd_message.set_name('ONT','OE_VAL_ORD_CURRENCY_MISMATCH');
517 FND_MESSAGE.SET_TOKEN('ORDER_CURRENCY',
518 p_header_rec.transactional_curr_code);
519 FND_MESSAGE.SET_TOKEN('PRICE_LIST_CURRENCY',
520 l_price_list_rec.currency_code);
521 OE_MSG_PUB.Add;
522 END IF; -- Currency Mismatch.
523
524 END IF; -- Price list or currency changed.
525
526 -- Currency_date, currency_rate should be null when type is null.
527
528
529 oe_debug_pub.add('p_header_rec.Conversion_type_code' || p_header_rec.Conversion_type_code, 2);
530
531 IF p_header_rec.Conversion_type_code IS NULL
532 THEN
533 IF Nvl(p_header_rec.conversion_rate, FND_API.G_MISS_NUM)
534 <> FND_API.G_MISS_NUM OR
535 Nvl(p_header_rec.conversion_rate_date, FND_API.G_MISS_DATE)
536 <> FND_API.G_MISS_DATE
537 THEN
538 l_return_status := FND_API.G_RET_STS_ERROR;
539 fnd_message.set_name('ONT','OE_VAL_CONVERSION_TYPE');
540 OE_MSG_PUB.Add;
541 END IF;
542
543 END IF;
544
545 -- made changes to the bug 3220059
546 -- Validation to check that conversion rate are null when type is not User
547
548 IF p_header_rec.conversion_type_code <> 'User' AND
549 p_header_rec.conversion_rate IS NOT NULL
550 THEN
551 l_return_status := FND_API.G_RET_STS_ERROR;
552 FND_MESSAGE.SET_NAME('ONT','OE_VALIDATION_CONV_TYPE');
553 OE_MSG_PUB.ADD;
554
555 END IF; -- END of checks based on conversion type
556
557 oe_debug_pub.add('p_header_rec.ordered_date' || p_header_rec.ordered_date, 2);
558
559 -- Order Type has to be valid
560 BEGIN
561
562 SELECT 'VALID'
563 INTO l_dummy
564 FROM OE_ORDER_TYPES_V
565 WHERE ORDER_TYPE_ID = p_header_rec.order_type_id
566 AND ROWNUM = 1;
567 --
568 -- Commented out when importing CLOSED orders
569 -- AND p_header_rec.ordered_date
570 -- BETWEEN NVL(START_DATE_ACTIVE,p_header_rec.ordered_date)
571 -- AND NVL( END_DATE_ACTIVE,p_header_rec.ordered_date);
572 -- Valid Order Type.
573
577 fnd_message.set_name('ONT','OE_INVALID_ATTRIBUTE');
574 EXCEPTION
575 WHEN NO_DATA_FOUND THEN
576 l_return_status := FND_API.G_RET_STS_ERROR;
578 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
579 OE_Order_Util.Get_Attribute_Name('ORDER_TYPE_ID'));
580 OE_MSG_PUB.Add;
581
582 WHEN OTHERS THEN
583
584 IF OE_MSG_PUB.Check_Msg_Level
585 (OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
586 THEN
587
588 OE_MSG_PUB.Add_Exc_Msg
589 ( G_PKG_NAME ,
590 'Record - Order Type'
591 );
592 END IF;
593
594 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
595 END;
596
597 -- Agreement depends on Order Type AND Sold To Org
598
599
600 oe_debug_pub.add('p_header_rec.agreement_id' || p_header_rec.agreement_id, 2);
601
602 IF p_header_rec.agreement_id IS NOT NULL THEN
603 -- commented by Geresh
604 -- l_agreement_rec :=
605 -- OE_Order_Cache.Load_Agreement (p_header_rec.agreement_id);
606
607 BEGIN
608 BEGIN
609 select list_type_code
610 into l_list_type_code
611 from qp_list_headers_vl
612 where list_header_id = p_header_rec.price_list_id;
613 EXCEPTION WHEN NO_DATA_FOUND THEN
614 null;
615 END;
616
617 IF NOT OE_GLOBALS.EQUAL(l_list_type_code,'PRL') THEN
618 -- any price list with 'PRL' type should be allowed to
619 -- be associated with any agreement according to bug 1386406.
620
621 select name ,sold_to_org_id , price_list_id
622 into l_agreement_name,l_sold_to_org,l_price_list_id
623 from oe_agreements_v
624 where agreement_id = p_header_rec.agreement_id
625 AND ROWNUM = 1;
626 -- Commented out when importing CLOSED orders
627 --
628 -- AND trunc(nvl(p_header_rec.pricing_date,sysdate)) between
629 -- trunc(nvl(START_DATE_ACTIVE,add_months(sysdate,-10000)))
630 -- AND trunc(nvl(END_DATE_ACTIVE,add_months(sysdate,+10000)));
631
632 -- Geresh added
633 IF l_price_list_id <> p_Header_rec.price_list_id
634 THEN
635 fnd_message.set_name('ONT', 'OE_INVALID_AGREEMENT_PLIST');
636 fnd_message.set_Token
637 ('AGREEMENT_NAME', l_agreement_name || sqlerrm);
638 fnd_message.set_Token('PRICE_LIST1', p_Header_rec.price_list_id);
639 fnd_message.set_Token('PRICE_LIST2', l_price_list_id);
640 OE_MSG_PUB.Add;
641 oe_debug_pub.add('Invalid Agreement +price_list_id combination',2);
642 raise FND_API.G_EXC_ERROR;
643 END IF;
644 END IF;
645
646
647 EXCEPTION
648 WHEN NO_DATA_FOUND THEN
649 fnd_message.set_name('ONT', 'OE_INVALID_AGREEMENT_PLIST');
650 fnd_message.set_Token('AGREEMENT_NAME', l_agreement_name);
651 fnd_message.set_Token('PRICE_LIST1', p_Header_rec.price_list_id);
652 fnd_message.set_Token('PRICE_LIST2', l_price_list_id || sqlerrm);
653 OE_MSG_PUB.Add;
654 oe_debug_pub.add
655 ('No Data Found Agreement+price_list_id combination',2);
656 raise FND_API.G_EXC_ERROR;
657 END;
658
659 -- l_order_type_rec :=
660 -- OE_Order_Cache.Load_Order_Type (p_header_rec.order_type_id);
661
662 END IF; -- Agreement is not null
663
664 -- Ship to Org id depends on sold to org.
665
666 oe_debug_pub.add('p_header_rec.ship_to_org_id' || p_header_rec.ship_to_org_id, 2);
667
668 IF p_header_rec.ship_to_org_id IS NOT NULL
669 THEN
670
671 BEGIN
672 oe_debug_pub.add
673 ('ship_to_org_id :'||to_char(p_header_rec.ship_to_org_id),2);
674 oe_debug_pub.add
675 ('Customer Relation :'||lcustomer_relations,2);
676
677 --lcustomer_relations := FND_PROFILE.VALUE('ONT_CUSTOMER_RELATIONSHIPS');
678
679 IF nvl(lcustomer_relations,'N') = 'N' THEN
680 oe_debug_pub.add
681 ('Cr: No',2);
682
683 SELECT 'VALID'
684 INTO l_dummy
685 FROM oe_ship_to_orgs_v
686 WHERE customer_id = p_header_rec.sold_to_org_id
687 AND site_use_id = p_header_rec.ship_to_org_id
688 AND ROWNUM = 1;
689 --
690 -- Commented out when importing CLOSED orders
691 --
692 -- AND status = 'A';
693
694 ELSIF lcustomer_relations = 'Y' THEN
695 oe_debug_pub.add
696 ('Cr: Yes',2);
697
698 /*Select /*MOAC_SQL_NO_CHANGE 'VALID'
699 Into l_dummy
700 From oe_ship_to_orgs_v
701 WHERE site_use_id = p_header_rec.ship_to_org_id
702 AND
703 customer_id in (
704 Select p_header_rec.sold_to_org_id from dual
705 union
706 select cust_account_id from
707 HZ_CUST_ACCT_RELATE
711
708 Where related_cust_account_id = p_header_rec.sold_to_org_id
709 /* added the following condition to fix the bug 2002486
710 and ship_to_flag = 'Y')*/
712 /* Replaced ra tables with HZ tables to fix the bug 1888440
713 and rownum = 1;*/
714
715 /* Replaced ra tables with HZ tables to fix the bug 1888440 */
716
717 --bug 4729536
718 OPEN cur_customer_relations;
719 Fetch cur_customer_relations into l_dummy;
720 Close cur_customer_relations;
721 --bug 4729536
722
723 -- Commented out when importing CLOSED orders
724 --
725 -- AND status = 'A'
726
727 /* added the following ELSIF condition to fix the bug 2002486 */
728
729 ELSIF nvl(lcustomer_relations,'N') = 'A' THEN
730 oe_debug_pub.add
731 ('Cr: A',2);
732
733 SELECT 'VALID'
734 INTO l_dummy
735 FROM oe_ship_to_orgs_v
736 WHERE site_use_id = p_header_rec.ship_to_org_id
737 AND ROWNUM = 1;
738
739
740 oe_debug_pub.add
741 ('Cr: Yes- After the select',2);
742
743 END IF;
744
745
746 -- Valid Ship To Org Id.
747
748 EXCEPTION
749
750 WHEN NO_DATA_FOUND THEN
751 oe_debug_pub.add
752 ('In: No data found',2);
753 l_return_status := FND_API.G_RET_STS_ERROR;
754 fnd_message.set_name('ONT','OE_INVALID_ATTRIBUTE');
755 FND_MESSAGE.SET_TOKEN('ATTRIBUTE', OE_Order_Util.Get_Attribute_Name
756 ('ship_to_org_id'));
757 OE_MSG_PUB.Add;
758
759 WHEN OTHERS THEN
760
761 IF OE_MSG_PUB.Check_Msg_Level
762 (OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
763 THEN
764 OE_MSG_PUB.Add_Exc_Msg
765 ( G_PKG_NAME ,
766 'Record - Ship To'
767 );
768 END IF;
769 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
770
771 END;
772
773 END IF; -- Ship To needed validation.
774
775 -- Deliver to Org id depends on sold to org.
776 oe_debug_pub.add('p_header_rec.deliver_to_org_id'|| to_char(p_header_rec.deliver_to_org_id),2);
777 IF p_header_rec.deliver_to_org_id IS NOT NULL
778 THEN
779
780 BEGIN
781
782 IF nvl(lcustomer_relations,'N') = 'N' THEN
783
784 SELECT 'VALID'
785 INTO l_dummy
786 FROM oe_deliver_to_orgs_v
787 WHERE customer_id = p_header_rec.sold_to_org_id
788 AND site_use_id = p_header_rec.deliver_to_org_id
789 AND ROWNUM = 1;
790
791 ELSIF lcustomer_relations = 'Y' THEN
792
793 oe_debug_pub.add('Cr: Yes deliver',2);
794
795 SELECT /* MOAC_SQL_CHANGE */ 'VALID'
796 Into l_dummy
797 FROM HZ_CUST_SITE_USES_ALL SITE,
798 HZ_CUST_ACCT_SITES ACCT_SITE
799 WHERE SITE.SITE_USE_ID = p_header_rec.deliver_to_org_id
800 AND SITE.SITE_USE_CODE ='DELIVER_TO'
801 AND SITE.CUST_ACCT_SITE_ID = ACCT_SITE.CUST_ACCT_SITE_ID
802 AND ACCT_SITE.CUST_ACCOUNT_ID in (
803 SELECT p_header_rec.sold_to_org_id FROM DUAL
804 UNION
805 SELECT CUST_ACCOUNT_ID FROM
806 HZ_CUST_ACCT_RELATE_ALL R WHERE
807 R.ORG_ID = ACCT_SITE.ORG_ID
808 AND R.RELATED_CUST_ACCOUNT_ID = p_header_rec.sold_to_org_id
809 and R.ship_to_flag = 'Y')
810 AND ROWNUM = 1;
811 oe_debug_pub.add('Cr: Yes- After the select',2);
812
813 ELSIF lcustomer_relations = 'A' THEN
814
815 SELECT 'VALID'
816 INTO l_dummy
817 FROM HZ_CUST_SITE_USES SITE
818 WHERE SITE.SITE_USE_ID =p_header_rec.deliver_to_org_id;
819
820
821 END IF;
822
823 EXCEPTION
824
825 WHEN NO_DATA_FOUND THEN
826 l_return_status := FND_API.G_RET_STS_ERROR;
827 fnd_message.set_name('ONT','OE_INVALID_ATTRIBUTE');
828 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
829 OE_Order_Util.Get_Attribute_Name('deliver_to_org_id'));
830 OE_MSG_PUB.Add;
831
832 WHEN OTHERS THEN
833
834 IF OE_MSG_PUB.Check_Msg_Level
835 (OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
836 THEN
837
838 OE_MSG_PUB.Add_Exc_Msg
839 ( G_PKG_NAME ,
840 'Record - Deliver To'
841 );
842 END IF;
843
844 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
845
846 END;
847
848 END IF; -- Deliver To needed validation.
849
850
851
852 -- Invoice to Org id depends on sold to org.
853
854
855 oe_debug_pub.add
856 ('invoice_to_org_id :'||to_char(p_header_rec.invoice_to_org_id),2);
857
858 IF p_header_rec.invoice_to_org_id IS NOT NULL
859 THEN
860 BEGIN
861 oe_debug_pub.add
865
862 ('invoice_to_org_id :'||to_char(p_header_rec.invoice_to_org_id),2);
863
864 IF nvl(lcustomer_relations,'N') = 'N' THEN
866 Select 'VALID'
867 Into l_dummy
868 From oe_invoice_to_orgs_v
869 Where customer_id = p_header_rec.sold_to_org_id
870 AND site_use_id = p_header_rec.invoice_to_org_id;
871 ELSIF lcustomer_relations = 'Y' THEN
872
873 /*Select /*MOAC_SQL_NO_CHANGE 'VALID'
874 Into l_dummy
875 From oe_invoice_to_orgs_v
876 WHERE site_use_id = p_header_rec.invoice_to_org_id
877 AND
878 customer_id in (
879 Select p_header_rec.sold_to_org_id from dual
880 union
881 select cust_account_id from
882 HZ_CUST_ACCT_RELATE where
883 related_cust_account_id = p_header_rec.sold_to_org_id
884 /* added the following condition to fix the bug 2002486
885 and bill_to_flag = 'Y')
886
887 and rownum = 1;*/
888 --bug 4729536
889 OPEN cur_customer_relations_inv;
890 Fetch cur_customer_relations_inv into l_dummy;
891 Close cur_customer_relations_inv;
892 --bug 4729536
893
894 /* Changed ra_customer_relationships to HZ Table to fix the bug 1888440 */
895
896 --
897 -- Commented out when importing CLOSED orders
898 --
899 -- AND status = 'A' AND
900
901 /* added the following ELSIF condition to fix the bug 2002486 */
902
903 ELSIF nvl(lcustomer_relations,'N') = 'A' THEN
904 oe_debug_pub.add
905 ('Cr: A',2);
906
907 SELECT 'VALID'
908 INTO l_dummy
909 From oe_invoice_to_orgs_v
910 WHERE site_use_id = p_header_rec.invoice_to_org_id
911 AND ROWNUM = 1;
912
913
914 END IF;
915
916
917 EXCEPTION
918
919 WHEN NO_DATA_FOUND THEN
920 l_return_status := FND_API.G_RET_STS_ERROR;
921 fnd_message.set_name('ONT','OE_INVALID_ATTRIBUTE');
922 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
923 OE_Order_Util.Get_Attribute_Name('invoice_to_org_id'));
924 OE_MSG_PUB.Add;
925
926 WHEN OTHERS THEN
927
928 IF OE_MSG_PUB.Check_Msg_Level (OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
929 THEN
930 OE_MSG_PUB.Add_Exc_Msg
931 ( G_PKG_NAME ,
932 'Record - Invoice To'
933 );
934 END IF;
935
936 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
937 END;
938
939 END IF; -- Invoice to org needed validation.
940
941 -- Customer Location depends on Sold To Org
942 oe_debug_pub.add('p_header_rec.sold_to_site_use_id'|| to_char(p_header_rec.sold_to_site_use_id),2);
943 IF p_header_rec.sold_to_site_use_id IS NOT NULL
944 THEN
945
946 BEGIN
947
948 SELECT /* MOAC_SQL_CHANGE */ 'VALID'
949 INTO l_dummy
950 FROM
951 HZ_CUST_SITE_USES_ALL SITE,
952 HZ_CUST_ACCT_SITES ACCT_SITE
953 WHERE
954 SITE.SITE_USE_ID = p_header_rec.sold_to_site_use_id
955 AND SITE.SITE_USE_CODE = 'SOLD_TO'
956 AND SITE.CUST_ACCT_SITE_ID = ACCT_SITE.CUST_ACCT_SITE_ID
957 AND ACCT_SITE.CUST_ACCOUNT_ID = p_header_rec.sold_to_org_id;
958
959 EXCEPTION
960
961 WHEN NO_DATA_FOUND THEN
962 l_return_status := FND_API.G_RET_STS_ERROR;
963 fnd_message.set_name('ONT','OE_INVALID_ATTRIBUTE');
964 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
965 OE_Order_Util.Get_Attribute_Name('SOLD_TO_SITE_USE_ID'));
966 OE_MSG_PUB.Add;
967
968 WHEN OTHERS THEN
969 IF OE_MSG_PUB.Check_Msg_Level
970 ( OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
971 THEN
972 OE_MSG_PUB.Add_Exc_Msg
973 ( G_PKG_NAME ,
974 'Record - Customer Location'
975 );
976 END IF;
977
978 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
979
980 END; -- BEGIN
981
982 END IF; --
983 -- Sold to contact depends on Sold To Org
984 oe_debug_pub.add('p_header_rec.sold_to_contact_id'|| to_char(p_header_rec.sold_to_contact_id),2);
985 IF p_header_rec.sold_to_contact_id IS NOT NULL
986 THEN
987
988 BEGIN
989
990 SELECT 'VALID'
991 INTO l_dummy
992 FROM HZ_CUST_ACCOUNT_ROLES ACCT_ROLE
993 WHERE ACCT_ROLE.CUST_ACCOUNT_ROLE_ID = p_header_rec.sold_to_contact_id
994 AND ACCT_ROLE.ROLE_TYPE = 'CONTACT'
995 AND ACCT_ROLE.CUST_ACCOUNT_ID = p_header_rec.sold_to_org_id
996 AND ROWNUM = 1;
997
998 /* Replaced ra_contacts with HZ Table to fix the bug 1888440 */
999
1000 -- Valid Sold To Contact
1001
1002 EXCEPTION
1003
1004 WHEN NO_DATA_FOUND THEN
1005 l_return_status := FND_API.G_RET_STS_ERROR;
1006 fnd_message.set_name('ONT','OE_INVALID_ATTRIBUTE');
1007 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
1011 WHEN OTHERS THEN
1008 OE_Order_Util.Get_Attribute_Name('SOLD_TO_CONTACT_ID'));
1009 OE_MSG_PUB.Add;
1010
1012 IF OE_MSG_PUB.Check_Msg_Level
1013 ( OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1014 THEN
1015 OE_MSG_PUB.Add_Exc_Msg
1016 ( G_PKG_NAME ,
1017 'Record - Sold To Contact'
1018 );
1019 END IF;
1020
1021 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1022
1023 END; -- BEGIN
1024
1025 END IF; -- Sold to contact needed validation.
1026
1027
1028 -- Invoice to contact depends on Invoice To Org
1029 oe_debug_pub.add('p_header_rec.invoice_to_contact_id'|| to_char(p_header_rec.invoice_to_contact_id),2);
1030 IF p_header_rec.invoice_to_contact_id IS NOT NULL
1031 THEN
1032 BEGIN
1033 oe_debug_pub.add
1034 ('inv_to_contact :'||to_char(p_header_rec.invoice_to_contact_id),2);
1035
1036 SELECT /* MOAC_SQL_CHANGE */ 'VALID'
1037 INTO l_dummy
1038 FROM HZ_CUST_ACCOUNT_ROLES ACCT_ROLE
1039 , HZ_CUST_ACCT_SITES ACCT_SITE
1040 , HZ_CUST_SITE_USES_ALL INV
1041 WHERE ACCT_ROLE.CUST_ACCOUNT_ROLE_ID = p_header_rec.invoice_to_contact_id
1042 AND ACCT_ROLE.CUST_ACCOUNT_ID = ACCT_SITE.CUST_ACCOUNT_ID
1043 AND ACCT_SITE.CUST_ACCT_SITE_ID = INV.CUST_ACCT_SITE_ID
1044 AND INV.SITE_USE_ID = p_header_rec.invoice_to_org_id
1045 AND ACCT_ROLE.ROLE_TYPE = 'CONTACT'
1046 AND ROWNUM = 1;
1047
1048 /* Replaced ra_contacts , ra_addresses and ra_site_uses with HZ Tables , to fix the bug 1888440 */
1049
1050
1051 EXCEPTION
1052
1053 WHEN NO_DATA_FOUND THEN
1054
1055 l_return_status := FND_API.G_RET_STS_ERROR;
1056 fnd_message.set_name('ONT','OE_INVALID_ATTRIBUTE');
1057 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
1058 OE_Order_Util.Get_Attribute_Name('INVOICE_TO_CONTACT_ID'));
1059 OE_MSG_PUB.Add;
1060
1061 WHEN OTHERS THEN
1062
1063 IF OE_MSG_PUB.Check_Msg_Level
1064 (OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1065 THEN
1066
1067 OE_MSG_PUB.Add_Exc_Msg
1068 ( G_PKG_NAME ,
1069 'Record - Invoice To Contact'
1070 );
1071 END IF;
1072
1073 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1074
1075 END;
1076
1077 END IF; -- Invoice to contact needed validation.
1078
1079
1080 -- Ship to contact depends on Ship To Org
1081 oe_debug_pub.add('p_header_rec.ship_to_contact_id'|| to_char(p_header_rec.ship_to_contact_id),2);
1082 IF p_header_rec.ship_to_contact_id IS NOT NULL
1083 THEN
1084
1085 BEGIN
1086
1087 SELECT /* MOAC_SQL_CHANGE */ 'VALID'
1088 INTO l_dummy
1089 FROM HZ_CUST_ACCOUNT_ROLES ACCT_ROLE
1090 , HZ_CUST_ACCT_SITES ACCT_SITE
1091 , HZ_CUST_SITE_USES_ALL SHIP
1092 WHERE ACCT_ROLE.CUST_ACCOUNT_ROLE_ID = p_header_rec.ship_to_contact_id
1093 AND ACCT_ROLE.CUST_ACCOUNT_ID = ACCT_SITE.CUST_ACCOUNT_ID
1094 AND ACCT_SITE.CUST_ACCT_SITE_ID = SHIP.CUST_ACCT_SITE_ID
1095 AND SHIP.SITE_USE_ID = p_header_rec.ship_to_org_id
1096 AND ACCT_ROLE.ROLE_TYPE = 'CONTACT'
1097 AND ROWNUM = 1;
1098
1099 /* Replace RA views with HZ views to fix the bug 1888440 */
1100 --
1101 -- Commented out when importing CLOSED orders
1102 --
1103 -- AND SHIP.STATUS = 'A'
1104
1105 -- Valid Ship To Contact
1106
1107 EXCEPTION
1108
1109 WHEN NO_DATA_FOUND THEN
1110 l_return_status := FND_API.G_RET_STS_ERROR;
1111 fnd_message.set_name('ONT','OE_INVALID_ATTRIBUTE');
1112 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
1113 OE_Order_Util.Get_Attribute_Name('SHIP_TO_CONTACT_ID'));
1114 OE_MSG_PUB.Add;
1115
1116 WHEN OTHERS THEN
1117
1118 IF OE_MSG_PUB.Check_Msg_Level
1119 (OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1120 THEN
1121
1122 OE_MSG_PUB.Add_Exc_Msg
1123 ( G_PKG_NAME ,
1124 'Record - Ship To Contact'
1125 );
1126 END IF;
1127
1128 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1129
1130 END; -- BEGIN
1131
1132 END IF; -- Ship to contact needed validation.
1133
1134
1135 -- Deliver to contact depends on Deliver To Org
1136 oe_debug_pub.add('p_header_rec.deliver_to_contact_id' || to_char(p_header_rec.deliver_to_contact_id),2);
1137 IF p_header_rec.deliver_to_contact_id IS NOT NULL
1138 THEN
1139
1140 BEGIN
1141
1142 SELECT /* MOAC_SQL_CHANGE */ 'VALID'
1143 INTO l_dummy
1144 FROM HZ_CUST_ACCOUNT_ROLES ACCT_ROLE
1145 , HZ_CUST_ACCT_SITES ACCT_SITE
1146 , HZ_CUST_SITE_USES_ALL DELIVER
1147 WHERE ACCT_ROLE.CUST_ACCOUNT_ROLE_ID = p_header_rec.deliver_to_contact_id
1148 AND ACCT_ROLE.CUST_ACCOUNT_ID = ACCT_SITE.CUST_ACCOUNT_ID
1149 AND ACCT_SITE.CUST_ACCT_SITE_ID = DELIVER.CUST_ACCT_SITE_ID
1153
1150 AND DELIVER.SITE_USE_ID = p_header_rec.deliver_to_org_id
1151 AND ACCT_ROLE.ROLE_TYPE = 'CONTACT'
1152 AND ROWNUM = 1;
1154 /* Replaced ra_contacts , ra_addresses and ra_site_uses with HZ Tables , to fix the bug 1888440 */
1155
1156
1157 -- Valid Deliver To Org.
1158
1159 EXCEPTION
1160
1161 WHEN NO_DATA_FOUND THEN
1162 l_return_status := FND_API.G_RET_STS_ERROR;
1163 fnd_message.set_name('ONT','OE_INVALID_ATTRIBUTE');
1164 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
1165 OE_Order_Util.Get_Attribute_Name('DELIVER_TO_CONTACT_ID'));
1166 OE_MSG_PUB.Add;
1167
1168 WHEN OTHERS THEN
1169
1170 IF OE_MSG_PUB.Check_Msg_Level (
1171 OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1172 THEN
1173 OE_MSG_PUB.Add_Exc_Msg
1174 ( G_PKG_NAME ,
1175 'Record - Deliver To Contact'
1176 );
1177 END IF;
1178
1179 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1180
1181 END; -- BEGIN
1182
1183 END IF; -- Deliver to contact needed validation.
1184
1185
1186 -- Check for Tax Exempt number/Tax exempt reason code IF the Tax exempt
1187 -- flag is 'S' (StANDard).
1188 oe_debug_pub.add('p_header_rec.tax_exempt_number'|| p_header_rec.tax_exempt_number,2);
1189 oe_debug_pub.add('p_header_rec.tax_exempt_flag'|| p_header_rec.tax_exempt_flag,2);
1190 IF p_header_rec.tax_exempt_flag IS NOT NULL
1191 THEN
1192
1193 BEGIN
1194
1195 IF p_header_rec.tax_exempt_flag = 'S' AND
1196 p_header_rec.tax_exempt_number IS NOT NULL AND
1197 p_header_rec.tax_exempt_reason_code IS NOT NULL
1198 THEN
1199 -- eBTax changes
1200 /*SELECT 'VALID'
1201 INTO l_dummy
1202 FROM OE_TAX_EXEMPTIONS_QP_V
1203 WHERE TAX_EXEMPT_NUMBER = p_header_rec.tax_exempt_number
1204 AND TAX_EXEMPT_REASON_CODE=p_header_rec.tax_exempt_reason_code
1205 AND SHIP_TO_ORG_ID = nvl(p_header_rec.ship_to_org_id,
1206 p_header_rec.invoice_to_org_id)
1207 AND BILL_TO_CUSTOMER_ID = p_header_rec.sold_to_org_id
1208 AND ROWNUM = 1;
1209
1210 -- Commented out when importing CLOSED orders ?
1211 -- AND STATUS_CODE = 'PRIMARY'
1212 -- AND TRUNC(NVL(p_header_rec.request_date,sysdate)) BETWEEN
1213 -- TRUNC(START_DATE) AND
1214 -- TRUNC(NVL(END_DATE,NVL(p_header_rec.request_date,sysdate)))
1215 */
1216
1217 open partyinfo(p_header_rec.invoice_to_org_id);
1218 fetch partyinfo into l_bill_to_cust_Acct_id,
1219 l_bill_to_party_id,
1220 l_bill_to_party_site_id,
1221 l_org_id;
1222 close partyinfo;
1223
1224 if p_header_rec.ship_to_org_id = p_header_rec.invoice_to_org_id then
1225 l_ship_to_cust_Acct_id := l_bill_to_cust_Acct_id;
1226 l_ship_to_party_id := l_bill_to_party_id;
1227 l_ship_to_party_site_id := l_bill_to_party_site_id ;
1228 else
1229 open partyinfo(p_header_rec.ship_to_org_id);
1230 fetch partyinfo into l_ship_to_cust_Acct_id,
1231 l_ship_to_party_id,
1232 l_ship_to_party_site_id,
1233 l_org_id;
1234 close partyinfo;
1235 end if;
1236
1237
1238 SELECT 'VALID'
1239 INTO l_dummy
1240 FROM ZX_EXEMPTIONS_V
1241 WHERE EXEMPT_CERTIFICATE_NUMBER = p_header_rec.tax_exempt_number
1242 AND EXEMPT_REASON_CODE = p_header_rec.tax_exempt_reason_code
1243 AND nvl(site_use_id,nvl(p_header_rec.ship_to_org_id,
1244 p_header_rec.invoice_to_org_id))
1245 = nvl(p_header_rec.ship_to_org_id,
1246 p_header_rec.invoice_to_org_id)
1247 AND nvl(cust_account_id, l_bill_to_cust_acct_id) = l_bill_to_cust_acct_id
1248 AND nvl(PARTY_SITE_ID,nvl(l_ship_to_party_site_id, l_bill_to_party_site_id))=
1249 nvl(l_ship_to_party_site_id, l_bill_to_party_site_id)
1250 AND org_id = l_org_id
1251 AND party_id = l_bill_to_party_id
1252 -- AND nvl(LEGAL_ENTITY_ID,-99) IN (nvl(l_legal_entity_id, legal_entity_id), -99)
1253 AND EXEMPTION_STATUS_CODE = 'PRIMARY'
1254 -- AND TRUNC(NVL(p_header_rec.request_date,sysdate))
1255 -- BETWEEN TRUNC(EFFECTIVE_FROM)
1256 -- AND TRUNC(NVL(EFFECTIVE_TO,NVL(p_header_rec.request_date,sysdate)))
1257 AND ROWNUM = 1;
1258
1259 END IF;
1260
1261 -- Valid Tax Exempt Number.
1262
1263 EXCEPTION
1264
1265 WHEN NO_DATA_FOUND THEN
1266
1267 l_return_status := FND_API.G_RET_STS_ERROR;
1268 fnd_message.set_name('ONT','OE_INVALID_ATTRIBUTE');
1269 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
1270 OE_Order_Util.Get_Attribute_Name('TAX_EXEMPT_NUMBER'));
1271 OE_MSG_PUB.Add;
1272
1276 THEN
1273 WHEN OTHERS THEN
1274
1275 IF OE_MSG_PUB.Check_Msg_Level (OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1277
1278 OE_MSG_PUB.Add_Exc_Msg
1279 ( G_PKG_NAME ,
1280 'Record - Tax Exempt Number'
1281 );
1282 END IF;
1283
1284 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1285
1286 END; -- BEGIN
1287
1288 END IF; -- Tax exempton info validation.
1289
1290
1291 -- Fix bug 1162304: issue a warning message if the PO number
1292 -- is being referenced by another order
1293 IF p_header_rec.cust_po_number IS NOT NULL
1294 THEN
1295
1296 IF OE_CNCL_Validate_Header.Is_Duplicate_PO_Number
1297 (p_header_rec.cust_po_number
1298 ,p_header_rec.sold_to_org_id
1299 ,p_header_rec.header_id )
1300 THEN
1301 FND_MESSAGE.SET_NAME('ONT','OE_VAL_DUP_PO_NUMBER');
1302 OE_MSG_PUB.ADD;
1303 END IF;
1304
1305 END IF;
1306 -- End of check for duplicate PO number
1307
1308
1309 -- Done validating entity
1310 x_return_status := l_return_status;
1311
1312 oe_debug_pub.add('Exit OE_CNCL_VALIDATE_HEADER.ENTITY',1);
1313
1314 EXCEPTION
1315
1316 WHEN FND_API.G_EXC_ERROR THEN
1317 x_return_status := FND_API.G_RET_STS_ERROR;
1318
1319 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1320 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1321
1322 WHEN OTHERS THEN
1323 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1324
1325 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1326 THEN
1327 OE_MSG_PUB.Add_Exc_Msg
1328 ( G_PKG_NAME
1329 , 'Entity'
1330 );
1331 END IF;
1332
1333 END Entity;
1334
1335
1336
1337 /*-------------------------------------------------------
1338 PROCEDURE: Attributes
1339 Description:
1340 --------------------------------------------------------*/
1341
1342 PROCEDURE Attributes
1343 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1344 , p_x_header_rec IN OUT NOCOPY OE_Order_PUB.Header_Rec_Type
1345 , p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
1346 )
1347 IS
1348 BEGIN
1349
1350 oe_debug_pub.add('Entering OE_CNCL_VALIDATE_HEADER.ATTRIBUTES',1);
1351
1352 x_return_status := FND_API.G_RET_STS_SUCCESS;
1353 -- validate Sales agreements Attributes
1354 IF p_x_header_rec.Blanket_number IS NOT NULL
1355 THEN
1356 x_return_status := FND_API.G_RET_STS_ERROR;
1357 fnd_message.set_name('ONT', 'OE_BLKT_DISALLOW_CLOSE_REL');
1358 OE_MSG_PUB.add;
1359 END IF;
1360
1361
1362 -- Validate header attributes
1363
1364 IF p_x_header_rec.accounting_rule_id IS NOT NULL
1365 THEN
1366
1367 IF NOT OE_CNCL_Validate.Accounting_Rule(p_x_header_rec.accounting_rule_id)
1368 THEN
1369
1370 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL THEN
1371 --
1372 p_x_header_rec.accounting_rule_id := NULL;
1373 --
1374 ELSIF p_validation_level = OE_GLOBALS.G_VALID_PARTIAL_WITH_DEF THEN
1375 --
1376 p_x_header_rec.accounting_rule_id := FND_API.G_MISS_NUM;
1377 --
1378 ELSE
1379 --
1380 x_return_status := FND_API.G_RET_STS_ERROR;
1381 --
1382 END IF;
1383
1384 END IF;
1385
1386 END IF;
1387
1388 IF p_x_header_rec.agreement_id IS NOT NULL THEN
1389 --
1390 IF NOT OE_CNCL_Validate.Agreement(p_x_header_rec.agreement_id) THEN
1391 --
1392 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL THEN
1393 --
1394 p_x_header_rec.agreement_id := NULL;
1395 --
1396 ELSIF p_validation_level = OE_GLOBALS.G_VALID_PARTIAL_WITH_DEF THEN
1397 --
1398 p_x_header_rec.agreement_id := FND_API.G_MISS_NUM;
1399 --
1400 ELSE
1401 --
1402 x_return_status := FND_API.G_RET_STS_ERROR;
1403 --
1404 END IF;
1405 --
1406 END IF;
1407 --
1408 END IF;
1409 --
1410
1411 IF p_x_header_rec.booked_flag IS NOT NULL THEN
1412 --
1413 IF NOT OE_CNCL_Validate.Booked(p_x_header_rec.booked_flag) THEN
1414 --
1415 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL THEN
1416 --
1417 p_x_header_rec.booked_flag := NULL;
1418 --
1419 ELSIF p_validation_level = OE_GLOBALS.G_VALID_PARTIAL_WITH_DEF THEN
1420 --
1421 p_x_header_rec.booked_flag := FND_API.G_MISS_CHAR;
1422 --
1423 ELSE
1424 --
1425 x_return_status := FND_API.G_RET_STS_ERROR;
1426 --
1427 END IF;
1428 --
1429 END IF;
1430 --
1431 END IF;
1432 --
1433
1434 IF p_x_header_rec.cancelled_flag IS NOT NULL THEN
1435 --
1439 --
1436 IF NOT OE_CNCL_Validate.Cancelled(p_x_header_rec.cancelled_flag) THEN
1437 --
1438 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL THEN
1440 p_x_header_rec.cancelled_flag := NULL;
1441 --
1442 ELSIF p_validation_level = OE_GLOBALS.G_VALID_PARTIAL_WITH_DEF THEN
1443 --
1444 p_x_header_rec.cancelled_flag := FND_API.G_MISS_CHAR;
1445 --
1446 ELSE
1447 --
1448 x_return_status := FND_API.G_RET_STS_ERROR;
1449 --
1450 END IF;
1451 --
1452 END IF;
1453 --
1454 END IF;
1455 --
1456
1457 IF p_x_header_rec.conversion_type_code IS NOT NULL THEN
1458 --
1459 IF NOT OE_CNCL_Validate.Conversion_Type(p_x_header_rec.conversion_type_code) THEN
1460 --
1461 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL THEN
1462 --
1463 p_x_header_rec.conversion_type_code := NULL;
1464 --
1465 ELSIF p_validation_level = OE_GLOBALS.G_VALID_PARTIAL_WITH_DEF THEN
1466 --
1467 p_x_header_rec.conversion_type_code := FND_API.G_MISS_CHAR;
1468 --
1469 ELSE
1470 --
1471 x_return_status := FND_API.G_RET_STS_ERROR;
1472 --
1473 END IF;
1474 --
1475 END IF;
1476 --
1477 END IF;
1478 --
1479
1480 IF p_x_header_rec.deliver_to_contact_id IS NOT NULL THEN
1481 --
1482 IF NOT OE_CNCL_Validate.Deliver_To_Contact(p_x_header_rec.deliver_to_contact_id) THEN
1483 --
1484 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL THEN
1485 --
1486 p_x_header_rec.deliver_to_contact_id := NULL;
1487 --
1488 ELSIF p_validation_level = OE_GLOBALS.G_VALID_PARTIAL_WITH_DEF THEN
1489 --
1490 p_x_header_rec.deliver_to_contact_id := FND_API.G_MISS_NUM;
1491 --
1492 ELSE
1493 --
1494 x_return_status := FND_API.G_RET_STS_ERROR;
1495 --
1496 END IF;
1497 --
1498 END IF;
1499 --
1500 END IF;
1501 --
1502
1503 --
1504 IF p_x_header_rec.deliver_to_org_id IS NOT NULL THEN
1505 --
1506 IF NOT OE_CNCL_Validate.Deliver_To_Org(p_x_header_rec.deliver_to_org_id) THEN
1507 --
1508 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL THEN
1509 --
1510 p_x_header_rec.deliver_to_org_id := NULL;
1511 --
1512 ELSIF p_validation_level = OE_GLOBALS.G_VALID_PARTIAL_WITH_DEF THEN
1513 --
1514 p_x_header_rec.deliver_to_org_id := FND_API.G_MISS_NUM;
1515 --
1516 ELSE
1517 --
1518 x_return_status := FND_API.G_RET_STS_ERROR;
1519 --
1520 END IF;
1521 --
1522 END IF;
1523 --
1524 END IF;
1525 --
1526
1527 --
1528 IF p_x_header_rec.demand_class_code IS NOT NULL THEN
1529 --
1530 IF NOT OE_CNCL_Validate.Demand_Class(p_x_header_rec.demand_class_code) THEN
1531 --
1532 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL THEN
1533 --
1534 p_x_header_rec.demAND_class_code := NULL;
1535 --
1536 ELSIF p_validation_level = OE_GLOBALS.G_VALID_PARTIAL_WITH_DEF THEN
1537 --
1538 p_x_header_rec.demAND_class_code := FND_API.G_MISS_CHAR;
1539 --
1540 ELSE
1541 --
1542 x_return_status := FND_API.G_RET_STS_ERROR;
1543 --
1544 END IF;
1545 --
1546 END IF;
1547 --
1548 END IF;
1549 --
1550
1551 --
1552 IF p_x_header_rec.fob_point_code IS NOT NULL THEN
1553 --
1554 IF NOT OE_CNCL_Validate.Fob_Point(p_x_header_rec.fob_point_code) THEN
1555 --
1556 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL THEN
1557 --
1558 p_x_header_rec.fob_point_code := NULL;
1559 --
1560 ELSIF p_validation_level = OE_GLOBALS.G_VALID_PARTIAL_WITH_DEF THEN
1561 --
1562 p_x_header_rec.fob_point_code := FND_API.G_MISS_CHAR;
1563 --
1564 ELSE
1565 --
1566 x_return_status := FND_API.G_RET_STS_ERROR;
1567 --
1568 END IF;
1569 --
1570 END IF;
1571 --
1572 END IF;
1573 --
1574
1575 --
1576 IF p_x_header_rec.freight_terms_code IS NOT NULL THEN
1577 --
1578 IF NOT OE_CNCL_Validate.Freight_Terms(p_x_header_rec.freight_terms_code) THEN
1579 --
1580 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL THEN
1581 --
1582 p_x_header_rec.freight_terms_code := NULL;
1583 --
1584 ELSIF p_validation_level = OE_GLOBALS.G_VALID_PARTIAL_WITH_DEF THEN
1585 --
1586 p_x_header_rec.freight_terms_code := FND_API.G_MISS_CHAR;
1587 --
1588 ELSE
1589 --
1593 --
1590 x_return_status := FND_API.G_RET_STS_ERROR;
1591 --
1592 END IF;
1594 END IF;
1595 --
1596 END IF;
1597 --
1598
1599 --
1600 IF p_x_header_rec.invoice_to_contact_id IS NOT NULL THEN
1601 --
1602 IF NOT OE_CNCL_Validate.Invoice_To_Contact(p_x_header_rec.invoice_to_contact_id) THEN
1603 --
1604 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL THEN
1605 --
1606 p_x_header_rec.invoice_to_contact_id := NULL;
1607 --
1608 ELSIF p_validation_level = OE_GLOBALS.G_VALID_PARTIAL_WITH_DEF THEN
1609 --
1610 p_x_header_rec.invoice_to_contact_id := FND_API.G_MISS_NUM;
1611 --
1612 ELSE
1613 --
1614 x_return_status := FND_API.G_RET_STS_ERROR;
1615 --
1616 END IF;
1617 --
1618 END IF;
1619 --
1620 END IF;
1621 --
1622
1623 --
1624 IF p_x_header_rec.invoice_to_org_id IS NOT NULL THEN
1625 --
1626 IF NOT OE_CNCL_Validate.Invoice_To_Org(p_x_header_rec.invoice_to_org_id) THEN
1627 --
1628 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL THEN
1629 --
1630 p_x_header_rec.invoice_to_org_id := NULL;
1631 --
1632 ELSIF p_validation_level = OE_GLOBALS.G_VALID_PARTIAL_WITH_DEF THEN
1633 --
1634 p_x_header_rec.invoice_to_org_id := FND_API.G_MISS_NUM;
1635 --
1636 ELSE
1637 --
1638 x_return_status := FND_API.G_RET_STS_ERROR;
1639 --
1640 END IF;
1641 --
1642 END IF;
1643 --
1644 END IF;
1645 --
1646
1647 --
1648 IF p_x_header_rec.invoicing_rule_id IS NOT NULL THEN
1649 --
1650 IF NOT OE_CNCL_Validate.Invoicing_Rule(p_x_header_rec.invoicing_rule_id) THEN
1651 --
1652 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL THEN
1653 --
1654 p_x_header_rec.invoicing_rule_id := NULL;
1655 --
1656 ELSIF p_validation_level = OE_GLOBALS.G_VALID_PARTIAL_WITH_DEF THEN
1657 --
1658 p_x_header_rec.invoicing_rule_id := FND_API.G_MISS_NUM;
1659 --
1660 ELSE
1661 --
1662 x_return_status := FND_API.G_RET_STS_ERROR;
1663 --
1664 END IF;
1665 --
1666 END IF;
1667 --
1668 END IF;
1669 --
1670
1671 --
1672 IF p_x_header_rec.open_flag IS NOT NULL THEN
1673 --
1674 IF NOT OE_CNCL_Validate.Open(p_x_header_rec.open_flag) THEN
1675 --
1676 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL THEN
1677 --
1678 p_x_header_rec.open_flag := NULL;
1679 --
1680 ELSIF p_validation_level = OE_GLOBALS.G_VALID_PARTIAL_WITH_DEF THEN
1681 --
1682 p_x_header_rec.open_flag := FND_API.G_MISS_CHAR;
1683 --
1684 ELSE
1685 --
1686 x_return_status := FND_API.G_RET_STS_ERROR;
1687 --
1688 END IF;
1689 --
1690 END IF;
1691 --
1692 END IF;
1693 --
1694
1695 --
1696 IF p_x_header_rec.order_date_type_code IS NOT NULL THEN
1697 --
1698 IF NOT OE_CNCL_Validate.Order_Date_Type_Code(p_x_header_rec.order_date_type_code) THEN
1699 --
1700 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL THEN
1701 --
1702 p_x_header_rec.order_date_type_code := NULL;
1703 --
1704 ELSIF p_validation_level = OE_GLOBALS.G_VALID_PARTIAL_WITH_DEF THEN
1705 --
1706 p_x_header_rec.order_date_type_code := FND_API.G_MISS_CHAR;
1707 --
1708 ELSE
1709 --
1710 x_return_status := FND_API.G_RET_STS_ERROR;
1711 --
1712 END IF;
1713 --
1714 END IF;
1715 --
1716 END IF;
1717 --
1718
1719 --
1720 IF p_x_header_rec.order_type_id IS NOT NULL THEN
1721 --
1722 IF NOT OE_CNCL_Validate.Order_Type(p_x_header_rec.order_type_id) THEN
1723 --
1724 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL THEN
1725 --
1726 p_x_header_rec.order_type_id := NULL;
1727 --
1728 ELSIF p_validation_level = OE_GLOBALS.G_VALID_PARTIAL_WITH_DEF THEN
1729 --
1730 p_x_header_rec.order_type_id := FND_API.G_MISS_NUM;
1731 --
1732 ELSE
1733 --
1734 x_return_status := FND_API.G_RET_STS_ERROR;
1735 --
1736 END IF;
1737 --
1738 END IF;
1739 --
1740 END IF;
1741 --
1742
1743 --
1744 IF p_x_header_rec.payment_term_id IS NOT NULL THEN
1745 --
1746 IF NOT OE_CNCL_Validate.Payment_Term(p_x_header_rec.payment_term_id) THEN
1747 --
1748 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL THEN
1749 --
1750 p_x_header_rec.payment_term_id := NULL;
1754 p_x_header_rec.payment_term_id := FND_API.G_MISS_NUM;
1751 --
1752 ELSIF p_validation_level = OE_GLOBALS.G_VALID_PARTIAL_WITH_DEF THEN
1753 --
1755 --
1756 ELSE
1757 --
1758 x_return_status := FND_API.G_RET_STS_ERROR;
1759 --
1760 END IF;
1761 --
1762 END IF;
1763 --
1764 END IF;
1765 --
1766
1767 --{added for bug 4240715
1768
1769 IF p_x_header_rec.Ib_owner IS NOT NULL THEN
1770
1771 IF NOT OE_CNCL_Validate.IB_OWNER (p_x_header_rec.Ib_owner)
1772 THEN
1773 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL THEN
1774
1775 p_x_header_rec.Ib_owner := NULL;
1776
1777 ELSIF p_validation_level = OE_GLOBALS.G_VALID_PARTIAL_WITH_DEF
1778 THEN
1779 p_x_header_rec.Ib_owner := FND_API.G_MISS_CHAR;
1780 ELSE
1781 x_return_status := FND_API.G_RET_STS_ERROR;
1782 END IF;
1783
1784 END IF;
1785
1786 END IF;
1787
1788 IF p_x_header_rec.Ib_installed_at_location IS NOT NULL
1789 THEN
1790
1791 IF NOT OE_CNCL_Validate.IB_INSTALLED_AT_LOCATION (p_x_header_rec.Ib_installed_at_location)
1792 THEN
1793 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL
1794 THEN
1795 p_x_header_rec.Ib_installed_at_location := NULL;
1796 ELSIF p_validation_level = OE_GLOBALS.G_VALID_PARTIAL_WITH_DEF
1797 THEN
1798 p_x_header_rec.Ib_installed_at_location := FND_API.G_MISS_CHAR;
1799 ELSE
1800 x_return_status := FND_API.G_RET_STS_ERROR;
1801 END IF;
1802
1803 END IF;
1804
1805 END IF;
1806
1807 IF p_x_header_rec.Ib_current_location IS NOT NULL
1808 THEN
1809
1810 IF NOT OE_CNCL_Validate.IB_CURRENT_LOCATION (p_x_header_rec.Ib_current_location)
1811 THEN
1812 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL
1813 THEN
1814 p_x_header_rec.Ib_current_location := NULL;
1815 ELSIF p_validation_level = OE_GLOBALS.G_VALID_PARTIAL_WITH_DEF
1816 THEN
1817 p_x_header_rec.Ib_current_location := FND_API.G_MISS_CHAR;
1818 ELSE
1819 x_return_status := FND_API.G_RET_STS_ERROR;
1820 END IF;
1821
1822 END IF;
1823
1824 END IF;
1825
1826 IF p_x_header_rec.End_customer_id IS NOT NULL THEN
1827
1828 IF NOT OE_CNCL_Validate.END_CUSTOMER (p_x_header_rec.End_customer_id)
1829 THEN
1830 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL
1831
1832 THEN
1833 p_x_header_rec.End_customer_id := NULL;
1834 ELSIF p_validation_level = OE_GLOBALS.G_VALID_PARTIAL_WITH_DEF
1835 THEN
1836 p_x_header_rec.End_customer_id := FND_API.G_MISS_NUM;
1837 ELSE
1838 x_return_status := FND_API.G_RET_STS_ERROR;
1839 END IF;
1840
1841 END IF;
1842
1843 END IF;
1844
1845 IF p_x_header_rec.End_customer_contact_id IS NOT NULL
1846 THEN
1847 IF NOT OE_CNCL_Validate.END_CUSTOMER_CONTACT (p_x_header_rec.End_customer_contact_id)
1848 THEN
1849 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL
1850 THEN
1851 p_x_header_rec.End_customer_contact_id := NULL;
1852 ELSIF p_validation_level = OE_GLOBALS.G_VALID_PARTIAL_WITH_DEF
1853 THEN
1854 p_x_header_rec.End_customer_contact_id := FND_API.G_MISS_NUM;
1855 ELSE
1856 x_return_status := FND_API.G_RET_STS_ERROR;
1857 END IF;
1858
1859 END IF;
1860
1861 END IF;
1862
1863 IF p_x_header_rec.End_customer_site_use_id IS NOT NULL
1864 THEN
1865
1866 IF NOT OE_CNCL_Validate.END_CUSTOMER_SITE_USE (p_x_header_rec.End_customer_site_use_id)
1867 THEN
1868 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL
1869 THEN
1870 p_x_header_rec.End_customer_site_use_id := NULL;
1871 ELSIF p_validation_level = OE_GLOBALS.G_VALID_PARTIAL_WITH_DEF
1872 THEN
1873 p_x_header_rec.End_customer_site_use_id := FND_API.G_MISS_NUM;
1874 ELSE
1875 x_return_status := FND_API.G_RET_STS_ERROR;
1876 END IF;
1877
1878 END IF;
1879
1880 END IF;
1881
1882 --bug 4240715}
1883
1884 --
1885 IF p_x_header_rec.price_list_id IS NOT NULL THEN
1886 --
1887 IF NOT OE_CNCL_Validate.Price_List(p_x_header_rec.price_list_id) THEN
1888 --
1889 p_x_header_rec.price_list_id := NULL;
1890 --
1891 ELSE
1892 --
1893 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL THEN
1894 --
1895 x_return_status := FND_API.G_RET_STS_ERROR;
1896 --
1897 END IF;
1898 --
1899 END IF;
1900 --
1901 END IF;
1902 --
1903
1904 --
1908 --
1905 IF p_x_header_rec.shipment_priority_code IS NOT NULL THEN
1906 --
1907 IF NOT OE_CNCL_Validate.Shipment_Priority(p_x_header_rec.shipment_priority_code) THEN
1909 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL THEN
1910 --
1911 p_x_header_rec.shipment_priority_code := NULL;
1912 --
1913 ELSIF p_validation_level = OE_GLOBALS.G_VALID_PARTIAL_WITH_DEF THEN
1914 --
1915 p_x_header_rec.shipment_priority_code := FND_API.G_MISS_CHAR;
1916 --
1917 ELSE
1918 --
1919 x_return_status := FND_API.G_RET_STS_ERROR;
1920 --
1921 END IF;
1922 --
1923 END IF;
1924 --
1925 END IF;
1926 --
1927
1928 --
1929 IF p_x_header_rec.shipping_method_code IS NOT NULL THEN
1930 --
1931 IF NOT OE_CNCL_Validate.Shipping_Method(p_x_header_rec.shipping_method_code) THEN
1932 --
1933 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL THEN
1934 --
1935 p_x_header_rec.shipping_method_code := NULL;
1936 --
1937 ELSIF p_validation_level = OE_GLOBALS.G_VALID_PARTIAL_WITH_DEF THEN
1938 --
1939 p_x_header_rec.shipping_method_code := FND_API.G_MISS_CHAR;
1940 --
1941 ELSE
1942 --
1943 x_return_status := FND_API.G_RET_STS_ERROR;
1944 --
1945 END IF;
1946 --
1947 END IF;
1948 --
1949 END IF;
1950 --
1951
1952 --
1953 IF p_x_header_rec.ship_from_org_id IS NOT NULL THEN
1954 --
1955 IF NOT OE_CNCL_Validate.Ship_From_Org(p_x_header_rec.ship_from_org_id) THEN
1956 --
1957 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL THEN
1958 --
1959 p_x_header_rec.ship_from_org_id := NULL;
1960 --
1961 ELSIF p_validation_level = OE_GLOBALS.G_VALID_PARTIAL_WITH_DEF THEN
1962 --
1963 p_x_header_rec.ship_from_org_id := FND_API.G_MISS_NUM;
1964 --
1965 ELSE
1966 --
1967 x_return_status := FND_API.G_RET_STS_ERROR;
1968 --
1969 END IF;
1970 --
1971 END IF;
1972 --
1973 END IF;
1974 --
1975
1976 --
1977 IF p_x_header_rec.ship_to_contact_id IS NOT NULL THEN
1978 --
1979 IF NOT OE_CNCL_Validate.Ship_To_Contact(p_x_header_rec.ship_to_contact_id) THEN
1980 --
1981 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL THEN
1982 --
1983 p_x_header_rec.ship_to_contact_id := NULL;
1984 --
1985 ELSIF p_validation_level = OE_GLOBALS.G_VALID_PARTIAL_WITH_DEF THEN
1986 --
1987 p_x_header_rec.ship_to_contact_id := FND_API.G_MISS_NUM;
1988 --
1989 ELSE
1990 --
1991 x_return_status := FND_API.G_RET_STS_ERROR;
1992 --
1993 END IF;
1994 --
1995 END IF;
1996 --
1997 END IF;
1998 --
1999
2000 --
2001 IF p_x_header_rec.ship_to_org_id IS NOT NULL THEN
2002 --
2003 IF NOT OE_CNCL_Validate.Ship_To_Org(p_x_header_rec.ship_to_org_id) THEN
2004 --
2005 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL THEN
2006 --
2007 p_x_header_rec.ship_to_org_id := NULL;
2008 --
2009 ELSIF p_validation_level = OE_GLOBALS.G_VALID_PARTIAL_WITH_DEF THEN
2010 --
2011 p_x_header_rec.ship_to_org_id := FND_API.G_MISS_NUM;
2012 --
2013 ELSE
2014 --
2015 x_return_status := FND_API.G_RET_STS_ERROR;
2016 --
2017 END IF;
2018 --
2019 END IF;
2020 --
2021 END IF;
2022 --
2023
2024 --
2025 IF p_x_header_rec.sold_to_contact_id IS NOT NULL THEN
2026 --
2027 IF NOT OE_CNCL_Validate.Sold_To_Contact(p_x_header_rec.sold_to_contact_id) THEN
2028 --
2029 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL THEN
2030 --
2031 p_x_header_rec.sold_to_contact_id := NULL;
2032 --
2033 ELSIF p_validation_level = OE_GLOBALS.G_VALID_PARTIAL_WITH_DEF THEN
2034 --
2035 p_x_header_rec.sold_to_contact_id := FND_API.G_MISS_NUM;
2036 --
2037 ELSE
2038 --
2039 x_return_status := FND_API.G_RET_STS_ERROR;
2040 --
2041 END IF;
2042 --
2043 END IF;
2044 --
2045 END IF;
2046 --
2047
2048
2049 IF p_x_header_rec.sold_to_org_id IS NOT NULL THEN
2050 --
2051 IF NOT OE_CNCL_Validate.Sold_To_Org(p_x_header_rec.sold_to_org_id) THEN
2052 --
2053 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL THEN
2054 --
2055 p_x_header_rec.sold_to_org_id := NULL;
2056 --
2057 ELSIF p_validation_level = OE_GLOBALS.G_VALID_PARTIAL_WITH_DEF THEN
2058 --
2059 p_x_header_rec.sold_to_org_id := FND_API.G_MISS_NUM;
2063 x_return_status := FND_API.G_RET_STS_ERROR;
2060 --
2061 ELSE
2062 --
2064 --
2065 END IF;
2066 --
2067 END IF;
2068 --
2069 END IF;
2070 --
2071
2072 --
2073 IF p_x_header_rec.source_document_type_id IS NOT NULL THEN
2074 --
2075 IF NOT OE_CNCL_Validate.Source_Document_Type
2076 (p_x_header_rec.source_document_type_id) THEN
2077 --
2078 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL THEN
2079 --
2080 p_x_header_rec.source_document_type_id := NULL;
2081 --
2082 ELSIF p_validation_level = OE_GLOBALS.G_VALID_PARTIAL_WITH_DEF THEN
2083 --
2084 p_x_header_rec.source_document_type_id := FND_API.G_MISS_NUM;
2085 --
2086 ELSE
2087 --
2088 x_return_status := FND_API.G_RET_STS_ERROR;
2089 --
2090 END IF;
2091 --
2092 END IF;
2093 --
2094 END IF;
2095 --
2096
2097 --
2098 IF p_x_header_rec.tax_exempt_flag IS NOT NULL THEN
2099 --
2100 IF NOT OE_CNCL_Validate.Tax_Exempt(p_x_header_rec.tax_exempt_flag) THEN
2101 --
2102 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL THEN
2103 --
2104 p_x_header_rec.tax_exempt_flag := NULL;
2105 --
2106 ELSIF p_validation_level = OE_GLOBALS.G_VALID_PARTIAL_WITH_DEF THEN
2107 --
2108 p_x_header_rec.tax_exempt_flag := FND_API.G_MISS_CHAR;
2109 --
2110 ELSE
2111 --
2112 x_return_status := FND_API.G_RET_STS_ERROR;
2113 --
2114 END IF;
2115 --
2116 END IF;
2117 --
2118 END IF;
2119 --
2120
2121 --
2122 IF p_x_header_rec.tax_exempt_reason_code IS NOT NULL THEN
2123 --
2124 IF NOT OE_CNCL_Validate.Tax_Exempt_Reason
2125 (p_x_header_rec.tax_exempt_reason_code) THEN
2126 --
2127 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL THEN
2128 --
2129 p_x_header_rec.tax_exempt_reason_code := NULL;
2130 --
2131 ELSIF p_validation_level = OE_GLOBALS.G_VALID_PARTIAL_WITH_DEF THEN
2132 --
2133 p_x_header_rec.tax_exempt_reason_code := FND_API.G_MISS_CHAR;
2134 --
2135 ELSE
2136 --
2137 x_return_status := FND_API.G_RET_STS_ERROR;
2138 --
2139 END IF;
2140 --
2141 END IF;
2142 --
2143 END IF;
2144 --
2145
2146 --
2147 IF p_x_header_rec.tax_point_code IS NOT NULL THEN
2148 --
2149 IF NOT OE_CNCL_Validate.Tax_Point(p_x_header_rec.tax_point_code) THEN
2150 --
2151 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL THEN
2152 --
2153 p_x_header_rec.tax_point_code := NULL;
2154 --
2155 ELSIF p_validation_level = OE_GLOBALS.G_VALID_PARTIAL_WITH_DEF THEN
2156 --
2157 p_x_header_rec.tax_point_code := FND_API.G_MISS_CHAR;
2158 --
2159 ELSE
2160 --
2161 x_return_status := FND_API.G_RET_STS_ERROR;
2162 --
2163 END IF;
2164 --
2165 END IF;
2166 --
2167 END IF;
2168 --
2169
2170 --
2171 IF p_x_header_rec.transactional_curr_code IS NOT NULL THEN
2172 --
2173 IF NOT OE_CNCL_Validate.Transactional_Curr
2174 (p_x_header_rec.transactional_curr_code) THEN
2175 --
2176 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL THEN
2177 --
2178 p_x_header_rec.transactional_curr_code := NULL;
2179 --
2180 ELSIF p_validation_level = OE_GLOBALS.G_VALID_PARTIAL_WITH_DEF THEN
2181 --
2182 p_x_header_rec.transactional_curr_code := FND_API.G_MISS_CHAR;
2183 --
2184 ELSE
2185 --
2186 x_return_status := FND_API.G_RET_STS_ERROR;
2187 --
2188 END IF;
2189 --
2190 END IF;
2191 --
2192 END IF;
2193 --
2194
2195 --
2196 IF p_x_header_rec.payment_type_code IS NOT NULL THEN
2197 --
2198 IF NOT OE_CNCL_Validate.Payment_Type(p_x_header_rec.payment_type_code) THEN
2199 --
2200 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL THEN
2201 --
2202 p_x_header_rec.payment_type_code := NULL;
2203 --
2204 ELSIF p_validation_level = OE_GLOBALS.G_VALID_PARTIAL_WITH_DEF THEN
2205 --
2206 p_x_header_rec.payment_type_code := FND_API.G_MISS_CHAR;
2207 --
2208 ELSE
2209 --
2210 x_return_status := FND_API.G_RET_STS_ERROR;
2211 --
2212 END IF;
2213 --
2214 END IF;
2215 --
2216 END IF;
2217 --
2218
2219 --
2223 --
2220 IF p_x_header_rec.credit_card_code IS NOT NULL THEN
2221 --
2222 IF NOT OE_CNCL_Validate.Credit_Card(p_x_header_rec.credit_card_code) THEN
2224 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL THEN
2225 --
2226 p_x_header_rec.credit_card_code := NULL;
2227 --
2228 ELSIF p_validation_level = OE_GLOBALS.G_VALID_PARTIAL_WITH_DEF THEN
2229 --
2230 p_x_header_rec.credit_card_code := FND_API.G_MISS_CHAR;
2231 --
2232 ELSE
2233 --
2234 x_return_status := FND_API.G_RET_STS_ERROR;
2235 --
2236 END IF;
2237 --
2238 END IF;
2239 --
2240 END IF;
2241 --
2242
2243 --
2244 IF p_x_header_rec.flow_status_code IS NOT NULL THEN
2245 --
2246 IF NOT OE_CNCL_Validate.Flow_Status(p_x_header_rec.flow_status_code) THEN
2247 --
2248 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL THEN
2249 --
2250 p_x_header_rec.flow_status_code := NULL;
2251 --
2252 ELSIF p_validation_level = OE_GLOBALS.G_VALID_PARTIAL_WITH_DEF THEN
2253 --
2254 p_x_header_rec.flow_status_code := FND_API.G_MISS_CHAR;
2255 --
2256 ELSE
2257 --
2258 x_return_status := FND_API.G_RET_STS_ERROR;
2259 --
2260 END IF;
2261 --
2262 END IF;
2263 --
2264 END IF;
2265 --
2266
2267 --
2268 IF p_x_header_rec.attribute1 IS NOT NULL
2269 OR p_x_header_rec.attribute10 IS NOT NULL
2270 OR p_x_header_rec.attribute11 IS NOT NULL
2271 OR p_x_header_rec.attribute12 IS NOT NULL
2272 OR p_x_header_rec.attribute13 IS NOT NULL
2273 OR p_x_header_rec.attribute14 IS NOT NULL
2274 OR p_x_header_rec.attribute15 IS NOT NULL
2275 OR p_x_header_rec.attribute16 IS NOT NULL --For bug 2184255
2276 OR p_x_header_rec.attribute17 IS NOT NULL
2277 OR p_x_header_rec.attribute18 IS NOT NULL
2278 OR p_x_header_rec.attribute19 IS NOT NULL
2279 OR p_x_header_rec.attribute2 IS NOT NULL
2280 OR p_x_header_rec.attribute20 IS NOT NULL
2281 OR p_x_header_rec.attribute3 IS NOT NULL
2282 OR p_x_header_rec.attribute4 IS NOT NULL
2283 OR p_x_header_rec.attribute5 IS NOT NULL
2284 OR p_x_header_rec.attribute6 IS NOT NULL
2285 OR p_x_header_rec.attribute7 IS NOT NULL
2286 OR p_x_header_rec.attribute8 IS NOT NULL
2287 OR p_x_header_rec.attribute9 IS NOT NULL
2288 OR p_x_header_rec.context IS NOT NULL
2289 THEN
2290 --
2291 oe_debug_pub.add('Before calling header_desc_flex',2);
2292 IF NOT OE_CNCL_VALIDATE.Header_Desc_Flex
2293 (p_context => p_x_header_rec.context
2294 ,p_attribute1 => p_x_header_rec.attribute1
2295 ,p_attribute2 => p_x_header_rec.attribute2
2296 ,p_attribute3 => p_x_header_rec.attribute3
2297 ,p_attribute4 => p_x_header_rec.attribute4
2298 ,p_attribute5 => p_x_header_rec.attribute5
2299 ,p_attribute6 => p_x_header_rec.attribute6
2300 ,p_attribute7 => p_x_header_rec.attribute7
2301 ,p_attribute8 => p_x_header_rec.attribute8
2302 ,p_attribute9 => p_x_header_rec.attribute9
2303 ,p_attribute10 => p_x_header_rec.attribute10
2304 ,p_attribute11 => p_x_header_rec.attribute11
2305 ,p_attribute12 => p_x_header_rec.attribute12
2306 ,p_attribute13 => p_x_header_rec.attribute13
2307 ,p_attribute14 => p_x_header_rec.attribute14
2308 ,p_attribute15 => p_x_header_rec.attribute15
2309 ,p_attribute16 => p_x_header_rec.attribute16 -- for bug 2184255
2310 ,p_attribute17 => p_x_header_rec.attribute17
2311 ,p_attribute18 => p_x_header_rec.attribute18
2312 ,p_attribute19 => p_x_header_rec.attribute19
2313 ,p_attribute20 => p_x_header_rec.attribute20)
2314 THEN
2315
2316 --
2317 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL THEN
2318 --
2319 p_x_header_rec.context := null;
2320 p_x_header_rec.attribute1 := null;
2321 p_x_header_rec.attribute2 := null;
2322 p_x_header_rec.attribute3 := null;
2323 p_x_header_rec.attribute4 := null;
2324 p_x_header_rec.attribute5 := null;
2325 p_x_header_rec.attribute6 := null;
2326 p_x_header_rec.attribute7 := null;
2327 p_x_header_rec.attribute8 := null;
2328 p_x_header_rec.attribute9 := null;
2329 p_x_header_rec.attribute10 := null;
2330 p_x_header_rec.attribute11 := null;
2331 p_x_header_rec.attribute12 := null;
2332 p_x_header_rec.attribute13 := null;
2333 p_x_header_rec.attribute14 := null;
2334 p_x_header_rec.attribute15 := null;
2335 p_x_header_rec.attribute16 := null; -- for bug 2184255
2336 p_x_header_rec.attribute17 := null;
2337 p_x_header_rec.attribute18 := null;
2338 p_x_header_rec.attribute19 := null;
2339 p_x_header_rec.attribute20 := null;
2340 --
2341 ELSIF p_validation_level = OE_GLOBALS.G_VALID_PARTIAL_WITH_DEF THEN
2342 --
2343 p_x_header_rec.context := FND_API.G_MISS_CHAR;
2344 p_x_header_rec.attribute1 := FND_API.G_MISS_CHAR;
2345 p_x_header_rec.attribute2 := FND_API.G_MISS_CHAR;
2346 p_x_header_rec.attribute3 := FND_API.G_MISS_CHAR;
2347 p_x_header_rec.attribute4 := FND_API.G_MISS_CHAR;
2348 p_x_header_rec.attribute5 := FND_API.G_MISS_CHAR;
2349 p_x_header_rec.attribute6 := FND_API.G_MISS_CHAR;
2350 p_x_header_rec.attribute7 := FND_API.G_MISS_CHAR;
2351 p_x_header_rec.attribute8 := FND_API.G_MISS_CHAR;
2352 p_x_header_rec.attribute9 := FND_API.G_MISS_CHAR;
2353 p_x_header_rec.attribute10 := FND_API.G_MISS_CHAR;
2354 p_x_header_rec.attribute11 := FND_API.G_MISS_CHAR;
2355 p_x_header_rec.attribute12 := FND_API.G_MISS_CHAR;
2356 p_x_header_rec.attribute13 := FND_API.G_MISS_CHAR;
2357 p_x_header_rec.attribute14 := FND_API.G_MISS_CHAR;
2358 p_x_header_rec.attribute15 := FND_API.G_MISS_CHAR;
2362 p_x_header_rec.attribute19 := FND_API.G_MISS_CHAR;
2359 p_x_header_rec.attribute16 := FND_API.G_MISS_CHAR; -- for bug 2184255
2360 p_x_header_rec.attribute17 := FND_API.G_MISS_CHAR;
2361 p_x_header_rec.attribute18 := FND_API.G_MISS_CHAR;
2363 p_x_header_rec.attribute20 := FND_API.G_MISS_CHAR;
2364 --
2365 ELSE
2366 --
2367 x_return_status := FND_API.G_RET_STS_ERROR;
2368 --
2369 END IF;
2370 --
2371 END IF;
2372 --
2373 END IF;
2374 --
2375 oe_debug_pub.add('After header_desc_flex ' || x_return_status,2);
2376 --
2377 IF p_x_header_rec.global_attribute1 IS NOT NULL
2378 OR p_x_header_rec.global_attribute10 IS NOT NULL
2379 OR p_x_header_rec.global_attribute11 IS NOT NULL
2380 OR p_x_header_rec.global_attribute12 IS NOT NULL
2381 OR p_x_header_rec.global_attribute13 IS NOT NULL
2382 OR p_x_header_rec.global_attribute14 IS NOT NULL
2383 OR p_x_header_rec.global_attribute15 IS NOT NULL
2384 OR p_x_header_rec.global_attribute16 IS NOT NULL
2385 OR p_x_header_rec.global_attribute17 IS NOT NULL
2386 OR p_x_header_rec.global_attribute18 IS NOT NULL
2387 OR p_x_header_rec.global_attribute19 IS NOT NULL
2388 OR p_x_header_rec.global_attribute2 IS NOT NULL
2389 OR p_x_header_rec.global_attribute20 IS NOT NULL
2390 OR p_x_header_rec.global_attribute3 IS NOT NULL
2391 OR p_x_header_rec.global_attribute4 IS NOT NULL
2392 OR p_x_header_rec.global_attribute5 IS NOT NULL
2393 OR p_x_header_rec.global_attribute6 IS NOT NULL
2394 OR p_x_header_rec.global_attribute7 IS NOT NULL
2395 OR p_x_header_rec.global_attribute8 IS NOT NULL
2396 OR p_x_header_rec.global_attribute9 IS NOT NULL
2397 OR p_x_header_rec.global_attribute_category IS NOT NULL
2398 THEN
2399
2400 --
2401 OE_DEBUG_PUB.ADD('Before G_header_desc_flex',2);
2402 IF NOT OE_CNCL_VALIDATE.G_Header_Desc_Flex
2403 (p_context => p_x_header_rec.global_attribute_category
2404 ,p_attribute1 => p_x_header_rec.global_attribute1
2405 ,p_attribute2 => p_x_header_rec.global_attribute2
2406 ,p_attribute3 => p_x_header_rec.global_attribute3
2407 ,p_attribute4 => p_x_header_rec.global_attribute4
2408 ,p_attribute5 => p_x_header_rec.global_attribute5
2409 ,p_attribute6 => p_x_header_rec.global_attribute6
2410 ,p_attribute7 => p_x_header_rec.global_attribute7
2411 ,p_attribute8 => p_x_header_rec.global_attribute8
2412 ,p_attribute9 => p_x_header_rec.global_attribute9
2413 ,p_attribute10 => p_x_header_rec.global_attribute10
2414 ,p_attribute11 => p_x_header_rec.global_attribute11
2415 ,p_attribute12 => p_x_header_rec.global_attribute12
2416 ,p_attribute13 => p_x_header_rec.global_attribute13
2417 ,p_attribute14 => p_x_header_rec.global_attribute13
2418 ,p_attribute15 => p_x_header_rec.global_attribute14
2419 ,p_attribute16 => p_x_header_rec.global_attribute16
2420 ,p_attribute17 => p_x_header_rec.global_attribute17
2421 ,p_attribute18 => p_x_header_rec.global_attribute18
2422 ,p_attribute19 => p_x_header_rec.global_attribute19
2423 ,p_attribute20 => p_x_header_rec.global_attribute20)
2424 THEN
2425 --
2426 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL THEN
2427 --
2428 p_x_header_rec.global_attribute_category := null;
2429 p_x_header_rec.global_attribute1 := null;
2430 p_x_header_rec.global_attribute2 := null;
2431 p_x_header_rec.global_attribute3 := null;
2432 p_x_header_rec.global_attribute4 := null;
2433 p_x_header_rec.global_attribute5 := null;
2434 p_x_header_rec.global_attribute6 := null;
2435 p_x_header_rec.global_attribute7 := null;
2436 p_x_header_rec.global_attribute8 := null;
2437 p_x_header_rec.global_attribute9 := null;
2438 p_x_header_rec.global_attribute11 := null;
2439 p_x_header_rec.global_attribute12 := null;
2440 p_x_header_rec.global_attribute13 := null;
2441 p_x_header_rec.global_attribute14 := null;
2442 p_x_header_rec.global_attribute15 := null;
2443 p_x_header_rec.global_attribute16 := null;
2444 p_x_header_rec.global_attribute17 := null;
2445 p_x_header_rec.global_attribute18 := null;
2446 p_x_header_rec.global_attribute19 := null;
2447 p_x_header_rec.global_attribute20 := null;
2448 --
2449 ELSIF p_validation_level = OE_GLOBALS.G_VALID_PARTIAL_WITH_DEF THEN
2450 --
2451 p_x_header_rec.global_attribute_category
2452 := FND_API.G_MISS_CHAR;
2453 p_x_header_rec.global_attribute1 := FND_API.G_MISS_CHAR;
2454 p_x_header_rec.global_attribute2 := FND_API.G_MISS_CHAR;
2455 p_x_header_rec.global_attribute3 := FND_API.G_MISS_CHAR;
2456 p_x_header_rec.global_attribute4 := FND_API.G_MISS_CHAR;
2457 p_x_header_rec.global_attribute5 := FND_API.G_MISS_CHAR;
2458 p_x_header_rec.global_attribute6 := FND_API.G_MISS_CHAR;
2459 p_x_header_rec.global_attribute7 := FND_API.G_MISS_CHAR;
2460 p_x_header_rec.global_attribute8 := FND_API.G_MISS_CHAR;
2461 p_x_header_rec.global_attribute9 := FND_API.G_MISS_CHAR;
2462 p_x_header_rec.global_attribute11 := FND_API.G_MISS_CHAR;
2463 p_x_header_rec.global_attribute12 := FND_API.G_MISS_CHAR;
2464 p_x_header_rec.global_attribute13 := FND_API.G_MISS_CHAR;
2465 p_x_header_rec.global_attribute14 := FND_API.G_MISS_CHAR;
2466 p_x_header_rec.global_attribute15 := FND_API.G_MISS_CHAR;
2467 p_x_header_rec.global_attribute16 := FND_API.G_MISS_CHAR;
2468 p_x_header_rec.global_attribute17 := FND_API.G_MISS_CHAR;
2469 p_x_header_rec.global_attribute18 := FND_API.G_MISS_CHAR;
2470 p_x_header_rec.global_attribute19 := FND_API.G_MISS_CHAR;
2471 p_x_header_rec.global_attribute20 := FND_API.G_MISS_CHAR;
2472 --
2473 ELSE
2474 --
2475 x_return_status := FND_API.G_RET_STS_ERROR;
2476 --
2477 END IF;
2478 --
2479 END IF;
2480 --
2481 END IF;
2482 --
2483
2484 --
2485 OE_DEBUG_PUB.ADD('After G_header_desc_flex ' || x_return_status,2);
2486 -- Done validating attributes
2487
2488 -- Salesrep_id
2489 IF p_x_header_rec.salesrep_id IS NOT NULL THEN
2490 --
2491 IF NOT OE_CNCL_Validate.salesrep(p_x_header_rec.salesrep_id) THEN
2492 --
2493 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL THEN
2494 --
2495 p_x_header_rec.salesrep_id := NULL;
2496 --
2497 ELSIF p_validation_level = OE_GLOBALS.G_VALID_PARTIAL_WITH_DEF THEN
2498 --
2499 p_x_header_rec.salesrep_id := FND_API.G_MISS_NUM;
2500 --
2501 ELSE
2502 --
2503 x_return_status := FND_API.G_RET_STS_ERROR;
2504 --
2505 END IF;
2506 --
2507 END IF;
2508 --
2509 END IF;
2510 --
2511
2512 --
2513 IF p_x_header_rec.sales_channel_code IS NOT NULL THEN
2514 --
2515 IF NOT OE_CNCL_Validate.sales_channel(p_x_header_rec.sales_channel_code) THEN
2516 --
2517 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL THEN
2518 --
2519 p_x_header_rec.sales_channel_code := NULL;
2520 --
2521 ELSIF p_validation_level = OE_GLOBALS.G_VALID_PARTIAL_WITH_DEF THEN
2522 --
2523 p_x_header_rec.sales_channel_code := FND_API.G_MISS_NUM;
2524 --
2525 ELSE
2526 --
2527 x_return_status := FND_API.G_RET_STS_ERROR;
2528 --
2529 END IF;
2530 --
2531 END IF;
2532 --
2533 END IF;
2534 --
2535
2536
2537 -- Return_reason_code
2538 --
2539 IF p_x_header_rec.return_reason_code IS NOT NULL THEN
2540 --
2541 IF NOT OE_CNCL_Validate.return_reason(p_x_header_rec.return_reason_code) THEN
2542 --
2543 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL THEN
2544 --
2545 p_x_header_rec.return_reason_code := NULL;
2546 --
2547 ELSIF p_validation_level = OE_GLOBALS.G_VALID_PARTIAL_WITH_DEF THEN
2548 --
2549 p_x_header_rec.return_reason_code := FND_API.G_MISS_CHAR;
2550 --
2551 ELSE
2552 --
2553 x_return_status := FND_API.G_RET_STS_ERROR;
2554 --
2555 END IF;
2556 --
2557 END IF;
2558 --
2559 END IF;
2560 --
2561
2562 -- Customer_Location
2563 --
2564 IF p_x_header_rec.sold_to_site_use_id IS NOT NULL THEN
2565 --
2566 IF NOT OE_CNCL_Validate.Customer_Location(p_x_header_rec.sold_to_site_use_id) THEN
2567 --
2568 IF p_validation_level = OE_GLOBALS.G_VALID_LEVEL_PARTIAL THEN
2569 --
2570 p_x_header_rec.sold_to_site_use_id := NULL;
2571 --
2572 ELSIF p_validation_level = OE_GLOBALS.G_VALID_PARTIAL_WITH_DEF THEN
2573 --
2574 p_x_header_rec.sold_to_site_use_id := FND_API.G_MISS_CHAR;
2575 --
2576 ELSE
2577 --
2578 x_return_status := FND_API.G_RET_STS_ERROR;
2579 --
2580 END IF;
2581 --
2582 END IF;
2583 --
2584 END IF;
2585 --
2586 oe_debug_pub.add('Exiting OE_CNCL_VALIDATE_HEADER.ATTRIBUTES',1);
2587
2588 EXCEPTION
2589
2590 WHEN FND_API.G_EXC_ERROR THEN
2591 x_return_status := FND_API.G_RET_STS_ERROR;
2592
2593 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2594 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2595
2596 WHEN OTHERS THEN
2597 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2598
2599 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2600 THEN
2601 OE_MSG_PUB.Add_Exc_Msg
2602 ( G_PKG_NAME
2603 ,'Attributes'
2604 );
2605 END IF;
2606
2607 END Attributes;
2608
2609
2610
2611 END OE_CNCL_Validate_Header;