DBA Data[Home] [Help]

PACKAGE BODY: APPS.HZ_DNBUI_PVT

Source


1 PACKAGE BODY HZ_DNBUI_PVT AS
2 /*$Header: ARHDNBUB.pls 120.11.12010000.2 2009/11/23 09:47:08 vsegu ship $*/
3 
4 /*======================================================================
5  | FUNCTION
6  |              get_lookup_meaning
7  |
8  | DESCRIPTION
9  |
10  | ARGUMENTS  : IN:
11  |                      p_lookup_type
12  |                      p_lookup_code
13  |              OUT:
14  |           IN/OUT:
15  |
16  | RETURNS    : NONE
17  |
18  | MODIFICATION HISTORY
19  |
20  +======================================================================*/
21 
22 FUNCTION get_lookup_meaning (p_lookup_type  IN VARCHAR2,
23                              p_lookup_code  IN VARCHAR2)
24  RETURN VARCHAR2 IS
25 l_meaning ar_lookups.meaning%TYPE;
26 BEGIN
27 
28   SELECT meaning
29   INTO   l_meaning
30   FROM   ar_lookups
31   WHERE  lookup_type = p_lookup_type
32     AND  lookup_code = p_lookup_code ;
33   return(l_meaning);
34 EXCEPTION
35  WHEN no_data_found  THEN
36   return(null);
37  WHEN OTHERS THEN
38   raise;
39 END;
40 
41 /*======================================================================
42  | FUNCTION
43  |              get_financial_number
44  |
45  | DESCRIPTION
46  |
47  | ARGUMENTS  : IN:
48  |                      p_financial_name
49  |                      p_financial_report_id
50  |              OUT:
51  |           IN/OUT:
52  |
53  | RETURNS    : NONE
54  |
55  | MODIFICATION HISTORY
56  |     17-OCT-00  Jianying Huang  Bug 1462704: Rename table HZ_FINANCIAL_NUMBERS to
57  |                       HZ_FINANCIAL_NUMBERS_R1
58  |     30-OCT-00  Jianying Huang  Roll back the renaming table changes.
59  |
60  +======================================================================*/
61 
62 function get_financial_number(p_financial_name IN VARCHAR2, p_financial_report_id IN NUMBER) RETURN NUMBER
63 IS
64 v_financial_number NUMBER;
65 
66 BEGIN
67 
68 select financial_number into v_financial_number from hz_financial_numbers
69 where financial_report_id   = p_financial_report_id
70 and   financial_number_name = p_financial_name;
71 
72 RETURN v_financial_number;
73 END get_financial_number;
74 
75 /*======================================================================
76  | FUNCTION
77  |              get_financial_number_currency
78  |
79  | DESCRIPTION
80  |
81  | ARGUMENTS  : IN:
82  |                      p_financial_name
83  |                      p_financial_report_id
84  |              OUT:
85  |           IN/OUT:
86  |
87  | RETURNS    : NONE
88  |
89  | MODIFICATION HISTORY
90  |     17-OCT-00  Jianying Huang  Bug 1462704: Rename table HZ_FINANCIAL_NUMBERS to
91  |                       HZ_FINANCIAL_NUMBERS_R1
92  |     30-OCT-00  Jianying Huang  Roll back the renaming table changes.
93  |
94  +======================================================================*/
95 
96 function get_financial_number_currency(p_financial_name IN VARCHAR2, p_financial_report_id IN NUMBER) RETURN VARCHAR2
97 IS
98 v_financial_number_currency VARCHAR2(240);
99 
100 BEGIN
101 
102 select financial_number_currency into v_financial_number_currency from hz_financial_numbers
103 where financial_report_id   = p_financial_report_id
104 and   financial_number_name = p_financial_name;
105 
106 RETURN v_financial_number_currency;
107 
108 END get_financial_number_currency;
109 
110 /*======================================================================
111  | FUNCTION
112  |              get_financial_number_actflg
113  |
114  | DESCRIPTION
115  |
116  | ARGUMENTS  : IN:
117  |                      p_financial_name
118  |                      p_financial_report_id
119  |              OUT:
120  |           IN/OUT:
121  |
122  | RETURNS    : NONE
123  |
124  | MODIFICATION HISTORY
125  |     17-OCT-00  Jianying HUang  Bug 1462704: Rename table HZ_FINANCIAL_NUMBERS to
126  |                       HZ_FINANCIAL_NUMBERS_R1
127  |     30-OCT-00  Jianying Huang  Roll back the renaming table changes.
128  |
129  +======================================================================*/
130 
131 function get_financial_number_actflg(p_financial_name IN VARCHAR2, p_financial_report_id IN NUMBER) RETURN VARCHAR2
132 IS
133 v_financial_number_actflg VARCHAR2(240);
134 
135 BEGIN
136 
137 select projected_actual_flag into v_financial_number_actflg from hz_financial_numbers
138 where financial_report_id   = p_financial_report_id
139 and   financial_number_name = p_financial_name;
140 
141 RETURN v_financial_number_actflg;
142 
143 END get_financial_number_actflg;
144 
145 /*======================================================================
146  | FUNCTION
147  |              get_primary_phone_number
148  |
149  | DESCRIPTION
150  |
151  | ARGUMENTS  : IN:
152  |                      p_party_id
153  |                      p_source_type
154  |              OUT:
155  |           IN/OUT:
156  |
157  | RETURNS    : NONE
158  |
159  | MODIFICATION HISTORY
160  |     17-OCT-00  Jianying Huang  Bug 1462704: Rename table HZ_CONTACT_POINTS to
161  |                    HZ_CONTACT_POINTS_R1
162  |     30-OCT-00  Jianying Huang  Roll back the renaming table changes.
163  |
164  +======================================================================*/
165 
166 function get_primary_phone_number(
167  	p_party_id 	IN 	NUMBER,
168 	p_source_type 	IN	VARCHAR2)
169 RETURN VARCHAR2 IS
170 
171 l_phone_number HZ_CONTACT_POINTS.raw_phone_number%TYPE;
172 cursor primary_phone is
173 SELECT cp.raw_phone_number
174   FROM HZ_CONTACT_POINTS cp
175   WHERE cp.owner_table_id = p_party_id
176   AND   cp.owner_table_name = 'HZ_PARTIES'
177   AND   cp.actual_content_source = p_source_type
178   AND   cp.CONTACT_POINT_TYPE = 'PHONE'
179   AND   cp.status = 'A'
180   AND   cp.primary_flag = 'Y'
181   AND   cp.phone_line_type <> 'FAX';
182 
183 cursor all_phones is
184 SELECT cp.raw_phone_number
185   FROM HZ_CONTACT_POINTS cp
186   WHERE cp.owner_table_id = p_party_id
187   AND   cp.owner_table_name = 'HZ_PARTIES'
188   AND   cp.actual_content_source = p_source_type
189   AND   cp.CONTACT_POINT_TYPE = 'PHONE'
190   AND   cp.status = 'A'
191   AND   cp.phone_line_type <> 'FAX';
192 BEGIN
193 
194   open primary_phone;
195   fetch primary_phone into l_phone_number;
196 
197   	if primary_phone%NOTFOUND then
198         	open all_phones;
199 		fetch all_phones into l_phone_number;
200                 close all_phones;
201         end if;
202 
203   close primary_phone;
204   RETURN l_phone_number;
205 EXCEPTION
206   WHEN OTHERS THEN
207     RETURN NULL;
208 END get_primary_phone_number;
209 
210 /*======================================================================
211  | FUNCTION
212  |              get_primary_fax_number
213  |
214  | DESCRIPTION
215  |
216  | ARGUMENTS  : IN:
217  |                      p_party_id
218  |                      p_source_type
219  |              OUT:
220  |           IN/OUT:
221  |
222  | RETURNS    : NONE
223  |
224  | MODIFICATION HISTORY
225  |     17-OCT-00  Jianying Huang  Bug 1462704: Rename table HZ_CONTACT_POINTS to
226  |                    HZ_CONTACT_POINTS_R1
227  |     30-OCT-00  Jianying Huang  Roll back the renaming table changes.
228  |
229  +======================================================================*/
230 
231 function get_primary_fax_number(
232  	p_party_id 	IN 	NUMBER,
233 	p_source_type 	IN	VARCHAR2)
234 RETURN VARCHAR2 IS
235 l_fax_number HZ_CONTACT_POINTS.raw_phone_number%TYPE;
236 cursor primary_phone is
237 SELECT cp.raw_phone_number
238   FROM HZ_CONTACT_POINTS cp
239   WHERE cp.owner_table_id = p_party_id
240   AND   cp.owner_table_name = 'HZ_PARTIES'
241   AND   cp.actual_content_source = p_source_type
242   AND   cp.CONTACT_POINT_TYPE = 'PHONE'
243   AND   cp.status = 'A'
244   AND   cp.primary_flag = 'Y'
245   AND   cp.phone_line_type = 'FAX';
246 
247 cursor all_phones is
248 SELECT cp.raw_phone_number
249   FROM HZ_CONTACT_POINTS cp
250   WHERE cp.owner_table_id = p_party_id
251   AND   cp.owner_table_name = 'HZ_PARTIES'
252   AND   cp.actual_content_source = p_source_type
253   AND   cp.CONTACT_POINT_TYPE = 'PHONE'
254   AND   cp.status = 'A'
255   AND   cp.phone_line_type = 'FAX';
256 BEGIN
257 
258   open primary_phone;
259   fetch primary_phone into l_fax_number;
260 
261   	if primary_phone%NOTFOUND then
262         	open all_phones;
263 		fetch all_phones into l_fax_number;
264                 close all_phones;
265         end if;
266 
267   close primary_phone;
268   RETURN l_fax_number;
269 
270 EXCEPTION
271   WHEN OTHERS THEN
272     RETURN NULL;
273 END get_primary_fax_number;
274 
275 /*======================================================================
276  | FUNCTION
277  |              get_all_phone_numbers
278  |
279  | DESCRIPTION
280  |
281  | ARGUMENTS  : IN:
282  |                      p_party_id
283  |                      p_source_type
284  |              OUT:
285  |           IN/OUT:
286  |
287  | RETURNS    : NONE
288  |
289  | MODIFICATION HISTORY
290  |     17-OCT-00  Jianying Huang  Bug 1462704: Rename table HZ_CONTACT_POINTS to
291  |                    HZ_CONTACT_POINTS_R1
292  |     30-OCT-00  Jianying Huang  Roll back the renaming table changes.
293  |
294  +======================================================================*/
295 
296 function get_all_phone_numbers(
297 	p_party_id 	IN 	NUMBER,
298 	p_source_type 	IN	VARCHAR2)
299 RETURN VARCHAR2 IS
300 
301 CURSOR c_phone_number IS
302   SELECT cp.raw_phone_number
303   FROM	HZ_CONTACT_POINTS cp
304   WHERE cp.owner_table_id = p_party_id
305   AND   cp.owner_table_name = 'HZ_PARTIES'
306   AND   cp.actual_content_source = p_source_type
307   AND 	cp.status = 'A'
308   AND   cp.CONTACT_POINT_TYPE = 'PHONE'
309   AND   cp.phone_line_type='GEN';
310 
311 l_phone_num VARCHAR2(200);
312 l_all_numbers	VARCHAR2(2000);
313 BEGIN
314 
315   OPEN c_phone_number;
316   LOOP
317     FETCH c_phone_number INTO l_phone_num;
318     EXIT WHEN c_phone_number%NOTFOUND;
319 
320     IF l_all_numbers IS NOT NULL THEN
321       l_all_numbers := l_all_numbers || '##';
322     END IF;
323 
324     l_all_numbers := l_all_numbers || l_phone_num;
325   END LOOP;
326   CLOSE c_phone_number;
327 
328   RETURN l_all_numbers;
329 
330 EXCEPTION
331   WHEN OTHERS THEN
332     RETURN NULL;
333 END get_all_phone_numbers;
334 
335 /*======================================================================
336  | FUNCTION
337  |              get_country_name
338  |
339  | DESCRIPTION
340  |
341  | ARGUMENTS  : IN:
342  |                      p_country_code
343  |              OUT:
344  |           IN/OUT:
345  |
346  | RETURNS    : NONE
347  |
348  | MODIFICATION HISTORY
349  | 10-18-2000  Chirag Mehta  Changed select clause
350  +======================================================================*/
351 
352 function get_country_name(p_country_code IN VARCHAR2) RETURN VARCHAR2 IS
353 
354 country_name                 fnd_territories_vl.TERRITORY_SHORT_NAME%TYPE;
355 
356 BEGIN
357 
358 select TERRITORY_SHORT_NAME into country_name from fnd_territories_vl
359 where TERRITORY_CODE=p_country_code;
360 
361 return country_name;
362 
363 EXCEPTION
364  WHEN no_data_found  THEN
365   return null;
366  WHEN OTHERS THEN
367   raise;
368 END get_country_name;
369 
370 
371 function get_max_financial_report_id(
372         p_party_id      		IN      NUMBER,
373         p_type_of_financial_report	IN      VARCHAR2,
374 	p_actual_content_source		IN	VARCHAR2)
375 RETURN NUMBER IS
376 
377 	l_financial_report_id	NUMBER;
378         l_date_report_issued    DATE;
379         l_report_end_date       DATE;
380 -- Bug 3395969 : Added variable
381 	l_creation_date DATE;
382 
383 BEGIN
384 /* Bug 3395969 : donot consider date_report_issued
385  * and report_end_date, issued_period for finding
386  * latest financial report
387  *
388         SELECT MAX(date_report_issued)
389         INTO   l_date_report_issued
390         FROM   hz_financial_reports
391         WHERE  party_id = p_party_id
392         AND    type_of_financial_report = p_type_of_financial_report
393         AND    actual_content_source = p_actual_content_source;
394 
395         SELECT MAX(report_end_date)
396         INTO   l_report_end_date
397         FROM   hz_financial_reports
398         WHERE  party_id = p_party_id
399         AND    type_of_financial_report = p_type_of_financial_report
400         AND    actual_content_source = p_actual_content_source;
401 */
402 	SELECT MAX(creation_date)
403 	INTO   l_creation_date
404         FROM   hz_financial_reports
405         WHERE  party_id = p_party_id
406         AND    type_of_financial_report = p_type_of_financial_report
407         AND    actual_content_source = p_actual_content_source;
408 
409         SELECT financial_report_id
410         INTO   l_financial_report_id
411         FROM   hz_financial_reports
412         WHERE  party_id = p_party_id
413         AND    type_of_financial_report = p_type_of_financial_report
417         AND rownum=1;
414         AND    actual_content_source = p_actual_content_source
415 -- Bug 3395969 : Change the conditino to creation_date
416 	AND creation_date = l_creation_date
418 
419         RETURN l_financial_report_id;
420 
421 EXCEPTION WHEN NO_DATA_FOUND THEN
422 	RETURN to_number(NULL);
423 END;
424 
425 
426 function get_max_credit_rating_id(
427         p_party_id      	IN      NUMBER,
428         p_actual_content_source   IN      VARCHAR2)
429 RETURN NUMBER IS
430 
431 	l_credit_rating_id	NUMBER;
432         l_max_rated_as_of_date  DATE;
433 
434 BEGIN
435 
436         SELECT MAX(rated_as_of_date)
437         INTO   l_max_rated_as_of_date
438         FROM   hz_credit_ratings
439         WHERE  party_id = p_party_id
440         AND    actual_content_source = p_actual_content_source;
441 
442         SELECT credit_rating_id
443         INTO   l_credit_rating_id
444         FROM   hz_credit_ratings
445         WHERE  party_id = p_party_id
446         AND    actual_content_source = p_actual_content_source
447         AND    NVL(rated_as_of_date, TO_DATE('31-12-4712', 'DD-MM-YYYY'))=
448                NVL(l_max_rated_as_of_date, TO_DATE('31-12-4712', 'DD-MM-YYYY'))
449         AND    rownum = 1;
450 
451         RETURN l_credit_rating_id;
452 
453 EXCEPTION WHEN NO_DATA_FOUND THEN
454         RETURN to_number(NULL);
455 END;
456 
457 /*
458 function get_currency_symbol(
459 	p_financial_name IN VARCHAR2,
460 	p_financial_report_id NUMBER)
461 
462 RETURN VARCHAR2  IS
463     l_financial_number_currency VARCHAR2(240);
464 	l_symbol	fnd_currencies.symbol%TYPE;
465 
466 BEGIN
467 
468     l_financial_number_currency := get_financial_number_currency(p_financial_name, p_financial_report_id);
469     select symbol  into l_symbol
470     from fnd_currencies
471     where currency_code = l_financial_number_currency
472     AND    rownum = 1;
473 
474     RETURN l_symbol;
475 
476 EXCEPTION WHEN NO_DATA_FOUND THEN
477         RETURN to_char(NULL);
478 END;
479 */
480 
481 function get_financial_symbol_number(
482     p_financial_name IN VARCHAR2,
483     p_financial_report_id NUMBER)
484 RETURN VARCHAR2
485 IS
486     l_financial_symbol_number varchar2(240);
487 BEGIN
488 
489     select
490     DECODE( HZ_DNBUI_PVT.GET_FINANCIAL_NUMBER(p_financial_name, p_financial_report_id),
491             null, null,
492             nvl(HZ_DNBUI_PVT.get_financial_number_currency(p_financial_name, p_financial_report_id), 'USD') || ' ' ||
493             HZ_DNBUI_PVT.GET_FINANCIAL_NUMBER(p_financial_name, p_financial_report_id))
494     into l_financial_symbol_number
495     from dual;
496 
497     RETURN l_financial_symbol_number;
498 EXCEPTION WHEN NO_DATA_FOUND THEN
499         RETURN to_char(NULL);
500 
501 END;
502 
503 
504 function get_SIC_code(
505     p_class_category IN VARCHAR2,
506     p_party_id       IN NUMBER,
507     p_sequence       IN NUMBER,
508     p_actual_content_source IN VARCHAR2
509     )
510 RETURN VARCHAR2
511 IS
512 
513 CURSOR c_SIC_CODE IS
514     select CLASS_CODE
515     from HZ_CODE_ASSIGNMENTS
516     where OWNER_TABLE_NAME = 'HZ_PARTIES' AND
517           OWNER_TABLE_ID = p_party_id AND
518 	  CLASS_CATEGORY = p_class_category AND
519 	  actual_content_source = p_actual_content_source AND   --Bug 9071339
520 	  (END_DATE_ACTIVE IS NULL OR
521 	   (END_DATE_ACTIVE IS not NULL and END_DATE_ACTIVE >= SYSDATE))
522           order by code_assignment_id;
523 
524 
525     l_SIC_code   VARCHAR2(30);
526     l_count      NUMBER :=0;
527 BEGIN
528 
529   OPEN c_SIC_CODE;
530   LOOP
531     FETCH c_SIC_CODE INTO l_SIC_code;
532     EXIT WHEN c_SIC_CODE%NOTFOUND;
533 
534     l_count := l_count + 1;
535     IF l_count = p_sequence THEN
536         EXIT;
537     END IF;
538 
539   END LOOP;
540   CLOSE c_SIC_CODE;
541 
542   IF l_count < p_sequence THEN
543     l_SIC_code := NULL;
544   END IF;
545 
546   RETURN l_SIC_code;
547 
548 EXCEPTION WHEN OTHERS THEN
549         RETURN NULL;
550 
551 END;
552 
553 /*======================================================================
554  | FUNCTION
555  |              get_location_id
556  |
557  | DESCRIPTION
558  |
559  | ARGUMENTS  : IN:
560  |                   p_party_id,
561  |                   p_actual_content_source
562  |              OUT:
563  |           IN/OUT:
564  |
565  | RETURNS    : NONE
566  |
567  | MODIFICATION HISTORY
568  | 06-03-2002  Kashan
569  +======================================================================*/
570 
571 function get_location_id (
572     p_party_id IN NUMBER,
573     p_actual_content_source in VARCHAR2)
574 RETURN NUMBER
575 IS
576     l_location_id NUMBER;
577     l_displayed_duns_party_id NUMBER;
578 BEGIN
579 
580    IF p_actual_content_source = 'DNB' THEN
581          BEGIN
582 
583          BEGIN
584 	   select displayed_duns_party_id into l_displayed_duns_party_id
585            from hz_organization_profiles
586            where party_id = p_party_id and
587                effective_end_date is null
588                and actual_content_source = 'DNB';
592 
589          EXCEPTION WHEN NO_DATA_FOUND THEN
590            NULL;
591          END;
593 
594          IF l_displayed_duns_party_id is null THEN
595          BEGIN
596            l_displayed_duns_party_id := p_party_id;
597          end;
598          END IF;
599 
600             select loc.location_id
601             into l_location_id
602             from HZ_LOCATIONS loc, HZ_PARTY_SITES ps
603             where
604 	        ps.party_id = l_displayed_duns_party_id AND
605                 loc.location_id = ps.location_id AND
606 	        loc.actual_content_source = p_actual_content_source AND
607                 ps.actual_content_source = p_actual_content_source AND
608                 nvl(ps.end_date_active, sysdate+1) >= sysdate AND
609                 ps.status = 'A' AND
610                 rownum=1;
611 
612 	return l_location_id;
613 
614 	EXCEPTION WHEN NO_DATA_FOUND THEN
615 	    return null;
616 	END;
617 
618    ELSE  --   p_actual_content_source = 'USER_ENTERED'
619      BEGIN
620 	select loc.location_id
621 	into l_location_id
622 	from HZ_LOCATIONS loc, HZ_PARTY_SITES ps
623 	where
624 	    ps.party_id = p_party_id AND
625 	    loc.location_id = ps.location_id AND
626 	    loc.actual_content_source = p_actual_content_source AND
627 	    ps.identifying_address_flag = 'Y';
628 
629 	return l_location_id;
630 
631      EXCEPTION WHEN NO_DATA_FOUND THEN
632 
633 	BEGIN
634             select loc.location_id
635             into l_location_id
636             from HZ_LOCATIONS loc, HZ_PARTY_SITES ps
637             where
638                 ps.party_id = p_party_id AND
639                 loc.location_id = ps.location_id AND
640                 loc.actual_content_source = p_actual_content_source AND
641 		nvl(ps.end_date_active, sysdate+1) >= sysdate AND
642 		ps.status = 'A' AND
643                 Loc.last_update_date =
644                     (select max(l_temp.last_update_date)
645 	            from hz_locations l_temp, hz_party_sites ps_temp
646                     where l_temp.location_id = ps_temp.location_id AND
647                     ps_temp.party_id = p_party_id  AND
648                     l_temp.actual_content_source = p_actual_content_source  AND
649 		    nvl(ps_temp.end_date_active, sysdate+1) >= sysdate AND
650 		    ps_temp.status = 'A' );
651 
652 	    return l_location_id;
653 
654 	EXCEPTION WHEN NO_DATA_FOUND THEN
655 
656 -- Bug 3325884 : When there is no user entered location and party site, return
657 --		 location_id for the DNB record.
658 
659 		BEGIN
660                         BEGIN
661                           select displayed_duns_party_id into l_displayed_duns_party_id
662                           from hz_organization_profiles
663                           where party_id = p_party_id and effective_end_date is null and actual_content_source = 'DNB';
664                         EXCEPTION WHEN NO_DATA_FOUND THEN
665                           null;
666         	        END;
667 
668 		        IF l_displayed_duns_party_id is null THEN
669            			l_displayed_duns_party_id := p_party_id;
670          		END IF;
671 
672             		select loc.location_id
673             		into l_location_id
674             		from HZ_LOCATIONS loc, HZ_PARTY_SITES ps
675             		where ps.party_id = l_displayed_duns_party_id AND
676                 	loc.location_id = ps.location_id AND
677                 	loc.actual_content_source = 'DNB' AND
678         		nvl(ps.end_date_active, sysdate+1) >= sysdate AND
679                 	ps.status = 'A' and
680                 	rownum=1;
681 
682         		return l_location_id;
683 
684                 EXCEPTION WHEN NO_DATA_FOUND THEN
685                   return null;
686         	END;
687 	END;
688       END;
689     END IF;
690 END;
691 
692 /*======================================================================
693  | FUNCTION
694  |              get_first_available_report
695  |
696  | DESCRIPTION
697  |
698  | ARGUMENTS  : IN:
699  |                   p_party_id,
700  |                   p_actual_content_source
701  |              OUT:
702  |           IN/OUT:
703  |
704  | RETURNS    : NONE
705  |
706  | MODIFICATION HISTORY
707  | 10-13-2004  Kashan
708  +======================================================================*/
709 
710 function get_first_available_report(
711         p_party_id      		IN      NUMBER,
712         p_actual_content_source		IN	VARCHAR2)
713 RETURN VARCHAR2 IS
714     l_displayed_duns_party_id NUMBER;
715 BEGIN
716 
717     IF p_actual_content_source = 'DNB' THEN
718 
719       BEGIN
720         select displayed_duns_party_id into l_displayed_duns_party_id
721         from hz_organization_profiles
722         where party_id = p_party_id and
723               effective_end_date is null and
724               actual_content_source = 'DNB';
725       EXCEPTION WHEN NO_DATA_FOUND THEN
726         NULL;
727       END;
728 
729     END IF;
730 
731     IF l_displayed_duns_party_id is null THEN
732     BEGIN
733       l_displayed_duns_party_id := p_party_id;
734     end;
735     END IF;
736 
737     IF get_max_financial_report_id(l_displayed_duns_party_id, 'BALANCE_SHEET', p_actual_content_source) is not null THEN
738       return 'BALANCE_SHEET';
739     END IF;
740 
741     IF get_max_financial_report_id(l_displayed_duns_party_id, 'INCOME_STATEMENT', p_actual_content_source) is not null THEN
742       return 'INCOME_STATEMENT';
743     END IF;
744 
745     IF get_max_financial_report_id(l_displayed_duns_party_id, 'TANGIBLE_NET_WORTH', p_actual_content_source) is not null THEN
746       return 'TANGIBLE_NET_WORTH';
747     END IF;
748 
749      IF get_max_financial_report_id(l_displayed_duns_party_id, 'ANNUAL_SALES_VOLUME', p_actual_content_source) is not null THEN
750       return 'ANNUAL_SALES_VOLUME';
751     END IF;
752 
753     RETURN null;
754 
755  END get_first_available_report;
756 
757 END HZ_DNBUI_PVT;