[Home] [Help]
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
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,
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
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
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
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,
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,' ');
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,
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,
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,
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(
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(
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)||' '||
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:
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,
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,
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,
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,
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,
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,
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(
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(
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
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));
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);
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:
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
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
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,
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,
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,
5013: ELSIF (p_report_qualifier = 'NM') THEN
5014: /*For the Bug#9385848*/
5015: --r_input_29 := replace(replace(nvl(replace(p_input_25,' '),' '),'-'),'/');
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 '-'
5019: r_input_29 :=ltrim(r_input_25,'0');
5020: l_length := length(r_input_29);
5021: IF l_length > 10 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,
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,
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,
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,
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,
5231: p_exclude_from_output,
5232: sp_out_1,
5233: sp_out_2);
5234: l_w2_govt_ee_contrib :=
5235: pay_us_reporting_utils_pkg.data_validation(p_effective_date,
5236: p_report_type,
5237: p_format,
5238: p_report_qualifier,
5239: p_record_name,
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,
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,
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,
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,
5326: p_exclude_from_output,
5327: sp_out_1,
5328: sp_out_2);
5329: l_deferred_comp :=
5330: pay_us_reporting_utils_pkg.data_validation(p_effective_date,
5331: p_report_type,
5332: p_format,
5333: p_report_qualifier,
5334: p_record_name,
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,
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,
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,
5423: p_exclude_from_output,
5424: sp_out_1,
5425: sp_out_2);
5426: l_tax_ct_ind_dev :=
5427: pay_us_reporting_utils_pkg.data_validation(p_effective_date,
5428: p_report_type,
5429: p_format,
5430: p_report_qualifier,
5431: p_record_name,
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,
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,
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,
5528: IF p_exclude_from_output = 'Y' THEN
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,