73:
74: g_trace := hr_cn_assignment_api.g_trace;
75: l_proc := g_package||'check_emp_asg';
76: --
77: hr_cn_api.set_location(g_trace,'Entering: '||l_proc, 10);
78:
79: --
80: -- Bug 3145322 Check the leg-specific validations only if the legislation
81: -- is installed
81: -- is installed
82: --
83: IF NOT hr_utility.chk_product_install('Oracle Human Resources', 'CN') THEN
84: hr_utility.trace ('CN Legislation not installed. Not performing the validations');
85: hr_cn_api.set_location(g_trace,'Leaving: '||l_proc, 15);
86: RETURN;
87: END IF;
88: --
89: -- Check for the mandatory arguments
88: --
89: -- Check for the mandatory arguments
90: --
91: g_trace := TRUE;
92: hr_cn_api.set_location(g_trace,l_proc,20);
93:
94: --
95: -- Check for valid lookups
96: --
93:
94: --
95: -- Check for valid lookups
96: --
97: hr_cn_api.set_location(g_trace,l_proc,40);
98: IF p_tax_area_code <> hr_api.g_varchar2 THEN
99: hr_cn_api.check_lookup (
100: p_lookup_type => 'CN_TAX_AREA',
101: p_argument => 'P_TAX_AREA_CODE',
95: -- Check for valid lookups
96: --
97: hr_cn_api.set_location(g_trace,l_proc,40);
98: IF p_tax_area_code <> hr_api.g_varchar2 THEN
99: hr_cn_api.check_lookup (
100: p_lookup_type => 'CN_TAX_AREA',
101: p_argument => 'P_TAX_AREA_CODE',
102: p_argument_value => p_tax_area_code
103: );
105: --
106: --
107: -- Bug 2955433 SIC Area Code now is made mandatory
108: --
109: hr_cn_api.set_location(g_trace,l_proc,50);
110: IF p_sic_area_code <> hr_api.g_varchar2
111: THEN
112: hr_cn_api.check_lookup (
113: p_lookup_type => 'CN_SIC_AREA',
108: --
109: hr_cn_api.set_location(g_trace,l_proc,50);
110: IF p_sic_area_code <> hr_api.g_varchar2
111: THEN
112: hr_cn_api.check_lookup (
113: p_lookup_type => 'CN_SIC_AREA',
114: p_argument => 'P_SIC_AREA_CODE',
115: p_argument_value => p_sic_area_code
116: );
118:
119: --
120: -- Bug 3828396 Added code to check Salary Payout Location and Special Tax Exemption category
121: --
122: hr_cn_api.set_location(g_trace,l_proc,60);
123: IF p_salary_payout_locn <> hr_api.g_varchar2
124: THEN
125: hr_cn_api.check_lookup (
126: p_lookup_type => 'CN_PAYOUT_LOCATION',
121: --
122: hr_cn_api.set_location(g_trace,l_proc,60);
123: IF p_salary_payout_locn <> hr_api.g_varchar2
124: THEN
125: hr_cn_api.check_lookup (
126: p_lookup_type => 'CN_PAYOUT_LOCATION',
127: p_argument => 'P_SALARY_PAYOUT_LOCN',
128: p_argument_value => p_salary_payout_locn
129: );
128: p_argument_value => p_salary_payout_locn
129: );
130: END IF;
131:
132: hr_cn_api.set_location(g_trace,l_proc,70);
133: IF p_special_tax_exmp_category <> hr_api.g_varchar2
134: THEN
135: hr_cn_api.check_lookup (
136: p_lookup_type => 'CN_SPL_TAX_EXMP_CATEGORY',
131:
132: hr_cn_api.set_location(g_trace,l_proc,70);
133: IF p_special_tax_exmp_category <> hr_api.g_varchar2
134: THEN
135: hr_cn_api.check_lookup (
136: p_lookup_type => 'CN_SPL_TAX_EXMP_CATEGORY',
137: p_argument => 'P_SPECIAL_TAX_EXMP_CATEGORY',
138: p_argument_value => p_special_tax_exmp_category
139: );
143: --
144: --
145: --Trunc of date will return date without the time part.
146: --
147: hr_cn_api.set_location(g_trace,l_proc,80);
148: l_trunc_effective_date := TRUNC(p_effective_date);
149:
150: IF p_assignment_id IS null THEN
151:
148: l_trunc_effective_date := TRUNC(p_effective_date);
149:
150: IF p_assignment_id IS null THEN
151:
152: hr_cn_api.check_person(p_person_id, 'CN', l_trunc_effective_date);
153:
154: OPEN csr_business_group_per(p_person_id,l_trunc_effective_date);
155: FETCH csr_business_group_per INTO l_business_group_id;
156: CLOSE csr_business_group_per;
156: CLOSE csr_business_group_per;
157:
158: ELSIF p_person_id IS null THEN
159:
160: hr_cn_api.check_assignment(p_assignment_id, 'CN', l_trunc_effective_date);
161:
162: OPEN csr_business_group_ass(p_assignment_id,l_trunc_effective_date);
163: FETCH csr_business_group_ass INTO l_business_group_id;
164: CLOSE csr_business_group_ass;
167:
168: IF p_employer_id <> hr_api.g_varchar2
169: THEN
170:
171: hr_cn_api.check_organization
172: (p_organization_id => p_employer_id
173: ,p_business_group_id => l_business_group_id
174: ,p_legislation_code => 'CN'
175: ,p_effective_date => l_trunc_effective_date
174: ,p_legislation_code => 'CN'
175: ,p_effective_date => l_trunc_effective_date
176: ) ;
177:
178: hr_cn_api.check_org_class
179: (p_organization_id => p_employer_id
180: ,p_classification => 'PER_EMPLOYER_INFO_CN'
181: ) ;
182:
179: (p_organization_id => p_employer_id
180: ,p_classification => 'PER_EMPLOYER_INFO_CN'
181: ) ;
182:
183: hr_cn_api.check_org_type
184: (p_organization_id => p_employer_id
185: ,p_type => 'HR_LEGAL'
186: );
187: END IF;
185: ,p_type => 'HR_LEGAL'
186: );
187: END IF;
188:
189: hr_cn_api.set_location(g_trace,l_proc,120);
190:
191: EXCEPTION
192: WHEN OTHERS THEN
193: IF csr_business_group_per%ISOPEN OR csr_business_group_ass%ISOPEN THEN
238: BEGIN
239:
240: l_proc := g_package || 'check_emp_asg_update';
241: --
242: hr_cn_api.set_location(hr_cn_assignment_api.g_trace,'Entering: '||l_proc,10);
243:
244: check_emp_asg
245: (p_employer_id => p_segment1
246: ,p_tax_area_code => p_segment20
250: ,p_effective_date => p_effective_date
251: ,p_assignment_id => p_assignment_id);
252:
253:
254: hr_cn_api.set_location(hr_cn_assignment_api.g_trace,'Leaving: '||l_proc,20);
255:
256: END check_emp_asg_update;
257:
258: --------------------------------------------------------------------------
295:
296: BEGIN
297:
298: l_proc := g_package||'check_emp_asg_create';
299: hr_cn_api.set_location(hr_cn_assignment_api.g_trace,'Entering: '||l_proc,10);
300:
301: check_emp_asg
302: (p_employer_id => p_scl_segment1
303: ,p_tax_area_code => p_scl_segment20
307: ,p_effective_date => p_effective_date
308: ,p_person_id => p_person_id);
309:
310:
311: hr_cn_api.set_location(hr_cn_assignment_api.g_trace,'Leaving: '||l_proc,20);
312:
313: END check_emp_asg_create;
314:
315: BEGIN