[Home] [Help]
PACKAGE BODY: APPS.PSB_WS_LINE_PERIOD_O_PVT
Source
1 PACKAGE BODY PSB_WS_LINE_PERIOD_O_PVT AS
2 /* $Header: PSBWLPOB.pls 115.5 2003/12/18 11:01:49 vbellur ship $ */
3
4 G_PKG_NAME CONSTANT VARCHAR2(30):= 'PSB_WS_LINE_PERIOD_O_PVT';
5
6
7
8 /*==========================================================================+
9 | PROCEDURE Update_Row |
10 +==========================================================================*/
11
12 PROCEDURE Update_Row
13 (
14 p_api_version IN NUMBER,
15 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
16 p_commit IN VARCHAR2 := FND_API.G_FALSE,
17 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
18 p_return_status OUT NOCOPY VARCHAR2,
19 p_msg_count OUT NOCOPY NUMBER,
20 p_msg_data OUT NOCOPY VARCHAR2,
21 --
22 p_worksheet_id IN NUMBER,
23 p_service_package_id IN NUMBER,
24 p_year_id IN NUMBER,
25 p_year_type IN VARCHAR2,
26 p_balance_type IN VARCHAR2,
27 p_wal_id IN NUMBER,
28 --
29 p_column_count IN NUMBER,
30 --
31 p_ytd_amount IN NUMBER,
32 p_amount_P1 IN NUMBER,
33 p_amount_P2 IN NUMBER,
34 p_amount_P3 IN NUMBER,
35 p_amount_P4 IN NUMBER,
36 p_amount_P5 IN NUMBER,
37 p_amount_P6 IN NUMBER,
38 p_amount_P7 IN NUMBER,
39 p_amount_P8 IN NUMBER,
40 p_amount_P9 IN NUMBER,
41 p_amount_P10 IN NUMBER,
42 p_amount_P11 IN NUMBER,
43 p_amount_P12 IN NUMBER
44 )
45 IS
46 --
47 l_api_name CONSTANT VARCHAR2(30) := 'Update_Row';
48 l_api_version CONSTANT NUMBER := 1.0;
49 --
50 l_period_amount PSB_WS_ACCT1.g_prdamt_tbl_type;
51 --
52 l_return_status VARCHAR2(1);
53 l_distribute_flag VARCHAR2(1);
54
55 l_index BINARY_INTEGER;
56 --
57 BEGIN
58 --
59 --
60 SAVEPOINT Update_Row_Pvt ;
61 --
62 IF NOT FND_API.Compatible_API_Call ( l_api_version,
63 p_api_version,
64 l_api_name,
65 G_PKG_NAME )
66 THEN
67 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
68 END IF;
69 --
70
71 IF FND_API.to_Boolean ( p_init_msg_list ) THEN
72 FND_MSG_PUB.initialize ;
73 END IF;
74 --
75 p_return_status := FND_API.G_RET_STS_SUCCESS ;
76 --
77
78 -- Initialize the table
79 FOR l_index in 1..PSB_WS_ACCT1.G_MAX_NUM_AMOUNTS LOOP
80 l_period_amount(l_index) := NULL;
81 END LOOP;
82
83
84 l_period_amount(1) := p_amount_P1;
85 l_period_amount(2) := p_amount_P2;
86 l_period_amount(3) := p_amount_P3;
87 l_period_amount(4) := p_amount_P4;
88 l_period_amount(5) := p_amount_P5;
89 l_period_amount(6) := p_amount_P6;
90 l_period_amount(7) := p_amount_P7;
91 l_period_amount(8) := p_amount_P8;
92 l_period_amount(9) := p_amount_P9;
93 l_period_amount(10) := p_amount_P10;
94 l_period_amount(11) := p_amount_P11;
95 l_period_amount(12) := p_amount_P12;
96
97 l_distribute_flag := FND_API.G_TRUE;
98
99
100
101 -- Added the following loop for Bug 3243919
102 FOR l_index in 1..PSB_WS_ACCT1.G_MAX_NUM_AMOUNTS LOOP
103 IF nvl(l_period_amount(l_index),0) <> 0 THEN
104 l_distribute_flag := FND_API.G_FALSE;
105 END IF;
106 END LOOP;
107
108
109 -- amount types can be B-Budget, A-Actuals, E- Estimate, F -FTE
110 -- Update rows only for current and proposed years
111 -- and only when amount type is not FTE
112 IF p_balance_type = 'E' THEN
113
114 -- user enters a value for an year for which no row currently exists
115 -- create row
116
117 PSB_WS_ACCT_PVT.Create_Account_Dist
118 (
119 p_api_version => 1.0,
120 p_init_msg_list => FND_API.G_FALSE,
121 p_commit => FND_API.G_FALSE,
122 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
123 p_return_status => l_return_status,
124 p_msg_count => p_msg_count,
125 p_msg_data => p_msg_data,
126 --
127 -- Changed p_distribute_flag to l_distribute_flag for bug 3243919
128 p_distribute_flag => l_distribute_flag,
129 p_worksheet_id => p_worksheet_id,
130 p_account_line_id => p_wal_id,
131 p_service_package_id => p_service_package_id,
132 p_ytd_amount => p_ytd_amount,
133 --
134 p_period_amount => l_period_amount
135 );
136
137 END IF;
138
139 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
140 RAISE FND_API.G_EXC_ERROR ;
141 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
142 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
143 END IF;
144
145
146 IF FND_API.To_Boolean ( p_commit ) THEN
147 COMMIT WORK;
148 END iF;
149 --
150 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
151 p_data => p_msg_data );
152 --
153 EXCEPTION
154 --
155 WHEN FND_API.G_EXC_ERROR THEN
156 --
157 ROLLBACK TO Update_Row_Pvt ;
158 p_return_status := FND_API.G_RET_STS_ERROR;
159 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
160 p_data => p_msg_data );
161 --
162 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
163 --
164 ROLLBACK TO Update_Row_Pvt ;
165 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
166 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
167 p_data => p_msg_data );
168 --
169 WHEN OTHERS THEN
170 --
171 ROLLBACK TO Update_Row_Pvt ;
172 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
173 --
174 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
175 FND_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME,
176 l_api_name);
177 END if;
178 --
179 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
180 p_data => p_msg_data );
181 --
182
183
184
185
186 END Update_Row;
187 /* ----------------------------------------------------------------------- */
188
189
190
191
192 /*==========================================================================+
193 | PROCEDURE Delete_Row |
194 +==========================================================================*/
195
196 PROCEDURE Delete_Row
197 (
198 p_api_version IN NUMBER,
199 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
200 p_commit IN VARCHAR2 := FND_API.G_FALSE,
201 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
202 p_return_status OUT NOCOPY VARCHAR2,
203 p_msg_count OUT NOCOPY NUMBER,
204 p_msg_data OUT NOCOPY VARCHAR2,
205 --
206 p_wal_id IN NUMBER
207 )
208 IS
209 --
210 l_api_name CONSTANT VARCHAR2(30) := 'Delete_Row';
211 l_api_version CONSTANT NUMBER := 1.0;
212 --
213
214 --
215 BEGIN
216 --
217 SAVEPOINT Delete_Row_Pvt ;
218 --
219 IF NOT FND_API.Compatible_API_Call ( l_api_version,
220 p_api_version,
221 l_api_name,
222 G_PKG_NAME )
223 THEN
224 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
225 END IF;
226 --
227
228 IF FND_API.to_Boolean ( p_init_msg_list ) THEN
229 FND_MSG_PUB.initialize ;
230 END IF;
231 --
232 p_return_status := FND_API.G_RET_STS_SUCCESS ;
233 --
234
235 DELETE FROM PSB_WS_ACCOUNT_LINES
236 WHERE account_line_id = p_wal_id;
237
238 IF (SQL%NOTFOUND) THEN
239 RAISE NO_DATA_FOUND ;
240 END IF;
241
242 --
243 IF FND_API.To_Boolean ( p_commit ) THEN
244 COMMIT WORK;
245 END iF;
246 --
247 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
248 p_data => p_msg_data );
249
250 EXCEPTION
251 --
252 WHEN FND_API.G_EXC_ERROR THEN
253 --
254 ROLLBACK TO Delete_Row_Pvt ;
255 p_return_status := FND_API.G_RET_STS_ERROR;
256 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
257 p_data => p_msg_data );
258 --
259 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
260 --
261 ROLLBACK TO Delete_Row_Pvt ;
262 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
263 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
264 p_data => p_msg_data );
265 --
266 WHEN OTHERS THEN
267 --
268 ROLLBACK TO Delete_Row_Pvt ;
269 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
270 --
271 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
272 FND_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME,
273 l_api_name);
274 END if;
275 --
276 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
277 p_data => p_msg_data );
278 --
279 END Delete_Row;
280 /* ----------------------------------------------------------------------- */
281
282 END PSB_WS_LINE_PERIOD_O_PVT;