DBA Data[Home] [Help]

PACKAGE BODY: APPS.AMS_MKT_SEGMENTS_PVT

Source


1 PACKAGE BODY AMS_MKT_SEGMENTS_PVT AS
2 /* $Header: amsvmktb.pls 115.9 2001/12/14 16:27:26 pkm ship    $ */
3 ---------------------------------------------------------------------
4 -- function
5 --   Get_Mkt_Segments
6 --
7 -- HISTORY
8 --    10/14/99  abhola  Create.
9 ---------------------------------------------------------------------
10 
11 FUNCTION Get_Mkt_Segments ( p_party_id           ams_party_market_segments.party_id%TYPE := NULL ,
12                             p_target_segment_id  ams_party_market_segments.market_segment_id%TYPE := NULL)
13 
14   RETURN  PartyMktSegTabTyp IS
15 
16   x_PartyMktSegTabTyp PartyMktSegTabTyp;
17   i BINARY_INTEGER := 0;
18 
19   CURSOR c_party (c_party_id IN ams_party_market_segments.party_id%TYPE)
20       IS
21   SELECT a.market_segment_id, a.act_market_segment_used_by_id
22     FROM ams_act_market_segments a,
23 	     ams_party_market_segments b
24    WHERE b.party_id = c_party_id
25      AND b.market_segment_id = a.market_segment_id
26 	 -- AND b.market_segment_flag = 'N'
27 	 AND a.arc_act_market_segment_used_by = 'CAMP';
28 
29   CURSOR c_target ( c_target_id IN ams_party_market_segments.market_segment_id%TYPE)
30        IS
31    SELECT a.market_segment_id, a.act_market_segment_used_by_id
32      FROM ams_act_market_segments a
33 	WHERE a.market_segment_id = c_target_id
34 	  AND a.arc_act_market_segment_used_by = 'CAMP';
35 
36   CURSOR c_party_target ( c_party_id IN ams_party_market_segments.party_id%TYPE,
37                           c_target_id IN ams_party_market_segments.market_segment_id%TYPE )
38       IS
39   SELECT a.market_segment_id, a.act_market_segment_used_by_id
40     FROM ams_act_market_segments a,
41 	     ams_party_market_segments b
42    WHERE b.party_id = c_party_id
43      AND b.market_segment_id = c_target_id
44 	 AND b.market_segment_id = a.market_segment_id
45 	 -- AND b.market_segment_flag = 'N'
46      AND a.arc_act_market_segment_used_by = 'CAMP';
47 
48   BEGIN
49     if (p_party_id IS NOT NULL) AND
50 	   ( p_target_segment_id IS NULL ) then
51       OPEN c_party (p_party_id);
52 	  LOOP
53 	     i := i + 1;
54 		 FETCH c_party INTO x_PartyMktSegTabTyp(i);
55 		 EXIT WHEN c_party%NOTFOUND;
56 	  END LOOP;
57 	  CLOSE c_party;
58 
59 	  return( x_PartyMktSegTabTyp );
60 
61     elsif (p_party_id IS NULL) AND
62 	      (p_target_segment_id IS NOT NULL ) then
63 
64 	  OPEN c_target (p_target_segment_id);
65 	  LOOP
66 	     i := i + 1;
67 		 FETCH c_target INTO x_PartyMktSegTabTyp(i);
68 		 EXIT WHEN c_target%NOTFOUND;
69 	  END LOOP;
70 	  CLOSE c_target;
71 
72 	  return( x_PartyMktSegTabTyp );
73 
74 	elsif (p_party_id IS NOT NULL) AND
75 	      (p_target_segment_id IS NOT NULL ) then
76 	  OPEN c_party_target (p_party_id,p_target_segment_id);
77 	  LOOP
78 	     i := i + 1;
79 		 FETCH c_party_target INTO x_PartyMktSegTabTyp(i);
80 		 EXIT WHEN c_party_target%NOTFOUND;
81 	  END LOOP;
82 	  CLOSE c_party_target;
83 
84 	  return( x_PartyMktSegTabTyp );
85 	else
86 	  return( x_PartyMktSegTabTyp );
87      end if;
88   END Get_Mkt_Segments;
89 
90 END AMS_MKT_SEGMENTS_PVT;