DBA Data[Home] [Help]

PACKAGE BODY: APPS.PER_ASG_UPD

Source


1 Package Body per_asg_upd as
2 /* $Header: peasgrhi.pkb 120.44.12020000.3 2013/02/13 07:11:42 srannama ship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- |                     Private Global Definitions                           |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package  varchar2(33)    := '  per_asg_upd.';  -- Global package name
9 --
10 -- ----------------------------------------------------------------------------
11 -- |----------------------------< dt_update_dml >-----------------------------|
12 -- ----------------------------------------------------------------------------
13 -- {Start Of Comments}
14 --
15 -- Description:
16 --   This procedure controls the execution of dml from the datetrack mode
17 --   of CORRECTION only. It is important to note that the object version
18 --   number is only increment by 1 because the datetrack correction is
19 --   soley for one datetracked row.
20 --   This procedure controls the actual dml update logic. The functions of this
21 --   procedure are as follows:
22 --   1) Get the next object_version_number.
23 --   2) To set and unset the g_api_dml status as required (as we are about to
24 --      perform dml).
25 --   3) To update the specified row in the schema using the primary key in
26 --      the predicates.
27 --   4) To trap any constraint violations that may have occurred.
28 --   5) To raise any other errors.
29 --
30 -- Pre Conditions:
31 --   This is an internal private procedure which must be called from the
32 --   update_dml procedure.
33 --
34 -- In Arguments:
35 --   A Pl/Sql record structre.
36 --
37 -- Post Success:
38 --   The specified row will be updated in the schema.
39 --
40 -- Post Failure:
41 --   On the update dml failure it is important to note that we always reset the
42 --   g_api_dml status to false.
43 --   If a check or unique integrity constraint violation is raised the
44 --   constraint_error procedure will be called.
45 --   If any other error is reported, the error will be raised after the
46 --   g_api_dml status is reset.
47 --
48 -- Developer Implementation Notes:
49 --   The update 'set' arguments list should be modified if any of your
50 --   attributes are not updateable.
51 --
52 -- Access Status:
53 --   Internal Table Handler Use Only.
54 --
55 -- {End Of Comments}
56 -- ----------------------------------------------------------------------------
57 Procedure dt_update_dml
58     (p_rec              in out nocopy per_asg_shd.g_rec_type,
59      p_effective_date     in    date,
60      p_datetrack_mode     in    varchar2,
61      p_validation_start_date in    date,
62      p_validation_end_date     in    date) is
63 --
64   l_proc    varchar2(72) := g_package||'dt_update_dml';
65 -- Start of 518655
66   l_object_version_number number;
67 -- End of 518655
68 --
69 Begin
70   hr_utility.set_location('Entering:'||l_proc, 5);
71   --
72   If (p_datetrack_mode = 'CORRECTION') then
73     hr_utility.set_location(l_proc, 10);
74     --
75     -- Because we are updating a row we must get the next object
76     -- version number.
77     --
78     p_rec.object_version_number :=
79       dt_api.get_object_version_number
80       (p_base_table_name    => 'per_all_assignments_f',
81        p_base_key_column    => 'assignment_id',
82        p_base_key_value    => p_rec.assignment_id);
83     --
84     per_asg_shd.g_api_dml := true;  -- Set the api dml status
85     --
86     -- Update the per_all_assignments_f Row
87     --
88     update  per_all_assignments_f
89     set
90     assignment_id                   = p_rec.assignment_id,
91     recruiter_id                    = p_rec.recruiter_id,
92     grade_id                        = p_rec.grade_id,
93     position_id                     = p_rec.position_id,
94     job_id                          = p_rec.job_id,
95     assignment_status_type_id       = p_rec.assignment_status_type_id,
96     payroll_id                      = p_rec.payroll_id,
97     location_id                     = p_rec.location_id,
98     person_referred_by_id           = p_rec.person_referred_by_id,
99     supervisor_id                   = p_rec.supervisor_id,
100     special_ceiling_step_id         = p_rec.special_ceiling_step_id,
101     recruitment_activity_id         = p_rec.recruitment_activity_id,
102     source_organization_id          = p_rec.source_organization_id,
103     organization_id                 = p_rec.organization_id,
104     people_group_id                 = p_rec.people_group_id,
105     soft_coding_keyflex_id          = p_rec.soft_coding_keyflex_id,
106     vacancy_id                      = p_rec.vacancy_id,
107     pay_basis_id                    = p_rec.pay_basis_id,
108     application_id                  = p_rec.application_id,
109     assignment_number               = p_rec.assignment_number,
110     change_reason                   = p_rec.change_reason,
111     comment_id                      = p_rec.comment_id,
112     date_probation_end              = p_rec.date_probation_end,
113     default_code_comb_id            = p_rec.default_code_comb_id,
114     employment_category             = p_rec.employment_category,
115     frequency                       = p_rec.frequency,
116     internal_address_line           = p_rec.internal_address_line,
117     manager_flag                    = p_rec.manager_flag,
118     normal_hours                    = p_rec.normal_hours,
119     perf_review_period              = p_rec.perf_review_period,
120     perf_review_period_frequency    = p_rec.perf_review_period_frequency,
121     probation_period                = p_rec.probation_period,
122     probation_unit                  = p_rec.probation_unit,
123     sal_review_period               = p_rec.sal_review_period,
124     sal_review_period_frequency     = p_rec.sal_review_period_frequency,
125     set_of_books_id                 = p_rec.set_of_books_id,
126     source_type                     = p_rec.source_type,
127     time_normal_finish              = p_rec.time_normal_finish,
128     time_normal_start               = p_rec.time_normal_start,
129     bargaining_unit_code            = p_rec.bargaining_unit_code,
130     labour_union_member_flag        = p_rec.labour_union_member_flag,
131     hourly_salaried_code            = p_rec.hourly_salaried_code,
132     request_id                      = p_rec.request_id,
133     program_application_id          = p_rec.program_application_id,
134     program_id                      = p_rec.program_id,
135     program_update_date             = p_rec.program_update_date,
136     ass_attribute_category          = p_rec.ass_attribute_category,
137     ass_attribute1                  = p_rec.ass_attribute1,
138     ass_attribute2                  = p_rec.ass_attribute2,
139     ass_attribute3                  = p_rec.ass_attribute3,
140     ass_attribute4                  = p_rec.ass_attribute4,
141     ass_attribute5                  = p_rec.ass_attribute5,
142     ass_attribute6                  = p_rec.ass_attribute6,
143     ass_attribute7                  = p_rec.ass_attribute7,
144     ass_attribute8                  = p_rec.ass_attribute8,
145     ass_attribute9                  = p_rec.ass_attribute9,
146     ass_attribute10                 = p_rec.ass_attribute10,
147     ass_attribute11                 = p_rec.ass_attribute11,
148     ass_attribute12                 = p_rec.ass_attribute12,
149     ass_attribute13                 = p_rec.ass_attribute13,
150     ass_attribute14                 = p_rec.ass_attribute14,
151     ass_attribute15                 = p_rec.ass_attribute15,
152     ass_attribute16                 = p_rec.ass_attribute16,
153     ass_attribute17                 = p_rec.ass_attribute17,
154     ass_attribute18                 = p_rec.ass_attribute18,
155     ass_attribute19                 = p_rec.ass_attribute19,
156     ass_attribute20                 = p_rec.ass_attribute20,
157     ass_attribute21                 = p_rec.ass_attribute21,
158     ass_attribute22                 = p_rec.ass_attribute22,
159     ass_attribute23                 = p_rec.ass_attribute23,
160     ass_attribute24                 = p_rec.ass_attribute24,
161     ass_attribute25                 = p_rec.ass_attribute25,
162     ass_attribute26                 = p_rec.ass_attribute26,
163     ass_attribute27                 = p_rec.ass_attribute27,
164     ass_attribute28                 = p_rec.ass_attribute28,
165     ass_attribute29                 = p_rec.ass_attribute29,
166     ass_attribute30                 = p_rec.ass_attribute30,
167     title                           = p_rec.title,
168     object_version_number           = p_rec.object_version_number ,
169     contract_id                     = p_rec.contract_id,
170     establishment_id                = p_rec.establishment_id,
171     collective_agreement_id         = p_rec.collective_agreement_id,
172     cagr_grade_def_id               = p_rec.cagr_grade_def_id,
173     cagr_id_flex_num                = p_rec.cagr_id_flex_num,
174     notice_period        = p_rec.notice_period,
175     notice_period_uom          = p_rec.notice_period_uom,
176     employee_category          = p_rec.employee_category,
177     work_at_home         = p_rec.work_at_home,
178     job_post_source_name       = p_rec.job_post_source_name,
179     posting_content_id              = p_rec.posting_content_id,
180     period_of_placement_date_start  = p_rec.period_of_placement_date_start,
181     vendor_id                       = p_rec.vendor_id,
182     vendor_employee_number          = p_rec.vendor_employee_number,
183     vendor_assignment_number        = p_rec.vendor_assignment_number,
184     assignment_category             = p_rec.assignment_category,
185     project_title                   = p_rec.project_title,
186     applicant_rank                  = p_rec.applicant_rank,
187     grade_ladder_pgm_id             = p_rec.grade_ladder_pgm_id,
188     supervisor_assignment_id        = p_rec.supervisor_assignment_id,
189     vendor_site_id                  = p_rec.vendor_site_id,
190     po_header_id                    = p_rec.po_header_id,
191     po_line_id                      = p_rec.po_line_id,
192     projected_assignment_end        = p_rec.projected_assignment_end
193     where   assignment_id           = p_rec.assignment_id
194     and     effective_start_date    = p_validation_start_date
195     and     effective_end_date      = p_validation_end_date;
196     --
197 
198     -- Start of fix 518655
199     if nvl(per_asg_shd.g_old_rec.assignment_number, hr_api.g_varchar2) <>
200        nvl(p_rec.assignment_number, hr_api.g_varchar2) then
201            --
202        l_object_version_number := dt_api.get_object_version_number
203                        (p_base_table_name   => 'per_all_assignments_f',
204                         p_base_key_column   => 'assignment_id',
205                         p_base_key_value    =>  p_rec.assignment_id);
206     --
207        update  per_all_assignments_f paaf
208           set  paaf.assignment_number = p_rec.assignment_number,
209                paaf.object_version_number = l_object_version_number
210         where  paaf.assignment_id = p_rec.assignment_id
211           and  paaf.person_id = per_asg_shd.g_old_rec.person_id
212           and  (paaf.effective_start_date < p_validation_start_date
213           or   paaf.effective_end_date > p_validation_end_date);
214             --
215     end if;
216     -- End of fix 518655
217 
218     per_asg_shd.g_api_dml := false;   -- Unset the api dml status
219     --
220     -- Set the effective start and end dates
221     --
222     p_rec.effective_start_date := p_validation_start_date;
223     p_rec.effective_end_date   := p_validation_end_date;
224   End If;
225 --
226 hr_utility.set_location(' Leaving:'||l_proc, 15);
227 Exception
228   When hr_api.check_integrity_violated Then
229     -- A check constraint has been violated
230     per_asg_shd.g_api_dml := false;   -- Unset the api dml status
231     per_asg_shd.constraint_error
232       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
233   When hr_api.unique_integrity_violated Then
234     -- Unique integrity has been violated
235     per_asg_shd.g_api_dml := false;   -- Unset the api dml status
236     per_asg_shd.constraint_error
237       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
238   When Others Then
239     per_asg_shd.g_api_dml := false;   -- Unset the api dml status
240     Raise;
241 End dt_update_dml;
242 --
243 -- ----------------------------------------------------------------------------
244 -- |------------------------------< update_dml >------------------------------|
245 -- ----------------------------------------------------------------------------
246 -- {Start Of Comments}
247 --
248 -- Description:
249 --   This procedure calls the dt_update_dml control logic which handles
250 --   the actual datetrack dml.
251 --
252 -- Pre Conditions:
253 --   This is an internal private procedure which must be called from the upd
254 --   procedure.
255 --
256 -- In Arguments:
257 --   A Pl/Sql record structre.
258 --
259 -- Post Success:
260 --   Processing contines.
261 --
262 -- Post Failure:
263 --   No specific error handling is required within this procedure.
264 --
265 -- Developer Implementation Notes:
266 --   The update 'set' arguments list should be modified if any of your
267 --   attributes are not updateable.
268 --
269 -- Access Status:
270 --   Internal Table Handler Use Only.
271 --
272 -- {End Of Comments}
273 -- ----------------------------------------------------------------------------
274 Procedure update_dml
275     (p_rec              in out nocopy per_asg_shd.g_rec_type,
276      p_effective_date     in    date,
277      p_datetrack_mode     in    varchar2,
278      p_validation_start_date in    date,
279      p_validation_end_date     in    date) is
280 --
281   l_proc    varchar2(72) := g_package||'update_dml';
282 --
283 Begin
284   hr_utility.set_location('Entering:'||l_proc, 5);
285   --
286   dt_update_dml(p_rec            => p_rec,
287         p_effective_date    => p_effective_date,
288         p_datetrack_mode    => p_datetrack_mode,
289                p_validation_start_date    => p_validation_start_date,
290         p_validation_end_date    => p_validation_end_date);
291   --
292   hr_utility.set_location(' Leaving:'||l_proc, 10);
293 End update_dml;
294 --
295 -- ----------------------------------------------------------------------------
296 -- |----------------------------< dt_pre_update >-----------------------------|
297 -- ----------------------------------------------------------------------------
298 -- {Start Of Comments}
299 --
300 -- Description:
301 --   The dt_pre_update procedure controls the execution
302 --   of dml for the datetrack modes of: UPDATE, UPDATE_OVERRIDE
303 --   and UPDATE_CHANGE_INSERT only. The execution required is as
304 --   follows:
305 --
306 --   1) Providing the datetrack update mode is not 'CORRECTION'
307 --      then set the effective end date of the current row (this
308 --      will be the validation_start_date - 1).
309 --   2) If the datetrack mode is 'UPDATE_OVERRIDE' then call the
310 --      corresponding delete_dml process to delete any future rows
311 --      where the effective_start_date is greater than or equal to
312 --    the validation_start_date.
313 --   3) Call the insert_dml process to insert the new updated row
314 --      details..
315 --
316 -- Pre Conditions:
317 --   This is an internal procedure which is called from the
318 --   pre_update procedure.
319 --
320 -- In Arguments:
321 --
322 -- Post Success:
323 --   Processing continues.
324 --
325 -- Post Failure:
326 --   If an error has occurred, an error message and exception will be raised
327 --   but not handled.
328 --
329 -- Developer Implementation Notes:
330 --   This is an internal procedure which is required by Datetrack. Don't
331 --   remove or modify.
332 --
333 -- Access Status:
334 --   Internal Table Handler Use Only.
335 --
336 -- {End Of Comments}
337 -- ----------------------------------------------------------------------------
338 Procedure dt_pre_update
339     (p_rec              in out nocopy    per_asg_shd.g_rec_type,
340      p_effective_date     in    date,
341      p_datetrack_mode     in    varchar2,
342      p_validation_start_date in    date,
343      p_validation_end_date     in    date) is
344 --
345   l_proc              varchar2(72) := g_package||'dt_pre_update';
346   l_dummy_version_number  number;
347 --
348 Begin
349   hr_utility.set_location('Entering:'||l_proc, 5);
350   If (p_datetrack_mode <> 'CORRECTION') then
351     hr_utility.set_location(l_proc, 10);
352     --
353     -- Update the current effective end date
354     --
355     per_asg_shd.upd_effective_end_date
356      (p_effective_date           => p_effective_date,
357       p_base_key_value           => p_rec.assignment_id,
358       p_new_effective_end_date => (p_validation_start_date - 1),
359       p_validation_start_date  => p_validation_start_date,
360       p_validation_end_date    => p_validation_end_date,
361       p_object_version_number  => l_dummy_version_number);
362     --
363     If (p_datetrack_mode = 'UPDATE_OVERRIDE') then
364       hr_utility.set_location(l_proc, 15);
365       --
366       -- As the datetrack mode is 'UPDATE_OVERRIDE' then we must
367       -- delete any future rows
368       --
369       per_asg_del.delete_dml
370         (p_rec             => p_rec,
371      p_effective_date     => p_effective_date,
372      p_datetrack_mode     => p_datetrack_mode,
373      p_validation_start_date => p_validation_start_date,
374      p_validation_end_date   => p_validation_end_date);
375     End If;
376     hr_utility.set_location(l_proc, 20);
377     --
378     -- We must now insert the updated row
379     --
380     per_asg_ins.insert_dml
381       (p_rec            => p_rec,
382        p_effective_date        => p_effective_date,
383        p_datetrack_mode        => p_datetrack_mode,
384        p_validation_start_date    => p_validation_start_date,
385        p_validation_end_date    => p_validation_end_date);
386   End If;
387   hr_utility.set_location(' Leaving:'||l_proc, 20);
388 End dt_pre_update;
389 --
390 -- ----------------------------------------------------------------------------
391 -- |------------------------------< pre_update >------------------------------|
392 -- ----------------------------------------------------------------------------
393 -- {Start Of Comments}
394 --
395 -- Description:
396 --   This private procedure contains any processing which is required before
397 --   the update dml.
398 --
399 -- Pre Conditions:
400 --   This is an internal procedure which is called from the upd procedure.
401 --
402 -- In Arguments:
403 --   A Pl/Sql record structre.
404 --
405 -- Post Success:
406 --   Processing continues.
407 --
408 -- Post Failure:
409 --   If an error has occurred, an error message and exception will be raised
410 --   but not handled.
411 --
412 -- Developer Implementation Notes:
413 --   Any pre-processing required before the update dml is issued should be
414 --   coded within this procedure. It is important to note that any 3rd party
415 --   maintenance should be reviewed before placing in this procedure. The call
416 --   to the dt_update_dml procedure should NOT be removed.
417 --
418 -- Access Status:
419 --   Internal Table Handler Use Only.
420 --
421 -- {End Of Comments}
422 -- ----------------------------------------------------------------------------
423 Procedure pre_update
424     (p_rec              in out nocopy    per_asg_shd.g_rec_type,
425      p_effective_date     in    date,
426      p_datetrack_mode     in    varchar2,
427      p_validation_start_date in    date,
428      p_validation_end_date     in    date) is
429 --
430   l_proc    varchar2(72) := g_package||'pre_update';
431   l_rowid       varchar2(72);
432   l_eed         date;
433   l_esd         date;
434 --
435   Cursor csr_rowid is
436      select rowid, effective_start_date, effective_end_date
437      from per_all_assignments_f
438      where assignment_id = p_rec.assignment_id
439      and p_effective_date between
440          effective_start_date and effective_end_date;
441 --
442   cursor csr_rowid_u is
443      select rowid
444      from per_all_assignments_f
445      where assignment_id = p_rec.assignment_id
446      and p_effective_date -1 between
447          effective_start_date and effective_end_date;
448 --
449 Begin
450   hr_utility.set_location('Entering:'||l_proc, 1);
451   --
452   -- Insert the comment text if comments exist
453   --
454   If (p_rec.comment_text is not null and p_rec.comment_id is null) then
455     hr_comm_api.ins(p_comment_id        => p_rec.comment_id,
456                     p_source_table_name => 'PER_ALL_ASSIGNMENTS_F',
457                     p_comment_text      => p_rec.comment_text);
458   -- Update the comments if they have changed
459   ElsIf (p_rec.comment_id is not null and p_rec.comment_text <>
460          per_asg_shd.g_old_rec.comment_text) then
461     hr_comm_api.upd(p_comment_id        => p_rec.comment_id,
462                     p_source_table_name => 'PER_ALL_ASSIGNMENTS_F',
463                     p_comment_text      => p_rec.comment_text);
464   End If;
465   hr_utility.set_location(l_proc, 10);
466   --
467   -- Generate date probation end
468   --
469   -- Business Rule Mapping
470   -- =====================
471   -- Rule CHK_DATE_PROBATION_END c,e and f
472   -- Rule CHK_PROBATION_PERIOD c
473   -- Rule CHK_PROBATION_UNIT d
474   --
475 -- Bug 3629308, 4041992 Starts Here
476 -- Desc: TO skip the probation end date calculation for both EMP and APL
477   if p_rec.date_probation_end is null then
478   per_asg_bus2.gen_date_probation_end
479     (p_assignment_id         =>  p_rec.assignment_id
480     ,p_effective_date        =>  P_effective_date
481     ,p_probation_unit        =>  p_rec.probation_unit
482     ,p_probation_period      =>  p_rec.probation_period
483     ,p_validation_start_date =>  p_validation_start_date
484     ,p_object_version_number =>  p_rec.object_version_number
485     ,p_date_probation_end    =>  p_rec.date_probation_end
486     );
487   end if;
488 -- Bug 3629308, 4041992 Ends Here
489   --
490   hr_utility.set_location(l_proc, 20);
491   --
492   dt_pre_update
493     (p_rec                    => p_rec,
494      p_effective_date         => p_effective_date,
495      p_datetrack_mode         => p_datetrack_mode,
496      p_validation_start_date => p_validation_start_date,
497      p_validation_end_date   => p_validation_end_date);
498 
499 
500        -- Bug 9092938 Starts
501   -- Desc: Call the BEN proc for change log event.
502    if p_datetrack_mode <> 'CORRECTION' then
503      ben_ext_chlg.log_asg_chg
504      (p_event => 'UPDATE',
505       p_old_rec => per_asg_shd.g_old_rec,
506       p_new_rec => p_rec
507       );
508    end if;
509   -- Bug 9092938 Ends
510 
511   --
512   -- Check for DT mode, if correction use current values
513   -- else use values from currently existing record.
514   --
515   if p_datetrack_mode <> 'CORRECTION' then
516      open csr_rowid_u;
517      fetch csr_rowid_u into l_rowid;
518      close csr_rowid_u;
519      l_esd := p_rec.effective_start_date;
520      l_eed := p_rec.effective_end_date;
521   else
522      open csr_rowid;
523      fetch csr_rowid into l_rowid, l_esd, l_eed;
524      close csr_rowid;
525   end if;
526   --
527   -- Commented for bug 13059935
528   /* ben_dt_trgr_handle.assignment
529     (p_rowid                   => l_rowid
530     ,p_assignment_id           => p_rec.assignment_id
531     ,p_business_group_id       => p_rec.business_group_id
532     ,p_person_id               => p_rec.person_id
533     ,p_effective_start_date    => l_esd
534     ,p_effective_end_date      => l_eed
535     ,p_assignment_status_type_id  => p_rec.assignment_status_type_id
536     ,p_assignment_type         => p_rec.assignment_type
537     ,p_organization_id         => p_rec.organization_id
538     ,p_primary_flag            => p_rec.primary_flag
539     ,p_change_reason           => p_rec.change_reason
540     ,p_employment_category     => p_rec.employment_category
541     ,p_frequency               => p_rec.frequency
542     ,p_grade_id                => p_rec.grade_id
543     ,p_job_id                  => p_rec.job_id
544     ,p_position_id             => p_rec.position_id
545     ,p_location_id             => p_rec.location_id
546     ,p_normal_hours            => p_rec.normal_hours
547     ,p_payroll_id              => p_rec.payroll_id
548     ,p_pay_basis_id            => p_rec.pay_basis_id
549     ,p_bargaining_unit_code    => p_rec.bargaining_unit_code
550     ,p_labour_union_member_flag => p_rec.labour_union_member_flag
551     ,p_hourly_salaried_code    => p_rec.hourly_salaried_code
552     ,p_people_group_id    => p_rec.people_group_id
553     ,p_ass_attribute1 => p_rec.ass_attribute1
554     ,p_ass_attribute2 => p_rec.ass_attribute2
555     ,p_ass_attribute3 => p_rec.ass_attribute3
556     ,p_ass_attribute4 => p_rec.ass_attribute4
557     ,p_ass_attribute5 => p_rec.ass_attribute5
558     ,p_ass_attribute6 => p_rec.ass_attribute6
559     ,p_ass_attribute7 => p_rec.ass_attribute7
560     ,p_ass_attribute8 => p_rec.ass_attribute8
561     ,p_ass_attribute9 => p_rec.ass_attribute9
562     ,p_ass_attribute10 => p_rec.ass_attribute10
563     ,p_ass_attribute11 => p_rec.ass_attribute11
564     ,p_ass_attribute12 => p_rec.ass_attribute12
565     ,p_ass_attribute13 => p_rec.ass_attribute13
566     ,p_ass_attribute14 => p_rec.ass_attribute14
567     ,p_ass_attribute15 => p_rec.ass_attribute15
568     ,p_ass_attribute16 => p_rec.ass_attribute16
569     ,p_ass_attribute17 => p_rec.ass_attribute17
570     ,p_ass_attribute18 => p_rec.ass_attribute18
571     ,p_ass_attribute19 => p_rec.ass_attribute19
572     ,p_ass_attribute20 => p_rec.ass_attribute20
573     ,p_ass_attribute21 => p_rec.ass_attribute21
574     ,p_ass_attribute22 => p_rec.ass_attribute22
575     ,p_ass_attribute23 => p_rec.ass_attribute23
576     ,p_ass_attribute24 => p_rec.ass_attribute24
577     ,p_ass_attribute25 => p_rec.ass_attribute25
578     ,p_ass_attribute26 => p_rec.ass_attribute26
579     ,p_ass_attribute27 => p_rec.ass_attribute27
580     ,p_ass_attribute28 => p_rec.ass_attribute28
581     ,p_ass_attribute29 => p_rec.ass_attribute29
582     ,p_ass_attribute30 => p_rec.ass_attribute30
583     );*/
584   --
585   hr_utility.set_location(' Leaving:'||l_proc, 30);
586 End pre_update;
587 --
588 -- ----------------------------------------------------------------------------
589 -- |-----------------------------< post_update >------------------------------|
590 -- ----------------------------------------------------------------------------
591 -- {Start Of Comments}
592 --
593 -- Description:
594 --   This private procedure contains any processing which is required after the
595 --   update dml.
596 --
597 -- Pre Conditions:
598 --   This is an internal procedure which is called from the upd procedure.
599 --
600 -- In Arguments:
601 --   A Pl/Sql record structre.
602 --
603 -- Post Success:
604 --   Processing continues.
605 --
606 -- Post Failure:
607 --   If an error has occurred, an error message and exception will be raised
608 --   but not handled.
609 --
610 -- Developer Implementation Notes:
611 --   Any post-processing required after the update dml is issued should be
612 --   coded within this procedure. It is important to note that any 3rd party
613 --   maintenance should be reviewed before placing in this procedure.
614 --
615 -- Access Status:
616 --   Internal Table Handler Use Only.
617 --
618 -- {End Of Comments}
619 -- ----------------------------------------------------------------------------
620 Procedure post_update
621     (p_rec                    in per_asg_shd.g_rec_type,
622      p_old_rec                in per_asg_shd.g_rec_type, -- Added for bug 13059935
623      p_old_rowid              in rowid, -- Added for bug 13059935
624      p_effective_date           in date,
625      p_datetrack_mode           in varchar2,
626      p_validation_start_date       in date,
627      p_validation_end_date           in date,
628          p_payroll_id_updated          in boolean,
629          p_other_manager_warning       in boolean,
630          p_hourly_salaried_warning     in boolean,
631          p_no_managers_warning         in boolean,
632          p_org_now_no_manager_warning  in boolean) is
633 --
634   l_proc    varchar2(72) := g_package||'post_update';
635 --
636 Begin
637   hr_utility.set_location('Entering:'||l_proc, 5);
638   --
639   -- Start of API User Hook for post_update.
640 
641       --
642   -- Start changes for bug 13059935
643   ben_dt_trgr_handle.assignment
644     (p_rowid                   => p_old_rowid
645     ,p_assignment_id           => p_old_rec.assignment_id
646     ,p_business_group_id       => p_old_rec.business_group_id
647     ,p_person_id               => p_old_rec.person_id
648     ,p_effective_start_date    => p_old_rec.effective_start_date
649     ,p_effective_end_date      => p_old_rec.effective_end_date
650     ,p_assignment_status_type_id  => p_old_rec.assignment_status_type_id
651     ,p_assignment_type         => p_old_rec.assignment_type
652     ,p_organization_id         => p_old_rec.organization_id
653     ,p_primary_flag            => p_old_rec.primary_flag
654     ,p_change_reason           => p_old_rec.change_reason
655     ,p_employment_category     => p_old_rec.employment_category
656     ,p_frequency               => p_old_rec.frequency
657     ,p_grade_id                => p_old_rec.grade_id
658     ,p_job_id                  => p_old_rec.job_id
659     ,p_position_id             => p_old_rec.position_id
660     ,p_location_id             => p_old_rec.location_id
661     ,p_normal_hours            => p_old_rec.normal_hours
662     ,p_payroll_id              => p_old_rec.payroll_id
663     ,p_pay_basis_id            => p_old_rec.pay_basis_id
664     ,p_bargaining_unit_code    => p_old_rec.bargaining_unit_code
665     ,p_labour_union_member_flag => p_old_rec.labour_union_member_flag
666     ,p_hourly_salaried_code    => p_old_rec.hourly_salaried_code
667     ,p_people_group_id    => p_old_rec.people_group_id
668     ,p_ass_attribute1 => p_old_rec.ass_attribute1
669     ,p_ass_attribute2 => p_old_rec.ass_attribute2
670     ,p_ass_attribute3 => p_old_rec.ass_attribute3
671     ,p_ass_attribute4 => p_old_rec.ass_attribute4
672     ,p_ass_attribute5 => p_old_rec.ass_attribute5
673     ,p_ass_attribute6 => p_old_rec.ass_attribute6
674     ,p_ass_attribute7 => p_old_rec.ass_attribute7
675     ,p_ass_attribute8 => p_old_rec.ass_attribute8
676     ,p_ass_attribute9 => p_old_rec.ass_attribute9
677     ,p_ass_attribute10 => p_old_rec.ass_attribute10
678     ,p_ass_attribute11 => p_old_rec.ass_attribute11
679     ,p_ass_attribute12 => p_old_rec.ass_attribute12
680     ,p_ass_attribute13 => p_old_rec.ass_attribute13
681     ,p_ass_attribute14 => p_old_rec.ass_attribute14
682     ,p_ass_attribute15 => p_old_rec.ass_attribute15
683     ,p_ass_attribute16 => p_old_rec.ass_attribute16
684     ,p_ass_attribute17 => p_old_rec.ass_attribute17
685     ,p_ass_attribute18 => p_old_rec.ass_attribute18
686     ,p_ass_attribute19 => p_old_rec.ass_attribute19
687     ,p_ass_attribute20 => p_old_rec.ass_attribute20
688     ,p_ass_attribute21 => p_old_rec.ass_attribute21
689     ,p_ass_attribute22 => p_old_rec.ass_attribute22
690     ,p_ass_attribute23 => p_old_rec.ass_attribute23
691     ,p_ass_attribute24 => p_old_rec.ass_attribute24
692     ,p_ass_attribute25 => p_old_rec.ass_attribute25
693     ,p_ass_attribute26 => p_old_rec.ass_attribute26
694     ,p_ass_attribute27 => p_old_rec.ass_attribute27
695     ,p_ass_attribute28 => p_old_rec.ass_attribute28
696     ,p_ass_attribute29 => p_old_rec.ass_attribute29
697     ,p_ass_attribute30 => p_old_rec.ass_attribute30
698     );
699   -- End changes for bug 13059935
700 
701   hr_utility.set_location('Entering:'||l_proc, 6);
702 
703 
704   begin
705     per_asg_rku.after_update
706       (p_effective_date                 => p_effective_date
707       ,p_datetrack_mode                 => p_datetrack_mode
708       ,p_validation_start_date          => p_validation_start_date
709       ,p_validation_end_date            => p_validation_end_date
710       ,p_assignment_id                  => p_rec.assignment_id
711       ,p_effective_start_date           => p_rec.effective_start_date
712       ,p_effective_end_date             => p_rec.effective_end_date
713       ,p_recruiter_id                   => p_rec.recruiter_id
714       ,p_grade_id                       => p_rec.grade_id
715       ,p_position_id                    => p_rec.position_id
716       ,p_job_id                         => p_rec.job_id
717       ,p_assignment_status_type_id      => p_rec.assignment_status_type_id
718       ,p_payroll_id                     => p_rec.payroll_id
719       ,p_location_id                    => p_rec.location_id
720       ,p_person_referred_by_id          => p_rec.person_referred_by_id
721       ,p_supervisor_id                  => p_rec.supervisor_id
722       ,p_special_ceiling_step_id        => p_rec.special_ceiling_step_id
723       ,p_recruitment_activity_id        => p_rec.recruitment_activity_id
724       ,p_source_organization_id         => p_rec.source_organization_id
725       ,p_organization_id                => p_rec.organization_id
726       ,p_people_group_id                => p_rec.people_group_id
727       ,p_soft_coding_keyflex_id         => p_rec.soft_coding_keyflex_id
728       ,p_vacancy_id                     => p_rec.vacancy_id
729       ,p_pay_basis_id                   => p_rec.pay_basis_id
730       ,p_assignment_type                => p_rec.assignment_type
731       ,p_primary_flag                   => p_rec.primary_flag
732       ,p_application_id                 => p_rec.application_id
733       ,p_assignment_number              => p_rec.assignment_number
734       ,p_change_reason                  => p_rec.change_reason
735       ,p_comment_id                     => p_rec.comment_id
736       ,p_comments                       => p_rec.comment_text
737       ,p_date_probation_end             => p_rec.date_probation_end
738       ,p_default_code_comb_id           => p_rec.default_code_comb_id
739       ,p_employment_category            => p_rec.employment_category
740       ,p_frequency                      => p_rec.frequency
741       ,p_internal_address_line          => p_rec.internal_address_line
742       ,p_manager_flag                   => p_rec.manager_flag
743       ,p_normal_hours                   => p_rec.normal_hours
744       ,p_perf_review_period             => p_rec.perf_review_period
745       ,p_perf_review_period_frequen     => p_rec.perf_review_period_frequency
746       ,p_period_of_service_id           => p_rec.period_of_service_id
747       ,p_probation_period               => p_rec.probation_period
748       ,p_probation_unit                 => p_rec.probation_unit
749       ,p_sal_review_period              => p_rec.sal_review_period
750       ,p_sal_review_period_frequen      => p_rec.sal_review_period_frequency
751       ,p_set_of_books_id                => p_rec.set_of_books_id
752       ,p_source_type                    => p_rec.source_type
753       ,p_time_normal_finish             => p_rec.time_normal_finish
754       ,p_time_normal_start              => p_rec.time_normal_start
755       ,p_bargaining_unit_code           => p_rec.bargaining_unit_code
756       ,p_labour_union_member_flag       => p_rec.labour_union_member_flag
757       ,p_hourly_salaried_code           => p_rec.hourly_salaried_code
758       ,p_request_id                     => p_rec.request_id
759       ,p_program_application_id         => p_rec.program_application_id
760       ,p_program_id                     => p_rec.program_id
761       ,p_program_update_date            => p_rec.program_update_date
762       ,p_ass_attribute_category         => p_rec.ass_attribute_category
763       ,p_ass_attribute1                 => p_rec.ass_attribute1
764       ,p_ass_attribute2                 => p_rec.ass_attribute2
765       ,p_ass_attribute3                 => p_rec.ass_attribute3
766       ,p_ass_attribute4                 => p_rec.ass_attribute4
767       ,p_ass_attribute5                 => p_rec.ass_attribute5
768       ,p_ass_attribute6                 => p_rec.ass_attribute6
769       ,p_ass_attribute7                 => p_rec.ass_attribute7
770       ,p_ass_attribute8                 => p_rec.ass_attribute8
771       ,p_ass_attribute9                 => p_rec.ass_attribute9
772       ,p_ass_attribute10                => p_rec.ass_attribute10
773       ,p_ass_attribute11                => p_rec.ass_attribute11
774       ,p_ass_attribute12                => p_rec.ass_attribute12
775       ,p_ass_attribute13                => p_rec.ass_attribute13
776       ,p_ass_attribute14                => p_rec.ass_attribute14
777       ,p_ass_attribute15                => p_rec.ass_attribute15
778       ,p_ass_attribute16                => p_rec.ass_attribute16
779       ,p_ass_attribute17                => p_rec.ass_attribute17
780       ,p_ass_attribute18                => p_rec.ass_attribute18
781       ,p_ass_attribute19                => p_rec.ass_attribute19
782       ,p_ass_attribute20                => p_rec.ass_attribute20
783       ,p_ass_attribute21                => p_rec.ass_attribute21
784       ,p_ass_attribute22                => p_rec.ass_attribute22
785       ,p_ass_attribute23                => p_rec.ass_attribute23
786       ,p_ass_attribute24                => p_rec.ass_attribute24
787       ,p_ass_attribute25                => p_rec.ass_attribute25
788       ,p_ass_attribute26                => p_rec.ass_attribute26
789       ,p_ass_attribute27                => p_rec.ass_attribute27
790       ,p_ass_attribute28                => p_rec.ass_attribute28
791       ,p_ass_attribute29                => p_rec.ass_attribute29
792       ,p_ass_attribute30                => p_rec.ass_attribute30
793       ,p_title                          => p_rec.title
794       ,p_contract_id                    => p_rec.contract_id
795       ,p_establishment_id               => p_rec.establishment_id
796       ,p_collective_agreement_id        => p_rec.collective_agreement_id
797       ,p_cagr_grade_def_id              => p_rec.cagr_grade_def_id
798       ,p_cagr_id_flex_num               => p_rec.cagr_id_flex_num
799       ,p_object_version_number          => p_rec.object_version_number
800       ,p_payroll_id_updated             => p_payroll_id_updated
801       ,p_other_manager_warning          => p_other_manager_warning
802       ,p_hourly_salaried_warning        => p_hourly_salaried_warning
803       ,p_no_managers_warning            => p_no_managers_warning
804       ,p_org_now_no_manager_warning     => p_org_now_no_manager_warning
805       ,p_notice_period             => p_rec.notice_period
806       ,p_notice_period_uom    => p_rec.notice_period_uom
807       ,p_employee_category    => p_rec.employee_category
808       ,p_work_at_home         => p_rec.work_at_home
809       ,p_job_post_source_name    => p_rec.job_post_source_name
810       ,p_posting_content_id             => p_rec.posting_content_id
811       ,p_placement_date_start => p_rec.period_of_placement_date_start
812       ,p_vendor_id                      => p_rec.vendor_id
813       ,p_vendor_employee_number         => p_rec.vendor_employee_number
814       ,p_vendor_assignment_number       => p_rec.vendor_assignment_number
815       ,p_assignment_category            => p_rec.assignment_category
816       ,p_project_title                  => p_rec.project_title
817       ,p_applicant_rank                 => p_rec.applicant_rank
818       ,p_grade_ladder_pgm_id            => p_rec.grade_ladder_pgm_id
819       ,p_supervisor_assignment_id       => p_rec.supervisor_assignment_id
820       ,p_vendor_site_id                 => p_rec.vendor_site_id
821       ,p_po_header_id                   => p_rec.po_header_id
822       ,p_po_line_id                     => p_rec.po_line_id
823       ,p_projected_assignment_end       => p_rec.projected_assignment_end
824       ,p_effective_start_date_o
825           => per_asg_shd.g_old_rec.effective_start_date
826       ,p_effective_end_date_o
827           => per_asg_shd.g_old_rec.effective_end_date
828       ,p_business_group_id_o
829           => per_asg_shd.g_old_rec.business_group_id
830       ,p_recruiter_id_o
831           => per_asg_shd.g_old_rec.recruiter_id
832       ,p_grade_id_o
833           => per_asg_shd.g_old_rec.grade_id
834       ,p_position_id_o
835           => per_asg_shd.g_old_rec.position_id
836       ,p_job_id_o
837           => per_asg_shd.g_old_rec.job_id
838       ,p_assignment_status_type_id_o
839           => per_asg_shd.g_old_rec.assignment_status_type_id
840       ,p_payroll_id_o
841           => per_asg_shd.g_old_rec.payroll_id
842       ,p_location_id_o
843           => per_asg_shd.g_old_rec.location_id
844       ,p_person_referred_by_id_o
845           => per_asg_shd.g_old_rec.person_referred_by_id
846       ,p_supervisor_id_o
847           => per_asg_shd.g_old_rec.supervisor_id
848       ,p_special_ceiling_step_id_o
849           => per_asg_shd.g_old_rec.special_ceiling_step_id
850       ,p_person_id_o
851           => per_asg_shd.g_old_rec.person_id
852       ,p_recruitment_activity_id_o
853           => per_asg_shd.g_old_rec.recruitment_activity_id
854       ,p_source_organization_id_o
855           => per_asg_shd.g_old_rec.source_organization_id
856       ,p_organization_id_o
857           => per_asg_shd.g_old_rec.organization_id
858       ,p_people_group_id_o
859           => per_asg_shd.g_old_rec.people_group_id
860       ,p_soft_coding_keyflex_id_o
861           => per_asg_shd.g_old_rec.soft_coding_keyflex_id
862       ,p_vacancy_id_o
863           => per_asg_shd.g_old_rec.vacancy_id
864       ,p_assignment_sequence_o
865           => per_asg_shd.g_old_rec.assignment_sequence
866       ,p_pay_basis_id_o
867           => per_asg_shd.g_old_rec.pay_basis_id
868       ,p_assignment_type_o
869           => per_asg_shd.g_old_rec.assignment_type
870       ,p_primary_flag_o
871           => per_asg_shd.g_old_rec.primary_flag
872       ,p_application_id_o
873           => per_asg_shd.g_old_rec.application_id
874       ,p_assignment_number_o
875           => per_asg_shd.g_old_rec.assignment_number
876       ,p_change_reason_o
877           => per_asg_shd.g_old_rec.change_reason
878       ,p_comment_id_o
879           => per_asg_shd.g_old_rec.comment_id
880       ,p_date_probation_end_o
881           => per_asg_shd.g_old_rec.date_probation_end
882       ,p_default_code_comb_id_o
883           => per_asg_shd.g_old_rec.default_code_comb_id
884       ,p_employment_category_o
885           => per_asg_shd.g_old_rec.employment_category
886       ,p_frequency_o
887           => per_asg_shd.g_old_rec.frequency
888       ,p_internal_address_line_o
889           => per_asg_shd.g_old_rec.internal_address_line
890       ,p_manager_flag_o
891           => per_asg_shd.g_old_rec.manager_flag
892       ,p_normal_hours_o
893           => per_asg_shd.g_old_rec.normal_hours
894       ,p_perf_review_period_o
895           => per_asg_shd.g_old_rec.perf_review_period
896       ,p_perf_review_period_frequen_o
897           => per_asg_shd.g_old_rec.perf_review_period_frequency
898       ,p_period_of_service_id_o
899           => per_asg_shd.g_old_rec.period_of_service_id
900       ,p_probation_period_o
901           => per_asg_shd.g_old_rec.probation_period
902       ,p_probation_unit_o
903           => per_asg_shd.g_old_rec.probation_unit
904       ,p_sal_review_period_o
905           => per_asg_shd.g_old_rec.sal_review_period
906       ,p_sal_review_period_frequen_o
907           => per_asg_shd.g_old_rec.sal_review_period_frequency
908       ,p_set_of_books_id_o
909           => per_asg_shd.g_old_rec.set_of_books_id
910       ,p_source_type_o
911           => per_asg_shd.g_old_rec.source_type
912       ,p_time_normal_finish_o
913           => per_asg_shd.g_old_rec.time_normal_finish
914       ,p_time_normal_start_o
915           => per_asg_shd.g_old_rec.time_normal_start
916       ,p_bargaining_unit_code_o
917           => per_asg_shd.g_old_rec.bargaining_unit_code
918       ,p_labour_union_member_flag_o
919           => per_asg_shd.g_old_rec.labour_union_member_flag
920       ,p_hourly_salaried_code_o
921           => per_asg_shd.g_old_rec.hourly_salaried_code
922       ,p_request_id_o
923           => per_asg_shd.g_old_rec.request_id
924       ,p_program_application_id_o
925           => per_asg_shd.g_old_rec.program_application_id
926       ,p_program_id_o
927           => per_asg_shd.g_old_rec.program_id
928       ,p_program_update_date_o
929           => per_asg_shd.g_old_rec.program_update_date
930       ,p_ass_attribute_category_o
931           => per_asg_shd.g_old_rec.ass_attribute_category
932       ,p_ass_attribute1_o
933           => per_asg_shd.g_old_rec.ass_attribute1
934       ,p_ass_attribute2_o
935           => per_asg_shd.g_old_rec.ass_attribute2
936       ,p_ass_attribute3_o
937           => per_asg_shd.g_old_rec.ass_attribute3
938       ,p_ass_attribute4_o
939           => per_asg_shd.g_old_rec.ass_attribute4
940       ,p_ass_attribute5_o
941           => per_asg_shd.g_old_rec.ass_attribute5
942       ,p_ass_attribute6_o
943           => per_asg_shd.g_old_rec.ass_attribute6
944       ,p_ass_attribute7_o
945           => per_asg_shd.g_old_rec.ass_attribute7
946       ,p_ass_attribute8_o
947           => per_asg_shd.g_old_rec.ass_attribute8
948       ,p_ass_attribute9_o
949           => per_asg_shd.g_old_rec.ass_attribute9
950       ,p_ass_attribute10_o
951           => per_asg_shd.g_old_rec.ass_attribute10
952       ,p_ass_attribute11_o
953           => per_asg_shd.g_old_rec.ass_attribute11
954       ,p_ass_attribute12_o
955           => per_asg_shd.g_old_rec.ass_attribute12
956       ,p_ass_attribute13_o
957           => per_asg_shd.g_old_rec.ass_attribute13
958       ,p_ass_attribute14_o
959           => per_asg_shd.g_old_rec.ass_attribute14
960       ,p_ass_attribute15_o
961           => per_asg_shd.g_old_rec.ass_attribute15
962       ,p_ass_attribute16_o
963           => per_asg_shd.g_old_rec.ass_attribute16
964       ,p_ass_attribute17_o
965           => per_asg_shd.g_old_rec.ass_attribute17
966       ,p_ass_attribute18_o
967           => per_asg_shd.g_old_rec.ass_attribute18
968       ,p_ass_attribute19_o
969           => per_asg_shd.g_old_rec.ass_attribute19
970       ,p_ass_attribute20_o
971           => per_asg_shd.g_old_rec.ass_attribute20
972       ,p_ass_attribute21_o
973           => per_asg_shd.g_old_rec.ass_attribute21
974       ,p_ass_attribute22_o
975           => per_asg_shd.g_old_rec.ass_attribute22
976       ,p_ass_attribute23_o
977           => per_asg_shd.g_old_rec.ass_attribute23
978       ,p_ass_attribute24_o
979           => per_asg_shd.g_old_rec.ass_attribute24
980       ,p_ass_attribute25_o
981           => per_asg_shd.g_old_rec.ass_attribute25
982       ,p_ass_attribute26_o
983           => per_asg_shd.g_old_rec.ass_attribute26
984       ,p_ass_attribute27_o
985           => per_asg_shd.g_old_rec.ass_attribute27
986       ,p_ass_attribute28_o
987           => per_asg_shd.g_old_rec.ass_attribute28
988       ,p_ass_attribute29_o
989           => per_asg_shd.g_old_rec.ass_attribute29
990       ,p_ass_attribute30_o
991           => per_asg_shd.g_old_rec.ass_attribute30
992       ,p_title_o
993           => per_asg_shd.g_old_rec.title
994       ,p_contract_id_o
995           => per_asg_shd.g_old_rec.contract_id
996       ,p_establishment_id_o
997           => per_asg_shd.g_old_rec.establishment_id
998       ,p_collective_agreement_id_o
999           => per_asg_shd.g_old_rec.collective_agreement_id
1000       ,p_cagr_grade_def_id_o
1001           => per_asg_shd.g_old_rec.cagr_grade_def_id
1002       ,p_cagr_id_flex_num_o
1003           => per_asg_shd.g_old_rec.cagr_id_flex_num
1004       ,p_object_version_number_o
1005           => per_asg_shd.g_old_rec.object_version_number
1006       ,p_notice_period_o
1007           => per_asg_shd.g_old_rec.notice_period
1008       ,p_notice_period_uom_o
1009      => per_asg_shd.g_old_rec.notice_period_uom
1010       ,p_employee_category_o
1011           => per_asg_shd.g_old_rec.employee_category
1012       ,p_work_at_home_o
1013           => per_asg_shd.g_old_rec.work_at_home
1014       ,p_job_post_source_name_o
1015           => per_asg_shd.g_old_rec.job_post_source_name
1016       ,p_posting_content_id_o
1017           => per_asg_shd.g_old_rec.posting_content_id
1018       ,p_placement_date_start_o
1019           => per_asg_shd.g_old_rec.period_of_placement_date_start
1020       ,p_vendor_id_o
1021           => per_asg_shd.g_old_rec.vendor_id
1022       ,p_vendor_employee_number_o
1023           => per_asg_shd.g_old_rec.vendor_employee_number
1024       ,p_vendor_assignment_number_o
1025           => per_asg_shd.g_old_rec.vendor_assignment_number
1026       ,p_assignment_category_o
1027           => per_asg_shd.g_old_rec.assignment_category
1028       ,p_project_title_o
1029           => per_asg_shd.g_old_rec.project_title
1030       ,p_applicant_rank_o
1031           => per_asg_shd.g_old_rec.applicant_rank
1032       ,p_grade_ladder_pgm_id_o
1033           => per_asg_shd.g_old_rec.grade_ladder_pgm_id
1034       ,p_supervisor_assignment_id_o
1035           => per_asg_shd.g_old_rec.supervisor_assignment_id
1036       ,p_vendor_site_id_o
1037           => per_asg_shd.g_old_rec.vendor_site_id
1038       ,p_po_header_id_o
1039           => per_asg_shd.g_old_rec.po_header_id
1040       ,p_po_line_id_o
1041           => per_asg_shd.g_old_rec.po_line_id
1042       ,p_projected_assignment_end_o
1043           => per_asg_shd.g_old_rec.projected_assignment_end
1044        );
1045   exception
1046     when hr_api.cannot_find_prog_unit then
1047       hr_api.cannot_find_prog_unit_error
1048         (p_module_name => 'PER_ALL_ASSIGNMENTS_F'
1049         ,p_hook_type   => 'AU'
1050         );
1051   end;
1052   -- End of API User Hook for post_update.
1053   --
1054   -- Temporary hardcoded hook added for pay object group functionality. Will
1055   -- replace by proper hook when dynamic triggers for assignments converted
1056   -- to package dynamic triggers.
1057   --
1058   pay_pog_all_assignments_pkg.after_update
1059   (p_effective_date            => p_effective_date
1060   ,p_datetrack_mode            => p_datetrack_mode
1061   ,p_validation_start_date     => p_validation_start_date
1062   ,p_validation_end_date       => p_validation_end_date
1063   ,P_APPLICANT_RANK            => p_rec.applicant_rank
1064   ,P_APPLICATION_ID            => p_rec.application_id
1065   ,P_ASSIGNMENT_CATEGORY       => p_rec.assignment_category
1066   ,P_ASSIGNMENT_ID             => p_rec.assignment_id
1067   ,P_ASSIGNMENT_NUMBER         => p_rec.assignment_number
1068   ,P_ASSIGNMENT_STATUS_TYPE_ID => p_rec.assignment_status_type_id
1069   ,P_ASSIGNMENT_TYPE           => p_rec.assignment_type
1070   ,P_ASS_ATTRIBUTE1            => p_rec.ass_attribute1
1071   ,P_ASS_ATTRIBUTE10           => p_rec.ass_attribute10
1072   ,P_ASS_ATTRIBUTE11           => p_rec.ass_attribute11
1073   ,P_ASS_ATTRIBUTE12           => p_rec.ass_attribute12
1074   ,P_ASS_ATTRIBUTE13           => p_rec.ass_attribute13
1075   ,P_ASS_ATTRIBUTE14           => p_rec.ass_attribute14
1076   ,P_ASS_ATTRIBUTE15           => p_rec.ass_attribute15
1077   ,P_ASS_ATTRIBUTE16           => p_rec.ass_attribute16
1078   ,P_ASS_ATTRIBUTE17           => p_rec.ass_attribute17
1079   ,P_ASS_ATTRIBUTE18           => p_rec.ass_attribute18
1080   ,P_ASS_ATTRIBUTE19           => p_rec.ass_attribute19
1081   ,P_ASS_ATTRIBUTE2            => p_rec.ass_attribute2
1082   ,P_ASS_ATTRIBUTE20           => p_rec.ass_attribute20
1083   ,P_ASS_ATTRIBUTE21           => p_rec.ass_attribute21
1084   ,P_ASS_ATTRIBUTE22           => p_rec.ass_attribute22
1085   ,P_ASS_ATTRIBUTE23           => p_rec.ass_attribute23
1086   ,P_ASS_ATTRIBUTE24           => p_rec.ass_attribute24
1087   ,P_ASS_ATTRIBUTE25           => p_rec.ass_attribute25
1088   ,P_ASS_ATTRIBUTE26           => p_rec.ass_attribute26
1089   ,P_ASS_ATTRIBUTE27           => p_rec.ass_attribute27
1090   ,P_ASS_ATTRIBUTE28           => p_rec.ass_attribute28
1091   ,P_ASS_ATTRIBUTE29           => p_rec.ass_attribute29
1092   ,P_ASS_ATTRIBUTE3            => p_rec.ass_attribute3
1093   ,P_ASS_ATTRIBUTE30           => p_rec.ass_attribute30
1094   ,P_ASS_ATTRIBUTE4            => p_rec.ass_attribute4
1095   ,P_ASS_ATTRIBUTE5            => p_rec.ass_attribute5
1096   ,P_ASS_ATTRIBUTE6            => p_rec.ass_attribute6
1097   ,P_ASS_ATTRIBUTE7            => p_rec.ass_attribute7
1098   ,P_ASS_ATTRIBUTE8            => p_rec.ass_attribute8
1099   ,P_ASS_ATTRIBUTE9            => p_rec.ass_attribute9
1100   ,P_ASS_ATTRIBUTE_CATEGORY    => p_rec.ass_attribute_category
1101   ,P_BARGAINING_UNIT_CODE      => p_rec.bargaining_unit_code
1102   ,P_CAGR_GRADE_DEF_ID         => p_rec.cagr_grade_def_id
1103   ,P_CAGR_ID_FLEX_NUM          => p_rec.cagr_id_flex_num
1104   ,P_CHANGE_REASON             => p_rec.change_reason
1105   ,P_COLLECTIVE_AGREEMENT_ID   => p_rec.collective_agreement_id
1106   ,P_COMMENTS                  => p_rec.comment_text
1107   ,P_COMMENT_ID                => p_rec.comment_id
1108   ,P_CONTRACT_ID               => p_rec.contract_id
1109   ,P_DATE_PROBATION_END        => p_rec.date_probation_end
1110   ,P_DEFAULT_CODE_COMB_ID      => p_rec.default_code_comb_id
1111   ,P_EFFECTIVE_END_DATE        => p_rec.effective_end_date
1112   ,P_EFFECTIVE_START_DATE      => p_rec.effective_start_date
1113   ,P_EMPLOYEE_CATEGORY         => p_rec.employee_category
1114   ,P_EMPLOYMENT_CATEGORY       => p_rec.employment_category
1115   ,P_ESTABLISHMENT_ID          => p_rec.establishment_id
1116   ,P_FREQUENCY                 => p_rec.frequency
1117   ,P_GRADE_ID                  => p_rec.grade_id
1118   ,P_HOURLY_SALARIED_CODE      => p_rec.hourly_salaried_code
1119   ,P_HOURLY_SALARIED_WARNING   => p_hourly_salaried_warning
1120   ,P_INTERNAL_ADDRESS_LINE     => p_rec.internal_address_line
1121   ,P_JOB_ID                    => p_rec.job_id
1122   ,P_JOB_POST_SOURCE_NAME      => p_rec.job_post_source_name
1123   ,P_LABOUR_UNION_MEMBER_FLAG  => p_rec.labour_union_member_flag
1124   ,P_LOCATION_ID               => p_rec.location_id
1125   ,P_MANAGER_FLAG              => p_rec.manager_flag
1126   ,P_NORMAL_HOURS              => p_rec.normal_hours
1127   ,P_NOTICE_PERIOD             => p_rec.notice_period
1128   ,P_NOTICE_PERIOD_UOM         => p_rec.notice_period_uom
1129   ,P_NO_MANAGERS_WARNING       => p_no_managers_warning
1130   ,P_OBJECT_VERSION_NUMBER     => p_rec.object_version_number
1131   ,P_ORGANIZATION_ID           => p_rec.organization_id
1132   ,P_ORG_NOW_NO_MANAGER_WARNING => p_org_now_no_manager_warning
1133   ,P_OTHER_MANAGER_WARNING     => p_other_manager_warning
1134   ,P_PAYROLL_ID                => p_rec.payroll_id
1135   ,P_PAYROLL_ID_UPDATED        => p_payroll_id_updated
1136   ,P_PAY_BASIS_ID              => p_rec.pay_basis_id
1137   ,P_PEOPLE_GROUP_ID           => p_rec.people_group_id
1138   ,P_PERF_REVIEW_PERIOD        => p_rec.perf_review_period
1139   ,P_PERF_REVIEW_PERIOD_FREQUEN => p_rec.perf_review_period_frequency
1140   ,P_PERIOD_OF_SERVICE_ID      => p_rec.period_of_service_id
1141   ,P_PERSON_REFERRED_BY_ID     => p_rec.person_referred_by_id
1142   ,P_PLACEMENT_DATE_START      => p_rec.period_of_placement_date_start
1143   ,P_POSITION_ID               => p_rec.position_id
1144   ,P_POSTING_CONTENT_ID        => p_rec.posting_content_id
1145   ,P_PRIMARY_FLAG              => p_rec.primary_flag
1146   ,P_PROBATION_PERIOD          => p_rec.probation_period
1147   ,P_PROBATION_UNIT            => p_rec.probation_unit
1148   ,P_PROGRAM_APPLICATION_ID    => p_rec.program_application_id
1149   ,P_PROGRAM_ID                => p_rec.program_id
1150   ,P_PROGRAM_UPDATE_DATE       => p_rec.program_update_date
1151   ,P_PROJECT_TITLE             => p_rec.project_title
1152   ,P_RECRUITER_ID              => p_rec.recruiter_id
1153   ,P_RECRUITMENT_ACTIVITY_ID   => p_rec.recruitment_activity_id
1154   ,P_REQUEST_ID                => p_rec.request_id
1155   ,P_SAL_REVIEW_PERIOD         => p_rec.sal_review_period
1156   ,P_SAL_REVIEW_PERIOD_FREQUEN => p_rec.sal_review_period_frequency
1157   ,P_SET_OF_BOOKS_ID           => p_rec.set_of_books_id
1158   ,P_SOFT_CODING_KEYFLEX_ID    => p_rec.soft_coding_keyflex_id
1159   ,P_SOURCE_ORGANIZATION_ID    => p_rec.source_organization_id
1160   ,P_SOURCE_TYPE               => p_rec.source_type
1161   ,P_SPECIAL_CEILING_STEP_ID   => p_rec.special_ceiling_step_id
1162   ,P_SUPERVISOR_ID             => p_rec.supervisor_id
1163   ,P_TIME_NORMAL_FINISH        => p_rec.time_normal_finish
1164   ,P_TIME_NORMAL_START         => p_rec.time_normal_start
1165   ,P_TITLE                     => p_rec.title
1166   ,P_VACANCY_ID                => p_rec.vacancy_id
1167   ,P_VENDOR_ASSIGNMENT_NUMBER  => p_rec.vendor_assignment_number
1168   ,P_VENDOR_EMPLOYEE_NUMBER    => p_rec.vendor_employee_number
1169   ,P_VENDOR_ID                 => p_rec.vendor_id
1170   ,P_WORK_AT_HOME              => p_rec.work_at_home
1171   ,P_GRADE_LADDER_PGM_ID       => p_rec.grade_ladder_pgm_id
1172   ,P_SUPERVISOR_ASSIGNMENT_ID  => p_rec.supervisor_assignment_id
1173   ,P_VENDOR_SITE_ID            => p_rec.vendor_site_id
1174   ,P_PO_HEADER_ID              => p_rec.po_header_id
1175   ,P_PO_LINE_ID                => p_rec.po_line_id
1176   ,P_PROJECTED_ASSIGNMENT_END  => p_rec.projected_assignment_end
1177   ,P_APPLICANT_RANK_O          => per_asg_shd.g_old_rec.applicant_rank
1178   ,P_APPLICATION_ID_O          => per_asg_shd.g_old_rec.application_id
1179   ,P_ASSIGNMENT_CATEGORY_O     => per_asg_shd.g_old_rec.assignment_category
1180   ,P_ASSIGNMENT_NUMBER_O       => per_asg_shd.g_old_rec.assignment_number
1181   ,P_ASSIGNMENT_SEQUENCE_O     => per_asg_shd.g_old_rec.assignment_sequence
1182   ,P_ASSIGNMENT_STATUS_TYPE_ID_O => per_asg_shd.g_old_rec.assignment_status_type_id
1183   ,P_ASSIGNMENT_TYPE_O         => per_asg_shd.g_old_rec.assignment_type
1184   ,P_ASS_ATTRIBUTE1_O          => per_asg_shd.g_old_rec.ass_attribute1
1185   ,P_ASS_ATTRIBUTE10_O         => per_asg_shd.g_old_rec.ass_attribute10
1186   ,P_ASS_ATTRIBUTE11_O         => per_asg_shd.g_old_rec.ass_attribute11
1187   ,P_ASS_ATTRIBUTE12_O         => per_asg_shd.g_old_rec.ass_attribute12
1188   ,P_ASS_ATTRIBUTE13_O         => per_asg_shd.g_old_rec.ass_attribute13
1189   ,P_ASS_ATTRIBUTE14_O         => per_asg_shd.g_old_rec.ass_attribute14
1190   ,P_ASS_ATTRIBUTE15_O         => per_asg_shd.g_old_rec.ass_attribute15
1191   ,P_ASS_ATTRIBUTE16_O         => per_asg_shd.g_old_rec.ass_attribute16
1192   ,P_ASS_ATTRIBUTE17_O         => per_asg_shd.g_old_rec.ass_attribute17
1193   ,P_ASS_ATTRIBUTE18_O         => per_asg_shd.g_old_rec.ass_attribute18
1194   ,P_ASS_ATTRIBUTE19_O         => per_asg_shd.g_old_rec.ass_attribute19
1195   ,P_ASS_ATTRIBUTE2_O          => per_asg_shd.g_old_rec.ass_attribute2
1196   ,P_ASS_ATTRIBUTE20_O         => per_asg_shd.g_old_rec.ass_attribute20
1197   ,P_ASS_ATTRIBUTE21_O         => per_asg_shd.g_old_rec.ass_attribute21
1198   ,P_ASS_ATTRIBUTE22_O         => per_asg_shd.g_old_rec.ass_attribute22
1199   ,P_ASS_ATTRIBUTE23_O         => per_asg_shd.g_old_rec.ass_attribute23
1200   ,P_ASS_ATTRIBUTE24_O         => per_asg_shd.g_old_rec.ass_attribute24
1201   ,P_ASS_ATTRIBUTE25_O         => per_asg_shd.g_old_rec.ass_attribute25
1202   ,P_ASS_ATTRIBUTE26_O         => per_asg_shd.g_old_rec.ass_attribute26
1203   ,P_ASS_ATTRIBUTE27_O         => per_asg_shd.g_old_rec.ass_attribute27
1204   ,P_ASS_ATTRIBUTE28_O         => per_asg_shd.g_old_rec.ass_attribute28
1205   ,P_ASS_ATTRIBUTE29_O         => per_asg_shd.g_old_rec.ass_attribute29
1206   ,P_ASS_ATTRIBUTE3_O          => per_asg_shd.g_old_rec.ass_attribute3
1207   ,P_ASS_ATTRIBUTE30_O         => per_asg_shd.g_old_rec.ass_attribute30
1208   ,P_ASS_ATTRIBUTE4_O          => per_asg_shd.g_old_rec.ass_attribute4
1209   ,P_ASS_ATTRIBUTE5_O          => per_asg_shd.g_old_rec.ass_attribute5
1210   ,P_ASS_ATTRIBUTE6_O          => per_asg_shd.g_old_rec.ass_attribute6
1211   ,P_ASS_ATTRIBUTE7_O          => per_asg_shd.g_old_rec.ass_attribute7
1212   ,P_ASS_ATTRIBUTE8_O          => per_asg_shd.g_old_rec.ass_attribute8
1213   ,P_ASS_ATTRIBUTE9_O          => per_asg_shd.g_old_rec.ass_attribute9
1214   ,P_ASS_ATTRIBUTE_CATEGORY_O  => per_asg_shd.g_old_rec.ass_attribute_category
1215   ,P_BARGAINING_UNIT_CODE_O    => per_asg_shd.g_old_rec.bargaining_unit_code
1216   ,P_BUSINESS_GROUP_ID_O       => per_asg_shd.g_old_rec.business_group_id
1217   ,P_CAGR_GRADE_DEF_ID_O       => per_asg_shd.g_old_rec.cagr_grade_def_id
1218   ,P_CAGR_ID_FLEX_NUM_O        => per_asg_shd.g_old_rec.cagr_id_flex_num
1219   ,P_CHANGE_REASON_O           => per_asg_shd.g_old_rec.change_reason
1220   ,P_COLLECTIVE_AGREEMENT_ID_O => per_asg_shd.g_old_rec.collective_agreement_id
1221   ,P_COMMENT_ID_O              => per_asg_shd.g_old_rec.comment_id
1222   ,P_CONTRACT_ID_O             => per_asg_shd.g_old_rec.contract_id
1223   ,P_DATE_PROBATION_END_O      => per_asg_shd.g_old_rec.date_probation_end
1224   ,P_DEFAULT_CODE_COMB_ID_O    => per_asg_shd.g_old_rec.default_code_comb_id
1225   ,P_EFFECTIVE_END_DATE_O      => per_asg_shd.g_old_rec.effective_end_date
1226   ,P_EFFECTIVE_START_DATE_O    => per_asg_shd.g_old_rec.effective_start_date
1227   ,P_EMPLOYEE_CATEGORY_O       => per_asg_shd.g_old_rec.employee_category
1228   ,P_EMPLOYMENT_CATEGORY_O     => per_asg_shd.g_old_rec.employment_category
1229   ,P_ESTABLISHMENT_ID_O        => per_asg_shd.g_old_rec.establishment_id
1230   ,P_FREQUENCY_O               => per_asg_shd.g_old_rec.frequency
1231   ,P_GRADE_ID_O                => per_asg_shd.g_old_rec.grade_id
1232   ,P_HOURLY_SALARIED_CODE_O    => per_asg_shd.g_old_rec.hourly_salaried_code
1233   ,P_INTERNAL_ADDRESS_LINE_O   => per_asg_shd.g_old_rec.internal_address_line
1234   ,P_JOB_ID_O                  => per_asg_shd.g_old_rec.job_id
1235   ,P_JOB_POST_SOURCE_NAME_O    => per_asg_shd.g_old_rec.job_post_source_name
1236   ,P_LABOUR_UNION_MEMBER_FLAG_O => per_asg_shd.g_old_rec.labour_union_member_flag
1237   ,P_LOCATION_ID_O             => per_asg_shd.g_old_rec.location_id
1238   ,P_MANAGER_FLAG_O            => per_asg_shd.g_old_rec.manager_flag
1239   ,P_NORMAL_HOURS_O            => per_asg_shd.g_old_rec.normal_hours
1240   ,P_NOTICE_PERIOD_O           => per_asg_shd.g_old_rec.notice_period
1241   ,P_NOTICE_PERIOD_UOM_O       => per_asg_shd.g_old_rec.notice_period_uom
1242   ,P_OBJECT_VERSION_NUMBER_O   => per_asg_shd.g_old_rec.object_version_number
1243   ,P_ORGANIZATION_ID_O         => per_asg_shd.g_old_rec.organization_id
1244   ,P_PAYROLL_ID_O              => per_asg_shd.g_old_rec.payroll_id
1245   ,P_PAY_BASIS_ID_O            => per_asg_shd.g_old_rec.pay_basis_id
1246   ,P_PEOPLE_GROUP_ID_O         => per_asg_shd.g_old_rec.people_group_id
1247   ,P_PERF_REVIEW_PERIOD_O      => per_asg_shd.g_old_rec.perf_review_period
1248   ,P_PERF_REVIEW_PERIOD_FREQUEN_O => per_asg_shd.g_old_rec.perf_review_period_frequency
1249   ,P_PERIOD_OF_SERVICE_ID_O    => per_asg_shd.g_old_rec.period_of_service_id
1250   ,P_PERSON_ID_O               => per_asg_shd.g_old_rec.person_id
1251   ,P_PERSON_REFERRED_BY_ID_O   => per_asg_shd.g_old_rec.person_referred_by_id
1252   ,P_PLACEMENT_DATE_START_O    => per_asg_shd.g_old_rec.period_of_placement_date_start
1253   ,P_POSITION_ID_O             => per_asg_shd.g_old_rec.position_id
1254   ,P_POSTING_CONTENT_ID_O      => per_asg_shd.g_old_rec.posting_content_id
1255   ,P_PRIMARY_FLAG_O            => per_asg_shd.g_old_rec.primary_flag
1256   ,P_PROBATION_PERIOD_O        => per_asg_shd.g_old_rec.probation_period
1257   ,P_PROBATION_UNIT_O          => per_asg_shd.g_old_rec.probation_unit
1258   ,P_PROGRAM_APPLICATION_ID_O  => per_asg_shd.g_old_rec.program_application_id
1259   ,P_PROGRAM_ID_O              => per_asg_shd.g_old_rec.program_id
1260   ,P_PROGRAM_UPDATE_DATE_O     => per_asg_shd.g_old_rec.program_update_date
1261   ,P_PROJECT_TITLE_O           => per_asg_shd.g_old_rec.project_title
1262   ,P_RECRUITER_ID_O            => per_asg_shd.g_old_rec.recruiter_id
1263   ,P_RECRUITMENT_ACTIVITY_ID_O => per_asg_shd.g_old_rec.recruitment_activity_id
1264   ,P_REQUEST_ID_O              => per_asg_shd.g_old_rec.request_id
1265   ,P_SAL_REVIEW_PERIOD_O       => per_asg_shd.g_old_rec.sal_review_period
1266   ,P_SAL_REVIEW_PERIOD_FREQUEN_O => per_asg_shd.g_old_rec.sal_review_period_frequency
1267   ,P_SET_OF_BOOKS_ID_O         => per_asg_shd.g_old_rec.set_of_books_id
1268   ,P_SOFT_CODING_KEYFLEX_ID_O  => per_asg_shd.g_old_rec.soft_coding_keyflex_id
1269   ,P_SOURCE_ORGANIZATION_ID_O  => per_asg_shd.g_old_rec.source_organization_id
1270   ,P_SOURCE_TYPE_O             => per_asg_shd.g_old_rec.source_type
1271   ,P_SPECIAL_CEILING_STEP_ID_O => per_asg_shd.g_old_rec.special_ceiling_step_id
1272   ,P_SUPERVISOR_ID_O           => per_asg_shd.g_old_rec.supervisor_id
1273   ,P_TIME_NORMAL_FINISH_O      => per_asg_shd.g_old_rec.time_normal_finish
1274   ,P_TIME_NORMAL_START_O       => per_asg_shd.g_old_rec.time_normal_start
1275   ,P_TITLE_O                   => per_asg_shd.g_old_rec.title
1276   ,P_VACANCY_ID_O              => per_asg_shd.g_old_rec.vacancy_id
1277   ,P_VENDOR_ASSIGNMENT_NUMBER_O => per_asg_shd.g_old_rec.vendor_assignment_number
1278   ,P_VENDOR_EMPLOYEE_NUMBER_O  => per_asg_shd.g_old_rec.vendor_employee_number
1279   ,P_VENDOR_ID_O               => per_asg_shd.g_old_rec.vendor_id
1280   ,P_WORK_AT_HOME_O            => per_asg_shd.g_old_rec.work_at_home
1281   ,P_GRADE_LADDER_PGM_ID_O     => per_asg_shd.g_old_rec.grade_ladder_pgm_id
1282   ,P_SUPERVISOR_ASSIGNMENT_ID_O => per_asg_shd.g_old_rec.supervisor_assignment_id
1283   ,P_VENDOR_SITE_ID_O          => per_asg_shd.g_old_rec.vendor_site_id
1284   ,P_PO_HEADER_ID_O            => per_asg_shd.g_old_rec.po_header_id
1285   ,P_PO_LINE_ID_O              => per_asg_shd.g_old_rec.po_line_id
1286   ,P_PROJECTED_ASSIGNMENT_END_O => per_asg_shd.g_old_rec.projected_assignment_end
1287   );
1288   --
1289   -- Call to Workflow Sync Procedure For Assignments
1290     per_pqh_shr.per_asg_wf_sync('POST_UPDATE',
1291                             p_rec,
1292                             per_asg_shd.g_old_rec.position_id,
1293                             p_effective_date,
1294                             p_validation_start_date,
1295                             p_validation_end_date,
1296                             p_datetrack_mode);
1297 
1298  -- End of call to Workflow Sync Procedure For Assignments
1299 
1300   --
1301   hr_utility.set_location(' Leaving:'||l_proc, 10);
1302 End post_update;
1303 --
1304 -- ----------------------------------------------------------------------------
1305 -- |-----------------------------< convert_defs >-----------------------------|
1306 -- ----------------------------------------------------------------------------
1307 -- {Start Of Comments}
1308 --
1309 -- Description:
1310 --   The Convert_Defs procedure has one very important function:
1311 --   It must return the record structure for the row with all system defaulted
1312 --   values converted into its corresponding argument value for update. When
1313 --   we attempt to update a row through the Upd business process , certain
1314 --   arguments can be defaulted which enables flexibility in the calling of
1315 --   the upd process (e.g. only attributes which need to be updated need to be
1316 --   specified). For the upd business process to determine which attributes
1317 --   have NOT been specified we need to check if the argument has a reserved
1318 --   system default value. Therefore, for all attributes which have a
1319 --   corresponding reserved system default mechanism specified we need to
1320 --   check if a system default is being used. If a system default is being
1321 --   used then we convert the defaulted value into its corresponding attribute
1322 --   value held in the g_old_rec data structure.
1323 --
1324 -- Pre Conditions:
1325 --   This private procedure can only be called from the upd process.
1326 --
1327 -- In Arguments:
1328 --   A Pl/Sql record structre.
1329 --
1330 -- Post Success:
1331 --   The record structure will be returned with all system defaulted argument
1332 --   values converted into its current row attribute value.
1333 --
1334 -- Post Failure:
1335 --   No direct error handling is required within this function. Any possible
1336 --   errors within this procedure will be a PL/SQL value error due to
1337 --   conversion of datatypes or data lengths.
1338 --
1339 -- Developer Implementation Notes:
1340 --   None.
1341 --
1342 -- Access Status:
1343 --   Internal Table Handler Use Only.
1344 --
1345 -- {End Of Comments}
1346 -- ----------------------------------------------------------------------------
1347 Procedure convert_defs(p_rec in out nocopy per_asg_shd.g_rec_type) is
1348 --
1349   l_proc  varchar2(72) := g_package||'convert_defs';
1350 --
1351 Begin
1352   --
1353   hr_utility.set_location('Entering:'||l_proc, 5);
1354   --
1355   -- We must now examine each argument value in the
1356   -- p_rec plsql record structure
1357   -- to see if a system default is being used. If a system default
1358   -- is being used then we must set to the 'current' argument value.
1359   --
1360   If (p_rec.business_group_id = hr_api.g_number) then
1361     p_rec.business_group_id :=
1362     per_asg_shd.g_old_rec.business_group_id;
1363   End If;
1364   If (p_rec.recruiter_id = hr_api.g_number) then
1365     p_rec.recruiter_id :=
1366     per_asg_shd.g_old_rec.recruiter_id;
1367   End If;
1368   If (p_rec.grade_id = hr_api.g_number) then
1369     p_rec.grade_id :=
1370     per_asg_shd.g_old_rec.grade_id;
1371   End If;
1372   If (p_rec.position_id = hr_api.g_number) then
1373     p_rec.position_id :=
1374     per_asg_shd.g_old_rec.position_id;
1375   End If;
1376   If (p_rec.job_id = hr_api.g_number) then
1377     p_rec.job_id :=
1378     per_asg_shd.g_old_rec.job_id;
1379   End If;
1380   If (p_rec.assignment_status_type_id = hr_api.g_number) then
1381     p_rec.assignment_status_type_id :=
1382     per_asg_shd.g_old_rec.assignment_status_type_id;
1383   End If;
1384   If (p_rec.payroll_id = hr_api.g_number) then
1385     p_rec.payroll_id :=
1386     per_asg_shd.g_old_rec.payroll_id;
1387   End If;
1388   If (p_rec.location_id = hr_api.g_number) then
1389     p_rec.location_id :=
1390     per_asg_shd.g_old_rec.location_id;
1391   End If;
1392   If (p_rec.person_referred_by_id = hr_api.g_number) then
1393     p_rec.person_referred_by_id :=
1394     per_asg_shd.g_old_rec.person_referred_by_id;
1395   End If;
1396   If (p_rec.supervisor_id = hr_api.g_number) then
1397     p_rec.supervisor_id :=
1398     per_asg_shd.g_old_rec.supervisor_id;
1399   End If;
1400   If (p_rec.special_ceiling_step_id = hr_api.g_number) then
1401     p_rec.special_ceiling_step_id :=
1402     per_asg_shd.g_old_rec.special_ceiling_step_id;
1403   End If;
1404   If (p_rec.person_id = hr_api.g_number) then
1405     p_rec.person_id :=
1406     per_asg_shd.g_old_rec.person_id;
1407   End If;
1408   If (p_rec.recruitment_activity_id = hr_api.g_number) then
1409     p_rec.recruitment_activity_id :=
1410     per_asg_shd.g_old_rec.recruitment_activity_id;
1411   End If;
1412   If (p_rec.source_organization_id = hr_api.g_number) then
1413     p_rec.source_organization_id :=
1414     per_asg_shd.g_old_rec.source_organization_id;
1415   End If;
1416   If (p_rec.organization_id = hr_api.g_number) then
1417     p_rec.organization_id :=
1418     per_asg_shd.g_old_rec.organization_id;
1419   End If;
1420   If (p_rec.people_group_id = hr_api.g_number) then
1421     p_rec.people_group_id :=
1422     per_asg_shd.g_old_rec.people_group_id;
1423   End If;
1424   If (p_rec.soft_coding_keyflex_id = hr_api.g_number) then
1425     p_rec.soft_coding_keyflex_id :=
1426     per_asg_shd.g_old_rec.soft_coding_keyflex_id;
1427   End If;
1428   If (p_rec.vacancy_id = hr_api.g_number) then
1429     p_rec.vacancy_id :=
1430     per_asg_shd.g_old_rec.vacancy_id;
1431   End If;
1432   If (p_rec.pay_basis_id = hr_api.g_number) then
1433     p_rec.pay_basis_id :=
1434     per_asg_shd.g_old_rec.pay_basis_id;
1435   End If;
1436   If (p_rec.assignment_sequence = hr_api.g_number) then
1437     p_rec.assignment_sequence :=
1438     per_asg_shd.g_old_rec.assignment_sequence;
1439   End If;
1440   If (p_rec.assignment_type = hr_api.g_varchar2) then
1441     p_rec.assignment_type :=
1442     per_asg_shd.g_old_rec.assignment_type;
1443   End If;
1444   If (p_rec.primary_flag = hr_api.g_varchar2) then
1445     p_rec.primary_flag :=
1446     per_asg_shd.g_old_rec.primary_flag;
1447   End If;
1448   If (p_rec.application_id = hr_api.g_number) then
1449     p_rec.application_id :=
1450     per_asg_shd.g_old_rec.application_id;
1451   End If;
1452   If (p_rec.assignment_number = hr_api.g_varchar2) then
1453     p_rec.assignment_number :=
1454     per_asg_shd.g_old_rec.assignment_number;
1455   End If;
1456   If (p_rec.change_reason = hr_api.g_varchar2) then
1457     p_rec.change_reason :=
1458     per_asg_shd.g_old_rec.change_reason;
1459   End If;
1460   If (p_rec.comment_id = hr_api.g_number) then
1461     p_rec.comment_id :=
1462     per_asg_shd.g_old_rec.comment_id;
1463   End If;
1464   If (p_rec.comment_text = hr_api.g_varchar2) then
1465     p_rec.comment_text :=
1466     per_asg_shd.g_old_rec.comment_text;
1467   End If;
1468   If (p_rec.date_probation_end = hr_api.g_date) then
1469     p_rec.date_probation_end :=
1470     per_asg_shd.g_old_rec.date_probation_end;
1471   End If;
1472   If (p_rec.default_code_comb_id = hr_api.g_number) then
1473     p_rec.default_code_comb_id :=
1474     per_asg_shd.g_old_rec.default_code_comb_id;
1475   End If;
1476   If (p_rec.employment_category = hr_api.g_varchar2) then
1477     p_rec.employment_category :=
1478     per_asg_shd.g_old_rec.employment_category;
1479   End If;
1480   If (p_rec.frequency = hr_api.g_varchar2) then
1481     p_rec.frequency :=
1482     per_asg_shd.g_old_rec.frequency;
1483   End If;
1484   If (p_rec.internal_address_line = hr_api.g_varchar2) then
1485     p_rec.internal_address_line :=
1486     per_asg_shd.g_old_rec.internal_address_line;
1487   End If;
1488   If (p_rec.manager_flag = hr_api.g_varchar2) then
1489     p_rec.manager_flag :=
1490     per_asg_shd.g_old_rec.manager_flag;
1491   End If;
1492   If (p_rec.normal_hours = hr_api.g_number) then
1493     p_rec.normal_hours :=
1494     per_asg_shd.g_old_rec.normal_hours;
1495   End If;
1496   If (p_rec.perf_review_period = hr_api.g_number) then
1497     p_rec.perf_review_period :=
1498     per_asg_shd.g_old_rec.perf_review_period;
1499   End If;
1500   If (p_rec.perf_review_period_frequency = hr_api.g_varchar2) then
1501     p_rec.perf_review_period_frequency :=
1502     per_asg_shd.g_old_rec.perf_review_period_frequency;
1503   End If;
1504   If (p_rec.period_of_service_id = hr_api.g_number) then
1505     p_rec.period_of_service_id :=
1506     per_asg_shd.g_old_rec.period_of_service_id;
1507   End If;
1508   If (p_rec.probation_period = hr_api.g_number) then
1509     p_rec.probation_period :=
1510     per_asg_shd.g_old_rec.probation_period;
1511   End If;
1512   If (p_rec.probation_unit = hr_api.g_varchar2) then
1513     p_rec.probation_unit :=
1514     per_asg_shd.g_old_rec.probation_unit;
1515   End If;
1516   If (p_rec.sal_review_period = hr_api.g_number) then
1517     p_rec.sal_review_period :=
1518     per_asg_shd.g_old_rec.sal_review_period;
1519   End If;
1520   If (p_rec.sal_review_period_frequency = hr_api.g_varchar2) then
1521     p_rec.sal_review_period_frequency :=
1522     per_asg_shd.g_old_rec.sal_review_period_frequency;
1523   End If;
1524   If (p_rec.set_of_books_id = hr_api.g_number) then
1525     p_rec.set_of_books_id :=
1526     per_asg_shd.g_old_rec.set_of_books_id;
1527   End If;
1528   If (p_rec.source_type = hr_api.g_varchar2) then
1529     p_rec.source_type :=
1530     per_asg_shd.g_old_rec.source_type;
1531   End If;
1532   If (p_rec.time_normal_finish = hr_api.g_varchar2) then
1533     p_rec.time_normal_finish :=
1534     per_asg_shd.g_old_rec.time_normal_finish;
1535   End If;
1536   If (p_rec.time_normal_start = hr_api.g_varchar2) then
1537     p_rec.time_normal_start :=
1538     per_asg_shd.g_old_rec.time_normal_start;
1539   End If;
1540   If (p_rec.bargaining_unit_code = hr_api.g_varchar2) then
1541     p_rec.bargaining_unit_code :=
1542     per_asg_shd.g_old_rec.bargaining_unit_code;
1543   End If;
1544   If (p_rec.labour_union_member_flag = hr_api.g_varchar2) then
1545     p_rec.labour_union_member_flag :=
1546     per_asg_shd.g_old_rec.labour_union_member_flag;
1547   End If;
1548   If (p_rec.hourly_salaried_code = hr_api.g_varchar2) then
1549     p_rec.hourly_salaried_code :=
1550     per_asg_shd.g_old_rec.hourly_salaried_code;
1551   End If;
1552   If (p_rec.request_id = hr_api.g_number) then
1553     p_rec.request_id :=
1554     per_asg_shd.g_old_rec.request_id;
1555   End If;
1556   If (p_rec.program_application_id = hr_api.g_number) then
1557     p_rec.program_application_id :=
1558     per_asg_shd.g_old_rec.program_application_id;
1559   End If;
1560   If (p_rec.program_id = hr_api.g_number) then
1561     p_rec.program_id :=
1562     per_asg_shd.g_old_rec.program_id;
1563   End If;
1564   If (p_rec.program_update_date = hr_api.g_date) then
1565     p_rec.program_update_date :=
1566     per_asg_shd.g_old_rec.program_update_date;
1567   End If;
1568   If (p_rec.ass_attribute_category = hr_api.g_varchar2) then
1569     p_rec.ass_attribute_category :=
1570     per_asg_shd.g_old_rec.ass_attribute_category;
1571   End If;
1572   If (p_rec.ass_attribute1 = hr_api.g_varchar2) then
1573     p_rec.ass_attribute1 :=
1574     per_asg_shd.g_old_rec.ass_attribute1;
1575   End If;
1576   If (p_rec.ass_attribute2 = hr_api.g_varchar2) then
1577     p_rec.ass_attribute2 :=
1578     per_asg_shd.g_old_rec.ass_attribute2;
1579   End If;
1580   If (p_rec.ass_attribute3 = hr_api.g_varchar2) then
1581     p_rec.ass_attribute3 :=
1582     per_asg_shd.g_old_rec.ass_attribute3;
1583   End If;
1584   If (p_rec.ass_attribute4 = hr_api.g_varchar2) then
1585     p_rec.ass_attribute4 :=
1586     per_asg_shd.g_old_rec.ass_attribute4;
1587   End If;
1588   If (p_rec.ass_attribute5 = hr_api.g_varchar2) then
1589     p_rec.ass_attribute5 :=
1590     per_asg_shd.g_old_rec.ass_attribute5;
1591   End If;
1592   If (p_rec.ass_attribute6 = hr_api.g_varchar2) then
1593     p_rec.ass_attribute6 :=
1594     per_asg_shd.g_old_rec.ass_attribute6;
1595   End If;
1596   If (p_rec.ass_attribute7 = hr_api.g_varchar2) then
1597     p_rec.ass_attribute7 :=
1598     per_asg_shd.g_old_rec.ass_attribute7;
1599   End If;
1600   If (p_rec.ass_attribute8 = hr_api.g_varchar2) then
1601     p_rec.ass_attribute8 :=
1602     per_asg_shd.g_old_rec.ass_attribute8;
1603   End If;
1604   If (p_rec.ass_attribute9 = hr_api.g_varchar2) then
1605     p_rec.ass_attribute9 :=
1606     per_asg_shd.g_old_rec.ass_attribute9;
1607   End If;
1608   If (p_rec.ass_attribute10 = hr_api.g_varchar2) then
1609     p_rec.ass_attribute10 :=
1610     per_asg_shd.g_old_rec.ass_attribute10;
1611   End If;
1612   If (p_rec.ass_attribute11 = hr_api.g_varchar2) then
1613     p_rec.ass_attribute11 :=
1614     per_asg_shd.g_old_rec.ass_attribute11;
1615   End If;
1616   If (p_rec.ass_attribute12 = hr_api.g_varchar2) then
1617     p_rec.ass_attribute12 :=
1618     per_asg_shd.g_old_rec.ass_attribute12;
1619   End If;
1620   If (p_rec.ass_attribute13 = hr_api.g_varchar2) then
1621     p_rec.ass_attribute13 :=
1622     per_asg_shd.g_old_rec.ass_attribute13;
1623   End If;
1624   If (p_rec.ass_attribute14 = hr_api.g_varchar2) then
1625     p_rec.ass_attribute14 :=
1626     per_asg_shd.g_old_rec.ass_attribute14;
1627   End If;
1628   If (p_rec.ass_attribute15 = hr_api.g_varchar2) then
1629     p_rec.ass_attribute15 :=
1630     per_asg_shd.g_old_rec.ass_attribute15;
1631   End If;
1632   If (p_rec.ass_attribute16 = hr_api.g_varchar2) then
1633     p_rec.ass_attribute16 :=
1634     per_asg_shd.g_old_rec.ass_attribute16;
1635   End If;
1636   If (p_rec.ass_attribute17 = hr_api.g_varchar2) then
1637     p_rec.ass_attribute17 :=
1638     per_asg_shd.g_old_rec.ass_attribute17;
1639   End If;
1640   If (p_rec.ass_attribute18 = hr_api.g_varchar2) then
1641     p_rec.ass_attribute18 :=
1642     per_asg_shd.g_old_rec.ass_attribute18;
1643   End If;
1644   If (p_rec.ass_attribute19 = hr_api.g_varchar2) then
1645     p_rec.ass_attribute19 :=
1646     per_asg_shd.g_old_rec.ass_attribute19;
1647   End If;
1648   If (p_rec.ass_attribute20 = hr_api.g_varchar2) then
1649     p_rec.ass_attribute20 :=
1650     per_asg_shd.g_old_rec.ass_attribute20;
1651   End If;
1652   If (p_rec.ass_attribute21 = hr_api.g_varchar2) then
1653     p_rec.ass_attribute21 :=
1654     per_asg_shd.g_old_rec.ass_attribute21;
1655   End If;
1656   If (p_rec.ass_attribute22 = hr_api.g_varchar2) then
1657     p_rec.ass_attribute22 :=
1658     per_asg_shd.g_old_rec.ass_attribute22;
1659   End If;
1660   If (p_rec.ass_attribute23 = hr_api.g_varchar2) then
1661     p_rec.ass_attribute23 :=
1662     per_asg_shd.g_old_rec.ass_attribute23;
1663   End If;
1664   If (p_rec.ass_attribute24 = hr_api.g_varchar2) then
1665     p_rec.ass_attribute24 :=
1666     per_asg_shd.g_old_rec.ass_attribute24;
1667   End If;
1668   If (p_rec.ass_attribute25 = hr_api.g_varchar2) then
1669     p_rec.ass_attribute25 :=
1670     per_asg_shd.g_old_rec.ass_attribute25;
1671   End If;
1672   If (p_rec.ass_attribute26 = hr_api.g_varchar2) then
1673     p_rec.ass_attribute26 :=
1674     per_asg_shd.g_old_rec.ass_attribute26;
1675   End If;
1676   If (p_rec.ass_attribute27 = hr_api.g_varchar2) then
1677     p_rec.ass_attribute27 :=
1678     per_asg_shd.g_old_rec.ass_attribute27;
1679   End If;
1680   If (p_rec.ass_attribute28 = hr_api.g_varchar2) then
1681     p_rec.ass_attribute28 :=
1682     per_asg_shd.g_old_rec.ass_attribute28;
1683   End If;
1684   If (p_rec.ass_attribute29 = hr_api.g_varchar2) then
1685     p_rec.ass_attribute29 :=
1686     per_asg_shd.g_old_rec.ass_attribute29;
1687   End If;
1688   If (p_rec.ass_attribute30 = hr_api.g_varchar2) then
1689     p_rec.ass_attribute30 :=
1690     per_asg_shd.g_old_rec.ass_attribute30;
1691   End If;
1692   If (p_rec.title = hr_api.g_varchar2) then
1693     p_rec.title :=
1694     per_asg_shd.g_old_rec.title;
1695   End If;
1696  If (p_rec.contract_id = hr_api.g_number) then
1697     p_rec.contract_id :=
1698     per_asg_shd.g_old_rec.contract_id;
1699   End If;
1700  If (p_rec.establishment_id = hr_api.g_number) then
1701     p_rec.establishment_id :=
1702     per_asg_shd.g_old_rec.establishment_id;
1703   End If;
1704  If (p_rec.collective_agreement_id = hr_api.g_number) then
1705     p_rec.collective_agreement_id :=
1706     per_asg_shd.g_old_rec.collective_agreement_id;
1707   End If;
1708  If (p_rec.cagr_grade_def_id = hr_api.g_number) then
1709     p_rec.cagr_grade_def_id :=
1710     per_asg_shd.g_old_rec.cagr_grade_def_id;
1711   End If;
1712  If (p_rec.cagr_id_flex_num = hr_api.g_number) then
1713     p_rec.cagr_id_flex_num :=
1714     per_asg_shd.g_old_rec.cagr_id_flex_num;
1715   End If;
1716  If (p_rec.notice_period = hr_api.g_number) then
1717     p_rec.notice_period :=
1718     per_asg_shd.g_old_rec.notice_period;
1719   End If;
1720  If (p_rec.notice_period_uom = hr_api.g_varchar2) then
1721     p_rec.notice_period_uom :=
1722     per_asg_shd.g_old_rec.notice_period_uom;
1723   End If;
1724  If (p_rec.employee_category = hr_api.g_varchar2) then
1725     p_rec.employee_category :=
1726     per_asg_shd.g_old_rec.employee_category;
1727   End If;
1728  If (p_rec.work_at_home = hr_api.g_varchar2) then
1729     p_rec.work_at_home :=
1730     per_asg_shd.g_old_rec.work_at_home;
1731   End If;
1732  If (p_rec.job_post_source_name = hr_api.g_varchar2) then
1733     p_rec.job_post_source_name :=
1734     per_asg_shd.g_old_rec.job_post_source_name;
1735   End If;
1736  If (p_rec.posting_content_id = hr_api.g_number) then
1737     p_rec.posting_content_id :=
1738     per_asg_shd.g_old_rec.posting_content_id;
1739   End If;
1740  If (p_rec.period_of_placement_date_start = hr_api.g_date) then
1741     p_rec.period_of_placement_date_start :=
1742     per_asg_shd.g_old_rec.period_of_placement_date_start;
1743   End If;
1744  If (p_rec.vendor_id = hr_api.g_number) then
1745     p_rec.vendor_id :=
1746     per_asg_shd.g_old_rec.vendor_id;
1747   End If;
1748  If (p_rec.vendor_employee_number = hr_api.g_varchar2) then
1749     p_rec.vendor_employee_number :=
1750     per_asg_shd.g_old_rec.vendor_employee_number;
1751   End If;
1752  If (p_rec.vendor_assignment_number = hr_api.g_varchar2) then
1753     p_rec.vendor_assignment_number :=
1754     per_asg_shd.g_old_rec.vendor_assignment_number;
1755   End If;
1756  If (p_rec.assignment_category = hr_api.g_varchar2) then
1757     p_rec.assignment_category :=
1758     per_asg_shd.g_old_rec.assignment_category;
1759   End If;
1760  If (p_rec.project_title = hr_api.g_varchar2) then
1761     p_rec.project_title :=
1762     per_asg_shd.g_old_rec.project_title;
1763   End If;
1764  If (p_rec.applicant_rank = hr_api.g_number) then
1765      p_rec.applicant_rank :=
1766      per_asg_shd.g_old_rec.applicant_rank;
1767   End If;
1768  If (p_rec.grade_ladder_pgm_id = hr_api.g_number) then
1769      p_rec.grade_ladder_pgm_id :=
1770      per_asg_shd.g_old_rec.grade_ladder_pgm_id;
1771   End If;
1772  If (p_rec.supervisor_assignment_id = hr_api.g_number) then
1773      p_rec.supervisor_assignment_id :=
1774      per_asg_shd.g_old_rec.supervisor_assignment_id;
1775   End If;
1776  If (p_rec.vendor_site_id = hr_api.g_number) then
1777      p_rec.vendor_site_id :=
1778      per_asg_shd.g_old_rec.vendor_site_id;
1779   End If;
1780  If (p_rec.po_header_id = hr_api.g_number) then
1781      p_rec.po_header_id :=
1782      per_asg_shd.g_old_rec.po_header_id;
1783   End If;
1784  If (p_rec.po_line_id = hr_api.g_number) then
1785      p_rec.po_line_id :=
1786      per_asg_shd.g_old_rec.po_line_id;
1787   End If;
1788  If (p_rec.projected_assignment_end = hr_api.g_date) then
1789      p_rec.projected_assignment_end :=
1790      per_asg_shd.g_old_rec.projected_assignment_end;
1791   End If;
1792   --
1793   hr_utility.set_location(' Leaving:'||l_proc, 10);
1794 --
1795 End convert_defs;
1796 --
1797 -- ----------------------------------------------------------------------------
1798 -- |---------------------------------< upd >----------------------------------|
1799 -- ----------------------------------------------------------------------------
1800 Procedure upd
1801   (
1802   p_rec                    in out nocopy     per_asg_shd.g_rec_type,
1803   p_effective_date            in     date,
1804   p_datetrack_mode            in     varchar2,
1805   p_validation_start_date       out nocopy     date,
1806   p_validation_end_date         out nocopy     date,
1807   p_validate                in     boolean default false,
1808   p_payroll_id_updated          out nocopy     boolean,
1809   p_other_manager_warning       out nocopy     boolean,
1810   p_hourly_salaried_warning     out nocopy     boolean,
1811   p_no_managers_warning         out nocopy     boolean,
1812   p_org_now_no_manager_warning  out nocopy     boolean
1813   ) is
1814 --
1815   l_proc            varchar2(72) := g_package||'upd';
1816   l_validation_start_date    date;
1817   l_validation_end_date        date;
1818   l_inv_pos_grade_warning       boolean;
1819   l_payroll_id_updated          boolean;
1820   l_other_manager_warning       boolean;
1821   l_hourly_salaried_warning       boolean;
1822   l_no_managers_warning         boolean;
1823   l_org_now_no_manager_warning  boolean;
1824 
1825   -- Start changes for bug 13059935
1826   Cursor C_asg_rec is
1827     select
1828     assignment_id,
1829     effective_start_date,
1830     effective_end_date,
1831     business_group_id,
1832     recruiter_id,
1833     grade_id,
1834     position_id,
1835     job_id,
1836     assignment_status_type_id,
1837     payroll_id,
1838     location_id,
1839     person_referred_by_id,
1840     supervisor_id,
1841     special_ceiling_step_id,
1842     person_id,
1843     recruitment_activity_id,
1844     source_organization_id,
1845     organization_id,
1846     people_group_id,
1847     soft_coding_keyflex_id,
1848     vacancy_id,
1849     pay_basis_id,
1850     assignment_sequence,
1851     assignment_type,
1852     primary_flag,
1853     application_id,
1854     assignment_number,
1855     change_reason,
1856     comment_id,
1857     null,
1858     date_probation_end,
1859     default_code_comb_id,
1860     employment_category,
1861     frequency,
1862     internal_address_line,
1863     manager_flag,
1864     normal_hours,
1865     perf_review_period,
1866     perf_review_period_frequency,
1867     period_of_service_id,
1868     probation_period,
1869     probation_unit,
1870     sal_review_period,
1871     sal_review_period_frequency,
1872     set_of_books_id,
1873     source_type,
1874     time_normal_finish,
1875     time_normal_start,
1876     bargaining_unit_code,
1877     labour_union_member_flag,
1878     hourly_salaried_code,
1879     request_id,
1880     program_application_id,
1881     program_id,
1882     program_update_date,
1883     ass_attribute_category,
1884     ass_attribute1,
1885     ass_attribute2,
1886     ass_attribute3,
1887     ass_attribute4,
1888     ass_attribute5,
1889     ass_attribute6,
1890     ass_attribute7,
1891     ass_attribute8,
1892     ass_attribute9,
1893     ass_attribute10,
1894     ass_attribute11,
1895     ass_attribute12,
1896     ass_attribute13,
1897     ass_attribute14,
1898     ass_attribute15,
1899     ass_attribute16,
1900     ass_attribute17,
1901     ass_attribute18,
1902     ass_attribute19,
1903     ass_attribute20,
1904     ass_attribute21,
1905     ass_attribute22,
1906     ass_attribute23,
1907     ass_attribute24,
1908     ass_attribute25,
1909     ass_attribute26,
1910     ass_attribute27,
1911     ass_attribute28,
1912     ass_attribute29,
1913     ass_attribute30,
1914     title,
1915     object_version_number ,
1916     contract_id,
1917     establishment_id,
1918     collective_agreement_id,
1919     cagr_grade_def_id,
1920     cagr_id_flex_num,
1921     notice_period,
1922     notice_period_uom,
1923     employee_category,
1924     work_at_home,
1925     job_post_source_name,
1926     posting_content_id,
1927     period_of_placement_date_start,
1928     vendor_id,
1929     vendor_employee_number,
1930     vendor_assignment_number,
1931     assignment_category,
1932     project_title,
1933     applicant_rank,
1934     grade_ladder_pgm_id,
1935     supervisor_assignment_id,
1936     vendor_site_id,
1937     po_header_id,
1938     po_line_id,
1939     projected_assignment_end
1940     from    per_all_assignments_f
1941     where    assignment_id    = p_rec.assignment_id
1942     and        p_effective_date between effective_start_date
1943                                  and     effective_end_date;
1944 
1945   cursor c_asg_rowid is
1946     select rowid
1947     from    per_all_assignments_f
1948     where    assignment_id    = p_rec.assignment_id
1949     and        p_effective_date between effective_start_date
1950                                  and     effective_end_date;
1951 
1952   l_old_rec per_asg_shd.g_old_rec%type;
1953   l_old_rowid rowid;
1954   -- End changes for bug 13059935
1955 --
1956 Begin
1957   hr_utility.set_location('Entering:'||l_proc, 5);
1958   --
1959   -- Ensure that the DateTrack update mode is valid
1960   --
1961   dt_api.validate_dt_upd_mode(p_datetrack_mode => p_datetrack_mode);
1962   --
1963   -- Determine if the business process is to be validated.
1964   --
1965   If p_validate then
1966     --
1967     -- Issue the savepoint.
1968     --
1969     SAVEPOINT upd_per_asg;
1970     --
1971   End If;
1972   --
1973   -- We must lock the row which we need to update.
1974   --
1975   per_asg_shd.lck
1976     (p_effective_date     => p_effective_date,
1977            p_datetrack_mode     => p_datetrack_mode,
1978            p_assignment_id     => p_rec.assignment_id,
1979            p_object_version_number => p_rec.object_version_number,
1980            p_validation_start_date => l_validation_start_date,
1981            p_validation_end_date     => l_validation_end_date
1982         );
1983   --
1984   -- 1. During an update system defaults are used to determine if
1985   --    arguments have been defaulted or not. We must therefore
1986   --    derive the full record structure values to be updated.
1987   --
1988   convert_defs(p_rec);
1989   --
1990   -- 2. Call the supporting update validate operations.
1991   --
1992   per_asg_bus1.update_validate
1993     (p_rec                  => p_rec,
1994      p_effective_date          => p_effective_date,
1995      p_datetrack_mode            => p_datetrack_mode,
1996      p_validation_start_date      => l_validation_start_date,
1997      p_validation_end_date          => l_validation_end_date,
1998          p_payroll_id_updated         => l_payroll_id_updated,
1999          p_other_manager_warning      => p_other_manager_warning,
2000          p_hourly_salaried_warning    => p_hourly_salaried_warning,
2001          p_no_managers_warning        => p_no_managers_warning,
2002          p_org_now_no_manager_warning => p_org_now_no_manager_warning,
2003          p_inv_pos_grade_warning      => l_inv_pos_grade_warning);
2004   --
2005   -- Call to raise any errors on multi-message list
2006   hr_multi_message.end_validation_set;
2007   --
2008   -- Call the supporting pre-update operation
2009 
2010   --
2011   -- Start changes for bug 13059935
2012   open c_asg_rec;
2013   fetch c_asg_rec into l_old_rec;
2014   close c_asg_rec;
2015 
2016 
2017   -- Start changes for bug 13855370
2018   /* open c_asg_rowid;
2019   fetch c_asg_rowid into l_old_rowid;
2020   close c_asg_rowid; */
2021   -- End changes for bug 13855370
2022   --
2023   pre_update
2024     (p_rec             => p_rec,
2025      p_effective_date     => p_effective_date,
2026      p_datetrack_mode     => p_datetrack_mode,
2027      p_validation_start_date => l_validation_start_date,
2028      p_validation_end_date     => l_validation_end_date);
2029   --
2030   -- Update the row.
2031   --
2032   update_dml
2033     (p_rec             => p_rec,
2034      p_effective_date     => p_effective_date,
2035      p_datetrack_mode     => p_datetrack_mode,
2036      p_validation_start_date => l_validation_start_date,
2037      p_validation_end_date     => l_validation_end_date);
2038   --
2039   -- Call the supporting post-update operation
2040   --
2041 
2042     -- Start changes for bug 13855370
2043   open c_asg_rowid;
2044   fetch c_asg_rowid into l_old_rowid;
2045   close c_asg_rowid;
2046   -- End changes for bug 13855370
2047 
2048   post_update
2049     (p_rec                  => p_rec,
2050      -- Start changes for bug 13059935
2051      p_old_rec          => l_old_rec,
2052      p_old_rowid        => l_old_rowid,
2053      -- End changes for bug 13059935
2054      p_effective_date          => p_effective_date,
2055      p_datetrack_mode          => p_datetrack_mode,
2056      p_validation_start_date      => l_validation_start_date,
2057      p_validation_end_date          => l_validation_end_date,
2058          p_payroll_id_updated         => l_payroll_id_updated,
2059          p_other_manager_warning      => l_other_manager_warning,
2060          p_hourly_salaried_warning      => l_hourly_salaried_warning,
2061          p_no_managers_warning        => l_no_managers_warning,
2062          p_org_now_no_manager_warning => l_org_now_no_manager_warning);
2063   --
2064   -- Call to raise any errors on multi-message list
2065   hr_multi_message.end_validation_set;
2066   --
2067   -- Set validation start and end dates
2068   --
2069   p_validation_start_date := l_validation_start_date;
2070   p_validation_end_date   := l_validation_end_date;
2071   --
2072   -- Set other output arguments
2073   --
2074   p_payroll_id_updated         := l_payroll_id_updated;
2075   --p_other_manager_warning      := l_other_manager_warning;
2076   --p_no_managers_warning        := l_no_managers_warning;
2077   p_org_now_no_manager_warning := l_org_now_no_manager_warning;
2078   --
2079   -- If we are validating then raise the Validate_Enabled exception
2080   --
2081   If p_validate then
2082     Raise HR_Api.Validate_Enabled;
2083   End If;
2084   --
2085   hr_utility.set_location(' Leaving:'||l_proc, 10);
2086 Exception
2087   When HR_Api.Validate_Enabled Then
2088     --
2089     -- As the Validate_Enabled exception has been raised
2090     -- we must rollback to the savepoint
2091     --
2092     ROLLBACK TO upd_per_asg;
2093 End upd;
2094 --
2095 -- ----------------------------------------------------------------------------
2096 -- |---------------------------------< upd >----------------------------------|
2097 -- ----------------------------------------------------------------------------
2098 Procedure upd
2099   (
2100   p_assignment_id                in number,
2101   p_effective_start_date         out nocopy date,
2102   p_effective_end_date           out nocopy date,
2103 
2104   p_business_group_id            out nocopy number,
2105   p_recruiter_id                 in number           default hr_api.g_number,
2106   p_grade_id                     in number           default hr_api.g_number,
2107   p_position_id                  in number           default hr_api.g_number,
2108   p_job_id                       in number           default hr_api.g_number,
2109   p_assignment_status_type_id    in number           default hr_api.g_number,
2110   p_payroll_id                   in number           default hr_api.g_number,
2111   p_location_id                  in number           default hr_api.g_number,
2112   p_person_referred_by_id        in number           default hr_api.g_number,
2113   p_supervisor_id                in number           default hr_api.g_number,
2114   p_special_ceiling_step_id      in number           default hr_api.g_number,
2115   p_recruitment_activity_id      in number           default hr_api.g_number,
2116   p_source_organization_id       in number           default hr_api.g_number,
2117 
2118   p_organization_id              in number           default hr_api.g_number,
2119   p_people_group_id              in number           default hr_api.g_number,
2120   p_soft_coding_keyflex_id       in number           default hr_api.g_number,
2121   p_vacancy_id                   in number           default hr_api.g_number,
2122   p_pay_basis_id                 in number           default hr_api.g_number,
2123   p_assignment_type              in varchar2         default hr_api.g_varchar2,
2124   p_primary_flag                 in varchar2         default hr_api.g_varchar2,
2125   p_application_id               in number           default hr_api.g_number,
2126   p_assignment_number            in varchar2         default hr_api.g_varchar2,
2127   p_change_reason                in varchar2         default hr_api.g_varchar2,
2128   p_comment_id                   out nocopy number,
2129   p_comments                     in varchar2         default hr_api.g_varchar2,
2130   p_date_probation_end           in date             default hr_api.g_date,
2131 
2132   p_default_code_comb_id         in number           default hr_api.g_number,
2133   p_employment_category          in varchar2         default hr_api.g_varchar2,
2134   p_frequency                    in varchar2         default hr_api.g_varchar2,
2135   p_internal_address_line        in varchar2         default hr_api.g_varchar2,
2136   p_manager_flag                 in varchar2         default hr_api.g_varchar2,
2137   p_normal_hours                 in number           default hr_api.g_number,
2138   p_perf_review_period           in number           default hr_api.g_number,
2139   p_perf_review_period_frequency in varchar2         default hr_api.g_varchar2,
2140   p_period_of_service_id         in number           default hr_api.g_number,
2141   p_probation_period             in number           default hr_api.g_number,
2142   p_probation_unit               in varchar2         default hr_api.g_varchar2,
2143   p_sal_review_period            in number           default hr_api.g_number,
2144   p_sal_review_period_frequency  in varchar2         default hr_api.g_varchar2,
2145   p_set_of_books_id              in number           default hr_api.g_number,
2146 
2147   p_source_type                  in varchar2         default hr_api.g_varchar2,
2148   p_time_normal_finish           in varchar2         default hr_api.g_varchar2,
2149   p_time_normal_start            in varchar2         default hr_api.g_varchar2,
2150   p_bargaining_unit_code         in varchar2         default hr_api.g_varchar2,
2151   p_labour_union_member_flag     in varchar2         default hr_api.g_varchar2,
2152   p_hourly_salaried_code         in varchar2         default hr_api.g_varchar2,
2153   p_request_id                   in number           default hr_api.g_number,
2154   p_program_application_id       in number           default hr_api.g_number,
2155   p_program_id                   in number           default hr_api.g_number,
2156   p_program_update_date          in date             default hr_api.g_date,
2157   p_ass_attribute_category       in varchar2         default hr_api.g_varchar2,
2158   p_ass_attribute1               in varchar2         default hr_api.g_varchar2,
2159   p_ass_attribute2               in varchar2         default hr_api.g_varchar2,
2160   p_ass_attribute3               in varchar2         default hr_api.g_varchar2,
2161   p_ass_attribute4               in varchar2         default hr_api.g_varchar2,
2162   p_ass_attribute5               in varchar2         default hr_api.g_varchar2,
2163 
2164   p_ass_attribute6               in varchar2         default hr_api.g_varchar2,
2165   p_ass_attribute7               in varchar2         default hr_api.g_varchar2,
2166   p_ass_attribute8               in varchar2         default hr_api.g_varchar2,
2167   p_ass_attribute9               in varchar2         default hr_api.g_varchar2,
2168   p_ass_attribute10              in varchar2         default hr_api.g_varchar2,
2169   p_ass_attribute11              in varchar2         default hr_api.g_varchar2,
2170   p_ass_attribute12              in varchar2         default hr_api.g_varchar2,
2171   p_ass_attribute13              in varchar2         default hr_api.g_varchar2,
2172   p_ass_attribute14              in varchar2         default hr_api.g_varchar2,
2173   p_ass_attribute15              in varchar2         default hr_api.g_varchar2,
2174   p_ass_attribute16              in varchar2         default hr_api.g_varchar2,
2175   p_ass_attribute17              in varchar2         default hr_api.g_varchar2,
2176   p_ass_attribute18              in varchar2         default hr_api.g_varchar2,
2177 
2178   p_ass_attribute19              in varchar2         default hr_api.g_varchar2,
2179   p_ass_attribute20              in varchar2         default hr_api.g_varchar2,
2180   p_ass_attribute21              in varchar2         default hr_api.g_varchar2,
2181   p_ass_attribute22              in varchar2         default hr_api.g_varchar2,
2182   p_ass_attribute23              in varchar2         default hr_api.g_varchar2,
2183   p_ass_attribute24              in varchar2         default hr_api.g_varchar2,
2184   p_ass_attribute25              in varchar2         default hr_api.g_varchar2,
2185   p_ass_attribute26              in varchar2         default hr_api.g_varchar2,
2186   p_ass_attribute27              in varchar2         default hr_api.g_varchar2,
2187   p_ass_attribute28              in varchar2         default hr_api.g_varchar2,
2188   p_ass_attribute29              in varchar2         default hr_api.g_varchar2,
2189   p_ass_attribute30              in varchar2         default hr_api.g_varchar2,
2190   p_title                        in varchar2         default hr_api.g_varchar2,
2191   p_contract_id                  in number           default hr_api.g_number,
2192   p_establishment_id             in number           default hr_api.g_number,
2193   p_collective_agreement_id      in number           default hr_api.g_number,
2194   p_cagr_grade_def_id            in number           default hr_api.g_number,
2195   p_cagr_id_flex_num             in number           default hr_api.g_number,
2196   p_object_version_number        in out nocopy number,
2197   p_notice_period     in number       default hr_api.g_number,
2198   p_notice_period_uom       in varchar2        default hr_api.g_varchar2,
2199   p_employee_category       in varchar2        default hr_api.g_varchar2,
2200   p_work_at_home      in varchar2        default hr_api.g_varchar2,
2201   p_job_post_source_name    in varchar2         default hr_api.g_varchar2,
2202   p_posting_content_id           in number           default hr_api.g_number,
2203   p_placement_date_start         in date             default hr_api.g_date,
2204   p_vendor_id                    in number           default hr_api.g_number,
2205   p_vendor_employee_number        in varchar2         default hr_api.g_varchar2,
2206   p_vendor_assignment_number     in varchar2         default hr_api.g_varchar2,
2207   p_assignment_category          in varchar2         default hr_api.g_varchar2,
2208   p_project_title                in varchar2         default hr_api.g_varchar2,
2209   p_applicant_rank               in number           default hr_api.g_number,
2210   p_grade_ladder_pgm_id          in number           default hr_api.g_number,
2211   p_supervisor_assignment_id     in number           default hr_api.g_number,
2212   p_vendor_site_id               in number           default hr_api.g_number,
2213   p_po_header_id                 in number           default hr_api.g_number,
2214   p_po_line_id                   in number           default hr_api.g_number,
2215   p_projected_assignment_end     in date             default hr_api.g_date,
2216   p_payroll_id_updated           out nocopy boolean,
2217   p_other_manager_warning        out nocopy boolean,
2218   p_hourly_salaried_warning      out nocopy boolean,
2219   p_no_managers_warning          out nocopy boolean,
2220   p_org_now_no_manager_warning   out nocopy boolean,
2221   p_validation_start_date        out nocopy date,
2222   p_validation_end_date          out nocopy date,
2223   p_effective_date         in date,
2224   p_datetrack_mode         in varchar2,
2225   p_validate             in boolean      default false
2226   ) is
2227 --
2228   l_rec        per_asg_shd.g_rec_type;
2229 
2230   l_proc    varchar2(72) := g_package||'upd';
2231 --
2232 Begin
2233   hr_utility.set_location('Entering:'||l_proc, 5);
2234   --
2235   -- Call conversion function to turn arguments into the
2236   -- l_rec structure.
2237   --
2238   l_rec :=
2239   per_asg_shd.convert_args
2240   (
2241   p_assignment_id,
2242   null,
2243 
2244   null,
2245   hr_api.g_number,
2246   p_recruiter_id,
2247   p_grade_id,
2248   p_position_id,
2249   p_job_id,
2250   p_assignment_status_type_id,
2251   p_payroll_id,
2252   p_location_id,
2253   p_person_referred_by_id,
2254   p_supervisor_id,
2255   p_special_ceiling_step_id,
2256   hr_api.g_number,
2257 
2258   p_recruitment_activity_id,
2259   p_source_organization_id,
2260   p_organization_id,
2261   p_people_group_id,
2262   p_soft_coding_keyflex_id,
2263   p_vacancy_id,
2264   p_pay_basis_id,
2265   hr_api.g_number,
2266   p_assignment_type,
2267   p_primary_flag,
2268   p_application_id,
2269   p_assignment_number,
2270   p_change_reason,
2271   hr_api.g_number,
2272   p_comments,
2273   p_date_probation_end,
2274   p_default_code_comb_id,
2275   p_employment_category,
2276   p_frequency,
2277   p_internal_address_line,
2278   p_manager_flag,
2279   p_normal_hours,
2280   p_perf_review_period,
2281   p_perf_review_period_frequency,
2282   p_period_of_service_id,
2283   p_probation_period,
2284   p_probation_unit,
2285   p_sal_review_period,
2286   p_sal_review_period_frequency,
2287   p_set_of_books_id,
2288   p_source_type,
2289   p_time_normal_finish,
2290   p_time_normal_start,
2291   p_bargaining_unit_code,
2292   p_labour_union_member_flag,
2293   p_hourly_salaried_code,
2294   p_request_id,
2295   p_program_application_id,
2296   p_program_id,
2297   p_program_update_date,
2298   p_ass_attribute_category,
2299   p_ass_attribute1,
2300   p_ass_attribute2,
2301   p_ass_attribute3,
2302   p_ass_attribute4,
2303   p_ass_attribute5,
2304   p_ass_attribute6,
2305   p_ass_attribute7,
2306   p_ass_attribute8,
2307   p_ass_attribute9,
2308   p_ass_attribute10,
2309   p_ass_attribute11,
2310   p_ass_attribute12,
2311   p_ass_attribute13,
2312   p_ass_attribute14,
2313   p_ass_attribute15,
2314   p_ass_attribute16,
2315   p_ass_attribute17,
2316   p_ass_attribute18,
2317   p_ass_attribute19,
2318   p_ass_attribute20,
2319   p_ass_attribute21,
2320   p_ass_attribute22,
2321   p_ass_attribute23,
2322   p_ass_attribute24,
2323   p_ass_attribute25,
2324   p_ass_attribute26,
2325   p_ass_attribute27,
2326   p_ass_attribute28,
2327   p_ass_attribute29,
2328   p_ass_attribute30,
2329   p_title,
2330   p_object_version_number,
2331   p_contract_id,
2332   p_establishment_id,
2333   p_collective_agreement_id,
2334   p_cagr_grade_def_id,
2335   p_cagr_id_flex_num,
2336   p_notice_period,
2337   p_notice_period_uom,
2338   p_employee_category,
2339   p_work_at_home,
2340   p_job_post_source_name,
2341   p_posting_content_id,
2342   p_placement_date_start,
2343   p_vendor_id,
2344   p_vendor_employee_number,
2345   p_vendor_assignment_number,
2346   p_assignment_category,
2347   p_project_title,
2348   p_applicant_rank,
2349   p_grade_ladder_pgm_id,
2350   p_supervisor_assignment_id,
2351   p_vendor_site_id,
2352   p_po_header_id,
2353   p_po_line_id,
2354   p_projected_assignment_end
2355 );
2356   --
2357   -- Having converted the arguments into the
2358   -- plsql record structure we call the corresponding record
2359   -- business process.
2360   --
2361   upd(l_rec,
2362       p_effective_date,
2363 
2364       p_datetrack_mode,
2365       p_validation_start_date,
2366       p_validation_end_date,
2367       p_validate,
2368       p_payroll_id_updated,
2369       p_other_manager_warning,
2370       p_hourly_salaried_warning,
2371       p_no_managers_warning,
2372       p_org_now_no_manager_warning);
2373   --
2374   p_business_group_id           := l_rec.business_group_id;
2375   p_comment_id                  := l_rec.comment_id;
2376   p_effective_end_date          := l_rec.effective_end_date;
2377   p_effective_start_date        := l_rec.effective_start_date;
2378 
2379   p_object_version_number       := l_rec.object_version_number;
2380   --
2381   hr_utility.set_location(' Leaving:'||l_proc, 10);
2382 End upd;
2383 --
2384 end per_asg_upd;