3: --
4: -- Record defined to hold information about a entry element that is being
5: -- updated.
6: --
7: g_debug boolean := hr_utility.debug_enabled;
8: g_counter number;
9: --
10: type t_update_entry_rec is record
11: (cost_allocation_keyflex_id number,
240: -- table then we don't need to check against a change to the
241: -- PAY_ELEMENT_ENTRY_VALUES_F table.
242: --
243: if g_debug then
244: hr_utility.set_location(l_proc_func_name, 5);
245: end if;
246: begin
247: select 'Y'
248: into l_check_entry_values
463: open select_entry_value;
464: while (NOT l_entry_changed) loop
465: --
466: if g_debug then
467: hr_utility.set_location(l_proc_func_name, 10);
468: end if;
469: --
470: -- fetch a row from the select_entry_value cursor returning the
471: -- input_value_id and screen_entry_value
532: p_assignment_id number,
533: p_effective_date date
534: ) is
535: begin
536: g_debug := hr_utility.debug_enabled;
537: -- Check whether the business_group_id has been set and
538: -- re-fetch if necessary.
539: if(g_asg_info.business_group_id is null or
540: g_asg_info.assignment_id is null or
540: g_asg_info.assignment_id is null or
541: p_assignment_id <> g_asg_info.assignment_id)
542: then
543: if g_debug then
544: hr_utility.trace('Cache assignment info');
545: end if;
546:
547: g_asg_info.assignment_id := p_assignment_id;
548:
570: when no_data_found then g_asg_info.adj_ee_source := 'A';
571: end;
572:
573: if g_debug then
574: hr_utility.trace('ADJUSTMENT_EE_SOURCE ' || g_asg_info.adj_ee_source);
575: end if;
576: end if;
577:
578: end if;
608: -- Rather than fail, we check the input count before
609: -- attempting to set the input and context values.
610: if(v_inputs.count >= 1) then
611: if g_debug then
612: hr_utility.trace('Inputs / contexts : ' || v_inputs.count);
613: end if;
614: --
615: -- Set up the inputs and contexts to formula.
616: for i in v_inputs.first..v_inputs.last loop
628: -- Note - need to pass database format to formula.
629: v_inputs(i).value := p_entry_value;
630: else
631: -- No context recognised.
632: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
633: hr_utility.set_message_token('PROCEDURE',
634: 'hr_entry_api.run_validation_formula');
635: hr_utility.set_message_token('STEP','10');
636: hr_utility.raise_error;
629: v_inputs(i).value := p_entry_value;
630: else
631: -- No context recognised.
632: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
633: hr_utility.set_message_token('PROCEDURE',
634: 'hr_entry_api.run_validation_formula');
635: hr_utility.set_message_token('STEP','10');
636: hr_utility.raise_error;
637: end if;
631: -- No context recognised.
632: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
633: hr_utility.set_message_token('PROCEDURE',
634: 'hr_entry_api.run_validation_formula');
635: hr_utility.set_message_token('STEP','10');
636: hr_utility.raise_error;
637: end if;
638: end loop;
639: end if;
632: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
633: hr_utility.set_message_token('PROCEDURE',
634: 'hr_entry_api.run_validation_formula');
635: hr_utility.set_message_token('STEP','10');
636: hr_utility.raise_error;
637: end if;
638: end loop;
639: end if;
640: --
642: --
643: -- Now obtain the return values. There should be
644: -- exactly two outputs.
645: if v_outputs.count <> 2 then
646: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
647: hr_utility.set_message_token('PROCEDURE',
648: 'hr_entry_api.run_validation_formula');
649: hr_utility.set_message_token('STEP','20');
650: hr_utility.raise_error;
643: -- Now obtain the return values. There should be
644: -- exactly two outputs.
645: if v_outputs.count <> 2 then
646: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
647: hr_utility.set_message_token('PROCEDURE',
648: 'hr_entry_api.run_validation_formula');
649: hr_utility.set_message_token('STEP','20');
650: hr_utility.raise_error;
651: end if;
645: if v_outputs.count <> 2 then
646: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
647: hr_utility.set_message_token('PROCEDURE',
648: 'hr_entry_api.run_validation_formula');
649: hr_utility.set_message_token('STEP','20');
650: hr_utility.raise_error;
651: end if;
652: --
653: for i in v_outputs.first..v_outputs.last loop
646: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
647: hr_utility.set_message_token('PROCEDURE',
648: 'hr_entry_api.run_validation_formula');
649: hr_utility.set_message_token('STEP','20');
650: hr_utility.raise_error;
651: end if;
652: --
653: for i in v_outputs.first..v_outputs.last loop
654: if v_outputs(i).name = 'FORMULA_MESSAGE' then
657: elsif v_outputs(i).name = 'FORMULA_STATUS' then
658: --
659: v_formula_status := upper(v_outputs(i).value);
660: else
661: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
662: hr_utility.set_message_token('PROCEDURE',
663: 'hr_entry_api.run_validation_formula');
664: hr_utility.set_message_token('STEP','30');
665: hr_utility.raise_error;
658: --
659: v_formula_status := upper(v_outputs(i).value);
660: else
661: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
662: hr_utility.set_message_token('PROCEDURE',
663: 'hr_entry_api.run_validation_formula');
664: hr_utility.set_message_token('STEP','30');
665: hr_utility.raise_error;
666: end if;
660: else
661: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
662: hr_utility.set_message_token('PROCEDURE',
663: 'hr_entry_api.run_validation_formula');
664: hr_utility.set_message_token('STEP','30');
665: hr_utility.raise_error;
666: end if;
667: end loop;
668: --
661: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
662: hr_utility.set_message_token('PROCEDURE',
663: 'hr_entry_api.run_validation_formula');
664: hr_utility.set_message_token('STEP','30');
665: hr_utility.raise_error;
666: end if;
667: end loop;
668: --
669: -- Check whether we have raised an error and act appropriately.
671: -- I.e. the formula validation failed and we need to raise an error.
672: if v_formula_message is null then
673: -- User not defined an error message.
674: fnd_message.set_name ('PAY', 'HR_6648_ELE_ENTRY_FORMULA_ERR');
675: hr_utility.raise_error;
676: else
677: -- User has defined message and so we can raise it.
678: fnd_message.set_name ('PAY','HR_ELE_ENTRY_FORMULA_HINT');
679: fnd_message.set_token ('FORMULA_TEXT', v_formula_message, false);
676: else
677: -- User has defined message and so we can raise it.
678: fnd_message.set_name ('PAY','HR_ELE_ENTRY_FORMULA_HINT');
679: fnd_message.set_token ('FORMULA_TEXT', v_formula_message, false);
680: hr_utility.raise_error;
681: end if;
682: elsif v_formula_status <> 'S' and p_warning_or_error = 'W' then
683: -- We have failed validation, but only want to warn.
684: if v_formula_message is null then
683: -- We have failed validation, but only want to warn.
684: if v_formula_message is null then
685: -- User not defined an error message.
686: fnd_message.set_name ('PAY', 'HR_6648_ELE_ENTRY_FORMULA_ERR');
687: hr_utility.set_warning;
688: else
689: -- User has defined message and so we can raise it.
690: fnd_message.set_name ('PAY','HR_ELE_ENTRY_FORMULA_HINT');
691: fnd_message.set_token ('FORMULA_TEXT', v_formula_message, false);
688: else
689: -- User has defined message and so we can raise it.
690: fnd_message.set_name ('PAY','HR_ELE_ENTRY_FORMULA_HINT');
691: fnd_message.set_token ('FORMULA_TEXT', v_formula_message, false);
692: hr_utility.set_warning;
693: end if;
694: end if;
695: end run_validation_formula;
696: --
799: v_formula_id number;
800: v_formula_profile varchar2(30); -- User profile value.
801: --
802: begin
803: g_debug := hr_utility.debug_enabled;
804: --
805: -- Need to determine the defaulted value of the entry value.
806: --
807: hr_entry.derive_default_value
845: -- if the warning_or_error flag has been set to 'Error' then Error
846: -- and stop procesing
847: --
848: if v_min_max_failure = 'F' and v_warning_or_error = 'E' then
849: hr_utility.set_message(801, 'PAY_6303_INPUT_VALUE_OUT_RANGE');
850: hr_utility.raise_error;
851: end if;
852: --
853: -- ******* Added this to fix bug 421842 **********
846: -- and stop procesing
847: --
848: if v_min_max_failure = 'F' and v_warning_or_error = 'E' then
849: hr_utility.set_message(801, 'PAY_6303_INPUT_VALUE_OUT_RANGE');
850: hr_utility.raise_error;
851: end if;
852: --
853: -- ******* Added this to fix bug 421842 **********
854: -- if the warning_or_error flag has been set to 'Error' then only Warn
854: -- if the warning_or_error flag has been set to 'Error' then only Warn
855: -- but let the processing continue
856: --
857: if v_min_max_failure = 'F' and v_warning_or_error = 'W' then
858: hr_utility.set_message(801, 'PAY_6303_INPUT_VALUE_OUT_RANGE');
859: hr_utility.set_warning;
860: end if;
861: --
862: -- Check whether we need to perform formula validation.
855: -- but let the processing continue
856: --
857: if v_min_max_failure = 'F' and v_warning_or_error = 'W' then
858: hr_utility.set_message(801, 'PAY_6303_INPUT_VALUE_OUT_RANGE');
859: hr_utility.set_warning;
860: end if;
861: --
862: -- Check whether we need to perform formula validation.
863: open csr_val_fmla;
885: open csr_valid_lookup(p_lookup_type,p_screen_format);
886: fetch csr_valid_lookup into v_lookup_code;
887: if csr_valid_lookup%notfound then
888: close csr_valid_lookup;
889: hr_utility.set_message(801, 'HR_7033_ELE_ENTRY_LKUP_INVLD');
890: hr_utility.set_message_token('LOOKUP_TYPE',p_lookup_type);
891: hr_utility.raise_error;
892: end if;
893: close csr_valid_lookup;
886: fetch csr_valid_lookup into v_lookup_code;
887: if csr_valid_lookup%notfound then
888: close csr_valid_lookup;
889: hr_utility.set_message(801, 'HR_7033_ELE_ENTRY_LKUP_INVLD');
890: hr_utility.set_message_token('LOOKUP_TYPE',p_lookup_type);
891: hr_utility.raise_error;
892: end if;
893: close csr_valid_lookup;
894: --
887: if csr_valid_lookup%notfound then
888: close csr_valid_lookup;
889: hr_utility.set_message(801, 'HR_7033_ELE_ENTRY_LKUP_INVLD');
890: hr_utility.set_message_token('LOOKUP_TYPE',p_lookup_type);
891: hr_utility.raise_error;
892: end if;
893: close csr_valid_lookup;
894: --
895: -- If the element entry is used for benefit processing and the input
906: --
907: -- bug 372339, 604543 and 651458
908: --
909: if g_debug then
910: hr_utility.trace('p_lookup_code: ' || v_lookup_code);
911: end if;
912:
913: v_session_date := p_session_date;
914:
920: close csr_session_date;
921: end if;
922:
923: if g_debug then
924: hr_utility.trace('v_session_date: ' || fnd_date.date_to_canonical(v_session_date));
925: end if;
926:
927: -- bugfix 1273798
928: --if v_session_date = null then
928: --if v_session_date = null then
929: if v_session_date is null then
930:
931: close csr_benefit_entry;
932: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
933: hr_utility.set_message_token('PROCEDURE','hr_entry_api.validate_entry_value');
934: hr_utility.set_message_token('STEP','10');
935: hr_utility.raise_error;
936:
929: if v_session_date is null then
930:
931: close csr_benefit_entry;
932: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
933: hr_utility.set_message_token('PROCEDURE','hr_entry_api.validate_entry_value');
934: hr_utility.set_message_token('STEP','10');
935: hr_utility.raise_error;
936:
937: end if;
930:
931: close csr_benefit_entry;
932: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
933: hr_utility.set_message_token('PROCEDURE','hr_entry_api.validate_entry_value');
934: hr_utility.set_message_token('STEP','10');
935: hr_utility.raise_error;
936:
937: end if;
938:
931: close csr_benefit_entry;
932: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
933: hr_utility.set_message_token('PROCEDURE','hr_entry_api.validate_entry_value');
934: hr_utility.set_message_token('STEP','10');
935: hr_utility.raise_error;
936:
937: end if;
938:
939: open csr_valid_coverage_level(p_input_value_id,v_lookup_code,TRUNC(v_session_date));
939: open csr_valid_coverage_level(p_input_value_id,v_lookup_code,TRUNC(v_session_date));
940: fetch csr_valid_coverage_level into v_dummy;
941: if csr_valid_coverage_level%found then
942: close csr_valid_coverage_level;
943: hr_utility.set_message(801, 'HR_7437_BEN_COVERAGE_INVLD');
944: hr_utility.raise_error;
945: end if;
946: if g_debug then
947: hr_utility.trace('valid_coverage_level_found ' || v_dummy);
940: fetch csr_valid_coverage_level into v_dummy;
941: if csr_valid_coverage_level%found then
942: close csr_valid_coverage_level;
943: hr_utility.set_message(801, 'HR_7437_BEN_COVERAGE_INVLD');
944: hr_utility.raise_error;
945: end if;
946: if g_debug then
947: hr_utility.trace('valid_coverage_level_found ' || v_dummy);
948: end if;
943: hr_utility.set_message(801, 'HR_7437_BEN_COVERAGE_INVLD');
944: hr_utility.raise_error;
945: end if;
946: if g_debug then
947: hr_utility.trace('valid_coverage_level_found ' || v_dummy);
948: end if;
949: close csr_valid_coverage_level;
950:
951: end if;
967: if v_value_set_value is null then
968: --
969: -- The screen format was invalid, raise an error
970: --
971: hr_utility.set_message(800, 'HR_34927_ELE_ENTRY_VSET_INVLD');
972: hr_utility.raise_error;
973: --
974: end if;
975: --
968: --
969: -- The screen format was invalid, raise an error
970: --
971: hr_utility.set_message(800, 'HR_34927_ELE_ENTRY_VSET_INVLD');
972: hr_utility.raise_error;
973: --
974: end if;
975: --
976: p_db_format := v_value_set_value;
1012: --
1013: --
1014: BEGIN
1015: if g_debug then
1016: hr_utility.trace('> hr_entry_api.chk_user_enterable');
1017: hr_utility.trace('| p_el_id>' || p_el_id || '<');
1018: hr_utility.trace('| p_lookup_type>' || p_lookup_type || '<');
1019: hr_utility.trace('| p_value_set_id>' || p_value_set_id || '<');
1020: hr_utility.trace('| p_default_value>' || p_default_value || '<');
1013: --
1014: BEGIN
1015: if g_debug then
1016: hr_utility.trace('> hr_entry_api.chk_user_enterable');
1017: hr_utility.trace('| p_el_id>' || p_el_id || '<');
1018: hr_utility.trace('| p_lookup_type>' || p_lookup_type || '<');
1019: hr_utility.trace('| p_value_set_id>' || p_value_set_id || '<');
1020: hr_utility.trace('| p_default_value>' || p_default_value || '<');
1021: hr_utility.trace('| p_input_currency_code>' || p_input_currency_code || '<');
1014: BEGIN
1015: if g_debug then
1016: hr_utility.trace('> hr_entry_api.chk_user_enterable');
1017: hr_utility.trace('| p_el_id>' || p_el_id || '<');
1018: hr_utility.trace('| p_lookup_type>' || p_lookup_type || '<');
1019: hr_utility.trace('| p_value_set_id>' || p_value_set_id || '<');
1020: hr_utility.trace('| p_default_value>' || p_default_value || '<');
1021: hr_utility.trace('| p_input_currency_code>' || p_input_currency_code || '<');
1022: hr_utility.trace('| p_session_date>' || p_session_date || '<');
1015: if g_debug then
1016: hr_utility.trace('> hr_entry_api.chk_user_enterable');
1017: hr_utility.trace('| p_el_id>' || p_el_id || '<');
1018: hr_utility.trace('| p_lookup_type>' || p_lookup_type || '<');
1019: hr_utility.trace('| p_value_set_id>' || p_value_set_id || '<');
1020: hr_utility.trace('| p_default_value>' || p_default_value || '<');
1021: hr_utility.trace('| p_input_currency_code>' || p_input_currency_code || '<');
1022: hr_utility.trace('| p_session_date>' || p_session_date || '<');
1023: hr_utility.trace('| p_iv_id>' || p_iv_id || '<');
1016: hr_utility.trace('> hr_entry_api.chk_user_enterable');
1017: hr_utility.trace('| p_el_id>' || p_el_id || '<');
1018: hr_utility.trace('| p_lookup_type>' || p_lookup_type || '<');
1019: hr_utility.trace('| p_value_set_id>' || p_value_set_id || '<');
1020: hr_utility.trace('| p_default_value>' || p_default_value || '<');
1021: hr_utility.trace('| p_input_currency_code>' || p_input_currency_code || '<');
1022: hr_utility.trace('| p_session_date>' || p_session_date || '<');
1023: hr_utility.trace('| p_iv_id>' || p_iv_id || '<');
1024: hr_utility.trace('| p_ev>' || p_ev || '<');
1017: hr_utility.trace('| p_el_id>' || p_el_id || '<');
1018: hr_utility.trace('| p_lookup_type>' || p_lookup_type || '<');
1019: hr_utility.trace('| p_value_set_id>' || p_value_set_id || '<');
1020: hr_utility.trace('| p_default_value>' || p_default_value || '<');
1021: hr_utility.trace('| p_input_currency_code>' || p_input_currency_code || '<');
1022: hr_utility.trace('| p_session_date>' || p_session_date || '<');
1023: hr_utility.trace('| p_iv_id>' || p_iv_id || '<');
1024: hr_utility.trace('| p_ev>' || p_ev || '<');
1025: end if;
1018: hr_utility.trace('| p_lookup_type>' || p_lookup_type || '<');
1019: hr_utility.trace('| p_value_set_id>' || p_value_set_id || '<');
1020: hr_utility.trace('| p_default_value>' || p_default_value || '<');
1021: hr_utility.trace('| p_input_currency_code>' || p_input_currency_code || '<');
1022: hr_utility.trace('| p_session_date>' || p_session_date || '<');
1023: hr_utility.trace('| p_iv_id>' || p_iv_id || '<');
1024: hr_utility.trace('| p_ev>' || p_ev || '<');
1025: end if;
1026: --
1019: hr_utility.trace('| p_value_set_id>' || p_value_set_id || '<');
1020: hr_utility.trace('| p_default_value>' || p_default_value || '<');
1021: hr_utility.trace('| p_input_currency_code>' || p_input_currency_code || '<');
1022: hr_utility.trace('| p_session_date>' || p_session_date || '<');
1023: hr_utility.trace('| p_iv_id>' || p_iv_id || '<');
1024: hr_utility.trace('| p_ev>' || p_ev || '<');
1025: end if;
1026: --
1027: -- Only convert the format if it is an Insert call.
1020: hr_utility.trace('| p_default_value>' || p_default_value || '<');
1021: hr_utility.trace('| p_input_currency_code>' || p_input_currency_code || '<');
1022: hr_utility.trace('| p_session_date>' || p_session_date || '<');
1023: hr_utility.trace('| p_iv_id>' || p_iv_id || '<');
1024: hr_utility.trace('| p_ev>' || p_ev || '<');
1025: end if;
1026: --
1027: -- Only convert the format if it is an Insert call.
1028: --
1045: and h.lookup_code = p_default_value
1046: ;
1047: EXCEPTION
1048: WHEN NO_DATA_FOUND THEN
1049: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
1050: hr_utility.set_message_token('PROCEDURE',
1051: 'hr_entry_api.chk_user_enterable');
1052: hr_utility.set_message_token('STEP','1');
1053: hr_utility.raise_error;
1046: ;
1047: EXCEPTION
1048: WHEN NO_DATA_FOUND THEN
1049: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
1050: hr_utility.set_message_token('PROCEDURE',
1051: 'hr_entry_api.chk_user_enterable');
1052: hr_utility.set_message_token('STEP','1');
1053: hr_utility.raise_error;
1054: END;
1048: WHEN NO_DATA_FOUND THEN
1049: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
1050: hr_utility.set_message_token('PROCEDURE',
1051: 'hr_entry_api.chk_user_enterable');
1052: hr_utility.set_message_token('STEP','1');
1053: hr_utility.raise_error;
1054: END;
1055: --
1056: ELSE
1049: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
1050: hr_utility.set_message_token('PROCEDURE',
1051: 'hr_entry_api.chk_user_enterable');
1052: hr_utility.set_message_token('STEP','1');
1053: hr_utility.raise_error;
1054: END;
1055: --
1056: ELSE
1057: --
1069: v_database_format_value => l_db_fmt_value);
1070: --
1071: --
1072: if g_debug then
1073: hr_utility.trace('| l_screen_fmt_value>' || l_screen_fmt_value || '<');
1074: hr_utility.trace('| l_db_fmt_value>' || l_db_fmt_value || '<');
1075: end if;
1076: --
1077: l_default := l_screen_fmt_value;
1070: --
1071: --
1072: if g_debug then
1073: hr_utility.trace('| l_screen_fmt_value>' || l_screen_fmt_value || '<');
1074: hr_utility.trace('| l_db_fmt_value>' || l_db_fmt_value || '<');
1075: end if;
1076: --
1077: l_default := l_screen_fmt_value;
1078: END IF;
1097: where h.lookup_type = p_lookup_type
1098: and h.lookup_code = p_default_value;
1099: exception
1100: when NO_DATA_FOUND then
1101: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
1102: hr_utility.set_message_token('PROCEDURE',
1103: 'hr_entry_api.chk_user_enterable');
1104: hr_utility.set_message_token('STEP','2');
1105: hr_utility.raise_error;
1098: and h.lookup_code = p_default_value;
1099: exception
1100: when NO_DATA_FOUND then
1101: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
1102: hr_utility.set_message_token('PROCEDURE',
1103: 'hr_entry_api.chk_user_enterable');
1104: hr_utility.set_message_token('STEP','2');
1105: hr_utility.raise_error;
1106: end;
1100: when NO_DATA_FOUND then
1101: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
1102: hr_utility.set_message_token('PROCEDURE',
1103: 'hr_entry_api.chk_user_enterable');
1104: hr_utility.set_message_token('STEP','2');
1105: hr_utility.raise_error;
1106: end;
1107: --
1108: -- Bugfix 5555289
1101: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
1102: hr_utility.set_message_token('PROCEDURE',
1103: 'hr_entry_api.chk_user_enterable');
1104: hr_utility.set_message_token('STEP','2');
1105: hr_utility.raise_error;
1106: end;
1107: --
1108: -- Bugfix 5555289
1109: -- If the input value uses a value set for validation then derive the
1117: if l_default is null then
1118: --
1119: -- The p_default_value was invalid, raise an error
1120: --
1121: hr_utility.set_message(800, 'HR_34927_ELE_ENTRY_VSET_INVLD');
1122: hr_utility.raise_error;
1123: --
1124: end if;
1125: --
1118: --
1119: -- The p_default_value was invalid, raise an error
1120: --
1121: hr_utility.set_message(800, 'HR_34927_ELE_ENTRY_VSET_INVLD');
1122: hr_utility.raise_error;
1123: --
1124: end if;
1125: --
1126: else
1130: --
1131: END IF;
1132:
1133: if g_debug then
1134: hr_utility.trace('| l_default>' || l_default || '<');
1135: end if;
1136: --
1137:
1138: IF g_override_user_ent_chk = 'Y' THEN
1146:
1147: IF (l_default IS NOT NULL AND p_ev IS NOT NULL AND p_ev = l_default) OR (l_default IS NULL AND p_ev IS NULL) THEN
1148:
1149: if g_debug then
1150: hr_utility.trace('| EV specified matches value on EL, ok');
1151: end if;
1152:
1153: ELSIF l_default IS NOT NULL AND p_ev IS NOT NULL AND p_ev <> l_default THEN
1154: --
1155: -- API can 'update' a default as specified on EL,
1156: -- therefore default is not null, forms cannot do this
1157: --
1158: if g_debug then
1159: hr_utility.trace('| EV does not match the default value stored on PLIV');
1160: end if;
1161: -- hr_utility.set_message (800, 'PAY_50380_INPVAL_NOT_UPDATABLE');
1162: -- hr_utility.raise_error;
1163:
1157: --
1158: if g_debug then
1159: hr_utility.trace('| EV does not match the default value stored on PLIV');
1160: end if;
1161: -- hr_utility.set_message (800, 'PAY_50380_INPVAL_NOT_UPDATABLE');
1162: -- hr_utility.raise_error;
1163:
1164: ELSE
1165: --
1158: if g_debug then
1159: hr_utility.trace('| EV does not match the default value stored on PLIV');
1160: end if;
1161: -- hr_utility.set_message (800, 'PAY_50380_INPVAL_NOT_UPDATABLE');
1162: -- hr_utility.raise_error;
1163:
1164: ELSE
1165: --
1166: -- if there is no default value to compare against (an EV
1168: -- for the API to 'set' a value for a non User Enterable IV,
1169: -- forms cannot do this
1170: --
1171: if g_debug then
1172: hr_utility.trace('| EV specified');
1173: end if;
1174: -- hr_utility.set_message (800, 'PAY_50381_INPVAL_NOT_ENTERABLE');
1175: -- hr_utility.raise_error;
1176: END IF;
1170: --
1171: if g_debug then
1172: hr_utility.trace('| EV specified');
1173: end if;
1174: -- hr_utility.set_message (800, 'PAY_50381_INPVAL_NOT_ENTERABLE');
1175: -- hr_utility.raise_error;
1176: END IF;
1177:
1178: p_ev := l_default;
1171: if g_debug then
1172: hr_utility.trace('| EV specified');
1173: end if;
1174: -- hr_utility.set_message (800, 'PAY_50381_INPVAL_NOT_ENTERABLE');
1175: -- hr_utility.raise_error;
1176: END IF;
1177:
1178: p_ev := l_default;
1179: --
1180: --
1181: END IF;
1182: --
1183: if g_debug then
1184: hr_utility.trace('< hr_entry_api.chk_user_enterable');
1185: end if;
1186: END chk_user_enterable;
1187: --
1188: ------------------------------------------------------------------------------
1411: --
1412: v_creator_type varchar2(30);
1413: --
1414: begin
1415: g_debug := hr_utility.debug_enabled;
1416: --
1417: if g_debug then
1418: hr_utility.set_location('hr_entry.conv_entry_values_to_table',5);
1419: end if;
1414: begin
1415: g_debug := hr_utility.debug_enabled;
1416: --
1417: if g_debug then
1418: hr_utility.set_location('hr_entry.conv_entry_values_to_table',5);
1419: end if;
1420: --
1421: if p_creator_type = hr_api.g_varchar2 then
1422: open csr_creator_type(p_element_entry_id,p_session_date);
1426: v_creator_type := p_creator_type;
1427: end if;
1428: --
1429: if g_debug then
1430: hr_utility.trace('p_entry_value1: ' || p_entry_value1);
1431: end if;
1432: --
1433: -- User is inserting a new element entry.
1434: --
1434: --
1435: if p_element_link_id is not null then
1436: --
1437: if g_debug then
1438: hr_utility.set_location('hr_entry.conv_entry_values_to_table',10);
1439: end if;
1440: --
1441: -- Find all the entry values for the specified element entry NB. it is a
1442: -- new element entry so have to get the details of the entry values from
1445: for v_link_value in csr_link_input_value(p_element_link_id,
1446: p_session_date) loop
1447: --
1448: if g_debug then
1449: hr_utility.set_location('hr_entry.conv_entry_values_to_table',15);
1450: end if;
1451: --
1452: -- Keep a count of the number of entry values and put input_value_id of
1453: -- entry value into table.
1459: -- cobert it to DB format.
1460: --
1461: if p_iv_format = 'SCREEN' and v_link_value.entry_specified = 'SET' then
1462: if g_debug then
1463: hr_utility.trace('| Begin conv_entry_values_to_table()');
1464: end if;
1465: --
1466: -- v_link_value.entry_specified really indicates that the IV_ID
1467: -- has been specified
1481: -- S Override
1482: -- R Replacement Adjustment
1483: --
1484: if g_debug then
1485: hr_utility.trace('| p_entry_type>' || p_entry_type || '<');
1486: end if;
1487: --
1488: -- Bugfix 3187829
1489: -- Do not call chk_user_enterable for entry type 'R' (replacement
1492: -- type 'A' (additive adjustment) behaviour.
1493: --
1494: IF v_creator_type IN ('F','H') AND p_entry_type NOT IN ('A','R') THEN
1495: if g_debug then
1496: hr_utility.trace('| creator type in F or H and not A EE');
1497: end if;
1498: --
1499: IF v_link_value.mandatory_flag = 'X'
1500: -- Following commented out because user can entre null value too.
1500: -- Following commented out because user can entre null value too.
1501: -- AND v_link_value.entry_value IS NOT NULL
1502: THEN
1503: if g_debug then
1504: hr_utility.trace('| flag set to X and EV specified');
1505: end if;
1506: --
1507: -- only raise the error if the EV does not match the
1508: -- default value stored on PLIV
1523: --
1524: END IF;
1525: --
1526: if g_debug then
1527: hr_utility.trace('| End conv_entry_values_to_table()');
1528: end if;
1529: --
1530: --
1531: v_screen_format := v_link_value.entry_value;
1565: -- Put entry value into table.
1566: --
1567: v_entry_value_tbl(v_count) := v_db_format;
1568: if g_debug then
1569: hr_utility.trace('v_db_format: ' || v_db_format);
1570: end if;
1571: --
1572: else
1573: --
1574: -- Put entry value into table.
1575: --
1576: v_entry_value_tbl(v_count) := v_link_value.entry_value;
1577: if g_debug then
1578: hr_utility.trace('v_link_value.entry_value: ' ||
1579: v_link_value.entry_value);
1580: end if;
1581: --
1582: end if;
1587: --
1588: elsif p_element_entry_id is not null then
1589: --
1590: if g_debug then
1591: hr_utility.set_location('hr_entry.conv_entry_values_to_table',20);
1592: end if;
1593: --
1594: -- Find all the entry values for the specified element entry.
1595: --
1596: for v_entry_value in csr_entry_input_value(p_element_entry_id,
1597: p_session_date) loop
1598: --
1599: if g_debug then
1600: hr_utility.set_location('hr_entry.conv_entry_values_to_table',25);
1601: hr_utility.trace('v_entry_value.element_link_id: '||to_char(v_entry_value.element_link_id) );
1602: hr_utility.trace('v_entry_value.input_value_id: '||to_char(v_entry_value.input_value_id) );
1603: hr_utility.trace('v_entry_value.lookup_type: '||v_entry_value.lookup_type) ;
1604: hr_utility.trace('v_entry_value.value_set_id: '||to_char(v_entry_value.value_set_id) );
1597: p_session_date) loop
1598: --
1599: if g_debug then
1600: hr_utility.set_location('hr_entry.conv_entry_values_to_table',25);
1601: hr_utility.trace('v_entry_value.element_link_id: '||to_char(v_entry_value.element_link_id) );
1602: hr_utility.trace('v_entry_value.input_value_id: '||to_char(v_entry_value.input_value_id) );
1603: hr_utility.trace('v_entry_value.lookup_type: '||v_entry_value.lookup_type) ;
1604: hr_utility.trace('v_entry_value.value_set_id: '||to_char(v_entry_value.value_set_id) );
1605: hr_utility.trace('v_entry_value.uom: '||v_entry_value.uom) ;
1598: --
1599: if g_debug then
1600: hr_utility.set_location('hr_entry.conv_entry_values_to_table',25);
1601: hr_utility.trace('v_entry_value.element_link_id: '||to_char(v_entry_value.element_link_id) );
1602: hr_utility.trace('v_entry_value.input_value_id: '||to_char(v_entry_value.input_value_id) );
1603: hr_utility.trace('v_entry_value.lookup_type: '||v_entry_value.lookup_type) ;
1604: hr_utility.trace('v_entry_value.value_set_id: '||to_char(v_entry_value.value_set_id) );
1605: hr_utility.trace('v_entry_value.uom: '||v_entry_value.uom) ;
1606: hr_utility.trace('v_entry_value.hot_default_flag: '||v_entry_value.hot_default_flag) ;
1599: if g_debug then
1600: hr_utility.set_location('hr_entry.conv_entry_values_to_table',25);
1601: hr_utility.trace('v_entry_value.element_link_id: '||to_char(v_entry_value.element_link_id) );
1602: hr_utility.trace('v_entry_value.input_value_id: '||to_char(v_entry_value.input_value_id) );
1603: hr_utility.trace('v_entry_value.lookup_type: '||v_entry_value.lookup_type) ;
1604: hr_utility.trace('v_entry_value.value_set_id: '||to_char(v_entry_value.value_set_id) );
1605: hr_utility.trace('v_entry_value.uom: '||v_entry_value.uom) ;
1606: hr_utility.trace('v_entry_value.hot_default_flag: '||v_entry_value.hot_default_flag) ;
1607: hr_utility.trace('v_entry_value.input_currency_code: '||v_entry_value.input_currency_code) ;
1600: hr_utility.set_location('hr_entry.conv_entry_values_to_table',25);
1601: hr_utility.trace('v_entry_value.element_link_id: '||to_char(v_entry_value.element_link_id) );
1602: hr_utility.trace('v_entry_value.input_value_id: '||to_char(v_entry_value.input_value_id) );
1603: hr_utility.trace('v_entry_value.lookup_type: '||v_entry_value.lookup_type) ;
1604: hr_utility.trace('v_entry_value.value_set_id: '||to_char(v_entry_value.value_set_id) );
1605: hr_utility.trace('v_entry_value.uom: '||v_entry_value.uom) ;
1606: hr_utility.trace('v_entry_value.hot_default_flag: '||v_entry_value.hot_default_flag) ;
1607: hr_utility.trace('v_entry_value.input_currency_code: '||v_entry_value.input_currency_code) ;
1608: hr_utility.trace('v_entry_value.mandatory_flag: '||v_entry_value.mandatory_flag) ;
1601: hr_utility.trace('v_entry_value.element_link_id: '||to_char(v_entry_value.element_link_id) );
1602: hr_utility.trace('v_entry_value.input_value_id: '||to_char(v_entry_value.input_value_id) );
1603: hr_utility.trace('v_entry_value.lookup_type: '||v_entry_value.lookup_type) ;
1604: hr_utility.trace('v_entry_value.value_set_id: '||to_char(v_entry_value.value_set_id) );
1605: hr_utility.trace('v_entry_value.uom: '||v_entry_value.uom) ;
1606: hr_utility.trace('v_entry_value.hot_default_flag: '||v_entry_value.hot_default_flag) ;
1607: hr_utility.trace('v_entry_value.input_currency_code: '||v_entry_value.input_currency_code) ;
1608: hr_utility.trace('v_entry_value.mandatory_flag: '||v_entry_value.mandatory_flag) ;
1609: hr_utility.trace('v_entry_value.peev_default_value: '||v_entry_value.peev_default_value) ;
1602: hr_utility.trace('v_entry_value.input_value_id: '||to_char(v_entry_value.input_value_id) );
1603: hr_utility.trace('v_entry_value.lookup_type: '||v_entry_value.lookup_type) ;
1604: hr_utility.trace('v_entry_value.value_set_id: '||to_char(v_entry_value.value_set_id) );
1605: hr_utility.trace('v_entry_value.uom: '||v_entry_value.uom) ;
1606: hr_utility.trace('v_entry_value.hot_default_flag: '||v_entry_value.hot_default_flag) ;
1607: hr_utility.trace('v_entry_value.input_currency_code: '||v_entry_value.input_currency_code) ;
1608: hr_utility.trace('v_entry_value.mandatory_flag: '||v_entry_value.mandatory_flag) ;
1609: hr_utility.trace('v_entry_value.peev_default_value: '||v_entry_value.peev_default_value) ;
1610: hr_utility.trace('v_entry_value.entry_value: '|| v_entry_value.entry_value) ;
1603: hr_utility.trace('v_entry_value.lookup_type: '||v_entry_value.lookup_type) ;
1604: hr_utility.trace('v_entry_value.value_set_id: '||to_char(v_entry_value.value_set_id) );
1605: hr_utility.trace('v_entry_value.uom: '||v_entry_value.uom) ;
1606: hr_utility.trace('v_entry_value.hot_default_flag: '||v_entry_value.hot_default_flag) ;
1607: hr_utility.trace('v_entry_value.input_currency_code: '||v_entry_value.input_currency_code) ;
1608: hr_utility.trace('v_entry_value.mandatory_flag: '||v_entry_value.mandatory_flag) ;
1609: hr_utility.trace('v_entry_value.peev_default_value: '||v_entry_value.peev_default_value) ;
1610: hr_utility.trace('v_entry_value.entry_value: '|| v_entry_value.entry_value) ;
1611: hr_utility.trace('v_entry_value.entry_specified: '||v_entry_value.entry_specified) ;
1604: hr_utility.trace('v_entry_value.value_set_id: '||to_char(v_entry_value.value_set_id) );
1605: hr_utility.trace('v_entry_value.uom: '||v_entry_value.uom) ;
1606: hr_utility.trace('v_entry_value.hot_default_flag: '||v_entry_value.hot_default_flag) ;
1607: hr_utility.trace('v_entry_value.input_currency_code: '||v_entry_value.input_currency_code) ;
1608: hr_utility.trace('v_entry_value.mandatory_flag: '||v_entry_value.mandatory_flag) ;
1609: hr_utility.trace('v_entry_value.peev_default_value: '||v_entry_value.peev_default_value) ;
1610: hr_utility.trace('v_entry_value.entry_value: '|| v_entry_value.entry_value) ;
1611: hr_utility.trace('v_entry_value.entry_specified: '||v_entry_value.entry_specified) ;
1612: end if;
1605: hr_utility.trace('v_entry_value.uom: '||v_entry_value.uom) ;
1606: hr_utility.trace('v_entry_value.hot_default_flag: '||v_entry_value.hot_default_flag) ;
1607: hr_utility.trace('v_entry_value.input_currency_code: '||v_entry_value.input_currency_code) ;
1608: hr_utility.trace('v_entry_value.mandatory_flag: '||v_entry_value.mandatory_flag) ;
1609: hr_utility.trace('v_entry_value.peev_default_value: '||v_entry_value.peev_default_value) ;
1610: hr_utility.trace('v_entry_value.entry_value: '|| v_entry_value.entry_value) ;
1611: hr_utility.trace('v_entry_value.entry_specified: '||v_entry_value.entry_specified) ;
1612: end if;
1613: --
1606: hr_utility.trace('v_entry_value.hot_default_flag: '||v_entry_value.hot_default_flag) ;
1607: hr_utility.trace('v_entry_value.input_currency_code: '||v_entry_value.input_currency_code) ;
1608: hr_utility.trace('v_entry_value.mandatory_flag: '||v_entry_value.mandatory_flag) ;
1609: hr_utility.trace('v_entry_value.peev_default_value: '||v_entry_value.peev_default_value) ;
1610: hr_utility.trace('v_entry_value.entry_value: '|| v_entry_value.entry_value) ;
1611: hr_utility.trace('v_entry_value.entry_specified: '||v_entry_value.entry_specified) ;
1612: end if;
1613: --
1614: -- Keep a count of the number of entry values and put input_value_id of
1607: hr_utility.trace('v_entry_value.input_currency_code: '||v_entry_value.input_currency_code) ;
1608: hr_utility.trace('v_entry_value.mandatory_flag: '||v_entry_value.mandatory_flag) ;
1609: hr_utility.trace('v_entry_value.peev_default_value: '||v_entry_value.peev_default_value) ;
1610: hr_utility.trace('v_entry_value.entry_value: '|| v_entry_value.entry_value) ;
1611: hr_utility.trace('v_entry_value.entry_specified: '||v_entry_value.entry_specified) ;
1612: end if;
1613: --
1614: -- Keep a count of the number of entry values and put input_value_id of
1615: -- entry value into table.
1624: --
1625: --IF v_creator_type IN ('F', 'H') AND p_entry_type <> 'A' THEN -- Commented for bug 8307482
1626: IF v_creator_type IN ('F', 'H') AND p_entry_type NOT IN ('A','R') THEN
1627: if g_debug then
1628: hr_utility.trace('| creator type in F or H and not A EE');
1629: end if;
1630: --
1631: IF v_entry_value.mandatory_flag = 'X'
1632: -- Following commented out because user can entre null value too.
1632: -- Following commented out because user can entre null value too.
1633: -- AND v_entry_value.entry_value IS NOT NULL
1634: THEN
1635: if g_debug then
1636: hr_utility.trace('| flag set to X and EV specified');
1637: end if;
1638: --
1639: -- only raise the error if the EV does not match the
1640: -- existing value.
1660: v_screen_format := v_entry_value.entry_value;
1661: v_db_format := v_screen_format;
1662: --
1663: if g_debug then
1664: hr_utility.set_location('hr_entry.conv_entry_values_to_table',27);
1665: end if;
1666: --
1667: hr_entry_api.validate_entry_value
1668: (v_entry_value.element_link_id,
1691: --
1692: end if;
1693: --
1694: if g_debug then
1695: hr_utility.set_location('hr_entry.conv_entry_values_to_table',30);
1696: end if;
1697: --
1698: -- Return tables containing the entry values in DB format.
1699: --
1818: v_element_link_id number;
1819: v_entry_value_found boolean := false;
1820: --
1821: begin
1822: g_debug := hr_utility.debug_enabled;
1823: --
1824: if g_debug then
1825: hr_utility.set_location('hr_entry.conv_to_table',5);
1826: end if;
1821: begin
1822: g_debug := hr_utility.debug_enabled;
1823: --
1824: if g_debug then
1825: hr_utility.set_location('hr_entry.conv_to_table',5);
1826: end if;
1827: --
1828: --
1829: if p_creator_type = hr_api.g_varchar2 then
1868: -- convert it to DB format.
1869: --
1870: if p_iv_format = 'SCREEN' then
1871: if g_debug then
1872: hr_utility.trace('| Begin conv_table_to_table()');
1873: end if;
1874: --
1875: -- match found,
1876: -- one of the IV_IDs passed in matches the current IV_ID
1882: -- bug 546670, repeat validation as exists in
1883: -- conv_entry_values_to_table(),
1884: --
1885: if g_debug then
1886: hr_utility.trace('| p_entry_type>' || p_entry_type || '<');
1887: end if;
1888: --
1889: IF v_creator_type IN ('F', 'H') AND p_entry_type <> 'A' THEN
1890: if g_debug then
1887: end if;
1888: --
1889: IF v_creator_type IN ('F', 'H') AND p_entry_type <> 'A' THEN
1890: if g_debug then
1891: hr_utility.trace('| creator type in F or H and not A EE');
1892: end if;
1893:
1894: IF v_link_value.mandatory_flag = 'X'
1895: -- Following commented out because user can entre null value too.
1895: -- Following commented out because user can entre null value too.
1896: -- AND p_entry_value_tbl(v_loop) IS NOT NULL
1897: THEN
1898: if g_debug then
1899: hr_utility.trace('| flag set to X and EV specified');
1900: end if;
1901: --
1902: -- only raise the error if the EV does not match the
1903: -- default value stored on PLIV
1918:
1919: END IF;
1920: --
1921: if g_debug then
1922: hr_utility.trace('| End conv_table_to_table()');
1923: end if;
1924: --
1925: --
1926: v_screen_format := p_entry_value_tbl(v_loop);
2036: if p_iv_format = 'SCREEN' then
2037: --
2038: IF v_creator_type IN ('F', 'H') AND p_entry_type <> 'A' THEN
2039: if g_debug then
2040: hr_utility.trace('| creator type in F or H and not A EE');
2041: end if;
2042: --
2043: IF v_entry_value.mandatory_flag = 'X'
2044: -- Following commented out because user can entre null value too.
2044: -- Following commented out because user can entre null value too.
2045: -- AND p_entry_value_tbl(v_loop) IS NOT NULL
2046: THEN
2047: if g_debug then
2048: hr_utility.trace('| flag set to X and EV specified');
2049: end if;
2050: --
2051: -- only raise the error if the EV does not match the
2052: -- existing value.
2124: --
2125: end if;
2126: --
2127: if g_debug then
2128: hr_utility.set_location('hr_entry.conv_table_to_table',10);
2129: end if;
2130: --
2131: -- Return tables containing the entry values in DB format.
2132: --
2156: --
2157: v_element_link_id number;
2158: --
2159: begin
2160: g_debug := hr_utility.debug_enabled;
2161: --
2162: begin
2163: select el.element_link_id
2164: into v_element_link_id
2260: --
2261: -- Special case exclusion for the Balance Adjustment entries.
2262: --
2263: if (p_entry_type <> 'B') then
2264: hr_utility.set_message (801, 'HR_7796_ENTRY_INVALID_PPM');
2265: hr_utility.raise_error;
2266: end if;
2267: --
2268: --
2261: -- Special case exclusion for the Balance Adjustment entries.
2262: --
2263: if (p_entry_type <> 'B') then
2264: hr_utility.set_message (801, 'HR_7796_ENTRY_INVALID_PPM');
2265: hr_utility.raise_error;
2266: end if;
2267: --
2268: --
2269: else
2277: fetch third_party_element into l_dummy;
2278: if third_party_element%notfound then
2279: --
2280: close third_party_element;
2281: hr_utility.set_message (801, 'HR_7795_ENTRY_NOT_3RD_PARTY');
2282: hr_utility.raise_error;
2283: --
2284: end if;
2285: --
2278: if third_party_element%notfound then
2279: --
2280: close third_party_element;
2281: hr_utility.set_message (801, 'HR_7795_ENTRY_NOT_3RD_PARTY');
2282: hr_utility.raise_error;
2283: --
2284: end if;
2285: --
2286: close third_party_element;
2291: --
2292: -- There was no personal_payment_method for the ID passed in
2293: --
2294: close personal_payment_method;
2295: hr_utility.set_message (801, 'HR_7796_ENTRY_INVALID_PPM');
2296: hr_utility.raise_error;
2297: --
2298: else
2299: --
2292: -- There was no personal_payment_method for the ID passed in
2293: --
2294: close personal_payment_method;
2295: hr_utility.set_message (801, 'HR_7796_ENTRY_INVALID_PPM');
2296: hr_utility.raise_error;
2297: --
2298: else
2299: --
2300: close personal_payment_method;
2305: or (p_effective_end_date > l_ppm_end) then
2306: --
2307: -- The payment method does not exist for the whole life of the entry
2308: --
2309: hr_utility.set_message (801, 'HR_7797_ENTRY_PPM_DATES');
2310: hr_utility.raise_error;
2311: --
2312: end if;
2313: --
2306: --
2307: -- The payment method does not exist for the whole life of the entry
2308: --
2309: hr_utility.set_message (801, 'HR_7797_ENTRY_PPM_DATES');
2310: hr_utility.raise_error;
2311: --
2312: end if;
2313: --
2314: end if;
2348: --
2349: begin
2350: --
2351: if g_debug then
2352: hr_utility.trace ('p_date_earned = '||p_date_earned);
2353: hr_utility.trace ('p_effective_start_date = '||p_effective_start_date);
2354: hr_utility.trace ('p_effective_end_date = '||p_effective_end_date);
2355: hr_utility.trace ('p_element_link_id = '||p_element_link_id);
2356: hr_utility.trace ('p_entry_type = '||p_entry_type);
2349: begin
2350: --
2351: if g_debug then
2352: hr_utility.trace ('p_date_earned = '||p_date_earned);
2353: hr_utility.trace ('p_effective_start_date = '||p_effective_start_date);
2354: hr_utility.trace ('p_effective_end_date = '||p_effective_end_date);
2355: hr_utility.trace ('p_element_link_id = '||p_element_link_id);
2356: hr_utility.trace ('p_entry_type = '||p_entry_type);
2357: end if;
2350: --
2351: if g_debug then
2352: hr_utility.trace ('p_date_earned = '||p_date_earned);
2353: hr_utility.trace ('p_effective_start_date = '||p_effective_start_date);
2354: hr_utility.trace ('p_effective_end_date = '||p_effective_end_date);
2355: hr_utility.trace ('p_element_link_id = '||p_element_link_id);
2356: hr_utility.trace ('p_entry_type = '||p_entry_type);
2357: end if;
2358: --
2351: if g_debug then
2352: hr_utility.trace ('p_date_earned = '||p_date_earned);
2353: hr_utility.trace ('p_effective_start_date = '||p_effective_start_date);
2354: hr_utility.trace ('p_effective_end_date = '||p_effective_end_date);
2355: hr_utility.trace ('p_element_link_id = '||p_element_link_id);
2356: hr_utility.trace ('p_entry_type = '||p_entry_type);
2357: end if;
2358: --
2359: if p_date_earned is null then
2352: hr_utility.trace ('p_date_earned = '||p_date_earned);
2353: hr_utility.trace ('p_effective_start_date = '||p_effective_start_date);
2354: hr_utility.trace ('p_effective_end_date = '||p_effective_end_date);
2355: hr_utility.trace ('p_element_link_id = '||p_element_link_id);
2356: hr_utility.trace ('p_entry_type = '||p_entry_type);
2357: end if;
2358: --
2359: if p_date_earned is null then
2360: return; -- Abort check.
2364: and p_effective_end_date then
2365: --
2366: -- The date_earned must lie within the effective dates
2367: --
2368: hr_utility.set_message (801,'HR_7793_ENTRY_DATE_EARNED');
2369: hr_utility.raise_error;
2370: --
2371: else
2372: --
2365: --
2366: -- The date_earned must lie within the effective dates
2367: --
2368: hr_utility.set_message (801,'HR_7793_ENTRY_DATE_EARNED');
2369: hr_utility.raise_error;
2370: --
2371: else
2372: --
2373: -- Only nonrecurring entries may have date earned
2379: --
2380: if processing_type%notfound then
2381: --
2382: close processing_type;
2383: hr_utility.set_message (801, 'HR_7794_ENTRY_DATE_EARNED_NULL');
2384: hr_utility.raise_error;
2385: --
2386: end if;
2387: --
2380: if processing_type%notfound then
2381: --
2382: close processing_type;
2383: hr_utility.set_message (801, 'HR_7794_ENTRY_DATE_EARNED_NULL');
2384: hr_utility.raise_error;
2385: --
2386: end if;
2387: --
2388: close processing_type;
2422: and asg.effective_end_date;
2423: --
2424: exception
2425: when no_data_found then
2426: hr_utility.set_message(801, 'HR_7026_ELE_ENTRY_ASS_NOT_EXST');
2427: hr_utility.set_message_token('DATE',fnd_date.date_to_canonical(p_validation_start_date));
2428: hr_utility.raise_error;
2429: end;
2430: --
2423: --
2424: exception
2425: when no_data_found then
2426: hr_utility.set_message(801, 'HR_7026_ELE_ENTRY_ASS_NOT_EXST');
2427: hr_utility.set_message_token('DATE',fnd_date.date_to_canonical(p_validation_start_date));
2428: hr_utility.raise_error;
2429: end;
2430: --
2431: end val_assignment;
2424: exception
2425: when no_data_found then
2426: hr_utility.set_message(801, 'HR_7026_ELE_ENTRY_ASS_NOT_EXST');
2427: hr_utility.set_message_token('DATE',fnd_date.date_to_canonical(p_validation_start_date));
2428: hr_utility.raise_error;
2429: end;
2430: --
2431: end val_assignment;
2432: --
2460: and el.effective_end_date;
2461: --
2462: exception
2463: when no_data_found then
2464: hr_utility.set_message(801, 'HR_7027_ELE_ENTRY_EL_NOT_EXST');
2465: hr_utility.set_message_token('DATE',fnd_date.date_to_canonical(p_validation_start_date));
2466: hr_utility.raise_error;
2467: end;
2468: --
2461: --
2462: exception
2463: when no_data_found then
2464: hr_utility.set_message(801, 'HR_7027_ELE_ENTRY_EL_NOT_EXST');
2465: hr_utility.set_message_token('DATE',fnd_date.date_to_canonical(p_validation_start_date));
2466: hr_utility.raise_error;
2467: end;
2468: --
2469: end val_element_link;
2462: exception
2463: when no_data_found then
2464: hr_utility.set_message(801, 'HR_7027_ELE_ENTRY_EL_NOT_EXST');
2465: hr_utility.set_message_token('DATE',fnd_date.date_to_canonical(p_validation_start_date));
2466: hr_utility.raise_error;
2467: end;
2468: --
2469: end val_element_link;
2470: --
2510: where cst.cost_allocation_keyflex_id = p_cost_allocation_keyflex_id;
2511: --
2512: exception
2513: when no_data_found then
2514: hr_utility.set_message(801, 'HR_7028_ELE_ENTRY_CA_NOT_EXST');
2515: hr_utility.raise_error;
2516: end;
2517: --
2518: -- Bugfix 2667184
2511: --
2512: exception
2513: when no_data_found then
2514: hr_utility.set_message(801, 'HR_7028_ELE_ENTRY_CA_NOT_EXST');
2515: hr_utility.raise_error;
2516: end;
2517: --
2518: -- Bugfix 2667184
2519: -- Ensure p_cost_allocation_keyflex_id belongs to cost_allocation_structure
2523: , g_asg_info.business_group_id);
2524: fetch csr_valid_id_flex_num into v_exists;
2525: if csr_valid_id_flex_num%notfound then
2526: close csr_valid_id_flex_num;
2527: hr_utility.set_message(801,'HR_33130_INV_COST_ALLOC_KF');
2528: hr_utility.raise_error;
2529: else
2530: close csr_valid_id_flex_num;
2531: end if;
2524: fetch csr_valid_id_flex_num into v_exists;
2525: if csr_valid_id_flex_num%notfound then
2526: close csr_valid_id_flex_num;
2527: hr_utility.set_message(801,'HR_33130_INV_COST_ALLOC_KF');
2528: hr_utility.raise_error;
2529: else
2530: close csr_valid_id_flex_num;
2531: end if;
2532: --
2558: where com.comment_id = p_comment_id;
2559: --
2560: exception
2561: when no_data_found then
2562: hr_utility.set_message(801, 'HR_7029_ELE_ENTRY_CMT_NOT_EXST');
2563: hr_utility.raise_error;
2564: end;
2565: --
2566: end val_comment;
2559: --
2560: exception
2561: when no_data_found then
2562: hr_utility.set_message(801, 'HR_7029_ELE_ENTRY_CMT_NOT_EXST');
2563: hr_utility.raise_error;
2564: end;
2565: --
2566: end val_comment;
2567: --
2608: and ee.effective_end_date;
2609: --
2610: exception
2611: when no_data_found then
2612: hr_utility.set_message(801, 'HR_7030_ELE_ENTRY_INV_ADJ');
2613: hr_utility.raise_error;
2614: end;
2615: --
2616: end val_adjustment;
2609: --
2610: exception
2611: when no_data_found then
2612: hr_utility.set_message(801, 'HR_7030_ELE_ENTRY_INV_ADJ');
2613: hr_utility.raise_error;
2614: end;
2615: --
2616: end val_adjustment;
2617: --
2677: --
2678: begin
2679: --
2680: if g_debug then
2681: hr_utility.set_location('Entering: '||l_proc, 5);
2682: end if;
2683:
2684: begin
2685: --
2691:
2692: elsif p_entry_type = 'E' then
2693:
2694: if g_debug then
2695: hr_utility.set_location(l_proc, 20);
2696: end if;
2697:
2698: select 1
2699: into v_number_variable
2718:
2719: elsif p_entry_type = 'B' then
2720:
2721: if g_debug then
2722: hr_utility.set_location(l_proc, 30);
2723: end if;
2724:
2725: open csr_adj_orig_entry;
2726: fetch csr_adj_orig_entry into v_number_variable;
2731: close csr_adj_orig_entry;
2732:
2733: else
2734: if g_debug then
2735: hr_utility.set_location(l_proc, 40);
2736: end if;
2737:
2738: raise no_data_found;
2739: end if;
2740:
2741: --
2742: exception
2743: when no_data_found then
2744: hr_utility.set_message(801, 'HR_7031_ELE_ENTRY_OE_INVLD');
2745: hr_utility.raise_error;
2746: end;
2747:
2748: if g_debug then
2741: --
2742: exception
2743: when no_data_found then
2744: hr_utility.set_message(801, 'HR_7031_ELE_ENTRY_OE_INVLD');
2745: hr_utility.raise_error;
2746: end;
2747:
2748: if g_debug then
2749: hr_utility.set_location('Leaving: '||l_proc, 80);
2745: hr_utility.raise_error;
2746: end;
2747:
2748: if g_debug then
2749: hr_utility.set_location('Leaving: '||l_proc, 80);
2750: end if;
2751: --
2752: end val_original_entry;
2753: --
2782: nvl(hl.start_date_active,p_effective_date) and nvl(hl.end_date_active,p_effective_date);
2783: --
2784: exception
2785: when no_data_found then
2786: hr_utility.set_message(801, 'HR_7032_ELE_ENTRY_INV_REASON');
2787: hr_utility.raise_error;
2788: end;
2789: --
2790: end val_reason;
2783: --
2784: exception
2785: when no_data_found then
2786: hr_utility.set_message(801, 'HR_7032_ELE_ENTRY_INV_REASON');
2787: hr_utility.raise_error;
2788: end;
2789: --
2790: end val_reason;
2791: --
2836: l_counter number;
2837: --
2838: BEGIN
2839: --
2840: g_debug := hr_utility.debug_enabled;
2841: --
2842: if g_debug then
2843: hr_utility.set_location(
2844: 'Entering hr_entry_api.derive_all_entry_values_null', 5
2839: --
2840: g_debug := hr_utility.debug_enabled;
2841: --
2842: if g_debug then
2843: hr_utility.set_location(
2844: 'Entering hr_entry_api.derive_all_entry_values_null', 5
2845: );
2846: end if;
2847: --
2849: --
2850: if p_entry_value_tbl.COUNT > 0 then
2851: --
2852: if g_debug then
2853: hr_utility.set_location('derive_all_entry_values_null', 10);
2854: end if;
2855: --
2856: l_counter := 1;
2857: --
2866: --
2867: exit when p_entry_value_tbl(l_counter) is not null;
2868: --
2869: if g_debug then
2870: hr_utility.set_location('derive_all_entry_values_null', 15);
2871: hr_utility.trace('| Entry value '||to_char(l_counter)||' is null.');
2872: end if;
2873: --
2874: if l_counter = p_entry_value_tbl.COUNT then
2867: exit when p_entry_value_tbl(l_counter) is not null;
2868: --
2869: if g_debug then
2870: hr_utility.set_location('derive_all_entry_values_null', 15);
2871: hr_utility.trace('| Entry value '||to_char(l_counter)||' is null.');
2872: end if;
2873: --
2874: if l_counter = p_entry_value_tbl.COUNT then
2875: --
2877: -- Therefore all the previous entry values must be
2878: -- null too (otherwise we would have exited the loop).
2879: --
2880: if g_debug then
2881: hr_utility.set_location('derive_all_entry_values_null', 20);
2882: hr_utility.trace('| All entry values are null');
2883: end if;
2884: --
2885: l_all_entry_values_null := 'Y';
2878: -- null too (otherwise we would have exited the loop).
2879: --
2880: if g_debug then
2881: hr_utility.set_location('derive_all_entry_values_null', 20);
2882: hr_utility.trace('| All entry values are null');
2883: end if;
2884: --
2885: l_all_entry_values_null := 'Y';
2886: --
2894: --
2895: -- There are no entry values for this element entry.
2896: --
2897: if g_debug then
2898: hr_utility.set_location('derive_all_entry_values_null', 25);
2899: hr_utility.trace('| No entry values exist');
2900: end if;
2901: --
2902: l_all_entry_values_null := null;
2895: -- There are no entry values for this element entry.
2896: --
2897: if g_debug then
2898: hr_utility.set_location('derive_all_entry_values_null', 25);
2899: hr_utility.trace('| No entry values exist');
2900: end if;
2901: --
2902: l_all_entry_values_null := null;
2903: --
2903: --
2904: end if;
2905: --
2906: if g_debug then
2907: hr_utility.set_location('Leaving: derive_all_entry_values_null', 900);
2908: hr_utility.trace('| Returning l_all_entry_values_null: '||nvl(l_all_entry_values_null,'NULL'));
2909: end if;
2910: --
2911: return l_all_entry_values_null;
2904: end if;
2905: --
2906: if g_debug then
2907: hr_utility.set_location('Leaving: derive_all_entry_values_null', 900);
2908: hr_utility.trace('| Returning l_all_entry_values_null: '||nvl(l_all_entry_values_null,'NULL'));
2909: end if;
2910: --
2911: return l_all_entry_values_null;
2912: --
3797: appl_short_name => 'PAY',
3798: flexfield_name => 'Element Entry Developer DF') then
3799:
3800: if g_debug then
3801: hr_utility.trace('| element entry DDFF defined');
3802: hr_utility.trace('| p_entry_information_category' ||
3803: p_entry_information_category || '<');
3804: end if;
3805:
3798: flexfield_name => 'Element Entry Developer DF') then
3799:
3800: if g_debug then
3801: hr_utility.trace('| element entry DDFF defined');
3802: hr_utility.trace('| p_entry_information_category' ||
3803: p_entry_information_category || '<');
3804: end if;
3805:
3806: --
3813: p_flexfield_name => 'Element Entry Developer DF',
3814: p_context_code => p_entry_information_category) then
3815:
3816: if g_debug then
3817: hr_utility.trace('| element entry context in use, do validation');
3818: end if;
3819:
3820: hr_entry_api.ddf_insert_validate(
3821: p_entry_information_category,
4181: for new_vals in pay_ele_shd.csr_get_eevals(p_element_entry_id,l_effective_date) loop
4182: begin
4183: --
4184: if g_debug then
4185: hr_utility.trace(' Hard call PAY_DYT_ELEMENT_ENTRY_VAL_PKG.after_insert');
4186: hr_utility.trace(' Ele ent Val ID: '||new_vals.element_entry_value_id);
4187: hr_utility.trace(' New Screen Val: '||new_vals.screen_entry_value);
4188: end if;
4189:
4182: begin
4183: --
4184: if g_debug then
4185: hr_utility.trace(' Hard call PAY_DYT_ELEMENT_ENTRY_VAL_PKG.after_insert');
4186: hr_utility.trace(' Ele ent Val ID: '||new_vals.element_entry_value_id);
4187: hr_utility.trace(' New Screen Val: '||new_vals.screen_entry_value);
4188: end if;
4189:
4190: -- Reason Insert has seemingly irregular parameters is that as
4183: --
4184: if g_debug then
4185: hr_utility.trace(' Hard call PAY_DYT_ELEMENT_ENTRY_VAL_PKG.after_insert');
4186: hr_utility.trace(' Ele ent Val ID: '||new_vals.element_entry_value_id);
4187: hr_utility.trace(' New Screen Val: '||new_vals.screen_entry_value);
4188: end if;
4189:
4190: -- Reason Insert has seemingly irregular parameters is that as
4191: -- element entry values has no hook packages, the generator util of the called
4309: v_input_value_id_tbl hr_entry.number_table;
4310: v_entry_value_tbl hr_entry.varchar2_table;
4311: --
4312: begin
4313: g_debug := hr_utility.debug_enabled;
4314:
4315: --
4316: -- Initialise variables
4317: --
4525: v_input_value_id_tbl hr_entry.number_table;
4526: v_entry_value_tbl hr_entry.varchar2_table;
4527: --
4528: begin
4529: g_debug := hr_utility.debug_enabled;
4530: --
4531: -- Call code to set up values that may be used in
4532: -- Formula validation of Input Values.
4533: --
4774: v_input_value_id_tbl hr_entry.number_table;
4775: v_entry_value_tbl hr_entry.varchar2_table;
4776: --
4777: begin
4778: g_debug := hr_utility.debug_enabled;
4779: --
4780: -- Initialise variables
4781: --
4782: g_override_user_ent_chk := p_override_user_ent_chk;
5024: v_input_value_id_tbl hr_entry.number_table;
5025: v_entry_value_tbl hr_entry.varchar2_table;
5026: --
5027: begin
5028: g_debug := hr_utility.debug_enabled;
5029: --
5030: -- Call code to set up values that may be used in
5031: -- Formula validation of Input Values.
5032: --
5196: procedure check_parameters is
5197: --
5198: begin
5199: --
5200: hr_utility.trace('check_salary_admin_updates');
5201: hr_api.mandatory_arg_error (
5202: p_api_name => l_proc,
5203: p_argument => 'p_dt_update_mode',
5204: p_argument_value=> p_dt_update_mode);
5305: --
5306: -- The entry attributes for salary admin entries may be updated only
5307: -- in UPDATE_CHANGE_INSERT and CORRECTION datetrack modes.
5308: --
5309: hr_utility.set_message (801,'HR_51182_SAL_DT_MODE');
5310: hr_utility.raise_error;
5311: --
5312: when invalid_element_entry_id then
5313: --
5306: -- The entry attributes for salary admin entries may be updated only
5307: -- in UPDATE_CHANGE_INSERT and CORRECTION datetrack modes.
5308: --
5309: hr_utility.set_message (801,'HR_51182_SAL_DT_MODE');
5310: hr_utility.raise_error;
5311: --
5312: when invalid_element_entry_id then
5313: --
5314: -- The update is for a non-existent element entry
5312: when invalid_element_entry_id then
5313: --
5314: -- The update is for a non-existent element entry
5315: --
5316: hr_utility.set_message (801,'HR_6153_ALL_PROCEDURE_FAIL');
5317: hr_utility.set_message_token ('PROCEDURE', l_proc);
5318: hr_utility.set_message_token ('STEP','1');
5319: hr_utility.raise_error;
5320: --
5313: --
5314: -- The update is for a non-existent element entry
5315: --
5316: hr_utility.set_message (801,'HR_6153_ALL_PROCEDURE_FAIL');
5317: hr_utility.set_message_token ('PROCEDURE', l_proc);
5318: hr_utility.set_message_token ('STEP','1');
5319: hr_utility.raise_error;
5320: --
5321: end check_salary_admin_updates;
5314: -- The update is for a non-existent element entry
5315: --
5316: hr_utility.set_message (801,'HR_6153_ALL_PROCEDURE_FAIL');
5317: hr_utility.set_message_token ('PROCEDURE', l_proc);
5318: hr_utility.set_message_token ('STEP','1');
5319: hr_utility.raise_error;
5320: --
5321: end check_salary_admin_updates;
5322: ------------------------------------------------------------------------------
5315: --
5316: hr_utility.set_message (801,'HR_6153_ALL_PROCEDURE_FAIL');
5317: hr_utility.set_message_token ('PROCEDURE', l_proc);
5318: hr_utility.set_message_token ('STEP','1');
5319: hr_utility.raise_error;
5320: --
5321: end check_salary_admin_updates;
5322: ------------------------------------------------------------------------------
5323: -- NAME --
5515: and p_session_date between et.effective_start_date
5516: and et.effective_end_date;
5517: exception
5518: when no_data_found then
5519: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
5520: hr_utility.set_message_token('PROCEDURE',
5521: 'hr_entry_api.upd_ele_entry_param_val');
5522: hr_utility.set_message_token('STEP','1');
5523: hr_utility.raise_error;
5516: and et.effective_end_date;
5517: exception
5518: when no_data_found then
5519: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
5520: hr_utility.set_message_token('PROCEDURE',
5521: 'hr_entry_api.upd_ele_entry_param_val');
5522: hr_utility.set_message_token('STEP','1');
5523: hr_utility.raise_error;
5524: end;
5518: when no_data_found then
5519: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
5520: hr_utility.set_message_token('PROCEDURE',
5521: 'hr_entry_api.upd_ele_entry_param_val');
5522: hr_utility.set_message_token('STEP','1');
5523: hr_utility.raise_error;
5524: end;
5525: --
5526: -- If specified make sure cost allocation exists
5519: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
5520: hr_utility.set_message_token('PROCEDURE',
5521: 'hr_entry_api.upd_ele_entry_param_val');
5522: hr_utility.set_message_token('STEP','1');
5523: hr_utility.raise_error;
5524: end;
5525: --
5526: -- If specified make sure cost allocation exists
5527: --
5913: --
5914:
5915: begin
5916: --
5917: g_debug := hr_utility.debug_enabled;
5918: --
5919: -- bug 666197, retrieve and store old values for the entry row
5920: --
5921: begin
5998: ,l_all_entry_values_null_o;
5999: close csr_old_entry_values;
6000: exception
6001: when no_data_found then
6002: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
6003: hr_utility.set_message_token('PROCEDURE','hr_entry_api.upd_element_entry');
6004: hr_utility.set_message_token('STEP','10');
6005: hr_utility.raise_error;
6006: end;
5999: close csr_old_entry_values;
6000: exception
6001: when no_data_found then
6002: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
6003: hr_utility.set_message_token('PROCEDURE','hr_entry_api.upd_element_entry');
6004: hr_utility.set_message_token('STEP','10');
6005: hr_utility.raise_error;
6006: end;
6007: -- If the entry row is to be checked for a changed attribute then
6000: exception
6001: when no_data_found then
6002: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
6003: hr_utility.set_message_token('PROCEDURE','hr_entry_api.upd_element_entry');
6004: hr_utility.set_message_token('STEP','10');
6005: hr_utility.raise_error;
6006: end;
6007: -- If the entry row is to be checked for a changed attribute then
6008: -- check to see if the entry row is being changed.
6001: when no_data_found then
6002: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
6003: hr_utility.set_message_token('PROCEDURE','hr_entry_api.upd_element_entry');
6004: hr_utility.set_message_token('STEP','10');
6005: hr_utility.raise_error;
6006: end;
6007: -- If the entry row is to be checked for a changed attribute then
6008: -- check to see if the entry row is being changed.
6009: --
6239: appl_short_name => 'PAY',
6240: flexfield_name => 'Element Entry Developer DF') then
6241:
6242: if g_debug then
6243: hr_utility.trace('| element entry DDFF defined');
6244: hr_utility.trace('| p_entry_information_category' ||
6245: p_entry_information_category || '<');
6246: end if;
6247:
6240: flexfield_name => 'Element Entry Developer DF') then
6241:
6242: if g_debug then
6243: hr_utility.trace('| element entry DDFF defined');
6244: hr_utility.trace('| p_entry_information_category' ||
6245: p_entry_information_category || '<');
6246: end if;
6247:
6248: --
6253: p_flexfield_name => 'Element Entry Developer DF',
6254: p_context_code => p_entry_information_category) then
6255:
6256: if g_debug then
6257: hr_utility.trace('| element entry context in use, do validation');
6258: end if;
6259:
6260: hr_entry_api.ddf_update_validate(
6261: p_entry_information_category => p_entry_information_category
6899: begin
6900: g_counter := g_counter + 1;
6901: --
6902: if g_debug then
6903: hr_utility.trace(' Hard call PAY_DYT_ELEMENT_ENTRY_VAL_PKG.after_update');
6904: hr_utility.trace(' Ele ent Val ID: '||new_vals.element_entry_value_id);
6905: hr_utility.trace(' New Screen Val: '||new_vals.screen_entry_value);
6906: hr_utility.trace(' Old Screen Val: '||l_old_val_tab(g_counter).screen_entry_value);
6907: end if;
6900: g_counter := g_counter + 1;
6901: --
6902: if g_debug then
6903: hr_utility.trace(' Hard call PAY_DYT_ELEMENT_ENTRY_VAL_PKG.after_update');
6904: hr_utility.trace(' Ele ent Val ID: '||new_vals.element_entry_value_id);
6905: hr_utility.trace(' New Screen Val: '||new_vals.screen_entry_value);
6906: hr_utility.trace(' Old Screen Val: '||l_old_val_tab(g_counter).screen_entry_value);
6907: end if;
6908:
6901: --
6902: if g_debug then
6903: hr_utility.trace(' Hard call PAY_DYT_ELEMENT_ENTRY_VAL_PKG.after_update');
6904: hr_utility.trace(' Ele ent Val ID: '||new_vals.element_entry_value_id);
6905: hr_utility.trace(' New Screen Val: '||new_vals.screen_entry_value);
6906: hr_utility.trace(' Old Screen Val: '||l_old_val_tab(g_counter).screen_entry_value);
6907: end if;
6908:
6909: PAY_DYT_ELEMENT_ENTRY_VAL_PKG.after_update
6902: if g_debug then
6903: hr_utility.trace(' Hard call PAY_DYT_ELEMENT_ENTRY_VAL_PKG.after_update');
6904: hr_utility.trace(' Ele ent Val ID: '||new_vals.element_entry_value_id);
6905: hr_utility.trace(' New Screen Val: '||new_vals.screen_entry_value);
6906: hr_utility.trace(' Old Screen Val: '||l_old_val_tab(g_counter).screen_entry_value);
6907: end if;
6908:
6909: PAY_DYT_ELEMENT_ENTRY_VAL_PKG.after_update
6910: (
6932: end;
6933: --
6934: end loop;
6935: end if;
6936: hr_utility.set_location('Leaving: upd_element_entry', 900);
6937:
6938: end upd_element_entry;
6939: --
6940:
7038: pee.effective_start_date and pee.effective_end_date
7039: ;
7040: --
7041: begin
7042: g_debug := hr_utility.debug_enabled;
7043: --
7044: g_override_user_ent_chk := p_override_user_ent_chk;
7045: v_num_entry_values := p_num_entry_values;
7046: v_input_value_id_tbl := p_input_value_id_tbl;
7266: pee.effective_start_date and pee.effective_end_date
7267: ;
7268: --
7269: begin
7270: g_debug := hr_utility.debug_enabled;
7271: --
7272: OPEN csr_entry_type(p_element_entry_id, p_session_date);
7273: FETCH csr_entry_type INTO l_entry_type, v_assignment_id;
7274: CLOSE csr_entry_type;
7530: pee.effective_start_date and pee.effective_end_date
7531: ;
7532: --
7533: begin
7534: g_debug := hr_utility.debug_enabled;
7535: --
7536: g_override_user_ent_chk := p_override_user_ent_chk;
7537: v_num_entry_values := p_num_entry_values;
7538: v_input_value_id_tbl := p_input_value_id_tbl;
7790: pee.effective_start_date and pee.effective_end_date
7791: ;
7792: --
7793: begin
7794: g_debug := hr_utility.debug_enabled;
7795: --
7796: OPEN csr_entry_type(p_element_entry_id, p_session_date);
7797: FETCH csr_entry_type INTO l_entry_type, v_assignment_id;
7798: CLOSE csr_entry_type;
8018: and p_session_date between et.effective_start_date
8019: and et.effective_end_date;
8020: exception
8021: when no_data_found then
8022: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
8023: hr_utility.set_message_token('PROCEDURE',
8024: 'hr_entry_api.delete_element_entry');
8025: hr_utility.set_message_token('STEP','1');
8026: hr_utility.raise_error;
8019: and et.effective_end_date;
8020: exception
8021: when no_data_found then
8022: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
8023: hr_utility.set_message_token('PROCEDURE',
8024: 'hr_entry_api.delete_element_entry');
8025: hr_utility.set_message_token('STEP','1');
8026: hr_utility.raise_error;
8027: when too_many_rows then
8021: when no_data_found then
8022: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
8023: hr_utility.set_message_token('PROCEDURE',
8024: 'hr_entry_api.delete_element_entry');
8025: hr_utility.set_message_token('STEP','1');
8026: hr_utility.raise_error;
8027: when too_many_rows then
8028: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
8029: hr_utility.set_message_token('PROCEDURE',
8022: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
8023: hr_utility.set_message_token('PROCEDURE',
8024: 'hr_entry_api.delete_element_entry');
8025: hr_utility.set_message_token('STEP','1');
8026: hr_utility.raise_error;
8027: when too_many_rows then
8028: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
8029: hr_utility.set_message_token('PROCEDURE',
8030: 'hr_entry_api.delete_element_entry');
8024: 'hr_entry_api.delete_element_entry');
8025: hr_utility.set_message_token('STEP','1');
8026: hr_utility.raise_error;
8027: when too_many_rows then
8028: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
8029: hr_utility.set_message_token('PROCEDURE',
8030: 'hr_entry_api.delete_element_entry');
8031: hr_utility.set_message_token('STEP','2');
8032: hr_utility.raise_error;
8025: hr_utility.set_message_token('STEP','1');
8026: hr_utility.raise_error;
8027: when too_many_rows then
8028: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
8029: hr_utility.set_message_token('PROCEDURE',
8030: 'hr_entry_api.delete_element_entry');
8031: hr_utility.set_message_token('STEP','2');
8032: hr_utility.raise_error;
8033: end;
8027: when too_many_rows then
8028: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
8029: hr_utility.set_message_token('PROCEDURE',
8030: 'hr_entry_api.delete_element_entry');
8031: hr_utility.set_message_token('STEP','2');
8032: hr_utility.raise_error;
8033: end;
8034: --
8035: p_entry_rec := v_entry_rec;
8028: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
8029: hr_utility.set_message_token('PROCEDURE',
8030: 'hr_entry_api.delete_element_entry');
8031: hr_utility.set_message_token('STEP','2');
8032: hr_utility.raise_error;
8033: end;
8034: --
8035: p_entry_rec := v_entry_rec;
8036: --
8452: --
8453: end processed;
8454: --
8455: begin
8456: g_debug := hr_utility.debug_enabled;
8457: --
8458: if g_debug then
8459: hr_utility.set_location('hr_entry_api.delete_element_entry', 5);
8460: end if;
8455: begin
8456: g_debug := hr_utility.debug_enabled;
8457: --
8458: if g_debug then
8459: hr_utility.set_location('hr_entry_api.delete_element_entry', 5);
8460: end if;
8461: --
8462: -- bug 666197, retrieve and store old values for the entry row
8463: --
8510: ,l_all_entry_values_null_o;
8511: close csr_old_entry_values;
8512: exception
8513: when no_data_found then
8514: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
8515: hr_utility.set_message_token('PROCEDURE','hr_entry_api.upd_element_entry');
8516: hr_utility.set_message_token('STEP','10');
8517: hr_utility.raise_error;
8518: end;
8511: close csr_old_entry_values;
8512: exception
8513: when no_data_found then
8514: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
8515: hr_utility.set_message_token('PROCEDURE','hr_entry_api.upd_element_entry');
8516: hr_utility.set_message_token('STEP','10');
8517: hr_utility.raise_error;
8518: end;
8519: --
8512: exception
8513: when no_data_found then
8514: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
8515: hr_utility.set_message_token('PROCEDURE','hr_entry_api.upd_element_entry');
8516: hr_utility.set_message_token('STEP','10');
8517: hr_utility.raise_error;
8518: end;
8519: --
8520: --
8513: when no_data_found then
8514: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
8515: hr_utility.set_message_token('PROCEDURE','hr_entry_api.upd_element_entry');
8516: hr_utility.set_message_token('STEP','10');
8517: hr_utility.raise_error;
8518: end;
8519: --
8520: --
8521: -- Validate the parameter and return element entry details.
8547: --
8548: if v_dt_delete_mode = 'DELETE_NEXT_CHANGE' then
8549: --
8550: if g_debug then
8551: hr_utility.set_location('hr_entry_api.delete_element_entry', 15);
8552: end if;
8553: --
8554: begin
8555: select min(ee.effective_end_date)
8586: -- for purge. We check this here because the v_dt_delete_mode
8587: -- can be changed by the previous call.
8588: --
8589: if g_debug then
8590: hr_utility.set_location('hr_entry_api.delete_element_entry', 18);
8591: end if;
8592: -- Start by reading the value.
8593: fnd_profile.get('HR_ELE_ENTRY_PURGE_CONTROL', l_prof_value);
8594: --
8598: (l_prof_value = 'N' or
8599: (l_prof_value = 'I' and v_entry_rec.non_payments_flag = 'N'))
8600: then
8601: -- We need to raise error that are attempting to purge.
8602: hr_utility.set_message (800,'HR_33000_ENTRY_CANT_PURGE');
8603: hr_utility.raise_error;
8604: end if;
8605: --
8606: -- Choose the extend of the entry to supply
8599: (l_prof_value = 'I' and v_entry_rec.non_payments_flag = 'N'))
8600: then
8601: -- We need to raise error that are attempting to purge.
8602: hr_utility.set_message (800,'HR_33000_ENTRY_CANT_PURGE');
8603: hr_utility.raise_error;
8604: end if;
8605: --
8606: -- Choose the extend of the entry to supply
8607: -- the validation start and end dates.
8617: --
8618: end if;
8619: --
8620: if g_debug then
8621: hr_utility.set_location('hr_entry_api.delete_element_entry', 20);
8622: end if;
8623: --
8624: -- Make sure the delete is valid.
8625: --
8636: v_validation_start_date,
8637: v_entry_rec.assignment_id)
8638: --
8639: then
8640: hr_utility.set_message (801,'HR_7798_ENTRY_PPM_RUN_RESULT');
8641: hr_utility.raise_error;
8642: --
8643: end if;
8644: --
8637: v_entry_rec.assignment_id)
8638: --
8639: then
8640: hr_utility.set_message (801,'HR_7798_ENTRY_PPM_RUN_RESULT');
8641: hr_utility.raise_error;
8642: --
8643: end if;
8644: --
8645: */
8690: open csr_accepted_pay_proposals(p_element_entry_id,
8691: v_entry_rec.assignment_id);
8692: --
8693: if g_debug then
8694: hr_utility.set_location('hr_entry_api.delete_element_entry', 25);
8695: end if;
8696: --
8697: -- Trigger workload shifting if change to element entry overlaps with the
8698: -- latest payroll run for the assignment and workload shifting is enabled.
8711: --
8712: if v_dt_delete_mode = 'DELETE' or p_dt_delete_mode = 'ZAP' then
8713: --
8714: if g_debug then
8715: hr_utility.set_location('hr_entry_api.delete_element_entry', 30);
8716: end if;
8717: --
8718: -- Enhancement 3368211
8719: --
8751: --
8752: if v_dt_delete_mode = 'DELETE_NEXT_CHANGE' then
8753: --
8754: if g_debug then
8755: hr_utility.set_location('hr_entry_api.delete_element_entry', 40);
8756: end if;
8757: --
8758: delete from pay_element_entries_f ee
8759: where ee.element_entry_id = p_element_entry_id
8772: --
8773: elsif v_dt_delete_mode = 'FUTURE_CHANGE' then
8774: --
8775: if g_debug then
8776: hr_utility.set_location('hr_entry_api.delete_element_entry', 45);
8777: end if;
8778: --
8779: delete from pay_element_entries_f ee
8780: where ee.element_entry_id = p_element_entry_id
8790: --
8791: elsif v_dt_delete_mode = 'DELETE' then
8792: --
8793: if g_debug then
8794: hr_utility.set_location('hr_entry_api.delete_element_entry', 50);
8795: end if;
8796: --
8797: delete from pay_element_entries_f ee
8798: where ee.element_entry_id = p_element_entry_id
8808: --
8809: elsif v_dt_delete_mode = 'ZAP' then
8810: --
8811: if g_debug then
8812: hr_utility.set_location('hr_entry_api.delete_element_entry', 55);
8813: end if;
8814: --
8815: -- For Zap mode, delete any balance exclusions rows for the entry
8816: --
8825: l_effective_start_date_o := v_validation_start_date;
8826: end if;
8827: --
8828: if g_debug then
8829: hr_utility.set_location('hr_entry_api.delete_element_entry', 60);
8830: end if;
8831: --
8832: -- Delete element entry values
8833: --
8845: v_validation_start_date,
8846: v_validation_end_date);
8847: --
8848: if g_debug then
8849: hr_utility.set_location('hr_entry_api.delete_element_entry', 65);
8850: end if;
8851: --
8852: -- Go through list of accepted pay proposals for the assignment /
8853: -- element entry to see if any of the pay proosals have lost the element
8891: --v_dt_delete_mode in ('DELETE_NEXT_CHANGE','FUTURE_CHANGE') then
8892: v_dt_delete_mode in ('DELETE_NEXT_CHANGE','FUTURE_CHANGE','DELETE') then
8893: --
8894: if g_debug then
8895: hr_utility.set_location('hr_entry_api.delete_element_entry', 67);
8896: end if;
8897: --
8898: -- We do not wish to continue processing
8899: --
9019: end;
9020: --
9021: --
9022: if g_debug then
9023: hr_utility.set_location('hr_entry_api.delete_element_entry', 70);
9024: end if;
9025: --
9026:
9027: --
9035: -- 2) Now make a call to PAY_DYT_ELEMENT_ENTRY_VAL_PKG.after_delete
9036: -- -use current values if end dated or nulls if row has been blown away
9037: --
9038: if g_debug then
9039: hr_utility.trace(' NO Hard call PAY_DYT_ELEMENT_ENTRY_VAL_PKG.after_delete');
9040: hr_utility.set_location('Leaving: delete_element_entry', 900);
9041: end if;
9042:
9043: end delete_element_entry;
9036: -- -use current values if end dated or nulls if row has been blown away
9037: --
9038: if g_debug then
9039: hr_utility.trace(' NO Hard call PAY_DYT_ELEMENT_ENTRY_VAL_PKG.after_delete');
9040: hr_utility.set_location('Leaving: delete_element_entry', 900);
9041: end if;
9042:
9043: end delete_element_entry;
9044: --