[Home] [Help]
PACKAGE BODY: APPS.AP_VENDOR_PUB_PKG
Source
1 PACKAGE BODY AP_VENDOR_PUB_PKG AS
2 /* $Header: appvndrb.pls 120.202.12020000.4 2013/02/11 05:18:39 sbonala 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_lookups
193 --FROM fnd_lookup_vlaues
194 --modified by abhsaxen from fnd_lookup_vlaues to fnd_lookups
195 --as fnd_lookups is respecting user language.
196 WHERE lookup_type = p_lookup_type
197 AND lookup_code = p_column_value
198 AND enabled_flag = 'Y'
199 AND nvl(end_date_active,sysdate+1) > sysdate;
200
201 EXCEPTION
202 WHEN NO_DATA_FOUND THEN
203 x_valid := FALSE;
204 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
205 FND_MESSAGE.SET_TOKEN('COLUMN_NAME', p_column_name );
206 FND_MSG_PUB.ADD;
207 End;
208
209 END IF;
210
211 END validate_lookups;
212
213
214 PROCEDURE Check_dup_vendor_site ( x_vendor_id IN NUMBER,
215 x_vendor_site_code IN VARCHAR2,
216 x_org_name IN VARCHAR2,
217 x_org_id IN NUMBER,
218 x_valid OUT NOCOPY BOOLEAN)
219 IS
220
221 l_dup_count_org_id number;
222 l_dup_count_org_name number;
223
224 BEGIN
225
226 IF x_org_id is NOT NULL THEN
227 SELECT count(*)
228 INTO l_dup_count_org_id
229 -- bug 7430783 Changing validation table to ap_supplier_sites_all
230 --FROM po_vendor_sites_all SITE
231 FROM ap_supplier_sites_all SITE
232 WHERE SITE.vendor_id = x_vendor_id
233 AND SITE.org_id = x_org_id
234 AND UPPER(SITE.vendor_site_code) = UPPER(x_vendor_site_code);
235
236 ELSIF (x_org_id is NULL and x_org_name is NOT NULL) THEN
237 SELECT count(*)
238 INTO l_dup_count_org_name
239 -- bug 7430783 Changing validation table to ap_supplier_sites_all
240 --FROM po_vendor_sites_all SITE, HR_OPERATING_UNITS ORG
241 FROM ap_supplier_sites_all SITE, HR_OPERATING_UNITS ORG
242 WHERE SITE.vendor_id = x_vendor_id
243 AND ORG.name = x_org_name
244 AND UPPER(vendor_site_code) = UPPER(x_vendor_site_code)
245 AND SITE.org_id = ORG.organization_id;
246
247 END IF;
248
249 IF (l_dup_count_org_id > 0 OR l_dup_count_org_name > 0 ) THEN
250 x_valid := FALSE;
251 fnd_message.set_name('SQLAP','AP_VEN_DUPLICATE_VEN_SITE');
252 FND_MSG_PUB.ADD;
253 END IF;
254
255 END Check_dup_vendor_site;
256
257 /* Bug 14493264 start */
258 --
259 -- Check for duplicate party site name
260 --
261 PROCEDURE Chk_Dup_party_site_name(p_vendor_id IN NUMBER,
262 p_vendor_site_code IN VARCHAR2,
263 x_valid OUT NOCOPY BOOLEAN
264 ) IS
265
266 l_count NUMBER := 0;
267
268 BEGIN
269 x_valid := TRUE;
270
271 SELECT COUNT(*)
272 INTO l_count
273 FROM hz_party_sites hps, ap_suppliers aps
274 WHERE aps.vendor_id = p_vendor_id
275 AND hps.party_id = aps.party_id
276 AND UPPER(hps.party_site_name) = UPPER(p_vendor_site_code);
277
278 IF l_count > 0 THEN
279 x_valid := FALSE;
280 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
281 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','VENDOR_SITE_CODE' );
282 FND_MSG_PUB.ADD;
283 END IF;
284
285 END Chk_Dup_party_site_name;
286 /* Bug 14493264 end */
287
288
289 --Bug 13963970 Start
290 --
291 -- Check if the EDI Location code is unique for a Supplier
292 --
293
294 PROCEDURE Check_duplicate_ece_code ( x_vendor_id IN NUMBER,
295 x_vendor_site_code IN VARCHAR2,
296 x_vendor_site_id IN NUMBER,
297 x_org_name IN VARCHAR2,
298 x_org_id IN NUMBER,
299 x_ece_tp_location_code IN VARCHAR2,
300 x_valid OUT NOCOPY BOOLEAN)
301 IS
302
303 l_dup_count_org_id number;
304 l_dup_count_org_name number;
305
306 BEGIN
307
308 IF x_org_id is NOT NULL THEN
309
310 SELECT count(*)
311 INTO l_dup_count_org_id
312 FROM ap_supplier_sites_all SITE
313 WHERE SITE.vendor_id = x_vendor_id
314 AND SITE.org_id = x_org_id
315 AND ((x_vendor_site_ID is not null and SITE.vendor_site_ID <> x_vendor_site_ID) OR
316 (x_vendor_site_code is not null and UPPER(SITE.vendor_site_code) <> UPPER(x_vendor_site_code)))
317 AND UPPER(SITE.ece_tp_location_code) = UPPER(x_ece_tp_location_code) ;
318
319 ELSIF (x_org_id is NULL and x_org_name is NOT NULL) THEN
320
321 SELECT count(*)
322 INTO l_dup_count_org_name
323 FROM ap_supplier_sites_all SITE, HR_OPERATING_UNITS ORG
324 WHERE SITE.vendor_id = x_vendor_id
325 AND ORG.name = x_org_name
326 AND SITE.org_id = ORG.organization_id
327 AND ((x_vendor_site_ID is not null and SITE.vendor_site_ID <> x_vendor_site_ID) OR
328 (x_vendor_site_code is not null and UPPER(SITE.vendor_site_code) <> UPPER(x_vendor_site_code)))
329 AND UPPER(SITE.ece_tp_location_code) = UPPER(x_ece_tp_location_code);
330
331 END IF;
332
333 IF (l_dup_count_org_id > 0 OR l_dup_count_org_name > 0 ) THEN
334 x_valid := FALSE;
335 fnd_message.set_name('SQLAP','AP_VEN_DUPLICATE_ECE_CODE');
336 FND_MSG_PUB.ADD;
337 END IF;
338
339 END Check_duplicate_ece_code;
340
341
342 --Bug 13963970 End
343
344 --
345 -- Check if the 1099 type is expected here
346 --
347 PROCEDURE Check_Valid_1099_type(p_1099_type IN VARCHAR2,
348 p_federal_flag IN VARCHAR2,
349 x_valid OUT NOCOPY BOOLEAN
350 ) IS
351 BEGIN
352 x_valid := TRUE;
353
354
355 IF (nvl(p_federal_flag,'N') = 'N' and p_1099_type is NOT NULL) THEN
356 x_valid := FALSE;
357 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMNS_INCONSISTENT');
358 FND_MESSAGE.SET_TOKEN('ID','FEDERAL_REPORTABLE_FLAG');
359 FND_MESSAGE.SET_TOKEN('NAME','1099_TYPE');
360 FND_MSG_PUB.ADD;
361 END IF;
362
363 END Check_Valid_1099_type;
364
365 --
366 -- Check if the Payment_Priority number is valid
367 --
368 PROCEDURE Check_Payment_Priority(p_payment_priority IN NUMBER,
369 x_valid OUT NOCOPY BOOLEAN
370 ) IS
371 BEGIN
372 x_valid := TRUE;
373
374
375 IF ((p_payment_priority < 1) OR
376 (p_payment_priority > 99) OR
377 (p_payment_priority <> trunc(p_payment_priority))) THEN
378
379 x_valid := FALSE;
380
381 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
382 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','PAYMENT_PRIORITY' );
383 FND_MSG_PUB.ADD;
384 END IF;
385 END Check_Payment_Priority;
386
387 --
388 -- Check if the Employee is valid
389 --
390 PROCEDURE Check_Valid_Employee(p_employee_id IN NUMBER,
391 x_valid OUT NOCOPY BOOLEAN
392 ) IS
393 l_dummy hr_employees_current_v.employee_id%TYPE;
394
395 BEGIN
396 x_valid := TRUE;
397
398 --bug 13535075
399 /* SELECT employee_id
400 INTO l_dummy
401 FROM hr_employees_current_v
402 WHERE employee_id = p_employee_id;*/
403
404 SELECT employee_id
405 INTO l_dummy
406 FROM HR_CURRENT_EMP hre
407 WHERE hre.employee_id = p_employee_id
408 AND hre.BUSINESS_GROUP_ID IN ( SELECT fsp.BUSINESS_GROUP_ID
409 FROM FINANCIALS_SYSTEM_PARAMETERS fsp);
410 --end of bug 13535075
411
412 EXCEPTION
413 -- Trap validation error
414 WHEN NO_DATA_FOUND THEN
415 X_Valid := False;
416 FND_MESSAGE.SET_NAME('SQLAP','AP_EMPLOYEE_INACTIVE'); /* Bug 9398195 */
417
418 /* FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
419 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','EMPLOYEE_ID' );Commented for Bug9398195 */
420 FND_MSG_PUB.ADD;
421
422 END Check_Valid_Employee;
423
424 --
425 -- Check if Inspection_required_flag and Receipt_required_flag are valid
426 --
427 PROCEDURE Check_Valid_match_level(p_inspection_reqd_flag IN VARCHAR2,
428 p_receipt_reqd_flag IN VARCHAR2,
429 x_valid OUT NOCOPY BOOLEAN
430 ) IS
431
432 BEGIN
433 x_valid := TRUE;
434
435 IF (p_receipt_reqd_flag = 'N' and p_inspection_reqd_flag = 'Y') THEN
436 x_valid := FALSE;
437 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMNS_INCONSISTENT');
438 FND_MESSAGE.SET_TOKEN('ID','INSPECTION_REQUIRED_FLAG');
439 FND_MESSAGE.SET_TOKEN('NAME','RECEIPT_REQUIRED_FLAG');
440 FND_MSG_PUB.ADD;
441 END IF;
442
443 END Check_Valid_match_level;
444
445 --
446 -- Check if the Name_control is valid
447 --
448 PROCEDURE Check_Valid_name_control(p_name_control IN VARCHAR2,
449 x_valid OUT NOCOPY BOOLEAN
450 ) IS
451
452 BEGIN
453 x_valid := TRUE;
454
455 IF (nvl(NVL(length(ltrim(translate(p_name_control,
456 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789&- ',
457 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'),'X')), 0),0) > 0) THEN
458
459 x_valid := FALSE;
460 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
461 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','NAME_CONTROL' );
462 FND_MSG_PUB.ADD;
463 END IF;
464
465 END Check_Valid_name_control;
466
467 --
468 -- Check if ship_via_lookup_code is valid
469 --
470 PROCEDURE Check_Valid_ship_via(p_ship_via_lookup_code IN VARCHAR2,
471 p_inventory_org_id IN NUMBER DEFAULT NULL,
472 x_valid OUT NOCOPY BOOLEAN
473 ) IS
474 l_dummy number;
475
476 BEGIN
477 x_valid := TRUE;
478
479 SELECT nvl(count(freight_code),0)
480 INTO l_dummy
481 FROM org_freight
482 WHERE organization_id = p_inventory_org_id
483 AND nvl(disable_date, sysdate +1 ) > sysdate
484 AND freight_code = p_ship_via_lookup_code;
485
486
487 IF l_dummy < 1 THEN
488 x_valid := FALSE;
489
490 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
491 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','SHIP_VIA_LOOKUP_CODE' );
492 FND_MSG_PUB.ADD;
493 END IF;
494
495 END Check_Valid_ship_via;
496
497 --
498 -- Check if the set_of_books_id is valid
499 --
500 PROCEDURE Check_Valid_Sob_Id(p_sob_id IN NUMBER,
501 x_valid OUT NOCOPY BOOLEAN
502 ) IS
503 l_dummy GL_SETS_OF_BOOKS.set_of_books_id%TYPE;
504
505 BEGIN
506 x_valid := TRUE;
507
508 SELECT set_of_books_id
509 INTO l_dummy
510 FROM GL_SETS_OF_BOOKS
511 WHERE set_of_books_id = p_sob_id;
512
513
514 EXCEPTION
515 -- Trap validation error
516 WHEN NO_DATA_FOUND THEN
517 x_valid := FALSE;
518 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
519 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','SET_OF_BOOKS_ID' );
520 FND_MSG_PUB.ADD;
521 END Check_Valid_Sob_Id;
522
523 --
524 -- Check if the Employee has already been assigned
525 --
526 PROCEDURE Chk_Dup_Employee(p_vendor_id IN NUMBER,
527 p_employee_id IN NUMBER,
528 x_valid OUT NOCOPY BOOLEAN
529 ) IS
530 l_count NUMBER := 0;
531
532 BEGIN
533 x_valid := TRUE;
534
535
536 SELECT COUNT(*)
537 INTO l_count
538 FROM po_vendors
539 WHERE (p_vendor_id IS NULL OR p_vendor_id = ap_null_num OR vendor_id <> p_vendor_id) --bug7023543
540 AND employee_id = p_employee_id;
541
542 IF l_count > 0 THEN
543 x_valid := FALSE;
544
545 FND_MESSAGE.SET_NAME('SQLAP','AP_EMPLOYEE_ASSIGNED');
546 FND_MSG_PUB.ADD;
547 END IF;
548
549 END Chk_Dup_Employee;
550
551 --
552 -- Check for duplicate vendor number
553 --
554 PROCEDURE Chk_Dup_segment1_int(p_segment1 IN VARCHAR2,
555 x_valid OUT NOCOPY BOOLEAN
556 ) IS
557
558 l_count NUMBER := 1;
559
560 BEGIN
561 x_valid := TRUE;
562 --Bug 7526020 Validating SEGMENT1 against ap_suppliers instead of ap_suppliers_int
563 SELECT COUNT(*)
564 INTO l_count
565 FROM ap_suppliers
566 WHERE segment1 = p_segment1;
567
568 IF l_count > 1 THEN
569 x_valid := FALSE;
570 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
571 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','SEGMENT1' );
572 FND_MSG_PUB.ADD;
573 END IF;
574
575 END Chk_Dup_segment1_int;
576
577 --
578 -- Check for duplicate vendor names
579 --
580 /* Bug 6939863 - Made Chk_Dup_Vendor_Name_new with same logic as update.
581 * Bug 5606948 added a call to Chk_Dup_Vendor_Name_update in
582 * PROCEDURE Validate_Vendor even in Insert mode.
583 * Chk_Dup_Vendor_Name_new is not called from anywhere, so made this similar
584 * to Chk_Dup_Vendor_Name_update and also corrected employee_id logic
585 * in both calls.
586 PROCEDURE Chk_Dup_Vendor_Name_new(p_vendor_name IN VARCHAR2,
587 x_valid OUT NOCOPY BOOLEAN
588 ) IS
589 l_count NUMBER := 0;
590
591 BEGIN
592 x_valid := TRUE;
593
594 SELECT COUNT(*)
595 INTO l_count
596 FROM ap_suppliers_int
597 WHERE UPPER(vendor_name) = UPPER(p_vendor_name);
598
599 IF l_count > 1 THEN
600 x_valid := FALSE;
601 FND_MESSAGE.SET_NAME('SQLAP','AP_VEN_DUPLICATE_NAME');
602 FND_MSG_PUB.ADD;
603 END IF;
604
605 END Chk_Dup_Vendor_Name_new;
606 Bug 6939863 */
607
608 PROCEDURE Chk_Dup_Vendor_Name_new(p_vendor_name IN VARCHAR2,
609 p_vendor_id IN NUMBER,
610 p_vendor_type_lookup_code IN VARCHAR2,
611 p_employee_id IN NUMBER,
612 x_valid OUT NOCOPY BOOLEAN
613 ) IS
614 l_count NUMBER := 0;
615
616 BEGIN
617
618 x_valid := TRUE;
619
620 --open issue 1 with manoj regarding whether the vendor name
621 --will even be denormalized into po_vendors
622
623 -- Added following if condition for bug 6775797
624
625 IF ((p_vendor_type_lookup_code IS NOT NULL AND
626 p_vendor_type_lookup_code <> 'EMPLOYEE')
627 OR p_vendor_type_lookup_code IS NULL) THEN
628
629 -- Bug 7596921 - Start
630 /*
631 SELECT COUNT(*)
632 INTO l_count
633 FROM ap_suppliers
634 WHERE UPPER(vendor_name) = UPPER(p_vendor_name)
635 AND (p_vendor_id IS NULL OR vendor_id <> p_vendor_id); --bug 5606948
636 */
637
638 BEGIN
639 SELECT 1
640 INTO l_count
641 FROM ap_suppliers
642 WHERE UPPER(vendor_name) = UPPER(p_vendor_name)
643 AND (p_vendor_id IS NULL OR vendor_id <> p_vendor_id)
644 --bug 13629613
645 AND nvl(VENDOR_TYPE_LOOKUP_CODE,'nonemp') <> 'EMPLOYEE'
646 AND employee_id is NULL
647 AND ROWNUM = 1;
648 EXCEPTION WHEN NO_DATA_FOUND THEN
649 l_count := 0;
650 END;
651
652 ELSE
653
654 /*
655 SELECT COUNT(*)
656 INTO l_count
657 FROM ap_suppliers
658 WHERE UPPER(vendor_name) = UPPER(p_vendor_name)
659 AND (p_vendor_id IS NULL OR vendor_id <> p_vendor_id)
660 --bug 6939863 - changed <> to = for employee_id
661 AND (p_employee_id IS NULL OR employee_id = p_employee_id);
662 */
663
664 BEGIN
665 SELECT 1
666 INTO l_count
667 FROM ap_suppliers
668 WHERE UPPER(vendor_name) = UPPER(p_vendor_name)
669 AND (p_vendor_id IS NULL OR vendor_id <> p_vendor_id)
670 --bug 6939863 - changed <> to = for employee_id
671 AND (p_employee_id IS NULL OR employee_id = p_employee_id)
672 AND ROWNUM = 1;
673 EXCEPTION WHEN NO_DATA_FOUND THEN
674 l_count := 0;
675 END;
676
677 -- Bug 7596921 - End
678
679 END IF;
680
681 IF l_count > 0 THEN
682 x_valid := FALSE;
683 FND_MESSAGE.SET_NAME('SQLAP','AP_VEN_DUPLICATE_NAME');
684 FND_MSG_PUB.ADD;
685 END IF;
686
687 END Chk_Dup_Vendor_Name_new;
688
689
690 --
691 -- Check for duplicate vendor number
692 --
693 PROCEDURE Chk_Dup_Vendor_Number(p_vendor_id IN NUMBER,
694 p_segment1 IN VARCHAR2,
695 x_valid OUT NOCOPY BOOLEAN
696 ) IS
697
698 l_count NUMBER := 0;
699
700 BEGIN
701 x_valid := TRUE;
702
703 SELECT COUNT(*)
704 INTO l_count
705 FROM po_vendors
706 WHERE (p_vendor_id IS NULL OR vendor_id <> p_vendor_id)
707 AND segment1 = p_segment1;
708
709 IF l_count = 0 THEN
710 SELECT count(*)
711 INTO l_count
712 FROM po_history_vendors
713 WHERE segment1 = p_segment1;
714 END IF;
715
716 IF l_count > 0 THEN
717 x_valid := FALSE;
718 FND_MESSAGE.SET_NAME('SQLAP','AP_VEN_DUPLICATE_VEN_NUM');
719 FND_MSG_PUB.ADD;
720 END IF;
721
722 END Chk_Dup_Vendor_Number;
723
724 --
725 -- Check if the receiving_routing_id is valid
726 --
727 PROCEDURE Chk_rcv_routing_id(p_rcv_rtg_id IN NUMBER,
728 x_valid OUT NOCOPY BOOLEAN
729 ) IS
730 l_dummy RCV_ROUTING_HEADERS.routing_header_id%TYPE;
731
732 BEGIN
733 x_valid := TRUE;
734
735 SELECT routing_header_id
736 INTO l_dummy
737 FROM RCV_ROUTING_HEADERS
738 WHERE routing_header_id = p_rcv_rtg_id;
739
740
741 EXCEPTION
742 -- Trap validation error
743 WHEN NO_DATA_FOUND THEN
744 x_valid := FALSE;
745 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
746 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','RECEIVING_ROUTING_ID' );
747 FND_MSG_PUB.ADD;
748 END Chk_rcv_routing_id;
749
750 --
751 -- This procedure should perform Other Employee Validations
752 --
753 PROCEDURE employee_type_checks(p_vendor_type IN VARCHAR2,
754 p_employee_id IN NUMBER,
755 p_valid OUT NOCOPY BOOLEAN
756 ) IS
757
758 BEGIN
759 p_valid := TRUE;
760
761 IF ( (p_vendor_type <> 'EMPLOYEE'
762 AND (p_employee_id is Not Null AND p_employee_id <> ap_null_num))
763 OR
764 (p_vendor_type = 'EMPLOYEE' --bug6050423
765 AND (p_employee_id is Null OR p_employee_id = ap_null_num)) ) THEN
766
767 p_valid := FALSE;
768 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMNS_INCONSISTENT');
769 FND_MESSAGE.SET_TOKEN('ID','VENDOR_TYPE_LOOKUP_CODE');
770 FND_MESSAGE.SET_TOKEN('NAME','EMPLOYEE_ID');
771 FND_MSG_PUB.ADD;
772 END IF;
773
774 END employee_type_checks;
775
776 --
777 -- This procedure should ensure the value for 'payment_currency_code' exists as a valid
778 -- currency_code on the target database
779 -- Bug 2931673, replaced parameter p_vendor_id with p_invoice_currency_code
780 --
781 PROCEDURE payment_currency_code_valid(p_payment_currency_code IN VARCHAR2,
782 p_invoice_currency_code IN VARCHAR2,
783 p_valid OUT NOCOPY BOOLEAN
784 ) IS
785 l_count NUMBER := 1;
786
787 BEGIN
788 p_valid := TRUE;
789
790
791 /*
792 * assumes p_invoice_currency_code is valid
793 * only validate if they're different
794 */
795 IF(p_payment_currency_code<>p_invoice_currency_code) THEN
796
797 SELECT count(*)
798 INTO l_count
799 FROM fnd_currencies_vl
800 WHERE currency_code = p_payment_currency_code
801 AND (gl_currency_api.is_fixed_rate(p_invoice_currency_code
802 ,currency_code
803 ,sysdate)= 'Y'
804 AND enabled_flag = 'Y'
805 AND trunc(nvl(start_date_active,sysdate)) <= trunc(sysdate)
806 AND trunc(nvl(end_date_active,sysdate)) >= trunc(sysdate)
807 );
808
809 IF (l_count = 0) THEN
810 FND_MESSAGE.SET_NAME('SQLAP','AP_API_INVALID_PAYMENT_CURR');
811 p_valid := FALSE;
812 FND_MSG_PUB.ADD;
813 END IF;
814
815 END IF;
816
817 END payment_currency_code_valid;
818
819 --
820 -- Validate the Income Tax Type
821 --
822 PROCEDURE Val_Income_Tax_Type(p_type_1099 IN VARCHAR2,
823 x_valid OUT NOCOPY BOOLEAN
824 ) IS
825 l_count NUMBER := 0;
826
827 BEGIN
828 x_valid := TRUE;
829
830 SELECT COUNT(*)
831 INTO l_count
832 FROM ap_income_tax_types
833 WHERE income_tax_type = p_type_1099
834 AND TRUNC(SYSDATE) < TRUNC(NVL(inactive_date, SYSDATE+1));
835
836 IF l_count < 1 THEN
837 x_valid := FALSE;
838 FND_MESSAGE.SET_NAME('SQLAP','AP_API_INVALID_IN_TAX_TYPE');
839 FND_MSG_PUB.ADD;
840 END IF;
841
842 END Val_Income_Tax_Type;
843
844 PROCEDURE Validate_CCIDs(
845 p_column_name IN VARCHAR2,
846 p_ccid IN NUMBER,
847 p_sob_id IN NUMBER,
848 x_valid OUT NOCOPY BOOLEAN
849 )
850
851 IS
852 l_ccid gl_code_combinations.Code_Combination_Id%TYPE;
853
854 BEGIN
855 x_valid := TRUE;
856
857 IF p_column_name = 'ACCTS_PAY_CCID' THEN
858
859 Begin
860 SELECT GCC.code_combination_id
861 INTO l_ccid
862 FROM GL_CODE_COMBINATIONS GCC, GL_SETS_OF_BOOKS GSOB
863 WHERE GCC.code_combination_id = p_ccid
864 AND GCC.account_type = 'L'
865 AND GCC.enabled_flag = 'Y'
866 AND GCC.detail_posting_allowed_flag = 'Y'
867 AND GSOB.set_of_books_id = p_sob_id
868 AND GSOB.chart_of_accounts_id = GCC.chart_of_accounts_id
869 AND nvl(GCC.end_date_active,sysdate+1) > sysdate;
870
871
872 EXCEPTION
873 WHEN NO_DATA_FOUND THEN
874 x_valid := FALSE;
875 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
876 FND_MESSAGE.SET_TOKEN('COLUMN_NAME', p_column_name );
877 FND_MSG_PUB.ADD;
878 End;
879 ELSE
880 Begin
881 SELECT GCC.code_combination_id
882 INTO l_ccid
883 FROM GL_CODE_COMBINATIONS GCC, GL_SETS_OF_BOOKS GSOB
884 WHERE GCC.code_combination_id = p_ccid
885 AND GCC.enabled_flag = 'Y'
886 AND GCC.detail_posting_allowed_flag = 'Y'
887 AND GCC.chart_of_accounts_id = GSOB.chart_of_accounts_id
888 AND GSOB.set_of_books_id = p_sob_id
889 AND nvl(GCC.end_date_active,sysdate+1) > sysdate;
890
891 EXCEPTION
892 WHEN NO_DATA_FOUND THEN
893 x_valid := FALSE;
894 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
895 FND_MESSAGE.SET_TOKEN('COLUMN_NAME', p_column_name );
896 FND_MSG_PUB.ADD;
897 End;
898 END IF;
899
900 END validate_CCIDs;
901
902 --
903 -- Check for duplicate vendor names
904 --
905 -- Added parameter p_vendor_type_lookup_code and p_employee_id
906 -- for bug 6775797
907 PROCEDURE Chk_Dup_Vendor_Name_update(p_vendor_name IN VARCHAR2,
908 p_vendor_id IN NUMBER,
909 p_vendor_type_lookup_code IN VARCHAR2,
910 p_employee_id IN NUMBER,
911 x_valid OUT NOCOPY BOOLEAN
912 ) IS
913 l_count NUMBER := 0;
914
915 BEGIN
916
917 x_valid := TRUE;
918
919 --open issue 1 with manoj regarding whether the vendor name
920 --will even be denormalized into po_vendors
921
922 -- Added following if condition for bug 6775797
923
924 IF ((p_vendor_type_lookup_code IS NOT NULL AND
925 p_vendor_type_lookup_code <> 'EMPLOYEE')
926 OR p_vendor_type_lookup_code IS NULL) THEN
927
928 -- Bug 7596921-Start
929 /*
930 SELECT COUNT(*)
931 INTO l_count
932 FROM ap_suppliers
933 WHERE UPPER(vendor_name) = UPPER(p_vendor_name)
934 AND (p_vendor_id IS NULL OR vendor_id <> p_vendor_id); --bug 5606948
935 */
936
937 BEGIN
938 SELECT 1
939 INTO l_count
940 FROM ap_suppliers
941 WHERE UPPER(vendor_name) = UPPER(p_vendor_name)
942 AND (p_vendor_id IS NULL OR vendor_id <> p_vendor_id)
943 --bug 13629613
944 AND nvl(VENDOR_TYPE_LOOKUP_CODE,'nonemp') <> 'EMPLOYEE'
945 AND employee_id is NULL
946 AND ROWNUM = 1; --bug 5606948
947 EXCEPTION WHEN NO_DATA_FOUND THEN
948 l_count := 0;
949 END;
950
951 ELSE
952
953 /*
954 SELECT COUNT(*)
955 INTO l_count
956 FROM ap_suppliers
957 WHERE UPPER(vendor_name) = UPPER(p_vendor_name)
958 AND (p_vendor_id IS NULL OR vendor_id <> p_vendor_id)
959 --bug 6939863 - changed <> to = for employee_id
960 AND (p_employee_id IS NULL OR employee_id = p_employee_id);
961 */
962
963 BEGIN
964 SELECT 1
965 INTO l_count
966 FROM ap_suppliers
967 WHERE UPPER(vendor_name) = UPPER(p_vendor_name)
968 AND (p_vendor_id IS NULL OR vendor_id <> p_vendor_id)
969 --bug 6939863 - changed <> to = for employee_id
970 AND (p_employee_id IS NULL OR employee_id = p_employee_id)
971 AND ROWNUM = 1;
972 EXCEPTION
973 WHEN NO_DATA_FOUND THEN
974 l_count := 0;
975 END;
976
977 -- Bug 7596921-End
978
979 END IF;
980
981 IF l_count > 0 THEN
982 x_valid := FALSE;
983 FND_MESSAGE.SET_NAME('SQLAP','AP_VEN_DUPLICATE_NAME');
984 FND_MSG_PUB.ADD;
985 END IF;
986
987 END Chk_Dup_Vendor_Name_update;
988
989 --
990 -- Check for duplicate vendor number
991 --
992 PROCEDURE Chk_Null_Vendor_Number(p_segment1 IN VARCHAR2 default null,
993 x_valid OUT NOCOPY BOOLEAN
994 ) IS
995
996 l_ven_num_code financials_system_parameters.user_defined_vendor_num_code%TYPE;
997
998 BEGIN
999
1000 x_valid := TRUE;
1001 --sally
1002 SELECT supplier_numbering_method
1003 INTO l_ven_num_code
1004 FROM ap_product_setup;
1005
1006 IF ((NVL(l_ven_num_code, 'MANUAL') = 'MANUAL') AND
1007 (p_segment1 is Null)) THEN
1008 x_valid := FALSE;
1009 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
1010 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','SEGMENT1');
1011 FND_MSG_PUB.ADD;
1012 ELSIF l_ven_num_code not in ('MANUAL','AUTOMATIC') then
1013 x_valid := FALSE;
1014 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
1015 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','USER_DEFINED_VENDOR_NUM_CODE');
1016 FND_MSG_PUB.ADD;
1017 END IF;
1018
1019 END Chk_Null_Vendor_Number;
1020
1021 -- Method to verify a taxpayer id is valid
1022 -- Bug 5291571
1023 -- Modified the registration number validation calls to LE Teams API.
1024 --
1025 function is_taxpayer_id_valid(
1026 p_taxpayer_id IN VARCHAR2,
1027 p_country IN VARCHAR2
1028 )
1029 RETURN VARCHAR2
1030 IS
1031 l_ret_value VARCHAR2(1);
1032 l_outcome VARCHAR2(1);
1033 l_out_msg VARCHAR2(255);
1034 l_legislative_cat_code VARCHAR2(30);
1035 l_required_flag VARCHAR2(1);
1036 l_registration_code VARCHAR2(100);
1037 l_return_status VARCHAR2(50);
1038 l_msg_count NUMBER;
1039 l_msg_data VARCHAR2(1000);
1040
1041 BEGIN
1042 l_ret_value := 'Y';
1043 l_legislative_cat_code := 'INCOME_TAX';
1044 l_required_flag := 'Y'; --7442513
1045 l_return_status := FND_API.G_RET_STS_SUCCESS;
1046
1047 IF (p_country = 'US') THEN
1048 FV_AP_TIN_PKG.TIN_VALIDATE(p_taxpayer_id, l_outcome, l_out_msg);
1049 ELSIF (p_country = 'IT') THEN
1050 l_registration_code := 'FCIT';
1051 XLE_REGISTRATIONS_VAL_PVT.do_it_regnum_validations
1052 (l_legislative_cat_code,
1053 l_required_flag,
1054 l_registration_code,
1055 p_taxpayer_id,
1056 l_return_status,
1057 l_msg_data,
1058 l_msg_count);
1059 ELSIF (p_country = 'ES') THEN
1060 l_registration_code := 'NIF';
1061 XLE_REGISTRATIONS_VAL_PVT.do_es_regnum_validations
1062 (l_legislative_cat_code,
1063 l_required_flag,
1064 l_registration_code,
1065 p_taxpayer_id,
1066 l_return_status,
1067 l_msg_data,
1068 l_msg_count);
1069 ELSIF (p_country = 'PT') THEN
1070 l_registration_code := 'NIPC';
1071 XLE_REGISTRATIONS_VAL_PVT.do_pt_regnum_validations
1072 (l_legislative_cat_code,
1073 l_required_flag,
1074 l_registration_code,
1075 p_taxpayer_id,
1076 l_return_status,
1077 l_msg_data,
1078 l_msg_count);
1079 END IF;
1080
1081 IF p_country = 'US' THEN
1082 IF (l_outcome = 'F') THEN
1083 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
1084 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','NUM_1099' );
1085 FND_MSG_PUB.ADD; --bug6050423
1086 l_ret_value := 'N';
1087 END IF;
1088 END IF;
1089 IF p_country IN ('IT','ES','PT') THEN
1090 IF l_return_status = FND_API.G_RET_STS_ERROR
1091 THEN
1092 FND_MESSAGE.SET_NAME('XLE', 'XLE_INVALID_REG_NUM_ERR');
1093 FND_MESSAGE.SET_TOKEN('REG_CODE', l_registration_code);
1094 FND_MESSAGE.SET_TOKEN('REG_NUM', p_taxpayer_id);
1095 FND_MSG_PUB.ADD; --bug6050423
1096 l_ret_value := 'N'; --bug6050423
1097 END IF;
1098 END IF;
1099
1100 return l_ret_value;
1101
1102 END is_taxpayer_id_valid;
1103
1104 --
1105 -- Validate and generate Vendor Number.
1106 --
1107
1108 PROCEDURE Check_valid_vendor_num(p_segment1 IN VARCHAR2,
1109 x_valid OUT NOCOPY BOOLEAN
1110 ) IS
1111
1112 l_ven_num_code ap_product_setup.SUPPLIER_NUMBERING_METHOD%TYPE;
1113
1114 BEGIN
1115
1116 /*Open Issue 11 -- This select needs to be adjusted for MOAC*/
1117 SELECT nvl(supplier_numbering_method, 'MANUAL')
1118 INTO l_ven_num_code
1119 FROM ap_product_setup;
1120
1121 IF ((l_ven_num_code = 'MANUAL') and (p_segment1 is NULL)) THEN
1122
1123 x_valid := FALSE;
1124 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
1125 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','SEGMENT1' );
1126 FND_MSG_PUB.ADD;
1127 END IF;
1128
1129 END Check_valid_vendor_num;
1130
1131 --
1132 -- Check if the Match_Option value is valid
1133 --
1134 PROCEDURE Check_Valid_Match_Option(p_match_option IN VARCHAR2,
1135 x_valid OUT NOCOPY BOOLEAN
1136 ) IS
1137
1138 BEGIN
1139 x_valid := TRUE;
1140
1141 IF p_match_option not IN ('P','R') THEN
1142 x_valid := FALSE;
1143 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
1144 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','MATCH_OPTION' );
1145 FND_MSG_PUB.ADD;
1146 END IF;
1147
1148 END Check_Valid_Match_Option;
1149
1150 --
1151 -- Check if the allow_awt_flag is valid
1152 --
1153 PROCEDURE Chk_allow_awt_flag(p_allow_awt_flag IN VARCHAR2,
1154 p_org_id IN NUMBER,
1155 x_valid OUT NOCOPY BOOLEAN
1156 ) IS
1157 l_asp_awt_flag VARCHAR2(1);
1158
1159 BEGIN
1160 x_valid := TRUE;
1161
1162 SELECT allow_awt_flag
1163 INTO l_asp_awt_flag
1164 FROM ap_system_parameters
1165 WHERE org_id = p_org_id;
1166
1167 IF l_asp_awt_flag = 'N'
1168 AND p_allow_awt_flag = 'Y' THEN
1169 x_valid := FALSE;
1170 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
1171 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','ALLOW_AWT_FLAG' );
1172 FND_MSG_PUB.ADD;
1173 END IF;
1174
1175 END Chk_allow_awt_flag;
1176
1177 --
1178 -- Check if the awt_group_id and name are in sync.
1179 --
1180
1181 PROCEDURE Chk_awt_grp_id_name(p_awt_id IN OUT NOCOPY NUMBER,
1182 p_awt_name IN VARCHAR2,
1183 p_allow_awt_flag IN VARCHAR2,
1184 x_valid OUT NOCOPY BOOLEAN
1185 ) IS
1186
1187 l_dummy_id AP_AWT_GROUPS.group_id%TYPE;
1188 l_dummy_name AP_AWT_GROUPS.name%TYPE;
1189
1190 BEGIN
1191 x_valid := TRUE;
1192
1193 IF p_allow_awt_flag = 'N' THEN
1194 BEGIN
1195 If p_awt_id is NOT NULL then
1196
1197 x_valid := FALSE;
1198 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMNS_INCONSISTENT');
1199 FND_MESSAGE.SET_TOKEN('ID','ALLOW_AWT_FLAG');
1200 FND_MESSAGE.SET_TOKEN('NAME','AWT_GROUP_ID');
1201 FND_MSG_PUB.ADD;
1202 Elsif p_awt_name is NOT NULL Then
1203
1204 x_valid := FALSE;
1205 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMNS_INCONSISTENT');
1206 FND_MESSAGE.SET_TOKEN('ID','ALLOW_AWT_FLAG');
1207 FND_MESSAGE.SET_TOKEN('NAME','AWT_GROUP_NAME');
1208 FND_MSG_PUB.ADD;
1209 End If;
1210
1211 END;
1212
1213 ELSIF (p_allow_awt_flag = 'Y' and (p_awt_id is NOT NULL and p_awt_name is NULL)) THEN
1214 BEGIN
1215
1216 SELECT name
1217 INTO l_dummy_name
1218 FROM AP_AWT_GROUPS
1219 WHERE group_id = p_awt_id
1220 AND sysdate < nvl(inactive_date, sysdate + 1);
1221
1222 EXCEPTION
1223 -- Trap validation error
1224 WHEN NO_DATA_FOUND THEN
1225 x_valid := FALSE;
1226 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
1227 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','AWT_GROUP_ID' );
1228 FND_MSG_PUB.ADD;
1229 END;
1230
1231 ELSIF (p_allow_awt_flag = 'Y' and (p_awt_id is NOT NULL and p_awt_name is NOT NULL)) THEN
1232 BEGIN
1233
1234 SELECT group_id
1235 INTO l_dummy_id
1236 FROM AP_AWT_GROUPS
1237 WHERE group_id = p_awt_id
1238 AND name = p_awt_name
1239 AND sysdate < nvl(inactive_date, sysdate + 1);
1240
1241 EXCEPTION
1242 -- Trap validation error
1243 WHEN NO_DATA_FOUND THEN
1244 x_valid := FALSE;
1245 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMNS_NOT_MATCHED');
1246 FND_MESSAGE.SET_TOKEN('ID','AWT_GROUP_ID');
1247 FND_MESSAGE.SET_TOKEN('NAME','AWT_GROUP_NAME');
1248 FND_MSG_PUB.ADD;
1249 END;
1250
1251 ELSIF (p_allow_awt_flag = 'Y' and (p_awt_id is NULL and p_awt_name is NOT NULL)) THEN
1252 BEGIN
1253
1254 SELECT group_id
1255 INTO p_awt_id
1256 FROM AP_AWT_GROUPS
1257 WHERE name = p_awt_name
1258 AND sysdate < nvl(inactive_date, sysdate + 1);
1259
1260 EXCEPTION
1261 -- Trap validation error
1262 WHEN NO_DATA_FOUND THEN
1263 x_valid := FALSE;
1264 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
1265 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','AWT_GROUP_NAME' );
1266 FND_MSG_PUB.ADD;
1267 END;
1268
1269 END IF;
1270
1271 END Chk_awt_grp_id_name;
1272
1273
1274 /* Bug9589179 */
1275 --
1276 -- Check if the pay_awt_group_id and name are in sync.
1277 --
1278
1279 PROCEDURE Chk_pay_awt_grp_id_name(p_pay_awt_id IN OUT NOCOPY NUMBER,
1280 p_pay_awt_name IN VARCHAR2,
1281 p_allow_awt_flag IN VARCHAR2,
1282 x_valid OUT NOCOPY BOOLEAN
1283 ) IS
1284
1285 l_dummy_id AP_AWT_GROUPS.group_id%TYPE;
1286 l_dummy_name AP_AWT_GROUPS.name%TYPE;
1287
1288 BEGIN
1289
1290
1291 x_valid := TRUE;
1292
1293 IF p_allow_awt_flag = 'N' THEN
1294 BEGIN
1295 If p_pay_awt_id is NOT NULL then
1296
1297 x_valid := FALSE;
1298 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMNS_INCONSISTENT');
1299 FND_MESSAGE.SET_TOKEN('ID','ALLOW_AWT_FLAG');
1300 FND_MESSAGE.SET_TOKEN('NAME','AWT_GROUP_ID');
1301 FND_MSG_PUB.ADD;
1302 Elsif p_pay_awt_name is NOT NULL Then
1303
1304 x_valid := FALSE;
1305 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMNS_INCONSISTENT');
1306 FND_MESSAGE.SET_TOKEN('ID','ALLOW_AWT_FLAG');
1307 FND_MESSAGE.SET_TOKEN('NAME','AWT_GROUP_NAME');
1308 FND_MSG_PUB.ADD;
1309 End If;
1310
1311 END;
1312
1313 ELSIF (p_allow_awt_flag = 'Y' and (p_pay_awt_id is NOT NULL and p_pay_awt_name is NULL)) THEN
1314
1315 BEGIN
1316
1317 SELECT name
1318 INTO l_dummy_name
1319 FROM AP_AWT_GROUPS
1320 WHERE group_id = p_pay_awt_id
1321 AND sysdate < nvl(inactive_date, sysdate + 1);
1322
1323 EXCEPTION
1324 -- Trap validation error
1325 WHEN NO_DATA_FOUND THEN
1326 x_valid := FALSE;
1327 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
1328 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','AWT_GROUP_ID' );
1329 FND_MSG_PUB.ADD;
1330 END;
1331
1332 ELSIF (p_allow_awt_flag = 'Y' and (p_pay_awt_id is NOT NULL and p_pay_awt_name is NOT NULL)) THEN
1333 BEGIN
1334
1335 SELECT group_id
1336 INTO l_dummy_id
1337 FROM AP_AWT_GROUPS
1338 WHERE group_id = p_pay_awt_id
1339 AND name = p_pay_awt_name
1340 AND sysdate < nvl(inactive_date, sysdate + 1);
1341
1342 EXCEPTION
1343 -- Trap validation error
1344 WHEN NO_DATA_FOUND THEN
1345 x_valid := FALSE;
1346 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMNS_NOT_MATCHED');
1347 FND_MESSAGE.SET_TOKEN('ID','AWT_GROUP_ID');
1348 FND_MESSAGE.SET_TOKEN('NAME','AWT_GROUP_NAME');
1349 FND_MSG_PUB.ADD;
1350 END;
1351
1352 ELSIF (p_allow_awt_flag = 'Y' and (p_pay_awt_id is NULL and p_pay_awt_name is NOT NULL)) THEN
1353 BEGIN
1354
1355 SELECT group_id
1356 INTO p_pay_awt_id
1357 FROM AP_AWT_GROUPS
1358 WHERE name = p_pay_awt_name
1359 AND sysdate < nvl(inactive_date, sysdate + 1);
1360
1361 EXCEPTION
1362 -- Trap validation error
1363 WHEN NO_DATA_FOUND THEN
1364 x_valid := FALSE;
1365 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
1366 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','AWT_GROUP_NAME' );
1367 FND_MSG_PUB.ADD;
1368 END;
1369
1370 END IF;
1371
1372 END Chk_pay_awt_grp_id_name; /*Bug 9589179 */
1373 --
1374 -- Check if the Hold_by is valid
1375 --
1376 PROCEDURE Check_Valid_Hold_by(p_hold_by IN NUMBER,
1377 x_valid OUT NOCOPY BOOLEAN
1378 ) IS
1379 l_dummy hr_employees_current_v.employee_id%TYPE;
1380
1381 BEGIN
1382 x_valid := TRUE;
1383
1384 SELECT employee_id
1385 INTO l_dummy
1386 FROM hr_employees_current_v
1387 WHERE employee_id = p_hold_by;
1388
1389
1390 EXCEPTION
1391 -- Trap validation error
1392 WHEN NO_DATA_FOUND THEN
1393 x_valid := FALSE;
1394
1395 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
1396 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','HOLD_BY' );
1397 FND_MSG_PUB.ADD;
1398 END Check_Valid_Hold_by;
1399
1400 --
1401 -- Check that terms_id and terms_name are in sync.
1402 --
1403
1404 PROCEDURE Check_terms_id_code(p_terms_id IN OUT NOCOPY NUMBER,
1405 p_terms_name IN VARCHAR2,
1406 p_default_terms_id IN NUMBER,
1407 x_valid OUT NOCOPY BOOLEAN
1408 ) IS
1409
1410 l_terms_id AP_TERMS_TL.term_id%TYPE;
1411 l_terms_name AP_TERMS_TL.name%TYPE;
1412
1413 BEGIN
1414 x_valid := TRUE;
1415
1416 IF (p_terms_id is NULL and p_terms_name is NULL) THEN
1417 p_terms_id := p_default_terms_id;
1418
1419 ELSIF (p_terms_id is NOT NULL and p_terms_name is NULL) THEN
1420 BEGIN
1421 SELECT name
1422 INTO l_terms_name
1423 FROM AP_TERMS_TL
1424 WHERE term_id = p_terms_id
1425 AND language = userenv('LANG')
1426 AND sysdate < nvl(end_date_active, sysdate+1);
1427
1428 EXCEPTION
1429 -- Trap validation error
1430 WHEN NO_DATA_FOUND THEN
1431 x_valid := FALSE;
1432
1433 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
1434 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','TERMS_ID' );
1435 FND_MSG_PUB.ADD;
1436 END;
1437
1438 ELSIF (p_terms_id is NOT NULL and p_terms_name is NOT NULL) THEN
1439 BEGIN
1440 SELECT term_id
1441 INTO l_terms_id
1442 FROM AP_TERMS_TL
1443 WHERE term_id = p_terms_id
1444 AND name = p_terms_name
1445 AND language = userenv('LANG')
1446 AND sysdate < nvl(end_date_active, sysdate+1);
1447
1448 EXCEPTION
1449 -- Trap validation error
1450 WHEN NO_DATA_FOUND THEN
1451 x_valid := FALSE;
1452
1453 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMNS_NOT_MATCHED');
1454 FND_MESSAGE.SET_TOKEN('ID','TERMS_ID');
1455 FND_MESSAGE.SET_TOKEN('NAME','TERMS_NAME');
1456 FND_MSG_PUB.ADD;
1457 END;
1458
1459 ELSIF (p_terms_id is NULL and p_terms_name is NOT NULL) THEN
1460 BEGIN
1461 SELECT term_id
1462 INTO p_terms_id
1463 FROM AP_TERMS_TL
1464 WHERE name = p_terms_name
1465 AND language = userenv('LANG')
1466 AND sysdate < nvl(end_date_active, sysdate+1);
1467
1468 EXCEPTION
1469 -- Trap validation error
1470 WHEN NO_DATA_FOUND THEN
1471 x_valid := FALSE;
1472
1473 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
1474 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','TERMS_NAME' );
1475 FND_MSG_PUB.ADD;
1476 END;
1477
1478 END IF;
1479
1480 END Check_terms_id_code;
1481
1482 --
1483 -- Check that dist_set_id and name are in sync.
1484
1485 PROCEDURE Check_dist_set_id_name(p_dist_id IN OUT NOCOPY NUMBER,
1486 p_dist_name IN VARCHAR2,
1487 p_default_dist_id IN NUMBER,
1488 x_valid OUT NOCOPY BOOLEAN
1489 ) IS
1490
1491 l_dist_id AP_DISTRIBUTION_SETS_ALL.distribution_set_id%TYPE;
1492 l_dist_name AP_DISTRIBUTION_SETS_ALL.distribution_set_name%TYPE;
1493
1494 BEGIN
1495 x_valid := TRUE;
1496
1497 IF (p_dist_id is NULL and p_dist_name is NULL) THEN
1498
1499 p_dist_id := p_default_dist_id;
1500
1501 ELSIF p_dist_id is NOT NULL and p_dist_name is NOT NULL THEN
1502 BEGIN
1503 SELECT distribution_set_id
1504 INTO l_dist_id
1505 FROM AP_DISTRIBUTION_SETS_ALL
1506 WHERE distribution_set_id = p_dist_id
1507 AND distribution_set_name = p_dist_name
1508 AND sysdate < nvl(inactive_date, sysdate+1);
1509
1510 EXCEPTION
1511 -- Trap validation error
1512 WHEN NO_DATA_FOUND THEN
1513 x_valid := FALSE;
1514
1515 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMNS_NOT_MATCHED');
1516 FND_MESSAGE.SET_TOKEN('ID','DISTRIBUTION_SET_ID');
1517 FND_MESSAGE.SET_TOKEN('NAME','DISTRIBUTION_SET_NAME');
1518 FND_MSG_PUB.ADD;
1519 END;
1520
1521 ELSIF p_dist_id is NULL and p_dist_name is NOT NULL THEN
1522 BEGIN
1523 SELECT distribution_set_id
1524 INTO p_dist_id
1525 FROM AP_DISTRIBUTION_SETS_ALL
1526 WHERE distribution_set_name = p_dist_name
1527 AND sysdate < nvl(inactive_date, sysdate+1);
1528
1529 EXCEPTION
1530 -- Trap validation error
1531 WHEN NO_DATA_FOUND THEN
1532 x_valid := FALSE;
1533
1534 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
1535 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','DISTRIBUTION_SET_NAME' );
1536 FND_MSG_PUB.ADD;
1537 END;
1538
1539 ELSIF p_dist_id is NOT NULL and p_dist_name is NULL THEN
1540 BEGIN
1541 SELECT distribution_set_name
1542 INTO l_dist_name
1543 FROM AP_DISTRIBUTION_SETS_ALL
1544 WHERE distribution_set_id = p_dist_id
1545 AND sysdate < nvl(inactive_date, sysdate+1);
1546
1547 EXCEPTION
1548 -- Trap validation error
1549 WHEN NO_DATA_FOUND THEN
1550 x_valid := FALSE;
1551
1552 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
1553 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','DISTRIBUTION_SET_ID' );
1554 FND_MSG_PUB.ADD;
1555 END;
1556
1557 END IF;
1558
1559 END Check_dist_set_id_name;
1560
1561 --
1562 -- Check that ship_to_location_id and ship_to_location_code are in sync.
1563 --
1564
1565 PROCEDURE Check_ship_locn_id_code(p_ship_location_id IN OUT NOCOPY NUMBER,
1566 p_ship_location_code IN VARCHAR2,
1567 p_default_ship_to_loc_id IN NUMBER,
1568 x_valid OUT NOCOPY BOOLEAN
1569 ) IS
1570
1571 l_ship_locn_id HR_LOCATIONS_ALL.ship_to_location_id%TYPE;
1572 l_ship_locn_code HR_LOCATIONS_ALL.location_code%TYPE;
1573
1574 BEGIN
1575 x_valid := TRUE;
1576
1577 IF (p_ship_location_id is NULL and p_ship_location_code is NULL) THEN
1578
1579 p_ship_location_id := p_default_ship_to_loc_id;
1580
1581 ELSIF (p_ship_location_id is NOT NULL and p_ship_location_code is NULL) THEN
1582
1583 BEGIN
1584 SELECT lot.location_code
1585 INTO l_ship_locn_code
1586 FROM HR_LOCATIONS_ALL loc, HR_LOCATIONS_ALL_TL lot
1587 WHERE loc.location_id = p_ship_location_id
1588 AND sysdate < nvl(loc.inactive_date, sysdate + 1)
1589 AND loc.location_id = lot.location_id
1590 AND lot.language = userenv('LANG')
1591 AND (nvl(loc.business_group_id,nvl(hr_general.get_business_group_id,-99))=
1592 nvl(hr_general.get_business_group_id,-99))
1593 AND loc.ship_to_site_flag = 'Y';
1594
1595 EXCEPTION
1596 -- Trap validation error
1597 WHEN NO_DATA_FOUND THEN
1598 x_valid := FALSE;
1599
1600 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
1601 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','SHIP_TO_LOCATION_ID' );
1602 FND_MSG_PUB.ADD;
1603 END;
1604
1605 ELSIF (p_ship_location_id is NOT NULL and p_ship_location_code is NOT NULL) THEN
1606 BEGIN
1607 SELECT loc.location_id
1608 INTO l_ship_locn_id
1609 FROM HR_LOCATIONS_ALL loc, HR_LOCATIONS_ALL_TL lot
1610 WHERE lot.location_code = p_ship_location_code
1611 AND loc.location_id = p_ship_location_id
1612 AND sysdate < nvl(loc.inactive_date, sysdate + 1)
1613 AND loc.location_id = lot.location_id
1614 AND lot.language = userenv('LANG')
1615 AND (nvl(loc.business_group_id,nvl(hr_general.get_business_group_id,-99))=
1616 nvl(hr_general.get_business_group_id,-99))
1617 AND loc.ship_to_site_flag = 'Y';
1618
1619 EXCEPTION
1620 -- Trap validation error
1621 WHEN NO_DATA_FOUND THEN
1622 x_valid := FALSE;
1623
1624 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMNS_NOT_MATCHED');
1625 FND_MESSAGE.SET_TOKEN('ID','SHIP_TO_LOCATION_ID');
1626 FND_MESSAGE.SET_TOKEN('NAME','SHIP_TO_LOCATION_CODE');
1627 FND_MSG_PUB.ADD;
1628 END;
1629
1630 ELSIF (p_ship_location_id is NULL and p_ship_location_code is NOT NULL) THEN
1631 BEGIN
1632 SELECT loc.location_id
1633 INTO p_ship_location_id
1634 FROM HR_LOCATIONS_ALL loc, HR_LOCATIONS_ALL_TL lot
1635 WHERE lot.location_code = p_ship_location_code
1636 AND sysdate < nvl(loc.inactive_date, sysdate + 1)
1637 AND loc.location_id = lot.location_id
1638 AND lot.language = userenv('LANG')
1639 AND (nvl(loc.business_group_id,nvl(hr_general.get_business_group_id,-99))=
1640 nvl(hr_general.get_business_group_id,-99))
1641 AND loc.ship_to_site_flag = 'Y';
1642
1643 EXCEPTION
1644 -- Trap validation error
1645 WHEN NO_DATA_FOUND THEN
1646 x_valid := FALSE;
1647
1648 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
1649 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','SHIP_TO_LOCATION_CODE' );
1650 FND_MSG_PUB.ADD;
1651 END;
1652
1653 END IF;
1654
1655 END Check_ship_locn_id_code;
1656
1657 --
1658 -- Check that bill_to_location_id and bill_to_location_code are in sync.
1659 --
1660
1661 PROCEDURE Check_bill_locn_id_code(p_bill_location_id IN OUT NOCOPY NUMBER,
1662 p_bill_location_code IN VARCHAR2,
1663 p_default_bill_to_loc_id IN NUMBER,
1664 x_valid OUT NOCOPY BOOLEAN
1665 ) IS
1666
1667 l_bill_locn_id HR_LOCATIONS_ALL.location_id%TYPE;
1668 l_bill_locn_code HR_LOCATIONS_ALL.location_code%TYPE;
1669
1670 BEGIN
1671 x_valid := TRUE;
1672
1673 IF (p_bill_location_id is NULL and p_bill_location_code is NULL) THEN
1674 p_bill_location_id := p_default_bill_to_loc_id;
1675
1676 ELSIF (p_bill_location_id is NOT NULL and p_bill_location_code is NULL) THEN
1677 BEGIN
1678 SELECT lot.location_code
1679 INTO l_bill_locn_code
1680 FROM HR_LOCATIONS_ALL loc, HR_LOCATIONS_ALL_TL lot
1681 WHERE loc.location_id = p_bill_location_id
1682 AND sysdate < nvl(loc.inactive_date, sysdate + 1)
1683 AND loc.location_id = lot.location_id
1684 AND lot.language = userenv('LANG')
1685 AND (nvl(loc.business_group_id,nvl(hr_general.get_business_group_id,-99))=
1686 nvl(hr_general.get_business_group_id,-99))
1687 AND loc.bill_to_site_flag = 'Y';
1688
1689 EXCEPTION
1690 -- Trap validation error
1691 WHEN NO_DATA_FOUND THEN
1692 x_valid := FALSE;
1693
1694 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
1695 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','BILL_TO_LOCATION_ID' );
1696 FND_MSG_PUB.ADD;
1697 END;
1698
1699 ELSIF p_bill_location_id is NOT NULL and p_bill_location_code is NOT NULL THEN
1700
1701 BEGIN
1702 SELECT loc.location_id
1703 INTO l_bill_locn_id
1704 FROM HR_LOCATIONS_ALL loc, HR_LOCATIONS_ALL_TL lot
1705 WHERE loc.location_id = p_bill_location_id
1706 AND lot.location_code = p_bill_location_code
1707 AND sysdate < nvl(loc.inactive_date, sysdate + 1)
1708 AND loc.location_id = lot.location_id
1709 AND lot.language = userenv('LANG')
1710 AND (nvl(loc.business_group_id,nvl(hr_general.get_business_group_id,-99))=
1711 nvl(hr_general.get_business_group_id,-99))
1712 AND loc.bill_to_site_flag = 'Y';
1713
1714 EXCEPTION
1715 -- Trap validation error
1716 WHEN NO_DATA_FOUND THEN
1717 x_valid := FALSE;
1718
1719 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMNS_NOT_MATCHED');
1720 FND_MESSAGE.SET_TOKEN('ID','BILL_TO_LOCATION_ID');
1721 FND_MESSAGE.SET_TOKEN('NAME','BILL_TO_LOCATION_CODE');
1722 FND_MSG_PUB.ADD;
1723 END;
1724
1725 ELSIF p_bill_location_id is NULL and p_bill_location_code is NOT NULL THEN
1726
1727 BEGIN
1728 SELECT loc.location_id
1729 INTO p_bill_location_id
1730 FROM HR_LOCATIONS_ALL loc, HR_LOCATIONS_ALL_TL lot
1731 WHERE lot.location_code = p_bill_location_code
1732 AND sysdate < nvl(loc.inactive_date, sysdate + 1)
1733 AND loc.location_id = lot.location_id
1734 AND lot.language = userenv('LANG')
1735 AND (nvl(loc.business_group_id,nvl(hr_general.get_business_group_id,-99))=
1736 nvl(hr_general.get_business_group_id,-99))
1737 AND loc.bill_to_site_flag = 'Y';
1738
1739 EXCEPTION
1740 -- Trap validation error
1741 WHEN NO_DATA_FOUND THEN
1742 x_valid := FALSE;
1743
1744 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
1745 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','BILL_TO_LOCATION_CODE' );
1746 FND_MSG_PUB.ADD;
1747 END;
1748
1749 END IF;
1750
1751 END Check_bill_locn_id_code;
1752
1753 --
1754 -- Check if the Default_pay_site_id is valid
1755 --
1756 PROCEDURE Check_Default_pay_site(p_default_pay_site_id IN NUMBER,
1757 p_vendor_id IN NUMBER,
1758 p_org_id IN NUMBER,
1759 x_valid OUT NOCOPY BOOLEAN
1760 ) IS
1761 l_dummy po_vendor_sites_all.vendor_site_id%TYPE;
1762
1763 BEGIN
1764 x_valid := TRUE;
1765
1766 SELECT vendor_site_id
1767 INTO l_dummy
1768 FROM po_vendor_sites_all
1769 WHERE vendor_id = p_vendor_id
1770 AND vendor_site_id = p_default_pay_site_id
1771 AND org_id = p_org_id
1772 AND nvl(inactive_date, sysdate +1 ) > sysdate
1773 AND pay_site_flag = 'Y';
1774
1775
1776 EXCEPTION
1777 -- Trap validation error
1778 WHEN NO_DATA_FOUND THEN
1779 x_valid := FALSE;
1780
1781 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
1782 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','DEFAULT_PAY_SITE_ID' );
1783 FND_MSG_PUB.ADD;
1784 END Check_Default_pay_site;
1785
1786 --
1787 -- This procedure should ensure the value for 'state' exists on the
1788 -- target database.
1789 --
1790 PROCEDURE state_valid(p_state IN VARCHAR2,
1791 p_valid OUT NOCOPY BOOLEAN
1792 ) IS
1793 l_count NUMBER := 0;
1794
1795 BEGIN
1796 p_valid := TRUE;
1797
1798 SELECT count(*)
1799 INTO l_count
1800 FROM ap_income_tax_regions
1801 WHERE region_short_name = p_state
1802 AND sysdate < nvl(inactive_date,sysdate+1);
1803
1804 IF (l_count = 0) THEN
1805 FND_MESSAGE.SET_NAME('SQLAP','AP_API_INVALID_STATE');
1806 FND_MSG_PUB.ADD;
1807 p_valid := FALSE;
1808 END IF;
1809
1810 END state_valid;
1811
1812 --
1813 -- Check that Org_Id and Operating Unit name are in sync
1814 -- Modified for 11i Import functionality
1815
1816 PROCEDURE Check_org_id_name(p_org_id IN OUT NOCOPY NUMBER,
1817 p_org_name IN VARCHAR2,
1818 p_int_table IN VARCHAR2,
1819 p_int_key IN NUMBER,
1820 x_valid OUT NOCOPY BOOLEAN
1821 ) IS
1822
1823 l_org_id HR_OPERATING_UNITS.organization_id%TYPE;
1824 l_org_name HR_OPERATING_UNITS.name%TYPE;
1825 l_api_name CONSTANT VARCHAR2(30) := 'Check_Org_Id_Name';
1826 BEGIN
1827 x_valid := TRUE;
1828
1829 IF (p_org_id is NOT NULL and p_org_name is NOT NULL) THEN
1830 BEGIN
1831 SELECT organization_id
1832 INTO l_org_id
1833 FROM HR_OPERATING_UNITS
1834 WHERE organization_id = p_org_id
1835 AND name = p_org_name
1836 AND sysdate < nvl(date_to, sysdate + 1);
1837
1838 EXCEPTION
1839 -- Trap validation error
1840 WHEN NO_DATA_FOUND THEN
1841 x_valid := FALSE;
1842 IF g_source = 'IMPORT' THEN
1843 IF (Insert_Rejections(
1844 p_int_table,
1845 p_int_key,
1846 'AP_INCONSISTENT_ORG_INFO',
1847 g_user_id,
1848 g_login_id,
1849 'Check_Org_Id_Name') <> TRUE) THEN
1850 --
1851 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
1852 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'Parameters: '
1853 ||' P_Org_Id: '|| p_org_id
1854 ||', P_Org_Name: '||p_org_name
1855 ||', P_Int_Table: '||p_int_table
1856 ||', P_Int_Key: '||p_int_key);
1857 END IF;
1858 END IF;
1859 ELSE
1860 -- Bug 5491139 hkaniven start --
1861 FND_MESSAGE.SET_NAME('SQLAP','AP_INCONSISTENT_ORG_INFO');
1862 FND_MSG_PUB.ADD;
1863 -- Bug 5491139 hkaniven end --
1864 END IF;
1865 END;
1866
1867 ELSIF (p_org_id is NULL and p_org_name is NOT NULL) THEN
1868
1869 BEGIN
1870 SELECT organization_id
1871 INTO p_org_id
1872 FROM HR_OPERATING_UNITS
1873 WHERE name = p_org_name
1874 AND sysdate < nvl(date_to, sysdate + 1);
1875
1876 EXCEPTION
1877 -- Trap validation error
1878 WHEN NO_DATA_FOUND THEN
1879 x_valid := FALSE;
1880 IF g_source = 'IMPORT' THEN
1881 IF (Insert_Rejections(
1882 p_int_table,
1883 p_int_key,
1884 'AP_INVALID_ORG_INFO',
1885 g_user_id,
1886 g_login_id,
1887 'Check_Org_Id_Name') <> TRUE) THEN
1888 --
1889 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
1890 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'Parameters: '
1891 ||' P_Org_Id: '|| p_org_id
1892 ||', P_Org_Name: '||p_org_name
1893 ||', P_Int_Table: '||p_int_table
1894 ||', P_Int_Key: '||p_int_key);
1895 END IF;
1896 END IF;
1897 ELSE
1898 -- Bug 5491139 hkaniven start --
1899 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_ORG_INFO');
1900 FND_MSG_PUB.ADD;
1901 -- Bug 5491139 hkaniven end --
1902 END IF;
1903 END;
1904
1905 ELSIF (p_org_id is NOT NULL and p_org_name is NULL) THEN
1906
1907 BEGIN
1908 SELECT name
1909 INTO l_org_name
1910 FROM HR_OPERATING_UNITS
1911 WHERE organization_id = p_org_id
1912 AND sysdate < nvl(date_to, sysdate + 1);
1913
1914 EXCEPTION
1915 -- Trap validation error
1916 WHEN NO_DATA_FOUND THEN
1917 x_valid := FALSE;
1918 IF g_source = 'IMPORT' THEN
1919 IF (Insert_Rejections(
1920 p_int_table,
1921 p_int_key,
1922 'AP_INVALID_ORG_INFO',
1923 g_user_id,
1924 g_login_id,
1925 'Check_Org_Id_Name') <> TRUE) THEN
1926 --
1927 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
1928 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'Parameters: '
1929 ||' P_Org_Id: '|| p_org_id
1930 ||', P_Org_Name: '||p_org_name
1931 ||', P_Int_Table: '||p_int_table
1932 ||', P_Int_Key: '||p_int_key);
1933 END IF;
1934 END IF;
1935 ELSE
1936 -- Bug 5491139 hkaniven start --
1937 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_ORG_INFO');
1938 FND_MSG_PUB.ADD;
1939 -- Bug 5491139 hkaniven end --
1940 END IF;
1941 END;
1942 END IF;
1943
1944 END Check_org_id_name;
1945
1946 PROCEDURE Check_pay_on_rec_sum_code(p_pay_on_code IN VARCHAR2,
1947 p_pay_on_receipt_summary_code IN OUT NOCOPY VARCHAR2,
1948 x_valid OUT NOCOPY BOOLEAN
1949 ) IS
1950
1951 e_apps_exception EXCEPTION;
1952
1953 BEGIN
1954 x_valid := TRUE;
1955
1956 IF ((p_pay_on_receipt_summary_code is NULL) or(p_pay_on_receipt_summary_code=fnd_api.g_null_char )) THEN --Bug8512030
1957 p_pay_on_receipt_summary_code := 'PAY_SITE';
1958
1959 ELSIF p_pay_on_receipt_summary_code is NOT NULL THEN
1960
1961 IF ((p_pay_on_code = 'RECEIPT') AND (p_pay_on_receipt_summary_code not IN
1962 ('PACKING_SLIP','PAY_SITE','RECEIPT'))) THEN
1963
1964 Raise e_apps_exception;
1965
1966 ELSIF ((p_pay_on_code = 'USE') AND (p_pay_on_receipt_summary_code not IN
1967 ('CONSUMPTION_ADVICE','PAY_SITE'))) THEN
1968
1969 Raise e_apps_exception;
1970
1971 ELSIF ((p_pay_on_code = 'RECEIPT_AND_USE') AND (p_pay_on_receipt_summary_code not IN
1972 ('PAY_SITE'))) THEN
1973
1974 Raise e_apps_exception;
1975
1976 END IF;
1977
1978 END IF;
1979
1980 EXCEPTION
1981 WHEN e_apps_exception THEN
1982 x_valid := FALSE;
1983 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMNS_INCONSISTENT');
1984 FND_MESSAGE.SET_TOKEN('ID','PAY_ON_CODE');
1985 FND_MESSAGE.SET_TOKEN('NAME','PAY_ON_RECEIPT_SUMMARY_CODE');
1986 FND_MSG_PUB.ADD;
1987 END Check_pay_on_rec_sum_code;
1988
1989 --
1990 -- Check if the Shipping_Control value is valid
1991 --
1992
1993 PROCEDURE Check_Shipping_Control(p_shipping_control IN VARCHAR2,
1994 x_valid OUT NOCOPY BOOLEAN
1995 ) IS
1996
1997 BEGIN
1998 x_valid := TRUE;
1999
2000 IF upper(p_shipping_control) NOT IN ('SUPPLIER','BUYER') THEN
2001
2002 x_valid := FALSE;
2003
2004 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
2005 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','SHIPPING_CONTROL' );
2006 FND_MSG_PUB.ADD;
2007 END IF;
2008
2009 END Check_Shipping_Control;
2010
2011 --
2012 -- Check the pay_on_code values
2013 --
2014 PROCEDURE Check_Valid_pay_on_code(p_pay_on_code IN VARCHAR2,
2015 p_purchasing_site_flag IN VARCHAR2 DEFAULT NULL,
2016 p_pay_site_flag IN VARCHAR2,
2017 p_default_pay_site_id IN NUMBER DEFAULT NULL,
2018 x_valid OUT NOCOPY BOOLEAN
2019 ) IS
2020
2021 l_dummy VARCHAR2(1);
2022 l_default_pay_site_id NUMBER;
2023
2024 BEGIN
2025 x_valid := TRUE;
2026 -- Bug #7197985 Checking the default pay site id
2027 IF(p_default_pay_site_id IS NULL OR p_default_pay_site_id = ap_null_num) THEN
2028 l_default_pay_site_id := NULL;
2029 ELSE
2030 l_default_pay_site_id := p_default_pay_site_id;
2031 END IF;
2032
2033
2034 IF (nvl(p_purchasing_site_flag,'N') = 'N') THEN
2035 x_valid := FALSE;
2036 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMNS_INCONSISTENT');
2037 FND_MESSAGE.SET_TOKEN('ID','PAY_ON_CODE');
2038 FND_MESSAGE.SET_TOKEN('NAME','PURCHASING_SITE_FLAG');
2039 FND_MSG_PUB.ADD;
2040 ELSIF (nvl(p_purchasing_site_flag,'N') = 'Y') THEN
2041
2042 If p_pay_on_code IN ('RECEIPT','USE','RECEIPT_AND_USE') Then
2043 l_dummy := 'Y';
2044 Else l_dummy := 'N';
2045 End If;
2046
2047 IF l_dummy = 'N' THEN
2048 x_valid := FALSE;
2049 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
2050 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','PAY_ON_CODE' );
2051 FND_MSG_PUB.ADD;
2052 ELSIF (p_pay_site_flag = 'N' and l_default_pay_site_id IS NULL) THEN
2053 x_valid := FALSE;
2054 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMNS_INCONSISTENT');
2055 FND_MESSAGE.SET_TOKEN('ID','PAY_ON_CODE');
2056 FND_MESSAGE.SET_TOKEN('NAME','PAY_SITE_FLAG');
2057 FND_MSG_PUB.ADD;
2058 END IF;
2059
2060 END IF;
2061
2062 END Check_Valid_pay_on_Code;
2063
2064 --
2065 -- This procedure should ensure the value for 'pay_on_receipt_summary_code'
2066 -- exists on the target database
2067 --
2068 PROCEDURE pay_on_receipt_summary_valid( p_pay_on_receipt_summary_code IN VARCHAR2,
2069 p_pay_on_code IN VARCHAR2,
2070 p_valid OUT NOCOPY BOOLEAN
2071 ) IS
2072 l_count NUMBER := 0;
2073
2074 BEGIN
2075 p_valid := TRUE;
2076
2077 SELECT count(*)
2078 INTO l_count
2079 FROM po_lookup_codes
2080 WHERE lookup_code = p_pay_on_receipt_summary_code
2081 AND lookup_type = 'ERS INVOICE_SUMMARY_CONSIGNED' -- bug 8429005 'ERS INVOICE_SUMMARY'
2082 AND sysdate < nvl(inactive_date,sysdate+1)
2083 AND (lookup_code = 'PAY_SITE'
2084 OR (p_pay_on_code = 'USE' AND lookup_code = 'CONSUMPTION_ADVICE')
2085 OR (p_pay_on_code = 'RECEIPT' and lookup_code IN ('RECEIPT','PACKING_SLIP'))
2086 );
2087
2088 IF (l_count = 0) THEN
2089 FND_MESSAGE.SET_NAME('SQLAP','AP_API_INVALID_RECPT_SUMM');
2090 FND_MSG_PUB.ADD;
2091 p_valid := FALSE;
2092 END IF;
2093
2094 END pay_on_receipt_summary_valid;
2095
2096 --
2097 -- Check for matching address
2098 --
2099
2100 PROCEDURE Check_Valid_Location(p_party_site_id IN OUT NOCOPY VARCHAR2,
2101 p_address_line1 IN VARCHAR2,
2102 p_address_line2 IN VARCHAR2,
2103 p_address_line3 IN VARCHAR2,
2104 p_address_line4 IN VARCHAR2,
2105 p_city IN VARCHAR2,
2106 p_state IN VARCHAR2,
2107 p_zip IN VARCHAR2,
2108 p_province IN VARCHAR2,
2109 p_country IN VARCHAR2,
2110 p_county IN VARCHAR2,
2111 p_language IN VARCHAR2,
2112 p_address_style IN VARCHAR2,
2113 p_vendor_id IN NUMBER,
2114 x_location_id OUT NOCOPY NUMBER,
2115 x_valid OUT NOCOPY BOOLEAN,
2116 x_loc_count OUT NOCOPY NUMBER -- Bug 7429668
2117 ) IS
2118
2119 l_dummy NUMBER;
2120 l_sync_count NUMBER;
2121 primary_state VARCHAR2(30); --Bug 14493264
2122 BEGIN
2123 x_valid := TRUE;
2124 x_loc_count := 0; -- Bug 7429668
2125 --Bug 14493264 start
2126 IF (UPPER(p_country) = 'US') THEN
2127
2128 SELECT hg.GEOGRAPHY_NAME
2129 INTO primary_state
2130 FROM HZ_GEOGRAPHIES hg
2131 WHERE hg.COUNTRY_CODE='US' AND hg.GEOGRAPHY_ID IN
2132 (SELECT hgi.GEOGRAPHY_ID
2133 FROM HZ_GEOGRAPHY_IDENTIFIERS hgi
2134 WHERE hgi.GEOGRAPHY_TYPE ='STATE' AND UPPER(hgi.IDENTIFIER_VALUE) = UPPER(p_state));
2135
2136 ELSE
2137 primary_state := p_state;
2138
2139 END IF;
2140 --Bug 14493264 end
2141 --Open Issue 2 should they match if they are null?
2142 IF p_party_site_id IS NOT NULL THEN
2143 SELECT hl.location_id
2144 INTO x_location_id
2145 FROM HZ_Locations hl, HZ_Party_Sites hps,
2146 fnd_languages fl
2147 WHERE hl.language = fl.language_code(+) AND
2148 nvl(upper(hl.country), 'dummy') =
2149 nvl(upper(p_country), 'dummy') AND
2150 nvl(upper(hl.address1), 'dummy') =
2151 nvl(upper(p_address_line1), 'dummy') AND
2152 nvl(upper(hl.address2), 'dummy') =
2153 nvl(upper(p_address_line2), 'dummy') AND
2154 nvl(upper(hl.address3), 'dummy') =
2155 nvl(upper(p_address_line3), 'dummy') AND
2156 nvl(upper(hl.address4), 'dummy') =
2157 nvl(upper(p_address_line4), 'dummy') AND
2158 nvl(upper(hl.city), 'dummy') = nvl(upper(p_city), 'dummy') AND
2159 (nvl(upper(hl.state), 'dummy') = nvl(upper(primary_state), 'dummy') OR nvl(upper(hl.state), 'dummy') = nvl(upper(p_state), 'dummy'))AND --Bug 14493264
2160 --nvl(upper(hl.state), 'dummy') = nvl(upper(p_state), 'dummy') AND
2161 nvl(upper(hl.postal_code), 'dummy') = nvl(upper(p_zip), 'dummy') AND
2162 nvl(upper(hl.province), 'dummy') =
2163 nvl(upper(p_province), 'dummy') AND
2164 nvl(upper(hl.county), 'dummy') = nvl(upper(p_county), 'dummy') AND
2165 nvl(upper(fl.nls_language), 'dummy') =
2166 nvl(upper(p_language), 'dummy') AND
2167 nvl(upper(hl.address_style), 'dummy') =
2168 nvl(upper(p_address_style), 'dummy') AND
2169 hl.location_id = hps.location_id AND
2170 hps.party_site_id = p_party_site_id ;
2171 ELSE
2172
2173 SELECT hl.location_id, hps.party_site_id
2174 INTO x_location_id, p_party_site_id
2175 FROM HZ_Locations hl,
2176 HZ_Party_Sites hps,
2177 po_vendors pv,
2178 fnd_languages fl
2179 WHERE nvl(upper(hl.country), 'dummy') =
2180 nvl(upper(p_country), 'dummy') AND
2181 nvl(upper(hl.address1), 'dummy') =
2182 nvl(upper(p_address_line1), 'dummy') AND
2183 nvl(upper(hl.address2), 'dummy') =
2184 nvl(upper(p_address_line2), 'dummy') AND
2185 nvl(upper(hl.address3), 'dummy') =
2186 nvl(upper(p_address_line3), 'dummy') AND
2187 nvl(upper(hl.address4), 'dummy') =
2188 nvl(upper(p_address_line4), 'dummy') AND
2189 nvl(upper(hl.city), 'dummy') = nvl(upper(p_city), 'dummy') AND
2190 (nvl(upper(hl.state), 'dummy') = nvl(upper(primary_state), 'dummy') OR nvl(upper(hl.state), 'dummy') = nvl(upper(p_state), 'dummy'))AND --Bug 14493264
2191 -- nvl(upper(hl.state), 'dummy') = nvl(upper(p_state), 'dummy') AND
2192 nvl(upper(hl.postal_code), 'dummy') = nvl(upper(p_zip), 'dummy') AND
2193 nvl(upper(hl.province), 'dummy') =
2194 nvl(upper(p_province), 'dummy') AND
2195 nvl(upper(hl.county), 'dummy') = nvl(upper(p_county), 'dummy') AND
2196 nvl(upper(fl.nls_language), 'dummy') =
2197 nvl(upper(p_language), 'dummy') AND
2198 nvl(upper(hl.address_style), 'dummy') =
2199 nvl(upper(p_address_style), 'dummy') AND
2200 hl.location_id = hps.location_id AND
2201 hps.party_id = pv.party_id AND
2202 pv.vendor_id = p_vendor_id AND
2203 hl.language = fl.language_code(+);
2204 END IF;
2205
2206 IF x_location_id IS NULL THEN
2207 x_valid := FALSE;
2208 END IF;
2209
2210 EXCEPTION
2211 -- Trap validation error
2212 WHEN NO_DATA_FOUND THEN
2213 x_valid := FALSE;
2214 -- Bug 7429668 Trap validation error when more than 1 row is found
2215 WHEN OTHERS THEN
2216 x_valid := FALSE;
2217 x_loc_count := 2;
2218 END Check_Valid_Location;
2219
2220 --
2221 -- Take care of CCID etc. defaulting from Parameters for SITE Import
2222 --
2223 PROCEDURE Default_CCIDs_for_Site(p_org_id IN NUMBER DEFAULT NULL,
2224 p_org_name IN VARCHAR2 DEFAULT NULL,
2225 p_multi_org_flag IN VARCHAR2,
2226 p_accts_pay_ccid IN OUT NOCOPY NUMBER,
2227 p_prepay_ccid IN OUT NOCOPY NUMBER,
2228 p_future_pay_ccid IN OUT NOCOPY NUMBER,
2229 p_rfq_site_flag IN OUT NOCOPY VARCHAR2 ,
2230 p_country_code IN OUT NOCOPY VARCHAR2,
2231 p_ship_via_lookup_code IN OUT NOCOPY VARCHAR2
2232 ) IS
2233
2234 l_rfq_only_site FINANCIALS_SYSTEM_PARAMS_ALL.rfq_only_site_flag%TYPE;
2235 l_accts_pay_ccid FINANCIALS_SYSTEM_PARAMS_ALL.accts_pay_code_combination_id%TYPE;
2236 l_prepay_ccid FINANCIALS_SYSTEM_PARAMS_ALL.prepay_code_combination_id%TYPE;
2237 l_future_pay_ccid FINANCIALS_SYSTEM_PARAMS_ALL.future_dated_payment_ccid%TYPE;
2238 l_home_country_code FINANCIALS_SYSTEM_PARAMS_ALL.vat_country_code%TYPE;
2239 l_default_country_code FINANCIALS_SYSTEM_PARAMS_ALL.vat_country_code%TYPE;
2240
2241 BEGIN
2242
2243 SELECT FIN.rfq_only_site_flag,
2244 FIN.accts_pay_code_combination_id,
2245 FIN.prepay_code_combination_id,
2246 FIN.future_dated_payment_ccid,
2247 fin.vat_country_code,
2248 fin.ship_via_lookup_code
2249 INTO l_rfq_only_site,
2250 l_accts_pay_ccid,
2251 l_prepay_ccid,
2252 l_future_pay_ccid,
2253 l_home_country_code,
2254 p_ship_via_lookup_code
2255 FROM FINANCIALS_SYSTEM_PARAMS_ALL FIN,
2256 HR_OPERATING_UNITS HR
2257 WHERE HR.organization_id = FIN.org_id
2258 AND ( HR.name = p_org_name OR
2259 HR.organization_id = p_org_id);
2260
2261 fnd_profile.get('DEFAULT_COUNTRY',l_default_country_code);
2262 --
2263 --
2264 if ( l_default_country_code is null ) then
2265 p_country_code := l_home_country_code;
2266 end if;
2267
2268 IF p_multi_org_flag = 'Y' THEN
2269
2270 IF p_accts_pay_ccid is NULL THEN
2271 p_accts_pay_ccid := l_accts_pay_ccid;
2272 END IF;
2273
2274 IF p_prepay_ccid is NULL THEN
2275 p_prepay_ccid := l_prepay_ccid;
2276 END IF;
2277
2278 IF p_future_pay_ccid is NULL THEN
2279 p_future_pay_ccid := l_future_pay_ccid;
2280 END IF;
2281
2282 IF p_rfq_site_flag is NULL THEN
2283 p_rfq_site_flag := l_rfq_only_site;
2284 END IF;
2285
2286 END IF;
2287
2288 END Default_CCIDs_for_Site;
2289
2290 --
2291 -- Do some validation checks in Apps and in Interface table
2292 --
2293
2294 PROCEDURE Validate_unique_per_vendor(
2295 p_column_name IN VARCHAR2,
2296 p_vendor_id IN NUMBER,
2297 p_vendor_site_id IN NUMBER DEFAULT NULL,
2298 p_org_id IN NUMBER DEFAULT NULL,
2299 p_org_name IN VARCHAR2 DEFAULT NULL,
2300 x_valid OUT NOCOPY BOOLEAN
2301 )
2302 IS
2303
2304 l_dummy_1 NUMBER;
2305 l_dummy_2 NUMBER;
2306
2307 BEGIN
2308 x_valid := TRUE;
2309
2310 IF p_column_name = 'PRIMARY_PAY_SITE_FLAG' THEN
2311
2312 Begin
2313
2314 SELECT nvl(count(primary_pay_site_flag),0)
2315 INTO l_dummy_1
2316 FROM ap_vendor_sites_v
2317 WHERE nvl(primary_pay_site_flag,'N') = 'Y'
2318 AND vendor_id = p_vendor_id
2319 AND nvl(inactive_date, sysdate + 1) > sysdate
2320 AND nvl(vendor_site_id, -99) <> nvl(p_vendor_site_id, -99);
2321
2322 SELECT count(*)
2323 INTO l_dummy_2
2324 FROM AP_SUPPLIER_SITES_INT
2325 WHERE vendor_id = p_vendor_id
2326 AND nvl(inactive_date ,sysdate+1) > sysdate
2327 AND primary_pay_site_flag = 'Y'
2328 AND import_request_id is not null -- Bug 11817579
2329 AND nvl(status,'NEW') <> 'PROCESSED'
2330 AND (org_id = p_org_id OR
2331 operating_unit_name = p_org_name);
2332
2333 IF (l_dummy_1 > 0 or l_dummy_2 > 1) THEN
2334 x_valid := FALSE;
2335 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
2336 FND_MESSAGE.SET_TOKEN('COLUMN_NAME', p_column_name );
2337 FND_MSG_PUB.ADD;
2338 END IF;
2339
2340 End;
2341 ELSIF p_column_name = 'TAX_REPORTING_SITE_FLAG' THEN
2342
2343 SELECT nvl(count(tax_reporting_site_flag),0)
2344 INTO l_dummy_1
2345 FROM ap_vendor_sites_v
2346 WHERE nvl(tax_reporting_site_flag,'N') = 'Y'
2347 AND vendor_id = p_vendor_id
2348 AND nvl(inactive_date, sysdate + 1) > sysdate
2349 AND nvl(vendor_site_id, -99) <> nvl(p_vendor_site_id, -99);
2350
2351 SELECT count(*)
2352 INTO l_dummy_2
2353 FROM AP_SUPPLIER_SITES_INT
2354 WHERE vendor_id = p_vendor_id
2355 AND nvl(inactive_date ,sysdate+1) > sysdate
2356 AND tax_reporting_site_flag = 'Y'
2357 AND (org_id = p_org_id OR
2358 operating_unit_name = p_org_name);
2359
2360 IF (l_dummy_1 > 0 or l_dummy_2 > 1) THEN
2361 x_valid := FALSE;
2362 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
2363 FND_MESSAGE.SET_TOKEN('COLUMN_NAME', p_column_name );
2364 FND_MSG_PUB.ADD;
2365 END IF;
2366
2367 END IF;
2368
2369 END Validate_unique_per_vendor;
2370
2371 --
2372 -- This procedure should ensure the value for 'country_of_origin_code' exists
2373 -- on the target database
2374 --
2375 PROCEDURE country_of_origin_valid(p_country_of_origin_code IN VARCHAR2,
2376 p_valid OUT NOCOPY BOOLEAN
2377 ) IS
2378 l_count NUMBER := 0;
2379
2380 BEGIN
2381 p_valid := TRUE;
2382
2383 SELECT count(*)
2384 INTO l_count
2385 FROM fnd_territories_vl
2386 WHERE territory_code = p_country_of_origin_code;
2387
2388 IF (l_count = 0) THEN
2389 FND_MESSAGE.SET_NAME('SQLAP','AP_API_INVALID_COUNTRY_OF_ORIG');
2390 FND_MSG_PUB.ADD;
2391
2392 p_valid := FALSE;
2393 END IF;
2394
2395 END country_of_origin_valid;
2396
2397 -- Bug 5100831
2398 -- Added the validations related the Gapless Invoice Numbering Feature.
2399 -- Validations Performed are:
2400 -- 1) If Gapless Invoice Number is Y then Selling Company Identifier should
2401 -- be populated.
2402
2403 PROCEDURE Check_Gapless_Inv_Num
2404 (p_gapless_inv_num_flag IN VARCHAR2,
2405 p_selling_company_identifier IN VARCHAR2,
2406 p_vendor_id IN NUMBER, --Bug5260465
2407 p_valid OUT NOCOPY BOOLEAN
2408 ) IS
2409 l_column_name VARCHAR2(30);
2410 l_vendor_count NUMBER := 0; --Bug5260465
2411
2412
2413 BEGIN
2414
2415 p_valid := TRUE;
2416 l_column_name := 'SELLING_COMPANY_IDENTIFIER';
2417 IF nvl(p_gapless_inv_num_flag,'N') = 'Y' THEN
2418 IF (p_selling_company_identifier IS NULL OR
2419 p_selling_company_identifier = ap_null_char) THEN
2420 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
2421 FND_MESSAGE.SET_TOKEN('COLUMN_NAME', l_column_name);
2422 FND_MSG_PUB.ADD;
2423 p_valid := FALSE;
2424 END IF;
2425 END IF;
2426
2427 --Bug5260465 starts Adding validation if Selling company identifier is unique for supplier
2428 IF p_selling_company_identifier is not null THEN
2429
2430 SELECT COUNT(vendor_id)
2431 INTO l_vendor_count
2432 FROM po_vendor_sites_all
2433 WHERE selling_company_identifier = p_selling_company_identifier
2434 AND vendor_id <> p_vendor_id;
2435
2436 IF l_vendor_count > 0 THEN
2437 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
2438 FND_MESSAGE.SET_TOKEN('COLUMN_NAME', l_column_name);
2439 FND_MSG_PUB.ADD;
2440 p_valid := FALSE;
2441 END IF;
2442
2443 END IF;
2444 --Bud5260465 ends
2445 END Check_Gapless_Inv_Num;
2446
2447 --
2448 -- Check if the Supplier_Notif_Method is valid
2449 --
2450 PROCEDURE Check_Valid_Sup_Notif_Method(p_sup_notif_method IN VARCHAR2,
2451 x_valid OUT NOCOPY BOOLEAN
2452 ) IS
2453
2454 BEGIN
2455 x_valid := TRUE;
2456
2457 IF p_sup_notif_method NOT IN ('EMAIL','PRINT','FAX','NONE') THEN /* Bug 9768245 */
2458
2459 x_valid := FALSE;
2460
2461 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
2462 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','SUPPLIER_NOTIF_METHOD' );
2463 FND_MSG_PUB.ADD;
2464 END IF;
2465
2466 END Check_Valid_Sup_Notif_Method;
2467
2468 -- Bug 8422781 ...
2469 --
2470 -- Check if the Remit_Advice_Delivery_Method is valid
2471 --
2472 PROCEDURE Check_Valid_Remit_Adv_Del_Mthd(p_remit_advice_delivery_method IN VARCHAR2,
2473 x_valid OUT NOCOPY BOOLEAN
2474 ) IS
2475
2476 BEGIN
2477 x_valid := TRUE;
2478
2479 --IF p_remit_advice_delivery_method NOT IN ('EMAIL','PRINT','FAX') THEN ..B 8561342
2480 IF p_remit_advice_delivery_method NOT IN ('EMAIL','PRINTED','FAX') THEN --B 8561342
2481
2482 x_valid := FALSE;
2483
2484 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
2485 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','REMIT_ADVICE_DELIVERY_METHOD' );
2486 FND_MSG_PUB.ADD;
2487 END IF;
2488
2489 END Check_Valid_Remit_Adv_Del_Mthd ;
2490 -- end Bug 8422781
2491
2492 --
2493 -- Validate and default Tolerance_Id and Tolerance_Name.
2494 --
2495
2496 PROCEDURE Check_tolerance_id_code(p_tolerance_id IN OUT NOCOPY NUMBER,
2497 p_tolerance_name IN VARCHAR2,
2498 p_org_id IN NUMBER DEFAULT NULL,
2499 p_org_name IN VARCHAR2 DEFAULT NULL,
2500 x_valid OUT NOCOPY BOOLEAN,
2501 p_tolerance_type IN VARCHAR2
2502 ) IS
2503
2504 l_tolerance_id AP_TOLERANCE_TEMPLATES.tolerance_id%TYPE;
2505 l_tolerance_name AP_TOLERANCE_TEMPLATES.tolerance_name%TYPE;
2506 l_default_tolerance AP_TOLERANCE_TEMPLATES.tolerance_id%TYPE;
2507
2508 BEGIN
2509 x_valid := TRUE;
2510
2511 IF (p_org_id is NULL and p_org_name is NULL) THEN
2512
2513 --bug6335105
2514 IF p_tolerance_type = 'QUANTITY' then
2515
2516 SELECT tolerance_id
2517 INTO l_default_tolerance
2518 FROM ap_system_parameters;
2519
2520 ELSE
2521
2522 SELECT services_tolerance_id
2523 INTO l_default_tolerance
2524 FROM ap_system_parameters;
2525
2526 END IF;
2527
2528 ELSE
2529
2530 --bug6335105
2531 IF p_tolerance_type = 'QUANTITY' then
2532
2533 SELECT ASP.tolerance_id
2534 INTO l_default_tolerance
2535 FROM ap_system_parameters_all ASP, HR_OPERATING_UNITS ORG
2536 WHERE ASP.org_id = ORG.organization_id
2537 AND (ORG.organization_id = p_org_id OR
2538 ORG.name = p_org_name);
2539
2540 ELSE
2541
2542 SELECT ASP.services_tolerance_id
2543 INTO l_default_tolerance
2544 FROM ap_system_parameters_all ASP, HR_OPERATING_UNITS ORG
2545 WHERE ASP.org_id = ORG.organization_id
2546 AND (ORG.organization_id = p_org_id OR
2547 ORG.name = p_org_name);
2548
2549 END IF;
2550
2551 END IF;
2552
2553
2554 IF (p_tolerance_id is NULL and p_tolerance_name is NULL) THEN
2555
2556 p_tolerance_id := l_default_tolerance;
2557
2558 ELSIF (p_tolerance_id is NOT NULL and p_tolerance_name is NULL) THEN
2559 BEGIN
2560 SELECT tolerance_name
2561 INTO l_tolerance_name
2562 FROM AP_TOLERANCE_TEMPLATES
2563 WHERE tolerance_id = p_tolerance_id;
2564
2565 EXCEPTION
2566 -- Trap validation error
2567 WHEN NO_DATA_FOUND THEN
2568 x_valid := FALSE;
2569
2570 IF p_tolerance_type = 'QUANTITY' THEN
2571 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
2572 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','TOLERANCE_ID' );
2573 FND_MSG_PUB.ADD;
2574 ELSE
2575 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
2576 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','SERVICES_TOLERANCE_ID' );
2577 FND_MSG_PUB.ADD;
2578 END IF;
2579 END;
2580
2581 ELSIF (p_tolerance_id is NOT NULL and p_tolerance_name is NOT NULL) THEN
2582 BEGIN
2583 SELECT tolerance_id
2584 INTO l_tolerance_id
2585 FROM AP_TOLERANCE_TEMPLATES
2586 WHERE tolerance_id = p_tolerance_id
2587 AND tolerance_name = p_tolerance_name;
2588
2589 EXCEPTION
2590 -- Trap validation error
2591 WHEN NO_DATA_FOUND THEN
2592 x_valid := FALSE;
2593
2594 IF p_tolerance_type = 'QUANTITY' THEN
2595 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMNS_NOT_MATCHED');
2596 FND_MESSAGE.SET_TOKEN('ID','TOLERANCE_ID');
2597 FND_MESSAGE.SET_TOKEN('NAME','TOLERANCE_NAME');
2598 FND_MSG_PUB.ADD;
2599 ELSE
2600 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMNS_NOT_MATCHED');
2601 FND_MESSAGE.SET_TOKEN('ID','SERVICES_TOLERANCE_ID');
2602 FND_MESSAGE.SET_TOKEN('NAME','SERVICES_TOLERANCE_NAME');
2603 FND_MSG_PUB.ADD;
2604 END IF;
2605 END;
2606
2607 ELSIF (p_tolerance_id is NULL and p_tolerance_name is NOT NULL) THEN
2608 BEGIN
2609 SELECT tolerance_id
2610 INTO p_tolerance_id
2611 FROM AP_TOLERANCE_TEMPLATES
2612 WHERE tolerance_name = p_tolerance_name;
2613
2614 EXCEPTION
2615 -- Trap validation error
2616 WHEN NO_DATA_FOUND THEN
2617 x_valid := FALSE;
2618 IF p_tolerance_type = 'QUANTITY' THEN
2619 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
2620 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','TOLERANCE_NAME' );
2621 FND_MSG_PUB.ADD;
2622 ELSE
2623 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
2624 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','SERVICES_TOLERANCE_NAME' );
2625 FND_MSG_PUB.ADD;
2626 END IF;
2627 END;
2628 END IF;
2629
2630 END Check_tolerance_id_code;
2631
2632 --
2633 -- Check if ship_via_lookup_code is valid for the site
2634 --
2635 PROCEDURE Check_Site_Ship_Via(p_ship_via_lookup_code IN VARCHAR2,
2636 p_org_id IN NUMBER,
2637 x_valid OUT NOCOPY BOOLEAN
2638 ) IS
2639 l_dummy org_freight.freight_code%TYPE;
2640
2641 BEGIN
2642 x_valid := TRUE;
2643
2644 SELECT FRT.freight_code
2645 INTO l_dummy
2646 FROM org_freight FRT, financials_system_params_all FIN
2647 WHERE FRT.organization_id = FIN.inventory_organization_id
2648 AND FIN.org_id = p_org_id
2649 AND nvl(FRT.disable_date, sysdate +1 ) > sysdate
2650 AND FRT.freight_code = p_ship_via_lookup_code;
2651
2652 EXCEPTION
2653 -- Trap validation error
2654 WHEN NO_DATA_FOUND THEN
2655 x_valid := FALSE;
2656
2657 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
2658 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','SHIP_VIA_LOOKUP_CODE' );
2659 FND_MSG_PUB.ADD;
2660 END Check_Site_Ship_Via;
2661
2662 --
2663 -- Check if the party_id is valid
2664 --
2665 PROCEDURE Check_Valid_Party_Id(p_party_id IN NUMBER,
2666 x_valid OUT NOCOPY BOOLEAN
2667 ) IS
2668 l_dummy NUMBER;
2669 l_count NUMBER;
2670
2671 BEGIN
2672 x_valid := TRUE;
2673
2674 SELECT party_id
2675 INTO l_dummy
2676 FROM hz_parties
2677 WHERE party_id = p_party_id;
2678
2679
2680 EXCEPTION
2681 -- Trap validation error
2682 WHEN NO_DATA_FOUND THEN
2683 x_valid := FALSE;
2684
2685 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
2686 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','PARTY_ID' );
2687 FND_MSG_PUB.ADD;
2688
2689 IF x_valid = TRUE THEN
2690 --check usage status
2691 SELECT count(party_id)
2692 INTO l_count
2693 FROM HZ_PARTY_USG_ASSIGNMENTS HPUA
2694 WHERE HPUA.PARTY_USAGE_CODE in
2695 ('SUPPLIER','SUPPLIER_CONTACT', 'ORG_CONTACT')
2696 AND HPUA.PARTY_ID = p_party_id;
2697
2698 IF nvl(l_count, -1) > 0 THEN
2699 x_valid := FALSE;
2700
2701 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
2702 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','PARTY_ID' );
2703 FND_MSG_PUB.ADD;
2704 END IF;
2705 END IF;
2706
2707 END Check_Valid_Party_Id;
2708
2709 --
2710 -- Check if the location_id is valid
2711 --
2712 PROCEDURE Check_Valid_Location_Id(p_location_id IN NUMBER,
2713 p_party_site_id IN NUMBER,
2714 x_valid OUT NOCOPY BOOLEAN
2715 ) IS
2716 l_dummy NUMBER;
2717
2718 BEGIN
2719 x_valid := TRUE;
2720
2721 SELECT Count(*)
2722 INTO l_dummy
2723 FROM hz_locations hl, hz_party_sites hps
2724 WHERE hl.location_id = p_location_id
2725 AND hl.location_id = hps.location_id
2726 AND hps.party_site_id = nvl(p_party_site_id, hps.party_site_id);
2727
2728 IF nvl(l_dummy,0) = 0 THEN
2729 x_valid := FALSE;
2730
2731 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
2732 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','LOCATION_ID' );
2733 FND_MSG_PUB.ADD;
2734 END IF;
2735
2736 END Check_Valid_Location_Id;
2737
2738 --
2739 -- Check if the party_site_id is valid
2740 --
2741 PROCEDURE Check_Valid_Party_Site_Id(p_party_Site_id IN NUMBER,
2742 p_location_id IN NUMBER,
2743 p_vendor_id IN NUMBER, /* Bug 12590128 */
2744 x_valid OUT NOCOPY BOOLEAN
2745 ) IS
2746 l_dummy NUMBER;
2747
2748 BEGIN
2749 x_valid := TRUE;
2750 SELECT Count(*)
2751 INTO l_dummy
2752 FROM hz_party_sites hps,
2753 ap_suppliers aps /* Bug 12590128 */
2754 WHERE ( hps.location_id = nvl(p_location_id, hps.location_id)
2755 AND hps.party_site_id = p_party_site_id)
2756 AND aps.party_id = hps.party_id
2757 AND aps.vendor_id = p_vendor_id;
2758 IF nvl(l_dummy,0) = 0 THEN
2759 x_valid := FALSE;
2760
2761 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
2762 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','PARTY_SITE_ID' );
2763 FND_MSG_PUB.ADD;
2764 END IF;
2765
2766
2767 END Check_Valid_Party_Site_Id;
2768
2769 --
2770 -- Check if relationship_id is valid
2771 --
2772 PROCEDURE Check_Valid_Relationship_Id
2773 (p_relationship_id IN NUMBER,
2774 x_valid OUT NOCOPY BOOLEAN) IS
2775
2776 l_dummy NUMBER;
2777
2778 BEGIN
2779 x_valid := TRUE;
2780
2781 SELECT relationship_id
2782 INTO l_dummy
2783 FROM hz_relationships
2784 WHERE relationship_id = p_relationship_id
2785 AND rownum < 2;
2786
2787
2788 EXCEPTION
2789 -- Trap validation error
2790 WHEN NO_DATA_FOUND THEN
2791 x_valid := FALSE;
2792
2793 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
2794 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','RELATIONSHIP_ID' );
2795 FND_MSG_PUB.ADD;
2796
2797 END Check_Valid_Relationship_Id;
2798
2799 --
2800 -- Check if org_contact_id is valid
2801 --
2802 PROCEDURE Check_Valid_Org_Contact_Id
2803 (p_org_contact_id IN NUMBER,
2804 x_valid OUT NOCOPY BOOLEAN) IS
2805
2806 l_dummy NUMBER;
2807
2808 BEGIN
2809 x_valid := TRUE;
2810
2811 SELECT org_contact_id
2812 INTO l_dummy
2813 FROM hz_org_contacts
2814 WHERE org_contact_id = p_org_contact_id;
2815
2816
2817 EXCEPTION
2818 -- Trap validation error
2819 WHEN NO_DATA_FOUND THEN
2820 x_valid := FALSE;
2821
2822 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
2823 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','ORG_CONTACT_ID' );
2824 FND_MSG_PUB.ADD;
2825
2826 END Check_Valid_Org_Contact_Id;
2827
2828 -- This procedure for Import functionality from 11i
2829 -- Check that If the vendor_site_id is valid in
2830 -- Supplier Site Contact Interface table
2831 PROCEDURE Check_Vendor_site_id
2832 (p_vendor_site_id IN NUMBER,
2833 p_int_table IN VARCHAR2,
2834 p_int_key IN VARCHAR2,
2835 x_valid OUT NOCOPY BOOLEAN) IS
2836
2837 l_dummy po_vendor_sites_all.vendor_site_id%TYPE;
2838 l_api_name CONSTANT VARCHAR2(30) := 'Check_Vendor_Site_Id';
2839 BEGIN
2840
2841 x_valid := TRUE;
2842
2843 SELECT vendor_site_id
2844 INTO l_dummy
2845 FROM po_vendor_sites_all
2846 WHERE vendor_site_id = p_vendor_site_id
2847 AND nvl(inactive_date, sysdate +1 ) > sysdate;
2848
2849 EXCEPTION
2850 -- Trap validation error
2851 WHEN NO_DATA_FOUND THEN
2852 x_valid := FALSE;
2853 IF g_source = 'IMPORT' THEN
2854 IF (Insert_Rejections(
2855 p_int_table,
2856 p_int_key,
2857 'AP_INVALID_VENDOR_SITE_ID',
2858 g_user_id,
2859 g_login_id,
2860 'Check_Vendor_Site_Id') <> TRUE) THEN
2861 --
2862 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
2863 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'Parameters: '
2864 ||' P_Vendor_Site_Id: '|| p_vendor_site_id
2865 ||', P_Int_Table: '||p_int_table
2866 ||', P_Int_Key: '||p_int_key);
2867 END IF;
2868 END IF;
2869 ELSE
2870 -- Bug 5491139 hkaniven start --
2871 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_VENDOR_SITE_ID');
2872 FND_MSG_PUB.ADD;
2873 -- Bug 5491139 hkaniven end --
2874 END IF;
2875 -- Trap unknown errors
2876 WHEN OTHERS THEN
2877 x_valid := FALSE;
2878 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
2879 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'Parameters: '
2880 ||' P_Vendor_Site_Id: '|| p_vendor_site_id
2881 ||', P_Int_Table: '||p_int_table
2882 ||', P_Int_Key: '||p_int_key
2883 ||', ERROR: '||SUBSTR(SQLERRM,1,200));
2884 END IF;
2885 END Check_Vendor_site_id;
2886
2887 -- This procedure for Import functionality from 11i
2888 -- Check that If the org_id or operating_unit is
2889 -- sync with vendor site code
2890 -- Supplier Site Contact Interface table
2891 PROCEDURE Check_org_id_name_site_code
2892 (p_org_id IN NUMBER,
2893 p_org_name IN VARCHAR2,
2894 p_vendor_site_id IN OUT NOCOPY NUMBER,
2895 p_vendor_site_code IN VARCHAR2,
2896 p_vendor_id IN VARCHAR2, /* Bug 9844445 */
2897 p_int_table IN VARCHAR2,
2898 p_int_key IN VARCHAR2,
2899 x_valid OUT NOCOPY BOOLEAN) IS
2900
2901 l_org_id HR_OPERATING_UNITS.organization_id%TYPE;
2902 l_org_name HR_OPERATING_UNITS.name%TYPE;
2903 l_vendor_site_code PO_VENDOR_SITES_ALL.vendor_site_code%TYPE;
2904 l_api_name CONSTANT VARCHAR2(30) := 'Check_Org_Id_Name_Site_Code';
2905 l_match_count NUMBER;
2906 BEGIN
2907 x_valid := TRUE;
2908 /* Bug 12590128 start */
2909 IF ( p_org_id IS NULL AND p_org_name IS NULL ) THEN
2910 BEGIN
2911 if(p_vendor_site_id is not null) then
2912 SELECT vendor_site_code, vendor_site_id
2913 INTO l_vendor_site_code,p_vendor_site_id
2914 FROM po_vendor_sites_all
2915 WHERE vendor_site_code = p_vendor_site_code
2916 AND vendor_site_id=p_vendor_site_id;
2917 else
2918 SELECT count(1) into l_match_count
2919 FROM po_vendor_sites_all
2920 WHERE vendor_site_code = p_vendor_site_code
2921 AND vendor_id=p_vendor_id;
2922 IF l_match_count <> 1 THEN
2923 x_valid := FALSE;
2924 IF g_source = 'IMPORT' THEN
2925 IF (Insert_Rejections(
2926 p_int_table,
2927 p_int_key,
2928 'AP_INVALID_VENDOR_SITE_CODE',
2929 g_user_id,
2930 g_login_id,
2931 'Check_Org_Id_Name_Site_Code') <> TRUE) THEN
2932 --
2933 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
2934 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'Parameters: '
2935 ||' P_Org_Id: '||p_org_id
2936 ||', P_Org_Name: '||p_org_name
2937 ||', P_Vendor_Site_Code: '||p_vendor_site_code
2938 ||', P_Vendor_Site_Id: '|| p_vendor_site_id
2939 ||', P_Int_Table: '||p_int_table
2940 ||', P_Int_Key: '||p_int_key);
2941 END IF;
2942 END IF;
2943 ELSE
2944 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_VENDOR_SITE_CODE');
2945 FND_MSG_PUB.ADD;
2946 END IF;
2947 ELSE
2948 SELECT vendor_site_code, vendor_site_id
2949 INTO l_vendor_site_code,p_vendor_site_id
2950 FROM PO_VENDOR_SITES_ALL
2951 WHERE vendor_site_code = p_vendor_site_code
2952 AND vendor_id = p_vendor_id;
2953 END IF;
2954 end if;
2955 EXCEPTION
2956 -- Trap validation error
2957 WHEN NO_DATA_FOUND THEN
2958 x_valid := FALSE;
2959 IF g_source = 'IMPORT' THEN
2960 IF (Insert_Rejections(
2961 p_int_table,
2962 p_int_key,
2963 'AP_INVALID_VENDOR_SITE_CODE',
2964 g_user_id,
2965 g_login_id,
2966 'Check_Org_Id_Name_Site_Code') <> TRUE) THEN
2967 --
2968 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
2969 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'Parameters: '
2970 ||' P_Org_Id: '||p_org_id
2971 ||', P_Org_Name: '||p_org_name
2972 ||', P_Vendor_Site_Code: '||p_vendor_site_code
2973 ||', P_Vendor_Site_Id: '|| p_vendor_site_id
2974 ||', P_Int_Table: '||p_int_table
2975 ||', P_Int_Key: '||p_int_key);
2976 END IF;
2977 END IF;
2978 ELSE
2979 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_VENDOR_SITE_CODE');
2980 FND_MSG_PUB.ADD;
2981 END IF;
2982 END;
2983 ELSE
2984 /* Bug 12590128 end */
2985 IF (p_org_id IS NOT NULL AND p_vendor_site_code IS NOT NULL) THEN
2986 BEGIN
2987 /*Bug 4592201.This is to make sure that we don't say that
2988 there is an inconsistency when two different suppliers have same
2989 vendor-site-code*/
2990 /*Since the vendor-site-id can be null in the case when he just passes
2991 the vendor-site-code,we have split the statement into two cases*/
2992 if(p_vendor_site_id is not null) then
2993 SELECT vendor_site_code, vendor_site_id
2994 INTO l_vendor_site_code,p_vendor_site_id
2995 FROM PO_VENDOR_SITES_ALL
2996 WHERE org_id = p_org_id
2997 AND vendor_site_code = p_vendor_site_code
2998 AND vendor_site_id=p_vendor_site_id;
2999 else
3000 SELECT vendor_site_code, vendor_site_id
3001 INTO l_vendor_site_code,p_vendor_site_id
3002 FROM PO_VENDOR_SITES_ALL
3003 WHERE org_id = p_org_id
3004 AND vendor_site_code=p_vendor_site_code
3005 AND vendor_id=p_vendor_id; /* Bug 9844445 */
3006 end if;
3007
3008 /*Bug4592201*/
3009 EXCEPTION
3010 -- Trap validation error
3011 WHEN NO_DATA_FOUND THEN
3012 x_valid := FALSE;
3013 IF g_source = 'IMPORT' THEN
3014 IF (Insert_Rejections(
3015 p_int_table,
3016 p_int_key,
3017 'AP_INVALID_VENDOR_SITE_CODE',
3018 g_user_id,
3019 g_login_id,
3020 'Check_Org_Id_Name_Site_Code') <> TRUE) THEN
3021 --
3022 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3023 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'Parameters: '
3024 ||' P_Org_Id: '||p_org_id
3025 ||', P_Org_Name: '||p_org_name
3026 ||', P_Vendor_Site_Code: '||p_vendor_site_code
3027 ||', P_Vendor_Site_Id: '|| p_vendor_site_id
3028 ||', P_Int_Table: '||p_int_table
3029 ||', P_Int_Key: '||p_int_key);
3030 END IF;
3031 END IF;
3032 ELSE
3033 -- Bug 5491139 hkaniven start --
3034 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_VENDOR_SITE_CODE');
3035 FND_MSG_PUB.ADD;
3036 -- Bug 5491139 hkaniven end --
3037 END IF;
3038 END;
3039
3040 ELSIF (p_org_id IS NULL AND
3041 p_org_name IS NOT NULL AND
3042 p_vendor_site_code is NOT NULL) THEN
3043
3044 BEGIN
3045 SELECT SITE.vendor_site_code,vendor_site_id
3046 INTO l_vendor_site_code,p_vendor_site_id
3047 FROM PO_VENDOR_SITES_ALL SITE, HR_OPERATING_UNITS ORG
3048 WHERE ORG.name = p_org_name
3049 AND SITE.org_id = ORG.organization_id
3050 AND SITE.vendor_site_code = p_vendor_site_code;
3051
3052 EXCEPTION
3053 -- Trap validation error
3054 WHEN NO_DATA_FOUND THEN
3055 x_valid := FALSE;
3056 IF g_source = 'IMPORT' THEN
3057 IF (Insert_Rejections(
3058 p_int_table,
3059 p_int_key,
3060 'AP_INVALID_VENDOR_SITE_CODE',
3061 g_user_id,
3062 g_login_id,
3063 'Check_Org_Id_Name_Site_Code') <> TRUE) THEN
3064 --
3065 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3066 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'Parameters: '
3067 ||' P_Org_Id: '||p_org_id
3068 ||', P_Org_Name: '||p_org_name
3069 ||', P_Vendor_Site_Code: '||p_vendor_site_code
3070 ||', P_Vendor_Site_Id: '|| p_vendor_site_id
3071 ||', P_Int_Table: '||p_int_table
3072 ||', P_Int_Key: '||p_int_key);
3073 END IF;
3074 END IF;
3075 ELSE
3076 -- Bug 5491139 hkaniven start --
3077 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_VENDOR_SITE_CODE');
3078 FND_MSG_PUB.ADD;
3079 -- Bug 5491139 hkaniven end --
3080 END IF;
3081 END;
3082
3083 END IF;
3084 END IF; /* Bug 12590128 */
3085 EXCEPTION
3086 -- Trap unknown errors
3087 WHEN OTHERS THEN
3088 x_valid := FALSE;
3089 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3090 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'Parameters: '
3091 ||' P_Org_Id: '||p_org_id
3092 ||', P_Org_Name: '||p_org_name
3093 ||', P_Vendor_Site_Code: '||p_vendor_site_code
3094 ||', P_Vendor_Site_Id: '|| p_vendor_site_id
3095 ||', P_Int_Table: '||p_int_table
3096 ||', P_Int_Key: '||p_int_key
3097 ||', ERROR: '||SUBSTR(SQLERRM,1,200));
3098 END IF;
3099 END Check_org_id_name_site_code;
3100
3101 /* udhenuko bug 7013954 added procedure
3102 This procedure is used to check if the org_id or operating_unit is in
3103 sync with Party Site Name of hz_parties and ap_supplier_sites
3104 for Supplier Site Contact Interface table*/
3105 PROCEDURE Check_org_id_party_site_name
3106 (p_org_id IN NUMBER,
3107 p_org_name IN VARCHAR2,
3108 p_party_site_id IN OUT NOCOPY NUMBER,
3109 p_party_site_name IN VARCHAR2,
3110 p_vendor_id IN NUMBER,
3111 p_int_table IN VARCHAR2,
3112 p_int_key IN VARCHAR2,
3113 x_valid OUT NOCOPY BOOLEAN) IS
3114
3115 l_org_id HR_OPERATING_UNITS.organization_id%TYPE;
3116 l_org_name HR_OPERATING_UNITS.name%TYPE;
3117 l_party_site_name hz_party_sites.party_site_name%TYPE;
3118 l_api_name CONSTANT VARCHAR2(30) := 'Check_org_id_party_site_name';
3119 l_match_sitename_cnt NUMBER;
3120 BEGIN
3121 x_valid := TRUE;
3122 /* Bug 12590128 start */
3123 IF ( p_org_id IS NULL and p_org_name is NULL ) THEN
3124
3125 IF ( p_party_site_name IS NOT NULL) THEN
3126 if(p_party_site_id is not null) then
3127
3128 select count(party_site_id) into l_match_sitename_cnt
3129 from hz_party_sites hzps,
3130 ap_suppliers aps
3131 where hzps.party_id = aps.party_id
3132 and aps.vendor_id = p_vendor_id
3133 AND hzps.party_site_id = p_party_site_id
3134 and hzps.party_site_name = p_party_site_name;
3135
3136 IF l_match_sitename_cnt = 1 THEN
3137 select hzps.party_site_name, hzps.party_site_id
3138 INTO l_party_site_name,p_party_site_id
3139 from hz_party_sites hzps,
3140 ap_suppliers aps
3141 where hzps.party_id = aps.party_id
3142 and aps.vendor_id = p_vendor_id
3143 AND hzps.party_site_id = p_party_site_id
3144 and hzps.party_site_name = p_party_site_name;
3145 END IF;
3146 elsif (p_party_site_id is null) then
3147 select count(party_site_id) into l_match_sitename_cnt
3148 from hz_party_sites hps,
3149 ap_suppliers aps
3150 where hps.party_id = aps.party_id
3151 and aps.vendor_id = p_vendor_id
3152 and hps.party_site_name = p_party_site_name;
3153
3154 IF l_match_sitename_cnt = 1 THEN
3155 select hps.party_site_name, hps.party_site_id
3156 INTO l_party_site_name,p_party_site_id
3157 from hz_party_sites hps,
3158 ap_suppliers aps
3159 where hps.party_id = aps.party_id
3160 and aps.vendor_id = p_vendor_id
3161 and hps.party_site_name = p_party_site_name;
3162 END IF;
3163 END IF; /* p_party_site_id is null */
3164 IF l_match_sitename_cnt <> 1 THEN
3165 x_valid := FALSE;
3166 END IF;
3167 END IF; /* p_party_site_name IS NOT NULL*/
3168
3169 ELSE /*( p_org_id IS NULL and p_org_name is NULL ) */
3170 IF (p_org_id IS NOT NULL AND p_party_site_name IS NOT NULL) THEN
3171 BEGIN
3172 /*If party_site_id is null then we derive it based on the
3173 party_site_name field provided. But in case of Upgraded records there
3174 can be multiple records in hz_party_sites with same party_site_name
3175 for the same party. We can link the ap_supplier_sites_all table
3176 to get unique record based on the input info*/
3177
3178 if(p_party_site_id is not null) then
3179 SELECT hzps.party_site_name, hzps.party_site_id
3180 INTO l_party_site_name,p_party_site_id
3181 FROM hz_party_sites hzps, ap_suppliers aps
3182 WHERE hzps.party_site_name = p_party_site_name
3183 AND hzps.party_site_id = p_party_site_id
3184 AND aps.vendor_id = p_vendor_id;
3185 else
3186 SELECT hzps.party_site_name, hzps.party_site_id
3187 INTO l_party_site_name,p_party_site_id
3188 FROM hz_party_sites hzps, ap_supplier_sites_all aps
3189 WHERE aps.org_id = p_org_id
3190 AND hzps.party_site_name = p_party_site_name
3191 AND hzps.party_site_id = aps.party_site_id
3192 AND aps.vendor_id = p_vendor_id;
3193 end if;
3194 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3195 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME,'Check_org_id_party_site_name : '
3196 ||' P_Party_Site_Id: '|| p_party_site_id);
3197 END IF;
3198 EXCEPTION
3199 -- Trap validation error
3200 WHEN NO_DATA_FOUND THEN
3201 x_valid := FALSE;
3202 END;
3203
3204 ELSIF (p_org_id IS NULL AND
3205 p_org_name IS NOT NULL AND
3206 p_party_site_name is NOT NULL) THEN
3207
3208 BEGIN
3209 SELECT hzps.party_site_name, hzps.party_site_id
3210 INTO l_party_site_name,p_party_site_id
3211 FROM hz_party_sites hzps, ap_supplier_sites_all aps,
3212 HR_OPERATING_UNITS ORG
3213 WHERE ORG.name = p_org_name
3214 AND aps.org_id = ORG.organization_id
3215 AND hzps.party_site_name = p_party_site_name
3216 AND hzps.party_site_id = aps.party_site_id
3217 AND aps.vendor_id = p_vendor_id;
3218
3219 EXCEPTION
3220 -- Trap validation error
3221 WHEN NO_DATA_FOUND THEN
3222 x_valid := FALSE;
3223 END;
3224
3225 END IF;
3226 END IF; /*( p_org_id IS NULL and p_org_name is NULL ) */
3227
3228 EXCEPTION
3229 -- Trap unknown errors
3230 WHEN OTHERS THEN
3231 x_valid := FALSE;
3232 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3233 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'Parameters: '
3234 ||' P_Org_Id: '||p_org_id
3235 ||', P_Org_Name: '||p_org_name
3236 ||', p_party_site_name: '||p_party_site_name
3237 ||', p_party_site_id: '|| p_party_site_id
3238 ||', p_vendor_id: '|| p_vendor_id
3239 ||', P_Int_Table: '||p_int_table
3240 ||', P_Int_Key: '||p_int_key
3241 ||', ERROR: '||SUBSTR(SQLERRM,1,200));
3242 END IF;
3243 END Check_org_id_party_site_name;
3244 ---------------------------------------------------------------------
3245 -- PROCEDURE : Chk_new_duns_number
3246 -- PURPOSE : Validates the Duns number passed as argument
3247 -- Added for the FSIO gap in R12(bug6053476)
3248 ---------------------------------------------------------------------
3249
3250 PROCEDURE Chk_new_duns_number(p_duns_number IN VARCHAR2,
3251 x_valid OUT NOCOPY BOOLEAN
3252 ) IS
3253
3254 e_apps_exception EXCEPTION;
3255
3256 BEGIN
3257 x_valid := TRUE;
3258
3259 -- B# 8715186
3260 --If ((translate(p_duns_number,'1234567890','9999999999') <> '999999999' ) OR
3261 -- (length(p_duns_number) <> 9)) Then
3262 -- Raise e_apps_exception;
3263 --End If;
3264
3265 If ((translate(p_duns_number,'1234567890','9999999999') = '999999999' ) OR
3266 (length(p_duns_number) = 9) OR
3267 (translate(p_duns_number,'1234567890','9999999999') = '9999999999999' ) OR
3268 (length(p_duns_number) = 13)) THEN
3269 NULL;
3270 Else
3271
3272 Raise e_apps_exception;
3273 End If;
3274
3275 -- end B# 8715186
3276
3277 EXCEPTION
3278 -- Trap validation error
3279 WHEN e_apps_exception THEN
3280 x_valid := FALSE;
3281
3282 FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
3283 FND_MESSAGE.SET_TOKEN('COLUMN_NAME','DUNS_NUMBER' );
3284 FND_MSG_PUB.ADD;
3285 END Chk_new_duns_number;
3286
3287
3288 -----------------------------------------------------------------------------
3289 -- PROCEDURE : Update_supplier_JFMIP_checks
3290 -- PURPOSE : Checks if one is trying to update the restricted fields on a
3291 -- CCR supplier.
3292 -- Added for the R12 FSIO gap.(bug6053476)
3293 ------------------------------------------------------------------------------
3294
3295
3296 PROCEDURE update_supplier_JFMIP_checks(p_vendor_rec IN r_vendor_rec_type,
3297 p_calling_prog IN VARCHAR2,
3298 x_valid OUT NOCOPY BOOLEAN
3299 ) IS
3300 e_apps_exception EXCEPTION;
3301
3302 BEGIN
3303 x_valid := TRUE;
3304
3305 IF ((AP_UTILITIES_PKG.get_ccr_status(p_vendor_rec.vendor_id,'S') = 'T')
3306 AND (nvl(p_calling_prog,'NOT CCR') <> 'CCRImport')) THEN
3307 If (p_vendor_rec.jgzz_fiscal_code is NOT NULL) THEN
3308 Raise e_apps_exception;
3309 End If;
3310 END IF;
3311
3312 EXCEPTION
3313 -- Trap validation error
3314 WHEN e_apps_exception THEN
3315 x_valid := FALSE;
3316
3317 FND_MESSAGE.SET_NAME('SQLAP','AP_CCR_NO_UPDATE');
3318 FND_MSG_PUB.ADD;
3319 END update_supplier_JFMIP_checks;
3320
3321
3322 -----------------------------------------------------------------------------
3323 -- PROCEDURE : Chk_Update_site_CCR_values
3324 -- PURPOSE : Checks if one is trying to update the restricted fields on a
3325 -- CCR supplier site.
3326 -- Added for the R12 FSIO gap.(bug6053476)
3327 ------------------------------------------------------------------------------
3328
3329
3330 PROCEDURE Chk_update_site_ccr_values(p_vendor_site_rec IN r_vendor_site_rec_type,
3331 p_calling_prog IN VARCHAR2,
3332 x_valid OUT NOCOPY BOOLEAN
3333 ) IS
3334 e_apps_exception EXCEPTION;
3335
3336 BEGIN
3337 x_valid := TRUE;
3338
3339 IF ((AP_UTILITIES_PKG.get_ccr_status(p_vendor_site_rec.vendor_site_id, 'T') = 'T')
3340 AND (nvl(p_calling_prog,'NOT CCR') <> 'CCRImport')) THEN
3341
3342 If (( p_vendor_site_rec.duns_number is NOT NULL)
3343 OR ( p_vendor_site_rec.country is NOT NULL)
3344 OR ( p_vendor_site_rec.address_line1 is NOT NULL)
3345 OR ( p_vendor_site_rec.address_line2 is NOT NULL)
3346 OR ( p_vendor_site_rec.address_line3 is NOT NULL)
3347 OR ( p_vendor_site_rec.address_line4 is NOT NULL)
3348 OR ( p_vendor_site_rec.city is NOT NULL)
3349 OR ( p_vendor_site_rec.state is NOT NULL)
3350 OR ( p_vendor_site_rec.zip is NOT NULL)
3351 OR ( p_vendor_site_rec.province is NOT NULL)
3352 -- starting the Changes for CLM reference data management bug#9499174
3353 OR ( p_vendor_site_rec.cage_code is NOT NULL)
3354 OR ( p_vendor_site_rec.legal_business_name is NOT NULL)
3355 OR ( p_vendor_site_rec.doing_bus_as_name is NOT NULL)
3356 OR ( p_vendor_site_rec.division_name is NOT NULL)) THEN
3357 -- Ending the Changes for CLM reference data management bug#9499174
3358
3359 Raise e_apps_exception;
3360 End If;
3361 END IF;
3362
3363 EXCEPTION
3364 -- Trap validation error
3365 WHEN e_apps_exception THEN
3366 x_valid := FALSE;
3367 FND_MESSAGE.SET_NAME('SQLAP','AP_CCR_NO_UPDATE');
3368 FND_MSG_PUB.ADD;
3369
3370 END Chk_update_site_ccr_values;
3371
3372
3373 PROCEDURE Create_Vendor
3374 ( p_api_version IN NUMBER,
3375 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
3376 p_commit IN VARCHAR2 := FND_API.G_FALSE,
3377 p_validation_level IN NUMBER :=
3378 FND_API.G_VALID_LEVEL_FULL,
3379 x_return_status OUT NOCOPY VARCHAR2 ,
3380 x_msg_count OUT NOCOPY NUMBER,
3381 x_msg_data OUT NOCOPY VARCHAR2,
3382 p_vendor_rec IN r_vendor_rec_type,
3383 x_vendor_id OUT NOCOPY AP_SUPPLIERS.VENDOR_ID%TYPE,
3384 x_party_id OUT NOCOPY HZ_PARTIES.PARTY_ID%TYPE
3385 )
3386 IS
3387
3388
3389 l_api_name CONSTANT VARCHAR2(30) := 'Create_Vendor';
3390 l_api_version CONSTANT NUMBER := 1.0;
3391
3392 l_vendor_rec r_vendor_rec_type;
3393
3394 -- define variables for initialization
3395 l_user_defined_vendor_num_code VARCHAR2(255);
3396 l_manual_vendor_num_type VARCHAR2(255);
3397 l_rfq_only_site_flag VARCHAR2(255);
3398 l_ship_to_location_id NUMBER;
3399 l_ship_to_location_code VARCHAR2(255);
3400 l_bill_to_location_id NUMBER;
3401 l_bill_to_location_code VARCHAR2(255);
3402 l_fob_lookup_code VARCHAR2(255);
3403 l_freight_terms_lookup_code VARCHAR2(255);
3404 l_terms_id NUMBER;
3405 l_terms_disp VARCHAR2(255);
3406 l_distribution_set_id NUMBER;
3407 l_always_take_disc_flag VARCHAR2(1);
3408 l_invoice_currency_code VARCHAR2(255);
3409 l_org_id NUMBER;
3410 l_set_of_books_id NUMBER;
3411 l_short_name VARCHAR2(255);
3412 l_payment_currency_code VARCHAR2(255);
3413 l_accts_pay_ccid NUMBER;
3414 l_future_dated_payment_ccid NUMBER;
3415 l_prepay_code_combination_id NUMBER;
3416 l_vendor_pay_group_lookup_code VARCHAR2(255);
3417 l_sys_auto_calc_int_flag VARCHAR2(255);
3418 l_terms_date_basis VARCHAR2(255);
3419 l_terms_date_basis_disp VARCHAR2(255);
3420 l_chart_of_accounts_id NUMBER;
3421 l_fob_lookup_disp VARCHAR2(255);
3422 l_freight_terms_lookup_disp VARCHAR2(255);
3423 l_vendor_pay_group_disp VARCHAR2(255);
3424 l_fin_require_matching VARCHAR2(255);
3425 l_sys_require_matching VARCHAR2(255);
3426 l_fin_match_option VARCHAR2(255);
3427 l_po_create_dm_flag VARCHAR2(255);
3428 l_exclusive_payment VARCHAR2(255);
3429 l_vendor_auto_int_default VARCHAR2(255);
3430 l_inventory_organization_id NUMBER;
3431 l_ship_via_lookup_code VARCHAR2(255);
3432 l_ship_via_disp VARCHAR2(255);
3433 l_sysdate DATE;
3434 l_enforce_ship_to_loc_code VARCHAR2(255);
3435 l_receiving_routing_id NUMBER;
3436 l_qty_rcv_tolerance NUMBER;
3437 l_qty_rcv_exception_code VARCHAR2(255);
3438 l_days_early_receipt_allowed NUMBER;
3439 l_days_late_receipt_allowed NUMBER;
3440 l_allow_sub_receipts_flag VARCHAR2(255);
3441 l_allow_unord_receipts_flag VARCHAR2(255);
3442 l_receipt_days_exception_code VARCHAR2(255);
3443 l_enforce_ship_to_loc_disp VARCHAR2(255);
3444 l_qty_rcv_exception_disp VARCHAR2(255);
3445 l_receipt_days_exception_disp VARCHAR2(255);
3446 l_receipt_required_flag VARCHAR2(255);
3447 l_inspection_required_flag VARCHAR2(255);
3448 l_payment_method_lookup_code VARCHAR2(255);
3449 l_payment_method_disp VARCHAR2(255);
3450 l_pay_date_basis_lookup_code VARCHAR2(255);
3451 l_pay_date_basis_disp VARCHAR2(255);
3452 l_receiving_routing_name VARCHAR2(255);
3453 l_ap_inst_flag VARCHAR2(255);
3454 l_po_inst_flag VARCHAR2(255);
3455 l_home_country_code VARCHAR2(255);
3456 l_default_awt_group_id NUMBER;
3457 l_default_awt_group_name VARCHAR2(255);
3458 l_pay_awt_group_id NUMBER; /* Bug9589179*/
3459 l_pay_awt_group_name VARCHAR2(255);/* Bug9589179*/
3460 l_allow_awt_flag VARCHAR2(255);
3461 l_base_currency_code VARCHAR2(255);
3462 l_address_style VARCHAR2(255);
3463 l_obsolete VARCHAR2(255);
3464 l_use_bank_charge_flag VARCHAR2(255);
3465 l_bank_charge_bearer VARCHAR2(255);
3466 l_hold_unmatched_invoices_flag VARCHAR2(1);
3467
3468 l_user_id number := FND_GLOBAL.USER_ID;
3469 l_last_update_login number := FND_GLOBAL.LOGIN_ID;
3470 l_program_application_id number := FND_GLOBAL.prog_appl_id;
3471 l_program_id number := FND_GLOBAL.conc_program_id;
3472 l_request_id number := FND_GLOBAL.conc_request_id;
3473 l_val_return_status VARCHAR2(50);
3474 l_val_msg_count NUMBER;
3475 l_val_msg_data VARCHAR2(1000);
3476 l_creation_date DATE;
3477 l_created_by NUMBER;
3478 l_org_return_status VARCHAR2(50);
3479 l_org_msg_count NUMBER;
3480 l_org_msg_data VARCHAR2(1000);
3481 l_pay_return_status VARCHAR2(50);
3482 l_pay_msg_count NUMBER;
3483 l_pay_msg_data VARCHAR2(1000);
3484 l_zx_return_status VARCHAR2(50);
3485 l_zx_msg_count NUMBER;
3486 l_zx_msg_data VARCHAR2(1000);
3487 l_party_valid VARCHAR2(1);
3488 l_payee_valid VARCHAR2(1);
3489 l_row_id VARCHAR2(255);
3490 l_vendor_id NUMBER;
3491 l_party_rec HZ_PARTY_V2PUB.party_rec_type;
3492 l_org_rec HZ_PARTY_V2PUB.organization_rec_type;
3493 l_org_party_id NUMBER;
3494 l_org_party_number VARCHAR2(30);
3495 l_org_profile_ID NUMBER;
3496 l_party_num VARCHAR2(1);
3497
3498 --
3499 -- Added Sync Party Related return variables
3500 --
3501 l_sync_return_status VARCHAR2(50);
3502 l_sync_msg_count NUMBER;
3503 l_sync_msg_data VARCHAR2(1000);
3504
3505
3506 /* Variable Declaration for IBY */
3507 ext_payee_tab IBY_DISBURSEMENT_SETUP_PUB.External_Payee_Tab_Type;
3508 ext_payee_id_tab IBY_DISBURSEMENT_SETUP_PUB.Ext_Payee_Id_Tab_Type;
3509 ext_payee_create_tab IBY_DISBURSEMENT_SETUP_PUB.Ext_Payee_Create_Tab_Type;
3510
3511 l_ext_payee_rec IBY_DISBURSEMENT_SETUP_PUB.EXTERNAL_PAYEE_REC_TYPE;
3512 l_party_usg_rec HZ_PARTY_USG_ASSIGNMENT_PVT.party_usg_assignment_rec_type; --Bug6648405
3513 l_party_usg_validation_level NUMBER;
3514 l_debug_info VARCHAR2(500); -- Bug 6823885
3515
3516 l_contact_point_rec HZ_CONTACT_POINT_V2PUB.contact_point_rec_type; --B 7831956
3517 l_url_rec HZ_CONTACT_POINT_V2PUB.web_rec_type; --B 7831956
3518 l_url_return_status VARCHAR2(50) := FND_API.G_RET_STS_SUCCESS; --B 7831956
3519 l_url_msg_count NUMBER; --B 7831956
3520 l_url_msg_data VARCHAR2(1000); --B 7831956
3521 l_url_contact_point_id NUMBER; --B 7831956
3522
3523 l_offset_tax_flag VARCHAR2(1) ; --B 9202909
3524 l_auto_tax_calc_flag VARCHAR2(1) ; --B 9202909
3525 l_tax_classification_code ZX_PARTY_TAX_PROFILE.TAX_CLASSIFICATION_CODE%TYPE ; --B 9202909
3526 l_party_id NUMBER ; --B 9202909
3527 L_PARTY_TAX_PROFILE_ID zx_party_tax_profile.party_tax_profile_id%type; -- B 9202909
3528 l_return_status VARCHAR2(50); -- B 9202909
3529
3530 BEGIN
3531 -- Standard Start of API savepoint
3532 SAVEPOINT Create_Vendor_PUB;
3533
3534 -- Standard call to check for call compatibility.
3535 IF NOT FND_API.Compatible_API_Call ( l_api_version ,
3536 p_api_version ,
3537 l_api_name ,
3538 G_PKG_NAME )
3539 THEN
3540 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3541 END IF;
3542
3543 -- Initialize message list if p_init_msg_list is set to TRUE.
3544 IF FND_API.to_Boolean( p_init_msg_list ) THEN
3545 FND_MSG_PUB.initialize;
3546 END IF;
3547
3548 -- Initialize API return status to success
3549 x_return_status := FND_API.G_RET_STS_SUCCESS;
3550 l_org_return_status := FND_API.G_RET_STS_SUCCESS;
3551 l_val_return_status := FND_API.G_RET_STS_SUCCESS;
3552 l_pay_return_status := FND_API.G_RET_STS_SUCCESS;
3553 l_sync_return_status := FND_API.G_RET_STS_SUCCESS;
3554
3555 -- API body
3556
3557 -- Run initialize and get required default values
3558 ap_apxvdmvd_pkg.initialize_supplier_attr(
3559 x_user_defined_vendor_num_code => l_user_defined_vendor_num_code,
3560 x_manual_vendor_num_type => l_manual_vendor_num_type,
3561 x_terms_id => l_terms_id,
3562 x_terms_disp => l_terms_disp,
3563 x_always_take_disc_flag => l_always_take_disc_flag,
3564 x_invoice_currency_code => l_invoice_currency_code,
3565 x_vendor_pay_group_lookup_code => l_vendor_pay_group_lookup_code,
3566 x_sys_auto_calc_int_flag => l_sys_auto_calc_int_flag,
3567 x_terms_date_basis => l_terms_date_basis,
3568 x_terms_date_basis_disp => l_terms_date_basis_disp,
3569 x_vendor_pay_group_disp => l_vendor_pay_group_disp,
3570 x_fin_require_matching => l_fin_require_matching,
3571 x_fin_match_option => l_fin_match_option,
3572 x_sysdate => l_sysdate,
3573 x_pay_date_basis_lookup_code => l_pay_date_basis_lookup_code,
3574 x_pay_date_basis_disp => l_pay_date_basis_disp,
3575 x_ap_inst_flag => l_ap_inst_flag,
3576 x_use_bank_charge_flag => l_use_bank_charge_flag,
3577 x_bank_charge_bearer => l_bank_charge_bearer,
3578 x_calling_sequence => ''); --l_calling_sequence
3579
3580
3581 l_vendor_rec := p_vendor_rec;
3582
3583 --All fields that use to be defaulted from po_system_parameters
3584 --in the initialization procedure will no longer be defaulted at
3585 --the supplier level because system parameters are org specific
3586 l_vendor_rec.summary_flag := nvl(l_vendor_rec.summary_flag, 'N');
3587 l_vendor_rec.enabled_flag := nvl(l_vendor_rec.enabled_flag, 'Y');
3588 l_last_update_login := fnd_global.login_id;
3589 l_creation_date := sysdate;
3590 l_created_by := fnd_global.user_id;
3591 l_vendor_rec.one_time_flag := nvl(l_vendor_rec.one_time_flag,'N');
3592
3593 -- Bug 6085640 - Terms ID should not be set to default if Terms Name
3594 -- has been given.
3595 -- added by abhsaxen on 06-May-2008 for bug#7008314
3596 IF l_vendor_rec.terms_name IS NULL or l_vendor_rec.terms_name = ap_null_char
3597 THEN l_vendor_rec.terms_id := nvl(l_vendor_rec.terms_id,
3598 l_terms_id);
3599 ELSE l_vendor_rec.terms_id := l_vendor_rec.terms_id;
3600 END IF;
3601
3602 l_vendor_rec.always_take_disc_flag
3603 := nvl(l_vendor_rec.always_take_disc_flag, l_always_take_disc_flag);
3604 l_vendor_rec.pay_date_basis_lookup_code
3605 := nvl(l_vendor_rec.pay_date_basis_lookup_code,
3606 l_pay_date_basis_lookup_code);
3607 l_vendor_rec.pay_group_lookup_code
3608 := nvl(l_vendor_rec.pay_group_lookup_code,
3609 l_vendor_pay_group_lookup_code);
3610 l_vendor_rec.payment_priority := nvl(l_vendor_rec.payment_priority, 99);
3611 l_vendor_rec.invoice_currency_code
3612 := nvl(l_vendor_rec.invoice_currency_code, l_invoice_currency_code);
3613
3614 -- Payment Currency Defaulting at the supplier level
3615 -- With the MOAC Project the payment currency defaulting was left
3616 -- out. Added defaulting logic to use invoice currency default from
3617 -- product setup for supplier level payment currency defaulting
3618 -- if a value is not provided in the input vendor record.
3619
3620 l_vendor_rec.payment_currency_code
3621 := nvl(l_vendor_rec.payment_currency_code, l_invoice_currency_code);
3622 l_vendor_rec.hold_all_payments_flag
3623 := nvl(l_vendor_rec.hold_all_payments_flag, 'N');
3624 l_vendor_rec.hold_future_payments_flag
3625 := nvl(l_vendor_rec.hold_future_payments_flag, 'N');
3626 l_vendor_rec.start_date_active
3627 := nvl(l_vendor_rec.start_date_active, SYSDATE);
3628
3629 l_vendor_rec.women_owned_flag := NVL(l_vendor_rec.women_owned_flag, 'N');
3630 l_vendor_rec.small_business_flag
3631 := NVL(l_vendor_rec.small_business_flag, 'N');
3632 l_vendor_rec.hold_flag := nvl(l_vendor_rec.hold_flag, 'N');
3633 l_vendor_rec.terms_date_basis
3634 := nvl(l_vendor_rec.terms_date_basis, l_terms_date_basis);
3635 l_vendor_rec.federal_reportable_flag
3636 := nvl(l_vendor_rec.federal_reportable_flag, 'N');
3637 --bug6401663
3638 l_vendor_rec.hold_unmatched_invoices_flag
3639 := nvl(l_vendor_rec.hold_unmatched_invoices_flag,
3640 l_fin_require_matching);
3641 --bug6075649
3642 l_vendor_rec.match_option
3643 := nvl(l_vendor_rec.match_option, l_fin_match_option);
3644 l_vendor_rec.auto_calculate_interest_flag
3645 := nvl(l_vendor_rec.auto_calculate_interest_flag,
3646 l_sys_auto_calc_int_flag);
3647 l_vendor_rec.exclude_freight_from_discount
3648 := nvl(l_vendor_rec.exclude_freight_from_discount, 'N');
3649
3650 validate_vendor(p_api_version => 1.0,
3651 p_init_msg_list => FND_API.G_FALSE,
3652 p_commit => FND_API.G_FALSE,
3653 x_return_status => l_val_return_status,
3654 x_msg_count => l_val_msg_count,
3655 x_msg_data => l_val_msg_data,
3656 p_vendor_rec => l_vendor_rec,
3657 P_mode => 'I',
3658 P_calling_prog => 'NOT ISETUP',
3659 x_party_valid => l_party_valid,
3660 x_payee_valid => l_payee_valid,
3661 p_vendor_id => x_vendor_id);
3662
3663
3664 --bug 6371419.Added the below if clause to create a party in hz,external payee
3665 --in iby,tax code assignment in zx,supplier in AP only if the
3666 --SUPPLIER IS VALID.
3667 IF (l_val_return_status = FND_API.G_RET_STS_SUCCESS) THEN
3668
3669 IF l_party_valid = 'N' THEN -- party_id was null
3670
3671 l_org_rec.created_by_module := 'AP_SUPPLIERS_API';
3672 l_org_rec.application_id := 200;
3673 l_org_rec.organization_name := l_vendor_rec.vendor_name;
3674 l_org_rec.organization_name_phonetic :=
3675 l_vendor_rec.vendor_name_alt;
3676
3677 --bug6050423.Pass null value to jgzz_fiscal_code in hz_parties for
3678 --individual contractors and employees.
3679 --taxpayer id of individual contractors is stored only in ap_suppliers.
3680 --bug6691916.commented the below if clause and added the one below that.
3681 --as per analysis,only organization lookup code of type individual
3682 --and foreign individual belong to individual suppliers category.
3683
3684 IF ( UPPER(p_vendor_rec.organization_type_lookup_code) IN
3685 ('INDIVIDUAL','FOREIGN INDIVIDUAL')
3686 OR
3687 (UPPER(p_vendor_rec.vendor_type_lookup_code)='EMPLOYEE')) THEN
3688 l_org_rec.jgzz_fiscal_code :=NULL;
3689 ELSE
3690 l_org_rec.jgzz_fiscal_code := l_vendor_rec.jgzz_fiscal_code;
3691
3692 END IF;
3693
3694 -- Discussed with Indrajit. We will not pass the SIC Code
3695 -- TCA as the AP's SIC code is free form entry field.
3696 -- Commenting this code as part of bug 5066199
3697 -- l_org_rec.sic_code := l_vendor_rec.sic_code;
3698 l_org_rec.tax_reference := l_vendor_rec.tax_reference;
3699
3700 fnd_profile.get('HZ_GENERATE_PARTY_NUMBER', l_party_num);
3701 IF nvl(l_party_num, 'Y') = 'N' THEN
3702 SELECT HZ_PARTY_NUMBER_S.Nextval
3703 INTO l_party_rec.party_number
3704 FROM DUAL;
3705 END IF;
3706
3707 l_org_rec.party_rec := l_party_rec;
3708
3709
3710 l_org_rec.ceo_name := l_vendor_rec.ceo_name ; -- B 9081643
3711 l_org_rec.ceo_title := l_vendor_rec.ceo_title ; -- B 9081643
3712
3713 hz_party_v2pub.create_organization(
3714 p_init_msg_list => FND_API.G_FALSE,
3715 p_organization_rec => l_org_rec,
3716 p_party_usage_code => 'SUPPLIER',
3717 -- p_commit => FND_API.G_FALSE,
3718 x_return_status => l_org_return_status,
3719 x_msg_count => l_org_msg_count,
3720 x_msg_data => l_org_msg_data,
3721 x_party_id => l_org_party_id,
3722 x_party_number => l_org_party_number,
3723 x_profile_id => l_org_profile_id);
3724 IF l_org_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3725 ------------------------------------------------------------------------
3726 l_debug_info := 'After call to hz_party_v2pub.create_organization';
3727 l_debug_info := l_debug_info||' Return status : '||l_org_return_status||' Error : '||l_org_msg_data;
3728 ------------------------------------------------------------------------
3729 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3730 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
3731 END IF;
3732 END IF;
3733
3734 l_vendor_rec.party_id := l_org_party_id;
3735
3736 END IF; --party_id was null
3737
3738 -- B 7831956 start ...
3739 IF l_vendor_rec.url IS NOT NULL THEN
3740
3741 --populate contact point record
3742 l_contact_point_rec.owner_table_name := 'HZ_PARTIES' ;
3743 l_contact_point_rec.owner_table_id := l_vendor_rec.party_id ;
3744 l_contact_point_rec.created_by_module := 'AP_SUPPLIERS_API' ;
3745 l_contact_point_rec.application_id := 200 ;
3746
3747 --populate url record
3748
3749 l_contact_point_rec.contact_point_type := 'WEB';
3750 l_contact_point_rec.primary_flag := 'Y';
3751 l_contact_point_rec.contact_point_purpose := 'HOMEPAGE'; --bug5875982
3752 l_contact_point_rec.primary_by_purpose := 'Y';
3753 --Open Issue 5
3754 l_url_rec.web_type := 'HTTP';
3755 l_url_rec.url := l_vendor_rec.url ;
3756
3757 hz_contact_point_v2pub.create_web_contact_point(
3758 p_init_msg_list => FND_API.G_FALSE,
3759 p_contact_point_rec => l_contact_point_rec,
3760 p_web_rec => l_url_rec,
3761 --p_commit => FND_API.G_FALSE,
3762 x_return_status => l_url_return_status,
3763 x_msg_count => l_url_msg_count,
3764 x_msg_data => l_url_msg_data,
3765 x_contact_point_id => l_url_contact_point_id);
3766 IF l_url_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3767 ------------------------------------------------------------------------
3768 l_debug_info := 'After call to hz_contact_point_v2pub.create_web_contact_point';
3769 l_debug_info := l_debug_info||' Return status : '||l_url_return_status||' Error : '||l_url_msg_data;
3770 ------------------------------------------------------------------------
3771 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3772 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
3773 END IF;
3774 END IF;
3775
3776 END IF; -- B 7831956 ... end
3777
3778 --Bug6677806
3779 l_party_usg_validation_level := HZ_PARTY_USG_ASSIGNMENT_PVT.G_VALID_LEVEL_NONE;
3780 l_party_usg_rec.party_id := nvl(l_vendor_rec.party_id,l_org_party_id);
3781 l_party_usg_rec.party_usage_code := 'SUPPLIER';
3782 l_party_usg_rec.created_by_module := 'AP_SUPPLIERS_API';--Bug6678590
3783
3784 HZ_PARTY_USG_ASSIGNMENT_PVT.assign_party_usage (
3785 p_validation_level => l_party_usg_validation_level,
3786 p_party_usg_assignment_rec => l_party_usg_rec,
3787 x_return_status => l_org_return_status,
3788 x_msg_count => l_org_msg_count,
3789 x_msg_data => l_org_msg_data);
3790 IF l_org_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3791 ------------------------------------------------------------------------
3792 l_debug_info := 'After call to HZ_PARTY_USG_ASSIGNMENT_PVT.assign_party_usage';
3793 l_debug_info := l_debug_info||' Return status : '||l_org_return_status||' Error : '||l_org_msg_data;
3794 ------------------------------------------------------------------------
3795 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3796 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
3797 END IF;
3798 END IF;
3799
3800 IF l_payee_valid = 'N' THEN --payee record is valid
3801
3802 -- As per the discussion with Omar/Jayanta, we will only
3803 -- have payables payment function and no more employee expenses
3804 -- payment function.
3805
3806
3807 IF l_vendor_rec.ext_payee_rec.payment_function IS NULL THEN
3808
3809 l_ext_payee_rec.payee_party_id := l_vendor_rec.party_id;
3810 L_Ext_Payee_Rec.Payment_Function := 'PAYABLES_DISB';
3811 /* L_Ext_Payee_Rec.Exclusive_Pay_Flag := 'N'; Bug9955876 */
3812 l_ext_payee_rec.Exclusive_Pay_Flag := l_Exclusive_Payment; -- Bug9955876
3813
3814 -- Bug 6458813
3815 L_Ext_Payee_Rec.Default_Pmt_Method := L_Vendor_Rec.Ext_Payee_Rec.Default_Pmt_Method;
3816 l_ext_payee_rec.ece_tp_loc_code := l_vendor_rec.ext_payee_rec.ece_tp_loc_code;
3817 /* l_ext_payee_rec.bank_charge_bearer := l_vendor_rec.ext_payee_rec.bank_charge_bearer; Bug10026814 */
3818 l_ext_payee_rec.bank_charge_bearer := NULL; /* Bug10026814 */
3819 l_ext_payee_rec.bank_instr1_code := l_vendor_rec.ext_payee_rec.bank_instr1_code;
3820 l_ext_payee_rec.bank_instr2_code := l_vendor_rec.ext_payee_rec.bank_instr2_code;
3821 l_ext_payee_rec.bank_instr_detail := l_vendor_rec.ext_payee_rec.bank_instr_detail;
3822 l_ext_payee_rec.pay_reason_code := l_vendor_rec.ext_payee_rec.pay_reason_code;
3823 l_ext_payee_rec.pay_reason_com := l_vendor_rec.ext_payee_rec.pay_reason_com;
3824 l_ext_payee_rec.pay_message1 := l_vendor_rec.ext_payee_rec.pay_message1;
3825 l_ext_payee_rec.pay_message2 := l_vendor_rec.ext_payee_rec.pay_message2;
3826 l_ext_payee_rec.pay_message3 := l_vendor_rec.ext_payee_rec.pay_message3;
3827 l_ext_payee_rec.delivery_channel := l_vendor_rec.ext_payee_rec.delivery_channel;
3828 l_ext_payee_rec.pmt_format := l_vendor_rec.ext_payee_rec.pmt_format;
3829 l_ext_payee_rec.settlement_priority := l_vendor_rec.ext_payee_rec.settlement_priority;
3830 -- Bug 6458813 ends
3831
3832 -- Bug 8216762
3833 -- B# 7583123
3834 l_ext_payee_rec.remit_advice_delivery_method := l_vendor_rec.supplier_notif_method;
3835 l_ext_payee_rec.remit_advice_email := l_vendor_rec.remittance_email;
3836
3837 ext_payee_tab(1) := l_ext_payee_rec;
3838 ELSE
3839
3840 ext_payee_tab(1) := l_vendor_rec.ext_payee_rec;
3841
3842 END IF;
3843
3844 /* Calling IBY Payee Creation API */
3845 IBY_DISBURSEMENT_SETUP_PUB.Create_External_Payee
3846 ( p_api_version => 1.0,
3847 p_init_msg_list => FND_API.G_FALSE,
3848 p_ext_payee_tab => ext_payee_tab,
3849 x_return_status => l_pay_return_status,
3850 x_msg_count => l_pay_msg_count,
3851 x_msg_data => l_pay_msg_data,
3852 x_ext_payee_id_tab => ext_payee_id_tab,
3853 X_Ext_Payee_Status_Tab => Ext_Payee_Create_Tab);
3854 IF l_pay_return_status <> FND_API.G_RET_STS_SUCCESS THEN /*Bug9955876*/
3855 ------------------------------------------------------------------------
3856 l_debug_info := 'After call to IBY_DISBURSEMENT_SETUP_PUB.Create_External_Payee';
3857 l_debug_info := l_debug_info||' Return status : '||l_pay_return_status||' Error : '||l_pay_msg_data;
3858 ------------------------------------------------------------------------
3859 Raise FND_API.G_EXC_UNEXPECTED_ERROR ; /*Bug9955876 */
3860
3861 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3862 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
3863 END IF;
3864 END IF;
3865
3866 END IF;
3867
3868 IF l_vendor_rec.party_id IS NOT NULL AND
3869 p_vendor_rec.vendor_type_lookup_code IS NOT NULL THEN
3870
3871 zx_tcm_bes_registration_pvt.synch_ptp_code_assigment(
3872 p_party_id => l_vendor_rec.party_id,
3873 p_class_category => 'SUPPLIER_TYPE',
3874 p_class_code => p_vendor_rec.vendor_type_lookup_code,
3875 x_return_status => l_zx_return_status,
3876 x_msg_count => l_zx_msg_count,
3877 x_msg_data => l_zx_msg_data );
3878 IF l_zx_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3879 ------------------------------------------------------------------------
3880 l_debug_info := 'After call to zx_tcm_bes_registration_pvt.synch_ptp_code_assigment';
3881 l_debug_info := l_debug_info||' Return status : '||l_zx_return_status||' Error : '||l_zx_msg_data;
3882 ------------------------------------------------------------------------
3883 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3884 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
3885 END IF;
3886 END IF;
3887
3888 END IF;
3889
3890
3891 -- B 9202909 ... start
3892 l_party_id := nvl(l_vendor_rec.party_id,l_org_party_id);
3893
3894
3895
3896 BEGIN
3897 SELECT PROCESS_FOR_APPLICABILITY_FLAG, ALLOW_OFFSET_TAX_FLAG, TAX_CLASSIFICATION_CODE,
3898 PARTY_TAX_PROFILE_ID
3899 INTO l_auto_tax_calc_flag,l_offset_tax_flag, l_tax_classification_code,
3900 L_PARTY_TAX_PROFILE_ID
3901 FROM ZX_PARTY_TAX_PROFILE
3902 WHERE PARTY_ID = l_party_id
3903 AND PARTY_TYPE_CODE = 'THIRD_PARTY'
3904 AND ROWNUM = 1;
3905
3906 EXCEPTION
3907 WHEN OTHERS THEN
3908 L_PARTY_TAX_PROFILE_ID := NULL;
3909 l_debug_info := 'No data returned from ZX_PARTY_TAX_PROFILE for party_id = '||l_party_id;
3910 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3911 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
3912 END IF;
3913 END;
3914
3915 l_vendor_rec.OFFSET_TAX_FLAG := nvl(l_vendor_rec.OFFSET_TAX_FLAG, l_offset_tax_flag);
3916 l_vendor_rec.AUTO_TAX_CALC_FLAG := nvl(l_vendor_rec.AUTO_TAX_CALC_FLAG, l_auto_tax_calc_flag);
3917 l_vendor_rec.VAT_CODE := nvl(l_vendor_rec.VAT_CODE, l_tax_classification_code);
3918
3919 l_offset_tax_flag := l_vendor_rec.OFFSET_TAX_FLAG;
3920 l_auto_tax_calc_flag := l_vendor_rec.AUTO_TAX_CALC_FLAG;
3921 l_tax_classification_code := l_vendor_rec.VAT_CODE;
3922
3923 IF (l_vendor_rec.vat_registration_num is not null
3924 or l_auto_tax_calc_flag is not null or l_offset_tax_flag is not null -- Bug#7371143 zrehman
3925 or l_tax_classification_code is not null) THEN -- Bug#7642742
3926
3927 IF L_PARTY_TAX_PROFILE_ID IS NOT NULL THEN
3928
3929 ZX_PARTY_TAX_PROFILE_PKG.update_row (
3930 P_PARTY_TAX_PROFILE_ID => L_PARTY_TAX_PROFILE_ID,
3931 P_COLLECTING_AUTHORITY_FLAG => null,
3932 P_PROVIDER_TYPE_CODE => null,
3933 P_CREATE_AWT_DISTS_TYPE_CODE => null,
3934 P_CREATE_AWT_INVOICES_TYPE_COD => null,
3935 P_TAX_CLASSIFICATION_CODE => l_tax_classification_code, -- Bug#7506443 zrehman
3936 P_SELF_ASSESS_FLAG => null,
3937 P_ALLOW_OFFSET_TAX_FLAG => l_offset_tax_flag,-- Bug#7371143 zrehman
3938 P_REP_REGISTRATION_NUMBER => l_vendor_rec.vat_registration_num,
3939 P_EFFECTIVE_FROM_USE_LE => null,
3940 P_RECORD_TYPE_CODE => null,
3941 P_REQUEST_ID => null,
3942 P_ATTRIBUTE1 => null,
3943 P_ATTRIBUTE2 => null,
3944 P_ATTRIBUTE3 => null,
3945 P_ATTRIBUTE4 => null,
3946 P_ATTRIBUTE5 => null,
3947 P_ATTRIBUTE6 => null,
3948 P_ATTRIBUTE7 => null,
3949 P_ATTRIBUTE8 => null,
3950 P_ATTRIBUTE9 => null,
3951 P_ATTRIBUTE10 => null,
3952 P_ATTRIBUTE11 => null,
3953 P_ATTRIBUTE12 => null,
3954 P_ATTRIBUTE13 => null,
3955 P_ATTRIBUTE14 => null,
3956 P_ATTRIBUTE15 => null,
3957 P_ATTRIBUTE_CATEGORY => null,
3958 P_PARTY_ID => null,
3959 P_PROGRAM_LOGIN_ID => null,
3960 P_PARTY_TYPE_CODE => null,
3961 P_SUPPLIER_FLAG => null,
3962 P_CUSTOMER_FLAG => null,
3963 P_SITE_FLAG => null,
3964 P_PROCESS_FOR_APPLICABILITY_FL => l_auto_tax_calc_flag,-- Bug#7371143 zrehman
3965 P_ROUNDING_LEVEL_CODE => null,
3966 P_ROUNDING_RULE_CODE => null,
3967 P_WITHHOLDING_START_DATE => null,
3968 P_INCLUSIVE_TAX_FLAG => null,
3969 P_ALLOW_AWT_FLAG => null,
3970 P_USE_LE_AS_SUBSCRIBER_FLAG => null,
3971 P_LEGAL_ESTABLISHMENT_FLAG => null,
3972 P_FIRST_PARTY_LE_FLAG => null,
3973 P_REPORTING_AUTHORITY_FLAG => null,
3974 X_RETURN_STATUS => l_return_status,
3975 P_REGISTRATION_TYPE_CODE => null,
3976 P_COUNTRY_CODE => null
3977 );
3978
3979 IF l_return_status <> fnd_api.g_ret_sts_success THEN
3980 l_debug_info := 'ZX_PARTY_TAX_PROFILE_PKG.update_row';
3981 l_debug_info := l_debug_info||' Return status : '||l_return_status;
3982 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3983 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
3984 END IF;
3985 END IF;
3986 END IF;
3987 END IF;
3988 -- B 9202909 ... end
3989
3990 --bug 6371419.commented the below condition as it was checked already
3991 -- IF (l_val_return_status = FND_API.G_RET_STS_SUCCESS) AND
3992 IF (l_org_return_status = FND_API.G_RET_STS_SUCCESS) AND
3993 (l_payee_valid = 'N' OR
3994 l_pay_return_status = FND_API.G_RET_STS_SUCCESS) THEN
3995
3996 ap_vendors_pkg.insert_row(
3997 p_vendor_rec => l_vendor_rec
3998 ,p_last_update_date => sysdate
3999 ,p_last_updated_by => nvl(l_user_id,-1)
4000 ,p_last_update_login => nvl(l_last_update_login,-1)
4001 ,p_creation_date => sysdate
4002 ,p_created_by => nvl(l_user_id,-1)
4003 ,p_request_id => l_request_id
4004 ,p_program_application_id => l_program_application_id
4005 ,p_program_id => l_program_id
4006 ,p_program_update_date => sysdate
4007 ,x_rowid => l_row_id
4008 ,x_vendor_id => l_vendor_id);
4009 ------------------------------------------------------------------------
4010 l_debug_info := 'After call to ap_vendors_pkg.insert_row';
4011 ------------------------------------------------------------------------
4012 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4013 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
4014 END IF;
4015
4016 --
4017 -- Added Call to Sync the Party Information into ap_supplier
4018 -- record for the performance reasons.
4019 --
4020 AP_TCA_SUPPLIER_SYNC_PKG.SYNC_Supplier(
4021 l_sync_return_status,
4022 l_sync_msg_count,
4023 l_sync_msg_data,
4024 l_vendor_rec.party_id);
4025 IF l_sync_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4026 ------------------------------------------------------------------------
4027 l_debug_info := 'After call to AP_TCA_SUPPLIER_SYNC_PKG.SYNC_Supplier';
4028 l_debug_info := l_debug_info||' Return status : '||l_sync_return_status||' Error : '||l_sync_msg_data;
4029 ------------------------------------------------------------------------
4030 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4031 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
4032 END IF;
4033 END IF;
4034
4035 IF l_sync_return_status = FND_API.G_RET_STS_SUCCESS THEN
4036 Raise_Supplier_Event( i_vendor_id => l_vendor_id ); -- Bug 7307669
4037 x_return_status := FND_API.G_RET_STS_SUCCESS;
4038 END IF;
4039 -- Bug 5570585
4040 x_party_id := nvl(l_vendor_rec.party_id,l_org_party_id);
4041 x_vendor_id := l_vendor_id;
4042
4043 END IF; --bug6371419.end of l_org_return_status SUCCESS
4044
4045 ELSIF (l_val_return_status = FND_API.G_RET_STS_UNEXP_ERROR) OR
4046 (l_org_return_status = FND_API.G_RET_STS_UNEXP_ERROR) OR
4047 (l_pay_return_status = FND_API.G_RET_STS_UNEXP_ERROR) OR
4048 (l_sync_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
4049
4050 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4051
4052 ELSE
4053
4054 x_return_status := FND_API.G_RET_STS_ERROR;
4055 END IF; --Supplier Valid
4056
4057 -- End of API body.
4058
4059 -- Standard check of p_commit.
4060 IF FND_API.To_Boolean( p_commit ) THEN
4061 COMMIT WORK;
4062 END IF;
4063
4064 -- Standard call to get message count and if count is 1,
4065 -- get message info.
4066 FND_MSG_PUB.Count_And_Get(
4067 p_count => x_msg_count ,
4068 p_data => x_msg_data
4069 );
4070
4071 EXCEPTION
4072 WHEN FND_API.G_EXC_ERROR THEN
4073 ROLLBACK TO Create_Vendor_PUB;
4074 x_return_status := FND_API.G_RET_STS_ERROR ;
4075 FND_MSG_PUB.Count_And_Get
4076 ( p_count => x_msg_count,
4077 p_data => x_msg_data
4078 );
4079 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4080 ROLLBACK TO Create_Vendor_PUB;
4081 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
4082 FND_MSG_PUB.Count_And_Get
4083 ( p_count => x_msg_count,
4084 p_data => x_msg_data
4085 );
4086 WHEN OTHERS THEN
4087 ROLLBACK TO Create_Vendor_PUB;
4088 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
4089 IF FND_MSG_PUB.Check_Msg_Level
4090 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
4091 FND_MSG_PUB.Add_Exc_Msg
4092 ( G_PKG_NAME ,
4093 l_api_name
4094 );
4095 END IF;
4096 FND_MSG_PUB.Count_And_Get
4097 ( p_count => x_msg_count,
4098 p_data => x_msg_data
4099 );
4100 END Create_Vendor;
4101
4102 PROCEDURE Update_Vendor
4103 ( p_api_version IN NUMBER,
4104 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
4105 p_commit IN VARCHAR2 := FND_API.G_FALSE,
4106 p_validation_level IN NUMBER :=
4107 FND_API.G_VALID_LEVEL_FULL,
4108 x_return_status OUT NOCOPY VARCHAR2 ,
4109 x_msg_count OUT NOCOPY NUMBER,
4110 x_msg_data OUT NOCOPY VARCHAR2,
4111 p_vendor_rec IN r_vendor_rec_type,
4112 p_vendor_id IN NUMBER
4113 )
4114 IS
4115 l_api_name CONSTANT VARCHAR2(30) := 'Update_Vendor';
4116 l_api_version CONSTANT NUMBER := 1.0;
4117
4118 l_def_org_id NUMBER;
4119 l_org_context VARCHAR2(1);
4120
4121 l_user_id number := FND_GLOBAL.USER_ID;
4122 l_last_update_login number := FND_GLOBAL.LOGIN_ID;
4123 l_program_application_id number := FND_GLOBAL.prog_appl_id;
4124 l_program_id number := FND_GLOBAL.conc_program_id;
4125 l_request_id number := FND_GLOBAL.conc_request_id;
4126
4127 l_vendor_rec r_vendor_rec_type;
4128 l_val_return_status VARCHAR2(50);
4129 l_val_msg_count NUMBER;
4130 l_val_msg_data VARCHAR2(1000);
4131 l_party_valid VARCHAR2(1);
4132 l_payee_valid VARCHAR2(1);
4133 l_rowid VARCHAR2(255);
4134
4135 l_sync_return_status VARCHAR2(50);
4136 l_sync_msg_count NUMBER;
4137 l_sync_msg_data VARCHAR2(1000);
4138 l_org_party_id NUMBER;
4139
4140
4141 BEGIN
4142 -- Standard Start of API savepoint
4143 SAVEPOINT Update_Vendor_PUB;
4144
4145 -- Standard call to check for call compatibility.
4146 IF NOT FND_API.Compatible_API_Call ( l_api_version ,
4147 p_api_version ,
4148 l_api_name ,
4149 G_PKG_NAME )
4150 THEN
4151 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4152 END IF;
4153
4154 -- Initialize message list if p_init_msg_list is set to TRUE.
4155 IF FND_API.to_Boolean( p_init_msg_list ) THEN
4156 FND_MSG_PUB.initialize;
4157 END IF;
4158
4159 -- Initialize API return status to success
4160 x_return_status := FND_API.G_RET_STS_SUCCESS;
4161 l_sync_return_status := FND_API.G_RET_STS_SUCCESS;
4162
4163
4164 -- API body
4165
4166 /*
4167 If (FV_INSTALL.ENABLED(l_def_org_id)) THEN
4168 g_fed_fin_installed := 'Y';
4169 Else
4170 g_fed_fin_installed := 'N';
4171 End If;
4172 */
4173
4174 l_vendor_rec := p_vendor_rec;
4175
4176 validate_vendor(p_api_version => 1.0,
4177 p_init_msg_list => FND_API.G_FALSE,
4178 p_commit => FND_API.G_FALSE,
4179 x_return_status => l_val_return_status,
4180 x_msg_count => l_val_msg_count,
4181 x_msg_data => l_val_msg_data,
4182 p_vendor_rec => l_vendor_rec,
4183 P_mode => 'U',
4184 P_calling_prog => 'NOT ISETUP',
4185 x_party_valid => l_party_valid,
4186 x_payee_valid => l_payee_valid,
4187 p_vendor_id => p_vendor_id );
4188
4189 IF (l_val_return_status = FND_API.G_RET_STS_SUCCESS) THEN
4190
4191 -- Select all the values needed to pass to update_row
4192 -- from PO_VENDORS
4193 SELECT
4194 decode(l_vendor_rec.allow_awt_flag,
4195 ap_null_char, NULL,
4196 nvl(l_vendor_rec.allow_awt_flag, allow_awt_flag))
4197 ,decode(l_vendor_rec.allow_substitute_receipts_flag,
4198 ap_null_char, NULL,
4199 nvl(l_vendor_rec.allow_substitute_receipts_flag,
4200 allow_substitute_receipts_flag))
4201 ,decode(l_vendor_rec.allow_unordered_receipts_flag,
4202 ap_null_char, NULL,
4203 nvl(l_vendor_rec.allow_unordered_receipts_flag,
4204 allow_unordered_receipts_flag))
4205 ,decode(l_vendor_rec.always_take_disc_flag,
4206 ap_null_char,NULL,
4207 nvl(l_vendor_rec.always_take_disc_flag,
4208 always_take_disc_flag))
4209 ,decode(l_vendor_rec.attribute_category,
4210 ap_null_char, NULL,
4211 nvl(l_vendor_rec.attribute_category,
4212 attribute_category))
4213 ,decode(l_vendor_rec.attribute1,
4214 ap_null_char, NULL,
4215 nvl(l_vendor_rec.attribute1, attribute1))
4216 ,decode(l_vendor_rec.attribute10,
4217 ap_null_char, NULL,
4218 nvl(l_vendor_rec.attribute10, attribute10))
4219 ,decode(l_vendor_rec.attribute11,
4220 ap_null_char, NULL,
4221 nvl(l_vendor_rec.attribute11, attribute11))
4222 ,decode(l_vendor_rec.attribute12,
4223 ap_null_char, NULL,
4224 nvl(l_vendor_rec.attribute12, attribute12))
4225 ,decode(l_vendor_rec.attribute13,
4226 ap_null_char, NULL,
4227 nvl(l_vendor_rec.attribute13, attribute13))
4228 ,decode(l_vendor_rec.attribute14,
4229 ap_null_char, NULL,
4230 nvl(l_vendor_rec.attribute14, attribute14))
4231 ,decode(l_vendor_rec.attribute15,
4232 ap_null_char, NULL,
4233 nvl(l_vendor_rec.attribute15, attribute15))
4234 ,decode(l_vendor_rec.attribute2,
4235 ap_null_char, NULL,
4236 nvl(l_vendor_rec.attribute2, attribute2))
4237 ,decode(l_vendor_rec.attribute3,
4238 ap_null_char, NULL,
4239 nvl(l_vendor_rec.attribute3, attribute3))
4240 ,decode(l_vendor_rec.attribute4,
4241 ap_null_char, NULL,
4242 nvl(l_vendor_rec.attribute4, attribute4))
4243 ,decode(l_vendor_rec.attribute5,
4244 ap_null_char, NULL,
4245 nvl(l_vendor_rec.attribute5, attribute5))
4246 ,decode(l_vendor_rec.attribute6,
4247 ap_null_char, NULL,
4248 nvl(l_vendor_rec.attribute6, attribute6))
4249 ,decode(l_vendor_rec.attribute7,
4250 ap_null_char, NULL,
4251 nvl(l_vendor_rec.attribute7, attribute7))
4252 ,decode(l_vendor_rec.attribute8,
4253 ap_null_char, NULL,
4254 nvl(l_vendor_rec.attribute8, attribute8))
4255 ,decode(l_vendor_rec.attribute9,
4256 ap_null_char, NULL,
4257 nvl(l_vendor_rec.attribute9, attribute9))
4258 ,decode(l_vendor_rec.auto_calculate_interest_flag,
4259 ap_null_char, NULL,
4260 nvl(l_vendor_rec.auto_calculate_interest_flag,
4261 auto_calculate_interest_flag))
4262 ,decode(l_vendor_rec.awt_group_id,
4263 ap_null_num,NULL,
4264 nvl(l_vendor_rec.awt_group_id,
4265 awt_group_id))
4266 ,decode(l_vendor_rec.bank_charge_bearer,
4267 ap_null_char,NULL,
4268 nvl(l_vendor_rec.bank_charge_bearer,
4269 bank_charge_bearer))
4270 ,decode(l_vendor_rec.check_digits,
4271 ap_null_char, NULL,
4272 nvl(l_vendor_rec.check_digits,
4273 check_digits))
4274 ,decode(l_vendor_rec.create_debit_memo_flag,
4275 ap_null_char,NULL,
4276 nvl(l_vendor_rec.create_debit_memo_flag,
4277 create_debit_memo_flag))
4278 ,decode(l_vendor_rec.customer_num,
4279 ap_null_char,NULL,
4280 nvl(l_vendor_rec.customer_num,
4281 customer_num))
4282 ,decode(l_vendor_rec.days_early_receipt_allowed,
4283 ap_null_num,NULL,
4284 nvl(l_vendor_rec.days_early_receipt_allowed,
4285 days_early_receipt_allowed))
4286 ,decode(l_vendor_rec.days_late_receipt_allowed,
4287 ap_null_num,NULL,
4288 nvl(l_vendor_rec.days_late_receipt_allowed,
4289 days_late_receipt_allowed))
4290 ,decode(l_vendor_rec.employee_id,
4291 ap_null_num,NULL,
4292 nvl(l_vendor_rec.employee_id,
4293 employee_id))
4294 ,decode(l_vendor_rec.enabled_flag,
4295 ap_null_char,NULL,
4296 nvl(l_vendor_rec.enabled_flag,
4297 enabled_flag))
4298 ,decode(l_vendor_rec.end_date_active,
4299 ap_null_date,NULL,
4300 nvl(l_vendor_rec.end_date_active,
4301 end_date_active))
4302 ,decode(l_vendor_rec.enforce_ship_to_location_code,
4303 ap_null_char, NULL,
4304 nvl(l_vendor_rec.enforce_ship_to_location_code,
4305 enforce_ship_to_location_code ))
4306 ,decode(l_vendor_rec.exclude_freight_from_discount,
4307 ap_null_char,NULL,
4308 nvl(l_vendor_rec.exclude_freight_from_discount,
4309 exclude_freight_from_discount))
4310 ,decode(l_vendor_rec.federal_reportable_flag,
4311 ap_null_char,NULL,
4312 nvl(l_vendor_rec.federal_reportable_flag,
4313 federal_reportable_flag))
4314 ,decode(l_vendor_rec.global_attribute_category,
4315 ap_null_char,NULL,
4316 nvl(l_vendor_rec.global_attribute_category,
4317 global_attribute_category))
4318 ,decode(l_vendor_rec.global_attribute1,
4319 ap_null_char,NULL,
4320 nvl(l_vendor_rec.global_attribute1,
4321 global_attribute1))
4322 ,decode(l_vendor_rec.global_attribute2,
4323 ap_null_char,NULL,
4324 nvl(l_vendor_rec.global_attribute2,
4325 global_attribute2))
4326 ,decode(l_vendor_rec.global_attribute3,
4327 ap_null_char,NULL,
4328 nvl(l_vendor_rec.global_attribute3,
4329 global_attribute3))
4330 ,decode(l_vendor_rec.global_attribute4,
4331 ap_null_char,NULL,
4332 nvl(l_vendor_rec.global_attribute4,
4333 global_attribute4))
4334 ,decode(l_vendor_rec.global_attribute5,
4335 ap_null_char,NULL,
4336 nvl(l_vendor_rec.global_attribute5,
4337 global_attribute5))
4338 ,decode(l_vendor_rec.global_attribute6,
4339 ap_null_char,NULL,
4340 nvl(l_vendor_rec.global_attribute6,
4341 global_attribute6))
4342 ,decode(l_vendor_rec.global_attribute7,
4343 ap_null_char,NULL,
4344 nvl(l_vendor_rec.global_attribute7,
4345 global_attribute7))
4346 ,decode(l_vendor_rec.global_attribute8,
4347 ap_null_char,NULL,
4348 nvl(l_vendor_rec.global_attribute8,
4349 global_attribute8))
4350 ,decode(l_vendor_rec.global_attribute9,
4351 ap_null_char,NULL,
4352 nvl(l_vendor_rec.global_attribute9,
4353 global_attribute9))
4354 ,decode(l_vendor_rec.global_attribute10,
4355 ap_null_char,NULL,
4356 nvl(l_vendor_rec.global_attribute10,
4357 global_attribute10))
4358 ,decode(l_vendor_rec.global_attribute11,
4359 ap_null_char,NULL,
4360 nvl(l_vendor_rec.global_attribute11,
4361 global_attribute11))
4362 ,decode(l_vendor_rec.global_attribute12,
4363 ap_null_char,NULL,
4364 nvl(l_vendor_rec.global_attribute12,
4365 global_attribute12))
4366 ,decode(l_vendor_rec.global_attribute13,
4367 ap_null_char,NULL,
4368 nvl(l_vendor_rec.global_attribute13,
4369 global_attribute13))
4370 ,decode(l_vendor_rec.global_attribute14,
4371 ap_null_char,NULL,
4372 nvl(l_vendor_rec.global_attribute14,
4373 global_attribute14))
4374 ,decode(l_vendor_rec.global_attribute15,
4375 ap_null_char,NULL,
4376 nvl(l_vendor_rec.global_attribute15,
4377 global_attribute15))
4378 ,decode(l_vendor_rec.global_attribute16,
4379 ap_null_char,NULL,
4380 nvl(l_vendor_rec.global_attribute16,
4381 global_attribute16))
4382 ,decode(l_vendor_rec.global_attribute17,
4383 ap_null_char,NULL,
4384 nvl(l_vendor_rec.global_attribute17,
4385 global_attribute17))
4386 ,decode(l_vendor_rec.global_attribute18,
4387 ap_null_char,NULL,
4388 nvl(l_vendor_rec.global_attribute18,
4389 global_attribute18))
4390 ,decode(l_vendor_rec.global_attribute19,
4391 ap_null_char,NULL,
4392 nvl(l_vendor_rec.global_attribute19,
4393 global_attribute19))
4394 ,decode(l_vendor_rec.global_attribute20,
4395 ap_null_char,NULL,
4396 nvl(l_vendor_rec.global_attribute20,
4397 global_attribute20))
4398 ,decode(l_vendor_rec.hold_all_payments_flag,
4399 ap_null_char,NULL,
4400 nvl(l_vendor_rec.hold_all_payments_flag,
4401 hold_all_payments_flag))
4402 ,decode(l_vendor_rec.hold_by,
4403 ap_null_num, NULL,
4404 nvl(l_vendor_rec.hold_by, hold_by))
4405 ,decode(l_vendor_rec.hold_date,
4406 ap_null_date,NULL,
4407 nvl(l_vendor_rec.hold_date, hold_date))
4408 ,decode(l_vendor_rec.hold_flag,
4409 ap_null_char,NULL,
4410 nvl(l_vendor_rec.hold_flag, hold_flag))
4411 ,decode(l_vendor_rec.hold_future_payments_flag,
4412 ap_null_char,NULL,
4413 nvl(l_vendor_rec.hold_future_payments_flag,
4414 hold_future_payments_flag))
4415 ,decode(l_vendor_rec.hold_reason,
4416 ap_null_char,NULL,
4417 nvl(l_vendor_rec.hold_reason, hold_reason))
4418 ,decode(l_vendor_rec.hold_unmatched_invoices_flag,
4419 ap_null_char,NULL,
4420 nvl(l_vendor_rec.hold_unmatched_invoices_flag,
4421 hold_unmatched_invoices_flag))
4422 ,decode(l_vendor_rec.inspection_required_flag,
4423 ap_null_char,NULL,
4424 nvl(l_vendor_rec.inspection_required_flag,
4425 inspection_required_flag ))
4426 ,decode(l_vendor_rec.invoice_amount_limit,
4427 ap_null_num, NULL,
4428 nvl(l_vendor_rec.invoice_amount_limit,
4429 invoice_amount_limit))
4430 ,decode(l_vendor_rec.invoice_currency_code,
4431 ap_null_char,NULL,
4432 nvl(l_vendor_rec.invoice_currency_code,
4433 invoice_currency_code))
4434 ,decode(l_vendor_rec.match_option,
4435 ap_null_char,NULL,
4436 nvl(l_vendor_rec.match_option, match_option))
4437 ,decode(l_vendor_rec.min_order_amount,
4438 ap_null_num,NULL,
4439 nvl(l_vendor_rec.min_order_amount,
4440 min_order_amount))
4441 ,decode(l_vendor_rec.minority_group_lookup_code,
4442 ap_null_char,NULL,
4443 nvl(l_vendor_rec.minority_group_lookup_code,
4444 minority_group_lookup_code))
4445 ,decode(l_vendor_rec.name_control,
4446 ap_null_char,NULL,
4447 nvl(l_vendor_rec.name_control, name_control))
4448 ,decode(l_vendor_rec.one_time_flag,
4449 ap_null_char,NULL,
4450 nvl(l_vendor_rec.one_time_flag, one_time_flag ))
4451 ,decode(l_vendor_rec.organization_type_lookup_code,
4452 ap_null_char,NULL,
4453 nvl(l_vendor_rec.organization_type_lookup_code,
4454 organization_type_lookup_code))
4455 ,decode(l_vendor_rec.parent_vendor_id,
4456 ap_null_num,NULL,
4457 nvl(l_vendor_rec.parent_vendor_id,
4458 parent_vendor_id))
4459 ,decode(l_vendor_rec.parent_party_id,
4460 ap_null_num,NULL,
4461 nvl(l_vendor_rec.parent_party_id,
4462 parent_party_id))
4463 ,decode(l_vendor_rec.party_id,
4464 ap_null_num,NULL,
4465 nvl(l_vendor_rec.party_id, party_id))
4466 ,decode(l_vendor_rec.pay_date_basis_lookup_code,
4467 ap_null_char,NULL,
4468 nvl(l_vendor_rec.pay_date_basis_lookup_code,
4469 pay_date_basis_lookup_code))
4470 ,decode(l_vendor_rec.pay_group_lookup_code,
4471 ap_null_char,NULL,
4472 nvl(l_vendor_rec.pay_group_lookup_code,
4473 pay_group_lookup_code))
4474 ,decode(l_vendor_rec.payment_currency_code,
4475 ap_null_char,NULL,
4476 nvl(l_vendor_rec.payment_currency_code,
4477 payment_currency_code))
4478 ,decode(l_vendor_rec.payment_priority,
4479 ap_null_num,NULL,
4480 nvl(l_vendor_rec.payment_priority,
4481 payment_priority))
4482 ,decode(l_vendor_rec.purchasing_hold_reason,
4483 ap_null_char,NULL,
4484 nvl(l_vendor_rec.purchasing_hold_reason,
4485 purchasing_hold_reason))
4486 ,decode(l_vendor_rec.qty_rcv_exception_code,
4487 ap_null_char,NULL,
4488 nvl(l_vendor_rec.qty_rcv_exception_code,
4489 qty_rcv_exception_code))
4490 ,decode(l_vendor_rec.qty_rcv_tolerance,
4491 ap_null_num,NULL,
4492 nvl(l_vendor_rec.qty_rcv_tolerance,
4493 qty_rcv_tolerance))
4494 ,decode(l_vendor_rec.receipt_days_exception_code,
4495 ap_null_char,NULL,
4496 nvl(l_vendor_rec.receipt_days_exception_code,
4497 receipt_days_exception_code))
4498 ,decode(l_vendor_rec.receipt_required_flag,
4499 ap_null_char,NULL,
4500 nvl(l_vendor_rec.receipt_required_flag,
4501 receipt_required_flag))
4502 ,decode(l_vendor_rec.receiving_routing_id,
4503 ap_null_num,NULL,
4504 nvl(l_vendor_rec.receiving_routing_id,
4505 receiving_routing_id))
4506 ,decode(l_vendor_rec.segment1,
4507 ap_null_char,NULL,
4508 nvl(l_vendor_rec.segment1, segment1 ))
4509 ,decode(l_vendor_rec.segment2,
4510 ap_null_char,NULL,
4511 nvl(l_vendor_rec.segment2, segment2 ))
4512 ,decode(l_vendor_rec.segment3,
4513 ap_null_char,NULL,
4514 nvl(l_vendor_rec.segment3, segment3 ))
4515 ,decode(l_vendor_rec.segment4,
4516 ap_null_char,NULL,
4517 nvl(l_vendor_rec.segment4, segment4 ))
4518 ,decode(l_vendor_rec.segment5,
4519 ap_null_char,NULL,
4520 nvl(l_vendor_rec.segment5, segment5 ))
4521 ,decode(l_vendor_rec.set_of_books_id,
4522 ap_null_num,NULL,
4523 nvl(l_vendor_rec.set_of_books_id,
4524 set_of_books_id))
4525 ,decode(l_vendor_rec.small_business_flag,
4526 ap_null_char,NULL,
4527 nvl(l_vendor_rec.small_business_flag,
4528 small_business_flag ))
4529 ,decode(l_vendor_rec.start_date_active,
4530 ap_null_date,NULL,
4531 nvl(l_vendor_rec.start_date_active,
4532 start_date_active))
4533 ,decode(l_vendor_rec.state_reportable_flag,
4534 ap_null_char,NULL,
4535 nvl(l_vendor_rec.state_reportable_flag,
4536 state_reportable_flag))
4537 ,decode(l_vendor_rec.summary_flag,
4538 ap_null_char,NULL,
4539 nvl(l_vendor_rec.summary_flag, summary_flag))
4540 ,decode(l_vendor_rec.tax_reporting_name,
4541 ap_null_char,NULL,
4542 nvl(l_vendor_rec.tax_reporting_name,
4543 tax_reporting_name))
4544 ,decode(l_vendor_rec.tax_verification_date,
4545 ap_null_date,NULL,
4546 nvl(l_vendor_rec.tax_verification_date,
4547 tax_verification_date))
4548 ,decode(l_vendor_rec.terms_date_basis,
4549 ap_null_char,NULL,
4550 nvl(l_vendor_rec.terms_date_basis,
4551 terms_date_basis))
4552 ,decode(l_vendor_rec.terms_id,
4553 ap_null_num,NULL,
4554 nvl(l_vendor_rec.terms_id, terms_id ))
4555 --bug6050423 starts.system inserts taxpayer id
4556 --of individual contractors into ap_suppliers
4557 ,decode(l_vendor_rec.jgzz_fiscal_code,
4558 ap_null_char,NULL,
4559 nvl(l_vendor_rec.jgzz_fiscal_code,nvl(individual_1099,num_1099)))
4560 --bug6050423 ends
4561 ,decode(l_vendor_rec.type_1099,
4562 ap_null_char,NULL,
4563 nvl(l_vendor_rec.type_1099, type_1099))
4564 ,decode(l_vendor_rec.validation_number,
4565 ap_null_num,NULL,
4566 nvl(l_vendor_rec.validation_number,
4567 validation_number))
4568 ,decode(l_vendor_rec.vendor_type_lookup_code,
4569 ap_null_char,NULL,
4570 nvl(l_vendor_rec.vendor_type_lookup_code,
4571 vendor_type_lookup_code))
4572 ,decode(l_vendor_rec.withholding_start_date,
4573 ap_null_date,NULL,
4574 nvl(l_vendor_rec.withholding_start_date,
4575 withholding_start_date))
4576 ,decode(l_vendor_rec.withholding_status_lookup_code,
4577 ap_null_char,NULL,
4578 nvl(l_vendor_rec.withholding_status_lookup_code,
4579 withholding_status_lookup_code))
4580 ,decode(l_vendor_rec.women_owned_flag,
4581 ap_null_char,NULL,
4582 nvl(l_vendor_rec.women_owned_flag,women_owned_flag))
4583 -- bug7561758
4584 ,decode(l_vendor_rec.pay_awt_group_id,
4585 ap_null_num,NULL,
4586 nvl(l_vendor_rec.pay_awt_group_id,
4587 pay_awt_group_id))
4588 ,decode(l_vendor_rec.ni_number,
4589 ap_null_char,NULL,l_vendor_rec.ni_number)/*Bug9716861 */
4590 ,rowid
4591 INTO
4592 l_vendor_rec.allow_awt_flag
4593 ,l_vendor_rec.allow_substitute_receipts_flag
4594 ,l_vendor_rec.allow_unordered_receipts_flag
4595 ,l_vendor_rec.always_take_disc_flag
4596 ,l_vendor_rec.attribute_category
4597 ,l_vendor_rec.attribute1
4598 ,l_vendor_rec.attribute10
4599 ,l_vendor_rec.attribute11
4600 ,l_vendor_rec.attribute12
4601 ,l_vendor_rec.attribute13
4602 ,l_vendor_rec.attribute14
4603 ,l_vendor_rec.attribute15
4604 ,l_vendor_rec.attribute2
4605 ,l_vendor_rec.attribute3
4606 ,l_vendor_rec.attribute4
4607 ,l_vendor_rec.attribute5
4608 ,l_vendor_rec.attribute6
4609 ,l_vendor_rec.attribute7
4610 ,l_vendor_rec.attribute8
4611 ,l_vendor_rec.attribute9
4612 ,l_vendor_rec.auto_calculate_interest_flag
4613 ,l_vendor_rec.awt_group_id
4614 ,l_vendor_rec.bank_charge_bearer
4615 ,l_vendor_rec.check_digits
4616 ,l_vendor_rec.create_debit_memo_flag
4617 ,l_vendor_rec.customer_num
4618 ,l_vendor_rec.days_early_receipt_allowed
4619 ,l_vendor_rec.days_late_receipt_allowed
4620 ,l_vendor_rec.employee_id
4621 ,l_vendor_rec.enabled_flag
4622 ,l_vendor_rec.end_date_active
4623 ,l_vendor_rec.enforce_ship_to_location_code
4624 ,l_vendor_rec.exclude_freight_from_discount
4625 ,l_vendor_rec.federal_reportable_flag
4626 ,l_vendor_rec.global_attribute_category
4627 ,l_vendor_rec.global_attribute1
4628 ,l_vendor_rec.global_attribute2
4629 ,l_vendor_rec.global_attribute3
4630 ,l_vendor_rec.global_attribute4
4631 ,l_vendor_rec.global_attribute5
4632 ,l_vendor_rec.global_attribute6
4633 ,l_vendor_rec.global_attribute7
4634 ,l_vendor_rec.global_attribute8
4635 ,l_vendor_rec.global_attribute9
4636 ,l_vendor_rec.global_attribute10
4637 ,l_vendor_rec.global_attribute11
4638 ,l_vendor_rec.global_attribute12
4639 ,l_vendor_rec.global_attribute13
4640 ,l_vendor_rec.global_attribute14
4641 ,l_vendor_rec.global_attribute15
4642 ,l_vendor_rec.global_attribute16
4643 ,l_vendor_rec.global_attribute17
4644 ,l_vendor_rec.global_attribute18
4645 ,l_vendor_rec.global_attribute19
4646 ,l_vendor_rec.global_attribute20
4647 ,l_vendor_rec.hold_all_payments_flag
4648 ,l_vendor_rec.hold_by
4649 ,l_vendor_rec.hold_date
4650 ,l_vendor_rec.hold_flag
4651 ,l_vendor_rec.hold_future_payments_flag
4652 ,l_vendor_rec.hold_reason
4653 ,l_vendor_rec.hold_unmatched_invoices_flag
4654 ,l_vendor_rec.inspection_required_flag
4655 ,l_vendor_rec.invoice_amount_limit
4656 ,l_vendor_rec.invoice_currency_code
4657 ,l_vendor_rec.match_option
4658 ,l_vendor_rec.min_order_amount
4659 ,l_vendor_rec.minority_group_lookup_code
4660 ,l_vendor_rec.name_control
4661 ,l_vendor_rec.one_time_flag
4662 ,l_vendor_rec.organization_type_lookup_code
4663 ,l_vendor_rec.parent_vendor_id
4664 ,l_vendor_rec.parent_party_id
4665 ,l_vendor_rec.party_id
4666 ,l_vendor_rec.pay_date_basis_lookup_code
4667 ,l_vendor_rec.pay_group_lookup_code
4668 ,l_vendor_rec.payment_currency_code
4669 ,l_vendor_rec.payment_priority
4670 ,l_vendor_rec.purchasing_hold_reason
4671 ,l_vendor_rec.qty_rcv_exception_code
4672 ,l_vendor_rec.qty_rcv_tolerance
4673 ,l_vendor_rec.receipt_days_exception_code
4674 ,l_vendor_rec.receipt_required_flag
4675 ,l_vendor_rec.receiving_routing_id
4676 ,l_vendor_rec.segment1
4677 ,l_vendor_rec.segment2
4678 ,l_vendor_rec.segment3
4679 ,l_vendor_rec.segment4
4680 ,l_vendor_rec.segment5
4681 ,l_vendor_rec.set_of_books_id
4682 ,l_vendor_rec.small_business_flag
4683 ,l_vendor_rec.start_date_active
4684 ,l_vendor_rec.state_reportable_flag
4685 ,l_vendor_rec.summary_flag
4686 ,l_vendor_rec.tax_reporting_name
4687 ,l_vendor_rec.tax_verification_date
4688 ,l_vendor_rec.terms_date_basis
4689 ,l_vendor_rec.terms_id
4690 ,l_vendor_rec.jgzz_fiscal_code --bug6050423
4691 ,l_vendor_rec.type_1099
4692 ,l_vendor_rec.validation_number
4693 ,l_vendor_rec.vendor_type_lookup_code
4694 ,l_vendor_rec.withholding_start_date
4695 ,l_vendor_rec.withholding_status_lookup_code
4696 ,l_vendor_rec.women_owned_flag
4697 ,l_vendor_rec.pay_awt_group_id -- bug7561758
4698 ,l_vendor_rec.ni_number /*Bug9716861 */
4699 ,l_rowid
4700 FROM po_vendors
4701 WHERE vendor_id = p_vendor_id;
4702
4703 ap_vendors_pkg.update_row(
4704 p_vendor_rec => l_vendor_rec,
4705 p_last_update_date => sysdate,
4706 p_last_updated_by => l_user_id,
4707 p_last_update_login => l_last_update_login,
4708 p_request_id => l_request_id ,
4709 p_program_application_id => l_program_application_id,
4710 p_program_id => l_program_id,
4711 p_program_update_date => sysdate,
4712 p_rowid => l_rowid,
4713 p_vendor_id => p_vendor_id);
4714
4715 --
4716 -- Added Call to Sync the Party Information into ap_supplier
4717 -- record for the performance reasons.
4718 --
4719
4720 AP_TCA_SUPPLIER_SYNC_PKG.SYNC_Supplier(
4721 l_sync_return_status,
4722 l_sync_msg_count,
4723 l_sync_msg_data,
4724 l_vendor_rec.party_id);
4725
4726 IF l_sync_return_status = FND_API.G_RET_STS_SUCCESS THEN
4727 Raise_Supplier_Event( i_vendor_id => p_vendor_id ); -- Bug 7307669
4728 x_return_status := FND_API.G_RET_STS_SUCCESS;
4729 END IF;
4730
4731 ELSIF (l_val_return_status = FND_API.G_RET_STS_UNEXP_ERROR OR
4732 l_sync_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
4733
4734 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4735
4736 ELSE
4737
4738 x_return_status := FND_API.G_RET_STS_ERROR;
4739 END IF;
4740
4741 --set access mode back to original value
4742 IF l_org_context <> mo_global.get_access_mode THEN
4743 MO_GLOBAL.set_policy_context(l_org_context,l_def_org_id);
4744 END IF;
4745
4746 -- End of API body.
4747
4748 -- Standard check of p_commit.
4749 IF FND_API.To_Boolean( p_commit ) THEN
4750 COMMIT WORK;
4751 END IF;
4752
4753 -- Standard call to get message count and if count is 1,
4754 -- get message info.
4755 FND_MSG_PUB.Count_And_Get(
4756 p_count => x_msg_count ,
4757 p_data => x_msg_data
4758 );
4759
4760 EXCEPTION
4761 WHEN FND_API.G_EXC_ERROR THEN
4762 ROLLBACK TO Update_Vendor_PUB;
4763 x_return_status := FND_API.G_RET_STS_ERROR ;
4764 FND_MSG_PUB.Count_And_Get
4765 ( p_count => x_msg_count,
4766 p_data => x_msg_data
4767 );
4768 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4769 ROLLBACK TO Update_Vendor_PUB;
4770 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
4771 FND_MSG_PUB.Count_And_Get
4772 ( p_count => x_msg_count,
4773 p_data => x_msg_data
4774 );
4775 WHEN OTHERS THEN
4776 ROLLBACK TO Update_Vendor_PUB;
4777 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
4778 IF FND_MSG_PUB.Check_Msg_Level
4779 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
4780 FND_MSG_PUB.Add_Exc_Msg
4781 ( G_PKG_NAME ,
4782 l_api_name
4783 );
4784 END IF;
4785 FND_MSG_PUB.Count_And_Get
4786 ( p_count => x_msg_count,
4787 p_data => x_msg_data
4788 );
4789 END Update_Vendor;
4790
4791 PROCEDURE Validate_Vendor
4792 ( p_api_version IN NUMBER,
4793 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
4794 p_commit IN VARCHAR2 := FND_API.G_FALSE,
4795 p_validation_level IN NUMBER :=
4796 FND_API.G_VALID_LEVEL_FULL,
4797 x_return_status OUT NOCOPY VARCHAR2 ,
4798 x_msg_count OUT NOCOPY NUMBER,
4799 x_msg_data OUT NOCOPY VARCHAR2,
4800 p_vendor_rec IN OUT NOCOPY r_vendor_rec_type,
4801 p_mode IN VARCHAR2,
4802 p_calling_prog IN VARCHAR2,
4803 x_party_valid OUT NOCOPY VARCHAR2,
4804 x_payee_valid OUT NOCOPY VARCHAR2,
4805 p_vendor_id IN NUMBER
4806
4807 )
4808 IS
4809 l_api_name CONSTANT VARCHAR2(30) := 'Validate_Vendor';
4810 l_api_version CONSTANT NUMBER := 1.0;
4811
4812 l_def_org_id NUMBER;
4813 l_debug_info VARCHAR2(2000);
4814 x_valid BOOLEAN;
4815 l_segment1 VARCHAR2(30);
4816 l_payee_return_status VARCHAR2(50);
4817 l_payee_msg_count NUMBER;
4818 l_payee_msg_data VARCHAR2(1000);
4819 l_default_country_code VARCHAR2(25); --bug6050423
4820 l_msg_count NUMBER; --bug 7572325
4821 l_msg_data varchar2(4000); --bug 7572325
4822 l_error_code VARCHAR2(4000); --bug 7572325
4823 l_status NUMBER ; -- B 9202909
4824 current_calling_sequence VARCHAR2(1000); --Bug#13464635
4825
4826 BEGIN
4827 current_calling_sequence := 'AP_VENDOR_PUB_PKG.Validate_Vendor<-'
4828 ||p_calling_prog; --Bug#13464635
4829 -- Standard Start of API savepoint
4830 SAVEPOINT Validate_Vendor_PUB;
4831
4832 -- Standard call to check for call compatibility.
4833 IF NOT FND_API.Compatible_API_Call ( l_api_version ,
4834 p_api_version ,
4835 l_api_name ,
4836 G_PKG_NAME )
4837 THEN
4838 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4839 END IF;
4840
4841 -- Initialize message list if p_init_msg_list is set to TRUE.
4842 IF FND_API.to_Boolean( p_init_msg_list ) THEN
4843 FND_MSG_PUB.initialize;
4844 END IF;
4845
4846 -- Initialize API return status to success
4847 x_return_status := FND_API.G_RET_STS_SUCCESS;
4848
4849 -- API body
4850
4851 -- Open Issue 7 Call eTax Validation
4852
4853 ------------------------------------------------------------------------
4854 l_debug_info := 'Call to Validate inspection_required_flag';
4855 ------------------------------------------------------------------------
4856 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4857 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
4858 END IF;
4859 --
4860 -- Validate inspection_required_flag
4861 --
4862 IF p_vendor_rec.inspection_required_flag is NOT NULL
4863 AND p_vendor_rec.inspection_required_flag <> ap_null_char THEN
4864
4865 Validate_Lookups( 'INSPECTION_REQUIRED_FLAG', p_vendor_rec.inspection_required_flag,'YES/NO',
4866 'PO_LOOKUP_CODES',x_valid);
4867 IF NOT x_valid THEN
4868 x_return_status := FND_API.G_RET_STS_ERROR;
4869 IF g_source = 'IMPORT' THEN
4870 IF (Insert_Rejections(
4871 'AP_SUPPLIERS_INT',
4872 p_vendor_rec.vendor_interface_id,
4873 'AP_INVALID_INSP_REQ_FLAG',
4874 g_user_id,
4875 g_login_id,
4876 'Validate_Vendor') <> TRUE) THEN
4877 --
4878 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4879 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
4880 l_api_name,'Parameters: '
4881 ||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
4882 ||' ,Inspection_Required_Flag: '||p_vendor_rec.inspection_required_flag);
4883 END IF;
4884 END IF;
4885 ELSE
4886 -- Bug 5491139 hkaniven start --
4887 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_INSP_REQ_FLAG');
4888 FND_MSG_PUB.ADD;
4889 -- Bug 5491139 hkaniven end --
4890 END IF;
4891 END IF;
4892 END IF;
4893
4894
4895 -- B 9202909 ... start
4896 -- Bug 6645014 starts: To import Vat code
4897 ------------------------------------------------------------------------
4898 l_debug_info := 'Call to Validate vat_code';
4899 ------------------------------------------------------------------------
4900 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4901 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
4902 l_api_name,l_debug_info);
4903 END IF;
4904 --
4905 -- Validate vat_code
4906 --
4907 IF p_vendor_rec.vat_code is NOT NULL THEN
4908 -- Checking the vat code in the tax tables
4909 l_status := 0;
4910 SELECT COUNT(*) INTO l_status FROM DUAL WHERE EXISTS (
4911 SELECT 'Y'
4912 FROM zx_input_classifications_v
4913 WHERE lookup_type in ('ZX_INPUT_CLASSIFICATIONS', 'ZX_WEB_EXP_TAX_CLASSIFICATIONS')
4914 AND org_id = -99
4915 AND enabled_flag = 'Y'
4916 AND LOOKUP_CODE = p_vendor_rec.VAT_CODE );
4917
4918
4919 IF l_status = 0 THEN
4920 x_return_status := FND_API.G_RET_STS_ERROR;
4921 IF g_source = 'IMPORT' THEN
4922 IF (Insert_Rejections(
4923 'AP_SUPPLIERS_INT',
4924 p_vendor_rec.vendor_interface_id,
4925 'AP_INVALID_VAT_CODE',
4926 g_user_id,
4927 g_login_id,
4928 'Validate_Vendor') <> TRUE) THEN
4929 --
4930 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4931 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
4932 l_api_name,'Parameters: '
4933 ||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
4934 ||' ,Vat_Code: '
4935 ||p_vendor_rec.vat_code);
4936 END IF;
4937 END IF;
4938 ELSE
4939 FND_MESSAGE.SET_NAME('SQLAP', 'AP_INVALID_VAT_CODE');
4940 FND_MSG_PUB.ADD;
4941 -- Bug 8438716 Start
4942 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4943 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
4944 l_api_name,'After call to VAT_CODE validation... Parameters: '
4945 ||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
4946 ||' ,Vat_Code: '
4947 ||p_vendor_rec.vat_code);
4948 END IF;
4949 -- Bug 8438716 End
4950 END IF;
4951 END IF;
4952 END IF;
4953 -- Bug 6645014 ends
4954 -- B 9202909 ... end
4955
4956 ------------------------------------------------------------------------
4957 l_debug_info := 'Call to Validate receipt_required_flag';
4958 ------------------------------------------------------------------------
4959 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4960 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME|| l_api_name,l_debug_info);
4961 END IF;
4962 --
4963 -- Validate receipt_required_flag
4964 --
4965 IF p_vendor_rec.receipt_required_flag is NOT NULL
4966 AND p_vendor_rec.receipt_required_flag <> ap_null_char THEN
4967
4968 Validate_Lookups( 'RECEIPT_REQUIRED_FLAG', p_vendor_rec.receipt_required_flag,'YES/NO',
4969 'PO_LOOKUP_CODES',x_valid);
4970 IF NOT x_valid THEN
4971 x_return_status := FND_API.G_RET_STS_ERROR;
4972 IF g_source = 'IMPORT' THEN
4973 IF (Insert_Rejections(
4974 'AP_SUPPLIERS_INT',
4975 p_vendor_rec.vendor_interface_id,
4976 'AP_INVALID_REC_REQ_FLAG',
4977 g_user_id,
4978 g_login_id,
4979 'Validate_Vendor') <> TRUE) THEN
4980 --
4981 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4982 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
4983 l_api_name,'Parameters: '
4984 ||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
4985 ||' ,Receipt_Required_Flag: '||p_vendor_rec.receipt_required_flag);
4986 END IF;
4987 END IF;
4988
4989 ELSE
4990 -- Bug 5491139 hkaniven start --
4991 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_REC_REQ_FLAG');
4992 FND_MSG_PUB.ADD;
4993 -- Bug 5491139 hkaniven end --
4994 END IF;
4995 END IF;
4996 END IF;
4997
4998 ------------------------------------------------------------------------
4999 l_debug_info := 'Call to Validate Payment_Priority';
5000 ------------------------------------------------------------------------
5001 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5002 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
5003 l_api_name,l_debug_info);
5004 END IF;
5005 --
5006 -- Validate Payment_Priority
5007 --
5008 IF p_vendor_rec.payment_priority is NOT NULL
5009 AND p_vendor_rec.payment_priority <> ap_null_num THEN
5010
5011 Check_payment_priority(p_vendor_rec.payment_priority,
5012 x_valid
5013 );
5014 IF NOT x_valid THEN
5015 x_return_status := FND_API.G_RET_STS_ERROR;
5016 IF g_source = 'IMPORT' THEN
5017 IF (Insert_Rejections(
5018 'AP_SUPPLIERS_INT',
5019 p_vendor_rec.vendor_interface_id,
5020 'AP_INVALID_PAYMENT_PRIORITY',
5021 g_user_id,
5022 g_login_id,
5023 'Validate_Vendor') <> TRUE) THEN
5024 --
5025 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5026 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
5027 l_api_name,'Parameters: '
5028 ||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
5029 ||' ,Payment_Priority: '||p_vendor_rec.payment_priority);
5030 END IF;
5031 END IF;
5032 ELSE
5033 -- Bug 5491139 hkaniven start --
5034 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PAYMENT_PRIORITY');
5035 FND_MSG_PUB.ADD;
5036 -- Bug 5491139 hkaniven end --
5037 END IF;
5038 END IF;
5039 END IF;
5040
5041 ------------------------------------------------------------------------
5042 l_debug_info := 'Call to Validate the 1099_type value';
5043 ------------------------------------------------------------------------
5044 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5045 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
5046 l_api_name,l_debug_info);
5047 END IF;
5048 --
5049 -- Validate the 1099_type value
5050 --
5051 IF p_vendor_rec.type_1099 IS NOT NULL
5052 AND p_vendor_rec.type_1099 <> ap_null_char THEN
5053 Check_Valid_1099_type(p_vendor_rec.type_1099,
5054 p_vendor_rec.federal_reportable_flag,
5055 x_valid
5056 );
5057 IF NOT x_valid THEN
5058 x_return_status := FND_API.G_RET_STS_ERROR;
5059 IF g_source = 'IMPORT' THEN
5060 IF (Insert_Rejections(
5061 'AP_SUPPLIERS_INT',
5062 p_vendor_rec.vendor_interface_id,
5063 'AP_INCONSISTENT_1099_TYPE',
5064 g_user_id,
5065 g_login_id,
5066 'Validate_Vendor') <> TRUE) THEN
5067 --
5068 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5069 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
5070 l_api_name,'Parameters: '
5071 ||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
5072 ||' ,Type_1099: '||p_vendor_rec.type_1099
5073 ||' ,Federal_Reportable_Flag: '||p_vendor_rec.federal_reportable_flag);
5074 END IF;
5075 END IF;
5076 ELSE
5077 -- Bug 5491139 hkaniven start --
5078 FND_MESSAGE.SET_NAME('SQLAP','AP_INCONSISTENT_1099_TYPE');
5079 FND_MSG_PUB.ADD;
5080 -- Bug 5491139 hkaniven end --
5081 END IF;
5082 END IF;
5083 END IF;
5084
5085 --bug6050423.Added the below validation for num_1099 for
5086 --contractor individuals
5087 --bug6691916.commented the below if clause and added the one below that.
5088 --as per analysis,only organization lookup code of type individual
5089 --and foreign individual belong to individual suppliers category.
5090
5091 /* if ( UPPER(p_vendor_rec.vendor_type_lookup_code)='CONTRACTOR'
5092 AND UPPER(p_vendor_rec.organization_type_lookup_code) IN
5093 ('INDIVIDUAL','FOREIGN INDIVIDUAL',
5094 'PARTNERSHIP','FOREIGN PARTNERSHIP') )THEN*/
5095 if ( UPPER(p_vendor_rec.organization_type_lookup_code) IN
5096 ('INDIVIDUAL','FOREIGN INDIVIDUAL') )THEN
5097 ------------------------------------------------------------------------
5098 l_debug_info := 'Call to Validate the jgzz_fiscal_code value';
5099 ------------------------------------------------------------------------
5100 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5101 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
5102 l_api_name,l_debug_info);
5103 END IF;
5104 --
5105 -- Validate the jgzz_fiscal_code value
5106 --
5107
5108
5109 fnd_profile.get('DEFAULT_COUNTRY',l_default_country_code);
5110
5111 IF( l_default_country_code is null
5112 AND
5113 p_vendor_rec.set_of_books_id IS NOT NULL) then
5114
5115 -- Commented for Bug 6852552
5116
5117 /*
5118 SELECT FIN.vat_country_code
5119 INTO l_default_country_code
5120 FROM FINANCIALS_SYSTEM_PARAMS_ALL FIN,
5121 AP_SYSTEM_PARAMETERS_ALL ASP
5122 WHERE ASP.set_of_books_id=p_vendor_rec.set_of_books_id
5123 AND FIN.org_id = ASP.org_id;
5124 */
5125
5126 -- Added for Bug 6852552
5127 IF g_source = 'IMPORT' THEN
5128 IF (Insert_Rejections(
5129 'AP_SUPPLIERS_INT',
5130 p_vendor_rec.vendor_interface_id,
5131 'AP_DEFAULT_COUNTRY_CODE_NULL',
5132 g_user_id,
5133 g_login_id,
5134 'Validate_Vendor') <> TRUE) THEN
5135 --
5136 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5137 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
5138 l_api_name,'Default Country is Null');
5139 END IF;
5140 END IF;
5141
5142 ELSE
5143 FND_MESSAGE.SET_NAME('SQLAP','AP_DEFAULT_COUNTRY_CODE_NULL');
5144 FND_MSG_PUB.ADD;
5145 END IF;
5146
5147 -- End of Bug 6852552
5148 END IF;
5149
5150 IF p_vendor_rec.jgzz_fiscal_code IS NOT NULL
5151 AND p_vendor_rec.jgzz_fiscal_code <> ap_null_char
5152 AND l_default_country_code IS NOT NULL THEN
5153
5154 IF(is_taxpayer_id_valid(p_vendor_rec.jgzz_fiscal_code,
5155 l_default_country_code) = 'N') THEN
5156
5157 x_return_status := FND_API.G_RET_STS_ERROR;
5158 IF g_source = 'IMPORT' THEN
5159 IF (Insert_Rejections(
5160 'AP_SUPPLIERS_INT',
5161 p_vendor_rec.vendor_interface_id,
5162 'AP_INVALID_TAXPAYER_ID',
5163 g_user_id,
5164 g_login_id,
5165 'Validate_Vendor') <> TRUE) THEN
5166 --
5167 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5168 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
5169 l_api_name,'Parameters: '
5170 ||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
5171 ||' ,NUM_1099: '||p_vendor_rec.jgzz_fiscal_code
5172 ||' ,Federal_Reportable_Flag: '||p_vendor_rec.federal_reportable_flag);
5173 END IF;
5174 END IF;
5175 ELSE
5176 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_TAXPAYER_ID');
5177 FND_MSG_PUB.ADD;
5178 END IF;
5179 END IF;
5180 END IF;
5181
5182 END IF;--end check for contractor type suppliers
5183 --bug6050423 ends
5184
5185 ------------------------------------------------------------------------
5186 l_debug_info := 'Call to Validate the Employee_Id';
5187 ------------------------------------------------------------------------
5188 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5189 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
5190 l_api_name,l_debug_info);
5191 END IF;
5192 --
5193 -- Employee_Id validation
5194 --
5195 -- start added by abhsaxen for bug 7147735
5196 IF (p_vendor_rec.employee_id is null AND
5197 UPPER(p_vendor_rec.vendor_type_lookup_code)='EMPLOYEE') THEN
5198 x_return_status := FND_API.G_RET_STS_ERROR;
5199 IF g_source = 'IMPORT' THEN
5200 IF (Insert_Rejections(
5201 'AP_SUPPLIERS_INT',
5202 p_vendor_rec.vendor_interface_id,
5203 'AP_INVALID_EMPLOYEE_ID',
5204 g_user_id,
5205 g_login_id,
5206 'Validate_Vendor') <> TRUE) THEN
5207 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5208 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
5209 l_api_name,'Parameters: '
5210 ||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
5211 ||' ,Vendor_Type_Lookup_Code: '||p_vendor_rec.vendor_type_lookup_code
5212 ||' ,Employee_Id: NULL');
5213 END IF;
5214 END IF;
5215 ELSE
5216 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_EMPLOYEE_ID');
5217 FND_MSG_PUB.ADD;
5218 END IF;
5219 END IF;
5220 -- end added by abhsaxen for bug 7147735
5221 IF p_vendor_rec.employee_id is NOT NULL
5222 AND p_vendor_rec.employee_id <> fnd_api.g_miss_num THEN
5223 Check_Valid_Employee (p_vendor_rec.employee_id,
5224 x_valid);
5225 IF NOT x_valid THEN
5226 x_return_status := FND_API.G_RET_STS_ERROR;
5227 IF g_source = 'IMPORT' THEN
5228 IF (Insert_Rejections(
5229 'AP_SUPPLIERS_INT',
5230 p_vendor_rec.vendor_interface_id,
5231 'AP_INVALID_EMPLOYEE_ID',
5232 g_user_id,
5233 g_login_id,
5234 'Validate_Vendor') <> TRUE) THEN
5235 --
5236 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5237 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
5238 l_api_name,'Parameters: '
5239 ||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
5240 ||' ,Employee_Id: '||p_vendor_rec.employee_id);
5241 END IF;
5242 End If;
5243 /* ELSE
5244 -- Bug 5491139 hkaniven start --
5245 Fnd_Message.Set_Name('SQLAP','AP_INVALID_EMPLOYEE_ID');
5246 FND_MSG_PUB.ADD;*/ --Commented for Bug9398195
5247 -- Bug 5491139 hkaniven end --
5248 END IF;
5249 END IF;
5250 -- start added by abhsaxen for bug 7147735
5251 IF x_valid THEN
5252 BEGIN
5253 SELECT PPF.PARTY_ID
5254 INTO P_VENDOR_REC.PARTY_ID
5255 FROM PER_PEOPLE_F PPF
5256 WHERE PPF.PERSON_ID = P_VENDOR_REC.EMPLOYEE_ID
5257 AND TRUNC(SYSDATE) BETWEEN
5258 TRUNC(ppf.effective_start_date) AND
5259 TRUNC(ppf.effective_end_date);
5260 EXCEPTION
5261 WHEN OTHERS THEN
5262 x_return_status := FND_API.G_RET_STS_ERROR;
5263 IF g_source = 'IMPORT' THEN
5264 IF (Insert_Rejections(
5265 'AP_SUPPLIERS_INT',
5266 p_vendor_rec.vendor_interface_id,
5267 'AP_INVALID_EMPLOYEE_ID',
5268 g_user_id,
5269 g_login_id,
5270 'Validate_Vendor') <> TRUE) THEN
5271 --
5272 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5273 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
5274 l_api_name,'Parameters: '
5275 ||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
5276 ||' ,Vendor_Type_Lookup_Code: '||p_vendor_rec.vendor_type_lookup_code
5277 ||' ,Not able to get Party Id From Employee Id.');
5278 END IF;
5279 END IF;
5280 ELSE
5281 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_EMPLOYEE_ID');
5282 FND_MSG_PUB.ADD;
5283 END IF;
5284 END;
5285 -- end added by abhsaxen for bug 7147735
5286 END IF;
5287 END IF;
5288
5289 ------------------------------------------------------------------------
5290 l_debug_info := 'Call to Validate inspection_required_flag and receipt_required_flag';
5291 ------------------------------------------------------------------------
5292 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5293 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
5294 l_api_name,l_debug_info);
5295 END IF;
5296 --
5297 -- Validate inspection_required_flag and receipt_required_flag
5298 --
5299 IF (p_vendor_rec.inspection_required_flag is NOT NULL AND
5300 p_vendor_rec.receipt_required_flag is NOT NULL AND
5301 p_vendor_rec.inspection_required_flag <> ap_null_char AND
5302 p_vendor_rec.receipt_required_flag <> ap_null_char) THEN
5303
5304 Check_Valid_match_level(p_vendor_rec.inspection_required_flag,
5305 p_vendor_rec.receipt_required_flag,
5306 x_valid
5307 );
5308 IF NOT x_valid THEN
5309 x_return_status := FND_API.G_RET_STS_ERROR;
5310 IF g_source = 'IMPORT' THEN
5311 IF (Insert_Rejections(
5312 'AP_SUPPLIERS_INT',
5313 p_vendor_rec.vendor_interface_id,
5314 'AP_INCONSISTENT_INSPEC_RECEIPT',
5315 g_user_id,
5316 g_login_id,
5317 'Validate_Vendor') <> TRUE) THEN
5318 --
5319 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5320 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
5321 l_api_name,'Parameters: '
5322 ||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
5323 ||' ,Inspection_Required_Flag: '||p_vendor_rec.inspection_required_flag
5324 ||' ,Receipt_Required_Flag: '||p_vendor_rec.receipt_required_flag);
5325 END IF;
5326 END IF;
5327 ELSE
5328 -- Bug 5491139 hkaniven start --
5329 FND_MESSAGE.SET_NAME('SQLAP','AP_INCONSISTENT_INSPEC_RECEIPT');
5330 FND_MSG_PUB.ADD;
5331 -- Bug 5491139 hkaniven end --
5332 END IF;
5333 END IF;
5334 END IF;
5335
5336 ------------------------------------------------------------------------
5337 l_debug_info := 'Call to Validate Name Control';
5338 ------------------------------------------------------------------------
5339 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5340 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
5341 l_api_name,l_debug_info);
5342 END IF;
5343 --
5344 -- Validate the Name Control value
5345 --
5346 IF p_vendor_rec.name_control IS NOT NULL
5347 AND p_vendor_rec.name_control <> ap_null_char THEN
5348 Check_Valid_name_control(p_vendor_rec.name_control,
5349 x_valid);
5350 IF NOT x_valid THEN
5351 x_return_status := FND_API.G_RET_STS_ERROR;
5352 IF g_source = 'IMPORT' THEN
5353 IF (Insert_Rejections(
5354 'AP_SUPPLIERS_INT',
5355 p_vendor_rec.vendor_interface_id,
5356 'AP_INVALID_NAME_CONTROL',
5357 g_user_id,
5358 g_login_id,
5359 'Validate_Vendor') <> TRUE) THEN
5360 --
5361 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5362 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
5363 l_api_name,'Parameters: '
5364 ||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
5365 ||' ,Name_Control: '||p_vendor_rec.name_control);
5366 END IF;
5367 END IF;
5368 ELSE
5369 -- Bug 5491139 hkaniven start --
5370 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_NAME_CONTROL');
5371 FND_MSG_PUB.ADD;
5372 -- Bug 5491139 hkaniven end --
5373 END IF;
5374 END IF;
5375 END IF;
5376
5377 /*
5378 ------------------------------------------------------------------------
5379 l_debug_info := 'Call to Validate ship_via_lookup_code';
5380 ------------------------------------------------------------------------
5381 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5382 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
5383 l_api_name,l_debug_info);
5384 END IF;
5385 --
5386 -- Validate ship_via_lookup_code
5387 --
5388 IF (p_vendor_rec.ship_via_lookup_code is NOT NULL and
5389 p_vendor_rec.inventory_organization_id is NOT NULL AND
5390 p_vendor_rec.ship_via_lookup_code <> ap_null_char AND
5391 p_vendor_rec.inventory_organization_id <> ap_null_num) THEN
5392
5393 Check_Valid_ship_via(p_vendor_rec.ship_via_lookup_code,
5394 p_vendor_rec.inventory_organization_id,
5395 x_valid
5396 );
5397
5398 IF NOT x_valid THEN
5399 x_return_status := FND_API.G_RET_STS_ERROR;
5400 IF g_source = 'IMPORT' THEN
5401 IF (Insert_Rejections(
5402 'AP_SUPPLIERS_INT',
5403 p_vendor_rec.vendor_interface_id,
5404 'AP_INCONSISTENT_SHIP_INVENTORY',
5405 g_user_id,
5406 g_login_id,
5407 'Validate_Vendor') <> TRUE) THEN
5408 --
5409 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5410 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
5411 l_api_name,'Parameters: '
5412 ||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
5413 ||' ,Ship_Via_Lookup_Code: '||p_vendor_rec.ship_via_lookup_code
5414 ||' ,Inventory_Organization_Id: '||p_vendor_rec.inventory_organization_id);
5415 END IF;
5416 END IF;
5417 ELSE
5418 -- Bug 5491139 hkaniven start --
5419 FND_MESSAGE.SET_NAME('SQLAP','AP_INCONSISTENT_SHIP_INVENTORY');
5420 FND_MSG_PUB.ADD;
5421 -- Bug 5491139 hkaniven end --
5422 END IF;
5423 END IF;
5424 END IF;
5425 */
5426
5427 ------------------------------------------------------------------------
5428 l_debug_info := 'Call to Validate set_of_books_id';
5429 ------------------------------------------------------------------------
5430 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5431 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
5432 l_api_name,l_debug_info);
5433 END IF;
5434 --
5435 -- Set_of_books_Id validation
5436 --
5437 IF p_vendor_rec.set_of_books_id is NOT NULL AND
5438 p_vendor_rec.set_of_books_id <> ap_null_num THEN
5439 Check_Valid_Sob_Id(p_vendor_rec.set_of_books_id,
5440 x_valid);
5441
5442 IF NOT x_valid THEN
5443 x_return_status := FND_API.G_RET_STS_ERROR;
5444 IF g_source = 'IMPORT' THEN
5445 IF (Insert_Rejections(
5446 'AP_SUPPLIERS_INT',
5447 p_vendor_rec.vendor_interface_id,
5448 'AP_INVALID_SOB',
5449 g_user_id,
5450 g_login_id,
5451 'Validate_Vendor') <> TRUE) THEN
5452 --
5453 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5454 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
5455 l_api_name,'Parameters: '
5456 ||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
5457 ||' ,Set_Of_Books_Id: '||p_vendor_rec.set_of_books_id);
5458 END IF;
5459 END IF;
5460 ELSE
5461 -- Bug 5491139 hkaniven start --
5462 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_SOB');
5463 FND_MSG_PUB.ADD;
5464 -- Bug 5491139 hkaniven end --
5465 END IF;
5466 END IF;
5467 END IF;
5468
5469 ------------------------------------------------------------------------
5470 l_debug_info := 'Call to Check for duplicate Employee assignment';
5471 ------------------------------------------------------------------------
5472 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5473 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
5474 l_api_name,l_debug_info);
5475 END IF;
5476 --
5477 -- Check for duplicate employee assignment
5478 --
5479 IF (p_vendor_rec.employee_id IS NOT NULL and --bug7023543 removed condition p_vendor_rec.vendor_id
5480 p_vendor_rec.employee_id <> ap_null_num) THEN --is not null
5481 Chk_Dup_Employee(p_vendor_id,
5482 p_vendor_rec.employee_id,
5483 x_valid);
5484
5485 IF NOT x_valid THEN
5486 x_return_status := FND_API.G_RET_STS_ERROR;
5487 END IF;
5488 END IF;
5489
5490 ------------------------------------------------------------------------
5491 l_debug_info := 'Call to Check for duplicate vendor number';
5492 ------------------------------------------------------------------------
5493 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5494 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
5495 l_api_name,l_debug_info);
5496 END IF;
5497 --
5498 -- Check for potential duplicate vendor numbers in Interface table
5499 --
5500 IF p_vendor_rec.segment1 IS NOT NULL AND
5501 p_vendor_rec.segment1 <> ap_null_char THEN
5502 Chk_Dup_segment1_int(p_vendor_rec.segment1,
5503 x_valid);
5504
5505 IF NOT x_valid THEN
5506 x_return_status := FND_API.G_RET_STS_ERROR;
5507 IF g_source = 'IMPORT' THEN
5508 IF (Insert_Rejections(
5509 'AP_SUPPLIERS_INT',
5510 p_vendor_rec.vendor_interface_id,
5511 --'DUPLICATE SEGMENT1 INT',
5512 'AP_INVALID_SEGMENT1_INT',
5513 g_user_id,
5514 g_login_id,
5515 'Validate_Vendor') <> TRUE) THEN
5516 --
5517 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5518 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
5519 l_api_name,'Parameters: '
5520 ||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
5521 ||' ,Segment1: '||p_vendor_rec.segment1);
5522 END IF;
5523 END IF;
5524 ELSE
5525 -- Bug 5491139 hkaniven start --
5526 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_SEGMENT1_INT');
5527 FND_MSG_PUB.ADD;
5528 -- Bug 5491139 hkaniven end --
5529 END IF;
5530 END IF;
5531 END IF;
5532
5533 /*Open Issue 1 -- no longer checking name uniqueness
5534 ------------------------------------------------------------------------
5535 l_debug_info := 'Call to Check for duplicate vendor name in interface table';
5536 ------------------------------------------------------------------------
5537 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5538 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
5539 l_api_name,l_debug_info);
5540 END IF;
5541 --
5542 -- Check for duplicate vendor names in Interface table too
5543 --
5544 IF p_vendor_rec.vendor_name IS NOT NULL THEN
5545 Chk_Dup_Vendor_Name_new(p_vendor_rec.vendor_name,
5546 x_valid);
5547
5548 IF NOT x_valid THEN
5549 x_return_status := FND_API.G_RET_STS_ERROR;
5550 END IF;
5551 END IF;
5552 */
5553
5554 ------------------------------------------------------------------------
5555 l_debug_info := 'Call to Check Duplicate Vendor Number in PO_VENDORS';
5556 ------------------------------------------------------------------------
5557 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5558 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
5559 l_api_name,l_debug_info);
5560 END IF;
5561 --
5562 -- Check for duplicate vendor number
5563 --
5564 IF p_vendor_rec.segment1 IS NOT NULL AND
5565 p_vendor_rec.segment1 <> ap_null_char THEN
5566 Chk_Dup_Vendor_Number(p_vendor_id,
5567 p_vendor_rec.segment1,
5568 x_valid);
5569 IF NOT x_valid THEN
5570 x_return_status := FND_API.G_RET_STS_ERROR;
5571 --bug 5606948
5572 IF g_source = 'IMPORT' THEN
5573 IF (Insert_Rejections(
5574 'AP_SUPPLIERS_INT',
5575 p_vendor_rec.vendor_interface_id,
5576 'AP_VEN_DUPLICATE_VEN_NUM',
5577 g_user_id,
5578 g_login_id,
5579 'Validate_Vendor') <> TRUE) THEN
5580
5581 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5582 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
5583 l_api_name,'Parameters: '
5584 ||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
5585 ||' ,Segment1: '||p_vendor_rec.segment1);
5586 END IF;
5587 END IF;
5588 END IF;
5589 END IF;
5590 END IF;
5591
5592 ------------------------------------------------------------------------
5593 l_debug_info := 'Call to Validate receiving_routing_id';
5594 ------------------------------------------------------------------------
5595 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5596 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
5597 l_api_name,l_debug_info);
5598 END IF;
5599 --
5600 -- Validate receiving_routing_id
5601 --
5602 IF p_vendor_rec.receiving_routing_id is NOT NULL and
5603 p_vendor_rec.receiving_routing_id <> ap_null_num THEN
5604
5605 Chk_rcv_routing_id(p_vendor_rec.receiving_routing_id ,
5606 x_valid);
5607 IF NOT x_valid THEN
5608 x_return_status := FND_API.G_RET_STS_ERROR;
5609 IF g_source = 'IMPORT' THEN
5610 IF (Insert_Rejections(
5611 'AP_SUPPLIERS_INT',
5612 p_vendor_rec.vendor_interface_id,
5613 'AP_INVALID_RCV_ROUTING',
5614 g_user_id,
5615 g_login_id,
5616 'Validate_Vendor') <> TRUE) THEN
5617 --
5618 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5619 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
5620 l_api_name,'Parameters: '
5621 ||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
5622 ||' ,Receiving_Routing_Id: '||p_vendor_rec.receiving_routing_id);
5623 END IF;
5624 END IF;
5625 ELSE
5626 -- Bug 5491139 hkaniven start --
5627 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_RCV_ROUTING');
5628 FND_MSG_PUB.ADD;
5629 -- Bug 5491139 hkaniven end --
5630 END IF;
5631 END IF;
5632 END IF;
5633
5634 ------------------------------------------------------------------------
5635 l_debug_info := 'Call to Validate Employee type Vendor`';
5636 ------------------------------------------------------------------------
5637 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5638 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
5639 l_api_name,l_debug_info);
5640 END IF;
5641 --
5642 -- Employee type Vendor validations
5643 --
5644
5645 --
5646 IF p_vendor_rec.vendor_type_lookup_code is NOT NULL and
5647 p_vendor_rec.vendor_type_lookup_code <> ap_null_char THEN
5648
5649 employee_type_checks(p_vendor_rec.vendor_type_lookup_code,
5650 p_vendor_rec.employee_id,
5651 x_valid
5652 );
5653
5654 IF NOT x_valid THEN
5655 x_return_status := FND_API.G_RET_STS_ERROR;
5656 IF g_source = 'IMPORT' THEN
5657 IF (Insert_Rejections(
5658 'AP_SUPPLIERS_INT',
5659 p_vendor_rec.vendor_interface_id,
5660 'AP_INCONSISTENT_VENDOR_TYPE',
5661 g_user_id,
5662 g_login_id,
5663 'Validate_Vendor') <> TRUE) THEN
5664 --
5665 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5666 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
5667 l_api_name,'Parameters: '
5668 ||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
5669 ||' ,Vendor_Type_Lookup_Code: '||p_vendor_rec.vendor_type_lookup_code
5670 ||' ,Employee_Id: '||p_vendor_rec.employee_id);
5671 END IF;
5672 END IF;
5673 ELSE
5674
5675 -- Bug 5491139 hkaniven start --
5676 FND_MESSAGE.SET_NAME('SQLAP','AP_INCONSISTENT_VENDOR_TYPE');
5677 FND_MSG_PUB.ADD;
5678 -- Bug 5491139 hkaniven end --
5679
5680 END IF;
5681 END IF;
5682 END IF;
5683
5684 ------------------------------------------------------------------------
5685 l_debug_info := 'Call to Validate Invoice Currency Code';
5686 ------------------------------------------------------------------------
5687 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5688 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
5689 l_api_name,l_debug_info);
5690 END IF;
5691
5692 IF (p_vendor_rec.invoice_currency_code is not null
5693 and p_vendor_rec.invoice_currency_code <> ap_null_char) THEN
5694 val_currency_code(p_vendor_rec.invoice_currency_code,
5695 x_valid);
5696 IF NOT x_valid THEN
5697 x_return_status := FND_API.G_RET_STS_ERROR;
5698 IF g_source = 'IMPORT' THEN
5699 IF (Insert_Rejections(
5700 'AP_SUPPLIERS_INT',
5701 p_vendor_rec.vendor_interface_id,
5702 'AP_INVALID_INV_CURRENCY',
5703 g_user_id,
5704 g_login_id,
5705 'Validate_Vendor') <> TRUE) THEN
5706 --
5707 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5708 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
5709 l_api_name,'Parameters: '
5710 ||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
5711 ||' ,Invoice_Currency_Code: '||p_vendor_rec.invoice_currency_code);
5712 END IF;
5713 END IF;
5714 ELSE
5715
5716 -- Bug 5491139 hkaniven start --
5717 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_INV_CURRENCY');
5718 FND_MSG_PUB.ADD;
5719 -- Bug 5491139 hkaniven end --
5720
5721 END IF;
5722 END IF;
5723 END IF;
5724
5725 ------------------------------------------------------------------------
5726 l_debug_info := 'Call to Validate Payment Currency Code';
5727 ------------------------------------------------------------------------
5728
5729 IF (p_vendor_rec.payment_currency_code is not null
5730 AND p_vendor_rec.invoice_currency_code is not null and
5731 p_vendor_rec.payment_currency_code <> ap_null_char and
5732 p_vendor_rec.invoice_currency_code <> ap_null_char) THEN
5733 payment_currency_code_valid(p_vendor_rec.payment_currency_code,
5734 p_vendor_rec.invoice_currency_code,
5735 x_valid);
5736
5737 IF NOT x_valid THEN
5738 x_return_status := FND_API.G_RET_STS_ERROR;
5739 IF g_source = 'IMPORT' THEN
5740 IF (Insert_Rejections(
5741 'AP_SUPPLIERS_INT',
5742 p_vendor_rec.vendor_interface_id,
5743 'AP_INVALID_PAY_CURRENCY',
5744 g_user_id,
5745 g_login_id,
5746 'Validate_Vendor') <> TRUE) THEN
5747 --
5748 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5749 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
5750 l_api_name,'Parameters: '
5751 ||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
5752 ||' ,Invoice_Currency_Code: '||p_vendor_rec.invoice_currency_code
5753 ||' ,Payment_Currency_Code: '||p_vendor_rec.payment_currency_code);
5754 END IF;
5755 END IF;
5756 ELSE
5757
5758 -- Bug 5491139 hkaniven start --
5759 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PAY_CURRENCY');
5760 FND_MSG_PUB.ADD;
5761 -- Bug 5491139 hkaniven end --
5762
5763 END IF;
5764 END IF;
5765 END IF;
5766
5767 ------------------------------------------------------------------------
5768 l_debug_info := 'Call to Validate Income Tax Type';
5769 ------------------------------------------------------------------------
5770 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5771 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
5772 l_api_name,l_debug_info);
5773 END IF;
5774 --
5775 -- Validate the Income Tax Type
5776 --
5777 IF p_vendor_rec.type_1099 IS NOT NULL AND
5778 p_vendor_rec.type_1099 <> ap_null_char THEN
5779 Val_Income_Tax_Type(p_vendor_rec.type_1099,
5780 x_valid);
5781 IF NOT x_valid THEN
5782 x_return_status := FND_API.G_RET_STS_ERROR;
5783 IF g_source = 'IMPORT' THEN
5784 IF (Insert_Rejections(
5785 'AP_SUPPLIERS_INT',
5786 p_vendor_rec.vendor_interface_id,
5787 'AP_INVALID_TYPE_1099',
5788 g_user_id,
5789 g_login_id,
5790 'Validate_Vendor') <> TRUE) THEN
5791 --
5792 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5793 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
5794 l_api_name,'Parameters: '
5795 ||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
5796 ||' ,Type_1099: '||p_vendor_rec.type_1099);
5797 END IF;
5798 END IF;
5799 ELSE
5800
5801 -- Bug 5491139 hkaniven start --
5802 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_TYPE_1099');
5803 FND_MSG_PUB.ADD;
5804 -- Bug 5491139 hkaniven end --
5805
5806 END IF;
5807 END IF;
5808 END IF;
5809
5810 --GTAS Project change Bug#13464635
5811
5812 IF g_source = 'IMPORT' THEN --Introduced this condition for bug#13681997
5813
5814 ------------------------------------------------------------------------
5815 l_debug_info:= 'Call to Validate GDF attributes for FV';
5816 ------------------------------------------------------------------------
5817 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5818 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
5819 END IF;
5820
5821 CHECK_GDF(
5822 p_vendor_rec.vendor_interface_id,
5823 x_valid,
5824 current_calling_sequence);
5825
5826 IF NOT x_valid THEN
5827 x_return_status := FND_API.G_RET_STS_ERROR;
5828
5829 IF g_source = 'IMPORT' THEN
5830 IF (Insert_Rejections(
5831 'AP_SUPPLIERS_INT',
5832 p_vendor_rec.vendor_interface_id,
5833 'AP_INCORRECT_GTAS_INFO',
5834 g_user_id,
5835 g_login_id,
5836 'Validate_Vendor') <> TRUE) THEN
5837 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5838 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
5839 l_api_name,'Parameters: '
5840 ||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id);
5841 END IF;
5842 END IF;
5843 ELSE
5844 FND_MESSAGE.SET_NAME('SQLAP','AP_INCORRECT_GTAS_INFO');
5845 FND_MSG_PUB.ADD;
5846 END IF;
5847 END IF;
5848
5849 IF(AP_INVOICES_UTILITY_PKG.FV_ENABLED)THEN
5850
5851 --Below SELECT statment fetches latest/default
5852 --GTAS attributes into local record, which are
5853 --populated in interface table through FV Validation API
5854
5855 SELECT Global_Attribute4,
5856 Global_Attribute5,
5857 Global_Attribute_Category /*Bug#15977829*/
5858 INTO p_vendor_rec.Global_Attribute4,
5859 p_vendor_rec.Global_Attribute5,
5860 p_vendor_rec.Global_Attribute_Category
5861 FROM AP_SUPPLIERS_INT
5862 WHERE vendor_interface_id =
5863 p_vendor_rec.vendor_interface_id;
5864
5865 END IF;
5866
5867 END IF;
5868
5869 --End Bug#13464635
5870
5871 IF p_mode = 'U' THEN
5872
5873 --update validations
5874
5875 /* open issue 1 -- no longer need to check for name duplicates
5876 ------------------------------------------------------------------------
5877 l_debug_info := 'Call to Validate vendor name';
5878 ------------------------------------------------------------------------
5879 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5880 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
5881 l_api_name,l_debug_info);
5882 END IF;
5883 --
5884 -- Check for duplicate vendor names
5885 --
5886 IF p_vendor_rec.vendor_name IS NOT NULL THEN
5887 Chk_Dup_Vendor_Name_update(p_vendor_rec.vendor_name,
5888 p_vendor_id,
5889 x_valid);
5890
5891 IF NOT x_valid THEN
5892 x_return_status := FND_API.G_RET_STS_ERROR;
5893 END IF;
5894 END IF;
5895 */
5896 null;
5897 ------------------------------------------------------------------------
5898 l_debug_info := 'Call for prohibiting update of CCR vendor';
5899 ------------------------------------------------------------------------
5900 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5901 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME|| l_api_name,l_debug_info);
5902 END IF;
5903
5904 --
5905 --calling the API to check if we are trying to update
5906 --any restricted field on a CCR vendor. Added for R12
5907 --FSIO gap.(bug6053476)
5908 --
5909
5910 update_supplier_JFMIP_checks(p_vendor_rec,
5911 p_calling_prog,
5912 x_valid);
5913
5914 IF NOT x_valid THEN
5915 x_return_status := FND_API.G_RET_STS_ERROR;
5916 IF g_source = 'IMPORT' THEN
5917 IF (Insert_Rejections(
5918 'AP_SUPPLIERS_INT',
5919 p_vendor_rec.vendor_interface_id,
5920 'AP_CCR_NO_UPDATE',
5921 g_user_id,
5922 g_login_id,
5923 'Validate_Vendor') <> TRUE) THEN
5924
5925 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5926 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
5927 l_api_name,'Parameters: '
5928 ||'Cannot Update CCR vendor, Vendor_id'||p_vendor_rec.vendor_id);
5929 END IF;
5930 END IF;
5931
5932 ELSE
5933
5934 FND_MESSAGE.SET_NAME('SQLAP','AP_CANT_UPDATE_CCR_VENDOR');
5935 FND_MSG_PUB.ADD;
5936
5937 END IF;
5938 END IF;
5939
5940 ELSIF p_mode = 'I' THEN
5941
5942 --bug 5606948
5943 ------------------------------------------------------------------------
5944 l_debug_info := 'Call to Validate vendor name';
5945 ------------------------------------------------------------------------
5946 if g_source= 'IMPORT' Then
5947 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5948 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
5949 l_api_name,l_debug_info);
5950 END IF;
5951 --
5952 -- Check for duplicate vendor names
5953 --
5954 IF p_vendor_rec.vendor_name IS NOT NULL THEN
5955 -- Bug 6775797. Added parameters vendor type and employee id
5956 -- Bug 6939863. Changed from update to new since this is
5957 -- insert mode.
5958
5959 Chk_Dup_Vendor_Name_new(p_vendor_rec.vendor_name,
5960 p_vendor_id,
5961 p_vendor_rec.vendor_type_lookup_code,
5962 p_vendor_rec.employee_id,
5963 x_valid);
5964
5965 IF NOT x_valid THEN
5966 x_return_status := FND_API.G_RET_STS_ERROR;
5967
5968
5969 IF (Insert_Rejections(
5970 'AP_SUPPLIERS_INT',
5971 p_vendor_rec.vendor_interface_id,
5972 'AP_VEN_DUPLICATE_NAME',
5973 g_user_id,
5974 g_login_id,
5975 'Validate_Vendor') <> TRUE) THEN
5976
5977 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5978 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
5979 l_api_name,'Parameters: '
5980 ||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
5981 ||' ,Vendor_name: '||p_vendor_rec.vendor_name);
5982 END IF;
5983
5984 END IF;
5985 END IF;
5986
5987
5988 END IF;
5989 END IF;
5990 ------------------------------------------------------------------------
5991 l_debug_info := 'Call to Validate payee';
5992 ------------------------------------------------------------------------
5993 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5994 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
5995 l_api_name,l_debug_info);
5996 END IF;
5997 --
5998 -- Calling IBY Payee Validation API
5999 --
6000 IF p_vendor_rec.ext_payee_rec.payer_org_type IS NOT NULL THEN
6001
6002 /*Bug 7572325- added the call to count_and_get to get the count
6003 before call to IBY API in local variable*/
6004 FND_MSG_PUB.Count_And_Get(p_count => l_msg_count,
6005 p_data => l_msg_data);
6006
6007 IBY_DISBURSEMENT_SETUP_PUB.Validate_External_Payee
6008 ( p_api_version => 1.0,
6009 p_init_msg_list => FND_API.G_FALSE,
6010 p_ext_payee_rec => p_vendor_rec.ext_payee_rec,
6011 x_return_status => l_payee_return_status,
6012 x_msg_count => l_payee_msg_count,
6013 x_msg_data => l_payee_msg_data);
6014
6015 IF l_payee_return_status = FND_API.G_RET_STS_SUCCESS THEN
6016 x_payee_valid := 'V';
6017 ELSE
6018 x_payee_valid := 'F';
6019 x_return_status := l_payee_return_status;
6020 IF g_source = 'IMPORT' THEN
6021 IF (Insert_Rejections(
6022 'AP_SUPPLIERS_INT',
6023 p_vendor_rec.vendor_interface_id,
6024 --'AP_INVALID_PAYEE',
6025 'AP_INVALID_PAYEE_INFO',/*bug 7572325*/
6026 g_user_id,
6027 g_login_id,
6028 'Validate_Vendor') <> TRUE) THEN
6029 --
6030 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6031 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
6032 l_api_name,'Parameters: '
6033 ||' Vendor_Interface_Id:' ||
6034 p_vendor_rec.vendor_interface_id);
6035 END IF;
6036 END IF;
6037
6038 --bug 7572325 addded below file logging for improved exception
6039 --message handling
6040 IF (l_payee_msg_data IS NOT NULL) THEN
6041 -- Print the error returned from the IBY service even if the debug
6042 -- mode is off
6043 AP_IMPORT_UTILITIES_PKG.Print('Y', '1)Error in '||l_debug_info||
6044 '---------------------->'||
6045 l_payee_msg_data);
6046
6047 ELSE
6048 -- If the l_payee_msg_data is null then the IBY service returned
6049 -- more than one error. The calling module will need to get
6050 -- them from the message stack
6051 FOR i IN l_msg_count..l_payee_msg_count
6052 LOOP
6053 l_error_code := FND_MSG_PUB.Get(p_msg_index => i,
6054 p_encoded => 'F');
6055
6056 If i = l_msg_count then
6057 l_error_code := '1)Error in '||l_debug_info||
6058 '---------------------->'||
6059 l_error_code;
6060 end if;
6061
6062 AP_IMPORT_UTILITIES_PKG.Print('Y', l_error_code);
6063
6064 END LOOP;
6065
6066 END IF;--bug 7572325
6067 ELSE
6068
6069 -- Bug 5491139 hkaniven start --
6070 --FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PAYEE'); --bug 7572325
6071 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PAYEE_INFO'); --bug 7572325
6072 FND_MSG_PUB.ADD;
6073 -- Bug 5491139 hkaniven end --
6074
6075 END IF;
6076 END IF;
6077 ELSE
6078 x_payee_valid := 'N';
6079 END IF; --payee valid
6080
6081 ------------------------------------------------------------------------
6082 l_debug_info := 'Call to Validate party_id';
6083 ------------------------------------------------------------------------
6084 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6085 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
6086 l_api_name,l_debug_info);
6087 END IF;
6088 --
6089 -- Check for validity of party_id
6090 --
6091 IF p_vendor_rec.party_id IS NOT NULL and
6092 p_vendor_rec.party_id <> ap_null_num THEN
6093 Check_Valid_Party_ID(p_vendor_rec.party_id,
6094 x_valid);
6095
6096 IF NOT x_valid THEN
6097 x_party_valid := 'F';
6098 x_return_status := FND_API.G_RET_STS_ERROR;
6099 IF g_source = 'IMPORT' THEN
6100 IF (Insert_Rejections(
6101 'AP_SUPPLIERS_INT',
6102 p_vendor_rec.vendor_interface_id,
6103 'AP_INVALID_PARTY_ID',
6104 g_user_id,
6105 g_login_id,
6106 'Validate_Vendor') <> TRUE) THEN
6107 --
6108 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6109 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
6110 l_api_name,'Parameters: '
6111 ||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
6112 ||' ,Party_Id: '||p_vendor_rec.party_id);
6113 END IF;
6114 END IF;
6115 ELSE
6116
6117 -- Bug 5491139 hkaniven start --
6118 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PARTY_ID');
6119 FND_MSG_PUB.ADD;
6120 -- Bug 5491139 hkaniven end --
6121
6122 END IF;
6123 ELSE
6124 x_party_valid := 'V';
6125 END IF;
6126 ELSE
6127 x_party_valid := 'N';
6128
6129 END IF;
6130
6131
6132 --insert validations
6133
6134 ------------------------------------------------------------------------
6135 l_debug_info := 'Call to Validate vendor number';
6136 ------------------------------------------------------------------------
6137 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6138 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
6139 l_api_name,l_debug_info);
6140 END IF;
6141 --
6142 -- Check for Null vendor number
6143 --
6144 IF p_vendor_rec.segment1 IS NULL and
6145 p_vendor_rec.segment1 <> ap_null_char THEN
6146 Chk_Null_Vendor_Number(p_vendor_rec.segment1,
6147 x_valid);
6148 IF NOT x_valid THEN
6149 x_return_status := FND_API.G_RET_STS_ERROR;
6150 IF g_source = 'IMPORT' THEN
6151 IF (Insert_Rejections(
6152 'AP_SUPPLIERS_INT',
6153 p_vendor_rec.vendor_interface_id,
6154 'AP_NULL_VENDOR_NUMBER', --bug 5568861
6155 g_user_id,
6156 g_login_id,
6157 'Validate_Vendor') <> TRUE) THEN
6158 --
6159 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6160 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
6161 l_api_name,'Parameters: '
6162 ||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
6163 ||' ,Segment1: '||p_vendor_rec.segment1);
6164 END IF;
6165 END IF;
6166 ELSE
6167
6168 -- Bug 5491139 hkaniven start --
6169 FND_MESSAGE.SET_NAME('SQLAP','AP_NULL_VENDOR_NUMBER');
6170 FND_MSG_PUB.ADD;
6171 -- Bug 5491139 hkaniven end --
6172
6173 END IF;
6174 END IF;
6175 END IF;
6176
6177 IF p_calling_prog <> 'ISETUP' THEN
6178
6179 --addl insert validations
6180
6181 ---------------------------------------------------------------
6182 l_debug_info := 'Call to Validate one_time_flag';
6183 ---------------------------------------------------------------
6184 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6185 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
6186 l_api_name,l_debug_info);
6187 END IF;
6188 --
6189 -- Validate one_time_flag
6190 --
6191 IF p_vendor_rec.one_time_flag is NOT NULL and
6192 p_vendor_rec.one_time_flag <> ap_null_char THEN
6193
6194 Validate_Lookups(
6195 'ONE_TIME_FLAG',p_vendor_rec.one_time_flag,'YES/NO',
6196 'PO_LOOKUP_CODES',x_valid);
6197 IF NOT x_valid THEN
6198 x_return_status := FND_API.G_RET_STS_ERROR;
6199 IF g_source = 'IMPORT' THEN
6200 IF (Insert_Rejections(
6201 'AP_SUPPLIERS_INT',
6202 p_vendor_rec.vendor_interface_id,
6203 'AP_INVALID_ONE_TIME_FLAG',
6204 g_user_id,
6205 g_login_id,
6206 'Validate_Vendor') <> TRUE) THEN
6207 --
6208 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6209 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
6210 l_api_name,'Parameters: '
6211 ||' Vendor_Interface_Id:'
6212 ||p_vendor_rec.vendor_interface_id
6213 ||' ,One_Time_Flag: '||p_vendor_rec.one_time_flag);
6214 END IF;
6215 END IF;
6216 ELSE
6217
6218 -- Bug 5491139 hkaniven start --
6219 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_ONE_TIME_FLAG');
6220 FND_MSG_PUB.ADD;
6221 -- Bug 5491139 hkaniven end --
6222
6223 END IF;
6224 END IF;
6225 END IF;
6226
6227 ----------------------------------------------------------------
6228 l_debug_info := 'Call to Validate Summary_flag';
6229 ---------------------------------------------------------------
6230 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6231 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
6232 l_api_name,l_debug_info);
6233 END IF;
6234 --
6235 -- Validate Summary_flag
6236 --
6237 IF p_vendor_rec.summary_flag is NOT NULL AND
6238 p_vendor_rec.summary_flag <> ap_null_char THEN
6239
6240 Validate_Lookups(
6241 'SUMMARY_FLAG',p_vendor_rec.summary_flag,'YES/NO',
6242 'PO_LOOKUP_CODES',x_valid);
6243 IF NOT x_valid THEN
6244 x_return_status := FND_API.G_RET_STS_ERROR;
6245 IF g_source = 'IMPORT' THEN
6246 IF (Insert_Rejections(
6247 'AP_SUPPLIERS_INT',
6248 p_vendor_rec.vendor_interface_id,
6249 'AP_INVALID_SUMMARY_FLAG',
6250 g_user_id,
6251 g_login_id,
6252 'Validate_Vendor') <> TRUE) THEN
6253 --
6254 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6255 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
6256 l_api_name,'Parameters: '
6257 ||' Vendor_Interface_Id:'
6258 ||p_vendor_rec.vendor_interface_id
6259 ||' ,Summary_Flag: '||p_vendor_rec.summary_flag);
6260 END IF;
6261 END IF;
6262 ELSE
6263 -- Bug 5491139 hkaniven start --
6264 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_SUMMARY_FLAG');
6265 FND_MSG_PUB.ADD;
6266 -- Bug 5491139 hkaniven end --
6267 END IF;
6268 END IF;
6269 END IF;
6270
6271 ----------------------------------------------------------------
6272 l_debug_info := 'Call to Validate Enabled_flag';
6273 ---------------------------------------------------------------
6274 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6275 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
6276 l_api_name,l_debug_info);
6277 END IF;
6278 --
6279 -- Validate Enabled_flag
6280 --
6281 IF p_vendor_rec.enabled_flag is NOT NULL
6282 AND p_vendor_rec.enabled_flag <> ap_null_char THEN
6283
6284 Validate_Lookups(
6285 'ENABLED_FLAG',p_vendor_rec.enabled_flag,'YES/NO',
6286 'PO_LOOKUP_CODES',x_valid);
6287 IF NOT x_valid THEN
6288 x_return_status := FND_API.G_RET_STS_ERROR;
6289 IF g_source = 'IMPORT' THEN
6290 IF (Insert_Rejections(
6291 'AP_SUPPLIERS_INT',
6292 p_vendor_rec.vendor_interface_id,
6293 'AP_INVALID_ENABLED_FLAG',
6294 g_user_id,
6295 g_login_id,
6296 'Validate_Vendor') <> TRUE) THEN
6297 --
6298 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6299 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
6300 l_api_name,'Parameters: '
6301 ||' Vendor_Interface_Id:'
6302 ||p_vendor_rec.vendor_interface_id
6303 ||' ,Enabled_Flag: '||p_vendor_rec.enabled_flag);
6304 END IF;
6305 END IF;
6306 ELSE
6307 -- Bug 5491139 hkaniven start --
6308 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_ENABLED_FLAG');
6309 FND_MSG_PUB.ADD;
6310 -- Bug 5491139 hkaniven end --
6311 END IF;
6312 END IF;
6313 END IF;
6314
6315 ---------------------------------------------------------------
6316 l_debug_info := 'Call to Validate vendor_type_lookup_code';
6317 ---------------------------------------------------------------
6318 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6319 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
6320 l_api_name,l_debug_info);
6321 END IF;
6322
6323 -- Validate vendor_type_lookup_code
6324 --
6325 IF p_vendor_rec.vendor_type_lookup_code is NOT NULL
6326 AND p_vendor_rec.vendor_type_lookup_code <> ap_null_char THEN
6327
6328 Validate_Lookups( 'VENDOR_TYPE_LOOKUP_CODE',
6329 p_vendor_rec.vendor_type_lookup_code,'VENDOR TYPE',
6330 'PO_LOOKUP_CODES',x_valid);
6331 IF NOT x_valid THEN
6332 x_return_status := FND_API.G_RET_STS_ERROR;
6333 IF g_source = 'IMPORT' THEN
6334 IF (Insert_Rejections(
6335 'AP_SUPPLIERS_INT',
6336 p_vendor_rec.vendor_interface_id,
6337 'AP_INVALID_VENDOR_TYPE',
6338 g_user_id,
6339 g_login_id,
6340 'Validate_Vendor') <> TRUE) THEN
6341 --
6342 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6343 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
6344 l_api_name,'Parameters: '
6345 ||' Vendor_Interface_Id:'
6346 ||p_vendor_rec.vendor_interface_id
6347 ||' ,Vendor_Type_Lookup_Code: '
6348 ||p_vendor_rec.vendor_type_lookup_code);
6349 END IF;
6350 END IF;
6351 ELSE
6352 -- Bug 5491139 hkaniven start --
6353 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_VENDOR_TYPE');
6354 FND_MSG_PUB.ADD;
6355 -- Bug 5491139 hkaniven end --
6356 END IF;
6357 END IF;
6358 END IF;
6359
6360 ---------------------------------------------------------------
6361 l_debug_info := 'Call to Validate pay_date_basis_lookup_code';
6362 ----------------------------------------------------------------
6363 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6364 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
6365 l_api_name,l_debug_info);
6366 END IF;
6367 --
6368 -- Validate pay_date_basis_lookup_code
6369 --
6370 IF p_vendor_rec.pay_date_basis_lookup_code is NOT NULL
6371 AND p_vendor_rec.pay_date_basis_lookup_code <> ap_null_char THEN
6372 Validate_Lookups( 'PAY_DATE_BASIS_LOOKUP_CODE',
6373 p_vendor_rec.pay_date_basis_lookup_code,
6374 'PAY DATE BASIS',
6375 'PO_LOOKUP_CODES',x_valid);
6376 IF NOT x_valid THEN
6377 x_return_status := FND_API.G_RET_STS_ERROR;
6378 IF g_source = 'IMPORT' THEN
6379 IF (Insert_Rejections(
6380 'AP_SUPPLIERS_INT',
6381 p_vendor_rec.vendor_interface_id,
6382 'AP_INVALID_PAY_DATE_BASIS',
6383 g_user_id,
6384 g_login_id,
6385 'Validate_Vendor') <> TRUE) THEN
6386 --
6387 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6388 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
6389 l_api_name,'Parameters: '
6390 ||' Vendor_Interface_Id:'
6391 ||p_vendor_rec.vendor_interface_id
6392 ||' ,Pay_Date_Basis_Lookup_Code: '
6393 || p_vendor_rec.pay_date_basis_lookup_code);
6394 END IF;
6395 END IF;
6396 ELSE
6397 -- Bug 5491139 hkaniven start --
6398 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PAY_DATE_BASIS');
6399 FND_MSG_PUB.ADD;
6400 -- Bug 5491139 hkaniven end --
6401 END IF;
6402 END IF;
6403 END IF;
6404 ---------------------------------------------------------------
6405 l_debug_info := 'Call to Validate pay_group_lookup_code';
6406 ----------------------------------------------------------------
6407 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6408 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
6409 l_api_name,l_debug_info);
6410 END IF;
6411 --
6412 -- Validate pay_group_lookup_code
6413 --
6414 IF p_vendor_rec.pay_group_lookup_code is NOT NULL
6415 AND p_vendor_rec.pay_group_lookup_code <> ap_null_char THEN
6416
6417 Validate_Lookups( 'PAY_GROUP_LOOKUP_CODE',
6418 p_vendor_rec.pay_group_lookup_code,'PAY GROUP',
6419 'PO_LOOKUP_CODES',x_valid);
6420 IF NOT x_valid THEN
6421 x_return_status := FND_API.G_RET_STS_ERROR;
6422 IF g_source = 'IMPORT' THEN
6423 IF (Insert_Rejections(
6424 'AP_SUPPLIERS_INT',
6425 p_vendor_rec.vendor_interface_id,
6426 'AP_INVALID_PAY_GROUP',
6427 g_user_id,
6428 g_login_id,
6429 'Validate_Vendor') <> TRUE) THEN
6430 --
6431 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6432 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
6433 l_api_name,'Parameters: '
6434 ||' Vendor_Interface_Id:'
6435 ||p_vendor_rec.vendor_interface_id
6436 ||' ,Pay_Group_Lookup_Code:'
6437 ||p_vendor_rec.pay_group_lookup_code);
6438 END IF;
6439 END IF;
6440 ELSE
6441 -- Bug 5491139 hkaniven start --
6442 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PAY_GROUP');
6443 FND_MSG_PUB.ADD;
6444 -- Bug 5491139 hkaniven end --
6445
6446 END IF;
6447 END IF;
6448 END IF;
6449
6450 ----------------------------------------------------------------
6451 l_debug_info := 'Call to Validate org type_lookup code';
6452 ---------------------------------------------------------------
6453 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6454 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
6455 l_api_name,l_debug_info);
6456 END IF;
6457 --
6458 -- Validate organization_type_lookup_code
6459 --
6460 IF p_vendor_rec.organization_type_lookup_code is NOT NULL
6461 AND p_vendor_rec.organization_type_lookup_code <> ap_null_char THEN
6462
6463 Validate_Lookups( 'ORGANIZATION_TYPE_LOOKUP_CODE',
6464 p_vendor_rec.organization_type_lookup_code,
6465 'ORGANIZATION TYPE',
6466 'PO_LOOKUP_CODES',x_valid);
6467 IF NOT x_valid THEN
6468 x_return_status := FND_API.G_RET_STS_ERROR;
6469 IF g_source = 'IMPORT' THEN
6470 IF (Insert_Rejections(
6471 'AP_SUPPLIERS_INT',
6472 p_vendor_rec.vendor_interface_id,
6473 'AP_INVALID_ORG_TYPE',
6474 g_user_id,
6475 g_login_id,
6476 'Validate_Vendor') <> TRUE) THEN
6477 --
6478 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6479 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
6480 l_api_name,'Parameters: '
6481 ||' Vendor_Interface_Id:'
6482 ||p_vendor_rec.vendor_interface_id
6483 ||' ,Organization_Type_Lookup_Code:'
6484 ||p_vendor_rec.organization_type_lookup_code);
6485 END IF;
6486 END IF;
6487 ELSE
6488 -- Bug 5491139 hkaniven start --
6489 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_ORG_TYPE');
6490 FND_MSG_PUB.ADD;
6491 -- Bug 5491139 hkaniven end --
6492 END IF;
6493 END IF;
6494 END IF;
6495
6496 ---------------------------------------------------------------
6497 l_debug_info := 'Call to Validate minority_group_lookup_code';
6498 ---------------------------------------------------------------
6499 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6500 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
6501 l_api_name,l_debug_info);
6502 END IF;
6503 --
6504 -- Validate minority_group_lookup_code
6505 --
6506 IF p_vendor_rec.minority_group_lookup_code is NOT NULL
6507 AND p_vendor_rec.minority_group_lookup_code <> ap_null_char THEN
6508
6509 Validate_Lookups( 'MINORITY_GROUP_LOOKUP_CODE',
6510 p_vendor_rec.minority_group_lookup_code,'MINORITY GROUP',
6511 'PO_LOOKUP_CODES',x_valid);
6512 IF NOT x_valid THEN
6513 x_return_status := FND_API.G_RET_STS_ERROR;
6514 IF g_source = 'IMPORT' THEN
6515 IF (Insert_Rejections(
6516 'AP_SUPPLIERS_INT',
6517 p_vendor_rec.vendor_interface_id,
6518 'AP_INVALID_MINORITY_GROUP',
6519 g_user_id,
6520 g_login_id,
6521 'Validate_Vendor') <> TRUE) THEN
6522 --
6523 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6524 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
6525 l_api_name,'Parameters: '
6526 ||' Vendor_Interface_Id:'
6527 ||p_vendor_rec.vendor_interface_id
6528 ||' ,Minority_Group_Lookup_Code:'
6529 ||p_vendor_rec.minority_group_lookup_code);
6530 END IF;
6531 END IF;
6532 ELSE
6533 -- Bug 5491139 hkaniven start --
6534 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_MINORITY_GROUP');
6535 FND_MSG_PUB.ADD;
6536 -- Bug 5491139 hkaniven end --
6537 END IF;
6538 END IF;
6539 END IF;
6540
6541 ---------------------------------------------------------------
6542 l_debug_info := 'Call to Validate terms_date_basis';
6543 ----------------------------------------------------------------
6544 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6545 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
6546 l_api_name,l_debug_info);
6547 END IF;
6548 --
6549 -- Validate terms_date_basis
6550 --
6551 IF p_vendor_rec.terms_date_basis is NOT NULL
6552 AND p_vendor_rec.terms_date_basis <> ap_null_char THEN
6553
6554 Validate_Lookups( 'TERMS_DATE_BASIS',
6555 p_vendor_rec.terms_date_basis,'TERMS DATE BASIS',
6556 'AP_LOOKUP_CODES',x_valid);
6557 IF NOT x_valid THEN
6558 x_return_status := FND_API.G_RET_STS_ERROR;
6559 IF g_source = 'IMPORT' THEN
6560 IF (Insert_Rejections(
6561 'AP_SUPPLIERS_INT',
6562 p_vendor_rec.vendor_interface_id,
6563 'AP_INVALID_TERMS_DATE',
6564 g_user_id,
6565 g_login_id,
6566 'Validate_Vendor') <> TRUE) THEN
6567 --
6568 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6569 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
6570 l_api_name,'Parameters: '
6571 ||' Vendor_Interface_Id:'
6572 ||p_vendor_rec.vendor_interface_id
6573 ||' ,Terms_Date_Basis:'
6574 ||p_vendor_rec.terms_date_basis);
6575 END IF;
6576 END IF;
6577 ELSE
6578 -- Bug 5491139 hkaniven start --
6579 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_TERMS_DATE');
6580 FND_MSG_PUB.ADD;
6581 -- Bug 5491139 hkaniven end --
6582 END IF;
6583 END IF;
6584 END IF;
6585
6586 ---------------------------------------------------------------
6587 l_debug_info := 'Call to Validate qty_rcv_exception_code';
6588 ---------------------------------------------------------------
6589 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6590 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
6591 l_api_name,l_debug_info);
6592 END IF;
6593 --
6594 -- Validate qty_rcv_exception_code
6595 --
6596 IF p_vendor_rec.qty_rcv_exception_code is NOT NULL
6597 AND p_vendor_rec.qty_rcv_exception_code <> ap_null_char THEN
6598
6599 Validate_Lookups( 'QTY_RCV_EXCEPTION_CODE',
6600 p_vendor_rec.qty_rcv_exception_code,'RCV OPTION',
6601 'PO_LOOKUP_CODES',x_valid);
6602 IF NOT x_valid THEN
6603 x_return_status := FND_API.G_RET_STS_ERROR;
6604 IF g_source = 'IMPORT' THEN
6605 IF (Insert_Rejections(
6606 'AP_SUPPLIERS_INT',
6607 p_vendor_rec.vendor_interface_id,
6608 'AP_INVALID_QTY_RCV_OPTION',
6609 g_user_id,
6610 g_login_id,
6611 'Validate_Vendor') <> TRUE) THEN
6612 --
6613 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6614 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
6615 l_api_name,'Parameters: '
6616 ||' Vendor_Interface_Id:'
6617 ||p_vendor_rec.vendor_interface_id
6618 ||' ,Qty_Rcv_Execption_Code:'
6619 ||p_vendor_rec.Qty_Rcv_Exception_code);
6620 END IF;
6621 END IF;
6622 ELSE
6623 -- Bug 5491139 hkaniven start --
6624 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_QTY_RCV_OPTION');
6625 FND_MSG_PUB.ADD;
6626 -- Bug 5491139 hkaniven end --
6627 END IF;
6628 END IF;
6629 END IF;
6630
6631 ------------------------------------------------------------------------
6632 l_debug_info := 'Call to Validate ship to loc code';
6633 ------------------------------------------------------------------------
6634 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6635 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
6636 l_api_name,l_debug_info);
6637 END IF;
6638 --
6639 -- Validate enforce_ship_to_location_code
6640 --
6641 IF p_vendor_rec.enforce_ship_to_location_code is NOT NULL
6642 AND p_vendor_rec.enforce_ship_to_location_code <> ap_null_char THEN
6643
6644 Validate_Lookups( 'ENFORCE_SHIP_TO_LOCATION_CODE',
6645 p_vendor_rec.enforce_ship_to_location_code,'RCV OPTION',
6646 'PO_LOOKUP_CODES',x_valid);
6647 IF NOT x_valid THEN
6648 x_return_status := FND_API.G_RET_STS_ERROR;
6649 IF g_source = 'IMPORT' THEN
6650 IF (Insert_Rejections(
6651 'AP_SUPPLIERS_INT',
6652 p_vendor_rec.vendor_interface_id,
6653 'AP_INVALID_SHIP_RCV_OPTION',
6654 g_user_id,
6655 g_login_id,
6656 'Validate_Vendor') <> TRUE) THEN
6657 --
6658 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6659 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
6660 l_api_name,'Parameters: '
6661 ||' Vendor_Interface_Id:'
6662 ||p_vendor_rec.vendor_interface_id
6663 ||' ,Enforce_Ship_To_Location_Code:'
6664 ||p_vendor_rec.enforce_ship_to_location_code);
6665 END IF;
6666 END IF;
6667 ELSE
6668 -- Bug 5491139 hkaniven start --
6669 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_SHIP_RCV_OPTION');
6670 FND_MSG_PUB.ADD;
6671 -- Bug 5491139 hkaniven end --
6672 END IF;
6673 END IF;
6674 END IF;
6675
6676 ---------------------------------------------------------------
6677 l_debug_info := 'Call to Validate receipt_days_exception_code';
6678 ----------------------------------------------------------------
6679 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6680 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
6681 l_api_name,l_debug_info);
6682 END IF;
6683 --
6684 -- Validate receipt_days_exception_code
6685 --
6686 IF p_vendor_rec.receipt_days_exception_code is NOT NULL
6687 AND p_vendor_rec.receipt_days_exception_code <> ap_null_char THEN
6688
6689 Validate_Lookups( 'RECEIPT_DAYS_EXCEPTION_CODE',
6690 p_vendor_rec.receipt_days_exception_code,'RCV OPTION',
6691 'PO_LOOKUP_CODES',x_valid);
6692 IF NOT x_valid THEN
6693 x_return_status := FND_API.G_RET_STS_ERROR;
6694 IF g_source = 'IMPORT' THEN
6695 IF (Insert_Rejections(
6696 'AP_SUPPLIERS_INT',
6697 p_vendor_rec.vendor_interface_id,
6698 'AP_INVALID_REC_RCV_OPTION',
6699 g_user_id,
6700 g_login_id,
6701 'Validate_Vendor') <> TRUE) THEN
6702 --
6703 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6704 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
6705 l_api_name,'Parameters: '
6706 ||' Vendor_Interface_Id:'
6707 ||p_vendor_rec.vendor_interface_id
6708 ||' ,Receipt_Days_Exception_Code:'
6709 ||p_vendor_rec.receipt_days_exception_code);
6710 END IF;
6711 END IF;
6712 ELSE
6713 -- Bug 5491139 hkaniven start --
6714 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_REC_RCV_OPTION');
6715 FND_MSG_PUB.ADD;
6716 -- Bug 5491139 hkaniven end --
6717 END IF;
6718 END IF;
6719 END IF;
6720
6721 ---------------------------------------------------------------
6722 l_debug_info := 'Call to Validate create_debit_memo_flag';
6723 ----------------------------------------------------------------
6724 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6725 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
6726 l_api_name,l_debug_info);
6727 END IF;
6728 --
6729 -- Validate create_debit_memo_flag
6730 --
6731 IF p_vendor_rec.create_debit_memo_flag is NOT NULL
6732 AND p_vendor_rec.create_debit_memo_flag <> ap_null_char THEN
6733
6734 Validate_Lookups( 'CREATE_DEBIT_MEMO_FLAG',
6735 p_vendor_rec.create_debit_memo_flag ,'YES/NO',
6736 'PO_LOOKUP_CODES',x_valid);
6737 IF NOT x_valid THEN
6738 x_return_status := FND_API.G_RET_STS_ERROR;
6739 IF g_source = 'IMPORT' THEN
6740 IF (Insert_Rejections(
6741 'AP_SUPPLIERS_INT',
6742 p_vendor_rec.vendor_interface_id,
6743 'AP_INVALID_DEBIT_MEMO',
6744 g_user_id,
6745 g_login_id,
6746 'Validate_Vendor') <> TRUE) THEN
6747 --
6748 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6749 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
6750 l_api_name,'Parameters: '
6751 ||' Vendor_Interface_Id:'
6752 ||p_vendor_rec.vendor_interface_id
6753 ||' ,Create_Debit_Memo_Flag:'
6754 ||p_vendor_rec.create_debit_memo_flag);
6755 END IF;
6756 END IF;
6757 ELSE
6758 -- Bug 5491139 hkaniven start --
6759 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_DEBIT_MEMO');
6760 FND_MSG_PUB.ADD;
6761 -- Bug 5491139 hkaniven end --
6762 END IF;
6763 END IF;
6764 END IF;
6765
6766 ---------------------------------------------------------------
6767 l_debug_info := 'Call to Validate federal_reportable_flag';
6768 ---------------------------------------------------------------
6769 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6770 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
6771 l_api_name,l_debug_info);
6772 END IF;
6773 --
6774 -- Validate federal_reportable_flag
6775 --
6776 IF p_vendor_rec.federal_reportable_flag is NOT NULL
6777 AND p_vendor_rec.federal_reportable_flag <> ap_null_char THEN
6778
6779 Validate_Lookups( 'FEDERAL_REPORTABLE_FLAG',
6780 p_vendor_rec.federal_reportable_flag ,'YES/NO',
6781 'PO_LOOKUP_CODES',x_valid);
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_INVALID_FED_REPORTABLE',
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 ||' ,Federal_Reportable_Flag:'
6799 ||p_vendor_rec.federal_reportable_flag);
6800 END IF;
6801 END IF;
6802 ELSE
6803 -- Bug 5491139 hkaniven start --
6804 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_FED_REPORTABLE');
6805 FND_MSG_PUB.ADD;
6806 -- Bug 5491139 hkaniven end --
6807 END IF;
6808 END IF;
6809 END IF;
6810
6811 ----------------------------------------------------------------
6812 l_debug_info := 'Call to Validate state_reportable_flag';
6813 ----------------------------------------------------------------
6814 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6815 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
6816 l_api_name,l_debug_info);
6817 END IF;
6818 --
6819 -- Validate state_reportable_flag
6820 --
6821 IF p_vendor_rec.state_reportable_flag is NOT NULL
6822 AND p_vendor_rec.state_reportable_flag <> ap_null_char THEN
6823
6824 Validate_Lookups('STATE_REPORTABLE_FLAG',
6825 p_vendor_rec.state_reportable_flag ,'YES/NO',
6826 'PO_LOOKUP_CODES', x_valid);
6827 IF NOT x_valid THEN
6828 x_return_status := FND_API.G_RET_STS_ERROR;
6829 IF g_source = 'IMPORT' THEN
6830 IF (Insert_Rejections(
6831 'AP_SUPPLIERS_INT',
6832 p_vendor_rec.vendor_interface_id,
6833 'AP_INVALID_STATE_REPORTABLE',
6834 g_user_id,
6835 g_login_id,
6836 'Validate_Vendor') <> TRUE) THEN
6837 --
6838 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6839 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
6840 l_api_name,'Parameters: '
6841 ||' Vendor_Interface_Id:'
6842 ||p_vendor_rec.vendor_interface_id
6843 ||' ,State_Reportable_Flag:'
6844 ||p_vendor_rec.state_reportable_flag);
6845 END IF;
6846 END IF;
6847 ELSE
6848 -- Bug 5491139 hkaniven start --
6849 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_STATE_REPORTABLE');
6850 FND_MSG_PUB.ADD;
6851 -- Bug 5491139 hkaniven end --
6852 END IF;
6853 END IF;
6854 END IF;
6855
6856 ---------------------------------------------------------------
6857 l_debug_info := 'Call to Validate auto_calculate_interest_flag';
6858 ----------------------------------------------------------------
6859 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6860 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
6861 l_api_name,l_debug_info);
6862 END IF;
6863 --
6864 -- Validate auto_calculate_interest_flag
6865 --
6866 IF p_vendor_rec.auto_calculate_interest_flag is NOT NULL
6867 AND p_vendor_rec.auto_calculate_interest_flag <> ap_null_char THEN
6868
6869 Validate_Lookups('AUTO_CALCULATE_INTEREST_FLAG',
6870 p_vendor_rec.auto_calculate_interest_flag,'YES/NO',
6871 'PO_LOOKUP_CODES', x_valid);
6872 IF NOT x_valid THEN
6873 x_return_status := FND_API.G_RET_STS_ERROR;
6874 IF g_source = 'IMPORT' THEN
6875 IF (Insert_Rejections(
6876 'AP_SUPPLIERS_INT',
6877 p_vendor_rec.vendor_interface_id,
6878 'AP_INVALID_CALC_INT',
6879 g_user_id,
6880 g_login_id,
6881 'Validate_Vendor') <> TRUE) THEN
6882 --
6883 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6884 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
6885 l_api_name,'Parameters: '
6886 ||' Vendor_Interface_Id:'
6887 ||p_vendor_rec.vendor_interface_id
6888 ||' , Auto_Calculate_Interest_Flag'
6889 ||p_vendor_rec.auto_calculate_interest_flag);
6890 END IF;
6891 END IF;
6892 ELSE
6893 -- Bug 5491139 hkaniven start --
6894 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_CALC_INT');
6895 FND_MSG_PUB.ADD;
6896 -- Bug 5491139 hkaniven end --
6897 END IF;
6898 END IF;
6899 END IF;
6900
6901 ---------------------------------------------------------------
6902 l_debug_info := 'Call to Validate excl freight from disc';
6903 ---------------------------------------------------------------
6904 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6905 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
6906 l_api_name,l_debug_info);
6907 END IF;
6908 --
6909 -- Validate exclude_freight_from_discount
6910 --
6911 IF p_vendor_rec.exclude_freight_from_discount is NOT NULL
6912 AND p_vendor_rec.exclude_freight_from_discount <> ap_null_char THEN
6913
6914 Validate_Lookups( 'EXCLUDE_FREIGHT_FROM_DISCOUNT',
6915 p_vendor_rec.exclude_freight_from_discount ,'YES/NO',
6916 'PO_LOOKUP_CODES',x_valid);
6917 IF NOT x_valid THEN
6918 x_return_status := FND_API.G_RET_STS_ERROR;
6919 IF g_source = 'IMPORT' THEN
6920 IF (Insert_Rejections(
6921 'AP_SUPPLIERS_INT',
6922 p_vendor_rec.vendor_interface_id,
6923 'AP_INVALID_EXC_FR_DISC',
6924 g_user_id,
6925 g_login_id,
6926 'Validate_Vendor') <> TRUE) THEN
6927 --
6928 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6929 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
6930 l_api_name,'Parameters: '
6931 ||' Vendor_Interface_Id:'
6932 ||p_vendor_rec.vendor_interface_id
6933 ||' ,Exclude_Freight_From_Discount:'
6934 ||p_vendor_rec.exclude_freight_from_discount);
6935 END IF;
6936 END IF;
6937 ELSE
6938 -- Bug 5491139 hkaniven start --
6939 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_EXC_FR_DISC');
6940 FND_MSG_PUB.ADD;
6941 -- Bug 5491139 hkaniven end --
6942 END IF;
6943 END IF;
6944 END IF;
6945
6946 ----------------------------------------------------------------
6947 l_debug_info := 'Call to Validate hold_unmatched_invoices_flag';
6948 ----------------------------------------------------------------
6949 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6950 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
6951 l_api_name,l_debug_info);
6952 END IF;
6953 --
6954 -- Validate hold_unmatched_invoices_flag
6955 --
6956 IF p_vendor_rec.hold_unmatched_invoices_flag is NOT NULL
6957 AND p_vendor_rec.hold_unmatched_invoices_flag <> ap_null_char THEN
6958
6959 Validate_Lookups('HOLD_UNMATCHED_INVOICES_FLAG',
6960 p_vendor_rec.hold_unmatched_invoices_flag ,'YES/NO',
6961 'PO_LOOKUP_CODES',x_valid);
6962 IF NOT x_valid THEN
6963 x_return_status := FND_API.G_RET_STS_ERROR;
6964 IF g_source = 'IMPORT' THEN
6965 IF (Insert_Rejections(
6966 'AP_SUPPLIERS_INT',
6967 p_vendor_rec.vendor_interface_id,
6968 'AP_INVALID_HOLD_UNMAT_INV',
6969 g_user_id,
6970 g_login_id,
6971 'Validate_Vendor') <> TRUE) THEN
6972 --
6973 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6974 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
6975 l_api_name,'Parameters: '
6976 ||' Vendor_Interface_Id:'
6977 ||p_vendor_rec.vendor_interface_id
6978 ||' ,Hold_Unmatched_Invoices_Flag:'
6979 ||p_vendor_rec.hold_unmatched_invoices_flag);
6980 END IF;
6981 END IF;
6982 ELSE
6983 -- Bug 5491139 hkaniven start --
6984 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_HOLD_UNMAT_INV');
6985 FND_MSG_PUB.ADD;
6986 -- Bug 5491139 hkaniven end --
6987 END IF;
6988 END IF;
6989 END IF;
6990
6991 ---------------------------------------------------------------
6992 l_debug_info := 'Call to Validate allow_unord_receipts_flag';
6993 ---------------------------------------------------------------
6994 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6995 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
6996 l_api_name,l_debug_info);
6997 END IF;
6998 --
6999 -- Validate allow_unord_receipts_flag
7000 --
7001 IF p_vendor_rec.allow_unordered_receipts_flag is NOT NULL
7002 AND p_vendor_rec.allow_unordered_receipts_flag <> ap_null_char THEN
7003
7004 Validate_Lookups('ALLOW_UNORDERED_RECEIPTS_FLAG',
7005 p_vendor_rec.allow_unordered_receipts_flag,'YES/NO',
7006 'PO_LOOKUP_CODES', x_valid);
7007 IF NOT x_valid THEN
7008 x_return_status := FND_API.G_RET_STS_ERROR;
7009 IF g_source = 'IMPORT' THEN
7010 IF (Insert_Rejections(
7011 'AP_SUPPLIERS_INT',
7012 p_vendor_rec.vendor_interface_id,
7013 'AP_INVALID_UNORD_RCV',
7014 g_user_id,
7015 g_login_id,
7016 'Validate_Vendor') <> TRUE) THEN
7017 --
7018 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
7019 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
7020 l_api_name,'Parameters: '
7021 ||' Vendor_Interface_Id:'
7022 ||p_vendor_rec.vendor_interface_id
7023 ||' ,Allow_Unordered_Receipts_Flag:'
7024 ||p_vendor_rec.allow_unordered_receipts_flag);
7025 END IF;
7026 END IF;
7027 ELSE
7028 -- Bug 5491139 hkaniven start --
7029 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_UNORD_RCV');
7030 FND_MSG_PUB.ADD;
7031 -- Bug 5491139 hkaniven end --
7032 END IF;
7033 END IF;
7034 END IF;
7035
7036 ---------------------------------------------------------------
7037 l_debug_info :=
7038 'Call to Validate allow_substitute_receipts_flag';
7039 -------------------------------------------------------------
7040 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
7041 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
7042 l_api_name,l_debug_info);
7043 END IF;
7044 --
7045 -- Validate allow_substitute_receipts_flag
7046 --
7047 IF p_vendor_rec.allow_substitute_receipts_flag is NOT NULL
7048 AND p_vendor_rec.allow_substitute_receipts_flag <> ap_null_char THEN
7049
7050 Validate_Lookups('ALLOW_SUBSTITUTE_RECEIPTS_FLAG',
7051 p_vendor_rec.allow_substitute_receipts_flag,'YES/NO',
7052 'PO_LOOKUP_CODES', x_valid);
7053 IF NOT x_valid THEN
7054 x_return_status := FND_API.G_RET_STS_ERROR;
7055 IF g_source = 'IMPORT' THEN
7056 IF (Insert_Rejections(
7057 'AP_SUPPLIERS_INT',
7058 p_vendor_rec.vendor_interface_id,
7059 'AP_INVALID_SUBS_RCV',
7060 g_user_id,
7061 g_login_id,
7062 'Validate_Vendor') <> TRUE) THEN
7063 --
7064 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
7065 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
7066 l_api_name,'Parameters: '
7067 ||' Vendor_Interface_Id:'
7068 ||p_vendor_rec.vendor_interface_id
7069 ||' ,Allow_Substitute_Receipts_Flag:'
7070 ||p_vendor_rec.allow_substitute_receipts_flag);
7071 END IF;
7072 END IF;
7073 ELSE
7074 -- Bug 5491139 hkaniven start --
7075 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_SUB_RCV');
7076 FND_MSG_PUB.ADD;
7077 -- Bug 5491139 hkaniven end --
7078 END IF;
7079 END IF;
7080 END IF;
7081
7082 ---------------------------------------------------------------
7083 l_debug_info := 'Call to Validate hold_flag';
7084 ----------------------------------------------------------------
7085 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
7086 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
7087 l_api_name,l_debug_info);
7088 END IF;
7089 --
7090 -- Validate hold_flag
7091 --
7092 IF p_vendor_rec.hold_flag is NOT NULL
7093 AND p_vendor_rec.hold_flag <> ap_null_char THEN
7094
7095 Validate_Lookups('HOLD_FLAG', p_vendor_rec.hold_flag,
7096 'YES/NO',
7097 'PO_LOOKUP_CODES', x_valid);
7098 IF NOT x_valid THEN
7099 x_return_status := FND_API.G_RET_STS_ERROR;
7100 IF g_source = 'IMPORT' THEN
7101 IF (Insert_Rejections(
7102 'AP_SUPPLIERS_INT',
7103 p_vendor_rec.vendor_interface_id,
7104 'AP_INVALID_HOLD',
7105 g_user_id,
7106 g_login_id,
7107 'Validate_Vendor') <> TRUE) THEN
7108 --
7109 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
7110 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
7111 l_api_name,'Parameters: '
7112 ||' Vendor_Interface_Id:'
7113 ||p_vendor_rec.vendor_interface_id
7114 ||' ,Hold_Flag:'
7115 ||p_vendor_rec.hold_flag);
7116 END IF;
7117 END IF;
7118 ELSE
7119 -- Bug 5491139 hkaniven start --
7120 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_HOLD');
7121 FND_MSG_PUB.ADD;
7122 -- Bug 5491139 hkaniven end --
7123 END IF;
7124 END IF;
7125 END IF;
7126
7127 ----------------------------------------------------------------
7128 l_debug_info := 'Call to Validate small_business_flag';
7129 ---------------------------------------------------------------
7130 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
7131 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
7132 l_api_name,l_debug_info);
7133 END IF;
7134 --
7135 -- Validate small_business_flag
7136 --
7137 IF p_vendor_rec.small_business_flag is NOT NULL
7138 AND p_vendor_rec.small_business_flag <> ap_null_char THEN
7139
7140 Validate_Lookups('SMALL_BUSINESS_FLAG',
7141 p_vendor_rec.small_business_flag,'YES/NO',
7142 'PO_LOOKUP_CODES',x_valid);
7143 IF NOT x_valid THEN
7144 x_return_status := FND_API.G_RET_STS_ERROR;
7145 IF g_source = 'IMPORT' THEN
7146 IF (Insert_Rejections(
7147 'AP_SUPPLIERS_INT',
7148 p_vendor_rec.vendor_interface_id,
7149 'AP_INVALID_SMALL_BUSINESS',
7150 g_user_id,
7151 g_login_id,
7152 'Validate_Vendor') <> TRUE) THEN
7153 --
7154 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
7155 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
7156 l_api_name,'Parameters: '
7157 ||' Vendor_Interface_Id:'
7158 ||p_vendor_rec.vendor_interface_id
7159 ||' ,Small_Business_Flag:'
7160 ||p_vendor_rec.small_business_flag);
7161 END IF;
7162 END IF;
7163 ELSE
7164 -- Bug 5491139 hkaniven start --
7165 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_SMALL_BUSINESS');
7166 FND_MSG_PUB.ADD;
7167 -- Bug 5491139 hkaniven end --
7168 END IF;
7169 END IF;
7170 END IF;
7171
7172 ----------------------------------------------------------------
7173 l_debug_info := 'Call to Validate women_owned_flag';
7174 ---------------------------------------------------------------
7175 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
7176 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
7177 l_api_name,l_debug_info);
7178 END IF;
7179 --
7180 -- Validate women_owned_flag
7181 --
7182 IF p_vendor_rec.women_owned_flag is NOT NULL
7183 AND p_vendor_rec.women_owned_flag <> ap_null_char THEN
7184
7185 Validate_Lookups('WOMEN_OWNED_FLAG',
7186 p_vendor_rec.women_owned_flag,'YES/NO',
7187 'PO_LOOKUP_CODES', x_valid);
7188 IF NOT x_valid THEN
7189 x_return_status := FND_API.G_RET_STS_ERROR;
7190 IF g_source = 'IMPORT' THEN
7191 IF (Insert_Rejections(
7192 'AP_SUPPLIERS_INT',
7193 p_vendor_rec.vendor_interface_id,
7194 'AP_INVALID_WOMEN_OWNED',
7195 g_user_id,
7196 g_login_id,
7197 'Validate_Vendor') <> TRUE) THEN
7198 --
7199 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
7200 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
7201 l_api_name,'Parameters: '
7202 ||' Vendor_Interface_Id:'
7203 ||p_vendor_rec.vendor_interface_id
7204 ||' ,Women_Owned_Flag:'
7205 ||p_vendor_rec.women_owned_flag);
7206 END IF;
7207 END IF;
7208 ELSE
7209 -- Bug 5491139 hkaniven start --
7210 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_WOMEN_OWNED');
7211 FND_MSG_PUB.ADD;
7212 -- Bug 5491139 hkaniven end --
7213 END IF;
7214 END IF;
7215 END IF;
7216
7217 --------------------------------------------------------------
7218 l_debug_info := 'Call to Validate hold_future_payments_flag';
7219 ---------------------------------------------------------------
7220 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
7221 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
7222 l_api_name,l_debug_info);
7223 END IF;
7224 --
7225 -- Validate hold_future_payments_flag
7226 --
7227 IF p_vendor_rec.hold_future_payments_flag is NOT NULL
7228 AND p_vendor_rec.hold_future_payments_flag <> ap_null_char THEN
7229
7230 Validate_Lookups('HOLD_FUTURE_PAYMENTS_FLAG',
7231 p_vendor_rec.hold_future_payments_flag,'YES/NO',
7232 'PO_LOOKUP_CODES', x_valid);
7233 IF NOT x_valid THEN
7234 x_return_status := FND_API.G_RET_STS_ERROR;
7235 IF g_source = 'IMPORT' THEN
7236 IF (Insert_Rejections(
7237 'AP_SUPPLIERS_INT',
7238 p_vendor_rec.vendor_interface_id,
7239 'AP_INVALID_HOLD_FUT_PAY',
7240 g_user_id,
7241 g_login_id,
7242 'Validate_Vendor') <> TRUE) THEN
7243 --
7244 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
7245 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
7246 l_api_name,'Parameters: '
7247 ||' Vendor_Interface_Id:'
7248 ||p_vendor_rec.vendor_interface_id
7249 ||' ,Hold_Future_Payments_Flag:'
7250 ||p_vendor_rec.hold_future_payments_flag);
7251 END IF;
7252 END IF;
7253 ELSE
7254 -- Bug 5491139 hkaniven start --
7255 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_HOLD_FUT_PAY');
7256 FND_MSG_PUB.ADD;
7257 -- Bug 5491139 hkaniven end --
7258 END IF;
7259 END IF;
7260 END IF;
7261
7262 ----------------------------------------------------------------
7263 l_debug_info := 'Call to Validate hold_all_payments_flag';
7264 ----------------------------------------------------------------
7265 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
7266 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
7267 l_api_name,l_debug_info);
7268 END IF;
7269 --
7270 -- Validate hold_all_payments_flag
7271 --
7272 IF p_vendor_rec.hold_all_payments_flag is NOT NULL
7273 AND p_vendor_rec.hold_all_payments_flag <> ap_null_char THEN
7274
7275 Validate_Lookups('HOLD_ALL_PAYMENTS_FLAG',
7276 p_vendor_rec.hold_all_payments_flag,'YES/NO',
7277 'PO_LOOKUP_CODES', x_valid);
7278 IF NOT x_valid THEN
7279 x_return_status := FND_API.G_RET_STS_ERROR;
7280 IF g_source = 'IMPORT' THEN
7281 IF (Insert_Rejections(
7282 'AP_SUPPLIERS_INT',
7283 p_vendor_rec.vendor_interface_id,
7284 'AP_INVALID_HOLD_ALL_PAY',
7285 g_user_id,
7286 g_login_id,
7287 'Validate_Vendor') <> TRUE) THEN
7288 --
7289 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
7290 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
7291 l_api_name,'Parameters: '
7292 ||' Vendor_Interface_Id:'
7293 ||p_vendor_rec.vendor_interface_id
7294 ||' ,Hold_All_Payments_Flag:'
7295 ||p_vendor_rec.hold_all_payments_flag);
7296 END IF;
7297 END IF;
7298 ELSE
7299 -- Bug 5491139 hkaniven start --
7300 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_HOLD_ALL_PAY');
7301 FND_MSG_PUB.ADD;
7302 -- Bug 5491139 hkaniven end --
7303 END IF;
7304 END IF;
7305 END IF;
7306
7307 ---------------------------------------------------------------
7308 l_debug_info := 'Call to Validate always_take_disc_flag';
7309 ----------------------------------------------------------------
7310 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
7311 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
7312 l_api_name,l_debug_info);
7313 END IF;
7314 --
7315 -- Validate always_take_disc_flag
7316 --
7317 IF p_vendor_rec.always_take_disc_flag is NOT NULL
7318 AND p_vendor_rec.always_take_disc_flag <> ap_null_char THEN
7319
7320 Validate_Lookups( 'ALWAYS_TAKE_DISC_FLAG',
7321 p_vendor_rec.always_take_disc_flag,'YES/NO',
7322 'PO_LOOKUP_CODES', x_valid);
7323 IF NOT x_valid THEN
7324 x_return_status := FND_API.G_RET_STS_ERROR;
7325 IF g_source = 'IMPORT' THEN
7326 IF (Insert_Rejections(
7327 'AP_SUPPLIERS_INT',
7328 p_vendor_rec.vendor_interface_id,
7329 'AP_INVALID_TAKE_DISC',
7330 g_user_id,
7331 g_login_id,
7332 'Validate_Vendor') <> TRUE) THEN
7333 --
7334 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
7335 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
7336 l_api_name,'Parameters: '
7337 ||' Vendor_Interface_Id:'
7338 ||p_vendor_rec.vendor_interface_id
7339 ||' ,Always_Take_Disc_Flag:'
7340 ||p_vendor_rec.always_take_disc_flag);
7341 END IF;
7342 END IF;
7343 ELSE
7344 -- Bug 5491139 hkaniven start --
7345 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_TAKE_DISC');
7346 FND_MSG_PUB.ADD;
7347 -- Bug 5491139 hkaniven end --
7348 END IF;
7349 END IF;
7350 END IF;
7351
7352 ----------------------------------------------------------------
7353 l_debug_info := 'Call to Validate Vendor Number';
7354 ----------------------------------------------------------------
7355 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
7356 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
7357 l_api_name,l_debug_info);
7358 END IF;
7359
7360 -- Generate and validate Vendor Number
7361
7362 l_segment1 := p_vendor_rec.segment1;
7363
7364 Check_valid_vendor_num(l_segment1,
7365 x_valid);
7366
7367 IF NOT x_valid THEN
7368 x_return_status := FND_API.G_RET_STS_ERROR;
7369 IF g_source = 'IMPORT' THEN
7370 IF (Insert_Rejections(
7371 'AP_SUPPLIERS_INT',
7372 p_vendor_rec.vendor_interface_id,
7373 'AP_NULL_VENDOR_NUMBER', --bug5568861
7374 g_user_id,
7375 g_login_id,
7376 'Validate_Vendor') <> TRUE) THEN
7377 --
7378 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
7379 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
7380 l_api_name,'Parameters: '
7381 ||' Vendor_Interface_Id:'
7382 ||p_vendor_rec.vendor_interface_id);
7383 END IF;
7384 END IF;
7385 ELSE
7386 -- Bug 5491139 hkaniven start --
7387 FND_MESSAGE.SET_NAME('SQLAP','AP_NULL_VENDOR_NUMBER');
7388 FND_MSG_PUB.ADD;
7389 -- Bug 5491139 hkaniven end --
7390 END IF;
7391 END IF;
7392
7393 ----------------------------------------------------------------
7394 l_debug_info := 'Call to Validate match_option';
7395 ----------------------------------------------------------------
7396 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
7397 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
7398 l_api_name,l_debug_info);
7399 END IF;
7400 --
7401 -- Validate match_option
7402 --
7403 IF p_vendor_rec.match_option is NOT NULL
7404 AND p_vendor_rec.match_option <> ap_null_char THEN
7405
7406 Check_Valid_Match_Option(p_vendor_rec.match_option,
7407 x_valid
7408 );
7409 IF NOT x_valid THEN
7410 x_return_status := FND_API.G_RET_STS_ERROR;
7411 IF g_source = 'IMPORT' THEN
7412 IF (Insert_Rejections(
7413 'AP_SUPPLIERS_INT',
7414 p_vendor_rec.vendor_interface_id,
7415 'AP_INVALID_MATCH_OPTION',
7416 g_user_id,
7417 g_login_id,
7418 'Validate_Vendor') <> TRUE) THEN
7419 --
7420 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
7421 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
7422 l_api_name,'Parameters: '
7423 ||' Vendor_Interface_Id:'
7424 ||p_vendor_rec.vendor_interface_id
7425 ||' ,Match_Option:'
7426 ||p_vendor_rec.match_option);
7427 END IF;
7428 END IF;
7429 ELSE
7430 -- Bug 5491139 hkaniven start --
7431 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_MATCH_OPTION');
7432 FND_MSG_PUB.ADD;
7433 -- Bug 5491139 hkaniven end --
7434 END IF;
7435 END IF;
7436 END IF;
7437
7438 ---------------------------------------------------------------
7439 l_debug_info :=
7440 'Call to Validate awt_group_id and awt_group_name';
7441 ---------------------------------------------------------------
7442 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
7443 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
7444 l_api_name,l_debug_info);
7445 END IF;
7446 --
7447 -- Validate awt_group_id and awt_group_name
7448 --
7449 IF ((p_vendor_rec.awt_group_id is NOT NULL AND
7450 p_vendor_rec.awt_group_id <> ap_null_num)
7451 or (p_vendor_rec.awt_group_name is NOT NULL AND
7452 p_vendor_rec.awt_group_name <> ap_null_char)) AND
7453 (p_vendor_rec.allow_awt_flag = 'Y') THEN
7454
7455 Chk_awt_grp_id_name(p_vendor_rec.awt_group_id,
7456 p_vendor_rec.awt_group_name,
7457 p_vendor_rec.allow_awt_flag,
7458 x_valid
7459 );
7460
7461 IF NOT x_valid THEN
7462 x_return_status := FND_API.G_RET_STS_ERROR;
7463 IF g_source = 'IMPORT' THEN
7464 IF (Insert_Rejections(
7465 'AP_SUPPLIERS_INT',
7466 p_vendor_rec.vendor_interface_id,
7467 'AP_INCONSISTENT_AWT_GROUP',
7468 g_user_id,
7469 g_login_id,
7470 'Validate_Vendor') <> TRUE) THEN
7471 --
7472 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
7473 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
7474 l_api_name,'Parameters: '
7475 ||' Vendor_Interface_Id:'
7476 ||p_vendor_rec.vendor_interface_id
7477 ||' ,Awt_Group_Id: '||p_vendor_rec.awt_group_id
7478 ||' ,Awt_Group_Name:'
7479 ||p_vendor_rec.awt_group_name);
7480 END IF;
7481 END IF;
7482 ELSE
7483 -- Bug 5491139 hkaniven start --
7484 FND_MESSAGE.SET_NAME('SQLAP','AP_INCONSISTENT_AWT_GROUP');
7485 FND_MSG_PUB.ADD;
7486 -- Bug 5491139 hkaniven end --
7487 END IF;
7488 END IF;
7489
7490 END IF;
7491
7492 /* Bug 9589179 */
7493 ---------------------------------------------------------------
7494 l_debug_info :=
7495 'Call to Validate pay_awt_group_id and pay_awt_group_name';
7496 ---------------------------------------------------------------
7497 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
7498 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
7499 l_api_name,l_debug_info);
7500 END IF;
7501 --
7502 -- Validate pay_awt_group_id and pay_awt_group_name
7503 --
7504
7505 IF ((p_vendor_rec.pay_awt_group_id is NOT NULL AND
7506 p_vendor_rec.pay_awt_group_id <> ap_null_num)
7507 or (p_vendor_rec.pay_awt_group_name is NOT NULL AND
7508 p_vendor_rec.pay_awt_group_name <> ap_null_char)) AND
7509 (p_vendor_rec.allow_awt_flag = 'Y') THEN
7510
7511 Chk_pay_awt_grp_id_name(p_vendor_rec.pay_awt_group_id,
7512 p_vendor_rec.pay_awt_group_name,
7513 p_vendor_rec.allow_awt_flag,
7514 x_valid
7515 );
7516
7517 IF NOT x_valid THEN
7518 x_return_status := FND_API.G_RET_STS_ERROR;
7519 IF g_source = 'IMPORT' THEN
7520 IF (Insert_Rejections(
7521 'AP_SUPPLIERS_INT',
7522 p_vendor_rec.vendor_interface_id,
7523 'AP_INCONSISTENT_AWT_GROUP',
7524 g_user_id,
7525 g_login_id,
7526 'Validate_Vendor') <> TRUE) THEN
7527 --
7528 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
7529 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
7530 l_api_name,'Parameters: '
7531 ||' Vendor_Interface_Id:'
7532 ||p_vendor_rec.vendor_interface_id
7533 ||' ,Awt_Group_Id: '||p_vendor_rec.pay_awt_group_id
7534 ||' ,Awt_Group_Name:'
7535 ||p_vendor_rec.pay_awt_group_name);
7536 END IF;
7537 END IF;
7538 ELSE
7539
7540 FND_MESSAGE.SET_NAME('SQLAP','AP_INCONSISTENT_AWT_GROUP');
7541 FND_MSG_PUB.ADD;
7542
7543 END IF;
7544 END IF;
7545
7546 END IF; /* Bug9589179 */
7547 ------------------------------------------------------------------------
7548 l_debug_info := 'Call to Validate Hold_by';
7549 ------------------------------------------------------------------------
7550 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
7551 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
7552 l_api_name,l_debug_info);
7553 END IF;
7554
7555 -- Hold_by validation
7556
7557 IF p_vendor_rec.hold_by is NOT NULL
7558 AND p_vendor_rec.hold_by <> ap_null_num THEN
7559 Check_Valid_Hold_by (p_vendor_rec.hold_by,
7560 x_valid);
7561
7562 IF NOT x_valid THEN
7563 x_return_status := FND_API.G_RET_STS_ERROR;
7564 END IF;
7565 END IF;
7566
7567 ------------------------------------------------------------------------
7568 l_debug_info := 'Call to Validate Terms_Id and Terms_Name';
7569 ------------------------------------------------------------------------
7570 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
7571 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
7572 l_api_name,l_debug_info);
7573 END IF;
7574
7575 -- Terms_Id and Terms_Name validation
7576
7577 IF ((p_vendor_rec.terms_id is NOT NULL AND
7578 p_vendor_rec.terms_id <> ap_null_num) OR
7579 (p_vendor_rec.terms_name is NOT NULL AND
7580 p_vendor_rec.terms_name <> ap_null_char) OR
7581 (p_vendor_rec.default_terms_id is NOT NULL AND
7582 p_vendor_rec.default_terms_id <> ap_null_num) --6393761
7583 ) THEN
7584
7585 Check_terms_id_code(p_vendor_rec.terms_id,
7586 p_vendor_rec.terms_name,
7587 p_vendor_rec.default_terms_id,
7588 x_valid);
7589
7590 IF NOT x_valid THEN
7591 x_return_status := FND_API.G_RET_STS_ERROR;
7592 IF g_source = 'IMPORT' THEN
7593 IF (Insert_Rejections(
7594 'AP_SUPPLIERS_INT',
7595 p_vendor_rec.vendor_interface_id,
7596 'AP_INCONSISTENT_TERM',
7597 g_user_id,
7598 g_login_id,
7599 'Validate_Vendor') <> TRUE) THEN
7600 --
7601 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
7602 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
7603 l_api_name,'Parameters: '
7604 ||' Vendor_Interface_Id: '
7605 ||p_vendor_rec.vendor_interface_id
7606 ||' ,Terms_Id: '||p_vendor_rec.terms_id
7607 ||' ,Terms_Name: '||p_vendor_rec.terms_name);
7608 END IF;
7609 END IF;
7610 ELSE
7611 -- Bug 5491139 hkaniven start --
7612 FND_MESSAGE.SET_NAME('SQLAP','AP_INCONSISTENT_TERM');
7613 FND_MSG_PUB.ADD;
7614 -- Bug 5491139 hkaniven end --
7615 END IF;
7616 END IF;
7617 END IF;
7618
7619
7620 END IF; -- not ISETUP
7621 END IF; --p_mode
7622
7623 -- End of API body
7624
7625 -- Standard check of p_commit.
7626 IF FND_API.To_Boolean( p_commit ) THEN
7627 COMMIT WORK;
7628 END IF;
7629
7630 -- Standard call to get message count and if count is 1,
7631 -- get message info.
7632 FND_MSG_PUB.Count_And_Get(
7633 p_count => x_msg_count ,
7634 p_data => x_msg_data
7635 );
7636
7637
7638 EXCEPTION
7639 WHEN FND_API.G_EXC_ERROR THEN
7640 ROLLBACK TO Validate_Vendor_PUB;
7641 x_return_status := FND_API.G_RET_STS_ERROR ;
7642 FND_MSG_PUB.Count_And_Get
7643 ( p_count => x_msg_count,
7644 p_data => x_msg_data
7645 );
7646 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
7647 ROLLBACK TO Validate_Vendor_PUB;
7648 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
7649 FND_MSG_PUB.Count_And_Get
7650 ( p_count => x_msg_count,
7651 p_data => x_msg_data
7652 );
7653 WHEN OTHERS THEN
7654 ROLLBACK TO Validate_Vendor_PUB;
7655 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
7656 IF FND_MSG_PUB.Check_Msg_Level
7657 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
7658 FND_MSG_PUB.Add_Exc_Msg
7659 ( G_PKG_NAME ,
7660 l_api_name
7661 );
7662 END IF;
7663 FND_MSG_PUB.Count_And_Get
7664 ( p_count => x_msg_count,
7665 p_data => x_msg_data
7666 );
7667 END Validate_Vendor;
7668
7669 PROCEDURE Create_Vendor_Site
7670 ( p_api_version IN NUMBER,
7671 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
7672 p_commit IN VARCHAR2 := FND_API.G_FALSE,
7673 p_validation_level IN NUMBER :=
7674 FND_API.G_VALID_LEVEL_FULL,
7675 x_return_status OUT NOCOPY VARCHAR2 ,
7676 x_msg_count OUT NOCOPY NUMBER,
7677 x_msg_data OUT NOCOPY VARCHAR2,
7678 p_vendor_site_rec IN r_vendor_site_rec_type,
7679 x_vendor_site_id OUT NOCOPY NUMBER,
7680 x_party_site_id OUT NOCOPY NUMBER,
7681 x_location_id OUT NOCOPY NUMBER
7682 )
7683 IS
7684 l_api_name CONSTANT VARCHAR2(30) := 'Create_Vendor_Site';
7685 l_api_version CONSTANT NUMBER := 1.0;
7686
7687 l_def_org_id NUMBER;
7688 l_party_site_rec HZ_PARTY_SITE_V2PUB.party_site_rec_type;
7689 l_location_rec HZ_LOCATION_V2PUB.location_rec_type;
7690
7691 -- variables for retrieving defaults from PO_VENDORS
7692 l_rowid VARCHAR2(255);
7693 l_vendor_site_id NUMBER;
7694 l_vendor_site_code VARCHAR2(255);
7695 l_purchasing_site_flag VARCHAR2(255);
7696 l_rfq_only_site_flag VARCHAR2(255);
7697 l_pay_site_flag VARCHAR2(255);
7698 l_attention_ar_flag VARCHAR2(255);
7699 l_customer_num VARCHAR2(255);
7700 l_ship_to_location_id NUMBER;
7701 l_bill_to_location_id NUMBER;
7702 l_ship_via_lookup_code VARCHAR2(255);
7703 l_sys_ship_via_lookup_code VARCHAR2(255);
7704 l_freight_terms_lookup_code VARCHAR2(255);
7705 l_fob_lookup_code VARCHAR2(255);
7706 l_fax VARCHAR2(255);
7707 l_fax_area_code VARCHAR2(255);
7708 l_telex VARCHAR2(255);
7709 l_payment_method_lookup_code VARCHAR2(255);
7710 l_bank_account_name VARCHAR2(255);
7711 l_bank_account_num VARCHAR2(255);
7712 l_bank_num VARCHAR2(255);
7713 l_bank_account_type VARCHAR2(255);
7714 l_terms_date_basis VARCHAR2(255);
7715 l_sup_terms_date_basis VARCHAR2(255);
7716 l_current_catalog_num VARCHAR2(255);
7717 l_distribution_set_id NUMBER;
7718 l_future_pay_ccid NUMBER;
7719 l_prepay_code_combination_id NUMBER;
7720 l_pay_group_lookup_code VARCHAR2(255);
7721 l_sup_pay_group_lookup_code VARCHAR2(255);
7722 l_payment_priority NUMBER;
7723 l_terms_id NUMBER;
7724 l_sup_terms_id NUMBER;
7725 l_invoice_amount_limit NUMBER;
7726 l_pay_date_basis_lookup_code VARCHAR2(255);
7727 l_sup_pay_date_basis_lk_code VARCHAR2(255);
7728 l_always_take_disc_flag VARCHAR2(255);
7729 l_sup_always_take_disc_flag VARCHAR2(255);
7730 l_invoice_currency_code VARCHAR2(255);
7731 l_sup_invoice_currency_code VARCHAR2(255);
7732 l_payment_currency_code VARCHAR2(255);
7733 l_sup_payment_currency_code VARCHAR2(255);
7734 l_hold_all_payments_flag VARCHAR2(255);
7735 l_hold_future_payments_flag VARCHAR2(255);
7736 l_hold_reason VARCHAR2(255);
7737 l_hold_unmatched_invoices_flag VARCHAR2(255);
7738 l_match_option VARCHAR2(255);
7739 l_create_debit_memo_flag VARCHAR2(255);
7740 l_tax_reporting_site_flag VARCHAR2(255);
7741 l_attribute_category VARCHAR2(255);
7742 l_validation_number NUMBER;
7743 l_exclude_freight_from_disc VARCHAR2(255);
7744 l_check_digits VARCHAR2(255);
7745 l_address_style VARCHAR2(255);
7746 l_language VARCHAR2(255);
7747 l_allow_awt_flag VARCHAR2(255);
7748 l_awt_group_id NUMBER;
7749 l_pay_on_code VARCHAR2(255);
7750 l_default_pay_site_id NUMBER;
7751 l_pay_on_receipt_summary_code VARCHAR2(255);
7752 l_vendor_site_code_alt VARCHAR2(255);
7753 l_address_lines_alt VARCHAR2(255);
7754 l_pcard_site_flag VARCHAR2(255);
7755 l_country_of_origin_code VARCHAR2(255);
7756 l_calling_sequence VARCHAR2(255);
7757 l_shipping_location_id NUMBER;
7758 l_supplier_notif_method VARCHAR2(255);
7759 l_email_address VARCHAR2(255);
7760 l_remittance_email VARCHAR2(255);
7761 l_bank_charge_bearer VARCHAR2(255);
7762 l_sup_bank_charge_bearer VARCHAR2(255);
7763
7764 l_inventory_org_id NUMBER;
7765
7766 l_old_org_id VARCHAR2(255);
7767 l_org_id NUMBER;
7768 l_not_used VARCHAR2(2000);
7769 l_default_country VARCHAR2(255);
7770 l_federal_reportable_flag VARCHAR2(1); -- Supplier Import
7771 l_org_type_lookup_code VARCHAR2(25); -- Supplier Import
7772 l_set_of_books_id NUMBER; -- Supplier Import
7773 l_pay_on_rec_summary_code VARCHAR2(25); -- Supplier Import
7774
7775 l_duns_number VARCHAR2(30);
7776 l_tolerance_id NUMBER;
7777
7778 l_accts_pay_ccid_def VARCHAR2(255);
7779 l_prepay_ccid_def VARCHAR2(255);
7780 l_future_pay_ccid_def VARCHAR2(255);
7781
7782 l_user_id number := FND_GLOBAL.USER_ID;
7783 l_last_update_login number := FND_GLOBAL.LOGIN_ID;
7784 l_program_application_id number := FND_GLOBAL.prog_appl_id;
7785 l_program_id number := FND_GLOBAL.conc_program_id;
7786 l_request_id number := FND_GLOBAL.conc_request_id;
7787
7788 l_val_return_status VARCHAR2(50);
7789 l_val_msg_count NUMBER;
7790 l_val_msg_data VARCHAR2(2000);
7791 l_loc_return_status VARCHAR2(50);
7792 l_loc_msg_count NUMBER;
7793 l_loc_msg_data VARCHAR2(2000);
7794 l_site_return_status VARCHAR2(50);
7795 l_site_msg_count NUMBER;
7796 l_site_msg_data VARCHAR2(2000);
7797 l_pay_return_status VARCHAR2(50);
7798 l_pay_msg_count NUMBER;
7799 l_pay_msg_data VARCHAR2(2000);
7800 l_org_context VARCHAR2(1);
7801 l_multi_org_flag VARCHAR2(1);
7802 l_debug_info VARCHAR2(2000);
7803 l_party_id NUMBER;
7804 l_vendor_type_lookup_code VARCHAR2(30);
7805 l_vendor_site_rec r_vendor_site_rec_type;
7806 l_accts_pay_ccid NUMBER;
7807 l_prepay_ccid NUMBER;
7808 l_future_ccid NUMBER;
7809 l_last_updated_by NUMBER;
7810 l_created_by NUMBER;
7811 l_default_country_code VARCHAR2(25);
7812 l_home_country_code VARCHAR2(25);
7813 l_location_valid VARCHAR2(1);
7814 l_party_site_valid VARCHAR2(1);
7815 l_payee_valid VARCHAR2(1);
7816 l_loc_id NUMBER;
7817 l_party_site_id NUMBER;
7818 l_party_site_number VARCHAR2(30);
7819 l_org_id_derive NUMBER;
7820 x_valid BOOLEAN;
7821 -- bug 7371143 start
7822 l_offset_tax_flag VARCHAR2(1);
7823 l_auto_tax_calc_flag VARCHAR2(1);
7824 -- bug 7371143 end
7825
7826 /* Variable Declaration for IBY */
7827 ext_payee_tab
7828 IBY_DISBURSEMENT_SETUP_PUB.External_Payee_Tab_Type;
7829 ext_payee_id_tab
7830 IBY_DISBURSEMENT_SETUP_PUB.Ext_Payee_Id_Tab_Type;
7831 ext_payee_create_tab
7832 IBY_DISBURSEMENT_SETUP_PUB.Ext_Payee_Create_Tab_Type;
7833
7834 l_ext_payee_rec IBY_DISBURSEMENT_SETUP_PUB.EXTERNAL_PAYEE_REC_TYPE;
7835
7836 -- Bug#7506443 start
7837 l_tax_classification_code ZX_PARTY_TAX_PROFILE.TAX_CLASSIFICATION_CODE%TYPE;
7838 l_pymt_method_code iby_external_payees_all.default_payment_method_code%TYPE;
7839 l_inactive_date iby_external_payees_all.Inactive_Date%TYPE;
7840 l_Exclusive_Pay_Flag IBY_EXTERNAL_PAYEES_ALL.exclusive_payment_flag%TYPE;
7841 -- Debug Bug 8769088 start
7842 l_delivery_channel_code IBY_EXTERNAL_PAYEES_ALL.delivery_channel_code%TYPE;
7843 l_bank_instruction1_code IBY_EXTERNAL_PAYEES_ALL.bank_instruction1_code%TYPE;
7844 l_bank_instruction2_code IBY_EXTERNAL_PAYEES_ALL.bank_instruction2_code%TYPE;
7845 l_bank_instr_detail IBY_EXTERNAL_PAYEES_ALL.bank_instruction_details%TYPE;
7846 l_settlement_priority IBY_EXTERNAL_PAYEES_ALL.settlement_priority%TYPE;
7847 l_payment_text_msg1 IBY_EXTERNAL_PAYEES_ALL.payment_text_message1%TYPE;
7848 l_payment_text_msg2 IBY_EXTERNAL_PAYEES_ALL.payment_text_message2%TYPE;
7849 l_payment_text_msg3 IBY_EXTERNAL_PAYEES_ALL.payment_text_message3%TYPE;
7850 l_payment_reason_code IBY_EXTERNAL_PAYEES_ALL.payment_reason_code%TYPE;
7851 l_paymt_rsn_comts IBY_EXTERNAL_PAYEES_ALL.payment_reason_comments%TYPE;
7852 l_pmt_format IBY_EXTERNAL_PAYEES_ALL.payment_format_code%TYPE;
7853 l_remt_advc_dlvry_mthd IBY_EXTERNAL_PAYEES_ALL.remit_advice_delivery_method%TYPE;
7854 l_remit_advice_email IBY_EXTERNAL_PAYEES_ALL.remit_advice_email%TYPE;
7855 l_remit_advice_fax IBY_EXTERNAL_PAYEES_ALL.remit_advice_fax%TYPE;
7856 l_ext_payee_id IBY_EXTERNAL_PAYEES_ALL.ext_payee_id%TYPE;
7857 -- Debug Bug 8769088 end
7858 -- Bug#7506443 start
7859
7860 l_sync_return_status VARCHAR2(50);
7861 l_sync_msg_count NUMBER;
7862 l_sync_msg_data VARCHAR2(2000);
7863 l_sup_awt_flag VARCHAR2(1);
7864 -- BUG 6739544 Start
7865 ORG_ID_EXCEPTION EXCEPTION;
7866 -- BUG 6739544 End
7867
7868 l_party_site_num VARCHAR2(1); -- Bug 6823885
7869 l_addr_val_status VARCHAR2(255); -- bug9128869
7870 l_addr_warn_msg VARCHAR2(2000); -- bug9128869
7871
7872 L_PARTY_TAX_PROFILE_ID zx_party_tax_profile.party_tax_profile_id%type; -- Bug 7207314
7873 l_return_status VARCHAR2(2000); --Bug 7207314
7874 -- changes for Bug#7506443 start
7875 /* Bug 12582862 Cursors separated for retrieving external payee details and payment method */
7876 Cursor get_iby_dtls_csr(p_prty_id NUMBER) is
7877 SELECT Iep.Exclusive_Payment_Flag,
7878 /* Bug9955876 */
7879 /* NVL(iep.exclusive_payment_flag,'N') exclusive_payment_flag, -- B 8900634/
7880 8889211 */
7881 iep.Bank_instruction1_code, -- Bug 8769088 start
7882 iep.Bank_instruction2_code,
7883 iep.Delivery_channel_code,
7884 iep.bank_instruction_details,
7885 iep.settlement_priority,
7886 iep.payment_text_message1,
7887 iep.payment_text_message2,
7888 iep.payment_text_message3,
7889 iep.bank_charge_bearer,
7890 iep.payment_reason_code,
7891 iep.payment_reason_comments,
7892 iep.payment_format_code,
7893 iep.remit_advice_delivery_method, -- separate remittance advice delivery
7894 iep.remit_advice_email, -- separate remittance advice delivery
7895 iep.remit_advice_fax, -- separate remittance advice delivery
7896 -- Bug 8769088 end
7897 iep.ext_payee_id
7898 FROM iBy_External_Payees_All iep
7899 WHERE iep.Payee_Party_Id = p_prty_id
7900 AND Party_Site_Id IS NULL
7901 AND Supplier_Site_Id IS NULL;
7902
7903 Cursor get_iby_pay_dtls_csr(p_ext_payee_id NUMBER) is
7904 SELECT pmtmthdAssignmentseo.Payment_Method_Code,
7905 pmtmthdAssignmentseo.InActive_Date
7906 FROM iBy_Payment_Methods_vl pmthds,
7907 iBy_ext_Party_pmt_mthds pmtmthdAssignmentseo
7908 WHERE pmthds.Payment_Method_Code = pmtmthdAssignmentseo.Payment_Method_Code (+)
7909 AND pmtmthdAssignmentseo.Payment_Flow = 'DISBURSEMENTS'
7910 AND Nvl(pmthds.InActive_Date,Trunc(SYSDATE + 1)) > Trunc(SYSDATE)
7911 AND Nvl(pmtmthdAssignmentseo.InActive_Date,Trunc(SYSDATE + 1)) > Trunc(SYSDATE) /* Bug9763027 */
7912 AND pmtmthdAssignmentseo.Payment_Function = 'PAYABLES_DISB'
7913 AND pmtmthdAssignmentseo.ext_pmt_Party_Id = p_ext_payee_id
7914 AND pmtmthdAssignmentseo.primary_flag = 'Y';
7915
7916 L_ROUNDING_LEVEL_CODE VARCHAR2(30) ; /* B 9530837 */
7917 L_ROUNDING_RULE_CODE VARCHAR2(30) ; /* B 9530837 */
7918 L_INCLUSIVE_TAX_FLAG VARCHAR2(1) ; /* B 9530837 */
7919 /* Bug11664523 start */
7920 Zic_end_date_Active Date;
7921 Zic_start_date_active Date;
7922 L_Zic_tax_classification_code ZX_PARTY_TAX_PROFILE.TAX_CLASSIFICATION_CODE%TYPE;
7923 VAT_CODE_EXCEPTION EXCEPTION;
7924 /* Bug11664523 end */
7925
7926 l_employee_id ap_suppliers.employee_id%type; --bug 12835899
7927 l_create_awt_dists_type ap_system_parameters_all.create_awt_dists_type%type; --bug 13092500
7928
7929 /* Bug 12334398 start */
7930 l_party_site_use_rec HZ_PARTY_SITE_V2PUB.party_site_use_rec_type;
7931 l_site_use_return_status VARCHAR2(50) := 'S';
7932 l_site_use_msg_count NUMBER;
7933 l_site_use_msg_data VARCHAR2(2000);
7934 l_party_site_use_id NUMBER;
7935 /* Bug 12334398 end */
7936 BEGIN
7937 -- Standard Start of API savepoint
7938 SAVEPOINT Create_Vendor_Site_PUB;
7939
7940 IF NOT FND_API.Compatible_API_Call ( l_api_version ,
7941 p_api_version ,
7942 l_api_name ,
7943 G_PKG_NAME )
7944 THEN
7945 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
7946 END IF;
7947
7948 -- Initialize message list if p_init_msg_list is set to TRUE.
7949 IF FND_API.to_Boolean( p_init_msg_list ) THEN
7950 FND_MSG_PUB.initialize;
7951 END IF;
7952 -- Bug 5055120
7953 -- This call is incorrect. The correct call is to have the calling
7954 -- modules set the context and call this API with the right ORG_ID.
7955
7956 -- Bug 6812010 :Due to 5055120, Payables' own supplier site import program fails
7957 -- because MO initialization is not happening.To fix 6812010 and keep 5055120 intact,
7958 -- strategy is that if calling application id is not AP then we will not call MO_GLOBAL.INIT
7959 -- since it is calling module's responsibility to perform MO initialization.
7960 -- Bug 6930102
7961 If (l_program_application_id = 200 OR l_program_application_id = -1)then
7962 MO_GLOBAL.INIT ('SQLAP');
7963 end if;
7964
7965 -- Initialize API return status to success
7966 x_return_status := FND_API.G_RET_STS_SUCCESS;
7967 l_val_return_status := FND_API.G_RET_STS_SUCCESS;
7968 l_loc_return_status := FND_API.G_RET_STS_SUCCESS;
7969 l_site_return_status := FND_API.G_RET_STS_SUCCESS;
7970 l_pay_return_status := FND_API.G_RET_STS_SUCCESS;
7971 l_sync_return_status := FND_API.G_RET_STS_SUCCESS;
7972
7973 -- API body
7974 ------------------------------------------------------------------------
7975 l_debug_info := 'Call Org_Id and Operating_unit_name validation for Import';
7976 ------------------------------------------------------------------------
7977 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
7978 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
7979 l_api_name,l_debug_info);
7980 END IF;
7981
7982 -- Org_Id and Operating_unit_name validation
7983 -- This is to make sure if org_id is not provided but
7984 -- org_name is provided then derive the org_id from operating_unit
7985
7986 IF (p_vendor_site_rec.org_id is NULL AND
7987 p_vendor_site_rec.org_name is NOT NULL) THEN
7988
7989 Check_org_id_name(l_org_id_derive,
7990 p_vendor_site_rec.org_name,
7991 'AP_SUPPLIER_SITES_INT',
7992 p_vendor_site_rec.vendor_site_interface_id,
7993 x_valid);
7994
7995 IF NOT x_valid THEN
7996 x_return_status := FND_API.G_RET_STS_ERROR;
7997 END IF;
7998
7999 END IF;
8000
8001 IF l_org_id_derive IS NOT NULL THEN
8002 l_def_org_id := l_org_id_derive;
8003 ELSE
8004 l_def_org_id := p_vendor_site_rec.org_id;
8005 END IF;
8006
8007 IF l_def_org_id IS NULL THEN
8008 x_return_status := FND_API.G_RET_STS_ERROR;
8009 IF g_source = 'IMPORT' THEN
8010 IF (Insert_Rejections(
8011 'AP_SUPPLIER_SITES_INT',
8012 p_vendor_site_rec.vendor_site_interface_id,
8013 'AP_ORG_INFO_NULL', --bug 5568861
8014 g_user_id,
8015 g_login_id,
8016 'Create_Vendor_Site') <> TRUE) THEN
8017 --
8018 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
8019 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
8020 l_api_name,'Parameters: '
8021 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
8022 ||' ,Vendor_Site_Code: '||p_vendor_site_rec.vendor_site_code);
8023 END IF;
8024 END IF;
8025 ELSE
8026 -- Bug 5491139 hkaniven start --
8027 FND_MESSAGE.SET_NAME('SQLAP','AP_ORG_INFO_NULL');
8028 FND_MSG_PUB.ADD;
8029 -- Bug 5491139 hkaniven end --
8030 -- Bug 8438716 Start
8031 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
8032 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
8033 l_api_name,'Parameters: '
8034 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
8035 ||' ,Vendor_Site_Code: '||p_vendor_site_rec.vendor_site_code);
8036 END IF;
8037 -- Bug 8438716 End
8038
8039 END IF;
8040 -- RAISE FND_API.G_EXC_ERROR; BUG 6739544
8041 RAISE ORG_ID_EXCEPTION; -- BUG 6739544
8042 END IF;
8043 -- Bug 5055120
8044 -- Added validation of org_id
8045 BEGIN
8046
8047 MO_GLOBAL.validate_orgid_pub_api(l_def_org_id,
8048 'N',
8049 x_return_status);
8050 EXCEPTION
8051 WHEN OTHERS
8052 THEN
8053 IF g_source = 'IMPORT' THEN
8054 IF (Insert_Rejections(
8055 'AP_SUPPLIER_SITES_INT',
8056 p_vendor_site_rec.vendor_site_interface_id,
8057 'AP_ORG_INFO_NULL', --bug 5568861
8058 g_user_id,
8059 g_login_id,
8060 'Create_Vendor_Site') <> TRUE) THEN
8061 --
8062 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
8063 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
8064 l_api_name,'Parameters: '
8065 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
8066 ||' ,Vendor_Site_Code: '||p_vendor_site_rec.vendor_site_code);
8067 END IF;
8068 END IF;
8069 ELSE
8070 -- Bug 5491139 hkaniven start --
8071 FND_MESSAGE.SET_NAME('SQLAP','AP_ORG_INFO_NULL');
8072 FND_MSG_PUB.ADD;
8073 -- Bug 5491139 hkaniven end --
8074 -- Bug 8438716 Start
8075 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
8076 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
8077 l_api_name,'Error after MO_GLOBAL.validate_orgid_pub_api Parameters: '
8078 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
8079 ||' ,Vendor_Site_Code: '||p_vendor_site_rec.vendor_site_code);
8080 END IF;
8081 -- Bug 8438716 End
8082 END IF;
8083 -- RAISE FND_API.G_EXC_ERROR;
8084 RAISE ORG_ID_EXCEPTION; -- BUG 6739544
8085 END;
8086
8087
8088 l_org_context := mo_global.get_access_mode;
8089
8090 IF nvl(l_org_context, 'K') <> 'S' THEN
8091 MO_GLOBAL.set_policy_context('S',l_def_org_id);
8092 END IF;
8093
8094 SELECT nvl(multi_org_flag,'N')
8095 INTO l_multi_org_flag
8096 FROM FND_PRODUCT_GROUPS;
8097
8098 l_vendor_site_rec := p_vendor_site_rec;
8099
8100 l_vendor_site_rec.org_id := l_def_org_id;
8101
8102 --Open Issue 14 -- need to call initialize procedure due to MOAC changes
8103 l_debug_info := 'Call to default CCIDs from FINANCIAL_SYSTEM_PARAMETERS';
8104 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
8105 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
8106 END IF;
8107 --
8108 -- Get default CCIDs from FINANCIAL_SYSTEM_PARAMETERS
8109 --
8110
8111 --bug 12835899
8112 select employee_id
8113 into l_employee_id
8114 from ap_suppliers
8115 where vendor_id = l_vendor_site_rec.vendor_id;
8116 --end of bug 12835899
8117
8118 ap_apxvdmvd_pkg.initialize(
8119 x_user_defined_vendor_num_code => l_not_used,
8120 x_manual_vendor_num_type => l_not_used,
8121 x_rfq_only_site_flag => l_rfq_only_site_flag,
8122 x_ship_to_location_id => l_ship_to_location_id,
8123 x_ship_to_location_code => l_not_used,
8124 x_bill_to_location_id => l_bill_to_location_id,
8125 x_bill_to_location_code => l_not_used,
8126 x_fob_lookup_code => l_fob_lookup_code,
8127 x_freight_terms_lookup_code => l_freight_terms_lookup_code,
8128 x_terms_id => l_terms_id,
8129 x_terms_disp => l_not_used,
8130 x_always_take_disc_flag => l_always_take_disc_flag,
8131 x_invoice_currency_code => l_invoice_currency_code,
8132 x_org_id => l_vendor_site_rec.org_id,
8133 x_set_of_books_id => l_not_used,
8134 x_short_name => l_not_used,
8135 x_payment_currency_code => l_payment_currency_code,
8136 x_accts_pay_ccid => l_accts_pay_ccid,
8137 x_future_dated_payment_ccid => l_future_pay_ccid,
8138 x_prepay_code_combination_id => l_prepay_ccid,
8139 x_vendor_pay_group_lookup_code => l_pay_group_lookup_code,
8140 x_sys_auto_calc_int_flag => l_not_used,
8141 x_terms_date_basis => l_terms_date_basis,
8142 x_terms_date_basis_disp => l_not_used,
8143 x_chart_of_accounts_id => l_not_used,
8144 x_fob_lookup_disp => l_not_used,
8145 x_freight_terms_lookup_disp => l_not_used,
8146 x_vendor_pay_group_disp => l_not_used,
8147 /* x_fin_require_matching => l_hold_unmatched_invoices_flag, --Bug 7651872 Commented for Bug#9193468 */
8148 x_fin_require_matching => l_not_used, /* Added for bug#9193468 */
8149 x_sys_require_matching => l_not_used,
8150 x_fin_match_option => l_not_used,
8151 x_po_create_dm_flag => l_not_used,
8152 x_exclusive_payment => l_not_used,
8153 x_vendor_auto_int_default => l_not_used,
8154 x_inventory_organization_id => l_not_used,
8155 x_ship_via_lookup_code => l_ship_via_lookup_code,
8156 x_ship_via_disp => l_not_used,
8157 x_sysdate => l_not_used,
8158 x_enforce_ship_to_loc_code => l_not_used,
8159 x_receiving_routing_id => l_not_used,
8160 x_qty_rcv_tolerance => l_not_used,
8161 x_qty_rcv_exception_code => l_not_used,
8162 x_days_early_receipt_allowed => l_not_used,
8163 x_days_late_receipt_allowed => l_not_used,
8164 x_allow_sub_receipts_flag => l_not_used,
8165 x_allow_unord_receipts_flag => l_not_used,
8166 x_receipt_days_exception_code => l_not_used,
8167 x_enforce_ship_to_loc_disp => l_not_used,
8168 x_qty_rcv_exception_disp => l_not_used,
8169 x_receipt_days_exception_disp => l_not_used,
8170 x_receipt_required_flag => l_not_used,
8171 x_inspection_required_flag => l_not_used,
8172 x_payment_method_lookup_code => l_not_used,
8173 x_payment_method_disp => l_not_used,
8174 x_pay_date_basis_lookup_code => l_not_used,
8175 x_pay_date_basis_disp => l_not_used,
8176 x_receiving_routing_name => l_not_used,
8177 x_ap_inst_flag => l_not_used,
8178 x_po_inst_flag => l_not_used,
8179 x_home_country_code => l_home_country_code,
8180 x_default_country_code => l_default_country,
8181 x_default_country_disp => l_not_used,
8182 x_default_awt_group_id => l_awt_group_id,
8183 x_default_awt_group_name => l_not_used,
8184 x_allow_awt_flag => l_allow_awt_flag,
8185 x_create_awt_dists_type => l_create_awt_dists_type, --bug 13092500
8186 x_base_currency_code => l_not_used,
8187 x_address_style => l_not_used,
8188 x_use_bank_charge_flag => l_not_used,
8189 x_bank_charge_bearer => l_bank_charge_bearer,
8190 x_employee_id => l_employee_id, --bug 12835899
8191 x_calling_sequence => null);
8192
8193 -- Retrieve defaults from the vendor master
8194
8195 SELECT --8892266 pv.terms_date_basis -- Bug#7506443 --bug 8200984 (changed to aps)--Bug8280106
8196 --8892266, pv.pay_group_lookup_code
8197 pv.payment_priority
8198 -- , asp.always_take_disc_flag .. B# 8260603
8199 , pv.always_take_disc_flag -- B# 8260603
8200 , pv.hold_all_payments_flag
8201 , pv.hold_future_payments_flag
8202 , pv.hold_reason
8203 --Bug6317600 Commenting awt_group_id. AWT should be defaulted from Payables options and not Supplier
8204 --, pv.awt_group_id
8205 , asp.bank_charge_bearer
8206 , pv.match_option -- bug 8200984 (changed to aps)-Bug 8280106(changed to default from Supplier only)
8207 --8892266 , pv.pay_date_basis_lookup_code -- bug 8200984 (changed to aps)-Bug 8280106(changed to default from Supplier only)
8208 , pv.invoice_amount_limit
8209 --8892266 , NVL(pv.invoice_currency_code,asp.invoice_currency_code) --bug:7282105
8210 --8892266 , NVL(pv.payment_currency_code,asp.payment_currency_code) --bug:7282105
8211 --8892266 , pv.terms_id -- Bug#7506443--8200984 (changed to aps)-Bug 8280106(changed to default from Supplier only)
8212 , pv.federal_reportable_flag
8213 , pv.organization_type_lookup_code
8214 , asp.set_of_books_id
8215 --Bug 7651872, asp.hold_unmatched_invoices_flag
8216 , decode(pv.vendor_type_lookup_code
8217 ,'EMPLOYEE'
8218 ,asp.hold_unmatched_invoices_flag
8219 ,pv.hold_unmatched_invoices_flag) /* Added for bug#9193468 */
8220 /* ,l_hold_unmatched_invoices_flag) -- Bug 8614887 Commented for bug#9193468 */
8221 , pv.exclude_freight_from_discount
8222 , pv.party_id
8223 , pv.vendor_type_lookup_code
8224 , nvl(pv.allow_awt_flag, 'N')
8225 , pv.CREATE_DEBIT_MEMO_FLAG --Bug8373166
8226 INTO
8227 --8892266 l_sup_terms_date_basis
8228 --8892266 , l_sup_pay_group_lookup_code
8229 l_payment_priority
8230 , l_sup_always_take_disc_flag
8231 , l_hold_all_payments_flag
8232 , l_hold_future_payments_flag
8233 , l_hold_reason
8234 --Bug6317600
8235 --, l_awt_group_id
8236 , l_sup_bank_charge_bearer
8237 , l_match_option
8238 --8892266 , l_sup_pay_date_basis_lk_code
8239 , l_invoice_amount_limit
8240 --8892266 , l_sup_invoice_currency_code
8241 --8892266 , l_sup_payment_currency_code
8242 --8892266 , l_sup_terms_id
8243 , l_federal_reportable_flag
8244 , l_org_type_lookup_code
8245 , l_set_of_books_id
8246 --Bug 7651872, l_hold_unmatched_invoices_flag
8247 , l_hold_unmatched_invoices_flag --Bug 8614887
8248 , l_exclude_freight_from_disc
8249 , l_party_id
8250 , l_vendor_type_lookup_code
8251 , l_sup_awt_flag
8252 ,l_create_debit_memo_flag --Bug8373166
8253 FROM po_vendors pv,
8254 ap_system_parameters_all asp,
8255 ap_product_setup aps -- Bug 8200984
8256 WHERE pv.vendor_id = p_vendor_site_rec.vendor_id
8257 AND asp.org_id=l_def_org_id;
8258
8259 l_last_updated_by := fnd_global.user_id;
8260 l_last_update_login := fnd_global.login_id;
8261 l_created_by := fnd_global.user_id;
8262
8263 /* Start of bug8892266 */
8264 SELECT NVL(asp.invoice_currency_code, pv.invoice_currency_code) invoice_currency_code,
8265 NVL(asp.payment_currency_code, pv.payment_currency_code) payment_currency_code,
8266 NVL(asp.vendor_pay_group_lookup_code, pv.pay_group_lookup_code) pay_group_lookup_code,
8267 NVL(asp.terms_date_basis, pv.terms_date_basis) terms_date_basis,
8268 NVL(asp.pay_date_basis_lookup_code, pv.pay_date_basis_lookup_code) pay_date_basis_lookup_code,
8269 NVL(asp.terms_id, pv.terms_id) terms_id
8270 INTO l_sup_invoice_currency_code,
8271 l_sup_payment_currency_code,
8272 l_sup_pay_group_lookup_code,
8273 l_sup_terms_date_basis,
8274 l_sup_pay_date_basis_lk_code,
8275 l_sup_terms_id
8276 FROM po_vendors pv,
8277 ap_system_parameters_all asp
8278 WHERE pv.vendor_id = p_vendor_site_rec.vendor_id
8279 AND asp.org_id=l_def_org_id;
8280
8281 /* Partial End of bug8892266 */
8282
8283
8284 --Bug6679696
8285 IF l_vendor_type_lookup_code = 'EMPLOYEE' then
8286 l_vendor_site_rec.pay_site_flag := nvl(l_vendor_site_rec.pay_site_flag,'Y');
8287 END IF;
8288 G_vendor_type_lookup_code := l_vendor_type_lookup_code;
8289 l_vendor_site_rec.rfq_only_site_flag
8290 := nvl(l_vendor_site_rec.rfq_only_site_flag, l_rfq_only_site_flag);
8291 l_vendor_site_rec.attention_ar_flag :=
8292 nvl(l_vendor_site_rec.attention_ar_flag, 'N');
8293 -- Bug 8627216 Start
8294 if (l_vendor_site_rec.SHIP_TO_LOCATION_CODE is null) then
8295 l_vendor_site_rec.ship_to_location_id
8296 := nvl(l_vendor_site_rec.ship_to_location_id, l_ship_to_location_id);
8297 end if;
8298 if (l_vendor_site_rec.BILL_TO_LOCATION_CODE is null) then
8299 l_vendor_site_rec.bill_to_location_id
8300 := nvl(l_vendor_site_rec.bill_to_location_id, l_bill_to_location_id);
8301 end if;
8302 -- Bug 8627216 End
8303 l_vendor_site_rec.ship_via_lookup_code
8304 := nvl(l_vendor_site_rec.ship_via_lookup_code, l_ship_via_lookup_code);
8305 l_vendor_site_rec.freight_terms_lookup_code
8306 := nvl(l_vendor_site_rec.freight_terms_lookup_code,
8307 l_freight_terms_lookup_code);
8308 l_vendor_site_rec.fob_lookup_code
8309 := nvl(l_vendor_site_rec.fob_lookup_code, l_fob_lookup_code);
8310 -- Bug#7506443 start
8311
8312 l_vendor_site_rec.terms_date_basis := NVL(l_vendor_site_rec.terms_date_basis, l_sup_terms_date_basis); --bug8892266
8313
8314 -- Bug#7506443 end
8315 l_vendor_site_rec.accts_pay_code_combination_id
8316 := nvl(l_vendor_site_rec.accts_pay_code_combination_id,
8317 l_accts_pay_ccid);
8318 l_vendor_site_rec.future_dated_payment_ccid
8319 := nvl(l_vendor_site_rec.future_dated_payment_ccid,
8320 l_future_pay_ccid);
8321 l_vendor_site_rec.prepay_code_combination_id
8322 := nvl(l_vendor_site_rec.prepay_code_combination_id,
8323 l_prepay_ccid);
8324 -- Bug 5409457. Pay Group should be based supplier, if there is no value at
8325 -- supplier then from product setup level.
8326
8327 l_vendor_site_rec.payment_priority
8328 := nvl(l_vendor_site_rec.payment_priority, l_payment_priority);
8329 -- Bug#7506443 start
8330 -- Bug#8680310 start
8331
8332 --bug 12835899
8333 IF l_employee_id is NULL
8334 THEN
8335
8336 IF (l_vendor_site_rec.terms_name IS NULL OR
8337 l_vendor_site_rec.terms_name = ap_null_char) THEN
8338 l_vendor_site_rec.terms_id := nvl(l_vendor_site_rec.terms_id,
8339 nvl(l_sup_terms_id, l_terms_id));
8340 END IF;
8341
8342 l_vendor_site_rec.pay_group_lookup_code := NVL(l_vendor_site_rec.pay_group_lookup_code, l_sup_pay_group_lookup_code);--bug8892266
8343
8344 ELSE
8345 IF (l_vendor_site_rec.terms_name IS NULL OR l_vendor_site_rec.terms_name = ap_null_char)
8346 THEN
8347 l_vendor_site_rec.terms_id := nvl(l_vendor_site_rec.terms_id,l_terms_id);
8348 END IF;
8349
8350 l_vendor_site_rec.pay_group_lookup_code := nvl(l_vendor_site_rec.pay_group_lookup_code,l_pay_group_lookup_code);
8351
8352 END IF;
8353 --end of bug 12835899
8354
8355 -- Bug#8680310 end
8356 -- Bug#7506443 end
8357 l_vendor_site_rec.invoice_amount_limit
8358 := nvl(l_vendor_site_rec.invoice_amount_limit, l_invoice_amount_limit);
8359 /* bug8892266 l_vendor_site_rec.pay_date_basis_lookup_code
8360 := nvl(l_vendor_site_rec.pay_date_basis_lookup_code,
8361 nvl(l_pay_date_basis_lookup_code, l_sup_pay_date_basis_lk_code)); */ --bug8892266
8362 l_vendor_site_rec.pay_date_basis_lookup_code := NVL(l_vendor_site_rec.pay_date_basis_lookup_code, l_sup_pay_date_basis_lk_code); --bug8892266
8363
8364 -- bug6680946
8365 l_vendor_site_rec.always_take_disc_flag
8366 := nvl(l_vendor_site_rec.always_take_disc_flag, l_sup_always_take_disc_flag);
8367 /* l_vendor_site_rec.invoice_currency_code
8368 := nvl(l_vendor_site_rec.invoice_currency_code,
8369 nvl(l_sup_invoice_currency_code, l_invoice_currency_code )); --Bug 7282105 */ --bug8892266
8370 l_vendor_site_rec.invoice_currency_code := NVL(l_vendor_site_rec.invoice_currency_code, l_sup_invoice_currency_code); --bug8892266
8371
8372 l_vendor_site_rec.payment_currency_code
8373 := nvl(l_vendor_site_rec.payment_currency_code,
8374 l_sup_payment_currency_code); --bug 8892266
8375 l_vendor_site_rec.hold_all_payments_flag
8376 := nvl(l_vendor_site_rec.hold_all_payments_flag,
8377 l_hold_all_payments_flag);
8378 l_vendor_site_rec.hold_future_payments_flag
8379 := nvl(l_vendor_site_rec.hold_future_payments_flag,
8380 l_hold_future_payments_flag);
8381 l_vendor_site_rec.hold_reason
8382 := nvl(l_vendor_site_rec.hold_reason, l_hold_reason);
8383 l_vendor_site_rec.hold_unmatched_invoices_flag
8384 := nvl(l_vendor_site_rec.hold_unmatched_invoices_flag,
8385 l_hold_unmatched_invoices_flag);
8386 l_vendor_site_rec.match_option
8387 := nvl(l_vendor_site_rec.match_option, l_match_option);
8388 l_vendor_site_rec.create_debit_memo_flag
8389 --:= nvl(l_vendor_site_rec.create_debit_memo_flag, 'N');--Bug8373166
8390 := nvl(l_vendor_site_rec.create_debit_memo_flag, l_create_debit_memo_flag);--Bug8373166
8391 l_vendor_site_rec.tax_reporting_site_flag
8392 := nvl(l_vendor_site_rec.tax_reporting_site_flag, 'N');
8393 l_vendor_site_rec.validation_number
8394 := nvl(l_vendor_site_rec.validation_number, 0);
8395 l_vendor_site_rec.exclude_freight_from_discount
8396 := nvl(l_vendor_site_rec.exclude_freight_from_discount,
8397 l_exclude_freight_from_disc);
8398 --Bug 7384699 populate allow_awt_flag only iff Supplier awt_flag is enabled
8399 if(l_sup_awt_flag = 'Y') THEN
8400 l_vendor_site_rec.allow_awt_flag
8401 := nvl(l_vendor_site_rec.allow_awt_flag, l_allow_awt_flag);
8402 else
8403 l_vendor_site_rec.allow_awt_flag := 'N';
8404 end if;
8405
8406 --Bug6317600 Populate awt_group_id only if allow_awt_flag is Y
8407 if nvl( l_vendor_site_rec.allow_awt_flag,'N') = 'Y'
8408 then
8409
8410 --bug 13092500
8411 IF (p_vendor_site_rec.awt_group_name is NULL or p_vendor_site_rec.awt_group_name = ap_null_char) /*Bug 9592253 */
8412 THEN
8413
8414 IF l_create_awt_dists_type = 'APPROVAL' or l_create_awt_dists_type = 'BOTH'
8415 THEN
8416 l_vendor_site_rec.awt_group_id := nvl(l_vendor_site_rec.awt_group_id, l_awt_group_id);
8417 END IF;
8418
8419 END IF;
8420
8421 IF (p_vendor_site_rec.pay_awt_group_name is NULL or p_vendor_site_rec.pay_awt_group_name = ap_null_char)
8422 THEN
8423
8424 IF l_create_awt_dists_type = 'PAYMENT' or l_create_awt_dists_type = 'BOTH'
8425 THEN
8426 l_vendor_site_rec.pay_awt_group_id := nvl(l_vendor_site_rec.pay_awt_group_id, l_awt_group_id);
8427
8428 END IF;
8429 END IF;
8430 --end of bug 13092500
8431
8432 end if;
8433
8434 l_vendor_site_rec.bank_charge_bearer
8435 := nvl(l_vendor_site_rec.bank_charge_bearer,
8436 nvl(l_bank_charge_bearer, l_sup_bank_charge_bearer));
8437 l_vendor_site_rec.pcard_site_flag
8438 := nvl(l_vendor_site_rec.pcard_site_flag, 'N');
8439 l_vendor_site_rec.country_of_origin_code
8440 := nvl(l_vendor_site_rec.country_of_origin_code, l_default_country);
8441 l_vendor_site_rec.org_id := nvl(l_vendor_site_rec.org_id, l_org_id);
8442 l_vendor_site_rec.duns_number
8443 := nvl(l_vendor_site_rec.duns_number, l_duns_number);
8444
8445 validate_vendor_site(p_api_version => 1.0,
8446 p_init_msg_list => FND_API.G_FALSE,
8447 p_commit => FND_API.G_FALSE,
8448 x_return_status => l_val_return_status,
8449 x_msg_count => l_val_msg_count,
8450 x_msg_data => l_val_msg_data,
8451 p_vendor_site_rec => l_vendor_site_rec,
8452 P_mode => 'I',
8453 P_calling_prog => 'NOT ISETUP',
8454 x_party_site_valid => l_party_site_valid,
8455 x_location_valid => l_location_valid,
8456 x_payee_valid => l_payee_valid,
8457 p_vendor_site_id => x_vendor_site_id);
8458
8459 -- Bug 7429668 Adding condition of l_val_return_status to ensure that
8460 -- locations are created only if the validation passes successfully.
8461 IF l_location_valid = 'N' AND nvl(l_val_return_status,FND_API.G_RET_STS_SUCCESS) =
8462 FND_API.G_RET_STS_SUCCESS THEN -- location_id was null
8463
8464 l_location_rec.created_by_module := 'AP_SUPPLIERS_API';
8465 l_location_rec.application_id := 200;
8466 l_location_rec.address_style := l_vendor_site_rec.address_style;
8467 l_location_rec.province := l_vendor_site_rec.province;
8468 l_location_rec.country := l_vendor_site_rec.country;
8469 l_location_rec.county := l_vendor_site_rec.county;
8470 l_location_rec.address1 := l_vendor_site_rec.address_line1;
8471 l_location_rec.address2 := l_vendor_site_rec.address_line2;
8472 l_location_rec.address3 := l_vendor_site_rec.address_line3;
8473 l_location_rec.address4 := l_vendor_site_rec.address_line4;
8474 l_location_rec.address_lines_phonetic := l_vendor_site_rec.address_lines_alt;
8475 l_location_rec.city := l_vendor_site_rec.city;
8476 l_location_rec.state := l_vendor_site_rec.state;
8477 l_location_rec.postal_code := l_vendor_site_rec.zip;
8478
8479 -- The input language that we get from suppliers
8480 -- open interface will be NLS_LANGUAGE and will not be
8481 -- language code. So it needs to be converted to
8482 -- language_code before passed to TCA API.
8483
8484 IF l_vendor_site_rec.language IS NOT NULL THEN
8485 BEGIN
8486 SELECT language_code
8487 INTO l_location_rec.language
8488 FROM fnd_languages
8489 WHERE nls_language = l_vendor_site_rec.language;
8490 EXCEPTION
8491 WHEN OTHERS THEN
8492 l_location_rec.language := NULL;
8493 END;
8494 END IF;
8495
8496 --Open Issue 4, check for needed parameters
8497 --Bug6648405
8498 --Bug 6753822 - Added NVL on vendor_type_lookup_code
8499 IF (NVL(l_vendor_type_lookup_code,'DUMMY') <> 'EMPLOYEE') then
8500 hz_location_v2pub.create_location(
8501 p_init_msg_list => FND_API.G_FALSE,
8502 p_location_rec => l_location_rec,
8503 p_do_addr_val => 'Y', -- bug 9128869
8504 x_addr_val_status => l_addr_val_status, -- bug 9128869
8505 x_addr_warn_msg => l_addr_warn_msg, -- bug 9128869
8506 -- p_commit => FND_API.G_FALSE,
8507 x_return_status => l_loc_return_status,
8508 x_msg_count => l_loc_msg_count,
8509 x_msg_data => l_loc_msg_data,
8510 x_location_id => l_loc_id);
8511
8512 -- Bug 9128869 Start
8513
8514 IF l_addr_val_status <> FND_API.G_RET_STS_SUCCESS THEN
8515
8516 ------------------------------------------------------------------------
8517 l_debug_info := ' Address Validation status : '||l_addr_val_status;
8518 l_debug_info := l_debug_info ||' Address Warning message : '||l_addr_warn_msg;
8519 ------------------------------------------------------------------------
8520
8521 IF l_addr_val_status = 'W' THEN -- Warning case is accepted as Validate case.
8522 -- Please refer PM commments in Bug 9128869.
8523 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
8524 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
8525 END IF;
8526 END IF;
8527
8528 IF l_addr_val_status not in ('S','W') THEN
8529
8530 x_return_status := FND_API.G_RET_STS_ERROR; -- If address validation fails then
8531 -- throw the error message.
8532 IF g_source = 'IMPORT' THEN
8533 IF (Insert_Rejections(
8534 'AP_SUPPLIER_SITES_INT',
8535 p_vendor_site_rec.vendor_site_interface_id,
8536 'AP_INVALID_TCA_ERROR',
8537 g_user_id,
8538 g_login_id,
8539 'Validate_Vendor_Site') <> TRUE) THEN
8540
8541 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
8542 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
8543 END IF;
8544 END IF;
8545 ELSE
8546 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_TCA_ERROR');
8547 FND_MSG_PUB.ADD;
8548 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
8549 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
8550 END IF;
8551 END IF;
8552 END IF;
8553
8554 END IF;
8555 -- Bug 9128869 End
8556
8557 IF l_loc_return_status <> FND_API.G_RET_STS_SUCCESS THEN
8558 ------------------------------------------------------------------------
8559 l_debug_info := 'After call to hz_location_v2pub.create_location';
8560 l_debug_info := l_debug_info||' Return status : '||l_loc_return_status||' Error : '||l_loc_msg_data;
8561 ------------------------------------------------------------------------
8562 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
8563 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
8564 END IF;
8565 END IF;
8566 END IF;
8567 l_vendor_site_rec.location_id := l_loc_id;
8568
8569 END IF; --location_id was null
8570
8571 IF l_party_site_valid = 'N' and
8572 l_location_valid <> 'F' and
8573 nvl(l_loc_return_status,FND_API.G_RET_STS_SUCCESS) =
8574 FND_API.G_RET_STS_SUCCESS AND
8575 -- Bug 7429668
8576 nvl(l_val_return_status,FND_API.G_RET_STS_SUCCESS) =
8577 FND_API.G_RET_STS_SUCCESS THEN
8578
8579 --populate party site record
8580 l_party_site_rec.location_id := l_vendor_site_rec.location_id;
8581 l_party_site_rec.created_by_module := 'AP_SUPPLIERS_API';
8582 l_party_site_rec.application_id := 200;
8583 l_party_site_rec.party_id := l_party_id;
8584
8585 --Uncommenting the line below for the R12 FSIO gap,
8586 --as we want the duns number to be imported on
8587 --supplier sites(bug6053476)
8588 l_party_site_rec.duns_number_c := l_vendor_site_rec.duns_number;
8589 --Bug5896973
8590 --Added code to populate City + State + Country in party_site_name field of hz_party_sites table
8591 --l_party_site_rec.party_site_name :=
8592 -- nvl(l_vendor_site_rec.city,'')||' '
8593 -- ||nvl(l_vendor_site_rec.state,'')||' '
8594 -- ||nvl(l_vendor_site_rec.country,'');
8595 --Bug 7316431
8596 l_party_site_rec.party_site_name :=nvl(l_vendor_site_rec.party_site_name,( nvl(l_vendor_site_rec.vendor_site_code,''))); /* Bug9916291 */
8597
8598 --Open Issue 4, check for needed parameters
8599 --Bug6648405
8600 --Bug 6753822 - Added NVL on vendor_type_lookup_code
8601 IF (NVL(l_vendor_type_lookup_code,'DUMMY') <> 'EMPLOYEE') then
8602 -- udhenuko Bug 6823885 start
8603 --We need to populate the party site number based on profile value.
8604 fnd_profile.get('HZ_GENERATE_PARTY_SITE_NUMBER', l_party_site_num);
8605 IF nvl(l_party_site_num, 'Y') = 'N' THEN
8606 SELECT HZ_PARTY_SITE_NUMBER_S.Nextval
8607 INTO l_party_site_rec.party_site_number
8608 FROM DUAL;
8609 END IF;
8610 -- udhenuko Bug 6823885 End
8611 hz_party_site_v2pub.create_party_site(
8612 p_init_msg_list => FND_API.G_FALSE,
8613 p_party_site_rec => l_party_site_rec,
8614 --p_commit => FND_API.G_FALSE,
8615 x_return_status => l_site_return_status,
8616 x_msg_count => l_site_msg_count,
8617 x_msg_data => l_site_msg_data,
8618 x_party_site_id => l_party_site_id,
8619 x_party_site_number => l_party_site_number);
8620 IF l_site_return_status <> FND_API.G_RET_STS_SUCCESS THEN
8621 ------------------------------------------------------------------------
8622 l_debug_info := 'After call to hz_party_site_v2pub.create_party_site';
8623 l_debug_info := l_debug_info||' Return status : '||l_site_return_status||' Error : '||l_site_msg_data;
8624 ------------------------------------------------------------------------
8625 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
8626 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
8627 END IF;
8628 END IF;
8629
8630 /* Bug 12334398 start */
8631 if (l_vendor_site_rec.pay_site_flag = 'Y' or
8632 l_vendor_site_rec.rfq_only_site_flag = 'Y' or
8633 l_vendor_site_rec.purchasing_site_flag = 'Y'
8634 ) THEN
8635
8636 l_party_site_use_rec.party_site_id := l_party_site_id;
8637 l_party_site_use_rec.status := 'A';
8638 l_party_site_use_rec.created_by_module:= 'AP_SUPPLIERS_API';
8639 l_party_site_use_rec.application_id :=200;
8640
8641 IF(l_vendor_site_rec.pay_site_flag = 'Y') THEN
8642 l_party_site_use_rec.SITE_USE_TYPE := 'PAY';
8643 hz_party_site_v2pub.create_party_site_use (
8644 p_init_msg_list => 'F',
8645 p_party_site_use_rec => l_party_site_use_rec,
8646 x_party_site_use_id => l_party_site_use_id,
8647 x_return_status => l_site_use_return_status,
8648 x_msg_count => l_site_use_msg_count,
8649 x_msg_data => l_site_use_msg_data);
8650 IF l_site_use_return_status <> FND_API.G_RET_STS_SUCCESS THEN
8651 ------------------------------------------------------------------------
8652 l_debug_info := 'After call to hz_party_site_v2pub.create_party_site_use for PAY';
8653 l_debug_info := l_debug_info||' Return status : ' || l_site_use_return_status ||' Error : '|| l_site_use_msg_data;
8654 ------------------------------------------------------------------------
8655 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
8656 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
8657 END IF;
8658 END IF;
8659 END IF;
8660
8661 IF(l_vendor_site_rec.rfq_only_site_flag = 'Y') THEN
8662 l_party_site_use_rec.SITE_USE_TYPE := 'RFQ';
8663 hz_party_site_v2pub.create_party_site_use (
8664 p_init_msg_list => 'F',
8665 p_party_site_use_rec => l_party_site_use_rec,
8666 x_party_site_use_id => l_party_site_use_id,
8667 x_return_status => l_site_use_return_status,
8668 x_msg_count => l_site_use_msg_count,
8669 x_msg_data => l_site_use_msg_data);
8670 IF l_site_use_return_status <> FND_API.G_RET_STS_SUCCESS THEN
8671 ------------------------------------------------------------------------
8672 l_debug_info := 'After call to hz_party_site_v2pub.create_party_site_use for RFQ';
8673 l_debug_info := l_debug_info||' Return status : ' || l_site_use_return_status ||' Error : ' || l_site_use_msg_data;
8674 ------------------------------------------------------------------------
8675 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
8676 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
8677 END IF;
8678 END IF;
8679 END IF;
8680
8681 IF(l_vendor_site_rec.purchasing_site_flag = 'Y') THEN
8682 l_party_site_use_rec.SITE_USE_TYPE := 'PURCHASING';
8683 hz_party_site_v2pub.create_party_site_use (
8684 p_init_msg_list => 'F',
8685 p_party_site_use_rec => l_party_site_use_rec,
8686 x_party_site_use_id => l_party_site_use_id,
8687 x_return_status => l_site_use_return_status,
8688 x_msg_count => l_site_use_msg_count,
8689 x_msg_data => l_site_use_msg_data);
8690 IF l_site_use_return_status <> FND_API.G_RET_STS_SUCCESS THEN
8691 ------------------------------------------------------------------------
8692 l_debug_info := 'After call to hz_party_site_v2pub.create_party_site_use for PURCHASING';
8693 l_debug_info := l_debug_info||' Return status : ' || l_site_use_return_status ||' Error : ' || l_site_use_msg_data;
8694 ------------------------------------------------------------------------
8695 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
8696 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
8697 END IF;
8698 END IF;
8699 END IF;
8700
8701 end if; /* Site use to be created */
8702 /* Bug 12334398 end */
8703
8704 END IF;
8705 l_vendor_site_rec.party_site_id := l_party_site_id;
8706 -- udhenuko Bug 6823885 Added the else condition to populate the party site id.
8707 -- If part site is valid then the id can be found in the vendor site rec.
8708 ELSE
8709 -- Assign the Party Site Id and Location Id from the record to the varialbes.
8710 l_party_site_id := l_vendor_site_rec.party_site_id;
8711 l_loc_id := l_vendor_site_rec.location_id;
8712 -- udhenuko Bug 6823885 End
8713 END IF; -- party_site_id was null
8714
8715 L_ROUNDING_LEVEL_CODE := NULL ; /* B 9530837 */
8716 L_ROUNDING_RULE_CODE := NULL ; /* B 9530837 */
8717 L_INCLUSIVE_TAX_FLAG := NULL ; /* B 9530837 */
8718
8719 -- Bug#7371143 zrehman changes started
8720 BEGIN
8721 SELECT PROCESS_FOR_APPLICABILITY_FLAG, ALLOW_OFFSET_TAX_FLAG
8722 , TAX_CLASSIFICATION_CODE -- Bug#7506443
8723 ,ROUNDING_LEVEL_CODE ,ROUNDING_RULE_CODE ,INCLUSIVE_TAX_FLAG /* B 9530837 */
8724 INTO l_auto_tax_calc_flag,l_offset_tax_flag,
8725 l_tax_classification_code -- Bug#7506443
8726 ,L_ROUNDING_LEVEL_CODE ,L_ROUNDING_RULE_CODE ,L_INCLUSIVE_TAX_FLAG /* B 9530837 */
8727 FROM ZX_PARTY_TAX_PROFILE
8728 WHERE PARTY_ID = l_party_id
8729 AND PARTY_TYPE_CODE = 'THIRD_PARTY'
8730 AND ROWNUM = 1;
8731 EXCEPTION
8732 WHEN OTHERS THEN
8733 l_debug_info := 'No data returned from ZX_PARTY_TAX_PROFILE for party_id = '||l_party_id;
8734 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
8735 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
8736 END IF;
8737 END;
8738 /*Bug11664523 start */
8739 IF l_tax_classification_code is not null THEN
8740 BEGIN
8741 SELECT Zic.Lookup_Code, Zic.End_Date_Active, zic.start_date_active
8742 INTO L_Zic_tax_classification_code, Zic_end_date_Active, Zic_start_date_active
8743 FROM ZX_INPUT_CLASSIFICATIONS_V Zic
8744 WHERE Zic.Lookup_Code = l_tax_classification_code
8745 AND ZIC.enabled_flag ='Y'
8746 AND ZIC.lookup_type='ZX_INPUT_CLASSIFICATIONS'
8747 AND Zic.Org_Id= L_Def_Org_Id;
8748 EXCEPTION
8749 WHEN OTHERS THEN
8750 /* VAT_Code should not be defaulted if it of different OU than site*/
8751 l_tax_classification_code := null;
8752 l_debug_info := 'No data returned from ZX_INPUT_CLASSIFICATIONS_V for Lookup_Code = '||l_tax_classification_code
8753 || ' and org_id = '||L_Def_Org_Id;
8754 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
8755 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
8756 END IF;
8757 END;
8758 IF (L_Zic_tax_classification_code is not null and
8759 sysdate not between nvl(Zic_start_date_active, sysdate-1) and nvl(Zic_end_date_Active, sysdate+1)) THEN
8760 x_return_status := FND_API.G_RET_STS_ERROR;
8761 IF g_source = 'IMPORT' THEN
8762 IF (Insert_Rejections(
8763 'AP_SUPPLIER_SITES_INT',
8764 p_vendor_site_rec.vendor_site_interface_id,
8765 'AP_INVALID_VAT_CODE',
8766 g_user_id,
8767 g_login_id,
8768 'AP_VENDOR_PUB_PKG.Create_Vendor_Site') <> TRUE) THEN
8769 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
8770 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
8771 l_api_name,'Parameters: '
8772 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
8773 ||' ,Vat_Code: '
8774 ||p_vendor_site_rec.vat_code);-- END_DATE_ACTIVE, INVALID VAT CODE
8775 END IF;
8776 END IF;
8777 Else
8778 FND_MESSAGE.SET_NAME('SQLAP', 'AP_INVALID_VAT_CODE');
8779 Fnd_Msg_Pub.Add;
8780 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
8781 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
8782 l_api_name,'After call to VAT_CODE validation... Parameters: '
8783 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
8784 ||' ,Vat_Code: '
8785 ||P_Vendor_Site_Rec.Vat_Code
8786 ||' is invalid ');
8787 End If;
8788 End If;
8789 Raise Vat_Code_Exception;
8790 END IF;
8791 END IF;
8792 /*Bug11664523 end */
8793 -- Bug#7642742 start
8794
8795 -- Bug#7506443 start
8796 l_vendor_site_rec.OFFSET_TAX_FLAG := nvl(l_vendor_site_rec.OFFSET_TAX_FLAG, l_offset_tax_flag);
8797 l_vendor_site_rec.AUTO_TAX_CALC_FLAG := nvl(l_vendor_site_rec.AUTO_TAX_CALC_FLAG, l_auto_tax_calc_flag);
8798 l_vendor_site_rec.VAT_CODE := nvl(l_vendor_site_rec.VAT_CODE, l_tax_classification_code);
8799 -- Bug#7506443 start
8800 l_offset_tax_flag := l_vendor_site_rec.OFFSET_TAX_FLAG;
8801 l_auto_tax_calc_flag := l_vendor_site_rec.AUTO_TAX_CALC_FLAG;
8802 l_tax_classification_code := l_vendor_site_rec.VAT_CODE;
8803 -- Bug#7642742 end
8804
8805 /* B 9530837 start */
8806 l_vendor_site_rec.AP_TAX_ROUNDING_RULE :=
8807 nvl(l_vendor_site_rec.AP_TAX_ROUNDING_RULE, L_ROUNDING_RULE_CODE ) ;
8808 L_ROUNDING_RULE_CODE := l_vendor_site_rec.AP_TAX_ROUNDING_RULE ;
8809
8810 l_vendor_site_rec.AMOUNT_INCLUDES_TAX_FLAG :=
8811 nvl(l_vendor_site_rec.AMOUNT_INCLUDES_TAX_FLAG, L_INCLUSIVE_TAX_FLAG) ;
8812 L_INCLUSIVE_TAX_FLAG := l_vendor_site_rec.AMOUNT_INCLUDES_TAX_FLAG ;
8813 /* end B 9530837 */
8814
8815
8816
8817 -- Start Bug 7207314. Update Tax Registration Number in ZX_PARTY_TAX_PROFILE
8818 -- VAT Registration Number is not stored at site level or HZ Party Site.
8819 -- This info is maintained by ZX Party Profile as 3rd party site tax profile.
8820
8821 IF (l_vendor_site_rec.vat_registration_num is not null
8822 or l_auto_tax_calc_flag is not null or l_offset_tax_flag is not null -- Bug#7371143 zrehman
8823 /* or l_tax_classification_code is not null) then -- Bug#7642742 -- B 9530837 start */
8824 or l_tax_classification_code is not null
8825 or L_ROUNDING_LEVEL_CODE is not null
8826 or L_ROUNDING_RULE_CODE is not null
8827 or L_INCLUSIVE_TAX_FLAG is not null) then /* B 9530837 end */
8828
8829 IF ( (l_location_valid = 'V' OR (l_location_valid = 'N' and l_loc_return_status = FND_API.G_RET_STS_SUCCESS))
8830 AND (l_party_site_valid = 'V' OR (l_party_site_valid = 'N' and l_site_return_status =
8831 FND_API.G_RET_STS_SUCCESS)) ) THEN
8832
8833 BEGIN
8834 SELECT PARTY_TAX_PROFILE_ID INTO L_PARTY_TAX_PROFILE_ID
8835 FROM ZX_PARTY_TAX_PROFILE
8836 WHERE PARTY_ID = l_party_site_id
8837 AND PARTY_TYPE_CODE = 'THIRD_PARTY_SITE'
8838 AND ROWNUM = 1;
8839 EXCEPTION
8840 WHEN OTHERS THEN
8841 L_PARTY_TAX_PROFILE_ID := NULL;
8842 END;
8843
8844 IF L_PARTY_TAX_PROFILE_ID IS NOT NULL THEN
8845 ZX_PARTY_TAX_PROFILE_PKG.update_row (
8846 P_PARTY_TAX_PROFILE_ID => L_PARTY_TAX_PROFILE_ID,
8847 P_COLLECTING_AUTHORITY_FLAG => null,
8848 P_PROVIDER_TYPE_CODE => null,
8849 P_CREATE_AWT_DISTS_TYPE_CODE => null,
8850 P_CREATE_AWT_INVOICES_TYPE_COD => null,
8851 P_TAX_CLASSIFICATION_CODE => l_tax_classification_code, -- Bug#7506443 zrehman
8852 P_SELF_ASSESS_FLAG => null,
8853 P_ALLOW_OFFSET_TAX_FLAG => l_offset_tax_flag,-- Bug#7371143 zrehman
8854 P_REP_REGISTRATION_NUMBER => l_vendor_site_rec.vat_registration_num,
8855 P_EFFECTIVE_FROM_USE_LE => null,
8856 P_RECORD_TYPE_CODE => null,
8857 P_REQUEST_ID => null,
8858 P_ATTRIBUTE1 => null,
8859 P_ATTRIBUTE2 => null,
8860 P_ATTRIBUTE3 => null,
8861 P_ATTRIBUTE4 => null,
8862 P_ATTRIBUTE5 => null,
8863 P_ATTRIBUTE6 => null,
8864 P_ATTRIBUTE7 => null,
8865 P_ATTRIBUTE8 => null,
8866 P_ATTRIBUTE9 => null,
8867 P_ATTRIBUTE10 => null,
8868 P_ATTRIBUTE11 => null,
8869 P_ATTRIBUTE12 => null,
8870 P_ATTRIBUTE13 => null,
8871 P_ATTRIBUTE14 => null,
8872 P_ATTRIBUTE15 => null,
8873 P_ATTRIBUTE_CATEGORY => null,
8874 P_PARTY_ID => null,
8875 P_PROGRAM_LOGIN_ID => null,
8876 P_PARTY_TYPE_CODE => null,
8877 P_SUPPLIER_FLAG => null,
8878 P_CUSTOMER_FLAG => null,
8879 P_SITE_FLAG => null,
8880 P_PROCESS_FOR_APPLICABILITY_FL => l_auto_tax_calc_flag,-- Bug#7371143 zrehman
8881 /*P_ROUNDING_LEVEL_CODE => null, B 9530837 */
8882 P_ROUNDING_LEVEL_CODE => L_ROUNDING_LEVEL_CODE , /* B 9530837 */
8883 /*P_ROUNDING_RULE_CODE => null, B 9530837 */
8884 P_ROUNDING_RULE_CODE => L_ROUNDING_RULE_CODE , /* B 9530837 */
8885 P_WITHHOLDING_START_DATE => null,
8886 /*P_INCLUSIVE_TAX_FLAG => null, B 9530837 */
8887 P_INCLUSIVE_TAX_FLAG => L_INCLUSIVE_TAX_FLAG , /* B 9530837 */
8888 P_ALLOW_AWT_FLAG => null,
8889 P_USE_LE_AS_SUBSCRIBER_FLAG => null,
8890 P_LEGAL_ESTABLISHMENT_FLAG => null,
8891 P_FIRST_PARTY_LE_FLAG => null,
8892 P_REPORTING_AUTHORITY_FLAG => null,
8893 X_RETURN_STATUS => l_return_status,
8894 P_REGISTRATION_TYPE_CODE => null,
8895 P_COUNTRY_CODE => null
8896 );
8897 IF l_return_status <> fnd_api.g_ret_sts_success THEN
8898 l_debug_info := 'ZX_PARTY_TAX_PROFILE_PKG.update_row';
8899 l_debug_info := l_debug_info||' Return status : '||l_return_status;
8900 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
8901 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
8902 END IF;
8903 END IF;
8904 END IF;
8905 END IF;
8906 END IF;
8907 -- End Bug 7207314
8908
8909 -- Bug 5244172
8910 -- Allow the vendor site creation even if we do not have
8911 -- location or party site IDs and the vendor type is
8912 -- Employee.
8913
8914 IF (l_val_return_status = FND_API.G_RET_STS_SUCCESS) AND
8915 ((l_loc_return_status = FND_API.G_RET_STS_SUCCESS) OR
8916 (l_loc_return_status <> FND_API.G_RET_STS_SUCCESS AND
8917 l_vendor_site_rec.location_id IS NULL AND
8918 l_vendor_type_lookup_code = 'EMPLOYEE')) AND
8919 ((l_site_return_status = FND_API.G_RET_STS_SUCCESS) OR
8920 (l_site_return_status <> FND_API.G_RET_STS_SUCCESS AND
8921 l_vendor_site_rec.party_site_id IS NULL AND
8922 l_vendor_type_lookup_code = 'EMPLOYEE')) AND
8923 (l_payee_valid = 'N' OR
8924 l_pay_return_status = FND_API.G_RET_STS_SUCCESS) THEN
8925
8926 ap_vendor_sites_pkg.insert_row(
8927 p_vendor_site_rec => l_vendor_site_rec,
8928 p_last_update_date => sysdate,
8929 p_last_updated_by => nvl(l_user_id,-1),
8930 p_last_update_login => nvl(l_last_update_login, -1),
8931 p_creation_date => sysdate,
8932 p_created_by => nvl(l_user_id, -1) ,
8933 p_request_id => l_request_id ,
8934 p_program_application_id => l_program_application_id,
8935 p_program_id => l_program_id,
8936 p_program_update_date => sysdate,
8937 p_AP_Tax_Rounding_Rule => SUBSTR(L_ROUNDING_RULE_CODE,1,1), /* 9530837 */
8938 p_Amount_Includes_Tax_Flag => L_INCLUSIVE_TAX_FLAG, /* 9530837 */
8939 x_rowid => l_rowid,
8940 x_vendor_site_id => l_vendor_site_id);
8941 ------------------------------------------------------------------------
8942 l_debug_info := 'After call to ap_vendor_sites_pkg.insert_row';
8943 ------------------------------------------------------------------------
8944 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
8945 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
8946 END IF;
8947 --Bug6648405
8948 --Bug 6753822 - Added NVL on vendor_type_lookup_code
8949 IF (NVL(l_vendor_type_lookup_code,'DUMMY') <> 'EMPLOYEE') then
8950
8951 AP_TCA_SUPPLIER_SYNC_PKG.SYNC_Supplier_Sites(
8952 l_sync_return_status,
8953 l_sync_msg_count,
8954 l_sync_msg_data,
8955 l_vendor_site_rec.location_id,
8956 l_vendor_site_rec.party_site_id,
8957 l_vendor_site_id); --bug 12733929
8958
8959 IF l_sync_return_status <> FND_API.G_RET_STS_SUCCESS THEN
8960 ------------------------------------------------------------------------
8961 l_debug_info := 'After call to AP_TCA_SUPPLIER_SYNC_PKG.SYNC_Supplier_Sites';
8962 l_debug_info := l_debug_info||' Return status : '||l_sync_return_status||' Error : '||l_sync_msg_data;
8963 ------------------------------------------------------------------------
8964 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
8965 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
8966 END IF;
8967 END IF;
8968 END IF;
8969
8970 IF l_sync_return_status = FND_API.G_RET_STS_SUCCESS THEN
8971 Raise_Supplier_Event( i_vendor_site_id => l_vendor_site_id ); -- Bug 7307669
8972 x_return_status := FND_API.G_RET_STS_SUCCESS;
8973 END IF;
8974 x_party_site_id := l_party_site_id;
8975 x_location_id := l_loc_id;
8976 x_vendor_site_id := l_vendor_site_id;
8977
8978 ELSIF (l_val_return_status = FND_API.G_RET_STS_UNEXP_ERROR) OR
8979 ((l_loc_return_status = FND_API.G_RET_STS_UNEXP_ERROR) AND
8980 (l_vendor_type_lookup_code <> 'EMPLOYEE') AND
8981 (l_vendor_site_rec.location_id IS NULL)) OR
8982 ((l_site_return_status = FND_API.G_RET_STS_UNEXP_ERROR) AND
8983 (l_vendor_type_lookup_code <> 'EMPLOYEE') AND
8984 (l_vendor_site_rec.party_site_id IS NULL)) OR
8985 (l_pay_return_status = FND_API.G_RET_STS_UNEXP_ERROR) OR
8986 (l_sync_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
8987
8988 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
8989
8990 ELSE
8991
8992 x_return_status := FND_API.G_RET_STS_ERROR;
8993 END IF;
8994
8995 IF l_payee_valid = 'N' THEN --payee record is valid
8996
8997 -- As per the discussion with Omar/Jayanta, we will only
8998 -- have payables payment function and no more employee expenses
8999 -- payment function.
9000
9001 -- changes for Bug#7506443 start
9002 Open get_iby_dtls_csr(l_party_id);
9003 Fetch get_iby_dtls_csr INTO l_Exclusive_Pay_Flag
9004 ,l_bank_instruction1_code -- Bug 8769088 Start
9005 ,l_bank_instruction2_code
9006 ,l_delivery_channel_code
9007 ,l_bank_instr_detail
9008 ,l_settlement_priority
9009 ,l_payment_text_msg1
9010 ,l_payment_text_msg2
9011 ,l_payment_text_msg3
9012 ,l_bank_charge_bearer
9013 ,l_payment_reason_code
9014 ,l_paymt_rsn_comts
9015 ,l_pmt_format
9016 ,l_remt_advc_dlvry_mthd
9017 ,l_remit_advice_email
9018 ,l_remit_advice_fax -- Bug 8769088 End
9019 ,l_ext_payee_id;
9020 Close get_iby_dtls_csr;
9021 /*changes for Bug 12582862 */
9022 Open get_iby_pay_dtls_csr(l_ext_payee_id);
9023 Fetch get_iby_pay_dtls_csr into l_pymt_method_code
9024 ,l_inactive_date;
9025 Close get_iby_pay_dtls_csr;
9026
9027 -- changes for Bug#7506443 end
9028
9029
9030 IF l_vendor_site_rec.ext_payee_rec.payment_function IS NULL THEN
9031
9032 l_ext_payee_rec.payee_party_id := l_party_id;
9033 l_ext_payee_rec.payee_party_site_id := l_vendor_site_rec.party_site_id;
9034 l_ext_payee_rec.supplier_site_id := l_vendor_site_id;
9035 l_ext_payee_rec.payment_function := 'PAYABLES_DISB';
9036 l_ext_payee_rec.payer_org_id := l_vendor_site_rec.org_id;
9037 l_ext_payee_rec.payer_org_type := 'OPERATING_UNIT';
9038 /* l_ext_payee_rec.exclusive_pay_flag := 'N'; Commented for bug#9066129 */
9039
9040 -- 6458813 starts
9041 -- 7506443 changes start
9042 l_ext_payee_rec.default_pmt_method := nvl (l_vendor_site_rec.ext_payee_rec.default_pmt_method,
9043 l_pymt_method_code);
9044 /* L_Ext_Payee_Rec.Inactive_Date := L_Inactive_Date; Commented for bug#10218075 */
9045
9046 --bug 12835899
9047 --l_ext_payee_rec.Exclusive_Pay_Flag := l_Exclusive_Pay_Flag; /* Bug8200842 added for Bug9955875 */
9048 l_ext_payee_rec.Exclusive_Pay_Flag := nvl(l_vendor_site_rec.ext_payee_rec.Exclusive_Pay_Flag,l_Exclusive_Pay_Flag);
9049
9050
9051
9052 -- B 8900634/8889211: Revert the change for Bug 8200842
9053 /* l_ext_payee_rec.Exclusive_Pay_Flag := nvl(l_Exclusive_Pay_Flag,'N'); Bug 8200842 Added the NVL Condition for bug#9066129,Bug9955876 */
9054 -- 7506443 changes start
9055 l_ext_payee_rec.ece_tp_loc_code := l_vendor_site_rec.ext_payee_rec.ece_tp_loc_code;
9056 /* l_ext_payee_rec.bank_charge_bearer := nvl(l_vendor_site_rec.ext_payee_rec.bank_charge_bearer, l_bank_charge_bearer); Bug10026814 */
9057 l_ext_payee_rec.bank_charge_bearer := NULL;
9058 l_ext_payee_rec.bank_instr1_code := nvl(l_vendor_site_rec.ext_payee_rec.bank_instr1_code, l_bank_instruction1_code);
9059 l_ext_payee_rec.bank_instr2_code := nvl(l_vendor_site_rec.ext_payee_rec.bank_instr2_code, l_bank_instruction2_code);
9060 l_ext_payee_rec.bank_instr_detail := nvl(l_vendor_site_rec.ext_payee_rec.bank_instr_detail, l_bank_instr_detail);
9061 l_ext_payee_rec.pay_reason_code := nvl(l_vendor_site_rec.ext_payee_rec.pay_reason_code, l_payment_reason_code);
9062 l_ext_payee_rec.pay_reason_com := nvl(l_vendor_site_rec.ext_payee_rec.pay_reason_com, l_paymt_rsn_comts);
9063 l_ext_payee_rec.pay_message1 := nvl(l_vendor_site_rec.ext_payee_rec.pay_message1, l_payment_text_msg1);
9064 l_ext_payee_rec.pay_message2 := nvl(l_vendor_site_rec.ext_payee_rec.pay_message2, l_payment_text_msg2);
9065 l_ext_payee_rec.pay_message3 := nvl(l_vendor_site_rec.ext_payee_rec.pay_message3, l_payment_text_msg3);
9066 l_ext_payee_rec.delivery_channel := nvl(l_vendor_site_rec.ext_payee_rec.delivery_channel,l_delivery_channel_code);
9067 l_ext_payee_rec.pmt_format := nvl(l_vendor_site_rec.ext_payee_rec.pmt_format, l_pmt_format);
9068 l_ext_payee_rec.settlement_priority := nvl(l_vendor_site_rec.ext_payee_rec.settlement_priority,l_settlement_priority);
9069 -- 6458813 ends
9070
9071 -- B# 7339389
9072 --l_ext_payee_rec.remit_advice_delivery_method := l_vendor_site_rec.supplier_notif_method ; .. B 8422781
9073 l_ext_payee_rec.remit_advice_delivery_method := nvl(l_vendor_site_rec.remit_advice_delivery_method, l_remt_advc_dlvry_mthd) ; -- Bug 8422781
9074 l_ext_payee_rec.remit_advice_email := nvl(l_vendor_site_rec.remittance_email, l_remit_advice_email);
9075 l_ext_payee_rec.remit_advice_fax := NVL(l_vendor_site_rec.remit_advice_fax, l_remit_advice_fax);
9076 -- Bug 8769088 end
9077
9078 ext_payee_tab(1) := l_ext_payee_rec;
9079
9080 ELSE
9081 -- 7506443 changes start
9082 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);
9083 -- Bug 8769088 start
9084 l_vendor_site_rec.ext_payee_rec.bank_instr1_code := nvl(l_vendor_site_rec.ext_payee_rec.bank_instr1_code, l_bank_instruction1_code);
9085 l_vendor_site_rec.ext_payee_rec.bank_instr2_code := nvl(l_vendor_site_rec.ext_payee_rec.bank_instr2_code, l_bank_instruction2_code);
9086 l_vendor_site_rec.ext_payee_rec.delivery_channel := nvl(l_vendor_site_rec.ext_payee_rec.delivery_channel,l_delivery_channel_code);
9087 -- Bug 8769088 end
9088 /* L_Vendor_Site_Rec.Ext_Payee_Rec.Inactive_Date := L_Inactive_Date; Commented for bug#10218075 */
9089 /* L_Ext_Payee_Rec.Exclusive_Pay_Flag := Nvl(L_Exclusive_Pay_Flag,'N'); Added the NVL Condition for bug#9066129 ,Bug9955876*/
9090
9091 --bug 12835899
9092 --l_ext_payee_rec.Exclusive_Pay_Flag := l_Exclusive_Pay_Flag; /*Bug9955876 */
9093 l_ext_payee_rec.Exclusive_Pay_Flag := nvl(l_vendor_site_rec.ext_payee_rec.Exclusive_Pay_Flag,l_Exclusive_Pay_Flag);
9094
9095 -- 7506443 changes start
9096 ext_payee_tab(1) := l_vendor_site_rec.ext_payee_rec;
9097
9098 END IF;
9099
9100 /* Calling IBY Payee Creation API */
9101 IBY_DISBURSEMENT_SETUP_PUB.Create_External_Payee
9102 ( p_api_version => 1.0,
9103 p_init_msg_list => FND_API.G_FALSE,
9104 p_ext_payee_tab => ext_payee_tab,
9105 x_return_status => l_pay_return_status,
9106 x_msg_count => l_pay_msg_count,
9107 x_msg_data => l_pay_msg_data,
9108 x_ext_payee_id_tab => ext_payee_id_tab,
9109 x_ext_payee_status_tab => ext_payee_create_tab);
9110 IF l_pay_return_status <> FND_API.G_RET_STS_SUCCESS THEN
9111 ------------------------------------------------------------------------
9112 l_debug_info := 'After call to IBY_DISBURSEMENT_SETUP_PUB.Create_External_Payee';
9113 l_debug_info := l_debug_info||' Return status : '||l_pay_return_status||' Error : '||l_pay_msg_data;
9114 ------------------------------------------------------------------------
9115
9116 Raise FND_API.G_EXC_UNEXPECTED_ERROR ; /* Bug9955876 */
9117
9118 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
9119 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
9120 END IF;
9121 END IF;
9122 END IF;
9123
9124 /* Bug 5310356 */
9125 IF l_org_context <> MO_Global.Get_Access_Mode THEN
9126 MO_GLOBAL.Set_Policy_Context(l_org_context, l_def_org_id);
9127 END IF;
9128
9129 -- End of API body.
9130
9131 -- Standard check of p_commit.
9132 IF FND_API.To_Boolean( p_commit ) THEN
9133 COMMIT WORK;
9134 END IF;
9135
9136 -- Standard call to get message count and if count is 1,
9137 -- get message info.
9138 FND_MSG_PUB.Count_And_Get(
9139 p_count => x_msg_count ,
9140 p_data => x_msg_data
9141 );
9142
9143 EXCEPTION
9144 WHEN FND_API.G_EXC_ERROR THEN
9145 ROLLBACK TO Create_Vendor_Site_PUB;
9146 x_return_status := FND_API.G_RET_STS_ERROR ;
9147 FND_MSG_PUB.Count_And_Get
9148 ( p_count => x_msg_count,
9149 p_data => x_msg_data
9150 );
9151 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
9152 ROLLBACK TO Create_Vendor_Site_PUB;
9153 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
9154 FND_MSG_PUB.Count_And_Get
9155 ( p_count => x_msg_count,
9156 p_data => x_msg_data
9157 );
9158 /* BUG 11664523 */
9159 WHEN VAT_CODE_EXCEPTION THEN
9160 ROLLBACK TO Create_Vendor_Site_PUB;
9161 x_return_status := FND_API.G_RET_STS_ERROR;
9162 FND_MSG_PUB.Count_And_Get
9163 ( p_count => x_msg_count,
9164 p_data => x_msg_data
9165 );
9166 -- BUG 6739544 START
9167 WHEN ORG_ID_EXCEPTION THEN
9168 x_return_status := FND_API.G_RET_STS_ERROR ;
9169 FND_MSG_PUB.Count_And_Get
9170 ( p_count => x_msg_count,
9171 p_data => x_msg_data
9172 );
9173 -- BUG 6739544 END.
9174 WHEN OTHERS THEN
9175 ROLLBACK TO Create_Vendor_Site_PUB;
9176 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
9177 IF FND_MSG_PUB.Check_Msg_Level
9178 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
9179 FND_MSG_PUB.Add_Exc_Msg
9180 ( G_PKG_NAME ,
9181 l_api_name
9182 );
9183 END IF;
9184 FND_MSG_PUB.Count_And_Get
9185 ( p_count => x_msg_count,
9186 p_data => x_msg_data
9187 );
9188 END Create_Vendor_Site;
9189
9190 PROCEDURE Update_Vendor_Site
9191 ( p_api_version IN NUMBER,
9192 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
9193 p_commit IN VARCHAR2 := FND_API.G_FALSE,
9194 p_validation_level IN NUMBER :=
9195 FND_API.G_VALID_LEVEL_FULL,
9196 x_return_status OUT NOCOPY VARCHAR2 ,
9197 x_msg_count OUT NOCOPY NUMBER,
9198 x_msg_data OUT NOCOPY VARCHAR2,
9199 p_vendor_site_rec IN r_vendor_site_rec_type,
9200 p_vendor_site_id IN NUMBER,
9201 p_calling_prog IN VARCHAR2 DEFAULT 'NOT ISETUP'
9202 )
9203 IS
9204 l_api_name CONSTANT VARCHAR2(30) := 'Update_Vendor_Site';
9205 l_api_version CONSTANT NUMBER := 1.0;
9206
9207 l_def_org_id NUMBER;
9208
9209 l_user_id number := FND_GLOBAL.USER_ID;
9210 l_last_update_login number := FND_GLOBAL.LOGIN_ID;
9211 l_program_application_id number := FND_GLOBAL.prog_appl_id;
9212 l_program_id number := FND_GLOBAL.conc_program_id;
9213 l_request_id number := FND_GLOBAL.conc_request_id;
9214 l_vendor_site_rec r_vendor_site_rec_type;
9215 l_org_context VARCHAR2(1);
9216 l_val_return_status VARCHAR2(50);
9217 l_val_msg_count NUMBER;
9218 l_val_msg_data VARCHAR2(1000);
9219 l_org_id NUMBER;
9220 l_party_site_valid VARCHAR2(1);
9221 l_location_valid VARCHAR2(1);
9222 l_payee_valid VARCHAR2(1);
9223
9224 l_sync_return_status VARCHAR2(50);
9225 l_sync_msg_count NUMBER;
9226 l_sync_msg_data VARCHAR2(1000);
9227
9228
9229
9230 BEGIN
9231 -- Standard Start of API savepoint
9232 SAVEPOINT Update_Vendor_Site_PUB;
9233
9234 -- Standard call to check for call compatibility.
9235 IF NOT FND_API.Compatible_API_Call ( l_api_version ,
9236 p_api_version ,
9237 l_api_name ,
9238 G_PKG_NAME )
9239 THEN
9240 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9241 END IF;
9242
9243 -- Initialize message list if p_init_msg_list is set to TRUE.
9244 IF FND_API.to_Boolean( p_init_msg_list ) THEN
9245 FND_MSG_PUB.initialize;
9246 END IF;
9247
9248 -- Initialize API return status to success
9249 x_return_status := FND_API.G_RET_STS_SUCCESS;
9250 l_val_return_status := FND_API.G_RET_STS_SUCCESS;
9251
9252 -- API body
9253
9254 -- Bug 5055120
9255 -- This call is incorrect. The correct call is to have the calling
9256 -- modules set the context and call this API with the right ORG_ID.
9257
9258 -- Bug 6812010 :Due to 5055120, Payables' own supplier site import program fails
9259 -- because MO initialization is not happening.To fix 6812010 and keep 5055120 intact,
9260 -- strategy is that if calling application id is not AP then we will not call MO_GLOBAL.INIT
9261 -- since it is calling module's responsibility to perform MO initialization.
9262
9263 -- Bug 6930102
9264 If (l_program_application_id = 200 OR l_program_application_id = -1)then
9265 MO_GLOBAL.INIT ('SQLAP');
9266 end if;
9267
9268 --get org_id from existing record
9269 SELECT org_id
9270 INTO l_org_id
9271 FROM po_vendor_sites_all pvs
9272 WHERE pvs.vendor_site_id = p_vendor_site_id;
9273
9274 l_org_context := mo_global.get_access_mode;
9275
9276 IF nvl(l_org_context, 'K') <> 'S' THEN
9277 MO_GLOBAL.set_policy_context('S',l_org_id);
9278 END IF;
9279
9280 l_vendor_site_rec := p_vendor_site_rec;
9281
9282 --added ap_null_num condition by abhsaxen on 06-May-2008 for bug 7008314
9283 IF (l_vendor_site_rec.org_id IS NULL OR l_vendor_site_rec.org_id = ap_null_num) THEN
9284 l_vendor_site_rec.org_id := l_org_id;
9285 END IF;
9286
9287 validate_vendor_site(p_api_version => 1.0,
9288 p_init_msg_list => FND_API.G_FALSE,
9289 p_commit => FND_API.G_FALSE,
9290 x_return_status => l_val_return_status,
9291 x_msg_count => l_val_msg_count,
9292 x_msg_data => l_val_msg_data,
9293 p_vendor_site_rec => l_vendor_site_rec,
9294 P_mode => 'U',
9295 P_calling_prog => p_calling_prog,
9296 x_party_site_valid => l_party_site_valid,
9297 x_location_valid => l_location_valid,
9298 x_payee_valid => l_payee_valid,
9299 p_vendor_site_id => p_vendor_site_id);
9300
9301
9302 IF (l_val_return_status = FND_API.G_RET_STS_SUCCESS) THEN
9303 --populate existing values
9304 SELECT
9305 decode(l_vendor_site_rec.AREA_CODE,
9306 ap_null_char,NULL,
9307 nvl(l_vendor_site_rec.AREA_CODE, AREA_CODE))
9308 ,decode(l_vendor_site_rec.PHONE,
9309 ap_null_char,NULL,
9310 nvl(l_vendor_site_rec.PHONE, PHONE))
9311 ,decode(l_vendor_site_rec.CUSTOMER_NUM,
9312 ap_null_char,NULL,
9313 nvl(l_vendor_site_rec.CUSTOMER_NUM, CUSTOMER_NUM))
9314 ,decode(l_vendor_site_rec.SHIP_TO_LOCATION_ID,
9315 ap_null_num,NULL,
9316 nvl(l_vendor_site_rec.SHIP_TO_LOCATION_ID, SHIP_TO_LOCATION_ID))
9317 ,decode(l_vendor_site_rec.BILL_TO_LOCATION_ID,
9318 ap_null_num,NULL,
9319 nvl(l_vendor_site_rec.BILL_TO_LOCATION_ID, BILL_TO_LOCATION_ID))
9320 ,decode(l_vendor_site_rec.SHIP_VIA_LOOKUP_CODE,
9321 ap_null_char,NULL,
9322 nvl(l_vendor_site_rec.SHIP_VIA_LOOKUP_CODE, SHIP_VIA_LOOKUP_CODE))
9323 ,decode(l_vendor_site_rec.FREIGHT_TERMS_LOOKUP_CODE,
9324 ap_null_char,NULL,
9325 nvl(l_vendor_site_rec.FREIGHT_TERMS_LOOKUP_CODE,
9326 FREIGHT_TERMS_LOOKUP_CODE))
9327 ,decode(l_vendor_site_rec.FOB_LOOKUP_CODE,
9328 ap_null_char,NULL,
9329 nvl(l_vendor_site_rec.FOB_LOOKUP_CODE,
9330 FOB_LOOKUP_CODE))
9331 ,decode(l_vendor_site_rec.INACTIVE_DATE,
9332 ap_null_date,NULL,
9333 nvl(l_vendor_site_rec.INACTIVE_DATE,
9334 INACTIVE_DATE))
9335 ,decode(l_vendor_site_rec.FAX,
9336 ap_null_char,NULL,
9337 nvl(l_vendor_site_rec.FAX, FAX))
9338 ,decode(l_vendor_site_rec.FAX_AREA_CODE,
9339 ap_null_char,NULL,
9340 nvl(l_vendor_site_rec.FAX_AREA_CODE,
9341 FAX_AREA_CODE))
9342 ,decode(l_vendor_site_rec.TELEX,
9343 ap_null_char,NULL,
9344 nvl(l_vendor_site_rec.TELEX, TELEX))
9345 ,decode(l_vendor_site_rec.TERMS_DATE_BASIS,
9346 ap_null_char,NULL,
9347 nvl(l_vendor_site_rec.TERMS_DATE_BASIS,
9348 TERMS_DATE_BASIS))
9349 ,decode(l_vendor_site_rec.DISTRIBUTION_SET_ID,
9350 ap_null_num,NULL,
9351 nvl(l_vendor_site_rec.DISTRIBUTION_SET_ID, DISTRIBUTION_SET_ID))
9352 ,decode(l_vendor_site_rec.ACCTS_PAY_CODE_COMBINATION_ID,
9353 ap_null_num,NULL,
9354 nvl(l_vendor_site_rec.ACCTS_PAY_CODE_COMBINATION_ID,
9355 ACCTS_PAY_CODE_COMBINATION_ID))
9356 ,decode(l_vendor_site_rec.PREPAY_CODE_COMBINATION_ID,
9357 ap_null_num,NULL,
9358 nvl(l_vendor_site_rec.PREPAY_CODE_COMBINATION_ID,
9359 PREPAY_CODE_COMBINATION_ID))
9360 ,decode(l_vendor_site_rec.PAY_GROUP_LOOKUP_CODE,
9361 ap_null_char,NULL,
9362 nvl(l_vendor_site_rec.PAY_GROUP_LOOKUP_CODE, PAY_GROUP_LOOKUP_CODE))
9363 ,decode(l_vendor_site_rec.PAYMENT_PRIORITY,
9364 ap_null_num,NULL,
9365 nvl(l_vendor_site_rec.PAYMENT_PRIORITY, PAYMENT_PRIORITY))
9366 ,decode(l_vendor_site_rec.TERMS_ID,
9367 ap_null_num,NULL,
9368 nvl(l_vendor_site_rec.TERMS_ID, TERMS_ID))
9369 ,decode(l_vendor_site_rec.INVOICE_AMOUNT_LIMIT,
9370 ap_null_num,NULL,
9371 nvl(l_vendor_site_rec.INVOICE_AMOUNT_LIMIT, INVOICE_AMOUNT_LIMIT))
9372 ,decode(l_vendor_site_rec.PAY_DATE_BASIS_LOOKUP_CODE,
9373 ap_null_char,NULL,
9374 nvl(l_vendor_site_rec.PAY_DATE_BASIS_LOOKUP_CODE, PAY_DATE_BASIS_LOOKUP_CODE))
9375 ,decode(l_vendor_site_rec.ALWAYS_TAKE_DISC_FLAG,
9376 ap_null_char,NULL,
9377 nvl(l_vendor_site_rec.ALWAYS_TAKE_DISC_FLAG, ALWAYS_TAKE_DISC_FLAG))
9378 ,decode(l_vendor_site_rec.INVOICE_CURRENCY_CODE,
9379 ap_null_char,NULL,
9380 nvl(l_vendor_site_rec.INVOICE_CURRENCY_CODE, INVOICE_CURRENCY_CODE))
9381 ,decode(l_vendor_site_rec.PAYMENT_CURRENCY_CODE,
9382 ap_null_char,NULL,
9383 nvl(l_vendor_site_rec.PAYMENT_CURRENCY_CODE, PAYMENT_CURRENCY_CODE))
9384 ,decode(l_vendor_site_rec.VENDOR_SITE_ID,
9385 ap_null_num,NULL,
9386 nvl(l_vendor_site_rec.VENDOR_SITE_ID, VENDOR_SITE_ID))
9387 ,decode(l_vendor_site_rec.VENDOR_ID,
9388 ap_null_num,NULL,
9389 nvl(l_vendor_site_rec.VENDOR_ID, VENDOR_ID))
9390 ,decode(l_vendor_site_rec.VENDOR_SITE_CODE,
9391 ap_null_char,NULL,
9392 nvl(l_vendor_site_rec.VENDOR_SITE_CODE, VENDOR_SITE_CODE))
9393 ,decode(l_vendor_site_rec.VENDOR_SITE_CODE_ALT,
9394 ap_null_char,NULL,
9395 nvl(l_vendor_site_rec.VENDOR_SITE_CODE_ALT, VENDOR_SITE_CODE_ALT))
9396 ,decode(l_vendor_site_rec.PURCHASING_SITE_FLAG,
9397 ap_null_char,NULL,
9398 nvl(l_vendor_site_rec.PURCHASING_SITE_FLAG, PURCHASING_SITE_FLAG))
9399 ,decode(l_vendor_site_rec.RFQ_ONLY_SITE_FLAG,
9400 ap_null_char,NULL,
9401 nvl(l_vendor_site_rec.RFQ_ONLY_SITE_FLAG, RFQ_ONLY_SITE_FLAG))
9402 ,decode(l_vendor_site_rec.PAY_SITE_FLAG,
9403 ap_null_char,NULL,
9404 nvl(l_vendor_site_rec.PAY_SITE_FLAG, PAY_SITE_FLAG))
9405 ,decode(l_vendor_site_rec.ATTENTION_AR_FLAG,
9406 ap_null_char,NULL,
9407 nvl(l_vendor_site_rec.ATTENTION_AR_FLAG, ATTENTION_AR_FLAG))
9408 ,decode(l_vendor_site_rec.HOLD_ALL_PAYMENTS_FLAG,
9409 ap_null_char,NULL,
9410 nvl(l_vendor_site_rec.HOLD_ALL_PAYMENTS_FLAG, HOLD_ALL_PAYMENTS_FLAG))
9411 ,decode(l_vendor_site_rec.HOLD_FUTURE_PAYMENTS_FLAG,
9412 ap_null_char,NULL,
9413 nvl(l_vendor_site_rec.HOLD_FUTURE_PAYMENTS_FLAG, HOLD_FUTURE_PAYMENTS_FLAG))
9414 ,decode(l_vendor_site_rec.HOLD_REASON,
9415 ap_null_char,NULL,
9416 nvl(l_vendor_site_rec.HOLD_REASON, HOLD_REASON))
9417 ,decode(l_vendor_site_rec.HOLD_UNMATCHED_INVOICES_FLAG,
9418 ap_null_char,NULL,
9419 nvl(l_vendor_site_rec.HOLD_UNMATCHED_INVOICES_FLAG, HOLD_UNMATCHED_INVOICES_FLAG))
9420 ,decode(l_vendor_site_rec.TAX_REPORTING_SITE_FLAG,
9421 ap_null_char,NULL,
9422 nvl(l_vendor_site_rec.TAX_REPORTING_SITE_FLAG, TAX_REPORTING_SITE_FLAG))
9423 ,decode(l_vendor_site_rec.ATTRIBUTE_CATEGORY,
9424 ap_null_char,NULL,
9425 nvl(l_vendor_site_rec.ATTRIBUTE_CATEGORY, ATTRIBUTE_CATEGORY))
9426 ,decode(l_vendor_site_rec.ATTRIBUTE1,
9427 ap_null_char,NULL,
9428 nvl(l_vendor_site_rec.ATTRIBUTE1, ATTRIBUTE1))
9429 ,decode(l_vendor_site_rec.ATTRIBUTE2,
9430 ap_null_char,NULL,
9431 nvl(l_vendor_site_rec.ATTRIBUTE2, ATTRIBUTE2))
9432 ,decode(l_vendor_site_rec.ATTRIBUTE3,
9433 ap_null_char,NULL,
9434 nvl(l_vendor_site_rec.ATTRIBUTE3, ATTRIBUTE3))
9435 ,decode(l_vendor_site_rec.ATTRIBUTE4,
9436 ap_null_char,NULL,
9437 nvl(l_vendor_site_rec.ATTRIBUTE4, ATTRIBUTE4))
9438 ,decode(l_vendor_site_rec.ATTRIBUTE5,
9439 ap_null_char,NULL,
9440 nvl(l_vendor_site_rec.ATTRIBUTE5, ATTRIBUTE5))
9441 ,decode(l_vendor_site_rec.ATTRIBUTE6,
9442 ap_null_char,NULL,
9443 nvl(l_vendor_site_rec.ATTRIBUTE6, ATTRIBUTE6))
9444 ,decode(l_vendor_site_rec.ATTRIBUTE7,
9445 ap_null_char,NULL,
9446 nvl(l_vendor_site_rec.ATTRIBUTE7, ATTRIBUTE7))
9447 ,decode(l_vendor_site_rec.ATTRIBUTE8,
9448 ap_null_char,NULL,
9449 nvl(l_vendor_site_rec.ATTRIBUTE8, ATTRIBUTE8))
9450 ,decode(l_vendor_site_rec.ATTRIBUTE9,
9451 ap_null_char,NULL,
9452 nvl(l_vendor_site_rec.ATTRIBUTE9, ATTRIBUTE9))
9453 ,decode(l_vendor_site_rec.ATTRIBUTE10,
9454 ap_null_char,NULL,
9455 nvl(l_vendor_site_rec.ATTRIBUTE10, ATTRIBUTE10))
9456 ,decode(l_vendor_site_rec.ATTRIBUTE11,
9457 ap_null_char,NULL,
9458 nvl(l_vendor_site_rec.ATTRIBUTE11, ATTRIBUTE11))
9459 ,decode(l_vendor_site_rec.ATTRIBUTE12,
9460 ap_null_char,NULL,
9461 nvl(l_vendor_site_rec.ATTRIBUTE12, ATTRIBUTE12))
9462 ,decode(l_vendor_site_rec.ATTRIBUTE13,
9463 ap_null_char,NULL,
9464 nvl(l_vendor_site_rec.ATTRIBUTE13, ATTRIBUTE13))
9465 ,decode(l_vendor_site_rec.ATTRIBUTE14,
9466 ap_null_char,NULL,
9467 nvl(l_vendor_site_rec.ATTRIBUTE14, ATTRIBUTE14))
9468 ,decode(l_vendor_site_rec.ATTRIBUTE15,
9469 ap_null_char,NULL,
9470 nvl(l_vendor_site_rec.ATTRIBUTE15, ATTRIBUTE15))
9471 ,decode(l_vendor_site_rec.VALIDATION_NUMBER,
9472 ap_null_num,NULL,
9473 nvl(l_vendor_site_rec.VALIDATION_NUMBER, VALIDATION_NUMBER))
9474 ,decode(l_vendor_site_rec.EXCLUDE_FREIGHT_FROM_DISCOUNT,
9475 ap_null_char,NULL,
9476 nvl(l_vendor_site_rec.EXCLUDE_FREIGHT_FROM_DISCOUNT,
9477 EXCLUDE_FREIGHT_FROM_DISCOUNT))
9478 ,decode(l_vendor_site_rec.BANK_CHARGE_BEARER,
9479 ap_null_char,NULL,
9480 nvl(l_vendor_site_rec.BANK_CHARGE_BEARER, BANK_CHARGE_BEARER))
9481 ,decode(l_vendor_site_rec.ORG_ID,
9482 ap_null_num,NULL,
9483 nvl(l_vendor_site_rec.ORG_ID, ORG_ID))
9484 ,decode(l_vendor_site_rec.CHECK_DIGITS,
9485 ap_null_char,NULL,
9486 nvl(l_vendor_site_rec.CHECK_DIGITS, CHECK_DIGITS))
9487 ,decode(l_vendor_site_rec.ALLOW_AWT_FLAG,
9488 ap_null_char,NULL,
9489 nvl(l_vendor_site_rec.ALLOW_AWT_FLAG, ALLOW_AWT_FLAG))
9490 ,decode(l_vendor_site_rec.AWT_GROUP_ID,
9491 ap_null_num,NULL,
9492 nvl(l_vendor_site_rec.AWT_GROUP_ID, AWT_GROUP_ID))
9493 ,decode(l_vendor_site_rec.DEFAULT_PAY_SITE_ID,
9494 ap_null_num,NULL,
9495 nvl(l_vendor_site_rec.DEFAULT_PAY_SITE_ID, DEFAULT_PAY_SITE_ID))
9496 ,decode(l_vendor_site_rec.PAY_ON_CODE,
9497 ap_null_char,NULL,
9498 nvl(l_vendor_site_rec.PAY_ON_CODE, PAY_ON_CODE))
9499 ,decode(l_vendor_site_rec.PAY_ON_RECEIPT_SUMMARY_CODE,
9500 ap_null_char,NULL,
9501 nvl(l_vendor_site_rec.PAY_ON_RECEIPT_SUMMARY_CODE, PAY_ON_RECEIPT_SUMMARY_CODE))
9502 ,decode(l_vendor_site_rec.GLOBAL_ATTRIBUTE_CATEGORY,
9503 ap_null_char,NULL,
9504 nvl(l_vendor_site_rec.GLOBAL_ATTRIBUTE_CATEGORY, GLOBAL_ATTRIBUTE_CATEGORY))
9505 ,decode(l_vendor_site_rec.GLOBAL_ATTRIBUTE1,
9506 ap_null_char,NULL,
9507 nvl(l_vendor_site_rec.GLOBAL_ATTRIBUTE1, GLOBAL_ATTRIBUTE1))
9508 ,decode(l_vendor_site_rec.GLOBAL_ATTRIBUTE2,
9509 ap_null_char,NULL,
9510 nvl(l_vendor_site_rec.GLOBAL_ATTRIBUTE2, GLOBAL_ATTRIBUTE2))
9511 ,decode(l_vendor_site_rec.GLOBAL_ATTRIBUTE3,
9512 ap_null_char,NULL,
9513 nvl(l_vendor_site_rec.GLOBAL_ATTRIBUTE3, GLOBAL_ATTRIBUTE3))
9514 ,decode(l_vendor_site_rec.GLOBAL_ATTRIBUTE4,
9515 ap_null_char,NULL,
9516 nvl(l_vendor_site_rec.GLOBAL_ATTRIBUTE4, GLOBAL_ATTRIBUTE4))
9517 ,decode(l_vendor_site_rec.GLOBAL_ATTRIBUTE5,
9518 ap_null_char,NULL,
9519 nvl(l_vendor_site_rec.GLOBAL_ATTRIBUTE5, GLOBAL_ATTRIBUTE5))
9520 ,decode(l_vendor_site_rec.GLOBAL_ATTRIBUTE6,
9521 ap_null_char,NULL,
9522 nvl(l_vendor_site_rec.GLOBAL_ATTRIBUTE6, GLOBAL_ATTRIBUTE6))
9523 ,decode(l_vendor_site_rec.GLOBAL_ATTRIBUTE7,
9524 ap_null_char,NULL,
9525 nvl(l_vendor_site_rec.GLOBAL_ATTRIBUTE7, GLOBAL_ATTRIBUTE7))
9526 ,decode(l_vendor_site_rec.GLOBAL_ATTRIBUTE8,
9527 ap_null_char,NULL,
9528 nvl(l_vendor_site_rec.GLOBAL_ATTRIBUTE8, GLOBAL_ATTRIBUTE8))
9529 ,decode(l_vendor_site_rec.GLOBAL_ATTRIBUTE9,
9530 ap_null_char,NULL,
9531 nvl(l_vendor_site_rec.GLOBAL_ATTRIBUTE9, GLOBAL_ATTRIBUTE9))
9532 ,decode(l_vendor_site_rec.GLOBAL_ATTRIBUTE10,
9533 ap_null_char,NULL,
9534 nvl(l_vendor_site_rec.GLOBAL_ATTRIBUTE10, GLOBAL_ATTRIBUTE10))
9535 ,decode(l_vendor_site_rec.GLOBAL_ATTRIBUTE11,
9536 ap_null_char,NULL,
9537 nvl(l_vendor_site_rec.GLOBAL_ATTRIBUTE11, GLOBAL_ATTRIBUTE11))
9538 ,decode(l_vendor_site_rec.GLOBAL_ATTRIBUTE12,
9539 ap_null_char,NULL,
9540 nvl(l_vendor_site_rec.GLOBAL_ATTRIBUTE12, GLOBAL_ATTRIBUTE12))
9541 ,decode(l_vendor_site_rec.GLOBAL_ATTRIBUTE13,
9542 ap_null_char,NULL,
9543 nvl(l_vendor_site_rec.GLOBAL_ATTRIBUTE13, GLOBAL_ATTRIBUTE13))
9544 ,decode(l_vendor_site_rec.GLOBAL_ATTRIBUTE14,
9545 ap_null_char,NULL,
9546 nvl(l_vendor_site_rec.GLOBAL_ATTRIBUTE14, GLOBAL_ATTRIBUTE14))
9547 ,decode(l_vendor_site_rec.GLOBAL_ATTRIBUTE15,
9548 ap_null_char,NULL,
9549 nvl(l_vendor_site_rec.GLOBAL_ATTRIBUTE15, GLOBAL_ATTRIBUTE15))
9550 ,decode(l_vendor_site_rec.GLOBAL_ATTRIBUTE16,
9551 ap_null_char,NULL,
9552 nvl(l_vendor_site_rec.GLOBAL_ATTRIBUTE16, GLOBAL_ATTRIBUTE16))
9553 ,decode(l_vendor_site_rec.GLOBAL_ATTRIBUTE17,
9554 ap_null_char,NULL,
9555 nvl(l_vendor_site_rec.GLOBAL_ATTRIBUTE17, GLOBAL_ATTRIBUTE17))
9556 ,decode(l_vendor_site_rec.GLOBAL_ATTRIBUTE18,
9557 ap_null_char,NULL,
9558 nvl(l_vendor_site_rec.GLOBAL_ATTRIBUTE18, GLOBAL_ATTRIBUTE18))
9559 ,decode(l_vendor_site_rec.GLOBAL_ATTRIBUTE19,
9560 ap_null_char,NULL,
9561 nvl(l_vendor_site_rec.GLOBAL_ATTRIBUTE19, GLOBAL_ATTRIBUTE19))
9562 ,decode(l_vendor_site_rec.GLOBAL_ATTRIBUTE20,
9563 ap_null_char,NULL,
9564 nvl(l_vendor_site_rec.GLOBAL_ATTRIBUTE20, GLOBAL_ATTRIBUTE20))
9565 ,decode(l_vendor_site_rec.TP_HEADER_ID,
9566 ap_null_num,NULL,
9567 nvl(l_vendor_site_rec.TP_HEADER_ID, TP_HEADER_ID))
9568 ,decode(l_vendor_site_rec.ECE_TP_LOCATION_CODE,
9569 ap_null_char,NULL,
9570 nvl(l_vendor_site_rec.ECE_TP_LOCATION_CODE, ECE_TP_LOCATION_CODE))
9571 ,decode(l_vendor_site_rec.PCARD_SITE_FLAG,
9572 ap_null_char,NULL,
9573 nvl(l_vendor_site_rec.PCARD_SITE_FLAG, PCARD_SITE_FLAG))
9574 ,decode(l_vendor_site_rec.MATCH_OPTION,
9575 ap_null_char,NULL,
9576 nvl(l_vendor_site_rec.MATCH_OPTION, MATCH_OPTION))
9577 ,decode(l_vendor_site_rec.COUNTRY_OF_ORIGIN_CODE,
9578 ap_null_char,NULL,
9579 nvl(l_vendor_site_rec.COUNTRY_OF_ORIGIN_CODE, COUNTRY_OF_ORIGIN_CODE))
9580 ,decode(l_vendor_site_rec.FUTURE_DATED_PAYMENT_CCID,
9581 ap_null_num,NULL,
9582 nvl(l_vendor_site_rec.FUTURE_DATED_PAYMENT_CCID, FUTURE_DATED_PAYMENT_CCID))
9583 ,decode(l_vendor_site_rec.CREATE_DEBIT_MEMO_FLAG,
9584 ap_null_char,NULL,
9585 nvl(l_vendor_site_rec.CREATE_DEBIT_MEMO_FLAG, CREATE_DEBIT_MEMO_FLAG))
9586 ,decode(l_vendor_site_rec.SUPPLIER_NOTIF_METHOD,
9587 ap_null_char,NULL,
9588 nvl(l_vendor_site_rec.SUPPLIER_NOTIF_METHOD, SUPPLIER_NOTIF_METHOD))
9589 ,decode(l_vendor_site_rec.EMAIL_ADDRESS,
9590 ap_null_char,NULL,
9591 nvl(l_vendor_site_rec.EMAIL_ADDRESS, EMAIL_ADDRESS))
9592 ,decode(l_vendor_site_rec.PRIMARY_PAY_SITE_FLAG,
9593 ap_null_char,NULL,
9594 nvl(l_vendor_site_rec.PRIMARY_PAY_SITE_FLAG, PRIMARY_PAY_SITE_FLAG))
9595 ,decode(l_vendor_site_rec.SHIPPING_CONTROL,
9596 ap_null_char,NULL,
9597 nvl(l_vendor_site_rec.SHIPPING_CONTROL, SHIPPING_CONTROL))
9598 ,decode(l_vendor_site_rec.SELLING_COMPANY_IDENTIFIER,
9599 ap_null_char,NULL,
9600 nvl(l_vendor_site_rec.SELLING_COMPANY_IDENTIFIER, SELLING_COMPANY_IDENTIFIER))
9601 ,decode(l_vendor_site_rec.GAPLESS_INV_NUM_FLAG,
9602 ap_null_char,NULL,
9603 nvl(l_vendor_site_rec.GAPLESS_INV_NUM_FLAG, GAPLESS_INV_NUM_FLAG))
9604 ,decode(l_vendor_site_rec.LOCATION_ID,
9605 ap_null_num,NULL,
9606 nvl(l_vendor_site_rec.LOCATION_ID, LOCATION_ID))
9607 ,decode(l_vendor_site_rec.PARTY_SITE_ID,
9608 ap_null_num,NULL,
9609 nvl(l_vendor_site_rec.PARTY_SITE_ID, PARTY_SITE_ID))
9610 ,decode(l_vendor_site_rec.TOLERANCE_ID,
9611 ap_null_num,NULL,
9612 nvl(l_vendor_site_rec.TOLERANCE_ID, TOLERANCE_ID))
9613 ,decode(l_vendor_site_rec.services_tolerance_id,
9614 ap_null_num,NULL,
9615 nvl(l_vendor_site_rec.services_tolerance_id,services_tolerance_id))
9616 ,decode(l_vendor_site_rec.retainage_rate,
9617 ap_null_num,NULL,
9618 nvl(l_vendor_site_rec.retainage_rate,retainage_rate))
9619 --bug6388041
9620 ,decode(l_vendor_site_rec.duns_number,
9621 ap_null_char, NULL,
9622 nvl(l_vendor_site_rec.duns_number,duns_number))
9623 -- bug 7437549
9624 ,decode(l_vendor_site_rec.EDI_ID_NUMBER,
9625 ap_null_char,NULL,
9626 nvl(l_vendor_site_rec.EDI_ID_NUMBER, EDI_ID_NUMBER))
9627 --bug7561758
9628 ,decode(l_vendor_site_rec.PAY_AWT_GROUP_ID,
9629 ap_null_num,NULL,
9630 nvl(l_vendor_site_rec.PAY_AWT_GROUP_ID, PAY_AWT_GROUP_ID))
9631 -- bug 7673494 start
9632 /*Bug9290488 start*/
9633 ,decode(l_vendor_site_rec.address_line1,
9634 ap_null_char, NULL,
9635 l_vendor_site_rec.address_line1)
9636 ,decode(l_vendor_site_rec.address_lines_alt,
9637 ap_null_char, NULL,
9638 l_vendor_site_rec.address_lines_alt)
9639 ,decode(l_vendor_site_rec.address_line2,
9640 ap_null_char, NULL,
9641 l_vendor_site_rec.address_line2)
9642 ,decode(l_vendor_site_rec.address_line3,
9643 ap_null_char, NULL,
9644 l_vendor_site_rec.address_line3)
9645 ,decode(l_vendor_site_rec.city,
9646 ap_null_char, NULL,
9647 l_vendor_site_rec.city)
9648 ,decode(l_vendor_site_rec.state,
9649 ap_null_char, NULL,
9650 l_vendor_site_rec.state)
9651 ,decode(l_vendor_site_rec.zip,
9652 ap_null_char, NULL,
9653 l_vendor_site_rec.zip)
9654 ,decode(l_vendor_site_rec.province,
9655 ap_null_char, NULL,
9656 l_vendor_site_rec.province)
9657 ,decode(l_vendor_site_rec.country,
9658 ap_null_char, NULL,
9659 l_vendor_site_rec.country)
9660 ,decode(l_vendor_site_rec.address_line4,
9661 ap_null_char, NULL,
9662 l_vendor_site_rec.address_line4)
9663 ,decode(l_vendor_site_rec.county,
9664 ap_null_char, NULL,
9665 l_vendor_site_rec.county)
9666 ,decode(l_vendor_site_rec.address_style,
9667 ap_null_char, NULL,
9668 l_vendor_site_rec.address_style)
9669 ,decode(l_vendor_site_rec.language,
9670 ap_null_char, NULL,
9671 l_vendor_site_rec.language)
9672 /*Bug9290488 end*/
9673 -- bug 7673494 end
9674 -- starting the Changes for CLM reference data management bug#9499174
9675 /*Bug 10236833 for cage_code value, replaced ap_null_num with ap_null_char*/
9676 ,decode(l_vendor_site_rec.cage_code,
9677 ap_null_char,NULL,
9678 nvl(l_vendor_site_rec.CAGE_CODE, CAGE_CODE))
9679 ,decode(l_vendor_site_rec.legal_business_name,
9680 ap_null_char,NULL,
9681 nvl(l_vendor_site_rec.LEGAL_BUSINESS_NAME, LEGAL_BUSINESS_NAME))
9682 ,decode(l_vendor_site_rec.doing_bus_as_name,
9683 ap_null_char,NULL,
9684 nvl(l_vendor_site_rec.DOING_BUS_AS_NAME, DOING_BUS_AS_NAME))
9685 ,decode(l_vendor_site_rec.division_name,
9686 ap_null_char,NULL,
9687 nvl(l_vendor_site_rec.DIVISION_NAME, DIVISION_NAME))
9688 ,decode(l_vendor_site_rec.small_business_code,
9689 ap_null_char,NULL,
9690 nvl(l_vendor_site_rec.SMALL_BUSINESS_CODE, SMALL_BUSINESS_CODE))
9691 ,decode(l_vendor_site_rec.CCR_COMMENTS ,
9692 ap_null_char,NULL,
9693 nvl(l_vendor_site_rec.CCR_COMMENTS , CCR_COMMENTS ))
9694 ,decode(l_vendor_site_rec.DEBARMENT_START_DATE,
9695 ap_null_date,NULL,
9696 nvl(l_vendor_site_rec.DEBARMENT_START_DATE,DEBARMENT_START_DATE) )
9697 ,decode(l_vendor_site_rec.DEBARMENT_END_DATE ,
9698 ap_null_date,NULL,
9699 nvl(l_vendor_site_rec.DEBARMENT_END_DATE,DEBARMENT_END_DATE) )
9700 -- Ending the Changes for CLM reference data management bug#9499174
9701 INTO
9702 l_vendor_site_rec.AREA_CODE
9703 ,l_vendor_site_rec.PHONE
9704 ,l_vendor_site_rec.CUSTOMER_NUM
9705 ,l_vendor_site_rec.SHIP_TO_LOCATION_ID
9706 ,l_vendor_site_rec.BILL_TO_LOCATION_ID
9707 ,l_vendor_site_rec.SHIP_VIA_LOOKUP_CODE
9708 ,l_vendor_site_rec.FREIGHT_TERMS_LOOKUP_CODE
9709 ,l_vendor_site_rec.FOB_LOOKUP_CODE
9710 ,l_vendor_site_rec.INACTIVE_DATE
9711 ,l_vendor_site_rec.FAX
9712 ,l_vendor_site_rec.FAX_AREA_CODE
9713 ,l_vendor_site_rec.TELEX
9714 ,l_vendor_site_rec.TERMS_DATE_BASIS
9715 ,l_vendor_site_rec.DISTRIBUTION_SET_ID
9716 ,l_vendor_site_rec.ACCTS_PAY_CODE_COMBINATION_ID
9717 ,l_vendor_site_rec.PREPAY_CODE_COMBINATION_ID
9718 ,l_vendor_site_rec.PAY_GROUP_LOOKUP_CODE
9719 ,l_vendor_site_rec.PAYMENT_PRIORITY
9720 ,l_vendor_site_rec.TERMS_ID
9721 ,l_vendor_site_rec.INVOICE_AMOUNT_LIMIT
9722 ,l_vendor_site_rec.PAY_DATE_BASIS_LOOKUP_CODE
9723 ,l_vendor_site_rec.ALWAYS_TAKE_DISC_FLAG
9724 ,l_vendor_site_rec.INVOICE_CURRENCY_CODE
9725 ,l_vendor_site_rec.PAYMENT_CURRENCY_CODE
9726 ,l_vendor_site_rec.VENDOR_SITE_ID
9727 ,l_vendor_site_rec.VENDOR_ID
9728 ,l_vendor_site_rec.VENDOR_SITE_CODE
9729 ,l_vendor_site_rec.VENDOR_SITE_CODE_ALT
9730 ,l_vendor_site_rec.PURCHASING_SITE_FLAG
9731 ,l_vendor_site_rec.RFQ_ONLY_SITE_FLAG
9732 ,l_vendor_site_rec.PAY_SITE_FLAG
9733 ,l_vendor_site_rec.ATTENTION_AR_FLAG
9734 ,l_vendor_site_rec.HOLD_ALL_PAYMENTS_FLAG
9735 ,l_vendor_site_rec.HOLD_FUTURE_PAYMENTS_FLAG
9736 ,l_vendor_site_rec.HOLD_REASON
9737 ,l_vendor_site_rec.HOLD_UNMATCHED_INVOICES_FLAG
9738 ,l_vendor_site_rec.TAX_REPORTING_SITE_FLAG
9739 ,l_vendor_site_rec.ATTRIBUTE_CATEGORY
9740 ,l_vendor_site_rec.ATTRIBUTE1
9741 ,l_vendor_site_rec.ATTRIBUTE2
9742 ,l_vendor_site_rec.ATTRIBUTE3
9743 ,l_vendor_site_rec.ATTRIBUTE4
9744 ,l_vendor_site_rec.ATTRIBUTE5
9745 ,l_vendor_site_rec.ATTRIBUTE6
9746 ,l_vendor_site_rec.ATTRIBUTE7
9747 ,l_vendor_site_rec.ATTRIBUTE8
9748 ,l_vendor_site_rec.ATTRIBUTE9
9749 ,l_vendor_site_rec.ATTRIBUTE10
9750 ,l_vendor_site_rec.ATTRIBUTE11
9751 ,l_vendor_site_rec.ATTRIBUTE12
9752 ,l_vendor_site_rec.ATTRIBUTE13
9753 ,l_vendor_site_rec.ATTRIBUTE14
9754 ,l_vendor_site_rec.ATTRIBUTE15
9755 ,l_vendor_site_rec.VALIDATION_NUMBER
9756 ,l_vendor_site_rec.EXCLUDE_FREIGHT_FROM_DISCOUNT
9757 ,l_vendor_site_rec.BANK_CHARGE_BEARER
9758 ,l_vendor_site_rec.ORG_ID
9759 ,l_vendor_site_rec.CHECK_DIGITS
9760 ,l_vendor_site_rec.ALLOW_AWT_FLAG
9761 ,l_vendor_site_rec.AWT_GROUP_ID
9762 ,l_vendor_site_rec.DEFAULT_PAY_SITE_ID
9763 ,l_vendor_site_rec.PAY_ON_CODE
9764 ,l_vendor_site_rec.PAY_ON_RECEIPT_SUMMARY_CODE
9765 ,l_vendor_site_rec.GLOBAL_ATTRIBUTE_CATEGORY
9766 ,l_vendor_site_rec.GLOBAL_ATTRIBUTE1
9767 ,l_vendor_site_rec.GLOBAL_ATTRIBUTE2
9768 ,l_vendor_site_rec.GLOBAL_ATTRIBUTE3
9769 ,l_vendor_site_rec.GLOBAL_ATTRIBUTE4
9770 ,l_vendor_site_rec.GLOBAL_ATTRIBUTE5
9771 ,l_vendor_site_rec.GLOBAL_ATTRIBUTE6
9772 ,l_vendor_site_rec.GLOBAL_ATTRIBUTE7
9773 ,l_vendor_site_rec.GLOBAL_ATTRIBUTE8
9774 ,l_vendor_site_rec.GLOBAL_ATTRIBUTE9
9775 ,l_vendor_site_rec.GLOBAL_ATTRIBUTE10
9776 ,l_vendor_site_rec.GLOBAL_ATTRIBUTE11
9777 ,l_vendor_site_rec.GLOBAL_ATTRIBUTE12
9778 ,l_vendor_site_rec.GLOBAL_ATTRIBUTE13
9779 ,l_vendor_site_rec.GLOBAL_ATTRIBUTE14
9780 ,l_vendor_site_rec.GLOBAL_ATTRIBUTE15
9781 ,l_vendor_site_rec.GLOBAL_ATTRIBUTE16
9782 ,l_vendor_site_rec.GLOBAL_ATTRIBUTE17
9783 ,l_vendor_site_rec.GLOBAL_ATTRIBUTE18
9784 ,l_vendor_site_rec.GLOBAL_ATTRIBUTE19
9785 ,l_vendor_site_rec.GLOBAL_ATTRIBUTE20
9786 ,l_vendor_site_rec.TP_HEADER_ID
9787 ,l_vendor_site_rec.ECE_TP_LOCATION_CODE
9788 ,l_vendor_site_rec.PCARD_SITE_FLAG
9789 ,l_vendor_site_rec.MATCH_OPTION
9790 ,l_vendor_site_rec.COUNTRY_OF_ORIGIN_CODE
9791 ,l_vendor_site_rec.FUTURE_DATED_PAYMENT_CCID
9792 ,l_vendor_site_rec.CREATE_DEBIT_MEMO_FLAG
9793 ,l_vendor_site_rec.SUPPLIER_NOTIF_METHOD
9794 ,l_vendor_site_rec.EMAIL_ADDRESS
9795 ,l_vendor_site_rec.PRIMARY_PAY_SITE_FLAG
9796 ,l_vendor_site_rec.SHIPPING_CONTROL
9797 ,l_vendor_site_rec.SELLING_COMPANY_IDENTIFIER
9798 ,l_vendor_site_rec.GAPLESS_INV_NUM_FLAG
9799 ,l_vendor_site_rec.LOCATION_ID
9800 ,l_vendor_site_rec.PARTY_SITE_ID
9801 ,l_vendor_site_rec.TOLERANCE_ID
9802 ,l_vendor_site_rec.services_tolerance_id
9803 ,l_vendor_site_rec.retainage_rate
9804 ,l_vendor_site_rec.duns_number --bug6388041
9805 ,l_vendor_site_rec.EDI_ID_NUMBER --bug7437549
9806 ,l_vendor_site_rec.PAY_AWT_GROUP_ID --bug7561758
9807 -- bug 7673494 start
9808 ,l_vendor_site_rec.address_line1
9809 ,l_vendor_site_rec.address_lines_alt
9810 ,l_vendor_site_rec.address_line2
9811 ,l_vendor_site_rec.address_line3
9812 ,l_vendor_site_rec.city
9813 ,l_vendor_site_rec.state
9814 ,l_vendor_site_rec.zip
9815 ,l_vendor_site_rec.province
9816 ,l_vendor_site_rec.country
9817 ,l_vendor_site_rec.address_line4
9818 ,l_vendor_site_rec.county
9819 ,l_vendor_site_rec.address_style
9820 ,l_vendor_site_rec.language
9821 -- bug 7673494 end
9822 -- starting the Changes for CLM reference data management bug#9499174
9823 ,l_vendor_site_rec.CAGE_CODE
9824 ,l_vendor_site_rec.LEGAL_BUSINESS_NAME
9825 ,l_vendor_site_rec.DOING_BUS_AS_NAME
9826 ,l_vendor_site_rec.DIVISION_NAME
9827 ,l_vendor_site_rec.SMALL_BUSINESS_CODE
9828 ,l_vendor_site_rec.CCR_COMMENTS
9829 ,l_vendor_site_rec.DEBARMENT_START_DATE
9830 ,l_vendor_site_rec.DEBARMENT_END_DATE
9831 -- Ending the Changes for CLM reference data management bug#9499174
9832
9833 FROM po_vendor_sites_all pvs
9834 WHERE pvs.vendor_site_id = p_vendor_site_id;
9835
9836 ap_vendor_sites_pkg.update_row(
9837 p_vendor_site_rec => l_vendor_site_rec,
9838 p_last_update_date => sysdate,
9839 p_last_updated_by => l_user_id,
9840 p_last_update_login => l_last_update_login,
9841 p_request_id => l_request_id ,
9842 p_program_application_id => l_program_application_id,
9843 p_program_id => l_program_id,
9844 p_program_update_date => sysdate,
9845 p_vendor_site_id => p_vendor_site_id);
9846
9847 AP_TCA_SUPPLIER_SYNC_PKG.SYNC_Supplier_Sites(
9848 l_sync_return_status,
9849 l_sync_msg_count,
9850 l_sync_msg_data,
9851 l_vendor_site_rec.location_id,
9852 l_vendor_site_rec.party_site_id,
9853 p_vendor_site_id); --bug 8723400
9854
9855 IF l_sync_return_status = FND_API.G_RET_STS_SUCCESS THEN
9856 Raise_Supplier_Event( i_vendor_site_id => p_vendor_site_id ); -- Bug 7307669
9857 x_return_status := FND_API.G_RET_STS_SUCCESS;
9858 END IF;
9859
9860 ELSIF (l_val_return_status = FND_API.G_RET_STS_UNEXP_ERROR) OR
9861 (l_sync_return_status = FND_API.G_RET_STS_UNEXP_ERROR)THEN
9862
9863 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
9864
9865 ELSE
9866
9867 x_return_status := FND_API.G_RET_STS_ERROR;
9868 END IF;
9869
9870 --set access mode back to original value
9871 IF l_org_context <> mo_global.get_access_mode THEN
9872 MO_GLOBAL.set_policy_context(l_org_context,l_def_org_id);
9873 END IF;
9874
9875 -- End of API body.
9876
9877 -- Standard check of p_commit.
9878 IF FND_API.To_Boolean( p_commit ) THEN
9879 COMMIT WORK;
9880 END IF;
9881
9882 -- Standard call to get message count and if count is 1,
9883 -- get message info.
9884 FND_MSG_PUB.Count_And_Get(
9885 p_count => x_msg_count ,
9886 p_data => x_msg_data
9887 );
9888
9889 EXCEPTION
9890 WHEN FND_API.G_EXC_ERROR THEN
9891 ROLLBACK TO Update_Vendor_Site_PUB;
9892 x_return_status := FND_API.G_RET_STS_ERROR ;
9893 FND_MSG_PUB.Count_And_Get
9894 ( p_count => x_msg_count,
9895 p_data => x_msg_data
9896 );
9897 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
9898 ROLLBACK TO Update_Vendor_Site_PUB;
9899 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
9900 FND_MSG_PUB.Count_And_Get
9901 ( p_count => x_msg_count,
9902 p_data => x_msg_data
9903 );
9904 WHEN OTHERS THEN
9905 ROLLBACK TO Update_Vendor_Site_PUB;
9906 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
9907 IF FND_MSG_PUB.Check_Msg_Level
9908 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
9909 FND_MSG_PUB.Add_Exc_Msg
9910 ( G_PKG_NAME ,
9911 l_api_name
9912 );
9913 END IF;
9914 FND_MSG_PUB.Count_And_Get
9915 ( p_count => x_msg_count,
9916 p_data => x_msg_data
9917 );
9918 END Update_Vendor_Site;
9919
9920 PROCEDURE Validate_Vendor_Site
9921 ( p_api_version IN NUMBER,
9922 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
9923 p_commit IN VARCHAR2 := FND_API.G_FALSE,
9924 p_validation_level IN NUMBER :=
9925 FND_API.G_VALID_LEVEL_FULL,
9926 x_return_status OUT NOCOPY VARCHAR2 ,
9927 x_msg_count OUT NOCOPY NUMBER,
9928 x_msg_data OUT NOCOPY VARCHAR2,
9929 p_vendor_site_rec IN OUT NOCOPY r_vendor_site_rec_type,
9930 p_mode IN VARCHAR2,
9931 p_calling_prog IN VARCHAR2,
9932 x_party_site_valid OUT NOCOPY VARCHAR2,
9933 x_location_valid OUT NOCOPY VARCHAR2,
9934 x_payee_valid OUT NOCOPY VARCHAR2,
9935 p_vendor_site_id IN NUMBER
9936 )
9937 IS
9938 l_api_name CONSTANT VARCHAR2(30) := 'Validate_Vendor_Site';
9939 l_api_version CONSTANT NUMBER := 1.0;
9940 l_org_context VARCHAR2(1);--Bug 7476500
9941 l_program_application_id number := FND_GLOBAL.prog_appl_id;--Bug 7476500
9942 l_def_org_id NUMBER;
9943 l_debug_info VARCHAR2(2000);
9944 x_valid BOOLEAN;
9945 l_sob NUMBER;
9946 l_location_id NUMBER;
9947 l_payee_return_status VARCHAR2(50);
9948 l_payee_msg_count NUMBER;
9949 l_payee_msg_data VARCHAR2(1000);
9950 l_tolerance_type VARCHAR2(50);
9951 l_status NUMBER;
9952 -- Bug 6645014 l_status added to import vat_code
9953 -- Bug 6918411/6808171 CTETALA
9954 -- l_dummy added for usage in validating country code
9955 l_dummy VARCHAR2(2);
9956 x_loc_count NUMBER := 0; -- Bug 7429668
9957 l_msg_count NUMBER; --bug 7572325
9958 l_msg_data VARCHAR2(4000); --bug 7572325
9959 l_error_code VARCHAR2(4000); --bug 7572325
9960
9961 --Bug 7835321 - Code to check if language for site is not invalid or disabled
9962 l_installed_flag VARCHAR2(10);
9963 l_language VARCHAR2(10);
9964 valid_language_flag BOOLEAN := TRUE ;
9965 cursor c_lang_is IS
9966 SELECT language_code,installed_flag
9967 FROM fnd_languages
9968 WHERE nls_language = p_vendor_site_rec.language
9969 AND nvl(Installed_flag,'I') in ('I','B','D');
9970
9971 --Bug 7835321
9972
9973 BEGIN
9974
9975 l_tolerance_type := 'QUANTITY';
9976 --Bug 7476500 start
9977 If (l_program_application_id = 200 OR l_program_application_id = -1)then
9978 MO_GLOBAL.INIT ('SQLAP');
9979 end if;
9980
9981 l_org_context := mo_global.get_access_mode;
9982 IF nvl(l_org_context, 'K') <> 'S' THEN
9983 MO_GLOBAL.set_policy_context('S',p_vendor_site_rec.org_id);
9984 END IF;
9985 --Bug 7476500 End
9986 -- Standard Start of API savepoint
9987 SAVEPOINT Validate_Vendor_Site_PUB;
9988
9989 -- Standard call to check for call compatibility.
9990 IF NOT FND_API.Compatible_API_Call ( l_api_version ,
9991 p_api_version ,
9992 l_api_name ,
9993 G_PKG_NAME )
9994 THEN
9995 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9996 END IF;
9997
9998 -- Initialize message list if p_init_msg_list is set to TRUE.
9999 IF FND_API.to_Boolean( p_init_msg_list ) THEN
10000 FND_MSG_PUB.initialize;
10001 END IF;
10002
10003 -- Initialize API return status to success
10004 x_return_status := FND_API.G_RET_STS_SUCCESS;
10005
10006 -- API body
10007
10008 --get sob
10009 --Bug 4597347
10010 --Bug 5305536
10011 IF p_vendor_site_rec.org_id IS NOT NULL THEN
10012 SELECT Set_Of_Books_Id
10013 INTO l_sob
10014 FROM ap_system_parameters
10015 WHERE org_id = p_vendor_site_rec.org_id;
10016 END IF;
10017
10018 /* Bug 9804982 Start */
10019 BEGIN
10020 SELECT vendor_type_lookup_code
10021 INTO G_vendor_type_lookup_code
10022 FROM ap_suppliers
10023 WHERE vendor_id = p_vendor_site_rec.vendor_id;
10024
10025 EXCEPTION
10026 WHEN NO_DATA_FOUND THEN
10027 G_vendor_type_lookup_code := NULL;
10028 END;
10029 /* Bug 9804982 End */
10030
10031 -- Call eTax Validation
10032
10033 ------------------------------------------------------------------------
10034 l_debug_info := 'Call to Validate hold_unmatched_invoices_flag';
10035 ------------------------------------------------------------------------
10036 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10037 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
10038 l_api_name,l_debug_info);
10039 END IF;
10040 --
10041 -- Validate hold_unmatched_invoices_flag
10042 --
10043 IF p_vendor_site_rec.hold_unmatched_invoices_flag is NOT NULL
10044 AND p_vendor_site_rec.hold_unmatched_invoices_flag <> ap_null_char THEN
10045
10046 Validate_Lookups('HOLD_UNMATCHED_INVOICES_FLAG',
10047 p_vendor_site_rec.hold_unmatched_invoices_flag ,'YES/NO',
10048 'PO_LOOKUP_CODES',x_valid);
10049 IF NOT x_valid THEN
10050 x_return_status := FND_API.G_RET_STS_ERROR;
10051 IF g_source = 'IMPORT' THEN
10052 IF (Insert_Rejections(
10053 'AP_SUPPLIER_SITES_INT',
10054 p_vendor_site_rec.vendor_site_interface_id,
10055 'AP_INVALID_HOLD_UNMAT_INV',
10056 g_user_id,
10057 g_login_id,
10058 'Validate_Vendor_Site') <> TRUE) THEN
10059 --
10060 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10061 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10062 l_api_name,'Parameters: '
10063 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
10064 ||' ,Hold_Unmatched_Invoices_Flag: '
10065 ||p_vendor_site_rec.hold_unmatched_invoices_flag);
10066 END IF;
10067 END IF;
10068 ELSE
10069 -- Bug 5491139 hkaniven start --
10070 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_HOLD_UNMAT_INV');
10071 FND_MSG_PUB.ADD;
10072 -- Bug 5491139 hkaniven end --
10073 -- Bug 8438716 Start
10074 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10075 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10076 l_api_name,'After call Validate_Lookups(HOLD_UNMATCHED_INVOICES_FLAG..)... Parameters: '
10077 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
10078 ||' ,Hold_Unmatched_Invoices_Flag: '
10079 ||p_vendor_site_rec.hold_unmatched_invoices_flag);
10080 END IF;
10081 -- Bug 8438716 End
10082 END IF;
10083 END IF;
10084 END IF;
10085
10086 -- Bug 8930706 Start
10087 ------------------------------------------------------------------------
10088 l_debug_info := 'Validate Vendor Site Code for Supplier type EMPLOYEE' ;
10089 ------------------------------------------------------------------------
10090 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10091 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
10092 l_api_name,l_debug_info);
10093 END IF;
10094 --
10095 -- Validate Vendor Site Code for Supplier type EMPLOYEE
10096 --
10097 IF G_vendor_type_lookup_code = 'EMPLOYEE' THEN
10098 IF p_vendor_site_rec.vendor_site_code IS NOT NULL
10099 AND p_vendor_site_rec.vendor_site_code <> 'HOME'
10100 AND p_vendor_site_rec.vendor_site_code <> 'OFFICE'
10101 AND p_vendor_site_rec.vendor_site_code <> 'PROVISIONAL'
10102 THEN
10103 x_return_status := FND_API.G_RET_STS_ERROR;
10104 IF g_source = 'IMPORT' THEN
10105 IF (Insert_Rejections(
10106 'AP_SUPPLIER_SITES_INT',
10107 p_vendor_site_rec.vendor_site_interface_id,
10108 'AP_INVALID_VENDOR_SITE_CODE',
10109 g_user_id,
10110 g_login_id,
10111 'Validate_Vendor_Site') <> TRUE) THEN
10112 --
10113 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10114 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10115 l_api_name,'Parameters: '
10116 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
10117 ||' ,Vendor_Site_Code: '||p_vendor_site_rec.vendor_site_code);
10118 END IF;
10119 END IF;
10120 ELSE
10121 -- Bug 5491139 hkaniven start --
10122 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_VENDOR_SITE_CODE');
10123 FND_MSG_PUB.ADD;
10124 -- Bug 5491139 hkaniven end --
10125 -- Bug 8438716 Start
10126 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10127 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10128 l_api_name,'After Validate Vendor Site Code for Supplier type EMPLOYEE ... '
10129 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
10130 ||' ,Vendor_Site_Code: '||p_vendor_site_rec.vendor_site_code);
10131 END IF;
10132 -- Bug 8438716 End
10133 END IF;
10134 ELSE
10135 -- null out address fields for EMPLOYEE
10136 p_vendor_site_rec.address_line1 := NULL ;
10137 p_vendor_site_rec.address_line2 := NULL ;
10138 p_vendor_site_rec.address_line3 := NULL ;
10139 p_vendor_site_rec.address_line4 := NULL ;
10140 p_vendor_site_rec.address_lines_alt := NULL ;
10141 p_vendor_site_rec.address_style := NULL ;
10142 END IF;
10143 END IF;
10144 -- End Bug 8930706
10145
10146 ------------------------------------------------------------------------
10147 l_debug_info := 'Call to Validate tax_reporting_site_flag';
10148 ------------------------------------------------------------------------
10149 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10150 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
10151 l_api_name,l_debug_info);
10152 END IF;
10153 --
10154 -- Validate tax_reporting_site_flag
10155 --
10156 IF p_vendor_site_rec.tax_reporting_site_flag is NOT NULL
10157 AND p_vendor_site_rec.tax_reporting_site_flag <> ap_null_char THEN
10158
10159 Validate_Lookups( 'TAX_REPORTING_SITE_FLAG',
10160 p_vendor_site_rec.tax_reporting_site_flag ,'YES/NO',
10161 'PO_LOOKUP_CODES',x_valid);
10162 IF NOT x_valid THEN
10163 x_return_status := FND_API.G_RET_STS_ERROR;
10164 IF g_source = 'IMPORT' THEN
10165 IF (Insert_Rejections(
10166 'AP_SUPPLIER_SITES_INT',
10167 p_vendor_site_rec.vendor_site_interface_id,
10168 'AP_INVALID_TAX_RS_FLAG',
10169 g_user_id,
10170 g_login_id,
10171 'Validate_Vendor_Site') <> TRUE) THEN
10172 --
10173 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10174 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10175 l_api_name,'Parameters: '
10176 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
10177 ||' ,Tax_Reporting_Site_Flag: '
10178 ||p_vendor_site_rec.tax_reporting_site_flag);
10179 END IF;
10180 END IF;
10181 ELSE
10182 -- Bug 5491139 hkaniven start --
10183 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_TAX_RS_FLAG');
10184 FND_MSG_PUB.ADD;
10185 -- Bug 5491139 hkaniven end --
10186 -- Bug 8438716 Start
10187 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10188 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10189 l_api_name,'Validate_Lookups(TAX_REPORTING_SITE_FLAG...)... Parameters: '
10190 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
10191 ||' ,Tax_Reporting_Site_Flag: '
10192 ||p_vendor_site_rec.tax_reporting_site_flag);
10193 END IF;
10194 -- Bug 8438716 End
10195 END IF;
10196 END IF;
10197 END IF;
10198
10199 -- Bug 6645014 starts: To import Vat code
10200 ------------------------------------------------------------------------
10201 l_debug_info := 'Call to Validate vat_code';
10202 ------------------------------------------------------------------------
10203 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10204 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
10205 l_api_name,l_debug_info);
10206 END IF;
10207 --
10208 -- Validate vat_code
10209 --
10210 IF p_vendor_site_rec.vat_code is NOT NULL THEN
10211 -- Checking the vat code in the tax tables
10212 l_status := 0;
10213 SELECT COUNT(*) INTO l_status FROM DUAL WHERE EXISTS (
10214 SELECT 'Y'
10215 FROM zx_input_classifications_v
10216 WHERE lookup_type in ('ZX_INPUT_CLASSIFICATIONS', 'ZX_WEB_EXP_TAX_CLASSIFICATIONS')
10217 AND org_id in ( p_vendor_site_rec.org_id, -99)
10218 AND enabled_flag = 'Y'
10219 AND LOOKUP_CODE = p_vendor_site_rec.VAT_CODE );
10220
10221
10222 IF l_status = 0 THEN
10223 x_return_status := FND_API.G_RET_STS_ERROR;
10224 IF g_source = 'IMPORT' THEN
10225 IF (Insert_Rejections(
10226 'AP_SUPPLIER_SITES_INT',
10227 p_vendor_site_rec.vendor_site_interface_id,
10228 'AP_INVALID_VAT_CODE',
10229 g_user_id,
10230 g_login_id,
10231 'Validate_Vendor_Site') <> TRUE) THEN
10232 --
10233 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10234 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10235 l_api_name,'Parameters: '
10236 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
10237 ||' ,Vat_Code: '
10238 ||p_vendor_site_rec.vat_code);
10239 END IF;
10240 END IF;
10241 ELSE
10242 FND_MESSAGE.SET_NAME('SQLAP', 'AP_INVALID_VAT_CODE');
10243 FND_MSG_PUB.ADD;
10244 -- Bug 8438716 Start
10245 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10246 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10247 l_api_name,'After call to VAT_CODE validation... Parameters: '
10248 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
10249 ||' ,Vat_Code: '
10250 ||p_vendor_site_rec.vat_code);
10251 END IF;
10252 -- Bug 8438716 End
10253 END IF;
10254 END IF;
10255 END IF;
10256 -- Bug 6645014 ends
10257
10258
10259 ------------------------------------------------------------------------
10260 l_debug_info := 'Call to Validate default_pay_site_id';
10261 ------------------------------------------------------------------------
10262 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10263 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
10264 l_api_name,l_debug_info);
10265 END IF;
10266 --
10267 -- We should check for Valid Sites for any default_pay_site_id
10268 --
10269 IF (p_vendor_site_rec.default_pay_site_id is NOT NULL) AND
10270 (p_vendor_site_rec.default_pay_site_id <> ap_null_num) THEN
10271
10272 Check_Default_pay_site(p_vendor_site_rec.default_pay_site_id,
10273 p_vendor_site_rec.vendor_id,
10274 p_vendor_site_rec.org_id,
10275 x_valid
10276 );
10277 IF NOT x_valid THEN
10278 x_return_status := FND_API.G_RET_STS_ERROR;
10279 IF g_source = 'IMPORT' THEN
10280 IF (Insert_Rejections(
10281 'AP_SUPPLIER_SITES_INT',
10282 p_vendor_site_rec.vendor_site_interface_id,
10283 'AP_INVALID_DEF_PAY_SITE',
10284 g_user_id,
10285 g_login_id,
10286 'Validate_Vendor_Site') <> TRUE) THEN
10287 --
10288 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10289 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10290 l_api_name,'Parameters: '
10291 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
10292 ||' ,Vendor_Id: '||p_vendor_site_rec.vendor_id
10293 ||' ,Org_Id: '||p_vendor_site_rec.org_id
10294 ||' ,Deafult_Pay_Site_Id: '
10295 ||p_vendor_site_rec.default_pay_site_id);
10296 END IF;
10297 END IF;
10298 ELSE
10299 -- Bug 5491139 hkaniven start --
10300 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_DEF_PAY_SITE');
10301 FND_MSG_PUB.ADD;
10302 -- Bug 5491139 hkaniven end --
10303 -- Bug 8438716 Start
10304 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10305 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10306 l_api_name,'Call after Check_Default_pay_site... Parameters: '
10307 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
10308 ||' ,Vendor_Id: '||p_vendor_site_rec.vendor_id
10309 ||' ,Org_Id: '||p_vendor_site_rec.org_id
10310 ||' ,Deafult_Pay_Site_Id: '
10311 ||p_vendor_site_rec.default_pay_site_id);
10312 END IF;
10313 -- Bug 8438716 End
10314 END IF;
10315 END IF;
10316 END IF;
10317
10318
10319 -- Validate that no duplicate Vendor Site Code exist in applications
10320 --
10321 ------------------------------------------------------------------------
10322 l_debug_info := 'Call to Validate Vendor Site Code';
10323 ------------------------------------------------------------------------
10324 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10325 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
10326 l_api_name,l_debug_info);
10327 END IF;
10328
10329 IF p_vendor_site_rec.vendor_site_code is not null
10330 --AND p_mode = 'I' -- should skip this check for Update, xili, 12/18/2006 --commenting for Bug 14032240 to validate during UPDATE aswell
10331 AND p_vendor_site_rec.vendor_site_code <> ap_null_char THEN
10332
10333 Check_dup_vendor_site ( p_vendor_site_rec.vendor_id,
10334 p_vendor_site_rec.vendor_site_code,
10335 p_vendor_site_rec.org_name,
10336 p_vendor_site_rec.org_id,
10337 x_valid);
10338 IF NOT x_valid THEN
10339 x_return_status := FND_API.G_RET_STS_ERROR;
10340 IF g_source = 'IMPORT' THEN
10341 IF (Insert_Rejections(
10342 'AP_SUPPLIER_SITES_INT',
10343 p_vendor_site_rec.vendor_site_interface_id,
10344 'AP_DUPLICATE_VENDOR_SITE',
10345 g_user_id,
10346 g_login_id,
10347 'Validate_Vendor_Site') <> TRUE) THEN
10348 --
10349 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10350 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10351 l_api_name,'Parameters: '
10352 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
10353 ||' ,Vendor_Id: '||p_vendor_site_rec.vendor_id
10354 ||' ,Org_Id: '||p_vendor_site_rec.org_id
10355 ||' ,Vendor_Site_Code: '
10356 ||p_vendor_site_rec.vendor_site_code);
10357 END IF;
10358 END IF;
10359 ELSE
10360 -- Bug 5491139 hkaniven start --
10361 FND_MESSAGE.SET_NAME('SQLAP','AP_DUPLICATE_VENDOR_SITE');
10362 FND_MSG_PUB.ADD;
10363 -- Bug 5491139 hkaniven end --
10364 -- Bug 8438716 Start
10365 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10366 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10367 l_api_name,'Call after Check_dup_vendor_site... Parameters: '
10368 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
10369 ||' ,Vendor_Id: '||p_vendor_site_rec.vendor_id
10370 ||' ,Org_Id: '||p_vendor_site_rec.org_id
10371 ||' ,Vendor_Site_Code: '
10372 ||p_vendor_site_rec.vendor_site_code);
10373 END IF;
10374 -- Bug 8438716 End
10375 END IF;
10376 END IF;
10377 END IF;
10378
10379 --Bug 13963970 Start
10380 ------------------------------------------------------------------------
10381 l_debug_info := 'Call to validate unique EDI Location';
10382 ------------------------------------------------------------------------
10383 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10384 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
10385 l_api_name,l_debug_info);
10386 END IF;
10387
10388 IF p_vendor_site_rec.ece_tp_location_code is not null
10389 AND p_vendor_site_rec.ece_tp_location_code <> ap_null_char THEN
10390
10391 Check_duplicate_ece_code ( p_vendor_site_rec.vendor_id,
10392 p_vendor_site_rec.vendor_site_code,
10393 p_vendor_site_rec.vendor_site_id,
10394 p_vendor_site_rec.org_name,
10395 p_vendor_site_rec.org_id,
10396 p_vendor_site_rec.ece_tp_location_code,
10397 x_valid);
10398
10399 IF NOT x_valid THEN
10400 x_return_status := FND_API.G_RET_STS_ERROR;
10401 IF g_source = 'IMPORT' THEN
10402 IF (Insert_Rejections(
10403 'AP_SUPPLIER_SITES_INT',
10404 p_vendor_site_rec.vendor_site_interface_id,
10405 'AP_VEN_DUPLICATE_ECE_CODE',
10406 g_user_id,
10407 g_login_id,
10408 'Validate_Vendor_Site') <> TRUE) THEN
10409 --
10410 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10411 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10412 l_api_name,'Parameters: '
10413 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
10414 ||' ,Vendor_Id: '||p_vendor_site_rec.vendor_id
10415 ||' ,Org_Id: '||p_vendor_site_rec.org_id
10416 ||' ,Vendor_Site_Code: '
10417 ||p_vendor_site_rec.vendor_site_code);
10418 END IF;
10419 END IF;
10420 ELSE
10421 -- Bug 5491139 hkaniven start --
10422 FND_MESSAGE.SET_NAME('SQLAP','AP_VEN_DUPLICATE_ECE_CODE');
10423 FND_MSG_PUB.ADD;
10424 -- Bug 5491139 hkaniven end --
10425 -- Bug 8438716 Start
10426 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10427 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10428 l_api_name,'Call after Check_duplicate_ece_code... Parameters: '
10429 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
10430 ||' ,Vendor_Id: '||p_vendor_site_rec.vendor_id
10431 ||' ,Org_Id: '||p_vendor_site_rec.org_id
10432 ||' ,Vendor_Site_Code: '
10433 ||p_vendor_site_rec.vendor_site_code);
10434 END IF;
10435 -- Bug 8438716 End
10436 END IF;
10437 END IF;
10438 END IF;
10439 --Bug 13963970 End
10440
10441
10442 ------------------------------------------------------------------------
10443 l_debug_info := 'Call Org_Id and Operating_unit_name validation';
10444 ------------------------------------------------------------------------
10445 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10446 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
10447 l_api_name,l_debug_info);
10448 END IF;
10449
10450 -- Org_Id and Operating_unit_name validation
10451 IF (p_vendor_site_rec.org_id is NOT NULL AND
10452 p_vendor_site_rec.org_id <> ap_null_num) OR
10453 (p_vendor_site_rec.org_name is NOT NULL AND
10454 p_vendor_site_rec.org_name <> ap_null_char) THEN
10455
10456 Check_org_id_name(p_vendor_site_rec.org_id,
10457 p_vendor_site_rec.org_name,
10458 'AP_SUPPLIER_SITES_INT',
10459 p_vendor_site_rec.vendor_site_interface_id,
10460 x_valid);
10461
10462 IF NOT x_valid THEN
10463 x_return_status := FND_API.G_RET_STS_ERROR;
10464 -- Bug 8438716 Start
10465 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10466 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10467 l_api_name,'Call after Check_org_id_name... Parameters: '
10468 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
10469 ||' ,p_vendor_site_rec.org_name: '||p_vendor_site_rec.org_name);
10470 END IF;
10471 -- Bug 8438716 End
10472 END IF;
10473
10474 END IF;
10475
10476
10477 ------------------------------------------------------------------------
10478 l_debug_info := 'Call to Validate pay_on_receipt_summary_code';
10479 ------------------------------------------------------------------------
10480 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10481 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
10482 l_api_name,l_debug_info);
10483 END IF;
10484 --
10485 -- Validate and default pay_on_receipt_summary_code
10486 --
10487 IF p_vendor_site_rec.pay_on_code is NOT NULL AND
10488 p_vendor_site_rec.pay_on_code <> ap_null_char THEN
10489
10490 Check_pay_on_rec_sum_code(p_vendor_site_rec.pay_on_code,
10491 p_vendor_site_rec.pay_on_receipt_summary_code,
10492 x_valid);
10493 IF NOT x_valid THEN
10494 x_return_status := FND_API.G_RET_STS_ERROR;
10495 IF g_source = 'IMPORT' THEN
10496 IF (Insert_Rejections(
10497 'AP_SUPPLIER_SITES_INT',
10498 p_vendor_site_rec.vendor_site_interface_id,
10499 'AP_INVALID_PAY_ON_RCE',
10500 g_user_id,
10501 g_login_id,
10502 'Validate_Vendor_Site') <> TRUE) THEN
10503 --
10504 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10505 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10506 l_api_name,'Parameters: '
10507 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
10508 ||' ,Pay_On_Code: '||p_vendor_site_rec.pay_on_code
10509 ||' ,Pay_On_Receipt_Summary_Code: '
10510 ||p_vendor_site_rec.pay_on_receipt_summary_code);
10511 END IF;
10512 END IF;
10513 ELSE
10514 -- Bug 5491139 hkaniven start --
10515 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PAY_ON_RCE');
10516 FND_MSG_PUB.ADD;
10517 -- Bug 5491139 hkaniven end --
10518 -- Bug 8438716 Start
10519 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10520 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10521 l_api_name,'Call after Check_pay_on_rec_sum_code... Parameters: '
10522 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
10523 ||' ,Pay_On_Code: '||p_vendor_site_rec.pay_on_code
10524 ||' ,Pay_On_Receipt_Summary_Code: '
10525 ||p_vendor_site_rec.pay_on_receipt_summary_code);
10526 END IF;
10527 -- Bug 8438716 End
10528 END IF;
10529 END IF;
10530 END IF;
10531
10532 ------------------------------------------------------------------------
10533 l_debug_info := 'Call to Validate shipping_control';
10534 ------------------------------------------------------------------------
10535 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10536 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
10537 l_api_name,l_debug_info);
10538 END IF;
10539 --
10540 -- Validate shipping_control
10541 --
10542 IF p_vendor_site_rec.shipping_control is NOT NULL
10543 AND p_vendor_site_rec.shipping_control <> ap_null_char THEN
10544
10545 Check_Shipping_Control(p_vendor_site_rec.shipping_control,
10546 x_valid
10547 );
10548
10549 IF NOT x_valid THEN
10550 x_return_status := FND_API.G_RET_STS_ERROR;
10551 IF g_source = 'IMPORT' THEN
10552 IF (Insert_Rejections(
10553 'AP_SUPPLIER_SITES_INT',
10554 p_vendor_site_rec.vendor_site_interface_id,
10555 'AP_INVALID_SHIPPING_CONTROL',
10556 g_user_id,
10557 g_login_id,
10558 'Validate_Vendor_Site') <> TRUE) THEN
10559 --
10560 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10561 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10562 l_api_name,'Parameters: '
10563 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
10564 ||' ,Shipping_Control: '||p_vendor_site_rec.shipping_control);
10565 END IF;
10566 END IF;
10567 ELSE
10568 -- Bug 5491139 hkaniven start --
10569 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_SHIPPING_CONTROL');
10570 FND_MSG_PUB.ADD;
10571 -- Bug 5491139 hkaniven end --
10572 -- Bug 8438716 Start
10573 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10574 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10575 l_api_name,'Call Check_Shipping_Control after... Parameters: '
10576 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
10577 ||' ,Shipping_Control: '||p_vendor_site_rec.shipping_control);
10578 END IF;
10579 -- Bug 8438716 End
10580 END IF;
10581 END IF;
10582 END IF;
10583
10584 ------------------------------------------------------------------------
10585 l_debug_info := 'Call to Validate Terms_Id and Terms_Name';
10586 ------------------------------------------------------------------------
10587 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10588 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
10589 l_api_name,l_debug_info);
10590 END IF;
10591
10592 -- Terms_Id and Terms_Name validation
10593
10594 IF ((p_vendor_site_rec.terms_id is NOT NULL AND
10595 p_vendor_site_rec.terms_id <> ap_null_num) OR
10596 (p_vendor_site_rec.terms_name is NOT NULL AND
10597 p_vendor_site_rec.terms_name <> ap_null_char) OR
10598 (p_vendor_site_rec.default_terms_id is NOT NULL AND
10599 p_vendor_site_rec.default_terms_id <> ap_null_num) --6393761
10600 ) THEN
10601
10602 Check_terms_id_code(p_vendor_site_rec.terms_id,
10603 p_vendor_site_rec.terms_name,
10604 p_vendor_site_rec.default_terms_id,
10605 x_valid);
10606 IF NOT x_valid THEN
10607 x_return_status := FND_API.G_RET_STS_ERROR;
10608 IF g_source = 'IMPORT' THEN
10609 IF (Insert_Rejections(
10610 'AP_SUPPLIER_SITES_INT',
10611 p_vendor_site_rec.vendor_site_interface_id,
10612 'AP_INCONSISTENT_TERM',
10613 g_user_id,
10614 g_login_id,
10615 'Validate_Vendor_Site') <> TRUE) THEN
10616 --
10617 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10618 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10619 l_api_name,'Parameters: '
10620 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
10621 ||' ,Terms_Id: '||p_vendor_site_rec.terms_id
10622 ||' ,Terms_Name: '||p_vendor_site_rec.terms_name
10623 ||' ,Default_Terms_Id: '||p_vendor_site_rec.default_terms_Id);
10624 END IF;
10625 END IF;
10626 ELSE
10627 -- Bug 5491139 hkaniven start --
10628 FND_MESSAGE.SET_NAME('SQLAP','AP_INCONSISTENT_TERM');
10629 FND_MSG_PUB.ADD;
10630 -- Bug 5491139 hkaniven end --
10631 -- Bug 8438716 Start
10632 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10633 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10634 l_api_name,'Call after Check_terms_id_code... Parameters: '
10635 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
10636 ||' ,Terms_Id: '||p_vendor_site_rec.terms_id
10637 ||' ,Terms_Name: '||p_vendor_site_rec.terms_name
10638 ||' ,Default_Terms_Id: '||p_vendor_site_rec.default_terms_Id);
10639 END IF;
10640 -- Bug 8438716 End
10641 END IF;
10642 END IF;
10643 END IF;
10644
10645 ------------------------------------------------------------------------
10646 l_debug_info := 'Call to Validate pay_on_code';
10647 ------------------------------------------------------------------------
10648 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10649 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
10650 l_api_name,l_debug_info);
10651 END IF;
10652 --
10653 -- Validate pay_on_code
10654 --
10655 IF p_vendor_site_rec.pay_on_code is NOT NULL AND
10656 p_vendor_site_rec.pay_on_code <> ap_null_char THEN
10657
10658 Check_Valid_pay_on_code(p_vendor_site_rec.pay_on_code,
10659 p_vendor_site_rec.purchasing_site_flag,
10660 p_vendor_site_rec.pay_site_flag,
10661 p_vendor_site_rec.default_pay_site_id,
10662 x_valid);
10663
10664 IF NOT x_valid THEN
10665 x_return_status := FND_API.G_RET_STS_ERROR;
10666 IF g_source = 'IMPORT' THEN
10667 IF (Insert_Rejections(
10668 'AP_SUPPLIER_SITES_INT',
10669 p_vendor_site_rec.vendor_site_interface_id,
10670 'AP_INVALID_PAY_ON_CODE',
10671 g_user_id,
10672 g_login_id,
10673 'Validate_Vendor_Site') <> TRUE) THEN
10674 --
10675 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10676 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10677 l_api_name,'Parameters: '
10678 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
10679 ||' ,Pay_On_Code: '||p_vendor_site_rec.pay_on_code
10680 ||' ,Purchasing_Site_Flag: '||p_vendor_site_rec.purchasing_site_flag
10681 ||' ,Pay_Site_Flag: '||p_vendor_site_rec.pay_site_flag);
10682 END IF;
10683 END IF;
10684 ELSE
10685 -- Bug 5491139 hkaniven start --
10686 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PAY_ON_CODE');
10687 FND_MSG_PUB.ADD;
10688 -- Bug 5491139 hkaniven end --
10689 -- Bug 8438716 Start
10690 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10691 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10692 l_api_name,'Call after Check_Valid_pay_on_code... Parameters: '
10693 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
10694 ||' ,Pay_On_Code: '||p_vendor_site_rec.pay_on_code
10695 ||' ,Purchasing_Site_Flag: '||p_vendor_site_rec.purchasing_site_flag
10696 ||' ,Pay_Site_Flag: '||p_vendor_site_rec.pay_site_flag);
10697 END IF;
10698 -- Bug 8438716 End
10699 END IF;
10700 END IF;
10701 END IF;
10702
10703 ------------------------------------------------------------------------
10704 l_debug_info := 'Call to Validate pay_on_code and pay_on_receipt_summary_code';
10705 ------------------------------------------------------------------------
10706 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10707 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
10708 l_api_name,l_debug_info);
10709 END IF;
10710
10711 IF (p_vendor_site_rec.pay_on_receipt_summary_code is not null AND
10712 p_vendor_site_rec.pay_on_receipt_summary_code <> ap_null_char
10713 AND p_vendor_site_rec.pay_on_code is not null AND
10714 p_vendor_site_rec.pay_on_code <> ap_null_char) THEN
10715 pay_on_receipt_summary_valid(p_vendor_site_rec.pay_on_receipt_summary_code,
10716 p_vendor_site_rec.pay_on_code,
10717 x_valid);
10718 IF NOT x_valid THEN
10719 x_return_status := FND_API.G_RET_STS_ERROR;
10720 IF g_source = 'IMPORT' THEN
10721 IF (Insert_Rejections(
10722 'AP_SUPPLIER_SITES_INT',
10723 p_vendor_site_rec.vendor_site_interface_id,
10724 'AP_INVALID_PAY_ON_RCE',
10725 g_user_id,
10726 g_login_id,
10727 'Validate_Vendor_Site') <> TRUE) THEN
10728 --
10729 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10730 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10731 l_api_name,'Parameters: '
10732 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
10733 ||' ,Pay_On_Code: '||p_vendor_site_rec.pay_on_code
10734 ||' ,Pay_On_Receipt_Summary_Code: '
10735 ||p_vendor_site_rec.pay_on_receipt_summary_code);
10736 END IF;
10737 END IF;
10738 ELSE
10739 -- Bug 5491139 hkaniven start --
10740 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PAY_ON_RCE');
10741 FND_MSG_PUB.ADD;
10742 -- Bug 5491139 hkaniven end --
10743 -- Bug 8438716 Start
10744 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10745 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10746 l_api_name,'Call after pay_on_receipt_summary_valid... Parameters: '
10747 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
10748 ||' ,Pay_On_Code: '||p_vendor_site_rec.pay_on_code
10749 ||' ,Pay_On_Receipt_Summary_Code: '
10750 ||p_vendor_site_rec.pay_on_receipt_summary_code);
10751 END IF;
10752 -- Bug 8438716 End
10753 END IF;
10754 END IF;
10755 END IF;
10756
10757 ------------------------------------------------------------------------
10758 l_debug_info := 'Call to Validate Payment_Priority';
10759 ------------------------------------------------------------------------
10760 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10761 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
10762 l_api_name,l_debug_info);
10763 END IF;
10764 --
10765 -- Validate Payment_Priority
10766 --
10767 IF p_vendor_site_rec.payment_priority is NOT NULL AND
10768 p_vendor_site_rec.payment_priority <> ap_null_num THEN
10769
10770 Check_payment_priority(p_vendor_site_rec.payment_priority,
10771 x_valid
10772 );
10773 IF NOT x_valid THEN
10774 x_return_status := FND_API.G_RET_STS_ERROR;
10775 IF g_source = 'IMPORT' THEN
10776 IF (Insert_Rejections(
10777 'AP_SUPPLIER_SITES_INT',
10778 p_vendor_site_rec.vendor_site_interface_id,
10779 'AP_INVALID_PAY_PRIORITY',
10780 g_user_id,
10781 g_login_id,
10782 'Validate_Vendor_Site') <> TRUE) THEN
10783 --
10784 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10785 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10786 l_api_name,'Parameters: '
10787 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
10788 ||' ,Payment_Priority: '||p_vendor_site_rec.payment_priority);
10789 END IF;
10790 END IF;
10791 ELSE
10792 -- Bug 5491139 hkaniven start --
10793 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PAYMENT_PRIORITY');
10794 FND_MSG_PUB.ADD;
10795 -- Bug 5491139 hkaniven end --
10796 -- Bug 8438716 Start
10797 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10798 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10799 l_api_name,'Call after Check_payment_priority... Parameters: '
10800 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
10801 ||' ,Payment_Priority: '||p_vendor_site_rec.payment_priority);
10802 END IF;
10803 -- Bug 8438716 End
10804 END IF;
10805 END IF;
10806 END IF;
10807
10808 ------------------------------------------------------------------------
10809 l_debug_info := 'Call to Validate Invoice Currency Code';
10810 ------------------------------------------------------------------------
10811 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10812 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
10813 l_api_name,l_debug_info);
10814 END IF;
10815
10816 IF (p_vendor_site_rec.invoice_currency_code is not null AND
10817 p_vendor_site_rec.invoice_currency_code <> ap_null_char) THEN
10818 val_currency_code(p_vendor_site_rec.invoice_currency_code,
10819 x_valid);
10820 IF NOT x_valid THEN
10821 x_return_status := FND_API.G_RET_STS_ERROR;
10822 IF g_source = 'IMPORT' THEN
10823 IF (Insert_Rejections(
10824 'AP_SUPPLIER_SITES_INT',
10825 p_vendor_site_rec.vendor_site_interface_id,
10826 'AP_INVALID_INV_CURRENCY',
10827 g_user_id,
10828 g_login_id,
10829 'Validate_Vendor_Site') <> TRUE) THEN
10830 --
10831 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10832 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10833 l_api_name,'Parameters: '
10834 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
10835 ||' ,Invoice_Currency_Code: '||p_vendor_site_rec.invoice_currency_code);
10836 END IF;
10837 END IF;
10838 ELSE
10839 -- Bug 5491139 hkaniven start --
10840 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_INV_CURRENCY');
10841 FND_MSG_PUB.ADD;
10842 -- Bug 5491139 hkaniven end --
10843 -- Bug 8438716 Start
10844 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10845 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10846 l_api_name,'Call after val_currency_code... Parameters: '
10847 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
10848 ||' ,Invoice_Currency_Code: '||p_vendor_site_rec.invoice_currency_code);
10849 END IF;
10850 -- Bug 8438716 End
10851 END IF;
10852 END IF;
10853 END IF;
10854
10855 ------------------------------------------------------------------------
10856 l_debug_info := 'Call to Validate Payment Currency Code';
10857 ------------------------------------------------------------------------
10858 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10859 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
10860 l_api_name,l_debug_info);
10861 END IF;
10862
10863 IF (p_vendor_site_rec.payment_currency_code is not null
10864 AND p_vendor_site_rec.payment_currency_code <> ap_null_char
10865 AND p_vendor_site_rec.invoice_currency_code is not null
10866 AND p_vendor_site_rec.invoice_currency_code <> ap_null_char) THEN
10867 payment_currency_code_valid(p_vendor_site_rec.payment_currency_code,
10868 p_vendor_site_rec.invoice_currency_code,
10869 x_valid);
10870 IF NOT x_valid THEN
10871 x_return_status := FND_API.G_RET_STS_ERROR;
10872 IF g_source = 'IMPORT' THEN
10873 IF (Insert_Rejections(
10874 'AP_SUPPLIER_SITES_INT',
10875 p_vendor_site_rec.vendor_site_interface_id,
10876 'AP_INVALID_PAY_CURRENCY',
10877 g_user_id,
10878 g_login_id,
10879 'Validate_Vendor_Site') <> TRUE) THEN
10880 --
10881 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10882 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10883 l_api_name,'Parameters: '
10884 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
10885 ||' ,Invoice_Currency_Code: '||p_vendor_site_rec.invoice_currency_code
10886 ||' ,Payment_Currency_Code: '||p_vendor_site_rec.payment_currency_code);
10887 END IF;
10888 END IF;
10889 ELSE
10890 -- Bug 5491139 hkaniven start --
10891 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PAY_CURRENCY');
10892 FND_MSG_PUB.ADD;
10893 -- Bug 5491139 hkaniven end --
10894 -- Bug 8438716 Start
10895 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10896 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10897 l_api_name,'Call after payment_currency_code_valid... Parameters: '
10898 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
10899 ||' ,Invoice_Currency_Code: '||p_vendor_site_rec.invoice_currency_code
10900 ||' ,Payment_Currency_Code: '||p_vendor_site_rec.payment_currency_code);
10901 END IF;
10902 -- Bug 8438716 End
10903 END IF;
10904 END IF;
10905 END IF;
10906
10907 ------------------------------------------------------------------------
10908 l_debug_info := 'Call to Validate accts_pay_ccid';
10909 ------------------------------------------------------------------------
10910 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10911 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
10912 l_api_name,l_debug_info);
10913 END IF;
10914 --
10915 -- Validate accts_pay_ccid
10916 --
10917 IF p_vendor_site_rec.accts_pay_code_combination_id is NOT NULL
10918 AND p_vendor_site_rec.accts_pay_code_combination_id <> ap_null_num THEN
10919
10920 Validate_CCIDs('ACCTS_PAY_CCID',
10921 p_vendor_site_rec.accts_pay_code_combination_id, l_sob,
10922 x_valid);
10923 IF NOT x_valid THEN
10924 x_return_status := FND_API.G_RET_STS_ERROR;
10925 IF g_source = 'IMPORT' THEN
10926 IF (Insert_Rejections(
10927 'AP_SUPPLIER_SITES_INT',
10928 p_vendor_site_rec.vendor_site_interface_id,
10929 'AP_INVALID_ACCOUNTS_PAY_CCID',
10930 g_user_id,
10931 g_login_id,
10932 'Validate_Vendor_Site') <> TRUE) THEN
10933 --
10934 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10935 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10936 l_api_name,'Parameters: '
10937 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
10938 ||' ,Accts_Pay_Code_Comb_Id: '
10939 ||p_vendor_site_rec.accts_pay_code_combination_id
10940 ||' ,Set_Of_Books_Id: '||l_sob);
10941 END IF;
10942 END IF;
10943 ELSE
10944 -- Bug 5491139 hkaniven start --
10945 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_ACCOUNTS_PAY_CCID');
10946 FND_MSG_PUB.ADD;
10947 -- Bug 5491139 hkaniven end --
10948 -- Bug 8438716 Start
10949 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10950 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10951 l_api_name,'Call after Validate_CCIDs(ACCTS_PAY_CCID...) ... Parameters: '
10952 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
10953 ||' ,Accts_Pay_Code_Comb_Id: '
10954 ||p_vendor_site_rec.accts_pay_code_combination_id
10955 ||' ,Set_Of_Books_Id: '||l_sob);
10956 END IF;
10957 -- Bug 8438716 End
10958 END IF;
10959 END IF;
10960 END IF;
10961
10962 ------------------------------------------------------------------------
10963 l_debug_info := 'Call to Validate prepay_ccid';
10964 ------------------------------------------------------------------------
10965 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10966 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
10967 l_api_name,l_debug_info);
10968 END IF;
10969 --
10970 -- Validate prepay_code_combination_id
10971 --
10972 IF p_vendor_site_rec.prepay_code_combination_id is NOT NULL AND
10973 p_vendor_site_rec.prepay_code_combination_id <> ap_null_num THEN
10974 Validate_CCIDs( 'PREPAY_CCID',
10975 p_vendor_site_rec.prepay_code_combination_id, l_sob,
10976 x_valid);
10977 IF NOT x_valid THEN
10978 x_return_status := FND_API.G_RET_STS_ERROR;
10979 IF g_source = 'IMPORT' THEN
10980 IF (Insert_Rejections(
10981 'AP_SUPPLIER_SITES_INT',
10982 p_vendor_site_rec.vendor_site_interface_id,
10983 'AP_SUPP_INVALID_CCID',
10984 g_user_id,
10985 g_login_id,
10986 'Validate_Vendor_Site') <> TRUE) THEN
10987 --
10988 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
10989 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
10990 l_api_name,'Parameters: '
10991 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
10992 ||' ,Prepay_Code_Combination_Id: '
10993 ||p_vendor_site_rec.prepay_code_combination_id
10994 ||' ,Set_Of_Books_Id: '||l_sob);
10995 END IF;
10996 END IF;
10997 ELSE
10998 -- Bug 5491139 hkaniven start --
10999 FND_MESSAGE.SET_NAME('SQLAP','AP_SUPP_INVALID_CCID');
11000 FND_MSG_PUB.ADD;
11001 -- Bug 5491139 hkaniven end --
11002 -- Bug 8438716 Start
11003 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11004 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
11005 l_api_name,'Call after Validate_CCIDs(PREPAY_CCID...)... Parameters: '
11006 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
11007 ||' ,Prepay_Code_Combination_Id: '
11008 ||p_vendor_site_rec.prepay_code_combination_id
11009 ||' ,Set_Of_Books_Id: '||l_sob);
11010 END IF;
11011 -- Bug 8438716 End
11012 END IF;
11013 END IF;
11014 END IF;
11015
11016 ------------------------------------------------------------------------
11017 l_debug_info := 'Call to Validate future_dated_payment_ccid';
11018 ------------------------------------------------------------------------
11019 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
11020 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
11021 l_api_name,l_debug_info);
11022 END IF;
11023 --
11024 -- Validate future_dated_payment_ccid
11025 --
11026 IF p_vendor_site_rec.future_dated_payment_ccid is NOT NULL AND
11027 p_vendor_site_rec.future_dated_payment_ccid <> ap_null_num THEN
11028 Validate_CCIDs( 'FUTURE_DATED_PAYMENT_CCID',
11029 p_vendor_site_rec.future_dated_payment_ccid, l_sob,
11030 x_valid);
11031 IF NOT x_valid THEN
11032 x_return_status := FND_API.G_RET_STS_ERROR;
11033 IF g_source = 'IMPORT' THEN
11034 IF (Insert_Rejections(
11035 'AP_SUPPLIER_SITES_INT',
11036 p_vendor_site_rec.vendor_site_interface_id,
11037 'AP_SUPP_INVALID_CCID',
11038 g_user_id,
11039 g_login_id,
11040 'Validate_Vendor_Site') <> TRUE) THEN
11041 --
11042 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11043 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
11044 l_api_name,'Parameters: '
11045 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
11046 ||' ,Future_Dated_Payment_Ccid: '
11047 ||p_vendor_site_rec.future_dated_payment_ccid
11048 ||' ,Set_Of_Books_Id: '||l_sob);
11049 END IF;
11050 END IF;
11051 ELSE
11052 -- Bug 5491139 hkaniven start --
11053 FND_MESSAGE.SET_NAME('SQLAP','AP_SUPP_INVALID_CCID');
11054 FND_MSG_PUB.ADD;
11055 -- Bug 5491139 hkaniven end --
11056 -- Bug 8438716 Start
11057 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11058 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
11059 l_api_name,'Call after Validate_CCIDs(FUTURE_DATED_PAYMENT_CCID...)... Parameters: '
11060 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
11061 ||' ,Future_Dated_Payment_Ccid: '
11062 ||p_vendor_site_rec.future_dated_payment_ccid
11063 ||' ,Set_Of_Books_Id: '||l_sob);
11064 END IF;
11065 -- Bug 8438716 End
11066 END IF;
11067 END IF;
11068 END IF;
11069
11070 ------------------------------------------------------------------------
11071 l_debug_info := 'Call to Validate duns_number';
11072 ------------------------------------------------------------------------
11073 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
11074 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
11075 l_api_name,l_debug_info);
11076 END IF;
11077 --
11078 -- Validate supplier site duns number
11079 -- Added for the R12 FSIO gap
11080 --(bug6053476)
11081 IF p_vendor_site_rec.duns_number is NOT NULL
11082 AND p_vendor_site_rec.duns_number <> ap_null_char THEN
11083
11084 --call the duns number validaton API
11085 Chk_new_duns_number(p_vendor_site_rec.duns_number,
11086 x_valid);
11087
11088 IF NOT x_valid THEN
11089 x_return_status := FND_API.G_RET_STS_ERROR;
11090 IF g_source = 'IMPORT' THEN
11091 IF (Insert_Rejections(
11092 'AP_SUPPLIER_SITES_INT',
11093 p_vendor_site_rec.vendor_site_interface_id,
11094 'AP_INVALID_DUNS_NUMBER',
11095 g_user_id,
11096 g_login_id,
11097 'Validate_Vendor_Site') <> TRUE) THEN
11098 --
11099 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11100 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
11101 l_api_name,'Parameters: '
11102 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
11103 ||' ,Invalid_Duns_number: '
11104 ||p_vendor_site_rec.duns_number);
11105 END IF;
11106 END IF;
11107 ELSE
11108 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_DUNS_NUMBER');
11109 FND_MSG_PUB.ADD;
11110 -- Bug 8438716 Start
11111 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11112 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
11113 l_api_name,'Call after Chk_new_duns_number... Parameters: '
11114 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
11115 ||' ,Invalid_Duns_number: '
11116 ||p_vendor_site_rec.duns_number);
11117 END IF;
11118 -- Bug 8438716 End
11119 END IF;
11120 END IF;
11121 END IF;
11122 -- starting the Changes for CLM reference data management bug#9499174
11123 --
11124 -- Logic to check if user is ISP UI is available or not.
11125 -- If ISP UI is not available then reject record if
11126 -- data present in any of new CCR Columns
11127
11128 -----------------------------------------------------------------------------------
11129 l_debug_info := 'Call to validate User Interface availability for Referenec Data';
11130 -----------------------------------------------------------------------------------
11131 If ((PO_ISPCODELEVEL_PVT.get_curr_isp_supp_code_level
11132 < PO_ISPCODELEVEL_PVT.G_ISP_SUP_CODE_LEVEL_CLM_BASE)
11133 AND
11134 (p_vendor_site_rec.cage_code is not null
11135 OR p_vendor_site_rec.cage_code is not null
11136 OR p_vendor_site_rec.legal_business_name is not null
11137 OR p_vendor_site_rec.doing_bus_as_name is not null
11138 OR p_vendor_site_rec.small_business_code is not null
11139 OR p_vendor_site_rec.ccr_comments is not null
11140 OR p_vendor_site_rec.debarment_start_date is not null
11141 OR p_vendor_site_rec.debarment_end_date is not null
11142 )) THEN
11143 x_return_status := FND_API.G_RET_STS_ERROR;
11144 IF g_source = 'IMPORT' THEN
11145 IF (Insert_Rejections(
11146 'AP_SUPPLIER_SITES_INT',
11147 p_vendor_site_rec.vendor_site_interface_id,
11148 'AP_ISP_NOT_AVAILABLE',
11149 g_user_id,
11150 g_login_id,
11151 'Validate_Vendor_Site') <> TRUE) THEN
11152 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11153 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME
11154 ||l_api_name,'Parameters: '
11155 ||' Vendor_Site_Interface_Id:'
11156 ||p_vendor_site_rec.vendor_site_interface_id
11157 ||' ISP page not available and CCR data available');
11158 END IF;
11159 END IF;
11160 ELSE
11161 FND_MESSAGE.SET_NAME('SQLAP','AP_ISP_NOT_AVAILABLE');
11162 FND_MSG_PUB.ADD;
11163 END IF;
11164 END IF ;
11165
11166 ------------------------------------------------------
11167 l_debug_info := 'Call to validate small business code';
11168 ------------------------------------------------------
11169
11170 IF ((p_vendor_site_rec.small_business_code IS NOT NULL)
11171 AND
11172 (
11173 p_vendor_site_rec.small_business_code<>ap_null_char
11174 )
11175 ) THEN
11176 validate_lookups('SMALL_BUSINESS_CODE'
11177 ,p_vendor_site_rec.small_business_code
11178 ,'SMALL_NOT_SMALL_BUSINESS_CODE'
11179 ,'AP_LOOKUP_CODES'
11180 ,x_valid);
11181 IF (NOT x_valid) THEN
11182 x_return_status := FND_API.G_RET_STS_ERROR;
11183 IF g_source = 'IMPORT' THEN
11184 IF (Insert_Rejections( 'AP_SUPPLIER_SITES_INT',
11185 p_vendor_site_rec.vendor_site_interface_id,
11186 'AP_INVALID_SMALL_NSMALL_CODE',
11187 g_user_id,
11188 g_login_id,
11189 'Validate_Vendor_Site') <> TRUE) THEN
11190 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11191 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME
11192 ||l_api_name,'Parameters: '
11193 ||' Vendor site interface id '
11194 ||p_vendor_site_rec.vendor_site_interface_id
11195 ||', Small business code '
11196 ||p_vendor_site_rec.small_business_code);
11197 END IF;
11198 END IF;
11199 ELSE
11200 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_SMALL_NSMALL_CODE');
11201 FND_MSG_PUB.ADD;
11202 END IF;
11203 END IF;
11204
11205 END IF;
11206 -- Ending the Changes for CLM reference data management bug#9499174
11207
11208
11209 IF p_mode = 'U' THEN
11210
11211 --update validations
11212
11213 null;
11214
11215 ------------------------------------------------------------------------
11216 l_debug_info := 'check for prohibiting the update of CCR vendor site';
11217 ------------------------------------------------------------------------
11218 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
11219 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
11220 l_api_name,l_debug_info);
11221 END IF;
11222 --
11223 -- Check if there is an attempt to update any restricted
11224 -- fields for a CCR vendor site. Added for the R12 FSIO
11225 -- GAP.(bug6053476)
11226
11227 Chk_update_site_ccr_values(p_vendor_site_rec,
11228 p_calling_prog,
11229 x_valid);
11230
11231 IF NOT x_valid THEN
11232 x_return_status := FND_API.G_RET_STS_ERROR;
11233 IF g_source = 'IMPORT' THEN
11234 IF (Insert_Rejections(
11235 'AP_SUPPLIER_SITES_INT',
11236 p_vendor_site_rec.vendor_site_interface_id,
11237 'AP_CCR_NO_UPDATE',
11238 g_user_id,
11239 g_login_id,
11240 'Validate_Vendor_Site') <> TRUE) THEN
11241
11242 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11243 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
11244 l_api_name,'Parameters: '
11245 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
11246 ||' ,attempting to update non-updatablee elements on CCR site : '
11247 ||p_vendor_site_rec.vendor_site_id);
11248 END IF;
11249 END IF;
11250 ELSE
11251 FND_MESSAGE.SET_NAME('SQLAP','AP_CCR_NO_UPDATE');
11252 FND_MSG_PUB.ADD;
11253 -- Bug 8438716 Start
11254 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11255 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
11256 l_api_name,'Call after Chk_update_site_ccr_values... Parameters: '
11257 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
11258 ||' ,attempting to update non-updatablee elements on CCR site : '
11259 ||p_vendor_site_rec.vendor_site_id);
11260 END IF;
11261 -- Bug 8438716 End
11262 END IF;
11263 END IF;
11264
11265 ELSIF p_mode = 'I' THEN
11266
11267 --insert validations
11268
11269 ------------------------------------------------------------------------
11270 l_debug_info := 'Call to Validate payee';
11271 ------------------------------------------------------------------------
11272 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
11273 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
11274 l_api_name,l_debug_info);
11275 END IF;
11276 --
11277 -- Calling IBY Payee Validation API
11278 --
11279 IF p_vendor_site_rec.ext_payee_rec.payer_org_type IS NOT NULL THEN
11280
11281 /*Bug 7572325- added the call to count_and_get to get the count
11282 before call to IBY API in local variable*/
11283
11284 FND_MSG_PUB.Count_And_Get(p_count => l_msg_count,
11285 p_data => l_msg_data);
11286
11287 IBY_DISBURSEMENT_SETUP_PUB.Validate_External_Payee
11288 ( p_api_version => 1.0,
11289 p_init_msg_list => FND_API.G_FALSE,
11290 p_ext_payee_rec => p_vendor_site_rec.ext_payee_rec,
11291 x_return_status => l_payee_return_status,
11292 x_msg_count => l_payee_msg_count,
11293 x_msg_data => l_payee_msg_data);
11294
11295 IF l_payee_return_status = FND_API.G_RET_STS_SUCCESS THEN
11296 x_payee_valid := 'V';
11297 ELSE
11298 x_payee_valid := 'F';
11299 x_return_status := l_payee_return_status;
11300 IF g_source = 'IMPORT' THEN
11301 IF (Insert_Rejections(
11302 'AP_SUPPLIER_SITES_INT',
11303 p_vendor_site_rec.vendor_site_interface_id,
11304 --'AP_INVALID_PAYEE',
11305 'AP_INVALID_PAYEE_INFO',/*bug 7572325*/
11306 g_user_id,
11307 g_login_id,
11308 'Validate_Vendor_Site') <> TRUE) THEN
11309 --
11310 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11311 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
11312 l_api_name,'Parameters: '
11313 ||' Vendor_Site_Interface_Id:' ||
11314 p_vendor_site_rec.vendor_interface_id);
11315 END IF;
11316 END IF;
11317
11318 --bug 7572325 addded below file logging for improved exception
11319 --message handling
11320 IF (l_payee_msg_data IS NOT NULL) THEN
11321 -- Print the error returned from the IBY service even if the debug
11322 -- mode is off
11323 AP_IMPORT_UTILITIES_PKG.Print('Y', '2)Error in '||l_debug_info||
11324 '---------------------->'||
11325 l_payee_msg_data);
11326
11327 ELSE
11328 -- If the l_payee_msg_data is null then the IBY service returned
11329 -- more than one error. The calling module will need to get
11330 -- them from the message stack
11331 FOR i IN l_msg_count..l_payee_msg_count
11332 LOOP
11333 l_error_code := FND_MSG_PUB.Get(p_msg_index => i,
11334 p_encoded => 'F');
11335
11336 If i = l_msg_count then
11337 l_error_code := '2)Error in '||l_debug_info||
11338 '---------------------->'||
11339 l_error_code;
11340 end if;
11341
11342 AP_IMPORT_UTILITIES_PKG.Print('Y', l_error_code);
11343
11344 END LOOP;
11345
11346 END IF;--bug 7572325
11347 ELSE
11348 -- Bug 5491139 hkaniven start --
11349 --FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PAYEE'); --bug 7572325
11350 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PAYEE_INFO'); --bug 7572325
11351 FND_MSG_PUB.ADD;
11352 -- Bug 5491139 hkaniven end --
11353 -- Bug 8438716 Start
11354 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11355 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
11356 l_api_name,'Call after IBY_DISBURSEMENT_SETUP_PUB.Validate_External_Payee... Parameters: '
11357 ||' Vendor_Site_Interface_Id:' ||
11358 p_vendor_site_rec.vendor_interface_id);
11359 END IF;
11360 -- Bug 8438716 End
11361 END IF;
11362 END IF;
11363 ELSE
11364 x_payee_valid := 'N';
11365 END IF; --payee valid
11366
11367 --call location validation to validate entered id
11368 --and/or compare address componenets
11369 --and that the location is already in use by existing supplier
11370
11371 -- Bug 6918411/6808171 CTETALA Begin
11372 -- Added code to validate country code
11373 ----------------------------------------------------------------------------------------------------
11374 l_debug_info := 'Call to Validate country code';
11375 ----------------------------------------------------------------------------------------------------
11376 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
11377 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
11378 l_api_name,l_debug_info);
11379 END IF;
11380
11381 IF(p_vendor_site_rec.country IS NOT NULL) THEN
11382 BEGIN
11383 SELECT null INTO l_dummy
11384 FROM FND_TERRITORIES
11385 WHERE TERRITORY_CODE = p_vendor_site_rec.country
11386 AND OBSOLETE_FLAG = 'N';
11387 x_valid := TRUE;
11388
11389 EXCEPTION
11390 WHEN NO_DATA_FOUND THEN
11391 x_valid := FALSE;
11392 END;
11393
11394 IF NOT x_valid THEN
11395 x_return_status := FND_API.G_RET_STS_ERROR;
11396 IF g_source = 'IMPORT' THEN
11397 IF (Insert_Rejections
11398 (
11399 'AP_SUPPLIER_SITES_INT',
11400 p_vendor_site_rec.vendor_site_interface_id,
11401 'AP_API_INVALID_COUNTRY',
11402 g_user_id,
11403 g_login_id,
11404 'Validate_Vendor_Site') <> TRUE) THEN
11405 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11406 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
11407 l_api_name,'Parameters: '
11408 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
11409 ||' ,Country code validation '
11410 ||p_vendor_site_rec.country);
11411 END IF;
11412 END IF;
11413 ELSE
11414 FND_MESSAGE.SET_NAME('SQLAP','AP_API_INVALID_COUNTRY');
11415 FND_MSG_PUB.ADD;
11416 -- Bug 8438716 Start
11417 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11418 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
11419 l_api_name,'Error After validating p_vendor_site_rec.country... Parameters: '
11420 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
11421 ||' ,Country code validation '
11422 ||p_vendor_site_rec.country);
11423 END IF;
11424 -- Bug 8438716 End
11425 END IF; --import
11426 END IF; --country invalid
11427 END IF;
11428
11429 -- Bug 6918411/6808171 CTETALA End
11430
11431 -- Bug 7429668 If Party_Site_Name is provided, derive the party_site_id.
11432 IF (p_vendor_site_rec.party_site_name IS NOT NULL AND
11433 p_vendor_site_rec.party_site_id IS NULL AND
11434 (p_vendor_site_rec.org_id IS NOT NULL OR
11435 p_vendor_site_rec.ORG_NAME IS NOT NULL) AND
11436 p_vendor_site_rec.vendor_id IS NOT NULL)THEN
11437
11438 Check_org_id_party_site_name(p_vendor_site_rec.org_id,
11439 p_vendor_site_rec.ORG_NAME,
11440 p_vendor_site_rec.party_site_id,
11441 p_vendor_site_rec.party_site_name,
11442 p_vendor_site_rec.vendor_id,
11443 'AP_SUPPLIER_SITES_INT',
11444 p_vendor_site_rec.vendor_site_interface_id,
11445 x_valid);
11446
11447 x_valid := TRUE; /* Bug9916291 */
11448
11449 /* IF NOT x_valid THEN
11450 x_return_status := FND_API.G_RET_STS_ERROR;
11451 IF g_source = 'IMPORT' THEN
11452 IF (Insert_Rejections(
11453 'AP_SUPPLIER_SITES_INT',
11454 p_vendor_site_rec.vendor_site_interface_id,
11455 'AP_INVALID_PARTY_SITE',
11456 g_user_id,
11457 g_login_id,
11458 'Validate_Vendor_Site') <> TRUE) THEN
11459
11460 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11461 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'Parameters: '
11462 ||' Org_Id: '||p_vendor_site_rec.org_id
11463 ||', Org_Name: '||p_vendor_site_rec.ORG_NAME
11464 ||', Party_site_name: '||p_vendor_site_rec.party_site_name
11465 ||', Party_site_id: '|| p_vendor_site_rec.party_site_id
11466 ||', Vendor_id: '|| p_vendor_site_rec.vendor_id
11467 ||', Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id);
11468 END IF;
11469 END IF;
11470 ELSE
11471 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PARTY_SITE');
11472 FND_MSG_PUB.ADD;
11473 -- Bug 8438716 Start
11474 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11475 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'Call after Check_org_id_party_site_name... Parameters: '
11476 ||' Org_Id: '||p_vendor_site_rec.org_id
11477 ||', Org_Name: '||p_vendor_site_rec.ORG_NAME
11478 ||', Party_site_name: '||p_vendor_site_rec.party_site_name
11479 ||', Party_site_id: '|| p_vendor_site_rec.party_site_id
11480 ||', Vendor_id: '|| p_vendor_site_rec.vendor_id
11481 ||', Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id);
11482 END IF;
11483 -- Bug 8438716 End
11484 END IF;
11485 END IF; Commented for Bug 9916291 */
11486 END IF;
11487 ------------------------------------------------------------------------
11488 l_debug_info := 'Call to Validate location';
11489 ------------------------------------------------------------------------
11490 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
11491 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
11492 l_api_name,l_debug_info);
11493 END IF;
11494 --
11495 -- Check for validity of location_id
11496 --
11497 IF p_vendor_site_rec.location_id IS NOT NULL THEN
11498 Check_Valid_Location_ID(p_vendor_site_rec.location_id,
11499 p_vendor_site_rec.party_site_id,
11500 x_valid);
11501
11502 IF NOT x_valid THEN
11503 --location_id does not exist
11504 x_location_valid := 'F';
11505 -- Bug 8438716 Start
11506 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11507 FND_LOG.STRING (G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'Parameters: '
11508 ||', x_location_valid: '||x_location_valid
11509 ||', P_Int_Key: '||p_vendor_site_rec.vendor_site_interface_id);
11510 END IF;
11511 -- Bug 8438716 End
11512 ELSE
11513 --location_id was valid
11514 x_location_valid := 'V';
11515 END IF;
11516 ELSE
11517
11518 --Bug 7835321 start
11519 IF p_vendor_site_rec.language IS NOT NULL THEN
11520
11521 BEGIN
11522 OPEN c_lang_is ;
11523 FETCH c_lang_is into l_language,l_installed_flag;
11524
11525
11526 IF c_lang_is%NOTFOUND THEN
11527 valid_language_flag := False;
11528 -- x_valid := FALSE;
11529 IF g_source = 'IMPORT' THEN
11530 IF (Insert_Rejections(
11531 'AP_SUPPLIER_SITES_INT',
11532 p_vendor_site_rec.vendor_site_interface_id,
11533 'INVALID_NLS_LANGUAGE',
11534 g_user_id,
11535 g_login_id,
11536 'Create_Vendor_Site') <> TRUE)
11537 THEN
11538 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11539 FND_LOG.STRING (G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'Parameters: '
11540 ||', P_Int_Table: '||'AP_SUPPLIER_SITES_INT'
11541 ||', P_Int_Key: '||p_vendor_site_rec.vendor_site_interface_id
11542 ||', P_Language: '||'LANGUAGE');
11543 END IF;
11544 END IF;
11545
11546 ELSE
11547 -- Bug 5491139 hkaniven start --
11548 FND_MESSAGE.SET_NAME('SQLAP','INVALID_NLS_LANGUAGE');
11549 FND_MSG_PUB.ADD;
11550 -- Bug 5491139 hkaniven end --
11551 END IF;
11552 -- We have to ensure that no new locations are created in this case.
11553 x_location_valid := 'F';
11554 x_return_status := FND_API.G_RET_STS_ERROR;
11555 ELSE
11556 IF(l_installed_flag='D')
11557 THEN
11558 valid_language_flag := False;
11559 -- x_valid := FALSE;
11560 IF g_source = 'IMPORT' THEN
11561 IF (Insert_Rejections(
11562 'AP_SUPPLIER_SITES_INT',
11563 p_vendor_site_rec.vendor_site_interface_id,
11564 'DISABLED_NLS_LANGUAGE',
11565 g_user_id,
11566 g_login_id,
11567 'Create_Vendor_Site') <> TRUE)
11568 THEN
11569 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11570 FND_LOG.STRING (G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'Parameters: '
11571 ||', P_Int_Table: '||'AP_SUPPLIER_SITES_INT'
11572 ||', P_Int_Key: '||p_vendor_site_rec.vendor_site_interface_id
11573 ||',P_Language: '||'LANGUAGE');
11574 END IF;
11575 END IF;
11576
11577 ELSE
11578 -- Bug 5491139 hkaniven start --
11579 FND_MESSAGE.SET_NAME('SQLAP','DISABLED_NLS_LANGUAGE');
11580 FND_MSG_PUB.ADD;
11581 -- Bug 5491139 hkaniven end --
11582 END IF;
11583 -- We have to ensure that no new locations are created in this case.
11584 x_location_valid := 'F';
11585 x_return_status := FND_API.G_RET_STS_ERROR;
11586
11587 END IF;
11588
11589 CLOSE c_lang_is;
11590
11591 END IF;
11592 END;
11593 END IF;
11594
11595 IF (Valid_language_flag) ---Bug 7835321 End
11596 THEN
11597
11598 Check_Valid_Location(
11599 p_party_site_id => p_vendor_site_rec.party_site_id,
11600 p_address_line1 => p_vendor_site_rec.address_line1,
11601 p_address_line2 => p_vendor_site_rec.address_line2,
11602 p_address_line3 => p_vendor_site_rec.address_line3,
11603 p_address_line4 => p_vendor_site_rec.address_line4,
11604 p_city => p_vendor_site_rec.city ,
11605 p_state => p_vendor_site_rec.state ,
11606 p_zip => p_vendor_site_rec.zip ,
11607 p_province => p_vendor_site_rec.province ,
11608 p_country => p_vendor_site_rec.country,
11609 p_county => p_vendor_site_rec.county,
11610 p_language => p_vendor_site_rec.language,
11611 p_address_style => p_vendor_site_rec.address_style ,
11612 p_vendor_id => p_vendor_site_rec.vendor_id,
11613 x_location_id => l_location_id,
11614 x_valid => x_valid,
11615 x_loc_count => x_loc_count); -- Bug 7429668
11616
11617 IF NOT x_valid THEN
11618 --no existing matching location
11619 x_location_valid := 'N';
11620
11621 -- Bug 7429668 Start
11622 IF x_loc_count > 1 THEN
11623 -- We have to ensure that no new locations are created in this case.
11624 x_location_valid := 'F';
11625 x_return_status := FND_API.G_RET_STS_ERROR;
11626
11627 IF g_source = 'IMPORT' THEN
11628
11629 IF (Insert_Rejections(
11630 'AP_SUPPLIER_SITES_INT',
11631 p_vendor_site_rec.vendor_site_interface_id,
11632 'AP_MULTIPLE_ADDRESS',
11633 g_user_id,
11634 g_login_id,
11635 'Validate_Vendor_Site') <> TRUE) THEN
11636
11637 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11638 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
11639 l_api_name,'Parameters: '
11640 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
11641 ||' ,Vendor_Id: '||p_vendor_site_rec.vendor_id
11642 ||' ,Party_site_id: '||p_vendor_site_rec.party_site_id);
11643 END IF;
11644
11645 END IF;
11646 ELSE
11647 -- Bug 5584046 --
11648 FND_MESSAGE.SET_NAME('SQLAP','AP_MULTIPLE_ADDRESS');
11649 FND_MSG_PUB.ADD;
11650 -- Bug 8438716 Start
11651 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11652 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
11653 l_api_name,'Call after Check_Valid_Location Error-AP_MULTIPLE_ADDRESS... Parameters: '
11654 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
11655 ||' ,Vendor_Id: '||p_vendor_site_rec.vendor_id
11656 ||' ,Party_site_id: '||p_vendor_site_rec.party_site_id);
11657 END IF;
11658 -- Bug 8438716 End
11659 END IF; --import
11660 ELSIF x_loc_count = 0 AND
11661 p_vendor_site_rec.party_site_id IS NOT NULL THEN
11662 -- We have to ensure that no new locations are created in this case.
11663 x_location_valid := 'F';
11664 x_return_status := FND_API.G_RET_STS_ERROR;
11665
11666 IF g_source = 'IMPORT' THEN
11667
11668 IF (Insert_Rejections(
11669 'AP_SUPPLIER_SITES_INT',
11670 p_vendor_site_rec.vendor_site_interface_id,
11671 'AP_INCONSISTENT_ADDRESS',
11672 g_user_id,
11673 g_login_id,
11674 'Validate_Vendor_Site') <> TRUE) THEN
11675
11676 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11677 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
11678 l_api_name,'Parameters: '
11679 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
11680 ||' ,Vendor_Id: '||p_vendor_site_rec.vendor_id
11681 ||' ,Party_site_id: '||p_vendor_site_rec.party_site_id);
11682 END IF;
11683
11684 END IF;
11685 ELSE
11686 -- Bug 5584046 --
11687 FND_MESSAGE.SET_NAME('SQLAP','AP_INCONSISTENT_ADDRESS');
11688 FND_MSG_PUB.ADD;
11689 -- Bug 8438716 Start
11690 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11691 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
11692 l_api_name,'Call after Check_Valid_Location... Error-AP_INCONSISTENT_ADDRESS... Parameters: '
11693 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
11694 ||' ,Vendor_Id: '||p_vendor_site_rec.vendor_id
11695 ||' ,Party_site_id: '||p_vendor_site_rec.party_site_id);
11696 END IF;
11697 -- Bug 8438716 End
11698 END IF; --import
11699 -- Bug 7429668 End
11700 ELSE
11701 /*bug 5584046 Before calling the HZ api we need to ensure that
11702 Country and address_line1 coulumns are not null*/
11703 IF(p_vendor_site_rec.country IS NULL)
11704 AND (NVL(G_Vendor_Type_Lookup_Code,'DUMMY') <> 'EMPLOYEE') THEN
11705
11706 x_return_status := FND_API.G_RET_STS_ERROR;
11707
11708 IF g_source = 'IMPORT' THEN
11709
11710 IF (Insert_Rejections(
11711 'AP_SUPPLIER_SITES_INT',
11712 p_vendor_site_rec.vendor_site_interface_id,
11713 'AP_NULL_COUNTRY_NAME',
11714 g_user_id,
11715 g_login_id,
11716 'Validate_Vendor_Site') <> TRUE) THEN
11717
11718 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11719 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
11720 l_api_name,'Parameters: '
11721 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
11722 ||' ,Vendor_Id: '||p_vendor_site_rec.vendor_id
11723 ||' ,Org_id: '||p_vendor_site_rec.org_id
11724 ||' ,Org_Name: '||p_vendor_site_rec.org_name);
11725 END IF;
11726
11727 END IF;
11728 ELSE
11729 -- Bug 5584046 --
11730 FND_MESSAGE.SET_NAME('SQLAP','AP_NULL_COUNTRY_NAME');
11731 FND_MSG_PUB.ADD;
11732 -- Bug 8438716 Start
11733 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11734 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
11735 l_api_name,'Validation error-p_vendor_site_rec.country is null-AP_NULL_COUNTRY_NAME... Parameters: '
11736 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
11737 ||' ,Vendor_Id: '||p_vendor_site_rec.vendor_id
11738 ||' ,Org_id: '||p_vendor_site_rec.org_id
11739 ||' ,Org_Name: '||p_vendor_site_rec.org_name);
11740 END IF;
11741 -- Bug 8438716 End
11742 END IF; --import
11743 END IF;
11744
11745 IF(p_vendor_site_rec.address_line1 IS NULL)
11746 AND (NVL(G_Vendor_Type_Lookup_Code,'DUMMY') <> 'EMPLOYEE') THEN
11747
11748 x_return_status := FND_API.G_RET_STS_ERROR;
11749
11750 IF g_source = 'IMPORT' THEN
11751
11752 IF (Insert_Rejections(
11753 'AP_SUPPLIER_SITES_INT',
11754 p_vendor_site_rec.vendor_site_interface_id,
11755 'AP_NULL_ADDRESS_LINE1',
11756 g_user_id,
11757 g_login_id,
11758 'Validate_Vendor_Site') <> TRUE) THEN
11759
11760 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11761 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
11762 l_api_name,'Parameters: '
11763 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
11764 ||' ,Vendor_Id: '||p_vendor_site_rec.vendor_id
11765 ||' ,Org_id: '||p_vendor_site_rec.org_id
11766 ||' ,Org_Name: '||p_vendor_site_rec.org_name);
11767 END IF;
11768
11769 END IF;
11770 ELSE
11771 -- Bug 5584046
11772 FND_MESSAGE.SET_NAME('SQLAP','AP_NULL_ADDRESS_LINE1');
11773 FND_MSG_PUB.ADD;
11774 -- Bug 8438716 Start
11775 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11776 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
11777 l_api_name,'Validation error p_vendor_site_rec.address_line1-AP_NULL_ADDRESS_LINE1... Parameters: '
11778 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
11779 ||' ,Vendor_Id: '||p_vendor_site_rec.vendor_id
11780 ||' ,Org_id: '||p_vendor_site_rec.org_id
11781 ||' ,Org_Name: '||p_vendor_site_rec.org_name);
11782 END IF;
11783 -- Bug 8438716 End
11784 END IF; --import
11785 END IF;
11786 --bug 5584046
11787 END IF;
11788
11789 ELSE
11790 --found valid matching location
11791 x_location_valid := 'V';
11792 p_vendor_site_rec.location_id := l_location_id;
11793 END IF;
11794
11795 END IF;
11796 END IF; --Bug7835321
11797 ------------------------------------------------------------------------
11798 l_debug_info := 'Call to Validate party_site_id';
11799 ------------------------------------------------------------------------
11800 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
11801 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
11802 l_api_name,l_debug_info);
11803 END IF;
11804 --
11805 -- Check for validity of party_site_id
11806 --
11807
11808 IF p_vendor_site_rec.party_site_id IS NOT NULL THEN
11809 Check_Valid_Party_Site_ID(p_vendor_site_rec.party_site_id,
11810 p_vendor_site_rec.location_id,
11811 p_vendor_site_rec.vendor_id, /* Bug 12590128 */
11812 x_valid);
11813
11814 IF NOT x_valid THEN
11815 --party_site_id does not exist
11816 x_party_site_valid := 'F';
11817 -- Bug 8438716 Start
11818 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11819 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
11820 l_api_name,'Call after Check_Valid_Party_Site_ID - party_site_id does not exist');
11821 END IF;
11822 -- Bug 8438716 End
11823 ELSE
11824 --party_site_id was valid
11825 x_party_site_valid := 'V';
11826 END IF;
11827 ELSE
11828 --party_site_id is null
11829 x_party_site_valid := 'N';
11830
11831 -- Bug 8438716 Start
11832 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11833 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
11834 l_api_name,'Call after Check_Valid_Party_Site_ID - party_site_id is null');
11835 END IF;
11836 -- Bug 8438716 End
11837
11838 /* Bug 14493264 start */
11839 Chk_Dup_party_site_name(p_vendor_site_rec.vendor_id,
11840 p_vendor_site_rec.vendor_site_code,
11841 x_valid);
11842
11843 IF NOT x_valid THEN
11844 x_return_status := FND_API.G_RET_STS_ERROR;
11845 IF g_source = 'IMPORT' THEN
11846
11847 IF (Insert_Rejections(
11848 'AP_SUPPLIER_SITES_INT',
11849 p_vendor_site_rec.vendor_site_interface_id,
11850 'AP_DUP_PARTY_SITE_NAME',
11851 g_user_id,
11852 g_login_id,
11853 'Validate_Vendor_Site') <> TRUE) THEN
11854
11855 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11856 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
11857 l_api_name,'Parameters: '
11858 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
11859 ||' ,Vendor_Id: '||p_vendor_site_rec.vendor_id
11860 ||' ,Org_id: '||p_vendor_site_rec.org_id
11861 ||' ,Org_Name: '||p_vendor_site_rec.org_name);
11862 END IF;
11863
11864 END IF;
11865 ELSE
11866 -- Bug 5584046 --
11867 FND_MESSAGE.SET_NAME('SQLAP','AP_DUP_PARTY_SITE_NAME');
11868 FND_MSG_PUB.ADD;
11869 -- Bug 8438716 Start
11870 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11871 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
11872 l_api_name,'Validation error-p_vendor_site_rec.vendor_site_code is duplicate-AP_DUP_PARTY_SITE_NAME... Parameters: '
11873 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
11874 ||' ,Vendor_Id: '||p_vendor_site_rec.vendor_id
11875 ||' ,Org_id: '||p_vendor_site_rec.org_id
11876 ||' ,Org_Name: '||p_vendor_site_rec.org_name);
11877 END IF;
11878
11879 END IF; --import
11880 END IF;
11881 /* Bug 14493264 end */
11882 END IF;
11883
11884 ------------------------------------------------------------------------
11885 l_debug_info := 'Call to Validate primary_pay_site_flag unique per Vendor';
11886 ------------------------------------------------------------------------
11887 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
11888 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
11889 l_api_name,l_debug_info);
11890 END IF;
11891 --
11892 -- Validate primary_pay_site_flag - unique per vendor
11893 --
11894
11895 IF (p_vendor_site_rec.primary_pay_site_flag = 'Y') THEN
11896
11897 Validate_unique_per_vendor('PRIMARY_PAY_SITE_FLAG',
11898 p_vendor_site_rec.vendor_id,
11899 p_vendor_site_id,
11900 p_vendor_site_rec.org_id,
11901 p_vendor_site_rec.org_name,
11902 x_valid
11903 );
11904 IF NOT x_valid THEN
11905 x_return_status := FND_API.G_RET_STS_ERROR;
11906 IF g_source = 'IMPORT' THEN
11907 IF (Insert_Rejections(
11908 'AP_SUPPLIER_SITES_INT',
11909 p_vendor_site_rec.vendor_site_interface_id,
11910 'AP_INVALID_PRIM_PAY_SITE',
11911 g_user_id,
11912 g_login_id,
11913 'Validate_Vendor_Site') <> TRUE) THEN
11914 --
11915 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11916 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
11917 l_api_name,'Parameters: '
11918 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
11919 ||' ,Vendor_Id: '||p_vendor_site_rec.vendor_id
11920 ||' ,Org_id: '||p_vendor_site_rec.org_id
11921 ||' ,Org_Name: '||p_vendor_site_rec.org_name);
11922 END IF;
11923 END IF;
11924 ELSE
11925 -- Bug 5491139 hkaniven start --
11926 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PRIM_PAY_SITE');
11927 FND_MSG_PUB.ADD;
11928 -- Bug 5491139 hkaniven end --
11929 -- Bug 8438716 Start
11930 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11931 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
11932 l_api_name,'Call after Validate_unique_per_vendor... Parameters: '
11933 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
11934 ||' ,Vendor_Id: '||p_vendor_site_rec.vendor_id
11935 ||' ,Org_id: '||p_vendor_site_rec.org_id
11936 ||' ,Org_Name: '||p_vendor_site_rec.org_name);
11937 END IF;
11938 -- Bug 8438716 End
11939 END IF;
11940 END IF;
11941 END IF;
11942
11943 ------------------------------------------------------------------------
11944 l_debug_info := 'Call to Validate Country of Origin Code';
11945 ------------------------------------------------------------------------
11946 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
11947 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
11948 l_api_name,l_debug_info);
11949 END IF;
11950
11951 IF (p_vendor_site_rec.country_of_origin_code is not null) THEN
11952 country_of_origin_valid(p_vendor_site_rec.country_of_origin_code,
11953 x_valid);
11954 IF NOT x_valid THEN
11955 x_return_status := FND_API.G_RET_STS_ERROR;
11956 IF g_source = 'IMPORT' THEN
11957 IF (Insert_Rejections(
11958 'AP_SUPPLIER_SITES_INT',
11959 p_vendor_site_rec.vendor_site_interface_id,
11960 'AP_INVALID_COUNTRY_ORIGIN',
11961 g_user_id,
11962 g_login_id,
11963 'Validate_Vendor_Site') <> TRUE) THEN
11964 --
11965 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11966 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
11967 l_api_name,'Parameters: '
11968 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
11969 ||' ,Country_Of_Origin_Code: '||p_vendor_site_rec.country_of_origin_code);
11970 END IF;
11971 END IF;
11972 ELSE
11973 -- Bug 5491139 hkaniven start --
11974 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_COUNTRY_ORIGIN');
11975 FND_MSG_PUB.ADD;
11976 -- Bug 5491139 hkaniven end --
11977 -- Bug 8438716 Start
11978 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
11979 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
11980 l_api_name,'Call after country_of_origin_valid... Parameters: '
11981 ||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
11982 ||' ,Country_Of_Origin_Code: '||p_vendor_site_rec.country_of_origin_code);
11983 END IF;
11984 -- Bug 8438716 End
11985 END IF;
11986 END IF;
11987 END IF;
11988
11989 IF p_calling_prog <> 'ISETUP' THEN
11990
11991 --addl insert validations
11992
11993 ------------------------------------------------------------------------
11994 l_debug_info := 'Call to Validate pcard_site_flag';
11995 ------------------------------------------------------------------------
11996 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
11997 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
11998 l_api_name,l_debug_info);
11999 END IF;
12000 --
12001 -- Validate pcard_site_flag
12002 --
12003 IF p_vendor_site_rec.pcard_site_flag is NOT NULL THEN
12004
12005 Validate_Lookups( 'PCARD_SITE_FLAG', p_vendor_site_rec.pcard_site_flag ,'YES/NO',
12006 'PO_LOOKUP_CODES',x_valid);
12007 IF NOT x_valid THEN
12008 x_return_status := FND_API.G_RET_STS_ERROR;
12009 IF g_source = 'IMPORT' THEN
12010 IF (Insert_Rejections(
12011 'AP_SUPPLIER_SITES_INT',
12012 p_vendor_site_rec.vendor_site_interface_id,
12013 'AP_INVALID_PCARD_FLAG',
12014 g_user_id,
12015 g_login_id,
12016 'Validate_Vendor_Site') <> TRUE) THEN
12017 --
12018 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12019 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
12020 l_api_name,'Parameters: '
12021 ||' Vendor_Site_Interface_Id: '
12022 ||p_vendor_site_rec.vendor_site_interface_id
12023 ||' ,Pcard_Site_Flag: '
12024 ||p_vendor_site_rec.pcard_site_flag);
12025 END IF;
12026 END IF;
12027 ELSE
12028 -- Bug 5491139 hkaniven start --
12029 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PCARD_SITE');
12030 FND_MSG_PUB.ADD;
12031 -- Bug 5491139 hkaniven end --
12032 -- Bug 8438716 Start
12033 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12034 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
12035 l_api_name,'Call after Validate_Lookups(PCARD_SITE_FLAG...)... Parameters: '
12036 ||' Vendor_Site_Interface_Id: '
12037 ||p_vendor_site_rec.vendor_site_interface_id
12038 ||' ,Pcard_Site_Flag: '
12039 ||p_vendor_site_rec.pcard_site_flag);
12040 END IF;
12041 -- Bug 8438716 End
12042 END IF;
12043 END IF;
12044 END IF;
12045
12046 ------------------------------------------------------------------------
12047 l_debug_info := 'Call to Validate Purchasing Site Flag';
12048 ------------------------------------------------------------------------
12049 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
12050 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
12051 l_api_name,l_debug_info);
12052 END IF;
12053 --
12054 -- Validate purchasing_site_flag
12055 --
12056 IF p_vendor_site_rec.purchasing_site_flag is NOT NULL THEN
12057
12058 Validate_Lookups( 'PURCHASING_SITE_FLAG', p_vendor_site_rec.purchasing_site_flag,'YES/NO',
12059 'PO_LOOKUP_CODES', x_valid);
12060 IF NOT x_valid THEN
12061 x_return_status := FND_API.G_RET_STS_ERROR;
12062 IF g_source = 'IMPORT' THEN
12063 IF (Insert_Rejections(
12064 'AP_SUPPLIER_SITES_INT',
12065 p_vendor_site_rec.vendor_site_interface_id,
12066 'AP_INVALID_PURCHASING_FLAG',
12067 g_user_id,
12068 g_login_id,
12069 'Validate_Vendor_Site') <> TRUE) THEN
12070 --
12071 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12072 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
12073 l_api_name,'Parameters: '
12074 ||' Vendor_Site_Interface_Id: '
12075 ||p_vendor_site_rec.vendor_site_interface_id
12076 ||' ,Purchasing_Site_Flag: '
12077 ||p_vendor_site_rec.purchasing_site_flag);
12078 END IF;
12079 END IF;
12080 ELSE
12081 -- Bug 5491139 hkaniven start --
12082 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PURCHASING_FLAG');
12083 FND_MSG_PUB.ADD;
12084 -- Bug 5491139 hkaniven end --
12085 -- Bug 8438716 Start
12086 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12087 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
12088 l_api_name,'Call after Validate_Lookups(PURCHASING_SITE_FLAG...)... Parameters: '
12089 ||' Vendor_Site_Interface_Id: '
12090 ||p_vendor_site_rec.vendor_site_interface_id
12091 ||' ,Purchasing_Site_Flag: '
12092 ||p_vendor_site_rec.purchasing_site_flag);
12093 END IF;
12094 -- Bug 8438716 End
12095 END IF;
12096 END IF;
12097 END IF;
12098
12099 ------------------------------------------------------------------------
12100 l_debug_info := 'Call to Validate rfq_only_site_flag';
12101 ------------------------------------------------------------------------
12102 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
12103 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
12104 l_api_name,l_debug_info);
12105 END IF;
12106 --
12107 -- Validate rfq_only_site_flag
12108 --
12109 IF p_vendor_site_rec.rfq_only_site_flag is NOT NULL THEN
12110
12111 Validate_Lookups( 'RFQ_ONLY_SITE_FLAG', p_vendor_site_rec.rfq_only_site_flag,'YES/NO',
12112 'PO_LOOKUP_CODES', x_valid);
12113 IF NOT x_valid THEN
12114 x_return_status := FND_API.G_RET_STS_ERROR;
12115 IF g_source = 'IMPORT' THEN
12116 IF (Insert_Rejections(
12117 'AP_SUPPLIER_SITES_INT',
12118 p_vendor_site_rec.vendor_site_interface_id,
12119 'AP_INVALID_RFQ_FLAG',
12120 g_user_id,
12121 g_login_id,
12122 'Validate_Vendor_Site') <> TRUE) THEN
12123 --
12124 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12125 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
12126 l_api_name,'Parameters: '
12127 ||' Vendor_Site_Interface_Id: '
12128 ||p_vendor_site_rec.vendor_site_interface_id
12129 ||' ,Rfq_Only_Site_Flag: '
12130 ||p_vendor_site_rec.rfq_only_site_flag);
12131 END IF;
12132 END IF;
12133 ELSE
12134 -- Bug 5491139 hkaniven start --
12135 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_RFQ_FLAG');
12136 FND_MSG_PUB.ADD;
12137 -- Bug 5491139 hkaniven end --
12138 -- Bug 8438716 Start
12139 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12140 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
12141 l_api_name,'Call after Validate_Lookups(RFQ_ONLY_SITE_FLAG...)... Parameters: '
12142 ||' Vendor_Site_Interface_Id: '
12143 ||p_vendor_site_rec.vendor_site_interface_id
12144 ||' ,Rfq_Only_Site_Flag: '
12145 ||p_vendor_site_rec.rfq_only_site_flag);
12146 END IF;
12147 -- Bug 8438716 End
12148 END IF;
12149 END IF;
12150 END IF;
12151
12152 ------------------------------------------------------------------------
12153 l_debug_info := 'Call to Validate pay_site_flag';
12154 ------------------------------------------------------------------------
12155 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
12156 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
12157 l_api_name,l_debug_info);
12158 END IF;
12159 --
12160 -- Validate pay_site_flag
12161 --
12162 IF p_vendor_site_rec.pay_site_flag is NOT NULL THEN
12163
12164 Validate_Lookups( 'PAY_SITE_FLAG', p_vendor_site_rec.pay_site_flag,'YES/NO',
12165 'PO_LOOKUP_CODES', x_valid);
12166 IF NOT x_valid THEN
12167 x_return_status := FND_API.G_RET_STS_ERROR;
12168 IF g_source = 'IMPORT' THEN
12169 IF (Insert_Rejections(
12170 'AP_SUPPLIER_SITES_INT',
12171 p_vendor_site_rec.vendor_site_interface_id,
12172 'AP_INVALID_PAY_SITE_FLAG',
12173 g_user_id,
12174 g_login_id,
12175 'Validate_Vendor_Site') <> TRUE) THEN
12176 --
12177 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12178 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
12179 l_api_name,'Parameters: '
12180 ||' Vendor_Site_Interface_Id: '
12181 ||p_vendor_site_rec.vendor_site_interface_id
12182 ||' ,Pay_Site_Flag: '
12183 ||p_vendor_site_rec.pay_site_flag);
12184 END IF;
12185 END IF;
12186 ELSE
12187 -- Bug 5491139 hkaniven start --
12188 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PAY_SITE_FLAG');
12189 FND_MSG_PUB.ADD;
12190 -- Bug 5491139 hkaniven end --
12191 -- Bug 8438716 Start
12192 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12193 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
12194 l_api_name,'Call after Validate_Lookups(PAY_SITE_FLAG...)... Parameters: '
12195 ||' Vendor_Site_Interface_Id: '
12196 ||p_vendor_site_rec.vendor_site_interface_id
12197 ||' ,Pay_Site_Flag: '
12198 ||p_vendor_site_rec.pay_site_flag);
12199 END IF;
12200 -- Bug 8438716 End
12201 END IF;
12202 END IF;
12203 END IF;
12204
12205 ------------------------------------------------------------------------
12206 l_debug_info := 'Call to Validate attention_ar_flag';
12207 ------------------------------------------------------------------------
12208 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
12209 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
12210 l_api_name,l_debug_info);
12211 END IF;
12212 --
12213 -- Validate attention_ar_flag
12214 --
12215 IF p_vendor_site_rec.attention_ar_flag is NOT NULL THEN
12216
12217 Validate_Lookups( 'ATTENTION_AR_FLAG', p_vendor_site_rec.attention_ar_flag,'YES/NO',
12218 'PO_LOOKUP_CODES', x_valid);
12219 IF NOT x_valid THEN
12220 x_return_status := FND_API.G_RET_STS_ERROR;
12221 IF g_source = 'IMPORT' THEN
12222 IF (Insert_Rejections(
12223 'AP_SUPPLIER_SITES_INT',
12224 p_vendor_site_rec.vendor_site_interface_id,
12225 'AP_INVALID_ATTN_AR_FLAG',
12226 g_user_id,
12227 g_login_id,
12228 'Validate_Vendor_Site') <> TRUE) THEN
12229 --
12230 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12231 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
12232 l_api_name,'Parameters: '
12233 ||' Vendor_Site_Interface_Id: '
12234 ||p_vendor_site_rec.vendor_site_interface_id
12235 ||' ,Attention_Ar_Flag: '
12236 ||p_vendor_site_rec.attention_ar_flag);
12237 END IF;
12238 END IF;
12239 ELSE
12240 -- Bug 5491139 hkaniven start --
12241 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_ATTN_AR_FLAG');
12242 FND_MSG_PUB.ADD;
12243 -- Bug 5491139 hkaniven end --
12244 -- Bug 8438716 Start
12245 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12246 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
12247 l_api_name,'Call after Validate_Lookups(ATTENTION_AR_FLAG...)... Parameters: '
12248 ||' Vendor_Site_Interface_Id: '
12249 ||p_vendor_site_rec.vendor_site_interface_id
12250 ||' ,Attention_Ar_Flag: '
12251 ||p_vendor_site_rec.attention_ar_flag);
12252 END IF;
12253 -- Bug 8438716 End
12254 END IF;
12255 END IF;
12256 END IF;
12257
12258 ------------------------------------------------------------------------
12259 l_debug_info := 'Call to Validate primary_pay_site_flag';
12260 ------------------------------------------------------------------------
12261 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
12262 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
12263 l_api_name,l_debug_info);
12264 END IF;
12265 --
12266 -- Validate primary_pay_site_flag
12267 --
12268 IF p_vendor_site_rec.primary_pay_site_flag is NOT NULL THEN
12269
12270 Validate_Lookups( 'PRIMARY_PAY_SITE_FLAG', p_vendor_site_rec.primary_pay_site_flag,'YES/NO',
12271 'PO_LOOKUP_CODES',x_valid);
12272 IF NOT x_valid THEN
12273 x_return_status := FND_API.G_RET_STS_ERROR;
12274 IF g_source = 'IMPORT' THEN
12275 IF (Insert_Rejections(
12276 'AP_SUPPLIER_SITES_INT',
12277 p_vendor_site_rec.vendor_site_interface_id,
12278 'AP_INVALID_PRIMPAY_SITE_FLAG',
12279 g_user_id,
12280 g_login_id,
12281 'Validate_Vendor_Site') <> TRUE) THEN
12282 --
12283 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12284 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
12285 l_api_name,'Parameters: '
12286 ||' Vendor_Site_Interface_Id: '
12287 ||p_vendor_site_rec.vendor_site_interface_id
12288 ||' ,Primary_Pay_Site_Flag: '
12289 ||p_vendor_site_rec.primary_pay_site_flag);
12290 END IF;
12291 END IF;
12292 ELSE
12293 -- Bug 5491139 hkaniven start --
12294 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PRIM_PAY_SITE');
12295 FND_MSG_PUB.ADD;
12296 -- Bug 5491139 hkaniven end --
12297 -- Bug 8438716 Start
12298 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12299 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
12300 l_api_name,'Call after Validate_Lookups(PRIMARY_PAY_SITE_FLAG...)... Parameters: '
12301 ||' Vendor_Site_Interface_Id: '
12302 ||p_vendor_site_rec.vendor_site_interface_id
12303 ||' ,Primary_Pay_Site_Flag: '
12304 ||p_vendor_site_rec.primary_pay_site_flag);
12305 END IF;
12306 -- Bug 8438716 End
12307 END IF;
12308 END IF;
12309 END IF;
12310
12311 ------------------------------------------------------------------------
12312 l_debug_info := 'Call to Validate freight_terms_lookup_code';
12313 ------------------------------------------------------------------------
12314 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
12315 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
12316 l_api_name,l_debug_info);
12317 END IF;
12318 --
12319 -- Validate freight_terms_lookup_code
12320 --
12321 IF p_vendor_site_rec.freight_terms_lookup_code is NOT NULL THEN
12322
12323 Validate_Lookups( 'FREIGHT_TERMS_LOOKUP_CODE',
12324 p_vendor_site_rec.freight_terms_lookup_code,'FREIGHT TERMS',
12325 'PO_LOOKUP_CODES',x_valid);
12326 IF NOT x_valid THEN
12327 x_return_status := FND_API.G_RET_STS_ERROR;
12328 IF g_source = 'IMPORT' THEN
12329 IF (Insert_Rejections(
12330 'AP_SUPPLIER_SITES_INT',
12331 p_vendor_site_rec.vendor_site_interface_id,
12332 'AP_INVALID_FREIGHT_TERMS',
12333 g_user_id,
12334 g_login_id,
12335 'Validate_Vendor_Site') <> TRUE) THEN
12336 --
12337 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12338 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
12339 l_api_name,'Parameters: '
12340 ||' Vendor_Site_Interface_Id: '
12341 ||p_vendor_site_rec.vendor_site_interface_id
12342 ||' ,Freight_Terms_Lookup_Code '
12343 ||p_vendor_site_rec.freight_terms_lookup_code);
12344 END IF;
12345 END IF;
12346 ELSE
12347 -- Bug 5491139 hkaniven start --
12348 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_FREIGHT_TERMS');
12349 FND_MSG_PUB.ADD;
12350 -- Bug 5491139 hkaniven end --
12351 -- Bug 8438716 Start
12352 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12353 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
12354 l_api_name,'Parameters: '
12355 ||' Vendor_Site_Interface_Id: '
12356 ||p_vendor_site_rec.vendor_site_interface_id
12357 ||' ,Freight_Terms_Lookup_Code '
12358 ||p_vendor_site_rec.freight_terms_lookup_code);
12359 END IF;
12360 -- Bug 8438784 End
12361 END IF;
12362 END IF;
12363 END IF;
12364
12365 ------------------------------------------------------------------------
12366 l_debug_info := 'Call to Validate fob_lookup_code';
12367 ------------------------------------------------------------------------
12368 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
12369 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
12370 l_api_name,l_debug_info);
12371 END IF;
12372 --
12373 -- Validate fob_lookup_code
12374 --
12375 IF p_vendor_site_rec.fob_lookup_code is NOT NULL THEN
12376
12377 Validate_Lookups( 'FOB_LOOKUP_CODE',p_vendor_site_rec.fob_lookup_code,'FOB',
12378 'PO_LOOKUP_CODES',x_valid);
12379 IF NOT x_valid THEN
12380 x_return_status := FND_API.G_RET_STS_ERROR;
12381 IF g_source = 'IMPORT' THEN
12382 IF (Insert_Rejections(
12383 'AP_SUPPLIER_SITES_INT',
12384 p_vendor_site_rec.vendor_site_interface_id,
12385 'AP_INVALID_FOB',
12386 g_user_id,
12387 g_login_id,
12388 'Validate_Vendor_Site') <> TRUE) THEN
12389 --
12390 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12391 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
12392 l_api_name,'Parameters: '
12393 ||' Vendor_Site_Interface_Id: '
12394 ||p_vendor_site_rec.vendor_site_interface_id
12395 ||' ,Fob_Lookup_Code '
12396 ||p_vendor_site_rec.fob_lookup_code);
12397 END IF;
12398 END IF;
12399 ELSE
12400 -- Bug 5491139 hkaniven start --
12401 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_FOB');
12402 FND_MSG_PUB.ADD;
12403 -- Bug 5491139 hkaniven end --
12404 -- Bug 8438716 Start
12405 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12406 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
12407 l_api_name,'Call after validating FOB_LOOKUP_CODE Parameters: '
12408 ||' Vendor_Site_Interface_Id: '
12409 ||p_vendor_site_rec.vendor_site_interface_id
12410 ||' ,Fob_Lookup_Code '
12411 ||p_vendor_site_rec.fob_lookup_code);
12412 END IF;
12413 -- Bug 8438716 End
12414 END IF;
12415 END IF;
12416 END IF;
12417
12418 ------------------------------------------------------------------------
12419 l_debug_info := 'Call to Validate pay_date_basis_lookup_code';
12420 ------------------------------------------------------------------------
12421 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
12422 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
12423 l_api_name,l_debug_info);
12424 END IF;
12425 --
12426 -- Validate pay_date_basis_lookup_code
12427 --
12428 IF p_vendor_site_rec.pay_date_basis_lookup_code is NOT NULL THEN
12429
12430 Validate_Lookups( 'PAY_DATE_BASIS_LOOKUP_CODE',
12431 p_vendor_site_rec.pay_date_basis_lookup_code,'PAY DATE BASIS',
12432 'PO_LOOKUP_CODES',x_valid);
12433 IF NOT x_valid THEN
12434 x_return_status := FND_API.G_RET_STS_ERROR;
12435 IF g_source = 'IMPORT' THEN
12436 IF (Insert_Rejections(
12437 'AP_SUPPLIER_SITES_INT',
12438 p_vendor_site_rec.vendor_site_interface_id,
12439 'AP_INVALID_PAY_DATE_BASIS',
12440 g_user_id,
12441 g_login_id,
12442 'Validate_Vendor_Site') <> TRUE) THEN
12443 --
12444 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12445 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
12446 l_api_name,'Parameters: '
12447 ||' Vendor_Site_Interface_Id: '
12448 ||p_vendor_site_rec.vendor_site_interface_id
12449 ||' ,Pay_Date_Basis_Lookup_Code '
12450 ||p_vendor_site_rec.pay_date_basis_lookup_code);
12451 END IF;
12452 END IF;
12453 ELSE
12454 -- Bug 5491139 hkaniven start --
12455 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PAY_DATE_BASIS');
12456 FND_MSG_PUB.ADD;
12457 -- Bug 5491139 hkaniven end --
12458 -- Bug 8438716 Start
12459 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12460 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
12461 l_api_name,'Call after validating PAY_DATE_BASIS_LOOKUP_CODE... Parameters: '
12462 ||' Vendor_Site_Interface_Id: '
12463 ||p_vendor_site_rec.vendor_site_interface_id
12464 ||' ,Pay_Date_Basis_Lookup_Code '
12465 ||p_vendor_site_rec.pay_date_basis_lookup_code);
12466 END IF;
12467 -- Bug 8438716 End
12468 END IF;
12469 END IF;
12470 END IF;
12471
12472 ------------------------------------------------------------------------
12473 l_debug_info := 'Call to Validate pay_group_lookup_code';
12474 ------------------------------------------------------------------------
12475 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
12476 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
12477 l_api_name,l_debug_info);
12478 END IF;
12479 --
12480 -- Validate pay_group_lookup_code
12481 --
12482 IF p_vendor_site_rec.pay_group_lookup_code is NOT NULL THEN
12483
12484 Validate_Lookups( 'PAY_GROUP_LOOKUP_CODE',
12485 p_vendor_site_rec.pay_group_lookup_code,'PAY GROUP',
12486 'PO_LOOKUP_CODES',x_valid);
12487 IF NOT x_valid THEN
12488 x_return_status := FND_API.G_RET_STS_ERROR;
12489 IF g_source = 'IMPORT' THEN
12490 IF (Insert_Rejections(
12491 'AP_SUPPLIER_SITES_INT',
12492 p_vendor_site_rec.vendor_site_interface_id,
12493 'AP_INVALID_PAY_GROUP',
12494 g_user_id,
12495 g_login_id,
12496 'Validate_Vendor_Site') <> TRUE) THEN
12497 --
12498 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12499 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
12500 l_api_name,'Parameters: '
12501 ||' Vendor_Site_Interface_Id: '
12502 ||p_vendor_site_rec.vendor_site_interface_id
12503 ||' ,Pay_Group_Lookup_Code '
12504 ||p_vendor_site_rec.pay_group_lookup_code);
12505 END IF;
12506 END IF;
12507 ELSE
12508 -- Bug 5491139 hkaniven start --
12509 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PAY_GROUP');
12510 FND_MSG_PUB.ADD;
12511 -- Bug 5491139 hkaniven end --
12512 -- Bug 8438716 Start
12513 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12514 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
12515 l_api_name,'Call after validating PAY_GROUP_LOOKUP_CODE... Parameters: '
12516 ||' Vendor_Site_Interface_Id: '
12517 ||p_vendor_site_rec.vendor_site_interface_id
12518 ||' ,Pay_Group_Lookup_Code '
12519 ||p_vendor_site_rec.pay_group_lookup_code);
12520 END IF;
12521 -- Bug 8438716 End
12522 END IF;
12523 END IF;
12524 END IF;
12525
12526 ------------------------------------------------------------------------
12527 l_debug_info := 'Call to Validate terms_date_basis';
12528 ------------------------------------------------------------------------
12529 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
12530 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
12531 l_api_name,l_debug_info);
12532 END IF;
12533 --
12534 -- Validate terms_date_basis
12535 --
12536 IF p_vendor_site_rec.terms_date_basis is NOT NULL THEN
12537
12538 Validate_Lookups( 'TERMS_DATE_BASIS',p_vendor_site_rec.terms_date_basis,'TERMS DATE BASIS',
12539 'AP_LOOKUP_CODES',x_valid);
12540 IF NOT x_valid THEN
12541 x_return_status := FND_API.G_RET_STS_ERROR;
12542 IF g_source = 'IMPORT' THEN
12543 IF (Insert_Rejections(
12544 'AP_SUPPLIER_SITES_INT',
12545 p_vendor_site_rec.vendor_site_interface_id,
12546 'AP_INVALID_TERMS_DATE',
12547 g_user_id,
12548 g_login_id,
12549 'Validate_Vendor_Site') <> TRUE) THEN
12550 --
12551 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12552 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
12553 l_api_name,'Parameters: '
12554 ||' Vendor_Site_Interface_Id: '
12555 ||p_vendor_site_rec.vendor_site_interface_id
12556 ||' ,Terms_Date_Basis '
12557 ||p_vendor_site_rec.terms_date_basis);
12558 END IF;
12559 END IF;
12560 ELSE
12561 -- Bug 5491139 hkaniven start --
12562 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_TERMS_DATE');
12563 FND_MSG_PUB.ADD;
12564 -- Bug 5491139 hkaniven end --
12565 -- Bug 8438716 Start
12566 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12567 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
12568 l_api_name,'Call after validating TERMS_DATE_BASIS... Parameters: '
12569 ||' Vendor_Site_Interface_Id: '
12570 ||p_vendor_site_rec.vendor_site_interface_id
12571 ||' ,Terms_Date_Basis '
12572 ||p_vendor_site_rec.terms_date_basis);
12573 END IF;
12574 -- Bug 8438716 End
12575 END IF;
12576 END IF;
12577 END IF;
12578
12579
12580 ------------------------------------------------------------------------
12581 l_debug_info := 'Call to Validate create_debit_memo_flag';
12582 ------------------------------------------------------------------------
12583 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
12584 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
12585 l_api_name,l_debug_info);
12586 END IF;
12587 --
12588 -- Validate create_debit_memo_flag
12589 --
12590 IF p_vendor_site_rec.create_debit_memo_flag is NOT NULL THEN
12591
12592 Validate_Lookups( 'CREATE_DEBIT_MEMO_FLAG',
12593 p_vendor_site_rec.create_debit_memo_flag ,'YES/NO',
12594 'PO_LOOKUP_CODES',x_valid);
12595 IF NOT x_valid THEN
12596 x_return_status := FND_API.G_RET_STS_ERROR;
12597 IF g_source = 'IMPORT' THEN
12598 IF (Insert_Rejections(
12599 'AP_SUPPLIER_SITES_INT',
12600 p_vendor_site_rec.vendor_site_interface_id,
12601 'AP_INVALID_DEBIT_MEMO',
12602 g_user_id,
12603 g_login_id,
12604 'Validate_Vendor_Site') <> TRUE) THEN
12605 --
12606 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12607 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
12608 l_api_name,'Parameters: '
12609 ||' Vendor_Site_Interface_Id: '
12610 ||p_vendor_site_rec.vendor_site_interface_id
12611 ||' ,Create_Debit_Memo_Flag '
12612 ||p_vendor_site_rec.create_debit_memo_flag);
12613 END IF;
12614 END IF;
12615 ELSE
12616 -- Bug 5491139 hkaniven start --
12617 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_DEBIT_MEMO');
12618 FND_MSG_PUB.ADD;
12619 -- Bug 5491139 hkaniven end --
12620 -- Bug 8438716 Start
12621 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12622 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
12623 l_api_name,'Call after validating CREATE_DEBIT_MEMO_FLAG... Parameters: '
12624 ||' Vendor_Site_Interface_Id: '
12625 ||p_vendor_site_rec.vendor_site_interface_id
12626 ||' ,Create_Debit_Memo_Flag '
12627 ||p_vendor_site_rec.create_debit_memo_flag);
12628 END IF;
12629 -- Bug 8438716 End
12630 END IF;
12631 END IF;
12632 END IF;
12633
12634 ------------------------------------------------------------------------
12635 l_debug_info := 'Call to Validate exclude_freight_from_discount';
12636 ------------------------------------------------------------------------
12637 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
12638 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
12639 l_api_name,l_debug_info);
12640 END IF;
12641 --
12642 -- Validate exclude_freight_from_discount
12643 --
12644 IF p_vendor_site_rec.exclude_freight_from_discount is NOT NULL THEN
12645
12646 Validate_Lookups( 'EXCLUDE_FREIGHT_FROM_DISCOUNT',
12647 p_vendor_site_rec.exclude_freight_from_discount ,'YES/NO',
12648 'PO_LOOKUP_CODES',x_valid);
12649 IF NOT x_valid THEN
12650 x_return_status := FND_API.G_RET_STS_ERROR;
12651 IF g_source = 'IMPORT' THEN
12652 IF (Insert_Rejections(
12653 'AP_SUPPLIER_SITES_INT',
12654 p_vendor_site_rec.vendor_site_interface_id,
12655 'AP_INVALID_EXC_FR_DISC',
12656 g_user_id,
12657 g_login_id,
12658 'Validate_Vendor_Site') <> TRUE) THEN
12659 --
12660 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12661 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
12662 l_api_name,'Parameters: '
12663 ||' Vendor_Site_Interface_Id: '
12664 ||p_vendor_site_rec.vendor_site_interface_id
12665 ||' ,Exclude_Freight_From_Discount '
12666 ||p_vendor_site_rec.exclude_freight_from_discount);
12667 END IF;
12668 END IF;
12669 ELSE
12670 -- Bug 5491139 hkaniven start --
12671 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_EXC_FR_DISC');
12672 FND_MSG_PUB.ADD;
12673 -- Bug 5491139 hkaniven end --
12674 -- Bug 8438716 Start
12675 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12676 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
12677 l_api_name,'Call after validating EXCLUDE_FREIGHT_FROM_DISCOUNT... Parameters: '
12678 ||' Vendor_Site_Interface_Id: '
12679 ||p_vendor_site_rec.vendor_site_interface_id
12680 ||' ,Exclude_Freight_From_Discount '
12681 ||p_vendor_site_rec.exclude_freight_from_discount);
12682 END IF;
12683 -- Bug 8438716 End
12684 END IF;
12685 END IF;
12686 END IF;
12687
12688
12689 ------------------------------------------------------------------------
12690 l_debug_info := 'Call to Validate hold_future_payments_flag';
12691 ------------------------------------------------------------------------
12692 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
12693 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
12694 l_api_name,l_debug_info);
12695 END IF;
12696 --
12697 -- Validate hold_future_payments_flag
12698 --
12699 IF p_vendor_site_rec.hold_future_payments_flag is NOT NULL THEN
12700
12701 Validate_Lookups('HOLD_FUTURE_PAYMENTS_FLAG', p_vendor_site_rec.hold_future_payments_flag,'YES/NO',
12702 'PO_LOOKUP_CODES', x_valid);
12703 IF NOT x_valid THEN
12704 x_return_status := FND_API.G_RET_STS_ERROR;
12705 IF g_source = 'IMPORT' THEN
12706 IF (Insert_Rejections(
12707 'AP_SUPPLIER_SITES_INT',
12708 p_vendor_site_rec.vendor_site_interface_id,
12709 'AP_INVALID_HOLD_FUT_PAY',
12710 g_user_id,
12711 g_login_id,
12712 'Validate_Vendor_Site') <> TRUE) THEN
12713 --
12714 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12715 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
12716 l_api_name,'Parameters: '
12717 ||' Vendor_Site_Interface_Id: '
12718 ||p_vendor_site_rec.vendor_site_interface_id
12719 ||' ,Hold_Future_Payments_Flag '
12720 ||p_vendor_site_rec.hold_future_payments_flag);
12721 END IF;
12722 END IF;
12723 ELSE
12724 -- Bug 5491139 hkaniven start --
12725 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_HOLD_FUT_PAY');
12726 FND_MSG_PUB.ADD;
12727 -- Bug 5491139 hkaniven end --
12728 -- Bug 8438716 Start
12729 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12730 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
12731 l_api_name,'Call after validating HOLD_FUTURE_PAYMENTS_FLAG... Parameters: '
12732 ||' Vendor_Site_Interface_Id: '
12733 ||p_vendor_site_rec.vendor_site_interface_id
12734 ||' ,Hold_Future_Payments_Flag '
12735 ||p_vendor_site_rec.hold_future_payments_flag);
12736 END IF;
12737 -- Bug 8438716 End
12738 END IF;
12739 END IF;
12740 END IF;
12741
12742 ------------------------------------------------------------------------
12743 l_debug_info := 'Call to Validate hold_all_payments_flag';
12744 ------------------------------------------------------------------------
12745 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
12746 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
12747 l_api_name,l_debug_info);
12748 END IF;
12749 --
12750 -- Validate hold_all_payments_flag
12751 --
12752 IF p_vendor_site_rec.hold_all_payments_flag is NOT NULL THEN
12753
12754 Validate_Lookups('HOLD_ALL_PAYMENTS_FLAG', p_vendor_site_rec.hold_all_payments_flag,'YES/NO',
12755 'PO_LOOKUP_CODES', x_valid);
12756 IF NOT x_valid THEN
12757 x_return_status := FND_API.G_RET_STS_ERROR;
12758 IF g_source = 'IMPORT' THEN
12759 IF (Insert_Rejections(
12760 'AP_SUPPLIER_SITES_INT',
12761 p_vendor_site_rec.vendor_site_interface_id,
12762 'AP_INVALID_HOLD_ALL_PAY',
12763 g_user_id,
12764 g_login_id,
12765 'Validate_Vendor_Site') <> TRUE) THEN
12766 --
12767 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12768 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
12769 l_api_name,'Parameters: '
12770 ||' Vendor_Site_Interface_Id: '
12771 ||p_vendor_site_rec.vendor_site_interface_id
12772 ||' ,Hold_All_Payments_Flag '
12773 ||p_vendor_site_rec.hold_all_payments_flag);
12774 END IF;
12775 END IF;
12776 ELSE
12777 -- Bug 5491139 hkaniven start --
12778 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_HOLD_ALL_PAY');
12779 FND_MSG_PUB.ADD;
12780 -- Bug 5491139 hkaniven end --
12781 -- Bug 8438716 Start
12782 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12783 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
12784 l_api_name,'Call after validating HOLD_ALL_PAYMENTS_FLAG... Parameters: '
12785 ||' Vendor_Site_Interface_Id: '
12786 ||p_vendor_site_rec.vendor_site_interface_id
12787 ||' ,Hold_All_Payments_Flag '
12788 ||p_vendor_site_rec.hold_all_payments_flag);
12789 END IF;
12790 -- Bug 8438716 End
12791 END IF;
12792 END IF;
12793 END IF;
12794
12795 ------------------------------------------------------------------------
12796 l_debug_info := 'Call to Validate always_take_disc_flag';
12797 ------------------------------------------------------------------------
12798 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
12799 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
12800 l_api_name,l_debug_info);
12801 END IF;
12802 --
12803 -- Validate always_take_disc_flag
12804 --
12805 IF p_vendor_site_rec.always_take_disc_flag is NOT NULL THEN
12806
12807 Validate_Lookups( 'ALWAYS_TAKE_DISC_FLAG', p_vendor_site_rec.always_take_disc_flag,'YES/NO',
12808 'PO_LOOKUP_CODES', x_valid);
12809 IF NOT x_valid THEN
12810 x_return_status := FND_API.G_RET_STS_ERROR;
12811 IF g_source = 'IMPORT' THEN
12812 IF (Insert_Rejections(
12813 'AP_SUPPLIER_SITES_INT',
12814 p_vendor_site_rec.vendor_site_interface_id,
12815 'AP_INVALID_TAKE_DISC',
12816 g_user_id,
12817 g_login_id,
12818 'Validate_Vendor_Site') <> TRUE) THEN
12819 --
12820 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12821 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
12822 l_api_name,'Parameters: '
12823 ||' Vendor_Site_Interface_Id: '
12824 ||p_vendor_site_rec.vendor_site_interface_id
12825 ||' ,Always_Take_Disc_Flag '
12826 ||p_vendor_site_rec.always_take_disc_flag);
12827 END IF;
12828 END IF;
12829 ELSE
12830 -- Bug 5491139 hkaniven start --
12831 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_TAKE_DISC');
12832 FND_MSG_PUB.ADD;
12833 -- Bug 5491139 hkaniven end --
12834 -- Bug 8438716 Start
12835 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12836 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
12837 l_api_name,'Call after validating ALWAYS_TAKE_DISC_FLAG... Parameters: '
12838 ||' Vendor_Site_Interface_Id: '
12839 ||p_vendor_site_rec.vendor_site_interface_id
12840 ||' ,Always_Take_Disc_Flag '
12841 ||p_vendor_site_rec.always_take_disc_flag);
12842 END IF;
12843 -- Bug 8438716 End
12844 END IF;
12845 END IF;
12846 END IF;
12847
12848 ------------------------------------------------------------------------
12849 l_debug_info := 'Call to Validate match_option';
12850 ------------------------------------------------------------------------
12851 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
12852 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
12853 l_api_name,l_debug_info);
12854 END IF;
12855 --
12856 -- Validate match_option
12857 --
12858 IF p_vendor_site_rec.match_option is NOT NULL THEN
12859
12860 Check_Valid_Match_Option(p_vendor_site_rec.match_option,
12861 x_valid
12862 );
12863 IF NOT x_valid THEN
12864 x_return_status := FND_API.G_RET_STS_ERROR;
12865 IF g_source = 'IMPORT' THEN
12866 IF (Insert_Rejections(
12867 'AP_SUPPLIER_SITES_INT',
12868 p_vendor_site_rec.vendor_site_interface_id,
12869 'AP_INVALID_MATCH_OPTION',
12870 g_user_id,
12871 g_login_id,
12872 'Validate_Vendor_Site') <> TRUE) THEN
12873 --
12874 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12875 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
12876 l_api_name,'Parameters: '
12877 ||' Vendor_Site_Interface_Id: '
12878 ||p_vendor_site_rec.vendor_site_interface_id
12879 ||' ,Match_Option '
12880 ||p_vendor_site_rec.match_option);
12881 END IF;
12882 END IF;
12883 ELSE
12884 -- Bug 5491139 hkaniven start --
12885 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_MATCH_OPTION');
12886 FND_MSG_PUB.ADD;
12887 -- Bug 5491139 hkaniven end --
12888 -- Bug 8438716 Start
12889 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12890 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
12891 l_api_name,'Call after Check_Valid_Match_Option()... Parameters: '
12892 ||' Vendor_Site_Interface_Id: '
12893 ||p_vendor_site_rec.vendor_site_interface_id
12894 ||' ,Match_Option '
12895 ||p_vendor_site_rec.match_option);
12896 END IF;
12897 -- Bug 8438716 End
12898 END IF;
12899 END IF;
12900 END IF;
12901
12902 ------------------------------------------------------------------------
12903 l_debug_info := 'Call to Validate allow_awt_flag';
12904 ------------------------------------------------------------------------
12905 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
12906 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
12907 l_api_name,l_debug_info);
12908 END IF;
12909 --
12910 -- Validate allow_awt_flag
12911 --
12912 IF p_vendor_site_rec.allow_awt_flag is NOT NULL THEN
12913
12914 Chk_allow_awt_flag(p_vendor_site_rec.allow_awt_flag,
12915 p_vendor_site_rec.org_id,
12916 x_valid
12917 );
12918 IF NOT x_valid THEN
12919 x_return_status := FND_API.G_RET_STS_ERROR;
12920 IF g_source = 'IMPORT' THEN
12921 IF (Insert_Rejections(
12922 'AP_SUPPLIER_SITES_INT',
12923 p_vendor_site_rec.vendor_site_interface_id,
12924 'AP_INVALID_ALLOW_AWT',
12925 g_user_id,
12926 g_login_id,
12927 'Validate_Vendor_Site') <> TRUE) THEN
12928 --
12929 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12930 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
12931 l_api_name,'Parameters: '
12932 ||' Vendor_Site_Interface_Id: '
12933 ||p_vendor_site_rec.vendor_site_interface_id
12934 ||' ,Allow_Awt_Flag '
12935 ||p_vendor_site_rec.allow_awt_flag);
12936 END IF;
12937 END IF;
12938 ELSE
12939 -- Bug 5491139 hkaniven start --
12940 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_ALLOW_AWT');
12941 FND_MSG_PUB.ADD;
12942 -- Bug 5491139 hkaniven end --
12943 -- Bug 8438716 Start
12944 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12945 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
12946 l_api_name,'Call after Chk_allow_awt_flag()... Parameters: '
12947 ||' Vendor_Site_Interface_Id: '
12948 ||p_vendor_site_rec.vendor_site_interface_id
12949 ||' ,Allow_Awt_Flag '
12950 ||p_vendor_site_rec.allow_awt_flag);
12951 END IF;
12952 -- Bug 8438716 End
12953 END IF;
12954 END IF;
12955 END IF;
12956
12957 ------------------------------------------------------------------------
12958 l_debug_info := 'Call to Validate awt_group_id and awt_group_name';
12959 ------------------------------------------------------------------------
12960 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
12961 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
12962 l_api_name,l_debug_info);
12963 END IF;
12964 --
12965 -- Validate awt_group_id and awt_group_name
12966 --
12967 --Bug6317600 Added conditions to resolve the null case for AWT
12968 --Do not call the AWT validation if AWT_FLAG is not 'Y'
12969 IF ((p_vendor_site_rec.awt_group_id is NOT NULL AND
12970 p_vendor_site_rec.awt_group_id <> ap_null_num)
12971 or (p_vendor_site_rec.awt_group_name is NOT NULL AND
12972 p_vendor_site_rec.awt_group_name <> ap_null_char)) AND
12973 (p_vendor_site_rec.allow_awt_flag = 'Y') THEN
12974
12975 Chk_awt_grp_id_name(p_vendor_site_rec.awt_group_id,
12976 p_vendor_site_rec.awt_group_name,
12977 p_vendor_site_rec.allow_awt_flag,
12978 x_valid
12979 );
12980 IF NOT x_valid THEN
12981 x_return_status := FND_API.G_RET_STS_ERROR;
12982 IF g_source = 'IMPORT' THEN
12983 IF (Insert_Rejections(
12984 'AP_SUPPLIER_SITES_INT',
12985 p_vendor_site_rec.vendor_site_interface_id,
12986 'AP_INCONSISTENT_AWT_GROUP',
12987 g_user_id,
12988 g_login_id,
12989 'Validate_Vendor_Site') <> TRUE) THEN
12990 --
12991 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
12992 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
12993 l_api_name,'Parameters: '
12994 ||' Vendor_Site_Interface_Id: '
12995 ||p_vendor_site_rec.vendor_site_interface_id
12996 ||' ,Allow_Awt_Flag '
12997 ||p_vendor_site_rec.allow_awt_flag
12998 ||' , Awt_Group_Id: '||p_vendor_site_rec.awt_group_id
12999 ||' ,Awt_Group_Name: '||p_vendor_site_rec.awt_group_name);
13000 END IF;
13001 END IF;
13002 ELSE
13003 -- Bug 5491139 hkaniven start --
13004 FND_MESSAGE.SET_NAME('SQLAP','AP_INCONSISTENT_AWT_GROUP');
13005 FND_MSG_PUB.ADD;
13006 -- Bug 5491139 hkaniven end --
13007 -- Bug 8438716 Start
13008 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
13009 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
13010 l_api_name,'Call after Chk_awt_grp_id_name()... Parameters: '
13011 ||' Vendor_Site_Interface_Id: '
13012 ||p_vendor_site_rec.vendor_site_interface_id
13013 ||' ,Allow_Awt_Flag '
13014 ||p_vendor_site_rec.allow_awt_flag
13015 ||' , Awt_Group_Id: '||p_vendor_site_rec.awt_group_id
13016 ||' ,Awt_Group_Name: '||p_vendor_site_rec.awt_group_name);
13017 END IF;
13018 -- Bug 8438716 End
13019 END IF;
13020 END IF;
13021 END IF;
13022
13023 /*Bug9589179 */
13024 ------------------------------------------------------------------------
13025 l_debug_info := 'Call to Validate pay_awt_group_id and pay_awt_group_name';
13026 ------------------------------------------------------------------------
13027 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
13028 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
13029 l_api_name,l_debug_info);
13030 END IF;
13031 --
13032 -- Validate awt_group_id and awt_group_name
13033 --
13034 --Bug6317600 Added conditions to resolve the null case for AWT
13035 --Do not call the AWT validation if AWT_FLAG is not 'Y'
13036
13037 IF ((p_vendor_site_rec.pay_awt_group_id is NOT NULL AND
13038 p_vendor_site_rec.pay_awt_group_id <> ap_null_num)
13039 or (p_vendor_site_rec.pay_awt_group_name is NOT NULL AND
13040 p_vendor_site_rec.pay_awt_group_name <> ap_null_char)) AND
13041 (p_vendor_site_rec.allow_awt_flag = 'Y') THEN
13042
13043 Chk_pay_awt_grp_id_name(p_vendor_site_rec.pay_awt_group_id,
13044 p_vendor_site_rec.pay_awt_group_name,
13045 p_vendor_site_rec.allow_awt_flag,
13046 x_valid
13047 );
13048 IF NOT x_valid THEN
13049 x_return_status := FND_API.G_RET_STS_ERROR;
13050 IF g_source = 'IMPORT' THEN
13051 IF (Insert_Rejections(
13052 'AP_SUPPLIER_SITES_INT',
13053 p_vendor_site_rec.vendor_site_interface_id,
13054 'AP_INCONSISTENT_AWT_GROUP',
13055 g_user_id,
13056 g_login_id,
13057 'Validate_Vendor_Site') <> TRUE) THEN
13058 --
13059 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
13060 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
13061 l_api_name,'Parameters: '
13062 ||' Vendor_Site_Interface_Id: '
13063 ||p_vendor_site_rec.vendor_site_interface_id
13064 ||' ,Allow_Awt_Flag '
13065 ||p_vendor_site_rec.allow_awt_flag
13066 ||' , Awt_Group_Id: '||p_vendor_site_rec.pay_awt_group_id
13067 ||' ,Awt_Group_Name: '||p_vendor_site_rec.pay_awt_group_name);
13068 END IF;
13069 END IF;
13070 ELSE
13071
13072 FND_MESSAGE.SET_NAME('SQLAP','AP_INCONSISTENT_AWT_GROUP');
13073 FND_MSG_PUB.ADD;
13074
13075 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
13076 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
13077 l_api_name,'Call after Chk_pay_awt_grp_id_name()... Parameters: '
13078 ||' Vendor_Site_Interface_Id: '
13079 ||p_vendor_site_rec.vendor_site_interface_id
13080 ||' ,Allow_Awt_Flag '
13081 ||p_vendor_site_rec.allow_awt_flag
13082 ||' , Awt_Group_Id: '||p_vendor_site_rec.pay_awt_group_id
13083 ||' ,Awt_Group_Name: '||p_vendor_site_rec.pay_awt_group_name);
13084 END IF;
13085
13086 END IF;
13087 END IF;
13088 END IF; /*Bug9589179 */
13089
13090 ------------------------------------------------------------------------
13091 l_debug_info := 'Call to Validate Distribution_set_Id and Distribution_set_name';
13092 ------------------------------------------------------------------------
13093 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
13094 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
13095 l_api_name,l_debug_info);
13096 END IF;
13097
13098 -- Distribution_set_Id and Distribution_set_name validation
13099
13100 IF (p_vendor_site_rec.distribution_set_id is NOT NULL OR p_vendor_site_rec.distribution_set_name is NOT NULL
13101 OR p_vendor_site_rec.default_dist_set_id is NOT NULL) THEN
13102
13103 Check_dist_set_id_name(p_vendor_site_rec.distribution_set_id,
13104 p_vendor_site_rec.distribution_set_name,
13105 p_vendor_site_rec.default_dist_set_id,
13106 x_valid);
13107 IF NOT x_valid THEN
13108 x_return_status := FND_API.G_RET_STS_ERROR;
13109 IF g_source = 'IMPORT' THEN
13110 IF (Insert_Rejections(
13111 'AP_SUPPLIER_SITES_INT',
13112 p_vendor_site_rec.vendor_site_interface_id,
13113 'AP_INCONSISTENT_DIST_SET',
13114 g_user_id,
13115 g_login_id,
13116 'Validate_Vendor_Site') <> TRUE) THEN
13117 --
13118 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
13119 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
13120 l_api_name,'Parameters: '
13121 ||' Vendor_Site_Interface_Id: '
13122 ||p_vendor_site_rec.vendor_site_interface_id
13123 ||' ,Distribution_Set_Id '
13124 ||p_vendor_site_rec.distribution_set_id
13125 ||' , Distribution_Set_Name: '
13126 ||p_vendor_site_rec.distribution_set_name
13127 ||' ,Default_Dist_Set_Id: '
13128 ||p_vendor_site_rec.default_dist_set_id);
13129 END IF;
13130 END IF;
13131 ELSE
13132 -- Bug 5491139 hkaniven start --
13133 FND_MESSAGE.SET_NAME('SQLAP','AP_INCONSISTENT_DIST_SET');
13134 FND_MSG_PUB.ADD;
13135 -- Bug 5491139 hkaniven end --
13136 -- Bug 8438716 Start
13137 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
13138 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
13139 l_api_name,'Call after Check_dist_set_id_name() Parameters: '
13140 ||' Vendor_Site_Interface_Id: '
13141 ||p_vendor_site_rec.vendor_site_interface_id
13142 ||' ,Distribution_Set_Id '
13143 ||p_vendor_site_rec.distribution_set_id
13144 ||' , Distribution_Set_Name: '
13145 ||p_vendor_site_rec.distribution_set_name
13146 ||' ,Default_Dist_Set_Id: '
13147 ||p_vendor_site_rec.default_dist_set_id);
13148 END IF;
13149 -- Bug 8438716 End
13150 END IF;
13151 END IF;
13152 END IF;
13153
13154 ------------------------------------------------------------------------
13155 l_debug_info := 'Call to Validate Ship_to_location_Id and Ship_to_location_code`';
13156 ------------------------------------------------------------------------
13157 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
13158 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
13159 l_api_name,l_debug_info);
13160 END IF;
13161
13162 -- Ship_to_location_Id and Ship_to_location_code validation
13163
13164 IF (p_vendor_site_rec.ship_to_location_id is NOT NULL OR p_vendor_site_rec.ship_to_location_code is NOT NULL
13165 OR p_vendor_site_rec.default_ship_to_loc_id is NOT NULL) THEN
13166
13167 Check_ship_locn_id_code(p_vendor_site_rec.ship_to_location_id,
13168 p_vendor_site_rec.ship_to_location_code,
13169 p_vendor_site_rec.default_ship_to_loc_id,
13170 x_valid);
13171 IF NOT x_valid THEN
13172 x_return_status := FND_API.G_RET_STS_ERROR;
13173 IF g_source = 'IMPORT' THEN
13174 IF (Insert_Rejections(
13175 'AP_SUPPLIER_SITES_INT',
13176 p_vendor_site_rec.vendor_site_interface_id,
13177 'AP_INCONSISTENT_SHIP_LOC',
13178 g_user_id,
13179 g_login_id,
13180 'Validate_Vendor_Site') <> TRUE) THEN
13181 --
13182 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
13183 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
13184 l_api_name,'Parameters: '
13185 ||' Vendor_Site_Interface_Id: '
13186 ||p_vendor_site_rec.vendor_site_interface_id
13187 ||' ,Ship_To_Location_Id '
13188 ||p_vendor_site_rec.ship_to_location_id
13189 ||' , Ship_To_Location_Code '
13190 ||p_vendor_site_rec.ship_to_location_code
13191 ||' ,Default_ship_to_loc_Id: '
13192 ||p_vendor_site_rec.default_ship_to_loc_id);
13193 END IF;
13194 END IF;
13195 ELSE
13196 -- Bug 5491139 hkaniven start --
13197 FND_MESSAGE.SET_NAME('SQLAP','AP_INCONSISTENT_SHIP_LOC');
13198 FND_MSG_PUB.ADD;
13199 -- Bug 5491139 hkaniven end --
13200 -- Bug 8438716 Start
13201 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
13202 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
13203 l_api_name,'Call after Check_ship_locn_id_code()... Parameters: '
13204 ||' Vendor_Site_Interface_Id: '
13205 ||p_vendor_site_rec.vendor_site_interface_id
13206 ||' ,Ship_To_Location_Id '
13207 ||p_vendor_site_rec.ship_to_location_id
13208 ||' , Ship_To_Location_Code '
13209 ||p_vendor_site_rec.ship_to_location_code
13210 ||' ,Default_ship_to_loc_Id: '
13211 ||p_vendor_site_rec.default_ship_to_loc_id);
13212 END IF;
13213 -- Bug 8438716 End
13214 END IF;
13215 END IF;
13216 END IF;
13217
13218 ------------------------------------------------------------------------
13219 l_debug_info := 'Call to Validate Bill_to_location_Id and Bill_to_location_code';
13220 ------------------------------------------------------------------------
13221 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
13222 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
13223 l_api_name,l_debug_info);
13224 END IF;
13225
13226 -- Bill_to_location_Id and Bill_to_location_code validation
13227
13228 IF (p_vendor_site_rec.bill_to_location_id is NOT NULL OR p_vendor_site_rec.bill_to_location_code is NOT NULL
13229 OR p_vendor_site_rec.default_bill_to_loc_id is NOT NULL) THEN
13230
13231 Check_bill_locn_id_code(p_vendor_site_rec.bill_to_location_id,
13232 p_vendor_site_rec.bill_to_location_code,
13233 p_vendor_site_rec.default_bill_to_loc_id,
13234 x_valid);
13235 IF NOT x_valid THEN
13236 x_return_status := FND_API.G_RET_STS_ERROR;
13237 IF g_source = 'IMPORT' THEN
13238 IF (Insert_Rejections(
13239 'AP_SUPPLIER_SITES_INT',
13240 p_vendor_site_rec.vendor_site_interface_id,
13241 'AP_INCONSISTENT_BILL_LOC',
13242 g_user_id,
13243 g_login_id,
13244 'Validate_Vendor_Site') <> TRUE) THEN
13245 --
13246 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
13247 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
13248 l_api_name,'Parameters: '
13249 ||' Vendor_Site_Interface_Id: '
13250 ||p_vendor_site_rec.vendor_site_interface_id
13251 ||' ,Bill_To_Location_Id '
13252 ||p_vendor_site_rec.bill_to_location_id
13253 ||' , Bill_To_Location_Code '
13254 ||p_vendor_site_rec.bill_to_location_code
13255 ||' ,Default_bill_to_loc_Id: '
13256 ||p_vendor_site_rec.default_bill_to_loc_id);
13257 END IF;
13258 END IF;
13259 ELSE
13260 -- Bug 5491139 hkaniven start --
13261 FND_MESSAGE.SET_NAME('SQLAP','AP_INCONSISTENT_BILL_LOC');
13262 FND_MSG_PUB.ADD;
13263 -- Bug 5491139 hkaniven end --
13264 -- Bug 8438716 Start
13265 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
13266 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
13267 l_api_name,'Call after Check_bill_locn_id_code()... Parameters: '
13268 ||' Vendor_Site_Interface_Id: '
13269 ||p_vendor_site_rec.vendor_site_interface_id
13270 ||' ,Bill_To_Location_Id '
13271 ||p_vendor_site_rec.bill_to_location_id
13272 ||' , Bill_To_Location_Code '
13273 ||p_vendor_site_rec.bill_to_location_code
13274 ||' ,Default_bill_to_loc_Id: '
13275 ||p_vendor_site_rec.default_bill_to_loc_id);
13276 END IF;
13277 -- Bug 8438716 End
13278 END IF;
13279 END IF;
13280 END IF;
13281
13282 ------------------------------------------------------------------------
13283 l_debug_info := 'Call to Validate supplier_notification_method';
13284 ------------------------------------------------------------------------
13285 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
13286 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
13287 l_api_name,l_debug_info);
13288 END IF;
13289 --
13290 -- Validate supplier_notification_method
13291 --
13292 IF p_vendor_site_rec.supplier_notif_method is NOT NULL THEN
13293
13294 Check_Valid_Sup_Notif_Method(p_vendor_site_rec.supplier_notif_method,
13295 x_valid
13296 );
13297 IF NOT x_valid THEN
13298 x_return_status := FND_API.G_RET_STS_ERROR;
13299 IF g_source = 'IMPORT' THEN
13300 IF (Insert_Rejections(
13301 'AP_SUPPLIER_SITES_INT',
13302 p_vendor_site_rec.vendor_site_interface_id,
13303 'AP_INVALID_NOTIF_METHOD',
13304 g_user_id,
13305 g_login_id,
13306 'Validate_Vendor_Site') <> TRUE) THEN
13307 --
13308 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
13309 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
13310 l_api_name,'Parameters: '
13311 ||' Vendor_Site_Interface_Id: '
13312 ||p_vendor_site_rec.vendor_site_interface_id
13313 ||' ,Supplier_Notif_Method: '
13314 ||p_vendor_site_rec.supplier_notif_method);
13315 END IF;
13316 END IF;
13317 ELSE
13318 -- Bug 5491139 hkaniven start --
13319 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_NOTIF_METHOD');
13320 FND_MSG_PUB.ADD;
13321 -- Bug 5491139 hkaniven end --
13322 -- Bug 8438716 Start
13323 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
13324 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
13325 l_api_name,'Call after Check_Valid_Sup_Notif_Method()... Parameters: '
13326 ||' Vendor_Site_Interface_Id: '
13327 ||p_vendor_site_rec.vendor_site_interface_id
13328 ||' ,Supplier_Notif_Method: '
13329 ||p_vendor_site_rec.supplier_notif_method);
13330 END IF;
13331 -- Bug 8438716 End
13332 END IF;
13333 END IF;
13334 END IF;
13335
13336 -- Bug 8422781 ...
13337 ------------------------------------------------------------------------
13338 l_debug_info := 'Call to Validate remit_advice_delivery_method';
13339 ------------------------------------------------------------------------
13340 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
13341 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
13342 l_api_name,l_debug_info);
13343 END IF;
13344 --
13345 -- Validate remit_advice_delivery_method
13346 --
13347 IF p_vendor_site_rec.remit_advice_delivery_method is NOT NULL THEN
13348
13349 Check_Valid_Remit_Adv_Del_Mthd(p_vendor_site_rec.remit_advice_delivery_method,
13350 x_valid
13351 );
13352 IF NOT x_valid THEN
13353 x_return_status := FND_API.G_RET_STS_ERROR;
13354 IF g_source = 'IMPORT' THEN
13355 IF (Insert_Rejections(
13356 'AP_SUPPLIER_SITES_INT',
13357 p_vendor_site_rec.vendor_site_interface_id,
13358 'AP_REMIT_ADVICE_FLAG_INVALID',
13359 g_user_id,
13360 g_login_id,
13361 'Validate_Vendor_Site') <> TRUE) THEN
13362 --
13363 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
13364 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
13365 l_api_name,'Parameters: '
13366 ||' Vendor_Site_Interface_Id: '
13367 ||p_vendor_site_rec.vendor_site_interface_id
13368 ||' ,Remit_Advice_Delivery_Method: '
13369 ||p_vendor_site_rec.remit_advice_delivery_method);
13370 END IF;
13371 END IF;
13372 ELSE
13373 -- Bug 5491139 hkaniven start --
13374 FND_MESSAGE.SET_NAME('SQLAP','AP_REMIT_ADVICE_FLAG_INVALID');
13375 FND_MSG_PUB.ADD;
13376 -- Bug 5491139 hkaniven end --
13377 -- Bug 8438716 Start
13378 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
13379 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
13380 l_api_name,'Call after Check_Valid_Remit_Adv_Del_Mthd()... Parameters: '
13381 ||' Vendor_Site_Interface_Id: '
13382 ||p_vendor_site_rec.vendor_site_interface_id
13383 ||' ,Supplier_Notif_Method: '
13384 ||p_vendor_site_rec.supplier_notif_method);
13385 END IF;
13386 -- Bug 8438716 End
13387 END IF;
13388 END IF;
13389 END IF;
13390 -- end Bug 8422781
13391
13392 ------------------------------------------------------------------------
13393 l_debug_info := 'Checking Tolerance_Id / Name information';
13394 ------------------------------------------------------------------------
13395 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
13396 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
13397 l_api_name,l_debug_info);
13398 END IF;
13399 --bug6335105
13400 /*IF (p_vendor_site_rec.tolerance_name is NOT NULL
13401 OR p_vendor_site_rec.tolerance_id is NOT NULL) THEN*/
13402
13403 l_tolerance_type := 'QUANTITY';
13404
13405 Check_tolerance_id_code(p_vendor_site_rec.tolerance_id,
13406 p_vendor_site_rec.tolerance_name,
13407 p_vendor_site_rec.org_id,
13408 p_vendor_site_rec.org_name,
13409 x_valid,
13410 l_tolerance_type
13411 );
13412 IF NOT x_valid THEN
13413 x_return_status := FND_API.G_RET_STS_ERROR;
13414 IF g_source = 'IMPORT' THEN
13415 IF (Insert_Rejections(
13416 'AP_SUPPLIER_SITES_INT',
13417 p_vendor_site_rec.vendor_site_interface_id,
13418 'AP_INCONSISTENT_TOLERANCE',
13419 g_user_id,
13420 g_login_id,
13421 'Validate_Vendor_Site') <> TRUE) THEN
13422 --
13423 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
13424 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
13425 l_api_name,'Parameters: '
13426 ||' Vendor_Site_Interface_Id: '
13427 ||p_vendor_site_rec.vendor_site_interface_id
13428 ||' ,Toleranace_Id: '
13429 ||p_vendor_site_rec.tolerance_id
13430 ||' ,Tolerance_Name: '||p_vendor_site_rec.tolerance_name);
13431 END IF;
13432 END IF;
13433 ELSE
13434 -- Bug 5491139 hkaniven start --
13435 FND_MESSAGE.SET_NAME('SQLAP','AP_INCONSISTENT_TOLERANCE');
13436 FND_MSG_PUB.ADD;
13437 -- Bug 5491139 hkaniven end --
13438 -- Bug 8438716 Start
13439 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
13440 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
13441 l_api_name,'Call after Check_tolerance_id_code()... Parameters: '
13442 ||' Vendor_Site_Interface_Id: '
13443 ||p_vendor_site_rec.vendor_site_interface_id
13444 ||' ,Toleranace_Id: '
13445 ||p_vendor_site_rec.tolerance_id
13446 ||' ,Tolerance_Name: '||p_vendor_site_rec.tolerance_name);
13447 END IF;
13448 -- Bug 8438716 End
13449 END IF;
13450 END IF;
13451 --END IF;
13452
13453 ------------------------------------------------------------------------
13454 l_debug_info := 'Checking Services Tolerance_Id / Name information';
13455 ------------------------------------------------------------------------
13456 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
13457 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
13458 l_api_name,l_debug_info);
13459 END IF;
13460 --bug6335105
13461 /*IF (p_vendor_site_rec.services_tolerance_name is NOT NULL
13462 OR p_vendor_site_rec.services_tolerance_id is NOT NULL) THEN*/
13463
13464 l_tolerance_type := 'SERVICE';
13465
13466 Check_tolerance_id_code(p_vendor_site_rec.services_tolerance_id,
13467 p_vendor_site_rec.services_tolerance_name,
13468 p_vendor_site_rec.org_id,
13469 p_vendor_site_rec.org_name,
13470 x_valid,
13471 l_tolerance_type
13472 );
13473 IF NOT x_valid THEN
13474 x_return_status := FND_API.G_RET_STS_ERROR;
13475 IF g_source = 'IMPORT' THEN
13476 IF (Insert_Rejections(
13477 'AP_SUPPLIER_SITES_INT',
13478 p_vendor_site_rec.vendor_site_interface_id,
13479 'AP_INCONSIS_SERVICE_TOL', /*Bug11884093 */
13480 g_user_id,
13481 g_login_id,
13482 'Validate_Vendor_Site') <> TRUE) THEN
13483 --
13484 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
13485 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
13486 l_api_name,'Parameters: '
13487 ||' Vendor_Site_Interface_Id: '
13488 ||p_vendor_site_rec.vendor_site_interface_id
13489 ||' ,Toleranace_Id: '
13490 ||p_vendor_site_rec.services_tolerance_id
13491 ||' ,Tolerance_Name: '||p_vendor_site_rec.services_tolerance_name);
13492 END IF;
13493 END IF;
13494 ELSE
13495 -- Bug 5491139 hkaniven start --
13496 FND_MESSAGE.SET_NAME('SQLAP','AP_INCONSIS_SERVICE_TOL');
13497 FND_MSG_PUB.ADD;
13498 -- Bug 5491139 hkaniven end --
13499 -- Bug 8438716 Start
13500 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
13501 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
13502 l_api_name,'Call after Check_tolerance_id_code()... Parameters: '
13503 ||' Vendor_Site_Interface_Id: '
13504 ||p_vendor_site_rec.vendor_site_interface_id
13505 ||' ,Toleranace_Id: '
13506 ||p_vendor_site_rec.services_tolerance_id
13507 ||' ,Tolerance_Name: '||p_vendor_site_rec.services_tolerance_name);
13508 END IF;
13509 -- Bug 8438716 End
13510 END IF;
13511 END IF;
13512 --END IF;
13513
13514
13515 ------------------------------------------------------------------------
13516 l_debug_info := 'Call to Validate retainage_rate';
13517 ------------------------------------------------------------------------
13518 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
13519 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
13520 l_api_name,l_debug_info);
13521 END IF;
13522
13523 IF p_vendor_site_rec.retainage_rate is NOT NULL THEN
13524
13525 --bug12749991
13526 --IF NOT (p_vendor_site_rec.retainage_rate < 0 OR
13527 IF (p_vendor_site_rec.retainage_rate < 0 OR
13528 p_vendor_site_rec.retainage_rate > 100) THEN
13529
13530 x_return_status := FND_API.G_RET_STS_ERROR;
13531 IF g_source = 'IMPORT' THEN
13532 IF (Insert_Rejections(
13533 'AP_SUPPLIER_SITES_INT',
13534 p_vendor_site_rec.vendor_site_interface_id,
13535 'AP_INVALID_RETAINAGE_RATE',
13536 g_user_id,
13537 g_login_id,
13538 'Validate_Vendor_Site') <> TRUE) THEN
13539 --
13540 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
13541 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
13542 l_api_name,'Parameters: '
13543 ||' Vendor_Site_Interface_Id: '
13544 ||p_vendor_site_rec.vendor_site_interface_id
13545 ||' ,Retainage_Rate '
13546 ||p_vendor_site_rec.retainage_rate);
13547 END IF;
13548 END IF;
13549 ELSE
13550 -- Bug 5491139 hkaniven start --
13551 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_RETAINAGE_RATE');
13552 FND_MSG_PUB.ADD;
13553 -- Bug 5491139 hkaniven end --
13554 -- Bug 8438716 Start
13555 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
13556 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
13557 l_api_name,'Call after validating p_vendor_site_rec.retainage_rate... Parameters: '
13558 ||' Vendor_Site_Interface_Id: '
13559 ||p_vendor_site_rec.vendor_site_interface_id
13560 ||' ,Retainage_Rate '
13561 ||p_vendor_site_rec.retainage_rate);
13562 END IF;
13563 -- Bug 8438716 End
13564 END IF;
13565 END IF;
13566 END IF;
13567
13568 ------------------------------------------------------------------------
13569 l_debug_info := 'Call to Validate ship_via_lookup_code';
13570 ------------------------------------------------------------------------
13571 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
13572 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
13573 l_api_name,l_debug_info);
13574 END IF;
13575 --
13576 -- Validate ship_via_lookup_code
13577 --
13578 IF p_vendor_site_rec.ship_via_lookup_code is NOT NULL THEN
13579
13580 Check_Site_Ship_Via(p_vendor_site_rec.ship_via_lookup_code,
13581 p_vendor_site_rec.org_id,
13582 x_valid
13583 );
13584 IF NOT x_valid THEN
13585 x_return_status := FND_API.G_RET_STS_ERROR;
13586 IF g_source = 'IMPORT' THEN
13587 IF (Insert_Rejections(
13588 'AP_SUPPLIER_SITES_INT',
13589 p_vendor_site_rec.vendor_site_interface_id,
13590 'AP_INVALID_SHIP_VIA',
13591 g_user_id,
13592 g_login_id,
13593 'Validate_Vendor_Site') <> TRUE) THEN
13594 --
13595 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
13596 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
13597 l_api_name,'Parameters: '
13598 ||' Vendor_Site_Interface_Id: '
13599 ||p_vendor_site_rec.vendor_site_interface_id
13600 ||' ,Ship_Via_Lookup_Code: '
13601 ||p_vendor_site_rec.ship_via_lookup_code);
13602 END IF;
13603 END IF;
13604 ELSE
13605 -- Bug 5491139 hkaniven start --
13606 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_SHIP_VIA');
13607 FND_MSG_PUB.ADD;
13608 -- Bug 5491139 hkaniven end --
13609 -- Bug 8438716 Start
13610 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
13611 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
13612 l_api_name,'Call after Check_Site_Ship_Via()... Parameters: '
13613 ||' Vendor_Site_Interface_Id: '
13614 ||p_vendor_site_rec.vendor_site_interface_id
13615 ||' ,Ship_Via_Lookup_Code: '
13616 ||p_vendor_site_rec.ship_via_lookup_code);
13617 END IF;
13618 -- Bug 8438716 End
13619 END IF;
13620 END IF;
13621 END IF;
13622
13623 ------------------------------------------------------------------------
13624 l_debug_info := 'Call to Validate tax_reporting_site_flag';
13625 ------------------------------------------------------------------------
13626 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
13627 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
13628 l_api_name,l_debug_info);
13629 END IF;
13630 --
13631 -- Validate tax_reporting_site_flag
13632 --
13633 IF p_vendor_site_rec.tax_reporting_site_flag = 'Y' THEN
13634
13635 Validate_unique_per_vendor('TAX_REPORTING_SITE_FLAG',
13636 p_vendor_site_rec.vendor_id,
13637 p_vendor_site_rec.vendor_site_id,
13638 p_vendor_site_rec.org_id,
13639 p_vendor_site_rec.org_name,
13640 x_valid
13641 );
13642 IF NOT x_valid THEN
13643 x_return_status := FND_API.G_RET_STS_ERROR;
13644 IF g_source = 'IMPORT' THEN
13645 IF (Insert_Rejections(
13646 'AP_SUPPLIER_SITES_INT',
13647 p_vendor_site_rec.vendor_site_interface_id,
13648 'AP_DUPLICATE_TAX_RS',
13649 g_user_id,
13650 g_login_id,
13651 'Validate_Vendor_Site') <> TRUE) THEN
13652 --
13653 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
13654 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
13655 l_api_name,'Parameters: '
13656 ||' Vendor_Site_Interface_Id: '
13657 ||p_vendor_site_rec.vendor_site_interface_id
13658 ||' Vendor_Id: '||p_vendor_site_rec.vendor_id
13659 ||' Vendor_Site_Id: '||p_vendor_site_rec.vendor_site_id
13660 ||' Org_Id: '||p_vendor_site_rec.org_id
13661 ||' Org_Name: '||p_vendor_site_rec.org_name
13662 ||' ,Tax_Reporting_Site_Flag: '
13663 ||p_vendor_site_rec.tax_reporting_site_flag);
13664 END IF;
13665 END IF;
13666 ELSE
13667 -- Bug 5491139 hkaniven start --
13668 FND_MESSAGE.SET_NAME('SQLAP','AP_DUPLICATE_TAX_RS');
13669 FND_MSG_PUB.ADD;
13670 -- Bug 5491139 hkaniven end --
13671 -- Bug 8438716 Start
13672 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
13673 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
13674 l_api_name,'Call after validating p_vendor_site_rec.tax_reporting_site_flag... Parameters: '
13675 ||' Vendor_Site_Interface_Id: '
13676 ||p_vendor_site_rec.vendor_site_interface_id
13677 ||' Vendor_Id: '||p_vendor_site_rec.vendor_id
13678 ||' Vendor_Site_Id: '||p_vendor_site_rec.vendor_site_id
13679 ||' Org_Id: '||p_vendor_site_rec.org_id
13680 ||' Org_Name: '||p_vendor_site_rec.org_name
13681 ||' ,Tax_Reporting_Site_Flag: '
13682 ||p_vendor_site_rec.tax_reporting_site_flag);
13683 END IF;
13684 -- Bug 8438716 End
13685 END IF;
13686 END IF;
13687 END IF;
13688
13689 IF p_vendor_site_rec.gapless_inv_num_flag is NOT NULL
13690 AND p_vendor_site_rec.gapless_inv_num_flag <>
13691 ap_null_char THEN
13692
13693 Check_Gapless_Inv_Num
13694 (p_vendor_site_rec.gapless_inv_num_flag,
13695 p_vendor_site_rec.selling_company_identifier,
13696 p_vendor_site_rec.vendor_id,--Bug5260465
13697 x_valid);
13698
13699 IF NOT x_valid THEN
13700 x_return_status := FND_API.G_RET_STS_ERROR;
13701 IF g_source = 'IMPORT' THEN
13702 IF (Insert_Rejections(
13703 'AP_SUPPLIER_SITES_INT',
13704 p_vendor_site_rec.vendor_site_interface_id,
13705 'AP_INVALID_SHIPPING_CONTROL',
13706 g_user_id,
13707 g_login_id,
13708 'Validate_Vendor_Site') <> TRUE) THEN
13709 --
13710 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL)
13711 THEN
13712 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
13713 l_api_name,'Parameters: '
13714 ||' Vendor_Site_Interface_Id: '
13715 ||p_vendor_site_rec.vendor_site_interface_id
13716 ||' Gapless Invoice Num Flag: '
13717 ||p_vendor_site_rec.gapless_inv_num_flag
13718 ||' Selling Company Identifier: '
13719 ||p_vendor_site_rec.selling_company_identifier);
13720 END IF;
13721 END IF;
13722 ELSE
13723 -- Bug 5491139 hkaniven start --
13724 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_SHIPPING_CONTROL');
13725 FND_MSG_PUB.ADD;
13726 -- Bug 5491139 hkaniven end --
13727 -- Bug 8438716 Start
13728 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL)
13729 THEN
13730 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
13731 l_api_name,'Call after Check_Gapless_Inv_Num()... Parameters: '
13732 ||' Vendor_Site_Interface_Id: '
13733 ||p_vendor_site_rec.vendor_site_interface_id
13734 ||' Gapless Invoice Num Flag: '
13735 ||p_vendor_site_rec.gapless_inv_num_flag
13736 ||' Selling Company Identifier: '
13737 ||p_vendor_site_rec.selling_company_identifier);
13738 END IF;
13739 -- Bug 8438716 End
13740 END IF;
13741 END IF;
13742 END IF;
13743
13744
13745 END IF; -- not ISETUP
13746 END IF; --p_mode
13747
13748 -- End of API body.
13749
13750 -- Standard check of p_commit.
13751 IF FND_API.To_Boolean( p_commit ) THEN
13752 COMMIT WORK;
13753 END IF;
13754
13755 -- Standard call to get message count and if count is 1,
13756 -- get message info.
13757 FND_MSG_PUB.Count_And_Get(
13758 p_count => x_msg_count ,
13759 p_data => x_msg_data
13760 );
13761
13762 EXCEPTION
13763 WHEN FND_API.G_EXC_ERROR THEN
13764 ROLLBACK TO Validate_Vendor_Site_PUB;
13765 x_return_status := FND_API.G_RET_STS_ERROR ;
13766 FND_MSG_PUB.Count_And_Get
13767 ( p_count => x_msg_count,
13768 p_data => x_msg_data
13769 );
13770 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
13771 ROLLBACK TO Validate_Vendor_Site_PUB;
13772 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
13773 FND_MSG_PUB.Count_And_Get
13774 ( p_count => x_msg_count,
13775 p_data => x_msg_data
13776 );
13777 WHEN OTHERS THEN
13778 ROLLBACK TO Validate_Vendor_Site_PUB;
13779 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
13780 IF FND_MSG_PUB.Check_Msg_Level
13781 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
13782 FND_MSG_PUB.Add_Exc_Msg
13783 ( G_PKG_NAME ,
13784 l_api_name
13785 );
13786 END IF;
13787 FND_MSG_PUB.Count_And_Get
13788 ( p_count => x_msg_count,
13789 p_data => x_msg_data
13790 );
13791 END Validate_Vendor_Site;
13792
13793 PROCEDURE Create_Vendor_Contact
13794 ( p_api_version IN NUMBER,
13795 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
13796 p_commit IN VARCHAR2 := FND_API.G_FALSE,
13797 p_validation_level IN NUMBER :=
13798 FND_API.G_VALID_LEVEL_FULL,
13799 x_return_status OUT NOCOPY VARCHAR2 ,
13800 x_msg_count OUT NOCOPY NUMBER,
13801 x_msg_data OUT NOCOPY VARCHAR2,
13802 p_vendor_contact_rec IN r_vendor_contact_rec_type,
13803 x_vendor_contact_id OUT NOCOPY NUMBER,
13804 x_per_party_id OUT NOCOPY NUMBER,
13805 x_rel_party_id OUT NOCOPY NUMBER,
13806 x_rel_id OUT NOCOPY NUMBER,
13807 x_org_contact_id OUT NOCOPY NUMBER,
13808 x_party_site_id OUT NOCOPY NUMBER
13809 )
13810 IS
13811
13812
13813 l_api_name CONSTANT VARCHAR2(30) := 'Create_Vendor_Contact';
13814 l_api_version CONSTANT NUMBER := 1.0;
13815
13816 l_def_org_id NUMBER;
13817 l_vendor_contact_rec r_vendor_contact_rec_type;
13818 l_party_rec HZ_PARTY_V2PUB.party_rec_type;
13819 l_per_rec HZ_PARTY_V2PUB.person_rec_type;
13820 l_rel_rec HZ_RELATIONSHIP_V2PUB.relationship_rec_type;
13821 l_org_contact_rec HZ_PARTY_CONTACT_V2PUB.org_contact_rec_type;
13822 l_party_site_rec HZ_PARTY_SITE_V2PUB.party_site_rec_type;
13823 l_contact_point_rec HZ_CONTACT_POINT_V2PUB.contact_point_rec_type;
13824 l_email_rec HZ_CONTACT_POINT_V2PUB.email_rec_type;
13825 l_phone_rec HZ_CONTACT_POINT_V2PUB.phone_rec_type;
13826 l_alt_phone_rec HZ_CONTACT_POINT_V2PUB.phone_rec_type;
13827 l_fax_rec HZ_CONTACT_POINT_V2PUB.phone_rec_type;
13828 l_url_rec HZ_CONTACT_POINT_V2PUB.web_rec_type;
13829 l_party_usg_rec HZ_PARTY_USG_ASSIGNMENT_PVT.party_usg_assignment_rec_type;
13830
13831 l_user_id number := FND_GLOBAL.USER_ID;
13832 l_last_update_login number := FND_GLOBAL.LOGIN_ID;
13833 l_program_application_id number := FND_GLOBAL.prog_appl_id;
13834 l_program_id number := FND_GLOBAL.conc_program_id;
13835 l_request_id number := FND_GLOBAL.conc_request_id;
13836
13837 l_val_return_status VARCHAR2(50);
13838 l_val_msg_count NUMBER;
13839 l_val_msg_data VARCHAR2(1000);
13840 l_party_site_valid VARCHAR2(1);
13841 l_rel_party_valid VARCHAR2(1);
13842 l_per_party_valid VARCHAR2(1);
13843 l_rel_valid VARCHAR2(1);
13844 l_org_party_valid VARCHAR2(1);
13845 l_location_valid VARCHAR2(1);
13846 l_org_contact_valid VARCHAR2(1);
13847 l_per_return_status VARCHAR2(50);
13848 l_per_msg_count NUMBER;
13849 l_per_msg_data VARCHAR2(1000);
13850 l_per_party_id NUMBER;
13851 l_per_party_number VARCHAR2(30);
13852 l_per_profile_id NUMBER;
13853 l_org_contact_return_status VARCHAR2(50);
13854 l_org_contact_msg_count NUMBER;
13855 l_org_contact_msg_data VARCHAR2(1000);
13856 l_org_contact_id NUMBER;
13857 l_rel_party_id NUMBER;
13858 l_rel_party_number VARCHAR2(30);
13859 l_site_return_status VARCHAR2(50);
13860 l_site_msg_count NUMBER;
13861 l_site_msg_data VARCHAR2(1000);
13862 l_party_site_id NUMBER;
13863 l_phone_return_status VARCHAR2(50);
13864 l_phone_msg_count NUMBER;
13865 l_phone_msg_data VARCHAR2(1000);
13866 l_phone_contact_point_id NUMBER;
13867 l_alt_phone_return_status VARCHAR2(50);
13868 l_alt_phone_msg_count NUMBER;
13869 l_alt_phone_msg_data VARCHAR2(1000);
13870 l_alt_phone_contact_point_id NUMBER;
13871 l_fax_return_status VARCHAR2(50);
13872 l_fax_msg_count NUMBER;
13873 l_fax_msg_data VARCHAR2(1000);
13874 l_fax_contact_point_id NUMBER;
13875 l_email_return_status VARCHAR2(50);
13876 l_email_msg_count NUMBER;
13877 l_email_msg_data VARCHAR2(1000);
13878 l_email_contact_point_id NUMBER;
13879 l_url_return_status VARCHAR2(50);
13880 l_url_msg_count NUMBER;
13881 l_url_msg_data VARCHAR2(1000);
13882 l_url_contact_point_id NUMBER;
13883
13884 l_org_party_id NUMBER;
13885 l_location_id NUMBER;
13886 l_rel_id NUMBER;
13887 l_party_id NUMBER;
13888 l_party_number VARCHAR2(30);
13889 l_party_site_number VARCHAR2(30);
13890 l_party_num VARCHAR2(1);
13891 l_debug_info VARCHAR2(500); -- Bug 6823885
13892 l_party_site_num VARCHAR2(1); -- Bug 6823885
13893
13894 BEGIN
13895 -- Standard Start of API savepoint
13896 SAVEPOINT Create_Vendor_Contact_PUB;
13897
13898 -- Standard call to check for call compatibility.
13899 IF NOT FND_API.Compatible_API_Call ( l_api_version ,
13900 p_api_version ,
13901 l_api_name ,
13902 G_PKG_NAME )
13903 THEN
13904 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
13905 END IF;
13906
13907 -- Initialize message list if p_init_msg_list is set to TRUE.
13908 IF FND_API.to_Boolean( p_init_msg_list ) THEN
13909 FND_MSG_PUB.initialize;
13910 END IF;
13911
13912 -- Initialize API return status to success
13913 x_return_status := FND_API.G_RET_STS_SUCCESS;
13914
13915 -- API body
13916
13917 --default return stati
13918 l_val_return_status := FND_API.G_RET_STS_SUCCESS;
13919 l_per_return_status := FND_API.G_RET_STS_SUCCESS;
13920 l_org_contact_return_status := FND_API.G_RET_STS_SUCCESS;
13921 l_site_return_status := FND_API.G_RET_STS_SUCCESS;
13922 l_phone_return_status := FND_API.G_RET_STS_SUCCESS;
13923 l_alt_phone_return_status := FND_API.G_RET_STS_SUCCESS;
13924 l_fax_return_status := FND_API.G_RET_STS_SUCCESS;
13925 l_email_return_status := FND_API.G_RET_STS_SUCCESS;
13926 l_url_return_status := FND_API.G_RET_STS_SUCCESS;
13927
13928 l_vendor_contact_rec := p_vendor_contact_rec;
13929 validate_vendor_contact(p_api_version => 1.0,
13930 p_init_msg_list => FND_API.G_FALSE,
13931 p_commit => FND_API.G_FALSE,
13932 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
13933 x_return_status => l_val_return_status,
13934 x_msg_count => l_val_msg_count,
13935 x_msg_data => l_val_msg_data,
13936 p_vendor_contact_rec => l_vendor_contact_rec,
13937 x_party_site_valid => l_party_site_valid ,
13938 x_rel_party_valid => l_rel_party_valid,
13939 x_per_party_valid => l_per_party_valid,
13940 x_rel_valid => l_rel_valid,
13941 x_org_contact_valid => l_org_contact_valid,
13942 x_org_party_id => l_org_party_id,
13943 x_location_id => l_location_id);
13944
13945 IF (l_val_msg_count = 0 AND l_val_return_status = FND_API.G_RET_STS_SUCCESS) THEN /* Bug 12590128 */
13946 IF l_per_party_valid = 'N' THEN
13947 -- create new party record
13948
13949 l_per_rec.person_first_name := l_vendor_contact_rec.person_first_name;
13950 l_per_rec.person_middle_name := l_vendor_contact_rec.person_middle_name;
13951 l_per_rec.person_last_name := l_vendor_contact_rec.person_last_name;
13952 l_per_rec.person_title := l_vendor_contact_rec.person_title;
13953 l_per_rec.person_first_name_phonetic := l_vendor_contact_rec.person_first_name_phonetic;
13954 l_per_rec.person_last_name_phonetic := l_vendor_contact_rec.person_last_name_phonetic;
13955 l_per_rec.created_by_module := 'AP_SUPPLIERS_API';
13956 l_per_rec.application_id := 200;
13957
13958 -- bug 6745669 - added attribute_category
13959 l_per_rec.attribute_category := l_vendor_contact_rec.attribute_category;
13960
13961 l_per_rec.attribute1 := l_vendor_contact_rec.attribute1;
13962 l_per_rec.attribute2 := l_vendor_contact_rec.attribute2;
13963 l_per_rec.attribute3 := l_vendor_contact_rec.attribute3;
13964 l_per_rec.attribute4 := l_vendor_contact_rec.attribute4;
13965 l_per_rec.attribute5 := l_vendor_contact_rec.attribute5;
13966 l_per_rec.attribute6 := l_vendor_contact_rec.attribute6;
13967 l_per_rec.attribute7 := l_vendor_contact_rec.attribute7;
13968 l_per_rec.attribute8 := l_vendor_contact_rec.attribute8;
13969 l_per_rec.attribute9 := l_vendor_contact_rec.attribute9;
13970 l_per_rec.attribute10 := l_vendor_contact_rec.attribute10;
13971 l_per_rec.attribute11 := l_vendor_contact_rec.attribute11;
13972 l_per_rec.attribute12 := l_vendor_contact_rec.attribute12;
13973 l_per_rec.attribute13 := l_vendor_contact_rec.attribute13;
13974 l_per_rec.attribute14 := l_vendor_contact_rec.attribute14;
13975 l_per_rec.attribute15 := l_vendor_contact_rec.attribute15;
13976
13977 l_per_rec.person_pre_name_adjunct := l_vendor_contact_rec.prefix;
13978
13979 --bug 13339733
13980 --l_per_rec.person_name_phonetic := l_vendor_contact_rec.contact_name_phonetic;
13981 l_per_rec.known_as := l_vendor_contact_rec.contact_name_phonetic;
13982
13983 fnd_profile.get('HZ_GENERATE_PARTY_NUMBER', l_party_num);
13984 IF nvl(l_party_num, 'Y') = 'N' THEN
13985 SELECT HZ_PARTY_NUMBER_S.Nextval
13986 INTO l_party_rec.party_number
13987 FROM DUAL;
13988 END IF;
13989
13990 l_per_rec.party_rec := l_party_rec;
13991 hz_party_v2pub.create_person(
13992 p_init_msg_list => FND_API.G_FALSE,
13993 p_person_rec => l_per_rec,
13994 p_party_usage_code => 'SUPPLIER_CONTACT',
13995 --p_commit => FND_API.G_FALSE,
13996 x_return_status => l_per_return_status,
13997 x_msg_count => l_per_msg_count,
13998 x_msg_data => l_per_msg_data,
13999 x_party_id => l_per_party_id,
14000 x_party_number => l_per_party_number,
14001 x_profile_id => l_per_profile_id);
14002
14003 IF l_per_return_status <> FND_API.G_RET_STS_SUCCESS THEN
14004 ------------------------------------------------------------------------
14005 l_debug_info := 'After call to hz_party_v2pub.create_person';
14006 l_debug_info := l_debug_info||' Return status : '||l_per_return_status||' Error : '||l_per_msg_data;
14007 ------------------------------------------------------------------------
14008 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
14009 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
14010 END IF;
14011 -- Bug 6886893: Start
14012 IF g_source = 'IMPORT' THEN
14013
14014 IF ( NVL(l_per_msg_count, 0) > 1 ) THEN
14015 FOR i IN 1..l_per_msg_count
14016 LOOP
14017 -- built the complete message with new line separator if
14018 -- called API returns message count > 1
14019 x_msg_data := x_msg_data||FND_MSG_PUB.Get(p_msg_index => i, p_encoded => 'T') ||' ';
14020 --delete the message stack for the index
14021 --already fetched
14022 FND_MSG_PUB.DELETE_MSG(p_msg_index => i);
14023 END LOOP;
14024 ELSIF (l_per_msg_data is not null) THEN
14025 x_msg_data := x_msg_data||l_per_msg_data;
14026 END IF;
14027
14028 IF (AP_IMPORT_INVOICES_PKG.g_debug_switch = 'Y') THEN
14029 AP_IMPORT_UTILITIES_PKG.Print(AP_IMPORT_INVOICES_PKG.g_debug_switch,x_msg_data);
14030 END IF;
14031
14032 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
14033 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,x_msg_data);
14034 END IF;
14035
14036 IF (Insert_Rejections(
14037 p_parent_table => 'AP_SUP_SITE_CONTACT_INT',
14038 p_parent_id => p_vendor_contact_rec.vendor_contact_interface_id,
14039 p_reject_code => 'AP_CREATE_PERSON_ERROR',
14040 p_last_updated_by => g_user_id,
14041 p_last_update_login => g_login_id,
14042 p_calling_sequence => 'hz_party_v2pub.create_person'
14043 ) <> TRUE) THEN
14044
14045 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
14046 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
14047 l_api_name,'Error logging into Rejections table');
14048 END IF;
14049 END IF;
14050 ELSE
14051 fnd_message.set_name('SQLAP', 'AP_CREATE_PERSON_ERROR');
14052 fnd_msg_pub.add;
14053 END IF;
14054 -- Bug 6886893: End
14055
14056 END IF;
14057
14058 l_vendor_contact_rec.per_party_id := l_per_party_id;
14059
14060 END IF; --party did not exist
14061
14062 IF l_rel_party_valid = 'N' AND
14063 l_per_party_valid <> 'F' AND
14064 l_rel_valid = 'N' AND
14065 l_org_contact_valid = 'N' THEN -- create new org contact
14066
14067 /*checking proper approach
14068 l_party_usg_rec.party_id := l_per_party_id;
14069 l_party_usg_rec.party_usage_code := 'ORG_CONTACT';
14070 l_party_usg_rec.created_by_module := 'AP_SUPPLIERS_API';
14071
14072 HZ_PARTY_USG_ASSIGNMENT_PVT.assign_party_usage(
14073 p_init_msg_list => FND_API.G_FALSE,
14074 p_party_usg_assignment_rec => l_party_usg_rec,
14075 x_return_status => l_per_return_status,
14076 x_msg_count => l_per_msg_count,
14077 x_msg_data => l_per_msg_data);
14078 */
14079
14080 --populate relationship record
14081
14082 l_rel_rec.end_date := l_vendor_contact_rec.inactive_date;
14083 l_rel_rec.subject_id := l_per_party_id;
14084 l_rel_rec.subject_type := 'PERSON';
14085 l_rel_rec.subject_table_name := 'HZ_PARTIES';
14086 l_rel_rec.object_id := l_org_party_id;
14087 l_rel_rec.object_type := 'ORGANIZATION';
14088 l_rel_rec.object_table_name := 'HZ_PARTIES';
14089 l_rel_rec.relationship_code := 'CONTACT_OF';
14090 l_rel_rec.relationship_type := 'CONTACT';
14091 l_rel_rec.start_date := sysdate;
14092 l_rel_rec.created_by_module := 'AP_SUPPLIERS_API';
14093 l_rel_rec.application_id := 200;
14094
14095 fnd_profile.get('HZ_GENERATE_PARTY_NUMBER', l_party_num);
14096 IF nvl(l_party_num, 'Y') = 'N' THEN
14097 SELECT HZ_PARTY_NUMBER_S.Nextval
14098 INTO l_party_rec.party_number
14099 FROM DUAL;
14100 END IF;
14101
14102 l_rel_rec.party_rec := l_party_rec;
14103
14104 --populate org contact record
14105 l_org_contact_rec.department := l_vendor_contact_rec.department;
14106 -- job title [Bug 6648967]
14107 l_org_contact_rec.job_title := l_vendor_contact_rec.person_title;
14108 --contact_number
14109 l_org_contact_rec.created_by_module := 'AP_SUPPLIERS_API';
14110 l_org_contact_rec.application_id := 200;
14111 l_org_contact_rec.party_rel_rec := l_rel_rec;
14112
14113 hz_party_contact_v2pub.create_org_contact(
14114 p_init_msg_list => FND_API.G_FALSE,
14115 p_org_contact_rec => l_org_contact_rec,
14116 --p_commit => FND_API.G_FALSE,
14117 x_return_status => l_org_contact_return_status,
14118 x_msg_count => l_org_contact_msg_count,
14119 x_msg_data => l_org_contact_msg_data,
14120 x_org_contact_id => l_org_contact_id,
14121 x_party_rel_id => l_rel_id,
14122 x_party_id => l_rel_party_id,
14123 x_party_number => l_rel_party_number);
14124
14125 IF l_org_contact_return_status <> FND_API.G_RET_STS_SUCCESS THEN
14126 ------------------------------------------------------------------------
14127 l_debug_info := 'After call to hz_party_contact_v2pub.create_org_contact';
14128 l_debug_info := l_debug_info||' Return status : '||l_org_contact_return_status||' Error : '||l_org_contact_msg_data;
14129 ------------------------------------------------------------------------
14130 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
14131 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
14132 END IF;
14133 -- Bug 6886893: Start
14134 IF g_source = 'IMPORT' THEN
14135
14136 IF ( NVL(l_per_msg_count, 0) > 1 ) THEN
14137 FOR i IN 1..l_per_msg_count
14138 LOOP
14139 -- built the complete message with new line separator if
14140 -- called API returns message count > 1
14141 x_msg_data := x_msg_data||FND_MSG_PUB.Get(p_msg_index => i, p_encoded => 'T') ||' ';
14142 --delete the message stack for the index
14143 --already fetched
14144 FND_MSG_PUB.DELETE_MSG(p_msg_index => i);
14145 END LOOP;
14146 ELSIF (l_per_msg_data is not null) THEN
14147 x_msg_data := x_msg_data||l_per_msg_data;
14148 END IF;
14149
14150 IF (AP_IMPORT_INVOICES_PKG.g_debug_switch = 'Y') THEN
14151 AP_IMPORT_UTILITIES_PKG.Print(AP_IMPORT_INVOICES_PKG.g_debug_switch,x_msg_data);
14152 END IF;
14153
14154 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
14155 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,x_msg_data);
14156 END IF;
14157
14158 IF (Insert_Rejections(
14159 p_parent_table => 'AP_SUP_SITE_CONTACT_INT',
14160 p_parent_id => p_vendor_contact_rec.vendor_contact_interface_id,
14161 p_reject_code => 'AP_CREATE_CONTACT_ERROR',
14162 p_last_updated_by => g_user_id,
14163 p_last_update_login => g_login_id,
14164 p_calling_sequence => 'hz_party_v2pub.create_org_contact'
14165 ) <> TRUE) THEN
14166
14167 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
14168 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
14169 l_api_name,'Error logging into Rejections table');
14170 END IF;
14171 END IF;
14172 ELSE
14173 fnd_message.set_name('SQLAP', 'AP_CREATE_CONTACT_ERROR');
14174 fnd_msg_pub.add;
14175 END IF;
14176 -- Bug 6886893: End
14177
14178 END IF;
14179
14180 l_vendor_contact_rec.relationship_id := l_rel_id;
14181 l_vendor_contact_rec.rel_party_id := l_rel_party_id;
14182 l_vendor_contact_rec.org_contact_id := l_org_contact_id;
14183
14184 END IF; -- org contact null
14185
14186 IF l_rel_party_valid <> 'F' AND
14187 l_per_party_valid <> 'F' AND
14188 l_rel_valid <> 'F' AND
14189 l_org_contact_valid <> 'F' AND
14190 l_party_site_valid = 'N' THEN -- create new party site
14191
14192 --populate party site record
14193 l_party_site_rec.mailstop := l_vendor_contact_rec.mail_stop;
14194 l_party_site_rec.location_id := l_location_id;
14195 l_party_site_rec.created_by_module := 'AP_SUPPLIERS_API';
14196 l_party_site_rec.application_id := 200;
14197 l_party_site_rec.party_id := l_vendor_contact_rec.rel_party_id;
14198 -- udhenuko Bug 6823885 start. Party site number populated based on profile.
14199 fnd_profile.get('HZ_GENERATE_PARTY_SITE_NUMBER', l_party_site_num);
14200 IF nvl(l_party_site_num, 'Y') = 'N' THEN
14201 SELECT HZ_PARTY_SITE_NUMBER_S.Nextval
14202 INTO l_party_site_rec.party_site_number
14203 FROM DUAL;
14204 END IF;
14205 -- udhenuko Bug 6823885 End
14206
14207 hz_party_site_v2pub.create_party_site(
14208 p_init_msg_list => FND_API.G_FALSE,
14209 p_party_site_rec => l_party_site_rec,
14210 --p_commit => FND_API.G_FALSE,
14211 x_return_status => l_site_return_status,
14212 x_msg_count => l_site_msg_count,
14213 x_msg_data => l_site_msg_data,
14214 x_party_site_id => l_party_site_id,
14215 x_party_site_number => l_party_site_number);
14216
14217 IF l_site_return_status <> FND_API.G_RET_STS_SUCCESS THEN
14218 ------------------------------------------------------------------------
14219 l_debug_info := 'After call to hz_party_site_v2pub.create_party_site';
14220 l_debug_info := l_debug_info||' Return status : '||l_site_return_status||' Error : '||l_site_msg_data;
14221 ------------------------------------------------------------------------
14222 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
14223 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
14224 END IF;
14225
14226 -- Bug 6886893: Start
14227 IF g_source = 'IMPORT' THEN
14228
14229 IF ( NVL(l_per_msg_count, 0) > 1 ) THEN
14230 FOR i IN 1..l_per_msg_count
14231 LOOP
14232 -- built the complete message with new line separator if
14233 -- called API returns message count > 1
14234 x_msg_data := x_msg_data||FND_MSG_PUB.Get(p_msg_index => i, p_encoded => 'T') ||' ';
14235 --delete the message stack for the index
14236 --already fetched
14237 FND_MSG_PUB.DELETE_MSG(p_msg_index => i);
14238 END LOOP;
14239 ELSIF (l_per_msg_data is not null) THEN
14240 x_msg_data := x_msg_data||l_per_msg_data;
14241 END IF;
14242
14243 IF (AP_IMPORT_INVOICES_PKG.g_debug_switch = 'Y') THEN
14244 AP_IMPORT_UTILITIES_PKG.Print(AP_IMPORT_INVOICES_PKG.g_debug_switch,x_msg_data);
14245 END IF;
14246
14247 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
14248 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,x_msg_data);
14249 END IF;
14250
14251 IF (Insert_Rejections(
14252 p_parent_table => 'AP_SUP_SITE_CONTACT_INT',
14253 p_parent_id => p_vendor_contact_rec.vendor_contact_interface_id,
14254 p_reject_code => 'AP_ASSIGN_SITE_ERROR',
14255 p_last_updated_by => g_user_id,
14256 p_last_update_login => g_login_id,
14257 p_calling_sequence => 'hz_party_v2pub.create_party_site'
14258 ) <> TRUE) THEN
14259
14260 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
14261 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
14262 l_api_name,'Error logging into Rejections table');
14263 END IF;
14264 END IF;
14265 ELSE
14266 fnd_message.set_name('SQLAP', 'AP_ASSIGN_SITE_ERROR');
14267 fnd_msg_pub.add;
14268 END IF;
14269 -- Bug 6886893: End
14270
14271 END IF;
14272
14273 l_vendor_contact_rec.party_site_id := l_party_site_id;
14274
14275 END IF; -- party site null
14276
14277 IF l_rel_party_valid <> 'F' AND
14278 l_per_party_valid <> 'F' AND
14279 l_rel_valid <> 'F' AND
14280 l_org_contact_valid <> 'F' AND
14281 l_party_site_valid <> 'F' THEN -- create contact points
14282
14283 --populate contact point record
14284 l_contact_point_rec.owner_table_name := 'HZ_PARTIES';
14285 l_contact_point_rec.owner_table_id := l_vendor_contact_rec.rel_party_id;
14286 l_contact_point_rec.created_by_module := 'AP_SUPPLIERS_API';
14287 l_contact_point_rec.application_id := 200;
14288
14289 IF l_vendor_contact_rec.phone IS NOT NULL THEN
14290
14291 --populate primary phone record
14292
14293 l_contact_point_rec.contact_point_type := 'PHONE';
14294 l_contact_point_rec.primary_flag := 'Y';
14295 l_contact_point_rec.contact_point_purpose := 'BUSINESS';
14296 l_contact_point_rec.primary_by_purpose := 'Y';
14297 l_phone_rec.phone_area_code := l_vendor_contact_rec.area_code;
14298 l_phone_rec.phone_number := l_vendor_contact_rec.phone;
14299 --
14300 -- Bug 5117377
14301 -- Changed the phone line type to GEN.
14302 --
14303 l_phone_rec.phone_line_type := 'GEN';
14304
14305 hz_contact_point_v2pub.create_phone_contact_point(
14306 p_init_msg_list => FND_API.G_FALSE,
14307 p_contact_point_rec => l_contact_point_rec,
14308 p_phone_rec => l_phone_rec,
14309 --p_commit => FND_API.G_FALSE,
14310 x_return_status => l_phone_return_status,
14311 x_msg_count => l_phone_msg_count,
14312 x_msg_data => l_phone_msg_data,
14313 x_contact_point_id => l_phone_contact_point_id);
14314
14315 IF l_phone_return_status <> FND_API.G_RET_STS_SUCCESS THEN
14316 ------------------------------------------------------------------------
14317 l_debug_info := 'After call to hz_contact_point_v2pub.create_phone_contact_point Primary Phone';
14318 l_debug_info := l_debug_info||' Return status : '||l_phone_return_status||' Error : '||l_phone_msg_data;
14319 ------------------------------------------------------------------------
14320 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
14321 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
14322 END IF;
14323
14324 -- Bug 6886893: Start
14325 IF g_source = 'IMPORT' THEN
14326
14327 IF ( NVL(l_per_msg_count, 0) > 1 ) THEN
14328 FOR i IN 1..l_per_msg_count
14329 LOOP
14330 -- built the complete message with new line separator if
14331 -- called API returns message count > 1
14332 x_msg_data := x_msg_data||FND_MSG_PUB.Get(p_msg_index => i, p_encoded => 'T') ||' ';
14333 --delete the message stack for the index
14334 --already fetched
14335 FND_MSG_PUB.DELETE_MSG(p_msg_index => i);
14336 END LOOP;
14337 ELSIF (l_per_msg_data is not null) THEN
14338 x_msg_data := x_msg_data||l_per_msg_data;
14339 END IF;
14340
14341 IF (AP_IMPORT_INVOICES_PKG.g_debug_switch = 'Y') THEN
14342 AP_IMPORT_UTILITIES_PKG.Print(AP_IMPORT_INVOICES_PKG.g_debug_switch,x_msg_data);
14343 END IF;
14344
14345 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
14346 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,x_msg_data);
14347 END IF;
14348
14349 IF (Insert_Rejections(
14350 p_parent_table => 'AP_SUP_SITE_CONTACT_INT',
14351 p_parent_id => p_vendor_contact_rec.vendor_contact_interface_id,
14352 p_reject_code => 'AP_CREATE_PRIM_PHONE_ERROR',
14353 p_last_updated_by => g_user_id,
14354 p_last_update_login => g_login_id,
14355 p_calling_sequence => 'hz_party_v2pub.create_phone_contact_point'
14356 ) <> TRUE) THEN
14357
14358 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
14359 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
14360 l_api_name,'Error logging into Rejections table');
14361 END IF;
14362 END IF;
14363 ELSE
14364 fnd_message.set_name('SQLAP', 'AP_CREATE_PRIM_PHONE_ERROR');
14365 fnd_msg_pub.add;
14366 END IF;
14367 -- Bug 6886893: End
14368
14369 END IF;
14370
14371
14372 END IF; --primary phone
14373
14374 IF l_vendor_contact_rec.alt_phone IS NOT NULL THEN
14375
14376 --populate alt phone record
14377
14378 l_contact_point_rec.contact_point_type := 'PHONE';
14379 l_contact_point_rec.primary_flag := 'N';
14380 l_contact_point_rec.contact_point_purpose := 'BUSINESS';
14381 l_contact_point_rec.primary_by_purpose := 'N';
14382 l_alt_phone_rec.phone_area_code := l_vendor_contact_rec.alt_area_code;
14383 l_alt_phone_rec.phone_number := l_vendor_contact_rec.alt_phone;
14384 --
14385 -- Bug 5117377
14386 -- Changed the phone line type to GEN.
14387 --
14388 l_alt_phone_rec.phone_line_type := 'GEN';
14389
14390 hz_contact_point_v2pub.create_phone_contact_point(
14391 p_init_msg_list => FND_API.G_FALSE,
14392 p_contact_point_rec => l_contact_point_rec,
14393 p_phone_rec => l_alt_phone_rec,
14394 --p_commit => FND_API.G_FALSE,
14395 x_return_status => l_alt_phone_return_status,
14396 x_msg_count => l_alt_phone_msg_count,
14397 x_msg_data => l_alt_phone_msg_data,
14398 x_contact_point_id => l_alt_phone_contact_point_id);
14399
14400 IF l_alt_phone_return_status <> FND_API.G_RET_STS_SUCCESS THEN
14401 ------------------------------------------------------------------------
14402 l_debug_info := 'After call to hz_contact_point_v2pub.create_phone_contact_point Alt Phone';
14403 l_debug_info := l_debug_info||' Return status : '||l_alt_phone_return_status||' Error : '||l_alt_phone_msg_data;
14404 ------------------------------------------------------------------------
14405 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
14406 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
14407 END IF;
14408
14409 -- Bug 6886893: Start
14410 IF g_source = 'IMPORT' THEN
14411
14412 IF ( NVL(l_per_msg_count, 0) > 1 ) THEN
14413 FOR i IN 1..l_per_msg_count
14414 LOOP
14415 -- built the complete message with new line separator if
14416 -- called API returns message count > 1
14417 x_msg_data := x_msg_data||FND_MSG_PUB.Get(p_msg_index => i, p_encoded => 'T') ||' ';
14418 --delete the message stack for the index
14419 --already fetched
14420 FND_MSG_PUB.DELETE_MSG(p_msg_index => i);
14421 END LOOP;
14422 ELSIF (l_per_msg_data is not null) THEN
14423 x_msg_data := x_msg_data||l_per_msg_data;
14424 END IF;
14425
14426 IF (AP_IMPORT_INVOICES_PKG.g_debug_switch = 'Y') THEN
14427 AP_IMPORT_UTILITIES_PKG.Print(AP_IMPORT_INVOICES_PKG.g_debug_switch,x_msg_data);
14428 END IF;
14429
14430 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
14431 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,x_msg_data);
14432 END IF;
14433
14434 IF (Insert_Rejections(
14435 p_parent_table => 'AP_SUP_SITE_CONTACT_INT',
14436 p_parent_id => p_vendor_contact_rec.vendor_contact_interface_id,
14437 p_reject_code => 'AP_CREATE_ALT_PHONE_ERROR',
14438 p_last_updated_by => g_user_id,
14439 p_last_update_login => g_login_id,
14440 p_calling_sequence => 'hz_party_v2pub.create_phone_contact_point'
14441 ) <> TRUE) THEN
14442
14443 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
14444 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
14445 l_api_name,'Error logging into Rejections table');
14446 END IF;
14447 END IF;
14448 ELSE
14449 fnd_message.set_name('SQLAP', 'AP_CREATE_ALT_PHONE_ERROR');
14450 fnd_msg_pub.add;
14451 END IF;
14452 -- Bug 6886893: End
14453
14454 END IF;
14455
14456
14457 END IF; --alt phone
14458
14459 IF l_vendor_contact_rec.fax_phone IS NOT NULL THEN
14460
14461 --populate fax phone record
14462
14463 l_contact_point_rec.contact_point_type := 'PHONE';
14464 l_contact_point_rec.primary_flag := 'N';
14465 l_contact_point_rec.contact_point_purpose := 'BUSINESS';
14466 l_contact_point_rec.primary_by_purpose := 'N';
14467 l_fax_rec.phone_area_code := l_vendor_contact_rec.fax_area_code;
14468 l_fax_rec.phone_number := l_vendor_contact_rec.fax_phone;
14469 l_fax_rec.phone_line_type := 'FAX';
14470
14471 hz_contact_point_v2pub.create_phone_contact_point(
14472 p_init_msg_list => FND_API.G_FALSE,
14473 p_contact_point_rec => l_contact_point_rec,
14474 p_phone_rec => l_fax_rec,
14475 --p_commit => FND_API.G_FALSE,
14476 x_return_status => l_fax_return_status,
14477 x_msg_count => l_fax_msg_count,
14478 x_msg_data => l_fax_msg_data,
14479 x_contact_point_id => l_fax_contact_point_id);
14480
14481 IF l_fax_return_status <> FND_API.G_RET_STS_SUCCESS THEN
14482 ------------------------------------------------------------------------
14483 l_debug_info := 'After call to hz_contact_point_v2pub.create_phone_contact_point Fax Phone';
14484 l_debug_info := l_debug_info||' Return status : '||l_fax_return_status||' Error : '||l_fax_msg_data;
14485 ------------------------------------------------------------------------
14486 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
14487 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
14488 END IF;
14489
14490 -- Bug 6886893: Start
14491 IF g_source = 'IMPORT' THEN
14492
14493 IF ( NVL(l_per_msg_count, 0) > 1 ) THEN
14494 FOR i IN 1..l_per_msg_count
14495 LOOP
14496 -- built the complete message with new line separator if
14497 -- called API returns message count > 1
14498 x_msg_data := x_msg_data||FND_MSG_PUB.Get(p_msg_index => i, p_encoded => 'T') ||' ';
14499 --delete the message stack for the index
14500 --already fetched
14501 FND_MSG_PUB.DELETE_MSG(p_msg_index => i);
14502 END LOOP;
14503 ELSIF (l_per_msg_data is not null) THEN
14504 x_msg_data := x_msg_data||l_per_msg_data;
14505 END IF;
14506
14507 IF (AP_IMPORT_INVOICES_PKG.g_debug_switch = 'Y') THEN
14508 AP_IMPORT_UTILITIES_PKG.Print(AP_IMPORT_INVOICES_PKG.g_debug_switch,x_msg_data);
14509 END IF;
14510
14511 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
14512 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,x_msg_data);
14513 END IF;
14514
14515 IF (Insert_Rejections(
14516 p_parent_table => 'AP_SUP_SITE_CONTACT_INT',
14517 p_parent_id => p_vendor_contact_rec.vendor_contact_interface_id,
14518 p_reject_code => 'AP_CREATE_FAX_PHONE_ERROR',
14519 p_last_updated_by => g_user_id,
14520 p_last_update_login => g_login_id,
14521 p_calling_sequence => 'hz_party_v2pub.create_phone_contact_point'
14522 ) <> TRUE) THEN
14523
14524 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
14525 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
14526 l_api_name,'Error logging into Rejections table');
14527 END IF;
14528 END IF;
14529 ELSE
14530 fnd_message.set_name('SQLAP', 'AP_CREATE_FAX_PHONE_ERROR');
14531 fnd_msg_pub.add;
14532 END IF;
14533 -- Bug 6886893: End
14534
14535 END IF;
14536
14537 END IF; --fax phone
14538
14539 IF l_vendor_contact_rec.email_address IS NOT NULL THEN
14540
14541 --populate email record
14542
14543 l_contact_point_rec.contact_point_type := 'EMAIL';
14544 l_contact_point_rec.primary_flag := 'Y';
14545 l_contact_point_rec.contact_point_purpose := 'BUSINESS';
14546 l_contact_point_rec.primary_by_purpose := 'N';
14547 l_email_rec.email_address := l_vendor_contact_rec.email_address;
14548
14549 hz_contact_point_v2pub.create_email_contact_point(
14550 p_init_msg_list => FND_API.G_FALSE,
14551 p_contact_point_rec => l_contact_point_rec,
14552 p_email_rec => l_email_rec,
14553 --p_commit => FND_API.G_FALSE,
14554 x_return_status => l_email_return_status,
14555 x_msg_count => l_email_msg_count,
14556 x_msg_data => l_email_msg_data,
14557 x_contact_point_id => l_email_contact_point_id);
14558
14559 IF l_email_return_status <> FND_API.G_RET_STS_SUCCESS THEN
14560 ------------------------------------------------------------------------
14561 l_debug_info := 'After call to hz_contact_point_v2pub.create_email_contact_point';
14562 l_debug_info := l_debug_info||' Return status : '||l_email_return_status||' Error : '||l_email_msg_data;
14563 ------------------------------------------------------------------------
14564 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
14565 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
14566 END IF;
14567
14568 -- Bug 6886893: Start
14569 IF g_source = 'IMPORT' THEN
14570
14571 IF ( NVL(l_per_msg_count, 0) > 1 ) THEN
14572 FOR i IN 1..l_per_msg_count
14573 LOOP
14574 -- built the complete message with new line separator if
14575 -- called API returns message count > 1
14576 x_msg_data := x_msg_data||FND_MSG_PUB.Get(p_msg_index => i, p_encoded => 'T') ||' ';
14577 --delete the message stack for the index
14578 --already fetched
14579 FND_MSG_PUB.DELETE_MSG(p_msg_index => i);
14580 END LOOP;
14581 ELSIF (l_per_msg_data is not null) THEN
14582 x_msg_data := x_msg_data||l_per_msg_data;
14583 END IF;
14584
14585 IF (AP_IMPORT_INVOICES_PKG.g_debug_switch = 'Y') THEN
14586 AP_IMPORT_UTILITIES_PKG.Print(AP_IMPORT_INVOICES_PKG.g_debug_switch,x_msg_data);
14587 END IF;
14588
14589 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
14590 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,x_msg_data);
14591 END IF;
14592
14593 IF (Insert_Rejections(
14594 p_parent_table => 'AP_SUP_SITE_CONTACT_INT',
14595 p_parent_id => p_vendor_contact_rec.vendor_contact_interface_id,
14596 p_reject_code => 'AP_CREATE_EMAIL_ERROR',
14597 p_last_updated_by => g_user_id,
14598 p_last_update_login => g_login_id,
14599 p_calling_sequence => 'hz_party_v2pub.create_email_contact_point'
14600 ) <> TRUE) THEN
14601
14602 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
14603 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
14604 l_api_name,'Error logging into Rejections table');
14605 END IF;
14606 END IF;
14607 ELSE
14608 fnd_message.set_name('SQLAP', 'AP_CREATE_EMAIL_ERROR');
14609 fnd_msg_pub.add;
14610 END IF;
14611 -- Bug 6886893: End
14612
14613 END IF;
14614
14615 END IF; --email
14616
14617 IF l_vendor_contact_rec.url IS NOT NULL THEN
14618
14619 --populate url record
14620
14621 l_contact_point_rec.contact_point_type := 'WEB';
14622 l_contact_point_rec.primary_flag := 'Y';
14623 l_contact_point_rec.contact_point_purpose := 'HOMEPAGE'; --bug5875982
14624 l_contact_point_rec.primary_by_purpose := 'N';
14625 --Open Issue 5
14626 l_url_rec.web_type := 'HTTP';
14627 l_url_rec.url := l_vendor_contact_rec.url;
14628
14629 hz_contact_point_v2pub.create_web_contact_point(
14630 p_init_msg_list => FND_API.G_FALSE,
14631 p_contact_point_rec => l_contact_point_rec,
14632 p_web_rec => l_url_rec,
14633 --p_commit => FND_API.G_FALSE,
14634 x_return_status => l_url_return_status,
14635 x_msg_count => l_url_msg_count,
14636 x_msg_data => l_url_msg_data,
14637 x_contact_point_id => l_url_contact_point_id);
14638
14639 IF l_url_return_status <> FND_API.G_RET_STS_SUCCESS THEN
14640 ------------------------------------------------------------------------
14641 l_debug_info := 'After call to hz_contact_point_v2pub.create_web_contact_point';
14642 l_debug_info := l_debug_info||' Return status : '||l_url_return_status||' Error : '||l_url_msg_data;
14643 ------------------------------------------------------------------------
14644 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
14645 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
14646 END IF;
14647
14648 -- Bug 6886893: Start
14649 IF g_source = 'IMPORT' THEN
14650
14651 IF ( NVL(l_per_msg_count, 0) > 1 ) THEN
14652 FOR i IN 1..l_per_msg_count
14653 LOOP
14654 -- built the complete message with new line separator if
14655 -- called API returns message count > 1
14656 x_msg_data := x_msg_data||FND_MSG_PUB.Get(p_msg_index => i, p_encoded => 'T') ||' ';
14657 --delete the message stack for the index
14658 --already fetched
14659 FND_MSG_PUB.DELETE_MSG(p_msg_index => i);
14660 END LOOP;
14661 ELSIF (l_per_msg_data is not null) THEN
14662 x_msg_data := x_msg_data||l_per_msg_data;
14663 END IF;
14664
14665 IF (AP_IMPORT_INVOICES_PKG.g_debug_switch = 'Y') THEN
14666 AP_IMPORT_UTILITIES_PKG.Print(AP_IMPORT_INVOICES_PKG.g_debug_switch,x_msg_data);
14667 END IF;
14668
14669 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
14670 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,x_msg_data);
14671 END IF;
14672
14673 IF (Insert_Rejections(
14674 p_parent_table => 'AP_SUP_SITE_CONTACT_INT',
14675 p_parent_id => p_vendor_contact_rec.vendor_contact_interface_id,
14676 p_reject_code => 'AP_CREATE_WEB_ERROR',
14677 p_last_updated_by => g_user_id,
14678 p_last_update_login => g_login_id,
14679 p_calling_sequence => 'hz_party_v2pub.create_web_contact_point'
14680 ) <> TRUE) THEN
14681
14682 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
14683 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
14684 l_api_name,'Error logging into Rejections table');
14685 END IF;
14686 END IF;
14687 ELSE
14688 fnd_message.set_name('SQLAP', 'AP_CREATE_WEB_ERROR');
14689 fnd_msg_pub.add;
14690 END IF;
14691 -- Bug 6886893: End
14692
14693 END IF;
14694
14695 END IF; --url
14696
14697 END IF; --contact points
14698
14699 IF (l_val_return_status = FND_API.G_RET_STS_SUCCESS) AND
14700 (l_per_return_status = FND_API.G_RET_STS_SUCCESS) AND
14701 (l_org_contact_return_status = FND_API.G_RET_STS_SUCCESS) AND
14702 (l_site_return_status = FND_API.G_RET_STS_SUCCESS) AND
14703 (l_phone_return_status = FND_API.G_RET_STS_SUCCESS) AND
14704 (l_alt_phone_return_status = FND_API.G_RET_STS_SUCCESS) AND
14705 (l_fax_return_status = FND_API.G_RET_STS_SUCCESS) AND
14706 (l_email_return_status = FND_API.G_RET_STS_SUCCESS) AND
14707 (l_url_return_status = FND_API.G_RET_STS_SUCCESS) THEN
14708
14709
14710 SELECT po_vendor_contacts_s.nextval
14711 INTO l_vendor_contact_rec.vendor_contact_id
14712 FROM dual;
14713
14714 INSERT INTO ap_supplier_contacts(
14715 per_party_id,
14716 relationship_id,
14717 rel_party_id,
14718 party_site_id,
14719 org_contact_id,
14720 org_party_site_id,
14721 --vendor_site_id, Bug 7013954 Vendor Site info no longer used
14722 vendor_contact_id,
14723 last_update_date,
14724 last_updated_by,
14725 creation_date,
14726 created_by,
14727 last_update_login,
14728 request_id,
14729 program_application_id,
14730 program_id,
14731 program_update_date,
14732 inactive_date, --Bug 4994974
14733 attribute_category, --bug 6745669 -- added dff columns
14734 attribute1,
14735 attribute2,
14736 attribute3,
14737 attribute4,
14738 attribute5,
14739 attribute6,
14740 attribute7,
14741 attribute8,
14742 attribute9,
14743 attribute10,
14744 attribute11,
14745 attribute12,
14746 attribute13,
14747 attribute14,
14748 attribute15
14749 --bug 6745669
14750 )VALUES(
14751 l_vendor_contact_rec.per_party_id,
14752 l_vendor_contact_rec.relationship_id,
14753 l_vendor_contact_rec.rel_party_id,
14754 l_vendor_contact_rec.party_site_id,
14755 l_vendor_contact_rec.org_contact_id,
14756 l_vendor_contact_rec.org_party_site_id,
14757 --l_vendor_contact_rec.vendor_site_id, Bug 7013954 Vendor Site info no longer used
14758 l_vendor_contact_rec.vendor_contact_id,
14759 SYSDATE,
14760 nvl(fnd_global.user_id,-1),
14761 SYSDATE,
14762 nvl(fnd_global.user_id,-1),
14763 nvl(fnd_global.login_id,-1),
14764 nvl(FND_GLOBAL.conc_request_id,-1),
14765 nvl(FND_GLOBAL.prog_appl_id,-1),
14766 nvl(FND_GLOBAL.conc_program_id,-1),
14767 sysdate,
14768 l_vendor_contact_rec.inactive_date, --Bug 4994974
14769 l_vendor_contact_rec.attribute_category, --bug 6745669 -- added dff columns
14770 l_vendor_contact_rec.attribute1,
14771 l_vendor_contact_rec.attribute2,
14772 l_vendor_contact_rec.attribute3,
14773 l_vendor_contact_rec.attribute4,
14774 l_vendor_contact_rec.attribute5,
14775 l_vendor_contact_rec.attribute6,
14776 l_vendor_contact_rec.attribute7,
14777 l_vendor_contact_rec.attribute8,
14778 l_vendor_contact_rec.attribute9,
14779 l_vendor_contact_rec.attribute10,
14780 l_vendor_contact_rec.attribute11,
14781 l_vendor_contact_rec.attribute12,
14782 l_vendor_contact_rec.attribute13,
14783 l_vendor_contact_rec.attribute14,
14784 l_vendor_contact_rec.attribute15
14785 );
14786
14787 x_vendor_contact_id := l_vendor_contact_rec.vendor_contact_id;
14788 x_per_party_id := l_vendor_contact_rec.per_party_id;
14789 x_rel_party_id := l_vendor_contact_rec.rel_party_id;
14790 x_rel_id := l_vendor_contact_rec.relationship_id;
14791 x_org_contact_id := l_vendor_contact_rec.org_contact_id;
14792 x_party_site_id := l_vendor_contact_rec.party_site_id;
14793
14794 Raise_Supplier_Event( i_vendor_contact_id => x_vendor_contact_id ); -- Bug 7307669
14795
14796 ELSIF (l_val_return_status = FND_API.G_RET_STS_UNEXP_ERROR) OR
14797 (l_per_return_status = FND_API.G_RET_STS_UNEXP_ERROR) OR
14798 (l_org_contact_return_status = FND_API.G_RET_STS_UNEXP_ERROR) OR
14799 (l_site_return_status = FND_API.G_RET_STS_UNEXP_ERROR) OR
14800 (l_phone_return_status = FND_API.G_RET_STS_UNEXP_ERROR) OR
14801 (l_alt_phone_return_status = FND_API.G_RET_STS_UNEXP_ERROR) OR
14802 (l_fax_return_status = FND_API.G_RET_STS_UNEXP_ERROR) OR
14803 (l_email_return_status = FND_API.G_RET_STS_UNEXP_ERROR) OR
14804 (l_url_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
14805
14806 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
14807
14808 ELSE
14809
14810 x_return_status := FND_API.G_RET_STS_ERROR;
14811 END IF;
14812
14813 -- End of API body.
14814
14815 -- Standard check of p_commit.
14816 IF FND_API.To_Boolean( p_commit ) THEN
14817 COMMIT WORK;
14818 END IF;
14819 /* Bug 12590128 start */
14820 ELSE
14821 x_return_status := FND_API.G_RET_STS_ERROR;
14822
14823 IF ( NVL(l_val_msg_count, 0) > 1 ) THEN
14824 FOR i IN 1..l_val_msg_count
14825 LOOP
14826 x_msg_data := x_msg_data||FND_MSG_PUB.Get(p_msg_index => i, p_encoded => 'T') ||' ';
14827 FND_MSG_PUB.DELETE_MSG(p_msg_index => i);
14828 END LOOP;
14829 ELSIF (l_val_msg_data is not null) THEN
14830
14831 l_val_msg_data := x_msg_data||l_val_msg_data;
14832
14833 FND_MSG_PUB.DELETE_MSG(p_msg_index => 1);
14834 END IF;
14835 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
14836 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,x_msg_data);
14837 END IF;
14838 END IF; /* Bug 12590128 end */
14839 -- Standard call to get message count and if count is 1,
14840 -- get message info.
14841 FND_MSG_PUB.Count_And_Get(
14842 p_count => x_msg_count ,
14843 p_data => x_msg_data
14844 );
14845
14846 EXCEPTION
14847 WHEN FND_API.G_EXC_ERROR THEN
14848 ROLLBACK TO Create_Vendor_Contact_PUB;
14849 x_return_status := FND_API.G_RET_STS_ERROR ;
14850 FND_MSG_PUB.Count_And_Get
14851 ( p_count => x_msg_count,
14852 p_data => x_msg_data
14853 );
14854 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
14855 ROLLBACK TO Create_Vendor_Contact_PUB;
14856 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
14857 FND_MSG_PUB.Count_And_Get
14858 ( p_count => x_msg_count,
14859 p_data => x_msg_data
14860 );
14861 WHEN OTHERS THEN
14862 ROLLBACK TO Create_Vendor_Contact_PUB;
14863 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
14864 IF FND_MSG_PUB.Check_Msg_Level
14865 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
14866 FND_MSG_PUB.Add_Exc_Msg
14867 ( G_PKG_NAME ,
14868 l_api_name
14869 );
14870 END IF;
14871 FND_MSG_PUB.Count_And_Get
14872 ( p_count => x_msg_count,
14873 p_data => x_msg_data
14874 );
14875 END Create_Vendor_Contact;
14876
14877 PROCEDURE Update_Vendor_Contact
14878 ( p_api_version IN NUMBER,
14879 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
14880 p_commit IN VARCHAR2 := FND_API.G_FALSE,
14881 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
14882 p_vendor_contact_rec IN r_vendor_contact_rec_type,
14883 x_return_status OUT NOCOPY VARCHAR2 ,
14884 x_msg_count OUT NOCOPY NUMBER,
14885 x_msg_data OUT NOCOPY VARCHAR2
14886
14887 )
14888 IS
14889 l_api_name CONSTANT VARCHAR2(30) := 'Update_Vendor_Contact';
14890 l_api_version CONSTANT NUMBER := 1.0;
14891
14892 BEGIN
14893 -- Standard Start of API savepoint
14894 SAVEPOINT Update_Vendor_Contact_PUB;
14895
14896 -- Standard call to check for call compatibility.
14897 IF NOT FND_API.Compatible_API_Call ( l_api_version ,
14898 p_api_version ,
14899 l_api_name ,
14900 G_PKG_NAME )
14901 THEN
14902 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
14903 END IF;
14904
14905 -- Initialize message list if p_init_msg_list is set to TRUE.
14906 IF FND_API.to_Boolean( p_init_msg_list ) THEN
14907 FND_MSG_PUB.initialize;
14908 END IF;
14909
14910 -- Initialize API return status to success
14911 x_return_status := FND_API.G_RET_STS_SUCCESS;
14912
14913 -- API body
14914
14915 IF ( p_vendor_contact_rec.PER_PARTY_ID IS NOT NULL AND
14916 p_vendor_contact_rec.RELATIONSHIP_ID IS NOT NULL AND
14917 p_vendor_contact_rec.REL_PARTY_ID IS NOT NULL AND
14918 p_vendor_contact_rec.PARTY_SITE_ID IS NOT NULL AND
14919 p_vendor_contact_rec.ORG_CONTACT_ID IS NOT NULL AND
14920 p_vendor_contact_rec.ORG_PARTY_SITE_ID IS NOT NULL AND
14921 p_vendor_contact_rec.VENDOR_CONTACT_ID IS NOT NULL
14922 )
14923 THEN
14924 UPDATE ap_supplier_contacts set
14925 last_update_date = SYSDATE,
14926 last_updated_by = g_user_id,
14927 last_update_login = g_login_id,
14928 inactive_date =p_vendor_contact_rec.inactive_date
14929 WHERE per_party_id = p_vendor_contact_rec.per_party_id AND
14930 relationship_id =p_vendor_contact_rec.relationship_id AND
14931 rel_party_id= p_vendor_contact_rec.rel_party_id AND
14932 party_site_id = p_vendor_contact_rec.party_site_id AND
14933 org_contact_id =p_vendor_contact_rec.org_contact_id AND
14934 vendor_contact_id =p_vendor_contact_rec.vendor_contact_id;
14935
14936 Raise_Supplier_Event( i_vendor_contact_id => p_vendor_contact_rec.vendor_contact_id ); -- Bug 7307669
14937
14938 ELSE
14939 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
14940 END IF;
14941
14942 -- End of API body.
14943
14944 -- Standard check of p_commit.
14945 IF FND_API.To_Boolean( p_commit ) THEN
14946 COMMIT WORK;
14947 END IF;
14948
14949 -- Standard call to get message count and if count is 1,
14950 -- get message info.
14951 FND_MSG_PUB.Count_And_Get(
14952 p_count => x_msg_count ,
14953 p_data => x_msg_data
14954 );
14955
14956 EXCEPTION
14957 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
14958 ROLLBACK TO Update_Vendor_Contact_PUB;
14959 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
14960 FND_MSG_PUB.Count_And_Get
14961 ( p_count => x_msg_count,
14962 p_data => x_msg_data
14963 );
14964 WHEN OTHERS THEN
14965 ROLLBACK TO Update_Vendor_Contact_PUB;
14966 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
14967 IF FND_MSG_PUB.Check_Msg_Level
14968 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
14969 FND_MSG_PUB.Add_Exc_Msg
14970 ( G_PKG_NAME ,
14971 l_api_name
14972 );
14973 END IF;
14974 FND_MSG_PUB.Count_And_Get
14975 ( p_count => x_msg_count,
14976 p_data => x_msg_data
14977 );
14978 END Update_Vendor_Contact;
14979
14980
14981 PROCEDURE Validate_Vendor_Contact
14982 ( p_api_version IN NUMBER,
14983 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
14984 p_commit IN VARCHAR2 := FND_API.G_FALSE,
14985 p_validation_level IN NUMBER :=
14986 FND_API.G_VALID_LEVEL_FULL,
14987 x_return_status OUT NOCOPY VARCHAR2 ,
14988 x_msg_count OUT NOCOPY NUMBER,
14989 x_msg_data OUT NOCOPY VARCHAR2,
14990 p_vendor_contact_rec IN OUT NOCOPY r_vendor_contact_rec_type,
14991 x_rel_party_valid OUT NOCOPY VARCHAR2,
14992 x_per_party_valid OUT NOCOPY VARCHAR2,
14993 x_rel_valid OUT NOCOPY VARCHAR2,
14994 x_org_party_id OUT NOCOPY NUMBER,
14995 x_org_contact_valid OUT NOCOPY VARCHAR2,
14996 x_location_id OUT NOCOPY NUMBER,
14997 x_party_site_valid OUT NOCOPY VARCHAR2
14998 )
14999 IS
15000 l_api_name CONSTANT VARCHAR2(30) := 'Validate_Vendor_Contact';
15001 l_api_version CONSTANT NUMBER := 1.0;
15002
15003 l_def_org_id NUMBER;
15004 l_debug_info VARCHAR2(2000);
15005 x_valid BOOLEAN;
15006
15007 -- Bug 8557954 ...
15008 l_vend_party_id NUMBER ;
15009 l_vend_org_id NUMBER ;
15010 l_vend_cont_party_id NUMBER ;
15011 l_vend_cont_last_name hz_parties.person_last_name%TYPE ;
15012 l_combo_ct NUMBER ;
15013
15014 BEGIN
15015
15016 -- Bug 7013954 The validation logic is modified to accomodate the changes
15017 -- related to contacts. The Contacts are now associated at Party Site/Address
15018 -- or at Supplier level. Supplier Site level association is deprecated in R12.
15019 -- Standard Start of API savepoint
15020 SAVEPOINT Validate_Vendor_Contact_PUB;
15021
15022 -- Standard call to check for call compatibility.
15023 IF NOT FND_API.Compatible_API_Call ( l_api_version ,
15024 p_api_version ,
15025 l_api_name ,
15026 G_PKG_NAME )
15027 THEN
15028 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
15029 END IF;
15030
15031 -- Initialize message list if p_init_msg_list is set to TRUE.
15032 IF FND_API.to_Boolean( p_init_msg_list ) THEN
15033 FND_MSG_PUB.initialize;
15034 END IF;
15035
15036 -- Initialize API return status to success
15037 x_return_status := FND_API.G_RET_STS_SUCCESS;
15038
15039 -- API body
15040
15041 -- Special logic for Import
15042
15043 -- Bug 8549900
15044 -- Removing the logic for Creating contacts from CONTRACTS
15045 -- Commenting the code written for IMPORT only
15046
15047 -- IF g_source = 'IMPORT' THEN
15048 -- Org_Id and Operating_unit_name validation
15049
15050 IF p_vendor_contact_rec.org_id IS NOT NULL OR
15051 p_vendor_contact_rec.operating_unit_name IS NOT NULL THEN
15052
15053 Check_org_id_name(p_vendor_contact_rec.org_id,
15054 p_vendor_contact_rec.operating_unit_name,
15055 'AP_SUP_SITE_CONTACT_INT',
15056 p_vendor_contact_rec.vendor_contact_interface_id,
15057 x_valid);
15058 IF NOT x_valid THEN
15059 x_return_status := FND_API.G_RET_STS_ERROR;
15060 END IF;
15061 END IF;
15062
15063 -- Bug 7013954 If Party_Site_Name is provided, derive the party_site_id.
15064 IF (p_vendor_contact_rec.party_site_name IS NOT NULL AND
15065 p_vendor_contact_rec.org_party_site_id IS NULL AND
15066 /*(p_vendor_contact_rec.org_id IS NOT NULL OR
15067 p_vendor_contact_rec.operating_unit_name IS NOT NULL) AND*/ /* Bug 12590128 */
15068 p_vendor_contact_rec.vendor_id IS NOT NULL)THEN
15069
15070 Check_org_id_party_site_name(p_vendor_contact_rec.org_id,
15071 p_vendor_contact_rec.operating_unit_name,
15072 p_vendor_contact_rec.org_party_site_id,
15073 p_vendor_contact_rec.party_site_name,
15074 p_vendor_contact_rec.vendor_id,
15075 'AP_SUP_SITE_CONTACT_INT',
15076 p_vendor_contact_rec.vendor_contact_interface_id,
15077 x_valid);
15078 IF NOT x_valid THEN
15079
15080 x_return_status := FND_API.G_RET_STS_ERROR;
15081 /* Bug 12590128 start*/
15082 IF g_source = 'IMPORT' THEN
15083 IF (Insert_Rejections(
15084 'AP_SUP_SITE_CONTACT_INT',
15085 p_vendor_contact_rec.vendor_contact_interface_id,
15086 'AP_INVALID_PARTY_SITE_FOR_CONT',
15087 g_user_id,
15088 g_login_id,
15089 'Validate_Vendor_Contact') <> TRUE) THEN
15090
15091 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
15092 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
15093 l_api_name,'Parameters: '
15094 ||' Vendor_Contact_Interface_Id: '||
15095 p_vendor_contact_rec.vendor_contact_interface_id
15096 ||' Party_site_name: '||p_vendor_contact_rec.party_site_name
15097 ||', Vendor_id: '|| p_vendor_contact_rec.vendor_id
15098 ||', Party_Site_Id: '||p_vendor_contact_rec.party_site_id);
15099 END IF;
15100 END IF;
15101 ELSE
15102 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PARTY_SITE_FOR_CONT');
15103 FND_MSG_PUB.ADD;
15104 END IF;
15105 END IF;
15106 /* Bug 12590128 end*/
15107 -- Vendor_Site_Id Validation
15108 -- We need to take vendor_site_id info only when party site info is null
15109 ELSIF p_vendor_contact_rec.vendor_site_id IS NOT NULL AND
15110 p_vendor_contact_rec.org_party_site_id IS NULL AND
15111 p_vendor_contact_rec.PARTY_SITE_NAME IS NULL THEN
15112
15113 Check_Vendor_site_id(p_vendor_contact_rec.vendor_site_id,
15114 'AP_SUP_SITE_CONTACT_INT',
15115 p_vendor_contact_rec.vendor_contact_interface_id,
15116 x_valid);
15117 IF NOT x_valid THEN
15118
15119 x_return_status := FND_API.G_RET_STS_ERROR;
15120 ELSE
15121 SELECT hps.party_id,
15122 hps.location_id
15123 INTO x_org_party_id,
15124 x_location_id
15125 FROM HZ_Party_Sites hps, po_vendor_sites_all pvs
15126 WHERE pvs.vendor_site_id = p_vendor_contact_rec.vendor_site_id
15127 AND pvs.party_site_id = hps.party_site_id;
15128
15129 SELECT party_site_id
15130 INTO p_vendor_contact_rec.org_party_site_id
15131 FROM po_vendor_sites
15132 WHERE vendor_site_id = p_vendor_contact_rec.vendor_site_id;
15133 END IF;
15134 ELSIF (p_vendor_contact_rec.vendor_site_code IS NOT NULL AND
15135 p_vendor_contact_rec.org_party_site_id IS NULL AND
15136 p_vendor_contact_rec.PARTY_SITE_NAME IS NULL AND
15137 /*(p_vendor_contact_rec.org_id IS NOT NULL OR
15138 p_vendor_contact_rec.operating_unit_name IS NOT NULL) */ /* Bug 12590128 */
15139 p_vendor_contact_rec.vendor_id IS NOT NULL
15140 )THEN
15141
15142 Check_Org_Id_Name_Site_Code(p_vendor_contact_rec.org_id,
15143 p_vendor_contact_rec.operating_unit_name,
15144 p_vendor_contact_rec.vendor_site_id,
15145 p_vendor_contact_rec.vendor_site_code,
15146 p_vendor_contact_rec.vendor_id, /* Bug9844445 */
15147 'AP_SUP_SITE_CONTACT_INT',
15148 p_vendor_contact_rec.vendor_contact_interface_id,
15149 x_valid);
15150 IF NOT x_valid THEN
15151
15152 x_return_status := FND_API.G_RET_STS_ERROR;
15153 -- B# 8219586
15154 ELSE
15155 SELECT hps.party_id,
15156 hps.location_id
15157 INTO x_org_party_id,
15158 x_location_id
15159 FROM HZ_Party_Sites hps, po_vendor_sites_all pvs
15160 WHERE pvs.vendor_site_id = p_vendor_contact_rec.vendor_site_id
15161 AND pvs.party_site_id = hps.party_site_id;
15162
15163 SELECT party_site_id
15164 INTO p_vendor_contact_rec.org_party_site_id
15165 FROM po_vendor_sites_all
15166 WHERE vendor_site_id = p_vendor_contact_rec.vendor_site_id;
15167 -- end B# 8219586
15168 END IF;
15169 END IF;
15170 -- Commented for Bug 8549900
15171 --END IF;
15172
15173
15174 ------------------------------------------------------------------------
15175 l_debug_info := 'Call to Validate party_site_id';
15176 ------------------------------------------------------------------------
15177 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
15178 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
15179 l_api_name,l_debug_info);
15180 END IF;
15181 -- Check for validity of party_site_id
15182 --
15183 IF p_vendor_contact_rec.party_site_id IS NOT NULL THEN
15184
15185 Check_Valid_Party_Site_ID(p_vendor_contact_rec.party_site_id,
15186 x_location_id,
15187 p_vendor_contact_rec.vendor_id, /* Bug 12590128 */
15188 x_valid);
15189
15190 IF NOT x_valid THEN
15191
15192 --party_site_id does not exist
15193 x_return_status := FND_API.G_RET_STS_ERROR;
15194 x_party_site_valid := 'F';
15195 -- Special logic for Import
15196 IF g_source = 'IMPORT' THEN
15197 IF (Insert_Rejections(
15198 'AP_SUP_SITE_CONTACT_INT',
15199 p_vendor_contact_rec.vendor_contact_interface_id,
15200 'AP_INVALID_PARTY_SITE_FOR_CONT',
15201 g_user_id,
15202 g_login_id,
15203 'Validate_Vendor_Contact') <> TRUE) THEN
15204 --
15205 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
15206 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
15207 l_api_name,'Parameters: '
15208 ||' Vendor_Contact_Interface_Id: '||
15209 p_vendor_contact_rec.vendor_contact_interface_id
15210 --||' Vendor_Site_Id: '||p_vendor_contact_rec.vendor_site_id
15211 ||', Party_Site_Id: '||p_vendor_contact_rec.party_site_id);
15212 END IF;
15213 END IF;
15214 ELSE
15215 -- Bug 5491139 hkaniven start --
15216 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PARTY_SITE_FOR_CONT');
15217 FND_MSG_PUB.ADD;
15218 -- Bug 5491139 hkaniven end --
15219 END IF;
15220 ELSE
15221 --party_site_id was valid
15222 x_party_site_valid := 'V';
15223 END IF;
15224 ELSE
15225 --party_site_id is null
15226 x_party_site_valid := 'N';
15227 END IF;
15228
15229 x_valid := TRUE;
15230 --set some values
15231 IF p_vendor_contact_rec.org_party_site_id IS NOT NULL THEN
15232
15233 Check_Valid_Party_Site_ID(p_vendor_contact_rec.org_party_site_id,
15234 x_location_id,
15235 p_vendor_contact_rec.vendor_id, /* Bug 12590128 */
15236 x_valid);
15237 IF x_valid THEN
15238
15239 SELECT hps.party_id,
15240 hps.location_id
15241 INTO x_org_party_id,
15242 x_location_id
15243 FROM HZ_Party_Sites hps
15244 WHERE hps.party_site_id =
15245 p_vendor_contact_rec.org_party_site_id;
15246 END if;
15247 --open issue 12, no way to populate vendor_site_id
15248
15249 -- Bug 7013954
15250 -- If the contact is to be created at supplier level then
15251 -- party_site_id is null. We need to populate org_party_id
15252 -- based on the vendor_id value. We should also set party_site_valid
15253 -- variable as valid because there is no party site associated with the
15254 -- contact and we should not create one in create_vendor_contact method.
15255 ELSIF p_vendor_contact_rec.vendor_site_id IS NULL and
15256 p_vendor_contact_rec.vendor_site_code IS NULL and
15257 p_vendor_contact_rec.org_party_site_id IS NULL and
15258 p_vendor_contact_rec.PARTY_SITE_NAME IS NULL and
15259 p_vendor_contact_rec.vendor_id IS NOT NULL THEN
15260 SELECT aps.party_id
15261 INTO x_org_party_id
15262 FROM AP_SUPPLIERS aps
15263 WHERE aps.vendor_id = p_vendor_contact_rec.vendor_id;
15264
15265 x_party_site_valid := 'V';
15266 x_valid := TRUE;
15267 /*
15268 -- new message
15269 x_return_status := FND_API.G_RET_STS_ERROR;
15270 -- Special logic for Import
15271 IF g_source = 'IMPORT' THEN
15272 IF (Insert_Rejections(
15273 'AP_SUP_SITE_CONTACT_INT',
15274 p_vendor_contact_rec.vendor_contact_interface_id,
15275 'AP_INCONSISTENT_PARTY_SITE',
15276 g_user_id,
15277 g_login_id,
15278 'Validate_Vendor_Contact') <> TRUE) THEN
15279 --
15280 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
15281 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
15282 l_api_name,'Parameters: '
15283 ||' Vendor_Contact_Interface_Id: '||
15284 p_vendor_contact_rec.vendor_contact_interface_id
15285 ||',Vendor_Site_Id: '||p_vendor_contact_rec.vendor_site_id
15286 ||', Org_Party_Site_Id: '||p_vendor_contact_rec.org_party_site_id);
15287 END IF;
15288 END IF;
15289 ELSE
15290 -- Bug 5491139 hkaniven start --
15291 FND_MESSAGE.SET_NAME('SQLAP','AP_INCONSISTENT_PARTY_SITE');
15292 FND_MSG_PUB.ADD;
15293 -- Bug 5491139 hkaniven end --
15294 END IF;*/
15295 END IF;
15296
15297 -- We need to first check if the org_party_site_id provided/ derived is
15298 -- valid. If x_valid is false then the party site info is invalid.
15299 IF NOT x_valid THEN
15300
15301 --party_site_id does not exist
15302 x_return_status := FND_API.G_RET_STS_ERROR;
15303 -- Special logic for Import
15304 IF g_source = 'IMPORT' THEN
15305
15306 IF (Insert_Rejections(
15307 'AP_SUP_SITE_CONTACT_INT',
15308 p_vendor_contact_rec.vendor_contact_interface_id,
15309 'AP_INVALID_PARTY_SITE_FOR_CONT',
15310 g_user_id,
15311 g_login_id,
15312 'Validate_Vendor_Contact') <> TRUE) THEN
15313 --
15314
15315 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
15316 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
15317 l_api_name,'Parameters: '
15318 ||' Vendor_Contact_Interface_Id: '||
15319 p_vendor_contact_rec.vendor_contact_interface_id
15320 --||' Vendor_Site_Id: '||p_vendor_contact_rec.vendor_site_id
15321 ||', Org_Party_Site_Id: '||p_vendor_contact_rec.org_party_site_id);
15322 END IF;
15323 END IF;
15324 ELSE
15325 -- Bug 5491139 hkaniven start --
15326 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PARTY_SITE_FOR_CONT');
15327 FND_MSG_PUB.ADD;
15328 -- Bug 5491139 hkaniven end --
15329 END IF;
15330 END IF;
15331 -----------------------------------------------------------------------
15332 l_debug_info := 'Call to Validate party_id';
15333 --------------------------------------------------------------
15334 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
15335 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
15336 l_api_name,l_debug_info);
15337 END IF;
15338
15339 -- Check for validity of party_id
15340 --
15341
15342 IF p_vendor_contact_rec.per_party_id IS NOT NULL THEN
15343
15344 Check_Valid_Party_ID(p_vendor_contact_rec.per_party_id,
15345 x_valid);
15346
15347 IF NOT x_valid THEN
15348
15349 x_return_status := FND_API.G_RET_STS_ERROR;
15350 x_per_party_valid := 'F';
15351 -- Special logic for Import
15352 IF g_source = 'IMPORT' THEN
15353 IF (Insert_Rejections(
15354 'AP_SUP_SITE_CONTACT_INT',
15355 p_vendor_contact_rec.vendor_contact_interface_id,
15356 'AP_INVALID_PARTY_SITE',
15357 g_user_id,
15358 g_login_id,
15359 'Validate_Vendor_Contact') <> TRUE) THEN
15360 --
15361 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
15362 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
15363 l_api_name,'Parameters: '
15364 ||' Vendor_Contact_Interface_Id: '||
15365 p_vendor_contact_rec.vendor_contact_interface_id
15366 --||' Vendor_Site_Id: '||p_vendor_contact_rec.vendor_site_id
15367 ||', Party_Site_Id: '||p_vendor_contact_rec.party_site_id);
15368 END IF;
15369 END IF;
15370 ELSE
15371 -- Bug 5491139 hkaniven start --
15372 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PARTY_SITE');
15373 FND_MSG_PUB.ADD;
15374 -- Bug 5491139 hkaniven end --
15375 END IF;
15376 ELSE
15377 x_per_party_valid := 'V';
15378 END IF;
15379 ELSE -- ... for IF p_vendor_contact_rec.per_party_id IS NOT NULL ...
15380 -- Bug 8557954 -Start
15381 -- derive the party_id from first name, middle_name, last name and
15382 -- phone_area_code, PHONE_NUMBER, and email_address
15383 --
15384 -- first, get party_id of the Vendor for the vendor-site
15385 --
15386 Select party_id into l_vend_party_id
15387 from ap_suppliers
15388 where vendor_id = p_vendor_contact_rec.vendor_id ;
15389
15390 -- populate all contact related details for the contact-vendor relationship.
15391 x_per_party_valid := 'V' ;
15392 BEGIN
15393 select hpc.party_id,
15394 hr.relationship_id,
15395 hr.party_id
15396 into p_vendor_contact_rec.per_party_id,
15397 p_vendor_contact_rec.relationship_id,
15398 p_vendor_contact_rec.rel_party_id
15399 from hz_parties hpc,
15400 hz_contact_points hcpp,
15401 hz_contact_points hcpe,
15402 hz_relationships hr
15403 where hr.subject_id = l_vend_party_id -- <party_id of vendor>
15404 And hcpp.owner_table_name(+) = 'HZ_PARTIES'
15405 And hcpp.owner_table_id(+) = hr.PARTY_ID
15406 And hcpp.phone_line_type(+) = 'GEN'
15407 And hcpp.contact_point_type(+) = 'PHONE'
15408 And hcpe.OWNER_TABLE_NAME(+) = 'HZ_PARTIES'
15409 and hcpe.OWNER_TABLE_ID(+) = hr.PARTY_ID
15410 And hcpe.CONTACT_POINT_TYPE(+) = 'EMAIL'
15411 and hr.object_id = hpc.party_id
15412 and hr.subject_type = 'ORGANIZATION'
15413 and hr.subject_table_name = 'HZ_PARTIES'
15414 and hr.object_table_name = 'HZ_PARTIES'
15415 and hr.object_type = 'PERSON'
15416 and hr.relationship_code = 'CONTACT'
15417 and hr.directional_flag = 'B'
15418 and hr.relationship_type = 'CONTACT'
15419 and hpc.PARTY_TYPE = 'PERSON'
15420 and nvl(upper(hpc.person_first_name),'DUMMY')
15421 = nvl(upper(p_vendor_contact_rec.person_first_name),'DUMMY')
15422 and nvl(upper(hpc.person_middle_name),'DUMMY')
15423 = nvl(upper(p_vendor_contact_rec.person_middle_name),'DUMMY')
15424 and nvl(upper(hpc.person_last_name),'DUMMY')
15425 = nvl(upper(p_vendor_contact_rec.person_last_name),'DUMMY')
15426 and nvl(upper(hcpp.phone_area_code),'DUMMY')
15427 = nvl(upper(p_vendor_contact_rec.area_code),'DUMMY')
15428 and nvl(upper(hcpp.PHONE_NUMBER),'DUMMY')
15429 = nvl(upper(p_vendor_contact_rec.phone),'DUMMY')
15430 and nvl(upper(hcpe.email_address),'DUMMY')
15431 = nvl(upper(p_vendor_contact_rec.email_address),'DUMMY')
15432
15433 and rownum < 2 ;
15434
15435 EXCEPTION
15436 WHEN NO_DATA_FOUND THEN
15437 x_per_party_valid := 'N' ;
15438 END ;
15439
15440 IF x_per_party_valid <> 'N' THEN
15441 BEGIN
15442 Select org_contact_id into p_vendor_contact_rec.org_contact_id
15443 from ap_supplier_contacts
15444 where per_party_id = p_vendor_contact_rec.per_party_id
15445 and relationship_id = p_vendor_contact_rec.relationship_id
15446 and rel_party_id = p_vendor_contact_rec.rel_party_id
15447 and rownum < 2 ;
15448 EXCEPTION
15449 WHEN NO_DATA_FOUND THEN
15450 x_per_party_valid := 'N';
15451 END ;
15452 END IF ;
15453
15454 IF x_per_party_valid <> 'N' THEN
15455 --check if same combination of per_party_id / org_party_site_id
15456 -- exists in ap_supplier_contacts
15457 Select count(*) into l_combo_ct from ap_supplier_contacts
15458 where per_party_id = p_vendor_contact_rec.per_party_id
15459 and relationship_id = p_vendor_contact_rec.relationship_id
15460 and rel_party_id = p_vendor_contact_rec.rel_party_id
15461 and NVL(org_party_site_id, -1) = NVL(p_vendor_contact_rec.org_party_site_id, -1) ;
15462 -- NVL used because contacts can be directly associated
15463 -- can be directly associated to supplier. In such cases org_party_site_id would be null.
15464 IF l_combo_ct > 0 THEN
15465 -- throw duplicate contact for same supplier error.
15466 x_return_status := FND_API.G_RET_STS_ERROR;
15467 x_per_party_valid := 'F';
15468 -- Special logic for Import
15469 IF g_source = 'IMPORT' THEN
15470 IF (Insert_Rejections(
15471 'AP_SUP_SITE_CONTACT_INT',
15472 p_vendor_contact_rec.vendor_contact_interface_id,
15473 'AP_VEN_CONTACT_DUP_NAME',
15474 g_user_id,
15475 g_login_id,
15476 'Validate_Vendor_Contact') <> TRUE) THEN
15477
15478 -- put true message to conc log file
15479 l_debug_info := '***** ERROR : Contact information you are trying to import is already associated ';
15480 l_debug_info := l_debug_info || 'with the Supplier .... Vendor_Id: ' ||p_vendor_contact_rec.vendor_id;
15481 AP_IMPORT_UTILITIES_PKG.Print( 'Y', l_debug_info) ;
15482 -- put true message to fnd log file
15483 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
15484 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,l_debug_info);
15485 END IF ;
15486 -- 2nd part of message ...
15487 l_debug_info := 'Contact last_name ' || p_vendor_contact_rec.person_last_name;
15488 l_debug_info := l_debug_info || ' first_name ' || p_vendor_contact_rec.person_first_name;
15489 l_debug_info := l_debug_info || ' middle_name ' || p_vendor_contact_rec.person_middle_name;
15490 AP_IMPORT_UTILITIES_PKG.Print( 'Y', l_debug_info) ;
15491 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
15492 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,l_debug_info);
15493 END IF ;
15494 END IF;
15495 ELSE
15496
15497 FND_MESSAGE.SET_NAME('SQLAP','AP_VEN_CONTACT_DUP_NAME');
15498 FND_MSG_PUB.ADD;
15499 -- put true message to conc log file
15500 l_debug_info := '***** ERROR : Contact information you are trying to import is already associated ';
15501 l_debug_info := l_debug_info || 'with the Supplier .... Vendor_Id: ' ||p_vendor_contact_rec.vendor_id;
15502 AP_IMPORT_UTILITIES_PKG.Print( 'Y', l_debug_info) ;
15503 -- put true message to fnd log file
15504 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
15505 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,l_debug_info);
15506 END IF ;
15507 -- 2nd part of message ...
15508 l_debug_info := 'Contact last_name ' || p_vendor_contact_rec.person_last_name;
15509 l_debug_info := l_debug_info || ' first_name ' || p_vendor_contact_rec.person_first_name;
15510 l_debug_info := l_debug_info || ' middle_name ' || p_vendor_contact_rec.person_middle_name;
15511 AP_IMPORT_UTILITIES_PKG.Print( 'Y', l_debug_info) ;
15512 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
15513 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,l_debug_info);
15514 END IF ;
15515 END IF;
15516 END IF ;
15517 END IF ;
15518 -- B 8557954 end
15519
15520 END IF; -- ... for IF p_vendor_contact_rec.per_party_id IS NOT NULL ... Bug 8557954 End
15521
15522 -----------------------------------------------------------------------
15523 l_debug_info := 'Call to Validate rel_party_id';
15524 --------------------------------------------------------------
15525 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
15526 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
15527 l_api_name,l_debug_info);
15528 END IF;
15529
15530 -- Check for validity of rel_party_id
15531 --
15532 IF p_vendor_contact_rec.rel_party_id IS NOT NULL THEN
15533 Check_Valid_Party_ID(p_vendor_contact_rec.rel_party_id,
15534 x_valid);
15535
15536 IF NOT x_valid THEN
15537 x_return_status := FND_API.G_RET_STS_ERROR;
15538 x_rel_party_valid := 'F';
15539 -- Special logic for Import
15540 IF g_source = 'IMPORT' THEN
15541 IF (Insert_Rejections(
15542 'AP_SUP_SITE_CONTACT_INT',
15543 p_vendor_contact_rec.vendor_contact_interface_id,
15544 'AP_INVALID_REL_PARTY',
15545 g_user_id,
15546 g_login_id,
15547 'Validate_Vendor_Contact') <> TRUE) THEN
15548 --
15549 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
15550 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
15551 l_api_name,'Parameters: '
15552 ||' Vendor_Contact_Interface_Id: '||
15553 p_vendor_contact_rec.vendor_contact_interface_id
15554 ||' Party_Site_Id: '||p_vendor_contact_rec.org_party_site_id
15555 ||', rel_party_id: '||p_vendor_contact_rec.rel_party_id);
15556 END IF;
15557 END IF;
15558 ELSE
15559 -- Bug 5491139 hkaniven start --
15560 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_REL_PARTY');
15561 FND_MSG_PUB.ADD;
15562 -- Bug 5491139 hkaniven end --
15563 END IF;
15564 ELSE
15565 x_rel_party_valid := 'V';
15566 END IF;
15567 ELSE
15568 x_rel_party_valid := 'N';
15569 END IF;
15570
15571 --call relationship validations
15572
15573 --------------------------------------------------------------
15574 l_debug_info := 'Call to Validate relationship_id';
15575 --------------------------------------------------------------
15576 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
15577 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
15578 l_api_name,l_debug_info);
15579 END IF;
15580
15581 -- Check for validity of relationship_id
15582 --
15583 IF p_vendor_contact_rec.relationship_id IS NOT NULL THEN
15584
15585 Check_Valid_Relationship_ID(p_vendor_contact_rec.relationship_id,
15586 x_valid);
15587
15588 IF NOT x_valid THEN
15589 x_return_status := FND_API.G_RET_STS_ERROR;
15590 x_rel_valid := 'F';
15591 IF g_source = 'IMPORT' THEN
15592 IF (Insert_Rejections(
15593 'AP_SUP_SITE_CONTACT_INT',
15594 p_vendor_contact_rec.vendor_contact_interface_id,
15595 'AP_INVALID_RELATIONSHIP',
15596 g_user_id,
15597 g_login_id,
15598 'Validate_Vendor_Contact') <> TRUE) THEN
15599 --
15600 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
15601 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
15602 l_api_name,'Parameters: '
15603 ||' Vendor_Contact_Interface_Id: '||
15604 p_vendor_contact_rec.vendor_contact_interface_id
15605 ||' Vendor_Interface_Id: '||p_vendor_contact_rec.vendor_interface_id
15606 ||', Relationship_Id: '||p_vendor_contact_rec.relationship_id);
15607 END IF;
15608 END IF;
15609 ELSE
15610 -- Bug 5491139 hkaniven start --
15611 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_RELATIONSHIP');
15612 FND_MSG_PUB.ADD;
15613 -- Bug 5491139 hkaniven end --
15614 END IF;
15615 ELSE
15616 x_rel_valid := 'V';
15617 END IF;
15618 ELSE
15619 x_rel_valid := 'N';
15620 END IF;
15621
15622 -- call org contact validation
15623
15624 --------------------------------------------------------------
15625 l_debug_info := 'Call to Validate org_contact_id';
15626 --------------------------------------------------------------
15627 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
15628 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
15629 l_api_name,l_debug_info);
15630 END IF;
15631
15632 -- Check for validity of org_contact_id
15633 --
15634 IF p_vendor_contact_rec.org_contact_id IS NOT NULL THEN
15635
15636 Check_Valid_Org_Contact_ID(p_vendor_contact_rec.org_contact_id,
15637 x_valid);
15638
15639 IF NOT x_valid THEN
15640 x_return_status := FND_API.G_RET_STS_ERROR;
15641 x_org_contact_valid := 'F';
15642 -- Special logic for Import
15643 IF g_source = 'IMPORT' THEN
15644 IF (Insert_Rejections(
15645 'AP_SUP_SITE_CONTACT_INT',
15646 p_vendor_contact_rec.vendor_contact_interface_id,
15647 'AP_INVALID_ORG_CONTACT',
15648 g_user_id,
15649 g_login_id,
15650 'Validate_Vendor_Contact') <> TRUE) THEN
15651 --
15652 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
15653 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
15654 l_api_name,'Parameters: '
15655 ||' Vendor_Contact_Interface_Id: '||
15656 p_vendor_contact_rec.vendor_contact_interface_id
15657 ||' Vendor_Interface_Id: '||p_vendor_contact_rec.vendor_id
15658 ||', org_contact_id: '||p_vendor_contact_rec.org_contact_id);
15659 END IF;
15660 END IF;
15661 ELSE
15662 -- Bug 5491139 hkaniven start --
15663 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_ORG_CONTACT');
15664 FND_MSG_PUB.ADD;
15665 -- Bug 5491139 hkaniven end --
15666 END IF;
15667 ELSE
15668 x_org_contact_valid := 'V';
15669 END IF;
15670 ELSE
15671 x_org_contact_valid := 'N';
15672 END IF;
15673 -- End of API body.
15674
15675 -- Standard check of p_commit.
15676 IF FND_API.To_Boolean( p_commit ) THEN
15677 COMMIT WORK;
15678 END IF;
15679
15680 -- Standard call to get message count and if count is 1,
15681 -- get message info.
15682 FND_MSG_PUB.Count_And_Get(
15683 p_count => x_msg_count ,
15684 p_data => x_msg_data
15685 );
15686
15687 EXCEPTION
15688 WHEN FND_API.G_EXC_ERROR THEN
15689 ROLLBACK TO Validate_Vendor_Contact_PUB;
15690 x_return_status := FND_API.G_RET_STS_ERROR ;
15691 FND_MSG_PUB.Count_And_Get
15692 ( p_count => x_msg_count,
15693 p_data => x_msg_data
15694 );
15695 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
15696 ROLLBACK TO Validate_Vendor_Contact_PUB;
15697 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
15698 FND_MSG_PUB.Count_And_Get
15699 ( p_count => x_msg_count,
15700 p_data => x_msg_data
15701 );
15702 WHEN OTHERS THEN
15703 ROLLBACK TO Validate_Vendor_Contact_PUB;
15704 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
15705 IF FND_MSG_PUB.Check_Msg_Level
15706 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
15707 FND_MSG_PUB.Add_Exc_Msg
15708 ( G_PKG_NAME ,
15709 l_api_name
15710 );
15711 END IF;
15712 FND_MSG_PUB.Count_And_Get
15713 ( p_count => x_msg_count,
15714 p_data => x_msg_data
15715 );
15716 END Validate_Vendor_Contact;
15717
15718 PROCEDURE Import_Vendors
15719 ( p_api_version IN NUMBER,
15720 p_source IN VARCHAR2 DEFAULT 'IMPORT',
15721 p_what_to_import IN VARCHAR2 DEFAULT NULL,
15722 p_commit_size IN NUMBER DEFAULT 1000,
15723 x_return_status OUT NOCOPY VARCHAR2,
15724 x_msg_count OUT NOCOPY NUMBER,
15725 x_msg_data OUT NOCOPY VARCHAR2
15726 )
15727 IS
15728
15729 l_api_name CONSTANT VARCHAR2(30) := 'Import_Vendors';
15730 l_api_version CONSTANT NUMBER := 1.0;
15731
15732 l_program_application_id NUMBER := FND_GLOBAL.prog_appl_id;
15733 l_program_id NUMBER := FND_GLOBAL.conc_program_id;
15734 l_request_id NUMBER := FND_GLOBAL.conc_request_id;
15735
15736 l_return_status VARCHAR2(2000);
15737 l_msg_count NUMBER;
15738 l_msg_data VARCHAR2(2000);
15739 l_vendor_id NUMBER;
15740 l_party_id NUMBER;
15741
15742 CURSOR vendor_int_cur IS
15743 SELECT *
15744 FROM Ap_Suppliers_Int
15745 WHERE import_request_id = l_request_id
15746 AND vendor_interface_id IS NOT NULL
15747 ORDER BY segment1;
15748
15749 vendor_int_rec vendor_int_cur%ROWTYPE;
15750 vendor_rec r_vendor_rec_type;
15751
15752 /* Variable Declaration for IBY */
15753 ext_payee_rec IBY_DISBURSEMENT_SETUP_PUB.External_Payee_Rec_Type;
15754 ext_payee_tab IBY_DISBURSEMENT_SETUP_PUB.External_Payee_Tab_Type;
15755 ext_payee_id_rec IBY_DISBURSEMENT_SETUP_PUB.Ext_Payee_Id_Rec_Type;
15756 ext_payee_id_tab IBY_DISBURSEMENT_SETUP_PUB.Ext_Payee_Id_Tab_Type;
15757 ext_payee_create_rec IBY_DISBURSEMENT_SETUP_PUB.Ext_Payee_Create_Rec_Type;
15758 ext_payee_create_tab IBY_DISBURSEMENT_SETUP_PUB.Ext_Payee_Create_Tab_Type;
15759 l_temp_ext_acct_id NUMBER;
15760 ext_response_rec IBY_FNDCPT_COMMON_PUB.Result_Rec_Type;
15761
15762 l_ext_payee_id NUMBER;
15763 l_bank_acct_id NUMBER;
15764
15765 CURSOR IBY_EXT_ACCTS_CUR (p_unique_ref IN NUMBER) IS
15766 SELECT temp_ext_bank_acct_id
15767 FROM IBY_TEMP_EXT_BANK_ACCTS
15768 WHERE calling_app_unique_ref1 = p_unique_ref
15769 --Bug 7412849 (Base Bug 7387700) As status can be NULL, this where condition always resolves to FALSE.
15770 --Added NVL around 'status'.
15771 --AND status <> 'PROCESSED';
15772 AND nvl(status,'NEW') <> 'PROCESSED';
15773
15774 l_debug_info varchar2(500); -- Bug 6823885
15775 l_rollback_vendor varchar2(1) := 'N'; --Bug 8275512
15776 l_payee_msg_count NUMBER; --Bug 7572325
15777 l_payee_msg_data VARCHAR2(4000); --Bug 7572325
15778 l_error_code VARCHAR2(4000); --Bug 7572325
15779 /* Added for bug#9204866 Start */
15780 l_unique VARCHAR2(1);
15781 l_vendor_id_vat NUMBER;
15782 /* Added for bug#9204866 Start */
15783 /* Bug 9580651 - Variable to hold the value of the profile "Allow Suppliers with duplicated TP id". Value: Y or N */
15784 l_allow_dupe_taxpyr_id varchar2(1) := 'N';
15785
15786 BEGIN
15787
15788 -- Standard Start of API savepoint
15789 SAVEPOINT Import_Vendor_PUB;
15790
15791 -- Standard call to check for call compatibility.
15792 IF NOT FND_API.Compatible_API_Call (l_api_version,
15793 p_api_version,
15794 l_api_name,
15795 G_PKG_NAME )
15796 THEN
15797 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
15798 END IF;
15799
15800 FND_MSG_PUB.initialize;
15801
15802 g_user_id := FND_GLOBAL.USER_ID;
15803 g_login_id := FND_GLOBAL.LOGIN_ID;
15804 g_source := p_source;
15805 -- Initialize API return status to success
15806 x_return_status := FND_API.G_RET_STS_SUCCESS;
15807
15808 -- API body
15809
15810 IF g_source <> 'IMPORT' THEN
15811 NULL;
15812 ELSE
15813
15814 --udhenuko Bug 6823885 This update statement resets the unprocessed rows so
15815 -- that they get picked in the current run.
15816 UPDATE Ap_Suppliers_Int api
15817 SET import_request_id = NULL
15818 WHERE import_request_id IS NOT NULL
15819 AND NVL(status,'NEW') IN ('NEW', 'REJECTED')
15820 AND EXISTS
15821 ( SELECT 'Request Completed'
15822 FROM fnd_concurrent_requests fcr
15823 WHERE fcr.request_id = api.import_request_id
15824 AND fcr.phase_code = 'C' );
15825 -- udhenuko Bug 6823885 End
15826 --bug 5591652
15827 DELETE AP_SUPPLIER_INT_REJECTIONS
15828 WHERE PARENT_TABLE='AP_SUPPLIERS_INT';
15829 -- Updating Interface Record with request id
15830
15831 UPDATE Ap_Suppliers_Int
15832 SET import_request_id = l_request_id
15833 WHERE import_request_id IS NULL AND
15834 ((p_what_to_import = 'ALL' AND nvl(status,'NEW') in ('NEW', 'REJECTED')) OR
15835 (p_what_to_import = 'NEW' AND nvl(status,'NEW') = 'NEW') OR
15836 (p_what_to_import = 'REJECTED' AND nvl(status,'NEW') = 'REJECTED'));
15837
15838 COMMIT;
15839
15840 SAVEPOINT Import_Vendor_PUB; --Bug 8275512 incase there is an unexpected error in loop below,
15841 --the rollback in exception can happen to this savepoint, since
15842 --after commit the savepoint set at the begining would be lost.
15843
15844 -- Cursor processing for vendor contact interface record
15845 OPEN vendor_int_cur;
15846 LOOP
15847
15848 FETCH vendor_int_cur
15849 INTO vendor_int_rec;
15850 EXIT WHEN vendor_int_cur%NOTFOUND;
15851
15852 vendor_rec.vendor_interface_id := vendor_int_rec.vendor_interface_id;
15853 vendor_rec.vendor_name := vendor_int_rec.vendor_name;
15854 vendor_rec.segment1 := vendor_int_rec.segment1;
15855 vendor_rec.vendor_name_alt := vendor_int_rec.vendor_name_alt;
15856 vendor_rec.summary_flag := vendor_int_rec.summary_flag;
15857 vendor_rec.enabled_flag := vendor_int_rec.enabled_flag;
15858 vendor_rec.employee_id := vendor_int_rec.employee_id;
15859 vendor_rec.vendor_type_lookup_code := vendor_int_rec.vendor_type_lookup_code;
15860 vendor_rec.customer_num := vendor_int_rec.customer_num;
15861 vendor_rec.one_time_flag := vendor_int_rec.one_time_flag;
15862 vendor_rec.min_order_amount := vendor_int_rec.min_order_amount;
15863 vendor_rec.terms_id := vendor_int_rec.terms_id;
15864 vendor_rec.terms_name := vendor_int_rec.terms_name;
15865 vendor_rec.set_of_books_id := vendor_int_rec.set_of_books_id;
15866 vendor_rec.always_take_disc_flag := vendor_int_rec.always_take_disc_flag;
15867 vendor_rec.pay_date_basis_lookup_code := vendor_int_rec.pay_date_basis_lookup_code;
15868 vendor_rec.pay_group_lookup_code := vendor_int_rec.pay_group_lookup_code;
15869 vendor_rec.payment_priority := vendor_int_rec.payment_priority;
15870 vendor_rec.invoice_currency_code := vendor_int_rec.invoice_currency_code;
15871 vendor_rec.payment_currency_code := vendor_int_rec.payment_currency_code;
15872 vendor_rec.invoice_amount_limit := vendor_int_rec.invoice_amount_limit;
15873 vendor_rec.hold_all_payments_flag := vendor_int_rec.hold_all_payments_flag;
15874 vendor_rec.hold_future_payments_flag := vendor_int_rec.hold_future_payments_flag;
15875 vendor_rec.hold_reason := vendor_int_rec.hold_reason;
15876
15877 /* Added for bug#7711402 Start */
15878 IF length(vendor_int_rec.num_1099) > 20 THEN
15879
15880 UPDATE Ap_Suppliers_Int
15881 SET status = 'REJECTED'
15882 WHERE vendor_interface_id = vendor_int_rec.vendor_interface_id;
15883
15884 IF ( Insert_Rejections(
15885 'AP_SUPPLIERS_INT',
15886 vendor_int_rec.vendor_interface_id,
15887 'AP_INVALID_NUM_1099',
15888 g_user_id,
15889 g_login_id,
15890 'Import_Vendor') <> TRUE
15891 )
15892 THEN
15893 --
15894 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
15895 FND_MSG_PUB.Count_And_Get(
15896 p_count => l_msg_count,
15897 p_data => l_msg_data);
15898 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
15899 l_api_name,'Parameters: '
15900 ||' Vendor_Interface_Id: '||vendor_int_rec.vendor_interface_id
15901 ||' Vendor NUM_1099 : '||vendor_int_rec.num_1099);
15902 END IF;
15903 END IF;
15904
15905 goto continue_next_record; /* Added for bug#bug#8539358 replaced continue with goto as continue is not there in 10g */
15906 /* continue; Continue to next record, reject this record Commented for bug#8539358 */
15907
15908 /* Added for bug#9204866 Start */
15909 ELSIF vendor_int_rec.num_1099 IS NOT NULL
15910 THEN
15911
15912 l_vendor_id_vat := NULL;
15913
15914 /* Bug 9580651 - Check whether the profile "Allow Suppliers with duplicated TP id" ("POS_ALLOW_SUPP_DUPE_TAXPYR_ID")
15915 is set to
15916 -Yes then continue creating supplier with duplicate Taxpayer Id.
15917 -No then system will throw an error message and prevent supplier creation.
15918 -POS (UI) implemented this thru bug 8819829 */
15919
15920 l_unique := 'Y'; /* Bug 9580651 - assigned 'Y' instead of NULL */
15921 /* Bug 9580651 - Getting the value of the profile "Allow Suppliers with duplicated TP id" */
15922 fnd_profile.get('POS_ALLOW_SUPP_DUPE_TAXPYR_ID',l_allow_dupe_taxpyr_id);
15923 if (l_allow_dupe_taxpyr_id = 'N') then
15924 pos_vendor_reg_pkg.is_taxpayer_id_unique
15925 ( p_supp_regid => -1
15926 , p_taxpayer_id => vendor_int_rec.num_1099
15927 , p_country => NULL
15928 , x_is_unique => l_unique
15929 , x_vendor_id => l_vendor_id_vat
15930 );
15931 end if;
15932
15933 IF l_unique <> 'Y'
15934 THEN
15935
15936 UPDATE Ap_Suppliers_Int
15937 SET status = 'REJECTED'
15938 WHERE vendor_interface_id = vendor_int_rec.vendor_interface_id;
15939
15940 IF ( Insert_Rejections(
15941 'AP_SUPPLIERS_INT',
15942 vendor_int_rec.vendor_interface_id,
15943 'POS_SPM_CREATE_SUPP_ERR2',
15944 g_user_id,
15945 g_login_id,
15946 'Import_Vendor') <> TRUE
15947 )
15948 THEN
15949 --
15950 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
15951 FND_MSG_PUB.Count_And_Get(
15952 p_count => l_msg_count,
15953 p_data => l_msg_data);
15954
15955 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
15956 l_api_name,'Parameters: '
15957 ||' Vendor_Interface_Id: '||vendor_int_rec.vendor_interface_id
15958 ||' Vendor num_1099 : '||vendor_int_rec.num_1099);
15959 END IF;
15960 END IF;
15961 goto continue_next_record; /* Added for bug#bug#8539358 replaced continue with goto as continue is not there in 10g */
15962 /* continue; Continue to next record, reject this record Commented for bug#8539358 */
15963 END IF;
15964 /* Added for bug#9204866 End */
15965
15966 END IF; /* length > 20 check */
15967 /* Added for bug#7711402 End */
15968
15969 vendor_rec.jgzz_fiscal_code := vendor_int_rec.num_1099;--bug6050423
15970 vendor_rec.type_1099 := vendor_int_rec.type_1099;
15971 vendor_rec.organization_type_lookup_code :=
15972 vendor_int_rec.organization_type_lookup_code;
15973 vendor_rec.start_date_active := vendor_int_rec.start_date_active;
15974 vendor_rec.end_date_active := vendor_int_rec.end_date_active;
15975 vendor_rec.minority_group_lookup_code := vendor_int_rec.minority_group_lookup_code;
15976 vendor_rec.women_owned_flag := vendor_int_rec.women_owned_flag;
15977 vendor_rec.small_business_flag := vendor_int_rec.small_business_flag;
15978 vendor_rec.SIC_Code := vendor_int_rec.standard_industry_class;
15979 vendor_rec.hold_flag := vendor_int_rec.hold_flag;
15980 vendor_rec.purchasing_hold_reason := vendor_int_rec.purchasing_hold_reason;
15981 vendor_rec.hold_by := vendor_int_rec.hold_by;
15982 vendor_rec.hold_date := vendor_int_rec.hold_date;
15983 vendor_rec.terms_date_basis := vendor_int_rec.terms_date_basis;
15984 vendor_rec.inspection_required_flag := vendor_int_rec.inspection_required_flag;
15985 vendor_rec.receipt_required_flag := vendor_int_rec.receipt_required_flag;
15986 vendor_rec.qty_rcv_tolerance := vendor_int_rec.qty_rcv_tolerance;
15987 vendor_rec.qty_rcv_exception_code := vendor_int_rec.qty_rcv_exception_code;
15988 vendor_rec.enforce_ship_to_location_code :=
15989 vendor_int_rec.enforce_ship_to_location_code;
15990 vendor_rec.days_early_receipt_allowed := vendor_int_rec.days_early_receipt_allowed;
15991 vendor_rec.days_late_receipt_allowed := vendor_int_rec.days_late_receipt_allowed;
15992 vendor_rec.receipt_days_exception_code := vendor_int_rec.receipt_days_exception_code;
15993 vendor_rec.receiving_routing_id := vendor_int_rec.receiving_routing_id;
15994 vendor_rec.allow_substitute_receipts_flag :=
15995 vendor_int_rec.allow_substitute_receipts_flag;
15996 vendor_rec.allow_unordered_receipts_flag :=
15997 vendor_int_rec.allow_unordered_receipts_flag;
15998 vendor_rec.hold_unmatched_invoices_flag :=
15999 vendor_int_rec.hold_unmatched_invoices_flag;
16000 vendor_rec.tax_verification_date := vendor_int_rec.tax_verification_date;
16001 vendor_rec.name_control := vendor_int_rec.name_control;
16002 vendor_rec.state_reportable_flag := vendor_int_rec.state_reportable_flag;
16003 vendor_rec.federal_reportable_flag := vendor_int_rec.federal_reportable_flag;
16004 vendor_rec.attribute_category := vendor_int_rec.attribute_category;
16005 vendor_rec.attribute1 := vendor_int_rec.attribute1;
16006 vendor_rec.attribute2 := vendor_int_rec.attribute2;
16007 vendor_rec.attribute3 := vendor_int_rec.attribute3;
16008 vendor_rec.attribute4 := vendor_int_rec.attribute4;
16009 vendor_rec.attribute5 := vendor_int_rec.attribute5;
16010 vendor_rec.attribute6 := vendor_int_rec.attribute6;
16011 vendor_rec.attribute7 := vendor_int_rec.attribute7;
16012 vendor_rec.attribute8 := vendor_int_rec.attribute8;
16013 vendor_rec.attribute9 := vendor_int_rec.attribute9;
16014 vendor_rec.attribute10 := vendor_int_rec.attribute10;
16015 vendor_rec.attribute11 := vendor_int_rec.attribute11;
16016 vendor_rec.attribute12 := vendor_int_rec.attribute12;
16017 vendor_rec.attribute13 := vendor_int_rec.attribute13;
16018 vendor_rec.attribute14 := vendor_int_rec.attribute14;
16019 vendor_rec.attribute15 := vendor_int_rec.attribute15;
16020 vendor_rec.auto_calculate_interest_flag :=
16021 vendor_int_rec.auto_calculate_interest_flag;
16022 vendor_rec.exclude_freight_from_discount :=
16023 vendor_int_rec.exclude_freight_from_discount;
16024 vendor_rec.tax_reporting_name := vendor_int_rec.tax_reporting_name;
16025 vendor_rec.allow_awt_flag := vendor_int_rec.allow_awt_flag;
16026 vendor_rec.awt_group_id := vendor_int_rec.awt_group_id;
16027 vendor_rec.awt_group_name := vendor_int_rec.awt_group_name;
16028 vendor_rec.pay_awt_group_id := vendor_int_rec.pay_awt_group_id;/*Bug9589179 */
16029 vendor_rec.pay_awt_group_name := vendor_int_rec.pay_awt_group_name;/*Bug9589179 */
16030 vendor_rec.global_attribute1 := vendor_int_rec.global_attribute1;
16031 vendor_rec.global_attribute2 := vendor_int_rec.global_attribute2;
16032 vendor_rec.global_attribute3 := vendor_int_rec.global_attribute3;
16033 vendor_rec.global_attribute4 := vendor_int_rec.global_attribute4;
16034 vendor_rec.global_attribute5 := vendor_int_rec.global_attribute5;
16035 vendor_rec.global_attribute6 := vendor_int_rec.global_attribute6;
16036 vendor_rec.global_attribute7 := vendor_int_rec.global_attribute7;
16037 vendor_rec.global_attribute8 := vendor_int_rec.global_attribute8;
16038 vendor_rec.global_attribute9 := vendor_int_rec.global_attribute9;
16039 vendor_rec.global_attribute10 := vendor_int_rec.global_attribute10;
16040 vendor_rec.global_attribute11 := vendor_int_rec.global_attribute11;
16041 vendor_rec.global_attribute12 := vendor_int_rec.global_attribute12;
16042 vendor_rec.global_attribute13 := vendor_int_rec.global_attribute13;
16043 vendor_rec.global_attribute14 := vendor_int_rec.global_attribute14;
16044 vendor_rec.global_attribute15 := vendor_int_rec.global_attribute15;
16045 vendor_rec.global_attribute16 := vendor_int_rec.global_attribute16;
16046 vendor_rec.global_attribute17 := vendor_int_rec.global_attribute17;
16047 vendor_rec.global_attribute18 := vendor_int_rec.global_attribute18;
16048 vendor_rec.global_attribute19 := vendor_int_rec.global_attribute19;
16049 vendor_rec.global_attribute20 := vendor_int_rec.global_attribute20;
16050 vendor_rec.global_attribute_category := vendor_int_rec.global_attribute_category;
16051 vendor_rec.bank_charge_bearer := vendor_int_rec.bank_charge_bearer;
16052 vendor_rec.match_option := vendor_int_rec.match_option;
16053 vendor_rec.create_debit_memo_flag := vendor_int_rec.create_debit_memo_flag;
16054
16055 /* Added for bug#9204866 Start */
16056 IF vendor_int_rec.vat_registration_num IS NOT NULL
16057 THEN
16058
16059 l_vendor_id_vat := NULL;
16060 l_unique := NULL;
16061 pos_vendor_reg_pkg.is_taxregnum_unique
16062 ( p_supp_regid => -1
16063 , p_taxreg_num => vendor_int_rec.vat_registration_num
16064 , p_country => null
16065 , x_is_unique => l_unique
16066 , x_vendor_id => l_vendor_id_vat
16067 );
16068
16069 IF l_unique <> 'Y'
16070 THEN
16071
16072 UPDATE Ap_Suppliers_Int
16073 SET status = 'REJECTED'
16074 WHERE vendor_interface_id = vendor_int_rec.vendor_interface_id;
16075
16076 IF ( Insert_Rejections(
16077 'AP_SUPPLIERS_INT',
16078 vendor_int_rec.vendor_interface_id,
16079 'POS_SPM_CREATE_SUPP_ERR1',
16080 g_user_id,
16081 g_login_id,
16082 'Import_Vendor') <> TRUE
16083 )
16084 THEN
16085 --
16086 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
16087 FND_MSG_PUB.Count_And_Get(
16088 p_count => l_msg_count,
16089 p_data => l_msg_data);
16090
16091 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
16092 l_api_name,'Parameters: '
16093 ||' Vendor_Interface_Id: '||vendor_int_rec.vendor_interface_id
16094 ||' Vendor vat_registration_num : '||vendor_int_rec.vat_registration_num);
16095 END IF;
16096 END IF;
16097 goto continue_next_record; /* Added for bug#bug#8539358 replaced continue with goto as continue is not there in 10g */
16098 /* continue; Continue to next record, reject this record Commented for bug#8539358 */
16099 END IF;
16100 END IF;
16101 /* Added for bug#9204866 End */
16102
16103 vendor_rec.tax_reference := vendor_int_rec.vat_registration_num; --bug6070735
16104 vendor_rec.url := vendor_int_rec.url ; -- B# 7831956
16105
16106 vendor_rec.vat_code := vendor_int_rec.vat_code ; -- B# 9202909
16107 vendor_rec.auto_tax_calc_flag := vendor_int_rec.auto_tax_calc_flag ;--B#9202909
16108 vendor_rec.offset_tax_flag := vendor_int_rec.offset_tax_flag ; --B#9202909
16109 vendor_rec.vat_registration_num := vendor_int_rec.vat_registration_num ; --B#9202909
16110
16111 /* Populating IBY Records and Table */
16112 -- As per the discussion with Omar/Jayanta, we will only
16113 -- have payables payment function and no more employee expenses
16114 -- payment function.
16115
16116 ext_payee_rec.payment_function := 'PAYABLES_DISB';
16117 -- ext_payee_rec.payer_org_type := 'OPERATING_UNIT'; --bug7583123
16118 /* Ext_Payee_Rec.Exclusive_Pay_Flag :=Nvl(Vendor_Int_Rec.Exclusive_Payment_Flag,'N'); Bug9955876 */
16119 --bug6495364
16120 Ext_Payee_Rec.Exclusive_Pay_Flag :=Vendor_Int_Rec.Exclusive_Payment_Flag; /* Bug9955876 */
16121 ext_payee_rec.default_pmt_method := vendor_int_rec.payment_method_lookup_code;
16122 ext_payee_rec.ece_tp_loc_code := vendor_int_rec.ece_tp_location_code;
16123 /* ext_payee_rec.bank_charge_bearer := vendor_int_rec.iby_bank_charge_bearer; Bug10026814 */
16124 ext_payee_rec.bank_charge_bearer :=NULL;
16125 ext_payee_rec.bank_instr1_code := vendor_int_rec.bank_instruction1_code;
16126 ext_payee_rec.bank_instr2_code := vendor_int_rec.bank_instruction2_code;
16127 ext_payee_rec.bank_instr_detail := vendor_int_rec.bank_instruction_details;
16128 ext_payee_rec.pay_reason_code := vendor_int_rec.payment_reason_code;
16129 ext_payee_rec.pay_reason_com := vendor_int_rec.payment_reason_comments;
16130 ext_payee_rec.pay_message1 := vendor_int_rec.payment_text_message1;
16131 ext_payee_rec.pay_message2 := vendor_int_rec.payment_text_message2;
16132 ext_payee_rec.pay_message3 := vendor_int_rec.payment_text_message3;
16133 ext_payee_rec.delivery_channel := vendor_int_rec.delivery_channel_code;
16134 ext_payee_rec.pmt_format := vendor_int_rec.payment_format_code;
16135 ext_payee_rec.settlement_priority := vendor_int_rec.settlement_priority;
16136 -- Bug 7437549 Start
16137 -- Note that we must populate these EDI related fields only to ext_payee_rec
16138 -- Because only this record is passed for call to IBY. There is no need
16139 -- to populate vendor_rec.ext_payee_rec. Even if we pass it wont be used.
16140 ext_payee_rec.edi_payment_format := vendor_int_rec.edi_payment_format;
16141 ext_payee_rec.edi_transaction_handling := vendor_int_rec.edi_transaction_handling;
16142 ext_payee_rec.edi_payment_method := vendor_int_rec.edi_payment_method;
16143 ext_payee_rec.edi_remittance_method := vendor_int_rec.edi_remittance_method;
16144 ext_payee_rec.edi_remittance_instruction := vendor_int_rec.edi_remittance_instruction;
16145 -- Bug 7437549 End
16146 --Bug 7583123
16147 ext_payee_rec.remit_advice_delivery_method := vendor_int_rec.supplier_notif_method;
16148 ext_payee_rec.remit_advice_email := vendor_int_rec.remittance_email;
16149
16150 --bug 8222964
16151 ext_payee_rec.remit_advice_fax := vendor_int_rec.remit_advice_fax;
16152
16153 --6458813 Populating the ext_payee_rec of Vendor_rec
16154 vendor_rec.ext_payee_rec.default_pmt_method := vendor_int_rec.payment_method_lookup_code;
16155 --bug6495364
16156 vendor_rec.ext_payee_rec.payment_function := 'PAYABLES_DISB';
16157 Vendor_Rec.Ext_Payee_Rec.Payer_Org_Type := 'OPERATING_UNIT';
16158 /* vendor_rec.ext_payee_rec.exclusive_pay_flag := nvl(vendor_int_rec.exclusive_payment_flag,'N'); Bug9955876 */
16159 vendor_rec.ext_payee_rec.exclusive_pay_flag := vendor_int_rec.exclusive_payment_flag; /* Bug9955876 */
16160 vendor_rec.ext_payee_rec.ece_tp_loc_code := vendor_int_rec.ece_tp_location_code;
16161 /* vendor_rec.ext_payee_rec.bank_charge_bearer := vendor_int_rec.iby_bank_charge_bearer;Bug10026814 */
16162 vendor_rec.ext_payee_rec.bank_charge_bearer := NULL;
16163 vendor_rec.ext_payee_rec.bank_instr1_code := vendor_int_rec.bank_instruction1_code;
16164 vendor_rec.ext_payee_rec.bank_instr2_code := vendor_int_rec.bank_instruction2_code;
16165 vendor_rec.ext_payee_rec.bank_instr_detail := vendor_int_rec.bank_instruction_details;
16166 vendor_rec.ext_payee_rec.pay_reason_code := vendor_int_rec.payment_reason_code;
16167 vendor_rec.ext_payee_rec.pay_reason_com := vendor_int_rec.payment_reason_comments;
16168 vendor_rec.ext_payee_rec.pay_message1 := vendor_int_rec.payment_text_message1;
16169 vendor_rec.ext_payee_rec.pay_message2 := vendor_int_rec.payment_text_message2;
16170 vendor_rec.ext_payee_rec.pay_message3 := vendor_int_rec.payment_text_message3;
16171 vendor_rec.ext_payee_rec.delivery_channel := vendor_int_rec.delivery_channel_code;
16172 vendor_rec.ext_payee_rec.pmt_format := vendor_int_rec.payment_format_code;
16173 vendor_rec.ext_payee_rec.settlement_priority := vendor_int_rec.settlement_priority;
16174 -- 6458813 ends
16175
16176 -- bug 8222964
16177 vendor_rec.ext_payee_rec.remit_advice_fax := vendor_int_rec.remit_advice_fax;
16178
16179 -- B# 7583123
16180 vendor_rec.supplier_notif_method := vendor_int_rec.supplier_notif_method;
16181 vendor_rec.remittance_email := vendor_int_rec.remittance_email;
16182
16183
16184 vendor_rec.ceo_name := vendor_int_rec.ceo_name ; -- B 9081643
16185 vendor_rec.ceo_title := vendor_int_rec.ceo_title ; -- B 9081643
16186
16187
16188 /*bug 8275512 begin: As per the bug requirement and PM inputs it was
16189 decided to reject supplier creation when user is importing
16190 supplier with bank account and the related bank account record
16191 fails validation. To implement this, creating a save point before
16192 vendor creation looked the most feasible approach and also avoid
16193 fetch out of sequence error. If related bank
16194 fails validation we shall rollback to this savepoint and update
16195 the supplier record as "REJECTED" and insert a record into Rejection
16196 table and thereafter commit the work.*/
16197
16198 SAVEPOINT Import_Vendor_PUB2;
16199 /*bug 8275512 end*/
16200
16201 Create_Vendor
16202 ( p_api_version => 1.0,
16203 p_init_msg_list => FND_API.G_FALSE,
16204 p_commit => FND_API.G_FALSE,
16205 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
16206 x_return_status => l_return_status,
16207 x_msg_count => l_msg_count,
16208 x_msg_data => l_msg_data,
16209 p_vendor_rec => vendor_rec,
16210 x_vendor_id => l_vendor_id,
16211 x_party_id => l_party_id);
16212
16213 IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
16214
16215 UPDATE Ap_Suppliers_Int
16216 SET status = 'PROCESSED'
16217 WHERE vendor_interface_id = vendor_rec.vendor_interface_id;
16218
16219 UPDATE Ap_Supplier_Sites_Int
16220 SET vendor_id = l_vendor_id
16221 WHERE vendor_interface_id = vendor_rec.vendor_interface_id;
16222
16223 UPDATE Ap_Sup_Site_Contact_Int
16224 SET vendor_id = l_vendor_id
16225 WHERE vendor_interface_id = vendor_rec.vendor_interface_id;
16226
16227 ext_payee_rec.payee_party_id := l_party_id;
16228
16229 /*Bug 7572325- added the call to count_and_get to get the count
16230 before call to IBY API in local variable*/
16231 FND_MSG_PUB.Count_And_Get(p_count => l_payee_msg_count,
16232 p_data => l_payee_msg_data);
16233
16234 /* Calling IBY Payee Validation API */
16235 IBY_DISBURSEMENT_SETUP_PUB.Validate_External_Payee
16236 ( p_api_version => 1.0,
16237 p_init_msg_list => FND_API.G_FALSE,
16238 p_ext_payee_rec => ext_payee_rec,
16239 x_return_status => l_return_status,
16240 x_msg_count => l_msg_count,
16241 x_msg_data => l_msg_data);
16242
16243 IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
16244
16245 --bug 5568861 ext_payee_tab(ext_payee_tab.first) := ext_payee_rec;
16246 ext_payee_tab(1) := ext_payee_rec;
16247
16248 /*Calling IBY Payee Creation API */
16249 IBY_DISBURSEMENT_SETUP_PUB.Create_External_Payee
16250 ( p_api_version => 1.0,
16251 p_init_msg_list => FND_API.G_FALSE,
16252 p_ext_payee_tab => ext_payee_tab,
16253 x_return_status => l_return_status,
16254 x_msg_count => l_msg_count,
16255 x_msg_data => l_msg_data,
16256 x_ext_payee_id_tab => ext_payee_id_tab,
16257 x_ext_payee_status_tab => ext_payee_create_tab);
16258
16259 IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
16260 --bug 5568861
16261 l_ext_payee_id := ext_payee_id_tab(1).ext_payee_id;
16262
16263 UPDATE IBY_TEMP_EXT_BANK_ACCTS
16264 SET ext_payee_id = l_ext_payee_id
16265 ,account_owner_party_id = l_party_id -- bug 6753331
16266 WHERE calling_app_unique_ref1 = vendor_rec.vendor_interface_id;
16267
16268 -- Cursor processing for iby temp bank account record
16269 OPEN iby_ext_accts_cur(vendor_rec.vendor_interface_id);
16270 LOOP
16271
16272 FETCH iby_ext_accts_cur
16273 INTO l_temp_ext_acct_id;
16274 EXIT WHEN iby_ext_accts_cur%NOTFOUND;
16275
16276 /* Calling IBY Bank Account Creation API */
16277 -- Bug 6845995. Calling overloaded procedure
16278 -- which will create the association between
16279 -- supplier and bank account.
16280 IBY_DISBURSEMENT_SETUP_PUB.Create_Temp_Ext_Bank_Acct
16281 ( p_api_version => 1.0,
16282 p_init_msg_list => FND_API.G_FALSE,
16283 x_return_status => l_return_status,
16284 x_msg_count => l_msg_count,
16285 x_msg_data => l_msg_data,
16286 p_temp_ext_acct_id => l_temp_ext_acct_id,
16287 p_association_level => 'S',
16288 p_supplier_site_id => null,
16289 p_party_site_id => null,
16290 p_org_id => null,
16291 p_org_type => null, -- veramach added p_org_type as a new paramter for bug 7153777
16292 x_bank_acc_id => l_bank_acct_id,
16293 x_response => ext_response_rec);
16294
16295 IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
16296 UPDATE iby_temp_ext_bank_accts
16297 SET status = 'PROCESSED'
16298 WHERE temp_ext_bank_acct_id = l_temp_ext_acct_id;
16299
16300 ELSE
16301
16302 l_rollback_vendor := 'Y'; --bug 8275512
16303
16304 -- Bug 5491139 hkaniven start --
16305 FND_MESSAGE.SET_NAME('SQLAP','AP_BANK_ACCT_CREATION');
16306 FND_MSG_PUB.ADD;
16307 -- Bug 5491139 hkaniven end --
16308 END IF; -- Bank Account Creation API
16309
16310
16311 END LOOP;
16312 CLOSE iby_ext_accts_cur;
16313
16314 /*Bug 8275512 begin -- rollback if bank account creation fails*/
16315 If l_rollback_vendor = 'Y' then
16316
16317 ROLLBACK TO Import_Vendor_PUB2;
16318
16319 UPDATE Ap_Suppliers_Int
16320 SET status = 'REJECTED'
16321 WHERE vendor_interface_id = vendor_rec.vendor_interface_id;
16322
16323 UPDATE iby_temp_ext_bank_accts
16324 SET status = 'REJECTED'
16325 WHERE temp_ext_bank_acct_id = l_temp_ext_acct_id;
16326
16327 -- Bug 9259355 Start
16328 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
16329 p_count => l_msg_count,
16330 p_data => l_msg_data);
16331
16332 IF ( NVL(l_msg_count, 0) > 1 ) THEN
16333
16334 FOR i IN 1..l_msg_count
16335 LOOP
16336 l_msg_data := FND_MSG_PUB.Get(p_msg_index => i, p_encoded => 'F');
16337
16338 IF (FND_GLOBAL.conc_request_id = -1) THEN
16339 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
16340 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
16341 l_api_name,'Parameters: '
16342 ||' Vendor_Interface_Id: '||vendor_rec.vendor_interface_id
16343 ||' Acct Validation Msg: '||l_msg_data);
16344 END IF;
16345 ELSE
16346 AP_IMPORT_UTILITIES_PKG.Print('Y', l_api_name ||': '|| l_msg_data);
16347 END IF;
16348
16349 END LOOP;
16350
16351 ELSIF (l_msg_data is not null) THEN
16352
16353 IF (FND_GLOBAL.conc_request_id = -1) THEN
16354 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
16355 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
16356 l_api_name,'Parameters: '
16357 ||' Vendor_Interface_Id: '||vendor_rec.vendor_interface_id
16358 ||' Acct Validation Msg: '||l_msg_data);
16359 END IF;
16360 ELSE
16361 AP_IMPORT_UTILITIES_PKG.Print('Y', l_api_name ||': '|| l_msg_data);
16362 END IF;
16363
16364 END IF;
16365 -- Bug 9259355 End
16366
16367 IF (Insert_Rejections(
16368 --'IBY_TEMP_EXT_BANK_ACCTS',
16369 'AP_SUPPLIERS_INT', --bug 8275512
16370 vendor_rec.vendor_interface_id,
16371 'AP_INVALID_BANK_ACCT_INFO',
16372 g_user_id,
16373 g_login_id,
16374 'Import_Vendor') <> TRUE) THEN
16375 --
16376 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
16377 FND_MSG_PUB.Count_And_Get(
16378 p_count => l_msg_count,
16379 p_data => l_msg_data);
16380 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
16381 l_api_name,'Parameters: '
16382 ||' Vendor_Interface_Id: '||vendor_rec.vendor_interface_id
16383 ||' Acct Validation Msg: '||l_msg_data);
16384 END IF;
16385 END IF;
16386
16387 l_rollback_vendor := 'N'; --resetting the value to initial
16388 END IF;
16389 /*Bug 8275512 end*/
16390 ELSE
16391 IF (Insert_Rejections(
16392 'AP_SUPPLIERS_INT',
16393 vendor_rec.vendor_interface_id,
16394 'AP_PAYEE_CREATION',
16395 g_user_id,
16396 g_login_id,
16397 'Import_Vendor') <> TRUE) THEN
16398 --
16399 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
16400 FND_MSG_PUB.Count_And_Get(
16401 p_count => l_msg_count,
16402 p_data => l_msg_data);
16403 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
16404 l_api_name,'Parameters: '
16405 ||' Vendor_Interface_Id: '||vendor_rec.vendor_interface_id
16406 ||' Payee Validation Msg: '||l_msg_data);
16407 END IF;
16408 END IF;
16409
16410 -- Bug 5491139 hkaniven start --
16411 FND_MESSAGE.SET_NAME('SQLAP','AP_PAYEE_CREATION');
16412 FND_MSG_PUB.ADD;
16413 -- Bug 5491139 hkaniven end --
16414 END IF; -- Payee Creation API
16415
16416 ELSE
16417 -- Bug 9259355 Start
16418 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
16419 p_count => l_msg_count,
16420 p_data => l_msg_data);
16421
16422 IF ( NVL(l_msg_count, 0) > 1 ) THEN
16423
16424 FOR i IN 1..l_msg_count
16425 LOOP
16426 l_msg_data := FND_MSG_PUB.Get(p_msg_index => i, p_encoded => 'F');
16427
16428 IF (FND_GLOBAL.conc_request_id = -1) THEN
16429 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
16430 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
16431 l_api_name,'Parameters: '
16432 ||' Vendor_Interface_Id: '||vendor_rec.vendor_interface_id
16433 ||' Acct Validation Msg: '||l_msg_data);
16434 END IF;
16435 ELSE
16436 AP_IMPORT_UTILITIES_PKG.Print('Y', l_api_name ||': '|| l_msg_data);
16437 END IF;
16438
16439 END LOOP;
16440
16441 ELSIF (l_msg_data is not null) THEN
16442
16443 IF (FND_GLOBAL.conc_request_id = -1) THEN
16444 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
16445 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
16446 l_api_name,'Parameters: '
16447 ||' Vendor_Interface_Id: '||vendor_rec.vendor_interface_id
16448 ||' Acct Validation Msg: '||l_msg_data);
16449 END IF;
16450 ELSE
16451 AP_IMPORT_UTILITIES_PKG.Print('Y', l_api_name ||': '|| l_msg_data);
16452 END IF;
16453
16454 END IF;
16455 -- Bug 9259355 End
16456
16457 IF (Insert_Rejections(
16458 'AP_SUPPLIERS_INT',
16459 vendor_rec.vendor_interface_id,
16460 --'AP_INVALID_PAYEE',
16461 'AP_INVALID_PAYEE_INFO',/*bug 7572325*/
16462 g_user_id,
16463 g_login_id,
16464 'Import_Vendor') <> TRUE) THEN
16465 --
16466 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
16467 FND_MSG_PUB.Count_And_Get(
16468 p_count => l_msg_count,
16469 p_data => l_msg_data);
16470 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
16471 l_api_name,'Parameters: '
16472 ||' Vendor_Interface_Id: '||vendor_rec.vendor_interface_id
16473 ||' Payee Validation Msg: '||l_msg_data);
16474 END IF;
16475 END IF;
16476
16477 --bug 7572325 addded below file logging for improved exception
16478 --message handling
16479 l_debug_info := 'Calling IBY Payee Validation API in import';
16480 IF (l_msg_data IS NOT NULL) THEN
16481 -- Print the error returned from the IBY service even if the debug
16482 -- mode is off
16483 AP_IMPORT_UTILITIES_PKG.Print('Y', '3)Error in '||l_debug_info||
16484 '---------------------->'||
16485 l_msg_data);
16486
16487 ELSE
16488 -- If the l_msg_data is null then the IBY service returned
16489 -- more than one error. The calling module will need to get
16490 -- them from the message stack
16491 FOR i IN l_payee_msg_count..l_msg_count
16492 LOOP
16493 l_error_code := FND_MSG_PUB.Get(p_msg_index => i,
16494 p_encoded => 'F');
16495
16496 If i = l_payee_msg_count then
16497 l_error_code := '3)Error in '||l_debug_info||
16498 '---------------------->'||
16499 l_error_code;
16500 end if;
16501
16502 AP_IMPORT_UTILITIES_PKG.Print('Y', l_error_code);
16503
16504 END LOOP;
16505
16506 END IF;--bug 7572325
16507
16508 -- Bug 5491139 hkaniven start --
16509 --FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PAYEE'); --bug 7572325
16510 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PAYEE_INFO'); --bug 7572325
16511 FND_MSG_PUB.ADD;
16512 -- Bug 5491139 hkaniven end --
16513 END IF; -- Payee Validation API
16514
16515 ELSE
16516
16517 UPDATE Ap_Suppliers_Int
16518 SET status = 'REJECTED'
16519 WHERE vendor_interface_id = vendor_rec.vendor_interface_id;
16520
16521 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
16522 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,
16523 ' Rejected Vendor_Interface_Id: '
16524 ||vendor_rec.vendor_interface_id
16525 ||', No. of Messages from Create_Vendor API: '|| l_msg_count
16526 ||', Message From Create_Vendor API: '||l_msg_data);
16527 END IF;
16528
16529 END IF; -- Supplier Creation API
16530 <<continue_next_record>> NULL; /* Added for bug#8539358 */
16531 END LOOP;
16532
16533 CLOSE vendor_int_cur;
16534
16535 END IF;
16536 -- End of API body.
16537
16538 COMMIT WORK;
16539
16540 -- Standard call to get message count and if count is 1,
16541 -- get message info.
16542 FND_MSG_PUB.Count_And_Get(
16543 p_count => x_msg_count,
16544 p_data => x_msg_data
16545 );
16546
16547 EXCEPTION
16548 WHEN FND_API.G_EXC_ERROR THEN
16549 ROLLBACK TO Import_Vendor_PUB;
16550 x_return_status := FND_API.G_RET_STS_ERROR ;
16551 FND_MSG_PUB.Count_And_Get
16552 ( p_count => x_msg_count,
16553 p_data => x_msg_data
16554 );
16555 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
16556 ROLLBACK TO Import_Vendor_PUB;
16557 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
16558 FND_MSG_PUB.Count_And_Get
16559 ( p_count => x_msg_count,
16560 p_data => x_msg_data
16561 );
16562 WHEN OTHERS THEN
16563 ROLLBACK TO Import_Vendor_PUB;
16564 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
16565 IF FND_MSG_PUB.Check_Msg_Level
16566 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
16567 FND_MSG_PUB.Add_Exc_Msg
16568 ( G_PKG_NAME,
16569 l_api_name
16570 );
16571 END IF;
16572 FND_MSG_PUB.Count_And_Get
16573 ( p_count => x_msg_count,
16574 p_data => x_msg_data
16575 );
16576 END Import_Vendors;
16577
16578 PROCEDURE Import_Vendor_Sites
16579 ( p_api_version IN NUMBER,
16580 p_source IN VARCHAR2 DEFAULT 'IMPORT',
16581 p_what_to_import IN VARCHAR2 DEFAULT NULL,
16582 p_commit_size IN NUMBER DEFAULT 1000,
16583 p_org_id IN NUMBER DEFAULT NULL, --bug13801271
16584 x_return_status OUT NOCOPY VARCHAR2,
16585 x_msg_count OUT NOCOPY NUMBER,
16586 x_msg_data OUT NOCOPY VARCHAR2
16587 )
16588 IS
16589
16590 l_api_name CONSTANT VARCHAR2(30) := 'Import_Vendor_Sites';
16591 l_api_version CONSTANT NUMBER := 1.0;
16592
16593 l_program_application_id NUMBER := FND_GLOBAL.prog_appl_id;
16594 l_program_id NUMBER := FND_GLOBAL.conc_program_id;
16595 l_request_id NUMBER := FND_GLOBAL.conc_request_id;
16596
16597 l_return_status VARCHAR2(2000);
16598 l_msg_count NUMBER;
16599 l_msg_data VARCHAR2(2000);
16600 l_vendor_site_id NUMBER;
16601 l_party_site_id NUMBER;
16602 l_location_id NUMBER;
16603
16604 /*bug13801271 - removing all the changes done for bug11717585*/
16605 CURSOR site_int_cur IS
16606 SELECT *
16607 FROM Ap_Supplier_Sites_Int
16608 WHERE import_request_id = l_request_id
16609 AND (org_id IS NOT NULL OR operating_unit_name IS NOT NULL)
16610 AND vendor_id IS NOT NULL
16611 AND org_id = nvl(p_org_id, org_id) --bug13801271
16612 --AND org_id IN (SELECT fsp.org_id FROM financials_system_parameters fsp) --bug13801271
16613 AND mo_global.check_access(org_id)= 'Y' --bug13989575
16614 ;
16615
16616 site_int_rec site_int_cur%ROWTYPE;
16617 site_rec r_vendor_site_rec_type;
16618
16619 /* Variable Declaration for IBY */
16620 ext_payee_rec IBY_DISBURSEMENT_SETUP_PUB.External_Payee_Rec_Type;
16621 ext_payee_tab IBY_DISBURSEMENT_SETUP_PUB.External_Payee_Tab_Type;
16622 ext_payee_id_rec IBY_DISBURSEMENT_SETUP_PUB.Ext_Payee_Id_Rec_Type;
16623 ext_payee_id_tab IBY_DISBURSEMENT_SETUP_PUB.Ext_Payee_Id_Tab_Type;
16624 ext_payee_create_rec IBY_DISBURSEMENT_SETUP_PUB.Ext_Payee_Create_Rec_Type;
16625 ext_payee_create_tab IBY_DISBURSEMENT_SETUP_PUB.Ext_Payee_Create_Tab_Type;
16626 l_temp_ext_acct_id NUMBER;
16627 ext_response_rec IBY_FNDCPT_COMMON_PUB.Result_Rec_Type;
16628
16629 l_party_id NUMBER;
16630 l_ext_payee_id NUMBER;
16631 l_bank_acct_id NUMBER;
16632
16633 CURSOR IBY_EXT_ACCTS_CUR (p_unique_ref IN NUMBER) IS
16634 SELECT temp_ext_bank_acct_id
16635 FROM IBY_TEMP_EXT_BANK_ACCTS
16636 WHERE calling_app_unique_ref2 = p_unique_ref
16637 --Bug 7412849 (Base Bug 7387700) As status can be NULL, this where condition always resolves to FALSE.
16638 --Added NVL around 'status'.
16639 --AND status <> 'PROCESSED';
16640 AND nvl(status,'NEW') <> 'PROCESSED';
16641
16642 l_debug_info varchar2(500); -- Bug 6823885
16643 l_rollback_vendor_site varchar2(1) := 'N'; --Bug 8275512
16644 l_payee_msg_count NUMBER; --Bug 7572325
16645 l_payee_msg_data VARCHAR2(4000); --Bug 7572325
16646 l_error_code VARCHAR2(4000); --Bug 7572325
16647 BEGIN
16648
16649 -- Standard Start of API savepoint
16650 SAVEPOINT Import_Vendor_Sites_PUB;
16651
16652 -- Standard call to check for call compatibility.
16653 IF NOT FND_API.Compatible_API_Call (l_api_version,
16654 p_api_version,
16655 l_api_name,
16656 G_PKG_NAME )
16657 THEN
16658 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
16659 END IF;
16660
16661 FND_MSG_PUB.initialize;
16662
16663 g_user_id := FND_GLOBAL.USER_ID;
16664 g_login_id := FND_GLOBAL.LOGIN_ID;
16665 g_source := p_source;
16666 -- Initialize API return status to success
16667 x_return_status := FND_API.G_RET_STS_SUCCESS;
16668
16669 IF g_source <> 'IMPORT' THEN
16670 NULL;
16671 ELSE
16672 --udhenuko Bug 6823885 This update statement resets the unprocessed rows so
16673 -- that they get picked in the current run.
16674 UPDATE Ap_Supplier_Sites_Int api
16675 SET import_request_id = NULL
16676 WHERE import_request_id IS NOT NULL
16677 AND NVL(status,'NEW') IN ('NEW', 'REJECTED')
16678 AND EXISTS
16679 ( SELECT 'Request Completed'
16680 FROM fnd_concurrent_requests fcr
16681 WHERE fcr.request_id = api.import_request_id
16682 AND fcr.phase_code = 'C' )
16683 AND org_id = nvl(p_org_id, org_id) --bug13989575
16684 AND mo_global.check_access(org_id)= 'Y' --bug13989575
16685 ;
16686
16687 -- udhenuko Bug 6823885 End
16688 --bug 5584046
16689 DELETE AP_SUPPLIER_INT_REJECTIONS
16690 WHERE PARENT_TABLE='AP_SUPPLIER_SITES_INT';
16691
16692 -- Updating Interface Record with request id
16693
16694
16695 UPDATE Ap_Supplier_Sites_Int
16696 SET import_request_id = l_request_id
16697 WHERE import_request_id IS NULL AND
16698 ((p_what_to_import = 'ALL' AND nvl(status,'NEW') in ('NEW', 'REJECTED')) OR
16699 (p_what_to_import = 'NEW' AND nvl(status,'NEW') = 'NEW') OR
16700 (p_what_to_import = 'REJECTED' AND nvl(status,'NEW') = 'REJECTED'))
16701 AND org_id = nvl(p_org_id, org_id) --bug13989575
16702 AND mo_global.check_access(org_id)= 'Y' --bug13989575
16703 ;
16704
16705 UPDATE Ap_Supplier_Sites_Int
16706 SET status = 'REJECTED',
16707 import_request_id = l_request_id
16708 WHERE (operating_unit_name IS NULL AND org_id IS NULL) OR
16709 vendor_id IS NULL
16710 AND org_id = nvl(p_org_id, org_id) --bug13989575
16711 AND mo_global.check_access(org_id)= 'Y' --bug13989575
16712 ;
16713
16714 --bug 5584046
16715 INSERT INTO Ap_Supplier_Int_Rejections
16716 (parent_table,
16717 parent_id,
16718 reject_lookup_code,
16719 last_updated_by,
16720 last_update_date,
16721 last_update_login,
16722 created_by,
16723 creation_date)
16724 SELECT 'AP_SUPPLIER_SITES_INT',vendor_site_interface_id,'AP_ORG_INFO_NULL',
16725 g_user_id,SYSDATE,g_login_id,g_user_id,SYSDATE
16726 FROM Ap_Supplier_Sites_Int
16727 WHERE STATUS='REJECTED'
16728 AND import_request_id=l_request_id
16729 AND (operating_unit_name IS NULL and org_id IS NULL)
16730 AND org_id = nvl(p_org_id, org_id) --bug13989575
16731 AND mo_global.check_access(org_id)= 'Y' --bug13989575
16732 UNION
16733 select 'AP_SUPPLIER_SITES_INT',vendor_site_interface_id,'AP_VENDOR_ID_NULL',
16734 g_user_id,SYSDATE,g_login_id,g_user_id,SYSDATE
16735 from Ap_Supplier_Sites_Int
16736 where status='REJECTED'
16737 AND import_request_id=l_request_id
16738 AND vendor_id IS NULL
16739 AND org_id = nvl(p_org_id, org_id) --bug13989575
16740 AND mo_global.check_access(org_id)= 'Y' --bug13989575
16741 ;
16742 --bug 5584046
16743 COMMIT;
16744
16745 SAVEPOINT Import_Vendor_Sites_PUB; --Bug 8275512 incase there is an unexpected error in loop below,
16746 --the rollback in exception can happen to this savepoint, since
16747 --after commit the savepoint set at the begining would be lost.
16748
16749
16750 -- Cursor processing for vendor contact interface record
16751 OPEN site_int_cur;
16752 LOOP
16753
16754 FETCH site_int_cur
16755 INTO site_int_rec;
16756 EXIT WHEN site_int_cur%NOTFOUND;
16757
16758 site_rec.vendor_site_interface_id := site_int_rec.vendor_site_interface_id;
16759 site_rec.vendor_interface_id := site_int_rec.vendor_interface_id;
16760 site_rec.vendor_id := site_int_rec.vendor_id;
16761 site_rec.vendor_site_code := site_int_rec.vendor_site_code;
16762 site_rec.vendor_site_code_alt := site_int_rec.vendor_site_code_alt;
16763 site_rec.purchasing_site_flag := site_int_rec.purchasing_site_flag;
16764 site_rec.rfq_only_site_flag := site_int_rec.rfq_only_site_flag;
16765 site_rec.pay_site_flag := site_int_rec.pay_site_flag;
16766 site_rec.attention_ar_flag := site_int_rec.attention_ar_flag;
16767 /* Bug 6620831. Trimming Trailing Spaces for address related fields */
16768 site_rec.address_line1 := rtrim(site_int_rec.address_line1);
16769 site_rec.address_lines_alt := rtrim(site_int_rec.address_lines_alt);
16770 site_rec.address_line2 := rtrim(site_int_rec.address_line2);
16771 site_rec.address_line3 := rtrim(site_int_rec.address_line3);
16772 site_rec.city := rtrim(site_int_rec.city);
16773 site_rec.state := substrb(rtrim(site_int_rec.state),1,60); --bug 13768206
16774 site_rec.zip := site_int_rec.zip;
16775 site_rec.province := substrb(site_int_rec.province,1,60); --bug 13768206
16776 site_rec.country := site_int_rec.country;
16777 site_rec.phone := site_int_rec.phone;
16778 site_rec.area_code := site_int_rec.area_code;
16779 site_rec.customer_num := site_int_rec.customer_num;
16780 site_rec.ship_to_location_id := site_int_rec.ship_to_location_id;
16781 site_rec.ship_to_location_code := site_int_rec.ship_to_location_code;
16782 site_rec.bill_to_location_id := site_int_rec.bill_to_location_id;
16783 site_rec.bill_to_location_code := site_int_rec.bill_to_location_code;
16784 site_rec.ship_via_lookup_code := site_int_rec.ship_via_lookup_code;
16785 site_rec.freight_terms_lookup_code := site_int_rec.freight_terms_lookup_code;
16786 site_rec.fob_lookup_code := site_int_rec.fob_lookup_code;
16787 site_rec.inactive_date := site_int_rec.inactive_date;
16788 site_rec.fax := site_int_rec.fax;
16789 site_rec.fax_area_code := site_int_rec.fax_area_code;
16790 site_rec.telex := site_int_rec.telex;
16791 site_rec.terms_date_basis := site_int_rec.terms_date_basis;
16792 site_rec.distribution_set_id := site_int_rec.distribution_set_id;
16793 site_rec.distribution_set_name := site_int_rec.distribution_set_name;
16794 site_rec.accts_pay_code_combination_id :=
16795 site_int_rec.accts_pay_code_combination_id;
16796 site_rec.prepay_code_combination_id := site_int_rec.prepay_code_combination_id;
16797 site_rec.pay_group_lookup_code := site_int_rec.pay_group_lookup_code;
16798 site_rec.payment_priority := site_int_rec.payment_priority;
16799 site_rec.terms_id := site_int_rec.terms_id;
16800 site_rec.terms_name := site_int_rec.terms_name;
16801 /* Added for bug#7363316 Start */
16802 site_rec.tolerance_id := site_int_rec.tolerance_id;
16803 site_rec.tolerance_name := site_int_rec.tolerance_name;
16804 /* Added for bug#7363316 End */
16805 site_rec.invoice_amount_limit := site_int_rec.invoice_amount_limit;
16806 site_rec.pay_date_basis_lookup_code := site_int_rec.pay_date_basis_lookup_code;
16807 site_rec.always_take_disc_flag := site_int_rec.always_take_disc_flag;
16808 site_rec.invoice_currency_code := site_int_rec.invoice_currency_code;
16809 site_rec.payment_currency_code := site_int_rec.payment_currency_code;
16810 site_rec.hold_all_payments_flag := site_int_rec.hold_all_payments_flag;
16811 site_rec.hold_future_payments_flag := site_int_rec.hold_future_payments_flag;
16812 site_rec.hold_reason := site_int_rec.hold_reason;
16813 site_rec.hold_unmatched_invoices_flag := site_int_rec.hold_unmatched_invoices_flag;
16814 site_rec.tax_reporting_site_flag := site_int_rec.tax_reporting_site_flag;
16815 site_rec.attribute_category := site_int_rec.attribute_category;
16816 site_rec.attribute1 := site_int_rec.attribute1;
16817 site_rec.attribute2 := site_int_rec.attribute2;
16818 site_rec.attribute3 := site_int_rec.attribute3;
16819 site_rec.attribute4 := site_int_rec.attribute4;
16820 site_rec.attribute5 := site_int_rec.attribute5;
16821 site_rec.attribute6 := site_int_rec.attribute6;
16822 site_rec.attribute7 := site_int_rec.attribute7;
16823 site_rec.attribute8 := site_int_rec.attribute8;
16824 site_rec.attribute9 := site_int_rec.attribute9;
16825 site_rec.attribute10 := site_int_rec.attribute10;
16826 site_rec.attribute11 := site_int_rec.attribute11;
16827 site_rec.attribute12 := site_int_rec.attribute12;
16828 site_rec.attribute13 := site_int_rec.attribute13;
16829 site_rec.attribute14 := site_int_rec.attribute14;
16830 site_rec.attribute15 := site_int_rec.attribute15;
16831 site_rec.exclude_freight_from_discount:= site_int_rec.exclude_freight_from_discount;
16832 site_rec.org_id := site_int_rec.org_id;
16833 site_rec.org_name := site_int_rec.operating_unit_name;
16834 site_rec.address_line4 := rtrim(site_int_rec.address_line4);
16835 site_rec.county := substrb(site_int_rec.county,1,60); --bug 13768206
16836 site_rec.address_style := site_int_rec.address_style;
16837 site_rec.language := site_int_rec.language;
16838 site_rec.allow_awt_flag := site_int_rec.allow_awt_flag;
16839 site_rec.awt_group_id := site_int_rec.awt_group_id;
16840 site_rec.awt_group_name := site_int_rec.awt_group_name;
16841 site_rec.pay_awt_group_id := site_int_rec.pay_awt_group_id; /* Bug9589179 */
16842 site_rec.pay_awt_group_name := site_int_rec.pay_awt_group_name;/* Bug9589179 */
16843 site_rec.global_attribute1 := site_int_rec.global_attribute1;
16844 site_rec.global_attribute2 := site_int_rec.global_attribute2;
16845 site_rec.global_attribute3 := site_int_rec.global_attribute3;
16846 site_rec.global_attribute4 := site_int_rec.global_attribute4;
16847 site_rec.global_attribute5 := site_int_rec.global_attribute5;
16848 site_rec.global_attribute6 := site_int_rec.global_attribute6;
16849 site_rec.global_attribute7 := site_int_rec.global_attribute7;
16850 site_rec.global_attribute8 := site_int_rec.global_attribute8;
16851 site_rec.global_attribute9 := site_int_rec.global_attribute9;
16852 site_rec.global_attribute10 := site_int_rec.global_attribute10;
16853 site_rec.global_attribute11 := site_int_rec.global_attribute11;
16854 site_rec.global_attribute12 := site_int_rec.global_attribute12;
16855 site_rec.global_attribute13 := site_int_rec.global_attribute13;
16856 site_rec.global_attribute14 := site_int_rec.global_attribute14;
16857 site_rec.global_attribute15 := site_int_rec.global_attribute15;
16858 site_rec.global_attribute16 := site_int_rec.global_attribute16;
16859 site_rec.global_attribute17 := site_int_rec.global_attribute17;
16860 site_rec.global_attribute18 := site_int_rec.global_attribute18;
16861 site_rec.global_attribute19 := site_int_rec.global_attribute19;
16862 site_rec.global_attribute20 := site_int_rec.global_attribute20;
16863 site_rec.global_attribute_category := site_int_rec.global_attribute_category;
16864 site_rec.bank_charge_bearer := site_int_rec.bank_charge_bearer;
16865 site_rec.pay_on_code := site_int_rec.pay_on_code;
16866 site_rec.pay_on_receipt_summary_code := site_int_rec.pay_on_receipt_summary_code;
16867 site_rec.default_pay_site_id := site_int_rec.default_pay_site_id;
16868 site_rec.tp_header_id := site_int_rec.tp_header_id;
16869 site_rec.ece_tp_location_code := site_int_rec.ece_tp_location_code;
16870 site_rec.pcard_site_flag := site_int_rec.pcard_site_flag;
16871 site_rec.match_option := site_int_rec.match_option;
16872 site_rec.country_of_origin_code := site_int_rec.country_of_origin_code;
16873 site_rec.future_dated_payment_ccid := site_int_rec.future_dated_payment_ccid;
16874 site_rec.create_debit_memo_flag := site_int_rec.create_debit_memo_flag;
16875 site_rec.supplier_notif_method := site_int_rec.supplier_notif_method;
16876 site_rec.email_address := site_int_rec.email_address;
16877 site_rec.primary_pay_site_flag := site_int_rec.primary_pay_site_flag;
16878 site_rec.shipping_control := site_int_rec.shipping_control;
16879 site_rec.duns_number := site_int_rec.duns_number;
16880 site_rec.retainage_rate := site_int_rec.retainage_rate;
16881 site_rec.vat_code := site_int_rec.vat_code;
16882 -- bug 6645014 To Import VAT Code.
16883 site_rec.vat_registration_num := site_int_rec.vat_registration_num; -- Bug 7207314
16884 site_rec.edi_id_number := site_int_rec.edi_id_number; -- Bug 7437549
16885
16886 site_rec.remit_advice_delivery_method := site_int_rec.remit_advice_delivery_method; -- Bug 8422781
16887
16888 site_rec.services_tolerance_id := site_int_rec.services_tolerance_id; /*Bug11884093 */
16889 site_rec.services_tolerance_name := site_int_rec.services_tolerance_name; /*Bug11884093 */
16890
16891 Ext_Payee_Rec.Payer_Org_Type := 'OPERATING_UNIT';
16892 /* Ext_Payee_Rec.Exclusive_Pay_Flag :=Nvl(Site_Int_Rec.Exclusive_Payment_Flag,'N'); Bug 9955876 */
16893 ext_payee_rec.exclusive_pay_flag :=site_int_rec.exclusive_payment_flag;/*Bug 9955876 */
16894 --bug6495364
16895
16896 -- udhenuko Bug 6823885 Removed the comment for default payment method as this
16897 -- should be populated to create payment methods in IBY tables.
16898 ext_payee_rec.default_pmt_method := site_int_rec.payment_method_lookup_code;
16899 ext_payee_rec.ece_tp_loc_code := site_int_rec.ece_tp_location_code;
16900 --BG
16901 /* ext_payee_rec.bank_charge_bearer := site_int_rec.iby_bank_charge_bearer; Bug10026814 */
16902 ext_payee_rec.bank_charge_bearer :=NULL;
16903 ext_payee_rec.bank_instr1_code := site_int_rec.bank_instruction1_code;
16904 ext_payee_rec.bank_instr2_code := site_int_rec.bank_instruction2_code;
16905 ext_payee_rec.bank_instr_detail := site_int_rec.bank_instruction_details;
16906 ext_payee_rec.pay_reason_code := site_int_rec.payment_reason_code;
16907 ext_payee_rec.pay_reason_com := site_int_rec.payment_reason_comments;
16908 ext_payee_rec.pay_message1 := site_int_rec.payment_text_message1;
16909 ext_payee_rec.pay_message2 := site_int_rec.payment_text_message2;
16910 ext_payee_rec.pay_message3 := site_int_rec.payment_text_message3;
16911 ext_payee_rec.delivery_channel := site_int_rec.delivery_channel_code;
16912 ext_payee_rec.pmt_format := site_int_rec.payment_format_code;
16913 ext_payee_rec.settlement_priority := site_int_rec.settlement_priority;
16914 -- Bug 7437549 Start
16915 -- Note that we must populate these EDI related fields only to ext_payee_rec
16916 -- Because only this record is passed for call to IBY in case of import.
16917 -- There is no need to populate site_rec.ext_payee_rec.
16918 -- Even if we pass it wont be used.
16919 ext_payee_rec.edi_payment_format := site_int_rec.edi_payment_format;
16920 ext_payee_rec.edi_transaction_handling := site_int_rec.edi_transaction_handling;
16921 ext_payee_rec.edi_payment_method := site_int_rec.edi_payment_method;
16922 ext_payee_rec.edi_remittance_method := site_int_rec.edi_remittance_method;
16923 ext_payee_rec.edi_remittance_instruction := site_int_rec.edi_remittance_instruction;
16924 -- Bug 7437549 End
16925
16926 --bug 8222964
16927 ext_payee_rec.remit_advice_fax := site_int_rec.remit_advice_fax;
16928
16929 -- 6458813 Populating the ext_payee_rec of site_rec
16930 site_rec.ext_payee_rec.payer_org_type := 'OPERATING_UNIT';--bug6495364
16931 Site_Rec.Ext_Payee_Rec.Payment_Function := 'PAYABLES_DISB';--bug6495364
16932 /* Site_Rec.Ext_Payee_Rec.Exclusive_Pay_Flag := Nvl(Site_Int_Rec.Exclusive_Payment_Flag,'N');--bug6495364 Bug9955876 */
16933 site_rec.ext_payee_rec.exclusive_pay_flag := site_int_rec.exclusive_payment_flag; /*Bug9955876 */
16934 site_rec.ext_payee_rec.default_pmt_method := site_int_rec.payment_method_lookup_code;
16935 site_rec.ext_payee_rec.ece_tp_loc_code := site_int_rec.ece_tp_location_code;
16936 site_rec.ext_payee_rec.bank_charge_bearer := site_int_rec.iby_bank_charge_bearer;
16937 site_rec.ext_payee_rec.bank_instr1_code := site_int_rec.bank_instruction1_code;
16938 site_rec.ext_payee_rec.bank_instr2_code := site_int_rec.bank_instruction2_code;
16939 site_rec.ext_payee_rec.bank_instr_detail := site_int_rec.bank_instruction_details;
16940 site_rec.ext_payee_rec.pay_reason_code := site_int_rec.payment_reason_code;
16941 site_rec.ext_payee_rec.pay_reason_com := site_int_rec.payment_reason_comments;
16942 site_rec.ext_payee_rec.pay_message1 := site_int_rec.payment_text_message1;
16943 site_rec.ext_payee_rec.pay_message2 := site_int_rec.payment_text_message2;
16944 site_rec.ext_payee_rec.pay_message3 := site_int_rec.payment_text_message3;
16945 site_rec.ext_payee_rec.delivery_channel := site_int_rec.delivery_channel_code;
16946 site_rec.ext_payee_rec.pmt_format := site_int_rec.payment_format_code;
16947 site_rec.ext_payee_rec.settlement_priority := site_int_rec.settlement_priority;
16948 -- 6458813 ends
16949
16950 -- bug 8222964
16951 site_rec.ext_payee_rec.remit_advice_fax := site_int_rec.remit_advice_fax;
16952
16953 -- B# 7339389
16954 site_rec.supplier_notif_method := site_int_rec.supplier_notif_method;
16955 site_rec.email_address := site_int_rec.email_address;
16956 site_rec.remittance_email := site_int_rec.remittance_email ;
16957
16958 --site_rec.ext_payee_rec.remit_advice_delivery_method := site_int_rec.supplier_notif_method; .. B 8422781
16959 site_rec.ext_payee_rec.remit_advice_delivery_method := site_int_rec.remit_advice_delivery_method ; -- Bug 8422781
16960 site_rec.ext_payee_rec.remit_advice_email := site_int_rec.remittance_email ;
16961
16962 -- Bug 7429668 start
16963 site_rec.party_site_id := site_int_rec.party_site_id;
16964 site_rec.party_site_name := site_int_rec.party_site_name ;
16965 -- Bug 7429668 end
16966 -- Bug#7642742
16967 site_rec.auto_tax_calc_flag := site_int_rec.auto_tax_calc_flag ;
16968 site_rec.offset_tax_flag := site_int_rec.offset_tax_flag ;
16969 -- starting the Changes for CLM reference data management bug#9499174
16970 Site_rec.cage_code := site_int_rec.cage_code;
16971 Site_rec.legal_business_name := site_int_rec.legal_business_name;
16972 site_rec.DOING_BUS_AS_NAME := site_int_rec.DOING_BUS_AS_NAME;
16973 site_rec.division_name := site_int_rec.division_name;
16974 site_rec.small_business_code := site_int_rec.small_business_code;
16975 site_rec.ccr_comments := site_int_rec.ccr_comments;
16976 site_rec.debarment_start_date := site_int_rec.debarment_start_date;
16977 site_rec.debarment_end_date := site_int_rec.debarment_end_date;
16978 -- Ending the Changes for CLM reference data management bug#9499174
16979
16980 --bug 13262073
16981 site_rec.AP_TAX_ROUNDING_RULE := site_int_rec.AP_TAX_ROUNDING_RULE;
16982 site_rec.AMOUNT_INCLUDES_TAX_FLAG := site_int_rec.AMOUNT_INCLUDES_TAX_FLAG;
16983 --end of bug 13262073
16984
16985
16986 /*bug 8275512 begin: As per the bug requirement and PM inputs it was
16987 decided to reject supplier creation when user is importing
16988 supplier site with bank account and the related bank account record
16989 fails validation. To implement this, creating a save point before
16990 vendor site creation looked the most feasible approach and also avoid
16991 fetch out of sequence error. If related bank
16992 fails validation we shall rollback to this savepoint and update
16993 the supplier site record as "REJECTED" and insert a record into Rejection
16994 table and thereafter commit the work.*/
16995
16996 SAVEPOINT Import_Vendor_Sites_PUB2;
16997
16998 /*bug 8275512 end*/
16999
17000 Create_Vendor_Site
17001 ( p_api_version => 1.0,
17002 p_init_msg_list => FND_API.G_FALSE,
17003 p_commit => FND_API.G_FALSE,
17004 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
17005 x_return_status => l_return_status,
17006 x_msg_count => l_msg_count,
17007 x_msg_data => l_msg_data,
17008 p_vendor_site_rec => site_rec,
17009 x_vendor_site_id => l_vendor_site_id,
17010 x_party_site_id => l_party_site_id,
17011 x_location_id => l_location_id);
17012
17013 IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
17014
17015 UPDATE Ap_Supplier_Sites_Int
17016 SET status = 'PROCESSED'
17017 WHERE vendor_site_interface_id =
17018 site_rec.vendor_site_interface_id
17019 AND org_id = nvl(p_org_id, org_id) --bug13989575
17020 AND mo_global.check_access(org_id)= 'Y' --bug13989575
17021 ;
17022
17023 UPDATE AP_Sup_Site_Contact_Int
17024 SET vendor_site_id = l_vendor_site_id
17025 WHERE vendor_id = site_rec.vendor_id
17026 AND vendor_site_code = site_rec.vendor_site_code
17027 AND (org_id = site_rec.org_id OR
17028 operating_unit_name = site_rec.org_name);
17029
17030 ext_payee_rec.supplier_site_id := l_vendor_site_id;
17031 ext_payee_rec.payee_party_site_id := l_party_site_id;
17032
17033 SELECT org_id
17034 INTO ext_payee_rec.payer_org_id
17035 FROM Po_Vendor_Sites_All
17036 WHERE vendor_site_id = l_vendor_site_id;
17037
17038 -- As per the discussion with Omar/Jayanta, we will only
17039 -- have payables payment function and no more employee expenses
17040 -- payment function.
17041
17042
17043 SELECT party_id, 'PAYABLES_DISB'
17044 INTO ext_payee_rec.payee_party_id,
17045 ext_payee_rec.payment_function
17046 FROM Po_Vendors
17047 WHERE vendor_id = site_rec.vendor_id;
17048
17049 /*Bug 7572325- added the call to count_and_get to get the count
17050 before call to IBY API in local variable*/
17051 FND_MSG_PUB.Count_And_Get(p_count => l_payee_msg_count,
17052 p_data => l_payee_msg_data);
17053
17054 /* Calling IBY Payee Validation API */
17055 IBY_DISBURSEMENT_SETUP_PUB.Validate_External_Payee
17056 ( p_api_version => 1.0,
17057 p_init_msg_list => FND_API.G_FALSE,
17058 p_ext_payee_rec => ext_payee_rec,
17059 x_return_status => l_return_status,
17060 x_msg_count => l_msg_count,
17061 x_msg_data => l_msg_data);
17062
17063 IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
17064
17065
17066 -- B# 7339389
17067 --ext_payee_rec.remit_advice_delivery_method := site_int_rec.supplier_notif_method; .. Bug 8422781
17068 ext_payee_rec.remit_advice_delivery_method := site_int_rec.remit_advice_delivery_method ; -- Bug 8422781
17069 ext_payee_rec.remit_advice_email := site_int_rec.remittance_email;
17070
17071 --bug 5569961 ext_payee_tab(ext_payee_tab.first) := ext_payee_rec;
17072 ext_payee_tab(1) := ext_payee_rec;
17073
17074 /* Calling IBY Payee Creation API */
17075 IBY_DISBURSEMENT_SETUP_PUB.Create_External_Payee
17076 ( p_api_version => 1.0,
17077 p_init_msg_list => FND_API.G_FALSE,
17078 p_ext_payee_tab => ext_payee_tab,
17079 x_return_status => l_return_status,
17080 x_msg_count => l_msg_count,
17081 x_msg_data => l_msg_data,
17082 x_ext_payee_id_tab => ext_payee_id_tab,
17083 x_ext_payee_status_tab => ext_payee_create_tab);
17084
17085 IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
17086 --bug 5568861 l_ext_payee_id := ext_payee_id_tab(ext_payee_id_tab.first).ext_payee_id;
17087 l_ext_payee_id := ext_payee_id_tab(1).ext_payee_id;
17088
17089 UPDATE IBY_TEMP_EXT_BANK_ACCTS
17090 SET ext_payee_id = l_ext_payee_id
17091 ,account_owner_party_id = ext_payee_rec.payee_party_id --bug 6753331
17092 WHERE calling_app_unique_ref2 = site_rec.vendor_site_interface_id;
17093
17094 -- Cursor processing for iby temp bank account record
17095 OPEN iby_ext_accts_cur(site_rec.vendor_site_interface_id);
17096 LOOP
17097
17098 FETCH iby_ext_accts_cur
17099 INTO l_temp_ext_acct_id;
17100 EXIT WHEN iby_ext_accts_cur%NOTFOUND;
17101
17102 /* Calling IBY Bank Account Validation API */
17103 --commented for Bug 9012321
17104 /* IBY_DISBURSEMENT_SETUP_PUB.Validate_Temp_Ext_Bank_Acct
17105 ( p_api_version => 1.0,
17106 p_init_msg_list => FND_API.G_FALSE,
17107 x_return_status => l_return_status,
17108 x_msg_count => l_msg_count,
17109 x_msg_data => l_msg_data,
17110 p_temp_ext_acct_id => l_temp_ext_acct_id);
17111
17112 IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN */ --Commented for Bug 9012321
17113 /* Calling IBY Bank Account Creation API */
17114 -- Bug 6845995. Calling overloaded procedure
17115 -- which will create the association between
17116 -- supplier site and bank account.
17117 IBY_DISBURSEMENT_SETUP_PUB.Create_Temp_Ext_Bank_Acct
17118 ( p_api_version => 1.0,
17119 p_init_msg_list => FND_API.G_FALSE,
17120 x_return_status => l_return_status,
17121 x_msg_count => l_msg_count,
17122 x_msg_data => l_msg_data,
17123 p_temp_ext_acct_id => l_temp_ext_acct_id,
17124 p_association_level => 'SS',
17125 p_supplier_site_id => l_vendor_site_id,
17126 p_party_site_id => ext_payee_rec.payee_party_site_id,
17127 p_org_id => ext_payee_rec.payer_org_id,
17128 p_org_type => 'OPERATING_UNIT', -- veramach added p_org_type as a new paramter for bug 7153777
17129 x_bank_acc_id => l_bank_acct_id,
17130 x_response => ext_response_rec);
17131
17132 IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
17133 UPDATE iby_temp_ext_bank_accts
17134 SET status = 'PROCESSED'
17135 WHERE temp_ext_bank_acct_id = l_temp_ext_acct_id;
17136
17137 ELSE -- Bank Account Creation API
17138 --bug 8275512 moved the below code after cursor iby_ext_accts_cur close
17139 /*UPDATE iby_temp_ext_bank_accts
17140 SET status = 'REJECTED'
17141 WHERE temp_ext_bank_acct_id = l_temp_ext_acct_id;
17142
17143 IF (Insert_Rejections(
17144 'IBY_TEMP_EXT_BANK_ACCTS',
17145 site_rec.vendor_site_interface_id,
17146 'AP_BANK_ACCT_CREATION',
17147 g_user_id,
17148 g_login_id,
17149 'Import_Vendor_Site') <> TRUE) THEN
17150 --
17151 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
17152 FND_MSG_PUB.Count_And_Get(
17153 p_count => l_msg_count,
17154 p_data => l_msg_data);
17155 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
17156 l_api_name,'Parameters: '
17157 ||' Vendor_Site_Interface_Id: '||site_rec.vendor_site_interface_id
17158 ||' Acct Validation Msg: '||l_msg_data);
17159 END IF;
17160 END IF; */
17161
17162 l_rollback_vendor_site := 'Y'; --Bug 8275512
17163
17164 -- Bug 5491139 hkaniven start --
17165 FND_MESSAGE.SET_NAME('SQLAP','AP_BANK_ACCT_CREATION');
17166 FND_MSG_PUB.ADD;
17167 -- Bug 5491139 hkaniven end --
17168 END IF; -- Bank Account Creation API
17169 --Commented for Bug 9012321
17170 /* ELSE -- Bank Account Validation API
17171 --bug 8275512 moved the below code after cursor iby_ext_accts_cur close
17172
17173 /*UPDATE iby_temp_ext_bank_accts
17174 SET status = 'REJECTED'
17175 WHERE temp_ext_bank_acct_id = l_temp_ext_acct_id;
17176
17177 IF (Insert_Rejections(
17178 --'IBY_TEMP_EXT_BANK_ACCTS',
17179 'AP_SUPPLIER_SITES_INT', --bug 8275512
17180 site_rec.vendor_site_interface_id,
17181 'AP_INVALID_BANK_ACCT_INFO',
17182 g_user_id,
17183 g_login_id,
17184 'Import_Vendor_Site') <> TRUE) THEN
17185 --
17186 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
17187 FND_MSG_PUB.Count_And_Get(
17188 p_count => l_msg_count,
17189 p_data => l_msg_data);
17190 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
17191 l_api_name,'Parameters: '
17192 ||' Vendor_Site_Interface_Id: '||site_rec.vendor_site_interface_id
17193 ||' Acct Validation Msg: '||l_msg_data);
17194 END IF;
17195 END IF;
17196
17197 l_rollback_vendor_site := 'Y'; --Bug 8275512
17198
17199 -- Bug 5491139 hkaniven start --
17200 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_BANK_ACCT_INFO');
17201 FND_MSG_PUB.ADD;
17202 -- Bug 5491139 hkaniven end --
17203 END IF; -- Bank Account Validation API */--Commented for Bug 9012321
17204
17205 END LOOP;
17206 CLOSE iby_ext_accts_cur;
17207
17208 /*Bug 8275512 begin -- rollback if bank account creation fails*/
17209 IF l_rollback_vendor_site = 'Y' then
17210
17211 ROLLBACK TO Import_Vendor_Sites_PUB2;
17212
17213 UPDATE Ap_Supplier_Sites_Int
17214 SET status = 'REJECTED'
17215 WHERE vendor_site_interface_id = site_rec.vendor_site_interface_id
17216 AND org_id = nvl(p_org_id, org_id) --bug13989575
17217 AND mo_global.check_access(org_id)= 'Y' --bug13989575
17218 ;
17219
17220
17221 UPDATE iby_temp_ext_bank_accts
17222 SET status = 'REJECTED'
17223 WHERE temp_ext_bank_acct_id = l_temp_ext_acct_id;
17224
17225 -- Bug 9259355 Start
17226 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
17227 p_count => l_msg_count,
17228 p_data => l_msg_data);
17229
17230 IF ( NVL(l_msg_count, 0) > 1 ) THEN
17231
17232 FOR i IN 1..l_msg_count
17233 LOOP
17234 l_msg_data := FND_MSG_PUB.Get(p_msg_index => i, p_encoded => 'F');
17235
17236 IF (FND_GLOBAL.conc_request_id = -1) THEN
17237 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
17238 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
17239 l_api_name,'Parameters: '
17240 ||' Vendor_Site_Interface_Id: '||site_rec.vendor_site_interface_id
17241 ||' Acct Validation Msg: '||l_msg_data);
17242 END IF;
17243 ELSE
17244 AP_IMPORT_UTILITIES_PKG.Print('Y', l_api_name ||': '|| l_msg_data);
17245 END IF;
17246
17247 END LOOP;
17248
17249 ELSIF (l_msg_data is not null) THEN
17250
17251 IF (FND_GLOBAL.conc_request_id = -1) THEN
17252 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
17253 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
17254 l_api_name,'Parameters: '
17255 ||' Vendor_Site_Interface_Id: '||site_rec.vendor_site_interface_id
17256 ||' Acct Validation Msg: '||l_msg_data);
17257 END IF;
17258 ELSE
17259 AP_IMPORT_UTILITIES_PKG.Print('Y', l_api_name ||': '|| l_msg_data);
17260 END IF;
17261
17262 END IF;
17263 -- Bug 9259355 End
17264
17265 IF (Insert_Rejections(
17266 --'IBY_TEMP_EXT_BANK_ACCTS',
17267 'AP_SUPPLIER_SITES_INT', --bug 8275512
17268 site_rec.vendor_site_interface_id,
17269 'AP_INVALID_BANK_ACCT_INFO',
17270 g_user_id,
17271 g_login_id,
17272 'Import_Vendor_Site') <> TRUE) THEN
17273 --
17274 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
17275 FND_MSG_PUB.Count_And_Get(
17276 p_count => l_msg_count,
17277 p_data => l_msg_data);
17278 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
17279 l_api_name,'Parameters: '
17280 ||' Vendor_Site_Interface_Id: '||site_rec.vendor_site_interface_id
17281 ||' Acct Validation Msg: '||l_msg_data);
17282 END IF;
17283 END IF;
17284
17285 l_rollback_vendor_site := 'N'; --resetting the value to initial
17286 End if;
17287 /*Bug 8275512 end*/
17288
17289 ELSE -- Payee Creation API
17290
17291 -- Bug 9259355 Start
17292 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
17293 p_count => l_msg_count,
17294 p_data => l_msg_data);
17295
17296 IF ( NVL(l_msg_count, 0) > 1 ) THEN
17297
17298 FOR i IN 1..l_msg_count
17299 LOOP
17300 l_msg_data := FND_MSG_PUB.Get(p_msg_index => i, p_encoded => 'F');
17301
17302 IF (FND_GLOBAL.conc_request_id = -1) THEN
17303 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
17304 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
17305 l_api_name,'Parameters: '
17306 ||' Vendor_Site_Interface_Id: '||site_rec.vendor_site_interface_id
17307 ||' Acct Validation Msg: '||l_msg_data);
17308 END IF;
17309 ELSE
17310 AP_IMPORT_UTILITIES_PKG.Print('Y', l_api_name ||': '|| l_msg_data);
17311 END IF;
17312
17313 END LOOP;
17314
17315 ELSIF (l_msg_data is not null) THEN
17316
17317 IF (FND_GLOBAL.conc_request_id = -1) THEN
17318 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
17319 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
17320 l_api_name,'Parameters: '
17321 ||' Vendor_Site_Interface_Id: '||site_rec.vendor_site_interface_id
17322 ||' Acct Validation Msg: '||l_msg_data);
17323 END IF;
17324 ELSE
17325 AP_IMPORT_UTILITIES_PKG.Print('Y', l_api_name ||': '|| l_msg_data);
17326 END IF;
17327
17328 END IF;
17329 -- Bug 9259355 End
17330
17331 IF (Insert_Rejections(
17332 'AP_SUPPLIER_SITES_INT',
17333 site_rec.vendor_site_interface_id,
17334 'AP_PAYEE_CREATION',
17335 g_user_id,
17336 g_login_id,
17337 'Import_Vendor_Site') <> TRUE) THEN
17338 --
17339 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
17340 FND_MSG_PUB.Count_And_Get(
17341 p_count => l_msg_count,
17342 p_data => l_msg_data);
17343 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
17344 l_api_name,'Parameters: '
17345 ||' Vendor_Site_Interface_Id: '||site_rec.vendor_site_interface_id
17346 ||' Payee Validation Msg: '||l_msg_data);
17347 END IF;
17348 END IF;
17349
17350 -- Bug 5491139 hkaniven start --
17351 FND_MESSAGE.SET_NAME('SQLAP','AP_PAYEE_CREATION');
17352 FND_MSG_PUB.ADD;
17353 -- Bug 5491139 hkaniven end --
17354 END IF; -- Payee Creation API
17355
17356 ELSE -- Payee Validation API
17357
17358 -- Bug 9259355 Start
17359 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
17360 p_count => l_msg_count,
17361 p_data => l_msg_data);
17362
17363 IF ( NVL(l_msg_count, 0) > 1 ) THEN
17364
17365 FOR i IN 1..l_msg_count
17366 LOOP
17367 l_msg_data := FND_MSG_PUB.Get(p_msg_index => i, p_encoded => 'F');
17368
17369 IF (FND_GLOBAL.conc_request_id = -1) THEN
17370 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
17371 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
17372 l_api_name,'Parameters: '
17373 ||' Vendor_Site_Interface_Id: '||site_rec.vendor_site_interface_id
17374 ||' Acct Validation Msg: '||l_msg_data);
17375 END IF;
17376 ELSE
17377 AP_IMPORT_UTILITIES_PKG.Print('Y', l_api_name ||': '|| l_msg_data);
17378 END IF;
17379
17380 END LOOP;
17381
17382 ELSIF (l_msg_data is not null) THEN
17383
17384 IF (FND_GLOBAL.conc_request_id = -1) THEN
17385 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
17386 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
17387 l_api_name,'Parameters: '
17388 ||' Vendor_Site_Interface_Id: '||site_rec.vendor_site_interface_id
17389 ||' Acct Validation Msg: '||l_msg_data);
17390 END IF;
17391 ELSE
17392 AP_IMPORT_UTILITIES_PKG.Print('Y', l_api_name ||': '|| l_msg_data);
17393 END IF;
17394
17395 END IF;
17396 -- Bug 9259355 End
17397
17398 IF (Insert_Rejections(
17399 'AP_SUPPLIER_SITES_INT',
17400 site_rec.vendor_site_interface_id,
17401 'AP_INVALID_PAYEE_INFO',
17402 g_user_id,
17403 g_login_id,
17404 'Import_Vendor_Site') <> TRUE) THEN
17405 --
17406 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
17407 FND_MSG_PUB.Count_And_Get(
17408 p_count => l_msg_count,
17409 p_data => l_msg_data);
17410 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
17411 l_api_name,'Parameters: '
17412 ||' Vendor_Site_Interface_Id: '||site_rec.vendor_site_interface_id
17413 ||' Payee Validation Msg: '||l_msg_data);
17414 END IF;
17415 END IF;
17416
17417 --bug 7572325 addded below file logging for improved exception
17418 --message handling
17419 l_debug_info := 'Calling IBY Payee Validation API in import site';
17420 IF (l_msg_data IS NOT NULL) THEN
17421 -- Print the error returned from the IBY service even if the debug
17422 -- mode is off
17423 AP_IMPORT_UTILITIES_PKG.Print('Y', '4)Error in '||l_debug_info||
17424 '---------------------->'||
17425 l_msg_data);
17426
17427 ELSE
17428 -- If the l_msg_data is null then the IBY service returned
17429 -- more than one error. The calling module will need to get
17430 -- them from the message stack
17431 FOR i IN l_payee_msg_count..l_msg_count
17432 LOOP
17433 l_error_code := FND_MSG_PUB.Get(p_msg_index => i,
17434 p_encoded => 'F');
17435
17436 If i = l_payee_msg_count then
17437 l_error_code := '4)Error in '||l_debug_info||
17438 '---------------------->'||
17439 l_error_code;
17440 end if;
17441
17442 AP_IMPORT_UTILITIES_PKG.Print('Y', l_error_code);
17443
17444 END LOOP;
17445
17446 END IF;--bug 7572325
17447
17448 -- Bug 5491139 hkaniven start --
17449 FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PAYEE_INFO');
17450 FND_MSG_PUB.ADD;
17451 -- Bug 5491139 hkaniven end --
17452 END IF; -- Payee Validation API
17453
17454 ELSE -- Supplier Site Creation API
17455
17456 UPDATE Ap_Supplier_Sites_Int
17457 SET status = 'REJECTED'
17458 WHERE vendor_site_interface_id =
17459 site_rec.vendor_site_interface_id
17460 AND org_id = nvl(p_org_id, org_id) --bug13989575
17461 AND mo_global.check_access(org_id)= 'Y' --bug13989575
17462 ;
17463
17464 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
17465 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,
17466 ' Rejected Vendor_Site_Interface_Id: '
17467 ||site_rec.vendor_site_interface_id
17468 ||', No. of Messages from Create_Vendor_Site API: '|| l_msg_count
17469 ||', Message From Create_Vendor_Site API: '||l_msg_data);
17470 END IF;
17471
17472 END IF; -- Supplier Site Creation API
17473
17474 END LOOP;
17475
17476 CLOSE site_int_cur;
17477
17478 END IF;
17479 -- End of API body.
17480
17481 -- Standard check of p_commit.
17482 COMMIT WORK;
17483
17484 -- Standard call to get message count and if count is 1,
17485 -- get message info.
17486 FND_MSG_PUB.Count_And_Get(
17487 p_count => x_msg_count,
17488 p_data => x_msg_data
17489 );
17490
17491 EXCEPTION
17492 WHEN FND_API.G_EXC_ERROR THEN
17493 ROLLBACK TO Import_Vendor_Sites_PUB;
17494 x_return_status := FND_API.G_RET_STS_ERROR ;
17495 FND_MSG_PUB.Count_And_Get
17496 ( p_count => x_msg_count,
17497 p_data => x_msg_data
17498 );
17499 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
17500 ROLLBACK TO Import_Vendor_Sites_PUB;
17501 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
17502 FND_MSG_PUB.Count_And_Get
17503 ( p_count => x_msg_count,
17504 p_data => x_msg_data
17505 );
17506 WHEN OTHERS THEN
17507 ROLLBACK TO Import_Vendor_Sites_PUB;
17508 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
17509 IF FND_MSG_PUB.Check_Msg_Level
17510 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
17511 FND_MSG_PUB.Add_Exc_Msg
17512 ( G_PKG_NAME,
17513 l_api_name
17514 );
17515 END IF;
17516 FND_MSG_PUB.Count_And_Get
17517 ( p_count => x_msg_count,
17518 p_data => x_msg_data
17519 );
17520 END Import_Vendor_Sites;
17521
17522 PROCEDURE Import_Vendor_Contacts
17523 ( p_api_version IN NUMBER,
17524 p_source IN VARCHAR2 DEFAULT 'IMPORT',
17525 p_what_to_import IN VARCHAR2 DEFAULT NULL,
17526 p_commit_size IN NUMBER DEFAULT 1000,
17527 x_return_status OUT NOCOPY VARCHAR2,
17528 x_msg_count OUT NOCOPY NUMBER,
17529 x_msg_data OUT NOCOPY VARCHAR2
17530 )
17531 IS
17532
17533 l_api_name CONSTANT VARCHAR2(30) := 'Import_Vendor_Contacts';
17534 l_api_version CONSTANT NUMBER := 1.0;
17535
17536 l_program_application_id NUMBER := FND_GLOBAL.prog_appl_id;
17537 l_program_id NUMBER := FND_GLOBAL.conc_program_id;
17538 l_request_id NUMBER := FND_GLOBAL.conc_request_id;
17539
17540 l_return_status VARCHAR2(2000);
17541 l_msg_count NUMBER;
17542 l_msg_data VARCHAR2(2000);
17543 l_vendor_contact_id NUMBER;
17544 l_per_party_id NUMBER;
17545 l_rel_party_id NUMBER;
17546 l_rel_id NUMBER;
17547 l_org_contact_id NUMBER;
17548 l_party_site_id NUMBER;
17549
17550 CURSOR contact_int_cur IS
17551 SELECT *
17552 FROM Ap_Sup_Site_Contact_Int
17553 WHERE import_request_id = l_request_id
17554 AND vendor_id IS NOT NULL
17555 --AND (org_id IS NOT NULL OR operating_unit_name IS NOT NULL ) /* Bug 12590128 */
17556 AND vendor_id not in(select vendor_id from ap_suppliers
17557 where vendor_type_lookup_code = 'EMPLOYEE') --Bug6648405
17558 -- Bug 7013954 Contacts can be created at Supplier level. So cannot mandate
17559 -- the site information to be present.
17560 -- AND (vendor_site_code IS NOT NULL OR vendor_site_id IS NOT NULL)
17561 AND last_name IS NOT NULL
17562 FOR UPDATE OF status; --Bug6413297
17563
17564 contact_int_rec contact_int_cur%ROWTYPE;
17565 vendor_contact_rec r_vendor_contact_rec_type;
17566
17567 BEGIN
17568
17569 -- Standard call to check for call compatibility.
17570 IF NOT FND_API.Compatible_API_Call (l_api_version,
17571 p_api_version,
17572 l_api_name,
17573 G_PKG_NAME )
17574 THEN
17575 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
17576 END IF;
17577
17578 FND_MSG_PUB.initialize;
17579
17580 g_user_id := FND_GLOBAL.USER_ID;
17581 g_login_id := FND_GLOBAL.LOGIN_ID;
17582 g_source := p_source;
17583 -- Initialize API return status to success
17584 x_return_status := FND_API.G_RET_STS_SUCCESS;
17585
17586 -- API body
17587
17588 IF g_source <> 'IMPORT' THEN
17589 NULL;
17590 ELSE
17591 --udhenuko Bug 6823885 This update statement resets the unprocessed rows so
17592 -- that they get picked in the current run.
17593 UPDATE Ap_Sup_Site_Contact_Int api
17594 SET import_request_id = NULL
17595 WHERE import_request_id IS NOT NULL
17596 AND NVL(status,'NEW') IN ('NEW', 'REJECTED')
17597 AND EXISTS
17598 ( SELECT 'Request Completed'
17599 FROM fnd_concurrent_requests fcr
17600 WHERE fcr.request_id = api.import_request_id
17601 AND fcr.phase_code = 'C' );
17602 --udhenuko Bug 6823885 End
17603 --bug 5591652
17604 DELETE AP_SUPPLIER_INT_REJECTIONS
17605 WHERE PARENT_TABLE='AP_SUP_SITE_CONTACT_INT';
17606 -- Updating Interface Record with request id
17607
17608 UPDATE Ap_Sup_Site_Contact_Int
17609 SET import_request_id = l_request_id
17610 WHERE import_request_id IS NULL AND
17611 ((p_what_to_import = 'ALL' AND nvl(status,'NEW') in ('NEW', 'REJECTED')) OR
17612 (p_what_to_import = 'NEW' AND nvl(status,'NEW') = 'NEW') OR
17613 (p_what_to_import = 'REJECTED' AND nvl(status,'NEW') = 'REJECTED'));
17614
17615 UPDATE Ap_Sup_Site_Contact_Int
17616 SET status = 'REJECTED',
17617 import_request_id = l_request_id
17618 WHERE ((vendor_id IS NULL) OR
17619 /* (operating_unit_name IS NULL AND org_id IS NULL) OR */ /* Bug 12590128 */
17620 -- Bug 7013954 Vendor site info no longer used for validation
17621 -- (vendor_site_code IS NULL and vendor_site_id IS NULL) OR
17622 (last_name IS NULL) OR
17623 --Bug7390094 - rejecting contacts for Employee type suppliers.
17624 (vendor_id in(select vendor_id from ap_suppliers
17625 where vendor_type_lookup_code = 'EMPLOYEE')));
17626
17627 --bug 5591652
17628 insert into ap_supplier_int_rejections
17629 /* Bug 12590128 start */
17630 /*(select 'AP_SUP_SITE_CONTACT_INT',vendor_contact_interface_id,'AP_ORG_INFO_NULL',
17631 g_user_id,SYSDATE,g_login_id,g_user_id,SYSDATE
17632 from ap_sup_site_contact_int
17633 where status='REJECTED'
17634 AND import_request_id=l_request_id
17635 AND (operating_unit_name IS NULL and org_id IS NULL))*/
17636 /* Bug 12590128 end */
17637
17638 -- Bug 7013954 Conditions related to supplier site needs to be commented.
17639 /*UNION
17640 (select 'AP_SUP_SITE_CONTACT_INT',vendor_contact_interface_id,'AP_VENDOR_SITE_INFO_NULL',
17641 g_user_id,SYSDATE,g_login_id,g_user_id,SYSDATE
17642 from ap_sup_site_contact_int
17643 where status='REJECTED'
17644 AND import_request_id=l_request_id
17645 AND (vendor_site_code IS NULL and vendor_site_id IS NULL))*/
17646 /*UNION*/
17647 (select 'AP_SUP_SITE_CONTACT_INT',vendor_contact_interface_id,'AP_LAST_NAME_NULL',
17648 g_user_id,SYSDATE,g_login_id,g_user_id,SYSDATE
17649 from ap_sup_site_contact_int
17650 where status='REJECTED'
17651 AND import_request_id=l_request_id
17652 AND last_name IS NULL)
17653 UNION
17654 (select 'AP_SUP_SITE_CONTACT_INT',vendor_contact_interface_id,'AP_VENDOR_ID_NULL',
17655 g_user_id,SYSDATE,g_login_id,g_user_id,SYSDATE
17656 from ap_sup_site_contact_int
17657 where status='REJECTED'
17658 AND import_request_id=l_request_id
17659 AND vendor_id IS NULL)
17660 -- Bug 7390094 Prevent contacts import for employee type supplier.
17661 UNION
17662 (select 'AP_SUP_SITE_CONTACT_INT',vendor_contact_interface_id,'AP_EMPLOYEE_CONTACTS',
17663 g_user_id,SYSDATE,g_login_id,g_user_id,SYSDATE
17664 from ap_sup_site_contact_int
17665 where status='REJECTED'
17666 AND import_request_id=l_request_id
17667 AND vendor_id in(select vendor_id from ap_suppliers
17668 where vendor_type_lookup_code = 'EMPLOYEE'));
17669
17670 COMMIT;
17671
17672 -- Bug 7013954 Standard Start of API savepoint
17673 SAVEPOINT Import_Vendor_Contact_PUB;
17674
17675 -- Cursor processing for vendor contact interface record
17676 OPEN contact_int_cur;
17677 LOOP
17678
17679 FETCH contact_int_cur
17680 INTO contact_int_rec;
17681 EXIT WHEN contact_int_cur%NOTFOUND;
17682
17683 vendor_contact_rec.vendor_contact_interface_id :=
17684 contact_int_rec.vendor_contact_interface_id;
17685 vendor_contact_rec.vendor_site_id := contact_int_rec.vendor_site_id;
17686 vendor_contact_rec.person_first_name := contact_int_rec.first_name;
17687 vendor_contact_rec.person_middle_name:= contact_int_rec.middle_name;
17688 vendor_contact_rec.person_last_name := contact_int_rec.last_name;
17689 vendor_contact_rec.person_title := contact_int_rec.title;
17690 vendor_contact_rec.person_first_name_phonetic :=
17691 contact_int_rec.first_name_alt;
17692 vendor_contact_rec.person_last_name_phonetic :=
17693 contact_int_rec.last_name_alt;
17694 vendor_contact_rec.contact_name_phonetic :=
17695 contact_int_rec.contact_name_alt;
17696 vendor_contact_rec.prefix := contact_int_rec.prefix;
17697 vendor_contact_rec.inactive_date := contact_int_rec.inactive_date;
17698 vendor_contact_rec.department := contact_int_rec.department;
17699 vendor_contact_rec.mail_stop := contact_int_rec.mail_stop;
17700 vendor_contact_rec.area_code := contact_int_rec.area_code;
17701 vendor_contact_rec.phone := contact_int_rec.phone;
17702 vendor_contact_rec.alt_area_code := contact_int_rec.alt_area_code;
17703 vendor_contact_rec.alt_phone := contact_int_rec.alt_phone;
17704 vendor_contact_rec.fax_area_code := contact_int_rec.fax_area_code;
17705 vendor_contact_rec.fax_phone := contact_int_rec.fax;
17706 vendor_contact_rec.email_address := contact_int_rec.email_address;
17707 vendor_contact_rec.url := contact_int_rec.url;
17708 vendor_contact_rec.vendor_site_code := contact_int_rec.vendor_site_code;
17709 vendor_contact_rec.org_id := contact_int_rec.org_id;
17710 vendor_contact_rec.operating_unit_name :=
17711 contact_int_rec.operating_unit_name;
17712 vendor_contact_rec.vendor_interface_id := contact_int_rec.vendor_interface_id;
17713 vendor_contact_rec.vendor_id := contact_int_rec.vendor_id;
17714 -- Bug 7013954 start Need to populate party site related info
17715 vendor_contact_rec.org_party_site_id := contact_int_rec.party_site_id;
17716 vendor_contact_rec.party_site_name := contact_int_rec.party_site_name;
17717 -- Bug 7013954 end
17718
17719 Create_Vendor_Contact
17720 ( p_api_version => 1.0,
17721 p_init_msg_list => FND_API.G_FALSE,
17722 p_commit => FND_API.G_FALSE,
17723 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
17724 x_return_status => l_return_status,
17725 x_msg_count => l_msg_count,
17726 x_msg_data => l_msg_data,
17727 p_vendor_contact_rec => vendor_contact_rec,
17728 x_vendor_contact_id => l_vendor_contact_id,
17729 x_per_party_id => l_per_party_id,
17730 x_rel_party_id => l_rel_party_id,
17731 x_rel_id => l_rel_id,
17732 x_org_contact_id => l_org_contact_id,
17733 x_party_site_id => l_party_site_id);
17734
17735 IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
17736
17737 UPDATE Ap_Sup_Site_Contact_Int
17738 SET status = 'PROCESSED'
17739 WHERE CURRENT OF contact_int_cur; --Bug6413297
17740 /*WHERE vendor_contact_interface_id =
17741 vendor_contact_rec.vendor_contact_interface_id;*/--Bug6413297
17742
17743 ELSE
17744
17745 UPDATE Ap_Sup_Site_Contact_Int
17746 SET status = 'REJECTED'
17747 WHERE CURRENT OF contact_int_cur; --Bug6413297
17748 /*WHERE vendor_contact_interface_id =
17749 vendor_contact_rec.vendor_contact_interface_id;*/--Bug6413297
17750
17751 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
17752 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,
17753 ' Rejected Vendor_Contact_Interface_Id: '
17754 ||vendor_contact_rec.vendor_contact_interface_id
17755 ||', No. of Messages from Create_Vendor_Contact API: '|| l_msg_count
17756 ||', Message From Create_Vendor_Contact API: '||l_msg_data);
17757 END IF;
17758
17759 END IF;
17760
17761 END LOOP;
17762
17763 CLOSE contact_int_cur;
17764
17765 END IF;
17766 -- End of API body.
17767
17768 COMMIT WORK;
17769
17770 -- Standard call to get message count and if count is 1,
17771 -- get message info.
17772 FND_MSG_PUB.Count_And_Get(
17773 p_count => x_msg_count,
17774 p_data => x_msg_data
17775 );
17776
17777 EXCEPTION
17778 WHEN FND_API.G_EXC_ERROR THEN
17779 ROLLBACK TO Import_Vendor_Contact_PUB;
17780 x_return_status := FND_API.G_RET_STS_ERROR ;
17781 FND_MSG_PUB.Count_And_Get
17782 ( p_count => x_msg_count,
17783 p_data => x_msg_data
17784 );
17785 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
17786 ROLLBACK TO Import_Vendor_Contact_PUB;
17787 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
17788 FND_MSG_PUB.Count_And_Get
17789 ( p_count => x_msg_count,
17790 p_data => x_msg_data
17791 );
17792 WHEN OTHERS THEN
17793 ROLLBACK TO Import_Vendor_Contact_PUB;
17794 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
17795 IF FND_MSG_PUB.Check_Msg_Level
17796 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
17797 FND_MSG_PUB.Add_Exc_Msg
17798 ( G_PKG_NAME,
17799 l_api_name
17800 );
17801 END IF;
17802 FND_MSG_PUB.Count_And_Get
17803 ( p_count => x_msg_count,
17804 p_data => x_msg_data
17805 );
17806 END Import_Vendor_Contacts;
17807
17808 -- Bug 6745669: Added the API Update_Address_Assignments_DFF to update
17809 -- DFFs of the Vendor Contacts
17810 --
17811
17812 PROCEDURE Update_Address_Assignments_DFF(
17813 p_api_version IN NUMBER,
17814 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
17815 p_commit IN VARCHAR2 := FND_API.G_FALSE,
17816 p_contact_party_id IN NUMBER,
17817 p_org_party_site_id IN NUMBER,
17818 p_attribute_category IN VARCHAR2 DEFAULT NULL,
17819 p_attribute1 IN VARCHAR2 DEFAULT NULL,
17820 p_attribute2 IN VARCHAR2 DEFAULT NULL,
17821 p_attribute3 IN VARCHAR2 DEFAULT NULL,
17822 p_attribute4 IN VARCHAR2 DEFAULT NULL,
17823 p_attribute5 IN VARCHAR2 DEFAULT NULL,
17824 p_attribute6 IN VARCHAR2 DEFAULT NULL,
17825 p_attribute7 IN VARCHAR2 DEFAULT NULL,
17826 p_attribute8 IN VARCHAR2 DEFAULT NULL,
17827 p_attribute9 IN VARCHAR2 DEFAULT NULL,
17828 p_attribute10 IN VARCHAR2 DEFAULT NULL,
17829 p_attribute11 IN VARCHAR2 DEFAULT NULL,
17830 p_attribute12 IN VARCHAR2 DEFAULT NULL,
17831 p_attribute13 IN VARCHAR2 DEFAULT NULL,
17832 p_attribute14 IN VARCHAR2 DEFAULT NULL,
17833 p_attribute15 IN VARCHAR2 DEFAULT NULL,
17834 x_return_status OUT NOCOPY VARCHAR2,
17835 x_msg_count OUT NOCOPY NUMBER,
17836 x_msg_data OUT NOCOPY VARCHAR2
17837
17838 )
17839
17840 IS
17841 l_api_name CONSTANT VARCHAR2(30) := 'Update_Address_Assignments_DFF';
17842 l_api_version CONSTANT NUMBER := 1.0;
17843 l_count NUMBER := 0;
17844 l_event_vendor_contact_id AP_SUPPLIER_CONTACTS.vendor_contact_id%TYPE; --Bug 7307669
17845 BEGIN
17846
17847 -- Standard Start of API savepoint
17848 SAVEPOINT Update_Address_Assign_DFF_PUB;
17849
17850 -- Standard call to check for call compatibility.
17851 IF NOT FND_API.Compatible_API_Call ( l_api_version ,
17852 p_api_version ,
17853 l_api_name ,
17854 G_PKG_NAME )
17855 THEN
17856 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
17857 END IF;
17858
17859 -- Initialize message list if p_init_msg_list is set to TRUE.
17860 IF FND_API.to_Boolean( p_init_msg_list ) THEN
17861 FND_MSG_PUB.initialize;
17862 END IF;
17863
17864 -- Initialize API return status to success
17865 x_return_status := FND_API.G_RET_STS_SUCCESS;
17866
17867 -- API body
17868
17869
17870 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
17871 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,
17872 'Updating dffs for contact_party_id: ' || p_contact_party_id
17873 || ', org_party_site_id: '|| p_org_party_site_id);
17874 END IF;
17875
17876
17877 UPDATE ap_supplier_contacts
17878 SET attribute_category=p_attribute_category,
17879 attribute1 = p_attribute1,
17880 attribute2 = p_attribute2,
17881 attribute3 = p_attribute3,
17882 attribute4 = p_attribute4,
17883 attribute5 = p_attribute5,
17884 attribute6 = p_attribute6,
17885 attribute7 = p_attribute7,
17886 attribute8 = p_attribute8,
17887 attribute9 = p_attribute9,
17888 attribute10 = p_attribute10,
17889 attribute11 = p_attribute11,
17890 attribute12 = p_attribute12,
17891 attribute13 = p_attribute13,
17892 attribute14 = p_attribute14,
17893 attribute15 = p_attribute15
17894 WHERE per_party_id=p_contact_party_id
17895 AND org_party_site_id=p_org_party_site_id
17896 AND NVL(inactive_date, SYSDATE+1 ) > SYSDATE
17897 ;
17898
17899 l_count := SQL%ROWCOUNT;
17900
17901 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
17902 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,
17903 ' Updated '
17904 ||l_count
17905 ||' rows.');
17906 END IF;
17907
17908 BEGIN -- Bug 7307669 : Begin
17909 SELECT vendor_contact_id
17910 INTO l_event_vendor_contact_id
17911 FROM ap_supplier_contacts
17912 WHERE per_party_id=p_contact_party_id
17913 AND org_party_site_id=p_org_party_site_id
17914 AND NVL(inactive_date, SYSDATE+1 ) > SYSDATE ;
17915
17916 Raise_Supplier_Event( i_vendor_contact_id => l_event_vendor_contact_id );
17917 EXCEPTION
17918 WHEN NO_DATA_FOUND OR TOO_MANY_ROWS THEN
17919 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
17920 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME || l_api_name, SQLERRM);
17921 END IF;
17922 APP_EXCEPTION.RAISE_EXCEPTION;
17923 END; -- Bug 7307669 : End
17924
17925 -- End of API body.
17926
17927 -- Standard check of p_commit.
17928 IF FND_API.To_Boolean( p_commit ) THEN
17929 COMMIT WORK;
17930 END IF;
17931
17932 -- Standard call to get message count and if count is 1,
17933 -- get message info.
17934 FND_MSG_PUB.Count_And_Get(
17935 p_count => x_msg_count ,
17936 p_data => x_msg_data
17937 );
17938
17939 EXCEPTION
17940 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
17941 ROLLBACK TO Update_Address_Assign_DFF_PUB;
17942 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
17943 FND_MSG_PUB.Count_And_Get
17944 ( p_count => x_msg_count,
17945 p_data => x_msg_data
17946 );
17947 WHEN OTHERS THEN
17948 ROLLBACK TO Update_Address_Assign_DFF_PUB;
17949 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
17950 IF FND_MSG_PUB.Check_Msg_Level
17951 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
17952 FND_MSG_PUB.Add_Exc_Msg
17953 ( G_PKG_NAME ,
17954 l_api_name
17955 );
17956 END IF;
17957 FND_MSG_PUB.Count_And_Get
17958 ( p_count => x_msg_count,
17959 p_data => x_msg_data
17960 );
17961 END Update_Address_Assignments_DFF;
17962
17963 -- Bug 7307669 : Added the procedure Raise_Supplier_Event to raise a worklflow
17964 -- event whenever a Supplier / Supplier Site / Supplier Contact
17965 -- is created or updated
17966
17967 PROCEDURE Raise_Supplier_Event (
17968 i_vendor_id IN NUMBER DEFAULT NULL,
17969 i_vendor_site_id IN NUMBER DEFAULT NULL,
17970 i_vendor_contact_id IN NUMBER DEFAULT NULL
17971 )
17972 IS
17973 l_api_name CONSTANT VARCHAR2(200) := ' Raise_Supplier_Event';
17974 l_debug_info VARCHAR2(2000);
17975 l_parameter_list wf_parameter_list_t;
17976 l_event_key VARCHAR2(100);
17977 l_event_name VARCHAR2(100) := 'oracle.apps.ap.supplier.event';
17978 l_vendor_id AP_SUPPLIERS.vendor_id%TYPE;
17979 BEGIN
17980 l_debug_info := 'Called with parameters : i_vendor_id = '
17981 || to_char(i_vendor_id) || ', i_vendor_site_id = '
17982 || to_char(i_vendor_site_id) || ', i_vendor_contact_id = '
17983 || to_char(i_vendor_contact_id);
17984 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
17985 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME || l_api_name,
17986 l_debug_info);
17987 END IF;
17988
17989 -- If vendor_id was not passed then we should derive it based on
17990 -- vendor_site_id or vendor_contact_id
17991 IF i_vendor_id IS NULL THEN
17992 IF i_vendor_site_id IS NOT NULL THEN
17993 SELECT vendor_id
17994 INTO l_vendor_id
17995 FROM ap_supplier_sites_all
17996 WHERE vendor_site_id = i_vendor_site_id;
17997 END IF;
17998
17999 IF i_vendor_contact_id IS NOT NULL THEN
18000 SELECT vendor_id
18001 INTO l_vendor_id
18002 FROM po_vendor_contacts
18003 WHERE vendor_contact_id = i_vendor_contact_id
18004 AND ROWNUM = 1;
18005 END IF;
18006 ELSE
18007 l_vendor_id := i_vendor_id;
18008 END IF;
18009
18010 l_parameter_list := wf_parameter_list_t(
18011 wf_parameter_t('VENDOR_ID',
18012 to_char(l_vendor_id) ),
18013 wf_parameter_t('VENDOR_SITE_ID',
18014 to_char(i_vendor_site_id) ),
18015 wf_parameter_t('VENDOR_CONTACT_ID',
18016 to_char(i_vendor_contact_id) )
18017 );
18018
18019 SELECT to_char(ap_supplier_event_s.nextval)
18020 INTO l_event_key
18021 FROM dual;
18022
18023 wf_event.raise( p_event_name => l_event_name,
18024 p_event_key => l_event_key,
18025 p_parameters => l_parameter_list);
18026
18027 l_debug_info := 'After raising workflow event : '
18028 || 'event_name = ' || l_event_name
18029 || ' event_key = ' || l_event_key ;
18030
18031 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
18032 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
18033 l_debug_info);
18034 END IF;
18035
18036 EXCEPTION
18037 WHEN NO_DATA_FOUND OR TOO_MANY_ROWS THEN
18038 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
18039 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME || l_api_name,
18040 SQLERRM);
18041 END IF;
18042 APP_EXCEPTION.RAISE_EXCEPTION;
18043 WHEN OTHERS THEN
18044 WF_CORE.CONTEXT(G_MODULE_NAME, l_api_name, l_event_name,
18045 l_event_key);
18046 RAISE;
18047 END Raise_Supplier_Event;
18048
18049 -- Bug 9143273 Added API Is_Vendor_Site_Merged for ISP to decide if a supplier is
18050 -- merged or not. If the Supplier is merged then ISP should make the
18051 -- end date field as the merged date and protect this field from the
18052 -- UI update.
18053 FUNCTION Is_Vendor_Site_Merged(
18054 p_vendor_site_id IN VARCHAR2
18055 )
18056 RETURN VARCHAR2
18057 IS
18058 l_ret_value VARCHAR2(1);
18059 l_vndr_site_merged_cnt NUMBER;
18060 BEGIN
18061 l_ret_value := 'N';
18062
18063 SELECT COUNT( * )
18064 INTO l_vndr_site_merged_cnt
18065 FROM ap_duplicate_vendors_all adv
18066 WHERE adv.duplicate_vendor_site_id = p_vendor_site_id
18067 AND NVL(adv.process_flag,'N') = 'Y'
18068 AND ROWNUM=1;
18069
18070 IF l_vndr_site_merged_cnt = 0 THEN
18071 l_ret_value := 'N';
18072 ELSE
18073 l_ret_value := 'Y';
18074 END IF;
18075
18076 RETURN l_ret_value;
18077
18078 END Is_Vendor_Site_Merged;
18079 --Bug 9143273 End
18080
18081 --GTAS Project Bug#13464635 begin
18082 PROCEDURE CHECK_GDF(
18083 p_vendor_id IN VARCHAR2,
18084 x_valid OUT NOCOPY BOOLEAN,
18085 P_calling_sequence IN VARCHAR2) IS
18086
18087 l_hold_reject_exists_flag VARCHAR2(1) := 'N';
18088 l_return_code VARCHAR2(100);
18089 current_calling_sequence VARCHAR2(1000);
18090 l_debug_info VARCHAR2(1000);
18091
18092 BEGIN
18093
18094 current_calling_sequence :=
18095 'AP_VENDOR_PUB_PKG.CHECK_GDF<-'
18096 ||P_calling_sequence;
18097
18098 x_valid := TRUE;
18099
18100 ------------------------------------------------------------------------
18101 l_debug_info := 'Call to AP_INVOICES_UTILITY_PKG.CHECK_GDF_VALID';
18102 ------------------------------------------------------------------------
18103 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
18104 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME,l_debug_info);
18105 END IF;
18106
18107 AP_INVOICES_UTILITY_PKG.CHECK_GDF_VALID
18108 (p_vendor_id, --P_id
18109 'SUP_IMP', --P_calling_mode
18110 'AP_SUPPLIERS_INT', --P_table_name
18111 l_hold_reject_exists_flag, --P_hold_reject_exists_flag
18112 l_return_code, --p_return_code
18113 current_calling_sequence); --p_calling_sequence
18114
18115 --------------------------------------------------------------------------
18116 l_debug_info := 'l_hold_reject_exists_flag: '||l_hold_reject_exists_flag||
18117 'l_return_code: '||l_return_code;
18118 --------------------------------------------------------------------------
18119 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
18120 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME,l_debug_info);
18121 END IF;
18122 IF(l_hold_reject_exists_flag = 'Y' AND
18123 l_return_code IS NOT NULL) THEN
18124 x_valid := FALSE;
18125 END IF;
18126 END;
18127 --End Bug#13464635
18128
18129 END AP_VENDOR_PUB_PKG;