DBA Data[Home] [Help]

PACKAGE BODY: APPS.PAY_PAYJPSQD_XMLP_PKG

Source


1 PACKAGE BODY PAY_PAYJPSQD_XMLP_PKG AS
2 /* $Header: PAYJPSQDB.pls 120.1 2008/04/01 09:47:40 vjaganat noship $ */
3 
4 function BeforeReport  return boolean is
5 	l_date_era_code		NUMBER;
6 	l_date_year				NUMBER;
7 	l_date_month			NUMBER;
8 	l_date_day				NUMBER;
9 	l_element_type_id	NUMBER;
10 	l_legislation_code	PER_BUSINESS_GROUPS.LEGISLATION_CODE%TYPE;
11 begin
12  -- hr_standard.event('BEFORE REPORT');
13  P_CONC_REQUEST_ID := fnd_global.CONC_REQUEST_ID;
14 	G_REC_COUNT				:=0;
15 	G_FD_COUNT					:=0;
16 	G_FD_SERIAL_NUMBER	:=0;
17 	G_COUNT_OF_RECORD	:=0;
18 	G_HEADER_OUT				:=0;
19 
20 	CP_REPORT_TITLE := 'Notification of Qualfication Checklist';
21 
22 	if P_FILE_NAME is NULL then
23 		g_magfile_name := 'q' || lpad(to_char(P_CONC_REQUEST_ID - trunc(P_CONC_REQUEST_ID,-7)),7,'0') || '.mf';
24 	else
25 		g_magfile_name := P_FILE_NAME;
26 	end if;
27 
28 	pay_jp_report_pkg.to_era(	P_PREPARE_DATE,
29 					l_date_era_code,
30 					l_date_year,
31 					l_date_month,
32 					l_date_day);
33 	l_date_year := l_date_year - trunc(l_date_year,-2);
34 	G_PREPARE_DATE_YEAR	:= lpad(to_char(l_date_year),2,'0');
35 	G_PREPARE_DATE_MONTH	:= lpad(to_char(l_date_month),2,'0');
36 	G_PREPARE_DATE_DAY	:= lpad(to_char(l_date_day),2,'0');
37 	l_legislation_code := pay_jp_balance_pkg.get_legislation_code(P_BUSINESS_GROUP_ID);
38 	l_element_type_id := pay_jp_balance_pkg.get_element_type_id('COM_SI_INFO',P_BUSINESS_GROUP_ID,l_legislation_code);
39 	G_BASIC_PENSION_NUMBER_IV_ID	:= pay_jp_balance_pkg.get_input_value_id(l_element_type_id,'BASIC_PENSION_NUM');
40 	G_SI_SEX_IV_ID			:= pay_jp_balance_pkg.get_input_value_id(l_element_type_id,'SI_SEX');
41 	l_element_type_id := pay_jp_balance_pkg.get_element_type_id('COM_SI_MR_AT_QUALIFY_INFO',P_BUSINESS_GROUP_ID,l_legislation_code);
42 	G_SALARY_IV_ID			:= pay_jp_balance_pkg.get_input_value_id(l_element_type_id,'ERN_MONEY');
43 	G_MATERIAL_SALARY_IV_ID		:= pay_jp_balance_pkg.get_input_value_id(l_element_type_id,'ERN_KIND');
44 	l_element_type_id := pay_jp_balance_pkg.get_element_type_id('COM_WP_SMR_INFO',P_BUSINESS_GROUP_ID,l_legislation_code);
45 	G_WP_COMP_DATE_APPLIED_IV_ID	:= pay_jp_balance_pkg.get_input_value_id(l_element_type_id,'APPLY_MTH');
46 	G_WP_NEW_COMP_IV_ID		:= pay_jp_balance_pkg.get_input_value_id(l_element_type_id,'REVISED_SMR');
47 	G_WP_OLD_COMP_IV_ID		:= pay_jp_balance_pkg.get_input_value_id(l_element_type_id,'PRIOR_SMR');
48 	l_element_type_id := pay_jp_balance_pkg.get_element_type_id('COM_SI_PENSION_BOOK_NUM_INFO',P_BUSINESS_GROUP_ID,l_legislation_code);
49 	G_KOUSEI_NUMBER_1_IV_ID	:= pay_jp_balance_pkg.get_input_value_id(l_element_type_id,'WP_BOOK_OFFICE_NUM');
50 	G_KOUSEI_NUMBER_2_IV_ID	:= pay_jp_balance_pkg.get_input_value_id(l_element_type_id,'WP_BOOK_NUM');
51 	G_KOKUMIN_NUMBER_1_IV_ID	:= pay_jp_balance_pkg.get_input_value_id(l_element_type_id,'NP_BOOK_OFFICE_NUM');
52 	G_KOKUMIN_NUMBER_2_IV_ID	:= pay_jp_balance_pkg.get_input_value_id(l_element_type_id,'NP_BOOK_NUM');
53 	G_SENIN_NUMBER_1_IV_ID	:= pay_jp_balance_pkg.get_input_value_id(l_element_type_id,'SAILOR_INS_BOOK_OFFICE_NUM');
54 	G_SENIN_NUMBER_2_IV_ID	:= pay_jp_balance_pkg.get_input_value_id(l_element_type_id,'SAILOR_INS_BOOK_NUM');
55 	return (TRUE);
56 end;
57 
58 function cf_emp_recordformula (TOTAL_REC in number, ASSIGNMENT_ID in number, EFFECTIVE_DATE in date, ADDRESS_KANA1 in varchar2, DISTRICT_NAME_KANA in varchar2, ADDRESS_KANA2_3 in varchar2, ADDRESS1 in varchar2
59 ,ADDRESS2_3 in varchar2,DATE_QUALIFIED in date,WP_NUMBER in varchar2,DATE_OF_BIRTH in date,ADDRESS_COUNTRY in varchar2, POSTAL_CODE in varchar2) return number is
60 	l_address_kana				VARCHAR2(240);
61 	l_address							VARCHAR2(240);
62 	l_date_applied				VARCHAR2(6);
63 	l_wp_std_monthly_comp	VARCHAR2(38);
64 	l_iv_id								NUMBER;
65 	l_emp_failure_item		VARCHAR2(100);
66 
67 begin
68 	G_REC_COUNT := G_REC_COUNT  + 1;
69 
70 	if G_FD_COUNT  <> trunc((G_REC_COUNT -1)/2500)+1 then
71 		G_FD_COUNT  := trunc((G_REC_COUNT -1)/2500)+1;
72 		if G_FD_SERIAL_NUMBER  = 0 then
73 			G_FD_SERIAL_NUMBER  := P_FD_SERIAL_NUMBER;
74 			CP_MAGFILE_NAME := g_magfile_name;
75 		else
76  					G_FD_SERIAL_NUMBER  := G_FD_SERIAL_NUMBER  + 1;
77 			if G_FD_SERIAL_NUMBER  > 999 then
78 				G_FD_SERIAL_NUMBER  := 1;
79 			end if;
80 			CP_MAGFILE_NAME := CP_MAGFILE_NAME || ', ' || g_magfile_name || to_char(G_FD_COUNT);
81 		end if;
82 
83   	if G_FD_COUNT*2500 <= TOTAL_REC then
84 			G_COUNT_OF_RECORD := G_FD_COUNT*2500 - (G_FD_COUNT-1)*2500;
85 		else
86 			G_COUNT_OF_RECORD := TOTAL_REC - (G_FD_COUNT-1)*2500;
87 		end if;
88 
89 	end if;
90 
91 	CP_RECORD_NUMBER := G_REC_COUNT  - (G_FD_COUNT -1)*2500;
92 	CP_COUNT_OF_RECORD := G_COUNT_OF_RECORD;
93 	CP_FD_SERIAL_NUMBER := lpad(to_char(G_FD_SERIAL_NUMBER),3,'0');
94 	CP_FD_COUNT := G_FD_COUNT;
95 	CP_BASIC_PENSION_NUMBER := pay_jp_report_pkg.substrb2(pay_jp_balance_pkg.get_entry_value_char(g_basic_pension_number_iv_id,ASSIGNMENT_ID,EFFECTIVE_DATE),1,10);
96 
97 	CP_SI_SEX_CODE := pay_jp_balance_pkg.get_entry_value_char(g_si_sex_iv_id,ASSIGNMENT_ID,EFFECTIVE_DATE);
98 	CP_SI_SEX := hr_general.decode_lookup('JP_SI_SEX',CP_SI_SEX_CODE);
99 
100 	l_address_kana := pay_jp_report_pkg.substrb2((pay_jp_report_pkg.set_space_on_address(ADDRESS_KANA1,DISTRICT_NAME_KANA,1)||' '||ADDRESS_KANA2_3),1,240);
101 	l_address_kana := replace(replace(l_address_kana,hr_jp_standard_pkg.sjhextochar('8140'),' '),'  ',' ');
102 	CP_ADDRESS_KANA := l_address_kana;
103 	l_address := replace(pay_jp_report_pkg.substrb2((pay_jp_report_pkg.set_space_on_address(ADDRESS1,'',0)||' '||ADDRESS2_3),1,240),'  ',' ');
104 	CP_ADDRESS := l_address;
105 
106 	CP_KOUSEI_NENKIN_NUMBER1 := NULL;
107 	CP_KOUSEI_NENKIN_NUMBER2 := NULL;
108 	CP_KOKUMIN_NENKIN_NUMBER1 := NULL;
109 	CP_KOKUMIN_NENKIN_NUMBER2 := NULL;
110 	CP_SENIN_HOKEN_NUMBER1 := NULL;
111 	CP_SENIN_HOKEN_NUMBER2 := NULL;
112 
113 	CP_KOUSEI_NENKIN_NUMBER1 := pay_jp_balance_pkg.get_entry_value_char(g_kousei_number_1_iv_id,ASSIGNMENT_ID,EFFECTIVE_DATE);
114 	CP_KOUSEI_NENKIN_NUMBER2 := pay_jp_balance_pkg.get_entry_value_char(g_kousei_number_2_iv_id,ASSIGNMENT_ID,EFFECTIVE_DATE);
115 	CP_KOKUMIN_NENKIN_NUMBER1 := pay_jp_balance_pkg.get_entry_value_char(g_kokumin_number_1_iv_id,ASSIGNMENT_ID,EFFECTIVE_DATE);
116 	CP_KOKUMIN_NENKIN_NUMBER2 := pay_jp_balance_pkg.get_entry_value_char(g_kokumin_number_2_iv_id,ASSIGNMENT_ID,EFFECTIVE_DATE);
117 	CP_SENIN_HOKEN_NUMBER1 := pay_jp_balance_pkg.get_entry_value_char(g_senin_number_1_iv_id,ASSIGNMENT_ID,EFFECTIVE_DATE);
118 	CP_SENIN_HOKEN_NUMBER2 := pay_jp_balance_pkg.get_entry_value_char(g_senin_number_2_iv_id,ASSIGNMENT_ID,EFFECTIVE_DATE);
119 
120 	CP_SALARY := nvl(pay_jp_balance_pkg.get_entry_value_number(g_salary_iv_id,ASSIGNMENT_ID,EFFECTIVE_DATE),0);
121 	CP_MATERIAL_SALARY := nvl(pay_jp_balance_pkg.get_entry_value_number(g_material_salary_iv_id,ASSIGNMENT_ID,EFFECTIVE_DATE),0);
122 	CP_SALARY_SUM := CP_SALARY + CP_MATERIAL_SALARY;
123 
124 	CP_WP_STD_MONTHLY_COMP := NULL;
125 
126 	l_date_applied := nvl(pay_jp_balance_pkg.get_entry_value_char(g_wp_comp_date_applied_iv_id,ASSIGNMENT_ID,EFFECTIVE_DATE),'000101');
127 	if to_number(to_char(DATE_QUALIFIED,'YYYYMM')) - to_number(l_date_applied) < 0 then
128 		l_iv_id := g_wp_old_comp_iv_id;
129 	else
130 		l_iv_id := g_wp_new_comp_iv_id;
131 	end if;
132 	l_wp_std_monthly_comp := pay_jp_report_pkg.substrb2(to_char(pay_jp_balance_pkg.get_entry_value_number(l_iv_id,ASSIGNMENT_ID,EFFECTIVE_DATE)),1,38);
133 	if nvl(l_wp_std_monthly_comp,' ') <> ' ' then
134 		CP_WP_STD_MONTHLY_COMP := lpad(to_char(floor(to_number(l_wp_std_monthly_comp)/1000)),4,'0');
135 	end if;
136 	l_emp_failure_item := ' ';
137 	if nvl(WP_NUMBER,' ') = ' ' then
138 		l_emp_failure_item := l_emp_failure_item||fnd_message.get_string('PAY','PAY_JP_INS_SERIAL_NUM');
139 	end if;
140 	if nvl(to_char(DATE_OF_BIRTH),' ') = ' ' then
141 		l_emp_failure_item := l_emp_failure_item||fnd_message.get_string('PAY','HR_JP_DATE_OF_BIRTH');
142 	end if;
143 	if nvl(CP_SI_SEX_CODE,' ') = ' ' then
144 		l_emp_failure_item := l_emp_failure_item||fnd_message.get_string('PAY','PAY_JP_SI_SEX');
145 	end if;
146 	if nvl(ADDRESS_COUNTRY,'JP') = 'JP' then
147 		if nvl(POSTAL_CODE,' ') = ' ' then
148 			l_emp_failure_item := l_emp_failure_item||fnd_message.get_string('PAY','PAY_JP_POSTAL_CODE');
149 		end if;
150 		if nvl(CP_ADDRESS_KANA,' ') = ' ' then
151 			l_emp_failure_item := l_emp_failure_item||fnd_message.get_string('PAY','PAY_JP_KANA_ADDRESS');
152 		end if;
153 	end if;
154 	if CP_SALARY_SUM = 0 then
155 		l_emp_failure_item := l_emp_failure_item||fnd_message.get_string('PAY','PAY_JP_AMOUNT_MONEY_AND_KIND');
156 	end if;
157 
158 	CP_EMP_FAILURE_ITEM := l_emp_failure_item;
159 	return('');
160 end;
161 
162 function AfterReport  return boolean is
163 begin
164  -- file_io.close_magfile;
165  -- hr_standard.event('AFTER REPORT');
166 	return (TRUE);
167 end;
168 
169 --Functions to refer Oracle report placeholders--
170 
171  Function CP_WP_STD_MONTHLY_COMP_p return varchar2 is
172 	Begin
173 	 return CP_WP_STD_MONTHLY_COMP;
174 	 END;
175  Function CP_SALARY_p return number is
176 	Begin
177 	 return CP_SALARY;
178 	 END;
179  Function CP_MATERIAL_SALARY_p return number is
180 	Begin
181 	 return CP_MATERIAL_SALARY;
182 	 END;
183  Function CP_SALARY_SUM_p return number is
184 	Begin
185 	 return CP_SALARY_SUM;
186 	 END;
187  Function CP_SI_SEX_p return varchar2 is
188 	Begin
189 	 return CP_SI_SEX;
190 	 END;
191  Function CP_SI_SEX_CODE_p return varchar2 is
192 	Begin
193 	 return CP_SI_SEX_CODE;
194 	 END;
195  Function CP_BASIC_PENSION_NUMBER_p return varchar2 is
196 	Begin
197 	 return CP_BASIC_PENSION_NUMBER;
198 	 END;
199  Function CP_KOUSEI_NENKIN_NUMBER1_p return varchar2 is
200 	Begin
201 	 return CP_KOUSEI_NENKIN_NUMBER1;
202 	 END;
203  Function CP_KOUSEI_NENKIN_NUMBER2_p return varchar2 is
204 	Begin
205 	 return CP_KOUSEI_NENKIN_NUMBER2;
206 	 END;
207  Function CP_KOKUMIN_NENKIN_NUMBER1_p return varchar2 is
208 	Begin
209 	 return CP_KOKUMIN_NENKIN_NUMBER1;
210 	 END;
211  Function CP_KOKUMIN_NENKIN_NUMBER2_p return varchar2 is
212 	Begin
213 	 return CP_KOKUMIN_NENKIN_NUMBER2;
214 	 END;
215  Function CP_SENIN_HOKEN_NUMBER1_p return varchar2 is
216 	Begin
217 	 return CP_SENIN_HOKEN_NUMBER1;
218 	 END;
219  Function CP_SENIN_HOKEN_NUMBER2_p return varchar2 is
220 	Begin
221 	 return CP_SENIN_HOKEN_NUMBER2;
222 	 END;
223  Function CP_EMP_FAILURE_ITEM_p return varchar2 is
224 	Begin
225 	 return CP_EMP_FAILURE_ITEM;
226 	 END;
227  Function CP_ADDRESS_p return varchar2 is
228 	Begin
229 	 return CP_ADDRESS;
230 	 END;
231  Function CP_FD_SERIAL_NUMBER_p return varchar2 is
232 	Begin
233 	 return CP_FD_SERIAL_NUMBER;
234 	 END;
235  Function CP_COUNT_OF_RECORD_p return number is
236 	Begin
237 	 return CP_COUNT_OF_RECORD;
238 	 END;
239  Function CP_RECORD_NUMBER_p return number is
240 	Begin
241 	 return CP_RECORD_NUMBER;
242 	 END;
243  Function CP_FD_COUNT_p return number is
244 	Begin
245 	 return CP_FD_COUNT;
246 	 END;
247  Function CP_ADDRESS_KANA_p return varchar2 is
248 	Begin
249 	 return CP_ADDRESS_KANA;
250 	 END;
251  Function CP_REPORT_TITLE_p return varchar2 is
252 	Begin
253 	 return CP_REPORT_TITLE;
254 	 END;
255  Function CP_MAGFILE_NAME_p return varchar2 is
256 	Begin
257 	 return CP_MAGFILE_NAME;
258 	 END;
259 END PAY_PAYJPSQD_XMLP_PKG ;