DBA Data[Home] [Help]

PACKAGE BODY: APPS.PAY_JP_ITAX_DPNT_INTERFACE_PKG

Source


1 package body pay_jp_itax_dpnt_interface_pkg as
2 /* $Header: pyjpitdp.pkb 120.6 2011/05/31 03:36:47 keyazawa noship $ */
3 --
4 -- Constants
5 --
6 c_package		constant varchar2(31) := 'pay_jp_itax_dpnt_interface_pkg.';
7 c_element_name		constant pay_element_types_f.element_name%TYPE := 'YEA_DEP_EXM_PROC';
8 c_itax_elm_name		constant pay_element_types_f.element_name%TYPE := 'COM_ITX_INFO';
9 c_itax_type_iv_name	constant pay_input_values_f.name%TYPE := 'ITX_TYPE';
10 c_non_res_iv_name	constant pay_input_values_f.name%TYPE := 'NRES_FLAG';
11 c_value_if_null_tbl	constant pay_jp_bee_utility_pkg.t_varchar2_tbl
12 				:= pay_jp_bee_utility_pkg.entry_value_tbl('0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0');
13 c_non_res_elm_name	constant pay_element_types_f.element_name%TYPE := 'COM_NRES_INFO';
14 c_non_res_date_iv_name	constant pay_input_values_f.name%TYPE := 'NRES_START_DATE';
15 c_res_date_iv_name	constant pay_input_values_f.name%TYPE := 'PROJECTED_RES_DATE';
16 c_elm	   pay_element_types_f.element_name%TYPE;
17 c_elm_tl pay_element_types_f_tl.element_name%TYPE;
18 c_elm_tl_max number := 30;
19 --
20 -- Global Variables
21 --
22 g_element_type_id	number;
23 g_itax_type_iv_id	number;
24 g_non_res_iv_id		number;
25 g_non_res_date_iv_id	number;
26 g_res_date_iv_id	number;
27 -- ----------------------------------------------------------------------------
28 -- |----------------------------< insert_session >----------------------------|
29 -- ----------------------------------------------------------------------------
30 procedure insert_session(p_effective_date in date)
31 is
32 begin
33 	insert into fnd_sessions(
34 		session_id,
35 		effective_date)
36 	values(	userenv('sessionid'),
37 		p_effective_date);
38 	commit;
39 end insert_session;
40 -- ----------------------------------------------------------------------------
41 -- |----------------------------< delete_session >----------------------------|
42 -- ----------------------------------------------------------------------------
43 procedure delete_session
44 is
45 begin
46 	delete
47 	from	fnd_sessions
48 	where	session_id = userenv('sessionid');
49 	commit;
50 end delete_session;
51 --
52 function get_elm_tl(
53   p_elm_name in varchar2)
54 return varchar2
55 is
56 --
57   o_elm_tl pay_element_types_f_tl.element_name%type;
58 --
59   -- support only session lang based on case forms and srs session lang is same
60   cursor csr_elm_tl
61   is
62   select /*+ ORDERD */
63          pett.element_name
64   from   pay_element_types_f pet,
65          pay_element_types_f_tl pett
66   where  pet.element_name = p_elm_name
67   and    pet.legislation_code = 'JP'
68   and    pett.element_type_id = pet.element_type_id
69   and    pett.language = userenv('LANG');
70 --
71 begin
72 --
73   o_elm_tl := c_elm_tl;
74 --
75   if c_elm is null
76   or c_elm <> p_elm_name then
77   --
78     open csr_elm_tl;
79     fetch csr_elm_tl into o_elm_tl;
80     close csr_elm_tl;
81   --
82     c_elm := p_elm_name;
83   --
84   end if;
85 --
86   return o_elm_tl;
87 --
88 end get_elm_tl;
89 --
90 -- ----------------------------------------------------------------------------
91 -- |-----------------------------< transfer_asg >-----------------------------|
92 -- ----------------------------------------------------------------------------
93 procedure transfer_asg(
94 	p_business_group_id		in number,
95 	p_payroll_id			in number,
96 	p_assignment_id			in number,
97 	p_effective_date		in date,
98 	p_upload_date			in date,
99 	p_assignment_number		in varchar2,
100 	p_full_name			in varchar2,
101 	p_batch_id			in number,
102 	p_create_entry_if_not_exist	in varchar2,
103 	p_create_asg_set_for_errored	in varchar2,
104 	p_spouse_type_flag		in varchar2,
105 	p_dpnt_spouse_dsbl_type_flag	in varchar2,
106 	p_dpnts_flag			in varchar2,
107 	p_aged_dpnts_flag		in varchar2,
108 	p_aged_dpnt_parents_lt_flag	in varchar2,
109 	p_young_dpnts_flag		in varchar2,
110 	p_minor_dpnts_flag		in varchar2,
111 	p_dsbl_dpnts_flag		in varchar2,
112 	p_svr_dsbl_dpnts_flag		in varchar2,
113 	p_svr_dsbl_dpnts_lt_flag	in varchar2,
114 	p_assignment_set_id		in out nocopy number,
115 	p_assignment_set_name		in out nocopy varchar2)
116 is
117 	l_proc				varchar2(61) := c_package || 'transfer_asg';
118 	--
119 	l_non_res_flag			hr_lookups.lookup_code%TYPE;
120 	l_itax_type			hr_lookups.lookup_code%TYPE;
121 	l_itax_dpnt_rec			per_jp_ctr_utility_pkg.t_itax_dpnt_rec;
122 	itax_type_is_null		exception;
123 	multiple_spouses		exception;
124 	--
125 	l_ee_rec			pay_jp_bee_utility_pkg.t_ee_rec;
126 	l_eev_rec			pay_jp_bee_utility_pkg.t_eev_rec;
127 	l_new_value_tbl			pay_jp_bee_utility_pkg.t_varchar2_tbl;
128 	--
129 	l_is_different			boolean := false;
130 	l_change_type			hr_lookups.lookup_code%type;
131 	l_write_all			boolean := false;
132 	l_batch_line_id			number;
133 	l_batch_line_ovn		number;
134 	--
135 	l_non_res_date		date;
136 	l_res_date		date;
137 	--
138 	procedure create_asg_set_amd
139 	is
140 	begin
141 		if p_create_asg_set_for_errored = 'Y' then
142 			if p_assignment_set_id is null then
143 				hr_jp_ast_utility_pkg.create_asg_set_with_request_id(
144 					p_prefix		=> 'REQUEST_ID_',
145 					p_business_group_id	=> p_business_group_id,
146 					p_payroll_id		=> p_payroll_id,
147 					p_assignment_set_id	=> p_assignment_set_id,
148 					p_assignment_set_name	=> p_assignment_set_name);
149 				commit;
150 			end if;
151 			--
152 			hr_jp_ast_utility_pkg.create_asg_set_amd(
153 				p_assignment_set_id	=> p_assignment_set_id,
154 				p_assignment_id		=> p_assignment_id,
155 				p_include_or_exclude	=> 'I');
156 			commit;
157 		end if;
158 	end create_asg_set_amd;
159 begin
160 	hr_utility.set_location('Entering : ' || l_proc, 10);
161 	--
162 	hr_utility.trace('********************');
163 	hr_utility.trace('assignment_id     : ' || to_char(p_assignment_id));
164 	hr_utility.trace('assignment_number : ' || p_assignment_number);
165 	hr_utility.trace('upload_date       : ' || to_char(p_upload_date));
166 	--
167 	-- Derive income tax dependent information from PAY_ELEMENT_ENTRIES_F.
168 	--
169 	pay_jp_bee_utility_pkg.get_ee(
170 		p_assignment_id		=> p_assignment_id,
171 		p_element_type_id	=> g_element_type_id,
172 		p_effective_date	=> p_upload_date,
173 		p_ee_rec		=> l_ee_rec,
174 		p_eev_rec		=> l_eev_rec);
175 	--
176 	-- BEE line is created
177 	-- 1. When element entry exists and one of input values to be transfered needs to be updated.
178 	-- 2. When element entry does not exist and p_create_entry_if_not_exist is set to 'Y'.
179 	--
180 	if (l_ee_rec.element_entry_id is not null)
181 	or (p_create_entry_if_not_exist = 'Y') then
182 		--
183 		-- Derive Non-resident flag as of Upload Date
184 		--
185 		l_non_res_date := pay_jp_balance_pkg.get_entry_value_date(
186 					p_input_value_id	=> g_non_res_date_iv_id,
187 					p_assignment_id		=> p_assignment_id,
188 					p_effective_date	=> p_upload_date);
189 		l_res_date := nvl(pay_jp_balance_pkg.get_entry_value_date(
190 					p_input_value_id	=> g_res_date_iv_id,
191 					p_assignment_id		=> p_assignment_id,
192 					p_effective_date	=> p_upload_date), TO_DATE('47121231','YYYYMMDD'));
193 
194 		if l_non_res_date is not null then
195 			if (l_non_res_date <= p_upload_date) and (p_upload_date < l_res_date) then
196 				l_non_res_flag := 'Y';
197 			else
198 				l_non_res_flag := 'N';
199 			end if;
200 		else
201 			l_non_res_flag := nvl(pay_jp_balance_pkg.get_entry_value_char(
202 					p_input_value_id	=> g_non_res_iv_id,
203 					p_assignment_id		=> p_assignment_id,
204 					p_effective_date	=> p_upload_date), 'N');
205 		end if;
206 
207 		--
208 		-- Derive Income Tax Type as of Upload Date
209 		-- If non-resident, set to "NON_RES".
210 		--
211 		if l_non_res_flag = 'Y' then
212 			l_itax_type := 'NON_RES';
213 		else
214 			l_itax_type := pay_jp_balance_pkg.get_entry_value_char(
215 						p_input_value_id	=> g_itax_type_iv_id,
216 						p_assignment_id		=> p_assignment_id,
217 						p_effective_date	=> p_upload_date);
218 			--
219 			-- If Income Tax Type is null for resident, raise error
220 			--
221 			if l_itax_type is null then
222 				raise itax_type_is_null;
223 			end if;
224 		end if;
225 		--
226 		hr_utility.trace('non_res_flag : ' || l_non_res_flag);
227 		hr_utility.trace('itax_type    : ' || l_itax_type);
228 		--
229 		-- Derive income tax dependent information from CTR and CEI
230 		-- as of Assessment Date, not Upload Date.
231 		--
232 		per_jp_ctr_utility_pkg.get_itax_dpnt_info(
233 			p_assignment_id		=> p_assignment_id,
234 			p_itax_type		=> l_itax_type,
235 			p_effective_date	=> p_effective_date,
236 			p_itax_dpnt_rec		=> l_itax_dpnt_rec);
237 		--
238 		-- If there're multiple spouses, skip processing for current assignment and output log.
239 		--
240 		if l_itax_dpnt_rec.multiple_spouses_warning then
241 			hr_utility.trace('Multiple spouses. Skip processing');
242 			raise multiple_spouses;
243 		end if;
244 		--
245 		-- value_if_null is like value used as "default for" clause in FastFormula.
246 		--
247 		if p_spouse_type_flag = 'Y' then
248 			l_new_value_tbl(5)	:= l_itax_dpnt_rec.spouse_type;
249 		end if;
250 		if p_dpnt_spouse_dsbl_type_flag = 'Y' then
251 			l_new_value_tbl(6)	:= l_itax_dpnt_rec.dpnt_spouse_dsbl_type;
252 		end if;
253 		if p_dpnts_flag = 'Y' then
254 			l_new_value_tbl(7)	:= fnd_number.number_to_canonical(l_itax_dpnt_rec.dpnts);
255 		end if;
256 		if p_aged_dpnts_flag = 'Y' then
257 			l_new_value_tbl(8)	:= fnd_number.number_to_canonical(l_itax_dpnt_rec.aged_dpnts);
258 		end if;
259 		if p_aged_dpnt_parents_lt_flag = 'Y' then
260 			l_new_value_tbl(9)	:= fnd_number.number_to_canonical(l_itax_dpnt_rec.aged_dpnt_parents_lt);
261 		end if;
262 		if p_young_dpnts_flag = 'Y' then
263 			l_new_value_tbl(10)	:= fnd_number.number_to_canonical(l_itax_dpnt_rec.young_dpnts);
264 		end if;
265 		if p_minor_dpnts_flag = 'Y' then
266 			l_new_value_tbl(11)	:= fnd_number.number_to_canonical(l_itax_dpnt_rec.minor_dpnts);
267 		end if;
268 		if p_dsbl_dpnts_flag = 'Y' then
269 			l_new_value_tbl(12)	:= fnd_number.number_to_canonical(l_itax_dpnt_rec.dsbl_dpnts);
270 		end if;
271 		if p_svr_dsbl_dpnts_flag = 'Y' then
272 			l_new_value_tbl(13)	:= fnd_number.number_to_canonical(l_itax_dpnt_rec.svr_dsbl_dpnts);
273 		end if;
274 		if p_svr_dsbl_dpnts_lt_flag = 'Y' then
275 			l_new_value_tbl(14)	:= fnd_number.number_to_canonical(l_itax_dpnt_rec.svr_dsbl_dpnts_lt);
276 		end if;
277 		--
278 		-- Check whether the new_value_tbl is different from eev_rec.entry_value_tbl.
279 		-- The following procedure changes new_value_tbl based on eev.
280 		--
281 		pay_jp_bee_utility_pkg.set_eev(
282 			p_ee_rec			=> l_ee_rec,
283 			p_eev_rec			=> l_eev_rec,
284 			p_value_if_null_tbl		=> c_value_if_null_tbl,
285 			p_new_value_tbl			=> l_new_value_tbl,
286 			p_is_different			=> l_is_different);
287 		--
288 		if l_is_different then
289 			--
290 			-- Write to output file
291 			--
292 			if l_ee_rec.element_entry_id is null then
293 				hr_utility.trace('EE not exist. Create EE.');
294 				--
295 				-- If element does not exist, "Insert" mode.
296 				-- Also output all entry values to be transfered.
297 				--
298 				l_change_type	:= 'I';
299 				l_write_all	:= true;
300 			else
301 				hr_utility.trace('EE exists. Compare Start.');
302 				--
303 				-- When the Upload Date is the same date as ESD,
304 				-- it is "Correction" mode, or "Update".
305 				-- In this case, only the entry values to be changed are shown in output file.
306 				--
307 				if l_ee_rec.effective_start_date = p_upload_date then
308 					l_change_type := 'C';
309 				else
310 					l_change_type := 'U';
311 				end if;
312 			end if;
313 			pay_jp_bee_utility_pkg.out(
314 				p_full_name		=> p_full_name,
315 				p_assignment_number	=> p_assignment_number,
316 				p_effective_date	=> p_upload_date,
317 				p_change_type		=> l_change_type,
318 				p_eev_rec		=> l_eev_rec,
319 				p_new_value_tbl		=> l_new_value_tbl,
320 				p_write_all		=> l_write_all);
321 			--
322 			-- Create BEE Line
323 			--
324 			l_eev_rec.entry_value_tbl := l_new_value_tbl;
325 			pay_jp_bee_utility_pkg.create_batch_line(
326 				p_batch_id			=> p_batch_id,
327 				p_assignment_id			=> p_assignment_id,
328 				p_assignment_number		=> p_assignment_number,
329 				p_element_type_id		=> g_element_type_id,
330 				p_element_name			=> c_element_name,
331 				p_effective_date		=> p_upload_date,
332 				p_ee_rec			=> l_ee_rec,
333 				p_eev_rec			=> l_eev_rec,
334 				p_batch_line_id			=> l_batch_line_id,
335 				p_object_version_number		=> l_batch_line_ovn);
336 			commit;
337 		end if;
338 	end if;
339 	--
340 	hr_utility.set_location('Leaving : ' || l_proc, 20);
341 exception
342 	when itax_type_is_null then
343 		pay_jp_bee_utility_pkg.log(
344 			p_full_name			=> p_full_name,
345 			p_assignment_number		=> p_assignment_number,
346 			p_application_short_name	=> 'PAY',
347 			p_message_name			=> 'PAY_JP_ITAX_DPNT_NO_ITAX_TYPE',
348 			p_token1			=> 'EFFECTIVE_DATE',
349 			p_value1			=> fnd_date.date_to_chardate(p_upload_date));
350 		create_asg_set_amd;
351 		--
352 		hr_utility.set_location('Leaving : ' || l_proc, 25);
353 	when multiple_spouses then
354 		pay_jp_bee_utility_pkg.log(
355 			p_full_name			=> p_full_name,
356 			p_assignment_number		=> p_assignment_number,
357 			p_application_short_name	=> 'PAY',
358 			p_message_name			=> 'PAY_JP_ITAX_DPNT_MULTI_SPOUSES',
359 			p_token1			=> 'EFFECTIVE_DATE',
360 			p_value1			=> fnd_date.date_to_chardate(p_effective_date));
361 		create_asg_set_amd;
362 		--
363 		hr_utility.set_location('Leaving : ' || l_proc, 26);
364 end transfer_asg;
365 -- ----------------------------------------------------------------------------
366 -- |-----------------------< transfer_from_cei_to_bee >-----------------------|
367 -- ----------------------------------------------------------------------------
368 procedure transfer_from_cei_to_bee(
369 	p_errbuf		 out nocopy varchar2,
370 	p_retcode		 out nocopy varchar2,
371 	p_business_group_id		in number,
372 	p_payroll_id			in number,
373 	p_time_period_id		in number,
374 	p_effective_date		in varchar2,
375 	p_upload_date			in varchar2,
376 	p_batch_name			in varchar2,
377 	p_action_if_exists		in varchar2,
378 	p_reject_if_future_changes	in varchar2,
379 	p_date_effective_changes	in varchar2,
380 	p_purge_after_transfer		in varchar2,
381 	p_assignment_set_id		in number,
382 	p_create_entry_if_not_exist	in varchar2,
383 	p_create_asg_set_for_errored	in varchar2,
384 	p_spouse_type_flag		in varchar2,
385 	p_dpnt_spouse_dsbl_type_flag	in varchar2,
386 	p_dpnts_flag			in varchar2,
387 	p_aged_dpnts_flag		in varchar2,
388 	p_aged_dpnt_parents_lt_flag	in varchar2,
389 	p_young_dpnts_flag		in varchar2,
390 	p_minor_dpnts_flag		in varchar2,
391 	p_dsbl_dpnts_flag		in varchar2,
392 	p_svr_dsbl_dpnts_flag		in varchar2,
393 	p_svr_dsbl_dpnts_lt_flag	in varchar2)
394 is
395 	l_proc				varchar2(61) := c_package || 'transfer_from_cei_to_bee';
396 	--
397 	l_effective_date		date := fnd_date.canonical_to_date(p_effective_date);
398 	l_upload_date			date := fnd_date.canonical_to_date(p_upload_date);
399 	l_period_start_date		date;
400 	l_period_end_date		date;
401 	--
402 	l_date_effective_changes	pay_batch_headers.date_effective_changes%TYPE := p_date_effective_changes;
403 	l_batch_id			number;
404 	l_batch_ovn			number;
405 	--
406 	l_asg_rec			hr_jp_ast_utility_pkg.t_asg_rec;
407 	l_assignment_set_id		number;
408 	l_assignment_set_name		hr_assignment_sets.assignment_set_name%type;
409 begin
410 --	hr_utility.trace_on('F', 'TTAGAWA');
411 	hr_utility.set_location('Entering : ' || l_proc, 10);
412 	--
413 	-- Validate Input Parameters
414 	--
415 	-- If all input values are out of scope by transfer process,
416 	-- stop processing and raise error.
417 	--
418 	if  p_spouse_type_flag			= 'N'
419 	and p_dpnt_spouse_dsbl_type_flag	= 'N'
420 	and p_dpnts_flag			= 'N'
421 	and p_aged_dpnts_flag			= 'N'
422 	and p_aged_dpnt_parents_lt_flag		= 'N'
423 	and p_young_dpnts_flag			= 'N'
424 	and p_minor_dpnts_flag			= 'N'
425 	and p_dsbl_dpnts_flag			= 'N'
426 	and p_svr_dsbl_dpnts_flag		= 'N'
427 	and p_svr_dsbl_dpnts_lt_flag		= 'N' then
428 		fnd_message.set_name('PAY', 'PAY_JP_BEE_UTIL_NO_TARGET_IV');
429 		fnd_message.raise_error;
430 	end if;
431 	--
432 	-- Validate p_time_period_id and p_upload_date
433 	--
434 	pay_jp_bee_utility_pkg.chk_upload_date(
435 		p_time_period_id	=> p_time_period_id,
436 		p_upload_date		=> l_upload_date,
437 		p_period_start_date	=> l_period_start_date,
438 		p_period_end_date	=> l_period_end_date);
439 	--
440 	-- Create BEE Header
441 	-- Batch Source    : <Request ID>
442 	-- Batch Reference : <Element Name>
443 	--
444 	-- Validate Date Effective Changes
445 	--
446 	pay_jp_bee_utility_pkg.chk_date_effective_changes(
447 		p_action_if_exists		=> p_action_if_exists,
448 		p_reject_if_future_changes	=> p_reject_if_future_changes,
449 		p_date_effective_changes	=> l_date_effective_changes);
450 	--
451 	-- Bug.2760646
452 	-- Need to populate record into fnd_sessions
453 	-- because the formula with this assignment set possibly calls
454 	-- dbis which includes fnd_sessions table, e.g. PER_EMP_NUMBER.
455 	-- If no records in fnd_sessions, PER_EMP_NUMBER will raise error
456 	-- because FF_USER_ENTITIES.NOTFOUND_ALLOWED_FLAG is "N".
457 	-- Note FND_SESSIONS.EFFECTIVE_DATE is not changed during the processing
458 	-- while the context DATE_EARNED changes for each assignment.
459 	--
460 	insert_session(l_effective_date);
461 	--
462 --
463   c_elm_tl := get_elm_tl(c_element_name);
464   if userenv('LANG') = 'JA' then
465     c_elm_tl_max := trunc(30/lengthb(to_multi_byte(' ')));
466   end if;
467 --
468 	pay_batch_element_entry_api.create_batch_header(
469 		p_validate			=> false,
470 		p_session_date			=> l_effective_date,
471 		p_batch_name			=> substrb(p_batch_name, 1, 30),
472 		p_business_group_id		=> p_business_group_id,
473 		p_action_if_exists		=> p_action_if_exists,
474 		p_batch_reference		=> substr(c_elm_tl, 1, c_elm_tl_max),
475 		p_batch_source			=> substrb(to_char(fnd_global.conc_request_id), 1, 30),
476 		p_date_effective_changes	=> l_date_effective_changes,
477 		p_purge_after_transfer		=> p_purge_after_transfer,
478 		p_reject_if_future_changes	=> p_reject_if_future_changes,
479 		p_batch_id			=> l_batch_id,
480 		p_object_version_number 	=> l_batch_ovn);
481 	commit;
482 	--
483 	hr_utility.trace('batch_id : ' || to_char(l_batch_id));
484 	--
485 	-- Initialize Global Variables
486 	--
487 	g_element_type_id	:= hr_jp_id_pkg.element_type_id(c_element_name, p_business_group_id);
488 	g_itax_type_iv_id	:= hr_jp_id_pkg.input_value_id(c_itax_elm_name, c_itax_type_iv_name, p_business_group_id);
489 	g_non_res_iv_id		:= hr_jp_id_pkg.input_value_id(c_itax_elm_name, c_non_res_iv_name, p_business_group_id);
490 	--
491 	g_non_res_date_iv_id	:= hr_jp_id_pkg.input_value_id(c_non_res_elm_name, c_non_res_date_iv_name, p_business_group_id);
492 	g_res_date_iv_id	:= hr_jp_id_pkg.input_value_id(c_non_res_elm_name, c_res_date_iv_name, p_business_group_id);
493 	--
494 	-- Derive payroll assignments to be processed
495 	--
496 	hr_jp_ast_utility_pkg.pay_asgs(
497 		p_payroll_id			=> p_payroll_id,
498 		p_effective_date		=> l_effective_date,
499 		p_start_date			=> l_upload_date,
500 		p_end_date			=> l_period_end_date,
501 		p_assignment_set_id		=> p_assignment_set_id,
502 		p_asg_rec			=> l_asg_rec);
503 	--
504 	-- Assignment to be transfered Loop
505 	--
506 	for i in 1..l_asg_rec.assignment_id_tbl.count loop
507 		transfer_asg(
508 			p_business_group_id		=> p_business_group_id,
509 			p_payroll_id			=> p_payroll_id,
510 			p_assignment_id			=> l_asg_rec.assignment_id_tbl(i),
511 			p_effective_date		=> l_effective_date,
512 			p_upload_date			=> l_asg_rec.effective_date_tbl(i),
513 			p_assignment_number		=> l_asg_rec.assignment_number_tbl(i),
514 			p_full_name			=> l_asg_rec.full_name_tbl(i),
515 			p_batch_id			=> l_batch_id,
516 			p_create_entry_if_not_exist	=> p_create_entry_if_not_exist,
517 			p_create_asg_set_for_errored	=> p_create_asg_set_for_errored,
518 			p_spouse_type_flag		=> p_spouse_type_flag,
519 			p_dpnt_spouse_dsbl_type_flag	=> p_dpnt_spouse_dsbl_type_flag,
520 			p_dpnts_flag			=> p_dpnts_flag,
521 			p_aged_dpnts_flag		=> p_aged_dpnts_flag,
522 			p_aged_dpnt_parents_lt_flag	=> p_aged_dpnt_parents_lt_flag,
523 			p_young_dpnts_flag		=> p_young_dpnts_flag,
524 			p_minor_dpnts_flag		=> p_minor_dpnts_flag,
525 			p_dsbl_dpnts_flag		=> p_dsbl_dpnts_flag,
526 			p_svr_dsbl_dpnts_flag		=> p_svr_dsbl_dpnts_flag,
527 			p_svr_dsbl_dpnts_lt_flag	=> p_svr_dsbl_dpnts_lt_flag,
528 			p_assignment_set_id		=> l_assignment_set_id,
529 			p_assignment_set_name		=> l_assignment_set_name);
530 	end loop;
531 	--
532 	-- Write the assignment_set_name created into log file
533 	--
534 	if l_assignment_set_id is not null then
535 		fnd_message.set_name('PAY', 'PAY_JP_BEE_UTIL_ASG_SET_CREATE');
536 		fnd_message.set_token('ASSIGNMENT_SET_NAME', l_assignment_set_name);
537 		fnd_file.put_line(fnd_file.log, fnd_message.get);
538 	end if;
539 	--
540 	-- When no batch lines are created, delete batch header and set message as errbuf.
541 	--
542 	if pay_jp_bee_utility_pkg.g_num_of_outs = 0 then
543 		hr_utility.trace('BEE Header deleted');
544 		--
545 		pay_batch_element_entry_api.delete_batch_header(
546 			p_validate		=> false,
547 			p_batch_id		=> l_batch_id,
548 			p_object_version_number	=> l_batch_ovn);
549 		commit;
550 		--
551 		fnd_message.set_name('PAY', 'PAY_JP_BEE_UTIL_NO_ASGS');
552 		p_errbuf := fnd_message.get;
553 		fnd_file.put_line(fnd_file.log, p_errbuf);
554 	end if;
555 	--
556 	-- If at least 1 assignment failed to process, set concurrent request status "Incomplete".
557 	--
558 	if pay_jp_bee_utility_pkg.g_num_of_logs > 0 then
559 		p_retcode := 1;
560 	else
561 		p_retcode := 0;
562 	end if;
563 	--
564 	-- Bug.2760646
565 	--
566 	delete_session;
567 	--
568 	hr_utility.trace('retcode : ' || p_retcode);
569 	hr_utility.trace('errbuf  : ' || p_errbuf);
570 	hr_utility.set_location('Leaving : ' || l_proc, 20);
571 end transfer_from_cei_to_bee;
572 --
573 end pay_jp_itax_dpnt_interface_pkg;