DBA Data[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;