The following lines contain the word 'select', 'insert', 'update' or 'delete':
, x_delete_list OUT NOCOPY PO_TBL_NUMBER
, x_insert_list OUT NOCOPY PO_TBL_NUMBER
, x_update_list OUT NOCOPY PO_TBL_NUMBER
);
INSERT INTO po_session_gt
( key,
num1
)
SELECT l_key,
l_index_tbl(i)
FROM DUAL
WHERE EXISTS (SELECT 1
FROM po_lines_draft_all PLD
WHERE PLD.draft_id = p_draft_id_tbl(i)
AND PLD.po_line_id = NVL(p_po_line_id_tbl(i),
PLD.po_line_id)
AND NVL(PLD.change_accepted_flag, 'Y') = 'Y');
DELETE FROM po_session_gt
WHERE key = l_key
RETURNING num1
BULK COLLECT INTO l_dft_exists_index_tbl;
l_delete_list PO_TBL_NUMBER;
l_insert_list PO_TBL_NUMBER;
l_update_list PO_TBL_NUMBER;
, x_delete_list => l_delete_list
, x_insert_list => l_insert_list
, x_update_list => l_update_list
);
IF (l_delete_list.COUNT > 0) THEN
IF (PO_LOG.d_stmt) THEN
PO_LOG.stmt(d_module, d_position, 'Deleted Lines Found');
SELECT 'Y'
INTO l_clm_document
FROM po_headers_all h,
po_doc_style_headers pdsh,
po_lines_all pl
WHERE h.style_id = pdsh.style_id
AND h.po_header_id = pl.po_header_id
AND pl.po_line_id = l_delete_list(1)
AND NVL(pdsh.clm_flag,'N') = 'Y'
AND ROWNUM = 1;
PO_LOG.stmt(d_module, d_position, 'Calling update_req_for_linked_po_count');
PO_REQ_LINES_SV.update_req_for_linked_po_count (l_delete_list, 'LINE');
FORALL i IN 1..l_delete_list.Count SAVE EXCEPTIONS
UPDATE po_exhibit_details_draft
SET REFERENCE_LINE_ID = NULL
WHERE REFERENCE_LINE_ID = l_delete_list(i);
PO_LOG.stmt(d_module, d_position, 'Calling send_line_deleted_notif');
pon_clm_clo_util_pkg.SEND_LINE_DELETED_NOTIF( p_caller=>'PO'
,p_document_id => p_draft_info.draft_id
,p_document_line_id => null
,x_return_status=>l_return_status
,x_msg_count=>l_msg_count
,x_msg_data =>l_msg_data);
FOR i IN 1..l_delete_list.COUNT LOOP
-- Bug: 13948625, Same old proc will be called for non clm documents deleted from BWC.
IF (l_clm_document <> 'Y') THEN
SELECT clm_info_flag
INTO l_info_flag
FROM po_lines_all
WHERE po_line_id = l_delete_list(i) ;
PO_REQ_LINES_SV.remove_req_from_po (l_delete_list(i), 'LINE');
PO_LOG.stmt(d_module, d_position, 'Calling delete_attachments');
FND_ATTACHED_DOCUMENTS2_PKG.delete_attachments
( 'PO_LINES',
l_delete_list(i),
'','','','','', ''
);
l_update_retro_date_flag_tbl PO_TBL_VARCHAR1;
SELECT POLD.po_line_id,
NVL(POLD.price_break_lookup_code, 'NON CUMULATIVE'),
'N'
BULK COLLECT
INTO l_po_line_id_tbl,
l_price_break_lookup_code_tbl,
l_update_retro_date_flag_tbl
FROM po_lines_all POL,
po_lines_draft_all POLD
WHERE POLD.draft_id = p_draft_info.draft_id
AND POLD.po_line_id = POL.po_line_Id
AND NVL(POLD.delete_flag, 'N') = 'N'
AND NVL(POLD.change_accepted_flag, 'Y') = 'Y'
AND DECODE(POLD.unit_price, POL.unit_price, 'Y', 'N') = 'N' ;
l_update_retro_date_flag_tbl(i) := 'Y';
l_update_retro_date_flag_tbl(i) := 'Y';
UPDATE po_lines_draft_all
SET retroactive_date = SYSDATE
WHERE draft_id = p_draft_info.draft_id
AND po_line_id = l_po_line_id_tbl(i)
AND l_update_retro_date_flag_tbl(i) = 'Y';
, x_delete_list OUT NOCOPY PO_TBL_NUMBER
, x_insert_list OUT NOCOPY PO_TBL_NUMBER
, x_update_list OUT NOCOPY PO_TBL_NUMBER
) IS
d_api_name CONSTANT VARCHAR2(30) := 'group_records_by_dml_type';
x_delete_list := PO_TBL_NUMBER();
x_insert_list := PO_TBL_NUMBER();
x_update_list := PO_TBL_NUMBER();
SELECT PLD.po_line_id,
NVL(PLD.delete_flag, 'N'),
DECODE(PL.po_line_id, NULL, 'N', 'Y')
BULK COLLECT
INTO l_id_list,
l_del_flag_list,
l_txn_exists_list
FROM po_lines_draft_all PLD,
po_lines_all PL
WHERE PLD.draft_id = p_draft_info.draft_id
AND NVL(PLD.change_accepted_flag, 'Y') = 'Y'
AND PLD.po_line_id = PL.po_line_id(+);
x_delete_list.extend;
x_delete_list(x_delete_list.LAST) := l_id_list(i);
x_update_list.extend;
x_update_list(x_update_list.LAST) := l_id_list(i);
x_insert_list.extend;
x_insert_list(x_insert_list.LAST) := l_id_list(i);
SELECT DISTINCT line_num_display
BULK COLLECT INTO l_oth_line_num_arr
FROM po_lines_merge_v
WHERE po_header_id = p_po_header_id
AND group_line_id IS NULL
AND (status in ('DRAFT','REJECTED','IN PROCESS','PRE-APPROVED','COMPLETED',
'WITHDRAWN','SUPPLIER SIGN') --
OR status IS NULL)
--Bug 16584685
--While considering line nums dont consider the par from which the mod is getting autocreated
--This condition applies only for PAR autocreate
AND draft_id <> Nvl(p_par_draft_id, -999);
SELECT max(line_num_display)
INTO l_max_slin_num
FROM po_lines_merge_v
WHERE group_line_id = p_po_line_id
AND NVL(status,'Base Document') <> 'WITHDRAWN'
AND draft_id <>p_draft_id
AND NVL(clm_info_flag, 'N') = p_info_flag;