[Home] [Help]
PACKAGE BODY: APPS.AP_VENDOR_PUB_PKG
Source
1 PACKAGE BODY AP_VENDOR_PUB_PKG AS
2 /* $Header: appvndrb.pls 120.78.12010000.28 2009/02/02 11:19:33 skyadav ship $ */
3
4 --Global constants for logging
5 G_PKG_NAME CONSTANT VARCHAR2(30) := 'AP_VENDOR_PUB_PKG';
6 G_MSG_UERROR CONSTANT NUMBER := FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR;
7 G_MSG_ERROR CONSTANT NUMBER := FND_MSG_PUB.G_MSG_LVL_ERROR;
8 G_MSG_SUCCESS CONSTANT NUMBER := FND_MSG_PUB.G_MSG_LVL_SUCCESS;
9 G_MSG_HIGH CONSTANT NUMBER := FND_MSG_PUB.G_MSG_LVL_DEBUG_HIGH;
10 G_MSG_MEDIUM CONSTANT NUMBER := FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM;
11 G_MSG_LOW CONSTANT NUMBER := FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW;
12 G_LINES_PER_FETCH CONSTANT NUMBER := 1000;
13
14 G_CURRENT_RUNTIME_LEVEL CONSTANT NUMBER := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
15 G_LEVEL_UNEXPECTED CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
16 G_LEVEL_ERROR CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
17 G_LEVEL_EXCEPTION CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
18 G_LEVEL_EVENT CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
19 G_LEVEL_PROCEDURE CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
20 G_LEVEL_STATEMENT CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
21 G_MODULE_NAME CONSTANT VARCHAR2(100) := 'AP.PLSQL.AP_VENDOR_PUB_PKG';
22
23 G_Vendor_Type_Lookup_Code VARCHAR2(30);
24
25 -- Global Constants to set null
26 ap_null_num CONSTANT NUMBER := FND_API.G_NULL_NUM;
27 ap_null_char CONSTANT VARCHAR2(1) := FND_API.G_NULL_CHAR;
28 ap_null_date CONSTANT DATE := FND_API.G_NULL_DATE;
29
30 --Function: Insert_Rejections
31 --This function is called whenever the process needs to insert a
32 --rejection into new supplier interface rejection table.
33
34 FUNCTION Insert_Rejections (
35 p_parent_table IN VARCHAR2,
36 p_parent_id IN NUMBER,
37 p_reject_code IN VARCHAR2,
38 p_last_updated_by IN NUMBER,
39 p_last_update_login IN NUMBER,
40 p_calling_sequence IN VARCHAR2)
41 RETURN BOOLEAN IS
42
43 l_current_calling_sequence VARCHAR2(2000);
44 l_debug_info VARCHAR2(500);
45 l_api_name CONSTANT VARCHAR2(100) := 'INSERT_REJECTIONS';
46
47 BEGIN
48 -- Update the calling sequence
49 l_current_calling_sequence := 'AP_VENDOR_PUB_PKG.Insert_rejections<-'
50 ||P_calling_sequence;
51
52 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
53 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'Parameters: '
54 ||' p_parent_table: '|| p_parent_table
55 ||', p_parent_id: '||to_char(p_parent_id)
56 ||', p_reject_code: '||p_reject_code);
57 END IF;
58 --
59 l_debug_info := '(Insert Rejections 1) Insert into AP_SUPPLIER_INT_REJECTIONS, '||
60 'REJECT CODE:'||p_reject_code;
61 --
62 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
63 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,l_debug_info);
64 END IF;
65
66 INSERT INTO AP_SUPPLIER_INT_REJECTIONS(
67 parent_table,
68 parent_id,
69 reject_lookup_code,
70 last_updated_by,
71 last_update_date,
72 last_update_login,
73 created_by,
74 creation_date)
75 VALUES (
76 p_parent_table,
77 p_parent_id,
78 p_reject_code,
79 p_last_updated_by,
80 SYSDATE,
81 p_last_update_login,
82 p_last_updated_by,
83 SYSDATE);
84
85 RETURN(TRUE);
86
87 EXCEPTION
88 WHEN OTHERS THEN
89 IF (SQLCODE <> -20001 ) THEN
90 FND_MESSAGE.SET_NAME('SQLAP','AP_DEBUG');
91 FND_MESSAGE.SET_TOKEN('ERROR', SQLERRM );
92 FND_MESSAGE.SET_TOKEN('CALLING_SEQUENCE',l_current_calling_sequence );
93 FND_MESSAGE.SET_TOKEN('DEBUG_INFO', l_debug_info );
94 END IF;
95 --
96 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
97 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,SQLERRM);
98 END IF;
99
100 RETURN (FALSE);
101
102 END Insert_Rejections;
103 --
104
105 PROCEDURE Val_Currency_Code(p_currency_code IN VARCHAR2,
106 x_valid OUT NOCOPY BOOLEAN
107 )
108 IS
109 l_count NUMBER := 0;
110
111 BEGIN
112 x_valid := TRUE;
113
114 IF p_currency_code IS NOT NULL THEN
115 SELECT COUNT(*)
116 INTO l_count
117 FROM fnd_currencies_vl
118 WHERE currency_code = p_currency_code
119 AND enabled_flag = 'Y'
120 AND currency_flag = 'Y'
121 AND TRUNC(NVL(start_date_active, SYSDATE)) <= TRUNC(SYSDATE)
122 AND TRUNC(NVL(end_date_active, SYSDATE))>= TRUNC(SYSDATE);
123
124 IF l_count < 1 THEN
125 x_valid := FALSE;
126 FND_MESSAGE.SET_NAME('SQLGL','GL_API_INVALID_CURR');
127 FND_MSG_PUB.ADD;
128
129 END IF;
130 END IF;
131
132 END Val_Currency_Code;
133
134 PROCEDURE Validate_Lookups(
135 p_column_name IN VARCHAR2,
136 p_column_value IN VARCHAR2,
137 p_lookup_type IN VARCHAR2,
138 p_lookup_table IN VARCHAR2,
139 x_valid OUT NOCOPY BOOLEAN
140 )
141
142 IS
143 l_dummy_lookup VARCHAR2(30);
144
145 BEGIN
146 x_valid := TRUE;
147
148 IF p_lookup_table = 'AP_LOOKUP_CODES' THEN
149
150 Begin
151 SELECT lookup_code
152 INTO l_dummy_lookup
153 FROM ap_lookup_codes
154 WHERE lookup_type = p_lookup_type
155 AND lookup_code = p_column_value
156 AND enabled_flag = 'Y'
157 AND nvl(inactive_date,sysdate+1) > sysdate;
158
159
160 EXCEPTION
161 WHEN NO_DATA_FOUND THEN
162 x_valid := FALSE;
163 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
164 FND_MESSAGE.SET_TOKEN('COLUMN_NAME', p_column_name );
165 FND_MSG_PUB.ADD;
166
167 End;
168 ELSIF p_lookup_table = 'PO_LOOKUP_CODES' THEN
169 Begin
170 SELECT lookup_code
171 INTO l_dummy_lookup
172 FROM po_lookup_codes
173 WHERE lookup_type = p_lookup_type
174 AND lookup_code = p_column_value
175 AND enabled_flag = 'Y'
176 AND nvl(inactive_date,sysdate+1) > sysdate;
177
178
179 EXCEPTION
180 WHEN NO_DATA_FOUND THEN
181 x_valid := FALSE;
182 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
183 FND_MESSAGE.SET_TOKEN('COLUMN_NAME', p_column_name );
184 FND_MSG_PUB.ADD;
185
186 End;
187
188 ELSIF p_lookup_table = 'FND_LOOKUP_VALUES' THEN
189 Begin
190 SELECT lookup_code
191 INTO l_dummy_lookup
192 FROM fnd_lookup_values
193 WHERE lookup_type = p_lookup_type
194 AND lookup_code = p_column_value
195 AND enabled_flag = 'Y'
196 AND nvl(end_date_active,sysdate+1) > sysdate;
197
198 EXCEPTION
199 WHEN NO_DATA_FOUND THEN
200 x_valid := FALSE;
201 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
202 FND_MESSAGE.SET_TOKEN('COLUMN_NAME', p_column_name );
203 FND_MSG_PUB.ADD;
204 End;
205
206 END IF;
207
208 END validate_lookups;
209
210
211 PROCEDURE Check_dup_vendor_site ( x_vendor_id IN NUMBER,
212 x_vendor_site_code IN VARCHAR2,
213 x_org_name IN VARCHAR2,
214 x_org_id IN NUMBER,
215 x_valid OUT NOCOPY BOOLEAN)
216 IS
217
218 l_dup_count_org_id number;
219 l_dup_count_org_name number;
220
221 BEGIN
222
223 IF x_org_id is NOT NULL THEN
224 SELECT count(*)
225 INTO l_dup_count_org_id
226 -- bug 7430783 Changing validation table to ap_supplier_sites_all
227 --FROM po_vendor_sites_all SITE
228 FROM ap_supplier_sites_all SITE
229 WHERE SITE.vendor_id = x_vendor_id
230 AND SITE.org_id = x_org_id
231 AND UPPER(SITE.vendor_site_code) = UPPER(x_vendor_site_code);
232
233 ELSIF (x_org_id is NULL and x_org_name is NOT NULL) THEN
234 SELECT count(*)
235 INTO l_dup_count_org_name
236 -- bug 7430783 Changing validation table to ap_supplier_sites_all
237 --FROM po_vendor_sites_all SITE, HR_OPERATING_UNITS ORG
238 FROM ap_supplier_sites_all SITE, HR_OPERATING_UNITS ORG
239 WHERE SITE.vendor_id = x_vendor_id
240 AND ORG.name = x_org_name
241 AND UPPER(vendor_site_code) = UPPER(x_vendor_site_code)
242 AND SITE.org_id = ORG.organization_id;
243
244 END IF;
245
246 IF (l_dup_count_org_id > 0 OR l_dup_count_org_name > 0 ) THEN
247 x_valid := FALSE;
248 fnd_message.set_name('SQLAP','AP_VEN_DUPLICATE_VEN_SITE');
249 FND_MSG_PUB.ADD;
250 END IF;
251
252 END Check_dup_vendor_site;
253
254 --
255 -- Check if the 1099 type is expected here
256 --
257 PROCEDURE Check_Valid_1099_type(p_1099_type IN VARCHAR2,
258 p_federal_flag IN VARCHAR2,
259 x_valid OUT NOCOPY BOOLEAN
260 ) IS
261 BEGIN
262 x_valid := TRUE;
263
264
265 IF (nvl(p_federal_flag,'N') = 'N' and p_1099_type is NOT NULL) THEN
266 x_valid := FALSE;
267 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMNS_INCONSISTENT');
268 FND_MESSAGE.SET_TOKEN('ID','FEDERAL_REPORTABLE_FLAG');
269 FND_MESSAGE.SET_TOKEN('NAME','1099_TYPE');
270 FND_MSG_PUB.ADD;
271 END IF;
272
273 END Check_Valid_1099_type;
274
275 --
276 -- Check if the Payment_Priority number is valid
277 --
278 PROCEDURE Check_Payment_Priority(p_payment_priority IN NUMBER,
279 x_valid OUT NOCOPY BOOLEAN
280 ) IS
281 BEGIN
282 x_valid := TRUE;
283
284
285 IF ((p_payment_priority < 1) OR
286 (p_payment_priority > 99) OR
287 (p_payment_priority <> trunc(p_payment_priority))) THEN
288
289 x_valid := FALSE;
290
291 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
292 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','PAYMENT_PRIORITY' );
293 FND_MSG_PUB.ADD;
294 END IF;
295 END Check_Payment_Priority;
296
297 --
298 -- Check if the Employee is valid
299 --
300 PROCEDURE Check_Valid_Employee(p_employee_id IN NUMBER,
301 x_valid OUT NOCOPY BOOLEAN
302 ) IS
303 l_dummy hr_employees_current_v.employee_id%TYPE;
304
305 BEGIN
306 x_valid := TRUE;
307
308 SELECT employee_id
309 INTO l_dummy
310 FROM hr_employees_current_v
311 WHERE employee_id = p_employee_id;
312
313
314 EXCEPTION
315 -- Trap validation error
316 WHEN NO_DATA_FOUND THEN
317 x_valid := FALSE;
318
319 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
320 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','EMPLOYEE_ID' );
321 FND_MSG_PUB.ADD;
322
323 END Check_Valid_Employee;
324
325 --
326 -- Check if Inspection_required_flag and Receipt_required_flag are valid
327 --
328 PROCEDURE Check_Valid_match_level(p_inspection_reqd_flag IN VARCHAR2,
329 p_receipt_reqd_flag IN VARCHAR2,
330 x_valid OUT NOCOPY BOOLEAN
331 ) IS
332
333 BEGIN
334 x_valid := TRUE;
335
336 IF (p_receipt_reqd_flag = 'N' and p_inspection_reqd_flag = 'Y') THEN
337 x_valid := FALSE;
338 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMNS_INCONSISTENT');
339 FND_MESSAGE.SET_TOKEN('ID','INSPECTION_REQUIRED_FLAG');
340 FND_MESSAGE.SET_TOKEN('NAME','RECEIPT_REQUIRED_FLAG');
341 FND_MSG_PUB.ADD;
342 END IF;
343
344 END Check_Valid_match_level;
345
346 --
347 -- Check if the Name_control is valid
348 --
349 PROCEDURE Check_Valid_name_control(p_name_control IN VARCHAR2,
350 x_valid OUT NOCOPY BOOLEAN
351 ) IS
352
353 BEGIN
354 x_valid := TRUE;
355
356 IF (nvl(NVL(length(ltrim(translate(p_name_control,
357 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789&- ',
358 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'),'X')), 0),0) > 0) THEN
359
360 x_valid := FALSE;
361 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
362 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','NAME_CONTROL' );
363 FND_MSG_PUB.ADD;
364 END IF;
365
366 END Check_Valid_name_control;
367
368 --
369 -- Check if ship_via_lookup_code is valid
370 --
371 PROCEDURE Check_Valid_ship_via(p_ship_via_lookup_code IN VARCHAR2,
372 p_inventory_org_id IN NUMBER DEFAULT NULL,
373 x_valid OUT NOCOPY BOOLEAN
374 ) IS
375 l_dummy number;
376
377 BEGIN
378 x_valid := TRUE;
379
380 SELECT nvl(count(freight_code),0)
381 INTO l_dummy
382 FROM org_freight
383 WHERE organization_id = p_inventory_org_id
384 AND nvl(disable_date, sysdate +1 ) > sysdate
385 AND freight_code = p_ship_via_lookup_code;
386
387
388 IF l_dummy < 1 THEN
389 x_valid := FALSE;
390
391 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
392 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','SHIP_VIA_LOOKUP_CODE' );
393 FND_MSG_PUB.ADD;
394 END IF;
395
396 END Check_Valid_ship_via;
397
398 --
399 -- Check if the set_of_books_id is valid
400 --
401 PROCEDURE Check_Valid_Sob_Id(p_sob_id IN NUMBER,
402 x_valid OUT NOCOPY BOOLEAN
403 ) IS
404 l_dummy GL_SETS_OF_BOOKS.set_of_books_id%TYPE;
405
406 BEGIN
407 x_valid := TRUE;
408
409 SELECT set_of_books_id
410 INTO l_dummy
411 FROM GL_SETS_OF_BOOKS
412 WHERE set_of_books_id = p_sob_id;
413
414
415 EXCEPTION
416 -- Trap validation error
417 WHEN NO_DATA_FOUND THEN
418 x_valid := FALSE;
419 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
420 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','SET_OF_BOOKS_ID' );
421 FND_MSG_PUB.ADD;
422 END Check_Valid_Sob_Id;
423
424 --
425 -- Check if the Employee has already been assigned
426 --
427 PROCEDURE Chk_Dup_Employee(p_vendor_id IN NUMBER,
428 p_employee_id IN NUMBER,
429 x_valid OUT NOCOPY BOOLEAN
430 ) IS
431 l_count NUMBER := 0;
432
433 BEGIN
434 x_valid := TRUE;
435
436
437 SELECT COUNT(*)
438 INTO l_count
439 FROM po_vendors
440 WHERE (p_vendor_id IS NULL OR p_vendor_id = ap_null_num OR vendor_id <> p_vendor_id) --bug7023543
441 AND employee_id = p_employee_id;
442
443 IF l_count > 0 THEN
444 x_valid := FALSE;
445
446 FND_MESSAGE.SET_NAME('SQLAP','AP_EMPLOYEE_ASSIGNED');
447 FND_MSG_PUB.ADD;
448 END IF;
449
450 END Chk_Dup_Employee;
451
452 --
453 -- Check for duplicate vendor number
454 --
455 PROCEDURE Chk_Dup_segment1_int(p_segment1 IN VARCHAR2,
456 x_valid OUT NOCOPY BOOLEAN
457 ) IS
458
459 l_count NUMBER := 1;
460
461 BEGIN
462 x_valid := TRUE;
463 --Bug 7526020 Validating SEGMENT1 against ap_suppliers instead of ap_suppliers_int
464 SELECT COUNT(*)
465 INTO l_count
466 FROM ap_suppliers
467 WHERE segment1 = p_segment1;
468
469 IF l_count > 1 THEN
470 x_valid := FALSE;
471 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
472 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','SEGMENT1' );
473 FND_MSG_PUB.ADD;
474 END IF;
475
476 END Chk_Dup_segment1_int;
477
478 --
479 -- Check for duplicate vendor names
480 --
481 /* Bug 6939863 - Made Chk_Dup_Vendor_Name_new with same logic as update.
482 * Bug 5606948 added a call to Chk_Dup_Vendor_Name_update in
483 * PROCEDURE Validate_Vendor even in Insert mode.
484 * Chk_Dup_Vendor_Name_new is not called from anywhere, so made this similar
485 * to Chk_Dup_Vendor_Name_update and also corrected employee_id logic
486 * in both calls.
487 PROCEDURE Chk_Dup_Vendor_Name_new(p_vendor_name IN VARCHAR2,
488 x_valid OUT NOCOPY BOOLEAN
489 ) IS
490 l_count NUMBER := 0;
491
492 BEGIN
493 x_valid := TRUE;
494
495 SELECT COUNT(*)
496 INTO l_count
497 FROM ap_suppliers_int
498 WHERE UPPER(vendor_name) = UPPER(p_vendor_name);
499
500 IF l_count > 1 THEN
501 x_valid := FALSE;
502 FND_MESSAGE.SET_NAME('SQLAP','AP_VEN_DUPLICATE_NAME');
503 FND_MSG_PUB.ADD;
504 END IF;
505
506 END Chk_Dup_Vendor_Name_new;
507 Bug 6939863 */
508
509 PROCEDURE Chk_Dup_Vendor_Name_new(p_vendor_name IN VARCHAR2,
510 p_vendor_id IN NUMBER,
511 p_vendor_type_lookup_code IN VARCHAR2,
512 p_employee_id IN NUMBER,
513 x_valid OUT NOCOPY BOOLEAN
514 ) IS
515 l_count NUMBER := 0;
516
517 BEGIN
518
519 x_valid := TRUE;
520
521 --open issue 1 with manoj regarding whether the vendor name
522 --will even be denormalized into po_vendors
523
524 -- Added following if condition for bug 6775797
525
526 IF ((p_vendor_type_lookup_code IS NOT NULL AND
527 p_vendor_type_lookup_code <> 'EMPLOYEE')
528 OR p_vendor_type_lookup_code IS NULL) THEN
529
530 SELECT COUNT(*)
531 INTO l_count
532 FROM ap_suppliers
533 WHERE UPPER(vendor_name) = UPPER(p_vendor_name)
534 AND (p_vendor_id IS NULL OR vendor_id <> p_vendor_id); --bug 5606948
535
536 ELSE
537
538 SELECT COUNT(*)
539 INTO l_count
540 FROM ap_suppliers
541 WHERE UPPER(vendor_name) = UPPER(p_vendor_name)
542 AND (p_vendor_id IS NULL OR vendor_id <> p_vendor_id)
543 --bug 6939863 - changed <> to = for employee_id
544 AND (p_employee_id IS NULL OR employee_id = p_employee_id);
545
546 END IF;
547
548 IF l_count > 0 THEN
549 x_valid := FALSE;
550 FND_MESSAGE.SET_NAME('SQLAP','AP_VEN_DUPLICATE_NAME');
551 FND_MSG_PUB.ADD;
552 END IF;
553
554 END Chk_Dup_Vendor_Name_new;
555
556
557 --
558 -- Check for duplicate vendor number
559 --
560 PROCEDURE Chk_Dup_Vendor_Number(p_vendor_id IN NUMBER,
561 p_segment1 IN VARCHAR2,
562 x_valid OUT NOCOPY BOOLEAN
563 ) IS
564
565 l_count NUMBER := 0;
566
567 BEGIN
568 x_valid := TRUE;
569
570 SELECT COUNT(*)
571 INTO l_count
572 FROM po_vendors
573 WHERE (p_vendor_id IS NULL OR vendor_id <> p_vendor_id)
574 AND segment1 = p_segment1;
575
576 IF l_count = 0 THEN
577 SELECT count(*)
578 INTO l_count
579 FROM po_history_vendors
580 WHERE segment1 = p_segment1;
581 END IF;
582
583 IF l_count > 0 THEN
584 x_valid := FALSE;
585 FND_MESSAGE.SET_NAME('SQLAP','AP_VEN_DUPLICATE_VEN_NUM');
586 FND_MSG_PUB.ADD;
587 END IF;
588
589 END Chk_Dup_Vendor_Number;
590
591 --
592 -- Check if the receiving_routing_id is valid
593 --
594 PROCEDURE Chk_rcv_routing_id(p_rcv_rtg_id IN NUMBER,
595 x_valid OUT NOCOPY BOOLEAN
596 ) IS
597 l_dummy RCV_ROUTING_HEADERS.routing_header_id%TYPE;
598
599 BEGIN
600 x_valid := TRUE;
601
602 SELECT routing_header_id
603 INTO l_dummy
604 FROM RCV_ROUTING_HEADERS
605 WHERE routing_header_id = p_rcv_rtg_id;
606
607
608 EXCEPTION
609 -- Trap validation error
610 WHEN NO_DATA_FOUND THEN
611 x_valid := FALSE;
612 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
613 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','RECEIVING_ROUTING_ID' );
614 FND_MSG_PUB.ADD;
615 END Chk_rcv_routing_id;
616
617 --
618 -- This procedure should perform Other Employee Validations
619 --
620 PROCEDURE employee_type_checks(p_vendor_type IN VARCHAR2,
621 p_employee_id IN NUMBER,
622 p_valid OUT NOCOPY BOOLEAN
623 ) IS
624
625 BEGIN
626 p_valid := TRUE;
627
628 IF ( (p_vendor_type <> 'EMPLOYEE'
629 AND (p_employee_id is Not Null AND p_employee_id <> ap_null_num))
630 OR
631 (p_vendor_type = 'EMPLOYEE' --bug6050423
632 AND (p_employee_id is Null OR p_employee_id = ap_null_num)) ) THEN
633
634 p_valid := FALSE;
635 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMNS_INCONSISTENT');
636 FND_MESSAGE.SET_TOKEN('ID','VENDOR_TYPE_LOOKUP_CODE');
637 FND_MESSAGE.SET_TOKEN('NAME','EMPLOYEE_ID');
638 FND_MSG_PUB.ADD;
639 END IF;
640
641 END employee_type_checks;
642
643 --
644 -- This procedure should ensure the value for 'payment_currency_code' exists as a valid
645 -- currency_code on the target database
646 -- Bug 2931673, replaced parameter p_vendor_id with p_invoice_currency_code
647 --
648 PROCEDURE payment_currency_code_valid(p_payment_currency_code IN VARCHAR2,
649 p_invoice_currency_code IN VARCHAR2,
650 p_valid OUT NOCOPY BOOLEAN
651 ) IS
652 l_count NUMBER := 1;
653
654 BEGIN
655 p_valid := TRUE;
656
657
658 /*
659 * assumes p_invoice_currency_code is valid
660 * only validate if they're different
661 */
662 IF(p_payment_currency_code<>p_invoice_currency_code) THEN
663
664 SELECT count(*)
665 INTO l_count
666 FROM fnd_currencies_vl
667 WHERE currency_code = p_payment_currency_code
668 AND (gl_currency_api.is_fixed_rate(p_invoice_currency_code
669 ,currency_code
670 ,sysdate)= 'Y'
671 AND enabled_flag = 'Y'
672 AND trunc(nvl(start_date_active,sysdate)) <= trunc(sysdate)
673 AND trunc(nvl(end_date_active,sysdate)) >= trunc(sysdate)
674 );
675
676 IF (l_count = 0) THEN
677 FND_MESSAGE.SET_NAME('SQLAP','AP_API_INVALID_PAYMENT_CURR');
678 p_valid := FALSE;
679 FND_MSG_PUB.ADD;
680 END IF;
681
682 END IF;
683
684 END payment_currency_code_valid;
685
686 --
687 -- Validate the Income Tax Type
688 --
689 PROCEDURE Val_Income_Tax_Type(p_type_1099 IN VARCHAR2,
690 x_valid OUT NOCOPY BOOLEAN
691 ) IS
692 l_count NUMBER := 0;
693
694 BEGIN
695 x_valid := TRUE;
696
697 SELECT COUNT(*)
698 INTO l_count
699 FROM ap_income_tax_types
700 WHERE income_tax_type = p_type_1099
701 AND TRUNC(SYSDATE) < TRUNC(NVL(inactive_date, SYSDATE+1));
702
703 IF l_count < 1 THEN
704 x_valid := FALSE;
705 FND_MESSAGE.SET_NAME('SQLAP','AP_API_INVALID_IN_TAX_TYPE');
706 FND_MSG_PUB.ADD;
707 END IF;
708
709 END Val_Income_Tax_Type;
710
711 PROCEDURE Validate_CCIDs(
712 p_column_name IN VARCHAR2,
713 p_ccid IN NUMBER,
714 p_sob_id IN NUMBER,
715 x_valid OUT NOCOPY BOOLEAN
716 )
717
718 IS
719 l_ccid gl_code_combinations.Code_Combination_Id%TYPE;
720
721 BEGIN
722 x_valid := TRUE;
723
724 IF p_column_name = 'ACCTS_PAY_CCID' THEN
725
726 Begin
727 SELECT GCC.code_combination_id
728 INTO l_ccid
729 FROM GL_CODE_COMBINATIONS GCC, GL_SETS_OF_BOOKS GSOB
730 WHERE GCC.code_combination_id = p_ccid
731 AND GCC.account_type = 'L'
732 AND GCC.enabled_flag = 'Y'
733 AND GCC.detail_posting_allowed_flag = 'Y'
734 AND GSOB.set_of_books_id = p_sob_id
735 AND GSOB.chart_of_accounts_id = GCC.chart_of_accounts_id
736 AND nvl(GCC.end_date_active,sysdate+1) > sysdate;
737
738
739 EXCEPTION
740 WHEN NO_DATA_FOUND THEN
741 x_valid := FALSE;
742 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
743 FND_MESSAGE.SET_TOKEN('COLUMN_NAME', p_column_name );
744 FND_MSG_PUB.ADD;
745 End;
746 ELSE
747 Begin
748 SELECT GCC.code_combination_id
749 INTO l_ccid
750 FROM GL_CODE_COMBINATIONS GCC, GL_SETS_OF_BOOKS GSOB
751 WHERE GCC.code_combination_id = p_ccid
752 AND GCC.enabled_flag = 'Y'
753 AND GCC.detail_posting_allowed_flag = 'Y'
754 AND GCC.chart_of_accounts_id = GSOB.chart_of_accounts_id
755 AND GSOB.set_of_books_id = p_sob_id
756 AND nvl(GCC.end_date_active,sysdate+1) > sysdate;
757
758 EXCEPTION
759 WHEN NO_DATA_FOUND THEN
760 x_valid := FALSE;
761 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
762 FND_MESSAGE.SET_TOKEN('COLUMN_NAME', p_column_name );
763 FND_MSG_PUB.ADD;
764 End;
765 END IF;
766
767 END validate_CCIDs;
768
769 --
770 -- Check for duplicate vendor names
771 --
772 -- Added parameter p_vendor_type_lookup_code and p_employee_id
773 -- for bug 6775797
774 PROCEDURE Chk_Dup_Vendor_Name_update(p_vendor_name IN VARCHAR2,
775 p_vendor_id IN NUMBER,
776 p_vendor_type_lookup_code IN VARCHAR2,
777 p_employee_id IN NUMBER,
778 x_valid OUT NOCOPY BOOLEAN
779 ) IS
780 l_count NUMBER := 0;
781
782 BEGIN
783
784 x_valid := TRUE;
785
786 --open issue 1 with manoj regarding whether the vendor name
787 --will even be denormalized into po_vendors
788
789 -- Added following if condition for bug 6775797
790
791 IF ((p_vendor_type_lookup_code IS NOT NULL AND
792 p_vendor_type_lookup_code <> 'EMPLOYEE')
793 OR p_vendor_type_lookup_code IS NULL) THEN
794
795 SELECT COUNT(*)
796 INTO l_count
797 FROM ap_suppliers
798 WHERE UPPER(vendor_name) = UPPER(p_vendor_name)
799 AND (p_vendor_id IS NULL OR vendor_id <> p_vendor_id); --bug 5606948
800
801 ELSE
802
803 SELECT COUNT(*)
804 INTO l_count
805 FROM ap_suppliers
806 WHERE UPPER(vendor_name) = UPPER(p_vendor_name)
807 AND (p_vendor_id IS NULL OR vendor_id <> p_vendor_id)
808 --bug 6939863 - changed <> to = for employee_id
809 AND (p_employee_id IS NULL OR employee_id = p_employee_id);
810
811 END IF;
812
813 IF l_count > 0 THEN
814 x_valid := FALSE;
815 FND_MESSAGE.SET_NAME('SQLAP','AP_VEN_DUPLICATE_NAME');
816 FND_MSG_PUB.ADD;
817 END IF;
818
819 END Chk_Dup_Vendor_Name_update;
820
821 --
822 -- Check for duplicate vendor number
823 --
824 PROCEDURE Chk_Null_Vendor_Number(p_segment1 IN VARCHAR2 default null,
825 x_valid OUT NOCOPY BOOLEAN
826 ) IS
827
828 l_ven_num_code financials_system_parameters.user_defined_vendor_num_code%TYPE;
829
830 BEGIN
831
832 x_valid := TRUE;
833 --sally
834 SELECT supplier_numbering_method
835 INTO l_ven_num_code
836 FROM ap_product_setup;
837
838 IF ((NVL(l_ven_num_code, 'MANUAL') = 'MANUAL') AND
839 (p_segment1 is Null)) THEN
840 x_valid := FALSE;
841 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
842 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','SEGMENT1');
843 FND_MSG_PUB.ADD;
844 ELSIF l_ven_num_code not in ('MANUAL','AUTOMATIC') then
845 x_valid := FALSE;
846 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
847 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','USER_DEFINED_VENDOR_NUM_CODE');
848 FND_MSG_PUB.ADD;
849 END IF;
850
851 END Chk_Null_Vendor_Number;
852
853 -- Method to verify a taxpayer id is valid
854 -- Bug 5291571
855 -- Modified the registration number validation calls to LE Teams API.
856 --
857 function is_taxpayer_id_valid(
858 p_taxpayer_id IN VARCHAR2,
859 p_country IN VARCHAR2
860 )
861 RETURN VARCHAR2
862 IS
863 l_ret_value VARCHAR2(1);
864 l_outcome VARCHAR2(1);
865 l_out_msg VARCHAR2(255);
866 l_legislative_cat_code VARCHAR2(30);
867 l_required_flag VARCHAR2(1);
868 l_registration_code VARCHAR2(100);
869 l_return_status VARCHAR2(50);
870 l_msg_count NUMBER;
871 l_msg_data VARCHAR2(1000);
872
873 BEGIN
874 l_ret_value := 'Y';
875 l_legislative_cat_code := 'INCOME_TAX';
876 l_required_flag := 'Y'; --7442513
877 l_return_status := FND_API.G_RET_STS_SUCCESS;
878
879 IF (p_country = 'US') THEN
880 FV_AP_TIN_PKG.TIN_VALIDATE(p_taxpayer_id, l_outcome, l_out_msg);
881 ELSIF (p_country = 'IT') THEN
882 l_registration_code := 'FCIT';
883 XLE_REGISTRATIONS_VAL_PVT.do_it_regnum_validations
884 (l_legislative_cat_code,
885 l_required_flag,
886 l_registration_code,
887 p_taxpayer_id,
888 l_return_status,
889 l_msg_data,
890 l_msg_count);
891 ELSIF (p_country = 'ES') THEN
892 l_registration_code := 'NIF';
893 XLE_REGISTRATIONS_VAL_PVT.do_es_regnum_validations
894 (l_legislative_cat_code,
895 l_required_flag,
896 l_registration_code,
897 p_taxpayer_id,
898 l_return_status,
899 l_msg_data,
900 l_msg_count);
901 ELSIF (p_country = 'PT') THEN
902 l_registration_code := 'NIPC';
903 XLE_REGISTRATIONS_VAL_PVT.do_pt_regnum_validations
904 (l_legislative_cat_code,
905 l_required_flag,
906 l_registration_code,
907 p_taxpayer_id,
908 l_return_status,
909 l_msg_data,
910 l_msg_count);
911 END IF;
912
913 IF p_country = 'US' THEN
914 IF (l_outcome = 'F') THEN
915 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
916 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','NUM_1099' );
917 FND_MSG_PUB.ADD; --bug6050423
918 l_ret_value := 'N';
919 END IF;
920 END IF;
921 IF p_country IN ('IT','ES','PT') THEN
922 IF l_return_status = FND_API.G_RET_STS_ERROR
923 THEN
924 FND_MESSAGE.SET_NAME('XLE', 'XLE_INVALID_REG_NUM_ERR');
925 FND_MESSAGE.SET_TOKEN('REG_CODE', l_registration_code);
926 FND_MESSAGE.SET_TOKEN('REG_NUM', p_taxpayer_id);
927 FND_MSG_PUB.ADD; --bug6050423
928 l_ret_value := 'N'; --bug6050423
929 END IF;
930 END IF;
931
932 return l_ret_value;
933
934 END is_taxpayer_id_valid;
935
936 --
937 -- Validate and generate Vendor Number.
938 --
939
940 PROCEDURE Check_valid_vendor_num(p_segment1 IN VARCHAR2,
941 x_valid OUT NOCOPY BOOLEAN
942 ) IS
943
944 l_ven_num_code ap_product_setup.SUPPLIER_NUMBERING_METHOD%TYPE;
945
946 BEGIN
947
948 /*Open Issue 11 -- This select needs to be adjusted for MOAC*/
949 SELECT nvl(supplier_numbering_method, 'MANUAL')
950 INTO l_ven_num_code
951 FROM ap_product_setup;
952
953 IF ((l_ven_num_code = 'MANUAL') and (p_segment1 is NULL)) THEN
954
955 x_valid := FALSE;
956 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
957 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','SEGMENT1' );
958 FND_MSG_PUB.ADD;
959 END IF;
960
961 END Check_valid_vendor_num;
962
963 --
964 -- Check if the Match_Option value is valid
965 --
966 PROCEDURE Check_Valid_Match_Option(p_match_option IN VARCHAR2,
967 x_valid OUT NOCOPY BOOLEAN
968 ) IS
969
970 BEGIN
971 x_valid := TRUE;
972
973 IF p_match_option not IN ('P','R') THEN
974 x_valid := FALSE;
975 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
976 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','MATCH_OPTION' );
977 FND_MSG_PUB.ADD;
978 END IF;
979
980 END Check_Valid_Match_Option;
981
982 --
983 -- Check if the allow_awt_flag is valid
984 --
985 PROCEDURE Chk_allow_awt_flag(p_allow_awt_flag IN VARCHAR2,
986 p_org_id IN NUMBER,
987 x_valid OUT NOCOPY BOOLEAN
988 ) IS
989 l_asp_awt_flag VARCHAR2(1);
990
991 BEGIN
992 x_valid := TRUE;
993
994 SELECT allow_awt_flag
995 INTO l_asp_awt_flag
996 FROM ap_system_parameters
997 WHERE org_id = p_org_id;
998
999 IF l_asp_awt_flag = 'N'
1000 AND p_allow_awt_flag = 'Y' THEN
1001 x_valid := FALSE;
1002 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
1003 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','ALLOW_AWT_FLAG' );
1004 FND_MSG_PUB.ADD;
1005 END IF;
1006
1007 END Chk_allow_awt_flag;
1008
1009 --
1010 -- Check if the awt_group_id and name are in sync.
1011 --
1012
1013 PROCEDURE Chk_awt_grp_id_name(p_awt_id IN OUT NOCOPY NUMBER,
1014 p_awt_name IN VARCHAR2,
1015 p_allow_awt_flag IN VARCHAR2,
1016 x_valid OUT NOCOPY BOOLEAN
1017 ) IS
1018
1019 l_dummy_id AP_AWT_GROUPS.group_id%TYPE;
1020 l_dummy_name AP_AWT_GROUPS.name%TYPE;
1021
1022 BEGIN
1023 x_valid := TRUE;
1024
1025 IF p_allow_awt_flag = 'N' THEN
1026 BEGIN
1027 If p_awt_id is NOT NULL then
1028
1029 x_valid := FALSE;
1030 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMNS_INCONSISTENT');
1031 FND_MESSAGE.SET_TOKEN('ID','ALLOW_AWT_FLAG');
1032 FND_MESSAGE.SET_TOKEN('NAME','AWT_GROUP_ID');
1033 FND_MSG_PUB.ADD;
1034 Elsif p_awt_name is NOT NULL Then
1035
1036 x_valid := FALSE;
1037 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMNS_INCONSISTENT');
1038 FND_MESSAGE.SET_TOKEN('ID','ALLOW_AWT_FLAG');
1039 FND_MESSAGE.SET_TOKEN('NAME','AWT_GROUP_NAME');
1040 FND_MSG_PUB.ADD;
1041 End If;
1042
1043 END;
1044
1045 ELSIF (p_allow_awt_flag = 'Y' and (p_awt_id is NOT NULL and p_awt_name is NULL)) THEN
1046 BEGIN
1047
1048 SELECT name
1049 INTO l_dummy_name
1050 FROM AP_AWT_GROUPS
1051 WHERE group_id = p_awt_id
1052 AND sysdate < nvl(inactive_date, sysdate + 1);
1053
1054 EXCEPTION
1055 -- Trap validation error
1056 WHEN NO_DATA_FOUND THEN
1057 x_valid := FALSE;
1058 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
1059 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','AWT_GROUP_ID' );
1060 FND_MSG_PUB.ADD;
1061 END;
1062
1063 ELSIF (p_allow_awt_flag = 'Y' and (p_awt_id is NOT NULL and p_awt_name is NOT NULL)) THEN
1064 BEGIN
1065
1066 SELECT group_id
1067 INTO l_dummy_id
1068 FROM AP_AWT_GROUPS
1069 WHERE group_id = p_awt_id
1070 AND name = p_awt_name
1071 AND sysdate < nvl(inactive_date, sysdate + 1);
1072
1073 EXCEPTION
1074 -- Trap validation error
1075 WHEN NO_DATA_FOUND THEN
1076 x_valid := FALSE;
1077 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMNS_NOT_MATCHED');
1078 FND_MESSAGE.SET_TOKEN('ID','AWT_GROUP_ID');
1079 FND_MESSAGE.SET_TOKEN('NAME','AWT_GROUP_NAME');
1080 FND_MSG_PUB.ADD;
1081 END;
1082
1083 ELSIF (p_allow_awt_flag = 'Y' and (p_awt_id is NULL and p_awt_name is NOT NULL)) THEN
1084 BEGIN
1085
1086 SELECT group_id
1087 INTO p_awt_id
1088 FROM AP_AWT_GROUPS
1089 WHERE name = p_awt_name
1090 AND sysdate < nvl(inactive_date, sysdate + 1);
1091
1092 EXCEPTION
1093 -- Trap validation error
1094 WHEN NO_DATA_FOUND THEN
1095 x_valid := FALSE;
1096 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
1097 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','AWT_GROUP_NAME' );
1098 FND_MSG_PUB.ADD;
1099 END;
1100
1101 END IF;
1102
1103 END Chk_awt_grp_id_name;
1104
1105 --
1106 -- Check if the Hold_by is valid
1107 --
1108 PROCEDURE Check_Valid_Hold_by(p_hold_by IN NUMBER,
1109 x_valid OUT NOCOPY BOOLEAN
1110 ) IS
1111 l_dummy hr_employees_current_v.employee_id%TYPE;
1112
1113 BEGIN
1114 x_valid := TRUE;
1115
1116 SELECT employee_id
1117 INTO l_dummy
1118 FROM hr_employees_current_v
1119 WHERE employee_id = p_hold_by;
1120
1121
1122 EXCEPTION
1123 -- Trap validation error
1124 WHEN NO_DATA_FOUND THEN
1125 x_valid := FALSE;
1126
1127 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
1128 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','HOLD_BY' );
1129 FND_MSG_PUB.ADD;
1130 END Check_Valid_Hold_by;
1131
1132 --
1133 -- Check that terms_id and terms_name are in sync.
1134 --
1135
1136 PROCEDURE Check_terms_id_code(p_terms_id IN OUT NOCOPY NUMBER,
1137 p_terms_name IN VARCHAR2,
1138 p_default_terms_id IN NUMBER,
1139 x_valid OUT NOCOPY BOOLEAN
1140 ) IS
1141
1142 l_terms_id AP_TERMS_TL.term_id%TYPE;
1143 l_terms_name AP_TERMS_TL.name%TYPE;
1144
1145 BEGIN
1146 x_valid := TRUE;
1147
1148 IF (p_terms_id is NULL and p_terms_name is NULL) THEN
1149 p_terms_id := p_default_terms_id;
1150
1151 ELSIF (p_terms_id is NOT NULL and p_terms_name is NULL) THEN
1152 BEGIN
1153 SELECT name
1154 INTO l_terms_name
1155 FROM AP_TERMS_TL
1156 WHERE term_id = p_terms_id
1157 AND language = userenv('LANG')
1158 AND sysdate < nvl(end_date_active, sysdate+1);
1159
1160 EXCEPTION
1161 -- Trap validation error
1162 WHEN NO_DATA_FOUND THEN
1163 x_valid := FALSE;
1164
1165 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
1166 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','TERMS_ID' );
1167 FND_MSG_PUB.ADD;
1168 END;
1169
1170 ELSIF (p_terms_id is NOT NULL and p_terms_name is NOT NULL) THEN
1171 BEGIN
1172 SELECT term_id
1173 INTO l_terms_id
1174 FROM AP_TERMS_TL
1175 WHERE term_id = p_terms_id
1176 AND name = p_terms_name
1177 AND language = userenv('LANG')
1178 AND sysdate < nvl(end_date_active, sysdate+1);
1179
1180 EXCEPTION
1181 -- Trap validation error
1182 WHEN NO_DATA_FOUND THEN
1183 x_valid := FALSE;
1184
1185 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMNS_NOT_MATCHED');
1186 FND_MESSAGE.SET_TOKEN('ID','TERMS_ID');
1187 FND_MESSAGE.SET_TOKEN('NAME','TERMS_NAME');
1188 FND_MSG_PUB.ADD;
1189 END;
1190
1191 ELSIF (p_terms_id is NULL and p_terms_name is NOT NULL) THEN
1192 BEGIN
1193 SELECT term_id
1194 INTO p_terms_id
1195 FROM AP_TERMS_TL
1196 WHERE name = p_terms_name
1197 AND language = userenv('LANG')
1198 AND sysdate < nvl(end_date_active, sysdate+1);
1199
1200 EXCEPTION
1201 -- Trap validation error
1202 WHEN NO_DATA_FOUND THEN
1203 x_valid := FALSE;
1204
1205 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
1206 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','TERMS_NAME' );
1207 FND_MSG_PUB.ADD;
1208 END;
1209
1210 END IF;
1211
1212 END Check_terms_id_code;
1213
1214 --
1215 -- Check that dist_set_id and name are in sync.
1216
1217 PROCEDURE Check_dist_set_id_name(p_dist_id IN OUT NOCOPY NUMBER,
1218 p_dist_name IN VARCHAR2,
1219 p_default_dist_id IN NUMBER,
1220 x_valid OUT NOCOPY BOOLEAN
1221 ) IS
1222
1223 l_dist_id AP_DISTRIBUTION_SETS_ALL.distribution_set_id%TYPE;
1224 l_dist_name AP_DISTRIBUTION_SETS_ALL.distribution_set_name%TYPE;
1225
1226 BEGIN
1227 x_valid := TRUE;
1228
1229 IF (p_dist_id is NULL and p_dist_name is NULL) THEN
1230
1231 p_dist_id := p_default_dist_id;
1232
1233 ELSIF p_dist_id is NOT NULL and p_dist_name is NOT NULL THEN
1234 BEGIN
1235 SELECT distribution_set_id
1236 INTO l_dist_id
1237 FROM AP_DISTRIBUTION_SETS_ALL
1238 WHERE distribution_set_id = p_dist_id
1239 AND distribution_set_name = p_dist_name
1240 AND sysdate < nvl(inactive_date, sysdate+1);
1241
1242 EXCEPTION
1243 -- Trap validation error
1244 WHEN NO_DATA_FOUND THEN
1245 x_valid := FALSE;
1246
1247 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMNS_NOT_MATCHED');
1248 FND_MESSAGE.SET_TOKEN('ID','DISTRIBUTION_SET_ID');
1249 FND_MESSAGE.SET_TOKEN('NAME','DISTRIBUTION_SET_NAME');
1250 FND_MSG_PUB.ADD;
1251 END;
1252
1253 ELSIF p_dist_id is NULL and p_dist_name is NOT NULL THEN
1254 BEGIN
1255 SELECT distribution_set_id
1256 INTO p_dist_id
1257 FROM AP_DISTRIBUTION_SETS_ALL
1258 WHERE distribution_set_name = p_dist_name
1259 AND sysdate < nvl(inactive_date, sysdate+1);
1260
1261 EXCEPTION
1262 -- Trap validation error
1263 WHEN NO_DATA_FOUND THEN
1264 x_valid := FALSE;
1265
1266 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
1267 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','DISTRIBUTION_SET_NAME' );
1268 FND_MSG_PUB.ADD;
1269 END;
1270
1271 ELSIF p_dist_id is NOT NULL and p_dist_name is NULL THEN
1272 BEGIN
1273 SELECT distribution_set_name
1274 INTO l_dist_name
1275 FROM AP_DISTRIBUTION_SETS_ALL
1276 WHERE distribution_set_id = p_dist_id
1277 AND sysdate < nvl(inactive_date, sysdate+1);
1278
1279 EXCEPTION
1280 -- Trap validation error
1281 WHEN NO_DATA_FOUND THEN
1282 x_valid := FALSE;
1283
1284 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
1285 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','DISTRIBUTION_SET_ID' );
1286 FND_MSG_PUB.ADD;
1287 END;
1288
1289 END IF;
1290
1291 END Check_dist_set_id_name;
1292
1293 --
1294 -- Check that ship_to_location_id and ship_to_location_code are in sync.
1295 --
1296
1297 PROCEDURE Check_ship_locn_id_code(p_ship_location_id IN OUT NOCOPY NUMBER,
1298 p_ship_location_code IN VARCHAR2,
1299 p_default_ship_to_loc_id IN NUMBER,
1300 x_valid OUT NOCOPY BOOLEAN
1301 ) IS
1302
1303 l_ship_locn_id HR_LOCATIONS_ALL.ship_to_location_id%TYPE;
1304 l_ship_locn_code HR_LOCATIONS_ALL.location_code%TYPE;
1305
1306 BEGIN
1307 x_valid := TRUE;
1308
1309 IF (p_ship_location_id is NULL and p_ship_location_code is NULL) THEN
1310
1311 p_ship_location_id := p_default_ship_to_loc_id;
1312
1313 ELSIF (p_ship_location_id is NOT NULL and p_ship_location_code is NULL) THEN
1314
1315 BEGIN
1316 SELECT lot.location_code
1317 INTO l_ship_locn_code
1318 FROM HR_LOCATIONS_ALL loc, HR_LOCATIONS_ALL_TL lot
1319 WHERE loc.location_id = p_ship_location_id
1320 AND sysdate < nvl(loc.inactive_date, sysdate + 1)
1321 AND loc.location_id = lot.location_id
1322 AND lot.language = userenv('LANG')
1323 AND (nvl(loc.business_group_id,nvl(hr_general.get_business_group_id,-99))=
1324 nvl(hr_general.get_business_group_id,-99))
1325 AND loc.ship_to_site_flag = 'Y';
1326
1327 EXCEPTION
1328 -- Trap validation error
1329 WHEN NO_DATA_FOUND THEN
1330 x_valid := FALSE;
1331
1332 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
1333 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','SHIP_TO_LOCATION_ID' );
1334 FND_MSG_PUB.ADD;
1335 END;
1336
1337 ELSIF (p_ship_location_id is NOT NULL and p_ship_location_code is NOT NULL) THEN
1338 BEGIN
1339 SELECT loc.location_id
1340 INTO l_ship_locn_id
1341 FROM HR_LOCATIONS_ALL loc, HR_LOCATIONS_ALL_TL lot
1342 WHERE lot.location_code = p_ship_location_code
1343 AND loc.location_id = p_ship_location_id
1344 AND sysdate < nvl(loc.inactive_date, sysdate + 1)
1345 AND loc.location_id = lot.location_id
1346 AND lot.language = userenv('LANG')
1347 AND (nvl(loc.business_group_id,nvl(hr_general.get_business_group_id,-99))=
1348 nvl(hr_general.get_business_group_id,-99))
1349 AND loc.ship_to_site_flag = 'Y';
1350
1351 EXCEPTION
1352 -- Trap validation error
1353 WHEN NO_DATA_FOUND THEN
1354 x_valid := FALSE;
1355
1356 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMNS_NOT_MATCHED');
1357 FND_MESSAGE.SET_TOKEN('ID','SHIP_TO_LOCATION_ID');
1358 FND_MESSAGE.SET_TOKEN('NAME','SHIP_TO_LOCATION_CODE');
1359 FND_MSG_PUB.ADD;
1360 END;
1361
1362 ELSIF (p_ship_location_id is NULL and p_ship_location_code is NOT NULL) THEN
1363 BEGIN
1364 SELECT loc.location_id
1365 INTO p_ship_location_id
1366 FROM HR_LOCATIONS_ALL loc, HR_LOCATIONS_ALL_TL lot
1367 WHERE lot.location_code = p_ship_location_code
1368 AND sysdate < nvl(loc.inactive_date, sysdate + 1)
1369 AND loc.location_id = lot.location_id
1370 AND lot.language = userenv('LANG')
1371 AND (nvl(loc.business_group_id,nvl(hr_general.get_business_group_id,-99))=
1372 nvl(hr_general.get_business_group_id,-99))
1373 AND loc.ship_to_site_flag = 'Y';
1374
1375 EXCEPTION
1376 -- Trap validation error
1377 WHEN NO_DATA_FOUND THEN
1378 x_valid := FALSE;
1379
1380 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
1381 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','SHIP_TO_LOCATION_CODE' );
1382 FND_MSG_PUB.ADD;
1383 END;
1384
1385 END IF;
1386
1387 END Check_ship_locn_id_code;
1388
1389 --
1390 -- Check that bill_to_location_id and bill_to_location_code are in sync.
1391 --
1392
1393 PROCEDURE Check_bill_locn_id_code(p_bill_location_id IN OUT NOCOPY NUMBER,
1394 p_bill_location_code IN VARCHAR2,
1395 p_default_bill_to_loc_id IN NUMBER,
1396 x_valid OUT NOCOPY BOOLEAN
1397 ) IS
1398
1399 l_bill_locn_id HR_LOCATIONS_ALL.location_id%TYPE;
1400 l_bill_locn_code HR_LOCATIONS_ALL.location_code%TYPE;
1401
1402 BEGIN
1403 x_valid := TRUE;
1404
1405 IF (p_bill_location_id is NULL and p_bill_location_code is NULL) THEN
1406 p_bill_location_id := p_default_bill_to_loc_id;
1407
1408 ELSIF (p_bill_location_id is NOT NULL and p_bill_location_code is NULL) THEN
1409 BEGIN
1410 SELECT lot.location_code
1411 INTO l_bill_locn_code
1412 FROM HR_LOCATIONS_ALL loc, HR_LOCATIONS_ALL_TL lot
1413 WHERE loc.location_id = p_bill_location_id
1414 AND sysdate < nvl(loc.inactive_date, sysdate + 1)
1415 AND loc.location_id = lot.location_id
1416 AND lot.language = userenv('LANG')
1417 AND (nvl(loc.business_group_id,nvl(hr_general.get_business_group_id,-99))=
1418 nvl(hr_general.get_business_group_id,-99))
1419 AND loc.bill_to_site_flag = 'Y';
1420
1421 EXCEPTION
1422 -- Trap validation error
1423 WHEN NO_DATA_FOUND THEN
1424 x_valid := FALSE;
1425
1426 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
1427 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','BILL_TO_LOCATION_ID' );
1428 FND_MSG_PUB.ADD;
1429 END;
1430
1431 ELSIF p_bill_location_id is NOT NULL and p_bill_location_code is NOT NULL THEN
1432
1433 BEGIN
1434 SELECT loc.location_id
1435 INTO l_bill_locn_id
1436 FROM HR_LOCATIONS_ALL loc, HR_LOCATIONS_ALL_TL lot
1437 WHERE loc.location_id = p_bill_location_id
1438 AND lot.location_code = p_bill_location_code
1439 AND sysdate < nvl(loc.inactive_date, sysdate + 1)
1440 AND loc.location_id = lot.location_id
1441 AND lot.language = userenv('LANG')
1442 AND (nvl(loc.business_group_id,nvl(hr_general.get_business_group_id,-99))=
1443 nvl(hr_general.get_business_group_id,-99))
1444 AND loc.bill_to_site_flag = 'Y';
1445
1446 EXCEPTION
1447 -- Trap validation error
1448 WHEN NO_DATA_FOUND THEN
1449 x_valid := FALSE;
1450
1451 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMNS_NOT_MATCHED');
1452 FND_MESSAGE.SET_TOKEN('ID','BILL_TO_LOCATION_ID');
1453 FND_MESSAGE.SET_TOKEN('NAME','BILL_TO_LOCATION_CODE');
1454 FND_MSG_PUB.ADD;
1455 END;
1456
1457 ELSIF p_bill_location_id is NULL and p_bill_location_code is NOT NULL THEN
1458
1459 BEGIN
1460 SELECT loc.location_id
1461 INTO p_bill_location_id
1462 FROM HR_LOCATIONS_ALL loc, HR_LOCATIONS_ALL_TL lot
1463 WHERE lot.location_code = p_bill_location_code
1464 AND sysdate < nvl(loc.inactive_date, sysdate + 1)
1465 AND loc.location_id = lot.location_id
1466 AND lot.language = userenv('LANG')
1467 AND (nvl(loc.business_group_id,nvl(hr_general.get_business_group_id,-99))=
1468 nvl(hr_general.get_business_group_id,-99))
1469 AND loc.bill_to_site_flag = 'Y';
1470
1471 EXCEPTION
1472 -- Trap validation error
1473 WHEN NO_DATA_FOUND THEN
1474 x_valid := FALSE;
1475
1476 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
1477 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','BILL_TO_LOCATION_CODE' );
1478 FND_MSG_PUB.ADD;
1479 END;
1480
1481 END IF;
1482
1483 END Check_bill_locn_id_code;
1484
1485 --
1486 -- Check if the Default_pay_site_id is valid
1487 --
1488 PROCEDURE Check_Default_pay_site(p_default_pay_site_id IN NUMBER,
1489 p_vendor_id IN NUMBER,
1490 p_org_id IN NUMBER,
1491 x_valid OUT NOCOPY BOOLEAN
1492 ) IS
1493 l_dummy po_vendor_sites_all.vendor_site_id%TYPE;
1494
1495 BEGIN
1496 x_valid := TRUE;
1497
1498 SELECT vendor_site_id
1499 INTO l_dummy
1500 FROM po_vendor_sites_all
1501 WHERE vendor_id = p_vendor_id
1502 AND vendor_site_id = p_default_pay_site_id
1503 AND org_id = p_org_id
1504 AND nvl(inactive_date, sysdate +1 ) > sysdate
1505 AND pay_site_flag = 'Y';
1506
1507
1508 EXCEPTION
1509 -- Trap validation error
1510 WHEN NO_DATA_FOUND THEN
1511 x_valid := FALSE;
1512
1513 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
1514 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','DEFAULT_PAY_SITE_ID' );
1515 FND_MSG_PUB.ADD;
1516 END Check_Default_pay_site;
1517
1518 --
1519 -- This procedure should ensure the value for 'state' exists on the
1520 -- target database.
1521 --
1522 PROCEDURE state_valid(p_state IN VARCHAR2,
1523 p_valid OUT NOCOPY BOOLEAN
1524 ) IS
1525 l_count NUMBER := 0;
1526
1527 BEGIN
1528 p_valid := TRUE;
1529
1530 SELECT count(*)
1531 INTO l_count
1532 FROM ap_income_tax_regions
1533 WHERE region_short_name = p_state
1534 AND sysdate < nvl(inactive_date,sysdate+1);
1535
1536 IF (l_count = 0) THEN
1537 FND_MESSAGE.SET_NAME('SQLAP','AP_API_INVALID_STATE');
1538 FND_MSG_PUB.ADD;
1539 p_valid := FALSE;
1540 END IF;
1541
1542 END state_valid;
1543
1544 --
1545 -- Check that Org_Id and Operating Unit name are in sync
1546 -- Modified for 11i Import functionality
1547
1548 PROCEDURE Check_org_id_name(p_org_id IN OUT NOCOPY NUMBER,
1549 p_org_name IN VARCHAR2,
1550 p_int_table IN VARCHAR2,
1551 p_int_key IN NUMBER,
1552 x_valid OUT NOCOPY BOOLEAN
1553 ) IS
1554
1555 l_org_id HR_OPERATING_UNITS.organization_id%TYPE;
1556 l_org_name HR_OPERATING_UNITS.name%TYPE;
1557 l_api_name CONSTANT VARCHAR2(30) := 'Check_Org_Id_Name';
1558 BEGIN
1559 x_valid := TRUE;
1560
1561 IF (p_org_id is NOT NULL and p_org_name is NOT NULL) THEN
1562 BEGIN
1563 SELECT organization_id
1564 INTO l_org_id
1565 FROM HR_OPERATING_UNITS
1566 WHERE organization_id = p_org_id
1567 AND name = p_org_name
1568 AND sysdate < nvl(date_to, sysdate + 1);
1569
1570 EXCEPTION
1571 -- Trap validation error
1572 WHEN NO_DATA_FOUND THEN
1573 x_valid := FALSE;
1574 IF g_source = 'IMPORT' THEN
1575 IF (Insert_Rejections(
1576 p_int_table,
1577 p_int_key,
1578 'AP_INCONSISTENT_ORG_INFO',
1579 g_user_id,
1580 g_login_id,
1581 'Check_Org_Id_Name') <> TRUE) THEN
1582 --
1583 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
1584 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'Parameters: '
1585 ||' P_Org_Id: '|| p_org_id
1586 ||', P_Org_Name: '||p_org_name
1587 ||', P_Int_Table: '||p_int_table
1588 ||', P_Int_Key: '||p_int_key);
1589 END IF;
1590 END IF;
1591 ELSE
1592 -- Bug 5491139 hkaniven start --
1593 FND_MESSAGE.SET_NAME('SQLAP','AP_INCONSISTENT_ORG_INFO');
1594 FND_MSG_PUB.ADD;
1595 -- Bug 5491139 hkaniven end --
1596 END IF;
1597 END;
1598
1599 ELSIF (p_org_id is NULL and p_org_name is NOT NULL) THEN
1600
1601 BEGIN
1602 SELECT organization_id
1603 INTO p_org_id
1604 FROM HR_OPERATING_UNITS
1605 WHERE name = p_org_name
1606 AND sysdate < nvl(date_to, sysdate + 1);
1607
1608 EXCEPTION
1609 -- Trap validation error
1610 WHEN NO_DATA_FOUND THEN
1611 x_valid := FALSE;
1612 IF g_source = 'IMPORT' THEN
1613 IF (Insert_Rejections(
1614 p_int_table,
1615 p_int_key,
1616 'AP_INVALID_ORG_INFO',
1617 g_user_id,
1618 g_login_id,
1619 'Check_Org_Id_Name') <> TRUE) THEN
1620 --
1621 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
1622 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'Parameters: '
1623 ||' P_Org_Id: '|| p_org_id
1624 ||', P_Org_Name: '||p_org_name
1625 ||', P_Int_Table: '||p_int_table
1626 ||', P_Int_Key: '||p_int_key);
1627 END IF;
1628 END IF;
1629 ELSE
1630 -- Bug 5491139 hkaniven start --
1631 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_ORG_INFO');
1632 FND_MSG_PUB.ADD;
1633 -- Bug 5491139 hkaniven end --
1634 END IF;
1635 END;
1636
1637 ELSIF (p_org_id is NOT NULL and p_org_name is NULL) THEN
1638
1639 BEGIN
1640 SELECT name
1641 INTO l_org_name
1642 FROM HR_OPERATING_UNITS
1643 WHERE organization_id = p_org_id
1644 AND sysdate < nvl(date_to, sysdate + 1);
1645
1646 EXCEPTION
1647 -- Trap validation error
1648 WHEN NO_DATA_FOUND THEN
1649 x_valid := FALSE;
1650 IF g_source = 'IMPORT' THEN
1651 IF (Insert_Rejections(
1652 p_int_table,
1653 p_int_key,
1654 'AP_INVALID_ORG_INFO',
1655 g_user_id,
1656 g_login_id,
1657 'Check_Org_Id_Name') <> TRUE) THEN
1658 --
1659 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
1660 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'Parameters: '
1661 ||' P_Org_Id: '|| p_org_id
1662 ||', P_Org_Name: '||p_org_name
1663 ||', P_Int_Table: '||p_int_table
1664 ||', P_Int_Key: '||p_int_key);
1665 END IF;
1666 END IF;
1667 ELSE
1668 -- Bug 5491139 hkaniven start --
1669 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_ORG_INFO');
1670 FND_MSG_PUB.ADD;
1671 -- Bug 5491139 hkaniven end --
1672 END IF;
1673 END;
1674 END IF;
1675
1676 END Check_org_id_name;
1677
1678 PROCEDURE Check_pay_on_rec_sum_code(p_pay_on_code IN VARCHAR2,
1679 p_pay_on_receipt_summary_code IN OUT NOCOPY VARCHAR2,
1680 x_valid OUT NOCOPY BOOLEAN
1681 ) IS
1682
1683 e_apps_exception EXCEPTION;
1684
1685 BEGIN
1686 x_valid := TRUE;
1687
1688 IF p_pay_on_receipt_summary_code is NULL THEN
1689 p_pay_on_receipt_summary_code := 'PAY_SITE';
1690
1691 ELSIF p_pay_on_receipt_summary_code is NOT NULL THEN
1692
1693 IF ((p_pay_on_code = 'RECEIPT') AND (p_pay_on_receipt_summary_code not IN
1694 ('PACKING_SLIP','PAY_SITE','RECEIPT'))) THEN
1695
1696 Raise e_apps_exception;
1697
1698 ELSIF ((p_pay_on_code = 'USE') AND (p_pay_on_receipt_summary_code not IN
1699 ('CONSUMPTION_ADVICE','PAY_SITE'))) THEN
1700
1701 Raise e_apps_exception;
1702
1703 ELSIF ((p_pay_on_code = 'RECEIPT_AND_USE') AND (p_pay_on_receipt_summary_code not IN
1704 ('PAY_SITE'))) THEN
1705
1706 Raise e_apps_exception;
1707
1708 END IF;
1709
1710 END IF;
1711
1712 EXCEPTION
1713 WHEN e_apps_exception THEN
1714 x_valid := FALSE;
1715 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMNS_INCONSISTENT');
1716 FND_MESSAGE.SET_TOKEN('ID','PAY_ON_CODE');
1717 FND_MESSAGE.SET_TOKEN('NAME','PAY_ON_RECEIPT_SUMMARY_CODE');
1718 FND_MSG_PUB.ADD;
1719 END Check_pay_on_rec_sum_code;
1720
1721 --
1722 -- Check if the Shipping_Control value is valid
1723 --
1724
1725 PROCEDURE Check_Shipping_Control(p_shipping_control IN VARCHAR2,
1726 x_valid OUT NOCOPY BOOLEAN
1727 ) IS
1728
1729 BEGIN
1730 x_valid := TRUE;
1731
1732 IF upper(p_shipping_control) NOT IN ('SUPPLIER','BUYER') THEN
1733
1734 x_valid := FALSE;
1735
1736 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
1737 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','SHIPPING_CONTROL' );
1738 FND_MSG_PUB.ADD;
1739 END IF;
1740
1741 END Check_Shipping_Control;
1742
1743 --
1744 -- Check the pay_on_code values
1745 --
1746 PROCEDURE Check_Valid_pay_on_code(p_pay_on_code IN VARCHAR2,
1747 p_purchasing_site_flag IN VARCHAR2 DEFAULT NULL,
1748 p_pay_site_flag IN VARCHAR2,
1749 p_default_pay_site_id IN NUMBER DEFAULT NULL,
1750 x_valid OUT NOCOPY BOOLEAN
1751 ) IS
1752
1753 l_dummy VARCHAR2(1);
1754 l_default_pay_site_id NUMBER;
1755
1756 BEGIN
1757 x_valid := TRUE;
1758 -- Bug #7197985 Checking the default pay site id
1759 IF(p_default_pay_site_id IS NULL OR p_default_pay_site_id = ap_null_num) THEN
1760 l_default_pay_site_id := NULL;
1761 ELSE
1762 l_default_pay_site_id := p_default_pay_site_id;
1763 END IF;
1764
1765
1766 IF (nvl(p_purchasing_site_flag,'N') = 'N') THEN
1767 x_valid := FALSE;
1768 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMNS_INCONSISTENT');
1769 FND_MESSAGE.SET_TOKEN('ID','PAY_ON_CODE');
1770 FND_MESSAGE.SET_TOKEN('NAME','PURCHASING_SITE_FLAG');
1771 FND_MSG_PUB.ADD;
1772 ELSIF (nvl(p_purchasing_site_flag,'N') = 'Y') THEN
1773
1774 If p_pay_on_code IN ('RECEIPT','USE','RECEIPT_AND_USE') Then
1775 l_dummy := 'Y';
1776 Else l_dummy := 'N';
1777 End If;
1778
1779 IF l_dummy = 'N' THEN
1780 x_valid := FALSE;
1781 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
1782 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','PAY_ON_CODE' );
1783 FND_MSG_PUB.ADD;
1784 ELSIF (p_pay_site_flag = 'N' and l_default_pay_site_id IS NULL) THEN
1785 x_valid := FALSE;
1786 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMNS_INCONSISTENT');
1787 FND_MESSAGE.SET_TOKEN('ID','PAY_ON_CODE');
1788 FND_MESSAGE.SET_TOKEN('NAME','PAY_SITE_FLAG');
1789 FND_MSG_PUB.ADD;
1790 END IF;
1791
1792 END IF;
1793
1794 END Check_Valid_pay_on_Code;
1795
1796 --
1797 -- This procedure should ensure the value for 'pay_on_receipt_summary_code'
1798 -- exists on the target database
1799 --
1800 PROCEDURE pay_on_receipt_summary_valid( p_pay_on_receipt_summary_code IN VARCHAR2,
1801 p_pay_on_code IN VARCHAR2,
1802 p_valid OUT NOCOPY BOOLEAN
1803 ) IS
1804 l_count NUMBER := 0;
1805
1806 BEGIN
1807 p_valid := TRUE;
1808
1809 SELECT count(*)
1810 INTO l_count
1811 FROM po_lookup_codes
1812 WHERE lookup_code = p_pay_on_receipt_summary_code
1813 AND lookup_type = 'ERS INVOICE_SUMMARY'
1814 AND sysdate < nvl(inactive_date,sysdate+1)
1815 AND (lookup_code = 'PAY_SITE'
1816 OR (p_pay_on_code = 'USE' AND lookup_code = 'CONSUMPTION_ADVICE')
1817 OR (p_pay_on_code = 'RECEIPT' and lookup_code IN ('RECEIPT','PACKING_SLIP'))
1818 );
1819
1820 IF (l_count = 0) THEN
1821 FND_MESSAGE.SET_NAME('SQLAP','AP_API_INVALID_RECPT_SUMM');
1822 FND_MSG_PUB.ADD;
1823 p_valid := FALSE;
1824 END IF;
1825
1826 END pay_on_receipt_summary_valid;
1827
1828 --
1829 -- Check for matching address
1830 --
1831
1832 PROCEDURE Check_Valid_Location(p_party_site_id IN OUT NOCOPY VARCHAR2,
1833 p_address_line1 IN VARCHAR2,
1834 p_address_line2 IN VARCHAR2,
1835 p_address_line3 IN VARCHAR2,
1836 p_address_line4 IN VARCHAR2,
1837 p_city IN VARCHAR2,
1838 p_state IN VARCHAR2,
1839 p_zip IN VARCHAR2,
1840 p_province IN VARCHAR2,
1841 p_country IN VARCHAR2,
1842 p_county IN VARCHAR2,
1843 p_language IN VARCHAR2,
1844 p_address_style IN VARCHAR2,
1845 p_vendor_id IN NUMBER,
1846 x_location_id OUT NOCOPY NUMBER,
1847 x_valid OUT NOCOPY BOOLEAN,
1848 x_loc_count OUT NOCOPY NUMBER -- Bug 7429668
1849 ) IS
1850
1851 l_dummy NUMBER;
1852 l_sync_count NUMBER;
1853
1854 BEGIN
1855 x_valid := TRUE;
1856 x_loc_count := 0; -- Bug 7429668
1857
1858 --Open Issue 2 should they match if they are null?
1859 IF p_party_site_id IS NOT NULL THEN
1860 SELECT hl.location_id
1861 INTO x_location_id
1862 FROM HZ_Locations hl, HZ_Party_Sites hps,
1863 fnd_languages fl
1864 WHERE hl.language = fl.language_code(+) AND
1865 nvl(upper(hl.country), 'dummy') =
1866 nvl(upper(p_country), 'dummy') AND
1867 nvl(upper(hl.address1), 'dummy') =
1868 nvl(upper(p_address_line1), 'dummy') AND
1869 nvl(upper(hl.address2), 'dummy') =
1870 nvl(upper(p_address_line2), 'dummy') AND
1871 nvl(upper(hl.address3), 'dummy') =
1872 nvl(upper(p_address_line3), 'dummy') AND
1873 nvl(upper(hl.address4), 'dummy') =
1874 nvl(upper(p_address_line4), 'dummy') AND
1875 nvl(upper(hl.city), 'dummy') = nvl(upper(p_city), 'dummy') AND
1876 nvl(upper(hl.state), 'dummy') = nvl(upper(p_state), 'dummy') AND
1877 nvl(upper(hl.postal_code), 'dummy') = nvl(upper(p_zip), 'dummy') AND
1878 nvl(upper(hl.province), 'dummy') =
1879 nvl(upper(p_province), 'dummy') AND
1880 nvl(upper(hl.county), 'dummy') = nvl(upper(p_county), 'dummy') AND
1881 nvl(upper(fl.nls_language), 'dummy') =
1882 nvl(upper(p_language), 'dummy') AND
1883 nvl(upper(hl.address_style), 'dummy') =
1884 nvl(upper(p_address_style), 'dummy') AND
1885 hl.location_id = hps.location_id AND
1886 hps.party_site_id = p_party_site_id ;
1887 ELSE
1888
1889 SELECT hl.location_id, hps.party_site_id
1890 INTO x_location_id, p_party_site_id
1891 FROM HZ_Locations hl,
1892 HZ_Party_Sites hps,
1893 po_vendors pv,
1894 fnd_languages fl
1895 WHERE nvl(upper(hl.country), 'dummy') =
1896 nvl(upper(p_country), 'dummy') AND
1897 nvl(upper(hl.address1), 'dummy') =
1898 nvl(upper(p_address_line1), 'dummy') AND
1899 nvl(upper(hl.address2), 'dummy') =
1900 nvl(upper(p_address_line2), 'dummy') AND
1901 nvl(upper(hl.address3), 'dummy') =
1902 nvl(upper(p_address_line3), 'dummy') AND
1903 nvl(upper(hl.address4), 'dummy') =
1904 nvl(upper(p_address_line4), 'dummy') AND
1905 nvl(upper(hl.city), 'dummy') = nvl(upper(p_city), 'dummy') AND
1906 nvl(upper(hl.state), 'dummy') = nvl(upper(p_state), 'dummy') AND
1907 nvl(upper(hl.postal_code), 'dummy') = nvl(upper(p_zip), 'dummy') AND
1908 nvl(upper(hl.province), 'dummy') =
1909 nvl(upper(p_province), 'dummy') AND
1910 nvl(upper(hl.county), 'dummy') = nvl(upper(p_county), 'dummy') AND
1911 nvl(upper(fl.nls_language), 'dummy') =
1912 nvl(upper(p_language), 'dummy') AND
1913 nvl(upper(hl.address_style), 'dummy') =
1914 nvl(upper(p_address_style), 'dummy') AND
1915 hl.location_id = hps.location_id AND
1916 hps.party_id = pv.party_id AND
1917 pv.vendor_id = p_vendor_id AND
1918 hl.language = fl.language_code(+);
1919 END IF;
1920
1921 IF x_location_id IS NULL THEN
1922 x_valid := FALSE;
1923 END IF;
1924
1925 EXCEPTION
1926 -- Trap validation error
1927 WHEN NO_DATA_FOUND THEN
1928 x_valid := FALSE;
1929 -- Bug 7429668 Trap validation error when more than 1 row is found
1930 WHEN OTHERS THEN
1931 x_valid := FALSE;
1932 x_loc_count := 2;
1933 END Check_Valid_Location;
1934
1935 --
1936 -- Take care of CCID etc. defaulting from Parameters for SITE Import
1937 --
1938 PROCEDURE Default_CCIDs_for_Site(p_org_id IN NUMBER DEFAULT NULL,
1939 p_org_name IN VARCHAR2 DEFAULT NULL,
1940 p_multi_org_flag IN VARCHAR2,
1941 p_accts_pay_ccid IN OUT NOCOPY NUMBER,
1942 p_prepay_ccid IN OUT NOCOPY NUMBER,
1943 p_future_pay_ccid IN OUT NOCOPY NUMBER,
1944 p_rfq_site_flag IN OUT NOCOPY VARCHAR2 ,
1945 p_country_code IN OUT NOCOPY VARCHAR2,
1946 p_ship_via_lookup_code IN OUT NOCOPY VARCHAR2
1947 ) IS
1948
1949 l_rfq_only_site FINANCIALS_SYSTEM_PARAMS_ALL.rfq_only_site_flag%TYPE;
1950 l_accts_pay_ccid FINANCIALS_SYSTEM_PARAMS_ALL.accts_pay_code_combination_id%TYPE;
1951 l_prepay_ccid FINANCIALS_SYSTEM_PARAMS_ALL.prepay_code_combination_id%TYPE;
1952 l_future_pay_ccid FINANCIALS_SYSTEM_PARAMS_ALL.future_dated_payment_ccid%TYPE;
1953 l_home_country_code FINANCIALS_SYSTEM_PARAMS_ALL.vat_country_code%TYPE;
1954 l_default_country_code FINANCIALS_SYSTEM_PARAMS_ALL.vat_country_code%TYPE;
1955
1956 BEGIN
1957
1958 SELECT FIN.rfq_only_site_flag,
1959 FIN.accts_pay_code_combination_id,
1960 FIN.prepay_code_combination_id,
1961 FIN.future_dated_payment_ccid,
1962 fin.vat_country_code,
1963 fin.ship_via_lookup_code
1964 INTO l_rfq_only_site,
1965 l_accts_pay_ccid,
1966 l_prepay_ccid,
1967 l_future_pay_ccid,
1968 l_home_country_code,
1969 p_ship_via_lookup_code
1970 FROM FINANCIALS_SYSTEM_PARAMS_ALL FIN,
1971 HR_OPERATING_UNITS HR
1972 WHERE HR.organization_id = FIN.org_id
1973 AND ( HR.name = p_org_name OR
1974 HR.organization_id = p_org_id);
1975
1976 fnd_profile.get('DEFAULT_COUNTRY',l_default_country_code);
1977 --
1978 --
1979 if ( l_default_country_code is null ) then
1980 p_country_code := l_home_country_code;
1981 end if;
1982
1983 IF p_multi_org_flag = 'Y' THEN
1984
1985 IF p_accts_pay_ccid is NULL THEN
1986 p_accts_pay_ccid := l_accts_pay_ccid;
1987 END IF;
1988
1989 IF p_prepay_ccid is NULL THEN
1990 p_prepay_ccid := l_prepay_ccid;
1991 END IF;
1992
1993 IF p_future_pay_ccid is NULL THEN
1994 p_future_pay_ccid := l_future_pay_ccid;
1995 END IF;
1996
1997 IF p_rfq_site_flag is NULL THEN
1998 p_rfq_site_flag := l_rfq_only_site;
1999 END IF;
2000
2001 END IF;
2002
2003 END Default_CCIDs_for_Site;
2004
2005 --
2006 -- Do some validation checks in Apps and in Interface table
2007 --
2008
2009 PROCEDURE Validate_unique_per_vendor(
2010 p_column_name IN VARCHAR2,
2011 p_vendor_id IN NUMBER,
2012 p_vendor_site_id IN NUMBER DEFAULT NULL,
2013 p_org_id IN NUMBER DEFAULT NULL,
2014 p_org_name IN VARCHAR2 DEFAULT NULL,
2015 x_valid OUT NOCOPY BOOLEAN
2016 )
2017 IS
2018
2019 l_dummy_1 NUMBER;
2020 l_dummy_2 NUMBER;
2021
2022 BEGIN
2023 x_valid := TRUE;
2024
2025 IF p_column_name = 'PRIMARY_PAY_SITE_FLAG' THEN
2026
2027 Begin
2028
2029 SELECT nvl(count(primary_pay_site_flag),0)
2030 INTO l_dummy_1
2031 FROM ap_vendor_sites_v
2032 WHERE nvl(primary_pay_site_flag,'N') = 'Y'
2033 AND vendor_id = p_vendor_id
2034 AND nvl(inactive_date, sysdate + 1) > sysdate
2035 AND nvl(vendor_site_id, -99) <> nvl(p_vendor_site_id, -99);
2036
2037 SELECT count(*)
2038 INTO l_dummy_2
2039 FROM AP_SUPPLIER_SITES_INT
2040 WHERE vendor_id = p_vendor_id
2041 AND nvl(inactive_date ,sysdate+1) > sysdate
2042 AND primary_pay_site_flag = 'Y'
2043 AND (org_id = p_org_id OR
2044 operating_unit_name = p_org_name);
2045
2046 IF (l_dummy_1 > 0 or l_dummy_2 > 1) THEN
2047 x_valid := FALSE;
2048 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
2049 FND_MESSAGE.SET_TOKEN('COLUMN_NAME', p_column_name );
2050 FND_MSG_PUB.ADD;
2051 END IF;
2052
2053 End;
2054 ELSIF p_column_name = 'TAX_REPORTING_SITE_FLAG' THEN
2055
2056 SELECT nvl(count(tax_reporting_site_flag),0)
2057 INTO l_dummy_1
2058 FROM ap_vendor_sites_v
2059 WHERE nvl(tax_reporting_site_flag,'N') = 'Y'
2060 AND vendor_id = p_vendor_id
2061 AND nvl(inactive_date, sysdate + 1) > sysdate
2062 AND nvl(vendor_site_id, -99) <> nvl(p_vendor_site_id, -99);
2063
2064 SELECT count(*)
2065 INTO l_dummy_2
2066 FROM AP_SUPPLIER_SITES_INT
2067 WHERE vendor_id = p_vendor_id
2068 AND nvl(inactive_date ,sysdate+1) > sysdate
2069 AND tax_reporting_site_flag = 'Y'
2070 AND (org_id = p_org_id OR
2071 operating_unit_name = p_org_name);
2072
2073 IF (l_dummy_1 > 0 or l_dummy_2 > 1) THEN
2074 x_valid := FALSE;
2075 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
2076 FND_MESSAGE.SET_TOKEN('COLUMN_NAME', p_column_name );
2077 FND_MSG_PUB.ADD;
2078 END IF;
2079
2080 END IF;
2081
2082 END Validate_unique_per_vendor;
2083
2084 --
2085 -- This procedure should ensure the value for 'country_of_origin_code' exists
2086 -- on the target database
2087 --
2088 PROCEDURE country_of_origin_valid(p_country_of_origin_code IN VARCHAR2,
2089 p_valid OUT NOCOPY BOOLEAN
2090 ) IS
2091 l_count NUMBER := 0;
2092
2093 BEGIN
2094 p_valid := TRUE;
2095
2096 SELECT count(*)
2097 INTO l_count
2098 FROM fnd_territories_vl
2099 WHERE territory_code = p_country_of_origin_code;
2100
2101 IF (l_count = 0) THEN
2102 FND_MESSAGE.SET_NAME('SQLAP','AP_API_INVALID_COUNTRY_OF_ORIG');
2103 FND_MSG_PUB.ADD;
2104
2105 p_valid := FALSE;
2106 END IF;
2107
2108 END country_of_origin_valid;
2109
2110 -- Bug 5100831
2111 -- Added the validations related the Gapless Invoice Numbering Feature.
2112 -- Validations Performed are:
2113 -- 1) If Gapless Invoice Number is Y then Selling Company Identifier should
2114 -- be populated.
2115
2116 PROCEDURE Check_Gapless_Inv_Num
2117 (p_gapless_inv_num_flag IN VARCHAR2,
2118 p_selling_company_identifier IN VARCHAR2,
2119 p_vendor_id IN NUMBER, --Bug5260465
2120 p_valid OUT NOCOPY BOOLEAN
2121 ) IS
2122 l_column_name VARCHAR2(30);
2123 l_vendor_count NUMBER := 0; --Bug5260465
2124
2125
2126 BEGIN
2127
2128 p_valid := TRUE;
2129 l_column_name := 'SELLING_COMPANY_IDENTIFIER';
2130 IF nvl(p_gapless_inv_num_flag,'N') = 'Y' THEN
2131 IF (p_selling_company_identifier IS NULL OR
2132 p_selling_company_identifier = ap_null_char) THEN
2133 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
2134 FND_MESSAGE.SET_TOKEN('COLUMN_NAME', l_column_name);
2135 FND_MSG_PUB.ADD;
2136 p_valid := FALSE;
2137 END IF;
2138 END IF;
2139
2140 --Bug5260465 starts Adding validation if Selling company identifier is unique for supplier
2141 IF p_selling_company_identifier is not null THEN
2142
2143 SELECT COUNT(vendor_id)
2144 INTO l_vendor_count
2145 FROM po_vendor_sites_all
2146 WHERE selling_company_identifier = p_selling_company_identifier
2147 AND vendor_id <> p_vendor_id;
2148
2149 IF l_vendor_count > 0 THEN
2150 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
2151 FND_MESSAGE.SET_TOKEN('COLUMN_NAME', l_column_name);
2152 FND_MSG_PUB.ADD;
2153 p_valid := FALSE;
2154 END IF;
2155
2156 END IF;
2157 --Bud5260465 ends
2158 END Check_Gapless_Inv_Num;
2159
2160 --
2161 -- Check if the Supplier_Notif_Method is valid
2162 --
2163 PROCEDURE Check_Valid_Sup_Notif_Method(p_sup_notif_method IN VARCHAR2,
2164 x_valid OUT NOCOPY BOOLEAN
2165 ) IS
2166
2167 BEGIN
2168 x_valid := TRUE;
2169
2170 IF p_sup_notif_method NOT IN ('EMAIL','PRINT','FAX') THEN
2171
2172 x_valid := FALSE;
2173
2174 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
2175 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','SUPPLIER_NOTIF_METHOD' );
2176 FND_MSG_PUB.ADD;
2177 END IF;
2178
2179 END Check_Valid_Sup_Notif_Method;
2180
2181 --
2182 -- Validate and default Tolerance_Id and Tolerance_Name.
2183 --
2184
2185 PROCEDURE Check_tolerance_id_code(p_tolerance_id IN OUT NOCOPY NUMBER,
2186 p_tolerance_name IN VARCHAR2,
2187 p_org_id IN NUMBER DEFAULT NULL,
2188 p_org_name IN VARCHAR2 DEFAULT NULL,
2189 x_valid OUT NOCOPY BOOLEAN,
2190 p_tolerance_type IN VARCHAR2
2191 ) IS
2192
2193 l_tolerance_id AP_TOLERANCE_TEMPLATES.tolerance_id%TYPE;
2194 l_tolerance_name AP_TOLERANCE_TEMPLATES.tolerance_name%TYPE;
2195 l_default_tolerance AP_TOLERANCE_TEMPLATES.tolerance_id%TYPE;
2196
2197 BEGIN
2198 x_valid := TRUE;
2199
2200 IF (p_org_id is NULL and p_org_name is NULL) THEN
2201
2202 --bug6335105
2203 IF p_tolerance_type = 'QUANTITY' then
2204
2205 SELECT tolerance_id
2206 INTO l_default_tolerance
2207 FROM ap_system_parameters;
2208
2209 ELSE
2210
2211 SELECT services_tolerance_id
2212 INTO l_default_tolerance
2213 FROM ap_system_parameters;
2214
2215 END IF;
2216
2217 ELSE
2218
2219 --bug6335105
2220 IF p_tolerance_type = 'QUANTITY' then
2221
2222 SELECT ASP.tolerance_id
2223 INTO l_default_tolerance
2224 FROM ap_system_parameters_all ASP, HR_OPERATING_UNITS ORG
2225 WHERE ASP.org_id = ORG.organization_id
2226 AND (ORG.organization_id = p_org_id OR
2227 ORG.name = p_org_name);
2228
2229 ELSE
2230
2231 SELECT ASP.services_tolerance_id
2232 INTO l_default_tolerance
2233 FROM ap_system_parameters_all ASP, HR_OPERATING_UNITS ORG
2234 WHERE ASP.org_id = ORG.organization_id
2235 AND (ORG.organization_id = p_org_id OR
2236 ORG.name = p_org_name);
2237
2238 END IF;
2239
2240 END IF;
2241
2242
2243 IF (p_tolerance_id is NULL and p_tolerance_name is NULL) THEN
2244
2245 p_tolerance_id := l_default_tolerance;
2246
2247 ELSIF (p_tolerance_id is NOT NULL and p_tolerance_name is NULL) THEN
2248 BEGIN
2249 SELECT tolerance_name
2250 INTO l_tolerance_name
2251 FROM AP_TOLERANCE_TEMPLATES
2252 WHERE tolerance_id = p_tolerance_id;
2253
2254 EXCEPTION
2255 -- Trap validation error
2256 WHEN NO_DATA_FOUND THEN
2257 x_valid := FALSE;
2258
2259 IF p_tolerance_type = 'QUANTITY' THEN
2260 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
2261 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','TOLERANCE_ID' );
2262 FND_MSG_PUB.ADD;
2263 ELSE
2264 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
2265 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','SERVICES_TOLERANCE_ID' );
2266 FND_MSG_PUB.ADD;
2267 END IF;
2268 END;
2269
2270 ELSIF (p_tolerance_id is NOT NULL and p_tolerance_name is NOT NULL) THEN
2271 BEGIN
2272 SELECT tolerance_id
2273 INTO l_tolerance_id
2274 FROM AP_TOLERANCE_TEMPLATES
2275 WHERE tolerance_id = p_tolerance_id
2276 AND tolerance_name = p_tolerance_name;
2277
2278 EXCEPTION
2279 -- Trap validation error
2280 WHEN NO_DATA_FOUND THEN
2281 x_valid := FALSE;
2282
2283 IF p_tolerance_type = 'QUANTITY' THEN
2284 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMNS_NOT_MATCHED');
2285 FND_MESSAGE.SET_TOKEN('ID','TOLERANCE_ID');
2286 FND_MESSAGE.SET_TOKEN('NAME','TOLERANCE_NAME');
2287 FND_MSG_PUB.ADD;
2288 ELSE
2289 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMNS_NOT_MATCHED');
2290 FND_MESSAGE.SET_TOKEN('ID','SERVICES_TOLERANCE_ID');
2291 FND_MESSAGE.SET_TOKEN('NAME','SERVICES_TOLERANCE_NAME');
2292 FND_MSG_PUB.ADD;
2293 END IF;
2294 END;
2295
2296 ELSIF (p_tolerance_id is NULL and p_tolerance_name is NOT NULL) THEN
2297 BEGIN
2298 SELECT tolerance_id
2299 INTO p_tolerance_id
2300 FROM AP_TOLERANCE_TEMPLATES
2301 WHERE tolerance_name = p_tolerance_name;
2302
2303 EXCEPTION
2304 -- Trap validation error
2305 WHEN NO_DATA_FOUND THEN
2306 x_valid := FALSE;
2307 IF p_tolerance_type = 'QUANTITY' THEN
2308 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
2309 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','TOLERANCE_NAME' );
2310 FND_MSG_PUB.ADD;
2311 ELSE
2312 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
2313 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','SERVICES_TOLERANCE_NAME' );
2314 FND_MSG_PUB.ADD;
2315 END IF;
2316 END;
2317 END IF;
2318
2319 END Check_tolerance_id_code;
2320
2321 --
2322 -- Check if ship_via_lookup_code is valid for the site
2323 --
2324 PROCEDURE Check_Site_Ship_Via(p_ship_via_lookup_code IN VARCHAR2,
2325 p_org_id IN NUMBER,
2326 x_valid OUT NOCOPY BOOLEAN
2327 ) IS
2328 l_dummy org_freight.freight_code%TYPE;
2329
2330 BEGIN
2331 x_valid := TRUE;
2332
2333 SELECT FRT.freight_code
2334 INTO l_dummy
2335 FROM org_freight FRT, financials_system_params_all FIN
2336 WHERE FRT.organization_id = FIN.inventory_organization_id
2337 AND FIN.org_id = p_org_id
2338 AND nvl(FRT.disable_date, sysdate +1 ) > sysdate
2339 AND FRT.freight_code = p_ship_via_lookup_code;
2340
2341 EXCEPTION
2342 -- Trap validation error
2343 WHEN NO_DATA_FOUND THEN
2344 x_valid := FALSE;
2345
2346 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
2347 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','SHIP_VIA_LOOKUP_CODE' );
2348 FND_MSG_PUB.ADD;
2349 END Check_Site_Ship_Via;
2350
2351 --
2352 -- Check if the party_id is valid
2353 --
2354 PROCEDURE Check_Valid_Party_Id(p_party_id IN NUMBER,
2355 x_valid OUT NOCOPY BOOLEAN
2356 ) IS
2357 l_dummy NUMBER;
2358 l_count NUMBER;
2359
2360 BEGIN
2361 x_valid := TRUE;
2362
2363 SELECT party_id
2364 INTO l_dummy
2365 FROM hz_parties
2366 WHERE party_id = p_party_id;
2367
2368
2369 EXCEPTION
2370 -- Trap validation error
2371 WHEN NO_DATA_FOUND THEN
2372 x_valid := FALSE;
2373
2374 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
2375 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','PARTY_ID' );
2376 FND_MSG_PUB.ADD;
2377
2378 IF x_valid = TRUE THEN
2379 --check usage status
2380 SELECT count(party_id)
2381 INTO l_count
2382 FROM HZ_PARTY_USG_ASSIGNMENTS HPUA
2383 WHERE HPUA.PARTY_USAGE_CODE in
2384 ('SUPPLIER','SUPPLIER_CONTACT', 'ORG_CONTACT')
2385 AND HPUA.PARTY_ID = p_party_id;
2386
2387 IF nvl(l_count, -1) > 0 THEN
2388 x_valid := FALSE;
2389
2390 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
2391 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','PARTY_ID' );
2392 FND_MSG_PUB.ADD;
2393 END IF;
2394 END IF;
2395
2396 END Check_Valid_Party_Id;
2397
2398 --
2399 -- Check if the location_id is valid
2400 --
2401 PROCEDURE Check_Valid_Location_Id(p_location_id IN NUMBER,
2402 p_party_site_id IN NUMBER,
2403 x_valid OUT NOCOPY BOOLEAN
2404 ) IS
2405 l_dummy NUMBER;
2406
2407 BEGIN
2408 x_valid := TRUE;
2409
2410 SELECT Count(*)
2411 INTO l_dummy
2412 FROM hz_locations hl, hz_party_sites hps
2413 WHERE hl.location_id = p_location_id
2414 AND hl.location_id = hps.location_id
2415 AND hps.party_site_id = nvl(p_party_site_id, hps.party_site_id);
2416
2417 IF nvl(l_dummy,0) = 0 THEN
2418 x_valid := FALSE;
2419
2420 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
2421 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','LOCATION_ID' );
2422 FND_MSG_PUB.ADD;
2423 END IF;
2424
2425 END Check_Valid_Location_Id;
2426
2427 --
2428 -- Check if the party_site_id is valid
2429 --
2430 PROCEDURE Check_Valid_Party_Site_Id(p_party_Site_id IN NUMBER,
2431 p_location_id IN NUMBER,
2432 x_valid OUT NOCOPY BOOLEAN
2433 ) IS
2434 l_dummy NUMBER;
2435
2436 BEGIN
2437 x_valid := TRUE;
2438
2439 SELECT Count(*)
2440 INTO l_dummy
2441 FROM hz_party_sites hps
2442 WHERE ( hps.location_id = nvl(p_location_id, hps.location_id)
2443 AND hps.party_site_id = p_party_site_id);
2444
2445 IF nvl(l_dummy,0) = 0 THEN
2446 x_valid := FALSE;
2447
2448 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
2449 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','PARTY_SITE_ID' );
2450 FND_MSG_PUB.ADD;
2451 END IF;
2452
2453
2454 END Check_Valid_Party_Site_Id;
2455
2456 --
2457 -- Check if relationship_id is valid
2458 --
2459 PROCEDURE Check_Valid_Relationship_Id
2460 (p_relationship_id IN NUMBER,
2461 x_valid OUT NOCOPY BOOLEAN) IS
2462
2463 l_dummy NUMBER;
2464
2465 BEGIN
2466 x_valid := TRUE;
2467
2468 SELECT relationship_id
2469 INTO l_dummy
2470 FROM hz_relationships
2471 WHERE relationship_id = p_relationship_id
2472 AND rownum < 2;
2473
2474
2475 EXCEPTION
2476 -- Trap validation error
2477 WHEN NO_DATA_FOUND THEN
2478 x_valid := FALSE;
2479
2480 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
2481 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','RELATIONSHIP_ID' );
2482 FND_MSG_PUB.ADD;
2483
2484 END Check_Valid_Relationship_Id;
2485
2486 --
2487 -- Check if org_contact_id is valid
2488 --
2489 PROCEDURE Check_Valid_Org_Contact_Id
2490 (p_org_contact_id IN NUMBER,
2491 x_valid OUT NOCOPY BOOLEAN) IS
2492
2493 l_dummy NUMBER;
2494
2495 BEGIN
2496 x_valid := TRUE;
2497
2498 SELECT org_contact_id
2499 INTO l_dummy
2500 FROM hz_org_contacts
2501 WHERE org_contact_id = p_org_contact_id;
2502
2503
2504 EXCEPTION
2505 -- Trap validation error
2506 WHEN NO_DATA_FOUND THEN
2507 x_valid := FALSE;
2508
2509 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
2510 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','ORG_CONTACT_ID' );
2511 FND_MSG_PUB.ADD;
2512
2513 END Check_Valid_Org_Contact_Id;
2514
2515 -- This procedure for Import functionality from 11i
2516 -- Check that If the vendor_site_id is valid in
2517 -- Supplier Site Contact Interface table
2518 PROCEDURE Check_Vendor_site_id
2519 (p_vendor_site_id IN NUMBER,
2520 p_int_table IN VARCHAR2,
2521 p_int_key IN VARCHAR2,
2522 x_valid OUT NOCOPY BOOLEAN) IS
2523
2524 l_dummy po_vendor_sites_all.vendor_site_id%TYPE;
2525 l_api_name CONSTANT VARCHAR2(30) := 'Check_Vendor_Site_Id';
2526 BEGIN
2527
2528 x_valid := TRUE;
2529
2530 SELECT vendor_site_id
2531 INTO l_dummy
2532 FROM po_vendor_sites_all
2533 WHERE vendor_site_id = p_vendor_site_id
2534 AND nvl(inactive_date, sysdate +1 ) > sysdate;
2535
2536 EXCEPTION
2537 -- Trap validation error
2538 WHEN NO_DATA_FOUND THEN
2539 x_valid := FALSE;
2540 IF g_source = 'IMPORT' THEN
2541 IF (Insert_Rejections(
2542 p_int_table,
2543 p_int_key,
2544 'AP_INVALID_VENDOR_SITE_ID',
2545 g_user_id,
2546 g_login_id,
2547 'Check_Vendor_Site_Id') <> TRUE) THEN
2548 --
2549 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
2550 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'Parameters: '
2551 ||' P_Vendor_Site_Id: '|| p_vendor_site_id
2552 ||', P_Int_Table: '||p_int_table
2553 ||', P_Int_Key: '||p_int_key);
2554 END IF;
2555 END IF;
2556 ELSE
2557 -- Bug 5491139 hkaniven start --
2558 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_VENDOR_SITE_ID');
2559 FND_MSG_PUB.ADD;
2560 -- Bug 5491139 hkaniven end --
2561 END IF;
2562 -- Trap unknown errors
2563 WHEN OTHERS THEN
2564 x_valid := FALSE;
2565 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
2566 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'Parameters: '
2567 ||' P_Vendor_Site_Id: '|| p_vendor_site_id
2568 ||', P_Int_Table: '||p_int_table
2569 ||', P_Int_Key: '||p_int_key
2570 ||', ERROR: '||SUBSTR(SQLERRM,1,200));
2571 END IF;
2572 END Check_Vendor_site_id;
2573
2574 -- This procedure for Import functionality from 11i
2575 -- Check that If the org_id or operating_unit is
2576 -- sync with vendor site code
2577 -- Supplier Site Contact Interface table
2578 PROCEDURE Check_org_id_name_site_code
2579 (p_org_id IN NUMBER,
2580 p_org_name IN VARCHAR2,
2581 p_vendor_site_id IN OUT NOCOPY NUMBER,
2582 p_vendor_site_code IN VARCHAR2,
2583 p_int_table IN VARCHAR2,
2584 p_int_key IN VARCHAR2,
2585 x_valid OUT NOCOPY BOOLEAN) IS
2586
2587 l_org_id HR_OPERATING_UNITS.organization_id%TYPE;
2588 l_org_name HR_OPERATING_UNITS.name%TYPE;
2589 l_vendor_site_code PO_VENDOR_SITES_ALL.vendor_site_code%TYPE;
2590 l_api_name CONSTANT VARCHAR2(30) := 'Check_Org_Id_Name_Site_Code';
2591 BEGIN
2592 x_valid := TRUE;
2593
2594 IF (p_org_id IS NOT NULL AND p_vendor_site_code IS NOT NULL) THEN
2595 BEGIN
2596 /*Bug 4592201.This is to make sure that we don't say that
2597 there is an inconsistency when two different suppliers have same
2598 vendor-site-code*/
2599 /*Since the vendor-site-id can be null in the case when he just passes
2600 the vendor-site-code,we have split the statement into two cases*/
2601 if(p_vendor_site_id is not null) then
2602 SELECT vendor_site_code, vendor_site_id
2603 INTO l_vendor_site_code,p_vendor_site_id
2604 FROM PO_VENDOR_SITES_ALL
2605 WHERE org_id = p_org_id
2606 AND vendor_site_code = p_vendor_site_code
2607 AND vendor_site_id=p_vendor_site_id;
2608 else
2609 SELECT vendor_site_code, vendor_site_id
2610 INTO l_vendor_site_code,p_vendor_site_id
2611 FROM PO_VENDOR_SITES_ALL
2612 WHERE org_id = p_org_id
2613 AND vendor_site_code=p_vendor_site_code;
2614 end if;
2615 /*Bug4592201*/
2616 EXCEPTION
2617 -- Trap validation error
2618 WHEN NO_DATA_FOUND THEN
2619 x_valid := FALSE;
2620 IF g_source = 'IMPORT' THEN
2621 IF (Insert_Rejections(
2622 p_int_table,
2623 p_int_key,
2624 'AP_INVALID_VENDOR_SITE_CODE',
2625 g_user_id,
2626 g_login_id,
2627 'Check_Org_Id_Name_Site_Code') <> TRUE) THEN
2628 --
2629 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
2630 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'Parameters: '
2631 ||' P_Org_Id: '||p_org_id
2632 ||', P_Org_Name: '||p_org_name
2633 ||', P_Vendor_Site_Code: '||p_vendor_site_code
2634 ||', P_Vendor_Site_Id: '|| p_vendor_site_id
2635 ||', P_Int_Table: '||p_int_table
2636 ||', P_Int_Key: '||p_int_key);
2637 END IF;
2638 END IF;
2639 ELSE
2640 -- Bug 5491139 hkaniven start --
2641 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_VENDOR_SITE_CODE');
2642 FND_MSG_PUB.ADD;
2643 -- Bug 5491139 hkaniven end --
2644 END IF;
2645 END;
2646
2647 ELSIF (p_org_id IS NULL AND
2648 p_org_name IS NOT NULL AND
2649 p_vendor_site_code is NOT NULL) THEN
2650
2651 BEGIN
2652 SELECT SITE.vendor_site_code,vendor_site_id
2653 INTO l_vendor_site_code,p_vendor_site_id
2654 FROM PO_VENDOR_SITES_ALL SITE, HR_OPERATING_UNITS ORG
2655 WHERE ORG.name = p_org_name
2656 AND SITE.org_id = ORG.organization_id
2657 AND SITE.vendor_site_code = p_vendor_site_code;
2658
2659 EXCEPTION
2660 -- Trap validation error
2661 WHEN NO_DATA_FOUND THEN
2662 x_valid := FALSE;
2663 IF g_source = 'IMPORT' THEN
2664 IF (Insert_Rejections(
2665 p_int_table,
2666 p_int_key,
2667 'AP_INVALID_VENDOR_SITE_CODE',
2668 g_user_id,
2669 g_login_id,
2670 'Check_Org_Id_Name_Site_Code') <> TRUE) THEN
2671 --
2672 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
2673 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'Parameters: '
2674 ||' P_Org_Id: '||p_org_id
2675 ||', P_Org_Name: '||p_org_name
2676 ||', P_Vendor_Site_Code: '||p_vendor_site_code
2677 ||', P_Vendor_Site_Id: '|| p_vendor_site_id
2678 ||', P_Int_Table: '||p_int_table
2679 ||', P_Int_Key: '||p_int_key);
2680 END IF;
2681 END IF;
2682 ELSE
2683 -- Bug 5491139 hkaniven start --
2684 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_VENDOR_SITE_CODE');
2685 FND_MSG_PUB.ADD;
2686 -- Bug 5491139 hkaniven end --
2687 END IF;
2688 END;
2689
2690 END IF;
2691
2692 EXCEPTION
2693 -- Trap unknown errors
2694 WHEN OTHERS THEN
2695 x_valid := FALSE;
2696 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
2697 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'Parameters: '
2698 ||' P_Org_Id: '||p_org_id
2699 ||', P_Org_Name: '||p_org_name
2700 ||', P_Vendor_Site_Code: '||p_vendor_site_code
2701 ||', P_Vendor_Site_Id: '|| p_vendor_site_id
2702 ||', P_Int_Table: '||p_int_table
2703 ||', P_Int_Key: '||p_int_key
2704 ||', ERROR: '||SUBSTR(SQLERRM,1,200));
2705 END IF;
2706 END Check_org_id_name_site_code;
2707
2708 /* udhenuko bug 7013954 added procedure
2709 This procedure is used to check if the org_id or operating_unit is in
2710 sync with Party Site Name of hz_parties and ap_supplier_sites
2711 for Supplier Site Contact Interface table*/
2712 PROCEDURE Check_org_id_party_site_name
2713 (p_org_id IN NUMBER,
2714 p_org_name IN VARCHAR2,
2715 p_party_site_id IN OUT NOCOPY NUMBER,
2716 p_party_site_name IN VARCHAR2,
2717 p_vendor_id IN NUMBER,
2718 p_int_table IN VARCHAR2,
2719 p_int_key IN VARCHAR2,
2720 x_valid OUT NOCOPY BOOLEAN) IS
2721
2722 l_org_id HR_OPERATING_UNITS.organization_id%TYPE;
2723 l_org_name HR_OPERATING_UNITS.name%TYPE;
2724 l_party_site_name hz_party_sites.party_site_name%TYPE;
2725 l_api_name CONSTANT VARCHAR2(30) := 'Check_org_id_party_site_name';
2726 BEGIN
2727 x_valid := TRUE;
2728
2729 IF (p_org_id IS NOT NULL AND p_party_site_name IS NOT NULL) THEN
2730 BEGIN
2731 /*If party_site_id is null then we derive it based on the
2732 party_site_name field provided. But in case of Upgraded records there
2733 can be multiple records in hz_party_sites with same party_site_name
2734 for the same party. We can link the ap_supplier_sites_all table
2735 to get unique record based on the input info*/
2736
2737 if(p_party_site_id is not null) then
2738 SELECT hzps.party_site_name, hzps.party_site_id
2739 INTO l_party_site_name,p_party_site_id
2740 FROM hz_party_sites hzps, ap_suppliers aps
2741 WHERE hzps.party_site_name = p_party_site_name
2742 AND hzps.party_site_id = p_party_site_id
2743 AND aps.vendor_id = p_vendor_id;
2744 else
2745 SELECT hzps.party_site_name, hzps.party_site_id
2746 INTO l_party_site_name,p_party_site_id
2747 FROM hz_party_sites hzps, ap_supplier_sites_all aps
2748 WHERE aps.org_id = p_org_id
2749 AND hzps.party_site_name = p_party_site_name
2750 AND hzps.party_site_id = aps.party_site_id
2751 AND aps.vendor_id = p_vendor_id;
2752 end if;
2753 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
2754 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME,'Check_org_id_party_site_name : '
2755 ||' P_Party_Site_Id: '|| p_party_site_id);
2756 END IF;
2757 EXCEPTION
2758 -- Trap validation error
2759 WHEN NO_DATA_FOUND THEN
2760 x_valid := FALSE;
2761 END;
2762
2763 ELSIF (p_org_id IS NULL AND
2764 p_org_name IS NOT NULL AND
2765 p_party_site_name is NOT NULL) THEN
2766
2767 BEGIN
2768 SELECT hzps.party_site_name, hzps.party_site_id
2769 INTO l_party_site_name,p_party_site_id
2770 FROM hz_party_sites hzps, ap_supplier_sites_all aps,
2771 HR_OPERATING_UNITS ORG
2772 WHERE ORG.name = p_org_name
2773 AND aps.org_id = ORG.organization_id
2774 AND hzps.party_site_name = p_party_site_name
2775 AND hzps.party_site_id = aps.party_site_id
2776 AND aps.vendor_id = p_vendor_id;
2777
2778 EXCEPTION
2779 -- Trap validation error
2780 WHEN NO_DATA_FOUND THEN
2781 x_valid := FALSE;
2782 END;
2783
2784 END IF;
2785
2786 EXCEPTION
2787 -- Trap unknown errors
2788 WHEN OTHERS THEN
2789 x_valid := FALSE;
2790 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
2791 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'Parameters: '
2792 ||' P_Org_Id: '||p_org_id
2793 ||', P_Org_Name: '||p_org_name
2794 ||', p_party_site_name: '||p_party_site_name
2795 ||', p_party_site_id: '|| p_party_site_id
2796 ||', p_vendor_id: '|| p_vendor_id
2797 ||', P_Int_Table: '||p_int_table
2798 ||', P_Int_Key: '||p_int_key
2799 ||', ERROR: '||SUBSTR(SQLERRM,1,200));
2800 END IF;
2801 END Check_org_id_party_site_name;
2802
2803 ---------------------------------------------------------------------
2804 -- PROCEDURE : Chk_new_duns_number
2805 -- PURPOSE : Validates the Duns number passed as argument
2806 -- Added for the FSIO gap in R12(bug6053476)
2807 ---------------------------------------------------------------------
2808
2809 PROCEDURE Chk_new_duns_number(p_duns_number IN VARCHAR2,
2810 x_valid OUT NOCOPY BOOLEAN
2811 ) IS
2812
2813 e_apps_exception EXCEPTION;
2814
2815 BEGIN
2816 x_valid := TRUE;
2817
2818 If ((translate(p_duns_number,'1234567890','9999999999') <> '999999999' ) OR
2819 (length(p_duns_number) <> 9)) Then
2820 Raise e_apps_exception;
2821 End If;
2822
2823 EXCEPTION
2824 -- Trap validation error
2825 WHEN e_apps_exception THEN
2826 x_valid := FALSE;
2827
2828 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
2829 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','DUNS_NUMBER' );
2830 FND_MSG_PUB.ADD;
2831 END Chk_new_duns_number;
2832
2833
2834 -----------------------------------------------------------------------------
2835 -- PROCEDURE : Update_supplier_JFMIP_checks
2836 -- PURPOSE : Checks if one is trying to update the restricted fields on a
2837 -- CCR supplier.
2838 -- Added for the R12 FSIO gap.(bug6053476)
2839 ------------------------------------------------------------------------------
2840
2841
2842 PROCEDURE update_supplier_JFMIP_checks(p_vendor_rec IN r_vendor_rec_type,
2843 p_calling_prog IN VARCHAR2,
2844 x_valid OUT NOCOPY BOOLEAN
2845 ) IS
2846 e_apps_exception EXCEPTION;
2847
2848 BEGIN
2849 x_valid := TRUE;
2850
2851 IF ((AP_UTILITIES_PKG.get_ccr_status(p_vendor_rec.vendor_id,'S') = 'T')
2852 AND (nvl(p_calling_prog,'NOT CCR') <> 'CCRImport')) THEN
2853 If (p_vendor_rec.jgzz_fiscal_code is NOT NULL) THEN
2854 Raise e_apps_exception;
2855 End If;
2856 END IF;
2857
2858 EXCEPTION
2859 -- Trap validation error
2860 WHEN e_apps_exception THEN
2861 x_valid := FALSE;
2862
2863 FND_MESSAGE.SET_NAME('SQLAP','AP_CCR_NO_UPDATE');
2864 FND_MSG_PUB.ADD;
2865 END update_supplier_JFMIP_checks;
2866
2867
2868 -----------------------------------------------------------------------------
2869 -- PROCEDURE : Chk_Update_site_CCR_values
2870 -- PURPOSE : Checks if one is trying to update the restricted fields on a
2871 -- CCR supplier site.
2872 -- Added for the R12 FSIO gap.(bug6053476)
2873 ------------------------------------------------------------------------------
2874
2875
2876 PROCEDURE Chk_update_site_ccr_values(p_vendor_site_rec IN r_vendor_site_rec_type,
2877 p_calling_prog IN VARCHAR2,
2878 x_valid OUT NOCOPY BOOLEAN
2879 ) IS
2880 e_apps_exception EXCEPTION;
2881
2882 BEGIN
2883 x_valid := TRUE;
2884
2885 IF ((AP_UTILITIES_PKG.get_ccr_status(p_vendor_site_rec.vendor_site_id, 'T') = 'T')
2886 AND (nvl(p_calling_prog,'NOT CCR') <> 'CCRImport')) THEN
2887
2888 If (( p_vendor_site_rec.duns_number is NOT NULL)
2889 OR ( p_vendor_site_rec.country is NOT NULL)
2890 OR ( p_vendor_site_rec.address_line1 is NOT NULL)
2891 OR ( p_vendor_site_rec.address_line2 is NOT NULL)
2892 OR ( p_vendor_site_rec.address_line3 is NOT NULL)
2893 OR ( p_vendor_site_rec.address_line4 is NOT NULL)
2894 OR ( p_vendor_site_rec.city is NOT NULL)
2895 OR ( p_vendor_site_rec.state is NOT NULL)
2896 OR ( p_vendor_site_rec.zip is NOT NULL)
2897 OR ( p_vendor_site_rec.province is NOT NULL)) THEN
2898
2899 Raise e_apps_exception;
2900 End If;
2901 END IF;
2902
2903 EXCEPTION
2904 -- Trap validation error
2905 WHEN e_apps_exception THEN
2906 x_valid := FALSE;
2907 FND_MESSAGE.SET_NAME('SQLAP','AP_CCR_NO_UPDATE');
2908 FND_MSG_PUB.ADD;
2909
2910 END Chk_update_site_ccr_values;
2911
2912
2913 PROCEDURE Create_Vendor
2914 ( p_api_version IN NUMBER,
2915 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
2916 p_commit IN VARCHAR2 := FND_API.G_FALSE,
2917 p_validation_level IN NUMBER :=
2918 FND_API.G_VALID_LEVEL_FULL,
2919 x_return_status OUT NOCOPY VARCHAR2 ,
2920 x_msg_count OUT NOCOPY NUMBER,
2921 x_msg_data OUT NOCOPY VARCHAR2,
2922 p_vendor_rec IN r_vendor_rec_type,
2923 x_vendor_id OUT NOCOPY AP_SUPPLIERS.VENDOR_ID%TYPE,
2924 x_party_id OUT NOCOPY HZ_PARTIES.PARTY_ID%TYPE
2925 )
2926 IS
2927
2928
2929 l_api_name CONSTANT VARCHAR2(30) := 'Create_Vendor';
2930 l_api_version CONSTANT NUMBER := 1.0;
2931
2932 l_vendor_rec r_vendor_rec_type;
2933
2934 -- define variables for initialization
2935 l_user_defined_vendor_num_code VARCHAR2(255);
2936 l_manual_vendor_num_type VARCHAR2(255);
2937 l_rfq_only_site_flag VARCHAR2(255);
2938 l_ship_to_location_id NUMBER;
2939 l_ship_to_location_code VARCHAR2(255);
2940 l_bill_to_location_id NUMBER;
2941 l_bill_to_location_code VARCHAR2(255);
2942 l_fob_lookup_code VARCHAR2(255);
2943 l_freight_terms_lookup_code VARCHAR2(255);
2944 l_terms_id NUMBER;
2945 l_terms_disp VARCHAR2(255);
2946 l_distribution_set_id NUMBER;
2947 l_always_take_disc_flag VARCHAR2(1);
2948 l_invoice_currency_code VARCHAR2(255);
2949 l_org_id NUMBER;
2950 l_set_of_books_id NUMBER;
2951 l_short_name VARCHAR2(255);
2952 l_payment_currency_code VARCHAR2(255);
2953 l_accts_pay_ccid NUMBER;
2954 l_future_dated_payment_ccid NUMBER;
2955 l_prepay_code_combination_id NUMBER;
2956 l_vendor_pay_group_lookup_code VARCHAR2(255);
2957 l_sys_auto_calc_int_flag VARCHAR2(255);
2958 l_terms_date_basis VARCHAR2(255);
2959 l_terms_date_basis_disp VARCHAR2(255);
2960 l_chart_of_accounts_id NUMBER;
2961 l_fob_lookup_disp VARCHAR2(255);
2962 l_freight_terms_lookup_disp VARCHAR2(255);
2963 l_vendor_pay_group_disp VARCHAR2(255);
2964 l_fin_require_matching VARCHAR2(255);
2965 l_sys_require_matching VARCHAR2(255);
2966 l_fin_match_option VARCHAR2(255);
2967 l_po_create_dm_flag VARCHAR2(255);
2968 l_exclusive_payment VARCHAR2(255);
2969 l_vendor_auto_int_default VARCHAR2(255);
2970 l_inventory_organization_id NUMBER;
2971 l_ship_via_lookup_code VARCHAR2(255);
2972 l_ship_via_disp VARCHAR2(255);
2973 l_sysdate DATE;
2974 l_enforce_ship_to_loc_code VARCHAR2(255);
2975 l_receiving_routing_id NUMBER;
2976 l_qty_rcv_tolerance NUMBER;
2977 l_qty_rcv_exception_code VARCHAR2(255);
2978 l_days_early_receipt_allowed NUMBER;
2979 l_days_late_receipt_allowed NUMBER;
2980 l_allow_sub_receipts_flag VARCHAR2(255);
2981 l_allow_unord_receipts_flag VARCHAR2(255);
2982 l_receipt_days_exception_code VARCHAR2(255);
2983 l_enforce_ship_to_loc_disp VARCHAR2(255);
2984 l_qty_rcv_exception_disp VARCHAR2(255);
2985 l_receipt_days_exception_disp VARCHAR2(255);
2986 l_receipt_required_flag VARCHAR2(255);
2987 l_inspection_required_flag VARCHAR2(255);
2988 l_payment_method_lookup_code VARCHAR2(255);
2989 l_payment_method_disp VARCHAR2(255);
2990 l_pay_date_basis_lookup_code VARCHAR2(255);
2991 l_pay_date_basis_disp VARCHAR2(255);
2992 l_receiving_routing_name VARCHAR2(255);
2993 l_ap_inst_flag VARCHAR2(255);
2994 l_po_inst_flag VARCHAR2(255);
2995 l_home_country_code VARCHAR2(255);
2996 l_default_awt_group_id NUMBER;
2997 l_default_awt_group_name VARCHAR2(255);
2998 l_allow_awt_flag VARCHAR2(255);
2999 l_base_currency_code VARCHAR2(255);
3000 l_address_style VARCHAR2(255);
3001 l_obsolete VARCHAR2(255);
3002 l_use_bank_charge_flag VARCHAR2(255);
3003 l_bank_charge_bearer VARCHAR2(255);
3004 l_hold_unmatched_invoices_flag VARCHAR2(1);
3005
3006 l_user_id number := FND_GLOBAL.USER_ID;
3007 l_last_update_login number := FND_GLOBAL.LOGIN_ID;
3008 l_program_application_id number := FND_GLOBAL.prog_appl_id;
3009 l_program_id number := FND_GLOBAL.conc_program_id;
3010 l_request_id number := FND_GLOBAL.conc_request_id;
3011 l_val_return_status VARCHAR2(50);
3012 l_val_msg_count NUMBER;
3013 l_val_msg_data VARCHAR2(1000);
3014 l_creation_date DATE;
3015 l_created_by NUMBER;
3016 l_org_return_status VARCHAR2(50);
3017 l_org_msg_count NUMBER;
3018 l_org_msg_data VARCHAR2(1000);
3019 l_pay_return_status VARCHAR2(50);
3020 l_pay_msg_count NUMBER;
3021 l_pay_msg_data VARCHAR2(1000);
3022 l_zx_return_status VARCHAR2(50);
3023 l_zx_msg_count NUMBER;
3024 l_zx_msg_data VARCHAR2(1000);
3025 l_party_valid VARCHAR2(1);
3026 l_payee_valid VARCHAR2(1);
3027 l_row_id VARCHAR2(255);
3028 l_vendor_id NUMBER;
3029 l_party_rec HZ_PARTY_V2PUB.party_rec_type;
3030 l_org_rec HZ_PARTY_V2PUB.organization_rec_type;
3031 l_org_party_id NUMBER;
3032 l_org_party_number VARCHAR2(30);
3033 l_org_profile_ID NUMBER;
3034 l_party_num VARCHAR2(1);
3035
3036 --
3037 -- Added Sync Party Related return variables
3038 --
3039 l_sync_return_status VARCHAR2(50);
3040 l_sync_msg_count NUMBER;
3041 l_sync_msg_data VARCHAR2(1000);
3042
3043
3044 /* Variable Declaration for IBY */
3045 ext_payee_tab IBY_DISBURSEMENT_SETUP_PUB.External_Payee_Tab_Type;
3046 ext_payee_id_tab IBY_DISBURSEMENT_SETUP_PUB.Ext_Payee_Id_Tab_Type;
3047 ext_payee_create_tab IBY_DISBURSEMENT_SETUP_PUB.Ext_Payee_Create_Tab_Type;
3048
3049 l_ext_payee_rec IBY_DISBURSEMENT_SETUP_PUB.EXTERNAL_PAYEE_REC_TYPE;
3050 l_party_usg_rec HZ_PARTY_USG_ASSIGNMENT_PVT.party_usg_assignment_rec_type; --Bug6648405
3051 l_party_usg_validation_level NUMBER;
3052 l_debug_info VARCHAR2(500); -- Bug 6823885
3053
3054 BEGIN
3055 -- Standard Start of API savepoint
3056 SAVEPOINT Create_Vendor_PUB;
3057
3058 -- Standard call to check for call compatibility.
3059 IF NOT FND_API.Compatible_API_Call ( l_api_version ,
3060 p_api_version ,
3061 l_api_name ,
3062 G_PKG_NAME )
3063 THEN
3064 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3065 END IF;
3066
3067 -- Initialize message list if p_init_msg_list is set to TRUE.
3068 IF FND_API.to_Boolean( p_init_msg_list ) THEN
3069 FND_MSG_PUB.initialize;
3070 END IF;
3071
3072 -- Initialize API return status to success
3073 x_return_status := FND_API.G_RET_STS_SUCCESS;
3074 l_org_return_status := FND_API.G_RET_STS_SUCCESS;
3075 l_val_return_status := FND_API.G_RET_STS_SUCCESS;
3076 l_pay_return_status := FND_API.G_RET_STS_SUCCESS;
3077 l_sync_return_status := FND_API.G_RET_STS_SUCCESS;
3078
3079 -- API body
3080
3081 -- Run initialize and get required default values
3082 ap_apxvdmvd_pkg.initialize_supplier_attr(
3083 x_user_defined_vendor_num_code => l_user_defined_vendor_num_code,
3084 x_manual_vendor_num_type => l_manual_vendor_num_type,
3085 x_terms_id => l_terms_id,
3086 x_terms_disp => l_terms_disp,
3087 x_always_take_disc_flag => l_always_take_disc_flag,
3088 x_invoice_currency_code => l_invoice_currency_code,
3089 x_vendor_pay_group_lookup_code => l_vendor_pay_group_lookup_code,
3090 x_sys_auto_calc_int_flag => l_sys_auto_calc_int_flag,
3091 x_terms_date_basis => l_terms_date_basis,
3092 x_terms_date_basis_disp => l_terms_date_basis_disp,
3093 x_vendor_pay_group_disp => l_vendor_pay_group_disp,
3094 x_fin_require_matching => l_fin_require_matching,
3095 x_fin_match_option => l_fin_match_option,
3096 x_sysdate => l_sysdate,
3097 x_pay_date_basis_lookup_code => l_pay_date_basis_lookup_code,
3098 x_pay_date_basis_disp => l_pay_date_basis_disp,
3099 x_ap_inst_flag => l_ap_inst_flag,
3100 x_use_bank_charge_flag => l_use_bank_charge_flag,
3101 x_bank_charge_bearer => l_bank_charge_bearer,
3102 x_calling_sequence => ''); --l_calling_sequence
3103
3104
3105 l_vendor_rec := p_vendor_rec;
3106
3107 --All fields that use to be defaulted from po_system_parameters
3108 --in the initialization procedure will no longer be defaulted at
3109 --the supplier level because system parameters are org specific
3110 l_vendor_rec.summary_flag := nvl(l_vendor_rec.summary_flag, 'N');
3111 l_vendor_rec.enabled_flag := nvl(l_vendor_rec.enabled_flag, 'Y');
3112 l_last_update_login := fnd_global.login_id;
3113 l_creation_date := sysdate;
3114 l_created_by := fnd_global.user_id;
3115 l_vendor_rec.one_time_flag := nvl(l_vendor_rec.one_time_flag,'N');
3116
3117 -- Bug 6085640 - Terms ID should not be set to default if Terms Name
3118 -- has been given.
3119 -- added by abhsaxen on 06-May-2008 for bug#7008314
3120 IF l_vendor_rec.terms_name IS NULL or l_vendor_rec.terms_name = ap_null_char
3121 THEN l_vendor_rec.terms_id := nvl(l_vendor_rec.terms_id,
3122 l_terms_id);
3123 ELSE l_vendor_rec.terms_id := l_vendor_rec.terms_id;
3124 END IF;
3125
3126 l_vendor_rec.always_take_disc_flag
3127 := nvl(l_vendor_rec.always_take_disc_flag, l_always_take_disc_flag);
3128 l_vendor_rec.pay_date_basis_lookup_code
3129 := nvl(l_vendor_rec.pay_date_basis_lookup_code,
3130 l_pay_date_basis_lookup_code);
3131 l_vendor_rec.pay_group_lookup_code
3132 := nvl(l_vendor_rec.pay_group_lookup_code,
3133 l_vendor_pay_group_lookup_code);
3134 l_vendor_rec.payment_priority := nvl(l_vendor_rec.payment_priority, 99);
3135 l_vendor_rec.invoice_currency_code
3136 := nvl(l_vendor_rec.invoice_currency_code, l_invoice_currency_code);
3137
3138 -- Payment Currency Defaulting at the supplier level
3139 -- With the MOAC Project the payment currency defaulting was left
3140 -- out. Added defaulting logic to use invoice currency default from
3141 -- product setup for supplier level payment currency defaulting
3142 -- if a value is not provided in the input vendor record.
3143
3144 l_vendor_rec.payment_currency_code
3145 := nvl(l_vendor_rec.payment_currency_code, l_invoice_currency_code);
3146 l_vendor_rec.hold_all_payments_flag
3147 := nvl(l_vendor_rec.hold_all_payments_flag, 'N');
3148 l_vendor_rec.hold_future_payments_flag
3149 := nvl(l_vendor_rec.hold_future_payments_flag, 'N');
3150 l_vendor_rec.start_date_active
3151 := nvl(l_vendor_rec.start_date_active, SYSDATE);
3152 /*po defaults
3153 l_vendor_rec.qty_rcv_tolerance
3154 := nvl(l_vendor_rec.qty_rcv_tolerance, l_qty_rcv_tolerance);
3155 */
3156 l_vendor_rec.women_owned_flag := NVL(l_vendor_rec.women_owned_flag, 'N');
3157 l_vendor_rec.small_business_flag
3158 := NVL(l_vendor_rec.small_business_flag, 'N');
3159 l_vendor_rec.hold_flag := nvl(l_vendor_rec.hold_flag, 'N');
3160 l_vendor_rec.terms_date_basis
3161 := nvl(l_vendor_rec.terms_date_basis, l_terms_date_basis);
3162 /*po defaults
3163 l_vendor_rec.days_early_receipt_allowed
3164 := nvl(l_vendor_rec.days_early_receipt_allowed,
3165 l_days_early_receipt_allowed);
3166 l_vendor_rec.days_late_receipt_allowed
3167 := nvl(l_vendor_rec.days_late_receipt_allowed,
3168 l_days_late_receipt_allowed);
3169 l_vendor_rec.enforce_ship_to_location_code
3170 := nvl(l_vendor_rec.enforce_ship_to_location_code,
3171 l_enforce_ship_to_loc_code);
3172 */
3173 l_vendor_rec.federal_reportable_flag
3174 := nvl(l_vendor_rec.federal_reportable_flag, 'N');
3175 --bug6401663
3176 l_vendor_rec.hold_unmatched_invoices_flag
3177 := nvl(l_vendor_rec.hold_unmatched_invoices_flag,
3178 l_fin_require_matching);
3179 --bug6075649
3180 l_vendor_rec.match_option
3181 := nvl(l_vendor_rec.match_option, l_fin_match_option);
3182 /*l_vendor_rec.create_debit_memo_flag
3183 := nvl(l_vendor_rec.create_debit_memo_flag, l_po_create_dm_flag);
3184 l_vendor_rec.inspection_required_flag
3185 := nvl(l_vendor_rec.inspection_required_flag,
3186 l_inspection_required_flag);
3187 l_vendor_rec.receipt_required_flag
3188 := nvl(l_vendor_rec.receipt_required_flag, l_receipt_required_flag);
3189 l_vendor_rec.receiving_routing_id
3190 := nvl(l_vendor_rec.receiving_routing_id, l_receiving_routing_id);
3191 */
3192 l_vendor_rec.auto_calculate_interest_flag
3193 := nvl(l_vendor_rec.auto_calculate_interest_flag,
3194 l_sys_auto_calc_int_flag);
3195 /*po defaults
3196 l_vendor_rec.allow_substitute_receipts_flag
3197 := nvl(l_vendor_rec.allow_substitute_receipts_flag,
3198 l_allow_sub_receipts_flag);
3199 l_vendor_rec.allow_unordered_receipts_flag
3200 := nvl(l_vendor_rec.allow_unordered_receipts_flag,
3201 l_allow_unord_receipts_flag);
3202 l_vendor_rec.qty_rcv_exception_code
3203 := nvl(l_vendor_rec.qty_rcv_exception_code, l_qty_rcv_exception_code);
3204 */
3205 l_vendor_rec.exclude_freight_from_discount
3206 := nvl(l_vendor_rec.exclude_freight_from_discount, 'N');
3207
3208 validate_vendor(p_api_version => 1.0,
3209 p_init_msg_list => FND_API.G_FALSE,
3210 p_commit => FND_API.G_FALSE,
3211 x_return_status => l_val_return_status,
3212 x_msg_count => l_val_msg_count,
3213 x_msg_data => l_val_msg_data,
3214 p_vendor_rec => l_vendor_rec,
3215 P_mode => 'I',
3216 P_calling_prog => 'NOT ISETUP',
3217 x_party_valid => l_party_valid,
3218 x_payee_valid => l_payee_valid,
3219 p_vendor_id => x_vendor_id);
3220
3221
3222 --bug 6371419.Added the below if clause to create a party in hz,external payee
3223 --in iby,tax code assignment in zx,supplier in AP only if the
3224 --SUPPLIER IS VALID.
3225 IF (l_val_return_status = FND_API.G_RET_STS_SUCCESS) THEN
3226
3227 IF l_party_valid = 'N' THEN -- party_id was null
3228
3229 l_org_rec.created_by_module := 'AP_SUPPLIERS_API';
3230 l_org_rec.application_id := 200;
3231 l_org_rec.organization_name := l_vendor_rec.vendor_name;
3232 l_org_rec.organization_name_phonetic :=
3233 l_vendor_rec.vendor_name_alt;
3234
3235 --bug6050423.Pass null value to jgzz_fiscal_code in hz_parties for
3236 --individual contractors and employees.
3237 --taxpayer id of individual contractors is stored only in ap_suppliers.
3238 --bug6691916.commented the below if clause and added the one below that.
3239 --as per analysis,only organization lookup code of type individual
3240 --and foreign individual belong to individual suppliers category.
3241 /*IF ( ((UPPER(p_vendor_rec.vendor_type_lookup_code)='CONTRACTOR')
3242 AND UPPER(p_vendor_rec.organization_type_lookup_code) IN
3243 ('INDIVIDUAL','FOREIGN INDIVIDUAL',
3244 'PARTNERSHIP','FOREIGN PARTNERSHIP') )
3245 OR (UPPER(p_vendor_rec.vendor_type_lookup_code)='EMPLOYEE')) THEN*/
3246
3247 IF ( UPPER(p_vendor_rec.organization_type_lookup_code) IN
3248 ('INDIVIDUAL','FOREIGN INDIVIDUAL')
3249 OR
3250 (UPPER(p_vendor_rec.vendor_type_lookup_code)='EMPLOYEE')) THEN
3251 l_org_rec.jgzz_fiscal_code :=NULL;
3252 ELSE
3253 l_org_rec.jgzz_fiscal_code := l_vendor_rec.jgzz_fiscal_code;
3254
3255 END IF;
3256
3257 -- Discussed with Indrajit. We will not pass the SIC Code
3258 -- TCA as the AP's SIC code is free form entry field.
3259 -- Commenting this code as part of bug 5066199
3260 -- l_org_rec.sic_code := l_vendor_rec.sic_code;
3261 l_org_rec.tax_reference := l_vendor_rec.tax_reference;
3262
3263 fnd_profile.get('HZ_GENERATE_PARTY_NUMBER', l_party_num);
3264 IF nvl(l_party_num, 'Y') = 'N' THEN
3265 SELECT HZ_PARTY_NUMBER_S.Nextval
3266 INTO l_party_rec.party_number
3267 FROM DUAL;
3268 END IF;
3269
3270 l_org_rec.party_rec := l_party_rec;
3271
3272 hz_party_v2pub.create_organization(
3273 p_init_msg_list => FND_API.G_FALSE,
3274 p_organization_rec => l_org_rec,
3275 p_party_usage_code => 'SUPPLIER',
3276 -- p_commit => FND_API.G_FALSE,
3277 x_return_status => l_org_return_status,
3278 x_msg_count => l_org_msg_count,
3279 x_msg_data => l_org_msg_data,
3280 x_party_id => l_org_party_id,
3281 x_party_number => l_org_party_number,
3282 x_profile_id => l_org_profile_id);
3283 IF l_org_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3284 ------------------------------------------------------------------------
3285 l_debug_info := 'After call to hz_party_v2pub.create_organization';
3286 l_debug_info := l_debug_info||' Return status : '||l_org_return_status||' Error : '||l_org_msg_data;
3287 ------------------------------------------------------------------------
3288 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3289 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
3290 END IF;
3291 END IF;
3292
3293 l_vendor_rec.party_id := l_org_party_id;
3294
3295 END IF; --party_id was null
3296 --Bug6677806
3297 l_party_usg_validation_level := HZ_PARTY_USG_ASSIGNMENT_PVT.G_VALID_LEVEL_NONE;
3298 l_party_usg_rec.party_id := nvl(l_vendor_rec.party_id,l_org_party_id);
3299 l_party_usg_rec.party_usage_code := 'SUPPLIER';
3300 l_party_usg_rec.created_by_module := 'AP_SUPPLIERS_API';--Bug6678590
3301
3302 HZ_PARTY_USG_ASSIGNMENT_PVT.assign_party_usage (
3303 p_validation_level => l_party_usg_validation_level,
3304 p_party_usg_assignment_rec => l_party_usg_rec,
3305 x_return_status => l_org_return_status,
3306 x_msg_count => l_org_msg_count,
3307 x_msg_data => l_org_msg_data);
3308 IF l_org_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3309 ------------------------------------------------------------------------
3310 l_debug_info := 'After call to HZ_PARTY_USG_ASSIGNMENT_PVT.assign_party_usage';
3311 l_debug_info := l_debug_info||' Return status : '||l_org_return_status||' Error : '||l_org_msg_data;
3312 ------------------------------------------------------------------------
3313 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3314 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
3315 END IF;
3316 END IF;
3317
3318 IF l_payee_valid = 'N' THEN --payee record is valid
3319
3320 -- As per the discussion with Omar/Jayanta, we will only
3321 -- have payables payment function and no more employee expenses
3322 -- payment function.
3323
3324
3325 IF l_vendor_rec.ext_payee_rec.payment_function IS NULL THEN
3326
3327 l_ext_payee_rec.payee_party_id := l_vendor_rec.party_id;
3328 l_ext_payee_rec.payment_function := 'PAYABLES_DISB';
3329 l_ext_payee_rec.exclusive_pay_flag := 'N';
3330
3331 -- Bug 6458813
3332 l_ext_payee_rec.default_pmt_method := l_vendor_rec.ext_payee_rec.default_pmt_method;
3333 l_ext_payee_rec.ece_tp_loc_code := l_vendor_rec.ext_payee_rec.ece_tp_loc_code;
3334 l_ext_payee_rec.bank_charge_bearer := l_vendor_rec.ext_payee_rec.bank_charge_bearer;
3335 l_ext_payee_rec.bank_instr1_code := l_vendor_rec.ext_payee_rec.bank_instr1_code;
3336 l_ext_payee_rec.bank_instr2_code := l_vendor_rec.ext_payee_rec.bank_instr2_code;
3337 l_ext_payee_rec.bank_instr_detail := l_vendor_rec.ext_payee_rec.bank_instr_detail;
3338 l_ext_payee_rec.pay_reason_code := l_vendor_rec.ext_payee_rec.pay_reason_code;
3339 l_ext_payee_rec.pay_reason_com := l_vendor_rec.ext_payee_rec.pay_reason_com;
3340 l_ext_payee_rec.pay_message1 := l_vendor_rec.ext_payee_rec.pay_message1;
3341 l_ext_payee_rec.pay_message2 := l_vendor_rec.ext_payee_rec.pay_message2;
3342 l_ext_payee_rec.pay_message3 := l_vendor_rec.ext_payee_rec.pay_message3;
3343 l_ext_payee_rec.delivery_channel := l_vendor_rec.ext_payee_rec.delivery_channel;
3344 l_ext_payee_rec.pmt_format := l_vendor_rec.ext_payee_rec.pmt_format;
3345 l_ext_payee_rec.settlement_priority := l_vendor_rec.ext_payee_rec.settlement_priority;
3346 -- Bug 6458813 ends
3347
3348 ext_payee_tab(1) := l_ext_payee_rec;
3349
3350 ELSE
3351
3352 ext_payee_tab(1) := l_vendor_rec.ext_payee_rec;
3353
3354 END IF;
3355
3356 /* Calling IBY Payee Creation API */
3357 IBY_DISBURSEMENT_SETUP_PUB.Create_External_Payee
3358 ( p_api_version => 1.0,
3359 p_init_msg_list => FND_API.G_FALSE,
3360 p_ext_payee_tab => ext_payee_tab,
3361 x_return_status => l_pay_return_status,
3362 x_msg_count => l_pay_msg_count,
3363 x_msg_data => l_pay_msg_data,
3364 x_ext_payee_id_tab => ext_payee_id_tab,
3365 x_ext_payee_status_tab => ext_payee_create_tab);
3366 IF l_pay_return_status = FND_API.G_RET_STS_SUCCESS THEN
3367 ------------------------------------------------------------------------
3368 l_debug_info := 'After call to IBY_DISBURSEMENT_SETUP_PUB.Create_External_Payee';
3369 l_debug_info := l_debug_info||' Return status : '||l_pay_return_status||' Error : '||l_pay_msg_data;
3370 ------------------------------------------------------------------------
3371 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3372 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
3373 END IF;
3374 END IF;
3375
3376 END IF;
3377
3378 IF l_vendor_rec.party_id IS NOT NULL AND
3379 p_vendor_rec.vendor_type_lookup_code IS NOT NULL THEN
3380
3381 zx_tcm_bes_registration_pvt.synch_ptp_code_assigment(
3382 p_party_id => l_vendor_rec.party_id,
3383 p_class_category => 'SUPPLIER_TYPE',
3384 p_class_code => p_vendor_rec.vendor_type_lookup_code,
3385 x_return_status => l_zx_return_status,
3386 x_msg_count => l_zx_msg_count,
3387 x_msg_data => l_zx_msg_data );
3388 IF l_zx_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3389 ------------------------------------------------------------------------
3390 l_debug_info := 'After call to zx_tcm_bes_registration_pvt.synch_ptp_code_assigment';
3391 l_debug_info := l_debug_info||' Return status : '||l_zx_return_status||' Error : '||l_zx_msg_data;
3392 ------------------------------------------------------------------------
3393 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3394 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
3395 END IF;
3396 END IF;
3397
3398 END IF;
3399
3400 --bug 6371419.commented the below condition as it was checked already
3401 -- IF (l_val_return_status = FND_API.G_RET_STS_SUCCESS) AND
3402 IF (l_org_return_status = FND_API.G_RET_STS_SUCCESS) AND
3403 (l_payee_valid = 'N' OR
3404 l_pay_return_status = FND_API.G_RET_STS_SUCCESS) THEN
3405
3406 ap_vendors_pkg.insert_row(
3407 p_vendor_rec => l_vendor_rec
3408 ,p_last_update_date => sysdate
3409 ,p_last_updated_by => nvl(l_user_id,-1)
3410 ,p_last_update_login => nvl(l_last_update_login,-1)
3411 ,p_creation_date => sysdate
3412 ,p_created_by => nvl(l_user_id,-1)
3413 ,p_request_id => l_request_id
3414 ,p_program_application_id => l_program_application_id
3415 ,p_program_id => l_program_id
3416 ,p_program_update_date => sysdate
3417 ,x_rowid => l_row_id
3418 ,x_vendor_id => l_vendor_id);
3419 ------------------------------------------------------------------------
3420 l_debug_info := 'After call to ap_vendors_pkg.insert_row';
3421 ------------------------------------------------------------------------
3422 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3423 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
3424 END IF;
3425
3426 --
3427 -- Added Call to Sync the Party Information into ap_supplier
3428 -- record for the performance reasons.
3429 --
3430 AP_TCA_SUPPLIER_SYNC_PKG.SYNC_Supplier(
3431 l_sync_return_status,
3432 l_sync_msg_count,
3433 l_sync_msg_data,
3434 l_vendor_rec.party_id);
3435 IF l_sync_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3436 ------------------------------------------------------------------------
3437 l_debug_info := 'After call to AP_TCA_SUPPLIER_SYNC_PKG.SYNC_Supplier';
3438 l_debug_info := l_debug_info||' Return status : '||l_sync_return_status||' Error : '||l_sync_msg_data;
3439 ------------------------------------------------------------------------
3440 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3441 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
3442 END IF;
3443 END IF;
3444
3445 IF l_sync_return_status = FND_API.G_RET_STS_SUCCESS THEN
3446 Raise_Supplier_Event( i_vendor_id => l_vendor_id ); -- Bug 7307669
3447 x_return_status := FND_API.G_RET_STS_SUCCESS;
3448 END IF;
3449 -- Bug 5570585
3450 x_party_id := nvl(l_vendor_rec.party_id,l_org_party_id);
3451 x_vendor_id := l_vendor_id;
3452
3453 END IF; --bug6371419.end of l_org_return_status SUCCESS
3454
3455 ELSIF (l_val_return_status = FND_API.G_RET_STS_UNEXP_ERROR) OR
3456 (l_org_return_status = FND_API.G_RET_STS_UNEXP_ERROR) OR
3457 (l_pay_return_status = FND_API.G_RET_STS_UNEXP_ERROR) OR
3458 (l_sync_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
3459
3460 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3461
3462 ELSE
3463
3464 x_return_status := FND_API.G_RET_STS_ERROR;
3465 END IF; --Supplier Valid
3466
3467 -- End of API body.
3468
3469 -- Standard check of p_commit.
3470 IF FND_API.To_Boolean( p_commit ) THEN
3471 COMMIT WORK;
3472 END IF;
3473
3474 -- Standard call to get message count and if count is 1,
3475 -- get message info.
3476 FND_MSG_PUB.Count_And_Get(
3477 p_count => x_msg_count ,
3478 p_data => x_msg_data
3479 );
3480
3481 EXCEPTION
3482 WHEN FND_API.G_EXC_ERROR THEN
3483 ROLLBACK TO Create_Vendor_PUB;
3484 x_return_status := FND_API.G_RET_STS_ERROR ;
3485 FND_MSG_PUB.Count_And_Get
3486 ( p_count => x_msg_count,
3487 p_data => x_msg_data
3488 );
3489 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3490 ROLLBACK TO Create_Vendor_PUB;
3491 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3492 FND_MSG_PUB.Count_And_Get
3493 ( p_count => x_msg_count,
3494 p_data => x_msg_data
3495 );
3496 WHEN OTHERS THEN
3497 ROLLBACK TO Create_Vendor_PUB;
3498 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3499 IF FND_MSG_PUB.Check_Msg_Level
3500 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
3501 FND_MSG_PUB.Add_Exc_Msg
3502 ( G_PKG_NAME ,
3503 l_api_name
3504 );
3505 END IF;
3506 FND_MSG_PUB.Count_And_Get
3507 ( p_count => x_msg_count,
3508 p_data => x_msg_data
3509 );
3510 END Create_Vendor;
3511
3512 PROCEDURE Update_Vendor
3513 ( p_api_version IN NUMBER,
3514 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
3515 p_commit IN VARCHAR2 := FND_API.G_FALSE,
3516 p_validation_level IN NUMBER :=
3517 FND_API.G_VALID_LEVEL_FULL,
3518 x_return_status OUT NOCOPY VARCHAR2 ,
3519 x_msg_count OUT NOCOPY NUMBER,
3520 x_msg_data OUT NOCOPY VARCHAR2,
3521 p_vendor_rec IN r_vendor_rec_type,
3522 p_vendor_id IN NUMBER
3523 )
3524 IS
3525 l_api_name CONSTANT VARCHAR2(30) := 'Update_Vendor';
3526 l_api_version CONSTANT NUMBER := 1.0;
3527
3528 l_def_org_id NUMBER;
3529 l_org_context VARCHAR2(1);
3530
3531 l_user_id number := FND_GLOBAL.USER_ID;
3532 l_last_update_login number := FND_GLOBAL.LOGIN_ID;
3533 l_program_application_id number := FND_GLOBAL.prog_appl_id;
3534 l_program_id number := FND_GLOBAL.conc_program_id;
3535 l_request_id number := FND_GLOBAL.conc_request_id;
3536
3537 l_vendor_rec r_vendor_rec_type;
3538 l_val_return_status VARCHAR2(50);
3539 l_val_msg_count NUMBER;
3540 l_val_msg_data VARCHAR2(1000);
3541 l_party_valid VARCHAR2(1);
3542 l_payee_valid VARCHAR2(1);
3543 l_rowid VARCHAR2(255);
3544
3545 l_sync_return_status VARCHAR2(50);
3546 l_sync_msg_count NUMBER;
3547 l_sync_msg_data VARCHAR2(1000);
3548 l_org_party_id NUMBER;
3549
3550
3551 BEGIN
3552 -- Standard Start of API savepoint
3553 SAVEPOINT Update_Vendor_PUB;
3554
3555 -- Standard call to check for call compatibility.
3556 IF NOT FND_API.Compatible_API_Call ( l_api_version ,
3557 p_api_version ,
3558 l_api_name ,
3559 G_PKG_NAME )
3560 THEN
3561 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3562 END IF;
3563
3564 -- Initialize message list if p_init_msg_list is set to TRUE.
3565 IF FND_API.to_Boolean( p_init_msg_list ) THEN
3566 FND_MSG_PUB.initialize;
3567 END IF;
3568
3569 -- Initialize API return status to success
3570 x_return_status := FND_API.G_RET_STS_SUCCESS;
3571 l_sync_return_status := FND_API.G_RET_STS_SUCCESS;
3572
3573
3574 -- API body
3575
3576 /*
3577 If (FV_INSTALL.ENABLED(l_def_org_id)) THEN
3578 g_fed_fin_installed := 'Y';
3579 Else
3580 g_fed_fin_installed := 'N';
3581 End If;
3582 */
3583
3584 l_vendor_rec := p_vendor_rec;
3585
3586 validate_vendor(p_api_version => 1.0,
3587 p_init_msg_list => FND_API.G_FALSE,
3588 p_commit => FND_API.G_FALSE,
3589 x_return_status => l_val_return_status,
3590 x_msg_count => l_val_msg_count,
3591 x_msg_data => l_val_msg_data,
3592 p_vendor_rec => l_vendor_rec,
3593 P_mode => 'U',
3594 P_calling_prog => 'NOT ISETUP',
3595 x_party_valid => l_party_valid,
3596 x_payee_valid => l_payee_valid,
3597 p_vendor_id => p_vendor_id );
3598
3599 IF (l_val_return_status = FND_API.G_RET_STS_SUCCESS) THEN
3600
3601 -- Select all the values needed to pass to update_row
3602 -- from PO_VENDORS
3603 SELECT
3604 decode(l_vendor_rec.allow_awt_flag,
3605 ap_null_char, NULL,
3606 nvl(l_vendor_rec.allow_awt_flag, allow_awt_flag))
3607 ,decode(l_vendor_rec.allow_substitute_receipts_flag,
3608 ap_null_char, NULL,
3609 nvl(l_vendor_rec.allow_substitute_receipts_flag,
3610 allow_substitute_receipts_flag))
3611 ,decode(l_vendor_rec.allow_unordered_receipts_flag,
3612 ap_null_char, NULL,
3613 nvl(l_vendor_rec.allow_unordered_receipts_flag,
3614 allow_unordered_receipts_flag))
3615 ,decode(l_vendor_rec.always_take_disc_flag,
3616 ap_null_char,NULL,
3617 nvl(l_vendor_rec.always_take_disc_flag,
3618 always_take_disc_flag))
3619 ,decode(l_vendor_rec.attribute_category,
3620 ap_null_char, NULL,
3621 nvl(l_vendor_rec.attribute_category,
3622 attribute_category))
3623 ,decode(l_vendor_rec.attribute1,
3624 ap_null_char, NULL,
3625 nvl(l_vendor_rec.attribute1, attribute1))
3626 ,decode(l_vendor_rec.attribute10,
3627 ap_null_char, NULL,
3628 nvl(l_vendor_rec.attribute10, attribute10))
3629 ,decode(l_vendor_rec.attribute11,
3630 ap_null_char, NULL,
3631 nvl(l_vendor_rec.attribute11, attribute11))
3632 ,decode(l_vendor_rec.attribute12,
3633 ap_null_char, NULL,
3634 nvl(l_vendor_rec.attribute12, attribute12))
3635 ,decode(l_vendor_rec.attribute13,
3636 ap_null_char, NULL,
3637 nvl(l_vendor_rec.attribute13, attribute13))
3638 ,decode(l_vendor_rec.attribute14,
3639 ap_null_char, NULL,
3640 nvl(l_vendor_rec.attribute14, attribute14))
3641 ,decode(l_vendor_rec.attribute15,
3642 ap_null_char, NULL,
3643 nvl(l_vendor_rec.attribute15, attribute15))
3644 ,decode(l_vendor_rec.attribute2,
3645 ap_null_char, NULL,
3646 nvl(l_vendor_rec.attribute2, attribute2))
3647 ,decode(l_vendor_rec.attribute3,
3648 ap_null_char, NULL,
3649 nvl(l_vendor_rec.attribute3, attribute3))
3650 ,decode(l_vendor_rec.attribute4,
3651 ap_null_char, NULL,
3652 nvl(l_vendor_rec.attribute4, attribute4))
3653 ,decode(l_vendor_rec.attribute5,
3654 ap_null_char, NULL,
3655 nvl(l_vendor_rec.attribute5, attribute5))
3656 ,decode(l_vendor_rec.attribute6,
3657 ap_null_char, NULL,
3658 nvl(l_vendor_rec.attribute6, attribute6))
3659 ,decode(l_vendor_rec.attribute7,
3660 ap_null_char, NULL,
3661 nvl(l_vendor_rec.attribute7, attribute7))
3662 ,decode(l_vendor_rec.attribute8,
3663 ap_null_char, NULL,
3664 nvl(l_vendor_rec.attribute8, attribute8))
3665 ,decode(l_vendor_rec.attribute9,
3666 ap_null_char, NULL,
3667 nvl(l_vendor_rec.attribute9, attribute9))
3668 ,decode(l_vendor_rec.auto_calculate_interest_flag,
3669 ap_null_char, NULL,
3670 nvl(l_vendor_rec.auto_calculate_interest_flag,
3671 auto_calculate_interest_flag))
3672 ,decode(l_vendor_rec.awt_group_id,
3673 ap_null_num,NULL,
3674 nvl(l_vendor_rec.awt_group_id,
3675 awt_group_id))
3676 ,decode(l_vendor_rec.bank_charge_bearer,
3677 ap_null_char,NULL,
3678 nvl(l_vendor_rec.bank_charge_bearer,
3679 bank_charge_bearer))
3680 ,decode(l_vendor_rec.check_digits,
3681 ap_null_char, NULL,
3682 nvl(l_vendor_rec.check_digits,
3683 check_digits))
3684 ,decode(l_vendor_rec.create_debit_memo_flag,
3685 ap_null_char,NULL,
3686 nvl(l_vendor_rec.create_debit_memo_flag,
3687 create_debit_memo_flag))
3688 ,decode(l_vendor_rec.customer_num,
3689 ap_null_char,NULL,
3690 nvl(l_vendor_rec.customer_num,
3691 customer_num))
3692 ,decode(l_vendor_rec.days_early_receipt_allowed,
3693 ap_null_num,NULL,
3694 nvl(l_vendor_rec.days_early_receipt_allowed,
3695 days_early_receipt_allowed))
3696 ,decode(l_vendor_rec.days_late_receipt_allowed,
3697 ap_null_num,NULL,
3698 nvl(l_vendor_rec.days_late_receipt_allowed,
3699 days_late_receipt_allowed))
3700 ,decode(l_vendor_rec.employee_id,
3701 ap_null_num,NULL,
3702 nvl(l_vendor_rec.employee_id,
3703 employee_id))
3704 ,decode(l_vendor_rec.enabled_flag,
3705 ap_null_char,NULL,
3706 nvl(l_vendor_rec.enabled_flag,
3707 enabled_flag))
3708 ,decode(l_vendor_rec.end_date_active,
3709 ap_null_date,NULL,
3710 nvl(l_vendor_rec.end_date_active,
3711 end_date_active))
3712 ,decode(l_vendor_rec.enforce_ship_to_location_code,
3713 ap_null_char, NULL,
3714 nvl(l_vendor_rec.enforce_ship_to_location_code,
3715 enforce_ship_to_location_code ))
3716 ,decode(l_vendor_rec.exclude_freight_from_discount,
3717 ap_null_char,NULL,
3718 nvl(l_vendor_rec.exclude_freight_from_discount,
3719 exclude_freight_from_discount))
3720 ,decode(l_vendor_rec.federal_reportable_flag,
3721 ap_null_char,NULL,
3722 nvl(l_vendor_rec.federal_reportable_flag,
3723 federal_reportable_flag))
3724 ,decode(l_vendor_rec.global_attribute_category,
3725 ap_null_char,NULL,
3726 nvl(l_vendor_rec.global_attribute_category,
3727 global_attribute_category))
3728 ,decode(l_vendor_rec.global_attribute1,
3729 ap_null_char,NULL,
3730 nvl(l_vendor_rec.global_attribute1,
3731 global_attribute1))
3732 ,decode(l_vendor_rec.global_attribute2,
3733 ap_null_char,NULL,
3734 nvl(l_vendor_rec.global_attribute2,
3735 global_attribute2))
3736 ,decode(l_vendor_rec.global_attribute3,
3737 ap_null_char,NULL,
3738 nvl(l_vendor_rec.global_attribute3,
3739 global_attribute3))
3740 ,decode(l_vendor_rec.global_attribute4,
3741 ap_null_char,NULL,
3742 nvl(l_vendor_rec.global_attribute4,
3743 global_attribute4))
3744 ,decode(l_vendor_rec.global_attribute5,
3745 ap_null_char,NULL,
3746 nvl(l_vendor_rec.global_attribute5,
3747 global_attribute5))
3748 ,decode(l_vendor_rec.global_attribute6,
3749 ap_null_char,NULL,
3750 nvl(l_vendor_rec.global_attribute6,
3751 global_attribute6))
3752 ,decode(l_vendor_rec.global_attribute7,
3753 ap_null_char,NULL,
3754 nvl(l_vendor_rec.global_attribute7,
3755 global_attribute7))
3756 ,decode(l_vendor_rec.global_attribute8,
3757 ap_null_char,NULL,
3758 nvl(l_vendor_rec.global_attribute8,
3759 global_attribute8))
3760 ,decode(l_vendor_rec.global_attribute9,
3761 ap_null_char,NULL,
3762 nvl(l_vendor_rec.global_attribute9,
3763 global_attribute9))
3764 ,decode(l_vendor_rec.global_attribute10,
3765 ap_null_char,NULL,
3766 nvl(l_vendor_rec.global_attribute10,
3767 global_attribute10))
3768 ,decode(l_vendor_rec.global_attribute11,
3769 ap_null_char,NULL,
3770 nvl(l_vendor_rec.global_attribute11,
3771 global_attribute11))
3772 ,decode(l_vendor_rec.global_attribute12,
3773 ap_null_char,NULL,
3774 nvl(l_vendor_rec.global_attribute12,
3775 global_attribute12))
3776 ,decode(l_vendor_rec.global_attribute13,
3777 ap_null_char,NULL,
3778 nvl(l_vendor_rec.global_attribute13,
3779 global_attribute13))
3780 ,decode(l_vendor_rec.global_attribute14,
3781 ap_null_char,NULL,
3782 nvl(l_vendor_rec.global_attribute14,
3783 global_attribute14))
3784 ,decode(l_vendor_rec.global_attribute15,
3785 ap_null_char,NULL,
3786 nvl(l_vendor_rec.global_attribute15,
3787 global_attribute15))
3788 ,decode(l_vendor_rec.global_attribute16,
3789 ap_null_char,NULL,
3790 nvl(l_vendor_rec.global_attribute16,
3791 global_attribute16))
3792 ,decode(l_vendor_rec.global_attribute17,
3793 ap_null_char,NULL,
3794 nvl(l_vendor_rec.global_attribute17,
3795 global_attribute17))
3796 ,decode(l_vendor_rec.global_attribute18,
3797 ap_null_char,NULL,
3798 nvl(l_vendor_rec.global_attribute18,
3799 global_attribute18))
3800 ,decode(l_vendor_rec.global_attribute19,
3801 ap_null_char,NULL,
3802 nvl(l_vendor_rec.global_attribute19,
3803 global_attribute19))
3804 ,decode(l_vendor_rec.global_attribute20,
3805 ap_null_char,NULL,
3806 nvl(l_vendor_rec.global_attribute20,
3807 global_attribute20))
3808 ,decode(l_vendor_rec.hold_all_payments_flag,
3809 ap_null_char,NULL,
3810 nvl(l_vendor_rec.hold_all_payments_flag,
3811 hold_all_payments_flag))
3812 ,decode(l_vendor_rec.hold_by,
3813 ap_null_num, NULL,
3814 nvl(l_vendor_rec.hold_by, hold_by))
3815 ,decode(l_vendor_rec.hold_date,
3816 ap_null_date,NULL,
3817 nvl(l_vendor_rec.hold_date, hold_date))
3818 ,decode(l_vendor_rec.hold_flag,
3819 ap_null_char,NULL,
3820 nvl(l_vendor_rec.hold_flag, hold_flag))
3821 ,decode(l_vendor_rec.hold_future_payments_flag,
3822 ap_null_char,NULL,
3823 nvl(l_vendor_rec.hold_future_payments_flag,
3824 hold_future_payments_flag))
3825 ,decode(l_vendor_rec.hold_reason,
3826 ap_null_char,NULL,
3827 nvl(l_vendor_rec.hold_reason, hold_reason))
3828 ,decode(l_vendor_rec.hold_unmatched_invoices_flag,
3829 ap_null_char,NULL,
3830 nvl(l_vendor_rec.hold_unmatched_invoices_flag,
3831 hold_unmatched_invoices_flag))
3832 ,decode(l_vendor_rec.inspection_required_flag,
3833 ap_null_char,NULL,
3834 nvl(l_vendor_rec.inspection_required_flag,
3835 inspection_required_flag ))
3836 ,decode(l_vendor_rec.invoice_amount_limit,
3837 ap_null_num, NULL,
3838 nvl(l_vendor_rec.invoice_amount_limit,
3839 invoice_amount_limit))
3840 ,decode(l_vendor_rec.invoice_currency_code,
3841 ap_null_char,NULL,
3842 nvl(l_vendor_rec.invoice_currency_code,
3843 invoice_currency_code))
3844 ,decode(l_vendor_rec.match_option,
3845 ap_null_char,NULL,
3846 nvl(l_vendor_rec.match_option, match_option))
3847 ,decode(l_vendor_rec.min_order_amount,
3848 ap_null_num,NULL,
3849 nvl(l_vendor_rec.min_order_amount,
3850 min_order_amount))
3851 ,decode(l_vendor_rec.minority_group_lookup_code,
3852 ap_null_char,NULL,
3853 nvl(l_vendor_rec.minority_group_lookup_code,
3854 minority_group_lookup_code))
3855 ,decode(l_vendor_rec.name_control,
3856 ap_null_char,NULL,
3857 nvl(l_vendor_rec.name_control, name_control))
3858 ,decode(l_vendor_rec.one_time_flag,
3859 ap_null_char,NULL,
3860 nvl(l_vendor_rec.one_time_flag, one_time_flag ))
3861 ,decode(l_vendor_rec.organization_type_lookup_code,
3862 ap_null_char,NULL,
3863 nvl(l_vendor_rec.organization_type_lookup_code,
3864 organization_type_lookup_code))
3865 ,decode(l_vendor_rec.parent_vendor_id,
3866 ap_null_num,NULL,
3867 nvl(l_vendor_rec.parent_vendor_id,
3868 parent_vendor_id))
3869 ,decode(l_vendor_rec.parent_party_id,
3870 ap_null_num,NULL,
3871 nvl(l_vendor_rec.parent_party_id,
3872 parent_party_id))
3873 ,decode(l_vendor_rec.party_id,
3874 ap_null_num,NULL,
3875 nvl(l_vendor_rec.party_id, party_id))
3876 ,decode(l_vendor_rec.pay_date_basis_lookup_code,
3877 ap_null_char,NULL,
3878 nvl(l_vendor_rec.pay_date_basis_lookup_code,
3879 pay_date_basis_lookup_code))
3880 ,decode(l_vendor_rec.pay_group_lookup_code,
3881 ap_null_char,NULL,
3882 nvl(l_vendor_rec.pay_group_lookup_code,
3883 pay_group_lookup_code))
3884 ,decode(l_vendor_rec.payment_currency_code,
3885 ap_null_char,NULL,
3886 nvl(l_vendor_rec.payment_currency_code,
3887 payment_currency_code))
3888 ,decode(l_vendor_rec.payment_priority,
3889 ap_null_num,NULL,
3890 nvl(l_vendor_rec.payment_priority,
3891 payment_priority))
3892 ,decode(l_vendor_rec.purchasing_hold_reason,
3893 ap_null_char,NULL,
3894 nvl(l_vendor_rec.purchasing_hold_reason,
3895 purchasing_hold_reason))
3896 ,decode(l_vendor_rec.qty_rcv_exception_code,
3897 ap_null_char,NULL,
3898 nvl(l_vendor_rec.qty_rcv_exception_code,
3899 qty_rcv_exception_code))
3900 ,decode(l_vendor_rec.qty_rcv_tolerance,
3901 ap_null_num,NULL,
3902 nvl(l_vendor_rec.qty_rcv_tolerance,
3903 qty_rcv_tolerance))
3904 ,decode(l_vendor_rec.receipt_days_exception_code,
3905 ap_null_char,NULL,
3906 nvl(l_vendor_rec.receipt_days_exception_code,
3907 receipt_days_exception_code))
3908 ,decode(l_vendor_rec.receipt_required_flag,
3909 ap_null_char,NULL,
3910 nvl(l_vendor_rec.receipt_required_flag,
3911 receipt_required_flag))
3912 ,decode(l_vendor_rec.receiving_routing_id,
3913 ap_null_num,NULL,
3914 nvl(l_vendor_rec.receiving_routing_id,
3915 receiving_routing_id))
3916 ,decode(l_vendor_rec.segment1,
3917 ap_null_char,NULL,
3918 nvl(l_vendor_rec.segment1, segment1 ))
3919 ,decode(l_vendor_rec.segment2,
3920 ap_null_char,NULL,
3921 nvl(l_vendor_rec.segment2, segment2 ))
3922 ,decode(l_vendor_rec.segment3,
3923 ap_null_char,NULL,
3924 nvl(l_vendor_rec.segment3, segment3 ))
3925 ,decode(l_vendor_rec.segment4,
3926 ap_null_char,NULL,
3927 nvl(l_vendor_rec.segment4, segment4 ))
3928 ,decode(l_vendor_rec.segment5,
3929 ap_null_char,NULL,
3930 nvl(l_vendor_rec.segment5, segment5 ))
3931 ,decode(l_vendor_rec.set_of_books_id,
3932 ap_null_num,NULL,
3933 nvl(l_vendor_rec.set_of_books_id,
3934 set_of_books_id))
3935 ,decode(l_vendor_rec.small_business_flag,
3936 ap_null_char,NULL,
3937 nvl(l_vendor_rec.small_business_flag,
3938 small_business_flag ))
3939 ,decode(l_vendor_rec.start_date_active,
3940 ap_null_date,NULL,
3941 nvl(l_vendor_rec.start_date_active,
3942 start_date_active))
3943 ,decode(l_vendor_rec.state_reportable_flag,
3944 ap_null_char,NULL,
3945 nvl(l_vendor_rec.state_reportable_flag,
3946 state_reportable_flag))
3947 ,decode(l_vendor_rec.summary_flag,
3948 ap_null_char,NULL,
3949 nvl(l_vendor_rec.summary_flag, summary_flag))
3950 ,decode(l_vendor_rec.tax_reporting_name,
3951 ap_null_char,NULL,
3952 nvl(l_vendor_rec.tax_reporting_name,
3953 tax_reporting_name))
3954 ,decode(l_vendor_rec.tax_verification_date,
3955 ap_null_date,NULL,
3956 nvl(l_vendor_rec.tax_verification_date,
3957 tax_verification_date))
3958 ,decode(l_vendor_rec.terms_date_basis,
3959 ap_null_char,NULL,
3960 nvl(l_vendor_rec.terms_date_basis,
3961 terms_date_basis))
3962 ,decode(l_vendor_rec.terms_id,
3963 ap_null_num,NULL,
3964 nvl(l_vendor_rec.terms_id, terms_id ))
3965 --bug6050423 starts.system inserts taxpayer id
3966 --of individual contractors into ap_suppliers
3967 ,decode(l_vendor_rec.jgzz_fiscal_code,
3968 ap_null_char,NULL,
3969 nvl(l_vendor_rec.jgzz_fiscal_code,nvl(individual_1099,num_1099)))
3970 --bug6050423 ends
3971 ,decode(l_vendor_rec.type_1099,
3972 ap_null_char,NULL,
3973 nvl(l_vendor_rec.type_1099, type_1099))
3974 ,decode(l_vendor_rec.validation_number,
3975 ap_null_char,NULL,
3976 nvl(l_vendor_rec.validation_number,
3977 validation_number))
3978 ,decode(l_vendor_rec.vendor_type_lookup_code,
3979 ap_null_char,NULL,
3980 nvl(l_vendor_rec.vendor_type_lookup_code,
3981 vendor_type_lookup_code))
3982 ,decode(l_vendor_rec.withholding_start_date,
3983 ap_null_date,NULL,
3984 nvl(l_vendor_rec.withholding_start_date,
3985 withholding_start_date))
3986 ,decode(l_vendor_rec.withholding_status_lookup_code,
3987 ap_null_char,NULL,
3988 nvl(l_vendor_rec.withholding_status_lookup_code,
3989 withholding_status_lookup_code))
3990 ,decode(l_vendor_rec.women_owned_flag,
3991 ap_null_char,NULL,
3992 nvl(l_vendor_rec.women_owned_flag,women_owned_flag))
3993 -- bug7561758
3994 ,decode(l_vendor_rec.pay_awt_group_id,
3995 ap_null_num,NULL,
3996 nvl(l_vendor_rec.pay_awt_group_id,
3997 pay_awt_group_id))
3998 ,rowid
3999 INTO
4000 l_vendor_rec.allow_awt_flag
4001 ,l_vendor_rec.allow_substitute_receipts_flag
4002 ,l_vendor_rec.allow_unordered_receipts_flag
4003 ,l_vendor_rec.always_take_disc_flag
4004 ,l_vendor_rec.attribute_category
4005 ,l_vendor_rec.attribute1
4006 ,l_vendor_rec.attribute10
4007 ,l_vendor_rec.attribute11
4008 ,l_vendor_rec.attribute12
4009 ,l_vendor_rec.attribute13
4010 ,l_vendor_rec.attribute14
4011 ,l_vendor_rec.attribute15
4012 ,l_vendor_rec.attribute2
4013 ,l_vendor_rec.attribute3
4014 ,l_vendor_rec.attribute4
4015 ,l_vendor_rec.attribute5
4016 ,l_vendor_rec.attribute6
4017 ,l_vendor_rec.attribute7
4018 ,l_vendor_rec.attribute8
4019 ,l_vendor_rec.attribute9
4020 ,l_vendor_rec.auto_calculate_interest_flag
4021 ,l_vendor_rec.awt_group_id
4022 ,l_vendor_rec.bank_charge_bearer
4023 ,l_vendor_rec.check_digits
4024 ,l_vendor_rec.create_debit_memo_flag
4025 ,l_vendor_rec.customer_num
4026 ,l_vendor_rec.days_early_receipt_allowed
4027 ,l_vendor_rec.days_late_receipt_allowed
4028 ,l_vendor_rec.employee_id
4029 ,l_vendor_rec.enabled_flag
4030 ,l_vendor_rec.end_date_active
4031 ,l_vendor_rec.enforce_ship_to_location_code
4032 ,l_vendor_rec.exclude_freight_from_discount
4033 ,l_vendor_rec.federal_reportable_flag
4034 ,l_vendor_rec.global_attribute_category
4035 ,l_vendor_rec.global_attribute1
4036 ,l_vendor_rec.global_attribute2
4037 ,l_vendor_rec.global_attribute3
4038 ,l_vendor_rec.global_attribute4
4039 ,l_vendor_rec.global_attribute5
4040 ,l_vendor_rec.global_attribute6
4041 ,l_vendor_rec.global_attribute7
4042 ,l_vendor_rec.global_attribute8
4043 ,l_vendor_rec.global_attribute9
4044 ,l_vendor_rec.global_attribute10
4045 ,l_vendor_rec.global_attribute11
4046 ,l_vendor_rec.global_attribute12
4047 ,l_vendor_rec.global_attribute13
4048 ,l_vendor_rec.global_attribute14
4049 ,l_vendor_rec.global_attribute15
4050 ,l_vendor_rec.global_attribute16
4051 ,l_vendor_rec.global_attribute17
4052 ,l_vendor_rec.global_attribute18
4053 ,l_vendor_rec.global_attribute19
4054 ,l_vendor_rec.global_attribute20
4055 ,l_vendor_rec.hold_all_payments_flag
4056 ,l_vendor_rec.hold_by
4057 ,l_vendor_rec.hold_date
4058 ,l_vendor_rec.hold_flag
4059 ,l_vendor_rec.hold_future_payments_flag
4060 ,l_vendor_rec.hold_reason
4061 ,l_vendor_rec.hold_unmatched_invoices_flag
4062 ,l_vendor_rec.inspection_required_flag
4063 ,l_vendor_rec.invoice_amount_limit
4064 ,l_vendor_rec.invoice_currency_code
4065 ,l_vendor_rec.match_option
4066 ,l_vendor_rec.min_order_amount
4067 ,l_vendor_rec.minority_group_lookup_code
4068 ,l_vendor_rec.name_control
4069 ,l_vendor_rec.one_time_flag
4070 ,l_vendor_rec.organization_type_lookup_code
4071 ,l_vendor_rec.parent_vendor_id
4072 ,l_vendor_rec.parent_party_id
4073 ,l_vendor_rec.party_id
4074 ,l_vendor_rec.pay_date_basis_lookup_code
4075 ,l_vendor_rec.pay_group_lookup_code
4076 ,l_vendor_rec.payment_currency_code
4077 ,l_vendor_rec.payment_priority
4078 ,l_vendor_rec.purchasing_hold_reason
4079 ,l_vendor_rec.qty_rcv_exception_code
4080 ,l_vendor_rec.qty_rcv_tolerance
4081 ,l_vendor_rec.receipt_days_exception_code
4082 ,l_vendor_rec.receipt_required_flag
4083 ,l_vendor_rec.receiving_routing_id
4084 ,l_vendor_rec.segment1
4085 ,l_vendor_rec.segment2
4086 ,l_vendor_rec.segment3
4087 ,l_vendor_rec.segment4
4088 ,l_vendor_rec.segment5
4089 ,l_vendor_rec.set_of_books_id
4090 ,l_vendor_rec.small_business_flag
4091 ,l_vendor_rec.start_date_active
4092 ,l_vendor_rec.state_reportable_flag
4093 ,l_vendor_rec.summary_flag
4094 ,l_vendor_rec.tax_reporting_name
4095 ,l_vendor_rec.tax_verification_date
4096 ,l_vendor_rec.terms_date_basis
4097 ,l_vendor_rec.terms_id
4098 ,l_vendor_rec.jgzz_fiscal_code --bug6050423
4099 ,l_vendor_rec.type_1099
4100 ,l_vendor_rec.validation_number
4101 ,l_vendor_rec.vendor_type_lookup_code
4102 ,l_vendor_rec.withholding_start_date
4103 ,l_vendor_rec.withholding_status_lookup_code
4104 ,l_vendor_rec.women_owned_flag
4105 ,l_vendor_rec.pay_awt_group_id -- bug7561758
4106 ,l_rowid
4107 FROM po_vendors
4108 WHERE vendor_id = p_vendor_id;
4109
4110 ap_vendors_pkg.update_row(
4111 p_vendor_rec => l_vendor_rec,
4112 p_last_update_date => sysdate,
4113 p_last_updated_by => l_user_id,
4114 p_last_update_login => l_last_update_login,
4115 p_request_id => l_request_id ,
4116 p_program_application_id => l_program_application_id,
4117 p_program_id => l_program_id,
4118 p_program_update_date => sysdate,
4119 p_rowid => l_rowid,
4120 p_vendor_id => p_vendor_id);
4121
4122 --
4123 -- Added Call to Sync the Party Information into ap_supplier
4124 -- record for the performance reasons.
4125 --
4126
4127 AP_TCA_SUPPLIER_SYNC_PKG.SYNC_Supplier(
4128 l_sync_return_status,
4129 l_sync_msg_count,
4130 l_sync_msg_data,
4131 l_vendor_rec.party_id);
4132
4133 IF l_sync_return_status = FND_API.G_RET_STS_SUCCESS THEN
4134 Raise_Supplier_Event( i_vendor_id => p_vendor_id ); -- Bug 7307669
4135 x_return_status := FND_API.G_RET_STS_SUCCESS;
4136 END IF;
4137
4138 ELSIF (l_val_return_status = FND_API.G_RET_STS_UNEXP_ERROR OR
4139 l_sync_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
4140
4141 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4142
4143 ELSE
4144
4145 x_return_status := FND_API.G_RET_STS_ERROR;
4146 END IF;
4147
4148 --set access mode back to original value
4149 IF l_org_context <> mo_global.get_access_mode THEN
4150 MO_GLOBAL.set_policy_context(l_org_context,l_def_org_id);
4151 END IF;
4152
4153 -- End of API body.
4154
4155 -- Standard check of p_commit.
4156 IF FND_API.To_Boolean( p_commit ) THEN
4157 COMMIT WORK;
4158 END IF;
4159
4160 -- Standard call to get message count and if count is 1,
4161 -- get message info.
4162 FND_MSG_PUB.Count_And_Get(
4163 p_count => x_msg_count ,
4164 p_data => x_msg_data
4165 );
4166
4167 EXCEPTION
4168 WHEN FND_API.G_EXC_ERROR THEN
4169 ROLLBACK TO Update_Vendor_PUB;
4170 x_return_status := FND_API.G_RET_STS_ERROR ;
4171 FND_MSG_PUB.Count_And_Get
4172 ( p_count => x_msg_count,
4173 p_data => x_msg_data
4174 );
4175 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4176 ROLLBACK TO Update_Vendor_PUB;
4177 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
4178 FND_MSG_PUB.Count_And_Get
4179 ( p_count => x_msg_count,
4180 p_data => x_msg_data
4181 );
4182 WHEN OTHERS THEN
4183 ROLLBACK TO Update_Vendor_PUB;
4184 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
4185 IF FND_MSG_PUB.Check_Msg_Level
4186 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
4187 FND_MSG_PUB.Add_Exc_Msg
4188 ( G_PKG_NAME ,
4189 l_api_name
4190 );
4191 END IF;
4192 FND_MSG_PUB.Count_And_Get
4193 ( p_count => x_msg_count,
4194 p_data => x_msg_data
4195 );
4196 END Update_Vendor;
4197
4198 PROCEDURE Validate_Vendor
4199 ( p_api_version IN NUMBER,
4200 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
4201 p_commit IN VARCHAR2 := FND_API.G_FALSE,
4202 p_validation_level IN NUMBER :=
4203 FND_API.G_VALID_LEVEL_FULL,
4204 x_return_status OUT NOCOPY VARCHAR2 ,
4205 x_msg_count OUT NOCOPY NUMBER,
4206 x_msg_data OUT NOCOPY VARCHAR2,
4207 p_vendor_rec IN OUT NOCOPY r_vendor_rec_type,
4208 p_mode IN VARCHAR2,
4209 p_calling_prog IN VARCHAR2,
4210 x_party_valid OUT NOCOPY VARCHAR2,
4211 x_payee_valid OUT NOCOPY VARCHAR2,
4212 p_vendor_id IN NUMBER
4213
4214 )
4215 IS
4216 l_api_name CONSTANT VARCHAR2(30) := 'Validate_Vendor';
4217 l_api_version CONSTANT NUMBER := 1.0;
4218
4219 l_def_org_id NUMBER;
4220 l_debug_info VARCHAR2(2000);
4221 x_valid BOOLEAN;
4222 l_segment1 VARCHAR2(30);
4223 l_payee_return_status VARCHAR2(50);
4224 l_payee_msg_count NUMBER;
4225 l_payee_msg_data VARCHAR2(1000);
4226 l_default_country_code VARCHAR2(25); --bug6050423
4227
4228
4229 BEGIN
4230 -- Standard Start of API savepoint
4231 SAVEPOINT Validate_Vendor_PUB;
4232
4233 -- Standard call to check for call compatibility.
4234 IF NOT FND_API.Compatible_API_Call ( l_api_version ,
4235 p_api_version ,
4236 l_api_name ,
4237 G_PKG_NAME )
4238 THEN
4239 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4240 END IF;
4241
4242 -- Initialize message list if p_init_msg_list is set to TRUE.
4243 IF FND_API.to_Boolean( p_init_msg_list ) THEN
4244 FND_MSG_PUB.initialize;
4245 END IF;
4246
4247 -- Initialize API return status to success
4248 x_return_status := FND_API.G_RET_STS_SUCCESS;
4249
4250 -- API body
4251
4252 -- Open Issue 7 Call eTax Validation
4253
4254 ------------------------------------------------------------------------
4255 l_debug_info := 'Call to Validate inspection_required_flag';
4256 ------------------------------------------------------------------------
4257 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4258 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
4259 END IF;
4260 --
4261 -- Validate inspection_required_flag
4262 --
4263 IF p_vendor_rec.inspection_required_flag is NOT NULL
4264 AND p_vendor_rec.inspection_required_flag <> ap_null_char THEN
4265
4266 Validate_Lookups( 'INSPECTION_REQUIRED_FLAG', p_vendor_rec.inspection_required_flag,'YES/NO',
4267 'PO_LOOKUP_CODES',x_valid);
4268 IF NOT x_valid THEN
4269 x_return_status := FND_API.G_RET_STS_ERROR;
4270 IF g_source = 'IMPORT' THEN
4271 IF (Insert_Rejections(
4272 'AP_SUPPLIERS_INT',
4273 p_vendor_rec.vendor_interface_id,
4274 'AP_INVALID_INSP_REQ_FLAG',
4275 g_user_id,
4276 g_login_id,
4277 'Validate_Vendor') <> TRUE) THEN
4278 --
4279 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4280 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
4281 l_api_name,'Parameters: '
4282 ||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
4283 ||' ,Inspection_Required_Flag: '||p_vendor_rec.inspection_required_flag);
4284 END IF;
4285 END IF;
4286 ELSE
4287 -- Bug 5491139 hkaniven start --
4288 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_INSP_REQ_FLAG');
4289 FND_MSG_PUB.ADD;
4290 -- Bug 5491139 hkaniven end --
4291 END IF;
4292 END IF;
4293 END IF;
4294
4295 ------------------------------------------------------------------------
4296 l_debug_info := 'Call to Validate receipt_required_flag';
4297 ------------------------------------------------------------------------
4298 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4299 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME|| l_api_name,l_debug_info);
4300 END IF;
4301 --
4302 -- Validate receipt_required_flag
4303 --
4304 IF p_vendor_rec.receipt_required_flag is NOT NULL
4305 AND p_vendor_rec.receipt_required_flag <> ap_null_char THEN
4306
4307 Validate_Lookups( 'RECEIPT_REQUIRED_FLAG', p_vendor_rec.receipt_required_flag,'YES/NO',
4308 'PO_LOOKUP_CODES',x_valid);
4309 IF NOT x_valid THEN
4310 x_return_status := FND_API.G_RET_STS_ERROR;
4311 IF g_source = 'IMPORT' THEN
4312 IF (Insert_Rejections(
4313 'AP_SUPPLIERS_INT',
4314 p_vendor_rec.vendor_interface_id,
4315 'AP_INVALID_REC_REQ_FLAG',
4316 g_user_id,
4317 g_login_id,
4318 'Validate_Vendor') <> TRUE) THEN
4319 --
4320 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4321 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
4322 l_api_name,'Parameters: '
4323 ||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
4324 ||' ,Receipt_Required_Flag: '||p_vendor_rec.receipt_required_flag);
4325 END IF;
4326 END IF;
4327
4328 ELSE
4329 -- Bug 5491139 hkaniven start --
4330 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_REC_REQ_FLAG');
4331 FND_MSG_PUB.ADD;
4332 -- Bug 5491139 hkaniven end --
4333 END IF;
4334 END IF;
4335 END IF;
4336
4337 ------------------------------------------------------------------------
4338 l_debug_info := 'Call to Validate Payment_Priority';
4339 ------------------------------------------------------------------------
4340 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4341 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
4342 l_api_name,l_debug_info);
4343 END IF;
4344 --
4345 -- Validate Payment_Priority
4346 --
4347 IF p_vendor_rec.payment_priority is NOT NULL
4348 AND p_vendor_rec.payment_priority <> ap_null_num THEN
4349
4350 Check_payment_priority(p_vendor_rec.payment_priority,
4351 x_valid
4352 );
4353 IF NOT x_valid THEN
4354 x_return_status := FND_API.G_RET_STS_ERROR;
4355 IF g_source = 'IMPORT' THEN
4356 IF (Insert_Rejections(
4357 'AP_SUPPLIERS_INT',
4358 p_vendor_rec.vendor_interface_id,
4359 'AP_INVALID_PAYMENT_PRIORITY',
4360 g_user_id,
4361 g_login_id,
4362 'Validate_Vendor') <> TRUE) THEN
4363 --
4364 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4365 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
4366 l_api_name,'Parameters: '
4367 ||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
4368 ||' ,Payment_Priority: '||p_vendor_rec.payment_priority);
4369 END IF;
4370 END IF;
4371 ELSE
4372 -- Bug 5491139 hkaniven start --
4373 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PAYMENT_PRIORITY');
4374 FND_MSG_PUB.ADD;
4375 -- Bug 5491139 hkaniven end --
4376 END IF;
4377 END IF;
4378 END IF;
4379
4380 ------------------------------------------------------------------------
4381 l_debug_info := 'Call to Validate the 1099_type value';
4382 ------------------------------------------------------------------------
4383 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4384 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
4385 l_api_name,l_debug_info);
4386 END IF;
4387 --
4388 -- Validate the 1099_type value
4389 --
4390 IF p_vendor_rec.type_1099 IS NOT NULL
4391 AND p_vendor_rec.type_1099 <> ap_null_char THEN
4392 Check_Valid_1099_type(p_vendor_rec.type_1099,
4393 p_vendor_rec.federal_reportable_flag,
4394 x_valid
4395 );
4396 IF NOT x_valid THEN
4397 x_return_status := FND_API.G_RET_STS_ERROR;
4398 IF g_source = 'IMPORT' THEN
4399 IF (Insert_Rejections(
4400 'AP_SUPPLIERS_INT',
4401 p_vendor_rec.vendor_interface_id,
4402 'AP_INCONSISTENT_1099_TYPE',
4403 g_user_id,
4404 g_login_id,
4405 'Validate_Vendor') <> TRUE) THEN
4406 --
4407 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4408 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
4409 l_api_name,'Parameters: '
4410 ||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
4411 ||' ,Type_1099: '||p_vendor_rec.type_1099
4412 ||' ,Federal_Reportable_Flag: '||p_vendor_rec.federal_reportable_flag);
4413 END IF;
4414 END IF;
4415 ELSE
4416 -- Bug 5491139 hkaniven start --
4417 FND_MESSAGE.SET_NAME('SQLAP','AP_INCONSISTENT_1099_TYPE');
4418 FND_MSG_PUB.ADD;
4419 -- Bug 5491139 hkaniven end --
4420 END IF;
4421 END IF;
4422 END IF;
4423
4424 --bug6050423.Added the below validation for num_1099 for
4425 --contractor individuals
4426 --bug6691916.commented the below if clause and added the one below that.
4427 --as per analysis,only organization lookup code of type individual
4428 --and foreign individual belong to individual suppliers category.
4429
4430 /* if ( UPPER(p_vendor_rec.vendor_type_lookup_code)='CONTRACTOR'
4431 AND UPPER(p_vendor_rec.organization_type_lookup_code) IN
4432 ('INDIVIDUAL','FOREIGN INDIVIDUAL',
4433 'PARTNERSHIP','FOREIGN PARTNERSHIP') )THEN*/
4434 if ( UPPER(p_vendor_rec.organization_type_lookup_code) IN
4435 ('INDIVIDUAL','FOREIGN INDIVIDUAL') )THEN
4436 ------------------------------------------------------------------------
4437 l_debug_info := 'Call to Validate the jgzz_fiscal_code value';
4438 ------------------------------------------------------------------------
4439 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4440 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
4441 l_api_name,l_debug_info);
4442 END IF;
4443 --
4444 -- Validate the jgzz_fiscal_code value
4445 --
4446
4447
4448 fnd_profile.get('DEFAULT_COUNTRY',l_default_country_code);
4449
4450 IF( l_default_country_code is null
4451 AND
4452 p_vendor_rec.set_of_books_id IS NOT NULL) then
4453
4454 -- Commented for Bug 6852552
4455
4456 /*
4457 SELECT FIN.vat_country_code
4458 INTO l_default_country_code
4459 FROM FINANCIALS_SYSTEM_PARAMS_ALL FIN,
4460 AP_SYSTEM_PARAMETERS_ALL ASP
4461 WHERE ASP.set_of_books_id=p_vendor_rec.set_of_books_id
4462 AND FIN.org_id = ASP.org_id;
4463 */
4464
4465 -- Added for Bug 6852552
4466 IF g_source = 'IMPORT' THEN
4467 IF (Insert_Rejections(
4468 'AP_SUPPLIERS_INT',
4469 p_vendor_rec.vendor_interface_id,
4470 'AP_DEFAULT_COUNTRY_CODE_NULL',
4471 g_user_id,
4472 g_login_id,
4473 'Validate_Vendor') <> TRUE) THEN
4474 --
4475 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4476 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
4477 l_api_name,'Default Country is Null');
4478 END IF;
4479 END IF;
4480
4481 ELSE
4482 FND_MESSAGE.SET_NAME('SQLAP','AP_DEFAULT_COUNTRY_CODE_NULL');
4483 FND_MSG_PUB.ADD;
4484 END IF;
4485
4486 -- End of Bug 6852552
4487
4488
4489
4490 END IF;
4491
4492
4493
4494
4495
4496 IF p_vendor_rec.jgzz_fiscal_code IS NOT NULL
4497 AND p_vendor_rec.jgzz_fiscal_code <> ap_null_char
4498 AND l_default_country_code IS NOT NULL THEN
4499
4500 IF(is_taxpayer_id_valid(p_vendor_rec.jgzz_fiscal_code,
4501 l_default_country_code) = 'N') THEN
4502
4503 x_return_status := FND_API.G_RET_STS_ERROR;
4504 IF g_source = 'IMPORT' THEN
4505 IF (Insert_Rejections(
4506 'AP_SUPPLIERS_INT',
4507 p_vendor_rec.vendor_interface_id,
4508 'AP_INVALID_TAXPAYER_ID',
4509 g_user_id,
4510 g_login_id,
4511 'Validate_Vendor') <> TRUE) THEN
4512 --
4513 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4514 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
4515 l_api_name,'Parameters: '
4516 ||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
4517 ||' ,NUM_1099: '||p_vendor_rec.jgzz_fiscal_code
4518 ||' ,Federal_Reportable_Flag: '||p_vendor_rec.federal_reportable_flag);
4519 END IF;
4520 END IF;
4521 ELSE
4522 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_TAXPAYER_ID');
4523 FND_MSG_PUB.ADD;
4524 END IF;
4525 END IF;
4526 END IF;
4527
4528 END IF;--end check for contractor type suppliers
4529 --bug6050423 ends
4530
4531 ------------------------------------------------------------------------
4532 l_debug_info := 'Call to Validate the Employee_Id';
4533 ------------------------------------------------------------------------
4534 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4535 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
4536 l_api_name,l_debug_info);
4537 END IF;
4538 --
4539 -- Employee_Id validation
4540 --
4541 -- start added by abhsaxen for bug 7147735
4542 IF (p_vendor_rec.employee_id is null AND
4543 UPPER(p_vendor_rec.vendor_type_lookup_code)='EMPLOYEE') THEN
4544 x_return_status := FND_API.G_RET_STS_ERROR;
4545 IF g_source = 'IMPORT' THEN
4546 IF (Insert_Rejections(
4547 'AP_SUPPLIERS_INT',
4548 p_vendor_rec.vendor_interface_id,
4549 'AP_INVALID_EMPLOYEE_ID',
4550 g_user_id,
4551 g_login_id,
4552 'Validate_Vendor') <> TRUE) THEN
4553 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4554 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
4555 l_api_name,'Parameters: '
4556 ||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
4557 ||' ,Vendor_Type_Lookup_Code: '||p_vendor_rec.vendor_type_lookup_code
4558 ||' ,Employee_Id: NULL');
4559 END IF;
4560 END IF;
4561 ELSE
4562 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_EMPLOYEE_ID');
4563 FND_MSG_PUB.ADD;
4564 END IF;
4565 END IF;
4566 -- end added by abhsaxen for bug 7147735
4567 IF p_vendor_rec.employee_id is NOT NULL
4568 AND p_vendor_rec.employee_id <> fnd_api.g_miss_num THEN
4569 Check_Valid_Employee (p_vendor_rec.employee_id,
4570 x_valid);
4571 IF NOT x_valid THEN
4572 x_return_status := FND_API.G_RET_STS_ERROR;
4573 IF g_source = 'IMPORT' THEN
4574 IF (Insert_Rejections(
4575 'AP_SUPPLIERS_INT',
4576 p_vendor_rec.vendor_interface_id,
4577 'AP_INVALID_EMPLOYEE_ID',
4578 g_user_id,
4579 g_login_id,
4580 'Validate_Vendor') <> TRUE) THEN
4581 --
4582 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4583 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
4584 l_api_name,'Parameters: '
4585 ||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
4586 ||' ,Employee_Id: '||p_vendor_rec.employee_id);
4587 END IF;
4588 END IF;
4589 ELSE
4590 -- Bug 5491139 hkaniven start --
4591 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_EMPLOYEE_ID');
4592 FND_MSG_PUB.ADD;
4593 -- Bug 5491139 hkaniven end --
4594 END IF;
4595 END IF;
4596 -- start added by abhsaxen for bug 7147735
4597 IF x_valid THEN
4598 BEGIN
4599 SELECT PPF.PARTY_ID
4600 INTO P_VENDOR_REC.PARTY_ID
4601 FROM PER_PEOPLE_F PPF
4602 WHERE PPF.PERSON_ID = P_VENDOR_REC.EMPLOYEE_ID
4603 AND TRUNC(SYSDATE) BETWEEN
4604 TRUNC(ppf.effective_start_date) AND
4605 TRUNC(ppf.effective_end_date);
4606 EXCEPTION
4607 WHEN OTHERS THEN
4608 x_return_status := FND_API.G_RET_STS_ERROR;
4609 IF g_source = 'IMPORT' THEN
4610 IF (Insert_Rejections(
4611 'AP_SUPPLIERS_INT',
4612 p_vendor_rec.vendor_interface_id,
4613 'AP_INVALID_EMPLOYEE_ID',
4614 g_user_id,
4615 g_login_id,
4616 'Validate_Vendor') <> TRUE) THEN
4617 --
4618 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4619 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
4620 l_api_name,'Parameters: '
4621 ||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
4622 ||' ,Vendor_Type_Lookup_Code: '||p_vendor_rec.vendor_type_lookup_code
4623 ||' ,Not able to get Party Id From Employee Id.');
4624 END IF;
4625 END IF;
4626 ELSE
4627 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_EMPLOYEE_ID');
4628 FND_MSG_PUB.ADD;
4629 END IF;
4630 END;
4631 -- end added by abhsaxen for bug 7147735
4632 END IF;
4633 END IF;
4634
4635 ------------------------------------------------------------------------
4636 l_debug_info := 'Call to Validate inspection_required_flag and receipt_required_flag';
4637 ------------------------------------------------------------------------
4638 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4639 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
4640 l_api_name,l_debug_info);
4641 END IF;
4642 --
4643 -- Validate inspection_required_flag and receipt_required_flag
4644 --
4645 IF (p_vendor_rec.inspection_required_flag is NOT NULL AND
4646 p_vendor_rec.receipt_required_flag is NOT NULL AND
4647 p_vendor_rec.inspection_required_flag <> ap_null_char AND
4648 p_vendor_rec.receipt_required_flag <> ap_null_char) THEN
4649
4650 Check_Valid_match_level(p_vendor_rec.inspection_required_flag,
4651 p_vendor_rec.receipt_required_flag,
4652 x_valid
4653 );
4654 IF NOT x_valid THEN
4655 x_return_status := FND_API.G_RET_STS_ERROR;
4656 IF g_source = 'IMPORT' THEN
4657 IF (Insert_Rejections(
4658 'AP_SUPPLIERS_INT',
4659 p_vendor_rec.vendor_interface_id,
4660 'AP_INCONSISTENT_INSPEC_RECEIPT',
4661 g_user_id,
4662 g_login_id,
4663 'Validate_Vendor') <> TRUE) THEN
4664 --
4665 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4666 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
4667 l_api_name,'Parameters: '
4668 ||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
4669 ||' ,Inspection_Required_Flag: '||p_vendor_rec.inspection_required_flag
4670 ||' ,Receipt_Required_Flag: '||p_vendor_rec.receipt_required_flag);
4671 END IF;
4672 END IF;
4673 ELSE
4674 -- Bug 5491139 hkaniven start --
4675 FND_MESSAGE.SET_NAME('SQLAP','AP_INCONSISTENT_INSPEC_RECEIPT');
4676 FND_MSG_PUB.ADD;
4677 -- Bug 5491139 hkaniven end --
4678 END IF;
4679 END IF;
4680 END IF;
4681
4682 ------------------------------------------------------------------------
4683 l_debug_info := 'Call to Validate Name Control';
4684 ------------------------------------------------------------------------
4685 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4686 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
4687 l_api_name,l_debug_info);
4688 END IF;
4689 --
4690 -- Validate the Name Control value
4691 --
4692 IF p_vendor_rec.name_control IS NOT NULL
4693 AND p_vendor_rec.name_control <> ap_null_char THEN
4694 Check_Valid_name_control(p_vendor_rec.name_control,
4695 x_valid);
4696 IF NOT x_valid THEN
4697 x_return_status := FND_API.G_RET_STS_ERROR;
4698 IF g_source = 'IMPORT' THEN
4699 IF (Insert_Rejections(
4700 'AP_SUPPLIERS_INT',
4701 p_vendor_rec.vendor_interface_id,
4702 'AP_INVALID_NAME_CONTROL',
4703 g_user_id,
4704 g_login_id,
4705 'Validate_Vendor') <> TRUE) THEN
4706 --
4707 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4708 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
4709 l_api_name,'Parameters: '
4710 ||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
4711 ||' ,Name_Control: '||p_vendor_rec.name_control);
4712 END IF;
4713 END IF;
4714 ELSE
4715 -- Bug 5491139 hkaniven start --
4716 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_NAME_CONTROL');
4717 FND_MSG_PUB.ADD;
4718 -- Bug 5491139 hkaniven end --
4719 END IF;
4720 END IF;
4721 END IF;
4722
4723 /*
4724 ------------------------------------------------------------------------
4725 l_debug_info := 'Call to Validate ship_via_lookup_code';
4726 ------------------------------------------------------------------------
4727 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4728 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
4729 l_api_name,l_debug_info);
4730 END IF;
4731 --
4732 -- Validate ship_via_lookup_code
4733 --
4734 IF (p_vendor_rec.ship_via_lookup_code is NOT NULL and
4735 p_vendor_rec.inventory_organization_id is NOT NULL AND
4736 p_vendor_rec.ship_via_lookup_code <> ap_null_char AND
4737 p_vendor_rec.inventory_organization_id <> ap_null_num) THEN
4738
4739 Check_Valid_ship_via(p_vendor_rec.ship_via_lookup_code,
4740 p_vendor_rec.inventory_organization_id,
4741 x_valid
4742 );
4743
4744 IF NOT x_valid THEN
4745 x_return_status := FND_API.G_RET_STS_ERROR;
4746 IF g_source = 'IMPORT' THEN
4747 IF (Insert_Rejections(
4748 'AP_SUPPLIERS_INT',
4749 p_vendor_rec.vendor_interface_id,
4750 'AP_INCONSISTENT_SHIP_INVENTORY',
4751 g_user_id,
4752 g_login_id,
4753 'Validate_Vendor') <> TRUE) THEN
4754 --
4755 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4756 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
4757 l_api_name,'Parameters: '
4758 ||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
4759 ||' ,Ship_Via_Lookup_Code: '||p_vendor_rec.ship_via_lookup_code
4760 ||' ,Inventory_Organization_Id: '||p_vendor_rec.inventory_organization_id);
4761 END IF;
4762 END IF;
4763 ELSE
4764 -- Bug 5491139 hkaniven start --
4765 FND_MESSAGE.SET_NAME('SQLAP','AP_INCONSISTENT_SHIP_INVENTORY');
4766 FND_MSG_PUB.ADD;
4767 -- Bug 5491139 hkaniven end --
4768 END IF;
4769 END IF;
4770 END IF;
4771 */
4772
4773 ------------------------------------------------------------------------
4774 l_debug_info := 'Call to Validate set_of_books_id';
4775 ------------------------------------------------------------------------
4776 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4777 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
4778 l_api_name,l_debug_info);
4779 END IF;
4780 --
4781 -- Set_of_books_Id validation
4782 --
4783 IF p_vendor_rec.set_of_books_id is NOT NULL AND
4784 p_vendor_rec.set_of_books_id <> ap_null_num THEN
4785 Check_Valid_Sob_Id(p_vendor_rec.set_of_books_id,
4786 x_valid);
4787
4788 IF NOT x_valid THEN
4789 x_return_status := FND_API.G_RET_STS_ERROR;
4790 IF g_source = 'IMPORT' THEN
4791 IF (Insert_Rejections(
4792 'AP_SUPPLIERS_INT',
4793 p_vendor_rec.vendor_interface_id,
4794 'AP_INVALID_SOB',
4795 g_user_id,
4796 g_login_id,
4797 'Validate_Vendor') <> TRUE) THEN
4798 --
4799 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4800 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
4801 l_api_name,'Parameters: '
4802 ||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
4803 ||' ,Set_Of_Books_Id: '||p_vendor_rec.set_of_books_id);
4804 END IF;
4805 END IF;
4806 ELSE
4807 -- Bug 5491139 hkaniven start --
4808 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_SOB');
4809 FND_MSG_PUB.ADD;
4810 -- Bug 5491139 hkaniven end --
4811 END IF;
4812 END IF;
4813 END IF;
4814
4815 ------------------------------------------------------------------------
4816 l_debug_info := 'Call to Check for duplicate Employee assignment';
4817 ------------------------------------------------------------------------
4818 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4819 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
4820 l_api_name,l_debug_info);
4821 END IF;
4822 --
4823 -- Check for duplicate employee assignment
4824 --
4825 IF (p_vendor_rec.employee_id IS NOT NULL and --bug7023543 removed condition p_vendor_rec.vendor_id
4826 p_vendor_rec.employee_id <> ap_null_num) THEN --is not null
4827 Chk_Dup_Employee(p_vendor_id,
4828 p_vendor_rec.employee_id,
4829 x_valid);
4830
4831 IF NOT x_valid THEN
4832 x_return_status := FND_API.G_RET_STS_ERROR;
4833 END IF;
4834 END IF;
4835
4836 ------------------------------------------------------------------------
4837 l_debug_info := 'Call to Check for duplicate vendor number';
4838 ------------------------------------------------------------------------
4839 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4840 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
4841 l_api_name,l_debug_info);
4842 END IF;
4843 --
4844 -- Check for potential duplicate vendor numbers in Interface table
4845 --
4846 IF p_vendor_rec.segment1 IS NOT NULL AND
4847 p_vendor_rec.segment1 <> ap_null_char THEN
4848 Chk_Dup_segment1_int(p_vendor_rec.segment1,
4849 x_valid);
4850
4851 IF NOT x_valid THEN
4852 x_return_status := FND_API.G_RET_STS_ERROR;
4853 IF g_source = 'IMPORT' THEN
4854 IF (Insert_Rejections(
4855 'AP_SUPPLIERS_INT',
4856 p_vendor_rec.vendor_interface_id,
4857 --'DUPLICATE SEGMENT1 INT',
4858 'AP_INVALID_SEGMENT1_INT',
4859 g_user_id,
4860 g_login_id,
4861 'Validate_Vendor') <> TRUE) THEN
4862 --
4863 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4864 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
4865 l_api_name,'Parameters: '
4866 ||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
4867 ||' ,Segment1: '||p_vendor_rec.segment1);
4868 END IF;
4869 END IF;
4870 ELSE
4871 -- Bug 5491139 hkaniven start --
4872 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_SEGMENT1_INT');
4873 FND_MSG_PUB.ADD;
4874 -- Bug 5491139 hkaniven end --
4875 END IF;
4876 END IF;
4877 END IF;
4878
4879 /*Open Issue 1 -- no longer checking name uniqueness
4880 ------------------------------------------------------------------------
4881 l_debug_info := 'Call to Check for duplicate vendor name in interface table';
4882 ------------------------------------------------------------------------
4883 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4884 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
4885 l_api_name,l_debug_info);
4886 END IF;
4887 --
4888 -- Check for duplicate vendor names in Interface table too
4889 --
4890 IF p_vendor_rec.vendor_name IS NOT NULL THEN
4891 Chk_Dup_Vendor_Name_new(p_vendor_rec.vendor_name,
4892 x_valid);
4893
4894 IF NOT x_valid THEN
4895 x_return_status := FND_API.G_RET_STS_ERROR;
4896 END IF;
4897 END IF;
4898 */
4899
4900 ------------------------------------------------------------------------
4901 l_debug_info := 'Call to Check Duplicate Vendor Number in PO_VENDORS';
4902 ------------------------------------------------------------------------
4903 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4904 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
4905 l_api_name,l_debug_info);
4906 END IF;
4907 --
4908 -- Check for duplicate vendor number
4909 --
4910 IF p_vendor_rec.segment1 IS NOT NULL AND
4911 p_vendor_rec.segment1 <> ap_null_char THEN
4912 Chk_Dup_Vendor_Number(p_vendor_id,
4913 p_vendor_rec.segment1,
4914 x_valid);
4915 IF NOT x_valid THEN
4916 x_return_status := FND_API.G_RET_STS_ERROR;
4917 --bug 5606948
4918 IF g_source = 'IMPORT' THEN
4919 IF (Insert_Rejections(
4920 'AP_SUPPLIERS_INT',
4921 p_vendor_rec.vendor_interface_id,
4922 'AP_VEN_DUPLICATE_VEN_NUM',
4923 g_user_id,
4924 g_login_id,
4925 'Validate_Vendor') <> TRUE) THEN
4926
4927 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4928 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
4929 l_api_name,'Parameters: '
4930 ||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
4931 ||' ,Segment1: '||p_vendor_rec.segment1);
4932 END IF;
4933 END IF;
4934 END IF;
4935 END IF;
4936 END IF;
4937
4938 ------------------------------------------------------------------------
4939 l_debug_info := 'Call to Validate receiving_routing_id';
4940 ------------------------------------------------------------------------
4941 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4942 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
4943 l_api_name,l_debug_info);
4944 END IF;
4945 --
4946 -- Validate receiving_routing_id
4947 --
4948 IF p_vendor_rec.receiving_routing_id is NOT NULL and
4949 p_vendor_rec.receiving_routing_id <> ap_null_num THEN
4950
4951 Chk_rcv_routing_id(p_vendor_rec.receiving_routing_id ,
4952 x_valid);
4953 IF NOT x_valid THEN
4954 x_return_status := FND_API.G_RET_STS_ERROR;
4955 IF g_source = 'IMPORT' THEN
4956 IF (Insert_Rejections(
4957 'AP_SUPPLIERS_INT',
4958 p_vendor_rec.vendor_interface_id,
4959 'AP_INVALID_RCV_ROUTING',
4960 g_user_id,
4961 g_login_id,
4962 'Validate_Vendor') <> TRUE) THEN
4963 --
4964 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4965 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
4966 l_api_name,'Parameters: '
4967 ||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
4968 ||' ,Receiving_Routing_Id: '||p_vendor_rec.receiving_routing_id);
4969 END IF;
4970 END IF;
4971 ELSE
4972 -- Bug 5491139 hkaniven start --
4973 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_RCV_ROUTING');
4974 FND_MSG_PUB.ADD;
4975 -- Bug 5491139 hkaniven end --
4976 END IF;
4977 END IF;
4978 END IF;
4979
4980 ------------------------------------------------------------------------
4981 l_debug_info := 'Call to Validate Employee type Vendor`';
4982 ------------------------------------------------------------------------
4983 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4984 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
4985 l_api_name,l_debug_info);
4986 END IF;
4987 --
4988 -- Employee type Vendor validations
4989 --
4990
4991 --
4992 IF p_vendor_rec.vendor_type_lookup_code is NOT NULL and
4993 p_vendor_rec.vendor_type_lookup_code <> ap_null_char THEN
4994
4995 employee_type_checks(p_vendor_rec.vendor_type_lookup_code,
4996 p_vendor_rec.employee_id,
4997 x_valid
4998 );
4999
5000 IF NOT x_valid THEN
5001 x_return_status := FND_API.G_RET_STS_ERROR;
5002 IF g_source = 'IMPORT' THEN
5003 IF (Insert_Rejections(
5004 'AP_SUPPLIERS_INT',
5005 p_vendor_rec.vendor_interface_id,
5006 'AP_INCONSISTENT_VENDOR_TYPE',
5007 g_user_id,
5008 g_login_id,
5009 'Validate_Vendor') <> TRUE) THEN
5010 --
5011 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5012 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
5013 l_api_name,'Parameters: '
5014 ||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
5015 ||' ,Vendor_Type_Lookup_Code: '||p_vendor_rec.vendor_type_lookup_code
5016 ||' ,Employee_Id: '||p_vendor_rec.employee_id);
5017 END IF;
5018 END IF;
5019 ELSE
5020
5021 -- Bug 5491139 hkaniven start --
5022 FND_MESSAGE.SET_NAME('SQLAP','AP_INCONSISTENT_VENDOR_TYPE');
5023 FND_MSG_PUB.ADD;
5024 -- Bug 5491139 hkaniven end --
5025
5026 END IF;
5027 END IF;
5028 END IF;
5029
5030 ------------------------------------------------------------------------
5031 l_debug_info := 'Call to Validate Invoice Currency Code';
5032 ------------------------------------------------------------------------
5033 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5034 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
5035 l_api_name,l_debug_info);
5036 END IF;
5037
5038 IF (p_vendor_rec.invoice_currency_code is not null
5039 and p_vendor_rec.invoice_currency_code <> ap_null_char) THEN
5040 val_currency_code(p_vendor_rec.invoice_currency_code,
5041 x_valid);
5042 IF NOT x_valid THEN
5043 x_return_status := FND_API.G_RET_STS_ERROR;
5044 IF g_source = 'IMPORT' THEN
5045 IF (Insert_Rejections(
5046 'AP_SUPPLIERS_INT',
5047 p_vendor_rec.vendor_interface_id,
5048 'AP_INVALID_INV_CURRENCY',
5049 g_user_id,
5050 g_login_id,
5051 'Validate_Vendor') <> TRUE) THEN
5052 --
5053 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5054 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
5055 l_api_name,'Parameters: '
5056 ||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
5057 ||' ,Invoice_Currency_Code: '||p_vendor_rec.invoice_currency_code);
5058 END IF;
5059 END IF;
5060 ELSE
5061
5062 -- Bug 5491139 hkaniven start --
5063 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_INV_CURRENCY');
5064 FND_MSG_PUB.ADD;
5065 -- Bug 5491139 hkaniven end --
5066
5067 END IF;
5068 END IF;
5069 END IF;
5070
5071 ------------------------------------------------------------------------
5072 l_debug_info := 'Call to Validate Payment Currency Code';
5073 ------------------------------------------------------------------------
5074
5075 IF (p_vendor_rec.payment_currency_code is not null
5076 AND p_vendor_rec.invoice_currency_code is not null and
5077 p_vendor_rec.payment_currency_code <> ap_null_char and
5078 p_vendor_rec.invoice_currency_code <> ap_null_char) THEN
5079 payment_currency_code_valid(p_vendor_rec.payment_currency_code,
5080 p_vendor_rec.invoice_currency_code,
5081 x_valid);
5082
5083 IF NOT x_valid THEN
5084 x_return_status := FND_API.G_RET_STS_ERROR;
5085 IF g_source = 'IMPORT' THEN
5086 IF (Insert_Rejections(
5087 'AP_SUPPLIERS_INT',
5088 p_vendor_rec.vendor_interface_id,
5089 'AP_INVALID_PAY_CURRENCY',
5090 g_user_id,
5091 g_login_id,
5092 'Validate_Vendor') <> TRUE) THEN
5093 --
5094 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5095 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
5096 l_api_name,'Parameters: '
5097 ||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
5098 ||' ,Invoice_Currency_Code: '||p_vendor_rec.invoice_currency_code
5099 ||' ,Payment_Currency_Code: '||p_vendor_rec.payment_currency_code);
5100 END IF;
5101 END IF;
5102 ELSE
5103
5104 -- Bug 5491139 hkaniven start --
5105 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PAY_CURRENCY');
5106 FND_MSG_PUB.ADD;
5107 -- Bug 5491139 hkaniven end --
5108
5109 END IF;
5110 END IF;
5111 END IF;
5112
5113 ------------------------------------------------------------------------
5114 l_debug_info := 'Call to Validate Income Tax Type';
5115 ------------------------------------------------------------------------
5116 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5117 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
5118 l_api_name,l_debug_info);
5119 END IF;
5120 --
5121 -- Validate the Income Tax Type
5122 --
5123 IF p_vendor_rec.type_1099 IS NOT NULL AND
5124 p_vendor_rec.type_1099 <> ap_null_char THEN
5125 Val_Income_Tax_Type(p_vendor_rec.type_1099,
5126 x_valid);
5127 IF NOT x_valid THEN
5128 x_return_status := FND_API.G_RET_STS_ERROR;
5129 IF g_source = 'IMPORT' THEN
5130 IF (Insert_Rejections(
5131 'AP_SUPPLIERS_INT',
5132 p_vendor_rec.vendor_interface_id,
5133 'AP_INVALID_TYPE_1099',
5134 g_user_id,
5135 g_login_id,
5136 'Validate_Vendor') <> TRUE) THEN
5137 --
5138 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5139 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
5140 l_api_name,'Parameters: '
5141 ||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
5142 ||' ,Type_1099: '||p_vendor_rec.type_1099);
5143 END IF;
5144 END IF;
5145 ELSE
5146
5147 -- Bug 5491139 hkaniven start --
5148 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_TYPE_1099');
5149 FND_MSG_PUB.ADD;
5150 -- Bug 5491139 hkaniven end --
5151
5152 END IF;
5153 END IF;
5154 END IF;
5155
5156 IF p_mode = 'U' THEN
5157
5158 --update validations
5159
5160 /* open issue 1 -- no longer need to check for name duplicates
5161 ------------------------------------------------------------------------
5162 l_debug_info := 'Call to Validate vendor name';
5163 ------------------------------------------------------------------------
5164 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5165 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
5166 l_api_name,l_debug_info);
5167 END IF;
5168 --
5169 -- Check for duplicate vendor names
5170 --
5171 IF p_vendor_rec.vendor_name IS NOT NULL THEN
5172 Chk_Dup_Vendor_Name_update(p_vendor_rec.vendor_name,
5173 p_vendor_id,
5174 x_valid);
5175
5176 IF NOT x_valid THEN
5177 x_return_status := FND_API.G_RET_STS_ERROR;
5178 END IF;
5179 END IF;
5180 */
5181 null;
5182 ------------------------------------------------------------------------
5183 l_debug_info := 'Call for prohibiting update of CCR vendor';
5184 ------------------------------------------------------------------------
5185 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5186 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME|| l_api_name,l_debug_info);
5187 END IF;
5188
5189 --
5190 --calling the API to check if we are trying to update
5191 --any restricted field on a CCR vendor. Added for R12
5192 --FSIO gap.(bug6053476)
5193 --
5194
5195 update_supplier_JFMIP_checks(p_vendor_rec,
5196 p_calling_prog,
5197 x_valid);
5198
5199 IF NOT x_valid THEN
5200 x_return_status := FND_API.G_RET_STS_ERROR;
5201 IF g_source = 'IMPORT' THEN
5202 IF (Insert_Rejections(
5203 'AP_SUPPLIERS_INT',
5204 p_vendor_rec.vendor_interface_id,
5205 'AP_CCR_NO_UPDATE',
5206 g_user_id,
5207 g_login_id,
5208 'Validate_Vendor') <> TRUE) THEN
5209
5210 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5211 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
5212 l_api_name,'Parameters: '
5213 ||'Cannot Update CCR vendor, Vendor_id'||p_vendor_rec.vendor_id);
5214 END IF;
5215 END IF;
5216
5217 ELSE
5218
5219 FND_MESSAGE.SET_NAME('SQLAP','AP_CANT_UPDATE_CCR_VENDOR');
5220 FND_MSG_PUB.ADD;
5221
5222 END IF;
5223 END IF;
5224
5225 ELSIF p_mode = 'I' THEN
5226
5227 --bug 5606948
5228 ------------------------------------------------------------------------
5229 l_debug_info := 'Call to Validate vendor name';
5230 ------------------------------------------------------------------------
5231 if g_source= 'IMPORT' Then
5232 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5233 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
5234 l_api_name,l_debug_info);
5235 END IF;
5236 --
5237 -- Check for duplicate vendor names
5238 --
5239 IF p_vendor_rec.vendor_name IS NOT NULL THEN
5240 -- Bug 6775797. Added parameters vendor type and employee id
5241 -- Bug 6939863. Changed from update to new since this is
5242 -- insert mode.
5243
5244 Chk_Dup_Vendor_Name_new(p_vendor_rec.vendor_name,
5245 p_vendor_id,
5246 p_vendor_rec.vendor_type_lookup_code,
5247 p_vendor_rec.employee_id,
5248 x_valid);
5249
5250 IF NOT x_valid THEN
5251 x_return_status := FND_API.G_RET_STS_ERROR;
5252
5253
5254 IF (Insert_Rejections(
5255 'AP_SUPPLIERS_INT',
5256 p_vendor_rec.vendor_interface_id,
5257 'AP_VEN_DUPLICATE_NAME',
5258 g_user_id,
5259 g_login_id,
5260 'Validate_Vendor') <> TRUE) THEN
5261
5262 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5263 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
5264 l_api_name,'Parameters: '
5265 ||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
5266 ||' ,Vendor_name: '||p_vendor_rec.vendor_name);
5267 END IF;
5268
5269 END IF;
5270 END IF;
5271
5272
5273 END IF;
5274 END IF;
5275 ------------------------------------------------------------------------
5276 l_debug_info := 'Call to Validate payee';
5277 ------------------------------------------------------------------------
5278 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5279 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
5280 l_api_name,l_debug_info);
5281 END IF;
5282 --
5283 -- Calling IBY Payee Validation API
5284 --
5285 IF p_vendor_rec.ext_payee_rec.payer_org_type IS NOT NULL THEN
5286 IBY_DISBURSEMENT_SETUP_PUB.Validate_External_Payee
5287 ( p_api_version => 1.0,
5288 p_init_msg_list => FND_API.G_FALSE,
5289 p_ext_payee_rec => p_vendor_rec.ext_payee_rec,
5290 x_return_status => l_payee_return_status,
5291 x_msg_count => l_payee_msg_count,
5292 x_msg_data => l_payee_msg_data);
5293
5294 IF l_payee_return_status = FND_API.G_RET_STS_SUCCESS THEN
5295 x_payee_valid := 'V';
5296 ELSE
5297 x_payee_valid := 'F';
5298 x_return_status := l_payee_return_status;
5299 IF g_source = 'IMPORT' THEN
5300 IF (Insert_Rejections(
5301 'AP_SUPPLIERS_INT',
5302 p_vendor_rec.vendor_interface_id,
5303 'AP_INVALID_PAYEE',
5304 g_user_id,
5305 g_login_id,
5306 'Validate_Vendor') <> TRUE) THEN
5307 --
5308 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5309 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
5310 l_api_name,'Parameters: '
5311 ||' Vendor_Interface_Id:' ||
5312 p_vendor_rec.vendor_interface_id);
5313 END IF;
5314 END IF;
5315 ELSE
5316
5317 -- Bug 5491139 hkaniven start --
5318 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PAYEE');
5319 FND_MSG_PUB.ADD;
5320 -- Bug 5491139 hkaniven end --
5321
5322 END IF;
5323 END IF;
5324 ELSE
5325 x_payee_valid := 'N';
5326 END IF; --payee valid
5327
5328 ------------------------------------------------------------------------
5329 l_debug_info := 'Call to Validate party_id';
5330 ------------------------------------------------------------------------
5331 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5332 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
5333 l_api_name,l_debug_info);
5334 END IF;
5335 --
5336 -- Check for validity of party_id
5337 --
5338 IF p_vendor_rec.party_id IS NOT NULL and
5339 p_vendor_rec.party_id <> ap_null_num THEN
5340 Check_Valid_Party_ID(p_vendor_rec.party_id,
5341 x_valid);
5342
5343 IF NOT x_valid THEN
5344 x_party_valid := 'F';
5345 x_return_status := FND_API.G_RET_STS_ERROR;
5346 IF g_source = 'IMPORT' THEN
5347 IF (Insert_Rejections(
5348 'AP_SUPPLIERS_INT',
5349 p_vendor_rec.vendor_interface_id,
5350 'AP_INVALID_PARTY_ID',
5351 g_user_id,
5352 g_login_id,
5353 'Validate_Vendor') <> TRUE) THEN
5354 --
5355 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5356 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
5357 l_api_name,'Parameters: '
5358 ||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
5359 ||' ,Party_Id: '||p_vendor_rec.party_id);
5360 END IF;
5361 END IF;
5362 ELSE
5363
5364 -- Bug 5491139 hkaniven start --
5365 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PARTY_ID');
5366 FND_MSG_PUB.ADD;
5367 -- Bug 5491139 hkaniven end --
5368
5369 END IF;
5370 ELSE
5371 x_party_valid := 'V';
5372 END IF;
5373 ELSE
5374 x_party_valid := 'N';
5375
5376 END IF;
5377
5378
5379 --insert validations
5380
5381 ------------------------------------------------------------------------
5382 l_debug_info := 'Call to Validate vendor number';
5383 ------------------------------------------------------------------------
5384 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5385 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
5386 l_api_name,l_debug_info);
5387 END IF;
5388 --
5389 -- Check for Null vendor number
5390 --
5391 IF p_vendor_rec.segment1 IS NULL and
5392 p_vendor_rec.segment1 <> ap_null_char THEN
5393 Chk_Null_Vendor_Number(p_vendor_rec.segment1,
5394 x_valid);
5395 IF NOT x_valid THEN
5396 x_return_status := FND_API.G_RET_STS_ERROR;
5397 IF g_source = 'IMPORT' THEN
5398 IF (Insert_Rejections(
5399 'AP_SUPPLIERS_INT',
5400 p_vendor_rec.vendor_interface_id,
5401 'AP_NULL_VENDOR_NUMBER', --bug 5568861
5402 g_user_id,
5403 g_login_id,
5404 'Validate_Vendor') <> TRUE) THEN
5405 --
5406 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5407 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
5408 l_api_name,'Parameters: '
5409 ||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
5410 ||' ,Segment1: '||p_vendor_rec.segment1);
5411 END IF;
5412 END IF;
5413 ELSE
5414
5415 -- Bug 5491139 hkaniven start --
5416 FND_MESSAGE.SET_NAME('SQLAP','AP_NULL_VENDOR_NUMBER');
5417 FND_MSG_PUB.ADD;
5418 -- Bug 5491139 hkaniven end --
5419
5420 END IF;
5421 END IF;
5422 END IF;
5423
5424 IF p_calling_prog <> 'ISETUP' THEN
5425
5426 --addl insert validations
5427
5428 ---------------------------------------------------------------
5429 l_debug_info := 'Call to Validate one_time_flag';
5430 ---------------------------------------------------------------
5431 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5432 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
5433 l_api_name,l_debug_info);
5434 END IF;
5435 --
5436 -- Validate one_time_flag
5437 --
5438 IF p_vendor_rec.one_time_flag is NOT NULL and
5439 p_vendor_rec.one_time_flag <> ap_null_char THEN
5440
5441 Validate_Lookups(
5442 'ONE_TIME_FLAG',p_vendor_rec.one_time_flag,'YES/NO',
5443 'PO_LOOKUP_CODES',x_valid);
5444 IF NOT x_valid THEN
5445 x_return_status := FND_API.G_RET_STS_ERROR;
5446 IF g_source = 'IMPORT' THEN
5447 IF (Insert_Rejections(
5448 'AP_SUPPLIERS_INT',
5449 p_vendor_rec.vendor_interface_id,
5450 'AP_INVALID_ONE_TIME_FLAG',
5451 g_user_id,
5452 g_login_id,
5453 'Validate_Vendor') <> TRUE) THEN
5454 --
5455 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5456 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
5457 l_api_name,'Parameters: '
5458 ||' Vendor_Interface_Id:'
5459 ||p_vendor_rec.vendor_interface_id
5460 ||' ,One_Time_Flag: '||p_vendor_rec.one_time_flag);
5461 END IF;
5462 END IF;
5463 ELSE
5464
5465 -- Bug 5491139 hkaniven start --
5466 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_ONE_TIME_FLAG');
5467 FND_MSG_PUB.ADD;
5468 -- Bug 5491139 hkaniven end --
5469
5470 END IF;
5471 END IF;
5472 END IF;
5473
5474 ----------------------------------------------------------------
5475 l_debug_info := 'Call to Validate Summary_flag';
5476 ---------------------------------------------------------------
5477 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5478 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
5479 l_api_name,l_debug_info);
5480 END IF;
5481 --
5482 -- Validate Summary_flag
5483 --
5484 IF p_vendor_rec.summary_flag is NOT NULL AND
5485 p_vendor_rec.summary_flag <> ap_null_char THEN
5486
5487 Validate_Lookups(
5488 'SUMMARY_FLAG',p_vendor_rec.summary_flag,'YES/NO',
5489 'PO_LOOKUP_CODES',x_valid);
5490 IF NOT x_valid THEN
5491 x_return_status := FND_API.G_RET_STS_ERROR;
5492 IF g_source = 'IMPORT' THEN
5493 IF (Insert_Rejections(
5494 'AP_SUPPLIERS_INT',
5495 p_vendor_rec.vendor_interface_id,
5496 'AP_INVALID_SUMMARY_FLAG',
5497 g_user_id,
5498 g_login_id,
5499 'Validate_Vendor') <> TRUE) THEN
5500 --
5501 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5502 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
5503 l_api_name,'Parameters: '
5504 ||' Vendor_Interface_Id:'
5505 ||p_vendor_rec.vendor_interface_id
5506 ||' ,Summary_Flag: '||p_vendor_rec.summary_flag);
5507 END IF;
5508 END IF;
5509 ELSE
5510 -- Bug 5491139 hkaniven start --
5511 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_SUMMARY_FLAG');
5512 FND_MSG_PUB.ADD;
5513 -- Bug 5491139 hkaniven end --
5514 END IF;
5515 END IF;
5516 END IF;
5517
5518 ----------------------------------------------------------------
5519 l_debug_info := 'Call to Validate Enabled_flag';
5520 ---------------------------------------------------------------
5521 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5522 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
5523 l_api_name,l_debug_info);
5524 END IF;
5525 --
5526 -- Validate Enabled_flag
5527 --
5528 IF p_vendor_rec.enabled_flag is NOT NULL
5529 AND p_vendor_rec.enabled_flag <> ap_null_char THEN
5530
5531 Validate_Lookups(
5532 'ENABLED_FLAG',p_vendor_rec.enabled_flag,'YES/NO',
5533 'PO_LOOKUP_CODES',x_valid);
5534 IF NOT x_valid THEN
5535 x_return_status := FND_API.G_RET_STS_ERROR;
5536 IF g_source = 'IMPORT' THEN
5537 IF (Insert_Rejections(
5538 'AP_SUPPLIERS_INT',
5539 p_vendor_rec.vendor_interface_id,
5540 'AP_INVALID_ENABLED_FLAG',
5541 g_user_id,
5542 g_login_id,
5543 'Validate_Vendor') <> TRUE) THEN
5544 --
5545 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5546 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
5547 l_api_name,'Parameters: '
5548 ||' Vendor_Interface_Id:'
5549 ||p_vendor_rec.vendor_interface_id
5550 ||' ,Enabled_Flag: '||p_vendor_rec.enabled_flag);
5551 END IF;
5552 END IF;
5553 ELSE
5554 -- Bug 5491139 hkaniven start --
5555 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_ENABLED_FLAG');
5556 FND_MSG_PUB.ADD;
5557 -- Bug 5491139 hkaniven end --
5558 END IF;
5559 END IF;
5560 END IF;
5561
5562 ---------------------------------------------------------------
5563 l_debug_info := 'Call to Validate vendor_type_lookup_code';
5564 ---------------------------------------------------------------
5565 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5566 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
5567 l_api_name,l_debug_info);
5568 END IF;
5569
5570 -- Validate vendor_type_lookup_code
5571 --
5572 IF p_vendor_rec.vendor_type_lookup_code is NOT NULL
5573 AND p_vendor_rec.vendor_type_lookup_code <> ap_null_char THEN
5574
5575 Validate_Lookups( 'VENDOR_TYPE_LOOKUP_CODE',
5576 p_vendor_rec.vendor_type_lookup_code,'VENDOR TYPE',
5577 'PO_LOOKUP_CODES',x_valid);
5578 IF NOT x_valid THEN
5579 x_return_status := FND_API.G_RET_STS_ERROR;
5580 IF g_source = 'IMPORT' THEN
5581 IF (Insert_Rejections(
5582 'AP_SUPPLIERS_INT',
5583 p_vendor_rec.vendor_interface_id,
5584 'AP_INVALID_VENDOR_TYPE',
5585 g_user_id,
5586 g_login_id,
5587 'Validate_Vendor') <> TRUE) THEN
5588 --
5589 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5590 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
5591 l_api_name,'Parameters: '
5592 ||' Vendor_Interface_Id:'
5593 ||p_vendor_rec.vendor_interface_id
5594 ||' ,Vendor_Type_Lookup_Code: '
5595 ||p_vendor_rec.vendor_type_lookup_code);
5596 END IF;
5597 END IF;
5598 ELSE
5599 -- Bug 5491139 hkaniven start --
5600 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_VENDOR_TYPE');
5601 FND_MSG_PUB.ADD;
5602 -- Bug 5491139 hkaniven end --
5603 END IF;
5604 END IF;
5605 END IF;
5606
5607 ---------------------------------------------------------------
5608 l_debug_info := 'Call to Validate pay_date_basis_lookup_code';
5609 ----------------------------------------------------------------
5610 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5611 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
5612 l_api_name,l_debug_info);
5613 END IF;
5614 --
5615 -- Validate pay_date_basis_lookup_code
5616 --
5617 IF p_vendor_rec.pay_date_basis_lookup_code is NOT NULL
5618 AND p_vendor_rec.pay_date_basis_lookup_code <> ap_null_char THEN
5619 Validate_Lookups( 'PAY_DATE_BASIS_LOOKUP_CODE',
5620 p_vendor_rec.pay_date_basis_lookup_code,
5621 'PAY DATE BASIS',
5622 'PO_LOOKUP_CODES',x_valid);
5623 IF NOT x_valid THEN
5624 x_return_status := FND_API.G_RET_STS_ERROR;
5625 IF g_source = 'IMPORT' THEN
5626 IF (Insert_Rejections(
5627 'AP_SUPPLIERS_INT',
5628 p_vendor_rec.vendor_interface_id,
5629 'AP_INVALID_PAY_DATE_BASIS',
5630 g_user_id,
5631 g_login_id,
5632 'Validate_Vendor') <> TRUE) THEN
5633 --
5634 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5635 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
5636 l_api_name,'Parameters: '
5637 ||' Vendor_Interface_Id:'
5638 ||p_vendor_rec.vendor_interface_id
5639 ||' ,Pay_Date_Basis_Lookup_Code: '
5640 || p_vendor_rec.pay_date_basis_lookup_code);
5641 END IF;
5642 END IF;
5643 ELSE
5644 -- Bug 5491139 hkaniven start --
5645 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PAY_DATE_BASIS');
5646 FND_MSG_PUB.ADD;
5647 -- Bug 5491139 hkaniven end --
5648 END IF;
5649 END IF;
5650 END IF;
5651 ---------------------------------------------------------------
5652 l_debug_info := 'Call to Validate pay_group_lookup_code';
5653 ----------------------------------------------------------------
5654 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5655 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
5656 l_api_name,l_debug_info);
5657 END IF;
5658 --
5659 -- Validate pay_group_lookup_code
5660 --
5661 IF p_vendor_rec.pay_group_lookup_code is NOT NULL
5662 AND p_vendor_rec.pay_group_lookup_code <> ap_null_char THEN
5663
5664 Validate_Lookups( 'PAY_GROUP_LOOKUP_CODE',
5665 p_vendor_rec.pay_group_lookup_code,'PAY GROUP',
5666 'PO_LOOKUP_CODES',x_valid);
5667 IF NOT x_valid THEN
5668 x_return_status := FND_API.G_RET_STS_ERROR;
5669 IF g_source = 'IMPORT' THEN
5670 IF (Insert_Rejections(
5671 'AP_SUPPLIERS_INT',
5672 p_vendor_rec.vendor_interface_id,
5673 'AP_INVALID_PAY_GROUP',
5674 g_user_id,
5675 g_login_id,
5676 'Validate_Vendor') <> TRUE) THEN
5677 --
5678 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5679 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
5680 l_api_name,'Parameters: '
5681 ||' Vendor_Interface_Id:'
5682 ||p_vendor_rec.vendor_interface_id
5683 ||' ,Pay_Group_Lookup_Code:'
5684 ||p_vendor_rec.pay_group_lookup_code);
5685 END IF;
5686 END IF;
5687 ELSE
5688 -- Bug 5491139 hkaniven start --
5689 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PAY_GROUP');
5690 FND_MSG_PUB.ADD;
5691 -- Bug 5491139 hkaniven end --
5692
5693 END IF;
5694 END IF;
5695 END IF;
5696
5697 ----------------------------------------------------------------
5698 l_debug_info := 'Call to Validate org type_lookup code';
5699 ---------------------------------------------------------------
5700 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5701 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
5702 l_api_name,l_debug_info);
5703 END IF;
5704 --
5705 -- Validate organization_type_lookup_code
5706 --
5707 IF p_vendor_rec.organization_type_lookup_code is NOT NULL
5708 AND p_vendor_rec.organization_type_lookup_code <> ap_null_char THEN
5709
5710 Validate_Lookups( 'ORGANIZATION_TYPE_LOOKUP_CODE',
5711 p_vendor_rec.organization_type_lookup_code,
5712 'ORGANIZATION TYPE',
5713 'PO_LOOKUP_CODES',x_valid);
5714 IF NOT x_valid THEN
5715 x_return_status := FND_API.G_RET_STS_ERROR;
5716 IF g_source = 'IMPORT' THEN
5717 IF (Insert_Rejections(
5718 'AP_SUPPLIERS_INT',
5719 p_vendor_rec.vendor_interface_id,
5720 'AP_INVALID_ORG_TYPE',
5721 g_user_id,
5722 g_login_id,
5723 'Validate_Vendor') <> TRUE) THEN
5724 --
5725 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5726 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
5727 l_api_name,'Parameters: '
5728 ||' Vendor_Interface_Id:'
5729 ||p_vendor_rec.vendor_interface_id
5730 ||' ,Organization_Type_Lookup_Code:'
5731 ||p_vendor_rec.organization_type_lookup_code);
5732 END IF;
5733 END IF;
5734 ELSE
5735 -- Bug 5491139 hkaniven start --
5736 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_ORG_TYPE');
5737 FND_MSG_PUB.ADD;
5738 -- Bug 5491139 hkaniven end --
5739 END IF;
5740 END IF;
5741 END IF;
5742
5743 ---------------------------------------------------------------
5744 l_debug_info := 'Call to Validate minority_group_lookup_code';
5745 ---------------------------------------------------------------
5746 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5747 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
5748 l_api_name,l_debug_info);
5749 END IF;
5750 --
5751 -- Validate minority_group_lookup_code
5752 --
5753 IF p_vendor_rec.minority_group_lookup_code is NOT NULL
5754 AND p_vendor_rec.minority_group_lookup_code <> ap_null_char THEN
5755
5756 Validate_Lookups( 'MINORITY_GROUP_LOOKUP_CODE',
5757 p_vendor_rec.minority_group_lookup_code,'MINORITY GROUP',
5758 'PO_LOOKUP_CODES',x_valid);
5759 IF NOT x_valid THEN
5760 x_return_status := FND_API.G_RET_STS_ERROR;
5761 IF g_source = 'IMPORT' THEN
5762 IF (Insert_Rejections(
5763 'AP_SUPPLIERS_INT',
5764 p_vendor_rec.vendor_interface_id,
5765 'AP_INVALID_MINORITY_GROUP',
5766 g_user_id,
5767 g_login_id,
5768 'Validate_Vendor') <> TRUE) THEN
5769 --
5770 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5771 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
5772 l_api_name,'Parameters: '
5773 ||' Vendor_Interface_Id:'
5774 ||p_vendor_rec.vendor_interface_id
5775 ||' ,Minority_Group_Lookup_Code:'
5776 ||p_vendor_rec.minority_group_lookup_code);
5777 END IF;
5778 END IF;
5779 ELSE
5780 -- Bug 5491139 hkaniven start --
5781 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_MINORITY_GROUP');
5782 FND_MSG_PUB.ADD;
5783 -- Bug 5491139 hkaniven end --
5784 END IF;
5785 END IF;
5786 END IF;
5787
5788 ---------------------------------------------------------------
5789 l_debug_info := 'Call to Validate terms_date_basis';
5790 ----------------------------------------------------------------
5791 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5792 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
5793 l_api_name,l_debug_info);
5794 END IF;
5795 --
5796 -- Validate terms_date_basis
5797 --
5798 IF p_vendor_rec.terms_date_basis is NOT NULL
5799 AND p_vendor_rec.terms_date_basis <> ap_null_char THEN
5800
5801 Validate_Lookups( 'TERMS_DATE_BASIS',
5802 p_vendor_rec.terms_date_basis,'TERMS DATE BASIS',
5803 'AP_LOOKUP_CODES',x_valid);
5804 IF NOT x_valid THEN
5805 x_return_status := FND_API.G_RET_STS_ERROR;
5806 IF g_source = 'IMPORT' THEN
5807 IF (Insert_Rejections(
5808 'AP_SUPPLIERS_INT',
5809 p_vendor_rec.vendor_interface_id,
5810 'AP_INVALID_TERMS_DATE',
5811 g_user_id,
5812 g_login_id,
5813 'Validate_Vendor') <> TRUE) THEN
5814 --
5815 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5816 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
5817 l_api_name,'Parameters: '
5818 ||' Vendor_Interface_Id:'
5819 ||p_vendor_rec.vendor_interface_id
5820 ||' ,Terms_Date_Basis:'
5821 ||p_vendor_rec.terms_date_basis);
5822 END IF;
5823 END IF;
5824 ELSE
5825 -- Bug 5491139 hkaniven start --
5826 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_TERMS_DATE');
5827 FND_MSG_PUB.ADD;
5828 -- Bug 5491139 hkaniven end --
5829 END IF;
5830 END IF;
5831 END IF;
5832
5833 ---------------------------------------------------------------
5834 l_debug_info := 'Call to Validate qty_rcv_exception_code';
5835 ---------------------------------------------------------------
5836 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5837 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
5838 l_api_name,l_debug_info);
5839 END IF;
5840 --
5841 -- Validate qty_rcv_exception_code
5842 --
5843 IF p_vendor_rec.qty_rcv_exception_code is NOT NULL
5844 AND p_vendor_rec.qty_rcv_exception_code <> ap_null_char THEN
5845
5846 Validate_Lookups( 'QTY_RCV_EXCEPTION_CODE',
5847 p_vendor_rec.qty_rcv_exception_code,'RCV OPTION',
5848 'PO_LOOKUP_CODES',x_valid);
5849 IF NOT x_valid THEN
5850 x_return_status := FND_API.G_RET_STS_ERROR;
5851 IF g_source = 'IMPORT' THEN
5852 IF (Insert_Rejections(
5853 'AP_SUPPLIERS_INT',
5854 p_vendor_rec.vendor_interface_id,
5855 'AP_INVALID_QTY_RCV_OPTION',
5856 g_user_id,
5857 g_login_id,
5858 'Validate_Vendor') <> TRUE) THEN
5859 --
5860 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5861 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
5862 l_api_name,'Parameters: '
5863 ||' Vendor_Interface_Id:'
5864 ||p_vendor_rec.vendor_interface_id
5865 ||' ,Qty_Rcv_Execption_Code:'
5866 ||p_vendor_rec.Qty_Rcv_Exception_code);
5867 END IF;
5868 END IF;
5869 ELSE
5870 -- Bug 5491139 hkaniven start --
5871 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_QTY_RCV_OPTION');
5872 FND_MSG_PUB.ADD;
5873 -- Bug 5491139 hkaniven end --
5874 END IF;
5875 END IF;
5876 END IF;
5877
5878 ------------------------------------------------------------------------
5879 l_debug_info := 'Call to Validate ship to loc code';
5880 ------------------------------------------------------------------------
5881 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5882 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
5883 l_api_name,l_debug_info);
5884 END IF;
5885 --
5886 -- Validate enforce_ship_to_location_code
5887 --
5888 IF p_vendor_rec.enforce_ship_to_location_code is NOT NULL
5889 AND p_vendor_rec.enforce_ship_to_location_code <> ap_null_char THEN
5890
5891 Validate_Lookups( 'ENFORCE_SHIP_TO_LOCATION_CODE',
5892 p_vendor_rec.enforce_ship_to_location_code,'RCV OPTION',
5893 'PO_LOOKUP_CODES',x_valid);
5894 IF NOT x_valid THEN
5895 x_return_status := FND_API.G_RET_STS_ERROR;
5896 IF g_source = 'IMPORT' THEN
5897 IF (Insert_Rejections(
5898 'AP_SUPPLIERS_INT',
5899 p_vendor_rec.vendor_interface_id,
5900 'AP_INVALID_SHIP_RCV_OPTION',
5901 g_user_id,
5902 g_login_id,
5903 'Validate_Vendor') <> TRUE) THEN
5904 --
5905 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5906 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
5907 l_api_name,'Parameters: '
5908 ||' Vendor_Interface_Id:'
5909 ||p_vendor_rec.vendor_interface_id
5910 ||' ,Enforce_Ship_To_Location_Code:'
5911 ||p_vendor_rec.enforce_ship_to_location_code);
5912 END IF;
5913 END IF;
5914 ELSE
5915 -- Bug 5491139 hkaniven start --
5916 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_SHIP_RCV_OPTION');
5917 FND_MSG_PUB.ADD;
5918 -- Bug 5491139 hkaniven end --
5919 END IF;
5920 END IF;
5921 END IF;
5922
5923 ---------------------------------------------------------------
5924 l_debug_info := 'Call to Validate receipt_days_exception_code';
5925 ----------------------------------------------------------------
5926 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5927 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
5928 l_api_name,l_debug_info);
5929 END IF;
5930 --
5931 -- Validate receipt_days_exception_code
5932 --
5933 IF p_vendor_rec.receipt_days_exception_code is NOT NULL
5934 AND p_vendor_rec.receipt_days_exception_code <> ap_null_char THEN
5935
5936 Validate_Lookups( 'RECEIPT_DAYS_EXCEPTION_CODE',
5937 p_vendor_rec.receipt_days_exception_code,'RCV OPTION',
5938 'PO_LOOKUP_CODES',x_valid);
5939 IF NOT x_valid THEN
5940 x_return_status := FND_API.G_RET_STS_ERROR;
5941 IF g_source = 'IMPORT' THEN
5942 IF (Insert_Rejections(
5943 'AP_SUPPLIERS_INT',
5944 p_vendor_rec.vendor_interface_id,
5945 'AP_INVALID_REC_RCV_OPTION',
5946 g_user_id,
5947 g_login_id,
5948 'Validate_Vendor') <> TRUE) THEN
5949 --
5950 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5951 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
5952 l_api_name,'Parameters: '
5953 ||' Vendor_Interface_Id:'
5954 ||p_vendor_rec.vendor_interface_id
5955 ||' ,Receipt_Days_Exception_Code:'
5956 ||p_vendor_rec.receipt_days_exception_code);
5957 END IF;
5958 END IF;
5959 ELSE
5960 -- Bug 5491139 hkaniven start --
5961 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_REC_RCV_OPTION');
5962 FND_MSG_PUB.ADD;
5963 -- Bug 5491139 hkaniven end --
5964 END IF;
5965 END IF;
5966 END IF;
5967
5968 ---------------------------------------------------------------
5969 l_debug_info := 'Call to Validate create_debit_memo_flag';
5970 ----------------------------------------------------------------
5971 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5972 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
5973 l_api_name,l_debug_info);
5974 END IF;
5975 --
5976 -- Validate create_debit_memo_flag
5977 --
5978 IF p_vendor_rec.create_debit_memo_flag is NOT NULL
5979 AND p_vendor_rec.create_debit_memo_flag <> ap_null_char THEN
5980
5981 Validate_Lookups( 'CREATE_DEBIT_MEMO_FLAG',
5982 p_vendor_rec.create_debit_memo_flag ,'YES/NO',
5983 'PO_LOOKUP_CODES',x_valid);
5984 IF NOT x_valid THEN
5985 x_return_status := FND_API.G_RET_STS_ERROR;
5986 IF g_source = 'IMPORT' THEN
5987 IF (Insert_Rejections(
5988 'AP_SUPPLIERS_INT',
5989 p_vendor_rec.vendor_interface_id,
5990 'AP_INVALID_DEBIT_MEMO',
5991 g_user_id,
5992 g_login_id,
5993 'Validate_Vendor') <> TRUE) THEN
5994 --
5995 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5996 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
5997 l_api_name,'Parameters: '
5998 ||' Vendor_Interface_Id:'
5999 ||p_vendor_rec.vendor_interface_id
6000 ||' ,Create_Debit_Memo_Flag:'
6001 ||p_vendor_rec.create_debit_memo_flag);
6002 END IF;
6003 END IF;
6004 ELSE
6005 -- Bug 5491139 hkaniven start --
6006 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_DEBIT_MEMO');
6007 FND_MSG_PUB.ADD;
6008 -- Bug 5491139 hkaniven end --
6009 END IF;
6010 END IF;
6011 END IF;
6012
6013 ---------------------------------------------------------------
6014 l_debug_info := 'Call to Validate federal_reportable_flag';
6015 ---------------------------------------------------------------
6016 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6017 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
6018 l_api_name,l_debug_info);
6019 END IF;
6020 --
6021 -- Validate federal_reportable_flag
6022 --
6023 IF p_vendor_rec.federal_reportable_flag is NOT NULL
6024 AND p_vendor_rec.federal_reportable_flag <> ap_null_char THEN
6025
6026 Validate_Lookups( 'FEDERAL_REPORTABLE_FLAG',
6027 p_vendor_rec.federal_reportable_flag ,'YES/NO',
6028 'PO_LOOKUP_CODES',x_valid);
6029 IF NOT x_valid THEN
6030 x_return_status := FND_API.G_RET_STS_ERROR;
6031 IF g_source = 'IMPORT' THEN
6032 IF (Insert_Rejections(
6033 'AP_SUPPLIERS_INT',
6034 p_vendor_rec.vendor_interface_id,
6035 'AP_INVALID_FED_REPORTABLE',
6036 g_user_id,
6037 g_login_id,
6038 'Validate_Vendor') <> TRUE) THEN
6039 --
6040 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6041 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
6042 l_api_name,'Parameters: '
6043 ||' Vendor_Interface_Id:'
6044 ||p_vendor_rec.vendor_interface_id
6045 ||' ,Federal_Reportable_Flag:'
6046 ||p_vendor_rec.federal_reportable_flag);
6047 END IF;
6048 END IF;
6049 ELSE
6050 -- Bug 5491139 hkaniven start --
6051 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_FED_REPORTABLE');
6052 FND_MSG_PUB.ADD;
6053 -- Bug 5491139 hkaniven end --
6054 END IF;
6055 END IF;
6056 END IF;
6057
6058 ----------------------------------------------------------------
6059 l_debug_info := 'Call to Validate state_reportable_flag';
6060 ----------------------------------------------------------------
6061 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6062 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
6063 l_api_name,l_debug_info);
6064 END IF;
6065 --
6066 -- Validate state_reportable_flag
6067 --
6068 IF p_vendor_rec.state_reportable_flag is NOT NULL
6069 AND p_vendor_rec.state_reportable_flag <> ap_null_char THEN
6070
6071 Validate_Lookups('STATE_REPORTABLE_FLAG',
6072 p_vendor_rec.state_reportable_flag ,'YES/NO',
6073 'PO_LOOKUP_CODES', x_valid);
6074 IF NOT x_valid THEN
6075 x_return_status := FND_API.G_RET_STS_ERROR;
6076 IF g_source = 'IMPORT' THEN
6077 IF (Insert_Rejections(
6078 'AP_SUPPLIERS_INT',
6079 p_vendor_rec.vendor_interface_id,
6080 'AP_INVALID_STATE_REPORTABLE',
6081 g_user_id,
6082 g_login_id,
6083 'Validate_Vendor') <> TRUE) THEN
6084 --
6085 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6086 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
6087 l_api_name,'Parameters: '
6088 ||' Vendor_Interface_Id:'
6089 ||p_vendor_rec.vendor_interface_id
6090 ||' ,State_Reportable_Flag:'
6091 ||p_vendor_rec.state_reportable_flag);
6092 END IF;
6093 END IF;
6094 ELSE
6095 -- Bug 5491139 hkaniven start --
6096 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_STATE_REPORTABLE');
6097 FND_MSG_PUB.ADD;
6098 -- Bug 5491139 hkaniven end --
6099 END IF;
6100 END IF;
6101 END IF;
6102
6103 ---------------------------------------------------------------
6104 l_debug_info := 'Call to Validate auto_calculate_interest_flag';
6105 ----------------------------------------------------------------
6106 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6107 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
6108 l_api_name,l_debug_info);
6109 END IF;
6110 --
6111 -- Validate auto_calculate_interest_flag
6112 --
6113 IF p_vendor_rec.auto_calculate_interest_flag is NOT NULL
6114 AND p_vendor_rec.auto_calculate_interest_flag <> ap_null_char THEN
6115
6116 Validate_Lookups('AUTO_CALCULATE_INTEREST_FLAG',
6117 p_vendor_rec.auto_calculate_interest_flag,'YES/NO',
6118 'PO_LOOKUP_CODES', x_valid);
6119 IF NOT x_valid THEN
6120 x_return_status := FND_API.G_RET_STS_ERROR;
6121 IF g_source = 'IMPORT' THEN
6122 IF (Insert_Rejections(
6123 'AP_SUPPLIERS_INT',
6124 p_vendor_rec.vendor_interface_id,
6125 'AP_INVALID_CALC_INT',
6126 g_user_id,
6127 g_login_id,
6128 'Validate_Vendor') <> TRUE) THEN
6129 --
6130 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6131 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
6132 l_api_name,'Parameters: '
6133 ||' Vendor_Interface_Id:'
6134 ||p_vendor_rec.vendor_interface_id
6135 ||' , Auto_Calculate_Interest_Flag'
6136 ||p_vendor_rec.auto_calculate_interest_flag);
6137 END IF;
6138 END IF;
6139 ELSE
6140 -- Bug 5491139 hkaniven start --
6141 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_CALC_INT');
6142 FND_MSG_PUB.ADD;
6143 -- Bug 5491139 hkaniven end --
6144 END IF;
6145 END IF;
6146 END IF;
6147
6148 ---------------------------------------------------------------
6149 l_debug_info := 'Call to Validate excl freight from disc';
6150 ---------------------------------------------------------------
6151 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6152 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
6153 l_api_name,l_debug_info);
6154 END IF;
6155 --
6156 -- Validate exclude_freight_from_discount
6157 --
6158 IF p_vendor_rec.exclude_freight_from_discount is NOT NULL
6159 AND p_vendor_rec.exclude_freight_from_discount <> ap_null_char THEN
6160
6161 Validate_Lookups( 'EXCLUDE_FREIGHT_FROM_DISCOUNT',
6162 p_vendor_rec.exclude_freight_from_discount ,'YES/NO',
6163 'PO_LOOKUP_CODES',x_valid);
6164 IF NOT x_valid THEN
6165 x_return_status := FND_API.G_RET_STS_ERROR;
6166 IF g_source = 'IMPORT' THEN
6167 IF (Insert_Rejections(
6168 'AP_SUPPLIERS_INT',
6169 p_vendor_rec.vendor_interface_id,
6170 'AP_INVALID_EXC_FR_DISC',
6171 g_user_id,
6172 g_login_id,
6173 'Validate_Vendor') <> TRUE) THEN
6174 --
6175 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6176 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
6177 l_api_name,'Parameters: '
6178 ||' Vendor_Interface_Id:'
6179 ||p_vendor_rec.vendor_interface_id
6180 ||' ,Exclude_Freight_From_Discount:'
6181 ||p_vendor_rec.exclude_freight_from_discount);
6182 END IF;
6183 END IF;
6184 ELSE
6185 -- Bug 5491139 hkaniven start --
6186 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_EXC_FR_DISC');
6187 FND_MSG_PUB.ADD;
6188 -- Bug 5491139 hkaniven end --
6189 END IF;
6190 END IF;
6191 END IF;
6192
6193 ----------------------------------------------------------------
6194 l_debug_info := 'Call to Validate hold_unmatched_invoices_flag';
6195 ----------------------------------------------------------------
6196 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6197 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
6198 l_api_name,l_debug_info);
6199 END IF;
6200 --
6201 -- Validate hold_unmatched_invoices_flag
6202 --
6203 IF p_vendor_rec.hold_unmatched_invoices_flag is NOT NULL
6204 AND p_vendor_rec.hold_unmatched_invoices_flag <> ap_null_char THEN
6205
6206 Validate_Lookups('HOLD_UNMATCHED_INVOICES_FLAG',
6207 p_vendor_rec.hold_unmatched_invoices_flag ,'YES/NO',
6208 'PO_LOOKUP_CODES',x_valid);
6209 IF NOT x_valid THEN
6210 x_return_status := FND_API.G_RET_STS_ERROR;
6211 IF g_source = 'IMPORT' THEN
6212 IF (Insert_Rejections(
6213 'AP_SUPPLIERS_INT',
6214 p_vendor_rec.vendor_interface_id,
6215 'AP_INVALID_HOLD_UNMAT_INV',
6216 g_user_id,
6217 g_login_id,
6218 'Validate_Vendor') <> TRUE) THEN
6219 --
6220 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6221 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
6222 l_api_name,'Parameters: '
6223 ||' Vendor_Interface_Id:'
6224 ||p_vendor_rec.vendor_interface_id
6225 ||' ,Hold_Unmatched_Invoices_Flag:'
6226 ||p_vendor_rec.hold_unmatched_invoices_flag);
6227 END IF;
6228 END IF;
6229 ELSE
6230 -- Bug 5491139 hkaniven start --
6231 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_HOLD_UNMAT_INV');
6232 FND_MSG_PUB.ADD;
6233 -- Bug 5491139 hkaniven end --
6234 END IF;
6235 END IF;
6236 END IF;
6237
6238 ---------------------------------------------------------------
6239 l_debug_info := 'Call to Validate allow_unord_receipts_flag';
6240 ---------------------------------------------------------------
6241 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6242 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
6243 l_api_name,l_debug_info);
6244 END IF;
6245 --
6246 -- Validate allow_unord_receipts_flag
6247 --
6248 IF p_vendor_rec.allow_unordered_receipts_flag is NOT NULL
6249 AND p_vendor_rec.allow_unordered_receipts_flag <> ap_null_char THEN
6250
6251 Validate_Lookups('ALLOW_UNORDERED_RECEIPTS_FLAG',
6252 p_vendor_rec.allow_unordered_receipts_flag,'YES/NO',
6253 'PO_LOOKUP_CODES', x_valid);
6254 IF NOT x_valid THEN
6255 x_return_status := FND_API.G_RET_STS_ERROR;
6256 IF g_source = 'IMPORT' THEN
6257 IF (Insert_Rejections(
6258 'AP_SUPPLIERS_INT',
6259 p_vendor_rec.vendor_interface_id,
6260 'AP_INVALID_UNORD_RCV',
6261 g_user_id,
6262 g_login_id,
6263 'Validate_Vendor') <> TRUE) THEN
6264 --
6265 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6266 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
6267 l_api_name,'Parameters: '
6268 ||' Vendor_Interface_Id:'
6269 ||p_vendor_rec.vendor_interface_id
6270 ||' ,Allow_Unordered_Receipts_Flag:'
6271 ||p_vendor_rec.allow_unordered_receipts_flag);
6272 END IF;
6273 END IF;
6274 ELSE
6275 -- Bug 5491139 hkaniven start --
6276 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_UNORD_RCV');
6277 FND_MSG_PUB.ADD;
6278 -- Bug 5491139 hkaniven end --
6279 END IF;
6280 END IF;
6281 END IF;
6282
6283 ---------------------------------------------------------------
6284 l_debug_info :=
6285 'Call to Validate allow_substitute_receipts_flag';
6286 -------------------------------------------------------------
6287 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6288 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
6289 l_api_name,l_debug_info);
6290 END IF;
6291 --
6292 -- Validate allow_substitute_receipts_flag
6293 --
6294 IF p_vendor_rec.allow_substitute_receipts_flag is NOT NULL
6295 AND p_vendor_rec.allow_substitute_receipts_flag <> ap_null_char THEN
6296
6297 Validate_Lookups('ALLOW_SUBSTITUTE_RECEIPTS_FLAG',
6298 p_vendor_rec.allow_substitute_receipts_flag,'YES/NO',
6299 'PO_LOOKUP_CODES', x_valid);
6300 IF NOT x_valid THEN
6301 x_return_status := FND_API.G_RET_STS_ERROR;
6302 IF g_source = 'IMPORT' THEN
6303 IF (Insert_Rejections(
6304 'AP_SUPPLIERS_INT',
6305 p_vendor_rec.vendor_interface_id,
6306 'AP_INVALID_SUBS_RCV',
6307 g_user_id,
6308 g_login_id,
6309 'Validate_Vendor') <> TRUE) THEN
6310 --
6311 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6312 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
6313 l_api_name,'Parameters: '
6314 ||' Vendor_Interface_Id:'
6315 ||p_vendor_rec.vendor_interface_id
6316 ||' ,Allow_Substitute_Receipts_Flag:'
6317 ||p_vendor_rec.allow_substitute_receipts_flag);
6318 END IF;
6319 END IF;
6320 ELSE
6321 -- Bug 5491139 hkaniven start --
6322 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_SUB_RCV');
6323 FND_MSG_PUB.ADD;
6324 -- Bug 5491139 hkaniven end --
6325 END IF;
6326 END IF;
6327 END IF;
6328
6329 ---------------------------------------------------------------
6330 l_debug_info := 'Call to Validate hold_flag';
6331 ----------------------------------------------------------------
6332 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6333 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
6334 l_api_name,l_debug_info);
6335 END IF;
6336 --
6337 -- Validate hold_flag
6338 --
6339 IF p_vendor_rec.hold_flag is NOT NULL
6340 AND p_vendor_rec.hold_flag <> ap_null_char THEN
6341
6342 Validate_Lookups('HOLD_FLAG', p_vendor_rec.hold_flag,
6343 'YES/NO',
6344 'PO_LOOKUP_CODES', x_valid);
6345 IF NOT x_valid THEN
6346 x_return_status := FND_API.G_RET_STS_ERROR;
6347 IF g_source = 'IMPORT' THEN
6348 IF (Insert_Rejections(
6349 'AP_SUPPLIERS_INT',
6350 p_vendor_rec.vendor_interface_id,
6351 'AP_INVALID_HOLD',
6352 g_user_id,
6353 g_login_id,
6354 'Validate_Vendor') <> TRUE) THEN
6355 --
6356 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6357 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
6358 l_api_name,'Parameters: '
6359 ||' Vendor_Interface_Id:'
6360 ||p_vendor_rec.vendor_interface_id
6361 ||' ,Hold_Flag:'
6362 ||p_vendor_rec.hold_flag);
6363 END IF;
6364 END IF;
6365 ELSE
6366 -- Bug 5491139 hkaniven start --
6367 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_HOLD');
6368 FND_MSG_PUB.ADD;
6369 -- Bug 5491139 hkaniven end --
6370 END IF;
6371 END IF;
6372 END IF;
6373
6374 ----------------------------------------------------------------
6375 l_debug_info := 'Call to Validate small_business_flag';
6376 ---------------------------------------------------------------
6377 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6378 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
6379 l_api_name,l_debug_info);
6380 END IF;
6381 --
6382 -- Validate small_business_flag
6383 --
6384 IF p_vendor_rec.small_business_flag is NOT NULL
6385 AND p_vendor_rec.small_business_flag <> ap_null_char THEN
6386
6387 Validate_Lookups('SMALL_BUSINESS_FLAG',
6388 p_vendor_rec.small_business_flag,'YES/NO',
6389 'PO_LOOKUP_CODES',x_valid);
6390 IF NOT x_valid THEN
6391 x_return_status := FND_API.G_RET_STS_ERROR;
6392 IF g_source = 'IMPORT' THEN
6393 IF (Insert_Rejections(
6394 'AP_SUPPLIERS_INT',
6395 p_vendor_rec.vendor_interface_id,
6396 'AP_INVALID_SMALL_BUSINESS',
6397 g_user_id,
6398 g_login_id,
6399 'Validate_Vendor') <> TRUE) THEN
6400 --
6401 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6402 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
6403 l_api_name,'Parameters: '
6404 ||' Vendor_Interface_Id:'
6405 ||p_vendor_rec.vendor_interface_id
6406 ||' ,Small_Business_Flag:'
6407 ||p_vendor_rec.small_business_flag);
6408 END IF;
6409 END IF;
6410 ELSE
6411 -- Bug 5491139 hkaniven start --
6412 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_SMALL_BUSINESS');
6413 FND_MSG_PUB.ADD;
6414 -- Bug 5491139 hkaniven end --
6415 END IF;
6416 END IF;
6417 END IF;
6418
6419 ----------------------------------------------------------------
6420 l_debug_info := 'Call to Validate women_owned_flag';
6421 ---------------------------------------------------------------
6422 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6423 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
6424 l_api_name,l_debug_info);
6425 END IF;
6426 --
6427 -- Validate women_owned_flag
6428 --
6429 IF p_vendor_rec.women_owned_flag is NOT NULL
6430 AND p_vendor_rec.women_owned_flag <> ap_null_char THEN
6431
6432 Validate_Lookups('WOMEN_OWNED_FLAG',
6433 p_vendor_rec.women_owned_flag,'YES/NO',
6434 'PO_LOOKUP_CODES', x_valid);
6435 IF NOT x_valid THEN
6436 x_return_status := FND_API.G_RET_STS_ERROR;
6437 IF g_source = 'IMPORT' THEN
6438 IF (Insert_Rejections(
6439 'AP_SUPPLIERS_INT',
6440 p_vendor_rec.vendor_interface_id,
6441 'AP_INVALID_WOMEN_OWNED',
6442 g_user_id,
6443 g_login_id,
6444 'Validate_Vendor') <> TRUE) THEN
6445 --
6446 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6447 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
6448 l_api_name,'Parameters: '
6449 ||' Vendor_Interface_Id:'
6450 ||p_vendor_rec.vendor_interface_id
6451 ||' ,Women_Owned_Flag:'
6452 ||p_vendor_rec.women_owned_flag);
6453 END IF;
6454 END IF;
6455 ELSE
6456 -- Bug 5491139 hkaniven start --
6457 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_WOMEN_OWNED');
6458 FND_MSG_PUB.ADD;
6459 -- Bug 5491139 hkaniven end --
6460 END IF;
6461 END IF;
6462 END IF;
6463
6464 --------------------------------------------------------------
6465 l_debug_info := 'Call to Validate hold_future_payments_flag';
6466 ---------------------------------------------------------------
6467 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6468 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
6469 l_api_name,l_debug_info);
6470 END IF;
6471 --
6472 -- Validate hold_future_payments_flag
6473 --
6474 IF p_vendor_rec.hold_future_payments_flag is NOT NULL
6475 AND p_vendor_rec.hold_future_payments_flag <> ap_null_char THEN
6476
6477 Validate_Lookups('HOLD_FUTURE_PAYMENTS_FLAG',
6478 p_vendor_rec.hold_future_payments_flag,'YES/NO',
6479 'PO_LOOKUP_CODES', x_valid);
6480 IF NOT x_valid THEN
6481 x_return_status := FND_API.G_RET_STS_ERROR;
6482 IF g_source = 'IMPORT' THEN
6483 IF (Insert_Rejections(
6484 'AP_SUPPLIERS_INT',
6485 p_vendor_rec.vendor_interface_id,
6486 'AP_INVALID_HOLD_FUT_PAY',
6487 g_user_id,
6488 g_login_id,
6489 'Validate_Vendor') <> TRUE) THEN
6490 --
6491 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6492 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
6493 l_api_name,'Parameters: '
6494 ||' Vendor_Interface_Id:'
6495 ||p_vendor_rec.vendor_interface_id
6496 ||' ,Hold_Future_Payments_Flag:'
6497 ||p_vendor_rec.hold_future_payments_flag);
6498 END IF;
6499 END IF;
6500 ELSE
6501 -- Bug 5491139 hkaniven start --
6502 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_HOLD_FUT_PAY');
6503 FND_MSG_PUB.ADD;
6504 -- Bug 5491139 hkaniven end --
6505 END IF;
6506 END IF;
6507 END IF;
6508
6509 ----------------------------------------------------------------
6510 l_debug_info := 'Call to Validate hold_all_payments_flag';
6511 ----------------------------------------------------------------
6512 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6513 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
6514 l_api_name,l_debug_info);
6515 END IF;
6516 --
6517 -- Validate hold_all_payments_flag
6518 --
6519 IF p_vendor_rec.hold_all_payments_flag is NOT NULL
6520 AND p_vendor_rec.hold_all_payments_flag <> ap_null_char THEN
6521
6522 Validate_Lookups('HOLD_ALL_PAYMENTS_FLAG',
6523 p_vendor_rec.hold_all_payments_flag,'YES/NO',
6524 'PO_LOOKUP_CODES', x_valid);
6525 IF NOT x_valid THEN
6526 x_return_status := FND_API.G_RET_STS_ERROR;
6527 IF g_source = 'IMPORT' THEN
6528 IF (Insert_Rejections(
6529 'AP_SUPPLIERS_INT',
6530 p_vendor_rec.vendor_interface_id,
6531 'AP_INVALID_HOLD_ALL_PAY',
6532 g_user_id,
6533 g_login_id,
6534 'Validate_Vendor') <> TRUE) THEN
6535 --
6536 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6537 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
6538 l_api_name,'Parameters: '
6539 ||' Vendor_Interface_Id:'
6540 ||p_vendor_rec.vendor_interface_id
6541 ||' ,Hold_All_Payments_Flag:'
6542 ||p_vendor_rec.hold_all_payments_flag);
6543 END IF;
6544 END IF;
6545 ELSE
6546 -- Bug 5491139 hkaniven start --
6547 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_HOLD_ALL_PAY');
6548 FND_MSG_PUB.ADD;
6549 -- Bug 5491139 hkaniven end --
6550 END IF;
6551 END IF;
6552 END IF;
6553
6554 ---------------------------------------------------------------
6555 l_debug_info := 'Call to Validate always_take_disc_flag';
6556 ----------------------------------------------------------------
6557 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6558 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
6559 l_api_name,l_debug_info);
6560 END IF;
6561 --
6562 -- Validate always_take_disc_flag
6563 --
6564 IF p_vendor_rec.always_take_disc_flag is NOT NULL
6565 AND p_vendor_rec.always_take_disc_flag <> ap_null_char THEN
6566
6567 Validate_Lookups( 'ALWAYS_TAKE_DISC_FLAG',
6568 p_vendor_rec.always_take_disc_flag,'YES/NO',
6569 'PO_LOOKUP_CODES', x_valid);
6570 IF NOT x_valid THEN
6571 x_return_status := FND_API.G_RET_STS_ERROR;
6572 IF g_source = 'IMPORT' THEN
6573 IF (Insert_Rejections(
6574 'AP_SUPPLIERS_INT',
6575 p_vendor_rec.vendor_interface_id,
6576 'AP_INVALID_TAKE_DISC',
6577 g_user_id,
6578 g_login_id,
6579 'Validate_Vendor') <> TRUE) THEN
6580 --
6581 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6582 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
6583 l_api_name,'Parameters: '
6584 ||' Vendor_Interface_Id:'
6585 ||p_vendor_rec.vendor_interface_id
6586 ||' ,Always_Take_Disc_Flag:'
6587 ||p_vendor_rec.always_take_disc_flag);
6588 END IF;
6589 END IF;
6590 ELSE
6591 -- Bug 5491139 hkaniven start --
6592 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_TAKE_DISC');
6593 FND_MSG_PUB.ADD;
6594 -- Bug 5491139 hkaniven end --
6595 END IF;
6596 END IF;
6597 END IF;
6598
6599 ----------------------------------------------------------------
6600 l_debug_info := 'Call to Validate Vendor Number';
6601 ----------------------------------------------------------------
6602 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6603 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
6604 l_api_name,l_debug_info);
6605 END IF;
6606
6607 -- Generate and validate Vendor Number
6608
6609 l_segment1 := p_vendor_rec.segment1;
6610
6611 Check_valid_vendor_num(l_segment1,
6612 x_valid);
6613
6614 IF NOT x_valid THEN
6615 x_return_status := FND_API.G_RET_STS_ERROR;
6616 IF g_source = 'IMPORT' THEN
6617 IF (Insert_Rejections(
6618 'AP_SUPPLIERS_INT',
6619 p_vendor_rec.vendor_interface_id,
6620 'AP_NULL_VENDOR_NUMBER', --bug5568861
6621 g_user_id,
6622 g_login_id,
6623 'Validate_Vendor') <> TRUE) THEN
6624 --
6625 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6626 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
6627 l_api_name,'Parameters: '
6628 ||' Vendor_Interface_Id:'
6629 ||p_vendor_rec.vendor_interface_id);
6630 END IF;
6631 END IF;
6632 ELSE
6633 -- Bug 5491139 hkaniven start --
6634 FND_MESSAGE.SET_NAME('SQLAP','AP_NULL_VENDOR_NUMBER');
6635 FND_MSG_PUB.ADD;
6636 -- Bug 5491139 hkaniven end --
6637 END IF;
6638 END IF;
6639
6640 ----------------------------------------------------------------
6641 l_debug_info := 'Call to Validate match_option';
6642 ----------------------------------------------------------------
6643 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6644 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
6645 l_api_name,l_debug_info);
6646 END IF;
6647 --
6648 -- Validate match_option
6649 --
6650 IF p_vendor_rec.match_option is NOT NULL
6651 AND p_vendor_rec.match_option <> ap_null_char THEN
6652
6653 Check_Valid_Match_Option(p_vendor_rec.match_option,
6654 x_valid
6655 );
6656 IF NOT x_valid THEN
6657 x_return_status := FND_API.G_RET_STS_ERROR;
6658 IF g_source = 'IMPORT' THEN
6659 IF (Insert_Rejections(
6660 'AP_SUPPLIERS_INT',
6661 p_vendor_rec.vendor_interface_id,
6662 'AP_INVALID_MATCH_OPTION',
6663 g_user_id,
6664 g_login_id,
6665 'Validate_Vendor') <> TRUE) THEN
6666 --
6667 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6668 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
6669 l_api_name,'Parameters: '
6670 ||' Vendor_Interface_Id:'
6671 ||p_vendor_rec.vendor_interface_id
6672 ||' ,Match_Option:'
6673 ||p_vendor_rec.match_option);
6674 END IF;
6675 END IF;
6676 ELSE
6677 -- Bug 5491139 hkaniven start --
6678 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_MATCH_OPTION');
6679 FND_MSG_PUB.ADD;
6680 -- Bug 5491139 hkaniven end --
6681 END IF;
6682 END IF;
6683 END IF;
6684
6685 ---------------------------------------------------------------
6686 l_debug_info :=
6687 'Call to Validate awt_group_id and awt_group_name';
6688 ---------------------------------------------------------------
6689 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6690 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
6691 l_api_name,l_debug_info);
6692 END IF;
6693 --
6694 -- Validate awt_group_id and awt_group_name
6695 --
6696 IF ((p_vendor_rec.awt_group_id is NOT NULL AND
6697 p_vendor_rec.awt_group_id <> ap_null_num)
6698 or (p_vendor_rec.awt_group_name is NOT NULL AND
6699 p_vendor_rec.awt_group_name <> ap_null_char)) AND
6700 (p_vendor_rec.allow_awt_flag = 'Y') THEN
6701
6702 Chk_awt_grp_id_name(p_vendor_rec.awt_group_id,
6703 p_vendor_rec.awt_group_name,
6704 p_vendor_rec.allow_awt_flag,
6705 x_valid
6706 );
6707
6708 IF NOT x_valid THEN
6709 x_return_status := FND_API.G_RET_STS_ERROR;
6710 IF g_source = 'IMPORT' THEN
6711 IF (Insert_Rejections(
6712 'AP_SUPPLIERS_INT',
6713 p_vendor_rec.vendor_interface_id,
6714 'AP_INCONSISTENT_AWT_GROUP',
6715 g_user_id,
6716 g_login_id,
6717 'Validate_Vendor') <> TRUE) THEN
6718 --
6719 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6720 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
6721 l_api_name,'Parameters: '
6722 ||' Vendor_Interface_Id:'
6723 ||p_vendor_rec.vendor_interface_id
6724 ||' ,Awt_Group_Id: '||p_vendor_rec.awt_group_id
6725 ||' ,Awt_Group_Name:'
6726 ||p_vendor_rec.awt_group_name);
6727 END IF;
6728 END IF;
6729 ELSE
6730 -- Bug 5491139 hkaniven start --
6731 FND_MESSAGE.SET_NAME('SQLAP','AP_INCONSISTENT_AWT_GROUP');
6732 FND_MSG_PUB.ADD;
6733 -- Bug 5491139 hkaniven end --
6734 END IF;
6735 END IF;
6736
6737 END IF;
6738
6739 ------------------------------------------------------------------------
6740 l_debug_info := 'Call to Validate Hold_by';
6741 ------------------------------------------------------------------------
6742 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6743 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
6744 l_api_name,l_debug_info);
6745 END IF;
6746
6747 -- Hold_by validation
6748
6749 IF p_vendor_rec.hold_by is NOT NULL
6750 AND p_vendor_rec.hold_by <> ap_null_num THEN
6751 Check_Valid_Hold_by (p_vendor_rec.hold_by,
6752 x_valid);
6753
6754 IF NOT x_valid THEN
6755 x_return_status := FND_API.G_RET_STS_ERROR;
6756 END IF;
6757 END IF;
6758
6759 ------------------------------------------------------------------------
6760 l_debug_info := 'Call to Validate Terms_Id and Terms_Name';
6761 ------------------------------------------------------------------------
6762 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6763 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
6764 l_api_name,l_debug_info);
6765 END IF;
6766
6767 -- Terms_Id and Terms_Name validation
6768
6769 IF ((p_vendor_rec.terms_id is NOT NULL AND
6770 p_vendor_rec.terms_id <> ap_null_num) OR
6771 (p_vendor_rec.terms_name is NOT NULL AND
6772 p_vendor_rec.terms_name <> ap_null_char) OR
6773 (p_vendor_rec.default_terms_id is NOT NULL AND
6774 p_vendor_rec.default_terms_id <> ap_null_num) --6393761
6775 ) THEN
6776
6777 Check_terms_id_code(p_vendor_rec.terms_id,
6778 p_vendor_rec.terms_name,
6779 p_vendor_rec.default_terms_id,
6780 x_valid);
6781
6782 IF NOT x_valid THEN
6783 x_return_status := FND_API.G_RET_STS_ERROR;
6784 IF g_source = 'IMPORT' THEN
6785 IF (Insert_Rejections(
6786 'AP_SUPPLIERS_INT',
6787 p_vendor_rec.vendor_interface_id,
6788 'AP_INCONSISTENT_TERM',
6789 g_user_id,
6790 g_login_id,
6791 'Validate_Vendor') <> TRUE) THEN
6792 --
6793 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6794 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
6795 l_api_name,'Parameters: '
6796 ||' Vendor_Interface_Id: '
6797 ||p_vendor_rec.vendor_interface_id
6798 ||' ,Terms_Id: '||p_vendor_rec.terms_id
6799 ||' ,Terms_Name: '||p_vendor_rec.terms_name);
6800 END IF;
6801 END IF;
6802 ELSE
6803 -- Bug 5491139 hkaniven start --
6804 FND_MESSAGE.SET_NAME('SQLAP','AP_INCONSISTENT_TERM');
6805 FND_MSG_PUB.ADD;
6806 -- Bug 5491139 hkaniven end --
6807 END IF;
6808 END IF;
6809 END IF;
6810
6811
6812 END IF; -- not ISETUP
6813 END IF; --p_mode
6814
6815 -- End of API body
6816
6817 -- Standard check of p_commit.
6818 IF FND_API.To_Boolean( p_commit ) THEN
6819 COMMIT WORK;
6820 END IF;
6821
6822 -- Standard call to get message count and if count is 1,
6823 -- get message info.
6824 FND_MSG_PUB.Count_And_Get(
6825 p_count => x_msg_count ,
6826 p_data => x_msg_data
6827 );
6828
6829
6830 EXCEPTION
6831 WHEN FND_API.G_EXC_ERROR THEN
6832 ROLLBACK TO Validate_Vendor_PUB;
6833 x_return_status := FND_API.G_RET_STS_ERROR ;
6834 FND_MSG_PUB.Count_And_Get
6835 ( p_count => x_msg_count,
6836 p_data => x_msg_data
6837 );
6838 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
6839 ROLLBACK TO Validate_Vendor_PUB;
6840 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
6841 FND_MSG_PUB.Count_And_Get
6842 ( p_count => x_msg_count,
6843 p_data => x_msg_data
6844 );
6845 WHEN OTHERS THEN
6846 ROLLBACK TO Validate_Vendor_PUB;
6847 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
6848 IF FND_MSG_PUB.Check_Msg_Level
6849 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
6850 FND_MSG_PUB.Add_Exc_Msg
6851 ( G_PKG_NAME ,
6852 l_api_name
6853 );
6854 END IF;
6855 FND_MSG_PUB.Count_And_Get
6856 ( p_count => x_msg_count,
6857 p_data => x_msg_data
6858 );
6859 END Validate_Vendor;
6860
6861 PROCEDURE Create_Vendor_Site
6862 ( p_api_version IN NUMBER,
6863 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
6864 p_commit IN VARCHAR2 := FND_API.G_FALSE,
6865 p_validation_level IN NUMBER :=
6866 FND_API.G_VALID_LEVEL_FULL,
6867 x_return_status OUT NOCOPY VARCHAR2 ,
6868 x_msg_count OUT NOCOPY NUMBER,
6869 x_msg_data OUT NOCOPY VARCHAR2,
6870 p_vendor_site_rec IN r_vendor_site_rec_type,
6871 x_vendor_site_id OUT NOCOPY NUMBER,
6872 x_party_site_id OUT NOCOPY NUMBER,
6873 x_location_id OUT NOCOPY NUMBER
6874 )
6875 IS
6876 l_api_name CONSTANT VARCHAR2(30) := 'Create_Vendor_Site';
6877 l_api_version CONSTANT NUMBER := 1.0;
6878
6879 l_def_org_id NUMBER;
6880 l_party_site_rec HZ_PARTY_SITE_V2PUB.party_site_rec_type;
6881 l_location_rec HZ_LOCATION_V2PUB.location_rec_type;
6882
6883 -- variables for retrieving defaults from PO_VENDORS
6884 l_rowid VARCHAR2(255);
6885 l_vendor_site_id NUMBER;
6886 l_vendor_site_code VARCHAR2(255);
6887 l_purchasing_site_flag VARCHAR2(255);
6888 l_rfq_only_site_flag VARCHAR2(255);
6889 l_pay_site_flag VARCHAR2(255);
6890 l_attention_ar_flag VARCHAR2(255);
6891 l_customer_num VARCHAR2(255);
6892 l_ship_to_location_id NUMBER;
6893 l_bill_to_location_id NUMBER;
6894 l_ship_via_lookup_code VARCHAR2(255);
6895 l_sys_ship_via_lookup_code VARCHAR2(255);
6896 l_freight_terms_lookup_code VARCHAR2(255);
6897 l_fob_lookup_code VARCHAR2(255);
6898 l_fax VARCHAR2(255);
6899 l_fax_area_code VARCHAR2(255);
6900 l_telex VARCHAR2(255);
6901 l_payment_method_lookup_code VARCHAR2(255);
6902 l_bank_account_name VARCHAR2(255);
6903 l_bank_account_num VARCHAR2(255);
6904 l_bank_num VARCHAR2(255);
6905 l_bank_account_type VARCHAR2(255);
6906 l_terms_date_basis VARCHAR2(255);
6907 l_sup_terms_date_basis VARCHAR2(255);
6908 l_current_catalog_num VARCHAR2(255);
6909 l_distribution_set_id NUMBER;
6910 l_future_pay_ccid NUMBER;
6911 l_prepay_code_combination_id NUMBER;
6912 l_pay_group_lookup_code VARCHAR2(255);
6913 l_sup_pay_group_lookup_code VARCHAR2(255);
6914 l_payment_priority NUMBER;
6915 l_terms_id NUMBER;
6916 l_sup_terms_id NUMBER;
6917 l_invoice_amount_limit NUMBER;
6918 l_pay_date_basis_lookup_code VARCHAR2(255);
6919 l_sup_pay_date_basis_lk_code VARCHAR2(255);
6920 l_always_take_disc_flag VARCHAR2(255);
6921 l_sup_always_take_disc_flag VARCHAR2(255);
6922 l_invoice_currency_code VARCHAR2(255);
6923 l_sup_invoice_currency_code VARCHAR2(255);
6924 l_payment_currency_code VARCHAR2(255);
6925 l_sup_payment_currency_code VARCHAR2(255);
6926 l_hold_all_payments_flag VARCHAR2(255);
6927 l_hold_future_payments_flag VARCHAR2(255);
6928 l_hold_reason VARCHAR2(255);
6929 l_hold_unmatched_invoices_flag VARCHAR2(255);
6930 l_match_option VARCHAR2(255);
6931 l_create_debit_memo_flag VARCHAR2(255);
6932 l_tax_reporting_site_flag VARCHAR2(255);
6933 l_attribute_category VARCHAR2(255);
6934 l_validation_number NUMBER;
6935 l_exclude_freight_from_disc VARCHAR2(255);
6936 l_check_digits VARCHAR2(255);
6937 l_address_style VARCHAR2(255);
6938 l_language VARCHAR2(255);
6939 l_allow_awt_flag VARCHAR2(255);
6940 l_awt_group_id NUMBER;
6941 l_pay_on_code VARCHAR2(255);
6942 l_default_pay_site_id NUMBER;
6943 l_pay_on_receipt_summary_code VARCHAR2(255);
6944 l_vendor_site_code_alt VARCHAR2(255);
6945 l_address_lines_alt VARCHAR2(255);
6946 l_pcard_site_flag VARCHAR2(255);
6947 l_country_of_origin_code VARCHAR2(255);
6948 l_calling_sequence VARCHAR2(255);
6949 l_shipping_location_id NUMBER;
6950 l_supplier_notif_method VARCHAR2(255);
6951 l_email_address VARCHAR2(255);
6952 l_remittance_email VARCHAR2(255);
6953 l_bank_charge_bearer VARCHAR2(255);
6954 l_sup_bank_charge_bearer VARCHAR2(255);
6955
6956 l_inventory_org_id NUMBER;
6957
6958 l_old_org_id VARCHAR2(255);
6959 l_org_id NUMBER;
6960 l_not_used VARCHAR2(2000);
6961 l_default_country VARCHAR2(255);
6962 l_federal_reportable_flag VARCHAR2(1); -- Supplier Import
6963 l_org_type_lookup_code VARCHAR2(25); -- Supplier Import
6964 l_set_of_books_id NUMBER; -- Supplier Import
6965 l_pay_on_rec_summary_code VARCHAR2(25); -- Supplier Import
6966
6967 l_duns_number VARCHAR2(30);
6968 l_tolerance_id NUMBER;
6969
6970 l_accts_pay_ccid_def VARCHAR2(255);
6971 l_prepay_ccid_def VARCHAR2(255);
6972 l_future_pay_ccid_def VARCHAR2(255);
6973
6974 l_user_id number := FND_GLOBAL.USER_ID;
6975 l_last_update_login number := FND_GLOBAL.LOGIN_ID;
6976 l_program_application_id number := FND_GLOBAL.prog_appl_id;
6977 l_program_id number := FND_GLOBAL.conc_program_id;
6978 l_request_id number := FND_GLOBAL.conc_request_id;
6979
6980 l_val_return_status VARCHAR2(50);
6981 l_val_msg_count NUMBER;
6982 l_val_msg_data VARCHAR2(2000);
6983 l_loc_return_status VARCHAR2(50);
6984 l_loc_msg_count NUMBER;
6985 l_loc_msg_data VARCHAR2(2000);
6986 l_site_return_status VARCHAR2(50);
6987 l_site_msg_count NUMBER;
6988 l_site_msg_data VARCHAR2(2000);
6989 l_pay_return_status VARCHAR2(50);
6990 l_pay_msg_count NUMBER;
6991 l_pay_msg_data VARCHAR2(2000);
6992 l_org_context VARCHAR2(1);
6993 l_multi_org_flag VARCHAR2(1);
6994 l_debug_info VARCHAR2(2000);
6995 l_party_id NUMBER;
6996 l_vendor_type_lookup_code VARCHAR2(30);
6997 l_vendor_site_rec r_vendor_site_rec_type;
6998 l_accts_pay_ccid NUMBER;
6999 l_prepay_ccid NUMBER;
7000 l_future_ccid NUMBER;
7001 l_last_updated_by NUMBER;
7002 l_created_by NUMBER;
7003 l_default_country_code VARCHAR2(25);
7004 l_home_country_code VARCHAR2(25);
7005 l_location_valid VARCHAR2(1);
7006 l_party_site_valid VARCHAR2(1);
7007 l_payee_valid VARCHAR2(1);
7008 l_loc_id NUMBER;
7009 l_party_site_id NUMBER;
7010 l_party_site_number VARCHAR2(30);
7011 l_org_id_derive NUMBER;
7012 x_valid BOOLEAN;
7013 -- bug 7371143 start
7014 l_offset_tax_flag VARCHAR2(1);
7015 l_auto_tax_calc_flag VARCHAR2(1);
7016 -- bug 7371143 end
7017
7018 /* Variable Declaration for IBY */
7019 ext_payee_tab
7020 IBY_DISBURSEMENT_SETUP_PUB.External_Payee_Tab_Type;
7021 ext_payee_id_tab
7022 IBY_DISBURSEMENT_SETUP_PUB.Ext_Payee_Id_Tab_Type;
7023 ext_payee_create_tab
7024 IBY_DISBURSEMENT_SETUP_PUB.Ext_Payee_Create_Tab_Type;
7025
7026 l_ext_payee_rec IBY_DISBURSEMENT_SETUP_PUB.EXTERNAL_PAYEE_REC_TYPE;
7027
7028 -- Bug#7506443 start
7029 l_tax_classification_code ZX_PARTY_TAX_PROFILE.TAX_CLASSIFICATION_CODE%TYPE;
7030 l_pymt_method_code iby_external_payees_all.default_payment_method_code%TYPE;
7031 l_inactive_date iby_external_payees_all.Inactive_Date%TYPE;
7032 l_primary_flag iby_ext_party_pmt_mthds.primary_flag%TYPE;
7033 l_Exclusive_Pay_Flag IBY_EXTERNAL_PAYEES_ALL.exclusive_payment_flag%TYPE;
7034 -- Bug#7506443 start
7035
7036 l_sync_return_status VARCHAR2(50);
7037 l_sync_msg_count NUMBER;
7038 l_sync_msg_data VARCHAR2(2000);
7039 l_sup_awt_flag VARCHAR2(1);
7040 -- BUG 6739544 Start
7041 ORG_ID_EXCEPTION EXCEPTION;
7042 -- BUG 6739544 End
7043
7044 l_party_site_num VARCHAR2(1); -- Bug 6823885
7045
7046 L_PARTY_TAX_PROFILE_ID zx_party_tax_profile.party_tax_profile_id%type; -- Bug 7207314
7047 l_return_status VARCHAR2(2000); --Bug 7207314
7048 -- changes for Bug#7506443 start
7049 Cursor get_iby_dtls_csr(p_prty_id NUMBER) is
7050 SELECT pmtmthdAssignmentseo.Payment_Method_Code,
7051 pmtmthdAssignmentseo.InActive_Date,
7052 pmtmthdAssignmentseo.Primary_Flag,
7053 iep.exclusive_payment_flag
7054 FROM iBy_Payment_Methods_vl pmthds,
7055 iBy_ext_Party_pmt_mthds pmtmthdAssignmentseo,
7056 iBy_External_Payees_All iep
7057 WHERE pmthds.Payment_Method_Code = pmtmthdAssignmentseo.Payment_Method_Code (+)
7058 AND pmtmthdAssignmentseo.Payment_Flow = 'DISBURSEMENTS'
7059 AND Nvl(pmthds.InActive_Date,Trunc(SYSDATE + 1)) > Trunc(SYSDATE)
7060 AND pmtmthdAssignmentseo.Payment_Function = 'PAYABLES_DISB'
7061 AND pmtmthdAssignmentseo.ext_pmt_Party_Id = iep.ext_payee_id
7062 AND iep.Payee_Party_Id = p_prty_id
7063 AND Party_Site_Id IS NULL
7064 AND Supplier_Site_Id IS NULL;
7065
7066
7067
7068 BEGIN
7069 -- Standard Start of API savepoint
7070 SAVEPOINT Create_Vendor_Site_PUB;
7071
7072 IF NOT FND_API.Compatible_API_Call ( l_api_version ,
7073 p_api_version ,
7074 l_api_name ,
7075 G_PKG_NAME )
7076 THEN
7077 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
7078 END IF;
7079
7080 -- Initialize message list if p_init_msg_list is set to TRUE.
7081 IF FND_API.to_Boolean( p_init_msg_list ) THEN
7082 FND_MSG_PUB.initialize;
7083 END IF;
7084 -- Bug 5055120
7085 -- This call is incorrect. The correct call is to have the calling
7086 -- modules set the context and call this API with the right ORG_ID.
7087
7088 -- Bug 6812010 :Due to 5055120, Payables' own supplier site import program fails
7089 -- because MO initialization is not happening.To fix 6812010 and keep 5055120 intact,
7090 -- strategy is that if calling application id is not AP then we will not call MO_GLOBAL.INIT
7091 -- since it is calling module's responsibility to perform MO initialization.
7092 -- Bug 6930102
7093 If (l_program_application_id = 200 OR l_program_application_id = -1)then
7094 MO_GLOBAL.INIT ('SQLAP');
7095 end if;
7096
7097 -- Initialize API return status to success
7098 x_return_status := FND_API.G_RET_STS_SUCCESS;
7099 l_val_return_status := FND_API.G_RET_STS_SUCCESS;
7100 l_loc_return_status := FND_API.G_RET_STS_SUCCESS;
7101 l_site_return_status := FND_API.G_RET_STS_SUCCESS;
7102 l_pay_return_status := FND_API.G_RET_STS_SUCCESS;
7103 l_sync_return_status := FND_API.G_RET_STS_SUCCESS;
7104
7105 -- API body
7106 ------------------------------------------------------------------------
7107 l_debug_info := 'Call Org_Id and Operating_unit_name validation for Import';
7108 ------------------------------------------------------------------------
7109 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
7110 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
7111 l_api_name,l_debug_info);
7112 END IF;
7113
7114 -- Org_Id and Operating_unit_name validation
7115 -- This is to make sure if org_id is not provided but
7116 -- org_name is provided then derive the org_id from operating_unit
7117
7118 IF (p_vendor_site_rec.org_id is NULL AND
7119 p_vendor_site_rec.org_name is NOT NULL) THEN
7120
7121 Check_org_id_name(l_org_id_derive,
7122 p_vendor_site_rec.org_name,
7123 'AP_SUPPLIER_SITES_INT',
7124 p_vendor_site_rec.vendor_site_interface_id,
7125 x_valid);
7126
7127 IF NOT x_valid THEN
7128 x_return_status := FND_API.G_RET_STS_ERROR;
7129 END IF;
7130
7131 END IF;
7132
7133 IF l_org_id_derive IS NOT NULL THEN
7134 l_def_org_id := l_org_id_derive;
7135 ELSE
7136 l_def_org_id := p_vendor_site_rec.org_id;
7137 END IF;
7138
7139 IF l_def_org_id IS NULL THEN
7140 x_return_status := FND_API.G_RET_STS_ERROR;
7141 IF g_source = 'IMPORT' THEN
7142 IF (Insert_Rejections(
7143 'AP_SUPPLIER_SITES_INT',
7144 p_vendor_site_rec.vendor_site_interface_id,
7145 'AP_ORG_INFO_NULL', --bug 5568861
7146 g_user_id,
7147 g_login_id,
7148 'Create_Vendor_Site') <> TRUE) THEN
7149 --
7150 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
7151 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
7152 l_api_name,'Parameters: '
7153 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
7154 ||' ,Vendor_Site_Code: '||p_vendor_site_rec.vendor_site_code);
7155 END IF;
7156 END IF;
7157 ELSE
7158 -- Bug 5491139 hkaniven start --
7159 FND_MESSAGE.SET_NAME('SQLAP','AP_ORG_INFO_NULL');
7160 FND_MSG_PUB.ADD;
7161 -- Bug 5491139 hkaniven end --
7162 END IF;
7163 -- RAISE FND_API.G_EXC_ERROR; BUG 6739544
7164 RAISE ORG_ID_EXCEPTION; -- BUG 6739544
7165 END IF;
7166 -- Bug 5055120
7167 -- Added validation of org_id
7168 BEGIN
7169
7170 MO_GLOBAL.validate_orgid_pub_api(l_def_org_id,
7171 'N',
7172 x_return_status);
7173 EXCEPTION
7174 WHEN OTHERS
7175 THEN
7176 IF g_source = 'IMPORT' THEN
7177 IF (Insert_Rejections(
7178 'AP_SUPPLIER_SITES_INT',
7179 p_vendor_site_rec.vendor_site_interface_id,
7180 'AP_ORG_INFO_NULL', --bug 5568861
7181 g_user_id,
7182 g_login_id,
7183 'Create_Vendor_Site') <> TRUE) THEN
7184 --
7185 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
7186 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
7187 l_api_name,'Parameters: '
7188 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
7189 ||' ,Vendor_Site_Code: '||p_vendor_site_rec.vendor_site_code);
7190 END IF;
7191 END IF;
7192 ELSE
7193 -- Bug 5491139 hkaniven start --
7194 FND_MESSAGE.SET_NAME('SQLAP','AP_ORG_INFO_NULL');
7195 FND_MSG_PUB.ADD;
7196 -- Bug 5491139 hkaniven end --
7197 END IF;
7198 -- RAISE FND_API.G_EXC_ERROR;
7199 RAISE ORG_ID_EXCEPTION; -- BUG 6739544
7200 END;
7201
7202
7203 l_org_context := mo_global.get_access_mode;
7204
7205 IF nvl(l_org_context, 'K') <> 'S' THEN
7206 MO_GLOBAL.set_policy_context('S',l_def_org_id);
7207 END IF;
7208
7209 SELECT nvl(multi_org_flag,'N')
7210 INTO l_multi_org_flag
7211 FROM FND_PRODUCT_GROUPS;
7212
7213 l_vendor_site_rec := p_vendor_site_rec;
7214
7215 l_vendor_site_rec.org_id := l_def_org_id;
7216
7217 --Open Issue 14 -- need to call initialize procedure due to MOAC changes
7218 l_debug_info := 'Call to default CCIDs from FINANCIAL_SYSTEM_PARAMETERS';
7219 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
7220 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
7221 END IF;
7222 --
7223 -- Get default CCIDs from FINANCIAL_SYSTEM_PARAMETERS
7224 --
7225
7226 ap_apxvdmvd_pkg.initialize(
7227 x_user_defined_vendor_num_code => l_not_used,
7228 x_manual_vendor_num_type => l_not_used,
7229 x_rfq_only_site_flag => l_rfq_only_site_flag,
7230 x_ship_to_location_id => l_ship_to_location_id,
7231 x_ship_to_location_code => l_not_used,
7232 x_bill_to_location_id => l_bill_to_location_id,
7233 x_bill_to_location_code => l_not_used,
7234 x_fob_lookup_code => l_fob_lookup_code,
7235 x_freight_terms_lookup_code => l_freight_terms_lookup_code,
7236 x_terms_id => l_terms_id,
7237 x_terms_disp => l_not_used,
7238 x_always_take_disc_flag => l_always_take_disc_flag,
7239 x_invoice_currency_code => l_invoice_currency_code,
7240 x_org_id => l_vendor_site_rec.org_id,
7241 x_set_of_books_id => l_not_used,
7242 x_short_name => l_not_used,
7243 x_payment_currency_code => l_payment_currency_code,
7244 x_accts_pay_ccid => l_accts_pay_ccid,
7245 x_future_dated_payment_ccid => l_future_pay_ccid,
7246 x_prepay_code_combination_id => l_prepay_ccid,
7247 x_vendor_pay_group_lookup_code => l_pay_group_lookup_code,
7248 x_sys_auto_calc_int_flag => l_not_used,
7249 x_terms_date_basis => l_terms_date_basis,
7250 x_terms_date_basis_disp => l_not_used,
7251 x_chart_of_accounts_id => l_not_used,
7252 x_fob_lookup_disp => l_not_used,
7253 x_freight_terms_lookup_disp => l_not_used,
7254 x_vendor_pay_group_disp => l_not_used,
7255 x_fin_require_matching => l_hold_unmatched_invoices_flag, --Bug 7651872
7256 x_sys_require_matching => l_not_used,
7257 x_fin_match_option => l_not_used,
7258 x_po_create_dm_flag => l_not_used,
7259 x_exclusive_payment => l_not_used,
7260 x_vendor_auto_int_default => l_not_used,
7261 x_inventory_organization_id => l_not_used,
7262 x_ship_via_lookup_code => l_ship_via_lookup_code,
7263 x_ship_via_disp => l_not_used,
7264 x_sysdate => l_not_used,
7265 x_enforce_ship_to_loc_code => l_not_used,
7266 x_receiving_routing_id => l_not_used,
7267 x_qty_rcv_tolerance => l_not_used,
7268 x_qty_rcv_exception_code => l_not_used,
7269 x_days_early_receipt_allowed => l_not_used,
7270 x_days_late_receipt_allowed => l_not_used,
7271 x_allow_sub_receipts_flag => l_not_used,
7272 x_allow_unord_receipts_flag => l_not_used,
7273 x_receipt_days_exception_code => l_not_used,
7274 x_enforce_ship_to_loc_disp => l_not_used,
7275 x_qty_rcv_exception_disp => l_not_used,
7276 x_receipt_days_exception_disp => l_not_used,
7277 x_receipt_required_flag => l_not_used,
7278 x_inspection_required_flag => l_not_used,
7279 x_payment_method_lookup_code => l_not_used,
7280 x_payment_method_disp => l_not_used,
7281 x_pay_date_basis_lookup_code => l_not_used,
7282 x_pay_date_basis_disp => l_not_used,
7283 x_receiving_routing_name => l_not_used,
7284 x_ap_inst_flag => l_not_used,
7285 x_po_inst_flag => l_not_used,
7286 x_home_country_code => l_home_country_code,
7287 x_default_country_code => l_default_country,
7288 x_default_country_disp => l_not_used,
7289 x_default_awt_group_id => l_awt_group_id,
7290 x_default_awt_group_name => l_not_used,
7291 x_allow_awt_flag => l_allow_awt_flag,
7292 x_base_currency_code => l_not_used,
7293 x_address_style => l_not_used,
7294 x_use_bank_charge_flag => l_not_used,
7295 x_bank_charge_bearer => l_bank_charge_bearer,
7296 x_calling_sequence => null);
7297
7298 -- Retrieve defaults from the vendor master
7299
7300 /* Bug 7155121 Modified the below select to get values from both ap_system_parameters_all and po_vendors*/
7301
7302 SELECT nvl(pv.terms_date_basis, asp.terms_date_basis) -- Bug#7506443
7303 , pv.pay_group_lookup_code
7304 , pv.payment_priority
7305 , asp.always_take_disc_flag
7306 , pv.hold_all_payments_flag
7307 , pv.hold_future_payments_flag
7308 , pv.hold_reason
7309 --Bug6317600 Commenting awt_group_id. AWT should be defaulted from Payables options and not Supplier
7310 --, pv.awt_group_id
7311 , asp.bank_charge_bearer
7312 , asp.match_option
7313 , asp.pay_date_basis_lookup_code
7314 , pv.invoice_amount_limit
7315 , NVL(pv.invoice_currency_code,asp.invoice_currency_code) --bug:7282105
7316 , NVL(pv.payment_currency_code,asp.payment_currency_code) --bug:7282105
7317 , NVL(pv.terms_id, asp.terms_id) -- Bug#7506443
7318 , pv.federal_reportable_flag
7319 , pv.organization_type_lookup_code
7320 , asp.set_of_books_id
7321 --Bug 7651872, asp.hold_unmatched_invoices_flag
7322 , pv.exclude_freight_from_discount
7323 , pv.party_id
7324 , pv.vendor_type_lookup_code
7325 , nvl(pv.allow_awt_flag, 'N')
7326 INTO
7327 l_sup_terms_date_basis
7328 , l_sup_pay_group_lookup_code
7329 , l_payment_priority
7330 , l_sup_always_take_disc_flag
7331 , l_hold_all_payments_flag
7332 , l_hold_future_payments_flag
7333 , l_hold_reason
7334 --Bug6317600
7335 --, l_awt_group_id
7336 , l_sup_bank_charge_bearer
7337 , l_match_option
7338 , l_sup_pay_date_basis_lk_code
7339 , l_invoice_amount_limit
7340 , l_sup_invoice_currency_code
7341 , l_sup_payment_currency_code
7342 , l_sup_terms_id
7343 , l_federal_reportable_flag
7344 , l_org_type_lookup_code
7345 , l_set_of_books_id
7346 --Bug 7651872, l_hold_unmatched_invoices_flag
7347 , l_exclude_freight_from_disc
7348 , l_party_id
7349 , l_vendor_type_lookup_code
7350 , l_sup_awt_flag
7351 FROM po_vendors pv,
7352 ap_system_parameters_all asp
7353 WHERE pv.vendor_id = p_vendor_site_rec.vendor_id
7354 AND asp.org_id=l_def_org_id;
7355
7356 l_last_updated_by := fnd_global.user_id;
7357 l_last_update_login := fnd_global.login_id;
7358 l_created_by := fnd_global.user_id;
7359
7360 --Bug6679696
7361 IF l_vendor_type_lookup_code = 'EMPLOYEE' then
7362 l_vendor_site_rec.pay_site_flag := nvl(l_vendor_site_rec.pay_site_flag,'Y');
7363 END IF;
7364 G_vendor_type_lookup_code := l_vendor_type_lookup_code;
7365 l_vendor_site_rec.rfq_only_site_flag
7366 := nvl(l_vendor_site_rec.rfq_only_site_flag, l_rfq_only_site_flag);
7367 l_vendor_site_rec.attention_ar_flag :=
7368 nvl(l_vendor_site_rec.attention_ar_flag, 'N');
7369 l_vendor_site_rec.ship_to_location_id
7370 := nvl(l_vendor_site_rec.ship_to_location_id, l_ship_to_location_id);
7371 l_vendor_site_rec.bill_to_location_id
7372 := nvl(l_vendor_site_rec.bill_to_location_id, l_bill_to_location_id);
7373 l_vendor_site_rec.ship_via_lookup_code
7374 := nvl(l_vendor_site_rec.ship_via_lookup_code, l_ship_via_lookup_code);
7375 l_vendor_site_rec.freight_terms_lookup_code
7376 := nvl(l_vendor_site_rec.freight_terms_lookup_code,
7377 l_freight_terms_lookup_code);
7378 l_vendor_site_rec.fob_lookup_code
7379 := nvl(l_vendor_site_rec.fob_lookup_code, l_fob_lookup_code);
7380 -- Bug#7506443 start
7381 /* l_vendor_site_rec.terms_date_basis :=
7382 nvl(l_vendor_site_rec.terms_date_basis, nvl(l_terms_date_basis,
7383 l_sup_terms_date_basis)); */
7384 l_vendor_site_rec.terms_date_basis :=
7385 nvl(l_vendor_site_rec.terms_date_basis, nvl(l_sup_terms_date_basis,
7386 l_terms_date_basis));
7387 -- Bug#7506443 end
7388 l_vendor_site_rec.accts_pay_code_combination_id
7389 := nvl(l_vendor_site_rec.accts_pay_code_combination_id,
7390 l_accts_pay_ccid);
7391 l_vendor_site_rec.future_dated_payment_ccid
7392 := nvl(l_vendor_site_rec.future_dated_payment_ccid,
7393 l_future_pay_ccid);
7394 l_vendor_site_rec.prepay_code_combination_id
7395 := nvl(l_vendor_site_rec.prepay_code_combination_id,
7396 l_prepay_ccid);
7397 -- Bug 5409457. Pay Group should be based supplier, if there is no value at
7398 -- supplier then from product setup level.
7399 l_vendor_site_rec.pay_group_lookup_code
7400 := nvl(l_vendor_site_rec.pay_group_lookup_code,
7401 nvl(l_sup_pay_group_lookup_code, l_pay_group_lookup_code));
7402 l_vendor_site_rec.payment_priority
7403 := nvl(l_vendor_site_rec.payment_priority, l_payment_priority);
7404 -- Bug#7506443 start
7405 /*l_vendor_site_rec.terms_id := nvl(l_vendor_site_rec.terms_id,
7406 nvl(l_terms_id, l_sup_terms_id)); */
7407 l_vendor_site_rec.terms_id := nvl(l_vendor_site_rec.terms_id,
7408 nvl(l_sup_terms_id, l_terms_id));
7409 -- Bug#7506443 end
7410 l_vendor_site_rec.invoice_amount_limit
7411 := nvl(l_vendor_site_rec.invoice_amount_limit, l_invoice_amount_limit);
7412 l_vendor_site_rec.pay_date_basis_lookup_code
7413 := nvl(l_vendor_site_rec.pay_date_basis_lookup_code,
7414 nvl(l_pay_date_basis_lookup_code, l_sup_pay_date_basis_lk_code));
7415 -- bug6680946
7416 l_vendor_site_rec.always_take_disc_flag
7417 := nvl(l_vendor_site_rec.always_take_disc_flag, l_sup_always_take_disc_flag);
7418 l_vendor_site_rec.invoice_currency_code
7419 := nvl(l_vendor_site_rec.invoice_currency_code,
7420 nvl(l_sup_invoice_currency_code, l_invoice_currency_code )); --bug:7282105
7421 l_vendor_site_rec.payment_currency_code
7422 := nvl(l_vendor_site_rec.payment_currency_code,
7423 nvl(l_sup_payment_currency_code, l_payment_currency_code)); --bug:7282105
7424 l_vendor_site_rec.hold_all_payments_flag
7425 := nvl(l_vendor_site_rec.hold_all_payments_flag,
7426 l_hold_all_payments_flag);
7427 l_vendor_site_rec.hold_future_payments_flag
7428 := nvl(l_vendor_site_rec.hold_future_payments_flag,
7429 l_hold_future_payments_flag);
7430 l_vendor_site_rec.hold_reason
7431 := nvl(l_vendor_site_rec.hold_reason, l_hold_reason);
7432 l_vendor_site_rec.hold_unmatched_invoices_flag
7433 := nvl(l_vendor_site_rec.hold_unmatched_invoices_flag,
7434 l_hold_unmatched_invoices_flag);
7435 l_vendor_site_rec.match_option
7436 := nvl(l_vendor_site_rec.match_option, l_match_option);
7437 l_vendor_site_rec.create_debit_memo_flag
7438 := nvl(l_vendor_site_rec.create_debit_memo_flag, 'N');
7439 l_vendor_site_rec.tax_reporting_site_flag
7440 := nvl(l_vendor_site_rec.tax_reporting_site_flag, 'N');
7441 l_vendor_site_rec.validation_number
7442 := nvl(l_vendor_site_rec.validation_number, 0);
7443 l_vendor_site_rec.exclude_freight_from_discount
7444 := nvl(l_vendor_site_rec.exclude_freight_from_discount,
7445 l_exclude_freight_from_disc);
7446 --Bug 7384699 populate allow_awt_flag only iff Supplier awt_flag is enabled
7447 if(l_sup_awt_flag = 'Y') THEN
7448 l_vendor_site_rec.allow_awt_flag
7449 := nvl(l_vendor_site_rec.allow_awt_flag, l_allow_awt_flag);
7450 else
7451 l_vendor_site_rec.allow_awt_flag := 'N';
7452 end if;
7453 --Bug6317600 Populate awt_group_id only if allow_awt_flag is Y
7454 if nvl( l_vendor_site_rec.allow_awt_flag,'N') = 'Y' THEN
7455 l_vendor_site_rec.awt_group_id
7456 := nvl(l_vendor_site_rec.awt_group_id, l_awt_group_id);
7457 end if;
7458 l_vendor_site_rec.bank_charge_bearer
7459 := nvl(l_vendor_site_rec.bank_charge_bearer,
7460 nvl(l_bank_charge_bearer, l_sup_bank_charge_bearer));
7461 l_vendor_site_rec.pcard_site_flag
7462 := nvl(l_vendor_site_rec.pcard_site_flag, 'N');
7463 l_vendor_site_rec.country_of_origin_code
7464 := nvl(l_vendor_site_rec.country_of_origin_code, l_default_country);
7465 l_vendor_site_rec.org_id := nvl(l_vendor_site_rec.org_id, l_org_id);
7466 l_vendor_site_rec.duns_number
7467 := nvl(l_vendor_site_rec.duns_number, l_duns_number);
7468
7469 validate_vendor_site(p_api_version => 1.0,
7470 p_init_msg_list => FND_API.G_FALSE,
7471 p_commit => FND_API.G_FALSE,
7472 x_return_status => l_val_return_status,
7473 x_msg_count => l_val_msg_count,
7474 x_msg_data => l_val_msg_data,
7475 p_vendor_site_rec => l_vendor_site_rec,
7476 P_mode => 'I',
7477 P_calling_prog => 'NOT ISETUP',
7478 x_party_site_valid => l_party_site_valid,
7479 x_location_valid => l_location_valid,
7480 x_payee_valid => l_payee_valid,
7481 p_vendor_site_id => x_vendor_site_id);
7482
7483 -- Bug 7429668 Adding condition of l_val_return_status to ensure that
7484 -- locations are created only if the validation passes successfully.
7485 IF l_location_valid = 'N' AND nvl(l_val_return_status,FND_API.G_RET_STS_SUCCESS) =
7486 FND_API.G_RET_STS_SUCCESS THEN -- location_id was null
7487
7488 l_location_rec.created_by_module := 'AP_SUPPLIERS_API';
7489 l_location_rec.application_id := 200;
7490 l_location_rec.address_style := l_vendor_site_rec.address_style;
7491 l_location_rec.province := l_vendor_site_rec.province;
7492 l_location_rec.country := l_vendor_site_rec.country;
7493 l_location_rec.county := l_vendor_site_rec.county;
7494 l_location_rec.address1 := l_vendor_site_rec.address_line1;
7495 l_location_rec.address2 := l_vendor_site_rec.address_line2;
7496 l_location_rec.address3 := l_vendor_site_rec.address_line3;
7497 l_location_rec.address4 := l_vendor_site_rec.address_line4;
7498 l_location_rec.address_lines_phonetic := l_vendor_site_rec.address_lines_alt;
7499 l_location_rec.city := l_vendor_site_rec.city;
7500 l_location_rec.state := l_vendor_site_rec.state;
7501 l_location_rec.postal_code := l_vendor_site_rec.zip;
7502
7503 -- The input language that we get from suppliers
7504 -- open interface will be NLS_LANGUAGE and will not be
7505 -- language code. So it needs to be converted to
7506 -- language_code before passed to TCA API.
7507
7508 IF l_vendor_site_rec.language IS NOT NULL THEN
7509 BEGIN
7510 SELECT language_code
7511 INTO l_location_rec.language
7512 FROM fnd_languages
7513 WHERE nls_language = l_vendor_site_rec.language;
7514 EXCEPTION
7515 WHEN OTHERS THEN
7516 l_location_rec.language := NULL;
7517 END;
7518 END IF;
7519
7520 --Open Issue 4, check for needed parameters
7521 --Bug6648405
7522 --Bug 6753822 - Added NVL on vendor_type_lookup_code
7523 IF (NVL(l_vendor_type_lookup_code,'DUMMY') <> 'EMPLOYEE') then
7524 hz_location_v2pub.create_location(
7525 p_init_msg_list => FND_API.G_FALSE,
7526 p_location_rec => l_location_rec,
7527 -- p_commit => FND_API.G_FALSE,
7528 x_return_status => l_loc_return_status,
7529 x_msg_count => l_loc_msg_count,
7530 x_msg_data => l_loc_msg_data,
7531 x_location_id => l_loc_id);
7532 IF l_loc_return_status <> FND_API.G_RET_STS_SUCCESS THEN
7533 ------------------------------------------------------------------------
7534 l_debug_info := 'After call to hz_location_v2pub.create_location';
7535 l_debug_info := l_debug_info||' Return status : '||l_loc_return_status||' Error : '||l_loc_msg_data;
7536 ------------------------------------------------------------------------
7537 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
7538 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
7539 END IF;
7540 END IF;
7541 END IF;
7542 l_vendor_site_rec.location_id := l_loc_id;
7543
7544 END IF; --location_id was null
7545
7546 IF l_party_site_valid = 'N' and
7547 l_location_valid <> 'F' and
7548 nvl(l_loc_return_status,FND_API.G_RET_STS_SUCCESS) =
7549 FND_API.G_RET_STS_SUCCESS AND
7550 -- Bug 7429668
7551 nvl(l_val_return_status,FND_API.G_RET_STS_SUCCESS) =
7552 FND_API.G_RET_STS_SUCCESS THEN
7553
7554 --populate party site record
7555 l_party_site_rec.location_id := l_vendor_site_rec.location_id;
7556 l_party_site_rec.created_by_module := 'AP_SUPPLIERS_API';
7557 l_party_site_rec.application_id := 200;
7558 l_party_site_rec.party_id := l_party_id;
7559
7560 --Uncommenting the line below for the R12 FSIO gap,
7561 --as we want the duns number to be imported on
7562 --supplier sites(bug6053476)
7563 l_party_site_rec.duns_number_c := l_vendor_site_rec.duns_number;
7564 --Bug5896973
7565 --Added code to populate City + State + Country in party_site_name field of hz_party_sites table
7566 --l_party_site_rec.party_site_name :=
7567 -- nvl(l_vendor_site_rec.city,'')||' '
7568 -- ||nvl(l_vendor_site_rec.state,'')||' '
7569 -- ||nvl(l_vendor_site_rec.country,'');
7570 --Bug 7316431
7571 l_party_site_rec.party_site_name := nvl(l_vendor_site_rec.vendor_site_code,'');
7572
7573 --Open Issue 4, check for needed parameters
7574 --Bug6648405
7575 --Bug 6753822 - Added NVL on vendor_type_lookup_code
7576 IF (NVL(l_vendor_type_lookup_code,'DUMMY') <> 'EMPLOYEE') then
7577 -- udhenuko Bug 6823885 start
7578 --We need to populate the party site number based on profile value.
7579 fnd_profile.get('HZ_GENERATE_PARTY_SITE_NUMBER', l_party_site_num);
7580 IF nvl(l_party_site_num, 'Y') = 'N' THEN
7581 SELECT HZ_PARTY_SITE_NUMBER_S.Nextval
7582 INTO l_party_site_rec.party_site_number
7583 FROM DUAL;
7584 END IF;
7585 -- udhenuko Bug 6823885 End
7586 hz_party_site_v2pub.create_party_site(
7587 p_init_msg_list => FND_API.G_FALSE,
7588 p_party_site_rec => l_party_site_rec,
7589 --p_commit => FND_API.G_FALSE,
7590 x_return_status => l_site_return_status,
7591 x_msg_count => l_site_msg_count,
7592 x_msg_data => l_site_msg_data,
7593 x_party_site_id => l_party_site_id,
7594 x_party_site_number => l_party_site_number);
7595 IF l_site_return_status <> FND_API.G_RET_STS_SUCCESS THEN
7596 ------------------------------------------------------------------------
7597 l_debug_info := 'After call to hz_party_site_v2pub.create_party_site';
7598 l_debug_info := l_debug_info||' Return status : '||l_site_return_status||' Error : '||l_site_msg_data;
7599 ------------------------------------------------------------------------
7600 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
7601 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
7602 END IF;
7603 END IF;
7604 END IF;
7605 l_vendor_site_rec.party_site_id := l_party_site_id;
7606 -- udhenuko Bug 6823885 Added the else condition to populate the party site id.
7607 -- If part site is valid then the id can be found in the vendor site rec.
7608 ELSE
7609 -- Assign the Party Site Id and Location Id from the record to the varialbes.
7610 l_party_site_id := l_vendor_site_rec.party_site_id;
7611 l_loc_id := l_vendor_site_rec.location_id;
7612 -- udhenuko Bug 6823885 End
7613 END IF; -- party_site_id was null
7614
7615 -- Bug#7371143 zrehman changes started
7616 BEGIN
7617 SELECT PROCESS_FOR_APPLICABILITY_FLAG, ALLOW_OFFSET_TAX_FLAG
7618 , TAX_CLASSIFICATION_CODE -- Bug#7506443
7619 INTO l_auto_tax_calc_flag,l_offset_tax_flag,
7620 l_tax_classification_code -- Bug#7506443
7621 FROM ZX_PARTY_TAX_PROFILE
7622 WHERE PARTY_ID = l_party_id
7623 AND PARTY_TYPE_CODE = 'THIRD_PARTY'
7624 AND ROWNUM = 1;
7625 EXCEPTION
7626 WHEN OTHERS THEN
7627 l_debug_info := 'No data returned from ZX_PARTY_TAX_PROFILE for party_id = '||l_party_id;
7628 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
7629 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
7630 END IF;
7631 END;
7632 -- Bug#7642742 start
7633
7634 -- Bug#7506443 start
7635 l_vendor_site_rec.OFFSET_TAX_FLAG := nvl(l_vendor_site_rec.OFFSET_TAX_FLAG, l_offset_tax_flag);
7636 l_vendor_site_rec.AUTO_TAX_CALC_FLAG := nvl(l_vendor_site_rec.AUTO_TAX_CALC_FLAG, l_auto_tax_calc_flag);
7637 l_vendor_site_rec.VAT_CODE := nvl(l_vendor_site_rec.VAT_CODE, l_tax_classification_code);
7638 -- Bug#7506443 start
7639 l_offset_tax_flag := l_vendor_site_rec.OFFSET_TAX_FLAG;
7640 l_auto_tax_calc_flag := l_vendor_site_rec.AUTO_TAX_CALC_FLAG;
7641 l_tax_classification_code := l_vendor_site_rec.VAT_CODE;
7642 -- Bug#7642742 end
7643
7644
7645
7646 -- Start Bug 7207314. Update Tax Registration Number in ZX_PARTY_TAX_PROFILE
7647 -- VAT Registration Number is not stored at site level or HZ Party Site.
7648 -- This info is maintained by ZX Party Profile as 3rd party site tax profile.
7649
7650 IF (l_vendor_site_rec.vat_registration_num is not null
7651 or l_auto_tax_calc_flag is not null or l_offset_tax_flag is not null -- Bug#7371143 zrehman
7652 or l_tax_classification_code is not null) then -- Bug#7642742
7653
7654 IF ( (l_location_valid = 'V' OR (l_location_valid = 'N' and l_loc_return_status = FND_API.G_RET_STS_SUCCESS))
7655 AND (l_party_site_valid = 'V' OR (l_party_site_valid = 'N' and l_site_return_status =
7656 FND_API.G_RET_STS_SUCCESS)) ) THEN
7657
7658 BEGIN
7659 SELECT PARTY_TAX_PROFILE_ID INTO L_PARTY_TAX_PROFILE_ID
7660 FROM ZX_PARTY_TAX_PROFILE
7661 WHERE PARTY_ID = l_party_site_id
7662 AND PARTY_TYPE_CODE = 'THIRD_PARTY_SITE'
7663 AND ROWNUM = 1;
7664 EXCEPTION
7665 WHEN OTHERS THEN
7666 L_PARTY_TAX_PROFILE_ID := NULL;
7667 END;
7668
7669 IF L_PARTY_TAX_PROFILE_ID IS NOT NULL THEN
7670 ZX_PARTY_TAX_PROFILE_PKG.update_row (
7671 P_PARTY_TAX_PROFILE_ID => L_PARTY_TAX_PROFILE_ID,
7672 P_COLLECTING_AUTHORITY_FLAG => null,
7673 P_PROVIDER_TYPE_CODE => null,
7674 P_CREATE_AWT_DISTS_TYPE_CODE => null,
7675 P_CREATE_AWT_INVOICES_TYPE_COD => null,
7676 P_TAX_CLASSIFICATION_CODE => l_tax_classification_code, -- Bug#7506443 zrehman
7677 P_SELF_ASSESS_FLAG => null,
7678 P_ALLOW_OFFSET_TAX_FLAG => l_offset_tax_flag,-- Bug#7371143 zrehman
7679 P_REP_REGISTRATION_NUMBER => l_vendor_site_rec.vat_registration_num,
7680 P_EFFECTIVE_FROM_USE_LE => null,
7681 P_RECORD_TYPE_CODE => null,
7682 P_REQUEST_ID => null,
7683 P_ATTRIBUTE1 => null,
7684 P_ATTRIBUTE2 => null,
7685 P_ATTRIBUTE3 => null,
7686 P_ATTRIBUTE4 => null,
7687 P_ATTRIBUTE5 => null,
7688 P_ATTRIBUTE6 => null,
7689 P_ATTRIBUTE7 => null,
7690 P_ATTRIBUTE8 => null,
7691 P_ATTRIBUTE9 => null,
7692 P_ATTRIBUTE10 => null,
7693 P_ATTRIBUTE11 => null,
7694 P_ATTRIBUTE12 => null,
7695 P_ATTRIBUTE13 => null,
7696 P_ATTRIBUTE14 => null,
7697 P_ATTRIBUTE15 => null,
7698 P_ATTRIBUTE_CATEGORY => null,
7699 P_PARTY_ID => null,
7700 P_PROGRAM_LOGIN_ID => null,
7701 P_PARTY_TYPE_CODE => null,
7702 P_SUPPLIER_FLAG => null,
7703 P_CUSTOMER_FLAG => null,
7704 P_SITE_FLAG => null,
7705 P_PROCESS_FOR_APPLICABILITY_FL => l_auto_tax_calc_flag,-- Bug#7371143 zrehman
7706 P_ROUNDING_LEVEL_CODE => null,
7707 P_ROUNDING_RULE_CODE => null,
7708 P_WITHHOLDING_START_DATE => null,
7709 P_INCLUSIVE_TAX_FLAG => null,
7710 P_ALLOW_AWT_FLAG => null,
7711 P_USE_LE_AS_SUBSCRIBER_FLAG => null,
7712 P_LEGAL_ESTABLISHMENT_FLAG => null,
7713 P_FIRST_PARTY_LE_FLAG => null,
7714 P_REPORTING_AUTHORITY_FLAG => null,
7715 X_RETURN_STATUS => l_return_status,
7716 P_REGISTRATION_TYPE_CODE => null,
7717 P_COUNTRY_CODE => null
7718 );
7719 IF l_return_status <> fnd_api.g_ret_sts_success THEN
7720 l_debug_info := 'ZX_PARTY_TAX_PROFILE_PKG.update_row';
7721 l_debug_info := l_debug_info||' Return status : '||l_return_status;
7722 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
7723 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
7724 END IF;
7725 END IF;
7726 END IF;
7727 END IF;
7728 END IF;
7729 -- End Bug 7207314
7730
7731 -- Bug 5244172
7732 -- Allow the vendor site creation even if we do not have
7733 -- location or party site IDs and the vendor type is
7734 -- Employee.
7735
7736 IF (l_val_return_status = FND_API.G_RET_STS_SUCCESS) AND
7737 ((l_loc_return_status = FND_API.G_RET_STS_SUCCESS) OR
7738 (l_loc_return_status <> FND_API.G_RET_STS_SUCCESS AND
7739 l_vendor_site_rec.location_id IS NULL AND
7740 l_vendor_type_lookup_code = 'EMPLOYEE')) AND
7741 ((l_site_return_status = FND_API.G_RET_STS_SUCCESS) OR
7742 (l_site_return_status <> FND_API.G_RET_STS_SUCCESS AND
7743 l_vendor_site_rec.party_site_id IS NULL AND
7744 l_vendor_type_lookup_code = 'EMPLOYEE')) AND
7745 (l_payee_valid = 'N' OR
7746 l_pay_return_status = FND_API.G_RET_STS_SUCCESS) THEN
7747
7748 ap_vendor_sites_pkg.insert_row(
7749 p_vendor_site_rec => l_vendor_site_rec,
7750 p_last_update_date => sysdate,
7751 p_last_updated_by => nvl(l_user_id,-1),
7752 p_last_update_login => nvl(l_last_update_login, -1),
7753 p_creation_date => sysdate,
7754 p_created_by => nvl(l_user_id, -1) ,
7755 p_request_id => l_request_id ,
7756 p_program_application_id => l_program_application_id,
7757 p_program_id => l_program_id,
7758 p_program_update_date => sysdate,
7759 x_rowid => l_rowid,
7760 x_vendor_site_id => l_vendor_site_id);
7761 ------------------------------------------------------------------------
7762 l_debug_info := 'After call to ap_vendor_sites_pkg.insert_row';
7763 ------------------------------------------------------------------------
7764 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
7765 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
7766 END IF;
7767 --Bug6648405
7768 --Bug 6753822 - Added NVL on vendor_type_lookup_code
7769 IF (NVL(l_vendor_type_lookup_code,'DUMMY') <> 'EMPLOYEE') then
7770
7771 AP_TCA_SUPPLIER_SYNC_PKG.SYNC_Supplier_Sites(
7772 l_sync_return_status,
7773 l_sync_msg_count,
7774 l_sync_msg_data,
7775 l_vendor_site_rec.location_id,
7776 l_vendor_site_rec.party_site_id);
7777 IF l_sync_return_status <> FND_API.G_RET_STS_SUCCESS THEN
7778 ------------------------------------------------------------------------
7779 l_debug_info := 'After call to AP_TCA_SUPPLIER_SYNC_PKG.SYNC_Supplier_Sites';
7780 l_debug_info := l_debug_info||' Return status : '||l_sync_return_status||' Error : '||l_sync_msg_data;
7781 ------------------------------------------------------------------------
7782 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
7783 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
7784 END IF;
7785 END IF;
7786 END IF;
7787
7788 IF l_sync_return_status = FND_API.G_RET_STS_SUCCESS THEN
7789 Raise_Supplier_Event( i_vendor_site_id => l_vendor_site_id ); -- Bug 7307669
7790 x_return_status := FND_API.G_RET_STS_SUCCESS;
7791 END IF;
7792 x_party_site_id := l_party_site_id;
7793 x_location_id := l_loc_id;
7794 x_vendor_site_id := l_vendor_site_id;
7795
7796 ELSIF (l_val_return_status = FND_API.G_RET_STS_UNEXP_ERROR) OR
7797 ((l_loc_return_status = FND_API.G_RET_STS_UNEXP_ERROR) AND
7798 (l_vendor_type_lookup_code <> 'EMPLOYEE') AND
7799 (l_vendor_site_rec.location_id IS NULL)) OR
7800 ((l_site_return_status = FND_API.G_RET_STS_UNEXP_ERROR) AND
7801 (l_vendor_type_lookup_code <> 'EMPLOYEE') AND
7802 (l_vendor_site_rec.party_site_id IS NULL)) OR
7803 (l_pay_return_status = FND_API.G_RET_STS_UNEXP_ERROR) OR
7804 (l_sync_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
7805
7806 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
7807
7808 ELSE
7809
7810 x_return_status := FND_API.G_RET_STS_ERROR;
7811 END IF;
7812
7813 IF l_payee_valid = 'N' THEN --payee record is valid
7814
7815 -- As per the discussion with Omar/Jayanta, we will only
7816 -- have payables payment function and no more employee expenses
7817 -- payment function.
7818
7819 -- changes for Bug#7506443 start
7820 Open get_iby_dtls_csr(l_party_id);
7821 Fetch get_iby_dtls_csr INTO l_pymt_method_code
7822 ,l_inactive_date
7823 ,l_primary_flag
7824 ,l_Exclusive_Pay_Flag;
7825 Close get_iby_dtls_csr;
7826
7827 -- changes for Bug#7506443 end
7828
7829
7830 IF l_vendor_site_rec.ext_payee_rec.payment_function IS NULL THEN
7831
7832 l_ext_payee_rec.payee_party_id := l_party_id;
7833 l_ext_payee_rec.payee_party_site_id := l_vendor_site_rec.party_site_id;
7834 l_ext_payee_rec.supplier_site_id := l_vendor_site_id;
7835 l_ext_payee_rec.payment_function := 'PAYABLES_DISB';
7836 l_ext_payee_rec.payer_org_id := l_vendor_site_rec.org_id;
7837 l_ext_payee_rec.payer_org_type := 'OPERATING_UNIT';
7838 l_ext_payee_rec.exclusive_pay_flag := 'N';
7839
7840 -- 6458813 starts
7841 -- 7506443 changes start
7842 l_ext_payee_rec.default_pmt_method := nvl (l_vendor_site_rec.ext_payee_rec.default_pmt_method,
7843 l_pymt_method_code);
7844 l_ext_payee_rec.inactive_date := l_inactive_date;
7845 -- l_ext_payee_rec.Exclusive_Pay_Flag := l_Exclusive_Pay_Flag; -- Bug8200842
7846 -- 7506443 changes start
7847
7848 l_ext_payee_rec.ece_tp_loc_code := l_vendor_site_rec.ext_payee_rec.ece_tp_loc_code;
7849 l_ext_payee_rec.bank_charge_bearer := l_vendor_site_rec.ext_payee_rec.bank_charge_bearer;
7850 l_ext_payee_rec.bank_instr1_code := l_vendor_site_rec.ext_payee_rec.bank_instr1_code;
7851 l_ext_payee_rec.bank_instr2_code := l_vendor_site_rec.ext_payee_rec.bank_instr2_code;
7852 l_ext_payee_rec.bank_instr_detail := l_vendor_site_rec.ext_payee_rec.bank_instr_detail;
7853 l_ext_payee_rec.pay_reason_code := l_vendor_site_rec.ext_payee_rec.pay_reason_code;
7854 l_ext_payee_rec.pay_reason_com := l_vendor_site_rec.ext_payee_rec.pay_reason_com;
7855 l_ext_payee_rec.pay_message1 := l_vendor_site_rec.ext_payee_rec.pay_message1;
7856 l_ext_payee_rec.pay_message2 := l_vendor_site_rec.ext_payee_rec.pay_message2;
7857 l_ext_payee_rec.pay_message3 := l_vendor_site_rec.ext_payee_rec.pay_message3;
7858 l_ext_payee_rec.delivery_channel := l_vendor_site_rec.ext_payee_rec.delivery_channel;
7859 l_ext_payee_rec.pmt_format := l_vendor_site_rec.ext_payee_rec.pmt_format;
7860 l_ext_payee_rec.settlement_priority := l_vendor_site_rec.ext_payee_rec.settlement_priority;
7861 -- 6458813 ends
7862
7863 ext_payee_tab(1) := l_ext_payee_rec;
7864
7865 ELSE
7866 -- 7506443 changes start
7867 l_vendor_site_rec.ext_payee_rec.default_pmt_method :=nvl (l_vendor_site_rec.ext_payee_rec.default_pmt_method,l_pymt_method_code);
7868 l_vendor_site_rec.ext_payee_rec.inactive_date := l_inactive_date;
7869 l_ext_payee_rec.Exclusive_Pay_Flag := l_Exclusive_Pay_Flag;
7870 -- 7506443 changes start
7871 ext_payee_tab(1) := l_vendor_site_rec.ext_payee_rec;
7872
7873 END IF;
7874
7875 /* Calling IBY Payee Creation API */
7876 IBY_DISBURSEMENT_SETUP_PUB.Create_External_Payee
7877 ( p_api_version => 1.0,
7878 p_init_msg_list => FND_API.G_FALSE,
7879 p_ext_payee_tab => ext_payee_tab,
7880 x_return_status => l_pay_return_status,
7881 x_msg_count => l_pay_msg_count,
7882 x_msg_data => l_pay_msg_data,
7883 x_ext_payee_id_tab => ext_payee_id_tab,
7884 x_ext_payee_status_tab => ext_payee_create_tab);
7885 IF l_pay_return_status <> FND_API.G_RET_STS_SUCCESS THEN
7886 ------------------------------------------------------------------------
7887 l_debug_info := 'After call to IBY_DISBURSEMENT_SETUP_PUB.Create_External_Payee';
7888 l_debug_info := l_debug_info||' Return status : '||l_pay_return_status||' Error : '||l_pay_msg_data;
7889 ------------------------------------------------------------------------
7890 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
7891 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
7892 END IF;
7893 END IF;
7894 END IF;
7895
7896 /* Bug 5310356 */
7897 IF l_org_context <> MO_Global.Get_Access_Mode THEN
7898 MO_GLOBAL.Set_Policy_Context(l_org_context, l_def_org_id);
7899 END IF;
7900
7901 -- End of API body.
7902
7903 -- Standard check of p_commit.
7904 IF FND_API.To_Boolean( p_commit ) THEN
7905 COMMIT WORK;
7906 END IF;
7907
7908 -- Standard call to get message count and if count is 1,
7909 -- get message info.
7910 FND_MSG_PUB.Count_And_Get(
7911 p_count => x_msg_count ,
7912 p_data => x_msg_data
7913 );
7914
7915 EXCEPTION
7916 WHEN FND_API.G_EXC_ERROR THEN
7917 ROLLBACK TO Create_Vendor_Site_PUB;
7918 x_return_status := FND_API.G_RET_STS_ERROR ;
7919 FND_MSG_PUB.Count_And_Get
7920 ( p_count => x_msg_count,
7921 p_data => x_msg_data
7922 );
7923 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
7924 ROLLBACK TO Create_Vendor_Site_PUB;
7925 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
7926 FND_MSG_PUB.Count_And_Get
7927 ( p_count => x_msg_count,
7928 p_data => x_msg_data
7929 );
7930 -- BUG 6739544 START
7931 WHEN ORG_ID_EXCEPTION THEN
7932 x_return_status := FND_API.G_RET_STS_ERROR ;
7933 FND_MSG_PUB.Count_And_Get
7934 ( p_count => x_msg_count,
7935 p_data => x_msg_data
7936 );
7937 -- BUG 6739544 END.
7938 WHEN OTHERS THEN
7939 ROLLBACK TO Create_Vendor_Site_PUB;
7940 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
7941 IF FND_MSG_PUB.Check_Msg_Level
7942 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
7943 FND_MSG_PUB.Add_Exc_Msg
7944 ( G_PKG_NAME ,
7945 l_api_name
7946 );
7947 END IF;
7948 FND_MSG_PUB.Count_And_Get
7949 ( p_count => x_msg_count,
7950 p_data => x_msg_data
7951 );
7952 END Create_Vendor_Site;
7953
7954 PROCEDURE Update_Vendor_Site
7955 ( p_api_version IN NUMBER,
7956 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
7957 p_commit IN VARCHAR2 := FND_API.G_FALSE,
7958 p_validation_level IN NUMBER :=
7959 FND_API.G_VALID_LEVEL_FULL,
7960 x_return_status OUT NOCOPY VARCHAR2 ,
7961 x_msg_count OUT NOCOPY NUMBER,
7962 x_msg_data OUT NOCOPY VARCHAR2,
7963 p_vendor_site_rec IN r_vendor_site_rec_type,
7964 p_vendor_site_id IN NUMBER,
7965 p_calling_prog IN VARCHAR2 DEFAULT 'NOT ISETUP'
7966 )
7967 IS
7968 l_api_name CONSTANT VARCHAR2(30) := 'Update_Vendor_Site';
7969 l_api_version CONSTANT NUMBER := 1.0;
7970
7971 l_def_org_id NUMBER;
7972
7973 l_user_id number := FND_GLOBAL.USER_ID;
7974 l_last_update_login number := FND_GLOBAL.LOGIN_ID;
7975 l_program_application_id number := FND_GLOBAL.prog_appl_id;
7976 l_program_id number := FND_GLOBAL.conc_program_id;
7977 l_request_id number := FND_GLOBAL.conc_request_id;
7978 l_vendor_site_rec r_vendor_site_rec_type;
7979 l_org_context VARCHAR2(1);
7980 l_val_return_status VARCHAR2(50);
7981 l_val_msg_count NUMBER;
7982 l_val_msg_data VARCHAR2(1000);
7983 l_org_id NUMBER;
7984 l_party_site_valid VARCHAR2(1);
7985 l_location_valid VARCHAR2(1);
7986 l_payee_valid VARCHAR2(1);
7987
7988 l_sync_return_status VARCHAR2(50);
7989 l_sync_msg_count NUMBER;
7990 l_sync_msg_data VARCHAR2(1000);
7991
7992
7993
7994 BEGIN
7995 -- Standard Start of API savepoint
7996 SAVEPOINT Update_Vendor_Site_PUB;
7997
7998 -- Standard call to check for call compatibility.
7999 IF NOT FND_API.Compatible_API_Call ( l_api_version ,
8000 p_api_version ,
8001 l_api_name ,
8002 G_PKG_NAME )
8003 THEN
8004 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8005 END IF;
8006
8007 -- Initialize message list if p_init_msg_list is set to TRUE.
8008 IF FND_API.to_Boolean( p_init_msg_list ) THEN
8009 FND_MSG_PUB.initialize;
8010 END IF;
8011
8012 -- Initialize API return status to success
8013 x_return_status := FND_API.G_RET_STS_SUCCESS;
8014 l_val_return_status := FND_API.G_RET_STS_SUCCESS;
8015
8016 -- API body
8017
8018 -- Bug 5055120
8019 -- This call is incorrect. The correct call is to have the calling
8020 -- modules set the context and call this API with the right ORG_ID.
8021
8022 -- Bug 6812010 :Due to 5055120, Payables' own supplier site import program fails
8023 -- because MO initialization is not happening.To fix 6812010 and keep 5055120 intact,
8024 -- strategy is that if calling application id is not AP then we will not call MO_GLOBAL.INIT
8025 -- since it is calling module's responsibility to perform MO initialization.
8026
8027 -- Bug 6930102
8028 If (l_program_application_id = 200 OR l_program_application_id = -1)then
8029 MO_GLOBAL.INIT ('SQLAP');
8030 end if;
8031
8032 --get org_id from existing record
8033 SELECT org_id
8034 INTO l_org_id
8035 FROM po_vendor_sites_all pvs
8036 WHERE pvs.vendor_site_id = p_vendor_site_id;
8037
8038 l_org_context := mo_global.get_access_mode;
8039
8040 IF nvl(l_org_context, 'K') <> 'S' THEN
8041 MO_GLOBAL.set_policy_context('S',l_org_id);
8042 END IF;
8043
8044 l_vendor_site_rec := p_vendor_site_rec;
8045
8046 --added ap_null_num condition by abhsaxen on 06-May-2008 for bug 7008314
8047 IF (l_vendor_site_rec.org_id IS NULL OR l_vendor_site_rec.org_id = ap_null_num) THEN
8048 l_vendor_site_rec.org_id := l_org_id;
8049 END IF;
8050
8051 validate_vendor_site(p_api_version => 1.0,
8052 p_init_msg_list => FND_API.G_FALSE,
8053 p_commit => FND_API.G_FALSE,
8054 x_return_status => l_val_return_status,
8055 x_msg_count => l_val_msg_count,
8056 x_msg_data => l_val_msg_data,
8057 p_vendor_site_rec => l_vendor_site_rec,
8058 P_mode => 'U',
8059 P_calling_prog => p_calling_prog,
8060 x_party_site_valid => l_party_site_valid,
8061 x_location_valid => l_location_valid,
8062 x_payee_valid => l_payee_valid,
8063 p_vendor_site_id => p_vendor_site_id);
8064
8065 IF (l_val_return_status = FND_API.G_RET_STS_SUCCESS) THEN
8066 --populate existing values
8067 SELECT
8068 decode(l_vendor_site_rec.AREA_CODE,
8069 ap_null_char,NULL,
8070 nvl(l_vendor_site_rec.AREA_CODE, AREA_CODE))
8071 ,decode(l_vendor_site_rec.PHONE,
8072 ap_null_char,NULL,
8073 nvl(l_vendor_site_rec.PHONE, PHONE))
8074 ,decode(l_vendor_site_rec.CUSTOMER_NUM,
8075 ap_null_char,NULL,
8076 nvl(l_vendor_site_rec.CUSTOMER_NUM, CUSTOMER_NUM))
8077 ,decode(l_vendor_site_rec.SHIP_TO_LOCATION_ID,
8078 ap_null_num,NULL,
8079 nvl(l_vendor_site_rec.SHIP_TO_LOCATION_ID, SHIP_TO_LOCATION_ID))
8080 ,decode(l_vendor_site_rec.BILL_TO_LOCATION_ID,
8081 ap_null_num,NULL,
8082 nvl(l_vendor_site_rec.BILL_TO_LOCATION_ID, BILL_TO_LOCATION_ID))
8083 ,decode(l_vendor_site_rec.SHIP_VIA_LOOKUP_CODE,
8084 ap_null_char,NULL,
8085 nvl(l_vendor_site_rec.SHIP_VIA_LOOKUP_CODE, SHIP_VIA_LOOKUP_CODE))
8086 ,decode(l_vendor_site_rec.FREIGHT_TERMS_LOOKUP_CODE,
8087 ap_null_char,NULL,
8088 nvl(l_vendor_site_rec.FREIGHT_TERMS_LOOKUP_CODE,
8089 FREIGHT_TERMS_LOOKUP_CODE))
8090 ,decode(l_vendor_site_rec.FOB_LOOKUP_CODE,
8091 ap_null_char,NULL,
8092 nvl(l_vendor_site_rec.FOB_LOOKUP_CODE,
8093 FOB_LOOKUP_CODE))
8094 ,decode(l_vendor_site_rec.INACTIVE_DATE,
8095 ap_null_date,NULL,
8096 nvl(l_vendor_site_rec.INACTIVE_DATE,
8097 INACTIVE_DATE))
8098 ,decode(l_vendor_site_rec.FAX,
8099 ap_null_char,NULL,
8100 nvl(l_vendor_site_rec.FAX, FAX))
8101 ,decode(l_vendor_site_rec.FAX_AREA_CODE,
8102 ap_null_char,NULL,
8103 nvl(l_vendor_site_rec.FAX_AREA_CODE,
8104 FAX_AREA_CODE))
8105 ,decode(l_vendor_site_rec.TELEX,
8106 ap_null_char,NULL,
8107 nvl(l_vendor_site_rec.TELEX, TELEX))
8108 ,decode(l_vendor_site_rec.TERMS_DATE_BASIS,
8109 ap_null_char,NULL,
8110 nvl(l_vendor_site_rec.TERMS_DATE_BASIS,
8111 TERMS_DATE_BASIS))
8112 ,decode(l_vendor_site_rec.DISTRIBUTION_SET_ID,
8113 ap_null_num,NULL,
8114 nvl(l_vendor_site_rec.DISTRIBUTION_SET_ID, DISTRIBUTION_SET_ID))
8115 ,decode(l_vendor_site_rec.ACCTS_PAY_CODE_COMBINATION_ID,
8116 ap_null_num,NULL,
8117 nvl(l_vendor_site_rec.ACCTS_PAY_CODE_COMBINATION_ID,
8118 ACCTS_PAY_CODE_COMBINATION_ID))
8119 ,decode(l_vendor_site_rec.PREPAY_CODE_COMBINATION_ID,
8120 ap_null_num,NULL,
8121 nvl(l_vendor_site_rec.PREPAY_CODE_COMBINATION_ID,
8122 PREPAY_CODE_COMBINATION_ID))
8123 ,decode(l_vendor_site_rec.PAY_GROUP_LOOKUP_CODE,
8124 ap_null_char,NULL,
8125 nvl(l_vendor_site_rec.PAY_GROUP_LOOKUP_CODE, PAY_GROUP_LOOKUP_CODE))
8126 ,decode(l_vendor_site_rec.PAYMENT_PRIORITY,
8127 ap_null_num,NULL,
8128 nvl(l_vendor_site_rec.PAYMENT_PRIORITY, PAYMENT_PRIORITY))
8129 ,decode(l_vendor_site_rec.TERMS_ID,
8130 ap_null_num,NULL,
8131 nvl(l_vendor_site_rec.TERMS_ID, TERMS_ID))
8132 ,decode(l_vendor_site_rec.INVOICE_AMOUNT_LIMIT,
8133 ap_null_num,NULL,
8134 nvl(l_vendor_site_rec.INVOICE_AMOUNT_LIMIT, INVOICE_AMOUNT_LIMIT))
8135 ,decode(l_vendor_site_rec.PAY_DATE_BASIS_LOOKUP_CODE,
8136 ap_null_char,NULL,
8137 nvl(l_vendor_site_rec.PAY_DATE_BASIS_LOOKUP_CODE, PAY_DATE_BASIS_LOOKUP_CODE))
8138 ,decode(l_vendor_site_rec.ALWAYS_TAKE_DISC_FLAG,
8139 ap_null_char,NULL,
8140 nvl(l_vendor_site_rec.ALWAYS_TAKE_DISC_FLAG, ALWAYS_TAKE_DISC_FLAG))
8141 ,decode(l_vendor_site_rec.INVOICE_CURRENCY_CODE,
8142 ap_null_char,NULL,
8143 nvl(l_vendor_site_rec.INVOICE_CURRENCY_CODE, INVOICE_CURRENCY_CODE))
8144 ,decode(l_vendor_site_rec.PAYMENT_CURRENCY_CODE,
8145 ap_null_char,NULL,
8146 nvl(l_vendor_site_rec.PAYMENT_CURRENCY_CODE, PAYMENT_CURRENCY_CODE))
8147 ,decode(l_vendor_site_rec.VENDOR_SITE_ID,
8148 ap_null_num,NULL,
8149 nvl(l_vendor_site_rec.VENDOR_SITE_ID, VENDOR_SITE_ID))
8150 ,decode(l_vendor_site_rec.VENDOR_ID,
8151 ap_null_num,NULL,
8152 nvl(l_vendor_site_rec.VENDOR_ID, VENDOR_ID))
8153 ,decode(l_vendor_site_rec.VENDOR_SITE_CODE,
8154 ap_null_char,NULL,
8155 nvl(l_vendor_site_rec.VENDOR_SITE_CODE, VENDOR_SITE_CODE))
8156 ,decode(l_vendor_site_rec.VENDOR_SITE_CODE_ALT,
8157 ap_null_char,NULL,
8158 nvl(l_vendor_site_rec.VENDOR_SITE_CODE_ALT, VENDOR_SITE_CODE_ALT))
8159 ,decode(l_vendor_site_rec.PURCHASING_SITE_FLAG,
8160 ap_null_char,NULL,
8161 nvl(l_vendor_site_rec.PURCHASING_SITE_FLAG, PURCHASING_SITE_FLAG))
8162 ,decode(l_vendor_site_rec.RFQ_ONLY_SITE_FLAG,
8163 ap_null_char,NULL,
8164 nvl(l_vendor_site_rec.RFQ_ONLY_SITE_FLAG, RFQ_ONLY_SITE_FLAG))
8165 ,decode(l_vendor_site_rec.PAY_SITE_FLAG,
8166 ap_null_char,NULL,
8167 nvl(l_vendor_site_rec.PAY_SITE_FLAG, PAY_SITE_FLAG))
8168 ,decode(l_vendor_site_rec.ATTENTION_AR_FLAG,
8169 ap_null_char,NULL,
8170 nvl(l_vendor_site_rec.ATTENTION_AR_FLAG, ATTENTION_AR_FLAG))
8171 ,decode(l_vendor_site_rec.HOLD_ALL_PAYMENTS_FLAG,
8172 ap_null_char,NULL,
8173 nvl(l_vendor_site_rec.HOLD_ALL_PAYMENTS_FLAG, HOLD_ALL_PAYMENTS_FLAG))
8174 ,decode(l_vendor_site_rec.HOLD_FUTURE_PAYMENTS_FLAG,
8175 ap_null_char,NULL,
8176 nvl(l_vendor_site_rec.HOLD_FUTURE_PAYMENTS_FLAG, HOLD_FUTURE_PAYMENTS_FLAG))
8177 ,decode(l_vendor_site_rec.HOLD_REASON,
8178 ap_null_char,NULL,
8179 nvl(l_vendor_site_rec.HOLD_REASON, HOLD_REASON))
8180 ,decode(l_vendor_site_rec.HOLD_UNMATCHED_INVOICES_FLAG,
8181 ap_null_char,NULL,
8182 nvl(l_vendor_site_rec.HOLD_UNMATCHED_INVOICES_FLAG, HOLD_UNMATCHED_INVOICES_FLAG))
8183 ,decode(l_vendor_site_rec.TAX_REPORTING_SITE_FLAG,
8184 ap_null_char,NULL,
8185 nvl(l_vendor_site_rec.TAX_REPORTING_SITE_FLAG, TAX_REPORTING_SITE_FLAG))
8186 ,decode(l_vendor_site_rec.ATTRIBUTE_CATEGORY,
8187 ap_null_char,NULL,
8188 nvl(l_vendor_site_rec.ATTRIBUTE_CATEGORY, ATTRIBUTE_CATEGORY))
8189 ,decode(l_vendor_site_rec.ATTRIBUTE1,
8190 ap_null_char,NULL,
8191 nvl(l_vendor_site_rec.ATTRIBUTE1, ATTRIBUTE1))
8192 ,decode(l_vendor_site_rec.ATTRIBUTE2,
8193 ap_null_char,NULL,
8194 nvl(l_vendor_site_rec.ATTRIBUTE2, ATTRIBUTE2))
8195 ,decode(l_vendor_site_rec.ATTRIBUTE3,
8196 ap_null_char,NULL,
8197 nvl(l_vendor_site_rec.ATTRIBUTE3, ATTRIBUTE3))
8198 ,decode(l_vendor_site_rec.ATTRIBUTE4,
8199 ap_null_char,NULL,
8200 nvl(l_vendor_site_rec.ATTRIBUTE4, ATTRIBUTE4))
8201 ,decode(l_vendor_site_rec.ATTRIBUTE5,
8202 ap_null_char,NULL,
8203 nvl(l_vendor_site_rec.ATTRIBUTE5, ATTRIBUTE5))
8204 ,decode(l_vendor_site_rec.ATTRIBUTE6,
8205 ap_null_char,NULL,
8206 nvl(l_vendor_site_rec.ATTRIBUTE6, ATTRIBUTE6))
8207 ,decode(l_vendor_site_rec.ATTRIBUTE7,
8208 ap_null_char,NULL,
8209 nvl(l_vendor_site_rec.ATTRIBUTE7, ATTRIBUTE7))
8210 ,decode(l_vendor_site_rec.ATTRIBUTE8,
8211 ap_null_char,NULL,
8212 nvl(l_vendor_site_rec.ATTRIBUTE8, ATTRIBUTE8))
8213 ,decode(l_vendor_site_rec.ATTRIBUTE9,
8214 ap_null_char,NULL,
8215 nvl(l_vendor_site_rec.ATTRIBUTE9, ATTRIBUTE9))
8216 ,decode(l_vendor_site_rec.ATTRIBUTE10,
8217 ap_null_char,NULL,
8218 nvl(l_vendor_site_rec.ATTRIBUTE10, ATTRIBUTE10))
8219 ,decode(l_vendor_site_rec.ATTRIBUTE11,
8220 ap_null_char,NULL,
8221 nvl(l_vendor_site_rec.ATTRIBUTE11, ATTRIBUTE11))
8222 ,decode(l_vendor_site_rec.ATTRIBUTE12,
8223 ap_null_char,NULL,
8224 nvl(l_vendor_site_rec.ATTRIBUTE12, ATTRIBUTE12))
8225 ,decode(l_vendor_site_rec.ATTRIBUTE13,
8226 ap_null_char,NULL,
8227 nvl(l_vendor_site_rec.ATTRIBUTE13, ATTRIBUTE13))
8228 ,decode(l_vendor_site_rec.ATTRIBUTE14,
8229 ap_null_char,NULL,
8230 nvl(l_vendor_site_rec.ATTRIBUTE14, ATTRIBUTE14))
8231 ,decode(l_vendor_site_rec.ATTRIBUTE15,
8232 ap_null_char,NULL,
8233 nvl(l_vendor_site_rec.ATTRIBUTE15, ATTRIBUTE15))
8234 ,decode(l_vendor_site_rec.VALIDATION_NUMBER,
8235 ap_null_char,NULL,
8236 nvl(l_vendor_site_rec.VALIDATION_NUMBER, VALIDATION_NUMBER))
8237 ,decode(l_vendor_site_rec.EXCLUDE_FREIGHT_FROM_DISCOUNT,
8238 ap_null_char,NULL,
8239 nvl(l_vendor_site_rec.EXCLUDE_FREIGHT_FROM_DISCOUNT,
8240 EXCLUDE_FREIGHT_FROM_DISCOUNT))
8241 ,decode(l_vendor_site_rec.BANK_CHARGE_BEARER,
8242 ap_null_char,NULL,
8243 nvl(l_vendor_site_rec.BANK_CHARGE_BEARER, BANK_CHARGE_BEARER))
8244 ,decode(l_vendor_site_rec.ORG_ID,
8245 ap_null_num,NULL,
8246 nvl(l_vendor_site_rec.ORG_ID, ORG_ID))
8247 ,decode(l_vendor_site_rec.CHECK_DIGITS,
8248 ap_null_char,NULL,
8249 nvl(l_vendor_site_rec.CHECK_DIGITS, CHECK_DIGITS))
8250 ,decode(l_vendor_site_rec.ALLOW_AWT_FLAG,
8251 ap_null_char,NULL,
8252 nvl(l_vendor_site_rec.ALLOW_AWT_FLAG, ALLOW_AWT_FLAG))
8253 ,decode(l_vendor_site_rec.AWT_GROUP_ID,
8254 ap_null_num,NULL,
8255 nvl(l_vendor_site_rec.AWT_GROUP_ID, AWT_GROUP_ID))
8256 ,decode(l_vendor_site_rec.DEFAULT_PAY_SITE_ID,
8257 ap_null_num,NULL,
8258 nvl(l_vendor_site_rec.DEFAULT_PAY_SITE_ID, DEFAULT_PAY_SITE_ID))
8259 ,decode(l_vendor_site_rec.PAY_ON_CODE,
8260 ap_null_char,NULL,
8261 nvl(l_vendor_site_rec.PAY_ON_CODE, PAY_ON_CODE))
8262 ,decode(l_vendor_site_rec.PAY_ON_RECEIPT_SUMMARY_CODE,
8263 ap_null_char,NULL,
8264 nvl(l_vendor_site_rec.PAY_ON_RECEIPT_SUMMARY_CODE, PAY_ON_RECEIPT_SUMMARY_CODE))
8265 ,decode(l_vendor_site_rec.GLOBAL_ATTRIBUTE_CATEGORY,
8266 ap_null_char,NULL,
8267 nvl(l_vendor_site_rec.GLOBAL_ATTRIBUTE_CATEGORY, GLOBAL_ATTRIBUTE_CATEGORY))
8268 ,decode(l_vendor_site_rec.GLOBAL_ATTRIBUTE1,
8269 ap_null_char,NULL,
8270 nvl(l_vendor_site_rec.GLOBAL_ATTRIBUTE1, GLOBAL_ATTRIBUTE1))
8271 ,decode(l_vendor_site_rec.GLOBAL_ATTRIBUTE2,
8272 ap_null_char,NULL,
8273 nvl(l_vendor_site_rec.GLOBAL_ATTRIBUTE2, GLOBAL_ATTRIBUTE2))
8274 ,decode(l_vendor_site_rec.GLOBAL_ATTRIBUTE3,
8275 ap_null_char,NULL,
8276 nvl(l_vendor_site_rec.GLOBAL_ATTRIBUTE3, GLOBAL_ATTRIBUTE3))
8277 ,decode(l_vendor_site_rec.GLOBAL_ATTRIBUTE4,
8278 ap_null_char,NULL,
8279 nvl(l_vendor_site_rec.GLOBAL_ATTRIBUTE4, GLOBAL_ATTRIBUTE4))
8280 ,decode(l_vendor_site_rec.GLOBAL_ATTRIBUTE5,
8281 ap_null_char,NULL,
8282 nvl(l_vendor_site_rec.GLOBAL_ATTRIBUTE5, GLOBAL_ATTRIBUTE5))
8283 ,decode(l_vendor_site_rec.GLOBAL_ATTRIBUTE6,
8284 ap_null_char,NULL,
8285 nvl(l_vendor_site_rec.GLOBAL_ATTRIBUTE6, GLOBAL_ATTRIBUTE6))
8286 ,decode(l_vendor_site_rec.GLOBAL_ATTRIBUTE7,
8287 ap_null_char,NULL,
8288 nvl(l_vendor_site_rec.GLOBAL_ATTRIBUTE7, GLOBAL_ATTRIBUTE7))
8289 ,decode(l_vendor_site_rec.GLOBAL_ATTRIBUTE8,
8290 ap_null_char,NULL,
8291 nvl(l_vendor_site_rec.GLOBAL_ATTRIBUTE8, GLOBAL_ATTRIBUTE8))
8292 ,decode(l_vendor_site_rec.GLOBAL_ATTRIBUTE9,
8293 ap_null_char,NULL,
8294 nvl(l_vendor_site_rec.GLOBAL_ATTRIBUTE9, GLOBAL_ATTRIBUTE9))
8295 ,decode(l_vendor_site_rec.GLOBAL_ATTRIBUTE10,
8296 ap_null_char,NULL,
8297 nvl(l_vendor_site_rec.GLOBAL_ATTRIBUTE10, GLOBAL_ATTRIBUTE10))
8298 ,decode(l_vendor_site_rec.GLOBAL_ATTRIBUTE11,
8299 ap_null_char,NULL,
8300 nvl(l_vendor_site_rec.GLOBAL_ATTRIBUTE11, GLOBAL_ATTRIBUTE11))
8301 ,decode(l_vendor_site_rec.GLOBAL_ATTRIBUTE12,
8302 ap_null_char,NULL,
8303 nvl(l_vendor_site_rec.GLOBAL_ATTRIBUTE12, GLOBAL_ATTRIBUTE12))
8304 ,decode(l_vendor_site_rec.GLOBAL_ATTRIBUTE13,
8305 ap_null_char,NULL,
8306 nvl(l_vendor_site_rec.GLOBAL_ATTRIBUTE13, GLOBAL_ATTRIBUTE13))
8307 ,decode(l_vendor_site_rec.GLOBAL_ATTRIBUTE14,
8308 ap_null_char,NULL,
8309 nvl(l_vendor_site_rec.GLOBAL_ATTRIBUTE14, GLOBAL_ATTRIBUTE14))
8310 ,decode(l_vendor_site_rec.GLOBAL_ATTRIBUTE15,
8311 ap_null_char,NULL,
8312 nvl(l_vendor_site_rec.GLOBAL_ATTRIBUTE15, GLOBAL_ATTRIBUTE15))
8313 ,decode(l_vendor_site_rec.GLOBAL_ATTRIBUTE16,
8314 ap_null_char,NULL,
8315 nvl(l_vendor_site_rec.GLOBAL_ATTRIBUTE16, GLOBAL_ATTRIBUTE16))
8316 ,decode(l_vendor_site_rec.GLOBAL_ATTRIBUTE17,
8317 ap_null_char,NULL,
8318 nvl(l_vendor_site_rec.GLOBAL_ATTRIBUTE17, GLOBAL_ATTRIBUTE17))
8319 ,decode(l_vendor_site_rec.GLOBAL_ATTRIBUTE18,
8320 ap_null_char,NULL,
8321 nvl(l_vendor_site_rec.GLOBAL_ATTRIBUTE18, GLOBAL_ATTRIBUTE18))
8322 ,decode(l_vendor_site_rec.GLOBAL_ATTRIBUTE19,
8323 ap_null_char,NULL,
8324 nvl(l_vendor_site_rec.GLOBAL_ATTRIBUTE19, GLOBAL_ATTRIBUTE19))
8325 ,decode(l_vendor_site_rec.GLOBAL_ATTRIBUTE20,
8326 ap_null_char,NULL,
8327 nvl(l_vendor_site_rec.GLOBAL_ATTRIBUTE20, GLOBAL_ATTRIBUTE20))
8328 ,decode(l_vendor_site_rec.TP_HEADER_ID,
8329 ap_null_num,NULL,
8330 nvl(l_vendor_site_rec.TP_HEADER_ID, TP_HEADER_ID))
8331 ,decode(l_vendor_site_rec.ECE_TP_LOCATION_CODE,
8332 ap_null_char,NULL,
8333 nvl(l_vendor_site_rec.ECE_TP_LOCATION_CODE, ECE_TP_LOCATION_CODE))
8334 ,decode(l_vendor_site_rec.PCARD_SITE_FLAG,
8335 ap_null_char,NULL,
8336 nvl(l_vendor_site_rec.PCARD_SITE_FLAG, PCARD_SITE_FLAG))
8337 ,decode(l_vendor_site_rec.MATCH_OPTION,
8338 ap_null_char,NULL,
8339 nvl(l_vendor_site_rec.MATCH_OPTION, MATCH_OPTION))
8340 ,decode(l_vendor_site_rec.COUNTRY_OF_ORIGIN_CODE,
8341 ap_null_char,NULL,
8342 nvl(l_vendor_site_rec.COUNTRY_OF_ORIGIN_CODE, COUNTRY_OF_ORIGIN_CODE))
8343 ,decode(l_vendor_site_rec.FUTURE_DATED_PAYMENT_CCID,
8344 ap_null_num,NULL,
8345 nvl(l_vendor_site_rec.FUTURE_DATED_PAYMENT_CCID, FUTURE_DATED_PAYMENT_CCID))
8346 ,decode(l_vendor_site_rec.CREATE_DEBIT_MEMO_FLAG,
8347 ap_null_char,NULL,
8348 nvl(l_vendor_site_rec.CREATE_DEBIT_MEMO_FLAG, CREATE_DEBIT_MEMO_FLAG))
8349 ,decode(l_vendor_site_rec.SUPPLIER_NOTIF_METHOD,
8350 ap_null_char,NULL,
8351 nvl(l_vendor_site_rec.SUPPLIER_NOTIF_METHOD, SUPPLIER_NOTIF_METHOD))
8352 ,decode(l_vendor_site_rec.EMAIL_ADDRESS,
8353 ap_null_char,NULL,
8354 nvl(l_vendor_site_rec.EMAIL_ADDRESS, EMAIL_ADDRESS))
8355 ,decode(l_vendor_site_rec.PRIMARY_PAY_SITE_FLAG,
8356 ap_null_char,NULL,
8357 nvl(l_vendor_site_rec.PRIMARY_PAY_SITE_FLAG, PRIMARY_PAY_SITE_FLAG))
8358 ,decode(l_vendor_site_rec.SHIPPING_CONTROL,
8359 ap_null_char,NULL,
8360 nvl(l_vendor_site_rec.SHIPPING_CONTROL, SHIPPING_CONTROL))
8361 ,decode(l_vendor_site_rec.SELLING_COMPANY_IDENTIFIER,
8362 ap_null_char,NULL,
8363 nvl(l_vendor_site_rec.SELLING_COMPANY_IDENTIFIER, SELLING_COMPANY_IDENTIFIER))
8364 ,decode(l_vendor_site_rec.GAPLESS_INV_NUM_FLAG,
8365 ap_null_char,NULL,
8366 nvl(l_vendor_site_rec.GAPLESS_INV_NUM_FLAG, GAPLESS_INV_NUM_FLAG))
8367 ,decode(l_vendor_site_rec.LOCATION_ID,
8368 ap_null_num,NULL,
8369 nvl(l_vendor_site_rec.LOCATION_ID, LOCATION_ID))
8370 ,decode(l_vendor_site_rec.PARTY_SITE_ID,
8371 ap_null_num,NULL,
8372 nvl(l_vendor_site_rec.PARTY_SITE_ID, PARTY_SITE_ID))
8373 ,decode(l_vendor_site_rec.TOLERANCE_ID,
8374 ap_null_num,NULL,
8375 nvl(l_vendor_site_rec.TOLERANCE_ID, TOLERANCE_ID))
8376 ,decode(l_vendor_site_rec.services_tolerance_id,
8377 ap_null_num,NULL,
8378 nvl(l_vendor_site_rec.services_tolerance_id,services_tolerance_id))
8379 ,decode(l_vendor_site_rec.retainage_rate,
8380 ap_null_num,NULL,
8381 nvl(l_vendor_site_rec.retainage_rate,retainage_rate))
8382 --bug6388041
8383 ,decode(l_vendor_site_rec.duns_number,
8384 ap_null_char, NULL,
8385 nvl(l_vendor_site_rec.duns_number,duns_number))
8386 -- bug 7437549
8387 ,decode(l_vendor_site_rec.EDI_ID_NUMBER,
8388 ap_null_char,NULL,
8389 nvl(l_vendor_site_rec.EDI_ID_NUMBER, EDI_ID_NUMBER))
8390 --bug7561758
8391 ,decode(l_vendor_site_rec.PAY_AWT_GROUP_ID,
8392 ap_null_num,NULL,
8393 nvl(l_vendor_site_rec.PAY_AWT_GROUP_ID, PAY_AWT_GROUP_ID))
8394 -- bug 7673494 start
8395 ,decode(l_vendor_site_rec.address_line1,
8396 ap_null_char, NULL,
8397 nvl(l_vendor_site_rec.address_line1, address_line1))
8398 ,decode(l_vendor_site_rec.address_lines_alt,
8399 ap_null_char, NULL,
8400 nvl(l_vendor_site_rec.address_lines_alt, address_lines_alt))
8401 ,decode(l_vendor_site_rec.address_line2,
8402 ap_null_char, NULL,
8403 nvl(l_vendor_site_rec.address_line2, address_line2))
8404 ,decode(l_vendor_site_rec.address_line3,
8405 ap_null_char, NULL,
8406 nvl(l_vendor_site_rec.address_line3, address_line3))
8407 ,decode(l_vendor_site_rec.city,
8408 ap_null_char, NULL,
8409 nvl(l_vendor_site_rec.city, city))
8410 ,decode(l_vendor_site_rec.state,
8411 ap_null_char, NULL,
8412 nvl(l_vendor_site_rec.state, state))
8413 ,decode(l_vendor_site_rec.zip,
8414 ap_null_char, NULL,
8415 nvl(l_vendor_site_rec.zip, zip))
8416 ,decode(l_vendor_site_rec.province,
8417 ap_null_char, NULL,
8418 nvl(l_vendor_site_rec.province, province))
8419 ,decode(l_vendor_site_rec.country,
8420 ap_null_char, NULL,
8421 nvl(l_vendor_site_rec.country, country))
8422 ,decode(l_vendor_site_rec.address_line4,
8423 ap_null_char, NULL,
8424 nvl(l_vendor_site_rec.address_line4, address_line4))
8425 ,decode(l_vendor_site_rec.county,
8426 ap_null_char, NULL,
8427 nvl(l_vendor_site_rec.county, county))
8428 ,decode(l_vendor_site_rec.address_style,
8429 ap_null_char, NULL,
8430 nvl(l_vendor_site_rec.address_style, address_style))
8431 ,decode(l_vendor_site_rec.language,
8432 ap_null_char, NULL,
8433 nvl(l_vendor_site_rec.language, language))
8434 -- bug 7673494 end
8435 INTO
8436 l_vendor_site_rec.AREA_CODE
8437 ,l_vendor_site_rec.PHONE
8438 ,l_vendor_site_rec.CUSTOMER_NUM
8439 ,l_vendor_site_rec.SHIP_TO_LOCATION_ID
8440 ,l_vendor_site_rec.BILL_TO_LOCATION_ID
8441 ,l_vendor_site_rec.SHIP_VIA_LOOKUP_CODE
8442 ,l_vendor_site_rec.FREIGHT_TERMS_LOOKUP_CODE
8443 ,l_vendor_site_rec.FOB_LOOKUP_CODE
8444 ,l_vendor_site_rec.INACTIVE_DATE
8445 ,l_vendor_site_rec.FAX
8446 ,l_vendor_site_rec.FAX_AREA_CODE
8447 ,l_vendor_site_rec.TELEX
8448 ,l_vendor_site_rec.TERMS_DATE_BASIS
8449 ,l_vendor_site_rec.DISTRIBUTION_SET_ID
8450 ,l_vendor_site_rec.ACCTS_PAY_CODE_COMBINATION_ID
8451 ,l_vendor_site_rec.PREPAY_CODE_COMBINATION_ID
8452 ,l_vendor_site_rec.PAY_GROUP_LOOKUP_CODE
8453 ,l_vendor_site_rec.PAYMENT_PRIORITY
8454 ,l_vendor_site_rec.TERMS_ID
8455 ,l_vendor_site_rec.INVOICE_AMOUNT_LIMIT
8456 ,l_vendor_site_rec.PAY_DATE_BASIS_LOOKUP_CODE
8457 ,l_vendor_site_rec.ALWAYS_TAKE_DISC_FLAG
8458 ,l_vendor_site_rec.INVOICE_CURRENCY_CODE
8459 ,l_vendor_site_rec.PAYMENT_CURRENCY_CODE
8460 ,l_vendor_site_rec.VENDOR_SITE_ID
8461 ,l_vendor_site_rec.VENDOR_ID
8462 ,l_vendor_site_rec.VENDOR_SITE_CODE
8463 ,l_vendor_site_rec.VENDOR_SITE_CODE_ALT
8464 ,l_vendor_site_rec.PURCHASING_SITE_FLAG
8465 ,l_vendor_site_rec.RFQ_ONLY_SITE_FLAG
8466 ,l_vendor_site_rec.PAY_SITE_FLAG
8467 ,l_vendor_site_rec.ATTENTION_AR_FLAG
8468 ,l_vendor_site_rec.HOLD_ALL_PAYMENTS_FLAG
8469 ,l_vendor_site_rec.HOLD_FUTURE_PAYMENTS_FLAG
8470 ,l_vendor_site_rec.HOLD_REASON
8471 ,l_vendor_site_rec.HOLD_UNMATCHED_INVOICES_FLAG
8472 ,l_vendor_site_rec.TAX_REPORTING_SITE_FLAG
8473 ,l_vendor_site_rec.ATTRIBUTE_CATEGORY
8474 ,l_vendor_site_rec.ATTRIBUTE1
8475 ,l_vendor_site_rec.ATTRIBUTE2
8476 ,l_vendor_site_rec.ATTRIBUTE3
8477 ,l_vendor_site_rec.ATTRIBUTE4
8478 ,l_vendor_site_rec.ATTRIBUTE5
8479 ,l_vendor_site_rec.ATTRIBUTE6
8480 ,l_vendor_site_rec.ATTRIBUTE7
8481 ,l_vendor_site_rec.ATTRIBUTE8
8482 ,l_vendor_site_rec.ATTRIBUTE9
8483 ,l_vendor_site_rec.ATTRIBUTE10
8484 ,l_vendor_site_rec.ATTRIBUTE11
8485 ,l_vendor_site_rec.ATTRIBUTE12
8486 ,l_vendor_site_rec.ATTRIBUTE13
8487 ,l_vendor_site_rec.ATTRIBUTE14
8488 ,l_vendor_site_rec.ATTRIBUTE15
8489 ,l_vendor_site_rec.VALIDATION_NUMBER
8490 ,l_vendor_site_rec.EXCLUDE_FREIGHT_FROM_DISCOUNT
8491 ,l_vendor_site_rec.BANK_CHARGE_BEARER
8492 ,l_vendor_site_rec.ORG_ID
8493 ,l_vendor_site_rec.CHECK_DIGITS
8494 ,l_vendor_site_rec.ALLOW_AWT_FLAG
8495 ,l_vendor_site_rec.AWT_GROUP_ID
8496 ,l_vendor_site_rec.DEFAULT_PAY_SITE_ID
8497 ,l_vendor_site_rec.PAY_ON_CODE
8498 ,l_vendor_site_rec.PAY_ON_RECEIPT_SUMMARY_CODE
8499 ,l_vendor_site_rec.GLOBAL_ATTRIBUTE_CATEGORY
8500 ,l_vendor_site_rec.GLOBAL_ATTRIBUTE1
8501 ,l_vendor_site_rec.GLOBAL_ATTRIBUTE2
8502 ,l_vendor_site_rec.GLOBAL_ATTRIBUTE3
8503 ,l_vendor_site_rec.GLOBAL_ATTRIBUTE4
8504 ,l_vendor_site_rec.GLOBAL_ATTRIBUTE5
8505 ,l_vendor_site_rec.GLOBAL_ATTRIBUTE6
8506 ,l_vendor_site_rec.GLOBAL_ATTRIBUTE7
8507 ,l_vendor_site_rec.GLOBAL_ATTRIBUTE8
8508 ,l_vendor_site_rec.GLOBAL_ATTRIBUTE9
8509 ,l_vendor_site_rec.GLOBAL_ATTRIBUTE10
8510 ,l_vendor_site_rec.GLOBAL_ATTRIBUTE11
8511 ,l_vendor_site_rec.GLOBAL_ATTRIBUTE12
8512 ,l_vendor_site_rec.GLOBAL_ATTRIBUTE13
8513 ,l_vendor_site_rec.GLOBAL_ATTRIBUTE14
8514 ,l_vendor_site_rec.GLOBAL_ATTRIBUTE15
8515 ,l_vendor_site_rec.GLOBAL_ATTRIBUTE16
8516 ,l_vendor_site_rec.GLOBAL_ATTRIBUTE17
8517 ,l_vendor_site_rec.GLOBAL_ATTRIBUTE18
8518 ,l_vendor_site_rec.GLOBAL_ATTRIBUTE19
8519 ,l_vendor_site_rec.GLOBAL_ATTRIBUTE20
8520 ,l_vendor_site_rec.TP_HEADER_ID
8521 ,l_vendor_site_rec.ECE_TP_LOCATION_CODE
8522 ,l_vendor_site_rec.PCARD_SITE_FLAG
8523 ,l_vendor_site_rec.MATCH_OPTION
8524 ,l_vendor_site_rec.COUNTRY_OF_ORIGIN_CODE
8525 ,l_vendor_site_rec.FUTURE_DATED_PAYMENT_CCID
8526 ,l_vendor_site_rec.CREATE_DEBIT_MEMO_FLAG
8527 ,l_vendor_site_rec.SUPPLIER_NOTIF_METHOD
8528 ,l_vendor_site_rec.EMAIL_ADDRESS
8529 ,l_vendor_site_rec.PRIMARY_PAY_SITE_FLAG
8530 ,l_vendor_site_rec.SHIPPING_CONTROL
8531 ,l_vendor_site_rec.SELLING_COMPANY_IDENTIFIER
8532 ,l_vendor_site_rec.GAPLESS_INV_NUM_FLAG
8533 ,l_vendor_site_rec.LOCATION_ID
8534 ,l_vendor_site_rec.PARTY_SITE_ID
8535 ,l_vendor_site_rec.TOLERANCE_ID
8536 ,l_vendor_site_rec.services_tolerance_id
8537 ,l_vendor_site_rec.retainage_rate
8538 ,l_vendor_site_rec.duns_number --bug6388041
8539 ,l_vendor_site_rec.EDI_ID_NUMBER --bug7437549
8540 ,l_vendor_site_rec.PAY_AWT_GROUP_ID --bug7561758
8541 -- bug 7673494 start
8542 ,l_vendor_site_rec.address_line1
8543 ,l_vendor_site_rec.address_lines_alt
8544 ,l_vendor_site_rec.address_line2
8545 ,l_vendor_site_rec.address_line3
8546 ,l_vendor_site_rec.city
8547 ,l_vendor_site_rec.state
8548 ,l_vendor_site_rec.zip
8549 ,l_vendor_site_rec.province
8550 ,l_vendor_site_rec.country
8551 ,l_vendor_site_rec.address_line4
8552 ,l_vendor_site_rec.county
8553 ,l_vendor_site_rec.address_style
8554 ,l_vendor_site_rec.language
8555 -- bug 7673494 end
8556 FROM po_vendor_sites_all pvs
8557 WHERE pvs.vendor_site_id = p_vendor_site_id;
8558 ap_vendor_sites_pkg.update_row(
8559 p_vendor_site_rec => l_vendor_site_rec,
8560 p_last_update_date => sysdate,
8561 p_last_updated_by => l_user_id,
8562 p_last_update_login => l_last_update_login,
8563 p_request_id => l_request_id ,
8564 p_program_application_id => l_program_application_id,
8565 p_program_id => l_program_id,
8566 p_program_update_date => sysdate,
8567 p_vendor_site_id => p_vendor_site_id);
8568
8569 AP_TCA_SUPPLIER_SYNC_PKG.SYNC_Supplier_Sites(
8570 l_sync_return_status,
8571 l_sync_msg_count,
8572 l_sync_msg_data,
8573 l_vendor_site_rec.location_id,
8574 l_vendor_site_rec.party_site_id);
8575
8576 IF l_sync_return_status = FND_API.G_RET_STS_SUCCESS THEN
8577 Raise_Supplier_Event( i_vendor_site_id => p_vendor_site_id ); -- Bug 7307669
8578 x_return_status := FND_API.G_RET_STS_SUCCESS;
8579 END IF;
8580
8581 ELSIF (l_val_return_status = FND_API.G_RET_STS_UNEXP_ERROR) OR
8582 (l_sync_return_status = FND_API.G_RET_STS_UNEXP_ERROR)THEN
8583
8584 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
8585
8586 ELSE
8587
8588 x_return_status := FND_API.G_RET_STS_ERROR;
8589 END IF;
8590
8591 --set access mode back to original value
8592 IF l_org_context <> mo_global.get_access_mode THEN
8593 MO_GLOBAL.set_policy_context(l_org_context,l_def_org_id);
8594 END IF;
8595
8596 -- End of API body.
8597
8598 -- Standard check of p_commit.
8599 IF FND_API.To_Boolean( p_commit ) THEN
8600 COMMIT WORK;
8601 END IF;
8602
8603 -- Standard call to get message count and if count is 1,
8604 -- get message info.
8605 FND_MSG_PUB.Count_And_Get(
8606 p_count => x_msg_count ,
8607 p_data => x_msg_data
8608 );
8609
8610 EXCEPTION
8611 WHEN FND_API.G_EXC_ERROR THEN
8612 ROLLBACK TO Update_Vendor_Site_PUB;
8613 x_return_status := FND_API.G_RET_STS_ERROR ;
8614 FND_MSG_PUB.Count_And_Get
8615 ( p_count => x_msg_count,
8616 p_data => x_msg_data
8617 );
8618 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
8619 ROLLBACK TO Update_Vendor_Site_PUB;
8620 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
8621 FND_MSG_PUB.Count_And_Get
8622 ( p_count => x_msg_count,
8623 p_data => x_msg_data
8624 );
8625 WHEN OTHERS THEN
8626 ROLLBACK TO Update_Vendor_Site_PUB;
8627 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
8628 IF FND_MSG_PUB.Check_Msg_Level
8629 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
8630 FND_MSG_PUB.Add_Exc_Msg
8631 ( G_PKG_NAME ,
8632 l_api_name
8633 );
8634 END IF;
8635 FND_MSG_PUB.Count_And_Get
8636 ( p_count => x_msg_count,
8637 p_data => x_msg_data
8638 );
8639 END Update_Vendor_Site;
8640
8641 PROCEDURE Validate_Vendor_Site
8642 ( p_api_version IN NUMBER,
8643 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
8644 p_commit IN VARCHAR2 := FND_API.G_FALSE,
8645 p_validation_level IN NUMBER :=
8646 FND_API.G_VALID_LEVEL_FULL,
8647 x_return_status OUT NOCOPY VARCHAR2 ,
8648 x_msg_count OUT NOCOPY NUMBER,
8649 x_msg_data OUT NOCOPY VARCHAR2,
8650 p_vendor_site_rec IN OUT NOCOPY r_vendor_site_rec_type,
8651 p_mode IN VARCHAR2,
8652 p_calling_prog IN VARCHAR2,
8653 x_party_site_valid OUT NOCOPY VARCHAR2,
8654 x_location_valid OUT NOCOPY VARCHAR2,
8655 x_payee_valid OUT NOCOPY VARCHAR2,
8656 p_vendor_site_id IN NUMBER
8657 )
8658 IS
8659 l_api_name CONSTANT VARCHAR2(30) := 'Validate_Vendor_Site';
8660 l_api_version CONSTANT NUMBER := 1.0;
8661
8662 l_def_org_id NUMBER;
8663 l_debug_info VARCHAR2(2000);
8664 x_valid BOOLEAN;
8665 l_sob NUMBER;
8666 l_location_id NUMBER;
8667 l_payee_return_status VARCHAR2(50);
8668 l_payee_msg_count NUMBER;
8669 l_payee_msg_data VARCHAR2(1000);
8670 l_tolerance_type VARCHAR2(50);
8671 l_status NUMBER;
8672 -- Bug 6645014 l_status added to import vat_code
8673 -- Bug 6918411/6808171 CTETALA
8674 -- l_dummy added for usage in validating country code
8675 l_dummy VARCHAR2(2);
8676 x_loc_count NUMBER := 0; -- Bug 7429668
8677
8678 BEGIN
8679
8680 l_tolerance_type := 'QUANTITY';
8681
8682 -- Standard Start of API savepoint
8683 SAVEPOINT Validate_Vendor_Site_PUB;
8684
8685 -- Standard call to check for call compatibility.
8686 IF NOT FND_API.Compatible_API_Call ( l_api_version ,
8687 p_api_version ,
8688 l_api_name ,
8689 G_PKG_NAME )
8690 THEN
8691 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8692 END IF;
8693
8694 -- Initialize message list if p_init_msg_list is set to TRUE.
8695 IF FND_API.to_Boolean( p_init_msg_list ) THEN
8696 FND_MSG_PUB.initialize;
8697 END IF;
8698
8699 -- Initialize API return status to success
8700 x_return_status := FND_API.G_RET_STS_SUCCESS;
8701
8702 -- API body
8703
8704 --get sob
8705 --Bug 4597347
8706 --Bug 5305536
8707 IF p_vendor_site_rec.org_id IS NOT NULL THEN
8708 SELECT Set_Of_Books_Id
8709 INTO l_sob
8710 FROM ap_system_parameters
8711 WHERE org_id = p_vendor_site_rec.org_id;
8712 END IF;
8713
8714 -- Call eTax Validation
8715
8716 ------------------------------------------------------------------------
8717 l_debug_info := 'Call to Validate hold_unmatched_invoices_flag';
8718 ------------------------------------------------------------------------
8719 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
8720 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
8721 l_api_name,l_debug_info);
8722 END IF;
8723 --
8724 -- Validate hold_unmatched_invoices_flag
8725 --
8726 IF p_vendor_site_rec.hold_unmatched_invoices_flag is NOT NULL
8727 AND p_vendor_site_rec.hold_unmatched_invoices_flag <> ap_null_char THEN
8728
8729 Validate_Lookups('HOLD_UNMATCHED_INVOICES_FLAG',
8730 p_vendor_site_rec.hold_unmatched_invoices_flag ,'YES/NO',
8731 'PO_LOOKUP_CODES',x_valid);
8732 IF NOT x_valid THEN
8733 x_return_status := FND_API.G_RET_STS_ERROR;
8734 IF g_source = 'IMPORT' THEN
8735 IF (Insert_Rejections(
8736 'AP_SUPPLIER_SITES_INT',
8737 p_vendor_site_rec.vendor_site_interface_id,
8738 'AP_INVALID_HOLD_UNMAT_INV',
8739 g_user_id,
8740 g_login_id,
8741 'Validate_Vendor_Site') <> TRUE) THEN
8742 --
8743 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
8744 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
8745 l_api_name,'Parameters: '
8746 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
8747 ||' ,Hold_Unmatched_Invoices_Flag: '
8748 ||p_vendor_site_rec.hold_unmatched_invoices_flag);
8749 END IF;
8750 END IF;
8751 ELSE
8752 -- Bug 5491139 hkaniven start --
8753 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_HOLD_UNMAT_INV');
8754 FND_MSG_PUB.ADD;
8755 -- Bug 5491139 hkaniven end --
8756 END IF;
8757 END IF;
8758 END IF;
8759
8760 ------------------------------------------------------------------------
8761 l_debug_info := 'Call to Validate tax_reporting_site_flag';
8762 ------------------------------------------------------------------------
8763 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
8764 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
8765 l_api_name,l_debug_info);
8766 END IF;
8767 --
8768 -- Validate tax_reporting_site_flag
8769 --
8770 IF p_vendor_site_rec.tax_reporting_site_flag is NOT NULL
8771 AND p_vendor_site_rec.tax_reporting_site_flag <> ap_null_char THEN
8772
8773 Validate_Lookups( 'TAX_REPORTING_SITE_FLAG',
8774 p_vendor_site_rec.tax_reporting_site_flag ,'YES/NO',
8775 'PO_LOOKUP_CODES',x_valid);
8776 IF NOT x_valid THEN
8777 x_return_status := FND_API.G_RET_STS_ERROR;
8778 IF g_source = 'IMPORT' THEN
8779 IF (Insert_Rejections(
8780 'AP_SUPPLIER_SITES_INT',
8781 p_vendor_site_rec.vendor_site_interface_id,
8782 'AP_INVALID_TAX_RS_FLAG',
8783 g_user_id,
8784 g_login_id,
8785 'Validate_Vendor_Site') <> TRUE) THEN
8786 --
8787 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
8788 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
8789 l_api_name,'Parameters: '
8790 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
8791 ||' ,Tax_Reporting_Site_Flag: '
8792 ||p_vendor_site_rec.tax_reporting_site_flag);
8793 END IF;
8794 END IF;
8795 ELSE
8796 -- Bug 5491139 hkaniven start --
8797 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_TAX_RS_FLAG');
8798 FND_MSG_PUB.ADD;
8799 -- Bug 5491139 hkaniven end --
8800 END IF;
8801 END IF;
8802 END IF;
8803
8804 -- Bug 6645014 starts: To import Vat code
8805 ------------------------------------------------------------------------
8806 l_debug_info := 'Call to Validate vat_code';
8807 ------------------------------------------------------------------------
8808 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
8809 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
8810 l_api_name,l_debug_info);
8811 END IF;
8812 --
8813 -- Validate vat_code
8814 --
8815 IF p_vendor_site_rec.vat_code is NOT NULL THEN
8816 -- Checking the vat code in the tax tables
8817 l_status := 0;
8818 SELECT COUNT(*) INTO l_status FROM DUAL WHERE EXISTS (
8819 SELECT 'Y'
8820 FROM zx_input_classifications_v
8821 WHERE lookup_type in ('ZX_INPUT_CLASSIFICATIONS', 'ZX_WEB_EXP_TAX_CLASSIFICATIONS')
8822 AND org_id in ( p_vendor_site_rec.org_id, -99)
8823 AND enabled_flag = 'Y'
8824 AND LOOKUP_CODE = p_vendor_site_rec.VAT_CODE );
8825
8826
8827 IF l_status = 0 THEN
8828 x_return_status := FND_API.G_RET_STS_ERROR;
8829 IF g_source = 'IMPORT' THEN
8830 IF (Insert_Rejections(
8831 'AP_SUPPLIER_SITES_INT',
8832 p_vendor_site_rec.vendor_site_interface_id,
8833 'AP_INVALID_VAT_CODE',
8834 g_user_id,
8835 g_login_id,
8836 'Validate_Vendor_Site') <> TRUE) THEN
8837 --
8838 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
8839 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
8840 l_api_name,'Parameters: '
8841 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
8842 ||' ,Vat_Code: '
8843 ||p_vendor_site_rec.vat_code);
8844 END IF;
8845 END IF;
8846 ELSE
8847 FND_MESSAGE.SET_NAME('SQLAP', 'AP_INVALID_VAT_CODE');
8848 FND_MSG_PUB.ADD;
8849 END IF;
8850 END IF;
8851 END IF;
8852 -- Bug 6645014 ends
8853
8854
8855 ------------------------------------------------------------------------
8856 l_debug_info := 'Call to Validate default_pay_site_id';
8857 ------------------------------------------------------------------------
8858 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
8859 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
8860 l_api_name,l_debug_info);
8861 END IF;
8862 --
8863 -- We should check for Valid Sites for any default_pay_site_id
8864 --
8865 IF (p_vendor_site_rec.default_pay_site_id is NOT NULL) AND
8866 (p_vendor_site_rec.default_pay_site_id <> ap_null_num) THEN
8867
8868 Check_Default_pay_site(p_vendor_site_rec.default_pay_site_id,
8869 p_vendor_site_rec.vendor_id,
8870 p_vendor_site_rec.org_id,
8871 x_valid
8872 );
8873 IF NOT x_valid THEN
8874 x_return_status := FND_API.G_RET_STS_ERROR;
8875 IF g_source = 'IMPORT' THEN
8876 IF (Insert_Rejections(
8877 'AP_SUPPLIER_SITES_INT',
8878 p_vendor_site_rec.vendor_site_interface_id,
8879 'AP_INVALID_DEF_PAY_SITE',
8880 g_user_id,
8881 g_login_id,
8882 'Validate_Vendor_Site') <> TRUE) THEN
8883 --
8884 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
8885 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
8886 l_api_name,'Parameters: '
8887 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
8888 ||' ,Vendor_Id: '||p_vendor_site_rec.vendor_id
8889 ||' ,Org_Id: '||p_vendor_site_rec.org_id
8890 ||' ,Deafult_Pay_Site_Id: '
8891 ||p_vendor_site_rec.default_pay_site_id);
8892 END IF;
8893 END IF;
8894 ELSE
8895 -- Bug 5491139 hkaniven start --
8896 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_DEF_PAY_SITE');
8897 FND_MSG_PUB.ADD;
8898 -- Bug 5491139 hkaniven end --
8899 END IF;
8900 END IF;
8901 END IF;
8902
8903
8904 -- Validate that no duplicate Vendor Site Code exist in applications
8905 --
8906 ------------------------------------------------------------------------
8907 l_debug_info := 'Call to Validate Vendor Site Code';
8908 ------------------------------------------------------------------------
8909 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
8910 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
8911 l_api_name,l_debug_info);
8912 END IF;
8913
8914 IF p_vendor_site_rec.vendor_site_code is not null
8915 AND p_mode = 'I' -- should skip this check for Update, xili, 12/18/2006
8916 AND p_vendor_site_rec.vendor_site_code <> ap_null_char THEN
8917
8918 Check_dup_vendor_site ( p_vendor_site_rec.vendor_id,
8919 p_vendor_site_rec.vendor_site_code,
8920 p_vendor_site_rec.org_name,
8921 p_vendor_site_rec.org_id,
8922 x_valid);
8923 IF NOT x_valid THEN
8924 x_return_status := FND_API.G_RET_STS_ERROR;
8925 IF g_source = 'IMPORT' THEN
8926 IF (Insert_Rejections(
8927 'AP_SUPPLIER_SITES_INT',
8928 p_vendor_site_rec.vendor_site_interface_id,
8929 'AP_DUPLICATE_VENDOR_SITE',
8930 g_user_id,
8931 g_login_id,
8932 'Validate_Vendor_Site') <> TRUE) THEN
8933 --
8934 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
8935 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
8936 l_api_name,'Parameters: '
8937 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
8938 ||' ,Vendor_Id: '||p_vendor_site_rec.vendor_id
8939 ||' ,Org_Id: '||p_vendor_site_rec.org_id
8940 ||' ,Vendor_Site_Code: '
8941 ||p_vendor_site_rec.vendor_site_code);
8942 END IF;
8943 END IF;
8944 ELSE
8945 -- Bug 5491139 hkaniven start --
8946 FND_MESSAGE.SET_NAME('SQLAP','AP_DUPLICATE_VENDOR_SITE');
8947 FND_MSG_PUB.ADD;
8948 -- Bug 5491139 hkaniven end --
8949 END IF;
8950 END IF;
8951 END IF;
8952
8953 ------------------------------------------------------------------------
8954 l_debug_info := 'Call Org_Id and Operating_unit_name validation';
8955 ------------------------------------------------------------------------
8956 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
8957 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
8958 l_api_name,l_debug_info);
8959 END IF;
8960
8961 -- Org_Id and Operating_unit_name validation
8962 IF (p_vendor_site_rec.org_id is NOT NULL AND
8963 p_vendor_site_rec.org_id <> ap_null_num) OR
8964 (p_vendor_site_rec.org_name is NOT NULL AND
8965 p_vendor_site_rec.org_name <> ap_null_char) THEN
8966
8967 Check_org_id_name(p_vendor_site_rec.org_id,
8968 p_vendor_site_rec.org_name,
8969 'AP_SUPPLIER_SITES_INT',
8970 p_vendor_site_rec.vendor_site_interface_id,
8971 x_valid);
8972
8973 IF NOT x_valid THEN
8974 x_return_status := FND_API.G_RET_STS_ERROR;
8975 END IF;
8976
8977 END IF;
8978
8979
8980 ------------------------------------------------------------------------
8981 l_debug_info := 'Call to Validate pay_on_receipt_summary_code';
8982 ------------------------------------------------------------------------
8983 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
8984 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
8985 l_api_name,l_debug_info);
8986 END IF;
8987 --
8988 -- Validate and default pay_on_receipt_summary_code
8989 --
8990 IF p_vendor_site_rec.pay_on_code is NOT NULL AND
8991 p_vendor_site_rec.pay_on_code <> ap_null_char THEN
8992
8993 Check_pay_on_rec_sum_code(p_vendor_site_rec.pay_on_code,
8994 p_vendor_site_rec.pay_on_receipt_summary_code,
8995 x_valid);
8996 IF NOT x_valid THEN
8997 x_return_status := FND_API.G_RET_STS_ERROR;
8998 IF g_source = 'IMPORT' THEN
8999 IF (Insert_Rejections(
9000 'AP_SUPPLIER_SITES_INT',
9001 p_vendor_site_rec.vendor_site_interface_id,
9002 'AP_INVALID_PAY_ON_RCE',
9003 g_user_id,
9004 g_login_id,
9005 'Validate_Vendor_Site') <> TRUE) THEN
9006 --
9007 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
9008 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
9009 l_api_name,'Parameters: '
9010 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
9011 ||' ,Pay_On_Code: '||p_vendor_site_rec.pay_on_code
9012 ||' ,Pay_On_Receipt_Summary_Code: '
9013 ||p_vendor_site_rec.pay_on_receipt_summary_code);
9014 END IF;
9015 END IF;
9016 ELSE
9017 -- Bug 5491139 hkaniven start --
9018 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PAY_ON_RCE');
9019 FND_MSG_PUB.ADD;
9020 -- Bug 5491139 hkaniven end --
9021 END IF;
9022 END IF;
9023 END IF;
9024
9025 ------------------------------------------------------------------------
9026 l_debug_info := 'Call to Validate shipping_control';
9027 ------------------------------------------------------------------------
9028 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9029 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
9030 l_api_name,l_debug_info);
9031 END IF;
9032 --
9033 -- Validate shipping_control
9034 --
9035 IF p_vendor_site_rec.shipping_control is NOT NULL
9036 AND p_vendor_site_rec.shipping_control <> ap_null_char THEN
9037
9038 Check_Shipping_Control(p_vendor_site_rec.shipping_control,
9039 x_valid
9040 );
9041
9042 IF NOT x_valid THEN
9043 x_return_status := FND_API.G_RET_STS_ERROR;
9044 IF g_source = 'IMPORT' THEN
9045 IF (Insert_Rejections(
9046 'AP_SUPPLIER_SITES_INT',
9047 p_vendor_site_rec.vendor_site_interface_id,
9048 'AP_INVALID_SHIPPING_CONTROL',
9049 g_user_id,
9050 g_login_id,
9051 'Validate_Vendor_Site') <> TRUE) THEN
9052 --
9053 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
9054 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
9055 l_api_name,'Parameters: '
9056 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
9057 ||' ,Shipping_Control: '||p_vendor_site_rec.shipping_control);
9058 END IF;
9059 END IF;
9060 ELSE
9061 -- Bug 5491139 hkaniven start --
9062 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_SHIPPING_CONTROL');
9063 FND_MSG_PUB.ADD;
9064 -- Bug 5491139 hkaniven end --
9065 END IF;
9066 END IF;
9067 END IF;
9068
9069 ------------------------------------------------------------------------
9070 l_debug_info := 'Call to Validate Terms_Id and Terms_Name';
9071 ------------------------------------------------------------------------
9072 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9073 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
9074 l_api_name,l_debug_info);
9075 END IF;
9076
9077 -- Terms_Id and Terms_Name validation
9078
9079 IF ((p_vendor_site_rec.terms_id is NOT NULL AND
9080 p_vendor_site_rec.terms_id <> ap_null_num) OR
9081 (p_vendor_site_rec.terms_name is NOT NULL AND
9082 p_vendor_site_rec.terms_name <> ap_null_char) OR
9083 (p_vendor_site_rec.default_terms_id is NOT NULL AND
9084 p_vendor_site_rec.default_terms_id <> ap_null_num) --6393761
9085 ) THEN
9086
9087 Check_terms_id_code(p_vendor_site_rec.terms_id,
9088 p_vendor_site_rec.terms_name,
9089 p_vendor_site_rec.default_terms_id,
9090 x_valid);
9091 IF NOT x_valid THEN
9092 x_return_status := FND_API.G_RET_STS_ERROR;
9093 IF g_source = 'IMPORT' THEN
9094 IF (Insert_Rejections(
9095 'AP_SUPPLIER_SITES_INT',
9096 p_vendor_site_rec.vendor_site_interface_id,
9097 'AP_INCONSISTENT_TERM',
9098 g_user_id,
9099 g_login_id,
9100 'Validate_Vendor_Site') <> TRUE) THEN
9101 --
9102 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
9103 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
9104 l_api_name,'Parameters: '
9105 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
9106 ||' ,Terms_Id: '||p_vendor_site_rec.terms_id
9107 ||' ,Terms_Name: '||p_vendor_site_rec.terms_name
9108 ||' ,Default_Terms_Id: '||p_vendor_site_rec.default_terms_Id);
9109 END IF;
9110 END IF;
9111 ELSE
9112 -- Bug 5491139 hkaniven start --
9113 FND_MESSAGE.SET_NAME('SQLAP','AP_INCONSISTENT_TERM');
9114 FND_MSG_PUB.ADD;
9115 -- Bug 5491139 hkaniven end --
9116 END IF;
9117 END IF;
9118 END IF;
9119
9120 ------------------------------------------------------------------------
9121 l_debug_info := 'Call to Validate pay_on_code';
9122 ------------------------------------------------------------------------
9123 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9124 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
9125 l_api_name,l_debug_info);
9126 END IF;
9127 --
9128 -- Validate pay_on_code
9129 --
9130 IF p_vendor_site_rec.pay_on_code is NOT NULL AND
9131 p_vendor_site_rec.pay_on_code <> ap_null_char THEN
9132
9133 Check_Valid_pay_on_code(p_vendor_site_rec.pay_on_code,
9134 p_vendor_site_rec.purchasing_site_flag,
9135 p_vendor_site_rec.pay_site_flag,
9136 p_vendor_site_rec.default_pay_site_id,
9137 x_valid);
9138
9139 IF NOT x_valid THEN
9140 x_return_status := FND_API.G_RET_STS_ERROR;
9141 IF g_source = 'IMPORT' THEN
9142 IF (Insert_Rejections(
9143 'AP_SUPPLIER_SITES_INT',
9144 p_vendor_site_rec.vendor_site_interface_id,
9145 'AP_INVALID_PAY_ON_CODE',
9146 g_user_id,
9147 g_login_id,
9148 'Validate_Vendor_Site') <> TRUE) THEN
9149 --
9150 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
9151 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
9152 l_api_name,'Parameters: '
9153 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
9154 ||' ,Pay_On_Code: '||p_vendor_site_rec.pay_on_code
9155 ||' ,Purchasing_Site_Flag: '||p_vendor_site_rec.purchasing_site_flag
9156 ||' ,Pay_Site_Flag: '||p_vendor_site_rec.pay_site_flag);
9157 END IF;
9158 END IF;
9159 ELSE
9160 -- Bug 5491139 hkaniven start --
9161 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PAY_ON_CODE');
9162 FND_MSG_PUB.ADD;
9163 -- Bug 5491139 hkaniven end --
9164 END IF;
9165 END IF;
9166 END IF;
9167
9168 ------------------------------------------------------------------------
9169 l_debug_info := 'Call to Validate pay_on_code and pay_on_receipt_summary_code';
9170 ------------------------------------------------------------------------
9171 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9172 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
9173 l_api_name,l_debug_info);
9174 END IF;
9175
9176 IF (p_vendor_site_rec.pay_on_receipt_summary_code is not null AND
9177 p_vendor_site_rec.pay_on_receipt_summary_code <> ap_null_char
9178 AND p_vendor_site_rec.pay_on_code is not null AND
9179 p_vendor_site_rec.pay_on_code <> ap_null_char) THEN
9180 pay_on_receipt_summary_valid(p_vendor_site_rec.pay_on_receipt_summary_code,
9181 p_vendor_site_rec.pay_on_code,
9182 x_valid);
9183 IF NOT x_valid THEN
9184 x_return_status := FND_API.G_RET_STS_ERROR;
9185 IF g_source = 'IMPORT' THEN
9186 IF (Insert_Rejections(
9187 'AP_SUPPLIER_SITES_INT',
9188 p_vendor_site_rec.vendor_site_interface_id,
9189 'AP_INVALID_PAY_ON_RCE',
9190 g_user_id,
9191 g_login_id,
9192 'Validate_Vendor_Site') <> TRUE) THEN
9193 --
9194 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
9195 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
9196 l_api_name,'Parameters: '
9197 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
9198 ||' ,Pay_On_Code: '||p_vendor_site_rec.pay_on_code
9199 ||' ,Pay_On_Receipt_Summary_Code: '
9200 ||p_vendor_site_rec.pay_on_receipt_summary_code);
9201 END IF;
9202 END IF;
9203 ELSE
9204 -- Bug 5491139 hkaniven start --
9205 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PAY_ON_RCE');
9206 FND_MSG_PUB.ADD;
9207 -- Bug 5491139 hkaniven end --
9208 END IF;
9209 END IF;
9210 END IF;
9211
9212 ------------------------------------------------------------------------
9213 l_debug_info := 'Call to Validate Payment_Priority';
9214 ------------------------------------------------------------------------
9215 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9216 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
9217 l_api_name,l_debug_info);
9218 END IF;
9219 --
9220 -- Validate Payment_Priority
9221 --
9222 IF p_vendor_site_rec.payment_priority is NOT NULL AND
9223 p_vendor_site_rec.payment_priority <> ap_null_num THEN
9224
9225 Check_payment_priority(p_vendor_site_rec.payment_priority,
9226 x_valid
9227 );
9228 IF NOT x_valid THEN
9229 x_return_status := FND_API.G_RET_STS_ERROR;
9230 IF g_source = 'IMPORT' THEN
9231 IF (Insert_Rejections(
9232 'AP_SUPPLIER_SITES_INT',
9233 p_vendor_site_rec.vendor_site_interface_id,
9234 'AP_INVALID_PAY_PRIORITY',
9235 g_user_id,
9236 g_login_id,
9237 'Validate_Vendor_Site') <> TRUE) THEN
9238 --
9239 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
9240 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
9241 l_api_name,'Parameters: '
9242 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
9243 ||' ,Payment_Priority: '||p_vendor_site_rec.payment_priority);
9244 END IF;
9245 END IF;
9246 ELSE
9247 -- Bug 5491139 hkaniven start --
9248 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PAYMENT_PRIORITY');
9249 FND_MSG_PUB.ADD;
9250 -- Bug 5491139 hkaniven end --
9251 END IF;
9252 END IF;
9253 END IF;
9254
9255 ------------------------------------------------------------------------
9256 l_debug_info := 'Call to Validate Invoice Currency Code';
9257 ------------------------------------------------------------------------
9258 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9259 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
9260 l_api_name,l_debug_info);
9261 END IF;
9262
9263 IF (p_vendor_site_rec.invoice_currency_code is not null AND
9264 p_vendor_site_rec.invoice_currency_code <> ap_null_char) THEN
9265 val_currency_code(p_vendor_site_rec.invoice_currency_code,
9266 x_valid);
9267 IF NOT x_valid THEN
9268 x_return_status := FND_API.G_RET_STS_ERROR;
9269 IF g_source = 'IMPORT' THEN
9270 IF (Insert_Rejections(
9271 'AP_SUPPLIER_SITES_INT',
9272 p_vendor_site_rec.vendor_site_interface_id,
9273 'AP_INVALID_INV_CURRENCY',
9274 g_user_id,
9275 g_login_id,
9276 'Validate_Vendor_Site') <> TRUE) THEN
9277 --
9278 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
9279 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
9280 l_api_name,'Parameters: '
9281 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
9282 ||' ,Invoice_Currency_Code: '||p_vendor_site_rec.invoice_currency_code);
9283 END IF;
9284 END IF;
9285 ELSE
9286 -- Bug 5491139 hkaniven start --
9287 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_INV_CURRENCY');
9288 FND_MSG_PUB.ADD;
9289 -- Bug 5491139 hkaniven end --
9290 END IF;
9291 END IF;
9292 END IF;
9293
9294 ------------------------------------------------------------------------
9295 l_debug_info := 'Call to Validate Payment Currency Code';
9296 ------------------------------------------------------------------------
9297 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9298 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
9299 l_api_name,l_debug_info);
9300 END IF;
9301
9302 IF (p_vendor_site_rec.payment_currency_code is not null
9303 AND p_vendor_site_rec.payment_currency_code <> ap_null_char
9304 AND p_vendor_site_rec.invoice_currency_code is not null
9305 AND p_vendor_site_rec.invoice_currency_code <> ap_null_char) THEN
9306 payment_currency_code_valid(p_vendor_site_rec.payment_currency_code,
9307 p_vendor_site_rec.invoice_currency_code,
9308 x_valid);
9309 IF NOT x_valid THEN
9310 x_return_status := FND_API.G_RET_STS_ERROR;
9311 IF g_source = 'IMPORT' THEN
9312 IF (Insert_Rejections(
9313 'AP_SUPPLIER_SITES_INT',
9314 p_vendor_site_rec.vendor_site_interface_id,
9315 'AP_INVALID_PAY_CURRENCY',
9316 g_user_id,
9317 g_login_id,
9318 'Validate_Vendor_Site') <> TRUE) THEN
9319 --
9320 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
9321 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
9322 l_api_name,'Parameters: '
9323 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
9324 ||' ,Invoice_Currency_Code: '||p_vendor_site_rec.invoice_currency_code
9325 ||' ,Payment_Currency_Code: '||p_vendor_site_rec.payment_currency_code);
9326 END IF;
9327 END IF;
9328 ELSE
9329 -- Bug 5491139 hkaniven start --
9330 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PAY_CURRENCY');
9331 FND_MSG_PUB.ADD;
9332 -- Bug 5491139 hkaniven end --
9333 END IF;
9334 END IF;
9335 END IF;
9336
9337 ------------------------------------------------------------------------
9338 l_debug_info := 'Call to Validate accts_pay_ccid';
9339 ------------------------------------------------------------------------
9340 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9341 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
9342 l_api_name,l_debug_info);
9343 END IF;
9344 --
9345 -- Validate accts_pay_ccid
9346 --
9347 IF p_vendor_site_rec.accts_pay_code_combination_id is NOT NULL
9348 AND p_vendor_site_rec.accts_pay_code_combination_id <> ap_null_num THEN
9349
9350 Validate_CCIDs('ACCTS_PAY_CCID',
9351 p_vendor_site_rec.accts_pay_code_combination_id, l_sob,
9352 x_valid);
9353 IF NOT x_valid THEN
9354 x_return_status := FND_API.G_RET_STS_ERROR;
9355 IF g_source = 'IMPORT' THEN
9356 IF (Insert_Rejections(
9357 'AP_SUPPLIER_SITES_INT',
9358 p_vendor_site_rec.vendor_site_interface_id,
9359 'AP_INVALID_ACCOUNTS_PAY_CCID',
9360 g_user_id,
9361 g_login_id,
9362 'Validate_Vendor_Site') <> TRUE) THEN
9363 --
9364 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
9365 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
9366 l_api_name,'Parameters: '
9367 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
9368 ||' ,Accts_Pay_Code_Comb_Id: '
9369 ||p_vendor_site_rec.accts_pay_code_combination_id
9370 ||' ,Set_Of_Books_Id: '||l_sob);
9371 END IF;
9372 END IF;
9373 ELSE
9374 -- Bug 5491139 hkaniven start --
9375 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_ACCOUNTS_PAY_CCID');
9376 FND_MSG_PUB.ADD;
9377 -- Bug 5491139 hkaniven end --
9378 END IF;
9379 END IF;
9380 END IF;
9381
9382 ------------------------------------------------------------------------
9383 l_debug_info := 'Call to Validate prepay_ccid';
9384 ------------------------------------------------------------------------
9385 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9386 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
9387 l_api_name,l_debug_info);
9388 END IF;
9389 --
9390 -- Validate prepay_code_combination_id
9391 --
9392 IF p_vendor_site_rec.prepay_code_combination_id is NOT NULL AND
9393 p_vendor_site_rec.prepay_code_combination_id <> ap_null_num THEN
9394 Validate_CCIDs( 'PREPAY_CCID',
9395 p_vendor_site_rec.prepay_code_combination_id, l_sob,
9396 x_valid);
9397 IF NOT x_valid THEN
9398 x_return_status := FND_API.G_RET_STS_ERROR;
9399 IF g_source = 'IMPORT' THEN
9400 IF (Insert_Rejections(
9401 'AP_SUPPLIER_SITES_INT',
9402 p_vendor_site_rec.vendor_site_interface_id,
9403 'AP_SUPP_INVALID_CCID',
9404 g_user_id,
9405 g_login_id,
9406 'Validate_Vendor_Site') <> TRUE) THEN
9407 --
9408 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
9409 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
9410 l_api_name,'Parameters: '
9411 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
9412 ||' ,Prepay_Code_Combination_Id: '
9413 ||p_vendor_site_rec.prepay_code_combination_id
9414 ||' ,Set_Of_Books_Id: '||l_sob);
9415 END IF;
9416 END IF;
9417 ELSE
9418 -- Bug 5491139 hkaniven start --
9419 FND_MESSAGE.SET_NAME('SQLAP','AP_SUPP_INVALID_CCID');
9420 FND_MSG_PUB.ADD;
9421 -- Bug 5491139 hkaniven end --
9422 END IF;
9423 END IF;
9424 END IF;
9425
9426 ------------------------------------------------------------------------
9427 l_debug_info := 'Call to Validate future_dated_payment_ccid';
9428 ------------------------------------------------------------------------
9429 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9430 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
9431 l_api_name,l_debug_info);
9432 END IF;
9433 --
9434 -- Validate future_dated_payment_ccid
9435 --
9436 IF p_vendor_site_rec.future_dated_payment_ccid is NOT NULL AND
9437 p_vendor_site_rec.future_dated_payment_ccid <> ap_null_num THEN
9438 Validate_CCIDs( 'FUTURE_DATED_PAYMENT_CCID',
9439 p_vendor_site_rec.future_dated_payment_ccid, l_sob,
9440 x_valid);
9441 IF NOT x_valid THEN
9442 x_return_status := FND_API.G_RET_STS_ERROR;
9443 IF g_source = 'IMPORT' THEN
9444 IF (Insert_Rejections(
9445 'AP_SUPPLIER_SITES_INT',
9446 p_vendor_site_rec.vendor_site_interface_id,
9447 'AP_SUPP_INVALID_CCID',
9448 g_user_id,
9449 g_login_id,
9450 'Validate_Vendor_Site') <> TRUE) THEN
9451 --
9452 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
9453 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
9454 l_api_name,'Parameters: '
9455 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
9456 ||' ,Future_Dated_Payment_Ccid: '
9457 ||p_vendor_site_rec.future_dated_payment_ccid
9458 ||' ,Set_Of_Books_Id: '||l_sob);
9459 END IF;
9460 END IF;
9461 ELSE
9462 -- Bug 5491139 hkaniven start --
9463 FND_MESSAGE.SET_NAME('SQLAP','AP_SUPP_INVALID_CCID');
9464 FND_MSG_PUB.ADD;
9465 -- Bug 5491139 hkaniven end --
9466 END IF;
9467 END IF;
9468 END IF;
9469
9470 ------------------------------------------------------------------------
9471 l_debug_info := 'Call to Validate duns_number';
9472 ------------------------------------------------------------------------
9473 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9474 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
9475 l_api_name,l_debug_info);
9476 END IF;
9477 --
9478 -- Validate supplier site duns number
9479 -- Added for the R12 FSIO gap
9480 --(bug6053476)
9481 IF p_vendor_site_rec.duns_number is NOT NULL
9482 AND p_vendor_site_rec.duns_number <> ap_null_char THEN
9483
9484 --call the duns number validaton API
9485 Chk_new_duns_number(p_vendor_site_rec.duns_number,
9486 x_valid);
9487
9488 IF NOT x_valid THEN
9489 x_return_status := FND_API.G_RET_STS_ERROR;
9490 IF g_source = 'IMPORT' THEN
9491 IF (Insert_Rejections(
9492 'AP_SUPPLIER_SITES_INT',
9493 p_vendor_site_rec.vendor_site_interface_id,
9494 'AP_INVALID_DUNS_NUMBER',
9495 g_user_id,
9496 g_login_id,
9497 'Validate_Vendor_Site') <> TRUE) THEN
9498 --
9499 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
9500 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
9501 l_api_name,'Parameters: '
9502 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
9503 ||' ,Invalid_Duns_number: '
9504 ||p_vendor_site_rec.duns_number);
9505 END IF;
9506 END IF;
9507 ELSE
9508 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_DUNS_NUMBER');
9509 FND_MSG_PUB.ADD;
9510 END IF;
9511 END IF;
9512 END IF;
9513
9514
9515 IF p_mode = 'U' THEN
9516
9517 --update validations
9518
9519 null;
9520
9521 ------------------------------------------------------------------------
9522 l_debug_info := 'check for prohibiting the update of CCR vendor site';
9523 ------------------------------------------------------------------------
9524 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9525 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
9526 l_api_name,l_debug_info);
9527 END IF;
9528 --
9529 -- Check if there is an attempt to update any restricted
9530 -- fields for a CCR vendor site. Added for the R12 FSIO
9531 -- GAP.(bug6053476)
9532
9533 Chk_update_site_ccr_values(p_vendor_site_rec,
9534 p_calling_prog,
9535 x_valid);
9536
9537 IF NOT x_valid THEN
9538 x_return_status := FND_API.G_RET_STS_ERROR;
9539 IF g_source = 'IMPORT' THEN
9540 IF (Insert_Rejections(
9541 'AP_SUPPLIER_SITES_INT',
9542 p_vendor_site_rec.vendor_site_interface_id,
9543 'AP_CCR_NO_UPDATE',
9544 g_user_id,
9545 g_login_id,
9546 'Validate_Vendor_Site') <> TRUE) THEN
9547
9548 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
9549 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
9550 l_api_name,'Parameters: '
9551 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
9552 ||' ,attempting to update non-updatablee elements on CCR site : '
9553 ||p_vendor_site_rec.vendor_site_id);
9554 END IF;
9555 END IF;
9556 ELSE
9557 FND_MESSAGE.SET_NAME('SQLAP','AP_CCR_NO_UPDATE');
9558 FND_MSG_PUB.ADD;
9559 END IF;
9560 END IF;
9561
9562 ELSIF p_mode = 'I' THEN
9563
9564 --insert validations
9565
9566 ------------------------------------------------------------------------
9567 l_debug_info := 'Call to Validate payee';
9568 ------------------------------------------------------------------------
9569 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9570 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
9571 l_api_name,l_debug_info);
9572 END IF;
9573 --
9574 -- Calling IBY Payee Validation API
9575 --
9576 IF p_vendor_site_rec.ext_payee_rec.payer_org_type IS NOT NULL THEN
9577 IBY_DISBURSEMENT_SETUP_PUB.Validate_External_Payee
9578 ( p_api_version => 1.0,
9579 p_init_msg_list => FND_API.G_FALSE,
9580 p_ext_payee_rec => p_vendor_site_rec.ext_payee_rec,
9581 x_return_status => l_payee_return_status,
9582 x_msg_count => l_payee_msg_count,
9583 x_msg_data => l_payee_msg_data);
9584
9585 IF l_payee_return_status = FND_API.G_RET_STS_SUCCESS THEN
9586 x_payee_valid := 'V';
9587 ELSE
9588 x_payee_valid := 'F';
9589 x_return_status := l_payee_return_status;
9590 IF g_source = 'IMPORT' THEN
9591 IF (Insert_Rejections(
9592 'AP_SUPPLIER_SITES_INT',
9593 p_vendor_site_rec.vendor_site_interface_id,
9594 'AP_INVALID_PAYEE',
9595 g_user_id,
9596 g_login_id,
9597 'Validate_Vendor_Site') <> TRUE) THEN
9598 --
9599 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
9600 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
9601 l_api_name,'Parameters: '
9602 ||' Vendor_Site_Interface_Id:' ||
9603 p_vendor_site_rec.vendor_interface_id);
9604 END IF;
9605 END IF;
9606 ELSE
9607 -- Bug 5491139 hkaniven start --
9608 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PAYEE');
9609 FND_MSG_PUB.ADD;
9610 -- Bug 5491139 hkaniven end --
9611 END IF;
9612 END IF;
9613 ELSE
9614 x_payee_valid := 'N';
9615 END IF; --payee valid
9616
9617 --call location validation to validate entered id
9618 --and/or compare address componenets
9619 --and that the location is already in use by existing supplier
9620
9621 -- Bug 6918411/6808171 CTETALA Begin
9622 -- Added code to validate country code
9623 ----------------------------------------------------------------------------------------------------
9624 l_debug_info := 'Call to Validate country code';
9625 ----------------------------------------------------------------------------------------------------
9626 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9627 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
9628 l_api_name,l_debug_info);
9629 END IF;
9630
9631 IF(p_vendor_site_rec.country IS NOT NULL) THEN
9632 BEGIN
9633 SELECT null INTO l_dummy
9634 FROM FND_TERRITORIES
9635 WHERE TERRITORY_CODE = p_vendor_site_rec.country
9636 AND OBSOLETE_FLAG = 'N';
9637 x_valid := TRUE;
9638
9639 EXCEPTION
9640 WHEN NO_DATA_FOUND THEN
9641 x_valid := FALSE;
9642 END;
9643
9644 IF NOT x_valid THEN
9645 x_return_status := FND_API.G_RET_STS_ERROR;
9646 IF g_source = 'IMPORT' THEN
9647 IF (Insert_Rejections
9648 (
9649 'AP_SUPPLIER_SITES_INT',
9650 p_vendor_site_rec.vendor_site_interface_id,
9651 'AP_API_INVALID_COUNTRY',
9652 g_user_id,
9653 g_login_id,
9654 'Validate_Vendor_Site') <> TRUE) THEN
9655 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
9656 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
9657 l_api_name,'Parameters: '
9658 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
9659 ||' ,Country code validation '
9660 ||p_vendor_site_rec.country);
9661 END IF;
9662 END IF;
9663 ELSE
9664 FND_MESSAGE.SET_NAME('SQLAP','AP_API_INVALID_COUNTRY');
9665 FND_MSG_PUB.ADD;
9666 END IF; --import
9667 END IF; --country invalid
9668 END IF;
9669
9670 -- Bug 6918411/6808171 CTETALA End
9671
9672 -- Bug 7429668 If Party_Site_Name is provided, derive the party_site_id.
9673 IF (p_vendor_site_rec.party_site_name IS NOT NULL AND
9674 p_vendor_site_rec.party_site_id IS NULL AND
9675 (p_vendor_site_rec.org_id IS NOT NULL OR
9676 p_vendor_site_rec.ORG_NAME IS NOT NULL) AND
9677 p_vendor_site_rec.vendor_id IS NOT NULL)THEN
9678 Check_org_id_party_site_name(p_vendor_site_rec.org_id,
9679 p_vendor_site_rec.ORG_NAME,
9680 p_vendor_site_rec.party_site_id,
9681 p_vendor_site_rec.party_site_name,
9682 p_vendor_site_rec.vendor_id,
9683 'AP_SUPPLIER_SITES_INT',
9684 p_vendor_site_rec.vendor_site_interface_id,
9685 x_valid);
9686 IF NOT x_valid THEN
9687 x_return_status := FND_API.G_RET_STS_ERROR;
9688 IF g_source = 'IMPORT' THEN
9689 IF (Insert_Rejections(
9690 'AP_SUPPLIER_SITES_INT',
9691 p_vendor_site_rec.vendor_site_interface_id,
9692 'AP_INVALID_PARTY_SITE',
9693 g_user_id,
9694 g_login_id,
9695 'Validate_Vendor_Site') <> TRUE) THEN
9696
9697 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
9698 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'Parameters: '
9699 ||' Org_Id: '||p_vendor_site_rec.org_id
9700 ||', Org_Name: '||p_vendor_site_rec.ORG_NAME
9701 ||', Party_site_name: '||p_vendor_site_rec.party_site_name
9702 ||', Party_site_id: '|| p_vendor_site_rec.party_site_id
9703 ||', Vendor_id: '|| p_vendor_site_rec.vendor_id
9704 ||', Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id);
9705 END IF;
9706 END IF;
9707 ELSE
9708 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PARTY_SITE');
9709 FND_MSG_PUB.ADD;
9710 END IF;
9711 END IF;
9712 END IF;
9713 ------------------------------------------------------------------------
9714 l_debug_info := 'Call to Validate location';
9715 ------------------------------------------------------------------------
9716 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9717 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
9718 l_api_name,l_debug_info);
9719 END IF;
9720 --
9721 -- Check for validity of location_id
9722 --
9723 IF p_vendor_site_rec.location_id IS NOT NULL THEN
9724 Check_Valid_Location_ID(p_vendor_site_rec.location_id,
9725 p_vendor_site_rec.party_site_id,
9726 x_valid);
9727
9728 IF NOT x_valid THEN
9729 --location_id does not exist
9730 x_location_valid := 'F';
9731 ELSE
9732 --location_id was valid
9733 x_location_valid := 'V';
9734 END IF;
9735 ELSE
9736
9737 Check_Valid_Location(
9738 p_party_site_id => p_vendor_site_rec.party_site_id,
9739 p_address_line1 => p_vendor_site_rec.address_line1,
9740 p_address_line2 => p_vendor_site_rec.address_line2,
9741 p_address_line3 => p_vendor_site_rec.address_line3,
9742 p_address_line4 => p_vendor_site_rec.address_line4,
9743 p_city => p_vendor_site_rec.city ,
9744 p_state => p_vendor_site_rec.state ,
9745 p_zip => p_vendor_site_rec.zip ,
9746 p_province => p_vendor_site_rec.province ,
9747 p_country => p_vendor_site_rec.country,
9748 p_county => p_vendor_site_rec.county,
9749 p_language => p_vendor_site_rec.language,
9750 p_address_style => p_vendor_site_rec.address_style ,
9751 p_vendor_id => p_vendor_site_rec.vendor_id,
9752 x_location_id => l_location_id,
9753 x_valid => x_valid,
9754 x_loc_count => x_loc_count); -- Bug 7429668
9755
9756 IF NOT x_valid THEN
9757 --no existing matching location
9758 x_location_valid := 'N';
9759 -- Bug 7429668 Start
9760 IF x_loc_count > 1 THEN
9761 -- We have to ensure that no new locations are created in this case.
9762 x_location_valid := 'F';
9763 x_return_status := FND_API.G_RET_STS_ERROR;
9764
9765 IF g_source = 'IMPORT' THEN
9766
9767 IF (Insert_Rejections(
9768 'AP_SUPPLIER_SITES_INT',
9769 p_vendor_site_rec.vendor_site_interface_id,
9770 'AP_MULTIPLE_ADDRESS',
9771 g_user_id,
9772 g_login_id,
9773 'Validate_Vendor_Site') <> TRUE) THEN
9774
9775 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
9776 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
9777 l_api_name,'Parameters: '
9778 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
9779 ||' ,Vendor_Id: '||p_vendor_site_rec.vendor_id
9780 ||' ,Party_site_id: '||p_vendor_site_rec.party_site_id);
9781 END IF;
9782
9783 END IF;
9784 ELSE
9785 -- Bug 5584046 --
9786 FND_MESSAGE.SET_NAME('SQLAP','AP_MULTIPLE_ADDRESS');
9787 FND_MSG_PUB.ADD;
9788 END IF; --import
9789 ELSIF x_loc_count = 0 AND
9790 p_vendor_site_rec.party_site_id IS NOT NULL THEN
9791 -- We have to ensure that no new locations are created in this case.
9792 x_location_valid := 'F';
9793 x_return_status := FND_API.G_RET_STS_ERROR;
9794
9795 IF g_source = 'IMPORT' THEN
9796
9797 IF (Insert_Rejections(
9798 'AP_SUPPLIER_SITES_INT',
9799 p_vendor_site_rec.vendor_site_interface_id,
9800 'AP_INCONSISTENT_ADDRESS',
9801 g_user_id,
9802 g_login_id,
9803 'Validate_Vendor_Site') <> TRUE) THEN
9804
9805 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
9806 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
9807 l_api_name,'Parameters: '
9808 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
9809 ||' ,Vendor_Id: '||p_vendor_site_rec.vendor_id
9810 ||' ,Party_site_id: '||p_vendor_site_rec.party_site_id);
9811 END IF;
9812
9813 END IF;
9814 ELSE
9815 -- Bug 5584046 --
9816 FND_MESSAGE.SET_NAME('SQLAP','AP_INCONSISTENT_ADDRESS');
9817 FND_MSG_PUB.ADD;
9818 END IF; --import
9819 -- Bug 7429668 End
9820 ELSE
9821 /*bug 5584046 Before calling the HZ api we need to ensure that
9822 Country and address_line1 coulumns are not null*/
9823 IF(p_vendor_site_rec.country IS NULL)
9824 AND (NVL(G_Vendor_Type_Lookup_Code,'DUMMY') <> 'EMPLOYEE') THEN
9825
9826 x_return_status := FND_API.G_RET_STS_ERROR;
9827
9828 IF g_source = 'IMPORT' THEN
9829
9830 IF (Insert_Rejections(
9831 'AP_SUPPLIER_SITES_INT',
9832 p_vendor_site_rec.vendor_site_interface_id,
9833 'AP_NULL_COUNTRY_NAME',
9834 g_user_id,
9835 g_login_id,
9836 'Validate_Vendor_Site') <> TRUE) THEN
9837
9838 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
9839 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
9840 l_api_name,'Parameters: '
9841 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
9842 ||' ,Vendor_Id: '||p_vendor_site_rec.vendor_id
9843 ||' ,Org_id: '||p_vendor_site_rec.org_id
9844 ||' ,Org_Name: '||p_vendor_site_rec.org_name);
9845 END IF;
9846
9847 END IF;
9848 ELSE
9849 -- Bug 5584046 --
9850 FND_MESSAGE.SET_NAME('SQLAP','AP_NULL_COUNTRY_NAME');
9851 FND_MSG_PUB.ADD;
9852 END IF; --import
9853 END IF;
9854
9855 IF(p_vendor_site_rec.address_line1 IS NULL)
9856 AND (NVL(G_Vendor_Type_Lookup_Code,'DUMMY') <> 'EMPLOYEE') THEN
9857
9858 x_return_status := FND_API.G_RET_STS_ERROR;
9859
9860 IF g_source = 'IMPORT' THEN
9861
9862 IF (Insert_Rejections(
9863 'AP_SUPPLIER_SITES_INT',
9864 p_vendor_site_rec.vendor_site_interface_id,
9865 'AP_NULL_ADDRESS_LINE1',
9866 g_user_id,
9867 g_login_id,
9868 'Validate_Vendor_Site') <> TRUE) THEN
9869
9870 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
9871 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
9872 l_api_name,'Parameters: '
9873 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
9874 ||' ,Vendor_Id: '||p_vendor_site_rec.vendor_id
9875 ||' ,Org_id: '||p_vendor_site_rec.org_id
9876 ||' ,Org_Name: '||p_vendor_site_rec.org_name);
9877 END IF;
9878
9879 END IF;
9880 ELSE
9881 -- Bug 5584046
9882 FND_MESSAGE.SET_NAME('SQLAP','AP_NULL_ADDRESS_LINE1');
9883 FND_MSG_PUB.ADD;
9884 END IF; --import
9885 END IF;
9886 --bug 5584046
9887 END IF;
9888
9889 ELSE
9890 --found valid matching location
9891 x_location_valid := 'V';
9892 p_vendor_site_rec.location_id := l_location_id;
9893 END IF;
9894
9895 END IF;
9896
9897 ------------------------------------------------------------------------
9898 l_debug_info := 'Call to Validate party_site_id';
9899 ------------------------------------------------------------------------
9900 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9901 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
9902 l_api_name,l_debug_info);
9903 END IF;
9904 --
9905 -- Check for validity of party_site_id
9906 --
9907
9908 IF p_vendor_site_rec.party_site_id IS NOT NULL THEN
9909 Check_Valid_Party_Site_ID(p_vendor_site_rec.party_site_id,
9910 p_vendor_site_rec.location_id,
9911 x_valid);
9912
9913 IF NOT x_valid THEN
9914 --party_site_id does not exist
9915 x_party_site_valid := 'F';
9916 ELSE
9917 --party_site_id was valid
9918 x_party_site_valid := 'V';
9919 END IF;
9920 ELSE
9921 --party_site_id is null
9922 x_party_site_valid := 'N';
9923 END IF;
9924
9925 ------------------------------------------------------------------------
9926 l_debug_info := 'Call to Validate primary_pay_site_flag unique per Vendor';
9927 ------------------------------------------------------------------------
9928 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9929 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
9930 l_api_name,l_debug_info);
9931 END IF;
9932 --
9933 -- Validate primary_pay_site_flag - unique per vendor
9934 --
9935
9936 IF (p_vendor_site_rec.primary_pay_site_flag = 'Y') THEN
9937
9938 Validate_unique_per_vendor('PRIMARY_PAY_SITE_FLAG',
9939 p_vendor_site_rec.vendor_id,
9940 p_vendor_site_id,
9941 p_vendor_site_rec.org_id,
9942 p_vendor_site_rec.org_name,
9943 x_valid
9944 );
9945 IF NOT x_valid THEN
9946 x_return_status := FND_API.G_RET_STS_ERROR;
9947 IF g_source = 'IMPORT' THEN
9948 IF (Insert_Rejections(
9949 'AP_SUPPLIER_SITES_INT',
9950 p_vendor_site_rec.vendor_site_interface_id,
9951 'AP_INVALID_PRIM_PAY_SITE',
9952 g_user_id,
9953 g_login_id,
9954 'Validate_Vendor_Site') <> TRUE) THEN
9955 --
9956 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
9957 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
9958 l_api_name,'Parameters: '
9959 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
9960 ||' ,Vendor_Id: '||p_vendor_site_rec.vendor_id
9961 ||' ,Org_id: '||p_vendor_site_rec.org_id
9962 ||' ,Org_Name: '||p_vendor_site_rec.org_name);
9963 END IF;
9964 END IF;
9965 ELSE
9966 -- Bug 5491139 hkaniven start --
9967 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PRIM_PAY_SITE');
9968 FND_MSG_PUB.ADD;
9969 -- Bug 5491139 hkaniven end --
9970 END IF;
9971 END IF;
9972 END IF;
9973
9974 ------------------------------------------------------------------------
9975 l_debug_info := 'Call to Validate Country of Origin Code';
9976 ------------------------------------------------------------------------
9977 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9978 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
9979 l_api_name,l_debug_info);
9980 END IF;
9981
9982 IF (p_vendor_site_rec.country_of_origin_code is not null) THEN
9983 country_of_origin_valid(p_vendor_site_rec.country_of_origin_code,
9984 x_valid);
9985 IF NOT x_valid THEN
9986 x_return_status := FND_API.G_RET_STS_ERROR;
9987 IF g_source = 'IMPORT' THEN
9988 IF (Insert_Rejections(
9989 'AP_SUPPLIER_SITES_INT',
9990 p_vendor_site_rec.vendor_site_interface_id,
9991 'AP_INVALID_COUNTRY_ORIGIN',
9992 g_user_id,
9993 g_login_id,
9994 'Validate_Vendor_Site') <> TRUE) THEN
9995 --
9996 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
9997 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
9998 l_api_name,'Parameters: '
9999 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
10000 ||' ,Country_Of_Origin_Code: '||p_vendor_site_rec.country_of_origin_code);
10001 END IF;
10002 END IF;
10003 ELSE
10004 -- Bug 5491139 hkaniven start --
10005 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_COUNTRY_ORIGIN');
10006 FND_MSG_PUB.ADD;
10007 -- Bug 5491139 hkaniven end --
10008 END IF;
10009 END IF;
10010 END IF;
10011
10012 IF p_calling_prog <> 'ISETUP' THEN
10013
10014 --addl insert validations
10015
10016 ------------------------------------------------------------------------
10017 l_debug_info := 'Call to Validate pcard_site_flag';
10018 ------------------------------------------------------------------------
10019 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10020 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
10021 l_api_name,l_debug_info);
10022 END IF;
10023 --
10024 -- Validate pcard_site_flag
10025 --
10026 IF p_vendor_site_rec.pcard_site_flag is NOT NULL THEN
10027
10028 Validate_Lookups( 'PCARD_SITE_FLAG', p_vendor_site_rec.pcard_site_flag ,'YES/NO',
10029 'PO_LOOKUP_CODES',x_valid);
10030 IF NOT x_valid THEN
10031 x_return_status := FND_API.G_RET_STS_ERROR;
10032 IF g_source = 'IMPORT' THEN
10033 IF (Insert_Rejections(
10034 'AP_SUPPLIER_SITES_INT',
10035 p_vendor_site_rec.vendor_site_interface_id,
10036 'AP_INVALID_PCARD_FLAG',
10037 g_user_id,
10038 g_login_id,
10039 'Validate_Vendor_Site') <> TRUE) THEN
10040 --
10041 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10042 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10043 l_api_name,'Parameters: '
10044 ||' Vendor_Site_Interface_Id: '
10045 ||p_vendor_site_rec.vendor_site_interface_id
10046 ||' ,Pcard_Site_Flag: '
10047 ||p_vendor_site_rec.pcard_site_flag);
10048 END IF;
10049 END IF;
10050 ELSE
10051 -- Bug 5491139 hkaniven start --
10052 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PCARD_SITE');
10053 FND_MSG_PUB.ADD;
10054 -- Bug 5491139 hkaniven end --
10055 END IF;
10056 END IF;
10057 END IF;
10058
10059 ------------------------------------------------------------------------
10060 l_debug_info := 'Call to Validate Purchasing Site Flag';
10061 ------------------------------------------------------------------------
10062 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10063 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
10064 l_api_name,l_debug_info);
10065 END IF;
10066 --
10067 -- Validate purchasing_site_flag
10068 --
10069 IF p_vendor_site_rec.purchasing_site_flag is NOT NULL THEN
10070
10071 Validate_Lookups( 'PURCHASING_SITE_FLAG', p_vendor_site_rec.purchasing_site_flag,'YES/NO',
10072 'PO_LOOKUP_CODES', x_valid);
10073 IF NOT x_valid THEN
10074 x_return_status := FND_API.G_RET_STS_ERROR;
10075 IF g_source = 'IMPORT' THEN
10076 IF (Insert_Rejections(
10077 'AP_SUPPLIER_SITES_INT',
10078 p_vendor_site_rec.vendor_site_interface_id,
10079 'AP_INVALID_PURCHASING_FLAG',
10080 g_user_id,
10081 g_login_id,
10082 'Validate_Vendor_Site') <> TRUE) THEN
10083 --
10084 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10085 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10086 l_api_name,'Parameters: '
10087 ||' Vendor_Site_Interface_Id: '
10088 ||p_vendor_site_rec.vendor_site_interface_id
10089 ||' ,Purchasing_Site_Flag: '
10090 ||p_vendor_site_rec.purchasing_site_flag);
10091 END IF;
10092 END IF;
10093 ELSE
10094 -- Bug 5491139 hkaniven start --
10095 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PURCHASING_FLAG');
10096 FND_MSG_PUB.ADD;
10097 -- Bug 5491139 hkaniven end --
10098 END IF;
10099 END IF;
10100 END IF;
10101
10102 ------------------------------------------------------------------------
10103 l_debug_info := 'Call to Validate rfq_only_site_flag';
10104 ------------------------------------------------------------------------
10105 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10106 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
10107 l_api_name,l_debug_info);
10108 END IF;
10109 --
10110 -- Validate rfq_only_site_flag
10111 --
10112 IF p_vendor_site_rec.rfq_only_site_flag is NOT NULL THEN
10113
10114 Validate_Lookups( 'RFQ_ONLY_SITE_FLAG', p_vendor_site_rec.rfq_only_site_flag,'YES/NO',
10115 'PO_LOOKUP_CODES', x_valid);
10116 IF NOT x_valid THEN
10117 x_return_status := FND_API.G_RET_STS_ERROR;
10118 IF g_source = 'IMPORT' THEN
10119 IF (Insert_Rejections(
10120 'AP_SUPPLIER_SITES_INT',
10121 p_vendor_site_rec.vendor_site_interface_id,
10122 'AP_INVALID_RFQ_FLAG',
10123 g_user_id,
10124 g_login_id,
10125 'Validate_Vendor_Site') <> TRUE) THEN
10126 --
10127 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10128 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10129 l_api_name,'Parameters: '
10130 ||' Vendor_Site_Interface_Id: '
10131 ||p_vendor_site_rec.vendor_site_interface_id
10132 ||' ,Rfq_Only_Site_Flag: '
10133 ||p_vendor_site_rec.rfq_only_site_flag);
10134 END IF;
10135 END IF;
10136 ELSE
10137 -- Bug 5491139 hkaniven start --
10138 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_RFQ_FLAG');
10139 FND_MSG_PUB.ADD;
10140 -- Bug 5491139 hkaniven end --
10141 END IF;
10142 END IF;
10143 END IF;
10144
10145 ------------------------------------------------------------------------
10146 l_debug_info := 'Call to Validate pay_site_flag';
10147 ------------------------------------------------------------------------
10148 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10149 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
10150 l_api_name,l_debug_info);
10151 END IF;
10152 --
10153 -- Validate pay_site_flag
10154 --
10155 IF p_vendor_site_rec.pay_site_flag is NOT NULL THEN
10156
10157 Validate_Lookups( 'PAY_SITE_FLAG', p_vendor_site_rec.pay_site_flag,'YES/NO',
10158 'PO_LOOKUP_CODES', x_valid);
10159 IF NOT x_valid THEN
10160 x_return_status := FND_API.G_RET_STS_ERROR;
10161 IF g_source = 'IMPORT' THEN
10162 IF (Insert_Rejections(
10163 'AP_SUPPLIER_SITES_INT',
10164 p_vendor_site_rec.vendor_site_interface_id,
10165 'AP_INVALID_PAY_SITE_FLAG',
10166 g_user_id,
10167 g_login_id,
10168 'Validate_Vendor_Site') <> TRUE) THEN
10169 --
10170 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10171 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10172 l_api_name,'Parameters: '
10173 ||' Vendor_Site_Interface_Id: '
10174 ||p_vendor_site_rec.vendor_site_interface_id
10175 ||' ,Pay_Site_Flag: '
10176 ||p_vendor_site_rec.pay_site_flag);
10177 END IF;
10178 END IF;
10179 ELSE
10180 -- Bug 5491139 hkaniven start --
10181 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PAY_SITE_FLAG');
10182 FND_MSG_PUB.ADD;
10183 -- Bug 5491139 hkaniven end --
10184 END IF;
10185 END IF;
10186 END IF;
10187
10188 ------------------------------------------------------------------------
10189 l_debug_info := 'Call to Validate attention_ar_flag';
10190 ------------------------------------------------------------------------
10191 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10192 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
10193 l_api_name,l_debug_info);
10194 END IF;
10195 --
10196 -- Validate attention_ar_flag
10197 --
10198 IF p_vendor_site_rec.attention_ar_flag is NOT NULL THEN
10199
10200 Validate_Lookups( 'ATTENTION_AR_FLAG', p_vendor_site_rec.attention_ar_flag,'YES/NO',
10201 'PO_LOOKUP_CODES', x_valid);
10202 IF NOT x_valid THEN
10203 x_return_status := FND_API.G_RET_STS_ERROR;
10204 IF g_source = 'IMPORT' THEN
10205 IF (Insert_Rejections(
10206 'AP_SUPPLIER_SITES_INT',
10207 p_vendor_site_rec.vendor_site_interface_id,
10208 'AP_INVALID_ATTN_AR_FLAG',
10209 g_user_id,
10210 g_login_id,
10211 'Validate_Vendor_Site') <> TRUE) THEN
10212 --
10213 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10214 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10215 l_api_name,'Parameters: '
10216 ||' Vendor_Site_Interface_Id: '
10217 ||p_vendor_site_rec.vendor_site_interface_id
10218 ||' ,Attention_Ar_Flag: '
10219 ||p_vendor_site_rec.attention_ar_flag);
10220 END IF;
10221 END IF;
10222 ELSE
10223 -- Bug 5491139 hkaniven start --
10224 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_ATTN_AR_FLAG');
10225 FND_MSG_PUB.ADD;
10226 -- Bug 5491139 hkaniven end --
10227 END IF;
10228 END IF;
10229 END IF;
10230
10231 ------------------------------------------------------------------------
10232 l_debug_info := 'Call to Validate primary_pay_site_flag';
10233 ------------------------------------------------------------------------
10234 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10235 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
10236 l_api_name,l_debug_info);
10237 END IF;
10238 --
10239 -- Validate primary_pay_site_flag
10240 --
10241 IF p_vendor_site_rec.primary_pay_site_flag is NOT NULL THEN
10242
10243 Validate_Lookups( 'PRIMARY_PAY_SITE_FLAG', p_vendor_site_rec.primary_pay_site_flag,'YES/NO',
10244 'PO_LOOKUP_CODES',x_valid);
10245 IF NOT x_valid THEN
10246 x_return_status := FND_API.G_RET_STS_ERROR;
10247 IF g_source = 'IMPORT' THEN
10248 IF (Insert_Rejections(
10249 'AP_SUPPLIER_SITES_INT',
10250 p_vendor_site_rec.vendor_site_interface_id,
10251 'AP_INVALID_PRIMPAY_SITE_FLAG',
10252 g_user_id,
10253 g_login_id,
10254 'Validate_Vendor_Site') <> TRUE) THEN
10255 --
10256 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10257 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10258 l_api_name,'Parameters: '
10259 ||' Vendor_Site_Interface_Id: '
10260 ||p_vendor_site_rec.vendor_site_interface_id
10261 ||' ,Primary_Pay_Site_Flag: '
10262 ||p_vendor_site_rec.primary_pay_site_flag);
10263 END IF;
10264 END IF;
10265 ELSE
10266 -- Bug 5491139 hkaniven start --
10267 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PRIM_PAY_SITE');
10268 FND_MSG_PUB.ADD;
10269 -- Bug 5491139 hkaniven end --
10270 END IF;
10271 END IF;
10272 END IF;
10273
10274 ------------------------------------------------------------------------
10275 l_debug_info := 'Call to Validate freight_terms_lookup_code';
10276 ------------------------------------------------------------------------
10277 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10278 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
10279 l_api_name,l_debug_info);
10280 END IF;
10281 --
10282 -- Validate freight_terms_lookup_code
10283 --
10284 IF p_vendor_site_rec.freight_terms_lookup_code is NOT NULL THEN
10285
10286 Validate_Lookups( 'FREIGHT_TERMS_LOOKUP_CODE',
10287 p_vendor_site_rec.freight_terms_lookup_code,'FREIGHT TERMS',
10288 'PO_LOOKUP_CODES',x_valid);
10289 IF NOT x_valid THEN
10290 x_return_status := FND_API.G_RET_STS_ERROR;
10291 IF g_source = 'IMPORT' THEN
10292 IF (Insert_Rejections(
10293 'AP_SUPPLIER_SITES_INT',
10294 p_vendor_site_rec.vendor_site_interface_id,
10295 'AP_INVALID_FREIGHT_TERMS',
10296 g_user_id,
10297 g_login_id,
10298 'Validate_Vendor_Site') <> TRUE) THEN
10299 --
10300 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10301 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10302 l_api_name,'Parameters: '
10303 ||' Vendor_Site_Interface_Id: '
10304 ||p_vendor_site_rec.vendor_site_interface_id
10305 ||' ,Freight_Terms_Lookup_Code '
10306 ||p_vendor_site_rec.freight_terms_lookup_code);
10307 END IF;
10308 END IF;
10309 ELSE
10310 -- Bug 5491139 hkaniven start --
10311 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_FREIGHT_TERMS');
10312 FND_MSG_PUB.ADD;
10313 -- Bug 5491139 hkaniven end --
10314 END IF;
10315 END IF;
10316 END IF;
10317
10318 ------------------------------------------------------------------------
10319 l_debug_info := 'Call to Validate fob_lookup_code';
10320 ------------------------------------------------------------------------
10321 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10322 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
10323 l_api_name,l_debug_info);
10324 END IF;
10325 --
10326 -- Validate fob_lookup_code
10327 --
10328 IF p_vendor_site_rec.fob_lookup_code is NOT NULL THEN
10329
10330 Validate_Lookups( 'FOB_LOOKUP_CODE',p_vendor_site_rec.fob_lookup_code,'FOB',
10331 'PO_LOOKUP_CODES',x_valid);
10332 IF NOT x_valid THEN
10333 x_return_status := FND_API.G_RET_STS_ERROR;
10334 IF g_source = 'IMPORT' THEN
10335 IF (Insert_Rejections(
10336 'AP_SUPPLIER_SITES_INT',
10337 p_vendor_site_rec.vendor_site_interface_id,
10338 'AP_INVALID_FOB',
10339 g_user_id,
10340 g_login_id,
10341 'Validate_Vendor_Site') <> TRUE) THEN
10342 --
10343 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10344 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10345 l_api_name,'Parameters: '
10346 ||' Vendor_Site_Interface_Id: '
10347 ||p_vendor_site_rec.vendor_site_interface_id
10348 ||' ,Fob_Lookup_Code '
10349 ||p_vendor_site_rec.fob_lookup_code);
10350 END IF;
10351 END IF;
10352 ELSE
10353 -- Bug 5491139 hkaniven start --
10354 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_FOB');
10355 FND_MSG_PUB.ADD;
10356 -- Bug 5491139 hkaniven end --
10357 END IF;
10358 END IF;
10359 END IF;
10360
10361 ------------------------------------------------------------------------
10362 l_debug_info := 'Call to Validate pay_date_basis_lookup_code';
10363 ------------------------------------------------------------------------
10364 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10365 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
10366 l_api_name,l_debug_info);
10367 END IF;
10368 --
10369 -- Validate pay_date_basis_lookup_code
10370 --
10371 IF p_vendor_site_rec.pay_date_basis_lookup_code is NOT NULL THEN
10372
10373 Validate_Lookups( 'PAY_DATE_BASIS_LOOKUP_CODE',
10374 p_vendor_site_rec.pay_date_basis_lookup_code,'PAY DATE BASIS',
10375 'PO_LOOKUP_CODES',x_valid);
10376 IF NOT x_valid THEN
10377 x_return_status := FND_API.G_RET_STS_ERROR;
10378 IF g_source = 'IMPORT' THEN
10379 IF (Insert_Rejections(
10380 'AP_SUPPLIER_SITES_INT',
10381 p_vendor_site_rec.vendor_site_interface_id,
10382 'AP_INVALID_PAY_DATE_BASIS',
10383 g_user_id,
10384 g_login_id,
10385 'Validate_Vendor_Site') <> TRUE) THEN
10386 --
10387 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10388 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10389 l_api_name,'Parameters: '
10390 ||' Vendor_Site_Interface_Id: '
10391 ||p_vendor_site_rec.vendor_site_interface_id
10392 ||' ,Pay_Date_Basis_Lookup_Code '
10393 ||p_vendor_site_rec.pay_date_basis_lookup_code);
10394 END IF;
10395 END IF;
10396 ELSE
10397 -- Bug 5491139 hkaniven start --
10398 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PAY_DATE_BASIS');
10399 FND_MSG_PUB.ADD;
10400 -- Bug 5491139 hkaniven end --
10401 END IF;
10402 END IF;
10403 END IF;
10404
10405 ------------------------------------------------------------------------
10406 l_debug_info := 'Call to Validate pay_group_lookup_code';
10407 ------------------------------------------------------------------------
10408 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10409 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
10410 l_api_name,l_debug_info);
10411 END IF;
10412 --
10413 -- Validate pay_group_lookup_code
10414 --
10415 IF p_vendor_site_rec.pay_group_lookup_code is NOT NULL THEN
10416
10417 Validate_Lookups( 'PAY_GROUP_LOOKUP_CODE',
10418 p_vendor_site_rec.pay_group_lookup_code,'PAY GROUP',
10419 'PO_LOOKUP_CODES',x_valid);
10420 IF NOT x_valid THEN
10421 x_return_status := FND_API.G_RET_STS_ERROR;
10422 IF g_source = 'IMPORT' THEN
10423 IF (Insert_Rejections(
10424 'AP_SUPPLIER_SITES_INT',
10425 p_vendor_site_rec.vendor_site_interface_id,
10426 'AP_INVALID_PAY_GROUP',
10427 g_user_id,
10428 g_login_id,
10429 'Validate_Vendor_Site') <> TRUE) THEN
10430 --
10431 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10432 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10433 l_api_name,'Parameters: '
10434 ||' Vendor_Site_Interface_Id: '
10435 ||p_vendor_site_rec.vendor_site_interface_id
10436 ||' ,Pay_Group_Lookup_Code '
10437 ||p_vendor_site_rec.pay_group_lookup_code);
10438 END IF;
10439 END IF;
10440 ELSE
10441 -- Bug 5491139 hkaniven start --
10442 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PAY_GROUP');
10443 FND_MSG_PUB.ADD;
10444 -- Bug 5491139 hkaniven end --
10445 END IF;
10446 END IF;
10447 END IF;
10448
10449 ------------------------------------------------------------------------
10450 l_debug_info := 'Call to Validate terms_date_basis';
10451 ------------------------------------------------------------------------
10452 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10453 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
10454 l_api_name,l_debug_info);
10455 END IF;
10456 --
10457 -- Validate terms_date_basis
10458 --
10459 IF p_vendor_site_rec.terms_date_basis is NOT NULL THEN
10460
10461 Validate_Lookups( 'TERMS_DATE_BASIS',p_vendor_site_rec.terms_date_basis,'TERMS DATE BASIS',
10462 'AP_LOOKUP_CODES',x_valid);
10463 IF NOT x_valid THEN
10464 x_return_status := FND_API.G_RET_STS_ERROR;
10465 IF g_source = 'IMPORT' THEN
10466 IF (Insert_Rejections(
10467 'AP_SUPPLIER_SITES_INT',
10468 p_vendor_site_rec.vendor_site_interface_id,
10469 'AP_INVALID_TERMS_DATE',
10470 g_user_id,
10471 g_login_id,
10472 'Validate_Vendor_Site') <> TRUE) THEN
10473 --
10474 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10475 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10476 l_api_name,'Parameters: '
10477 ||' Vendor_Site_Interface_Id: '
10478 ||p_vendor_site_rec.vendor_site_interface_id
10479 ||' ,Terms_Date_Basis '
10480 ||p_vendor_site_rec.terms_date_basis);
10481 END IF;
10482 END IF;
10483 ELSE
10484 -- Bug 5491139 hkaniven start --
10485 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_TERMS_DATE');
10486 FND_MSG_PUB.ADD;
10487 -- Bug 5491139 hkaniven end --
10488 END IF;
10489 END IF;
10490 END IF;
10491
10492
10493 ------------------------------------------------------------------------
10494 l_debug_info := 'Call to Validate create_debit_memo_flag';
10495 ------------------------------------------------------------------------
10496 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10497 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
10498 l_api_name,l_debug_info);
10499 END IF;
10500 --
10501 -- Validate create_debit_memo_flag
10502 --
10503 IF p_vendor_site_rec.create_debit_memo_flag is NOT NULL THEN
10504
10505 Validate_Lookups( 'CREATE_DEBIT_MEMO_FLAG',
10506 p_vendor_site_rec.create_debit_memo_flag ,'YES/NO',
10507 'PO_LOOKUP_CODES',x_valid);
10508 IF NOT x_valid THEN
10509 x_return_status := FND_API.G_RET_STS_ERROR;
10510 IF g_source = 'IMPORT' THEN
10511 IF (Insert_Rejections(
10512 'AP_SUPPLIER_SITES_INT',
10513 p_vendor_site_rec.vendor_site_interface_id,
10514 'AP_INVALID_DEBIT_MEMO',
10515 g_user_id,
10516 g_login_id,
10517 'Validate_Vendor_Site') <> TRUE) THEN
10518 --
10519 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10520 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10521 l_api_name,'Parameters: '
10522 ||' Vendor_Site_Interface_Id: '
10523 ||p_vendor_site_rec.vendor_site_interface_id
10524 ||' ,Create_Debit_Memo_Flag '
10525 ||p_vendor_site_rec.create_debit_memo_flag);
10526 END IF;
10527 END IF;
10528 ELSE
10529 -- Bug 5491139 hkaniven start --
10530 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_DEBIT_MEMO');
10531 FND_MSG_PUB.ADD;
10532 -- Bug 5491139 hkaniven end --
10533 END IF;
10534 END IF;
10535 END IF;
10536
10537 ------------------------------------------------------------------------
10538 l_debug_info := 'Call to Validate exclude_freight_from_discount';
10539 ------------------------------------------------------------------------
10540 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10541 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
10542 l_api_name,l_debug_info);
10543 END IF;
10544 --
10545 -- Validate exclude_freight_from_discount
10546 --
10547 IF p_vendor_site_rec.exclude_freight_from_discount is NOT NULL THEN
10548
10549 Validate_Lookups( 'EXCLUDE_FREIGHT_FROM_DISCOUNT',
10550 p_vendor_site_rec.exclude_freight_from_discount ,'YES/NO',
10551 'PO_LOOKUP_CODES',x_valid);
10552 IF NOT x_valid THEN
10553 x_return_status := FND_API.G_RET_STS_ERROR;
10554 IF g_source = 'IMPORT' THEN
10555 IF (Insert_Rejections(
10556 'AP_SUPPLIER_SITES_INT',
10557 p_vendor_site_rec.vendor_site_interface_id,
10558 'AP_INVALID_EXC_FR_DISC',
10559 g_user_id,
10560 g_login_id,
10561 'Validate_Vendor_Site') <> TRUE) THEN
10562 --
10563 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10564 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10565 l_api_name,'Parameters: '
10566 ||' Vendor_Site_Interface_Id: '
10567 ||p_vendor_site_rec.vendor_site_interface_id
10568 ||' ,Exclude_Freight_From_Discount '
10569 ||p_vendor_site_rec.exclude_freight_from_discount);
10570 END IF;
10571 END IF;
10572 ELSE
10573 -- Bug 5491139 hkaniven start --
10574 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_EXC_FR_DISC');
10575 FND_MSG_PUB.ADD;
10576 -- Bug 5491139 hkaniven end --
10577 END IF;
10578 END IF;
10579 END IF;
10580
10581
10582 ------------------------------------------------------------------------
10583 l_debug_info := 'Call to Validate hold_future_payments_flag';
10584 ------------------------------------------------------------------------
10585 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10586 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
10587 l_api_name,l_debug_info);
10588 END IF;
10589 --
10590 -- Validate hold_future_payments_flag
10591 --
10592 IF p_vendor_site_rec.hold_future_payments_flag is NOT NULL THEN
10593
10594 Validate_Lookups('HOLD_FUTURE_PAYMENTS_FLAG', p_vendor_site_rec.hold_future_payments_flag,'YES/NO',
10595 'PO_LOOKUP_CODES', x_valid);
10596 IF NOT x_valid THEN
10597 x_return_status := FND_API.G_RET_STS_ERROR;
10598 IF g_source = 'IMPORT' THEN
10599 IF (Insert_Rejections(
10600 'AP_SUPPLIER_SITES_INT',
10601 p_vendor_site_rec.vendor_site_interface_id,
10602 'AP_INVALID_HOLD_FUT_PAY',
10603 g_user_id,
10604 g_login_id,
10605 'Validate_Vendor_Site') <> TRUE) THEN
10606 --
10607 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10608 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10609 l_api_name,'Parameters: '
10610 ||' Vendor_Site_Interface_Id: '
10611 ||p_vendor_site_rec.vendor_site_interface_id
10612 ||' ,Hold_Future_Payments_Flag '
10613 ||p_vendor_site_rec.hold_future_payments_flag);
10614 END IF;
10615 END IF;
10616 ELSE
10617 -- Bug 5491139 hkaniven start --
10618 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_HOLD_FUT_PAY');
10619 FND_MSG_PUB.ADD;
10620 -- Bug 5491139 hkaniven end --
10621 END IF;
10622 END IF;
10623 END IF;
10624
10625 ------------------------------------------------------------------------
10626 l_debug_info := 'Call to Validate hold_all_payments_flag';
10627 ------------------------------------------------------------------------
10628 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10629 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
10630 l_api_name,l_debug_info);
10631 END IF;
10632 --
10633 -- Validate hold_all_payments_flag
10634 --
10635 IF p_vendor_site_rec.hold_all_payments_flag is NOT NULL THEN
10636
10637 Validate_Lookups('HOLD_ALL_PAYMENTS_FLAG', p_vendor_site_rec.hold_all_payments_flag,'YES/NO',
10638 'PO_LOOKUP_CODES', x_valid);
10639 IF NOT x_valid THEN
10640 x_return_status := FND_API.G_RET_STS_ERROR;
10641 IF g_source = 'IMPORT' THEN
10642 IF (Insert_Rejections(
10643 'AP_SUPPLIER_SITES_INT',
10644 p_vendor_site_rec.vendor_site_interface_id,
10645 'AP_INVALID_HOLD_ALL_PAY',
10646 g_user_id,
10647 g_login_id,
10648 'Validate_Vendor_Site') <> TRUE) THEN
10649 --
10650 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10651 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10652 l_api_name,'Parameters: '
10653 ||' Vendor_Site_Interface_Id: '
10654 ||p_vendor_site_rec.vendor_site_interface_id
10655 ||' ,Hold_All_Payments_Flag '
10656 ||p_vendor_site_rec.hold_all_payments_flag);
10657 END IF;
10658 END IF;
10659 ELSE
10660 -- Bug 5491139 hkaniven start --
10661 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_HOLD_ALL_PAY');
10662 FND_MSG_PUB.ADD;
10663 -- Bug 5491139 hkaniven end --
10664 END IF;
10665 END IF;
10666 END IF;
10667
10668 ------------------------------------------------------------------------
10669 l_debug_info := 'Call to Validate always_take_disc_flag';
10670 ------------------------------------------------------------------------
10671 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10672 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
10673 l_api_name,l_debug_info);
10674 END IF;
10675 --
10676 -- Validate always_take_disc_flag
10677 --
10678 IF p_vendor_site_rec.always_take_disc_flag is NOT NULL THEN
10679
10680 Validate_Lookups( 'ALWAYS_TAKE_DISC_FLAG', p_vendor_site_rec.always_take_disc_flag,'YES/NO',
10681 'PO_LOOKUP_CODES', x_valid);
10682 IF NOT x_valid THEN
10683 x_return_status := FND_API.G_RET_STS_ERROR;
10684 IF g_source = 'IMPORT' THEN
10685 IF (Insert_Rejections(
10686 'AP_SUPPLIER_SITES_INT',
10687 p_vendor_site_rec.vendor_site_interface_id,
10688 'AP_INVALID_TAKE_DISC',
10689 g_user_id,
10690 g_login_id,
10691 'Validate_Vendor_Site') <> TRUE) THEN
10692 --
10693 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10694 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10695 l_api_name,'Parameters: '
10696 ||' Vendor_Site_Interface_Id: '
10697 ||p_vendor_site_rec.vendor_site_interface_id
10698 ||' ,Always_Take_Disc_Flag '
10699 ||p_vendor_site_rec.always_take_disc_flag);
10700 END IF;
10701 END IF;
10702 ELSE
10703 -- Bug 5491139 hkaniven start --
10704 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_TAKE_DISC');
10705 FND_MSG_PUB.ADD;
10706 -- Bug 5491139 hkaniven end --
10707 END IF;
10708 END IF;
10709 END IF;
10710
10711 ------------------------------------------------------------------------
10712 l_debug_info := 'Call to Validate match_option';
10713 ------------------------------------------------------------------------
10714 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10715 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
10716 l_api_name,l_debug_info);
10717 END IF;
10718 --
10719 -- Validate match_option
10720 --
10721 IF p_vendor_site_rec.match_option is NOT NULL THEN
10722
10723 Check_Valid_Match_Option(p_vendor_site_rec.match_option,
10724 x_valid
10725 );
10726 IF NOT x_valid THEN
10727 x_return_status := FND_API.G_RET_STS_ERROR;
10728 IF g_source = 'IMPORT' THEN
10729 IF (Insert_Rejections(
10730 'AP_SUPPLIER_SITES_INT',
10731 p_vendor_site_rec.vendor_site_interface_id,
10732 'AP_INVALID_MATCH_OPTION',
10733 g_user_id,
10734 g_login_id,
10735 'Validate_Vendor_Site') <> TRUE) THEN
10736 --
10737 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10738 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10739 l_api_name,'Parameters: '
10740 ||' Vendor_Site_Interface_Id: '
10741 ||p_vendor_site_rec.vendor_site_interface_id
10742 ||' ,Match_Option '
10743 ||p_vendor_site_rec.match_option);
10744 END IF;
10745 END IF;
10746 ELSE
10747 -- Bug 5491139 hkaniven start --
10748 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_MATCH_OPTION');
10749 FND_MSG_PUB.ADD;
10750 -- Bug 5491139 hkaniven end --
10751 END IF;
10752 END IF;
10753 END IF;
10754
10755 ------------------------------------------------------------------------
10756 l_debug_info := 'Call to Validate allow_awt_flag';
10757 ------------------------------------------------------------------------
10758 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10759 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
10760 l_api_name,l_debug_info);
10761 END IF;
10762 --
10763 -- Validate allow_awt_flag
10764 --
10765 IF p_vendor_site_rec.allow_awt_flag is NOT NULL THEN
10766
10767 Chk_allow_awt_flag(p_vendor_site_rec.allow_awt_flag,
10768 p_vendor_site_rec.org_id,
10769 x_valid
10770 );
10771 IF NOT x_valid THEN
10772 x_return_status := FND_API.G_RET_STS_ERROR;
10773 IF g_source = 'IMPORT' THEN
10774 IF (Insert_Rejections(
10775 'AP_SUPPLIER_SITES_INT',
10776 p_vendor_site_rec.vendor_site_interface_id,
10777 'AP_INVALID_ALLOW_AWT',
10778 g_user_id,
10779 g_login_id,
10780 'Validate_Vendor_Site') <> TRUE) THEN
10781 --
10782 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10783 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10784 l_api_name,'Parameters: '
10785 ||' Vendor_Site_Interface_Id: '
10786 ||p_vendor_site_rec.vendor_site_interface_id
10787 ||' ,Allow_Awt_Flag '
10788 ||p_vendor_site_rec.allow_awt_flag);
10789 END IF;
10790 END IF;
10791 ELSE
10792 -- Bug 5491139 hkaniven start --
10793 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_ALLOW_AWT');
10794 FND_MSG_PUB.ADD;
10795 -- Bug 5491139 hkaniven end --
10796 END IF;
10797 END IF;
10798 END IF;
10799
10800 ------------------------------------------------------------------------
10801 l_debug_info := 'Call to Validate awt_group_id and awt_group_name';
10802 ------------------------------------------------------------------------
10803 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10804 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
10805 l_api_name,l_debug_info);
10806 END IF;
10807 --
10808 -- Validate awt_group_id and awt_group_name
10809 --
10810 --Bug6317600 Added conditions to resolve the null case for AWT
10811 --Do not call the AWT validation if AWT_FLAG is not 'Y'
10812 IF ((p_vendor_site_rec.awt_group_id is NOT NULL AND
10813 p_vendor_site_rec.awt_group_id <> ap_null_num)
10814 or (p_vendor_site_rec.awt_group_name is NOT NULL AND
10815 p_vendor_site_rec.awt_group_name <> ap_null_char)) AND
10816 (p_vendor_site_rec.allow_awt_flag = 'Y') THEN
10817
10818 Chk_awt_grp_id_name(p_vendor_site_rec.awt_group_id,
10819 p_vendor_site_rec.awt_group_name,
10820 p_vendor_site_rec.allow_awt_flag,
10821 x_valid
10822 );
10823 IF NOT x_valid THEN
10824 x_return_status := FND_API.G_RET_STS_ERROR;
10825 IF g_source = 'IMPORT' THEN
10826 IF (Insert_Rejections(
10827 'AP_SUPPLIER_SITES_INT',
10828 p_vendor_site_rec.vendor_site_interface_id,
10829 'AP_INCONSISTENT_AWT_GROUP',
10830 g_user_id,
10831 g_login_id,
10832 'Validate_Vendor_Site') <> TRUE) THEN
10833 --
10834 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10835 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10836 l_api_name,'Parameters: '
10837 ||' Vendor_Site_Interface_Id: '
10838 ||p_vendor_site_rec.vendor_site_interface_id
10839 ||' ,Allow_Awt_Flag '
10840 ||p_vendor_site_rec.allow_awt_flag
10841 ||' , Awt_Group_Id: '||p_vendor_site_rec.awt_group_id
10842 ||' ,Awt_Group_Name: '||p_vendor_site_rec.awt_group_name);
10843 END IF;
10844 END IF;
10845 ELSE
10846 -- Bug 5491139 hkaniven start --
10847 FND_MESSAGE.SET_NAME('SQLAP','AP_INCONSISTENT_AWT_GROUP');
10848 FND_MSG_PUB.ADD;
10849 -- Bug 5491139 hkaniven end --
10850 END IF;
10851 END IF;
10852 END IF;
10853
10854 ------------------------------------------------------------------------
10855 l_debug_info := 'Call to Validate Distribution_set_Id and Distribution_set_name';
10856 ------------------------------------------------------------------------
10857 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10858 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
10859 l_api_name,l_debug_info);
10860 END IF;
10861
10862 -- Distribution_set_Id and Distribution_set_name validation
10863
10864 IF (p_vendor_site_rec.distribution_set_id is NOT NULL OR p_vendor_site_rec.distribution_set_name is NOT NULL
10865 OR p_vendor_site_rec.default_dist_set_id is NOT NULL) THEN
10866
10867 Check_dist_set_id_name(p_vendor_site_rec.distribution_set_id,
10868 p_vendor_site_rec.distribution_set_name,
10869 p_vendor_site_rec.default_dist_set_id,
10870 x_valid);
10871 IF NOT x_valid THEN
10872 x_return_status := FND_API.G_RET_STS_ERROR;
10873 IF g_source = 'IMPORT' THEN
10874 IF (Insert_Rejections(
10875 'AP_SUPPLIER_SITES_INT',
10876 p_vendor_site_rec.vendor_site_interface_id,
10877 'AP_INCONSISTENT_DIST_SET',
10878 g_user_id,
10879 g_login_id,
10880 'Validate_Vendor_Site') <> TRUE) THEN
10881 --
10882 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10883 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10884 l_api_name,'Parameters: '
10885 ||' Vendor_Site_Interface_Id: '
10886 ||p_vendor_site_rec.vendor_site_interface_id
10887 ||' ,Distribution_Set_Id '
10888 ||p_vendor_site_rec.distribution_set_id
10889 ||' , Distribution_Set_Name: '
10890 ||p_vendor_site_rec.distribution_set_name
10891 ||' ,Default_Dist_Set_Id: '
10892 ||p_vendor_site_rec.default_dist_set_id);
10893 END IF;
10894 END IF;
10895 ELSE
10896 -- Bug 5491139 hkaniven start --
10897 FND_MESSAGE.SET_NAME('SQLAP','AP_INCONSISTENT_DIST_SET');
10898 FND_MSG_PUB.ADD;
10899 -- Bug 5491139 hkaniven end --
10900 END IF;
10901 END IF;
10902 END IF;
10903
10904 ------------------------------------------------------------------------
10905 l_debug_info := 'Call to Validate Ship_to_location_Id and Ship_to_location_code`';
10906 ------------------------------------------------------------------------
10907 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10908 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
10909 l_api_name,l_debug_info);
10910 END IF;
10911
10912 -- Ship_to_location_Id and Ship_to_location_code validation
10913
10914 IF (p_vendor_site_rec.ship_to_location_id is NOT NULL OR p_vendor_site_rec.ship_to_location_code is NOT NULL
10915 OR p_vendor_site_rec.default_ship_to_loc_id is NOT NULL) THEN
10916
10917 Check_ship_locn_id_code(p_vendor_site_rec.ship_to_location_id,
10918 p_vendor_site_rec.ship_to_location_code,
10919 p_vendor_site_rec.default_ship_to_loc_id,
10920 x_valid);
10921 IF NOT x_valid THEN
10922 x_return_status := FND_API.G_RET_STS_ERROR;
10923 IF g_source = 'IMPORT' THEN
10924 IF (Insert_Rejections(
10925 'AP_SUPPLIER_SITES_INT',
10926 p_vendor_site_rec.vendor_site_interface_id,
10927 'AP_INCONSISTENT_SHIP_LOC',
10928 g_user_id,
10929 g_login_id,
10930 'Validate_Vendor_Site') <> TRUE) THEN
10931 --
10932 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10933 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10934 l_api_name,'Parameters: '
10935 ||' Vendor_Site_Interface_Id: '
10936 ||p_vendor_site_rec.vendor_site_interface_id
10937 ||' ,Ship_To_Location_Id '
10938 ||p_vendor_site_rec.ship_to_location_id
10939 ||' , Ship_To_Location_Code '
10940 ||p_vendor_site_rec.ship_to_location_code
10941 ||' ,Default_ship_to_loc_Id: '
10942 ||p_vendor_site_rec.default_ship_to_loc_id);
10943 END IF;
10944 END IF;
10945 ELSE
10946 -- Bug 5491139 hkaniven start --
10947 FND_MESSAGE.SET_NAME('SQLAP','AP_INCONSISTENT_SHIP_LOC');
10948 FND_MSG_PUB.ADD;
10949 -- Bug 5491139 hkaniven end --
10950 END IF;
10951 END IF;
10952 END IF;
10953
10954 ------------------------------------------------------------------------
10955 l_debug_info := 'Call to Validate Bill_to_location_Id and Bill_to_location_code';
10956 ------------------------------------------------------------------------
10957 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10958 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
10959 l_api_name,l_debug_info);
10960 END IF;
10961
10962 -- Bill_to_location_Id and Bill_to_location_code validation
10963
10964 IF (p_vendor_site_rec.bill_to_location_id is NOT NULL OR p_vendor_site_rec.bill_to_location_code is NOT NULL
10965 OR p_vendor_site_rec.default_bill_to_loc_id is NOT NULL) THEN
10966
10967 Check_bill_locn_id_code(p_vendor_site_rec.bill_to_location_id,
10968 p_vendor_site_rec.bill_to_location_code,
10969 p_vendor_site_rec.default_bill_to_loc_id,
10970 x_valid);
10971 IF NOT x_valid THEN
10972 x_return_status := FND_API.G_RET_STS_ERROR;
10973 IF g_source = 'IMPORT' THEN
10974 IF (Insert_Rejections(
10975 'AP_SUPPLIER_SITES_INT',
10976 p_vendor_site_rec.vendor_site_interface_id,
10977 'AP_INCONSISTENT_BILL_LOC',
10978 g_user_id,
10979 g_login_id,
10980 'Validate_Vendor_Site') <> TRUE) THEN
10981 --
10982 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10983 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10984 l_api_name,'Parameters: '
10985 ||' Vendor_Site_Interface_Id: '
10986 ||p_vendor_site_rec.vendor_site_interface_id
10987 ||' ,Bill_To_Location_Id '
10988 ||p_vendor_site_rec.bill_to_location_id
10989 ||' , Bill_To_Location_Code '
10990 ||p_vendor_site_rec.bill_to_location_code
10991 ||' ,Default_bill_to_loc_Id: '
10992 ||p_vendor_site_rec.default_bill_to_loc_id);
10993 END IF;
10994 END IF;
10995 ELSE
10996 -- Bug 5491139 hkaniven start --
10997 FND_MESSAGE.SET_NAME('SQLAP','AP_INCONSISTENT_BILL_LOC');
10998 FND_MSG_PUB.ADD;
10999 -- Bug 5491139 hkaniven end --
11000 END IF;
11001 END IF;
11002 END IF;
11003
11004 ------------------------------------------------------------------------
11005 l_debug_info := 'Call to Validate supplier_notification_method';
11006 ------------------------------------------------------------------------
11007 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
11008 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
11009 l_api_name,l_debug_info);
11010 END IF;
11011 --
11012 -- Validate supplier_notification_method
11013 --
11014 IF p_vendor_site_rec.supplier_notif_method is NOT NULL THEN
11015
11016 Check_Valid_Sup_Notif_Method(p_vendor_site_rec.supplier_notif_method,
11017 x_valid
11018 );
11019 IF NOT x_valid THEN
11020 x_return_status := FND_API.G_RET_STS_ERROR;
11021 IF g_source = 'IMPORT' THEN
11022 IF (Insert_Rejections(
11023 'AP_SUPPLIER_SITES_INT',
11024 p_vendor_site_rec.vendor_site_interface_id,
11025 'AP_INVALID_NOTIF_METHOD',
11026 g_user_id,
11027 g_login_id,
11028 'Validate_Vendor_Site') <> TRUE) THEN
11029 --
11030 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11031 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
11032 l_api_name,'Parameters: '
11033 ||' Vendor_Site_Interface_Id: '
11034 ||p_vendor_site_rec.vendor_site_interface_id
11035 ||' ,Supplier_Notif_Method: '
11036 ||p_vendor_site_rec.supplier_notif_method);
11037 END IF;
11038 END IF;
11039 ELSE
11040 -- Bug 5491139 hkaniven start --
11041 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_NOTIF_METHOD');
11042 FND_MSG_PUB.ADD;
11043 -- Bug 5491139 hkaniven end --
11044 END IF;
11045 END IF;
11046 END IF;
11047
11048 ------------------------------------------------------------------------
11049 l_debug_info := 'Checking Tolerance_Id / Name information';
11050 ------------------------------------------------------------------------
11051 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
11052 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
11053 l_api_name,l_debug_info);
11054 END IF;
11055 --bug6335105
11056 /*IF (p_vendor_site_rec.tolerance_name is NOT NULL
11057 OR p_vendor_site_rec.tolerance_id is NOT NULL) THEN*/
11058
11059 l_tolerance_type := 'QUANTITY';
11060
11061 Check_tolerance_id_code(p_vendor_site_rec.tolerance_id,
11062 p_vendor_site_rec.tolerance_name,
11063 p_vendor_site_rec.org_id,
11064 p_vendor_site_rec.org_name,
11065 x_valid,
11066 l_tolerance_type
11067 );
11068 IF NOT x_valid THEN
11069 x_return_status := FND_API.G_RET_STS_ERROR;
11070 IF g_source = 'IMPORT' THEN
11071 IF (Insert_Rejections(
11072 'AP_SUPPLIER_SITES_INT',
11073 p_vendor_site_rec.vendor_site_interface_id,
11074 'AP_INCONSISTENT_TOLERANCE',
11075 g_user_id,
11076 g_login_id,
11077 'Validate_Vendor_Site') <> TRUE) THEN
11078 --
11079 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11080 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
11081 l_api_name,'Parameters: '
11082 ||' Vendor_Site_Interface_Id: '
11083 ||p_vendor_site_rec.vendor_site_interface_id
11084 ||' ,Toleranace_Id: '
11085 ||p_vendor_site_rec.tolerance_id
11086 ||' ,Tolerance_Name: '||p_vendor_site_rec.tolerance_name);
11087 END IF;
11088 END IF;
11089 ELSE
11090 -- Bug 5491139 hkaniven start --
11091 FND_MESSAGE.SET_NAME('SQLAP','AP_INCONSISTENT_TOLERANCE');
11092 FND_MSG_PUB.ADD;
11093 -- Bug 5491139 hkaniven end --
11094 END IF;
11095 END IF;
11096 --END IF;
11097
11098 ------------------------------------------------------------------------
11099 l_debug_info := 'Checking Services Tolerance_Id / Name information';
11100 ------------------------------------------------------------------------
11101 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
11102 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
11103 l_api_name,l_debug_info);
11104 END IF;
11105 --bug6335105
11106 /*IF (p_vendor_site_rec.services_tolerance_name is NOT NULL
11107 OR p_vendor_site_rec.services_tolerance_id is NOT NULL) THEN*/
11108
11109 l_tolerance_type := 'SERVICE';
11110
11111 Check_tolerance_id_code(p_vendor_site_rec.services_tolerance_id,
11112 p_vendor_site_rec.services_tolerance_name,
11113 p_vendor_site_rec.org_id,
11114 p_vendor_site_rec.org_name,
11115 x_valid,
11116 l_tolerance_type
11117 );
11118 IF NOT x_valid THEN
11119 x_return_status := FND_API.G_RET_STS_ERROR;
11120 IF g_source = 'IMPORT' THEN
11121 IF (Insert_Rejections(
11122 'AP_SUPPLIER_SITES_INT',
11123 p_vendor_site_rec.vendor_site_interface_id,
11124 'AP_INCONSISTENT_SERVICE_TOL',
11125 g_user_id,
11126 g_login_id,
11127 'Validate_Vendor_Site') <> TRUE) THEN
11128 --
11129 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11130 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
11131 l_api_name,'Parameters: '
11132 ||' Vendor_Site_Interface_Id: '
11133 ||p_vendor_site_rec.vendor_site_interface_id
11134 ||' ,Toleranace_Id: '
11135 ||p_vendor_site_rec.services_tolerance_id
11136 ||' ,Tolerance_Name: '||p_vendor_site_rec.services_tolerance_name);
11137 END IF;
11138 END IF;
11139 ELSE
11140 -- Bug 5491139 hkaniven start --
11141 FND_MESSAGE.SET_NAME('SQLAP','AP_INCONSIS_SERVICE_TOL');
11142 FND_MSG_PUB.ADD;
11143 -- Bug 5491139 hkaniven end --
11144 END IF;
11145 END IF;
11146 --END IF;
11147
11148
11149 ------------------------------------------------------------------------
11150 l_debug_info := 'Call to Validate retainage_rate';
11151 ------------------------------------------------------------------------
11152 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
11153 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
11154 l_api_name,l_debug_info);
11155 END IF;
11156
11157 IF p_vendor_site_rec.retainage_rate is NOT NULL THEN
11158
11159 IF NOT (p_vendor_site_rec.retainage_rate < 0 OR
11160 p_vendor_site_rec.retainage_rate > 100) THEN
11161
11162 x_return_status := FND_API.G_RET_STS_ERROR;
11163 IF g_source = 'IMPORT' THEN
11164 IF (Insert_Rejections(
11165 'AP_SUPPLIER_SITES_INT',
11166 p_vendor_site_rec.vendor_site_interface_id,
11167 'AP_INVALID_RETAINAGE_RATE',
11168 g_user_id,
11169 g_login_id,
11170 'Validate_Vendor_Site') <> TRUE) THEN
11171 --
11172 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11173 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
11174 l_api_name,'Parameters: '
11175 ||' Vendor_Site_Interface_Id: '
11176 ||p_vendor_site_rec.vendor_site_interface_id
11177 ||' ,Retainage_Rate '
11178 ||p_vendor_site_rec.retainage_rate);
11179 END IF;
11180 END IF;
11181 ELSE
11182 -- Bug 5491139 hkaniven start --
11183 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_RETAINAGE_RATE');
11184 FND_MSG_PUB.ADD;
11185 -- Bug 5491139 hkaniven end --
11186 END IF;
11187 END IF;
11188 END IF;
11189
11190 ------------------------------------------------------------------------
11191 l_debug_info := 'Call to Validate ship_via_lookup_code';
11192 ------------------------------------------------------------------------
11193 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
11194 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
11195 l_api_name,l_debug_info);
11196 END IF;
11197 --
11198 -- Validate ship_via_lookup_code
11199 --
11200 IF p_vendor_site_rec.ship_via_lookup_code is NOT NULL THEN
11201
11202 Check_Site_Ship_Via(p_vendor_site_rec.ship_via_lookup_code,
11203 p_vendor_site_rec.org_id,
11204 x_valid
11205 );
11206 IF NOT x_valid THEN
11207 x_return_status := FND_API.G_RET_STS_ERROR;
11208 IF g_source = 'IMPORT' THEN
11209 IF (Insert_Rejections(
11210 'AP_SUPPLIER_SITES_INT',
11211 p_vendor_site_rec.vendor_site_interface_id,
11212 'AP_INVALID_SHIP_VIA',
11213 g_user_id,
11214 g_login_id,
11215 'Validate_Vendor_Site') <> TRUE) THEN
11216 --
11217 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11218 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
11219 l_api_name,'Parameters: '
11220 ||' Vendor_Site_Interface_Id: '
11221 ||p_vendor_site_rec.vendor_site_interface_id
11222 ||' ,Ship_Via_Lookup_Code: '
11223 ||p_vendor_site_rec.ship_via_lookup_code);
11224 END IF;
11225 END IF;
11226 ELSE
11227 -- Bug 5491139 hkaniven start --
11228 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_SHIP_VIA');
11229 FND_MSG_PUB.ADD;
11230 -- Bug 5491139 hkaniven end --
11231 END IF;
11232 END IF;
11233 END IF;
11234
11235 ------------------------------------------------------------------------
11236 l_debug_info := 'Call to Validate tax_reporting_site_flag';
11237 ------------------------------------------------------------------------
11238 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
11239 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
11240 l_api_name,l_debug_info);
11241 END IF;
11242 --
11243 -- Validate tax_reporting_site_flag
11244 --
11245 IF p_vendor_site_rec.tax_reporting_site_flag = 'Y' THEN
11246
11247 Validate_unique_per_vendor('TAX_REPORTING_SITE_FLAG',
11248 p_vendor_site_rec.vendor_id,
11249 p_vendor_site_rec.vendor_site_id,
11250 p_vendor_site_rec.org_id,
11251 p_vendor_site_rec.org_name,
11252 x_valid
11253 );
11254 IF NOT x_valid THEN
11255 x_return_status := FND_API.G_RET_STS_ERROR;
11256 IF g_source = 'IMPORT' THEN
11257 IF (Insert_Rejections(
11258 'AP_SUPPLIER_SITES_INT',
11259 p_vendor_site_rec.vendor_site_interface_id,
11260 'AP_DUPLICATE_TAX_RS',
11261 g_user_id,
11262 g_login_id,
11263 'Validate_Vendor_Site') <> TRUE) THEN
11264 --
11265 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11266 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
11267 l_api_name,'Parameters: '
11268 ||' Vendor_Site_Interface_Id: '
11269 ||p_vendor_site_rec.vendor_site_interface_id
11270 ||' Vendor_Id: '||p_vendor_site_rec.vendor_id
11271 ||' Vendor_Site_Id: '||p_vendor_site_rec.vendor_site_id
11272 ||' Org_Id: '||p_vendor_site_rec.org_id
11273 ||' Org_Name: '||p_vendor_site_rec.org_name
11274 ||' ,Tax_Reporting_Site_Flag: '
11275 ||p_vendor_site_rec.tax_reporting_site_flag);
11276 END IF;
11277 END IF;
11278 ELSE
11279 -- Bug 5491139 hkaniven start --
11280 FND_MESSAGE.SET_NAME('SQLAP','AP_DUPLICATE_TAX_RS');
11281 FND_MSG_PUB.ADD;
11282 -- Bug 5491139 hkaniven end --
11283 END IF;
11284 END IF;
11285 END IF;
11286
11287 IF p_vendor_site_rec.gapless_inv_num_flag is NOT NULL
11288 AND p_vendor_site_rec.gapless_inv_num_flag <>
11289 ap_null_char THEN
11290
11291 Check_Gapless_Inv_Num
11292 (p_vendor_site_rec.gapless_inv_num_flag,
11293 p_vendor_site_rec.selling_company_identifier,
11294 p_vendor_site_rec.vendor_id,--Bug5260465
11295 x_valid);
11296
11297 IF NOT x_valid THEN
11298 x_return_status := FND_API.G_RET_STS_ERROR;
11299 IF g_source = 'IMPORT' THEN
11300 IF (Insert_Rejections(
11301 'AP_SUPPLIER_SITES_INT',
11302 p_vendor_site_rec.vendor_site_interface_id,
11303 'AP_INVALID_SHIPPING_CONTROL',
11304 g_user_id,
11305 g_login_id,
11306 'Validate_Vendor_Site') <> TRUE) THEN
11307 --
11308 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL)
11309 THEN
11310 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
11311 l_api_name,'Parameters: '
11312 ||' Vendor_Site_Interface_Id: '
11313 ||p_vendor_site_rec.vendor_site_interface_id
11314 ||' Gapless Invoice Num Flag: '
11315 ||p_vendor_site_rec.gapless_inv_num_flag
11316 ||' Selling Company Identifier: '
11317 ||p_vendor_site_rec.selling_company_identifier);
11318 END IF;
11319 END IF;
11320 ELSE
11321 -- Bug 5491139 hkaniven start --
11322 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_SHIPPING_CONTROL');
11323 FND_MSG_PUB.ADD;
11324 -- Bug 5491139 hkaniven end --
11325 END IF;
11326 END IF;
11327 END IF;
11328
11329
11330 END IF; -- not ISETUP
11331 END IF; --p_mode
11332
11333 -- End of API body.
11334
11335 -- Standard check of p_commit.
11336 IF FND_API.To_Boolean( p_commit ) THEN
11337 COMMIT WORK;
11338 END IF;
11339
11340 -- Standard call to get message count and if count is 1,
11341 -- get message info.
11342 FND_MSG_PUB.Count_And_Get(
11343 p_count => x_msg_count ,
11344 p_data => x_msg_data
11345 );
11346
11347 EXCEPTION
11348 WHEN FND_API.G_EXC_ERROR THEN
11349 ROLLBACK TO Validate_Vendor_Site_PUB;
11350 x_return_status := FND_API.G_RET_STS_ERROR ;
11351 FND_MSG_PUB.Count_And_Get
11352 ( p_count => x_msg_count,
11353 p_data => x_msg_data
11354 );
11355 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
11356 ROLLBACK TO Validate_Vendor_Site_PUB;
11357 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
11358 FND_MSG_PUB.Count_And_Get
11359 ( p_count => x_msg_count,
11360 p_data => x_msg_data
11361 );
11362 WHEN OTHERS THEN
11363 ROLLBACK TO Validate_Vendor_Site_PUB;
11364 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
11365 IF FND_MSG_PUB.Check_Msg_Level
11366 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
11367 FND_MSG_PUB.Add_Exc_Msg
11368 ( G_PKG_NAME ,
11369 l_api_name
11370 );
11371 END IF;
11372 FND_MSG_PUB.Count_And_Get
11373 ( p_count => x_msg_count,
11374 p_data => x_msg_data
11375 );
11376 END Validate_Vendor_Site;
11377
11378 PROCEDURE Create_Vendor_Contact
11379 ( p_api_version IN NUMBER,
11380 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
11381 p_commit IN VARCHAR2 := FND_API.G_FALSE,
11382 p_validation_level IN NUMBER :=
11383 FND_API.G_VALID_LEVEL_FULL,
11384 x_return_status OUT NOCOPY VARCHAR2 ,
11385 x_msg_count OUT NOCOPY NUMBER,
11386 x_msg_data OUT NOCOPY VARCHAR2,
11387 p_vendor_contact_rec IN r_vendor_contact_rec_type,
11388 x_vendor_contact_id OUT NOCOPY NUMBER,
11389 x_per_party_id OUT NOCOPY NUMBER,
11390 x_rel_party_id OUT NOCOPY NUMBER,
11391 x_rel_id OUT NOCOPY NUMBER,
11392 x_org_contact_id OUT NOCOPY NUMBER,
11393 x_party_site_id OUT NOCOPY NUMBER
11394 )
11395 IS
11396
11397
11398 l_api_name CONSTANT VARCHAR2(30) := 'Create_Vendor_Contact';
11399 l_api_version CONSTANT NUMBER := 1.0;
11400
11401 l_def_org_id NUMBER;
11402 l_vendor_contact_rec r_vendor_contact_rec_type;
11403 l_party_rec HZ_PARTY_V2PUB.party_rec_type;
11404 l_per_rec HZ_PARTY_V2PUB.person_rec_type;
11405 l_rel_rec HZ_RELATIONSHIP_V2PUB.relationship_rec_type;
11406 l_org_contact_rec HZ_PARTY_CONTACT_V2PUB.org_contact_rec_type;
11407 l_party_site_rec HZ_PARTY_SITE_V2PUB.party_site_rec_type;
11408 l_contact_point_rec HZ_CONTACT_POINT_V2PUB.contact_point_rec_type;
11409 l_email_rec HZ_CONTACT_POINT_V2PUB.email_rec_type;
11410 l_phone_rec HZ_CONTACT_POINT_V2PUB.phone_rec_type;
11411 l_alt_phone_rec HZ_CONTACT_POINT_V2PUB.phone_rec_type;
11412 l_fax_rec HZ_CONTACT_POINT_V2PUB.phone_rec_type;
11413 l_url_rec HZ_CONTACT_POINT_V2PUB.web_rec_type;
11414 l_party_usg_rec HZ_PARTY_USG_ASSIGNMENT_PVT.party_usg_assignment_rec_type;
11415
11416 l_user_id number := FND_GLOBAL.USER_ID;
11417 l_last_update_login number := FND_GLOBAL.LOGIN_ID;
11418 l_program_application_id number := FND_GLOBAL.prog_appl_id;
11419 l_program_id number := FND_GLOBAL.conc_program_id;
11420 l_request_id number := FND_GLOBAL.conc_request_id;
11421
11422 l_val_return_status VARCHAR2(50);
11423 l_val_msg_count NUMBER;
11424 l_val_msg_data VARCHAR2(1000);
11425 l_party_site_valid VARCHAR2(1);
11426 l_rel_party_valid VARCHAR2(1);
11427 l_per_party_valid VARCHAR2(1);
11428 l_rel_valid VARCHAR2(1);
11429 l_org_party_valid VARCHAR2(1);
11430 l_location_valid VARCHAR2(1);
11431 l_org_contact_valid VARCHAR2(1);
11432 l_per_return_status VARCHAR2(50);
11433 l_per_msg_count NUMBER;
11434 l_per_msg_data VARCHAR2(1000);
11435 l_per_party_id NUMBER;
11436 l_per_party_number VARCHAR2(30);
11437 l_per_profile_id NUMBER;
11438 l_org_contact_return_status VARCHAR2(50);
11439 l_org_contact_msg_count NUMBER;
11440 l_org_contact_msg_data VARCHAR2(1000);
11441 l_org_contact_id NUMBER;
11442 l_rel_party_id NUMBER;
11443 l_rel_party_number VARCHAR2(30);
11444 l_site_return_status VARCHAR2(50);
11445 l_site_msg_count NUMBER;
11446 l_site_msg_data VARCHAR2(1000);
11447 l_party_site_id NUMBER;
11448 l_phone_return_status VARCHAR2(50);
11449 l_phone_msg_count NUMBER;
11450 l_phone_msg_data VARCHAR2(1000);
11451 l_phone_contact_point_id NUMBER;
11452 l_alt_phone_return_status VARCHAR2(50);
11453 l_alt_phone_msg_count NUMBER;
11454 l_alt_phone_msg_data VARCHAR2(1000);
11455 l_alt_phone_contact_point_id NUMBER;
11456 l_fax_return_status VARCHAR2(50);
11457 l_fax_msg_count NUMBER;
11458 l_fax_msg_data VARCHAR2(1000);
11459 l_fax_contact_point_id NUMBER;
11460 l_email_return_status VARCHAR2(50);
11461 l_email_msg_count NUMBER;
11462 l_email_msg_data VARCHAR2(1000);
11463 l_email_contact_point_id NUMBER;
11464 l_url_return_status VARCHAR2(50);
11465 l_url_msg_count NUMBER;
11466 l_url_msg_data VARCHAR2(1000);
11467 l_url_contact_point_id NUMBER;
11468
11469 l_org_party_id NUMBER;
11470 l_location_id NUMBER;
11471 l_rel_id NUMBER;
11472 l_party_id NUMBER;
11473 l_party_number VARCHAR2(30);
11474 l_party_site_number VARCHAR2(30);
11475 l_party_num VARCHAR2(1);
11476 l_debug_info VARCHAR2(500); -- Bug 6823885
11477 l_party_site_num VARCHAR2(1); -- Bug 6823885
11478
11479 BEGIN
11480 -- Standard Start of API savepoint
11481 SAVEPOINT Create_Vendor_Contact_PUB;
11482
11483 -- Standard call to check for call compatibility.
11484 IF NOT FND_API.Compatible_API_Call ( l_api_version ,
11485 p_api_version ,
11486 l_api_name ,
11487 G_PKG_NAME )
11488 THEN
11489 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
11490 END IF;
11491
11492 -- Initialize message list if p_init_msg_list is set to TRUE.
11493 IF FND_API.to_Boolean( p_init_msg_list ) THEN
11494 FND_MSG_PUB.initialize;
11495 END IF;
11496
11497 -- Initialize API return status to success
11498 x_return_status := FND_API.G_RET_STS_SUCCESS;
11499
11500 -- API body
11501
11502 --default return stati
11503 l_val_return_status := FND_API.G_RET_STS_SUCCESS;
11504 l_per_return_status := FND_API.G_RET_STS_SUCCESS;
11505 l_org_contact_return_status := FND_API.G_RET_STS_SUCCESS;
11506 l_site_return_status := FND_API.G_RET_STS_SUCCESS;
11507 l_phone_return_status := FND_API.G_RET_STS_SUCCESS;
11508 l_alt_phone_return_status := FND_API.G_RET_STS_SUCCESS;
11509 l_fax_return_status := FND_API.G_RET_STS_SUCCESS;
11510 l_email_return_status := FND_API.G_RET_STS_SUCCESS;
11511 l_url_return_status := FND_API.G_RET_STS_SUCCESS;
11512
11513 l_vendor_contact_rec := p_vendor_contact_rec;
11514
11515 validate_vendor_contact(p_api_version => 1.0,
11516 p_init_msg_list => FND_API.G_FALSE,
11517 p_commit => FND_API.G_FALSE,
11518 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
11519 x_return_status => l_val_return_status,
11520 x_msg_count => l_val_msg_count,
11521 x_msg_data => l_val_msg_data,
11522 p_vendor_contact_rec => l_vendor_contact_rec,
11523 x_party_site_valid => l_party_site_valid ,
11524 x_rel_party_valid => l_rel_party_valid,
11525 x_per_party_valid => l_per_party_valid,
11526 x_rel_valid => l_rel_valid,
11527 x_org_contact_valid => l_org_contact_valid,
11528 x_org_party_id => l_org_party_id,
11529 x_location_id => l_location_id);
11530
11531 IF l_per_party_valid = 'N' THEN
11532 -- create new party record
11533
11534 l_per_rec.person_first_name := l_vendor_contact_rec.person_first_name;
11535 l_per_rec.person_middle_name := l_vendor_contact_rec.person_middle_name;
11536 l_per_rec.person_last_name := l_vendor_contact_rec.person_last_name;
11537 l_per_rec.person_title := l_vendor_contact_rec.person_title;
11538 l_per_rec.person_first_name_phonetic := l_vendor_contact_rec.person_first_name_phonetic;
11539 l_per_rec.person_last_name_phonetic := l_vendor_contact_rec.person_last_name_phonetic;
11540 l_per_rec.created_by_module := 'AP_SUPPLIERS_API';
11541 l_per_rec.application_id := 200;
11542
11543 -- bug 6745669 - added attribute_category
11544 l_per_rec.attribute_category := l_vendor_contact_rec.attribute_category;
11545
11546 l_per_rec.attribute1 := l_vendor_contact_rec.attribute1;
11547 l_per_rec.attribute2 := l_vendor_contact_rec.attribute2;
11548 l_per_rec.attribute3 := l_vendor_contact_rec.attribute3;
11549 l_per_rec.attribute4 := l_vendor_contact_rec.attribute4;
11550 l_per_rec.attribute5 := l_vendor_contact_rec.attribute5;
11551 l_per_rec.attribute6 := l_vendor_contact_rec.attribute6;
11552 l_per_rec.attribute7 := l_vendor_contact_rec.attribute7;
11553 l_per_rec.attribute8 := l_vendor_contact_rec.attribute8;
11554 l_per_rec.attribute9 := l_vendor_contact_rec.attribute9;
11555 l_per_rec.attribute10 := l_vendor_contact_rec.attribute10;
11556 l_per_rec.attribute11 := l_vendor_contact_rec.attribute11;
11557 l_per_rec.attribute12 := l_vendor_contact_rec.attribute12;
11558 l_per_rec.attribute13 := l_vendor_contact_rec.attribute13;
11559 l_per_rec.attribute14 := l_vendor_contact_rec.attribute14;
11560 l_per_rec.attribute15 := l_vendor_contact_rec.attribute15;
11561
11562 l_per_rec.person_pre_name_adjunct := l_vendor_contact_rec.prefix;
11563 l_per_rec.person_name_phonetic := l_vendor_contact_rec.contact_name_phonetic;
11564
11565 fnd_profile.get('HZ_GENERATE_PARTY_NUMBER', l_party_num);
11566 IF nvl(l_party_num, 'Y') = 'N' THEN
11567 SELECT HZ_PARTY_NUMBER_S.Nextval
11568 INTO l_party_rec.party_number
11569 FROM DUAL;
11570 END IF;
11571
11572 l_per_rec.party_rec := l_party_rec;
11573
11574 hz_party_v2pub.create_person(
11575 p_init_msg_list => FND_API.G_FALSE,
11576 p_person_rec => l_per_rec,
11577 p_party_usage_code => 'SUPPLIER_CONTACT',
11578 --p_commit => FND_API.G_FALSE,
11579 x_return_status => l_per_return_status,
11580 x_msg_count => l_per_msg_count,
11581 x_msg_data => l_per_msg_data,
11582 x_party_id => l_per_party_id,
11583 x_party_number => l_per_party_number,
11584 x_profile_id => l_per_profile_id);
11585 IF l_per_return_status <> FND_API.G_RET_STS_SUCCESS THEN
11586 ------------------------------------------------------------------------
11587 l_debug_info := 'After call to hz_party_v2pub.create_person';
11588 l_debug_info := l_debug_info||' Return status : '||l_per_return_status||' Error : '||l_per_msg_data;
11589 ------------------------------------------------------------------------
11590 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
11591 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
11592 END IF;
11593 END IF;
11594
11595 l_vendor_contact_rec.per_party_id := l_per_party_id;
11596
11597 END IF; --party did not exist
11598
11599 IF l_rel_party_valid = 'N' AND
11600 l_per_party_valid <> 'F' AND
11601 l_rel_valid = 'N' AND
11602 l_org_contact_valid = 'N' THEN -- create new org contact
11603
11604 /*checking proper approach
11605 l_party_usg_rec.party_id := l_per_party_id;
11606 l_party_usg_rec.party_usage_code := 'ORG_CONTACT';
11607 l_party_usg_rec.created_by_module := 'AP_SUPPLIERS_API';
11608
11609 HZ_PARTY_USG_ASSIGNMENT_PVT.assign_party_usage(
11610 p_init_msg_list => FND_API.G_FALSE,
11611 p_party_usg_assignment_rec => l_party_usg_rec,
11612 x_return_status => l_per_return_status,
11613 x_msg_count => l_per_msg_count,
11614 x_msg_data => l_per_msg_data);
11615 */
11616
11617 --populate relationship record
11618
11619 l_rel_rec.end_date := l_vendor_contact_rec.inactive_date;
11620 l_rel_rec.subject_id := l_per_party_id;
11621 l_rel_rec.subject_type := 'PERSON';
11622 l_rel_rec.subject_table_name := 'HZ_PARTIES';
11623 l_rel_rec.object_id := l_org_party_id;
11624 l_rel_rec.object_type := 'ORGANIZATION';
11625 l_rel_rec.object_table_name := 'HZ_PARTIES';
11626 l_rel_rec.relationship_code := 'CONTACT_OF';
11627 l_rel_rec.relationship_type := 'CONTACT';
11628 l_rel_rec.start_date := sysdate;
11629 l_rel_rec.created_by_module := 'AP_SUPPLIERS_API';
11630 l_rel_rec.application_id := 200;
11631
11632 fnd_profile.get('HZ_GENERATE_PARTY_NUMBER', l_party_num);
11633 IF nvl(l_party_num, 'Y') = 'N' THEN
11634 SELECT HZ_PARTY_NUMBER_S.Nextval
11635 INTO l_party_rec.party_number
11636 FROM DUAL;
11637 END IF;
11638
11639 l_rel_rec.party_rec := l_party_rec;
11640
11641 --populate org contact record
11642 l_org_contact_rec.department := l_vendor_contact_rec.department;
11643 -- job title [Bug 6648967]
11644 l_org_contact_rec.job_title := l_vendor_contact_rec.person_title;
11645 --contact_number
11646 l_org_contact_rec.created_by_module := 'AP_SUPPLIERS_API';
11647 l_org_contact_rec.application_id := 200;
11648 l_org_contact_rec.party_rel_rec := l_rel_rec;
11649
11650 hz_party_contact_v2pub.create_org_contact(
11651 p_init_msg_list => FND_API.G_FALSE,
11652 p_org_contact_rec => l_org_contact_rec,
11653 --p_commit => FND_API.G_FALSE,
11654 x_return_status => l_org_contact_return_status,
11655 x_msg_count => l_org_contact_msg_count,
11656 x_msg_data => l_org_contact_msg_data,
11657 x_org_contact_id => l_org_contact_id,
11658 x_party_rel_id => l_rel_id,
11659 x_party_id => l_rel_party_id,
11660 x_party_number => l_rel_party_number);
11661 IF l_org_contact_return_status <> FND_API.G_RET_STS_SUCCESS THEN
11662 ------------------------------------------------------------------------
11663 l_debug_info := 'After call to hz_party_contact_v2pub.create_org_contact';
11664 l_debug_info := l_debug_info||' Return status : '||l_org_contact_return_status||' Error : '||l_org_contact_msg_data;
11665 ------------------------------------------------------------------------
11666 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
11667 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
11668 END IF;
11669 END IF;
11670
11671 l_vendor_contact_rec.relationship_id := l_rel_id;
11672 l_vendor_contact_rec.rel_party_id := l_rel_party_id;
11673 l_vendor_contact_rec.org_contact_id := l_org_contact_id;
11674
11675 END IF; -- org contact null
11676
11677 IF l_rel_party_valid <> 'F' AND
11678 l_per_party_valid <> 'F' AND
11679 l_rel_valid <> 'F' AND
11680 l_org_contact_valid <> 'F' AND
11681 l_party_site_valid = 'N' THEN -- create new party site
11682
11683 --populate party site record
11684 l_party_site_rec.mailstop := l_vendor_contact_rec.mail_stop;
11685 l_party_site_rec.location_id := l_location_id;
11686 l_party_site_rec.created_by_module := 'AP_SUPPLIERS_API';
11687 l_party_site_rec.application_id := 200;
11688 l_party_site_rec.party_id := l_vendor_contact_rec.rel_party_id;
11689 -- udhenuko Bug 6823885 start. Party site number populated based on profile.
11690 fnd_profile.get('HZ_GENERATE_PARTY_SITE_NUMBER', l_party_site_num);
11691 IF nvl(l_party_site_num, 'Y') = 'N' THEN
11692 SELECT HZ_PARTY_SITE_NUMBER_S.Nextval
11693 INTO l_party_site_rec.party_site_number
11694 FROM DUAL;
11695 END IF;
11696 -- udhenuko Bug 6823885 End
11697
11698 hz_party_site_v2pub.create_party_site(
11699 p_init_msg_list => FND_API.G_FALSE,
11700 p_party_site_rec => l_party_site_rec,
11701 --p_commit => FND_API.G_FALSE,
11702 x_return_status => l_site_return_status,
11703 x_msg_count => l_site_msg_count,
11704 x_msg_data => l_site_msg_data,
11705 x_party_site_id => l_party_site_id,
11706 x_party_site_number => l_party_site_number);
11707 IF l_site_return_status <> FND_API.G_RET_STS_SUCCESS THEN
11708 ------------------------------------------------------------------------
11709 l_debug_info := 'After call to hz_party_site_v2pub.create_party_site';
11710 l_debug_info := l_debug_info||' Return status : '||l_site_return_status||' Error : '||l_site_msg_data;
11711 ------------------------------------------------------------------------
11712 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
11713 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
11714 END IF;
11715 END IF;
11716
11717 l_vendor_contact_rec.party_site_id := l_party_site_id;
11718
11719 END IF; -- party site null
11720
11721 IF l_rel_party_valid <> 'F' AND
11722 l_per_party_valid <> 'F' AND
11723 l_rel_valid <> 'F' AND
11724 l_org_contact_valid <> 'F' AND
11725 l_party_site_valid <> 'F' THEN -- create contact points
11726
11727 --populate contact point record
11728 l_contact_point_rec.owner_table_name := 'HZ_PARTIES';
11729 l_contact_point_rec.owner_table_id := l_vendor_contact_rec.rel_party_id;
11730 l_contact_point_rec.created_by_module := 'AP_SUPPLIERS_API';
11731 l_contact_point_rec.application_id := 200;
11732
11733 IF l_vendor_contact_rec.phone IS NOT NULL THEN
11734
11735 --populate primary phone record
11736
11737 l_contact_point_rec.contact_point_type := 'PHONE';
11738 l_contact_point_rec.primary_flag := 'Y';
11739 l_contact_point_rec.contact_point_purpose := 'BUSINESS';
11740 l_contact_point_rec.primary_by_purpose := 'Y';
11741 l_phone_rec.phone_area_code := l_vendor_contact_rec.area_code;
11742 l_phone_rec.phone_number := l_vendor_contact_rec.phone;
11743 --
11744 -- Bug 5117377
11745 -- Changed the phone line type to GEN.
11746 --
11747 l_phone_rec.phone_line_type := 'GEN';
11748
11749 hz_contact_point_v2pub.create_phone_contact_point(
11750 p_init_msg_list => FND_API.G_FALSE,
11751 p_contact_point_rec => l_contact_point_rec,
11752 p_phone_rec => l_phone_rec,
11753 --p_commit => FND_API.G_FALSE,
11754 x_return_status => l_phone_return_status,
11755 x_msg_count => l_phone_msg_count,
11756 x_msg_data => l_phone_msg_data,
11757 x_contact_point_id => l_phone_contact_point_id);
11758 IF l_phone_return_status <> FND_API.G_RET_STS_SUCCESS THEN
11759 ------------------------------------------------------------------------
11760 l_debug_info := 'After call to hz_contact_point_v2pub.create_phone_contact_point Primary Phone';
11761 l_debug_info := l_debug_info||' Return status : '||l_phone_return_status||' Error : '||l_phone_msg_data;
11762 ------------------------------------------------------------------------
11763 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
11764 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
11765 END IF;
11766 END IF;
11767
11768
11769 END IF; --primary phone
11770
11771 IF l_vendor_contact_rec.alt_phone IS NOT NULL THEN
11772
11773 --populate alt phone record
11774
11775 l_contact_point_rec.contact_point_type := 'PHONE';
11776 l_contact_point_rec.primary_flag := 'N';
11777 l_contact_point_rec.contact_point_purpose := 'BUSINESS';
11778 l_contact_point_rec.primary_by_purpose := 'N';
11779 l_alt_phone_rec.phone_area_code := l_vendor_contact_rec.alt_area_code;
11780 l_alt_phone_rec.phone_number := l_vendor_contact_rec.alt_phone;
11781 --
11782 -- Bug 5117377
11783 -- Changed the phone line type to GEN.
11784 --
11785 l_alt_phone_rec.phone_line_type := 'GEN';
11786
11787 hz_contact_point_v2pub.create_phone_contact_point(
11788 p_init_msg_list => FND_API.G_FALSE,
11789 p_contact_point_rec => l_contact_point_rec,
11790 p_phone_rec => l_alt_phone_rec,
11791 --p_commit => FND_API.G_FALSE,
11792 x_return_status => l_alt_phone_return_status,
11793 x_msg_count => l_alt_phone_msg_count,
11794 x_msg_data => l_alt_phone_msg_data,
11795 x_contact_point_id => l_alt_phone_contact_point_id);
11796 IF l_alt_phone_return_status <> FND_API.G_RET_STS_SUCCESS THEN
11797 ------------------------------------------------------------------------
11798 l_debug_info := 'After call to hz_contact_point_v2pub.create_phone_contact_point Alt Phone';
11799 l_debug_info := l_debug_info||' Return status : '||l_alt_phone_return_status||' Error : '||l_alt_phone_msg_data;
11800 ------------------------------------------------------------------------
11801 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
11802 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
11803 END IF;
11804 END IF;
11805
11806
11807 END IF; --alt phone
11808
11809 IF l_vendor_contact_rec.fax_phone IS NOT NULL THEN
11810
11811 --populate fax phone record
11812
11813 l_contact_point_rec.contact_point_type := 'PHONE';
11814 l_contact_point_rec.primary_flag := 'N';
11815 l_contact_point_rec.contact_point_purpose := 'BUSINESS';
11816 l_contact_point_rec.primary_by_purpose := 'N';
11817 l_fax_rec.phone_area_code := l_vendor_contact_rec.fax_area_code;
11818 l_fax_rec.phone_number := l_vendor_contact_rec.fax_phone;
11819 l_fax_rec.phone_line_type := 'FAX';
11820
11821 hz_contact_point_v2pub.create_phone_contact_point(
11822 p_init_msg_list => FND_API.G_FALSE,
11823 p_contact_point_rec => l_contact_point_rec,
11824 p_phone_rec => l_fax_rec,
11825 --p_commit => FND_API.G_FALSE,
11826 x_return_status => l_fax_return_status,
11827 x_msg_count => l_fax_msg_count,
11828 x_msg_data => l_fax_msg_data,
11829 x_contact_point_id => l_fax_contact_point_id);
11830 IF l_fax_return_status <> FND_API.G_RET_STS_SUCCESS THEN
11831 ------------------------------------------------------------------------
11832 l_debug_info := 'After call to hz_contact_point_v2pub.create_phone_contact_point Fax Phone';
11833 l_debug_info := l_debug_info||' Return status : '||l_fax_return_status||' Error : '||l_fax_msg_data;
11834 ------------------------------------------------------------------------
11835 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
11836 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
11837 END IF;
11838 END IF;
11839
11840 END IF; --fax phone
11841
11842 IF l_vendor_contact_rec.email_address IS NOT NULL THEN
11843
11844 --populate email record
11845
11846 l_contact_point_rec.contact_point_type := 'EMAIL';
11847 l_contact_point_rec.primary_flag := 'Y';
11848 l_contact_point_rec.contact_point_purpose := 'BUSINESS';
11849 l_contact_point_rec.primary_by_purpose := 'N';
11850 l_email_rec.email_address := l_vendor_contact_rec.email_address;
11851
11852 hz_contact_point_v2pub.create_email_contact_point(
11853 p_init_msg_list => FND_API.G_FALSE,
11854 p_contact_point_rec => l_contact_point_rec,
11855 p_email_rec => l_email_rec,
11856 --p_commit => FND_API.G_FALSE,
11857 x_return_status => l_email_return_status,
11858 x_msg_count => l_email_msg_count,
11859 x_msg_data => l_email_msg_data,
11860 x_contact_point_id => l_email_contact_point_id);
11861 IF l_email_return_status <> FND_API.G_RET_STS_SUCCESS THEN
11862 ------------------------------------------------------------------------
11863 l_debug_info := 'After call to hz_contact_point_v2pub.create_email_contact_point';
11864 l_debug_info := l_debug_info||' Return status : '||l_email_return_status||' Error : '||l_email_msg_data;
11865 ------------------------------------------------------------------------
11866 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
11867 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
11868 END IF;
11869 END IF;
11870
11871 END IF; --email
11872
11873 IF l_vendor_contact_rec.url IS NOT NULL THEN
11874
11875 --populate url record
11876
11877 l_contact_point_rec.contact_point_type := 'WEB';
11878 l_contact_point_rec.primary_flag := 'Y';
11879 l_contact_point_rec.contact_point_purpose := 'HOMEPAGE'; --bug5875982
11880 l_contact_point_rec.primary_by_purpose := 'N';
11881 --Open Issue 5
11882 l_url_rec.web_type := 'HTTP';
11883 l_url_rec.url := l_vendor_contact_rec.url;
11884
11885 hz_contact_point_v2pub.create_web_contact_point(
11886 p_init_msg_list => FND_API.G_FALSE,
11887 p_contact_point_rec => l_contact_point_rec,
11888 p_web_rec => l_url_rec,
11889 --p_commit => FND_API.G_FALSE,
11890 x_return_status => l_url_return_status,
11891 x_msg_count => l_url_msg_count,
11892 x_msg_data => l_url_msg_data,
11893 x_contact_point_id => l_url_contact_point_id);
11894 IF l_url_return_status <> FND_API.G_RET_STS_SUCCESS THEN
11895 ------------------------------------------------------------------------
11896 l_debug_info := 'After call to hz_contact_point_v2pub.create_web_contact_point';
11897 l_debug_info := l_debug_info||' Return status : '||l_url_return_status||' Error : '||l_url_msg_data;
11898 ------------------------------------------------------------------------
11899 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
11900 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
11901 END IF;
11902 END IF;
11903
11904 END IF; --url
11905
11906 END IF; --contact points
11907
11908 IF (l_val_return_status = FND_API.G_RET_STS_SUCCESS) AND
11909 (l_per_return_status = FND_API.G_RET_STS_SUCCESS) AND
11910 (l_org_contact_return_status = FND_API.G_RET_STS_SUCCESS) AND
11911 (l_site_return_status = FND_API.G_RET_STS_SUCCESS) AND
11912 (l_phone_return_status = FND_API.G_RET_STS_SUCCESS) AND
11913 (l_alt_phone_return_status = FND_API.G_RET_STS_SUCCESS) AND
11914 (l_fax_return_status = FND_API.G_RET_STS_SUCCESS) AND
11915 (l_email_return_status = FND_API.G_RET_STS_SUCCESS) AND
11916 (l_url_return_status = FND_API.G_RET_STS_SUCCESS) THEN
11917
11918
11919 SELECT po_vendor_contacts_s.nextval
11920 INTO l_vendor_contact_rec.vendor_contact_id
11921 FROM dual;
11922
11923 INSERT INTO ap_supplier_contacts(
11924 per_party_id,
11925 relationship_id,
11926 rel_party_id,
11927 party_site_id,
11928 org_contact_id,
11929 org_party_site_id,
11930 --vendor_site_id, Bug 7013954 Vendor Site info no longer used
11931 vendor_contact_id,
11932 last_update_date,
11933 last_updated_by,
11934 creation_date,
11935 created_by,
11936 last_update_login,
11937 request_id,
11938 program_application_id,
11939 program_id,
11940 program_update_date,
11941 inactive_date, --Bug 4994974
11942 attribute_category, --bug 6745669 -- added dff columns
11943 attribute1,
11944 attribute2,
11945 attribute3,
11946 attribute4,
11947 attribute5,
11948 attribute6,
11949 attribute7,
11950 attribute8,
11951 attribute9,
11952 attribute10,
11953 attribute11,
11954 attribute12,
11955 attribute13,
11956 attribute14,
11957 attribute15
11958 --bug 6745669
11959 )VALUES(
11960 l_vendor_contact_rec.per_party_id,
11961 l_vendor_contact_rec.relationship_id,
11962 l_vendor_contact_rec.rel_party_id,
11963 l_vendor_contact_rec.party_site_id,
11964 l_vendor_contact_rec.org_contact_id,
11965 l_vendor_contact_rec.org_party_site_id,
11966 --l_vendor_contact_rec.vendor_site_id, Bug 7013954 Vendor Site info no longer used
11967 l_vendor_contact_rec.vendor_contact_id,
11968 SYSDATE,
11969 nvl(fnd_global.user_id,-1),
11970 SYSDATE,
11971 nvl(fnd_global.user_id,-1),
11972 nvl(fnd_global.login_id,-1),
11973 nvl(FND_GLOBAL.conc_request_id,-1),
11974 nvl(FND_GLOBAL.prog_appl_id,-1),
11975 nvl(FND_GLOBAL.conc_program_id,-1),
11976 sysdate,
11977 l_vendor_contact_rec.inactive_date, --Bug 4994974
11978 l_vendor_contact_rec.attribute_category, --bug 6745669 -- added dff columns
11979 l_vendor_contact_rec.attribute1,
11980 l_vendor_contact_rec.attribute2,
11981 l_vendor_contact_rec.attribute3,
11982 l_vendor_contact_rec.attribute4,
11983 l_vendor_contact_rec.attribute5,
11984 l_vendor_contact_rec.attribute6,
11985 l_vendor_contact_rec.attribute7,
11986 l_vendor_contact_rec.attribute8,
11987 l_vendor_contact_rec.attribute9,
11988 l_vendor_contact_rec.attribute10,
11989 l_vendor_contact_rec.attribute11,
11990 l_vendor_contact_rec.attribute12,
11991 l_vendor_contact_rec.attribute13,
11992 l_vendor_contact_rec.attribute14,
11993 l_vendor_contact_rec.attribute15
11994 );
11995
11996 x_vendor_contact_id := l_vendor_contact_rec.vendor_contact_id;
11997 x_per_party_id := l_vendor_contact_rec.per_party_id;
11998 x_rel_party_id := l_vendor_contact_rec.rel_party_id;
11999 x_rel_id := l_vendor_contact_rec.relationship_id;
12000 x_org_contact_id := l_vendor_contact_rec.org_contact_id;
12001 x_party_site_id := l_vendor_contact_rec.party_site_id;
12002
12003 Raise_Supplier_Event( i_vendor_contact_id => x_vendor_contact_id ); -- Bug 7307669
12004
12005 ELSIF (l_val_return_status = FND_API.G_RET_STS_UNEXP_ERROR) OR
12006 (l_per_return_status = FND_API.G_RET_STS_UNEXP_ERROR) OR
12007 (l_org_contact_return_status = FND_API.G_RET_STS_UNEXP_ERROR) OR
12008 (l_site_return_status = FND_API.G_RET_STS_UNEXP_ERROR) OR
12009 (l_phone_return_status = FND_API.G_RET_STS_UNEXP_ERROR) OR
12010 (l_alt_phone_return_status = FND_API.G_RET_STS_UNEXP_ERROR) OR
12011 (l_fax_return_status = FND_API.G_RET_STS_UNEXP_ERROR) OR
12012 (l_email_return_status = FND_API.G_RET_STS_UNEXP_ERROR) OR
12013 (l_url_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
12014
12015 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
12016
12017 ELSE
12018
12019 x_return_status := FND_API.G_RET_STS_ERROR;
12020 END IF;
12021
12022 -- End of API body.
12023
12024 -- Standard check of p_commit.
12025 IF FND_API.To_Boolean( p_commit ) THEN
12026 COMMIT WORK;
12027 END IF;
12028
12029 -- Standard call to get message count and if count is 1,
12030 -- get message info.
12031 FND_MSG_PUB.Count_And_Get(
12032 p_count => x_msg_count ,
12033 p_data => x_msg_data
12034 );
12035
12036 EXCEPTION
12037 WHEN FND_API.G_EXC_ERROR THEN
12038 ROLLBACK TO Create_Vendor_Contact_PUB;
12039 x_return_status := FND_API.G_RET_STS_ERROR ;
12040 FND_MSG_PUB.Count_And_Get
12041 ( p_count => x_msg_count,
12042 p_data => x_msg_data
12043 );
12044 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
12045 ROLLBACK TO Create_Vendor_Contact_PUB;
12046 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
12047 FND_MSG_PUB.Count_And_Get
12048 ( p_count => x_msg_count,
12049 p_data => x_msg_data
12050 );
12051 WHEN OTHERS THEN
12052 ROLLBACK TO Create_Vendor_Contact_PUB;
12053 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
12054 IF FND_MSG_PUB.Check_Msg_Level
12055 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
12056 FND_MSG_PUB.Add_Exc_Msg
12057 ( G_PKG_NAME ,
12058 l_api_name
12059 );
12060 END IF;
12061 FND_MSG_PUB.Count_And_Get
12062 ( p_count => x_msg_count,
12063 p_data => x_msg_data
12064 );
12065 END Create_Vendor_Contact;
12066
12067 PROCEDURE Update_Vendor_Contact
12068 ( p_api_version IN NUMBER,
12069 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
12070 p_commit IN VARCHAR2 := FND_API.G_FALSE,
12071 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
12072 p_vendor_contact_rec IN r_vendor_contact_rec_type,
12073 x_return_status OUT NOCOPY VARCHAR2 ,
12074 x_msg_count OUT NOCOPY NUMBER,
12075 x_msg_data OUT NOCOPY VARCHAR2
12076
12077 )
12078 IS
12079 l_api_name CONSTANT VARCHAR2(30) := 'Update_Vendor_Contact';
12080 l_api_version CONSTANT NUMBER := 1.0;
12081
12082 BEGIN
12083 -- Standard Start of API savepoint
12084 SAVEPOINT Update_Vendor_Contact_PUB;
12085
12086 -- Standard call to check for call compatibility.
12087 IF NOT FND_API.Compatible_API_Call ( l_api_version ,
12088 p_api_version ,
12089 l_api_name ,
12090 G_PKG_NAME )
12091 THEN
12092 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
12093 END IF;
12094
12095 -- Initialize message list if p_init_msg_list is set to TRUE.
12096 IF FND_API.to_Boolean( p_init_msg_list ) THEN
12097 FND_MSG_PUB.initialize;
12098 END IF;
12099
12100 -- Initialize API return status to success
12101 x_return_status := FND_API.G_RET_STS_SUCCESS;
12102
12103 -- API body
12104
12105 IF ( p_vendor_contact_rec.PER_PARTY_ID IS NOT NULL AND
12106 p_vendor_contact_rec.RELATIONSHIP_ID IS NOT NULL AND
12107 p_vendor_contact_rec.REL_PARTY_ID IS NOT NULL AND
12108 p_vendor_contact_rec.PARTY_SITE_ID IS NOT NULL AND
12109 p_vendor_contact_rec.ORG_CONTACT_ID IS NOT NULL AND
12110 p_vendor_contact_rec.ORG_PARTY_SITE_ID IS NOT NULL AND
12111 p_vendor_contact_rec.VENDOR_CONTACT_ID IS NOT NULL
12112 )
12113 THEN
12114 UPDATE ap_supplier_contacts set
12115 last_update_date = SYSDATE,
12116 last_updated_by = g_user_id,
12117 last_update_login = g_login_id,
12118 inactive_date =p_vendor_contact_rec.inactive_date
12119 WHERE per_party_id = p_vendor_contact_rec.per_party_id AND
12120 relationship_id =p_vendor_contact_rec.relationship_id AND
12121 rel_party_id= p_vendor_contact_rec.rel_party_id AND
12122 party_site_id = p_vendor_contact_rec.party_site_id AND
12123 org_contact_id =p_vendor_contact_rec.org_contact_id AND
12124 vendor_contact_id =p_vendor_contact_rec.vendor_contact_id;
12125
12126 Raise_Supplier_Event( i_vendor_contact_id => p_vendor_contact_rec.vendor_contact_id ); -- Bug 7307669
12127
12128 ELSE
12129 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
12130 END IF;
12131
12132 -- End of API body.
12133
12134 -- Standard check of p_commit.
12135 IF FND_API.To_Boolean( p_commit ) THEN
12136 COMMIT WORK;
12137 END IF;
12138
12139 -- Standard call to get message count and if count is 1,
12140 -- get message info.
12141 FND_MSG_PUB.Count_And_Get(
12142 p_count => x_msg_count ,
12143 p_data => x_msg_data
12144 );
12145
12146 EXCEPTION
12147 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
12148 ROLLBACK TO Update_Vendor_Contact_PUB;
12149 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
12150 FND_MSG_PUB.Count_And_Get
12151 ( p_count => x_msg_count,
12152 p_data => x_msg_data
12153 );
12154 WHEN OTHERS THEN
12155 ROLLBACK TO Update_Vendor_Contact_PUB;
12156 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
12157 IF FND_MSG_PUB.Check_Msg_Level
12158 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
12159 FND_MSG_PUB.Add_Exc_Msg
12160 ( G_PKG_NAME ,
12161 l_api_name
12162 );
12163 END IF;
12164 FND_MSG_PUB.Count_And_Get
12165 ( p_count => x_msg_count,
12166 p_data => x_msg_data
12167 );
12168 END Update_Vendor_Contact;
12169
12170
12171 PROCEDURE Validate_Vendor_Contact
12172 ( p_api_version IN NUMBER,
12173 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
12174 p_commit IN VARCHAR2 := FND_API.G_FALSE,
12175 p_validation_level IN NUMBER :=
12176 FND_API.G_VALID_LEVEL_FULL,
12177 x_return_status OUT NOCOPY VARCHAR2 ,
12178 x_msg_count OUT NOCOPY NUMBER,
12179 x_msg_data OUT NOCOPY VARCHAR2,
12180 p_vendor_contact_rec IN OUT NOCOPY r_vendor_contact_rec_type,
12181 x_rel_party_valid OUT NOCOPY VARCHAR2,
12182 x_per_party_valid OUT NOCOPY VARCHAR2,
12183 x_rel_valid OUT NOCOPY VARCHAR2,
12184 x_org_party_id OUT NOCOPY NUMBER,
12185 x_org_contact_valid OUT NOCOPY VARCHAR2,
12186 x_location_id OUT NOCOPY NUMBER,
12187 x_party_site_valid OUT NOCOPY VARCHAR2
12188 )
12189 IS
12190 l_api_name CONSTANT VARCHAR2(30) := 'Validate_Vendor_Contact';
12191 l_api_version CONSTANT NUMBER := 1.0;
12192
12193 l_def_org_id NUMBER;
12194 l_debug_info VARCHAR2(2000);
12195 x_valid BOOLEAN;
12196
12197 BEGIN
12198 -- Bug 7013954 The validation logic is modified to accomodate the changes
12199 -- related to contacts. The Contacts are now associated at Party Site/Address
12200 -- or at Supplier level. Supplier Site level association is deprecated in R12.
12201 -- Standard Start of API savepoint
12202 SAVEPOINT Validate_Vendor_Contact_PUB;
12203
12204 -- Standard call to check for call compatibility.
12205 IF NOT FND_API.Compatible_API_Call ( l_api_version ,
12206 p_api_version ,
12207 l_api_name ,
12208 G_PKG_NAME )
12209 THEN
12210 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
12211 END IF;
12212
12213 -- Initialize message list if p_init_msg_list is set to TRUE.
12214 IF FND_API.to_Boolean( p_init_msg_list ) THEN
12215 FND_MSG_PUB.initialize;
12216 END IF;
12217
12218 -- Initialize API return status to success
12219 x_return_status := FND_API.G_RET_STS_SUCCESS;
12220
12221 -- API body
12222
12223 -- Special logic for Import
12224 IF g_source = 'IMPORT' THEN
12225 -- Org_Id and Operating_unit_name validation
12226 IF p_vendor_contact_rec.org_id IS NOT NULL OR
12227 p_vendor_contact_rec.operating_unit_name IS NOT NULL THEN
12228
12229 Check_org_id_name(p_vendor_contact_rec.org_id,
12230 p_vendor_contact_rec.operating_unit_name,
12231 'AP_SUP_SITE_CONTACT_INT',
12232 p_vendor_contact_rec.vendor_contact_interface_id,
12233 x_valid);
12234 IF NOT x_valid THEN
12235 x_return_status := FND_API.G_RET_STS_ERROR;
12236 END IF;
12237 END IF;
12238
12239 -- Bug 7013954 If Party_Site_Name is provided, derive the party_site_id.
12240 IF (p_vendor_contact_rec.party_site_name IS NOT NULL AND
12241 p_vendor_contact_rec.org_party_site_id IS NULL AND
12242 (p_vendor_contact_rec.org_id IS NOT NULL OR
12243 p_vendor_contact_rec.operating_unit_name IS NOT NULL) AND
12244 p_vendor_contact_rec.vendor_id IS NOT NULL)THEN
12245 Check_org_id_party_site_name(p_vendor_contact_rec.org_id,
12246 p_vendor_contact_rec.operating_unit_name,
12247 p_vendor_contact_rec.org_party_site_id,
12248 p_vendor_contact_rec.party_site_name,
12249 p_vendor_contact_rec.vendor_id,
12250 'AP_SUP_SITE_CONTACT_INT',
12251 p_vendor_contact_rec.vendor_contact_interface_id,
12252 x_valid);
12253 IF NOT x_valid THEN
12254 x_return_status := FND_API.G_RET_STS_ERROR;
12255 END IF;
12256 -- Vendor_Site_Id Validation
12257 -- We need to take vendor_site_id info only when party site info is null
12258 ELSIF p_vendor_contact_rec.vendor_site_id IS NOT NULL AND
12259 p_vendor_contact_rec.org_party_site_id IS NULL AND
12260 p_vendor_contact_rec.PARTY_SITE_NAME IS NULL THEN
12261 Check_Vendor_site_id(p_vendor_contact_rec.vendor_site_id,
12262 'AP_SUP_SITE_CONTACT_INT',
12263 p_vendor_contact_rec.vendor_contact_interface_id,
12264 x_valid);
12265 IF NOT x_valid THEN
12266 x_return_status := FND_API.G_RET_STS_ERROR;
12267 ELSE
12268 SELECT hps.party_id,
12269 hps.location_id
12270 INTO x_org_party_id,
12271 x_location_id
12272 FROM HZ_Party_Sites hps, po_vendor_sites_all pvs
12273 WHERE pvs.vendor_site_id = p_vendor_contact_rec.vendor_site_id
12274 AND pvs.party_site_id = hps.party_site_id;
12275
12276 SELECT party_site_id
12277 INTO p_vendor_contact_rec.org_party_site_id
12278 FROM po_vendor_sites
12279 WHERE vendor_site_id = p_vendor_contact_rec.vendor_site_id;
12280 END IF;
12281 ELSIF (p_vendor_contact_rec.vendor_site_code IS NOT NULL AND
12282 p_vendor_contact_rec.org_party_site_id IS NULL AND
12283 p_vendor_contact_rec.PARTY_SITE_NAME IS NULL AND
12284 (p_vendor_contact_rec.org_id IS NOT NULL OR
12285 p_vendor_contact_rec.operating_unit_name IS NOT NULL))THEN
12286 Check_Org_Id_Name_Site_Code(p_vendor_contact_rec.org_id,
12287 p_vendor_contact_rec.operating_unit_name,
12288 p_vendor_contact_rec.vendor_site_id,
12289 p_vendor_contact_rec.vendor_site_code,
12290 'AP_SUP_SITE_CONTACT_INT',
12291 p_vendor_contact_rec.vendor_contact_interface_id,
12292 x_valid);
12293 IF NOT x_valid THEN
12294 x_return_status := FND_API.G_RET_STS_ERROR;
12295 END IF;
12296 END IF;
12297 END IF;
12298
12299
12300 ------------------------------------------------------------------------
12301 l_debug_info := 'Call to Validate party_site_id';
12302 ------------------------------------------------------------------------
12303 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
12304 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
12305 l_api_name,l_debug_info);
12306 END IF;
12307 -- Check for validity of party_site_id
12308 --
12309 IF p_vendor_contact_rec.party_site_id IS NOT NULL THEN
12310 Check_Valid_Party_Site_ID(p_vendor_contact_rec.party_site_id,
12311 x_location_id,
12312 x_valid);
12313
12314 IF NOT x_valid THEN
12315 --party_site_id does not exist
12316 x_return_status := FND_API.G_RET_STS_ERROR;
12317 x_party_site_valid := 'F';
12318 -- Special logic for Import
12319 IF g_source = 'IMPORT' THEN
12320 IF (Insert_Rejections(
12321 'AP_SUP_SITE_CONTACT_INT',
12322 p_vendor_contact_rec.vendor_contact_interface_id,
12323 'AP_INVALID_PARTY_SITE',
12324 g_user_id,
12325 g_login_id,
12326 'Validate_Vendor_Contact') <> TRUE) THEN
12327 --
12328 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12329 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
12330 l_api_name,'Parameters: '
12331 ||' Vendor_Contact_Interface_Id: '||
12332 p_vendor_contact_rec.vendor_contact_interface_id
12333 --||' Vendor_Site_Id: '||p_vendor_contact_rec.vendor_site_id
12334 ||', Party_Site_Id: '||p_vendor_contact_rec.party_site_id);
12335 END IF;
12336 END IF;
12337 ELSE
12338 -- Bug 5491139 hkaniven start --
12339 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PARTY_SITE');
12340 FND_MSG_PUB.ADD;
12341 -- Bug 5491139 hkaniven end --
12342 END IF;
12343 ELSE
12344 --party_site_id was valid
12345 x_party_site_valid := 'V';
12346 END IF;
12347 ELSE
12348 --party_site_id is null
12349 x_party_site_valid := 'N';
12350 END IF;
12351
12352 x_valid := TRUE;
12353 --set some values
12354 IF p_vendor_contact_rec.org_party_site_id IS NOT NULL THEN
12355 Check_Valid_Party_Site_ID(p_vendor_contact_rec.org_party_site_id,
12356 x_location_id,
12357 x_valid);
12358 IF x_valid THEN
12359
12360 SELECT hps.party_id,
12361 hps.location_id
12362 INTO x_org_party_id,
12363 x_location_id
12364 FROM HZ_Party_Sites hps
12365 WHERE hps.party_site_id =
12366 p_vendor_contact_rec.org_party_site_id;
12367 END if;
12368 --open issue 12, no way to populate vendor_site_id
12369
12370 -- Bug 7013954
12371 -- If the contact is to be created at supplier level then
12372 -- party_site_id is null. We need to populate org_party_id
12373 -- based on the vendor_id value. We should also set party_site_valid
12374 -- variable as valid because there is no party site associated with the
12375 -- contact and we should not create one in create_vendor_contact method.
12376 ELSIF p_vendor_contact_rec.vendor_site_id IS NULL and
12377 p_vendor_contact_rec.vendor_site_code IS NULL and
12378 p_vendor_contact_rec.org_party_site_id IS NULL and
12379 p_vendor_contact_rec.PARTY_SITE_NAME IS NULL and
12380 p_vendor_contact_rec.vendor_id IS NOT NULL THEN
12381 SELECT aps.party_id
12382 INTO x_org_party_id
12383 FROM AP_SUPPLIERS aps
12384 WHERE aps.vendor_id = p_vendor_contact_rec.vendor_id;
12385
12386 x_party_site_valid := 'V';
12387 x_valid := TRUE;
12388 /*
12389 -- new message
12390 x_return_status := FND_API.G_RET_STS_ERROR;
12391 -- Special logic for Import
12392 IF g_source = 'IMPORT' THEN
12393 IF (Insert_Rejections(
12394 'AP_SUP_SITE_CONTACT_INT',
12395 p_vendor_contact_rec.vendor_contact_interface_id,
12396 'AP_INCONSISTENT_PARTY_SITE',
12397 g_user_id,
12398 g_login_id,
12399 'Validate_Vendor_Contact') <> TRUE) THEN
12400 --
12401 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12402 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
12403 l_api_name,'Parameters: '
12404 ||' Vendor_Contact_Interface_Id: '||
12405 p_vendor_contact_rec.vendor_contact_interface_id
12406 ||',Vendor_Site_Id: '||p_vendor_contact_rec.vendor_site_id
12407 ||', Org_Party_Site_Id: '||p_vendor_contact_rec.org_party_site_id);
12408 END IF;
12409 END IF;
12410 ELSE
12411 -- Bug 5491139 hkaniven start --
12412 FND_MESSAGE.SET_NAME('SQLAP','AP_INCONSISTENT_PARTY_SITE');
12413 FND_MSG_PUB.ADD;
12414 -- Bug 5491139 hkaniven end --
12415 END IF;*/
12416 END IF;
12417
12418 -- We need to first check if the org_party_site_id provided/ derived is
12419 -- valid. If x_valid is false then the party site info is invalid.
12420 IF NOT x_valid THEN
12421 --party_site_id does not exist
12422 x_return_status := FND_API.G_RET_STS_ERROR;
12423 -- Special logic for Import
12424 IF g_source = 'IMPORT' THEN
12425 IF (Insert_Rejections(
12426 'AP_SUP_SITE_CONTACT_INT',
12427 p_vendor_contact_rec.vendor_contact_interface_id,
12428 'AP_INVALID_PARTY_SITE',
12429 g_user_id,
12430 g_login_id,
12431 'Validate_Vendor_Contact') <> TRUE) THEN
12432 --
12433 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12434 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
12435 l_api_name,'Parameters: '
12436 ||' Vendor_Contact_Interface_Id: '||
12437 p_vendor_contact_rec.vendor_contact_interface_id
12438 --||' Vendor_Site_Id: '||p_vendor_contact_rec.vendor_site_id
12439 ||', Org_Party_Site_Id: '||p_vendor_contact_rec.org_party_site_id);
12440 END IF;
12441 END IF;
12442 ELSE
12443 -- Bug 5491139 hkaniven start --
12444 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PARTY_SITE');
12445 FND_MSG_PUB.ADD;
12446 -- Bug 5491139 hkaniven end --
12447 END IF;
12448 END IF;
12449 -----------------------------------------------------------------------
12450 l_debug_info := 'Call to Validate party_id';
12451 --------------------------------------------------------------
12452 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
12453 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
12454 l_api_name,l_debug_info);
12455 END IF;
12456
12457 -- Check for validity of party_id
12458 --
12459 IF p_vendor_contact_rec.per_party_id IS NOT NULL THEN
12460 Check_Valid_Party_ID(p_vendor_contact_rec.per_party_id,
12461 x_valid);
12462
12463 IF NOT x_valid THEN
12464 x_return_status := FND_API.G_RET_STS_ERROR;
12465 x_per_party_valid := 'F';
12466 -- Special logic for Import
12467 IF g_source = 'IMPORT' THEN
12468 IF (Insert_Rejections(
12469 'AP_SUP_SITE_CONTACT_INT',
12470 p_vendor_contact_rec.vendor_contact_interface_id,
12471 'AP_INVALID_PARTY_SITE',
12472 g_user_id,
12473 g_login_id,
12474 'Validate_Vendor_Contact') <> TRUE) THEN
12475 --
12476 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12477 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
12478 l_api_name,'Parameters: '
12479 ||' Vendor_Contact_Interface_Id: '||
12480 p_vendor_contact_rec.vendor_contact_interface_id
12481 --||' Vendor_Site_Id: '||p_vendor_contact_rec.vendor_site_id
12482 ||', Party_Site_Id: '||p_vendor_contact_rec.party_site_id);
12483 END IF;
12484 END IF;
12485 ELSE
12486 -- Bug 5491139 hkaniven start --
12487 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PARTY_SITE');
12488 FND_MSG_PUB.ADD;
12489 -- Bug 5491139 hkaniven end --
12490 END IF;
12491 ELSE
12492 x_per_party_valid := 'V';
12493 END IF;
12494 ELSE
12495 x_per_party_valid := 'N';
12496 END IF;
12497
12498 -----------------------------------------------------------------------
12499 l_debug_info := 'Call to Validate rel_party_id';
12500 --------------------------------------------------------------
12501 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
12502 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
12503 l_api_name,l_debug_info);
12504 END IF;
12505
12506 -- Check for validity of rel_party_id
12507 --
12508 IF p_vendor_contact_rec.rel_party_id IS NOT NULL THEN
12509 Check_Valid_Party_ID(p_vendor_contact_rec.rel_party_id,
12510 x_valid);
12511
12512 IF NOT x_valid THEN
12513 x_return_status := FND_API.G_RET_STS_ERROR;
12514 x_rel_party_valid := 'F';
12515 -- Special logic for Import
12516 IF g_source = 'IMPORT' THEN
12517 IF (Insert_Rejections(
12518 'AP_SUP_SITE_CONTACT_INT',
12519 p_vendor_contact_rec.vendor_contact_interface_id,
12520 'AP_INVALID_REL_PARTY',
12521 g_user_id,
12522 g_login_id,
12523 'Validate_Vendor_Contact') <> TRUE) THEN
12524 --
12525 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12526 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
12527 l_api_name,'Parameters: '
12528 ||' Vendor_Contact_Interface_Id: '||
12529 p_vendor_contact_rec.vendor_contact_interface_id
12530 ||' Party_Site_Id: '||p_vendor_contact_rec.org_party_site_id
12531 ||', rel_party_id: '||p_vendor_contact_rec.rel_party_id);
12532 END IF;
12533 END IF;
12534 ELSE
12535 -- Bug 5491139 hkaniven start --
12536 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_REL_PARTY');
12537 FND_MSG_PUB.ADD;
12538 -- Bug 5491139 hkaniven end --
12539 END IF;
12540 ELSE
12541 x_rel_party_valid := 'V';
12542 END IF;
12543 ELSE
12544 x_rel_party_valid := 'N';
12545 END IF;
12546
12547 --call relationship validations
12548
12549 --------------------------------------------------------------
12550 l_debug_info := 'Call to Validate relationship_id';
12551 --------------------------------------------------------------
12552 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
12553 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
12554 l_api_name,l_debug_info);
12555 END IF;
12556
12557 -- Check for validity of relationship_id
12558 --
12559 IF p_vendor_contact_rec.relationship_id IS NOT NULL THEN
12560
12561 Check_Valid_Relationship_ID(p_vendor_contact_rec.relationship_id,
12562 x_valid);
12563
12564 IF NOT x_valid THEN
12565 x_return_status := FND_API.G_RET_STS_ERROR;
12566 x_rel_valid := 'F';
12567 IF g_source = 'IMPORT' THEN
12568 IF (Insert_Rejections(
12569 'AP_SUP_SITE_CONTACT_INT',
12570 p_vendor_contact_rec.vendor_contact_interface_id,
12571 'AP_INVALID_RELATIONSHIP',
12572 g_user_id,
12573 g_login_id,
12574 'Validate_Vendor_Contact') <> TRUE) THEN
12575 --
12576 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12577 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
12578 l_api_name,'Parameters: '
12579 ||' Vendor_Contact_Interface_Id: '||
12580 p_vendor_contact_rec.vendor_contact_interface_id
12581 ||' Vendor_Interface_Id: '||p_vendor_contact_rec.vendor_interface_id
12582 ||', Relationship_Id: '||p_vendor_contact_rec.relationship_id);
12583 END IF;
12584 END IF;
12585 ELSE
12586 -- Bug 5491139 hkaniven start --
12587 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_RELATIONSHIP');
12588 FND_MSG_PUB.ADD;
12589 -- Bug 5491139 hkaniven end --
12590 END IF;
12591 ELSE
12592 x_rel_valid := 'V';
12593 END IF;
12594 ELSE
12595 x_rel_valid := 'N';
12596 END IF;
12597
12598 -- call org contact validation
12599
12600 --------------------------------------------------------------
12601 l_debug_info := 'Call to Validate org_contact_id';
12602 --------------------------------------------------------------
12603 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
12604 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
12605 l_api_name,l_debug_info);
12606 END IF;
12607
12608 -- Check for validity of org_contact_id
12609 --
12610 IF p_vendor_contact_rec.org_contact_id IS NOT NULL THEN
12611
12612 Check_Valid_Org_Contact_ID(p_vendor_contact_rec.org_contact_id,
12613 x_valid);
12614
12615 IF NOT x_valid THEN
12616 x_return_status := FND_API.G_RET_STS_ERROR;
12617 x_org_contact_valid := 'F';
12618 -- Special logic for Import
12619 IF g_source = 'IMPORT' THEN
12620 IF (Insert_Rejections(
12621 'AP_SUP_SITE_CONTACT_INT',
12622 p_vendor_contact_rec.vendor_contact_interface_id,
12623 'AP_INVALID_ORG_CONTACT',
12624 g_user_id,
12625 g_login_id,
12626 'Validate_Vendor_Contact') <> TRUE) THEN
12627 --
12628 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12629 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
12630 l_api_name,'Parameters: '
12631 ||' Vendor_Contact_Interface_Id: '||
12632 p_vendor_contact_rec.vendor_contact_interface_id
12633 ||' Vendor_Interface_Id: '||p_vendor_contact_rec.vendor_id
12634 ||', org_contact_id: '||p_vendor_contact_rec.org_contact_id);
12635 END IF;
12636 END IF;
12637 ELSE
12638 -- Bug 5491139 hkaniven start --
12639 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_ORG_CONTACT');
12640 FND_MSG_PUB.ADD;
12641 -- Bug 5491139 hkaniven end --
12642 END IF;
12643 ELSE
12644 x_org_contact_valid := 'V';
12645 END IF;
12646 ELSE
12647 x_org_contact_valid := 'N';
12648 END IF;
12649 -- End of API body.
12650
12651 -- Standard check of p_commit.
12652 IF FND_API.To_Boolean( p_commit ) THEN
12653 COMMIT WORK;
12654 END IF;
12655
12656 -- Standard call to get message count and if count is 1,
12657 -- get message info.
12658 FND_MSG_PUB.Count_And_Get(
12659 p_count => x_msg_count ,
12660 p_data => x_msg_data
12661 );
12662
12663 EXCEPTION
12664 WHEN FND_API.G_EXC_ERROR THEN
12665 ROLLBACK TO Validate_Vendor_Contact_PUB;
12666 x_return_status := FND_API.G_RET_STS_ERROR ;
12667 FND_MSG_PUB.Count_And_Get
12668 ( p_count => x_msg_count,
12669 p_data => x_msg_data
12670 );
12671 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
12672 ROLLBACK TO Validate_Vendor_Contact_PUB;
12673 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
12674 FND_MSG_PUB.Count_And_Get
12675 ( p_count => x_msg_count,
12676 p_data => x_msg_data
12677 );
12678 WHEN OTHERS THEN
12679 ROLLBACK TO Validate_Vendor_Contact_PUB;
12680 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
12681 IF FND_MSG_PUB.Check_Msg_Level
12682 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
12683 FND_MSG_PUB.Add_Exc_Msg
12684 ( G_PKG_NAME ,
12685 l_api_name
12686 );
12687 END IF;
12688 FND_MSG_PUB.Count_And_Get
12689 ( p_count => x_msg_count,
12690 p_data => x_msg_data
12691 );
12692 END Validate_Vendor_Contact;
12693
12694 PROCEDURE Import_Vendors
12695 ( p_api_version IN NUMBER,
12696 p_source IN VARCHAR2 DEFAULT 'IMPORT',
12697 p_what_to_import IN VARCHAR2 DEFAULT NULL,
12698 p_commit_size IN NUMBER DEFAULT 1000,
12699 x_return_status OUT NOCOPY VARCHAR2,
12700 x_msg_count OUT NOCOPY NUMBER,
12701 x_msg_data OUT NOCOPY VARCHAR2
12702 )
12703 IS
12704
12705 l_api_name CONSTANT VARCHAR2(30) := 'Import_Vendors';
12706 l_api_version CONSTANT NUMBER := 1.0;
12707
12708 l_program_application_id NUMBER := FND_GLOBAL.prog_appl_id;
12709 l_program_id NUMBER := FND_GLOBAL.conc_program_id;
12710 l_request_id NUMBER := FND_GLOBAL.conc_request_id;
12711
12712 l_return_status VARCHAR2(2000);
12713 l_msg_count NUMBER;
12714 l_msg_data VARCHAR2(2000);
12715 l_vendor_id NUMBER;
12716 l_party_id NUMBER;
12717
12718 CURSOR vendor_int_cur IS
12719 SELECT *
12720 FROM Ap_Suppliers_Int
12721 WHERE import_request_id = l_request_id
12722 AND vendor_interface_id IS NOT NULL
12723 ORDER BY segment1;
12724
12725 vendor_int_rec vendor_int_cur%ROWTYPE;
12726 vendor_rec r_vendor_rec_type;
12727
12728 /* Variable Declaration for IBY */
12729 ext_payee_rec IBY_DISBURSEMENT_SETUP_PUB.External_Payee_Rec_Type;
12730 ext_payee_tab IBY_DISBURSEMENT_SETUP_PUB.External_Payee_Tab_Type;
12731 ext_payee_id_rec IBY_DISBURSEMENT_SETUP_PUB.Ext_Payee_Id_Rec_Type;
12732 ext_payee_id_tab IBY_DISBURSEMENT_SETUP_PUB.Ext_Payee_Id_Tab_Type;
12733 ext_payee_create_rec IBY_DISBURSEMENT_SETUP_PUB.Ext_Payee_Create_Rec_Type;
12734 ext_payee_create_tab IBY_DISBURSEMENT_SETUP_PUB.Ext_Payee_Create_Tab_Type;
12735 l_temp_ext_acct_id NUMBER;
12736 ext_response_rec IBY_FNDCPT_COMMON_PUB.Result_Rec_Type;
12737
12738 l_ext_payee_id NUMBER;
12739 l_bank_acct_id NUMBER;
12740
12741 CURSOR IBY_EXT_ACCTS_CUR (p_unique_ref IN NUMBER) IS
12742 SELECT temp_ext_bank_acct_id
12743 FROM IBY_TEMP_EXT_BANK_ACCTS
12744 WHERE calling_app_unique_ref1 = p_unique_ref
12745 --Bug 7412849 (Base Bug 7387700) As status can be NULL, this where condition always resolves to FALSE.
12746 --Added NVL around 'status'.
12747 --AND status <> 'PROCESSED';
12748 AND nvl(status,'NEW') <> 'PROCESSED';
12749
12750 l_debug_info varchar2(500); -- Bug 6823885
12751
12752 BEGIN
12753
12754 -- Standard Start of API savepoint
12755 SAVEPOINT Import_Vendor_PUB;
12756
12757 -- Standard call to check for call compatibility.
12758 IF NOT FND_API.Compatible_API_Call (l_api_version,
12759 p_api_version,
12760 l_api_name,
12761 G_PKG_NAME )
12762 THEN
12763 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
12764 END IF;
12765
12766 FND_MSG_PUB.initialize;
12767
12768 g_user_id := FND_GLOBAL.USER_ID;
12769 g_login_id := FND_GLOBAL.LOGIN_ID;
12770 g_source := p_source;
12771 -- Initialize API return status to success
12772 x_return_status := FND_API.G_RET_STS_SUCCESS;
12773
12774 -- API body
12775
12776 IF g_source <> 'IMPORT' THEN
12777 NULL;
12778 ELSE
12779 --udhenuko Bug 6823885 This update statement resets the unprocessed rows so
12780 -- that they get picked in the current run.
12781 UPDATE Ap_Suppliers_Int api
12782 SET import_request_id = NULL
12783 WHERE import_request_id IS NOT NULL
12784 AND NVL(status,'NEW') IN ('NEW', 'REJECTED')
12785 AND EXISTS
12786 ( SELECT 'Request Completed'
12787 FROM fnd_concurrent_requests fcr
12788 WHERE fcr.request_id = api.import_request_id
12789 AND fcr.phase_code = 'C' );
12790 -- udhenuko Bug 6823885 End
12791 --bug 5591652
12792 DELETE AP_SUPPLIER_INT_REJECTIONS
12793 WHERE PARENT_TABLE='AP_SUPPLIERS_INT';
12794 -- Updating Interface Record with request id
12795
12796 UPDATE Ap_Suppliers_Int
12797 SET import_request_id = l_request_id
12798 WHERE import_request_id IS NULL AND
12799 ((p_what_to_import = 'ALL' AND nvl(status,'NEW') in ('NEW', 'REJECTED')) OR
12800 (p_what_to_import = 'NEW' AND nvl(status,'NEW') = 'NEW') OR
12801 (p_what_to_import = 'REJECTED' AND nvl(status,'NEW') = 'REJECTED'));
12802
12803 COMMIT;
12804
12805 -- Cursor processing for vendor contact interface record
12806 OPEN vendor_int_cur;
12807 LOOP
12808
12809 FETCH vendor_int_cur
12810 INTO vendor_int_rec;
12811 EXIT WHEN vendor_int_cur%NOTFOUND;
12812
12813 vendor_rec.vendor_interface_id := vendor_int_rec.vendor_interface_id;
12814 vendor_rec.vendor_name := vendor_int_rec.vendor_name;
12815 vendor_rec.segment1 := vendor_int_rec.segment1;
12816 vendor_rec.vendor_name_alt := vendor_int_rec.vendor_name_alt;
12817 vendor_rec.summary_flag := vendor_int_rec.summary_flag;
12818 vendor_rec.enabled_flag := vendor_int_rec.enabled_flag;
12819 vendor_rec.employee_id := vendor_int_rec.employee_id;
12820 vendor_rec.vendor_type_lookup_code := vendor_int_rec.vendor_type_lookup_code;
12821 vendor_rec.customer_num := vendor_int_rec.customer_num;
12822 vendor_rec.one_time_flag := vendor_int_rec.one_time_flag;
12823 vendor_rec.min_order_amount := vendor_int_rec.min_order_amount;
12824 vendor_rec.terms_id := vendor_int_rec.terms_id;
12825 vendor_rec.terms_name := vendor_int_rec.terms_name;
12826 vendor_rec.set_of_books_id := vendor_int_rec.set_of_books_id;
12827 vendor_rec.always_take_disc_flag := vendor_int_rec.always_take_disc_flag;
12828 vendor_rec.pay_date_basis_lookup_code := vendor_int_rec.pay_date_basis_lookup_code;
12829 vendor_rec.pay_group_lookup_code := vendor_int_rec.pay_group_lookup_code;
12830 vendor_rec.payment_priority := vendor_int_rec.payment_priority;
12831 vendor_rec.invoice_currency_code := vendor_int_rec.invoice_currency_code;
12832 vendor_rec.payment_currency_code := vendor_int_rec.payment_currency_code;
12833 vendor_rec.invoice_amount_limit := vendor_int_rec.invoice_amount_limit;
12834 vendor_rec.hold_all_payments_flag := vendor_int_rec.hold_all_payments_flag;
12835 vendor_rec.hold_future_payments_flag := vendor_int_rec.hold_future_payments_flag;
12836 vendor_rec.hold_reason := vendor_int_rec.hold_reason;
12837 vendor_rec.jgzz_fiscal_code := vendor_int_rec.num_1099;--bug6050423
12838 vendor_rec.type_1099 := vendor_int_rec.type_1099;
12839 vendor_rec.organization_type_lookup_code :=
12840 vendor_int_rec.organization_type_lookup_code;
12841 vendor_rec.start_date_active := vendor_int_rec.start_date_active;
12842 vendor_rec.end_date_active := vendor_int_rec.end_date_active;
12843 vendor_rec.minority_group_lookup_code := vendor_int_rec.minority_group_lookup_code;
12844 vendor_rec.women_owned_flag := vendor_int_rec.women_owned_flag;
12845 vendor_rec.small_business_flag := vendor_int_rec.small_business_flag;
12846 vendor_rec.SIC_Code := vendor_int_rec.standard_industry_class;
12847 vendor_rec.hold_flag := vendor_int_rec.hold_flag;
12848 vendor_rec.purchasing_hold_reason := vendor_int_rec.purchasing_hold_reason;
12849 vendor_rec.hold_by := vendor_int_rec.hold_by;
12850 vendor_rec.hold_date := vendor_int_rec.hold_date;
12851 vendor_rec.terms_date_basis := vendor_int_rec.terms_date_basis;
12852 vendor_rec.inspection_required_flag := vendor_int_rec.inspection_required_flag;
12853 vendor_rec.receipt_required_flag := vendor_int_rec.receipt_required_flag;
12854 vendor_rec.qty_rcv_tolerance := vendor_int_rec.qty_rcv_tolerance;
12855 vendor_rec.qty_rcv_exception_code := vendor_int_rec.qty_rcv_exception_code;
12856 vendor_rec.enforce_ship_to_location_code :=
12857 vendor_int_rec.enforce_ship_to_location_code;
12858 vendor_rec.days_early_receipt_allowed := vendor_int_rec.days_early_receipt_allowed;
12859 vendor_rec.days_late_receipt_allowed := vendor_int_rec.days_late_receipt_allowed;
12860 vendor_rec.receipt_days_exception_code := vendor_int_rec.receipt_days_exception_code;
12861 vendor_rec.receiving_routing_id := vendor_int_rec.receiving_routing_id;
12862 vendor_rec.allow_substitute_receipts_flag :=
12863 vendor_int_rec.allow_substitute_receipts_flag;
12864 vendor_rec.allow_unordered_receipts_flag :=
12865 vendor_int_rec.allow_unordered_receipts_flag;
12866 vendor_rec.hold_unmatched_invoices_flag :=
12867 vendor_int_rec.hold_unmatched_invoices_flag;
12868 vendor_rec.tax_verification_date := vendor_int_rec.tax_verification_date;
12869 vendor_rec.name_control := vendor_int_rec.name_control;
12870 vendor_rec.state_reportable_flag := vendor_int_rec.state_reportable_flag;
12871 vendor_rec.federal_reportable_flag := vendor_int_rec.federal_reportable_flag;
12872 vendor_rec.attribute_category := vendor_int_rec.attribute_category;
12873 vendor_rec.attribute1 := vendor_int_rec.attribute1;
12874 vendor_rec.attribute2 := vendor_int_rec.attribute2;
12875 vendor_rec.attribute3 := vendor_int_rec.attribute3;
12876 vendor_rec.attribute4 := vendor_int_rec.attribute4;
12877 vendor_rec.attribute5 := vendor_int_rec.attribute5;
12878 vendor_rec.attribute6 := vendor_int_rec.attribute6;
12879 vendor_rec.attribute7 := vendor_int_rec.attribute7;
12880 vendor_rec.attribute8 := vendor_int_rec.attribute8;
12881 vendor_rec.attribute9 := vendor_int_rec.attribute9;
12882 vendor_rec.attribute10 := vendor_int_rec.attribute10;
12883 vendor_rec.attribute11 := vendor_int_rec.attribute11;
12884 vendor_rec.attribute12 := vendor_int_rec.attribute12;
12885 vendor_rec.attribute13 := vendor_int_rec.attribute13;
12886 vendor_rec.attribute14 := vendor_int_rec.attribute14;
12887 vendor_rec.attribute15 := vendor_int_rec.attribute15;
12888 vendor_rec.auto_calculate_interest_flag :=
12889 vendor_int_rec.auto_calculate_interest_flag;
12890 vendor_rec.exclude_freight_from_discount :=
12891 vendor_int_rec.exclude_freight_from_discount;
12892 vendor_rec.tax_reporting_name := vendor_int_rec.tax_reporting_name;
12893 vendor_rec.allow_awt_flag := vendor_int_rec.allow_awt_flag;
12894 vendor_rec.awt_group_id := vendor_int_rec.awt_group_id;
12895 vendor_rec.awt_group_name := vendor_int_rec.awt_group_name;
12896 vendor_rec.global_attribute1 := vendor_int_rec.global_attribute1;
12897 vendor_rec.global_attribute2 := vendor_int_rec.global_attribute2;
12898 vendor_rec.global_attribute3 := vendor_int_rec.global_attribute3;
12899 vendor_rec.global_attribute4 := vendor_int_rec.global_attribute4;
12900 vendor_rec.global_attribute5 := vendor_int_rec.global_attribute5;
12901 vendor_rec.global_attribute6 := vendor_int_rec.global_attribute6;
12902 vendor_rec.global_attribute7 := vendor_int_rec.global_attribute7;
12903 vendor_rec.global_attribute8 := vendor_int_rec.global_attribute8;
12904 vendor_rec.global_attribute9 := vendor_int_rec.global_attribute9;
12905 vendor_rec.global_attribute10 := vendor_int_rec.global_attribute10;
12906 vendor_rec.global_attribute11 := vendor_int_rec.global_attribute11;
12907 vendor_rec.global_attribute12 := vendor_int_rec.global_attribute12;
12908 vendor_rec.global_attribute13 := vendor_int_rec.global_attribute13;
12909 vendor_rec.global_attribute14 := vendor_int_rec.global_attribute14;
12910 vendor_rec.global_attribute15 := vendor_int_rec.global_attribute15;
12911 vendor_rec.global_attribute16 := vendor_int_rec.global_attribute16;
12912 vendor_rec.global_attribute17 := vendor_int_rec.global_attribute17;
12913 vendor_rec.global_attribute18 := vendor_int_rec.global_attribute18;
12914 vendor_rec.global_attribute19 := vendor_int_rec.global_attribute19;
12915 vendor_rec.global_attribute20 := vendor_int_rec.global_attribute20;
12916 vendor_rec.global_attribute_category := vendor_int_rec.global_attribute_category;
12917 vendor_rec.bank_charge_bearer := vendor_int_rec.bank_charge_bearer;
12918 vendor_rec.match_option := vendor_int_rec.match_option;
12919 vendor_rec.create_debit_memo_flag := vendor_int_rec.create_debit_memo_flag;
12920 vendor_rec.tax_reference := vendor_int_rec.vat_registration_num; --bug6070735
12921
12922 /* Populating IBY Records and Table */
12923 -- As per the discussion with Omar/Jayanta, we will only
12924 -- have payables payment function and no more employee expenses
12925 -- payment function.
12926
12927 ext_payee_rec.payment_function := 'PAYABLES_DISB';
12928 ext_payee_rec.payer_org_type := 'OPERATING_UNIT';
12929 ext_payee_rec.exclusive_pay_flag :=NVL(vendor_int_rec.exclusive_payment_flag,'N');
12930 --bug6495364
12931 --CD
12932 ext_payee_rec.default_pmt_method := vendor_int_rec.payment_method_lookup_code;
12933 ext_payee_rec.ece_tp_loc_code := vendor_int_rec.ece_tp_location_code;
12934 ext_payee_rec.bank_charge_bearer := vendor_int_rec.iby_bank_charge_bearer;
12935 ext_payee_rec.bank_instr1_code := vendor_int_rec.bank_instruction1_code;
12936 ext_payee_rec.bank_instr2_code := vendor_int_rec.bank_instruction2_code;
12937 ext_payee_rec.bank_instr_detail := vendor_int_rec.bank_instruction_details;
12938 ext_payee_rec.pay_reason_code := vendor_int_rec.payment_reason_code;
12939 ext_payee_rec.pay_reason_com := vendor_int_rec.payment_reason_comments;
12940 ext_payee_rec.pay_message1 := vendor_int_rec.payment_text_message1;
12941 ext_payee_rec.pay_message2 := vendor_int_rec.payment_text_message2;
12942 ext_payee_rec.pay_message3 := vendor_int_rec.payment_text_message3;
12943 ext_payee_rec.delivery_channel := vendor_int_rec.delivery_channel_code;
12944 ext_payee_rec.pmt_format := vendor_int_rec.payment_format_code;
12945 ext_payee_rec.settlement_priority := vendor_int_rec.settlement_priority;
12946 -- Bug 7437549 Start
12947 -- Note that we must populate these EDI related fields only to ext_payee_rec
12948 -- Because only this record is passed for call to IBY. There is no need
12949 -- to populate vendor_rec.ext_payee_rec. Even if we pass it wont be used.
12950 ext_payee_rec.edi_payment_format := vendor_int_rec.edi_payment_format;
12951 ext_payee_rec.edi_transaction_handling := vendor_int_rec.edi_transaction_handling;
12952 ext_payee_rec.edi_payment_method := vendor_int_rec.edi_payment_method;
12953 ext_payee_rec.edi_remittance_method := vendor_int_rec.edi_remittance_method;
12954 ext_payee_rec.edi_remittance_instruction := vendor_int_rec.edi_remittance_instruction;
12955 -- Bug 7437549 End
12956 --6458813 Populating the ext_payee_rec of Vendor_rec
12957 vendor_rec.ext_payee_rec.default_pmt_method := vendor_int_rec.payment_method_lookup_code;
12958 --bug6495364
12959 vendor_rec.ext_payee_rec.payment_function := 'PAYABLES_DISB';
12960 vendor_rec.ext_payee_rec.payer_org_type := 'OPERATING_UNIT';
12961 vendor_rec.ext_payee_rec.exclusive_pay_flag := nvl(vendor_int_rec.exclusive_payment_flag,'N');
12962 vendor_rec.ext_payee_rec.ece_tp_loc_code := vendor_int_rec.ece_tp_location_code;
12963 vendor_rec.ext_payee_rec.bank_charge_bearer := vendor_int_rec.iby_bank_charge_bearer;
12964 vendor_rec.ext_payee_rec.bank_instr1_code := vendor_int_rec.bank_instruction1_code;
12965 vendor_rec.ext_payee_rec.bank_instr2_code := vendor_int_rec.bank_instruction2_code;
12966 vendor_rec.ext_payee_rec.bank_instr_detail := vendor_int_rec.bank_instruction_details;
12967 vendor_rec.ext_payee_rec.pay_reason_code := vendor_int_rec.payment_reason_code;
12968 vendor_rec.ext_payee_rec.pay_reason_com := vendor_int_rec.payment_reason_comments;
12969 vendor_rec.ext_payee_rec.pay_message1 := vendor_int_rec.payment_text_message1;
12970 vendor_rec.ext_payee_rec.pay_message2 := vendor_int_rec.payment_text_message2;
12971 vendor_rec.ext_payee_rec.pay_message3 := vendor_int_rec.payment_text_message3;
12972 vendor_rec.ext_payee_rec.delivery_channel := vendor_int_rec.delivery_channel_code;
12973 vendor_rec.ext_payee_rec.pmt_format := vendor_int_rec.payment_format_code;
12974 vendor_rec.ext_payee_rec.settlement_priority := vendor_int_rec.settlement_priority;
12975 -- 6458813 ends
12976
12977 Create_Vendor
12978 ( p_api_version => 1.0,
12979 p_init_msg_list => FND_API.G_FALSE,
12980 p_commit => FND_API.G_FALSE,
12981 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
12982 x_return_status => l_return_status,
12983 x_msg_count => l_msg_count,
12984 x_msg_data => l_msg_data,
12985 p_vendor_rec => vendor_rec,
12986 x_vendor_id => l_vendor_id,
12987 x_party_id => l_party_id);
12988
12989 IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
12990
12991 UPDATE Ap_Suppliers_Int
12992 SET status = 'PROCESSED'
12993 WHERE vendor_interface_id = vendor_rec.vendor_interface_id;
12994
12995 UPDATE Ap_Supplier_Sites_Int
12996 SET vendor_id = l_vendor_id
12997 WHERE vendor_interface_id = vendor_rec.vendor_interface_id;
12998
12999 UPDATE Ap_Sup_Site_Contact_Int
13000 SET vendor_id = l_vendor_id
13001 WHERE vendor_interface_id = vendor_rec.vendor_interface_id;
13002
13003 ext_payee_rec.payee_party_id := l_party_id;
13004
13005 /* Calling IBY Payee Validation API */
13006 IBY_DISBURSEMENT_SETUP_PUB.Validate_External_Payee
13007 ( p_api_version => 1.0,
13008 p_init_msg_list => FND_API.G_FALSE,
13009 p_ext_payee_rec => ext_payee_rec,
13010 x_return_status => l_return_status,
13011 x_msg_count => l_msg_count,
13012 x_msg_data => l_msg_data);
13013
13014 IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
13015
13016 --bug 5568861 ext_payee_tab(ext_payee_tab.first) := ext_payee_rec;
13017 ext_payee_tab(1) := ext_payee_rec;
13018
13019 /*Calling IBY Payee Creation API */
13020 IBY_DISBURSEMENT_SETUP_PUB.Create_External_Payee
13021 ( p_api_version => 1.0,
13022 p_init_msg_list => FND_API.G_FALSE,
13023 p_ext_payee_tab => ext_payee_tab,
13024 x_return_status => l_return_status,
13025 x_msg_count => l_msg_count,
13026 x_msg_data => l_msg_data,
13027 x_ext_payee_id_tab => ext_payee_id_tab,
13028 x_ext_payee_status_tab => ext_payee_create_tab);
13029
13030 IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
13031 --bug 5568861
13032 l_ext_payee_id := ext_payee_id_tab(1).ext_payee_id;
13033
13034 UPDATE IBY_TEMP_EXT_BANK_ACCTS
13035 SET ext_payee_id = l_ext_payee_id
13036 ,account_owner_party_id = l_party_id -- bug 6753331
13037 WHERE calling_app_unique_ref1 = vendor_rec.vendor_interface_id;
13038
13039 -- Cursor processing for iby temp bank account record
13040 OPEN iby_ext_accts_cur(vendor_rec.vendor_interface_id);
13041 LOOP
13042
13043 FETCH iby_ext_accts_cur
13044 INTO l_temp_ext_acct_id;
13045 EXIT WHEN iby_ext_accts_cur%NOTFOUND;
13046
13047 /* Calling IBY Bank Account Validation API */
13048 IBY_DISBURSEMENT_SETUP_PUB.Validate_Temp_Ext_Bank_Acct
13049 ( p_api_version => 1.0,
13050 p_init_msg_list => FND_API.G_FALSE,
13051 x_return_status => l_return_status,
13052 x_msg_count => l_msg_count,
13053 x_msg_data => l_msg_data,
13054 p_temp_ext_acct_id => l_temp_ext_acct_id);
13055
13056 IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
13057 /* Calling IBY Bank Account Creation API */
13058 -- Bug 6845995. Calling overloaded procedure
13059 -- which will create the association between
13060 -- supplier and bank account.
13061 IBY_DISBURSEMENT_SETUP_PUB.Create_Temp_Ext_Bank_Acct
13062 ( p_api_version => 1.0,
13063 p_init_msg_list => FND_API.G_FALSE,
13064 x_return_status => l_return_status,
13065 x_msg_count => l_msg_count,
13066 x_msg_data => l_msg_data,
13067 p_temp_ext_acct_id => l_temp_ext_acct_id,
13068 p_association_level => 'S',
13069 p_supplier_site_id => null,
13070 p_party_site_id => null,
13071 p_org_id => null,
13072 p_org_type => null, -- veramach added p_org_type as a new paramter for bug 7153777
13073 x_bank_acc_id => l_bank_acct_id,
13074 x_response => ext_response_rec);
13075
13076 IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
13077 UPDATE iby_temp_ext_bank_accts
13078 SET status = 'PROCESSED'
13079 WHERE temp_ext_bank_acct_id = l_temp_ext_acct_id;
13080
13081 ELSE
13082 UPDATE iby_temp_ext_bank_accts
13083 SET status = 'REJECTED'
13084 WHERE temp_ext_bank_acct_id = l_temp_ext_acct_id;
13085
13086 IF (Insert_Rejections(
13087 'IBY_TEMP_EXT_BANK_ACCTS',
13088 vendor_rec.vendor_interface_id,
13089 'AP_BANK_ACCT_CREATION',
13090 g_user_id,
13091 g_login_id,
13092 'Import_Vendor') <> TRUE) THEN
13093 --
13094 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
13095 FND_MSG_PUB.Count_And_Get(
13096 p_count => l_msg_count,
13097 p_data => l_msg_data);
13098 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
13099 l_api_name,'Parameters: '
13100 ||' Vendor_Interface_Id: '||vendor_rec.vendor_interface_id
13101 ||' Acct Validation Msg: '||l_msg_data);
13102 END IF;
13103 END IF;
13104
13105 -- Bug 5491139 hkaniven start --
13106 FND_MESSAGE.SET_NAME('SQLAP','AP_BANK_ACCT_CREATION');
13107 FND_MSG_PUB.ADD;
13108 -- Bug 5491139 hkaniven end --
13109 END IF; -- Bank Account Creation API
13110
13111 ELSE
13112 UPDATE iby_temp_ext_bank_accts
13113 SET status = 'REJECTED'
13114 WHERE temp_ext_bank_acct_id = l_temp_ext_acct_id;
13115
13116 IF (Insert_Rejections(
13117 'IBY_TEMP_EXT_BANK_ACCTS',
13118 vendor_rec.vendor_interface_id,
13119 'AP_INVALID_BANK_ACCT_INFO',
13120 g_user_id,
13121 g_login_id,
13122 'Import_Vendor') <> TRUE) THEN
13123 --
13124 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
13125 FND_MSG_PUB.Count_And_Get(
13126 p_count => l_msg_count,
13127 p_data => l_msg_data);
13128 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
13129 l_api_name,'Parameters: '
13130 ||' Vendor_Interface_Id: '||vendor_rec.vendor_interface_id
13131 ||' Acct Validation Msg: '||l_msg_data);
13132 END IF;
13133 END IF;
13134
13135 -- Bug 5491139 hkaniven start --
13136 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_BANK_ACCT_INFO');
13137 FND_MSG_PUB.ADD;
13138 -- Bug 5491139 hkaniven end --
13139 END IF; -- Bank Account Validation API
13140
13141 END LOOP;
13142 CLOSE iby_ext_accts_cur;
13143
13144 ELSE
13145 IF (Insert_Rejections(
13146 'AP_SUPPLIERS_INT',
13147 vendor_rec.vendor_interface_id,
13148 'AP_PAYEE_CREATION',
13149 g_user_id,
13150 g_login_id,
13151 'Import_Vendor') <> TRUE) THEN
13152 --
13153 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
13154 FND_MSG_PUB.Count_And_Get(
13155 p_count => l_msg_count,
13156 p_data => l_msg_data);
13157 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
13158 l_api_name,'Parameters: '
13159 ||' Vendor_Interface_Id: '||vendor_rec.vendor_interface_id
13160 ||' Payee Validation Msg: '||l_msg_data);
13161 END IF;
13162 END IF;
13163
13164 -- Bug 5491139 hkaniven start --
13165 FND_MESSAGE.SET_NAME('SQLAP','AP_PAYEE_CREATION');
13166 FND_MSG_PUB.ADD;
13167 -- Bug 5491139 hkaniven end --
13168 END IF; -- Payee Creation API
13169
13170 ELSE
13171 IF (Insert_Rejections(
13172 'AP_SUPPLIERS_INT',
13173 vendor_rec.vendor_interface_id,
13174 'AP_INVALID_PAYEE',
13175 g_user_id,
13176 g_login_id,
13177 'Import_Vendor') <> TRUE) THEN
13178 --
13179 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
13180 FND_MSG_PUB.Count_And_Get(
13181 p_count => l_msg_count,
13182 p_data => l_msg_data);
13183 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
13184 l_api_name,'Parameters: '
13185 ||' Vendor_Interface_Id: '||vendor_rec.vendor_interface_id
13186 ||' Payee Validation Msg: '||l_msg_data);
13187 END IF;
13188 END IF;
13189
13190 -- Bug 5491139 hkaniven start --
13191 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PAYEE');
13192 FND_MSG_PUB.ADD;
13193 -- Bug 5491139 hkaniven end --
13194 END IF; -- Payee Validation API
13195
13196 ELSE
13197
13198 UPDATE Ap_Suppliers_Int
13199 SET status = 'REJECTED'
13200 WHERE vendor_interface_id = vendor_rec.vendor_interface_id;
13201
13202 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
13203 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,
13204 ' Rejected Vendor_Interface_Id: '
13205 ||vendor_rec.vendor_interface_id
13206 ||', No. of Messages from Create_Vendor API: '|| l_msg_count
13207 ||', Message From Create_Vendor API: '||l_msg_data);
13208 END IF;
13209
13210 END IF; -- Supplier Creation API
13211
13212 END LOOP;
13213
13214 CLOSE vendor_int_cur;
13215
13216 END IF;
13217 -- End of API body.
13218
13219 COMMIT WORK;
13220
13221 -- Standard call to get message count and if count is 1,
13222 -- get message info.
13223 FND_MSG_PUB.Count_And_Get(
13224 p_count => x_msg_count,
13225 p_data => x_msg_data
13226 );
13227
13228 EXCEPTION
13229 WHEN FND_API.G_EXC_ERROR THEN
13230 ROLLBACK TO Import_Vendor_PUB;
13231 x_return_status := FND_API.G_RET_STS_ERROR ;
13232 FND_MSG_PUB.Count_And_Get
13233 ( p_count => x_msg_count,
13234 p_data => x_msg_data
13235 );
13236 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
13237 ROLLBACK TO Import_Vendor_PUB;
13238 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
13239 FND_MSG_PUB.Count_And_Get
13240 ( p_count => x_msg_count,
13241 p_data => x_msg_data
13242 );
13243 WHEN OTHERS THEN
13244 ROLLBACK TO Import_Vendor_PUB;
13245 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
13246 IF FND_MSG_PUB.Check_Msg_Level
13247 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
13248 FND_MSG_PUB.Add_Exc_Msg
13249 ( G_PKG_NAME,
13250 l_api_name
13251 );
13252 END IF;
13253 FND_MSG_PUB.Count_And_Get
13254 ( p_count => x_msg_count,
13255 p_data => x_msg_data
13256 );
13257 END Import_Vendors;
13258
13259 PROCEDURE Import_Vendor_Sites
13260 ( p_api_version IN NUMBER,
13261 p_source IN VARCHAR2 DEFAULT 'IMPORT',
13262 p_what_to_import IN VARCHAR2 DEFAULT NULL,
13263 p_commit_size IN NUMBER DEFAULT 1000,
13264 x_return_status OUT NOCOPY VARCHAR2,
13265 x_msg_count OUT NOCOPY NUMBER,
13266 x_msg_data OUT NOCOPY VARCHAR2
13267 )
13268 IS
13269
13270 l_api_name CONSTANT VARCHAR2(30) := 'Import_Vendor_Sites';
13271 l_api_version CONSTANT NUMBER := 1.0;
13272
13273 l_program_application_id NUMBER := FND_GLOBAL.prog_appl_id;
13274 l_program_id NUMBER := FND_GLOBAL.conc_program_id;
13275 l_request_id NUMBER := FND_GLOBAL.conc_request_id;
13276
13277 l_return_status VARCHAR2(2000);
13278 l_msg_count NUMBER;
13279 l_msg_data VARCHAR2(2000);
13280 l_vendor_site_id NUMBER;
13281 l_party_site_id NUMBER;
13282 l_location_id NUMBER;
13283
13284 CURSOR site_int_cur IS
13285 SELECT *
13286 FROM Ap_Supplier_Sites_Int
13287 WHERE import_request_id = l_request_id
13288 AND (org_id IS NOT NULL OR operating_unit_name IS NOT NULL)
13289 AND vendor_id IS NOT NULL;
13290
13291 site_int_rec site_int_cur%ROWTYPE;
13292 site_rec r_vendor_site_rec_type;
13293
13294 /* Variable Declaration for IBY */
13295 ext_payee_rec IBY_DISBURSEMENT_SETUP_PUB.External_Payee_Rec_Type;
13296 ext_payee_tab IBY_DISBURSEMENT_SETUP_PUB.External_Payee_Tab_Type;
13297 ext_payee_id_rec IBY_DISBURSEMENT_SETUP_PUB.Ext_Payee_Id_Rec_Type;
13298 ext_payee_id_tab IBY_DISBURSEMENT_SETUP_PUB.Ext_Payee_Id_Tab_Type;
13299 ext_payee_create_rec IBY_DISBURSEMENT_SETUP_PUB.Ext_Payee_Create_Rec_Type;
13300 ext_payee_create_tab IBY_DISBURSEMENT_SETUP_PUB.Ext_Payee_Create_Tab_Type;
13301 l_temp_ext_acct_id NUMBER;
13302 ext_response_rec IBY_FNDCPT_COMMON_PUB.Result_Rec_Type;
13303
13304 l_party_id NUMBER;
13305 l_ext_payee_id NUMBER;
13306 l_bank_acct_id NUMBER;
13307
13308 CURSOR IBY_EXT_ACCTS_CUR (p_unique_ref IN NUMBER) IS
13309 SELECT temp_ext_bank_acct_id
13310 FROM IBY_TEMP_EXT_BANK_ACCTS
13311 WHERE calling_app_unique_ref2 = p_unique_ref
13312 --Bug 7412849 (Base Bug 7387700) As status can be NULL, this where condition always resolves to FALSE.
13313 --Added NVL around 'status'.
13314 --AND status <> 'PROCESSED';
13315 AND nvl(status,'NEW') <> 'PROCESSED';
13316
13317 l_debug_info varchar2(500); -- Bug 6823885
13318
13319 BEGIN
13320
13321 -- Standard Start of API savepoint
13322 SAVEPOINT Import_Vendor_Sites_PUB;
13323
13324 -- Standard call to check for call compatibility.
13325 IF NOT FND_API.Compatible_API_Call (l_api_version,
13326 p_api_version,
13327 l_api_name,
13328 G_PKG_NAME )
13329 THEN
13330 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
13331 END IF;
13332
13333 FND_MSG_PUB.initialize;
13334
13335 g_user_id := FND_GLOBAL.USER_ID;
13336 g_login_id := FND_GLOBAL.LOGIN_ID;
13337 g_source := p_source;
13338 -- Initialize API return status to success
13339 x_return_status := FND_API.G_RET_STS_SUCCESS;
13340
13341 -- API body
13342
13343 IF g_source <> 'IMPORT' THEN
13344 NULL;
13345 ELSE
13346 --udhenuko Bug 6823885 This update statement resets the unprocessed rows so
13347 -- that they get picked in the current run.
13348 UPDATE Ap_Supplier_Sites_Int api
13349 SET import_request_id = NULL
13350 WHERE import_request_id IS NOT NULL
13351 AND NVL(status,'NEW') IN ('NEW', 'REJECTED')
13352 AND EXISTS
13353 ( SELECT 'Request Completed'
13354 FROM fnd_concurrent_requests fcr
13355 WHERE fcr.request_id = api.import_request_id
13356 AND fcr.phase_code = 'C' );
13357 -- udhenuko Bug 6823885 End
13358 --bug 5584046
13359 DELETE AP_SUPPLIER_INT_REJECTIONS
13360 WHERE PARENT_TABLE='AP_SUPPLIER_SITES_INT';
13361
13362 -- Updating Interface Record with request id
13363
13364
13365 UPDATE Ap_Supplier_Sites_Int
13366 SET import_request_id = l_request_id
13367 WHERE import_request_id IS NULL AND
13368 ((p_what_to_import = 'ALL' AND nvl(status,'NEW') in ('NEW', 'REJECTED')) OR
13369 (p_what_to_import = 'NEW' AND nvl(status,'NEW') = 'NEW') OR
13370 (p_what_to_import = 'REJECTED' AND nvl(status,'NEW') = 'REJECTED'));
13371
13372 UPDATE Ap_Supplier_Sites_Int
13373 SET status = 'REJECTED',
13374 import_request_id = l_request_id
13375 WHERE (operating_unit_name IS NULL AND org_id IS NULL) OR
13376 vendor_id IS NULL ;
13377
13378 --bug 5584046
13379 INSERT INTO Ap_Supplier_Int_Rejections
13380 (SELECT 'AP_SUPPLIER_SITES_INT',vendor_site_interface_id,'AP_ORG_INFO_NULL',
13381 g_user_id,SYSDATE,g_login_id,g_user_id,SYSDATE
13382 FROM Ap_Supplier_Sites_Int
13383 WHERE STATUS='REJECTED'
13384 AND import_request_id=l_request_id
13385 AND (operating_unit_name IS NULL and org_id IS NULL))
13386 UNION
13387 select 'AP_SUPPLIER_SITES_INT',vendor_site_interface_id,'AP_VENDOR_ID_NULL',
13388 g_user_id,SYSDATE,g_login_id,g_user_id,SYSDATE
13389 from Ap_Supplier_Sites_Int
13390 where status='REJECTED'
13391 AND import_request_id=l_request_id
13392 AND vendor_id IS NULL;
13393 --bug 5584046
13394 COMMIT;
13395
13396 -- Cursor processing for vendor contact interface record
13397 OPEN site_int_cur;
13398 LOOP
13399
13400 FETCH site_int_cur
13401 INTO site_int_rec;
13402 EXIT WHEN site_int_cur%NOTFOUND;
13403
13404 site_rec.vendor_site_interface_id := site_int_rec.vendor_site_interface_id;
13405 site_rec.vendor_interface_id := site_int_rec.vendor_interface_id;
13406 site_rec.vendor_id := site_int_rec.vendor_id;
13407 site_rec.vendor_site_code := site_int_rec.vendor_site_code;
13408 site_rec.vendor_site_code_alt := site_int_rec.vendor_site_code_alt;
13409 site_rec.purchasing_site_flag := site_int_rec.purchasing_site_flag;
13410 site_rec.rfq_only_site_flag := site_int_rec.rfq_only_site_flag;
13411 site_rec.pay_site_flag := site_int_rec.pay_site_flag;
13412 site_rec.attention_ar_flag := site_int_rec.attention_ar_flag;
13413 /* Bug 6620831. Trimming Trailing Spaces for address related fields */
13414 site_rec.address_line1 := rtrim(site_int_rec.address_line1);
13415 site_rec.address_lines_alt := rtrim(site_int_rec.address_lines_alt);
13416 site_rec.address_line2 := rtrim(site_int_rec.address_line2);
13417 site_rec.address_line3 := rtrim(site_int_rec.address_line3);
13418 site_rec.city := rtrim(site_int_rec.city);
13419 site_rec.state := rtrim(site_int_rec.state);
13420 site_rec.zip := site_int_rec.zip;
13421 site_rec.province := site_int_rec.province;
13422 site_rec.country := site_int_rec.country;
13423 site_rec.phone := site_int_rec.phone;
13424 site_rec.area_code := site_int_rec.area_code;
13425 site_rec.customer_num := site_int_rec.customer_num;
13426 site_rec.ship_to_location_id := site_int_rec.ship_to_location_id;
13427 site_rec.ship_to_location_code := site_int_rec.ship_to_location_code;
13428 site_rec.bill_to_location_id := site_int_rec.bill_to_location_id;
13429 site_rec.bill_to_location_code := site_int_rec.bill_to_location_code;
13430 site_rec.ship_via_lookup_code := site_int_rec.ship_via_lookup_code;
13431 site_rec.freight_terms_lookup_code := site_int_rec.freight_terms_lookup_code;
13432 site_rec.fob_lookup_code := site_int_rec.fob_lookup_code;
13433 site_rec.inactive_date := site_int_rec.inactive_date;
13434 site_rec.fax := site_int_rec.fax;
13435 site_rec.fax_area_code := site_int_rec.fax_area_code;
13436 site_rec.telex := site_int_rec.telex;
13437 site_rec.terms_date_basis := site_int_rec.terms_date_basis;
13438 site_rec.distribution_set_id := site_int_rec.distribution_set_id;
13439 site_rec.distribution_set_name := site_int_rec.distribution_set_name;
13440 site_rec.accts_pay_code_combination_id :=
13441 site_int_rec.accts_pay_code_combination_id;
13442 site_rec.prepay_code_combination_id := site_int_rec.prepay_code_combination_id;
13443 site_rec.pay_group_lookup_code := site_int_rec.pay_group_lookup_code;
13444 site_rec.payment_priority := site_int_rec.payment_priority;
13445 site_rec.terms_id := site_int_rec.terms_id;
13446 site_rec.terms_name := site_int_rec.terms_name;
13447 /* Added for bug#7363316 Start */
13448 site_rec.tolerance_id := site_int_rec.tolerance_id;
13449 site_rec.tolerance_name := site_int_rec.tolerance_name;
13450 /* Added for bug#7363316 End */
13451 site_rec.invoice_amount_limit := site_int_rec.invoice_amount_limit;
13452 site_rec.pay_date_basis_lookup_code := site_int_rec.pay_date_basis_lookup_code;
13453 site_rec.always_take_disc_flag := site_int_rec.always_take_disc_flag;
13454 site_rec.invoice_currency_code := site_int_rec.invoice_currency_code;
13455 site_rec.payment_currency_code := site_int_rec.payment_currency_code;
13456 site_rec.hold_all_payments_flag := site_int_rec.hold_all_payments_flag;
13457 site_rec.hold_future_payments_flag := site_int_rec.hold_future_payments_flag;
13458 site_rec.hold_reason := site_int_rec.hold_reason;
13459 site_rec.hold_unmatched_invoices_flag := site_int_rec.hold_unmatched_invoices_flag;
13460 site_rec.tax_reporting_site_flag := site_int_rec.tax_reporting_site_flag;
13461 site_rec.attribute_category := site_int_rec.attribute_category;
13462 site_rec.attribute1 := site_int_rec.attribute1;
13463 site_rec.attribute2 := site_int_rec.attribute2;
13464 site_rec.attribute3 := site_int_rec.attribute3;
13465 site_rec.attribute4 := site_int_rec.attribute4;
13466 site_rec.attribute5 := site_int_rec.attribute5;
13467 site_rec.attribute6 := site_int_rec.attribute6;
13468 site_rec.attribute7 := site_int_rec.attribute7;
13469 site_rec.attribute8 := site_int_rec.attribute8;
13470 site_rec.attribute9 := site_int_rec.attribute9;
13471 site_rec.attribute10 := site_int_rec.attribute10;
13472 site_rec.attribute11 := site_int_rec.attribute11;
13473 site_rec.attribute12 := site_int_rec.attribute12;
13474 site_rec.attribute13 := site_int_rec.attribute13;
13475 site_rec.attribute14 := site_int_rec.attribute14;
13476 site_rec.attribute15 := site_int_rec.attribute15;
13477 site_rec.exclude_freight_from_discount:= site_int_rec.exclude_freight_from_discount;
13478 site_rec.org_id := site_int_rec.org_id;
13479 site_rec.org_name := site_int_rec.operating_unit_name;
13480 site_rec.address_line4 := rtrim(site_int_rec.address_line4);
13481 site_rec.county := site_int_rec.county;
13482 site_rec.address_style := site_int_rec.address_style;
13483 site_rec.language := site_int_rec.language;
13484 site_rec.allow_awt_flag := site_int_rec.allow_awt_flag;
13485 site_rec.awt_group_id := site_int_rec.awt_group_id;
13486 site_rec.awt_group_name := site_int_rec.awt_group_name;
13487 site_rec.global_attribute1 := site_int_rec.global_attribute1;
13488 site_rec.global_attribute2 := site_int_rec.global_attribute2;
13489 site_rec.global_attribute3 := site_int_rec.global_attribute3;
13490 site_rec.global_attribute4 := site_int_rec.global_attribute4;
13491 site_rec.global_attribute5 := site_int_rec.global_attribute5;
13492 site_rec.global_attribute6 := site_int_rec.global_attribute6;
13493 site_rec.global_attribute7 := site_int_rec.global_attribute7;
13494 site_rec.global_attribute8 := site_int_rec.global_attribute8;
13495 site_rec.global_attribute9 := site_int_rec.global_attribute9;
13496 site_rec.global_attribute10 := site_int_rec.global_attribute10;
13497 site_rec.global_attribute11 := site_int_rec.global_attribute11;
13498 site_rec.global_attribute12 := site_int_rec.global_attribute12;
13499 site_rec.global_attribute13 := site_int_rec.global_attribute13;
13500 site_rec.global_attribute14 := site_int_rec.global_attribute14;
13501 site_rec.global_attribute15 := site_int_rec.global_attribute15;
13502 site_rec.global_attribute16 := site_int_rec.global_attribute16;
13503 site_rec.global_attribute17 := site_int_rec.global_attribute17;
13504 site_rec.global_attribute18 := site_int_rec.global_attribute18;
13505 site_rec.global_attribute19 := site_int_rec.global_attribute19;
13506 site_rec.global_attribute20 := site_int_rec.global_attribute20;
13507 site_rec.global_attribute_category := site_int_rec.global_attribute_category;
13508 site_rec.bank_charge_bearer := site_int_rec.bank_charge_bearer;
13509 site_rec.pay_on_code := site_int_rec.pay_on_code;
13510 site_rec.pay_on_receipt_summary_code := site_int_rec.pay_on_receipt_summary_code;
13511 site_rec.default_pay_site_id := site_int_rec.default_pay_site_id;
13512 site_rec.tp_header_id := site_int_rec.tp_header_id;
13513 site_rec.ece_tp_location_code := site_int_rec.ece_tp_location_code;
13514 site_rec.pcard_site_flag := site_int_rec.pcard_site_flag;
13515 site_rec.match_option := site_int_rec.match_option;
13516 site_rec.country_of_origin_code := site_int_rec.country_of_origin_code;
13517 site_rec.future_dated_payment_ccid := site_int_rec.future_dated_payment_ccid;
13518 site_rec.create_debit_memo_flag := site_int_rec.create_debit_memo_flag;
13519 site_rec.supplier_notif_method := site_int_rec.supplier_notif_method;
13520 site_rec.email_address := site_int_rec.email_address;
13521 site_rec.primary_pay_site_flag := site_int_rec.primary_pay_site_flag;
13522 site_rec.shipping_control := site_int_rec.shipping_control;
13523 site_rec.duns_number := site_int_rec.duns_number;
13524 site_rec.retainage_rate := site_int_rec.retainage_rate;
13525 site_rec.vat_code := site_int_rec.vat_code;
13526 -- bug 6645014 To Import VAT Code.
13527 site_rec.vat_registration_num := site_int_rec.vat_registration_num; -- Bug 7207314
13528 site_rec.edi_id_number := site_int_rec.edi_id_number; -- Bug 7437549
13529 ext_payee_rec.payer_org_type := 'OPERATING_UNIT';
13530 ext_payee_rec.exclusive_pay_flag :=NVL(site_int_rec.exclusive_payment_flag,'N');
13531 --bug6495364
13532
13533 -- udhenuko Bug 6823885 Removed the comment for default payment method as this
13534 -- should be populated to create payment methods in IBY tables.
13535 ext_payee_rec.default_pmt_method := site_int_rec.payment_method_lookup_code;
13536 ext_payee_rec.ece_tp_loc_code := site_int_rec.ece_tp_location_code;
13537 --BG
13538 ext_payee_rec.bank_charge_bearer := site_int_rec.iby_bank_charge_bearer;
13539 ext_payee_rec.bank_instr1_code := site_int_rec.bank_instruction1_code;
13540 ext_payee_rec.bank_instr2_code := site_int_rec.bank_instruction2_code;
13541 ext_payee_rec.bank_instr_detail := site_int_rec.bank_instruction_details;
13542 ext_payee_rec.pay_reason_code := site_int_rec.payment_reason_code;
13543 ext_payee_rec.pay_reason_com := site_int_rec.payment_reason_comments;
13544 ext_payee_rec.pay_message1 := site_int_rec.payment_text_message1;
13545 ext_payee_rec.pay_message2 := site_int_rec.payment_text_message2;
13546 ext_payee_rec.pay_message3 := site_int_rec.payment_text_message3;
13547 ext_payee_rec.delivery_channel := site_int_rec.delivery_channel_code;
13548 ext_payee_rec.pmt_format := site_int_rec.payment_format_code;
13549 ext_payee_rec.settlement_priority := site_int_rec.settlement_priority;
13550 -- Bug 7437549 Start
13551 -- Note that we must populate these EDI related fields only to ext_payee_rec
13552 -- Because only this record is passed for call to IBY in case of import.
13553 -- There is no need to populate site_rec.ext_payee_rec.
13554 -- Even if we pass it wont be used.
13555 ext_payee_rec.edi_payment_format := site_int_rec.edi_payment_format;
13556 ext_payee_rec.edi_transaction_handling := site_int_rec.edi_transaction_handling;
13557 ext_payee_rec.edi_payment_method := site_int_rec.edi_payment_method;
13558 ext_payee_rec.edi_remittance_method := site_int_rec.edi_remittance_method;
13559 ext_payee_rec.edi_remittance_instruction := site_int_rec.edi_remittance_instruction;
13560 -- Bug 7437549 End
13561 -- 6458813 Populating the ext_payee_rec of site_rec
13562 site_rec.ext_payee_rec.payer_org_type := 'OPERATING_UNIT';--bug6495364
13563 site_rec.ext_payee_rec.payment_function := 'PAYABLES_DISB';--bug6495364
13564 site_rec.ext_payee_rec.exclusive_pay_flag := nvl(site_int_rec.exclusive_payment_flag,'N');--bug6495364
13565 site_rec.ext_payee_rec.default_pmt_method := site_int_rec.payment_method_lookup_code;
13566 site_rec.ext_payee_rec.ece_tp_loc_code := site_int_rec.ece_tp_location_code;
13567 site_rec.ext_payee_rec.bank_charge_bearer := site_int_rec.iby_bank_charge_bearer;
13568 site_rec.ext_payee_rec.bank_instr1_code := site_int_rec.bank_instruction1_code;
13569 site_rec.ext_payee_rec.bank_instr2_code := site_int_rec.bank_instruction2_code;
13570 site_rec.ext_payee_rec.bank_instr_detail := site_int_rec.bank_instruction_details;
13571 site_rec.ext_payee_rec.pay_reason_code := site_int_rec.payment_reason_code;
13572 site_rec.ext_payee_rec.pay_reason_com := site_int_rec.payment_reason_comments;
13573 site_rec.ext_payee_rec.pay_message1 := site_int_rec.payment_text_message1;
13574 site_rec.ext_payee_rec.pay_message2 := site_int_rec.payment_text_message2;
13575 site_rec.ext_payee_rec.pay_message3 := site_int_rec.payment_text_message3;
13576 site_rec.ext_payee_rec.delivery_channel := site_int_rec.delivery_channel_code;
13577 site_rec.ext_payee_rec.pmt_format := site_int_rec.payment_format_code;
13578 site_rec.ext_payee_rec.settlement_priority := site_int_rec.settlement_priority;
13579 -- 6458813 ends
13580
13581 -- Bug 7429668 start
13582 site_rec.party_site_id := site_int_rec.party_site_id;
13583 site_rec.party_site_name := site_int_rec.party_site_name ;
13584 -- Bug 7429668 end
13585 -- Bug#7642742
13586 site_rec.auto_tax_calc_flag := site_int_rec.auto_tax_calc_flag ;
13587 site_rec.offset_tax_flag := site_int_rec.offset_tax_flag ;
13588
13589 Create_Vendor_Site
13590 ( p_api_version => 1.0,
13591 p_init_msg_list => FND_API.G_FALSE,
13592 p_commit => FND_API.G_FALSE,
13593 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
13594 x_return_status => l_return_status,
13595 x_msg_count => l_msg_count,
13596 x_msg_data => l_msg_data,
13597 p_vendor_site_rec => site_rec,
13598 x_vendor_site_id => l_vendor_site_id,
13599 x_party_site_id => l_party_site_id,
13600 x_location_id => l_location_id);
13601
13602 IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
13603
13604 UPDATE Ap_Supplier_Sites_Int
13605 SET status = 'PROCESSED'
13606 WHERE vendor_site_interface_id =
13607 site_rec.vendor_site_interface_id;
13608
13609 UPDATE AP_Sup_Site_Contact_Int
13610 SET vendor_site_id = l_vendor_site_id
13611 WHERE vendor_id = site_rec.vendor_id
13612 AND vendor_site_code = site_rec.vendor_site_code
13613 AND (org_id = site_rec.org_id OR
13614 operating_unit_name = site_rec.org_name);
13615
13616 ext_payee_rec.supplier_site_id := l_vendor_site_id;
13617 ext_payee_rec.payee_party_site_id := l_party_site_id;
13618
13619 SELECT org_id
13620 INTO ext_payee_rec.payer_org_id
13621 FROM Po_Vendor_Sites_All
13622 WHERE vendor_site_id = l_vendor_site_id;
13623
13624 -- As per the discussion with Omar/Jayanta, we will only
13625 -- have payables payment function and no more employee expenses
13626 -- payment function.
13627
13628
13629 SELECT party_id, 'PAYABLES_DISB'
13630 INTO ext_payee_rec.payee_party_id,
13631 ext_payee_rec.payment_function
13632 FROM Po_Vendors
13633 WHERE vendor_id = site_rec.vendor_id;
13634
13635 /* Calling IBY Payee Validation API */
13636 IBY_DISBURSEMENT_SETUP_PUB.Validate_External_Payee
13637 ( p_api_version => 1.0,
13638 p_init_msg_list => FND_API.G_FALSE,
13639 p_ext_payee_rec => ext_payee_rec,
13640 x_return_status => l_return_status,
13641 x_msg_count => l_msg_count,
13642 x_msg_data => l_msg_data);
13643
13644 IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
13645
13646 --bug 5569961 ext_payee_tab(ext_payee_tab.first) := ext_payee_rec;
13647 ext_payee_tab(1) := ext_payee_rec;
13648
13649 /* Calling IBY Payee Creation API */
13650 IBY_DISBURSEMENT_SETUP_PUB.Create_External_Payee
13651 ( p_api_version => 1.0,
13652 p_init_msg_list => FND_API.G_FALSE,
13653 p_ext_payee_tab => ext_payee_tab,
13654 x_return_status => l_return_status,
13655 x_msg_count => l_msg_count,
13656 x_msg_data => l_msg_data,
13657 x_ext_payee_id_tab => ext_payee_id_tab,
13658 x_ext_payee_status_tab => ext_payee_create_tab);
13659
13660 IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
13661 --bug 5568861 l_ext_payee_id := ext_payee_id_tab(ext_payee_id_tab.first).ext_payee_id;
13662 l_ext_payee_id := ext_payee_id_tab(1).ext_payee_id;
13663
13664 UPDATE IBY_TEMP_EXT_BANK_ACCTS
13665 SET ext_payee_id = l_ext_payee_id
13666 ,account_owner_party_id = ext_payee_rec.payee_party_id --bug 6753331
13667 WHERE calling_app_unique_ref2 = site_rec.vendor_site_interface_id;
13668
13669 -- Cursor processing for iby temp bank account record
13670 OPEN iby_ext_accts_cur(site_rec.vendor_site_interface_id);
13671 LOOP
13672
13673 FETCH iby_ext_accts_cur
13674 INTO l_temp_ext_acct_id;
13675 EXIT WHEN iby_ext_accts_cur%NOTFOUND;
13676
13677 /* Calling IBY Bank Account Validation API */
13678 IBY_DISBURSEMENT_SETUP_PUB.Validate_Temp_Ext_Bank_Acct
13679 ( p_api_version => 1.0,
13680 p_init_msg_list => FND_API.G_FALSE,
13681 x_return_status => l_return_status,
13682 x_msg_count => l_msg_count,
13683 x_msg_data => l_msg_data,
13684 p_temp_ext_acct_id => l_temp_ext_acct_id);
13685
13686 IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
13687 /* Calling IBY Bank Account Creation API */
13688 -- Bug 6845995. Calling overloaded procedure
13689 -- which will create the association between
13690 -- supplier site and bank account.
13691 IBY_DISBURSEMENT_SETUP_PUB.Create_Temp_Ext_Bank_Acct
13692 ( p_api_version => 1.0,
13693 p_init_msg_list => FND_API.G_FALSE,
13694 x_return_status => l_return_status,
13695 x_msg_count => l_msg_count,
13696 x_msg_data => l_msg_data,
13697 p_temp_ext_acct_id => l_temp_ext_acct_id,
13698 p_association_level => 'SS',
13699 p_supplier_site_id => l_vendor_site_id,
13700 p_party_site_id => ext_payee_rec.payee_party_site_id,
13701 p_org_id => ext_payee_rec.payer_org_id,
13702 p_org_type => 'OPERATING_UNIT', -- veramach added p_org_type as a new paramter for bug 7153777
13703 x_bank_acc_id => l_bank_acct_id,
13704 x_response => ext_response_rec);
13705
13706 IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
13707 UPDATE iby_temp_ext_bank_accts
13708 SET status = 'PROCESSED'
13709 WHERE temp_ext_bank_acct_id = l_temp_ext_acct_id;
13710
13711 ELSE -- Bank Account Creation API
13712 UPDATE iby_temp_ext_bank_accts
13713 SET status = 'REJECTED'
13714 WHERE temp_ext_bank_acct_id = l_temp_ext_acct_id;
13715
13716 IF (Insert_Rejections(
13717 'IBY_TEMP_EXT_BANK_ACCTS',
13718 site_rec.vendor_site_interface_id,
13719 'AP_BANK_ACCT_CREATION',
13720 g_user_id,
13721 g_login_id,
13722 'Import_Vendor_Site') <> TRUE) THEN
13723 --
13724 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
13725 FND_MSG_PUB.Count_And_Get(
13726 p_count => l_msg_count,
13727 p_data => l_msg_data);
13728 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
13729 l_api_name,'Parameters: '
13730 ||' Vendor_Site_Interface_Id: '||site_rec.vendor_site_interface_id
13731 ||' Acct Validation Msg: '||l_msg_data);
13732 END IF;
13733 END IF;
13734
13735 -- Bug 5491139 hkaniven start --
13736 FND_MESSAGE.SET_NAME('SQLAP','AP_BANK_ACCT_CREATION');
13737 FND_MSG_PUB.ADD;
13738 -- Bug 5491139 hkaniven end --
13739 END IF; -- Bank Account Creation API
13740
13741 ELSE -- Bank Account Validation API
13742 UPDATE iby_temp_ext_bank_accts
13743 SET status = 'REJECTED'
13744 WHERE temp_ext_bank_acct_id = l_temp_ext_acct_id;
13745
13746 IF (Insert_Rejections(
13747 'IBY_TEMP_EXT_BANK_ACCTS',
13748 site_rec.vendor_site_interface_id,
13749 'AP_INVALID_BANK_ACCT_INFO',
13750 g_user_id,
13751 g_login_id,
13752 'Import_Vendor_Site') <> TRUE) THEN
13753 --
13754 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
13755 FND_MSG_PUB.Count_And_Get(
13756 p_count => l_msg_count,
13757 p_data => l_msg_data);
13758 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
13759 l_api_name,'Parameters: '
13760 ||' Vendor_Site_Interface_Id: '||site_rec.vendor_site_interface_id
13761 ||' Acct Validation Msg: '||l_msg_data);
13762 END IF;
13763 END IF;
13764
13765 -- Bug 5491139 hkaniven start --
13766 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_BANK_ACCT_INFO');
13767 FND_MSG_PUB.ADD;
13768 -- Bug 5491139 hkaniven end --
13769 END IF; -- Bank Account Validation API
13770
13771 END LOOP;
13772 CLOSE iby_ext_accts_cur;
13773
13774 ELSE -- Payee Creation API
13775 IF (Insert_Rejections(
13776 'AP_SUPPLIER_SITES_INT',
13777 site_rec.vendor_site_interface_id,
13778 'AP_PAYEE_CREATION',
13779 g_user_id,
13780 g_login_id,
13781 'Import_Vendor_Site') <> TRUE) THEN
13782 --
13783 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
13784 FND_MSG_PUB.Count_And_Get(
13785 p_count => l_msg_count,
13786 p_data => l_msg_data);
13787 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
13788 l_api_name,'Parameters: '
13789 ||' Vendor_Site_Interface_Id: '||site_rec.vendor_site_interface_id
13790 ||' Payee Validation Msg: '||l_msg_data);
13791 END IF;
13792 END IF;
13793
13794 -- Bug 5491139 hkaniven start --
13795 FND_MESSAGE.SET_NAME('SQLAP','AP_PAYEE_CREATION');
13796 FND_MSG_PUB.ADD;
13797 -- Bug 5491139 hkaniven end --
13798 END IF; -- Payee Creation API
13799
13800 ELSE -- Payee Validation API
13801 IF (Insert_Rejections(
13802 'AP_SUPPLIER_SITES_INT',
13803 site_rec.vendor_site_interface_id,
13804 'AP_INVALID_PAYEE_INFO',
13805 g_user_id,
13806 g_login_id,
13807 'Import_Vendor_Site') <> TRUE) THEN
13808 --
13809 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
13810 FND_MSG_PUB.Count_And_Get(
13811 p_count => l_msg_count,
13812 p_data => l_msg_data);
13813 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
13814 l_api_name,'Parameters: '
13815 ||' Vendor_Site_Interface_Id: '||site_rec.vendor_site_interface_id
13816 ||' Payee Validation Msg: '||l_msg_data);
13817 END IF;
13818 END IF;
13819
13820 -- Bug 5491139 hkaniven start --
13821 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PAYEE_INFO');
13822 FND_MSG_PUB.ADD;
13823 -- Bug 5491139 hkaniven end --
13824 END IF; -- Payee Validation API
13825
13826 ELSE -- Supplier Site Creation API
13827
13828 UPDATE Ap_Supplier_Sites_Int
13829 SET status = 'REJECTED'
13830 WHERE vendor_site_interface_id =
13831 site_rec.vendor_site_interface_id;
13832
13833 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
13834 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,
13835 ' Rejected Vendor_Site_Interface_Id: '
13836 ||site_rec.vendor_site_interface_id
13837 ||', No. of Messages from Create_Vendor_Site API: '|| l_msg_count
13838 ||', Message From Create_Vendor_Site API: '||l_msg_data);
13839 END IF;
13840
13841 END IF; -- Supplier Site Creation API
13842
13843 END LOOP;
13844
13845 CLOSE site_int_cur;
13846
13847 END IF;
13848 -- End of API body.
13849
13850 -- Standard check of p_commit.
13851 COMMIT WORK;
13852
13853 -- Standard call to get message count and if count is 1,
13854 -- get message info.
13855 FND_MSG_PUB.Count_And_Get(
13856 p_count => x_msg_count,
13857 p_data => x_msg_data
13858 );
13859
13860 EXCEPTION
13861 WHEN FND_API.G_EXC_ERROR THEN
13862 ROLLBACK TO Import_Vendor_Sites_PUB;
13863 x_return_status := FND_API.G_RET_STS_ERROR ;
13864 FND_MSG_PUB.Count_And_Get
13865 ( p_count => x_msg_count,
13866 p_data => x_msg_data
13867 );
13868 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
13869 ROLLBACK TO Import_Vendor_Sites_PUB;
13870 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
13871 FND_MSG_PUB.Count_And_Get
13872 ( p_count => x_msg_count,
13873 p_data => x_msg_data
13874 );
13875 WHEN OTHERS THEN
13876 ROLLBACK TO Import_Vendor_Sites_PUB;
13877 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
13878 IF FND_MSG_PUB.Check_Msg_Level
13879 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
13880 FND_MSG_PUB.Add_Exc_Msg
13881 ( G_PKG_NAME,
13882 l_api_name
13883 );
13884 END IF;
13885 FND_MSG_PUB.Count_And_Get
13886 ( p_count => x_msg_count,
13887 p_data => x_msg_data
13888 );
13889 END Import_Vendor_Sites;
13890
13891 PROCEDURE Import_Vendor_Contacts
13892 ( p_api_version IN NUMBER,
13893 p_source IN VARCHAR2 DEFAULT 'IMPORT',
13894 p_what_to_import IN VARCHAR2 DEFAULT NULL,
13895 p_commit_size IN NUMBER DEFAULT 1000,
13896 x_return_status OUT NOCOPY VARCHAR2,
13897 x_msg_count OUT NOCOPY NUMBER,
13898 x_msg_data OUT NOCOPY VARCHAR2
13899 )
13900 IS
13901
13902 l_api_name CONSTANT VARCHAR2(30) := 'Import_Vendor_Contacts';
13903 l_api_version CONSTANT NUMBER := 1.0;
13904
13905 l_program_application_id NUMBER := FND_GLOBAL.prog_appl_id;
13906 l_program_id NUMBER := FND_GLOBAL.conc_program_id;
13907 l_request_id NUMBER := FND_GLOBAL.conc_request_id;
13908
13909 l_return_status VARCHAR2(2000);
13910 l_msg_count NUMBER;
13911 l_msg_data VARCHAR2(2000);
13912 l_vendor_contact_id NUMBER;
13913 l_per_party_id NUMBER;
13914 l_rel_party_id NUMBER;
13915 l_rel_id NUMBER;
13916 l_org_contact_id NUMBER;
13917 l_party_site_id NUMBER;
13918
13919 CURSOR contact_int_cur IS
13920 SELECT *
13921 FROM Ap_Sup_Site_Contact_Int
13922 WHERE import_request_id = l_request_id
13923 AND vendor_id IS NOT NULL
13924 AND (org_id IS NOT NULL OR operating_unit_name IS NOT NULL )
13925 AND vendor_id not in(select vendor_id from ap_suppliers
13926 where vendor_type_lookup_code = 'EMPLOYEE') --Bug6648405
13927
13928 -- Bug 7013954 Contacts can be created at Supplier level. So cannot mandate
13929 -- the site information to be present.
13930 -- AND (vendor_site_code IS NOT NULL OR vendor_site_id IS NOT NULL)
13931 AND last_name IS NOT NULL
13932 FOR UPDATE OF status; --Bug6413297
13933
13934 contact_int_rec contact_int_cur%ROWTYPE;
13935 vendor_contact_rec r_vendor_contact_rec_type;
13936
13937 BEGIN
13938
13939 -- Standard call to check for call compatibility.
13940 IF NOT FND_API.Compatible_API_Call (l_api_version,
13941 p_api_version,
13942 l_api_name,
13943 G_PKG_NAME )
13944 THEN
13945 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
13946 END IF;
13947
13948 FND_MSG_PUB.initialize;
13949
13950 g_user_id := FND_GLOBAL.USER_ID;
13951 g_login_id := FND_GLOBAL.LOGIN_ID;
13952 g_source := p_source;
13953 -- Initialize API return status to success
13954 x_return_status := FND_API.G_RET_STS_SUCCESS;
13955
13956 -- API body
13957
13958 IF g_source <> 'IMPORT' THEN
13959 NULL;
13960 ELSE
13961 --udhenuko Bug 6823885 This update statement resets the unprocessed rows so
13962 -- that they get picked in the current run.
13963 UPDATE Ap_Sup_Site_Contact_Int api
13964 SET import_request_id = NULL
13965 WHERE import_request_id IS NOT NULL
13966 AND NVL(status,'NEW') IN ('NEW', 'REJECTED')
13967 AND EXISTS
13968 ( SELECT 'Request Completed'
13969 FROM fnd_concurrent_requests fcr
13970 WHERE fcr.request_id = api.import_request_id
13971 AND fcr.phase_code = 'C' );
13972 --udhenuko Bug 6823885 End
13973 --bug 5591652
13974 DELETE AP_SUPPLIER_INT_REJECTIONS
13975 WHERE PARENT_TABLE='AP_SUP_SITE_CONTACT_INT';
13976 -- Updating Interface Record with request id
13977
13978 UPDATE Ap_Sup_Site_Contact_Int
13979 SET import_request_id = l_request_id
13980 WHERE import_request_id IS NULL AND
13981 ((p_what_to_import = 'ALL' AND nvl(status,'NEW') in ('NEW', 'REJECTED')) OR
13982 (p_what_to_import = 'NEW' AND nvl(status,'NEW') = 'NEW') OR
13983 (p_what_to_import = 'REJECTED' AND nvl(status,'NEW') = 'REJECTED'));
13984
13985 UPDATE Ap_Sup_Site_Contact_Int
13986 SET status = 'REJECTED',
13987 import_request_id = l_request_id
13988 WHERE ((vendor_id IS NULL) OR
13989 (operating_unit_name IS NULL AND org_id IS NULL) OR
13990 -- Bug 7013954 Vendor site info no longer used for validation
13991 -- (vendor_site_code IS NULL and vendor_site_id IS NULL) OR
13992 (last_name IS NULL) OR
13993 --Bug7390094 - rejecting contacts for Employee type suppliers.
13994 (vendor_id in(select vendor_id from ap_suppliers
13995 where vendor_type_lookup_code = 'EMPLOYEE')));
13996
13997 --bug 5591652
13998 insert into ap_supplier_int_rejections
13999 (select 'AP_SUP_SITE_CONTACT_INT',vendor_contact_interface_id,'AP_ORG_INFO_NULL',
14000 g_user_id,SYSDATE,g_login_id,g_user_id,SYSDATE
14001 from ap_sup_site_contact_int
14002 where status='REJECTED'
14003 AND import_request_id=l_request_id
14004 AND (operating_unit_name IS NULL and org_id IS NULL))
14005 -- Bug 7013954 Conditions related to supplier site needs to be commented.
14006 /*UNION
14007 (select 'AP_SUP_SITE_CONTACT_INT',vendor_contact_interface_id,'AP_VENDOR_SITE_INFO_NULL',
14008 g_user_id,SYSDATE,g_login_id,g_user_id,SYSDATE
14009 from ap_sup_site_contact_int
14010 where status='REJECTED'
14011 AND import_request_id=l_request_id
14012 AND (vendor_site_code IS NULL and vendor_site_id IS NULL))*/
14013 UNION
14014 (select 'AP_SUP_SITE_CONTACT_INT',vendor_contact_interface_id,'AP_LAST_NAME_NULL',
14015 g_user_id,SYSDATE,g_login_id,g_user_id,SYSDATE
14016 from ap_sup_site_contact_int
14017 where status='REJECTED'
14018 AND import_request_id=l_request_id
14019 AND last_name IS NULL)
14020 UNION
14021 (select 'AP_SUP_SITE_CONTACT_INT',vendor_contact_interface_id,'AP_VENDOR_ID_NULL',
14022 g_user_id,SYSDATE,g_login_id,g_user_id,SYSDATE
14023 from ap_sup_site_contact_int
14024 where status='REJECTED'
14025 AND import_request_id=l_request_id
14026 AND vendor_id IS NULL)
14027 -- Bug 7390094 Prevent contacts import for employee type supplier.
14028 UNION
14029 (select 'AP_SUP_SITE_CONTACT_INT',vendor_contact_interface_id,'AP_EMPLOYEE_CONTACTS',
14030 g_user_id,SYSDATE,g_login_id,g_user_id,SYSDATE
14031 from ap_sup_site_contact_int
14032 where status='REJECTED'
14033 AND import_request_id=l_request_id
14034 AND vendor_id in(select vendor_id from ap_suppliers
14035 where vendor_type_lookup_code = 'EMPLOYEE'));
14036
14037 COMMIT;
14038
14039 -- Bug 7013954 Standard Start of API savepoint
14040 SAVEPOINT Import_Vendor_Contact_PUB;
14041
14042 -- Cursor processing for vendor contact interface record
14043 OPEN contact_int_cur;
14044 LOOP
14045
14046 FETCH contact_int_cur
14047 INTO contact_int_rec;
14048 EXIT WHEN contact_int_cur%NOTFOUND;
14049
14050 vendor_contact_rec.vendor_contact_interface_id :=
14051 contact_int_rec.vendor_contact_interface_id;
14052 vendor_contact_rec.vendor_site_id := contact_int_rec.vendor_site_id;
14053 vendor_contact_rec.person_first_name := contact_int_rec.first_name;
14054 vendor_contact_rec.person_middle_name:= contact_int_rec.middle_name;
14055 vendor_contact_rec.person_last_name := contact_int_rec.last_name;
14056 vendor_contact_rec.person_title := contact_int_rec.title;
14057 vendor_contact_rec.person_first_name_phonetic :=
14058 contact_int_rec.first_name_alt;
14059 vendor_contact_rec.person_last_name_phonetic :=
14060 contact_int_rec.last_name_alt;
14061 vendor_contact_rec.contact_name_phonetic :=
14062 contact_int_rec.contact_name_alt;
14063 vendor_contact_rec.prefix := contact_int_rec.prefix;
14064 vendor_contact_rec.inactive_date := contact_int_rec.inactive_date;
14065 vendor_contact_rec.department := contact_int_rec.department;
14066 vendor_contact_rec.mail_stop := contact_int_rec.mail_stop;
14067 vendor_contact_rec.area_code := contact_int_rec.area_code;
14068 vendor_contact_rec.phone := contact_int_rec.phone;
14069 vendor_contact_rec.alt_area_code := contact_int_rec.alt_area_code;
14070 vendor_contact_rec.alt_phone := contact_int_rec.alt_phone;
14071 vendor_contact_rec.fax_area_code := contact_int_rec.fax_area_code;
14072 vendor_contact_rec.fax_phone := contact_int_rec.fax;
14073 vendor_contact_rec.email_address := contact_int_rec.email_address;
14074 vendor_contact_rec.url := contact_int_rec.url;
14075 vendor_contact_rec.vendor_site_code := contact_int_rec.vendor_site_code;
14076 vendor_contact_rec.org_id := contact_int_rec.org_id;
14077 vendor_contact_rec.operating_unit_name :=
14078 contact_int_rec.operating_unit_name;
14079 vendor_contact_rec.vendor_interface_id := contact_int_rec.vendor_interface_id;
14080 vendor_contact_rec.vendor_id := contact_int_rec.vendor_id;
14081 -- Bug 7013954 start Need to populate party site related info
14082 vendor_contact_rec.org_party_site_id := contact_int_rec.party_site_id;
14083 vendor_contact_rec.party_site_name := contact_int_rec.party_site_name;
14084 -- Bug 7013954 end
14085
14086 Create_Vendor_Contact
14087 ( p_api_version => 1.0,
14088 p_init_msg_list => FND_API.G_FALSE,
14089 p_commit => FND_API.G_FALSE,
14090 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
14091 x_return_status => l_return_status,
14092 x_msg_count => l_msg_count,
14093 x_msg_data => l_msg_data,
14094 p_vendor_contact_rec => vendor_contact_rec,
14095 x_vendor_contact_id => l_vendor_contact_id,
14096 x_per_party_id => l_per_party_id,
14097 x_rel_party_id => l_rel_party_id,
14098 x_rel_id => l_rel_id,
14099 x_org_contact_id => l_org_contact_id,
14100 x_party_site_id => l_party_site_id);
14101
14102 IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
14103
14104 UPDATE Ap_Sup_Site_Contact_Int
14105 SET status = 'PROCESSED'
14106 WHERE CURRENT OF contact_int_cur; --Bug6413297
14107 /*WHERE vendor_contact_interface_id =
14108 vendor_contact_rec.vendor_contact_interface_id;*/--Bug6413297
14109
14110 ELSE
14111
14112 UPDATE Ap_Sup_Site_Contact_Int
14113 SET status = 'REJECTED'
14114 WHERE CURRENT OF contact_int_cur; --Bug6413297
14115 /*WHERE vendor_contact_interface_id =
14116 vendor_contact_rec.vendor_contact_interface_id;*/--Bug6413297
14117
14118 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
14119 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,
14120 ' Rejected Vendor_Contact_Interface_Id: '
14121 ||vendor_contact_rec.vendor_contact_interface_id
14122 ||', No. of Messages from Create_Vendor_Contact API: '|| l_msg_count
14123 ||', Message From Create_Vendor_Contact API: '||l_msg_data);
14124 END IF;
14125
14126 END IF;
14127
14128 END LOOP;
14129
14130 CLOSE contact_int_cur;
14131
14132 END IF;
14133 -- End of API body.
14134
14135 COMMIT WORK;
14136
14137 -- Standard call to get message count and if count is 1,
14138 -- get message info.
14139 FND_MSG_PUB.Count_And_Get(
14140 p_count => x_msg_count,
14141 p_data => x_msg_data
14142 );
14143
14144 EXCEPTION
14145 WHEN FND_API.G_EXC_ERROR THEN
14146 ROLLBACK TO Import_Vendor_Contact_PUB;
14147 x_return_status := FND_API.G_RET_STS_ERROR ;
14148 FND_MSG_PUB.Count_And_Get
14149 ( p_count => x_msg_count,
14150 p_data => x_msg_data
14151 );
14152 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
14153 ROLLBACK TO Import_Vendor_Contact_PUB;
14154 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
14155 FND_MSG_PUB.Count_And_Get
14156 ( p_count => x_msg_count,
14157 p_data => x_msg_data
14158 );
14159 WHEN OTHERS THEN
14160 ROLLBACK TO Import_Vendor_Contact_PUB;
14161 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
14162 IF FND_MSG_PUB.Check_Msg_Level
14163 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
14164 FND_MSG_PUB.Add_Exc_Msg
14165 ( G_PKG_NAME,
14166 l_api_name
14167 );
14168 END IF;
14169 FND_MSG_PUB.Count_And_Get
14170 ( p_count => x_msg_count,
14171 p_data => x_msg_data
14172 );
14173 END Import_Vendor_Contacts;
14174
14175 -- Bug 6745669: Added the API Update_Address_Assignments_DFF to update
14176 -- DFFs of the Vendor Contacts
14177 --
14178
14179 PROCEDURE Update_Address_Assignments_DFF(
14180 p_api_version IN NUMBER,
14181 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
14182 p_commit IN VARCHAR2 := FND_API.G_FALSE,
14183 p_contact_party_id IN NUMBER,
14184 p_org_party_site_id IN NUMBER,
14185 p_attribute_category IN VARCHAR2 DEFAULT NULL,
14186 p_attribute1 IN VARCHAR2 DEFAULT NULL,
14187 p_attribute2 IN VARCHAR2 DEFAULT NULL,
14188 p_attribute3 IN VARCHAR2 DEFAULT NULL,
14189 p_attribute4 IN VARCHAR2 DEFAULT NULL,
14190 p_attribute5 IN VARCHAR2 DEFAULT NULL,
14191 p_attribute6 IN VARCHAR2 DEFAULT NULL,
14192 p_attribute7 IN VARCHAR2 DEFAULT NULL,
14193 p_attribute8 IN VARCHAR2 DEFAULT NULL,
14194 p_attribute9 IN VARCHAR2 DEFAULT NULL,
14195 p_attribute10 IN VARCHAR2 DEFAULT NULL,
14196 p_attribute11 IN VARCHAR2 DEFAULT NULL,
14197 p_attribute12 IN VARCHAR2 DEFAULT NULL,
14198 p_attribute13 IN VARCHAR2 DEFAULT NULL,
14199 p_attribute14 IN VARCHAR2 DEFAULT NULL,
14200 p_attribute15 IN VARCHAR2 DEFAULT NULL,
14201 x_return_status OUT NOCOPY VARCHAR2,
14202 x_msg_count OUT NOCOPY NUMBER,
14203 x_msg_data OUT NOCOPY VARCHAR2
14204
14205 )
14206
14207 IS
14208 l_api_name CONSTANT VARCHAR2(30) := 'Update_Address_Assignments_DFF';
14209 l_api_version CONSTANT NUMBER := 1.0;
14210 l_count NUMBER := 0;
14211 l_event_vendor_contact_id AP_SUPPLIER_CONTACTS.vendor_contact_id%TYPE; --Bug 7307669
14212 BEGIN
14213
14214 -- Standard Start of API savepoint
14215 SAVEPOINT Update_Address_Assign_DFF_PUB;
14216
14217 -- Standard call to check for call compatibility.
14218 IF NOT FND_API.Compatible_API_Call ( l_api_version ,
14219 p_api_version ,
14220 l_api_name ,
14221 G_PKG_NAME )
14222 THEN
14223 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
14224 END IF;
14225
14226 -- Initialize message list if p_init_msg_list is set to TRUE.
14227 IF FND_API.to_Boolean( p_init_msg_list ) THEN
14228 FND_MSG_PUB.initialize;
14229 END IF;
14230
14231 -- Initialize API return status to success
14232 x_return_status := FND_API.G_RET_STS_SUCCESS;
14233
14234 -- API body
14235
14236
14237 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
14238 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,
14239 'Updating dffs for contact_party_id: ' || p_contact_party_id
14240 || ', org_party_site_id: '|| p_org_party_site_id);
14241 END IF;
14242
14243
14244 UPDATE ap_supplier_contacts
14245 SET attribute_category=p_attribute_category,
14246 attribute1 = p_attribute1,
14247 attribute2 = p_attribute2,
14248 attribute3 = p_attribute3,
14249 attribute4 = p_attribute4,
14250 attribute5 = p_attribute5,
14251 attribute6 = p_attribute6,
14252 attribute7 = p_attribute7,
14253 attribute8 = p_attribute8,
14254 attribute9 = p_attribute9,
14255 attribute10 = p_attribute10,
14256 attribute11 = p_attribute11,
14257 attribute12 = p_attribute12,
14258 attribute13 = p_attribute13,
14259 attribute14 = p_attribute14,
14260 attribute15 = p_attribute15
14261 WHERE per_party_id=p_contact_party_id
14262 AND org_party_site_id=p_org_party_site_id
14263 AND NVL(inactive_date, SYSDATE+1 ) > SYSDATE
14264 ;
14265
14266 l_count := SQL%ROWCOUNT;
14267
14268 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
14269 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,
14270 ' Updated '
14271 ||l_count
14272 ||' rows.');
14273 END IF;
14274
14275 BEGIN -- Bug 7307669 : Begin
14276 SELECT vendor_contact_id
14277 INTO l_event_vendor_contact_id
14278 FROM ap_supplier_contacts
14279 WHERE per_party_id=p_contact_party_id
14280 AND org_party_site_id=p_org_party_site_id
14281 AND NVL(inactive_date, SYSDATE+1 ) > SYSDATE ;
14282
14283 Raise_Supplier_Event( i_vendor_contact_id => l_event_vendor_contact_id );
14284 EXCEPTION
14285 WHEN NO_DATA_FOUND OR TOO_MANY_ROWS THEN
14286 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
14287 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME || l_api_name, SQLERRM);
14288 END IF;
14289 APP_EXCEPTION.RAISE_EXCEPTION;
14290 END; -- Bug 7307669 : End
14291
14292 -- End of API body.
14293
14294 -- Standard check of p_commit.
14295 IF FND_API.To_Boolean( p_commit ) THEN
14296 COMMIT WORK;
14297 END IF;
14298
14299 -- Standard call to get message count and if count is 1,
14300 -- get message info.
14301 FND_MSG_PUB.Count_And_Get(
14302 p_count => x_msg_count ,
14303 p_data => x_msg_data
14304 );
14305
14306 EXCEPTION
14307 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
14308 ROLLBACK TO Update_Address_Assign_DFF_PUB;
14309 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
14310 FND_MSG_PUB.Count_And_Get
14311 ( p_count => x_msg_count,
14312 p_data => x_msg_data
14313 );
14314 WHEN OTHERS THEN
14315 ROLLBACK TO Update_Address_Assign_DFF_PUB;
14316 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
14317 IF FND_MSG_PUB.Check_Msg_Level
14318 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
14319 FND_MSG_PUB.Add_Exc_Msg
14320 ( G_PKG_NAME ,
14321 l_api_name
14322 );
14323 END IF;
14324 FND_MSG_PUB.Count_And_Get
14325 ( p_count => x_msg_count,
14326 p_data => x_msg_data
14327 );
14328 END Update_Address_Assignments_DFF;
14329
14330 -- Bug 7307669 : Added the procedure Raise_Supplier_Event to raise a worklflow
14331 -- event whenever a Supplier / Supplier Site / Supplier Contact
14332 -- is created or updated
14333
14334 PROCEDURE Raise_Supplier_Event (
14335 i_vendor_id IN NUMBER DEFAULT NULL,
14336 i_vendor_site_id IN NUMBER DEFAULT NULL,
14337 i_vendor_contact_id IN NUMBER DEFAULT NULL
14338 )
14339 IS
14340 l_api_name CONSTANT VARCHAR2(200) := ' Raise_Supplier_Event';
14341 l_debug_info VARCHAR2(2000);
14342 l_parameter_list wf_parameter_list_t;
14343 l_event_key VARCHAR2(100);
14344 l_event_name VARCHAR2(100) := 'oracle.apps.ap.supplier.event';
14345 l_vendor_id AP_SUPPLIERS.vendor_id%TYPE;
14346 BEGIN
14347 l_debug_info := 'Called with parameters : i_vendor_id = '
14348 || to_char(i_vendor_id) || ', i_vendor_site_id = '
14349 || to_char(i_vendor_site_id) || ', i_vendor_contact_id = '
14350 || to_char(i_vendor_contact_id);
14351 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
14352 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME || l_api_name,
14353 l_debug_info);
14354 END IF;
14355
14356 -- If vendor_id was not passed then we should derive it based on
14357 -- vendor_site_id or vendor_contact_id
14358 IF i_vendor_id IS NULL THEN
14359 IF i_vendor_site_id IS NOT NULL THEN
14360 SELECT vendor_id
14361 INTO l_vendor_id
14362 FROM ap_supplier_sites_all
14363 WHERE vendor_site_id = i_vendor_site_id;
14364 END IF;
14365
14366 IF i_vendor_contact_id IS NOT NULL THEN
14367 SELECT vendor_id
14368 INTO l_vendor_id
14369 FROM po_vendor_contacts
14370 WHERE vendor_contact_id = i_vendor_contact_id
14371 AND ROWNUM = 1;
14372 END IF;
14373 ELSE
14374 l_vendor_id := i_vendor_id;
14375 END IF;
14376
14377 l_parameter_list := wf_parameter_list_t(
14378 wf_parameter_t('VENDOR_ID',
14379 to_char(l_vendor_id) ),
14380 wf_parameter_t('VENDOR_SITE_ID',
14381 to_char(i_vendor_site_id) ),
14382 wf_parameter_t('VENDOR_CONTACT_ID',
14383 to_char(i_vendor_contact_id) )
14384 );
14385
14386 SELECT to_char(ap_supplier_event_s.nextval)
14387 INTO l_event_key
14388 FROM dual;
14389
14390 wf_event.raise( p_event_name => l_event_name,
14391 p_event_key => l_event_key,
14392 p_parameters => l_parameter_list);
14393
14394 l_debug_info := 'After raising workflow event : '
14395 || 'event_name = ' || l_event_name
14396 || ' event_key = ' || l_event_key ;
14397
14398 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
14399 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
14400 l_debug_info);
14401 END IF;
14402
14403 EXCEPTION
14404 WHEN NO_DATA_FOUND OR TOO_MANY_ROWS THEN
14405 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
14406 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME || l_api_name,
14407 SQLERRM);
14408 END IF;
14409 APP_EXCEPTION.RAISE_EXCEPTION;
14410 WHEN OTHERS THEN
14411 WF_CORE.CONTEXT(G_MODULE_NAME, l_api_name, l_event_name,
14412 l_event_key);
14413 RAISE;
14414 END Raise_Supplier_Event;
14415
14416 END AP_VENDOR_PUB_PKG;