[Home] [Help]
PACKAGE BODY: APPS.OKL_GENERATE_ACCRUALS_PUB
Source
1 PACKAGE BODY OKL_GENERATE_ACCRUALS_PUB AS
2 /* $Header: OKLPACRB.pls 120.3.12010000.3 2008/10/20 19:41:15 apaul ship $ */
3
4 FUNCTION SUBMIT_ACCRUALS(
5 x_return_status OUT NOCOPY VARCHAR2,
6 x_msg_count OUT NOCOPY NUMBER,
7 x_msg_data OUT NOCOPY VARCHAR2,
8 p_api_version IN NUMBER,
9 p_accrual_date IN DATE,
10 p_batch_name IN VARCHAR2 ) RETURN NUMBER IS
11
12 l_api_version NUMBER := 1.0;
13 l_api_name CONSTANT VARCHAR2(30) := 'SUBMIT_ACCRUALS';
14 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
15 x_request_id NUMBER;
16
17 BEGIN
18
19 SAVEPOINT SUBMIT_ACCRUALS;
20
21 x_return_status := FND_API.G_RET_STS_SUCCESS;
22
23 -- Execute the Main Procedure
24
25 x_request_id := OKL_GENERATE_ACCRUALS_PVT.SUBMIT_ACCRUALS(
26 x_return_status => x_return_status,
27 x_msg_count => x_msg_count,
28 x_msg_data => x_msg_data,
29 p_api_version => l_api_version,
30 p_accrual_date => p_accrual_date,
31 p_batch_name => p_batch_name);
32
33 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
34 RAISE FND_API.G_EXC_ERROR;
35 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
36 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
37 END IF;
38
39 RETURN x_request_id;
40
41 EXCEPTION
42
43 WHEN FND_API.G_EXC_ERROR THEN
44 ROLLBACK TO SUBMIT_ACCRUALS;
45 x_return_status := FND_API.G_RET_STS_ERROR;
46
47 FND_MSG_PUB.Count_and_get(p_encoded => OKL_API.G_FALSE
48 ,p_count => x_msg_count
49 ,p_data => x_msg_data);
50 --Bug 3074377. Adding return statement.
51 RETURN x_request_id;
52
53 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
54 ROLLBACK TO SUBMIT_ACCRUALS;
55 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
56 FND_MSG_PUB.Count_and_get(p_encoded => OKL_API.G_FALSE
57 ,p_count => x_msg_count
58 ,p_data => x_msg_data);
59 --Bug 3074377. Adding return statement.
60 RETURN x_request_id;
61
62 WHEN OTHERS THEN
63 ROLLBACK TO SUBMIT_ACCRUALS;
64 FND_MSG_PUB.ADD_EXC_MSG('OKL_GENERATE_ACCRUAL_PUB','SUBMIT_ACCRUALS');
65 FND_MSG_PUB.Count_and_get(p_encoded => OKL_API.G_FALSE
66 ,p_count => x_msg_count
67 ,p_data => x_msg_data);
68 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
69 --Bug 3074377. Adding return statement.
70 RETURN x_request_id;
71
72 END SUBMIT_ACCRUALS;
73
74 -- This API is used to display the contract receivable value for the accrual override screen
75 FUNCTION CALCULATE_CNTRCT_REC(p_ctr_id IN OKC_K_HEADERS_B.id%TYPE) RETURN NUMBER IS
76 l_receivable_balance NUMBER;
77 BEGIN
78 l_receivable_balance := OKL_GENERATE_ACCRUALS_PVT.CALCULATE_CNTRCT_REC(
79 p_ctr_id => p_ctr_id);
80
81 RETURN l_receivable_balance;
82 END CALCULATE_CNTRCT_REC;
83
84 --This API Validates the Accrual Rule for a Contract
85 PROCEDURE VALIDATE_ACCRUAL_RULE(x_return_status OUT NOCOPY VARCHAR2
86 ,x_msg_count OUT NOCOPY NUMBER
87 ,x_msg_data OUT NOCOPY VARCHAR2
88 ,x_result OUT NOCOPY VARCHAR2
89 ,p_ctr_id IN OKL_K_HEADERS.ID%TYPE) IS
90
91 BEGIN
92 x_return_status := FND_API.G_RET_STS_SUCCESS;
93
94 OKL_GENERATE_ACCRUALS_PVT.VALIDATE_ACCRUAL_RULE
95 (x_return_status => x_return_status
96 ,x_result => x_result
97 ,p_ctr_id => p_ctr_id
98 );
99
100 IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
101 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
102 ELSIF x_return_status = FND_API.G_RET_STS_ERROR THEN
103 RAISE FND_API.G_EXC_ERROR;
104 END IF;
105
106
107 EXCEPTION
108 WHEN FND_API.G_EXC_ERROR THEN
109 FND_MSG_PUB.Count_and_get(p_encoded => FND_API.G_FALSE
110 ,p_count => x_msg_count
111 ,p_data => x_msg_data);
112 x_return_status := FND_API.G_RET_STS_ERROR;
113
114 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
115 FND_MSG_PUB.Count_and_get(p_encoded => FND_API.G_FALSE
116 ,p_count => x_msg_count
117 ,p_data => x_msg_data);
118 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
119
120 WHEN OTHERS THEN
121 FND_MSG_PUB.ADD_EXC_MSG('OKL_GENERATE_ACCRUALS_PUB','VALIDATE_ACCRUAL_RULE');
122 FND_MSG_PUB.Count_and_get(p_encoded => FND_API.G_FALSE
123 ,p_count => x_msg_count
124 ,p_data => x_msg_data);
125 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
126
127 END VALIDATE_ACCRUAL_RULE;
128
129 -- This API performs the accrual catchup process
130 PROCEDURE CATCHUP_ACCRUALS (
131 p_api_version IN NUMBER,
132 p_init_msg_list IN VARCHAR2,
133 p_catchup_rec IN accrual_rec_type,
134 x_return_status OUT NOCOPY VARCHAR2,
135 x_msg_count OUT NOCOPY NUMBER,
136 x_msg_data OUT NOCOPY VARCHAR2,
137 x_tcnv_tbl OUT NOCOPY OKL_TRX_CONTRACTS_PUB.tcnv_tbl_type,
138 x_tclv_tbl OUT NOCOPY OKL_TRX_CONTRACTS_PUB.tclv_tbl_type,
139 p_representation_type IN VARCHAR2 DEFAULT 'PRIMARY' --MGAAP 7263041
140 ) IS
141
142 BEGIN
143 x_return_status := FND_API.G_RET_STS_SUCCESS;
144
145 OKL_GENERATE_ACCRUALS_PVT.CATCHUP_ACCRUALS (
146 p_api_version => p_api_version,
147 p_init_msg_list => p_init_msg_list,
148 p_catchup_rec => p_catchup_rec,
149 x_return_status => x_return_status,
150 x_msg_count => x_msg_count,
151 x_msg_data => x_msg_data,
152 x_tcnv_tbl => x_tcnv_tbl,
153 x_tclv_tbl => x_tclv_tbl,
154 p_representation_type => p_representation_type
155 );
156
157 IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
158 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
159 ELSIF x_return_status = FND_API.G_RET_STS_ERROR THEN
160 RAISE FND_API.G_EXC_ERROR;
161 END IF;
162
163
164 EXCEPTION
165 WHEN FND_API.G_EXC_ERROR THEN
166 FND_MSG_PUB.Count_and_get(p_encoded => FND_API.G_FALSE
167 ,p_count => x_msg_count
168 ,p_data => x_msg_data);
169 x_return_status := FND_API.G_RET_STS_ERROR;
170
171 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
172 FND_MSG_PUB.Count_and_get(p_encoded => FND_API.G_FALSE
173 ,p_count => x_msg_count
174 ,p_data => x_msg_data);
175 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
176
177 WHEN OTHERS THEN
178 FND_MSG_PUB.ADD_EXC_MSG('OKL_GENERATE_ACCRUALS_PUB','CATCHUP_ACCRUALS');
179 FND_MSG_PUB.Count_and_get(p_encoded => FND_API.G_FALSE
180 ,p_count => x_msg_count
181 ,p_data => x_msg_data);
182 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
183
184 END CATCHUP_ACCRUALS;
185
186 -- This API performs the accrual reversal process
187 PROCEDURE REVERSE_ACCRUALS (
188 p_api_version IN NUMBER,
189 p_init_msg_list IN VARCHAR2,
190 p_reverse_rec IN accrual_rec_type,
191 x_return_status OUT NOCOPY VARCHAR2,
192 x_msg_count OUT NOCOPY NUMBER,
193 x_msg_data OUT NOCOPY VARCHAR2,
194 x_tcnv_tbl OUT NOCOPY OKL_TRX_CONTRACTS_PUB.tcnv_tbl_type,
195 x_tclv_tbl OUT NOCOPY OKL_TRX_CONTRACTS_PUB.tclv_tbl_type
196 ) IS
197
198 BEGIN
199 x_return_status := FND_API.G_RET_STS_SUCCESS;
200
201 OKL_GENERATE_ACCRUALS_PVT.REVERSE_ACCRUALS (
202 p_api_version => p_api_version,
203 p_init_msg_list => p_init_msg_list,
204 p_reverse_rec => p_reverse_rec,
205 x_return_status => x_return_status,
206 x_msg_count => x_msg_count,
207 x_msg_data => x_msg_data,
208 x_tcnv_tbl => x_tcnv_tbl,
209 x_tclv_tbl => x_tclv_tbl
210 );
211
212 IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
213 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
214 ELSIF x_return_status = FND_API.G_RET_STS_ERROR THEN
215 RAISE FND_API.G_EXC_ERROR;
216 END IF;
217
218
219 EXCEPTION
220 WHEN FND_API.G_EXC_ERROR THEN
221 FND_MSG_PUB.Count_and_get(p_encoded => FND_API.G_FALSE
222 ,p_count => x_msg_count
223 ,p_data => x_msg_data);
224 x_return_status := FND_API.G_RET_STS_ERROR;
225
226 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
227 FND_MSG_PUB.Count_and_get(p_encoded => FND_API.G_FALSE
228 ,p_count => x_msg_count
229 ,p_data => x_msg_data);
230 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
231
232 WHEN OTHERS THEN
233 FND_MSG_PUB.ADD_EXC_MSG('OKL_GENERATE_ACCRUALS_PUB','REVERSE_ACCRUALS');
234 FND_MSG_PUB.Count_and_get(p_encoded => FND_API.G_FALSE
235 ,p_count => x_msg_count
236 ,p_data => x_msg_data);
237 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
238
239 END REVERSE_ACCRUALS;
240
241 PROCEDURE REVERSE_ACCRUALS (
242 p_api_version IN NUMBER,
243 p_init_msg_list IN VARCHAR2,
244 x_return_status OUT NOCOPY VARCHAR2,
245 x_msg_count OUT NOCOPY NUMBER,
246 x_msg_data OUT NOCOPY VARCHAR2,
247 p_khr_id IN NUMBER,
248 p_reversal_date IN DATE,
249 p_accounting_date IN DATE,
250 p_reverse_from IN DATE,
251 p_reverse_to IN DATE,
252 p_tcn_type IN VARCHAR2) IS
253
254 BEGIN
255 x_return_status := FND_API.G_RET_STS_SUCCESS;
256
257 OKL_GENERATE_ACCRUALS_PVT.REVERSE_ACCRUALS (
258 p_api_version => p_api_version,
259 p_init_msg_list => p_init_msg_list,
260 x_return_status => x_return_status,
261 x_msg_count => x_msg_count,
262 x_msg_data => x_msg_data,
263 p_khr_id => p_khr_id,
264 p_reversal_date => p_reversal_date,
265 p_accounting_date => p_accounting_date,
266 p_reverse_from => p_reverse_from,
267 p_reverse_to => p_reverse_to,
268 p_tcn_type => p_tcn_type);
269
270 IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
271 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
272 ELSIF x_return_status = FND_API.G_RET_STS_ERROR THEN
273 RAISE FND_API.G_EXC_ERROR;
274 END IF;
275
276
277 EXCEPTION
278 WHEN FND_API.G_EXC_ERROR THEN
279 FND_MSG_PUB.Count_and_get(p_encoded => FND_API.G_FALSE
280 ,p_count => x_msg_count
281 ,p_data => x_msg_data);
282 x_return_status := FND_API.G_RET_STS_ERROR;
283
284 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
285 FND_MSG_PUB.Count_and_get(p_encoded => FND_API.G_FALSE
286 ,p_count => x_msg_count
287 ,p_data => x_msg_data);
288 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
289
290 WHEN OTHERS THEN
291 FND_MSG_PUB.ADD_EXC_MSG('OKL_GENERATE_ACCRUALS_PUB','REVERSE_ACCRUALS');
292 FND_MSG_PUB.Count_and_get(p_encoded => FND_API.G_FALSE
293 ,p_count => x_msg_count
294 ,p_data => x_msg_data);
295 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
296
297 END REVERSE_ACCRUALS;
298
299 PROCEDURE REVERSE_ALL_ACCRUALS (
300 p_api_version IN NUMBER,
301 p_init_msg_list IN VARCHAR2,
302 p_khr_id IN NUMBER,
303 p_reverse_date IN DATE,
304 p_description IN VARCHAR2,
305 x_return_status OUT NOCOPY VARCHAR2,
306 x_msg_count OUT NOCOPY NUMBER,
307 x_msg_data OUT NOCOPY VARCHAR2) IS
308
309 BEGIN
310 x_return_status := FND_API.G_RET_STS_SUCCESS;
311
312 OKL_GENERATE_ACCRUALS_PVT.REVERSE_ALL_ACCRUALS (
313 p_api_version => p_api_version,
314 p_init_msg_list => p_init_msg_list,
315 p_khr_id => p_khr_id,
316 p_reverse_date => p_reverse_date,
317 p_description => p_description,
318 x_return_status => x_return_status,
319 x_msg_count => x_msg_count,
320 x_msg_data => x_msg_data);
321
322 IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
323 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
324 ELSIF x_return_status = FND_API.G_RET_STS_ERROR THEN
325 RAISE FND_API.G_EXC_ERROR;
326 END IF;
327
328
329 EXCEPTION
330 WHEN FND_API.G_EXC_ERROR THEN
331 FND_MSG_PUB.Count_and_get(p_encoded => FND_API.G_FALSE
332 ,p_count => x_msg_count
333 ,p_data => x_msg_data);
334 x_return_status := FND_API.G_RET_STS_ERROR;
335
336 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
337 FND_MSG_PUB.Count_and_get(p_encoded => FND_API.G_FALSE
338 ,p_count => x_msg_count
339 ,p_data => x_msg_data);
340 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
341
342 WHEN OTHERS THEN
343 FND_MSG_PUB.ADD_EXC_MSG('OKL_GENERATE_ACCRUALS_PUB','REVERSE_ALL_ACCRUALS');
344 FND_MSG_PUB.Count_and_get(p_encoded => FND_API.G_FALSE
345 ,p_count => x_msg_count
346 ,p_data => x_msg_data);
347 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
348
349 END REVERSE_ALL_ACCRUALS;
350
351 -- This API accelerates accrual
352 PROCEDURE ACCELERATE_ACCRUALS (
353 p_api_version IN NUMBER,
354 p_init_msg_list IN VARCHAR2,
355 x_return_status OUT NOCOPY VARCHAR2,
356 x_msg_count OUT NOCOPY NUMBER,
357 x_msg_data OUT NOCOPY VARCHAR2,
358 p_acceleration_rec IN acceleration_rec_type,
359 p_representation_type IN VARCHAR2 DEFAULT 'PRIMARY', --MGAAP 7263041
360 x_trx_number OUT NOCOPY OKL_TRX_CONTRACTS.TRX_NUMBER%TYPE) IS --MGAAP 7263041
361
362 BEGIN
363 x_return_status := FND_API.G_RET_STS_SUCCESS;
364
365 OKL_GENERATE_ACCRUALS_PVT.ACCELERATE_ACCRUALS (
366 p_api_version => p_api_version,
367 p_init_msg_list => p_init_msg_list,
368 x_return_status => x_return_status,
369 x_msg_count => x_msg_count,
370 x_msg_data => x_msg_data,
371 p_acceleration_rec => p_acceleration_rec,
372 p_representation_type => p_representation_type,
373 x_trx_number => x_trx_number);
374
375 IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
376 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
377 ELSIF x_return_status = FND_API.G_RET_STS_ERROR THEN
378 RAISE FND_API.G_EXC_ERROR;
379 END IF;
380
381
382 EXCEPTION
383 WHEN FND_API.G_EXC_ERROR THEN
384 FND_MSG_PUB.Count_and_get(p_encoded => FND_API.G_FALSE
385 ,p_count => x_msg_count
386 ,p_data => x_msg_data);
387 x_return_status := FND_API.G_RET_STS_ERROR;
388
389 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
390 FND_MSG_PUB.Count_and_get(p_encoded => FND_API.G_FALSE
391 ,p_count => x_msg_count
392 ,p_data => x_msg_data);
393 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
394
395 WHEN OTHERS THEN
396 FND_MSG_PUB.ADD_EXC_MSG('OKL_GENERATE_ACCRUALS_PUB','ACCELERATE_ACCRUALS');
397 FND_MSG_PUB.Count_and_get(p_encoded => FND_API.G_FALSE
398 ,p_count => x_msg_count
399 ,p_data => x_msg_data);
400 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
401
402 END ACCELERATE_ACCRUALS;
403
404 END OKL_GENERATE_ACCRUALS_PUB;