[Home] [Help]
PACKAGE BODY: APPS.PAY_KR_YEA_PDF_PKG
Source
1 package body pay_kr_yea_pdf_pkg as
2 /* $Header: pykrypdf.pkb 120.5.12020000.7 2013/01/10 14:02:18 mdubasi noship $ */
3 --
4 c_package constant varchar2(30) := 'pay_kr_yea_pdf_pkg.';
5 c_legislation_code varchar2(2) := 'KR';
6 --
7 g_debug boolean := hr_utility.debug_enabled;
8 g_upload boolean := true;
9 --
10 g_msg fnd_new_messages.message_text%type;
11 --
12 g_chunk_cnt number := 1;
13 g_file_ind number := 0;
14 g_target_soy date;
15 g_target_eoy date;
16 --
17 g_pdf_ind number := 0;
18 g_admin varchar2(1);
19 g_ss_call varchar2(1);
20 g_dpnt_ni_num per_kr_assignment_yea_info.ayi_information1%type;
21 g_dpnt_ind number;
22 --
23 type t_ass_yea_rec is record(
24 assignment_yea_info_id number,
25 file_id number,
26 file_name fnd_lobs.file_name%type,
27 assignment_id number,
28 emp_num varchar2(30),
29 emp_name varchar2(300),
30 status varchar2(1));
31 type t_ass_yea_tbl is table of t_ass_yea_rec index by binary_integer;
32 --
33 g_ass_yea_tbl t_ass_yea_tbl;
34 g_ass_yea_ind number := 0;
35 --
36 type t_med_rec is record(
37 paid_amount per_kr_assignment_yea_info.ayi_information1%type,
38 source_code per_kr_assignment_yea_info.ayi_information1%type,
39 resident_registration_no per_kr_assignment_yea_info.ayi_information1%type,
40 disabled_or_aged per_kr_assignment_yea_info.ayi_information1%type);
41 type t_med_tbl is table of t_med_rec index by binary_integer;
42 --
43 type t_don_rec is record(
44 ni_num per_kr_assignment_yea_info.ayi_information1%type,
45 donation_code per_kr_assignment_yea_info.ayi_information1%type,
46 sum per_kr_assignment_yea_info.ayi_information1%type,
47 donated_amount per_kr_assignment_yea_info.ayi_information1%type,
48 donated_date per_kr_assignment_yea_info.ayi_information1%type,
49 recipient_name per_kr_assignment_yea_info.ayi_information1%type,
50 recipient_registration_number per_kr_assignment_yea_info.ayi_information1%type,
51 donation_detail_type per_kr_assignment_yea_info.ayi_information1%type,
52 donator_name per_kr_assignment_yea_info.ayi_information1%type,
53 relationship per_kr_assignment_yea_info.ayi_information1%type);
54 type t_don_tbl is table of t_don_rec index by binary_integer;
55 --
56 type t_educ_rec is record(
57 ni_num per_kr_assignment_yea_info.ayi_information1%type,
58 dpnt_name per_kr_assignment_yea_info.ayi_information1%type,
59 school_type per_kr_assignment_yea_info.ayi_information1%type,
60 nts_other per_kr_assignment_yea_info.ayi_information1%type,
61 exp per_kr_assignment_yea_info.ayi_information1%type);
62 type t_educ_tbl is table of t_educ_rec index by binary_integer;
63 --
64 type t_saving_rec is record(
65 priority per_kr_assignment_yea_info.ayi_information1%type,
66 type per_kr_assignment_yea_info.ayi_information1%type,
67 financial_inst per_kr_assignment_yea_info.ayi_information1%type,
68 account_num per_kr_assignment_yea_info.ayi_information1%type,
69 contributed_amt per_kr_assignment_yea_info.ayi_information1%type,
70 cont_amt_y2 per_kr_assignment_yea_info.ayi_information1%type,
71 cont_amt_y3 per_kr_assignment_yea_info.ayi_information1%type);
72 type t_saving_tbl is table of t_saving_rec index by binary_integer;
73 -- Bug :16083942 2012 pdf layout changes
74 type t_cards_rec is record(
75 key per_kr_assignment_yea_info.ayi_information1%type,
76 val per_kr_assignment_yea_info.ayi_information1%type,
77 use_place_cd number
78 );
79 type t_cards_tbl is table of t_cards_rec index by binary_integer;
80
81 type t_uniform_rec is record(
82 key per_kr_assignment_yea_info.ayi_information1%type,
83 val per_kr_assignment_yea_info.ayi_information1%type,
84 empname per_kr_assignment_yea_info.ayi_information1%type
85 );
86 type t_uniform_tbl is table of t_uniform_rec index by binary_integer;
87
88 type t_lthouse_rec is record(
89 key per_kr_assignment_yea_info.ayi_information1%type,
90 val per_kr_assignment_yea_info.ayi_information1%type,
91 start_date per_kr_assignment_yea_info.ayi_information1%type,
92 debt number,
93 fixed_rate number,
94 defer_debt number,
95 year_amt number
96 );
97 type t_lthouse_tbl is table of t_lthouse_rec index by binary_integer;
98 --
99 type t_dpnt_rec is record(
100 ins_prem_nts number,
101 dis_ins_nts number,
102 med_exp_nts number,
103 educ_exp_nts number,
104 card_exp_nts number,
105 card_tm_nts number,
106 direct_payment_nts number,
107 direct_tm_nts number,
108 cash_exp_nts number,
109 cash_tm_nts number,
110 don_exp_nts number);
111 type t_dpnt_tbl is table of t_dpnt_rec index by binary_integer;
112 --
113 type t_char_tbl is table of per_kr_assignment_yea_info.ayi_information1%type index by binary_integer;
114 --
115 type t_ass_data_rec is record(
116 pers_ins_prem per_kr_assignment_yea_info.ayi_information1%type,
117 disabled_ins_prem per_kr_assignment_yea_info.ayi_information1%type,
118 housing_loan_repay per_kr_assignment_yea_info.ayi_information1%type,
119 housing_loan_date per_kr_assignment_yea_info.ayi_information1%type,
120 lt_housing_loan_interest_rep per_kr_assignment_yea_info.ayi_information1%type,
121 lt_housing_loan_int_repay_1 per_kr_assignment_yea_info.ayi_information1%type,
122 lt_housing_loan_int_repay_2 per_kr_assignment_yea_info.ayi_information1%type,
123 lt_2012_fixed_intr_wo_grace per_kr_assignment_yea_info.ayi_information1%type,
124 lt_2012_housing_other_intr per_kr_assignment_yea_info.ayi_information1%type,
125 med_exp_aged per_kr_assignment_yea_info.ayi_information1%type,
126 med_exp_emp per_kr_assignment_yea_info.ayi_information1%type,
127 med_exp per_kr_assignment_yea_info.ayi_information1%type,
128 political_donation1 per_kr_assignment_yea_info.ayi_information1%type,
129 ee_educ_exp per_kr_assignment_yea_info.ayi_information1%type,
130 ee_uniform_exp per_kr_assignment_yea_info.ayi_information1%type,
131 ee_occupation_educ_exp per_kr_assignment_yea_info.ayi_information1%type,
132 pers_pension_prem per_kr_assignment_yea_info.ayi_information1%type,
133 small_bus_install per_kr_assignment_yea_info.ayi_information1%type,
134 credit_card_exp per_kr_assignment_yea_info.ayi_information1%type,
135 credit_tm_exp per_kr_assignment_yea_info.ayi_information1%type,
136 cash_receipt_exp per_kr_assignment_yea_info.ayi_information1%type,
137 cash_tm_exp per_kr_assignment_yea_info.ayi_information1%type,
138 direct_card_exp per_kr_assignment_yea_info.ayi_information1%type,
139 direct_tm_exp per_kr_assignment_yea_info.ayi_information1%type,
140 ins_exp_nts per_kr_assignment_yea_info.ayi_information1%type,
141 med_exp_nts per_kr_assignment_yea_info.ayi_information1%type,
142 educ_exp_nts per_kr_assignment_yea_info.ayi_information1%type,
143 card_exp_nts per_kr_assignment_yea_info.ayi_information1%type,
144 card_tm_nts per_kr_assignment_yea_info.ayi_information1%type,
145 direct_payment_nts per_kr_assignment_yea_info.ayi_information1%type,
146 direct_tm_nts per_kr_assignment_yea_info.ayi_information1%type,
147 tm_exp_nts per_kr_assignment_yea_info.ayi_information1%type,
148 don_exp_nts per_kr_assignment_yea_info.ayi_information1%type,
149 med_tbl t_med_tbl,
150 don_tbl t_don_tbl,
151 educ_tbl t_educ_tbl,
152 uniform_tbl t_uniform_tbl,
153 sep_pen_saving_tbl t_saving_tbl,
154 pen_saving_tbl t_saving_tbl,
155 hou_saving_tbl t_saving_tbl,
156 lts_saving_tbl t_saving_tbl,
157 dpnt_ind_tbl t_char_tbl,
158 dpnt_tbl t_dpnt_tbl,
159 --
160 entry_status per_kr_assignment_yea_info.ayi_information1%type,
161 validation_status per_kr_assignment_yea_info.ayi_information1%type,
162 entry_error1 per_kr_assignment_yea_info.ayi_information1%type,
163 entry_error2 per_kr_assignment_yea_info.ayi_information1%type,
164 entry_error3 per_kr_assignment_yea_info.ayi_information1%type,
165 entry_error4 per_kr_assignment_yea_info.ayi_information1%type,
166 entry_error5 per_kr_assignment_yea_info.ayi_information1%type,
167 entry_error6 per_kr_assignment_yea_info.ayi_information1%type,
168 entry_error7 per_kr_assignment_yea_info.ayi_information1%type,
169 entry_error8 per_kr_assignment_yea_info.ayi_information1%type,
170 entry_error9 per_kr_assignment_yea_info.ayi_information1%type,
171 entry_error10 per_kr_assignment_yea_info.ayi_information1%type,
172 --
173 housing_saving_type per_kr_assignment_yea_info.ayi_information1%type,
174 housing_saving per_kr_assignment_yea_info.ayi_information1%type,
175 housing_purchase_date per_kr_assignment_yea_info.ayi_information1%type,
176 lt_housing_loan_date per_kr_assignment_yea_info.ayi_information1%type,
177 donation1 per_kr_assignment_yea_info.ayi_information1%type,
178 hi_prem per_kr_assignment_yea_info.ayi_information1%type,
179 political_donation2 per_kr_assignment_yea_info.ayi_information1%type,
180 political_donation3 per_kr_assignment_yea_info.ayi_information1%type,
181 donation2 per_kr_assignment_yea_info.ayi_information1%type,
182 donation3 per_kr_assignment_yea_info.ayi_information1%type,
183 lt_housing_loan_date_1 per_kr_assignment_yea_info.ayi_information1%type,
184 mfr_marriage_occasions per_kr_assignment_yea_info.ayi_information1%type,
185 mfr_funeral_occasions per_kr_assignment_yea_info.ayi_information1%type,
186 mfr_relocation_occasions per_kr_assignment_yea_info.ayi_information1%type,
187 ei_prem per_kr_assignment_yea_info.ayi_information1%type,
188 esoa_donation per_kr_assignment_yea_info.ayi_information1%type,
189 pers_ins_name per_kr_assignment_yea_info.ayi_information1%type,
190 med_exp_disabled per_kr_assignment_yea_info.ayi_information1%type,
191 immigration_purpose per_kr_assignment_yea_info.ayi_information1%type,
192 contract_date per_kr_assignment_yea_info.ayi_information1%type,
193 expiry_date per_kr_assignment_yea_info.ayi_information1%type,
194 stax_applicable_flag per_kr_assignment_yea_info.ayi_information1%type,
195 fw_application_date per_kr_assignment_yea_info.ayi_information1%type,
196 fw_submission_date per_kr_assignment_yea_info.ayi_information1%type,
197 tax_paid_date per_kr_assignment_yea_info.ayi_information1%type,
198 ovs_submission_date per_kr_assignment_yea_info.ayi_information1%type,
199 kr_ovs_location per_kr_assignment_yea_info.ayi_information1%type,
200 kr_ovs_work_period per_kr_assignment_yea_info.ayi_information1%type,
201 kr_ovs_responsibility per_kr_assignment_yea_info.ayi_information1%type,
202 territory_code per_kr_assignment_yea_info.ayi_information1%type,
203 currency_code per_kr_assignment_yea_info.ayi_information1%type,
204 taxable per_kr_assignment_yea_info.ayi_information1%type,
205 taxable_subj_tax_break per_kr_assignment_yea_info.ayi_information1%type,
206 tax_break_rate per_kr_assignment_yea_info.ayi_information1%type,
207 tax_foreign_currency per_kr_assignment_yea_info.ayi_information1%type,
208 tax per_kr_assignment_yea_info.ayi_information1%type,
209 ovs_application_date per_kr_assignment_yea_info.ayi_information1%type,
210 housing_loan_interest_repay per_kr_assignment_yea_info.ayi_information1%type,
211 stock_saving per_kr_assignment_yea_info.ayi_information1%type,
212 lt_stock_saving1 per_kr_assignment_yea_info.ayi_information1%type,
213 lt_stock_saving2 per_kr_assignment_yea_info.ayi_information1%type,
214 dpnt_direct_exp per_kr_assignment_yea_info.ayi_information1%type,
215 giro_tuition_paid_exp per_kr_assignment_yea_info.ayi_information1%type,
216 np_prem per_kr_assignment_yea_info.ayi_information1%type,
217 pers_pension_saving per_kr_assignment_yea_info.ayi_information1%type,
218 invest_partnership_fin1 per_kr_assignment_yea_info.ayi_information1%type,
219 invest_partnership_fin2 per_kr_assignment_yea_info.ayi_information1%type,
220 emp_stock_own_plan_contri per_kr_assignment_yea_info.ayi_information1%type,
221 credit_card_exp_dpnt per_kr_assignment_yea_info.ayi_information1%type,
222 pen_prem per_kr_assignment_yea_info.ayi_information1%type,
223 ltci_prem per_kr_assignment_yea_info.ayi_information1%type);
224 --
225 /* same condition with EmpSearchVO.xml */
226 /* no need primary flag check for rehire */
227 cursor csr_map_name(
228 p_map_file_name in varchar2)
229 is
230 select pa.assignment_id,
231 pp.last_name||pp.first_name emp_name,
232 substrb(pp.national_identifier,1,6) res_reg_num,
233 pp.national_identifier ni_num,
234 pp.employee_number emp_num
235 from per_kr_assignment_yea_info pkayi,
236 per_people_f pp,
237 per_periods_of_service ppos,
238 per_assignments_f pa
239 where pa.business_group_id + 0 = g_business_group_id
240 and pa.establishment_id = nvl(g_business_place_id,pa.establishment_id)
241 and decode(to_char(nvl(g_assignment_set_id,-1)),
242 '-1','Y',
243 hr_assignment_set.assignment_in_set(g_assignment_set_id,pa.assignment_id)) = 'Y'
244 and pa.assignment_type = 'E'
245 and pa.effective_start_date <= g_target_eoy
246 and pa.effective_end_date >= g_target_soy
247 and ppos.period_of_service_id = pa.period_of_service_id
248 and nvl(ppos.final_process_date,g_target_eoy)
249 between g_target_soy and g_target_eoy
250 and pp.person_id = pa.person_id
251 and pp.effective_start_date <= g_target_eoy
252 and pp.effective_end_date >= g_target_soy
253 /* fetch latest emp information */
254 and not exists(
255 select null
256 from per_people_f pp2
257 where pp2.person_id = pa.person_id
258 and pp2.effective_start_date <= g_target_eoy
259 and pp2.effective_end_date >= g_target_soy
260 and pp2.effective_start_date < pp.effective_start_date)
261 and ((nvl(g_map_key,'FULL_NAME') = 'FULL_NAME'
262 and p_map_file_name like pp.last_name||pp.first_name||'('||substrb(pp.national_identifier,1,6)||')%')
263 or (g_map_key = 'EMPLOYEE_NUMBER'
264 and cast(replace(lower(substrb(p_map_file_name ,instrb(p_map_file_name,'-','-1')+1)),'.pdf') as INT) = pp.employee_number))
265 and pkayi.assignment_id (+) = pa.assignment_id
266 and pkayi.target_year (+) = g_target_yyyy
267 and pkayi.information_type (+) = 'KR_YEA_ENTRY_STATUS'
268 and pkayi.ayi_information_category (+) = 'KR_YEA_ENTRY_STATUS'
269 and decode(nvl(g_force_load,'N'),'Y','X',nvl(pkayi.ayi_information16,'X')) <> c_process_status; /* exclude processing upload or import */
270 --
271 /* no need primary flag check for rehire */
272 cursor csr_kr_ass_yea(
273 p_assignment_yea_info_id in number,
274 p_business_group_id in number,
275 p_target_year in number,
276 p_business_place_id in number,
277 p_assignment_set_id in number)
278 is
279 select pkayi.assignment_yea_info_id,
280 pkayi.assignment_id,
281 pp.national_identifier ni_num,
282 pp.last_name||pp.first_name emp_name,
283 pp.employee_number emp_num,
284 null exclude,
285 fl.file_id,
286 fl.file_data pdf_file
287 from per_kr_assignment_yea_info pkayi,
288 per_all_assignments_f pa,
289 per_periods_of_service ppos,
290 per_people_f pp,
291 fnd_lobs fl
292 where pkayi.assignment_yea_info_id = nvl(p_assignment_yea_info_id,pkayi.assignment_yea_info_id)
293 and pkayi.information_type = 'KR_YEA_ENTRY_STATUS'
294 and pkayi.ayi_information_category = 'KR_YEA_ENTRY_STATUS'
295 and pkayi.target_year = p_target_year
296 /* and decode(nvl(g_admin,'N'),'Y','N',nvl(pkayi.ayi_information3,'N')) in ('N','IE') -- include case update data after import */
297 and decode(nvl(g_force_load,'N'),'Y','X',nvl(pkayi.ayi_information16,'X')) <> c_process_status /* exclude processing upload or import */
298 and pa.assignment_id = pkayi.assignment_id
299 and pa.business_group_id + 0 = p_business_group_id
300 and pa.effective_start_date <= g_target_eoy
301 and pa.effective_end_date >= g_target_soy
302 and pa.establishment_id = nvl(p_business_place_id,pa.establishment_id)
303 and decode(to_char(nvl(p_assignment_set_id,-1)),
304 '-1','Y',
305 hr_assignment_set.assignment_in_set(p_assignment_set_id,pa.assignment_id)) = 'Y'
306 and ppos.period_of_service_id = pa.period_of_service_id
307 and pp.person_id = pa.person_id
308 and pp.effective_start_date <= g_target_eoy
309 and pp.effective_end_date >= g_target_soy
310 /* fetch latest emp information */
311 and not exists(
312 select null
313 from per_people_f pp2
314 where pp2.person_id = pa.person_id
315 and pp2.effective_start_date <= g_target_eoy
316 and pp2.effective_end_date >= g_target_soy
317 and pp2.effective_start_date < pp.effective_start_date)
318 and nvl(ppos.final_process_date,g_target_eoy)
319 between g_target_soy and g_target_eoy
320 and fl.file_id = fnd_number.canonical_to_number(pkayi.ayi_information15); /* ayi_information14 in ('I','U','E') */
321 --
322 type t_pdf_tbl is table of csr_kr_ass_yea%rowtype index by binary_integer;
323 g_pdf_tbl t_pdf_tbl;
324 --
325 type t_val_by_key_rec is record(
326 key per_kr_assignment_yea_info.ayi_information1%type,
327 val per_kr_assignment_yea_info.ayi_information1%type);
328 type t_val_by_key_tbl is table of t_val_by_key_rec index by binary_integer;
329 --
330 -- -------------------------------------------------------------------------
331 -- insert_session
332 -- -------------------------------------------------------------------------
333 procedure insert_session(
334 p_effective_date in date)
335 is
336 --
337 l_rowid rowid;
338 --
339 cursor csr_session
340 is
341 select rowid
342 from fnd_sessions
343 where session_id = userenv('sessionid')
344 for update nowait;
345 --
346 begin
347 --
348 open csr_session;
349 fetch csr_session into l_rowid;
350 --
351 if csr_session%notfound then
352 --
353 insert into fnd_sessions(
354 session_id,
355 effective_date)
356 values(
357 userenv('sessionid'),
358 p_effective_date);
359 --
360 else
361 --
362 update fnd_sessions
363 set effective_date = p_effective_date
364 where rowid = l_rowid;
365 --
366 end if;
367 --
368 close csr_session;
369 --
370 end insert_session;
371 --
372 -- -------------------------------------------------------------------------
373 -- delete_session
374 -- -------------------------------------------------------------------------
375 procedure delete_session
376 is
377 begin
378 --
379 delete
380 from fnd_sessions
381 where session_id = userenv('sessionid');
382 --
383 end delete_session;
384 --
385 -- -------------------------------------------------------------------------
386 -- load_init
387 -- -------------------------------------------------------------------------
388 procedure load_init(
389 p_business_group_id in number,
390 p_target_year in number,
391 p_business_place_id in number default null,
392 p_assignment_set_id in number default null,
393 p_admin in varchar2 default null,
394 p_remove_pdf in varchar2 default null,
395 p_map_key in varchar2 default null,
396 p_upload_to in varchar2 default null,
397 p_force_load in varchar2 default null,
398 p_skip_validate in varchar2 default null,
399 p_show_xml in varchar2 default null,
400 p_import_path out nocopy varchar2,
401 p_nts_certs_path out nocopy varchar2)
402 is
403 --
404 l_proc varchar2(80) := c_package||'load_init';
405 --
406 cursor csr_pdf_setup
407 is
408 select hoi.org_information1 import_path,
409 hoi.org_information2 nts_certs_path
410 from hr_organization_information hoi
411 where hoi.organization_id = p_business_group_id
412 and hoi.org_information_context = 'KR_YEA_PDF_SETUP_BG';
413 --
414 begin
415 --
416 if g_debug then
417 hr_utility.set_location(l_proc,0);
418 end if;
419 --
420 if g_load_type is null then
421 g_load_type := 'L';
422 end if;
423 --
424 g_business_group_id := p_business_group_id;
425 g_target_yyyy := p_target_year;
426 g_target_soy := to_date(to_char(p_target_year)||'/01/01','YYYY/MM/DD');
427 g_target_eoy := to_date(to_char(p_target_year)||'/12/31','YYYY/MM/DD');
428 g_business_place_id := p_business_place_id;
429 g_assignment_set_id := p_assignment_set_id;
430 g_admin := p_admin;
431 g_remove_pdf := p_remove_pdf;
432 g_map_key := p_map_key;
433 g_upload_to := p_upload_to;
434 g_force_load := p_force_load;
435 g_skip_validate := p_skip_validate;
436 g_show_xml := p_show_xml;
437 --
438 g_imp_output_hd_show := 'N';
439 g_upl_output_hd_show := 'N';
440 g_chunk_cnt := 1;
441 g_file_ind := 0;
442 --
443 open csr_pdf_setup;
444 fetch csr_pdf_setup into g_import_path, p_nts_certs_path;
445 close csr_pdf_setup;
446 --
447 g_path_delimiter := c_path_delimiter;
448 if instrb(p_import_path,g_path_delimiter) = 0 then
449 --
450 g_path_delimiter := c_path_delimiter_win;
451 --
452 end if;
453 --
454 if instrb(p_import_path,g_path_delimiter,-1) = lengthb(p_import_path) then
455 g_import_path := substrb(g_import_path,1,lengthb(g_import_path)-1);
456 end if;
457 p_import_path := g_import_path;
458 --
459 -- for api use
460 if nvl(g_load_type,'L') <> 'I'
461 and nvl(g_ss_call,'N') <> 'Y' then
462 insert_session(g_target_eoy);
463 end if;
464 --
465 if g_debug then
466 hr_utility.trace('g_business_group_id : '||to_char(g_business_group_id));
467 hr_utility.trace('g_target_yyyy : '||to_char(g_target_yyyy));
468 hr_utility.trace('g_business_place_id : '||to_char(g_business_place_id));
469 hr_utility.trace('g_assignment_set_id : '||to_char(g_assignment_set_id));
470 hr_utility.trace('g_remove_pdf : '||g_remove_pdf);
471 hr_utility.trace('g_map_key : '||g_map_key);
472 hr_utility.trace('g_force_load : '||g_force_load);
473 hr_utility.trace('g_skip_validate : '||g_skip_validate);
474 hr_utility.trace('p_import_path : '||g_import_path);
475 hr_utility.trace('p_nts_certs_path : '||p_nts_certs_path);
476 end if;
477 --
478 if g_debug then
479 hr_utility.set_location(l_proc,1000);
480 end if;
481 --
482 end load_init;
483 --
484 -- -------------------------------------------------------------------------
485 -- import_init
486 -- -------------------------------------------------------------------------
487 procedure import_init(
488 p_business_group_id in number,
489 p_target_year in number,
490 p_business_place_id in number,
491 p_assignment_set_id in number,
492 p_remove_pdf in varchar2,
493 p_map_key in varchar2,
494 p_force_import in varchar2,
495 p_import_path out nocopy varchar2)
496 is
497 --
498 l_proc varchar2(80) := c_package||'import_init';
499 --
500 l_nts_certs_path hr_organization_information.org_information2%type;
501 --
502 begin
503 --
504 if g_debug then
505 hr_utility.set_location(l_proc,0);
506 end if;
507 --
508 g_load_type := 'I';
509 --
510 load_init(
511 p_business_group_id => p_business_group_id,
512 p_target_year => p_target_year,
513 p_business_place_id => p_business_place_id,
514 p_assignment_set_id => p_assignment_set_id,
515 p_remove_pdf => p_remove_pdf,
516 p_map_key => p_map_key,
517 p_force_load => p_force_import,
518 p_import_path => p_import_path,
519 p_nts_certs_path => l_nts_certs_path);
520 --
521 if g_debug then
522 hr_utility.set_location(l_proc,1000);
523 end if;
524 --
525 end import_init;
526 --
527 -- -------------------------------------------------------------------------
528 -- set_pdf_tbl
529 -- -------------------------------------------------------------------------
530 procedure set_pdf_tbl(
531 p_assignment_yea_info_id in number default null,
532 p_business_group_id in number default null,
533 p_target_year in number default null,
534 p_business_place_id in number default null,
535 p_assignment_set_id in number default null)
536 is
537 --
538 l_proc varchar2(80) := c_package||'set_pdf_tbl';
539 --
540 begin
541 --
542 if g_debug then
543 hr_utility.set_location(l_proc,0);
544 end if;
545 --
546 g_pdf_ind := 0;
547 g_pdf_tbl.delete;
548 --
549 open csr_kr_ass_yea(
550 p_assignment_yea_info_id,
551 p_business_group_id,
552 p_target_year,
553 p_business_place_id,
554 p_assignment_set_id);
555 fetch csr_kr_ass_yea bulk collect into g_pdf_tbl;
556 close csr_kr_ass_yea;
557 --
558 --fnd_file.put_line(fnd_file.log,'g_pdf_tbl.count : '||to_char(g_pdf_tbl.count));
559 --
560 if g_debug then
561 hr_utility.trace('g_pdf_tbl.count : '||to_char(g_pdf_tbl.count));
562 end if;
563 --
564 -- bulk collect start from 1
565 g_pdf_ind := g_pdf_tbl.next(0);
566 --
567 if g_debug then
568 hr_utility.set_location(l_proc,1000);
569 end if;
570 --
571 end set_pdf_tbl;
572 --
573 -- -------------------------------------------------------------------------
574 -- proc_set
575 -- -------------------------------------------------------------------------
576 procedure proc_set
577 is
578 --
579 l_proc varchar2(80) := c_package||'proc_set';
580 --
581 cursor csr_entry_status(
582 p_assignment_yea_info_id in number)
583 is
584 select rowid row_id,
585 object_version_number ovn
586 from per_kr_assignment_yea_info
587 where assignment_yea_info_id = p_assignment_yea_info_id
588 for update nowait;
589 --
590 l_csr_entry_status csr_entry_status%rowtype;
591 --
592 begin
593 --
594 if g_debug then
595 hr_utility.set_location(l_proc,0);
596 end if;
597 --
598 if g_pdf_tbl.count > 0 then
599 --
600 for i in g_pdf_tbl.first..g_pdf_tbl.last loop
601 --
602 begin
603 --
604 open csr_entry_status(g_pdf_tbl(i).assignment_yea_info_id);
605 fetch csr_entry_status into l_csr_entry_status;
606 close csr_entry_status;
607 --
608 if l_csr_entry_status.row_id is not null then
609 --
610 update per_kr_assignment_yea_info
611 set ayi_information14 = c_upload_status,
612 ayi_information16 = c_process_status,
613 object_version_number = l_csr_entry_status.ovn + 1
614 where rowid = l_csr_entry_status.row_id;
615 --
616 end if;
617 --
618 exception
619 when others then
620 --
621 -- set exclude for lock row, etc.
622 g_pdf_tbl(i).exclude := 'Y';
623 --
624 end;
625 --
626 end loop;
627 --
628 if nvl(g_ss_call,'N') <> 'Y' then
629 --
630 commit;
631 --
632 end if;
633 --
634 end if;
635 --
636 if g_debug then
637 hr_utility.set_location(l_proc,1000);
638 end if;
639 --
640 end proc_set;
641 --
642 -- -------------------------------------------------------------------------
643 -- upload_init
644 -- -------------------------------------------------------------------------
645 procedure upload_init(
646 p_assignment_yea_info_id in number default null,
647 p_business_group_id in number default null, /* for get_pdf_blob_ss */
648 p_target_year in number default null, /* for get_pdf_blob_ss */
649 p_business_place_id in number default null,
650 p_assignment_set_id in number default null,
651 p_admin in varchar2 default null,
652 p_remove_pdf in varchar2 default null,
653 p_upload_to in varchar2 default null,
654 p_force_upload in varchar2 default null,
655 p_skip_validate in varchar2 default null,
656 p_show_xml in varchar2 default null,
657 p_nts_certs_path out nocopy varchar2)
658 is
659 --
660 l_proc varchar2(80) := c_package||'upload_init';
661 --
662 l_import_path hr_organization_information.org_information1%type;
663 --
664 begin
665 --
666 if g_debug then
667 hr_utility.set_location(l_proc,0);
668 end if;
669 --
670 g_load_type := 'U';
671 --
672 load_init(
673 p_business_group_id => p_business_group_id,
674 p_target_year => p_target_year,
675 p_business_place_id => p_business_place_id,
676 p_assignment_set_id => p_assignment_set_id,
677 p_admin => p_admin,
678 p_remove_pdf => p_remove_pdf,
679 p_upload_to => p_upload_to,
680 p_force_load => p_force_upload,
681 p_skip_validate => p_skip_validate,
682 p_show_xml => p_show_xml,
683 p_import_path => l_import_path,
684 p_nts_certs_path => p_nts_certs_path);
685 --
686 set_pdf_tbl(
687 p_assignment_yea_info_id => p_assignment_yea_info_id,
688 p_business_group_id => p_business_group_id,
689 p_target_year => p_target_year,
690 p_business_place_id => p_business_place_id,
691 p_assignment_set_id => p_assignment_set_id);
692 --
693 proc_set;
694 --
695 if g_debug then
696 hr_utility.set_location(l_proc,1000);
697 end if;
698 --
699 end upload_init;
700 --
701 -- -------------------------------------------------------------------------
702 -- import_kr_ass_yea
703 -- -------------------------------------------------------------------------
704 procedure import_kr_ass_yea(
705 p_assignment_id in number,
706 p_target_year in number,
707 p_file_id in number,
708 p_proc_status in varchar2,
709 p_assignment_yea_info_id out nocopy number)
710 is
711 --
712 l_proc varchar2(80) := c_package||'import_kr_ass_yea';
713 --
714 l_assignment_yea_info_id number;
715 l_object_version_number number := 1;
716 --
717 cursor csr_kr_ass_yea
718 is
719 select pkayi.assignment_yea_info_id,
720 fnd_number.canonical_to_number(pkayi.ayi_information15) file_id,
721 pkayi.object_version_number
722 from per_kr_assignment_yea_info pkayi
723 where pkayi.assignment_id = p_assignment_id
724 and pkayi.target_year = p_target_year
725 and pkayi.information_type = 'KR_YEA_ENTRY_STATUS'
726 and pkayi.ayi_information_category = 'KR_YEA_ENTRY_STATUS'
727 for update nowait;
728 --
729 cursor csr_file(
730 p_file_id in number)
731 is
732 select file_id
733 from fnd_lobs
734 where file_id = p_file_id;
735 --
736 l_csr_kr_ass_yea csr_kr_ass_yea%rowtype;
737 l_csr_file csr_file%rowtype;
738 --
739 begin
740 --
741 if g_debug then
742 hr_utility.set_location(l_proc,0);
743 end if;
744 --
745 begin
746 --
747 open csr_kr_ass_yea;
748 fetch csr_kr_ass_yea into l_csr_kr_ass_yea;
749 close csr_kr_ass_yea;
750 --
751 if l_csr_kr_ass_yea.assignment_yea_info_id is not null then
752 --
753 if g_debug then
754 hr_utility.set_location(l_proc,10);
755 end if;
756 --
757 l_assignment_yea_info_id := l_csr_kr_ass_yea.assignment_yea_info_id;
758 l_object_version_number := l_csr_kr_ass_yea.object_version_number + 1;
759 --
760 update per_kr_assignment_yea_info
761 set ayi_information14 = c_import_status,
762 ayi_information15 = fnd_number.number_to_canonical(p_file_id),
763 ayi_information16 = nvl(p_proc_status,ayi_information16),
764 object_version_number = l_object_version_number
765 where assignment_yea_info_id = l_csr_kr_ass_yea.assignment_yea_info_id;
766 --
767 -- override pdf
768 if l_csr_kr_ass_yea.file_id is not null
769 and nvl(g_remove_pdf,'N') = 'Y' then
770 --
771 open csr_file(l_csr_kr_ass_yea.file_id);
772 fetch csr_file into l_csr_file;
773 close csr_file;
774 --
775 if l_csr_file.file_id is not null then
776 --
777 fnd_gfm.delete_lob(l_csr_file.file_id);
778 --
779 if g_debug then
780 hr_utility.set_location(l_proc,20);
781 end if;
782 --
783 end if;
784 --
785 end if;
786 --
787 else
788 --
789 select per_kr_assignment_yea_info_s.nextval
790 into l_assignment_yea_info_id
791 from dual;
792 --
793 insert into per_kr_assignment_yea_info(
794 assignment_yea_info_id,
795 assignment_id,
796 information_type,
797 target_year,
798 ayi_information_category,
799 ayi_information3,
800 ayi_information14,
801 ayi_information15,
802 ayi_information16,
803 object_version_number)
804 values (
805 l_assignment_yea_info_id,
806 p_assignment_id,
807 'KR_YEA_ENTRY_STATUS',
808 p_target_year,
809 'KR_YEA_ENTRY_STATUS',
810 c_entry_status,
811 c_import_status,
812 fnd_number.number_to_canonical(p_file_id),
813 p_proc_status,
814 l_object_version_number);
815 --
816 end if;
817 --
818 exception
819 when others then
820 --
821 fnd_message.set_name('PAY','PAY_KR_YEA_PDF_LOCK_STATUS');
822 fnd_message.set_token('ASS_ID',to_char(p_assignment_id));
823 g_msg := fnd_message.get;
824 --
825 fnd_file.put_line(fnd_file.log,g_msg);
826 --
827 if g_debug then
828 hr_utility.trace('skipped because p_assignment_id : '||to_char(p_assignment_id)||' entry status was locked.');
829 end if;
830 --
831 end;
832 --
833 p_assignment_yea_info_id := l_assignment_yea_info_id;
834 --
835 if g_debug then
836 hr_utility.set_location(l_proc,1000);
837 end if;
838 --
839 end import_kr_ass_yea;
840 --
841 -- -------------------------------------------------------------------------
842 -- import_file
843 -- -------------------------------------------------------------------------
844 function import_file(
845 p_file_name in varchar2)
846 return number
847 is
848 --
849 l_proc varchar2(80) := c_package||'import_file';
850 --
851 l_file_id number;
852 l_file_name fnd_lobs.file_name%type;
853 l_ass_yea_info_id number;
854 --
855 l_csr_map_name csr_map_name%rowtype;
856 --
857 begin
858 --
859 if g_debug then
860 hr_utility.set_location(l_proc,10);
861 end if;
862 --
863 g_ass_yea_tbl.delete;
864 g_ass_yea_ind := 0;
865 --
866 l_file_name := p_file_name;
867 if instrb(p_file_name,g_path_delimiter,'-1') > 0 then
868 l_file_name := substrb(l_file_name,instrb(l_file_name,g_path_delimiter,'-1'));
869 end if;
870 --
871 if g_debug then
872 hr_utility.trace('file name : '||l_file_name);
873 end if;
874 --
875 open csr_map_name(l_file_name);
876 loop
877 --
878 fetch csr_map_name into l_csr_map_name;
879 exit when csr_map_name%notfound;
880 --
881 l_ass_yea_info_id := null;
882 --
883 if g_debug then
884 hr_utility.set_location(l_proc,20);
885 hr_utility.trace('emp name : '||l_csr_map_name.emp_name);
886 hr_utility.trace('res reg num : '||l_csr_map_name.res_reg_num);
887 hr_utility.trace('emp num : '||l_csr_map_name.emp_num);
888 hr_utility.trace('ass id : '||to_char(l_csr_map_name.assignment_id));
889 --
890 --fnd_file.put_line(fnd_file.log,'emp num : '||l_csr_map_name.emp_num);
891 --fnd_file.put_line(fnd_file.log,'ass id : '||to_char(l_csr_map_name.assignment_id));
892 end if;
893 --
894 /* skip for multiple assignment */
895 if l_file_id is null then
896 --
897 l_file_id := fnd_gfm.file_create(
898 content_type => c_pdf_mime,
899 file_name => g_import_path||g_path_delimiter||l_file_name,
900 program_name => 'PAYKRYPIM',
901 program_tag => to_char(g_business_group_id)||':'||to_char(g_target_yyyy));
902 --
903 l_file_id := fnd_gfm.file_close(l_file_id);
904 --
905 if g_debug then
906 hr_utility.trace('file id : '||to_char(l_file_id));
907 hr_utility.set_location(l_proc,30);
908 end if;
909 --
910 end if;
911 --
912 /* allocate same file to different ass, both prev ass and rehired ass in same year */
913 if l_file_id is not null then
914 --
915 import_kr_ass_yea(l_csr_map_name.assignment_id,g_target_yyyy,l_file_id,c_process_status,l_ass_yea_info_id);
916 --
917 if l_ass_yea_info_id is not null then
918 --
919 g_ass_yea_tbl(g_ass_yea_ind).assignment_yea_info_id := l_ass_yea_info_id;
920 g_ass_yea_tbl(g_ass_yea_ind).file_id := l_file_id;
921 g_ass_yea_tbl(g_ass_yea_ind).file_name := l_file_name;
922 g_ass_yea_tbl(g_ass_yea_ind).assignment_id := l_csr_map_name.assignment_id;
923 g_ass_yea_tbl(g_ass_yea_ind).emp_num := l_csr_map_name.emp_num;
924 g_ass_yea_tbl(g_ass_yea_ind).emp_name := l_csr_map_name.emp_name;
925 g_ass_yea_ind := g_ass_yea_ind + 1;
926 --
927 else
928 --
929 if g_debug then
930 --
931 hr_utility.trace('l_file_id : '||to_char(l_file_id)||' has been cancelled because invalid map.');
932 --
933 end if;
934 --
935 if nvl(g_remove_pdf,'N') = 'Y' then
936 --
937 fnd_gfm.delete_lob(l_file_id);
938 --
939 end if;
940 --
941 l_file_id := null;
942 --
943 end if;
944 --
945 end if;
946 --
947 end loop;
948 close csr_map_name;
949 --
950 --fnd_file.put_line(fnd_file.log,'g_ass_yea_tbl.count : '||to_char(g_ass_yea_tbl.count));
951 if g_debug then
952 --
953 hr_utility.trace('g_ass_yea_tbl.count : '||to_char(g_ass_yea_tbl.count));
954 hr_utility.trace('g_ass_yea_ind : '||to_char(g_ass_yea_ind));
955 hr_utility.trace('l_file_id : '||to_char(l_file_id));
956 hr_utility.set_location(l_proc,1000);
957 --
958 end if;
959 --
960 return l_file_id;
961 end import_file;
962 --
963 -- -------------------------------------------------------------------------
964 -- import_post
965 -- -------------------------------------------------------------------------
966 procedure import_post
967 is
968 --
969 l_proc varchar2(80) := c_package||'import_post';
970 --
971 l_ass_cnt number := 0;
972 --
973 begin
974 --
975 if g_debug then
976 hr_utility.set_location(l_proc,0);
977 end if;
978 --
979 if g_ass_yea_tbl.count > 0 then
980 --
981 -- might update multiple assignment rows for same file id
982 for i in g_ass_yea_tbl.first..g_ass_yea_tbl.last loop
983 --
984 update per_kr_assignment_yea_info
985 set ayi_information16 = 'C',
986 object_version_number = object_version_number + 1
987 where assignment_yea_info_id = g_ass_yea_tbl(i).assignment_yea_info_id;
988 --
989 if nvl(g_load_type,'X') <> 'L' then
990 --
991 if nvl(g_imp_output_hd_show,'N') = 'N' then
992 --
993 fnd_file.put_line(fnd_file.output,'-----------------------------------------------------------------------------');
994 fnd_file.put_line(fnd_file.output,fnd_message.get_string('PAY','PAY_KR_YEA_PDF_IMP_FILE'));
995 fnd_file.put_line(fnd_file.output,'-----------------------------------------------------------------------------');
996 --
997 g_imp_output_hd_show := 'Y';
998 --
999 end if;
1000 --
1001 /* show only one for multiple assignment */
1002 if l_ass_cnt = 0 then
1003 --
1004 fnd_file.put_line(fnd_file.output,g_import_path||g_path_delimiter||g_ass_yea_tbl(i).file_name);
1005 --
1006 end if;
1007 --
1008 end if;
1009 --
1010 l_ass_cnt := l_ass_cnt + 1;
1011 --
1012 end loop;
1013 --
1014 end if;
1015 --
1016 if g_file_ind > g_chunk * g_chunk_cnt then
1017 --
1018 commit;
1019 g_chunk_cnt := g_chunk_cnt + 1;
1020 --
1021 end if;
1022 --
1023 g_file_ind := g_file_ind + 1;
1024 --
1025 if g_debug then
1026 hr_utility.trace('l_ass_cnt : '||to_char(l_ass_cnt));
1027 hr_utility.set_location(l_proc,1000);
1028 end if;
1029 --
1030 end import_post;
1031 --
1032 -- -------------------------------------------------------------------------
1033 -- import_error
1034 -- -------------------------------------------------------------------------
1035 procedure import_error
1036 is
1037 --
1038 l_proc varchar2(80) := c_package||'import_error';
1039 --
1040 begin
1041 --
1042 if g_debug then
1043 hr_utility.set_location(l_proc,0);
1044 end if;
1045 --
1046 if g_ass_yea_tbl.count > 0 then
1047 --
1048 -- might update multiple assignment rows for same file id
1049 for i in g_ass_yea_tbl.first..g_ass_yea_tbl.last loop
1050 --
1051 update per_kr_assignment_yea_info
1052 set ayi_information14 = null,
1053 ayi_information15 = null,
1054 ayi_information16 = null,
1055 object_version_number = object_version_number + 1
1056 where assignment_yea_info_id = g_ass_yea_tbl(i).assignment_yea_info_id;
1057 --
1058 if nvl(g_remove_pdf,'N') = 'Y' then
1059 --
1060 fnd_gfm.delete_lob(g_ass_yea_tbl(i).file_id);
1061 --
1062 end if;
1063 --
1064 end loop;
1065 --
1066 end if;
1067 --
1068 if g_debug then
1069 hr_utility.set_location(l_proc,1000);
1070 end if;
1071 --
1072 end import_error;
1073 --
1074 -- -------------------------------------------------------------------------
1075 -- get_pdf_blob
1076 -- -------------------------------------------------------------------------
1077 -- called from conc
1078 procedure get_pdf_blob(
1079 p_emp_num out nocopy varchar2,
1080 p_emp_name out nocopy varchar2,
1081 p_pdf_pwd out nocopy varchar2,
1082 p_blob out nocopy blob)
1083 is
1084 --
1085 l_proc varchar2(80) := c_package||'get_pdf_blob';
1086 --
1087 begin
1088 --
1089 if g_debug then
1090 hr_utility.set_location(l_proc,0);
1091 end if;
1092 --
1093 -- blob will be null if g_pdf_ind is null (reached end)
1094 if g_pdf_ind is not null then
1095 --
1096 if nvl(g_pdf_tbl(g_pdf_ind).exclude,'N') <> 'Y' then
1097 --
1098 p_emp_num := g_pdf_tbl(g_pdf_ind).emp_num;
1099 p_emp_name := g_pdf_tbl(g_pdf_ind).emp_name;
1100 p_pdf_pwd := substrb(g_pdf_tbl(g_pdf_ind).ni_num,-7);
1101 p_blob := g_pdf_tbl(g_pdf_ind).pdf_file;
1102 --
1103 --fnd_file.put_line(fnd_file.log,'come get_pdf_blob : '||to_char(g_pdf_tbl(g_pdf_ind).assignment_id)||','||g_pdf_tbl(g_pdf_ind).emp_num);
1104 if g_debug then
1105 hr_utility.trace('g_pdf_tbl('||to_char(g_pdf_ind)||').assignment_id : '||to_char(g_pdf_tbl(g_pdf_ind).assignment_id));
1106 hr_utility.trace('g_pdf_tbl('||to_char(g_pdf_ind)||').ni_num : '||g_pdf_tbl(g_pdf_ind).ni_num);
1107 hr_utility.trace('g_pdf_tbl('||to_char(g_pdf_ind)||').emp_num : '||g_pdf_tbl(g_pdf_ind).emp_num);
1108 hr_utility.trace('g_pdf_tbl('||to_char(g_pdf_ind)||').emp_name : '||g_pdf_tbl(g_pdf_ind).emp_name);
1109 end if;
1110 --
1111 end if;
1112 --
1113 end if;
1114 --
1115 if g_debug then
1116 hr_utility.set_location(l_proc,1000);
1117 end if;
1118 --
1119 end get_pdf_blob;
1120 --
1121 -- -------------------------------------------------------------------------
1122 -- get_pdf_blob_ss
1123 -- -------------------------------------------------------------------------
1124 -- called from ss
1125 procedure get_pdf_blob_ss(
1126 p_assignment_yea_info_id in number,
1127 p_business_group_id in number,
1128 p_target_year in number,
1129 p_business_place_id in number,
1130 p_force_upload in varchar2,
1131 p_nts_certs_path out nocopy varchar2,
1132 p_emp_num out nocopy varchar2,
1133 p_emp_name out nocopy varchar2,
1134 p_pdf_pwd out nocopy varchar2,
1135 p_blob out nocopy blob)
1136 is
1137 --
1138 l_proc varchar2(80) := c_package||'get_pdf_blob_ss';
1139 l_emp_num varchar2(30);
1140 l_emp_name varchar2(300);
1141 --
1142 begin
1143 --
1144 if g_debug then
1145 hr_utility.set_location(l_proc,0);
1146 hr_utility.trace('p_assignment_yea_info_id: '||p_assignment_yea_info_id);
1147 hr_utility.trace('p_force_upload: '||p_force_upload);
1148
1149 end if;
1150 --
1151 g_ss_call := 'Y';
1152 --
1153 upload_init(
1154 p_assignment_yea_info_id => p_assignment_yea_info_id,
1155 p_business_group_id => p_business_group_id,
1156 p_target_year => p_target_year,
1157 p_business_place_id => p_business_place_id,
1158 p_force_upload => p_force_upload,
1159 p_nts_certs_path => p_nts_certs_path);
1160 --
1161 get_pdf_blob(
1162 p_emp_num => p_emp_num,
1163 p_emp_name => p_emp_name,
1164 p_pdf_pwd => p_pdf_pwd,
1165 p_blob => p_blob);
1166 --
1167 g_ss_call := null;
1168 --
1169 if g_debug then
1170 hr_utility.trace('p_emp_num: '||p_emp_num);
1171 hr_utility.trace('p_emp_name: '||p_emp_name);
1172 hr_utility.trace('p_pdf_pwd: '||p_pdf_pwd);
1173 hr_utility.trace('p_nts_certs_path : '||p_pdf_pwd);
1174 hr_utility.set_location(l_proc,1000);
1175 end if;
1176 --
1177 end get_pdf_blob_ss;
1178 --
1179 -- -------------------------------------------------------------------------
1180 -- load_map_file
1181 -- -------------------------------------------------------------------------
1182 procedure load_map_file(
1183 p_file_name in varchar2,
1184 p_file_map out nocopy varchar2,
1185 p_emp_num out nocopy varchar2,
1186 p_ni_num out nocopy varchar2,
1187 p_emp_name out nocopy varchar2,
1188 p_pdf_pwd out nocopy varchar2)
1189 is
1190 --
1191 l_proc varchar2(80) := c_package||'load_map_file';
1192 --
1193 l_file_name fnd_lobs.file_name%type;
1194 --
1195 l_csr_map_name csr_map_name%rowtype;
1196 --
1197 begin
1198 --
1199 if g_debug then
1200 hr_utility.set_location(l_proc,10);
1201 end if;
1202 --
1203 l_file_name := p_file_name;
1204 if instrb(p_file_name,g_path_delimiter,'-1') > 0 then
1205 l_file_name := substrb(l_file_name,instrb(l_file_name,g_path_delimiter,'-1'));
1206 end if;
1207 --
1208 if g_debug then
1209 hr_utility.trace('file name : '||l_file_name);
1210 end if;
1211 --
1212 open csr_map_name(l_file_name);
1213 loop
1214 --
1215 fetch csr_map_name into l_csr_map_name;
1216 exit when csr_map_name%notfound;
1217 --
1218 if g_debug then
1219 hr_utility.set_location(l_proc,20);
1220 hr_utility.trace('emp name : '||l_csr_map_name.emp_name);
1221 hr_utility.trace('ni num : '||l_csr_map_name.ni_num);
1222 hr_utility.trace('emp num : '||l_csr_map_name.emp_num);
1223 hr_utility.trace('ass id : '||to_char(l_csr_map_name.assignment_id));
1224 end if;
1225 --
1226 /* skip for multiple assignment */
1227 if p_file_map is null then
1228 --
1229 p_file_map := 'Y';
1230 --
1231 p_emp_num := l_csr_map_name.emp_num;
1232 p_ni_num := l_csr_map_name.ni_num;
1233 p_emp_name := l_csr_map_name.emp_name;
1234 p_pdf_pwd := substrb(l_csr_map_name.ni_num,-7);
1235 --
1236 end if;
1237 --
1238 end loop;
1239 close csr_map_name;
1240 --
1241 if nvl(p_file_map,'N') <> 'Y' then
1242 --
1243 p_file_map := 'N';
1244 --
1245 end if;
1246 --
1247 if g_debug then
1248 --
1249 hr_utility.trace('p_file_map : '||p_file_map);
1250 hr_utility.trace('p_emp_num : '||p_emp_num);
1251 hr_utility.trace('p_ni_num : '||p_ni_num);
1252 hr_utility.trace('p_emp_name : '||p_emp_name);
1253 hr_utility.trace('p_pdf_pwd : '||p_pdf_pwd);
1254 hr_utility.set_location(l_proc,1000);
1255 --
1256 end if;
1257 --
1258 end load_map_file;
1259 --
1260 -- -------------------------------------------------------------------------
1261 -- cnv_ni
1262 -- -------------------------------------------------------------------------
1263 function cnv_ni(
1264 p_text in varchar2)
1265 return varchar2
1266 is
1267 begin
1268 --
1269 return replace(p_text,'-','');
1270 --
1271 end cnv_ni;
1272 --
1273 -- -------------------------------------------------------------------------
1274 -- load_validate
1275 -- -------------------------------------------------------------------------
1276 function load_validate(
1277 p_emp_num in varchar2,
1278 p_ni_num in varchar2,
1279 p_emp_name in varchar2,
1280 p_xml in clob)
1281 return number
1282 is
1283 --
1284 l_proc varchar2(80) := c_package||'load_validate';
1285 --
1286 xml xmltype;
1287 xml_doc dbms_xmldom.domdocument;
1288 --
1289 doc_nodelist dbms_xmldom.domnodelist;
1290 doc_node dbms_xmldom.domnode;
1291 year_nodelist dbms_xmldom.domnodelist;
1292 year_node dbms_xmldom.domnode;
1293 --
1294 l_doc_cnt number;
1295 l_year_cnt number;
1296 --
1297 l_year varchar2(4);
1298 --
1299 form_nodelist dbms_xmldom.domnodelist;
1300 form_node dbms_xmldom.domnode;
1301 man_nodelist dbms_xmldom.domnodelist;
1302 man_node dbms_xmldom.domnode;
1303 --
1304 l_form_cnt number;
1305 l_man_cnt number;
1306 --
1307 l_ni_num varchar2(30);
1308 l_emp_name varchar2(300);
1309 --
1310 l_ora_code number := 0; /* success */
1311 --
1312 begin
1313 --
1314 if g_debug then
1315 hr_utility.set_location(l_proc,0);
1316 end if;
1317 --
1318 if nvl(g_skip_validate,'N') = 'N' then
1319 --
1320 xml := xmltype.createxml(p_xml);
1321 xml_doc := dbms_xmldom.newdomdocument(xml);
1322 --
1323 doc_nodelist := dbms_xmldom.getelementsbytagname(xml_doc,'doc');
1324 l_doc_cnt := dbms_xmldom.getlength(doc_nodelist);
1325 --
1326 -- validation year
1327 -- looks isnull have bug in 9i so need cnt chk
1328 if not dbms_xmldom.isnull(doc_nodelist)
1329 and l_doc_cnt > 0 then
1330 --
1331 doc_node := dbms_xmldom.item(doc_nodelist,0);
1332 year_nodelist := dbms_xmldom.getelementsbytagname(dbms_xmldom.makeelement(doc_node),'att_year');
1333 l_year_cnt := dbms_xmldom.getlength(year_nodelist);
1334 --
1335 if not dbms_xmldom.isnull(year_nodelist)
1336 and l_year_cnt > 0 then
1337 --
1338 year_node := dbms_xmldom.item(year_nodelist,0);
1339 l_year := dbms_xmldom.getnodevalue(dbms_xmldom.getfirstchild(year_node));
1340 --
1341 if l_year <> to_char(g_target_yyyy) then
1342 --
1343 l_ora_code := 202; /* Invalid Year */
1344 --
1345 if g_debug then
1346 hr_utility.trace('l_year : '||l_year||' <> g_target_year : '||to_char(g_target_yyyy));
1347 end if;
1348 --
1349 end if;
1350 --
1351 else
1352 --
1353 l_ora_code := 201; /* Invalid Data */
1354 --
1355 end if;
1356 --
1357 else
1358 --
1359 l_ora_code := 201; /* Invalid Data */
1360 --
1361 end if;
1362 --
1363 if l_ora_code = 0 then
1364 --
1365 form_nodelist := dbms_xmldom.getelementsbytagname(xml_doc,'form');
1366 l_form_cnt := dbms_xmldom.getlength(form_nodelist);
1367 --
1368 if not dbms_xmldom.isnull(form_nodelist)
1369 and l_form_cnt > 0 then
1370 --
1371 -- check only first node only for performance reason
1372 form_node := dbms_xmldom.item(form_nodelist,0);
1373 --
1374 man_nodelist := dbms_xmldom.getelementsbytagname(dbms_xmldom.makeelement(form_node),'man');
1375 l_man_cnt := dbms_xmldom.getlength(man_nodelist);
1376 --
1377 if not dbms_xmldom.isnull(man_nodelist)
1378 and l_man_cnt > 0 then
1379 --
1380 -- need to check by finding employee info
1381 <<man_loop>>
1382 for l_man_ind in 0..l_man_cnt - 1 loop
1383 --
1384 man_node := dbms_xmldom.item(man_nodelist,l_man_ind);
1385 --
1386 if nvl(dbms_xmldom.getattribute(dbms_xmldom.makeelement(man_node),'resid'),'X') = cnv_ni(p_ni_num) then
1387 --
1388 l_ni_num := dbms_xmldom.getattribute(dbms_xmldom.makeelement(man_node),'resid');
1389 l_emp_name := dbms_xmldom.getattribute(dbms_xmldom.makeelement(man_node),'name');
1390 --
1391 exit man_loop;
1392 --
1393 end if;
1394 --
1395 end loop man_loop;
1396 --
1397 if nvl(l_ni_num,'X') <> cnv_ni(p_ni_num) then
1398 --
1399 l_ora_code := 203; /* Incorrect NI */
1400 --
1401 if g_debug then
1402 hr_utility.trace('l_ni_num : '||l_ni_num||' <> p_ni_num : '||cnv_ni(p_ni_num));
1403 end if;
1404 --
1405 end if;
1406 --
1407 end if;
1408 --
1409 if l_ora_code = 0 then
1410 --
1411 if nvl(l_emp_name,'X') <> p_emp_name then
1412 --
1413 l_ora_code := 204; /* Incorrect Emp Name */
1414 --
1415 if g_debug then
1416 hr_utility.trace('l_emp_name : '||l_emp_name||' <> p_emp_name : '||p_emp_name);
1417 end if;
1418 --
1419 end if;
1420 --
1421 end if;
1422 --
1423 else
1424 --
1425 l_ora_code := 201;
1426 --
1427 end if;
1428 --
1429 end if;
1430 --
1431 end if;
1432 --
1433 if g_debug then
1434 hr_utility.trace('l_ora_code : '||to_char(l_ora_code));
1435 hr_utility.set_location(l_proc,1000);
1436 end if;
1437 --
1438 return l_ora_code;
1439 end load_validate;
1440 --
1441 -- -------------------------------------------------------------------------
1442 -- upload_validate
1443 -- -------------------------------------------------------------------------
1444 function upload_validate(
1445 p_xml in clob)
1446 return number
1447 is
1448 --
1449 l_proc varchar2(80) := c_package||'upload_validate';
1450 --
1451 l_ora_code number := 0; /* success */
1452 --
1453 begin
1454 --
1455 if g_debug then
1456 hr_utility.set_location(l_proc,0);
1457 end if;
1458 --
1459 l_ora_code := load_validate(
1460 p_emp_num => g_pdf_tbl(g_pdf_ind).emp_num,
1461 p_ni_num => g_pdf_tbl(g_pdf_ind).ni_num,
1462 p_emp_name => g_pdf_tbl(g_pdf_ind).emp_name,
1463 p_xml => p_xml);
1464 --
1465 if g_debug then
1466 hr_utility.trace('l_ora_code : '||to_char(l_ora_code));
1467 hr_utility.set_location(l_proc,1000);
1468 end if;
1469 --
1470 return l_ora_code;
1471 end upload_validate;
1472 --
1473 -- -------------------------------------------------------------------------
1474 -- get_item_values_in_form
1475 -- -------------------------------------------------------------------------
1476 function get_item_values_in_form(
1477 p_form_node in dbms_xmldom.domnode,
1478 p_form_type in varchar2,
1479 p_data_type in varchar2,
1480 p_item_name in varchar2)
1481 return t_char_tbl
1482 is
1483 --
1484 l_proc varchar2(80) := c_package||'get_item_values_in_form';
1485 --
1486 man_nodelist dbms_xmldom.domnodelist;
1487 man_node dbms_xmldom.domnode;
1488 data_nodelist dbms_xmldom.domnodelist;
1489 data_node dbms_xmldom.domnode;
1490 item_nodelist dbms_xmldom.domnodelist;
1491 item_node dbms_xmldom.domnode;
1492 --
1493 l_man_cnt number;
1494 l_data_cnt number;
1495 l_item_cnt number;
1496 --
1497 l_value_ind number := 0;
1498 l_value_tbl t_char_tbl;
1499 --
1500 begin
1501 --
1502 if g_debug then
1503 hr_utility.set_location(l_proc,0);
1504 end if;
1505 --
1506 if dbms_xmldom.getattribute(dbms_xmldom.makeelement(p_form_node),'form_cd') = p_form_type then
1507 --
1508 man_nodelist := dbms_xmldom.getelementsbytagname(dbms_xmldom.makeelement(p_form_node),'man');
1509 l_man_cnt := dbms_xmldom.getlength(man_nodelist);
1510 --
1511 if not dbms_xmldom.isnull(man_nodelist)
1512 and l_man_cnt > 0 then
1513 --
1514 for l_man_ind in 0..l_man_cnt - 1 loop
1515 --
1516 man_node := dbms_xmldom.item(man_nodelist,l_man_ind);
1517 --
1518 data_nodelist := dbms_xmldom.getelementsbytagname(dbms_xmldom.makeelement(man_node),'data');
1519 l_data_cnt := dbms_xmldom.getlength(data_nodelist);
1520 --
1521 if not dbms_xmldom.isnull(data_nodelist)
1522 and l_data_cnt > 0 then
1523 --
1524 for l_data_ind in 0..l_data_cnt - 1 loop
1525 --
1526 data_node := dbms_xmldom.item(data_nodelist,l_data_ind);
1527 --
1528 if dbms_xmldom.getattribute(dbms_xmldom.makeelement(data_node),'dat_cd') = p_data_type then
1529 --
1530 item_nodelist := dbms_xmldom.getelementsbytagname(dbms_xmldom.makeelement(data_node),p_item_name);
1531 l_item_cnt := dbms_xmldom.getlength(item_nodelist);
1532 --
1533 if not dbms_xmldom.isnull(item_nodelist)
1534 and l_item_cnt > 0 then
1535 --
1536 item_node := dbms_xmldom.item(item_nodelist,0);
1537 --
1538 l_value_tbl(l_value_ind) := dbms_xmldom.getnodevalue(dbms_xmldom.getfirstchild(item_node));
1539 l_value_ind := l_value_ind + 1;
1540 --
1541 end if;
1542 --
1543 end if;
1544 --
1545 end loop;
1546 --
1547 end if;
1548 --
1549 end loop;
1550 --
1551 end if;
1552 --
1553 end if;
1554 --
1555 if g_debug then
1556 hr_utility.trace('l_man_cnt : l_data_cnt : l_item_cnt : '||to_char(l_man_cnt)||' : '||to_char(l_data_cnt)||' : '||to_char(l_item_cnt));
1557 hr_utility.trace('l_value_ind : l_value_tbl.count : '||to_char(l_value_ind)||' : '||to_char(l_value_tbl.count));
1558 hr_utility.set_location(l_proc,1000);
1559 end if;
1560 --
1561 return l_value_tbl;
1562 --
1563 end get_item_values_in_form;
1564 --
1565 -- -------------------------------------------------------------------------
1566 -- get_item_values_in_form
1567 -- -------------------------------------------------------------------------
1568 function get_item_values_in_form(
1569 p_form_node in dbms_xmldom.domnode,
1570 p_form_type in varchar2,
1571 p_man_key in varchar2,
1572 p_data_type in varchar2,
1573 p_item_name in varchar2)
1574 return t_val_by_key_tbl
1575 is
1576 --
1577 l_proc varchar2(80) := c_package||'get_item_values_in_form';
1578 --
1579 man_nodelist dbms_xmldom.domnodelist;
1580 man_node dbms_xmldom.domnode;
1581 data_nodelist dbms_xmldom.domnodelist;
1582 data_node dbms_xmldom.domnode;
1583 item_nodelist dbms_xmldom.domnodelist;
1584 item_node dbms_xmldom.domnode;
1585 --
1586 l_man_key per_kr_assignment_yea_info.ayi_information1%type;
1587 --
1588 l_man_cnt number;
1589 l_data_cnt number;
1590 l_item_cnt number;
1591 --
1592 l_value_ind number := 0;
1593 l_values_tbl t_val_by_key_tbl;
1594 --
1595 begin
1596 --
1597 if g_debug then
1598 hr_utility.set_location(l_proc,0);
1599 end if;
1600 --
1601 if dbms_xmldom.getattribute(dbms_xmldom.makeelement(p_form_node),'form_cd') = p_form_type then
1602 --
1603 man_nodelist := dbms_xmldom.getelementsbytagname(dbms_xmldom.makeelement(p_form_node),'man');
1604 l_man_cnt := dbms_xmldom.getlength(man_nodelist);
1605 --
1606 if not dbms_xmldom.isnull(man_nodelist)
1607 and l_man_cnt > 0 then
1608 --
1609 for l_man_ind in 0..l_man_cnt - 1 loop
1610 --
1611 man_node := dbms_xmldom.item(man_nodelist,l_man_ind);
1612 --
1613 l_man_key := dbms_xmldom.getattribute(dbms_xmldom.makeelement(man_node),p_man_key);
1614 --
1615 data_nodelist := dbms_xmldom.getelementsbytagname(dbms_xmldom.makeelement(man_node),'data');
1616 l_data_cnt := dbms_xmldom.getlength(data_nodelist);
1617 --
1618 if not dbms_xmldom.isnull(data_nodelist)
1619 and l_data_cnt > 0 then
1620 --
1621 for l_data_ind in 0..l_data_cnt - 1 loop
1622 --
1623 data_node := dbms_xmldom.item(data_nodelist,l_data_ind);
1624 --
1625 if dbms_xmldom.getattribute(dbms_xmldom.makeelement(data_node),'dat_cd') = p_data_type then
1626 --
1627 item_nodelist := dbms_xmldom.getelementsbytagname(dbms_xmldom.makeelement(data_node),p_item_name);
1628 l_item_cnt := dbms_xmldom.getlength(item_nodelist);
1629 --
1630 if not dbms_xmldom.isnull(item_nodelist)
1631 and l_item_cnt > 0 then
1632 --
1633 item_node := dbms_xmldom.item(item_nodelist,0);
1634 --
1635 l_values_tbl(l_value_ind).key := l_man_key;
1636 l_values_tbl(l_value_ind).val := dbms_xmldom.getnodevalue(dbms_xmldom.getfirstchild(item_node));
1637 l_value_ind := l_value_ind + 1;
1638 --
1639 end if;
1640 --
1641 end if;
1642 --
1643 end loop;
1644 --
1645 end if;
1646 --
1647 end loop;
1648 --
1649 end if;
1650 --
1651 end if;
1652 --
1653 if g_debug then
1654 hr_utility.trace('l_man_cnt : l_data_cnt : l_item_cnt : '||to_char(l_man_cnt)||' : '||to_char(l_data_cnt)||' : '||to_char(l_item_cnt));
1655 hr_utility.trace('l_value_ind : l_values_tbl.count : '||to_char(l_value_ind)||' : '||to_char(l_values_tbl.count));
1656 hr_utility.set_location(l_proc,1000);
1657 end if;
1658 --
1659 return l_values_tbl;
1660 --
1661 end get_item_values_in_form;
1662 --
1663 -- -------------------------------------------------------------------------
1664 -- get_item_values_in_form
1665 -- -------------------------------------------------------------------------
1666 function get_item_values_in_form(
1667 p_form_node in dbms_xmldom.domnode,
1668 p_form_type in varchar2,
1669 p_data_type in varchar2,
1670 p_item_key in varchar2,
1671 p_item_name in varchar2)
1672 return t_val_by_key_tbl
1673 is
1674 --
1675 l_proc varchar2(80) := c_package||'get_item_values_in_form';
1676 --
1677 man_nodelist dbms_xmldom.domnodelist;
1678 man_node dbms_xmldom.domnode;
1679 data_nodelist dbms_xmldom.domnodelist;
1680 data_node dbms_xmldom.domnode;
1681 item_key_nodelist dbms_xmldom.domnodelist;
1682 item_key_node dbms_xmldom.domnode;
1683 item_nodelist dbms_xmldom.domnodelist;
1684 item_node dbms_xmldom.domnode;
1685 --
1686 l_item_key per_kr_assignment_yea_info.ayi_information1%type;
1687 --
1688 l_man_cnt number;
1689 l_data_cnt number;
1690 l_item_key_cnt number;
1691 l_item_cnt number;
1692 --
1693 l_value_ind number := 0;
1694 l_values_tbl t_val_by_key_tbl;
1695 --
1696 begin
1697 --
1698 if g_debug then
1699 hr_utility.set_location(l_proc,0);
1700 end if;
1701 --
1702 if dbms_xmldom.getattribute(dbms_xmldom.makeelement(p_form_node),'form_cd') = p_form_type then
1703 --
1704 man_nodelist := dbms_xmldom.getelementsbytagname(dbms_xmldom.makeelement(p_form_node),'man');
1705 l_man_cnt := dbms_xmldom.getlength(man_nodelist);
1706 --
1707 if not dbms_xmldom.isnull(man_nodelist)
1708 and l_man_cnt > 0 then
1709 --
1710 for l_man_ind in 0..l_man_cnt - 1 loop
1711 --
1712 man_node := dbms_xmldom.item(man_nodelist,l_man_ind);
1713 --
1714 data_nodelist := dbms_xmldom.getelementsbytagname(dbms_xmldom.makeelement(man_node),'data');
1715 l_data_cnt := dbms_xmldom.getlength(data_nodelist);
1716 --
1717 if not dbms_xmldom.isnull(data_nodelist)
1718 and l_data_cnt > 0 then
1719 --
1720 for l_data_ind in 0..l_data_cnt - 1 loop
1721 --
1722 data_node := dbms_xmldom.item(data_nodelist,l_data_ind);
1723 --
1724 if dbms_xmldom.getattribute(dbms_xmldom.makeelement(data_node),'dat_cd') = p_data_type then
1725 --
1726 l_item_key := null;
1727 --
1728 item_key_nodelist := dbms_xmldom.getelementsbytagname(dbms_xmldom.makeelement(data_node),p_item_key);
1729 l_item_key_cnt := dbms_xmldom.getlength(item_key_nodelist);
1730 --
1731 if not dbms_xmldom.isnull(item_key_nodelist)
1732 and l_item_key_cnt > 0 then
1733 --
1734 item_key_node := dbms_xmldom.item(item_key_nodelist,0);
1735 --
1736 l_item_key := dbms_xmldom.getnodevalue(dbms_xmldom.getfirstchild(item_key_node));
1737 --
1738 end if;
1739 --
1740 item_nodelist := dbms_xmldom.getelementsbytagname(dbms_xmldom.makeelement(data_node),p_item_name);
1741 l_item_cnt := dbms_xmldom.getlength(item_nodelist);
1742 --
1743 if not dbms_xmldom.isnull(item_nodelist)
1744 and l_item_cnt > 0 then
1745 --
1746 item_node := dbms_xmldom.item(item_nodelist,0);
1747 --
1748 l_values_tbl(l_value_ind).key := l_item_key;
1749 l_values_tbl(l_value_ind).val := dbms_xmldom.getnodevalue(dbms_xmldom.getfirstchild(item_node));
1750 l_value_ind := l_value_ind + 1;
1751 --
1752 end if;
1753 --
1754 end if;
1755 --
1756 end loop;
1757 --
1758 end if;
1759 --
1760 end loop;
1761 --
1762 end if;
1763 --
1764 end if;
1765 --
1766 if g_debug then
1767 hr_utility.trace('l_man_cnt : l_data_cnt : l_item_key_cnt : l_item_cnt : '||to_char(l_man_cnt)||' : '||to_char(l_data_cnt)||' : '||to_char(l_item_key_cnt)||' : '||to_char(l_item_cnt));
1768 hr_utility.trace('l_value_ind : l_values_tbl.count : '||to_char(l_value_ind)||' : '||to_char(l_values_tbl.count));
1769 hr_utility.set_location(l_proc,1000);
1770 end if;
1771 --
1772 return l_values_tbl;
1773 --
1774 end get_item_values_in_form;
1775 --
1776 -- -------------------------------------------------------------------------
1777 -- get_donate_values
1778 -- -------------------------------------------------------------------------
1779 function get_donate_values(
1780 p_form_node in dbms_xmldom.domnode)
1781 return t_don_tbl
1782 is
1783 --
1784 l_proc varchar2(80) := c_package||'get_donate_values';
1785 --
1786 man_nodelist dbms_xmldom.domnodelist;
1787 man_node dbms_xmldom.domnode;
1788 data_nodelist dbms_xmldom.domnodelist;
1789 data_node dbms_xmldom.domnode;
1790 sum_nodelist dbms_xmldom.domnodelist;
1791 sum_node dbms_xmldom.domnode;
1792 amt_nodelist dbms_xmldom.domnodelist;
1793 amt_node dbms_xmldom.domnode;
1794 --
1795 l_man_cnt number;
1796 l_data_cnt number;
1797 l_sum_cnt number;
1798 l_amt_cnt number;
1799 --
1800 l_ni_num per_kr_assignment_yea_info.ayi_information1%type;
1801 l_don_name per_kr_assignment_yea_info.ayi_information1%type;
1802 l_don_code per_kr_assignment_yea_info.ayi_information1%type;
1803 l_sum per_kr_assignment_yea_info.ayi_information1%type;
1804 l_amt per_kr_assignment_yea_info.ayi_information1%type;
1805 l_don_date per_kr_assignment_yea_info.ayi_information1%type;
1806 l_rec_name per_kr_assignment_yea_info.ayi_information1%type;
1807 l_rec_bg_num per_kr_assignment_yea_info.ayi_information1%type;
1808 --
1809 l_value_ind number := 0;
1810 l_values_tbl t_don_tbl;
1811 --
1812 begin
1813 --
1814 if g_debug then
1815 hr_utility.set_location(l_proc,0);
1816 end if;
1817 --
1818 if dbms_xmldom.getattribute(dbms_xmldom.makeelement(p_form_node),'form_cd') = 'L101Y' then
1819 --
1820 man_nodelist := dbms_xmldom.getelementsbytagname(dbms_xmldom.makeelement(p_form_node),'man');
1821 l_man_cnt := dbms_xmldom.getlength(man_nodelist);
1822 --
1823 if not dbms_xmldom.isnull(man_nodelist)
1824 and l_man_cnt > 0 then
1825 --
1826 for l_man_ind in 0..l_man_cnt - 1 loop
1827 --
1828 man_node := dbms_xmldom.item(man_nodelist,l_man_ind);
1829 l_ni_num := dbms_xmldom.getattribute(dbms_xmldom.makeelement(man_node),'resid');
1830 l_don_name := dbms_xmldom.getattribute(dbms_xmldom.makeelement(man_node),'name');
1831 --
1832 data_nodelist := dbms_xmldom.getelementsbytagname(dbms_xmldom.makeelement(man_node),'data');
1833 l_data_cnt := dbms_xmldom.getlength(data_nodelist);
1834 --
1835 if not dbms_xmldom.isnull(data_nodelist)
1836 and l_data_cnt > 0 then
1837 --
1838 for l_data_ind in 0..l_data_cnt - 1 loop
1839 --
1840 data_node := dbms_xmldom.item(data_nodelist,l_data_ind);
1841 --
1842 if dbms_xmldom.getattribute(dbms_xmldom.makeelement(data_node),'dat_cd') = 'L01' then
1843 --
1844 l_don_code := dbms_xmldom.getattribute(dbms_xmldom.makeelement(data_node),'donation_cd');
1845 l_rec_name := dbms_xmldom.getattribute(dbms_xmldom.makeelement(data_node),'trade_nm');
1846 l_rec_bg_num := dbms_xmldom.getattribute(dbms_xmldom.makeelement(data_node),'busnid');
1847 l_sum := null;
1848 --
1849 sum_nodelist := dbms_xmldom.getelementsbytagname(dbms_xmldom.makeelement(data_node),'sum');
1850 l_sum_cnt := dbms_xmldom.getlength(sum_nodelist);
1851 --
1852 if not dbms_xmldom.isnull(sum_nodelist)
1853 and l_sum_cnt > 0 then
1854 --
1855 for l_sum_ind in 0..l_sum_cnt - 1 loop
1856 --
1857 sum_node := dbms_xmldom.item(sum_nodelist,l_sum_ind);
1858 --
1859 l_sum := dbms_xmldom.getnodevalue(dbms_xmldom.getfirstchild(sum_node));
1860 --
1861 end loop;
1862 --
1863 end if;
1864 --
1865 amt_nodelist := dbms_xmldom.getelementsbytagname(dbms_xmldom.makeelement(data_node),'amt');
1866 l_amt_cnt := dbms_xmldom.getlength(amt_nodelist);
1867 --
1868 if not dbms_xmldom.isnull(amt_nodelist)
1869 and l_amt_cnt > 0 then
1870 --
1871 for l_amt_ind in 0..l_amt_cnt - 1 loop
1872 --
1873 amt_node := dbms_xmldom.item(amt_nodelist,l_amt_ind);
1874 --
1875 IF l_don_code <> '30' THEN
1876 l_values_tbl(l_value_ind).ni_num := l_ni_num;
1877 l_values_tbl(l_value_ind).donator_name := l_don_name;
1878 l_values_tbl(l_value_ind).donation_code := l_don_code;
1879 l_values_tbl(l_value_ind).sum := l_sum;
1880 l_values_tbl(l_value_ind).donated_amount := dbms_xmldom.getnodevalue(dbms_xmldom.getfirstchild(amt_node));
1881 l_values_tbl(l_value_ind).donated_date := dbms_xmldom.getattribute(dbms_xmldom.makeelement(amt_node),'dd');
1882 l_values_tbl(l_value_ind).recipient_name := l_rec_name;
1883 l_values_tbl(l_value_ind).recipient_registration_number := l_rec_bg_num;
1884 l_value_ind := l_value_ind + 1;
1885 END IF;
1886 --
1887 end loop;
1888 --
1889 else
1890 --
1891 IF l_don_code <> '30' THEN
1892 l_values_tbl(l_value_ind).ni_num := l_ni_num;
1893 l_values_tbl(l_value_ind).donator_name := l_don_name;
1894 l_values_tbl(l_value_ind).donation_code := l_don_code;
1895 l_values_tbl(l_value_ind).sum := l_sum;
1896 l_values_tbl(l_value_ind).recipient_name := l_rec_name;
1897 l_values_tbl(l_value_ind).recipient_registration_number := l_rec_bg_num;
1898 l_value_ind := l_value_ind + 1;
1899 END IF;
1900 --
1901 end if;
1902 --
1903 end if;
1904 --
1905 end loop;
1906 --
1907 end if;
1908 --
1909 end loop;
1910 --
1911 end if;
1912 --
1913 end if;
1914 --
1915 if g_debug then
1916 hr_utility.trace('l_man_cnt : l_data_cnt : l_sum_cnt : l_amt_cnt : '||to_char(l_man_cnt)||' : '||to_char(l_data_cnt)||' : '||to_char(l_sum_cnt)||' : '||to_char(l_amt_cnt));
1917 hr_utility.trace('l_value_ind : l_values_tbl.count : '||to_char(l_value_ind)||' : '||to_char(l_values_tbl.count));
1918 hr_utility.set_location(l_proc,1000);
1919 end if;
1920 --
1921 return l_values_tbl;
1922 --
1923 end get_donate_values;
1924 --
1925 -- -------------------------------------------------------------------------
1926 -- get_dep_eduction_values
1927 -- -------------------------------------------------------------------------
1928 function get_dep_eduction_values(
1929 p_form_node in dbms_xmldom.domnode,
1930 p_ni_num in varchar2)
1931 return t_educ_tbl
1932 is
1933 --
1934 l_proc varchar2(80) := c_package||'get_dep_eduction_values';
1935 --
1936 man_nodelist dbms_xmldom.domnodelist;
1937 man_node dbms_xmldom.domnode;
1938 data_nodelist dbms_xmldom.domnodelist;
1939 data_node dbms_xmldom.domnode;
1940 sum_nodelist dbms_xmldom.domnodelist;
1941 sum_node dbms_xmldom.domnode;
1942 --
1943 l_man_cnt number;
1944 l_data_cnt number;
1945 l_sum_cnt number;
1946 --
1947 l_ni_num per_kr_assignment_yea_info.ayi_information1%type;
1948 l_dpnt_name per_kr_assignment_yea_info.ayi_information1%type;
1949 l_exp per_kr_assignment_yea_info.ayi_information1%type;
1950 --
1951 l_value_ind number := 0;
1952 l_values_tbl t_educ_tbl;
1953 l_school_type per_kr_assignment_yea_info.ayi_information1%type;
1954 --
1955 begin
1956 --
1957 if g_debug then
1958 hr_utility.set_location(l_proc,0);
1959 end if;
1960 --
1961 if dbms_xmldom.getattribute(dbms_xmldom.makeelement(p_form_node),'form_cd') = 'C101Y' then
1962 --
1963 man_nodelist := dbms_xmldom.getelementsbytagname(dbms_xmldom.makeelement(p_form_node),'man');
1964 l_man_cnt := dbms_xmldom.getlength(man_nodelist);
1965 --
1966 if not dbms_xmldom.isnull(man_nodelist)
1967 and l_man_cnt > 0 then
1968 --
1969 for l_man_ind in 0..l_man_cnt - 1 loop
1970 --
1971 man_node := dbms_xmldom.item(man_nodelist,l_man_ind);
1972 l_ni_num := dbms_xmldom.getattribute(dbms_xmldom.makeelement(man_node),'resid');
1973 l_dpnt_name := dbms_xmldom.getattribute(dbms_xmldom.makeelement(man_node),'name');
1974 --
1975 -- capture only dependent info
1976 if dbms_xmldom.getattribute(dbms_xmldom.makeelement(man_node),'resid') <> p_ni_num then
1977 --
1978 data_nodelist := dbms_xmldom.getelementsbytagname(dbms_xmldom.makeelement(man_node),'data');
1979 l_data_cnt := dbms_xmldom.getlength(data_nodelist);
1980 --
1981 if not dbms_xmldom.isnull(data_nodelist)
1982 and l_data_cnt > 0 then
1983 --
1984 for l_data_ind in 0..l_data_cnt - 1 loop
1985 --
1986 l_exp := null;
1987 --
1988 data_node := dbms_xmldom.item(data_nodelist,l_data_ind);
1989 --
1990 sum_nodelist := dbms_xmldom.getelementsbytagname(dbms_xmldom.makeelement(data_node),'sum');
1991 l_sum_cnt := dbms_xmldom.getlength(sum_nodelist);
1992 --
1993 if not dbms_xmldom.isnull(sum_nodelist)
1994 and l_sum_cnt > 0 then
1995 --
1996 for l_sum_ind in 0..l_sum_cnt - 1 loop
1997 --
1998 sum_node := dbms_xmldom.item(sum_nodelist,l_sum_ind);
1999 --
2000 l_exp := dbms_xmldom.getnodevalue(dbms_xmldom.getfirstchild(sum_node));
2001 --
2002 end loop;
2003 --
2004 end if;
2005 --
2006 l_school_type := dbms_xmldom.getattribute(dbms_xmldom.makeelement(data_node),'edu_tp');
2007
2008 -- Mapping the school types to the 'D','H','P','U'
2009 if l_school_type IN ('1','8','F','G') THEN
2010 l_school_type := 'P';
2011 elsif l_school_type IN ('2','3','4') THEN
2012 l_school_type := 'H';
2013 elsif l_school_type IN ('5','6','7','C','D','E') THEN
2014 l_school_type := 'U';
2015 elsif l_school_type IN ('H','J','K') THEN
2016 l_school_type := 'D';
2017 end if;
2018
2019 l_values_tbl(l_value_ind).ni_num := l_ni_num;
2020 l_values_tbl(l_value_ind).dpnt_name := l_dpnt_name;
2021 l_values_tbl(l_value_ind).school_type := l_school_type;
2022 l_values_tbl(l_value_ind).nts_other := '1'; /* KR_YEA_DONATION_DETAIL_TYPE */
2023 l_values_tbl(l_value_ind).exp := l_exp;
2024 l_value_ind := l_value_ind + 1;
2025 --
2026 end loop;
2027 --
2028 end if;
2029 --
2030 end if;
2031 --
2032 end loop;
2033 --
2034 end if;
2035 --
2036 end if;
2037 --
2038 if g_debug then
2039 hr_utility.trace('l_man_cnt : l_data_cnt : l_sum_cnt : '||to_char(l_man_cnt)||' : '||to_char(l_data_cnt)||' : '||to_char(l_sum_cnt));
2040 hr_utility.trace('l_value_ind : l_values_tbl.count : '||to_char(l_value_ind)||' : '||to_char(l_values_tbl.count));
2041 hr_utility.set_location(l_proc,1000);
2042 end if;
2043 --
2044 return l_values_tbl;
2045 --
2046 end get_dep_eduction_values;
2047 --
2048 -- -------------------------------------------------------------------------
2049 -- get_saving_values
2050 -- -------------------------------------------------------------------------
2051 function get_saving_values(
2052 p_form_node in dbms_xmldom.domnode,
2053 p_form_type in varchar2,
2054 p_data_type in varchar2,
2055 p_item_type in varchar2 default null,
2056 p_lts_type in varchar2 default null)
2057 return t_saving_tbl
2058 is
2059 --
2060 l_proc varchar2(80) := c_package||'get_saving_values';
2061 --
2062 man_nodelist dbms_xmldom.domnodelist;
2063 man_node dbms_xmldom.domnode;
2064 data_nodelist dbms_xmldom.domnodelist;
2065 data_node dbms_xmldom.domnode;
2066 type_nodelist dbms_xmldom.domnodelist;
2067 type_node dbms_xmldom.domnode;
2068 sum_nodelist dbms_xmldom.domnodelist;
2069 sum_node dbms_xmldom.domnode;
2070 --
2071 l_man_cnt number;
2072 l_data_cnt number;
2073 l_type_cnt number;
2074 l_sum_cnt number;
2075 --
2076 l_type per_kr_assignment_yea_info.ayi_information1%type;
2077 l_sum per_kr_assignment_yea_info.ayi_information1%type;
2078 -- l_sum_y2 per_kr_assignment_yea_info.ayi_information1%type;
2079 l_sum_y3 per_kr_assignment_yea_info.ayi_information1%type;
2080 --
2081 l_value_ind number := 0;
2082 l_values_tbl t_saving_tbl;
2083 --
2084 begin
2085 --
2086 if g_debug then
2087 hr_utility.set_location(l_proc,0);
2088 end if;
2089 --
2090 if dbms_xmldom.getattribute(dbms_xmldom.makeelement(p_form_node),'form_cd') = p_form_type then
2091 --
2092 man_nodelist := dbms_xmldom.getelementsbytagname(dbms_xmldom.makeelement(p_form_node),'man');
2093 l_man_cnt := dbms_xmldom.getlength(man_nodelist);
2094 --
2095 if not dbms_xmldom.isnull(man_nodelist)
2096 and l_man_cnt > 0 then
2097 --
2098 for l_man_ind in 0..l_man_cnt - 1 loop
2099 --
2100 man_node := dbms_xmldom.item(man_nodelist,l_man_ind);
2101 --
2102 data_nodelist := dbms_xmldom.getelementsbytagname(dbms_xmldom.makeelement(man_node),'data');
2103 l_data_cnt := dbms_xmldom.getlength(data_nodelist);
2104 --
2105 if not dbms_xmldom.isnull(data_nodelist)
2106 and l_data_cnt > 0 then
2107 --
2108 for l_data_ind in 0..l_data_cnt - 1 loop
2109 --
2110 data_node := dbms_xmldom.item(data_nodelist,l_data_ind);
2111 --
2112 if dbms_xmldom.getattribute(dbms_xmldom.makeelement(data_node),'dat_cd') = p_data_type then
2113 --
2114 l_type := null;
2115 l_sum := null;
2116 -- l_sum_y2 := null;
2117 l_sum_y3 := null;
2118 --
2119 if p_item_type is not null then
2120 --
2121 type_nodelist := dbms_xmldom.getelementsbytagname(dbms_xmldom.makeelement(data_node),p_item_type);
2122 l_type_cnt := dbms_xmldom.getlength(type_nodelist);
2123 --
2124 if not dbms_xmldom.isnull(type_nodelist)
2125 and l_type_cnt > 0 then
2126 --
2127 for l_type_ind in 0..l_type_cnt - 1 loop
2128 --
2129 type_node := dbms_xmldom.item(type_nodelist,l_type_ind);
2130 --
2131 l_type := dbms_xmldom.getnodevalue(dbms_xmldom.getfirstchild(type_node));
2132 --
2133 end loop;
2134 --
2135 end if;
2136 --
2137 end if;
2138 --
2139 sum_nodelist := dbms_xmldom.getelementsbytagname(dbms_xmldom.makeelement(data_node),'sum');
2140 l_sum_cnt := dbms_xmldom.getlength(sum_nodelist);
2141 --
2142 if not dbms_xmldom.isnull(sum_nodelist)
2143 and l_sum_cnt > 0 then
2144 --
2145 for l_sum_ind in 0..l_sum_cnt - 1 loop
2146 --
2147 sum_node := dbms_xmldom.item(sum_nodelist,l_sum_ind);
2148 --
2149 l_sum := dbms_xmldom.getnodevalue(dbms_xmldom.getfirstchild(sum_node));
2150 --
2151 if nvl(p_lts_type,'N') = 'Y' then
2152 --
2153 -- l_sum_y2 := dbms_xmldom.getattribute(dbms_xmldom.makeelement(sum_node),'sum_y2');
2154 l_sum_y3 := dbms_xmldom.getattribute(dbms_xmldom.makeelement(sum_node),'sum_y3');
2155 --
2156 end if;
2157 --
2158 end loop;
2159 --
2160 end if;
2161 --
2162 l_values_tbl(l_value_ind).type := l_type;
2163 l_values_tbl(l_value_ind).financial_inst := dbms_xmldom.getattribute(dbms_xmldom.makeelement(data_node),'trade_nm');
2164 l_values_tbl(l_value_ind).account_num := dbms_xmldom.getattribute(dbms_xmldom.makeelement(data_node),'acc_no');
2165 l_values_tbl(l_value_ind).contributed_amt := l_sum;
2166 l_values_tbl(l_value_ind).cont_amt_y2 := 0;
2167 l_values_tbl(l_value_ind).cont_amt_y3 := l_sum_y3;
2168 l_value_ind := l_value_ind + 1;
2169 --
2170 end if;
2171 --
2172 end loop;
2173 --
2174 end if;
2175 --
2176 end loop;
2177 --
2178 end if;
2179 --
2180 end if;
2181 --
2182 if g_debug then
2183 hr_utility.trace('l_man_cnt : l_data_cnt : l_type_cnt : l_sum_cnt : '||to_char(l_man_cnt)||' : '||to_char(l_data_cnt)||' : '||to_char(l_type_cnt)||' : '||to_char(l_sum_cnt));
2184 hr_utility.trace('l_value_ind : l_values_tbl.count : '||to_char(l_value_ind)||' : '||to_char(l_values_tbl.count));
2185 hr_utility.set_location(l_proc,1000);
2186 end if;
2187 --
2188 return l_values_tbl;
2189 --
2190 end get_saving_values;
2191 --
2192 -- -------------------------------------------------------------------------
2193 -- get_card_values 2012 Changes
2194 -- -------------------------------------------------------------------------
2195 function get_card_values(
2196 p_form_node in dbms_xmldom.domnode,
2197 p_form_type in varchar2,
2198 p_man_key in varchar2,
2199 p_data_type in varchar2,
2200 p_item_name in varchar2)
2201 return t_cards_tbl
2202 is
2203 --
2204 l_proc varchar2(80) := c_package||'get_item_values_in_form';
2205 --
2206 man_nodelist dbms_xmldom.domnodelist;
2207 man_node dbms_xmldom.domnode;
2208 data_nodelist dbms_xmldom.domnodelist;
2209 data_node dbms_xmldom.domnode;
2210 item_nodelist dbms_xmldom.domnodelist;
2211 item_node dbms_xmldom.domnode;
2212 --
2213 l_man_key per_kr_assignment_yea_info.ayi_information1%type;
2214 --
2215 l_man_cnt number;
2216 l_data_cnt number;
2217 l_item_cnt number;
2218 --
2219 l_value_ind number := 0;
2220 l_values_tbl t_cards_tbl;
2221 --
2222 begin
2223 --
2224 if g_debug then
2225 hr_utility.set_location(l_proc,0);
2226 end if;
2227 --
2228 if dbms_xmldom.getattribute(dbms_xmldom.makeelement(p_form_node),'form_cd') = p_form_type then
2229 --
2230 man_nodelist := dbms_xmldom.getelementsbytagname(dbms_xmldom.makeelement(p_form_node),'man');
2231 l_man_cnt := dbms_xmldom.getlength(man_nodelist);
2232 --
2233 if not dbms_xmldom.isnull(man_nodelist)
2234 and l_man_cnt > 0 then
2235 --
2236 for l_man_ind in 0..l_man_cnt - 1 loop
2237 --
2238 man_node := dbms_xmldom.item(man_nodelist,l_man_ind);
2239 --
2240 l_man_key := dbms_xmldom.getattribute(dbms_xmldom.makeelement(man_node),p_man_key);
2241 --
2242 data_nodelist := dbms_xmldom.getelementsbytagname(dbms_xmldom.makeelement(man_node),'data');
2243 l_data_cnt := dbms_xmldom.getlength(data_nodelist);
2244 --
2245 if not dbms_xmldom.isnull(data_nodelist)
2246 and l_data_cnt > 0 then
2247 --
2248 for l_data_ind in 0..l_data_cnt - 1 loop
2249 --
2250 data_node := dbms_xmldom.item(data_nodelist,l_data_ind);
2251 --
2252 if dbms_xmldom.getattribute(dbms_xmldom.makeelement(data_node),'dat_cd') = p_data_type then
2253 --
2254 item_nodelist := dbms_xmldom.getelementsbytagname(dbms_xmldom.makeelement(data_node),p_item_name);
2255 l_item_cnt := dbms_xmldom.getlength(item_nodelist);
2256 --
2257 if not dbms_xmldom.isnull(item_nodelist)
2258 and l_item_cnt > 0 then
2259 --
2260 item_node := dbms_xmldom.item(item_nodelist,0);
2261 --
2262 l_values_tbl(l_value_ind).key := l_man_key;
2263 l_values_tbl(l_value_ind).val := dbms_xmldom.getnodevalue(dbms_xmldom.getfirstchild(item_node));
2264 l_values_tbl(l_value_ind).use_place_cd := dbms_xmldom.getattribute(dbms_xmldom.makeelement(data_node),'use_place_cd');
2265 l_value_ind := l_value_ind + 1;
2266 --
2267 end if;
2268 --
2269 end if;
2270 --
2271 end loop;
2272 --
2273 end if;
2274 --
2275 end loop;
2276 --
2277 end if;
2278 --
2279 end if;
2280 --
2281 if g_debug then
2282 hr_utility.trace('l_man_cnt : l_data_cnt : l_item_cnt : '||to_char(l_man_cnt)||' : '||to_char(l_data_cnt)||' : '||to_char(l_item_cnt));
2283 hr_utility.trace('l_value_ind : l_values_tbl.count : '||to_char(l_value_ind)||' : '||to_char(l_values_tbl.count));
2284 hr_utility.set_location(l_proc,1000);
2285 end if;
2286 --
2287 return l_values_tbl;
2288 --
2289 end get_card_values;
2290 --
2291 -- -------------------------------------------------------------------------
2292 -- get_uniform_values
2293 -- ------------------------------------------------------------------------
2294 function get_uniform_values(
2295 p_form_node in dbms_xmldom.domnode,
2296 p_form_type in varchar2,
2297 p_man_key in varchar2,
2298 p_data_type in varchar2,
2299 p_item_name in varchar2)
2300 return t_uniform_tbl
2301 is
2302 --
2303 l_proc varchar2(80) := c_package||'get_item_values_in_form';
2304 --
2305 man_nodelist dbms_xmldom.domnodelist;
2306 man_node dbms_xmldom.domnode;
2307 data_nodelist dbms_xmldom.domnodelist;
2308 data_node dbms_xmldom.domnode;
2309 item_nodelist dbms_xmldom.domnodelist;
2310 item_node dbms_xmldom.domnode;
2311 --
2312 l_man_key per_kr_assignment_yea_info.ayi_information1%type;
2313 --
2314 l_man_cnt number;
2315 l_data_cnt number;
2316 l_item_cnt number;
2317 --
2318 l_value_ind number := 0;
2319 l_values_tbl t_uniform_tbl;
2320 --
2321 begin
2322 --
2323 if g_debug then
2324 hr_utility.set_location(l_proc,0);
2325 end if;
2326 --
2327 if dbms_xmldom.getattribute(dbms_xmldom.makeelement(p_form_node),'form_cd') = p_form_type then
2328 --
2329 man_nodelist := dbms_xmldom.getelementsbytagname(dbms_xmldom.makeelement(p_form_node),'man');
2330 l_man_cnt := dbms_xmldom.getlength(man_nodelist);
2331 --
2332 if not dbms_xmldom.isnull(man_nodelist)
2333 and l_man_cnt > 0 then
2334 --
2335 for l_man_ind in 0..l_man_cnt - 1 loop
2336 --
2337 man_node := dbms_xmldom.item(man_nodelist,l_man_ind);
2338 --
2339 l_man_key := dbms_xmldom.getattribute(dbms_xmldom.makeelement(man_node),p_man_key);
2340
2341 data_nodelist := dbms_xmldom.getelementsbytagname(dbms_xmldom.makeelement(man_node),'data');
2342 l_data_cnt := dbms_xmldom.getlength(data_nodelist);
2343 --
2344 if not dbms_xmldom.isnull(data_nodelist)
2345 and l_data_cnt > 0 then
2346 --
2347 for l_data_ind in 0..l_data_cnt - 1 loop
2348 --
2349 data_node := dbms_xmldom.item(data_nodelist,l_data_ind);
2350 --
2351 if dbms_xmldom.getattribute(dbms_xmldom.makeelement(data_node),'dat_cd') = p_data_type then
2352 --
2353 item_nodelist := dbms_xmldom.getelementsbytagname(dbms_xmldom.makeelement(data_node),p_item_name);
2354 l_item_cnt := dbms_xmldom.getlength(item_nodelist);
2355 --
2356 if not dbms_xmldom.isnull(item_nodelist)
2357 and l_item_cnt > 0 then
2358 --
2359 item_node := dbms_xmldom.item(item_nodelist,0);
2360 --
2361 l_values_tbl(l_value_ind).key := l_man_key;
2362 l_values_tbl(l_value_ind).val := dbms_xmldom.getnodevalue(dbms_xmldom.getfirstchild(item_node));
2363 l_values_tbl(l_value_ind).empname := dbms_xmldom.getattribute(dbms_xmldom.makeelement(man_node),'name');
2364 l_value_ind := l_value_ind + 1;
2365 --
2366 end if;
2367 --
2368 end if;
2369 --
2370 end loop;
2371 --
2372 end if;
2373 --
2374 end loop;
2375 --
2376 end if;
2377 --
2378 end if;
2379 --
2380 if g_debug then
2381 hr_utility.trace('l_man_cnt : l_data_cnt : l_item_cnt : '||to_char(l_man_cnt)||' : '||to_char(l_data_cnt)||' : '||to_char(l_item_cnt));
2382 hr_utility.trace('l_value_ind : l_values_tbl.count : '||to_char(l_value_ind)||' : '||to_char(l_values_tbl.count));
2383 hr_utility.set_location(l_proc,1000);
2384 end if;
2385 --
2386 return l_values_tbl;
2387 --
2388 end get_uniform_values;
2389 -- -------------------------------------------------------------------------
2390 -- get_long_term_house_values
2391 -- -------------------------------------------------------------------------
2392 function get_long_term_house_values(
2393 p_form_node in dbms_xmldom.domnode,
2394 p_form_type in varchar2,
2395 p_data_type in varchar2,
2396 p_item_key in varchar2,
2397 p_item_name in varchar2)
2398 return t_lthouse_tbl
2399 is
2400 --
2401 l_proc varchar2(80) := c_package||'get_item_values_in_form';
2402 --
2403 man_nodelist dbms_xmldom.domnodelist;
2404 man_node dbms_xmldom.domnode;
2405 data_nodelist dbms_xmldom.domnodelist;
2406 data_node dbms_xmldom.domnode;
2407 item_key_nodelist dbms_xmldom.domnodelist;
2408 item_key_node dbms_xmldom.domnode;
2409 item_nodelist dbms_xmldom.domnodelist;
2410 item_node dbms_xmldom.domnode;
2411 date_key_node dbms_xmldom.domnode;
2412 date_nodelist dbms_xmldom.domnodelist;
2413
2414 debt_key_node dbms_xmldom.domnode;
2415 debt_nodelist dbms_xmldom.domnodelist;
2416
2417 fixed_key_node dbms_xmldom.domnode;
2418 fixed_nodelist dbms_xmldom.domnodelist;
2419
2420 not_debt_key_node dbms_xmldom.domnode;
2421 not_debt_nodelist dbms_xmldom.domnodelist;
2422
2423 yr_rede_key_node dbms_xmldom.domnode;
2424 yr_rede_amt_nodelst dbms_xmldom.domnodelist;
2425 --
2426 l_item_key per_kr_assignment_yea_info.ayi_information1%type;
2427 l_date_key per_kr_assignment_yea_info.ayi_information1%type;
2428 l_debt_key per_kr_assignment_yea_info.ayi_information1%type;
2429 l_fixed_key per_kr_assignment_yea_info.ayi_information1%type;
2430 l_not_debt_key per_kr_assignment_yea_info.ayi_information1%type;
2431 l_yr_rede_key per_kr_assignment_yea_info.ayi_information1%type;
2432 --
2433 l_man_cnt number;
2434 l_data_cnt number;
2435 l_item_key_cnt number;
2436 l_item_cnt number;
2437 l_date_key_cnt number;
2438 l_debt_key_cnt number;
2439 l_fixed_key_cnt number;
2440 l_not_debt_key_cnt number;
2441 l_yr_amt_key_cnt number;
2442
2443 --
2444 l_value_ind number := 0;
2445 l_values_tbl t_lthouse_tbl;
2446 --
2447 begin
2448 --
2449 if g_debug then
2450 hr_utility.set_location(l_proc,0);
2451 end if;
2452 --
2453 if dbms_xmldom.getattribute(dbms_xmldom.makeelement(p_form_node),'form_cd') = p_form_type then
2454 --
2455 man_nodelist := dbms_xmldom.getelementsbytagname(dbms_xmldom.makeelement(p_form_node),'man');
2456 l_man_cnt := dbms_xmldom.getlength(man_nodelist);
2457 --
2458 if not dbms_xmldom.isnull(man_nodelist)
2459 and l_man_cnt > 0 then
2460 --
2461 for l_man_ind in 0..l_man_cnt - 1 loop
2462 --
2463 man_node := dbms_xmldom.item(man_nodelist,l_man_ind);
2464 --
2465 data_nodelist := dbms_xmldom.getelementsbytagname(dbms_xmldom.makeelement(man_node),'data');
2466 l_data_cnt := dbms_xmldom.getlength(data_nodelist);
2467 --
2468 if not dbms_xmldom.isnull(data_nodelist)
2469 and l_data_cnt > 0 then
2470 --
2471 for l_data_ind in 0..l_data_cnt - 1 loop
2472 --
2473 data_node := dbms_xmldom.item(data_nodelist,l_data_ind);
2474 --
2475 if dbms_xmldom.getattribute(dbms_xmldom.makeelement(data_node),'dat_cd') = p_data_type then
2476 --
2477 l_item_key := null;
2478 --
2479 item_key_nodelist := dbms_xmldom.getelementsbytagname(dbms_xmldom.makeelement(data_node),p_item_key);
2480 l_item_key_cnt := dbms_xmldom.getlength(item_key_nodelist);
2481 --
2482 date_nodelist := dbms_xmldom.getelementsbytagname(dbms_xmldom.makeelement(data_node),'start_dt');
2483 l_date_key_cnt := dbms_xmldom.getlength(date_nodelist);
2484
2485 debt_nodelist := dbms_xmldom.getelementsbytagname(dbms_xmldom.makeelement(data_node),'debt');
2486 l_debt_key_cnt := dbms_xmldom.getlength(debt_nodelist);
2487
2488 fixed_nodelist := dbms_xmldom.getelementsbytagname(dbms_xmldom.makeelement(data_node),'fixed_rate_debt');
2489 l_fixed_key_cnt := dbms_xmldom.getlength(fixed_nodelist);
2490
2491 not_debt_nodelist := dbms_xmldom.getelementsbytagname(dbms_xmldom.makeelement(data_node),'not_defer_debt');
2492 l_not_debt_key_cnt := dbms_xmldom.getlength(not_debt_nodelist);
2493
2494 yr_rede_amt_nodelst := dbms_xmldom.getelementsbytagname(dbms_xmldom.makeelement(data_node),'this_year_rede_amt');
2495 l_yr_amt_key_cnt := dbms_xmldom.getlength(yr_rede_amt_nodelst);
2496
2497 if not dbms_xmldom.isnull(item_key_nodelist)
2498 and l_item_key_cnt > 0 then
2499 --
2500 item_key_node := dbms_xmldom.item(item_key_nodelist,0);
2501 --
2502 l_item_key := dbms_xmldom.getnodevalue(dbms_xmldom.getfirstchild(item_key_node));
2503 --
2504 end if;
2505
2506 if not dbms_xmldom.isnull(date_nodelist)
2507 and l_date_key_cnt > 0 then
2508 --
2509 date_key_node := dbms_xmldom.item(date_nodelist,0);
2510 --
2511 l_date_key := dbms_xmldom.getnodevalue(dbms_xmldom.getfirstchild(date_key_node));
2512 --
2513 end if;
2514 --
2515 if not dbms_xmldom.isnull(debt_nodelist)
2516 and l_debt_key_cnt > 0 then
2517 --
2518 debt_key_node := dbms_xmldom.item(debt_nodelist,0);
2519 --
2520 l_debt_key := dbms_xmldom.getnodevalue(dbms_xmldom.getfirstchild(debt_key_node));
2521 --
2522 end if;
2523
2524 if not dbms_xmldom.isnull(fixed_nodelist)
2525 and l_fixed_key_cnt > 0 then
2526 --
2527 fixed_key_node := dbms_xmldom.item(fixed_nodelist,0);
2528 --
2529 l_fixed_key := dbms_xmldom.getnodevalue(dbms_xmldom.getfirstchild(date_key_node));
2530 --
2531 end if;
2532
2533 if not dbms_xmldom.isnull(not_debt_nodelist)
2534 and l_not_debt_key_cnt > 0 then
2535 --
2536 not_debt_key_node := dbms_xmldom.item(not_debt_nodelist,0);
2537 --
2538 l_not_debt_key := dbms_xmldom.getnodevalue(dbms_xmldom.getfirstchild(not_debt_key_node));
2539 --
2540 end if;
2541
2542 if not dbms_xmldom.isnull(yr_rede_amt_nodelst)
2543 and l_yr_amt_key_cnt > 0 then
2544 --
2545 yr_rede_key_node := dbms_xmldom.item(yr_rede_amt_nodelst,0);
2546 --
2547 l_yr_rede_key := dbms_xmldom.getnodevalue(dbms_xmldom.getfirstchild(yr_rede_key_node));
2548 --
2549 end if;
2550
2551 item_nodelist := dbms_xmldom.getelementsbytagname(dbms_xmldom.makeelement(data_node),p_item_name);
2552 l_item_cnt := dbms_xmldom.getlength(item_nodelist);
2553 --
2554 if not dbms_xmldom.isnull(item_nodelist)
2555 and l_item_cnt > 0 then
2556 --
2557 item_node := dbms_xmldom.item(item_nodelist,0);
2558 --
2559 l_values_tbl(l_value_ind).key := l_item_key;
2560 l_values_tbl(l_value_ind).val := dbms_xmldom.getnodevalue(dbms_xmldom.getfirstchild(item_node));
2561 l_values_tbl(l_value_ind).start_date := l_date_key;
2562 l_values_tbl(l_value_ind).debt := l_debt_key;
2563 l_values_tbl(l_value_ind).fixed_rate := l_fixed_key;
2564 l_values_tbl(l_value_ind).defer_debt := l_not_debt_key;
2565 l_values_tbl(l_value_ind).year_amt := l_yr_rede_key;
2566 l_value_ind := l_value_ind + 1;
2567 --
2568 end if;
2569 --
2570 end if;
2571 --
2572 end loop;
2573 --
2574 end if;
2575 --
2576 end loop;
2577 --
2578 end if;
2579 --
2580 end if;
2581 --
2582 if g_debug then
2583 hr_utility.trace('l_man_cnt : l_data_cnt : l_item_key_cnt : l_item_cnt : '||to_char(l_man_cnt)||' : '||to_char(l_data_cnt)||' : '||to_char(l_item_key_cnt)||' : '||to_char(l_item_cnt));
2584 hr_utility.trace('l_value_ind : l_values_tbl.count : '||to_char(l_value_ind)||' : '||to_char(l_values_tbl.count));
2585 hr_utility.set_location(l_proc,1000);
2586 end if;
2587 --
2588 return l_values_tbl;
2589 --
2590 end get_long_term_house_values;
2591 --
2592 -- -------------------------------------------------------------------------
2593 -- get_item_attribute_in_data
2594 -- -------------------------------------------------------------------------
2595 function get_item_attribute_in_data(
2596 p_form_node in dbms_xmldom.domnode,
2597 p_form_type in varchar2,
2598 p_man_key in varchar2,
2599 p_data_type in varchar2,
2600 p_item_name in varchar2,
2601 p_item_type in varchar2)
2602 return t_val_by_key_tbl
2603 is
2604 --
2605 l_proc varchar2(80) := c_package||'get_item_attribute_in_data';
2606 --
2607 man_nodelist dbms_xmldom.domnodelist;
2608 man_node dbms_xmldom.domnode;
2609 data_nodelist dbms_xmldom.domnodelist;
2610 data_node dbms_xmldom.domnode;
2611 item_nodelist dbms_xmldom.domnodelist;
2612 item_node dbms_xmldom.domnode;
2613 --
2614 l_man_key per_kr_assignment_yea_info.ayi_information1%type;
2615 --
2616 l_man_cnt number;
2617 l_data_cnt number;
2618 l_item_cnt number;
2619 --
2620 l_value_ind number := 0;
2621 l_values_tbl t_val_by_key_tbl;
2622 --
2623 begin
2624 --
2625 if g_debug then
2626 hr_utility.set_location(l_proc,0);
2627 end if;
2628 --
2629 if dbms_xmldom.getattribute(dbms_xmldom.makeelement(p_form_node),'form_cd') = p_form_type then
2630 --
2631 man_nodelist := dbms_xmldom.getelementsbytagname(dbms_xmldom.makeelement(p_form_node),'man');
2632 l_man_cnt := dbms_xmldom.getlength(man_nodelist);
2633 --
2634 if not dbms_xmldom.isnull(man_nodelist)
2635 and l_man_cnt > 0 then
2636 --
2637 for l_man_ind in 0..l_man_cnt - 1 loop
2638 --
2639 man_node := dbms_xmldom.item(man_nodelist,l_man_ind);
2640 --
2641 l_man_key := dbms_xmldom.getattribute(dbms_xmldom.makeelement(man_node),p_man_key);
2642 --
2643 data_nodelist := dbms_xmldom.getelementsbytagname(dbms_xmldom.makeelement(man_node),'data');
2644 l_data_cnt := dbms_xmldom.getlength(data_nodelist);
2645 --
2646 if not dbms_xmldom.isnull(data_nodelist)
2647 and l_data_cnt > 0 then
2648 --
2649 for l_data_ind in 0..l_data_cnt - 1 loop
2650 --
2651 data_node := dbms_xmldom.item(data_nodelist,l_data_ind);
2652 --
2653 if dbms_xmldom.getattribute(dbms_xmldom.makeelement(data_node),'dat_cd') = p_data_type then
2654 --
2655 item_nodelist := dbms_xmldom.getelementsbytagname(dbms_xmldom.makeelement(data_node),p_item_name);
2656 l_item_cnt := dbms_xmldom.getlength(item_nodelist);
2657 --
2658 if not dbms_xmldom.isnull(item_nodelist)
2659 and l_item_cnt > 0 then
2660 --
2661 item_node := dbms_xmldom.item(item_nodelist,0);
2662 --
2663 l_values_tbl(l_value_ind).key := l_man_key;
2664 l_values_tbl(l_value_ind).val := dbms_xmldom.getattribute(dbms_xmldom.makeelement(item_node),p_item_type);
2665 l_value_ind := l_value_ind + 1;
2666 --
2667 end if;
2668 --
2669 end if;
2670 --
2671 end loop;
2672 --
2673 end if;
2674 --
2675 end loop;
2676 --
2677 end if;
2678 --
2679 end if;
2680 --
2681 if g_debug then
2682 hr_utility.trace('l_man_cnt : l_data_cnt : l_item_cnt : '||to_char(l_man_cnt)||' : '||to_char(l_data_cnt)||' : '||to_char(l_item_cnt));
2683 hr_utility.trace('l_value_ind : l_values_tbl.count : '||to_char(l_value_ind)||' : '||to_char(l_values_tbl.count));
2684 hr_utility.set_location(l_proc,1000);
2685 end if;
2686 --
2687 return l_values_tbl;
2688 --
2689 end get_item_attribute_in_data;
2690 --
2691 -- -------------------------------------------------------------------------
2692 -- cnv_m
2693 -- -------------------------------------------------------------------------
2694 function cnv_m(
2695 p_text in number)
2696 return varchar2
2697 is
2698 begin
2699 --
2700 return to_char(p_text,fnd_currency.get_format_mask('KRW',40));
2701 --
2702 end cnv_m;
2703 --
2704 -- -------------------------------------------------------------------------
2705 -- cnv_m
2706 -- -------------------------------------------------------------------------
2707 function cnv_m(
2708 p_text in number,
2709 p_mask in varchar2)
2710 return varchar2
2711 is
2712 --
2713 begin
2714 --
2715 return to_char(p_text,fnd_currency.get_format_mask(p_mask,40));
2716 --
2717 end cnv_m;
2718 --
2719 -- -------------------------------------------------------------------------
2720 -- cnv_reg
2721 -- -------------------------------------------------------------------------
2722 function cnv_reg(
2723 p_text in varchar2)
2724 return varchar2
2725 is
2726 --
2727 l_text varchar2(30);
2728 --
2729 begin
2730 --
2731 l_text := p_text;
2732 --
2733 if not (instrb(l_text,'-') > 0) then
2734 --
2735 if lengthb(p_text) = 10 then
2736 --
2737 l_text := substrb(p_text,1,3)||'-'||substrb(p_text,4,2)||'-'||substrb(p_text,6,5);
2738 --
2739 elsif lengthb(p_text) = 13 then
2740 --
2741 l_text := substrb(p_text,1,6)||'-'||substrb(p_text,7,7);
2742 --
2743 end if;
2744 --
2745 end if;
2746 --
2747 return l_text;
2748 --
2749 end cnv_reg;
2750 --
2751 -- -------------------------------------------------------------------------
2752 -- get_dpnt_ind
2753 -- -------------------------------------------------------------------------
2754 function get_dpnt_ind(
2755 p_dpnt_ind_tbl in t_char_tbl,
2756 p_ni_num in varchar2)
2757 return number
2758 is
2759 --
2760 l_dpnt_ind number;
2761 --
2762 begin
2763 --
2764 /* if g_dpnt_ni_num is not null
2765 and g_dpnt_ind is not null then
2766 --
2767 if g_dpnt_ni_num = p_ni_num then
2768 --
2769 l_dpnt_ind := g_dpnt_ind;
2770 --
2771 end if;
2772 --
2773 else*/ -- bug 13928375
2774 --
2775 if p_dpnt_ind_tbl.count > 0 then
2776 --
2777 <<dpnt_ind_tbl_loop>>
2778 for i in p_dpnt_ind_tbl.first..p_dpnt_ind_tbl.last loop
2779 --
2780 if p_dpnt_ind_tbl(i) = p_ni_num then
2781 --
2782 l_dpnt_ind := i;
2783 --
2784 g_dpnt_ni_num := p_ni_num;
2785 g_dpnt_ind := l_dpnt_ind;
2786 --
2787 exit dpnt_ind_tbl_loop;
2788 --
2789 end if;
2790 --
2791 end loop dpnt_ind_tbl_loop;
2792 --
2793 end if;
2794 --
2795 -- end if;
2796 --
2797 return l_dpnt_ind;
2798 --
2799 end get_dpnt_ind;
2800 --
2801 -- -------------------------------------------------------------------------
2802 -- get_relship
2803 -- -------------------------------------------------------------------------
2804 function get_relship(
2805 p_assignment_id in number,
2806 p_information_type in varchar2,
2807 p_ni_num in varchar2)
2808 return varchar2
2809 is
2810 --
2811 l_ni_num varchar2(30);
2812 l_relship varchar2(30);
2813 --
2814 -- same with DetailMedicalRelationshipVO
2815 cursor csr_med_relship
2816 is
2817 select code contact_type
2818 from (select pcr_pp.national_identifier,
2819 nvl(pcr.cont_information11,
2820 decode(pcr.contact_type,
2821 'P','1',
2822 'S','3',
2823 'A','4',
2824 'C','4',
2825 'R','4',
2826 'O','4',
2827 'T','4',
2828 'BROTHER','5',
2829 'SISTER','5',
2830 '6')) code
2831 from per_assignments_f pa,
2832 per_contact_relationships pcr,
2833 per_people_f pcr_pp
2834 where pa.assignment_id = p_assignment_id
2835 and g_target_eoy
2836 between pa.effective_start_date and pa.effective_end_date
2837 and pcr.person_id = pa.person_id
2838 and pcr_pp.person_id = pcr.contact_person_id
2839 and g_target_eoy
2840 between pcr_pp.effective_start_date and pcr_pp.effective_end_date
2841 UNION ALL
2842 select ppf.national_identifier, '0' code
2843 from per_people_f ppf
2844 ,per_assignments_f pa
2845 where pa.person_id = ppf.person_id
2846 and pa.assignment_id = p_assignment_id
2847 and g_target_eoy between pa.effective_start_date and pa.effective_end_date
2848 and g_target_eoy between ppf.effective_start_date and ppf.effective_end_date
2849 )
2850 where national_identifier = l_ni_num;
2851
2852 --
2853 -- same with DetailDonationRelationshipVO
2854 cursor csr_don_relship
2855 is
2856 select code contact_type
2857 from (select pcr_pp.national_identifier,
2858 decode(nvl(cont_information11,
2859 decode(contact_type, 'S','3','P','1','B','5','SISTER','5' ,'A','4','C','4','R','4','O','4','T','4','6')),'1','4','5','5','4','3','3','2','7','3','2','4','6') code
2860 from per_assignments_f pa,
2861 per_contact_relationships pcr,
2862 per_people_f pcr_pp
2863 where pa.assignment_id = p_assignment_id
2864 and g_target_eoy between pa.effective_start_date and pa.effective_end_date
2865 and pcr.person_id = pa.person_id
2866 and pcr_pp.person_id = pcr.contact_person_id
2867 and g_target_eoy between pcr_pp.effective_start_date and pcr_pp.effective_end_date
2868 and pcr.cont_information1 ='Y'
2869 and pcr.cont_information2 = 'Y'
2870 UNION ALL
2871 select ppf.national_identifier, '0' code
2872 from per_people_f ppf
2873 ,per_assignments_f pa
2874 where pa.person_id = ppf.person_id
2875 and pa.assignment_id = p_assignment_id
2876 and g_target_eoy between pa.effective_start_date and pa.effective_end_date
2877 and g_target_eoy between ppf.effective_start_date and ppf.effective_end_date)
2878 where code in ('5','4','3','2','1') and national_identifier = l_ni_num;
2879
2880 --
2881 -- same with EducationContRegNumVO
2882 cursor csr_educ_relship
2883 is
2884 select code contact_type
2885 from (select pcr_pp.national_identifier,
2886 nvl(pcr.cont_information11,
2887 decode(pcr.contact_type,
2888 'P','1',
2889 'S','3',
2890 'A','4',
2891 'C','4',
2892 'R','4',
2893 'O','4',
2894 'T','4',
2895 'BROTHER','5',
2896 'SISTER','5',
2897 '6')) code
2898 from per_assignments_f pa,
2899 per_contact_relationships pcr,
2900 per_people_f pcr_pp
2901 where pa.assignment_id = p_assignment_id
2902 and g_target_eoy
2903 between pa.effective_start_date and pa.effective_end_date
2904 and pa.assignment_type ='E'
2905 and pcr.person_id = pa.person_id
2906 and g_target_eoy
2907 between nvl(pcr.date_start,g_target_eoy) and
2908 decode(pcr.cont_information9,
2909 'D',trunc(add_months(nvl(pcr.date_end,g_target_eoy),12),'YYYY')-1,
2910 nvl(pcr.date_end,g_target_eoy))
2911 and pcr_pp.person_id = pcr.contact_person_id
2912 and g_target_eoy
2913 between pcr_pp.effective_start_date and pcr_pp.effective_end_date
2914 and pcr.cont_information_category = 'KR'
2915 and pcr.cont_information1 = 'Y')
2916 where national_identifier = l_ni_num;
2917 --
2918 begin
2919 --
2920 l_ni_num := cnv_reg(p_ni_num);
2921 --
2922 if p_information_type = 'KR_YEA_DETAIL_MEDICAL_EXP_INFO' then
2923 --
2924 open csr_med_relship;
2925 fetch csr_med_relship into l_relship;
2926 close csr_med_relship;
2927 --
2928 elsif p_information_type = 'KR_YEA_DETAIL_DONATION_INFO' then
2929 --
2930 open csr_don_relship;
2931 fetch csr_don_relship into l_relship;
2932 close csr_don_relship;
2933 --
2934 elsif p_information_type = 'KR_YEA_DPNT_EDUC_TAX_EXEM_INFO' then
2935 --
2936 open csr_educ_relship;
2937 fetch csr_educ_relship into l_relship;
2938 close csr_educ_relship;
2939 --
2940 end if;
2941 --
2942 return l_relship;
2943 --
2944 end get_relship;
2945 --
2946 -- -------------------------------------------------------------------------
2947 -- get_type
2948 -- -------------------------------------------------------------------------
2949 function get_type(
2950 p_information_type in varchar2,
2951 p_text in varchar2)
2952 return varchar2
2953 is
2954 --
2955 l_text varchar2(30);
2956 --
2957 begin
2958 --
2959 l_text := p_text;
2960 --
2961 if p_information_type = 'KR_YEA_SEP_PEN_DETAILS' then
2962 --
2963 l_text := substrb(l_text,-1);
2964 -- Bug 16083942 Mapping pension type '13' with '11'
2965 if l_text = '3' then
2966 l_text := '1';
2967 end if;
2968 --
2969 elsif p_information_type = 'KR_YEA_HOU_SAVING_DETAILS' then
2970 --
2971 if l_text is not null
2972 and instr(l_text,'HST') = 0 then
2973 -- Bug 16090143 Mapping the values as epr lookup codes
2974 IF l_text = '2' then
2975 l_text := '5';
2976 elsif l_text = '3' then
2977 l_text := '4';
2978 elsif l_text = '4' then
2979 l_text := '3';
2980 end if;
2981 l_text := 'HST'||l_text;
2982 --
2983 end if;
2984 --
2985 end if;
2986 --
2987 return l_text;
2988 --
2989 end get_type;
2990 --
2991 -- -------------------------------------------------------------------------
2992 -- get_fin
2993 -- -------------------------------------------------------------------------
2994 function get_fin(
2995 p_text in varchar2)
2996 return varchar2
2997 is
2998 --
2999 l_text varchar2(30);
3000 --
3001 cursor csr_fin
3002 is
3003 select lookup_code
3004 from hr_lookups
3005 where lookup_type = 'KR_YEA_FIN_INST_CODES'
3006 and enabled_flag = 'Y'
3007 and meaning = p_text;
3008 --
3009 begin
3010 --
3011 open csr_fin;
3012 fetch csr_fin into l_text;
3013 close csr_fin;
3014 --
3015 return l_text;
3016 --
3017 end get_fin;
3018 --
3019 -- -------------------------------------------------------------------------
3020 -- validate_kr_ass_yea_info
3021 -- -------------------------------------------------------------------------
3022 procedure validate_kr_ass_yea_info(
3023 p_assignment_id in number,
3024 p_target_year in number,
3025 p_information_type in varchar2,
3026 p_information1 in varchar2 default null,
3027 p_information2 in varchar2 default null,
3028 p_information3 in varchar2 default null,
3029 p_information4 in varchar2 default null,
3030 p_information5 in varchar2 default null,
3031 p_information6 in varchar2 default null,
3032 p_information7 in varchar2 default null,
3033 p_information8 in varchar2 default null,
3034 p_information9 in varchar2 default null,
3035 p_information10 in varchar2 default null,
3036 p_information11 in varchar2 default null,
3037 p_information12 in varchar2 default null,
3038 p_information13 in varchar2 default null,
3039 p_information14 in varchar2 default null,
3040 p_information15 in varchar2 default null,
3041 p_information16 in varchar2 default null,
3042 p_information17 in varchar2 default null,
3043 p_information18 in varchar2 default null,
3044 p_information19 in varchar2 default null,
3045 p_information20 in varchar2 default null,
3046 p_information21 in varchar2 default null,
3047 p_information22 in varchar2 default null,
3048 p_information23 in varchar2 default null,
3049 p_information24 in varchar2 default null,
3050 p_information25 in varchar2 default null,
3051 p_information26 in varchar2 default null,
3052 p_information27 in varchar2 default null,
3053 p_information28 in varchar2 default null,
3054 p_information29 in varchar2 default null,
3055 p_information30 in varchar2 default null,
3056 p_information31 in varchar2 default null,
3057 p_information32 in varchar2 default null,
3058 p_information33 in varchar2 default null,
3059 p_information34 in varchar2 default null,
3060 p_information35 in varchar2 default null)
3061 is
3062 --
3063 l_proc varchar2(80) := c_package||'validate_kr_ass_yea_info';
3064 --
3065 l_limit ff_globals_f.global_value%type;
3066 --
3067 cursor csr_don_recipient
3068 is
3069 select assignment_yea_info_id
3070 from per_kr_assignment_yea_info
3071 where assignment_id = p_assignment_id
3072 and target_year = g_target_yyyy
3073 and information_type = 'KR_YEA_DETAIL_DONATION_INFO'
3074 and ((ayi_information7 <> p_information7
3075 and ayi_information8 = p_information8)
3076 or (ayi_information7 = p_information7
3077 and ayi_information8 <> p_information8))
3078 and ayi_information13 = p_information13 ;
3079 --
3080 l_csr_don_recipient csr_don_recipient%rowtype;
3081 --
3082 begin
3083 --
3084 if g_debug then
3085 hr_utility.set_location(l_proc,0);
3086 end if;
3087 --
3088 -- sync with PerKrAssignmentYeaInfoEOImpl.java for only relevant info type
3089 --if p_information_type = 'KR_YEA_DETAIL_MEDICAL_EXP_INFO' then
3090 ----
3091 -- -- PAY_KR_YEA_DET_MED_REQ_ERR
3092 -- -- PAY_KR_YEA_MED_PAID_AMT_REQD
3093 -- -- PAY_KR_YEA_INV_PROVIDER_REGNO
3094 -- -- PAY_KR_YEA_DET_MED_INV_DATE
3095 -- -- PAY_KR_YEA_AGD_DSBLD_EMP_MSG
3096 -- -- PAY_KR_ELIGIBLE_MED_AGED_ERROR
3097 ----
3098 if p_information_type = 'KR_YEA_DETAIL_DONATION_INFO' then
3099 --
3100 -- PAY_KR_YEA_DET_DON_REQ_ERR
3101 --
3102 if p_information2 is not null
3103 and to_char(fnd_date.canonical_to_date(p_information2),'YYYY') <> g_target_yyyy then
3104 --
3105 hr_utility.set_message(801,'PAY_KR_YEA_DET_DON_INV_DATE');
3106 hr_utility.set_message_token('DATE',fnd_date.date_to_displaydate(fnd_date.canonical_to_date(p_information2)));
3107 hr_utility.raise_error;
3108 --
3109 end if;
3110 --
3111 -- PAY_KR_YEA_INV_DON_REGNO
3112 -- PAY_KR_YEA_DON_DETAIL_EXISTS
3113 --
3114 --validateDetailDonation
3115 if p_information8 is not null then
3116 --
3117 open csr_don_recipient;
3118 fetch csr_don_recipient into l_csr_don_recipient;
3119 close csr_don_recipient;
3120 --
3121 if l_csr_don_recipient.assignment_yea_info_id is not null then
3122 --
3123 hr_utility.set_message(801,'PAY_KR_YEA_INV_DON_NAME_MSG');
3124 hr_utility.set_message_token('RRN',p_information7);
3125 hr_utility.raise_error;
3126 --
3127 end if;
3128 --
3129 end if;
3130 --
3131 --elsif p_information_type = 'KR_YEA_DPNT_EDUC_TAX_EXEM_INFO' then
3132 ----
3133 -- -- PAY_KR_YEA_EDUCATION_REQ_ERR
3134 ----
3135 --elsif p_information_type = 'KR_YEA_SEP_PEN_DETAILS' then
3136 ----
3137 -- -- PAY_KR_YEA_SEP_PEN_DET_REQ
3138 ----
3139 --elsif p_information_type = 'KR_YEA_PEN_SAVING_DETAILS' then
3140 ----
3141 -- PAY_KR_YEA_PEN_SAV_DET_REQ
3142 ----
3143 elsif p_information_type = 'KR_YEA_HOU_SAVING_DETAILS' then
3144 --
3145 -- PAY_KR_YEA_HOU_SAV_DET_REQ
3146 --
3147 if p_information2 = 'HST1' then /* KR_HOUSING_SAVING_TYPE */
3148 --
3149 pay_kr_yea_sshr_utils_pkg.get_globalvalue(
3150 p_glbvar => 'KR_YEA_HOUSINSAVINTYPE_HST1',
3151 p_process_date => p_information1,
3152 p_result => l_limit);
3153 --
3154 if fnd_number.canonical_to_number(p_information5) > to_number(l_limit) then
3155 --
3156 hr_utility.set_message(801,'PAY_KR_MAX_HOU_SUB_SAVING');
3157 hr_utility.set_message_token('LIMIT',l_limit);
3158 hr_utility.raise_error;
3159 --
3160 end if;
3161 --
3162 end if;
3163 --
3164 --elsif p_information_type = 'KR_YEA_LT_STOCK_SAVING_DETAILS' then
3165 ----
3166 -- -- PAY_KR_YEA_LT_SAV_DET_REQ
3167 ----
3168 end if;
3169 --
3170 if g_debug then
3171 hr_utility.set_location(l_proc,1000);
3172 end if;
3173 --
3174 end validate_kr_ass_yea_info;
3175 --
3176 -- -------------------------------------------------------------------------
3177 -- delete_kr_ass_yea_info
3178 -- -------------------------------------------------------------------------
3179 procedure delete_kr_ass_yea_info(
3180 p_assignment_id in number,
3181 p_target_year in number,
3182 p_information_type in varchar2,
3183 p_information1 in varchar2 default null,
3184 p_information2 in varchar2 default null,
3185 p_information3 in varchar2 default null,
3186 p_information4 in varchar2 default null,
3187 p_information5 in varchar2 default null,
3188 p_information6 in varchar2 default null,
3189 p_information7 in varchar2 default null,
3190 p_information8 in varchar2 default null,
3191 p_information9 in varchar2 default null,
3192 p_information10 in varchar2 default null,
3193 p_information11 in varchar2 default null,
3194 p_information12 in varchar2 default null,
3195 p_information13 in varchar2 default null,
3196 p_information14 in varchar2 default null,
3197 p_information15 in varchar2 default null,
3198 p_information16 in varchar2 default null,
3199 p_information17 in varchar2 default null,
3200 p_information18 in varchar2 default null,
3201 p_information19 in varchar2 default null,
3202 p_information20 in varchar2 default null,
3203 p_information21 in varchar2 default null,
3204 p_information22 in varchar2 default null,
3205 p_information23 in varchar2 default null,
3206 p_information24 in varchar2 default null,
3207 p_information25 in varchar2 default null,
3208 p_information26 in varchar2 default null,
3209 p_information27 in varchar2 default null,
3210 p_information28 in varchar2 default null,
3211 p_information29 in varchar2 default null,
3212 p_information30 in varchar2 default null,
3213 p_information31 in varchar2 default null,
3214 p_information32 in varchar2 default null,
3215 p_information33 in varchar2 default null,
3216 p_information34 in varchar2 default null,
3217 p_information35 in varchar2 default null)
3218 is
3219 --
3220 l_proc varchar2(80) := c_package||'delete_kr_ass_yea_info';
3221 --
3222 cursor csr_kr_ass_yea
3223 is
3224 select pkayi.assignment_yea_info_id
3225 from per_kr_assignment_yea_info pkayi
3226 where pkayi.assignment_id = p_assignment_id
3227 and pkayi.target_year = p_target_year
3228 and pkayi.information_type = p_information_type
3229 and pkayi.ayi_information_category = p_information_type
3230 and nvl(pkayi.ayi_information1,'X') = nvl(p_information1,nvl(pkayi.ayi_information1,'X'))
3231 and nvl(pkayi.ayi_information2,'X') = nvl(p_information2,nvl(pkayi.ayi_information2,'X'))
3232 and nvl(pkayi.ayi_information3,'X') = nvl(p_information3,nvl(pkayi.ayi_information3,'X'))
3233 and nvl(pkayi.ayi_information4,'X') = nvl(p_information4,nvl(pkayi.ayi_information4,'X'))
3234 and nvl(pkayi.ayi_information5,'X') = nvl(p_information5,nvl(pkayi.ayi_information5,'X'))
3235 and nvl(pkayi.ayi_information6,'X') = nvl(p_information6,nvl(pkayi.ayi_information6,'X'))
3236 and nvl(pkayi.ayi_information7,'X') = nvl(p_information7,nvl(pkayi.ayi_information7,'X'))
3237 and nvl(pkayi.ayi_information8,'X') = nvl(p_information8,nvl(pkayi.ayi_information8,'X'))
3238 and nvl(pkayi.ayi_information9,'X') = nvl(p_information9,nvl(pkayi.ayi_information9,'X'))
3239 and nvl(pkayi.ayi_information10,'X') = nvl(p_information10,nvl(pkayi.ayi_information10,'X'))
3240 and nvl(pkayi.ayi_information11,'X') = nvl(p_information11,nvl(pkayi.ayi_information11,'X'))
3241 and nvl(pkayi.ayi_information12,'X') = nvl(p_information12,nvl(pkayi.ayi_information12,'X'))
3242 and nvl(pkayi.ayi_information13,'X') = nvl(p_information13,nvl(pkayi.ayi_information13,'X'))
3243 and nvl(pkayi.ayi_information14,'X') = nvl(p_information14,nvl(pkayi.ayi_information14,'X'))
3244 and nvl(pkayi.ayi_information15,'X') = nvl(p_information15,nvl(pkayi.ayi_information15,'X'))
3245 and nvl(pkayi.ayi_information16,'X') = nvl(p_information16,nvl(pkayi.ayi_information16,'X'))
3246 and nvl(pkayi.ayi_information17,'X') = nvl(p_information17,nvl(pkayi.ayi_information17,'X'))
3247 and nvl(pkayi.ayi_information18,'X') = nvl(p_information18,nvl(pkayi.ayi_information18,'X'))
3248 and nvl(pkayi.ayi_information19,'X') = nvl(p_information19,nvl(pkayi.ayi_information19,'X'))
3249 and nvl(pkayi.ayi_information20,'X') = nvl(p_information20,nvl(pkayi.ayi_information20,'X'))
3250 and nvl(pkayi.ayi_information21,'X') = nvl(p_information21,nvl(pkayi.ayi_information21,'X'))
3251 and nvl(pkayi.ayi_information22,'X') = nvl(p_information22,nvl(pkayi.ayi_information22,'X'))
3252 and nvl(pkayi.ayi_information23,'X') = nvl(p_information23,nvl(pkayi.ayi_information23,'X'))
3253 and nvl(pkayi.ayi_information24,'X') = nvl(p_information24,nvl(pkayi.ayi_information24,'X'))
3254 and nvl(pkayi.ayi_information25,'X') = nvl(p_information25,nvl(pkayi.ayi_information25,'X'))
3255 and nvl(pkayi.ayi_information26,'X') = nvl(p_information26,nvl(pkayi.ayi_information26,'X'))
3256 and nvl(pkayi.ayi_information27,'X') = nvl(p_information27,nvl(pkayi.ayi_information27,'X'))
3257 and nvl(pkayi.ayi_information28,'X') = nvl(p_information28,nvl(pkayi.ayi_information28,'X'))
3258 and nvl(pkayi.ayi_information29,'X') = nvl(p_information29,nvl(pkayi.ayi_information29,'X'))
3259 and nvl(pkayi.ayi_information30,'X') = nvl(p_information30,nvl(pkayi.ayi_information30,'X'))
3260 and nvl(pkayi.ayi_information31,'X') = nvl(p_information31,nvl(pkayi.ayi_information31,'X'))
3261 and nvl(pkayi.ayi_information32,'X') = nvl(p_information32,nvl(pkayi.ayi_information32,'X'))
3262 and nvl(pkayi.ayi_information33,'X') = nvl(p_information33,nvl(pkayi.ayi_information33,'X'))
3263 and nvl(pkayi.ayi_information34,'X') = nvl(p_information34,nvl(pkayi.ayi_information34,'X'))
3264 and nvl(pkayi.ayi_information35,'X') = nvl(p_information35,nvl(pkayi.ayi_information35,'X'))
3265 for update nowait;
3266 --
3267 l_csr_kr_ass_yea csr_kr_ass_yea%rowtype;
3268 --
3269 begin
3270 --
3271 if g_debug then
3272 hr_utility.set_location(l_proc,0);
3273 end if;
3274 --
3275 begin
3276 --
3277 open csr_kr_ass_yea;
3278 loop
3279 --
3280 fetch csr_kr_ass_yea into l_csr_kr_ass_yea;
3281 exit when csr_kr_ass_yea%notfound;
3282 --
3283 if l_csr_kr_ass_yea.assignment_yea_info_id is not null then
3284 --
3285 if g_debug then
3286 hr_utility.set_location(l_proc,10);
3287 end if;
3288 --
3289 delete from
3290 per_kr_assignment_yea_info
3291 where assignment_yea_info_id = l_csr_kr_ass_yea.assignment_yea_info_id;
3292 --
3293 end if;
3294 --
3295 end loop;
3296 close csr_kr_ass_yea;
3297 --
3298 exception
3299 when others then
3300 --
3301 fnd_message.set_name('PAY','PAY_KR_YEA_PDF_LOCK_STATUS');
3302 fnd_message.set_token('ASS_ID',to_char(p_assignment_id));
3303 g_msg := fnd_message.get;
3304 --
3305 fnd_file.put_line(fnd_file.log,g_msg);
3306 --
3307 if g_debug then
3308 hr_utility.trace('skipped because p_assignment_id : '||to_char(p_assignment_id)||' entry status was locked.');
3309 end if;
3310 --
3311 end;
3312 --
3313 if g_debug then
3314 hr_utility.set_location(l_proc,1000);
3315 end if;
3316 --
3317 end delete_kr_ass_yea_info;
3318 --
3319 -- -------------------------------------------------------------------------
3320 -- insert_kr_ass_yea_info
3321 -- -------------------------------------------------------------------------
3322 procedure insert_kr_ass_yea_info(
3323 p_assignment_id in number,
3324 p_target_year in number,
3325 p_information_type in varchar2,
3326 p_information1 in varchar2 default null,
3327 p_information2 in varchar2 default null,
3328 p_information3 in varchar2 default null,
3329 p_information4 in varchar2 default null,
3330 p_information5 in varchar2 default null,
3331 p_information6 in varchar2 default null,
3332 p_information7 in varchar2 default null,
3333 p_information8 in varchar2 default null,
3334 p_information9 in varchar2 default null,
3335 p_information10 in varchar2 default null,
3336 p_information11 in varchar2 default null,
3337 p_information12 in varchar2 default null,
3338 p_information13 in varchar2 default null,
3339 p_information14 in varchar2 default null,
3340 p_information15 in varchar2 default null,
3341 p_information16 in varchar2 default null,
3342 p_information17 in varchar2 default null,
3343 p_information18 in varchar2 default null,
3344 p_information19 in varchar2 default null,
3345 p_information20 in varchar2 default null,
3346 p_information21 in varchar2 default null,
3347 p_information22 in varchar2 default null,
3348 p_information23 in varchar2 default null,
3349 p_information24 in varchar2 default null,
3350 p_information25 in varchar2 default null,
3351 p_information26 in varchar2 default null,
3352 p_information27 in varchar2 default null,
3353 p_information28 in varchar2 default null,
3354 p_information29 in varchar2 default null,
3355 p_information30 in varchar2 default null,
3356 p_information31 in varchar2 default null,
3357 p_information32 in varchar2 default null,
3358 p_information33 in varchar2 default null,
3359 p_information34 in varchar2 default null,
3360 p_information35 in varchar2 default null,
3361 p_assignment_yea_info_id out nocopy number)
3362 is
3363 --
3364 l_proc varchar2(80) := c_package||'insert_kr_ass_yea_info';
3365 --
3366 l_assignment_yea_info_id number;
3367 l_object_version_number number := 1;
3368 --
3369 begin
3370 --
3371 if g_debug then
3372 hr_utility.set_location(l_proc,0);
3373 end if;
3374 --
3375 select per_kr_assignment_yea_info_s.nextval
3376 into l_assignment_yea_info_id
3377 from dual;
3378 --
3379 insert into per_kr_assignment_yea_info(
3380 assignment_yea_info_id,
3381 assignment_id,
3382 information_type,
3383 target_year,
3384 ayi_information_category,
3385 ayi_information1,
3386 ayi_information2,
3387 ayi_information3,
3388 ayi_information4,
3389 ayi_information5,
3390 ayi_information6,
3391 ayi_information7,
3392 ayi_information8,
3393 ayi_information9,
3394 ayi_information10,
3395 ayi_information11,
3396 ayi_information12,
3397 ayi_information13,
3398 ayi_information14,
3399 ayi_information15,
3400 ayi_information16,
3401 ayi_information17,
3402 ayi_information18,
3403 ayi_information19,
3404 ayi_information20,
3405 ayi_information21,
3406 ayi_information22,
3407 ayi_information23,
3408 ayi_information24,
3409 ayi_information25,
3410 ayi_information26,
3411 ayi_information27,
3412 ayi_information28,
3413 ayi_information29,
3414 ayi_information30,
3415 ayi_information31,
3416 ayi_information32,
3417 ayi_information33,
3418 ayi_information34,
3419 ayi_information35,
3420 object_version_number)
3421 values (
3422 l_assignment_yea_info_id,
3423 p_assignment_id,
3424 p_information_type,
3425 p_target_year,
3426 p_information_type,
3427 p_information1,
3428 p_information2,
3429 p_information3,
3430 p_information4,
3431 p_information5,
3432 p_information6,
3433 p_information7,
3434 p_information8,
3435 p_information9,
3436 p_information10,
3437 p_information11,
3438 p_information12,
3439 p_information13,
3440 p_information14,
3441 p_information15,
3442 p_information16,
3443 p_information17,
3444 p_information18,
3445 p_information19,
3446 p_information20,
3447 p_information21,
3448 p_information22,
3449 p_information23,
3450 p_information24,
3451 p_information25,
3452 p_information26,
3453 p_information27,
3454 p_information28,
3455 p_information29,
3456 p_information30,
3457 p_information31,
3458 p_information32,
3459 p_information33,
3460 p_information34,
3461 p_information35,
3462 l_object_version_number);
3463 --
3464 p_assignment_yea_info_id := l_assignment_yea_info_id;
3465 --
3466 if g_debug then
3467 hr_utility.set_location(l_proc,1000);
3468 end if;
3469 --
3470 end insert_kr_ass_yea_info;
3471 --
3472 -- -------------------------------------------------------------------------
3473 -- load_kr_ass_yea_info
3474 -- -------------------------------------------------------------------------
3475 procedure load_kr_ass_yea_info(
3476 p_assignment_id in number,
3477 p_target_year in number,
3478 p_information_type in varchar2,
3479 p_information1 in varchar2 default null,
3480 p_information2 in varchar2 default null,
3481 p_information3 in varchar2 default null,
3482 p_information4 in varchar2 default null,
3483 p_information5 in varchar2 default null,
3484 p_information6 in varchar2 default null,
3485 p_information7 in varchar2 default null,
3486 p_information8 in varchar2 default null,
3487 p_information9 in varchar2 default null,
3488 p_information10 in varchar2 default null,
3489 p_information11 in varchar2 default null,
3490 p_information12 in varchar2 default null,
3491 p_information13 in varchar2 default null,
3492 p_information14 in varchar2 default null,
3493 p_information15 in varchar2 default null,
3494 p_information16 in varchar2 default null,
3495 p_information17 in varchar2 default null,
3496 p_information18 in varchar2 default null,
3497 p_information19 in varchar2 default null,
3498 p_information20 in varchar2 default null,
3499 p_information21 in varchar2 default null,
3500 p_information22 in varchar2 default null,
3501 p_information23 in varchar2 default null,
3502 p_information24 in varchar2 default null,
3503 p_information25 in varchar2 default null,
3504 p_information26 in varchar2 default null,
3505 p_information27 in varchar2 default null,
3506 p_information28 in varchar2 default null,
3507 p_information29 in varchar2 default null,
3508 p_information30 in varchar2 default null,
3509 p_information31 in varchar2 default null,
3510 p_information32 in varchar2 default null,
3511 p_information33 in varchar2 default null,
3512 p_information34 in varchar2 default null,
3513 p_information35 in varchar2 default null,
3514 p_force_update in varchar2 default null,
3515 p_assignment_yea_info_id out nocopy number)
3516 is
3517 --
3518 l_proc varchar2(80) := c_package||'load_kr_ass_yea_info';
3519 --
3520 l_assignment_yea_info_id number;
3521 l_object_version_number number := 1;
3522 --
3523 cursor csr_kr_ass_yea
3524 is
3525 select pkayi.assignment_yea_info_id,
3526 pkayi.object_version_number
3527 from per_kr_assignment_yea_info pkayi
3528 where pkayi.assignment_id = p_assignment_id
3529 and pkayi.target_year = p_target_year
3530 and pkayi.information_type = p_information_type
3531 and pkayi.ayi_information_category = p_information_type
3532 for update nowait;
3533 --
3534 l_csr_kr_ass_yea csr_kr_ass_yea%rowtype;
3535 --
3536 begin
3537 --
3538 if g_debug then
3539 hr_utility.set_location(l_proc,0);
3540 end if;
3541 --
3542 begin
3543 --
3544 open csr_kr_ass_yea;
3545 fetch csr_kr_ass_yea into l_csr_kr_ass_yea;
3546 close csr_kr_ass_yea;
3547 --
3548 if l_csr_kr_ass_yea.assignment_yea_info_id is not null then
3549 --
3550 if g_debug then
3551 hr_utility.set_location(l_proc,10);
3552 end if;
3553 --
3554 l_assignment_yea_info_id := l_csr_kr_ass_yea.assignment_yea_info_id;
3555 l_object_version_number := l_csr_kr_ass_yea.object_version_number + 1;
3556 --
3557 update per_kr_assignment_yea_info
3558 set ayi_information1 = decode(p_force_update,'Y',decode(p_information1,'NULL',null,nvl(p_information1,ayi_information1)),nvl(p_information1,ayi_information1)),
3559 ayi_information2 = decode(p_force_update,'Y',decode(p_information2,'NULL',null,nvl(p_information2,ayi_information2)),nvl(p_information2,ayi_information2)),
3560 ayi_information3 = decode(p_force_update,'Y',decode(p_information3,'NULL',null,nvl(p_information3,ayi_information3)),nvl(p_information3,ayi_information3)),
3561 ayi_information4 = decode(p_force_update,'Y',decode(p_information4,'NULL',null,nvl(p_information4,ayi_information4)),nvl(p_information4,ayi_information4)),
3562 ayi_information5 = decode(p_force_update,'Y',decode(p_information5,'NULL',null,nvl(p_information5,ayi_information5)),nvl(p_information5,ayi_information5)),
3563 ayi_information6 = decode(p_force_update,'Y',decode(p_information6,'NULL',null,nvl(p_information6,ayi_information6)),nvl(p_information6,ayi_information6)),
3564 ayi_information7 = decode(p_force_update,'Y',decode(p_information7,'NULL',null,nvl(p_information7,ayi_information7)),nvl(p_information7,ayi_information7)),
3565 ayi_information8 = decode(p_force_update,'Y',decode(p_information8,'NULL',null,nvl(p_information8,ayi_information8)),nvl(p_information8,ayi_information8)),
3566 ayi_information9 = decode(p_force_update,'Y',decode(p_information9,'NULL',null,nvl(p_information9,ayi_information9)),nvl(p_information9,ayi_information9)),
3567 ayi_information10 = decode(p_force_update,'Y',decode(p_information10,'NULL',null,nvl(p_information10,ayi_information10)),nvl(p_information10,ayi_information10)),
3568 ayi_information11 = decode(p_force_update,'Y',decode(p_information11,'NULL',null,nvl(p_information11,ayi_information11)),nvl(p_information11,ayi_information11)),
3569 ayi_information12 = decode(p_force_update,'Y',decode(p_information12,'NULL',null,nvl(p_information12,ayi_information12)),nvl(p_information12,ayi_information12)),
3570 ayi_information13 = decode(p_force_update,'Y',decode(p_information13,'NULL',null,nvl(p_information13,ayi_information13)),nvl(p_information13,ayi_information13)),
3571 ayi_information14 = decode(p_force_update,'Y',decode(p_information14,'NULL',null,nvl(p_information14,ayi_information14)),nvl(p_information14,ayi_information14)),
3572 ayi_information15 = decode(p_force_update,'Y',decode(p_information15,'NULL',null,nvl(p_information15,ayi_information15)),nvl(p_information15,ayi_information15)),
3573 ayi_information16 = decode(p_force_update,'Y',decode(p_information16,'NULL',null,nvl(p_information16,ayi_information16)),nvl(p_information16,ayi_information16)),
3574 ayi_information17 = decode(p_force_update,'Y',decode(p_information17,'NULL',null,nvl(p_information17,ayi_information17)),nvl(p_information17,ayi_information17)),
3575 ayi_information18 = decode(p_force_update,'Y',decode(p_information18,'NULL',null,nvl(p_information18,ayi_information18)),nvl(p_information18,ayi_information18)),
3576 ayi_information19 = decode(p_force_update,'Y',decode(p_information19,'NULL',null,nvl(p_information19,ayi_information19)),nvl(p_information19,ayi_information19)),
3577 ayi_information20 = decode(p_force_update,'Y',decode(p_information20,'NULL',null,nvl(p_information20,ayi_information20)),nvl(p_information20,ayi_information20)),
3578 ayi_information21 = decode(p_force_update,'Y',decode(p_information21,'NULL',null,nvl(p_information21,ayi_information21)),nvl(p_information21,ayi_information21)),
3579 ayi_information22 = decode(p_force_update,'Y',decode(p_information22,'NULL',null,nvl(p_information22,ayi_information22)),nvl(p_information22,ayi_information22)),
3580 ayi_information23 = decode(p_force_update,'Y',decode(p_information23,'NULL',null,nvl(p_information23,ayi_information23)),nvl(p_information23,ayi_information23)),
3581 ayi_information24 = decode(p_force_update,'Y',decode(p_information24,'NULL',null,nvl(p_information24,ayi_information24)),nvl(p_information24,ayi_information24)),
3582 ayi_information25 = decode(p_force_update,'Y',decode(p_information25,'NULL',null,nvl(p_information25,ayi_information25)),nvl(p_information25,ayi_information25)),
3583 ayi_information26 = decode(p_force_update,'Y',decode(p_information26,'NULL',null,nvl(p_information26,ayi_information26)),nvl(p_information26,ayi_information26)),
3584 ayi_information27 = decode(p_force_update,'Y',decode(p_information27,'NULL',null,nvl(p_information27,ayi_information27)),nvl(p_information27,ayi_information27)),
3585 ayi_information28 = decode(p_force_update,'Y',decode(p_information28,'NULL',null,nvl(p_information28,ayi_information28)),nvl(p_information28,ayi_information28)),
3586 ayi_information29 = decode(p_force_update,'Y',decode(p_information29,'NULL',null,nvl(p_information29,ayi_information29)),nvl(p_information29,ayi_information29)),
3587 ayi_information30 = decode(p_force_update,'Y',decode(p_information30,'NULL',null,nvl(p_information30,ayi_information30)),nvl(p_information30,ayi_information30)),
3588 ayi_information31 = decode(p_force_update,'Y',decode(p_information31,'NULL',null,nvl(p_information31,ayi_information31)),nvl(p_information31,ayi_information31)),
3589 ayi_information32 = decode(p_force_update,'Y',decode(p_information32,'NULL',null,nvl(p_information32,ayi_information32)),nvl(p_information32,ayi_information32)),
3590 ayi_information33 = decode(p_force_update,'Y',decode(p_information33,'NULL',null,nvl(p_information33,ayi_information33)),nvl(p_information33,ayi_information33)),
3591 ayi_information34 = decode(p_force_update,'Y',decode(p_information34,'NULL',null,nvl(p_information34,ayi_information34)),nvl(p_information34,ayi_information34)),
3592 ayi_information35 = decode(p_force_update,'Y',decode(p_information35,'NULL',null,nvl(p_information35,ayi_information35)),nvl(p_information35,ayi_information35)),
3593 object_version_number = l_object_version_number
3594 where assignment_yea_info_id = l_csr_kr_ass_yea.assignment_yea_info_id;
3595 --
3596 else
3597 --
3598 insert_kr_ass_yea_info(
3599 p_assignment_id => p_assignment_id,
3600 p_target_year => p_target_year,
3601 p_information_type => p_information_type,
3602 p_information1 => p_information1,
3603 p_information2 => p_information2,
3604 p_information3 => p_information3,
3605 p_information4 => p_information4,
3606 p_information5 => p_information5,
3607 p_information6 => p_information6,
3608 p_information7 => p_information7,
3609 p_information8 => p_information8,
3610 p_information9 => p_information9,
3611 p_information10 => p_information10,
3612 p_information11 => p_information11,
3613 p_information12 => p_information12,
3614 p_information13 => p_information13,
3615 p_information14 => p_information14,
3616 p_information15 => p_information15,
3617 p_information16 => p_information16,
3618 p_information17 => p_information17,
3619 p_information18 => p_information18,
3620 p_information19 => p_information19,
3621 p_information20 => p_information20,
3622 p_information21 => p_information21,
3623 p_information22 => p_information22,
3624 p_information23 => p_information23,
3625 p_information24 => p_information24,
3626 p_information25 => p_information25,
3627 p_information26 => p_information26,
3628 p_information27 => p_information27,
3629 p_information28 => p_information28,
3630 p_information29 => p_information29,
3631 p_information30 => p_information30,
3632 p_information31 => p_information31,
3633 p_information32 => p_information32,
3634 p_information33 => p_information33,
3635 p_information34 => p_information34,
3636 p_information35 => p_information35,
3637 p_assignment_yea_info_id => l_assignment_yea_info_id);
3638 --
3639 end if;
3640 --
3641 exception
3642 when others then
3643 --
3644 fnd_message.set_name('PAY','PAY_KR_YEA_PDF_LOCK_STATUS');
3645 fnd_message.set_token('ASS_ID',to_char(p_assignment_id));
3646 g_msg := fnd_message.get;
3647 --
3648 fnd_file.put_line(fnd_file.log,g_msg);
3649 --
3650 if g_debug then
3651 hr_utility.trace('skipped because p_assignment_id : '||to_char(p_assignment_id)||' entry status was locked.');
3652 end if;
3653 --
3654 end;
3655 --
3656 p_assignment_yea_info_id := l_assignment_yea_info_id;
3657 --
3658 if g_debug then
3659 hr_utility.set_location(l_proc,1000);
3660 end if;
3661 --
3662 end load_kr_ass_yea_info;
3663 --
3664 -- -------------------------------------------------------------------------
3665 -- cei_datetrack_update_mode
3666 -- -------------------------------------------------------------------------
3667 function cei_datetrack_update_mode(
3668 p_contact_extra_info_id in number,
3669 p_effective_start_date in date,
3670 p_effective_end_date in date,
3671 p_effective_date in date)
3672 return varchar2
3673 is
3674 --
3675 l_datetrack_mode varchar2(30);
3676 l_exists varchar2(1);
3677 --
3678 cursor csr_future_exists
3679 is
3680 select 'Y'
3681 from dual
3682 where exists(
3683 select null
3684 from per_contact_extra_info_f
3685 where contact_extra_info_id = p_contact_extra_info_id
3686 and effective_start_date = p_effective_end_date + 1);
3687 --
3688 begin
3689 --
3690 if p_effective_start_date = p_effective_date then
3691 --
3692 l_datetrack_mode := 'CORRECTION';
3693 --
3694 else
3695 --
3696 open csr_future_exists;
3697 fetch csr_future_exists into l_exists;
3698 if csr_future_exists%notfound then
3699 l_datetrack_mode := 'UPDATE';
3700 else
3701 l_datetrack_mode := 'UPDATE_CHANGE_INSERT';
3702 end if;
3703 --
3704 end if;
3705 --
3706 return l_datetrack_mode;
3707 end cei_datetrack_update_mode;
3708 --
3709 -- -------------------------------------------------------------------------
3710 -- load_cei_dpnt_info
3711 -- -------------------------------------------------------------------------
3712 procedure load_cei_dpnt_info(
3713 p_assignment_id in number,
3714 p_effective_date in date,
3715 p_information_type in varchar2,
3716 p_emp_num in varchar2 default null,
3717 p_emp_name in varchar2 default null,
3718 p_con_ni in varchar2,
3719 p_information1 in varchar2 default null,
3720 p_information2 in varchar2 default null,
3721 p_information3 in varchar2 default null,
3722 p_information4 in varchar2 default null,
3723 p_information5 in varchar2 default null,
3724 p_information6 in varchar2 default null,
3725 p_information7 in varchar2 default null,
3726 p_information8 in varchar2 default null,
3727 p_information9 in varchar2 default null,
3728 p_information10 in varchar2 default null,
3729 p_information11 in varchar2 default null,
3730 p_information12 in varchar2 default null,
3731 p_information13 in varchar2 default null,
3732 p_information14 in varchar2 default null,
3733 p_information15 in varchar2 default null,
3734 p_information16 in varchar2 default null,
3735 p_information17 in varchar2 default null,
3736 p_information18 in varchar2 default null,
3737 p_information19 in varchar2 default null,
3738 p_information20 in varchar2 default null,
3739 p_information21 in varchar2 default null,
3740 p_information22 in varchar2 default null,
3741 p_information23 in varchar2 default null,
3742 p_information24 in varchar2 default null,
3743 p_information25 in varchar2 default null,
3744 p_information26 in varchar2 default null,
3745 p_information27 in varchar2 default null,
3746 p_information28 in varchar2 default null,
3747 p_information29 in varchar2 default null,
3748 p_information30 in varchar2 default null,
3749 p_contact_extra_info_id out nocopy number)
3750 is
3751 --
3752 l_proc varchar2(80) := c_package||'load_cei_dpnt_info';
3753 --
3754 l_contact_extra_info_id number;
3755 l_object_version_number number;
3756 l_esd date;
3757 l_eed date;
3758 --
3759 l_update_datetrack_mode varchar2(30);
3760 --
3761 cursor csr_pcr_dpnt
3762 is
3763 select pcr.contact_relationship_id
3764 from per_all_assignments_f pa,
3765 per_contact_relationships pcr,
3766 per_all_people_f pp_con
3767 where pa.assignment_id = p_assignment_id
3768 and p_effective_date
3769 between pa.effective_start_date and pa.effective_end_date
3770 and pcr.person_id = pa.person_id
3771 and pp_con.person_id = pcr.contact_person_id
3772 and p_effective_date
3773 between pp_con.effective_start_date and pp_con.effective_end_date
3774 and cnv_ni(pp_con.national_identifier) = p_con_ni;
3775 --
3776 l_csr_pcr_dpnt csr_pcr_dpnt%rowtype;
3777 --
3778 cursor csr_cei_dpnt_info(
3779 p_contact_relationship_id in number)
3780 is
3781 select pcei.contact_extra_info_id,
3782 pcei.effective_start_date,
3783 pcei.effective_end_date,
3784 pcei.object_version_number,
3785 pcei.cei_information1,
3786 pcei.cei_information2,
3787 pcei.cei_information3,
3788 pcei.cei_information4,
3789 pcei.cei_information5,
3790 pcei.cei_information6,
3791 pcei.cei_information7,
3792 pcei.cei_information8,
3793 pcei.cei_information9,
3794 pcei.cei_information10,
3795 pcei.cei_information11,
3796 pcei.cei_information12,
3797 pcei.cei_information13,
3798 pcei.cei_information14,
3799 pcei.cei_information15,
3800 pcei.cei_information16,
3801 pcei.cei_information17,
3802 pcei.cei_information18,
3803 pcei.cei_information19,
3804 pcei.cei_information20,
3805 pcei.cei_information21,
3806 pcei.cei_information22,
3807 pcei.cei_information23,
3808 pcei.cei_information24,
3809 pcei.cei_information25,
3810 pcei.cei_information26,
3811 pcei.cei_information27,
3812 pcei.cei_information28,
3813 pcei.cei_information29,
3814 pcei.cei_information30
3815 from per_contact_extra_info_f pcei
3816 where pcei.contact_relationship_id = p_contact_relationship_id
3817 and pcei.cei_information_category = p_information_type
3818 and p_effective_date
3819 between pcei.effective_start_date and pcei.effective_end_date;
3820 --
3821 l_csr_cei_dpnt_info csr_cei_dpnt_info%rowtype;
3822 --
3823 begin
3824 --
3825 if g_debug then
3826 hr_utility.set_location(l_proc,0);
3827 end if;
3828 --
3829 open csr_pcr_dpnt;
3830 fetch csr_pcr_dpnt into l_csr_pcr_dpnt;
3831 close csr_pcr_dpnt;
3832 --
3833 if l_csr_pcr_dpnt.contact_relationship_id is not null then
3834 --
3835 if g_debug then
3836 hr_utility.set_location(l_proc,10);
3837 end if;
3838 --
3839 open csr_cei_dpnt_info(l_csr_pcr_dpnt.contact_relationship_id);
3840 fetch csr_cei_dpnt_info into l_csr_cei_dpnt_info;
3841 close csr_cei_dpnt_info;
3842 --
3843 if l_csr_cei_dpnt_info.contact_extra_info_id is not null then
3844 --
3845 if g_debug then
3846 hr_utility.set_location(l_proc,20);
3847 end if;
3848 --
3849 l_contact_extra_info_id := l_csr_cei_dpnt_info.contact_extra_info_id;
3850 l_object_version_number := l_csr_cei_dpnt_info.object_version_number;
3851 --
3852 l_update_datetrack_mode := cei_datetrack_update_mode(
3853 p_contact_extra_info_id => l_contact_extra_info_id,
3854 p_effective_start_date => l_csr_cei_dpnt_info.effective_start_date,
3855 p_effective_end_date => l_csr_cei_dpnt_info.effective_end_date,
3856 p_effective_date => p_effective_date);
3857 --
3858 hr_contact_extra_info_api.update_contact_extra_info(
3859 p_validate => false,
3860 p_effective_date => p_effective_date,
3861 p_datetrack_update_mode => l_update_datetrack_mode,
3862 p_contact_extra_info_id => l_contact_extra_info_id,
3863 p_object_version_number => l_object_version_number,
3864 p_cei_information1 => nvl(p_information1,l_csr_cei_dpnt_info.cei_information1),
3865 p_cei_information2 => nvl(p_information2,l_csr_cei_dpnt_info.cei_information2),
3866 p_cei_information3 => nvl(p_information3,l_csr_cei_dpnt_info.cei_information3),
3867 p_cei_information4 => nvl(p_information4,l_csr_cei_dpnt_info.cei_information4),
3868 p_cei_information5 => nvl(p_information5,l_csr_cei_dpnt_info.cei_information5),
3869 p_cei_information6 => nvl(p_information6,l_csr_cei_dpnt_info.cei_information6),
3870 p_cei_information7 => nvl(p_information7,l_csr_cei_dpnt_info.cei_information7),
3871 p_cei_information8 => nvl(p_information8,l_csr_cei_dpnt_info.cei_information8),
3872 p_cei_information9 => nvl(p_information9,l_csr_cei_dpnt_info.cei_information9),
3873 p_cei_information10 => nvl(p_information10,l_csr_cei_dpnt_info.cei_information10),
3874 p_cei_information11 => nvl(p_information11,l_csr_cei_dpnt_info.cei_information11),
3875 p_cei_information12 => nvl(p_information12,l_csr_cei_dpnt_info.cei_information12),
3876 p_cei_information13 => nvl(p_information13,l_csr_cei_dpnt_info.cei_information13),
3877 p_cei_information14 => nvl(p_information14,l_csr_cei_dpnt_info.cei_information14),
3878 p_cei_information15 => nvl(p_information15,l_csr_cei_dpnt_info.cei_information15),
3879 p_cei_information16 => nvl(p_information16,l_csr_cei_dpnt_info.cei_information16),
3880 p_cei_information17 => nvl(p_information17,l_csr_cei_dpnt_info.cei_information17),
3881 p_cei_information18 => nvl(p_information18,l_csr_cei_dpnt_info.cei_information18),
3882 p_cei_information19 => nvl(p_information19,l_csr_cei_dpnt_info.cei_information19),
3883 p_cei_information20 => nvl(p_information20,l_csr_cei_dpnt_info.cei_information20),
3884 p_cei_information21 => nvl(p_information21,l_csr_cei_dpnt_info.cei_information21),
3885 p_cei_information22 => nvl(p_information22,l_csr_cei_dpnt_info.cei_information22),
3886 p_cei_information23 => nvl(p_information23,l_csr_cei_dpnt_info.cei_information23),
3887 p_cei_information24 => nvl(p_information24,l_csr_cei_dpnt_info.cei_information24),
3888 p_cei_information25 => nvl(p_information25,l_csr_cei_dpnt_info.cei_information25),
3889 p_cei_information26 => nvl(p_information26,l_csr_cei_dpnt_info.cei_information26),
3890 p_cei_information27 => nvl(p_information27,l_csr_cei_dpnt_info.cei_information27),
3891 p_cei_information28 => nvl(p_information28,l_csr_cei_dpnt_info.cei_information28),
3892 p_cei_information29 => nvl(p_information29,l_csr_cei_dpnt_info.cei_information29),
3893 p_cei_information30 => nvl(p_information30,l_csr_cei_dpnt_info.cei_information30),
3894 p_effective_start_date => l_esd,
3895 p_effective_end_date => l_eed);
3896 --
3897 else
3898 --
3899 if g_debug then
3900 hr_utility.set_location(l_proc,30);
3901 end if;
3902 --
3903 hr_contact_extra_info_api.create_contact_extra_info(
3904 p_validate => false,
3905 p_effective_date => p_effective_date,
3906 p_contact_relationship_id => l_csr_pcr_dpnt.contact_relationship_id,
3907 p_information_type => p_information_type,
3908 p_cei_information_category => p_information_type,
3909 p_cei_information1 => p_information1,
3910 p_cei_information2 => p_information2,
3911 p_cei_information3 => p_information3,
3912 p_cei_information4 => p_information4,
3913 p_cei_information5 => p_information5,
3914 p_cei_information6 => p_information6,
3915 p_cei_information7 => p_information7,
3916 p_cei_information8 => p_information8,
3917 p_cei_information9 => p_information9,
3918 p_cei_information10 => p_information10,
3919 p_cei_information11 => p_information11,
3920 p_cei_information12 => p_information12,
3921 p_cei_information13 => p_information13,
3922 p_cei_information14 => p_information14,
3923 p_cei_information15 => p_information15,
3924 p_cei_information16 => p_information16,
3925 p_cei_information17 => p_information17,
3926 p_cei_information18 => p_information18,
3927 p_cei_information19 => p_information19,
3928 p_cei_information20 => p_information20,
3929 p_cei_information21 => p_information21,
3930 p_cei_information22 => p_information22,
3931 p_cei_information23 => p_information23,
3932 p_cei_information24 => p_information24,
3933 p_cei_information25 => p_information25,
3934 p_cei_information26 => p_information26,
3935 p_cei_information27 => p_information27,
3936 p_cei_information28 => p_information28,
3937 p_cei_information29 => p_information29,
3938 p_cei_information30 => p_information30,
3939 p_contact_extra_info_id => l_contact_extra_info_id,
3940 p_object_version_number => l_object_version_number,
3941 p_effective_start_date => l_esd,
3942 p_effective_end_date => l_eed);
3943 --
3944 end if;
3945 --
3946 else
3947 --
3948 if g_debug then
3949 hr_utility.set_location(l_proc,40);
3950 end if;
3951 --
3952 --warning
3953 fnd_message.set_name('PAY','PAY_KR_YEA_PDF_NO_CON_REL');
3954 fnd_message.set_token('EMP_NAME',p_emp_name);
3955 fnd_message.set_token('EMP_NO',p_emp_num);
3956 fnd_message.set_token('CON_NI',p_con_ni);
3957 --
3958 g_msg := fnd_message.get;
3959 --
3960 fnd_file.put_line(fnd_file.log,g_msg);
3961 --
3962 end if;
3963 --
3964 p_contact_extra_info_id := l_contact_extra_info_id;
3965 --
3966 if g_debug then
3967 hr_utility.set_location(l_proc,1000);
3968 end if;
3969 --
3970 end load_cei_dpnt_info;
3971 --
3972 -- -------------------------------------------------------------------------
3973 -- show_xml
3974 -- -------------------------------------------------------------------------
3975 procedure show_xml(
3976 p_xml in clob)
3977 is
3978 --
3979 l_proc varchar2(80) := c_package||'show_xml';
3980 --
3981 c_len_size number := 200;
3982 l_xml_len number;
3983 l_len_st number := 1;
3984 l_len_cnt number := 0;
3985 l_len_size number;
3986 --
3987 begin
3988 --
3989 if g_debug then
3990 hr_utility.set_location(l_proc,0);
3991 end if;
3992 --
3993 l_xml_len := dbms_lob.getlength(p_xml);
3994 --
3995 loop
3996 --
3997 l_len_st := l_len_cnt * c_len_size + 1;
3998 --
3999 l_len_size := c_len_size;
4000 if l_len_st + c_len_size - 1 > l_xml_len then
4001 --
4002 l_len_size := l_xml_len - l_len_st + 1;
4003 --
4004 end if;
4005 --
4006 fnd_file.put_line(fnd_file.log,dbms_lob.substr(p_xml,l_len_size,l_len_st));
4007 --
4008 if l_len_st + c_len_size - 1 > l_xml_len then
4009 --
4010 exit;
4011 --
4012 end if;
4013 --
4014 l_len_cnt := l_len_cnt + 1;
4015 --
4016 end loop;
4017 --
4018 if g_debug then
4019 hr_utility.trace('l_xml_len : '||to_char(l_xml_len));
4020 hr_utility.set_location(l_proc,1000);
4021 end if;
4022 --
4023 end show_xml;
4024 --
4025 -- -------------------------------------------------------------------------
4026 -- main_xml
4027 -- -------------------------------------------------------------------------
4028 function main_xml(
4029 p_assignment_id in number,
4030 p_emp_num in varchar2,
4031 p_ni_num in varchar2,
4032 p_emp_name in varchar2,
4033 p_file_id in number,
4034 p_xml in clob)
4035 return varchar2
4036 is
4037 --
4038 l_proc varchar2(80) := c_package||'main_xml';
4039 --
4040 l_status varchar2(1);
4041 --
4042 l_ni_num per_all_people_f.national_identifier%type;
4043 --
4044 xml xmltype;
4045 xml_doc dbms_xmldom.domdocument;
4046 --
4047 form_nodelist dbms_xmldom.domnodelist;
4048 form_node dbms_xmldom.domnode;
4049 --
4050 l_form_cnt number;
4051 --
4052 l_value_tbl t_char_tbl;
4053 l_values_tbl t_val_by_key_tbl;
4054 --l_value per_kr_assignment_yea_info.ayi_information1%type;
4055 --
4056 l_ass_data_rec t_ass_data_rec;
4057 l_ass_data_rec_n t_ass_data_rec;
4058 --
4059 l_ass_med_tbl t_med_tbl;
4060 l_ass_don_tbl t_don_tbl;
4061 l_ass_educ_tbl t_educ_tbl;
4062 l_ass_uniform_tbl t_uniform_tbl;
4063 l_ass_saving_tbl t_saving_tbl;
4064 l_ass_dpnt_ind_tbl t_char_tbl;
4065 l_ass_dpnt_tbl t_dpnt_tbl;
4066 --
4067 l_med_ind number;
4068 l_med_tbl t_med_tbl;
4069 --
4070 l_don_poli number;
4071 l_don_tbl_tmp t_don_tbl;
4072 l_don_ind number;
4073 l_don_tbl t_don_tbl;
4074 --
4075 l_educ_tbl t_educ_tbl;
4076 l_uniform_tbl t_uniform_tbl;
4077 --
4078 l_saving_ind number;
4079 l_saving_tbl t_saving_tbl;
4080 l_cards_tbl t_cards_tbl;
4081 l_lthouse_tbl t_lthouse_tbl;
4082 l_pen_saving_ind number := 0;
4083 l_sep_pen_saving_tbl t_saving_tbl;
4084 l_pen_saving_tbl t_saving_tbl;
4085 l_hou_saving_tbl t_saving_tbl;
4086 l_lts_saving_tbl t_saving_tbl;
4087 --
4088 l_med_exp_nts number;
4089 l_don_exp_nts number;
4090 --
4091 l_dpnt_ind_tbl t_char_tbl;
4092 l_dpnt_ind number;
4093 l_dpnt_tbl t_dpnt_tbl;
4094 l_dpnt_num number;
4095 --
4096 l_assignment_yea_info_id number;
4097 l_contact_extra_info_id number;
4098 --
4099 l_max_priority number;
4100 l_tmp per_kr_assignment_yea_info.ayi_information1%type;
4101 --
4102 l_return_status varchar2(5);
4103 l_return_message varchar2(300);
4104 l_ff_message0 per_kr_assignment_yea_info.ayi_information1%type;
4105 l_ff_message1 per_kr_assignment_yea_info.ayi_information1%type;
4106 l_ff_message2 per_kr_assignment_yea_info.ayi_information1%type;
4107 l_ff_message3 per_kr_assignment_yea_info.ayi_information1%type;
4108 l_ff_message4 per_kr_assignment_yea_info.ayi_information1%type;
4109 l_ff_message5 per_kr_assignment_yea_info.ayi_information1%type;
4110 l_ff_message6 per_kr_assignment_yea_info.ayi_information1%type;
4111 l_ff_message7 per_kr_assignment_yea_info.ayi_information1%type;
4112 l_ff_message8 per_kr_assignment_yea_info.ayi_information1%type;
4113 l_ff_message9 per_kr_assignment_yea_info.ayi_information1%type;
4114 l_ff_return_status varchar2(30);
4115 l_failed_record per_kr_assignment_yea_info.information_type%type;
4116 -- Bug 14062211
4117 p_stat_self number;
4118 p_stat_spouse number;
4119 p_stat_child number;
4120 p_pol_self number;
4121 p_tax_self number;
4122 p_tax_spouse number;
4123 p_tax_child number;
4124 p_pledt_self number;
4125 p_pledt_spouse number;
4126 p_pledt_child number;
4127 p_esoa_self number;
4128 p_spec_self number;
4129 p_spec_spouse number;
4130 p_spec_child number;
4131 p_rel_self number;
4132 p_rel_spouse number;
4133 p_rel_child number;
4134 p_oth_self number;
4135 p_oth_spouse number;
4136 p_oth_child number;
4137 p_stat_parent number;
4138 p_stat_bro_sis number;
4139 p_tax_parent number;
4140 p_tax_bro_sis number;
4141 p_pledt_parent number;
4142 p_pledt_bro_sis number;
4143 p_spec_parent number;
4144 p_spec_bro_sis number;
4145 p_rel_parent number;
4146 p_rel_bro_sis number;
4147 p_oth_parent number;
4148 p_oth_bro_sis number;
4149 p_political number;
4150 p_statutory number;
4151 p_esoa number;
4152 p_pledt number;
4153 p_religious number;
4154 p_specified number;
4155 p_tax_law number;
4156 p_total_don_dpnts number;
4157 l_start_dt number;
4158 --
4159 cursor csr_pkayi
4160 is
4161 select sptei.ayi_information5 pers_ins_prem,
4162 sptei.ayi_information6 disabled_ins_prem,
4163 sptei.ayi_information15 housing_loan_repay,
4164 sptei.ayi_information14 housing_loan_date,
4165 sptei.ayi_information17 lt_housing_loan_interest_rep,
4166 sptei.ayi_information26 lt_housing_loan_int_repay_1,
4167 sptei2.ayi_information2 lt_housing_loan_int_repay_2,
4168 sptei3.ayi_information6 lt_2012_fixed_intr_wo_grace,
4169 sptei3.ayi_information7 lt_2012_housing_other_intr,
4170 sptei.ayi_information9 med_exp_aged,
4171 sptei.ayi_information24 med_exp_emp,
4172 sptei.ayi_information7 med_exp,
4173 sptei.ayi_information19 political_donation1,
4174 sptei.ayi_information10 ee_educ_exp,
4175 sptei2.ayi_information2 ee_occupation_educ_exp,
4176 tei.ayi_information3 pers_pension_prem,
4177 tei.ayi_information20 small_bus_install,
4178 tei.ayi_information7 credit_card_exp,
4179 tei.ayi_information13 cash_receipt_exp,
4180 tei.ayi_information10 direct_card_exp,
4181 tei2.ayi_information3 credit_tm_exp,
4182 tei2.ayi_information5 cash_tm_exp,
4183 tei2.ayi_information7 direct_tm_exp,
4184 eed.ayi_information6 ins_exp_nts,
4185 eed.ayi_information2 med_exp_nts,
4186 eed.ayi_information3 educ_exp_nts,
4187 eed.ayi_information4 card_exp_nts,
4188 eed.ayi_information8 card_tm_nts,
4189 eed.ayi_information7 direct_payment_nts,
4190 eed.ayi_information9 direct_tm_nts,
4191 eed.ayi_information5 don_exp_nts,
4192 --
4193 es.ayi_information3 entry_status,
4194 --
4195 sptei.ayi_information11 housing_saving_type,
4196 sptei.ayi_information12 housing_saving,
4197 sptei.ayi_information13 housing_purchase_date,
4198 sptei.ayi_information16 lt_housing_loan_date,
4199 sptei.ayi_information18 donation1,
4200 sptei.ayi_information2 hi_prem,
4201 sptei.ayi_information20 political_donation2,
4202 sptei.ayi_information21 political_donation3,
4203 sptei.ayi_information22 donation2,
4204 sptei.ayi_information23 donation3,
4205 sptei.ayi_information25 lt_housing_loan_date_1,
4206 sptei.ayi_information27 mfr_marriage_occasions,
4207 sptei.ayi_information28 mfr_funeral_occasions,
4208 sptei.ayi_information29 mfr_relocation_occasions,
4209 sptei.ayi_information3 ei_prem,
4210 sptei.ayi_information30 esoa_donation,
4211 sptei.ayi_information4 pers_ins_name,
4212 sptei.ayi_information8 med_exp_disabled,
4213 fwtbi.ayi_information1 immigration_purpose,
4214 fwtbi.ayi_information2 contract_date,
4215 fwtbi.ayi_information3 expiry_date,
4216 fwtbi.ayi_information4 stax_applicable_flag,
4217 fwtbi.ayi_information5 fw_application_date,
4218 fwtbi.ayi_information6 fw_submission_date,
4219 ovtbi.ayi_information1 tax_paid_date,
4220 ovtbi.ayi_information10 ovs_submission_date,
4221 ovtbi.ayi_information11 kr_ovs_location,
4222 ovtbi.ayi_information12 kr_ovs_work_period,
4223 ovtbi.ayi_information13 kr_ovs_responsibility,
4224 ovtbi.ayi_information2 territory_code,
4225 ovtbi.ayi_information3 currency_code,
4226 ovtbi.ayi_information4 taxable,
4227 ovtbi.ayi_information5 taxable_subj_tax_break,
4228 ovtbi.ayi_information6 tax_break_rate,
4229 ovtbi.ayi_information7 tax_foreign_currency,
4230 ovtbi.ayi_information8 tax,
4231 ovtbi.ayi_information9 ovs_application_date,
4232 tbi.ayi_information2 housing_loan_interest_repay,
4233 tbi.ayi_information3 stock_saving,
4234 tbi.ayi_information4 lt_stock_saving1,
4235 tbi.ayi_information5 lt_stock_saving2,
4236 tei.ayi_information11 dpnt_direct_exp,
4237 tei.ayi_information12 giro_tuition_paid_exp,
4238 tei.ayi_information2 np_prem,
4239 tei.ayi_information4 pers_pension_saving,
4240 tei.ayi_information5 invest_partnership_fin1,
4241 tei.ayi_information6 invest_partnership_fin2,
4242 tei.ayi_information8 emp_stock_own_plan_contri,
4243 tei.ayi_information9 credit_card_exp_dpnt,
4244 tei.ayi_information15 pen_prem,
4245 sptei2.ayi_information11 ltci_prem
4246 from per_kr_assignment_yea_info sptei,
4247 per_kr_assignment_yea_info sptei2,
4248 per_kr_assignment_yea_info sptei3,
4249 per_kr_assignment_yea_info fwtbi,
4250 per_kr_assignment_yea_info ovtbi,
4251 per_kr_assignment_yea_info tbi,
4252 per_kr_assignment_yea_info tei,
4253 per_kr_assignment_yea_info tei2,
4254 per_kr_assignment_yea_info eed,
4255 per_kr_assignment_yea_info es
4256 where sptei.assignment_id = p_assignment_id
4257 and sptei.target_year = g_target_yyyy
4258 and sptei.information_type = 'KR_YEA_SP_TAX_EXEM_INFO'
4259 and sptei2.assignment_id = sptei.assignment_id
4260 and sptei2.target_year = sptei.target_year
4261 and sptei2.information_type = 'KR_YEA_SP_TAX_EXEM_INFO2'
4262 and sptei3.assignment_id = sptei.assignment_id
4263 and sptei3.target_year = sptei.target_year
4264 and sptei3.information_type = 'KR_YEA_SP_TAX_EXEM_INFO3'
4265 and fwtbi.assignment_id (+) = sptei.assignment_id
4266 and fwtbi.target_year (+) = sptei.target_year
4267 and fwtbi.information_type (+) = 'KR_YEA_FW_TAX_BREAK_INFO'
4268 and ovtbi.assignment_id = sptei.assignment_id
4269 and ovtbi.target_year = sptei.target_year
4270 and ovtbi.information_type = 'KR_YEA_OVS_TAX_BREAK_INFO'
4271 and tbi.assignment_id (+) = sptei.assignment_id
4272 and tbi.target_year (+) = sptei.target_year
4273 and tbi.information_type (+) = 'KR_YEA_TAX_BREAK_INFO'
4274 and tei.assignment_id = sptei.assignment_id
4275 and tei.target_year = sptei.target_year
4276 and tei.information_type = 'KR_YEA_TAX_EXEM_INFO'
4277 and tei2.assignment_id = sptei.assignment_id
4278 and tei2.target_year = sptei.target_year
4279 and tei2.information_type = 'KR_YEA_TAX_EXEM_INFO2'
4280 and eed.assignment_id (+) = sptei.assignment_id
4281 and eed.target_year (+) = sptei.target_year
4282 and eed.information_type (+) = 'KR_YEA_EMP_EXPENSE_DETAILS'
4283 and es.assignment_id = sptei.assignment_id
4284 and es.target_year = sptei.target_year
4285 and es.information_type = 'KR_YEA_ENTRY_STATUS';
4286 --
4287 l_csr_pkayi csr_pkayi%rowtype;
4288 --
4289 cursor csr_med_max_priority
4290 is
4291 select max(fnd_number.canonical_to_number(nvl(ayi_information10,0)))
4292 from per_kr_assignment_yea_info
4293 where assignment_id = p_assignment_id
4294 and information_type = 'KR_YEA_DETAIL_MEDICAL_EXP_INFO'
4295 and ayi_information_category = 'KR_YEA_DETAIL_MEDICAL_EXP_INFO'
4296 and target_year = g_target_yyyy;
4297 --
4298 cursor csr_med_total_o
4299 is
4300 select sum(to_number(decode(ayi_information7,
4301 '0',to_char(nvl(fnd_number.canonical_to_number(ayi_information3),0) + nvl(fnd_number.canonical_to_number(ayi_information11),0)),null))) emp,
4302 sum(to_number(decode(ayi_information7,
4303 '0',null,to_char(nvl(fnd_number.canonical_to_number(ayi_information3),0) + nvl(fnd_number.canonical_to_number(ayi_information11),0))))) dep,
4304 sum(to_number(decode(ayi_information9,
4305 'B',to_char(nvl(fnd_number.canonical_to_number(ayi_information3),0) + nvl(fnd_number.canonical_to_number(ayi_information11),0)),null))) aged
4306 from per_kr_assignment_yea_info
4307 where assignment_id = p_assignment_id
4308 and information_type = 'KR_YEA_DETAIL_MEDICAL_EXP_INFO'
4309 and ayi_information_category = 'KR_YEA_DETAIL_MEDICAL_EXP_INFO'
4310 and target_year = g_target_yyyy
4311 and ayi_information13 <> '1';
4312 --
4313 l_csr_med_total_o csr_med_total_o%rowtype;
4314 --
4315 cursor csr_don_total
4316 is
4317 select sum(to_number(decode(ayi_information5,
4318 '10',to_char(nvl(fnd_number.canonical_to_number(ayi_information3),0)),null))) statutory,
4319 sum(to_number(decode(ayi_information5,
4320 '20',to_char(nvl(fnd_number.canonical_to_number(ayi_information3),0)),null))) political,
4321 sum(to_number(decode(ayi_information5,
4322 '21',to_char(nvl(fnd_number.canonical_to_number(ayi_information3),0)),null))) promotional,
4323 sum(to_number(decode(ayi_information5,
4324 '30',to_char(nvl(fnd_number.canonical_to_number(ayi_information3),0)),null))) special,
4325 sum(to_number(decode(ayi_information5,
4326 '31',to_char(nvl(fnd_number.canonical_to_number(ayi_information3),0)),null))) publicLegal,
4327 sum(to_number(decode(ayi_information5,
4328 '40',to_char(nvl(fnd_number.canonical_to_number(ayi_information3),0)),null))) specified,
4329 sum(to_number(decode(ayi_information5,
4330 '41',to_char(nvl(fnd_number.canonical_to_number(ayi_information3),0)),null))) religious,
4331 sum(to_number(decode(ayi_information5,
4332 '42',to_char(nvl(fnd_number.canonical_to_number(ayi_information3),0)),null))) esoa,
4333 sum(to_number(decode(ayi_information5,
4334 '50',to_char(nvl(fnd_number.canonical_to_number(ayi_information3),0)),null))) other
4335 from per_kr_assignment_yea_info
4336 where assignment_id = p_assignment_id
4337 and information_type = 'KR_YEA_DETAIL_DONATION_INFO'
4338 and ayi_information_category = 'KR_YEA_DETAIL_DONATION_INFO'
4339 and target_year = g_target_yyyy;
4340 --
4341 l_csr_don_total csr_don_total%rowtype;
4342 --
4343 cursor csr_sep_pen_total
4344 is
4345 select sum(to_number(decode(ayi_information2,
4346 '1',to_char(nvl(fnd_number.canonical_to_number(ayi_information5),0)),null))) employment,
4347 sum(to_number(decode(ayi_information2,
4348 '2',to_char(nvl(fnd_number.canonical_to_number(ayi_information5),0)),null))) scientific
4349 from per_kr_assignment_yea_info
4350 where assignment_id = p_assignment_id
4351 and information_type = 'KR_YEA_SEP_PEN_DETAILS'
4352 and ayi_information_category = 'KR_YEA_SEP_PEN_DETAILS'
4353 and target_year = g_target_yyyy;
4354 --
4355 l_csr_sep_pen_total csr_sep_pen_total%rowtype;
4356 --
4357 cursor csr_lts_total
4358 is
4359 select sum(to_number(decode(ayi_information2,
4360 '1',to_char(nvl(fnd_number.canonical_to_number(ayi_information5),0)),null))) year1,
4361 sum(to_number(decode(ayi_information2,
4362 '2',to_char(nvl(fnd_number.canonical_to_number(ayi_information5),0)),null))) year2,
4363 sum(to_number(decode(ayi_information2,
4364 '3',to_char(nvl(fnd_number.canonical_to_number(ayi_information5),0)),null))) year3
4365 from per_kr_assignment_yea_info
4366 where assignment_id = p_assignment_id
4367 and information_type = 'KR_YEA_LT_STOCK_SAVING_DETAILS'
4368 and ayi_information_category = 'KR_YEA_LT_STOCK_SAVING_DETAILS'
4369 and target_year = g_target_yyyy;
4370 --
4371 l_csr_lts_total csr_lts_total%rowtype;
4372 --
4373 cursor csr_pen_total
4374 is
4375 select sum(to_number(decode(ayi_information2,
4376 '2',to_char(nvl(fnd_number.canonical_to_number(ayi_information5),0)),null))) pen_saving
4377 from per_kr_assignment_yea_info
4378 where assignment_id = p_assignment_id
4379 and information_type = 'KR_YEA_PEN_SAVING_DETAILS'
4380 and ayi_information_category = 'KR_YEA_PEN_SAVING_DETAILS'
4381 and target_year = g_target_yyyy;
4382 --
4383 l_csr_pen_total csr_pen_total%rowtype;
4384 --
4385 begin
4386 --
4387 if g_debug then
4388 hr_utility.set_location(l_proc,0);
4389 end if;
4390 --
4391 if nvl(g_show_xml,'N') = 'Y' then
4392 --
4393 show_xml(p_xml);
4394 --
4395 end if;
4396 --
4397 l_ni_num := cnv_ni(p_ni_num);
4398 --
4399 -- *************************************
4400 -- capture data from xml
4401 -- *************************************
4402 xml := xmltype.createxml(p_xml);
4403 xml_doc := dbms_xmldom.newdomdocument(xml);
4404 --
4405 form_nodelist := dbms_xmldom.getelementsbytagname(xml_doc,'form');
4406 l_form_cnt := dbms_xmldom.getlength(form_nodelist);
4407 --
4408 if not dbms_xmldom.isnull(form_nodelist)
4409 and l_form_cnt > 0 then
4410 --
4411 l_med_ind := 0;
4412 l_med_tbl.delete;
4413 --
4414 l_don_poli := 0;
4415 l_don_ind := 0;
4416 l_don_tbl_tmp.delete;
4417 l_don_tbl.delete;
4418 --
4419 l_educ_tbl.delete;
4420 --
4421 l_saving_ind := 0;
4422 l_saving_tbl.delete;
4423 l_cards_tbl.delete;
4424 l_lthouse_tbl.delete;
4425 l_uniform_tbl.delete;
4426 l_sep_pen_saving_tbl.delete;
4427 l_hou_saving_tbl.delete;
4428 l_lts_saving_tbl.delete;
4429 --
4430 l_med_exp_nts := 0;
4431 l_don_exp_nts := 0;
4432 --
4433 g_dpnt_ind := null;
4434 g_dpnt_ni_num := null;
4435 l_dpnt_tbl.delete;
4436 l_dpnt_ind := 0;
4437 l_dpnt_ind_tbl.delete;
4438 --
4439 for i in 0..l_form_cnt - 1 loop
4440 --
4441 form_node := dbms_xmldom.item(form_nodelist,i);
4442 --
4443 -- --------------------------------------------------
4444 -- Special Tax Exemptions
4445 -- --------------------------------------------------
4446 --
4447 -- <<Insurance Premium>>
4448 --
4449 -- Personal Ins. Premium
4450 l_values_tbl := get_item_values_in_form(
4451 p_form_node => form_node,
4452 p_form_type => 'A102Y',
4453 p_man_key => 'resid',
4454 p_data_type => 'A01',
4455 p_item_name => 'sum');
4456 --
4457 if l_values_tbl.count > 0 then
4458 --
4459 for a01cnt in l_values_tbl.first..l_values_tbl.last loop
4460 --
4461 -- accumulate for only person
4462 if l_values_tbl(a01cnt).key = l_ni_num then
4463 --
4464 l_ass_data_rec.pers_ins_prem := fnd_number.number_to_canonical(nvl(fnd_number.canonical_to_number(l_ass_data_rec.pers_ins_prem),0)
4465 + nvl(to_number(l_values_tbl(a01cnt).val),0));
4466 --
4467 else
4468 --
4469 begin
4470 --
4471 l_dpnt_num := l_dpnt_tbl(get_dpnt_ind(l_dpnt_ind_tbl,l_values_tbl(a01cnt).key)).ins_prem_nts;
4472 --
4473 exception
4474 when others then
4475 --
4476 l_dpnt_num := 0;
4477 l_dpnt_ind_tbl(l_dpnt_ind) := l_values_tbl(a01cnt).key;
4478 l_dpnt_ind := l_dpnt_ind + 1;
4479 --
4480 end;
4481 --
4482 l_dpnt_tbl(get_dpnt_ind(l_dpnt_ind_tbl,l_values_tbl(a01cnt).key)).ins_prem_nts := nvl(l_dpnt_num,0) + nvl(to_number(l_values_tbl(a01cnt).val),0);
4483 --
4484 end if;
4485 --
4486 end loop;
4487 --
4488 end if;
4489 --
4490 -- Disabled Ins. Premium
4491 l_values_tbl := get_item_values_in_form(
4492 p_form_node => form_node,
4493 p_form_type => 'A102Y',
4494 p_man_key => 'resid',
4495 p_data_type => 'A02',
4496 p_item_name => 'sum');
4497 --
4498 if l_values_tbl.count > 0 then
4499 --
4500 for a02cnt in l_values_tbl.first..l_values_tbl.last loop
4501 --
4502 -- accumulate for only person
4503 if l_values_tbl(a02cnt).key = l_ni_num then
4504 --
4505 l_ass_data_rec.disabled_ins_prem := fnd_number.number_to_canonical(nvl(fnd_number.canonical_to_number(l_ass_data_rec.disabled_ins_prem),0)
4506 + nvl(to_number(l_values_tbl(a02cnt).val),0));
4507 --
4508 else
4509 --
4510 begin
4511 --
4512 l_dpnt_num := l_dpnt_tbl(get_dpnt_ind(l_dpnt_ind_tbl,l_values_tbl(a02cnt).key)).dis_ins_nts;
4513 --
4514 exception
4515 when others then
4516 --
4517 l_dpnt_num := 0;
4518 l_dpnt_ind_tbl(l_dpnt_ind) := l_values_tbl(a02cnt).key;
4519 l_dpnt_ind := l_dpnt_ind + 1;
4520 --
4521 end;
4522 --
4523 l_dpnt_tbl(get_dpnt_ind(l_dpnt_ind_tbl,l_values_tbl(a02cnt).key)).dis_ins_nts := nvl(l_dpnt_num,0) + nvl(to_number(l_values_tbl(a02cnt).val),0);
4524 --
4525 end if;
4526 --
4527 end loop;
4528 --
4529 end if;
4530 --
4531 -- <<Housing>>
4532 --
4533 -- Institution Loan.Loan Paid
4534 l_value_tbl := get_item_values_in_form(
4535 p_form_node => form_node,
4536 p_form_type => 'J101Y',
4537 p_data_type => 'J01',
4538 p_item_name => 'sum');
4539 --
4540 if l_value_tbl.count > 0 then
4541 --
4542 for j01cnt in l_value_tbl.first..l_value_tbl.last loop
4543 --
4544 l_ass_data_rec.housing_loan_repay := fnd_number.number_to_canonical(nvl(fnd_number.canonical_to_number(l_ass_data_rec.housing_loan_repay),0)
4545 + nvl(to_number(l_value_tbl(j01cnt)),0));
4546 --
4547 end loop;
4548 --
4549 end if;
4550 --
4551 -- Institution Loan.Loan Date
4552 l_value_tbl := get_item_values_in_form(
4553 p_form_node => form_node,
4554 p_form_type => 'J101Y',
4555 p_data_type => 'J01',
4556 p_item_name => 'lend_dt');
4557 --
4558 if l_value_tbl.count > 0 then
4559 --
4560 if l_value_tbl.count = 1 then
4561 --
4562 l_ass_data_rec.housing_loan_date := fnd_date.date_to_canonical(to_date(l_value_tbl(l_value_tbl.first),c_xml_date_fmt));
4563 --
4564 else
4565 --
4566 -- warning
4567 fnd_message.set_name('PAY','PAY_KR_YEA_PDF_MLT_HOU_DATE');
4568 fnd_message.set_token('EMP_NAME',p_emp_name);
4569 fnd_message.set_token('EMP_NO',p_emp_num);
4570 --
4571 g_msg := fnd_message.get;
4572 --
4573 fnd_file.put_line(fnd_file.log,g_msg);
4574 --
4575 end if;
4576 --
4577 --
4578 end if;
4579 --
4580 -- 600/1000/1500 Man Won Limit.Interest Paid
4581 /*l_values_tbl := get_item_values_in_form(
4582 p_form_node => form_node,
4583 p_form_type => 'J201Y',
4584 p_data_type => 'J02',
4585 p_item_key => 'term',
4586 p_item_name => 'sum'); */
4587
4588 l_lthouse_tbl := get_long_term_house_values(
4589 p_form_node => form_node,
4590 p_form_type => 'J203Y',
4591 p_data_type => 'J02',
4592 p_item_key => 'repay_years',
4593 p_item_name => 'sum');
4594 --
4595 if l_lthouse_tbl.count > 0 then
4596 --
4597 for j02cnt in l_lthouse_tbl.first..l_lthouse_tbl.last loop
4598 --
4599 select substr(l_lthouse_tbl(j02cnt).start_date,1,4) into l_start_dt from dual;
4600
4601 IF l_start_dt < 2012 THEN
4602 if l_lthouse_tbl(j02cnt).key is not null then
4603 --
4604 if to_number(l_lthouse_tbl(j02cnt).key) < c_int_type1_year_min then
4605 --
4606 l_ass_data_rec.lt_housing_loan_interest_rep := fnd_number.number_to_canonical(nvl(fnd_number.canonical_to_number(l_ass_data_rec.lt_housing_loan_interest_rep),0)
4607 + nvl(to_number(l_lthouse_tbl(j02cnt).val),0));
4608 --
4609 elsif to_number(l_lthouse_tbl(j02cnt).key) >= c_int_type1_year_min
4610 and to_number(l_lthouse_tbl(j02cnt).key) < c_int_type2_year_min then
4611 --
4612 l_ass_data_rec.lt_housing_loan_int_repay_1 := fnd_number.number_to_canonical(nvl(fnd_number.canonical_to_number(l_ass_data_rec.lt_housing_loan_int_repay_1),0)
4613 + nvl(to_number(l_lthouse_tbl(j02cnt).val),0));
4614 --
4615 elsif to_number(l_lthouse_tbl(j02cnt).key) >= c_int_type2_year_min then
4616 --
4617 l_ass_data_rec.lt_housing_loan_int_repay_2 := fnd_number.number_to_canonical(nvl(fnd_number.canonical_to_number(l_ass_data_rec.lt_housing_loan_int_repay_2),0)
4618 + nvl(to_number(l_lthouse_tbl(j02cnt).val),0));
4619 --
4620 end if;
4621 --
4622 end if;
4623 ELSIF l_start_dt >= 2012 THEN
4624 if ( nvl(to_number(l_lthouse_tbl(j02cnt).debt),0) = 0 and
4625 nvl(to_number(l_lthouse_tbl(j02cnt).fixed_rate),0) = 0 and
4626 nvl(to_number(l_lthouse_tbl(j02cnt).defer_debt),0) = 0 and
4627 nvl(to_number(l_lthouse_tbl(j02cnt).year_amt),0) = 0 and
4628 to_number(l_lthouse_tbl(j02cnt).val) is not null) then
4629 l_ass_data_rec.lt_2012_housing_other_intr := fnd_number.number_to_canonical(nvl(fnd_number.canonical_to_number(l_ass_data_rec.lt_2012_housing_other_intr),0)
4630 + nvl(to_number(l_lthouse_tbl(j02cnt).val),0));
4631 else
4632 l_ass_data_rec.lt_2012_fixed_intr_wo_grace := fnd_number.number_to_canonical(nvl(fnd_number.canonical_to_number(l_ass_data_rec.lt_2012_fixed_intr_wo_grace),0)
4633 + nvl(to_number(l_lthouse_tbl(j02cnt).val),0));
4634 end if;
4635
4636 END IF;
4637 --
4638 end loop;
4639 --
4640 end if;
4641 --
4642 -- <<Medical Exemptions>>
4643 --
4644 -- Total Medical Expenses.Employee/Dependent/Aged
4645 l_values_tbl := get_item_values_in_form(
4646 p_form_node => form_node,
4647 p_form_type => 'B101Y',
4648 p_man_key => 'resid',
4649 p_data_type => 'B01',
4650 p_item_name => 'sum');
4651 --
4652 if l_values_tbl.count > 0 then
4653 --
4654 for b01cnt in l_values_tbl.first..l_values_tbl.last loop
4655 --
4656 -- accumulate for only person
4657 if l_values_tbl(b01cnt).key = l_ni_num then
4658 --
4659 if pay_kr_ff_functions_pkg.aged_flag(l_values_tbl(b01cnt).key,g_target_eoy) = 'Y' then
4660 --
4661 l_ass_data_rec.med_exp_aged := fnd_number.number_to_canonical(nvl(fnd_number.canonical_to_number(l_ass_data_rec.med_exp_aged),0)
4662 + nvl(to_number(l_values_tbl(b01cnt).val),0));
4663 --
4664 l_med_tbl(l_med_ind).paid_amount := to_number(l_values_tbl(b01cnt).val);
4665 l_med_tbl(l_med_ind).source_code := '1'; /* KR_YEA_SOURCE_CODE */
4666 l_med_tbl(l_med_ind).resident_registration_no := l_values_tbl(b01cnt).key;
4667 l_med_tbl(l_med_ind).disabled_or_aged := 'B'; /* KR_DISABLED_OR_AGED */
4668 --
4669 else
4670 --
4671 l_ass_data_rec.med_exp_emp := fnd_number.number_to_canonical(nvl(fnd_number.canonical_to_number(l_ass_data_rec.med_exp_emp),0)
4672 + nvl(to_number(l_values_tbl(b01cnt).val),0));
4673 --
4674 l_med_tbl(l_med_ind).paid_amount := to_number(l_values_tbl(b01cnt).val);
4675 l_med_tbl(l_med_ind).source_code := '1'; /* KR_YEA_SOURCE_CODE */
4676 l_med_tbl(l_med_ind).resident_registration_no := l_values_tbl(b01cnt).key;
4677 --
4678 end if;
4679 --
4680 l_med_exp_nts := l_med_exp_nts + nvl(to_number(l_values_tbl(b01cnt).val),0);
4681 --
4682 -- accumulate for only dependent
4683 else
4684 --
4685 if pay_kr_ff_functions_pkg.aged_flag(l_values_tbl(b01cnt).key,g_target_eoy) = 'Y' then
4686 --
4687 l_ass_data_rec.med_exp_aged := fnd_number.number_to_canonical(nvl(fnd_number.canonical_to_number(l_ass_data_rec.med_exp_aged),0)
4688 + nvl(to_number(l_values_tbl(b01cnt).val),0));
4689 --
4690 l_med_tbl(l_med_ind).paid_amount := to_number(l_values_tbl(b01cnt).val);
4691 l_med_tbl(l_med_ind).source_code := '1'; /* KR_YEA_SOURCE_CODE */
4692 l_med_tbl(l_med_ind).resident_registration_no := l_values_tbl(b01cnt).key;
4693 l_med_tbl(l_med_ind).disabled_or_aged := 'B'; /* KR_DISABLED_OR_AGED */
4694 --
4695 else
4696 --
4697 l_ass_data_rec.med_exp := fnd_number.number_to_canonical(nvl(fnd_number.canonical_to_number(l_ass_data_rec.med_exp),0)
4698 + nvl(to_number(l_values_tbl(b01cnt).val),0));
4699 --
4700 l_med_tbl(l_med_ind).paid_amount := to_number(l_values_tbl(b01cnt).val);
4701 l_med_tbl(l_med_ind).source_code := '1'; /* KR_YEA_SOURCE_CODE */
4702 l_med_tbl(l_med_ind).resident_registration_no := l_values_tbl(b01cnt).key;
4703 --
4704 end if;
4705 --
4706 begin
4707 --
4708 l_dpnt_num := l_dpnt_tbl(get_dpnt_ind(l_dpnt_ind_tbl,l_values_tbl(b01cnt).key)).med_exp_nts;
4709 --
4710 exception
4711 when others then
4712 --
4713 l_dpnt_num := 0;
4714 l_dpnt_ind_tbl(l_dpnt_ind) := l_values_tbl(b01cnt).key;
4715 l_dpnt_ind := l_dpnt_ind + 1;
4716 --
4717 end;
4718 --
4719 l_dpnt_tbl(get_dpnt_ind(l_dpnt_ind_tbl,l_values_tbl(b01cnt).key)).med_exp_nts := nvl(l_dpnt_num,0) + nvl(to_number(l_values_tbl(b01cnt).val),0);
4720 --
4721 end if;
4722 --
4723 -- assume to recursive for each unique different person
4724 l_med_ind := l_med_ind + 1;
4725 --
4726 end loop;
4727 --
4728 l_ass_data_rec.med_tbl := l_med_tbl;
4729 --
4730 end if;
4731 --
4732 -- <<Donations>>
4733 --
4734 -- Total Donation Amounts.Employee/Dependent/Aged
4735 l_don_tbl_tmp := get_donate_values(
4736 p_form_node => form_node);
4737 --
4738 if l_don_tbl_tmp.count > 0 then
4739 --
4740 for l01cnt in l_don_tbl_tmp.first..l_don_tbl_tmp.last loop
4741 --
4742 -- accumulate for only person
4743 if l_don_tbl_tmp(l01cnt).ni_num = l_ni_num then
4744 --
4745 if l_don_tbl_tmp(l01cnt).donation_code = '20' then
4746 --
4747 if l_don_poli + nvl(to_number(nvl(l_don_tbl_tmp(l01cnt).donated_amount,l_don_tbl_tmp(l01cnt).sum)),0) < c_don_poli_max then
4748 --
4749 null;
4750 -- l_don_poli := l_don_poli + nvl(to_number(nvl(l_don_tbl_tmp(l01cnt).donated_amount,l_don_tbl_tmp(l01cnt).sum)),0);
4751 --
4752 else
4753 --
4754 l_don_tbl(l_don_ind).ni_num := l_don_tbl_tmp(l01cnt).ni_num;
4755 l_don_tbl(l_don_ind).donator_name := l_don_tbl_tmp(l01cnt).donator_name;
4756 l_don_tbl(l_don_ind).donation_code := l_don_tbl_tmp(l01cnt).donation_code;
4757 l_don_tbl(l_don_ind).donated_date := fnd_date.date_to_canonical(to_date(l_don_tbl_tmp(l01cnt).donated_date,c_xml_date_fmt)); /* covert to canonical from xml fmt */
4758 l_don_tbl(l_don_ind).recipient_name := l_don_tbl_tmp(l01cnt).recipient_name;
4759 l_don_tbl(l_don_ind).recipient_registration_number := l_don_tbl_tmp(l01cnt).recipient_registration_number;
4760 l_don_tbl(l_don_ind).donated_amount := fnd_number.number_to_canonical(l_don_poli
4761 + nvl(to_number(nvl(l_don_tbl_tmp(l01cnt).donated_amount,l_don_tbl_tmp(l01cnt).sum)),0)
4762 /*- c_don_poli_max*/);
4763 l_don_tbl(l_don_ind).donation_detail_type := '1'; /* KR_YEA_DONATION_DETAIL_TYPE */
4764 l_don_ind := l_don_ind + 1;
4765 --
4766 -- l_don_poli := c_don_poli_max;
4767 --
4768 end if;
4769 --
4770 else
4771 --
4772 l_don_tbl(l_don_ind).ni_num := l_don_tbl_tmp(l01cnt).ni_num;
4773 l_don_tbl(l_don_ind).donator_name := l_don_tbl_tmp(l01cnt).donator_name;
4774 l_don_tbl(l_don_ind).donation_code := l_don_tbl_tmp(l01cnt).donation_code;
4775 l_don_tbl(l_don_ind).donated_date := fnd_date.date_to_canonical(to_date(l_don_tbl_tmp(l01cnt).donated_date,c_xml_date_fmt));
4776 l_don_tbl(l_don_ind).recipient_name := l_don_tbl_tmp(l01cnt).recipient_name;
4777 l_don_tbl(l_don_ind).recipient_registration_number := l_don_tbl_tmp(l01cnt).recipient_registration_number;
4778 l_don_tbl(l_don_ind).donated_amount := fnd_number.number_to_canonical(to_number(nvl(l_don_tbl_tmp(l01cnt).donated_amount,l_don_tbl_tmp(l01cnt).sum)));
4779 l_don_tbl(l_don_ind).donation_detail_type := '1'; /* KR_YEA_DONATION_DETAIL_TYPE */
4780 l_don_ind := l_don_ind + 1;
4781 --
4782 end if;
4783 --
4784 l_don_exp_nts := l_don_exp_nts + nvl(to_number(nvl(l_don_tbl_tmp(l01cnt).donated_amount,l_don_tbl_tmp(l01cnt).sum)),0);
4785 --
4786 -- accumulate for only dependent
4787 else
4788 --
4789 l_don_tbl(l_don_ind).ni_num := l_don_tbl_tmp(l01cnt).ni_num;
4790 l_don_tbl(l_don_ind).donator_name := l_don_tbl_tmp(l01cnt).donator_name;
4791 l_don_tbl(l_don_ind).donation_code := l_don_tbl_tmp(l01cnt).donation_code;
4792 l_don_tbl(l_don_ind).donated_date := fnd_date.date_to_canonical(to_date(l_don_tbl_tmp(l01cnt).donated_date,c_xml_date_fmt));
4793 l_don_tbl(l_don_ind).recipient_name := l_don_tbl_tmp(l01cnt).recipient_name;
4794 l_don_tbl(l_don_ind).recipient_registration_number := l_don_tbl_tmp(l01cnt).recipient_registration_number;
4795 l_don_tbl(l_don_ind).donated_amount := fnd_number.number_to_canonical(to_number(nvl(l_don_tbl_tmp(l01cnt).donated_amount,l_don_tbl_tmp(l01cnt).sum)));
4796 l_don_tbl(l_don_ind).donation_detail_type := '1'; /* KR_YEA_DONATION_DETAIL_TYPE */
4797 l_don_ind := l_don_ind + 1;
4798 --
4799 begin
4800 --
4801 l_dpnt_num := l_dpnt_tbl(get_dpnt_ind(l_dpnt_ind_tbl,l_don_tbl_tmp(l01cnt).ni_num)).don_exp_nts;
4802 --
4803 exception
4804 when others then
4805 --
4806 l_dpnt_num := 0;
4807 l_dpnt_ind_tbl(l_dpnt_ind) := l_don_tbl_tmp(l01cnt).ni_num;
4808 l_dpnt_ind := l_dpnt_ind + 1;
4809 --
4810 end;
4811 --
4812 l_dpnt_tbl(get_dpnt_ind(l_dpnt_ind_tbl,l_don_tbl_tmp(l01cnt).ni_num)).don_exp_nts := nvl(l_dpnt_num,0)
4813 + nvl(to_number(nvl(l_don_tbl_tmp(l01cnt).donated_amount,l_don_tbl_tmp(l01cnt).sum)),0);
4814 --
4815 end if;
4816 --
4817 end loop;
4818 --
4819 -- if l_don_poli > 0 then
4820 --
4821 l_ass_data_rec.political_donation1 := nvl(l_don_poli,0);
4822 --
4823 --- end if;
4824 --
4825 l_ass_data_rec.don_tbl := l_don_tbl;
4826 --
4827 end if;
4828 --
4829 -- <<Education Expenses>>
4830 --
4831 -- Employee.Education
4832 l_values_tbl := get_item_values_in_form(
4833 p_form_node => form_node,
4834 p_form_type => 'C101Y',
4835 p_man_key => 'resid',
4836 p_data_type => 'C01',
4837 p_item_name => 'sum');
4838 --
4839 if l_values_tbl.count > 0 then
4840 --
4841 for c01cnt in l_values_tbl.first..l_values_tbl.last loop
4842 --
4843 -- accumulate for only person
4844 if l_values_tbl(c01cnt).key = l_ni_num then
4845 --
4846 l_ass_data_rec.ee_educ_exp := fnd_number.number_to_canonical(nvl(fnd_number.canonical_to_number(l_ass_data_rec.ee_educ_exp),0)
4847 + nvl(to_number(l_values_tbl(c01cnt).val),0));
4848 --
4849 else
4850 --
4851 begin
4852 --
4853 l_dpnt_num := l_dpnt_tbl(get_dpnt_ind(l_dpnt_ind_tbl,l_values_tbl(c01cnt).key)).educ_exp_nts;
4854 --
4855 exception
4856 when others then
4857 --
4858 l_dpnt_num := 0;
4859 l_dpnt_ind_tbl(l_dpnt_ind) := l_values_tbl(c01cnt).key;
4860 l_dpnt_ind := l_dpnt_ind + 1;
4861 --
4862 end;
4863 --
4864 l_dpnt_tbl(get_dpnt_ind(l_dpnt_ind_tbl,l_values_tbl(c01cnt).key)).educ_exp_nts := nvl(l_dpnt_num,0) + nvl(to_number(l_values_tbl(c01cnt).val),0);
4865 --
4866 end if;
4867 --
4868 end loop;
4869 --
4870 end if;
4871 --
4872 l_values_tbl := get_item_values_in_form(
4873 p_form_node => form_node,
4874 p_form_type => 'C101Y',
4875 p_man_key => 'resid',
4876 p_data_type => 'C03',
4877 p_item_name => 'sum');
4878 --
4879 if l_values_tbl.count > 0 then
4880 --
4881 for c03cnt in l_values_tbl.first..l_values_tbl.last loop
4882 --
4883 -- accumulate for only person
4884 if l_values_tbl(c03cnt).key = l_ni_num then
4885 --
4886 l_ass_data_rec.ee_educ_exp := fnd_number.number_to_canonical(nvl(fnd_number.canonical_to_number(l_ass_data_rec.ee_educ_exp),0)
4887 + nvl(to_number(l_values_tbl(c03cnt).val),0));
4888 --
4889 else
4890 --
4891 begin
4892 --
4893 l_dpnt_num := l_dpnt_tbl(get_dpnt_ind(l_dpnt_ind_tbl,l_values_tbl(c03cnt).key)).educ_exp_nts;
4894 --
4895 exception
4896 when others then
4897 --
4898 l_dpnt_num := 0;
4899 l_dpnt_ind_tbl(l_dpnt_ind) := l_values_tbl(c03cnt).key;
4900 l_dpnt_ind := l_dpnt_ind + 1;
4901 --
4902 end;
4903 --
4904 l_dpnt_tbl(get_dpnt_ind(l_dpnt_ind_tbl,l_values_tbl(c03cnt).key)).educ_exp_nts := nvl(l_dpnt_num,0) + nvl(to_number(l_values_tbl(c03cnt).val),0);
4905 --
4906 end if;
4907 --
4908 end loop;
4909 --
4910 end if;
4911 --
4912 l_values_tbl := get_item_values_in_form(
4913 p_form_node => form_node,
4914 p_form_type => 'C101Y',
4915 p_man_key => 'resid',
4916 p_data_type => 'C04',
4917 p_item_name => 'sum');
4918 --
4919 if l_values_tbl.count > 0 then
4920 --
4921 for c04cnt in l_values_tbl.first..l_values_tbl.last loop
4922 --
4923 -- accumulate for only person
4924 if l_values_tbl(c04cnt).key = l_ni_num then
4925 --
4926 l_ass_data_rec.ee_educ_exp := fnd_number.number_to_canonical(nvl(fnd_number.canonical_to_number(l_ass_data_rec.ee_educ_exp),0)
4927 + nvl(to_number(l_values_tbl(c04cnt).val),0));
4928 --
4929 else
4930 --
4931 begin
4932 --
4933 l_dpnt_num := l_dpnt_tbl(get_dpnt_ind(l_dpnt_ind_tbl,l_values_tbl(c04cnt).key)).educ_exp_nts;
4934 --
4935 exception
4936 when others then
4937 --
4938 l_dpnt_num := 0;
4939 l_dpnt_ind_tbl(l_dpnt_ind) := l_values_tbl(c04cnt).key;
4940 l_dpnt_ind := l_dpnt_ind + 1;
4941 --
4942 end;
4943 --
4944 l_dpnt_tbl(get_dpnt_ind(l_dpnt_ind_tbl,l_values_tbl(c04cnt).key)).educ_exp_nts := nvl(l_dpnt_num,0) + nvl(to_number(l_values_tbl(c04cnt).val),0);
4945 --
4946 end if;
4947 --
4948 end loop;
4949 --
4950 end if;
4951 --
4952 -- Employee.Occupational Training
4953 l_values_tbl := get_item_values_in_form(
4954 p_form_node => form_node,
4955 p_form_type => 'C202Y',
4956 p_man_key => 'resid',
4957 p_data_type => 'C02',
4958 p_item_name => 'sum');
4959 --
4960 if l_values_tbl.count > 0 then
4961 --
4962 for c02cnt in l_values_tbl.first..l_values_tbl.last loop
4963 --
4964 -- accumulate for only person
4965 if l_values_tbl(c02cnt).key = l_ni_num then
4966 --
4967 l_ass_data_rec.ee_occupation_educ_exp := fnd_number.number_to_canonical(nvl(fnd_number.canonical_to_number(l_ass_data_rec.ee_occupation_educ_exp),0)
4968 + nvl(to_number(l_values_tbl(c02cnt).val),0));
4969 --
4970 end if;
4971 --
4972 end loop;
4973 --
4974 end if;
4975 --
4976 -- Dependent.Name/School Type/NTS/Other/Expense
4977 l_educ_tbl := get_dep_eduction_values(
4978 p_form_node => form_node,
4979 p_ni_num => l_ni_num);
4980 --
4981 if l_educ_tbl.count > 0 then
4982 --
4983 l_ass_data_rec.educ_tbl := l_educ_tbl;
4984 --
4985 end if;
4986 --
4987 -- Uniform Expense
4988 l_uniform_tbl := get_uniform_values(
4989 p_form_node => form_node,
4990 p_form_type => 'C301Y',
4991 p_man_key => 'resid',
4992 p_data_type => 'C06',
4993 p_item_name => 'sum');
4994 --
4995 if l_uniform_tbl.count > 0 then
4996 --
4997 for c06cnt in l_uniform_tbl.first..l_uniform_tbl.last loop
4998 --
4999 -- accumulate for only person
5000 if l_uniform_tbl(c06cnt).key = l_ni_num then
5001 --
5002 l_ass_data_rec.ee_uniform_exp := fnd_number.number_to_canonical(nvl(fnd_number.canonical_to_number(l_ass_data_rec.ee_educ_exp),0)
5003 + nvl(to_number(l_uniform_tbl(c06cnt).val),0));
5004 --
5005 else
5006 --
5007 begin
5008 --
5009 l_dpnt_num := l_dpnt_tbl(get_dpnt_ind(l_dpnt_ind_tbl,l_uniform_tbl(c06cnt).key)).educ_exp_nts;
5010 --
5011 exception
5012 when others then
5013 --
5014 l_dpnt_num := 0;
5015 l_dpnt_ind_tbl(l_dpnt_ind) := l_uniform_tbl(c06cnt).key;
5016 l_dpnt_ind := l_dpnt_ind + 1;
5017 --
5018 end;
5019 --
5020 l_dpnt_tbl(get_dpnt_ind(l_dpnt_ind_tbl,l_uniform_tbl(c06cnt).key)).educ_exp_nts := nvl(l_dpnt_num,0) + nvl(to_number(l_uniform_tbl(c06cnt).val),0);
5021 end if;
5022 --
5023 end loop;
5024 --
5025 l_ass_data_rec.uniform_tbl := l_uniform_tbl;
5026 end if;
5027 --
5028 -- --------------------------------------------------
5029 -- Other Tax Exemptions
5030 -- --------------------------------------------------
5031 --
5032 -- <<Pension>>
5033 --
5034 -- Civil Worker Pension Premium
5035 l_value_tbl := get_item_values_in_form(
5036 p_form_node => form_node,
5037 p_form_type => 'D101Y',
5038 p_data_type => 'D01',
5039 p_item_name => 'sum');
5040 --
5041 if l_value_tbl.count > 0 then
5042 --
5043 for d01cnt in l_value_tbl.first..l_value_tbl.last loop
5044 --
5045 l_ass_data_rec.pers_pension_prem := fnd_number.number_to_canonical(nvl(fnd_number.canonical_to_number(l_ass_data_rec.pers_pension_prem),0)
5046 + nvl(to_number(l_value_tbl(d01cnt)),0));
5047 --
5048 end loop;
5049 --
5050 end if;
5051 --
5052 -- <<Small Business Installment>>
5053 --
5054 -- Installment
5055 l_value_tbl := get_item_values_in_form(
5056 p_form_node => form_node,
5057 p_form_type => 'K101M',
5058 p_data_type => 'K01',
5059 p_item_name => 'sum');
5060 --
5061 if l_value_tbl.count > 0 then
5062 --
5063 for k01cnt in l_value_tbl.first..l_value_tbl.last loop
5064 --
5065 l_ass_data_rec.small_bus_install := fnd_number.number_to_canonical(nvl(fnd_number.canonical_to_number(l_ass_data_rec.small_bus_install),0)
5066 + nvl(to_number(l_value_tbl(k01cnt)),0));
5067 --
5068 end loop;
5069 --
5070 end if;
5071 --
5072 -- <<Credit Card Expense>>
5073 --
5074 -- Credit Card For Employee
5075 l_cards_tbl := get_card_values(
5076 p_form_node => form_node,
5077 p_form_type => 'G102Y',
5078 p_man_key => 'resid',
5079 p_data_type => 'G01',
5080 p_item_name => 'sum');
5081 --
5082 if l_cards_tbl.count > 0 then
5083 --
5084 for g01cnt in l_cards_tbl.first..l_cards_tbl.last loop
5085 --
5086 -- accumulate for only person
5087 if l_cards_tbl(g01cnt).key = l_ni_num then
5088 --
5089 if l_cards_tbl(g01cnt).use_place_cd = 1 then
5090 l_ass_data_rec.credit_card_exp := fnd_number.number_to_canonical(nvl(fnd_number.canonical_to_number(l_ass_data_rec.credit_card_exp),0)
5091 + nvl(to_number(l_cards_tbl(g01cnt).val),0));
5092 else
5093 l_ass_data_rec.credit_tm_exp := fnd_number.number_to_canonical(nvl(fnd_number.canonical_to_number(l_ass_data_rec.credit_tm_exp),0)
5094 + nvl(to_number(l_cards_tbl(g01cnt).val),0));
5095 end if;
5096 else
5097 --
5098 begin
5099 --
5100 if l_cards_tbl(g01cnt).use_place_cd = 1 then
5101 l_dpnt_num := l_dpnt_tbl(get_dpnt_ind(l_dpnt_ind_tbl,l_cards_tbl(g01cnt).key)).card_exp_nts;
5102 else
5103 l_dpnt_num := l_dpnt_tbl(get_dpnt_ind(l_dpnt_ind_tbl,l_cards_tbl(g01cnt).key)).card_tm_nts;
5104 end if;
5105 --
5106 exception
5107 when others then
5108 --
5109 l_dpnt_num := 0;
5110 l_dpnt_ind_tbl(l_dpnt_ind) := l_cards_tbl(g01cnt).key;
5111 l_dpnt_ind := l_dpnt_ind + 1;
5112 --
5113 end;
5114 --
5115 if l_cards_tbl(g01cnt).use_place_cd = 1 then
5116 l_dpnt_tbl(get_dpnt_ind(l_dpnt_ind_tbl,l_cards_tbl(g01cnt).key)).card_exp_nts := nvl(l_dpnt_num,0) + nvl(to_number(l_cards_tbl(g01cnt).val),0);
5117 else
5118 l_dpnt_tbl(get_dpnt_ind(l_dpnt_ind_tbl,l_cards_tbl(g01cnt).key)).card_tm_nts := nvl(l_dpnt_num,0) + nvl(to_number(l_cards_tbl(g01cnt).val),0);
5119 end if;
5120 --
5121 end if;
5122 --
5123 end loop;
5124 --
5125 end if;
5126 --
5127 -- Cash Receipt Expenses
5128 l_cards_tbl := get_card_values(
5129 p_form_node => form_node,
5130 p_form_type => 'G203M',
5131 p_man_key => 'resid',
5132 p_data_type => 'G02',
5133 p_item_name => 'sum'
5134 );
5135 --
5136 if l_cards_tbl.count > 0 then
5137 --
5138 for g02cnt in l_cards_tbl.first..l_cards_tbl.last loop
5139 --
5140 -- accumulate for only person
5141 if l_cards_tbl(g02cnt).key = l_ni_num then
5142 --
5143 if l_cards_tbl(g02cnt).use_place_cd = 1 then
5144 l_ass_data_rec.cash_receipt_exp := fnd_number.number_to_canonical(nvl(fnd_number.canonical_to_number(l_ass_data_rec.cash_receipt_exp),0)
5145 + nvl(to_number(l_cards_tbl(g02cnt).val),0));
5146 else
5147 l_ass_data_rec.cash_tm_exp := fnd_number.number_to_canonical(nvl(fnd_number.canonical_to_number(l_ass_data_rec.cash_tm_exp),0)
5148 + nvl(to_number(l_cards_tbl(g02cnt).val),0));
5149 end if;
5150 --
5151 else
5152 --
5153 begin
5154 --
5155 if l_cards_tbl(g02cnt).use_place_cd = 1 then
5156 l_dpnt_num := l_dpnt_tbl(get_dpnt_ind(l_dpnt_ind_tbl,l_cards_tbl(g02cnt).key)).cash_exp_nts;
5157 else
5158 l_dpnt_num := l_dpnt_tbl(get_dpnt_ind(l_dpnt_ind_tbl,l_cards_tbl(g02cnt).key)).cash_tm_nts;
5159 end if;
5160 --
5161 exception
5162 when others then
5163 --
5164 l_dpnt_num := 0;
5165 l_dpnt_ind_tbl(l_dpnt_ind) := l_cards_tbl(g02cnt).key;
5166 l_dpnt_ind := l_dpnt_ind + 1;
5167 --
5168 end;
5169 --
5170 if l_cards_tbl(g02cnt).use_place_cd = 1 then
5171 l_dpnt_tbl(get_dpnt_ind(l_dpnt_ind_tbl,l_cards_tbl(g02cnt).key)).cash_exp_nts := nvl(l_dpnt_num,0) + nvl(to_number(l_cards_tbl(g02cnt).val),0);
5172 else
5173 l_dpnt_tbl(get_dpnt_ind(l_dpnt_ind_tbl,l_cards_tbl(g02cnt).key)).cash_tm_nts := nvl(l_dpnt_num,0) + nvl(to_number(l_cards_tbl(g02cnt).val),0);
5174 end if;
5175 --
5176 end if;
5177 --
5178 end loop;
5179 --
5180 end if;
5181 --
5182 -- Direct Payment For Employee
5183 l_cards_tbl := get_card_values(
5184 p_form_node => form_node,
5185 p_form_type => 'G302Y',
5186 p_man_key => 'resid',
5187 p_data_type => 'G03',
5188 p_item_name => 'sum');
5189 --
5190 if l_cards_tbl.count > 0 then
5191 --
5192 for g03cnt in l_cards_tbl.first..l_cards_tbl.last loop
5193 --
5194 -- accumulate for only person
5195 if l_cards_tbl(g03cnt).key = l_ni_num then
5196 --
5197 if l_cards_tbl(g03cnt).use_place_cd = 1 then
5198 l_ass_data_rec.direct_card_exp := fnd_number.number_to_canonical(nvl(fnd_number.canonical_to_number(l_ass_data_rec.direct_card_exp),0)
5199 + nvl(to_number(l_cards_tbl(g03cnt).val),0));
5200 else
5201 l_ass_data_rec.direct_tm_exp := fnd_number.number_to_canonical(nvl(fnd_number.canonical_to_number(l_ass_data_rec.direct_tm_exp),0)
5202 + nvl(to_number(l_cards_tbl(g03cnt).val),0));
5203 end if;
5204 --
5205 else
5206 --
5207 begin
5208 --
5209 if l_cards_tbl(g03cnt).use_place_cd = 1 then
5210 l_dpnt_num := l_dpnt_tbl(get_dpnt_ind(l_dpnt_ind_tbl,l_cards_tbl(g03cnt).key)).direct_payment_nts;
5211 else
5212 l_dpnt_num := l_dpnt_tbl(get_dpnt_ind(l_dpnt_ind_tbl,l_cards_tbl(g03cnt).key)).direct_tm_nts;
5213 end if;
5214 --
5215 exception
5216 when others then
5217 --
5218 l_dpnt_num := 0;
5219 l_dpnt_ind_tbl(l_dpnt_ind) := l_cards_tbl(g03cnt).key;
5220 l_dpnt_ind := l_dpnt_ind + 1;
5221 --
5222 end;
5223 --
5224 if l_cards_tbl(g03cnt).use_place_cd = 1 then
5225 l_dpnt_tbl(get_dpnt_ind(l_dpnt_ind_tbl,l_cards_tbl(g03cnt).key)).direct_payment_nts := nvl(l_dpnt_num,0) + nvl(to_number(l_cards_tbl(g03cnt).val),0);
5226 else
5227 l_dpnt_tbl(get_dpnt_ind(l_dpnt_ind_tbl,l_cards_tbl(g03cnt).key)).direct_tm_nts := nvl(l_dpnt_num,0) + nvl(to_number(l_cards_tbl(g03cnt).val),0);
5228 end if;
5229 --
5230 end if;
5231 --
5232 end loop;
5233 --
5234 end if;
5235 --
5236 -- --------------------------------------------------
5237 -- Pension, Saving Details
5238 -- --------------------------------------------------
5239 --
5240 -- <<Separation Pension>>
5241 --
5242 -- Priority/Type/Financial Institue, etc./Account Number/Contributed Amount
5243 l_saving_tbl := get_saving_values(
5244 p_form_node => form_node,
5245 p_form_type => 'F101Y',
5246 p_data_type => 'F01',
5247 p_item_type => 'pension_cd');
5248 --
5249 if l_saving_tbl.count > 0 then
5250 --
5251 for f01cnt in l_saving_tbl.first..l_saving_tbl.last loop
5252 --
5253 l_sep_pen_saving_tbl(l_saving_ind).priority := fnd_number.number_to_canonical(c_priority_inc * (l_saving_ind + 1));
5254 l_sep_pen_saving_tbl(l_saving_ind).type := l_saving_tbl(f01cnt).type;
5255 l_sep_pen_saving_tbl(l_saving_ind).financial_inst := l_saving_tbl(f01cnt).financial_inst;
5256 l_sep_pen_saving_tbl(l_saving_ind).account_num := l_saving_tbl(f01cnt).account_num;
5257 l_sep_pen_saving_tbl(l_saving_ind).contributed_amt := fnd_number.number_to_canonical(to_number(l_saving_tbl(f01cnt).contributed_amt));
5258 l_saving_ind := l_saving_ind + 1;
5259 --
5260 end loop;
5261 --
5262 end if;
5263 --
5264 if l_sep_pen_saving_tbl.count > 0 then
5265 --
5266 l_ass_data_rec.sep_pen_saving_tbl := l_sep_pen_saving_tbl;
5267 --
5268 end if;
5269 --
5270 -- <<Pension Saving>>
5271 --
5272 -- Priority/Type/Financial Institue, etc./Account Number/Contributed Amount
5273 --
5274 l_saving_tbl := get_saving_values(
5275 p_form_node => form_node,
5276 p_form_type => 'D101Y',
5277 p_data_type => 'D01');
5278 --
5279 if l_saving_tbl.count > 0 then
5280 --
5281 for d01cnt in l_saving_tbl.first..l_saving_tbl.last loop
5282 --
5283 l_pen_saving_tbl(l_pen_saving_ind).priority := fnd_number.number_to_canonical(c_priority_inc * (l_pen_saving_ind + 1));
5284 l_pen_saving_tbl(l_pen_saving_ind).type := '1'; /* KR_YEA_PEN_SAVING_TYPES */
5285 l_pen_saving_tbl(l_pen_saving_ind).financial_inst := l_saving_tbl(d01cnt).financial_inst;
5286 l_pen_saving_tbl(l_pen_saving_ind).account_num := l_saving_tbl(d01cnt).account_num;
5287 l_pen_saving_tbl(l_pen_saving_ind).contributed_amt := fnd_number.number_to_canonical(to_number(l_saving_tbl(d01cnt).contributed_amt));
5288 l_pen_saving_ind := l_pen_saving_ind + 1;
5289 --
5290 end loop;
5291 --
5292 end if;
5293 --
5294 l_saving_tbl := get_saving_values(
5295 p_form_node => form_node,
5296 p_form_type => 'E101Y',
5297 p_data_type => 'E01');
5298 --
5299 if l_saving_tbl.count > 0 then
5300 --
5301 for e01cnt in l_saving_tbl.first..l_saving_tbl.last loop
5302 --
5303 l_pen_saving_tbl(l_pen_saving_ind).priority := fnd_number.number_to_canonical(c_priority_inc * (l_pen_saving_ind + 1));
5304 l_pen_saving_tbl(l_pen_saving_ind).type := '2'; /* KR_YEA_PEN_SAVING_TYPES */
5305 l_pen_saving_tbl(l_pen_saving_ind).financial_inst := l_saving_tbl(e01cnt).financial_inst;
5306 l_pen_saving_tbl(l_pen_saving_ind).account_num := l_saving_tbl(e01cnt).account_num;
5307 l_pen_saving_tbl(l_pen_saving_ind).contributed_amt := fnd_number.number_to_canonical(to_number(l_saving_tbl(e01cnt).contributed_amt));
5308 l_pen_saving_ind := l_pen_saving_ind + 1;
5309 --
5310 end loop;
5311 --
5312 end if;
5313 --
5314 if l_pen_saving_tbl.count > 0 then
5315 --
5316 l_ass_data_rec.pen_saving_tbl := l_pen_saving_tbl;
5317 --
5318 end if;
5319 --
5320 -- <<Housing Saving>>
5321 --
5322 -- Housing Saving Details.Priority/Type/Financial Institue, etc./Account Number/Contributed Amount
5323 l_saving_ind := 0;
5324 l_saving_tbl.delete;
5325 --
5326 l_saving_tbl := get_saving_values(
5327 p_form_node => form_node,
5328 p_form_type => 'J301Y',
5329 p_data_type => 'J03',
5330 p_item_type => 'saving_gubn');
5331 --
5332 if l_saving_tbl.count > 0 then
5333 --
5334 for j03cnt in l_saving_tbl.first..l_saving_tbl.last loop
5335 --
5336 l_hou_saving_tbl(l_saving_ind).priority := fnd_number.number_to_canonical(c_priority_inc * (l_saving_ind + 1));
5337 l_hou_saving_tbl(l_saving_ind).type := l_saving_tbl(j03cnt).type;
5338 l_hou_saving_tbl(l_saving_ind).financial_inst := l_saving_tbl(j03cnt).financial_inst;
5339 l_hou_saving_tbl(l_saving_ind).account_num := l_saving_tbl(j03cnt).account_num;
5340 l_hou_saving_tbl(l_saving_ind).contributed_amt := fnd_number.number_to_canonical(to_number(l_saving_tbl(j03cnt).contributed_amt));
5341 l_saving_ind := l_saving_ind + 1;
5342 --
5343 end loop;
5344 --
5345 end if;
5346 --
5347 if l_hou_saving_tbl.count > 0 then
5348 --
5349 l_ass_data_rec.hou_saving_tbl := l_hou_saving_tbl;
5350 --
5351 end if;
5352 --
5353 -- <<Long Term Stock Saving>>
5354 --
5355 -- Long Term Stock Saving Details.Priority/Financial Institue, etc./Account Number/Year/Contributed Amount
5356 l_saving_ind := 0;
5357 l_saving_tbl.delete;
5358 --
5359 l_saving_tbl := get_saving_values(
5360 p_form_node => form_node,
5361 p_form_type => 'M101Y',
5362 p_data_type => 'M01',
5363 p_lts_type => 'Y');
5364 --
5365 if l_saving_tbl.count > 0 then
5366 --
5367 for m01cnt in l_saving_tbl.first..l_saving_tbl.last loop
5368 --
5369 if l_saving_tbl(m01cnt).cont_amt_y2 > 0 then
5370 --
5371 l_lts_saving_tbl(l_saving_ind).priority := fnd_number.number_to_canonical(c_priority_inc * (l_saving_ind + 1));
5372 l_lts_saving_tbl(l_saving_ind).financial_inst := l_saving_tbl(m01cnt).financial_inst;
5373 l_lts_saving_tbl(l_saving_ind).account_num := l_saving_tbl(m01cnt).account_num;
5374 l_lts_saving_tbl(l_saving_ind).type := '2'; /* KR_YEA_LT_STOCK_SAVING_YEAR */
5375 l_lts_saving_tbl(l_saving_ind).contributed_amt := fnd_number.number_to_canonical(to_number(l_saving_tbl(m01cnt).cont_amt_y2));
5376 l_saving_ind := l_saving_ind + 1;
5377 --
5378 end if;
5379 --
5380 if l_saving_tbl(m01cnt).cont_amt_y3 > 0 then
5381 --
5382 l_lts_saving_tbl(l_saving_ind).priority := fnd_number.number_to_canonical(c_priority_inc * (l_saving_ind + 1));
5383 l_lts_saving_tbl(l_saving_ind).financial_inst := l_saving_tbl(m01cnt).financial_inst;
5384 l_lts_saving_tbl(l_saving_ind).account_num := l_saving_tbl(m01cnt).account_num;
5385 l_lts_saving_tbl(l_saving_ind).type := '3'; /* KR_YEA_LT_STOCK_SAVING_YEAR */
5386 l_lts_saving_tbl(l_saving_ind).contributed_amt := fnd_number.number_to_canonical(to_number(l_saving_tbl(m01cnt).cont_amt_y3));
5387 l_saving_ind := l_saving_ind + 1;
5388 --
5389 end if;
5390 --
5391 end loop;
5392 --
5393 end if;
5394 --
5395 if l_lts_saving_tbl.count > 0 then
5396 --
5397 l_ass_data_rec.lts_saving_tbl := l_lts_saving_tbl;
5398 --
5399 end if;
5400 --
5401 -- --------------------------------------------------
5402 -- Employee Expense
5403 -- --------------------------------------------------
5404 --
5405 -- <<Insurance>>
5406 --
5407 -- NTS
5408 l_ass_data_rec.ins_exp_nts := fnd_number.number_to_canonical(nvl(fnd_number.canonical_to_number(l_ass_data_rec.pers_ins_prem),0)
5409 + nvl(fnd_number.canonical_to_number(l_ass_data_rec.disabled_ins_prem),0));
5410 --
5411 if l_ass_data_rec.ins_exp_nts = 0 then
5412 --
5413 l_ass_data_rec.ins_exp_nts := null;
5414 --
5415 end if;
5416 --
5417 -- <<Medical>>
5418 --
5419 -- NTS
5420 if l_med_exp_nts <> 0 then
5421 --
5422 l_ass_data_rec.med_exp_nts := fnd_number.number_to_canonical(l_med_exp_nts);
5423 --
5424 end if;
5425 --
5426 -- <<Education>>
5427 --
5428 -- NTS
5429 l_ass_data_rec.educ_exp_nts := fnd_number.number_to_canonical(nvl(fnd_number.canonical_to_number(l_ass_data_rec.ee_educ_exp),0)
5430 + nvl(fnd_number.canonical_to_number(l_ass_data_rec.ee_uniform_exp),0)
5431 + nvl(fnd_number.canonical_to_number(l_ass_data_rec.ee_occupation_educ_exp),0));
5432 --
5433 if l_ass_data_rec.educ_exp_nts = 0 then
5434 --
5435 l_ass_data_rec.educ_exp_nts := null;
5436 --
5437 end if;
5438 --
5439 -- <<Cards>>
5440 --
5441 -- NTS
5442 l_ass_data_rec.card_exp_nts := l_ass_data_rec.credit_card_exp;
5443 l_ass_data_rec.card_tm_nts := l_ass_data_rec.credit_tm_exp;
5444 --
5445 -- <<Direct Payment>>
5446 --
5447 -- NTS
5448 l_ass_data_rec.direct_payment_nts := l_ass_data_rec.direct_card_exp;
5449 l_ass_data_rec.direct_tm_nts := l_ass_data_rec.direct_tm_exp;
5450 --
5451 -- <<Donation>>
5452 --
5453 -- NTS
5454 if l_don_exp_nts <> 0 then
5455 --
5456 l_ass_data_rec.don_exp_nts := fnd_number.number_to_canonical(l_don_exp_nts);
5457 --
5458 end if;
5459 --
5460 -- --------------------------------------------------
5461 -- Dependent Information
5462 -- --------------------------------------------------
5463 --
5464 -- <<Dependent Exemption Details>>
5465 --
5466 -- Personal Insurance (NTS)
5467 -- Disabled Insurance (NTS)
5468 -- Medical (NTS)
5469 -- Education (NTS)
5470 -- Cards (NTS)
5471 -- Direct Payment (NTS)
5472 -- Cash (NTS)
5473 -- Donation (NTS)
5474 --
5475 if l_dpnt_tbl.count > 0 then
5476 --
5477 l_ass_data_rec.dpnt_ind_tbl := l_dpnt_ind_tbl;
5478 l_ass_data_rec.dpnt_tbl := l_dpnt_tbl;
5479 --
5480 end if;
5481 --
5482 end loop;
5483 --
5484 end if;
5485 --
5486 -- *************************************
5487 -- validate data and upload to kr temp
5488 -- *************************************
5489 --
5490 if g_upload then
5491 --
5492 -- include following behavior, some are skipped because of feasible case for nts data
5493 -- ------------------------------------------------------
5494 -- YeaCO.java processRequest create following rows
5495 -- ------------------------------------------------------
5496 -- KR_YEA_SP_TAX_EXEM_INFO : target_year, effective_date eoy, AYI_INFORMATION31 N
5497 -- KR_YEA_SP_TAX_EXEM_INFO2 : target_year, effective_date eoy
5498 -- KR_YEA_TAX_EXEM_INFO : target_year, effective_date eoy
5499 -- KR_YEA_OVS_TAX_BREAK_INFO : target_year
5500 -- KR_YEA_EMP_EXPENSE_DETAILS : target_year, effective_date eoy
5501 --
5502 -- ------------------------------------------------------
5503 -- YeaCO.java handleSaveForLater validation
5504 -- ------------------------------------------------------
5505 -- calculation
5506 -- 1. medical detail : syncTotalMedical calc total (self: emp (nts), A: disabled, B: aged, dependent, card, medical expence)
5507 -- KR_YEA_DETAIL_MEDICAL_EXP_INFO
5508 -- 2. donation detail : syncTotalDonation calc total (10: statutory, 20: political, 21: promptional,
5509 -- KR_YEA_DETAIL_DONATION_INFO 30: special, 31: publiclegal, 40: specified,
5510 -- 41: religious, 42: esoa, 50: other, donated)
5511 -- 3. separation pension detail : syncTotalSepPension calc total (1: emplyment, 2: scientific, pension)
5512 -- KR_YEA_SEP_PEN_DETAILS
5513 -- 4. long term stock saving detail : syncTotalLTStockSaving calc total (1: year 1, 2: year 2, 3: year 3, contributed)
5514 -- KR_YEA_LT_STOCK_SAVING_DETAILS
5515 -- 5. pension saving detail : syncTotalPenSaving calc total (1: pension prem, 2: pension saving, contributed)
5516 -- KR_YEA_PEN_SAVING_DETAILS
5517 --
5518 -- error
5519 -- 1. validate medical detail : PAY_KR_YEA_AGD_DSBLD_DPNT_MSG incompatible aged disabled flag
5520 -- validateDetailMedical
5521 -- KR_YEA_DETAIL_MEDICAL_EXP_INFO : PAY_KR_YEA_MED_PROVIDER_MSG same provider name
5522 -- 2. validate donation detail : PAY_KR_YEA_INV_DON_NAME_MSG same recipient name
5523 -- validateDetailDonation
5524 -- KR_YEA_DETAIL_DONATION_INFO
5525 -- 3. validate donation type : PAY_KR_TAX_PERIOD_UNIQUE_ERROR(?) unique donation type in target year
5526 -- validateDetailDon
5527 -- KR_YEA_DONATION_TYPE_DETAIL
5528 -- 4. validate non taxable : PAY_KR_NTAX_EARN_UNIQUE_ERROR unique taxation period in target year
5529 -- validateNonTaxableDetail
5530 -- KR_YEA_NON_TAXABLE_EARN_DETAIL
5531 -- 5. validate long term : PAY_KR_INV_PRIORITY unique priority
5532 -- stock savings : PAY_KR_INV_ACCOUNT_NUMBER unique combination of account number and type
5533 -- validateLTStockSaving
5534 -- KR_YEA_LT_STOCK_SAVING_DETAILS
5535 -- 6. validate housing saving : PAY_KR_INV_PRIORITY unique priority
5536 -- validateHousingSaving : PAY_KR_INV_ACCOUNT_NUMBER unique combination of account number and type
5537 -- KR_YEA_HOU_SAVING_DETAILS
5538 -- 7. validate pension saving : PAY_KR_INV_PRIORITY unique priority
5539 -- validatePensionSaving : PAY_KR_INV_ACCOUNT_NUMBER unique combination of account number and type
5540 -- KR_YEA_PEN_SAVING_DETAILS
5541 -- 8. validate separation : PAY_KR_INV_PRIORITY unique priority
5542 -- pension : PAY_KR_INV_ACCOUNT_NUMBER unique combination of account number and type
5543 -- validateSepPension
5544 -- KR_YEA_SEP_PEN_DETAILS
5545 --
5546 -- warning
5547 -- 1. KR_YEA_SP_TAX_EXEM_INFO2 card warning : PAY_KR_MED_CARD_EXCEEDS_TOTAL card > total
5548 -- KR_YEA_SP_TAX_EXEM_INFO total
5549 -- isCardAmountMoreThanTotal
5550 -- 2. KR_YEA_DETAIL_MEDICAL_EXP_INFO pay_kr_yea_sshr_utils_pkg.validate_bus_reg_num
5551 -- : PAY_KR_INV_BUS_REG_NUM invalid provider business reg num
5552 -- medProviderRegNumValidate
5553 -- 3. KR_YEA_DETAIL_DONATION_INFO pay_kr_yea_sshr_utils_pkg.validate_bus_reg_num
5554 -- : PAY_KR_INV_BUS_REG_NUM invalid receipt business reg num
5555 -- donRecipientRegNumValidate
5556 --
5557 -- 1. I PAY_KR_TOT_INS_LESS_THAN_NTS
5558 -- KR_YEA_EMP_EXPENSE_DETAILS : target_year, effective_date eoy
5559 -- hi, lctc, ei, personalprem, disabledprem, hieebal, ltcieebal, eibal, insexpnts,
5560 -- KR_YEA_PREV_ER_INFO : hi, ltci, ei
5561 -- ins exp nts > total
5562 -- 2. M PAY_KR_TOT_MED_LESS_THAN_NTS
5563 -- KR_YEA_EMP_EXPENSE_DETAILS (KR_YEA_SP_TAX_EXEM_INFO)
5564 -- med exp nts > med exp total
5565 -- 3. E PAY_KR_TOT_EDUC_LESS_THAN_NTS
5566 -- KR_YEA_EMP_EXPENSE_DETAILS nts deuc exp
5567 -- KR_YEA_SP_TAX_EXEM_INFO educ exp
5568 -- KR_YEA_SP_TAX_EXEM_INFO2 occupational educ
5569 -- nts educ exp > (educ exp + occupational educ)
5570 -- 4. C PAY_KR_TOT_CARD_LESS_THAN_NTS
5571 -- KR_YEA_EMP_EXPENSE_DETAILS : card nts
5572 -- KR_YEA_TAX_EXEM_INFO : card, directpay, tuition giro
5573 -- nts card > (card + tuition giro)
5574 -- 5. D PAY_KR_TOT_DON_LESS_THAN_NTS
5575 -- pay_kr_yea_form_pkg.get_donation_tax_break political don tax break
5576 -- KR_YEA_EMP_EXPENSE_DETAILS nts don
5577 -- KR_YEA_SP_TAX_EXEM_INFO political don, statutory don, political2 don, tax red law don, specified don, esoa don, public legal don, other don exp
5578 -- KR_YEA_SP_TAX_EXEM_INFO2 promotional fund don, religious don, other don
5579 -- nts don > don total (plicitacal don - tax break + statutory + political2 + promotional + tax red + public + specified + religious + esoa + other)
5580 -- 6. P PAY_KR_TOT_DIR_LESS_THAN_NTS
5581 -- KR_YEA_EMP_EXPENSE_DETAILS : directpay nts
5582 -- KR_YEA_TAX_EXEM_INFO : directpay
5583 -- nts directpay > directpay
5584 --
5585 -- ------------------------------------------------------
5586 -- YeaCO.java handleSubmit validation
5587 -- ------------------------------------------------------
5588 -- calculation, error, expence warning, update entry, same behavior as save for later so skip
5589 --
5590 -- B01
5591 l_ass_med_tbl := l_ass_data_rec.med_tbl;
5592 --
5593 if l_ass_med_tbl.count > 0 then
5594 --
5595 delete_kr_ass_yea_info(
5596 p_assignment_id => p_assignment_id,
5597 p_target_year => g_target_yyyy,
5598 p_information13 => '1',
5599 p_information_type => 'KR_YEA_DETAIL_MEDICAL_EXP_INFO');
5600 --
5601 open csr_med_max_priority;
5602 fetch csr_med_max_priority into l_max_priority;
5603 close csr_med_max_priority;
5604 --
5605 for i in l_ass_med_tbl.first..l_ass_med_tbl.last loop
5606 --
5607 insert_kr_ass_yea_info(
5608 p_assignment_id => p_assignment_id,
5609 p_target_year => g_target_yyyy,
5610 p_information_type => 'KR_YEA_DETAIL_MEDICAL_EXP_INFO',
5611 p_information1 => fnd_date.date_to_canonical(g_target_eoy),
5612 p_information3 => l_ass_med_tbl(i).paid_amount,
5613 p_information7 => get_relship(p_assignment_id,'KR_YEA_DETAIL_MEDICAL_EXP_INFO',l_ass_med_tbl(i).resident_registration_no),
5614 p_information8 => cnv_reg(l_ass_med_tbl(i).resident_registration_no),
5615 p_information9 => l_ass_med_tbl(i).disabled_or_aged,
5616 p_information10 => fnd_number.number_to_canonical(l_max_priority + c_priority_inc * (i + 1)),
5617 p_information13 => l_ass_med_tbl(i).source_code,
5618 p_assignment_yea_info_id => l_assignment_yea_info_id);
5619 --
5620 end loop;
5621 --
5622 end if;
5623 --
5624 -- L01
5625 l_ass_don_tbl := l_ass_data_rec.don_tbl;
5626 --
5627 p_stat_self := 0;
5628 p_stat_spouse := 0;
5629 p_stat_child := 0;
5630 p_pol_self := 0;
5631 p_tax_self := 0;
5632 p_tax_spouse := 0;
5633 p_tax_child := 0;
5634 p_pledt_self := 0;
5635 p_pledt_spouse := 0;
5636 p_pledt_child := 0;
5637 p_esoa_self := 0;
5638 p_spec_self := 0;
5639 p_spec_spouse := 0;
5640 p_spec_child := 0;
5641 p_rel_self := 0;
5642 p_rel_spouse := 0;
5643 p_rel_child := 0;
5644 p_oth_self := 0;
5645 p_oth_spouse := 0;
5646 p_oth_child := 0;
5647 p_stat_parent := 0;
5648 p_stat_bro_sis := 0;
5649 p_tax_parent := 0;
5650 p_tax_bro_sis := 0;
5651 p_pledt_parent := 0;
5652 p_pledt_bro_sis := 0;
5653 p_spec_parent := 0;
5654 p_spec_bro_sis := 0;
5655 p_rel_parent := 0;
5656 p_rel_bro_sis := 0;
5657 p_oth_parent := 0;
5658 p_oth_bro_sis := 0;
5659 p_political := 0;
5660 p_statutory := 0;
5661 p_esoa := 0;
5662 p_pledt := 0;
5663 p_religious := 0;
5664 p_specified := 0;
5665 p_tax_law := 0;
5666
5667
5668 if l_ass_don_tbl.count > 0 then
5669 --
5670 delete_kr_ass_yea_info(
5671 p_assignment_id => p_assignment_id,
5672 p_target_year => g_target_yyyy,
5673 p_information15 => '1',
5674 p_information_type => 'KR_YEA_DETAIL_DONATION_INFO');
5675 --
5676 for i in l_ass_don_tbl.first..l_ass_don_tbl.last loop
5677 --
5678 validate_kr_ass_yea_info(
5679 p_assignment_id => p_assignment_id,
5680 p_target_year => g_target_yyyy,
5681 p_information_type => 'KR_YEA_DETAIL_DONATION_INFO',
5682 p_information2 => l_ass_don_tbl(i).donated_date,
5683 p_information7 => cnv_reg(l_ass_don_tbl(i).recipient_registration_number),
5684 p_information8 => l_ass_don_tbl(i).recipient_name,
5685 p_information13 => cnv_reg(l_ass_don_tbl(i).ni_num) );
5686 --
5687 insert_kr_ass_yea_info(
5688 p_assignment_id => p_assignment_id,
5689 p_target_year => g_target_yyyy,
5690 p_information_type => 'KR_YEA_DETAIL_DONATION_INFO',
5691 p_information1 => fnd_date.date_to_canonical(g_target_eoy),
5692 p_information2 => l_ass_don_tbl(i).donated_date,
5693 p_information3 => l_ass_don_tbl(i).donated_amount,
5694 p_information5 => l_ass_don_tbl(i).donation_code,
5695 p_information7 => cnv_reg(l_ass_don_tbl(i).recipient_registration_number),
5696 p_information8 => l_ass_don_tbl(i).recipient_name,
5697 p_information12 => get_relship(p_assignment_id,'KR_YEA_DETAIL_DONATION_INFO',l_ass_don_tbl(i).ni_num),
5698 p_information13 => cnv_reg(l_ass_don_tbl(i).ni_num),
5699 p_information14 => l_ass_don_tbl(i).donator_name,
5700 p_information15 => l_ass_don_tbl(i).donation_detail_type,
5701 p_assignment_yea_info_id => l_assignment_yea_info_id);
5702 --
5703
5704 if get_relship(p_assignment_id,'KR_YEA_DETAIL_DONATION_INFO',l_ass_don_tbl(i).ni_num) <> '1' then
5705 p_total_don_dpnts := p_total_don_dpnts + l_ass_don_tbl(i).donated_amount;
5706 end if;
5707
5708 if l_ass_don_tbl(i).donation_code = '10' then
5709
5710 p_statutory := p_statutory + l_ass_don_tbl(i).donated_amount;
5711
5712 if get_relship(p_assignment_id,'KR_YEA_DETAIL_DONATION_INFO',l_ass_don_tbl(i).ni_num) = '1' then
5713 p_stat_self := p_stat_self + l_ass_don_tbl(i).donated_amount;
5714
5715 elsif get_relship(p_assignment_id,'KR_YEA_DETAIL_DONATION_INFO',l_ass_don_tbl(i).ni_num) = '2' then
5716
5717 p_stat_spouse := p_stat_spouse + l_ass_don_tbl(i).donated_amount;
5718
5719 elsif get_relship(p_assignment_id,'KR_YEA_DETAIL_DONATION_INFO',l_ass_don_tbl(i).ni_num) = '3' then
5720
5721 p_stat_child := p_stat_child + l_ass_don_tbl(i).donated_amount;
5722
5723 elsif get_relship(p_assignment_id,'KR_YEA_DETAIL_DONATION_INFO',l_ass_don_tbl(i).ni_num) = '4' then
5724
5725 p_stat_parent := p_stat_parent + l_ass_don_tbl(i).donated_amount;
5726
5727 elsif get_relship(p_assignment_id,'KR_YEA_DETAIL_DONATION_INFO',l_ass_don_tbl(i).ni_num) = '5' then
5728
5729 p_stat_bro_sis := p_stat_bro_sis + l_ass_don_tbl(i).donated_amount;
5730
5731 end if;
5732
5733
5734 elsif l_ass_don_tbl(i).donation_code = '20' then
5735
5736 p_political := p_political + l_ass_don_tbl(i).donated_amount;
5737
5738 if get_relship(p_assignment_id,'KR_YEA_DETAIL_DONATION_INFO',l_ass_don_tbl(i).ni_num) = '1' then
5739
5740 p_pol_self := p_pol_self + l_ass_don_tbl(i).donated_amount;
5741 end if;
5742
5743 elsif l_ass_don_tbl(i).donation_code = '30' then
5744
5745 p_tax_law := p_tax_law + l_ass_don_tbl(i).donated_amount;
5746
5747 if get_relship(p_assignment_id,'KR_YEA_DETAIL_DONATION_INFO',l_ass_don_tbl(i).ni_num) = '1' then
5748
5749 p_tax_self := p_tax_self + l_ass_don_tbl(i).donated_amount;
5750
5751 elsif get_relship(p_assignment_id,'KR_YEA_DETAIL_DONATION_INFO',l_ass_don_tbl(i).ni_num) = '2' then
5752
5753 p_tax_spouse := p_tax_spouse + l_ass_don_tbl(i).donated_amount;
5754
5755 elsif get_relship(p_assignment_id,'KR_YEA_DETAIL_DONATION_INFO',l_ass_don_tbl(i).ni_num) = '3' then
5756
5757 p_tax_child := p_tax_child + l_ass_don_tbl(i).donated_amount;
5758
5759 elsif get_relship(p_assignment_id,'KR_YEA_DETAIL_DONATION_INFO',l_ass_don_tbl(i).ni_num) = '4' then
5760
5761 p_tax_parent := p_tax_parent + l_ass_don_tbl(i).donated_amount;
5762
5763 elsif get_relship(p_assignment_id,'KR_YEA_DETAIL_DONATION_INFO',l_ass_don_tbl(i).ni_num) = '5' then
5764
5765 p_tax_bro_sis := p_tax_bro_sis + l_ass_don_tbl(i).donated_amount;
5766
5767 end if;
5768
5769
5770 elsif l_ass_don_tbl(i).donation_code = '31' then
5771
5772 p_pledt := p_pledt + l_ass_don_tbl(i).donated_amount;
5773
5774 if get_relship(p_assignment_id,'KR_YEA_DETAIL_DONATION_INFO',l_ass_don_tbl(i).ni_num) = '1' then
5775
5776 p_pledt_self := p_pledt_self + l_ass_don_tbl(i).donated_amount;
5777
5778 elsif get_relship(p_assignment_id,'KR_YEA_DETAIL_DONATION_INFO',l_ass_don_tbl(i).ni_num) = '2' then
5779
5780 p_pledt_spouse := p_pledt_spouse + l_ass_don_tbl(i).donated_amount;
5781
5782 elsif get_relship(p_assignment_id,'KR_YEA_DETAIL_DONATION_INFO',l_ass_don_tbl(i).ni_num) = '3' then
5783
5784 p_pledt_child := p_pledt_child + l_ass_don_tbl(i).donated_amount;
5785
5786 elsif get_relship(p_assignment_id,'KR_YEA_DETAIL_DONATION_INFO',l_ass_don_tbl(i).ni_num) = '4' then
5787
5788 p_pledt_parent := p_pledt_parent + l_ass_don_tbl(i).donated_amount;
5789
5790 elsif get_relship(p_assignment_id,'KR_YEA_DETAIL_DONATION_INFO',l_ass_don_tbl(i).ni_num) = '5' then
5791
5792 p_pledt_bro_sis := p_pledt_bro_sis + l_ass_don_tbl(i).donated_amount;
5793
5794 end if;
5795
5796 elsif l_ass_don_tbl(i).donation_code = '40' then
5797
5798 p_specified := p_specified + l_ass_don_tbl(i).donated_amount;
5799
5800 if get_relship(p_assignment_id,'KR_YEA_DETAIL_DONATION_INFO',l_ass_don_tbl(i).ni_num) = '1' then
5801
5802 p_spec_self := p_spec_self + l_ass_don_tbl(i).donated_amount;
5803
5804 elsif get_relship(p_assignment_id,'KR_YEA_DETAIL_DONATION_INFO',l_ass_don_tbl(i).ni_num) = '2' then
5805
5806 p_spec_spouse := p_spec_spouse + l_ass_don_tbl(i).donated_amount;
5807
5808 elsif get_relship(p_assignment_id,'KR_YEA_DETAIL_DONATION_INFO',l_ass_don_tbl(i).ni_num) = '3' then
5809
5810 p_spec_child := p_spec_child + l_ass_don_tbl(i).donated_amount;
5811
5812 elsif get_relship(p_assignment_id,'KR_YEA_DETAIL_DONATION_INFO',l_ass_don_tbl(i).ni_num) = '4' then
5813
5814 p_spec_parent := p_spec_parent + l_ass_don_tbl(i).donated_amount;
5815
5816 elsif get_relship(p_assignment_id,'KR_YEA_DETAIL_DONATION_INFO',l_ass_don_tbl(i).ni_num) = '5' then
5817
5818 p_spec_bro_sis := p_spec_bro_sis + l_ass_don_tbl(i).donated_amount;
5819
5820 end if;
5821
5822 elsif l_ass_don_tbl(i).donation_code = '41' then
5823
5824
5825 p_religious := p_religious + l_ass_don_tbl(i).donated_amount;
5826
5827 if get_relship(p_assignment_id,'KR_YEA_DETAIL_DONATION_INFO',l_ass_don_tbl(i).ni_num) = '1' then
5828
5829 p_rel_self := p_rel_self + l_ass_don_tbl(i).donated_amount;
5830
5831 elsif get_relship(p_assignment_id,'KR_YEA_DETAIL_DONATION_INFO',l_ass_don_tbl(i).ni_num) = '2' then
5832
5833 p_rel_spouse := p_rel_spouse + l_ass_don_tbl(i).donated_amount;
5834
5835 elsif get_relship(p_assignment_id,'KR_YEA_DETAIL_DONATION_INFO',l_ass_don_tbl(i).ni_num) = '3' then
5836
5837 p_rel_child := p_rel_child + l_ass_don_tbl(i).donated_amount;
5838
5839 elsif get_relship(p_assignment_id,'KR_YEA_DETAIL_DONATION_INFO',l_ass_don_tbl(i).ni_num) = '4' then
5840
5841 p_rel_parent := p_rel_parent + l_ass_don_tbl(i).donated_amount;
5842
5843 elsif get_relship(p_assignment_id,'KR_YEA_DETAIL_DONATION_INFO',l_ass_don_tbl(i).ni_num) = '5' then
5844
5845 p_rel_bro_sis := p_rel_bro_sis + l_ass_don_tbl(i).donated_amount;
5846
5847 end if;
5848
5849 elsif l_ass_don_tbl(i).donation_code = '42' then
5850
5851 p_esoa := p_esoa + l_ass_don_tbl(i).donated_amount;
5852
5853 if get_relship(p_assignment_id,'KR_YEA_DETAIL_DONATION_INFO',l_ass_don_tbl(i).ni_num) = '1' then
5854
5855 p_esoa_self := p_esoa_self + l_ass_don_tbl(i).donated_amount;
5856
5857 end if;
5858
5859 elsif l_ass_don_tbl(i).donation_code = '50' then
5860
5861
5862
5863 if get_relship(p_assignment_id,'KR_YEA_DETAIL_DONATION_INFO',l_ass_don_tbl(i).ni_num) = '1' then
5864
5865 p_oth_self := p_oth_self + l_ass_don_tbl(i).donated_amount;
5866
5867 elsif get_relship(p_assignment_id,'KR_YEA_DETAIL_DONATION_INFO',l_ass_don_tbl(i).ni_num) = '2' then
5868
5869 p_oth_spouse := p_oth_spouse + l_ass_don_tbl(i).donated_amount;
5870
5871 elsif get_relship(p_assignment_id,'KR_YEA_DETAIL_DONATION_INFO',l_ass_don_tbl(i).ni_num) = '3' then
5872
5873 p_oth_child := p_oth_child + l_ass_don_tbl(i).donated_amount;
5874
5875 elsif get_relship(p_assignment_id,'KR_YEA_DETAIL_DONATION_INFO',l_ass_don_tbl(i).ni_num) = '4' then
5876
5877 p_oth_parent := p_oth_parent + l_ass_don_tbl(i).donated_amount;
5878
5879 elsif get_relship(p_assignment_id,'KR_YEA_DETAIL_DONATION_INFO',l_ass_don_tbl(i).ni_num) = '5' then
5880
5881 p_oth_bro_sis := p_oth_bro_sis + l_ass_don_tbl(i).donated_amount;
5882
5883 end if;
5884
5885 end if;
5886
5887 end loop;
5888 --
5889 end if;
5890
5891 pay_kr_yea_sshr_utils_pkg.update_don_tot_data(
5892 p_assignment_id => p_assignment_id,
5893 p_target_year => g_target_yyyy ,
5894 p_stat_self => p_stat_self ,
5895 p_stat_spouse => p_stat_spouse ,
5896 p_stat_child => p_stat_child ,
5897 p_pol_self => p_pol_self ,
5898 p_tax_self => p_tax_self ,
5899 p_tax_spouse => p_tax_spouse ,
5900 p_tax_child => p_tax_child ,
5901 p_pledt_self => p_pledt_self ,
5902 p_pledt_spouse => p_pledt_spouse,
5903 p_pledt_child => p_pledt_child ,
5904 p_esoa_self => p_esoa_self ,
5905 p_spec_self => p_spec_self ,
5906 p_spec_spouse => p_spec_spouse ,
5907 p_spec_child => p_spec_child ,
5908 p_rel_self => p_rel_self ,
5909 p_rel_spouse => p_rel_spouse ,
5910 p_rel_child => p_rel_child ,
5911 p_oth_self => p_oth_self ,
5912 p_oth_spouse => p_oth_spouse ,
5913 p_oth_child => p_oth_child ,
5914 p_stat_parent => p_stat_parent ,
5915 p_stat_bro_sis => p_stat_bro_sis,
5916 p_tax_parent => p_tax_parent ,
5917 p_tax_bro_sis => p_tax_bro_sis ,
5918 p_pledt_parent => p_pledt_parent ,
5919 p_pledt_bro_sis => p_pledt_bro_sis ,
5920 p_spec_parent => p_spec_parent ,
5921 p_spec_bro_sis => p_spec_bro_sis ,
5922 p_rel_parent => p_rel_parent ,
5923 p_rel_bro_sis => p_rel_bro_sis,
5924 p_oth_parent => p_oth_parent ,
5925 p_oth_bro_sis => p_oth_bro_sis );
5926
5927
5928 pay_kr_yea_sshr_utils_pkg.sync_don_type_data (p_assignment_id => p_assignment_id ,
5929 p_target_year => g_target_yyyy,
5930 p_political => p_political ,
5931 p_statutory => p_statutory ,
5932 p_esoa => p_esoa,
5933 p_pledt => p_pledt ,
5934 p_religious => p_religious ,
5935 p_specified => p_specified ,
5936 p_tax_law => p_tax_law) ;
5937 --
5938 --
5939 -- C01/C03/C04
5940 l_ass_educ_tbl := l_ass_data_rec.educ_tbl;
5941 -- C06
5942 l_ass_uniform_tbl := l_ass_data_rec.uniform_tbl;
5943 --
5944 if l_ass_educ_tbl.count > 0 then
5945 --
5946 delete_kr_ass_yea_info(
5947 p_assignment_id => p_assignment_id,
5948 p_target_year => g_target_yyyy,
5949 p_information6 => '1',
5950 p_information_type => 'KR_YEA_DPNT_EDUC_TAX_EXEM_INFO');
5951 --
5952 for i in l_ass_educ_tbl.first..l_ass_educ_tbl.last loop
5953 --
5954 insert_kr_ass_yea_info(
5955 p_assignment_id => p_assignment_id,
5956 p_target_year => g_target_yyyy,
5957 p_information_type => 'KR_YEA_DPNT_EDUC_TAX_EXEM_INFO',
5958 p_information1 => fnd_date.date_to_canonical(g_target_eoy),
5959 p_information2 => get_relship(p_assignment_id,'KR_YEA_DPNT_EDUC_TAX_EXEM_INFO',l_ass_educ_tbl(i).ni_num),
5960 p_information3 => l_ass_educ_tbl(i).school_type,
5961 p_information4 => l_ass_educ_tbl(i).exp,
5962 p_information5 => cnv_reg(l_ass_educ_tbl(i).ni_num),
5963 p_information6 => l_ass_educ_tbl(i).nts_other,
5964 p_information7 => l_ass_educ_tbl(i).dpnt_name,
5965 p_assignment_yea_info_id => l_assignment_yea_info_id);
5966 --
5967 end loop;
5968 --
5969 end if;
5970 --
5971 -- Uniform Expense
5972 if l_ass_uniform_tbl.count > 0 then
5973 --
5974 if l_ass_educ_tbl.count = 0 then
5975 delete_kr_ass_yea_info(
5976 p_assignment_id => p_assignment_id,
5977 p_target_year => g_target_yyyy,
5978 p_information6 => '1',
5979 p_information_type => 'KR_YEA_DPNT_EDUC_TAX_EXEM_INFO');
5980 end if;
5981 --
5982 for i in l_ass_uniform_tbl.first..l_ass_uniform_tbl.last loop
5983 --
5984 insert_kr_ass_yea_info(
5985 p_assignment_id => p_assignment_id,
5986 p_target_year => g_target_yyyy,
5987 p_information_type => 'KR_YEA_DPNT_EDUC_TAX_EXEM_INFO',
5988 p_information1 => fnd_date.date_to_canonical(g_target_eoy),
5989 p_information2 => get_relship(p_assignment_id,'KR_YEA_DPNT_EDUC_TAX_EXEM_INFO',l_ass_uniform_tbl(i).key),
5990 p_information3 => 'H',
5991 p_information4 => l_ass_uniform_tbl(i).val,
5992 p_information5 => cnv_reg(l_ass_uniform_tbl(i).key),
5993 p_information6 => '1',
5994 p_information7 => l_ass_uniform_tbl(i).empname,
5995 p_assignment_yea_info_id => l_assignment_yea_info_id);
5996 --
5997 end loop;
5998 --
5999 end if;
6000 -- F01
6001 l_ass_saving_tbl := l_ass_data_rec.sep_pen_saving_tbl;
6002 --
6003 if l_ass_saving_tbl.count > 0 then
6004 --
6005 delete_kr_ass_yea_info(
6006 p_assignment_id => p_assignment_id,
6007 p_target_year => g_target_yyyy,
6008 p_information_type => 'KR_YEA_SEP_PEN_DETAILS');
6009 --
6010 for i in l_ass_saving_tbl.first..l_ass_saving_tbl.last loop
6011 --
6012 insert_kr_ass_yea_info(
6013 p_assignment_id => p_assignment_id,
6014 p_target_year => g_target_yyyy,
6015 p_information_type => 'KR_YEA_SEP_PEN_DETAILS',
6016 p_information1 => fnd_date.date_to_canonical(g_target_eoy),
6017 p_information2 => get_type('KR_YEA_SEP_PEN_DETAILS',l_ass_saving_tbl(i).type),
6018 p_information3 => '110', --get_fin(l_ass_saving_tbl(i).financial_inst),
6019 p_information4 => l_ass_saving_tbl(i).account_num,
6020 p_information5 => l_ass_saving_tbl(i).contributed_amt,
6021 p_information6 => l_ass_saving_tbl(i).priority,
6022 p_assignment_yea_info_id => l_assignment_yea_info_id);
6023 --
6024 end loop;
6025 --
6026 end if;
6027 --
6028 -- D01/E01
6029 l_ass_saving_tbl := l_ass_data_rec.pen_saving_tbl;
6030 --
6031 if l_ass_saving_tbl.count > 0 then
6032 --
6033 delete_kr_ass_yea_info(
6034 p_assignment_id => p_assignment_id,
6035 p_target_year => g_target_yyyy,
6036 p_information_type => 'KR_YEA_PEN_SAVING_DETAILS');
6037 --
6038 for i in l_ass_saving_tbl.first..l_ass_saving_tbl.last loop
6039 --
6040 insert_kr_ass_yea_info(
6041 p_assignment_id => p_assignment_id,
6042 p_target_year => g_target_yyyy,
6043 p_information_type => 'KR_YEA_PEN_SAVING_DETAILS',
6044 p_information1 => fnd_date.date_to_canonical(g_target_eoy),
6045 p_information2 => l_ass_saving_tbl(i).type,
6046 p_information3 => '110', --get_fin(l_ass_saving_tbl(i).financial_inst),
6047 p_information4 => l_ass_saving_tbl(i).account_num,
6048 p_information5 => l_ass_saving_tbl(i).contributed_amt,
6049 p_information6 => l_ass_saving_tbl(i).priority,
6050 p_assignment_yea_info_id => l_assignment_yea_info_id);
6051 --
6052 end loop;
6053 --
6054 end if;
6055 --
6056 -- M01
6057 l_ass_saving_tbl := l_ass_data_rec.lts_saving_tbl;
6058 --
6059 if l_ass_saving_tbl.count > 0 then
6060 --
6061 delete_kr_ass_yea_info(
6062 p_assignment_id => p_assignment_id,
6063 p_target_year => g_target_yyyy,
6064 p_information_type => 'KR_YEA_LT_STOCK_SAVING_DETAILS');
6065 --
6066 for i in l_ass_saving_tbl.first..l_ass_saving_tbl.last loop
6067 --
6068 insert_kr_ass_yea_info(
6069 p_assignment_id => p_assignment_id,
6070 p_target_year => g_target_yyyy,
6071 p_information_type => 'KR_YEA_LT_STOCK_SAVING_DETAILS',
6072 p_information1 => fnd_date.date_to_canonical(g_target_eoy),
6073 p_information2 => l_ass_saving_tbl(i).type,
6074 p_information3 => '110', --get_fin(l_ass_saving_tbl(i).financial_inst),
6075 p_information4 => l_ass_saving_tbl(i).account_num,
6076 p_information5 => l_ass_saving_tbl(i).contributed_amt,
6077 p_information6 => l_ass_saving_tbl(i).priority,
6078 p_assignment_yea_info_id => l_assignment_yea_info_id);
6079 --
6080 end loop;
6081 --
6082 end if;
6083 --
6084 -- J03
6085 l_ass_saving_tbl := l_ass_data_rec.hou_saving_tbl;
6086 --
6087 if l_ass_saving_tbl.count > 0 then
6088 --
6089 delete_kr_ass_yea_info(
6090 p_assignment_id => p_assignment_id,
6091 p_target_year => g_target_yyyy,
6092 p_information_type => 'KR_YEA_HOU_SAVING_DETAILS');
6093 --
6094 for i in l_ass_saving_tbl.first..l_ass_saving_tbl.last loop
6095 --
6096 validate_kr_ass_yea_info(
6097 p_assignment_id => p_assignment_id,
6098 p_target_year => g_target_yyyy,
6099 p_information_type => 'KR_YEA_HOU_SAVING_DETAILS',
6100 p_information1 => fnd_date.date_to_canonical(g_target_eoy),
6101 p_information2 => get_type('KR_YEA_HOU_SAVING_DETAILS',l_ass_saving_tbl(i).type),
6102 p_information5 => l_ass_saving_tbl(i).contributed_amt);
6103 --
6104 insert_kr_ass_yea_info(
6105 p_assignment_id => p_assignment_id,
6106 p_target_year => g_target_yyyy,
6107 p_information_type => 'KR_YEA_HOU_SAVING_DETAILS',
6108 p_information1 => fnd_date.date_to_canonical(g_target_eoy),
6109 p_information2 => get_type('KR_YEA_HOU_SAVING_DETAILS',l_ass_saving_tbl(i).type),
6110 p_information3 => '110', --get_fin(l_ass_saving_tbl(i).financial_inst),
6111 p_information4 => l_ass_saving_tbl(i).account_num,
6112 p_information5 => l_ass_saving_tbl(i).contributed_amt,
6113 p_information6 => l_ass_saving_tbl(i).priority,
6114 p_assignment_yea_info_id => l_assignment_yea_info_id);
6115 --
6116 end loop;
6117 --
6118 end if;
6119 --
6120 -- syncTotalMedical, no need to recalc total for other data except for NTS, just inherit
6121 open csr_med_total_o;
6122 fetch csr_med_total_o into l_csr_med_total_o;
6123 close csr_med_total_o;
6124 --
6125 -- syncTotalDonation
6126 open csr_don_total;
6127 fetch csr_don_total into l_csr_don_total;
6128 close csr_don_total;
6129 --
6130 -- A01/A02/J01/J02/B01/L01/C01/C03/C04/C06
6131 -- C06 Uniform Expense will be accumlated with C01/C03/C04
6132 load_kr_ass_yea_info(
6133 p_assignment_id => p_assignment_id,
6134 p_target_year => g_target_yyyy,
6135 p_information_type => 'KR_YEA_SP_TAX_EXEM_INFO',
6136 p_information1 => fnd_date.date_to_canonical(g_target_eoy),
6137 p_information5 => l_ass_data_rec.pers_ins_prem,
6138 p_information6 => l_ass_data_rec.disabled_ins_prem,
6139 p_information7 => l_ass_data_rec.med_exp + nvl(l_csr_med_total_o.dep,0),
6140 p_information9 => l_ass_data_rec.med_exp_aged + nvl(l_csr_med_total_o.aged,0),
6141 p_information10 => l_ass_data_rec.ee_educ_exp + nvl(l_ass_data_rec.ee_uniform_exp,0),
6142 p_information15 => l_ass_data_rec.housing_loan_repay,
6143 p_information16 => l_ass_data_rec.housing_loan_date,
6144 p_information17 => l_ass_data_rec.lt_housing_loan_interest_rep,
6145 p_information18 => l_csr_don_total.statutory,
6146 p_information19 => l_ass_data_rec.political_donation1,
6147 p_information20 => l_csr_don_total.political,
6148 p_information22 => l_csr_don_total.specified,
6149 p_information23 => l_csr_don_total.special,
6150 p_information24 => l_ass_data_rec.med_exp_emp + nvl(l_csr_med_total_o.emp,0),
6151 p_information26 => l_ass_data_rec.lt_housing_loan_int_repay_1,
6152 p_information30 => l_csr_don_total.esoa,
6153 p_information31 => 'N',
6154 p_assignment_yea_info_id => l_assignment_yea_info_id);
6155 --
6156 -- J02/C02
6157 load_kr_ass_yea_info(
6158 p_assignment_id => p_assignment_id,
6159 p_target_year => g_target_yyyy,
6160 p_information_type => 'KR_YEA_SP_TAX_EXEM_INFO2',
6161 p_information1 => fnd_date.date_to_canonical(g_target_eoy),
6162 p_information2 => l_ass_data_rec.ee_occupation_educ_exp,
6163 p_information4 => l_csr_don_total.promotional,
6164 p_information5 => l_csr_don_total.religious,
6165 p_information6 => l_csr_don_total.other,
6166 p_information7 => l_csr_don_total.publicLegal,
6167 p_information8 => p_total_don_dpnts,
6168 p_information13 => l_ass_data_rec.lt_housing_loan_int_repay_2,
6169 p_assignment_yea_info_id => l_assignment_yea_info_id);
6170 --
6171 -- J02
6172 load_kr_ass_yea_info(
6173 p_assignment_id => p_assignment_id,
6174 p_target_year => g_target_yyyy,
6175 p_information_type => 'KR_YEA_SP_TAX_EXEM_INFO3',
6176 p_information1 => fnd_date.date_to_canonical(g_target_eoy),
6177 p_information6 => l_ass_data_rec.lt_2012_fixed_intr_wo_grace,
6178 p_information7 => l_ass_data_rec.lt_2012_housing_other_intr,
6179 p_assignment_yea_info_id => l_assignment_yea_info_id);
6180
6181 --syncTotalSepPension
6182 open csr_sep_pen_total;
6183 fetch csr_sep_pen_total into l_csr_sep_pen_total;
6184 close csr_sep_pen_total;
6185 --
6186 --syncTotalLTStockSaving
6187 open csr_lts_total;
6188 fetch csr_lts_total into l_csr_lts_total;
6189 close csr_lts_total;
6190 --
6191 --syncTotalPenSaving
6192 open csr_pen_total;
6193 fetch csr_pen_total into l_csr_pen_total;
6194 close csr_pen_total;
6195 --
6196 -- D01/K01
6197 load_kr_ass_yea_info(
6198 p_assignment_id => p_assignment_id,
6199 p_target_year => g_target_yyyy,
6200 p_information_type => 'KR_YEA_TAX_EXEM_INFO',
6201 p_information1 => fnd_date.date_to_canonical(g_target_eoy),
6202 p_information3 => l_ass_data_rec.pers_pension_prem,
6203 p_information4 => l_csr_pen_total.pen_saving,
6204 p_information7 => l_ass_data_rec.credit_card_exp,
6205 p_information10 => l_ass_data_rec.direct_card_exp,
6206 p_information13 => l_ass_data_rec.cash_receipt_exp,
6207 p_information14 => l_csr_sep_pen_total.employment,
6208 p_information20 => l_ass_data_rec.small_bus_install,
6209 p_information22 => l_csr_lts_total.year1,
6210 p_information23 => l_csr_lts_total.year2,
6211 p_information24 => l_csr_lts_total.year3,
6212 p_information31 => l_csr_sep_pen_total.scientific,
6213 p_assignment_yea_info_id => l_assignment_yea_info_id);
6214 --
6215 --G101 Tradition Market details
6216 load_kr_ass_yea_info(
6217 p_assignment_id => p_assignment_id,
6218 p_target_year => g_target_yyyy,
6219 p_information_type => 'KR_YEA_TAX_EXEM_INFO2',
6220 p_information1 => fnd_date.date_to_canonical(g_target_eoy),
6221 p_information3 => l_ass_data_rec.credit_tm_exp,
6222 p_information5 => l_ass_data_rec.cash_tm_exp,
6223 p_information7 => l_ass_data_rec.direct_tm_exp,
6224 p_assignment_yea_info_id => l_assignment_yea_info_id);
6225 --
6226 -- A01/A02/B01/C01/C02/C03/C4/G01/G03/L01
6227 load_kr_ass_yea_info(
6228 p_assignment_id => p_assignment_id,
6229 p_target_year => g_target_yyyy,
6230 p_information_type => 'KR_YEA_EMP_EXPENSE_DETAILS',
6231 p_information1 => fnd_date.date_to_canonical(g_target_eoy),
6232 p_information2 => l_ass_data_rec.med_exp_nts,
6233 p_information3 => l_ass_data_rec.educ_exp_nts,
6234 p_information4 => l_ass_data_rec.card_exp_nts,
6235 p_information5 => l_ass_data_rec.don_exp_nts,
6236 p_information6 => l_ass_data_rec.ins_exp_nts,
6237 p_information7 => l_ass_data_rec.direct_payment_nts,
6238 p_information8 => l_ass_data_rec.card_tm_nts,
6239 p_information9 => l_ass_data_rec.direct_tm_nts,
6240 p_assignment_yea_info_id => l_assignment_yea_info_id);
6241 --
6242 -- A01/A02/B01/C01/C02/C03/C4/G01/G02/G03/L01
6243 l_ass_dpnt_ind_tbl := l_ass_data_rec.dpnt_ind_tbl;
6244 l_ass_dpnt_tbl := l_ass_data_rec.dpnt_tbl;
6245 --
6246 if l_ass_dpnt_ind_tbl.count > 0 then
6247 --
6248 for i in l_ass_dpnt_ind_tbl.first..l_ass_dpnt_ind_tbl.last loop
6249 --
6250 l_tmp := null;
6251 --
6252 begin
6253 --
6254 l_tmp := nvl(to_char(l_ass_dpnt_tbl(get_dpnt_ind(l_ass_dpnt_ind_tbl,l_ass_dpnt_ind_tbl(i))).ins_prem_nts),'X');
6255 --
6256 exception
6257 when others then
6258 --
6259 -- warning
6260 fnd_message.set_name('PAY','PAY_KR_YEA_PDF_NO_DEP_CACHE');
6261 fnd_message.set_token('EMP_NAME',p_emp_name);
6262 fnd_message.set_token('EMP_NO',p_emp_num);
6263 --
6264 g_msg := fnd_message.get;
6265 --
6266 fnd_file.put_line(fnd_file.log,g_msg);
6267 --
6268 end;
6269 --
6270 if l_tmp is not null then
6271 --
6272 --fnd_file.put_line(fnd_file.log,'ins_prem_nts : '||to_char(l_ass_dpnt_tbl(get_dpnt_ind(l_ass_dpnt_ind_tbl,l_ass_dpnt_ind_tbl(i))).ins_prem_nts));
6273 --fnd_file.put_line(fnd_file.log,'med_exp_nts : '||to_char(l_ass_dpnt_tbl(get_dpnt_ind(l_ass_dpnt_ind_tbl,l_ass_dpnt_ind_tbl(i))).med_exp_nts));
6274 --fnd_file.put_line(fnd_file.log,'educ_exp_nts : '||to_char(l_ass_dpnt_tbl(get_dpnt_ind(l_ass_dpnt_ind_tbl,l_ass_dpnt_ind_tbl(i))).educ_exp_nts));
6275 --fnd_file.put_line(fnd_file.log,'card_exp_nts : '||to_char(l_ass_dpnt_tbl(get_dpnt_ind(l_ass_dpnt_ind_tbl,l_ass_dpnt_ind_tbl(i))).card_exp_nts));
6276 --fnd_file.put_line(fnd_file.log,'cash_exp_nts : '||to_char(l_ass_dpnt_tbl(get_dpnt_ind(l_ass_dpnt_ind_tbl,l_ass_dpnt_ind_tbl(i))).cash_exp_nts));
6277 --fnd_file.put_line(fnd_file.log,'dis_ins_nts : '||to_char(l_ass_dpnt_tbl(get_dpnt_ind(l_ass_dpnt_ind_tbl,l_ass_dpnt_ind_tbl(i))).dis_ins_nts));
6278 --fnd_file.put_line(fnd_file.log,'don_exp_nts : '||to_char(l_ass_dpnt_tbl(get_dpnt_ind(l_ass_dpnt_ind_tbl,l_ass_dpnt_ind_tbl(i))).don_exp_nts));
6279 --fnd_file.put_line(fnd_file.log,'direct_payment_nts : '||to_char(l_ass_dpnt_tbl(get_dpnt_ind(l_ass_dpnt_ind_tbl,l_ass_dpnt_ind_tbl(i))).direct_payment_nts));
6280 --
6281 load_cei_dpnt_info(
6282 p_assignment_id => p_assignment_id,
6283 p_effective_date => g_target_eoy,
6284 p_information_type => 'KR_DPNT_EXPENSE_INFO',
6285 p_emp_num => p_emp_num,
6286 p_emp_name => p_emp_name,
6287 p_con_ni => l_ass_dpnt_ind_tbl(i),
6288 p_information1 => fnd_number.number_to_canonical(l_ass_dpnt_tbl(get_dpnt_ind(l_ass_dpnt_ind_tbl,l_ass_dpnt_ind_tbl(i))).ins_prem_nts),
6289 p_information3 => fnd_number.number_to_canonical(l_ass_dpnt_tbl(get_dpnt_ind(l_ass_dpnt_ind_tbl,l_ass_dpnt_ind_tbl(i))).med_exp_nts),
6290 p_information5 => fnd_number.number_to_canonical(l_ass_dpnt_tbl(get_dpnt_ind(l_ass_dpnt_ind_tbl,l_ass_dpnt_ind_tbl(i))).educ_exp_nts),
6291 p_information7 => fnd_number.number_to_canonical(l_ass_dpnt_tbl(get_dpnt_ind(l_ass_dpnt_ind_tbl,l_ass_dpnt_ind_tbl(i))).card_exp_nts),
6292 p_information9 => fnd_number.number_to_canonical(l_ass_dpnt_tbl(get_dpnt_ind(l_ass_dpnt_ind_tbl,l_ass_dpnt_ind_tbl(i))).cash_exp_nts),
6293 p_information10 => fnd_number.number_to_canonical(l_ass_dpnt_tbl(get_dpnt_ind(l_ass_dpnt_ind_tbl,l_ass_dpnt_ind_tbl(i))).dis_ins_nts),
6294 p_information14 => fnd_number.number_to_canonical(l_ass_dpnt_tbl(get_dpnt_ind(l_ass_dpnt_ind_tbl,l_ass_dpnt_ind_tbl(i))).don_exp_nts),
6295 p_information16 => fnd_number.number_to_canonical(l_ass_dpnt_tbl(get_dpnt_ind(l_ass_dpnt_ind_tbl,l_ass_dpnt_ind_tbl(i))).direct_payment_nts),
6296 p_information18 => fnd_number.number_to_canonical(l_ass_dpnt_tbl(get_dpnt_ind(l_ass_dpnt_ind_tbl,l_ass_dpnt_ind_tbl(i))).card_tm_nts),
6297 p_information20 => fnd_number.number_to_canonical(l_ass_dpnt_tbl(get_dpnt_ind(l_ass_dpnt_ind_tbl,l_ass_dpnt_ind_tbl(i))).cash_tm_nts),
6298 p_information21 => fnd_number.number_to_canonical(l_ass_dpnt_tbl(get_dpnt_ind(l_ass_dpnt_ind_tbl,l_ass_dpnt_ind_tbl(i))).direct_tm_nts),
6299 p_contact_extra_info_id => l_contact_extra_info_id);
6300 --
6301 end if;
6302 --
6303 end loop;
6304 --
6305 end if;
6306 --
6307 -- behave initial action same as YeaCO.java processRequest
6308 load_kr_ass_yea_info(
6309 p_assignment_id => p_assignment_id,
6310 p_target_year => g_target_yyyy,
6311 p_information_type => 'KR_YEA_OVS_TAX_BREAK_INFO',
6312 p_assignment_yea_info_id => l_assignment_yea_info_id);
6313 --
6314 open csr_pkayi;
6315 fetch csr_pkayi into l_csr_pkayi;
6316 close csr_pkayi;
6317 --
6318 l_ass_data_rec_n.pers_ins_prem := l_csr_pkayi.pers_ins_prem;
6319 l_ass_data_rec_n.disabled_ins_prem := l_csr_pkayi.disabled_ins_prem;
6320 l_ass_data_rec_n.housing_loan_repay := l_csr_pkayi.housing_loan_repay;
6321 l_ass_data_rec_n.housing_loan_date := l_csr_pkayi.housing_loan_date;
6322 l_ass_data_rec_n.lt_housing_loan_interest_rep := l_csr_pkayi.lt_housing_loan_interest_rep;
6323 l_ass_data_rec_n.lt_housing_loan_int_repay_1 := l_csr_pkayi.lt_housing_loan_int_repay_1;
6324 l_ass_data_rec_n.lt_housing_loan_int_repay_2 := l_csr_pkayi.lt_housing_loan_int_repay_2;
6325 l_ass_data_rec_n.lt_2012_fixed_intr_wo_grace := l_csr_pkayi.lt_2012_fixed_intr_wo_grace;
6326 l_ass_data_rec_n.lt_2012_housing_other_intr := l_csr_pkayi.lt_2012_housing_other_intr;
6327 l_ass_data_rec_n.med_exp_aged := l_csr_pkayi.med_exp_aged;
6328 l_ass_data_rec_n.med_exp_emp := l_csr_pkayi.med_exp_emp;
6329 l_ass_data_rec_n.med_exp := l_csr_pkayi.med_exp;
6330 l_ass_data_rec_n.political_donation1 := l_csr_pkayi.political_donation1;
6331 l_ass_data_rec_n.ee_educ_exp := l_csr_pkayi.ee_educ_exp;
6332 l_ass_data_rec_n.ee_occupation_educ_exp := l_csr_pkayi.ee_occupation_educ_exp;
6333 l_ass_data_rec_n.pers_pension_prem := l_csr_pkayi.pers_pension_prem;
6334 l_ass_data_rec_n.small_bus_install := l_csr_pkayi.small_bus_install;
6335 l_ass_data_rec_n.credit_card_exp := l_csr_pkayi.credit_card_exp;
6336 l_ass_data_rec_n.credit_tm_exp := l_csr_pkayi.credit_tm_exp;
6337 l_ass_data_rec_n.cash_receipt_exp := l_csr_pkayi.cash_receipt_exp;
6338 l_ass_data_rec_n.cash_tm_exp := l_csr_pkayi.cash_tm_exp;
6339 l_ass_data_rec_n.direct_card_exp := l_csr_pkayi.direct_card_exp;
6340 l_ass_data_rec_n.direct_tm_exp := l_csr_pkayi.direct_tm_exp;
6341 l_ass_data_rec_n.ins_exp_nts := l_csr_pkayi.ins_exp_nts;
6342 l_ass_data_rec_n.med_exp_nts := l_csr_pkayi.med_exp_nts;
6343 l_ass_data_rec_n.educ_exp_nts := l_csr_pkayi.educ_exp_nts;
6344 l_ass_data_rec_n.card_exp_nts := l_csr_pkayi.card_exp_nts;
6345 l_ass_data_rec_n.card_tm_nts := l_csr_pkayi.card_tm_nts;
6346 l_ass_data_rec_n.direct_payment_nts := l_csr_pkayi.direct_payment_nts;
6347 l_ass_data_rec_n.direct_tm_nts := l_csr_pkayi.direct_tm_nts;
6348 l_ass_data_rec_n.don_exp_nts := l_csr_pkayi.don_exp_nts;
6349 --
6350 l_ass_data_rec_n.entry_status := l_csr_pkayi.entry_status;
6351 --
6352 l_ass_data_rec_n.housing_saving_type := l_csr_pkayi.housing_saving_type;
6353 l_ass_data_rec_n.housing_saving := l_csr_pkayi.housing_saving;
6354 l_ass_data_rec_n.housing_purchase_date := l_csr_pkayi.housing_purchase_date;
6355 l_ass_data_rec_n.lt_housing_loan_date := l_csr_pkayi.lt_housing_loan_date;
6356 l_ass_data_rec_n.donation1 := l_csr_pkayi.donation1;
6357 l_ass_data_rec_n.hi_prem := l_csr_pkayi.hi_prem;
6358 l_ass_data_rec_n.political_donation2 := l_csr_pkayi.political_donation2;
6359 l_ass_data_rec_n.political_donation3 := l_csr_pkayi.political_donation3;
6360 l_ass_data_rec_n.donation2 := l_csr_pkayi.donation2;
6361 l_ass_data_rec_n.donation3 := l_csr_pkayi.donation3;
6362 l_ass_data_rec_n.lt_housing_loan_date_1 := l_csr_pkayi.lt_housing_loan_date_1;
6363 l_ass_data_rec_n.mfr_marriage_occasions := l_csr_pkayi.mfr_marriage_occasions;
6364 l_ass_data_rec_n.mfr_funeral_occasions := l_csr_pkayi.mfr_funeral_occasions;
6365 l_ass_data_rec_n.mfr_relocation_occasions := l_csr_pkayi.mfr_relocation_occasions;
6366 l_ass_data_rec_n.ei_prem := l_csr_pkayi.ei_prem;
6367 l_ass_data_rec_n.esoa_donation := l_csr_pkayi.esoa_donation;
6368 l_ass_data_rec_n.pers_ins_name := l_csr_pkayi.pers_ins_name;
6369 l_ass_data_rec_n.med_exp_disabled := l_csr_pkayi.med_exp_disabled;
6370 l_ass_data_rec_n.immigration_purpose := l_csr_pkayi.immigration_purpose;
6371 l_ass_data_rec_n.contract_date := l_csr_pkayi.contract_date;
6372 l_ass_data_rec_n.expiry_date := l_csr_pkayi.expiry_date;
6373 l_ass_data_rec_n.stax_applicable_flag := l_csr_pkayi.stax_applicable_flag;
6374 l_ass_data_rec_n.fw_application_date := l_csr_pkayi.fw_application_date;
6375 l_ass_data_rec_n.fw_submission_date := l_csr_pkayi.fw_submission_date;
6376 l_ass_data_rec_n.tax_paid_date := l_csr_pkayi.tax_paid_date;
6377 l_ass_data_rec_n.ovs_submission_date := l_csr_pkayi.ovs_submission_date;
6378 l_ass_data_rec_n.kr_ovs_location := l_csr_pkayi.kr_ovs_location;
6379 l_ass_data_rec_n.kr_ovs_work_period := l_csr_pkayi.kr_ovs_work_period;
6380 l_ass_data_rec_n.kr_ovs_responsibility := l_csr_pkayi.kr_ovs_responsibility;
6381 l_ass_data_rec_n.territory_code := l_csr_pkayi.territory_code;
6382 l_ass_data_rec_n.currency_code := l_csr_pkayi.currency_code;
6383 l_ass_data_rec_n.taxable := l_csr_pkayi.taxable;
6384 l_ass_data_rec_n.taxable_subj_tax_break := l_csr_pkayi.taxable_subj_tax_break;
6385 l_ass_data_rec_n.tax_break_rate := l_csr_pkayi.tax_break_rate;
6386 l_ass_data_rec_n.tax_foreign_currency := l_csr_pkayi.tax_foreign_currency;
6387 l_ass_data_rec_n.tax := l_csr_pkayi.tax;
6388 l_ass_data_rec_n.ovs_application_date := l_csr_pkayi.ovs_application_date;
6389 l_ass_data_rec_n.housing_loan_interest_repay := l_csr_pkayi.housing_loan_interest_repay;
6390 l_ass_data_rec_n.stock_saving := l_csr_pkayi.stock_saving;
6391 l_ass_data_rec_n.lt_stock_saving1 := l_csr_pkayi.lt_stock_saving1;
6392 l_ass_data_rec_n.lt_stock_saving2 := l_csr_pkayi.lt_stock_saving2;
6393 l_ass_data_rec_n.dpnt_direct_exp := l_csr_pkayi.dpnt_direct_exp;
6394 l_ass_data_rec_n.giro_tuition_paid_exp := l_csr_pkayi.giro_tuition_paid_exp;
6395 l_ass_data_rec_n.np_prem := l_csr_pkayi.np_prem;
6396 l_ass_data_rec_n.pers_pension_saving := l_csr_pkayi.pers_pension_saving;
6397 l_ass_data_rec_n.invest_partnership_fin1 := l_csr_pkayi.invest_partnership_fin1;
6398 l_ass_data_rec_n.invest_partnership_fin2 := l_csr_pkayi.invest_partnership_fin2;
6399 l_ass_data_rec_n.emp_stock_own_plan_contri := l_csr_pkayi.emp_stock_own_plan_contri;
6400 l_ass_data_rec_n.credit_card_exp_dpnt := l_csr_pkayi.credit_card_exp_dpnt;
6401 l_ass_data_rec_n.pen_prem := l_csr_pkayi.pen_prem;
6402 l_ass_data_rec_n.ltci_prem := l_csr_pkayi.ltci_prem;
6403 --
6404 -- *************************************
6405 -- upload to Assignment EIT
6406 -- *************************************
6407 --
6408 if nvl(g_upload_to,'SS') = 'EIT' then
6409 --
6410 -- validate yea
6411 pay_kr_yea_sshr_utils_pkg.run_validation_formula(
6412 p_business_group_id => g_business_group_id,
6413 p_assignment_id => p_assignment_id,
6414 p_target_year => to_char(g_target_yyyy),
6415 p_effective_date => fnd_date.date_to_canonical(g_target_eoy),
6416 p_return_message => l_return_message,
6417 p_return_status => l_return_status,
6418 p_ff_message0 => l_ff_message0,
6419 p_ff_message1 => l_ff_message1,
6420 p_ff_message2 => l_ff_message2,
6421 p_ff_message3 => l_ff_message3,
6422 p_ff_message4 => l_ff_message4,
6423 p_ff_message5 => l_ff_message5,
6424 p_ff_message6 => l_ff_message6,
6425 p_ff_message7 => l_ff_message7,
6426 p_ff_message8 => l_ff_message8,
6427 p_ff_message9 => l_ff_message9,
6428 p_ff_return_status => l_ff_return_status,
6429 p_ee_educ_exp => cnv_m(l_ass_data_rec_n.ee_educ_exp),
6430 p_housing_saving_type => l_ass_data_rec_n.housing_saving_type,
6431 p_housing_saving => cnv_m(l_ass_data_rec_n.housing_saving),
6432 p_housing_purchase_date => l_ass_data_rec_n.housing_purchase_date, /* fnd_date ? */
6433 p_housing_loan_date => l_ass_data_rec_n.housing_loan_date,
6434 p_housing_loan_repay => cnv_m(l_ass_data_rec_n.housing_loan_repay),
6435 p_lt_housing_loan_date => l_ass_data_rec_n.lt_housing_loan_date,
6436 p_lt_housing_loan_interest_rep => cnv_m(l_ass_data_rec_n.lt_housing_loan_interest_rep),
6437 p_donation1 => cnv_m(l_ass_data_rec_n.donation1),
6438 p_political_donation1 => cnv_m(l_ass_data_rec_n.political_donation1),
6439 p_hi_prem => cnv_m(l_ass_data_rec_n.hi_prem),
6440 p_political_donation2 => cnv_m(l_ass_data_rec_n.political_donation2),
6441 p_political_donation3 => cnv_m(l_ass_data_rec_n.political_donation3),
6442 p_donation2 => cnv_m(l_ass_data_rec_n.donation2),
6443 p_donation3 => cnv_m(l_ass_data_rec_n.donation3),
6444 p_med_exp_emp => cnv_m(l_ass_data_rec_n.med_exp_emp),
6445 p_lt_housing_loan_date_1 => l_ass_data_rec_n.lt_housing_loan_date_1,
6446 p_lt_housing_loan_int_repay_1 => cnv_m(l_ass_data_rec_n.lt_housing_loan_int_repay_1),
6447 p_mfr_marriage_occasions => cnv_m(l_ass_data_rec_n.mfr_marriage_occasions),
6448 p_mfr_funeral_occasions => cnv_m(l_ass_data_rec_n.mfr_funeral_occasions),
6449 p_mfr_relocation_occasions => cnv_m(l_ass_data_rec_n.mfr_relocation_occasions),
6450 p_ei_prem => cnv_m(l_ass_data_rec_n.ei_prem),
6451 p_esoa_donation => cnv_m(l_ass_data_rec_n.esoa_donation),
6452 p_pers_ins_name => l_ass_data_rec_n.pers_ins_name,
6453 p_pers_ins_prem => cnv_m(l_ass_data_rec_n.pers_ins_prem),
6454 p_disabled_ins_prem => cnv_m(l_ass_data_rec_n.disabled_ins_prem),
6455 p_med_exp => cnv_m(l_ass_data_rec_n.med_exp),
6456 p_med_exp_disabled => cnv_m(l_ass_data_rec_n.med_exp_disabled),
6457 p_med_exp_aged => cnv_m(l_ass_data_rec_n.med_exp_aged),
6458 p_ee_occupation_educ_exp => cnv_m(l_ass_data_rec_n.ee_occupation_educ_exp),
6459 p_immigration_purpose => l_ass_data_rec_n.immigration_purpose,
6460 p_contract_date => l_ass_data_rec_n.contract_date,
6461 p_expiry_date => l_ass_data_rec_n.expiry_date,
6462 p_stax_applicable_flag => l_ass_data_rec_n.stax_applicable_flag,
6463 p_fw_application_date => l_ass_data_rec_n.fw_application_date,
6464 p_fw_submission_date => l_ass_data_rec_n.fw_submission_date,
6465 p_tax_paid_date => l_ass_data_rec_n.tax_paid_date,
6466 p_ovs_submission_date => l_ass_data_rec_n.ovs_submission_date,
6467 p_kr_ovs_location => l_ass_data_rec_n.kr_ovs_location,
6468 p_kr_ovs_work_period => l_ass_data_rec_n.kr_ovs_work_period,
6469 p_kr_ovs_responsibility => l_ass_data_rec_n.kr_ovs_responsibility,
6470 p_territory_code => l_ass_data_rec_n.territory_code,
6471 p_currency_code => l_ass_data_rec_n.currency_code,
6472 p_taxable => cnv_m(l_ass_data_rec_n.taxable),
6473 p_taxable_subj_tax_break => cnv_m(l_ass_data_rec_n.taxable_subj_tax_break),
6474 p_tax_break_rate => l_ass_data_rec_n.tax_break_rate,
6475 p_tax_foreign_currency => cnv_m(l_ass_data_rec_n.tax_foreign_currency,l_ass_data_rec_n.currency_code),
6476 p_tax => cnv_m(l_ass_data_rec_n.tax),
6477 p_ovs_application_date => l_ass_data_rec_n.ovs_application_date,
6478 p_housing_loan_interest_repay => cnv_m(l_ass_data_rec_n.housing_loan_interest_repay),
6479 p_stock_saving => cnv_m(l_ass_data_rec_n.stock_saving),
6480 p_lt_stock_saving1 => cnv_m(l_ass_data_rec_n.lt_stock_saving1),
6481 p_lt_stock_saving2 => cnv_m(l_ass_data_rec_n.lt_stock_saving2),
6482 p_direct_card_exp => cnv_m(l_ass_data_rec_n.direct_card_exp),
6483 p_dpnt_direct_exp => cnv_m(l_ass_data_rec_n.dpnt_direct_exp),
6484 p_giro_tuition_paid_exp => cnv_m(l_ass_data_rec_n.giro_tuition_paid_exp),
6485 p_cash_receipt_exp => cnv_m(l_ass_data_rec_n.cash_receipt_exp),
6486 p_np_prem => cnv_m(l_ass_data_rec_n.np_prem),
6487 p_pers_pension_prem => cnv_m(l_ass_data_rec_n.pers_pension_prem),
6488 p_pers_pension_saving => cnv_m(l_ass_data_rec_n.pers_pension_saving),
6489 p_invest_partnership_fin1 => cnv_m(l_ass_data_rec_n.invest_partnership_fin1),
6490 p_invest_partnership_fin2 => cnv_m(l_ass_data_rec_n.invest_partnership_fin2),
6491 p_credit_card_exp => cnv_m(l_ass_data_rec_n.credit_card_exp),
6492 p_emp_stock_own_plan_contri => cnv_m(l_ass_data_rec_n.emp_stock_own_plan_contri),
6493 p_credit_card_exp_dpnt => cnv_m(l_ass_data_rec_n.credit_card_exp_dpnt),
6494 p_pen_prem => cnv_m(l_ass_data_rec_n.pen_prem),
6495 p_ltci_prem => cnv_m(l_ass_data_rec_n.ltci_prem));
6496 --
6497 if l_return_status = 'S' then
6498 --
6499 l_status := 'V';
6500 --
6501 -- this will sync KR_DPNT_EXPENSE_INFO with medical/donation tbl
6502 pay_kr_yea_sshr_utils_pkg.submit_yea_info(
6503 p_assignment_id => p_assignment_id,
6504 p_target_year => to_char(g_target_yyyy),
6505 p_effective_date => null,
6506 p_return_status => l_return_status,
6507 p_return_message => l_return_message,
6508 p_failed_record => l_failed_record);
6509 --
6510 if l_return_status = 'S' then
6511 --
6512 -- same behavior YeaAMImpl.updateEntryStatus.SUBMIT_OK
6513 l_ass_data_rec_n.entry_status := 'C';
6514 --
6515 if nvl(g_remove_pdf,'N') = 'Y' then
6516 --
6517 delete_pdf(p_file_id);
6518 --
6519 end if;
6520 --
6521 l_status := 'U';
6522 --
6523 else
6524 --
6525 fnd_message.set_name('PAY','PAY_KR_YEA_PDF_SUBMIT_FAILED');
6526 fnd_message.set_token('EMP_NAME',p_emp_name);
6527 fnd_message.set_token('EMP_NO',p_emp_num);
6528 fnd_message.set_token('FAIL_REC',l_failed_record);
6529 --
6530 g_msg := fnd_message.get;
6531 --
6532 fnd_file.put_line(fnd_file.log,g_msg||' '||l_return_message);
6533 --
6534 -- same behavior YeaAMImpl.updateEntryStatus.SUBMIT_FAILED
6535 if l_ass_data_rec_n.entry_status in ('IU','FU','C') then
6536 --
6537 l_ass_data_rec_n.entry_status := 'FU';
6538 --
6539 else
6540 --
6541 l_ass_data_rec_n.entry_status := 'FE';
6542 --
6543 end if;
6544 --
6545 end if;
6546 --
6547 else
6548 --
6549 fnd_message.set_name('PAY','PAY_KR_YEA_PDF_VALID_FAILED');
6550 fnd_message.set_token('EMP_NAME',p_emp_name);
6551 fnd_message.set_token('EMP_NO',p_emp_num);
6552 --
6553 g_msg := fnd_message.get;
6554 --
6555 fnd_file.put_line(fnd_file.log,g_msg||' '||l_return_message);
6556 --
6557 l_ass_data_rec_n.validation_status := l_return_status;
6558 l_ass_data_rec_n.entry_error1 := l_ff_message0;
6559 l_ass_data_rec_n.entry_error2 := l_ff_message1;
6560 l_ass_data_rec_n.entry_error3 := l_ff_message2;
6561 l_ass_data_rec_n.entry_error4 := l_ff_message3;
6562 l_ass_data_rec_n.entry_error5 := l_ff_message4;
6563 l_ass_data_rec_n.entry_error6 := l_ff_message5;
6564 l_ass_data_rec_n.entry_error7 := l_ff_message6;
6565 l_ass_data_rec_n.entry_error8 := l_ff_message7;
6566 l_ass_data_rec_n.entry_error9 := l_ff_message8;
6567 l_ass_data_rec_n.entry_error10 := l_ff_message9;
6568 --
6569 -- same behavior YeaAMImpl.updateEntryStatus.SUBMIT_FAILED
6570 if l_ass_data_rec_n.entry_status in ('IU','FU','C') then
6571 --
6572 l_ass_data_rec_n.entry_status := 'FU';
6573 --
6574 else
6575 --
6576 l_ass_data_rec_n.entry_status := 'FE';
6577 --
6578 end if;
6579 --
6580 end if;
6581 --
6582 else
6583 --
6584 -- same behavior YeaAMImpl.updateEntryStatus.SFL
6585 if l_ass_data_rec_n.entry_status in ('N','IE','FE') then
6586 --
6587 l_ass_data_rec_n.entry_status := 'IE';
6588 --
6589 else
6590 --
6591 l_ass_data_rec_n.entry_status := 'IU';
6592 --
6593 end if;
6594 --
6595 l_status := 'U';
6596 --
6597 end if;
6598 --
6599 load_kr_ass_yea_info(
6600 p_assignment_id => p_assignment_id,
6601 p_target_year => g_target_yyyy,
6602 p_information_type => 'KR_YEA_ENTRY_STATUS',
6603 p_information2 => l_ass_data_rec_n.validation_status,
6604 p_information3 => l_ass_data_rec_n.entry_status,
6605 p_information4 => nvl(l_ass_data_rec_n.entry_error1,'NULL'),
6606 p_information5 => nvl(l_ass_data_rec_n.entry_error2,'NULL'),
6607 p_information6 => nvl(l_ass_data_rec_n.entry_error3,'NULL'),
6608 p_information7 => nvl(l_ass_data_rec_n.entry_error4,'NULL'),
6609 p_information8 => nvl(l_ass_data_rec_n.entry_error5,'NULL'),
6610 p_information9 => nvl(l_ass_data_rec_n.entry_error6,'NULL'),
6611 p_information10 => nvl(l_ass_data_rec_n.entry_error7,'NULL'),
6612 p_information11 => nvl(l_ass_data_rec_n.entry_error8,'NULL'),
6613 p_information12 => nvl(l_ass_data_rec_n.entry_error9,'NULL'),
6614 p_information13 => nvl(l_ass_data_rec_n.entry_error10,'NULL'),
6615 p_force_update => 'Y',
6616 p_assignment_yea_info_id => l_assignment_yea_info_id);
6617 --
6618 else
6619 --
6620 fnd_file.put_line(fnd_file.log,'-----------------------------------------------------------------------------');
6621 fnd_file.put_line(fnd_file.log,'debug upload data');
6622 fnd_file.put_line(fnd_file.log,'-----------------------------------------------------------------------------');
6623 fnd_file.put_line(fnd_file.log,'-- KR_YEA_DETAIL_MEDICAL_EXP_INFO --');
6624 l_ass_med_tbl := l_ass_data_rec.med_tbl;
6625 fnd_file.put_line(fnd_file.log,'B : '||to_char(l_ass_med_tbl.count));
6626 fnd_file.put_line(fnd_file.log,'-- KR_YEA_DETAIL_DONATION_INFO --');
6627 l_ass_don_tbl := l_ass_data_rec.don_tbl;
6628 fnd_file.put_line(fnd_file.log,'L : '||to_char(l_ass_don_tbl.count)||'('||to_char(l_don_tbl_tmp.count)||')');
6629 fnd_file.put_line(fnd_file.log,'-- KR_YEA_DPNT_EDUC_TAX_EXEM_INFO --');
6630 l_ass_educ_tbl := l_ass_data_rec.educ_tbl;
6631 fnd_file.put_line(fnd_file.log,'C : '||to_char(l_ass_educ_tbl.count));
6632 fnd_file.put_line(fnd_file.log,'-- KR_YEA_SEP_PEN_DETAILS --');
6633 l_ass_saving_tbl := l_ass_data_rec.sep_pen_saving_tbl;
6634 fnd_file.put_line(fnd_file.log,'F : '||to_char(l_ass_saving_tbl.count));
6635 fnd_file.put_line(fnd_file.log,'-- KR_YEA_PEN_SAVING_DETAILS --');
6636 l_ass_saving_tbl := l_ass_data_rec.pen_saving_tbl;
6637 fnd_file.put_line(fnd_file.log,'D/E : '||to_char(l_ass_saving_tbl.count));
6638 fnd_file.put_line(fnd_file.log,'-- KR_YEA_LT_STOCK_SAVING_DETAILS --');
6639 l_ass_saving_tbl := l_ass_data_rec.lts_saving_tbl;
6640 fnd_file.put_line(fnd_file.log,'M : '||to_char(l_ass_saving_tbl.count));
6641 fnd_file.put_line(fnd_file.log,'-- KR_YEA_HOU_SAVING_DETAILS --');
6642 l_ass_saving_tbl := l_ass_data_rec.hou_saving_tbl;
6643 fnd_file.put_line(fnd_file.log,'J : '||to_char(l_ass_saving_tbl.count));
6644 fnd_file.put_line(fnd_file.log,'-- KR_YEA_SP_TAX_EXEM_INFO --');
6645 fnd_file.put_line(fnd_file.log,'pers_ins_prem : A01 : '||l_ass_data_rec.pers_ins_prem);
6646 fnd_file.put_line(fnd_file.log,'disabled_ins_prem : A01 : '||l_ass_data_rec.disabled_ins_prem);
6647 fnd_file.put_line(fnd_file.log,'med_exp : B01 : '||l_ass_data_rec.med_exp);
6648 fnd_file.put_line(fnd_file.log,'med_exp_aged : B01 : '||l_ass_data_rec.med_exp_aged);
6649 fnd_file.put_line(fnd_file.log,'ee_educ_exp : C01/03/04 : '||l_ass_data_rec.ee_educ_exp);
6650 fnd_file.put_line(fnd_file.log,'housing_loan_repay : J01 : '||l_ass_data_rec.housing_loan_repay);
6651 fnd_file.put_line(fnd_file.log,'housing_loan_date : J01 : '||l_ass_data_rec.housing_loan_date);
6652 fnd_file.put_line(fnd_file.log,'lt_housing_loan_interest_rep : J02 : '||l_ass_data_rec.lt_housing_loan_interest_rep);
6653 fnd_file.put_line(fnd_file.log,'political_donation1 : L01 '||l_ass_data_rec.political_donation1);
6654 fnd_file.put_line(fnd_file.log,'med_exp_emp : B01 : '||l_ass_data_rec.med_exp_emp);
6655 fnd_file.put_line(fnd_file.log,'lt_housing_loan_int_repay_1 : J02 : '||l_ass_data_rec.lt_housing_loan_int_repay_1);
6656 fnd_file.put_line(fnd_file.log,'-- KR_YEA_SP_TAX_EXEM_INFO2 --');
6657 fnd_file.put_line(fnd_file.log,'ee_occupation_educ_exp : C02 : '||l_ass_data_rec.ee_occupation_educ_exp);
6658 fnd_file.put_line(fnd_file.log,'lt_housing_loan_int_repay_2 : J02 : '||l_ass_data_rec.lt_housing_loan_int_repay_2);
6659 fnd_file.put_line(fnd_file.log,'lt_2012_fixed_intr_wo_grace : J02 : '||l_ass_data_rec.lt_2012_fixed_intr_wo_grace);
6660 fnd_file.put_line(fnd_file.log,'lt_2012_housing_other_intr : J02 : '||l_ass_data_rec.lt_2012_housing_other_intr);
6661 fnd_file.put_line(fnd_file.log,'-- KR_YEA_TAX_EXEM_INFO --');
6662 fnd_file.put_line(fnd_file.log,'pers_pension_prem : D01 : '||l_ass_data_rec.pers_pension_prem);
6663 fnd_file.put_line(fnd_file.log,'credit_card_exp : G01 : '||l_ass_data_rec.credit_card_exp);
6664 fnd_file.put_line(fnd_file.log,'credit_tm_exp : G01 : '||l_ass_data_rec.credit_tm_exp);
6665 fnd_file.put_line(fnd_file.log,'direct_card_exp : G03 : '||l_ass_data_rec.direct_card_exp);
6666 fnd_file.put_line(fnd_file.log,'direct_tm_exp : G03 : '||l_ass_data_rec.direct_tm_exp);
6667 fnd_file.put_line(fnd_file.log,'cash_receipt_exp : G02 : '||l_ass_data_rec.cash_receipt_exp);
6668 fnd_file.put_line(fnd_file.log,'cash_tm_exp : G02 : '||l_ass_data_rec.cash_tm_exp);
6669 fnd_file.put_line(fnd_file.log,'small_bus_install : K01 : '||l_ass_data_rec.small_bus_install);
6670 fnd_file.put_line(fnd_file.log,'-- KR_YEA_EMP_EXPENSE_DETAILS --');
6671 fnd_file.put_line(fnd_file.log,'med_exp_nts : B ; '||l_ass_data_rec.med_exp_nts);
6672 fnd_file.put_line(fnd_file.log,'educ_exp_nts : C : '||l_ass_data_rec.educ_exp_nts);
6673 fnd_file.put_line(fnd_file.log,'card_exp_nts : G01 : '||l_ass_data_rec.card_exp_nts);
6674 fnd_file.put_line(fnd_file.log,'card_tm _nts : G01 : '||l_ass_data_rec.card_tm_nts);
6675 fnd_file.put_line(fnd_file.log,'don_exp_nts : L01 : '||l_ass_data_rec.don_exp_nts);
6676 fnd_file.put_line(fnd_file.log,'ins_exp_nts : A01/A03 : '||l_ass_data_rec.ins_exp_nts);
6677 fnd_file.put_line(fnd_file.log,'direct_payment_nts : G03 : '||l_ass_data_rec.direct_payment_nts);
6678 fnd_file.put_line(fnd_file.log,'direct_tm_nts : G03 : '||l_ass_data_rec.direct_tm_nts);
6679 fnd_file.put_line(fnd_file.log,'-- KR_YEA_EMP_EXPENSE_DETAILS --');
6680 l_ass_dpnt_ind_tbl := l_ass_data_rec.dpnt_ind_tbl;
6681 l_ass_dpnt_tbl := l_ass_data_rec.dpnt_tbl;
6682 fnd_file.put_line(fnd_file.log,'dpnt_ind_tbl : '||to_char(l_ass_dpnt_ind_tbl.count));
6683 fnd_file.put_line(fnd_file.log,'dpnt_tbl : '||to_char(l_ass_dpnt_tbl.count));
6684 fnd_file.put_line(fnd_file.log,'-----------------------------------------------------------------------------');
6685 --
6686 l_status := 'U';
6687 --
6688 end if;
6689 --
6690 if g_debug then
6691 hr_utility.set_location(l_proc,1000);
6692 end if;
6693 --
6694 return l_status;
6695 --
6696 end main_xml;
6697 --
6698 -- -------------------------------------------------------------------------
6699 -- load_xml
6700 -- -------------------------------------------------------------------------
6701 procedure load_xml(
6702 p_emp_num in varchar2,
6703 p_ni_num in varchar2,
6704 p_emp_name in varchar2,
6705 p_xml in clob)
6706 is
6707 --
6708 l_proc varchar2(80) := c_package||'load_xml';
6709 --
6710 l_status varchar2(1);
6711 --
6712 begin
6713 --
6714 if g_debug then
6715 hr_utility.set_location(l_proc,0);
6716 end if;
6717 --
6718 if g_ass_yea_tbl.count > 0 then
6719 --
6720 -- might update multiple assignment rows for same file id
6721 for i in g_ass_yea_tbl.first..g_ass_yea_tbl.last loop
6722 --
6723 g_ass_yea_tbl(i).status := main_xml(
6724 p_assignment_id => g_ass_yea_tbl(i).assignment_id,
6725 p_emp_num => p_emp_num,
6726 p_ni_num => p_ni_num,
6727 p_emp_name => p_emp_name,
6728 p_file_id => g_ass_yea_tbl(i).file_id,
6729 p_xml => p_xml);
6730 --
6731 if nvl(g_ass_yea_tbl(i).status,'X') = 'U' then
6732 --
6733 g_ass_yea_tbl(i).status := 'C';
6734 --
6735 end if;
6736 --
6737 end loop;
6738 --
6739 end if;
6740 --
6741 if g_debug then
6742 hr_utility.set_location(l_proc,1000);
6743 end if;
6744 --
6745 end load_xml;
6746 --
6747 -- -------------------------------------------------------------------------
6748 -- upload_xml
6749 -- -------------------------------------------------------------------------
6750 function upload_xml(
6751 p_xml in clob)
6752 return varchar2
6753 is
6754 --
6755 l_proc varchar2(80) := c_package||'upload_xml';
6756 --
6757 l_status varchar2(1);
6758 --
6759 begin
6760 --
6761 if g_debug then
6762 hr_utility.set_location(l_proc,0);
6763 end if;
6764 --
6765 l_status := main_xml(
6766 p_assignment_id => g_pdf_tbl(g_pdf_ind).assignment_id,
6767 p_emp_num => g_pdf_tbl(g_pdf_ind).emp_num,
6768 p_ni_num => g_pdf_tbl(g_pdf_ind).ni_num,
6769 p_emp_name => g_pdf_tbl(g_pdf_ind).emp_name,
6770 p_file_id => g_pdf_tbl(g_pdf_ind).file_id,
6771 p_xml => p_xml);
6772 --
6773 if g_debug then
6774 hr_utility.set_location(l_proc,1000);
6775 end if;
6776 --
6777 return l_status;
6778 --
6779 end upload_xml;
6780 --
6781 -- -------------------------------------------------------------------------
6782 -- main_post
6783 -- -------------------------------------------------------------------------
6784 procedure main_post(
6785 p_assignment_yea_info_id in number,
6786 p_emp_num in varchar2,
6787 p_emp_name in varchar2,
6788 p_file_name in varchar2,
6789 p_status in varchar2,
6790 p_error_code in varchar2)
6791 is
6792 --
6793 l_proc varchar2(80) := c_package||'main_post';
6794 --
6795 begin
6796 --
6797 if g_debug then
6798 hr_utility.set_location(l_proc,0);
6799 end if;
6800 --
6801 update per_kr_assignment_yea_info
6802 set ayi_information14 = decode(nvl(p_error_code,'X'),'X',decode(nvl(p_status,'X'),'C',c_upload_status,ayi_information14),c_error_status),
6803 ayi_information16 = p_status,
6804 ayi_information17 = p_error_code,
6805 object_version_number = object_version_number + 1
6806 where assignment_yea_info_id = p_assignment_yea_info_id;
6807 --
6808 if nvl(g_ss_call,'N') <> 'Y' then
6809 --
6810 if p_status = 'C' then
6811 --
6812 if nvl(g_upl_output_hd_show,'N') = 'N' then
6813 --
6814 fnd_file.put_line(fnd_file.output,'-----------------------------------------------------------------------------');
6815 fnd_file.put_line(fnd_file.output,fnd_message.get_string('PAY','PAY_KR_YEA_PDF_UPL_EMP'));
6816 fnd_file.put_line(fnd_file.output,'-----------------------------------------------------------------------------');
6817 --
6818 g_upl_output_hd_show := 'Y';
6819 --
6820 end if;
6821 --
6822 if nvl(g_load_type,'X') <> 'L' then
6823 --
6824 fnd_file.put_line(fnd_file.output,p_emp_name||' ( '||p_emp_num||' ) ');
6825 --
6826 else
6827 --
6828 fnd_file.put_line(fnd_file.output,p_emp_name||' ( '||p_emp_num||' ) : '||g_import_path||g_path_delimiter||p_file_name);
6829 --
6830 end if;
6831 --
6832 end if;
6833 --
6834 end if;
6835 --
6836 if g_debug then
6837 hr_utility.set_location(l_proc,1000);
6838 end if;
6839 --
6840 end main_post;
6841 --
6842 -- -------------------------------------------------------------------------
6843 -- load_post
6844 -- -------------------------------------------------------------------------
6845 function load_post(
6846 p_error_code in varchar2)
6847 return number
6848 is
6849 --
6850 l_proc varchar2(80) := c_package||'load_post';
6851 --
6852 l_suc_cnt number := 0;
6853 --
6854 begin
6855 --
6856 if g_debug then
6857 hr_utility.set_location(l_proc,0);
6858 end if;
6859 --
6860 if g_ass_yea_tbl.count > 0 then
6861 --
6862 -- might update multiple assignment rows for same file id
6863 for i in g_ass_yea_tbl.first..g_ass_yea_tbl.last loop
6864 --
6865 main_post(
6866 p_assignment_yea_info_id => g_ass_yea_tbl(i).assignment_yea_info_id,
6867 p_emp_num => g_ass_yea_tbl(i).emp_num,
6868 p_emp_name => g_ass_yea_tbl(i).emp_name,
6869 p_file_name => g_ass_yea_tbl(i).file_name,
6870 p_status => g_ass_yea_tbl(i).status,
6871 p_error_code => p_error_code);
6872 --
6873 if nvl(g_ass_yea_tbl(i).status,'X') = 'C' then
6874 --
6875 l_suc_cnt := l_suc_cnt + 1;
6876 --
6877 end if;
6878 --
6879 end loop;
6880 --
6881 end if;
6882 --
6883 if g_debug then
6884 hr_utility.set_location(l_proc,1000);
6885 end if;
6886 --
6887 return l_suc_cnt;
6888 --
6889 end load_post;
6890 --
6891 -- -------------------------------------------------------------------------
6892 -- upload_post
6893 -- -------------------------------------------------------------------------
6894 -- this should be called finally for increment of g_pdf_ind
6895 procedure upload_post(
6896 p_status in varchar2,
6897 p_error_code in varchar2)
6898 is
6899 --
6900 l_proc varchar2(80) := c_package||'upload_post';
6901 --
6902 begin
6903 --
6904 if g_debug then
6905 hr_utility.set_location(l_proc,0);
6906 end if;
6907 --
6908 if g_pdf_ind is not null then
6909 --
6910 main_post(
6911 p_assignment_yea_info_id => g_pdf_tbl(g_pdf_ind).assignment_yea_info_id,
6912 p_emp_num => g_pdf_tbl(g_pdf_ind).emp_num,
6913 p_emp_name => g_pdf_tbl(g_pdf_ind).emp_name,
6914 p_file_name => null,
6915 p_status => p_status,
6916 p_error_code => p_error_code);
6917 --
6918 if nvl(g_ss_call,'N') <> 'Y' then
6919 --
6920 if g_pdf_ind > g_chunk * g_chunk_cnt then
6921 --
6922 commit;
6923 g_chunk_cnt := g_chunk_cnt + 1;
6924 --
6925 end if;
6926 --
6927 if g_pdf_ind = g_pdf_tbl.last then
6928 --
6929 commit;
6930 --
6931 end if;
6932 --
6933 end if;
6934 --
6935 -- when index is reached to max, value will be null
6936 g_pdf_ind := g_pdf_tbl.next(g_pdf_ind);
6937 --
6938 end if;
6939 --
6940 if g_debug then
6941 hr_utility.set_location(l_proc,1000);
6942 end if;
6943 --
6944 end upload_post;
6945 --
6946 -- -------------------------------------------------------------------------
6947 -- load_deinit
6948 -- -------------------------------------------------------------------------
6949 procedure load_deinit
6950 is
6951 --
6952 l_proc varchar2(80) := c_package||'load_deinit';
6953 --
6954 begin
6955 --
6956 if g_debug then
6957 hr_utility.set_location(l_proc,0);
6958 end if;
6959 --
6960 if nvl(g_load_type,'L') <> 'I'
6961 and nvl(g_ss_call,'N') <> 'Y' then
6962 delete_session;
6963 end if;
6964 --
6965 if g_debug then
6966 hr_utility.set_location(l_proc,1000);
6967 end if;
6968 --
6969 end load_deinit;
6970 --
6971 -- -------------------------------------------------------------------------
6972 -- map_yea_assignment
6973 -- -------------------------------------------------------------------------
6974 -- this is post process run with FNDGFU
6975 -- $FND_TOP/bin/FNDGFU <user>/<pwd>@<db> 0 Y PROGRAM_NAME=PAYKRYPIM PROGRAM_TAG=<bg id>:<target yyyy> PLS_CALLBACK=pay_kr_yea_pdf_pkg.map_yea_assignment /tmp/xx.pdf
6976 procedure map_yea_assignment(
6977 p_file_id in number default null)
6978 is
6979 --
6980 l_proc varchar2(80) := c_package||'map_yea_assignment';
6981 --
6982 l_target_soy date;
6983 l_target_eoy date;
6984 --
6985 l_valid boolean := false;
6986 l_ass_yea_info_id number;
6987 l_file_name fnd_lobs.file_name%type;
6988 --
6989 cursor csr_file
6990 is
6991 select file_id,
6992 file_name
6993 from fnd_lobs
6994 where file_id = p_file_id;
6995 --
6996 /* same condition with EmpSearchVO.xml */
6997 /* no need primary flag check for rehire */
6998 cursor csr_map_name(
6999 p_map_file_name in varchar2)
7000 is
7001 select pa.assignment_id,
7002 pp.last_name||pp.first_name emp_name,
7003 substrb(pp.national_identifier,1,6) res_reg_num,
7004 pp.employee_number emp_num
7005 from per_people_f pp,
7006 per_periods_of_service ppos,
7007 per_assignments_f pa,
7008 hr_organization_information hoi,
7009 per_business_groups_perf pbg
7010 where pbg.legislation_code = c_legislation_code
7011 and pbg.business_group_id = nvl(g_business_group_id,pbg.business_group_id)
7012 and hoi.organization_id = pbg.business_group_id
7013 and hoi.org_information_context = 'KR_YEA_PDF_SETUP_BG'
7014 and hoi.org_information1 is not null
7015 and pa.business_group_id = hoi.organization_id
7016 and pa.establishment_id = nvl(g_business_place_id,pa.establishment_id)
7017 and decode(to_char(nvl(g_assignment_set_id,-1)),
7018 '-1','Y',
7019 hr_assignment_set.assignment_in_set(g_assignment_set_id,pa.assignment_id)) = 'Y'
7020 and pa.assignment_type = 'E'
7021 and pa.effective_start_date <= g_target_eoy
7022 and pa.effective_end_date >= g_target_soy
7023 and ppos.period_of_service_id = pa.period_of_service_id
7024 and nvl(ppos.final_process_date,g_target_eoy)
7025 between g_target_soy and g_target_eoy
7026 and pp.person_id = pa.person_id
7027 and pp.effective_start_date <= g_target_eoy
7028 and pp.effective_end_date >= g_target_soy
7029 /* fetch latest emp information */
7030 and not exists(
7031 select null
7032 from per_people_f pp2
7033 where pp2.person_id = pa.person_id
7034 and pp2.effective_start_date <= g_target_eoy
7035 and pp2.effective_end_date >= g_target_soy
7036 and pp2.effective_start_date < pp.effective_start_date)
7037 and ((nvl(g_map_key,'FULL_NAME') = 'FULL_NAME'
7038 and p_map_file_name like pp.last_name||pp.first_name||'('||substrb(pp.national_identifier,1,6)||')%')
7039 or (g_map_key = 'EMPLOYEE_NUMBER'
7040 and substrb(p_map_file_name,1,lengthb(p_map_file_name) - lengthb(c_file_extention)) = pp.employee_number));
7041 --
7042 l_csr_file csr_file%rowtype;
7043 l_csr_map_name csr_map_name%rowtype;
7044 --
7045 begin
7046 --
7047 if g_debug then
7048 hr_utility.set_location(l_proc,0);
7049 end if;
7050 --
7051 if g_target_yyyy is null then
7052 --
7053 g_target_yyyy := to_number(to_char(sysdate,'YYYY'));
7054 --
7055 end if;
7056 --
7057 g_target_soy := to_date(to_char(g_target_yyyy)||'/01/01','YYYY/MM/DD');
7058 g_target_eoy := to_date(to_char(g_target_yyyy)||'/12/31','YYYY/MM/DD');
7059 --
7060 open csr_file;
7061 fetch csr_file into l_csr_file;
7062 close csr_file;
7063 --
7064 if l_csr_file.file_id is not null then
7065 --
7066 g_path_delimiter := c_path_delimiter;
7067 if instrb(l_csr_file.file_name,g_path_delimiter) = 0 then
7068 --
7069 g_path_delimiter := c_path_delimiter_win;
7070 --
7071 end if;
7072 --
7073 l_file_name := l_csr_file.file_name;
7074 if instrb(l_file_name,g_path_delimiter,'-1') > 0 then
7075 l_file_name := substrb(l_file_name,instrb(l_file_name,g_path_delimiter,'-1'));
7076 end if;
7077 --
7078 if g_debug then
7079 hr_utility.trace('file name : '||l_file_name);
7080 hr_utility.set_location(l_proc,10);
7081 end if;
7082 --
7083 /* allocate same file to both prev ass and rehired ass in same year */
7084 open csr_map_name(l_file_name);
7085 loop
7086 --
7087 fetch csr_map_name into l_csr_map_name;
7088 exit when csr_map_name%notfound;
7089 --
7090 l_ass_yea_info_id := null;
7091 --
7092 if g_debug then
7093 hr_utility.trace('emp name : '||l_csr_map_name.emp_name);
7094 hr_utility.trace('res reg num : '||l_csr_map_name.res_reg_num);
7095 hr_utility.trace('emp num : '||l_csr_map_name.emp_num);
7096 hr_utility.trace('ass id : '||to_char(l_csr_map_name.assignment_id));
7097 end if;
7098 --
7099 if l_csr_map_name.assignment_id is not null then
7100 --
7101 import_kr_ass_yea(l_csr_map_name.assignment_id,g_target_yyyy,l_csr_file.file_id,null,l_ass_yea_info_id);
7102 --
7103 if g_debug then
7104 hr_utility.trace('ass yea info id : '||to_char(l_ass_yea_info_id));
7105 end if;
7106 --
7107 if l_ass_yea_info_id is not null then
7108 --
7109 hr_utility.trace('valid map : '||l_csr_file.file_name);
7110 --
7111 l_valid := true;
7112 --
7113 end if;
7114 --
7115 end if;
7116 --
7117 end loop;
7118 close csr_map_name;
7119 --
7120 if not l_valid then
7121 --
7122 if nvl(g_remove_pdf,'N') = 'Y' then
7123 --
7124 fnd_gfm.delete_lob(l_csr_file.file_id);
7125 --
7126 end if;
7127 --
7128 hr_utility.trace('invalid map : '||l_csr_file.file_name);
7129 --
7130 end if;
7131 --
7132 else
7133 --
7134 if g_debug then
7135 --
7136 hr_utility.trace('no lob : '||to_char(p_file_id));
7137 --
7138 end if;
7139 --
7140 end if;
7141 --
7142 if g_debug then
7143 hr_utility.set_location(l_proc,1000);
7144 end if;
7145 --
7146 end map_yea_assignment;
7147 --
7148 -- -------------------------------------------------------------------------
7149 -- mass_map_yea_assignment
7150 -- -------------------------------------------------------------------------
7151 -- this is for custom use
7152 procedure mass_map_yea_assignment(
7153 p_business_group_id in number,
7154 p_target_year in number,
7155 p_business_place_id in number,
7156 p_assignment_set_id in number,
7157 p_remove_pdf in varchar2,
7158 p_map_key in varchar2,
7159 p_force_import in varchar2)
7160 is
7161 --
7162 l_proc varchar2(80) := c_package||'mass_map_yea_assignment';
7163 --
7164 l_import_path varchar2(150);
7165 --
7166 l_map_cnt number := 0;
7167 --
7168 cursor csr_mass_new_file
7169 is
7170 select fl.file_id
7171 from fnd_lobs fl
7172 where fl.program_name = 'PAYKRYPIM'
7173 and fl.program_tag = to_char(p_business_group_id)||':'||to_char(p_target_year)
7174 and not exists(
7175 select null
7176 from per_kr_assignment_yea_info pkayi
7177 where pkayi.information_type = 'KR_YEA_ENTRY_STATUS'
7178 and pkayi.ayi_information_category = 'KR_YEA_ENTRY_STATUS'
7179 and pkayi.target_year = p_target_year
7180 and pkayi.ayi_information15 = fnd_number.number_to_canonical(fl.file_id));
7181 --
7182 l_csr_mass_new_file csr_mass_new_file%rowtype;
7183 --
7184 begin
7185 --
7186 if g_debug then
7187 hr_utility.set_location(l_proc,0);
7188 end if;
7189 --
7190 import_init(
7191 p_business_group_id => p_business_group_id,
7192 p_target_year => p_target_year,
7193 p_business_place_id => p_business_place_id,
7194 p_assignment_set_id => p_assignment_set_id,
7195 p_remove_pdf => p_remove_pdf,
7196 p_map_key => p_map_key,
7197 p_force_import => p_force_import,
7198 p_import_path => l_import_path);
7199 --
7200 if g_debug then
7201 hr_utility.set_location(l_proc,10);
7202 end if;
7203 --
7204 open csr_mass_new_file;
7205 loop
7206 --
7207 fetch csr_mass_new_file into l_csr_mass_new_file;
7208 exit when csr_mass_new_file%notfound;
7209 --
7210 if g_debug then
7211 --
7212 hr_utility.trace('new file id : '||to_char(l_csr_mass_new_file.file_id));
7213 --
7214 end if;
7215 --
7216 map_yea_assignment(
7217 l_csr_mass_new_file.file_id);
7218 --
7219 l_map_cnt := l_map_cnt + 1;
7220 --
7221 end loop;
7222 close csr_mass_new_file;
7223 --
7224 if g_debug then
7225 hr_utility.trace('map cnt : '||to_char(l_map_cnt));
7226 hr_utility.set_location(l_proc,1000);
7227 end if;
7228 --
7229 end mass_map_yea_assignment;
7230 --
7231 -- -------------------------------------------------------------------------
7232 -- delete_pdf
7233 -- -------------------------------------------------------------------------
7234 procedure delete_pdf(
7235 p_file_id in number,
7236 p_with_status in varchar2 default null)
7237 is
7238 --
7239 l_proc varchar2(80) := c_package||'delete_pdf';
7240 --
7241 cursor csr_file
7242 is
7243 select file_id,
7244 to_number(substrb(program_tag,instrb(program_tag,':',-1)+1)) target_year
7245 from fnd_lobs
7246 where file_id = p_file_id;
7247 --
7248 l_csr_file csr_file%rowtype;
7249 --
7250 begin
7251 --
7252 if g_debug then
7253 hr_utility.set_location(l_proc,0);
7254 end if;
7255 --
7256 open csr_file;
7257 fetch csr_file into l_csr_file;
7258 close csr_file;
7259 --
7260 if l_csr_file.file_id is not null then
7261 --
7262 fnd_gfm.delete_lob(l_csr_file.file_id);
7263 --
7264 -- leave status because status is not only about pdf
7265 update per_kr_assignment_yea_info
7266 set ayi_information14 = decode(p_with_status,'Y',null,ayi_information14),
7267 ayi_information15 = null,
7268 ayi_information16 = decode(p_with_status,'Y',null,ayi_information16),
7269 object_version_number = object_version_number + 1
7270 where information_type = 'KR_YEA_ENTRY_STATUS'
7271 and ayi_information_category = 'KR_YEA_ENTRY_STATUS'
7272 and target_year = l_csr_file.target_year
7273 and ayi_information15 = fnd_number.number_to_canonical(l_csr_file.file_id);
7274 --
7275 end if;
7276 --
7277 if g_debug then
7278 hr_utility.set_location(l_proc,1000);
7279 end if;
7280 --
7281 end delete_pdf;
7282 --
7283 -- -------------------------------------------------------------------------
7284 -- mass_delete_pdf
7285 -- -------------------------------------------------------------------------
7286 -- this is for custom use
7287 procedure mass_delete_pdf(
7288 p_business_group_id in number,
7289 p_target_year in number,
7290 p_with_status in varchar2 default null)
7291 is
7292 --
7293 l_proc varchar2(80) := c_package||'mass_delete_pdf';
7294 --
7295 -- this should include file which does not have map into per_kr_assignment_yea_info
7296 cursor csr_mass_file
7297 is
7298 select file_id
7299 from fnd_lobs
7300 where program_name = 'PAYKRYPIM'
7301 and to_number(substrb(program_tag,0,instrb(program_tag,':')-1)) = p_business_group_id
7302 and substrb(program_tag,instrb(program_tag,':',-1)+1) = to_char(p_target_year);
7303 --
7304 l_csr_mass_file csr_mass_file%rowtype;
7305 --
7306 begin
7307 --
7308 if g_debug then
7309 hr_utility.set_location(l_proc,0);
7310 end if;
7311 --
7312 open csr_mass_file;
7313 loop
7314 --
7315 fetch csr_mass_file into l_csr_mass_file;
7316 exit when csr_mass_file%notfound;
7317 --
7318 delete_pdf(l_csr_mass_file.file_id,p_with_status);
7319 --
7320 end loop;
7321 close csr_mass_file;
7322 --
7323 if g_debug then
7324 hr_utility.set_location(l_proc,1000);
7325 end if;
7326 --
7327 end mass_delete_pdf;
7328 --
7329 function submit_yea_pdf_upload (
7330 p_bus_grp_id in number,
7331 p_year in varchar2,
7332 p_bus_plc_id in number,
7333 p_asg_id in number
7334 ) return number
7335 is
7336 l_request_id number ;
7337 p_asg_set_id number ;
7338 l_proc varchar2(80) := c_package||'submit_yea_pdf_upload';
7339 begin
7340 if g_debug then
7341 hr_utility.set_location(l_proc,0);
7342 hr_utility.trace('p_asg_id: '||p_asg_id);
7343 end if;
7344
7345 l_request_id := fnd_request.submit_request(
7346 application => 'PAY',
7347 program => 'PAYKRYPUPSS',
7348 description => 'KR Year End Adjustment PDF Upload SS',
7349 argument1 => p_bus_grp_id,
7350 argument2 => p_year,
7351 argument3 => p_bus_plc_id,
7352 argument4 => p_asg_id);
7353
7354 -- Check the status
7355 if l_request_id <> 0 then
7356 commit;
7357 end if;
7358 --
7359 if g_debug then
7360 hr_utility.trace('leaving submit_yea_pdf_upload:l_request_id: '||l_request_id);
7361 hr_utility.set_location(l_proc,1000);
7362 end if;
7363 return l_request_id;
7364 end submit_yea_pdf_upload ;
7365 end pay_kr_yea_pdf_pkg;