8: Cumulative, clear Previous Tax Paid and Taxable Pay,
9: uplift Tax Codes or read new Tax Codes from tape.
10: Author : Barry Goodsell
11: Date Created : 15-Aug-95
12: Uses : hr_entry_api, hr_utility
13:
14: Change List
15: -----------
16: Date Name Vers Bug No Description
348: p_p6_request_id in number default null,
349: p_validate_only in varchar2)
350: IS
351: BEGIN
352: hr_utility.trace('Setting GLOBAL variable');
353: open get_element_type_id;
354: fetch get_element_type_id into g_element_type_id;
355: close get_element_type_id;
356:
364: g_current_req_id := nvl(fnd_profile.value('CONC_REQUEST_ID'),-1);
365: g_update_count := 0;
366: g_reject_count := 0;
367: -- Insert the G_EFFECTIVE_DATE into FND_SESSION
368: hr_utility.fnd_insert(g_effective_date);
369:
370: IF p_validate_only = 'GB_VALIDATE' then /*Added soy 08-09*/
371: g_validate_only := 'Y';
372: elsif p_validate_only = 'GB_VALIDATE_COMMIT' THEN
395: g_T_line_count
396: from pay_gb_soy_outputs
397: where request_id = g_request_id;
398: end if;
399: hr_utility.trace('Running mode : ' || g_mode);
400: hr_utility.trace('Business group : ' || g_business_group_id);
401: hr_utility.trace('PAYE element id : ' || g_element_type_id);
402: hr_utility.trace('Payroll ID : ' || g_payroll_id);
403: hr_utility.trace('Resume ID : ' || g_request_id);
396: from pay_gb_soy_outputs
397: where request_id = g_request_id;
398: end if;
399: hr_utility.trace('Running mode : ' || g_mode);
400: hr_utility.trace('Business group : ' || g_business_group_id);
401: hr_utility.trace('PAYE element id : ' || g_element_type_id);
402: hr_utility.trace('Payroll ID : ' || g_payroll_id);
403: hr_utility.trace('Resume ID : ' || g_request_id);
404: hr_utility.trace('P6 request ID : ' || g_p6_request_id);
397: where request_id = g_request_id;
398: end if;
399: hr_utility.trace('Running mode : ' || g_mode);
400: hr_utility.trace('Business group : ' || g_business_group_id);
401: hr_utility.trace('PAYE element id : ' || g_element_type_id);
402: hr_utility.trace('Payroll ID : ' || g_payroll_id);
403: hr_utility.trace('Resume ID : ' || g_request_id);
404: hr_utility.trace('P6 request ID : ' || g_p6_request_id);
405: hr_utility.trace('Effective date : ' || g_effective_date);
398: end if;
399: hr_utility.trace('Running mode : ' || g_mode);
400: hr_utility.trace('Business group : ' || g_business_group_id);
401: hr_utility.trace('PAYE element id : ' || g_element_type_id);
402: hr_utility.trace('Payroll ID : ' || g_payroll_id);
403: hr_utility.trace('Resume ID : ' || g_request_id);
404: hr_utility.trace('P6 request ID : ' || g_p6_request_id);
405: hr_utility.trace('Effective date : ' || g_effective_date);
406: hr_utility.trace('Authority code : ' || g_authority);
399: hr_utility.trace('Running mode : ' || g_mode);
400: hr_utility.trace('Business group : ' || g_business_group_id);
401: hr_utility.trace('PAYE element id : ' || g_element_type_id);
402: hr_utility.trace('Payroll ID : ' || g_payroll_id);
403: hr_utility.trace('Resume ID : ' || g_request_id);
404: hr_utility.trace('P6 request ID : ' || g_p6_request_id);
405: hr_utility.trace('Effective date : ' || g_effective_date);
406: hr_utility.trace('Authority code : ' || g_authority);
407: hr_utility.trace('PAYE reference : ' || g_tax_ref);
400: hr_utility.trace('Business group : ' || g_business_group_id);
401: hr_utility.trace('PAYE element id : ' || g_element_type_id);
402: hr_utility.trace('Payroll ID : ' || g_payroll_id);
403: hr_utility.trace('Resume ID : ' || g_request_id);
404: hr_utility.trace('P6 request ID : ' || g_p6_request_id);
405: hr_utility.trace('Effective date : ' || g_effective_date);
406: hr_utility.trace('Authority code : ' || g_authority);
407: hr_utility.trace('PAYE reference : ' || g_tax_ref);
408: EXCEPTION
401: hr_utility.trace('PAYE element id : ' || g_element_type_id);
402: hr_utility.trace('Payroll ID : ' || g_payroll_id);
403: hr_utility.trace('Resume ID : ' || g_request_id);
404: hr_utility.trace('P6 request ID : ' || g_p6_request_id);
405: hr_utility.trace('Effective date : ' || g_effective_date);
406: hr_utility.trace('Authority code : ' || g_authority);
407: hr_utility.trace('PAYE reference : ' || g_tax_ref);
408: EXCEPTION
409: when OTHERS then
402: hr_utility.trace('Payroll ID : ' || g_payroll_id);
403: hr_utility.trace('Resume ID : ' || g_request_id);
404: hr_utility.trace('P6 request ID : ' || g_p6_request_id);
405: hr_utility.trace('Effective date : ' || g_effective_date);
406: hr_utility.trace('Authority code : ' || g_authority);
407: hr_utility.trace('PAYE reference : ' || g_tax_ref);
408: EXCEPTION
409: when OTHERS then
410: raise;
403: hr_utility.trace('Resume ID : ' || g_request_id);
404: hr_utility.trace('P6 request ID : ' || g_p6_request_id);
405: hr_utility.trace('Effective date : ' || g_effective_date);
406: hr_utility.trace('Authority code : ' || g_authority);
407: hr_utility.trace('PAYE reference : ' || g_tax_ref);
408: EXCEPTION
409: when OTHERS then
410: raise;
411: END set_global;
453: and paaf.assignment_id = p_assignment_id
454: and paaf.business_group_id = g_business_group_id;
455:
456: BEGIN
457: hr_utility.trace(' Check assignment is Teminated or Ended in future ');
458: open get_future_term_date(p_assignment_id, p_effective_date);
459: fetch get_future_term_date into l_future_term_date;
460: if get_future_term_date%FOUND then
461: l_future_term_flag := 'Y';
473: --------------------------------------------------
474: -- Check if assignment is terminated in future --
475: --------------------------------------------------
476: if l_future_term_flag = 'Y' then
477: hr_utility.trace(' Assingment Terminated Date is : ' || l_future_term_date);
478: l_return_flag := 'Y';
479: end if;
480:
481: -------------------------------------------
481: -------------------------------------------
482: --Check if assignment is Ended in future --
483: -------------------------------------------
484: if l_future_end_flag = 'Y' then
485: hr_utility.trace(' Assingment End Date is : ' || l_future_end_date );
486: l_return_flag := 'Y';
487: end if;
488: elsif p_person_rec.aggregate_flag ='Y' then
489: ------------------------------------------------------------------------------------
515: p_effective_date IN DATE)
516:
517: RETURN VARCHAR2 IS
518: BEGIN
519: hr_utility.trace(' Inside set_cpe_flag function for term asg: ' || p_assignment_id);
520: for l_record in get_cpe_flag(p_person_id,
521: p_paye_ref,
522: p_effective_date)
523: loop
520: for l_record in get_cpe_flag(p_person_id,
521: p_paye_ref,
522: p_effective_date)
523: loop
524: hr_utility.trace(' Active or suspened asg record');
525: hr_utility.trace(' Assignment ID : ' || l_record.assignment_id);
526: hr_utility.trace(' PAYE Ref : ' || p_paye_ref);
527: if pay_gb_eoy_archive.get_agg_active_end(l_record.assignment_id, p_paye_ref , p_effective_date)=
528: pay_gb_eoy_archive.get_agg_active_end(p_assignment_id, p_paye_ref, p_effective_date)
521: p_paye_ref,
522: p_effective_date)
523: loop
524: hr_utility.trace(' Active or suspened asg record');
525: hr_utility.trace(' Assignment ID : ' || l_record.assignment_id);
526: hr_utility.trace(' PAYE Ref : ' || p_paye_ref);
527: if pay_gb_eoy_archive.get_agg_active_end(l_record.assignment_id, p_paye_ref , p_effective_date)=
528: pay_gb_eoy_archive.get_agg_active_end(p_assignment_id, p_paye_ref, p_effective_date)
529: AND pay_gb_eoy_archive.get_agg_active_start(l_record.assignment_id, p_paye_ref, p_effective_date)=
522: p_effective_date)
523: loop
524: hr_utility.trace(' Active or suspened asg record');
525: hr_utility.trace(' Assignment ID : ' || l_record.assignment_id);
526: hr_utility.trace(' PAYE Ref : ' || p_paye_ref);
527: if pay_gb_eoy_archive.get_agg_active_end(l_record.assignment_id, p_paye_ref , p_effective_date)=
528: pay_gb_eoy_archive.get_agg_active_end(p_assignment_id, p_paye_ref, p_effective_date)
529: AND pay_gb_eoy_archive.get_agg_active_start(l_record.assignment_id, p_paye_ref, p_effective_date)=
530: pay_gb_eoy_archive.get_agg_active_start(p_assignment_id, p_paye_ref, p_effective_date) then
528: pay_gb_eoy_archive.get_agg_active_end(p_assignment_id, p_paye_ref, p_effective_date)
529: AND pay_gb_eoy_archive.get_agg_active_start(l_record.assignment_id, p_paye_ref, p_effective_date)=
530: pay_gb_eoy_archive.get_agg_active_start(p_assignment_id, p_paye_ref, p_effective_date) then
531:
532: hr_utility.trace(' Term Asg is in active CPE ');
533: return 'Y';
534: end if;
535: end loop;
536: hr_utility.trace(' Term Asg is not in active CPE ');
532: hr_utility.trace(' Term Asg is in active CPE ');
533: return 'Y';
534: end if;
535: end loop;
536: hr_utility.trace(' Term Asg is not in active CPE ');
537: RETURN 'N';
538: EXCEPTION
539: when others then
540: raise;
1136: p_paye_rec.refundable_sv := lookup_meaning('GB_REFUNDABLE', p_paye_rec.refundable_sv);
1137: p_paye_rec.authority_sv := lookup_meaning('GB_AUTHORITY', p_paye_rec.authority_sv);
1138: EXCEPTION
1139: WHEN others then
1140: hr_utility.trace('Error in post_fetch at step ' || l_step);
1141: hr_utility.trace(SQLERRM(SQLCODE));
1142: raise;
1143: END post_fetch;
1144:
1137: p_paye_rec.authority_sv := lookup_meaning('GB_AUTHORITY', p_paye_rec.authority_sv);
1138: EXCEPTION
1139: WHEN others then
1140: hr_utility.trace('Error in post_fetch at step ' || l_step);
1141: hr_utility.trace(SQLERRM(SQLCODE));
1142: raise;
1143: END post_fetch;
1144:
1145: ---------------------------------------------------------------------
1208: p_multi_change out nocopy boolean) return DATE
1209: IS
1210: l_future_date date := null;
1211: BEGIN
1212: hr_utility.trace(' Check future change');
1213: select ele.effective_start_date
1214: into l_future_date
1215: from pay_element_entries_f ele
1216: where ele.effective_start_date >= p_effective_date
1217: and ele.assignment_id = p_assignment_id
1218: and ele.element_type_id = g_element_type_id
1219: order by ele.effective_start_date asc;
1220:
1221: hr_utility.trace(' Future change date : ' || l_future_date);
1222: p_multi_change := FALSE;
1223: return(l_future_date);
1224: EXCEPTION
1225: when too_many_rows then
1288: l_input_value_id_tbl,
1289: l_entry_value_tbl) ;
1290:
1291: if g_validate_only = 'N' then /*Added soy 08-09*/
1292: hr_utility.trace(' In Validate And Commit Mode therefore updating');
1293: hr_entry_api.update_element_entry (
1294: p_dt_update_mode => 'UPDATE',
1295: p_session_date => g_effective_date,
1296: p_element_entry_id => l_element_entry_id,
1376: if p_asg_typ in ('ACTIVE_ASSIGN','ACTIVE_APL','SUSP_ASSIGN','TERM_ASSIGN') and g_cpe_flag ='Y' then
1377: if p_paye_rec.tax_basis_sv = 'Non Cumulative' then
1378: p_paye_rec.tax_basis_sv := 'Cumulative';
1379: p_paye_rec.tax_basis_amended := TRUE;
1380: hr_utility.trace(' Tax Basis update');
1381: end if;
1382: end if;
1383: end if;
1384: elsif p_aggregate_flag ='N' then
1386: if p_asg_typ in ('ACTIVE_ASSIGN','ACTIVE_APL','SUSP_ASSIGN') then
1387: if p_paye_rec.tax_basis_sv = 'Non Cumulative' then
1388: p_paye_rec.tax_basis_sv := 'Cumulative';
1389: p_paye_rec.tax_basis_amended := TRUE;
1390: hr_utility.trace(' Tax Basis update');
1391: end if;
1392: end if;
1393: end if;
1394: end if;
1397: to_number(nvl(p_paye_rec.tax_previous_sv,0)) > 0) then
1398: p_paye_rec.pay_previous_sv := '0';
1399: p_paye_rec.tax_previous_sv := '0';
1400: p_paye_rec.p45_val_amended := TRUE;
1401: hr_utility.trace(' P45 Update');
1402: end if;
1403: END update_p45_taxbasis;
1404:
1405: ---------------------------------------------------------------------
1487: IS
1488: ex_error exception;
1489: l_msg varchar2(255);
1490: BEGIN
1491: hr_utility.trace(' Conv to PAYE Rec (mode 3 | 4)');
1492: hr_utility.trace(' Incoming tax basis: ' || p_m34_rec.tax_basis );
1493: hr_utility.trace(' Incoming tax code : ' || p_m34_rec.tax_code);
1494: hr_utility.trace(' Incoming P45 (P|T): ' || nvl(p_m34_rec.previous_pay,0) || ' | ' || nvl(p_m34_rec.previous_tax,0));
1495: hr_utility.trace(' Current tax basis : ' || p_paye_rec.tax_basis_sv);
1488: ex_error exception;
1489: l_msg varchar2(255);
1490: BEGIN
1491: hr_utility.trace(' Conv to PAYE Rec (mode 3 | 4)');
1492: hr_utility.trace(' Incoming tax basis: ' || p_m34_rec.tax_basis );
1493: hr_utility.trace(' Incoming tax code : ' || p_m34_rec.tax_code);
1494: hr_utility.trace(' Incoming P45 (P|T): ' || nvl(p_m34_rec.previous_pay,0) || ' | ' || nvl(p_m34_rec.previous_tax,0));
1495: hr_utility.trace(' Current tax basis : ' || p_paye_rec.tax_basis_sv);
1496: hr_utility.trace(' Current tax code : ' || p_paye_rec.tax_code_sv);
1489: l_msg varchar2(255);
1490: BEGIN
1491: hr_utility.trace(' Conv to PAYE Rec (mode 3 | 4)');
1492: hr_utility.trace(' Incoming tax basis: ' || p_m34_rec.tax_basis );
1493: hr_utility.trace(' Incoming tax code : ' || p_m34_rec.tax_code);
1494: hr_utility.trace(' Incoming P45 (P|T): ' || nvl(p_m34_rec.previous_pay,0) || ' | ' || nvl(p_m34_rec.previous_tax,0));
1495: hr_utility.trace(' Current tax basis : ' || p_paye_rec.tax_basis_sv);
1496: hr_utility.trace(' Current tax code : ' || p_paye_rec.tax_code_sv);
1497: hr_utility.trace(' Current P45 (P|T) : ' || nvl(p_paye_rec.pay_previous_sv,0) || ' | ' || nvl(p_paye_rec.tax_previous_sv,0));
1490: BEGIN
1491: hr_utility.trace(' Conv to PAYE Rec (mode 3 | 4)');
1492: hr_utility.trace(' Incoming tax basis: ' || p_m34_rec.tax_basis );
1493: hr_utility.trace(' Incoming tax code : ' || p_m34_rec.tax_code);
1494: hr_utility.trace(' Incoming P45 (P|T): ' || nvl(p_m34_rec.previous_pay,0) || ' | ' || nvl(p_m34_rec.previous_tax,0));
1495: hr_utility.trace(' Current tax basis : ' || p_paye_rec.tax_basis_sv);
1496: hr_utility.trace(' Current tax code : ' || p_paye_rec.tax_code_sv);
1497: hr_utility.trace(' Current P45 (P|T) : ' || nvl(p_paye_rec.pay_previous_sv,0) || ' | ' || nvl(p_paye_rec.tax_previous_sv,0));
1498: -------------------------------------------
1491: hr_utility.trace(' Conv to PAYE Rec (mode 3 | 4)');
1492: hr_utility.trace(' Incoming tax basis: ' || p_m34_rec.tax_basis );
1493: hr_utility.trace(' Incoming tax code : ' || p_m34_rec.tax_code);
1494: hr_utility.trace(' Incoming P45 (P|T): ' || nvl(p_m34_rec.previous_pay,0) || ' | ' || nvl(p_m34_rec.previous_tax,0));
1495: hr_utility.trace(' Current tax basis : ' || p_paye_rec.tax_basis_sv);
1496: hr_utility.trace(' Current tax code : ' || p_paye_rec.tax_code_sv);
1497: hr_utility.trace(' Current P45 (P|T) : ' || nvl(p_paye_rec.pay_previous_sv,0) || ' | ' || nvl(p_paye_rec.tax_previous_sv,0));
1498: -------------------------------------------
1499: -- First we check the incoming tax basis --
1492: hr_utility.trace(' Incoming tax basis: ' || p_m34_rec.tax_basis );
1493: hr_utility.trace(' Incoming tax code : ' || p_m34_rec.tax_code);
1494: hr_utility.trace(' Incoming P45 (P|T): ' || nvl(p_m34_rec.previous_pay,0) || ' | ' || nvl(p_m34_rec.previous_tax,0));
1495: hr_utility.trace(' Current tax basis : ' || p_paye_rec.tax_basis_sv);
1496: hr_utility.trace(' Current tax code : ' || p_paye_rec.tax_code_sv);
1497: hr_utility.trace(' Current P45 (P|T) : ' || nvl(p_paye_rec.pay_previous_sv,0) || ' | ' || nvl(p_paye_rec.tax_previous_sv,0));
1498: -------------------------------------------
1499: -- First we check the incoming tax basis --
1500: -------------------------------------------
1493: hr_utility.trace(' Incoming tax code : ' || p_m34_rec.tax_code);
1494: hr_utility.trace(' Incoming P45 (P|T): ' || nvl(p_m34_rec.previous_pay,0) || ' | ' || nvl(p_m34_rec.previous_tax,0));
1495: hr_utility.trace(' Current tax basis : ' || p_paye_rec.tax_basis_sv);
1496: hr_utility.trace(' Current tax code : ' || p_paye_rec.tax_code_sv);
1497: hr_utility.trace(' Current P45 (P|T) : ' || nvl(p_paye_rec.pay_previous_sv,0) || ' | ' || nvl(p_paye_rec.tax_previous_sv,0));
1498: -------------------------------------------
1499: -- First we check the incoming tax basis --
1500: -------------------------------------------
1501: if p_m34_rec.tax_basis is null then
1499: -- First we check the incoming tax basis --
1500: -------------------------------------------
1501: if p_m34_rec.tax_basis is null then
1502: if p_paye_rec.tax_basis_sv <> 'Cumulative' then
1503: hr_utility.trace(' Updating tax basis');
1504: p_paye_rec.tax_basis_sv := 'Cumulative';
1505: p_paye_rec.tax_basis_amended := TRUE;
1506: end if;
1507: elsif p_m34_rec.tax_basis = 'Y' then
1505: p_paye_rec.tax_basis_amended := TRUE;
1506: end if;
1507: elsif p_m34_rec.tax_basis = 'Y' then
1508: if p_paye_rec.tax_basis_sv <> 'Non Cumulative' then
1509: hr_utility.trace(' Updating tax basis');
1510: p_paye_rec.tax_basis_sv := 'Non Cumulative';
1511: p_paye_rec.tax_basis_amended := TRUE;
1512: end if;
1513: else
1523: raise ex_error;
1524: end if;
1525: p_paye_rec.tax_code_sv := p_m34_rec.tax_code;
1526: p_paye_rec.tax_code_amended := TRUE;
1527: hr_utility.trace(' Updating tax code');
1528: end if;
1529: --------------------------------------------
1530: -- If the incoming tax code is D0, --
1531: -- change the tax basis to Non Cumulative --
1567: l_multi_change boolean;
1568: l_future date;
1569: l_check_date date;
1570: BEGIN
1571: hr_utility.trace(' Set New PAYE Record');
1572: l_check_date := g_effective_date;
1573: l_multi_change := FALSE;
1574: ----------------
1575: -- For mode 1 --
1574: ----------------
1575: -- For mode 1 --
1576: ----------------
1577: if g_mode = 1 then
1578: hr_utility.trace(' Updating P45 figures');
1579: update_p45_taxbasis(p_asg_typ,p_paye_rec, p_aggregate_flag);
1580: ----------------------
1581: -- For mode 3 and 4 --
1582: ----------------------
1580: ----------------------
1581: -- For mode 3 and 4 --
1582: ----------------------
1583: elsif g_mode in (3,4) and g_cpe_flag ='Y' then /*CPE condition Added soy 08-09*/
1584: hr_utility.trace(' Calling conv_to_paye_rec');
1585: l_msg := conv_to_paye_rec(p_asg_id,p_m34_rec,p_paye_rec);
1586: if l_msg is not null then
1587: raise ex_error;
1588: end if;
1587: raise ex_error;
1588: end if;
1589: l_check_date := p_m34_rec.effective_date;
1590: end if;
1591: hr_utility.trace(' Check Date : ' || l_check_date);
1592: ----------------------------------
1593: -- Check for any future changes --
1594: ----------------------------------
1595: l_future := check_future_changes(p_asg_id, l_check_date, l_multi_change);
1593: -- Check for any future changes --
1594: ----------------------------------
1595: l_future := check_future_changes(p_asg_id, l_check_date, l_multi_change);
1596: if l_multi_change then
1597: hr_utility.trace(' Multiple future changes found');
1598: l_msg := err_multi_fchanges;
1599: raise ex_error;
1600: end if;
1601:
1599: raise ex_error;
1600: end if;
1601:
1602: if l_future is not null then
1603: hr_utility.trace(' Future change found');
1604: if g_mode = 1 then
1605: -------------------------------------------------------
1606: -- For mode 1, if exists change on the same date and --
1607: -- no change to P45, reject the record --
1656: end if;
1657: -----------------------
1658: -- Set the authority --
1659: -----------------------
1660: hr_utility.trace(' Setting authority');
1661: p_paye_rec.authority_sv := g_authority;
1662: hr_utility.trace(' New PAYE Details element:');
1663: hr_utility.trace(' Tax Code : ' || p_paye_rec.tax_code_sv );
1664: hr_utility.trace(' Tax Basis : ' || p_paye_rec.tax_basis_sv );
1658: -- Set the authority --
1659: -----------------------
1660: hr_utility.trace(' Setting authority');
1661: p_paye_rec.authority_sv := g_authority;
1662: hr_utility.trace(' New PAYE Details element:');
1663: hr_utility.trace(' Tax Code : ' || p_paye_rec.tax_code_sv );
1664: hr_utility.trace(' Tax Basis : ' || p_paye_rec.tax_basis_sv );
1665: hr_utility.trace(' Previous Pay : ' || p_paye_rec.pay_previous_sv );
1666: hr_utility.trace(' Previous Tax : ' || p_paye_rec.tax_previous_sv );
1659: -----------------------
1660: hr_utility.trace(' Setting authority');
1661: p_paye_rec.authority_sv := g_authority;
1662: hr_utility.trace(' New PAYE Details element:');
1663: hr_utility.trace(' Tax Code : ' || p_paye_rec.tax_code_sv );
1664: hr_utility.trace(' Tax Basis : ' || p_paye_rec.tax_basis_sv );
1665: hr_utility.trace(' Previous Pay : ' || p_paye_rec.pay_previous_sv );
1666: hr_utility.trace(' Previous Tax : ' || p_paye_rec.tax_previous_sv );
1667: hr_utility.trace(' Authority : ' || p_paye_rec.authority_sv );
1660: hr_utility.trace(' Setting authority');
1661: p_paye_rec.authority_sv := g_authority;
1662: hr_utility.trace(' New PAYE Details element:');
1663: hr_utility.trace(' Tax Code : ' || p_paye_rec.tax_code_sv );
1664: hr_utility.trace(' Tax Basis : ' || p_paye_rec.tax_basis_sv );
1665: hr_utility.trace(' Previous Pay : ' || p_paye_rec.pay_previous_sv );
1666: hr_utility.trace(' Previous Tax : ' || p_paye_rec.tax_previous_sv );
1667: hr_utility.trace(' Authority : ' || p_paye_rec.authority_sv );
1668: return null;
1661: p_paye_rec.authority_sv := g_authority;
1662: hr_utility.trace(' New PAYE Details element:');
1663: hr_utility.trace(' Tax Code : ' || p_paye_rec.tax_code_sv );
1664: hr_utility.trace(' Tax Basis : ' || p_paye_rec.tax_basis_sv );
1665: hr_utility.trace(' Previous Pay : ' || p_paye_rec.pay_previous_sv );
1666: hr_utility.trace(' Previous Tax : ' || p_paye_rec.tax_previous_sv );
1667: hr_utility.trace(' Authority : ' || p_paye_rec.authority_sv );
1668: return null;
1669: EXCEPTION
1662: hr_utility.trace(' New PAYE Details element:');
1663: hr_utility.trace(' Tax Code : ' || p_paye_rec.tax_code_sv );
1664: hr_utility.trace(' Tax Basis : ' || p_paye_rec.tax_basis_sv );
1665: hr_utility.trace(' Previous Pay : ' || p_paye_rec.pay_previous_sv );
1666: hr_utility.trace(' Previous Tax : ' || p_paye_rec.tax_previous_sv );
1667: hr_utility.trace(' Authority : ' || p_paye_rec.authority_sv );
1668: return null;
1669: EXCEPTION
1670: WHEN ex_error THEN
1663: hr_utility.trace(' Tax Code : ' || p_paye_rec.tax_code_sv );
1664: hr_utility.trace(' Tax Basis : ' || p_paye_rec.tax_basis_sv );
1665: hr_utility.trace(' Previous Pay : ' || p_paye_rec.pay_previous_sv );
1666: hr_utility.trace(' Previous Tax : ' || p_paye_rec.tax_previous_sv );
1667: hr_utility.trace(' Authority : ' || p_paye_rec.authority_sv );
1668: return null;
1669: EXCEPTION
1670: WHEN ex_error THEN
1671: return l_msg;
1682: IS
1683: ex_exemp exception;
1684: l_msg varchar2(255);
1685: BEGIN
1686: hr_utility.trace(' Check for Leaver');
1687: if p_per_rec.person_type in ('EX_EMP','EX_APL') then
1688: --
1689: hr_utility.trace(' LEAVER = TRUE');
1690: if g_mode in (3,4) then
1685: BEGIN
1686: hr_utility.trace(' Check for Leaver');
1687: if p_per_rec.person_type in ('EX_EMP','EX_APL') then
1688: --
1689: hr_utility.trace(' LEAVER = TRUE');
1690: if g_mode in (3,4) then
1691: l_msg := err_mode34_ex_emp;
1692: elsif g_mode = 2 then
1693: l_msg := err_mode2_ex_emp;
1694: end if;
1695: --
1696: raise ex_exemp;
1697: end if;
1698: hr_utility.trace(' Not a leaver');
1699: return null;
1700: EXCEPTION
1701: when ex_exemp then
1702: return l_msg;
1775: raise ex_tax_code;
1776: end if;
1777: end if;
1778: p_paye_rec := l_paye_rec;
1779: hr_utility.trace(' Element Entry ID : ' || p_paye_rec.element_entry_id );
1780: hr_utility.trace(' Start Date : ' || p_paye_rec.effective_start_date );
1781: hr_utility.trace(' End Date : ' || p_paye_rec.effective_end_date );
1782: hr_utility.trace(' Tax Code : ' || p_paye_rec.tax_code_sv );
1783: hr_utility.trace(' Tax Basis : ' || p_paye_rec.tax_basis_sv );
1776: end if;
1777: end if;
1778: p_paye_rec := l_paye_rec;
1779: hr_utility.trace(' Element Entry ID : ' || p_paye_rec.element_entry_id );
1780: hr_utility.trace(' Start Date : ' || p_paye_rec.effective_start_date );
1781: hr_utility.trace(' End Date : ' || p_paye_rec.effective_end_date );
1782: hr_utility.trace(' Tax Code : ' || p_paye_rec.tax_code_sv );
1783: hr_utility.trace(' Tax Basis : ' || p_paye_rec.tax_basis_sv );
1784: hr_utility.trace(' Previous Pay : ' || p_paye_rec.pay_previous_sv );
1777: end if;
1778: p_paye_rec := l_paye_rec;
1779: hr_utility.trace(' Element Entry ID : ' || p_paye_rec.element_entry_id );
1780: hr_utility.trace(' Start Date : ' || p_paye_rec.effective_start_date );
1781: hr_utility.trace(' End Date : ' || p_paye_rec.effective_end_date );
1782: hr_utility.trace(' Tax Code : ' || p_paye_rec.tax_code_sv );
1783: hr_utility.trace(' Tax Basis : ' || p_paye_rec.tax_basis_sv );
1784: hr_utility.trace(' Previous Pay : ' || p_paye_rec.pay_previous_sv );
1785: hr_utility.trace(' Previous Tax : ' || p_paye_rec.tax_previous_sv );
1778: p_paye_rec := l_paye_rec;
1779: hr_utility.trace(' Element Entry ID : ' || p_paye_rec.element_entry_id );
1780: hr_utility.trace(' Start Date : ' || p_paye_rec.effective_start_date );
1781: hr_utility.trace(' End Date : ' || p_paye_rec.effective_end_date );
1782: hr_utility.trace(' Tax Code : ' || p_paye_rec.tax_code_sv );
1783: hr_utility.trace(' Tax Basis : ' || p_paye_rec.tax_basis_sv );
1784: hr_utility.trace(' Previous Pay : ' || p_paye_rec.pay_previous_sv );
1785: hr_utility.trace(' Previous Tax : ' || p_paye_rec.tax_previous_sv );
1786: hr_utility.trace(' Authority : ' || p_paye_rec.authority_sv );
1779: hr_utility.trace(' Element Entry ID : ' || p_paye_rec.element_entry_id );
1780: hr_utility.trace(' Start Date : ' || p_paye_rec.effective_start_date );
1781: hr_utility.trace(' End Date : ' || p_paye_rec.effective_end_date );
1782: hr_utility.trace(' Tax Code : ' || p_paye_rec.tax_code_sv );
1783: hr_utility.trace(' Tax Basis : ' || p_paye_rec.tax_basis_sv );
1784: hr_utility.trace(' Previous Pay : ' || p_paye_rec.pay_previous_sv );
1785: hr_utility.trace(' Previous Tax : ' || p_paye_rec.tax_previous_sv );
1786: hr_utility.trace(' Authority : ' || p_paye_rec.authority_sv );
1787: return null;
1780: hr_utility.trace(' Start Date : ' || p_paye_rec.effective_start_date );
1781: hr_utility.trace(' End Date : ' || p_paye_rec.effective_end_date );
1782: hr_utility.trace(' Tax Code : ' || p_paye_rec.tax_code_sv );
1783: hr_utility.trace(' Tax Basis : ' || p_paye_rec.tax_basis_sv );
1784: hr_utility.trace(' Previous Pay : ' || p_paye_rec.pay_previous_sv );
1785: hr_utility.trace(' Previous Tax : ' || p_paye_rec.tax_previous_sv );
1786: hr_utility.trace(' Authority : ' || p_paye_rec.authority_sv );
1787: return null;
1788: EXCEPTION
1781: hr_utility.trace(' End Date : ' || p_paye_rec.effective_end_date );
1782: hr_utility.trace(' Tax Code : ' || p_paye_rec.tax_code_sv );
1783: hr_utility.trace(' Tax Basis : ' || p_paye_rec.tax_basis_sv );
1784: hr_utility.trace(' Previous Pay : ' || p_paye_rec.pay_previous_sv );
1785: hr_utility.trace(' Previous Tax : ' || p_paye_rec.tax_previous_sv );
1786: hr_utility.trace(' Authority : ' || p_paye_rec.authority_sv );
1787: return null;
1788: EXCEPTION
1789: WHEN ex_tax_code THEN
1782: hr_utility.trace(' Tax Code : ' || p_paye_rec.tax_code_sv );
1783: hr_utility.trace(' Tax Basis : ' || p_paye_rec.tax_basis_sv );
1784: hr_utility.trace(' Previous Pay : ' || p_paye_rec.pay_previous_sv );
1785: hr_utility.trace(' Previous Tax : ' || p_paye_rec.tax_previous_sv );
1786: hr_utility.trace(' Authority : ' || p_paye_rec.authority_sv );
1787: return null;
1788: EXCEPTION
1789: WHEN ex_tax_code THEN
1790: return l_msg;
2043: -- Call API to update --
2044: ----------------------------
2045:
2046: if g_validate_only ='N' then /*Added soy 08-09*/
2047: hr_utility.trace(' In Validate And Commit Mode therefore updating.');
2048: hr_entry_api.update_element_entry(
2049: p_dt_update_mode => rtrim(p_paye_rec.dt_update_mode),
2050: p_session_date => p_per_rec.effective_date,
2051: p_element_entry_id => p_paye_rec.element_entry_id,
2071: ------------------------------
2072: -- Now stamp the creator id --
2073: ------------------------------
2074: if g_validate_only ='N' then /*Added soy 08-09*/
2075: hr_utility.trace(' In Validate And Commit Mode therefore updating.');
2076: update pay_element_entries_f pef
2077: set pef.creator_id = nvl(g_request_id,g_current_req_id)
2078: where pef.element_entry_id = p_paye_rec.element_entry_id
2079: and pef.effective_start_date = p_per_rec.effective_date;
2132: end if;
2133: l_paye_ref := l_m34_rec.paye_ref;
2134: l_asg_number := l_m34_rec.assignment_number;
2135: end if;
2136: hr_utility.trace('Start processing record');
2137: hr_utility.trace(' Person ID : ' || l_per_record.person_id);
2138: hr_utility.trace(' NI Number : ' || l_per_record.ni_number);
2139: hr_utility.trace(' Aggregated : ' || l_per_record.aggregate_flag);
2140: hr_utility.trace(' Director : ' || l_per_record.director_flag);
2133: l_paye_ref := l_m34_rec.paye_ref;
2134: l_asg_number := l_m34_rec.assignment_number;
2135: end if;
2136: hr_utility.trace('Start processing record');
2137: hr_utility.trace(' Person ID : ' || l_per_record.person_id);
2138: hr_utility.trace(' NI Number : ' || l_per_record.ni_number);
2139: hr_utility.trace(' Aggregated : ' || l_per_record.aggregate_flag);
2140: hr_utility.trace(' Director : ' || l_per_record.director_flag);
2141: hr_utility.trace(' Person type : ' || l_per_record.person_type);
2134: l_asg_number := l_m34_rec.assignment_number;
2135: end if;
2136: hr_utility.trace('Start processing record');
2137: hr_utility.trace(' Person ID : ' || l_per_record.person_id);
2138: hr_utility.trace(' NI Number : ' || l_per_record.ni_number);
2139: hr_utility.trace(' Aggregated : ' || l_per_record.aggregate_flag);
2140: hr_utility.trace(' Director : ' || l_per_record.director_flag);
2141: hr_utility.trace(' Person type : ' || l_per_record.person_type);
2142: hr_utility.trace(' Term date : ' || l_per_record.term_date);
2135: end if;
2136: hr_utility.trace('Start processing record');
2137: hr_utility.trace(' Person ID : ' || l_per_record.person_id);
2138: hr_utility.trace(' NI Number : ' || l_per_record.ni_number);
2139: hr_utility.trace(' Aggregated : ' || l_per_record.aggregate_flag);
2140: hr_utility.trace(' Director : ' || l_per_record.director_flag);
2141: hr_utility.trace(' Person type : ' || l_per_record.person_type);
2142: hr_utility.trace(' Term date : ' || l_per_record.term_date);
2143: hr_utility.trace(' LSP date : ' || l_per_record.lsp_date);
2136: hr_utility.trace('Start processing record');
2137: hr_utility.trace(' Person ID : ' || l_per_record.person_id);
2138: hr_utility.trace(' NI Number : ' || l_per_record.ni_number);
2139: hr_utility.trace(' Aggregated : ' || l_per_record.aggregate_flag);
2140: hr_utility.trace(' Director : ' || l_per_record.director_flag);
2141: hr_utility.trace(' Person type : ' || l_per_record.person_type);
2142: hr_utility.trace(' Term date : ' || l_per_record.term_date);
2143: hr_utility.trace(' LSP date : ' || l_per_record.lsp_date);
2144: hr_utility.trace(' Start date : ' || l_per_record.start_date);
2137: hr_utility.trace(' Person ID : ' || l_per_record.person_id);
2138: hr_utility.trace(' NI Number : ' || l_per_record.ni_number);
2139: hr_utility.trace(' Aggregated : ' || l_per_record.aggregate_flag);
2140: hr_utility.trace(' Director : ' || l_per_record.director_flag);
2141: hr_utility.trace(' Person type : ' || l_per_record.person_type);
2142: hr_utility.trace(' Term date : ' || l_per_record.term_date);
2143: hr_utility.trace(' LSP date : ' || l_per_record.lsp_date);
2144: hr_utility.trace(' Start date : ' || l_per_record.start_date);
2145: hr_utility.trace(' End date : ' || l_per_record.end_date);
2138: hr_utility.trace(' NI Number : ' || l_per_record.ni_number);
2139: hr_utility.trace(' Aggregated : ' || l_per_record.aggregate_flag);
2140: hr_utility.trace(' Director : ' || l_per_record.director_flag);
2141: hr_utility.trace(' Person type : ' || l_per_record.person_type);
2142: hr_utility.trace(' Term date : ' || l_per_record.term_date);
2143: hr_utility.trace(' LSP date : ' || l_per_record.lsp_date);
2144: hr_utility.trace(' Start date : ' || l_per_record.start_date);
2145: hr_utility.trace(' End date : ' || l_per_record.end_date);
2146:
2139: hr_utility.trace(' Aggregated : ' || l_per_record.aggregate_flag);
2140: hr_utility.trace(' Director : ' || l_per_record.director_flag);
2141: hr_utility.trace(' Person type : ' || l_per_record.person_type);
2142: hr_utility.trace(' Term date : ' || l_per_record.term_date);
2143: hr_utility.trace(' LSP date : ' || l_per_record.lsp_date);
2144: hr_utility.trace(' Start date : ' || l_per_record.start_date);
2145: hr_utility.trace(' End date : ' || l_per_record.end_date);
2146:
2147: -----------------------------------------------------------------------
2140: hr_utility.trace(' Director : ' || l_per_record.director_flag);
2141: hr_utility.trace(' Person type : ' || l_per_record.person_type);
2142: hr_utility.trace(' Term date : ' || l_per_record.term_date);
2143: hr_utility.trace(' LSP date : ' || l_per_record.lsp_date);
2144: hr_utility.trace(' Start date : ' || l_per_record.start_date);
2145: hr_utility.trace(' End date : ' || l_per_record.end_date);
2146:
2147: -----------------------------------------------------------------------
2148: -- Now, loop through each assignment and see if we should process it --
2141: hr_utility.trace(' Person type : ' || l_per_record.person_type);
2142: hr_utility.trace(' Term date : ' || l_per_record.term_date);
2143: hr_utility.trace(' LSP date : ' || l_per_record.lsp_date);
2144: hr_utility.trace(' Start date : ' || l_per_record.start_date);
2145: hr_utility.trace(' End date : ' || l_per_record.end_date);
2146:
2147: -----------------------------------------------------------------------
2148: -- Now, loop through each assignment and see if we should process it --
2149: -----------------------------------------------------------------------
2152: l_paye_ref,
2153: l_asg_number,
2154: l_per_record.effective_date)
2155: loop
2156: hr_utility.trace('Start processing record');
2157: hr_utility.trace(' Assignment ID : ' || asg_record.assignment_id);
2158: hr_utility.trace(' Payroll ID : ' || asg_record.payroll_id);
2159: hr_utility.trace(' Assignment No : ' || asg_record.assignment_number);
2160: hr_utility.trace(' Asg Status : ' || asg_record.asg_status);
2153: l_asg_number,
2154: l_per_record.effective_date)
2155: loop
2156: hr_utility.trace('Start processing record');
2157: hr_utility.trace(' Assignment ID : ' || asg_record.assignment_id);
2158: hr_utility.trace(' Payroll ID : ' || asg_record.payroll_id);
2159: hr_utility.trace(' Assignment No : ' || asg_record.assignment_number);
2160: hr_utility.trace(' Asg Status : ' || asg_record.asg_status);
2161: hr_utility.trace(' PAYE Ref : ' || asg_record.tax_ref);
2154: l_per_record.effective_date)
2155: loop
2156: hr_utility.trace('Start processing record');
2157: hr_utility.trace(' Assignment ID : ' || asg_record.assignment_id);
2158: hr_utility.trace(' Payroll ID : ' || asg_record.payroll_id);
2159: hr_utility.trace(' Assignment No : ' || asg_record.assignment_number);
2160: hr_utility.trace(' Asg Status : ' || asg_record.asg_status);
2161: hr_utility.trace(' PAYE Ref : ' || asg_record.tax_ref);
2162: --------------------------------------------
2155: loop
2156: hr_utility.trace('Start processing record');
2157: hr_utility.trace(' Assignment ID : ' || asg_record.assignment_id);
2158: hr_utility.trace(' Payroll ID : ' || asg_record.payroll_id);
2159: hr_utility.trace(' Assignment No : ' || asg_record.assignment_number);
2160: hr_utility.trace(' Asg Status : ' || asg_record.asg_status);
2161: hr_utility.trace(' PAYE Ref : ' || asg_record.tax_ref);
2162: --------------------------------------------
2163: -- Anonymous block to trap non fatal error --
2156: hr_utility.trace('Start processing record');
2157: hr_utility.trace(' Assignment ID : ' || asg_record.assignment_id);
2158: hr_utility.trace(' Payroll ID : ' || asg_record.payroll_id);
2159: hr_utility.trace(' Assignment No : ' || asg_record.assignment_number);
2160: hr_utility.trace(' Asg Status : ' || asg_record.asg_status);
2161: hr_utility.trace(' PAYE Ref : ' || asg_record.tax_ref);
2162: --------------------------------------------
2163: -- Anonymous block to trap non fatal error --
2164: ---------------------------------------------
2157: hr_utility.trace(' Assignment ID : ' || asg_record.assignment_id);
2158: hr_utility.trace(' Payroll ID : ' || asg_record.payroll_id);
2159: hr_utility.trace(' Assignment No : ' || asg_record.assignment_number);
2160: hr_utility.trace(' Asg Status : ' || asg_record.asg_status);
2161: hr_utility.trace(' PAYE Ref : ' || asg_record.tax_ref);
2162: --------------------------------------------
2163: -- Anonymous block to trap non fatal error --
2164: ---------------------------------------------
2165: begin
2175: if l_msg is not null then
2176: raise ex_asg_error;
2177: end if;
2178:
2179: hr_utility.trace(' Fetch PAYE record');
2180: l_msg := get_paye_record(asg_record.assignment_id,
2181: l_per_record.effective_date,
2182: l_paye_rec);
2183: ------------------------------
2203: open get_req_cur (l_paye_rec.creator_id);
2204: fetch get_req_cur into l_exists;
2205: if get_req_cur%FOUND then
2206: l_process := false;
2207: hr_utility.trace(' Not processing the assignment');
2208: end if;
2209: close get_req_cur;
2210: ------------------------------------------------------------------
2211: -- If part of this assignment already been processed --
2248: else
2249: raise ex_asg_error;
2250: end if;
2251: end if;
2252: hr_utility.trace(' Element Entry ID : ' || l_paye_rec.element_entry_id );
2253: hr_utility.trace(' Start Date : ' || l_paye_rec.effective_start_date );
2254: hr_utility.trace(' End Date : ' || l_paye_rec.effective_end_date );
2255: hr_utility.trace(' Tax Code : ' || l_paye_rec.tax_code_sv );
2256: hr_utility.trace(' Tax Basis : ' || l_paye_rec.tax_basis_sv );
2249: raise ex_asg_error;
2250: end if;
2251: end if;
2252: hr_utility.trace(' Element Entry ID : ' || l_paye_rec.element_entry_id );
2253: hr_utility.trace(' Start Date : ' || l_paye_rec.effective_start_date );
2254: hr_utility.trace(' End Date : ' || l_paye_rec.effective_end_date );
2255: hr_utility.trace(' Tax Code : ' || l_paye_rec.tax_code_sv );
2256: hr_utility.trace(' Tax Basis : ' || l_paye_rec.tax_basis_sv );
2257: hr_utility.trace(' Previous Pay : ' || l_paye_rec.pay_previous_sv );
2250: end if;
2251: end if;
2252: hr_utility.trace(' Element Entry ID : ' || l_paye_rec.element_entry_id );
2253: hr_utility.trace(' Start Date : ' || l_paye_rec.effective_start_date );
2254: hr_utility.trace(' End Date : ' || l_paye_rec.effective_end_date );
2255: hr_utility.trace(' Tax Code : ' || l_paye_rec.tax_code_sv );
2256: hr_utility.trace(' Tax Basis : ' || l_paye_rec.tax_basis_sv );
2257: hr_utility.trace(' Previous Pay : ' || l_paye_rec.pay_previous_sv );
2258: hr_utility.trace(' Previous Tax : ' || l_paye_rec.tax_previous_sv );
2251: end if;
2252: hr_utility.trace(' Element Entry ID : ' || l_paye_rec.element_entry_id );
2253: hr_utility.trace(' Start Date : ' || l_paye_rec.effective_start_date );
2254: hr_utility.trace(' End Date : ' || l_paye_rec.effective_end_date );
2255: hr_utility.trace(' Tax Code : ' || l_paye_rec.tax_code_sv );
2256: hr_utility.trace(' Tax Basis : ' || l_paye_rec.tax_basis_sv );
2257: hr_utility.trace(' Previous Pay : ' || l_paye_rec.pay_previous_sv );
2258: hr_utility.trace(' Previous Tax : ' || l_paye_rec.tax_previous_sv );
2259: hr_utility.trace(' Authority : ' || l_paye_rec.authority_sv );
2252: hr_utility.trace(' Element Entry ID : ' || l_paye_rec.element_entry_id );
2253: hr_utility.trace(' Start Date : ' || l_paye_rec.effective_start_date );
2254: hr_utility.trace(' End Date : ' || l_paye_rec.effective_end_date );
2255: hr_utility.trace(' Tax Code : ' || l_paye_rec.tax_code_sv );
2256: hr_utility.trace(' Tax Basis : ' || l_paye_rec.tax_basis_sv );
2257: hr_utility.trace(' Previous Pay : ' || l_paye_rec.pay_previous_sv );
2258: hr_utility.trace(' Previous Tax : ' || l_paye_rec.tax_previous_sv );
2259: hr_utility.trace(' Authority : ' || l_paye_rec.authority_sv );
2260: hr_utility.trace(' Done setting new PAYE');
2253: hr_utility.trace(' Start Date : ' || l_paye_rec.effective_start_date );
2254: hr_utility.trace(' End Date : ' || l_paye_rec.effective_end_date );
2255: hr_utility.trace(' Tax Code : ' || l_paye_rec.tax_code_sv );
2256: hr_utility.trace(' Tax Basis : ' || l_paye_rec.tax_basis_sv );
2257: hr_utility.trace(' Previous Pay : ' || l_paye_rec.pay_previous_sv );
2258: hr_utility.trace(' Previous Tax : ' || l_paye_rec.tax_previous_sv );
2259: hr_utility.trace(' Authority : ' || l_paye_rec.authority_sv );
2260: hr_utility.trace(' Done setting new PAYE');
2261: -----------------------------------------------
2254: hr_utility.trace(' End Date : ' || l_paye_rec.effective_end_date );
2255: hr_utility.trace(' Tax Code : ' || l_paye_rec.tax_code_sv );
2256: hr_utility.trace(' Tax Basis : ' || l_paye_rec.tax_basis_sv );
2257: hr_utility.trace(' Previous Pay : ' || l_paye_rec.pay_previous_sv );
2258: hr_utility.trace(' Previous Tax : ' || l_paye_rec.tax_previous_sv );
2259: hr_utility.trace(' Authority : ' || l_paye_rec.authority_sv );
2260: hr_utility.trace(' Done setting new PAYE');
2261: -----------------------------------------------
2262: -- If mode 1 then try to process NI director --
2255: hr_utility.trace(' Tax Code : ' || l_paye_rec.tax_code_sv );
2256: hr_utility.trace(' Tax Basis : ' || l_paye_rec.tax_basis_sv );
2257: hr_utility.trace(' Previous Pay : ' || l_paye_rec.pay_previous_sv );
2258: hr_utility.trace(' Previous Tax : ' || l_paye_rec.tax_previous_sv );
2259: hr_utility.trace(' Authority : ' || l_paye_rec.authority_sv );
2260: hr_utility.trace(' Done setting new PAYE');
2261: -----------------------------------------------
2262: -- If mode 1 then try to process NI director --
2263: -----------------------------------------------
2256: hr_utility.trace(' Tax Basis : ' || l_paye_rec.tax_basis_sv );
2257: hr_utility.trace(' Previous Pay : ' || l_paye_rec.pay_previous_sv );
2258: hr_utility.trace(' Previous Tax : ' || l_paye_rec.tax_previous_sv );
2259: hr_utility.trace(' Authority : ' || l_paye_rec.authority_sv );
2260: hr_utility.trace(' Done setting new PAYE');
2261: -----------------------------------------------
2262: -- If mode 1 then try to process NI director --
2263: -----------------------------------------------
2264: if g_mode = 1 then
2261: -----------------------------------------------
2262: -- If mode 1 then try to process NI director --
2263: -----------------------------------------------
2264: if g_mode = 1 then
2265: hr_utility.trace(' Check if we need to do any update');
2266: l_dir := process_directors(l_per_record,asg_record.assignment_id);
2267: if l_paye_rec.tax_basis_amended or l_paye_rec.p45_val_amended or
2268: l_paye_rec.tax_code_amended or l_dir is not null then
2269: hr_utility.trace(' Calling update_record to update PAYE');
2265: hr_utility.trace(' Check if we need to do any update');
2266: l_dir := process_directors(l_per_record,asg_record.assignment_id);
2267: if l_paye_rec.tax_basis_amended or l_paye_rec.p45_val_amended or
2268: l_paye_rec.tax_code_amended or l_dir is not null then
2269: hr_utility.trace(' Calling update_record to update PAYE');
2270: l_msg := update_record(l_paye_rec, l_per_record, l_m34_rec);
2271: if l_msg is not null then
2272: raise ex_asg_error;
2273: end if;
2270: l_msg := update_record(l_paye_rec, l_per_record, l_m34_rec);
2271: if l_msg is not null then
2272: raise ex_asg_error;
2273: end if;
2274: hr_utility.trace(' Write out body section');
2275: write_body(l_old_paye_rec,l_paye_rec,l_per_record, asg_record.assignment_number,l_dir,
2276: p_m34_rec.effective_date,asg_record.assignment_id, asg_record.tax_ref);
2277: end if;
2278: else
2275: write_body(l_old_paye_rec,l_paye_rec,l_per_record, asg_record.assignment_number,l_dir,
2276: p_m34_rec.effective_date,asg_record.assignment_id, asg_record.tax_ref);
2277: end if;
2278: else
2279: hr_utility.trace(' Check if we need to do any update');
2280: -- if l_paye_rec.tax_basis_amended or l_paye_rec.p45_val_amended or
2281: -- l_paye_rec.tax_code_amended then
2282: hr_utility.trace(' Calling update_record to update PAYE');
2283: --Added for Bug 7373763
2278: else
2279: hr_utility.trace(' Check if we need to do any update');
2280: -- if l_paye_rec.tax_basis_amended or l_paye_rec.p45_val_amended or
2281: -- l_paye_rec.tax_code_amended then
2282: hr_utility.trace(' Calling update_record to update PAYE');
2283: --Added for Bug 7373763
2284: if g_mode=2 then
2285: if l_paye_rec.tax_code_amended=TRUE then
2286: l_msg := update_record(l_paye_rec, l_per_record, l_m34_rec);
2286: l_msg := update_record(l_paye_rec, l_per_record, l_m34_rec);
2287: if l_msg is not null then
2288: raise ex_asg_error;
2289: end if;
2290: hr_utility.trace(' Write out body section');
2291: write_body(l_old_paye_rec,l_paye_rec,l_per_record, asg_record.assignment_number,l_dir,
2292: p_m34_rec.effective_date, asg_record.assignment_id, asg_record.tax_ref);
2293: end if;
2294: else
2295: l_msg := update_record(l_paye_rec, l_per_record, l_m34_rec);
2296: if l_msg is not null then
2297: raise ex_asg_error;
2298: end if;
2299: hr_utility.trace(' Write out body section');
2300: write_body(l_old_paye_rec,l_paye_rec,l_per_record, asg_record.assignment_number,l_dir,
2301: p_m34_rec.effective_date, asg_record.assignment_id, asg_record.tax_ref);
2302: end if;
2303: --Bug 7373763 ends
2315: ----------------------------
2316: end loop;
2317: -- Need to do a commit here
2318: if g_validate_only ='N' then /*Added soy 08-09*/
2319: hr_utility.trace(' In Validate And Commit Mode therefore Commiting.');
2320: if check_commit then
2321: commit;
2322: end if;
2323: end if;
2352: l_m12_rec g_typ_per_record;
2353: l_person_id per_all_people_f.person_id%type;
2354: l_process boolean;
2355: BEGIN
2356: hr_utility.trace('Start of PYUDET');
2357: --------------------------------
2358: -- Setting up GLOBAL variable --
2359: --------------------------------
2360: set_global(p_request_id,p_mode,p_effective_date,p_business_group_id,
2362:
2363: --------------------------------
2364: -- Start the process --
2365: --------------------------------
2366: hr_utility.trace('Open main cursor');
2367: if g_mode in (1,2) then
2368: open csr_mode12;
2369: elsif g_mode in (3,4) then
2370: open csr_mode34;
2371: end if;
2372: ------------------
2373: -- Write header --
2374: ------------------
2375: hr_utility.trace('Write report header');
2376: write_header;
2377: hr_utility.trace('Write sub-report header');
2378: write_group_header;
2379:
2373: -- Write header --
2374: ------------------
2375: hr_utility.trace('Write report header');
2376: write_header;
2377: hr_utility.trace('Write sub-report header');
2378: write_group_header;
2379:
2380: -- Start the loop
2381: loop
2378: write_group_header;
2379:
2380: -- Start the loop
2381: loop
2382: hr_utility.trace('In the main loop');
2383: -- Set l_process to true
2384: l_process := true;
2385: --
2386: if g_mode in(1,2) then
2403: end loop;
2404: ------------------
2405: -- Write footer --
2406: ------------------
2407: hr_utility.trace('Write report footer');
2408: write_footer;
2409:
2410: -- Clear out the Tax Code Interface table
2411: if g_mode in (3,4) then
2408: write_footer;
2409:
2410: -- Clear out the Tax Code Interface table
2411: if g_mode in (3,4) then
2412: hr_utility.trace('Clearing tax code interface');
2413: delete pay_gb_tax_code_interface
2414: where (request_id is null or request_id = g_p6_request_id)
2415: and processed_flag = 'P'; /*Added soy 08-09*/
2416: commit;
2416: commit;
2417: end if;
2418: EXCEPTION
2419: WHEN Others THEN
2420: hr_utility.trace('Error occurs : ' || sqlerrm);
2421: if g_mode in (1,2) then
2422: if csr_mode12%isopen then
2423: close csr_mode12;
2424: end if;
2439: -- This section will be executed the first time that the package --
2440: -- is brought into memory for this session --
2441: ---------------------------------------------------------------------
2442: BEGIN
2443: hr_utility.set_location('pyudet',0);
2444: -------------------------------------------------------------------
2445: -- Initialize the count variable for the 'uplift_value' function --
2446: -------------------------------------------------------------------
2447: g_uplift_value(0) := -1;
2445: -- Initialize the count variable for the 'uplift_value' function --
2446: -------------------------------------------------------------------
2447: g_uplift_value(0) := -1;
2448: --
2449: hr_utility.set_location('pyudet',999);
2450: END;