18: --
19: -- Validates that values enterd for this column exist in the PER_PEOPLE_F
20: -- table.
21: --
22: -- Validates that BUSINESS_GROUP_ID in the PER_PERSON_ANALYSES table matches
23: -- BUSINESS_GROUP_ID in the PER_PEOPLE_F table for the record specified by
24: -- PERSON_ID.
25: --
26: -- Pre-conditions:
43: -- {End of Comments}
44: --
45: -- -----------------------------------------------------------------------
46: Procedure chk_person_id
47: (p_person_id in per_person_analyses.person_id%TYPE
48: ,p_business_group_id in per_person_analyses.business_group_id%TYPE
49: ,p_effective_date in date) is
50: --
51: l_proc varchar2(72) := g_package||'chk_person_id';
44: --
45: -- -----------------------------------------------------------------------
46: Procedure chk_person_id
47: (p_person_id in per_person_analyses.person_id%TYPE
48: ,p_business_group_id in per_person_analyses.business_group_id%TYPE
49: ,p_effective_date in date) is
50: --
51: l_proc varchar2(72) := g_package||'chk_person_id';
52: l_business_group_id per_person_analyses.business_group_id%TYPE;
48: ,p_business_group_id in per_person_analyses.business_group_id%TYPE
49: ,p_effective_date in date) is
50: --
51: l_proc varchar2(72) := g_package||'chk_person_id';
52: l_business_group_id per_person_analyses.business_group_id%TYPE;
53: --
54: --
55: -- Cursor to check that PERSON_ID exists, in addition obtain
56: -- the BUSINESS_GROUP_ID for the other validation checks
108: hr_utility.set_location('Leaving:'|| l_proc, 20);
109: exception
110: when app_exception.application_exception then
111: if hr_multi_message.exception_add
112: (p_associated_column1 => 'PER_PERSON_ANALYSES.PERSON_ID'
113: ) then
114: hr_utility.set_location('Leaving:'||l_proc, 30);
115: raise;
116: end if;
144: -- {End of Comments}
145: --
146: -- -----------------------------------------------------------------------
147: Procedure chk_id_flex_num
148: (p_id_flex_num in per_person_analyses.id_flex_num%TYPE
149: ) is
150: --
151: l_proc varchar2(72) := g_package||'chk_id_flex_num';
152: --
171: -- Desciption :
172: --
173: -- Validates that ANALYSIS_CRITERIA_ID is not null
174: --
175: -- Validates that ID_FLEX_NUM in the PER_PERSON_ANALYSES table matches the
176: -- ID_FLEX_NUM in the PER_ANALYSIS_CRITERIA table for the record specified by
177: -- ANALYSIS_CRITERIA_ID.
178: --
179: -- Pre-conditions:
198: -- {End of Comments}
199: --
200: -- -----------------------------------------------------------------------
201: Procedure chk_analysis_criteria_id
202: (p_analysis_criteria_id in per_person_analyses.analysis_criteria_id%TYPE
203: ,p_id_flex_num in per_person_analyses.id_flex_num%TYPE
204: ,p_person_analysis_id in per_person_analyses.person_analysis_id%TYPE
205: ,p_object_version_number in per_person_analyses.object_version_number%TYPE
206: ) is
199: --
200: -- -----------------------------------------------------------------------
201: Procedure chk_analysis_criteria_id
202: (p_analysis_criteria_id in per_person_analyses.analysis_criteria_id%TYPE
203: ,p_id_flex_num in per_person_analyses.id_flex_num%TYPE
204: ,p_person_analysis_id in per_person_analyses.person_analysis_id%TYPE
205: ,p_object_version_number in per_person_analyses.object_version_number%TYPE
206: ) is
207: --
200: -- -----------------------------------------------------------------------
201: Procedure chk_analysis_criteria_id
202: (p_analysis_criteria_id in per_person_analyses.analysis_criteria_id%TYPE
203: ,p_id_flex_num in per_person_analyses.id_flex_num%TYPE
204: ,p_person_analysis_id in per_person_analyses.person_analysis_id%TYPE
205: ,p_object_version_number in per_person_analyses.object_version_number%TYPE
206: ) is
207: --
208: l_proc varchar2(72) := g_package||'chk_analysis_criteria_id';
201: Procedure chk_analysis_criteria_id
202: (p_analysis_criteria_id in per_person_analyses.analysis_criteria_id%TYPE
203: ,p_id_flex_num in per_person_analyses.id_flex_num%TYPE
204: ,p_person_analysis_id in per_person_analyses.person_analysis_id%TYPE
205: ,p_object_version_number in per_person_analyses.object_version_number%TYPE
206: ) is
207: --
208: l_proc varchar2(72) := g_package||'chk_analysis_criteria_id';
209: l_id_flex_num per_person_analyses.id_flex_num%TYPE;
205: ,p_object_version_number in per_person_analyses.object_version_number%TYPE
206: ) is
207: --
208: l_proc varchar2(72) := g_package||'chk_analysis_criteria_id';
209: l_id_flex_num per_person_analyses.id_flex_num%TYPE;
210: l_api_updating boolean;
211: --
212: --
213: -- Cursor to check that ANALYSIS_CRITERIA_ID exists, in addition obtain
255: close csr_valid_analysis_criteria_id;
256: --
257: hr_utility.set_message(801,'HR_51603_PEA_INV_ANA_CRI_ID');
258: hr_multi_message.add
259: (p_associated_column1 => 'PER_PERSON_ANALYSES.ANALYSIS_CRITERIA_ID'
260: );
261: else
262: close csr_valid_analysis_criteria_id;
263: --
267: --
268: if (p_id_flex_num <> l_id_flex_num) then
269: hr_utility.set_message(800,'PER_52093_PEA_INV_FLEX_ANA_COM');
270: hr_multi_message.add
271: (p_associated_column1 => 'PER_PERSON_ANALYSES.ANALYSIS_CRITERIA_ID'
272: ,p_associated_column2 => 'PER_PERSON_ANALYSES.ID_FLEX_NUM'
273: );
274: end if;
275: --
268: if (p_id_flex_num <> l_id_flex_num) then
269: hr_utility.set_message(800,'PER_52093_PEA_INV_FLEX_ANA_COM');
270: hr_multi_message.add
271: (p_associated_column1 => 'PER_PERSON_ANALYSES.ANALYSIS_CRITERIA_ID'
272: ,p_associated_column2 => 'PER_PERSON_ANALYSES.ID_FLEX_NUM'
273: );
274: end if;
275: --
276: end if;
314: --
315: -- ---------------------------------------------------------------------------
316: --
317: procedure check_for_duplicates
318: (p_bg_id in per_person_analyses.business_group_id%TYPE
319: ,p_id_flex_num in per_person_analyses.id_flex_num%TYPE
320: ,p_analysis_criteria_id in per_person_analyses.analysis_criteria_id%TYPE
321: ,p_date_from in per_person_analyses.date_from%TYPE
322: ,p_date_to in per_person_analyses.date_to%TYPE
315: -- ---------------------------------------------------------------------------
316: --
317: procedure check_for_duplicates
318: (p_bg_id in per_person_analyses.business_group_id%TYPE
319: ,p_id_flex_num in per_person_analyses.id_flex_num%TYPE
320: ,p_analysis_criteria_id in per_person_analyses.analysis_criteria_id%TYPE
321: ,p_date_from in per_person_analyses.date_from%TYPE
322: ,p_date_to in per_person_analyses.date_to%TYPE
323: ,p_person_id in per_person_analyses.person_id%TYPE
316: --
317: procedure check_for_duplicates
318: (p_bg_id in per_person_analyses.business_group_id%TYPE
319: ,p_id_flex_num in per_person_analyses.id_flex_num%TYPE
320: ,p_analysis_criteria_id in per_person_analyses.analysis_criteria_id%TYPE
321: ,p_date_from in per_person_analyses.date_from%TYPE
322: ,p_date_to in per_person_analyses.date_to%TYPE
323: ,p_person_id in per_person_analyses.person_id%TYPE
324: ,p_person_analysis_id in per_person_analyses.person_analysis_id%TYPE
317: procedure check_for_duplicates
318: (p_bg_id in per_person_analyses.business_group_id%TYPE
319: ,p_id_flex_num in per_person_analyses.id_flex_num%TYPE
320: ,p_analysis_criteria_id in per_person_analyses.analysis_criteria_id%TYPE
321: ,p_date_from in per_person_analyses.date_from%TYPE
322: ,p_date_to in per_person_analyses.date_to%TYPE
323: ,p_person_id in per_person_analyses.person_id%TYPE
324: ,p_person_analysis_id in per_person_analyses.person_analysis_id%TYPE
325: ) is
318: (p_bg_id in per_person_analyses.business_group_id%TYPE
319: ,p_id_flex_num in per_person_analyses.id_flex_num%TYPE
320: ,p_analysis_criteria_id in per_person_analyses.analysis_criteria_id%TYPE
321: ,p_date_from in per_person_analyses.date_from%TYPE
322: ,p_date_to in per_person_analyses.date_to%TYPE
323: ,p_person_id in per_person_analyses.person_id%TYPE
324: ,p_person_analysis_id in per_person_analyses.person_analysis_id%TYPE
325: ) is
326: --
319: ,p_id_flex_num in per_person_analyses.id_flex_num%TYPE
320: ,p_analysis_criteria_id in per_person_analyses.analysis_criteria_id%TYPE
321: ,p_date_from in per_person_analyses.date_from%TYPE
322: ,p_date_to in per_person_analyses.date_to%TYPE
323: ,p_person_id in per_person_analyses.person_id%TYPE
324: ,p_person_analysis_id in per_person_analyses.person_analysis_id%TYPE
325: ) is
326: --
327: cursor c is
320: ,p_analysis_criteria_id in per_person_analyses.analysis_criteria_id%TYPE
321: ,p_date_from in per_person_analyses.date_from%TYPE
322: ,p_date_to in per_person_analyses.date_to%TYPE
323: ,p_person_id in per_person_analyses.person_id%TYPE
324: ,p_person_analysis_id in per_person_analyses.person_analysis_id%TYPE
325: ) is
326: --
327: cursor c is
328: select 'x'
325: ) is
326: --
327: cursor c is
328: select 'x'
329: from per_person_analyses pa
330: ,per_analysis_criteria ac
331: where pa.analysis_criteria_id = p_analysis_criteria_id
332: and pa.business_group_id + 0 = p_bg_id
333: and pa.analysis_criteria_id = ac.analysis_criteria_id
350: -- contain an error associated with ANALYSIS_CRITERIA_ID,DATE_FROM, DATE_TO
351: -- PERSON_ID columns.
352: --
353: if hr_multi_message.no_exclusive_error
354: (p_check_column1 => 'PER_PERSON_ANALYSES.ANALYSIS_CRITERIA_ID'
355: ,p_check_column2 => 'PER_PERSON_ANALYSES.DATE_FROM'
356: ,p_check_column3 => 'PER_PERSON_ANALYSES.DATE_TO'
357: ,p_check_column4 => 'PER_PERSON_ANALYSES.PERSON_ID'
358: ,p_associated_column1 => 'PER_PERSON_ANALYSES.ANALYSIS_CRITERIA_ID'
351: -- PERSON_ID columns.
352: --
353: if hr_multi_message.no_exclusive_error
354: (p_check_column1 => 'PER_PERSON_ANALYSES.ANALYSIS_CRITERIA_ID'
355: ,p_check_column2 => 'PER_PERSON_ANALYSES.DATE_FROM'
356: ,p_check_column3 => 'PER_PERSON_ANALYSES.DATE_TO'
357: ,p_check_column4 => 'PER_PERSON_ANALYSES.PERSON_ID'
358: ,p_associated_column1 => 'PER_PERSON_ANALYSES.ANALYSIS_CRITERIA_ID'
359: ,p_associated_column2 => 'PER_PERSON_ANALYSES.DATE_FROM'
352: --
353: if hr_multi_message.no_exclusive_error
354: (p_check_column1 => 'PER_PERSON_ANALYSES.ANALYSIS_CRITERIA_ID'
355: ,p_check_column2 => 'PER_PERSON_ANALYSES.DATE_FROM'
356: ,p_check_column3 => 'PER_PERSON_ANALYSES.DATE_TO'
357: ,p_check_column4 => 'PER_PERSON_ANALYSES.PERSON_ID'
358: ,p_associated_column1 => 'PER_PERSON_ANALYSES.ANALYSIS_CRITERIA_ID'
359: ,p_associated_column2 => 'PER_PERSON_ANALYSES.DATE_FROM'
360: ,p_associated_column3 => 'PER_PERSON_ANALYSES.DATE_TO'
353: if hr_multi_message.no_exclusive_error
354: (p_check_column1 => 'PER_PERSON_ANALYSES.ANALYSIS_CRITERIA_ID'
355: ,p_check_column2 => 'PER_PERSON_ANALYSES.DATE_FROM'
356: ,p_check_column3 => 'PER_PERSON_ANALYSES.DATE_TO'
357: ,p_check_column4 => 'PER_PERSON_ANALYSES.PERSON_ID'
358: ,p_associated_column1 => 'PER_PERSON_ANALYSES.ANALYSIS_CRITERIA_ID'
359: ,p_associated_column2 => 'PER_PERSON_ANALYSES.DATE_FROM'
360: ,p_associated_column3 => 'PER_PERSON_ANALYSES.DATE_TO'
361: ,p_associated_column4 => 'PER_PERSON_ANALYSES.PERSON_ID'
354: (p_check_column1 => 'PER_PERSON_ANALYSES.ANALYSIS_CRITERIA_ID'
355: ,p_check_column2 => 'PER_PERSON_ANALYSES.DATE_FROM'
356: ,p_check_column3 => 'PER_PERSON_ANALYSES.DATE_TO'
357: ,p_check_column4 => 'PER_PERSON_ANALYSES.PERSON_ID'
358: ,p_associated_column1 => 'PER_PERSON_ANALYSES.ANALYSIS_CRITERIA_ID'
359: ,p_associated_column2 => 'PER_PERSON_ANALYSES.DATE_FROM'
360: ,p_associated_column3 => 'PER_PERSON_ANALYSES.DATE_TO'
361: ,p_associated_column4 => 'PER_PERSON_ANALYSES.PERSON_ID'
362: ) then
355: ,p_check_column2 => 'PER_PERSON_ANALYSES.DATE_FROM'
356: ,p_check_column3 => 'PER_PERSON_ANALYSES.DATE_TO'
357: ,p_check_column4 => 'PER_PERSON_ANALYSES.PERSON_ID'
358: ,p_associated_column1 => 'PER_PERSON_ANALYSES.ANALYSIS_CRITERIA_ID'
359: ,p_associated_column2 => 'PER_PERSON_ANALYSES.DATE_FROM'
360: ,p_associated_column3 => 'PER_PERSON_ANALYSES.DATE_TO'
361: ,p_associated_column4 => 'PER_PERSON_ANALYSES.PERSON_ID'
362: ) then
363: --
356: ,p_check_column3 => 'PER_PERSON_ANALYSES.DATE_TO'
357: ,p_check_column4 => 'PER_PERSON_ANALYSES.PERSON_ID'
358: ,p_associated_column1 => 'PER_PERSON_ANALYSES.ANALYSIS_CRITERIA_ID'
359: ,p_associated_column2 => 'PER_PERSON_ANALYSES.DATE_FROM'
360: ,p_associated_column3 => 'PER_PERSON_ANALYSES.DATE_TO'
361: ,p_associated_column4 => 'PER_PERSON_ANALYSES.PERSON_ID'
362: ) then
363: --
364: -- Perform ANALYSIS_CRITERIA_ID mandatory check
357: ,p_check_column4 => 'PER_PERSON_ANALYSES.PERSON_ID'
358: ,p_associated_column1 => 'PER_PERSON_ANALYSES.ANALYSIS_CRITERIA_ID'
359: ,p_associated_column2 => 'PER_PERSON_ANALYSES.DATE_FROM'
360: ,p_associated_column3 => 'PER_PERSON_ANALYSES.DATE_TO'
361: ,p_associated_column4 => 'PER_PERSON_ANALYSES.PERSON_ID'
362: ) then
363: --
364: -- Perform ANALYSIS_CRITERIA_ID mandatory check
365: --
466: if p_date_to is not null and p_date_from is null then
467: --
468: hr_utility.set_message(800,'PER_52095_PEA_INV_DATE_FROM');
469: hr_multi_message.add
470: (p_associated_column1 => 'PER_PERSON_ANALYSES.DATE_FROM'
471: ,p_associated_column2 => 'PER_PERSON_ANALYSES.DATE_TO'
472: );
473: --
474: elsif p_date_from is not null then
467: --
468: hr_utility.set_message(800,'PER_52095_PEA_INV_DATE_FROM');
469: hr_multi_message.add
470: (p_associated_column1 => 'PER_PERSON_ANALYSES.DATE_FROM'
471: ,p_associated_column2 => 'PER_PERSON_ANALYSES.DATE_TO'
472: );
473: --
474: elsif p_date_from is not null then
475: --
480: if p_date_from > nvl(p_date_to,hr_api.g_eot) then
481: --
482: hr_utility.set_message(800,'PER_52094_PEA_INV_DATE_COMB');
483: hr_multi_message.add
484: (p_associated_column1 => 'PER_PERSON_ANALYSES.DATE_FROM'
485: ,p_associated_column2 => 'PER_PERSON_ANALYSES.DATE_TO'
486: );
487: --
488: end if;
481: --
482: hr_utility.set_message(800,'PER_52094_PEA_INV_DATE_COMB');
483: hr_multi_message.add
484: (p_associated_column1 => 'PER_PERSON_ANALYSES.DATE_FROM'
485: ,p_associated_column2 => 'PER_PERSON_ANALYSES.DATE_TO'
486: );
487: --
488: end if;
489: end if;
628: -- b) During insert.
629: --
630: hr_dflex_utility.ins_or_upd_descflex_attribs
631: (p_appl_short_name => 'PER'
632: ,p_descflex_name => 'PER_PERSON_ANALYSES'
633: ,p_attribute_category => p_rec.attribute_category
634: ,p_attribute1_name => 'ATTRIBUTE1'
635: ,p_attribute1_value => p_rec.attribute1
636: ,p_attribute2_name => 'ATTRIBUTE2'
884: -- ----------------------------------------------------------------------------
885: -- |-----------------------< return_legislation_code >-------------------------|
886: -- ----------------------------------------------------------------------------
887: Function return_legislation_code
888: (p_person_analysis_id in per_person_analyses.person_analysis_id%TYPE
889: ) return varchar2 is
890: --
891: -- Curson to find legislation code.
892: --
892: --
893: cursor csr_leg_code is
894: select legislation_code
895: from per_business_groups pbg,
896: per_person_analyses ppa
897: where ppa.person_analysis_id = p_person_analysis_id
898: and pbg.business_group_id = ppa.business_group_id;
899: --
900: -- Declare local variables