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