DBA Data[Home] [Help]

PACKAGE BODY: APPS.HRI_OPL_REC_BANDS

Source


1 PACKAGE BODY hri_opl_rec_bands AS
2 /* $Header: hriprbnd.pkb 115.2 2002/11/19 11:35:05 jtitmas noship $ */
3 
4 TYPE g_band_rec IS RECORD(g_min_value       NUMBER,
5                           g_max_value       NUMBER,
6                           g_band_name       VARCHAR2(30));
7 
8 TYPE g_bands_tabtype IS TABLE OF g_band_rec INDEX BY BINARY_INTEGER;
9 
10 
11 g_apl_bands_tab     g_bands_tabtype;
12 g_vac_bands_tab     g_bands_tabtype;
13 
14 /* Bug 2669294 - Incremented band min value for the displayed name if it */
15 /* is non-zero */
16 CURSOR g_apl_time_bands_csr IS
17 SELECT
18  band_min_value  min_val
19 ,band_max_value  max_val
20 ,to_char(DECODE(band_min_value, 0, 0, band_min_value + 1)) ||
21  DECODE(band_max_value, to_number(null), ' +', ' - ' || to_char(band_max_value))
22                  band_name
23 ,band_sequence   seq_no
24 FROM hri_time_bands
25 WHERE type = 'APL_STAGE';
26 
27 /* Bug 2669294 - Incremented band min value for the displayed name if it */
28 /* is non-zero */
29 CURSOR g_vac_time_bands_csr IS
30 SELECT
31  band_min_value  min_val
32 ,band_max_value  max_val
33 ,to_char(DECODE(band_min_value, 0, 0, band_min_value + 1)) ||
34  DECODE(band_max_value, to_number(null), ' +', ' - ' || to_char(band_max_value))
35                  band_name
36 ,band_sequence   seq_no
37 FROM hri_time_bands
38 WHERE type = 'VACANCY';
39 
40 /******************************************************************************/
41 /* Returns an indicator for whether the supplied value is within the          */
42 /* specified applicant time band                                              */
43 /******************************************************************************/
44 FUNCTION is_in_apl_band(p_value          IN NUMBER,
45                         p_band_sequence  IN NUMBER)
46              RETURN NUMBER IS
47 
48 BEGIN
49 
50 /* Bug 2673387 - Fixed condition */
51   IF ((g_apl_bands_tab(p_band_sequence).g_min_value < p_value OR
52        g_apl_bands_tab(p_band_sequence).g_min_value = 0) AND
53       (p_value <= g_apl_bands_tab(p_band_sequence).g_max_value OR
54        g_apl_bands_tab(p_band_sequence).g_max_value IS NULL)) THEN
55     RETURN 1;
56   ELSE
57     RETURN 0;
58   END IF;
59 
60 EXCEPTION
61   WHEN OTHERS THEN
62 
63   RETURN to_number(null);
64 
65 END is_in_apl_band;
66 
67 /******************************************************************************/
68 /* Returns an indicator for whether the supplied value is within the          */
69 /* specified vacancy time band                                                */
70 /******************************************************************************/
71 FUNCTION is_in_vac_band(p_value          IN NUMBER,
72                         p_band_sequence  IN NUMBER)
73              RETURN NUMBER IS
74 
75 BEGIN
76 
77 /* Bug 2673387 - Fixed condition */
78   IF ((g_vac_bands_tab(p_band_sequence).g_min_value < p_value OR
79        g_vac_bands_tab(p_band_sequence).g_min_value = 0) AND
80       (p_value <= g_vac_bands_tab(p_band_sequence).g_max_value OR
81        g_vac_bands_tab(p_band_sequence).g_max_value IS NULL)) THEN
82     RETURN 1;
83   ELSE
84     RETURN 0;
85   END IF;
86 
87 EXCEPTION
88   WHEN OTHERS THEN
89 
90   RETURN to_number(null);
91 
92 END is_in_vac_band;
93 
94 /******************************************************************************/
95 /* Function returning a specific band name from the global table              */
96 /******************************************************************************/
97 FUNCTION get_apl_time_band_name(p_band_sequence    IN NUMBER)
98                  RETURN VARCHAR2 IS
99 
100 BEGIN
101 
102   RETURN g_apl_bands_tab(p_band_sequence).g_band_name;
103 
104 EXCEPTION WHEN OTHERS THEN
105 
106   RETURN to_char(p_band_sequence);
107 
108 END get_apl_time_band_name;
109 
110 /******************************************************************************/
111 /* Function returning a specific band name from the global table              */
112 /******************************************************************************/
113 FUNCTION get_vac_time_band_name(p_band_sequence    IN NUMBER)
114                  RETURN VARCHAR2 IS
115 
116 BEGIN
117 
118   RETURN g_vac_bands_tab(p_band_sequence).g_band_name;
119 
120 EXCEPTION WHEN OTHERS THEN
121 
122   RETURN to_char(p_band_sequence);
123 
124 END get_vac_time_band_name;
125 
126 /******************************************************************************/
127 /* INITIALIZATION SECTION                                                     */
128 /******************************************************************************/
129 BEGIN
130 
131   FOR g_apl_rec IN g_apl_time_bands_csr LOOP
132     g_apl_bands_tab(g_apl_rec.seq_no).g_min_value := g_apl_rec.min_val;
133     g_apl_bands_tab(g_apl_rec.seq_no).g_max_value := g_apl_rec.max_val;
134     g_apl_bands_tab(g_apl_rec.seq_no).g_band_name := g_apl_rec.band_name;
135   END LOOP;
136 
137   FOR g_vac_rec IN g_vac_time_bands_csr LOOP
138     g_vac_bands_tab(g_vac_rec.seq_no).g_min_value := g_vac_rec.min_val;
139     g_vac_bands_tab(g_vac_rec.seq_no).g_max_value := g_vac_rec.max_val;
140     g_vac_bands_tab(g_vac_rec.seq_no).g_band_name := g_vac_rec.band_name;
141   END LOOP;
142 
143 END hri_opl_rec_bands;