1: PACKAGE BODY GL_JE_SEGMENT_VALUES_PKG as
2: /* $Header: glijesvb.pls 120.12.12010000.2 2008/08/13 13:41:29 kmotepal ship $ */
3:
4: --
5: -- PRIVATE VARIABLES
29: user_id := fnd_profile.value('USER_ID');
30: login_id := fnd_profile.value('LOGIN_ID');
31:
32: -- Delete all the existing values
33: DELETE FROM GL_JE_SEGMENT_VALUES
34: WHERE je_header_id = x_je_header_id;
35:
36: -- Insert distinct segment values
37: INSERT INTO GL_JE_SEGMENT_VALUES
33: DELETE FROM GL_JE_SEGMENT_VALUES
34: WHERE je_header_id = x_je_header_id;
35:
36: -- Insert distinct segment values
37: INSERT INTO GL_JE_SEGMENT_VALUES
38: (je_header_id, segment_type_code, segment_value,
39: creation_date, created_by, last_update_date, last_updated_by,
40: last_update_login)
41: SELECT LINE.je_header_id,
129: RAISE;
130: WHEN OTHERS THEN
131: fnd_message.set_name('SQLGL', 'GL_UNHANDLED_EXCEPTION');
132: fnd_message.set_token('PROCEDURE',
133: 'gl_je_segment_values_pkg.insert_segment_values');
134: RAISE;
135: END insert_segment_values;
136:
137: -- **********************************************************************
144: IS
145: num_rows NUMBER;
146: BEGIN
147: -- Insert new values only if needed
148: INSERT INTO GL_JE_SEGMENT_VALUES
149: (je_header_id, segment_type_code, segment_value,
150: creation_date, created_by, last_update_date, last_updated_by,
151: last_update_login)
152: SELECT LINE.je_header_id,
195: AND LINE.je_header_id = x_je_header_id
196: AND LINE.je_line_num = x_je_line_num
197: AND X.multiplier IN (1,Decode(LDG.mgt_seg_column_name,NULL,NULL,2))
198: AND NOT EXISTS (SELECT 'X'
199: FROM GL_JE_SEGMENT_VALUES SV
200: WHERE SV.je_header_id = LINE.je_header_id
201: AND SV.segment_type_code = DECODE(X.multiplier,
202: 1,'B',
203: 2,'M')
244: RAISE;
245: WHEN OTHERS THEN
246: fnd_message.set_name('SQLGL', 'GL_UNHANDLED_EXCEPTION');
247: fnd_message.set_token('PROCEDURE',
248: 'gl_je_segment_values_pkg.insert_segment_values');
249: RAISE;
250: END insert_segment_values;
251:
252: -- **********************************************************************
262: user_id := fnd_profile.value('USER_ID');
263: login_id := fnd_profile.value('LOGIN_ID');
264:
265: -- Delete all the existing values
266: DELETE FROM GL_JE_SEGMENT_VALUES
267: WHERE je_header_id IN (SELECT je_header_id
268: FROM GL_JE_HEADERS
269: WHERE je_batch_id = x_je_batch_id);
270:
268: FROM GL_JE_HEADERS
269: WHERE je_batch_id = x_je_batch_id);
270:
271: -- Insert distinct segment values
272: INSERT INTO GL_JE_SEGMENT_VALUES
273: (je_header_id, segment_type_code, segment_value,
274: creation_date, created_by, last_update_date, last_updated_by,
275: last_update_login)
276: SELECT LINE.je_header_id,
366: RAISE;
367: WHEN OTHERS THEN
368: fnd_message.set_name('SQLGL', 'GL_UNHANDLED_EXCEPTION');
369: fnd_message.set_token('PROCEDURE',
370: 'gl_je_segment_values_pkg.insert_batch_segment_values');
371: RAISE;
372: END insert_batch_segment_values;
373:
374: -- **********************************************************************
399:
400: IF (bsv_colname IS NOT NULL) AND
401: (msv_colname IS NOT NULL) THEN
402: insert_stmt :=
403: 'INSERT INTO gl_je_segment_values ' ||
404: '(je_header_id, segment_type_code, ' ||
405: ' segment_value, creation_date, created_by, last_update_date, ' ||
406: ' last_updated_by, last_update_login) ' ||
407: 'SELECT :header_id, ' ||
415: 'WHERE cc.code_combination_id = :cc ' ||
416: 'AND ml.multiplier between 1 and 2' ||
417: 'AND NOT EXISTS ' ||
418: '(SELECT 1 ' ||
419: 'FROM gl_je_segment_values sv '||
420: 'WHERE sv.je_header_id = :header_id '||
421: 'AND sv.segment_type_code = ' ||
422: 'decode(ml.multiplier, ' ||
423: '1, ''B'', ''M'') ' ||
429: ELSIF (bsv_colname IS NOT NULL) AND
430: (msv_colname IS NULL) THEN
431:
432: insert_stmt :=
433: 'INSERT INTO gl_je_segment_values ' ||
434: '(je_header_id, segment_type_code, ' ||
435: ' segment_value, creation_date, created_by, last_update_date, ' ||
436: ' last_updated_by, last_update_login) ' ||
437: 'SELECT :header_id, ' ||'''B'''||', '
440: 'FROM gl_code_combinations cc '||
441: 'WHERE cc.code_combination_id = :cc ' ||
442: 'AND NOT EXISTS ' ||
443: '(SELECT 1 ' ||
444: 'FROM gl_je_segment_values sv '||
445: 'WHERE sv.je_header_id = :header_id '||
446: 'AND sv.segment_type_code = ''B''' ||
447: 'AND sv.segment_value = '
448: || bsv_colname || ')';
458: RAISE;
459: WHEN OTHERS THEN
460: fnd_message.set_name('SQLGL', 'GL_UNHANDLED_EXCEPTION');
461: fnd_message.set_token('PROCEDURE',
462: 'gl_je_segment_values.add_segment_value');
463: RAISE;
464: END insert_ccid_segment_values;
465:
466: -- **********************************************************************
469: RETURN NUMBER
470: IS
471: num_rows NUMBER;
472: BEGIN
473: DELETE FROM GL_JE_SEGMENT_VALUES sv
474: WHERE sv.je_header_id = x_je_header_id;
475:
476: -- Return the number of distinct balancing and management segment values deleted
477: num_rows := SQL%ROWCOUNT;
482: RAISE;
483: WHEN OTHERS THEN
484: fnd_message.set_name('SQLGL', 'GL_UNHANDLED_EXCEPTION');
485: fnd_message.set_token('PROCEDURE',
486: 'gl_je_segment_values_pkg.delete_header_segment_values');
487: RAISE;
488: END delete_segment_values;
489:
490: -- **********************************************************************
493: RETURN NUMBER
494: IS
495: num_rows NUMBER;
496: BEGIN
497: DELETE FROM GL_JE_SEGMENT_VALUES SV
498: WHERE SV.je_header_id IN (SELECT JH.je_header_id
499: FROM GL_JE_HEADERS JH
500: WHERE JH.je_batch_id = x_je_batch_id);
501:
508: RAISE;
509: WHEN OTHERS THEN
510: fnd_message.set_name('SQLGL', 'GL_UNHANDLED_EXCEPTION');
511: fnd_message.set_token('PROCEDURE',
512: 'gl_je_segment_values_pkg.delete_batch_segment_values');
513: RAISE;
514: END delete_batch_segment_values;
515:
516: -- **********************************************************************
531:
532: -- Bug fix 6761820.
533: -- Modified the statement to handle the balancing segment value ' '.
534: delete_bsv_stmt :=
535: 'DELETE FROM gl_je_segment_values sv ' ||
536: 'WHERE sv.segment_type_code = ''B'' ' ||
537: 'AND sv.je_header_id = :header_id ' ||
538: 'AND ((sv.segment_value <> '' '' AND NOT EXISTS ' ||
539: '(SELECT 1 '||
553: IF (msv_colname IS NOT NULL) THEN
554: -- Bug fix 6761820.
555: -- Modified the statement to handle the management segment value ' '.
556: delete_msv_stmt :=
557: 'DELETE FROM gl_je_segment_values sv ' ||
558: 'WHERE sv.segment_type_code = ''M'' ' ||
559: 'AND sv.je_header_id = :header_id ' ||
560: 'AND ((sv.segment_value <> '' '' AND NOT EXISTS ' ||
561: '(SELECT 1 ' ||
577: RAISE;
578: WHEN OTHERS THEN
579: fnd_message.set_name('SQLGL', 'GL_UNHANDLED_EXCEPTION');
580: fnd_message.set_token('PROCEDURE',
581: 'gl_je_segment_values.add_segment_value');
582: RAISE;
583: END cleanup_segment_values;
584:
585: -- **********************************************************************
592: num_rows NUMBER;
593: BEGIN
594:
595: -- Insert distinct segment values
596: INSERT INTO GL_JE_SEGMENT_VALUES
597: (je_header_id, segment_type_code, segment_value, creation_date,
598: created_by, last_update_date, last_updated_by, last_update_login)
599: SELECT LINE.je_header_id,
600: DECODE(X.multiplier,
695: RAISE;
696: WHEN OTHERS THEN
697: fnd_message.set_name('SQLGL', 'GL_UNHANDLED_EXCEPTION');
698: fnd_message.set_token('PROCEDURE',
699: 'gl_je_segment_values_pkg.insert_alc_segment_values');
700: RAISE;
701: END insert_alc_segment_values;
702:
703: -- **********************************************************************
710: IS
711: num_rows NUMBER;
712: BEGIN
713: -- Insert new values only if needed
714: INSERT INTO GL_JE_SEGMENT_VALUES
715: (je_header_id, segment_type_code, segment_value, creation_date,
716: created_by, last_update_date, last_updated_by, last_update_login)
717: SELECT LINE.je_header_id,
718: DECODE(X.multiplier,
764: AND LDG.ledger_id = LINE.ledger_id
765: AND CC.code_combination_id = LINE.code_combination_id
766: AND X.multiplier IN (1,Decode(LDG.mgt_seg_column_name,NULL,NULL,2))
767: AND NOT EXISTS (SELECT 'X'
768: FROM GL_JE_SEGMENT_VALUES SV
769: WHERE SV.je_header_id = LINE.je_header_id
770: AND SV.segment_type_code = DECODE(X.multiplier,
771: 1,'B',
772: 2,'M')
850: RAISE;
851: WHEN OTHERS THEN
852: fnd_message.set_name('SQLGL', 'GL_UNHANDLED_EXCEPTION');
853: fnd_message.set_token('PROCEDURE',
854: 'gl_je_segment_values_pkg.insert_gen_line_segment_values');
855: RAISE;
856: END insert_gen_line_segment_values;
857:
858: -- **********************************************************************
865: num_rows NUMBER;
866: BEGIN
867:
868: -- Insert distinct segment values
869: INSERT INTO GL_JE_SEGMENT_VALUES
870: (je_header_id, segment_type_code, segment_value, creation_date,
871: created_by, last_update_date, last_updated_by, last_update_login)
872: SELECT SLJEL.je_header_id,
873: DECODE(X.multiplier,
970: RAISE;
971: WHEN OTHERS THEN
972: fnd_message.set_name('SQLGL', 'GL_UNHANDLED_EXCEPTION');
973: fnd_message.set_token('PROCEDURE',
974: 'gl_je_segment_values_pkg.insert_sl_segment_values');
975: RAISE;
976: END insert_sl_segment_values;
977:
978: END GL_JE_SEGMENT_VALUES_PKG;
974: 'gl_je_segment_values_pkg.insert_sl_segment_values');
975: RAISE;
976: END insert_sl_segment_values;
977:
978: END GL_JE_SEGMENT_VALUES_PKG;