DBA Data[Home] [Help]

PACKAGE BODY: APPS.PAY_PAYSGSOE_XMLP_PKG

Source


1 PACKAGE BODY PAY_PAYSGSOE_XMLP_PKG AS
2 /* $Header: PAYSGSOEB.pls 120.0 2007/12/13 12:23:31 amakrish noship $ */
3 
4 function cf_gross_pay_currformula(assignment_action_id in number, person_id in number) return number is
5   v_gross_pay_curr		number;
6   v_ass_act_id pay_assignment_actions.assignment_action_id%type;
7    cursor c_pay_ass_act_id(v_assignment_action_id pay_assignment_actions.assignment_action_id%type) is
8    select max(pai.locked_action_id) from pay_action_interlocks pai
9    where pai.locking_action_id = v_assignment_action_id;
10 begin
11             open c_pay_ass_act_id(assignment_action_id);
12     fetch c_pay_ass_act_id into v_ass_act_id;
13     if v_ass_act_id is NULL then
14        v_ass_act_id := assignment_action_id;
15     end if;
16     close c_pay_ass_act_id;
17 
18 
19 
20     pay_sg_soe.balance_totals( p_assignment_action_id 		=> 	v_ass_act_id,
21  			       p_person_id                      =>      person_id,
22   	  		       p_gross_pay_current		=> 	v_gross_pay_curr,
23   		  	       p_statutory_deductions_current   => 	cp_stat_ded_curr,
24   			       p_other_deductions_current	=>  	cp_other_curr,
25   			       p_net_pay_current		=>	cp_net_pay_curr,
26   			       p_non_payroll_current		=>	cp_non_pay_curr,
27   			       p_gross_pay_ytd			=>	cp_gross_pay_ytd,
28   			       p_statutory_deductions_ytd	=>	cp_stat_ded_ytd,
29   			       p_other_deductions_ytd		=>	cp_other_ytd,
30   			       p_net_pay_ytd			=>	cp_net_pay_ytd,
31   			       p_non_payroll_ytd		=>	cp_non_pay_ytd,
32   			       p_employee_cpf_current		=>	cp_employee_cpf_curr,
33   			       p_employer_cpf_current		=>	cp_employer_cpf_curr,
34   			       p_cpf_total_current		=>	cp_total_cpf_curr,
35   			       p_employee_cpf_ytd		=>	cp_employee_cpf_ytd,
36   			       p_employer_cpf_ytd		=>	cp_employer_cpf_ytd,
37   			       p_cpf_total_ytd			=>	cp_total_cpf_ytd
38                              );
39   RETURN(v_gross_pay_curr);
40 end;
41 
42 function cf_address_line1formula(expense_check_send_to_address in varchar2, person_id in number, location_id in number) return char is
43 
44   v_address_line_1  hr_locations.address_line_1%type;
45   v_address_line_2  hr_locations.address_line_2%type;
46   v_address_line_3  hr_locations.address_line_3%type;
47   v_town_city       hr_locations.town_or_city%type;
48   v_postal_code     hr_locations.postal_code%type;
49   v_country         fnd_territories_tl.territory_short_name%type;
50 begin
51       if expense_check_send_to_address = 'H' then
52     pay_sg_soe.get_home_address(person_id,
53                                     v_address_line_1,
54                                     v_address_line_2,
55                                     v_address_line_3,
56                                     v_town_city,
57                                     v_postal_code,
58                                     v_country);
59   else     pay_sg_soe.get_work_address(location_id,
60                                     v_address_line_1,
61                                     v_address_line_2,
62                                     v_address_line_3,
63                                     v_town_city,
64                                     v_postal_code,
65                                     v_country);
66   end if;
67 
68     cp_address_line2  := v_address_line_2;
69   cp_address_line3  := v_address_line_3;
70   cp_town			     := v_town_city;
71   cp_post_code      := v_postal_code;
72   cp_country        := v_country;
73 
74   return v_address_line_1;
75 end;
76 
77 function cf_get_absence_detailsformula(assignment_id_l in number, accrual_plan_id_l in number, period_end_date in date, period_start_date in date, payroll_id_l in number, business_group_id_l in number, effective_date_l in date) return number is
78 
79 begin
80   cp_abs_this_period := per_accrual_calc_functions.get_absence
81                          (p_assignment_id    => assignment_id_l,
82                           p_plan_id          => accrual_plan_id_l,
83                           p_calculation_date => period_end_date,
84                           p_start_date       => period_start_date);
85 
86   cp_net_accrual     := pay_sg_soe.net_accrual
87                          (p_assignment_id     => assignment_id_l,
88                           p_plan_id           => accrual_plan_id_l,
89                           p_payroll_id        => payroll_id_l,
90                           p_business_group_id => business_group_id_l,
91                           p_effective_date    => effective_date_l);
92 
93   return 0;
94 end;
95 
96 function cf_hourly_rateformula(hours in number, amount in number) return number is
97   v_rate   NUMBER;
98 begin
99   IF nvl(hours,0) <> 0 THEN
100     v_rate := amount/hours;
101   END IF;
102   return(v_rate);
103 end;
104 
105 function CF_CURRENCY_FORMAT_MASKFormula return Char is
106 
107   v_currency_code    fnd_currencies.currency_code%type;
108   v_format_mask      varchar2(100) := null;
109   v_field_length     number(3)     := 15;
110 
111 begin
112     v_currency_code := pay_sg_soe.business_currency_code(p_business_group_id);
113   v_format_mask   := fnd_currency.get_format_mask(v_currency_code, v_field_length);
114 
115   return v_format_mask;
116 end;
117 
118 function CF_PERCENT_FORMAT_MASKFormula return Char is
119   v_mask 		varchar2(30);
120 begin
121   v_mask := '990D0';
122   return(v_mask);
123 end;
124 
125 function CF_HOURS_FORMAT_MASKFormula return Char is
126   v_mask 		varchar2(30);
127 begin
128   v_mask := '990D0';
129   return(v_mask);
130 end;
131 
132 function CF_RATE_FORMAT_MASKFormula return Char is
133   v_mask 		varchar2(30);
134 begin
135   v_mask := '990D90';
136   return(v_mask);
137 end;
138 
139 function CF_FX_RATE_FORMAT_MASKFormula return Char is
140   v_mask 		varchar2(30);
141 begin
142   v_mask := '990D9990';
143   return(v_mask);
144 end;
145 
146 function BeforeReport return boolean is
147 begin
148 
149   construct_where_clause;
150   construct_order_by;
151 
152  -- hr_standard.event('BEFORE REPORT');
153   return (TRUE);
154 end;
155 
156 PROCEDURE construct_where_clause IS
157 
158 begin
159 
160   --cp_where_clause := null;
161   cp_where_clause :=' ';
162 
163   if p_assignment_id is not null then
164      cp_where_clause := ' and assignment_id = ' || to_char(p_assignment_id);
165   end if;
166 
167   if p_location_id is not null then
168      cp_where_clause := cp_where_clause || ' and location_id = ' || to_char(p_location_id);
169   end if;
170 
171   if p_organization_name is not null then
172      cp_where_clause := cp_where_clause || ' and legal_employer = ' || '''' || p_organization_name || '''';
173   end if;
174 end;
175 
176 PROCEDURE construct_order_by IS
177 begin
178   cp_order_by := null;
179 
180 
181   if p_sort_order_1 is not null then
182     cp_order_by := p_sort_order_1;
183   end if;
184 
185   if p_sort_order_2 is not null then
186     if cp_order_by is not null then
187       cp_order_by := cp_order_by || ', ' || p_sort_order_2;
188     else
189       cp_order_by := p_sort_order_2;
190     end if;
191   end if;
192 
193   if p_sort_order_3 is not null then
194     if cp_order_by is not null then
195       cp_order_by := cp_order_by || ', ' || p_sort_order_3;
196     else
197       cp_order_by := p_sort_order_3;
198     end if;
199   end if;
200 
201   if p_sort_order_4 is not null then
202     if cp_order_by is not null then
203       cp_order_by := cp_order_by || ', ' || p_sort_order_4;
204     else
205       cp_order_by := p_sort_order_4;
206     end if;
207   end if;
208 
209     if cp_order_by is not null then
210     cp_order_by := ' order by ' || cp_order_by;
211   else
212     cp_order_by := ' order by assignment_number';
213   end if;
214 end;
215 
216 function AfterReport return boolean is
217 begin
218  -- hr_standard.event('AFTER REPORT');
219   return (TRUE);
220 end;
221 
222 function cf_1formula(ELEMENT_REPORTING_NAME in varchar2) return char is
223 begin
224   IF ELEMENT_REPORTING_NAME IS NULL THEN
225    CP_DISPLAY_EARNINGS := 'FALSE';
226   ELSE
227    CP_DISPLAY_EARNINGS := 'TRUE';
228   END IF;
229   RETURN(NULL);
230 end;
231 
232 function cf_deductions_existformula(ELEMENT_REPORTING_NAME1 in varchar2) return char is
233 begin
234   IF ELEMENT_REPORTING_NAME1 IS NULL THEN
235    CP_DISPLAY_DEDUCTIONS := 'FALSE';
236   ELSE
237    CP_DISPLAY_DEDUCTIONS := 'TRUE';
238   END IF;
239   RETURN(NULL);
240 end;
241 
242 function cf_messages_existformula(PAY_ADVICE_MESSAGE in varchar2) return char is
243 begin
244   IF PAY_ADVICE_MESSAGE IS NULL THEN
245    CP_DISPLAY_MESSAGES := 'FALSE';
246   ELSE
247    CP_DISPLAY_MESSAGES := 'TRUE';
248   END IF;
249   RETURN(NULL);
250 end;
251 
252 function cf_fx_amountformula(exchange_rate in number, amount in number) return number is
253 v_fx_amount number;
254 begin
255   if NVL(exchange_rate, 0) <> 0 then
256 	v_fx_amount := amount/exchange_rate;
257   end if;
258   return v_fx_amount;
259 end;
260 
261 --Functions to refer Oracle report placeholders--
262 
263  Function CP_ADDRESS_LINE2_p return varchar2 is
264 	Begin
265 	 return CP_ADDRESS_LINE2;
266 	 END;
267  Function CP_ADDRESS_LINE3_p return varchar2 is
268 	Begin
269 	 return CP_ADDRESS_LINE3;
270 	 END;
271  Function CP_TOWN_p return varchar2 is
272 	Begin
273 	 return CP_TOWN;
274 	 END;
275  Function CP_POST_CODE_p return varchar2 is
276 	Begin
277 	 return CP_POST_CODE;
278 	 END;
279  Function CP_COUNTRY_p return varchar2 is
280 	Begin
281 	 return CP_COUNTRY;
282 	 END;
283  Function CP_GROSS_PAY_YTD_p return number is
284 	Begin
285 	 return CP_GROSS_PAY_YTD;
286 	 END;
287  Function CP_STAT_DED_CURR_p return number is
288 	Begin
289 	 return CP_STAT_DED_CURR;
290 	 END;
291  Function CP_STAT_DED_YTD_p return number is
292 	Begin
293 	 return CP_STAT_DED_YTD;
294 	 END;
295  Function CP_OTHER_CURR_p return number is
296 	Begin
297 	 return CP_OTHER_CURR;
298 	 END;
299  Function CP_OTHER_YTD_p return number is
300 	Begin
301 	 return CP_OTHER_YTD;
302 	 END;
303  Function CP_NON_PAY_CURR_p return number is
304 	Begin
305 	 return CP_NON_PAY_CURR;
306 	 END;
307  Function CP_NON_PAY_YTD_p return number is
308 	Begin
309 	 return CP_NON_PAY_YTD;
310 	 END;
311  Function CP_NET_PAY_CURR_p return number is
312 	Begin
313 	 return CP_NET_PAY_CURR;
314 	 END;
315  Function CP_NET_PAY_YTD_p return number is
316 	Begin
317 	 return CP_NET_PAY_YTD;
318 	 END;
319  Function CP_EMPLOYEE_CPF_CURR_p return number is
320 	Begin
321 	 return CP_EMPLOYEE_CPF_CURR;
322 	 END;
323  Function CP_EMPLOYEE_CPF_YTD_p return number is
324 	Begin
325 	 return CP_EMPLOYEE_CPF_YTD;
326 	 END;
327  Function CP_EMPLOYER_CPF_CURR_p return number is
328 	Begin
329 	 return CP_EMPLOYER_CPF_CURR;
330 	 END;
331  Function CP_EMPLOYER_CPF_YTD_p return number is
332 	Begin
333 	 return CP_EMPLOYER_CPF_YTD;
334 	 END;
335  Function CP_TOTAL_CPF_CURR_p return number is
336 	Begin
337 	 return CP_TOTAL_CPF_CURR;
338 	 END;
339  Function CP_TOTAL_CPF_YTD_p return number is
340 	Begin
341 	 return CP_TOTAL_CPF_YTD;
342 	 END;
343  Function CP_ABS_THIS_PERIOD_p return number is
344 	Begin
345 	 return CP_ABS_THIS_PERIOD;
346 	 END;
347  Function CP_NET_ACCRUAL_p return number is
348 	Begin
349 	 return CP_NET_ACCRUAL;
350 	 END;
351  Function CP_WHERE_CLAUSE_p return varchar2 is
352 	Begin
353 	 return CP_WHERE_CLAUSE;
354 	 END;
355  Function CP_ORDER_BY_p return varchar2 is
356 	Begin
357 	 return CP_ORDER_BY;
358 	 END;
359  Function CP_DISPLAY_EARNINGS_p return varchar2 is
360 	Begin
361 	 return CP_DISPLAY_EARNINGS;
362 	 END;
363  Function CP_DISPLAY_DEDUCTIONS_p return varchar2 is
364 	Begin
365 	 return CP_DISPLAY_DEDUCTIONS;
366 	 END;
367  Function CP_DISPLAY_MESSAGES_p return varchar2 is
368 	Begin
369 	 return CP_DISPLAY_MESSAGES;
370 	 END;
371 END PAY_PAYSGSOE_XMLP_PKG ;