[Home] [Help]
PACKAGE BODY: APPS.IGW_BUDGET_PERSONNEL_TBH
Source
1 PACKAGE BODY IGW_BUDGET_PERSONNEL_TBH AS
2 --$Header: igwtbpdb.pls 115.5 2002/11/14 18:42:41 vmedikon ship $
3
4 procedure INSERT_ROW (
5 p_proposal_id NUMBER
6 ,p_version_id NUMBER
7 ,p_budget_period_id NUMBER
8 ,p_line_item_id NUMBER
9 ,p_budget_personnel_detail_id NUMBER
10 ,p_person_id NUMBER
11 ,p_party_id NUMBER
12 ,p_start_date DATE
13 ,p_end_date DATE
14 ,p_period_type_code VARCHAR2
15 ,p_appointment_type_code VARCHAR2
16 ,p_salary_requested NUMBER
17 ,p_percent_charged NUMBER
18 ,p_percent_effort NUMBER
19 ,p_cost_sharing_percent NUMBER
20 ,p_cost_sharing_amount NUMBER
21 ,p_underrecovery_amount NUMBER
22 ,x_rowid OUT NOCOPY VARCHAR2
23 ,x_return_status OUT NOCOPY VARCHAR2) IS
24
25 cursor c_budget_personnel is
26 select rowid
27 from igw_budget_personnel_details
28 where budget_personnel_detail_id = p_budget_personnel_detail_id;
29
30 l_last_updated_by NUMBER := FND_GLOBAL.USER_ID;
31 l_last_update_login NUMBER := FND_GLOBAL.LOGIN_ID;
32 l_last_update_date DATE := SYSDATE;
33
34 begin
35 x_return_status := FND_API.G_RET_STS_SUCCESS;
36
37 insert into igw_budget_personnel_details(
38 proposal_id
39 ,version_id
40 ,budget_period_id
41 ,line_item_id
42 ,budget_personnel_detail_id
43 ,person_id
44 ,party_id
45 ,start_date
46 ,end_date
47 ,period_type_code
48 ,appointment_type_code
49 ,salary_requested
50 ,percent_charged
51 ,percent_effort
52 ,cost_sharing_percent
53 ,cost_sharing_amount
54 ,underrecovery_amount
55 ,last_update_date
56 ,last_updated_by
57 ,creation_date
58 ,created_by
59 ,last_update_login
60 ,record_version_number)
61 values
62 ( p_proposal_id
63 ,p_version_id
64 ,p_budget_period_id
65 ,p_line_item_id
66 ,p_budget_personnel_detail_id
67 ,p_person_id
68 ,p_party_id
69 ,p_start_date
70 ,p_end_date
71 ,p_period_type_code
72 ,p_appointment_type_code
73 ,p_salary_requested
74 ,p_percent_charged
75 ,p_percent_effort
76 ,p_cost_sharing_percent
77 ,p_cost_sharing_amount
78 ,p_underrecovery_amount
79 ,l_last_update_date
80 ,l_last_updated_by
81 ,l_last_update_date
82 ,l_last_updated_by
83 ,l_last_update_login
84 ,1);
85
86 open c_budget_personnel;
87 fetch c_budget_personnel into x_ROWID;
88 if (c_budget_personnel%notfound) then
89 close c_budget_personnel;
90 raise no_data_found;
91 end if;
92 close c_budget_personnel;
93
94 exception
95 when others then
96 FND_MSG_PUB.add_exc_msg( p_pkg_name => G_package_name
97 ,p_procedure_name => 'INSERT_ROW' );
98 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
99 RAISE;
100 end insert_row;
101
102
103 -----------------------------------------------------------------------------------
104 procedure UPDATE_ROW (
105 p_rowid ROWID
106 ,p_proposal_id NUMBER
107 ,p_version_id NUMBER
108 ,p_budget_period_id NUMBER
109 ,p_line_item_id NUMBER
110 ,p_budget_personnel_detail_id NUMBER
111 ,p_person_id NUMBER
112 ,p_party_id NUMBER
113 ,p_start_date DATE
114 ,p_end_date DATE
115 ,p_period_type_code VARCHAR2
116 ,p_appointment_type_code VARCHAR2
117 ,p_salary_requested NUMBER
118 ,p_percent_charged NUMBER
119 ,p_percent_effort NUMBER
120 ,p_cost_sharing_percent NUMBER
121 ,p_cost_sharing_amount NUMBER
122 ,p_underrecovery_amount NUMBER
123 ,p_record_version_number NUMBER
124 ,x_return_status OUT NOCOPY VARCHAR2)IS
125
126 l_last_updated_by NUMBER := FND_GLOBAL.USER_ID;
127 l_last_update_login NUMBER := FND_GLOBAL.LOGIN_ID;
128 l_last_update_date DATE := SYSDATE;
129
130 l_row_id ROWID := p_rowid;
131
132 CURSOR get_row_id IS
133 select rowid
134 from igw_budget_personnel_details
135 where budget_personnel_detail_id = p_budget_personnel_detail_id;
136
137 begin
138 x_return_status := FND_API.G_RET_STS_SUCCESS;
139
140 IF l_row_id IS NULL THEN
141 OPEN get_row_id;
142 FETCH get_row_id INTO l_row_id;
143 CLOSE get_row_id;
144 END IF;
145
146 update igw_budget_personnel_details
147 set person_id = p_person_id
148 , party_id = p_party_id
149 , start_date = p_start_date
150 , end_date = p_end_date
151 , period_type_code = p_period_type_code
152 , appointment_type_code = p_appointment_type_code
153 , salary_requested = p_salary_requested
154 , percent_charged = p_percent_charged
155 , percent_effort = p_percent_effort
156 , cost_sharing_percent = p_cost_sharing_percent
157 , cost_sharing_amount = p_cost_sharing_amount
158 , underrecovery_amount = p_underrecovery_amount
159 , record_version_number = record_version_number + 1
160 where rowid = l_row_id
161 and record_version_number = p_record_version_number;
162
163 if (sql%notfound) then
164 FND_MESSAGE.SET_NAME('IGW','IGW_SS_RECORD_CHANGED');
165 FND_MSG_PUB.Add;
166 X_RETURN_STATUS := 'E';
167 end if;
168
169 exception
170 when others then
171 FND_MSG_PUB.add_exc_msg( p_pkg_name => G_package_name
172 ,p_procedure_name => 'UPDATE_ROW' );
173 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
174 RAISE;
175 end update_row;
176 --------------------------------------------------------------------------------------------------
177
178
179 procedure DELETE_ROW (
180 p_rowid IN ROWID
181 ,p_budget_personnel_detail_id NUMBER
182 ,p_proposal_id IN NUMBER
183 ,p_version_id IN NUMBER
184 ,p_budget_period_id IN NUMBER
185 ,p_line_item_id NUMBER
186 ,p_person_id NUMBER
187 ,p_party_id NUMBER
188 ,p_record_version_number IN NUMBER
189 ,x_return_status OUT NOCOPY VARCHAR2) is
190
191 l_row_id ROWID := p_rowid;
192
193 CURSOR get_row_id IS
194 select rowid
195 from igw_budget_personnel_details
196 where budget_personnel_detail_id = p_budget_personnel_detail_id;
197
198 begin
199
200 x_return_status := FND_API.G_RET_STS_SUCCESS;
201
202 IF l_row_id IS NULL THEN
203 OPEN get_row_id;
204 FETCH get_row_id INTO l_row_id;
205 CLOSE get_row_id;
206 END IF;
207
208 delete from igw_budget_personnel_details
209 where rowid = l_row_id
210 and record_version_number = p_record_version_number;
211
212 if (sql%notfound) then
213 FND_MESSAGE.SET_NAME('IGW','IGW_SS_RECORD_CHANGED');
214 FND_MSG_PUB.Add;
215 X_RETURN_STATUS := 'E';
216 end if;
217
218 EXCEPTION
219 WHEN OTHERS THEN
220 FND_MSG_PUB.add_exc_msg( p_pkg_name => G_package_name
221 ,p_procedure_name => 'DELETE_ROW' );
222 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
223 RAISE;
224 end DELETE_ROW;
225
226
227 END;