177: end if;
178: END set_error_level;
179:
180: PROCEDURE delete_prev_val_errors (
181: p_batch_id IN hxt_timecards_f.batch_id%TYPE
182: )
183: AS
184: l_proc VARCHAR2 (72) ;
185: BEGIN
198: || l_proc, 20);
199: end if;
200: END delete_prev_val_errors;
201:
202: PROCEDURE delete_prev_val_errors (p_tim_id IN hxt_timecards_f.id%TYPE)
203: AS
204: l_proc VARCHAR2 (72) ;
205: BEGIN
206: g_debug :=hr_utility.debug_enabled;
218: || l_proc, 20);
219: end if;
220: END delete_prev_val_errors;
221:
222: FUNCTION errors_exist (p_tim_id IN hxt_timecards.id%TYPE)
223: RETURN BOOLEAN
224: AS
225: l_proc VARCHAR2 (72) ;
226:
223: RETURN BOOLEAN
224: AS
225: l_proc VARCHAR2 (72) ;
226:
227: CURSOR find_errors (p_tim_id hxt_timecards.id%TYPE)
228: IS
229: SELECT 1
230: FROM hxt_errors_x
231: WHERE tim_id = p_tim_id;
264: end if;
265: RETURN l_error_exist;
266: END errors_exist;
267:
268: FUNCTION timecard_end_date (p_tim_id IN hxt_timecards_f.id%TYPE)
269: RETURN per_time_periods.end_date%TYPE
270: AS
271: l_proc VARCHAR2 (72) ;
272:
269: RETURN per_time_periods.end_date%TYPE
270: AS
271: l_proc VARCHAR2 (72) ;
272:
273: CURSOR csr_timecard_end_date (p_tim_id hxt_timecards_f.id%TYPE)
274: IS
275: SELECT ptp.end_date
276: FROM per_time_periods ptp, hxt_timecards_x htx
277: WHERE ptp.time_period_id = htx.time_period_id AND htx.id = p_tim_id;
272:
273: CURSOR csr_timecard_end_date (p_tim_id hxt_timecards_f.id%TYPE)
274: IS
275: SELECT ptp.end_date
276: FROM per_time_periods ptp, hxt_timecards_x htx
277: WHERE ptp.time_period_id = htx.time_period_id AND htx.id = p_tim_id;
278:
279: l_tc_end_dt per_time_periods.end_date%TYPE;
280: BEGIN
298: END timecard_end_date;
299:
300: FUNCTION person_effective_at_tc_end (
301: p_person_id IN per_people_f.person_id%TYPE,
302: p_tim_id IN hxt_timecards.id%TYPE
303: )
304: RETURN BOOLEAN
305: IS
306: l_proc VARCHAR2 (72);
358: END person_effective_at_tc_end;
359:
360: PROCEDURE record_error (
361: p_batch_id IN NUMBER,
362: p_period_id IN hxt_timecards.time_period_id%TYPE,
363: p_tim_id IN hxt_timecards.id%TYPE,
364: p_error_code IN VARCHAR2
365: )
366: AS
359:
360: PROCEDURE record_error (
361: p_batch_id IN NUMBER,
362: p_period_id IN hxt_timecards.time_period_id%TYPE,
363: p_tim_id IN hxt_timecards.id%TYPE,
364: p_error_code IN VARCHAR2
365: )
366: AS
367: l_proc VARCHAR2 (72) ;
398: END record_error;
399:
400: PROCEDURE person_validation (
401: p_batch_id IN NUMBER,
402: p_person_id IN hxt_timecards.for_person_id%TYPE,
403: p_period_id IN hxt_timecards.time_period_id%TYPE,
404: p_tim_id IN hxt_timecards.id%TYPE
405: )
406: AS
399:
400: PROCEDURE person_validation (
401: p_batch_id IN NUMBER,
402: p_person_id IN hxt_timecards.for_person_id%TYPE,
403: p_period_id IN hxt_timecards.time_period_id%TYPE,
404: p_tim_id IN hxt_timecards.id%TYPE
405: )
406: AS
407: l_proc VARCHAR2 (72) ;
400: PROCEDURE person_validation (
401: p_batch_id IN NUMBER,
402: p_person_id IN hxt_timecards.for_person_id%TYPE,
403: p_period_id IN hxt_timecards.time_period_id%TYPE,
404: p_tim_id IN hxt_timecards.id%TYPE
405: )
406: AS
407: l_proc VARCHAR2 (72) ;
408: l_error_msg VARCHAR2 (255);
466:
467: PROCEDURE excess_pto (
468: p_batch_id IN NUMBER,
469: p_calculation_date IN hxt_sum_hours_worked_x.date_worked%TYPE,
470: p_person_id IN hxt_timecards.for_person_id%TYPE,
471: p_period_id IN hxt_timecards.time_period_id%TYPE,
472: p_tim_id IN hxt_timecards.id%TYPE
473: )
474: IS
467: PROCEDURE excess_pto (
468: p_batch_id IN NUMBER,
469: p_calculation_date IN hxt_sum_hours_worked_x.date_worked%TYPE,
470: p_person_id IN hxt_timecards.for_person_id%TYPE,
471: p_period_id IN hxt_timecards.time_period_id%TYPE,
472: p_tim_id IN hxt_timecards.id%TYPE
473: )
474: IS
475: l_proc VARCHAR2 (72) ;
468: p_batch_id IN NUMBER,
469: p_calculation_date IN hxt_sum_hours_worked_x.date_worked%TYPE,
470: p_person_id IN hxt_timecards.for_person_id%TYPE,
471: p_period_id IN hxt_timecards.time_period_id%TYPE,
472: p_tim_id IN hxt_timecards.id%TYPE
473: )
474: IS
475: l_proc VARCHAR2 (72) ;
476: l_accrual_plan_name pay_accrual_plans.accrual_plan_name%TYPE;
772: END day_is_holiday;
773:
774: FUNCTION timecard_approved (
775: p_tim_id IN hxt_holiday_calendars.id%TYPE,
776: p_approver_id IN hxt_timecards_f.approv_person_id%TYPE,
777: p_source_flag IN hxt_timecards_f.auto_gen_flag%TYPE
778: )
779: RETURN BOOLEAN
780: IS
773:
774: FUNCTION timecard_approved (
775: p_tim_id IN hxt_holiday_calendars.id%TYPE,
776: p_approver_id IN hxt_timecards_f.approv_person_id%TYPE,
777: p_source_flag IN hxt_timecards_f.auto_gen_flag%TYPE
778: )
779: RETURN BOOLEAN
780: IS
781: l_proc VARCHAR2 (72) ;
818: END timecard_approved;
819:
820: PROCEDURE tcard_approved (
821: p_batch_id IN NUMBER,
822: p_person_id IN hxt_timecards.for_person_id%TYPE,
823: p_period_id IN hxt_timecards.time_period_id%TYPE,
824: p_tim_id IN hxt_timecards.id%TYPE,
825: p_approver_id IN hxt_timecards_f.approv_person_id%TYPE,
826: p_source_flag IN hxt_timecards_f.auto_gen_flag%TYPE
819:
820: PROCEDURE tcard_approved (
821: p_batch_id IN NUMBER,
822: p_person_id IN hxt_timecards.for_person_id%TYPE,
823: p_period_id IN hxt_timecards.time_period_id%TYPE,
824: p_tim_id IN hxt_timecards.id%TYPE,
825: p_approver_id IN hxt_timecards_f.approv_person_id%TYPE,
826: p_source_flag IN hxt_timecards_f.auto_gen_flag%TYPE
827: )
820: PROCEDURE tcard_approved (
821: p_batch_id IN NUMBER,
822: p_person_id IN hxt_timecards.for_person_id%TYPE,
823: p_period_id IN hxt_timecards.time_period_id%TYPE,
824: p_tim_id IN hxt_timecards.id%TYPE,
825: p_approver_id IN hxt_timecards_f.approv_person_id%TYPE,
826: p_source_flag IN hxt_timecards_f.auto_gen_flag%TYPE
827: )
828: IS
821: p_batch_id IN NUMBER,
822: p_person_id IN hxt_timecards.for_person_id%TYPE,
823: p_period_id IN hxt_timecards.time_period_id%TYPE,
824: p_tim_id IN hxt_timecards.id%TYPE,
825: p_approver_id IN hxt_timecards_f.approv_person_id%TYPE,
826: p_source_flag IN hxt_timecards_f.auto_gen_flag%TYPE
827: )
828: IS
829: l_proc VARCHAR2 (72) ;
822: p_person_id IN hxt_timecards.for_person_id%TYPE,
823: p_period_id IN hxt_timecards.time_period_id%TYPE,
824: p_tim_id IN hxt_timecards.id%TYPE,
825: p_approver_id IN hxt_timecards_f.approv_person_id%TYPE,
826: p_source_flag IN hxt_timecards_f.auto_gen_flag%TYPE
827: )
828: IS
829: l_proc VARCHAR2 (72) ;
830: l_accrual_plan_name pay_accrual_plans.accrual_plan_name%TYPE;
1037: END assignment_is_active;
1038:
1039: PROCEDURE inactive_emp_tcard (
1040: p_batch_id IN NUMBER,
1041: p_person_id IN hxt_timecards.for_person_id%TYPE,
1042: p_assignment_id IN per_all_assignments_f.assignment_id%TYPE,
1043: p_period_id IN hxt_timecards.time_period_id%TYPE,
1044: p_tim_id IN hxt_timecards.id%TYPE,
1045: p_day IN DATE
1039: PROCEDURE inactive_emp_tcard (
1040: p_batch_id IN NUMBER,
1041: p_person_id IN hxt_timecards.for_person_id%TYPE,
1042: p_assignment_id IN per_all_assignments_f.assignment_id%TYPE,
1043: p_period_id IN hxt_timecards.time_period_id%TYPE,
1044: p_tim_id IN hxt_timecards.id%TYPE,
1045: p_day IN DATE
1046: )
1047: IS
1040: p_batch_id IN NUMBER,
1041: p_person_id IN hxt_timecards.for_person_id%TYPE,
1042: p_assignment_id IN per_all_assignments_f.assignment_id%TYPE,
1043: p_period_id IN hxt_timecards.time_period_id%TYPE,
1044: p_tim_id IN hxt_timecards.id%TYPE,
1045: p_day IN DATE
1046: )
1047: IS
1048: l_proc VARCHAR2 (72) ;
1185: end if;
1186: END get_holiday_info;
1187:
1188: FUNCTION sum_unexploded_hours (
1189: p_tim_id IN hxt_timecards.id%TYPE,
1190: p_day IN hxt_det_hours_worked_f.date_worked%TYPE,
1191: p_hours_type IN hxt_det_hours_worked_f.hours%TYPE DEFAULT NULL
1192: )
1193: RETURN NUMBER
1198: -- .If an hours type is passed in we only sum those hours
1199: -- .If no hours type is passed in we sum all hours, with our without
1200: -- hours override
1201: CURSOR csr_sum_hours (
1202: p_tim_id IN hxt_timecards.id%TYPE,
1203: p_day hxt_det_hours_worked_f.date_worked%TYPE,
1204: p_hours_type hxt_det_hours_worked_f.hours%TYPE
1205: )
1206: IS
1236: END sum_unexploded_hours;
1237:
1238: PROCEDURE holiday_mismatch (
1239: p_batch_id IN NUMBER,
1240: p_person_id IN hxt_timecards.for_person_id%TYPE,
1241: p_period_id IN hxt_timecards.time_period_id%TYPE,
1242: p_tim_id IN hxt_timecards.id%TYPE,
1243: p_day IN DATE,
1244: p_hours_type IN hxt_sum_hours_worked_f.element_type_id%TYPE,
1237:
1238: PROCEDURE holiday_mismatch (
1239: p_batch_id IN NUMBER,
1240: p_person_id IN hxt_timecards.for_person_id%TYPE,
1241: p_period_id IN hxt_timecards.time_period_id%TYPE,
1242: p_tim_id IN hxt_timecards.id%TYPE,
1243: p_day IN DATE,
1244: p_hours_type IN hxt_sum_hours_worked_f.element_type_id%TYPE,
1245: p_hol_cal_id IN hxt_holiday_calendars.id%TYPE
1238: PROCEDURE holiday_mismatch (
1239: p_batch_id IN NUMBER,
1240: p_person_id IN hxt_timecards.for_person_id%TYPE,
1241: p_period_id IN hxt_timecards.time_period_id%TYPE,
1242: p_tim_id IN hxt_timecards.id%TYPE,
1243: p_day IN DATE,
1244: p_hours_type IN hxt_sum_hours_worked_f.element_type_id%TYPE,
1245: p_hol_cal_id IN hxt_holiday_calendars.id%TYPE
1246: )
1318: END holiday_mismatch;
1319:
1320: PROCEDURE holiday_valid (
1321: p_batch_id IN NUMBER,
1322: p_person_id IN hxt_timecards.for_person_id%TYPE,
1323: p_period_id IN hxt_timecards.time_period_id%TYPE,
1324: p_tim_id IN hxt_timecards.id%TYPE,
1325: p_day IN DATE,
1326: p_hours_type IN hxt_sum_hours_worked_f.element_type_id%TYPE,
1319:
1320: PROCEDURE holiday_valid (
1321: p_batch_id IN NUMBER,
1322: p_person_id IN hxt_timecards.for_person_id%TYPE,
1323: p_period_id IN hxt_timecards.time_period_id%TYPE,
1324: p_tim_id IN hxt_timecards.id%TYPE,
1325: p_day IN DATE,
1326: p_hours_type IN hxt_sum_hours_worked_f.element_type_id%TYPE,
1327: p_hol_cal_id IN hxt_holiday_calendars.id%TYPE
1320: PROCEDURE holiday_valid (
1321: p_batch_id IN NUMBER,
1322: p_person_id IN hxt_timecards.for_person_id%TYPE,
1323: p_period_id IN hxt_timecards.time_period_id%TYPE,
1324: p_tim_id IN hxt_timecards.id%TYPE,
1325: p_day IN DATE,
1326: p_hours_type IN hxt_sum_hours_worked_f.element_type_id%TYPE,
1327: p_hol_cal_id IN hxt_holiday_calendars.id%TYPE
1328: )
1605: RETURN l_valid_for_summing;
1606: END valid_for_summing;
1607:
1608: FUNCTION sum_valid_det_hours (
1609: p_tim_id IN hxt_timecards.id%TYPE,
1610: p_day IN DATE,
1611: p_assignment_id IN per_all_assignments_f.assignment_id%TYPE,
1612: p_hol_cal_id IN hxt_holiday_calendars.id%TYPE
1613: )
1615: IS
1616: l_proc VARCHAR2 (72) ;
1617:
1618: CURSOR csr_det_hours (
1619: p_tim_id hxt_timecards.id%TYPE,
1620: p_date_worked hxt_det_hours_worked_f.date_worked%TYPE
1621: )
1622: IS
1623: SELECT SUM (hdhwx.hours) hours, hdhwx.element_type_id,
1672: END sum_valid_det_hours;
1673:
1674: PROCEDURE day_over_24 (
1675: p_batch_id IN NUMBER,
1676: p_person_id IN hxt_timecards.for_person_id%TYPE,
1677: p_assignment_id IN per_all_assignments_f.assignment_id%TYPE,
1678: p_period_id IN hxt_timecards.time_period_id%TYPE,
1679: p_tim_id IN hxt_timecards.id%TYPE,
1680: p_day IN DATE,
1674: PROCEDURE day_over_24 (
1675: p_batch_id IN NUMBER,
1676: p_person_id IN hxt_timecards.for_person_id%TYPE,
1677: p_assignment_id IN per_all_assignments_f.assignment_id%TYPE,
1678: p_period_id IN hxt_timecards.time_period_id%TYPE,
1679: p_tim_id IN hxt_timecards.id%TYPE,
1680: p_day IN DATE,
1681: p_hol_cal_id IN hxt_holiday_calendars.id%TYPE
1682: )
1675: p_batch_id IN NUMBER,
1676: p_person_id IN hxt_timecards.for_person_id%TYPE,
1677: p_assignment_id IN per_all_assignments_f.assignment_id%TYPE,
1678: p_period_id IN hxt_timecards.time_period_id%TYPE,
1679: p_tim_id IN hxt_timecards.id%TYPE,
1680: p_day IN DATE,
1681: p_hol_cal_id IN hxt_holiday_calendars.id%TYPE
1682: )
1683: IS
1742: END day_over_24;
1743:
1744: PROCEDURE holiday_as_reg (
1745: p_batch_id IN NUMBER,
1746: p_person_id IN hxt_timecards.for_person_id%TYPE,
1747: p_period_id IN hxt_timecards.time_period_id%TYPE,
1748: p_tim_id IN hxt_timecards.id%TYPE,
1749: p_day IN DATE,
1750: p_hours_type IN hxt_sum_hours_worked_f.element_type_id%TYPE,
1743:
1744: PROCEDURE holiday_as_reg (
1745: p_batch_id IN NUMBER,
1746: p_person_id IN hxt_timecards.for_person_id%TYPE,
1747: p_period_id IN hxt_timecards.time_period_id%TYPE,
1748: p_tim_id IN hxt_timecards.id%TYPE,
1749: p_day IN DATE,
1750: p_hours_type IN hxt_sum_hours_worked_f.element_type_id%TYPE,
1751: p_hol_cal_id IN hxt_holiday_calendars.id%TYPE
1744: PROCEDURE holiday_as_reg (
1745: p_batch_id IN NUMBER,
1746: p_person_id IN hxt_timecards.for_person_id%TYPE,
1747: p_period_id IN hxt_timecards.time_period_id%TYPE,
1748: p_tim_id IN hxt_timecards.id%TYPE,
1749: p_day IN DATE,
1750: p_hours_type IN hxt_sum_hours_worked_f.element_type_id%TYPE,
1751: p_hol_cal_id IN hxt_holiday_calendars.id%TYPE
1752: )
1811: END holiday_as_reg;
1812:
1813: PROCEDURE perform_holiday_validations (
1814: p_batch_id IN NUMBER,
1815: p_person_id IN hxt_timecards.for_person_id%TYPE,
1816: p_period_id IN hxt_timecards.time_period_id%TYPE,
1817: p_tim_id IN hxt_timecards.id%TYPE,
1818: p_day IN DATE,
1819: p_hours_type IN hxt_sum_hours_worked_f.element_type_id%TYPE,
1812:
1813: PROCEDURE perform_holiday_validations (
1814: p_batch_id IN NUMBER,
1815: p_person_id IN hxt_timecards.for_person_id%TYPE,
1816: p_period_id IN hxt_timecards.time_period_id%TYPE,
1817: p_tim_id IN hxt_timecards.id%TYPE,
1818: p_day IN DATE,
1819: p_hours_type IN hxt_sum_hours_worked_f.element_type_id%TYPE,
1820: p_hol_cal_id OUT NOCOPY hxt_holiday_calendars.id%TYPE
1813: PROCEDURE perform_holiday_validations (
1814: p_batch_id IN NUMBER,
1815: p_person_id IN hxt_timecards.for_person_id%TYPE,
1816: p_period_id IN hxt_timecards.time_period_id%TYPE,
1817: p_tim_id IN hxt_timecards.id%TYPE,
1818: p_day IN DATE,
1819: p_hours_type IN hxt_sum_hours_worked_f.element_type_id%TYPE,
1820: p_hol_cal_id OUT NOCOPY hxt_holiday_calendars.id%TYPE
1821: )
1870: END perform_holiday_validations;
1871:
1872: PROCEDURE perform_day_validations (
1873: p_batch_id IN NUMBER,
1874: p_person_id IN hxt_timecards.for_person_id%TYPE,
1875: p_period_id IN hxt_timecards.time_period_id%TYPE,
1876: p_tim_id IN hxt_timecards.id%TYPE
1877: )
1878: AS
1871:
1872: PROCEDURE perform_day_validations (
1873: p_batch_id IN NUMBER,
1874: p_person_id IN hxt_timecards.for_person_id%TYPE,
1875: p_period_id IN hxt_timecards.time_period_id%TYPE,
1876: p_tim_id IN hxt_timecards.id%TYPE
1877: )
1878: AS
1879: l_proc VARCHAR2 (72) ;
1872: PROCEDURE perform_day_validations (
1873: p_batch_id IN NUMBER,
1874: p_person_id IN hxt_timecards.for_person_id%TYPE,
1875: p_period_id IN hxt_timecards.time_period_id%TYPE,
1876: p_tim_id IN hxt_timecards.id%TYPE
1877: )
1878: AS
1879: l_proc VARCHAR2 (72) ;
1880:
1877: )
1878: AS
1879: l_proc VARCHAR2 (72) ;
1880:
1881: CURSOR csr_days (p_tim_id hxt_timecards.id%TYPE)
1882: IS
1883: SELECT DISTINCT hshwx.date_worked, hshwx.element_type_id,
1884: hshwx.assignment_id
1885: FROM hxt_sum_hours_worked_x hshwx
1889: CURSOR c_no_mid_period_change (p_person_id in number)
1890: is
1891: select 'Y'
1892: from per_all_assignments_f p1,
1893: hxt_timecards_x tim
1894: where tim.effective_start_date between p1.effective_start_date and p1.effective_end_date
1895: and tim.effective_end_date between p1.effective_start_date and p1.effective_end_date
1896: and p1.person_id = p_person_id
1897: and p1.primary_flag = 'Y'
1980: END perform_day_validations;
1981:
1982: PROCEDURE validate_tc (
1983: p_batch_id IN NUMBER,
1984: p_tim_id IN hxt_timecards.id%TYPE,
1985: p_person_id IN hxt_timecards.for_person_id%TYPE,
1986: p_period_id IN hxt_timecards.time_period_id%TYPE,
1987: p_approv_person_id IN hxt_timecards.approv_person_id%TYPE,
1988: p_auto_gen_flag IN hxt_timecards.auto_gen_flag%TYPE,
1981:
1982: PROCEDURE validate_tc (
1983: p_batch_id IN NUMBER,
1984: p_tim_id IN hxt_timecards.id%TYPE,
1985: p_person_id IN hxt_timecards.for_person_id%TYPE,
1986: p_period_id IN hxt_timecards.time_period_id%TYPE,
1987: p_approv_person_id IN hxt_timecards.approv_person_id%TYPE,
1988: p_auto_gen_flag IN hxt_timecards.auto_gen_flag%TYPE,
1989: p_error_level IN OUT NOCOPY NUMBER
1982: PROCEDURE validate_tc (
1983: p_batch_id IN NUMBER,
1984: p_tim_id IN hxt_timecards.id%TYPE,
1985: p_person_id IN hxt_timecards.for_person_id%TYPE,
1986: p_period_id IN hxt_timecards.time_period_id%TYPE,
1987: p_approv_person_id IN hxt_timecards.approv_person_id%TYPE,
1988: p_auto_gen_flag IN hxt_timecards.auto_gen_flag%TYPE,
1989: p_error_level IN OUT NOCOPY NUMBER
1990: )
1983: p_batch_id IN NUMBER,
1984: p_tim_id IN hxt_timecards.id%TYPE,
1985: p_person_id IN hxt_timecards.for_person_id%TYPE,
1986: p_period_id IN hxt_timecards.time_period_id%TYPE,
1987: p_approv_person_id IN hxt_timecards.approv_person_id%TYPE,
1988: p_auto_gen_flag IN hxt_timecards.auto_gen_flag%TYPE,
1989: p_error_level IN OUT NOCOPY NUMBER
1990: )
1991: AS
1984: p_tim_id IN hxt_timecards.id%TYPE,
1985: p_person_id IN hxt_timecards.for_person_id%TYPE,
1986: p_period_id IN hxt_timecards.time_period_id%TYPE,
1987: p_approv_person_id IN hxt_timecards.approv_person_id%TYPE,
1988: p_auto_gen_flag IN hxt_timecards.auto_gen_flag%TYPE,
1989: p_error_level IN OUT NOCOPY NUMBER
1990: )
1991: AS
1992: l_proc VARCHAR2 (72) ;
2069: l_sql_error VARCHAR2 (80);
2070: l_id NUMBER;
2071: l_cnt BINARY_INTEGER;
2072:
2073: CURSOR csr_tcs_in_batch (p_batch_id hxt_timecards_f.batch_id%TYPE)
2074: IS
2075: SELECT tim.id tim_id, tim.for_person_id, tim.time_period_id,
2076: tim.approv_person_id, tim.auto_gen_flag,
2077: tim.approved_timestamp , tim.created_by,
2079: tim.last_update_date , tim.last_update_login,
2080: tim.payroll_id , tim.status,
2081: tim.effective_start_date , tim.effective_end_date,
2082: tim.object_version_number, tim.rowid
2083: FROM hxt_timecards_x tim
2084: WHERE tim.batch_id = p_batch_id;
2085: BEGIN
2086: g_debug :=hr_utility.debug_enabled;
2087: if g_debug then