DBA Data[Home] [Help]

PACKAGE BODY: APPS.XTR_UPDATE_SETTLEMENT_ACCOUNTS

Source


1 PACKAGE BODY XTR_UPDATE_SETTLEMENT_ACCOUNTS as
2 /* $Header: xtrupacb.pls 120.3 2006/11/03 12:27:20 kbabu noship $ */
3 
4 --------------------------------------
5 -- declaration of public procedures and functions
6 --------------------------------------
7 
8 /**
9  * PROCEDURE process_settlement_accounts
10  *
11  * DESCRIPTION
12  *     	This procedure updates XTR_DEAL_DATE_AMOUNTS table and sets the
13  * 	company account or counterparty account specified as the
14  *	account_number_from to the account specified as account_number_to.
15  *
16  * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
17  *
18  * ARGUMENTS
19  *   IN:
20  *     	p_party_code                  	Party Code of the party for whom the
21  *					accounts are to be updated.
22  *     	p_current_bank_account		Bank Account Number from
23  *					XTR_BANK_ACCOUNTS for the above party.
24  *					All cashflow records that use this
25  *					account are to be updated.
26  *	p_new_bank_account		Bank Account Number from
27  *					XTR_BANK_ACCOUNTS for the above party.
28  *					All cashflow records that use the
29  *					above account will be updated with this
30  *					account.
31  *	p_start_date			All records with an amount_date greater
32  *					than or equal to this date will be
33  *					considered for update.
34  *	p_end_date			All records with an amount_date lesser
35  *					than or equal to this date will be
36  *					considered for update.
37  *	p_deal_type			Only those deals with the specified
38  *					Deal Type will be updated.
39  *	p_deal_number_from		Only those deals with a deal number
40  *					greater than or equal to this
41  *					parameter will be updated.
42  *	p_deal_number_to		Only those deals with a deal number
43  *					lesser than or equal to this
44  *					parameter will be updated.
45  *      p_include_journalized           Flag to indicate whether cashflows
46  *                                      that have already been journalized
47  *                                      should be updated.
48  *   IN/OUT:
49  *   OUT:
50  *
51  * NOTES
52  *
53  * MODIFICATION HISTORY
54  *
55  *   06-Jun-2005    Rajesh Jose        	o Created.
56  *
57  */
58 PROCEDURE Process_Settlement_Accounts(
59 	p_error_buf		OUT NOCOPY VARCHAR2,
60 	p_retcode		OUT NOCOPY NUMBER,
61 	p_party_code 		IN XTR_PARTY_INFO.PARTY_CODE%TYPE,
62 	p_current_bank_account 	IN XTR_BANK_ACCOUNTS.ACCOUNT_NUMBER%TYPE,
63 	p_new_bank_account 	IN XTR_BANK_ACCOUNTS.ACCOUNT_NUMBER%TYPE,
64 	p_start_date 		IN VARCHAR2,
65 	p_end_date 		IN VARCHAR2,
66 	p_deal_type 		IN XTR_DEALS.DEAL_TYPE%TYPE,
67 	p_deal_number_from 	IN XTR_DEALS.DEAL_NO%TYPE,
68 	p_deal_number_to	IN XTR_DEALS.DEAL_NO%TYPE,
69 	p_include_journalized	IN
70 		XTR_CFLOW_REQUEST_DETAILS.INCLUDE_JOURNALIZED_FLAG%TYPE)
71 IS
72 
73 CURSOR company_list IS
74 select party_code
75 from xtr_parties_v where party_type = 'C';
76 
77 CURSOR max_deal_no IS
78 select max (deal_number) from XTR_DEAL_DATE_AMOUNTS;
79 
80 CURSOR comp_accts_with_deal_type (
81 	p_company_code XTR_PARTY_INFO.PARTY_CODE%TYPE,
82 	p_int_deal_no_from XTR_DEAL_DATE_AMOUNTS.DEAL_NUMBER%TYPE,
83 	p_int_deal_no_to XTR_DEAL_DATE_AMOUNTS.DEAL_NUMBER%TYPE,
84 	p_date DATE,
85 	p_default_end_date DATE) IS
86 SELECT 	deal_date_amount_id, deal_number,
87 	amount_date, amount_type, cashflow_amount,
88 	settle, batch_id, transaction_number, deal_type
89 FROM xtr_deal_date_amounts
90 WHERE account_no = p_current_bank_account
91 AND amount_date >= p_date
92 AND amount_date <= p_default_end_date
93 AND deal_type = p_deal_type
94 AND company_code = p_company_code
95 AND deal_number BETWEEN p_int_deal_no_from AND p_int_deal_no_to;
96 
97 CURSOR comp_accts_with_deal_no (
98 	p_company_code XTR_PARTY_INFO.PARTY_CODE%TYPE,
99 	p_int_deal_no_from XTR_DEAL_DATE_AMOUNTS.DEAL_NUMBER%TYPE,
100 	p_int_deal_no_to XTR_DEAL_DATE_AMOUNTS.DEAL_NUMBER%TYPE,
101 	p_date DATE,
102 	p_default_end_date DATE) IS
103 SELECT 	deal_date_amount_id, deal_number,
104 	amount_date, amount_type, cashflow_amount,
105 	settle, batch_id, transaction_number, deal_type
106 FROM xtr_deal_date_amounts
107 WHERE account_no = p_current_bank_account
108 AND amount_date >= p_date
109 AND amount_date <= p_default_end_date
110 AND company_code = p_company_code
111 AND deal_type NOT IN ('CA', 'IAC')
112 AND deal_number BETWEEN p_int_deal_no_from AND p_int_deal_no_to;
113 
114 Cursor cparty_accts_with_deal_no(
115 	p_company_code XTR_PARTY_INFO.PARTY_CODE%TYPE,
116 	p_int_deal_no_from XTR_DEAL_DATE_AMOUNTS.DEAL_NUMBER%TYPE,
117 	p_int_deal_no_to XTR_DEAL_DATE_AMOUNTS.DEAL_NUMBER%TYPE,
118 	p_date DATE,
119 	p_default_end_date DATE) IS
120 SELECT deal_date_amount_id, deal_number,
121 	amount_date, amount_type, cashflow_amount,
122 	settle, batch_id, transaction_number, deal_type
123 FROM xtr_deal_date_amounts
124 WHERE cparty_account_no = p_current_bank_account
125 AND amount_date >= p_date
126 AND amount_date <= p_default_end_date
127 AND company_code = p_company_code
128 AND deal_type NOT IN ('CA', 'IAC')
129 AND deal_number BETWEEN p_int_deal_no_from AND p_int_deal_no_to;
130 
131 CURSOR cparty_accts_with_deal_type (
132 	p_company_code XTR_PARTY_INFO.PARTY_CODE%TYPE,
133 	p_int_deal_no_from XTR_DEAL_DATE_AMOUNTS.DEAL_NUMBER%TYPE,
134 	p_int_deal_no_to XTR_DEAL_DATE_AMOUNTS.DEAL_NUMBER%TYPE,
135 	p_date DATE,
136 	p_default_end_date DATE) IS
137 SELECT 	deal_date_amount_id, deal_number,
138 	amount_date, amount_type, cashflow_amount,
139 	settle, batch_id, transaction_number, deal_type
140 FROM xtr_deal_date_amounts
141 WHERE cparty_account_no = p_current_bank_account
142 AND amount_date >= p_date
143 AND amount_date <= p_default_end_date
144 AND deal_type = p_deal_type
145 AND company_code = p_company_code
146 AND deal_number BETWEEN p_int_deal_no_from AND p_int_deal_no_to;
147 
148 CURSOR check_journal( p_batch_id XTR_DEAL_DATE_AMOUNTS.BATCH_ID%TYPE) IS
149 SELECT 	'Y'
150 FROM 	xtr_batches b, xtr_batch_events e
151 WHERE 	b.batch_id  = e.batch_id
152 AND	e.event_code = 'JRNLGN'
153 AND	b.batch_id = p_batch_id;
154 
155 l_commit_counter 	NUMBER;
156 l_company_code		XTR_PARTY_INFO.PARTY_CODE%TYPE;
157 l_current_currency 	XTR_BANK_ACCOUNTS.currency%TYPE;
158 l_current_party_code 	XTR_BANK_ACCOUNTS.PARTY_CODE%TYPE;
159 l_new_currency 		XTR_BANK_ACCOUNTS.currency%TYPE;
160 l_new_authorized 	XTR_BANK_ACCOUNTS.AUTHORISED%TYPE;
161 l_reqid 		VARCHAR2(30);
162 l_request_id 		NUMBER;
163 l_amount_type		XTR_DEAL_DATE_AMOUNTS.AMOUNT_TYPE%TYPE;
164 l_amount_date		XTR_DEAL_DATE_AMOUNTS.AMOUNT_DATE%TYPE;
165 l_settle		XTR_DEAL_DATE_AMOUNTS.SETTLE%TYPE;
166 l_batch_id		XTR_DEAL_DATE_AMOUNTS.BATCH_ID%TYPE;
167 l_party_type		XTR_PARTY_INFO.PARTY_TYPE%TYPE;
168 l_deal_number		XTR_DEALS.DEAL_NO%TYPE;
169 l_deal_date_amount_id	XTR_DEAL_DATE_AMOUNTS.DEAL_DATE_AMOUNT_ID%TYPE;
170 l_cf_req_details_id	XTR_CFLOW_REQUEST_DETAILS.CASHFLOW_REQUEST_DETAILS_ID%TYPE;
171 l_cashflow_amount	XTR_DEAL_DATE_AMOUNTS.CASHFLOW_AMOUNT%TYPE;
172 l_transaction_number	XTR_DEAL_DATE_AMOUNTS.TRANSACTION_NUMBER%TYPE;
173 l_deal_type		XTR_DEAL_DATE_AMOUNTS.DEAL_TYPE%TYPE;
174 l_updated_flag		VARCHAR2(1);
175 l_journalized		VARCHAR2(1);
176 l_message_name		VARCHAR2(30);
177 
178 p_int_start_date	DATE;
179 p_int_end_date		DATE;
180 p_int_deal_number_from	NUMBER;
181 p_int_deal_number_to	NUMBER;
182 p_company_code		XTR_PARTY_INFO.PARTY_CODE%TYPE;
183 
184 BEGIN
185 
186  G_user_id := FND_GLOBAL.USER_ID;
187  G_create_date := trunc(sysdate);
188  p_int_start_date := to_date(p_start_date, 'YYYY/MM/DD HH24:MI:SS');
189  p_int_end_date := to_date(p_end_date, 'YYYY/MM/DD HH24:MI:SS');
190  --Verify Bank Account Currencies are the same
191  fnd_profile.get('CONC_REQUEST_ID', l_reqid);
192  l_request_id := to_number(l_reqid);
193 
194 /* for bug 5634804*/
195  IF p_int_end_date IS NULL THEN
196 	p_int_end_date := to_date('31-12-4712', 'DD-MM-RRRR');
197  END IF;
198 /* for bug 5634804*/
199 
200  SELECT xban.currency, xpv.party_type
201  INTO	l_current_currency, l_party_type
202  FROM 	xtr_bank_accounts xban, xtr_parties_v xpv
203  WHERE  xban.account_number = p_current_bank_account
204  AND	xban.party_code = p_party_code
205  AND	xpv.party_code = xban.party_code;
206 
207  SELECT	currency, authorised
208  INTO	l_new_currency, l_new_authorized
209  FROM	xtr_bank_accounts
210  WHERE	account_number = p_new_bank_account
211  AND	party_code = p_party_code;
212 
213  IF l_new_authorized <> 'Y' THEN
214 	SELECT 	XTR_CFLOW_REQUEST_DETAILS_S.NEXTVAL
215 	INTO	l_cf_req_details_id
216 	FROM	DUAL;
217 	insert_request_details( l_cf_req_details_id,
218 			l_request_id, p_party_code,
219 			p_current_bank_account, p_new_bank_account,
220 			p_deal_type, p_deal_number_from,
221 			p_deal_number_to, p_int_start_date,
222 			p_int_end_date, p_include_journalized);
223 	l_message_name := 'XTR_CFLOW_ACCT_UNAUTHORIZED';
224 	insert_transaction_details(l_cf_req_details_id, sysdate,
225 			'', 0, '', 0, 0, 'N',
226 			l_message_name);
227 	l_request_id := FND_REQUEST.SUBMIT_REQUEST('XTR', 'XTRUPREP',
228 				'','', FALSE, l_cf_req_details_id);
229 	IF l_request_id = 0 THEN
230 		RAISE APP_EXCEPTION.application_exception;
231 	END IF;
232  END IF;
233 
234  IF (l_message_name IS NULL) THEN
235  	IF l_current_currency <> l_new_currency THEN
236 		SELECT 	XTR_CFLOW_REQUEST_DETAILS_S.NEXTVAL
237 		INTO	l_cf_req_details_id
238 		FROM	DUAL;
239 		insert_request_details( l_cf_req_details_id,
240 				l_request_id, p_party_code,
241 				p_current_bank_account, p_new_bank_account,
242 				p_deal_type, p_deal_number_from,
243 				p_deal_number_to, p_int_start_date,
244 				p_int_end_date, p_include_journalized);
245 		l_message_name := 'XTR_CFLOW_CURRENCY_MISMATCH';
246 		insert_transaction_details(l_cf_req_details_id, sysdate,
247 				'', 0, '', 0, 0, 'N',
248 				l_message_name);
249 		l_request_id := FND_REQUEST.SUBMIT_REQUEST('XTR', 'XTRUPREP',
250 				'','', FALSE, l_cf_req_details_id);
251 		IF l_request_id = 0 THEN
252 			RAISE APP_EXCEPTION.application_exception;
253 		END IF;
254  	END IF;
255  END IF;
256 
257  IF l_message_name IS NULL THEN
258 	SELECT	XTR_CFLOW_REQUEST_DETAILS_S.NEXTVAL
259 	INTO	l_cf_req_details_id
260 	FROM	DUAL;
261 	insert_request_details(l_cf_req_details_id, l_request_id,
262 				p_party_code, p_current_bank_account,
263 				p_new_bank_account, p_deal_type,
264 				p_deal_number_from, p_deal_number_to,
265 				p_int_start_date, p_int_end_date,
266 				p_include_journalized);
267 	IF p_deal_number_from IS NULL THEN
268 		p_int_deal_number_from := 0;
269 	ELSE
270 		p_int_deal_number_from := p_deal_number_from;
271 	END IF;
272 	IF p_deal_number_to IS NULL THEN
273 		OPEN max_deal_no;
274 		FETCH max_deal_no INTO p_int_deal_number_to;
275 		CLOSE max_deal_no;
276 	ELSE
277 		p_int_deal_number_to := p_deal_number_to;
278 	END IF;
279 	l_commit_counter := 0;
280 	IF l_party_type = 'C' THEN
281 		IF p_deal_type IS NULL THEN
282 			OPEN comp_accts_with_deal_no (
283 				p_party_code, p_int_deal_number_from,
284 				p_int_deal_number_to,
285 				p_int_start_date, p_int_end_date);
286 			LOOP
287 				FETCH comp_accts_with_deal_no INTO
288 					l_deal_date_amount_id,
289 					l_deal_number,
290 					l_amount_date, l_amount_type,
291 					l_cashflow_amount, l_settle,
292 					l_batch_id,
293 					l_transaction_number, l_deal_type;
294 				IF comp_accts_with_deal_no%NOTFOUND THEN
295 					CLOSE comp_accts_with_deal_no;
296 					EXIT;
297 				END IF;
298 				l_updated_flag := 'Y';
299 				l_message_name := '';
300 				IF l_settle = 'Y' THEN
301 					l_updated_flag := 'N';
302 					l_message_name :=
303 						'XTR_CFLOW_NOT_UPDATED';
304 				END IF;
305 				IF (l_batch_id IS NOT NULL AND
306 				    l_updated_flag = 'Y') THEN
307 					OPEN check_journal(l_batch_id);
308 					FETCH check_journal
309 					INTO	l_journalized;
310 					CLOSE	check_journal;
311 					IF l_journalized = 'Y' THEN
312 						IF p_include_journalized = 'Y'
313 						THEN
314 						   l_updated_flag := 'Y';
315 						   l_message_name :=
316 						    'XTR_ACCNT_CHNG_AFTER_JRNL';
317 						ELSE
318 						   l_updated_flag := 'N';
319 						   l_message_name :=
320 							'XTR_CFLOW_NOT_UPDATED';
321 						END IF;
322 					END IF;
323 				END IF;
324 				IF l_updated_flag = 'Y' THEN
325 					UPDATE xtr_deal_date_amounts
326 					set account_no = p_new_bank_account
327 					where deal_date_amount_id =
328 						l_deal_date_amount_id;
329 				END IF;
330 				l_commit_counter := l_commit_counter + 1;
331 				insert_transaction_details(
332 					l_cf_req_details_id,
333 					l_amount_date,
334 					l_amount_type,
335 					l_cashflow_amount,
336 					l_deal_type,
337 					l_deal_number,
338 					l_transaction_number,
339 					l_updated_flag,
340 					l_message_name);
341 				IF l_commit_counter = 1000 THEN
342 					COMMIT;
343 					l_commit_counter := 0;
344 				END IF;
345 			END LOOP;
346 			COMMIT;
347 			IF comp_accts_with_deal_no%ISOPEN THEN
348 				CLOSE comp_accts_with_deal_no;
349 			END IF;
350 		ELSE -- p_deal_type is not null
351 			OPEN comp_accts_with_deal_type(
352 				p_party_code, p_int_deal_number_from,
353 				p_int_deal_number_to,
354 				p_int_start_date, p_int_end_date);
355 			 LOOP
356 				FETCH comp_accts_with_deal_type
357 				INTO
361 					l_cashflow_amount, l_settle,
358 					l_deal_date_amount_id,
359 					l_deal_number,
360 					l_amount_date, l_amount_type,
362 					l_batch_id,
363 					l_transaction_number, l_deal_type;
364 				IF comp_accts_with_deal_type%NOTFOUND THEN
365 					CLOSE comp_accts_with_deal_type;
366 					EXIT;
367 				END IF;
368 				l_updated_flag := 'Y';
369 				l_message_name := '';
370 				IF l_settle = 'Y' THEN
371 					l_updated_flag := 'N';
372 					l_message_name :=
373 						'XTR_CFLOW_NOT_UPDATED';
374 				END IF;
375 				IF (l_batch_id IS NOT NULL AND
376 				    l_updated_flag = 'Y') THEN
377 					OPEN check_journal(l_batch_id);
378 					FETCH check_journal
379 					INTO	l_journalized;
380 					CLOSE	check_journal;
381 					IF l_journalized = 'Y' THEN
382 						IF p_include_journalized = 'Y'
383 						THEN
384 						   l_updated_flag := 'Y';
385 						   l_message_name :=
386 						    'XTR_ACCNT_CHNG_AFTER_JRNL';
387 						ELSE
388 						   l_updated_flag := 'N';
389 						   l_message_name :=
390 							'XTR_CFLOW_NOT_UPDATED';
391 						END IF;
392 					END IF;
393 				END IF;
394 				IF l_updated_flag = 'Y' THEN
395 					UPDATE xtr_deal_date_amounts
396 					set account_no = p_new_bank_account
397 					where deal_date_amount_id =
398 						l_deal_date_amount_id;
399 				END IF;
400 				l_commit_counter := l_commit_counter + 1;
401 				insert_transaction_details(
402 					l_cf_req_details_id,
403 					l_amount_date,
404 					l_amount_type,
405 					l_cashflow_amount,
406 					l_deal_type,
407 					l_deal_number,
408 					l_transaction_number,
409 					l_updated_flag,
410 					l_message_name);
411 				IF l_commit_counter = 1000 THEN
412 					COMMIT;
413 					l_commit_counter := 0;
414 				END IF;
415 			END LOOP;
416 			COMMIT;
417 			IF comp_accts_with_deal_type%ISOPEN THEN
418 				CLOSE comp_accts_with_deal_type;
419 			END IF;
420 		END IF; -- p_deal_type is null
421 	ELSE -- p_party_type = Counterparty
422 		IF p_deal_type IS NULL THEN
423 			OPEN company_list;
424 			LOOP
425 				FETCH company_list INTO l_company_code;
426 				IF company_list%NOTFOUND THEN
427 					CLOSE company_list;
428 					EXIT;
429 				END IF;
430 				l_commit_counter := 0;
431 				OPEN cparty_accts_with_deal_no
432 						(l_company_code,
433 						p_int_deal_number_from,
434 						p_int_deal_number_to,
435 						p_int_start_date,
436 						p_int_end_date);
437 				LOOP
438 					FETCH cparty_accts_with_deal_no
439 					INTO
440 					l_deal_date_amount_id,
441 					l_deal_number,
442 					l_amount_date, l_amount_type,
443 					l_cashflow_amount, l_settle,
444 					l_batch_id,
445 					l_transaction_number, l_deal_type;
446 					IF cparty_accts_with_deal_no%NOTFOUND
447 					THEN
448 						CLOSE cparty_accts_with_deal_no;
449 						EXIT;
450 					END IF;
451 					l_updated_flag := 'Y';
452 					l_message_name := '';
453 					IF l_settle = 'Y' THEN
454 						l_updated_flag := 'N';
455 						l_message_name :=
456 							'XTR_CFLOW_NOT_UPDATED';
457 					END IF;
458 					IF (l_batch_id IS NOT NULL AND
459 				    	    l_updated_flag = 'Y') THEN
460 					   OPEN check_journal(l_batch_id);
461 					   FETCH check_journal
462 					   INTO	l_journalized;
463 					   CLOSE check_journal;
464 					   IF l_journalized = 'Y' THEN
465 						IF p_include_journalized = 'Y'
466 						THEN
467 						   l_updated_flag := 'Y';
468 						   l_message_name :=
469 						    'XTR_ACCNT_CHNG_AFTER_JRNL';
470 						ELSE
471 						   l_updated_flag := 'N';
472 						   l_message_name :=
473 							'XTR_CFLOW_NOT_UPDATED';
474 						END IF;
475 					   END IF;
476 					END IF;
477 					IF l_updated_flag = 'Y' THEN
478 						Update XTR_DEAL_DATE_AMOUNTS
479 						Set cparty_account_no =
480 							p_new_bank_account
481 						Where deal_date_amount_id =
482 							l_deal_date_amount_id;
483 					END IF;
484 					l_commit_counter :=
485 						l_commit_counter + 1;
486 					insert_transaction_details(
487 						l_cf_req_details_id,
488 						l_amount_date,
489 						l_amount_type,
490 						l_cashflow_amount,
491 						l_deal_type,
492 						l_deal_number,
493 						l_transaction_number,
494 						l_updated_flag,
495 						l_message_name);
496 					IF l_commit_counter = 1000 THEN
497 						COMMIT;
498 						l_commit_counter := 0;
499 					END IF;
500 				END LOOP; -- unauth_counterparty
501 				COMMIT;
502 				IF cparty_accts_with_deal_no%ISOPEN THEN
503 					CLOSE cparty_accts_with_deal_no;
504 		       		END IF;
505 			END LOOP; -- company_list
506 			IF company_list%ISOPEN THEN
507 				CLOSE company_list;
508 			END IF;
509 		ELSE -- p_deal_type is not null
510 		OPEN company_list;
511 			LOOP
512 				FETCH company_list INTO l_company_code;
513 				IF company_list%NOTFOUND THEN
514 					CLOSE company_list;
515 					EXIT;
516 				END IF;
517 				l_commit_counter := 0;
518 				OPEN cparty_accts_with_deal_type
519 						(l_company_code,
520 						p_int_deal_number_from,
521 						p_int_deal_number_to,
522 						p_int_start_date,
523 						p_int_end_date);
524 				LOOP
525 					FETCH cparty_accts_with_deal_type
526 					INTO
527 					l_deal_date_amount_id,
528 					l_deal_number,
529 					l_amount_date, l_amount_type,
530 					l_cashflow_amount, l_settle,
531 					l_batch_id,
532 					l_transaction_number, l_deal_type;
533 					IF cparty_accts_with_deal_type%NOTFOUND
534 					THEN
538 					l_updated_flag := 'Y';
535 					      CLOSE cparty_accts_with_deal_type;
536 						EXIT;
537 					END IF;
539 					l_message_name := '';
540 					IF l_settle = 'Y' THEN
541 						l_updated_flag := 'N';
542 						l_message_name :=
543 							'XTR_CFLOW_NOT_UPDATED';
544 					END IF;
545 					IF (l_batch_id IS NOT NULL AND
546 				    	    l_updated_flag = 'Y') THEN
547 					   OPEN check_journal(l_batch_id);
548 					   FETCH check_journal
549 					   INTO	l_journalized;
550 					   CLOSE check_journal;
551 					   IF l_journalized = 'Y' THEN
552 						IF p_include_journalized = 'Y'
553 						THEN
554 						   l_updated_flag := 'Y';
555 						   l_message_name :=
556 						    'XTR_ACCNT_CHNG_AFTER_JRNL';
557 						ELSE
558 						   l_updated_flag := 'N';
559 						   l_message_name :=
560 							'XTR_CFLOW_NOT_UPDATED';
561 						END IF;
562 					   END IF;
563 					END IF;
564 					IF l_updated_flag = 'Y' THEN
565 						Update XTR_DEAL_DATE_AMOUNTS
566 						Set cparty_account_no =
567 							p_new_bank_account
568 						Where deal_date_amount_id =
569 							l_deal_date_amount_id;
570 					END IF;
571 					l_commit_counter :=
572 						l_commit_counter + 1;
573 					insert_transaction_details(
574 						l_cf_req_details_id,
575 						l_amount_date,
576 						l_amount_type,
577 						l_cashflow_amount,
578 						l_deal_type,
579 						l_deal_number,
580 						l_transaction_number,
581 						l_updated_flag,
582 						l_message_name);
583 					IF l_commit_counter = 1000 THEN
584 						COMMIT;
585 						l_commit_counter := 0;
586 					END IF;
587 				END LOOP; -- unauth_counterparty
588 				COMMIT;
589 				IF cparty_accts_with_deal_type%ISOPEN THEN
590 					CLOSE cparty_accts_with_deal_type;
591 		       		END IF;
592 			END LOOP; -- company_list
593 			IF company_list%ISOPEN THEN
594 				CLOSE company_list;
595 			END IF;
596 		END IF;
597 	END IF;
598 
599 	l_request_id := FND_REQUEST.SUBMIT_REQUEST('XTR', 'XTRUPREP',
600 					'','', FALSE, l_cf_req_details_id);
601 	IF l_request_id = 0 THEN
602 		RAISE APP_EXCEPTION.application_exception;
603 	END IF;
604  END IF;
605 END;
606 
607 
608 
609 /**
610  * PROCEDURE insert_request_details
611  *
612  * DESCRIPTION
613  *     	Inserts request details into XTR_CFLOW_REQUEST_DETAILS table so that
614  *	the execution report can be run at any time.
615  *
616  * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
617  *
618  * ARGUMENTS
619  *   IN:
620  *	p_cashflow_request_details_id	The identifier for the record.
621  *	p_request_id			The Request ID of the Concurrent
622  *					Request that was run to update the
623  *					Settlement Accounts.
624  *     	p_party_code                  	Party Code Parameter from the request.
625  *     	p_current_bank_account		Current Bank Account Number Parameter
626  *					from the request.
627  *	p_new_bank_account		New Bank Account Number Parameter
628  *					from request.
629  *	p_start_date			Start Date Parameter from the request.
630  *	p_end_date			End Date Parameter from the request.
631  *	p_deal_type			Deal Type Parameter from the request.
632  *	p_deal_number_from		Deal Number From Parameter from the
633  *					request.
634  *	p_deal_number_to		Deal Number To Parameter from the
635  *					request.
636  *	p_inc_journalized		Include Journalized Transactions
637  *					Parameter from the request.
638  *   IN/OUT:
639  *   OUT:
640  *
641  * NOTES
642  *
643  * MODIFICATION HISTORY
644  *
645  *   06-Jun-2005    Rajesh Jose        	o Created.
646  */
647 PROCEDURE Insert_Request_Details(
648 	p_cashflow_request_details_id IN
649 		XTR_CFLOW_REQUEST_DETAILS.CASHFLOW_REQUEST_DETAILS_ID%TYPE,
650 	p_request_id 		IN	NUMBER,
651 	p_party_code 		IN	XTR_PARTY_INFO.PARTY_CODE%TYPE,
652 	p_current_bank_account 	IN	XTR_BANK_ACCOUNTS.ACCOUNT_NUMBER%TYPE,
653 	p_new_bank_account 	IN	XTR_BANK_ACCOUNTS.ACCOUNT_NUMBER%TYPE,
654 	p_deal_type 		IN	XTR_DEALS.DEAL_TYPE%TYPE,
655 	p_deal_number_from 	IN	XTR_DEALS.DEAL_NO%TYPE,
656 	p_deal_number_to 	IN	XTR_DEALS.DEAL_NO%TYPE,
657 	p_start_date 		IN	DATE,
658 	p_end_date 		IN	DATE,
659 	p_inc_journalized 	IN
660 			XTR_CFLOW_REQUEST_DETAILS.INCLUDE_JOURNALIZED_FLAG%TYPE)
661 IS
662 BEGIN
663 	INSERT INTO XTR_CFLOW_REQUEST_DETAILS
664 	(cashflow_request_details_id, request_id, party_code,
665 	 account_no_from, account_no_to, deal_type,
666 	 deal_number_from, deal_number_to, starting_cflow_date,
667 	 ending_cflow_date, include_journalized_flag,
668 	 created_by, creation_date, last_updated_by, last_update_date,
669 	 last_update_login)
670 	VALUES
671 	(p_cashflow_request_details_id, p_request_id, p_party_code,
672 	 p_current_bank_account, p_new_bank_account, p_deal_type,
673 	 p_deal_number_from, p_deal_number_to, p_start_date,
674 	 p_end_date, p_inc_journalized,
675 	 G_user_id, G_create_date, G_user_id, G_create_date,
676 	 G_user_id);
677 END;
678 
679 
680 /**
681  * PROCEDURE insert_transaction_details
682  *
683  * DESCRIPTION
684  *	Inserts details of transactions updated by the concurrent request
685  *	so that the Execution Report shows accurate data at any point of time.
686  *
687  * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
688  *
689  * ARGUMENTS
690  *   IN:
691  *	p_cashflow_request_details_id	Foreign key reference from
692  *					XTR_CFLOW_REQUEST_DETAILS.
693  *	p_amount_date			The amount date of the cashflow.
694  *	p_amount_type			The type of cashflow.
695  *	p_cashflow_amount		The amount of cash flow.
696  *	p_deal_type			The Deal Type for the record.
697  *	p_deal_number			The Deal Number for the record.
698  *	p_transaction_number		The Transaction Number for the record.
699  *	p_updated_flag			Flag indicating whether the record was
700  *					updated or not.
701  *	p_message_name			Message to be shown if record was not
702  *					updated. Conveys the reason why the
703  *					record was not updated.
704  *   IN/OUT:
705  *   OUT:
706  *
707  * NOTES
708  *
709  * MODIFICATION HISTORY
710  *   06-Jun-2005    Rajesh Jose        	o Created.
711  *
712  */
713 
714 PROCEDURE Insert_Transaction_Details(
715 	p_cashflow_request_details_id 	IN
716 		XTR_CFLOW_REQUEST_DETAILS.CASHFLOW_REQUEST_DETAILS_ID%TYPE,
717 	p_amount_date		IN	DATE,
718 	p_amount_type		IN	XTR_DEAL_DATE_AMOUNTS.AMOUNT_TYPE%TYPE,
719 	p_cashflow_amount	IN
720 				XTR_DEAL_DATE_AMOUNTS.CASHFLOW_AMOUNT%TYPE,
721 	p_deal_type		IN	XTR_DEAL_DATE_AMOUNTS.DEAL_TYPE%TYPE,
722 	p_deal_number		IN	XTR_DEALS.DEAL_NO%TYPE,
723 	p_transaction_number	IN
724 				XTR_DEAL_DATE_AMOUNTS.TRANSACTION_NUMBER%TYPE,
725 	p_updated_flag		IN	VARCHAR2,
726 	p_message_name		IN	VARCHAR2)
727 IS
728 BEGIN
729 	INSERT INTO XTR_CFLOW_UPDATED_RECORDS
730 	(cashflow_request_details_id, amount_date, amount_type,
731 	 cashflow_amount, deal_type, deal_number,
732 	 transaction_number, updated_flag, message_name,
733 	 created_by, creation_date, last_updated_by, last_update_date,
734 	 last_update_login)
735 	VALUES
736 	(p_cashflow_request_details_id, p_amount_date, p_amount_type,
737 	 p_cashflow_amount, p_deal_type, p_deal_number,
738 	 p_transaction_number, p_updated_flag, p_message_name,
739 	 G_user_id, G_create_date, G_user_id, G_create_date,
740 	 G_user_id);
741 END;
742 
743 
744 END XTR_UPDATE_SETTLEMENT_ACCOUNTS;
745