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