[Home] [Help]
PACKAGE BODY: APPS.PSB_WS_LINE_YEAR_I_PVT
Source
1 PACKAGE BODY PSB_WS_LINE_YEAR_I_PVT AS
2 /* $Header: PSBWLYIB.pls 120.3 2005/09/23 08:28:08 shtripat ship $ */
3
4 G_PKG_NAME CONSTANT VARCHAR2(30):= 'PSB_WS_LINE_YEAR_I_PVT';
5
6
7 /*=======================================================================+
8 | PROCEDURE Insert_Row |
9 +=======================================================================*/
10
11 -- Bug#4571412.
12 -- Added p_year_name_C1..12 parameters to
13 -- pass Budget Year name to Create_Notes API.
14
15 PROCEDURE Insert_Row
16 (
17 p_api_version IN NUMBER,
18 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
19 p_commit IN VARCHAR2 := FND_API.G_FALSE,
20 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
21 p_return_status OUT NOCOPY VARCHAR2,
22 p_msg_count OUT NOCOPY NUMBER,
23 p_msg_data OUT NOCOPY VARCHAR2,
24 --
25 p_worksheet_id IN NUMBER,
26 p_position_line_id IN NUMBER,
27 p_element_set_id IN NUMBER,
28 p_salary_account_line IN VARCHAR2,
29 p_budget_group_id IN NUMBER,
30 p_service_package_id IN NUMBER,
31 p_flex_code IN NUMBER,
32 p_concatenated_segments IN VARCHAR2,
33 p_currency_code IN VARCHAR2,
34 --
35 p_note IN VARCHAR2,
36 p_column_count IN NUMBER,
37 --
38 p_year_id_C1 IN NUMBER,
39 p_year_name_C1 IN VARCHAR2,
40 p_ytd_amount_C1 IN NUMBER,
41 p_year_id_C2 IN NUMBER,
42 p_year_name_C2 IN VARCHAR2,
43 p_ytd_amount_C2 IN NUMBER,
44 p_year_id_C3 IN NUMBER,
45 p_year_name_C3 IN VARCHAR2,
46 p_ytd_amount_C3 IN NUMBER,
47 p_year_id_C4 IN NUMBER,
48 p_year_name_C4 IN VARCHAR2,
49 p_ytd_amount_C4 IN NUMBER,
50 p_year_id_C5 IN NUMBER,
51 p_year_name_C5 IN VARCHAR2,
52 p_ytd_amount_C5 IN NUMBER,
53 p_year_id_C6 IN NUMBER,
54 p_year_name_C6 IN VARCHAR2,
55 p_ytd_amount_C6 IN NUMBER,
56 p_year_id_C7 IN NUMBER,
57 p_year_name_C7 IN VARCHAR2,
58 p_ytd_amount_C7 IN NUMBER,
59 p_year_id_C8 IN NUMBER,
60 p_year_name_C8 IN VARCHAR2,
61 p_ytd_amount_C8 IN NUMBER,
62 p_year_id_C9 IN NUMBER,
63 p_year_name_C9 IN VARCHAR2,
64 p_ytd_amount_C9 IN NUMBER,
65 p_year_id_C10 IN NUMBER,
66 p_year_name_C10 IN VARCHAR2,
67 p_ytd_amount_C10 IN NUMBER,
68 p_year_id_C11 IN NUMBER,
69 p_year_name_C11 IN VARCHAR2,
70 p_ytd_amount_C11 IN NUMBER,
71 p_year_id_C12 IN NUMBER,
72 p_year_name_C12 IN VARCHAR2,
73 p_ytd_amount_C12 IN NUMBER
74 )
75 IS
76 --
77 l_api_name CONSTANT VARCHAR2(30) := 'Insert_Row';
78 l_api_version CONSTANT NUMBER := 1.0;
79 --
80 l_return_status VARCHAR2(1);
81 --
82 l_period_amount PSB_WS_ACCT1.g_prdamt_tbl_type;
83 l_index BINARY_INTEGER;
84 --
85 l_budget_year_id NUMBER;
86 l_ytd_amount NUMBER;
87 l_account_line_id NUMBER;
88 l_create_zero_bal VARCHAR2(10);
89
90 l_budget_year_name VARCHAR2(100);
91
92 BEGIN
93 --
94 SAVEPOINT Insert_Row_Pvt ;
95 --
96 IF NOT FND_API.Compatible_API_Call ( l_api_version,
97 p_api_version,
98 l_api_name,
99 G_PKG_NAME )
100 THEN
101 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
102 END IF;
103
104 --
105
106 IF FND_API.to_Boolean ( p_init_msg_list ) THEN
107 FND_MSG_PUB.initialize ;
108 END IF;
109 --
110 p_return_status := FND_API.G_RET_STS_SUCCESS ;
111
112
113
114 -- Initialize the table
115 FOR l_index in 1..PSB_WS_ACCT1.G_MAX_NUM_AMOUNTS LOOP
116 l_period_amount(l_index) := NULL;
117 END LOOP;
118
119 --
120 -- process only for displayed columns
121
122 -- Bug#4571412.
123 -- Get budget year name.
124 FOR i in 1..p_column_count LOOP
125
126 IF i = 1 THEN
127 l_budget_year_id := p_year_id_C1;
128 l_budget_year_name := p_year_name_C1;
129 l_ytd_amount := p_ytd_amount_C1;
130 ELSIF i =2 THEN
131 l_budget_year_id := p_year_id_C2;
132 l_budget_year_name := p_year_name_C2;
133 l_ytd_amount := p_ytd_amount_C2;
134 ELSIF i =3 THEN
135 l_budget_year_id := p_year_id_C3;
136 l_budget_year_name := p_year_name_C3;
137 l_ytd_amount := p_ytd_amount_C3;
138 ELSIF i =4 THEN
139 l_budget_year_id := p_year_id_C4;
140 l_budget_year_name := p_year_name_C4;
141 l_ytd_amount := p_ytd_amount_C4;
142 ELSIF i =5 THEN
143 l_budget_year_id := p_year_id_C5;
144 l_budget_year_name := p_year_name_C5;
145 l_ytd_amount := p_ytd_amount_C5;
146 ELSIF i =6 THEN
147 l_budget_year_id := p_year_id_C6;
148 l_budget_year_name := p_year_name_C6;
149 l_ytd_amount := p_ytd_amount_C6;
150 ELSIF i =7 THEN
151 l_budget_year_id := p_year_id_C7;
152 l_budget_year_name := p_year_name_C7;
153 l_ytd_amount := p_ytd_amount_C7;
154 ELSIF i =8 THEN
155 l_budget_year_id := p_year_id_C8;
156 l_budget_year_name := p_year_name_C8;
157 l_ytd_amount := p_ytd_amount_C8;
158 ELSIF i =9 THEN
159 l_budget_year_id := p_year_id_C9;
160 l_budget_year_name := p_year_name_C9;
161 l_ytd_amount := p_ytd_amount_C9;
162 ELSIF i =10 THEN
163 l_budget_year_id := p_year_id_C10;
164 l_budget_year_name := p_year_name_C10;
165 l_ytd_amount := p_ytd_amount_C10;
166 ELSIF i =11 THEN
167 l_budget_year_id := p_year_id_C11;
168 l_budget_year_name := p_year_name_C11;
169 l_ytd_amount := p_ytd_amount_C11;
170 ELSIF i =12 THEN
171 l_budget_year_id := p_year_id_C12;
172 l_budget_year_name := p_year_name_C12;
173 l_ytd_amount := p_ytd_amount_C12;
174 END IF;
175
176
177 -- amount types can be B-Budget, A-Actuals, E- Estimate, F -FTE
178 -- Create new rows only for current and proposed years
179 -- and only when amount type is not FTE
180
181 /* Bug 3246927 Start */
182
183 IF i = p_column_count THEN
184 l_ytd_amount := NVL(l_ytd_amount,0);
185 END IF;
186
187 IF (l_ytd_amount IS NOT NULL) then
188 -- IF (nvl(l_ytd_amount,0) <> 0) then
189
190 /* Bug 3246927 End */
191
192 IF p_position_line_id IS NULL THEN
193
194 PSB_WS_ACCT_PVT.Create_Account_Dist
195 (
196 p_api_version => 1.0,
197 p_init_msg_list => FND_API.G_FALSE,
198 p_commit => FND_API.G_FALSE,
199 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
200 p_return_status => l_return_status,
201 p_msg_count => p_msg_count,
202 p_msg_data => p_msg_data,
203 --
204 p_account_line_id => l_account_line_id,
205 p_worksheet_id => p_worksheet_id,
206 p_map_accounts => TRUE,
207 p_budget_year_id => l_budget_year_id,
208 p_budget_group_id => p_budget_group_id,
209 p_flex_code => p_flex_code,
210 p_concatenated_segments => p_concatenated_segments,
211 p_currency_code => p_currency_code,
212 p_balance_type => 'E', -- Always Estimate
213 p_ytd_amount => l_ytd_amount,
214 p_distribute_flag => FND_API.G_TRUE,
215 p_period_amount => l_period_amount,
216 p_service_package_id => p_service_package_id
217 );
218
219 /* Bug No 1584464 Start */
220 ---- Create Note Id and Inserts a record in PSB_WS_ACCOUNT_LINE_NOTES table
221
222 if p_note is not null then
223 -- Bug#4571412
224 -- Adding parameters to the call to make it sync
225 -- with it's definiiton.
226 PSB_WS_ACCT1.Create_Note
227 (p_return_status => l_return_status,
228 p_account_line_id => l_account_line_id,
229 p_note => p_note,
230 p_chart_of_accounts_id => NULL,
231 p_budget_year => l_budget_year_name,
232 p_cc_id => NULL,
233 p_concatenated_segments => p_concatenated_segments
234 );
235 end if;
236
237 ----
238 /* Bug No 1584464 End */
239
240 ELSE
241 PSB_WS_ACCT_PVT.Create_Account_Dist
242 (
243 p_api_version => 1.0,
244 p_init_msg_list => FND_API.G_FALSE,
245 p_commit => FND_API.G_FALSE,
246 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
247 p_return_status => l_return_status,
248 p_msg_count => p_msg_count,
249 p_msg_data => p_msg_data,
250 --
251 p_account_line_id => l_account_line_id,
252 p_worksheet_id => p_worksheet_id,
253 p_map_accounts => TRUE,
254 p_budget_year_id => l_budget_year_id,
255 p_budget_group_id => p_budget_group_id,
256 p_flex_code => p_flex_code,
257 p_concatenated_segments => p_concatenated_segments,
258 p_currency_code => p_currency_code,
259 p_balance_type => 'E', -- Always Estimate
260 p_ytd_amount => l_ytd_amount,
261 p_distribute_flag => FND_API.G_TRUE,
262 p_period_amount => l_period_amount,
263 p_position_line_id => p_position_line_id,
264 p_element_set_id => p_element_set_id,
265 p_salary_account_line => p_salary_account_line,
266 p_service_package_id => p_service_package_id
267 );
268 END IF;
269 --
270 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
271 fnd_message.set_name('PSB', 'WS_CREATE_DIST_FAILED_EXC');
272 RAISE FND_API.G_EXC_ERROR ;
273 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
274 fnd_message.set_name('PSB', 'WS_CREATE_DIST_FAILED_UNEXC');
275 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
276 END IF;
277
278
279 END IF;
280
281
282
283 END LOOP;
284 --
285 IF FND_API.To_Boolean ( p_commit ) THEN
286 COMMIT WORK;
287 END iF;
288 --
289 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
290 p_data => p_msg_data );
291 --
292 EXCEPTION
293 --
294 WHEN FND_API.G_EXC_ERROR THEN
295 --
296 ROLLBACK TO Insert_Row_Pvt ;
297 p_return_status := FND_API.G_RET_STS_ERROR;
298 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
299 p_data => p_msg_data );
300 --
301 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
302 --
303 ROLLBACK TO Insert_Row_Pvt ;
304 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
305 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
306 p_data => p_msg_data );
307 --
308 WHEN OTHERS THEN
309 --
310 ROLLBACK TO Insert_Row_Pvt ;
311 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
312 --
313 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
314 FND_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME,
315 l_api_name);
316 END if;
317 --
318 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
319 p_data => p_msg_data );
320 --
321 END Insert_Row;
322 /*-------------------------------------------------------------------------*/
323
324 END PSB_WS_LINE_YEAR_I_PVT;