DBA Data[Home] [Help]

PACKAGE BODY: APPS.POS_SEARCH_DUP_PARTY_PKG

Source


1 PACKAGE BODY POS_SEARCH_DUP_PARTY_PKG AS
2 /* $Header: POSDQMB.pls 120.1 2010/11/25 12:25:42 puppulur noship $ */
3 
4   g_module VARCHAR2(30) := 'POS_SEARCH_DUP_PARTY_PKG';
5 
6   PROCEDURE find_duplicate_parties
7        ( p_init_msg_list  IN VARCHAR2 := fnd_api.g_true,
8         p_supp_name      IN VARCHAR2,
9         p_supp_name_alt  IN VARCHAR2,
10         p_tax_payer_id   IN VARCHAR2,
11         p_tax_reg_no     IN VARCHAR2,
12         p_duns_no        IN VARCHAR2,
13         p_sic_code       IN VARCHAR2,
14         p_sup_reg_id     IN VARCHAR2,
15         x_search_ctx_id  OUT NOCOPY NUMBER,
16         x_return_status  OUT NOCOPY VARCHAR2,
17         x_msg_count      OUT NOCOPY NUMBER,
18         x_msg_data       OUT NOCOPY VARCHAR2)
19   IS
20     l_party_search_rec    hz_party_search.party_search_rec_type;
21     l_search_ctx_id       NUMBER;
22     l_num_matches         NUMBER;
23     l_party_site_list     hz_party_search.party_site_list;
24     l_contact_list        hz_party_search.contact_list;
25     l_contact_point_list  hz_party_search.contact_point_list;
26     l_supp_name           VARCHAR2(100) := p_supp_name;
27     l_restrict_sql        VARCHAR2(20) := NULL;
28     l_match_type          VARCHAR2(20) := NULL;
29     l_search_merged       VARCHAR2(20) := NULL;
30     l_rule_id             NUMBER;
31     l_step         VARCHAR2(100);
32     l_method       VARCHAR2(100);
33 
34     l_contact_name        VARCHAR2(100);
35     l_email		  VARCHAR2(100);
36     l_contact_phone	  VARCHAR2(100);
37 
38     addr_cnt          number := 0;
39     cntc_cnt          number := 0;
40 
41     CURSOR c_supp_addr_cur IS
42     SELECT address_line1, city, state, postal_code, country
43     FROM POS_ADDRESS_REQUESTS
44     WHERE mapping_id = (select mapping_id
45                         from pos_supplier_mappings
46                         where supplier_reg_id = p_sup_reg_id);
47 
48    CURSOR c_supp_contact_cur IS
49     SELECT (first_name || ' ' || last_name) contact_name,
50        email_address, phone_number
51     FROM pos_contact_requests
52     WHERE  do_not_delete = 'Y' and
53            mapping_id = (select mapping_id
54                         from pos_supplier_mappings
55                         where supplier_reg_id = p_sup_reg_id);
56 
57 
58   BEGIN
59 
60      l_method := 'find_duplicate_parties';
61      l_step := 'Before Calling hz_party_search.find_parties';
62      x_return_status := fnd_api.g_ret_sts_error;
63      x_msg_count := 0;
64      x_msg_data := NULL;
65 
66       IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
67       fnd_log.string
68         (fnd_log.level_statement
69          , g_module || '.' || l_method
70          , l_step);
71       END IF;
72 
73    /* Get Match Rule Id from Profile Option */
74 
75       l_rule_id := fnd_profile.value('HZ_ORG_DUP_PREV_MATCHRULE');
76 
77     l_party_search_rec.party_all_names := l_supp_name;
78     l_party_search_rec.organization_type := 'ORGANIZATION';
79     l_party_search_rec.jgzz_fiscal_code := p_tax_payer_id;
80     l_party_search_rec.tax_reference := p_tax_reg_no;
81     l_party_search_rec.duns_number_c := p_duns_no;
82 /* Commenting below as we donot have provision on UI to enter SIC code Type */
83 --    l_party_search_rec.sic_code := p_sic_code;
84     l_party_search_rec.organization_name_phonetic  := p_supp_name_alt;
85 
86 
87      FOR address_rec IN c_supp_addr_cur
88      loop
89       addr_cnt := addr_cnt+1;
90       l_party_site_list(addr_cnt).address1    := address_rec.address_line1;
91       l_party_site_list(addr_cnt).city        := address_rec.city;
92       l_party_site_list(addr_cnt).state       := address_rec.state;
93       l_party_site_list(addr_cnt).postal_code := address_rec.postal_code;
94       l_party_site_list(addr_cnt).country     := address_rec.country;
95      end loop;
96 
97      FOR cntc_rec IN c_supp_contact_cur
98      loop
99       cntc_cnt := cntc_cnt+1;
100       l_contact_list(cntc_cnt).contact_name :=  cntc_rec.contact_name;
101       if (cntc_rec.email_address is not null) then
102         l_contact_point_list(cntc_cnt).contact_point_type := 'EMAIL';
103         l_contact_point_list(cntc_cnt).email_address := cntc_rec.email_address;
104      elsif ( cntc_rec.phone_number is not null) then
105       l_contact_point_list(cntc_cnt).contact_point_type := 'PHONE';
106       l_contact_point_list(cntc_cnt).phone_number :=  cntc_rec.phone_number;
107      end if;
108       end loop;
109 
110     hz_party_search.find_parties(
111     p_init_msg_list,
112     l_rule_id,
113     l_party_search_rec,
114     l_party_site_list,
115     l_contact_list,
116     l_contact_point_list,
117     l_restrict_sql,
118     l_search_merged,
119     l_search_ctx_id,
120     l_num_matches,
121     x_return_status,
122     x_msg_count,
123     x_msg_data);
124 
125     l_step := 'After Calling hz_party_search.find_parties';
126 
127     IF (x_return_status = fnd_api.g_ret_sts_error) THEN
128       IF (fnd_log.level_error >= fnd_log.g_current_runtime_level) THEN
129          fnd_log.string
130            (fnd_log.level_error
131             , g_module || '.' || l_method
132             , 'Error in hz_party_search.find_parties ' || x_msg_data);
133       END IF;
134       RETURN;
135     ELSIF (x_return_status = fnd_api.g_ret_sts_success) THEN
136        x_search_ctx_id := l_search_ctx_id;
137     END IF;
138 
139     RETURN;
140 
141   END find_duplicate_parties;
142 
143 PROCEDURE pos_create_organization(
144     p_supp_name            IN     VARCHAR2,
145     p_supp_name_alt        IN     VARCHAR2,
146     p_tax_payer_id         IN     VARCHAR2,
147     p_tax_reg_no           IN     VARCHAR2,
148     p_duns_number          IN     VARCHAR2,
149     p_sic_code             IN     VARCHAR2,
150     p_url                  IN     VARCHAR2,
151     p_org_name_phonetic    IN     VARCHAR2,
152     x_return_status        OUT    NOCOPY VARCHAR2,
153     x_msg_count            OUT    NOCOPY NUMBER,
154     x_msg_data             OUT    NOCOPY VARCHAR2,
155     x_org_party_id         OUT    NOCOPY NUMBER,
156     x_org_party_number     OUT    NOCOPY VARCHAR2,
157     x_org_profile_id       OUT    NOCOPY NUMBER
158   )
159   AS
160     l_org_rec                      HZ_PARTY_V2PUB.organization_rec_type;
161     l_party_rec                    HZ_PARTY_V2PUB.party_rec_type;
162     l_api_name                     VARCHAR2(30) := null;
163     l_context                      VARCHAR2(30) := null;
164     l_step                         VARCHAR2(100):= null;
165     l_method                       VARCHAR2(100):= null;
166     g_module                       VARCHAR2(100):= null;
167     l_party_id                     NUMBER       := 0   ;
168     l_party_usage_code             VARCHAR2(100):= null;
169 
170     l_org_return_status            VARCHAR2(50);
171     l_org_msg_count                NUMBER;
172     l_org_msg_data                 VARCHAR2(1000);
173     l_party_num                    VARCHAR2(1);
174 
175 
176     l_url VARCHAR2(100)    :=   p_url;
177     l_contact_point_rec         HZ_CONTACT_POINT_V2PUB.contact_point_rec_type;
178     l_url_rec                   HZ_CONTACT_POINT_V2PUB.web_rec_type;
179     l_url_return_status VARCHAR2(50):= FND_API.G_RET_STS_SUCCESS;
180     l_url_msg_count             NUMBER;
181     l_url_msg_data              VARCHAR2(1000);
182     l_url_contact_point_id      NUMBER;
183 
184 
185 BEGIN
186 
187     l_method           := 'create_new_organization';
188     l_step             := 'Before Calling hz_party_v2pub.create_organization';
189     l_api_name         := 'Create_Organization';
190 
191 
192     l_org_rec.organization_name   :=  p_supp_name;
193     l_org_rec.known_as            := p_supp_name_alt;
194     l_org_rec.organization_name_phonetic   :=  p_org_name_phonetic;
195     l_org_rec.created_by_module   := 'POS_SUPPLIER_MGMT';
196     l_org_rec.APPLICATION_ID      :=  200;
197     l_org_rec.duns_number_c       := p_duns_number;
198 /* Commenting below as we donot have provision on UI to enter SIC code Type */
199 --    l_org_rec.sic_code            := p_sic_code;
200     l_org_rec.JGZZ_FISCAL_CODE    :=  p_tax_payer_id;
201     l_org_rec.TAX_REFERENCE       :=  p_tax_reg_no;
202 
203     fnd_profile.get('HZ_GENERATE_PARTY_NUMBER', l_party_num);
204     IF nvl(l_party_num, 'Y') = 'N' THEN
205            SELECT HZ_PARTY_NUMBER_S.Nextval
206            INTO l_party_rec.party_number
207            FROM DUAL;
208     END IF;
209 
210     l_org_rec.party_rec := l_party_rec;
211 
212 
213     hz_party_v2pub.create_organization(
214                 p_init_msg_list => FND_API.G_FALSE,
215                 p_organization_rec => l_org_rec,
216                 p_party_usage_code => 'SUPPLIER_PROSPECT',
217                 x_return_status => l_org_return_status,
218                 x_msg_count => l_org_msg_count,
219                 x_msg_data => l_org_msg_data,
220                 x_party_id => x_org_party_id,
221                 x_party_number => x_org_party_number,
222                 x_profile_id => x_org_profile_id);
223 
224     x_return_status    :=  l_org_return_status ;
225     x_msg_count        :=  l_org_msg_count;
226     x_msg_data         :=  l_org_msg_data;
227 
228     l_step := 'After Calling hz_party_v2pub.create_organization';
229 
230     IF  l_org_return_status <> fnd_api.g_ret_sts_success THEN
231 
232         IF (fnd_log.level_error >= fnd_log.g_current_runtime_level) THEN
233          fnd_log.string
234            (fnd_log.level_error
235             , g_module || '.' || l_method||'.'||l_step
236             , 'Error in hz_party_v2pub.create_organization ' || x_msg_data);
237         END IF;
238         RETURN;
239     END IF;
240 
241     IF l_url IS NOT NULL THEN
242 
243       --populate contact point record
244       l_contact_point_rec.owner_table_name  := 'HZ_PARTIES';
245       l_contact_point_rec.owner_table_id    := x_org_party_id;
246       l_contact_point_rec.created_by_module := 'POS_SUPPLIER_MGMT';
247       l_contact_point_rec.application_id    := 200;
248 
249       --populate url record
250 
251       l_contact_point_rec.contact_point_type    := 'WEB';
252       l_contact_point_rec.primary_flag          := 'Y';
253       l_contact_point_rec.contact_point_purpose := 'HOMEPAGE';
254       l_contact_point_rec.primary_by_purpose    := 'Y';
255       l_url_rec.web_type := 'HTTP';
256       l_url_rec.url      := l_url;
257 
258               hz_contact_point_v2pub.create_web_contact_point(
259                      p_init_msg_list     => FND_API.G_FALSE,
260                      p_contact_point_rec => l_contact_point_rec,
261                      p_web_rec           => l_url_rec,
262                      x_return_status    => l_url_return_status,
263                      x_msg_count        => l_url_msg_count,
264                      x_msg_data         => l_url_msg_data,
265                      x_contact_point_id => l_url_contact_point_id);
266 
267       IF l_url_return_status <> fnd_api.g_ret_sts_success THEN
268 
269         IF (fnd_log.level_error >= fnd_log.g_current_runtime_level) THEN
270           fnd_log.string(fnd_log.level_error,
271                  g_module || '.' || l_method || '.' || l_step,
272                  'hz_contact_point_v2pub.create_web_contact_point ' ||
273                   l_url_msg_data);
274         END IF;
275         RETURN;
276       END IF;
277 
278     END IF;
279 
280 RETURN;
281 END pos_create_organization;
282 
283 PROCEDURE update_supp_party_id(
284         p_supp_reg_id		IN NUMBER,
285         p_party_id		IN NUMBER,
286         x_return_status		OUT NOCOPY VARCHAR2
287 )
288 AS
289 
290 	l_step			VARCHAR2(100):= null;
291 	l_method                VARCHAR2(100):= null;
292 
293 	l_supp_reg_id 		NUMBER                 :=   p_supp_reg_id  ;
294 	l_party_id		NUMBER                 :=   p_party_id  ;
295 
296 BEGIN
297 	l_method	:= 'update_supp_party_id';
298 	l_step		:= 'update pos_supplier_registrations with partyid';
299 
300 
301 	IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
302 	 fnd_log.string
303 	   (fnd_log.level_statement
304 	    , g_module || '.' || l_method
305 	    , l_step);
306 	END IF;
307 
308      Begin
309 	UPDATE pos_supplier_registrations
310 	SET vendor_party_id = l_party_id,
311 	    last_updated_by = fnd_global.user_id,
312 	    last_update_date = Sysdate,
313 	    last_update_login = fnd_global.login_id
314 	WHERE supplier_reg_id = l_supp_reg_id;
315 
316 	x_return_status := fnd_api.g_ret_sts_success;
317      Exception
318        When no_data_found then
319         IF (fnd_log.level_error >= fnd_log.g_current_runtime_level) THEN
320          fnd_log.string
321            (fnd_log.level_error
322             , g_module || '.' || l_method||'.'||l_step
323             , 'Error updating party id ');
324         END IF;
325         x_return_status :=  fnd_api.g_ret_sts_error;
326        When others then
327           x_return_status :=  fnd_api.g_ret_sts_error;
328      end;
329 
330 RETURN;
331 END update_supp_party_id;
332 
333 
334 PROCEDURE pos_update_organization(
335     p_supp_name                 IN     VARCHAR2,
336     p_supp_name_alt             IN     VARCHAR2,
337     p_tax_payer_id              IN     VARCHAR2,
338     p_tax_reg_no                IN     VARCHAR2,
339     p_duns_number               IN     VARCHAR2,
340     p_sic_code                  IN     VARCHAR2,
341     p_party_id                  IN     NUMBER,
342 --    p_party_obj_version_no	IN     NUMBER,
343     x_profile_id		OUT    NOCOPY NUMBER,
344     x_return_status             OUT    NOCOPY VARCHAR2,
345     x_msg_count                 OUT    NOCOPY NUMBER,
346     x_msg_data                  OUT    NOCOPY VARCHAR2
347   )
348   AS
349     l_org_rec                      HZ_PARTY_V2PUB.organization_rec_type;
350     l_party_rec                    HZ_PARTY_V2PUB.party_rec_type;
351     l_api_name                     VARCHAR2(30) := null;
352     l_context                      VARCHAR2(30) := null;
353     l_step                         VARCHAR2(100):= null;
354     l_method                       VARCHAR2(100):= null;
355     g_module                       VARCHAR2(100):= null;
356     l_profile_id                   NUMBER;
357     l_org_return_status            VARCHAR2(50);
358     l_org_msg_count                NUMBER;
359     l_party_obj_version            NUMBER := 0;
360     l_org_msg_data                 VARCHAR2(1000);
361     l_party_num                    VARCHAR2(1);
362 
363 BEGIN
364 
365     l_method           := 'update_organization';
366     l_step             := 'Before Calling hz_party_v2pub.update_organization';
367     l_api_name         := 'Update_Organization';
368 
369 
370      select object_version_number
371      into l_party_obj_version
372      from hz_parties
373      where party_id = p_party_id;
374 
375     l_org_rec.organization_name   :=  p_supp_name;
376     l_org_rec.organization_name_phonetic   :=  p_supp_name_alt;
377 /* Commenting below as we cannor update application Id while updating Party Rec */
378     --l_org_rec.APPLICATION_ID      :=  200;
379     l_org_rec.duns_number_c       := p_duns_number;
380 /* Commenting below as we donot have provision on UI to enter SIC code Type */
381 --    l_org_rec.sic_code            := p_sic_code;
382     l_org_rec.JGZZ_FISCAL_CODE    :=  p_tax_payer_id;
383     l_org_rec.TAX_REFERENCE       :=  p_tax_reg_no;
384 
385     l_party_rec.party_id  := p_party_id;
386 
387     l_org_rec.party_rec := l_party_rec;
388 
389 
390     hz_party_v2pub.update_organization(
391                 p_init_msg_list => FND_API.G_FALSE,
392                 p_organization_rec => l_org_rec,
393                 p_party_object_version_number => l_party_obj_version,
394                 x_profile_id => l_profile_id,
395                 x_return_status => l_org_return_status,
396                 x_msg_count => l_org_msg_count,
397                 x_msg_data => l_org_msg_data
398                 );
399 
400     x_return_status    :=  l_org_return_status ;
401     x_msg_count        :=  l_org_msg_count;
402     x_msg_data         :=  l_org_msg_data;
403 
404     l_step := 'After Calling hz_party_v2pub.update_Organization';
405 
406     IF  l_org_return_status <> fnd_api.g_ret_sts_success THEN
407 
408         IF (fnd_log.level_error >= fnd_log.g_current_runtime_level) THEN
409          fnd_log.string
410            (fnd_log.level_error
411             , g_module || '.' || l_method||'.'||l_step
412             , 'Error in hz_party_v2pub.update_organization ' || x_msg_data);
413         END IF;
414         RETURN;
415     END IF;
416 
417 RETURN;
418 END pos_update_organization;
419 
420 
421 PROCEDURE search_duplicate_parties(
422                                   p_init_msg_list IN VARCHAR2 := fnd_api.g_true,
423                                    p_party_name    IN VARCHAR2,
424                                    p_party_number  IN VARCHAR2,
425                                    p_status        IN VARCHAR2,
426                                    p_sic_code      IN VARCHAR2,
427                                    p_address       IN VARCHAR2,
428                                    p_city          IN VARCHAR2,
429                                    p_state         IN VARCHAR2,
430                                    p_country       IN VARCHAR2,
431                                    x_search_ctx_id OUT NOCOPY NUMBER,
432                                    x_return_status OUT NOCOPY VARCHAR2,
433                                    x_msg_count     OUT NOCOPY NUMBER,
434                                    x_msg_data      OUT NOCOPY VARCHAR2)
435 IS
436   l_party_search_rec   hz_party_search.party_search_rec_type;
437   l_search_ctx_id      NUMBER;
438   l_num_matches        NUMBER;
439   l_party_site_list    hz_party_search.party_site_list;
440   l_contact_list       hz_party_search.contact_list;
441   l_contact_point_list hz_party_search.contact_point_list;
442   l_party_name         VARCHAR2(100) := p_party_name;
443   l_restrict_sql       VARCHAR2(20) := NULL;
444   l_match_type         VARCHAR2(20) := NULL;
445   l_search_merged      VARCHAR2(20) := NULL;
446   l_rule_id            NUMBER;
447   l_step               VARCHAR2(100);
448   l_method             VARCHAR2(100);
449 
450 BEGIN
451 
452   l_method        := 'search_duplicate_parties';
453   l_step          := 'Before Calling hz_party_search.search_duplicate_parties';
454   x_return_status := fnd_api.g_ret_sts_error;
455   x_msg_count     := 0;
456   x_msg_data      := NULL;
457 
458   IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
459     fnd_log.string(fnd_log.level_statement,
460                    g_module || '.' || l_method,
461                    l_step);
462   END IF;
463 
464   /* Get Match Rule Id from Profile Option */
465 
466   l_rule_id := fnd_profile.value('HZ_DL_IDENTIFY_DUP_RULE');
467 
468   l_party_search_rec.party_all_names   := l_party_name;
469   l_party_search_rec.organization_type := 'ORGANIZATION';
470   l_party_search_rec.party_number      := p_party_number;
471   l_party_search_rec.sic_code          := p_sic_code;
472   l_party_search_rec.status            := p_status;
473 
474   l_party_site_list(1).address1 := p_address;
475   l_party_site_list(1).city := p_city;
476   l_party_site_list(1).state := p_state;
477   l_party_site_list(1).country := p_country;
478 
479   hz_party_search.find_parties(p_init_msg_list,
480                                l_rule_id,
481                                l_party_search_rec,
482                                l_party_site_list,
483                                l_contact_list,
484                                l_contact_point_list,
485                                l_restrict_sql,
486                                l_search_merged,
487                                l_search_ctx_id,
488                                l_num_matches,
489                                x_return_status,
490                                x_msg_count,
491                                x_msg_data);
492 
493   l_step := 'After Calling hz_party_search.search_duplicate_parties';
494 
495   IF (x_return_status = fnd_api.g_ret_sts_error) THEN
496     IF (fnd_log.level_error >= fnd_log.g_current_runtime_level) THEN
497       fnd_log.string(fnd_log.level_error,
498                      g_module || '.' || l_method,
499                      'Error in hz_party_search.search_duplicate_parties ' ||
500                      x_msg_data);
501     END IF;
502     RETURN;
503   ELSIF (x_return_status = fnd_api.g_ret_sts_success) THEN
504     x_search_ctx_id := l_search_ctx_id;
505   END IF;
506 
507   RETURN;
508 
509 END search_duplicate_parties;
510 
511 PROCEDURE enable_party_as_supplier(p_party_id       IN NUMBER,
512                                    p_vendor_num     IN VARCHAR2,
513                                    x_vendor_id      OUT NOCOPY NUMBER,
514                                    x_return_status  OUT NOCOPY VARCHAR2,
515                                    x_msg_count      OUT NOCOPY NUMBER,
516                                    x_msg_data       OUT NOCOPY VARCHAR2)
517 IS
518   l_msg_count                      NUMBER;
519   l_msg_data                       VARCHAR2(100);
520   l_step                           VARCHAR2(100);
521   l_method                         VARCHAR2(100);
522 
523 
524   l_vendor_rec                     ap_vendor_pub_pkg.r_vendor_rec_type;
525   l_vendor_id                      NUMBER;
526   l_party_id                       NUMBER         := p_party_id;
527   l_vendor_num                     VARCHAR2(1000) := p_vendor_num;
528 
529   l_vendor_name                    VARCHAR2(1000);
530   l_taxpayer_id                    VARCHAR2(1000);
531   l_taxreg_num                     VARCHAR2(1000);
532 
533 BEGIN
534 
535   l_method := 'enable_party_as_supplier';
536   l_step := 'Before Calling pos_vendor_pub_pkg.create_vendor';
537   x_return_status := fnd_api.g_ret_sts_error;
538   x_msg_count := 0;
539   x_msg_data := NULL;
540 
541   IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
542     fnd_log.string(fnd_log.level_statement,
543                    g_module || '.' || l_method,
544                    l_step);
545   END IF;
546 
547   /* Get other data from hz_parties */
548   SELECT party_name, jgzz_fiscal_code, tax_reference
549   INTO   l_vendor_name, l_taxpayer_id, l_taxreg_num
550   FROM hz_parties
551   WHERE party_id = l_party_id;
552 
553   l_vendor_rec.party_id          := l_party_id;
554   l_vendor_rec.segment1          := l_vendor_num;
555   l_vendor_rec.vendor_name       := l_vendor_name;
556   l_vendor_rec.jgzz_fiscal_code  := l_taxpayer_id;
557   l_vendor_rec.tax_reference     := l_taxreg_num;
558   l_vendor_rec.start_date_active := Sysdate;
559 
560   l_step := 'call pos_vendor_pub_pkg.create_vendor';
561 
562   IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
563     fnd_log.string
564       (fnd_log.level_statement
565        , g_module || '.' || l_method
566        , l_step);
567   END IF;
568 
569   pos_vendor_pub_pkg.create_vendor(
570                 l_vendor_rec,
571                 x_return_status,
572                 x_msg_count,
573                 x_msg_data,
574                 l_vendor_id,
575                 l_party_id);
576 
577    IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
578       fnd_log.string
579         (fnd_log.level_statement
580          , g_module || '.' || l_method
581          , 'create_vendor call result: x_return_status ' || x_return_status
582          || ' x_msg_count ' || x_msg_count
583          || ' x_msg_data ' || x_msg_data
584          );
585    END IF;
586     l_step := 'After Calling pos_vendor_pub_pkg.create_vendor';
587 
588   IF (x_return_status = fnd_api.g_ret_sts_error) THEN
589     IF (fnd_log.level_error >= fnd_log.g_current_runtime_level) THEN
590       fnd_log.string(fnd_log.level_error,
591                      g_module || '.' || l_method,
592                      'Error in pos_vendor_pub_pkg.create_vendor' ||
593                      x_msg_data);
594     END IF;
595     RETURN;
596   ELSIF (x_return_status = fnd_api.g_ret_sts_success) THEN
597     x_vendor_id := l_vendor_id;
598   END IF;
599 
600   RETURN;
601 END enable_party_as_supplier;
602 
603 PROCEDURE assign_party_usage( p_contact_party_id  IN NUMBER,
604                               x_return_status     OUT nocopy VARCHAR2,
605                               x_msg_count     	  OUT nocopy NUMBER,
606                               x_msg_data      	  OUT nocopy VARCHAR2
607                              )
608 IS
609   l_party_usg_rec   HZ_PARTY_USG_ASSIGNMENT_PVT.party_usg_assignment_rec_type;
610   l_party_usg_validation_level NUMBER;
611   l_step                       VARCHAR2(100);
612   l_method                     VARCHAR2(100);
613 BEGIN
614   l_method := 'assign_party_usage';
615   l_step := 'Before Calling HZ_PARTY_USG_ASSIGNMENT_PVT.assign_party_usage';
616   x_return_status := fnd_api.g_ret_sts_error;
617   x_msg_count := 0;
618   x_msg_data := NULL;
619 
620   IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
621     fnd_log.string
622       (fnd_log.level_statement
623        , g_module || '.' || l_method
624        , l_step);
625   END IF;
626 
627   l_party_usg_validation_level := HZ_PARTY_USG_ASSIGNMENT_PVT.G_VALID_LEVEL_NONE;
628   l_party_usg_rec.party_id := p_contact_party_id;
629   l_party_usg_rec.party_usage_code := 'SUPPLIER_CONTACT';
630   l_party_usg_rec.created_by_module := 'POS_SUPPLIER_MGMT';
631 
632   HZ_PARTY_USG_ASSIGNMENT_PVT.assign_party_usage (
633   p_validation_level          => l_party_usg_validation_level,
634   p_party_usg_assignment_rec  => l_party_usg_rec,
635   x_return_status             => x_return_status,
636   x_msg_count                 => x_msg_count,
637   x_msg_data                  => x_msg_data);
638 
639   l_step := 'After Calling HZ_PARTY_USG_ASSIGNMENT_PVT.assign_party_usage';
640   IF (x_return_status = fnd_api.g_ret_sts_error) THEN
641     IF (fnd_log.level_error >= fnd_log.g_current_runtime_level) THEN
642       fnd_log.string(fnd_log.level_error,
643                      g_module || '.' || l_method,
644                    'Error in HZ_PARTY_USG_ASSIGNMENT_PVT.assign_party_usage' ||
645                      x_msg_data);
646     END IF;
647     RETURN;
648   END IF;
649 
650 RETURN;
651 
652 EXCEPTION
653    WHEN OTHERS THEN
654      x_return_status :='E';
655      IF  (fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
656        fnd_log.string(fnd_log.level_statement, g_module || '.' || 'Error while assigning usage ' , x_msg_data);
657      END IF;
658 
659 END assign_party_usage;
660 
661 
662 END POS_SEARCH_DUP_PARTY_PKG;