DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_PERIOD_SWEEP_PVT

Source


1 PACKAGE BODY OKL_PERIOD_SWEEP_PVT AS
2 /* $Header: OKLRSWPB.pls 120.13.12010000.3 2008/11/13 05:55:43 racheruv ship $ */
3 
4 --- This procedure creates report. It is called from the main procedure
5 
6 PROCEDURE CREATE_REPORT(l_start_date    IN DATE,
7                         l_end_date      IN DATE,
8                         l_mode          IN VARCHAR2,
9                         p_period_from   IN VARCHAR2,
10                         p_period_to     IN VARCHAR2,
11                         l_to_start_date IN DATE,
12                         p_ledger_id     IN VARCHAR2)
13 IS
14 
15 CURSOR acct_csr(p_gl_date_from  DATE,
16                 p_gl_date_to    DATE)
17 IS
18  SELECT DISTINCT dstrs.SOURCE_ID,
19                  dstrs.SOURCE_TABLE,
20                  dstrs.GL_DATE
21    FROM OKL_TRNS_ACC_DSTRS dstrs,XLA_EVENTS xle
22   WHERE dstrs.GL_DATE BETWEEN p_gl_date_from AND p_gl_date_to
23     AND dstrs.SET_OF_BOOKS_ID = p_ledger_id
24     AND dstrs.ACCOUNTING_EVENT_ID =xle.EVENT_ID
25     AND xle.EVENT_STATUS_CODE IN ('I','U')
26   ORDER BY GL_DATE;
27 
28 acct_rec acct_csr%ROWTYPE;
29 
30 --Cursors to fetch the information to be printed on the report
31 -- Changed by Santonyr on 02 Apr 2004
32 -- Changed okl_trx_types_tl to okl_trx_types_v in the cursor
33 -- select statement as it retrives the records with other languages too
34 
35 CURSOR tcn_csr (p_source_id NUMBER) IS
36 SELECT khr.contract_number,
37        try.name  trx_type,
38        sty.name stream_type,
39        tcn.trx_number,
40        tcn.date_transaction_occurred,
41        tcl.line_number,
42        tcl.amount line_amount
43 FROM okl_trx_contracts_all tcn,
44      okl_txl_cntrct_lns_all tcl,
45      okl_strm_type_tl sty,
46      okl_trx_types_v try,
47      okc_k_headers_all_b khr
48 WHERE tcl.id = p_source_id
49 AND   tcn.id = tcl.tcn_id
50 AND   tcl.sty_id = sty.id(+)
51 AND   tcn.try_id = try.id
52 AND   khr.id = tcn.khr_id
53 --added by rkuttiya for MultiGAAP Project
54 AND   tcn.set_of_books_id = p_ledger_id;
55 
56 -- Changed by Santonyr on 02 Apr 2004
57 -- Changed okl_trx_types_tl to okl_trx_types_v in the cursor
58 -- select statement as it retrives the records with other languages too
59 
60 --rkuttiya commented out following cursor for MultiGAAP Project
61 --no longer needed
62 /* CURSOR tas_csr(p_source_id NUMBER) IS
63 SELECT khr.contract_number,
64        try.name trx_type,
65        tas.trans_number,
66        tas.date_trans_occurred,
67        tal.line_number,
68        tal.original_cost line_amount
69 FROM okl_trx_assets tas,
70      okl_txl_assets_b tal,
71      okl_trx_types_v try,
72      okc_k_headers_all_b khr
73 WHERE tal.id = p_source_id
74 AND   tas.id = tal.tas_id
75 AND   tas.try_id = try.id
76 AND   khr.id = tal.dnz_khr_id;
77 */
78 
79 
80 tcn_rec    tcn_csr%ROWTYPE;
81 
82 --rkuttiya commented out following for Multigaap Project
83 --tas_rec    tas_csr%ROWTYPE;
84 l_ledger_name  VARCHAR2(30);
85 
86 BEGIN
87 
88       l_ledger_name := OKL_ACCOUNTING_UTIL.get_set_of_books_name (p_ledger_id);
89      INSERT INTO OKL_G_REPORTS_GT(VALUE1_TEXT,VALUE2_TEXT,VALUE1_DATE)
90      VALUES('HEADER' ,l_ledger_name, l_to_start_date);
91 
92     FOR acct_rec IN acct_csr(l_start_date,l_end_date)
93     LOOP
94       IF acct_rec.source_table = 'OKL_TXL_CNTRCT_LNS' THEN
95         OPEN tcn_csr(acct_rec.source_id);
96         FETCH tcn_csr INTO tcn_rec;
97         IF (tcn_csr%FOUND) THEN
98            INSERT INTO
99            OKL_G_REPORTS_GT(VALUE1_TEXT,
100                             VALUE2_TEXT,
101                             VALUE3_TEXT,
102                             VALUE4_TEXT,
103                             VALUE5_TEXT,
104                             VALUE1_DATE,
105                             VALUE1_NUM,
106                             VALUE2_NUM,
107                             VALUE2_DATE)
108                      VALUES('LINES',
109                             tcn_rec.contract_number,
110                             tcn_rec.trx_type,
111                             tcn_rec.stream_type,
112                             tcn_rec.trx_number,
113                             tcn_rec.date_transaction_occurred,
114                             tcn_rec.line_number,
115                             tcn_rec.line_amount,
116                             acct_rec.gl_date);
117         END IF;
118       CLOSE tcn_csr;
119     END IF;
120 
121 --rkuttiya commented out following code for MultiGAAP Project
122 -- no longer needed
123 /*
124      IF acct_rec.source_table = 'OKL_TXL_ASSETS_B'  THEN
125           OPEN tas_csr(acct_rec.source_id);
126           FETCH tas_csr INTO tas_rec;
127           IF (tas_csr%FOUND) THEN
128           INSERT INTO OKL_G_REPORTS_GT(VALUE1_TEXT,
129                                        VALUE2_TEXT,
130                                        VALUE3_TEXT,
131                                        VALUE4_TEXT,
132                                        VALUE5_TEXT,
133                                        VALUE1_DATE,
134                                        VALUE1_NUM,
135                                        VALUE2_NUM,
136                                        VALUE2_DATE)
137                                 VALUES('LINES',
138                                        tas_rec.contract_number,
139                                        tas_rec.trx_type,
140                                        null,
141                                        tas_rec.trans_number,
142                                        tas_rec.date_trans_occurred,
143                                        tas_rec.line_number,
144                                        tas_rec.line_amount,
145                                        acct_rec.gl_date);
146         END IF;
147       CLOSE tas_csr;
148     END IF;
149 */
150 
151   END LOOP;
152 END CREATE_REPORT;
153 
154 
155 
156 --- This is the main procedure for sweep process. It takes four arguments. If run option
157 --- is 'REPORT ONLY' then it only generates report, otherwise it does both processing and
158 --- generates report
159 
160 PROCEDURE OKL_PERIOD_SWEEP (p_errbuf               OUT NOCOPY VARCHAR2,
161                             p_retcode              OUT NOCOPY NUMBER,
162                             p_representation_code  IN  VARCHAR2,
163                             p_period_from          IN VARCHAR2,
164                             p_period_to            IN VARCHAR2,
165                             p_run_option           IN VARCHAR2)
166 IS
167 
168  l_tabv_tbl           OKL_TRNS_ACC_DSTRS_PUB.TABV_TBL_TYPE;
169  x_tabv_tbl           OKL_TRNS_ACC_DSTRS_PUB.TABV_TBL_TYPE;
170  l_aetv_tbl           OKL_ACCT_EVENT_PUB.aetv_tbl_type;
171  x_aetv_tbl           OKL_ACCT_EVENT_PUB.aetv_tbl_type;
172  l_aehv_tbl           OKL_ACCT_EVENT_PUB.aehv_tbl_type;
173  x_aehv_tbl           OKL_ACCT_EVENT_PUB.aehv_tbl_type;
174 
175 
176  i                    NUMBER:=0;
177  j                    NUMBER:=0;
178  k                    NUMBER:=0;
179  l_end_date           DATE;
180  l_start_date         DATE;
181  l_to_start_date      DATE;
182  l_to_end_date        DATE;
183  l_return_status      VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
184  l_api_version        NUMBER := 1.0;
185  l_init_msg_list      VARCHAR2(1);
186  l_msg_count          NUMBER ;
187  l_msg_data           VARCHAR2(2000);
188  l_period_status      VARCHAR2(1);
189  l_event_id           NUMBER := -99;
190 
191  TYPE update_event_rec IS RECORD (
192       tcn_id          NUMBER,
193       event_id        NUMBER,
194       accrual_reversal_date DATE,
195       trx_type_class VARCHAR2(30));
196 
197  l_api_name           VARCHAR2(30) := 'OKL_PERIOD_SWEEP';
198  x_msg_count          NUMBER;
199  x_msg_data           VARCHAR2(2000);
200  x_return_status      VARCHAR2(1);
201  l_ledger_id          NUMBER;
202 
203  TYPE l_tcn_tbl_type IS TABLE OF update_event_rec INDEX BY BINARY_INTEGER;
204  l_tcn_tbl l_tcn_tbl_type;
205 
206  x_tcnv_rec           OKL_TRX_CONTRACTS_PUB.tcnv_rec_type;
207  l_tcnv_rec           OKL_TRX_CONTRACTS_PUB.tcnv_rec_type;
208 
209  CURSOR dist_csr(p_ledger_id    NUMBER,
210                  p_gl_date_from DATE,
211                  p_gl_date_to   DATE)
212  IS
213  SELECT dstrs.ID,dstrs.ACCOUNTING_EVENT_ID,dstrs.SOURCE_ID
214    FROM OKL_TRNS_ACC_DSTRS dstrs,XLA_EVENTS xle
215   WHERE dstrs.GL_DATE BETWEEN p_gl_date_from AND p_gl_date_to
216     AND dstrs.SET_OF_BOOKS_ID = p_ledger_id
217     AND dstrs.ACCOUNTING_EVENT_ID =xle.EVENT_ID
218     AND xle.EVENT_STATUS_CODE IN ('I','U')
219   ORDER BY ACCOUNTING_EVENT_ID;
220 
221  CURSOR get_tcn_info(p_txl_id NUMBER,
222                      p_ledger_id NUMBER) IS
223  SELECT TCN.ID,
224         TCN.ACCRUAL_REVERSAL_DATE,
225         TRY.TRX_TYPE_CLASS
226    FROM OKL_TXL_CNTRCT_LNS_ALL TXL ,
227         OKL_TRX_CONTRACTS_ALL TCN,
228         OKL_TRX_TYPES_B TRY
229   WHERE TXL.ID = p_txl_id AND
230         TXL.TCN_ID = TCN.ID AND
231         TCN.TRY_ID = TRY.ID
232         --rkuttiya added for Multi GAAP Project
233         AND TCN.SET_OF_BOOKS_ID = p_ledger_id;
234 
235  CURSOR get_accrual_reversal_date(p_ledger_id NUMBER,p_accrual_date Date) IS
236  SELECT end_date +1 accrual_reversal_date
237    FROM gl_period_statuses
238   WHERE application_id = 540
239     AND set_of_books_id =p_ledger_id
240     AND p_accrual_date BETWEEN start_date AND end_date;
241 
242  --rkuttiya added for MUltiGAAP Project
243  CURSOR c_ledger_id(p_representation_code IN VARCHAR2) IS
244  SELECT ledger_id
245    FROM okl_representations_v
246   WHERE representation_code = p_representation_code;
247 
248 BEGIN
249  p_retcode:=1;
250 
251  l_return_status := Okl_Api.START_ACTIVITY(l_api_name,
252                                            l_init_msg_list,
253                                            '_PVT',
254                                            x_return_status);
255 
256     if (l_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) then
257       raise Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
258     elsif (l_return_status = Okl_Api.G_RET_STS_ERROR) then
259       raise Okl_Api.G_EXCEPTION_ERROR;
260     end if;
261 
262  --rkuttiya added  for MUlti GAAP Project
263   IF p_representation_code IS NULL THEN
264         OKL_API.set_message('OKC',
265                              G_REQUIRED_VALUE,
266                              G_COL_NAME_TOKEN,
267                              'Representation Code');
268         RAISE OKL_API.G_EXCEPTION_ERROR;
269   END IF;
270 
271 
272   --rkuttiya commenting out the following code for MultiGAAP Project
273   --Bug 6017242
274   --l_ledger_id  := OKL_ACCOUNTING_UTIL.get_set_of_books_id;
275   --Bug 6017242
276 
277   OPEN  c_ledger_id(p_representation_code);
278   FETCH c_ledger_id INTO l_ledger_id;
279   CLOSE c_ledger_id;
280 
281   OKL_ACCOUNTING_UTIL.get_period_info(p_period_name => p_period_from,
282                                       p_start_date  => l_start_date,
283                                       p_end_date    => l_end_date,
284                                       --Bug 5707866 SLA Uptake Project
285                                       p_ledger_id => l_ledger_id);
286 
287 /*
288  --Bug 5707866 SLA Uptake Project
289  l_period_status := OKL_ACCOUNTING_UTIL.GET_OKL_PERIOD_STATUS(p_ledger_id => l_ledger_id,
290                                                               p_period_name => p_period_to);
291 
292  IF (l_period_status NOT IN ('O','F')) THEN
293      OKL_API.set_message(p_app_name      => G_APP_NAME,
294                          p_msg_name      => 'OKL_PERIOD_NOT_OPEN',
295                          p_token1        => 'PERIOD_NAME',
296                          p_token1_value  => p_period_to);
297      RAISE OKL_API.G_EXCEPTION_ERROR;
298   END IF;
299 --Bug 5707866  end
300 */
301 
302   OKL_ACCOUNTING_UTIL.get_period_info(p_period_name => p_period_to,
303                                       p_start_date  => l_to_start_date,
304                                       p_end_date    => l_to_end_date,
305                                       --Bug 5707866 SLA Uptake Project
306                                       p_ledger_id => l_ledger_id);
307 
308  --Bug 5707866 SLA Uptake Project
309 
310  CREATE_REPORT(l_start_date,l_end_date,p_run_option,p_period_from,p_period_to,l_to_start_date,l_ledger_id);
311 
312   IF UPPER(p_run_option)= 'RUN' THEN
313      j := 0;
314      FOR dist_rec IN dist_csr(l_ledger_id,l_start_date,l_end_date)
315      LOOP
316        l_tabv_tbl(i).id      := dist_rec.id;
317        l_tabv_tbl(i).gl_date := l_to_start_date;
318        IF(l_event_id <>dist_rec.accounting_event_id) THEN
319          l_event_id := dist_rec.accounting_event_id;
320          l_tcn_tbl(j).event_id := l_event_id;
321          OPEN get_tcn_info(dist_rec.source_id,l_ledger_id);
322          FETCH get_tcn_info into l_tcn_tbl(j).tcn_id,l_tcn_tbl(j).accrual_reversal_date,l_tcn_tbl(j).trx_type_class;
323          CLOSE get_tcn_info;
324          j := j+1;
325        END IF;
326        i := i +1;
327      END LOOP;
328 
329       IF (l_tabv_tbl.COUNT > 0) THEN
330           OKL_TRNS_ACC_DSTRS_PUB.update_trns_acc_dstrs(p_api_version  => l_api_version,
331                                                        p_init_msg_list   => l_init_msg_list,
332                                                        x_return_status   => l_return_status,
333                                                        x_msg_count       => l_msg_count,
334                                                        x_msg_data        => l_msg_data,
335                                                        p_tabv_tbl        => l_tabv_tbl,
336                                                        x_tabv_tbl        => x_tabv_tbl);
337      END IF;
338      IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
339        RAISE OKL_API.G_EXCEPTION_ERROR;
340      END IF;
341 
342      j :=0;
343      IF (l_tcn_tbl.COUNT > 0) THEN
344        FOR j in l_tcn_tbl.FIRST..l_tcn_tbl.LAST LOOP
345           OKL_XLA_EVENTS_PVT.update_event(p_api_version   =>l_api_version
346                                          ,p_init_msg_list =>l_init_msg_list
347                                          ,x_return_status =>l_return_status
348                                          ,x_msg_count     =>l_msg_count
349                                          ,x_msg_data      =>l_msg_data
350                                          ,p_gl_date       =>l_to_start_date
351                                          ,p_event_id      =>l_tcn_tbl(j).event_id
352                                          ,p_tcn_id        =>l_tcn_tbl(j).tcn_id);
353 
354         IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
355           RAISE OKL_API.G_EXCEPTION_ERROR;
356         END IF;
357 
358        IF l_tcn_tbl(j).trx_type_class = 'ACCRUAL' AND  l_tcn_tbl(j).accrual_reversal_date IS NOT NULL THEN
359          l_tcnv_rec.id := l_tcn_tbl(j).tcn_id;
360          OPEN get_accrual_reversal_date(l_ledger_id, l_to_start_date);
361          FETCH get_accrual_reversal_date into l_tcnv_rec.accrual_reversal_date;
362          CLOSE get_accrual_reversal_date;
363          Okl_Trx_Contracts_Pub.update_trx_contracts(p_api_version => l_api_version,
364                                                     p_init_msg_list => l_init_msg_list,
365                                                     x_return_status => l_return_status,
366                                                     x_msg_count => l_msg_count,
367                                                     x_msg_data => l_msg_data,
368                                                     p_tcnv_rec => l_tcnv_rec,
369                                                     x_tcnv_rec => x_tcnv_rec);
370 
371            IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
372              RAISE OKL_API.G_EXCEPTION_ERROR;
373          END IF;
374        END IF;
375      END LOOP;
376    END IF;
377 END IF;
378 
379 Okl_Api.END_ACTIVITY(x_msg_count, x_msg_data);
380 
381 EXCEPTION
382     WHEN OKL_API.G_EXCEPTION_ERROR THEN
383        x_return_status :=  Okl_Api.HANDLE_EXCEPTIONS(l_api_name,
384                                                      G_PKG_NAME,
385                                                      'OKl_API.G_RET_STS_ERROR',
386                                                      x_msg_count,
387                                                      x_msg_data,
388                                                      '_PVT'
389                                                      );
390 
391     WHEN OTHERS THEN
392        p_errbuf := SQLERRM;
393 
394        FND_FILE.PUT_LINE(FND_FILE.LOG, 'Error: '||SQLERRM);
395        FND_FILE.PUT_LINE(FND_FILE.LOG, 'Error: '||SQLCODE||SQLERRM);
396        x_return_status :=  Okl_Api.HANDLE_EXCEPTIONS(l_api_name,
397                                                      G_PKG_NAME,
398                                                      'OKl_API.G_RET_STS_ERROR',
399                                                      x_msg_count,
400                                                      x_msg_data,
401                                                      '_PVT'
402                                                      );
403 END OKL_PERIOD_SWEEP;
404 
405 
406 
407 PROCEDURE OKL_PERIOD_SWEEP_CON(p_init_msg_list       IN VARCHAR2 DEFAULT Okc_Api.G_FALSE
408                               ,x_return_status       OUT NOCOPY VARCHAR2
409                               ,x_msg_count           OUT NOCOPY NUMBER
410                               ,x_msg_data            OUT NOCOPY VARCHAR2
411                               ,p_representation_code IN VARCHAR2 DEFAULT NULL
412                               ,p_period_from         IN VARCHAR2
413                               ,p_period_to           IN VARCHAR2
414                               ,p_run_option          IN VARCHAR2
415                               ,x_request_id          OUT NOCOPY NUMBER)
416 
417 IS
418 
419   l_api_name VARCHAR2(30) := 'OKL_PERIOD_SWEEP_CON';
420   l_api_version    NUMBER := 1.0;
421   l_return_status   VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
422   l_from_date       VARCHAR2(20) ;
423   l_start_date_from DATE;
424   l_start_date_to  DATE;
425   l_end_date_from  DATE;
426   l_end_date_to    DATE;
427   l_period_status VARCHAR2(1);
428   l_to_period gl_periods.period_name%TYPE;
429   l_to_date        DATE;
430 
431   CURSOR perd_csr(p_date DATE,
432                   p_ledger_id IN NUMBER)
433   IS
434   SELECT MIN(start_date)
435   FROM gl_period_statuses
436   WHERE application_id = 540
437   AND ledger_id = p_ledger_id
438   AND closing_status IN ('F','O')
439   AND start_date > p_date
440   AND adjustment_period_flag = 'N' ;
441 
442 -- rkuttiya 05-AUG-2008 added for Multi GAAP Project
443 
444   CURSOR c_ledger_id(p_representation_code IN VARCHAR2)
445   IS
446   SELECT ledger_id
447   FROM okl_representations_v
448   WHERE representation_code = p_representation_code;
449 
450   CURSOR c_representation_code(p_representation_type IN VARCHAR2)
451   IS
452   SELECT representation_code
453   FROM okl_representations_v
454   WHERE representation_type = p_representation_type;
455 
456   l_representation_code    VARCHAR2(20);
457   l_ledger_id              NUMBER;
458 
459 BEGIN
460 
461   x_return_status := OKL_API.G_RET_STS_SUCCESS;
462 
463   l_return_status := OKL_API.start_activity(l_api_name
464                                            ,G_PKG_NAME
465                                            ,p_init_msg_list
466                                            ,l_api_version
467                                            ,l_api_version
468                                            ,'_PVT'
469                                            ,x_return_status);
470 
471   IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
472     RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
473   ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
474     RAISE OKL_API.G_EXCEPTION_ERROR;
475   END IF;
476 
477 -- rkuttiya 05-Aug-2008 MultiGAAP Project
478   l_representation_code := p_representation_code;
479 
480   IF p_representation_code IS NULL THEN
481     OPEN c_representation_code('PRIMARY');
482     FETCH c_representation_code INTO l_representation_code;
483     CLOSE c_representation_code;
484   END IF;
485 
486   OPEN c_ledger_id(l_representation_code);
487   FETCH c_ledger_id INTO l_ledger_id;
488   CLOSE c_ledger_id;
489 --rkuttiya end
490 
491   IF (p_period_from IS NULL) THEN
492       OKL_API.set_message('OKC', G_REQUIRED_VALUE, G_COL_NAME_TOKEN,
493                            okl_accounting_util.get_message_token('OKL_LP_SWEEP_PROGRAM','OKL_TRANSFER_FROM_PERIOD')
494                             );
495       RAISE OKL_API.G_EXCEPTION_ERROR;
496   END IF;
497 
498   l_period_status := OKL_ACCOUNTING_UTIL.GET_OKL_PERIOD_STATUS(p_period_from
499                                                                ,l_ledger_id);
500 
501   IF (l_period_status IS NULL) THEN
502      OKL_API.set_message(p_app_name     => G_APP_NAME,
503                          p_msg_name     => 'OKL_PERIOD_NOT_FOUND',
504                          p_token1        => 'PERIOD_NAME',
505                          p_token1_value  => p_period_from);
506 
507      RAISE OKL_API.G_EXCEPTION_ERROR;
508   END IF;
509 
510   IF (l_period_status NOT IN ('O')) THEN
511      OKL_API.set_message(p_app_name     => G_APP_NAME,
512                          p_msg_name     => 'OKL_PERD_INVALID_STATUS',
513                          p_token1        => 'PERIOD',
514                          p_token1_value  => p_period_from);
515 
516      RAISE OKL_API.G_EXCEPTION_ERROR;
517   END IF;
518 
519   OKL_ACCOUNTING_UTIL.get_period_info(p_period_from, l_start_date_from,l_end_date_from,l_ledger_id);
520 
521   IF (p_period_to IS NOT NULL) AND (p_period_to <> OKL_API.G_MISS_CHAR) THEN
522      OKL_ACCOUNTING_UTIL.get_period_info(p_period_to, l_start_date_to, l_end_date_to, l_ledger_id);
523      IF (l_start_date_to IS NULL) THEN
524          OKL_API.set_message(p_app_name     => G_APP_NAME,
525                              p_msg_name     => 'OKL_PERIOD_NOT_FOUND',
526                              p_token1        => 'PERIOD_NAME',
527                              p_token1_value  => p_period_to);
528 
529          RAISE OKL_API.G_EXCEPTION_ERROR;
530      END IF;
531      l_to_period := p_period_to;
532   ELSE
533      OPEN perd_csr(l_start_date_from,l_ledger_id);
534      FETCH perd_csr INTO l_to_date;
535      CLOSE perd_csr;
536      IF (l_to_date IS NULL) THEN
537         OKL_API.set_message('OKC', G_REQUIRED_VALUE, G_COL_NAME_TOKEN,'To Period');
538         RAISE OKL_API.G_EXCEPTION_ERROR;
539      END IF;
540 
541      OKL_ACCOUNTING_UTIL.get_period_info(l_to_date, l_to_period, l_start_date_to, l_end_date_to,l_ledger_id);
542   END IF;
543 
544   l_period_status := NULL;
545   l_period_status := OKL_ACCOUNTING_UTIL.GET_OKL_PERIOD_STATUS(l_to_period
546                                                               ,l_ledger_id);
547   IF (l_period_status NOT IN ('O','F')) THEN
548      OKL_API.set_message(p_app_name      => G_APP_NAME,
549                          p_msg_name      => 'OKL_PERIOD_NOT_OPEN',
550                          p_token1        => 'PERIOD_NAME',
551                          p_token1_value  => l_to_period);
552 
553      RAISE OKL_API.G_EXCEPTION_ERROR;
554   END IF;
555 
556   OKL_ACCOUNTING_UTIL.get_period_info(l_to_period, l_start_date_to,l_end_date_to,l_ledger_id);
557 
558   IF (l_start_date_to <= l_start_date_from) THEN
559      OKL_API.set_message(p_app_name     => G_APP_NAME,
560                          p_msg_name     => 'OKL_TO_PERIOD_LATER');
561      RAISE OKL_API.G_EXCEPTION_ERROR;
562   END IF;
563 
564   IF (p_run_option IS NULL) THEN
565       OKL_API.set_message('OKC', G_REQUIRED_VALUE, G_COL_NAME_TOKEN,'Run Option');
566       RAISE OKL_API.G_EXCEPTION_ERROR;
567   END IF;
568 
569 
570  --- Call to okl gl transfer concurrent program
571 
572   FND_REQUEST.set_org_id(mo_global.get_current_org_id); --MOAC- Concurrent request
573   x_request_id := Fnd_Request.SUBMIT_REQUEST(application => 'OKL'
574                                             ,program     => 'OKLPDSWP'
575                                             ,argument1   => p_representation_code
576                                             ,argument2   => p_period_from
577                                             ,argument3   => l_to_period
578                                             ,argument4   => p_run_option);
579 
580     IF x_request_id = 0 THEN
581        OKL_API.set_message(p_app_name => 'OFA',
582                                           p_msg_name => 'FA_DEPRN_TAX_ERROR',
583                                           p_token1   => 'REQUEST_ID',
584                                           p_token1_value  => x_request_id);
585 
586        RAISE okl_api.g_exception_error;
587     END IF;
588 
589     OKL_API.end_activity(x_msg_count, x_msg_data);
590 
591 EXCEPTION
592     WHEN OKL_API.G_EXCEPTION_ERROR THEN
593       x_return_status := Okl_Api.handle_exceptions(l_api_name
594                                  ,g_pkg_name
595                                  ,'OKL_API.G_RET_STS_ERROR'
596                                  ,x_msg_count
597                                  ,x_msg_data
598                                  ,'_PVT');
599     WHEN okl_api.g_exception_unexpected_error THEN
600       x_return_status := OKL_API.HANDLE_EXCEPTIONS(l_api_name
601                                                                                     ,g_pkg_name
602                                                                                     ,'OKL_API.G_RET_STS_UNEXP_ERROR'
603                                                                                     ,x_msg_count
604                                                                                     ,x_msg_data
605                                                                                    ,'_PVT');
606     WHEN OTHERS THEN
607       x_return_status :=Okl_Api.HANDLE_EXCEPTIONS
608                                (l_api_name,
609                                 G_PKG_NAME,
610                                 'OTHERS',
611                                 x_msg_count,
612                                 x_msg_data,
613                                 '_PVT');
614 
615 END OKL_PERIOD_SWEEP_CON;
616 
617 -------------------------------------------------------------------------------
618   -- Function BEFOREREPORT
619   -------------------------------------------------------------------------------
620   -- Start of comments
621   --
622   -- Procedure Name  : BEFOREREPORT
623   -- Description     : Function for Period Sweep Report Generation
624   --                        in XML Publisher
625   -- Business Rules  :
626   -- Parameters      : p_period_from,p_period_to,p_run_option
627   -- Version         : 1.0
628   -- History         : 06-Feb-2007 DPSINGH created.
629   -- End of comments
630   -------------------------------------------------------------------------------
631 FUNCTION BEFOREREPORT RETURN BOOLEAN
632 IS
633 p_errbuf VARCHAR2(150);
634 p_retcode NUMBER;
635 BEGIN
636 
637 OKL_PERIOD_SWEEP (p_errbuf ,
638                   p_retcode,
639                   p_representation_code => p_representation_code,
640                   p_period_from =>p_period_from,
641                   p_period_to =>p_period_to,
642                   p_run_option =>p_run_option);
643 
644 IF p_retcode = 1 THEN
645   RETURN TRUE;
646 ELSE
647   RETURN FALSE;
648 END IF;
649 END BEFOREREPORT;
650 END OKL_PERIOD_SWEEP_PVT;