1: PACKAGE BODY PO_ATTR_VALUES_TLP_DRAFT_PKG AS
2: /* $Header: PO_ATTR_VALUES_TLP_DRAFT_PKG.plb 120.9 2006/09/28 22:58:56 bao noship $ */
3:
4: d_pkg_name CONSTANT varchar2(50) :=
5: PO_LOG.get_package_base('PO_ATTR_VALUES_TLP_DRAFT_PKG');
6:
7: -----------------------------------------------------------------------
8: --Start of Comments
9: --Name: delete_rows
40: d_position NUMBER;
41:
42: BEGIN
43: d_position := 0;
44: IF (PO_LOG.d_proc) THEN
45: PO_LOG.proc_begin(d_module);
46: END IF;
47:
48: DELETE FROM po_attribute_values_tlp_draft
41:
42: BEGIN
43: d_position := 0;
44: IF (PO_LOG.d_proc) THEN
45: PO_LOG.proc_begin(d_module);
46: END IF;
47:
48: DELETE FROM po_attribute_values_tlp_draft
49: WHERE draft_id = p_draft_id
105: l_duplicate_flag_tbl PO_TBL_VARCHAR1 := PO_TBL_VARCHAR1();
106:
107: BEGIN
108: d_position := 0;
109: IF (PO_LOG.d_proc) THEN
110: PO_LOG.proc_begin(d_module);
111: END IF;
112:
113: x_record_already_exist_tbl :=
106:
107: BEGIN
108: d_position := 0;
109: IF (PO_LOG.d_proc) THEN
110: PO_LOG.proc_begin(d_module);
111: END IF;
112:
113: x_record_already_exist_tbl :=
114: PO_ATTR_VALUES_TLP_DRAFT_PVT.draft_changes_exist
142: END LOOP;
143: -- bug5471513 END
144:
145: d_position := 10;
146: IF (PO_LOG.d_stmt) THEN
147: PO_LOG.stmt(d_module, d_position, 'transfer records from txn to dft');
148: END IF;
149:
150: FORALL i IN 1..p_attribute_values_tlp_id_tbl.COUNT
143: -- bug5471513 END
144:
145: d_position := 10;
146: IF (PO_LOG.d_stmt) THEN
147: PO_LOG.stmt(d_module, d_position, 'transfer records from txn to dft');
148: END IF;
149:
150: FORALL i IN 1..p_attribute_values_tlp_id_tbl.COUNT
151: INSERT INTO po_attribute_values_tlp_draft
506: AND x_record_already_exist_tbl(i) = FND_API.G_FALSE
507: AND l_duplicate_flag_tbl(i) = FND_API.G_FALSE;
508:
509: d_position := 20;
510: IF (PO_LOG.d_stmt) THEN
511: PO_LOG.stmt(d_module, d_position, 'transfer count = ' || SQL%ROWCOUNT);
512: END IF;
513:
514: FORALL i IN 1..p_attribute_values_tlp_id_tbl.COUNT
507: AND l_duplicate_flag_tbl(i) = FND_API.G_FALSE;
508:
509: d_position := 20;
510: IF (PO_LOG.d_stmt) THEN
511: PO_LOG.stmt(d_module, d_position, 'transfer count = ' || SQL%ROWCOUNT);
512: END IF;
513:
514: FORALL i IN 1..p_attribute_values_tlp_id_tbl.COUNT
515: UPDATE po_attribute_values_tlp_draft
520: AND x_record_already_exist_tbl(i) = FND_API.G_TRUE;
521:
522: d_position := 30;
523:
524: IF (PO_LOG.d_stmt) THEN
525: PO_LOG.stmt(d_module, d_position, 'update draft records that are already' ||
526: ' in draft table. Count = ' || SQL%ROWCOUNT);
527: END IF;
528:
521:
522: d_position := 30;
523:
524: IF (PO_LOG.d_stmt) THEN
525: PO_LOG.stmt(d_module, d_position, 'update draft records that are already' ||
526: ' in draft table. Count = ' || SQL%ROWCOUNT);
527: END IF;
528:
529: d_position := 40;
527: END IF;
528:
529: d_position := 40;
530:
531: IF (PO_LOG.d_proc) THEN
532: PO_LOG.proc_end(d_module);
533: END IF;
534:
535: EXCEPTION
528:
529: d_position := 40;
530:
531: IF (PO_LOG.d_proc) THEN
532: PO_LOG.proc_end(d_module);
533: END IF;
534:
535: EXCEPTION
536: WHEN OTHERS THEN
583: l_record_already_exist_tbl PO_TBL_VARCHAR1;
584:
585: BEGIN
586: d_position := 0;
587: IF (PO_LOG.d_proc) THEN
588: PO_LOG.proc_begin(d_module);
589: PO_LOG.proc_begin(d_module, 'p_attribute_values_tlp_id',
590: p_attribute_values_tlp_id);
591: END IF;
584:
585: BEGIN
586: d_position := 0;
587: IF (PO_LOG.d_proc) THEN
588: PO_LOG.proc_begin(d_module);
589: PO_LOG.proc_begin(d_module, 'p_attribute_values_tlp_id',
590: p_attribute_values_tlp_id);
591: END IF;
592:
585: BEGIN
586: d_position := 0;
587: IF (PO_LOG.d_proc) THEN
588: PO_LOG.proc_begin(d_module);
589: PO_LOG.proc_begin(d_module, 'p_attribute_values_tlp_id',
590: p_attribute_values_tlp_id);
591: END IF;
592:
593: sync_draft_from_txn
599:
600: x_record_already_exist := l_record_already_exist_tbl(1);
601:
602: d_position := 10;
603: IF (PO_LOG.d_proc) THEN
604: PO_LOG.proc_end(d_module);
605: PO_LOG.proc_end(d_module, 'x_record_already_exist', x_record_already_exist);
606: END IF;
607:
600: x_record_already_exist := l_record_already_exist_tbl(1);
601:
602: d_position := 10;
603: IF (PO_LOG.d_proc) THEN
604: PO_LOG.proc_end(d_module);
605: PO_LOG.proc_end(d_module, 'x_record_already_exist', x_record_already_exist);
606: END IF;
607:
608: EXCEPTION
601:
602: d_position := 10;
603: IF (PO_LOG.d_proc) THEN
604: PO_LOG.proc_end(d_module);
605: PO_LOG.proc_end(d_module, 'x_record_already_exist', x_record_already_exist);
606: END IF;
607:
608: EXCEPTION
609: WHEN OTHERS THEN
649:
650: BEGIN
651:
652: d_position := 0;
653: IF (PO_LOG.d_proc) THEN
654: PO_LOG.proc_begin(d_module);
655: END IF;
656:
657:
650: BEGIN
651:
652: d_position := 0;
653: IF (PO_LOG.d_proc) THEN
654: PO_LOG.proc_begin(d_module);
655: END IF;
656:
657:
658: -- Since putting DELETE within MERGE statement is causing database
1422: l_dummy NUMBER;
1423:
1424: BEGIN
1425: d_position := 0;
1426: IF (PO_LOG.d_proc) THEN
1427: PO_LOG.proc_begin(d_module);
1428: END IF;
1429:
1430: SELECT 1
1423:
1424: BEGIN
1425: d_position := 0;
1426: IF (PO_LOG.d_proc) THEN
1427: PO_LOG.proc_begin(d_module);
1428: END IF;
1429:
1430: SELECT 1
1431: INTO l_dummy
1433: WHERE attribute_values_tlp_id = p_attribute_values_tlp_id
1434: AND draft_id = p_draft_id
1435: FOR UPDATE NOWAIT;
1436:
1437: IF (PO_LOG.d_proc) THEN
1438: PO_LOG.proc_end(d_module);
1439: END IF;
1440:
1441: EXCEPTION
1434: AND draft_id = p_draft_id
1435: FOR UPDATE NOWAIT;
1436:
1437: IF (PO_LOG.d_proc) THEN
1438: PO_LOG.proc_end(d_module);
1439: END IF;
1440:
1441: EXCEPTION
1442: WHEN NO_DATA_FOUND THEN
1466: l_dummy NUMBER;
1467:
1468: BEGIN
1469: d_position := 0;
1470: IF (PO_LOG.d_proc) THEN
1471: PO_LOG.proc_begin(d_module);
1472: END IF;
1473:
1474: SELECT 1
1467:
1468: BEGIN
1469: d_position := 0;
1470: IF (PO_LOG.d_proc) THEN
1471: PO_LOG.proc_begin(d_module);
1472: END IF;
1473:
1474: SELECT 1
1475: INTO l_dummy
1476: FROM po_attribute_values_tlp
1477: WHERE attribute_values_tlp_id = p_attribute_values_tlp_id
1478: FOR UPDATE NOWAIT;
1479:
1480: IF (PO_LOG.d_proc) THEN
1481: PO_LOG.proc_end(d_module);
1482: END IF;
1483:
1484: EXCEPTION
1477: WHERE attribute_values_tlp_id = p_attribute_values_tlp_id
1478: FOR UPDATE NOWAIT;
1479:
1480: IF (PO_LOG.d_proc) THEN
1481: PO_LOG.proc_end(d_module);
1482: END IF;
1483:
1484: EXCEPTION
1485: WHEN NO_DATA_FOUND THEN