[Home] [Help]
PACKAGE BODY: APPS.PAY_FUNCTIONAL_AREAS_PKG
Source
1 PACKAGE BODY pay_functional_areas_pkg AS
2 -- $Header: pypfaapi.pkb 115.3 2002/12/11 15:13:18 exjones noship $
3 --
4 ----------------------------------------------------------------------------------
5 PROCEDURE lock_row(
6 p_row_id IN VARCHAR2,
7 p_area_id IN NUMBER,
8 p_short_name IN VARCHAR2,
9 p_description IN VARCHAR2
10 ) IS
11 CURSOR csr_functional_area IS
12 SELECT *
13 FROM pay_functional_areas
14 WHERE rowid = p_row_id
15 FOR UPDATE OF
16 area_id NOWAIT;
17 --
18 area_record csr_functional_area%ROWTYPE;
19 --
20 BEGIN
21 OPEN csr_functional_area;
22 FETCH csr_functional_area INTO area_record;
23 IF csr_functional_area%NOTFOUND THEN
24 CLOSE csr_functional_area;
25 Hr_Utility.Set_Message(801,'HR_6153_ALL_PROCEDURE_FAIL');
26 Hr_Utility.Set_Message_Token(
27 'PROCEDURE',
28 'PAY_FUNCTIONAL_AREAS_PKG.LOCK_ROW'
29 );
30 END IF;
31 CLOSE csr_functional_area;
32 --
33 IF ((area_record.area_id = p_area_id) OR
34 (area_record.area_id IS NULL AND p_area_id IS NULL))
35 AND ((area_record.short_name = p_short_name) OR
36 (area_record.short_name IS NULL AND p_short_name IS NULL))
37 AND ((area_record.description = p_description) OR
38 (area_record.description IS NULL AND p_description IS NULL))
39 THEN
40 RETURN;
41 ELSE
42 Hr_Utility.Set_Message(0,'FORM_RECORD_CHANGED');
43 Hr_Utility.Raise_Error;
44 END IF;
45 END lock_row;
46 --
47 ----------------------------------------------------------------------------------
48 PROCEDURE insert_row(
49 p_row_id IN out nocopy VARCHAR2,
50 p_area_id IN out nocopy NUMBER,
51 p_short_name IN VARCHAR2,
52 p_description IN VARCHAR2
53 ) IS
54 --
55 CURSOR csr_new_id IS
56 SELECT pay_functional_areas_s.NEXTVAL
57 FROM dual;
58 --
59 CURSOR csr_area_rowid IS
60 SELECT rowid
61 FROM pay_functional_areas
62 WHERE area_id = p_area_id;
63 --
64 BEGIN
65 --
66 OPEN csr_new_id;
67 FETCH csr_new_id INTO p_area_id;
68 CLOSE csr_new_id;
69 --
70 INSERT INTO pay_functional_areas(
71 area_id,
72 short_name,
73 description
74 ) VALUES (
75 p_area_id,
76 p_short_name,
77 p_description
78 );
79 --
80 OPEN csr_area_rowid;
81 FETCH csr_area_rowid INTO p_row_id;
82 IF csr_area_rowid%NOTFOUND THEN
83 CLOSE csr_area_rowid;
84 Hr_Utility.Set_Message(801,'HR_6153_ALL_PROCEDURE_FAIL');
85 Hr_Utility.Set_Message_Token(
86 'PROCEDURE',
87 'PAY_FUNCTIONAL_AREAS_PKG.INSERT_ROW'
88 );
89 END IF;
90 CLOSE csr_area_rowid;
91 --
92 END insert_row;
93 --
94 ----------------------------------------------------------------------------------
95 PROCEDURE update_row(
96 p_row_id IN VARCHAR2,
97 p_area_id IN NUMBER,
98 p_short_name IN VARCHAR2,
99 p_description IN VARCHAR2
100 ) IS
101 BEGIN
102 UPDATE pay_functional_areas
103 SET area_id = p_area_id,
104 short_name = p_short_name,
105 description = p_description
106 WHERE rowid = p_row_id;
107 --
108 IF SQL%NOTFOUND THEN
109 Hr_Utility.Set_Message(801,'HR_6153_ALL_PROCEDURE_FAIL');
110 Hr_Utility.Set_Message_Token(
111 'PROCEDURE',
112 'PAY_FUNCTIONAL_AREAS_PKG.UPDATE_ROW'
113 );
114 END IF;
115 END update_row;
116 ----------------------------------------------------------------------------------
117 PROCEDURE delete_row(
118 p_row_id IN VARCHAR2,
119 p_area_id IN NUMBER
120 ) IS
121 BEGIN
122 DELETE
128 Hr_Utility.Set_Message_Token(
123 FROM pay_functional_areas
124 WHERE rowid = p_row_id;
125 --
126 IF SQL%NOTFOUND THEN
127 Hr_Utility.Set_Message(801,'HR_6153_ALL_PROCEDURE_FAIL');
129 'PROCEDURE',
130 'PAY_FUNCTIONAL_AREAS_PKG.DELETE_ROW'
131 );
132 END IF;
133 END delete_row;
134 -----------------------------------------------------------------------------------
135 FUNCTION name_is_not_unique (
141 -- Parameters are
136 --
137 --*********************************************************************************
138 --* Returns TRUE if the functional area short name has been duplicated *
139 --*********************************************************************************
140 --
142 --
143 p_short_name varchar2,
144 p_area_id number default null
145 --
146 ) return boolean is
147 --
151 cursor csr_duplicate is
148 v_name_duplicated boolean := FALSE;
149 l_dummy_number number;
150 --
152 select null
153 from pay_functional_areas pfa
154 where pfa.short_name = p_short_name
155 and (pfa.area_id <> p_area_id
156 or p_area_id is null);
157 --
158 begin
159 --
160 hr_utility.set_location('PAY_FUNCTIONAL_AREAS_PKG.NAME_IS_NOT_UNIQUE',1);
161 --
162 open csr_duplicate;
163 fetch csr_duplicate into l_dummy_number;
164 v_name_duplicated := csr_duplicate%found;
165 close csr_duplicate;
166 --
167 return v_name_duplicated;
168 --
169 end name_is_not_unique;
170 --
171
172 END pay_functional_areas_pkg;