107: --
108:
109: Begin
110: --
111: hr_utility.set_location('Entering:'||l_proc, 10);
112: --
113: if p_information_type IN ('PER_US_PASSPORT_DETAILS',
114: 'PER_US_VISA_DETAILS', 'PER_US_VISIT_HISTORY') then
115: --
113: if p_information_type IN ('PER_US_PASSPORT_DETAILS',
114: 'PER_US_VISA_DETAILS', 'PER_US_VISIT_HISTORY') then
115: --
116: -- check for end date later than start date
117: hr_utility.set_location(l_proc, 15);
118: for c1_rec in c1 (p_person_id,
119: p_information_type) loop
120:
121: --
119: p_information_type) loop
120:
121: --
122: -- raise error if start date later than end date
123: hr_utility.set_message(800, 'PER_INCORRECT_START_END_DATES');
124: hr_utility.raise_error;
125: end loop;
126: end if;
127:
120:
121: --
122: -- raise error if start date later than end date
123: hr_utility.set_message(800, 'PER_INCORRECT_START_END_DATES');
124: hr_utility.raise_error;
125: end loop;
126: end if;
127:
128: hr_utility.set_location(l_proc, 20);
124: hr_utility.raise_error;
125: end loop;
126: end if;
127:
128: hr_utility.set_location(l_proc, 20);
129:
130: if p_information_type IN ('PER_US_PASSPORT_DETAILS',
131: 'PER_US_VISA_DETAILS') then
132: --
130: if p_information_type IN ('PER_US_PASSPORT_DETAILS',
131: 'PER_US_VISA_DETAILS') then
132: --
133: -- check for duplicate record
134: hr_utility.set_location(l_proc, 25);
135: for c4_rec in c4 (p_person_id,
136: p_information_type,
137: p_pei_information5,
138: p_pei_information6 ) loop
137: p_pei_information5,
138: p_pei_information6 ) loop
139: --
140: -- raise error if a duplicate record exists
141: hr_utility.set_message(800, 'PER_PEI_VISA_DUP_RECORD');
142: hr_utility.raise_error;
143: end loop;
144: end if;
145:
138: p_pei_information6 ) loop
139: --
140: -- raise error if a duplicate record exists
141: hr_utility.set_message(800, 'PER_PEI_VISA_DUP_RECORD');
142: hr_utility.raise_error;
143: end loop;
144: end if;
145:
146: hr_utility.set_location(l_proc, 30);
142: hr_utility.raise_error;
143: end loop;
144: end if;
145:
146: hr_utility.set_location(l_proc, 30);
147:
148: if p_information_type = 'PER_US_PAYROLL_DETAILS' then
149: --
150: -- check for INCOME_CODE duplicate record
147:
148: if p_information_type = 'PER_US_PAYROLL_DETAILS' then
149: --
150: -- check for INCOME_CODE duplicate record
151: hr_utility.set_location(l_proc, 35);
152: for c2_rec in c2 (p_person_id,
153: p_information_type,
154: p_pei_information5 ) loop
155: --
153: p_information_type,
154: p_pei_information5 ) loop
155: --
156: -- raise error if the record exists for the same INCOME_CODE
157: hr_utility.set_message(800, 'PER_PEI_VISA_DUP_RECORD');
158: hr_utility.raise_error;
159: end loop;
160: end if;
161: --
154: p_pei_information5 ) loop
155: --
156: -- raise error if the record exists for the same INCOME_CODE
157: hr_utility.set_message(800, 'PER_PEI_VISA_DUP_RECORD');
158: hr_utility.raise_error;
159: end loop;
160: end if;
161: --
162: hr_utility.set_location(l_proc, 40);
158: hr_utility.raise_error;
159: end loop;
160: end if;
161: --
162: hr_utility.set_location(l_proc, 40);
163:
164: if p_information_type = 'PER_US_INCOME_FORECAST' then
165: --
166: -- check for INCOME_CODE duplicate record
163:
164: if p_information_type = 'PER_US_INCOME_FORECAST' then
165: --
166: -- check for INCOME_CODE duplicate record
167: hr_utility.set_location(l_proc, 45);
168: for c2_rec in c2 (p_person_id,
169: p_information_type,
170: p_pei_information5 ) loop
171: --
169: p_information_type,
170: p_pei_information5 ) loop
171: --
172: -- raise error if the record exists for the same INCOME_CODE
173: hr_utility.set_message(800, 'PER_PEI_VISA_DUP_RECORD');
174: hr_utility.raise_error;
175: end loop;
176: end if;
177: --
170: p_pei_information5 ) loop
171: --
172: -- raise error if the record exists for the same INCOME_CODE
173: hr_utility.set_message(800, 'PER_PEI_VISA_DUP_RECORD');
174: hr_utility.raise_error;
175: end loop;
176: end if;
177: --
178:
175: end loop;
176: end if;
177: --
178:
179: hr_utility.set_location(l_proc, 50);
180:
181: if p_information_type = 'PER_US_VISA_DETAILS' then
182: --
183: -- check for J Visa Category
180:
181: if p_information_type = 'PER_US_VISA_DETAILS' then
182: --
183: -- check for J Visa Category
184: hr_utility.set_location(l_proc, 55);
185: if (p_pei_information5 = 'J-1' or p_pei_information5 = 'J-2') and
186: p_pei_information9 is NULL then
187: -- raise error if J Visa Category is not entered for J visa
188: hr_utility.set_message(800, 'PER_PEI_J_VISA_CATEGORY');
184: hr_utility.set_location(l_proc, 55);
185: if (p_pei_information5 = 'J-1' or p_pei_information5 = 'J-2') and
186: p_pei_information9 is NULL then
187: -- raise error if J Visa Category is not entered for J visa
188: hr_utility.set_message(800, 'PER_PEI_J_VISA_CATEGORY');
189: hr_utility.raise_error;
190: end if;
191: --
192: -- check for more than one CURRENT Visa record
185: if (p_pei_information5 = 'J-1' or p_pei_information5 = 'J-2') and
186: p_pei_information9 is NULL then
187: -- raise error if J Visa Category is not entered for J visa
188: hr_utility.set_message(800, 'PER_PEI_J_VISA_CATEGORY');
189: hr_utility.raise_error;
190: end if;
191: --
192: -- check for more than one CURRENT Visa record
193: hr_utility.set_location(l_proc, 60);
189: hr_utility.raise_error;
190: end if;
191: --
192: -- check for more than one CURRENT Visa record
193: hr_utility.set_location(l_proc, 60);
194: for c3_rec in c3 (p_person_id, p_information_type) loop
195: --
196: -- raise error if more than one record has CURRENT set to Y
197: hr_utility.set_message(800, 'PER_PEI_MULTI_CURRENT_VISA');
193: hr_utility.set_location(l_proc, 60);
194: for c3_rec in c3 (p_person_id, p_information_type) loop
195: --
196: -- raise error if more than one record has CURRENT set to Y
197: hr_utility.set_message(800, 'PER_PEI_MULTI_CURRENT_VISA');
198: hr_utility.raise_error;
199: end loop;
200: end if;
201: --
194: for c3_rec in c3 (p_person_id, p_information_type) loop
195: --
196: -- raise error if more than one record has CURRENT set to Y
197: hr_utility.set_message(800, 'PER_PEI_MULTI_CURRENT_VISA');
198: hr_utility.raise_error;
199: end loop;
200: end if;
201: --
202: hr_utility.set_location(l_proc, 65);
198: hr_utility.raise_error;
199: end loop;
200: end if;
201: --
202: hr_utility.set_location(l_proc, 65);
203:
204: if p_information_type = 'PER_US_VISIT_HISTORY' then
205: --
206: -- check for overlap visit period
203:
204: if p_information_type = 'PER_US_VISIT_HISTORY' then
205: --
206: -- check for overlap visit period
207: hr_utility.set_location(l_proc, 70);
208: for c_rec in next_visit (p_person_id, p_information_type) loop
209: l_counter := l_counter + 1;
210: --
211: hr_utility.set_location('End Date: '||
207: hr_utility.set_location(l_proc, 70);
208: for c_rec in next_visit (p_person_id, p_information_type) loop
209: l_counter := l_counter + 1;
210: --
211: hr_utility.set_location('End Date: '||
212: to_char(c_rec.end_date,'YYYY/MM/DD')||' : ', 75);
213: if l_counter > 1 then
214: if c_rec.start_date <= a_end_date then
215: --
213: if l_counter > 1 then
214: if c_rec.start_date <= a_end_date then
215: --
216: -- raise error if there is a visit date overlap
217: hr_utility.set_message(800, 'PER_PEI_VISIT_OVERLAP');
218: hr_utility.raise_error;
219: end if;
220: end if;
221: -- Save the end date of previous visit
214: if c_rec.start_date <= a_end_date then
215: --
216: -- raise error if there is a visit date overlap
217: hr_utility.set_message(800, 'PER_PEI_VISIT_OVERLAP');
218: hr_utility.raise_error;
219: end if;
220: end if;
221: -- Save the end date of previous visit
222: a_end_date := c_rec.end_date;
223:
224: end loop;
225: end if;
226: --
227: hr_utility.set_location(l_proc, 80);
228:
229: if p_information_type = 'PER_US_ADDITIONAL_DETAILS' then
230: --
231: -- check if DEP_CHILDREN_IN_CNTRY < DEP_CHILDREN_TOTAL
228:
229: if p_information_type = 'PER_US_ADDITIONAL_DETAILS' then
230: --
231: -- check if DEP_CHILDREN_IN_CNTRY < DEP_CHILDREN_TOTAL
232: hr_utility.set_location(l_proc, 85);
233: if to_number(p_pei_information11) > to_number(p_pei_information10) then
234: --
235: hr_utility.set_message(800, 'PER_PEI_WRONG_DEP_CHILD_NUM');
236: hr_utility.raise_error;
231: -- check if DEP_CHILDREN_IN_CNTRY < DEP_CHILDREN_TOTAL
232: hr_utility.set_location(l_proc, 85);
233: if to_number(p_pei_information11) > to_number(p_pei_information10) then
234: --
235: hr_utility.set_message(800, 'PER_PEI_WRONG_DEP_CHILD_NUM');
236: hr_utility.raise_error;
237: end if;
238: end if;
239: --
232: hr_utility.set_location(l_proc, 85);
233: if to_number(p_pei_information11) > to_number(p_pei_information10) then
234: --
235: hr_utility.set_message(800, 'PER_PEI_WRONG_DEP_CHILD_NUM');
236: hr_utility.raise_error;
237: end if;
238: end if;
239: --
240: --
237: end if;
238: end if;
239: --
240: --
241: hr_utility.set_location(' Leaving:'||l_proc, 90);
242: --
243: End chk_us_visa_rows;
244: --
245: --