DBA Data[Home] [Help]

PACKAGE BODY: APPS.HR_SG_AEI_LEG_HOOK

Source


1 Package body hr_sg_aei_leg_hook as
2 /* $Header: pesglhae.pkb 120.0.12000000.2 2007/03/29 05:39:00 jalin noship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- |                     Private Global Definitions                           |
6 -- ----------------------------------------------------------------------------
7 --
8   g_package  varchar2(33)	:= 'hr_sg_aei_leg_hook.';  -- Global package name
9 --
10 --
11 -- ----------------------------------------------------------------------------
12 -- |-----------------------< chk_ir8s_c_valid>-------------------------|
13 -- ----------------------------------------------------------------------------
14 -- Description:
15 --   Verify that the segment values are valid for certain conditions
16 --   Added for SG Payroll specific situations.
17 --
18 -- Pre Conditions:
19 --
20 --
21 -- In Parameters:
22 --   assignment_id, information_type, aei_information1, aei_information2,
23 --   aei_information3, aei_information4, aei_information5, aei_information6,
24 --   aei_information7, aei_information8, aei_information9, aei_information10
25 --   aei_information11
26 --
27 -- Post Success:
28 --   Processing continues.
29 --
30 -- Post Failure:
31 --   An application error will be raised and processing is terminated.
32 --
33 -- Access Status:
34 --   Internal Table Handler Use Only.
35 -- ----------------------------------------------------------------------------
36 Procedure chk_ir8s_c_valid ( p_assignment_id    number,
37                              p_information_type varchar2,
38                              p_aei_information1 varchar2,
39                              p_aei_information2 varchar2,
40                              p_aei_information3 varchar2,
41                              p_aei_information4 varchar2,
42                              p_aei_information5 varchar2,
43                              p_aei_information6 varchar2,
44                              p_aei_information7 varchar2,
45                              p_aei_information8 varchar2,
46                              p_aei_information9 varchar2,
47                              p_aei_information10 varchar2,
48                              p_aei_information11 varchar2) is
49   --
50   l_proc  varchar2(100) := g_package||'chk_ir8s_c_valid';
51   l_invalid_record      varchar(1) NULL;
52   --
53   CURSOR ir8s_c_invalid_records
54             (p_assignment_id    number,
55              p_information_type varchar2,
56              p_aei_information1 varchar2) is
57   SELECT 'X'
58   FROM   per_assignment_extra_info
59   WHERE  assignment_id    = p_assignment_id
60     AND  information_type = p_information_type
61     AND  aei_information1 = p_aei_information1
62   HAVING count(*) > 3;
63 
64   --
65 Begin
66   --
67   hr_utility.set_location('Entering:'||l_proc, 10);
68   --
69   if p_information_type = 'HR_CPF_CLAIMED_SG' then
70 
71      -- check if it has more than 3 claim details entered per basic year
72      open ir8s_c_invalid_records
73                 (p_assignment_id,
74                  p_information_type,
75                  p_aei_information1);
76      fetch ir8s_c_invalid_records into l_invalid_record;
77      if ir8s_c_invalid_records%found then
78        fnd_message.set_name('PAY', 'HR_SG_IR8S_C_RECORDS_INVALID');
79        fnd_message.raise_error;
80 
81         hr_utility.set_location(l_proc, 20);
82 
83      end if;
84      close ir8s_c_invalid_records;
85 
86 
87      -- Check if any the following has been entered, Additional Wages, Payment
88      -- for additional wages from date, Payment for additional wages to date
89      -- and pay date for additional wages
90 
91      if ((nvl(p_aei_information2, 0) = 0) and
92              (p_aei_information3 is null or
93               p_aei_information4 is null or
94               p_aei_information5 is null)) or
95          ((p_aei_information3 is not null) and
96              (nvl(p_aei_information2, 0) = 0 or
97               p_aei_information4 is null or
98               p_aei_information5 is null)) or
99          ((p_aei_information4 is not null) and
100              (nvl(p_aei_information2, 0) = 0 or
101               p_aei_information3 is null or
102               p_aei_information5 is null)) or
103          ((p_aei_information5 is not null) and
104              (nvl(p_aei_information2, 0) = 0 or
105               p_aei_information3 is null or
106               p_aei_information4 is null)) then
107 
108         fnd_message.set_name('PAY', 'HR_SG_IR8S_C_ADD_WAGES_INVALID');
109         fnd_message.raise_error;
110 
111         hr_utility.set_location(l_proc, 30);
112 
113      -- check if Period To Date of Additional Wages is greater then
114      -- Period From Date of Additional Wages
115      -- Modified the condition for Bug# 3249303
116 
117      elsif fnd_date.canonical_to_date(p_aei_information4) <= fnd_date.canonical_to_date(p_aei_information3) then
118            fnd_message.set_name('PAY', 'HR_SG_IR8S_C_DATES_INVALID2');
119            fnd_message.set_token('DATE1', 'Period To Date of Additional Wages');
120            fnd_message.set_token('DATE2', 'Period From Date of Additional Wages');
121            fnd_message.raise_error;
122 
123            hr_utility.set_location(l_proc, 40);
124 
125      -- Check Pay date for additional wages must be greater or equal to
126      -- Payment for additional wages to date
127 
128      elsif fnd_date.canonical_to_date(p_aei_information5) < fnd_date.canonical_to_date(p_aei_information4) then
129            fnd_message.set_name('PAY', 'HR_SG_IR8S_C_DATES_INVALID');
130            fnd_message.set_token('DATE1', 'Pay Date of Additional Wages');
131            fnd_message.set_token('DATE2', 'Period To Date of Additional Wages');
132            fnd_message.raise_error;
133 
134            hr_utility.set_location(l_proc, 50);
135 
136      -- Check if Date of refund on employer CPF contribution is entered then
137      -- ensure Pay date for additional wages must be entered
138 
139      elsif p_aei_information8 is not null and
140            p_aei_information5 is null then
141            fnd_message.set_name('PAY', 'HR_SG_IR8S_C_DATES_INVALID1');
142            fnd_message.set_token('FIELD1', 'Date of Refund of Employer Amount');
143            fnd_message.set_token('FIELD2', 'Pay Date of Additional Wages');
144            fnd_message.raise_error;
145 
146            hr_utility.set_location(l_proc, 60);
147 
148      -- Check if ER CPF contribution on amount of refund is entered then ensure
149      -- Date of refund on ER CPF contribution on amount of refund must be entered
150      elsif nvl(p_aei_information6, 0) <> 0 and p_aei_information8 is null then
151            fnd_message.set_name('PAY', 'HR_SG_IR8S_C_DATES_INVALID1');
152            fnd_message.set_token('FIELD1', 'Amount of Refund of Employer Contribution');
153            fnd_message.set_token('FIELD2', 'Date of Refund of Employer Amount');
154            fnd_message.raise_error;
155 
156            hr_utility.set_location(l_proc, 70);
157 
158      -- Check if Interset paid on ER CPF contribution on amount of refund
159      -- is entered then ensure Date of refund on ER CPF contribution on amount
160      -- of refund must be entered
161 
162      elsif nvl(p_aei_information7, 0) <> 0 and p_aei_information8 is null then
163            fnd_message.set_name('PAY', 'HR_SG_IR8S_C_DATES_INVALID1');
164            fnd_message.set_token('FIELD1', 'Interest on Refund of Employer Contribution');
165            fnd_message.set_token('FIELD2', 'Date of Refund of Employer Amount');
166            fnd_message.raise_error;
167 
168            hr_utility.set_location(l_proc, 80);
169 
170      -- Check if Date of refund on ER CPF contribution on amount of refund is
171      -- entered, then ensure ER CPF contribution on amount of refund or
172      -- Interest paid on ER CPF contribution on amount of refund must be entered
173 
174      elsif ((p_aei_information8 is not null) and
175                 (nvl(p_aei_information6, 0) = 0 and nvl(p_aei_information7, 0) =0)) then
176            fnd_message.set_name('PAY', 'HR_SG_IR8S_C_CPF_INVALID');
177            fnd_message.set_token('FIELD1', 'Amount of Refund of Employer Contribution');
178            fnd_message.set_token('FIELD2', 'Interest on Refund of Employer Contribution');
179            fnd_message.set_token('FIELD3', 'Date of Refund of Employer Amount');
180            fnd_message.raise_error;
181 
182            hr_utility.set_location(l_proc, 90);
183 
184      -- Check date of refund on ER CPF Contribution on amount of refund must
185      -- be greater or equal to Pay date for additional wages
186 
187      elsif fnd_date.canonical_to_date(p_aei_information8) < fnd_date.canonical_to_date(p_aei_information5) then
188            fnd_message.set_name('PAY', 'HR_SG_IR8S_C_DATES_INVALID');
189            fnd_message.set_token('DATE1', 'Date of Refund of Employer Amount');
190            fnd_message.set_token('DATE2', 'Pay Date of Additional Wages');
191            fnd_message.raise_error;
192 
193            hr_utility.set_location(l_proc, 100);
194 
195      -- Check if Date of refund on employee CPF contribution is entered then
196      -- ensure Pay date for additional wages must be entered
197 
198      elsif p_aei_information11 is not null and
199              p_aei_information5 is null then
200            fnd_message.set_name('PAY', 'HR_SG_IR8S_C_DATES_INVALID1');
201            fnd_message.set_token('FIELD1', 'Date of Refund of Employee Amount');
202            fnd_message.set_token('FIELD2', 'Pay Date of Additional Wages');
203            fnd_message.raise_error;
204 
205            hr_utility.set_location(l_proc, 110);
206 
207      -- Check if ER CPF contribution on amount of refund is entered then ensure
208      -- Date of refund on ER CPF contribution on amount of refund must be entered
209 
210      elsif nvl(p_aei_information9, 0) <> 0 and p_aei_information11 is null then
211            fnd_message.set_name('PAY', 'HR_SG_IR8S_C_DATES_INVALID1');
212            fnd_message.set_token('FIELD1', 'Amount of Refund of Employee Contribution');
213            fnd_message.set_token('FIELD2', 'Date of Refund of Employee Amount');
214            fnd_message.raise_error;
215 
216            hr_utility.set_location(l_proc, 120);
217 
218      -- Check if Interset paid on EE CPF contribution on amount of refund
219      -- is entered then ensure Date of refund on EE CPF contribution on amount
220      -- of refund must be entered
221 
222      elsif nvl(p_aei_information10, 0) <> 0 and p_aei_information11 is null then
223            fnd_message.set_name('PAY', 'HR_SG_IR8S_C_DATES_INVALID1');
224            fnd_message.set_token('FIELD1', 'Interest on Refund of Employee Contribution');
225            fnd_message.set_token('FIELD2', 'Date of Refund of Employee Amount');
226            fnd_message.raise_error;
227 
228            hr_utility.set_location(l_proc, 130);
229 
230      -- Check if Date of refund on EE CPF contribution on amount of refund is
231      -- entered, then ensure EE CPF contribution on amount of refund or
232      -- Interest paid on EE CPF contribution on amount of refund must be entered
233 
234      elsif ((p_aei_information11 is not null) and
235                 (nvl(p_aei_information9, 0) = 0 and nvl(p_aei_information10, 0) = 0)) then
236            fnd_message.set_name('PAY', 'HR_SG_IR8S_C_CPF_INVALID');
237            fnd_message.set_token('FIELD1', 'Amount of Refund of Employee Contribution');
238            fnd_message.set_token('FIELD2', 'Interest on Refund of Employee Contribution');
239            fnd_message.set_token('FIELD3', 'Date of Refund of Employee Amount');
240            fnd_message.raise_error;
241 
242            hr_utility.set_location(l_proc, 140);
243 
244      -- Check date of refund on EE CPF Contribution on amount of refund must
245      -- be greater or equal to Pay date for additional wages
246 
247      elsif fnd_date.canonical_to_date(p_aei_information11) < fnd_date.canonical_to_date(p_aei_information5) then
248            fnd_message.set_name('PAY', 'HR_SG_IR8S_C_DATES_INVALID');
249            fnd_message.set_token('DATE1', 'Date of Refund of Employee Amount');
250            fnd_message.set_token('DATE2', 'Pay Date of Additional Wages');
251            fnd_message.raise_error;
252 
253            hr_utility.set_location(l_proc, 150);
254 
255      -- Check all dates are in basis year
256      -- Bug 5960714, this validation check should not include Date of refund
257      -- p_aei_information8 &p_aei_information11
258      elsif nvl(to_char(fnd_date.canonical_to_date(p_aei_information3), 'YYYY'),
259                 p_aei_information1) <> p_aei_information1 or
260             nvl(to_char(fnd_date.canonical_to_date(p_aei_information4), 'YYYY'),
261                 p_aei_information1) <> p_aei_information1 or
262             nvl(to_char(fnd_date.canonical_to_date(p_aei_information5), 'YYYY'),
263                 p_aei_information1) <> p_aei_information1 then
264 
265            fnd_message.set_name('PAY', 'HR_SG_IR8S_C_DATES_SAME_YEAR');
266            fnd_message.raise_error;
267 
268            hr_utility.set_location(l_proc, 160);
269 
270      end if;
271   end if;
272   --
273   hr_utility.set_location(' Leaving:'||l_proc, 170);
274   --
275 End chk_ir8s_c_valid;
276 --
277 --
278 End hr_sg_aei_leg_hook;