[Home] [Help]
PACKAGE BODY: APPS.PAY_US_MMRF_W2_FORMAT_RECORD
Source
1 PACKAGE BODY pay_us_mmrf_w2_format_record AS
2 /* $Header: pyusw2fr.pkb 120.122.12020000.7 2013/02/26 10:13:22 skchalla ship $ */
3
4 /*===========================================================================+
5 | Copyright (c) 2001 Oracle Corporation |
6 | Redwood Shores, California, USA |
7 | All rights reserved. |
8 +============================================================================+
9
10 Name
11 pay_us_mmrf_w2_format_record
12
13 Purpose
14 The purpose of this package is to format reacord to support the
15 generation of W2 magnetic tape for US legilsative requirements.
16
17 Notes
18 Referenced By: Package pay_us_reporting_utils_pkg
19
20 History
21
22 14-Jul-03 ppanda 115.0 Created
23 18-Sep-03 ppanda 115.2 3150687 STATE W2 MAG RS RECORDS ARE ONLY 487 POSITIONS
24 RS record formatting function uses a local variable
25 l_last_field which is 25 spaces. This field was not
26 initialized. This was causing the RS record length as 487.
27 30-OCT-03 ppanda 115.3 3135857 Reporting Period for SC no longer required. Position
28 197-202 on RS record blank filled.
29 01-NOV-03 ppanda 115.5 Function set_req_field_length modified for W-2c Mag requirement
30
31 08-NOV-03 tmehra 115.6 2084851 Maryland State Pickup Pos 298-307 change
32 20-NOV-03 ppanda 115.7 3130999 RA positions 12 - 216 NR blank fill
33 274 - 295 NR blank fill
34 356 - 512 NR blank fill
35 RE position 7 NR blank fill
36 17 - 39 NR blank fill
37 97 - 118 NR blank fill
38 179 - 512 NR blank fill
39 RS position 73 - 94 NR blank fill
40 150 - 194 NR blank fill
41 274 - 275 NR blank fill
42 22-NOV-03 sodhingr 115.8 Removed show_errors to fix GSCC failure
43 25-NOV-03 ppanda 115.9 3067494 Kansas City, MO Local RS reocrd formating changed
44 for few fields
45 02-DEC-03 ppanda 115.10 3293083 Lousiana state W-2 is not reporting submitter
46 Delivery address, City, State, Zip and Zip code
47 extension.
48 08-NOV-03 tmehra 115.11 2084851 Zero filled the Maryland State Pickup Pos 298-307
49 08-DEC-03 ppanda 115.9 3299126 For LA state W2 RE record : 97- 118(Employer Address)
50 Not required
51 26-DEC-03 ppanda 115.10 3337295 For PR RO, RS and RT record specification changed
52 Refer Bug Descriotion for the details of record changes.
53 20-AUG-04 tmehra 115.11 3534769 Added support for the Maryland state pickup.
54
55 27-OCT-04 rsethupa 115.15 3895206 NJ DIPP Plan ID - Only last 14 characters are
56 required
57 RS Positions 339-352
58 3936924 For State of AL
59 RE positions 170-173 - zip code extension
60 401-410 - Alabama withholding tax acct number
61 (Right justify zero fill)
62 RS positions 248-257 - State ER In Number
63 258-268 - Federal Employer Id Number
64 393-396 - Payment year
65 28-OCT-04 rsethupa 115.16 3936924 Removed redundant local variables. Added comments.
66
67 02-NOV-04 rsethupa 115.17 3180532 IN EIC changes
68 RS positions 193 - 203 Box 9 - Adv Fed EIC
69 204 - 273 Blank fill
70 341 - 352 Box 19b - State Adv EIC
71 353 - 357 Box 20b - Adv EIC ID "INADV"
72 358 - 512 Blank fill
73 04-NOV-04 rsethupa 115.18 3186636 WV requires MMREF format from 2004. Formatting for
74 RE, RW and RS records done as per specifications.
75 3292989 ST Louis MO Local W-2 Mag
76 RA positions 12 - 28 blank fill
77 29 - 29 blank fill
78 30 - 35 blank fill
79 36 - 37 blank fill
80 3680056 New fields ER Contrib to a Health Savings Account has been
81 added to RW and RT records
82 RW positions 364-374
83 RT positions 250-264
84 18-NOV-04 ppanda 115.19 3180532 IN EIC changes
85 RS positions 341 - 352 Box 19b - State Adv EIC
89 of 341.
86 353 - 357 Box 20b - Adv EIC ID "INADV"
87 These two values were lpaded with blanks. This was
88 causing the value to appear at position 396 instead
90 18-NOV-04 ppanda 115.20 4016439 Dayton, OH Local Tape RA record changed
91 for preferred problem notification method.
92 24-NOV-04 rsethupa 115.21 3180532 Added local variable l_fl_field_17_20 for RS record
93 24-NOV-04 rsethupa 115.22 4022086 RS record for state of MS
94 positions
95 258-266 Federal Employer ID number
96 267 - blank
97 298-307 Federal Tax withheld
98 338-348 1099 Income
99 349-392 blanks
100 393-396 Payment Year
101 397-512 blanks
102 25-NOV-04 rsethupa 115.23 4014356 RS Record for NJ
103 Positions
104 308-310 Medical Malpractice
105 Insurance Premium Assistance
106 Assessment (MIF)
107 311-330 blanks
108 29-Nov-04 ppanda 115.24 4012469 RS record changed for
109 positions 3-4 STate Code
110 - now require numeric code "20"
111 positions 274-275 state code -
112 - now require numeric code "20"
113 positions 338-348 Employee
114 Contributions to Kansas Public
115 EE's Retirement System (KPERS,
116 KPF or Judges)
117 03-DEC-04 rsethupa 115.25 4045592 OH_CCAAA RS record
118 positions 338-412 is now blank
119 07-DEC-04 rsethupa 115.26 4052268 For WV RE record
120 positions
121 7 : Agent Indicator code
122 17-25 : Agent for EIN
123 31-39 : Other EIN
124 23-DEC-04 rsethupa 115.27 4084765 Added logic to display NJ DIPP Plan ID
125 even if it is less than 14 characters
126 04-APR-05 meshah 115.28 4279809 changed the r_input_34 for AL in
127 the RS record.
128 07-Nov-05 sudedas 115.29 4391218 RA,RW,RO,RT and RU W2 Format changed.
129 09-Nov-05 saurgupt 115.30 4720007 Postion 341-351 : RS record for IN moves by one
130 position.
131 09-Nov-05 kvsankar 115.31 4502738 RE, RW, RT record added for MO_KNSAS
132 Removed Code that was commented.
133 11-Nov-05 kvsankar 115.32 4730413 OH RS record SD has incorrect positioning
134 for SD code. It should be right justified and
135 blank filled in positions 331-337.
136 15-Nov-05 kvsankar 115.33 4728539 For RS 368-369 should be filled with ZERO's
137 for Maryland
138 16-Nov-05 kvsankar 115.34 4739790 Modified RE, RW and RS record for MO_KNSAS
139 29-Nov-05 sudedas 115.35 4665713 Modified RW, RO, RS and RT Record for Puerto Rico W2
140 4859212 Modified RW Pos: 342 - 352 and RT Pos: 220 - 234
141 17-Aug-06 sudedas 115.36 5256745 Modified RW Pos: 441 - 451 , Pos: 452 - 462
142 RT Pos: 370 - 384 , Pos: 385 - 399
143 RO Pos: 266 - 274.
144 4736977 Modified RS Record Pos: 368 - 369 for MD. Should now
145 report W4 Withholding Allowances for Maryland.
146 26-Oct-06 vmkulkar 115.37 5513076 Modified RS pos 73-94 , pos : 95-116 and pos : 357-359
147 for the state of INDIANA
148 03-Nov-06 vmkulkar 115.38 5513076 Modified RS pos 331-343 , pos : 344-354 and pos : 355-359
149 5637673 and 360-512 blanks for INDIANA
150 10-Nov-06 sausingh 115.39 5651314 Modified RS pos 298-307 for GEORGIA
151 14-Nov-06 sausingh 115.40 5651314 Removed (115.38=120.10) from
152 line 5 to remove GSCC compliencnce
153 14-Nov-06 sausingh 115.40 5651314 Modified RS pos 298-307 for GEORGIA
154 22-Nov-06 sudedas 115.41 5640748 Modified RE Record for State of Maryland.
155 28-Nov-06 vmkulkar 115.42 5668970 Modified
156 RO pos 265 civil status
157 RS 274-275
158 RU pos 55-69 zero for Puerto Rico(PR).
159 29-Nov-06 sudedas 115.43 5686164 Modified RE Record for Maryland , added nvl.
160 04-Dec-06 sudedas 115.44 5693183 RS Rec Pos: 248 - 267 Blank for GA.
161 14-dec-06 djoshi 115.45 5717304 RS record position 307 fixed for
162 KS and NJ
163
164 14-dec-06 djoshi 115.46 5717304 RS record position 307 fixed for
165 KS and NJ
166 15-Dec-06 sudedas 115.47 5717438 RS Record Pos : 298 - 307 Modified
167 for ELSE section.
168 (Earlier code only for GA)
169 28-Dec-06 alikhar 115.49 5696443 RS Record for GA modified. Two new fields.
173 5759976 report Address Line 1 (Employer Delivery Address)
170 Pos 338-412 (FEIN) and Pos 413-487 (SIT).
171 03-Jan-07 sudedas 115.50 5739737 Position 341 - 343 Modified for Indiana RS Record.
172 13-Jan-07 sudedas 115.51 5760355 Maryland RE Record Position: 273 - 294 should
174 16-Feb-07 vaprakas 115.52 5876054 Fixed mutilple issue in RS and RT records for PR
175 16-Feb-07 sudedas 115.53 5886247 City Name to be displayed for Tax Withheld in Ohio-RITA
176 26-Oct-07 svannian 115.55 6330489 RA RECORD Modified,
177 Position: 20-23 ,Software Vendor code(1334)
178 Position: 24-28 ,blank
179 RO RECORD Modified ,
180 Position: 265,blank
181 changes for the Federal and ALL STATES
182 02-Nov-07 svannian 115.56 5155648 For Transfer State FED and State PR, position 275-278 of
183 RO record and 408-418 of RW Record made to Zero.
184 22-Nov-07 sjawid 115.57 6641801 For State SC RS record Pos 197-202 modified to
185 115.58 populate Reporting period.
186 07-Dec-07 vmkulkar 115.59 6644795 Added function format_W2_RV_record
187 6648007
188 07-Dec-07 svannian 115.61 6648064 430-512 of Rw record made to blank fill for indiana
189 07-Dec-07 vmkulkar 115.64 PR RS Rec 338-347 Blank fill
190 10-Dec-07 svannian 115.65 6644795 For PR - RU RECORD 10 - 24 zero fill
191 40 - 29 zero fill
192 RO RECORD
193 34-99 zero fill
194 26-Dec-07 svannian 115.70 6684920 RA pos 172-512 made blank
195 RE pos 219 made blank
196 02-Jan-08 vmkulkar 115.73 6720630 RS 274-275 MI made blank
197 09-Jan-08 vmkulkar 115.75 6650931 Reverted back the CCA changes made in the last version.
198 21-apr-08 svannian 115.77 6855543 GA pos 340 - 482 changed as stated in bug 6855543
199 19-nOV-08 SKPATIL 115.78 7045241 Making RE record for LA position 219 as required at format_W2_RE_record()
200 13-Feb-09 skpatil 115.90 8243215 Making pos 197-202 required in RS record for state of DC
201 29-Oct-09 svannian 115.91 9065558 Changes foe WI made in RS record
202 19-Mar-10 emunisek 115.104 9356178 Overloaded function format_mmref_address
203 to accommodate the phone number requirement
204 of Florida SQWL.This will be used only for the purpose of Florida SQWL.All other
205 calls to the function format_mmref_address will use the existing function
206 24-Mar-10 emunisek 115.105 9356178 Reorganized the code as per the suggestions
207 made in codereview.
208 30-Mar-10 emunisek 115.106 9356178 Placed special character check on Phone Number
209 06-May-10 svannian 115.107 9473738 pos 248 - 267 made to right justify
210 17-Aug-10 skchalla 115.108 9385848 Placed some validations for the state New Mexico for the
211 fields SIT Company ID and CRS Identification Number.
212 27-Aug-10 nkjaladi 115.109 10031479 Modified function format_W2_RS_record to remove
213 alphabetic and special characters from
214 pos 248 - 267(r_input_25) from state 'ID'
215 31-Aug-10 nkjaladi 115.110 10031479 Modified function format_W2_RV_record to remove
216 alphabetic and special characters from
217 pos 16 - 24(r_input_4) from state 'ID'
218 01-Sep-10 nkjaladi 115.111 10031479 Modified function format_W2_RV_record to remove
219 special characters '-' and '/' from
220 pos 16 - 24(r_input_4) from state 'ID'
221 08-Sep-10 nkjaladi 115.112 10100148 Modified function format_W2_RS_record to avoid
222 truncation to 20 characters and to remove
223 other special characters like '{}[]:;"''.
224 Also Modified function format_W2_RV_record to
225 remove other special characters like '{}[]:;"''
226 13-Sep-10 skchalla 115.113 9435160 Modified function format_W2_RV_record to drop
227 the cents from pos 16 - 24(r_input_4) from state 'OR'
228 14-Sep-10 nkjaladi 115.114 10100148 Modified function format_W2_RS_record to avoid
229 extra truncation.
230 17-Sep-10 skchalla 115.115 9385848 Pos 298-307: CRS Identification Number and pos 248-267: SIT Company State ID
231 for NM was modified to pick the correct value in format_W2_RS_record.
232 Also Modified the same function to
233 remove other special characters like '{}[]:;"''
234 Also Dropped the Leading zeros from Pos 298-307: CRS Identification Number.
235 08-Nov-10 asgugupt 115.116 9913436 Modified for Fed Mag Media
236 10-Nov-10 asgugupt 115.116 10266082 Modified RE,RS,RF records for VA state
237 13-Sep-10 skchalla 115.121 10266129 Modified function format_W2_RV_record to Add the cents.
238 19-Sep-10 skchalla 115.122 10284526 Modified the function format_W2_RS_record for WV changes.
239 24-Nov-10 nkjaladi 115.123 9913436 Modified the function format_W2_RO_record to increase the variable
243 26-Nov-10 asgugupt 115.126 10283926 Modified RS record formatting for bug 10283926
240 size of p_output_value in type function_columns from 100 to 200
241 24-Nov-10 asgugupt 115.124 10287523 Modified RS record formatting for bug 10287523
242 25-Nov-10 nkjaladi 115.125 10313971 Modified RS record formatting for 'NE' state to remove preceding '21-'
244 29-Nov-10 skchalla 115.130 10266267 Modified the function format_W2_RS_record for VT changes.
245 08-Dec-10 skchalla 115.131 10266267 Modified the function format_W2_RW_record for VT changes.
246 10-Dec-10 asgugupt 115.132 10287523 Modified the function format_W2_RO_record for ID a03 file
247 22-Dec-10 asgugupt 115.133 10419372 Modified the function format_W2_RF_record for CT
248 23-Dec-10 skchalla 115.134 10419148 Modified the functions format_W2_RO_record,format_W2_RU_record for KY
249 27-Dec-10 skchalla 115.135 10427851 Modified the functions format_W2_RO_record,format_W2_RU_record for PR
250 11-Jan-11 skchalla 115.136 10427851 Modified the functions format_W2_RO_record PR a03 CSV file.
251 14-Jan-11 asgugupt 115.137 11074088 Modified the functions format_W2_RW_record OH a03 CSV file.
252 02-Mar-11 asgugupt 115.138 11800770 Modifiee the functions format_W2_RW_record for VT State
253 27-Oct-11 skchalla 115.139 13073346 Modified the functions format_W2_RW_record and
254 format_W2_RO_record for IN and OH .a03.
255 04-Nov-11 sgotlasw 115.141 13325368 Modified RS record formatting for year 2011.
256 10-Nov-11 sgotlasw 115.140 13351713 Modified the functions format_W2_RW_record and
257 format_W2_RT_record to display
258 'A_W2_HEALTH_COVERAGE_PER_GRE_YTD' value.
259 14-Nov-11 sgotlasw 115.143 13355672 Modified RS record formatting for WISCONSIN state.
260 RS RECORD, Position 298-337: Blank fill.
261 22-Nov-11 skchalla 115.144 13419483 Modified the format_W2_RW_record for checking the
262 -ve values of W2 Health Coverage.
263 25-Nov-11 sgotlasw 115.145 13409513 Modified RE, RS, RV Record formatting for INDIANA from year 2011.
264 28-Nov-11 skchalla 115.146 13434817 Removed the extra comments to make the package compiled.
265 28-Nov-11 skchalla 115.147 13422328 Modified the format_W2_RW_record for formatting issue of .a02
266 19-Dec-11 sgotlasw 115.148 13515271 Corrected display position of 'W2 Roth 457b'
267 30-Dec-11 sgotlasw 115.149 13449377 Mmodified code to display following new balances for PuertoRico
268 'PR W2 Charitable Contributions', 'PR W2 Contr To Save and Double Money'.
269 12-JAN-2012 pkoduri 115.150 13408243 Modified format_W2_RA_record method
270 to handle the PA 1099R following the EFW-2 format.
271 16-NOV-2-12 skchalla 115.151 14799506 EWF2 Changes for 2012
272 06-DEC-2012 pkoduri 115.152 15955687 Corrected the RT record for Puerto reco to show blanks from 220-235
273 27-DEC-2012 pracagra 115.153 16013916 Modified RS Record formatting for INDIANA from year 2012.
274 28-DEC-2012 pracagra 115.154 16005079 Modified RS Record formatting for MISSISSIPPI from year 2012.
275 18-JAN-2013 skchalla 115.155 16173051 Reverting the changes done for the Bug 14799506 for PR.
276 25-FEB-2013 skchalla 115.156 16339837 Modified RA,RE and RS format functions as per the new LA instructions.
277 */
278
279 -- This function determines the required length for fields
280 -- in various data record. This function is being referenced
281 -- from DAT_VALIDATION function in package pay_us_reporting_utils_pkg
282 --
283 FUNCTION set_req_field_length (p_report_type IN varchar2,
284 p_format IN varchar2,
285 p_report_qualifier IN varchar2,
286 p_record_name IN varchar2,
287 p_input_1 IN varchar2,
288 p_input_2 IN varchar2,
289 p_input_3 IN varchar2,
290 p_input_4 IN varchar2,
291 p_input_5 IN varchar2
292 ) return NUMBER
293 IS
294 l_length number(10);
295 BEGIN
296 IF p_record_name in ('RU','RT','RF','RCU','RCT','RCF') THEN
297 --{
298 l_length := 15;
299 IF ( (p_record_name = 'RF' ) AND
300 (p_report_qualifier = 'CT') ) THEN
301 l_length := 16;
302 END IF;
303 --}
304 ELSIF p_record_name in ('RS','RO','RW','RCW','RCO') THEN
305 --{
306 l_length := 11;
307 IF ((p_record_name = 'RS') AND
308 (p_input_3 = 'Other State Data')
309 ) THEN
310 l_length := 10;
311 hr_utility.trace('RS. Other State Data.l_length = '||to_char(l_length));
312 ELSIF p_record_name = 'RS' THEN
313 --{
314 IF p_report_qualifier = 'NJ' THEN
315 IF ((p_input_3 = 'SDI Withheld') OR
316 (p_input_3 = 'Unemployment Insurance Tax')) THEN
317 l_length := 5;
318 ELSIF p_input_3 = 'Deferred Comp' THEN
319 l_length := 9;
320 ELSIF p_input_3 = 'MIF' THEN -- Bug 4014356
321 l_length := 3;
322 END IF;
323 END IF; --NJ
324 --}
325 END IF; --RS Record
326
327 /* Bug 5640748 */
328 /*
329 ELSIF p_record_name = 'RE' THEN
330 IF p_report_qualifier = 'MD' THEN
331 IF (( p_input_3 = 'Tot Withheld Tax Reported') OR
335 ( p_input_3 = 'MW508 ER Amt Balance Due') OR
332 ( p_input_3 = 'SIT Withheld') OR
333 ( p_input_3 = 'MW508 ER Credits') OR
334 ( p_input_3 = 'MW508 ER Amt Tax Due') OR
336 ( p_input_3 = 'MW508 ER Amt Overpayment') OR
337 ( p_input_3 = 'MW508 ER Amt Credit') OR
338 ( p_input_3 = 'MW508 ER Amt Refunded') OR
339 ( p_input_3 = 'State taxable Wages') OR
340 ( p_input_3 = 'Other State Data')
341 ) THEN
342 l_length := 12 ;
343 END IF ; -- p_input_3
344 END IF ; -- MD
345 */
346 --}
347 END IF; -- p_record_name
348 return l_length;
349 END set_req_field_length; -- End of set_req_field_length
350 --
351
352 PROCEDURE format_w2_contact_prsn_info (
353 p_report_qualifier IN varchar2,
354 p_record_name IN varchar2,
355 p_validate IN varchar2,
356 p_exclude_from_output IN OUT nocopy varchar2,
357 p_contact_prsn_name IN OUT nocopy varchar2,
358 p_contact_prsn_phone IN OUT nocopy varchar2,
359 p_contact_prsn_extension IN OUT nocopy varchar2,
360 p_contact_prsn_email IN OUT nocopy varchar2,
361 p_contact_prsn_fax IN OUT nocopy varchar2,
362 p_contact_prsn_first_name IN OUT nocopy varchar2,
363 p_contact_prsn_middle_name IN OUT nocopy varchar2,
364 p_contact_prsn_last_name IN OUT nocopy varchar2)
365 IS
366 BEGIN
367 IF p_contact_prsn_name is NULL THEN
368 --{
369 p_contact_prsn_name := lpad(' ',27);
370 p_contact_prsn_phone := lpad(' ',15);
371 p_contact_prsn_extension := lpad(' ',5);
372 p_contact_prsn_email := lpad(' ',40);
373 p_contact_prsn_fax := lpad(' ',10);
374 --}
375 ELSE
376 --{
377 p_contact_prsn_name :=rpad(substr(nvl(upper(p_contact_prsn_name),' '),1,27),27);
378 p_contact_prsn_email :=rpad(substr(nvl(upper(p_contact_prsn_email),' '),1,40),40);
379 p_contact_prsn_fax :=
380 rpad(substr(nvl(replace(p_contact_prsn_fax,' '),' '),1,10),10);
381 --}
382 END IF;
383 END format_w2_contact_prsn_info;
384 -- End of famatting Contact Person info used for reportin W2
385 --
386
387 --
388 -- Procedure to Format Employee and Employer Address
389 -- This procedure is being called from function GET_EE_ADDRESS
390 -- and GET_ER_ADDRESS
391 --
392 PROCEDURE format_mmref_address(
393 p_name IN varchar2,
394 p_locality_company_id IN varchar2,
395 p_emp_number IN varchar2,
396 p_address_line_1 IN varchar2,
397 p_address_line_2 IN varchar2,
398 p_address_line_3 IN varchar2,
399 p_town_or_city IN varchar2,
400 p_state IN varchar2,
401 p_postal_code IN varchar2,
402 p_country IN varchar2,
403 p_region_1 IN varchar2,
404 p_region_2 IN varchar2,
405 p_valid_address IN varchar2,
406 p_item_name IN varchar2,
407 p_report_type IN varchar2,
408 p_record_name IN varchar2,
409 p_validate IN varchar2,
410 p_local_code IN varchar2,
411 p_exclude_from_output OUT nocopy varchar2,
412 sp_out_1 IN OUT nocopy varchar2,
413 sp_out_2 IN OUT nocopy varchar2,
414 sp_out_3 IN OUT nocopy varchar2,
415 sp_out_4 IN OUT nocopy varchar2,
419 sp_out_8 IN OUT nocopy varchar2,
416 sp_out_5 IN OUT nocopy varchar2,
417 sp_out_6 IN OUT nocopy varchar2,
418 sp_out_7 IN OUT nocopy varchar2,
420 sp_out_9 IN OUT nocopy varchar2,
421 sp_out_10 IN OUT nocopy varchar2 ) IS
422 --
423 TYPE message_columns IS RECORD(
424 p_mesg_description varchar2(100),
425 p_mesg_value varchar2(100),
426 p_output_value varchar2(100));
427 message_parameter_rec message_columns;
428 TYPE message_parameter_record IS TABLE OF message_parameter_rec%TYPE
429 INDEX BY BINARY_INTEGER;
430 message_record message_parameter_record;
431
432 l_level varchar2(1);
433 l_mesg_name varchar2(50);
434 l_name_or_number varchar2(50);
435 l_err boolean := FALSE;
436 l_hyphen_position number(10);
437 c_item_name varchar2(100);
438 l_name varchar2(100);
439 l_location_addr varchar2(100);
440 l_delivery_addr varchar2(100);
441 l_State varchar2(100);
442 l_city varchar2(100);
443
444 BEGIN
445 c_item_name := p_item_name;
446 l_name := rpad(upper(substr(nvl(p_name,lpad(' ',57)),1,57)),57);
447 l_location_addr := nvl(rpad(replace(replace(upper(substr(ltrim
448 (p_address_line_2 ||' '||p_address_line_3), 1, 22))
449 ,',','_'),''''),22) ,lpad(' ',22));
450 l_delivery_addr := nvl(rpad(replace(replace(upper(substr(ltrim(
451 p_address_line_1),1,22)),',','_'),''''),22),lpad(' ',22));
452 l_State := upper(rpad(substr(p_state,1,2),2));
453 l_city := nvl(upper(rpad(substr(p_town_or_city, 1, 22), 22)),
454 lpad(' ',22));
455 -- Format for Valid Address
456 IF p_valid_address = 'Y' THEN
457 --{
458 hr_utility.trace('Valid Address found ');
459 hr_utility.trace('Location address '||l_location_addr);
460 hr_utility.trace('Delivery address '||l_delivery_addr);
461 hr_utility.trace('town_or_city '||l_city);
462 hr_utility.trace('postal_code '||p_postal_code);
463 hr_utility.trace('State '||l_state);
464 hr_utility.trace('p_country '||p_country);
465
466 IF c_item_name = 'EE_ADDRESS' THEN
467 l_level := 'A';
468 l_mesg_name := 'PAY_INVALID_EE_FORMAT';
469 l_name_or_number := p_emp_number;
470 ELSIF c_item_name = 'ER_ADDRESS' THEN
471 l_level := 'P';
472 l_mesg_name := 'PAY_INVALID_ER_FORMAT';
473 l_name_or_number := substr(p_name,1,50);
474 END IF;
475
476 message_record(1).p_mesg_description:='Invalid address.Address Line1 is null';
477 message_record(2).p_mesg_description:='Invalid address.City is null';
478 message_record(3).p_mesg_description:='Invalid address.State is null';
479 message_record(4).p_mesg_description:='Invalid address.Zip is null';
480 message_record(1).p_mesg_value:= l_delivery_addr;
481 message_record(2).p_mesg_value:= l_city;
482 message_record(3).p_mesg_value:= l_state;
486 IF message_record(i).p_mesg_value IS NULL THEN
483 message_record(4).p_mesg_value:= p_postal_code;
484
485 FOR i in 1..4 LOOP
487 pay_core_utils.push_message(801,l_mesg_name,l_level);
488 pay_core_utils.push_token('record_name', p_record_name);
489 pay_core_utils.push_token('name_or_number', l_name_or_number);
490 pay_core_utils.push_token('description',
491 message_record(i).p_mesg_description);
492 l_err:=TRUE;
493 END IF;
494 END LOOP;
495
496 sp_out_1 := l_location_addr;
497 sp_out_2 := l_delivery_addr;
498 sp_out_3 := l_city;
499
500 IF (p_country = 'US' OR p_country IS NULL )THEN
501 sp_out_9:= lpad(' ',2);
502 IF p_region_2 IS NOT NULL THEN
503 sp_out_4 := l_state; --State abbreviation
504 sp_out_7 := lpad(' ',23); --foreign state/province
505 ELSE --The region is null.
506 sp_out_4 := lpad(' ',2);
507 sp_out_7 := lpad(' ',23);
508 END IF;
509 ELSE -- country is not US
510 sp_out_4 := lpad(' ',2);
511 /* Bug:2133985 foreign state/province*/
512 sp_out_7 := upper(rpad(substr(nvl(p_region_1,' '),1,23),23));
513 sp_out_9:= upper(rpad(substr(p_country,1,2),2));
514 END IF;
515
516 /* See if the zip code has a zip code extension ie. contains a hyphen */
517
518 IF p_postal_code IS NOT NULL THEN
519 --{
520 l_hyphen_position := instr(p_postal_code, '-');
521
522 /* sp_out_5: zip code Len: 5
523 sp_out_6: zip code extension Len: 4
524 sp_out_8: foreign postal_code Len: 15 */
525
526 IF ( (p_country = 'US') OR ( p_country IS NULL ) ) THEN
527 IF l_hyphen_position = 0 THEN
528 sp_out_5:= upper(rpad(substr(p_postal_code,1,5),5));
529 sp_out_6 := lpad(' ', 4);
530 ELSE
531 sp_out_5:= upper(rpad(substr(substr
532 (p_postal_code,1,l_hyphen_position-1),1,5),5));
533 sp_out_6 := upper(rpad(substr(
534 p_postal_code,l_hyphen_position+1,4),4));
535 END IF;
536 sp_out_8:= lpad(' ',15);
537 ELSE /* ( (l_country = 'US') OR ( l_country IS NULL ) ) */
538 sp_out_5:= lpad(' ',5); --zip
539 sp_out_6:= lpad(' ', 4); --extension
540 sp_out_8:= upper(rpad(substr(p_postal_code,1,15),15)); --foreign zip
541 END IF;
542 --}
543 ELSE /* l_postal_code IS NULL.*/
544 --{
545 sp_out_5:= lpad(' ',5); --zip
546 sp_out_8:= lpad(' ',15); -- foreign zip
547 sp_out_6:= lpad(' ', 4); --extension
548 hr_utility.trace('Zip or Postal Code is null');
549 --}
550 END IF;
551 IF ((p_item_name = 'ER_ADDRESS') OR ( p_item_name = 'CR_ADDRESS')) THEN
552 sp_out_10:= p_name;
553 hr_utility.trace('Organization Name = '||p_name);
554 /* Locality_Company_Id */
555 IF ((p_item_name = 'ER_ADDRESS') and (p_local_code = 'PHILA')) THEN
556 sp_out_8:= lpad(NVL(p_locality_company_id,' '),15);
557 END IF;
558 ELSIF p_item_name = 'EE_ADDRESS' THEN
559 sp_out_10:= pay_us_reporting_utils_pkg.Character_check(p_emp_number);
560 END IF;
561 --}
562 --
563 -- when address is Invalid
564 --
565 ELSE
566 --{
567 IF p_item_name IN ('EE_ADDRESS',
568 'ER_ADDRESS',
569 'CR_ADDRESS') THEN
570 sp_out_1:=lpad(' ',22);
571 sp_out_2:=lpad(' ',22);
572 sp_out_3:=lpad(' ',22);
573 sp_out_4:=lpad(' ',2);
574 sp_out_5:=lpad(' ',5);
575 sp_out_6:=lpad(' ',9);
576 sp_out_7:=lpad(' ',23);
577 sp_out_8:=lpad(' ',15);
578 sp_out_9:=lpad(' ',2);
579 sp_out_10:=lpad(' ',57);
580 END IF;
581 IF ( (p_item_name = 'ER_ADDRESS')OR
582 (p_item_name = 'EE_ADDRESS')
583 ) THEN
584 l_err :=TRUE;
585 END IF;
586 --}
587 END IF; --p_valid_address
588 hr_utility.trace('location address '||sp_out_1);
589 hr_utility.trace('delivery address '||sp_out_2);
590 hr_utility.trace('City '||sp_out_3);
591 hr_utility.trace('State '||sp_out_4);
592 hr_utility.trace('Zip '||sp_out_5);
593 hr_utility.trace('Zip Code Extension '||sp_out_6);
594 hr_utility.trace('Foreign State/Province '||sp_out_7);
595 hr_utility.trace('Foreign Zip '||sp_out_8);
596 hr_utility.trace('Country '||sp_out_9);
597 IF (p_item_name = 'ER_ADDRESS') THEN
598 hr_utility.trace('Organization Name '||sp_out_10);
599 ELSE
600 hr_utility.trace('Employee Number '||sp_out_10);
601 END IF;
602 --
603 -- Check to include or exclude record on the basis of validity of address
604 --
605 IF p_validate = 'Y' THEN
606 IF l_err THEN
607 p_exclude_from_output := 'Y';
608 hr_utility.trace('p_validate is Y .error '||p_exclude_from_output);
609 END IF;
610 END IF;
611 IF p_exclude_from_output IS NULL THEN
612 p_exclude_from_output := 'N';
613 END IF;
614 END format_mmref_address; --End of Procedure Validate_address
615
619 p_name IN varchar2,
616 --Overloaded format_mmref_address procedure for Bug#9356178
617
618 PROCEDURE format_mmref_address(
620 p_locality_company_id IN varchar2,
621 p_emp_number IN varchar2,
622 p_address_line_1 IN varchar2,
623 p_address_line_2 IN varchar2,
624 p_address_line_3 IN varchar2,
625 p_town_or_city IN varchar2,
626 p_state IN varchar2,
627 p_postal_code IN varchar2,
628 p_country IN varchar2,
629 p_region_1 IN varchar2,
630 p_region_2 IN varchar2,
631 p_phone_number IN varchar2,
632 p_valid_address IN varchar2,
633 p_item_name IN varchar2,
634 p_report_type IN varchar2,
635 p_record_name IN varchar2,
636 p_validate IN varchar2,
637 p_local_code IN varchar2,
638 p_exclude_from_output OUT nocopy varchar2,
639 sp_out_1 IN OUT nocopy varchar2,
640 sp_out_2 IN OUT nocopy varchar2,
641 sp_out_3 IN OUT nocopy varchar2,
642 sp_out_4 IN OUT nocopy varchar2,
643 sp_out_5 IN OUT nocopy varchar2,
644 sp_out_6 IN OUT nocopy varchar2,
645 sp_out_7 IN OUT nocopy varchar2,
646 sp_out_8 IN OUT nocopy varchar2,
647 sp_out_9 IN OUT nocopy varchar2,
648 sp_out_10 IN OUT nocopy varchar2 ) IS
649 --
650 TYPE message_columns IS RECORD(
651 p_mesg_description varchar2(100),
652 p_mesg_value varchar2(100),
653 p_output_value varchar2(100));
654 message_parameter_rec message_columns;
655 TYPE message_parameter_record IS TABLE OF message_parameter_rec%TYPE
656 INDEX BY BINARY_INTEGER;
657 message_record message_parameter_record;
658
659 l_level varchar2(1);
660 l_mesg_name varchar2(50);
661 l_name_or_number varchar2(50);
662 l_err boolean := FALSE;
663 l_hyphen_position number(10);
664 c_item_name varchar2(100);
665 l_name varchar2(100);
666 l_location_addr varchar2(100);
667 l_delivery_addr varchar2(100);
668 l_State varchar2(100);
669 l_city varchar2(100);
670 l_phone_number varchar2(100);
671
672 BEGIN
673 c_item_name := p_item_name;
674 l_name := rpad(upper(substr(nvl(p_name,lpad(' ',57)),1,57)),57);
675 l_location_addr := nvl(rpad(replace(replace(upper(substr(ltrim
676 (p_address_line_2 ||' '||p_address_line_3), 1, 22))
677 ,',','_'),''''),22) ,lpad(' ',22));
678 l_delivery_addr := nvl(rpad(replace(replace(upper(substr(ltrim(
679 p_address_line_1),1,22)),',','_'),''''),22),lpad(' ',22));
680 l_State := upper(rpad(substr(p_state,1,2),2));
681 l_city := nvl(upper(rpad(substr(p_town_or_city, 1, 22), 22)),
682 lpad(' ',22));
683 -- Format for Valid Address
684 IF p_valid_address = 'Y' THEN
685 --{
686 hr_utility.trace('Valid Address found ');
687 hr_utility.trace('Location address '||l_location_addr);
688 hr_utility.trace('Delivery address '||l_delivery_addr);
689 hr_utility.trace('town_or_city '||l_city);
690 hr_utility.trace('postal_code '||p_postal_code);
691 hr_utility.trace('State '||l_state);
692 hr_utility.trace('p_country '||p_country);
693 hr_utility.trace('phone_number '||p_phone_number);
694
695 IF c_item_name = 'EE_ADDRESS' THEN
696 l_level := 'A';
697 l_mesg_name := 'PAY_INVALID_EE_FORMAT';
698 l_name_or_number := p_emp_number;
699 ELSIF c_item_name = 'ER_ADDRESS' THEN
700 l_level := 'P';
701 l_mesg_name := 'PAY_INVALID_ER_FORMAT';
702 l_name_or_number := substr(p_name,1,50);
703 END IF;
704
705 message_record(1).p_mesg_description:='Invalid address.Address Line1 is null';
706 message_record(2).p_mesg_description:='Invalid address.City is null';
707 message_record(3).p_mesg_description:='Invalid address.State is null';
708 message_record(4).p_mesg_description:='Invalid address.Zip is null';
709 message_record(1).p_mesg_value:= l_delivery_addr;
710 message_record(2).p_mesg_value:= l_city;
711 message_record(3).p_mesg_value:= l_state;
712 message_record(4).p_mesg_value:= p_postal_code;
713
714 FOR i in 1..4 LOOP
715 IF message_record(i).p_mesg_value IS NULL THEN
716 pay_core_utils.push_message(801,l_mesg_name,l_level);
717 pay_core_utils.push_token('record_name', p_record_name);
718 pay_core_utils.push_token('name_or_number', l_name_or_number);
719 pay_core_utils.push_token('description',
720 message_record(i).p_mesg_description);
721 l_err:=TRUE;
722 END IF;
723 END LOOP;
724
725 sp_out_1 := l_location_addr;
726 sp_out_2 := l_delivery_addr;
727 sp_out_3 := l_city;
728
729 IF (p_country = 'US' OR p_country IS NULL )THEN
730 sp_out_9:= lpad(' ',2);
731 IF p_region_2 IS NOT NULL THEN
732 sp_out_4 := l_state; --State abbreviation
736 sp_out_7 := lpad(' ',23);
733 sp_out_7 := lpad(' ',23); --foreign state/province
734 ELSE --The region is null.
735 sp_out_4 := lpad(' ',2);
737 END IF;
738 ELSE -- country is not US
739 sp_out_4 := lpad(' ',2);
740 /* Bug:2133985 foreign state/province*/
741 sp_out_7 := upper(rpad(substr(nvl(p_region_1,' '),1,23),23));
742 sp_out_9:= upper(rpad(substr(p_country,1,2),2));
743 END IF;
744
745 /* See if the zip code has a zip code extension ie. contains a hyphen */
746
747 IF p_postal_code IS NOT NULL THEN
748 --{
749 l_hyphen_position := instr(p_postal_code, '-');
750
751 /* sp_out_5: zip code Len: 5
752 sp_out_6: zip code extension Len: 4
753 sp_out_8: foreign postal_code Len: 15 */
754
755 IF ( (p_country = 'US') OR ( p_country IS NULL ) ) THEN
756 IF l_hyphen_position = 0 THEN
757 sp_out_5:= upper(rpad(substr(p_postal_code,1,5),5));
758 sp_out_6 := lpad(' ', 4);
759 ELSE
760 sp_out_5:= upper(rpad(substr(substr
761 (p_postal_code,1,l_hyphen_position-1),1,5),5));
762 sp_out_6 := upper(rpad(substr(
763 p_postal_code,l_hyphen_position+1,4),4));
764 END IF;
765 sp_out_8:= lpad(' ',15);
766 ELSE /* ( (l_country = 'US') OR ( l_country IS NULL ) ) */
767 sp_out_5:= lpad(' ',5); --zip
768 sp_out_6:= lpad(' ', 4); --extension
769 sp_out_8:= upper(rpad(substr(p_postal_code,1,15),15)); --foreign zip
770 END IF;
771 --}
772 ELSE /* l_postal_code IS NULL.*/
773 --{
774 sp_out_5:= lpad(' ',5); --zip
775 sp_out_8:= lpad(' ',15); -- foreign zip
776 sp_out_6:= lpad(' ', 4); --extension
777
778 hr_utility.trace('Zip or Postal Code is null');
779 --}
780 END IF;
781 IF ((p_item_name = 'ER_ADDRESS') OR ( p_item_name = 'CR_ADDRESS')) THEN
782 sp_out_10:= p_name;
783 hr_utility.trace('Organization Name = '||p_name);
784 /* Locality_Company_Id */
785 IF ((p_item_name = 'ER_ADDRESS') and (p_local_code = 'PHILA')) THEN
786 sp_out_8:= lpad(NVL(p_locality_company_id,' '),15);
787 END IF;
788 ELSIF p_item_name = 'EE_ADDRESS' THEN
789 sp_out_10:= pay_us_reporting_utils_pkg.Character_check(p_emp_number);
790 END IF;
791 --}
792 --
793 -- when address is Invalid
794 --
795 ELSE
796 --{
797 IF p_item_name IN ('EE_ADDRESS',
798 'ER_ADDRESS',
799 'CR_ADDRESS') THEN
800 sp_out_1:=lpad(' ',22);
801 sp_out_2:=lpad(' ',22);
802 sp_out_3:=lpad(' ',22);
803 sp_out_4:=lpad(' ',2);
804 sp_out_5:=lpad(' ',5);
805 sp_out_6:=lpad(' ',9);
806 sp_out_7:=lpad(' ',23);
807 sp_out_8:=lpad(' ',15);
808 sp_out_9:=lpad(' ',2);
809 sp_out_10:=lpad(' ',57);
810 END IF;
811 IF ( (p_item_name = 'ER_ADDRESS')OR
812 (p_item_name = 'EE_ADDRESS')
813 ) THEN
814 l_err :=TRUE;
815 END IF;
816 --}
817 END IF; --p_valid_address
818
819 l_phone_number := p_phone_number;
820
821 l_phone_number:= replace(p_phone_number,'-',''); /*To remove the '-' entered in Phone Number*/
822
823 l_phone_number:= replace(pay_us_reporting_utils_pkg.Character_check(l_phone_number),' ',''); /*To remove the Special Characters*/
824
825 sp_out_6:= sp_out_6||'|'||nvl(l_phone_number,'0000000000'); --Phone Number is tagged to ZipCode extension to avoid new variable creation
826 --It is done only for FLSQWL usage and will be removed from this
827 --variable once value is passed to FL_XML_EMPLOYER_SQWL formula
828 --The zip code extension and phone number are separeted by Pipe | symbol
829
830 hr_utility.trace('location address '||sp_out_1);
831 hr_utility.trace('delivery address '||sp_out_2);
832 hr_utility.trace('City '||sp_out_3);
833 hr_utility.trace('State '||sp_out_4);
834 hr_utility.trace('Zip '||sp_out_5);
835 hr_utility.trace('Zip Code Extension '||substr(sp_out_6,1,4));
836 hr_utility.trace('Phone Number '||substr(sp_out_6,5));
837 hr_utility.trace('Foreign State/Province '||sp_out_7);
838 hr_utility.trace('Foreign Zip '||sp_out_8);
839 hr_utility.trace('Country '||sp_out_9);
840 IF (p_item_name = 'ER_ADDRESS') THEN
841 hr_utility.trace('Organization Name '||sp_out_10);
842 ELSE
843 hr_utility.trace('Employee Number '||sp_out_10);
844 END IF;
845 --
846 -- Check to include or exclude record on the basis of validity of address
847 --
848 IF p_validate = 'Y' THEN
849 IF l_err THEN
850 p_exclude_from_output := 'Y';
851 hr_utility.trace('p_validate is Y .error '||p_exclude_from_output);
852 END IF;
853 END IF;
854 IF p_exclude_from_output IS NULL THEN
855 p_exclude_from_output := 'N';
856 END IF;
860 --
857 END format_mmref_address; --End of Overloaded format_mmref_address
858
859 -- Formatting RA record for W2 reporting
861 /*--------------------- Parameter mapping Starts. ----------------------
862 Record Identifier, --> p_input_1
863 Submitter''s Employer Identification Number (EIN), --> p_input_2
864 Personal Identification Number (PIN) --> p_input_3,
865 Resub Indicator --> p_input_4,
866 -- This is fix for bug # 2510920 to rename TLCN to WFID
867 Resub WFID --> p_input_5,
868 Software Code --> p_input_6,
869 Company Name --> p_input_7,
870 Location Address --> p_input_8,
871 Delivery Address --> p_input_9,
872 City --> p_input_10,
873 State Abbreviation --> p_input_11,
874 Zip Code --> p_input_12,
875 Zip Code Extension --> p_input_13,
876 Foreign State / Province --> p_input_14,
877 Foreign Postal Code --> p_input_15,
878 Country Code --> p_input_16,
879 Submitter Name --> p_input_17,
880 Location Address --> p_input_18,
881 Delivery Address --> p_input_19,
882 City --> p_input_20,
883 State Abbreviation --> p_input_21,
884 Zip Code --> p_input_22,
885 Zip Code Extension --> p_input_23,
886 Foreign State / Province --> p_input_24,
887 Foreing Postal Code --> p_input_25,
888 Country Code --> p_input_26,
889 Contact Name --> p_input_27,
890 Contact Phone Number --> p_input_28,
891 Contact Phone Extension --> p_input_29,
892 Contact E-Mail --> p_input_30,
893 Blank,Contact FAX --> p_input_31,
894 Preferred Method Of Problem Notification Code --> p_input_32,
895 Preparer Code --> p_input_33,
896 ------------------------ Parameter mapping Ends. -------------------------
897 */
898
899 FUNCTION format_W2_RA_record(
900 p_effective_date IN varchar2,
901 p_report_type IN varchar2,
902 p_format IN varchar2,
903 p_report_qualifier IN varchar2,
904 p_record_name IN varchar2,
905 p_input_1 IN varchar2,
906 p_input_2 IN varchar2,
907 p_input_3 IN varchar2,
908 p_input_4 IN varchar2,
909 p_input_5 IN varchar2,
910 p_input_6 IN varchar2,
911 p_input_7 IN varchar2,
912 p_input_8 IN varchar2,
913 p_input_9 IN varchar2,
914 p_input_10 IN varchar2,
915 p_input_11 IN varchar2,
916 p_input_12 IN varchar2,
917 p_input_13 IN varchar2,
918 p_input_14 IN varchar2,
919 p_input_15 IN varchar2,
920 p_input_16 IN varchar2,
921 p_input_17 IN varchar2,
922 p_input_18 IN varchar2,
923 p_input_19 IN varchar2,
924 p_input_20 IN varchar2,
925 p_input_21 IN varchar2,
926 p_input_22 IN varchar2,
927 p_input_23 IN varchar2,
928 p_input_24 IN varchar2,
929 p_input_25 IN varchar2,
930 p_input_26 IN varchar2,
931 p_input_27 IN varchar2,
932 p_input_28 IN varchar2,
933 p_input_29 IN varchar2,
934 p_input_30 IN varchar2,
935 p_input_31 IN varchar2,
936 p_input_32 IN varchar2,
937 p_input_33 IN varchar2,
938 p_input_34 IN varchar2,
939 p_input_35 IN varchar2,
940 p_input_36 IN varchar2,
941 p_input_37 IN varchar2,
942 p_input_38 IN varchar2,
943 p_input_39 IN varchar2,
944 p_input_40 IN varchar2,
945 p_validate IN varchar2,
946 p_exclude_from_output OUT nocopy varchar2,
947 sp_out_1 OUT nocopy varchar2,
948 sp_out_2 OUT nocopy varchar2,
949 sp_out_3 OUT nocopy varchar2,
950 sp_out_4 OUT nocopy varchar2,
951 sp_out_5 OUT nocopy varchar2,
955 IS
952 ret_str_len OUT nocopy number,
953 p_error OUT nocopy boolean
954 ) RETURN VARCHAR2
956 l_agent_indicator varchar2(1);
957 l_emp_ein varchar2(100);
958 l_agent_ein varchar2(100);
959 l_other_ein varchar2(100);
960 l_term_indicator varchar2(1);
961 l_exclude_from_output_chk boolean;
962 l_input_8 varchar2(50);
963 l_bus_tax_acct_number varchar2(50);
964 l_rep_qtr varchar2(300);
965 l_rep_prd varchar2(300);
966 l_end_of_rec varchar2(20);
967 return_value varchar2(32767);
968 l_pin varchar2(50);
969 l_pblm_code varchar2(1);
970 l_preparer_code varchar2(1);
971 p_end_of_rec varchar2(20) :=
972 fnd_global.local_chr(13)||fnd_global.local_chr(10);
973 r_input_1 varchar2(300);
974 r_input_2 varchar2(300);
975 r_input_3 varchar2(300);
976 r_input_4 varchar2(300);
977 r_input_5 varchar2(300);
978 r_input_6 varchar2(300);
979 r_input_7 varchar2(300);
980 r_input_8 varchar2(300);
981 r_input_9 varchar2(300);
982 r_input_10 varchar2(300);
983 r_input_11 varchar2(300);
984 r_input_12 varchar2(300);
985 r_input_13 varchar2(300);
986 r_input_14 varchar2(300);
987 r_input_15 varchar2(300);
988 r_input_16 varchar2(300);
989 r_input_17 varchar2(300);
990 r_input_18 varchar2(300);
991 r_input_19 varchar2(300);
992 r_input_20 varchar2(300);
993 r_input_21 varchar2(300);
994 r_input_22 varchar2(300);
995 r_input_23 varchar2(300);
996 r_input_24 varchar2(300);
997 r_input_25 varchar2(300);
998 r_input_26 varchar2(300);
999 r_input_27 varchar2(300);
1000 r_input_28 varchar2(300);
1001 r_input_29 varchar2(300);
1002 r_input_30 varchar2(300);
1003 r_input_31 varchar2(300);
1004 r_input_32 varchar2(300);
1005 r_input_33 varchar2(300);
1006 r_input_34 varchar2(300);
1007 r_input_35 varchar2(300);
1008 r_input_36 varchar2(300);
1009 r_input_37 varchar2(300);
1010 r_input_38 varchar2(300);
1011 r_input_39 varchar2(300);
1012
1013 BEGIN
1014 hr_utility.trace('RA Record Formatting started ');
1015 hr_utility.trace(' Format_W2_RA_Record Begin for Company '|| p_input_7);
1016 -- Initializing local variables with parameter value
1017 --{
1018 r_input_2 := p_input_2;
1019 r_input_3 := p_input_3;
1020 r_input_4 := p_input_4;
1021 r_input_5 := p_input_5;
1022 r_input_6 := p_input_6;
1023 r_input_7 := p_input_7;
1024 r_input_8 := p_input_8;
1025 r_input_9 := p_input_9;
1026 r_input_10 := p_input_10;
1027 r_input_11 := p_input_11;
1028 r_input_12 := p_input_12;
1029 r_input_13 := p_input_13;
1030 r_input_14 := p_input_14;
1031 r_input_15 := p_input_15;
1032 r_input_16 := p_input_16;
1033 r_input_17 := p_input_17;
1034 r_input_18 := p_input_18;
1035 r_input_19 := p_input_19;
1036 r_input_20 := p_input_20;
1037 r_input_21 := p_input_21;
1038 r_input_22 := p_input_22;
1039 r_input_23 := p_input_23;
1040 r_input_24 := p_input_24;
1041 r_input_25 := p_input_25;
1042 r_input_26 := p_input_26;
1043 r_input_27 := p_input_27;
1044 r_input_28 := p_input_28;
1045 r_input_29 := p_input_29;
1046 r_input_30 := p_input_30;
1047 r_input_31 := p_input_31;
1048 r_input_32 := p_input_32;
1049 r_input_33 := p_input_33;
1050 r_input_34 := p_input_34;
1051 r_input_35 := p_input_35;
1052 r_input_36 := p_input_36;
1053 r_input_37 := p_input_37;
1054 r_input_38 := p_input_38;
1055 r_input_39 := p_input_39;
1056 --}
1057 -- Validation Starts
1058 -- EIN Validation
1059 IF p_input_40 = 'FLAT' THEN
1060 l_emp_ein :=
1061 pay_us_reporting_utils_pkg.data_validation(p_effective_date,
1062 p_report_type,
1063 p_format,
1064 p_report_qualifier,
1065 p_record_name,
1066 'EIN',
1067 p_input_2,
1068 'Submitters EIN',
1069 p_input_17,
1070 null,
1071 p_validate,
1072 p_exclude_from_output,
1073 sp_out_1,
1074 sp_out_2);
1075
1076 IF p_exclude_from_output = 'Y' THEN
1077 l_exclude_from_output_chk := TRUE;
1078 END IF;
1079 hr_utility.trace('Valid EIN '||l_emp_ein);
1080 -- Validation Ends
1081 --
1082 -- Formatiing Starts
1083
1084 /* Pos:12 - 216 blank for PA. */
1085 IF (p_report_qualifier = 'PA')
1089 l_pin := lpad(' ',17);
1086 /* OR (p_report_qualifier = 'LA')) Modified for the bug 16339837 */
1087 THEN
1088 --{
1090 r_input_4 := lpad(' ',1);
1091 r_input_5 := lpad(' ',6);
1092 r_input_6 := lpad(' ',2);
1093 r_input_7 := lpad(' ',57);
1094 r_input_8 := lpad(' ',22);
1095 r_input_9 := lpad(' ',22);
1096 r_input_10 := lpad(' ',22);
1097 r_input_11 := lpad(' ',2);
1098 r_input_12 := lpad(' ',5);
1099 r_input_13 := lpad(' ',4);
1100 r_input_14 := lpad(' ',23);
1101 r_input_15 := lpad(' ',15);
1102 r_input_16 := lpad(' ',2);
1103 r_input_24 := lpad(' ',23);
1104 r_input_25 := lpad(' ',15);
1105 r_input_26 := lpad(' ',2);
1106 --}
1107 ELSIF p_report_qualifier = 'MA' THEN
1108 --{
1109 l_pin := lpad(' ',17);
1110 r_input_5 := lpad(' ',6);
1111 r_input_6 := lpad(' ',2);
1112 r_input_14 := lpad(' ',23);
1113 r_input_15 := lpad(' ',15);
1114 r_input_16 := lpad(' ',2);
1115 r_input_24 := lpad(' ',23);
1116 r_input_25 := lpad(' ',15);
1117 r_input_26 := lpad(' ',2);
1118 --}
1119 ELSIF p_report_qualifier = 'CT' THEN
1120 --{
1121 l_pin := lpad(' ',17);
1122 r_input_5 := lpad(' ',6);
1123 r_input_6 := lpad(' ',2);
1124 r_input_4 := lpad(' ',1);/* Bug: 2145032 */
1125 --}
1126 ELSIF --(( p_report_qualifier = 'PA_PHILA') OR
1127 -- ( p_report_qualifier = 'MO_STLOU')) THEN
1128 p_report_qualifier = 'MO_STLOU' THEN /* 7579598 */
1129
1130 l_pin := lpad(' ',17) ; -- Bug 4391218
1131
1132 /* 13408243 - Start */
1133 ELSIF p_report_qualifier = 'PA_1099R' THEN
1134 --{
1135 l_pin := rpad(substr(nvl(p_input_3,' '),1,8),17);
1136 --}
1137 /* 13408243 - End */
1138
1139 ELSE
1140 --{
1141 /* Bug 4391218 Pos: 12 - 19 (8 characters) */
1142 l_pin := rpad(substr(nvl(p_input_3,' '),1,8),17);
1143 hr_utility.trace(' l_pin = '||l_pin);
1144 --}
1145 END IF;
1146 /*6330489*/
1147 -- IF p_report_qualifier not in ('MO_KNSAS','MO_STLOU','OH_CCAAA','OH_DAYTO','OH_RTCCA','PA_PHILA')
1148 IF p_report_qualifier not in ('MO_KNSAS','MO_STLOU','OH_CCAAA','OH_DAYTO','OH_RTCCA') /*7579598*/
1149 THEN
1150 l_pin := rpad((rpad(substr(nvl(p_input_3 ,' '),1,8),8,' ') || '1334'),17);
1151 END IF ;
1152
1153 IF p_report_qualifier = 'IN' THEN
1154 /* 6684920 */
1155 r_input_14 := lpad(' ',23);
1156 r_input_15 := lpad(' ',15);
1157 r_input_16 := lpad(' ',2);
1158 /* r_input_17 := lpad(' ',57);
1159 r_input_18 := lpad(' ',22);
1160 r_input_19 := lpad(' ',22);
1161 r_input_20 := lpad(' ',22);
1162 r_input_21 := lpad(' ',2);
1163 r_input_22 := lpad(' ',5);
1164 r_input_23 := lpad(' ',5);
1165 r_input_24 := lpad(' ',23);
1166 r_input_25 := lpad(' ',15);
1167 r_input_26 := lpad(' ',2);
1168 r_input_27 := lpad(' ',27);
1169 r_input_28 := lpad(' ',15);
1170 r_input_29 := lpad(' ',5);
1171 r_input_30 := lpad(' ',40);
1172 r_input_31 := lpad(' ',10);
1173 r_input_32 := lpad(' ',1);
1174 r_input_33 := lpad(' ',1); */
1175 /* 7569563 */
1176 END IF;
1177 --Commented the below code for the Bug 14799506, RA 499 is no longer required.
1178
1179 /* Checking for preferred method of problem notification code which is
1180 1=email, 2=postal service
1181 IF ((p_input_32 = '1' ) OR
1182 (p_input_32 = '2' )
1183 )
1184 THEN
1185 hr_utility.trace('Preferred method of code is correct. it is '||p_input_32);
1186 l_pblm_code:= p_input_32;
1187 ELSE
1188 hr_utility.trace('Preferred method of code is incorrect. it is '||p_input_32);
1189 l_pblm_code:= lpad('2',1);
1190 END IF;
1191 -- Bug # 2682428
1192 --
1193 -- commented to fix bug # 4016439
1194 /*IF (p_report_qualifier = 'OH_DAYTO') THEN
1195 l_pblm_code:= '2';
1196 END IF;/
1197 -- Bug # 2736928
1198 --
1199 IF (p_report_qualifier = 'PR') THEN
1200 l_pblm_code:= '2';
1201 END IF;
1202 */
1203
1204 --Changes for the Bug 16173051
1205 IF (p_report_qualifier = 'PR') THEN
1206 l_pblm_code:= '2';
1207 ELSE
1208 l_pblm_code := ' '; --RA 499 is blank filled
1209 END IF;
1210
1211 If( (p_input_33 = 'A' )OR
1212 (p_input_33 = 'S' )OR
1213 (p_input_33 = 'L' )OR
1214 (p_input_33 = 'P' )OR
1215 (p_input_33 = 'O' )) THEN
1216 l_preparer_code:= p_input_33;
1217 hr_utility.trace('l_preparer_code is correct. it is '||p_input_33);
1218 ELSE
1219 l_preparer_code:= lpad(' ',1);
1220 hr_utility.trace('l_preparer_code is incorrect. it is '||p_input_33);
1221 END IF;
1222
1223 /* fix for bug # 2680189 */
1224 /* IF (p_report_qualifier = 'PA_PHILA') THEN
1225 -- r_input_3 := ' ';
1226 r_input_4 := ' ';
1227 r_input_5 := ' ';
1228 r_input_6 := ' ';
1229 r_input_7 := ' ';
1230 END IF; */
1231
1232 /* Fix for Bug # 2680070 and 2680189 */
1233 -- IF ((p_report_qualifier = 'MO_STLOU') OR
1234 -- (p_report_qualifier = 'PA_PHILA')) THEN
1238 r_input_9 := ' ';
1235 IF ((p_report_qualifier = 'MO_STLOU')) THEN
1236 --{
1237 r_input_8 := ' ';
1239 r_input_10 := ' ';
1240 r_input_11 := ' ';
1241 r_input_12 := ' ';
1242 r_input_13 := ' ';
1243 r_input_14 := ' ';
1244 r_input_15 := ' ';
1245 r_input_16 := ' ';
1246 --}
1247 END IF; /*7579598*/
1248
1249 /* Fix for Bug # 2680070 and #3130999 and # 3292989*/
1250 IF (p_report_qualifier = 'MO_STLOU') THEN
1251 l_pin := lpad(' ',17);
1252 r_input_4 := ' ';
1253 r_input_5 := ' ';
1254 r_input_6 := ' ';
1255 r_input_18 := ' ';
1256 r_input_19 := ' ';
1257 r_input_20 := ' ';
1258 r_input_21 := ' ';
1259 r_input_22 := ' ';
1260 r_input_23 := ' ';
1261 r_input_24 := ' ';
1262 r_input_25 := ' ';
1263 r_input_26 := ' ';
1264 r_input_27 := ' ';
1265 r_input_28 := ' ';
1266 r_input_29 := ' ';
1267 r_input_30 := ' ';
1268 r_input_31 := ' ';
1269 END IF;
1270
1271 /*Commented for the Bug 16339837
1272 -- Bug # 3293083
1273 IF (p_report_qualifier = 'LA') THEN
1274 r_input_18 := ' ';
1275 r_input_24 := ' ';
1276 r_input_25 := ' ';
1277 r_input_26 := ' ';
1278 r_input_27 := ' ';
1279 r_input_28 := ' ';
1280 r_input_29 := ' ';
1281 r_input_30 := ' ';
1282 r_input_31 := ' ';
1283 END IF;
1284 */
1285 /* Fix for Bug # 2680070 */
1286 IF p_report_qualifier = 'MO_STLOU' THEN
1287 r_input_17 := ' ';
1288 END IF;
1289
1290 IF ((p_report_qualifier = 'MA') OR
1291 (p_report_qualifier = 'PA') OR
1292 -- (p_report_qualifier = 'PA_PHILA') OR -- fix for bug # 2680189
1293 (p_report_qualifier = 'CT') OR
1294 --(p_report_qualifier = 'LA') OR Commented for the Bug 16339837 -- fix for bug # 3109990
1295 (p_report_qualifier = 'MO_STLOU')) THEN -- OR /* 7569563 */
1296 -- (p_report_qualifier = 'IN')) THEN /* 6684920 */
1297 --{
1298 l_pblm_code := lpad(' ',1);
1299 l_preparer_code := lpad(' ',1);
1300 --}
1301 END IF;
1302
1303 IF p_report_qualifier = 'MD' then /* 7572352 */
1304 r_input_4 := lpad('0',1);
1305 r_input_5 := lpad(' ',6);
1306 END IF ;
1307
1308 -- Formatiing Ends
1309 --
1310
1311 -- RA Record of Flat Type
1312 --
1313 return_value:='RA'
1314 ||l_emp_ein||l_pin
1315 ||rpad(substr(nvl(r_input_4,'0'),1,1),1)
1316 ||rpad(substr(nvl(r_input_5,' '),1,6),6)
1317 ||rpad(substr(nvl(r_input_6,' '),1,2),2)
1318 ||rpad(substr(nvl(r_input_7,' '),1,57),57)
1319 ||rpad(substr(nvl(r_input_8,' '),1,22),22)
1320 ||rpad(substr(nvl(r_input_9,' '),1,22),22)
1321 ||rpad(substr(nvl(r_input_10,' '),1,22),22)
1322 ||rpad(substr(nvl(r_input_11,' '),1,2),2)
1323 ||rpad(substr(nvl(r_input_12,' '),1,5),5)
1324 ||rpad(substr(nvl(r_input_13,' '),1,4),9)
1325 ||rpad(substr(nvl(r_input_14,' '),1,23),23)
1326 ||rpad(substr(nvl(r_input_15,' '),1,15),15)
1327 ||rpad(substr(nvl(r_input_16,' '),1,2),2)
1328 ||rpad(substr(nvl(upper(r_input_17),' '),1,57),57)
1329 ||rpad(substr(nvl(r_input_18,' '),1,22),22)
1330 ||rpad(substr(nvl(r_input_19,' '),1,22),22)
1331 ||rpad(substr(nvl(r_input_20,' '),1,22),22)
1332 ||rpad(substr(nvl(r_input_21,' '),1,2),2)
1333 ||rpad(substr(nvl(r_input_22,' '),1,5),5)
1334 ||rpad(substr(nvl(r_input_23,' '),1,4),9)
1335 ||rpad(substr(nvl(r_input_24,' '),1,23),23)
1336 ||rpad(substr(nvl(r_input_25,' '),1,15),15)
1337 ||rpad(substr(nvl(r_input_26,' '),1,2),2)
1338 ||rpad(substr(nvl(r_input_27,' '),1,27),27)
1339 ||rpad(substr(nvl(r_input_28,' '),1,15),15)
1340 ||rpad(substr(nvl(r_input_29,' '),1,5),8)
1341 ||rpad(substr(nvl(r_input_30,' '),1,43),43)
1342 ||rpad(substr(nvl(r_input_31,' '),1,10),10)
1343 ||l_pblm_code
1344 ||l_preparer_code
1345 ||lpad(' ',12)
1346 ||l_end_of_rec ;
1347 --
1348 hr_utility.trace('RA Record of FLAT Type -----');
1349 ret_str_len:=length(return_value);
1350
1351 ELSIF p_input_40 = 'CSV' THEN
1352 hr_utility.trace('RA Record of CSV Type formatting Starts ----');
1353 return_value:='RA'||','||p_input_2||','||p_input_3||','||lpad(' ',9) -- Bug# 4391218
1354 ||','||rpad(substr(nvl(p_input_4,'0'),1,1),1)
1355 ||','||rpad(substr(nvl(p_input_5,' '),1,6),6)
1356 ||','||rpad(substr(nvl(p_input_6,' '),1,2),2)
1357 ||','||rpad(substr(nvl(p_input_7,' '),1,57),57)
1358 ||','||rpad(substr(nvl(p_input_8,' '),1,22),22)
1359 ||','||rpad(substr(nvl(p_input_9,' '),1,22),22)
1360 ||','||rpad(substr(nvl(p_input_10,' '),1,22),22)
1361 ||','||rpad(substr(nvl(p_input_11,' '),1,2),2)
1362 ||','||rpad(substr(nvl(p_input_12,' '),1,5),5)
1363 ||','||rpad(substr(nvl(p_input_13,' '),1,4),4)
1367 ||','||rpad(substr(nvl(p_input_16,' '),1,2),2)
1364 ||','||lpad(' ',5)
1365 ||','||rpad(substr(nvl(p_input_14,' '),1,23),23)
1366 ||','||rpad(substr(nvl(p_input_15,' '),1,15),15)
1368 ||','||rpad(substr(upper(p_input_17),1,57),57)
1369 ||','||rpad(substr(nvl(p_input_18,' '),1,22),22)
1370 ||','||rpad(substr(nvl(p_input_19,' '),1,22),22)
1371 ||','||rpad(substr(nvl(p_input_20,' '),1,22),22)
1372 ||','||rpad(substr(nvl(p_input_21,' '),1,2),2)
1373 ||','||rpad(substr(nvl(p_input_22,' '),1,5),5)
1374 ||','||rpad(substr(nvl(p_input_23,' '),1,4),4)
1375 ||','||lpad(' ',5)
1376 ||','||rpad(substr(nvl(p_input_24,' '),1,23),23)
1377 ||','||rpad(substr(nvl(p_input_25,' '),1,15),15)
1378 ||','||rpad(substr(nvl(p_input_26,' '),1,2),2)
1379 ||','||rpad(substr(nvl(p_input_27,' '),1,27),27)
1380 ||','||rpad(substr(nvl(p_input_28,' '),1,15),15)
1381 ||','||rpad(substr(nvl(p_input_29,' '),1,5),5)
1382 ||','||lpad(' ',3)
1383 ||','||rpad(substr(nvl(p_input_30,' '),1,40),40)
1384 ||','||lpad(' ',3)
1385 ||','||rpad(substr(nvl(p_input_31,' '),1,10),10)
1386 ||','||p_input_32
1387 ||','||p_input_33
1388 ||','||lpad(' ',12);
1389 hr_utility.trace(' RA Record of CSV Type formatting Ends----');
1390 hr_utility.trace(return_value);
1391 END IF;
1392 p_error := l_exclude_from_output_chk;
1393 ret_str_len:=length(return_value);
1394 return return_value;
1395 END format_W2_RA_record; -- End of formatting W2 RA Record
1396
1397 --vmkulkar
1398 -- Formatting of RV Record Start
1399 FUNCTION format_W2_RV_record(
1400 p_effective_date IN varchar2,
1401 p_report_type IN varchar2,
1402 p_format IN varchar2,
1403 p_report_qualifier IN varchar2,
1404 p_record_name IN varchar2,
1405 p_input_1 IN varchar2,
1406 p_input_2 IN varchar2,
1407 p_input_3 IN varchar2,
1408 p_input_4 IN varchar2,
1409 p_input_5 IN varchar2,
1410 p_input_6 IN varchar2,
1411 p_input_7 IN varchar2,
1412 p_input_8 IN varchar2,
1413 p_input_9 IN varchar2,
1414 p_input_10 IN varchar2,
1415 p_input_11 IN varchar2,
1416 p_input_12 IN varchar2,
1417 p_input_13 IN varchar2,
1418 p_input_14 IN varchar2,
1419 p_input_15 IN varchar2,
1420 p_input_16 IN varchar2,
1421 p_input_17 IN varchar2,
1422 p_input_18 IN varchar2,
1423 p_input_19 IN varchar2,
1424 p_input_20 IN varchar2,
1425 p_input_21 IN varchar2,
1426 p_input_22 IN varchar2,
1427 p_input_23 IN varchar2,
1428 p_input_24 IN varchar2,
1429 p_input_25 IN varchar2,
1430 p_input_26 IN varchar2,
1431 p_input_27 IN varchar2,
1432 p_input_28 IN varchar2,
1433 p_input_29 IN varchar2,
1434 p_input_30 IN varchar2,
1435 p_input_31 IN varchar2,
1436 p_input_32 IN varchar2,
1437 p_input_33 IN varchar2,
1438 p_input_34 IN varchar2,
1439 p_input_35 IN varchar2,
1440 p_input_36 IN varchar2,
1441 p_input_37 IN varchar2,
1442 p_input_38 IN varchar2,
1443 p_input_39 IN varchar2,
1444 p_input_40 IN varchar2,
1445 p_validate IN varchar2,
1446 p_exclude_from_output OUT nocopy varchar2,
1447 sp_out_1 OUT nocopy varchar2,
1448 sp_out_2 OUT nocopy varchar2,
1449 sp_out_3 OUT nocopy varchar2,
1450 sp_out_4 OUT nocopy varchar2,
1451 sp_out_5 OUT nocopy varchar2,
1452 ret_str_len OUT nocopy number,
1453 p_error OUT nocopy boolean
1454 ) RETURN VARCHAR2
1455 IS
1456
1457
1458 /* Specifications for PR
1459
1460 1-2 Record Identifier --> p_input_1,
1461 3-12 Employer phone number --> p_input_2,
1462 13-17 Access Code --> p_input_3,
1463 18-32 Cost of Pension or Annuity --> p_input_4,
1464 33-47 Reimbursed Expenses --> p_input_5,
1465 48-62 Contributions to Qualified Lanns --> p_input_6,
1466 63-77 Salaries under act 324 of 2004 --> p_input_7,
1467 78-92 Uncollected Social Security Tax on Tips --> p_input_8,
1468 93-107 Uncollected Medicare Tax on Tips --> p_input_9,
1472 138-512 Blank */
1469 Following vars are added as part of bug 13449377
1470 108-122 PR W2 Charitable Contributions --> p_input_10,
1471 123-137 PR W2 Contr To Save and Double Money --> p_input_11
1473
1474 /* Specifications for MD
1475
1476 1-2 Record identifier --> p_input_1
1477 3-4 State Code(24) --> p_input_2
1478 5-9 State record('MW508') --> p_input_3
1479 10-13 MW508 ER - Tax year --> p_input_4
1480 14-22 MW508 ER Id number --> p_input_5
1481 23-30 MW508 Central Registration --> p_input_6
1482 number(Tax Withholding Acct Number)
1483 31-87 MW508 ER Name --> p_input_7
1484 88-109 MW508 ER St Address --> p_input_8
1485 110-131 MW508 City --> p_input_9
1486 132-133 MW508 State --> p_input_10
1487 134-138 MW508 Zipcode --> p_input_11
1488 139-142 MW508 Zip Extension --> p_input_12
1489 143-148 MW508 ER Number of W2s --> p_input_13
1490 149-160 MW508 Total amt of taxes --> p_input_14
1491 161-172 MW508 ER Total Tax --> p_input_15
1492 173-187 MW508 ER Credits --> p_input_16
1493 185-196 MW508 ER amt tax due --> p_input_17
1494 total w/h amt due after credits
1495 197-208 MW508 ER amt balance due --> p_input_18
1496 209-220 MW508 ER amt overpayment --> p_input_19
1497 221-232 MW508 ER amt of overpayment --> p_input_20
1498 233-244 MW508 amt overpayment refunded --> p_input_21
1499 245-256 MW508 gross payroll --> p_input_22
1500 257-268 MW508 ER State pickup amt --> p_input_23
1501 269-296 ER Rep name --> p_input_24
1502 297-311 ER Rep title --> p_input_25
1503 312-319 ER Rep Date --> p_input_26
1504 320-329 ER Rep phone number --> p_input_27
1505 330-330 ER Total File Indicator "Y" --> p_input_28
1506 331-512 Blank */
1507
1508
1509
1510 r_input_1 varchar2(300);
1511 r_input_2 varchar2(300);
1512 r_input_3 varchar2(300);
1513 r_input_4 varchar2(300);
1514 r_input_5 varchar2(300);
1515 r_input_6 varchar2(300);
1516 r_input_7 varchar2(300);
1517 r_input_8 varchar2(300);
1518 r_input_9 varchar2(300);
1519 r_input_10 varchar2(300);
1520 r_input_11 varchar2(300);
1521 r_input_12 varchar2(300);
1522 r_input_13 varchar2(300);
1523 r_input_14 varchar2(300);
1524 r_input_15 varchar2(300);
1525 r_input_16 varchar2(300);
1526 r_input_17 varchar2(300);
1527 r_input_18 varchar2(300);
1528 r_input_19 varchar2(300);
1529 r_input_20 varchar2(300);
1530 r_input_21 varchar2(300);
1531 r_input_22 varchar2(300);
1532 r_input_23 varchar2(300);
1533 r_input_24 varchar2(300);
1534 r_input_25 varchar2(300);
1535 r_input_26 varchar2(300);
1536 r_input_27 varchar2(300);
1537 r_input_28 varchar2(300);
1538 r_input_29 varchar2(300);
1539 r_input_30 varchar2(300);
1540 r_input_31 varchar2(300);
1541 r_input_32 varchar2(300);
1542 r_input_33 varchar2(300);
1543 r_input_34 varchar2(300);
1544 r_input_35 varchar2(300);
1545 r_input_36 varchar2(300);
1546 r_input_37 varchar2(300);
1547 r_input_38 varchar2(300);
1548 r_input_39 varchar2(300);
1549 l_exclude_from_output_chk boolean;
1550 return_value varchar2(32767);
1551
1552
1553 BEGIN
1554 hr_utility.trace('RV Record Formatting started ');
1555 -- Initializing local variables with parameter value
1556 r_input_2 := p_input_2;
1557 r_input_3 := p_input_3;
1558 r_input_4 := p_input_4;
1559 r_input_5 := p_input_5;
1560 r_input_6 := p_input_6;
1561 r_input_7 := p_input_7;
1562 r_input_8 := p_input_8;
1563 r_input_9 := p_input_9;
1564 r_input_10 := p_input_10;
1565 r_input_11 := p_input_11;
1566 r_input_12 := p_input_12;
1567 r_input_13 := p_input_13;
1568 r_input_14 := p_input_14;
1569 r_input_15 := p_input_15;
1570 r_input_16 := p_input_16;
1571 r_input_17 := p_input_17;
1572 r_input_18 := p_input_18;
1573 r_input_19 := p_input_19;
1574 r_input_20 := p_input_20;
1575 r_input_21 := p_input_21;
1576 r_input_22 := p_input_22;
1577 r_input_23 := p_input_23;
1578 r_input_24 := p_input_24;
1579 r_input_25 := p_input_25;
1580 r_input_26 := p_input_26;
1581 r_input_27 := p_input_27;
1582 r_input_28 := p_input_28;
1583 r_input_29 := p_input_29;
1584 r_input_30 := p_input_30;
1585 r_input_31 := p_input_31;
1586 r_input_32 := p_input_32;
1587 r_input_33 := p_input_33;
1588 r_input_34 := p_input_34;
1589 r_input_35 := p_input_35;
1590 r_input_36 := p_input_36;
1591 r_input_37 := p_input_37;
1592 r_input_38 := p_input_38;
1593 r_input_39 := p_input_39;
1594
1595
1596 -- Use separate IF conditions for each report_qualifier.
1597
1598 IF p_report_qualifier = 'PR' THEN
1599
1600 r_input_2 := lpad(nvl(r_input_2,' '),10,' ');
1601 r_input_3 := lpad(nvl(substr(replace(r_input_3,' '),1,5),' '),5);
1602 r_input_4 := lpad(nvl(r_input_4,' '),15,'0');
1603 r_input_5 := lpad(nvl(r_input_5,' '),15,'0');
1604 r_input_6 := lpad(nvl(r_input_6,' '),15,'0');
1605 r_input_7 := lpad(nvl(r_input_7,' '),15,'0');
1606 r_input_8 := lpad(nvl(r_input_8,' '),15,'0');
1607 r_input_9 := lpad(nvl(r_input_9,' '),15,'0');
1611
1608 /* Following vars are added as part of bug 13449377 */
1609 r_input_10 := lpad(nvl(r_input_10,' '),15,'0');
1610 r_input_11 := lpad(nvl(r_input_11,' '),15,'0');
1612 END IF;
1613
1614 IF p_report_qualifier = 'NE' or p_report_qualifier = 'IL' THEN /* 6651399 */
1615 /* 7569151 */
1616 r_input_2 := lpad(nvl(r_input_2,'0'),7,'0');
1617 r_input_3 := lpad(nvl(r_input_3,'0'),15,'0');
1618 r_input_4 := lpad(nvl(r_input_4,'0'),15,'0');
1619
1620 END IF;
1621
1622 IF p_report_qualifier = 'IN' THEN /* 7569563 */
1623
1624 r_input_2 := lpad(nvl(r_input_2,' '),2,' ');
1625 r_input_3 := lpad(nvl(r_input_3,'0'),13,'0');
1626 r_input_4 := lpad(nvl(r_input_4,'0'),13,'0');
1627 r_input_5 := lpad(nvl(r_input_5,'0'),13,'0');
1628 -- r_input_6 := lpad(nvl(r_input_6,'0'),13,'0');
1629 r_input_6 := lpad(' ', 13); --13409513
1630
1631 END IF;
1632
1633 IF p_report_qualifier = 'ID' THEN /* 7565870 */
1634
1635 r_input_2 := lpad(replace(nvl(r_input_2,' '),'-',''),9,' ');
1636 r_input_3 := lpad(nvl(replace(translate(r_input_3,'?/:,;.'' ', '#'), '#', ''),' '),4,' ');
1637 -- # 10031479 Changes Start
1638 -- # 10100148 Added some more extra characters
1639 r_input_4 := translate(UPPER(r_input_4),' ABCDEFGHIJKLMNOPQRSTUVWXYZ-{}()[]:;"''',' '); --Removing alphabets and special characters
1640 r_input_4 := replace(pay_us_reporting_utils_pkg.Character_check(r_input_4),' ',''); --Removing special characters
1641 -- # 10031479 Changes End
1642 r_input_4 := lpad(nvl(r_input_4,'0'),9,'0');
1643 r_input_5 := lpad(nvl(r_input_5,' '),1,' ');
1644 r_input_6 := lpad(nvl(r_input_6,' '),6,' ');
1645 r_input_7 := lpad(nvl(r_input_7,'0'),11,'0');
1646 r_input_8 := lpad(nvl(r_input_8,'0'),11,'0');
1647 r_input_9 := lpad(nvl(r_input_9,'0'),11,'0');
1648
1649 if r_input_5 = 'B' then
1650 r_input_10 := lpad(nvl(r_input_10,'0'),11,'0');
1651 else
1652 r_input_10 := lpad(' ',11,' ');
1653 end if;
1654
1655 if r_input_5 = 'B' then
1656 r_input_11 := lpad(nvl(r_input_11,'0'),11,'0');
1657 else
1658 r_input_11 := lpad(' ',11,' ');
1659 end if;
1660
1661 r_input_12 := lpad(nvl(replace(r_input_12,'-',''),'0'),11,'0');
1662 r_input_13 := lpad(nvl(r_input_13,' '),1,' ');
1663 r_input_14 := lpad(nvl(r_input_14,'0'),11,'0');
1664 r_input_15 := lpad(nvl(r_input_15,'0'),11,'0');
1665 r_input_16 := lpad(nvl(replace(r_input_16,'-',''),'0'),11,'0');
1666 r_input_17 := lpad(nvl(r_input_17,' '),1,' ');
1667 r_input_18 := lpad(nvl(r_input_18,'0'),7,'0');
1668 r_input_19 := lpad(nvl(r_input_19,'0'),7,'0');
1669 r_input_20 := lpad(nvl(r_input_20,'0'),1,'0');
1670 r_input_21 := lpad(nvl(r_input_21,'0'),7,'0');
1671 r_input_22 := lpad(nvl(r_input_22,'0'),11,'0');
1672 r_input_23 := lpad(nvl(replace(r_input_23,'-',''),'0'),11,'0');
1673 r_input_24 := lpad(nvl(r_input_24,' '),1,' ');
1674
1675 END IF;
1676
1677
1678 IF p_report_qualifier = 'MD' THEN
1679
1680 r_input_4 := rpad(substr(nvl(r_input_4,' '),1,4),4);
1681 r_input_5 := rpad(substr(replace(replace(nvl(replace(p_input_5,' '),' '),'-'),'/'),1,9),9);
1682 r_input_6 := lpad(replace(replace(nvl(replace(p_input_6,' '),' '),'-'),'/'),8,'0');
1683
1684 r_input_7 := rpad(substr(nvl(upper(r_input_7),' '),1,57),57,' '); --ER Name
1685
1686 /* ER Address */
1687 r_input_8 := rpad(substr(nvl(r_input_8,' '),1,22),22,' ');
1688 r_input_9 := rpad(substr(nvl(r_input_9, ' '),1,22),22,' ');
1689 r_input_10 := rpad(substr(nvl(r_input_10,' '),1,2),2,' ');
1690 r_input_11 := rpad(substr(nvl(r_input_11,' '),1,5),5,' ');
1691 r_input_12 := rpad(substr(nvl(r_input_12,' '),1,4),4,' ');
1692
1693 r_input_13 := lpad(nvl(r_input_13,'0'),6,'0'); -- Number of RS Records
1694
1695 r_input_14 := lpad(nvl(r_input_14,'0'),12,'0');
1696 r_input_15 := lpad(nvl(r_input_15,'0'),12,'0');
1697 r_input_16 := lpad(nvl(r_input_16,'0'),12,'0');
1698 r_input_17 := lpad(nvl(r_input_17,'0'),12,'0');
1699 r_input_18 := lpad(nvl(r_input_18,'0'),12,'0');
1700 r_input_19 := lpad(nvl(r_input_19,'0'),12,'0');
1701 r_input_20 := lpad(nvl(r_input_20,'0'),12,'0');
1702 r_input_21 := lpad(nvl(r_input_21,'0'),12,'0');
1703 r_input_22 := lpad(nvl(r_input_22,'0'),12,'0');
1704 r_input_23 := lpad(nvl(r_input_23,'0'),12,'0');
1705
1706 r_input_24 := rpad(substr(nvl(upper(r_input_24),' '),1,28),28,' '); --Contact
1707 r_input_25 := rpad(nvl(r_input_25,' '),15,' '); -- Title
1708
1709 /* Date in YYYYMMDD format */
1710 r_input_26 := substr(nvl(r_input_26,' '),5,4)||substr(nvl(r_input_26,' '),1,2)||substr(nvl(r_input_26,' '),3,2);
1711 r_input_26 := rpad(nvl(r_input_26,' '),8,' '); -- Date
1712
1713 r_input_27 := rpad(nvl(r_input_27,' '),10,' '); -- Phone
1714 END IF ;
1715
1716 IF p_report_qualifier = 'NE' or p_report_qualifier = 'IL' THEN /* 6651399 */
1717 /* 7569151 */
1718 return_value :='RV'
1719 ||r_input_2
1720 ||r_input_3
1721 ||r_input_4
1722 ||lpad(' ',473);
1723
1724 END IF;
1725
1726 IF p_report_qualifier = 'IN' THEN /* 7569563 */
1727
1728 return_value :='RV'
1729 ||r_input_2
1730 ||r_input_3
1731 ||r_input_4
1732 ||r_input_5
1733 ||r_input_6
1734 ||lpad(' ', 456);
1735
1736 END IF;
1737
1738 IF p_report_qualifier = 'OR' THEN /* 9065357 */
1739
1740 /* 9435160 */
1741
1742 --10266129
1743 --r_input_4 := to_char(to_number(r_input_4)/100); -- Dropping the cents
1744
1748 ||lpad(nvl(r_input_2,'0'),7,'0')
1745 r_input_4 := to_char(to_number(r_input_4)); --Added back the cents
1746
1747 return_value :='RV'
1749 ||lpad(nvl(r_input_3,'0'),15,'0')
1750 ||lpad(nvl(r_input_4,'0'),15,'0')
1751 ||lpad(' ', 473);
1752
1753 END IF;
1754
1755 IF p_report_qualifier = 'PR' THEN
1756
1757 return_value :='RV'
1758 ||r_input_2
1759 ||r_input_3
1760 ||r_input_4
1761 ||r_input_5
1762 ||r_input_6
1763 ||r_input_7
1764 ||r_input_8
1765 ||r_input_9
1766 ||r_input_10 -- added as part of bug 13449377
1767 ||r_input_11 -- added as part of bug 13449377
1768 ||lpad(' ',375); -- bug 13449377
1769
1770 END IF;
1771
1772 IF p_report_qualifier = 'ID' Then /* 7565870 */
1773 return_value :='RV'
1774 ||r_input_2
1775 ||r_input_3
1776 ||r_input_4
1777 ||r_input_5
1778 ||r_input_6
1779 ||r_input_7
1780 ||r_input_8
1781 ||r_input_9
1782 ||r_input_10
1783 ||r_input_11
1784 ||r_input_12
1785 ||r_input_13
1786 ||r_input_14
1787 ||r_input_15
1788 ||r_input_16
1789 ||r_input_17
1790 ||r_input_18
1791 ||r_input_19
1792 ||r_input_20
1793 ||r_input_21
1794 ||r_input_22
1795 ||r_input_23
1796 ||r_input_24
1797 ||lpad(' ',335);
1798 END IF;
1799
1800
1801 IF p_report_qualifier = 'MD' THEN
1802
1803 return_value :='RV'
1804 ||r_input_2
1805 ||r_input_3
1806 ||r_input_4
1807 ||r_input_5
1808 ||r_input_6
1809 ||r_input_7
1810 ||r_input_8
1811 ||r_input_9
1812 ||r_input_10
1813 ||r_input_11
1814 ||r_input_12
1815 ||r_input_13
1816 ||r_input_14
1817 ||r_input_15
1818 ||r_input_16
1819 ||r_input_17
1820 ||r_input_18
1821 ||r_input_19
1822 ||r_input_20
1823 ||r_input_21
1824 ||r_input_22
1825 ||r_input_23
1826 ||r_input_24
1827 ||r_input_25
1828 ||r_input_26
1829 ||r_input_27
1830 ||r_input_28
1831 ||lpad(' ',166) /* 7572352 */
1832 || to_char(sysdate,'YYYYMMDD')
1833 ||to_char(systimestamp,'HH24MISSFF2');
1834
1835 END IF;
1836
1837 IF p_exclude_from_output = 'Y' THEN
1838 l_exclude_from_output_chk := TRUE;
1839 END IF;
1840
1841 p_error := l_exclude_from_output_chk;
1842 ret_str_len:=length(return_value);
1843 return return_value;
1844 END format_W2_RV_record;
1845 -- vmkulkar
1846 -- End of Function Formatting RV record
1847
1848
1849 --
1850 -- Formatting RE Record for W2 reporting
1851 --
1852 FUNCTION format_W2_RE_record(
1853 p_effective_date IN varchar2,
1854 p_report_type IN varchar2,
1855 p_format IN varchar2,
1856 p_report_qualifier IN varchar2,
1857 p_record_name IN varchar2,
1858 p_input_1 IN varchar2,
1859 p_input_2 IN varchar2,
1860 p_input_3 IN varchar2,
1861 p_input_4 IN varchar2,
1862 p_input_5 IN varchar2,
1863 p_input_6 IN varchar2,
1864 p_input_7 IN varchar2,
1865 p_input_8 IN varchar2,
1866 p_input_9 IN varchar2,
1867 p_input_10 IN varchar2,
1868 p_input_11 IN varchar2,
1869 p_input_12 IN varchar2,
1870 p_input_13 IN varchar2,
1871 p_input_14 IN varchar2,
1872 p_input_15 IN varchar2,
1873 p_input_16 IN varchar2,
1874 p_input_17 IN varchar2,
1875 p_input_18 IN varchar2,
1876 p_input_19 IN varchar2,
1877 p_input_20 IN varchar2,
1878 p_input_21 IN varchar2,
1879 p_input_22 IN varchar2,
1880 p_input_23 IN varchar2,
1881 p_input_24 IN varchar2,
1882 p_input_25 IN varchar2,
1883 p_input_26 IN varchar2,
1884 p_input_27 IN varchar2,
1885 p_input_28 IN varchar2,
1886 p_input_29 IN varchar2,
1887 p_input_30 IN varchar2,
1888 p_input_31 IN varchar2,
1889 p_input_32 IN varchar2,
1890 p_input_33 IN varchar2,
1891 p_input_34 IN varchar2,
1892 p_input_35 IN varchar2,
1893 p_input_36 IN varchar2,
1894 p_input_37 IN varchar2,
1895 p_input_38 IN varchar2,
1896 p_input_39 IN varchar2,
1897 p_input_40 IN varchar2,
1901 sp_out_2 OUT nocopy varchar2,
1898 p_validate IN varchar2,
1899 p_exclude_from_output OUT nocopy varchar2,
1900 sp_out_1 OUT nocopy varchar2,
1902 sp_out_3 OUT nocopy varchar2,
1903 sp_out_4 OUT nocopy varchar2,
1904 sp_out_5 OUT nocopy varchar2,
1905 ret_str_len OUT nocopy number,
1906 p_error OUT nocopy boolean
1907 ) RETURN VARCHAR2
1908 IS
1909 /* Record Identifier --> p_input_1,
1910 Tax Year --> p_input_2,
1911 Agent Indicator Code --> p_input_3,
1912 Employer / Agent Employer Identification Number (EIN) -->p_input_4,
1913 Agent For EIN --> p_input_5,
1914 Terminating Business Indicator --> p_input_6,
1915 Establishment Number --> p_input_7,
1916 Other EIN --> p_input_8,
1917 Employer Name --> p_input_9,
1918 Location Address --> p_input_10,
1919 Delivery Address --> p_input_11,
1920 City --> p_input_12,
1921 State Abbreviation --> p_input_13,
1922 Zip Code --> p_input_14,
1923 Zip Code Extension --> p_input_15,
1924 Blank,
1925 Foreign State / Provinc --> p_input_16
1926 Foreign Postal Code --> p_input_17,
1927 Country Code --> p_input_18,
1928 Employment Code --> p_input_19,
1929 Tax Jurisdiction Code --> p_input_20,
1930 Third Party Sick Pay Indicator --> p_input_21,
1931 Alabama Withholding Tax Acct Number (Only for AL) --> p_input_23
1932 Tax Withholding Acct No. (MD) --> p_input_24
1933 Total No. of RS Record for this Employer / GRE (MD) --> p_input_25
1934 Total Withheld Tax Reported for MD --> p_input_26
1935 Total Withheld Tax Shown on W2 (MD) --> p_input_27
1936 MW508 ER Credits (MD) --> p_input_28
1937 MW508 Amt Tax Due (MD) --> p_input_29
1938 MW508 Amt Balance Due (MD) --> p_input_30
1939 MW508 ER Amt OverPayment (MD) --> p_input_31
1940 MW508 ER Amt Credit (MD) --> p_input_32
1941 MW508 ER Amt Refunded (MD) --> p_input_33
1942 Total Gross MD Payroll for Year --> p_input_34
1943 Total State Pickup Amt (MD) --> p_input_35
1944 ER Reporting Name (MD) --> p_input_36
1945 ER Reporting Date (MD) --> p_input_37
1946 ER Reporting Phone Number (MD) --> p_input_38
1947 */
1948
1949 l_agent_indicator varchar2(1);
1950 l_emp_ein varchar2(100);
1951 l_agent_ein varchar2(100);
1952 l_other_ein varchar2(100);
1953 l_term_indicator varchar2(1);
1954 l_exclude_from_output_chk boolean;
1955 l_input_8 varchar2(50);
1956 l_bus_tax_acct_number varchar2(50);
1957 l_rep_qtr varchar2(300);
1958 l_rep_prd varchar2(300);
1959 l_end_of_rec varchar2(20);
1960 return_value varchar2(32767);
1961 /* Bug 3936924 */
1962 l_al_wh_tax_acct_no varchar2(300);
1963
1964 r_input_1 varchar2(300);
1965 r_input_2 varchar2(300);
1966 r_input_3 varchar2(300);
1967 r_input_4 varchar2(300);
1968 r_input_5 varchar2(300);
1969 r_input_6 varchar2(300);
1970 r_input_7 varchar2(300);
1971 r_input_8 varchar2(300);
1972 r_input_9 varchar2(300);
1973 r_input_10 varchar2(300);
1974 r_input_11 varchar2(300);
1975 r_input_12 varchar2(300);
1976 r_input_13 varchar2(300);
1977 r_input_14 varchar2(300);
1978 r_input_15 varchar2(300);
1979 r_input_16 varchar2(300);
1980 r_input_17 varchar2(300);
1981 r_input_18 varchar2(300);
1982 r_input_19 varchar2(300);
1983 r_input_20 varchar2(300);
1984 r_input_21 varchar2(300);
1985 r_input_22 varchar2(300);
1986 r_input_23 varchar2(300);
1987 r_input_24 varchar2(300);
1988 r_input_25 varchar2(300);
1989 r_input_26 varchar2(300);
1990 r_input_27 varchar2(300);
1991 r_input_28 varchar2(300);
1992 r_input_29 varchar2(300);
1993 r_input_30 varchar2(300);
1994 r_input_31 varchar2(300);
1995 r_input_32 varchar2(300);
1996 r_input_33 varchar2(300);
1997 r_input_34 varchar2(300);
1998 r_input_35 varchar2(300);
1999 r_input_36 varchar2(300);
2000 r_input_37 varchar2(300);
2001 r_input_38 varchar2(300);
2002 r_input_39 varchar2(300);
2003
2004 BEGIN
2005 hr_utility.trace('RE Record Formatting started ');
2006 -- Initializing local variables with parameter value
2007 --{
2008 r_input_2 := p_input_2;
2009 r_input_3 := p_input_3;
2010 r_input_4 := p_input_4;
2011 r_input_5 := p_input_5;
2012 r_input_6 := p_input_6;
2013 r_input_7 := p_input_7;
2014 r_input_8 := p_input_8;
2015 r_input_9 := p_input_9;
2016 r_input_10 := p_input_10;
2017 r_input_11 := p_input_11;
2018 r_input_12 := p_input_12;
2019 r_input_13 := p_input_13;
2023 r_input_17 := p_input_17;
2020 r_input_14 := p_input_14;
2021 r_input_15 := p_input_15;
2022 r_input_16 := p_input_16;
2024 r_input_18 := p_input_18;
2025 r_input_19 := p_input_19;
2026 r_input_20 := p_input_20;
2027 r_input_21 := p_input_21;
2028 r_input_22 := p_input_22;
2029 r_input_23 := p_input_23;
2030 r_input_24 := p_input_24;
2031 r_input_25 := p_input_25;
2032 r_input_26 := p_input_26;
2033 r_input_27 := p_input_27;
2034 r_input_28 := p_input_28;
2035 r_input_29 := p_input_29;
2036 r_input_30 := p_input_30;
2037 r_input_31 := p_input_31;
2038 r_input_32 := p_input_32;
2039 r_input_33 := p_input_33;
2040 r_input_34 := p_input_34;
2041 r_input_35 := p_input_35;
2042 r_input_36 := p_input_36;
2043 r_input_37 := p_input_37;
2044 r_input_38 := p_input_38;
2045 r_input_39 := p_input_39;
2046 --}
2047
2048 IF p_record_name = 'RE' THEN -- p_record_name
2049 --{
2050 /* Check for agent indicator code p_input_3 */
2051 IF p_input_3 = 'Y' THEN
2052 hr_utility.trace('agent indicator is Y');
2053 l_agent_indicator := '1';
2054 l_emp_ein := p_input_5;
2055 l_agent_ein := p_input_4;
2056 ELSE
2057 l_agent_indicator:=lpad(' ','1');
2058 hr_utility.trace('agent indicator is not 1');
2059 l_emp_ein := p_input_4;
2060 l_agent_ein := lpad(' ',9);
2061 END IF;
2062
2063 IF p_input_6 = 'Y' THEN
2064 l_term_indicator:='1';
2065 ELSE
2066 l_term_indicator:='0';
2067 END IF;
2068
2069 /* 7572620 */
2070
2071 /* IF p_report_qualifier = 'WV' THEN
2072 l_term_indicator := lpad(' ',1);
2073 END IF; */
2074
2075 IF ((p_report_qualifier = 'AL') OR --AL ,CT,NC,PA and OH RITA
2076 (p_report_qualifier = 'PA') OR
2077 (p_report_qualifier = 'NC') OR
2078 (p_report_qualifier = 'CT') OR
2079 --(p_report_qualifier = 'LA') OR Commented for the Bug 16339837 -- Bug # 3130999
2080 (p_report_qualifier = 'MO') OR -- Added to fix bug # 2149507
2081 (p_report_qualifier = 'MO_KNSAS') OR -- Fix for Bug # 3067494
2082 (p_report_qualifier = 'OH_RTCCA') OR
2083 (p_report_qualifier = 'OH_CCAAA') OR
2084 -- (p_report_qualifier = 'PA_PHILA') OR /* 7579598 */
2085 (p_report_qualifier = 'MO_STLOU')) THEN
2086 --{
2087 l_agent_indicator := lpad(' ',1);
2088 l_other_ein := lpad(' ',9);
2089 l_agent_ein := lpad(' ',9);
2090 l_term_indicator := lpad(' ',1);
2091 l_emp_ein := p_input_4;
2092 r_input_7 := lpad(' ',4);
2093 r_input_8 := l_other_ein;
2094 --}
2095 END IF;
2096
2097 /* OH RITA Other EIN. */
2098 If ((p_report_qualifier = 'OH_RTCCA') OR
2099 (p_report_qualifier = 'OH_CCAAA')) THEN
2100 --{
2101 r_input_8 := p_input_8;
2102 --}
2103 END IF;
2104 /* Bug 5640748 */
2105 IF (p_report_qualifier = 'MD') THEN
2106 l_term_indicator := '0' ;
2107 r_input_8 := lpad(' ',9,' ') ;
2108 END IF ;
2109
2110 /* Bug 13409513 */
2111 /* Bug 13449377 - Added for PuertoRico */
2112 IF ((p_report_qualifier = 'IN') or
2113 (p_report_qualifier = 'PR'))then
2114 r_input_39 := ' ';
2115 else
2116 r_input_39 := nvl(r_input_39,'N');
2117 END IF ;
2118
2119 -- Validation for RE Record starts
2120 -- These validation are used only for mf file only.
2121 -- not for any of the audit report
2122 --
2123 IF p_input_40 = 'FLAT' THEN
2124 --{
2125 hr_utility.trace('before data_validation of ein');
2126 l_emp_ein :=
2127 pay_us_reporting_utils_pkg.data_validation(p_effective_date,
2128 p_report_type,
2129 p_format,
2130 p_report_qualifier,
2131 p_record_name,
2132 'EIN',
2133 l_emp_ein,
2134 'Employer EIN',
2135 p_input_9,
2136 null,
2137 p_validate,
2138 p_exclude_from_output,
2139 sp_out_1,
2140 sp_out_2);
2141 IF p_exclude_from_output = 'Y' THEN
2142 l_exclude_from_output_chk := TRUE;
2143 END IF;
2144
2145 IF l_agent_indicator = '1' THEN
2146 --{
2147 l_agent_ein := pay_us_reporting_utils_pkg.data_validation(p_effective_date,
2148 p_report_type,
2149 p_format,
2150 p_report_qualifier,
2151 p_record_name,
2152 'EIN',
2153 l_agent_ein,
2154 'Agent EIN',
2155 p_input_9,
2159 sp_out_1,
2156 null,
2157 p_validate,
2158 p_exclude_from_output,
2160 sp_out_2);
2161 IF p_exclude_from_output = 'Y' THEN
2162 l_exclude_from_output_chk := TRUE;
2163 END IF;
2164 --}
2165 END IF; -- agent_indicator
2166
2167 hr_utility.trace('after data_validation of EIN');
2168 l_input_8 := replace(r_input_8,' ');
2169
2170 IF l_input_8 IS NOT NULL THEN --Checking Other EIN for validation
2171 --{
2172 hr_utility.trace('before data_validation of other EIN');
2173 l_other_ein:= pay_us_reporting_utils_pkg.data_validation(p_effective_date,
2174 p_report_type,
2175 p_format,
2176 p_report_qualifier,
2177 p_record_name,
2178 'EIN',
2179 p_input_8,
2180 'Other EIN',
2181 p_input_9,
2182 null,
2183 p_validate,
2184 p_exclude_from_output,
2185 sp_out_1,
2186 sp_out_2);
2187 hr_utility.trace('after data_validation of l_other_ein');
2188 IF p_exclude_from_output = 'Y' THEN
2189 l_exclude_from_output_chk := TRUE;
2190 END IF;
2191 --}
2192 ELSE
2193 l_other_ein:= lpad(' ',9);
2194 END IF; --Checking Other EIN for validation
2195 --
2196 -- Validation for RE record ends here
2197
2198 -- Formatting for mf file
2199 --
2200 /* Pos:27 - 30 Establishment number is blank for MA */
2201
2202 IF p_report_qualifier = 'MA' THEN
2203 r_input_7 := lpad(' ',4);
2204 END IF;
2205
2206 if p_report_qualifier = 'VA' then
2207 l_term_indicator:=' ';
2208 r_input_7 := lpad(' ',4);
2209 l_other_ein:= lpad(' ',9);
2210 r_input_10:=rpad(' ',22);
2211 r_input_11:=rpad(' ',22);
2212 r_input_12:=rpad(' ',22);
2213 r_input_13:=rpad(' ',2);
2214 r_input_14:=rpad(' ',5);
2215 r_input_15:=rpad(' ',9);
2216 r_input_16:=rpad(' ',23);
2217 r_input_17:=rpad(' ',15);
2218 r_input_18:=rpad(' ',2);
2219 r_input_19:=' ';
2220 r_input_20:=' ';
2221 r_input_21:=' ';
2222 end if;
2223 /* Pos:119-140 Delivery address blank for NC.Bug:2124630 */
2224 /* Pos:119-140 Delivery Address shoul not be blanked out for NC.
2225 This is to revert back the chenges made to fix
2226 the bug 2124630. Delivery address should be
2227 reported for NC in the Pos 119-140 Code written
2228 to fix bug 2124630 will be commented to fix bug
2229 # 2198547
2230 */
2231 /*
2232 IF p_report_qualifier = 'NC' THEN
2233 r_input_10 := r_input_11; -- Bug:2124630
2234 r_input_11 := lpad(' ',22);
2235 END IF;
2236 */
2237 /* Employer Address is blank out for the Saint Louis Local of MO state */
2238 IF (p_report_qualifier = 'MO_STLOU')THEN
2239 r_input_10 := lpad(' ',22);
2240 r_input_12 := lpad(' ',22);
2241 r_input_13 := lpad(' ',2);
2242 r_input_14 := lpad(' ',5);
2243 r_input_15 := lpad(' ',4);
2244 END IF;
2245
2246 /* Delivery Address is blank out for MO and Saint Louis local */
2247 -- Bug 4739790
2248 -- Removed the MO_KNSAS condition as we require Delivery address for that
2249 IF ((p_report_qualifier = 'MO') OR
2250 (p_report_qualifier = 'MO_STLOU')) THEN
2251 r_input_11 := lpad(' ',22);
2252 END IF;
2253
2254 IF p_report_qualifier = 'AL' THEN
2255 r_input_10 := lpad(' ',22);
2256 /* Bug 3936924
2257 Zip Code Extn reqd for AL now
2258 401-410 - Alabama withholding tax acct number*/
2259 l_al_wh_tax_acct_no := lpad(replace(replace(nvl(replace(r_input_23,' '),' ')
2260 ,'-'),'/'),10,'0');
2261 r_input_23 := ' ';
2262 ELSE
2263 l_al_wh_tax_acct_no := lpad(' ',10,' ');
2264 END IF; --AL zip ext blank
2265
2266 /* AL,PA,MA,NC and OH RITA/CCA foreign adrs,emp_code,
2267 third_party,tax_jurisdiction testing.
2268 Saint Louis, Missouri, Philadelphia added for local mag*/
2269 IF ((p_report_qualifier = 'AL') OR
2270 (p_report_qualifier = 'PA') OR
2271 --(p_report_qualifier = 'LA') OR Commented for the Bug 16339837 -- Bug # 3130999
2272 (p_report_qualifier = 'NC') OR
2273 (p_report_qualifier = 'MO') OR -- Added for fixing bug # 2149507
2274 (p_report_qualifier = 'MO_KNSAS') OR -- Fix for Bug # 3067494
2275 (p_report_qualifier = 'OH_RTCCA') OR
2276 (p_report_qualifier = 'OH_CCAAA') OR
2277 (p_report_qualifier = 'MO_STLOU') OR
2281 -- (p_report_qualifier = 'MD')) -- Bug# 5640748
2278 -- (p_report_qualifier = 'PA_PHILA') OR /*7579598*/
2279 (p_report_qualifier = 'MA') ) THEN -- OR
2280 -- (p_report_qualifier = 'WV') OR -- Bug # 3186636 bug # 7572620
2282 --{
2283 r_input_16 := lpad(' ',23);
2284 r_input_17 := lpad(' ',15);
2285 r_input_18 := lpad(' ',2);
2286 r_input_20 := lpad(' ',1);
2287 r_input_21 := lpad(' ',1);
2288
2289 IF ((p_report_qualifier = 'PA') OR -- AL,PA,NC emp_code blank
2290 (p_report_qualifier = 'NC') OR
2291 -- (p_report_qualifier = 'LA') OR -- Bug # 3130999 ,Bug 7045241 commenting foramtting of posotion 219 as it is required
2292 (p_report_qualifier = 'OH_RTCCA') OR
2293 (p_report_qualifier = 'OH_CCAAA') OR
2294 (p_report_qualifier = 'MO_STLOU') OR
2295 -- (p_report_qualifier = 'PA_PHILA') OR /*7579598*/
2296 (p_report_qualifier = 'MO_KNSAS') OR -- Fix for Bug # 3067494
2297 (p_report_qualifier = 'AL') OR
2298 (p_report_qualifier = 'MO') -- OR -- Added for fixing bug # 2149507
2299 -- (p_report_qualifier = 'WV') OR -- Bug # 3186636 bug # 7572620
2300 -- (p_report_qualifier = 'MD') -- Bug# 5640748
2301 ) THEN
2302 r_input_19 := lpad(' ',1);
2303 END IF;-- AL,PA emp_code blank
2304 --}
2305 END IF; --AL,PA,MA checking
2306
2307 if p_report_qualifier = 'MD' then /* 7572352 */
2308 r_input_16 := lpad(' ',23);
2309 r_input_17 := lpad(' ',15);
2310 r_input_18 := lpad(' ',2);
2311 r_input_20 := lpad(' ',1);
2312 r_input_19 := lpad(' ',1);
2313 end if ;
2314
2315 /* Pos:219 - 221 blank for CT */
2316 IF (p_report_qualifier = 'CT') THEN
2317 --{
2318 r_input_19 := lpad(' ',1);
2319 r_input_20 := lpad(' ',1);
2320 r_input_21 := lpad(' ',1);
2321 --}
2322 END IF;
2323
2324 /* Bug:2116807 Pos:221 blank for IN */
2325 /* 7569563 */
2326 /* IF p_report_qualifier = 'IN' THEN
2327 r_input_21 := lpad(' ',1);
2328 r_input_19 := lpad(' ',1);
2329 END IF; */
2330 /* 7572352 */
2331 /* IF p_report_qualifier = 'MD' THEN
2332 r_input_21 := lpad('0',1,'0') ;
2333 END IF ; */
2334
2335 IF p_report_qualifier = 'PA' THEN /* Bug:2159881 */
2336 -- Formatting for 8 digit PA account
2337 r_input_30 := rpad(replace(replace(nvl
2338 (replace(r_input_22,' '),' '),'/'),'-'),8);
2339 ELSE
2340 r_input_30 := lpad(' ',8);
2341 END IF;
2342
2343 IF p_report_qualifier = 'PA_PHILA' THEN
2344 --{
2345 hr_utility.trace('CHK before Formating Locality Comapny ID ');
2346 /* l_bus_tax_acct_number := rpad(replace(replace(nvl
2347 (replace(p_input_17,' '),' '),'/'),'-'),7);
2348 hr_utility.trace('CHK Formatted Locality Comapny ID '
2349 ||l_bus_tax_acct_number); */
2350 -- r_input_22 := substr(l_bus_tax_acct_number,1,2);
2351 -- r_input_23 := rpad(substr(l_bus_tax_acct_number,3,7),6);
2352 r_input_22 := lpad(' ',2);
2353 r_input_23 := lpad(' ',6);
2354 r_input_24 := lpad(' ',2);
2355 r_input_25 := lpad(' ',12);
2356 r_input_26 := lpad(' ',1);
2357 r_input_27 := lpad(' ',1);
2358 r_input_28 := lpad(' ',1);
2359 r_input_29 := lpad(' ',1);
2360 --}
2361 ELSE
2362 --{
2363 r_input_22 := lpad(' ',2);
2364 r_input_23 := lpad(' ',6);
2365 r_input_24 := lpad(' ',2);
2366 r_input_25 := lpad(' ',12);
2367 r_input_26 := lpad(' ',1);
2368 r_input_27 := lpad(' ',1);
2369 r_input_28 := lpad(' ',1);
2370 r_input_29 := lpad(' ',1);
2371
2372 END IF;
2373
2374 /* Commented for the Bug 16339837
2375 -- Bug # 3299126
2376 IF p_report_qualifier = 'LA' THEN --LA Delivery address should be blank
2377 r_input_10 := lpad(' ',22);
2378 END IF;
2379 */
2380
2381 -- Bug# 5640748
2382 IF p_report_qualifier = 'MD' THEN
2383 r_input_22 := rpad(substr(nvl(r_input_2,' '),1,4),4) ;
2384 r_input_23 := l_emp_ein ;
2385 r_input_24 := lpad(replace(replace(nvl(replace(p_input_24,' '),' ')
2386 ,'-'),'/'),8,'0');
2387 r_input_24 := r_input_24 || rpad(substr(nvl(upper(r_input_9), ' '), 1, 30), 30, ' ') ;
2388 r_input_24 := r_input_24 || rpad(substr(nvl(r_input_11, ' '),1, 22), 22, ' ') ; /* Bug# 5759976 Changed r_input_10 to r_input_11 */
2389 r_input_24 := r_input_24 || rpad(substr(nvl(r_input_12, ' '),1, 20), 20, ' ') ;
2390 r_input_24 := r_input_24 || rpad(substr(nvl(r_input_13, ' '),1, 2), 2, ' ') ;
2391 r_input_24 := r_input_24 || rpad(substr(nvl(r_input_14, ' '), 1, 5), 5, ' ') ;
2392 r_input_24 := r_input_24 || rpad(substr(nvl(r_input_15, ' '),1, 4), 4 , ' ') ;
2393
2394 r_input_25 := lpad(p_input_25, 5 , '0') ;
2395
2396 r_input_26 := lpad(nvl(p_input_26, '0'), 12, '0') ;
2397 r_input_27 := lpad(nvl(p_input_27, '0'), 12, '0') ;
2398 r_input_28 := lpad(nvl(p_input_28, '0'), 12, '0') ;
2399 r_input_29 := lpad(nvl(p_input_29, '0'), 12, '0') ;
2400 r_input_30 := lpad(nvl(p_input_30, '0'), 12, '0') ;
2404 r_input_34 := lpad(nvl(p_input_34, '0'), 12, '0') ;
2401 r_input_31 := lpad(nvl(p_input_31, '0'), 12, '0') ;
2402 r_input_32 := lpad(nvl(p_input_32, '0'), 12, '0') ;
2403 r_input_33 := lpad(nvl(p_input_33, '0'), 12, '0') ;
2405 r_input_35 := lpad(nvl(p_input_35, '0'), 12, '0') ;
2406
2407 r_input_36 := rpad(nvl(p_input_36, ' '), 43, ' ') ;
2408 r_input_37 := rpad(p_input_37, 8, ' ') ;
2409 r_input_38 := rpad(nvl(p_input_38,' '), 10, ' ') ;
2410 END IF ;
2411 --{
2412 IF p_report_qualifier = 'MD' THEN /* 6648007 */
2413 r_input_22 := lpad(replace(replace(nvl(replace(p_input_24,' '),' ')
2414 ,'-'),'/'),8,'0'); --Central Registration Number
2415
2416 END IF ;
2417
2418
2419 IF p_report_qualifier = 'MD' THEN
2420 return_value := 'RE'
2421 ||rpad(substr(nvl(r_input_2,' '),1,4),4)
2422 ||l_agent_indicator
2423 ||l_emp_ein||l_agent_ein
2424 ||l_term_indicator
2425 ||rpad(substr(nvl(r_input_7,' '),1,4),4)
2426 ||l_other_ein
2427 ||rpad(substr(nvl(upper(r_input_9),' '),1,57),57)
2428 ||rpad(substr(nvl(r_input_10,' '),1,22),22)
2429 ||rpad(substr(nvl(r_input_11,' '),1,22),22)
2430 ||rpad(substr(nvl(r_input_12,' '),1,22),22)
2431 ||rpad(substr(nvl(r_input_13,' '),1,2),2)
2432 ||rpad(substr(nvl(r_input_14,' '),1,5),5)
2433 ||rpad(substr(nvl(r_input_15,' '),1,4),4) --Bug 13255564
2434 ||r_input_39 -- Bug 13409513
2435 ||rpad(' ',4) --Bug 13255564
2436 ||rpad(substr(nvl(r_input_16,' '),1,23),23)
2437 ||rpad(substr(nvl(r_input_17,' '),1,15),15)
2438 ||rpad(substr(nvl(r_input_18,' '),1,2),2)
2439 ||rpad(nvl(r_input_19,'R'),1)
2440 ||rpad(nvl(r_input_20,' '),1)
2441 ||rpad(nvl(r_input_21,'0'),1)
2442 ||r_input_22
2443 /* ||r_input_23
2444 ||r_input_24
2445 ||r_input_25
2446 ||r_input_26
2447 ||r_input_27
2448 ||r_input_28
2449 ||r_input_29
2450 ||r_input_30
2451 ||r_input_31
2452 ||r_input_32
2453 ||r_input_33
2454 ||r_input_34
2455 ||r_input_35
2456 ||r_input_36
2457 ||r_input_37
2458 ||r_input_38
2459 ||'Y' */
2460 || LPAD(' ',267)
2461 ||to_char(sysdate,'YYYYMMDD') /* 7572352 */
2462 ||to_char(systimestamp,'HH24MISSFF2')
2463 /* 6648007 - Moved to RV record */
2464 ||l_end_of_rec ;
2465 ELSE
2466 return_value := 'RE'
2467 ||rpad(substr(nvl(r_input_2,' '),1,4),4)
2468 ||l_agent_indicator
2469 ||l_emp_ein||l_agent_ein
2470 ||l_term_indicator
2471 ||rpad(substr(nvl(r_input_7,' '),1,4),4)
2472 ||l_other_ein
2473 ||rpad(substr(nvl(upper(r_input_9),' '),1,57),57)
2474 ||rpad(substr(nvl(r_input_10,' '),1,22),22)
2475 ||rpad(substr(nvl(r_input_11,' '),1,22),22)
2476 ||rpad(substr(nvl(r_input_12,' '),1,22),22)
2477 ||rpad(substr(nvl(r_input_13,' '),1,2),2)
2478 ||rpad(substr(nvl(r_input_14,' '),1,5),5)
2479 ||rpad(substr(nvl(r_input_15,' '),1,4),4) --Bug 13255564
2480 ||r_input_39 -- Bug 13409513
2481 ||rpad(' ',4) --Bug 13255564
2482 ||rpad(substr(nvl(r_input_16,' '),1,23),23)
2483 ||rpad(substr(nvl(r_input_17,' '),1,15),15)
2484 ||rpad(substr(nvl(r_input_18,' '),1,2),2)
2485 ||rpad(nvl(r_input_19,'R'),1)
2486 ||rpad(nvl(r_input_20,' '),1)
2487 ||rpad(nvl(r_input_21,'0'),1)
2488 ||r_input_22
2489 ||r_input_23
2490 ||rpad(r_input_24,5)
2491 ||rpad(r_input_25,15)
2492 ||r_input_26
2493 ||r_input_27
2494 ||r_input_28
2495 ||rpad(r_input_29,148)
2496 ||rpad(l_al_wh_tax_acct_no,104,' ') -- Positions 401-410 for AL state
2497 ||r_input_30
2498 ||l_end_of_rec;
2499 --}
2500 END IF ;
2501 ret_str_len:=length(return_value);
2502 --}
2503 ELSIF p_input_40 = 'CSV' THEN
2504 --{
2505 IF p_report_qualifier = 'MD' THEN
2506 return_value:= 'RE'
2507 ||','||rpad(substr(p_input_2,1,4),4)
2508 ||','||l_agent_indicator
2509 ||','||l_emp_ein
2510 ||','||l_agent_ein
2511 ||','||l_term_indicator
2512 ||','||rpad(substr(nvl(p_input_7,' '),1,4),4)
2516 ||','||rpad(substr(nvl(p_input_11,' '),1,22),22)
2513 ||','||p_input_8
2514 ||','||rpad(substr(nvl(upper(p_input_9),' '),1,57),57)
2515 ||','||rpad(substr(nvl(p_input_10,' '),1,22),22)
2517 ||','||rpad(substr(nvl(p_input_12,' '),1,22),22)
2518 ||','||rpad(substr(nvl(p_input_13,' '),1,2),2)
2519 ||','||rpad(substr(nvl(p_input_14,' '),1,5),5)
2520 ||','||rpad(substr(nvl(p_input_15,' '),1,4),4)
2521 ||','||r_input_39 -- Bug 13409513 --Bug 13255564
2522 ||','||rpad(' ',4) --Bug 13255564
2523 ||','||rpad(substr(nvl(p_input_16,' '),1,23),23)
2524 ||','||rpad(substr(nvl(p_input_17,' '),1,15),15)
2525 ||','||rpad(substr(nvl(p_input_18,' '),1,2),2)
2526 ||','||rpad(nvl(p_input_19,'R'),1)
2527 ||','||rpad(nvl(p_input_20,' '),1)
2528 ||','||rpad(nvl(p_input_21,'0'),1)
2529 ||','||r_input_22
2530 ||','||r_input_23
2531 ||','||r_input_24
2532 ||','||r_input_9
2533 ||','||r_input_10
2534 ||','||r_input_12
2535 ||','||r_input_13
2536 ||','||r_input_14
2537 ||','||r_input_15
2538 ||','||p_input_25
2539 ||','||p_input_26
2540 ||','||p_input_27
2541 ||','||p_input_28
2542 ||','||p_input_29
2543 ||','||p_input_30
2544 ||','||p_input_31
2545 ||','||p_input_32
2546 ||','||p_input_33
2547 ||','||p_input_34
2548 ||','||p_input_35
2549 ||','||p_input_36
2550 ||','||p_input_37
2551 ||','||p_input_38
2552 ||','||'Y' ;
2553 ELSE
2554 return_value:= 'RE'
2555 ||','||rpad(substr(p_input_2,1,4),4)
2556 ||','||l_agent_indicator
2557 ||','||l_emp_ein
2558 ||','||l_agent_ein
2559 ||','||l_term_indicator
2560 ||','||rpad(substr(nvl(p_input_7,' '),1,4),4)
2561 ||','||p_input_8
2562 ||','||rpad(substr(nvl(upper(p_input_9),' '),1,57),57)
2563 ||','||rpad(substr(nvl(p_input_10,' '),1,22),22)
2564 ||','||rpad(substr(nvl(p_input_11,' '),1,22),22)
2565 ||','||rpad(substr(nvl(p_input_12,' '),1,22),22)
2566 ||','||rpad(substr(nvl(p_input_13,' '),1,2),2)
2567 ||','||rpad(substr(nvl(p_input_14,' '),1,5),5)
2568 ||','||rpad(substr(nvl(p_input_15,' '),1,4),4)
2569 ||','||r_input_39 -- Bug 13409513 --Bug 13255564
2570 ||','||rpad(' ',4) --Bug 13255564
2571 ||','||rpad(substr(nvl(p_input_16,' '),1,23),23)
2572 ||','||rpad(substr(nvl(p_input_17,' '),1,15),15)
2573 ||','||rpad(substr(nvl(p_input_18,' '),1,2),2)
2574 ||','||rpad(nvl(p_input_19,'R'),1)
2575 ||','||rpad(nvl(p_input_20,' '),1)
2576 ||','||rpad(nvl(p_input_21,'0'),1)
2577 ||','||p_input_22
2578 ||','||p_input_23
2579 ||','||p_input_24
2580 ||','||lpad(' ',3)
2581 ||','||p_input_25
2582 ||','||lpad(' ',3)
2583 ||','||p_input_26
2584 ||','||p_input_27
2585 ||','||p_input_28
2586 ||','||p_input_29
2587 ||','||p_input_30;
2588
2589 END IF ; -- p_report_qulaifier
2590 --}
2591 END IF; -- p_input_40
2592 END IF;
2593 p_error := l_exclude_from_output_chk;
2594 ret_str_len:=length(return_value);
2595 return return_value;
2596 END format_W2_RE_record; -- End of Function Formatting RE record
2597 --
2598 --
2599
2600 -- Formatting RW record for W2 reporting
2601 -- Parameter description
2602
2603 /*Record Identifier, --> p_input_1
2604 Social Security Number, --> p_input_2
2605 Employee First Name, --> p_input_3
2606 Employee Middle Name or Initial, --> p_input_4
2607 Employee Last Name, --> p_input_5
2608 Suffix, --> p_input_6
2609 Location Address, --> p_input_7
2610 Delivery Address, --> p_input_8
2611 City, --> p_input_9
2612 State Abbreviation, --> p_input_10
2613 Zip Code, --> p_input_11
2614 Zip Code Extension, --> p_input_12
2615 Blank,
2616 Foreign State / Province, --> p_input_13
2617 Foreign Postal Code, --> p_input_14
2621 Social Security Wages, --> p_input_18
2618 Country Code, --> p_input_15
2619 Wages, Tips And Other Compensation, --> p_input_16
2620 Federal Income Tax Withheld, --> p_input_17
2622 Social Security Tax Withheld, --> p_input_19
2623 Medicare Wages And Tips, --> p_input_20
2624 Medicare Tax Withheld, --> p_input_21
2625 Social Security Tips, --> p_input_22
2626 Advance Earned Income Credit, --> p_input_23
2627 Dependent Care Benefits, --> p_input_24
2628 Deferred Compensation Contributions to Section 401(k), --> p_input_25
2629 Deferred Compensation Contributions to Section 403(b), --> p_input_26
2630 Deferred Compensation Contributions to Section 408(k)(6), --> p_input_27
2631 Deferred Compensation Contributions to Section 457(b), --> p_input_28
2632 Deferred Compensation Contributions to Section 501(c)(18)(D), --> p_input_29
2633 Military EE''s Basic Quarters, Subsistence and Combat Pay, --> p_input_30
2634 Non-Qual. plan Sec.457 Distributions or Contributions, --> p_input_31
2635 Non-Qual. plan NOT Section 457 Distributions or Contributions,--> p_input_32
2636 Blank,
2637 Employer Cost of Premiums for GTL> $50k, --> p_input_33
2638 Income From Exercise of Nonqualified Stock Options,, --> p_input_34
2639 Blank,, --> p_input_31
2640 Statutory Employee Indicator,, --> p_input_35
2641 Blank,
2642 Retirement Plan Indicator,, --> p_input_36
2643 Third-Party Sick Pay Indicator, --> p_input_37
2644 Employer Contributions to a Health Savings Account --> p_input_38
2645 Non Taxable Combat Pay --> p_input_41
2646 Deferrals Und a Sec 409A Non-Qualified Deferred Comp Plan --> p_input_42
2647 Designated Roth Contributions to a section 401(k) Plan --> p_input_43
2648 Designated Roth Contributions Under a section 403(b) Salaray --> p_input_44
2649 */
2650
2651 FUNCTION format_W2_RW_record(
2652 p_effective_date IN varchar2,
2653 p_report_type IN varchar2,
2654 p_format IN varchar2,
2655 p_report_qualifier IN varchar2,
2656 p_record_name IN varchar2,
2657 p_input_1 IN varchar2,
2658 p_input_2 IN varchar2,
2659 p_input_3 IN varchar2,
2660 p_input_4 IN varchar2,
2661 p_input_5 IN varchar2,
2662 p_input_6 IN varchar2,
2663 p_input_7 IN varchar2,
2664 p_input_8 IN varchar2,
2665 p_input_9 IN varchar2,
2666 p_input_10 IN varchar2,
2667 p_input_11 IN varchar2,
2668 p_input_12 IN varchar2,
2669 p_input_13 IN varchar2,
2670 p_input_14 IN varchar2,
2671 p_input_15 IN varchar2,
2672 p_input_16 IN varchar2,
2673 p_input_17 IN varchar2,
2674 p_input_18 IN varchar2,
2675 p_input_19 IN varchar2,
2676 p_input_20 IN varchar2,
2677 p_input_21 IN varchar2,
2678 p_input_22 IN varchar2,
2679 p_input_23 IN varchar2,
2680 p_input_24 IN varchar2,
2681 p_input_25 IN varchar2,
2682 p_input_26 IN varchar2,
2683 p_input_27 IN varchar2,
2684 p_input_28 IN varchar2,
2685 p_input_29 IN varchar2,
2686 p_input_30 IN varchar2,
2687 p_input_31 IN varchar2,
2688 p_input_32 IN varchar2,
2689 p_input_33 IN varchar2,
2690 p_input_34 IN varchar2,
2691 p_input_35 IN varchar2,
2692 p_input_36 IN varchar2,
2693 p_input_37 IN varchar2,
2694 p_input_38 IN varchar2,
2695 p_input_39 IN varchar2,
2696 p_input_40 IN varchar2,
2697 p_validate IN varchar2,
2698 p_exclude_from_output OUT nocopy varchar2,
2699 sp_out_1 OUT nocopy varchar2,
2700 sp_out_2 OUT nocopy varchar2,
2701 sp_out_3 OUT nocopy varchar2,
2702 sp_out_4 OUT nocopy varchar2,
2703 sp_out_5 OUT nocopy varchar2,
2704 ret_str_len OUT nocopy number,
2705 p_error OUT nocopy boolean,
2706 p_input_41 IN varchar2 default null,
2707 p_input_42 IN varchar2 default null,
2711
2708 p_input_43 IN varchar2 default null,
2709 p_input_44 IN varchar2 default null,
2710 p_input_45 IN varchar2 default null /* Bug 13351713 */
2712 ) RETURN VARCHAR2
2713 IS
2714
2715 l_full_name varchar2(100);
2716 l_emp_name_or_number varchar2(50);
2717 l_emp_number varchar2(50);
2718 l_first_name varchar2(150);
2719 l_middle_name varchar2(100);
2720 l_last_name varchar2(150);
2721 l_suffix varchar2(100);
2722 l_ssn varchar2(100);
2723 l_message varchar2(2000);
2724 l_description varchar2(50);
2725 l_field_description varchar2(50);
2726 l_ss_count number(10);
2727 l_amount number(10);
2728 return_value varchar2(32767);
2729 l_err boolean;
2730 l_exclude_from_output_chk boolean;
2731 l_ss_tax_limit pay_us_federal_tax_info_f.ss_ee_wage_limit%TYPE;
2732 l_ss_wage_limit pay_us_federal_tax_info_f.ss_ee_wage_limit%TYPE;
2733
2734 TYPE function_columns IS RECORD(
2735 p_parameter_name varchar2(100),
2736 p_parameter_value varchar2(100),
2737 p_output_value varchar2(100)
2738 );
2739 function_parameter_rec function_columns;
2740 TYPE input_parameter_record IS TABLE OF function_parameter_rec%TYPE
2741 INDEX BY BINARY_INTEGER;
2742 parameter_record input_parameter_record;
2743
2744 r_input_1 varchar2(300);
2745 r_input_2 varchar2(300);
2746 r_input_3 varchar2(300);
2747 r_input_4 varchar2(300);
2748 r_input_5 varchar2(300);
2749 r_input_6 varchar2(300);
2750 r_input_7 varchar2(300);
2751 r_input_8 varchar2(300);
2752 r_input_9 varchar2(300);
2753 r_input_10 varchar2(300);
2754 r_input_11 varchar2(300);
2755 r_input_12 varchar2(300);
2756 r_input_13 varchar2(300);
2757 r_input_14 varchar2(300);
2758 r_input_15 varchar2(300);
2759 r_input_16 varchar2(300);
2760 r_input_17 varchar2(300);
2761 r_input_18 varchar2(300);
2762 r_input_19 varchar2(300);
2763 r_input_20 varchar2(300);
2764 r_input_21 varchar2(300);
2765 r_input_22 varchar2(300);
2766 r_input_23 varchar2(300);
2767 r_input_24 varchar2(300);
2768 r_input_25 varchar2(300);
2769 r_input_26 varchar2(300);
2770 r_input_27 varchar2(300);
2771 r_input_28 varchar2(300);
2772 r_input_29 varchar2(300);
2773 r_input_30 varchar2(300);
2774 r_input_31 varchar2(300);
2775 r_input_32 varchar2(300);
2776 r_input_33 varchar2(300);
2777 r_input_34 varchar2(300);
2778 r_input_35 varchar2(300);
2779 r_input_36 varchar2(300);
2780 r_input_37 varchar2(300);
2781 r_input_38 varchar2(300);
2782 r_input_39 varchar2(300);
2783 /* Bug # 4391218 */
2784 r_input_40 varchar2(300) ;
2785 r_input_41 varchar2(300) ;
2786 /* Bug # 5256745 */
2787 r_input_42 varchar2(300) ;
2788 r_input_43 varchar2(300) ;
2789 /* Bug 13351713 */
2790 r_input_45 varchar2(300) ;
2791
2792 CURSOR GET_SS_LIMIT(c_date varchar2)
2793 IS
2794 SELECT SS_EE_WAGE_LIMIT*100,
2795 (SS_EE_WAGE_LIMIT*SS_EE_RATE)*100 tax
2796 FROM PAY_US_FEDERAL_TAX_INFO_F
2797 WHERE TO_DATE(C_DATE,'DD-MM-YYYY') BETWEEN EFFECTIVE_START_DATE
2798 AND EFFECTIVE_END_DATE
2799 AND FED_INFORMATION_CATEGORY = '401K LIMITS';
2800
2801 BEGIN
2802 hr_utility.trace('Formatting RW record');
2803 hr_utility.trace('Formatting Mode = '||p_input_40);
2804 -- Initializing local variables with parameter value
2805 --{
2806 r_input_2 := p_input_2;
2807 r_input_3 := p_input_3;
2808 r_input_4 := p_input_4;
2809 r_input_5 := p_input_5;
2810 r_input_6 := p_input_6;
2811 r_input_7 := p_input_7;
2812 r_input_8 := p_input_8;
2813 r_input_9 := p_input_9;
2814 r_input_10 := p_input_10;
2815 r_input_11 := p_input_11;
2816 r_input_12 := p_input_12;
2817 r_input_13 := p_input_13;
2818 r_input_14 := p_input_14;
2819 r_input_15 := p_input_15;
2820 r_input_16 := p_input_16;
2821 r_input_17 := p_input_17;
2822 r_input_18 := p_input_18;
2823 r_input_19 := p_input_19;
2824 r_input_20 := p_input_20;
2825 r_input_21 := p_input_21;
2826 r_input_22 := p_input_22;
2827 r_input_23 := p_input_23;
2828 r_input_24 := p_input_24;
2829 r_input_25 := p_input_25;
2830 r_input_26 := p_input_26;
2831 r_input_27 := p_input_27;
2832 r_input_28 := p_input_28;
2833 r_input_29 := p_input_29;
2834 r_input_30 := p_input_30;
2835 r_input_31 := p_input_31;
2836 r_input_32 := p_input_32;
2837 r_input_33 := p_input_33;
2838 r_input_34 := p_input_34;
2839 r_input_35 := p_input_35;
2840 r_input_36 := p_input_36;
2841 r_input_37 := p_input_37;
2842 r_input_38 := p_input_38;
2843 r_input_39 := p_input_39;
2844 r_input_40 := p_input_41 ;
2845 r_input_41 := p_input_42 ; -- Bug # 4391218
2849 --}
2846 r_input_42 := p_input_43 ;
2847 r_input_43 := p_input_44 ; -- Bug # 5256745
2848 r_input_45 := p_input_45 ; -- Bug # 13351713
2850
2851 --
2852 IF p_input_40 = 'FLAT' THEN
2853
2854 -- Following Formattings are required for data validation
2855 --
2856 --{
2857
2858 /*5155648*/
2859 /* commented for bug 7109106 */
2860 /* IF (p_report_qualifier = 'FED' and
2861 r_input_10 = 'PR') THEN
2862 r_input_33 := '0';
2863
2864 END IF; */
2865
2866
2867 /* For fixing bug # 2645739 instead of input parameters, local variables were formatted
2868 and used for Flat reocrd */
2869 IF ((p_report_qualifier = 'NC') OR
2870 (p_report_qualifier = 'MO_STLOU')) THEN
2871 --{
2872 r_input_18 := '0';
2873 r_input_19 := '0';
2874 r_input_20 := '0';
2875 r_input_21 := '0';
2876 r_input_22 := '0';
2877 r_input_23 := '0';
2878 r_input_24 := '0';
2879 r_input_25 := '0';
2880 r_input_26 := '0';
2881 r_input_27 := '0';
2882 r_input_28 := '0';
2883 r_input_29 := '0';
2884 r_input_30 := '0';
2885 r_input_31 := '0';
2886 r_input_32 := '0';
2887 r_input_33 := '0';
2888 r_input_34 := '0';
2889 --}
2890 END IF;
2891
2892 IF p_report_qualifier = 'MO_STLOU' THEN
2893 --{
2894 r_input_17 := '0';
2895 r_input_25 := p_input_25;
2896 r_input_26 := p_input_26;
2897 r_input_27 := p_input_27;
2898 r_input_28 := p_input_28;
2899 r_input_29 := p_input_29;
2900 --}
2901 END IF;
2902
2903 IF p_report_qualifier = 'PR' THEN
2904 --{
2905 r_input_16 := '0';
2906 r_input_17 := '0';
2907 r_input_23 := '0';
2908 r_input_24 := '0';
2909 r_input_25 := '0';
2910 r_input_26 := '0';
2911 r_input_27 := '0';
2912 r_input_28 := '0';
2913 r_input_29 := '0';
2914 r_input_30 := '0';
2915 r_input_31 := '0';
2916 r_input_32 := '0';
2917 r_input_33 := '0';
2918 r_input_38 := '0'; /* Bug 3680056 NR-Zero fill for PR */
2919 --}
2920 END IF;
2921
2922 -- Fix for Bug# 4502738
2923 IF p_report_qualifier = 'MO_KNSAS' THEN
2924 --{
2925 r_input_17 := '0'; -- Federal Income Tax Withheld
2926 r_input_18 := '0'; -- Social Security Wages
2927 r_input_19 := '0'; -- Social Security Tax Withheld
2928 r_input_22 := '0'; -- Social Security Tips
2929 r_input_23 := '0'; -- Advance Earned Income Credit
2930 r_input_24 := '0'; -- Dependent Care Benefits
2931 r_input_25 := '0'; -- Deferred Compensation Contributions to Section 401(k)
2932 r_input_26 := '0'; -- Deferred Compensation Contributions to Section 403(b)
2933 r_input_27 := '0'; -- Deferred Compensation Contributions to Section 408(k)(6)
2934 r_input_28 := '0'; -- Deferred Compensation Contributions to Section 457(b)
2935 r_input_29 := '0'; -- Deferred Compensation Contributions to Section 501(c)(18)(D)
2936 r_input_30 := lpad(' ',11); -- Blank
2937 r_input_31 := '0'; -- Non-Qual. plan Sec.457 Distributions or Contributions
2938 r_input_32 := '0'; -- Non-Qual. plan NOT Section 457 Distributions or Contributions
2939 r_input_33 := '0'; -- Employer Cost of Premiums for GTL> $50k
2940 r_input_34 := '0'; -- Income from nonqualified stock option
2941 r_input_38 := '0'; -- Employer Contributions to Health Savings Account
2942 r_input_41 := '0'; -- Deferrals Under Sec 409A Non-Qual Def Comp Plan
2943 --}
2944 END IF;
2945
2946
2947 /* Bug # 3186636 */
2948 --{
2949 /* 7572620 */
2950 IF p_report_qualifier = 'WV' THEN
2951
2952 /* r_input_7 := ' ';
2953 r_input_13 := ' ';
2954 r_input_14 := ' ';
2955 r_input_15 := ' ';
2956 r_input_18 := '0';
2957 r_input_19 := '0';
2958 r_input_20 := '0';
2959 r_input_21 := '0';
2960 r_input_22 := '0';
2961 r_input_23 := '0';
2962 r_input_24 := '0';
2963 r_input_25 := '0';
2964 r_input_26 := '0';
2965 r_input_27 := '0';
2966 r_input_28 := '0';
2967 r_input_29 := '0'; */
2968 r_input_30 := '0';
2969 /* r_input_31 := '0';
2970 r_input_32 := '0';
2971 r_input_33 := '0';
2972 r_input_34 := '0';
2973 r_input_35 := ' ';
2974 r_input_36 := ' ';
2975 r_input_37 := ' '; */
2976
2977 END IF;
2978
2979
2980 --}
2981 --
2982 -- Formatting completes before data validation
2983 --
2984 parameter_record(1).p_parameter_name:= ' Wages,Tips And Other Compensation';
2985 parameter_record(1).p_parameter_value:=r_input_16;
2986
2987 parameter_record(2).p_parameter_name:= ' Federal Income Tax Withheld';
2988 parameter_record(2).p_parameter_value:=r_input_17;
2989
2990 parameter_record(3).p_parameter_name:= 'SS Wages';
2991 parameter_record(3).p_parameter_value:=r_input_18;
2992
2996 parameter_record(5).p_parameter_name:= 'Medicare Wages And Tips';
2993 parameter_record(4).p_parameter_name:= ' Social Security Tax Withheld';
2994 parameter_record(4).p_parameter_value:=r_input_19;
2995
2997 parameter_record(5).p_parameter_value:=r_input_20;
2998
2999 parameter_record(6).p_parameter_name:= 'Medicare Tax Withheld';
3000 parameter_record(6).p_parameter_value:=r_input_21;
3001
3002 parameter_record(7).p_parameter_name:= 'SS Tips';
3003 parameter_record(7).p_parameter_value:=r_input_22;
3004
3005 parameter_record(8).p_parameter_name:= 'Advance Earned Income Credit';
3006 parameter_record(8).p_parameter_value:=r_input_23;
3007
3008 parameter_record(9).p_parameter_name:= 'Dependent Care Benefits';
3009 parameter_record(9).p_parameter_value:=r_input_24;
3010
3011 parameter_record(10).p_parameter_name:= 'Deferred Comp Contr. to Sec 401(k)';
3012 parameter_record(10).p_parameter_value:=r_input_25;
3013
3014 parameter_record(11).p_parameter_name:= 'Deferred Comp Contr. to Sec 403(b)';
3015 parameter_record(11).p_parameter_value:=r_input_26;
3016
3017 parameter_record(12).p_parameter_name:= 'Deferred Comp Contr. to Sec 408(k)(6)';
3018 parameter_record(12).p_parameter_value:=r_input_27;
3019
3020 parameter_record(13).p_parameter_name:= 'Deferred Comp Contr. to Sec 457(b)';
3021 parameter_record(13).p_parameter_value:=r_input_28;
3022
3023 parameter_record(14).p_parameter_name:= 'Deferred Comp Contr. to Sec 501(c)';
3024 parameter_record(14).p_parameter_value:=r_input_29;
3025 /* As A_W2_MILITARY_HOUSING_Q is disabled this field will be blank filled
3026 no standard numeric validation would be performed
3027 parameter_record(15).p_parameter_name:= 'Military Combat Pay';
3028 parameter_record(15).p_parameter_value:=p_input_30;
3029 */
3030 parameter_record(15).p_parameter_name:= 'Non-Qual. plan Sec 457';
3031 parameter_record(15).p_parameter_value:=r_input_31;
3032
3033 parameter_record(16).p_parameter_name:= 'Non-Qual. plan NOT Sec 457';
3034 parameter_record(16).p_parameter_value:=r_input_32;
3035
3036 parameter_record(17).p_parameter_name:= 'Employer cost of premiun';
3037 parameter_record(17).p_parameter_value:=r_input_33;
3038
3039 parameter_record(18).p_parameter_name:= 'Income from nonqualified stock option';
3040 parameter_record(18).p_parameter_value:=r_input_34;
3041
3042 /* Bug 3680056 New field */
3043 parameter_record(19).p_parameter_name:= 'Employer Contributions to Health Savings Account';
3044 parameter_record(19).p_parameter_value:=r_input_38;
3045
3046 parameter_record(20).p_parameter_name:= 'Non-Taxable Combat Pay';
3047 parameter_record(20).p_parameter_value:=r_input_40 ; -- Bug # 4391218
3048
3049 parameter_record(21).p_parameter_name:= 'Deferrals Under Sec 409A Non-Qual Def Comp Plan';
3050 parameter_record(21).p_parameter_value:=r_input_41 ; -- Bug # 4391218
3051 /* Bug 5256745 */
3052 parameter_record(22).p_parameter_name:= 'Roth Contributions Und Sec 401(k) Plan';
3053 parameter_record(22).p_parameter_value:=r_input_42 ; -- Bug # 5256745
3054
3055 parameter_record(23).p_parameter_name:= 'Roth Contributions Und Sec 403(b) Plan';
3056 parameter_record(23).p_parameter_value:=r_input_43 ; -- Bug # 5256745
3057
3058 parameter_record(24).p_parameter_name:= 'Cost of Employer-Sponsored Health Coverage';
3059 parameter_record(24).p_parameter_value:=r_input_45 ; -- Bug # 13419483
3060
3061
3062 l_first_name := pay_us_reporting_utils_pkg.Character_check(rpad(nvl(
3063 substr(p_input_3,1,15),' '),15));
3064 l_middle_name := pay_us_reporting_utils_pkg.Character_check(rpad(nvl(
3065 substr(p_input_4,1,15),' '),15));
3066 l_last_name := pay_us_reporting_utils_pkg.Character_check(rpad(nvl(
3067 substr(p_input_5,1,20),' '),20));
3068 l_suffix := pay_us_reporting_utils_pkg.Character_check(rpad(nvl(
3069 substr(p_input_6,1,4),' '),4));
3070 l_full_name := substr(ltrim(rtrim(p_input_3)||' '||
3071 rtrim(p_input_5)),1,50);
3072
3073 l_emp_number := replace(p_input_39,' ');
3074
3075 IF l_emp_number IS NULL THEN
3076 l_emp_name_or_number := l_full_name;
3077 hr_utility.trace('l_emp_name_or_number = '||l_emp_name_or_number);
3078 ELSE
3079 l_emp_name_or_number:= l_emp_number;
3080 hr_utility.trace('l_emp_name_or_number = '||l_emp_name_or_number);
3081 END IF;
3082 --
3083 -- Validation for RW Record Start
3084 --
3085 -- SSN Validation
3086 l_ssn :=
3087 pay_us_reporting_utils_pkg.data_validation( p_effective_date,
3088 p_report_type,
3089 p_format,
3090 p_report_qualifier,
3091 p_record_name,
3092 'SSN',
3093 p_input_2,
3094 'Social Security',
3095 l_emp_name_or_number,
3096 null,
3097 p_validate,
3098 p_exclude_from_output,
3099 sp_out_1,
3103 END IF;
3100 sp_out_2);
3101 IF p_exclude_from_output = 'Y' THEN
3102 l_exclude_from_output_chk := TRUE;
3104
3105 -- Various Amount Validation for for Neg value. If value is found negative record
3106 -- is marked for exclusion
3107 FOR i in 1..24 --23 -- Bug # 13419483
3108 LOOP
3109 parameter_record(i).p_output_value :=
3110 pay_us_reporting_utils_pkg.data_validation(
3111 p_effective_date,
3112 p_report_type,
3113 p_format,
3114 p_report_qualifier,
3115 p_record_name,
3116 'NEG_CHECK',
3117 parameter_record(i).p_parameter_value,
3118 parameter_record(i).p_parameter_name,
3119 l_emp_name_or_number, --EE number for mesg
3120 null,
3121 p_validate,
3122 p_exclude_from_output,
3123 sp_out_1,
3124 sp_out_2);
3125
3126 IF p_exclude_from_output = 'Y' THEN
3127 l_exclude_from_output_chk := TRUE;
3128 END IF;
3129 hr_utility.trace(parameter_record(i).p_parameter_name||' = '||
3130 parameter_record(i).p_output_value);
3131 hr_utility.trace('p_exclude_from_output = '||p_exclude_from_output);
3132
3133 END LOOP;
3134
3135 hr_utility.trace('SS Wage and Tax limit Checking begins.' );
3136 OPEN get_ss_limit(p_effective_date);
3137 LOOP
3138 FETCH get_ss_limit INTO l_ss_wage_limit,
3139 l_ss_tax_limit;
3140 hr_utility.trace('SS Wage Limit '||to_char(l_ss_wage_limit));
3141 l_ss_count:= get_ss_limit%ROWCOUNT;
3142 EXIT WHEN get_ss_limit%NOTFOUND ;
3143 END LOOP;
3144 CLOSE get_ss_limit;
3145 hr_utility.trace('No. rows exist for limit '||to_char(l_ss_count));
3146
3147 IF l_ss_count = 0 THEN
3148 hr_utility.trace('No data found on PAY_US_FEDERAL_TAX_INFO_F '||
3149 'for Social security wage limits.');
3150 ELSIF l_ss_count >1 THEN
3151 hr_utility.trace('Too many rows on PAY_US_FEDERAL_TAX_INFO_F '||
3152 'for Social security wage limits.');
3153 ELSIF l_ss_count=1 THEN
3154 --{
3155 IF (to_number(parameter_record(3).p_output_value) > 0 OR
3156 to_number(parameter_record(4).p_output_value) > 0 OR
3157 to_number(parameter_record(7).p_output_value) > 0 )
3158 THEN
3159 --{
3160 hr_utility.trace('SS Tax w/h, SS Tips, SS Wages are >0 ');
3161 IF (to_number(parameter_record(3).p_output_value)+
3162 to_number(parameter_record(7).p_output_value))
3163 > l_ss_wage_limit
3164 THEN
3165 hr_utility.trace('ss_tips+ss_wages is > '||
3166 to_char(l_ss_wage_limit));
3167 l_field_description:='the sum of '||
3168 parameter_record(3).p_parameter_name
3169 ||' and '||
3170 parameter_record(7).p_parameter_name;
3171 l_amount:=l_ss_wage_limit/100;
3172 l_description:=' It is greater than '||to_char(l_amount);
3173 pay_core_utils.push_message(801,'PAY_INVALID_EE_DATA','A');
3174 pay_core_utils.push_token('record_name',p_record_name);
3175 pay_core_utils.push_token('name_or_number',
3176 substr(l_emp_name_or_number,1,50));
3177 pay_core_utils.push_token('field_name',l_field_description);
3178 pay_core_utils.push_token('description',
3179 substr(l_description,1,50));
3180 l_err := TRUE;
3181 END IF;
3182
3183 IF to_number(parameter_record(4).p_output_value)>l_ss_tax_limit
3184 THEN
3185 --{
3186 hr_utility.trace('SS Tax w/h is > '||
3187 to_char(l_ss_tax_limit));
3188 l_err := TRUE;
3189 l_amount:=l_ss_tax_limit/100;
3190 l_description:=' It is greater than '||to_char(l_amount);
3191 pay_core_utils.push_message(801,'PAY_INVALID_EE_DATA','A');
3192 pay_core_utils.push_token('record_name',p_record_name);
3193 pay_core_utils.push_token('name_or_number',
3194 substr(l_emp_name_or_number,1,50));
3195 pay_core_utils.push_token('field_name',parameter_record(4).p_parameter_name);
3196 pay_core_utils.push_token('description',l_description);
3197 /* Sample message for SS Wage/Tax limit
3198 Error in RW record for Employee 1234 in Social Security Tax Withheld. It is greater than 498480 */
3199 --}
3200 END IF; --l_ss_tax_limit
3201 --}
3202 END IF; -- negative check
3203 --}
3204 END IF; --l_ss_count
3205
3206 hr_utility.trace('After SS Wage/ Tax limit checking ');
3207
3208 IF l_err THEN
3209 IF p_validate = 'Y' THEN
3210 p_exclude_from_output := 'Y';
3211 END IF;
3212 END IF;
3213
3214 IF p_exclude_from_output = 'Y' THEN
3215 l_exclude_from_output_chk := TRUE;
3216 END IF;
3217 --
3218 -- Validation for RW record Ends here
3219 --
3220
3221 -- Formatting feields for Geo specific requirements
3222 --
3223
3224
3225 /* Fix for Bug # 2767254 */
3226 IF p_report_qualifier = 'PR' THEN
3227 --r_input_30 := rpad('0',11,'0');
3228 --r_input_30 := lpad(' ',11); --Bug 14799506, pos 342-352 blank fill
3229 r_input_30 := rpad('0',11,'0');--For the Bug 16173051
3230 r_input_31 := rpad('0',11,'0');
3231 r_input_32 := rpad('0',22,'0');
3232 ELSE
3233 --r_input_30 := lpad('0',11,'0'); /* Bug 4859212 */
3234 r_input_30 := lpad(' ',11); --Bug 14799506, pos 342-352 blank fill
3235 r_input_31 := lpad(' ',11);
3236 r_input_32 := lpad(' ',22);
3237 END IF;
3238
3239 IF (p_report_qualifier = 'MO_STLOU') THEN
3240 l_first_name := lpad(' ',15);
3241 l_middle_name := lpad(' ',15);
3242 l_last_name := lpad(' ',20);
3243 END IF;
3244
3245 /* For State of NC, suffix is blank filled Bug # 2645739 */
3246 IF(( p_report_qualifier = 'NC') OR
3247 (p_report_qualifier = 'MO_STLOU')) THEN
3248 l_suffix := lpad(' ',4);
3249 END IF;
3250
3251 IF ((p_report_qualifier = 'NC') OR
3252 (p_report_qualifier = 'MO_STLOU')) THEN
3253 --{
3254 r_input_7 := ' ';
3255 r_input_8 := ' ';
3256 r_input_9 := ' ';
3257 r_input_10 := ' ';
3258 r_input_11 := ' ';
3259 r_input_12 := ' ';
3260 r_input_13 := ' ';
3261 r_input_14 := ' ';
3262 r_input_15 := ' ';
3263 r_input_35 := ' ';
3264 r_input_36 := ' ';
3265 r_input_37 := ' ';
3266 END IF;
3267
3268 -- Fix for Bug# 4502738
3269 -- Bug 4739790
3270 -- Removed the blanking of fields r_input_8 and r_input_9
3271 -- as they are required for MO_KNSAS
3272 IF (p_report_qualifier = 'MO_KNSAS') THEN
3273 --{
3274 r_input_13 := ' ';
3275 r_input_14 := ' ';
3276 r_input_15 := ' ';
3277 r_input_35 := ' ';
3278 r_input_36 := ' ';
3279 r_input_37 := ' ';
3280 END IF;
3281 -- Fix for Bug# 4391218
3282
3283 r_input_40 := parameter_record(20).p_output_value ;
3284
3285 IF ( p_report_qualifier = 'MO_KNSAS') THEN
3286 r_input_40 := lpad('0',22,'0') ;
3287 r_input_30 := lpad(' ',11) ; -- Keep it as it is in spec not changed for #4859212
3288 END IF ;
3289
3290
3291 -- End of Fix for Bug# 4391218
3292
3293 --For the Bug#10266267
3294 --commented out for bug 11800770
3295 /* IF p_report_qualifier = 'VT' THEN
3296
3297 --r_input_34 := lpad(' ',11);
3298 parameter_record(18).p_output_value := lpad(' ',11);
3299
3300 END IF;*/
3301
3302
3303 hr_utility.trace('Before formatting and returning RW record for the flat file');
3304
3305 -- Formatting Wage Record for .mf reporting file
3306 --
3307 IF p_report_qualifier = 'IN' THEN
3308 return_value := 'RW'||l_ssn||l_first_name
3309 ||l_middle_name
3310 ||l_last_name||l_suffix
3311 ||rpad(substr(nvl(r_input_7,' '),1,22),22)
3312 ||rpad(substr(nvl(r_input_8,' '),1,22),22)
3313 ||rpad(substr(nvl(r_input_9,' '),1,22),22)
3314 ||rpad(substr(nvl(r_input_10,' '),1,2),2)
3315 ||rpad(substr(nvl(r_input_11,' '),1,5),5)
3316 ||rpad(substr(nvl(r_input_12,' '),1,4),9)
3317 ||rpad(substr(nvl(r_input_13,' '),1,23),23)
3318 ||rpad(substr(nvl(r_input_14,' '),1,15),15)
3319 ||rpad(substr(nvl(r_input_15,' '),1,2),2)
3320 ||parameter_record(1).p_output_value
3321 ||parameter_record(2).p_output_value
3322 ||parameter_record(3).p_output_value
3323 ||parameter_record(4).p_output_value
3324 ||parameter_record(5).p_output_value
3325 ||parameter_record(6).p_output_value
3326 ||parameter_record(7).p_output_value
3327 ||parameter_record(8).p_output_value
3328 ||parameter_record(9).p_output_value
3329 ||parameter_record(10).p_output_value
3330 ||parameter_record(11).p_output_value
3331 ||parameter_record(12).p_output_value
3332 ||parameter_record(13).p_output_value
3333 ||parameter_record(14).p_output_value
3334 -- ||parameter_record(15).p_output_value
3335 --lpad(' ',11)
3339 -- Bug 3680056 New Field 364-374
3336 ||r_input_30
3337 --||rpad(parameter_record(15).p_output_value,22)
3338 ||parameter_record(15).p_output_value
3340 ||parameter_record(19).p_output_value
3341 --||rpad(parameter_record(16).p_output_value,33)
3342 ||parameter_record(16).p_output_value
3343 --||r_input_32
3344 ||rpad(r_input_40,22,' ')
3345 ||parameter_record(17).p_output_value
3346 --||rpad(parameter_record(18).p_output_value,67)
3347 ||parameter_record(18).p_output_value
3348 --||rpad(parameter_record(21).p_output_value,56,' ')
3349 /* Bug 7569563 */
3350 ||parameter_record(21).p_output_value
3351 ||parameter_record(22).p_output_value
3352 ||parameter_record(23).p_output_value --Bug 13255564
3353 ||lpad(nvl(r_input_45,'0'),11,'0') /* Bug# 13351713 */
3354 ||rpad(' ',12) /*Bug 13351713 --Cost of Employer-sponsored Health Coverage for 2011 */
3355 ||rpad(substr(nvl(r_input_35,'0'),1,1),2)
3356 ||rpad(substr(nvl(r_input_36,'0'),1,1),1)
3357 ||rpad(substr(nvl(r_input_37,'0'),1,1),24);
3358 -- || rpad(' ',83); /* 6648064 */
3359 ELSIF p_report_qualifier = 'PR' THEN --Bug 13255564
3360 return_value := 'RW'||l_ssn||l_first_name
3361 ||l_middle_name
3362 ||l_last_name||l_suffix
3363 ||rpad(substr(nvl(r_input_7,' '),1,22),22)
3364 ||rpad(substr(nvl(r_input_8,' '),1,22),22)
3365 ||rpad(substr(nvl(r_input_9,' '),1,22),22)
3366 ||rpad(substr(nvl(r_input_10,' '),1,2),2)
3367 ||rpad(substr(nvl(r_input_11,' '),1,5),5)
3368 ||rpad(substr(nvl(r_input_12,' '),1,4),9)
3369 ||rpad(substr(nvl(r_input_13,' '),1,23),23)
3370 ||rpad(substr(nvl(r_input_14,' '),1,15),15)
3371 ||rpad(substr(nvl(r_input_15,' '),1,2),2)
3372 ||parameter_record(1).p_output_value
3373 ||parameter_record(2).p_output_value
3374 ||parameter_record(3).p_output_value
3375 ||parameter_record(4).p_output_value
3376 ||parameter_record(5).p_output_value
3377 ||parameter_record(6).p_output_value
3378 ||parameter_record(7).p_output_value
3379 ||parameter_record(8).p_output_value
3380 ||parameter_record(9).p_output_value
3381 ||parameter_record(10).p_output_value
3382 ||parameter_record(11).p_output_value
3383 ||parameter_record(12).p_output_value
3384 ||parameter_record(13).p_output_value
3385 ||parameter_record(14).p_output_value
3386 -- ||parameter_record(15).p_output_value
3387 --lpad(' ',11)
3388 ||r_input_30
3389 --||rpad(parameter_record(15).p_output_value,22)
3390 ||parameter_record(15).p_output_value
3391 -- Bug 3680056 New Field 364-374
3392 ||parameter_record(19).p_output_value
3393 --||rpad(parameter_record(16).p_output_value,33)
3394 ||parameter_record(16).p_output_value
3395 --||r_input_32
3396 ||rpad(r_input_40,22,' ')
3397 ||parameter_record(17).p_output_value
3398 --||rpad(parameter_record(18).p_output_value,67)
3399 ||parameter_record(18).p_output_value
3400 --||rpad(parameter_record(21).p_output_value,56,' ')
3401 /* Bug 5256745 */
3402 ||parameter_record(21).p_output_value
3403 ||parameter_record(22).p_output_value
3404 ||parameter_record(23).p_output_value --Bug 13255564
3405 ||lpad(nvl(r_input_45,'0'),11,'0') /* Bug# 13351713 */
3406 ||rpad(' ',12) /* Bug 13255564 --Cost of Employer-sponsored Health Coverage for PR */
3407 ||rpad(substr(nvl(r_input_35,'0'),1,1),2)
3408 ||rpad(substr(nvl(r_input_36,'0'),1,1),1)
3409 ||rpad(substr(nvl(r_input_37,'0'),1,1),24);
3410
3411 ELSE
3412 return_value := 'RW'||l_ssn||l_first_name
3413 ||l_middle_name
3414 ||l_last_name||l_suffix
3415 ||rpad(substr(nvl(r_input_7,' '),1,22),22)
3416 ||rpad(substr(nvl(r_input_8,' '),1,22),22)
3417 ||rpad(substr(nvl(r_input_9,' '),1,22),22)
3418 ||rpad(substr(nvl(r_input_10,' '),1,2),2)
3419 ||rpad(substr(nvl(r_input_11,' '),1,5),5)
3420 ||rpad(substr(nvl(r_input_12,' '),1,4),9)
3421 ||rpad(substr(nvl(r_input_13,' '),1,23),23)
3422 ||rpad(substr(nvl(r_input_14,' '),1,15),15)
3423 ||rpad(substr(nvl(r_input_15,' '),1,2),2)
3424 ||parameter_record(1).p_output_value
3428 ||parameter_record(5).p_output_value
3425 ||parameter_record(2).p_output_value
3426 ||parameter_record(3).p_output_value
3427 ||parameter_record(4).p_output_value
3429 ||parameter_record(6).p_output_value
3430 ||parameter_record(7).p_output_value
3431 ||parameter_record(8).p_output_value
3432 ||parameter_record(9).p_output_value
3433 ||parameter_record(10).p_output_value
3434 ||parameter_record(11).p_output_value
3435 ||parameter_record(12).p_output_value
3436 ||parameter_record(13).p_output_value
3437 ||parameter_record(14).p_output_value
3438 -- ||parameter_record(15).p_output_value
3439 --lpad(' ',11)
3440 ||r_input_30
3441 --||rpad(parameter_record(15).p_output_value,22)
3442 ||parameter_record(15).p_output_value
3443 -- Bug 3680056 New Field 364-374
3444 ||parameter_record(19).p_output_value
3445 --||rpad(parameter_record(16).p_output_value,33)
3446 ||parameter_record(16).p_output_value
3447 --||r_input_32
3448 ||rpad(r_input_40,22,' ')
3449 ||parameter_record(17).p_output_value
3450 --||rpad(parameter_record(18).p_output_value,67)
3451 ||parameter_record(18).p_output_value
3452 --||rpad(parameter_record(21).p_output_value,56,' ')
3453 /* Bug 5256745 */
3454 ||parameter_record(21).p_output_value
3455 ||parameter_record(22).p_output_value
3456 ||parameter_record(23).p_output_value --Bug 13255564
3457 || lpad(nvl(r_input_45,'0'),11,'0') /* Bug# 13351713 */
3458 ||rpad(' ',12) --Bug 13255564 --Cost of Employer-sponsored Health Coverage for 2011
3459 ||rpad(substr(nvl(r_input_35,'0'),1,1),2)
3460 ||rpad(substr(nvl(r_input_36,'0'),1,1),1)
3461 ||rpad(substr(nvl(r_input_37,'0'),1,1),24);
3462 END IF ;
3463 ret_str_len:=length(return_value);
3464 hr_utility.trace('ret_str_len = '||to_char(ret_str_len));
3465 --}
3466 ELSIF p_input_40 = 'CSV' THEN
3467 --{
3468 hr_utility.trace('CSV');
3469 return_value :=
3470 'RW'||','||replace(p_input_2,',')
3471 ||','||replace(p_input_3,',',' ')||','||replace(p_input_4,',',' ')
3472 ||','||replace(p_input_5,',',' ')||','||replace(p_input_6,',',' ')
3473 ||','||rpad(substr(nvl(p_input_7,' '),1,22),22)
3474 ||','||rpad(substr(nvl(p_input_8,' '),1,22),22)
3475 ||','||rpad(substr(nvl(p_input_9,' '),1,22),22)
3476 ||','||rpad(substr(nvl(p_input_10,' '),1,2),2)
3477 ||','||rpad(substr(nvl(p_input_11,' '),1,5),5)
3478 ||','||rpad(substr(nvl(p_input_12,' '),1,4),4)
3479 ||','||lpad(' ',5)
3480 ||','||rpad(substr(nvl(p_input_13,' '),1,23),23)
3481 ||','||rpad(substr(nvl(p_input_14,' '),1,15),15)
3482 ||','||rpad(substr(nvl(p_input_15,' '),1,2),2)
3483 ||','||p_input_16
3484 ||','||p_input_17
3485 ||','||p_input_18
3486 ||','||p_input_19
3487 ||','||p_input_20
3488 ||','||p_input_21
3489 ||','||p_input_22
3490 ||','||p_input_23
3491 ||','||p_input_24
3492 ||','||p_input_25
3493 ||','||p_input_26
3494 ||','||p_input_27
3495 ||','||p_input_28
3496 ||','||p_input_29
3497 -- commented to fix bug # 2297587 ||','||p_input_30
3498 ||','||lpad('0',11,'0') /* Bug 4859212 */
3499 ||','||p_input_31
3500 ||','||p_input_38 -- Bug 3680056 ER Contrib to HSA
3501 ||','||p_input_32
3502 ||','||p_input_41 -- Bug # 4391218
3503 ||','||lpad(' ',11)
3504 ||','||p_input_33
3505 ||','||p_input_34
3506 ||','||p_input_42 -- Bug # 4391218
3507 /* Bug 5256745 */
3508 ||','||p_input_43
3509 ||','||p_input_44
3510 ||','||p_input_45 --removed padding to correct the formatting issue of .a02, Bug 13422328 /*Bug 13351713 */
3511 ||','||lpad(' ',23)
3512 ||','||rpad(nvl(p_input_35,'0'),1)
3513 ||','||lpad(' ',1)
3514 ||','||rpad(nvl(p_input_36,'0'),1)
3515 ||','||rpad(nvl(p_input_37,'0'),1)
3516 ||','||lpad(' ',23);
3517 --}
3518 ELSIF p_input_40 = 'BLANK' THEN
3519 --{
3520 hr_utility.trace('Formatting BLANK RW Record ');
3521 return_value :=
3522 ' '||','||' '
3523 ||','||' '||','||' '
3524 ||','||' '||','||' '
3525 ||','||' '
3526 ||','||' '
3527 ||','||' '
3528 ||','||' '
3529 ||','||' '
3530 ||','||' '
3531 ||','||lpad(' ',5)
3532 ||','||' '
3533 ||','||' '
3534 ||','||' '
3535 ||','||' '
3536 ||','||' '
3537 ||','||' '
3538 ||','||' '
3542 ||','||' '
3539 ||','||' '
3540 ||','||' '
3541 ||','||' '
3543 ||','||' '
3544 ||','||' '
3545 ||','||' '
3546 ||','||' '
3547 ||','||' '
3548 ||','||' '
3549 ||','||' '
3550 ||','||' '
3551 ||','||' '
3552 ||','||' ' -- Bug 3680056 ER Contrib to HSA
3553 ||','||' '
3554 ||','||' ' -- Bug # 4391218
3555 ||','||lpad(' ',11)
3556 ||','||' '
3557 ||','||' '
3558 ||','||' '
3559 /* Bug 5256745 */
3560 ||','||' ' -- Bug 13255564
3561 ||','||' '
3562 ||','||' '
3563 ||','||lpad(' ',23)
3564 ||','||' '
3565 ||','||lpad(' ',1)
3566 ||','||' '
3567 --||','||' ' Bug 13073346
3568 ||','||' ';
3569 hr_utility.trace(return_value);
3570 --}
3571 END IF;
3572 p_error := l_exclude_from_output_chk;
3573 ret_str_len:=length(return_value);
3574 return return_value;
3575
3576 END format_W2_RW_record;
3577 -- End of Formatting RW Record for W2 reporting
3578 --
3579 -- Formatting RO record for W2 reporting
3580 --
3581 /*-------------------------- Parameter Description ------------------------
3582 Record Identifier, --> p_input_1
3583 Allocated Tips, --> p_input_2
3584 Uncollected Employee Tax on Tips, --> p_input_3
3585 Medical Savings Account, --> p_input_4
3586 Simple Retirement Account, --> p_input_5
3587 Qualified Adoption Expenses, --> p_input_6
3588 Uncollected Social Security or RRTA Tax on GTL, --> p_input_7
3589 Uncollected Medicare Tax on GTL, --> p_input_8
3590 Civil Status, --> p_input_9
3591 Spouse''s Social Security Number (SSN), --> p_input_10
3592 Wages Subject to Puerto Rico Tax, --> p_input_11
3593 Commissions Subject to Puerto Rico Tax, --> p_input_12
3594 Allowances Subject to Puerto Rico Tax, --> p_input_13
3595 Tips Subject to Puerto Rico Tax, --> p_input_14
3596 Total Wages, Commissions, Tips, and Allow Sub. to PRTax, --> p_input_15
3597 Puerto Rico Tax Withheld, --> p_input_16
3598 Retirement Fund Annual Contributions, --> p_input_17
3599 Total Wages, Tips and other Compensation Subject to
3600 Virgin Islands, or Guam, or American Samoa, or Northern
3601 Mariana Islands Income Tax, --> p_input_18
3602 Virgin Islands, or Guam, or AS, or MP Income Tax Withheld --> p_input_19
3603 Marital Status S Single M Married etc --> p_input_20
3604 Employee SSN for Philadelphia use only --> p_input_21
3605 Income Under Section 409A on a Non-Qual Deferred Comp Plan --> p_input_22
3606 */
3607 FUNCTION format_W2_RO_record(
3608 p_effective_date IN varchar2,
3609 p_report_type IN varchar2,
3610 p_format IN varchar2,
3611 p_report_qualifier IN varchar2,
3612 p_record_name IN varchar2,
3613 p_input_1 IN varchar2,
3614 p_input_2 IN varchar2,
3615 p_input_3 IN varchar2,
3616 p_input_4 IN varchar2,
3617 p_input_5 IN varchar2,
3618 p_input_6 IN varchar2,
3619 p_input_7 IN varchar2,
3620 p_input_8 IN varchar2,
3621 p_input_9 IN varchar2,
3622 p_input_10 IN varchar2,
3623 p_input_11 IN varchar2,
3624 p_input_12 IN varchar2,
3625 p_input_13 IN varchar2,
3626 p_input_14 IN varchar2,
3627 p_input_15 IN varchar2,
3628 p_input_16 IN varchar2,
3629 p_input_17 IN varchar2,
3630 p_input_18 IN varchar2,
3631 p_input_19 IN varchar2,
3632 p_input_20 IN varchar2,
3633 p_input_21 IN varchar2,
3634 p_input_22 IN varchar2,
3635 p_input_23 IN varchar2,
3636 p_input_24 IN varchar2,
3637 p_input_25 IN varchar2,
3638 p_input_26 IN varchar2,
3639 p_input_27 IN varchar2,
3640 p_input_28 IN varchar2,
3641 p_input_29 IN varchar2,
3642 p_input_30 IN varchar2,
3643 p_input_31 IN varchar2,
3644 p_input_32 IN varchar2,
3645 p_input_33 IN varchar2,
3646 p_input_34 IN varchar2,
3647 p_input_35 IN varchar2,
3648 p_input_36 IN varchar2,
3649 p_input_37 IN varchar2,
3650 p_input_38 IN varchar2,
3651 p_input_39 IN varchar2,
3652 p_input_40 IN varchar2,
3656 sp_out_2 OUT nocopy varchar2,
3653 p_validate IN varchar2,
3654 p_exclude_from_output OUT nocopy varchar2,
3655 sp_out_1 OUT nocopy varchar2,
3657 sp_out_3 OUT nocopy varchar2,
3658 sp_out_4 OUT nocopy varchar2,
3659 sp_out_5 OUT nocopy varchar2,
3660 ret_str_len OUT nocopy number,
3661 p_error OUT nocopy boolean
3662 ) RETURN VARCHAR2
3663 IS
3664 l_full_name varchar2(100);
3665 l_emp_name_or_number varchar2(50);
3666 l_emp_number varchar2(50);
3667 l_first_name varchar2(150);
3668 l_middle_name varchar2(100);
3669 l_last_name varchar2(150);
3670 l_suffix varchar2(100);
3671 l_ssn varchar2(100);
3672 l_emp_ssn varchar2(100);
3673 l_message varchar2(2000);
3674 l_description varchar2(50);
3675 l_field_description varchar2(50);
3676 l_ss_count number(10);
3677 l_amount number(10);
3678 return_value varchar2(32767);
3679 l_err boolean;
3680 l_exclude_from_output_chk boolean;
3681 l_ss_tax_limit pay_us_federal_tax_info_f.ss_ee_wage_limit%TYPE;
3682 l_ss_wage_limit pay_us_federal_tax_info_f.ss_ee_wage_limit%TYPE;
3683
3684 TYPE function_columns IS RECORD(
3685 p_parameter_name varchar2(100),
3686 p_parameter_value varchar2(100),
3687 p_output_value varchar2(200) -- Changed size from 100 to 200 #9913436
3688 );
3689 function_parameter_rec function_columns;
3690 TYPE input_parameter_record IS TABLE OF function_parameter_rec%TYPE
3691 INDEX BY BINARY_INTEGER;
3692 parameter_record input_parameter_record;
3693
3694 r_input_1 varchar2(300);
3695 r_input_2 varchar2(300);
3696 r_input_3 varchar2(300);
3697 r_input_4 varchar2(300);
3698 r_input_5 varchar2(300);
3699 r_input_6 varchar2(300);
3700 r_input_7 varchar2(300);
3701 r_input_8 varchar2(300);
3702 r_input_9 varchar2(300);
3703 r_input_10 varchar2(300);
3704 r_input_11 varchar2(300);
3705 r_input_12 varchar2(300);
3706 r_input_13 varchar2(300);
3707 r_input_14 varchar2(300);
3708 r_input_15 varchar2(300);
3709 r_input_16 varchar2(300);
3710 r_input_17 varchar2(300);
3711 r_input_18 varchar2(300);
3712 r_input_19 varchar2(300);
3713 r_input_20 varchar2(300);
3714 r_input_21 varchar2(300);
3715 r_input_22 varchar2(300);
3716 r_input_23 varchar2(300);
3717 r_input_24 varchar2(300);
3718 r_input_25 varchar2(300);
3719 r_input_26 varchar2(300);
3720 r_input_27 varchar2(300);
3721 r_input_28 varchar2(300);
3722 r_input_29 varchar2(300);
3723 r_input_30 varchar2(300);
3724 r_input_31 varchar2(300);
3725 r_input_32 varchar2(300);
3726 r_input_33 varchar2(300);
3727 r_input_34 varchar2(300);
3728 r_input_35 varchar2(300);
3729 r_input_36 varchar2(300);
3730 r_input_37 varchar2(300);
3731 r_input_38 varchar2(300);
3732 r_input_39 varchar2(300);
3733
3734 BEGIN
3735 hr_utility.trace('Formatting RO Record');
3736 hr_utility.trace('Format Mode p_input_40 '||p_input_40);
3737 -- Initializing local variables with parameter value
3738 r_input_2 := p_input_2;
3739 r_input_3 := p_input_3;
3740 r_input_4 := p_input_4;
3741 r_input_5 := p_input_5;
3742 r_input_6 := p_input_6;
3743 r_input_7 := p_input_7;
3744 r_input_8 := p_input_8;
3745 r_input_9 := p_input_9;
3746 r_input_10 := p_input_10;
3747 r_input_11 := p_input_11;
3748 r_input_12 := p_input_12;
3749 r_input_13 := p_input_13;
3750 r_input_14 := p_input_14;
3751 r_input_15 := p_input_15;
3752 r_input_16 := p_input_16;
3753 r_input_17 := p_input_17;
3754 r_input_18 := p_input_18;
3755 r_input_19 := p_input_19;
3756 r_input_20 := p_input_20;
3757 r_input_21 := p_input_21;
3758 r_input_22 := p_input_22;
3759 r_input_23 := p_input_23;
3760 r_input_24 := p_input_24;
3761 r_input_25 := p_input_25;
3762 r_input_26 := p_input_26;
3763 r_input_27 := p_input_27;
3764 r_input_28 := p_input_28;
3765 r_input_29 := p_input_29;
3766 r_input_30 := p_input_30;
3767 r_input_31 := p_input_31;
3768 r_input_32 := p_input_32;
3769 r_input_33 := p_input_33;
3770 r_input_34 := p_input_34;
3771 r_input_35 := p_input_35;
3772 r_input_36 := p_input_36;
3773 r_input_37 := p_input_37;
3774 r_input_38 := p_input_38;
3775 r_input_39 := p_input_39;
3776
3777 IF p_input_40 = 'FLAT' THEN
3778 -- Validation Starts
3779 --{
3780 parameter_record(1).p_parameter_name:= ' Allocated Tips';
3781 parameter_record(1).p_parameter_value:=p_input_2;
3782
3783 parameter_record(2).p_parameter_name:= 'Uncollected employee tax on tips';
3784 parameter_record(2).p_parameter_value:=p_input_3;
3785
3786 parameter_record(3).p_parameter_name:= 'medical savings a/c';
3787 parameter_record(3).p_parameter_value:=p_input_4;
3788
3789 parameter_record(4).p_parameter_name:= 'simple retirement a/c';
3790 parameter_record(4).p_parameter_value:=p_input_5;
3791
3792 parameter_record(5).p_parameter_name:= 'qualified adopted expenses';
3793 parameter_record(5).p_parameter_value:=p_input_6;
3794
3795 parameter_record(6).p_parameter_name:= 'Uncollected ss or RRTA tax';
3796 parameter_record(6).p_parameter_value:=p_input_7;
3797
3798 parameter_record(7).p_parameter_name:= 'Uncollected medicare tax';
3799 parameter_record(7).p_parameter_value:=p_input_8;
3800
3801 parameter_record(8).p_parameter_name:= 'wages sub. to PR tax';
3802 parameter_record(8).p_parameter_value:=p_input_11;
3803
3804 parameter_record(9).p_parameter_name:= 'Commissions sub.to PR tax';
3805 parameter_record(9).p_parameter_value:=p_input_12;
3806
3807 parameter_record(10).p_parameter_name:= 'Allowances sub. to PR tax';
3808 parameter_record(10).p_parameter_value:=p_input_13;
3809
3810 parameter_record(11).p_parameter_name:= 'Tips sub to PR tax';
3811 parameter_record(11).p_parameter_value:=p_input_14;
3812
3813 parameter_record(12).p_parameter_name:= 'Total wages sub to PR tax';
3814 parameter_record(12).p_parameter_value:=p_input_15;
3815
3816 parameter_record(13).p_parameter_name:= 'PR tax withheld';
3817 parameter_record(13).p_parameter_value:=p_input_16;
3818
3819 parameter_record(14).p_parameter_name:= 'Retirement fund ann. contributions';
3820 parameter_record(14).p_parameter_value:=p_input_17;
3821
3822 parameter_record(15).p_parameter_name:= 'Total wages sub to VI,GU,AS and MP islands';
3823 parameter_record(15).p_parameter_value:=p_input_18;
3824
3825 parameter_record(16).p_parameter_name:= 'VI,GU or MP Islands income tax wh';
3826 parameter_record(16).p_parameter_value:=p_input_19;
3827
3828 parameter_record(17).p_parameter_name:= 'Income Under Sec 409A on a Non-Qual Def Comp Plan';
3829 parameter_record(17).p_parameter_value := p_input_22;
3830
3831 parameter_record(18).p_parameter_name:= 'HIRE Exempt Wages and Tips';
3832 parameter_record(18).p_parameter_value := p_input_24;
3833
3834 -- For the Bug 13255564
3835 parameter_record(19).p_parameter_name:= 'Designated Roth Contributions under a Governmental Section 457(b) plan';
3836 parameter_record(19).p_parameter_value := p_input_25;
3837
3838
3839 hr_utility.trace('Before the data validation loop.');
3840 --
3841 -- This loop used to validation above 17 input values
3842 --
3843 FOR i in 1..19 --Bug 13255564
3844 LOOP
3845 --{
3846 hr_utility.trace('Value of loop counter i is : ' || to_char(i));
3847 hr_utility.trace('Input '||parameter_record(i).p_parameter_name||' = '
3848 ||parameter_record(i).p_parameter_value);
3849
3850 parameter_record(i).p_output_value :=
3851 pay_us_reporting_utils_pkg.data_validation( p_effective_date,
3852 p_report_type,
3853 p_format,
3854 p_report_qualifier,
3855 p_record_name,
3856 'NEG_CHECK',
3857 parameter_record(i).p_parameter_value,
3858 parameter_record(i).p_parameter_name,
3859 p_input_39,
3860 null,
3861 p_validate,
3862 p_exclude_from_output,
3863 sp_out_1,
3864 sp_out_2);
3865
3866 IF p_exclude_from_output = 'Y' THEN
3867 l_exclude_from_output_chk := TRUE;
3868 END IF;
3869
3870 hr_utility.trace('Value of i is : ' || to_char(i));
3871 hr_utility.trace('Output ' || parameter_record(i).p_parameter_name||' = '
3872 ||parameter_record(i).p_output_value);
3873 hr_utility.trace('p_exclude_from_output = '||p_exclude_from_output);
3874 --}
3875 END LOOP; -- End of various Amount validation loop
3876 hr_utility.trace('After Amount data validation ');
3877 -- Spouse SSN validation
3878 IF p_input_20 = 'PR_M' THEN
3879 l_ssn:= replace(replace(p_input_10,' '),'I');
3880 IF l_ssn IS NULL THEN
3881 l_ssn:='000000000';
3882 ELSE
3883 l_ssn :=
3884 pay_us_reporting_utils_pkg.data_validation(p_effective_date,
3885 p_report_type,
3886 p_format,
3887 p_report_qualifier,
3888 p_record_name,
3889 'SSN',
3890 p_input_10,
3891 'Spouse Social Security',
3892 p_input_39,
3893 null,
3894 p_validate,
3895 p_exclude_from_output,
3896 sp_out_1,
3897 sp_out_2);
3898 IF p_exclude_from_output = 'Y' THEN
3899 l_exclude_from_output_chk := TRUE;
3900 END IF;
3901 END IF;
3902 ELSE
3903 l_ssn:=lpad(' ',9);
3904 END IF;
3905 hr_utility.trace('After Spouse SSN validation. SSN = '||l_ssn);
3906 -- This is added for Philadelphia locality
3907 --
3908 IF (p_report_qualifier = 'PA_PHILA') THEN
3909 IF p_input_21 IS NULL THEN
3910 l_emp_ssn:=lpad(' ',9);
3911 ELSE
3912 l_emp_ssn :=
3913 pay_us_reporting_utils_pkg.data_validation(
3914 p_effective_date,
3915 p_report_type,
3916 p_format,
3917 p_report_qualifier,
3918 p_record_name,
3919 'SSN',
3920 p_input_21,
3921 'Employee Social Security',
3922 p_input_39,
3923 null,
3924 p_validate,
3925 p_exclude_from_output,
3926 sp_out_1,
3927 sp_out_2);
3928 hr_utility.trace('For Philadelphia SSN after validation. = '||l_emp_ssn);
3929 IF p_exclude_from_output = 'Y' THEN
3930 l_exclude_from_output_chk := TRUE;
3931 END IF;
3932 END IF;
3933 END IF;
3934
3935 -- Validation Ends
3936 --
3937 -- Formatting Starts
3938
3939
3940 IF (p_report_qualifier = 'PA_PHILA') THEN
3941 r_input_9 := ' ';
3942 l_ssn := lpad(' ',9);
3943 r_input_11 := lpad('0',11,'0');
3944 r_input_12 := lpad('0',11,'0');
3945 r_input_13 := lpad('0',11,'0');
3946 r_input_14 := lpad('0',11,'0');
3947 r_input_15 := lpad('0',11,'0');
3948 r_input_16 := lpad('0',11,'0');
3949 r_input_17 := lpad('0',11,'0');
3950 r_input_18 := lpad('0',11,'0');
3951 r_input_19 := lpad('0',11,'0');
3952 -- r_input_23 := '';
3953 r_input_23 := lpad(' ',11); --13515271
3954 -- r_input_24 := rpad(parameter_record(19).p_output_value,165); -- bug 13255564
3955 r_input_24 := rpad(parameter_record(19).p_output_value,154); --13515271
3956 ELSIF (p_report_qualifier = 'PR') THEN
3957 l_ssn := lpad(' ',9); /* Bug 4665713 */
3958 r_input_2 := lpad('0',11,'0');
3959 r_input_3 := parameter_record(2).p_output_value;
3960 r_input_4 := lpad('0',11,'0');
3961 r_input_5 := lpad('0',11,'0');
3962 r_input_6 := lpad('0',11,'0');
3963 r_input_7 := parameter_record(6).p_output_value;
3964 --r_input_8 := rpad(parameter_record(7).p_output_value,187);
3965 r_input_8 := parameter_record(7).p_output_value ;
3966 r_input_9 := ' '; -- Bug # 5668970
3967 -- r_input_22 := rpad(parameter_record(17).p_output_value,176);
3968 r_input_22 := parameter_record(17).p_output_value;
3969 r_input_23 := rpad(parameter_record(18).p_output_value,165); --10427851
3970 r_input_11 := parameter_record(8).p_output_value;
3971 r_input_12 := parameter_record(9).p_output_value;
3972 r_input_13 := parameter_record(10).p_output_value;
3973 r_input_14 := parameter_record(11).p_output_value;
3974 r_input_15 := parameter_record(12).p_output_value;
3975 r_input_16 := parameter_record(13).p_output_value;
3976 r_input_17 := parameter_record(14).p_output_value;
3977 ELSE
3978 l_emp_ssn := lpad(' ',9);
3982 r_input_14 := parameter_record(11).p_output_value;
3979 r_input_11 := parameter_record(8).p_output_value;
3980 r_input_12 := parameter_record(9).p_output_value;
3981 r_input_13 := parameter_record(10).p_output_value;
3983 r_input_15 := parameter_record(12).p_output_value;
3984 r_input_16 := parameter_record(13).p_output_value;
3985 r_input_17 := parameter_record(14).p_output_value;
3986 r_input_18 := parameter_record(15).p_output_value;
3987 r_input_19 := parameter_record(16).p_output_value;
3988 if p_report_qualifier in ( 'FED','ID','KY') then
3989 r_input_23 := parameter_record(18).p_output_value;
3990 r_input_24 := rpad(parameter_record(19).p_output_value,154); -- bug 13255564
3991 else
3992 r_input_23 := lpad(' ',11); --13515271
3993 r_input_24 := rpad(parameter_record(19).p_output_value,154); --13515271
3994 /* Commented for bug 13515271
3995 r_input_23 := '';
3996 --parameter_record(17).p_output_value:=rpad(parameter_record(17).p_output_value,176);
3997 r_input_24 := rpad(parameter_record(19).p_output_value,165); -- bug 13255564*/
3998 end if;
3999 END IF;
4000
4001
4002 /* 6806139 */
4003 /* 5155648 */
4004 /* IF ( p_report_qualifier = 'FED' AND UPPER(p_input_23) = 'P') THEN
4005 r_input_11 := lpad('0',11,'0');
4006 END IF ; */
4007
4008
4009 /* This changes made for PR for fixing Bug # 2736928 */
4010 /* Bug # 3337295 fixed RO record fields for PR.
4011 These changes gone with YE 2003 Phase III
4012 position 352-362 - should now contain blanks
4013 363-384 - should contain zeroes
4014 385-512 - should now contain blanks
4015 */
4016 -- Formatting Ends
4017 IF (p_report_qualifier = 'PR') THEN
4018 --{
4019 return_value:='RO'
4020 ||lpad(' ',9)
4021 ||r_input_2
4022 ||r_input_3
4023 ||r_input_4
4024 ||r_input_5
4025 ||r_input_6
4026 /* ||r_input_7
4027 ||r_input_8 */
4028 ||lpad('0',22,'0') /* 6644795 */
4029 ||r_input_22
4030 ||r_input_23 --10427851
4031 -- ||rpad(nvl(r_input_9,' '),1) /* 6330489 */
4032 ||rpad(' ',1)/* 6330489 */
4033 --||l_ssn
4034 /* Bug 5256745 */
4035 ||lpad(' ',9)
4036 ||r_input_11
4037 ||r_input_12
4038 ||r_input_13
4039 ||r_input_14
4040 ||r_input_15
4041 ||r_input_16
4042 ||r_input_17
4043 ||lpad(' ',11)
4044 ||lpad('0',22,'0')
4045 ||lpad(' ',128);
4046 --}
4047 ELSIF p_report_qualifier NOT IN ('MO_KNSAS','MO_STLOU','OH_CCAAA','OH_DAYTO','OH_RTCCA','PA_PHILA') THEN
4048 --{
4049 return_value:='RO'
4050 ||lpad(l_emp_ssn,9) -- Added for Philadelphia locality
4051 ||lpad(parameter_record(1).p_output_value,11)
4052 ||parameter_record(2).p_output_value
4053 ||parameter_record(3).p_output_value
4054 ||parameter_record(4).p_output_value
4055 ||parameter_record(5).p_output_value
4056 ||parameter_record(6).p_output_value
4057 --||rpad(parameter_record(7).p_output_value,187)
4058 ||parameter_record(7).p_output_value
4059 ||parameter_record(17).p_output_value
4060 ||r_input_23
4061 ||r_input_24 -- Bug 13255564
4062 -- ||rpad(nvl(r_input_9,' '),1) /* 6330489 */
4063 ||rpad(' ',1) /* 6330489 */
4064 --||l_ssn
4065 /* Bug 5256745 */
4066 ||lpad(' ',9)
4067 ||r_input_11
4068 ||r_input_12
4069 ||r_input_13
4070 ||r_input_14
4071 ||r_input_15
4072 ||r_input_16
4073 ||rpad(r_input_17,22)
4074 ||r_input_18
4075 ||rpad(r_input_19,139);
4076
4077 --}
4078 ELSE
4079
4080 return_value:='RO'
4081 ||lpad(l_emp_ssn,9) -- Added for Philadelphia locality
4082 ||lpad(parameter_record(1).p_output_value,11)
4083 ||parameter_record(2).p_output_value
4084 ||parameter_record(3).p_output_value
4085 ||parameter_record(4).p_output_value
4086 ||parameter_record(5).p_output_value
4087 ||parameter_record(6).p_output_value
4088 --||rpad(parameter_record(7).p_output_value,187)
4089 ||parameter_record(7).p_output_value
4090 ||parameter_record(17).p_output_value
4091 ||r_input_23 -- Bug 13255564
4092 ||r_input_24 -- Bug 13255564
4093 ||rpad(nvl(r_input_9,' '),1)
4094 --||l_ssn
4095 /* Bug 5256745 */
4096 ||lpad(' ',9)
4097 ||r_input_11
4098 ||r_input_12
4099 ||r_input_13
4100 ||r_input_14
4101 ||r_input_15
4102 ||r_input_16
4103 ||rpad(r_input_17,22)
4104 ||r_input_18
4105 ||rpad(r_input_19,139);
4106 END IF;
4107
4108 ret_str_len:=length(return_value);
4109 hr_utility.trace('length of return_Value RO = '||to_char(ret_str_len));
4110 --}
4111 ELSIF p_input_40 = 'CSV' THEN
4112 --{
4113 -- Format Mode CSV
4114 --
4115 IF (p_report_qualifier = 'PR') THEN
4116 --{
4117
4118 return_value:=','|| -- As RO_Status column removed from RO record header coma is now prefixed
4119 p_input_1
4120 ||','||lpad(' ',9)
4121 ||','||p_input_2
4122 ||','||p_input_3
4123 ||','||p_input_4
4124 ||','||p_input_5
4125 ||','||p_input_6
4126 ||','||p_input_7
4127 ||','||p_input_8
4128 ||','||p_input_22
4129 ||','||p_input_24--10427851
4130 ||','||' ' --Bug 13255564
4131 ||','||lpad(' ',154)
4132 ||','||rpad(nvl(p_input_9,' '),1)
4133 ||','||p_input_10
4134 ||','||p_input_11
4135 ||','||p_input_12
4136 ||','||p_input_13
4137 ||','||p_input_14
4138 ||','||p_input_15
4139 ||','||p_input_16
4140 ||','||p_input_17
4141 ||','||lpad(' ',11)
4142 ||','||lpad('0',11,'0')
4143 ||','||lpad('0',11,'0')
4144 ||','||lpad(' ',128);
4145 --}
4149 p_input_1
4146 ELSE
4147 --{
4148 return_value:=','|| -- As RO_Status column removed from RO record header coma is now prefixed
4150 ||','||lpad(' ',9)
4151 ||','||p_input_2
4152 ||','||p_input_3
4153 ||','||p_input_4
4154 ||','||p_input_5
4155 ||','||p_input_6
4156 ||','||p_input_7
4157 ||','||p_input_8
4158 ||','||p_input_22
4159 ||','||p_input_24
4160 ||','||p_input_25 --Bug 13255564
4161 ||','||lpad(' ',154)
4162 ||','||rpad(nvl(p_input_9,' '),1)
4163 ||','||p_input_10
4164 ||','||p_input_11
4165 ||','||p_input_12
4166 ||','||p_input_13
4167 ||','||p_input_14
4168 ||','||p_input_15
4169 ||','||p_input_16
4170 ||','||p_input_17
4171 ||','||lpad(' ',11)
4172 ||','||p_input_18
4173 ||','||p_input_19
4174 ||','||lpad(' ',128);
4175 --}
4176
4177 END IF;
4178 ELSIF p_input_40 = 'BLANK' THEN
4179 --{
4180 -- Format Mode BLANK (used for Formatting Blank RO Record)
4181 --
4182 IF (p_report_qualifier = 'PR') THEN
4183 return_value:=--','|| As RO_Status column removed from RO record header coma is now prefixed
4184 ' '
4185 ||','||lpad(' ',9)
4186 ||','||' '
4187 ||','||' '
4188 ||','||' '
4189 ||','||' '
4190 ||','||' '
4191 ||','||' '
4192 ||','||' '
4193 ||','||' '
4194 ||','||lpad(' ',165)
4195 ||','||' '
4196 ||','||' '
4197 ||','||' '
4198 ||','||' '
4199 ||','||' '
4200 ||','||' '
4201 ||','||' '
4202 ||','||' '
4203 ||','||' '
4204 ||','||' '
4205 ||','||' '
4206 ||','||' '
4207 ||','||lpad(' ',11)
4208 ||','||' '
4209 ||','||' '
4210 ||','||lpad(' ',128);
4211 --}
4212 ELSE
4213 return_value:= ' '
4214 ||','||lpad(' ',9)
4215 ||','||' '
4216 ||','||' '
4217 ||','||' '
4218 ||','||' '
4219 ||','||' '
4220 ||','||' '
4221 ||','||' '
4222 ||','||' '
4223 ||','||lpad(' ',154)
4224 ||','||lpad(' ',11)
4225 ||','||' '
4226 ||','||' '
4227 ||','||' '
4228 ||','||' '
4229 ||','||' '
4230 ||','||' '
4231 ||','||' '
4232 ||','||' '
4233 ||','||' '
4234 ||','||lpad(' ',11)
4235 ||','||' '
4236 ||','||' '
4237 ||','||' '-- Bug 13073346
4238 ||','||' '-- Bug 13255564
4239 ||','||lpad(' ',128);
4240 END IF ;
4241 END IF;
4242 p_error := l_exclude_from_output_chk;
4243 ret_str_len:=length(return_value);
4244 return return_value;
4245
4246 END format_W2_RO_record;
4247 -- End of formatting RO record for W2 reporting
4248 --
4249
4250 /* ---------------------- Parameter Mapping -----------------------
4251 Record Identifier --> p_input_1
4252 State Code --> p_input_2
4253 Taxing Entity Code --> p_input_3
4254 Social Security Number (SSN) --> p_input_4
4255 Employee First Name --> p_input_5
4256 Employee Middle Name or Initial --> p_input_6
4257 Employee Last Name --> p_input_7
4258 Suffix --> p_input_8
4259 Location Address --> p_input_9
4260 Delivery Address --> p_input_10
4261 City --> p_input_11
4262 State Abbreviation --> p_input_12
4263 Zip Code --> p_input_13
4264 Zip Code Extension --> p_input_14
4265 Foreign State / Province --> p_input_15
4266 Foreign Postal Code --> p_input_16
4267 Country Code --> p_input_17
4268 Optional Code --> p_input_18
4269 Reporting Period --> p_input_19
4270 State Quarterly Unemployment Insurance Total Wages --> p_input_20
4271 State Quarterly Unemployment Total Taxable Wages --> p_input_21
4272 Number of Weeks Worked --> p_input_22
4276 State Code --> p_input_26
4273 Date First Employed --> p_input_23
4274 Date of Separation --> p_input_24
4275 State Employer Account Number --> p_input_25
4277 State Taxable Wages --> p_input_27
4278 SIT Withheld --> p_input_28
4279 Other State Data --> p_input_29
4280 Tax Type Code --> p_input_30
4281 Local Taxable Wages --> p_input_31
4282 Local Income Tax Withheld --> p_input_32
4283 State Control Number --> p_input_33
4284 Supplemental Data 1 --> p_input_34
4285 Supplemental Data 2 --> p_input_35
4286
4287 Fed Wages Tips and other comp (for state MA) |
4288 Contrib to Qual Plans (for PR) |----> p_input_36
4289 FIT Withheld (for state MD) |
4290 Tax credit amt for KY indus revit act (state KY) |
4291 Federal Employer Account Number (for state AL) |
4292
4293 Supplemental Data for KS state --> p_input_34
4294 used for KS state EE contributions to public EE's retirement System
4295 (KPERS, KPF or Judges)
4296
4297 Malpractice Insurance Fund (MIF) for NJ State --> p_input_36
4298
4299 Cost Reimbursement (for PR) |----> p_input_37
4300 Tax credit amt for KY indus dev act (state KY) |
4301 Employee Withholding Allowance provided on W4 |
4302 as of 31st December,YYYY (for Maryland) |
4303
4304 Serial Number (for PR) --> p_input_38
4305 EE number used for trace messg purpose --> p_input_39
4306
4307 For PuertoRico: ( Added following for the bug 13449377 )
4308 ---------------
4309 PR W2 Charitable Contributions --> p_input_18
4310 PR W2 Contr To Save and Double Money --> p_input_20
4311
4312
4313 */
4314
4315 FUNCTION format_W2_RS_record(
4316 p_effective_date IN varchar2,
4317 p_report_type IN varchar2,
4318 p_format IN varchar2,
4319 p_report_qualifier IN varchar2,
4320 p_record_name IN varchar2,
4321 p_input_1 IN varchar2,
4322 p_input_2 IN varchar2,
4323 p_input_3 IN varchar2,
4324 p_input_4 IN varchar2,
4325 p_input_5 IN varchar2,
4326 p_input_6 IN varchar2,
4327 p_input_7 IN varchar2,
4328 p_input_8 IN varchar2,
4329 p_input_9 IN varchar2,
4330 p_input_10 IN varchar2,
4331 p_input_11 IN varchar2,
4332 p_input_12 IN varchar2,
4333 p_input_13 IN varchar2,
4334 p_input_14 IN varchar2,
4335 p_input_15 IN varchar2,
4336 p_input_16 IN varchar2,
4337 p_input_17 IN varchar2,
4338 p_input_18 IN varchar2,
4339 p_input_19 IN varchar2,
4340 p_input_20 IN varchar2,
4341 p_input_21 IN varchar2,
4342 p_input_22 IN varchar2,
4343 p_input_23 IN varchar2,
4344 p_input_24 IN varchar2,
4345 p_input_25 IN varchar2,
4346 p_input_26 IN varchar2,
4347 p_input_27 IN varchar2,
4348 p_input_28 IN varchar2,
4349 p_input_29 IN varchar2,
4350 p_input_30 IN varchar2,
4351 p_input_31 IN varchar2,
4352 p_input_32 IN varchar2,
4353 p_input_33 IN varchar2,
4354 p_input_34 IN varchar2,
4355 p_input_35 IN varchar2,
4356 p_input_36 IN varchar2,
4357 p_input_37 IN varchar2,
4358 p_input_38 IN varchar2,
4359 p_input_39 IN varchar2,
4360 p_input_40 IN varchar2,
4361 p_validate IN varchar2,
4362 p_exclude_from_output OUT nocopy varchar2,
4363 sp_out_1 OUT nocopy varchar2,
4364 sp_out_2 OUT nocopy varchar2,
4365 sp_out_3 OUT nocopy varchar2,
4366 sp_out_4 OUT nocopy varchar2,
4367 sp_out_5 OUT nocopy varchar2,
4368 ret_str_len OUT nocopy number,
4369 p_error OUT nocopy boolean
4370 ) RETURN VARCHAR2
4371 IS
4372 return_value varchar2(32767);
4373 l_s_hyphen_position number := 0;
4374 l_pblm_code varchar2(1);
4375 l_preparer_code varchar2(1);
4376 l_input_1 varchar2(100);
4377 l_records number(10);
4378 l_input_2 varchar2(100);
4379 l_record_identifier varchar2(2);
4380 l_tax_year date;
4384 l_agent_ein varchar2(100);
4381 l_agent_indicator varchar2(1);
4382 l_emp_ein varchar2(100);
4383 l_term_indicator varchar2(1);
4385 l_other_ein varchar2(100);
4386 l_input_8 varchar2(50);
4387 l_check varchar2(1);
4388 l_employment_code varchar2(1);
4389 p_exc varchar2(10);
4390 main_return_string varchar2(300);
4391 l_resub_tlcn varchar2(100);
4392 l_pin varchar2(50);
4393 l_ssn varchar2(100);
4394 l_wages_tips varchar2(100);
4395 l_full_name varchar2(100);
4396 l_emp_name_or_number varchar2(50);
4397 l_emp_number varchar2(50);
4398 l_first_name varchar2(150);
4399 l_middle_name varchar2(100);
4400 l_last_name varchar2(150);
4401 l_suffix varchar2(100);
4402 l_mif varchar2(100);
4403 l_err boolean;
4404 l_exclude_from_output_chk boolean;
4405 l_message varchar2(2000);
4406 l_ss_tax_limit pay_us_federal_tax_info_f.ss_ee_wage_limit%TYPE;
4407 l_description varchar2(50);
4408 l_field_description varchar2(50);
4409 l_ss_wage_limit pay_us_federal_tax_info_f.ss_ee_wage_limit%TYPE;
4410 l_ss_count number(10);
4411 l_amount number(10);
4412 l_tax_ct_job_dev varchar2(30);
4413 l_tax_ct_ind_revit varchar2(30);
4414 l_tax_ct_ind_dev varchar2(30);
4415 l_tax_ct_rural varchar2(30);
4416 l_fit_wh varchar2(30);
4417 l_total_records varchar2(50);
4418 l_wages varchar2(100);
4419 l_taxes varchar2(100);
4420 l_deferred_comp varchar2(100);
4421 l_sdi_wh varchar2(100);
4422 l_state_length number(10);
4423 l_unemp_insurance varchar2(100);
4424 l_fica_mcr_wh varchar2(100);
4425 l_bus_tax_acct_number varchar2(50);
4426 l_w2_govt_ee_contrib varchar2(100);
4427 l_w2_fed_wages varchar2(100);
4428 l_wa_sqwl_outstring varchar2(200);
4429
4430 /* PuertoRico W2 related variables Bug # 2736928 */
4431 l_contact_person_phone_no varchar2(100); -- mapped to r_input_34
4432 l_pension_annuity varchar2(100); -- mapped to r_input_35
4433 l_contribution_plan varchar2(100); -- mapped to r_input_36
4434 l_cost_reimbursement varchar2(100); -- mapped to r_input_37
4435 l_uncollected_ss_tax_on_tips varchar2(100); -- mapped to r_input_31
4436 l_uncollected_med_tax_on_tips varchar2(100); -- mapped to r_input_32
4437 l_rt_end_of_rec varchar2(200);
4438 l_end_of_rec varchar2(20);
4439 l_length number(10);
4440 /* Bug 2789523 */
4441 l_last_field varchar2(100);
4442 /* Bug 3180532 - local variable for audit record (CSV/BLANK) */
4443 l_audit_field_17 varchar2(100);
4444 l_fl_field_17_20 varchar2(100);
4445 /* EE contributions to public EE's retirement System */
4446 l_ee_contrib_pub_retire_system varchar2(100);
4447 /* Bug 4084765 */
4448 l_nj_dipp_plan_id varchar2(14);
4449
4450 /* Bug # 5513076 and 5637673 */
4451 swap_street_location_indiana varchar2(300);
4452 IN_state_adv_EIC varchar2(100);
4453
4454 r_input_1 varchar2(300);
4455 r_input_2 varchar2(300);
4456 r_input_3 varchar2(300);
4457 r_input_4 varchar2(300);
4458 r_input_5 varchar2(300);
4459 r_input_6 varchar2(300);
4460 r_input_7 varchar2(300);
4461 r_input_8 varchar2(300);
4462 r_input_9 varchar2(300);
4463 r_input_10 varchar2(300);
4464 r_input_11 varchar2(300);
4465 r_input_12 varchar2(300);
4466 r_input_13 varchar2(300);
4467 r_input_14 varchar2(300);
4468 r_input_15 varchar2(300);
4469 r_input_16 varchar2(300);
4470 r_input_17 varchar2(300);
4471 r_input_18 varchar2(300);
4472 r_input_19 varchar2(300);
4473 r_input_20 varchar2(300);
4474 r_input_21 varchar2(300);
4475 r_input_22 varchar2(300);
4476 r_input_23 varchar2(300);
4477 r_input_24 varchar2(300);
4478 r_input_25 varchar2(300);
4479 r_input_26 varchar2(300);
4480 r_input_27 varchar2(300);
4481 r_input_28 varchar2(300);
4482 r_input_29 varchar2(300);
4483 r_input_30 varchar2(300);
4484 r_input_31 varchar2(300);
4485 r_input_32 varchar2(300);
4486 r_input_33 varchar2(300);
4487 r_input_34 varchar2(500); /* Increased for Puerto Rico */
4488 r_input_35 varchar2(300);
4489 r_input_36 varchar2(300);
4490 r_input_37 varchar2(300);
4491 r_input_38 varchar2(300);
4492 r_input_39 varchar2(300);
4493
4494 BEGIN
4495 hr_utility.trace('Formatting RS record for W2 reporting');
4496 hr_utility.trace('p_report_qualifier = '||p_report_qualifier);
4497 -- Initializing local variables with parameter value
4498 --{
4502 r_input_5 := p_input_5;
4499 r_input_2 := p_input_2;
4500 r_input_3 := p_input_3;
4501 r_input_4 := p_input_4;
4503 r_input_6 := p_input_6;
4504 r_input_7 := p_input_7;
4505 r_input_8 := p_input_8;
4506 r_input_9 := p_input_9;
4507 r_input_10 := p_input_10;
4508 r_input_11 := p_input_11;
4509 r_input_12 := p_input_12;
4510 r_input_13 := p_input_13;
4511 r_input_14 := p_input_14;
4512 r_input_15 := p_input_15;
4513 r_input_16 := p_input_16;
4514 r_input_17 := p_input_17;
4515 r_input_18 := p_input_18;
4516 r_input_19 := p_input_19;
4517 r_input_20 := p_input_20;
4518 r_input_21 := p_input_21;
4519 r_input_22 := p_input_22;
4520 r_input_23 := p_input_23;
4521 r_input_24 := p_input_24;
4522 r_input_25 := p_input_25;
4523 r_input_26 := p_input_26;
4524 r_input_27 := p_input_27;
4525 r_input_28 := p_input_28;
4526 r_input_29 := p_input_29;
4527 r_input_30 := p_input_30;
4528 r_input_31 := p_input_31;
4529 r_input_32 := p_input_32;
4530 r_input_33 := p_input_33;
4531 r_input_34 := p_input_34;
4532 r_input_35 := p_input_35;
4533 r_input_36 := p_input_36;
4534 r_input_37 := p_input_37;
4535 r_input_38 := p_input_38;
4536 r_input_39 := p_input_39;
4537 --}
4538 l_state_length := length(replace(p_input_2,' ')); /* Fix for State code.*/
4539 IF l_state_length < 2 THEN
4540 r_input_2 := lpad(replace(p_input_2,' '),2,0);
4541 r_input_26 := lpad(replace(p_input_26,' '),2,0);
4542 hr_utility.trace('l_state_length = '||to_char(l_state_length));
4543 hr_utility.trace('l_state_length < 2.State code r_input_2 = '||r_input_2);
4544 hr_utility.trace('State code r_input_26 = '||r_input_26);
4545 END IF;
4546
4547 /* Pos:3 - 4 State Code Blank for AL,MA,MD */
4548 IF (/*(p_report_qualifier = 'MA') OR 6720319 */
4549 (p_report_qualifier = 'MD') OR
4550 (p_report_qualifier = 'MO_STLOU') OR
4551 -- (p_report_qualifier = 'OH_CCAAA') OR
4552 (p_report_qualifier = 'MO_KNSAS') OR
4553 -- (p_report_qualifier = 'KS') OR -- Added for Bug # 2644092 commented to fix bug # 4012469
4554 (p_report_qualifier = 'AL')) THEN
4555 r_input_2 := lpad(' ',2);
4556 ELSE
4557 r_input_2 := rpad(nvl(r_input_2,' '),2);
4558 END IF;
4559 /* Bug 13325368 - Format changes for the year 2011 */
4560 IF ( p_report_qualifier = 'OH_CCAAA' ) THEN
4561 r_input_2 := '39';
4562 END IF;
4563
4564 /* Pos:5 - 9 Taxing entity code blank for these states and local */
4565
4566 /* Bug 13325368 - Format changes for the year 2011 */
4567 IF p_report_qualifier = 'OH_CCAAA' THEN
4568 r_input_3 := 'CC' ||rpad(nvl(replace(p_input_29,' '),'000'),3);
4569 ELSIF p_report_qualifier = 'OH_DAYTO' THEN
4570 r_input_3 := lpad(nvl(p_input_29,' '),5);
4571 ELSIF p_report_qualifier = 'PR' THEN /* For bug # 2736928 */
4572 r_input_3 := lpad('0',5,'0');
4573 ELSE
4574 r_input_3 := lpad(' ',5);
4575 END IF;
4576
4577 /* Pos:10 - 18 Social security number */
4578
4579 IF p_input_40 = 'FLAT' THEN
4580 l_ssn := pay_us_reporting_utils_pkg.data_validation(
4581 p_effective_date,
4582 p_report_type,
4583 p_format,
4584 p_report_qualifier,
4585 p_record_name,
4586 'SSN',
4587 r_input_4,
4588 'Social Security',
4589 p_input_39, --EE number for messg purpose.
4590 null,
4591 p_validate,
4592 p_exclude_from_output,
4593 sp_out_1,
4594 sp_out_2);
4595 IF p_exclude_from_output = 'Y' THEN
4596 l_exclude_from_output_chk := TRUE;
4597 END IF;
4598 ELSE
4599 l_ssn := replace(replace(r_input_4,'-'),',');
4600 END IF;
4601
4602 hr_utility.trace('SSN after Validation and Formatting = '||l_ssn);
4603
4604 /* Pos:19 - 33 First name
4605 Pos:34 - 48 Middle name
4606 Pos:49 - 68 Last name
4607 Pos:69 - 72 suffix */
4608
4609 l_first_name := pay_us_reporting_utils_pkg.Character_check(rpad(
4610 nvl(substr(r_input_5,1,15),' '),15));
4611 l_middle_name := pay_us_reporting_utils_pkg.Character_check(rpad(
4612 nvl(substr(r_input_6,1,15),' '),15));
4613 l_last_name := pay_us_reporting_utils_pkg.Character_check(rpad(
4614 nvl(substr(r_input_7,1,20),' '),20));
4615 l_suffix := pay_us_reporting_utils_pkg.Character_check(rpad(
4616 nvl(substr(r_input_8,1,4),' '),4));
4617 --bug 10266082
4618 if (p_report_qualifier = 'VA') then
4619 l_middle_name := pay_us_reporting_utils_pkg.Character_check(rpad(' ',15));
4620 l_suffix := pay_us_reporting_utils_pkg.Character_check(rpad(' ',4));
4621 end if;
4622 --bug 10266082
4623 hr_utility.trace('l_suffix = '||l_suffix);
4624
4625 /* Suffix blank for MD,OH_RC,MD_SQWL,MN_SQWL,OH_SQWL */
4626 IF ((p_report_qualifier = 'MD') OR
4627 (p_report_qualifier = 'OH_CCAAA') OR
4628 (p_report_qualifier = 'MO_KNSAS') OR -- Fix for Bug # 3067494
4629 (p_report_qualifier = 'OH_RTCCA')) THEN
4630 l_suffix := lpad(' ',4);
4631 END IF;
4632
4633 /* Pos:69 - 149 blank for AL,NC,MO,WV */
4634 IF ((p_report_qualifier = 'AL') OR
4638 ) THEN
4635 (p_report_qualifier = 'NC') OR
4636 (p_report_qualifier = 'MO') --OR -- Fix for bug # 2149507 Bug # 7572620
4637 -- (p_report_qualifier = 'WV') -- Bug # 3186636
4639 --{
4640 hr_utility.trace('Pos:69 - 149 blank for state '||p_report_qualifier);
4641 l_suffix := lpad(' ',4);
4642 r_input_9 := lpad(' ',22);
4643 r_input_10 := lpad(' ',22);
4644 r_input_11 := lpad(' ',22);
4645 r_input_12 := lpad(' ',2);
4646 r_input_13 := lpad(' ',5);
4647 r_input_14 := lpad(' ',4);
4648 --}
4649 END IF;
4650 --bug 10266082
4651 IF (p_report_qualifier = 'VA') then
4652 r_input_11 := lpad(' ',22);
4653 r_input_12 := lpad(' ',2);
4654 r_input_13 := lpad(' ',5);
4655 r_input_14 := lpad(' ',4);
4656 end if;
4657 --bug 10266082
4658 IF p_report_qualifier = 'MI' then /* 7681852 */
4659 l_suffix := lpad(' ',4);
4660 end if;
4661
4662 /* Commented for the Bug 16339837
4663 IF (p_report_qualifier = 'LA') -- Bug # 3130999
4664 THEN
4665 r_input_9 := lpad(' ',22);
4666 END IF;
4667 */
4668
4669
4670 /* Zip ext is null for MT and ME */
4671
4672 IF ((p_report_qualifier = 'MT') OR
4673 (p_report_qualifier = 'MO_STLOU') OR
4674 (p_report_qualifier = 'ME')) THEN
4675 r_input_14 := lpad(' ',4);
4676 END IF;
4677
4678 /* Pos:155 - 177 178 - 192 193 - 194
4679 Foreign State / Province --> r_input_15
4680 Foreign Postal Code --> r_input_16
4681 Country Code --> r_input_17
4682 Foreign address set to blank for following states and locals */
4683
4684 IF ((p_report_qualifier = 'AL') OR
4685 (p_report_qualifier = 'AR') OR
4686 (p_report_qualifier = 'GA') OR
4687 (p_report_qualifier = 'ID') OR
4688 (p_report_qualifier = 'KS') OR
4689 (p_report_qualifier = 'MD') OR
4690 (p_report_qualifier = 'DE') OR
4691 (p_report_qualifier = 'SC') OR
4692 --(p_report_qualifier = 'LA') OR Commented for the Bug 16339837 -- Bug # 3130999
4693 (p_report_qualifier = 'NE') OR
4694 (p_report_qualifier = 'ME') OR
4695 (p_report_qualifier = 'MA') OR
4696 (p_report_qualifier = 'PA') OR
4697 -- (p_report_qualifier = 'WV') OR -- Bug 3186636 Bug # 7572620
4698 (p_report_qualifier = 'OH_RTCCA') OR
4699 (p_report_qualifier = 'OH_CCAAA') OR
4700 (p_report_qualifier = 'NC') OR
4701 (p_report_qualifier = 'MO') OR -- Fix for Bug # 2149507
4702 (p_report_qualifier = 'MO_KNSAS') OR -- Fix for Bug # 3067494
4703 (p_report_qualifier = 'MO_STLOU') OR
4704 (p_report_qualifier = 'VA') ) THEN
4705 -- (p_report_qualifier = 'OH_DAYTO') OR
4706 -- (p_report_qualifier = 'PA_PHILA') ) THEN /*7579598*/
4707 --{
4708 r_input_15 := lpad(' ',23);
4709 r_input_16 := lpad(' ',15);
4710 r_input_17 := lpad(' ',2);
4711
4712 IF p_report_qualifier = 'ME' THEN --ME Country value is not null
4713 r_input_17 := rpad(nvl(p_input_17,' '),2);
4714 END IF;
4715 --}
4716 ELSE
4717 r_input_15 := rpad(nvl(r_input_15,' '),23);
4718 r_input_16 := rpad(nvl(r_input_16,' '),15);
4719 r_input_17 := rpad(nvl(r_input_17,' '),2);
4720 END IF;
4721
4722 -- Bug 4739790
4723 -- Removed blanking of r_input_10 as we require Deliver Address for MO_KNSAS
4724 IF (p_report_qualifier = 'MO_KNSAS') -- Fix for Bug # 3067494
4725 THEN
4726 r_input_14 := lpad(' ',4);
4727 END IF;
4728
4729 /* Pos:195 - 242 Optional code - Date of separation blanks */
4730 /* Pos:203-226 State quarterly unemployments details should be Zero filled
4731 for MO, OH and PA
4732 This is to fix bug # 2627606
4733 This is also true with many states for W2, so changes made for W2
4734 */
4735 --{
4736 if p_report_qualifier = 'OR' then /* 9065357 */
4737 r_input_18 := lpad(' ',2);
4738 r_input_19 := lpad(' ',6);
4739 r_input_20 := lpad(' ',11);
4740 r_input_21 := lpad(' ',11);
4741 r_input_22 := lpad(' ',2);
4742 r_input_23 := lpad(NVL(p_input_29,' '),8, ' ');
4743 r_input_24 := lpad(NVL(p_input_30,' '),8, ' ');
4744 else
4745 r_input_18 := lpad(' ',2);
4746 r_input_19 := lpad(' ',6);
4747 if p_report_qualifier in ('VA','ID') then
4748 r_input_20 := rpad(' ',11);
4749 r_input_21 := rpad(' ',11);
4750 r_input_22 := rpad(' ',2);
4751 else
4752 r_input_20 := lpad('0',11,'0');
4753 r_input_21 := lpad('0',11,'0');
4754 r_input_22 := lpad('0',2,'0');
4755 end if;
4756 r_input_23 := lpad(' ',8);
4757 r_input_24 := lpad(' ',8);
4758 end if;
4759 /* Pos:197-202 Reporting period for SC,ME,DC and MT */
4760 -- (p_report_qualifier = 'SC') OR
4761 -- Bug # 3134857 fixed to blank out 197-202 for State of SC
4762 --
4763 IF ((p_report_qualifier = 'ME') OR
4764 (p_report_qualifier = 'MT') OR
4765 (p_report_qualifier = 'DC') OR /* 8243215 */
4766 (p_report_qualifier = 'SC')) THEN /* bug 6641801 */
4767 if (p_report_qualifier = 'ME') then
4768 r_input_19 := rpad(' ',6);
4769 else
4770 r_input_19 := rpad(nvl(p_input_19,' '),6);
4771 end if;
4772 END IF;
4773 /* As per bug # 2668099 this should be zero filled
4774 IF p_report_qualifier = 'ME' THEN
4775 r_input_21 := lpad(' ',11);
4776 END IF;
4777 */
4778 /* Bug #2736928 Puertorico Bug Fix */
4779 IF (p_report_qualifier = 'PR') THEN
4780 r_input_15 := lpad(' ',23);
4781 r_input_16 := lpad(' ',15);
4785 r_input_19 := rpad('0',6,'0'); */
4782 r_input_17 := lpad(' ',2);
4783 /* Commented for bug 13449377
4784 r_input_18 := lpad('0',2,'0');
4786 r_input_18 := lpad(p_input_18,11,'0'); -- bug 13449377
4787 r_input_19 := ''; -- bug 13449377
4788 r_input_20 := lpad(p_input_20,11,'0'); -- bug 13449377
4789 r_input_21 := lpad('0',8,'0'); -- bug 13449377
4790 END IF;
4791 --}
4792
4793 /* Pos:248-267 State Employer Account number is blank for ME,MA,MD,IN,PA and OH RITA */
4794
4795 --{
4796 IF ((p_report_qualifier = 'IN') OR
4797 (p_report_qualifier = 'ME') OR
4798 -- Bug# 5693183
4799 -- (p_report_qualifier = 'GA') OR
4800 (p_report_qualifier = 'MA') OR
4801 (p_report_qualifier = 'MD') OR
4802 (p_report_qualifier = 'PR') OR
4803 (p_report_qualifier = 'OH_RTCCA') OR
4804 (p_report_qualifier = 'OH_CCAAA') OR
4805 (p_report_qualifier = 'MO_STLOU') OR
4806 (p_report_qualifier = 'MO_KNSAS') OR -- Bug # 3067494
4807 (p_report_qualifier = 'PA_PHILA') OR
4808 (p_report_qualifier = 'OH_DAYTO') OR
4809 (p_report_qualifier = 'PA') OR
4810 (p_report_qualifier = 'VA')) THEN
4811 if p_report_qualifier = 'ME' then
4812 r_input_25 := rpad(rpad(nvl(replace(replace(r_input_34,'-'),' '),' '),11),20);
4813 else
4814 r_input_25 := lpad(' ',20);
4815 end if;
4816 -- Bug # 2673612 , 9239621 , 9473738
4817 ELSIF (p_report_qualifier = 'ID') or (p_report_qualifier = 'OR') or (p_report_qualifier = 'NE') THEN
4818 -- # 10031479 Changes Start
4819 -- # 10100148 Added some extra special characters
4820 IF (p_report_qualifier = 'ID') THEN
4821 r_input_25 := translate(UPPER(r_input_25),' ABCDEFGHIJKLMNOPQRSTUVWXYZ{}()[]:;"''',' '); --Removing alphabets and special characters
4822 r_input_25 := replace(pay_us_reporting_utils_pkg.Character_check(r_input_25),' ',''); --Removing special characters
4823 END IF;
4824 -- # 10031479 Changes End
4825 -- # 10313971 Changes Start
4826 IF ((p_report_qualifier = 'NE') AND (substr(trim(r_input_25),1,3) = '21-')) THEN
4827 r_input_25 := substr(trim(r_input_25),4,length(r_input_25)-3);
4828 END IF;
4829 -- # 10313971 Changes End
4830 if p_report_qualifier = 'ID' then
4831 r_input_25 := lpad(replace(replace(nvl(replace(r_input_25,' '),' ')
4832 ,'-'),'/'),20,' ');
4833 else
4834 r_input_25 := lpad(replace(replace(nvl(replace(r_input_25,' '),' ')
4835 ,'-'),'/'),20,'0');
4836 end if;
4837 -- Bug 3936924 , 9115440
4838 -- ELSIF (p_report_qualifier = 'AL') THEN
4839
4840 -- if (to_number (nvl(replace(replace(nvl(replace(r_input_25,' '),' ')
4841 -- ,'-'),'/') ,'0' )) < 700000) then
4842 -- r_input_25 := lpad(replace(replace(nvl(replace(r_input_25,' '),' ')
4843 -- ,'-'),'/'),10,'0') ||
4844 -- rpad(lpad(replace(replace(nvl(replace(r_input_36,' '),' ')
4845 -- ,'-'),'/'),9,'0'),10,' ');
4846 -- elsif (to_number (nvl(replace(replace(nvl(replace(r_input_25,' '),' ')
4847 -- ,'-'),'/') ,'0' )) >= 700000) then
4848 -- r_input_25 := 'R' || lpad(replace(replace(nvl(replace(r_input_25,' '),' ')
4849 -- ,'-'),'/'),9,'0') ||
4850 -- rpad(lpad(replace(replace(nvl(replace(r_input_36,' '),' ')
4851 -- ,'-'),'/'),9,'0'),10,' ');
4852 -- end if;
4853 -- Bug # 9306028
4854 ELSIF (p_report_qualifier = 'AL') THEN
4855 r_input_25 := lpad(replace(replace(nvl(replace(r_input_25,' '),' ')
4856 ,'-'),'/'),10,'0') ||
4857 rpad(lpad(replace(replace(nvl(replace(r_input_36,' '),' ')
4858 ,'-'),'/'),9,'0'),10,' ');
4859
4860
4861 -- Bug 4022086
4862 ELSIF (p_report_qualifier = 'MS') THEN
4863 r_input_25 := rpad(replace(replace(nvl(replace(r_input_25,' '),' ')
4864 ,'-'),'/'),10); --Modified to blank fill for bug 16005079
4865 --Modified for bug 16005079
4866 r_input_36 := rpad(' ',10);
4867 /*r_input_36 := rpad(rpad(replace(replace(nvl(replace(r_input_36,' '),' ')
4868 ,'-'),'/'),9),10);*/
4869 IF p_input_40 = 'FLAT' THEN
4870 r_input_25 := r_input_25 || r_input_36;
4871 ELSE
4872 r_input_25 := r_input_25 || ',' || r_input_36;
4873 END IF;
4874 -- Bug# 5693183
4875 ELSIF (p_report_qualifier = 'GA') THEN
4876 r_input_25 := lpad('0', 20, '0') ;
4877
4878 ELSIF (p_report_qualifier = 'NM') THEN /*For the Bug#9385848*/
4879 r_input_25 := translate(r_input_25,' abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-{}()[]:;"''',' '); --Removing alpha and Special characters
4880 r_input_25 :=replace(pay_us_reporting_utils_pkg.Character_check(r_input_25),' ',''); --Removing special characters
4881 r_input_25 :=ltrim(r_input_25,'0');
4882 r_input_25 :=lpad(r_input_25,20,'0');
4883
4884 ELSE
4885 /* Bug:2159881 */
4886 r_input_25 := rpad(replace(replace(nvl(replace(r_input_25,' '),' ')
4887 ,'-'),'/'),20);
4888 END IF;
4889 --}
4890
4891 /* Pos:274 - 275 State code blank for PA,NJ,OH RITA ,NC and SQWL */
4892 IF ((p_report_qualifier = 'PA') OR
4893 (p_report_qualifier = 'NJ') OR
4894 (p_report_qualifier = 'MI') OR
4895 --(p_report_qualifier = 'LA') OR Commented for the Bug 16339837 -- Bug # 3130999
4896 (p_report_qualifier = 'OH_RTCCA') OR
4897 (p_report_qualifier = 'OH_CCAAA') OR
4898 (p_report_qualifier = 'MO_STLOU') OR
4899 -- (p_report_qualifier = 'PA_PHILA') OR /* 7579598 */
4903 (p_report_qualifier = 'MO') OR -- Fix for Bug 2149507
4900 (p_report_qualifier = 'NC') OR
4901 -- (p_report_qualifier = 'KS') OR -- commented to fix bug # 4012469 Fix for bug # 2644092
4902 (p_report_qualifier = 'MO_KNSAS') OR -- Fix for Bug # 3067494
4904 (p_report_qualifier = 'VA')) THEN
4905 r_input_26 := lpad(' ',2);
4906 ELSE
4907 r_input_26 := rpad(nvl(r_input_26,' '),2);
4908 END IF;
4909
4910
4911 /* Pos:276 - 286 State taxable wages.
4912 Pos:287 - 297 SIT withheld. */
4913
4914 IF p_input_40 = 'FLAT' THEN
4915 r_input_27:=
4916 pay_us_reporting_utils_pkg.data_validation(p_effective_date,
4917 p_report_type,
4918 p_format,
4919 p_report_qualifier,
4920 p_record_name,
4921 'NEG_CHECK',
4922 r_input_27,
4923 'State taxable Wages',
4924 p_input_39,
4925 null,
4926 p_validate,
4927 p_exclude_from_output,
4928 sp_out_1,
4929 sp_out_2);
4930 IF p_exclude_from_output = 'Y' THEN
4931 l_exclude_from_output_chk := TRUE;
4932 END IF;
4933 r_input_28 :=
4934 pay_us_reporting_utils_pkg.data_validation( p_effective_date,
4935 p_report_type,
4936 p_format,
4937 p_report_qualifier,
4938 p_record_name,
4939 'NEG_CHECK',
4940 r_input_28,
4941 'SIT Withheld',
4942 p_input_39,
4943 null,
4944 p_validate,
4945 p_exclude_from_output,
4946 sp_out_1,
4947 sp_out_2);
4948 IF p_exclude_from_output = 'Y' THEN
4949 l_exclude_from_output_chk := TRUE;
4950 END IF;
4951 END IF;
4952
4953 /* SIT withheld and wages are zero fill for OH RITA. */
4954 IF (p_report_qualifier = 'OH_CCAAA')
4955 THEN
4956 r_input_27 := rpad(0,11,0);
4957 r_input_28 := rpad(0,11,0);
4958 END IF;
4959
4960 /* SIT withheld are zero fill for MO KANSAS */
4961 IF (p_report_qualifier = 'MO_KNSAS')
4962 THEN
4963 r_input_28 := rpad(0,11,0);
4964 END IF;
4965
4966 /* SIT withheld for St Louis, MO Local is zero filled */
4967 IF p_report_qualifier = 'MO_STLOU' THEN
4968 r_input_28 := rpad(0,11,0);
4969 hr_utility.trace('SIT Withheld = '||r_input_28);
4970 END IF;
4971
4972 /* Pos:298 - 307 Other state data AL,MD,OH*/
4973 /* Pos:298-307 State Excess Wages for LA_SQWL. */
4974 /* Added by tmehra for bug 2084851 */
4975 IF ((p_report_qualifier = 'AL') OR
4976 (p_report_qualifier = 'OH') OR
4977 (p_report_qualifier = 'MD') OR
4978 (p_report_qualifier = 'MS')) THEN
4979 --{
4980 If p_input_40 = 'FLAT' THEN
4981 hr_utility.trace(' Other state data AL, OH, MD, MS ');
4982 r_input_29 :=
4983 pay_us_reporting_utils_pkg.data_validation(p_effective_date,
4984 p_report_type,
4985 p_format,
4986 p_report_qualifier,
4987 p_record_name,
4988 'NEG_CHECK',
4989 r_input_29,
4990 'Other State Data',
4991 p_input_39,
4992 null,
4993 p_validate,
4994 p_exclude_from_output,
4995 sp_out_1,
4996 sp_out_2);
4997 IF p_exclude_from_output = 'Y' THEN
4998 l_exclude_from_output_chk := TRUE;
4999 END IF;
5000 END IF;
5001 --}
5002 /* ELSIF (p_report_qualifier = 'GA') THEN
5003 r_input_29 := r_input_29 ;*/
5004 /* Modified only for GA for Bug# 5717438 */
5005 ELSIF (p_report_qualifier = 'GA') THEN
5006 r_input_29 := lpad(NVL(r_input_29,' '),10); -- Bug 5651314
5007 ELSIF (p_report_qualifier in ('WI','ME')) THEN
5008 if p_report_qualifier ='ME' and r_input_29=' ' then
5009 r_input_29 := lpad('0',10,'0');
5010 else
5011 r_input_29 := lpad(nvl(r_input_29,'0'),10,'0'); --Bug 9065558
5012 end if;
5013 ELSIF (p_report_qualifier = 'NM') THEN
5014 /*For the Bug#9385848*/
5015 --r_input_29 := replace(replace(nvl(replace(p_input_25,' '),' '),'-'),'/');
5019 r_input_29 :=ltrim(r_input_25,'0');
5016 -- r_input_29 := translate(p_input_25,' abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',' '); --Removing all characters
5017 --r_input_29 :=replace(pay_us_reporting_utils_pkg.Character_check(r_input_29),' ',''); --Removing special characters
5018 --r_input_29 :=replace(r_input_29,'-',''); --Removing the '-'
5020 l_length := length(r_input_29);
5021 IF l_length > 10 THEN
5022 r_input_29 := lpad(substr(r_input_29 , l_length -9 , l_length ),10,' ');
5023 ELSE
5024 r_input_29 := lpad(r_input_29,10,' ');
5025 END IF;
5026 ELSE
5027 r_input_29 := lpad(' ',10);
5028 END IF;
5029
5030 /* BUG 5717304 and Bug 5717384 */
5031 IF (p_report_qualifier = 'KY')
5032 -- OR p_report_qualifier = 'NJ' ) /* 9065458 */
5033 THEN
5034 r_input_29 := lpad(NVL(' ',' '),10);
5035 END IF;
5036
5037 /* Pos:308 - 308 Tax type code IN and OH */
5038 IF p_report_qualifier = 'OH' THEN
5039 r_input_30 := rpad(nvl(r_input_30,' '),1);
5040 ELSIF p_report_qualifier = 'IN' THEN /*Bug:2128995 */
5041 r_input_29 := lpad(' ',8); /*Changed from 9 to 8 for Bug 16013916*/
5042 r_input_30 := lpad(nvl(r_input_30,' '),2,'0')||'D'; /*Added 'D' for Bug 16013916*/
5043 ELSIF p_report_qualifier = 'PR' THEN /*Bug:2736928 */
5044 -- r_input_30 := 'F';
5045 r_input_30 := ' '; -- Bug # 3337295
5046 ELSE
5047 r_input_30 := lpad(' ', 1);
5048 END IF;
5049
5050 /* Pos:309 - 319 Local taxable wages OH ,IN and OH RITA
5051 Pos:320 - 330 Local Income tax withheld */
5052
5053 IF ((p_report_qualifier = 'OH') OR
5054 (p_report_qualifier = 'OH_RTCCA') OR
5055 (p_report_qualifier = 'OH_CCAAA') OR
5056 (p_report_qualifier = 'MO_STLOU') OR
5057 (p_report_qualifier = 'MO_KNSAS') OR -- Fix for Bug # 3067494
5058 (p_report_qualifier = 'PA_PHILA') OR
5059 (p_report_qualifier = 'OH_DAYTO') OR
5060 (p_report_qualifier = 'IN') ) THEN
5061 --{
5062 IF p_input_40 = 'FLAT' THEN
5063 -- Validating Local Taxable Wages
5064 r_input_31 :=
5065 pay_us_reporting_utils_pkg.data_validation(p_effective_date,
5066 p_report_type,
5067 p_format,
5068 p_report_qualifier,
5069 p_record_name,
5070 'NEG_CHECK',
5071 r_input_31,
5072 'Local taxable Wages',
5073 p_input_39,
5074 null,
5075 p_validate,
5076 p_exclude_from_output,
5077 sp_out_1,
5078 sp_out_2);
5079 IF p_exclude_from_output = 'Y' THEN
5080 l_exclude_from_output_chk := TRUE;
5081 END IF;
5082 -- Validating Local Income Tax withheld
5083 r_input_32 := pay_us_reporting_utils_pkg.data_validation( p_effective_date,
5084 p_report_type,
5085 p_format,
5086 p_report_qualifier,
5087 p_record_name,
5088 'NEG_CHECK',
5089 r_input_32,
5090 'Local Income tax withheld',
5091 p_input_39,
5092 null,
5093 p_validate,
5094 p_exclude_from_output,
5095 sp_out_1,
5096 sp_out_2);
5097 IF p_exclude_from_output = 'Y' THEN
5098 l_exclude_from_output_chk := TRUE;
5099 END IF;
5100 hr_utility.trace('Local Taxable Wages after validation n Formatting '
5101 ||r_input_31);
5102 hr_utility.trace('Local Tax Withhel after validation n Formatting '
5103 ||r_input_32);
5104 END IF;
5105 --}
5106 ELSE /* Zero Fill for other States. */
5107 hr_utility.trace('Zero fill for SQWLs. p_report_qualifier = '||p_report_qualifier);
5108 r_input_31 := rpad(0,11,0);
5109 r_input_32 := rpad(0,11,0);
5110 hr_utility.trace('r_input_31 '||r_input_31);
5111 hr_utility.trace('r_input_32 '||r_input_32);
5112 END IF;
5113
5114 /* Pos:309-330 Blank for SC_SQWL. State wages and SIT withheld. */
5115 IF (p_report_qualifier in ('AR','ME')) -- To fix bug # 2668250
5116 THEN
5117
5118 r_input_31 := lpad(' ',11);
5119 r_input_32 := lpad(' ',11);
5120 END IF;
5121
5122 /* Pos:331 - 337 State Control number OH,IN,KY,NJ and GA
5123 Pos:338 - 412 Supplemental data1
5124 Pos:413 - 487 Supplemental data2 */
5125 r_input_33 := replace(replace(replace(p_input_33,'-'),' '),'/');
5126
5127 IF p_report_qualifier = 'OH' THEN
5128 -- Bug 4730413
5129 r_input_33 := lpad(nvl(r_input_33,' '),7);
5130 r_input_34 := lpad(' ',75);
5131 r_input_35 := lpad(' ',75);
5132 /* Bug 3180532
5136 Pos: 353 - 357 Box 20b - Adv EIC ID "INADV"
5133 Pos: 193-203 Federal Advanced EIC
5134 Pos: 204 - 273 Blank fill
5135 Pos: 341 - 352 Box 19b - State Adv EIC
5137 Pos: 358 - 512 Blank fill */
5138 ELSIF p_report_qualifier = 'IN' THEN
5139 IF p_input_40 = 'FLAT' THEN
5140 r_input_17:=
5141 pay_us_reporting_utils_pkg.data_validation(p_effective_date,
5142 p_report_type,
5143 p_format,
5144 p_report_qualifier,
5145 p_record_name,
5146 'NEG_CHECK',
5147 p_input_17,
5148 'Federal Advanced EIC',
5149 p_input_39,
5150 null,
5151 p_validate,
5152 p_exclude_from_output,
5153 sp_out_1,
5154 sp_out_2);
5155 IF p_exclude_from_output = 'Y' THEN
5156 l_exclude_from_output_chk := TRUE;
5157 END IF;
5158
5159 r_input_34:=
5160 pay_us_reporting_utils_pkg.data_validation(p_effective_date,
5161 p_report_type,
5162 p_format,
5163 p_report_qualifier,
5164 p_record_name,
5165 'NEG_CHECK',
5166 r_input_34,
5167 'State Advanced EIC',
5168 p_input_39,
5169 null,
5170 p_validate,
5171 p_exclude_from_output,
5172 sp_out_1,
5173 sp_out_2);
5174 IF p_exclude_from_output = 'Y' THEN
5175 l_exclude_from_output_chk := TRUE;
5176 END IF;
5177 hr_utility.trace('Federal Advanced EIC after validation n Formatting '
5178 ||r_input_17);
5179 hr_utility.trace('State Advanced EIC after validation n Formatting '
5180 ||r_input_34);
5181
5182 r_input_21 := lpad(' ',11);
5183 r_input_22 := lpad(' ',2);
5184 r_input_33 := rpad(nvl(r_input_33,' '),10,0); -- Bug 5513076,5637673
5185 r_input_34 := rpad(lpad(r_input_34,11,0) || r_input_35,72); -- Bug 4720007
5186 r_input_35 := lpad(' ',75);
5187
5188 END IF;
5189 r_input_17 := lpad(r_input_17,11,0) ;
5190 -- Bug 3936924
5191 ELSIF p_report_qualifier = 'AL' THEN
5192 r_input_33 := lpad(' ',7);
5193 -- for bug 4279809
5194 r_input_34 := rpad((rpad(rpad('0',11,'0'),55,' ')||r_input_34),75,' ');
5195 --r_input_34 := rpad(lpad(r_input_34,59,' '),75,' ');
5196 r_input_35 := lpad(' ',75);
5197 IF p_input_40 = 'CSV' THEN
5198 r_input_25 := p_input_25 || ',' || p_input_36;
5199 END IF;
5200 ELSIF p_report_qualifier = 'GA' THEN /* 6855543 */
5201
5202 r_input_33 := rpad(nvl(r_input_33,' '),9);
5203 r_input_34 := rpad(substr(nvl(upper(p_input_30),' '),1,57),57)
5204 ||rpad(substr(nvl(p_input_31,' '),1,22),22)
5205 ||rpad(substr(nvl(p_input_32,' '),1,22),22)
5206 ||rpad(substr(nvl(p_input_34,' '),1,22),22)
5207 ||rpad(substr(nvl(p_input_35,' '),1,2),2)
5208 ||rpad(substr(nvl(p_input_36,' '),1,5),5)
5209 ||rpad(substr(nvl(p_input_37,' '),1,4),4)
5210 ||rpad(substr(replace(replace(nvl(replace(p_input_38,' '),' '),'-'),'/'),1,9),9);
5211 r_input_35 := lpad(' ',5);
5212 ELSIF p_report_qualifier = 'ME' THEN
5213 r_input_33 := lpad(' ',7);
5214 r_input_34 := rpad(' ',75);
5215 r_input_35 := lpad(' ',75);
5216 ELSIF p_report_qualifier = 'MA' THEN
5217 r_input_33 := lpad(' ',7);
5218 IF p_input_40 = 'FLAT' THEN
5219 l_fica_mcr_wh :=
5220 pay_us_reporting_utils_pkg.data_validation(p_effective_date,
5221 p_report_type,
5222 p_format,
5223 p_report_qualifier,
5224 p_record_name,
5225 'NEG_CHECK',
5226 r_input_34,
5227 'FICA_MCR_WH',
5228 p_input_39,
5229 null,
5230 p_validate,
5231 p_exclude_from_output,
5232 sp_out_1,
5233 sp_out_2);
5234 l_w2_govt_ee_contrib :=
5238 p_report_qualifier,
5235 pay_us_reporting_utils_pkg.data_validation(p_effective_date,
5236 p_report_type,
5237 p_format,
5239 p_record_name,
5240 'NEG_CHECK',
5241 r_input_35,
5242 'W2_GOVT_EE_CONTRIB',
5243 p_input_39,
5244 null,
5245 p_validate,
5246 p_exclude_from_output,
5247 sp_out_1,
5248 sp_out_2);
5249 l_w2_fed_wages :=
5250 pay_us_reporting_utils_pkg.data_validation(p_effective_date,
5251 p_report_type,
5252 p_format,
5253 p_report_qualifier,
5254 p_record_name,
5255 'NEG_CHECK',
5256 r_input_36,
5257 'FED_WAGES',
5258 p_input_39,
5259 null,
5260 p_validate,
5261 p_exclude_from_output,
5262 sp_out_1,
5263 sp_out_2);
5264 /* r_input_34 := l_fica_mcr_wh||l_w2_govt_ee_contrib||l_w2_fed_wages
5265 ||lpad(' ',42); */
5266 r_input_34 := lpad(' ',75); /* 6720319 */
5267 r_input_35 := lpad(' ',75);
5268 ELSE
5269 r_input_34 := r_input_34;
5270 r_input_35 := 'Federal Railroad MA and Local Govt '||
5271 'retirement contribution '||
5272 p_input_35||' | '||
5273 'Fed Wages Tips and other comp '||p_input_36;
5274 END IF;
5275
5276 ELSIF p_report_qualifier = 'NJ' THEN
5277 -- r_input_33 := lpad(' ',7); /* 9065458 */
5278 IF p_input_40 = 'FLAT' THEN
5279
5280 l_mif :=
5281 pay_us_reporting_utils_pkg.data_validation(p_effective_date,
5282 p_report_type,
5283 p_format,
5284 p_report_qualifier,
5285 p_record_name,
5286 'NEG_CHECK',
5287 p_input_36,
5288 'MIF',
5289 p_input_39,
5290 null,
5291 p_validate,
5292 p_exclude_from_output,
5293 sp_out_1,
5294 sp_out_2);
5295 IF p_exclude_from_output = 'Y' THEN
5296 l_exclude_from_output_chk := TRUE;
5297 END IF;
5298
5299 l_unemp_insurance :=
5300 pay_us_reporting_utils_pkg.data_validation(p_effective_date,
5301 p_report_type,
5302 p_format,
5303 p_report_qualifier,
5304 p_record_name,
5305 'NEG_CHECK',
5306 p_input_31,
5307 'Unemployment Insurance Tax',
5308 p_input_39,
5309 null,
5310 p_validate,
5311 p_exclude_from_output,
5312 sp_out_1,
5313 sp_out_2);
5314 l_sdi_wh :=
5315 pay_us_reporting_utils_pkg.data_validation( p_effective_date,
5316 p_report_type,
5317 p_format,
5318 p_report_qualifier,
5319 p_record_name,
5320 'NEG_CHECK',
5321 p_input_32,
5322 'SDI Withheld',
5323 p_input_39,
5324 null,
5325 p_validate,
5326 p_exclude_from_output,
5330 pay_us_reporting_utils_pkg.data_validation(p_effective_date,
5327 sp_out_1,
5328 sp_out_2);
5329 l_deferred_comp :=
5331 p_report_type,
5332 p_format,
5333 p_report_qualifier,
5334 p_record_name,
5335 'NEG_CHECK',
5336 p_input_35,
5337 'Deferred Comp',
5338 p_input_39,
5339 null,
5340 p_validate,
5341 p_exclude_from_output,
5342 sp_out_1,
5343 sp_out_2);
5344
5345 /* Bug 4014356*/
5346 /* Bug 9065458 */
5347 r_input_29 := lpad(' ',1);
5348 r_input_30 := rpad(nvl(p_input_37,' '),15,' ');
5349 r_input_31 := lpad(nvl(p_input_38,'0'),5,0);
5350 r_input_32 := lpad(' ', 19);
5351 r_input_33 :='';
5352 /* r_input_30 := lpad(l_mif,3,0);
5353 r_input_31 := lpad(' ',9);
5354 r_input_32 := lpad(' ',11);
5355 r_input_33 := lpad(' ',7); */
5356
5357 -- Bug 3895206 - Last 14 characters of NJ DIPP ID only reqd
5358 -- Bug 4084765 - Added logic for displaying DIPP plan ID whose length is less than 14
5359 IF length(p_input_30) >= 14 THEN
5360 l_nj_dipp_plan_id := rpad(substr(p_input_30,-14),14);
5361 ELSE
5362 l_nj_dipp_plan_id := substr(rpad(nvl(p_input_30,' '),14),-14);
5363 END IF;
5364
5365 r_input_34 := rpad(nvl(p_input_29,' '),1)|| l_nj_dipp_plan_id
5366 ||l_unemp_insurance ||l_sdi_wh||rpad(
5367 nvl(p_input_33,' '),1)||rpad(nvl(p_input_34,' '),1)
5368 ||l_deferred_comp;
5369 r_input_35 := lpad(' ',114);
5370
5371 ELSE
5372 r_input_30 := p_input_36;
5373 r_input_34 := r_input_29||','||p_input_30||','||p_input_31||','||
5374 p_input_32||','||p_input_33||','||p_input_34||','||
5375 p_input_35;
5376 r_input_35 := lpad(' ',10);
5377 END IF;
5378 ELSIF p_report_qualifier = 'KY' THEN
5379 r_input_33 := rpad(nvl(r_input_33,' '),7);
5380 IF p_input_40 = 'FLAT' THEN
5381 l_tax_ct_rural :=
5382 pay_us_reporting_utils_pkg.data_validation(p_effective_date,
5383 p_report_type,
5384 p_format,
5385 p_report_qualifier,
5386 p_record_name,
5387 'NEG_CHECK',
5388 r_input_34,
5389 'Tax credit amount for KY rural asst.',
5390 p_input_39,
5391 null,
5392 p_validate,
5393 p_exclude_from_output,
5394 sp_out_1,
5395 sp_out_2);
5396 l_tax_ct_job_dev :=
5397 pay_us_reporting_utils_pkg.data_validation(p_effective_date,
5398 p_report_type,
5399 p_format,
5400 p_report_qualifier,
5401 p_record_name,
5402 'NEG_CHECK',
5403 r_input_35,
5404 'Tax credit amount for KY job dev act',
5405 p_input_39,
5406 null,
5407 p_validate,
5408 p_exclude_from_output,
5409 sp_out_1,
5410 sp_out_2);
5411 l_tax_ct_ind_revit :=
5412 pay_us_reporting_utils_pkg.data_validation(p_effective_date,
5413 p_report_type,
5414 p_format,
5415 p_report_qualifier,
5416 p_record_name,
5417 'NEG_CHECK',
5418 r_input_36,
5419 'Tax credit amt for KY indus revit act',
5420 p_input_39,
5421 null,
5422 p_validate,
5423 p_exclude_from_output,
5427 pay_us_reporting_utils_pkg.data_validation(p_effective_date,
5424 sp_out_1,
5425 sp_out_2);
5426 l_tax_ct_ind_dev :=
5428 p_report_type,
5429 p_format,
5430 p_report_qualifier,
5431 p_record_name,
5432 'NEG_CHECK',
5433 r_input_37,
5434 'Tax credit amt for KY indus dev act',
5435 p_input_39,
5436 null,
5437 p_validate,
5438 p_exclude_from_output,
5439 sp_out_1,
5440 sp_out_2);
5441 r_input_34 := l_tax_ct_rural||l_tax_ct_job_dev||l_tax_ct_ind_revit
5442 ||l_tax_ct_ind_dev||lpad(' ',31);
5443 r_input_35 := lpad(' ',75);
5444 ELSE
5445 r_input_34 := r_input_34||','||r_input_35||','||r_input_36||','||r_input_37;
5446 r_input_35 := lpad(' ',75);
5447 END IF;
5448 ELSIF p_report_qualifier = 'MD' THEN
5449 --{
5450 r_input_33 := lpad(' ',7);
5451 IF p_input_40 = 'FLAT' THEN
5452 l_wages_tips :=
5453 pay_us_reporting_utils_pkg.data_validation(p_effective_date,
5454 p_report_type,
5455 p_format,
5456 p_report_qualifier,
5457 p_record_name,
5458 'NEG_CHECK',
5459 p_input_35,
5460 'Wages Tips',
5461 p_input_39,
5462 null,
5463 p_validate,
5464 p_exclude_from_output,
5465 sp_out_1,
5466 sp_out_2);
5467 l_fit_wh :=
5468 pay_us_reporting_utils_pkg.data_validation(p_effective_date,
5469 p_report_type,
5470 p_format,
5471 p_report_qualifier,
5472 p_record_name,
5473 'NEG_CHECK',
5474 r_input_36,
5475 'FIT Withheld',
5476 p_input_39,
5477 null,
5478 p_validate,
5479 p_exclude_from_output,
5480 sp_out_1,
5481 sp_out_2);
5482
5483 -- Bug 4728539
5484 -- 368-369 should be filled with ZERO's
5485 -- Bug# 4736977
5486 -- 368-369 should report Employee Withholding Allowances
5487 r_input_34 := rpad(nvl(r_input_34,' '),8)||l_wages_tips||l_fit_wh||lpad(r_input_37,2,'0')||lpad(' ',43);
5488 r_input_35 := lpad(' ',75);
5489 ELSE
5490 r_input_34 := r_input_34||','||r_input_35||','||r_input_36;
5491 r_input_35 := lpad(' ',8);
5492 END IF;
5493 --}
5494 /* Start of PuertoRico Supplemental Data formating */
5495 ELSIF p_report_qualifier = 'PR' THEN
5496 --{
5497 /* These changes added for Bug # 3337295 */
5498 --{
5499
5500 r_input_23 := lpad(0,8,0);
5501 r_input_24 := lpad(0,8,0);
5502 --r_input_26 := lpad(' ',2);
5503 r_input_26 := '00'; -- Bug # 5668970
5504 r_input_27 := rpad(0,11,0);
5505 r_input_28 := rpad(0,11,0);
5506 r_input_29 := lpad(0,10,0);
5507
5508 --}
5509
5510 r_input_33 := lpad(' ',7);
5511 IF p_input_40 = 'FLAT' THEN
5512 l_pension_annuity :=
5513 pay_us_reporting_utils_pkg.data_validation(p_effective_date,
5514 p_report_type,
5515 p_format,
5516 p_report_qualifier,
5517 p_record_name,
5518 'NEG_CHECK',
5519 p_input_35,
5520 'Cost of Pension Annuity',
5521 p_input_39,
5522 null,
5523 p_validate,
5524 p_exclude_from_output,
5528 IF p_exclude_from_output = 'Y' THEN
5525 sp_out_1,
5526 sp_out_2);
5527 /* Added for bug 13449377 to avoid negative values in .mf file*/
5529 l_exclude_from_output_chk := TRUE;
5530 END IF;
5531 l_contribution_plan :=
5532 pay_us_reporting_utils_pkg.data_validation(p_effective_date,
5533 p_report_type,
5534 p_format,
5535 p_report_qualifier,
5536 p_record_name,
5537 'NEG_CHECK',
5538 p_input_36,
5539 'Contrib to Qual Plans',
5540 p_input_39,
5541 null,
5542 p_validate,
5543 p_exclude_from_output,
5544 sp_out_1,
5545 sp_out_2);
5546 /* Added for bug 13449377 */
5547 IF p_exclude_from_output = 'Y' THEN
5548 l_exclude_from_output_chk := TRUE;
5549 END IF;
5550 l_cost_reimbursement :=
5551 pay_us_reporting_utils_pkg.data_validation(p_effective_date,
5552 p_report_type,
5553 p_format,
5554 p_report_qualifier,
5555 p_record_name,
5556 'NEG_CHECK',
5557 p_input_37,
5558 'Cost Reimbursement',
5559 p_input_39,
5560 null,
5561 p_validate,
5562 p_exclude_from_output,
5563 sp_out_1,
5564 sp_out_2);
5565 /* Added for bug 13449377 */
5566 IF p_exclude_from_output = 'Y' THEN
5567 l_exclude_from_output_chk := TRUE;
5568 END IF;
5569 l_uncollected_ss_tax_on_tips :=
5570 pay_us_reporting_utils_pkg.data_validation(p_effective_date,
5571 p_report_type,
5572 p_format,
5573 p_report_qualifier,
5574 p_record_name,
5575 'NEG_CHECK',
5576 p_input_31,
5577 'Uncollected SS Tax on Tips',
5578 p_input_39,
5579 null,
5580 p_validate,
5581 p_exclude_from_output,
5582 sp_out_1,
5583 sp_out_2);
5584 /* Added for bug 13449377 */
5585 IF p_exclude_from_output = 'Y' THEN
5586 l_exclude_from_output_chk := TRUE;
5587 END IF;
5588 l_uncollected_med_tax_on_tips :=
5589 pay_us_reporting_utils_pkg.data_validation(p_effective_date,
5590 p_report_type,
5591 p_format,
5592 p_report_qualifier,
5593 p_record_name,
5594 'NEG_CHECK',
5595 p_input_32,
5596 'Uncollected Med Tax on Tips',
5597 p_input_39,
5598 null,
5599 p_validate,
5600 p_exclude_from_output,
5601 sp_out_1,
5602 sp_out_2);
5603 /* Added for bug 13449377 */
5604 IF p_exclude_from_output = 'Y' THEN
5605 l_exclude_from_output_chk := TRUE;
5606 END IF;
5607 /* Negative checks done as part of bug 13449377 */
5608 r_input_18 :=
5609 pay_us_reporting_utils_pkg.data_validation(p_effective_date,
5610 p_report_type,
5611 p_format,
5612 p_report_qualifier,
5613 p_record_name,
5614 'NEG_CHECK',
5615 p_input_18,
5619 p_validate,
5616 'PR W2 Charitable Contributions',
5617 p_input_39,
5618 null,
5620 p_exclude_from_output,
5621 sp_out_1,
5622 sp_out_2);
5623 /* Added for bug 13449377 */
5624 IF p_exclude_from_output = 'Y' THEN
5625 l_exclude_from_output_chk := TRUE;
5626 END IF;
5627
5628 r_input_20 :=
5629 pay_us_reporting_utils_pkg.data_validation(p_effective_date,
5630 p_report_type,
5631 p_format,
5632 p_report_qualifier,
5633 p_record_name,
5634 'NEG_CHECK',
5635 p_input_20,
5636 'PR W2 Contr To Save and Double Money',
5637 p_input_39,
5638 null,
5639 p_validate,
5640 p_exclude_from_output,
5641 sp_out_1,
5642 sp_out_2);
5643 /* Added for bug 13449377 */
5644 IF p_exclude_from_output = 'Y' THEN
5645 l_exclude_from_output_chk := TRUE;
5646 END IF;
5647
5648
5649 r_input_34 := rpad(nvl(' ',' '),10)||-- Contact Person Phone
5650 -- lpad(' ',8)|| -- Operations Closing Date 5876054
5651 lpad('0',8,'0')||
5652 lpad(nvl(replace(p_input_38,' '),' '),9,'0')|| -- Serial Number
5653 lpad(nvl(l_pension_annuity,'0'),11,'0')|| -- Cost of Pension Annuity
5654 lpad(nvl(l_contribution_plan,'0'),11,'0')|| -- Contributions to qualified Plans
5655 lpad(nvl(l_cost_reimbursement,'0'),11,'0')|| -- Cost Reimbursement
5656 lpad(' ',1)|| -- Amendment Indicator
5657 /* lpad(nvl(substr(replace(p_input_29,' '),1,5),' '),5)|| */ -- Access code
5658 lpad(' ',5)|| /* 6644795 */
5659 lpad(nvl(l_uncollected_ss_tax_on_tips,'0'),11,'0')|| -- Uncollected SS tax on Tips
5660 lpad(nvl(l_uncollected_med_tax_on_tips,'0'),11,'0'); -- Uncollected Med. Tax on Tips
5661 r_input_35 := lpad('0',5,'0') || lpad('0',11,'0') || lpad('0',8,'0') || lpad(' ',38); --Bug 4665713 Bug 5876054
5662 ELSE
5663 r_input_34 := 'Contact Person Phone '||p_input_34 || '|' ||
5664 'Operations Closing Date '|| ' |' ||
5665 'Serial Number '||p_input_38|| ' |' ||
5666 'Cost of Pension or annuity '||p_input_35|| '|' ||
5667 'Contrib to Qual Plans '||p_input_36|| '|' ||
5668 'Cost Reimbursement '||p_input_37|| '|' ||
5669 'Amendment Indicator '|| ' |' ||
5670 'Access Code '||p_input_29|| ' |' ||
5671 'Uncollected SS Tax on Tips '||p_input_31|| '|' ||
5672 'Uncollected Med Tax on Tips '||p_input_32 || '|' ||
5673 'Specialist Register Number '||lpad(' ',5)|| '|' || /* Bug 4665713 */
5674 'Salaries Und Act 324 of 2004 '|| '0' ;
5675
5676 r_input_35 := lpad(' ',46); /* Bug 4665713 */
5677 END IF;
5678 /* End of Puertorico Supplemental Data */
5679
5680 /* Bug # 10266267 - Formatting for VT */
5681 ELSIF p_report_qualifier = 'VT' THEN
5682
5683 r_input_20 := lpad(' ',11);
5684 r_input_21 := lpad(' ',11);
5685 r_input_22 := lpad(' ',2);
5686
5687 r_input_33 := lpad(' ',7);
5688 r_input_34 := lpad(' ',75);
5689 r_input_35 := lpad(' ',75);
5690
5691 /* Bug # 3186636 - Formatting for WV */
5692 ELSIF p_report_qualifier = 'WV' THEN
5693
5694 r_input_8 := lpad(' ',4); --Bug#10284526
5695 r_input_9 := lpad(' ',22); --Bug#10284526
5696 r_input_10 := lpad(' ',22); --Bug#10284526
5697 r_input_11 := lpad(' ',22); --Bug#10284526
5698 r_input_12 := lpad(' ',2); --Bug#10284526
5699 r_input_13 := lpad(' ',5); --Bug#10284526
5700 r_input_14 := lpad(' ',4); --Bug#10284526
5701 r_input_15 := lpad(' ',23); --Bug#10284526
5702 r_input_16 := lpad(' ',15); --Bug#10284526
5703 r_input_17 := lpad(' ',2); --Bug#10284526
5704
5705 r_input_18 := lpad(' ',2); /* 7572620 */ --195 - 196
5706 r_input_19 := lpad(' ',6);
5707 r_input_20 := lpad(' ',11);
5708 r_input_21 := lpad(' ',11);
5709 r_input_22 := lpad(' ',2);
5710 r_input_23 := lpad(' ',8);
5711
5712 -- r_input_23 := lpad(0,8,0);
5713 r_input_24 := lpad(' ',8);--235 - 242
5714 r_input_29 := lpad(' ',10);--298 - 307
5715 r_input_30 := ' ';
5716 --r_input_31 := lpad(0,11,0); --309-319
5717 --r_input_32 := lpad(0,11,0); --320 - 330
5718
5719 r_input_31 := lpad(' ',11); --Bug#10284526
5720 r_input_32 := lpad(' ',11); --Bug#10284526
5721
5722 r_input_33 := lpad(' ',7);
5723 r_input_34 := lpad(' ',75);
5724 r_input_35 := lpad(' ',75);
5725
5726 ELSIF p_report_qualifier = 'WI' THEN -- Bug 9065558
5727 r_input_29 := lpad(' ',10); --298 - 307 /* Bug : 13355672 */
5728 r_input_30 := ' '; --308 /* Bug : 13355672 */
5729 r_input_31 := lpad(' ',11);
5730 r_input_32 := lpad(' ',11);
5731 r_input_33 := lpad(' ',7);
5732 r_input_34 := lpad(' ',75);
5733 r_input_35 := lpad(' ',75);
5734
5735 /* Bug 4022086 - Formatting for MS */
5736 ELSIF p_report_qualifier = 'MS' THEN
5737 r_input_33 := lpad(' ',7);
5738 IF p_input_40 = 'FLAT' THEN
5739 r_input_34 := rpad(rpad(lpad(0,11,0),55,' ') || r_input_35,75,' ');
5740 r_input_35 := lpad(' ',75);
5741 ELSE
5742 r_input_34 := p_input_34 || ',' || p_input_35;
5743 r_input_35 := ' ';
5744 END IF;
5745 ELSIF p_report_qualifier = 'KS' THEN
5746 r_input_2 := '20';
5747 r_input_26 := '20';
5748 r_input_33 := lpad(' ',7);
5749 l_ee_contrib_pub_retire_system :=
5750 pay_us_reporting_utils_pkg.data_validation(p_effective_date,
5751 p_report_type,
5752 p_format,
5753 p_report_qualifier,
5754 p_record_name,
5755 'NEG_CHECK',
5756 p_input_34,
5757 'EE contrib to retirement systems',
5758 p_input_39,
5759 null,
5760 p_validate,
5761 p_exclude_from_output,
5762 sp_out_1,
5763 sp_out_2);
5764 IF p_exclude_from_output = 'Y' THEN
5765 l_exclude_from_output_chk := TRUE;
5766 END IF;
5767 IF p_input_40 = 'FLAT' THEN
5768 r_input_34 := rpad(lpad(l_ee_contrib_pub_retire_system,11,0),75,' ');
5769 r_input_35 := lpad(' ',75);
5770 ELSE
5771 r_input_34 := p_input_34;
5772 r_input_35 := ' ';
5773 END IF;
5774 /* Bug 5696443 - New fields for AR */
5775 ELSIF p_report_qualifier = 'AR' THEN
5776 r_input_33 := rpad(' ',7);
5777 r_input_34 := rpad(lpad(replace(replace(nvl(replace(p_input_34,' '),' '),'-'),'/'),9,'0'),75,' ');
5778 r_input_35 := rpad(replace(nvl(p_input_35,' '),'-'),75,' ');
5779 ELSE
5780 -- Supplemental data for other states filled with blank
5781 --
5782 r_input_33 := lpad(' ',7);
5783 r_input_34 := lpad(' ',75);
5784 r_input_35 := lpad(' ',75);
5785 END IF; /* W2 States. */
5786
5787
5788 /* OH RITA 298-304 blanks. 305-307 City code.
5789 Pos:308 C=Emp.City R=Res.City */
5790 IF (p_report_qualifier = 'OH_RTCCA')
5791 THEN
5792 /*r_input_29 := lpad(rpad(nvl(replace(p_input_29,' '),'000'),3),10); */
5793 r_input_3 := 'RO' || rpad(nvl(replace(p_input_29,' '),'000'),3); /* 6716247 */
5794 r_input_29 := rpad(' ',10);
5795 r_input_30 := rpad(nvl(p_input_30,' '),1);
5796 /* Bug 4045592 - Commented the following code as blank is reqd from 338-412
5797 r_input_34 := rpad(rpad(nvl(replace(upper(p_input_34),' '),' '),22),75); */
5798
5799 END IF;
5800
5801 IF (p_report_qualifier = 'OH_CCAAA')
5802 THEN
5803 -- r_input_29 := lpad(rpad(nvl(replace(p_input_29,' '),'000'),3),10);
5804 r_input_29 := rpad(' ',10); -- Bug 13325368 - Format changes for the year 2011
5805 r_input_30 := rpad(nvl(p_input_30,' '),1);
5806 /* Bug 4045592 - Commented the following code as blank is reqd from 338-412
5807 r_input_34 := rpad(rpad(nvl(replace(upper(p_input_34),' '),' '),22),75); */
5808 END IF;
5809
5810
5811 IF ((p_report_qualifier = 'MO_STLOU') OR
5812 (p_report_qualifier = 'PA_PHILA') OR
5813 (p_report_qualifier = 'OH_DAYTO')) THEN
5814 r_input_30 := rpad(nvl(p_input_30,' '),1);
5815 END IF;
5816
5817 IF (p_report_qualifier = 'MO_KNSAS') THEN
5818 r_input_30 := rpad(' ',1);
5819 END IF;
5820
5821 IF p_report_qualifier = 'PA_PHILA' THEN
5822 hr_utility.trace('Company Locality Id '||p_input_33);
5823 r_input_33 := lpad(substr(NVL(p_input_33,' '),1,7),7);
5824 END IF;
5825
5826 IF p_report_qualifier = 'OH_DAYTO' THEN
5827 r_input_34 := rpad(lpad(nvl(r_input_31,'0'),12,'0'),75);
5828 r_input_35 := rpad(lpad(nvl(r_input_32,'0'),12,'0'),75);
5829 END IF;
5830 /* City Name should be displayed for OH RITA for Taxes Withheld */
5831 /* Bug 5886247 */
5832 IF (p_report_qualifier = 'OH_RTCCA') THEN /* 6716247 */
5833 r_input_34 := lpad(' ',75);
5834 /* IF to_number(nvl(r_input_32,'0')) > 0 THEN
5835 r_input_34 := rpad(rpad(nvl(p_input_34,' '),22,' '),75, ' ') ;
5836 END IF ; */
5837 END IF ;
5838
5839 /* Fix for Bug # 2680070 */
5840 hr_utility.trace('Value of Stock Option Amount '||p_input_35);
5841 IF (p_report_qualifier = 'MO_STLOU') THEN
5842 IF (to_number(NVL(p_input_35,'0')) > 0) THEN
5843 r_input_34 := 'STK'||lpad(NVL(p_input_35,'0'),11,'0')||lpad(' ',61);
5844 r_input_35 := lpad(' ',75);
5845 ELSE
5846 r_input_34 := lpad(' ',3)||rpad('0',11,'0')||lpad(' ',61);
5847 r_input_35 := lpad(' ',75);
5848 END IF;
5849 END IF;
5850 hr_utility.trace('Value of r_input_34 '||r_input_34);
5851
5852 l_last_field := lpad(' ',25);
5853
5854 /* if p_report_qualifier = 'WI' THEN -- Bug 9065558
5855 l_last_field := rpad('0',25,'0');
5856 END IF; */
5857
5858 IF p_report_qualifier = 'OR' THEN /* 9065357 */
5859 r_input_31 := lpad(' ',11);
5860 r_input_32 := lpad(' ',11);
5861 end if ;
5862
5863 if p_report_qualifier = 'MD' Then /* 7572352 */
5864 l_last_field := lpad(' ',9) || to_char(sysdate,'YYYYMMDD')
5865 ||to_char(systimestamp,'HH24MISSFF2') ;
5866
5867 end if ;
5868
5869 if p_report_qualifier = 'IN' Then -- 13409513
5870 r_input_21 := lpad('0',11,'0');
5871 r_input_22 := lpad('0',2,'0');
5872 r_input_23 := lpad('0',8,'0');
5873 r_input_24 := lpad('0',8,'0');
5874 r_input_25 := lpad(' ',20);
5875 end if ;
5876
5877 IF p_input_40 = 'FLAT' THEN
5878 --{ Start of formatting FLAT type RS Record
5879 --
5880 IF p_report_qualifier = 'IN' THEN
5881 l_fl_field_17_20 := r_input_17 || lpad(' ',10);
5882
5883 /* Bug # 5513076 */
5884 swap_street_location_indiana := r_input_9;
5885 r_input_9 := r_input_10; /*pos 73-94 Street Address pos 95-116 Location Address */
5886 r_input_10 := swap_street_location_indiana;
5887
5888 -- Bug 5513076,5637673
5889 IN_state_adv_EIC := substr(r_input_34,1,11);
5890
5891 /* r_input_34 := '000' Commenting for Bug# 5739737
5892 lpad(nvl(substr(p_input_33, -3),'0'),3,'0')||
5893 IN_state_adv_EIC||'INADV'||substr(r_input_34,20,53); */
5894 r_input_34 := lpad(nvl(substr(p_input_33, -3),'0'),3,'0')|| lpad(' ',69) ;
5895 r_input_35 := lpad(' ',75);
5896
5897 ELSE
5898 l_fl_field_17_20 := r_input_17 || r_input_18 || r_input_19 || r_input_20 ;
5899 END IF;
5900
5901 IF p_report_qualifier = 'MD' THEN /* 6648007 */
5902 /* r_input_32 := lpad(' ', 8) || rpad(substr(nvl(p_input_38,' '),1,9),9) ; */
5903 r_input_32 := lpad(' ', 8) || rpad(substr(replace(replace(nvl(p_input_38,' '),'-'),'/'),1,9),9);
5904 r_input_33 := ' ' ;
5905 END IF;
5906
5907
5908 /* 13409513 */
5909 IF p_report_qualifier = 'IN' THEN
5910
5911 r_input_17 := lpad(' ',2);
5912 r_input_18 := lpad(' ',2);
5913 r_input_19 := lpad('0',6,'0');
5914 r_input_20 := lpad('0',11,'0');
5915 l_fl_field_17_20 := r_input_17 || r_input_18 || r_input_19 || r_input_20 ;
5916
5917 END IF;
5918
5919 return_value:= 'RS'||r_input_2
5920 ||r_input_3
5921 ||l_ssn
5922 ||l_first_name
5923 ||l_middle_name
5924 ||l_last_name
5925 ||l_suffix
5926 ||rpad(substr(nvl(r_input_9,' '),1,22),22)
5927 ||rpad(substr(nvl(r_input_10,' '),1,22),22)
5928 ||rpad(substr(nvl(r_input_11,' '),1,22),22)
5929 ||rpad(substr(nvl(r_input_12,' '),1,2),2)
5930 ||rpad(substr(nvl(r_input_13,' '),1,5),5)
5931 ||rpad(substr(nvl(r_input_14,' '),1,4),9)
5932 ||r_input_15
5933 ||r_input_16
5934 ||l_fl_field_17_20
5935 ||r_input_21
5936 ||r_input_22
5937 ||r_input_23
5938 ||r_input_24
5939 ||lpad(' ',5)
5940 ||r_input_25
5941 ||lpad(' ',6)
5942 ||r_input_26
5943 ||r_input_27
5944 ||r_input_28
5945 ||r_input_29
5946 ||r_input_30
5947 ||r_input_31
5948 ||r_input_32
5949 ||r_input_33
5950 ||r_input_34
5951 ||r_input_35
5952 ||l_last_field
5953 ||l_end_of_rec;
5954
5955 hr_utility.trace('Length of return value = '||to_char(length(return_value)));
5956 --} End of formatting FLAT Type RS Record
5957 ELSIF p_input_40 = 'CSV' THEN
5958 --{ Start of formatting RS record in CSV format
5959 /* Bug 3180532
5960 IN does not require fields Country Code, Optional code and Reporting Period */
5961 /* Bug 13409513 */
5962 IF p_report_qualifier = 'IN' THEN -- 13409513
5963 /* l_audit_field_17 := p_input_17; */
5964 r_input_17 := lpad(' ',2);
5965 r_input_18 := lpad(' ',2);
5966 r_input_19 := lpad('0',6,'0');
5967 r_input_20 := lpad('0',11,'0');
5968 l_audit_field_17 := r_input_17 || r_input_18 || r_input_19 ;
5969 r_input_30 := lpad(nvl(r_input_30,' '),2,'0')||','||'D'; /* Bug 16013916*/
5970 /* Following ELSIF block added for 'PR' as part of the bug 13449377 */
5971 ELSIF p_report_qualifier = 'PR' THEN
5972 l_audit_field_17 := r_input_17 ||','|| p_input_18; -- bug 13449377
5973 r_input_20 := p_input_20; -- bug 13449377
5974 ELSE
5975 l_audit_field_17 := r_input_17 ||','|| r_input_18 ||','|| r_input_19 ;
5976 END IF;
5977
5978 return_value := 'RS'
5979 ||','||r_input_2
5980 ||','||r_input_3
5981 ||','||l_ssn
5982 ||','||l_first_name
5983 ||','||l_middle_name
5984 ||','||l_last_name
5985 ||','||l_suffix
5986 ||','||rpad(substr(nvl(r_input_9,' '),1,22),22)
5987 ||','||rpad(substr(nvl(r_input_10,' '),1,22),22)
5988 ||','||rpad(substr(nvl(r_input_11,' '),1,22),22)
5989 ||','||rpad(substr(nvl(r_input_12,' '),1,2),2)
5990 ||','||rpad(substr(nvl(r_input_13,' '),1,5),5)
5991 ||','||rpad(substr(nvl(r_input_14,' '),1,4),4)
5992 ||','||lpad(' ',5)
5993 ||','||r_input_15
5994 ||','||r_input_16
5995 ||','||l_audit_field_17
5996 ||','||r_input_20
5997 ||','||r_input_21
5998 ||','||r_input_22
5999 ||','||r_input_23
6000 ||','||r_input_24
6001 ||','||lpad(' ',6)
6002 ||','||r_input_25
6003 ||','||lpad(' ',6)
6004 ||','||r_input_26
6005 ||','||r_input_27
6006 ||','||r_input_28
6007 ||','||r_input_29
6008 ||','||r_input_30
6009 ||','||r_input_31
6010 ||','||r_input_32
6011 ||','||r_input_33
6012 ||','||r_input_34
6013 ||','||r_input_35
6014 ||','||lpad(' ',5);
6015 --} End of formatting RS record in CSV format
6016 --
6017 ELSIF p_input_40 = 'BLANK' THEN
6018 --{ Start of formatting BALNK RS record used for audit report
6019 --
6020 /* Bug 3180532 - IN does not require fields Country Code,
6021 Optional code and Reporting Period */
6022 IF p_report_qualifier = 'IN' THEN
6023 l_audit_field_17 := ' ';
6024 ELSE
6025 l_audit_field_17 := ' '||','||' '||','||' ';
6026 END IF;
6027
6028 return_value := ''
6029 ||','||' '
6030 ||','||' '
6031 ||','||' '
6032 ||','||' '
6033 ||','||' '
6034 ||','||' '
6035 ||','||' '
6036 ||','||' '
6037 ||','||' '
6038 ||','||' '
6039 ||','||' '
6040 ||','||' '
6041 ||','||' '
6042 ||','||lpad(' ',5)
6043 ||','||' '
6044 ||','||' '
6045 ||','|| l_audit_field_17
6046 ||','||' '
6047 ||','||' '
6048 ||','||' '
6049 ||','||' '
6050 ||','||' '
6051 ||','||lpad(' ',6)
6052 ||','||' '
6053 ||','||lpad(' ',6)
6054 ||','||' '
6055 ||','||' '
6056 ||','||' '
6057 ||','||' '
6058 ||','||' '
6059 ||','||' '
6060 ||','||' '
6061 ||','||' '
6062 ||','||' '
6063 ||','||' '
6064 ||','||lpad(' ',5);
6065 --} End of formatting BLANK RS record used for audit report
6066 --
6067 END IF; -- p_input_40
6068 p_error := l_exclude_from_output_chk;
6069 ret_str_len:=length(return_value);
6070 return return_value;
6071 END format_W2_RS_record;
6072 -- End of Formatting RS Record for W2 Reporting
6073
6074 -- Formatting RT record for W2 reporting
6075 --
6076 /*
6077 Record Identifier --> p_input_1
6078 Number of RW Records --> p_input_2
6079 Wages, Tips and other Compensation --> p_input_3
6080 Federal Income Tax Withheld --> p_input_4
6081 Social Security Wages --> p_input_5
6082 Social Security Tax Withheld --> p_input_6
6083 Medicare Wages And Tips --> p_input_7
6084 Medicare Tax Withheld --> p_input_8
6085 Social Security Tips --> p_input_9
6086 Advance Earned Income Credit --> p_input_10
6087 Dependent Care Benefits --> p_input_11
6088 Deferred Compensation Contributions to Section 401(k) --> p_input_12
6089 Deferred Compensation Contributions to Section 403(b) --> p_input_13
6090 Deferred Compensation Contributions to Section 408(k)(6) --> p_input_14
6091 Deferred Compensation Contributions to Section 457(b) --> p_input_15
6092 Deferred Compensation Contributions to Section 501(c)(18)(D) --> p_input_16
6093 Military EE''s Basic Quarters, Subsistence And Combat Pay --> p_input_17
6094 Non-Qual. Plan Sec.457 Distributions or Contributions --> p_input_18
6095 Non-Qual. Plan NOT Section 457 Distributions or Contributions --> p_input_19
6096 Employer Cost of Premiums for GTL> $50k --> p_input_20
6097 Income Tax Withheld by Third-Party Payer --> p_input_21
6098 Income from the Exercise of Nonqualified Stock Options --> p_input_22
6099
6100 For Massachussets following input parameters were used
6101 W2 Govt EE Contributions --> p_input_23
6102 Total Fed Wages --> p_input_24
6103
6104 For PuertoRico following input parameters were used
6105 Cost of Pension or Annuity --> p_input_23
6106 Contributions to Qualified Plans --> p_input_24
6107 Cost Reimbursement --> p_input_25
6108 Employer Contributions to a Health Savings Account --> p_input_26
6109 Non-Taxable Combat Pay --> p_input_27
6110 Deferrals Under a Section 409A Non-Qualified Deferred Comp Plan--> p_input_28
6111 Designated Roth Contributions to a section 401(k) Plan --> p_input_31
6112 Designated Roth Contributions Under a section 403(b) Plan --> p_input_32
6113 Employer-Sponsored Health Coverage --> p_input_41
6114 */
6115 FUNCTION format_W2_RT_record(
6116 p_effective_date IN varchar2,
6117 p_report_type IN varchar2,
6118 p_format IN varchar2,
6119 p_report_qualifier IN varchar2,
6120 p_record_name IN varchar2,
6121 p_input_1 IN varchar2,
6122 p_input_2 IN varchar2,
6123 p_input_3 IN varchar2,
6124 p_input_4 IN varchar2,
6125 p_input_5 IN varchar2,
6126 p_input_6 IN varchar2,
6127 p_input_7 IN varchar2,
6128 p_input_8 IN varchar2,
6129 p_input_9 IN varchar2,
6130 p_input_10 IN varchar2,
6131 p_input_11 IN varchar2,
6132 p_input_12 IN varchar2,
6133 p_input_13 IN varchar2,
6134 p_input_14 IN varchar2,
6135 p_input_15 IN varchar2,
6136 p_input_16 IN varchar2,
6137 p_input_17 IN varchar2,
6138 p_input_18 IN varchar2,
6139 p_input_19 IN varchar2,
6140 p_input_20 IN varchar2,
6141 p_input_21 IN varchar2,
6142 p_input_22 IN varchar2,
6143 p_input_23 IN varchar2,
6144 p_input_24 IN varchar2,
6145 p_input_25 IN varchar2,
6146 p_input_26 IN varchar2,
6147 p_input_27 IN varchar2,
6148 p_input_28 IN varchar2,
6149 p_input_29 IN varchar2,
6150 p_input_30 IN varchar2,
6151 p_input_31 IN varchar2,
6152 p_input_32 IN varchar2,
6153 p_input_33 IN varchar2,
6154 p_input_34 IN varchar2,
6155 p_input_35 IN varchar2,
6156 p_input_36 IN varchar2,
6157 p_input_37 IN varchar2,
6158 p_input_38 IN varchar2,
6159 p_input_39 IN varchar2,
6160 p_input_40 IN varchar2,
6161 p_validate IN varchar2,
6162 p_exclude_from_output OUT nocopy varchar2,
6163 sp_out_1 OUT nocopy varchar2,
6164 sp_out_2 OUT nocopy varchar2,
6165 sp_out_3 OUT nocopy varchar2,
6166 sp_out_4 OUT nocopy varchar2,
6167 sp_out_5 OUT nocopy varchar2,
6168 ret_str_len OUT nocopy number,
6169 p_error OUT nocopy boolean,
6170 p_input_41 IN varchar2 default null /* Bug# 13351713 */
6171 ) RETURN VARCHAR2
6172 IS
6173 l_input_2 varchar2(100);
6174 return_value varchar2(32767);
6175 l_exclude_from_output_chk boolean;
6176 l_rt_end_of_rec varchar2(200);
6177 l_records number(10);
6178 l_end_of_rec varchar2(20);
6179 p_end_of_rec varchar2(20) :=
6180 fnd_global.local_chr(13)||fnd_global.local_chr(10);
6181
6182 TYPE function_columns IS RECORD(
6183 p_parameter_name varchar2(100),
6184 p_parameter_value varchar2(100),
6185 p_output_value varchar2(100)
6186 );
6187 function_parameter_rec function_columns;
6188 TYPE input_parameter_record IS TABLE OF function_parameter_rec%TYPE
6189 INDEX BY BINARY_INTEGER;
6190 parameter_record input_parameter_record;
6191
6192 r_input_1 varchar2(300);
6193 r_input_2 varchar2(300);
6194 r_input_3 varchar2(300);
6195 r_input_4 varchar2(300);
6196 r_input_5 varchar2(300);
6197 r_input_6 varchar2(300);
6198 r_input_7 varchar2(300);
6199 r_input_8 varchar2(300);
6200 r_input_9 varchar2(300);
6201 r_input_10 varchar2(300);
6202 r_input_11 varchar2(300);
6203 r_input_12 varchar2(300);
6204 r_input_13 varchar2(300);
6205 r_input_14 varchar2(300);
6206 r_input_15 varchar2(300);
6207 r_input_16 varchar2(300);
6208 r_input_17 varchar2(300);
6209 r_input_18 varchar2(300);
6210 r_input_19 varchar2(300);
6211 r_input_20 varchar2(300);
6212 r_input_21 varchar2(300);
6213 r_input_22 varchar2(300);
6214 r_input_23 varchar2(300);
6215 r_input_24 varchar2(300);
6216 r_input_25 varchar2(300);
6217 r_input_26 varchar2(300);
6218 r_input_27 varchar2(300);
6219 r_input_28 varchar2(300);
6220 r_input_29 varchar2(300);
6221 r_input_30 varchar2(300);
6222 r_input_31 varchar2(300);
6223 r_input_32 varchar2(300);
6224 r_input_33 varchar2(300);
6225 r_input_34 varchar2(300);
6226 r_input_35 varchar2(300);
6227 r_input_36 varchar2(300);
6228 r_input_37 varchar2(300);
6229 r_input_38 varchar2(300);
6230 r_input_39 varchar2(300);
6231 r_input_41 varchar2(300); /* Bug# 13351713 */
6232
6233 BEGIN
6234 -- hr_utility.trace_on(null,'RI_W2') ;
6235 hr_utility.trace('Formatting RT record for W2 reporting');
6236 hr_utility.trace('p_report_qualifier = '||p_report_qualifier);
6237 -- Initializing local variables with parameter value
6238 --{
6239 r_input_2 := p_input_2;
6240 r_input_3 := p_input_3;
6241 r_input_4 := p_input_4;
6242 r_input_5 := p_input_5;
6243 r_input_6 := p_input_6;
6244 r_input_7 := p_input_7;
6245 r_input_8 := p_input_8;
6246 r_input_9 := p_input_9;
6247 r_input_10 := p_input_10;
6248 r_input_11 := p_input_11;
6249 r_input_12 := p_input_12;
6250 r_input_13 := p_input_13;
6251 r_input_14 := p_input_14;
6252 r_input_15 := p_input_15;
6253 r_input_16 := p_input_16;
6254 r_input_17 := p_input_17;
6255 r_input_18 := p_input_18;
6256 r_input_19 := p_input_19;
6257 r_input_20 := p_input_20;
6258 r_input_21 := p_input_21;
6259 r_input_22 := p_input_22;
6260 r_input_23 := p_input_23;
6261 r_input_24 := p_input_24;
6262 r_input_25 := p_input_25;
6263 r_input_26 := p_input_26;
6264 r_input_27 := p_input_27;
6265 r_input_28 := p_input_28;
6266 r_input_29 := p_input_29;
6267 r_input_30 := p_input_30;
6268 r_input_31 := p_input_31;
6269 r_input_32 := p_input_32;
6270 r_input_33 := p_input_33;
6271 r_input_34 := p_input_34;
6272 r_input_35 := p_input_35;
6273 r_input_36 := p_input_36;
6274 r_input_37 := p_input_37;
6275 r_input_38 := p_input_38;
6276 r_input_39 := p_input_39;
6277 r_input_41 := p_input_41; /* Bug# 13351713 */
6278 --}
6279 -- Validation Starts
6280 If p_input_40='FLAT' THEN
6281 --{
6282 IF p_report_qualifier = 'MA' THEN
6283 --{
6284 parameter_record(1).p_parameter_name:= 'State taxable Wages';
6285 parameter_record(1).p_parameter_value:=p_input_3;
6286
6287 parameter_record(2).p_parameter_name:= 'SIT withheld';
6288 parameter_record(2).p_parameter_value:=p_input_4;
6289
6290 parameter_record(3).p_parameter_name:= 'FICA and Medicare withheld';
6291 parameter_record(3).p_parameter_value:=p_input_5;
6292
6293 parameter_record(4).p_parameter_name:= 'W2 Govt EE Contributions';
6294 parameter_record(4).p_parameter_value:=p_input_23;
6295
6296 parameter_record(5).p_parameter_name:= 'Total Fed Wages';
6297 parameter_record(5).p_parameter_value:=p_input_24;
6298 l_records :=5;
6299 --}
6300 ELSIF p_report_qualifier = 'CT' THEN
6301 --{
6302 parameter_record(1).p_parameter_name:= 'State taxable Wages';
6303 parameter_record(1).p_parameter_value:=p_input_3;
6304
6305 parameter_record(2).p_parameter_name:= 'SIT withheld';
6306 parameter_record(2).p_parameter_value:=p_input_4;
6307
6308 l_records :=2;
6309 --}
6310 ELSIF p_report_qualifier = 'PA' THEN
6311 --{
6312 parameter_record(1).p_parameter_name:= 'State taxable Wages';
6313 parameter_record(1).p_parameter_value:=p_input_3;
6314
6315 parameter_record(2).p_parameter_name:= 'SIT withheld';
6316 parameter_record(2).p_parameter_value:=p_input_4;
6317
6318 /* Bug 3680056 New field */
6319 parameter_record(3).p_parameter_name:= 'Employer Contributions to Health Savings Account';
6320 parameter_record(3).p_parameter_value:=p_input_26;
6321
6322 parameter_record(4).p_parameter_name:= 'Non-Taxable Combat Pay';
6323 parameter_record(4).p_parameter_value := p_input_27 ;
6324
6325 l_records := 4 ;
6326 -- l_records :=3;
6327 --}
6328 ELSIF p_report_qualifier = 'RI' THEN
6329 --{
6330 parameter_record(1).p_parameter_name:= 'Wages,Tips And Other Compensation';
6331 parameter_record(1).p_parameter_value:=p_input_3;
6332
6333 parameter_record(2).p_parameter_name:= 'Federal Income Tax Withheld';
6334 parameter_record(2).p_parameter_value:=p_input_4;
6335
6336 parameter_record(3).p_parameter_name:= 'State Taxable Wages';
6337 parameter_record(3).p_parameter_value:=p_input_5;
6338
6339 parameter_record(4).p_parameter_name:= 'Medicare Wages And Tips';
6340 parameter_record(4).p_parameter_value:=p_input_6;
6341
6342 parameter_record(5).p_parameter_name:= 'Medicare Tax Withheld';
6343 parameter_record(5).p_parameter_value:=p_input_7;
6344
6345 parameter_record(6).p_parameter_name:= 'SIT withheld';
6346 parameter_record(6).p_parameter_value:=p_input_8;
6347
6348 /* Bug 3680056 New field */
6349 parameter_record(7).p_parameter_name:= 'Employer Contributions to Health Savings Account';
6350 parameter_record(7).p_parameter_value:=p_input_26;
6351
6352 parameter_record(8).p_parameter_name:= 'Non-Taxable Combat Pay';
6353 parameter_record(8).p_parameter_value := p_input_27 ;
6354
6355 parameter_record(9).p_parameter_name:= 'Deferrals Under a Sec 409A Non-Qual Def Comp Plan';
6356 parameter_record(9).p_parameter_value := p_input_28 ;
6357
6358 l_records := 9 ;
6359
6360 -- l_records :=7;
6361 --}
6362 ELSIF p_report_qualifier = 'FL_SQWL' THEN
6363 --{
6364 parameter_record(1).p_parameter_name:= 'Wages,Tips And Other Compensation';
6365 parameter_record(1).p_parameter_value:=p_input_3;
6366
6367 parameter_record(2).p_parameter_name:= 'Total Tax Due';
6368 parameter_record(2).p_parameter_value:=p_input_22;
6369
6370 parameter_record(3).p_parameter_name:= 'Corrected Worker Ist Month';
6371 parameter_record(3).p_parameter_value:=p_input_23;
6372
6373 parameter_record(4).p_parameter_name:= 'Corrected Worker IInd Month';
6374 parameter_record(4).p_parameter_value:=p_input_24;
6375
6376 parameter_record(5).p_parameter_name:= 'Corrected Worker IIIrd Month';
6377 parameter_record(5).p_parameter_value:=p_input_25;
6378
6379 l_records := 5 ;
6380 l_end_of_rec := p_end_of_rec;
6381 --}
6382 ELSIF p_report_qualifier = 'MO_KNSAS' THEN
6383 -- Fix for Bug# 4502738
6384 --{
6385 parameter_record(1).p_parameter_name:= 'Wages,Tips And Other Compensation';
6386 parameter_record(1).p_parameter_value:=p_input_3;
6387
6388 parameter_record(2).p_parameter_name:= 'Medicare Wages And Tips';
6389 parameter_record(2).p_parameter_value:=p_input_7;
6390
6391 parameter_record(3).p_parameter_name:= 'Medicare Tax Withheld';
6392 parameter_record(3).p_parameter_value:=p_input_8;
6393
6394 l_records := 3 ;
6395 l_end_of_rec := p_end_of_rec;
6396 --}
6397 ELSE
6398 --{
6399 parameter_record(1).p_parameter_name:= ' Wages,Tips And Other Compensation';
6400 parameter_record(1).p_parameter_value:=p_input_3;
6401
6402 parameter_record(2).p_parameter_name:= ' Federal Income Tax Withheld';
6403 parameter_record(2).p_parameter_value:=p_input_4;
6404
6405 parameter_record(3).p_parameter_name:= 'Social Security Wages';
6406 parameter_record(3).p_parameter_value:=p_input_5;
6407
6408 parameter_record(4).p_parameter_name:= ' Social Security Tax Withheld';
6409 parameter_record(4).p_parameter_value:=p_input_6;
6410
6411 parameter_record(5).p_parameter_name:= 'Medicare Wages And Tips';
6412 parameter_record(5).p_parameter_value:=p_input_7;
6413
6414 parameter_record(6).p_parameter_name:= 'Medicare Tax Withheld';
6415 parameter_record(6).p_parameter_value:=p_input_8;
6416
6417 parameter_record(7).p_parameter_name:= 'Social Security Tips';
6418 parameter_record(7).p_parameter_value:=p_input_9;
6419
6420 parameter_record(8).p_parameter_name:= 'Advance Earned Income Credit';
6421 parameter_record(8).p_parameter_value:=p_input_10;
6422
6423 parameter_record(9).p_parameter_name:= 'Dependent Care Benefits';
6424 parameter_record(9).p_parameter_value:=p_input_11;
6425
6426 parameter_record(10).p_parameter_name:= 'Deferred Comp Contr. to Sec 401(k)';
6427 parameter_record(10).p_parameter_value:=p_input_12;
6428
6429 parameter_record(11).p_parameter_name:= 'Deferred Comp Contr. to Sec 403(b)';
6430 parameter_record(11).p_parameter_value:=p_input_13;
6431
6432 parameter_record(12).p_parameter_name:= 'Deferred Comp Contr. to Sec 408(k)(6)';
6433 parameter_record(12).p_parameter_value:=p_input_14;
6434
6435 parameter_record(13).p_parameter_name:= 'Deferred Comp Contr. to Sec 457(b)';
6436 parameter_record(13).p_parameter_value:=p_input_15;
6437
6438 parameter_record(14).p_parameter_name:= 'Deferred Comp Contr. to Sec 501(c)';
6439 parameter_record(14).p_parameter_value:=p_input_16;
6440
6441 /* Following field is commented to fix bug # 2297587
6442 parameter_record(15).p_parameter_name:= 'Military Combat Pay';
6446 parameter_record(15).p_parameter_value:=p_input_18;
6443 parameter_record(15).p_parameter_value:=p_input_17;
6444 */
6445 parameter_record(15).p_parameter_name:= 'Non-Qual. plan Sec 457';
6447
6448 parameter_record(16).p_parameter_name:= 'Non-Qual. plan NOT Sec 457';
6449 parameter_record(16).p_parameter_value:=p_input_19;
6450
6451 parameter_record(17).p_parameter_name:= 'Employer cost of premiun';
6452 parameter_record(17).p_parameter_value:=p_input_20;
6453
6454 parameter_record(18).p_parameter_name:= 'Income tax withheld by 3rd party payer';
6455 parameter_record(18).p_parameter_value:=p_input_21;
6456
6457 parameter_record(19).p_parameter_name:= 'Income from nonqualified stock option';
6458 parameter_record(19).p_parameter_value:=p_input_22;
6459
6460 /* Bug 3680056 New field */
6461 parameter_record(20).p_parameter_name:= 'Employer Contributions to Health Savings Account';
6462 parameter_record(20).p_parameter_value:=p_input_26;
6463
6464 parameter_record(21).p_parameter_name:= 'Non-Taxable Combat Pay';
6465 parameter_record(21).p_parameter_value := p_input_27 ;
6466
6467 parameter_record(22).p_parameter_name:= 'Deferrals Under a Sec 409A Non-Qual Def Comp Plan';
6468 parameter_record(22).p_parameter_value := p_input_28 ;
6469 /* Bug 5256745 */
6470
6471 parameter_record(23).p_parameter_name:= 'Roth Contributions Und Sec 401(k) Plan';
6472 parameter_record(23).p_parameter_value := p_input_31 ;
6473
6474 parameter_record(24).p_parameter_name:= 'Roth Contributions Und Sec 403(b) Plan';
6475 parameter_record(24).p_parameter_value := p_input_32 ;
6476
6477 l_records := 24 ;
6478
6479 END IF;
6480
6481 /* These Values validated specifically for PuertoRico */
6482 /* Bug 3680056 - Since New field is added as parameter 20, the foll. 3 parameters for PR
6483 have been shifted by one each. i.e from 20-22 to 21-23 */
6484 IF p_report_qualifier = 'PR' THEN
6485
6486 parameter_record(21).p_parameter_name:= 'Cost of Pension Annuity';
6487 parameter_record(21).p_parameter_value:=p_input_23;
6488
6489 parameter_record(22).p_parameter_name:= 'Contribution to Qual. Plans';
6490 parameter_record(22).p_parameter_value:=p_input_24;
6491
6492 parameter_record(23).p_parameter_name:= 'Cost Reimbursement';
6493 parameter_record(23).p_parameter_value:=p_input_25;
6494
6495 parameter_record(24).p_parameter_name:= 'Non-Taxable Combat Pay';
6496 parameter_record(24).p_parameter_value := p_input_27 ;
6497
6498 parameter_record(25).p_parameter_name:= 'Deferrals Under a Sec 409A Non-Qual Def Comp Plan';
6499 parameter_record(25).p_parameter_value := p_input_28 ;
6500
6501 parameter_record(26).p_parameter_name:= 'Uncollected SS Tax on Tips';
6502 parameter_record(26).p_parameter_value := p_input_29 ;
6503
6504 parameter_record(27).p_parameter_name:= 'Uncollected Medicare Tax on Tips';
6505 parameter_record(27).p_parameter_value := p_input_30 ;
6506
6507 l_records := 27 ;
6508
6509 END IF;
6510
6511 -- Validating above data based on the report_qualifier and number entries
6512 --
6513 FOR i in 1..l_records
6514 LOOP
6515 parameter_record(i).p_output_value :=
6516 pay_us_reporting_utils_pkg.data_validation( p_effective_date,
6517 p_report_type,
6518 p_format,
6519 p_report_qualifier,
6520 p_record_name,
6521 'NEG_CHECK',
6522 parameter_record(i).p_parameter_value,
6523 parameter_record(i).p_parameter_name,
6524 p_input_39,
6525 null,
6526 p_validate,
6527 p_exclude_from_output,
6528 sp_out_1,
6529 sp_out_2);
6530 IF p_exclude_from_output = 'Y' THEN
6531 l_exclude_from_output_chk := TRUE;
6532 END IF;
6533 hr_utility.trace(parameter_record(i).p_parameter_name||' = '
6534 ||parameter_record(i).p_output_value);
6535 hr_utility.trace('p_exclude_from_output = '||p_exclude_from_output);
6536 END LOOP;
6537
6538 -- Validation Ends here
6539 --
6540 -- Formatting RT Record depending on report_qualifier
6541 --
6542 -- Formatting No of Employee Wage/State Record
6543 l_input_2:= lpad(substr(nvl(p_input_2,'0'),1,7),7,0);
6544
6545 IF p_report_qualifier = 'MA' THEN
6546 --{
6547 return_value := 'RT'||l_input_2
6548 ||parameter_record(1).p_output_value
6549 ||parameter_record(2).p_output_value
6550 ||lpad(' ',45)
6551 /* ||parameter_record(3).p_output_value
6552 ||parameter_record(4).p_output_value -- Railroad, MA and Local Govt Reqtirement Contrib
6553 ||parameter_record(5).p_output_value -- Fed Wages (Box 1) */
6554 ||lpad(' ',45) /* 6720319 */
6555 ||lpad(' ',165) /* 13255564 */
6556 ||lpad(nvl(r_input_41,'0'),15,'0') /* Bug# 13351713 */
6557 ||lpad(' ',203); ---- Bug 132555564
6558 --||lpad(' ',383); -- 383 Spaces
6559 --}
6560 ELSIF p_report_qualifier = 'CT' THEN
6561 --{
6562 --
6563 -- space between wage and withhed removed to fix bug # 2640052
6564 --
6565 return_value := 'RT'||l_input_2
6566 ||parameter_record(1).p_output_value
6567 -- ||lpad(' ',1)
6568 ||parameter_record(2).p_output_value
6569 ||lpad(' ',255)
6570 ||lpad(nvl(r_input_41,'0'),15,'0') /* Bug# 13351713 */
6571 ||lpad(' ',203); ---- Bug 132555564
6572 --||lpad(' ',473);
6573
6574 --}
6575 ELSIF p_report_qualifier = 'PA' THEN
6576 --{
6577 return_value := 'RT'||lpad(' ',247) -- changed from 249
6578 ||parameter_record(3).p_output_value -- Bug 3680056 - New Field 250-264
6579 --||lpad(' ',209)
6580 ||lpad(' ',15)
6581 ||parameter_record(4).p_output_value
6582 || lpad(nvl(r_input_41,'0'),15,'0') /* Bug# 13351713 */ ||rpad(' ',166) --Bug 13255564
6583 ||l_input_2
6584 ||parameter_record(1).p_output_value
6585 ||parameter_record(2).p_output_value;
6586 --}
6587 ELSIF p_report_qualifier = 'RI' THEN
6588 --{
6589 hr_utility.trace('Within RI') ;
6590 return_value := 'RT'||l_input_2
6591 ||parameter_record(1).p_output_value
6592 ||parameter_record(2).p_output_value
6593 ||parameter_record(3).p_output_value
6594 ||lpad(' ',15)
6595 ||parameter_record(4).p_output_value
6596 ||parameter_record(5).p_output_value
6597 ||parameter_record(6).p_output_value
6598 ||lpad(' ',135) /* Bug 3680056 - New field from 250-264 */
6599 ||rpad(parameter_record(7).p_output_value,30)
6600 ||rpad(parameter_record(8).p_output_value,15)
6601 ||lpad(nvl(r_input_41,'0'),15,'0') /* Bug# 13351713 */
6602 ||lpad('0',45,'0')
6603 ||rpad(parameter_record(9).p_output_value,158) ;
6604 hr_utility.trace('Exiting RI') ;
6605 --}
6606 ELSIF p_report_qualifier = 'SC_SQWL' THEN /*2274381.*/
6607 return_value := 'RT'||l_input_2
6608 ||lpad(' ',503);
6609 ELSIF p_report_qualifier = 'FL_SQWL' THEN
6610 --{
6611 return_value := 'RT'||lpad(' ',7)
6612 ||lpad(substr(nvl(parameter_record(1).p_output_value,'0'),1,15),15)
6613 ||lpad(' ',456)
6614 ||lpad(substr(nvl(parameter_record(2).p_output_value,'0'),1,11),11)
6615 ||lpad(substr(nvl(parameter_record(3).p_output_value,'0'),1,7),7)
6616 ||lpad(substr(nvl(parameter_record(4).p_output_value,'0'),1,7),7)
6617 ||lpad(substr(nvl(parameter_record(5).p_output_value,'0'),1,7),7)
6618 ||l_end_of_rec;
6619 --}
6620 ELSIF p_report_qualifier = 'PA_PHILA' THEN /* Bug # 2680189 */
6621 return_value := 'RT'||lpad(' ',292)
6622 ||lpad(nvl(r_input_41,'0'),15,'0') /* Bug# 13351713 */
6623 ||lpad(' ',203);
6624 ELSIF p_report_qualifier = 'PR' THEN
6625 --{
6626 return_value := 'RT'||l_input_2
6627 ||parameter_record(1).p_output_value
6628 ||parameter_record(2).p_output_value
6629 ||parameter_record(3).p_output_value
6630 ||parameter_record(4).p_output_value
6631 ||parameter_record(5).p_output_value
6632 ||parameter_record(6).p_output_value
6633 ||parameter_record(7).p_output_value
6634 ||parameter_record(8).p_output_value
6635 ||parameter_record(9).p_output_value
6636 /* Bug 5876054
6637 ||parameter_record(10).p_output_value
6638 ||parameter_record(11).p_output_value
6639 ||parameter_record(12).p_output_value
6640 ||parameter_record(13).p_output_value
6641 ||parameter_record(14).p_output_value
6642 ||lpad(' ',15)
6643 ||rpad(parameter_record(15).p_output_value,15)
6644 */
6645 ||lpad('0',15,'0')
6646 ||lpad('0',15,'0')
6647 ||lpad('0',15,'0')
6648 ||lpad('0',15,'0')
6649 ||lpad('0',15,'0')
6650 --||lpad(' ',15,' ')-- Bug 15955687 Bug 14799506, pos 220-234 is balnk filled
6651 ||lpad('0',15,'0') -- for thr Bug 16173051
6652 ||lpad('0',15,'0')--235-249
6653 -- Bug 3680056 - New Field 250-264
6654 ||parameter_record(20).p_output_value
6655 ||parameter_record(16).p_output_value
6656 -- ||rpad(parameter_record(24).p_output_value,30) /* Commented for Bug# 13449377 */
6657 ||parameter_record(24).p_output_value /* Bug# 13449377 */
6658 ||lpad(nvl(r_input_41,'0'),15,'0') /* Displaying Employer-Sponsored Health Coverage as part of Bug# 13449377 */
6659 ||parameter_record(17).p_output_value
6660 ||parameter_record(18).p_output_value
6661 ||parameter_record(19).p_output_value
6662 -- 5876054 ||parameter_record(25).p_output_value /* Changed from here : Bug 4665713 */
6663 ||lpad('0',15,'0')
6664 ||lpad('0',30,'0')
6665 ||lpad(' ',113) /* 6644795 - The Values have been Moved to the RV record */
6666 /* ||lpad(' ',22)
6667 ||parameter_record(21).p_output_value
6668 ||parameter_record(22).p_output_value
6669 ||parameter_record(23).p_output_value
6670 ||lpad('0',15,'0')
6671 ||parameter_record(26).p_output_value
6672 ||parameter_record(27).p_output_value
6673 ||lpad(' ',1) */;
6674 --}
6675 ELSIF p_report_qualifier = 'MO_KNSAS' THEN
6676 --{
6677 -- Fix for Bug# 4502738
6678 return_value := 'RT'||l_input_2
6679 ||parameter_record(1).p_output_value
6680 ||rpad('0',45,'0' )
6681 ||parameter_record(2).p_output_value
6682 ||parameter_record(3).p_output_value
6683 ||rpad('0',120,'0' )
6684 ||rpad(' ',15,' ' )
6685 ||rpad('0',60,'0' )
6686 ||lpad(nvl(r_input_41,'0'),15,'0') /* Bug# 13351713 */
6687 ||rpad('0',60,'0' )
6688 ||rpad(' ',143,' ' );
6689 --}
6690 ELSE
6691 --{
6692 return_value := 'RT'||l_input_2
6693 ||parameter_record(1).p_output_value
6694 ||parameter_record(2).p_output_value
6695 ||parameter_record(3).p_output_value
6696 ||parameter_record(4).p_output_value
6697 ||parameter_record(5).p_output_value
6698 ||parameter_record(6).p_output_value
6699 ||parameter_record(7).p_output_value
6700 ||parameter_record(8).p_output_value
6701 ||parameter_record(9).p_output_value
6702 ||parameter_record(10).p_output_value
6703 ||parameter_record(11).p_output_value
6704 ||parameter_record(12).p_output_value
6705 ||parameter_record(13).p_output_value
6706 ||parameter_record(14).p_output_value
6707 -- commented to fix bug # 2297587 ||parameter_record(15).p_output_value
6708 --Bug 4859212
6709 ||lpad(' ',15,' ') /*Pos 220-234, balnk filled for the Bug 14799506 */
6710 ||rpad(parameter_record(15).p_output_value,15)
6711 ||rpad(parameter_record(20).p_output_value,15) -- Bug 3680056 Pos 250-264
6712 --||rpad(parameter_record(16).p_output_value,45)
6713 ||parameter_record(16).p_output_value
6714 ||rpad(parameter_record(21).p_output_value,15)
6715 || lpad(nvl(r_input_41,'0'),15,'0') /* Bug# 13351713 */
6716 ||parameter_record(17).p_output_value
6717 ||parameter_record(18).p_output_value
6718 --||rpad(parameter_record(19).p_output_value,173);
6719 ||parameter_record(19).p_output_value
6720 --||rpad(parameter_record(22).p_output_value,158)
6721 /* Bug 5256745 */
6722 ||parameter_record(22).p_output_value
6723 ||parameter_record(23).p_output_value
6724 ||rpad(parameter_record(24).p_output_value,128) ;
6725
6726 --}
6727 END IF;
6728 hr_utility.trace('B4 Calculating length') ;
6729 ret_str_len:=length(return_value);
6730 --}
6731 ELSIF p_input_40 = 'CSV' THEN
6732 --{
6733 /* for PuertoRico following condition added */
6734 IF p_report_qualifier = 'PR' THEN
6735 /* Bug 4665713 */
6736 l_rt_end_of_rec := ','||p_input_28
6737 ||lpad(' ',52)||'|'||
6738 'Cost of Pension Annuity '||p_input_23||'|'||
6739 'Contrib to Qual. Plans ' ||p_input_24||'|'||
6740 'Cost Reimbursement ' ||p_input_25||'|'||
6741 'Salaries under Act No. 324 of 2004 ' ||'0'||'|'||
6742 'Uncollected SS Tax on Tips '||p_input_29||'|'||
6743 'Uncollected Medicare Tax on Tips '||p_input_30 ;
6744
6745 ELSE
6746 l_rt_end_of_rec := ','||p_input_28
6747 ||','||p_input_31
6748 ||','||p_input_32
6749 ||','||lpad(' ',113) ;
6750 END IF;
6751
6752 return_value := 'RT'||','||l_input_2
6753 ||','||p_input_3
6754 ||','||p_input_4
6755 ||','||p_input_5
6756 ||','||p_input_6
6757 ||','||p_input_7
6758 ||','||p_input_8
6759 ||','||p_input_9
6760 ||','||p_input_10
6761 ||','||p_input_11
6762 ||','||p_input_12
6763 ||','||p_input_13
6764 ||','||p_input_14
6765 ||','||p_input_15
6766 ||','||p_input_16
6767 -- commented to fix bug # 2297587 ||','||p_input_17
6768 ||','||lpad('0',15,'0') /* Bug 4859212 */
6769 ||','||p_input_18
6770 ||','||p_input_26 -- Bug 3680056 ER Contrib to HSA
6771 ||','||p_input_19
6772 ||','||p_input_27
6773 ||','||lpad(' ',15)
6774 ||','||p_input_20
6775 ||','||p_input_21
6776 ||','||p_input_22
6777 ||','||p_input_41 /* Bug# 13351713 */
6778 ||l_rt_end_of_rec;
6779 --}
6780 END IF; -- p_input_40 (i.e. FLAT, CSV)
6781 p_error := l_exclude_from_output_chk;
6782 ret_str_len:=length(return_value);
6783 hr_utility.trace('Exiting RT') ;
6784 return return_value;
6785 END format_W2_RT_record; -- End of Formatting RT record
6786 --
6787 -- Formatting RW record for W2 reporting
6788 --
6789 /*
6790 Record Identifier --> p_input_1
6791 Number of RO Records --> p_input_2
6792 Allocated Tips --> p_input_3
6793 Uncollected Employee Tax on Tips --> p_input_4
6794 Medical Savings Account --> p_input_5
6795 Simple Retirement Account --> p_input_6
6796 Qualified Adoption Expenses --> p_input_7
6797 Uncollected Social Security Tax on GTL --> p_input_8
6798 Uncollected Medicare Tax On GTL --> p_input_9
6799 Wages Subject to Puerto Rico Tax --> p_input_10
6800 Commissions Subject to Puerto Rico Tax --> p_input_11
6801 Allowances Subject to Puerto Rico Tax --> p_input_12
6802 Tips Subject to Puerto Rico Tax --> p_input_13
6803 Total Wages, Commissions, Tips, And Allow Sub to PR Tax --> p_input_14
6804 Puerto Rico Tax Withheld --> p_input_15
6805 Retirement Fund Annual Contributions --> p_input_16
6806 Total Wages, Tips And Other Comp Sub to Virgin Islands,
6807 or Guam, or American Samoa, or Northern Mariana
6808 Islands Income Tax --> p_input_17
6809 Virgin Islands, or Guam, Or American Samoa, or Northern
6810 Mariana Islands Income Tax Withheld --> p_input_18
6811 Income Under Section 409A on Non-Qualified Def Comp Plan --> p_input_20
6812 Employee Number --> p_input_39
6813 Blank;
6814 */
6815 FUNCTION format_W2_RU_record(
6816 p_effective_date IN varchar2,
6817 p_report_type IN varchar2,
6818 p_format IN varchar2,
6819 p_report_qualifier IN varchar2,
6820 p_record_name IN varchar2,
6821 p_input_1 IN varchar2,
6822 p_input_2 IN varchar2,
6823 p_input_3 IN varchar2,
6824 p_input_4 IN varchar2,
6825 p_input_5 IN varchar2,
6826 p_input_6 IN varchar2,
6827 p_input_7 IN varchar2,
6828 p_input_8 IN varchar2,
6829 p_input_9 IN varchar2,
6830 p_input_10 IN varchar2,
6831 p_input_11 IN varchar2,
6832 p_input_12 IN varchar2,
6833 p_input_13 IN varchar2,
6834 p_input_14 IN varchar2,
6835 p_input_15 IN varchar2,
6836 p_input_16 IN varchar2,
6837 p_input_17 IN varchar2,
6838 p_input_18 IN varchar2,
6839 p_input_19 IN varchar2,
6840 p_input_20 IN varchar2,
6841 p_input_21 IN varchar2,
6842 p_input_22 IN varchar2,
6843 p_input_23 IN varchar2,
6844 p_input_24 IN varchar2,
6845 p_input_25 IN varchar2,
6846 p_input_26 IN varchar2,
6847 p_input_27 IN varchar2,
6848 p_input_28 IN varchar2,
6849 p_input_29 IN varchar2,
6850 p_input_30 IN varchar2,
6851 p_input_31 IN varchar2,
6852 p_input_32 IN varchar2,
6853 p_input_33 IN varchar2,
6854 p_input_34 IN varchar2,
6855 p_input_35 IN varchar2,
6856 p_input_36 IN varchar2,
6857 p_input_37 IN varchar2,
6858 p_input_38 IN varchar2,
6859 p_input_39 IN varchar2,
6860 p_input_40 IN varchar2,
6861 p_validate IN varchar2,
6862 p_exclude_from_output OUT nocopy varchar2,
6863 sp_out_1 OUT nocopy varchar2,
6864 sp_out_2 OUT nocopy varchar2,
6865 sp_out_3 OUT nocopy varchar2,
6869 p_error OUT nocopy boolean
6866 sp_out_4 OUT nocopy varchar2,
6867 sp_out_5 OUT nocopy varchar2,
6868 ret_str_len OUT nocopy number,
6870 ) RETURN VARCHAR2
6871 IS
6872 l_input_2 varchar2(100);
6873 return_value varchar2(32767);
6874 l_exclude_from_output_chk boolean;
6875 r_input_6 varchar2(100);
6876
6877 TYPE function_columns IS RECORD(
6878 p_parameter_name varchar2(100),
6879 p_parameter_value varchar2(100),
6880 p_output_value varchar2(100)
6881 );
6882 function_parameter_rec function_columns;
6883 TYPE input_parameter_record IS TABLE OF function_parameter_rec%TYPE
6884 INDEX BY BINARY_INTEGER;
6885 parameter_record input_parameter_record;
6886 r_input_1 varchar2(300);
6887 r_input_2 varchar2(300);
6888 r_input_3 varchar2(300);
6889 BEGIN
6890 hr_utility.trace('Formatting RU Record');
6891 hr_utility.trace('Format Mode p_input_40 '||p_input_40);
6892 IF p_input_40='FLAT' THEN
6893 --{
6894 IF p_report_qualifier = 'PR' THEN -- Bug # 5668970
6895 r_input_6 := rpad('0',15,'0');
6896 END IF;
6897
6898 parameter_record(1).p_parameter_name:= ' Allocated Tips';
6899 parameter_record(1).p_parameter_value:=p_input_3;
6900
6901 parameter_record(2).p_parameter_name:= 'Uncollected employee tax on tips';
6902 parameter_record(2).p_parameter_value:=p_input_4;
6903
6904 parameter_record(3).p_parameter_name:= 'medical savings a/c';
6905 parameter_record(3).p_parameter_value:=p_input_5;
6906
6907 parameter_record(4).p_parameter_name:= 'simple retirement a/c';
6908 parameter_record(4).p_parameter_value:=p_input_6;
6909
6910 parameter_record(5).p_parameter_name:= 'qualified adoption expenses';
6911 parameter_record(5).p_parameter_value:=p_input_7;
6912
6913 parameter_record(6).p_parameter_name:= 'Uncollected SS tax';
6914 parameter_record(6).p_parameter_value:=p_input_8;
6915
6916 parameter_record(7).p_parameter_name:= 'Uncollected medicare tax';
6917 parameter_record(7).p_parameter_value:=p_input_9;
6918
6919 parameter_record(8).p_parameter_name:= 'wages sub. to PR tax';
6920 parameter_record(8).p_parameter_value:=p_input_10;
6921
6922 parameter_record(9).p_parameter_name:= 'Commissions sub.to PR tax';
6923 parameter_record(9).p_parameter_value:=p_input_11;
6924
6925 parameter_record(10).p_parameter_name:= 'Allowances sub. to PR tax';
6926 parameter_record(10).p_parameter_value:=p_input_12;
6927
6928 parameter_record(11).p_parameter_name:= 'Tips sub to PR tax';
6929 parameter_record(11).p_parameter_value:=p_input_13;
6930
6931 parameter_record(12).p_parameter_name:= 'Total wages sub to PR tax';
6932 parameter_record(12).p_parameter_value:=p_input_14;
6933
6934 parameter_record(13).p_parameter_name:= 'PR tax withheld';
6935 parameter_record(13).p_parameter_value:=p_input_15;
6936
6937 parameter_record(14).p_parameter_name:= 'Retirement fund ann. contri';
6938 parameter_record(14).p_parameter_value:=p_input_16;
6939
6940 parameter_record(15).p_parameter_name:= 'Total wages sub to VI,GU,AS and MP islands';
6941 parameter_record(15).p_parameter_value:=p_input_17;
6942
6943 parameter_record(16).p_parameter_name:= 'VI,GU or MP Islands income tax wh';
6944 parameter_record(16).p_parameter_value:=p_input_18;
6945
6946 --Added New Field in Pos: 115 - 129
6947
6948 parameter_record(17).p_parameter_name:= 'Income Und Sec 409A on Non-Qual Def Comp Plan';
6949 parameter_record(17).p_parameter_value := p_input_20;
6950
6951 parameter_record(18).p_parameter_name:= 'HIRE Exempt Wages and Tips';
6952 parameter_record(18).p_parameter_value := p_input_21;
6953
6954 --Bug 13255564
6955 parameter_record(19).p_parameter_name:= 'Designated Roth Contributions under a Governmental Section 457(b) plan';
6956 parameter_record(19).p_parameter_value := p_input_22;
6957
6958
6959 --hr_utility.trace('Wages in Ru record: '||p_input_21);
6960 --
6961 -- Validation and Formatting for above fields done in this loop
6962 FOR i in 1..19 -- Bug 13255564
6963 LOOP
6964 parameter_record(i).p_output_value :=
6965 pay_us_reporting_utils_pkg.data_validation(
6966 p_effective_date,
6967 p_report_type,
6968 p_format,
6969 p_report_qualifier,
6970 p_record_name,
6971 'NEG_CHECK',
6972 parameter_record(i).p_parameter_value,
6973 parameter_record(i).p_parameter_name,
6974 p_input_39,
6975 null,
6976 p_validate,
6977 p_exclude_from_output,
6978 sp_out_1,
6979 sp_out_2);
6983
6980 IF p_exclude_from_output = 'Y' THEN
6981 l_exclude_from_output_chk := TRUE;
6982 END IF;
6984 hr_utility.trace(parameter_record(i).p_parameter_name||' = '
6985 ||parameter_record(i).p_output_value);
6986 hr_utility.trace('p_exclude_from_output = '||p_exclude_from_output);
6987 END LOOP;
6988 -- Formatting RU record for format mode FLAT
6989 -- formatting Total no of record
6990 l_input_2 := lpad(substr(nvl(p_input_2,'0'),1,7),7,0);
6991 -- Formatting RU record for W2 reporting
6992 IF p_report_qualifier = 'PR' THEN
6993 --BUG 10419148
6994 r_input_1:=parameter_record(17).p_output_value;
6995 r_input_2:=rpad(parameter_record(18).p_output_value,225);
6996
6997 --hr_utility.trace('Wages in Ru record2: '||r_input_2);
6998 --hr_utility.trace('Wages in Ru record3: '||parameter_record(18).p_output_value);
6999
7000 return_value:='RU'||l_input_2
7001 /* ||parameter_record(1).p_output_value */
7002 ||rpad('0',15,'0') /* 6644795 */
7003 ||parameter_record(2).p_output_value
7004 /* ||parameter_record(3).p_output_value
7005 ||parameter_record(4).p_output_value
7006 ||parameter_record(5).p_output_value
7007 ||parameter_record(6).p_output_value
7008 --||rpad(parameter_record(7).p_output_value,255)
7009 ||parameter_record(7).p_output_value */
7010 ||rpad('0',75,'0')/* 6644795 */
7011 --||rpad(parameter_record(17).p_output_value,240)
7012 ||r_input_1
7013 ||r_input_2
7014 ||parameter_record(8).p_output_value
7015 ||parameter_record(9).p_output_value
7016 ||parameter_record(10).p_output_value
7017 ||parameter_record(11).p_output_value
7018 ||parameter_record(12).p_output_value
7019 ||parameter_record(13).p_output_value
7020 ||parameter_record(14).p_output_value
7021 ||parameter_record(15).p_output_value
7022 ||rpad(parameter_record(16).p_output_value,38);
7023 ELSE
7024 if p_report_qualifier in('FED','ID','KY') then --Bug 10427851
7025 r_input_1:=parameter_record(17).p_output_value;
7026 r_input_2:=parameter_record(18).p_output_value;
7027 r_input_3:=rpad(parameter_record(19).p_output_value,210); --Bug 13255564
7028 else
7029 --For the Bug#10419148
7030 --r_input_1:=rpad(parameter_record(17).p_output_value,240);
7031 r_input_1:=parameter_record(17).p_output_value;
7032 r_input_2:=rpad(' ',15);
7033 r_input_3:=rpad(parameter_record(19).p_output_value,210); --Bug 13255564
7034 end if;
7035
7036 return_value:='RU'||l_input_2
7037 ||parameter_record(1).p_output_value
7038 ||parameter_record(2).p_output_value
7039 ||parameter_record(3).p_output_value
7040 ||parameter_record(4).p_output_value
7041 ||parameter_record(5).p_output_value
7042 ||parameter_record(6).p_output_value
7043 --||rpad(parameter_record(7).p_output_value,255)
7044 ||parameter_record(7).p_output_value
7045 ||r_input_1
7046 ||r_input_2
7047 ||r_input_3
7048 ||parameter_record(8).p_output_value
7049 ||parameter_record(9).p_output_value
7050 ||parameter_record(10).p_output_value
7051 ||parameter_record(11).p_output_value
7052 ||parameter_record(12).p_output_value
7053 ||parameter_record(13).p_output_value
7054 ||parameter_record(14).p_output_value
7055 ||parameter_record(15).p_output_value
7056 ||rpad(parameter_record(16).p_output_value,38);
7057 END IF ;
7058 ret_str_len:=length(return_value);
7059 --}
7060 ELSIF p_input_40 = 'CSV' THEN
7061 -- Formatting RU record for W2 audit reports
7062 return_value:='RU'||','||l_input_2
7063 ||','||p_input_3
7064 ||','||p_input_4
7065 ||','||p_input_5
7066 ||','||p_input_6
7067 ||','||p_input_7
7068 ||','||p_input_8
7069 ||','||p_input_9
7070 ||','||p_input_20
7071 ||','||lpad(' ',225)
7072 ||','||p_input_10
7073 ||','||p_input_11
7074 ||','||p_input_12
7075 ||','||p_input_13
7076 ||','||p_input_14
7077 ||','||p_input_15
7078 ||','||p_input_16
7079 ||','||p_input_17
7080 ||','||p_input_18
7081 ||','||lpad(' ',23);
7082
7083 END IF; -- p_input_40
7084 ret_str_len:=length(return_value);
7085 p_error := l_exclude_from_output_chk;
7086 return return_value;
7087 END format_W2_RU_record; -- End of Formatting RU Record
7088
7089 -- Formatting RF record for W2 reporting
7090 --
7091 /*
7092 Effective Date --> p_effective_date
7093 Report Type (i.e.W2 ) --> p_report_type
7097 Record Identifier --> p_record_identifier
7094 Report Format --> p_format
7095 Report Qualifier --> p_report_qualifier
7096 Record Name (i.e. RF) --> p_record_name
7098 Number of RW Records --> p_total_no_of_record
7099 Wages, Tips and other Compensation --> p_total_wages
7100 Federal Income Tax Withheld --> p_total_taxes
7101 Report Format Mode (FLAT, CSV) --> p_format_mode
7102 Validation Flag --> p_validate
7103 Exclude Record from mag file --> p_exclude_from_output
7104 Return Record Length --> ret_str_len
7105 Validation Error Flag --> p_error
7106 */
7107 FUNCTION format_W2_RF_record(
7108 p_effective_date IN varchar2,
7109 p_report_type IN varchar2,
7110 p_format IN varchar2,
7111 p_report_qualifier IN varchar2,
7112 p_record_name IN varchar2,
7113 p_record_identifier IN varchar2,
7114 p_total_no_of_record IN varchar2,
7115 p_total_wages IN varchar2,
7116 p_total_taxes IN varchar2,
7117 p_format_mode IN varchar2,
7118 p_validate IN varchar2,
7119 p_exclude_from_output OUT nocopy varchar2,
7120 ret_str_len OUT nocopy number,
7121 p_error OUT nocopy boolean
7122 ) RETURN VARCHAR2
7123 IS
7124 return_value varchar2(32767);
7125 l_exclude_from_output_chk boolean;
7126 l_total_records varchar2(50);
7127 l_wages varchar2(100);
7128 l_taxes varchar2(100);
7129 sp_out_1 varchar2(100);
7130 sp_out_2 varchar2(100);
7131 BEGIN
7132 hr_utility.trace('Formatting RF Record');
7133 hr_utility.trace('Format Mode p_input_40 '||p_format_mode);
7134 hr_utility.trace('Report Qualifier before Formatting RF Record '
7135 ||p_report_qualifier);
7136 IF ((p_report_qualifier = 'PA_PHILA') OR -- Bug # 2680189
7137 (p_report_qualifier = 'CO')) THEN -- Bug # 2813555
7138 --{
7139 l_total_records := lpad(nvl(p_total_no_of_record,'0'),9,0);
7140 return_value := 'RF'
7141 ||lpad(' ',5)
7142 ||l_total_records
7143 ||lpad(' ',496);
7144 --}
7145 ELSIF p_report_qualifier IN ('PA', 'CT') THEN
7146
7147 --{
7148 -- Validating Total Wage for Negative Value
7149 --
7150 l_wages :=
7151 pay_us_reporting_utils_pkg.data_validation(p_effective_date,
7152 p_report_type,
7153 p_format,
7154 p_report_qualifier,
7155 p_record_name,
7156 'NEG_CHECK',
7157 p_total_wages,
7158 'State taxable Wages',
7159 null,
7160 null,
7161 p_validate,
7162 p_exclude_from_output,
7163 sp_out_1,
7164 sp_out_2);
7165
7166 IF p_exclude_from_output = 'Y' THEN
7167 l_exclude_from_output_chk := TRUE;
7168 END IF;
7169 -- Validating Total Tax for Negative Value
7170 --
7171 l_taxes :=
7172 pay_us_reporting_utils_pkg.data_validation( p_effective_date,
7173 p_report_type,
7174 p_format,
7175 p_report_qualifier,
7176 p_record_name,
7177 'NEG_CHECK',
7178 p_total_taxes,
7179 'SIT Withheld',
7180 null,
7181 null,
7182 p_validate,
7183 p_exclude_from_output,
7184 sp_out_1,
7185 sp_out_2);
7186
7187 IF p_exclude_from_output = 'Y' THEN
7188 l_exclude_from_output_chk := TRUE;
7189 END IF;
7190 -- Formatting RF Record for state PA
7191 IF p_report_qualifier = 'PA' THEN
7192 --{
7193 l_total_records := lpad(substr(nvl(p_total_no_of_record,' '),1,7),7,0);
7194 return_value := 'RF'||lpad(' ',473)
7195 ||l_total_records
7196 ||l_wages
7197 ||l_taxes;
7198 --}
7199 -- Formatting RF Record for state CT
7200 ELSIF p_report_qualifier = 'CT' THEN
7201 --{
7202 --
7203 -- This is to fix bug # 2640074
7204 -- column positions of State Wages/Withheld changed
7205 -- return_value := 'RF'||rpad(l_total_records,10)||rpad(l_wages,17)
7206 -- ||rpad(l_taxes,483);
7207 --
7208 l_total_records := lpad(substr(nvl(p_total_no_of_record,' '),1,9),9,0);
7209 return_value := 'RF'||rpad(l_total_records,9)
7210 ||rpad(l_wages,16)
7211 ||rpad(l_taxes,485);
7212 --}
7213 END IF;
7214 --}
7215 ELSIF p_report_qualifier = 'VA' THEN
7216 return_value:= 'RF'||rpad(' ',510);
7217 ELSE
7218
7219 return_value:= 'RF'
7220 ||lpad(lpad(substr(nvl(p_total_no_of_record,' '),1,9)
7221 ,9,0),14)
7222 ||rpad(' ',496);
7223
7224 END IF;
7225 p_error := l_exclude_from_output_chk;
7226 ret_str_len:=length(return_value);
7227 return return_value;
7228 END format_W2_RF_record; -- End of Formatting RF Record for W2 Reporting
7229
7230 END pay_us_mmrf_w2_format_record;