DBA Data[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;