DBA Data[Home] [Help]

PACKAGE BODY: APPS.HR_FR_ASSIGNMENT_API

Source


1 Package Body hr_fr_assignment_api as
2 /* $Header: peasgfri.pkb 120.1 2006/06/23 11:24:43 nmuthusa noship $ */
3 --
4 -- Package Variables
5 --
6 g_package  varchar2(33) := '  hr_fr_assignment_api.';
7 --
8 -- ----------------------------------------------------------------------------
12 procedure create_fr_secondary_emp_asg
9 -- |---------------------< create_fr_secondary_emp_asg >-----------------------|
10 -- ----------------------------------------------------------------------------
11 --
13 (p_validate                     in     boolean
14   ,p_effective_date               in     date
15   ,p_person_id                    in     number
16   ,p_organization_id              in     number
17   ,p_grade_id                     in     number
18   ,p_position_id                  in     number
19   ,p_job_id                       in     number
20   ,p_assignment_status_type_id    in     number
21   ,p_payroll_id                   in     number
22   ,p_location_id                  in     number
23   ,p_supervisor_id                in     number
24   ,p_special_ceiling_step_id      in     number
25   ,p_pay_basis_id                 in     number
26   ,p_assignment_number            in out nocopy varchar2
27   ,p_change_reason                in     varchar2
28   ,p_comments                     in     varchar2
29   ,p_date_probation_end           in     date
30   ,p_default_code_comb_id         in     number
31   ,p_employment_category          in     varchar2
32   ,p_frequency                    in     varchar2
33   ,p_internal_address_line        in     varchar2
34   ,p_manager_flag                 in     varchar2
35   ,p_normal_hours                 in     number
36   ,p_perf_review_period           in     number
37   ,p_perf_review_period_frequency in     varchar2
38   ,p_probation_period             in     number
39   ,p_probation_unit               in     varchar2
40   ,p_sal_review_period            in     number
41   ,p_sal_review_period_frequency  in     varchar2
42   ,p_set_of_books_id              in     number
43   ,p_source_type                  in     varchar2
44   ,p_time_normal_finish           in     varchar2
45   ,p_time_normal_start            in     varchar2
46   ,p_bargaining_unit_code         in     varchar2
47   ,p_labour_union_member_flag     in     varchar2
48   ,p_ass_attribute_category       in     varchar2
49   ,p_ass_attribute1               in     varchar2
50   ,p_ass_attribute2               in     varchar2
51   ,p_ass_attribute3               in     varchar2
52   ,p_ass_attribute4               in     varchar2
53   ,p_ass_attribute5               in     varchar2
54   ,p_ass_attribute6               in     varchar2
55   ,p_ass_attribute7               in     varchar2
56   ,p_ass_attribute8               in     varchar2
57   ,p_ass_attribute9               in     varchar2
58   ,p_ass_attribute10              in     varchar2
59   ,p_ass_attribute11              in     varchar2
60   ,p_ass_attribute12              in     varchar2
61   ,p_ass_attribute13              in     varchar2
62   ,p_ass_attribute14              in     varchar2
63   ,p_ass_attribute15              in     varchar2
64   ,p_ass_attribute16              in     varchar2
65   ,p_ass_attribute17              in     varchar2
66   ,p_ass_attribute18              in     varchar2
67   ,p_ass_attribute19              in     varchar2
68   ,p_ass_attribute20              in     varchar2
69   ,p_ass_attribute21              in     varchar2
70   ,p_ass_attribute22              in     varchar2
71   ,p_ass_attribute23              in     varchar2
72   ,p_ass_attribute24              in     varchar2
73   ,p_ass_attribute25              in     varchar2
74   ,p_ass_attribute26              in     varchar2
75   ,p_ass_attribute27              in     varchar2
76   ,p_ass_attribute28              in     varchar2
77   ,p_ass_attribute29              in     varchar2
78   ,p_ass_attribute30              in     varchar2
79   ,p_title                        in     varchar2
80   ,p_employee_category            in     varchar2
81   ,p_starting_reason              in     varchar2
82   ,p_ending_reason                in     varchar2
83   ,p_work_pattern                 in     varchar2
84   ,p_work_pattern_start_day       in     number
85   ,p_working_days_per_year        in     number
86   ,p_detache_status               in     varchar2
87   ,p_address_abroad               in     varchar2
88   ,p_border_worker                in     varchar2
89   ,p_urssaf_code                  in     varchar2
90   ,p_professional_status	  in	 varchar2
91   ,p_grouping_employer		  in	 varchar2
92   ,p_fr_concat_segments           in     varchar2
93   ,p_pgp_segment1                 in     varchar2
94   ,p_pgp_segment2                 in     varchar2
95   ,p_pgp_segment3                 in     varchar2
96   ,p_pgp_segment4                 in     varchar2
97   ,p_pgp_segment5                 in     varchar2
98   ,p_pgp_segment6                 in     varchar2
99   ,p_pgp_segment7                 in     varchar2
100   ,p_pgp_segment8                 in     varchar2
101   ,p_pgp_segment9                 in     varchar2
102   ,p_pgp_segment10                in     varchar2
103   ,p_pgp_segment11                in     varchar2
104   ,p_pgp_segment12                in     varchar2
105   ,p_pgp_segment13                in     varchar2
106   ,p_pgp_segment14                in     varchar2
107   ,p_pgp_segment15                in     varchar2
108   ,p_pgp_segment16                in     varchar2
109   ,p_pgp_segment17                in     varchar2
110   ,p_pgp_segment18                in     varchar2
111   ,p_pgp_segment19                in     varchar2
112   ,p_pgp_segment20                in     varchar2
113   ,p_pgp_segment21                in     varchar2
114   ,p_pgp_segment22                in     varchar2
115   ,p_pgp_segment23                in     varchar2
116   ,p_pgp_segment24                in     varchar2
117   ,p_pgp_segment25                in     varchar2
118   ,p_pgp_segment26                in     varchar2
119   ,p_pgp_segment27                in     varchar2
123   ,p_pgp_concat_segments          in     varchar2
120   ,p_pgp_segment28                in     varchar2
121   ,p_pgp_segment29                in     varchar2
122   ,p_pgp_segment30                in     varchar2
124   ,p_contract_id                  in     number
125   ,p_establishment_id             in     number
126   ,p_collective_agreement_id      in     number
127   ,p_cagr_id_flex_num             in     number
128   ,p_cag_segment1                 in     varchar2
129   ,p_cag_segment2                 in     varchar2
130   ,p_cag_segment3                 in     varchar2
131   ,p_cag_segment4                 in     varchar2
132   ,p_cag_segment5                 in     varchar2
133   ,p_cag_segment6                 in     varchar2
134   ,p_cag_segment7                 in     varchar2
135   ,p_cag_segment8                 in     varchar2
136   ,p_cag_segment9                 in     varchar2
137   ,p_cag_segment10                in     varchar2
138   ,p_cag_segment11                in     varchar2
139   ,p_cag_segment12                in     varchar2
140   ,p_cag_segment13                in     varchar2
141   ,p_cag_segment14                in     varchar2
142   ,p_cag_segment15                in     varchar2
143   ,p_cag_segment16                in     varchar2
144   ,p_cag_segment17                in     varchar2
145   ,p_cag_segment18                in     varchar2
146   ,p_cag_segment19                in     varchar2
147   ,p_cag_segment20                in     varchar2
148   ,p_cagr_grade_def_id               out nocopy number
149   ,p_cagr_concatenated_segments      out nocopy varchar2
150   ,p_assignment_id                   out nocopy number
151   ,p_soft_coding_keyflex_id          out nocopy number
152   ,p_people_group_id                 out nocopy number
153   ,p_object_version_number           out nocopy number
154   ,p_effective_start_date            out nocopy date
155   ,p_effective_end_date              out nocopy date
156   ,p_assignment_sequence             out nocopy number
157   ,p_comment_id                      out nocopy number
158   ,p_concatenated_segments           out nocopy varchar2
159   ,p_group_name                      out nocopy varchar2
160   ,p_other_manager_warning           out nocopy boolean
161   ) is
162   --
163   -- Declare cursors and local variables
164   --
165   l_assignment_number  per_assignments_f.assignment_number%TYPE;
166   l_effective_date     date;
167   l_legislation_code   per_business_groups.legislation_code%TYPE;
168   l_proc               varchar2(72) := g_package||'create_fr_secondary_emp_asg';
169   --
170   -- Declare dummy variables
171   l_concatenated_segments  hr_soft_coding_keyflex.concatenated_segments%TYPE;
172   l_soft_coding_keyflex_id per_assignments_f.soft_coding_keyflex_id%TYPE;
173   --
174   -- Declare cursors
175   --
176   cursor csr_legislation is
177     select null
178     from per_assignments_f paf,
179          per_business_groups pbg
180     where paf.person_id = p_person_id
181     and   l_effective_date between paf.effective_start_date
182                            and     paf.effective_end_date
183     and   pbg.business_group_id = paf.business_group_id
184     and   pbg.legislation_code = 'FR';
185   --
186   --
187 begin
188   hr_utility.set_location('Entering:'|| l_proc, 10);
189   --
190   -- Initialise local variable
191   --
192   l_effective_date := trunc(p_effective_date);
193   --
194   -- Validation in addition to Table Handlers
195   --
196   -- Ensure that the employee is within a FR business group
197   --
198   open csr_legislation;
199   fetch csr_legislation
200   into l_legislation_code;
201   if csr_legislation%notfound then
202     close csr_legislation;
203     hr_utility.set_message(801, 'HR_7961_PER_BUS_GRP_INVALID');
204     hr_utility.set_message_token('LEG_CODE', 'FR');
205     hr_utility.raise_error;
206   end if;
207   close csr_legislation;
208   --
209   hr_utility.set_location(l_proc, 20);
210   --
211   -- Call create_secondary_emp_asg
212   --
213   hr_assignment_api.create_secondary_emp_asg
214   (p_validate                     =>     p_validate
215   ,p_effective_date               =>     l_effective_date
216   ,p_person_id                    =>     p_person_id
217   ,p_organization_id              =>     p_organization_id
218   ,p_grade_id                     =>     p_grade_id
219   ,p_position_id                  =>     p_position_id
220   ,p_job_id                       =>     p_job_id
221   ,p_assignment_status_type_id    =>     p_assignment_status_type_id
222   ,p_payroll_id                   =>     p_payroll_id
223   ,p_location_id                  =>     p_location_id
224   ,p_supervisor_id                =>     p_supervisor_id
225   ,p_special_ceiling_step_id      =>     p_special_ceiling_step_id
226   ,p_pay_basis_id                 =>     p_pay_basis_id
227   ,p_assignment_number            =>     l_assignment_number
228   ,p_change_reason                =>     p_change_reason
229   ,p_comments                     =>     p_comments
230   ,p_date_probation_end           =>     trunc(p_date_probation_end)
231   ,p_default_code_comb_id         =>     p_default_code_comb_id
232   ,p_employment_category          =>     p_employment_category
233   ,p_frequency                    =>     p_frequency
234   ,p_internal_address_line        =>     p_internal_address_line
235   ,p_manager_flag                 =>     p_manager_flag
236   ,p_normal_hours                 =>     p_normal_hours
237   ,p_perf_review_period           =>     p_perf_review_period
238   ,p_perf_review_period_frequency =>     p_perf_review_period_frequency
242   ,p_sal_review_period_frequency  =>     p_sal_review_period_frequency
239   ,p_probation_period             =>     p_probation_period
240   ,p_probation_unit               =>     p_probation_unit
241   ,p_sal_review_period            =>     p_sal_review_period
243   ,p_set_of_books_id              =>     p_set_of_books_id
244   ,p_source_type                  =>     p_source_type
245   ,p_time_normal_finish           =>     p_time_normal_finish
246   ,p_time_normal_start            =>     p_time_normal_start
247   ,p_bargaining_unit_code         =>     p_bargaining_unit_code
248   ,p_labour_union_member_flag     =>     p_labour_union_member_flag
249   ,p_ass_attribute_category       =>     p_ass_attribute_category
250   ,p_ass_attribute1               =>     p_ass_attribute1
251   ,p_ass_attribute2               =>     p_ass_attribute2
252   ,p_ass_attribute3               =>     p_ass_attribute3
253   ,p_ass_attribute4               =>     p_ass_attribute4
254   ,p_ass_attribute5               =>     p_ass_attribute5
255   ,p_ass_attribute6               =>     p_ass_attribute6
256   ,p_ass_attribute7               =>     p_ass_attribute7
257   ,p_ass_attribute8               =>     p_ass_attribute8
258   ,p_ass_attribute9               =>     p_ass_attribute9
259   ,p_ass_attribute10              =>     p_ass_attribute10
260   ,p_ass_attribute11              =>     p_ass_attribute11
261   ,p_ass_attribute12              =>     p_ass_attribute12
262   ,p_ass_attribute13              =>     p_ass_attribute13
263   ,p_ass_attribute14              =>     p_ass_attribute14
264   ,p_ass_attribute15              =>     p_ass_attribute15
265   ,p_ass_attribute16              =>     p_ass_attribute16
266   ,p_ass_attribute17              =>     p_ass_attribute17
267   ,p_ass_attribute18              =>     p_ass_attribute18
268   ,p_ass_attribute19              =>     p_ass_attribute19
269   ,p_ass_attribute20              =>     p_ass_attribute20
270   ,p_ass_attribute21              =>     p_ass_attribute21
271   ,p_ass_attribute22              =>     p_ass_attribute22
272   ,p_ass_attribute23              =>     p_ass_attribute23
273   ,p_ass_attribute24              =>     p_ass_attribute24
274   ,p_ass_attribute25              =>     p_ass_attribute25
275   ,p_ass_attribute26              =>     p_ass_attribute26
276   ,p_ass_attribute27              =>     p_ass_attribute27
277   ,p_ass_attribute28              =>     p_ass_attribute28
278   ,p_ass_attribute29              =>     p_ass_attribute29
279   ,p_ass_attribute30              =>     p_ass_attribute30
280   ,p_title                        =>     p_title
281   ,p_scl_segment2                 =>     p_employee_category
282   ,p_scl_segment3                 =>     p_starting_reason
283   ,p_scl_segment4                 =>     p_ending_reason
284   ,p_scl_segment5                 =>     p_work_pattern
285   ,p_scl_segment6                 =>     p_urssaf_code
286   ,p_scl_segment11                =>     p_work_pattern_start_day
287   ,p_scl_segment12                =>     p_detache_status
288   ,p_scl_segment13                =>     p_address_abroad
289   ,p_scl_segment14                =>     p_border_worker
290   ,p_scl_segment15                =>     p_working_days_per_year
291   ,p_scl_segment16		  =>     p_professional_status
292   ,p_scl_segment28		  =>	 p_grouping_employer
293   ,p_scl_concat_segments          =>	 p_fr_concat_segments
294   ,p_pgp_segment1                 =>     p_pgp_segment1
295   ,p_pgp_segment2                 =>     p_pgp_segment2
296   ,p_pgp_segment3                 =>     p_pgp_segment3
297   ,p_pgp_segment4                 =>     p_pgp_segment4
298   ,p_pgp_segment5                 =>     p_pgp_segment5
299   ,p_pgp_segment6                 =>     p_pgp_segment6
300   ,p_pgp_segment7                 =>     p_pgp_segment7
301   ,p_pgp_segment8                 =>     p_pgp_segment8
302   ,p_pgp_segment9                 =>     p_pgp_segment9
303   ,p_pgp_segment10                =>     p_pgp_segment10
304   ,p_pgp_segment11                =>     p_pgp_segment11
305   ,p_pgp_segment12                =>     p_pgp_segment12
306   ,p_pgp_segment13                =>     p_pgp_segment13
307   ,p_pgp_segment14                =>     p_pgp_segment14
308   ,p_pgp_segment15                =>     p_pgp_segment15
309   ,p_pgp_segment16                =>     p_pgp_segment16
310   ,p_pgp_segment17                =>     p_pgp_segment17
311   ,p_pgp_segment18                =>     p_pgp_segment18
312   ,p_pgp_segment19                =>     p_pgp_segment19
313   ,p_pgp_segment20                =>     p_pgp_segment20
314   ,p_pgp_segment21                =>     p_pgp_segment21
315   ,p_pgp_segment22                =>     p_pgp_segment22
316   ,p_pgp_segment23                =>     p_pgp_segment23
317   ,p_pgp_segment24                =>     p_pgp_segment24
318   ,p_pgp_segment25                =>     p_pgp_segment25
319   ,p_pgp_segment26                =>     p_pgp_segment26
320   ,p_pgp_segment27                =>     p_pgp_segment27
321   ,p_pgp_segment28                =>     p_pgp_segment28
322   ,p_pgp_segment29                =>     p_pgp_segment29
323   ,p_pgp_segment30                =>     p_pgp_segment30
324   ,p_pgp_concat_segments	  =>     p_pgp_concat_segments
325   ,p_contract_id                  =>     p_contract_id
326   ,p_establishment_id             =>     p_establishment_id
327   ,p_collective_agreement_id      =>     p_collective_agreement_id
328   ,p_cagr_id_flex_num             =>     p_cagr_id_flex_num
329   ,p_cag_segment1                 =>     p_cag_segment1
330   ,p_cag_segment2                 =>     p_cag_segment2
331   ,p_cag_segment3                 =>     p_cag_segment3
332   ,p_cag_segment4                 =>     p_cag_segment4
333   ,p_cag_segment5                 =>     p_cag_segment5
337   ,p_cag_segment9                 =>     p_cag_segment9
334   ,p_cag_segment6                 =>     p_cag_segment6
335   ,p_cag_segment7                 =>     p_cag_segment7
336   ,p_cag_segment8                 =>     p_cag_segment8
338   ,p_cag_segment10                =>     p_cag_segment10
339   ,p_cag_segment11                =>     p_cag_segment11
340   ,p_cag_segment12                =>     p_cag_segment12
341   ,p_cag_segment13                =>     p_cag_segment13
342   ,p_cag_segment14                =>     p_cag_segment14
343   ,p_cag_segment15                =>     p_cag_segment15
344   ,p_cag_segment16                =>     p_cag_segment16
345   ,p_cag_segment17                =>     p_cag_segment17
346   ,p_cag_segment18                =>     p_cag_segment18
347   ,p_cag_segment19                =>     p_cag_segment19
348   ,p_cag_segment20                =>     p_cag_segment20
349   ,p_cagr_grade_def_id            =>     p_cagr_grade_def_id
350   ,p_cagr_concatenated_segments   =>     p_cagr_concatenated_segments
351   ,p_assignment_id                =>     p_assignment_id
352   ,p_soft_coding_keyflex_id       =>     p_soft_coding_keyflex_id
353   ,p_people_group_id              =>     p_people_group_id
354   ,p_object_version_number        =>     p_object_version_number
355   ,p_effective_start_date         =>     p_effective_start_date
356   ,p_effective_end_date           =>     p_effective_end_date
357   ,p_assignment_sequence          =>     p_assignment_sequence
358   ,p_comment_id                   =>     p_comment_id
359   ,p_concatenated_segments        =>     p_concatenated_segments
360   ,p_group_name                   =>     p_group_name
361   ,p_other_manager_warning        =>     p_other_manager_warning
362   );
363   --
364   hr_utility.set_location(' Leaving:'||l_proc, 30);
365   --
366 end create_fr_secondary_emp_asg;
367 --
368 -- ----------------------------------------------------------------------------
369 -- |--------------------------< update_fr_emp_asg >------------------------------|
370 -- ----------------------------------------------------------------------------
371 --
372 procedure update_fr_emp_asg
373   (p_validate                     in     boolean
374   ,p_effective_date               in     date
375   ,p_datetrack_update_mode        in     varchar2
376   ,p_assignment_id                in     number
377   ,p_object_version_number        in out nocopy number
378   ,p_supervisor_id                in     number
379   ,p_assignment_number            in     varchar2
380   ,p_change_reason                in     varchar2
381   ,p_comments                     in     varchar2
382   ,p_date_probation_end           in     date
383   ,p_default_code_comb_id         in     number
384   ,p_frequency                    in     varchar2
385   ,p_internal_address_line        in     varchar2
386   ,p_labour_union_member_flag     in     varchar2
387   ,p_manager_flag                 in     varchar2
388   ,p_normal_hours                 in     number
389   ,p_perf_review_period           in     number
390   ,p_perf_review_period_frequency in     varchar2
391   ,p_probation_period             in     number
392   ,p_probation_unit               in     varchar2
393   ,p_sal_review_period            in     number
394   ,p_sal_review_period_frequency  in     varchar2
395   ,p_set_of_books_id              in     number
396   ,p_source_type                  in     varchar2
397   ,p_time_normal_finish           in     varchar2
398   ,p_time_normal_start            in     varchar2
399   ,p_ass_attribute_category       in     varchar2
400   ,p_ass_attribute1               in     varchar2
401   ,p_ass_attribute2               in     varchar2
402   ,p_ass_attribute3               in     varchar2
403   ,p_ass_attribute4               in     varchar2
404   ,p_ass_attribute5               in     varchar2
405   ,p_ass_attribute6               in     varchar2
406   ,p_ass_attribute7               in     varchar2
407   ,p_ass_attribute8               in     varchar2
408   ,p_ass_attribute9               in     varchar2
409   ,p_ass_attribute10              in     varchar2
410   ,p_ass_attribute11              in     varchar2
411   ,p_ass_attribute12              in     varchar2
412   ,p_ass_attribute13              in     varchar2
413   ,p_ass_attribute14              in     varchar2
414   ,p_ass_attribute15              in     varchar2
415   ,p_ass_attribute16              in     varchar2
416   ,p_ass_attribute17              in     varchar2
417   ,p_ass_attribute18              in     varchar2
418   ,p_ass_attribute19              in     varchar2
419   ,p_ass_attribute20              in     varchar2
420   ,p_ass_attribute21              in     varchar2
421   ,p_ass_attribute22              in     varchar2
422   ,p_ass_attribute23              in     varchar2
423   ,p_ass_attribute24              in     varchar2
424   ,p_ass_attribute25              in     varchar2
425   ,p_ass_attribute26              in     varchar2
426   ,p_ass_attribute27              in     varchar2
427   ,p_ass_attribute28              in     varchar2
428   ,p_ass_attribute29              in     varchar2
429   ,p_ass_attribute30              in     varchar2
430   ,p_title                        in     varchar2
431   ,p_employee_category            in     varchar2
432   ,p_starting_reason              in     varchar2
433   ,p_ending_reason                in     varchar2
434   ,p_work_pattern                 in     varchar2
435   ,p_work_pattern_start_day       in     number
436   ,p_working_days_per_year        in     number
437   ,p_detache_status               in     varchar2
438   ,p_address_abroad               in     varchar2
439   ,p_border_worker                in     varchar2
440   ,p_urssaf_code                  in     varchar2
444   ,p_contract_id                  in     number
441   ,p_professional_status	  in	 varchar2
442   ,p_grouping_employer		  in	 varchar2
443   ,p_fr_concat_segments           in     varchar2
445   ,p_establishment_id             in     number
446   ,p_collective_agreement_id      in     number
447   ,p_cagr_id_flex_num             in     number
448   ,p_cag_segment1                 in     varchar2
449   ,p_cag_segment2                 in     varchar2
450   ,p_cag_segment3                 in     varchar2
451   ,p_cag_segment4                 in     varchar2
452   ,p_cag_segment5                 in     varchar2
453   ,p_cag_segment6                 in     varchar2
454   ,p_cag_segment7                 in     varchar2
455   ,p_cag_segment8                 in     varchar2
456   ,p_cag_segment9                 in     varchar2
457   ,p_cag_segment10                in     varchar2
458   ,p_cag_segment11                in     varchar2
459   ,p_cag_segment12                in     varchar2
460   ,p_cag_segment13                in     varchar2
461   ,p_cag_segment14                in     varchar2
462   ,p_cag_segment15                in     varchar2
463   ,p_cag_segment16                in     varchar2
464   ,p_cag_segment17                in     varchar2
465   ,p_cag_segment18                in     varchar2
466   ,p_cag_segment19                in     varchar2
467   ,p_cag_segment20                in     varchar2
468   ,p_cagr_grade_def_id               out nocopy number
469   ,p_cagr_concatenated_segments      out nocopy varchar2
470   ,p_soft_coding_keyflex_id          out nocopy number
471   ,p_comment_id                      out nocopy number
472   ,p_effective_start_date            out nocopy date
473   ,p_effective_end_date              out nocopy date
474   ,p_concatenated_segments           out nocopy varchar2
475   ,p_no_managers_warning             out nocopy boolean
476   ,p_other_manager_warning           out nocopy boolean
477   ) is
478   --
479   -- Declare cursors and local variables
480   --
481   l_proc                       varchar2(72) := g_package||'update_fr_emp_asg';
482   l_effective_date             date;
483   l_soft_coding_keyflex_id     per_assignments_f.soft_coding_keyflex_id%TYPE;
484   l_concatenated_segments      varchar2(2000);
485   l_legislation_code           per_business_groups.legislation_code%TYPE;
486   l_work_pattern_start_date    varchar2(20);
487   l_working_days_per_year      varchar2(20);
488   --
489   cursor check_legislation
490     (c_assignment_id  per_assignments_f.assignment_id%TYPE,
491      c_effective_date date
492     )
493   is
494     select bgp.legislation_code
495     from per_assignments_f asg,
496          per_business_groups bgp
497     where asg.business_group_id = bgp.business_group_id
498     and   asg.assignment_id     = c_assignment_id
499     and   c_effective_date
500       between effective_start_date and effective_end_date;
501   --
502 begin
503   hr_utility.set_location('Entering:'|| l_proc, 10);
504   --
505   -- Truncate date variables
506   --
507   l_effective_date := trunc(p_effective_date);
508   --
509   -- Validate in addition to Table Handlers
510   --
511   -- Check that the assignment exists.
512   --
513   open check_legislation(p_assignment_id, l_effective_date);
514   fetch check_legislation into l_legislation_code;
515   if check_legislation%notfound then
516     close check_legislation;
517     hr_utility.set_message(801,'HR_7220_INVALID_PRIMARY_KEY');
518     hr_utility.raise_error;
519   end if;
520   close check_legislation;
521   hr_utility.set_location(l_proc, 20);
522   --
523   -- Check that the legislation of the specified business group is 'FR'.
524   --
525   if l_legislation_code <> 'FR' then
526     hr_utility.set_message(801, 'HR_7961_PER_BUS_GRP_INVALID');
527     hr_utility.set_message_token('LEG_CODE','FR');
528     hr_utility.raise_error;
529   end if;
530   hr_utility.set_location(l_proc, 30);
531   --
532   -- Check that valid value for parameters p_work_pattern_start_day and p_working_days_per_year.
533   --
534   if p_work_pattern_start_day = hr_api.g_number then
535     l_work_pattern_start_date := hr_api.g_varchar2;
536   else
537     l_work_pattern_start_date := p_work_pattern_start_day;
538   end if;
539   if  p_working_days_per_year = hr_api.g_number then
540     l_working_days_per_year := hr_api.g_varchar2;
541   else
542     l_working_days_per_year := p_working_days_per_year;
543   end if;
544   --
545   -- Call update_emp_asg business process
546   --
547   hr_assignment_api.update_emp_asg
548   (p_validate                     =>     p_validate
549   ,p_effective_date               =>     l_effective_date
550   ,p_datetrack_update_mode        =>     p_datetrack_update_mode
551   ,p_assignment_id                =>     p_assignment_id
552   ,p_object_version_number        =>     p_object_version_number
553   ,p_supervisor_id                =>     p_supervisor_id
554   ,p_assignment_number            =>     p_assignment_number
555   ,p_change_reason                =>     p_change_reason
556   ,p_comments                     =>     p_comments
557   ,p_date_probation_end           =>     trunc(p_date_probation_end)
558   ,p_default_code_comb_id         =>     p_default_code_comb_id
559   ,p_frequency                    =>     p_frequency
560   ,p_internal_address_line        =>     p_internal_address_line
561   ,p_labour_union_member_flag     =>     p_labour_union_member_flag
562   ,p_manager_flag                 =>     p_manager_flag
563   ,p_normal_hours                 =>     p_normal_hours
564   ,p_perf_review_period           =>     p_perf_review_period
565   ,p_perf_review_period_frequency =>     p_perf_review_period_frequency
566   ,p_probation_period             =>     p_probation_period
567   ,p_probation_unit               =>     p_probation_unit
571   ,p_source_type                  =>     p_source_type
568   ,p_sal_review_period            =>     p_sal_review_period
569   ,p_sal_review_period_frequency  =>     p_sal_review_period_frequency
570   ,p_set_of_books_id              =>     p_set_of_books_id
572   ,p_time_normal_finish           =>     p_time_normal_finish
573   ,p_time_normal_start            =>     p_time_normal_start
574   ,p_ass_attribute_category       =>     p_ass_attribute_category
575   ,p_ass_attribute1               =>     p_ass_attribute1
576   ,p_ass_attribute2               =>     p_ass_attribute2
577   ,p_ass_attribute3               =>     p_ass_attribute3
578   ,p_ass_attribute4               =>     p_ass_attribute4
579   ,p_ass_attribute5               =>     p_ass_attribute5
580   ,p_ass_attribute6               =>     p_ass_attribute6
581   ,p_ass_attribute7               =>     p_ass_attribute7
582   ,p_ass_attribute8               =>     p_ass_attribute8
583   ,p_ass_attribute9               =>     p_ass_attribute9
584   ,p_ass_attribute10              =>     p_ass_attribute10
585   ,p_ass_attribute11              =>     p_ass_attribute11
586   ,p_ass_attribute12              =>     p_ass_attribute12
587   ,p_ass_attribute13              =>     p_ass_attribute13
588   ,p_ass_attribute14              =>     p_ass_attribute14
589   ,p_ass_attribute15              =>     p_ass_attribute15
590   ,p_ass_attribute16              =>     p_ass_attribute16
591   ,p_ass_attribute17              =>     p_ass_attribute17
592   ,p_ass_attribute18              =>     p_ass_attribute18
593   ,p_ass_attribute19              =>     p_ass_attribute19
594   ,p_ass_attribute20              =>     p_ass_attribute20
595   ,p_ass_attribute21              =>     p_ass_attribute21
596   ,p_ass_attribute22              =>     p_ass_attribute22
597   ,p_ass_attribute23              =>     p_ass_attribute23
598   ,p_ass_attribute24              =>     p_ass_attribute24
599   ,p_ass_attribute25              =>     p_ass_attribute25
600   ,p_ass_attribute26              =>     p_ass_attribute26
601   ,p_ass_attribute27              =>     p_ass_attribute27
602   ,p_ass_attribute28              =>     p_ass_attribute28
603   ,p_ass_attribute29              =>     p_ass_attribute29
604   ,p_ass_attribute30              =>     p_ass_attribute30
605   ,p_title                        =>     p_title
606   ,p_segment2                     =>     p_employee_category
607   ,p_segment3                     =>     p_starting_reason
608   ,p_segment4                     =>     p_ending_reason
609   ,p_segment5                     =>     p_work_pattern
610   ,p_segment6                     =>     p_urssaf_code
611   ,p_segment11                    =>     l_work_pattern_start_date
612   ,p_segment12                    =>     p_detache_status
613   ,p_segment13                    =>     p_address_abroad
614   ,p_segment14                    =>     p_border_worker
615   ,p_segment15                    =>     l_working_days_per_year
616   ,p_segment16			  =>     p_professional_status
617   ,p_segment28			  =>	 p_grouping_employer
618   ,p_concat_segments              =>	 p_fr_concat_segments
619   ,p_contract_id                  =>     p_contract_id
620   ,p_establishment_id             =>     p_establishment_id
621   ,p_collective_agreement_id      =>     p_collective_agreement_id
622   ,p_cagr_id_flex_num             =>     p_cagr_id_flex_num
623   ,p_cag_segment1                 =>     p_cag_segment1
624   ,p_cag_segment2                 =>     p_cag_segment2
625   ,p_cag_segment3                 =>     p_cag_segment3
626   ,p_cag_segment4                 =>     p_cag_segment4
627   ,p_cag_segment5                 =>     p_cag_segment5
628   ,p_cag_segment6                 =>     p_cag_segment6
629   ,p_cag_segment7                 =>     p_cag_segment7
630   ,p_cag_segment8                 =>     p_cag_segment8
631   ,p_cag_segment9                 =>     p_cag_segment9
632   ,p_cag_segment10                =>     p_cag_segment10
633   ,p_cag_segment11                =>     p_cag_segment11
634   ,p_cag_segment12                =>     p_cag_segment12
635   ,p_cag_segment13                =>     p_cag_segment13
636   ,p_cag_segment14                =>     p_cag_segment14
637   ,p_cag_segment15                =>     p_cag_segment15
638   ,p_cag_segment16                =>     p_cag_segment16
639   ,p_cag_segment17                =>     p_cag_segment17
640   ,p_cag_segment18                =>     p_cag_segment18
641   ,p_cag_segment19                =>     p_cag_segment19
642   ,p_cag_segment20                =>     p_cag_segment20
643   ,p_cagr_grade_def_id            =>     p_cagr_grade_def_id
644   ,p_cagr_concatenated_segments   =>     p_cagr_concatenated_segments
645   ,p_soft_coding_keyflex_id       =>     p_soft_coding_keyflex_id
646   ,p_comment_id                   =>     p_comment_id
647   ,p_effective_start_date         =>     p_effective_start_date
648   ,p_effective_end_date           =>     p_effective_end_date
649   ,p_concatenated_segments        =>     p_concatenated_segments
650   ,p_no_managers_warning          =>     p_no_managers_warning
651   ,p_other_manager_warning        =>     p_other_manager_warning
652    );
653   --
654   hr_utility.set_location(' Leaving:'||l_proc, 30);
655   --
656   end update_fr_emp_asg;
657 --
658 end hr_fr_assignment_api;