185:
186: BEGIN
187: c_item_name:='CR_PERSON';
188: l_valid_address:=FALSE;
189: hr_utility.trace('Fetching Contact Person Information CR_PERSON');
190: l_person_id:=replace(p_person_id,' ');
191: OPEN get_person_infm(to_number(l_person_id),
192: p_date_earned);
193:
203: p_contact_prsn_name :=l_full_name;
204: p_contact_prsn_phone :=l_phone;
205: p_contact_prsn_extension :=l_extension;
206: p_contact_prsn_email :=l_email;
207: hr_utility.trace('Contact person information not found');
208: --}
209: ELSIF get_person_infm%FOUND THEN
210: --{
211: p_contact_prsn_name := l_full_name;
228:
229: IF l_phone_type = 'W1' THEN -- Work Phone
230: p_contact_prsn_phone :=
231: replace(pay_us_reporting_utils_pkg.Character_check(l_phone),'-');
232: hr_utility.trace('Contact person PHONE Found.'||p_contact_prsn_phone);
233: ELSIF l_phone_type = 'WF' THEN -- Work Fax
234: p_contact_prsn_fax :=
235: replace(pay_us_reporting_utils_pkg.Character_check(l_phone),'-');
236: hr_utility.trace('Contact Person Fax found.'||p_contact_prsn_fax);
232: hr_utility.trace('Contact person PHONE Found.'||p_contact_prsn_phone);
233: ELSIF l_phone_type = 'WF' THEN -- Work Fax
234: p_contact_prsn_fax :=
235: replace(pay_us_reporting_utils_pkg.Character_check(l_phone),'-');
236: hr_utility.trace('Contact Person Fax found.'||p_contact_prsn_fax);
237: END IF;
238:
239: END LOOP; /* get_phone_fax */
240: CLOSE get_phone_fax;
246: p_contact_prsn_extension :=
247: rpad(nvl(substr(p_contact_prsn_phone,11,5),' '),5); --Extension
248: p_contact_prsn_phone :=
249: rpad(substr(nvl(p_contact_prsn_phone,' '),1,10),15); --Phone number
250: hr_utility.trace('Contact person PHONE Extension '||p_contact_prsn_extension);
251: --}
252: IF c_item_name <> 'CS_PERSON' THEN -- For title
253:
254: IF p_report_type IN ( 'W2', 'W2C') THEN
255: --{
256: --
257: -- This procedure formats contact information fields specific to W2 reporting
258: --
259: hr_utility.trace('Formatting Contact Person Info for W2 reporting ');
260: pay_us_mmrf_w2_format_record.format_w2_contact_prsn_info(
261: p_report_qualifier,
262: p_record_name,
263: p_validate,
271: p_contact_prsn_middle_name,
272: p_contact_prsn_last_name
273: );
274: --}
275: hr_utility.trace('Contact Person info formatted for W2 reporting ');
276: ELSIF p_report_type = 'SQWL' THEN
277: --{
278: --
279: -- This procedure formats contact information fields specific to SQWL reporting
277: --{
278: --
279: -- This procedure formats contact information fields specific to SQWL reporting
280: --
281: hr_utility.trace('Formatting Contact Person Info for SQWL reporting ');
282: pay_us_mmrf_sqwl_format_record.format_sqwl_contact_prsn_info(
283: p_report_qualifier,
284: p_record_name,
285: p_validate,
305: ITEM NAME used is 'CS_PERSON' */
306:
307: END IF; -- For title
308:
309: hr_utility.trace('Contact Person Information found. Full Name = '
310: ||p_contact_prsn_name);
311: END IF; --get_person_infm%NOTFOUND
312: CLOSE get_person_infm;
313: return p_contact_prsn_name;
394: lr_employee_addr pay_us_get_item_data_pkg.person_name_address;
395: l_effective_date date;
396: l_input_2 varchar2(200);
397: BEGIN
398: hr_utility.trace('In function GET_MMREF_EMPLOYEE_ADDRESS');
399: c_item_name:='EE_ADDRESS';
400: --
401: -- This change is made for Mag W-2 reporting purpose
402: -- For W2, SQWL and 1099R Mag was not reporting address change beyond
408: l_effective_date := fnd_date.canonical_TO_DATE(l_input_2);
409: else
410: l_effective_date := p_effective_date;
411: end if;
412: hr_utility.trace('In function GET_MMREF_EMPLOYEE_ADDRESS');
413: --
414: lr_employee_addr :=
415: pay_us_get_item_data_pkg.GET_PERSON_NAME_ADDRESS(
416: p_report_type,
419: p_date_earned,
420: l_effective_date,
421: p_validate,
422: p_record_name);
423: hr_utility.trace('Employee '||lr_employee_addr.full_name ||' Info found ');
424: hr_utility.trace('Formatting Employee Address for '||p_report_type
425: ||' Reporting ');
426: --
427: -- Format Employee Address for W2 / SQWL
420: l_effective_date,
421: p_validate,
422: p_record_name);
423: hr_utility.trace('Employee '||lr_employee_addr.full_name ||' Info found ');
424: hr_utility.trace('Formatting Employee Address for '||p_report_type
425: ||' Reporting ');
426: --
427: -- Format Employee Address for W2 / SQWL
428: --
543: l_emp_number varchar2(40);
544: l_locality_company_id varchar2(50);
545: lr_employer_addr pay_us_get_item_data_pkg.organization_name_address;
546: BEGIN
547: hr_utility.trace('FUNCTION GET_MMREF_EMPLOYER_ADDRESS for Employer Address');
548: c_tax_unit_id := p_tax_unit_id;
549: c_item_name := 'ER_ADDRESS';
550:
551: hr_utility.trace('Tax Unit Id = '||to_char(c_tax_unit_id));
547: hr_utility.trace('FUNCTION GET_MMREF_EMPLOYER_ADDRESS for Employer Address');
548: c_tax_unit_id := p_tax_unit_id;
549: c_item_name := 'ER_ADDRESS';
550:
551: hr_utility.trace('Tax Unit Id = '||to_char(c_tax_unit_id));
552: /* This would be used for Philadelphia locality only
553: subsequently this can be enhanced to generalise for any locality */
554:
555: IF p_input_1 = 'PHILA' THEN
552: /* This would be used for Philadelphia locality only
553: subsequently this can be enhanced to generalise for any locality */
554:
555: IF p_input_1 = 'PHILA' THEN
556: hr_utility.trace('Fetch Locality_Company_Id ...');
557: OPEN get_locality_company_id(c_tax_unit_id);
558: FETCH get_locality_company_id INTO l_locality_company_id;
559: CLOSE get_locality_company_id ;
560: hr_utility.trace('ER_ADDRESS Locality_Company_Id ...'||
556: hr_utility.trace('Fetch Locality_Company_Id ...');
557: OPEN get_locality_company_id(c_tax_unit_id);
558: FETCH get_locality_company_id INTO l_locality_company_id;
559: CLOSE get_locality_company_id ;
560: hr_utility.trace('ER_ADDRESS Locality_Company_Id ...'||
561: l_locality_company_id );
562: END IF;
563: lr_employer_addr :=
564: pay_us_get_item_data_pkg.get_organization_name_address(
863: else
864: l_effective_date := p_effective_date;
865: end if;
866: --
867: hr_utility.trace('Date Earned or Period End Date '||to_char(p_period_end_date,'dd-mon-yyyy'));
868: hr_utility.trace('Date Effective or Session Date '||to_char(l_effective_date,'dd-mon-yyyy'));
869: --
870: if p_report_type IN ('W2','SQWL','1099R','W2C') then
871: l_report_type := 'MMREF';
864: l_effective_date := p_effective_date;
865: end if;
866: --
867: hr_utility.trace('Date Earned or Period End Date '||to_char(p_period_end_date,'dd-mon-yyyy'));
868: hr_utility.trace('Date Effective or Session Date '||to_char(l_effective_date,'dd-mon-yyyy'));
869: --
870: if p_report_type IN ('W2','SQWL','1099R','W2C') then
871: l_report_type := 'MMREF';
872: else
957: -- This is validate person Address
958: IF P_validate = 'Y' THEN
959: --{
960: IF l_addr_count = 0 THEN
961: hr_utility.trace('WARNING: Employee Address not found ');
962: l_valid_address := 'N';
963: pay_core_utils.push_message(801,'PAY_INVALID_EE_FORMAT_WARNING','A');
964: pay_core_utils.push_token('record_name',l_record);
965: pay_core_utils.push_token('name_or_number',
965: pay_core_utils.push_token('name_or_number',
966: lr_person_name_address.employee_number);
967: pay_core_utils.push_token('description',l_token2);
968: ELSIF l_addr_count > 1 THEN
969: hr_utility.trace('Too many rows for the address');
970: l_valid_address := 'N';
971: pay_core_utils.push_message(801,'PAY_INVALID_EE_FORMAT_WARNING','A');
972: pay_core_utils.push_token('record_name',l_record);
973: pay_core_utils.push_token('name_or_number',
974: lr_person_name_address.employee_number);
975: pay_core_utils.push_token('description',l_too_many_adr_token3);
976: ELSIF l_addr_count = 1 THEN
977: l_valid_address:= 'Y';
978: hr_utility.trace('Single Primary Valid Address Found ..'||l_valid_address);
979: END IF;
980: --}
981: ELSE
982: l_valid_address:= 'Y';
1045: pay_core_utils.push_message(801,'PAY_INVALID_ER_DATA','P');
1046: pay_core_utils.push_token('record_name',p_source_type||' record');
1047: pay_core_utils.push_token('description',l_token2);
1048: l_valid_address:='N';
1049: hr_utility.trace('ER_ADDRESS No data found for Tax_Unit_Id = '
1050: ||to_char(p_organization_id));
1051: ELSIF l_addr_count > 1 THEN
1052: hr_utility.trace('Too many rows for the address');
1053: l_valid_address := 'N';
1048: l_valid_address:='N';
1049: hr_utility.trace('ER_ADDRESS No data found for Tax_Unit_Id = '
1050: ||to_char(p_organization_id));
1051: ELSIF l_addr_count > 1 THEN
1052: hr_utility.trace('Too many rows for the address');
1053: l_valid_address := 'N';
1054: pay_core_utils.push_message(801,'PAY_INVALID_ER_DATA','A');
1055: pay_core_utils.push_token('record_name',p_source_type||' record');
1056: pay_core_utils.push_token('description',l_too_many_adr_token3);
1054: pay_core_utils.push_message(801,'PAY_INVALID_ER_DATA','A');
1055: pay_core_utils.push_token('record_name',p_source_type||' record');
1056: pay_core_utils.push_token('description',l_too_many_adr_token3);
1057: ELSIF l_addr_count = 1 THEN
1058: hr_utility.trace('ER_ADDRESS Employer Address Found ');
1059: l_valid_address:='Y';
1060: END IF;
1061: --}
1062: END IF;
1106: --
1107: start_ptr := instr(parameter_list, token_val) + length(token_val);
1108: end_ptr := instr(parameter_list, ' ',start_ptr);
1109:
1110: hr_utility.trace('Magnetic Process Payroll_Action_Id '||to_char(l_payroll_action_id));
1111: --hr_utility.trace('Prameter List '||parameter_list);
1112: --hr_utility.trace('Token Value '||token_val);
1113: --hr_utility.trace('Start Ptr '||to_char(start_ptr));
1114: --hr_utility.trace('End Ptr '||to_char(end_ptr));
1107: start_ptr := instr(parameter_list, token_val) + length(token_val);
1108: end_ptr := instr(parameter_list, ' ',start_ptr);
1109:
1110: hr_utility.trace('Magnetic Process Payroll_Action_Id '||to_char(l_payroll_action_id));
1111: --hr_utility.trace('Prameter List '||parameter_list);
1112: --hr_utility.trace('Token Value '||token_val);
1113: --hr_utility.trace('Start Ptr '||to_char(start_ptr));
1114: --hr_utility.trace('End Ptr '||to_char(end_ptr));
1115: --
1108: end_ptr := instr(parameter_list, ' ',start_ptr);
1109:
1110: hr_utility.trace('Magnetic Process Payroll_Action_Id '||to_char(l_payroll_action_id));
1111: --hr_utility.trace('Prameter List '||parameter_list);
1112: --hr_utility.trace('Token Value '||token_val);
1113: --hr_utility.trace('Start Ptr '||to_char(start_ptr));
1114: --hr_utility.trace('End Ptr '||to_char(end_ptr));
1115: --
1116: /* if there is no spaces use then length of the string */
1109:
1110: hr_utility.trace('Magnetic Process Payroll_Action_Id '||to_char(l_payroll_action_id));
1111: --hr_utility.trace('Prameter List '||parameter_list);
1112: --hr_utility.trace('Token Value '||token_val);
1113: --hr_utility.trace('Start Ptr '||to_char(start_ptr));
1114: --hr_utility.trace('End Ptr '||to_char(end_ptr));
1115: --
1116: /* if there is no spaces use then length of the string */
1117: if end_ptr = 0 then
1110: hr_utility.trace('Magnetic Process Payroll_Action_Id '||to_char(l_payroll_action_id));
1111: --hr_utility.trace('Prameter List '||parameter_list);
1112: --hr_utility.trace('Token Value '||token_val);
1113: --hr_utility.trace('Start Ptr '||to_char(start_ptr));
1114: --hr_utility.trace('End Ptr '||to_char(end_ptr));
1115: --
1116: /* if there is no spaces use then length of the string */
1117: if end_ptr = 0 then
1118: end_ptr := length(parameter_list)+1;
1132: if par_value IS NULL then
1133: par_value := 'NULL';
1134: end if;
1135: --
1136: hr_utility.trace('Parameter Value Returned '||par_value);
1137: return par_value;
1138: END GET_CPROG_PARAMETER_VALUE;
1139: --}
1140: --
1138: END GET_CPROG_PARAMETER_VALUE;
1139: --}
1140: --
1141: --BEGIN
1142: --hr_utility.trace_on(null,'GETITEMDATA');
1143: END pay_us_get_item_data_pkg; --End of Package Body