DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_BPD_ADVANCED_CASH_APP_PUB

Source


1 PACKAGE BODY OKL_BPD_ADVANCED_CASH_APP_PUB AS
2 /* $Header: OKLPAVCB.pls 120.12 2008/01/23 09:30:37 asawanka ship $ */
3 
4 PROCEDURE ADVANCED_CASH_APP       ( p_api_version    IN  NUMBER
5 	                               ,p_init_msg_list  IN  VARCHAR2 DEFAULT Okc_Api.G_FALSE
6 	                               ,x_return_status  OUT NOCOPY VARCHAR2
7 	                               ,x_msg_count	     OUT NOCOPY NUMBER
8 	                               ,x_msg_data	     OUT NOCOPY VARCHAR2
9                                    ,p_contract_num   IN  OKC_K_HEADERS_V.CONTRACT_NUMBER%TYPE DEFAULT NULL
10                                    ,p_customer_num   IN  AR_CASH_RECEIPTS_ALL.PAY_FROM_CUSTOMER%TYPE DEFAULT NULL
11                                    ,p_receipt_num    IN  OKL_TRX_CSH_RECEIPT_V.CHECK_NUMBER%TYPE DEFAULT NULL
12                                    ,p_receipt_type   IN  OKL_TRX_CSH_RECEIPT_V.RECEIPT_TYPE%TYPE DEFAULT NULL
13                                    ,p_cross_currency_allowed IN VARCHAR2 DEFAULT 'N'
14                                   ) IS
15 
16    l_return_status           VARCHAR2(1) := Okl_Api.G_RET_STS_SUCCESS;
17    l_api_name		         CONSTANT VARCHAR2(30) := 'ADVANCED_CASH_APP';
18    l_api_version			 NUMBER := 1;
19    l_init_msg_list			 VARCHAR2(1);
20    l_msg_count				 NUMBER;
21    l_msg_data				 VARCHAR(2000);
22 
23    l_contract_id             OKC_K_HEADERS_V.ID%TYPE DEFAULT NULL;
24    l_contract_num            OKC_K_HEADERS_V.CONTRACT_NUMBER%TYPE DEFAULT p_contract_num;
25    l_customer_id             OKL_TRX_CSH_RECEIPT_V.ILE_ID%TYPE DEFAULT NULL;
26    l_customer_num            AR_CASH_RECEIPTS_ALL.PAY_FROM_CUSTOMER%TYPE DEFAULT p_customer_num;
27    l_receipt_id              AR_CASH_RECEIPTS_ALL.CASH_RECEIPT_ID%TYPE DEFAULT NULL;
28    l_receipt_num             OKL_TRX_CSH_RECEIPT_V.CHECK_NUMBER%TYPE DEFAULT p_receipt_num;
29    l_receipt_amount          AR_CASH_RECEIPTS_ALL.AMOUNT%TYPE DEFAULT NULL;
30    l_receipt_type            OKL_TRX_CSH_RECEIPT_V.RECEIPT_TYPE%TYPE DEFAULT p_receipt_type;
31 
32 BEGIN
33 
34     ------------------------------------------------------------
35 	-- Start processing
36 	------------------------------------------------------------
37 
38 	x_return_status		:= Fnd_Api.G_RET_STS_SUCCESS;
39 
40 	SAVEPOINT sp_adv_mon;
41 
42 
43     OKL_BPD_ADVANCED_CASH_APP_PVT.ADVANCED_CASH_APP  ( p_api_version    => l_api_version
44 	                                                  ,p_init_msg_list  => l_init_msg_list
45 	                                                  ,x_return_status  => l_return_status
46 	                                                  ,x_msg_count	    => l_msg_count
47 	                                                  ,x_msg_data	    => l_msg_data
48                                                       ,p_contract_num   => l_contract_num
49                                                       ,p_customer_num   => l_customer_num
50                                                       ,p_receipt_num    => l_receipt_num
51                                                       ,p_cross_currency_allowed => p_cross_currency_allowed
52                                                      );
53 
54 
55     IF l_return_status = Fnd_Api.G_RET_STS_ERROR THEN
56         NULL;
57 		--RAISE Fnd_Api.G_EXC_ERROR;
58 	ELSIF l_return_status = Fnd_Api.G_RET_STS_UNEXP_ERROR THEN
59         NULL;
60 		--RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
61 	END IF;
62 
63     --Assign value to OUT variables
64 
65     x_return_status := l_return_status ;
66     x_msg_count := l_msg_count ;
67     x_msg_data := l_msg_data ;
68 
69 EXCEPTION
70 
71     WHEN Fnd_Api.G_EXC_ERROR THEN
72       ROLLBACK TO sp_adv_mon;
73       x_return_status := Fnd_Api.G_RET_STS_ERROR;
74       x_msg_count := l_msg_count ;
75       x_msg_data := l_msg_data ;
76       Fnd_Msg_Pub.count_and_get(
77              p_count   => x_msg_count
78             ,p_data    => x_msg_data);
79     WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
80       ROLLBACK TO sp_adv_mon;
81       x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
82       x_msg_count := l_msg_count ;
83       x_msg_data := l_msg_data ;
84       Fnd_Msg_Pub.count_and_get(
85              p_count   => x_msg_count
86             ,p_data    => x_msg_data);
87 	WHEN OTHERS THEN
88 		x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
89 		Fnd_Msg_Pub.ADD_EXC_MSG (
90 			p_pkg_name		=> G_PKG_NAME,
91 			p_procedure_name	=> l_api_name);
92 		Fnd_Msg_Pub.Count_and_get (
93 			p_encoded		=> Okc_Api.G_FALSE,
94 			p_count			=> x_msg_count,
95 			p_data			=> x_msg_data);
96 
97 END ADVANCED_CASH_APP;
98 
99 PROCEDURE REAPPLIC_ADVANCED_CASH_APP ( p_api_version        IN  NUMBER
100 	                              ,p_init_msg_list      IN  VARCHAR2 DEFAULT Okc_Api.G_FALSE
101 	                              ,x_return_status      OUT NOCOPY VARCHAR2
102 	                              ,x_msg_count	        OUT NOCOPY NUMBER
103 	                              ,x_msg_data	        OUT NOCOPY VARCHAR2
104                                       ,p_contract_num       IN  OKC_K_HEADERS_V.CONTRACT_NUMBER%TYPE DEFAULT NULL
105                                       ,p_customer_num       IN  AR_CASH_RECEIPTS_ALL.PAY_FROM_CUSTOMER%TYPE DEFAULT NULL
106                                       ,p_receipt_id         IN  AR_CASH_RECEIPTS_ALL.CASH_RECEIPT_ID%TYPE DEFAULT NULL
107                                       ,p_receipt_num        IN  OKL_TRX_CSH_RECEIPT_V.CHECK_NUMBER%TYPE DEFAULT NULL
108                                       ,p_receipt_date_from  IN  OKL_TRX_CSH_RECEIPT_V.DATE_EFFECTIVE%TYPE DEFAULT NULL
109                                       ,p_receipt_date_to    IN  OKL_TRX_CSH_RECEIPT_V.DATE_EFFECTIVE%TYPE DEFAULT NULL
110                                       ,p_receipt_type       IN  VARCHAR2 DEFAULT NULL
111 				      ,p_cross_currency_allowed IN VARCHAR2 DEFAULT 'N'
112                                       ) IS
113 
114    l_return_status           VARCHAR2(1) := Okl_Api.G_RET_STS_SUCCESS;
115    l_api_name		         CONSTANT VARCHAR2(30)  := 'REAPPLIC_ADVANCED_CASH_APP';
116    l_api_version			 NUMBER := 1;
117    l_init_msg_list			 VARCHAR2(1);
118    l_msg_count				 NUMBER;
119    l_msg_data				 VARCHAR(2000);
120 
121    l_contract_id             OKC_K_HEADERS_V.ID%TYPE DEFAULT NULL;
122    l_contract_num            OKC_K_HEADERS_V.CONTRACT_NUMBER%TYPE DEFAULT p_contract_num;
123    l_customer_id             OKL_TRX_CSH_RECEIPT_V.ILE_ID%TYPE DEFAULT NULL;
124    l_customer_num            AR_CASH_RECEIPTS_ALL.PAY_FROM_CUSTOMER%TYPE DEFAULT p_customer_num;
125    l_receipt_id              AR_CASH_RECEIPTS_ALL.CASH_RECEIPT_ID%TYPE DEFAULT p_receipt_id;
126    l_receipt_num             OKL_TRX_CSH_RECEIPT_V.CHECK_NUMBER%TYPE DEFAULT p_receipt_num;
127    l_receipt_amount          AR_CASH_RECEIPTS_ALL.AMOUNT%TYPE DEFAULT NULL;
128    l_receipt_date_from       OKL_TRX_CSH_RECEIPT_V.DATE_EFFECTIVE%TYPE DEFAULT p_receipt_date_from;
129    l_receipt_date_to         OKL_TRX_CSH_RECEIPT_V.DATE_EFFECTIVE%TYPE DEFAULT p_receipt_date_to;
130    l_receipt_type            varchar2(30) := p_receipt_type;
131    l_cross_currency_allowed      VARCHAR2(1) DEFAULT p_cross_currency_allowed;
132 
133 BEGIN
134 
135     ------------------------------------------------------------
136 	-- Start processing
137 	------------------------------------------------------------
138 
139 	x_return_status		:= Fnd_Api.G_RET_STS_SUCCESS;
140 
141 	SAVEPOINT sp_adv_mon;
142 
143 
144     OKL_BPD_ADVANCED_CASH_APP_PVT.REAPPLIC_ADVANCED_CASH_APP ( p_api_version      => l_api_version
145 	                                                          ,p_init_msg_list     => l_init_msg_list
146 	                                                          ,x_return_status     => l_return_status
147 	                                                          ,x_msg_count	       => l_msg_count
148 	                                                          ,x_msg_data	       => l_msg_data
149                                                               ,p_contract_num      => l_contract_num
150                                                               ,p_customer_num      => l_customer_num
151                                                               ,p_receipt_id        => l_receipt_id
152                                                               ,p_receipt_num       => l_receipt_num
153                                                               ,p_receipt_date_from => l_receipt_date_from
154                                                               ,p_receipt_date_to   => l_receipt_date_to
155                                                               ,p_receipt_type      => l_receipt_type
156 							      ,p_cross_currency_allowed => l_cross_currency_allowed
157                                                              );
158 
159 
160     IF l_return_status = Fnd_Api.G_RET_STS_ERROR THEN
161 		RAISE Fnd_Api.G_EXC_ERROR;
162 	ELSIF l_return_status = Fnd_Api.G_RET_STS_UNEXP_ERROR THEN
163 		RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
164 	END IF;
165 
166     --Assign value to OUT variables
167 
168     x_return_status := l_return_status ;
169     x_msg_count := l_msg_count ;
170     x_msg_data := l_msg_data ;
171 
172 EXCEPTION
173 
174     WHEN Fnd_Api.G_EXC_ERROR THEN
175       ROLLBACK TO sp_adv_mon;
176       x_return_status := Fnd_Api.G_RET_STS_ERROR;
177       x_msg_count := l_msg_count ;
178       x_msg_data := l_msg_data ;
179       Fnd_Msg_Pub.count_and_get(
180              p_count   => x_msg_count
181             ,p_data    => x_msg_data);
182     WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
183       ROLLBACK TO sp_adv_mon;
184       x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
185       x_msg_count := l_msg_count ;
186       x_msg_data := l_msg_data ;
187       Fnd_Msg_Pub.count_and_get(
188              p_count   => x_msg_count
189             ,p_data    => x_msg_data);
190 	WHEN OTHERS THEN
191                  ROLLBACK TO sp_adv_mon;
192 		x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
193 		Fnd_Msg_Pub.ADD_EXC_MSG (
194 			p_pkg_name		=> G_PKG_NAME,
195 			p_procedure_name	=> l_api_name);
196 		Fnd_Msg_Pub.Count_and_get (
197 			p_encoded		=> Okc_Api.G_FALSE,
198 			p_count			=> x_msg_count,
199 			p_data			=> x_msg_data);
200 
201 END REAPPLIC_ADVANCED_CASH_APP;
202 
203 PROCEDURE ADVANCED_CASH_APP_CONC ( errbuf  		        OUT NOCOPY VARCHAR2
204                                   ,retcode 		        OUT NOCOPY NUMBER
205                                   ,p_contract_num       IN  OKC_K_HEADERS_V.CONTRACT_NUMBER%TYPE DEFAULT NULL
206                                   ,p_customer_num       IN  AR_CASH_RECEIPTS_ALL.PAY_FROM_CUSTOMER%TYPE DEFAULT NULL
207                                   ,p_receipt_id         IN  AR_CASH_RECEIPTS_ALL.CASH_RECEIPT_ID%TYPE DEFAULT NULL
208                                   ,p_receipt_num        IN  OKL_TRX_CSH_RECEIPT_V.CHECK_NUMBER%TYPE DEFAULT NULL
209                                   ,p_receipt_date_from  IN  VARCHAR2 DEFAULT NULL
210                                   ,p_receipt_date_to    IN  VARCHAR2 DEFAULT NULL
211                                   ,p_receipt_type       IN  VARCHAR2 DEFAULT NULL
212 				  ,p_cross_currency_allowed IN VARCHAR2 DEFAULT 'N'
213                                  ) IS
214 
215   l_api_version     NUMBER := 1;
216   l_return_status	VARCHAR2(1) := Okl_Api.G_RET_STS_SUCCESS;
217   l_msg_count     	NUMBER;
218   l_msg_data    	VARCHAR2(450);
219   l_init_msg_list   VARCHAR2(1);
220 
221   l_msg_index_out   NUMBER :=0;
222   l_error_msg_rec   Okl_Accounting_Util.Error_message_Type;
223 
224   l_contract_id             OKC_K_HEADERS_V.ID%TYPE DEFAULT NULL;
225   l_contract_num            OKC_K_HEADERS_V.CONTRACT_NUMBER%TYPE DEFAULT p_contract_num;
226   l_customer_id             OKL_TRX_CSH_RECEIPT_V.ILE_ID%TYPE DEFAULT NULL;
227   l_customer_num            AR_CASH_RECEIPTS_ALL.PAY_FROM_CUSTOMER%TYPE DEFAULT p_customer_num;
228   l_receipt_id              AR_CASH_RECEIPTS_ALL.CASH_RECEIPT_ID%TYPE DEFAULT NULL;
229   l_receipt_num             OKL_TRX_CSH_RECEIPT_V.CHECK_NUMBER%TYPE DEFAULT p_receipt_num;
230   l_receipt_amount          AR_CASH_RECEIPTS_ALL.AMOUNT%TYPE DEFAULT NULL;
231   l_receipt_date_from       OKL_TRX_CSH_RECEIPT_V.DATE_EFFECTIVE%TYPE DEFAULT NULL;
232   l_receipt_date_to         OKL_TRX_CSH_RECEIPT_V.DATE_EFFECTIVE%TYPE DEFAULT NULL;
233   l_receipt_type            VARCHAR2(30) := p_receipt_type;
234   l_cross_currency_allowed  VARCHAR2(1) DEFAULT p_cross_currency_allowed;
235 
236   l_request_id      NUMBER;
237   l_data                varchar2(2000);
238 
239 
240   CURSOR req_id_csr IS
241   SELECT DECODE(Fnd_Global.CONC_REQUEST_ID,-1,NULL,Fnd_Global.CONC_REQUEST_ID)
242   FROM dual;
243 
244 BEGIN
245 
246     -- Get the request Id
247     l_request_id := NULL;
248     OPEN  req_id_csr;
249     FETCH req_id_csr INTO l_request_id;
250     CLOSE req_id_csr;
251 
252     IF p_receipt_date_from IS NOT NULL THEN
253         l_receipt_date_from :=  FND_DATE.CANONICAL_TO_DATE(p_receipt_date_from);
254     END IF;
255 
256     IF p_receipt_date_to IS NOT NULL THEN
257         l_receipt_date_to :=  FND_DATE.CANONICAL_TO_DATE(p_receipt_date_to);
258     END IF;
259 
260 
261 
262     FND_FILE.PUT_LINE (FND_FILE.OUTPUT, 'Process Advanced Monies');
263     FND_FILE.PUT_LINE (FND_FILE.OUTPUT, '************************************');
264     FND_FILE.PUT_LINE (FND_FILE.OUTPUT, 'Program Run Date: '||SYSDATE||' Request Id: '||l_request_id);
265     FND_FILE.PUT_LINE (FND_FILE.OUTPUT, '***********************************************');
266     FND_FILE.PUT_LINE (FND_FILE.OUTPUT, 'PARAMETERS');
267     FND_FILE.PUT_LINE (FND_FILE.OUTPUT, 'Contract Number = ' ||p_contract_num);
268     FND_FILE.PUT_LINE (FND_FILE.OUTPUT, 'Customer Number = ' ||p_customer_num);
269     FND_FILE.PUT_LINE (FND_FILE.OUTPUT, 'Receipt Number  = ' ||p_receipt_num);
270     FND_FILE.PUT_LINE (FND_FILE.OUTPUT, 'Cross Currency Allowed  = ' ||p_cross_currency_allowed);
271     FND_FILE.PUT_LINE (FND_FILE.OUTPUT, '***********************************************');
272 
273     IF p_cross_currency_allowed IS NULL THEN
274       l_cross_currency_allowed := 'N';
275     END IF;
276 
277     OKL_BPD_ADVANCED_CASH_APP_PUB.REAPPLIC_ADVANCED_CASH_APP ( p_api_version      => l_api_version
278 	                                                          ,p_init_msg_list     => l_init_msg_list
279 	                                                          ,x_return_status     => l_return_status
280 	                                                          ,x_msg_count	       => l_msg_count
281 	                                                          ,x_msg_data	       => l_msg_data
282                                                               ,p_contract_num      => l_contract_num
283                                                               ,p_customer_num      => l_customer_num
284                                                               ,p_receipt_id        => l_receipt_id
285                                                               ,p_receipt_num       => l_receipt_num
286                                                               ,p_receipt_date_from => l_receipt_date_from
287                                                               ,p_receipt_date_to   => l_receipt_date_to
288                                                               ,p_receipt_type      => l_receipt_type
289 							      ,p_cross_currency_allowed => l_cross_currency_allowed
290                                                               );
291     IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
292         fnd_file.put_line(fnd_file.log
293                          ,'Unexpected error in call to OKL_BPD_ADVANCED_CASH_APP_PUB.REAPPLIC_ADVANCED_CASH_APP ');
294         RAISE okl_api.g_exception_unexpected_error;
295       ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
296         fnd_file.put_line(fnd_file.log
297                          ,'Error in call to OKL_BPD_ADVANCED_CASH_APP_PUB.REAPPLIC_ADVANCED_CASH_APP ');
298         RAISE okl_api.g_exception_error;
299       END IF;
300 
301     BEGIN
302 
303         Okl_Accounting_Util.GET_ERROR_MESSAGE(l_error_msg_rec);
304         IF (l_error_msg_rec.COUNT > 0) THEN
305             FOR i IN l_error_msg_rec.FIRST..l_error_msg_rec.LAST
306             LOOP
307                 FND_FILE.PUT_LINE(FND_FILE.LOG, l_error_msg_rec(i));
308                 FND_FILE.PUT_LINE (FND_FILE.LOG, '----------------------------------------------------------------------------');
309             END LOOP;
310         END IF;
311 
312     EXCEPTION
313     WHEN OTHERS THEN
314         FND_FILE.PUT_LINE (FND_FILE.OUTPUT,'Error '||TO_CHAR(SQLCODE)||': '||SQLERRM);
315     END;
316     retcode := 0;
317 EXCEPTION
318       WHEN okl_api.g_exception_error THEN
319         retcode := 2;
320        -- print the error message in the output file
321 
322         IF (fnd_msg_pub.count_msg > 0) THEN
323 
324           FOR l_counter IN 1..fnd_msg_pub.count_msg LOOP
325             fnd_msg_pub.get(p_msg_index     =>  l_counter
326                            ,p_encoded       =>  'F'
327                            ,p_data          =>  l_data
328                            ,p_msg_index_out =>  l_msg_index_out);
329             fnd_file.put_line(fnd_file.log, l_data);
330           END LOOP;
331 
332         END IF;
333 
334       WHEN okl_api.g_exception_unexpected_error THEN
335         retcode := 2;
336 
337         -- print the error message in the output file
338 
339         IF (fnd_msg_pub.count_msg > 0) THEN
340 
341           FOR l_counter IN 1..fnd_msg_pub.count_msg LOOP
342             fnd_msg_pub.get(p_msg_index     =>  l_counter
343                            ,p_encoded       =>  'F'
344                            ,p_data          =>  l_data
345                            ,p_msg_index_out =>  l_msg_index_out);
346             fnd_file.put_line(fnd_file.log, l_data);
347           END LOOP;
348 
349         END IF;
350 
351       WHEN OTHERS THEN
352         retcode := 2;
353         errbuf := sqlerrm;
354 
355         -- print the error message in the output file
356 
357         IF (fnd_msg_pub.count_msg > 0) THEN
358 
359           FOR l_counter IN 1..fnd_msg_pub.count_msg LOOP
360             fnd_msg_pub.get(p_msg_index     =>  l_counter
361                            ,p_encoded       =>  'F'
362                            ,p_data          =>  l_data
363                            ,p_msg_index_out =>  l_msg_index_out);
364             fnd_file.put_line(fnd_file.log, l_data);
365           END LOOP;
366 
367         END IF;
368         fnd_file.put_line(fnd_file.log, sqlerrm);
369 END ADVANCED_CASH_APP_CONC;
370 
371 PROCEDURE REAPPLIC_RCPT_W_CNTRCT ( p_api_version      IN  NUMBER
372 	                              ,p_init_msg_list    IN  VARCHAR2 DEFAULT Okc_Api.G_FALSE
373 	                              ,x_return_status    OUT NOCOPY VARCHAR2
374 	                              ,x_msg_count	      OUT NOCOPY NUMBER
375 	                              ,x_msg_data	      OUT NOCOPY VARCHAR2
376                                   ,p_contract_num     IN  OKC_K_HEADERS_V.CONTRACT_NUMBER%TYPE DEFAULT NULL
377                                   ,p_customer_num     IN  AR_CASH_RECEIPTS_ALL.PAY_FROM_CUSTOMER%TYPE DEFAULT NULL
378 				  ,p_cross_currency_allowed IN VARCHAR2 DEFAULT 'N'
379                                  )IS
380 
381    l_return_status           VARCHAR2(1) := Okl_Api.G_RET_STS_SUCCESS;
382    l_api_name		         CONSTANT VARCHAR2(30)  := 'REAPPLIC_RCPT_W_CNTRCT';
383    l_api_version			 NUMBER := 1;
384    l_init_msg_list			 VARCHAR2(1);
385    l_msg_count				 NUMBER;
386    l_msg_data				 VARCHAR(2000);
387 
388    l_contract_num            OKC_K_HEADERS_V.CONTRACT_NUMBER%TYPE DEFAULT p_contract_num;
389    l_customer_num            AR_CASH_RECEIPTS_ALL.PAY_FROM_CUSTOMER%TYPE DEFAULT p_customer_num;
390    l_cross_currency_allowed  VARCHAR2(1) DEFAULT p_cross_currency_allowed;
391 
392 
393 
394 BEGIN
395 
396     ------------------------------------------------------------
397 	-- Start processing
398 	------------------------------------------------------------
399 
400 	x_return_status		:= Fnd_Api.G_RET_STS_SUCCESS;
401 
402 	SAVEPOINT sp_adv_mon_w_rcpt;
403 
404 
405     OKL_BPD_ADVANCED_CASH_APP_PVT.REAPPLIC_RCPT_W_CNTRCT ( p_api_version   =>  l_api_version
406 	                                                      ,p_init_msg_list =>  l_init_msg_list
407 	                                                      ,x_return_status =>  l_return_status
408 	                                                      ,x_msg_count	   =>  l_msg_count
409 	                                                      ,x_msg_data	   =>  l_msg_data
410                                                           ,p_contract_num  =>  l_contract_num
411                                                           ,p_customer_num  =>  l_customer_num
412 							  ,p_cross_currency_allowed => l_cross_currency_allowed
413                                                           );
414 
415 
416     IF l_return_status = Fnd_Api.G_RET_STS_ERROR THEN
417 		RAISE Fnd_Api.G_EXC_ERROR;
418 	ELSIF l_return_status = Fnd_Api.G_RET_STS_UNEXP_ERROR THEN
419          RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
420 	END IF;
421 
422     --Assign value to OUT variables
423 
424     x_return_status := l_return_status ;
425     x_msg_count := l_msg_count ;
426     x_msg_data := l_msg_data ;
427 
428 EXCEPTION
429 
430     WHEN Fnd_Api.G_EXC_ERROR THEN
431       ROLLBACK TO sp_adv_mon_w_rcpt;
432       x_return_status := Fnd_Api.G_RET_STS_ERROR;
433       x_msg_count := l_msg_count ;
434       x_msg_data := l_msg_data ;
435       Fnd_Msg_Pub.count_and_get(
436              p_count   => x_msg_count
437             ,p_data    => x_msg_data);
438     WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
439       ROLLBACK TO sp_adv_mon_w_rcpt;
440       x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
441       x_msg_count := l_msg_count ;
442       x_msg_data := l_msg_data ;
443       Fnd_Msg_Pub.count_and_get(
444              p_count   => x_msg_count
445             ,p_data    => x_msg_data);
446 	WHEN OTHERS THEN
447                  ROLLBACK TO sp_adv_mon_w_rcpt;
448 		x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
449 		Fnd_Msg_Pub.ADD_EXC_MSG (
450 			p_pkg_name		=> G_PKG_NAME,
451 			p_procedure_name	=> l_api_name);
452 		Fnd_Msg_Pub.Count_and_get (
453 			p_encoded		=> Okc_Api.G_FALSE,
454 			p_count			=> x_msg_count,
455 			p_data			=> x_msg_data);
456 
457 END REAPPLIC_RCPT_W_CNTRCT;
458 
459 PROCEDURE REAPPLIC_RCPT_W_CNTRCT_CONC  (  errbuf  		       OUT NOCOPY VARCHAR2
460                                          ,retcode 		       OUT NOCOPY NUMBER
461                                          ,p_contract_num       IN  OKC_K_HEADERS_V.CONTRACT_NUMBER%TYPE DEFAULT NULL
462                                          ,p_customer_num       IN  AR_CASH_RECEIPTS_ALL.PAY_FROM_CUSTOMER%TYPE DEFAULT NULL
463 					 ,p_cross_currency_allowed IN VARCHAR2 DEFAULT 'N'
464                                         ) IS
465 
466   l_api_version     NUMBER := 1;
467   l_return_status	VARCHAR2(1) := Okl_Api.G_RET_STS_SUCCESS;
468   l_msg_count     	NUMBER;
469   l_msg_data    	VARCHAR2(450);
470   l_init_msg_list   VARCHAR2(1);
471 
472   l_msg_index_out   NUMBER :=0;
473   l_error_msg_rec   Okl_Accounting_Util.Error_message_Type;
474 
475   l_contract_num            OKC_K_HEADERS_V.CONTRACT_NUMBER%TYPE DEFAULT p_contract_num;
476   l_customer_num            AR_CASH_RECEIPTS_ALL.PAY_FROM_CUSTOMER%TYPE DEFAULT p_customer_num;
477   l_cross_currency_allowed  VARCHAR2(1) DEFAULT p_cross_currency_allowed;
478   l_request_id      NUMBER;
479   l_data                varchar2(2000);
480 
481 
482   CURSOR req_id_csr IS
483   SELECT DECODE(Fnd_Global.CONC_REQUEST_ID,-1,NULL,Fnd_Global.CONC_REQUEST_ID)
484   FROM dual;
485 
486 BEGIN
487 
488     -- Get the request Id
489     l_request_id := NULL;
490     OPEN  req_id_csr;
491     FETCH req_id_csr INTO l_request_id;
492     CLOSE req_id_csr;
493 
494     FND_FILE.PUT_LINE (FND_FILE.OUTPUT, 'Process Advanced Monies');
495     FND_FILE.PUT_LINE (FND_FILE.OUTPUT, '************************************');
496     FND_FILE.PUT_LINE (FND_FILE.OUTPUT, 'Program Run Date: '||SYSDATE||' Request Id: '||l_request_id);
497     FND_FILE.PUT_LINE (FND_FILE.OUTPUT, '***********************************************');
498     FND_FILE.PUT_LINE (FND_FILE.OUTPUT, 'PARAMETERS');
499     FND_FILE.PUT_LINE (FND_FILE.OUTPUT, 'Contract Number = ' ||p_contract_num);
500     FND_FILE.PUT_LINE (FND_FILE.OUTPUT, 'Customer Number = ' ||p_customer_num);
501     FND_FILE.PUT_LINE (FND_FILE.OUTPUT, 'Cross Currency Allowed  = ' ||p_cross_currency_allowed);
502     FND_FILE.PUT_LINE (FND_FILE.OUTPUT, '***********************************************');
503 
504     IF p_cross_currency_allowed IS NULL THEN
505       l_cross_currency_allowed := 'N';
506     END IF;
507     OKL_BPD_ADVANCED_CASH_APP_PUB.REAPPLIC_RCPT_W_CNTRCT ( p_api_version    => l_api_version
508 	                                                      ,p_init_msg_list  => l_init_msg_list
509 	                                                      ,x_return_status  => l_return_status
510 	                                                      ,x_msg_count	    => l_msg_count
511 	                                                      ,x_msg_data	    => l_msg_data
512                                                           ,p_contract_num   => l_contract_num
513                                                           ,p_customer_num   => l_customer_num
514 							  ,p_cross_currency_allowed => l_cross_currency_allowed
515                                                          );
516          IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
517           fnd_file.put_line(fnd_file.log
518                            ,'Unexpected error in call to OKL_BPD_ADVANCED_CASH_APP_PUB.REAPPLIC_RCPT_W_CNTRCT');
519           RAISE okl_api.g_exception_unexpected_error;
520         ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
521           fnd_file.put_line(fnd_file.log
522                            ,'Error in call to OKL_BPD_ADVANCED_CASH_APP_PUB.REAPPLIC_RCPT_W_CNTRCT');
523         END IF;
524 
525 
526 
527     BEGIN
528 
529         Okl_Accounting_Util.GET_ERROR_MESSAGE(l_error_msg_rec);
530         IF (l_error_msg_rec.COUNT > 0) THEN
531             FOR i IN l_error_msg_rec.FIRST..l_error_msg_rec.LAST
532             LOOP
533                 FND_FILE.PUT_LINE(FND_FILE.LOG, l_error_msg_rec(i));
534                 FND_FILE.PUT_LINE (FND_FILE.LOG, '----------------------------------------------------------------------------');
535             END LOOP;
536         END IF;
537 
538     EXCEPTION
539     WHEN OTHERS THEN
540         FND_FILE.PUT_LINE (FND_FILE.OUTPUT,'Error '||TO_CHAR(SQLCODE)||': '||SQLERRM);
541     END;
542     retcode := 0;
543 EXCEPTION
544           WHEN okl_api.g_exception_error THEN
545         retcode := 2;
546        -- print the error message in the output file
547 
548         IF (fnd_msg_pub.count_msg > 0) THEN
549 
550           FOR l_counter IN 1..fnd_msg_pub.count_msg LOOP
551             fnd_msg_pub.get(p_msg_index     =>  l_counter
552                            ,p_encoded       =>  'F'
553                            ,p_data          =>  l_data
554                            ,p_msg_index_out =>  l_msg_index_out);
555             fnd_file.put_line(fnd_file.log, l_data);
556           END LOOP;
557 
558         END IF;
559 
560       WHEN okl_api.g_exception_unexpected_error THEN
561         retcode := 2;
562 
563         -- print the error message in the output file
564 
565         IF (fnd_msg_pub.count_msg > 0) THEN
566 
567           FOR l_counter IN 1..fnd_msg_pub.count_msg LOOP
568             fnd_msg_pub.get(p_msg_index     =>  l_counter
569                            ,p_encoded       =>  'F'
570                            ,p_data          =>  l_data
571                            ,p_msg_index_out =>  l_msg_index_out);
572             fnd_file.put_line(fnd_file.log, l_data);
573           END LOOP;
574 
575         END IF;
576 
577       WHEN OTHERS THEN
578         retcode := 2;
579         errbuf := sqlerrm;
580 
581         -- print the error message in the output file
582 
583         IF (fnd_msg_pub.count_msg > 0) THEN
584 
585           FOR l_counter IN 1..fnd_msg_pub.count_msg LOOP
586             fnd_msg_pub.get(p_msg_index     =>  l_counter
587                            ,p_encoded       =>  'F'
588                            ,p_data          =>  l_data
589                            ,p_msg_index_out =>  l_msg_index_out);
590             fnd_file.put_line(fnd_file.log, l_data);
591           END LOOP;
592 
593         END IF;
594         fnd_file.put_line(fnd_file.log, sqlerrm);
595 END REAPPLIC_RCPT_W_CNTRCT_CONC;
596 
597 PROCEDURE AR_advance_receipt ( p_api_version      IN  NUMBER
598 	                          ,p_init_msg_list    IN  VARCHAR2 DEFAULT Okc_Api.G_FALSE
599 	                          ,x_return_status    OUT NOCOPY VARCHAR2
600 	                          ,x_msg_count	      OUT NOCOPY NUMBER
601 	                          ,x_msg_data	      OUT NOCOPY VARCHAR2
602                               ,p_xcav_tbl         IN  OKL_BPD_ADVANCED_CASH_APP_PVT.xcav_tbl_type
603                               ,p_receipt_id       IN  AR_CASH_RECEIPTS_ALL.CASH_RECEIPT_ID%TYPE DEFAULT NULL
604                               ,p_receipt_amount   IN OUT NOCOPY AR_CASH_RECEIPTS_ALL.AMOUNT%TYPE
605                               ,p_receipt_date     IN  AR_CASH_RECEIPTS_ALL.RECEIPT_DATE%TYPE DEFAULT NULL
606                               ,p_receipt_currency IN  AR_CASH_RECEIPTS_ALL.CURRENCY_CODE%TYPE DEFAULT NULL
607                               ,p_currency_code    IN  AR_CASH_RECEIPTS_ALL.CURRENCY_CODE%TYPE DEFAULT NULL
608                               ,p_ar_inv_tbl       IN  OKL_BPD_ADVANCED_BILLING_PVT.ar_inv_tbl_type
609                              ) IS
610 
611   l_ar_inv_tbl                  OKL_BPD_ADVANCED_BILLING_PVT.ar_inv_tbl_type DEFAULT p_ar_inv_tbl;
612 
613   l_api_version	                NUMBER := 1.0;
614   l_init_msg_list		        VARCHAR2(1) := Okc_Api.g_false;
615   l_return_status		        VARCHAR2(1);
616   l_msg_count			        NUMBER;
617   l_msg_data			        VARCHAR2(2000);
618   l_api_name                    CONSTANT VARCHAR2(30) := 'AR_advance_receipt';
619 
620   l_receipt_date                AR_CASH_RECEIPTS_ALL.RECEIPT_DATE%TYPE DEFAULT p_receipt_date;
621   l_receipt_currency_code       OKL_TRX_CSH_RECEIPT_V.CURRENCY_CODE%TYPE DEFAULT p_receipt_currency;
622   l_receipt_amount              OKL_TRX_CSH_RECEIPT_V.AMOUNT%TYPE DEFAULT p_receipt_amount;
623   l_receipt_id                  AR_CASH_RECEIPTS_ALL.CASH_RECEIPT_ID%TYPE DEFAULT p_receipt_id;
624   l_currency_code               OKL_TRX_CSH_RECEIPT_V.CURRENCY_CODE%TYPE DEFAULT p_currency_code;  -- entered currency code
625 
626   -------------------------------------------------------------------------------
627   -- DECLARE Record/Table Types
628   -------------------------------------------------------------------------------
629 
630   -- External Trans
631 
632   l_xcav_rec Okl_Xca_Pvt.xcav_rec_type;
633   l_xcav_tbl Okl_Xca_Pvt.xcav_tbl_type;
634 
635   x_xcav_rec Okl_Xca_Pvt.xcav_rec_type;
636   x_xcav_tbl Okl_Xca_Pvt.xcav_tbl_type;
637 
638 
639 BEGIN
640 
641     ------------------------------------------------------------
642 	-- Start processing
643 	------------------------------------------------------------
644 
645 	x_return_status		:= Fnd_Api.G_RET_STS_SUCCESS;
646 
647 	SAVEPOINT sp_adv_mon;
648 
649     OKL_BPD_ADVANCED_CASH_APP_PVT.AR_advance_receipt( p_api_version       => l_api_version
650                        ,p_init_msg_list     => l_init_msg_list
651 	                   ,x_return_status     => l_return_status
652 	                   ,x_msg_count	        => l_msg_count
653 	                   ,x_msg_data	        => l_msg_data
654                        ,p_xcav_tbl          => l_xcav_tbl
655                        ,p_receipt_id        => l_receipt_id
656                        ,p_receipt_amount    => l_receipt_amount
657                        ,p_receipt_date      => l_receipt_date
658                        ,p_receipt_currency  => l_receipt_currency_code
659                        ,p_currency_code     => l_currency_code
660                        ,p_ar_inv_tbl        => l_ar_inv_tbl
661                       );
662 
663     x_return_status := l_return_status;
664 
665     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
666         RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
667     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
668         RAISE OKL_API.G_EXCEPTION_ERROR;
669     END IF;
670 
671    -- p_remain_rcpt_amount := l_receipt_amount;
672 
673     --Assign value to OUT variables
674 
675     x_return_status := l_return_status ;
676     x_msg_count := l_msg_count ;
677     x_msg_data := l_msg_data ;
678 
679 EXCEPTION
680 
681     WHEN Fnd_Api.G_EXC_ERROR THEN
682       ROLLBACK TO sp_adv_mon;
683       x_return_status := Fnd_Api.G_RET_STS_ERROR;
684       x_msg_count := l_msg_count ;
685       x_msg_data := l_msg_data ;
686       Fnd_Msg_Pub.count_and_get(
687              p_count   => x_msg_count
688             ,p_data    => x_msg_data);
689     WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
690       ROLLBACK TO sp_adv_mon;
691       x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
692       x_msg_count := l_msg_count ;
693       x_msg_data := l_msg_data ;
694       Fnd_Msg_Pub.count_and_get(
695              p_count   => x_msg_count
696             ,p_data    => x_msg_data);
697 	WHEN OTHERS THEN
698 		x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
699 		Fnd_Msg_Pub.ADD_EXC_MSG (
700 			p_pkg_name		=> G_PKG_NAME,
701 			p_procedure_name	=> l_api_name);
702 		Fnd_Msg_Pub.Count_and_get (
703 			p_encoded		=> Okc_Api.G_FALSE,
704 			p_count			=> x_msg_count,
705 			p_data			=> x_msg_data);
706 
707 END AR_advance_receipt;
708 
709 
710 END OKL_BPD_ADVANCED_CASH_APP_PUB;
711