DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_BPD_ADVANCED_BILLING_PUB

Source


1 PACKAGE  BODY OKL_BPD_ADVANCED_BILLING_PUB AS
2 /* $Header: OKLPABLB.pls 120.4 2005/10/30 04:01:16 appldev noship $ */
3 
4   ------------------------------------------------------------------
5   -- Procedure advanced_billing to bill outstanding stream elements
6   ------------------------------------------------------------------
7 
8 PROCEDURE advanced_billing
9 	(p_api_version		IN  NUMBER
10 	,p_init_msg_list	IN  VARCHAR2
11 	,x_return_status	OUT NOCOPY VARCHAR2
12 	,x_msg_count		OUT NOCOPY NUMBER
13 	,x_msg_data		    OUT NOCOPY VARCHAR2
14 	,p_contract_number	IN  VARCHAR2
15 	,p_from_bill_date	IN  DATE
16 	,p_to_bill_date		IN  DATE
17     ,p_source           IN  VARCHAR2
18     ,x_ar_inv_tbl       OUT NOCOPY ar_inv_tbl_type
19  )
20 IS
21 
22 	------------------------------------------------------------
23 	-- Declare variables required by APIs
24 	------------------------------------------------------------
25 
26 	l_api_name		CONSTANT VARCHAR2(30)  := 'OKL_BPD_ADVANCED_BILLING_PUB';
27 	l_return_status	   	     VARCHAR2(1)   := Okl_Api.G_RET_STS_SUCCESS;
28 	l_data			         VARCHAR2(100);
29 	l_count			         NUMBER;
30 	l_contract_number	     okc_k_headers_b.contract_number%TYPE;
31 	l_from_bill_date	     DATE;
32 	l_to_bill_date		     DATE;
33 
34   BEGIN
35 
36 	------------------------------------------------------------
37 	-- Start processing
38 	------------------------------------------------------------
39 
40 	x_return_status		:= Fnd_Api.G_RET_STS_SUCCESS;
41 
42 	SAVEPOINT sp_bill_streams;
43 
44 	l_contract_number	:= p_contract_number;
45 	l_from_bill_date	:= p_from_bill_date;
46 	l_to_bill_date		:= p_to_bill_date;
47 
48 	------------------------------------------------------------
49 	-- Call process API to do advance billing
50 	------------------------------------------------------------
51 	OKL_BPD_ADVANCED_BILLING_PVT.advanced_billing (
52 			p_api_version		=> p_api_version,
53 			p_init_msg_list		=> p_init_msg_list,
54 			x_return_status		=> l_return_status,
55 			x_msg_count		    => x_msg_count,
56 			x_msg_data		    => x_msg_data,
57 			p_contract_number	=> l_contract_number,
58 			p_from_bill_date	=> l_from_bill_date,
59 			p_to_bill_date		=> l_to_bill_date,
60             p_source            => p_source,
61             x_ar_inv_tbl        => x_ar_inv_tbl);
62 
63             x_return_status		:= l_return_status;
64   EXCEPTION
65 
66 	------------------------------------------------------------
67 	-- Exception handling
68 	------------------------------------------------------------
69 
70 	WHEN Fnd_Api.G_EXC_ERROR THEN
71 
72 		ROLLBACK TO sp_bill_streams;
73 		x_return_status := Fnd_Api.G_RET_STS_ERROR;
74 		Fnd_Msg_Pub.Count_and_get (
75 			p_encoded		=> Okc_Api.G_FALSE,
76 			p_count			=> x_msg_count,
77 			p_data			=> x_msg_data);
78 
79 	WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
80 
81 		ROLLBACK TO sp_bill_streams;
82 		x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
83 		Fnd_Msg_Pub.Count_and_get (
84 			p_encoded		=> Okc_Api.G_FALSE,
85 			p_count			=> x_msg_count,
86 			p_data			=> x_msg_data);
87 
88 	WHEN OTHERS THEN
89 
90 		x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
91 		Fnd_Msg_Pub.ADD_EXC_MSG (
92 			p_pkg_name		=> G_PKG_NAME,
93 			p_procedure_name	=> l_api_name);
94 		Fnd_Msg_Pub.Count_and_get (
95 			p_encoded		=> Okc_Api.G_FALSE,
96 			p_count			=> x_msg_count,
97 			p_data			=> x_msg_data);
98 
99 
100 END advanced_billing;
101 
102 PROCEDURE advanced_billing_conc (
103                 errbuf  OUT NOCOPY VARCHAR2,
104                 retcode OUT NOCOPY NUMBER,
105                 p_from_bill_date  IN VARCHAR2,
106                 p_to_bill_date  IN VARCHAR2,
107                 p_contract_number  IN VARCHAR2
108         )
109 IS
110   l_api_version     NUMBER := 1;
111   lx_msg_count      NUMBER;
112   l_from_bill_date  DATE;
113   l_to_bill_date    DATE;
114   l_msg_index_out   NUMBER :=0;
115   lx_msg_data       VARCHAR2(450);
116   lx_return_status  VARCHAR2(1);
117   l_request_id      NUMBER;
118   x_ar_inv_tbl      OKL_BPD_ADVANCED_BILLING_PVT.ar_inv_tbl_type;
119 BEGIN
120 
121     IF p_from_bill_date IS NOT NULL THEN
122         l_from_bill_date :=  FND_DATE.CANONICAL_TO_DATE(p_from_bill_date);
123     END IF;
124 
125     IF p_to_bill_date IS NOT NULL THEN
126         l_to_bill_date :=  FND_DATE.CANONICAL_TO_DATE(p_to_bill_date);
127     END IF;
128 
129     OKL_BPD_ADVANCED_BILLING_PUB.advanced_billing (
130                 p_api_version     => l_api_version,
131                 p_init_msg_list   => Okl_Api.G_FALSE,
132                 x_return_status   => lx_return_status,
133                 x_msg_count       => lx_msg_count,
134                 x_msg_data        => errbuf,
135                 p_contract_number => p_contract_number,
136                 p_from_bill_date  => l_from_bill_date,
137 	            p_to_bill_date	  => l_to_bill_date,
138                 p_source          => 'ADVANCE_RECEIPTS',
139                 x_ar_inv_tbl      => x_ar_inv_tbl
140                 );
141 
142     IF lx_msg_count > 0 THEN
143        FOR i IN 1..lx_msg_count LOOP
144             fnd_msg_pub.get (p_msg_index     => i,
145                              p_encoded       => 'F',
146                              p_data          => lx_msg_data,
147                              p_msg_index_out => l_msg_index_out);
148 
149             FND_FILE.PUT_LINE (FND_FILE.OUTPUT,TO_CHAR(i) || ': ' || lx_msg_data);
150       END LOOP;
151     END IF;
152 
153    EXCEPTION
154       WHEN OTHERS THEN
155           FND_FILE.PUT_LINE (FND_FILE.OUTPUT,'Some Error');
156    END advanced_billing_conc;
157 
158 
159 END OKL_BPD_ADVANCED_BILLING_PUB;