DBA Data[Home] [Help]

PACKAGE BODY: APPS.FUN_NET_CONC_PROG_PKG

Source


1 PACKAGE BODY FUN_NET_CONC_PROG_PKG AS
2 /* $Header: funntcpb.pls 120.8 2011/04/27 12:05:29 srampure ship $ */
3 
4     PROCEDURE Create_Net_Batch(
5         errbuf  OUT NOCOPY VARCHAR2,
6         retcode OUT NOCOPY VARCHAR2,
7         p_batch_id IN fun_net_batches_all.batch_id%TYPE) IS
8 
9         l_return_status         VARCHAR2(1);
10         l_msg_count             NUMBER;
11         l_msg_data              VARCHAR2(2000);
12 
13     BEGIN
14         fun_net_util.log_string(1,'fun_net_conc_prog_pkg.create_net_batch','Before calling create batch API');
15         FUN_NET_ARAP_PKG.create_net_batch(
16                     p_init_msg_list => FND_API.G_TRUE,
17                     p_commit        => FND_API.G_TRUE,
18                     x_return_status => l_return_status,
19                     x_msg_count     => l_msg_count,
20                     x_msg_data      => l_msg_data,
21                     p_batch_id      => p_batch_id);
22         fun_net_util.log_string(1,'fun_net_conc_prog_pkg.create_net_batch','return from create batch API');
23         IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
24             fun_net_util.log_string(1,'fun_net_conc_prog_pkg.create_net_batch','Success');
25             retcode := 0;
26         ELSE
27             fun_net_util.log_string(1,'fun_net_conc_prog_pkg.create_net_batch','Error');
28             retcode := 2;
29         END IF;
30     EXCEPTION
31         WHEN OTHERS THEN
32             retcode := 2;
33             errbuf := sqlerrm;
34     END Create_Net_Batch;
35 
36     PROCEDURE Submit_Net_Batch(
37         errbuf  OUT NOCOPY VARCHAR2,
38         retcode OUT NOCOPY VARCHAR2,
39         p_batch_id IN fun_net_batches_all.batch_id%TYPE) IS
40 
41         l_return_status         VARCHAR2(1);
42         l_msg_count             NUMBER;
43         l_msg_data              VARCHAR2(2000);
44 
45     BEGIN
46         retcode := 0;
47         FUN_NET_ARAP_PKG.submit_net_batch (
48                         p_init_msg_list => FND_API.G_FALSE,
49                         p_commit        => FND_API.G_FALSE,
50                         x_return_status => l_return_status,
51                         x_msg_count     => l_msg_count,
52                         x_msg_data      => l_msg_data,
53                         p_batch_id      => p_batch_id);
54         IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
55             retcode := 0;
56             RETURN;
57         ELSE
58             LOOP
59                 errbuf := FND_MESSAGE.GET;
60                 IF errbuf IS NULL THEN
61                     EXIT;
62                 ELSE
63                  FND_FILE.PUT_LINE(FND_FILE.LOG,errbuf);
64                  FND_FILE.NEW_LINE(FND_FILE.LOG,1);
65                 END IF;
66             END LOOP;
67 
68             retcode := 2;
69             RETURN;
70         END IF;
71 
72     EXCEPTION
73         WHEN OTHERS THEN
74             retcode := 2;
75             errbuf := sqlerrm;
76     END Submit_Net_Batch;
77 
78     PROCEDURE Settle_Net_Batch(
79         errbuf  OUT NOCOPY VARCHAR2,
80         retcode OUT NOCOPY VARCHAR2,
81         p_batch_id IN fun_net_batches_all.batch_id%TYPE) IS
82 
83         l_return_status         VARCHAR2(1);
84         l_msg_count             NUMBER;
85         l_msg_data              VARCHAR2(2000);
86     BEGIN
87         retcode := 0;
88         FUN_NET_ARAP_PKG.settle_net_batch (
89             -- ***** Standard API Parameters *****
90             p_init_msg_list     => FND_API.G_TRUE,
91             p_commit            => FND_API.G_TRUE,
92             x_return_status     => l_return_status,
93             x_msg_count         => l_msg_count,
94             x_msg_data          => l_msg_data,
95             -- ***** Netting batch input parameters *****
96             p_batch_id          => p_batch_id);
97 
98         IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
99             retcode := 0;
100             RETURN;
101         ELSE
102            LOOP
103                 errbuf := FND_MESSAGE.GET;
104                 IF errbuf IS NULL THEN
105                     EXIT;
106                 ELSE
107                  FND_FILE.PUT_LINE(FND_FILE.LOG,errbuf);
108                  FND_FILE.NEW_LINE(FND_FILE.LOG,1);
109                 END IF;
110             END LOOP;
111 
112             retcode := 2;
113             RETURN;
114         END IF;
115 
116     EXCEPTION
117         WHEN OTHERS THEN
118             retcode := 2;
119             errbuf := sqlerrm;
120     END Settle_Net_Batch;
121 
122     PROCEDURE Reverse_Net_Batch(
123         errbuf  OUT NOCOPY VARCHAR2,
124         retcode OUT NOCOPY VARCHAR2,
125         p_batch_id IN fun_net_batches_all.batch_id%TYPE) IS
126 
127         l_return_status         VARCHAR2(1);
128         l_msg_count             NUMBER;
129         l_msg_data              VARCHAR2(2000);
130     BEGIN
131         retcode := 0;
132         FUN_NET_CANCEL_PKG.reverse_net_batch (
133             -- ***** Standard API Parameters *****
134             p_init_msg_list     => FND_API.G_TRUE,
135             p_commit            => FND_API.G_TRUE,
136             x_return_status     => l_return_status,
137             x_msg_count         => l_msg_count,
138             x_msg_data          => l_msg_data,
139             -- ***** Netting batch input parameters *****
140             p_batch_id          => p_batch_id);
141 
142         IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
143             retcode := 0;
144             RETURN;
145         ELSE
146            LOOP
147                 errbuf := FND_MESSAGE.GET;
148                 IF errbuf IS NULL THEN
149                     EXIT;
150                 ELSE
151                  FND_FILE.PUT_LINE(FND_FILE.LOG,errbuf);
152                  FND_FILE.NEW_LINE(FND_FILE.LOG,1);
153                 END IF;
154             END LOOP;
155 
156             retcode := 2;
157             RETURN;
158         END IF;
159 
160     EXCEPTION
161         WHEN OTHERS THEN
162             retcode := 2;
163             errbuf := sqlerrm;
164     END Reverse_Net_Batch;
165 
166 PROCEDURE Generate_Net_Batch(
167         errbuf  OUT NOCOPY VARCHAR2,
168         retcode OUT NOCOPY VARCHAR2,
169         p_org_id IN fun_net_batches_all.org_id%TYPE,
170         p_agreement_id IN fun_net_batches_all.AGREEMENT_ID%TYPE,
171         p_dummy1 IN VARCHAR2,
172 	p_batch_name IN fun_net_batches_all.batch_name%TYPE,
173         p_settlement_date IN VARCHAR2,
174         p_response_date IN VARCHAR2,
175         p_transaction_due_date IN VARCHAR2,
176         p_gl_date IN VARCHAR2,
177         p_exchange_rate_type IN fun_net_batches_all.exchange_rate_type%TYPE,
178         p_dummy2 IN VARCHAR2,
179         p_exchange_rate IN VARCHAR2,
180         p_review_netting_batch_flag IN fun_net_batches_all.REVIEW_NETTING_BATCH_FLAG%TYPE) IS
181 
182         CURSOR c_batch(p_batch_id NUMBER) IS
183         SELECT B.BATCH_NUMBER, B.BATCH_NAME, A.AGREEMENT_NAME, B.BATCH_CURRENCY, B.BATCH_STATUS_CODE
184         FROM FUN_NET_BATCHES_ALL B, FUN_NET_AGREEMENTS_ALL A
185         WHERE B.AGREEMENT_ID = A.AGREEMENT_ID
186         AND B.BATCH_NAME = nvl(p_batch_name, p_batch_id||'')
187         AND B.BATCH_ID >= p_batch_id;
188 
189         l_return_status         VARCHAR2(1);
190         l_msg_count             NUMBER;
191         l_msg_data              VARCHAR2(2000);
192         l_request_id            NUMBER;
193         l_batch_id              NUMBER;
194         l_allow_disc_flag       fun_net_agreements_all.ALLOW_DISC_FLAG%TYPE;
195         l_transaction_due_date  VARCHAR2(30);
196         l_agreement_name        fun_net_agreements_all.agreement_name%TYPE;
197         l_org_name              hr_operating_units.name%TYPE;
198         l_batch_currency        fun_net_batches_all.batch_currency%TYPE;
199         l_batch_name        fun_net_batches_all.batch_name%TYPE;
200 	l_batch_status        fun_net_batches_all.batch_status_code%TYPE;
201 
202     BEGIN
203         fun_net_util.log_string(1,'fun_net_conc_prog_pkg.Generate_Netting_Batch','Begin');
204 
205         select hr.name
206         into l_org_name
207         from hr_operating_units hr
208         where hr.organization_id = p_org_id;
209 
210         fun_net_util.log_string(1,'fun_net_conc_prog_pkg.Generate_Netting_Batch', 'p_org_id :'||p_org_id);
211 
212         IF p_agreement_id is not NULL THEN
213 
214 		SELECT agreement_name, ALLOW_DISC_FLAG
215 		INTO l_agreement_name, l_allow_disc_flag
216 		FROM FUN_NET_AGREEMENTS_ALL
217 		WHERE AGREEMENT_ID = p_agreement_id;
218 
219 	END IF;
220 
221         fun_net_util.log_string(1,'fun_net_conc_prog_pkg.Generate_Netting_Batch', 'Operating Unit :'||l_org_name);
222         fun_net_util.log_string(1,'fun_net_conc_prog_pkg.Generate_Netting_Batch', 'Agreement Name :'||l_agreement_name);
223 	fun_net_util.log_string(1,'fun_net_conc_prog_pkg.Generate_Netting_Batch', 'Settlement Date:'|| p_settlement_date);
224         fun_net_util.log_string(1,'fun_net_conc_prog_pkg.Generate_Netting_Batch', 'Response Date :'|| p_response_date);
225         fun_net_util.log_string(1,'fun_net_conc_prog_pkg.Generate_Netting_Batch', 'Batch Name :'||p_batch_name);
226         fun_net_util.log_string(1,'fun_net_conc_prog_pkg.Generate_Netting_Batch', 'Transaction Due Date :'||p_transaction_due_date);
227         fun_net_util.log_string(1,'fun_net_conc_prog_pkg.Generate_Netting_Batch', 'GL Date :'|| p_gl_date);
228         fun_net_util.log_string(1,'fun_net_conc_prog_pkg.Generate_Netting_Batch', 'Exchange Rate Type :'||p_exchange_rate_type);
229         fun_net_util.log_string(1,'fun_net_conc_prog_pkg.Generate_Netting_Batch', 'Exchange Rate :'||p_exchange_rate);
230         fun_net_util.log_string(1,'fun_net_conc_prog_pkg.Generate_Netting_Batch', 'Review Netting Batch Flag :'||p_review_netting_batch_flag);
231         fun_net_util.log_string(1,'fun_net_conc_prog_pkg.Generate_Netting_Batch', 'l_agreement_name :'||l_agreement_name);
232         fun_net_util.log_string(1,'fun_net_conc_prog_pkg.Generate_Netting_Batch', 'l_allow_disc_flag :'||l_allow_disc_flag);
233 
234         l_batch_id := FUN_NET_BATCHES_S.nextval;
235 
236         FND_FILE.PUT_LINE(FND_FILE.OUTPUT, '                   Generate Netting Batch        Date: '||to_char(sysdate,'DD-MON-YYYY HH:MM'));
237         FND_FILE.NEW_LINE(FND_FILE.OUTPUT,2 );
238         FND_FILE.PUT_LINE(FND_FILE.OUTPUT, '           Operating Unit : '||l_org_name);
239         FND_FILE.PUT_LINE(FND_FILE.OUTPUT, '           Agreement Name : '||l_agreement_name);
240         FND_FILE.PUT_LINE(FND_FILE.OUTPUT, '          Settlement Date : '|| fnd_date.canonical_to_date(p_settlement_date));
241         FND_FILE.PUT_LINE(FND_FILE.OUTPUT, '            Response Date : '|| fnd_date.canonical_to_date(p_response_date));
242         FND_FILE.PUT_LINE(FND_FILE.OUTPUT, '               Batch Name : '||p_batch_name);
243         FND_FILE.PUT_LINE(FND_FILE.OUTPUT, '     Transaction Due Date : '||p_transaction_due_date);
244         FND_FILE.PUT_LINE(FND_FILE.OUTPUT, '                  GL Date : '|| fnd_date.canonical_to_date(p_gl_date));
245         FND_FILE.PUT_LINE(FND_FILE.OUTPUT, '       Exchange Rate Type : '||p_exchange_rate_type);
246 
247         IF p_exchange_rate_type = 'User' THEN
248         FND_FILE.PUT_LINE(FND_FILE.OUTPUT, '            Exchange Rate : '||p_exchange_rate);
249         END IF;
250 
251         FND_FILE.PUT_LINE(FND_FILE.OUTPUT, 'Review Netting Batch Flag : '||p_review_netting_batch_flag);
252         FND_FILE.NEW_LINE(FND_FILE.OUTPUT,2 );
253 
254         IF(to_date(substr(p_settlement_date,0,11), 'YYYY-MM-DD')) < trunc(sysdate) THEN
255              FND_FILE.PUT_LINE(FND_FILE.OUTPUT, 'Error Message:');
256              FND_FILE.PUT_LINE(FND_FILE.OUTPUT, 'Please enter a Settlement Date which is on or after today''s date.');
257              retcode := 1;
258         ELSE
259 
260         FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'Batch Number   Batch Name          Agreement Names                         Status         Currency' );
261         FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'------------   ----------          ---------------                         ------         --------');
262 
263         l_transaction_due_date := p_transaction_due_date;
264 
265         IF nvl(l_allow_disc_flag, 'N') = 'Y' THEN
266 
267           l_transaction_due_date := to_char(fnd_date.canonical_to_date(p_settlement_date));
268         END IF;
269 
270         fun_net_util.log_string(1,'fun_net_conc_prog_pkg.Generate_Netting_Batch', 'INSERT INTO FUN_NET_BATCHES_ALL');
271 
272         INSERT INTO FUN_NET_BATCHES_ALL
273                         (batch_id,
274                         object_version_number,
275                         agreement_id,
276                         batch_name,
277                         batch_number,
278                         review_netting_batch_flag,
279                         batch_status_code,
280                         transaction_due_date,
281                         settlement_date,
282                         response_date,
283                         exchange_rate_type,
284                         exchange_rate,
285                         gl_date,
286                         org_id,
287                         creation_date,
288                         created_by,
289                         last_update_date,
290                         last_updated_by,
291                         last_update_login,
292                         attribute_category,
293                         attribute1,
294                         attribute2,
295                         attribute3,
296                         attribute4,
297                         attribute5,
298                         attribute6,
299                         attribute7,
300                         attribute8,
301                         attribute9,
302                         attribute10,
303                         attribute11,
304                         attribute12,
305                         attribute13,
306                         attribute14,
307                         attribute15,
308                         attribute16,
309                         attribute17,
310                         attribute18,
311                         attribute19,
312                         attribute20)
313                   VALUES
314                        (l_batch_id,
315                         1,
316                         p_agreement_id,
317                         nvl(p_batch_name, l_batch_id),
318                         l_batch_id,
319                         p_review_netting_batch_flag,
320                         'CREATED',
321 			l_transaction_due_date,
322 			fnd_date.canonical_to_date(p_settlement_date),
323 			fnd_date.canonical_to_date(p_response_date),
324                         p_exchange_rate_type,
325                         p_exchange_rate,
326 			fnd_date.canonical_to_date(p_gl_date),
327 			p_org_id,
328                         sysdate,
329                         fnd_global.user_id,
330                         sysdate,
331                         fnd_global.user_id,
332                         fnd_global.login_id,
333                         NULL,
334                         NULL,
335                         NULL,
336                         NULL,
337                         NULL,
338                         NULL,
339                         NULL,
340                         NULL,
341                         NULL,
342                         NULL,
343                         NULL,
344                         NULL,
345                         NULL,
346                         NULL,
347                         NULL,
348                         NULL,
349                         NULL,
350                         NULL,
351                         NULL,
352                         NULL,
353                         NULL);
354 
355         fun_net_util.log_string(1,'fun_net_conc_prog_pkg.Generate_Netting_Batch','Before calling FUN_NET_ARAP_PKG.create_net_batch');
356         FUN_NET_ARAP_PKG.create_net_batch(
357                     p_init_msg_list => FND_API.G_TRUE,
358                     p_commit        => FND_API.G_TRUE,
359                     x_return_status => l_return_status,
360                     x_msg_count     => l_msg_count,
361                     x_msg_data      => l_msg_data,
362                     p_batch_id      => l_batch_id);
363         fun_net_util.log_string(1,'fun_net_conc_prog_pkg.Generate_Netting_Batch','Return FUN_NET_ARAP_PKG.create_net_batch');
364         fun_net_util.log_string(1,'fun_net_conc_prog_pkg.Generate_Netting_Batch','l_return_status :'||l_return_status);
365         IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
366             OPEN c_batch(l_batch_id);
367             LOOP
368                     FETCH c_batch INTO l_batch_id, l_batch_name, l_agreement_name, l_batch_currency, l_batch_status;
369                     EXIT WHEN c_batch%NOTFOUND;
370                     FND_FILE.PUT_LINE(FND_FILE.OUTPUT,rpad(substr(l_batch_id,1,15),15)||rpad(substr(l_batch_name,1,80),20)||rpad(substr(l_agreement_name,1,80),40)||rpad(substr(l_batch_status,1,15),15)||l_batch_currency);
371             END LOOP;
372             CLOSE c_batch;
373             retcode := 0;
374         ELSE
375             fun_net_util.log_string(1,'fun_net_conc_prog_pkg.Generate_Netting_Batch','Error');
376             retcode := 2;
377         END IF;
378       END IF;
379 
380     EXCEPTION
381         WHEN NO_DATA_FOUND THEN
382           FND_FILE.PUT_LINE(FND_FILE.LOG,'No Data Found');
383           retcode := 2;
384         WHEN OTHERS THEN
385           FND_FILE.PUT_LINE(FND_FILE.LOG,'Unexpected error:' || sqlcode || sqlerrm);
386           retcode := 2;
387 
388     END Generate_Net_Batch;
389 
390 END FUN_NET_CONC_PROG_PKG;