[Home] [Help]
PACKAGE BODY: APPS.PER_PEOPLE_V14_PKG
Source
1 PACKAGE BODY PER_PEOPLE_V14_PKG AS
2 /* $Header: peper14t.pkb 120.1 2005/12/06 23:21:51 amigarg noship $ */
3 PROCEDURE form_startup(X_Business_group_id IN OUT NOCOPY NUMBER
4 ,X_Set_Of_Books_Id IN OUT NOCOPY NUMBER
5 ,X_Resp_Appl_Id NUMBER
6 ,X_Resp_Id NUMBER
7 ,X_Legislation_Code IN OUT NOCOPY VARCHAR2
8 ,X_business_group_name IN OUT NOCOPY VARCHAR2
9 ,X_property_on NUMBER
10 ,X_property_off NUMBER
11 ,X_Query_Only_Flag VARCHAR2
12 ,X_employee_property IN OUT NOCOPY NUMBER
13 ,X_expense_check_to_address IN OUT NOCOPY VARCHAR2
14 ,X_expense_to_address_meaning IN OUT NOCOPY VARCHAR2
15 ,X_chart_of_accounts_id IN OUT NOCOPY NUMBER
16 ,X_set_of_books_name IN OUT NOCOPY VARCHAR2
17 ,X_Session_Date IN OUT NOCOPY DATE
18 ,X_End_Of_Time IN OUT NOCOPY DATE
19 ,X_current_appl_id IN OUT NOCOPY NUMBER
20 ,X_person_type_id IN OUT NOCOPY NUMBER
21 ,X_current_employee_flag IN OUT NOCOPY VARCHAR2
22 ,X_current_applicant_flag IN OUT NOCOPY VARCHAR2
23 ,X_current_emp_or_apl_flag IN OUT NOCOPY VARCHAR2)
24 IS
25 --
26 CURSOR data_group
27 IS
28 SELECT dgu.oracle_id
29 , fr.data_group_application_id
30 FROM fnd_data_group_units dgu
31 , fnd_responsibility fr
32 WHERE fr.data_group_id = dgu.data_group_id
33 AND fr.data_group_application_id = dgu.application_id
34 AND fr.application_id = X_Resp_Appl_Id
35 AND fr.responsibility_id = X_Resp_Id;
36 --
37 --
38 CURSOR chart_of_accounts
39 IS
40 SELECT gsb.chart_of_accounts_id
41 , gsb.name
42 FROM gl_sets_of_books gsb
43 WHERE gsb.set_of_books_id = X_Set_Of_Books_Id;
44 --
45 CURSOR bg_details
46 IS
47 SELECT pbg.legislation_code
48 , pbg.name
49 , DECODE(pbg.METHOD_OF_GENERATION_EMP_NUM,'A'
50 , X_property_off , X_property_on)
51 FROM per_business_groups pbg
52 WHERE pbg.business_group_id = X_Business_group_id;
53 --
54 CURSOR expense_address
55 IS
56 SELECT hl.meaning
57 FROM hr_lookups hl
58 WHERE hl.lookup_type= 'HOME_OFFICE'
59 AND hl.lookup_code = X_expense_check_to_address;
60 --
61 CURSOR person_type IS
62 SELECT ppt.person_type_id
63 , pst.current_employee_flag
64 , pst.current_applicant_flag
65 , pst.current_emp_or_apl_flag
66 , TRUNC(SYSDATE)
67 , TO_DATE('31/12/4712','DD/MM/YYYY')
68 FROM per_person_types ppt
69 , per_startup_person_types pst
70 WHERE ppt.business_group_id = X_Business_group_id -- Bug 3648460
71 AND ppt.system_person_type = pst.system_person_type
72 AND ppt.system_person_type = DECODE(X_current_appl_id,810,'OTHER','EMP')
73 AND ppt.default_flag = 'Y'
74 AND pst.default_flag = 'Y';
75 --
76 l_sql_text VARCHAR2(2000):=NULL;
77 l_sql_cursor INTEGER;
78 l_rows_fetched INTEGER;
79 l_rows NUMBER;
80 l_oracle_id NUMBER;
81 l_fsp_business_group_id NUMBER;
82 l_set_of_books_id NUMBER;
83 l_dummy BOOLEAN;
84 l_status VARCHAR2(1);
85 l_ap_status VARCHAR2(1);
86 l_po_status VARCHAR2(1);
87 l_industry VARCHAR2(1);
88 --
89 BEGIN
90 --
91 -- Check whether responsibility is allowed to use form
92 --
93 OPEN data_group;
94 FETCH data_group INTO l_oracle_id, X_current_appl_id;
95 CLOSE data_group;
96 --
97 -- If query only mode then ignore this test
98 --
99 IF (SUBSTR(X_Query_Only_Flag,1,1) <> 'Y')
100 THEN
101 --
102 -- Check HR not Installed and Liscensed.
103 --
104 IF (fnd_installation.get(appl_id => 800
105 ,dep_appl_id => 800
106 ,status => l_status
107 ,industry => l_industry))
108 THEN
109 -- If installed and Not OTA
110 -- then error
111 IF (l_status = 'I')
112 AND (X_current_appl_id <> 810)
113 THEN
114 hr_utility.set_message('801','HR_6041_PO_EMP_HR_INSTALLED');
115 hr_utility.raise_error;
116 hr_utility.raise_error;
117 END IF;
118 END IF;
119 END IF;
120
121 --
122 -- Check Purchasing and Payables not Installed and Liscensed.
123 --
124 l_dummy :=fnd_installation.get(appl_id => 201
125 ,dep_appl_id => 201
126 ,status => l_ap_status
127 ,industry => l_industry);
128
129 l_dummy :=fnd_installation.get(appl_id => 200
130 ,dep_appl_id => 200
131 ,status => l_po_status
132 ,industry => l_industry);
133 --
134 -- If either AP or PO is fully installed (l_status = 'I')
135 -- get the set of books from financials_system_parameters
136 --
137 IF (l_ap_status = 'I') OR (l_po_status = 'I')
138 THEN
139 --
140 -- Dynamic SQL cursor to get round the problem of Table not existing.
141 -- This uses a similar method to OCI but Via PL/SQL instead.
142 --
143 BEGIN
144 --
145 l_sql_text := 'select fsp.set_of_books_id '
146 || ',fsp.expense_check_address_flag '
147 || 'from financials_system_parameters fsp';
148 --
149 -- Open Cursor for Processing Sql statment.
150 --
151 l_sql_cursor := dbms_sql.open_cursor;
152 --
153 -- Parse SQL statement.
154 --
155 dbms_sql.parse(l_sql_cursor, l_sql_text, dbms_sql.v7);
156 --
157 -- Map the local variables to each returned Column
158 --
159 dbms_sql.define_column(l_sql_cursor, 1, l_set_of_books_id);
160 dbms_sql.define_column(l_sql_cursor,2, X_expense_check_to_address,30);
161 --
162 -- Execute the SQL statement.
163 --
164 l_rows_fetched := dbms_sql.EXECUTE(l_sql_cursor);
165 --
166 --
167 l_rows := dbms_sql.fetch_rows(l_sql_cursor);
168 --
169 IF l_rows > 1
170 THEN
171 hr_utility.set_message('801','HR_6153_ALL_PROCEDURE_FAIL');
172 hr_utility.set_message_token('PROCEDURE','Form_startup');
173 hr_utility.raise_error;
174 END IF;
175 --
176 IF l_rows > 0
177 THEN
178 --
179 -- Extract the select list for the current row into local variables.
180 --
181 dbms_sql.column_value(l_sql_cursor, 1, l_set_of_books_id);
182 dbms_sql.column_value(l_sql_cursor, 2, X_expense_check_to_address);
183 END IF;
184 --
185 -- Close cursor used for processing SQL statement.
186 --
187 dbms_sql.close_cursor(l_sql_cursor);
188 END;
189 END IF;
190 --
191 --
192 IF l_set_of_books_id IS NOT NULL
193 THEN
194 X_Set_Of_Books_ID := l_set_of_books_id;
195 END IF;
196 --
197 -- Get the chart of Accounts id for the GL Flexfield
198 -- If set of books profile is set.
199 -- Note: with shared install this table should always exist
200 -- so no need for Dynamic PL/SQL cursor.
201 --
202 IF X_Set_Of_Books_Id IS NOT NULL
203 THEN
204 OPEN chart_of_accounts;
205 FETCH chart_of_accounts INTO X_chart_of_accounts_id
206 ,X_set_of_books_name;
207 IF chart_of_accounts%NOTFOUND THEN
208 hr_utility.set_message('801','HR_6153_ALL_PROCEDURE_FAIL');
209 hr_utility.set_message_token('PROCEDURE','Form_startup');
210 hr_utility.raise_error;
211 END IF;
212 CLOSE chart_of_accounts;
213 END IF;
214 --
215 -- Gets the Legislation of the Business Group (used to Default style
216 -- for the address) and the form property of the Employee Number field
217 -- which is toggled based on whether the Business group has
218 -- its generation set to A(utomatic) or not.
219 --
220 OPEN bg_details;
221 FETCH bg_details INTO X_Legislation_Code
222 ,X_business_group_name
223 ,X_employee_property;
224 CLOSE bg_details;
225 --
226 OPEN expense_address;
227 FETCH expense_address INTO X_expense_to_address_meaning;
228 CLOSE expense_address;
229 --
230 -- Get the Default Employee Person_type from Per_Person_types
231 -- and the start and end dates for a row entered as of sysdate.
232 --
233 OPEN person_type;
234 FETCH person_type INTO X_person_type_id,X_current_employee_flag
235 ,X_current_applicant_flag,X_current_emp_or_apl_flag
236 ,X_Session_Date,X_End_Of_Time;
237 CLOSE person_type;
238 --
239 END;
240 --
241 PROCEDURE Insert_period_of_Service(X_Person_Id NUMBER
242 ,X_Business_Group_Id NUMBER
243 ,X_Date_Start DATE
244 ,X_Period_of_Service_Id IN OUT NOCOPY NUMBER)
245 IS
246 CURSOR C1 IS SELECT per_periods_of_service_s.NEXTVAL FROM sys.dual;
247 --
248 -- START WWBUG 1390173 fix
249 --
250 l_old ben_pps_ler.g_pps_ler_rec;
251 l_new ben_pps_ler.g_pps_ler_rec;
252 --
253 -- END WWBUG 1390173 fix
254 --
255 --
256
257 BEGIN
258 OPEN C1;
259 FETCH C1 INTO X_Period_of_Service_Id;
260 CLOSE C1;
261 --
262 INSERT INTO PER_PERIODS_OF_SERVICE(
263 PERIOD_OF_SERVICE_ID
264 ,BUSINESS_GROUP_ID
265 ,PERSON_ID
266 ,DATE_START
267 ) VALUES (
268 X_Period_of_Service_Id
269 ,X_Business_Group_Id
270 ,X_Person_Id
271 ,X_Date_Start);
272 --
273 --
274 -- START WWBUG 1390173 fix
275 --
276 l_new.PERSON_ID := x_person_id;
277 l_new.BUSINESS_GROUP_ID := x_business_group_id;
278 l_new.DATE_START := x_date_start;
279 l_new.ACTUAL_TERMINATION_DATE := NULL;
280 l_new.LEAVING_REASON := NULL;
281 l_new.ADJUSTED_SVC_DATE := NULL;
282 l_new.ATTRIBUTE1 := NULL;
283 l_new.ATTRIBUTE2 := NULL;
284 l_new.ATTRIBUTE3 := NULL;
285 l_new.ATTRIBUTE4 := NULL;
286 l_new.ATTRIBUTE5 := NULL;
287 l_new.final_process_date := NULL;
288 --
289 ben_pps_ler.ler_chk(p_old => l_old
290 ,p_new => l_new
291 ,p_event => 'INSERTING'
292 ,p_effective_date => x_date_start);
293 --
294 -- END WWBUG 1390173 fix
295 --
296 --
297 END insert_period_of_service;
298 --
299 PROCEDURE Insert_Row(X_Rowid IN OUT NOCOPY VARCHAR2,
300 X_Person_Id IN OUT NOCOPY NUMBER,
301 X_Party_Id NUMBER DEFAULT NULL,
302 X_Effective_Start_Date DATE,
303 X_Effective_End_Date DATE,
304 X_Business_Group_Id NUMBER,
305 X_Person_Type_Id NUMBER,
306 X_Last_Name VARCHAR2,
307 X_Start_Date DATE,
308 X_Applicant_Number VARCHAR2,
309 X_Comment_Id NUMBER,
310 X_Current_Applicant_Flag VARCHAR2,
311 X_Current_Emp_Or_Apl_Flag VARCHAR2,
312 X_Current_Employee_Flag VARCHAR2,
313 X_Date_Employee_Data_Verified DATE,
314 X_Date_Of_Birth DATE,
315 X_Email_Address VARCHAR2,
316 X_Employee_Number VARCHAR2,
317 X_Expense_Check_To_Address VARCHAR2,
318 X_First_Name VARCHAR2,
319 X_Full_Name VARCHAR2,
320 X_Known_As VARCHAR2,
321 X_Marital_Status VARCHAR2,
322 X_Middle_Names VARCHAR2,
323 X_Nationality VARCHAR2,
324 X_National_Identifier VARCHAR2,
325 X_Previous_Last_Name VARCHAR2,
326 X_Registered_Disabled_Flag VARCHAR2,
327 X_Sex VARCHAR2,
328 X_Title VARCHAR2,
329 X_Vendor_Id NUMBER,
330 X_Work_Telephone VARCHAR2,
331 X_Attribute_Category VARCHAR2,
332 X_Attribute1 VARCHAR2,
333 X_Attribute2 VARCHAR2,
334 X_Attribute3 VARCHAR2,
335 X_Attribute4 VARCHAR2,
336 X_Attribute5 VARCHAR2,
337 X_Attribute6 VARCHAR2,
338 X_Attribute7 VARCHAR2,
339 X_Attribute8 VARCHAR2,
340 X_Attribute9 VARCHAR2,
341 X_Attribute10 VARCHAR2,
342 X_Attribute11 VARCHAR2,
343 X_Attribute12 VARCHAR2,
344 X_Attribute13 VARCHAR2,
345 X_Attribute14 VARCHAR2,
346 X_Attribute15 VARCHAR2,
347 X_Attribute16 VARCHAR2,
348 X_Attribute17 VARCHAR2,
349 X_Attribute18 VARCHAR2,
350 X_Attribute19 VARCHAR2,
351 X_Attribute20 VARCHAR2,
352 X_Attribute21 VARCHAR2,
353 X_Attribute22 VARCHAR2,
354 X_Attribute23 VARCHAR2,
355 X_Attribute24 VARCHAR2,
356 X_Attribute25 VARCHAR2,
357 X_Attribute26 VARCHAR2,
358 X_Attribute27 VARCHAR2,
359 X_Attribute28 VARCHAR2,
360 X_Attribute29 VARCHAR2,
361 X_Attribute30 VARCHAR2,
362 X_Per_Information_Category VARCHAR2,
363 X_Per_Information1 VARCHAR2,
364 X_Per_Information2 VARCHAR2,
365 X_Per_Information3 VARCHAR2,
366 X_Per_Information4 VARCHAR2,
367 X_Per_Information5 VARCHAR2,
368 X_Per_Information6 VARCHAR2,
369 X_Per_Information7 VARCHAR2,
370 X_Per_Information8 VARCHAR2,
371 X_Per_Information9 VARCHAR2,
372 X_Per_Information10 VARCHAR2,
373 X_Per_Information11 VARCHAR2,
374 X_Per_Information12 VARCHAR2,
375 X_Per_Information13 VARCHAR2,
376 X_Per_Information14 VARCHAR2,
377 X_Per_Information15 VARCHAR2,
378 X_Per_Information16 VARCHAR2,
379 X_Per_Information17 VARCHAR2,
383 X_Per_Information21 VARCHAR2,
380 X_Per_Information18 VARCHAR2,
381 X_Per_Information19 VARCHAR2,
382 X_Per_Information20 VARCHAR2,
384 X_Per_Information22 VARCHAR2,
385 X_Per_Information23 VARCHAR2,
386 X_Per_Information24 VARCHAR2,
387 X_Per_Information25 VARCHAR2,
388 X_Per_Information26 VARCHAR2,
389 X_Per_Information27 VARCHAR2,
390 X_Per_Information28 VARCHAR2,
391 X_Per_Information29 VARCHAR2,
392 X_Per_Information30 VARCHAR2,
393 X_Last_Update_Date DATE,
394 X_Last_Updated_By NUMBER,
395 X_Last_Update_Login NUMBER,
396 X_Created_By NUMBER,
397 X_Creation_Date DATE,
398 X_Order_Name VARCHAR2,
399 X_Global_Name VARCHAR2,
400 X_Local_Name VARCHAR2,
401 X_PERIOD_OF_SERVICE_ID IN OUT NOCOPY NUMBER,
402 X_TOWN_OF_BIRTH VARCHAR2 DEFAULT NULL,
403 X_REGION_OF_BIRTH VARCHAR2 DEFAULT NULL,
404 X_COUNTRY_OF_BIRTH VARCHAR2 DEFAULT NULL,
405 X_GLOBAL_PERSON_ID VARCHAR2 DEFAULT NULL,
406 X_blood_type VARCHAR2 default NULL,
407 X_correspondence_language VARCHAR2 default NULL,
408 X_honors VARCHAR2 default NULL,
409 X_pre_name_adjunct VARCHAR2 default NULL,
410 X_rehire_authorizor VARCHAR2 default NULL,
411 X_rehire_recommendation VARCHAR2 default NULL,
412 X_resume_exists VARCHAR2 default NULL,
413 X_resume_last_updated DATE default NULL,
414 X_second_passport_exists VARCHAR2 default NULL,
415 X_student_status VARCHAR2 default NULL,
416 X_suffix VARCHAR2 default NULL,
417 X_date_of_death DATE default NULL,
418 X_uses_tobacco_flag VARCHAR2 default NULL,
419 X_fast_path_employee VARCHAR2 default NULL,
420 X_fte_capacity VARCHAR2 default NULL
421 ) IS
422 l_period_of_service_id NUMBER;
423 CURSOR C IS SELECT ROWID FROM PER_ALL_PEOPLE_F
424 WHERE person_id = X_Person_Id;
425 CURSOR C2 IS SELECT per_people_s.NEXTVAL FROM sys.dual;
426 --
427 CURSOR c_person IS
428 SELECT *
429 FROM per_all_people_f
430 WHERE person_id = x_person_id
431 AND x_effective_start_date
432 BETWEEN effective_start_date
433 AND effective_end_date;
434 --
435 l_person per_all_people_f%ROWTYPE;
436 --
437 l_phone_ovn NUMBER := NULL ;
438 l_phone_id NUMBER := NULL ;
439 l_proc VARCHAR2(72):='per_people_v14_pkg.insert_row';
440 --
441 BEGIN
442 hr_utility.set_location('Entering: '||l_proc,10);
443 IF (X_Person_Id IS NULL) THEN
444 OPEN C2;
445 FETCH C2 INTO X_Person_Id;
446 CLOSE C2;
447 END IF;
448
449 -- Verify party id, if one is passed in
450 IF X_party_id IS NOT NULL THEN
451 --
452 per_per_bus.chk_party_id
453 (p_person_id => X_person_id
454 ,p_party_id => X_party_id
455 ,p_effective_date => X_effective_start_date
456 ,p_object_version_number => NULL);
457 END IF;
458 hr_utility.set_location(l_proc,20);
459 INSERT INTO PER_ALL_PEOPLE_F(
460 person_id,
461 effective_start_date,
462 effective_end_date,
463 business_group_id,
464 person_type_id,
465 last_name,
466 start_date,
467 applicant_number,
468 comment_id,
469 current_applicant_flag,
470 current_emp_or_apl_flag,
471 current_employee_flag,
472 date_employee_data_verified,
473 date_of_birth,
474 email_address,
475 employee_number,
476 expense_check_send_to_address,
477 first_name,
478 full_name,
479 known_as,
480 marital_status,
481 middle_names,
482 nationality,
483 national_identifier,
484 previous_last_name,
485 registered_disabled_flag,
486 sex,
487 title,
488 vendor_id,
489 -- work_telephone, -- Now handled by the Create_phone call.
490 attribute_category,
491 attribute1,
492 attribute2,
493 attribute3,
494 attribute4,
495 attribute5,
496 attribute6,
497 attribute7,
498 attribute8,
499 attribute9,
500 attribute10,
501 attribute11,
502 attribute12,
503 attribute13,
507 attribute17,
504 attribute14,
505 attribute15,
506 attribute16,
508 attribute18,
509 attribute19,
510 attribute20,
511 attribute21,
512 attribute22,
513 attribute23,
514 attribute24,
515 attribute25,
516 attribute26,
517 attribute27,
518 attribute28,
519 attribute29,
520 attribute30,
521 per_information_category,
522 per_information1,
523 per_information2,
524 per_information3,
525 per_information4,
526 per_information5,
527 per_information6,
528 per_information7,
529 per_information8,
530 per_information9,
531 per_information10,
532 per_information11,
533 per_information12,
534 per_information13,
535 per_information14,
536 per_information15,
537 per_information16,
538 per_information17,
539 per_information18,
540 per_information19,
541 per_information20,
542 per_information21,
543 per_information22,
544 per_information23,
545 per_information24,
546 per_information25,
547 per_information26,
548 per_information27,
549 per_information28,
550 per_information29,
551 per_information30,
552 last_update_date,
553 last_updated_by,
554 last_update_login,
555 created_by,
556 creation_date,
557 town_of_birth,
558 region_of_birth,
559 country_of_birth,
560 global_person_id,
561 party_id,
562 blood_type,
563 correspondence_language,
564 honors,
565 pre_name_adjunct,
566 rehire_authorizor,
567 rehire_recommendation,
568 resume_exists,
569 resume_last_updated,
570 second_passport_exists,
571 student_status,
572 suffix,
573 date_of_death,
574 uses_tobacco_flag,
575 fast_path_employee,
576 fte_capacity,
577 order_name, -- #3889584
578 global_name,
579 local_name
580 ) VALUES (
581 X_Person_Id,
582 X_Effective_Start_Date,
583 X_Effective_End_Date,
584 X_Business_Group_Id,
585 -- X_Person_Type_Id,
586 hr_person_type_usage_info.get_default_person_type_id(X_Person_Type_Id),
587 X_Last_Name,
588 X_Start_Date,
589 X_Applicant_Number,
590 X_Comment_Id,
591 X_Current_Applicant_Flag,
592 X_Current_Emp_Or_Apl_Flag,
593 X_Current_Employee_Flag,
594 X_Date_Employee_Data_Verified,
595 X_Date_Of_Birth,
596 X_Email_Address,
597 X_Employee_Number,
598 X_Expense_Check_To_Address,
599 X_First_Name,
600 X_Full_Name,
601 X_Known_As,
602 X_Marital_Status,
603 X_Middle_Names,
604 X_Nationality,
605 X_National_Identifier,
606 X_Previous_Last_Name,
607 X_Registered_Disabled_Flag,
608 X_Sex,
609 X_Title,
610 X_Vendor_Id,
611 -- X_Work_Telephone, -- Now handled by the Create_phone call.
612 X_Attribute_Category,
613 X_Attribute1,
614 X_Attribute2,
615 X_Attribute3,
616 X_Attribute4,
617 X_Attribute5,
618 X_Attribute6,
619 X_Attribute7,
620 X_Attribute8,
621 X_Attribute9,
622 X_Attribute10,
623 X_Attribute11,
624 X_Attribute12,
625 X_Attribute13,
626 X_Attribute14,
627 X_Attribute15,
628 X_Attribute16,
629 X_Attribute17,
630 X_Attribute18,
631 X_Attribute19,
632 X_Attribute20,
633 X_Attribute21,
634 X_Attribute22,
635 X_Attribute23,
636 X_Attribute24,
637 X_Attribute25,
638 X_Attribute26,
639 X_Attribute27,
640 X_Attribute28,
641 X_Attribute29,
642 X_Attribute30,
643 X_per_information_category,
644 X_per_information1,
645 X_per_information2,
646 X_per_information3,
647 X_per_information4,
648 X_per_information5,
649 X_per_information6,
650 X_per_information7,
651 X_per_information8,
652 X_per_information9,
653 X_per_information10,
654 X_per_information11,
655 X_per_information12,
656 X_per_information13,
657 X_per_information14,
658 X_per_information15,
659 X_per_information16,
660 X_per_information17,
661 X_per_information18,
662 X_per_information19,
666 X_per_information23,
663 X_per_information20,
664 X_per_information21,
665 X_per_information22,
667 X_per_information24,
668 X_per_information25,
669 X_per_information26,
670 X_per_information27,
671 X_per_information28,
672 X_per_information29,
673 X_per_information30,
674 X_Last_Update_Date,
675 X_Last_Updated_By,
676 X_Last_Update_Login,
677 X_Created_By,
678 X_Creation_Date,
679 X_town_of_birth,
680 X_region_of_birth,
681 X_country_of_birth,
682 X_global_person_id,
683 X_party_id,
684 X_blood_type,
685 X_correspondence_language,
686 X_honors,
687 X_pre_name_adjunct,
688 X_rehire_authorizor,
689 X_rehire_recommendation,
690 X_resume_exists,
691 X_resume_last_updated,
692 X_second_passport_exists,
693 X_student_status,
694 X_suffix,
695 X_date_of_death,
696 X_uses_tobacco_flag,
697 X_fast_path_employee,
698 X_fte_capacity,
699 X_Order_Name,
700 X_Global_Name,
701 X_Local_Name);
702
703 hr_utility.set_location(l_proc,30);
704 --kramajey uncommented the part of the commented code to make sure the person details are
705 --populated in l_person Bug 4093145
706
707 --
708 OPEN c_person;
709 --
710 FETCH c_person INTO l_person;
711 --
712 CLOSE c_person;
713 --
714 /* BEGIN OF PARTY_ID WORK */
715 /* This is being commented out as part of TCA party unmerge. This part of the code
716 is being called from per_person_type_usage_internal.maintain_person_type_usage
717 --
718 per_hrtca_merge.create_tca_person(p_rec => l_person);
719 hr_utility.set_location('UPDATING party id',10);
720 --
721 -- Now assign the resulting party id back to the record.
722 --
723 --Bug fix 4861893
724 --update statement modified ,per_All_people_f used instead of per_people_f.
725 IF x_party_id IS NULL THEN
726 UPDATE per_all_people_f
727 SET party_id = l_person.party_id
728 WHERE person_id = x_person_id;
729 END IF;
730 --
731 */
732 /* END OF PARTY ID WORK */
733 --
734 -- HR/WF synchronization call
735 --
736 per_hrwf_synch.per_per_wf(p_rec => l_person,
737 p_action => 'INSERT');
738 --
739 --
740 -- Create a phone row if the work_telephone parm is not null.
741 -- Use p_start_date (i.e., p_date_received passed from per_applicant_pkg)
742 -- as the value for effective date and date from.
743 --
744 IF x_work_telephone IS NOT NULL THEN
745 hr_utility.set_location(l_proc,40);
746 hr_phone_api.create_phone
747 (p_date_from => x_effective_start_date
748 ,p_date_to => NULL
749 ,p_phone_type => 'W1'
750 ,p_phone_number => x_work_telephone
751 ,p_parent_id => x_person_id
752 ,p_parent_table => 'PER_ALL_PEOPLE_F'
753 ,p_validate => FALSE
754 ,p_effective_date => x_start_date
755 ,p_object_version_number => l_phone_ovn --out
756 ,p_phone_id => l_phone_id --out
757 );
758 END IF;
759 hr_utility.set_location(l_proc,50);
760 --
761 OPEN C;
762 FETCH C INTO X_Rowid;
763 IF (C%NOTFOUND) THEN
764 CLOSE C;
765 RAISE NO_DATA_FOUND;
766 END IF;
767 CLOSE C;
768 hr_utility.set_location(l_proc,60);
769 --
770 -- add the person to the security lists
771 --
772 IF (X_current_emp_or_apl_flag='Y') THEN
773 hr_utility.set_location(l_proc,70);
774 hr_security_internal.populate_new_person
775 (p_person_id => X_Person_Id
776 ,p_business_group_id => X_Business_group_Id);
777 END IF;
778 hr_utility.set_location(l_proc,80);
779 IF (X_current_employee_flag IS NOT NULL)
780 THEN
781 hr_utility.set_location(l_proc,90);
782 insert_period_of_service(X_Person_id => X_Person_Id
783 ,X_Business_Group_Id => X_Business_Group_id
784 ,X_Date_Start => X_effective_Start_Date
785 ,X_Period_Of_Service_Id => X_Period_Of_Service_Id
786 );
787 END IF;
788 -- PTU : Start of Changes
789
790 hr_per_type_usage_internal.maintain_person_type_usage
791 (p_effective_date => X_effective_Start_Date
792 ,p_person_id => X_Person_Id
793 ,p_person_type_id => X_Person_Type_Id
794 );
795
796 -- PTU : End of Changes
797
798 hr_utility.set_location('Leaving '||l_proc,100);
799 END Insert_Row;
800 --
801 PROCEDURE Lock_Row(X_Rowid VARCHAR2,
802 X_Person_Id NUMBER,
806 X_Person_Type_Id NUMBER,
803 X_Effective_Start_Date DATE,
804 X_Effective_End_Date DATE,
805 X_Business_Group_Id NUMBER,
807 X_Last_Name VARCHAR2,
808 X_Start_Date DATE,
809 X_Applicant_Number VARCHAR2,
810 X_Comment_Id NUMBER,
811 X_Current_Applicant_Flag VARCHAR2,
812 X_Current_Emp_Or_Apl_Flag VARCHAR2,
813 X_Current_Employee_Flag VARCHAR2,
814 X_Date_Employee_Data_Verified DATE,
815 X_Date_Of_Birth DATE,
816 X_Email_Address VARCHAR2,
817 X_Employee_Number VARCHAR2,
818 X_Expense_Check_To_Address VARCHAR2,
819 X_First_Name VARCHAR2,
820 X_Full_Name VARCHAR2,
821 X_Known_As VARCHAR2,
822 X_Marital_Status VARCHAR2,
823 X_Middle_Names VARCHAR2,
824 X_Nationality VARCHAR2,
825 X_National_Identifier VARCHAR2,
826 X_Previous_Last_Name VARCHAR2,
827 X_Registered_Disabled_Flag VARCHAR2,
828 X_Sex VARCHAR2,
829 X_Title VARCHAR2,
830 X_Vendor_Id NUMBER,
831 X_Work_Telephone VARCHAR2,
832 X_Attribute_Category VARCHAR2,
833 X_Attribute1 VARCHAR2,
834 X_Attribute2 VARCHAR2,
835 X_Attribute3 VARCHAR2,
836 X_Attribute4 VARCHAR2,
837 X_Attribute5 VARCHAR2,
838 X_Attribute6 VARCHAR2,
839 X_Attribute7 VARCHAR2,
840 X_Attribute8 VARCHAR2,
841 X_Attribute9 VARCHAR2,
842 X_Attribute10 VARCHAR2,
843 X_Attribute11 VARCHAR2,
844 X_Attribute12 VARCHAR2,
845 X_Attribute13 VARCHAR2,
846 X_Attribute14 VARCHAR2,
847 X_Attribute15 VARCHAR2,
848 X_Attribute16 VARCHAR2,
849 X_Attribute17 VARCHAR2,
850 X_Attribute18 VARCHAR2,
851 X_Attribute19 VARCHAR2,
852 X_Attribute20 VARCHAR2,
853 X_Attribute21 VARCHAR2,
854 X_Attribute22 VARCHAR2,
855 X_Attribute23 VARCHAR2,
856 X_Attribute24 VARCHAR2,
857 X_Attribute25 VARCHAR2,
858 X_Attribute26 VARCHAR2,
859 X_Attribute27 VARCHAR2,
860 X_Attribute28 VARCHAR2,
861 X_Attribute29 VARCHAR2,
862 X_Attribute30 VARCHAR2,
863 X_Per_Information_Category VARCHAR2,
864 X_Per_Information1 VARCHAR2,
865 X_Per_Information2 VARCHAR2,
866 X_Per_Information3 VARCHAR2,
867 X_Per_Information4 VARCHAR2,
868 X_Per_Information5 VARCHAR2,
869 X_Per_Information6 VARCHAR2,
870 X_Per_Information7 VARCHAR2,
871 X_Per_Information8 VARCHAR2,
872 X_Per_Information9 VARCHAR2,
873 X_Per_Information10 VARCHAR2,
874 X_Per_Information11 VARCHAR2,
875 X_Per_Information12 VARCHAR2,
876 X_Per_Information13 VARCHAR2,
877 X_Per_Information14 VARCHAR2,
878 X_Per_Information15 VARCHAR2,
879 X_Per_Information16 VARCHAR2,
880 X_Per_Information17 VARCHAR2,
881 X_Per_Information18 VARCHAR2,
882 X_Per_Information19 VARCHAR2,
886 X_Per_Information23 VARCHAR2,
883 X_Per_Information20 VARCHAR2,
884 X_Per_Information21 VARCHAR2,
885 X_Per_Information22 VARCHAR2,
887 X_Per_Information24 VARCHAR2,
888 X_Per_Information25 VARCHAR2,
889 X_Per_Information26 VARCHAR2,
890 X_Per_Information27 VARCHAR2,
891 X_Per_Information28 VARCHAR2,
892 X_Per_Information29 VARCHAR2,
893 X_Per_Information30 VARCHAR2) IS
894
895 CURSOR C IS
896 SELECT *
897 FROM PER_ALL_PEOPLE_F
898 WHERE ROWID = X_Rowid
899 FOR UPDATE OF Person_Id NOWAIT;
900 Recinfo C%ROWTYPE;
901
902 --
903 -- Declare a similar cursor to lock the phone row.
904 --
905 CURSOR csr_phones IS
906 SELECT phone_number
907 FROM per_phones
908 WHERE parent_id = X_person_id
909 FOR UPDATE OF phone_id NOWAIT;
910 phoneinfo csr_phones%ROWTYPE;
911
912 BEGIN
913 OPEN C;
914 FETCH C INTO Recinfo;
915 IF (C%NOTFOUND) THEN
916 CLOSE C;
917 RAISE NO_DATA_FOUND;
918 END IF;
919 CLOSE C;
920
921 OPEN csr_phones;
922 FETCH csr_phones INTO phoneinfo;
923 -- no need to raise an error if no data found. Phone is not mandatory.
924 CLOSE csr_phones;
925
926 IF (
927 ( (Recinfo.person_id = X_Person_Id)
928 OR ( (Recinfo.person_id IS NULL)
929 AND (X_Person_Id IS NULL)))
930 AND ( (Recinfo.effective_start_date = X_Effective_Start_Date)
931 OR ( (Recinfo.effective_start_date IS NULL)
932 AND (X_Effective_Start_Date IS NULL)))
933 AND ( (Recinfo.effective_end_date = X_Effective_End_Date)
934 OR ( (Recinfo.effective_end_date IS NULL)
935 AND (X_Effective_End_Date IS NULL)))
936 AND ( (Recinfo.business_group_id = X_Business_Group_Id)
937 OR ( (Recinfo.business_group_id IS NULL)
938 AND (X_Business_Group_Id IS NULL)))
939 -- PTU : Changes
940 -- AND ( (Recinfo.person_type_id = X_Person_Type_Id)
941 -- OR ( (Recinfo.person_type_id IS NULL)
942 -- AND (X_Person_Type_Id IS NULL)))
943 -- PTU : End Changes
944 AND ( (Recinfo.last_name = X_Last_Name)
945 OR ( (Recinfo.last_name IS NULL)
946 AND (X_Last_Name IS NULL)))
947 AND ( (Recinfo.start_date = X_Start_Date)
948 OR ( (Recinfo.start_date IS NULL)
949 AND (X_Start_Date IS NULL)))
950 AND ( (Recinfo.applicant_number = X_Applicant_Number)
951 OR ( (Recinfo.applicant_number IS NULL)
952 AND (X_Applicant_Number IS NULL)))
953 AND ( (Recinfo.comment_id = X_Comment_Id)
954 OR ( (Recinfo.comment_id IS NULL)
955 AND (X_Comment_Id IS NULL)))
956 AND ( (Recinfo.current_applicant_flag = X_Current_Applicant_Flag)
957 OR ( (Recinfo.current_applicant_flag IS NULL)
958 AND (X_Current_Applicant_Flag IS NULL)))
959 AND ( (Recinfo.current_emp_or_apl_flag = X_Current_Emp_Or_Apl_Flag)
960 OR ( (Recinfo.current_emp_or_apl_flag IS NULL)
961 AND (X_Current_Emp_Or_Apl_Flag IS NULL)))
962 AND ( (Recinfo.current_employee_flag = X_Current_Employee_Flag)
963 OR ( (Recinfo.current_employee_flag IS NULL)
964 AND (X_Current_Employee_Flag IS NULL)))
965 AND (
966 (Recinfo.date_employee_data_verified = X_Date_Employee_Data_Verified)
967 OR ( (Recinfo.date_employee_data_verified IS NULL)
968 AND (X_Date_Employee_Data_Verified IS NULL)))
969 AND ( (Recinfo.date_of_birth = X_Date_Of_Birth)
970 OR ( (Recinfo.date_of_birth IS NULL)
971 AND (X_Date_Of_Birth IS NULL)))
972 AND ( (Recinfo.email_address = X_Email_Address)
973 OR ( (Recinfo.email_address IS NULL)
974 AND (X_Email_Address IS NULL)))
975 AND ( (Recinfo.employee_number = X_Employee_Number)
976 OR ( (Recinfo.employee_number IS NULL)
977 AND (X_Employee_Number IS NULL)))
978 AND ( (Recinfo.expense_check_send_to_address =
979 X_Expense_Check_To_Address)
980 OR ( (Recinfo.expense_check_send_to_address IS NULL)
981 AND (X_Expense_Check_To_Address IS NULL)))
982 AND ( (Recinfo.first_name = X_First_Name)
983 OR ( (Recinfo.first_name IS NULL)
984 AND (X_First_Name IS NULL)))
985 AND ( (Recinfo.full_name = X_Full_Name)
986 OR ( (Recinfo.full_name IS NULL)
987 AND (X_Full_Name IS NULL)))
988 AND ( (Recinfo.known_as = X_Known_As)
989 OR ( (Recinfo.known_as IS NULL)
990 AND (X_Known_As IS NULL)))
991 AND ( (Recinfo.marital_status = X_Marital_Status)
992 OR ( (Recinfo.marital_status IS NULL)
993 AND (X_Marital_Status IS NULL)))
994 AND ( (Recinfo.middle_names = X_Middle_Names)
995 OR ( (Recinfo.middle_names IS NULL)
996 AND (X_Middle_Names IS NULL)))
997 AND ( (Recinfo.nationality = X_Nationality)
998 OR ( (Recinfo.nationality IS NULL)
999 AND (X_Nationality IS NULL)))
1003 AND ( (Recinfo.previous_last_name = X_Previous_Last_Name)
1000 AND ( (Recinfo.national_identifier = X_National_Identifier)
1001 OR ( (Recinfo.national_identifier IS NULL)
1002 AND (X_National_Identifier IS NULL)))
1004 OR ( (Recinfo.previous_last_name IS NULL)
1005 AND (X_Previous_Last_Name IS NULL)))
1006 AND ( (Recinfo.registered_disabled_flag = X_Registered_Disabled_Flag)
1007 OR ( (Recinfo.registered_disabled_flag IS NULL)
1008 AND (X_Registered_Disabled_Flag IS NULL)))
1009 AND ( (Recinfo.sex = X_Sex)
1010 OR ( (Recinfo.sex IS NULL)
1011 AND (X_Sex IS NULL)))
1012 AND ( (Recinfo.title = X_Title)
1013 OR ( (Recinfo.title IS NULL)
1014 AND (X_Title IS NULL)))
1015 AND ( (Recinfo.vendor_id = X_Vendor_Id)
1016 OR ( (Recinfo.vendor_id IS NULL)
1017 AND (X_Vendor_Id IS NULL)))
1018 AND ( (phoneinfo.phone_number = X_Work_Telephone)
1019 OR ( (phoneinfo.phone_number IS NULL)
1020 AND (X_Work_Telephone IS NULL)))
1021
1022 )
1023 THEN
1024 IF (
1025 ( (Recinfo.attribute_category = X_Attribute_Category)
1026 OR ( (Recinfo.attribute_category IS NULL)
1027 AND (X_Attribute_Category IS NULL)))
1028 AND ( (Recinfo.attribute1 = X_Attribute1)
1029 OR ( (Recinfo.attribute1 IS NULL)
1030 AND (X_Attribute1 IS NULL)))
1031 AND ( (Recinfo.attribute2 = X_Attribute2)
1032 OR ( (Recinfo.attribute2 IS NULL)
1033 AND (X_Attribute2 IS NULL)))
1034 AND ( (Recinfo.attribute3 = X_Attribute3)
1035 OR ( (Recinfo.attribute3 IS NULL)
1036 AND (X_Attribute3 IS NULL)))
1037 AND ( (Recinfo.attribute4 = X_Attribute4)
1038 OR ( (Recinfo.attribute4 IS NULL)
1039 AND (X_Attribute4 IS NULL)))
1040 AND ( (Recinfo.attribute5 = X_Attribute5)
1041 OR ( (Recinfo.attribute5 IS NULL)
1042 AND (X_Attribute5 IS NULL)))
1043 AND ( (Recinfo.attribute6 = X_Attribute6)
1044 OR ( (Recinfo.attribute6 IS NULL)
1045 AND (X_Attribute6 IS NULL)))
1046 AND ( (Recinfo.attribute7 = X_Attribute7)
1047 OR ( (Recinfo.attribute7 IS NULL)
1048 AND (X_Attribute7 IS NULL)))
1049 AND ( (Recinfo.attribute8 = X_Attribute8)
1050 OR ( (Recinfo.attribute8 IS NULL)
1051 AND (X_Attribute8 IS NULL)))
1052 AND ( (Recinfo.attribute9 = X_Attribute9)
1053 OR ( (Recinfo.attribute9 IS NULL)
1054 AND (X_Attribute9 IS NULL)))
1055 AND ( (Recinfo.attribute10 = X_Attribute10)
1056 OR ( (Recinfo.attribute10 IS NULL)
1057 AND (X_Attribute10 IS NULL)))
1058 AND ( (Recinfo.attribute11 = X_Attribute11)
1059 OR ( (Recinfo.attribute11 IS NULL)
1060 AND (X_Attribute11 IS NULL)))
1061 AND ( (Recinfo.attribute12 = X_Attribute12)
1062 OR ( (Recinfo.attribute12 IS NULL)
1063 AND (X_Attribute12 IS NULL)))
1064 AND ( (Recinfo.attribute13 = X_Attribute13)
1065 OR ( (Recinfo.attribute13 IS NULL)
1066 AND (X_Attribute13 IS NULL)))
1067 AND ( (Recinfo.attribute14 = X_Attribute14)
1068 OR ( (Recinfo.attribute14 IS NULL)
1069 AND (X_Attribute14 IS NULL)))
1070 AND ( (Recinfo.attribute15 = X_Attribute15)
1071 OR ( (Recinfo.attribute15 IS NULL)
1072 AND (X_Attribute15 IS NULL)))
1073 AND ( (Recinfo.attribute16 = X_Attribute16)
1074 OR ( (Recinfo.attribute16 IS NULL)
1075 AND (X_Attribute16 IS NULL)))
1076 AND ( (Recinfo.attribute17 = X_Attribute17)
1077 OR ( (Recinfo.attribute17 IS NULL)
1078 AND (X_Attribute17 IS NULL)))
1079 AND ( (Recinfo.attribute18 = X_Attribute18)
1080 OR ( (Recinfo.attribute18 IS NULL)
1081 AND (X_Attribute18 IS NULL)))
1082 AND ( (Recinfo.attribute19 = X_Attribute19)
1083 OR ( (Recinfo.attribute19 IS NULL)
1084 AND (X_Attribute19 IS NULL)))
1085 AND ( (Recinfo.attribute20 = X_Attribute20)
1086 OR ( (Recinfo.attribute20 IS NULL)
1087 AND (X_Attribute20 IS NULL)))
1088 AND ( (Recinfo.attribute21 = X_Attribute21)
1089 OR ( (Recinfo.attribute21 IS NULL)
1090 AND (X_Attribute21 IS NULL)))
1091 AND ( (Recinfo.attribute22 = X_Attribute22)
1092 OR ( (Recinfo.attribute22 IS NULL)
1093 AND (X_Attribute22 IS NULL)))
1094 AND ( (Recinfo.attribute23 = X_Attribute23)
1095 OR ( (Recinfo.attribute23 IS NULL)
1096 AND (X_Attribute23 IS NULL)))
1097 AND ( (Recinfo.attribute24 = X_Attribute24)
1098 OR ( (Recinfo.attribute24 IS NULL)
1099 AND (X_Attribute24 IS NULL)))
1100 AND ( (Recinfo.attribute25 = X_Attribute25)
1101 OR ( (Recinfo.attribute25 IS NULL)
1102 AND (X_Attribute25 IS NULL)))
1103 AND ( (Recinfo.attribute26 = X_Attribute26)
1104 OR ( (Recinfo.attribute26 IS NULL)
1105 AND (X_Attribute26 IS NULL)))
1109 AND ( (Recinfo.attribute28 = X_Attribute28)
1106 AND ( (Recinfo.attribute27 = X_Attribute27)
1107 OR ( (Recinfo.attribute27 IS NULL)
1108 AND (X_Attribute27 IS NULL)))
1110 OR ( (Recinfo.attribute28 IS NULL)
1111 AND (X_Attribute28 IS NULL)))
1112 AND ( (Recinfo.attribute29 = X_Attribute29)
1113 OR ( (Recinfo.attribute29 IS NULL)
1114 AND (X_Attribute29 IS NULL)))
1115 AND ( (Recinfo.attribute30 = X_Attribute30)
1116 OR ( (Recinfo.attribute30 IS NULL)
1117 AND (X_Attribute30 IS NULL)))
1118 AND ( (Recinfo.per_information_category = X_Per_Information_Category)
1119 OR ( (Recinfo.per_information_category IS NULL)
1120 AND (X_Per_Information_Category IS NULL)))
1121 AND ( (Recinfo.per_information1 = X_Per_Information1)
1122 OR ( (Recinfo.per_information1 IS NULL)
1123 AND (X_Per_Information1 IS NULL)))
1124 AND ( (Recinfo.per_information2 = X_Per_Information2)
1125 OR ( (Recinfo.per_information2 IS NULL)
1126 AND (X_Per_Information2 IS NULL)))
1127 AND ( (Recinfo.per_information3 = X_Per_Information3)
1128 OR ( (Recinfo.per_information3 IS NULL)
1129 AND (X_Per_Information3 IS NULL)))
1130 AND ( (Recinfo.per_information4 = X_Per_Information4)
1131 OR ( (Recinfo.per_information4 IS NULL)
1132 AND (X_Per_Information4 IS NULL)))
1133 AND ( (Recinfo.per_information5 = X_Per_Information5)
1134 OR ( (Recinfo.per_information5 IS NULL)
1135 AND (X_Per_Information5 IS NULL)))
1136 AND ( (Recinfo.per_information6 = X_Per_Information6)
1137 OR ( (Recinfo.per_information6 IS NULL)
1138 AND (X_Per_Information6 IS NULL)))
1139 AND ( (Recinfo.per_information7 = X_Per_Information7)
1140 OR ( (Recinfo.per_information7 IS NULL)
1141 AND (X_Per_Information7 IS NULL)))
1142 AND ( (Recinfo.per_information8 = X_Per_Information8)
1143 OR ( (Recinfo.per_information8 IS NULL)
1144 AND (X_Per_Information8 IS NULL)))
1145 AND ( (Recinfo.per_information9 = X_Per_Information9)
1146 OR ( (Recinfo.per_information9 IS NULL)
1147 AND (X_Per_Information9 IS NULL)))
1148 AND ( (Recinfo.per_information10 = X_Per_Information10)
1149 OR ( (Recinfo.per_information10 IS NULL)
1150 AND (X_Per_Information10 IS NULL)))
1151 AND ( (Recinfo.per_information11 = X_Per_Information11)
1152 OR ( (Recinfo.per_information11 IS NULL)
1153 AND (X_Per_Information11 IS NULL)))
1154 AND ( (Recinfo.per_information12 = X_Per_Information12)
1155 OR ( (Recinfo.per_information12 IS NULL)
1156 AND (X_Per_Information12 IS NULL)))
1157 AND ( (Recinfo.per_information13 = X_Per_Information13)
1158 OR ( (Recinfo.per_information13 IS NULL)
1159 AND (X_Per_Information13 IS NULL)))
1160 AND ( (Recinfo.per_information14 = X_Per_Information14)
1161 OR ( (Recinfo.per_information14 IS NULL)
1162 AND (X_Per_Information14 IS NULL)))
1163 AND ( (Recinfo.per_information15 = X_Per_Information15)
1164 OR ( (Recinfo.per_information15 IS NULL)
1165 AND (X_Per_Information15 IS NULL)))
1166 AND ( (Recinfo.per_information16 = X_Per_Information16)
1167 OR ( (Recinfo.per_information16 IS NULL)
1168 AND (X_Per_Information16 IS NULL)))
1169 AND ( (Recinfo.per_information17 = X_Per_Information17)
1170 OR ( (Recinfo.per_information17 IS NULL)
1171 AND (X_Per_Information17 IS NULL)))
1172 AND ( (Recinfo.per_information18 = X_Per_Information18)
1173 OR ( (Recinfo.per_information18 IS NULL)
1174 AND (X_Per_Information18 IS NULL)))
1175 AND ( (Recinfo.per_information19 = X_Per_Information19)
1176 OR ( (Recinfo.per_information19 IS NULL)
1177 AND (X_Per_Information19 IS NULL)))
1178 AND ( (Recinfo.per_information20 = X_Per_Information20)
1179 OR ( (Recinfo.per_information20 IS NULL)
1180 AND (X_Per_Information20 IS NULL)))
1181 AND ( (Recinfo.per_information21 = X_Per_Information21)
1182 OR ( (Recinfo.per_information21 IS NULL)
1183 AND (X_Per_Information21 IS NULL)))
1184 AND ( (Recinfo.per_information22 = X_Per_Information22)
1185 OR ( (Recinfo.per_information22 IS NULL)
1186 AND (X_Per_Information22 IS NULL)))
1187 AND ( (Recinfo.per_information23 = X_Per_Information23)
1188 OR ( (Recinfo.per_information23 IS NULL)
1189 AND (X_Per_Information23 IS NULL)))
1190 AND ( (Recinfo.per_information24 = X_Per_Information24)
1191 OR ( (Recinfo.per_information24 IS NULL)
1192 AND (X_Per_Information24 IS NULL)))
1193 AND ( (Recinfo.per_information25 = X_Per_Information25)
1194 OR ( (Recinfo.per_information25 IS NULL)
1195 AND (X_Per_Information25 IS NULL)))
1196 AND ( (Recinfo.per_information26 = X_Per_Information26)
1197 OR ( (Recinfo.per_information26 IS NULL)
1198 AND (X_Per_Information26 IS NULL)))
1199 AND ( (Recinfo.per_information27 = X_Per_Information27)
1200 OR ( (Recinfo.per_information27 IS NULL)
1201 AND (X_Per_Information27 IS NULL)))
1202 AND ( (Recinfo.per_information28 = X_Per_Information28)
1203 OR ( (Recinfo.per_information28 IS NULL)
1204 AND (X_Per_Information28 IS NULL)))
1205 AND ( (Recinfo.per_information29 = X_Per_Information29)
1206 OR ( (Recinfo.per_information29 IS NULL)
1207 AND (X_Per_Information29 IS NULL)))
1208 AND ( (Recinfo.per_information30 = X_Per_Information30)
1209 OR ( (Recinfo.per_information30 IS NULL)
1210 AND (X_Per_Information30 IS NULL)))
1211 ) THEN
1212 RETURN;
1213 ELSE
1214 FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
1215 APP_EXCEPTION.RAISE_EXCEPTION;
1216 END IF;
1217 END IF;
1218 END Lock_Row;
1219 --
1220 END PER_PEOPLE_V14_PKG;