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