32: IS
33: v_job_grp_id per_job_groups.job_group_id%type;
34:
35: BEGIN
36: v_job_grp_id := PA_JOB_UTILS.get_job_group_id(P_job_id);
37:
38: return (v_job_grp_id);
39:
40: END get_job_group_id;
66:
67:
68:
69: -- This Function returns the job level DFF based on the job_id and Job_group_id
70: -- 24-Dec: Move the logic of the code to PA_JOB_UTILS and call the function here
71: FUNCTION get_job_level(
72: P_job_id IN per_jobs.job_id%type
73: ,P_job_group_id IN per_job_groups.job_group_id%type
74: ) RETURN NUMBER
75: IS
76: l_job_level NUMBER;
77:
78: BEGIN
79: l_job_level := PA_JOB_UTILS.get_job_level (
80: P_job_id => P_job_id
81: ,P_job_group_id => P_job_group_id
82: );
83:
109: IS
110: l_flag BOOLEAN;
111:
112: BEGIN
113: l_flag := PA_JOB_UTILS.check_master_job(P_job_id);
114: return l_flag;
115:
116: END check_master_job;
117:
653: -- If it is a PRJG job, we need to check that the to_job_id is a master job
654: -- and update the resource denorm records with the job level of the PRJG job
655: -----------------------------------------------------------------------------
656:
657: If (PA_JOB_UTILS.Is_Proj_Res_Job_Group(P_from_job_id_new, P_from_job_group_id) = 'Y' AND
658: PA_JOB_UTILS.check_master_job(P_to_job_id_new)) then
659:
660: IF P_DEBUG_MODE = 'Y' THEN
661: log_message('From is PRJG, To is Master');
654: -- and update the resource denorm records with the job level of the PRJG job
655: -----------------------------------------------------------------------------
656:
657: If (PA_JOB_UTILS.Is_Proj_Res_Job_Group(P_from_job_id_new, P_from_job_group_id) = 'Y' AND
658: PA_JOB_UTILS.check_master_job(P_to_job_id_new)) then
659:
660: IF P_DEBUG_MODE = 'Y' THEN
661: log_message('From is PRJG, To is Master');
662: END IF;
660: IF P_DEBUG_MODE = 'Y' THEN
661: log_message('From is PRJG, To is Master');
662: END IF;
663:
664: l_job_level_new := PA_JOB_UTILS.get_job_level(P_from_job_id_new,P_from_job_group_id);
665:
666: l_PRJG_job_id := P_from_job_id_new;
667: l_master_job_id := P_to_job_id_new;
668: l_condition := 'PM';
675: -- If it is a PRJG job, we need to check that the from_job_id is a master job
676: -- and update the resource denorm records with the job level of the PRJG job
677: -----------------------------------------------------------------------------
678:
679: If (PA_JOB_UTILS.Is_Proj_Res_Job_Group(P_to_job_id_new, P_to_job_group_id) = 'Y' AND
680: PA_JOB_UTILS.check_master_job(P_from_job_id_new)) then
681:
682: IF P_DEBUG_MODE = 'Y' THEN
683: log_message('From is Master, To is PRJG');
676: -- and update the resource denorm records with the job level of the PRJG job
677: -----------------------------------------------------------------------------
678:
679: If (PA_JOB_UTILS.Is_Proj_Res_Job_Group(P_to_job_id_new, P_to_job_group_id) = 'Y' AND
680: PA_JOB_UTILS.check_master_job(P_from_job_id_new)) then
681:
682: IF P_DEBUG_MODE = 'Y' THEN
683: log_message('From is Master, To is PRJG');
684: END IF;
681:
682: IF P_DEBUG_MODE = 'Y' THEN
683: log_message('From is Master, To is PRJG');
684: END IF;
685: l_job_level_new := PA_JOB_UTILS.get_job_level(P_to_job_id_new,P_to_job_group_id);
686:
687: l_PRJG_job_id := P_to_job_id_new;
688: l_master_job_id := P_from_job_id_new;
689: l_condition := 'PM';
697: -- with the job level of the Master, PRJG job id
698: -- Case: from_job_id is Master and to_job_id is Normal job
699: ------------------------------------------------------------------------------
700:
701: If (PA_JOB_UTILS.check_master_job(P_from_job_id_new) AND
702: PA_JOB_UTILS.Is_Proj_Res_Job_Group(P_to_job_id_new, P_to_job_group_id) = 'N' AND
703: NOT PA_JOB_UTILS.check_master_job(P_to_job_id_new)) THEN
704:
705: IF P_DEBUG_MODE = 'Y' THEN
698: -- Case: from_job_id is Master and to_job_id is Normal job
699: ------------------------------------------------------------------------------
700:
701: If (PA_JOB_UTILS.check_master_job(P_from_job_id_new) AND
702: PA_JOB_UTILS.Is_Proj_Res_Job_Group(P_to_job_id_new, P_to_job_group_id) = 'N' AND
703: NOT PA_JOB_UTILS.check_master_job(P_to_job_id_new)) THEN
704:
705: IF P_DEBUG_MODE = 'Y' THEN
706: log_message('From is Master, To is Normal');
699: ------------------------------------------------------------------------------
700:
701: If (PA_JOB_UTILS.check_master_job(P_from_job_id_new) AND
702: PA_JOB_UTILS.Is_Proj_Res_Job_Group(P_to_job_id_new, P_to_job_group_id) = 'N' AND
703: NOT PA_JOB_UTILS.check_master_job(P_to_job_id_new)) THEN
704:
705: IF P_DEBUG_MODE = 'Y' THEN
706: log_message('From is Master, To is Normal');
707: END IF;
704:
705: IF P_DEBUG_MODE = 'Y' THEN
706: log_message('From is Master, To is Normal');
707: END IF;
708: l_job_level_new := PA_JOB_UTILS.get_job_level(P_from_job_id_new, P_from_job_group_id);
709:
710: l_job_id := P_to_job_id_new;
711: l_condition := 'MN';
712:
714:
715: ----------------------------------------------------------------------------
716: -- Same as previous, but to_job_id is Master and from_job_id is normal job
717: ----------------------------------------------------------------------------
718: If (PA_JOB_UTILS.check_master_job(P_to_job_id_new) AND
719: PA_JOB_UTILS.Is_Proj_Res_Job_Group(P_from_job_id_new, P_from_job_group_id) = 'N' AND
720: NOT PA_JOB_UTILS.check_master_job(P_from_job_id_new)) THEN
721:
722: IF P_DEBUG_MODE = 'Y' THEN
715: ----------------------------------------------------------------------------
716: -- Same as previous, but to_job_id is Master and from_job_id is normal job
717: ----------------------------------------------------------------------------
718: If (PA_JOB_UTILS.check_master_job(P_to_job_id_new) AND
719: PA_JOB_UTILS.Is_Proj_Res_Job_Group(P_from_job_id_new, P_from_job_group_id) = 'N' AND
720: NOT PA_JOB_UTILS.check_master_job(P_from_job_id_new)) THEN
721:
722: IF P_DEBUG_MODE = 'Y' THEN
723: log_message('From is Normal, To is Master');
716: -- Same as previous, but to_job_id is Master and from_job_id is normal job
717: ----------------------------------------------------------------------------
718: If (PA_JOB_UTILS.check_master_job(P_to_job_id_new) AND
719: PA_JOB_UTILS.Is_Proj_Res_Job_Group(P_from_job_id_new, P_from_job_group_id) = 'N' AND
720: NOT PA_JOB_UTILS.check_master_job(P_from_job_id_new)) THEN
721:
722: IF P_DEBUG_MODE = 'Y' THEN
723: log_message('From is Normal, To is Master');
724: END IF;
721:
722: IF P_DEBUG_MODE = 'Y' THEN
723: log_message('From is Normal, To is Master');
724: END IF;
725: l_job_level_new := PA_JOB_UTILS.get_job_level(P_to_job_id_new, P_to_job_group_id);
726:
727: l_job_id := P_from_job_id_new;
728: l_condition := 'MN';
729:
798: -- Sets the appropriate value for the job ids and the condition to update the
799: -- resource denorm records
800: ------------------------------------------------------------------------------
801:
802: IF ((PA_JOB_UTILS.check_master_job(P_from_job_id_old) AND
803: PA_JOB_UTILS.Is_Proj_Res_Job_Group(P_to_job_id_old, P_to_job_group_id) = 'Y')) THEN
804:
805: IF P_DEBUG_MODE = 'Y' THEN
806: log_message('From is Master, To is PRJG');
799: -- resource denorm records
800: ------------------------------------------------------------------------------
801:
802: IF ((PA_JOB_UTILS.check_master_job(P_from_job_id_old) AND
803: PA_JOB_UTILS.Is_Proj_Res_Job_Group(P_to_job_id_old, P_to_job_group_id) = 'Y')) THEN
804:
805: IF P_DEBUG_MODE = 'Y' THEN
806: log_message('From is Master, To is PRJG');
807: END IF;
808: l_master_job_id := P_from_job_id_old;
809: l_PRJG_job_id := P_to_job_id_old;
810: l_condition := 'PM';
811:
812: ELSIF ((PA_JOB_UTILS.check_master_job(P_to_job_id_old) AND
813: PA_JOB_UTILS.Is_Proj_Res_Job_Group(P_from_job_id_old, P_from_job_group_id) = 'Y')) THEN
814:
815: IF P_DEBUG_MODE = 'Y' THEN
816: log_message('From is PRJG, To is Master');
809: l_PRJG_job_id := P_to_job_id_old;
810: l_condition := 'PM';
811:
812: ELSIF ((PA_JOB_UTILS.check_master_job(P_to_job_id_old) AND
813: PA_JOB_UTILS.Is_Proj_Res_Job_Group(P_from_job_id_old, P_from_job_group_id) = 'Y')) THEN
814:
815: IF P_DEBUG_MODE = 'Y' THEN
816: log_message('From is PRJG, To is Master');
817: END IF;
818: l_master_job_id := P_to_job_id_old;
819: l_PRJG_job_id := P_from_job_id_old;
820: l_condition := 'PM';
821:
822: ELSIF ( PA_JOB_UTILS.check_master_job(P_from_job_id_old) AND
823: PA_JOB_UTILS.Is_Proj_Res_Job_Group(P_to_job_id_old, P_to_job_group_id) = 'N' AND
824: NOT PA_JOB_UTILS.check_master_job(P_to_job_id_old)) THEN
825:
826: IF P_DEBUG_MODE = 'Y' THEN
819: l_PRJG_job_id := P_from_job_id_old;
820: l_condition := 'PM';
821:
822: ELSIF ( PA_JOB_UTILS.check_master_job(P_from_job_id_old) AND
823: PA_JOB_UTILS.Is_Proj_Res_Job_Group(P_to_job_id_old, P_to_job_group_id) = 'N' AND
824: NOT PA_JOB_UTILS.check_master_job(P_to_job_id_old)) THEN
825:
826: IF P_DEBUG_MODE = 'Y' THEN
827: log_message('From is Master, To is Normal');
820: l_condition := 'PM';
821:
822: ELSIF ( PA_JOB_UTILS.check_master_job(P_from_job_id_old) AND
823: PA_JOB_UTILS.Is_Proj_Res_Job_Group(P_to_job_id_old, P_to_job_group_id) = 'N' AND
824: NOT PA_JOB_UTILS.check_master_job(P_to_job_id_old)) THEN
825:
826: IF P_DEBUG_MODE = 'Y' THEN
827: log_message('From is Master, To is Normal');
828: END IF;
829: l_master_job_id := P_from_job_id_old;
830: l_job_id := P_to_job_id_old;
831: l_condition := 'MN';
832:
833: ELSIF ( PA_JOB_UTILS.check_master_job(P_to_job_id_old) AND
834: PA_JOB_UTILS.Is_Proj_Res_Job_Group(P_from_job_id_old, P_from_job_group_id) = 'N'AND
835: NOT PA_JOB_UTILS.check_master_job(P_from_job_id_old)) THEN
836:
837: IF P_DEBUG_MODE = 'Y' THEN
830: l_job_id := P_to_job_id_old;
831: l_condition := 'MN';
832:
833: ELSIF ( PA_JOB_UTILS.check_master_job(P_to_job_id_old) AND
834: PA_JOB_UTILS.Is_Proj_Res_Job_Group(P_from_job_id_old, P_from_job_group_id) = 'N'AND
835: NOT PA_JOB_UTILS.check_master_job(P_from_job_id_old)) THEN
836:
837: IF P_DEBUG_MODE = 'Y' THEN
838: log_message('From is Normal, To is Master');
831: l_condition := 'MN';
832:
833: ELSIF ( PA_JOB_UTILS.check_master_job(P_to_job_id_old) AND
834: PA_JOB_UTILS.Is_Proj_Res_Job_Group(P_from_job_id_old, P_from_job_group_id) = 'N'AND
835: NOT PA_JOB_UTILS.check_master_job(P_from_job_id_old)) THEN
836:
837: IF P_DEBUG_MODE = 'Y' THEN
838: log_message('From is Normal, To is Master');
839: END IF;
981: -- next get the master job id and then updates all jobs
982: -- belonging to that master job id if the job id is NOT
983: -- a master job
984:
985: If (PA_JOB_UTILS.check_master_job(l_job_id) = FALSE) Then
986:
987: OPEN get_master_job(l_job_id, l_job_group_id);
988: LOOP
989: FETCH get_master_job INTO l_master_job_id;
1068:
1069: -- When Project Resource Job Group does not exist, we just use
1070: -- the job id and job level passed in and update the resource
1071: -- denorm records affected by this change
1072: IF PA_JOB_UTILS.Proj_Res_Job_Group_Exists(p_job_id => l_job_id) = 'N' THEN
1073: IF P_DEBUG_MODE = 'Y' THEN
1074: log_message('Proj_Res_Job_Group does not exist');
1075: log_message('Update Denorm for the Job Id and Job Level');
1076: END IF;
1092: log_message('Proj_Res_Job_Group Exist');
1093: END IF;
1094:
1095: -- get the job group id of the job id passed in
1096: l_job_group_id := PA_JOB_UTILS.get_job_group_id(l_job_id);
1097: IF P_DEBUG_MODE = 'Y' THEN
1098: log_message('Job Group Id = ' || l_job_group_id );
1099: END IF;
1100:
1098: log_message('Job Group Id = ' || l_job_group_id );
1099: END IF;
1100:
1101: -- check whether the job group is the Proj_Res_Job_Group
1102: l_isPRJG := PA_JOB_UTILS.Is_Proj_Res_Job_Group
1103: ( p_job_id => l_job_id
1104: ,p_job_group_id => l_job_group_id);
1105:
1106: -------------------------------------------------------------
1919:
1920: FETCH get_new_job_ids INTO l_job_id;
1921: Exit when get_new_job_ids%NOTFOUND;
1922:
1923: l_job_level := PA_JOB_UTILS.get_job_level(l_job_id);
1924: IF P_DEBUG_MODE = 'Y' THEN
1925: log_message('Job id to set level ' || l_job_level || ' = ' || l_job_id);
1926: END IF;
1927:
1951: IF P_DEBUG_MODE = 'Y' THEN
1952: log_message('Job id to set level Null = ' || l_job_id);
1953: END IF;
1954:
1955: l_job_group_id := PA_JOB_UTILS.get_job_group_id(l_job_id);
1956:
1957: perform_job_updates
1958: (P_job_id => l_job_id
1959: ,P_job_level_old => NULL
1976:
1977: FETCH get_new_job_ids INTO l_job_id;
1978: Exit when get_new_job_ids%NOTFOUND;
1979:
1980: l_job_level := PA_JOB_UTILS.get_job_level(l_job_id);
1981: IF P_DEBUG_MODE = 'Y' THEN
1982: log_message('Job id to set level ' || l_job_level || ' = ' || l_job_id);
1983: END IF;
1984: