[Home] [Help]
PACKAGE BODY: APPS.HR_PROCESS_ASSIGNMENT_SS
Source
1 PACKAGE body hr_process_assignment_ss AS
2 /* $Header: hrascwrs.pkb 120.16 2008/02/22 10:46:46 gpurohit noship $*/
3
4
5 g_package constant varchar2(75):='HR_PROCESS_ASSIGNMENT_SS.';
6 g_api_name constant varchar2(75):=g_package || 'PROCESS_API';
7 g_data_error exception;
8 --g_date_format constant varchar2(10):='RRRR/MM/DD';
9 g_registration boolean :=false;
10 g_applicant_hire boolean := false;
11
12 --
13
14 -- bug 5032032
15 PROCEDURE update_salary_proposal(p_assignment_id number
16 , p_effective_date date) IS
17
18 l_pay_proposal_id per_pay_proposals.pay_proposal_id%TYPE;
19 l_pyp_object_version_number per_pay_proposals.object_version_number%TYPE;
20 l_change_date per_pay_proposals.change_date%TYPE;
21 l_proposed_salary per_pay_proposals.PROPOSED_SALARY_N%TYPE;
22 l_approved_flag varchar2(1) := 'Y';
23 l_inv_next_sal_date_warning boolean;
24 l_proposed_salary_warning boolean;
25 l_approved_warning boolean;
26 l_payroll_warning boolean;
27
28 cursor csr_payproposal is
29 select pay_proposal_id, object_version_number, change_date
30 ,PROPOSED_SALARY_N
31 from per_pay_proposals
32 where assignment_id = p_assignment_id
33 order by change_date DESC;
34 BEGIN
35 open csr_payproposal;
36 fetch csr_payproposal into l_pay_proposal_id, l_pyp_object_version_number
37 ,l_change_date, l_proposed_salary;
38 if csr_payproposal%found and l_change_date < p_effective_date then
39
40 hr_maintain_proposal_api.cre_or_upd_salary_proposal
41 (p_pay_proposal_id => l_pay_proposal_id
42 ,p_object_version_number => l_pyp_object_version_number
43 ,p_change_date => p_effective_date
44 ,p_approved => l_approved_flag
45 ,p_inv_next_sal_date_warning => l_inv_next_sal_date_warning
46 ,p_proposed_salary_warning => l_proposed_salary_warning
47 ,p_approved_warning => l_approved_warning
48 ,p_payroll_warning => l_payroll_warning
49 );
50 end if;
51 close csr_payproposal;
52 END update_salary_proposal;
53
54
55 -- bug 5032032
56 procedure get_asg_from_tt
57 (p_transaction_step_id in number
58 ,p_assignment_rec out nocopy per_all_assignments_f%rowtype) is
59 l_proc varchar2(72) := g_package||'get_asg_from_tt';
60
61 begin
62 --dbms_output.put_line(' ');
63 hr_utility.set_location('Entering:'||l_proc, 5);
64 p_assignment_rec.assignment_id:=
65 hr_transaction_api.get_number_value
66 (p_transaction_step_id => p_transaction_step_id
67 ,p_name => 'P_ASSIGNMENT_ID');
68 --
69 p_assignment_rec.object_version_number :=
70 hr_transaction_api.get_number_value
71 (p_transaction_step_id => p_transaction_step_id
72 ,p_name => 'P_OBJECT_VERSION_NUMBER');
73 --
74 p_assignment_rec.business_group_id :=
75 hr_transaction_api.get_number_value
76 (p_transaction_step_id => p_transaction_step_id
77 ,p_name => 'P_BUSINESS_GROUP_ID');
78 --
79 p_assignment_rec.person_id :=
80 hr_transaction_api.get_number_value
81 (p_transaction_step_id => p_transaction_step_id
82 ,p_name => 'P_PERSON_ID');
83 --
84 p_assignment_rec.organization_id :=
85 hr_transaction_api.get_number_value
86 (p_transaction_step_id => p_transaction_step_id
87 ,p_name => 'P_ORGANIZATION_ID');
88 --
89 p_assignment_rec.grade_id :=
90 hr_transaction_api.get_number_value
91 (p_transaction_step_id => p_transaction_step_id
92 ,p_name => 'P_GRADE_ID');
93 --
94 p_assignment_rec.position_id :=
95 hr_transaction_api.get_number_value
96 (p_transaction_step_id => p_transaction_step_id
97 ,p_name => 'P_POSITION_ID');
98 --
99 p_assignment_rec.job_id :=
100 hr_transaction_api.get_number_value
101 (p_transaction_step_id => p_transaction_step_id
102 ,p_name => 'P_JOB_ID');
103 --
104 p_assignment_rec.location_id :=
105 hr_transaction_api.get_number_value
106 (p_transaction_step_id => p_transaction_step_id
107 ,p_name => 'P_LOCATION_ID');
108 --
109 p_assignment_rec.special_ceiling_step_id :=
110 hr_transaction_api.get_number_value
111 (p_transaction_step_id => p_transaction_step_id
112 ,p_name => 'P_SPECIAL_CEILING_STEP_ID');
113 --
114 p_assignment_rec.employment_category :=
115 hr_transaction_api.get_varchar2_value
116 (p_transaction_step_id => p_transaction_step_id
117 ,p_name => 'P_EMPLOYMENT_CATEGORY');
118 --
119 p_assignment_rec.supervisor_id :=
120 hr_transaction_api.get_number_value
121 (p_transaction_step_id => p_transaction_step_id
122 ,p_name => 'P_SUPERVISOR_ID');
123 --
124 p_assignment_rec.manager_flag :=
125 hr_transaction_api.get_varchar2_value
126 (p_transaction_step_id => p_transaction_step_id
127 ,p_name => 'P_MANAGER_FLAG');
128 --
129 p_assignment_rec.normal_hours :=
130 hr_transaction_api.get_number_value
131 (p_transaction_step_id => p_transaction_step_id
132 ,p_name => 'P_NORMAL_HOURS');
133 --
134 p_assignment_rec.frequency :=
135 hr_transaction_api.get_varchar2_value
136 (p_transaction_step_id => p_transaction_step_id
137 ,p_name => 'P_FREQUENCY');
138 --
139 p_assignment_rec.time_normal_finish :=
140 substr(hr_transaction_api.get_varchar2_value
141 (p_transaction_step_id => p_transaction_step_id
142 ,p_name => 'P_TIME_NORMAL_FINISH'),0,5);
143 --
144 p_assignment_rec.time_normal_start :=
145 substr(hr_transaction_api.get_varchar2_value
146 (p_transaction_step_id => p_transaction_step_id
147 ,p_name => 'P_TIME_NORMAL_START'),0,5);
148 --
149 p_assignment_rec.bargaining_unit_code :=
150 hr_transaction_api.get_varchar2_value
151 (p_transaction_step_id => p_transaction_step_id
152 ,p_name => 'P_BARGAINING_UNIT_CODE');
153 --
154 p_assignment_rec.labour_union_member_flag :=
155 hr_transaction_api.get_varchar2_value
156 (p_transaction_step_id => p_transaction_step_id
157 ,p_name => 'P_LABOUR_UNION_MEMBER_FLAG');
158 --
159 p_assignment_rec.assignment_status_type_id :=
160 hr_transaction_api.get_number_value
161 (p_transaction_step_id => p_transaction_step_id
162 ,p_name => 'P_ASSIGNMENT_STATUS_TYPE_ID');
163 --
164 p_assignment_rec.change_reason :=
165 hr_transaction_api.get_varchar2_value
166 (p_transaction_step_id => p_transaction_step_id
167 ,p_name => 'P_CHANGE_REASON');
168 --
169 p_assignment_rec.ass_attribute_category :=
170 hr_transaction_api.get_varchar2_value
171 (p_transaction_step_id => p_transaction_step_id
172 ,p_name => 'P_ASS_ATTRIBUTE_CATEGORY');
173 --
174 p_assignment_rec.ass_attribute1 :=
175 hr_transaction_api.get_varchar2_value
176 (p_transaction_step_id => p_transaction_step_id
177 ,p_name => 'P_ASS_ATTRIBUTE1');
178 --
179 p_assignment_rec.ass_attribute2 :=
180 hr_transaction_api.get_varchar2_value
181 (p_transaction_step_id => p_transaction_step_id
182 ,p_name => 'P_ASS_ATTRIBUTE2');
183 --
184 p_assignment_rec.ass_attribute3 :=
185 hr_transaction_api.get_varchar2_value
186 (p_transaction_step_id => p_transaction_step_id
187 ,p_name => 'P_ASS_ATTRIBUTE3');
188 --
189 p_assignment_rec.ass_attribute4 :=
190 hr_transaction_api.get_varchar2_value
191 (p_transaction_step_id => p_transaction_step_id
192 ,p_name => 'P_ASS_ATTRIBUTE4');
193 --
194 p_assignment_rec.ass_attribute5 :=
195 hr_transaction_api.get_varchar2_value
196 (p_transaction_step_id => p_transaction_step_id
197 ,p_name => 'P_ASS_ATTRIBUTE5');
198 --
199 p_assignment_rec.ass_attribute6 :=
200 hr_transaction_api.get_varchar2_value
201 (p_transaction_step_id => p_transaction_step_id
202 ,p_name => 'P_ASS_ATTRIBUTE6');
203 --
204 p_assignment_rec.ass_attribute7 :=
205 hr_transaction_api.get_varchar2_value
206 (p_transaction_step_id => p_transaction_step_id
207 ,p_name => 'P_ASS_ATTRIBUTE7');
208 --
209 p_assignment_rec.ass_attribute8 :=
210 hr_transaction_api.get_varchar2_value
211 (p_transaction_step_id => p_transaction_step_id
212 ,p_name => 'P_ASS_ATTRIBUTE8');
213 --
214 p_assignment_rec.ass_attribute9 :=
215 hr_transaction_api.get_varchar2_value
216 (p_transaction_step_id => p_transaction_step_id
217 ,p_name => 'P_ASS_ATTRIBUTE9');
218 --
219 p_assignment_rec.ass_attribute10 :=
220 hr_transaction_api.get_varchar2_value
221 (p_transaction_step_id => p_transaction_step_id
222 ,p_name => 'P_ASS_ATTRIBUTE10');
223 --
224 p_assignment_rec.ass_attribute11 :=
225 hr_transaction_api.get_varchar2_value
226 (p_transaction_step_id => p_transaction_step_id
227 ,p_name => 'P_ASS_ATTRIBUTE11');
228 --
229 p_assignment_rec.ass_attribute12 :=
230 hr_transaction_api.get_varchar2_value
231 (p_transaction_step_id => p_transaction_step_id
232 ,p_name => 'P_ASS_ATTRIBUTE12');
233 --
234 p_assignment_rec.ass_attribute13 :=
235 hr_transaction_api.get_varchar2_value
236 (p_transaction_step_id => p_transaction_step_id
237 ,p_name => 'P_ASS_ATTRIBUTE13');
238 --
239 p_assignment_rec.ass_attribute14 :=
240 hr_transaction_api.get_varchar2_value
241 (p_transaction_step_id => p_transaction_step_id
242 ,p_name => 'P_ASS_ATTRIBUTE14');
243 --
244 p_assignment_rec.ass_attribute15 :=
245 hr_transaction_api.get_varchar2_value
246 (p_transaction_step_id => p_transaction_step_id
247 ,p_name => 'P_ASS_ATTRIBUTE15');
248 --
249 p_assignment_rec.ass_attribute16 :=
250 hr_transaction_api.get_varchar2_value
251 (p_transaction_step_id => p_transaction_step_id
252 ,p_name => 'P_ASS_ATTRIBUTE16');
253 --
254 p_assignment_rec.ass_attribute17 :=
255 hr_transaction_api.get_varchar2_value
256 (p_transaction_step_id => p_transaction_step_id
257 ,p_name => 'P_ASS_ATTRIBUTE17');
258 --
259 p_assignment_rec.ass_attribute18 :=
260 hr_transaction_api.get_varchar2_value
261 (p_transaction_step_id => p_transaction_step_id
262 ,p_name => 'P_ASS_ATTRIBUTE18');
263 --
264 p_assignment_rec.ass_attribute19 :=
265 hr_transaction_api.get_varchar2_value
266 (p_transaction_step_id => p_transaction_step_id
267 ,p_name => 'P_ASS_ATTRIBUTE19');
268 --
269 p_assignment_rec.ass_attribute20 :=
270 hr_transaction_api.get_varchar2_value
271 (p_transaction_step_id => p_transaction_step_id
272 ,p_name => 'P_ASS_ATTRIBUTE20');
273 --
274 p_assignment_rec.ass_attribute21 :=
275 hr_transaction_api.get_varchar2_value
276 (p_transaction_step_id => p_transaction_step_id
277 ,p_name => 'P_ASS_ATTRIBUTE21');
278 --
279 p_assignment_rec.ass_attribute22 :=
280 hr_transaction_api.get_varchar2_value
281 (p_transaction_step_id => p_transaction_step_id
282 ,p_name => 'P_ASS_ATTRIBUTE22');
283 --
284 p_assignment_rec.ass_attribute23 :=
285 hr_transaction_api.get_varchar2_value
286 (p_transaction_step_id => p_transaction_step_id
287 ,p_name => 'P_ASS_ATTRIBUTE23');
288 --
289 p_assignment_rec.ass_attribute24 :=
290 hr_transaction_api.get_varchar2_value
291 (p_transaction_step_id => p_transaction_step_id
292 ,p_name => 'P_ASS_ATTRIBUTE24');
293 --
294 p_assignment_rec.ass_attribute25 :=
295 hr_transaction_api.get_varchar2_value
296 (p_transaction_step_id => p_transaction_step_id
297 ,p_name => 'P_ASS_ATTRIBUTE25');
298 --
299 p_assignment_rec.ass_attribute26 :=
300 hr_transaction_api.get_varchar2_value
301 (p_transaction_step_id => p_transaction_step_id
302 ,p_name => 'P_ASS_ATTRIBUTE26');
303 --
304 p_assignment_rec.ass_attribute27 :=
305 hr_transaction_api.get_varchar2_value
306 (p_transaction_step_id => p_transaction_step_id
307 ,p_name => 'P_ASS_ATTRIBUTE27');
308 --
309 p_assignment_rec.ass_attribute28 :=
310 hr_transaction_api.get_varchar2_value
311 (p_transaction_step_id => p_transaction_step_id
312 ,p_name => 'P_ASS_ATTRIBUTE28');
313 --
314 p_assignment_rec.ass_attribute29 :=
315 hr_transaction_api.get_varchar2_value
316 (p_transaction_step_id => p_transaction_step_id
317 ,p_name => 'P_ASS_ATTRIBUTE29');
318 --
319 p_assignment_rec.ass_attribute30 :=
320 hr_transaction_api.get_varchar2_value
321 (p_transaction_step_id => p_transaction_step_id
322 ,p_name => 'P_ASS_ATTRIBUTE30');
323 --
324 p_assignment_rec.contract_id :=
325 hr_transaction_api.get_number_value
326 (p_transaction_step_id => p_transaction_step_id
327 ,p_name => 'P_CONTRACT_ID');
328 --
329 p_assignment_rec.establishment_id :=
330 hr_transaction_api.get_number_value
331 (p_transaction_step_id => p_transaction_step_id
332 ,p_name => 'P_ESTABLISHMENT_ID');
333 --
334 p_assignment_rec.cagr_grade_def_id :=
335 hr_transaction_api.get_number_value
336 (p_transaction_step_id => p_transaction_step_id
337 ,p_name => 'P_CAGR_GRADE_DEF_ID');
338 --
339 p_assignment_rec.collective_agreement_id :=
340 hr_transaction_api.get_number_value
341 (p_transaction_step_id => p_transaction_step_id
342 ,p_name => 'P_COLLECTIVE_AGREEMENT_ID');
343 --
344 p_assignment_rec.cagr_id_flex_num :=
345 hr_transaction_api.get_number_value
346 (p_transaction_step_id => p_transaction_step_id
347 ,p_name => 'P_CAGR_ID_FLEX_NUM');
348 --
349 p_assignment_rec.payroll_id :=
350 hr_transaction_api.get_number_value
351 (p_transaction_step_id => p_transaction_step_id
352 ,p_name => 'P_PAYROLL_ID');
353 --
354 p_assignment_rec.pay_basis_id :=
355 hr_transaction_api.get_number_value
356 (p_transaction_step_id => p_transaction_step_id
357 ,p_name => 'P_PAY_BASIS_ID');
358 --
359 p_assignment_rec.sal_review_period :=
360 hr_transaction_api.get_number_value
361 (p_transaction_step_id => p_transaction_step_id
362 ,p_name => 'P_SAL_REVIEW_PERIOD');
363 --
364 p_assignment_rec.sal_review_period_frequency :=
365 hr_transaction_api.get_varchar2_value
366 (p_transaction_step_id => p_transaction_step_id
367 ,p_name => 'P_SAL_REVIEW_PERIOD_FREQUENCY');
368
369 --
370 p_assignment_rec.date_probation_end :=
371 hr_transaction_api.get_date_value
372 (p_transaction_step_id => p_transaction_step_id
373 ,p_name => 'P_DATE_PROBATION_END');
374 --
375 p_assignment_rec.probation_period :=
376 hr_transaction_api.get_number_value
377 (p_transaction_step_id => p_transaction_step_id
378 ,p_name => 'P_PROBATION_PERIOD');
379 --
380 p_assignment_rec.probation_unit :=
381 hr_transaction_api.get_varchar2_value
382 (p_transaction_step_id => p_transaction_step_id
383 ,p_name => 'P_PROBATION_UNIT');
384 --
385 p_assignment_rec.notice_period :=
386 hr_transaction_api.get_number_value
387 (p_transaction_step_id => p_transaction_step_id
388 ,p_name => 'P_NOTICE_PERIOD');
389 --
390 p_assignment_rec.notice_period_uom :=
391 hr_transaction_api.get_varchar2_value
392 (p_transaction_step_id => p_transaction_step_id
393 ,p_name => 'P_NOTICE_PERIOD_UOM');
394 --
395 p_assignment_rec.employee_category :=
396 hr_transaction_api.get_varchar2_value
397 (p_transaction_step_id => p_transaction_step_id
398 ,p_name => 'P_EMPLOYEE_CATEGORY');
399 --
400 p_assignment_rec.work_at_home :=
401 hr_transaction_api.get_varchar2_value
402 (p_transaction_step_id => p_transaction_step_id
403 ,p_name => 'P_WORK_AT_HOME');
404 --
405 p_assignment_rec.job_post_source_name :=
406 hr_transaction_api.get_varchar2_value
407 (p_transaction_step_id => p_transaction_step_id
408 ,p_name => 'P_JOB_POST_SOURCE_NAME');
409 --
410 p_assignment_rec.perf_review_period :=
411 hr_transaction_api.get_number_value
412 (p_transaction_step_id => p_transaction_step_id
413 ,p_name => 'P_PERF_REVIEW_PERIOD');
414 --
415 p_assignment_rec.perf_review_period_frequency :=
416 hr_transaction_api.get_varchar2_value
417 (p_transaction_step_id => p_transaction_step_id
418 ,p_name => 'P_PERF_REVIEW_PERIOD_FREQUENCY');
419 --
420 p_assignment_rec.internal_address_line :=
421 hr_transaction_api.get_varchar2_value
422 (p_transaction_step_id => p_transaction_step_id
423 ,p_name => 'P_INTERNAL_ADDRESS_LINE');
424 --
425 p_assignment_rec.people_group_id:=
426 hr_transaction_api.get_number_value
427 (p_transaction_step_id => p_transaction_step_id
428 ,p_name => 'P_PEOPLE_GROUP_ID');
429 --
430 p_assignment_rec.soft_coding_keyflex_id:=
431 hr_transaction_api.get_number_value
432 (p_transaction_step_id => p_transaction_step_id
433 ,p_name => 'P_SOFT_CODING_KEYFLEX_ID');
434 --
435 p_assignment_rec.title:=
436 hr_transaction_api.get_varchar2_value
437 (p_transaction_step_id => p_transaction_step_id
438 ,p_name => 'P_TITLE');
439 --
440 p_assignment_rec.project_title:=
441 hr_transaction_api.get_varchar2_value
442 (p_transaction_step_id => p_transaction_step_id
443 ,p_name => 'P_PROJECT_TITLE');
444 --
445 p_assignment_rec.source_type:=
446 hr_transaction_api.get_varchar2_value
447 (p_transaction_step_id => p_transaction_step_id
448 ,p_name => 'P_SOURCE_TYPE');
449 --
450 p_assignment_rec.vendor_assignment_number:=
451 hr_transaction_api.get_varchar2_value
452 (p_transaction_step_id => p_transaction_step_id
453 ,p_name => 'P_VENDOR_ASSIGNMENT_NUMBER');
454 --
455 p_assignment_rec.vendor_employee_number:=
456 hr_transaction_api.get_varchar2_value
457 (p_transaction_step_id => p_transaction_step_id
458 ,p_name => 'P_VENDOR_EMPLOYEE_NUMBER');
459 --
460 p_assignment_rec.default_code_comb_id := to_char(
461 hr_transaction_api.get_number_value
462 (p_transaction_step_id => p_transaction_step_id
463 ,p_name => 'P_DEFAULT_CODE_COMB_ID'));
464 --
465 p_assignment_rec.set_of_books_id := to_char(
466 hr_transaction_api.get_number_value
467 (p_transaction_step_id => p_transaction_step_id
468 ,p_name => 'P_SET_OF_BOOKS_ID'));
469 --
470 p_assignment_rec.vendor_id := to_char(
471 hr_transaction_api.get_number_value
472 (p_transaction_step_id => p_transaction_step_id
473 ,p_name => 'P_VENDOR_ID'));
474 --
475 p_assignment_rec.assignment_type:=
476 hr_transaction_api.get_varchar2_value
477 (p_transaction_step_id => p_transaction_step_id
478 ,p_name => 'P_ASSIGNMENT_TYPE');
479 --
480 -- GSP change
481 p_assignment_rec.grade_ladder_pgm_id:=
482 hr_transaction_api.get_number_value
483 (p_transaction_step_id => p_transaction_step_id
484 ,p_name => 'P_GRADE_LADDER_PGM_ID');
485 -- End of GSP change
486
487 --p_assignment_rec.supervisor_assignment_id:=
488 -- hr_transaction_api.get_number_value
489 -- (p_transaction_step_id => p_transaction_step_id
490 -- ,p_name => 'P_SUPERVISOR_ASSIGNMENT_ID');
491 --
492
493 p_assignment_rec.po_header_id :=
494 hr_transaction_api.get_number_value
495 (p_transaction_step_id => p_transaction_step_id
496 ,p_name => 'P_PO_HEADER_ID');
497
498 p_assignment_rec.po_line_id :=
499 hr_transaction_api.get_number_value
500 (p_transaction_step_id => p_transaction_step_id
501 ,p_name => 'P_PO_LINE_ID');
502
503 p_assignment_rec.vendor_site_id :=
504 hr_transaction_api.get_number_value
505 (p_transaction_step_id => p_transaction_step_id
506 ,p_name => 'P_VENDOR_SITE_ID');
507
508
509 p_assignment_rec.projected_assignment_end :=
510 hr_transaction_api.get_date_value
511 (p_transaction_step_id => p_transaction_step_id
512 ,p_name => 'P_PROJ_ASGN_END');
513
514 hr_utility.set_location('Exiting:'||l_proc, 15);
515 end get_asg_from_tt;
516 --
517 procedure get_assignment_from_tt
518 (p_item_type in varchar2
519 ,p_item_key in varchar2
520 ,p_actid in varchar2
521 ,p_transaction_step_id in varchar2
522 ,p_assignment_id out nocopy varchar2
523 ,p_object_version_number out nocopy varchar2
524 ,p_effective_date out nocopy varchar2
525 ,p_grade_id out nocopy varchar2
526 ,p_position_id out nocopy varchar2
527 ,p_job_id out nocopy varchar2
528 ,p_location_id out nocopy varchar2
529 ,p_special_ceiling_step_id out nocopy varchar2
530 ,p_organization_id out nocopy varchar2
531 ,p_employment_category out nocopy varchar2
532 ,p_supervisor_id out nocopy varchar2
533 ,p_manager_flag out nocopy varchar2
534 ,p_normal_hours out nocopy varchar2
535 ,p_frequency out nocopy varchar2
536 ,p_time_normal_finish out nocopy varchar2
537 ,p_time_normal_start out nocopy varchar2
538 ,p_bargaining_unit_code out nocopy varchar2
539 ,p_labour_union_member_flag out nocopy varchar2
540 ,p_assignment_status_type_id out nocopy varchar2
541 ,p_change_reason out nocopy varchar2
542 ,p_ass_attribute_category out nocopy varchar2
543 ,p_ass_attribute1 out nocopy varchar2
544 ,p_ass_attribute2 out nocopy varchar2
545 ,p_ass_attribute3 out nocopy varchar2
546 ,p_ass_attribute4 out nocopy varchar2
547 ,p_ass_attribute5 out nocopy varchar2
548 ,p_ass_attribute6 out nocopy varchar2
549 ,p_ass_attribute7 out nocopy varchar2
550 ,p_ass_attribute8 out nocopy varchar2
551 ,p_ass_attribute9 out nocopy varchar2
552 ,p_ass_attribute10 out nocopy varchar2
553 ,p_ass_attribute11 out nocopy varchar2
554 ,p_ass_attribute12 out nocopy varchar2
555 ,p_ass_attribute13 out nocopy varchar2
556 ,p_ass_attribute14 out nocopy varchar2
557 ,p_ass_attribute15 out nocopy varchar2
558 ,p_ass_attribute16 out nocopy varchar2
559 ,p_ass_attribute17 out nocopy varchar2
560 ,p_ass_attribute18 out nocopy varchar2
561 ,p_ass_attribute19 out nocopy varchar2
562 ,p_ass_attribute20 out nocopy varchar2
563 ,p_ass_attribute21 out nocopy varchar2
564 ,p_ass_attribute22 out nocopy varchar2
565 ,p_ass_attribute23 out nocopy varchar2
566 ,p_ass_attribute24 out nocopy varchar2
567 ,p_ass_attribute25 out nocopy varchar2
568 ,p_ass_attribute26 out nocopy varchar2
569 ,p_ass_attribute27 out nocopy varchar2
570 ,p_ass_attribute28 out nocopy varchar2
571 ,p_ass_attribute29 out nocopy varchar2
572 ,p_ass_attribute30 out nocopy varchar2
573 ,p_soft_coding_keyflex_id out nocopy varchar2
574 ,p_people_group_id out nocopy varchar2
575 ,p_org_name out nocopy varchar2
576 ,p_job_name out nocopy varchar2
577 ,p_pos_name out nocopy varchar2
578 ,p_grade_name out nocopy varchar2
579 ,p_contract_id out nocopy varchar2
580 ,p_establishment_id out nocopy varchar2
581 ,p_cagr_grade_def_id out nocopy varchar2
582 ,p_collective_agreement_id out nocopy varchar2
583 ,p_cagr_id_flex_num out nocopy varchar2
584 ,p_payroll_id out nocopy varchar2
585 ,p_pay_basis_id out nocopy varchar2
586 ,p_sal_review_period out nocopy varchar2
587 ,p_sal_review_period_frequency out nocopy varchar2
588 ,p_date_probation_end out nocopy varchar2
589 ,p_probation_period out nocopy varchar2
590 ,p_probation_unit out nocopy varchar2
591 ,p_notice_period out nocopy varchar2
592 ,p_notice_period_uom out nocopy varchar2
593 ,p_employee_category out nocopy varchar2
594 ,p_work_at_home out nocopy varchar2
595 ,p_job_post_source_name out nocopy varchar2
596 ,p_perf_review_period out nocopy varchar2
597 ,p_perf_review_period_frequency out nocopy varchar2
598 ,p_internal_address_line out nocopy varchar2
599 ,p_display_org out nocopy varchar2
600 ,p_display_job out nocopy varchar2
601 ,p_display_pos out nocopy varchar2
602 ,p_display_grade out nocopy varchar2
603 ,p_display_ass_status out nocopy varchar2
604 ,p_business_group_id out nocopy varchar2
605 ,p_title out nocopy varchar2
606 ,p_default_code_comb_id out nocopy varchar2
607 ,p_set_of_books_id out nocopy varchar2
608 ,p_source_type out nocopy varchar2
609 ,p_project_title out nocopy varchar2
610 ,p_vendor_assignment_number out nocopy varchar2
611 ,p_vendor_employee_number out nocopy varchar2
612 ,p_vendor_id out nocopy varchar2
613 ,p_assignment_type out nocopy varchar2
614 ,p_grade_ladder_pgm_id out nocopy varchar2
615 ,p_supervisor_assignment_id out nocopy varchar2
616 ,p_vendor_name out nocopy varchar2
617 ,p_po_header_id out nocopy varchar2
618 ,p_po_line_id out nocopy varchar2
619 ,p_vendor_site_id out nocopy varchar2
620 ,p_po_number out nocopy varchar2
621 ,p_po_line_number out nocopy varchar2
622 ,p_vendor_site_name out nocopy varchar2
623 ,p_projected_asgn_end out nocopy date
624
625
626 )is
627
628 cursor csr_org_name(p_id in number) is
629 select name
630 from hr_organization_units
631 where organization_id = p_id;
632
633 cursor csr_job_name(p_id in number) is
634 select name
635 from per_jobs_vl
636 where job_id = p_id;
637
638 cursor csr_pos_name(p_id in number) is
639 select name
640 from hr_positions_f
641 where position_id = p_id
642 and to_date(p_effective_date,g_date_format)
643 between effective_start_date
644 and effective_end_date;
645
646 cursor csr_grade_name(p_id in number) is
647 select name
648 from per_grades_vl
649 where grade_id = p_id;
650
651 cursor csr_vendor_name(p_id in number) is
652 select vendor_name
653 from po_vendors
654 where vendor_id = p_id;
655
656 cursor csr_po_number(p_id in number) is
657 -- 4894113: R12 performance repository related fix
658 -- ISSUE : Shared memory size 2,413,494
659 -- RESOLUTION:
660 -- 1.Since we are interested only in poh.segment1 we can
661 -- drop the rest of the columns and unwanted WHERE clauses from the
662 -- view po_temp_labor_headers_v
663 -- 2. The SQL below we have retained all the WHERE clauses
664 -- dealing with the table po_headers_all, but dropped the rest
665 -- which are not required in this case.
666
667 SELECT poh.segment1 po_number
668 FROM
669 po_headers_all poh
670 WHERE
671 poh.po_header_id = p_id
672 AND poh.type_lookup_code = 'STANDARD'
673 AND poh.authorization_status IN ('APPROVED', 'PRE-APPROVED')
674 AND poh.approved_flag = 'Y'
675 AND poh.enabled_flag = 'Y'
676 AND NVL(poh.cancel_flag, 'N') <> 'Y'
677 AND NVL(poh.frozen_flag, 'N') <> 'Y'
678 AND poh.org_id IS NOT NULL
679 AND EXISTS
680 (
681 SELECT
682 NULL
683 FROM po_lines_all pol ,
684 po_line_types_b polt
685 WHERE pol.po_header_id = poh.po_header_id
686 AND NVL(pol.cancel_flag, 'N') <> 'Y'
687 AND pol.line_type_id = polt.line_type_id
688 AND polt.purchase_basis = 'TEMP LABOR'
689 );
690
691 --select po_number
692 --from po_temp_labor_headers_v
693 --where po_header_id = p_id;
694
695 cursor csr_po_line_number(p_id in number) is
696 select line_number
697 from po_temp_labor_lines_v
698 where po_line_id = p_id;
699
700 cursor csr_vendor_site_name(p_id in number) is
701 select vendor_site_code
702 from po_vendor_sites_all
703 where vendor_site_id = p_id;
704
705 l_transaction_id number;
706 l_transaction_step_id number;
707 l_proc varchar2(72) := g_package||'get_assignment_from_tt';
708
709 begin
710
711
712 hr_utility.set_location('Entering:'||l_proc, 5);
713 if p_transaction_step_id is null then
714
715 hr_utility.set_location('if p_transaction_step_id is null then:'||l_proc,10);
716 hr_assignment_common_save_web.get_step
717 (p_item_type => p_item_type
718 ,p_item_key => p_item_key
719 ,p_api_name => g_api_name
720 ,p_transaction_step_id => l_transaction_step_id
721 ,p_transaction_id => l_transaction_id);
722 else
723 l_transaction_step_id := to_number(p_transaction_step_id);
724 end if;
725
726 if l_transaction_step_id is null then
727 hr_utility.set_location('l_transaction_step_id is null thenExiting:'||l_proc, 15);
728 return;
729 end if;
730 --
731 p_assignment_id:= to_char(
732 hr_transaction_api.get_number_value
733 (p_transaction_step_id => l_transaction_step_id
734 ,p_name => 'P_ASSIGNMENT_ID'));
735 --
736 p_business_group_id:= to_char(
737 hr_transaction_api.get_number_value
738 (p_transaction_step_id => l_transaction_step_id
739 ,p_name => 'P_BUSINESS_GROUP_ID'));
740 --
741 p_effective_date:= to_char(
742 hr_transaction_api.get_date_value
743 (p_transaction_step_id => l_transaction_step_id
744 ,p_name => 'P_EFFECTIVE_DATE')
745 ,g_date_format);
746 --
747 p_object_version_number := to_char(
748 hr_transaction_api.get_number_value
749 (p_transaction_step_id => l_transaction_step_id
750 ,p_name => 'P_OBJECT_VERSION_NUMBER'));
751 --
752 p_organization_id := to_char(
753 hr_transaction_api.get_number_value
754 (p_transaction_step_id => l_transaction_step_id
755 ,p_name => 'P_ORGANIZATION_ID'));
756 --
757 open csr_org_name(to_number(p_organization_id));
758 fetch csr_org_name into p_org_name;
759 close csr_org_name;
760 --
761 p_position_id := to_char(
762 hr_transaction_api.get_number_value
763 (p_transaction_step_id => l_transaction_step_id
764 ,p_name => 'P_POSITION_ID'));
765 --
766 open csr_pos_name(to_number(p_position_id));
767 fetch csr_pos_name into p_pos_name;
768 close csr_pos_name;
769 --
770 p_job_id := to_char(
771 hr_transaction_api.get_number_value
772 (p_transaction_step_id => l_transaction_step_id
773 ,p_name => 'P_JOB_ID'));
774 --
775 open csr_job_name(to_number(p_job_id));
776 fetch csr_job_name into p_job_name;
777 close csr_job_name;
778 --
779 p_grade_id := to_char(
780 hr_transaction_api.get_number_value
781 (p_transaction_step_id => l_transaction_step_id
782 ,p_name => 'P_GRADE_ID'));
783 --
784 open csr_grade_name(to_number(p_grade_id));
785 fetch csr_grade_name into p_grade_name;
786 close csr_grade_name;
787 --
788 p_location_id := to_char(
789 hr_transaction_api.get_number_value
790 (p_transaction_step_id => l_transaction_step_id
791 ,p_name => 'P_LOCATION_ID'));
792 --
793 p_employment_category :=
794 hr_transaction_api.get_varchar2_value
795 (p_transaction_step_id => l_transaction_step_id
796 ,p_name => 'P_EMPLOYMENT_CATEGORY');
797 --
798 p_supervisor_id := to_char(
799 hr_transaction_api.get_number_value
800 (p_transaction_step_id => l_transaction_step_id
801 ,p_name => 'P_SUPERVISOR_ID'));
802 --
803 p_manager_flag :=
804 hr_transaction_api.get_varchar2_value
805 (p_transaction_step_id => l_transaction_step_id
806 ,p_name => 'P_MANAGER_FLAG');
807 --
808
809 -- Fix for Bug 2943224 and 3205625 for number format/invalid number error
810 p_normal_hours := to_char(
811 hr_transaction_api.get_number_value
812 (p_transaction_step_id => l_transaction_step_id
813 ,p_name => 'P_NORMAL_HOURS')
814 ,'9999999999999999999D999', 'NLS_NUMERIC_CHARACTERS = ''.,'''
815 );
816 --
817 p_frequency :=
818 hr_transaction_api.get_varchar2_value
819 (p_transaction_step_id => l_transaction_step_id
820 ,p_name => 'P_FREQUENCY');
821 --
822 p_time_normal_finish :=
823 substr(hr_transaction_api.get_varchar2_value
824 (p_transaction_step_id => l_transaction_step_id
825 ,p_name => 'P_TIME_NORMAL_FINISH'),0,5);
826 --
827 p_time_normal_start :=
828 substr(hr_transaction_api.get_varchar2_value
829 (p_transaction_step_id => l_transaction_step_id
830 ,p_name => 'P_TIME_NORMAL_START'),0,5);
831 --
832 p_bargaining_unit_code :=
833 hr_transaction_api.get_varchar2_value
834 (p_transaction_step_id => l_transaction_step_id
835 ,p_name => 'P_BARGAINING_UNIT_CODE');
836 --
837 p_labour_union_member_flag :=
838 hr_transaction_api.get_varchar2_value
839 (p_transaction_step_id => l_transaction_step_id
840 ,p_name => 'P_LABOUR_UNION_MEMBER_FLAG');
841 --
842 p_special_ceiling_step_id := to_char(
843 hr_transaction_api.get_number_value
844 (p_transaction_step_id => l_transaction_step_id
845 ,p_name => 'P_SPECIAL_CEILING_STEP_ID'));
846 --
847 p_assignment_status_type_id := to_char(
848 hr_transaction_api.get_number_value
849 (p_transaction_step_id => l_transaction_step_id
850 ,p_name => 'P_ASSIGNMENT_STATUS_TYPE_ID'));
851 --
852 p_change_reason :=
853 hr_transaction_api.get_varchar2_value
854 (p_transaction_step_id => l_transaction_step_id
855 ,p_name => 'P_CHANGE_REASON');
856 --
857 p_ass_attribute_category :=
858 hr_transaction_api.get_varchar2_value
859 (p_transaction_step_id => l_transaction_step_id
860 ,p_name => 'P_ASS_ATTRIBUTE_CATEGORY');
861 --
862 p_ass_attribute1 :=
863 hr_transaction_api.get_varchar2_value
864 (p_transaction_step_id => l_transaction_step_id
865 ,p_name => 'P_ASS_ATTRIBUTE1');
866 --
867 p_ass_attribute2 :=
868 hr_transaction_api.get_varchar2_value
869 (p_transaction_step_id => l_transaction_step_id
870 ,p_name => 'P_ASS_ATTRIBUTE2');
871 --
872 p_ass_attribute3 :=
873 hr_transaction_api.get_varchar2_value
874 (p_transaction_step_id => l_transaction_step_id
875 ,p_name => 'P_ASS_ATTRIBUTE3');
876 --
877 p_ass_attribute4 :=
878 hr_transaction_api.get_varchar2_value
879 (p_transaction_step_id => l_transaction_step_id
880 ,p_name => 'P_ASS_ATTRIBUTE4');
881 --
882 p_ass_attribute5 :=
883 hr_transaction_api.get_varchar2_value
884 (p_transaction_step_id => l_transaction_step_id
885 ,p_name => 'P_ASS_ATTRIBUTE5');
886 --
887 p_ass_attribute6 :=
888 hr_transaction_api.get_varchar2_value
889 (p_transaction_step_id => l_transaction_step_id
890 ,p_name => 'P_ASS_ATTRIBUTE6');
891 --
892 p_ass_attribute7 :=
893 hr_transaction_api.get_varchar2_value
894 (p_transaction_step_id => l_transaction_step_id
895 ,p_name => 'P_ASS_ATTRIBUTE7');
896 --
897 p_ass_attribute8 :=
898 hr_transaction_api.get_varchar2_value
899 (p_transaction_step_id => l_transaction_step_id
900 ,p_name => 'P_ASS_ATTRIBUTE8');
901 --
902 p_ass_attribute9 :=
903 hr_transaction_api.get_varchar2_value
904 (p_transaction_step_id => l_transaction_step_id
905 ,p_name => 'P_ASS_ATTRIBUTE9');
906 --
907 p_ass_attribute10 :=
908 hr_transaction_api.get_varchar2_value
909 (p_transaction_step_id => l_transaction_step_id
910 ,p_name => 'P_ASS_ATTRIBUTE10');
911 --
912 p_ass_attribute11 :=
913 hr_transaction_api.get_varchar2_value
914 (p_transaction_step_id => l_transaction_step_id
915 ,p_name => 'P_ASS_ATTRIBUTE11');
916 --
917 p_ass_attribute12 :=
918 hr_transaction_api.get_varchar2_value
919 (p_transaction_step_id => l_transaction_step_id
920 ,p_name => 'P_ASS_ATTRIBUTE12');
921 --
922 p_ass_attribute13 :=
923 hr_transaction_api.get_varchar2_value
924 (p_transaction_step_id => l_transaction_step_id
925 ,p_name => 'P_ASS_ATTRIBUTE13');
926 --
927 p_ass_attribute14 :=
928 hr_transaction_api.get_varchar2_value
929 (p_transaction_step_id => l_transaction_step_id
930 ,p_name => 'P_ASS_ATTRIBUTE14');
931 --
932 p_ass_attribute15 :=
933 hr_transaction_api.get_varchar2_value
934 (p_transaction_step_id => l_transaction_step_id
935 ,p_name => 'P_ASS_ATTRIBUTE15');
936 --
937 p_ass_attribute16 :=
938 hr_transaction_api.get_varchar2_value
939 (p_transaction_step_id => l_transaction_step_id
940 ,p_name => 'P_ASS_ATTRIBUTE16');
941 --
942 p_ass_attribute17 :=
943 hr_transaction_api.get_varchar2_value
944 (p_transaction_step_id => l_transaction_step_id
945 ,p_name => 'P_ASS_ATTRIBUTE17');
946 --
947 p_ass_attribute18 :=
948 hr_transaction_api.get_varchar2_value
949 (p_transaction_step_id => l_transaction_step_id
950 ,p_name => 'P_ASS_ATTRIBUTE18');
951 --
952 p_ass_attribute19 :=
953 hr_transaction_api.get_varchar2_value
954 (p_transaction_step_id => l_transaction_step_id
955 ,p_name => 'P_ASS_ATTRIBUTE19');
956 --
957 p_ass_attribute20 :=
958 hr_transaction_api.get_varchar2_value
959 (p_transaction_step_id => l_transaction_step_id
960 ,p_name => 'P_ASS_ATTRIBUTE20');
961 --
962 p_ass_attribute21 :=
963 hr_transaction_api.get_varchar2_value
964 (p_transaction_step_id => l_transaction_step_id
965 ,p_name => 'P_ASS_ATTRIBUTE21');
966 --
967 p_ass_attribute22 :=
968 hr_transaction_api.get_varchar2_value
969 (p_transaction_step_id => l_transaction_step_id
970 ,p_name => 'P_ASS_ATTRIBUTE22');
971 --
972 p_ass_attribute23 :=
973 hr_transaction_api.get_varchar2_value
974 (p_transaction_step_id => l_transaction_step_id
975 ,p_name => 'P_ASS_ATTRIBUTE23');
976 --
977 p_ass_attribute24 :=
978 hr_transaction_api.get_varchar2_value
979 (p_transaction_step_id => l_transaction_step_id
980 ,p_name => 'P_ASS_ATTRIBUTE24');
981 --
982 p_ass_attribute25 :=
983 hr_transaction_api.get_varchar2_value
984 (p_transaction_step_id => l_transaction_step_id
985 ,p_name => 'P_ASS_ATTRIBUTE25');
986 --
987 p_ass_attribute26 :=
988 hr_transaction_api.get_varchar2_value
989 (p_transaction_step_id => l_transaction_step_id
990 ,p_name => 'P_ASS_ATTRIBUTE26');
991 --
992 p_ass_attribute27 :=
993 hr_transaction_api.get_varchar2_value
994 (p_transaction_step_id => l_transaction_step_id
995 ,p_name => 'P_ASS_ATTRIBUTE27');
996 --
997 p_ass_attribute28 :=
998 hr_transaction_api.get_varchar2_value
999 (p_transaction_step_id => l_transaction_step_id
1000 ,p_name => 'P_ASS_ATTRIBUTE28');
1001 --
1002 p_ass_attribute29 :=
1003 hr_transaction_api.get_varchar2_value
1004 (p_transaction_step_id => l_transaction_step_id
1005 ,p_name => 'P_ASS_ATTRIBUTE29');
1006 --
1007 p_ass_attribute30 :=
1008 hr_transaction_api.get_varchar2_value
1009 (p_transaction_step_id => l_transaction_step_id
1010 ,p_name => 'P_ASS_ATTRIBUTE30');
1011
1012 p_people_group_id:=to_char(
1013 hr_transaction_api.get_number_value
1014 (p_transaction_step_id => l_transaction_step_id
1015 ,p_name => 'P_PEOPLE_GROUP_ID'));
1016 --
1017 p_soft_coding_keyflex_id:= to_char(
1018 hr_transaction_api.get_number_value
1019 (p_transaction_step_id => l_transaction_step_id
1020 ,p_name => 'P_SOFT_CODING_KEYFLEX_ID'));
1021 --
1022 p_sal_review_period:=
1023 hr_transaction_api.get_number_value
1024 (p_transaction_step_id => l_transaction_step_id
1025 ,p_name => 'P_SAL_REVIEW_PERIOD');
1026 --
1027 p_sal_review_period_frequency:=
1028 hr_transaction_api.get_varchar2_value
1029 (p_transaction_step_id => l_transaction_step_id
1030 ,p_name => 'P_SAL_REVIEW_PERIOD_FREQUENCY');
1031 --
1032 p_date_probation_end:= to_char(
1033 hr_transaction_api.get_date_value
1034 (p_transaction_step_id => l_transaction_step_id
1035 ,p_name => 'P_DATE_PROBATION_END'), g_date_format);
1036 --
1037 p_probation_period:=
1038 hr_transaction_api.get_number_value
1039 (p_transaction_step_id => l_transaction_step_id
1040 ,p_name => 'P_PROBATION_PERIOD');
1041 --
1042 p_probation_unit:=
1043 hr_transaction_api.get_varchar2_value
1044 (p_transaction_step_id => l_transaction_step_id
1045 ,p_name => 'P_PROBATION_UNIT');
1046 --
1047 p_notice_period:=
1048 hr_transaction_api.get_number_value
1049 (p_transaction_step_id => l_transaction_step_id
1050 ,p_name => 'P_NOTICE_PERIOD');
1051 --
1052 p_notice_period_uom:=
1053 hr_transaction_api.get_varchar2_value
1054 (p_transaction_step_id => l_transaction_step_id
1055 ,p_name => 'P_NOTICE_PERIOD_UOM');
1056 --
1057 p_employee_category:=
1058 hr_transaction_api.get_varchar2_value
1059 (p_transaction_step_id => l_transaction_step_id
1060 ,p_name => 'P_EMPLOYEE_CATEGORY');
1061 --
1062 p_work_at_home:=
1063 hr_transaction_api.get_varchar2_value
1064 (p_transaction_step_id => l_transaction_step_id
1065 ,p_name => 'P_WORK_AT_HOME');
1066 --
1067 p_job_post_source_name:=
1068 hr_transaction_api.get_varchar2_value
1069 (p_transaction_step_id => l_transaction_step_id
1070 ,p_name => 'P_JOB_POST_SOURCE_NAME');
1071 --
1072 p_perf_review_period:= to_char(
1073 hr_transaction_api.get_number_value
1074 (p_transaction_step_id => l_transaction_step_id
1075 ,p_name => 'P_PERF_REVIEW_PERIOD'));
1076 --
1077 p_perf_review_period_frequency:=
1078 hr_transaction_api.get_varchar2_value
1079 (p_transaction_step_id => l_transaction_step_id
1080 ,p_name => 'P_PERF_REVIEW_PERIOD_FREQUENCY');
1081 --
1082 p_internal_address_line:=
1083 hr_transaction_api.get_varchar2_value
1084 (p_transaction_step_id => l_transaction_step_id
1085 ,p_name => 'P_INTERNAL_ADDRESS_LINE');
1086 --
1087 p_payroll_id:=
1088 to_char(hr_transaction_api.get_number_value
1089 (p_transaction_step_id => l_transaction_step_id
1090 ,p_name => 'P_PAYROLL_ID'));
1091 --
1092 p_pay_basis_id:=
1093 to_char(hr_transaction_api.get_number_value
1094 (p_transaction_step_id => l_transaction_step_id
1095 ,p_name => 'P_PAY_BASIS_ID'));
1096 --
1097 p_contract_id:=
1098 to_char(hr_transaction_api.get_number_value
1099 (p_transaction_step_id => l_transaction_step_id
1100 ,p_name => 'P_CONTRACT_ID'));
1101 --
1102 p_establishment_id:=
1103 to_char(hr_transaction_api.get_number_value
1104 (p_transaction_step_id => l_transaction_step_id
1105 ,p_name => 'P_ESTABLISHMENT_ID'));
1106 --
1107 p_cagr_grade_def_id:=
1108 to_char(hr_transaction_api.get_number_value
1109 (p_transaction_step_id => l_transaction_step_id
1110 ,p_name => 'P_CAGR_GRADE_DEF_ID'));
1111 --
1112 p_collective_agreement_id:=
1113 to_char(hr_transaction_api.get_number_value
1114 (p_transaction_step_id => l_transaction_step_id
1115 ,p_name => 'P_COLLECTIVE_AGREEMENT_ID'));
1116 --
1117 p_cagr_id_flex_num:=
1118 to_char(hr_transaction_api.get_number_value
1119 (p_transaction_step_id => l_transaction_step_id
1120 ,p_name => 'P_CAGR_ID_FLEX_NUM'));
1121 --
1122 p_display_org:=
1123 hr_transaction_api.get_varchar2_value
1124 (p_transaction_step_id => l_transaction_step_id
1125 ,p_name => 'P_DISPLAY_ORG');
1126 --
1127 p_display_job:=
1128 hr_transaction_api.get_varchar2_value
1129 (p_transaction_step_id => l_transaction_step_id
1130 ,p_name => 'P_DISPLAY_JOB');
1131 --
1132 p_display_pos:=
1133 hr_transaction_api.get_varchar2_value
1134 (p_transaction_step_id => l_transaction_step_id
1135 ,p_name => 'P_DISPLAY_POS');
1136 --
1137 p_display_grade:=
1138 hr_transaction_api.get_varchar2_value
1139 (p_transaction_step_id => l_transaction_step_id
1140 ,p_name => 'P_DISPLAY_GRADE');
1141 --
1142 p_display_ass_status:=
1143 hr_transaction_api.get_varchar2_value
1144 (p_transaction_step_id => l_transaction_step_id
1145 ,p_name => 'P_DISPLAY_ASS_STATUS');
1146 --
1147 p_title:=
1148 hr_transaction_api.get_varchar2_value
1149 (p_transaction_step_id => l_transaction_step_id
1150 ,p_name => 'P_TITLE');
1151 --
1152 p_project_title:=
1153 hr_transaction_api.get_varchar2_value
1154 (p_transaction_step_id => l_transaction_step_id
1155 ,p_name => 'P_PROJECT_TITLE');
1156 --
1157 p_source_type:=
1158 hr_transaction_api.get_varchar2_value
1159 (p_transaction_step_id => l_transaction_step_id
1160 ,p_name => 'P_SOURCE_TYPE');
1161 --
1162 p_vendor_assignment_number:=
1163 hr_transaction_api.get_varchar2_value
1164 (p_transaction_step_id => l_transaction_step_id
1165 ,p_name => 'P_VENDOR_ASSIGNMENT_NUMBER');
1166 --
1167 p_vendor_employee_number:=
1168 hr_transaction_api.get_varchar2_value
1169 (p_transaction_step_id => l_transaction_step_id
1170 ,p_name => 'P_VENDOR_EMPLOYEE_NUMBER');
1171 --
1172 p_default_code_comb_id := to_char(
1173 hr_transaction_api.get_number_value
1174 (p_transaction_step_id => l_transaction_step_id
1175 ,p_name => 'P_DEFAULT_CODE_COMB_ID'));
1176 --
1177 p_set_of_books_id := to_char(
1178 hr_transaction_api.get_number_value
1179 (p_transaction_step_id => l_transaction_step_id
1180 ,p_name => 'P_SET_OF_BOOKS_ID'));
1181 --
1182 p_vendor_id := to_char(
1183 hr_transaction_api.get_number_value
1184 (p_transaction_step_id => l_transaction_step_id
1185 ,p_name => 'P_VENDOR_ID'));
1186 --
1187 open csr_vendor_name(to_number(p_vendor_id));
1188 fetch csr_vendor_name into p_vendor_name;
1189 close csr_vendor_name;
1190 --
1191 p_po_header_id := to_char(
1192 hr_transaction_api.get_number_value
1193 (p_transaction_step_id => l_transaction_step_id
1194 ,p_name => 'P_PO_HEADER_ID'));
1195 --
1196 open csr_po_number(to_number(p_po_header_id));
1197 fetch csr_po_number into p_po_number;
1198 close csr_po_number;
1199
1200 p_po_line_id := to_char(
1201 hr_transaction_api.get_number_value
1202 (p_transaction_step_id => l_transaction_step_id
1203 ,p_name => 'P_PO_LINE_ID'));
1204 --
1205 open csr_po_line_number(to_number(p_po_line_id));
1206 fetch csr_po_line_number into p_po_line_number;
1207 close csr_po_line_number;
1208
1209 p_vendor_site_id := to_char(
1210 hr_transaction_api.get_number_value
1211 (p_transaction_step_id => l_transaction_step_id
1212 ,p_name => 'P_VENDOR_SITE_ID'));
1213 --
1214 open csr_vendor_site_name(to_number(p_vendor_site_id));
1215 fetch csr_vendor_site_name into p_vendor_site_name;
1216 close csr_vendor_site_name;
1217
1218 p_projected_asgn_end :=
1219 hr_transaction_api.get_date_value
1220 (p_transaction_step_id => l_transaction_step_id
1221 ,p_name => 'P_PROJ_ASGN_END');
1222
1223 --
1224
1225 p_assignment_type:=
1226 hr_transaction_api.get_varchar2_value
1227 (p_transaction_step_id => l_transaction_step_id
1228 ,p_name => 'P_ASSIGNMENT_TYPE');
1229 --
1230 -- GSP changes
1231 p_grade_ladder_pgm_id := to_char(
1232 hr_transaction_api.get_number_value
1233 (p_transaction_step_id => l_transaction_step_id
1234 ,p_name => 'P_GRADE_LADDER_PGM_ID'));
1235 -- End of GSP changes
1236
1237 --p_supervisor_assignment_id := to_char(
1238 -- hr_transaction_api.get_number_value
1239 -- (p_transaction_step_id => l_transaction_step_id
1240 -- ,p_name => 'P_SUPERVISOR_ASSIGNMENT_ID'));
1241 --
1242
1243 hr_utility.set_location('Exiting:'||l_proc, 20);
1244 end get_assignment_from_tt;
1245
1246 procedure get_assignment_from_tt
1247 (p_transaction_step_id in number
1248 ,p_assignment_id out nocopy number
1249 ,p_object_version_number out nocopy number
1250 ,p_effective_date out nocopy varchar2
1251 ,p_grade_id out nocopy number
1252 ,p_position_id out nocopy number
1253 ,p_job_id out nocopy number
1254 ,p_location_id out nocopy number
1255 ,p_special_ceiling_step_id out nocopy number
1256 ,p_organization_id out nocopy number
1257 ,p_employment_category out nocopy varchar2
1258 ,p_supervisor_id out nocopy number
1259 ,p_manager_flag out nocopy varchar2
1260 ,p_normal_hours out nocopy number
1261 ,p_frequency out nocopy varchar2
1262 ,p_time_normal_finish out nocopy varchar2
1263 ,p_time_normal_start out nocopy varchar2
1264 ,p_bargaining_unit_code out nocopy varchar2
1265 ,p_labour_union_member_flag out nocopy varchar2
1266 ,p_assignment_status_type_id out nocopy number
1267 ,p_change_reason out nocopy varchar2
1268 ,p_ass_attribute_category out nocopy varchar2
1269 ,p_ass_attribute1 out nocopy varchar2
1270 ,p_ass_attribute2 out nocopy varchar2
1271 ,p_ass_attribute3 out nocopy varchar2
1272 ,p_ass_attribute4 out nocopy varchar2
1273 ,p_ass_attribute5 out nocopy varchar2
1274 ,p_ass_attribute6 out nocopy varchar2
1275 ,p_ass_attribute7 out nocopy varchar2
1276 ,p_ass_attribute8 out nocopy varchar2
1277 ,p_ass_attribute9 out nocopy varchar2
1278 ,p_ass_attribute10 out nocopy varchar2
1279 ,p_ass_attribute11 out nocopy varchar2
1280 ,p_ass_attribute12 out nocopy varchar2
1281 ,p_ass_attribute13 out nocopy varchar2
1282 ,p_ass_attribute14 out nocopy varchar2
1283 ,p_ass_attribute15 out nocopy varchar2
1284 ,p_ass_attribute16 out nocopy varchar2
1285 ,p_ass_attribute17 out nocopy varchar2
1286 ,p_ass_attribute18 out nocopy varchar2
1287 ,p_ass_attribute19 out nocopy varchar2
1288 ,p_ass_attribute20 out nocopy varchar2
1289 ,p_ass_attribute21 out nocopy varchar2
1290 ,p_ass_attribute22 out nocopy varchar2
1291 ,p_ass_attribute23 out nocopy varchar2
1292 ,p_ass_attribute24 out nocopy varchar2
1293 ,p_ass_attribute25 out nocopy varchar2
1294 ,p_ass_attribute26 out nocopy varchar2
1295 ,p_ass_attribute27 out nocopy varchar2
1296 ,p_ass_attribute28 out nocopy varchar2
1297 ,p_ass_attribute29 out nocopy varchar2
1298 ,p_ass_attribute30 out nocopy varchar2
1299 ,p_soft_coding_keyflex_id out nocopy number
1300 ,p_people_group_id out nocopy number
1301 ,p_contract_id out nocopy number
1302 ,p_establishment_id out nocopy number
1303 ,p_cagr_grade_def_id out nocopy number
1304 ,p_collective_agreement_id out nocopy number
1305 ,p_cagr_id_flex_num out nocopy number
1306 ,p_payroll_id out nocopy number
1307 ,p_pay_basis_id out nocopy number
1308 ,p_sal_review_period out nocopy number
1309 ,p_sal_review_period_frequency out nocopy varchar2
1310 ,p_date_probation_end out nocopy date
1311 ,p_probation_period out nocopy number
1312 ,p_probation_unit out nocopy varchar2
1313 ,p_notice_period out nocopy number
1314 ,p_notice_period_uom out nocopy varchar2
1315 ,p_employee_category out nocopy varchar2
1316 ,p_work_at_home out nocopy varchar2
1317 ,p_job_post_source_name out nocopy varchar2
1318 ,p_perf_review_period out nocopy number
1319 ,p_perf_review_period_frequency out nocopy varchar2
1320 ,p_internal_address_line out nocopy varchar2
1321 ,p_display_org out nocopy varchar2
1322 ,p_display_job out nocopy varchar2
1323 ,p_display_pos out nocopy varchar2
1324 ,p_display_grade out nocopy varchar2
1325 ,p_display_ass_status out nocopy varchar2
1326 ,p_business_group_id out nocopy number
1327 ,p_title out nocopy varchar2
1328 ,p_default_code_comb_id out nocopy number
1329 ,p_set_of_books_id out nocopy number
1330 ,p_source_type out nocopy varchar2
1331 ,p_project_title out nocopy varchar2
1332 ,p_vendor_assignment_number out nocopy varchar2
1333 ,p_vendor_employee_number out nocopy varchar2
1334 ,p_vendor_id out nocopy number
1335 ,p_assignment_type out nocopy varchar2
1336 ,p_grade_ladder_pgm_id out nocopy number
1337 ,p_supervisor_assignment_id out nocopy number
1338 ,p_po_header_id out nocopy number
1339 ,p_po_line_id out nocopy number
1340 ,p_vendor_site_id out nocopy number
1341 ,p_projected_asgn_end out nocopy date
1342
1343 ) is
1344 l_proc varchar2(72) := g_package||'get_assignment_from_tt';
1345
1346 begin
1347 --
1348 hr_utility.set_location('Entering:'||l_proc, 5);
1349 p_assignment_id:=
1350 hr_transaction_api.get_number_value
1351 (p_transaction_step_id => p_transaction_step_id
1352 ,p_name => 'P_ASSIGNMENT_ID');
1353 --
1354 p_business_group_id:=
1355 hr_transaction_api.get_number_value
1356 (p_transaction_step_id => p_transaction_step_id
1357 ,p_name => 'P_BUSINESS_GROUP_ID');
1358 --
1359 p_effective_date:=
1360 hr_transaction_api.get_date_value
1361 (p_transaction_step_id => p_transaction_step_id
1362 ,p_name => 'P_EFFECTIVE_DATE');
1363 --
1364 p_object_version_number :=
1365 hr_transaction_api.get_number_value
1366 (p_transaction_step_id => p_transaction_step_id
1367 ,p_name => 'P_OBJECT_VERSION_NUMBER');
1368 --
1369 p_position_id :=
1370 hr_transaction_api.get_number_value
1371 (p_transaction_step_id => p_transaction_step_id
1372 ,p_name => 'P_POSITION_ID');
1373 --
1374 p_job_id :=
1375 hr_transaction_api.get_number_value
1376 (p_transaction_step_id => p_transaction_step_id
1377 ,p_name => 'P_JOB_ID');
1378 --
1379 p_grade_id :=
1380 hr_transaction_api.get_number_value
1381 (p_transaction_step_id => p_transaction_step_id
1382 ,p_name => 'P_GRADE_ID');
1383 --
1384 p_location_id :=
1385 hr_transaction_api.get_number_value
1386 (p_transaction_step_id => p_transaction_step_id
1387 ,p_name => 'P_LOCATION_ID');
1388 --
1389 p_employment_category :=
1390 hr_transaction_api.get_varchar2_value
1391 (p_transaction_step_id => p_transaction_step_id
1392 ,p_name => 'P_EMPLOYMENT_CATEGORY');
1393 --
1394 p_supervisor_id :=
1395 hr_transaction_api.get_number_value
1396 (p_transaction_step_id => p_transaction_step_id
1397 ,p_name => 'P_SUPERVISOR_ID');
1398 --
1399 p_manager_flag :=
1400 hr_transaction_api.get_varchar2_value
1401 (p_transaction_step_id => p_transaction_step_id
1402 ,p_name => 'P_MANAGER_FLAG');
1403 --
1404 p_normal_hours :=
1405 hr_transaction_api.get_number_value
1406 (p_transaction_step_id => p_transaction_step_id
1407 ,p_name => 'P_NORMAL_HOURS');
1408 --
1409 p_frequency :=
1410 hr_transaction_api.get_varchar2_value
1411 (p_transaction_step_id => p_transaction_step_id
1412 ,p_name => 'P_FREQUENCY');
1413 --
1414 p_time_normal_finish :=
1415 substr(hr_transaction_api.get_varchar2_value
1416 (p_transaction_step_id => p_transaction_step_id
1417 ,p_name => 'P_TIME_NORMAL_FINISH'),0,5);
1418 --
1419 p_time_normal_start :=
1420 substr(hr_transaction_api.get_varchar2_value
1421 (p_transaction_step_id => p_transaction_step_id
1422 ,p_name => 'P_TIME_NORMAL_START'),0,5);
1423 --
1424 p_bargaining_unit_code :=
1425 hr_transaction_api.get_varchar2_value
1426 (p_transaction_step_id => p_transaction_step_id
1427 ,p_name => 'P_BARGAINING_UNIT_CODE');
1428 --
1429 p_labour_union_member_flag :=
1430 hr_transaction_api.get_varchar2_value
1431 (p_transaction_step_id => p_transaction_step_id
1432 ,p_name => 'P_LABOUR_UNION_MEMBER_FLAG');
1433 --
1434 p_special_ceiling_step_id :=
1435 hr_transaction_api.get_number_value
1436 (p_transaction_step_id => p_transaction_step_id
1437 ,p_name => 'P_SPECIAL_CEILING_STEP_ID');
1438 --
1439 p_assignment_status_type_id :=
1440 hr_transaction_api.get_number_value
1441 (p_transaction_step_id => p_transaction_step_id
1442 ,p_name => 'P_ASSIGNMENT_STATUS_TYPE_ID');
1443 --
1444 p_change_reason :=
1445 hr_transaction_api.get_varchar2_value
1446 (p_transaction_step_id => p_transaction_step_id
1447 ,p_name => 'P_CHANGE_REASON');
1448 --
1449 p_ass_attribute_category :=
1450 hr_transaction_api.get_varchar2_value
1451 (p_transaction_step_id => p_transaction_step_id
1452 ,p_name => 'P_ASS_ATTRIBUTE_CATEGORY');
1453 --
1454 p_ass_attribute1 :=
1455 hr_transaction_api.get_varchar2_value
1456 (p_transaction_step_id => p_transaction_step_id
1457 ,p_name => 'P_ASS_ATTRIBUTE1');
1458 --
1459 p_ass_attribute2 :=
1460 hr_transaction_api.get_varchar2_value
1461 (p_transaction_step_id => p_transaction_step_id
1462 ,p_name => 'P_ASS_ATTRIBUTE2');
1463 --
1464 p_ass_attribute3 :=
1465 hr_transaction_api.get_varchar2_value
1466 (p_transaction_step_id => p_transaction_step_id
1467 ,p_name => 'P_ASS_ATTRIBUTE3');
1468 --
1469 p_ass_attribute4 :=
1470 hr_transaction_api.get_varchar2_value
1471 (p_transaction_step_id => p_transaction_step_id
1472 ,p_name => 'P_ASS_ATTRIBUTE4');
1473 --
1474 p_ass_attribute5 :=
1475 hr_transaction_api.get_varchar2_value
1476 (p_transaction_step_id => p_transaction_step_id
1477 ,p_name => 'P_ASS_ATTRIBUTE5');
1478 --
1479 p_ass_attribute6 :=
1480 hr_transaction_api.get_varchar2_value
1481 (p_transaction_step_id => p_transaction_step_id
1482 ,p_name => 'P_ASS_ATTRIBUTE6');
1483 --
1484 p_ass_attribute7 :=
1485 hr_transaction_api.get_varchar2_value
1486 (p_transaction_step_id => p_transaction_step_id
1487 ,p_name => 'P_ASS_ATTRIBUTE7');
1488 --
1489 p_ass_attribute8 :=
1490 hr_transaction_api.get_varchar2_value
1491 (p_transaction_step_id => p_transaction_step_id
1492 ,p_name => 'P_ASS_ATTRIBUTE8');
1493 --
1494 p_ass_attribute9 :=
1495 hr_transaction_api.get_varchar2_value
1496 (p_transaction_step_id => p_transaction_step_id
1497 ,p_name => 'P_ASS_ATTRIBUTE9');
1498 --
1499 p_ass_attribute10 :=
1500 hr_transaction_api.get_varchar2_value
1501 (p_transaction_step_id => p_transaction_step_id
1502 ,p_name => 'P_ASS_ATTRIBUTE10');
1503 --
1504 p_ass_attribute11 :=
1505 hr_transaction_api.get_varchar2_value
1506 (p_transaction_step_id => p_transaction_step_id
1507 ,p_name => 'P_ASS_ATTRIBUTE11');
1508 --
1509 p_ass_attribute12 :=
1510 hr_transaction_api.get_varchar2_value
1511 (p_transaction_step_id => p_transaction_step_id
1512 ,p_name => 'P_ASS_ATTRIBUTE12');
1513 --
1514 p_ass_attribute13 :=
1515 hr_transaction_api.get_varchar2_value
1516 (p_transaction_step_id => p_transaction_step_id
1517 ,p_name => 'P_ASS_ATTRIBUTE13');
1518 --
1519 p_ass_attribute14 :=
1520 hr_transaction_api.get_varchar2_value
1521 (p_transaction_step_id => p_transaction_step_id
1522 ,p_name => 'P_ASS_ATTRIBUTE14');
1523 --
1524 p_ass_attribute15 :=
1525 hr_transaction_api.get_varchar2_value
1526 (p_transaction_step_id => p_transaction_step_id
1527 ,p_name => 'P_ASS_ATTRIBUTE15');
1528 --
1529 p_ass_attribute16 :=
1530 hr_transaction_api.get_varchar2_value
1531 (p_transaction_step_id => p_transaction_step_id
1532 ,p_name => 'P_ASS_ATTRIBUTE16');
1533 --
1534 p_ass_attribute17 :=
1535 hr_transaction_api.get_varchar2_value
1536 (p_transaction_step_id => p_transaction_step_id
1537 ,p_name => 'P_ASS_ATTRIBUTE17');
1538 --
1539 p_ass_attribute18 :=
1540 hr_transaction_api.get_varchar2_value
1541 (p_transaction_step_id => p_transaction_step_id
1542 ,p_name => 'P_ASS_ATTRIBUTE18');
1543 --
1544 p_ass_attribute19 :=
1545 hr_transaction_api.get_varchar2_value
1546 (p_transaction_step_id => p_transaction_step_id
1547 ,p_name => 'P_ASS_ATTRIBUTE19');
1548 --
1549 p_ass_attribute20 :=
1550 hr_transaction_api.get_varchar2_value
1551 (p_transaction_step_id => p_transaction_step_id
1552 ,p_name => 'P_ASS_ATTRIBUTE20');
1553 --
1554 p_ass_attribute21 :=
1555 hr_transaction_api.get_varchar2_value
1556 (p_transaction_step_id => p_transaction_step_id
1557 ,p_name => 'P_ASS_ATTRIBUTE21');
1558 --
1559 p_ass_attribute22 :=
1560 hr_transaction_api.get_varchar2_value
1561 (p_transaction_step_id => p_transaction_step_id
1562 ,p_name => 'P_ASS_ATTRIBUTE22');
1563 --
1564 p_ass_attribute23 :=
1565 hr_transaction_api.get_varchar2_value
1566 (p_transaction_step_id => p_transaction_step_id
1567 ,p_name => 'P_ASS_ATTRIBUTE23');
1568 --
1569 p_ass_attribute24 :=
1570 hr_transaction_api.get_varchar2_value
1571 (p_transaction_step_id => p_transaction_step_id
1572 ,p_name => 'P_ASS_ATTRIBUTE24');
1573 --
1574 p_ass_attribute25 :=
1575 hr_transaction_api.get_varchar2_value
1576 (p_transaction_step_id => p_transaction_step_id
1577 ,p_name => 'P_ASS_ATTRIBUTE25');
1578 --
1579 p_ass_attribute26 :=
1580 hr_transaction_api.get_varchar2_value
1581 (p_transaction_step_id => p_transaction_step_id
1582 ,p_name => 'P_ASS_ATTRIBUTE26');
1583 --
1584 p_ass_attribute27 :=
1585 hr_transaction_api.get_varchar2_value
1586 (p_transaction_step_id => p_transaction_step_id
1587 ,p_name => 'P_ASS_ATTRIBUTE27');
1588 --
1589 p_ass_attribute28 :=
1590 hr_transaction_api.get_varchar2_value
1591 (p_transaction_step_id => p_transaction_step_id
1592 ,p_name => 'P_ASS_ATTRIBUTE28');
1593 --
1594 p_ass_attribute29 :=
1595 hr_transaction_api.get_varchar2_value
1596 (p_transaction_step_id => p_transaction_step_id
1597 ,p_name => 'P_ASS_ATTRIBUTE29');
1598 --
1599 p_ass_attribute30 :=
1600 hr_transaction_api.get_varchar2_value
1601 (p_transaction_step_id => p_transaction_step_id
1602 ,p_name => 'P_ASS_ATTRIBUTE30');
1603
1604 p_people_group_id:=
1605 hr_transaction_api.get_number_value
1606 (p_transaction_step_id => p_transaction_step_id
1607 ,p_name => 'P_PEOPLE_GROUP_ID');
1608 --
1609 p_soft_coding_keyflex_id:=
1610 hr_transaction_api.get_number_value
1611 (p_transaction_step_id => p_transaction_step_id
1612 ,p_name => 'P_SOFT_CODING_KEYFLEX_ID');
1613 --
1614 p_sal_review_period:=
1615 hr_transaction_api.get_number_value
1616 (p_transaction_step_id => p_transaction_step_id
1617 ,p_name => 'P_SAL_REVIEW_PERIOD');
1618 --
1619 p_sal_review_period_frequency:=
1620 hr_transaction_api.get_varchar2_value
1621 (p_transaction_step_id => p_transaction_step_id
1622 ,p_name => 'P_SAL_REVIEW_PERIOD_FREQUENCY');
1623 --
1624 p_date_probation_end :=
1625 hr_transaction_api.get_date_value
1626 (p_transaction_step_id => p_transaction_step_id
1627 ,p_name => 'P_DATE_PROBATION_END');
1628 --
1629 p_probation_period :=
1630 hr_transaction_api.get_number_value
1631 (p_transaction_step_id => p_transaction_step_id
1632 ,p_name => 'P_PROBATION_PERIOD');
1633 --
1634 p_probation_unit :=
1635 hr_transaction_api.get_varchar2_value
1636 (p_transaction_step_id => p_transaction_step_id
1637 ,p_name => 'P_PROBATION_UNIT');
1638 --
1639 p_notice_period :=
1640 hr_transaction_api.get_number_value
1641 (p_transaction_step_id => p_transaction_step_id
1642 ,p_name => 'P_NOTICE_PERIOD');
1643 --
1644 p_notice_period_uom :=
1645 hr_transaction_api.get_varchar2_value
1646 (p_transaction_step_id => p_transaction_step_id
1647 ,p_name => 'P_NOTICE_PERIOD_UOM');
1648 --
1649 p_employee_category :=
1650 hr_transaction_api.get_varchar2_value
1651 (p_transaction_step_id => p_transaction_step_id
1652 ,p_name => 'P_EMPLOYEE_CATEGORY');
1653 --
1654 p_work_at_home :=
1655 hr_transaction_api.get_varchar2_value
1656 (p_transaction_step_id => p_transaction_step_id
1657 ,p_name => 'P_WORK_AT_HOME');
1658 --
1659 p_job_post_source_name :=
1660 hr_transaction_api.get_varchar2_value
1661 (p_transaction_step_id => p_transaction_step_id
1662 ,p_name => 'P_JOB_POST_SOURCE_NAME');
1663 --
1664 p_perf_review_period :=
1665 hr_transaction_api.get_number_value
1666 (p_transaction_step_id => p_transaction_step_id
1667 ,p_name => 'P_PERF_REVIEW_PERIOD');
1668 --
1669 p_perf_review_period_frequency :=
1670 hr_transaction_api.get_varchar2_value
1671 (p_transaction_step_id => p_transaction_step_id
1672 ,p_name => 'P_PERF_REVIEW_PERIOD_FREQUENCY');
1673 --
1674 p_internal_address_line :=
1675 hr_transaction_api.get_varchar2_value
1676 (p_transaction_step_id => p_transaction_step_id
1677 ,p_name => 'P_INTERNAL_ADDRESS_LINE');
1678 --
1679 p_payroll_id:=
1680 hr_transaction_api.get_number_value
1681 (p_transaction_step_id => p_transaction_step_id
1682 ,p_name => 'P_PAYROLL_ID');
1683 --
1684 p_pay_basis_id:=
1685 hr_transaction_api.get_number_value
1686 (p_transaction_step_id => p_transaction_step_id
1687 ,p_name => 'P_PAY_BASIS_ID');
1688 --
1689 p_contract_id:=
1690 hr_transaction_api.get_number_value
1691 (p_transaction_step_id => p_transaction_step_id
1692 ,p_name => 'P_CONTRACT_ID');
1693 --
1694 p_establishment_id:=
1695 hr_transaction_api.get_number_value
1696 (p_transaction_step_id => p_transaction_step_id
1697 ,p_name => 'P_ESTABLISHMENT_ID');
1698 --
1699 p_cagr_grade_def_id:=
1700 hr_transaction_api.get_number_value
1701 (p_transaction_step_id => p_transaction_step_id
1702 ,p_name => 'P_CAGR_GRADE_DEF_ID');
1703 --
1704 p_collective_agreement_id:=
1705 hr_transaction_api.get_number_value
1706 (p_transaction_step_id => p_transaction_step_id
1707 ,p_name => 'P_COLLECTIVE_AGREEMENT_ID');
1708 --
1709 p_cagr_id_flex_num:=
1710 hr_transaction_api.get_number_value
1711 (p_transaction_step_id => p_transaction_step_id
1712 ,p_name => 'P_CAGR_ID_FLEX_NUM');
1713 --
1714 p_display_org:=
1715 hr_transaction_api.get_varchar2_value
1716 (p_transaction_step_id => p_transaction_step_id
1717 ,p_name => 'P_DISPLAY_ORG');
1718 --
1719 p_display_job:=
1720 hr_transaction_api.get_varchar2_value
1721 (p_transaction_step_id => p_transaction_step_id
1722 ,p_name => 'P_DISPLAY_JOB');
1723 --
1724 p_display_pos:=
1725 hr_transaction_api.get_varchar2_value
1726 (p_transaction_step_id => p_transaction_step_id
1727 ,p_name => 'P_DISPLAY_POS');
1728 --
1729 p_display_grade:=
1730 hr_transaction_api.get_varchar2_value
1731 (p_transaction_step_id => p_transaction_step_id
1732 ,p_name => 'P_DISPLAY_GRADE');
1733 --
1734 p_display_ass_status:=
1735 hr_transaction_api.get_varchar2_value
1736 (p_transaction_step_id => p_transaction_step_id
1737 ,p_name => 'P_DISPLAY_ASS_STATUS');
1738 --
1739 --
1740 p_title:=
1741 hr_transaction_api.get_varchar2_value
1742 (p_transaction_step_id => p_transaction_step_id
1743 ,p_name => 'P_TITLE');
1744 --
1745 p_project_title:=
1746 hr_transaction_api.get_varchar2_value
1747 (p_transaction_step_id => p_transaction_step_id
1748 ,p_name => 'P_PROJECT_TITLE');
1749 --
1750 p_source_type:=
1751 hr_transaction_api.get_varchar2_value
1752 (p_transaction_step_id => p_transaction_step_id
1753 ,p_name => 'P_SOURCE_TYPE');
1754 --
1755 p_vendor_assignment_number:=
1756 hr_transaction_api.get_varchar2_value
1757 (p_transaction_step_id => p_transaction_step_id
1758 ,p_name => 'P_VENDOR_ASSIGNMENT_NUMBER');
1759 --
1760 p_vendor_employee_number:=
1761 hr_transaction_api.get_varchar2_value
1762 (p_transaction_step_id => p_transaction_step_id
1763 ,p_name => 'P_VENDOR_EMPLOYEE_NUMBER');
1764 --
1765 p_default_code_comb_id :=
1766 hr_transaction_api.get_number_value
1767 (p_transaction_step_id => p_transaction_step_id
1768 ,p_name => 'P_DEFAULT_CODE_COMB_ID');
1769 --
1770 p_set_of_books_id :=
1771 hr_transaction_api.get_number_value
1772 (p_transaction_step_id => p_transaction_step_id
1773 ,p_name => 'P_SET_OF_BOOKS_ID');
1774 --
1775 p_vendor_id :=
1776 hr_transaction_api.get_number_value
1777 (p_transaction_step_id => p_transaction_step_id
1778 ,p_name => 'P_VENDOR_ID');
1779 --
1780 p_po_header_id :=
1781 hr_transaction_api.get_number_value
1782 (p_transaction_step_id => p_transaction_step_id
1783 ,p_name => 'P_PO_HEADER_ID');
1784 --
1785 p_po_line_id :=
1786 hr_transaction_api.get_number_value
1787 (p_transaction_step_id => p_transaction_step_id
1788 ,p_name => 'P_PO_LINE_ID');
1789 --
1790 p_vendor_site_id :=
1791 hr_transaction_api.get_number_value
1792 (p_transaction_step_id => p_transaction_step_id
1793 ,p_name => 'P_VENDOR_SITE_ID');
1794 --
1795
1796 p_assignment_type:=
1797 hr_transaction_api.get_varchar2_value
1798 (p_transaction_step_id => p_transaction_step_id
1799 ,p_name => 'P_ASSIGNMENT_TYPE');
1800 --
1801 -- GSP changes
1802 p_grade_ladder_pgm_id :=
1803 hr_transaction_api.get_number_value
1804 (p_transaction_step_id => p_transaction_step_id
1805 ,p_name => 'P_GRADE_LADDER_PGM_ID');
1806
1807 -- End of GSP changes
1808
1809 --
1810 -- p_supervisor_assignment_id :=
1811 -- hr_transaction_api.get_number_value
1812 -- (p_transaction_step_id => p_transaction_step_id
1813 -- ,p_name => 'P_SUPERVISOR_ASSIGNMENT_ID');
1814 --
1815
1816 p_projected_asgn_end :=
1817 hr_transaction_api.get_date_value
1818 (p_transaction_step_id => p_transaction_step_id
1819 ,p_name => 'P_PROJ_ASGN_END');
1820
1821 hr_utility.set_location('Exiting:'||l_proc, 15);
1822 end get_assignment_from_tt;
1823
1824 procedure process_save
1825 (p_save_mode in varchar2 default null
1826 ,p_item_type in varchar2
1827 ,p_item_key in varchar2
1828 ,p_actid in varchar2
1829 ,p_login_person_id in varchar2 default null
1830 ,p_assignment_id in varchar2
1831 ,p_object_version_number in varchar2
1832 ,p_effective_date in varchar2
1833 ,p_grade_id in varchar2 default to_char(hr_api.g_number)
1834 ,p_position_id in varchar2 default to_char(hr_api.g_number)
1835 ,p_job_id in varchar2 default to_char(hr_api.g_number)
1836 ,p_location_id in varchar2 default to_char(hr_api.g_number)
1837 ,p_special_ceiling_step_id in varchar2 default to_char(hr_api.g_number)
1838 ,p_organization_id in varchar2 default to_char(hr_api.g_number)
1839 ,p_employment_category in varchar2 default hr_api.g_varchar2
1840 ,p_supervisor_id in varchar2 default to_char(hr_api.g_number)
1841 ,p_manager_flag in varchar2 default hr_api.g_varchar2
1842 ,p_normal_hours in varchar2 default to_char(hr_api.g_number)
1843 ,p_frequency in varchar2 default hr_api.g_varchar2
1844 ,p_time_normal_finish in varchar2 default hr_api.g_varchar2
1845 ,p_time_normal_start in varchar2 default hr_api.g_varchar2
1846 ,p_bargaining_unit_code in varchar2 default hr_api.g_varchar2
1847 ,p_labour_union_member_flag in varchar2 default hr_api.g_varchar2
1848 ,p_assignment_status_type_id in varchar2 default to_char(hr_api.g_number)
1849 ,p_change_reason in varchar2 default hr_api.g_varchar2
1850 ,p_ass_attribute_category in varchar2 default hr_api.g_varchar2
1851 ,p_ass_attribute1 in varchar2 default hr_api.g_varchar2
1852 ,p_ass_attribute2 in varchar2 default hr_api.g_varchar2
1853 ,p_ass_attribute3 in varchar2 default hr_api.g_varchar2
1854 ,p_ass_attribute4 in varchar2 default hr_api.g_varchar2
1855 ,p_ass_attribute5 in varchar2 default hr_api.g_varchar2
1856 ,p_ass_attribute6 in varchar2 default hr_api.g_varchar2
1857 ,p_ass_attribute7 in varchar2 default hr_api.g_varchar2
1858 ,p_ass_attribute8 in varchar2 default hr_api.g_varchar2
1859 ,p_ass_attribute9 in varchar2 default hr_api.g_varchar2
1860 ,p_ass_attribute10 in varchar2 default hr_api.g_varchar2
1861 ,p_ass_attribute11 in varchar2 default hr_api.g_varchar2
1862 ,p_ass_attribute12 in varchar2 default hr_api.g_varchar2
1863 ,p_ass_attribute13 in varchar2 default hr_api.g_varchar2
1864 ,p_ass_attribute14 in varchar2 default hr_api.g_varchar2
1865 ,p_ass_attribute15 in varchar2 default hr_api.g_varchar2
1866 ,p_ass_attribute16 in varchar2 default hr_api.g_varchar2
1867 ,p_ass_attribute17 in varchar2 default hr_api.g_varchar2
1868 ,p_ass_attribute18 in varchar2 default hr_api.g_varchar2
1869 ,p_ass_attribute19 in varchar2 default hr_api.g_varchar2
1870 ,p_ass_attribute20 in varchar2 default hr_api.g_varchar2
1871 ,p_ass_attribute21 in varchar2 default hr_api.g_varchar2
1872 ,p_ass_attribute22 in varchar2 default hr_api.g_varchar2
1873 ,p_ass_attribute23 in varchar2 default hr_api.g_varchar2
1874 ,p_ass_attribute24 in varchar2 default hr_api.g_varchar2
1875 ,p_ass_attribute25 in varchar2 default hr_api.g_varchar2
1876 ,p_ass_attribute26 in varchar2 default hr_api.g_varchar2
1877 ,p_ass_attribute27 in varchar2 default hr_api.g_varchar2
1878 ,p_ass_attribute28 in varchar2 default hr_api.g_varchar2
1879 ,p_ass_attribute29 in varchar2 default hr_api.g_varchar2
1880 ,p_ass_attribute30 in varchar2 default hr_api.g_varchar2
1881 ,p_soft_coding_keyflex_id in varchar2 default to_char(hr_api.g_number)
1882 ,p_people_group_id in varchar2 default to_char(hr_api.g_number)
1883 ,p_hrs_last_date in varchar2 default hr_api.g_varchar2
1884 ,p_display_pos in varchar2 default hr_api.g_varchar2
1885 ,p_display_org in varchar2 default hr_api.g_varchar2
1886 ,p_display_job in varchar2 default hr_api.g_varchar2
1887 ,p_display_ass_status in varchar2 default hr_api.g_varchar2
1888 ,p_grade_lov in varchar2 default hr_api.g_varchar2
1889 ,p_approver_id in varchar2 default to_char(hr_api.g_number)
1890 ,p_review_proc_call in varchar2
1891 ,p_display_grade in varchar2 default hr_api.g_varchar2
1892 ,p_contract_id in varchar2 default to_char(hr_api.g_number)
1893 ,p_establishment_id in varchar2 default to_char(hr_api.g_number)
1894 ,p_cagr_grade_def_id in varchar2 default to_char(hr_api.g_number)
1895 ,p_collective_agreement_id in varchar2 default to_char(hr_api.g_number)
1896 ,p_cagr_id_flex_num in varchar2 default to_char(hr_api.g_number)
1897 ,p_payroll_id in varchar2 default to_char(hr_api.g_number)
1898 ,p_pay_basis_id in varchar2 default to_char(hr_api.g_number)
1899 ,p_sal_review_period in varchar2 default to_char(hr_api.g_number)
1900 ,p_sal_review_period_frequency in varchar2 default hr_api.g_varchar2
1901 ,p_date_probation_end in varchar2 default to_char(hr_api.g_date,g_date_format)
1902 ,p_probation_period in varchar2 default to_char(hr_api.g_number)
1903 ,p_probation_unit in varchar2 default hr_api.g_varchar2
1904 ,p_notice_period in varchar2 default to_char(hr_api.g_number)
1905 ,p_notice_period_uom in varchar2 default hr_api.g_varchar2
1906 ,p_employee_category in varchar2 default hr_api.g_varchar2
1907 ,p_work_at_home in varchar2 default hr_api.g_varchar2
1908 ,p_job_post_source_name in varchar2 default hr_api.g_varchar2
1909 ,p_perf_review_period in varchar2 default to_char(hr_api.g_number)
1910 ,p_perf_review_period_frequency in varchar2 default hr_api.g_varchar2
1911 ,p_internal_address_line in varchar2 default hr_api.g_varchar2
1912 ,p_element_changed in out nocopy varchar2
1913 ,p_page_error in out nocopy varchar2
1914 ,p_page_error_msg in out nocopy varchar2
1915 ,p_page_warning in out nocopy varchar2
1916 ,p_page_warning_msg in out nocopy varchar2
1917 ,p_organization_error in out nocopy varchar2
1918 ,p_organization_error_msg in out nocopy varchar2
1919 ,p_job_error in out nocopy varchar2
1920 ,p_job_error_msg in out nocopy varchar2
1921 ,p_position_error in out nocopy varchar2
1922 ,p_position_error_msg in out nocopy varchar2
1923 ,p_grade_error in out nocopy varchar2
1924 ,p_grade_error_msg in out nocopy varchar2
1925 ,p_supervisor_error in out nocopy varchar2
1926 ,p_supervisor_error_msg in out nocopy varchar2
1927 ,p_location_error in out nocopy varchar2
1928 ,p_location_error_msg in out nocopy varchar2
1929 ,p_transaction_step_id in out nocopy varchar2
1930 ,p_flow_mode in varchar2 default null
1931 ,p_rptg_grp_id in varchar2 default null
1932 ,p_plan_id in varchar2 default null
1933 ,p_effective_date_option in varchar2 default null
1934 ,p_title in varchar2 default hr_api.g_varchar2
1935 ,p_default_code_comb_id in varchar2 default to_char(hr_api.g_number)
1936 ,p_set_of_books_id in varchar2 default to_char(hr_api.g_number)
1937 ,p_source_type in varchar2 default hr_api.g_varchar2
1938 ,p_project_title in varchar2 default hr_api.g_varchar2
1939 ,p_vendor_assignment_number in varchar2 default hr_api.g_varchar2
1940 ,p_vendor_employee_number in varchar2 default hr_api.g_varchar2
1941 ,p_vendor_id in varchar2 default to_char(hr_api.g_number)
1942 ,p_assignment_type in varchar2 default hr_api.g_varchar2
1943 ,p_grade_ladder_pgm_id in varchar2 default to_char(hr_api.g_number)
1944 ,p_supervisor_assignment_id in varchar2 default to_char(hr_api.g_number)
1945 -- GSP changes
1946 ,p_salary_change_warning in out nocopy varchar2
1947 ,p_gsp_post_process_warning out nocopy varchar2
1948 ,p_gsp_salary_effective_date out nocopy date
1949 -- End of GSP changes
1950 ,p_po_header_id in varchar2 default to_char(hr_api.g_number)
1951 ,p_po_line_id in varchar2 default to_char(hr_api.g_number)
1952 ,p_vendor_site_id in varchar2 default to_char(hr_api.g_number)
1953 ,p_projected_asgn_end in date default g_canonical_date
1954 ) is
1955 l_proc varchar2(72) := g_package||'process_save';
1956 begin
1957
1958 hr_utility.set_location('Entering:'||l_proc, 5);
1959 process_save
1960 (p_save_mode => p_save_mode
1961 ,p_item_type => p_item_type
1962 ,p_item_key => p_item_key
1963 ,p_actid => to_number(p_actid)
1964 ,p_login_person_id => to_number(p_login_person_id)
1965 ,p_assignment_id => to_number(p_assignment_id)
1966 ,p_object_version_number => to_number(p_object_version_number)
1967 ,p_effective_date => p_effective_date
1968 ,p_grade_id => to_number(p_grade_id)
1969 ,p_position_id => to_number(p_position_id)
1970 ,p_job_id => to_number(p_job_id)
1971 ,p_location_id => to_number(p_location_id)
1972 ,p_special_ceiling_step_id => to_number(p_special_ceiling_step_id)
1973 ,p_organization_id => to_number(p_organization_id)
1974 ,p_employment_category => p_employment_category
1975 ,p_supervisor_id => to_number(p_supervisor_id)
1976 ,p_manager_flag => p_manager_flag
1977 -- Fix for Bug 2943224 for number format which
1978 -- is always in fixed decimal format
1979 ,p_normal_hours => to_number(p_normal_hours,'9999999999999999999D999',
1980 'NLS_NUMERIC_CHARACTERS = ''.,''')
1981 ,p_frequency => p_frequency
1982 ,p_time_normal_finish => p_time_normal_finish
1983 ,p_time_normal_start => p_time_normal_start
1984 ,p_bargaining_unit_code => p_bargaining_unit_code
1985 ,p_labour_union_member_flag => p_labour_union_member_flag
1986 ,p_assignment_status_type_id => to_number(p_assignment_status_type_id)
1987 ,p_change_reason => p_change_reason
1988 ,p_ass_attribute_category => p_ass_attribute_category
1989 ,p_ass_attribute1 => p_ass_attribute1
1990 ,p_ass_attribute2 => p_ass_attribute2
1991 ,p_ass_attribute3 => p_ass_attribute3
1992 ,p_ass_attribute4 => p_ass_attribute4
1993 ,p_ass_attribute5 => p_ass_attribute5
1994 ,p_ass_attribute6 => p_ass_attribute6
1995 ,p_ass_attribute7 => p_ass_attribute7
1996 ,p_ass_attribute8 => p_ass_attribute8
1997 ,p_ass_attribute9 => p_ass_attribute9
1998 ,p_ass_attribute10 => p_ass_attribute10
1999 ,p_ass_attribute11 => p_ass_attribute11
2000 ,p_ass_attribute12 => p_ass_attribute12
2001 ,p_ass_attribute13 => p_ass_attribute13
2002 ,p_ass_attribute14 => p_ass_attribute14
2003 ,p_ass_attribute15 => p_ass_attribute15
2004 ,p_ass_attribute16 => p_ass_attribute16
2005 ,p_ass_attribute17 => p_ass_attribute17
2006 ,p_ass_attribute18 => p_ass_attribute18
2007 ,p_ass_attribute19 => p_ass_attribute19
2008 ,p_ass_attribute20 => p_ass_attribute20
2009 ,p_ass_attribute21 => p_ass_attribute21
2010 ,p_ass_attribute22 => p_ass_attribute22
2011 ,p_ass_attribute23 => p_ass_attribute23
2012 ,p_ass_attribute24 => p_ass_attribute24
2013 ,p_ass_attribute25 => p_ass_attribute25
2014 ,p_ass_attribute26 => p_ass_attribute26
2015 ,p_ass_attribute27 => p_ass_attribute27
2016 ,p_ass_attribute28 => p_ass_attribute28
2017 ,p_ass_attribute29 => p_ass_attribute29
2018 ,p_ass_attribute30 => p_ass_attribute30
2019 ,p_soft_coding_keyflex_id => to_number(p_soft_coding_keyflex_id)
2020 ,p_people_group_id => to_number(p_people_group_id)
2021 ,p_hrs_last_date => p_hrs_last_date
2022 ,p_display_pos => p_display_pos
2023 ,p_display_org => p_display_org
2024 ,p_display_job => p_display_job
2025 ,p_display_ass_status => p_display_ass_status
2026 ,p_grade_lov => p_grade_lov
2027 ,p_approver_id => to_number(p_approver_id)
2028 ,p_review_proc_call => p_review_proc_call
2029 ,p_element_changed => p_element_changed
2030 ,p_display_grade => p_display_grade
2031 ,p_contract_id => to_number(p_contract_id)
2032 ,p_establishment_id => to_number(p_establishment_id)
2033 ,p_cagr_grade_def_id => to_number(p_cagr_grade_def_id)
2034 ,p_collective_agreement_id => to_number(p_collective_agreement_id)
2035 ,p_cagr_id_flex_num => to_number(p_cagr_id_flex_num)
2036 ,p_payroll_id => to_number(p_payroll_id)
2037 ,p_pay_basis_id => to_number(p_pay_basis_id)
2038 ,p_sal_review_period => to_number(p_sal_review_period)
2039 ,p_sal_review_period_frequency => p_sal_review_period_frequency
2040 ,p_date_probation_end => to_date(p_date_probation_end,g_date_format)
2041 ,p_probation_period => to_number(p_probation_period)
2042 ,p_probation_unit => p_probation_unit
2043 ,p_notice_period => to_number(p_notice_period)
2044 ,p_notice_period_uom => p_notice_period_uom
2045 ,p_employee_category => p_employee_category
2046 ,p_work_at_home => p_work_at_home
2047 ,p_job_post_source_name => p_job_post_source_name
2048 ,p_perf_review_period => to_number(p_perf_review_period)
2049 ,p_perf_review_period_frequency => p_perf_review_period_frequency
2050 ,p_internal_address_line => p_internal_address_line
2051 ,p_page_error => p_page_error
2052 ,p_page_error_msg => p_page_error_msg
2053 ,p_page_warning => p_page_warning
2054 ,p_page_warning_msg => p_page_warning_msg
2055 ,p_organization_error => p_organization_error
2056 ,p_organization_error_msg => p_organization_error_msg
2057 ,p_job_error => p_job_error
2058 ,p_job_error_msg => p_job_error_msg
2059 ,p_position_error => p_position_error
2060 ,p_position_error_msg => p_position_error_msg
2061 ,p_grade_error => p_grade_error
2062 ,p_grade_error_msg => p_grade_error_msg
2063 ,p_supervisor_error => p_supervisor_error
2064 ,p_supervisor_error_msg => p_supervisor_error_msg
2065 ,p_location_error => p_location_error
2066 ,p_location_error_msg => p_location_error_msg
2067 ,p_transaction_step_id => p_transaction_step_id
2068 ,p_flow_mode=>p_flow_mode
2069 ,p_rptg_grp_id => p_rptg_grp_id
2070 ,p_plan_id => p_plan_id
2071 ,p_effective_date_option => p_effective_date_option
2072 ,p_title => p_title
2073 ,p_default_code_comb_id => to_number(p_default_code_comb_id)
2074 ,p_set_of_books_id => to_number(p_set_of_books_id)
2075 ,p_source_type => p_source_type
2076 ,p_project_title => p_project_title
2077 ,p_vendor_assignment_number => p_vendor_assignment_number
2078 ,p_vendor_employee_number => p_vendor_employee_number
2079 ,p_vendor_id => to_number(p_vendor_id)
2080 ,p_assignment_type => p_assignment_type
2081 ,p_grade_ladder_pgm_id => to_number(p_grade_ladder_pgm_id)
2082 ,p_supervisor_assignment_id => to_number(p_supervisor_assignment_id)
2083 -- GSP change
2084 ,p_salary_change_warning => p_salary_change_warning
2085 ,p_gsp_post_process_warning => p_gsp_post_process_warning
2086 ,p_gsp_salary_effective_date => p_gsp_salary_effective_date
2087 -- GSP change
2088 ,p_po_header_id => to_number(p_po_header_id)
2089 ,p_po_line_id => to_number(p_po_line_id)
2090 ,p_vendor_site_id => to_number(p_vendor_site_id)
2091 ,p_proj_asgn_end => p_projected_asgn_end
2092
2093 );
2094 hr_utility.set_location('Exiting:'||l_proc, 15);
2095
2096 end process_save;
2097
2098 -- This code is for applying several workflow steps of assignment data in
2099 -- one step in the database. The first time that this is called in a process, a
2100 -- new transaction step is created and all of the data are written to the
2101 -- transaction tables. When a subsequent step in the process starts, it reads
2102 -- the previous data from the previous transaction step, and overwrites only
2103 -- the fields which it supplies so that all of the data from all of the steps
2104 -- is validated together, and then it is saved together
2105 --
2106 procedure process_save
2107 (p_save_mode in varchar2 default null
2108 ,p_item_type in wf_items.item_type%TYPE
2109 ,p_item_key in wf_items.item_key%TYPE
2110 ,p_actid in wf_activity_attr_values.process_activity_id%type
2111 ,p_login_person_id in number
2112 ,p_assignment_id in number
2113 ,p_object_version_number in number
2114 ,p_effective_date in varchar2
2115 ,p_grade_id in number default hr_api.g_number
2116 ,p_position_id in number default hr_api.g_number
2117 ,p_job_id in number default hr_api.g_number
2118 ,p_location_id in number default hr_api.g_number
2119 ,p_special_ceiling_step_id in number default hr_api.g_number
2120 ,p_organization_id in number default hr_api.g_number
2121 ,p_employment_category in varchar2 default hr_api.g_varchar2
2122 ,p_supervisor_id in number default hr_api.g_number
2123 ,p_manager_flag in varchar2 default hr_api.g_varchar2
2124 ,p_normal_hours in number default hr_api.g_number
2125 ,p_frequency in varchar2 default hr_api.g_varchar2
2126 ,p_time_normal_finish in varchar2 default hr_api.g_varchar2
2127 ,p_time_normal_start in varchar2 default hr_api.g_varchar2
2128 ,p_bargaining_unit_code in varchar2 default hr_api.g_varchar2
2129 ,p_labour_union_member_flag in varchar2 default hr_api.g_varchar2
2130 ,p_assignment_status_type_id in number default hr_api.g_number
2131 ,p_change_reason in varchar2 default hr_api.g_varchar2
2132 ,p_ass_attribute_category in varchar2 default hr_api.g_varchar2
2133 ,p_ass_attribute1 in varchar2 default hr_api.g_varchar2
2134 ,p_ass_attribute2 in varchar2 default hr_api.g_varchar2
2135 ,p_ass_attribute3 in varchar2 default hr_api.g_varchar2
2136 ,p_ass_attribute4 in varchar2 default hr_api.g_varchar2
2137 ,p_ass_attribute5 in varchar2 default hr_api.g_varchar2
2138 ,p_ass_attribute6 in varchar2 default hr_api.g_varchar2
2139 ,p_ass_attribute7 in varchar2 default hr_api.g_varchar2
2140 ,p_ass_attribute8 in varchar2 default hr_api.g_varchar2
2141 ,p_ass_attribute9 in varchar2 default hr_api.g_varchar2
2142 ,p_ass_attribute10 in varchar2 default hr_api.g_varchar2
2143 ,p_ass_attribute11 in varchar2 default hr_api.g_varchar2
2144 ,p_ass_attribute12 in varchar2 default hr_api.g_varchar2
2145 ,p_ass_attribute13 in varchar2 default hr_api.g_varchar2
2146 ,p_ass_attribute14 in varchar2 default hr_api.g_varchar2
2147 ,p_ass_attribute15 in varchar2 default hr_api.g_varchar2
2148 ,p_ass_attribute16 in varchar2 default hr_api.g_varchar2
2149 ,p_ass_attribute17 in varchar2 default hr_api.g_varchar2
2150 ,p_ass_attribute18 in varchar2 default hr_api.g_varchar2
2151 ,p_ass_attribute19 in varchar2 default hr_api.g_varchar2
2152 ,p_ass_attribute20 in varchar2 default hr_api.g_varchar2
2153 ,p_ass_attribute21 in varchar2 default hr_api.g_varchar2
2154 ,p_ass_attribute22 in varchar2 default hr_api.g_varchar2
2155 ,p_ass_attribute23 in varchar2 default hr_api.g_varchar2
2156 ,p_ass_attribute24 in varchar2 default hr_api.g_varchar2
2157 ,p_ass_attribute25 in varchar2 default hr_api.g_varchar2
2158 ,p_ass_attribute26 in varchar2 default hr_api.g_varchar2
2159 ,p_ass_attribute27 in varchar2 default hr_api.g_varchar2
2160 ,p_ass_attribute28 in varchar2 default hr_api.g_varchar2
2161 ,p_ass_attribute29 in varchar2 default hr_api.g_varchar2
2162 ,p_ass_attribute30 in varchar2 default hr_api.g_varchar2
2163 ,p_soft_coding_keyflex_id in number default hr_api.g_number
2164 ,p_people_group_id in number default hr_api.g_number
2165 ,p_hrs_last_date in varchar2 default hr_api.g_varchar2
2166 ,p_display_pos in varchar2 default hr_api.g_varchar2
2167 ,p_display_org in varchar2 default hr_api.g_varchar2
2168 ,p_display_job in varchar2 default hr_api.g_varchar2
2169 ,p_display_ass_status in varchar2 default hr_api.g_varchar2
2170 ,p_grade_lov in varchar2 default hr_api.g_varchar2
2171 ,p_approver_id in number default hr_api.g_number
2172 ,p_review_proc_call in varchar2
2173 ,p_display_grade in varchar2 default hr_api.g_varchar2
2174 ,p_contract_id in number default hr_api.g_number
2175 ,p_establishment_id in number default hr_api.g_number
2176 ,p_cagr_grade_def_id in number default hr_api.g_number
2177 ,p_collective_agreement_id in number default hr_api.g_number
2178 ,p_cagr_id_flex_num in number default hr_api.g_number
2179 ,p_payroll_id in number default hr_api.g_number
2180 ,p_pay_basis_id in number default hr_api.g_number
2181 ,p_sal_review_period in number default hr_api.g_number
2182 ,p_sal_review_period_frequency in varchar2 default hr_api.g_varchar2
2183 ,p_date_probation_end in date default hr_api.g_date
2184 ,p_probation_period in number default hr_api.g_number
2185 ,p_probation_unit in varchar2 default hr_api.g_varchar2
2186 ,p_notice_period in number default hr_api.g_number
2187 ,p_notice_period_uom in varchar2 default hr_api.g_varchar2
2188 ,p_employee_category in varchar2 default hr_api.g_varchar2
2189 ,p_work_at_home in varchar2 default hr_api.g_varchar2
2190 ,p_job_post_source_name in varchar2 default hr_api.g_varchar2
2191 ,p_perf_review_period in number default hr_api.g_number
2192 ,p_perf_review_period_frequency in varchar2 default hr_api.g_varchar2
2193 ,p_internal_address_line in varchar2 default hr_api.g_varchar2
2194 ,p_element_changed in out nocopy varchar2
2195 ,p_page_error in out nocopy varchar2
2196 ,p_page_error_msg in out nocopy varchar2
2197 ,p_page_warning in out nocopy varchar2
2198 ,p_page_warning_msg in out nocopy varchar2
2199 ,p_organization_error in out nocopy varchar2
2200 ,p_organization_error_msg in out nocopy varchar2
2201 ,p_job_error in out nocopy varchar2
2202 ,p_job_error_msg in out nocopy varchar2
2203 ,p_position_error in out nocopy varchar2
2204 ,p_position_error_msg in out nocopy varchar2
2205 ,p_grade_error in out nocopy varchar2
2206 ,p_grade_error_msg in out nocopy varchar2
2207 ,p_supervisor_error in out nocopy varchar2
2208 ,p_supervisor_error_msg in out nocopy varchar2
2209 ,p_location_error in out nocopy varchar2
2210 ,p_location_error_msg in out nocopy varchar2
2211 ,p_transaction_step_id in out nocopy varchar2
2212 ,p_flow_mode in varchar2 default null
2213 ,p_rptg_grp_id in varchar2 default null
2214 ,p_plan_id in varchar2 default null
2215 ,p_effective_date_option in varchar2 default null
2216 ,p_title in varchar2 default hr_api.g_varchar2
2217 ,p_default_code_comb_id in number default hr_api.g_number
2218 ,p_set_of_books_id in number default hr_api.g_number
2219 ,p_source_type in varchar2 default hr_api.g_varchar2
2220 ,p_project_title in varchar2 default hr_api.g_varchar2
2221 ,p_vendor_assignment_number in varchar2 default hr_api.g_varchar2
2222 ,p_vendor_employee_number in varchar2 default hr_api.g_varchar2
2223 ,p_vendor_id in number default hr_api.g_number
2224 ,p_assignment_type in varchar2 default hr_api.g_varchar2
2225 ,p_grade_ladder_pgm_id in number default hr_api.g_number
2226 ,p_supervisor_assignment_id in number default hr_api.g_number
2227 -- GSP change
2228 ,p_salary_change_warning in out nocopy varchar2
2229 ,p_gsp_post_process_warning out nocopy varchar2
2230 ,p_gsp_salary_effective_date out nocopy date
2231 -- End of GSP change
2232 ,p_po_header_id in number default hr_api.g_number
2233 ,p_po_line_id in number default hr_api.g_number
2234 ,p_vendor_site_id in number default hr_api.g_number
2235 ,p_proj_asgn_end in date default g_canonical_date
2236
2237 ) is
2238 l_assignment_id per_all_assignments_f.assignment_id%TYPE;
2239 l_person_id per_all_assignments_f.person_id%TYPE;
2240 l_item_type hr_api_transaction_steps.item_type%TYPE;
2241 l_item_key hr_api_transaction_steps.item_key%TYPE;
2242 l_activity_id hr_api_transaction_steps.activity_id%TYPE;
2243 l_effective_date date;
2244 l_effective_start_date date;
2245 l_effective_end_date date;
2246 l_transaction_id number;
2247 l_result varchar2(100);
2248 l_transaction_step_id number;
2249 l_count number;
2250 l_trans_tbl hr_transaction_ss.transaction_table;
2251 l_assignment_rec per_all_assignments_f%rowtype;
2252 l_old_assignment_rec per_all_assignments_f%rowtype;
2253 l_db_assignment_rec per_all_assignments_f%rowtype;
2254 l_date_error boolean default false;
2255 l_special_ceiling_step_id per_all_assignments_f.special_ceiling_step_id%TYPE;
2256 l_trns_object_version_number number;
2257 l_datetrack_update_mode varchar2(30);
2258 l_last_change_date date;
2259 l_review_proc_call varchar2(4000);
2260 l_activity_id_list varchar2(4000);
2261 l_element_warning boolean default TRUE;
2262 l_hrs_last_date varchar2(30);
2263 l_display_pos varchar2(30);
2264 l_display_org varchar2(30);
2265 l_display_job varchar2(30);
2266 l_display_ass_status varchar2(30);
2267 l_grade_lov varchar2(30); -- Bug #1004255 fix
2268 l_approver_id number;
2269 l_email_id varchar2(200);
2270 l_element_changed varchar2(1);
2271 i_changed boolean := FALSE; --changed by current module
2272 others_changed boolean := FALSE; --changed by other modules
2273 ln_ovn number;
2274 l_display_grade varchar2(30); -- Bug #1067636 fix
2275 l_name varchar2(2000);
2276 l_original_name varchar2(2000); --ns
2277 l_proc_order number; --bug 6065339
2278
2279 l_pay_step_id number; --bug 6405208
2280 l_pay_activity_id number;
2281
2282 -- variables and cursor for applicant_hire
2283 l_object_version_number number;
2284 l_per_object_version_number number;
2285 l_employee_number number;
2286 l_per_effective_start_date date;
2287 l_per_effective_end_date date;
2288 l_unaccepted_asg_del_warning boolean;
2289 l_assign_payroll_warning boolean;
2290 l_new_hire_appl_hire varchar2(10);
2291
2292 -- 04/12/02 Salary Basis Enhancement Change Begins
2293 l_legislation_code VARCHAR2(150) default null;
2294 -- 04/12/02 Salary Basis Enhancement Change Ends
2295 dummy varchar2(5);
2296
2297 -- GSP changes
2298 ltt_salary_data sshr_sal_prop_tab_typ;
2299 lv_salary_change_warning VARCHAR2(30) default null;
2300 lv_gsp_api_mode VARCHAR2(30) default null;
2301 lv_gsp_review_proc_call VARCHAR2(30) default null;
2302 -- need to changed
2303 lv_gsp_flow_mode VARCHAR2(30) default null;
2304 ln_gsp_step_id NUMBER;
2305 --lb_grade_ladder_changed boolean default false;
2306 --lb_grade_changed boolean default false;
2307 --lb_special_ceiling_step_id_chg boolean default false;
2308 lc_temp_grade_ladder_id NUMBER;
2309
2310 ln_gsp_activity_id NUMBER;
2311 lv_gsp_activity_id VARCHAR2(30) default null;
2312
2313 lb_grd_ldr_exists_flag boolean default false;
2314 l_proc varchar2(72) := g_package||'process_save';
2315
2316 lc_temp_upd_sal_cd varchar2(30);
2317 ln_gsp_txn_id number;
2318 ln_gsp_update_mode varchar2(10);
2319
2320 -- cursor to find whether assigned grade ladder id updates
2321 -- the salary using Grade Step Progression
2322 CURSOR lc_sal_updateable_grade_ladder
2323 (p_grade_ladder_id in per_all_assignments_f.grade_ladder_pgm_id%TYPE ,
2324 p_effective_date in date
2325 ) IS
2326 select pgm_id, update_salary_cd from ben_pgm_f
2327 where
2328 -- grade ladder does not allow update of salary
2329 --(update_salary_cd is null or update_salary_cd = 'NO_UPDATE')
2330 -- salary updated by the progression system should not be manually overidden
2331 --and (gsp_allow_override_flag is null or gsp_allow_override_flag = 'N')
2332 --and
2333 pgm_id = p_grade_ladder_id
2334 and p_effective_date between effective_start_date and effective_end_date;
2335
2336
2337 --End of GSP changes
2338
2339 -- cursor to get the applicant object_version_number from
2340 -- per_all_people_f
2341 cursor per_applicant_rec(p_appl_person_id in number,
2342 p_appl_effective_date in date) is
2343 select object_version_number
2344 from per_all_people_f
2345 where person_id = p_appl_person_id
2346 and p_appl_effective_date between effective_start_date
2347 and effective_end_date;
2348
2349 --
2350 -- cursor to get the applicant object_version_number from
2351 -- per_all_assignments_f
2352 cursor asg_applicant_rec(p_appl_assign_id in number,
2353 p_appl_effective_date in date) is
2354 select object_version_number,
2355 assignment_status_type_id
2356 from per_all_assignments_f
2357 where assignment_id = p_appl_assign_id
2358 and p_appl_effective_date between effective_start_date
2359 and effective_end_date;
2360
2361 --
2362
2363 cursor last_change_date is
2364 select max(asf.effective_start_date)
2365 from per_all_assignments_f asf,
2366 per_assignment_status_types past
2367 where asf.assignment_id=l_assignment_id
2368 and asf.ASSIGNMENT_STATUS_TYPE_ID = past.ASSIGNMENT_STATUS_TYPE_ID;
2369 -- ns 10-May-03: Since termination is handled on the effective date page
2370 -- and update insert may be allowed even if future dated termination,
2371 -- we do not need this check here
2372 -- and past.PER_SYSTEM_STATUS <> 'TERM_ASSIGN';
2373
2374 -- New cursor to see if any assignment record exist for the selected date
2375 cursor correction_date is
2376 select null
2377 from per_all_assignments_f asf,
2378 per_assignment_status_types past
2379 where asf.assignment_id = l_assignment_id
2380 and asf.assignment_status_type_id = past.assignment_status_type_id
2381 and asf.effective_start_date = l_effective_date;
2382
2383 cursor csr_org_name(p_id in number) is
2384 select name
2385 from hr_organization_units
2386 where organization_id = p_id;
2387
2388 cursor csr_job_name(p_id in number) is
2389 select name
2390 from per_jobs_vl
2391 where job_id = p_id;
2392
2393 cursor csr_pos_name(p_id in number) is
2394 select name
2395 from hr_positions_f
2396 where position_id = p_id
2397 and to_date(p_effective_date,g_date_format)
2398 between effective_start_date
2399 and effective_end_date;
2400
2401 cursor csr_grade_name(p_id in number) is
2402 select name
2403 from per_grades_vl
2404 where grade_id = p_id;
2405
2406 cursor csr_assignment is
2407 select assignment_id
2408 from per_all_assignments_f
2409 where assignment_id = p_assignment_id;
2410
2411 cursor process_order(l_item_type in varchar2,l_item_key in varchar2) is
2412 select processing_order from hr_api_transaction_steps where
2413 item_type=l_item_type and item_key=l_item_key and api_name='HR_SUPERVISOR_SS.PROCESS_API';
2414
2415 cursor pay_step(l_item_type in varchar2,l_item_key in varchar2) is --bug6405208
2416 select transaction_step_id,activity_id from hr_api_transaction_steps where
2417 item_type=l_item_type and item_key=l_item_key and api_name='HR_PAY_RATE_SS.PROCESS_API';
2418
2419 cursor step_grade_step(l_item_type in varchar2,l_item_key in varchar2) is
2420 select null from hr_api_transaction_steps where
2421 item_type=l_item_type and item_key=l_item_key and api_name='HR_PROCESS_ASSIGNMENT_STEP_SS.PROCESS_API';
2422
2423 --
2424 begin
2425
2426 hr_utility.set_location('Entering:'||l_proc, 5);
2427 l_object_version_number := p_object_version_number;
2428
2429 -- first check if this is being called for registration.
2430 if p_flow_mode is not null and
2431 p_flow_mode = hr_process_assignment_ss.g_new_hire_registration
2432 then
2433 hr_utility.set_location('p_flow_mode = hr_process_assignment_ss.g_new_hire_registration:'||l_proc,10);
2434 g_registration := true;
2435 end if;
2436
2437 -- validate seesion
2438 l_assignment_id := p_assignment_id;
2439 l_item_type := p_item_type;
2440 l_item_key := p_item_key;
2441 l_activity_id := p_actid;
2442
2443 --Validate the p_assignment_id
2444 if g_registration then
2445 hr_utility.set_location(' if g_registration then:'||l_proc,15);
2446 open csr_assignment;
2447 fetch csr_assignment into l_assignment_id;
2448 if csr_assignment%notfound then
2449 hr_utility.set_location(' if csr_assignment%notfound then:'||l_proc,20);
2450 hr_api.legislation_hooks('DISABLE'); -- bug 6405208
2451 hr_new_user_reg_ss.processNewUserTransaction
2452 (WfItemType => l_item_type
2453 ,WfItemKey => l_item_key
2454 ,PersonId => l_person_id
2455 ,AssignmentId => l_assignment_id);
2456 hr_api.legislation_hooks('ENABLE'); -- bug 6405208
2457 end if;
2458 close csr_assignment;
2459 end if;
2460 --
2461 -- get the e-mail address for error messages
2462 --
2463 -- l_email_id := wf_engine.getItemAttrText
2464 -- (itemtype => l_item_type
2465 -- ,itemkey => l_item_key
2466 -- ,aname => hr_assignment_util_web.gv_wf_email_id);
2467 --
2468 -- check that we have a valid date
2469 --
2470
2471 begin
2472 l_effective_date :=to_date(p_effective_date, g_date_format);
2473 exception
2474 when others then
2475 --Should add page level error
2476 hr_utility.set_location('Exception:Others'||l_proc,555);
2477 hr_utility.raise_error;
2478 /*hr_errors_api.addErrorToTable
2479 (p_errorfield => null
2480 ,p_errorcode => to_char(SQLCODE)
2481 ,p_errormsg => sqlerrm
2482 );*/
2483 l_date_error:=true;
2484 end;
2485
2486 -- GSP Changes
2487 -- set the effective salary date
2488 p_gsp_salary_effective_date := l_effective_date;
2489 -- End of GSP changes
2490
2491 --
2492 if not l_date_error then
2493 --
2494 -- look to see if we are looking for an element warning or error
2495 --
2496 IF hr_mee_workflow_service.check_web_page_code(
2497 p_item_type => l_item_type,
2498 p_item_key => l_item_key,
2499 p_actid => l_activity_id,
2500 p_web_page_section_code =>
2501 hr_process_assignment_ss.gv_ele_warning) THEN
2502 if(hr_mee_workflow_service.get_web_page_code(
2503 p_item_type => l_item_type,
2504 p_item_key => l_item_key,
2505 p_actID => l_activity_id,
2506 p_web_page_section_code =>hr_process_assignment_ss.gv_ele_warning)
2507 = 'Y') then
2508 l_element_warning:=TRUE;
2509 else
2510 l_element_warning:=FALSE;
2511 end if;
2512 ELSE
2513 l_element_warning:=FALSE;
2514 END IF;
2515 l_element_changed:=p_element_changed;
2516
2517
2518 -- ----------------------------------------------------------------------------
2519 -- get original database data, we need to compare it with transaction table
2520 -- and input values to decide if any changes have been made
2521 -- ----------------------------------------------------------------------------
2522 hr_assignment_common_save_web.get_asg_from_asg
2523 (p_assignment_id => l_assignment_id
2524 ,p_effective_date => l_effective_date
2525 ,p_assignment_rec => l_db_assignment_rec);
2526 --
2527 -- look to see if we have already a transaction step in progress
2528 -- this check is based on the api_name and not the activity_id because
2529 -- each step will have a different activity_id.
2530 --
2531 hr_assignment_common_save_web.get_step
2532 (p_item_type => l_item_type
2533 ,p_item_key => l_item_key
2534 ,p_api_name => g_api_name
2535 ,p_transaction_step_id => l_transaction_step_id
2536 ,p_transaction_id => l_transaction_id);
2537 --IF l_transaction_step_id is null then
2538 --
2539 -- There are no pre-existing steps, so this is the first time this has been
2540 -- called
2541 --
2542
2543 -------------------------------------------------------------------------
2544 -- get the existing data from the online tables
2545 -------------------------------------------------------------------------
2546 l_old_assignment_rec := l_db_assignment_rec;
2547
2548 IF l_transaction_step_id is null then
2549 --
2550 -- look for the last change date so that we can work out what date track
2551 -- update mode we are using
2552 --
2553 hr_utility.set_location('IF l_transaction_step_id is null then:'||l_proc,25);
2554 open last_change_date;
2555 fetch last_change_date into l_last_change_date;
2556 if last_change_date%notfound then
2557 close last_change_date;
2558 --
2559 -- if we cannot find this assignment record then there must be an error
2560 --
2561 --Should add page level error
2562 fnd_message.set_name('PER','HR_ASG_NOT_FOUND');
2563 hr_utility.raise_error;
2564 /*hr_errors_api.addErrorToTable
2565 (p_errorfield => null
2566 ,p_errormsg => fnd_message.get);*/
2567 else
2568 close last_change_date;
2569 end if;
2570 --
2571 if l_effective_date>l_last_change_date then
2572 --
2573 -- if the effective date is after the date of the last change then we
2574 -- are doing an update
2575 --
2576 hr_utility.set_location('l_effective_date>l_last_change_date then:'||l_proc,30);
2577 l_datetrack_update_mode:='UPDATE';
2578
2579 -- registration always need this as Correction.
2580 if p_flow_mode is not null and
2581
2582 p_flow_mode = hr_process_assignment_ss.g_new_hire_registration
2583 then
2584 hr_utility.set_location('p_flow_mode is not null and: NewHireReg'||l_proc,35);
2585 l_datetrack_update_mode := 'CORRECTION';
2586 end if;
2587
2588 else
2589 open correction_date;
2590 fetch correction_date into dummy;
2591
2592 if correction_date%FOUND then
2593 -- if the effective date is equal an existing assignment
2594 -- start date then we
2595 -- are doing a correction
2596 --
2597 hr_utility.set_location('if correction_date%FOUND then:'||l_proc,40);
2598 l_datetrack_update_mode:='CORRECTION';
2599 else
2600 --
2601 IF ( fnd_profile.value('PQH_DT_RULE_FUTUR_CHANGE_FOUND')
2602 = 'APPROVE_ONLY') THEN
2603 hr_utility.set_location('Approve only:'||l_proc,45);
2604 l_datetrack_update_mode:='UPDATE_CHANGE_INSERT';
2605 ELSE
2606 --Throw error if date track profile is turned off and
2607 --future dated change is found
2608 fnd_message.set_name('PER','HR_DATE_TOO_EARLY');
2609 hr_utility.raise_error;
2610 END IF;
2611 --
2612 end if;
2613
2614 close correction_date;
2615
2616 end if;
2617
2618 --
2619 --since this is the first time in, we take the display pos and activity_id
2620 -- as they are.
2621 --
2622
2623 l_review_proc_call := p_review_proc_call;
2624 l_activity_id_list := l_activity_id;
2625 else
2626 -- this is not the first time through.
2627 -- get the existing data from the transaction tables
2628 -- Bug 2365524: set the l_element_changed only if the transaction
2629 -- value is not null
2630 if hr_transaction_api.get_varchar2_value
2631 (p_transaction_step_id => l_transaction_step_id
2632 ,p_name => 'P_ELEMENT_CHANGED') is not null
2633 then
2634 l_element_changed :=
2635 hr_transaction_api.get_varchar2_value
2636 (p_transaction_step_id => l_transaction_step_id
2637 ,p_name => 'P_ELEMENT_CHANGED');
2638 end if;
2639 --warning has already been raised.
2640 if l_element_changed is not null then
2641 l_element_warning := TRUE;
2642 end if;
2643 get_asg_from_tt
2644 (p_transaction_step_id => l_transaction_step_id
2645 ,p_assignment_rec => l_old_assignment_rec);
2646 -- we pick up the old review page and activity_id lists to
2647 -- append to
2648 l_review_proc_call:= hr_transaction_api.get_varchar2_value
2649 (p_transaction_step_id => l_transaction_step_id
2650 ,p_name => 'P_REVIEW_PROC_CALL');
2651 l_activity_id_list:= hr_transaction_api.get_varchar2_value
2652 (p_transaction_step_id => l_transaction_step_id
2653 ,p_name => 'P_REVIEW_ACTID');
2654 -- check that effective_date and date track update mode
2655 -- have not changed
2656 if (l_effective_date<> to_date(hr_transaction_ss.get_wf_effective_date
2657 (p_transaction_step_id => l_transaction_step_id)
2658 ,g_date_format))
2659 then
2660 --Should add page level error
2661 fnd_message.set_name('PER','HR_EFF_DATE_CHANGED');
2662 hr_utility.raise_error;
2663 /*hr_errors_api.addErrorToTable
2664 (p_errorfield => null
2665 ,p_errormsg => fnd_message.get);*/
2666 end if;
2667 l_datetrack_update_mode:=
2668 hr_transaction_api.get_varchar2_value(
2669 p_transaction_step_id => l_transaction_step_id,
2670 p_name => 'P_DATETRACK_UPDATE_MODE'
2671 );
2672 end if;
2673 i_changed := FALSE;
2674 others_changed := FALSE;
2675 -- Set the l_assignment_rec.business_group_id and person_id accordingly.
2676 -- Otherwise, we will get HR_7207_API_MANDATORY_ARG error in
2677 -- per_asg_bus1.chk_organization_id and other assignment fields
2678 -- because of the uninitialized value in the rec.
2679 l_assignment_rec.business_group_id :=
2680 l_old_assignment_rec.business_group_id;
2681 l_assignment_rec.person_id :=
2682 l_old_assignment_rec.person_id;
2683 if (p_grade_id = hr_api.g_number) then
2684 l_assignment_rec.grade_id := l_old_assignment_rec.grade_id;
2685 if nvl(l_old_assignment_rec.grade_id, hr_api.g_number)
2686 <> nvl(l_db_assignment_rec.grade_id, hr_api.g_number)
2687 then
2688 others_changed:=TRUE;
2689 end if;
2690 else
2691 l_assignment_rec.grade_id := p_grade_id;
2692 if (nvl(p_grade_id,-1) <> nvl(l_db_assignment_rec.grade_id,-1) ) then
2693 i_changed:=TRUE;
2694 end if;
2695 end if;
2696
2697 if (p_position_id = hr_api.g_number) then
2698 l_assignment_rec.position_id :=
2699 l_old_assignment_rec.position_id;
2700 if nvl(l_old_assignment_rec.position_id, hr_api.g_number)
2701 <> nvl(l_db_assignment_rec.position_id, hr_api.g_number)
2702 then
2703 others_changed:=TRUE;
2704 end if;
2705 else
2706 l_assignment_rec.position_id := p_position_id;
2707 if (nvl(p_position_id, -1) <> nvl(l_db_assignment_rec.position_id,-1))
2708 then
2709 i_changed:=TRUE;
2710 end if;
2711 end if;
2712
2713 if (p_job_id = hr_api.g_number) then
2714 l_assignment_rec.job_id :=
2715 l_old_assignment_rec.job_id;
2716 if nvl(l_old_assignment_rec.job_id, hr_api.g_number)
2717 <> nvl(l_db_assignment_rec.job_id, hr_api.g_number)
2718 then
2719 others_changed:=TRUE;
2720 end if;
2721 else
2722 l_assignment_rec.job_id := p_job_id;
2723 if (nvl(p_job_id, -1) <> nvl(l_db_assignment_rec.job_id,-1)) then
2724 i_changed:=TRUE;
2725 end if;
2726 end if;
2727
2728 if (p_location_id = hr_api.g_number) then
2729 l_assignment_rec.location_id :=
2730 l_old_assignment_rec.location_id;
2731 if nvl(l_old_assignment_rec.location_id, hr_api.g_number)
2732 <> nvl(l_db_assignment_rec.location_id, hr_api.g_number)
2733 then
2734 others_changed:=TRUE;
2735 end if;
2736 else
2737 l_assignment_rec.location_id := p_location_id;
2738 if (nvl(p_location_id, -1) <> nvl(l_db_assignment_rec.location_id,-1))
2739 then
2740 i_changed:=TRUE;
2741 end if;
2742 end if;
2743
2744 if (p_supervisor_id = hr_api.g_number) then
2745 l_assignment_rec.supervisor_id :=
2746 l_old_assignment_rec.supervisor_id;
2747 if nvl(l_old_assignment_rec.supervisor_id, hr_api.g_number)
2748 <> nvl(l_db_assignment_rec.supervisor_id, hr_api.g_number)
2749 then
2750 others_changed:=TRUE;
2751 end if;
2752 else
2753 l_assignment_rec.supervisor_id := p_supervisor_id;
2754 if (nvl(p_supervisor_id, -1) <> nvl(l_db_assignment_rec.supervisor_id,-1))
2755 then
2756 i_changed:=TRUE;
2757 end if;
2758 end if;
2759
2760 if (p_special_ceiling_step_id = hr_api.g_number) then
2761 l_assignment_rec.special_ceiling_step_id :=
2762 l_old_assignment_rec.special_ceiling_step_id;
2763 if nvl(l_old_assignment_rec.special_ceiling_step_id, hr_api.g_number)
2764 <> nvl(l_db_assignment_rec.special_ceiling_step_id, hr_api.g_number)
2765 then
2766 others_changed:=TRUE;
2767 end if;
2768 else
2769 l_assignment_rec.special_ceiling_step_id := p_special_ceiling_step_id;
2770 if (nvl(p_special_ceiling_step_id, -1) <>
2771 nvl(l_db_assignment_rec.special_ceiling_step_id,-1))
2772 then
2773 i_changed:=TRUE;
2774 end if;
2775 end if;
2776
2777 if (p_organization_id = hr_api.g_number) then
2778 l_assignment_rec.organization_id :=
2779 l_old_assignment_rec.organization_id;
2780 if nvl(l_old_assignment_rec.organization_id, hr_api.g_number)
2781 <> nvl(l_db_assignment_rec.organization_id, hr_api.g_number)
2782 then
2783 others_changed:=TRUE;
2784 end if;
2785 else
2786 l_assignment_rec.organization_id := p_organization_id;
2787 if (nvl(p_organization_id, -1) <>
2788 nvl(l_db_assignment_rec.organization_id,-1))
2789 then
2790 i_changed:=TRUE;
2791 end if;
2792 end if;
2793
2794 if (p_employment_category = hr_api.g_varchar2) then
2795 l_assignment_rec.employment_category :=
2796 l_old_assignment_rec.employment_category;
2797 if nvl(l_old_assignment_rec.employment_category, hr_api.g_varchar2)
2798 <> nvl(l_db_assignment_rec.employment_category, hr_api.g_varchar2)
2799 then
2800 others_changed:=TRUE;
2801 end if;
2802 else
2803 l_assignment_rec.employment_category := p_employment_category;
2804 if (nvl(p_employment_category, hr_api.g_varchar2) <>
2805 nvl(l_db_assignment_rec.employment_category, hr_api.g_varchar2))
2806 then
2807 i_changed:=TRUE;
2808 end if;
2809 end if;
2810
2811 if (p_manager_flag = hr_api.g_varchar2) then
2812 l_assignment_rec.manager_flag :=
2813 l_old_assignment_rec.manager_flag;
2814 if nvl(l_old_assignment_rec.manager_flag, hr_api.g_varchar2)
2815 <> nvl(l_db_assignment_rec.manager_flag, hr_api.g_varchar2)
2816 then
2817 others_changed:=TRUE;
2818 end if;
2819 else
2820 l_assignment_rec.manager_flag := p_manager_flag;
2821 if (nvl(p_manager_flag, hr_api.g_varchar2) <>
2822 nvl(l_db_assignment_rec.manager_flag, hr_api.g_varchar2))
2823 then
2824 i_changed:=TRUE;
2825 end if;
2826 end if;
2827
2828 if (p_frequency = hr_api.g_varchar2) then
2829 l_assignment_rec.frequency :=
2830 l_old_assignment_rec.frequency;
2831 if nvl(l_old_assignment_rec.frequency, hr_api.g_varchar2)
2832 <> nvl(l_db_assignment_rec.frequency, hr_api.g_varchar2)
2833 then
2834 others_changed:=TRUE;
2835 end if;
2836 else
2837 l_assignment_rec.frequency := p_frequency;
2838 if (nvl(p_frequency, hr_api.g_varchar2) <>
2839 nvl(l_db_assignment_rec.frequency, hr_api.g_varchar2))
2840 then
2841 i_changed:=TRUE;
2842 end if;
2843 end if;
2844
2845 if (p_normal_hours = hr_api.g_number) then
2846 l_assignment_rec.normal_hours :=
2847 l_old_assignment_rec.normal_hours;
2848 if nvl(l_old_assignment_rec.normal_hours, hr_api.g_number)
2849 <> nvl(l_db_assignment_rec.normal_hours, hr_api.g_number)
2850 then
2851 others_changed:=TRUE;
2852 end if;
2853 else
2854 l_assignment_rec.normal_hours := p_normal_hours;
2855 if (nvl(p_normal_hours, -1) <>
2856 nvl(l_db_assignment_rec.normal_hours,-1))
2857 then
2858 i_changed:=TRUE;
2859 end if;
2860 end if;
2861
2862 if (p_time_normal_finish = hr_api.g_varchar2) then
2863 l_assignment_rec.time_normal_finish :=
2864 l_old_assignment_rec.time_normal_finish;
2865 if nvl(l_old_assignment_rec.time_normal_finish, hr_api.g_varchar2)
2866 <> nvl(l_db_assignment_rec.time_normal_finish, hr_api.g_varchar2)
2867 then
2868 others_changed:=TRUE;
2869 end if;
2870 else
2871 l_assignment_rec.time_normal_finish := p_time_normal_finish;
2872 if (nvl(p_time_normal_finish, hr_api.g_varchar2) <>
2873 nvl(l_db_assignment_rec.time_normal_finish, hr_api.g_varchar2))
2874 then
2875 i_changed:=TRUE;
2876 end if;
2877 end if;
2878
2879 if (p_time_normal_start = hr_api.g_varchar2) then
2880 l_assignment_rec.time_normal_start :=
2881 l_old_assignment_rec.time_normal_start;
2882 if nvl(l_old_assignment_rec.time_normal_start, hr_api.g_varchar2)
2883 <> nvl(l_db_assignment_rec.time_normal_start, hr_api.g_varchar2)
2884 then
2885 others_changed:=TRUE;
2886 end if;
2887 else
2888 l_assignment_rec.time_normal_start := p_time_normal_start;
2889 if (nvl(p_time_normal_start, hr_api.g_varchar2) <>
2890 nvl(l_db_assignment_rec.time_normal_start, hr_api.g_varchar2))
2891 then
2892 i_changed:=TRUE;
2893 end if;
2894 end if;
2895
2896 if (p_bargaining_unit_code = hr_api.g_varchar2) then
2897 l_assignment_rec.bargaining_unit_code :=
2898 l_old_assignment_rec.bargaining_unit_code;
2899 if nvl(l_old_assignment_rec.bargaining_unit_code, hr_api.g_varchar2)
2900 <> nvl(l_db_assignment_rec.bargaining_unit_code, hr_api.g_varchar2)
2901 then
2902 others_changed:=TRUE;
2903 end if;
2904 else
2905 l_assignment_rec.bargaining_unit_code := p_bargaining_unit_code;
2906 if (nvl(p_bargaining_unit_code, hr_api.g_varchar2) <>
2907 nvl(l_db_assignment_rec.bargaining_unit_code, hr_api.g_varchar2))
2908 then
2909 i_changed:=TRUE;
2910 end if;
2911 end if;
2912
2913 if (p_labour_union_member_flag = hr_api.g_varchar2) then
2914 l_assignment_rec.labour_union_member_flag :=
2915 l_old_assignment_rec.labour_union_member_flag;
2916 if nvl(l_old_assignment_rec.labour_union_member_flag, hr_api.g_varchar2)
2917 <> nvl(l_db_assignment_rec.labour_union_member_flag, hr_api.g_varchar2)
2918 then
2919 others_changed:=TRUE;
2920 end if;
2921 else
2922 l_assignment_rec.labour_union_member_flag := p_labour_union_member_flag;
2923 if (nvl(p_labour_union_member_flag, hr_api.g_varchar2) <>
2924 nvl(l_db_assignment_rec.labour_union_member_flag, hr_api.g_varchar2))
2925 then
2926 i_changed:=TRUE;
2927 end if;
2928 end if;
2929
2930
2931 if (p_ass_attribute_category = hr_api.g_varchar2) then
2932 l_assignment_rec.ass_attribute_category :=
2933 l_old_assignment_rec.ass_attribute_category;
2934 if nvl(l_old_assignment_rec.ass_attribute_category, hr_api.g_varchar2)
2935 <> nvl(l_db_assignment_rec.ass_attribute_category, hr_api.g_varchar2)
2936 then
2937 others_changed:=TRUE;
2938 end if;
2939 else
2940 l_assignment_rec.ass_attribute_category := p_ass_attribute_category;
2941 if (nvl(p_ass_attribute_category, hr_api.g_varchar2) <>
2942 nvl(l_db_assignment_rec.ass_attribute_category, hr_api.g_varchar2))
2943 then
2944 i_changed:=TRUE;
2945 end if;
2946 end if;
2947
2948 if (p_assignment_status_type_id = hr_api.g_number) then
2949 l_assignment_rec.assignment_status_type_id :=
2950 l_old_assignment_rec.assignment_status_type_id;
2951 if nvl(l_old_assignment_rec.assignment_status_type_id, hr_api.g_number)
2952 <> nvl(l_db_assignment_rec.assignment_status_type_id, hr_api.g_number)
2953 then
2954 others_changed:=TRUE;
2955 end if;
2956 else
2957 l_assignment_rec.assignment_status_type_id := p_assignment_status_type_id;
2958 if (nvl(p_assignment_status_type_id, -1) <>
2959 nvl(l_db_assignment_rec.assignment_status_type_id, -1))
2960 then
2961 i_changed:=TRUE;
2962 end if;
2963 end if;
2964 if (p_change_reason = hr_api.g_varchar2) then
2965 l_assignment_rec.change_reason :=
2966 l_old_assignment_rec.change_reason;
2967 if (nvl(l_db_assignment_rec.change_reason, hr_api.g_varchar2) <>
2968 nvl(l_old_assignment_rec.change_reason, hr_api.g_varchar2))
2969 then
2970 others_changed:=TRUE;
2971 end if;
2972 else
2973 l_assignment_rec.change_reason := p_change_reason;
2974 if (nvl(p_change_reason, hr_api.g_varchar2) <>
2975 nvl(l_db_assignment_rec.change_reason, hr_api.g_varchar2))
2976 then
2977 i_changed:=TRUE;
2978 end if;
2979 end if;
2980
2981 if (p_ass_attribute1 = hr_api.g_varchar2) then
2982 l_assignment_rec.ass_attribute1 :=
2983 l_old_assignment_rec.ass_attribute1;
2984 if (nvl(l_db_assignment_rec.ass_attribute1, hr_api.g_varchar2) <>
2985 nvl(l_old_assignment_rec.ass_attribute1, hr_api.g_varchar2))
2986 then
2987 others_changed:=TRUE;
2988 end if;
2989 else
2990 l_assignment_rec.ass_attribute1 := p_ass_attribute1;
2991 if (nvl(p_ass_attribute1, hr_api.g_varchar2) <>
2992 nvl(l_db_assignment_rec.ass_attribute1, hr_api.g_varchar2))
2993 then
2994 i_changed:=TRUE;
2995 end if;
2996 end if;
2997
2998 if (p_ass_attribute2 = hr_api.g_varchar2) then
2999 l_assignment_rec.ass_attribute2 :=
3000 l_old_assignment_rec.ass_attribute2;
3001 if (nvl(l_db_assignment_rec.ass_attribute2, hr_api.g_varchar2) <>
3002 nvl(l_old_assignment_rec.ass_attribute2, hr_api.g_varchar2))
3003 then
3004 others_changed:=TRUE;
3005 end if;
3006 else
3007 l_assignment_rec.ass_attribute2 := p_ass_attribute2;
3008 if (nvl(p_ass_attribute2, hr_api.g_varchar2) <>
3009 nvl(l_db_assignment_rec.ass_attribute2, hr_api.g_varchar2))
3010 then
3011 i_changed:=TRUE;
3012 end if;
3013 end if;
3014
3015 if (p_ass_attribute3 = hr_api.g_varchar2) then
3016 l_assignment_rec.ass_attribute3 :=
3017 l_old_assignment_rec.ass_attribute3;
3018 if (nvl(l_db_assignment_rec.ass_attribute3, hr_api.g_varchar2) <>
3019 nvl(l_old_assignment_rec.ass_attribute3, hr_api.g_varchar2))
3020 then
3021 others_changed:=TRUE;
3022 end if;
3023 else
3024 l_assignment_rec.ass_attribute3 := p_ass_attribute3;
3025 if (nvl(p_ass_attribute3, hr_api.g_varchar2) <>
3026 nvl(l_db_assignment_rec.ass_attribute3, hr_api.g_varchar2))
3027 then
3028 i_changed:=TRUE;
3029 end if;
3030 end if;
3031
3032 if (p_ass_attribute4 = hr_api.g_varchar2) then
3033 l_assignment_rec.ass_attribute4 :=
3034 l_old_assignment_rec.ass_attribute4;
3035 if (nvl(l_db_assignment_rec.ass_attribute4, hr_api.g_varchar2) <>
3036 nvl(l_old_assignment_rec.ass_attribute4, hr_api.g_varchar2))
3037 then
3038 others_changed:=TRUE;
3039 end if;
3040 else
3041 l_assignment_rec.ass_attribute4 := p_ass_attribute4;
3042 if (nvl(p_ass_attribute4, hr_api.g_varchar2) <>
3043 nvl(l_db_assignment_rec.ass_attribute4, hr_api.g_varchar2))
3044 then
3045 i_changed:=TRUE;
3046 end if;
3047 end if;
3048
3049 if (p_ass_attribute5 = hr_api.g_varchar2) then
3050 l_assignment_rec.ass_attribute5 :=
3051 l_old_assignment_rec.ass_attribute5;
3052 if (nvl(l_db_assignment_rec.ass_attribute5, hr_api.g_varchar2) <>
3053 nvl(l_old_assignment_rec.ass_attribute5, hr_api.g_varchar2))
3054 then
3055 others_changed:=TRUE;
3056 end if;
3057 else
3058 l_assignment_rec.ass_attribute5 := p_ass_attribute5;
3059 if (nvl(p_ass_attribute5, hr_api.g_varchar2) <>
3060 nvl(l_db_assignment_rec.ass_attribute5, hr_api.g_varchar2))
3061 then
3062 i_changed:=TRUE;
3063 end if;
3064 end if;
3065
3066 if (p_ass_attribute6 = hr_api.g_varchar2) then
3067 l_assignment_rec.ass_attribute6 :=
3068 l_old_assignment_rec.ass_attribute6;
3069 if (nvl(l_db_assignment_rec.ass_attribute6, hr_api.g_varchar2) <>
3070 nvl(l_old_assignment_rec.ass_attribute6, hr_api.g_varchar2))
3071 then
3072 others_changed:=TRUE;
3073 end if;
3074 else
3075 l_assignment_rec.ass_attribute6 := p_ass_attribute6;
3076 if (nvl(p_ass_attribute6, hr_api.g_varchar2) <>
3077 nvl(l_db_assignment_rec.ass_attribute6, hr_api.g_varchar2))
3078 then
3079 i_changed:=TRUE;
3080 end if;
3081 end if;
3082
3083 if (p_ass_attribute7 = hr_api.g_varchar2) then
3084 l_assignment_rec.ass_attribute7 :=
3085 l_old_assignment_rec.ass_attribute7;
3086 if (nvl(l_db_assignment_rec.ass_attribute7, hr_api.g_varchar2) <>
3087 nvl(l_old_assignment_rec.ass_attribute7, hr_api.g_varchar2))
3088 then
3089 others_changed:=TRUE;
3090 end if;
3091 else
3092 l_assignment_rec.ass_attribute7 := p_ass_attribute7;
3093 if (nvl(p_ass_attribute7, hr_api.g_varchar2) <>
3094 nvl(l_db_assignment_rec.ass_attribute7, hr_api.g_varchar2))
3095 then
3096 i_changed:=TRUE;
3097 end if;
3098 end if;
3099
3100 if (p_ass_attribute8 = hr_api.g_varchar2) then
3101 l_assignment_rec.ass_attribute8 :=
3102 l_old_assignment_rec.ass_attribute8;
3103 if (nvl(l_db_assignment_rec.ass_attribute8, hr_api.g_varchar2) <>
3104 nvl(l_old_assignment_rec.ass_attribute8, hr_api.g_varchar2))
3105 then
3106 others_changed:=TRUE;
3107 end if;
3108 else
3109 l_assignment_rec.ass_attribute8 := p_ass_attribute8;
3110 if (nvl(p_ass_attribute8, hr_api.g_varchar2) <>
3111 nvl(l_db_assignment_rec.ass_attribute8, hr_api.g_varchar2))
3112 then
3113 i_changed:=TRUE;
3114 end if;
3115 end if;
3116
3117 if (p_ass_attribute9 = hr_api.g_varchar2) then
3118 l_assignment_rec.ass_attribute9 :=
3119 l_old_assignment_rec.ass_attribute9;
3120 if (nvl(l_db_assignment_rec.ass_attribute9, hr_api.g_varchar2) <>
3121 nvl(l_old_assignment_rec.ass_attribute9, hr_api.g_varchar2))
3122 then
3123 others_changed:=TRUE;
3124 end if;
3125 else
3126 l_assignment_rec.ass_attribute9 :=p_ass_attribute9;
3127 if (nvl(p_ass_attribute9, hr_api.g_varchar2) <>
3128 nvl(l_db_assignment_rec.ass_attribute9, hr_api.g_varchar2))
3129 then
3130 i_changed:=TRUE;
3131 end if;
3132 end if;
3133
3134 if (p_ass_attribute10 = hr_api.g_varchar2) then
3135 l_assignment_rec.ass_attribute10 :=
3136 l_old_assignment_rec.ass_attribute10;
3137 if (nvl(l_db_assignment_rec.ass_attribute10, hr_api.g_varchar2) <>
3138 nvl(l_old_assignment_rec.ass_attribute10, hr_api.g_varchar2))
3139 then
3140 others_changed:=TRUE;
3141 end if;
3142 else
3143 l_assignment_rec.ass_attribute10 := p_ass_attribute10;
3144 if (nvl(p_ass_attribute10, hr_api.g_varchar2) <>
3145 nvl(l_db_assignment_rec.ass_attribute10, hr_api.g_varchar2))
3146 then
3147 i_changed:=TRUE;
3148 end if;
3149 end if;
3150
3151 if (p_ass_attribute11 = hr_api.g_varchar2) then
3152 l_assignment_rec.ass_attribute11 :=
3153 l_old_assignment_rec.ass_attribute11;
3154 if (nvl(l_db_assignment_rec.ass_attribute11, hr_api.g_varchar2) <>
3155 nvl(l_old_assignment_rec.ass_attribute11, hr_api.g_varchar2))
3156 then
3157 others_changed:=TRUE;
3158 end if;
3159 else
3160 l_assignment_rec.ass_attribute11 := p_ass_attribute11;
3161 if (nvl(p_ass_attribute11, hr_api.g_varchar2) <>
3162 nvl(l_db_assignment_rec.ass_attribute11, hr_api.g_varchar2))
3163 then
3164 i_changed:=TRUE;
3165 end if;
3166 end if;
3167
3168 if (p_ass_attribute12 = hr_api.g_varchar2) then
3169 l_assignment_rec.ass_attribute12 :=
3170 l_old_assignment_rec.ass_attribute12;
3171 if (nvl(l_db_assignment_rec.ass_attribute12, hr_api.g_varchar2) <>
3172 nvl(l_old_assignment_rec.ass_attribute12, hr_api.g_varchar2))
3173 then
3174 others_changed:=TRUE;
3175 end if;
3176 else
3177 l_assignment_rec.ass_attribute12 := p_ass_attribute12;
3178 if (nvl(p_ass_attribute12, hr_api.g_varchar2) <>
3179 nvl(l_db_assignment_rec.ass_attribute12, hr_api.g_varchar2))
3180 then
3181 i_changed:=TRUE;
3182 end if;
3183 end if;
3184
3185 if (p_ass_attribute13 = hr_api.g_varchar2) then
3186 l_assignment_rec.ass_attribute13 :=
3187 l_old_assignment_rec.ass_attribute13;
3188 if (nvl(l_db_assignment_rec.ass_attribute13, hr_api.g_varchar2) <>
3189 nvl(l_old_assignment_rec.ass_attribute13, hr_api.g_varchar2))
3190 then
3191 others_changed:=TRUE;
3192 end if;
3193 else
3194 l_assignment_rec.ass_attribute13 := p_ass_attribute13;
3195 if (nvl(p_ass_attribute13, hr_api.g_varchar2) <>
3196 nvl(l_db_assignment_rec.ass_attribute13, hr_api.g_varchar2))
3197 then
3198 i_changed:=TRUE;
3199 end if;
3200 end if;
3201
3202 if (p_ass_attribute14 = hr_api.g_varchar2) then
3203 l_assignment_rec.ass_attribute14 :=
3204 l_old_assignment_rec.ass_attribute14;
3205 if (nvl(l_db_assignment_rec.ass_attribute14, hr_api.g_varchar2) <>
3206 nvl(l_old_assignment_rec.ass_attribute14, hr_api.g_varchar2))
3207 then
3208 others_changed:=TRUE;
3209 end if;
3210 else
3211 l_assignment_rec.ass_attribute14 := p_ass_attribute14;
3212 if (nvl(p_ass_attribute14, hr_api.g_varchar2) <>
3213 nvl(l_db_assignment_rec.ass_attribute14, hr_api.g_varchar2))
3214 then
3215 i_changed:=TRUE;
3216 end if;
3217 end if;
3218
3219 if (p_ass_attribute15 = hr_api.g_varchar2) then
3220 l_assignment_rec.ass_attribute15 :=
3221 l_old_assignment_rec.ass_attribute15;
3222 if (nvl(l_db_assignment_rec.ass_attribute15, hr_api.g_varchar2) <>
3223 nvl(l_old_assignment_rec.ass_attribute15, hr_api.g_varchar2))
3224 then
3225 others_changed:=TRUE;
3226 end if;
3227 else
3228 l_assignment_rec.ass_attribute15 := p_ass_attribute15;
3229 if (nvl(p_ass_attribute15, hr_api.g_varchar2) <>
3230 nvl(l_db_assignment_rec.ass_attribute15, hr_api.g_varchar2))
3231 then
3232 i_changed:=TRUE;
3233 end if;
3234 end if;
3235
3236 if (p_ass_attribute16 = hr_api.g_varchar2) then
3237 l_assignment_rec.ass_attribute16 :=
3238 l_old_assignment_rec.ass_attribute16;
3239 if (nvl(l_db_assignment_rec.ass_attribute16, hr_api.g_varchar2) <>
3240 nvl(l_old_assignment_rec.ass_attribute16, hr_api.g_varchar2))
3241 then
3242 others_changed:=TRUE;
3243 end if;
3244 else
3245 l_assignment_rec.ass_attribute16 := p_ass_attribute16;
3246 if (nvl(p_ass_attribute16, hr_api.g_varchar2) <>
3247 nvl(l_db_assignment_rec.ass_attribute16, hr_api.g_varchar2))
3248 then
3249 i_changed:=TRUE;
3250 end if;
3251 end if;
3252
3253 if (p_ass_attribute17 = hr_api.g_varchar2) then
3254 l_assignment_rec.ass_attribute17 :=
3255 l_old_assignment_rec.ass_attribute17;
3256 if (nvl(l_db_assignment_rec.ass_attribute17, hr_api.g_varchar2) <>
3257 nvl(l_old_assignment_rec.ass_attribute17, hr_api.g_varchar2))
3258 then
3259 others_changed:=TRUE;
3260 end if;
3261 else
3262 l_assignment_rec.ass_attribute17 := p_ass_attribute17;
3263 if (nvl(p_ass_attribute17, hr_api.g_varchar2) <>
3264 nvl(l_db_assignment_rec.ass_attribute17, hr_api.g_varchar2))
3265 then
3266 i_changed:=TRUE;
3267 end if;
3268 end if;
3269
3270 if (p_ass_attribute18 = hr_api.g_varchar2) then
3271 l_assignment_rec.ass_attribute18 :=
3272 l_old_assignment_rec.ass_attribute18;
3273 if (nvl(l_db_assignment_rec.ass_attribute18, hr_api.g_varchar2) <>
3274 nvl(l_old_assignment_rec.ass_attribute18, hr_api.g_varchar2))
3275 then
3276 others_changed:=TRUE;
3277 end if;
3278 else
3279 l_assignment_rec.ass_attribute18 := p_ass_attribute18;
3280 if (nvl(p_ass_attribute18, hr_api.g_varchar2) <>
3281 nvl(l_db_assignment_rec.ass_attribute18, hr_api.g_varchar2))
3282 then
3283 i_changed:=TRUE;
3284 end if;
3285 end if;
3286
3287 if (p_ass_attribute19 = hr_api.g_varchar2) then
3288 l_assignment_rec.ass_attribute19 :=
3289 l_old_assignment_rec.ass_attribute19;
3290 if (nvl(l_db_assignment_rec.ass_attribute19, hr_api.g_varchar2) <>
3291 nvl(l_old_assignment_rec.ass_attribute19, hr_api.g_varchar2))
3292 then
3293 others_changed:=TRUE;
3294 end if;
3295 else
3296 l_assignment_rec.ass_attribute19 := p_ass_attribute19;
3297 if (nvl(p_ass_attribute19, hr_api.g_varchar2) <>
3298 nvl(l_db_assignment_rec.ass_attribute19, hr_api.g_varchar2))
3299 then
3300 i_changed:=TRUE;
3301 end if;
3302 end if;
3303
3304 if (p_ass_attribute20 = hr_api.g_varchar2) then
3305 l_assignment_rec.ass_attribute20 :=
3306 l_old_assignment_rec.ass_attribute20;
3307 if (nvl(l_db_assignment_rec.ass_attribute20, hr_api.g_varchar2) <>
3308 nvl(l_old_assignment_rec.ass_attribute20, hr_api.g_varchar2))
3309 then
3310 others_changed:=TRUE;
3311 end if;
3312 else
3313 l_assignment_rec.ass_attribute20 := p_ass_attribute20;
3314 if (nvl(p_ass_attribute20, hr_api.g_varchar2) <>
3315 nvl(l_db_assignment_rec.ass_attribute20, hr_api.g_varchar2))
3316 then
3317 i_changed:=TRUE;
3318 end if;
3319 end if;
3320
3321 if (p_ass_attribute21 = hr_api.g_varchar2) then
3322 l_assignment_rec.ass_attribute21 :=
3323 l_old_assignment_rec.ass_attribute21;
3324 if (nvl(l_db_assignment_rec.ass_attribute21, hr_api.g_varchar2) <>
3325 nvl(l_old_assignment_rec.ass_attribute21, hr_api.g_varchar2))
3326 then
3327 others_changed:=TRUE;
3328 end if;
3329 else
3330 l_assignment_rec.ass_attribute21 := p_ass_attribute21;
3331 if (nvl(p_ass_attribute21, hr_api.g_varchar2) <>
3332 nvl(l_db_assignment_rec.ass_attribute21, hr_api.g_varchar2))
3333 then
3334 i_changed:=TRUE;
3335 end if;
3336 end if;
3337
3338 if (p_ass_attribute22 = hr_api.g_varchar2) then
3339 l_assignment_rec.ass_attribute22 :=
3340 l_old_assignment_rec.ass_attribute22;
3341 if (nvl(l_db_assignment_rec.ass_attribute22, hr_api.g_varchar2) <>
3342 nvl(l_old_assignment_rec.ass_attribute22, hr_api.g_varchar2))
3343 then
3344 others_changed:=TRUE;
3345 end if;
3346 else
3347 l_assignment_rec.ass_attribute22 := p_ass_attribute22;
3348 if (nvl(p_ass_attribute22, hr_api.g_varchar2) <>
3349 nvl(l_db_assignment_rec.ass_attribute22, hr_api.g_varchar2))
3350 then
3351 i_changed:=TRUE;
3352 end if;
3353 end if;
3354
3355 if (p_ass_attribute23 = hr_api.g_varchar2) then
3356 l_assignment_rec.ass_attribute23 :=
3357 l_old_assignment_rec.ass_attribute23;
3358 if (nvl(l_db_assignment_rec.ass_attribute23, hr_api.g_varchar2) <>
3359 nvl(l_old_assignment_rec.ass_attribute23, hr_api.g_varchar2))
3360 then
3361 others_changed:=TRUE;
3362 end if;
3363 else
3364 l_assignment_rec.ass_attribute23 := p_ass_attribute23;
3365 if (nvl(p_ass_attribute23, hr_api.g_varchar2) <>
3366 nvl(l_db_assignment_rec.ass_attribute23, hr_api.g_varchar2))
3367 then
3368 i_changed:=TRUE;
3369 end if;
3370 end if;
3371
3372 if (p_ass_attribute24 = hr_api.g_varchar2) then
3373 l_assignment_rec.ass_attribute24 :=
3374 l_old_assignment_rec.ass_attribute24;
3375 if (nvl(l_db_assignment_rec.ass_attribute24, hr_api.g_varchar2) <>
3376 nvl(l_old_assignment_rec.ass_attribute24, hr_api.g_varchar2))
3377 then
3378 others_changed:=TRUE;
3379 end if;
3380 else
3381 l_assignment_rec.ass_attribute24 := p_ass_attribute24;
3382 if (nvl(p_ass_attribute24, hr_api.g_varchar2) <>
3383 nvl(l_db_assignment_rec.ass_attribute24, hr_api.g_varchar2))
3384 then
3385 i_changed:=TRUE;
3386 end if;
3387 end if;
3388
3389 if (p_ass_attribute25 = hr_api.g_varchar2) then
3390 l_assignment_rec.ass_attribute25 :=
3391 l_old_assignment_rec.ass_attribute25;
3392 if (nvl(l_db_assignment_rec.ass_attribute25, hr_api.g_varchar2) <>
3393 nvl(l_old_assignment_rec.ass_attribute25, hr_api.g_varchar2))
3394 then
3395 others_changed:=TRUE;
3396 end if;
3397 else
3398 l_assignment_rec.ass_attribute25 := p_ass_attribute25;
3399 if (nvl(p_ass_attribute25, hr_api.g_varchar2) <>
3400 nvl(l_db_assignment_rec.ass_attribute25, hr_api.g_varchar2))
3401 then
3402 i_changed:=TRUE;
3403 end if;
3404 end if;
3405
3406 if (p_ass_attribute26 = hr_api.g_varchar2) then
3407 l_assignment_rec.ass_attribute26 :=
3408 l_old_assignment_rec.ass_attribute26;
3409 if (nvl(l_db_assignment_rec.ass_attribute26, hr_api.g_varchar2) <>
3410 nvl(l_old_assignment_rec.ass_attribute26, hr_api.g_varchar2))
3411 then
3412 others_changed:=TRUE;
3413 end if;
3414 else
3415 l_assignment_rec.ass_attribute26 := p_ass_attribute26;
3416 if (nvl(p_ass_attribute26, hr_api.g_varchar2) <>
3417 nvl(l_db_assignment_rec.ass_attribute26, hr_api.g_varchar2))
3418 then
3419 i_changed:=TRUE;
3420 end if;
3421 end if;
3422
3423 if (p_ass_attribute27 = hr_api.g_varchar2) then
3424 l_assignment_rec.ass_attribute27 :=
3425 l_old_assignment_rec.ass_attribute27;
3426 if (nvl(l_db_assignment_rec.ass_attribute27, hr_api.g_varchar2) <>
3427 nvl(l_old_assignment_rec.ass_attribute27, hr_api.g_varchar2))
3428 then
3429 others_changed:=TRUE;
3430 end if;
3431 else
3432 l_assignment_rec.ass_attribute27 := p_ass_attribute27;
3433 if (nvl(p_ass_attribute27, hr_api.g_varchar2) <>
3434 nvl(l_db_assignment_rec.ass_attribute27, hr_api.g_varchar2))
3435 then
3436 i_changed:=TRUE;
3437 end if;
3438 end if;
3439
3440 if (p_ass_attribute28 = hr_api.g_varchar2) then
3441 l_assignment_rec.ass_attribute28 :=
3442 l_old_assignment_rec.ass_attribute28;
3443 if (nvl(l_db_assignment_rec.ass_attribute28, hr_api.g_varchar2) <>
3444 nvl(l_old_assignment_rec.ass_attribute28, hr_api.g_varchar2))
3445 then
3446 others_changed:=TRUE;
3447 end if;
3448 else
3449 l_assignment_rec.ass_attribute28 := p_ass_attribute28;
3450 if (nvl(p_ass_attribute28, hr_api.g_varchar2) <>
3451 nvl(l_db_assignment_rec.ass_attribute28, hr_api.g_varchar2))
3452 then
3453 i_changed:=TRUE;
3454 end if;
3455 end if;
3456
3457 if (p_ass_attribute29 = hr_api.g_varchar2) then
3458 l_assignment_rec.ass_attribute29 :=
3459 l_old_assignment_rec.ass_attribute29;
3460 if (nvl(l_db_assignment_rec.ass_attribute29, hr_api.g_varchar2) <>
3461 nvl(l_old_assignment_rec.ass_attribute29, hr_api.g_varchar2))
3462 then
3463 others_changed:=TRUE;
3464 end if;
3465 else
3466 l_assignment_rec.ass_attribute29 := p_ass_attribute29;
3467 if (nvl(p_ass_attribute29, hr_api.g_varchar2) <>
3468 nvl(l_db_assignment_rec.ass_attribute29, hr_api.g_varchar2))
3469 then
3470 i_changed:=TRUE;
3471 end if;
3472 end if;
3473
3474 if (p_ass_attribute30 = hr_api.g_varchar2) then
3475 l_assignment_rec.ass_attribute30 :=
3476 l_old_assignment_rec.ass_attribute30;
3477 if (nvl(l_db_assignment_rec.ass_attribute30, hr_api.g_varchar2) <>
3478 nvl(l_old_assignment_rec.ass_attribute30, hr_api.g_varchar2))
3479 then
3480 others_changed:=TRUE;
3481 end if;
3482 else
3483 l_assignment_rec.ass_attribute30 := p_ass_attribute30;
3484 if (nvl(p_ass_attribute30, hr_api.g_varchar2) <>
3485 nvl(l_db_assignment_rec.ass_attribute30, hr_api.g_varchar2))
3486 then
3487 i_changed:=TRUE;
3488 end if;
3489 end if;
3490
3491 if (p_people_group_id = hr_api.g_number) then
3492 l_assignment_rec.people_group_id :=
3493 l_old_assignment_rec.people_group_id;
3494 if nvl(l_old_assignment_rec.people_group_id, hr_api.g_number)
3495 <> nvl(l_db_assignment_rec.people_group_id, hr_api.g_number)
3496 then
3497 others_changed:=TRUE;
3498 end if;
3499 else
3500 l_assignment_rec.people_group_id := p_people_group_id;
3501 if (nvl(p_people_group_id, -1)
3502 <> nvl(l_db_assignment_rec.people_group_id,-1))
3503 then
3504 i_changed:=TRUE;
3505 end if;
3506 end if;
3507
3508 if (p_soft_coding_keyflex_id = hr_api.g_number) then
3509 l_assignment_rec.soft_coding_keyflex_id :=
3510 l_old_assignment_rec.soft_coding_keyflex_id;
3511 if nvl(l_old_assignment_rec.soft_coding_keyflex_id, hr_api.g_number)
3512 <> nvl(l_db_assignment_rec.soft_coding_keyflex_id, hr_api.g_number)
3513 then
3514 others_changed:=TRUE;
3515 end if;
3516 else
3517 l_assignment_rec.soft_coding_keyflex_id := p_soft_coding_keyflex_id;
3518 if (nvl(p_soft_coding_keyflex_id, -1)
3519 <> nvl(l_db_assignment_rec.soft_coding_keyflex_id,-1))
3520 then
3521 i_changed:=TRUE;
3522 end if;
3523 end if;
3524
3525 if (p_sal_review_period_frequency = hr_api.g_varchar2) then
3526 l_assignment_rec.sal_review_period_frequency :=
3527 l_old_assignment_rec.sal_review_period_frequency;
3528 if (nvl(l_db_assignment_rec.sal_review_period_frequency, hr_api.g_varchar2)
3529 <>
3530 nvl(l_old_assignment_rec.sal_review_period_frequency, hr_api.g_varchar2))
3531 then
3532 others_changed:=TRUE;
3533 end if;
3534 else
3535 l_assignment_rec.sal_review_period_frequency :=
3536 p_sal_review_period_frequency;
3537 if (nvl(p_sal_review_period_frequency, hr_api.g_varchar2) <>
3538 nvl(l_db_assignment_rec.sal_review_period_frequency, hr_api.g_varchar2))
3539 then
3540 i_changed:=TRUE;
3541 end if;
3542 end if;
3543
3544 if (p_sal_review_period = hr_api.g_number) then
3545 l_assignment_rec.sal_review_period :=
3546 l_old_assignment_rec.sal_review_period;
3547 if nvl(l_old_assignment_rec.sal_review_period, hr_api.g_number)
3548 <> nvl(l_db_assignment_rec.sal_review_period, hr_api.g_number)
3549 then
3550 others_changed:=TRUE;
3551 end if;
3552 else
3553 l_assignment_rec.sal_review_period := p_sal_review_period;
3554 if (nvl(p_sal_review_period, -1) <>
3555 nvl(l_db_assignment_rec.sal_review_period,-1))
3556 then
3557 i_changed:=TRUE;
3558 end if;
3559 end if;
3560
3561 if (p_probation_period = hr_api.g_number) then
3562 l_assignment_rec.probation_period :=
3563 l_old_assignment_rec.probation_period;
3564 if nvl(l_old_assignment_rec.probation_period, hr_api.g_number)
3565 <> nvl(l_db_assignment_rec.probation_period, hr_api.g_number)
3566 then
3567 others_changed:=TRUE;
3568 end if;
3569 else
3570 l_assignment_rec.probation_period := p_probation_period;
3571 if (nvl(p_probation_period, -1) <>
3572 nvl(l_db_assignment_rec.probation_period,-1))
3573 then
3574 i_changed:=TRUE;
3575 end if;
3576 end if;
3577
3578 if (to_char(p_date_probation_end) = to_char(hr_api.g_date)) then
3579 l_assignment_rec.date_probation_end :=
3580 l_old_assignment_rec.date_probation_end;
3581
3582 if (nvl(l_db_assignment_rec.date_probation_end, hr_api.g_date)
3583 <>
3584 nvl(l_old_assignment_rec.date_probation_end, hr_api.g_date))
3585 then
3586 others_changed:=TRUE;
3587 end if;
3588 else
3589 l_assignment_rec.date_probation_end :=
3590 p_date_probation_end;
3591 if (nvl(p_date_probation_end, hr_api.g_date) <>
3592 nvl(l_db_assignment_rec.date_probation_end, hr_api.g_date))
3593 then
3594 i_changed:=TRUE;
3595 end if;
3596 end if;
3597
3598 if (p_probation_unit = hr_api.g_varchar2) then
3599 l_assignment_rec.probation_unit :=
3600 l_old_assignment_rec.probation_unit;
3601 if (nvl(l_db_assignment_rec.probation_unit, hr_api.g_varchar2)
3602 <>
3603 nvl(l_old_assignment_rec.probation_unit, hr_api.g_varchar2))
3604 then
3605 others_changed:=TRUE;
3606 end if;
3607 else
3608 l_assignment_rec.probation_unit :=
3609 p_probation_unit;
3610 if (nvl(p_probation_unit, hr_api.g_varchar2) <>
3611 nvl(l_db_assignment_rec.probation_unit, hr_api.g_varchar2))
3612 then
3613 i_changed:=TRUE;
3614 end if;
3615 end if;
3616
3617 if (p_notice_period = hr_api.g_number) then
3618 l_assignment_rec.notice_period :=
3619 l_old_assignment_rec.notice_period;
3620 if nvl(l_old_assignment_rec.notice_period, hr_api.g_number)
3621 <> nvl(l_db_assignment_rec.notice_period, hr_api.g_number)
3622 then
3623 others_changed:=TRUE;
3624 end if;
3625 else
3626 l_assignment_rec.notice_period := p_notice_period;
3627 if (nvl(p_notice_period, -1) <>
3628 nvl(l_db_assignment_rec.notice_period,-1))
3629 then
3630 i_changed:=TRUE;
3631 end if;
3632 end if;
3633
3634 if (p_notice_period_uom = hr_api.g_varchar2) then
3635 l_assignment_rec.notice_period_uom :=
3636 l_old_assignment_rec.notice_period_uom;
3637 if (nvl(l_db_assignment_rec.notice_period_uom, hr_api.g_varchar2)
3638 <>
3639 nvl(l_old_assignment_rec.notice_period_uom, hr_api.g_varchar2))
3640 then
3641 others_changed:=TRUE;
3642 end if;
3643 else
3644 l_assignment_rec.notice_period_uom :=
3645 p_notice_period_uom;
3646 if (nvl(p_notice_period_uom, hr_api.g_varchar2) <>
3647 nvl(l_db_assignment_rec.notice_period_uom, hr_api.g_varchar2))
3648 then
3649 i_changed:=TRUE;
3650 end if;
3651 end if;
3652
3653 if (p_employee_category = hr_api.g_varchar2) then
3654 l_assignment_rec.employee_category :=
3655 l_old_assignment_rec.employee_category;
3656 if (nvl(l_db_assignment_rec.employee_category, hr_api.g_varchar2)
3657 <>
3658 nvl(l_old_assignment_rec.employee_category, hr_api.g_varchar2))
3659 then
3660 others_changed:=TRUE;
3661 end if;
3662 else
3663 l_assignment_rec.employee_category :=
3664 p_employee_category;
3665 if (nvl(p_employee_category, hr_api.g_varchar2) <>
3666 nvl(l_db_assignment_rec.employee_category, hr_api.g_varchar2))
3667 then
3668 i_changed:=TRUE;
3669 end if;
3670 end if;
3671
3672 if (p_work_at_home = hr_api.g_varchar2) then
3673 l_assignment_rec.work_at_home :=
3674 l_old_assignment_rec.work_at_home;
3675 if (nvl(l_db_assignment_rec.work_at_home, hr_api.g_varchar2)
3676 <>
3677 nvl(l_old_assignment_rec.work_at_home, hr_api.g_varchar2))
3678 then
3679 others_changed:=TRUE;
3680 end if;
3681 else
3682 l_assignment_rec.work_at_home :=
3683 p_work_at_home;
3684 if (nvl(p_work_at_home, hr_api.g_varchar2) <>
3685 nvl(l_db_assignment_rec.work_at_home, hr_api.g_varchar2))
3686 then
3687 i_changed:=TRUE;
3688 end if;
3689 end if;
3690
3691 if (p_job_post_source_name = hr_api.g_varchar2) then
3692 l_assignment_rec.job_post_source_name :=
3693 l_old_assignment_rec.job_post_source_name;
3694 if (nvl(l_db_assignment_rec.job_post_source_name, hr_api.g_varchar2)
3695 <>
3696 nvl(l_old_assignment_rec.job_post_source_name, hr_api.g_varchar2))
3697 then
3698 others_changed:=TRUE;
3699 end if;
3700 else
3701 l_assignment_rec.job_post_source_name :=
3702 p_job_post_source_name;
3703 if (nvl(p_job_post_source_name, hr_api.g_varchar2) <>
3704 nvl(l_db_assignment_rec.job_post_source_name, hr_api.g_varchar2))
3705 then
3706 i_changed:=TRUE;
3707 end if;
3708 end if;
3709
3710 if (p_title = hr_api.g_varchar2) then
3711 l_assignment_rec.title :=
3712 l_old_assignment_rec.title;
3713 if nvl(l_old_assignment_rec.title, hr_api.g_varchar2)
3714 <> nvl(l_db_assignment_rec.title, hr_api.g_varchar2)
3715 then
3716 others_changed:=TRUE;
3717 end if;
3718 else
3719 l_assignment_rec.title := p_title;
3720 if (nvl(p_title, -1) <>
3721 nvl(l_db_assignment_rec.title,-1))
3722 then
3723 i_changed:=TRUE;
3724 end if;
3725 end if;
3726
3727 if (p_project_title = hr_api.g_varchar2) then
3728 l_assignment_rec.project_title :=
3729 l_old_assignment_rec.project_title;
3730 if nvl(l_old_assignment_rec.project_title, hr_api.g_varchar2)
3731 <> nvl(l_db_assignment_rec.project_title, hr_api.g_varchar2)
3732 then
3733 others_changed:=TRUE;
3734 end if;
3735 else
3736 l_assignment_rec.project_title := p_project_title;
3737 if (nvl(p_project_title, -1) <>
3738 nvl(l_db_assignment_rec.project_title,-1))
3739 then
3740 i_changed:=TRUE;
3741 end if;
3742 end if;
3743
3744 if (p_source_type = hr_api.g_varchar2) then
3745 l_assignment_rec.source_type :=
3746 l_old_assignment_rec.source_type;
3747 if nvl(l_old_assignment_rec.source_type, hr_api.g_varchar2)
3748 <> nvl(l_db_assignment_rec.source_type, hr_api.g_varchar2)
3749 then
3750 others_changed:=TRUE;
3751 end if;
3752 else
3753 l_assignment_rec.source_type := p_source_type;
3754 if (nvl(p_source_type, -1) <>
3755 nvl(l_db_assignment_rec.source_type,-1))
3756 then
3757 i_changed:=TRUE;
3758 end if;
3759 end if;
3760
3761 if (p_vendor_assignment_number = hr_api.g_varchar2) then
3762 l_assignment_rec.vendor_assignment_number :=
3763 l_old_assignment_rec.vendor_assignment_number;
3764 if nvl(l_old_assignment_rec.vendor_assignment_number, hr_api.g_varchar2)
3765 <> nvl(l_db_assignment_rec.vendor_assignment_number, hr_api.g_varchar2)
3766 then
3767 others_changed:=TRUE;
3768 end if;
3769 else
3770 l_assignment_rec.vendor_assignment_number := p_vendor_assignment_number;
3771 if (nvl(p_vendor_assignment_number, -1) <>
3772 nvl(l_db_assignment_rec.vendor_assignment_number,-1))
3773 then
3774 i_changed:=TRUE;
3775 end if;
3776 end if;
3777
3778 if (p_vendor_employee_number = hr_api.g_varchar2) then
3779 l_assignment_rec.vendor_employee_number :=
3780 l_old_assignment_rec.vendor_employee_number;
3781 if nvl(l_old_assignment_rec.vendor_employee_number, hr_api.g_varchar2)
3782 <> nvl(l_db_assignment_rec.vendor_employee_number, hr_api.g_varchar2)
3783 then
3784 others_changed:=TRUE;
3785 end if;
3786 else
3787 l_assignment_rec.vendor_employee_number := p_vendor_employee_number;
3788 if (nvl(p_vendor_employee_number, -1) <>
3789 nvl(l_db_assignment_rec.vendor_employee_number,-1))
3790 then
3791 i_changed:=TRUE;
3792 end if;
3793 end if;
3794
3795 if (p_default_code_comb_id = hr_api.g_number) then
3796 l_assignment_rec.default_code_comb_id :=
3797 l_old_assignment_rec.default_code_comb_id;
3798 if nvl(l_old_assignment_rec.default_code_comb_id, hr_api.g_number)
3799 <> nvl(l_db_assignment_rec.default_code_comb_id, hr_api.g_number)
3800 then
3801 others_changed:=TRUE;
3802 end if;
3803 else
3804 l_assignment_rec.default_code_comb_id := p_default_code_comb_id;
3805 if (nvl(p_default_code_comb_id, -1) <>
3806 nvl(l_db_assignment_rec.default_code_comb_id,-1))
3807 then
3808 i_changed:=TRUE;
3809 end if;
3810 end if;
3811
3812 if (p_set_of_books_id = hr_api.g_number) then
3813 l_assignment_rec.set_of_books_id :=
3814 l_old_assignment_rec.set_of_books_id;
3815 if nvl(l_old_assignment_rec.set_of_books_id, hr_api.g_number)
3816 <> nvl(l_db_assignment_rec.set_of_books_id, hr_api.g_number)
3817 then
3818 others_changed:=TRUE;
3819 end if;
3820 else
3821 l_assignment_rec.set_of_books_id := p_set_of_books_id;
3822 if (nvl(p_set_of_books_id, -1) <>
3823 nvl(l_db_assignment_rec.set_of_books_id,-1))
3824 then
3825 i_changed:=TRUE;
3826 end if;
3827 end if;
3828
3829 if (p_vendor_id = hr_api.g_number) then
3830 l_assignment_rec.vendor_id :=
3831 l_old_assignment_rec.vendor_id;
3832 if nvl(l_old_assignment_rec.vendor_id, hr_api.g_number)
3833 <> nvl(l_db_assignment_rec.vendor_id, hr_api.g_number)
3834 then
3835 others_changed:=TRUE;
3836 end if;
3837 else
3838 l_assignment_rec.vendor_id := p_vendor_id;
3839 if (nvl(p_vendor_id, -1) <>
3840 nvl(l_db_assignment_rec.vendor_id,-1))
3841 then
3842 i_changed:=TRUE;
3843 end if;
3844 end if;
3845
3846
3847 if (p_po_header_id = hr_api.g_number) then
3848 l_assignment_rec.po_header_id :=
3849 l_old_assignment_rec.po_header_id;
3850 if nvl(l_old_assignment_rec.po_header_id, hr_api.g_number)
3851 <> nvl(l_db_assignment_rec.po_header_id, hr_api.g_number)
3852 then
3853 others_changed:=TRUE;
3854 end if;
3855 else
3856 l_assignment_rec.po_header_id := p_po_header_id;
3857 if (nvl(p_po_header_id, -1) <>
3858 nvl(l_db_assignment_rec.po_header_id,-1))
3859 then
3860 i_changed:=TRUE;
3861 end if;
3862 end if;
3863
3864 if (p_po_line_id = hr_api.g_number) then
3865 l_assignment_rec.po_line_id :=
3866 l_old_assignment_rec.po_line_id;
3867 if nvl(l_old_assignment_rec.po_line_id, hr_api.g_number)
3868 <> nvl(l_db_assignment_rec.po_line_id, hr_api.g_number)
3869 then
3870 others_changed:=TRUE;
3871 end if;
3872 else
3873 l_assignment_rec.po_line_id := p_po_line_id;
3874 if (nvl(p_po_line_id, -1) <>
3875 nvl(l_db_assignment_rec.po_line_id,-1))
3876 then
3877 i_changed:=TRUE;
3878 end if;
3879 end if;
3880
3881 if (p_vendor_site_id = hr_api.g_number) then
3882 l_assignment_rec.vendor_site_id :=
3883 l_old_assignment_rec.vendor_site_id;
3884 if nvl(l_old_assignment_rec.vendor_site_id, hr_api.g_number)
3885 <> nvl(l_db_assignment_rec.vendor_site_id, hr_api.g_number)
3886 then
3887 others_changed:=TRUE;
3888 end if;
3889 else
3890 l_assignment_rec.vendor_site_id := p_vendor_site_id;
3891 if (nvl(p_vendor_site_id, -1) <>
3892 nvl(l_db_assignment_rec.vendor_site_id,-1))
3893 then
3894 i_changed:=TRUE;
3895 end if;
3896 end if;
3897
3898
3899 if (p_proj_asgn_end = g_canonical_date) then
3900 l_assignment_rec.projected_assignment_end :=
3901 l_old_assignment_rec.projected_assignment_end;
3902 if (nvl(l_db_assignment_rec.projected_assignment_end, g_canonical_date)
3903 <>
3904 nvl(l_old_assignment_rec.projected_assignment_end, g_canonical_date))
3905 then
3906 others_changed:=TRUE;
3907 end if;
3908 else
3909 l_assignment_rec.projected_assignment_end :=
3910 p_proj_asgn_end;
3911 if (nvl(p_proj_asgn_end,g_canonical_date) <>
3912 nvl(l_db_assignment_rec.projected_assignment_end,g_canonical_date))
3913 then
3914 i_changed:=TRUE;
3915 end if;
3916 end if;
3917
3918 -- the following 2 fields are planed for sshr 5.2.
3919 -- We will enable it later.
3920
3921 -- GSP change
3922 if (p_grade_ladder_pgm_id = hr_api.g_number) then
3923 l_assignment_rec.grade_ladder_pgm_id :=
3924 l_old_assignment_rec.grade_ladder_pgm_id;
3925 if nvl(l_old_assignment_rec.grade_ladder_pgm_id, hr_api.g_number)
3926 <> nvl(l_db_assignment_rec.grade_ladder_pgm_id, hr_api.g_number)
3927 then
3928 --lb_grade_ladder_changed := true;
3929 others_changed:=TRUE;
3930 end if;
3931 else
3932 l_assignment_rec.grade_ladder_pgm_id := p_grade_ladder_pgm_id;
3933 if (nvl(p_grade_ladder_pgm_id, -1) <>
3934 nvl(l_db_assignment_rec.grade_ladder_pgm_id,-1))
3935 then
3936 --lb_grade_ladder_changed := true;
3937 i_changed:=TRUE;
3938 end if;
3939 end if;
3940 --End of GSP change
3941
3942 --if (p_supervisor_assignment_id = hr_api.g_number) then
3943 -- l_assignment_rec.supervisor_assignment_id :=
3944 -- l_old_assignment_rec.supervisor_assignment_id;
3945 -- if nvl(l_old_assignment_rec.supervisor_assignment_id, hr_api.g_number)
3946 -- <> nvl(l_db_assignment_rec.supervisor_assignment_id, hr_api.g_number)
3947 -- then
3948 -- others_changed:=TRUE;
3949 -- end if;
3950 --else
3951 -- l_assignment_rec.supervisor_assignment_id := p_supervisor_assignment_id;
3952 -- if (nvl(p_supervisor_assignment_id, -1) <>
3953 -- nvl(l_db_assignment_rec.supervisor_assignment_id,-1))
3954 -- then
3955 -- i_changed:=TRUE;
3956 -- end if;
3957 --end if;
3958
3959 if (p_assignment_type = hr_api.g_varchar2) then
3960 l_assignment_rec.assignment_type :=
3961 l_old_assignment_rec.assignment_type;
3962 if nvl(l_old_assignment_rec.assignment_type, hr_api.g_varchar2)
3963 <> nvl(l_db_assignment_rec.assignment_type, hr_api.g_varchar2)
3964 then
3965 others_changed:=TRUE;
3966 end if;
3967 else
3968 l_assignment_rec.assignment_type := p_assignment_type;
3969 if (nvl(p_assignment_type, -1) <>
3970 nvl(l_db_assignment_rec.assignment_type,-1))
3971 then
3972 i_changed:=TRUE;
3973 end if;
3974 end if;
3975
3976 if (p_perf_review_period = hr_api.g_number) then
3977 l_assignment_rec.perf_review_period :=
3978 l_old_assignment_rec.perf_review_period;
3979 if nvl(l_old_assignment_rec.perf_review_period, hr_api.g_number)
3980 <> nvl(l_db_assignment_rec.perf_review_period, hr_api.g_number)
3981 then
3982 others_changed:=TRUE;
3983 end if;
3984 else
3985 l_assignment_rec.perf_review_period := p_perf_review_period;
3986 if (nvl(p_perf_review_period, -1) <>
3987 nvl(l_db_assignment_rec.perf_review_period,-1))
3988 then
3989 i_changed:=TRUE;
3990 end if;
3991 end if;
3992
3993 if (p_perf_review_period_frequency = hr_api.g_varchar2) then
3994 l_assignment_rec.perf_review_period_frequency :=
3995 l_old_assignment_rec.perf_review_period_frequency;
3996 if (nvl(l_db_assignment_rec.perf_review_period_frequency, hr_api.g_varchar2)
3997 <>
3998 nvl(l_old_assignment_rec.perf_review_period_frequency, hr_api.g_varchar2))
3999 then
4000 others_changed:=TRUE;
4001 end if;
4002 else
4003 l_assignment_rec.perf_review_period_frequency :=
4004 p_perf_review_period_frequency;
4005 if (nvl(p_perf_review_period_frequency, hr_api.g_varchar2) <>
4006 nvl(l_db_assignment_rec.perf_review_period_frequency, hr_api.g_varchar2))
4007 then
4008 i_changed:=TRUE;
4009 end if;
4010 end if;
4011
4012 if (p_internal_address_line = hr_api.g_varchar2) then
4013 l_assignment_rec.internal_address_line :=
4014 l_old_assignment_rec.internal_address_line;
4015 if (nvl(l_db_assignment_rec.internal_address_line, hr_api.g_varchar2)
4016 <>
4017 nvl(l_old_assignment_rec.internal_address_line, hr_api.g_varchar2))
4018 then
4019 others_changed:=TRUE;
4020 end if;
4021 else
4022 l_assignment_rec.internal_address_line :=
4023 p_internal_address_line;
4024 if (nvl(p_internal_address_line, hr_api.g_varchar2) <>
4025 nvl(l_db_assignment_rec.internal_address_line, hr_api.g_varchar2))
4026 then
4027 i_changed:=TRUE;
4028 end if;
4029 end if;
4030
4031 if (p_payroll_id = hr_api.g_number) then
4032 l_assignment_rec.payroll_id :=
4033 l_old_assignment_rec.payroll_id;
4034 if nvl(l_old_assignment_rec.payroll_id, hr_api.g_number)
4035 <> nvl(l_db_assignment_rec.payroll_id, hr_api.g_number)
4036 then
4037 others_changed:=TRUE;
4038 end if;
4039 else
4040 l_assignment_rec.payroll_id := p_payroll_id;
4041 if (nvl(p_payroll_id, -1) <> nvl(l_db_assignment_rec.payroll_id,-1))
4042 then
4043 i_changed:=TRUE;
4044 end if;
4045 end if;
4046
4047 -- 04/12/02 Salary Basis Enhancement Change Begins
4048 -- IF payroll is installed and the payroll_id is null, we need to issue an
4049 -- error message when a salary basis is changed because we cannot derive the
4050 -- mid pay period which needs the payroll_id to access the per_time_periods
4051 -- table.
4052 l_legislation_code := hr_misc_web.get_legislation_code
4053 (p_assignment_id => l_assignment_id);
4054
4055 if (p_pay_basis_id = hr_api.g_number) then
4056 l_assignment_rec.pay_basis_id :=
4057 l_old_assignment_rec.pay_basis_id;
4058 if nvl(l_old_assignment_rec.pay_basis_id, hr_api.g_number)
4059 <> nvl(l_db_assignment_rec.pay_basis_id, hr_api.g_number)
4060 then
4061 -- 05/14/02 - Bug 2374140 Fix Begins
4062 -- Removed the code to set the WF item attribute HR_MID_PAY_PERIOD_CHANGE
4063 -- here. Instead, we'll set it in the Approvals process when a trans
4064 -- is submitted.
4065 -- The reason is that if we set it here, in a Save For Later transaction
4066 -- where the user stopped at the Pay Rate page and change the effective
4067 -- date on re-entry of the SFL transaction, this item attribute will not
4068 -- be reset because the Assignment page will not be relaunched. Only the
4069 -- Pay Rate page will be relaunched. Yet, we cannot set it in the
4070 -- Pay Rate page because if there is any module comes after Pay Rate
4071 -- in the chained process, this same problem will occur in a SFL if the
4072 -- user last stopped at the page which comes after Pay Rate and changes
4073 -- the effective date on a reentry of the SFL transaction.
4074
4075 others_changed:=TRUE;
4076 end if;
4077 else
4078 l_assignment_rec.pay_basis_id := p_pay_basis_id;
4079 if (nvl(p_pay_basis_id, -1) <> nvl(l_db_assignment_rec.pay_basis_id,-1))
4080 then
4081 -- 05/14/02 - Bug 2374140 Fix Begins
4082 -- Removed the code to set the WF item attribute HR_MID_PAY_PERIOD_CHANGE
4083 -- here. Instead, we'll set it in the Approvals process when a trans
4084 -- is submitted.
4085 -- The reason is that if we set it here, in a Save For Later transaction
4086 -- where the user stopped at the Pay Rate page and change the effective
4087 -- date on re-entry of the SFL transaction, this item attribute will not
4088 -- be reset because the Assignment page will not be relaunched. Only the
4089 -- Pay Rate page will be relaunched. Yet, we cannot set it in the
4090 -- Pay Rate page because if there is any module comes after Pay Rate
4091 -- in the chained process, this same problem will occur in a SFL if the
4092 -- user last stopped at the page which comes after Pay Rate and changes
4093 -- the effective date on a reentry of the SFL transaction.
4094
4095 i_changed:=TRUE;
4096 end if;
4097
4098 -- 05/14/02 - Bug 2374140 Fix Ends
4099 end if;
4100
4101
4102 if (p_contract_id = hr_api.g_number) then
4103 l_assignment_rec.contract_id :=
4104 l_old_assignment_rec.contract_id;
4105 if nvl(l_old_assignment_rec.contract_id, hr_api.g_number)
4106 <> nvl(l_db_assignment_rec.contract_id, hr_api.g_number)
4107 then
4108 others_changed:=TRUE;
4109 end if;
4110 else
4111 l_assignment_rec.contract_id := p_contract_id;
4112 if (nvl(p_contract_id, -1) <> nvl(l_db_assignment_rec.contract_id,-1))
4113 then
4114 i_changed:=TRUE;
4115 end if;
4116 end if;
4117
4118 if (p_establishment_id = hr_api.g_number) then
4119 l_assignment_rec.establishment_id :=
4120 l_old_assignment_rec.establishment_id;
4121 if nvl(l_old_assignment_rec.establishment_id, hr_api.g_number)
4122 <> nvl(l_db_assignment_rec.establishment_id, hr_api.g_number)
4123 then
4124 others_changed:=TRUE;
4125 end if;
4126 else
4127 l_assignment_rec.establishment_id := p_establishment_id;
4128 if (nvl(p_establishment_id, -1) <>
4129 nvl(l_db_assignment_rec.establishment_id,-1))
4130 then
4131 i_changed:=TRUE;
4132 end if;
4133 end if;
4134
4135 if (p_cagr_grade_def_id = hr_api.g_number) then
4136 l_assignment_rec.cagr_grade_def_id :=
4137 l_old_assignment_rec.cagr_grade_def_id;
4138 if nvl(l_old_assignment_rec.cagr_grade_def_id, hr_api.g_number)
4139 <> nvl(l_db_assignment_rec.cagr_grade_def_id, hr_api.g_number)
4140 then
4141 others_changed:=TRUE;
4142 end if;
4143 else
4144 l_assignment_rec.cagr_grade_def_id := p_cagr_grade_def_id;
4145 if (nvl(p_cagr_grade_def_id, -1) <>
4146 nvl(l_db_assignment_rec.cagr_grade_def_id,-1))
4147 then
4148 i_changed:=TRUE;
4149 end if;
4150 end if;
4151
4152 if (p_cagr_id_flex_num = hr_api.g_number) then
4153 l_assignment_rec.cagr_id_flex_num :=
4154 l_old_assignment_rec.cagr_id_flex_num;
4155 if nvl(l_old_assignment_rec.cagr_id_flex_num, hr_api.g_number)
4156 <> nvl(l_db_assignment_rec.cagr_id_flex_num, hr_api.g_number)
4157 then
4158 others_changed:=TRUE;
4159 end if;
4160 else
4161 l_assignment_rec.cagr_id_flex_num := p_cagr_id_flex_num;
4162 if (nvl(p_cagr_id_flex_num, -1) <>
4163 nvl(l_db_assignment_rec.cagr_id_flex_num,-1))
4164 then
4165 i_changed:=TRUE;
4166 end if;
4167 end if;
4168
4169 if (p_collective_agreement_id = hr_api.g_number) then
4170 l_assignment_rec.collective_agreement_id :=
4171 l_old_assignment_rec.collective_agreement_id;
4172 if nvl(l_old_assignment_rec.collective_agreement_id, hr_api.g_number)
4173 <> nvl(l_db_assignment_rec.collective_agreement_id, hr_api.g_number)
4174 then
4175 others_changed:=TRUE;
4176 end if;
4177 else
4178 l_assignment_rec.collective_agreement_id := p_collective_agreement_id;
4179 if (nvl(p_collective_agreement_id, -1) <>
4180 nvl(l_db_assignment_rec.collective_agreement_id,-1))
4181 then
4182 i_changed:=TRUE;
4183 end if;
4184 end if;
4185
4186
4187 if ( p_hrs_last_date= hr_api.g_varchar2) then
4188 l_hrs_last_date :=
4189 null;
4190 else
4191 l_hrs_last_date := p_hrs_last_date;
4192 end if;
4193 if ( p_display_pos= hr_api.g_varchar2) then
4194 l_display_pos :=
4195 null;
4196 else
4197 l_display_pos := p_display_pos;
4198 end if;
4199
4200 if ( p_display_org= hr_api.g_varchar2) then
4201 l_display_org :=
4202 null;
4203 else
4204 l_display_org := p_display_org;
4205 end if;
4206 if ( p_display_ass_status= hr_api.g_varchar2) then
4207 l_display_ass_status :=
4208 null;
4209 else
4210 l_display_ass_status := p_display_ass_status;
4211 end if;
4212 if ( p_display_job= hr_api.g_varchar2) then
4213 l_display_job :=
4214 null;
4215 else
4216 l_display_job := p_display_job;
4217 end if;
4218 -- Bug #1067636 fix begins
4219 if ( p_display_grade = hr_api.g_varchar2) then
4220 l_display_grade :=
4221 null;
4222 else
4223 l_display_grade := p_display_grade;
4224 end if;
4225 -- Bug #1067636 fix ends
4226
4227 -- Bug #1004255 fix
4228 if ( p_grade_lov = hr_api.g_varchar2) then
4229 l_grade_lov := null;
4230 else
4231 l_grade_lov := p_grade_lov;
4232 end if;
4233
4234 if ( p_approver_id= hr_api.g_number) then
4235 l_approver_id :=
4236 null;
4237 else
4238 l_approver_id := p_approver_id;
4239 end if;
4240
4241 -- This is added for registration to support the Browser Back issues which was prohibiting the
4242 -- commit to the transaction tables if the data is not changed and in turn was not letting the
4243 -- rollback call to execute .
4244
4245 if p_flow_mode is not null and
4246 p_flow_mode = hr_process_assignment_ss.g_new_hire_registration
4247 then
4248 i_changed := TRUE;
4249 end if;
4250 -- Code end for registration.
4251
4252 if i_changed or others_changed
4253 then
4254 if p_save_mode <> 'SAVE_FOR_LATER' then
4255 --
4256 -- To support applicant hire in New Hire process, we need to convert the applicant
4257 -- to employee then update the assignment and rollback the employee to applicant
4258
4259 if(l_db_assignment_rec.assignment_type = 'A') then
4260 g_applicant_hire := true;
4261 -- first get the object_version_number for the applicant from
4262 -- per_all_people_f
4263 open per_applicant_rec(l_old_assignment_rec.person_id, l_effective_date);
4264 fetch per_applicant_rec into l_per_object_version_number;
4265 close per_applicant_rec;
4266
4267 SAVEPOINT applicant_hire;
4268
4269 -- get the employee number from Basic Details Step
4270 /*hr_person_info_util_ss.get_trns_employee_number(
4271 p_item_type => p_item_type
4272 ,p_item_key => p_item_key
4273 ,p_employee_number => l_employee_number);
4274
4275 --call the hr_applicant_api.hire_applicant
4276 hr_applicant_api.hire_applicant(
4277 p_validate => false
4278 ,p_hire_date => l_effective_date
4279 ,p_person_id => l_db_assignment_rec.person_id
4280 ,p_per_object_version_number => l_per_object_version_number
4281 ,p_assignment_id => l_db_assignment_rec.assignment_id
4282 ,p_employee_number => l_employee_number
4283 ,p_per_effective_start_date => l_per_effective_start_date
4284 ,p_per_effective_end_date => l_per_effective_end_date
4285 ,p_unaccepted_asg_del_warning => l_unaccepted_asg_del_warning
4286 ,p_assign_payroll_warning => l_assign_payroll_warning);*/
4287
4288 -- Also we need to call the Primay Address Step as the primary address needs to be
4289 -- created for the applicant, incase payroll is entered
4290 -- we need to call the HR_PROCESS_PERSON_SS.PROCESS_API
4291 -- to update the person's info first
4292 -- before update the assignment. Such as birthday is required for
4293 -- payroll.
4294 hr_new_user_reg_ss.process_selected_transaction(p_item_type => l_item_type,
4295 p_item_key => l_item_key
4296 ,p_api_name => 'HR_PROCESS_PERSON_SS.PROCESS_API');
4297 hr_new_user_reg_ss.process_selected_transaction(p_item_type => l_item_type,
4298 p_item_key => l_item_key
4299 ,p_api_name => 'HR_PROCESS_ADDRESS_SS.PROCESS_API');
4300
4301 -- Need to use the latest object version number and also assginment_status_type_id
4302 -- before calling the update_assignment as the above api call will change the object
4303 -- version number and update the assignment record in correction mode
4304 -- first get the object_version_number for the applicant from
4305 -- per_all_assignments_f
4306 open asg_applicant_rec(l_assignment_id, l_effective_date);
4307 fetch asg_applicant_rec into l_object_version_number
4308 ,l_assignment_rec.assignment_status_type_id;
4309 close asg_applicant_rec;
4310
4311 l_datetrack_update_mode := 'CORRECTION';
4312
4313 end if;
4314
4315 --
4316 -- the data has changed, so we call the api --
4317 --
4318 --update_assignment will check default gre when l_new_hire_appl_hire is 'Y'
4319 if p_flow_mode is not null or g_applicant_hire then
4320 l_new_hire_appl_hire := 'Y';
4321 else
4322 l_new_hire_appl_hire := 'N';
4323 end if;
4324
4325 -- GSP Support code
4326 -- check whether grade/step/ got changed based on Grade Ladder setup,
4327 -- then only I need to store Pay Rate Txn data
4328 hr_pay_rate_gsp_ss.check_grade_ladder_exists(
4329 p_business_group_id => l_assignment_rec.organization_id,
4330 p_effective_date => l_effective_date,
4331 p_grd_ldr_exists_flag => lb_grd_ldr_exists_flag);
4332
4333 if(lb_grd_ldr_exists_flag) then
4334 -- and (lb_special_ceiling_step_id_chg or lb_grade_changed) ) then
4335
4336 -- check whether grade ladder won't allow salary update
4337 open lc_sal_updateable_grade_ladder(p_grade_ladder_id =>
4338 l_assignment_rec.grade_ladder_pgm_id,
4339 p_effective_date => l_effective_date
4340 );
4341 fetch lc_sal_updateable_grade_ladder into lc_temp_grade_ladder_id, lc_temp_upd_sal_cd;
4342 if (lc_sal_updateable_grade_ladder%FOUND) THEN
4343 -- initializing local salary data table type to pass to store into txn
4344 ltt_salary_data := sshr_sal_prop_tab_typ(sshr_sal_prop_obj_typ(
4345 null,-- pay_proposal_id NUMBER,
4346 l_assignment_id,-- assignment_id NUMBER,
4347 l_assignment_rec.business_group_id,--business_group_id NUMBER,
4348 l_effective_date,--effective_date DATE,
4349 null,--comments VARCHAR2(2000),
4350 null,--next_sal_review_date DATE,
4351 null,--salary_change_amount NUMBER ,
4352 null,--salary_change_percent NUMBER ,
4353 null,--annual_change NUMBER ,
4354 null,--proposed_salary NUMBER ,
4355 null,--proposed_percent NUMBER ,
4356 null,--proposal_reason VARCHAR2(30),
4357 null,--ranking NUMBER,
4358 null,--current_salary NUMBER,
4359 null,--performance_review_id NUMBER,
4360 null,--multiple_components VARCHAR2(1),
4361 null,--element_entry_id NUMBER ,
4362 null,--selection_mode VARCHAR2(1),
4363 null,--ovn NUMBER,
4364 null,--currency VARCHAR2(15),
4365 null,--pay_basis_name VARCHAR2(80),
4366 null,--annual_equivalent NUMBER ,
4367 null,--total_percent NUMBER ,
4368 null,--quartile NUMBER ,
4369 null,--comparatio NUMBER ,
4370 null,--lv_selection_mode VARCHAR2(1),
4371 null,--attribute_category VARCHAR2(150),
4372 null,--attribute1 VARCHAR2(150),
4373 null,--attribute2 VARCHAR2(150),
4374 null,--attribute3 VARCHAR2(150),
4375 null,--attribute4 VARCHAR2(150),
4376 null,--attribute5 VARCHAR2(150),
4377 null,--attribute6 VARCHAR2(150),
4378 null,--attribute7 VARCHAR2(150),
4379 null,--attribute8 VARCHAR2(150),
4380 null,--attribute9 VARCHAR2(150),
4381 null,--attribute10 VARCHAR2(150),
4382 null,--attribute11 VARCHAR2(150),
4383 null,--attribute12 VARCHAR2(150),
4384 null,--attribute13 VARCHAR2(150),
4385 null,--attribute14 VARCHAR2(150),
4386 null,--attribute15 VARCHAR2(150),
4387 null,--attribute16 VARCHAR2(150),
4388 null,--attribute17 VARCHAR2(150),
4389 null,--attribute18 VARCHAR2(150),
4390 null,--attribute19 VARCHAR2(150),
4391 null,--attribute20 VARCHAR2(150),
4392 null, --no_of_components NUMBER,
4393 -- 04/12/02 Salary Basis Enhancement Begins
4394 null, -- salary_basis_change_type varchar2(30)
4395 null, -- default_date date
4396 null, -- default_bg_id number
4397 null, -- default_currency VARCHAR2(15)
4398 null, -- default_format_string VARCHAR2(40)
4399 null, -- default_salary_basis_name varchar2(30)
4400 null, -- default_pay_basis_name varchar2(80)
4401 null, -- default_pay_basis varchar2(30)
4402 null, -- default_pay_annual_factor number
4403 null, -- default_grade VARCHAR2(240)
4404 null, -- default_grade_annual_factor number
4405 null, -- default_minimum_salary number
4406 null, -- default_maximum_salary number
4407 null, -- default_midpoint_salary number
4408 null, -- default_prev_salary number
4409 null, -- default_last_change_date date
4410 null, -- default_element_entry_id number
4411 null, -- default_basis_changed number
4412 null, -- default_uom VARCHAR2(30)
4413 null, -- default_grade_uom VARCHAR2(30)
4414 null, -- default_change_amount number
4415 null, -- default_change_percent number
4416 null, -- default_quartile number
4417 null, -- default_comparatio number
4418 null, -- default_last_pay_change varchar2(200)
4419 null, -- default_flsa_status varchar2(80)
4420 null, -- default_currency_symbol varchar2(4)
4421 null, -- default_precision number
4422 -- 04/12/02 Salary Basis Enhancement Ends
4423 -- GSP
4424 null, -- salary_effective_date date
4425 null, -- gsp_dummy_txn varchar2(30)
4426 -- End of GSP
4427 null,
4428 null,
4429 null,
4430 null,
4431 null
4432 ));
4433 -- store the current salary in the ltt_salary_data
4434 hr_pay_rate_gsp_ss.get_employee_current_salary(
4435 p_assignment_id => l_assignment_id,
4436 P_effective_date => l_effective_date,
4437 p_ltt_salary_data => ltt_salary_data);
4438 -- In case of SFL for new hire, we are getting new salary
4439 -- so we are setting current salary to zero
4440 if p_flow_mode is not null and
4441 p_flow_mode = hr_process_assignment_ss.g_new_hire_registration
4442 then
4443 ltt_salary_data(1).current_salary := 0;
4444 end if;
4445 -- end of fix
4446 end if;
4447 close lc_sal_updateable_grade_ladder;
4448 end if;
4449 -- End of GSP support change
4450
4451
4452 update_assignment
4453 (p_validate => true
4454 ,p_login_person_id => p_login_person_id
4455 ,p_new_hire_appl_hire => l_new_hire_appl_hire
4456 ,p_assignment_id => l_assignment_id
4457 ,p_object_version_number => l_object_version_number
4458 ,p_effective_date => l_effective_date
4459 ,p_datetrack_update_mode => l_datetrack_update_mode
4460 ,p_organization_id => l_assignment_rec.organization_id
4461 ,p_position_id => l_assignment_rec.position_id
4462 ,p_job_id => l_assignment_rec.job_id
4463 ,p_grade_id => l_assignment_rec.grade_id
4464 ,p_location_id => l_assignment_rec.location_id
4465 ,p_employment_category => l_assignment_rec.employment_category
4466 ,p_supervisor_id => l_assignment_rec.supervisor_id
4467 ,p_manager_flag => l_assignment_rec.manager_flag
4468 ,p_frequency => l_assignment_rec.frequency
4469 ,p_normal_hours => l_assignment_rec.normal_hours
4470 ,p_time_normal_finish => l_assignment_rec.time_normal_finish
4471 ,p_time_normal_start => l_assignment_rec.time_normal_start
4472 ,p_bargaining_unit_code => l_assignment_rec.bargaining_unit_code
4473 ,p_labour_union_member_flag => l_assignment_rec.labour_union_member_flag
4474 ,p_assignment_status_type_id=> l_assignment_rec.assignment_status_type_id
4475 ,p_change_reason => l_assignment_rec.change_reason
4476 ,p_special_ceiling_step_id => l_assignment_rec.special_ceiling_step_id
4477 ,p_ass_attribute_category => l_assignment_rec.ass_attribute_category
4478 ,p_ass_attribute1 => l_assignment_rec.ass_attribute1
4479 ,p_ass_attribute2 => l_assignment_rec.ass_attribute2
4480 ,p_ass_attribute3 => l_assignment_rec.ass_attribute3
4481 ,p_ass_attribute4 => l_assignment_rec.ass_attribute4
4482 ,p_ass_attribute5 => l_assignment_rec.ass_attribute5
4483 ,p_ass_attribute6 => l_assignment_rec.ass_attribute6
4484 ,p_ass_attribute7 => l_assignment_rec.ass_attribute7
4485 ,p_ass_attribute8 => l_assignment_rec.ass_attribute8
4486 ,p_ass_attribute9 => l_assignment_rec.ass_attribute9
4487 ,p_ass_attribute10 => l_assignment_rec.ass_attribute10
4488 ,p_ass_attribute11 => l_assignment_rec.ass_attribute11
4489 ,p_ass_attribute12 => l_assignment_rec.ass_attribute12
4490 ,p_ass_attribute13 => l_assignment_rec.ass_attribute13
4491 ,p_ass_attribute14 => l_assignment_rec.ass_attribute14
4492 ,p_ass_attribute15 => l_assignment_rec.ass_attribute15
4493 ,p_ass_attribute16 => l_assignment_rec.ass_attribute16
4494 ,p_ass_attribute17 => l_assignment_rec.ass_attribute17
4495 ,p_ass_attribute18 => l_assignment_rec.ass_attribute18
4496 ,p_ass_attribute19 => l_assignment_rec.ass_attribute19
4497 ,p_ass_attribute20 => l_assignment_rec.ass_attribute20
4498 ,p_ass_attribute21 => l_assignment_rec.ass_attribute21
4499 ,p_ass_attribute22 => l_assignment_rec.ass_attribute22
4500 ,p_ass_attribute23 => l_assignment_rec.ass_attribute23
4501 ,p_ass_attribute24 => l_assignment_rec.ass_attribute24
4502 ,p_ass_attribute25 => l_assignment_rec.ass_attribute25
4503 ,p_ass_attribute26 => l_assignment_rec.ass_attribute26
4504 ,p_ass_attribute27 => l_assignment_rec.ass_attribute27
4505 ,p_ass_attribute28 => l_assignment_rec.ass_attribute28
4506 ,p_ass_attribute29 => l_assignment_rec.ass_attribute29
4507 ,p_ass_attribute30 => l_assignment_rec.ass_attribute30
4508 ,p_soft_coding_keyflex_id => l_assignment_rec.soft_coding_keyflex_id
4509 ,p_people_group_id => l_assignment_rec.people_group_id
4510 ,p_contract_id => l_assignment_rec.contract_id
4511 ,p_establishment_id => l_assignment_rec.establishment_id
4512 ,p_cagr_grade_def_id => l_assignment_rec.cagr_grade_def_id
4513 ,p_collective_agreement_id => l_assignment_rec.collective_agreement_id
4514 ,p_cagr_id_flex_num => l_assignment_rec.cagr_id_flex_num
4515 ,p_payroll_id => l_assignment_rec.payroll_id
4516 ,p_pay_basis_id => l_assignment_rec.pay_basis_id
4517 ,p_sal_review_period => l_assignment_rec.sal_review_period
4518 ,p_sal_review_period_frequency => l_assignment_rec.sal_review_period_frequency
4519 ,p_date_probation_end => l_assignment_rec.date_probation_end
4520 ,p_probation_period => l_assignment_rec.probation_period
4521 ,p_probation_unit => l_assignment_rec.probation_unit
4522 ,p_notice_period => l_assignment_rec.notice_period
4523 ,p_notice_period_uom => l_assignment_rec.notice_period_uom
4524 ,p_employee_category => l_assignment_rec.employee_category
4525 ,p_work_at_home => l_assignment_rec.work_at_home
4526 ,p_job_post_source_name => l_assignment_rec.job_post_source_name
4527 ,p_perf_review_period => l_assignment_rec.perf_review_period
4528 ,p_perf_review_period_frequency => l_assignment_rec.perf_review_period_frequency
4529 ,p_internal_address_line => l_assignment_rec.internal_address_line
4530 ,p_business_group_id => l_assignment_rec.business_group_id
4531 -- GSP change
4532 ,p_grade_ladder_pgm_id => l_assignment_rec.grade_ladder_pgm_id
4533 -- End of GSP change
4534 ,p_assignment_type => l_assignment_rec.assignment_type
4535 --,p_supervisor_assignment_id => l_assignment_rec.supervisor_assignment_id
4536 ,p_vacancy_id => l_assignment_rec.vacancy_id
4537 ,p_primary_flag => l_assignment_rec.primary_flag
4538 ,p_person_id => l_assignment_rec.person_id
4539 ,p_default_code_comb_id => l_assignment_rec.default_code_comb_id
4540 ,p_project_title => l_assignment_rec.project_title
4541 ,p_set_of_books_id => l_assignment_rec.set_of_books_id
4542 ,p_source_type => l_assignment_rec.source_type
4543 ,p_title => l_assignment_rec.title
4544 ,p_vendor_assignment_number => l_assignment_rec.vendor_assignment_number
4545 ,p_vendor_employee_number => l_assignment_rec.vendor_employee_number
4546 ,p_vendor_id => l_assignment_rec.vendor_id
4547 ,p_effective_start_date => l_effective_start_date
4548 ,p_effective_end_date => l_effective_end_date
4549 ,p_element_warning => l_element_warning
4550 ,p_element_changed => l_element_changed
4551 ,p_email_id => l_email_id
4552 ,p_page_error => p_page_error
4553 ,p_page_error_msg => p_page_error_msg
4554 ,p_page_warning => p_page_warning
4555 ,p_page_warning_msg => p_page_warning_msg
4556 ,p_organization_error => p_organization_error
4557 ,p_organization_error_msg => p_organization_error_msg
4558 ,p_job_error => p_job_error
4559 ,p_job_error_msg => p_job_error_msg
4560 ,p_position_error => p_position_error
4561 ,p_position_error_msg => p_position_error_msg
4562 ,p_grade_error => p_grade_error
4563 ,p_grade_error_msg => p_grade_error_msg
4564 ,p_supervisor_error => p_supervisor_error
4565 ,p_supervisor_error_msg => p_supervisor_error_msg
4566 ,p_location_error => p_location_error
4567 ,p_location_error_msg => p_location_error_msg
4568 -- GSP change
4569 ,p_ltt_salary_data => ltt_salary_data
4570 ,p_gsp_post_process_warning => p_gsp_post_process_warning
4571 -- End of GSP change
4572 ,p_po_header_id => p_po_header_id
4573 ,p_po_line_id => p_po_line_id
4574 ,p_vendor_site_id => p_vendor_site_id
4575 ,p_projected_asgn_end => p_proj_asgn_end
4576 );
4577
4578 p_element_changed:=l_element_changed;
4579
4580
4581
4582 else --end p_save_mode = 'SAVE_FOR_LATER'
4583 if(l_db_assignment_rec.assignment_type = 'A') then
4584 l_datetrack_update_mode := 'CORRECTION';
4585 end if;
4586 end if; --end p_save_mode <> 'SAVE_FOR_LATER'
4587 --
4588 -- if there were errors, handle them
4589 --
4590 --start registration
4591 -- This is to rollback the dummy person created during the process request phase of the assignment page
4592 -- the new user registration.
4593 if p_flow_mode is not null and
4594 p_flow_mode = hr_process_assignment_ss.g_new_hire_registration
4595 then
4596 rollback;
4597 end if;
4598 --end registration
4599 --
4600
4601 -- applicant_hire
4602 if (g_applicant_hire) then
4603 rollback to applicant_hire;
4604 end if;
4605
4606
4607 if NVL(p_element_changed,'X') <> 'W' OR
4608 p_save_mode = 'SAVE_FOR_LATER' then
4609 --
4610 -- no error or save for later, so save to transaction table
4611 --
4612 if l_transaction_step_id is null then
4613 --
4614 -- first of all check if this transaction is already in progress
4615 --
4616 l_transaction_id:=hr_transaction_ss.get_transaction_id
4617 (p_item_type => l_item_type
4618 ,p_item_key => l_item_key);
4619 --
4620 -- if the transaction is not already in progress, create a new one
4621 --
4622 if l_transaction_id is null then
4623 hr_transaction_ss.start_transaction
4624 (itemtype => l_item_type
4625 ,itemkey => l_item_key
4626 ,actid => l_activity_id
4627 ,funmode => 'RUN'
4628 ,p_login_person_id => p_login_person_id
4629 ,p_plan_id => p_plan_id
4630 ,p_rptg_grp_id => p_rptg_grp_id
4631 ,p_effective_date_option => p_effective_date_option
4632 ,result => l_result);
4633 --
4634 l_transaction_id:=hr_transaction_ss.get_transaction_id
4635 (p_item_type => l_item_type
4636 ,p_item_key => l_item_key);
4637 if l_transaction_id is null then
4638 fnd_message.set_name('PER', 'HR_CREATE_TRANSACTION_ID_ERR');
4639 hr_utility.raise_error;
4640 end if;
4641 end if;
4642 --
4643 -- create a transaction step
4644 --
4645 open process_order(l_item_type,l_item_key);
4646 fetch process_order into l_proc_order;
4647 if process_order%found then
4648 hr_transaction_api.create_trans_step
4649 (p_validate => false
4650 ,p_creator_person_id => p_login_person_id
4651 ,p_transaction_id => l_transaction_id
4652 ,p_api_name => g_api_name
4653 ,p_item_type => l_item_type
4654 ,p_item_key => l_item_key
4655 ,p_activity_id => l_activity_id
4656 ,p_transaction_step_id => l_transaction_step_id
4657 ,p_processing_order => l_proc_order - 1
4658 ,p_object_version_number => l_trns_object_version_number
4659 );
4660 else
4661 hr_transaction_api.create_transaction_step
4662 (p_validate => false
4663 ,p_creator_person_id => p_login_person_id
4664 ,p_transaction_id => l_transaction_id
4665 ,p_api_name => g_api_name
4666 ,p_item_type => l_item_type
4667 ,p_item_key => l_item_key
4668 ,p_activity_id => l_activity_id
4669 ,p_transaction_step_id => l_transaction_step_id
4670 ,p_object_version_number => l_trns_object_version_number
4671 );
4672 end if;
4673 close process_order;
4674 --
4675 end if;
4676 --p_transaction_step_id := to_char(l_transaction_step_id);
4677
4678 -- save the parameters to the temporary tables
4679 --
4680 l_count:=1;
4681 l_trans_tbl(l_count).param_name := 'P_ASSIGNMENT_ID';
4682 l_trans_tbl(l_count).param_value := l_assignment_id;
4683 l_trans_tbl(l_count).param_original_value := l_assignment_id; --ns
4684 l_trans_tbl(l_count).param_data_type := 'NUMBER';
4685 --
4686 l_count:=l_count+1;
4687 l_trans_tbl(l_count).param_name := 'P_OBJECT_VERSION_NUMBER';
4688 l_trans_tbl(l_count).param_value := p_object_version_number;
4689 l_trans_tbl(l_count).param_original_value := p_object_version_number; --ns
4690 l_trans_tbl(l_count).param_data_type := 'NUMBER';
4691 --
4692 l_count:=l_count+1;
4693 l_trans_tbl(l_count).param_name := 'P_EFFECTIVE_DATE';
4694 l_trans_tbl(l_count).param_value := p_effective_date;
4695 l_trans_tbl(l_count).param_original_value := p_effective_date; --ns
4696 l_trans_tbl(l_count).param_data_type := 'DATE';
4697 --
4698 --ns start
4699 l_count:=l_count+1;
4700 l_trans_tbl(l_count).param_name := 'P_EFFECTIVE_DATE_OPTION';
4701 l_trans_tbl(l_count).param_value := p_effective_date_option;
4702 l_trans_tbl(l_count).param_original_value := p_effective_date_option;
4703 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
4704 --ns end
4705 --
4706 l_count:=l_count+1;
4707 l_trans_tbl(l_count).param_name := 'P_ELEMENT_CHANGED';
4708 l_trans_tbl(l_count).param_value := p_element_changed;
4709 l_trans_tbl(l_count).param_original_value := p_element_changed; --ns
4710 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
4711 --
4712 l_count:=l_count+1;
4713 l_trans_tbl(l_count).param_name := 'P_DATETRACK_UPDATE_MODE';
4714 l_trans_tbl(l_count).param_value := l_datetrack_update_mode;
4715 l_trans_tbl(l_count).param_original_value := l_datetrack_update_mode; --ns
4716 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
4717 --
4718 l_count:=l_count+1;
4719 l_trans_tbl(l_count).param_name := 'P_ORGANIZATION_ID';
4720 l_trans_tbl(l_count).param_value := l_assignment_rec.organization_id;
4721 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.organization_id; --ns
4722 l_trans_tbl(l_count).param_data_type := 'NUMBER';
4723 --
4724 l_count:=l_count+1;
4725 l_trans_tbl(l_count).param_name := 'P_BUSINESS_GROUP_ID';
4726 l_trans_tbl(l_count).param_value := l_assignment_rec.business_group_id;
4727 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.business_group_id; --ns
4728 l_trans_tbl(l_count).param_data_type := 'NUMBER';
4729 --
4730 l_count:=l_count+1;
4731 l_trans_tbl(l_count).param_name := 'P_PERSON_ID';
4732 l_trans_tbl(l_count).param_value := l_assignment_rec.person_id;
4733 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.person_id; --ns
4734 l_trans_tbl(l_count).param_data_type := 'NUMBER';
4735 --
4736 l_count:=l_count+1;
4737 l_trans_tbl(l_count).param_name := 'P_LOGIN_PERSON_ID';
4738 l_trans_tbl(l_count).param_value := p_login_person_id;
4739 l_trans_tbl(l_count).param_data_type := 'NUMBER';
4740 --
4741 l_name := null;
4742 open csr_org_name(l_assignment_rec.organization_id);
4743 fetch csr_org_name into l_name;
4744 close csr_org_name;
4745
4746 --ns start
4747 l_original_name := null;
4748 open csr_org_name(l_db_assignment_rec.organization_id);
4749 fetch csr_org_name into l_original_name;
4750 close csr_org_name;
4751 --ns end
4752
4753 l_count:=l_count+1;
4754 l_trans_tbl(l_count).param_name := 'P_ORG_NAME';
4755 l_trans_tbl(l_count).param_value := l_name;
4756 l_trans_tbl(l_count).param_original_value := l_original_name ; --ns
4757 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
4758 --
4759 l_count:=l_count+1;
4760 l_trans_tbl(l_count).param_name := 'P_POSITION_ID';
4761 l_trans_tbl(l_count).param_value := l_assignment_rec.position_id;
4762 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.position_id; --ns
4763 l_trans_tbl(l_count).param_data_type := 'NUMBER';
4764 --
4765 l_name := null;
4766 open csr_pos_name(l_assignment_rec.position_id);
4767 fetch csr_pos_name into l_name;
4768 close csr_pos_name;
4769
4770 --ns start
4771 l_original_name := null;
4772 open csr_pos_name(l_db_assignment_rec.position_id);
4773 fetch csr_pos_name into l_original_name;
4774 close csr_pos_name;
4775 --ns end
4776
4777 l_count:=l_count+1;
4778 l_trans_tbl(l_count).param_name := 'P_POS_NAME';
4779 l_trans_tbl(l_count).param_value := l_name;
4780 l_trans_tbl(l_count).param_original_value := l_original_name ; --ns
4781 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
4782 --
4783 l_count:=l_count+1;
4784 l_trans_tbl(l_count).param_name := 'P_JOB_ID';
4785 l_trans_tbl(l_count).param_value := l_assignment_rec.job_id;
4786 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.job_id; --ns
4787 l_trans_tbl(l_count).param_data_type := 'NUMBER';
4788 --
4789 l_name := null;
4790 open csr_job_name(l_assignment_rec.job_id);
4791 fetch csr_job_name into l_name;
4792 close csr_job_name;
4793
4794 --ns start
4795 l_original_name := null;
4796 open csr_job_name(l_db_assignment_rec.job_id);
4797 fetch csr_job_name into l_original_name;
4798 close csr_job_name;
4799 --ns end
4800
4801 l_count:=l_count+1;
4802 l_trans_tbl(l_count).param_name := 'P_JOB_NAME';
4803 l_trans_tbl(l_count).param_value := l_name;
4804 l_trans_tbl(l_count).param_original_value := l_original_name ; --ns
4805 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
4806 --
4807 l_count:=l_count+1;
4808 l_trans_tbl(l_count).param_name := 'P_GRADE_ID';
4809 l_trans_tbl(l_count).param_value := l_assignment_rec.grade_id;
4810 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.grade_id; --ns
4811 l_trans_tbl(l_count).param_data_type := 'NUMBER';
4812 --
4813 l_name := null;
4814 open csr_grade_name(l_assignment_rec.grade_id);
4815 fetch csr_grade_name into l_name;
4816 close csr_grade_name;
4817
4818 --ns start
4819 l_original_name := null;
4820 open csr_grade_name(l_db_assignment_rec.grade_id);
4821 fetch csr_grade_name into l_original_name;
4822 close csr_grade_name;
4823 --ns end
4824
4825 l_count:=l_count+1;
4826 l_trans_tbl(l_count).param_name := 'P_GRADE_NAME';
4827 l_trans_tbl(l_count).param_value := l_name;
4828 l_trans_tbl(l_count).param_original_value := l_original_name ; --ns
4829 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
4830 --
4831 l_count:=l_count+1;
4832 l_trans_tbl(l_count).param_name := 'P_LOCATION_ID';
4833 l_trans_tbl(l_count).param_value := l_assignment_rec.location_id;
4834 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.location_id; --ns
4835 l_trans_tbl(l_count).param_data_type := 'NUMBER';
4836 --
4837 l_count:=l_count+1;
4838 l_trans_tbl(l_count).param_name := 'P_EMPLOYMENT_CATEGORY';
4839 l_trans_tbl(l_count).param_value := l_assignment_rec.employment_category;
4840 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.employment_category; --ns
4841 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
4842 --
4843 l_count:=l_count+1;
4844 l_trans_tbl(l_count).param_name := 'P_SUPERVISOR_ID';
4845 l_trans_tbl(l_count).param_value := l_assignment_rec.supervisor_id;
4846 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.supervisor_id; --ns
4847 l_trans_tbl(l_count).param_data_type := 'NUMBER';
4848 --
4849 l_count:=l_count+1;
4850 l_trans_tbl(l_count).param_name := 'P_MANAGER_FLAG';
4851 l_trans_tbl(l_count).param_value := l_assignment_rec.manager_flag;
4852 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.manager_flag; --ns
4853 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
4854 --
4855 l_count:=l_count+1;
4856 l_trans_tbl(l_count).param_name := 'P_NORMAL_HOURS';
4857 l_trans_tbl(l_count).param_value := l_assignment_rec.normal_hours;
4858 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.normal_hours; --ns
4859 l_trans_tbl(l_count).param_data_type := 'NUMBER';
4860 --
4861 l_count:=l_count+1;
4862 l_trans_tbl(l_count).param_name := 'P_FREQUENCY';
4863 l_trans_tbl(l_count).param_value := l_assignment_rec.frequency;
4864 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.frequency; --ns
4865 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
4866 --
4867 l_count:=l_count+1;
4868 l_trans_tbl(l_count).param_name := 'P_TIME_NORMAL_FINISH';
4869 l_trans_tbl(l_count).param_value := l_assignment_rec.time_normal_finish;
4870 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.time_normal_finish; --ns
4871 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
4872 --
4873 l_count:=l_count+1;
4874 l_trans_tbl(l_count).param_name := 'P_TIME_NORMAL_START';
4875 l_trans_tbl(l_count).param_value := l_assignment_rec.time_normal_start;
4876 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.time_normal_start; --ns
4877 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
4878 --
4879 l_count:=l_count+1;
4880 l_trans_tbl(l_count).param_name := 'P_BARGAINING_UNIT_CODE';
4881 l_trans_tbl(l_count).param_value := l_assignment_rec.bargaining_unit_code;
4882 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.bargaining_unit_code; --ns
4883 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
4884 --
4885 l_count:=l_count+1;
4886 l_trans_tbl(l_count).param_name := 'P_LABOUR_UNION_MEMBER_FLAG';
4887 l_trans_tbl(l_count).param_value := l_assignment_rec.labour_union_member_flag;
4888 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.labour_union_member_flag; --ns
4889 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
4890 --
4891 l_count:=l_count+1;
4892 l_trans_tbl(l_count).param_name := 'P_SPECIAL_CEILING_STEP_ID';
4893 l_trans_tbl(l_count).param_value
4894 := l_assignment_rec.special_ceiling_step_id;
4895 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.special_ceiling_step_id; --ns
4896 l_trans_tbl(l_count).param_data_type := 'NUMBER';
4897 --
4898 l_count:=l_count+1;
4899 l_trans_tbl(l_count).param_name := 'P_ASSIGNMENT_STATUS_TYPE_ID';
4900 l_trans_tbl(l_count).param_value
4901 := l_assignment_rec.assignment_status_type_id;
4902 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.assignment_status_type_id; --ns
4903 l_trans_tbl(l_count).param_data_type := 'NUMBER';
4904 --
4905 l_count:=l_count+1;
4906 l_trans_tbl(l_count).param_name := 'P_CHANGE_REASON';
4907 l_trans_tbl(l_count).param_value
4908 := l_assignment_rec.change_reason;
4909 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.change_reason; --ns
4910 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
4911 --
4912 l_count:=l_count+1;
4913 l_trans_tbl(l_count).param_name := 'P_ASS_ATTRIBUTE_CATEGORY';
4914 l_trans_tbl(l_count).param_value
4915 := l_assignment_rec.ass_attribute_category;
4916 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.ass_attribute_category; --ns
4917 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
4918 --
4919 l_count:=l_count+1;
4920 l_trans_tbl(l_count).param_name := 'P_ASS_ATTRIBUTE1';
4921 l_trans_tbl(l_count).param_value := l_assignment_rec.ass_attribute1;
4922 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.ass_attribute1; --ns
4923 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
4924 --
4925 l_count:=l_count+1;
4926 l_trans_tbl(l_count).param_name := 'P_ASS_ATTRIBUTE2';
4927 l_trans_tbl(l_count).param_value := l_assignment_rec.ass_attribute2;
4928 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.ass_attribute2; --ns
4929 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
4930 --
4931 l_count:=l_count+1;
4932 l_trans_tbl(l_count).param_name := 'P_ASS_ATTRIBUTE3';
4933 l_trans_tbl(l_count).param_value := l_assignment_rec.ass_attribute3;
4934 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.ass_attribute3; --ns
4935 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
4936 --
4937 l_count:=l_count+1;
4938 l_trans_tbl(l_count).param_name := 'P_ASS_ATTRIBUTE4';
4939 l_trans_tbl(l_count).param_value := l_assignment_rec.ass_attribute4;
4940 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.ass_attribute4; --ns
4941 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
4942 --
4943 l_count:=l_count+1;
4944 l_trans_tbl(l_count).param_name := 'P_ASS_ATTRIBUTE5';
4945 l_trans_tbl(l_count).param_value := l_assignment_rec.ass_attribute5;
4946 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.ass_attribute5; --ns
4947 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
4948 --
4949 l_count:=l_count+1;
4950 l_trans_tbl(l_count).param_name := 'P_ASS_ATTRIBUTE6';
4951 l_trans_tbl(l_count).param_value := l_assignment_rec.ass_attribute6;
4952 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.ass_attribute6; --ns
4953 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
4954 --
4955 l_count:=l_count+1;
4956 l_trans_tbl(l_count).param_name := 'P_ASS_ATTRIBUTE7';
4957 l_trans_tbl(l_count).param_value := l_assignment_rec.ass_attribute7;
4958 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.ass_attribute7; --ns
4959 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
4960 --
4961 l_count:=l_count+1;
4962 l_trans_tbl(l_count).param_name := 'P_ASS_ATTRIBUTE8';
4963 l_trans_tbl(l_count).param_value := l_assignment_rec.ass_attribute8;
4964 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.ass_attribute8; --ns
4965 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
4966 --
4967 l_count:=l_count+1;
4968 l_trans_tbl(l_count).param_name := 'P_ASS_ATTRIBUTE9';
4969 l_trans_tbl(l_count).param_value := l_assignment_rec.ass_attribute9;
4970 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.ass_attribute9; --ns
4971 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
4972 --
4973 l_count:=l_count+1;
4974 l_trans_tbl(l_count).param_name := 'P_ASS_ATTRIBUTE10';
4975 l_trans_tbl(l_count).param_value := l_assignment_rec.ass_attribute10;
4976 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.ass_attribute10; --ns
4977 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
4978 --
4979 l_count:=l_count+1;
4980 l_trans_tbl(l_count).param_name := 'P_ASS_ATTRIBUTE11';
4981 l_trans_tbl(l_count).param_value := l_assignment_rec.ass_attribute11;
4982 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.ass_attribute11; --ns
4983 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
4984 --
4985 l_count:=l_count+1;
4986 l_trans_tbl(l_count).param_name := 'P_ASS_ATTRIBUTE12';
4987 l_trans_tbl(l_count).param_value := l_assignment_rec.ass_attribute12;
4988 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.ass_attribute12; --ns
4989 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
4990 --
4991 l_count:=l_count+1;
4992 l_trans_tbl(l_count).param_name := 'P_ASS_ATTRIBUTE13';
4993 l_trans_tbl(l_count).param_value := l_assignment_rec.ass_attribute13;
4994 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.ass_attribute13; --ns
4995 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
4996 --
4997 l_count:=l_count+1;
4998 l_trans_tbl(l_count).param_name := 'P_ASS_ATTRIBUTE14';
4999 l_trans_tbl(l_count).param_value := l_assignment_rec.ass_attribute14;
5000 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.ass_attribute14; --ns
5001 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
5002 --
5003 l_count:=l_count+1;
5004 l_trans_tbl(l_count).param_name := 'P_ASS_ATTRIBUTE15';
5005 l_trans_tbl(l_count).param_value := l_assignment_rec.ass_attribute15;
5006 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.ass_attribute15; --ns
5007 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
5008 --
5009 l_count:=l_count+1;
5010 l_trans_tbl(l_count).param_name := 'P_ASS_ATTRIBUTE16';
5011 l_trans_tbl(l_count).param_value := l_assignment_rec.ass_attribute16;
5012 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.ass_attribute16; --ns
5013 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
5014 --
5015 l_count:=l_count+1;
5016 l_trans_tbl(l_count).param_name := 'P_ASS_ATTRIBUTE17';
5017 l_trans_tbl(l_count).param_value := l_assignment_rec.ass_attribute17;
5018 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.ass_attribute17; --ns
5019 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
5020 --
5021 l_count:=l_count+1;
5022 l_trans_tbl(l_count).param_name := 'P_ASS_ATTRIBUTE18';
5023 l_trans_tbl(l_count).param_value := l_assignment_rec.ass_attribute18;
5024 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.ass_attribute18; --ns
5025 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
5026 --
5027 l_count:=l_count+1;
5028 l_trans_tbl(l_count).param_name := 'P_ASS_ATTRIBUTE19';
5029 l_trans_tbl(l_count).param_value := l_assignment_rec.ass_attribute19;
5030 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.ass_attribute19; --ns
5031 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
5032 --
5033 l_count:=l_count+1;
5034 l_trans_tbl(l_count).param_name := 'P_ASS_ATTRIBUTE20';
5035 l_trans_tbl(l_count).param_value := l_assignment_rec.ass_attribute20;
5036 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.ass_attribute20; --ns
5037 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
5038 --
5039 l_count:=l_count+1;
5040 l_trans_tbl(l_count).param_name := 'P_ASS_ATTRIBUTE21';
5041 l_trans_tbl(l_count).param_value := l_assignment_rec.ass_attribute21;
5042 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.ass_attribute21; --ns
5043 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
5044 --
5045 l_count:=l_count+1;
5046 l_trans_tbl(l_count).param_name := 'P_ASS_ATTRIBUTE22';
5047 l_trans_tbl(l_count).param_value := l_assignment_rec.ass_attribute22;
5048 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.ass_attribute22; --ns
5049 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
5050 --
5051 l_count:=l_count+1;
5052 l_trans_tbl(l_count).param_name := 'P_ASS_ATTRIBUTE23';
5053 l_trans_tbl(l_count).param_value := l_assignment_rec.ass_attribute23;
5054 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.ass_attribute23; --ns
5055 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
5056 --
5057 l_count:=l_count+1;
5058 l_trans_tbl(l_count).param_name := 'P_ASS_ATTRIBUTE24';
5059 l_trans_tbl(l_count).param_value := l_assignment_rec.ass_attribute24;
5060 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.ass_attribute24; --ns
5061 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
5062 --
5063 l_count:=l_count+1;
5064 l_trans_tbl(l_count).param_name := 'P_ASS_ATTRIBUTE25';
5065 l_trans_tbl(l_count).param_value := l_assignment_rec.ass_attribute25;
5066 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.ass_attribute25; --ns
5067 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
5068 --
5069 l_count:=l_count+1;
5070 l_trans_tbl(l_count).param_name := 'P_ASS_ATTRIBUTE26';
5071 l_trans_tbl(l_count).param_value := l_assignment_rec.ass_attribute26;
5072 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.ass_attribute26; --ns
5073 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
5074 --
5075 l_count:=l_count+1;
5076 l_trans_tbl(l_count).param_name := 'P_ASS_ATTRIBUTE27';
5077 l_trans_tbl(l_count).param_value := l_assignment_rec.ass_attribute27;
5078 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.ass_attribute27; --ns
5079 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
5080 --
5081 l_count:=l_count+1;
5082 l_trans_tbl(l_count).param_name := 'P_ASS_ATTRIBUTE28';
5083 l_trans_tbl(l_count).param_value := l_assignment_rec.ass_attribute28;
5084 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.ass_attribute28; --ns
5085 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
5086 --
5087 l_count:=l_count+1;
5088 l_trans_tbl(l_count).param_name := 'P_ASS_ATTRIBUTE29';
5089 l_trans_tbl(l_count).param_value := l_assignment_rec.ass_attribute29;
5090 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.ass_attribute29; --ns
5091 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
5092 --
5093 l_count:=l_count+1;
5094 l_trans_tbl(l_count).param_name := 'P_ASS_ATTRIBUTE30';
5095 l_trans_tbl(l_count).param_value := l_assignment_rec.ass_attribute30;
5096 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.ass_attribute30; --ns
5097 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
5098 --
5099 l_count:=l_count+1;
5100 l_trans_tbl(l_count).param_name := 'P_PEOPLE_GROUP_ID';
5101 l_trans_tbl(l_count).param_value := l_assignment_rec.people_group_id;
5102 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.people_group_id; --ns
5103 l_trans_tbl(l_count).param_data_type := 'NUMBER';
5104 --
5105 l_count:=l_count+1;
5106 l_trans_tbl(l_count).param_name := 'P_SOFT_CODING_KEYFLEX_ID';
5107 l_trans_tbl(l_count).param_value := l_assignment_rec.soft_coding_keyflex_id;
5108 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.soft_coding_keyflex_id; --ns
5109 l_trans_tbl(l_count).param_data_type := 'NUMBER';
5110 --
5111 l_count:=l_count+1;
5112 l_trans_tbl(l_count).param_name := 'P_PAYROLL_ID';
5113 l_trans_tbl(l_count).param_value := l_assignment_rec.payroll_id;
5114 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.payroll_id; --ns
5115 l_trans_tbl(l_count).param_data_type := 'NUMBER';
5116 --
5117 l_count:=l_count+1;
5118 l_trans_tbl(l_count).param_name := 'P_PAY_BASIS_ID';
5119 l_trans_tbl(l_count).param_value := l_assignment_rec.pay_basis_id;
5120 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.pay_basis_id; --ns
5121 l_trans_tbl(l_count).param_data_type := 'NUMBER';
5122 --
5123 l_count:=l_count+1;
5124 l_trans_tbl(l_count).param_name := 'P_SAL_REVIEW_PERIOD';
5125 l_trans_tbl(l_count).param_value := l_assignment_rec.sal_review_period;
5126 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.sal_review_period; --ns
5127 l_trans_tbl(l_count).param_data_type := 'NUMBER';
5128 --
5129 l_count:=l_count+1;
5130 l_trans_tbl(l_count).param_name := 'P_SAL_REVIEW_PERIOD_FREQUENCY';
5131 l_trans_tbl(l_count).param_value :=
5132 l_assignment_rec.sal_review_period_frequency;
5133 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.sal_review_period_frequency; --ns
5134 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
5135 --
5136 --
5137 l_count:=l_count+1;
5138 l_trans_tbl(l_count).param_name := 'P_DATE_PROBATION_END';
5139 l_trans_tbl(l_count).param_value :=
5140 to_char(l_assignment_rec.date_probation_end,g_date_format);
5141 l_trans_tbl(l_count).param_original_value := to_char(l_db_assignment_rec.date_probation_end,g_date_format); --ns
5142 l_trans_tbl(l_count).param_data_type := 'DATE';
5143 --
5144 l_count:=l_count+1;
5145 l_trans_tbl(l_count).param_name := 'P_PROBATION_PERIOD';
5146 l_trans_tbl(l_count).param_value :=
5147 l_assignment_rec.probation_period;
5148 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.probation_period; --ns
5149 l_trans_tbl(l_count).param_data_type := 'NUMBER';
5150 --
5151 l_count:=l_count+1;
5152 l_trans_tbl(l_count).param_name := 'P_PROBATION_UNIT';
5153 l_trans_tbl(l_count).param_value :=
5154 l_assignment_rec.probation_unit;
5155 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.probation_unit; --ns
5156 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
5157 --
5158 l_count:=l_count+1;
5159 l_trans_tbl(l_count).param_name := 'P_NOTICE_PERIOD';
5160 l_trans_tbl(l_count).param_value :=
5161 l_assignment_rec.notice_period;
5162 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.notice_period; --ns
5163 l_trans_tbl(l_count).param_data_type := 'NUMBER';
5164 --
5165 l_count:=l_count+1;
5166 l_trans_tbl(l_count).param_name := 'P_NOTICE_PERIOD_UOM';
5167 l_trans_tbl(l_count).param_value :=
5168 l_assignment_rec.notice_period_uom;
5169 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.notice_period_uom; --ns
5170 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
5171 --
5172 l_count:=l_count+1;
5173 l_trans_tbl(l_count).param_name := 'P_EMPLOYEE_CATEGORY';
5174 l_trans_tbl(l_count).param_value :=
5175 l_assignment_rec.employee_category;
5176 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.employee_category; --ns
5177 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
5178 --
5179 l_count:=l_count+1;
5180 l_trans_tbl(l_count).param_name := 'P_WORK_AT_HOME';
5181 l_trans_tbl(l_count).param_value :=
5182 l_assignment_rec.work_at_home;
5183 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.work_at_home; --ns
5184 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
5185 --
5186 l_count:=l_count+1;
5187 l_trans_tbl(l_count).param_name := 'P_JOB_POST_SOURCE_NAME';
5188 l_trans_tbl(l_count).param_value :=
5189 l_assignment_rec.job_post_source_name;
5190 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.job_post_source_name; --ns
5191 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
5192 --
5193 l_count:=l_count+1;
5194 l_trans_tbl(l_count).param_name := 'P_PERF_REVIEW_PERIOD';
5195 l_trans_tbl(l_count).param_value :=
5196 l_assignment_rec.perf_review_period;
5197 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.perf_review_period; --ns
5198 l_trans_tbl(l_count).param_data_type := 'NUMBER';
5199 --
5200 l_count:=l_count+1;
5201 l_trans_tbl(l_count).param_name := 'P_PERF_REVIEW_PERIOD_FREQUENCY';
5202 l_trans_tbl(l_count).param_value :=
5203 l_assignment_rec.perf_review_period_frequency;
5204 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.perf_review_period_frequency; --ns
5205 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
5206 --
5207 l_count:=l_count+1;
5208 l_trans_tbl(l_count).param_name := 'P_INTERNAL_ADDRESS_LINE';
5209 l_trans_tbl(l_count).param_value :=
5210 l_assignment_rec.internal_address_line;
5211 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.internal_address_line; --ns
5212 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
5213
5214 l_count:=l_count+1;
5215 l_trans_tbl(l_count).param_name := 'P_CONTRACT_ID';
5216 l_trans_tbl(l_count).param_value := l_assignment_rec.contract_id;
5217 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.contract_id; --ns
5218 l_trans_tbl(l_count).param_data_type := 'NUMBER';
5219 --
5220 l_count:=l_count+1;
5221 l_trans_tbl(l_count).param_name := 'P_ESTABLISHMENT_ID';
5222 l_trans_tbl(l_count).param_value := l_assignment_rec.establishment_id;
5223 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.establishment_id; --ns
5224 l_trans_tbl(l_count).param_data_type := 'NUMBER';
5225 --
5226 l_count:=l_count+1;
5227 l_trans_tbl(l_count).param_name := 'P_COLLECTIVE_AGREEMENT_ID';
5228 l_trans_tbl(l_count).param_value := l_assignment_rec.collective_agreement_id;
5229 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.collective_agreement_id; --ns
5230 l_trans_tbl(l_count).param_data_type := 'NUMBER';
5231 --
5232 l_count:=l_count+1;
5233 l_trans_tbl(l_count).param_name := 'P_CAGR_ID_FLEX_NUM';
5234 l_trans_tbl(l_count).param_value := l_assignment_rec.cagr_id_flex_num;
5235 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.cagr_id_flex_num; --ns
5236 l_trans_tbl(l_count).param_data_type := 'NUMBER';
5237 --
5238 l_count:=l_count+1;
5239 l_trans_tbl(l_count).param_name := 'P_CAGR_GRADE_DEF_ID';
5240 l_trans_tbl(l_count).param_value := l_assignment_rec.cagr_grade_def_id;
5241 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.cagr_grade_def_id; --ns
5242 l_trans_tbl(l_count).param_data_type := 'NUMBER';
5243 --
5244 l_count:=l_count+1;
5245 l_trans_tbl(l_count).param_name := 'P_LABOUR_UNION_MEMBER_FLAG';
5246 l_trans_tbl(l_count).param_value := l_assignment_rec.labour_union_member_flag;
5247 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.labour_union_member_flag; --ns
5248 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
5249 --
5250 l_count:=l_count+1;
5251 l_trans_tbl(l_count).param_name := 'P_BARGAINING_UNIT_CODE';
5252 l_trans_tbl(l_count).param_value := l_assignment_rec.bargaining_unit_code;
5253 l_trans_tbl(l_count).param_original_value := l_db_assignment_rec.bargaining_unit_code; --ns
5254 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
5255 --
5256 l_count:=l_count+1;
5257 l_trans_tbl(l_count).param_name := 'P_DEFAULT_CODE_COMB_ID';
5258 l_trans_tbl(l_count).param_value := l_assignment_rec.default_code_comb_id;
5259 l_trans_tbl(l_count).param_original_value :=
5260 l_db_assignment_rec.default_code_comb_id; --ns
5261 l_trans_tbl(l_count).param_data_type := 'NUMBER';
5262
5263 --
5264 l_count:=l_count+1;
5265 l_trans_tbl(l_count).param_name := 'P_SET_OF_BOOKS_ID';
5266 l_trans_tbl(l_count).param_value := l_assignment_rec.set_of_books_id;
5267 l_trans_tbl(l_count).param_original_value :=
5268 l_db_assignment_rec.set_of_books_id; --ns
5269 l_trans_tbl(l_count).param_data_type := 'NUMBER';
5270
5271 --
5272 l_count:=l_count+1;
5273 l_trans_tbl(l_count).param_name := 'P_VENDOR_ID';
5274 l_trans_tbl(l_count).param_value := l_assignment_rec.vendor_id;
5275 l_trans_tbl(l_count).param_original_value :=
5276 l_db_assignment_rec.vendor_id; --ns
5277 l_trans_tbl(l_count).param_data_type := 'NUMBER';
5278
5279 --
5280 l_count:=l_count+1;
5281 l_trans_tbl(l_count).param_name := 'P_ASSIGNMENT_TYPE';
5282 l_trans_tbl(l_count).param_value := l_assignment_rec.assignment_type;
5283 l_trans_tbl(l_count).param_original_value :=
5284 l_db_assignment_rec.assignment_type; --ns
5285 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
5286
5287 --
5288 --l_count:=l_count+1;
5289 --l_trans_tbl(l_count).param_name := 'P_SUPERVISOR_ASSIGNMENT_ID';
5290 --l_trans_tbl(l_count).param_value := l_assignment_rec.supervisor_assignment_id;
5291 --l_trans_tbl(l_count).param_original_value :=
5292 -- l_db_assignment_rec.supervisor_assignment_id; --ns
5293 --l_trans_tbl(l_count).param_data_type := 'NUMBER';
5294 --
5295 l_count:=l_count+1;
5296 l_trans_tbl(l_count).param_name := 'P_TITLE';
5297 l_trans_tbl(l_count).param_value := l_assignment_rec.title;
5298 l_trans_tbl(l_count).param_original_value :=
5299 l_db_assignment_rec.title; --ns
5300 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
5301
5302 --
5303 l_count:=l_count+1;
5304 l_trans_tbl(l_count).param_name := 'P_PROJECT_TITLE';
5305 l_trans_tbl(l_count).param_value := l_assignment_rec.project_title;
5306 l_trans_tbl(l_count).param_original_value :=
5307 l_db_assignment_rec.project_title; --ns
5308 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
5309
5310 --
5311 l_count:=l_count+1;
5312 l_trans_tbl(l_count).param_name := 'P_SOURCE_TYPE';
5313 l_trans_tbl(l_count).param_value := l_assignment_rec.source_type;
5314 l_trans_tbl(l_count).param_original_value :=
5315 l_db_assignment_rec.source_type; --ns
5316 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
5317
5318 --
5319 l_count:=l_count+1;
5320 l_trans_tbl(l_count).param_name := 'P_VENDOR_ASSIGNMENT_NUMBER';
5321 l_trans_tbl(l_count).param_value := l_assignment_rec.vendor_assignment_number;
5322 l_trans_tbl(l_count).param_original_value :=
5323 l_db_assignment_rec.vendor_assignment_number; --ns
5324 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
5325
5326 --
5327 l_count:=l_count+1;
5328 l_trans_tbl(l_count).param_name := 'P_VENDOR_EMPLOYEE_NUMBER';
5329 l_trans_tbl(l_count).param_value := l_assignment_rec.vendor_employee_number;
5330 l_trans_tbl(l_count).param_original_value :=
5331 l_db_assignment_rec.vendor_employee_number; --ns
5332 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
5333
5334 --
5335 l_count:=l_count+1;
5336 l_trans_tbl(l_count).param_name := 'P_SAVE_MODE';
5337 l_trans_tbl(l_count).param_value := p_save_mode;
5338 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
5339 --
5340 -- look to see if the review page is already in the list
5341 --
5342 l_count:=l_count+1;
5343 l_trans_tbl(l_count).param_name := 'P_REVIEW_PROC_CALL';
5344
5345 -- Bug 1043890 fix
5346 if i_changed
5347 then
5348 if(instr(l_review_proc_call,p_review_proc_call)>0) then
5349 --
5350 -- it is in the list already so just write the list
5351 --
5352 l_trans_tbl(l_count).param_value := l_review_proc_call;
5353 else
5354 --
5355 -- it is not in the list, so add the delimiter and write the value
5356 --
5357 l_trans_tbl(l_count).param_value := l_review_proc_call
5358 || '|!|'|| p_review_proc_call;
5359 end if;
5360 else
5361 -- if I am not changed, delete my review proc call from list
5362 if (instr(l_review_proc_call, '|!|'|| p_review_proc_call)>0)
5363 then
5364 l_trans_tbl(l_count).param_value :=
5365 replace(l_review_proc_call, '|!|'|| p_review_proc_call);
5366 elsif (instr(l_review_proc_call, p_review_proc_call)>0)
5367 then
5368 l_trans_tbl(l_count).param_value :=
5369 ltrim(replace(l_review_proc_call, p_review_proc_call),'|!|');
5370 else
5371 l_trans_tbl(l_count).param_value := l_review_proc_call;
5372 end if;
5373 end if;
5374
5375 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
5376 --
5377 -- look to see if the activity_id is already in the list
5378 --
5379 l_count:=l_count+1;
5380 l_trans_tbl(l_count).param_name := 'P_REVIEW_ACTID';
5381
5382 if i_changed
5383 then
5384 if(instr(l_activity_id_list,to_char(l_activity_id))>0) then
5385 --
5386 -- it is in the list already so just write the list
5387 --
5388 l_trans_tbl(l_count).param_value := l_activity_id_list;
5389 else
5390 --
5391 -- it is not in the list, so add the delimiter and write the value
5392 --
5393 l_trans_tbl(l_count).param_value := l_activity_id_list
5394 ||'|!|'||to_char(l_activity_id);
5395 end if;
5396
5397 else
5398 -- if I am not changed, delete my activity id from list
5399 if (instr(l_activity_id_list, '|!|'|| to_char(l_activity_id))>0)
5400 then -- fixed for bug 3047196
5401 l_trans_tbl(l_count).param_value :=
5402 replace(l_activity_id_list, '|!|'|| to_char(l_activity_id));
5403 elsif (instr(l_activity_id_list, to_char(l_activity_id)||'|!|')>0)
5404 then
5405 l_trans_tbl(l_count).param_value :=
5406 ltrim(replace(l_activity_id_list, to_char(l_activity_id)||'|!|'));
5407 else
5408 l_trans_tbl(l_count).param_value := l_activity_id_list;
5409 end if;
5410
5411 end if;
5412
5413 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
5414 --
5415 l_count:=l_count+1;
5416 l_trans_tbl(l_count).param_name := 'P_HRS_LAST_DATE';
5417 l_trans_tbl(l_count).param_value := l_hrs_last_date;
5418 -- fix for bug # 1255275
5419 l_trans_tbl(l_count).param_data_type := 'DATE';
5420 --
5421 l_count:=l_count+1;
5422 l_trans_tbl(l_count).param_name := 'P_DISPLAY_POS';
5423 l_trans_tbl(l_count).param_value := l_display_pos;
5424 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
5425 --
5426 l_count:=l_count+1;
5427 l_trans_tbl(l_count).param_name := 'P_DISPLAY_ORG';
5428 l_trans_tbl(l_count).param_value := l_display_org;
5429 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
5430 --
5431 l_count:=l_count+1;
5432 l_trans_tbl(l_count).param_name := 'P_DISPLAY_JOB';
5433 l_trans_tbl(l_count).param_value := l_display_job;
5434 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
5435 --
5436 l_count:=l_count+1;
5437 l_trans_tbl(l_count).param_name := 'P_DISPLAY_ASS_STATUS';
5438 l_trans_tbl(l_count).param_value := l_display_ass_status;
5439 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
5440 --
5441 -- Bug #1067636 fix begins
5442 l_count:=l_count+1;
5443 l_trans_tbl(l_count).param_name := 'P_DISPLAY_GRADE';
5444 l_trans_tbl(l_count).param_value := l_display_grade;
5445 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
5446 -- Bug #1067636 fix ends
5447 --
5448 -- Bug #1004255 fix
5449 l_count:=l_count+1;
5450 l_trans_tbl(l_count).param_name := 'P_GRADE_LOV';
5451 l_trans_tbl(l_count).param_value := l_grade_lov;
5452 l_trans_tbl(l_count).param_data_type := 'VARCHAR2';
5453 --
5454 l_count:=l_count+1;
5455 l_trans_tbl(l_count).param_name := 'P_APPROVER_ID';
5456 l_trans_tbl(l_count).param_value := l_approver_id;
5457 l_trans_tbl(l_count).param_data_type := 'NUMBER';
5458
5459 --
5460 -- GSP change
5461 l_count:=l_count+1;
5462 l_trans_tbl(l_count).param_name := 'P_GRADE_LADDER_PGM_ID';
5463 l_trans_tbl(l_count).param_value := l_assignment_rec.grade_ladder_pgm_id;
5464 l_trans_tbl(l_count).param_original_value :=
5465 l_db_assignment_rec.grade_ladder_pgm_id; --ns
5466 l_trans_tbl(l_count).param_data_type := 'NUMBER';
5467 -- End of GSP change
5468
5469
5470
5471 l_count:=l_count+1;
5472 l_trans_tbl(l_count).param_name := 'P_PO_HEADER_ID';
5473 l_trans_tbl(l_count).param_value := l_assignment_rec.po_header_id;
5474 l_trans_tbl(l_count).param_original_value :=
5475 l_db_assignment_rec.po_header_id; --ns
5476 l_trans_tbl(l_count).param_data_type := 'NUMBER';
5477
5478 l_count:=l_count+1;
5479 l_trans_tbl(l_count).param_name := 'P_PO_LINE_ID';
5480 l_trans_tbl(l_count).param_value := l_assignment_rec.po_line_id;
5481 l_trans_tbl(l_count).param_original_value :=
5482 l_db_assignment_rec.po_line_id; --ns
5483 l_trans_tbl(l_count).param_data_type := 'NUMBER';
5484
5485 l_count:=l_count+1;
5486 l_trans_tbl(l_count).param_name := 'P_VENDOR_SITE_ID';
5487 l_trans_tbl(l_count).param_value := l_assignment_rec.vendor_site_id;
5488 l_trans_tbl(l_count).param_original_value :=
5489 l_db_assignment_rec.vendor_site_id; --ns
5490 l_trans_tbl(l_count).param_data_type := 'NUMBER';
5491
5492 l_count:=l_count+1;
5493 l_trans_tbl(l_count).param_name := 'P_PROJ_ASGN_END';
5494 l_trans_tbl(l_count).param_value := to_char(l_assignment_rec.projected_assignment_end, g_date_format);
5495 if(l_db_assignment_rec.projected_assignment_end is not null) then
5496 l_trans_tbl(l_count).param_original_value :=
5497 to_char(l_db_assignment_rec.projected_assignment_end, g_date_format); --ns
5498 else
5499 l_trans_tbl(l_count).param_original_value :=
5500 l_db_assignment_rec.projected_assignment_end; --ns
5501 end if;
5502 l_trans_tbl(l_count).param_data_type := 'DATE';
5503
5504
5505 --
5506 -- save the transaction step
5507 --
5508 hr_transaction_ss.save_transaction_step
5509 (p_item_type => l_item_type
5510 ,p_item_key => l_item_key
5511 ,p_actid => l_activity_id
5512 ,p_login_person_id => p_login_person_id
5513 ,p_transaction_step_id => l_transaction_step_id
5514 ,p_transaction_data => l_trans_tbl
5515 ,p_plan_id => p_plan_id
5516 ,p_rptg_grp_id => p_rptg_grp_id
5517 ,p_effective_date_option => p_effective_date_option
5518 );
5519
5520 open pay_step(l_item_type,l_item_key); --bug6405208
5521 fetch pay_step into l_pay_step_id,l_pay_activity_id;
5522 if (pay_step%found and l_pay_activity_id <> -1 and
5523 l_assignment_rec.pay_basis_id is null) then
5524 hr_transaction_ss.delete_transaction_step
5525 (p_transaction_step_id => l_pay_step_id
5526 ,p_login_person_id => p_login_person_id);
5527 end if;
5528 close pay_step;
5529
5530 -- GSP
5531 -- Check whether grade/step changed and Grade Ladder setup is done
5532 -- for the business group
5533
5534 open step_grade_step(l_item_type,l_item_key);
5535 fetch step_grade_step into dummy;
5536
5537 if(lb_grd_ldr_exists_flag and step_grade_step%notfound) then
5538 -- and ( lb_special_ceiling_step_id_chg or lb_grade_changed) ) then
5539
5540 -- check whether grade ladder won't allow salary update
5541 open lc_sal_updateable_grade_ladder(p_grade_ladder_id =>
5542 l_assignment_rec.grade_ladder_pgm_id,
5543 p_effective_date => l_effective_date
5544 );
5545 fetch lc_sal_updateable_grade_ladder into lc_temp_grade_ladder_id, lc_temp_upd_sal_cd;
5546
5547 -- if there is any salary change , then only it should create
5548 -- PayRate GSP Txn
5549 if ((lc_sal_updateable_grade_ladder%FOUND) and
5550 ( (ltt_salary_data(1).salary_change_amount < 0)
5551 or (ltt_salary_data(1).salary_change_amount > 0))) THEN
5552 lv_gsp_review_proc_call := 'HrPayRate';
5553 lv_gsp_flow_mode := p_flow_mode ;
5554 ln_gsp_activity_id := -1;
5555
5556 -- increment the process order for displaying pay rate page
5557 -- in review page
5558 hr_transaction_api.Set_Process_Order_String(p_item_type => l_item_type
5559 ,p_item_key => l_item_key
5560 ,p_actid => ln_gsp_activity_id);
5561
5562 -- display warning only once, thats next time onwards
5563 -- ignore salary change warning
5564
5565 if(p_salary_change_warning <> 'IGNORE') then
5566 p_salary_change_warning := 'WARNING';
5567 hr_utility.trace('p_salary_change_warning' || p_salary_change_warning);
5568 end if;
5569
5570 p_gsp_salary_effective_date := ltt_salary_data(1).salary_effective_date;
5571
5572 -- Save the Pay Rate GSP Txn
5573 if (lc_temp_upd_sal_cd = 'SALARY_BASIS') then
5574 PER_SSHR_CHANGE_PAY.get_transaction_step(
5575 p_item_type => l_item_type,
5576 p_item_key => l_item_key,
5577 p_activity_id => -1,
5578 p_login_person_id => p_login_person_id,
5579 p_api_name => 'PER_SSHR_CHANGE_PAY.PROCESS_API',
5580 p_transaction_id => ln_gsp_txn_id,
5581 p_transaction_step_id => ln_gsp_step_id,
5582 p_update_mode => ln_gsp_update_mode,
5583 p_effective_date_option => p_effective_date_option);
5584
5585 hr_pay_rate_gsp_ss.create_pay_txn(
5586 p_ltt_salary_data => ltt_salary_data,
5587 p_transaction_id => ln_gsp_txn_id,
5588 p_transaction_step_id => ln_gsp_step_id,
5589 p_item_type => l_item_type,
5590 p_item_key => l_item_key,
5591 p_assignment_id => l_assignment_id,
5592 p_effective_date => l_effective_date,
5593 p_pay_basis_id => l_assignment_rec.pay_basis_id,
5594 p_old_pay_basis_id => l_db_assignment_rec.pay_basis_id,
5595 p_business_group_id => l_assignment_rec.business_group_id
5596 );
5597 else
5598 hr_pay_rate_gsp_ss.save_gsp_txn(
5599 p_item_type => l_item_type,
5600 p_item_key => l_item_key,
5601 p_act_id => ln_gsp_activity_id,
5602 p_ltt_salary_data => ltt_salary_data,
5603 --p_api_mode => lv_gsp_api_mode,
5604 p_review_proc_call => lv_gsp_review_proc_call,
5605 --p_save_mode => p_save_mode,
5606 p_flow_mode => lv_gsp_flow_mode,
5607 p_step_id => ln_gsp_step_id,
5608 p_rptg_grp_id => p_rptg_grp_id,
5609 p_plan_id => p_plan_id,
5610 p_effective_date_option => p_effective_date_option
5611 );
5612 end if;
5613
5614 -- end if;
5615 -- close lc_sal_updateable_grade_ladder;
5616 else
5617
5618 -- there is no change in grade or step and no change in salary
5619 -- then remove the existing PayRate Transaction if any with
5620 -- activityId = -1
5621
5622 -- Need to see if an asg txn step id exists or not.
5623 hr_assignment_common_save_web.get_step
5624 (p_item_type => p_item_type
5625 ,p_item_key => p_item_key
5626 ,p_api_name => 'PER_SSHR_CHANGE_PAY.PROCESS_API'
5627 ,p_transaction_step_id => ln_gsp_step_id
5628 ,p_transaction_id => l_transaction_id);
5629
5630 if (ln_gsp_step_id is null) then
5631 hr_assignment_common_save_web.get_step
5632 (p_item_type => p_item_type
5633 ,p_item_key => p_item_key
5634 ,p_api_name => 'HR_PAY_RATE_SS.PROCESS_API'
5635 ,p_transaction_step_id => ln_gsp_step_id
5636 ,p_transaction_id => l_transaction_id);
5637 end if;
5638
5639 IF (ln_gsp_step_id IS NOT NULL)
5640 THEN
5641 lv_gsp_activity_id := hr_transaction_api.get_varchar2_value
5642 (p_transaction_step_id => ln_gsp_step_id
5643 ,p_name => 'P_REVIEW_ACTID');
5644 -- for Pay Rate GSP Txn, Review Activity Id is -1
5645 if((lv_gsp_activity_id is not null) and (to_number(lv_gsp_activity_id) = -1))
5646 THEN
5647 hr_transaction_ss.delete_transaction_step
5648 (p_transaction_step_id => ln_gsp_step_id
5649 ,p_login_person_id => p_login_person_id);
5650 delete from per_pay_transactions where TRANSACTION_STEP_ID=ln_gsp_step_id;
5651 end if;
5652 END IF;
5653 end if;
5654 close lc_sal_updateable_grade_ladder;
5655 end if;
5656 close step_grade_step;
5657 -- End of GSP
5658 p_transaction_step_id := l_transaction_step_id;
5659 end if; -- this any element changed if statemenet
5660 else
5661 -- Bug 1043890 fix
5662 p_transaction_step_id := null;
5663 IF l_transaction_step_id IS NOT NULL
5664 THEN
5665 hr_transaction_ss.delete_transaction_step
5666 (p_transaction_step_id => l_transaction_step_id
5667 ,p_login_person_id => p_login_person_id);
5668 END IF;
5669 -- GSP Change
5670 -- delete the existing PayRate Transaction if any
5671 -- Need to see if an asg txn step id exists or not.
5672 hr_assignment_common_save_web.get_step
5673 (p_item_type => p_item_type
5674 ,p_item_key => p_item_key
5675 ,p_api_name => 'PER_SSHR_CHANGE_PAY.PROCESS_API'
5676 ,p_transaction_step_id => ln_gsp_step_id
5677 ,p_transaction_id => l_transaction_id);
5678
5679 if (ln_gsp_step_id is null) then
5680 hr_assignment_common_save_web.get_step
5681 (p_item_type => p_item_type
5682 ,p_item_key => p_item_key
5683 ,p_api_name => 'HR_PAY_RATE_SS.PROCESS_API'
5684 ,p_transaction_step_id => ln_gsp_step_id
5685 ,p_transaction_id => l_transaction_id);
5686 end if;
5687
5688 IF (ln_gsp_step_id IS NOT NULL)
5689 THEN
5690 lv_gsp_activity_id := hr_transaction_api.get_number_value
5691 (p_transaction_step_id => ln_gsp_step_id
5692 ,p_name => 'P_REVIEW_ACTID');
5693 if((lv_gsp_activity_id is not null) and (to_number(lv_gsp_activity_id) = -1))
5694 THEN
5695 hr_transaction_ss.delete_transaction_step
5696 (p_transaction_step_id => ln_gsp_step_id
5697 ,p_login_person_id => p_login_person_id);
5698 delete from per_pay_transactions where TRANSACTION_STEP_ID=ln_gsp_step_id;
5699 end if;
5700 END IF;
5701 -- End of GSP change code
5702 end if;
5703 end if;
5704
5705 -- only for registration
5706 if(g_registration) then
5707 -- set it back to false to avoid global variable problems with SS connection pooling
5708 g_registration := false;
5709 end if;
5710
5711 -- applicant_hire
5712 if (g_applicant_hire) then
5713 g_applicant_hire := false;
5714 end if;
5715
5716
5717 EXCEPTION
5718 when hr_utility.hr_error then
5719 hr_message.provide_error;
5720 p_page_error := hr_message.last_message_app;
5721 --p_page_error_msg := hr_message.last_message_name;
5722 p_page_error_msg := hr_message.get_message_text;
5723 -- If its registration then roll back the dummy person
5724 if(g_registration) then
5725 rollback;
5726 -- set it back to false to avoid global variable problems with SS connection pooling
5727 g_registration:= false;
5728 end if;
5729 -- applicant_hire
5730 if (g_applicant_hire) then
5731 rollback to applicant_hire;
5732 g_applicant_hire := false;
5733 end if;
5734 when others then
5735 if(g_registration) then
5736 rollback;
5737 g_registration:= false;
5738 end if;
5739 -- applicant_hire
5740 if (g_applicant_hire) then
5741 rollback to applicant_hire;
5742 g_applicant_hire := false;
5743 end if;
5744 raise;
5745 hr_utility.set_location('Exiting:'||l_proc, 40);
5746 end process_save;
5747
5748 procedure update_object_version
5749 (p_transaction_step_id in number
5750 ,p_login_person_id in number) is
5751
5752 cursor csr_new_object_number(p_asg_id in number) is
5753 select object_version_number
5754 from per_all_assignments_f
5755 where assignment_id = p_asg_id
5756 and assignment_type = 'E'
5757 order by object_version_number desc;
5758
5759 l_old_object_number number;
5760 l_assignment_id number;
5761 l_new_object_number number;
5762 l_proc varchar2(72) := g_package||'update_object_version';
5763
5764 begin
5765
5766 hr_utility.set_location('Entering:'||l_proc, 5);
5767 l_assignment_id :=
5768 hr_transaction_api.get_number_value
5769 (p_transaction_step_id => p_transaction_step_id
5770 ,p_name => 'P_ASSIGNMENT_ID');
5771
5772 open csr_new_object_number(l_assignment_id);
5773 fetch csr_new_object_number into l_new_object_number;
5774 close csr_new_object_number;
5775
5776 l_old_object_number :=
5777 hr_transaction_api.get_number_value
5778 (p_transaction_step_id => p_transaction_step_id
5779 ,p_name => 'P_OBJECT_VERSION_NUMBER');
5780
5781 if l_old_object_number <> l_new_object_number then
5782 hr_utility.set_location('if l_old_object_number <> l_new_object_number then:'||l_proc,10);
5783 hr_transaction_api.set_number_value
5784 (p_transaction_step_id => p_transaction_step_id
5785 ,p_person_id => p_login_person_id
5786 ,p_name => 'P_OBJECT_VERSION_NUMBER'
5787 ,p_value => l_new_object_number);
5788 end if;
5789
5790 hr_utility.set_location('Exiting:'||l_proc, 15);
5791 end update_object_version;
5792 --
5793 --This procedure is to recover all of the assignment data from the transaction
5794 -- tables and save the data into database.
5795 procedure process_api
5796 (p_validate in boolean default false
5797 ,p_transaction_step_id in number
5798 ,p_effective_date in varchar2 default null
5799 ) is
5800
5801 l_assignment_rec per_all_assignments_f%rowtype;
5802 l_effective_date date;
5803 l_datetrack_update_mode varchar2(30);
5804 --
5805 l_special_ceiling_step_id per_all_assignments_f.special_ceiling_step_id%TYPE;
5806 l_effective_start_date date;
5807 l_effective_end_date date;
5808 l_people_group_id per_all_assignments_f.people_group_id%TYPE;
5809 l_group_name VARCHAR2(2000);
5810 l_org_now_no_manager_warning boolean;
5811 l_other_manager_warning boolean;
5812 l_spp_delete_warning boolean;
5813 l_entries_changed_warning VARCHAR2(30);
5814 l_tax_district_changed_warning boolean;
5815 l_soft_coding_keyflex_id per_all_assignments_f.soft_coding_keyflex_id%TYPE;
5816 l_comment_id per_all_assignments_f.comment_id%TYPE;
5817 l_concatenated_segments VARCHAR2(2000);
5818 l_element_changed VARCHAR2(1) default 'W';
5819
5820 l_page_error varchar2(2000);
5821 l_page_error_msg varchar2(2000);
5822 l_page_warning varchar2(2000);
5823 l_page_warning_msg varchar2(2000);
5824 l_organization_error varchar2(2000);
5825 l_organization_error_msg varchar2(2000);
5826 l_job_error varchar2(2000);
5827 l_job_error_msg varchar2(2000);
5828 l_position_error varchar2(2000);
5829 l_position_error_msg varchar2(2000);
5830 l_grade_error varchar2(2000);
5831 l_grade_error_msg varchar2(2000);
5832 l_supervisor_error varchar2(2000);
5833 l_supervisor_error_msg varchar2(2000);
5834 l_location_error varchar2(2000);
5835 l_location_error_msg varchar2(2000);
5836
5837 -- variables and cursors for applicant_hire
5838 l_appl_assignment_type per_all_assignments_f.assignment_type%type;
5839 l_new_hire_appl_hire varchar2(10);
5840 l_login_person_id number;
5841
5842 -- GSP
5843 ltt_salary_data sshr_sal_prop_tab_typ;
5844 lv_gsp_post_process_warning varchar2(2000);
5845 l_proc varchar2(72) := g_package||'process_api';
5846 -- End of GSP
5847
5848 -- cursor to get the applicant object_version_number from
5849 -- per_all_assignments_f
5850 cursor asg_applicant_rec(p_appl_assign_id in number,
5851 p_appl_effective_date in date) is
5852 select object_version_number,
5853 assignment_type,
5854 assignment_status_type_id
5855 from per_all_assignments_f
5856 where assignment_id = p_appl_assign_id
5857 and p_appl_effective_date between effective_start_date
5858 and effective_end_date;
5859
5860 begin
5861 --
5862 -- recover all of the assignment values
5863 --
5864 --
5865 hr_utility.set_location('Entering:'||l_proc, 5);
5866 if (p_effective_date is not null) then
5867 hr_utility.set_location(' if (p_effective_date is not null) then:'||l_proc,10);
5868 l_effective_date:= to_date(p_effective_date,g_date_format);
5869 else
5870 l_effective_date:= to_date(
5871 hr_transaction_ss.get_wf_effective_date
5872 (p_transaction_step_id => p_transaction_step_id),g_date_format);
5873 end if;
5874 --
5875 l_datetrack_update_mode:=
5876 hr_transaction_api.get_varchar2_value
5877 (p_transaction_step_id => p_transaction_step_id
5878 ,p_name => 'P_DATETRACK_UPDATE_MODE');
5879 --
5880 get_asg_from_tt
5881 (p_transaction_step_id => p_transaction_step_id
5882 ,p_assignment_rec => l_assignment_rec);
5883 --
5884 l_special_ceiling_step_id:=l_assignment_rec.special_ceiling_step_id;
5885
5886 -- start registration
5887 -- If its a new user registration flow then the assignmentId which is coming
5888 -- from transaction table will not be valid because the person has just been
5889 -- created by the process_api of the hr_process_person_ss.process_api.
5890 -- We can get that person Id and assignment id by making a call
5891 -- to the global parameters but we need to branch out the code.
5892 -- We also need the latest Object version Number not the one on transaction tbl
5893
5894 -- adding the session id check to avoid connection pooling problems.
5895 if (( hr_process_person_ss.g_assignment_id is not null) and
5896 (hr_process_person_ss.g_session_id= ICX_SEC.G_SESSION_ID))
5897 then
5898 hr_utility.set_location('session id is ICX_SEC.G_SESSION_ID:'||l_proc,15);
5899 l_assignment_rec.person_id := hr_process_person_ss.g_person_id;
5900 l_assignment_rec.assignment_id := hr_process_person_ss.g_assignment_id;
5901 l_assignment_rec.object_version_number:=hr_process_person_ss.g_asg_object_version_number;
5902 -- Hard code ovn to 1 for the new user registration process
5903 --l_assignment_rec.object_version_number:=1;
5904 l_new_hire_appl_hire := 'Y';
5905 end if;
5906
5907 -- end registration
5908 --
5909
5910 -- applicant_hire
5911 -- check if we are updating applicant, if yes we need to get the
5912 -- latest object version
5913 -- number of the applicant who has became employee in BD page
5914 if (hr_process_person_ss.g_is_applicant and
5915 (hr_process_person_ss.g_session_id= ICX_SEC.G_SESSION_ID)) then
5916 hr_utility.set_location('Applicaant ICX_SEC.G_SESSION_ID:'||l_proc,20);
5917 open asg_applicant_rec(l_assignment_rec.assignment_id, l_effective_date);
5918 fetch asg_applicant_rec into l_assignment_rec.object_version_number
5919 ,l_appl_assignment_type
5920 ,l_assignment_rec.assignment_status_type_id;
5921 close asg_applicant_rec;
5922 l_new_hire_appl_hire := 'Y';
5923 end if;
5924 -- end registration
5925
5926 if l_new_hire_appl_hire = 'Y' then
5927 hr_utility.set_location('if l_new_hire_appl_hire = Y then:'||l_proc,25);
5928 l_login_person_id:=
5929 hr_transaction_api.get_number_value
5930 (p_transaction_step_id => p_transaction_step_id
5931 ,p_name => 'P_LOGIN_PERSON_ID');
5932 end if;
5933
5934 -- GSP support code
5935 -- initializing local salary data table type to pass as a parameter
5936 ltt_salary_data := sshr_sal_prop_tab_typ(sshr_sal_prop_obj_typ(
5937 null,-- pay_proposal_id NUMBER,
5938 null,-- assignment_id NUMBER,
5939 null,--business_group_id NUMBER,
5940 null,--effective_date DATE,
5941 null,--comments VARCHAR2(2000),
5942 null,--next_sal_review_date DATE,
5943 null,--salary_change_amount NUMBER ,
5944 null,--salary_change_percent NUMBER ,
5945 null,--annual_change NUMBER ,
5946 null,--proposed_salary NUMBER ,
5947 null,--proposed_percent NUMBER ,
5948 null,--proposal_reason VARCHAR2(30),
5949 null,--ranking NUMBER,
5950 null,--current_salary NUMBER,
5951 null,--performance_review_id NUMBER,
5952 null,--multiple_components VARCHAR2(1),
5953 null,--element_entry_id NUMBER ,
5954 null,--selection_mode VARCHAR2(1),
5955 null,--ovn NUMBER,
5956 null,--currency VARCHAR2(15),
5957 null,--pay_basis_name VARCHAR2(80),
5958 null,--annual_equivalent NUMBER ,
5959 null,--total_percent NUMBER ,
5960 null,--quartile NUMBER ,
5961 null,--comparatio NUMBER ,
5962 null,--lv_selection_mode VARCHAR2(1),
5963 null,--attribute_category VARCHAR2(150),
5964 null,--attribute1 VARCHAR2(150),
5965 null,--attribute2 VARCHAR2(150),
5966 null,--attribute3 VARCHAR2(150),
5967 null,--attribute4 VARCHAR2(150),
5968 null,--attribute5 VARCHAR2(150),
5969 null,--attribute6 VARCHAR2(150),
5970 null,--attribute7 VARCHAR2(150),
5971 null,--attribute8 VARCHAR2(150),
5972 null,--attribute9 VARCHAR2(150),
5973 null,--attribute10 VARCHAR2(150),
5974 null,--attribute11 VARCHAR2(150),
5975 null,--attribute12 VARCHAR2(150),
5976 null,--attribute13 VARCHAR2(150),
5977 null,--attribute14 VARCHAR2(150),
5978 null,--attribute15 VARCHAR2(150),
5979 null,--attribute16 VARCHAR2(150),
5980 null,--attribute17 VARCHAR2(150),
5981 null,--attribute18 VARCHAR2(150),
5982 null,--attribute19 VARCHAR2(150),
5983 null,--attribute20 VARCHAR2(150),
5984 null, --no_of_components NUMBER,
5985 -- 04/12/02 Salary Basis Enhancement Begins
5986 null, -- salary_basis_change_type varchar2(30)
5987 null, -- default_date date
5988 null, -- default_bg_id number
5989 null, -- default_currency VARCHAR2(15)
5990 null, -- default_format_string VARCHAR2(40)
5991 null, -- default_salary_basis_name varchar2(30)
5992 null, -- default_pay_basis_name varchar2(80)
5993 null, -- default_pay_basis varchar2(30)
5994 null, -- default_pay_annual_factor number
5995 null, -- default_grade VARCHAR2(240)
5996 null, -- default_grade_annual_factor number
5997 null, -- default_minimum_salary number
5998 null, -- default_maximum_salary number
5999 null, -- default_midpoint_salary number
6000 null, -- default_prev_salary number
6001 null, -- default_last_change_date date
6002 null, -- default_element_entry_id number
6003 null, -- default_basis_changed number
6004 null, -- default_uom VARCHAR2(30)
6005 null, -- default_grade_uom VARCHAR2(30)
6006 null, -- default_change_amount number
6007 null, -- default_change_percent number
6008 null, -- default_quartile number
6009 null, -- default_comparatio number
6010 null, -- default_last_pay_change varchar2(200)
6011 null, -- default_flsa_status varchar2(80)
6012 null, -- default_currency_symbol varchar2(4)
6013 null, -- default_precision number
6014 -- 04/12/02 Salary Basis Enhancement Ends
6015 -- GSP
6016 null, -- salary_effective_date date
6017 null, -- gsp_dummy_txn varchar2(30)
6018 -- End of GSP
6019 null,
6020 null,
6021 null,
6022 null,
6023 null
6024 ));
6025
6026 --END of GSP
6027
6028 update_assignment(
6029 p_validate => p_validate
6030 ,p_login_person_id => l_login_person_id
6031 ,p_new_hire_appl_hire => l_new_hire_appl_hire
6032 ,p_assignment_id => l_assignment_rec.assignment_id
6033 ,p_object_version_number => l_assignment_rec.object_version_number
6034 ,p_effective_date => l_effective_date
6035 ,p_datetrack_update_mode => l_datetrack_update_mode
6036 ,p_organization_id => l_assignment_rec.organization_id
6037 ,p_position_id => l_assignment_rec.position_id
6038 ,p_job_id => l_assignment_rec.job_id
6039 ,p_grade_id => l_assignment_rec.grade_id
6040 ,p_location_id => l_assignment_rec.location_id
6041 ,p_employment_category => l_assignment_rec.employment_category
6042 ,p_supervisor_id => l_assignment_rec.supervisor_id
6043 ,p_manager_flag => l_assignment_rec.manager_flag
6044 ,p_normal_hours => l_assignment_rec.normal_hours
6045 ,p_frequency => l_assignment_rec.frequency
6046 ,p_time_normal_finish => l_assignment_rec.time_normal_finish
6047 ,p_time_normal_start => l_assignment_rec.time_normal_start
6048 ,p_bargaining_unit_code => l_assignment_rec.bargaining_unit_code
6049 ,p_labour_union_member_flag => l_assignment_rec.labour_union_member_flag
6050 ,p_assignment_status_type_id=> l_assignment_rec.assignment_status_type_id
6051 ,p_change_reason => l_assignment_rec.change_reason
6052 ,p_ass_attribute_category => l_assignment_rec.ass_attribute_category
6053 ,p_ass_attribute1 => l_assignment_rec.ass_attribute1
6054 ,p_ass_attribute2 => l_assignment_rec.ass_attribute2
6055 ,p_ass_attribute3 => l_assignment_rec.ass_attribute3
6056 ,p_ass_attribute4 => l_assignment_rec.ass_attribute4
6057 ,p_ass_attribute5 => l_assignment_rec.ass_attribute5
6058 ,p_ass_attribute6 => l_assignment_rec.ass_attribute6
6059 ,p_ass_attribute7 => l_assignment_rec.ass_attribute7
6060 ,p_ass_attribute8 => l_assignment_rec.ass_attribute8
6061 ,p_ass_attribute9 => l_assignment_rec.ass_attribute9
6062 ,p_ass_attribute10 => l_assignment_rec.ass_attribute10
6063 ,p_ass_attribute11 => l_assignment_rec.ass_attribute11
6064 ,p_ass_attribute12 => l_assignment_rec.ass_attribute12
6065 ,p_ass_attribute13 => l_assignment_rec.ass_attribute13
6066 ,p_ass_attribute14 => l_assignment_rec.ass_attribute14
6067 ,p_ass_attribute15 => l_assignment_rec.ass_attribute15
6068 ,p_ass_attribute16 => l_assignment_rec.ass_attribute16
6069 ,p_ass_attribute17 => l_assignment_rec.ass_attribute17
6070 ,p_ass_attribute18 => l_assignment_rec.ass_attribute18
6071 ,p_ass_attribute19 => l_assignment_rec.ass_attribute19
6072 ,p_ass_attribute20 => l_assignment_rec.ass_attribute20
6073 ,p_ass_attribute21 => l_assignment_rec.ass_attribute21
6074 ,p_ass_attribute22 => l_assignment_rec.ass_attribute22
6075 ,p_ass_attribute23 => l_assignment_rec.ass_attribute23
6076 ,p_ass_attribute24 => l_assignment_rec.ass_attribute24
6077 ,p_ass_attribute25 => l_assignment_rec.ass_attribute25
6078 ,p_ass_attribute26 => l_assignment_rec.ass_attribute26
6079 ,p_ass_attribute27 => l_assignment_rec.ass_attribute27
6080 ,p_ass_attribute28 => l_assignment_rec.ass_attribute28
6081 ,p_ass_attribute29 => l_assignment_rec.ass_attribute29
6082 ,p_ass_attribute30 => l_assignment_rec.ass_attribute30
6083 ,p_soft_coding_keyflex_id => l_assignment_rec.soft_coding_keyflex_id
6084 ,p_people_group_id => l_assignment_rec.people_group_id
6085 ,p_payroll_id => l_assignment_rec.payroll_id
6086 ,p_pay_basis_id => l_assignment_rec.pay_basis_id
6087 ,p_sal_review_period => l_assignment_rec.sal_review_period
6088 ,p_sal_review_period_frequency => l_assignment_rec.sal_review_period_frequency
6089 ,p_date_probation_end => l_assignment_rec.date_probation_end
6090 ,p_probation_period => l_assignment_rec.probation_period
6091 ,p_probation_unit => l_assignment_rec.probation_unit
6092 ,p_notice_period => l_assignment_rec.notice_period
6093 ,p_notice_period_uom => l_assignment_rec.notice_period_uom
6094 ,p_employee_category => l_assignment_rec.employee_category
6095 ,p_work_at_home => l_assignment_rec.work_at_home
6096 ,p_job_post_source_name => l_assignment_rec.job_post_source_name
6097 ,p_perf_review_period => l_assignment_rec.perf_review_period
6098 ,p_perf_review_period_frequency =>
6099 l_assignment_rec.perf_review_period_frequency
6100 ,p_internal_address_line => l_assignment_rec.internal_address_line
6101 ,p_contract_id => l_assignment_rec.contract_id
6102 ,p_establishment_id => l_assignment_rec.establishment_id
6103 ,p_cagr_grade_def_id => l_assignment_rec.cagr_grade_def_id
6104 ,p_collective_agreement_id => l_assignment_rec.collective_agreement_id
6105 ,p_cagr_id_flex_num => l_assignment_rec.cagr_id_flex_num
6106 ,p_business_group_id => l_assignment_rec.business_group_id
6107 ,p_grade_ladder_pgm_id => l_assignment_rec.grade_ladder_pgm_id
6108 ,p_assignment_type => l_assignment_rec.assignment_type
6109 --,p_supervisor_assignment_id => l_assignment_rec.supervisor_assignment_id
6110 ,p_vacancy_id => l_assignment_rec.vacancy_id
6111 ,p_special_ceiling_step_id => l_special_ceiling_step_id
6112 ,p_primary_flag => l_assignment_rec.primary_flag
6113 ,p_person_id => l_assignment_rec.person_id
6114 ,p_default_code_comb_id => l_assignment_rec.default_code_comb_id
6115 ,p_project_title => l_assignment_rec.project_title
6116 ,p_set_of_books_id => l_assignment_rec.set_of_books_id
6117 ,p_source_type => l_assignment_rec.source_type
6118 ,p_title => l_assignment_rec.title
6119 ,p_vendor_assignment_number => l_assignment_rec.vendor_assignment_number
6120 ,p_vendor_employee_number => l_assignment_rec.vendor_employee_number
6121 ,p_vendor_id => l_assignment_rec.vendor_id
6122 ,p_effective_start_date => l_effective_start_date
6123 ,p_effective_end_date => l_effective_end_date
6124 ,p_element_warning => TRUE
6125 ,p_element_changed => l_element_changed
6126 ,p_page_error => l_page_error
6127 ,p_page_error_msg => l_page_error_msg
6128 ,p_page_warning => l_page_warning
6129 ,p_page_warning_msg => l_page_warning_msg
6130 ,p_organization_error => l_organization_error
6131 ,p_organization_error_msg => l_organization_error_msg
6132 ,p_job_error => l_job_error
6133 ,p_job_error_msg => l_job_error_msg
6134 ,p_position_error => l_position_error
6135 ,p_position_error_msg => l_position_error_msg
6136 ,p_grade_error => l_grade_error
6137 ,p_grade_error_msg => l_grade_error_msg
6138 ,p_supervisor_error => l_supervisor_error
6139 ,p_supervisor_error_msg => l_supervisor_error_msg
6140 ,p_location_error => l_location_error
6141 ,p_location_error_msg => l_location_error_msg
6142 -- GSP change
6143 ,p_ltt_salary_data => ltt_salary_data
6144 ,p_gsp_post_process_warning => lv_gsp_post_process_warning
6145 -- End of GSP change
6146 ,p_po_header_id => l_assignment_rec.po_header_id
6147 ,p_po_line_id => l_assignment_rec.po_line_id
6148 ,p_vendor_site_id => l_assignment_rec.vendor_site_id
6149 ,p_projected_asgn_end => l_assignment_rec.projected_assignment_end
6150
6151 );
6152
6153 hr_transaction_swi.set_person_context(l_assignment_rec.person_id
6154 ,l_assignment_rec.assignment_id
6155 ,l_effective_date);
6156
6157
6158 --bug 5032032 fix begin
6159 if l_new_hire_appl_hire = 'Y' then
6160 update_salary_proposal(l_assignment_rec.assignment_id,l_effective_date);
6161 end if;
6162 --bug 5032032 fix end
6163
6164 end process_api;
6165
6166
6167 --This is the procedure to update the assignment data, including
6168 -- the People Group and Soft Coded Key Flexfields
6169 --
6170 procedure update_assignment
6171 (p_validate in boolean default false
6172 ,p_login_person_id in number default null
6173 ,p_new_hire_appl_hire in varchar2 default 'N'
6174 ,p_assignment_id in number
6175 ,p_object_version_number in number
6176 ,p_effective_date in date
6177 ,p_datetrack_update_mode in varchar2
6178 ,p_organization_id in number
6179 ,p_position_id in number default null
6180 ,p_job_id in number default null
6181 ,p_grade_id in number default null
6182 ,p_location_id in number default null
6183 ,p_employment_category in varchar2 default null
6184 ,p_supervisor_id in number default null
6185 ,p_manager_flag in varchar2 default null
6186 ,p_normal_hours in number default null
6187 ,p_frequency in varchar2 default null
6188 ,p_time_normal_finish in varchar2 default null
6189 ,p_time_normal_start in varchar2 default null
6190 ,p_bargaining_unit_code in varchar2 default null
6191 ,p_labour_union_member_flag in varchar2 default null
6192 ,p_assignment_status_type_id in number default null
6193 ,p_change_reason in varchar2 default null
6194 ,p_ass_attribute_category in varchar2 default null
6195 ,p_ass_attribute1 in varchar2 default null
6196 ,p_ass_attribute2 in varchar2 default null
6197 ,p_ass_attribute3 in varchar2 default null
6198 ,p_ass_attribute4 in varchar2 default null
6199 ,p_ass_attribute5 in varchar2 default null
6200 ,p_ass_attribute6 in varchar2 default null
6201 ,p_ass_attribute7 in varchar2 default null
6202 ,p_ass_attribute8 in varchar2 default null
6203 ,p_ass_attribute9 in varchar2 default null
6204 ,p_ass_attribute10 in varchar2 default null
6205 ,p_ass_attribute11 in varchar2 default null
6206 ,p_ass_attribute12 in varchar2 default null
6207 ,p_ass_attribute13 in varchar2 default null
6208 ,p_ass_attribute14 in varchar2 default null
6209 ,p_ass_attribute15 in varchar2 default null
6210 ,p_ass_attribute16 in varchar2 default null
6211 ,p_ass_attribute17 in varchar2 default null
6212 ,p_ass_attribute18 in varchar2 default null
6213 ,p_ass_attribute19 in varchar2 default null
6214 ,p_ass_attribute20 in varchar2 default null
6215 ,p_ass_attribute21 in varchar2 default null
6216 ,p_ass_attribute22 in varchar2 default null
6217 ,p_ass_attribute23 in varchar2 default null
6218 ,p_ass_attribute24 in varchar2 default null
6219 ,p_ass_attribute25 in varchar2 default null
6220 ,p_ass_attribute26 in varchar2 default null
6221 ,p_ass_attribute27 in varchar2 default null
6222 ,p_ass_attribute28 in varchar2 default null
6223 ,p_ass_attribute29 in varchar2 default null
6224 ,p_ass_attribute30 in varchar2 default null
6225 ,p_soft_coding_keyflex_id in out nocopy number
6226 ,p_people_group_id in number default null
6227 ,p_contract_id in number default null
6228 ,p_establishment_id in number default null
6229 ,p_cagr_grade_def_id in number default null
6230 ,p_collective_agreement_id in number default null
6231 ,p_cagr_id_flex_num in number default null
6232 ,p_payroll_id in number default null
6233 ,p_pay_basis_id in number default null
6234 ,p_sal_review_period in number default null
6235 ,p_sal_review_period_frequency in varchar2 default null
6236 ,p_date_probation_end in date default null
6237 ,p_probation_period in number default null
6238 ,p_probation_unit in varchar2 default null
6239 ,p_notice_period in number default null
6240 ,p_notice_period_uom in varchar2 default null
6241 ,p_employee_category in varchar2 default null
6242 ,p_work_at_home in varchar2 default null
6243 ,p_job_post_source_name in varchar2 default null
6244 ,p_perf_review_period in number default null
6245 ,p_perf_review_period_frequency in varchar2 default null
6246 ,p_internal_address_line in varchar2 default null
6247 ,p_business_group_id in per_all_assignments_f.business_group_id%TYPE
6248 -- GSP change
6249 ,p_grade_ladder_pgm_id in per_all_assignments_f.grade_ladder_pgm_id%TYPE
6250 -- GSP change
6251 ,p_assignment_type in per_all_assignments_f.assignment_type%TYPE
6252 --,p_supervisor_assignment_id in per_all_assignments_f.supervisor_assignment_id%TYPE
6253 ,p_vacancy_id in per_all_assignments_f.vacancy_id%TYPE
6254 ,p_special_ceiling_step_id in out nocopy per_all_assignments_f.special_ceiling_step_id%TYPE
6255 ,p_primary_flag in per_all_assignments_f.primary_flag%TYPE
6256 ,p_person_id in per_all_assignments_f.person_id%TYPE
6257 ,p_effective_start_date out nocopy date
6258 ,p_effective_end_date out nocopy date
6259 ,p_element_warning in boolean
6260 ,p_element_changed in out nocopy varchar2
6261 ,p_email_id in varchar2 default null
6262 ,p_page_error in out nocopy varchar2
6263 ,p_page_error_msg in out nocopy varchar2
6264 ,p_page_warning in out nocopy varchar2
6265 ,p_page_warning_msg in out nocopy varchar2
6266 ,p_organization_error in out nocopy varchar2
6267 ,p_organization_error_msg in out nocopy varchar2
6268 ,p_job_error in out nocopy varchar2
6269 ,p_job_error_msg in out nocopy varchar2
6270 ,p_position_error in out nocopy varchar2
6271 ,p_position_error_msg in out nocopy varchar2
6272 ,p_grade_error in out nocopy varchar2
6273 ,p_grade_error_msg in out nocopy varchar2
6274 ,p_supervisor_error in out nocopy varchar2
6275 ,p_supervisor_error_msg in out nocopy varchar2
6276 ,p_location_error in out nocopy varchar2
6277 ,p_location_error_msg in out nocopy varchar2
6278 ,p_title in varchar2 default null
6279 ,p_default_code_comb_id in number default null
6280 ,p_set_of_books_id in number default null
6281 ,p_source_type in varchar2 default null
6282 ,p_project_title in varchar2 default null
6283 ,p_vendor_assignment_number in varchar2 default null
6284 ,p_vendor_employee_number in varchar2 default null
6285 ,p_vendor_id in number default null
6286 --GSP populates salary information from Grade Ladder assignment
6287 ,p_ltt_salary_data IN OUT NOCOPY sshr_sal_prop_tab_typ
6288 ,p_gsp_post_process_warning out nocopy varchar2
6289 -- End of GSP
6290 ,p_po_header_id in number default null
6291 ,p_po_line_id in number default null
6292 ,p_vendor_site_id in number default null
6293 ,p_projected_asgn_end in date default null
6294
6295 ) is
6296 --
6297
6298 l_effective_date date;
6299 l_object_version_number per_all_assignments_f.object_version_number%TYPE;
6300 l_effective_start_date date;
6301 l_effective_end_date date;
6302 -- Fix for 3633612 to pass new people group flx ccid to hr_assignment_api, so that these
6303 -- hr_assignment_api's won't validate the old segment values.
6304 l_people_group_id per_all_assignments_f.people_group_id%TYPE
6305 := p_people_group_id;
6306 l_group_name VARCHAR2(2000);
6307 l_org_now_no_manager_warning boolean;
6308 l_other_manager_warning boolean;
6309 l_spp_delete_warning boolean;
6310 l_entries_changed_warning VARCHAR2(30);
6311 l_tax_district_changed_warning boolean;
6312 l_soft_coding_keyflex_id per_all_assignments_f.soft_coding_keyflex_id%TYPE;
6313 l_cagr_grade_def_id per_all_assignments_f.cagr_grade_def_id%TYPE;
6314 l_cagr_concatenated_segments varchar2(2000);
6315 l_comment_id per_all_assignments_f.comment_id%TYPE;
6316 l_concatenated_segments VARCHAR2(2000);
6317 l_hourly_salaried_warning boolean default false;
6318 l_validation_start_date per_assignments_f.effective_start_date%TYPE;
6319 l_validation_end_date per_assignments_f.effective_end_date%TYPE;
6320 l_validate boolean;
6321 l_inv_pos_grade_warning boolean;
6322 l_org_error boolean default false;
6323 l_job_error boolean default false;
6324 l_pos_error boolean default false;
6325 l_old_wc_code number;
6326 l_old_job_id number;
6327 l_new_wc_code number;
6328 l_assignment_status_type varchar2(30);
6329
6330 -- for disabling the descriptive flex field
6331 l_add_struct_d hr_dflex_utility.l_ignore_dfcode_varray :=
6332 hr_dflex_utility.l_ignore_dfcode_varray();
6333 -- for disabling the key flex field
6334 l_add_struct_k hr_kflex_utility.l_ignore_kfcode_varray :=
6335 hr_kflex_utility.l_ignore_kfcode_varray();
6336 --
6337 -- GSP changes
6338 lb_grd_ldr_exists_flag boolean default false;
6339 -- End of GSP changes
6340 l_proc varchar2(72) := g_package||'update_assignment';
6341 --
6342 cursor current_job_id is
6343 select job_id
6344 from per_all_assignments_f
6345 where assignment_id=p_assignment_id
6346 and l_effective_date between effective_start_date and effective_end_date;
6347
6348 --
6349 cursor wc_code(pc_job_id number) is
6350 select jwc.wc_code
6351 from pay_job_wc_code_usages jwc,
6352 hr_locations_all hl
6353 where jwc.job_id = pc_job_id
6354 and hl.location_id = p_location_id
6355 and jwc.state_code = hl.region_2;
6356 --
6357 cursor status_type is
6358 select per_system_status
6359 from per_assignment_status_types
6360 where assignment_status_type_id=p_assignment_status_type_id;
6361 --
6362
6363 cursor csr_pgp_segments is
6364 select *
6365 from pay_people_groups
6366 where people_group_id = p_people_group_id;
6367
6368 cursor csr_scl_segments is
6369 select *
6370 from hr_soft_coding_keyflex
6371 where soft_coding_keyflex_id = p_soft_coding_keyflex_id;
6372
6373 cursor csr_cag_segments is
6374 select *
6375 from per_cagr_grades_def
6376 where cagr_grade_def_id = p_cagr_grade_def_id;
6377
6378 cursor csr_default_work_schedule(leg_code in varchar2) is
6379 select to_char(user_column_id)
6380 from pay_user_columns puc, hr_organization_information hoi
6381 WHERE (HOI.org_information1 = to_char(PUC.user_table_id)
6382 OR HOI.org_information1 is null )
6383 AND HOI.org_information_context = 'Work Schedule'
6384 AND HOI.organization_id = p_organization_id
6385 AND (puc.business_group_id is null or
6386 puc.business_group_id = p_business_group_id)
6387 AND (puc.legislation_code is null or
6388 puc.legislation_code = leg_code)
6389 and puc.user_column_name = hoi.org_information2;
6390
6391 /*cursor csr_validate_work_schedule(leg_code in varchar2,
6392 segment4 in number) is
6393 select to_char(user_column_id)
6394 from pay_user_columns puc, hr_organization_information hoi
6395 WHERE (HOI.org_information1 = to_char(PUC.user_table_id)
6396 OR HOI.org_information1 is null )
6397 AND HOI.org_information_context = 'Work Schedule'
6398 AND HOI.organization_id = p_organization_id
6399 AND (puc.business_group_id is null or
6400 puc.business_group_id = p_business_group_id)
6401 AND (puc.legislation_code is null or
6402 puc.legislation_code = leg_code)
6403 and puc.user_column_id = segment4;*/
6404
6405 cursor csr_default_gre is
6406 select scl.segment1
6407 from hr_soft_coding_keyflex scl,
6408 per_all_assignments_f asg
6409 where asg.person_id = p_login_person_id
6410 and asg.business_group_id = p_business_group_id --the new hire business group
6411 and asg.primary_flag = 'Y'
6412 and trunc(sysdate) between asg.effective_start_date
6413 and asg.effective_end_date
6414 and asg.soft_coding_keyflex_id = scl.soft_coding_keyflex_id;
6415
6416 -- Fix for Bug # 3116369
6417 cursor csr_cwk_scl_idsel(leg_code in varchar2) is
6418 select rule_mode
6419 from pay_legislation_rules plr
6420 where plr.legislation_code = leg_code
6421 and plr.rule_type = 'CWK_S'
6422 and exists
6423 (select null
6424 from fnd_segment_attribute_values fsav
6425 where fsav.id_flex_num = plr.rule_mode
6426 and fsav.application_id = 800
6427 and fsav.id_flex_code = 'SCL'
6428 and fsav.segment_attribute_type = 'ASSIGNMENT'
6429 and fsav.attribute_value = 'Y')
6430 and exists
6431 (select null
6432 from pay_legislation_rules plr2
6433 where plr2.legislation_code = plr.legislation_code
6434 and plr2.rule_type = 'CWK_SDL'
6435 and plr2.rule_mode = 'A') ;
6436
6437
6438 cursor csr_emp_scl_idsel(leg_code in varchar2) is
6439 select rule_mode
6440 from pay_legislation_rules
6441 where legislation_code = leg_code
6442 and rule_type = 'S'
6443 and exists
6444 (select null
6445 from fnd_segment_attribute_values
6446 where id_flex_num = rule_mode
6447 and application_id = 800
6448 and id_flex_code = 'SCL'
6449 and segment_attribute_type = 'ASSIGNMENT'
6450 and attribute_value = 'Y')
6451 and exists
6452 (select null
6453 from pay_legislation_rules
6454 where legislation_code = leg_code
6455 and rule_type = 'SDL'
6456 and rule_mode = 'A');
6457 --
6458 l_flex_num fnd_id_flex_segments.id_flex_num%TYPE;
6459 l_scl_hide_flag varchar2(1);
6460
6461 l_people_groups csr_pgp_segments%rowtype;
6462 l_soft_coding_keyflex csr_scl_segments%rowtype;
6463 l_cagr_grades_def csr_cag_segments%rowtype;
6464 l_legislation_code per_business_groups.legislation_code%TYPE;
6465 l_new_hire_default varchar2(10);
6466
6467 l_old_payroll_id number;
6468 l_validate_start_date date;
6469 l_validate_end_date date;
6470 l_entries_changed varchar2(250);
6471
6472 begin
6473
6474 hr_utility.set_location('Entering:'||l_proc, 5);
6475 l_effective_date :=trunc(p_effective_date);
6476
6477 l_validate_start_date := p_effective_start_date;
6478 l_validate_end_date := p_effective_end_date;
6479
6480 open csr_pgp_segments;
6481 fetch csr_pgp_segments into l_people_groups;
6482 close csr_pgp_segments;
6483
6484 open csr_scl_segments;
6485 fetch csr_scl_segments into l_soft_coding_keyflex;
6486 close csr_scl_segments;
6487
6488 open csr_cag_segments;
6489 fetch csr_cag_segments into l_cagr_grades_def;
6490 close csr_cag_segments;
6491 --
6492 -- get the current job_id for wc_validation
6493 --
6494 open current_job_id;
6495 fetch current_job_id into l_old_job_id;
6496 if current_job_id%found then
6497 close current_job_id;
6498 else
6499 close current_job_id;
6500 end if;
6501
6502 -- Set default SCL for new hire and applicant hire only
6503 -- for US legislation.
6504 -- if p_soft_coding_keyflex_id is null, the GRE region must be turned off
6505 -- for the new hire flow or the applicant hire flow.
6506 -- we need to set the GRE and Work Schedule default values. Otherwise,
6507 -- core hr api will raise error HR_50001_EMP_ASS_NO_GRE.
6508 -- The default GRE and Work Schedule values are set when the p_login_person_id
6509 -- is not null (update_assignment is called by the process_save).
6510 -- The login_person_id is null when update_assignment is called by
6511 -- process_api. The default values should not be set when called by
6512 -- process_api because the default values are already in transation table.
6513 -- if p_soft_coding_keyflex_id is null, then it must be a new hire or
6514 -- applicant hire.
6515 l_legislation_code := hr_misc_web.get_legislation_code
6516 (p_assignment_id => p_assignment_id,
6517 p_effective_date => l_effective_date);
6518 l_new_hire_default := fnd_profile.value('HR_SSHR_NEW_HIRE_DEFAULTS');
6519
6520 -- Bug Fix for 3116369
6521 -- find the scl hide flag logic in order to set the default values for gre and
6522 -- workschedule segments Bug fix for 3116369
6523 l_scl_hide_flag := 'N';
6524 if p_assignment_type = 'C' then
6525 hr_utility.set_location('if p_assignment_type = C then:'||l_proc,25);
6526 OPEN csr_cwk_scl_idsel(l_legislation_code);
6527 FETCH csr_cwk_scl_idsel INTO l_flex_num;
6528 IF csr_cwk_scl_idsel%NOTFOUND THEN
6529 l_scl_hide_flag := 'Y';
6530 END IF;
6531 CLOSE csr_cwk_scl_idsel;
6532 else
6533 OPEN csr_emp_scl_idsel(l_legislation_code);
6534 FETCH csr_emp_scl_idsel INTO l_flex_num;
6535 IF csr_emp_scl_idsel%NOTFOUND THEN
6536 l_scl_hide_flag := 'Y';
6537 END IF;
6538 CLOSE csr_emp_scl_idsel;
6539 end if;
6540
6541 if (p_login_person_id is not null and
6542 p_new_hire_appl_hire = 'Y' and
6543 p_soft_coding_keyflex_id is null and
6544 (l_new_hire_default is null or l_new_hire_default = 'Y') and
6545 l_scl_hide_flag = 'N')
6546 then
6547 if l_legislation_code = 'US' then
6548 -- set default GRE
6549 open csr_default_gre;
6550 fetch csr_default_gre into l_soft_coding_keyflex.segment1;
6551 close csr_default_gre;
6552 end if;
6553 -- set default work schedule
6554 open csr_default_work_schedule(l_legislation_code);
6555 fetch csr_default_work_schedule into l_soft_coding_keyflex.segment4;
6556 close csr_default_work_schedule;
6557 end if;
6558
6559 -- validate the work schedule segment4 when not new hire.
6560 -- this could be invalid if the SCL is truned off in the web page
6561 -- and organization has been changed.
6562
6563 /*if p_login_person_id is not null and
6564 p_new_hire_appl_hire = 'N'and
6565 l_soft_coding_keyflex.segment4 is not null and
6566 l_legislation_code = 'US' then
6567 begin
6568 open csr_validate_work_schedule
6569 (l_legislation_code, to_number(l_soft_coding_keyflex.segment4));
6570 fetch csr_validate_work_schedule into l_soft_coding_keyflex.segment4;
6571 if csr_validate_work_schedule%notfound then
6572 --not a valid work_schedule
6573 -- set default work schedule
6574 open csr_default_work_schedule(l_legislation_code);
6575 fetch csr_default_work_schedule into l_soft_coding_keyflex.segment4;
6576 if csr_default_work_schedule%notfound then
6577 l_soft_coding_keyflex.segment4 := null;
6578 end if;
6579 close csr_default_work_schedule;
6580 end if;
6581 close csr_validate_work_schedule;
6582 exception
6583 when others then
6584 null;
6585 end;
6586 end if;*/
6587 --
6588 -- since we are calling more than one api, we must issue our own
6589 -- savepoint and manage the rollback ourselves.
6590 --
6591 savepoint validate_assignment;
6592 --
6593 l_object_version_number:=p_object_version_number;
6594 l_validate := p_validate;
6595
6596 if p_assignment_type = 'C' then
6597 hr_utility.set_location('if p_assignment_type = C then:'||l_proc,30);
6598 l_add_struct_k.extend(1);
6599 l_add_struct_k(l_add_struct_k.count) := 'SCL';
6600 hr_kflex_utility.create_ignore_kf_validation(p_rec => l_add_struct_k);
6601 --
6602 -- code for disabling the descriptive flex field
6603 l_add_struct_d.extend(1);
6604 l_add_struct_d(l_add_struct_d.count) := 'PER_ASSIGNMENTS';
6605
6606 hr_dflex_utility.create_ignore_df_validation(p_rec => l_add_struct_d);
6607
6608 hr_assignment_api.update_cwk_asg_criteria
6609 (p_effective_date => l_effective_date
6610 ,p_datetrack_update_mode => p_datetrack_update_mode
6611 ,p_assignment_id => p_assignment_id
6612 ,p_object_version_number => l_object_version_number
6613 ,p_grade_id => p_grade_id
6614 ,p_position_id => p_position_id
6615 ,p_job_id => p_job_id
6616 ,p_location_id => p_location_id
6617 ,p_organization_id => p_organization_id
6618 ,p_pay_basis_id => p_pay_basis_id
6619
6620 -- Fix for Bug #3083706 for updating people grp for CWK
6621 ,p_segment1 => l_people_groups.segment1
6622 ,p_segment2 => l_people_groups.segment2
6623 ,p_segment3 => l_people_groups.segment3
6624 ,p_segment4 => l_people_groups.segment4
6625 ,p_segment5 => l_people_groups.segment5
6626 ,p_segment6 => l_people_groups.segment6
6627 ,p_segment7 => l_people_groups.segment7
6628 ,p_segment8 => l_people_groups.segment8
6629 ,p_segment9 => l_people_groups.segment9
6630 ,p_segment10 => l_people_groups.segment10
6631 ,p_segment11 => l_people_groups.segment11
6632 ,p_segment12 => l_people_groups.segment12
6633 ,p_segment13 => l_people_groups.segment13
6634 ,p_segment14 => l_people_groups.segment14
6635 ,p_segment15 => l_people_groups.segment15
6636 ,p_segment16 => l_people_groups.segment16
6637 ,p_segment17 => l_people_groups.segment17
6638 ,p_segment18 => l_people_groups.segment18
6639 ,p_segment19 => l_people_groups.segment19
6640 ,p_segment20 => l_people_groups.segment20
6641 ,p_segment21 => l_people_groups.segment21
6642 ,p_segment22 => l_people_groups.segment22
6643 ,p_segment23 => l_people_groups.segment23
6644 ,p_segment24 => l_people_groups.segment24
6645 ,p_segment25 => l_people_groups.segment25
6646 ,p_segment26 => l_people_groups.segment26
6647 ,p_segment27 => l_people_groups.segment27
6648 ,p_segment28 => l_people_groups.segment28
6649 ,p_segment29 => l_people_groups.segment29
6650 ,p_segment30 => l_people_groups.segment30
6651 -- end of the bug Fix for #3083706
6652
6653 ,p_people_group_name => l_group_name
6654 ,p_effective_start_date => l_effective_start_date
6655 ,p_effective_end_date => l_effective_end_date
6656 ,p_people_group_id => l_people_group_id
6657 ,p_org_now_no_manager_warning => l_org_now_no_manager_warning
6658 ,p_other_manager_warning => l_other_manager_warning
6659 ,p_spp_delete_warning => l_spp_delete_warning
6660 ,p_entries_changed_warning => l_entries_changed_warning
6661 ,p_tax_district_changed_warning => l_tax_district_changed_warning
6662 );
6663
6664 hr_dflex_utility.remove_ignore_df_validation;
6665 hr_kflex_utility.remove_ignore_kf_validation;
6666 --
6667
6668 l_soft_coding_keyflex_id := p_soft_coding_keyflex_id;
6669
6670 hr_assignment_api.update_cwk_asg
6671 (p_effective_date => l_effective_date
6672 ,p_datetrack_update_mode => 'CORRECTION'
6673 ,p_assignment_id => p_assignment_id
6674 ,p_object_version_number => l_object_version_number
6675 -- Fix for updating assignment_category for CWK , fix for Bug #3083776
6676 ,p_assignment_category => p_employment_category
6677 ,p_change_reason => p_change_reason
6678 --,p_comments => p_comments
6679 ,p_default_code_comb_id => p_default_code_comb_id
6680 ,p_establishment_id => p_establishment_id
6681 ,p_frequency => p_frequency
6682 ,p_internal_address_line => p_internal_address_line
6683 ,p_labour_union_member_flag => p_labour_union_member_flag
6684 ,p_manager_flag => p_manager_flag
6685 ,p_normal_hours => p_normal_hours
6686 ,p_project_title => p_project_title
6687 ,p_set_of_books_id => p_set_of_books_id
6688 ,p_source_type => p_source_type
6689 ,p_supervisor_id => p_supervisor_id
6690 ,p_time_normal_finish => p_time_normal_finish
6691 ,p_time_normal_start => p_time_normal_start
6692 ,p_title => p_title
6693 ,p_vendor_assignment_number => p_vendor_assignment_number
6694 ,p_vendor_employee_number => p_vendor_employee_number
6695 ,p_vendor_id => p_vendor_id
6696 ,p_po_header_id => p_po_header_id
6697 ,p_po_line_id => p_po_line_id
6698 ,p_vendor_site_id => p_vendor_site_id
6699 ,p_projected_assignment_end => p_projected_asgn_end
6700 --,p_assignment_status_type_id => p_assignment_status_type_id --3262804
6701 ,p_attribute_category => p_ass_attribute_category
6702 ,p_attribute1 => p_ass_attribute1
6703 ,p_attribute2 => p_ass_attribute2
6704 ,p_attribute3 => p_ass_attribute3
6705 ,p_attribute4 => p_ass_attribute4
6706 ,p_attribute5 => p_ass_attribute5
6707 ,p_attribute6 => p_ass_attribute6
6708 ,p_attribute7 => p_ass_attribute7
6709 ,p_attribute8 => p_ass_attribute8
6710 ,p_attribute9 => p_ass_attribute9
6711 ,p_attribute10 => p_ass_attribute10
6712 ,p_attribute11 => p_ass_attribute11
6713 ,p_attribute12 => p_ass_attribute12
6714 ,p_attribute13 => p_ass_attribute13
6715 ,p_attribute14 => p_ass_attribute14
6716 ,p_attribute15 => p_ass_attribute15
6717 ,p_attribute16 => p_ass_attribute16
6718 ,p_attribute17 => p_ass_attribute17
6719 ,p_attribute18 => p_ass_attribute18
6720 ,p_attribute19 => p_ass_attribute19
6721 ,p_attribute20 => p_ass_attribute20
6722 ,p_attribute21 => p_ass_attribute21
6723 ,p_attribute22 => p_ass_attribute22
6724 ,p_attribute23 => p_ass_attribute23
6725 ,p_attribute24 => p_ass_attribute24
6726 ,p_attribute25 => p_ass_attribute25
6727 ,p_attribute26 => p_ass_attribute26
6728 ,p_attribute27 => p_ass_attribute27
6729 ,p_attribute28 => p_ass_attribute28
6730 ,p_attribute29 => p_ass_attribute29
6731 ,p_attribute30 => p_ass_attribute30
6732 ,p_scl_segment1 => l_soft_coding_keyflex.segment1
6733 ,p_scl_segment2 => l_soft_coding_keyflex.segment2
6734 ,p_scl_segment3 => l_soft_coding_keyflex.segment3
6735 ,p_scl_segment4 => l_soft_coding_keyflex.segment4
6736 ,p_scl_segment5 => l_soft_coding_keyflex.segment5
6737 ,p_scl_segment6 => l_soft_coding_keyflex.segment6
6738 ,p_scl_segment7 => l_soft_coding_keyflex.segment7
6739 ,p_scl_segment8 => l_soft_coding_keyflex.segment8
6740 ,p_scl_segment9 => l_soft_coding_keyflex.segment9
6741 ,p_scl_segment10 => l_soft_coding_keyflex.segment10
6742 ,p_scl_segment11 => l_soft_coding_keyflex.segment11
6743 ,p_scl_segment12 => l_soft_coding_keyflex.segment12
6744 ,p_scl_segment13 => l_soft_coding_keyflex.segment13
6745 ,p_scl_segment14 => l_soft_coding_keyflex.segment14
6746 ,p_scl_segment15 => l_soft_coding_keyflex.segment15
6747 ,p_scl_segment16 => l_soft_coding_keyflex.segment16
6748 ,p_scl_segment17 => l_soft_coding_keyflex.segment17
6749 ,p_scl_segment18 => l_soft_coding_keyflex.segment18
6750 ,p_scl_segment19 => l_soft_coding_keyflex.segment19
6751 ,p_scl_segment20 => l_soft_coding_keyflex.segment20
6752 ,p_scl_segment21 => l_soft_coding_keyflex.segment21
6753 ,p_scl_segment22 => l_soft_coding_keyflex.segment22
6754 ,p_scl_segment23 => l_soft_coding_keyflex.segment23
6755 ,p_scl_segment24 => l_soft_coding_keyflex.segment24
6756 ,p_scl_segment25 => l_soft_coding_keyflex.segment25
6757 ,p_scl_segment26 => l_soft_coding_keyflex.segment26
6758 ,p_scl_segment27 => l_soft_coding_keyflex.segment27
6759 ,p_scl_segment28 => l_soft_coding_keyflex.segment28
6760 ,p_scl_segment29 => l_soft_coding_keyflex.segment29
6761 ,p_scl_segment30 => l_soft_coding_keyflex.segment30
6762 ,p_org_now_no_manager_warning => l_org_now_no_manager_warning
6763 ,p_effective_start_date => l_effective_start_date
6764 ,p_effective_end_date => l_effective_end_date
6765 ,p_comment_id => l_comment_id
6766 ,p_no_managers_warning => l_org_now_no_manager_warning
6767 ,p_other_manager_warning => l_other_manager_warning
6768 ,p_soft_coding_keyflex_id => l_soft_coding_keyflex_id
6769 ,p_concatenated_segments => l_concatenated_segments
6770 ,p_hourly_salaried_warning => l_hourly_salaried_warning
6771 );
6772 p_soft_coding_keyflex_id := l_soft_coding_keyflex_id;
6773 else
6774 -- perform field level validation first to obtain as much error information
6775 -- as possible
6776 --
6777 -- call the assignment criteria api
6778 -- this enters all of the data which have element link dependencies
6779 --
6780 -- Added for turn off key flex field validation
6781 l_add_struct_k.extend(1);
6782 l_add_struct_k(l_add_struct_k.count) := 'SCL';
6783 l_add_struct_k.extend(1);
6784 l_add_struct_k(l_add_struct_k.count) := 'CAGR';
6785
6786 hr_kflex_utility.create_ignore_kf_validation(p_rec => l_add_struct_k);
6787 --
6788 -- code for disabling the descriptive flex field
6789 l_add_struct_d.extend(1);
6790 l_add_struct_d(l_add_struct_d.count) := 'PER_ASSIGNMENTS';
6791
6792 hr_dflex_utility.create_ignore_df_validation(p_rec => l_add_struct_d);
6793 --
6794 hr_assignment_api.update_emp_asg_criteria
6795 (p_effective_date => l_effective_date
6796 ,p_datetrack_update_mode => p_datetrack_update_mode
6797 ,p_assignment_id => p_assignment_id
6798 ,p_object_version_number => l_object_version_number
6799 ,p_grade_id => p_grade_id
6800 ,p_position_id => p_position_id
6801 ,p_job_id => p_job_id
6802 ,p_location_id => p_location_id
6803 ,p_special_ceiling_step_id => p_special_ceiling_step_id
6804 ,p_organization_id => p_organization_id
6805 ,p_employment_category => p_employment_category
6806 --,p_payroll_id => p_payroll_id
6807 ,p_grade_ladder_pgm_id => p_grade_ladder_pgm_id
6808 --,p_supervisor_assignment_id => p_supervisor_assignment_id
6809 ,p_pay_basis_id => p_pay_basis_id
6810 ,p_segment1 => l_people_groups.segment1
6811 ,p_segment2 => l_people_groups.segment2
6812 ,p_segment3 => l_people_groups.segment3
6813 ,p_segment4 => l_people_groups.segment4
6814 ,p_segment5 => l_people_groups.segment5
6815 ,p_segment6 => l_people_groups.segment6
6816 ,p_segment7 => l_people_groups.segment7
6817 ,p_segment8 => l_people_groups.segment8
6818 ,p_segment9 => l_people_groups.segment9
6819 ,p_segment10 => l_people_groups.segment10
6820 ,p_segment11 => l_people_groups.segment11
6821 ,p_segment12 => l_people_groups.segment12
6822 ,p_segment13 => l_people_groups.segment13
6823 ,p_segment14 => l_people_groups.segment14
6824 ,p_segment15 => l_people_groups.segment15
6825 ,p_segment16 => l_people_groups.segment16
6826 ,p_segment17 => l_people_groups.segment17
6827 ,p_segment18 => l_people_groups.segment18
6828 ,p_segment19 => l_people_groups.segment19
6829 ,p_segment20 => l_people_groups.segment20
6830 ,p_segment21 => l_people_groups.segment21
6831 ,p_segment22 => l_people_groups.segment22
6832 ,p_segment23 => l_people_groups.segment23
6833 ,p_segment24 => l_people_groups.segment24
6834 ,p_segment25 => l_people_groups.segment25
6835 ,p_segment26 => l_people_groups.segment26
6836 ,p_segment27 => l_people_groups.segment27
6837 ,p_segment28 => l_people_groups.segment28
6838 ,p_segment29 => l_people_groups.segment29
6839 ,p_segment30 => l_people_groups.segment30
6840 ,p_contract_id => p_contract_id
6841 ,p_establishment_id => p_establishment_id
6842 ,p_soft_coding_keyflex_id => l_soft_coding_keyflex_id
6843 ,p_concatenated_segments => l_concatenated_segments
6844 ,p_effective_start_date => l_effective_start_date
6845 ,p_effective_end_date => l_effective_end_date
6846 ,p_people_group_id => l_people_group_id
6847 ,p_group_name => l_group_name
6848 ,p_org_now_no_manager_warning => l_org_now_no_manager_warning
6849 ,p_other_manager_warning => l_other_manager_warning
6850 ,p_spp_delete_warning => l_spp_delete_warning
6851 ,p_entries_changed_warning => l_entries_changed_warning
6852 ,p_tax_district_changed_warning => l_tax_district_changed_warning
6853 ,p_gsp_post_process_warning => p_gsp_post_process_warning
6854 );
6855 --
6856 -- bug 5547271
6857 if (hr_process_person_ss.g_is_applicant) then
6858 begin
6859 select PAYROLL_ID into l_old_payroll_id
6860 from per_all_assignments_f
6861 where assignment_id = p_assignment_id and p_effective_date between EFFECTIVE_START_DATE and EFFECTIVE_END_DATE;
6862 end;
6863 hrentmnt.maintain_entries_asg
6864 (p_assignment_id => p_assignment_id
6865 ,p_old_payroll_id => l_old_payroll_id
6866 ,p_new_payroll_id => p_payroll_id
6867 ,p_business_group_id => p_business_group_id
6868 ,p_operation => 'HIRE_APPL'
6869 ,p_actual_term_date => null
6870 ,p_last_standard_date => null
6871 ,p_final_process_date => null
6872 ,p_dt_mode => p_datetrack_update_mode ---check??
6873 ,p_validation_start_date => l_validate_start_date
6874 ,p_validation_end_date => l_validate_end_date
6875 ,p_entries_changed => l_entries_changed
6876 ,p_old_people_group_id => -1
6877 ,p_new_people_group_id => p_people_group_id
6878 );
6879 if l_entries_changed_warning <> 'S' then
6880 l_entries_changed_warning := nvl(l_entries_changed, 'N');
6881 end if;
6882
6883 end if;
6884
6885 -- bug 5547271
6886
6887 -- look to see if the elements have changed
6888 --
6889 if (l_entries_changed_warning<>'N') then
6890 --
6891 -- if the elements have changed, look to see if we want a
6892 -- warning or an error
6893 --
6894 if p_element_warning then
6895 --
6896 -- we want a warning, so look to see if the warning has already been
6897 -- raised and this is the second time through the process
6898 --
6899 if p_element_changed is null then
6900 --
6901 -- since p_element_changed is null, the warning has not already been
6902 -- raised, so raise it
6903 --
6904 hr_utility.set_location('if p_element_changed is null then:'||l_proc,35);
6905 p_element_changed:='W';
6906 --fnd_message.set_name('PER', 'HR_ELEMENT_CHANGED_WARNING_WEB');
6907 --hr_utility.raise_error;
6908 -- Should add page level warning
6909 /*hr_errors_api.addErrorToTable
6910 (p_errorfield => null
6911 ,p_errorcode => to_char(SQLCODE)
6912 ,p_errormsg => hr_util_misc_web.return_msg_text
6913 (p_message_name =>'HR_ELEMENT_CHANGED_WARNING_WEB'
6914 ,p_application_id => 'PER')
6915 ,p_warningflag => true
6916 );*/
6917 else
6918 --warning already raised. will not raise it again.
6919 p_element_changed:='X';
6920 end if;
6921 --
6922 else
6923 --
6924 -- we want a error, so raise one.
6925 --
6926 -- Should add page level warning
6927 fnd_message.set_name('PER', 'HR_ELEMENT_CHANGED_WEB');
6928 hr_utility.raise_error;
6929 /*hr_errors_api.addErrorToTable
6930 (p_errorfield => null
6931 ,p_errorcode => to_char(SQLCODE)
6932 ,p_errormsg => hr_util_misc_web.return_msg_text
6933 (p_message_name => 'HR_ELEMENT_CHANGED_WEB'
6934 ,p_application_id => 'PER')
6935 ,p_email_id => p_email_id
6936 ,p_email_msg => hr_util_misc_web.return_msg_text
6937 (p_message_name => 'HR_ELEMENT_CHANGE_EMAILTXT_WEB'
6938 ,p_application_id => 'PER')
6939 );*/
6940 l_validate:=TRUE;
6941 end if;
6942 end if;
6943 -- if hr_misc_web.get_legislation_code(p_assignment_id=>p_assignment_id) = 'US'
6944 -- then
6945 --
6946 -- look to see if the wc code has changed
6947 --
6948 -- get the WC code for the new job
6949 --
6950 -- Bug 2610926: do not check wc error.
6951 -- open wc_code(p_job_id);
6952 -- fetch wc_code into l_new_wc_code;
6953 -- if wc_code%found then
6954 -- close wc_code;
6955 -- else
6956 -- if there is no appropriate WC code for this job set the code to -1
6957 -- close wc_code;
6958 -- l_new_wc_code:=-1;
6959 -- end if;
6960 --
6961 -- get the WC code for the new job
6962 --
6963 -- open wc_code(l_old_job_id);
6964 -- fetch wc_code into l_old_wc_code;
6965 -- if wc_code%found then
6966 -- close wc_code;
6967 -- else
6968 -- if there is no appropriate WC code for this job set the code to -1
6969 -- close wc_code;
6970 -- l_old_wc_code:=-1;
6971 -- end if;
6972 --
6973 -- if the WC code has changed then always raise an error.
6974 -- this will not happen in non-US legislations as both codes will have been
6975 -- read as to -1, so will match
6976 --
6977 -- if(l_old_wc_code<>l_new_wc_code) then
6978 --Should add page level error
6979 /*hr_errors_api.addErrorToTable
6980 (p_errorfield => null
6981 ,p_errorcode => to_char(SQLCODE)
6982 ,p_errormsg => hr_util_misc_web.return_msg_text
6983 (p_message_name => 'HR_JOB_CHANGES_WC_RATE_WEB'
6984 ,p_application_id => 'PER')
6985 ,p_email_id => p_email_id
6986 ,p_email_msg => hr_util_misc_web.return_msg_text
6987 (p_message_name => 'HR_WC_RATE_CHG_EMAILTXT_WEB'
6988 ,p_application_id => 'PER')
6989 );*/
6990 -- l_validate:=TRUE;
6991 -- fnd_message.set_name('PER', 'HR_JOB_CHANGES_WC_RATE_WEB');
6992 -- hr_utility.raise_error;
6993 -- end if;
6994 -- end if; --end check wc_code
6995 --
6996 -- if there is no manager in the organization now then raise a warning
6997 --
6998 /*if (l_org_now_no_manager_warning) then
6999 --Should add page level warning
7000 fnd_message.set_name('PER','HR_51124_MMV_NO_MGR_EXIST_ORG');
7001 hr_utility.raise_error;
7002 hr_errors_api.addErrorToTable
7003 (p_errorfield => null
7004 ,p_errormsg => fnd_message.get
7005 ,p_warningflag => TRUE);
7006 end if;*/
7007 --
7008 -- if there are other managers then raise a warning
7009 --
7010 /*if (l_other_manager_warning) then
7011 --Should add page level warning
7012 fnd_message.set_name('PER','HR_51125_MMV_MRE_MRG_EXIST_ORG');
7013 hr_utility.raise_error;
7014 hr_errors_api.addErrorToTable
7015 (p_errorfield => null
7016 ,p_errormsg => fnd_message.get
7017 ,p_warningflag => TRUE);
7018 end if;*/
7019 --
7020 -- if there are no errors from the previous api call then call the
7021 -- assignment information api.
7022 -- This is always called in CORRECTION mode because once we have made an UPDATE
7023 -- to the row to make another change to it will be a correction.
7024
7025 --First remove the remove_ignore_df_validation
7026 -- and remove_ignore_kf_validation
7027
7028 hr_dflex_utility.remove_ignore_df_validation;
7029 hr_kflex_utility.remove_ignore_kf_validation;
7030 --
7031
7032 l_soft_coding_keyflex_id := p_soft_coding_keyflex_id;
7033
7034 hr_assignment_api.update_emp_asg
7035 (p_effective_date => l_effective_date
7036 ,p_datetrack_update_mode => 'CORRECTION'
7037 ,p_assignment_id => p_assignment_id
7038 ,p_object_version_number => l_object_version_number
7039 ,p_supervisor_id => p_supervisor_id
7040 ,p_manager_flag => p_manager_flag
7041 ,p_normal_hours => p_normal_hours
7042 ,p_frequency => p_frequency
7043 ,p_time_normal_finish => p_time_normal_finish
7044 ,p_time_normal_start => p_time_normal_start
7045 ,p_bargaining_unit_code => p_bargaining_unit_code
7046 ,p_labour_union_member_flag => p_labour_union_member_flag
7047 ,p_sal_review_period => p_sal_review_period
7048 ,p_sal_review_period_frequency => p_sal_review_period_frequency
7049 ,p_date_probation_end => p_date_probation_end
7050 ,p_probation_period => p_probation_period
7051 ,p_probation_unit => p_probation_unit
7052 ,p_notice_period => p_notice_period
7053 ,p_notice_period_uom => p_notice_period_uom
7054 ,p_employee_category => p_employee_category
7055 ,p_work_at_home => p_work_at_home
7056 ,p_job_post_source_name => p_job_post_source_name
7057 ,p_perf_review_period => p_perf_review_period
7058 ,p_perf_review_period_frequency => p_perf_review_period_frequency
7059 ,p_internal_address_line => p_internal_address_line
7060 ,p_ass_attribute_category => p_ass_attribute_category
7061 ,p_ass_attribute1 => p_ass_attribute1
7062 ,p_ass_attribute2 => p_ass_attribute2
7063 ,p_ass_attribute3 => p_ass_attribute3
7064 ,p_ass_attribute4 => p_ass_attribute4
7065 ,p_ass_attribute5 => p_ass_attribute5
7066 ,p_ass_attribute6 => p_ass_attribute6
7067 ,p_ass_attribute7 => p_ass_attribute7
7068 ,p_ass_attribute8 => p_ass_attribute8
7069 ,p_ass_attribute9 => p_ass_attribute9
7070 ,p_ass_attribute10 => p_ass_attribute10
7071 ,p_ass_attribute11 => p_ass_attribute11
7072 ,p_ass_attribute12 => p_ass_attribute12
7073 ,p_ass_attribute13 => p_ass_attribute13
7074 ,p_ass_attribute14 => p_ass_attribute14
7075 ,p_ass_attribute15 => p_ass_attribute15
7076 ,p_ass_attribute16 => p_ass_attribute16
7077 ,p_ass_attribute17 => p_ass_attribute17
7078 ,p_ass_attribute18 => p_ass_attribute18
7079 ,p_ass_attribute19 => p_ass_attribute19
7080 ,p_ass_attribute20 => p_ass_attribute20
7081 ,p_ass_attribute21 => p_ass_attribute21
7082 ,p_ass_attribute22 => p_ass_attribute22
7083 ,p_ass_attribute23 => p_ass_attribute23
7084 ,p_ass_attribute24 => p_ass_attribute24
7085 ,p_ass_attribute25 => p_ass_attribute25
7086 ,p_ass_attribute26 => p_ass_attribute26
7087 ,p_ass_attribute27 => p_ass_attribute27
7088 ,p_ass_attribute28 => p_ass_attribute28
7089 ,p_ass_attribute29 => p_ass_attribute29
7090 ,p_ass_attribute30 => p_ass_attribute30
7091 ,p_segment1 => l_SOFt_coding_keyflex.segment1
7092 ,p_segment2 => l_soft_coding_keyflex.segment2
7093 ,p_segment3 => l_soft_coding_keyflex.segment3
7094 ,p_segment4 => l_soft_coding_keyflex.segment4
7095 ,p_segment5 => l_soft_coding_keyflex.segment5
7096 ,p_segment6 => l_soft_coding_keyflex.segment6
7097 ,p_segment7 => l_soft_coding_keyflex.segment7
7098 ,p_segment8 => l_soft_coding_keyflex.segment8
7099 ,p_segment9 => l_soft_coding_keyflex.segment9
7100 ,p_segment10 => l_soft_coding_keyflex.segment10
7101 ,p_segment11 => l_soft_coding_keyflex.segment11
7102 ,p_segment12 => l_soft_coding_keyflex.segment12
7103 ,p_segment13 => l_soft_coding_keyflex.segment13
7104 ,p_segment14 => l_soft_coding_keyflex.segment14
7105 ,p_segment15 => l_soft_coding_keyflex.segment15
7106 ,p_segment16 => l_soft_coding_keyflex.segment16
7107 ,p_segment17 => l_soft_coding_keyflex.segment17
7108 ,p_segment18 => l_soft_coding_keyflex.segment18
7109 ,p_segment19 => l_soft_coding_keyflex.segment19
7110 ,p_segment20 => l_soft_coding_keyflex.segment20
7111 ,p_segment21 => l_soft_coding_keyflex.segment21
7112 ,p_segment22 => l_soft_coding_keyflex.segment22
7113 ,p_segment23 => l_soft_coding_keyflex.segment23
7114 ,p_segment24 => l_soft_coding_keyflex.segment24
7115 ,p_segment25 => l_soft_coding_keyflex.segment25
7116 ,p_segment26 => l_soft_coding_keyflex.segment26
7117 ,p_segment27 => l_soft_coding_keyflex.segment27
7118 ,p_segment28 => l_soft_coding_keyflex.segment28
7119 ,p_segment29 => l_soft_coding_keyflex.segment29
7120 ,p_segment30 => l_soft_coding_keyflex.segment30
7121 ,p_cag_segment1 => l_cagr_grades_def.segment1
7122 ,p_cag_segment2 => l_cagr_grades_def.segment2
7123 ,p_cag_segment3 => l_cagr_grades_def.segment3
7124 ,p_cag_segment4 => l_cagr_grades_def.segment4
7125 ,p_cag_segment5 => l_cagr_grades_def.segment5
7126 ,p_cag_segment6 => l_cagr_grades_def.segment6
7127 ,p_cag_segment7 => l_cagr_grades_def.segment7
7128 ,p_cag_segment8 => l_cagr_grades_def.segment8
7129 ,p_cag_segment9 => l_cagr_grades_def.segment9
7130 ,p_cag_segment10 => l_cagr_grades_def.segment10
7131 ,p_cag_segment11 => l_cagr_grades_def.segment11
7132 ,p_cag_segment12 => l_cagr_grades_def.segment12
7133 ,p_cag_segment13 => l_cagr_grades_def.segment13
7134 ,p_cag_segment14 => l_cagr_grades_def.segment14
7135 ,p_cag_segment15 => l_cagr_grades_def.segment15
7136 ,p_cag_segment16 => l_cagr_grades_def.segment16
7137 ,p_cag_segment17 => l_cagr_grades_def.segment17
7138 ,p_cag_segment18 => l_cagr_grades_def.segment18
7139 ,p_cag_segment19 => l_cagr_grades_def.segment19
7140 ,p_cag_segment20 => l_cagr_grades_def.segment20
7141 --,p_contract_id => p_contract_id
7142 --,p_establishment_id => p_establishment_id
7143 ,p_collective_agreement_id => p_collective_agreement_id
7144 ,p_cagr_id_flex_num => p_cagr_id_flex_num
7145 ,p_cagr_grade_def_id => l_cagr_grade_def_id
7146 ,p_cagr_concatenated_segments => l_cagr_concatenated_segments
7147 ,p_soft_coding_keyflex_id => l_soft_coding_keyflex_id
7148 ,p_comment_id => l_comment_id
7149 ,p_effective_start_date => l_effective_start_date
7150 ,p_effective_end_date => l_effective_end_date
7151 ,p_concatenated_segments => l_concatenated_segments
7152 ,p_no_managers_warning => l_org_now_no_manager_warning
7153 ,p_other_manager_warning => l_other_manager_warning
7154 ,p_title => p_title
7155 );
7156
7157 p_soft_coding_keyflex_id := l_soft_coding_keyflex_id;
7158
7159 --
7160 -- check the warning flags again
7161 --
7162 /*if(l_org_now_no_manager_warning) then
7163 --Should add page level warning
7164 --fnd_message.set_name('PER','HR_51124_MMV_NO_MGR_EXIST_ORG');
7165 --hr_utility.raise_error;
7166 hr_errors_api.addErrorToTable
7167 (p_errorfield => null
7168 ,p_errormsg => fnd_message.get
7169 ,p_warningflag => TRUE);
7170 end if;
7171 if(l_other_manager_warning) then
7172 --Should add page level warning
7173 --fnd_message.set_name('PER','HR_51125_MMV_MRE_MRG_EXIST_ORG');
7174 --hr_utility.raise_error;
7175 hr_errors_api.addErrorToTable
7176 (p_errorfield => null
7177 ,p_errormsg => fnd_message.get
7178 ,p_warningflag => TRUE);
7179 end if;*/
7180
7181 --update_emp_asg_criteria again. this is a work around of bug 2493923.
7182 hr_assignment_api.update_emp_asg_criteria
7183 (p_effective_date => l_effective_date
7184 ,p_datetrack_update_mode => 'CORRECTION'
7185 ,p_assignment_id => p_assignment_id
7186 ,p_object_version_number => l_object_version_number
7187 ,p_grade_id => p_grade_id
7188 ,p_special_ceiling_step_id => p_special_ceiling_step_id
7189 ,p_payroll_id => p_payroll_id
7190 ,p_effective_start_date => l_effective_start_date
7191 ,p_effective_end_date => l_effective_end_date
7192 ,p_soft_coding_keyflex_id => l_soft_coding_keyflex_id
7193 ,p_concatenated_segments => l_concatenated_segments
7194 ,p_people_group_id => l_people_group_id
7195 ,p_group_name => l_group_name
7196 ,p_org_now_no_manager_warning => l_org_now_no_manager_warning
7197 ,p_other_manager_warning => l_other_manager_warning
7198 ,p_spp_delete_warning => l_spp_delete_warning
7199 ,p_entries_changed_warning => l_entries_changed_warning
7200 ,p_tax_district_changed_warning => l_tax_district_changed_warning
7201 ,p_gsp_post_process_warning => p_gsp_post_process_warning
7202 );
7203 end if;
7204 --
7205 -- update the assignment status type
7206 --
7207 --
7208 -- chack to see what type of status the new id corresponds to.
7209 --
7210 open status_type;
7211 fetch status_type into l_assignment_status_type;
7212 if status_type%notfound then
7213 close status_type;
7214 else
7215 close status_type;
7216
7217 --
7218 -- if we have an active assignment type then use the activate_emp_asg api
7219 if l_assignment_status_type='ACTIVE_ASSIGN' then
7220 --
7221 -- active emp assignment
7222 --
7223 hr_utility.set_location('if l_assignment_status_type=ACTIVE_ASSIGN then:'||l_proc,40);
7224 hr_assignment_api.activate_emp_asg
7225 (p_effective_date => l_effective_date
7226 ,p_datetrack_update_mode => 'CORRECTION'
7227 ,p_assignment_id => p_assignment_id
7228 ,p_object_version_number => l_object_version_number
7229 ,p_assignment_status_type_id => p_assignment_status_type_id
7230 ,p_change_reason => p_change_reason
7231 ,p_effective_start_date => l_effective_start_date
7232 ,p_effective_end_date => l_effective_end_date);
7233 elsif l_assignment_status_type='ACTIVE_CWK' then
7234 --
7235 --active cwk assignment
7236 --
7237 hr_assignment_api.activate_cwk_asg
7238 (p_effective_date => l_effective_date
7239 ,p_datetrack_update_mode => 'CORRECTION'
7240 ,p_assignment_id => p_assignment_id
7241 ,p_object_version_number => l_object_version_number
7242 ,p_assignment_status_type_id => p_assignment_status_type_id
7243 ,p_change_reason => p_change_reason
7244 ,p_effective_start_date => l_effective_start_date
7245 ,p_effective_end_date => l_effective_end_date);
7246 elsif l_assignment_status_type='SUSP_ASSIGN' then
7247 --
7248 -- suspend emp assignment
7249 --
7250 hr_assignment_api.suspend_emp_asg
7251 (p_effective_date => l_effective_date
7252 ,p_datetrack_update_mode => 'CORRECTION'
7253 ,p_assignment_id => p_assignment_id
7254 ,p_object_version_number => l_object_version_number
7255 ,p_assignment_status_type_id => p_assignment_status_type_id
7256 ,p_change_reason => p_change_reason
7257 ,p_effective_start_date => l_effective_start_date
7258 ,p_effective_end_date => l_effective_end_date);
7259 elsif l_assignment_status_type='SUSP_CWK_ASG' then
7260 --
7261 -- suspend cwk assignment
7262 --
7263 hr_assignment_api.suspend_cwk_asg
7264 (p_effective_date => l_effective_date
7265 ,p_datetrack_update_mode => 'CORRECTION'
7266 ,p_assignment_id => p_assignment_id
7267 ,p_object_version_number => l_object_version_number
7268 ,p_assignment_status_type_id => p_assignment_status_type_id
7269 ,p_change_reason => p_change_reason
7270 ,p_effective_start_date => l_effective_start_date
7271 ,p_effective_end_date => l_effective_end_date);
7272 end if;
7273 end if;
7274 --
7275 p_effective_start_date:=l_effective_start_date;
7276 p_effective_end_date:=l_effective_end_date;
7277
7278 -- GSP changes
7279 -- get salary information in to ltt_salary_data
7280 hr_pay_rate_gsp_ss.check_grade_ladder_exists(
7281 p_business_group_id => p_organization_id,
7282 p_effective_date => l_effective_date,
7283 p_grd_ldr_exists_flag => lb_grd_ldr_exists_flag);
7284 -- may be required to add grade or step or ladder change condition
7285 if(lb_grd_ldr_exists_flag) then
7286 hr_utility.set_location('if(lb_grd_ldr_exists_flag) then:'||l_proc,45);
7287 hr_pay_rate_gsp_ss.get_employee_salary(
7288 p_assignment_id => p_assignment_id,
7289 P_effective_date => l_effective_date,
7290 p_ltt_salary_data => p_ltt_salary_data);
7291 end if;
7292 -- End of GSP changes
7293 --bug 5032032 fix begin
7294 if p_new_hire_appl_hire = 'Y' then
7295 update_salary_proposal(p_assignment_id,l_effective_date);
7296 end if;
7297 --bug 5032032 fix end
7298 --
7299 -- if we are in validate only mode, rollback
7300 --
7301 if l_validate=TRUE then
7302 hr_utility.set_location('if l_validate=TRUE then:rollback'||l_proc,50);
7303 rollback to validate_assignment;
7304 end if;
7305
7306 --
7307 -- handle any errors that are raised.
7308 --
7309 exception
7310 when others then
7311 hr_utility.set_location('Exception:Others'||l_proc,555);
7312 rollback to validate_assignment;
7313 --hr_utility.raise_error;
7314 raise;
7315 --hr_message.provide_error;
7316 --Should add page level error
7317 /*hr_errors_api.addErrorToTable
7318 (p_errorfield => null
7319 ,p_errorcode => hr_message.last_message_number
7320 ,p_errormsg => hr_message.get_message_text);*/
7321 end update_assignment;
7322
7323 --
7324 FUNCTION get_assignment(p_transaction_step_id in number)
7325 RETURN ref_cursor IS
7326 csr ref_cursor;
7327
7328 asgRec hr_transaction_ss.transaction_data;
7329 l_proc varchar2(72) := g_package||'get_assignment';
7330 l_old_mgr_flag varchar2(10);
7331 l_old_labour_union_flag varchar2(10);
7332 l_old_organization_id number;
7333 l_old_pay_basis_id number;
7334 l_old_grade_id number;
7335
7336 begin
7337 hr_utility.set_location('Entering:'||l_proc, 5);
7338
7339 -- Fetch Original Manager Flag
7340 l_old_mgr_flag := hr_transaction_api.get_original_varchar2_value(p_transaction_step_id,'P_MANAGER_FLAG');
7341 -- Fetch Original Labour Union Flag
7342 l_old_labour_union_flag := hr_transaction_api.get_original_varchar2_value(p_transaction_step_id,'P_LABOUR_UNION_MEMBER_FLAG');
7343 l_old_organization_id := hr_transaction_api.get_number_value(p_transaction_step_id,'P_ORGANIZATION_ID');
7344 l_old_pay_basis_id := hr_transaction_api.get_original_number_value(p_transaction_step_id,'P_PAY_BASIS_ID');
7345 l_old_grade_id := hr_transaction_api.get_original_number_value(p_transaction_step_id,'P_GRADE_ID');
7346
7347 hr_transaction_ss.get_transaction_data
7348 (p_transaction_step_id => p_transaction_step_id
7349 ,p_transaction_data => asgRec);
7350
7351 IF (asgRec.name.count < 108) THEN
7352 hr_utility.set_location('IF (asgRec.name.count < 108) THEN:'||l_proc,10);
7353 BEGIN
7354 hr_utility.set_location('Entering For Loop:'||l_proc,15);
7355 FOR I in asgRec.name.count+1 .. 108 LOOP
7356 asgRec.name(I) := null;
7357 asgRec.number_value(I) := null;
7358 asgRec.varchar2_value(I) := null;
7359 asgRec.date_value(I) := null;
7360 END LOOP;
7361 hr_utility.set_location('Exiting For Loop:'||l_proc,15);
7362 END;
7363 END IF;
7364
7365 open csr for
7366 SELECT
7367 asgRec.number_value(1) assignment_id,
7368 asgRec.number_value(8) business_group_id,
7369 asgRec.number_value(7) organization_id,
7370 org.name organization_name,
7371 asgRec.number_value(2) object_version_number,
7372 asgRec.number_value(12) position_id,
7373 pos.name position_name,
7374 asgRec.number_value(14) job_id,
7375 job.name job_name,
7376 asgRec.number_value(16) grade_id,
7377 grade.name grade_name,
7378 asgRec.number_value(18) location_id,
7379 asgRec.varchar2_value(19) employment_category,
7380 asgRec.number_value(20) supervisor_id,
7381 asgRec.varchar2_value(21) manager_flag,
7382 asgRec.number_value(22) normal_hours,
7383 asgRec.varchar2_value(23) frequency,
7384 asgRec.varchar2_value(24) time_normal_finish,
7385 asgRec.varchar2_value(25) time_normal_start,
7386 asgRec.number_value(28) special_ceiling_step_id,
7387 asgRec.number_value(29) assignment_status_type_id,
7388 asgRec.varchar2_value(30) change_reason,
7389 asgRec.varchar2_value(31) ass_attribute_category,
7390 asgRec.varchar2_value(32) ass_attribute1,
7391 asgRec.varchar2_value(33) ass_attribute2,
7392 asgRec.varchar2_value(34) ass_attribute3,
7393 asgRec.varchar2_value(35) ass_attribute4,
7394 asgRec.varchar2_value(36) ass_attribute5,
7395 asgRec.varchar2_value(37) ass_attribute6,
7396 asgRec.varchar2_value(38) ass_attribute7,
7397 asgRec.varchar2_value(39) ass_attribute8,
7398 asgRec.varchar2_value(40) ass_attribute9,
7399 asgRec.varchar2_value(41) ass_attribute10,
7400 asgRec.varchar2_value(42) ass_attribute11,
7401 asgRec.varchar2_value(43) ass_attribute12,
7402 asgRec.varchar2_value(44) ass_attribute13,
7403 asgRec.varchar2_value(45) ass_attribute14,
7404 asgRec.varchar2_value(46) ass_attribute15,
7405 asgRec.varchar2_value(47) ass_attribute16,
7406 asgRec.varchar2_value(48) ass_attribute17,
7407 asgRec.varchar2_value(49) ass_attribute18,
7408 asgRec.varchar2_value(50) ass_attribute19,
7409 asgRec.varchar2_value(51) ass_attribute20,
7410 asgRec.varchar2_value(52) ass_attribute21,
7411 asgRec.varchar2_value(53) ass_attribute22,
7412 asgRec.varchar2_value(54) ass_attribute23,
7413 asgRec.varchar2_value(55) ass_attribute24,
7414 asgRec.varchar2_value(56) ass_attribute25,
7415 asgRec.varchar2_value(57) ass_attribute26,
7416 asgRec.varchar2_value(58) ass_attribute27,
7417 asgRec.varchar2_value(59) ass_attribute28,
7418 asgRec.varchar2_value(60) ass_attribute29,
7419 asgRec.varchar2_value(61) ass_attribute30,
7420 asgRec.number_value(62) people_group_id,
7421 asgRec.number_value(63) soft_coding_keyflex_id,
7422 asgRec.number_value(66) sal_review_period,
7423 asgRec.varchar2_value(67) sal_review_period_frequency,
7424 asgRec.number_value(71) notice_period,
7425 asgRec.varchar2_value(73) employee_category,
7426 asgRec.varchar2_value(74) work_at_home,
7427 asgRec.varchar2_value(75) job_post_source_name,
7428 asgRec.number_value(76) perf_review_period,
7429 asgRec.varchar2_value(77) perf_review_period_frequency,
7430 asgRec.number_value(64) payroll_id,
7431 asgRec.number_value(65) pay_basis_id,
7432 asgRec.number_value(80) establishment_id,
7433 asgRec.varchar2_value(88) title,
7434 asgRec.varchar2_value(89) project_title,
7435 asgRec.varchar2_value(90) source_type,
7436 asgRec.varchar2_value(91) vendor_assignment_number,
7437 asgRec.varchar2_value(92) vendor_employee_number,
7438 asgRec.number_value(84) default_code_comb_id,
7439 asgRec.number_value(85) set_of_books_id,
7440 asgRec.number_value(86) vendor_id,
7441 vendor.vendor_name vendor_name,
7442 asgRec.varchar2_value(87) assignment_type,
7443 asgRec.number_value(104) grade_ladder_id,
7444 pgm.name grade_ladder_name,
7445 asgRec.number_value(105) po_header_id,
7446 asgRec.number_value(106) po_line_id,
7447 asgRec.number_value(107) vendor_site_id,
7448 po_heads.segment1 po_number,
7449 po_lines.line_num po_line_number,
7450 vend_sits.vendor_site_code vendor_site_name,
7451 asgRec.DATE_VALUE(108) projected_assignment_end,
7452 --- Position Defaulting changes
7453 asgRec.number_value(69) probation_period,
7454 asgRec.varchar2_value(70) probation_unit,
7455 asgRec.DATE_VALUE(68) date_probation_end,
7456 asgRec.varchar2_value(72) notice_period_uom,
7457 asgRec.varchar2_value(26) bargaining_unit_code,
7458 hl_bargaining_unit.meaning bargaining_unit_name,
7459 asgRec.varchar2_value(27) labour_union_member_flag,
7460 l_old_mgr_flag old_manager_flag,
7461 l_old_labour_union_flag old_labour_union_flag,
7462 l_old_organization_id old_organization_id,
7463 l_old_pay_basis_id old_pay_basis_id,
7464 l_old_grade_id old_grade_id
7465 from
7466 hr_api_transaction_steps ts
7467 ,hr_api_transaction_values otv, hr_all_organization_units_tl org
7468 ,hr_api_transaction_values jtv, per_jobs_tl job
7469 ,hr_api_transaction_values ptv, hr_all_positions_f_tl pos
7470 ,hr_api_transaction_values gtv, per_grades_tl grade
7471 ,hr_api_transaction_values vtv, po_vendors vendor
7472 ,hr_api_transaction_values gltv, ben_pgm_f pgm
7473 ,hr_api_transaction_values htv, po_headers_all po_heads
7474 ,hr_api_transaction_values ltv, po_lines_all po_lines
7475 ,hr_api_transaction_values stv, po_vendor_sites_all vend_sits
7476 ,hr_api_transaction_values btv, hr_lookups hl_bargaining_unit
7477
7478 where
7479
7480 ts.transaction_step_id = p_transaction_step_id
7481 and otv.transaction_step_id(+) = ts.transaction_step_id
7482 and otv.name(+) = 'P_ORGANIZATION_ID'
7483 and otv.number_value = org.organization_id(+)
7484 and org.language(+) = userenv('LANG')
7485
7486 and jtv.transaction_step_id(+) = ts.transaction_step_id
7487 and jtv.name(+) = 'P_JOB_ID'
7488 and jtv.number_value = job.job_id(+)
7489 and job.language(+) = userenv('LANG')
7490
7491 and ptv.transaction_step_id(+) = ts.transaction_step_id
7492 and ptv.name(+) = 'P_POSITION_ID'
7493 and ptv.number_value = pos.position_id(+)
7494 and pos.language(+) = userenv('LANG')
7495
7496 and gtv.transaction_step_id(+) = ts.transaction_step_id
7497 and gtv.name(+) = 'P_GRADE_ID'
7498 and gtv.number_value = grade.grade_id(+)
7499 and grade.language(+) = userenv('LANG')
7500
7501 and vtv.transaction_step_id(+) = ts.transaction_step_id
7502 and vtv.name(+) = 'P_VENDOR_ID'
7503 and vtv.number_value = vendor.vendor_id(+)
7504
7505 and gltv.transaction_step_id(+) = ts.transaction_step_id
7506 and gltv.name(+) = 'P_GRADE_LADDER_PGM_ID'
7507 and gltv.number_value = pgm.pgm_id(+)
7508
7509 and htv.transaction_step_id(+) = ts.transaction_step_id
7510 and htv.name(+) = 'P_PO_HEADER_ID'
7511 and htv.number_value = po_heads.po_header_id(+)
7512
7513 and ltv.transaction_step_id(+) = ts.transaction_step_id
7514 and ltv.name(+) = 'P_PO_LINE_ID'
7515 and ltv.number_value = po_lines.po_line_id(+)
7516
7517 and stv.transaction_step_id(+) = ts.transaction_step_id
7518 and stv.name(+) = 'P_VENDOR_SITE_ID'
7519 and stv.number_value = vend_sits.vendor_site_id(+)
7520
7521 and btv.transaction_step_id(+) = ts.transaction_step_id
7522 and btv.name(+) = 'P_BARGAINING_UNIT_CODE'
7523 and btv.number_value = hl_bargaining_unit.lookup_code(+)
7524 and hl_bargaining_unit.lookup_type(+) = 'BARGAINING_UNIT_CODE'
7525 and hl_bargaining_unit.enabled_flag(+) = 'Y'
7526 and (trunc(sysdate) between nvl(hl_bargaining_unit.start_date_active(+), trunc(sysdate))
7527 and nvl(hl_bargaining_unit.end_date_active(+), trunc(sysdate)));
7528
7529
7530 hr_utility.set_location('Exiting:'||l_proc, 20);
7531 return csr;
7532 END;
7533
7534 FUNCTION get_rec_cnt
7535 RETURN NUMBER IS
7536 Cnt NUMBER:= 1;
7537 BEGIN
7538 hr_utility.set_location('Entering:get_rec_cnt', 5);
7539 hr_utility.set_location('Exiting:get_rec_cnt', 10);
7540 RETURN Cnt;
7541 END;
7542 --
7543
7544 FUNCTION get_po_number(p_po_header_id in number)
7545 RETURN VARCHAR2 is
7546 cursor csr_po_number(p_id in number) is
7547 -- 4894113: R12 performance repository related fix
7548 -- ISSUE : Shared memory size 2,413,494
7549 -- RESOLUTION:
7550 -- 1.Since we are interested only in poh.segment1 we can
7551 -- drop the rest of the columns and unwanted WHERE clauses from the
7552 -- view po_temp_labor_headers_v
7553 -- 2. The SQL below we have retained all the WHERE clauses
7554 -- dealing with the table po_headers_all, but dropped the rest
7555 -- which are not required in this case.
7556
7557 SELECT poh.segment1 po_number
7558 FROM
7559 po_headers_all poh
7560 WHERE
7561 poh.po_header_id = p_id
7562 AND poh.type_lookup_code = 'STANDARD'
7563 AND poh.authorization_status IN ('APPROVED', 'PRE-APPROVED')
7564 AND poh.approved_flag = 'Y'
7565 AND poh.enabled_flag = 'Y'
7566 AND NVL(poh.cancel_flag, 'N') <> 'Y'
7567 AND NVL(poh.frozen_flag, 'N') <> 'Y'
7568 AND poh.org_id IS NOT NULL
7569 AND EXISTS
7570 (
7571 SELECT
7572 NULL
7573 FROM po_lines_all pol ,
7574 po_line_types_b polt
7575 WHERE pol.po_header_id = poh.po_header_id
7576 AND NVL(pol.cancel_flag, 'N') <> 'Y'
7577 AND pol.line_type_id = polt.line_type_id
7578 AND polt.purchase_basis = 'TEMP LABOR'
7579 );
7580
7581 --select po_number
7582 --from po_temp_labor_headers_v
7583 --where po_header_id = p_id;
7584
7585
7586 l_po_number po_temp_labor_headers_v.po_number%TYPE;
7587 l_proc varchar2(72) := g_package||'get_po_number';
7588
7589 BEGIN
7590 hr_utility.set_location('Entering:'||l_proc, 5);
7591 open csr_po_number(p_po_header_id);
7592 fetch csr_po_number into l_po_number;
7593 close csr_po_number;
7594
7595 hr_utility.set_location('Exiting:'||l_proc, 15);
7596 return l_po_number;
7597 END;
7598
7599 FUNCTION get_po_line_nuber(p_po_line_id in number)
7600 RETURN number is
7601 cursor csr_po_line_number(p_id in number) is
7602 select line_number
7603 from po_temp_labor_lines_v
7604 where po_line_id = p_id;
7605
7606 l_po_line_number number;
7607 l_proc varchar2(72) := g_package||'get_po_line_nuber';
7608
7609 BEGIN
7610 hr_utility.set_location('Entering:'||l_proc, 5);
7611 open csr_po_line_number(p_po_line_id);
7612 fetch csr_po_line_number into l_po_line_number;
7613 close csr_po_line_number;
7614
7615
7616 hr_utility.set_location('Exiting:'||l_proc, 15);
7617 return l_po_line_number;
7618 END;
7619
7620 FUNCTION get_vend_site_name(p_vendor_site_id in number)
7621 RETURN VARCHAR2 is
7622 cursor csr_vendor_site_name(p_id in number) is
7623 select vendor_site_code
7624 from po_vendor_sites_all
7625 where vendor_site_id = p_id;
7626
7627 l_vendor_site_name po_vendor_sites_all.vendor_site_code%TYPE;
7628 l_proc varchar2(72) := g_package||'get_vend_site_name';
7629
7630 BEGIN
7631 hr_utility.set_location('Entering:'||l_proc, 5);
7632 open csr_vendor_site_name(p_vendor_site_id);
7633 fetch csr_vendor_site_name into l_vendor_site_name;
7634 close csr_vendor_site_name;
7635
7636
7637 hr_utility.set_location('Exiting:'||l_proc, 15);
7638 return l_vendor_site_name;
7639 END;
7640
7641 -- End of NTF change
7642
7643 -- Decode funtion for probation_end_date to display it in user
7644 -- preference format
7645 FUNCTION get_probation_end_date(p_probation_end_date in varchar2)
7646 RETURN varchar2 is
7647 l_dateformat VARCHAR2(30);
7648 BEGIN
7649
7650 fnd_profile.get('ICX_DATE_FORMAT_MASK',l_dateformat);
7651 return to_char(to_date(p_probation_end_date, l_dateformat),l_dateformat);
7652 Exception
7653 WHEN OTHERS THEN
7654 return to_char(to_date(p_probation_end_date,'RRRR/MM/DD'), l_dateformat);
7655 END;
7656
7657 --
7658 end hr_process_assignment_ss;