DBA Data[Home] [Help]

PACKAGE: APPS.PQP_GB_PSI_WPS_HISTORY

Source


1 PACKAGE PQP_GB_PSI_WPS_HISTORY AS
2 --  /* $Header: pqpgbpsiwps.pkh 120.1 2007/05/24 06:35:02 jvaradra noship $ */
3 
4     --
5     -- Debug Variables.
6     --
7 
8     g_proc_name              VARCHAR2(61):= 'PQP_GB_PSI_WPS_HISTORY.';
9 
10     g_debug                  BOOLEAN    := hr_utility.debug_enabled;
11     c_application_id         CONSTANT NUMBER := 8303;
12     c_highest_date           CONSTANT DATE := hr_api.g_eot;
13     g_person_id              NUMBER      := NULL;
14     g_business_group_id      NUMBER      := NULL; -- IMPORTANT TO KEEP NULL
15     g_assignment_id          NUMBER      := NULL; -- IMPORTANT TO KEEP NULL
16     g_person_dtl             per_all_people_f%rowtype;
17     g_assignment_dtl         per_all_assignments_f%rowtype;
18     g_altkey                 VARCHAR2(12):= NULL;
19     g_current_run            varchar2(20) := NULL;
20     g_prev_event_dtl_rec     ben_ext_person.t_detailed_output_tab_rec;
21     g_notional_pay           NUMBER; -- used while calculating actual pay
22     g_effective_date         DATE;-- for cutover run this will be the cutover date
23     g_extract_type           VARCHAR2(100);
24     g_legislation_code       per_business_groups.legislation_code%TYPE   := 'GB';
25 
26     g_pension_element_type_id       NUMBER;
27 
28     -- for 6071527
29     g_pension_scheme_name     VARCHAR2(50);
30 
31 
32     -- for include_events
33     g_pay_proc_evt_tab             ben_ext_person.t_detailed_output_table;
34 
35     -- globals set by set_shared_globals
36     g_paypoint               VARCHAR2(5) := NULL;
37     g_cutover_date           DATE;
38     g_ext_dfn_id             NUMBER;
39     g_is_terminated          VARCHAR2(1)  :='N';
40 
41 
42     g_curr_person_dtls             per_all_people_f%ROWTYPE;
43             -- this contains the person details on effective date
44 
45     g_curr_assg_dtls               per_all_assignments_f%ROWTYPE;
46 
47     -- uniformed grade override flag configuration values.
48     g_unigrade_source     VARCHAR2(30);
49     g_assignment_context  VARCHAR2(80);
50     g_assignment_column   VARCHAR2(30);
51     g_people_group_column VARCHAR2(30);
52     ----------
53 
54 
55     TYPE t_varchar30 IS TABLE OF VARCHAR2(30) INDEX BY BINARY_INTEGER;
56     g_dated_tables        t_varchar30;
57 
58     CURSOR get_wps_percent_cont_per
59            (p_element_entry_id  IN NUMBER
60             ,p_effective_date   IN DATE
61             ,p_input_value_name IN VARCHAR2
62            )
63     IS
64          SELECT peev.screen_entry_value
65          FROM    pay_element_entry_values_f peev
66                 ,pay_input_values_f piv
67          WHERE  peev.element_entry_id = p_element_entry_id
68          AND    piv.input_value_id = peev.input_value_id
69          AND    piv.NAME = p_input_value_name
70          AND    p_effective_date BETWEEN peev.effective_start_date AND peev.effective_end_date;
71 
72 
73     CURSOR get_wps_percent_cont_cut
74            (p_assignment_id IN NUMBER
75             ,p_effective_date  IN DATE
76                 ,p_element_type_id IN NUMBER
77             ,p_input_value_name IN VARCHAR2
78            )
79     IS
80         SELECT peev.screen_entry_value,peev.element_entry_id
81         FROM pay_element_entries_f pee
82             ,pay_element_entry_values_f peev
83             ,pay_input_values_f piv
84         WHERE pee.assignment_id=p_assignment_id
85       AND pee.element_type_id = p_element_type_id
86         AND peev.element_entry_id = pee.element_entry_id
87         AND piv.input_value_id = peev.input_value_id
88         AND piv.NAME = p_input_value_name
89         AND p_effective_date BETWEEN peev.effective_start_date AND peev.effective_end_date
90         AND rownum = 1;
91 
92     CURSOR csr_get_entry_type
93             (p_element_entry_id IN NUMBER
94              ,p_effective_date  IN DATE
95             )
96     IS
97         SELECT entry_type
98         FROM pay_element_entries_f
99         where element_entry_id = p_element_entry_id
100         AND p_effective_date BETWEEN effective_start_date AND effective_end_date;
101 
102     CURSOR csr_get_start_date_cut
103             (p_element_entry_id IN NUMBER
104             )
105     IS
106         SELECT effective_start_date FROM pay_element_entries_f
107         WHERE element_entry_id = p_element_entry_id
108         AND rownum = 1
109         ORDER BY effective_start_date;
110 
111     CURSOR get_wps_element_name
112             (p_element_type_id IN NUMBER
113             )
114     IS
115         SELECT element_name FROM pay_element_types_f
116         WHERE element_type_id = p_element_type_id
117         AND rownum=1;
118 
119     TYPE t_number IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
120 
121     CURSOR csr_get_element_entry_id
122             (
123             p_element_entry_value_id    IN NUMBER
124             )
125      IS
126             SELECT element_entry_id
127             FROM PAY_ELEMENT_ENTRY_VALUES_F
128             WHERE element_entry_value_id =p_element_entry_value_id
129             AND ROWNUM=1;
130 
131     CURSOR csr_get_element_type_id
132             (
133             c_element_entry_id IN NUMBER
134             )
135      IS
136             SELECT element_type_id
137             FROM pay_element_entries_f
138             WHERE element_entry_id = c_element_entry_id
139             AND rownum=1;
140 
141      -- for 6071527
142      /* to fetch the pension scheme name */
143     CURSOR get_wps_ele_scheme_name
144              (
145              p_element_type_id IN NUMBER
146              )
147     IS
148            SELECT eei_information1
149              FROM pay_element_type_extra_info
150             WHERE element_type_id = p_element_type_id
151               AND information_type = 'PQP_GB_PENSION_SCHEME_INFO';
152 
153    /* to check if the buy back element is valid */
154    CURSOR get_wps_byb_ele_scheme_name
155              (
156               p_element_type_id IN NUMBER
157              ,p_pension_scheme_name IN VARCHAR2
158              )
159          IS
160              SELECT eei_information1
161                FROM pay_element_type_extra_info
162               WHERE element_type_id = p_element_type_id
163                 AND information_type = 'PQP_GB_PENSION_SCHEME_INFO'
164                 AND eei_information1 = p_pension_scheme_name;
165 
166      /* to fetch the basic element contribution percent */
167      CURSOR get_wps_percent_cont
168            (p_assignment_id IN NUMBER
169            ,p_effective_date  IN DATE
170            ,p_element_type_id IN NUMBER
171            ,p_input_value_name IN VARCHAR2
172            )
173     IS
174         SELECT peev.screen_entry_value
175           FROM pay_element_entries_f pee
176                ,pay_element_entry_values_f peev
177                ,pay_input_values_f piv
178          WHERE pee.assignment_id=p_assignment_id
179            AND pee.element_type_id = p_element_type_id
180            AND peev.element_entry_id = pee.element_entry_id
181            AND piv.input_value_id = peev.input_value_id
182            AND piv.NAME = p_input_value_name
183            AND p_effective_date BETWEEN peev.effective_start_date AND peev.effective_end_date
184            AND rownum = 1;
185 
186      /* to fetch the buy back element contribution percent */
187      CURSOR get_wps_byb_percent_cont
188             (p_effective_date   IN DATE
189             ,p_assignment_id IN NUMBER
190             ,p_input_value_name IN VARCHAR2
191             ,p_scheme_name IN VARCHAR2
192            )
193      IS
194         SELECT peev.screen_entry_value
195           FROM pay_element_types_f pet
196               ,pay_element_entries_f pee
197               ,pay_element_type_extra_info pete
198               ,pay_element_entry_values_f peev
199               ,pay_input_values_f piv
200           WHERE pee.assignment_id = p_assignment_id -- 301168
201             AND pee.element_type_id = pet.element_type_id -- 172156
202             AND pet.element_name like '%Buy Back FWC'
203             AND pet.element_type_id = pete.element_type_id
204             AND pete.eei_information1 = p_scheme_name --'Classic'
205             AND pee.element_entry_id = peev.element_entry_id
206             AND peev.input_value_id = piv.input_value_id
207             AND piv.NAME = p_input_value_name -- p_input_value_name
208             AND p_effective_date BETWEEN peev.effective_start_date AND peev.effective_end_date
209             AND p_effective_date BETWEEN pee.effective_start_date AND pee.effective_end_date;
210 
211         CURSOR get_wps_eff_end_date(p_element_type_id in number
212                                    ,p_assignment_id in number
213                                    ,p_effective_date in date
214                                    )
215          IS   SELECT effective_end_date
216                 FROM pay_element_entries_f
217                WHERE assignment_id = p_assignment_id
218                  AND p_effective_date BETWEEN effective_start_date AND effective_end_date
219                  AND element_type_id = g_pension_element_type_id;
220 
221          CURSOR get_assgn_eff_end_date(p_assignment_id in number
222                                       ,p_effective_date in date
223                                       )
224          IS   SELECT effective_end_date
225                 FROM per_all_assignments_f
226                WHERE assignment_id = p_assignment_id
227                  AND effective_end_date = p_effective_date
228                  AND assignment_status_type_id = 1;
229 
230    -- for 6071527 end
231 
232     -- Debug
233        PROCEDURE DEBUG (
234           p_trace_message    IN   VARCHAR2
235          ,p_trace_location   IN   NUMBER DEFAULT NULL
236        );
237 
238        -- Debug_Enter
239        PROCEDURE debug_enter (
240           p_proc_name   IN   VARCHAR2
241          ,p_trace_on    IN   VARCHAR2 DEFAULT NULL
242        );
243 
244        -- Debug_Exit
245        PROCEDURE debug_exit (
246           p_proc_name   IN   VARCHAR2
247          ,p_trace_off   IN   VARCHAR2 DEFAULT NULL
248        );
249 
250        -- Debug Others
251        PROCEDURE debug_others (
252           p_proc_name   IN   VARCHAR2
253          ,p_proc_step   IN   NUMBER DEFAULT NULL
254        );
255        ---
256 
257 -- ----------------------------------------------------------------------------
258 -- |------------------------< Function Definitions >---------------------------|
259 -- ----------------------------------------------------------------------------
260 
261   --
262   -- WPS history main function
263   --
264   FUNCTION wps_history_main
265             (p_business_group_id        IN         NUMBER   -- context
266             ,p_effective_date           IN         DATE     -- context
267             ,p_assignment_id            IN         NUMBER   -- context
268             ,p_rule_parameter           IN         VARCHAR2 -- parameter
269             ,p_output                   OUT NOCOPY VARCHAR2
270             )
271   RETURN number;
272 
273 -- ----------------------------------------------------------------------------
274 -- |------------------------< chk_wps_cutover_crit >-------------------|
275 -- ----------------------------------------------------------------------------
276 
277 FUNCTION chk_wps_cutover_crit
278     (p_business_group_id        IN      NUMBER
279     ,p_effective_date           IN      DATE
280     ,p_assignment_id            IN      NUMBER
281     )
282   RETURN VARCHAR2;
283 
284 
285 
286 -- ----------------------------------------------------------------------------
287 -- |------------------------< chk_wps_periodic_crit >-------------------|
288 -- ----------------------------------------------------------------------------
289 
290   FUNCTION chk_wps_periodic_crit
291           (p_business_group_id        IN      NUMBER
292           ,p_effective_date           IN      DATE
293           ,p_assignment_id            IN      NUMBER
294           )RETURN VARCHAR2;
295 
296 -- ----------------------------------------------------------------------------
297 -- |----------------------< wps_post_processing >--------------------------|
298 --  Description:  This is the post-processing rule  for the Salary History.
299 -- ----------------------------------------------------------------------------
300   FUNCTION wps_post_processing RETURN VARCHAR2;
301 
302 END PQP_GB_PSI_WPS_HISTORY;