1 PACKAGE BODY ENG_CHANGE_ADMIN_UTIL AS
2 /* $Header: ENGADUTB.pls 115.7 2004/02/18 11:33:37 sdarbha ship $ */
3
4 FUNCTION check_delete_for_reason (
5 p_reason_Code IN VARCHAR2) RETURN NUMBER IS
6
7 delete_flag NUMBER := 1;
8
9 BEGIN
10 select 2
11 into delete_flag
12 from dual
13 where exists (select 1
14 from eng_engineering_changes
15 where reason_code = p_reason_Code
16 union all
17 select 1 from eng_change_type_reasons
18 where reason_code = p_reason_code
19 );
20
21 return (delete_flag);
22
23 EXCEPTION WHEN NO_DATA_FOUND THEN
24 return (delete_flag);
25 END;
26
27 FUNCTION check_delete_for_priority (
28 p_priority_code IN VARCHAR2) RETURN NUMBER IS
29
30 delete_flag NUMBER := 1;
31
32 BEGIN
33 select 2
34 into delete_flag
35 from dual
36 where exists (select 1
37 from eng_engineering_changes
38 where priority_code = p_priority_code
39 UNION ALL
40 SELECT 1
41 FROM ENG_CHANGE_TYPE_PRIORITIES
42 WHERE priority_code = p_priority_code);
43
44 return (delete_flag);
45
46 EXCEPTION WHEN NO_DATA_FOUND THEN
47 return (delete_flag);
48 END;
49
50 FUNCTION check_delete_for_status (
51 p_status_code IN NUMBER
52 ) RETURN NUMBER IS
53
54 delete_flag NUMBER := 1;
55 CURSOR c_checkseededstatus(cp_status_code VARCHAR2) IS
56 SELECT 2
57 FROM ENG_CHANGE_STATUSES
58 WHERE SEEDED_FLAG='Y'
59 AND STATUS_CODE=cp_status_code;
60
61 BEGIN
62 OPEN c_checkseededstatus(cp_status_code => p_status_code);
63 FETCH c_checkseededstatus into delete_flag;
64 CLOSE c_checkseededstatus;
65 -- Check for Changes Existent for this status ONLY when if its not
66 -- seeded status
67 IF delete_flag <> 2 then
68 select 2
69 into delete_flag
70 from dual
71 where exists (select 1
72 from eng_engineering_changes eec
73 where eec.status_type = p_status_code);
74 END IF;
75 return (delete_flag);
76
77 EXCEPTION WHEN NO_DATA_FOUND THEN
78 return (delete_flag);
79 END;
80
81
82 FUNCTION check_delete_for_phase (
83 p_status_Code IN NUMBER,
84 p_change_type_id IN NUMBER
85 ) RETURN NUMBER IS
86
87 delete_flag NUMBER := 1;
88
89 BEGIN
90 select 2
91 into delete_flag
92 from dual
93 where exists (select 1
94 from eng_engineering_changes
95 where status_Code = p_status_Code
96 and change_order_type_id =p_change_type_id);
97
98 return (delete_flag);
99
100 EXCEPTION WHEN NO_DATA_FOUND THEN
101 return (delete_flag);
102 END;
103
104
105 FUNCTION check_classifications_delete
106 (
107 p_classification_id IN NUMBER
108 ) RETURN NUMBER IS
109
110 delete_flag NUMBER := 1;
111
112
113 BEGIN
114
115 -- Check for Changes/Types Existent for this classifaction _id
116
117 select 2
118 into delete_flag
119 from dual
120 where exists (select 1
121 from eng_engineering_changes eec
122 where eec.classification_id = p_classification_id )
123 or
124 exists (select 1
125 from eng_change_type_class_codes ectcc
126 where ectcc.classification_id = p_classification_id )
127 ;
128
129 return (delete_flag);
130
131 EXCEPTION WHEN NO_DATA_FOUND THEN
132 return (delete_flag);
133 END;
134
135 END ENG_CHANGE_ADMIN_UTIL;
136
137