The following lines contain the word 'select', 'insert', 'update' or 'delete':
PROCEDURE NAME: lock_row_for_status_update
===========================================================================*/
PROCEDURE lock_row_for_status_update (x_po_header_id IN NUMBER)
IS
CURSOR C IS
SELECT *
FROM po_headers
WHERE po_header_id = x_po_header_id
FOR UPDATE of po_header_id NOWAIT;
FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_DELETED');
PO_MESSAGE_S.SQL_ERROR('LOCK_ROW_FOR_STATUS_UPDATE', x_progress, sqlcode);
PROCEDURE NAME: val_delete()
===========================================================================*/
FUNCTION val_delete(X_po_header_id IN NUMBER , X_type_lookup_code IN VARCHAR2)
return boolean is
X_allow_delete boolean;
X_allow_delete := FALSE;
X_allow_delete := TRUE;
po_rfqs_sv.val_header_delete (X_po_header_id,
X_allow_delete);
po_quotes_sv.val_header_delete (X_po_header_id,
X_allow_delete);
return(X_allow_delete);
X_allow_delete := FALSE;
po_message_s.sql_error('val_delete', x_progress, sqlcode);
END val_delete;
cursor c1 is SELECT 'Y'
FROM po_distributions
WHERE po_header_id = X_po_header_id
AND nvl(encumbered_flag,'N') <> 'N';
PROCEDURE NAME: delete_children()
===========================================================================*/
PROCEDURE delete_children(X_po_header_id IN NUMBER,
X_type_lookup_code IN VARCHAR2) IS
X_progress VARCHAR2(3) := NULL;
X_deleted boolean;
l_deleted_line_list PO_TBL_NUMBER;
l_deleted_dist_list PO_TBL_NUMBER;
l_api_name CONSTANT VARCHAR2(30) := 'delete_children';
d_module CONSTANT VARCHAR2(70) := 'po.plsql.PO_HEADERS_SV1.delete_children';
l_deleted_line_list := PO_TBL_NUMBER();
l_deleted_dist_list := PO_TBL_NUMBER();
SELECT po_line_id
BULK COLLECT INTO l_deleted_line_list
FROM po_lines_all
WHERE po_header_id = X_po_header_id;
SELECT po_distribution_id
BULK COLLECT INTO l_deleted_dist_list
FROM po_distributions_all
WHERE po_header_id = X_po_header_id;
PO_LOG.stmt(d_module,d_pos,'l_deleted_line_list',l_deleted_line_list);
PO_LOG.stmt(d_module,d_pos,'l_deleted_dist_list',l_deleted_dist_list);
PO_REQ_LINES_SV.update_req_for_linked_po_count (l_deleted_line_list, 'LINE');
PO_REQ_LINES_SV.update_req_for_linked_po_count (l_deleted_dist_list, 'DISTRIBUTION');
PO_REQ_LINES_SV.update_reqs_in_pool_flag;
/* Delete Distributions for a PO */
X_progress := '020';
po_distributions_sv.delete_distributions(X_po_header_id, 'HEADER');
/* Delete Shipments for a PO */
X_progress := '015';
--dbms_output.put_line('Before Delete All Shipments ');
po_shipments_sv4.delete_all_shipments (X_po_header_id, 'HEADER',
X_type_lookup_code);
/* Delete Lines for a PO */
X_progress := '010';
--dbms_output.put_line('Before Delete All lines ');
po_lines_sv.delete_all_lines (X_po_header_id,
X_type_lookup_code); --
/* Delete Vendors for a PO */
if (X_type_lookup_code in ('RFQ','QUOTATION')) then
X_progress := '035';
--dbms_output.put_line('Before Delete All vendors ');
po_rfq_vendors_pkg_s2.delete_all_vendors (X_po_header_id);
/* Delete Notification Controls if it is PLANNED/BLANKET/CONTRACT PO */
if ((X_type_lookup_code = 'PLANNED') or
(X_type_lookup_code = 'BLANKET') or
(X_type_lookup_code = 'CONTRACT')) then
/* Call routine to delete po notification controls */
X_progress := '025';
X_deleted := po_notif_controls_sv.delete_notifs (X_po_header_id);
po_message_s.sql_error('delete_children', x_progress, sqlcode);
END delete_children;
PROCEDURE NAME: delete_po()
===========================================================================*/
FUNCTION delete_po(X_po_header_id IN NUMBER,
X_type_lookup_code IN VARCHAR2,
p_skip_validation IN VARCHAR2) --
return boolean is
X_deleted boolean;
X_allow_delete boolean;
SELECT poh.rowid
INTO X_rowid
FROM PO_HEADERS_ALL poh /*Bug6632095: using base table instead of view */
WHERE poh.po_header_id = X_po_header_id;
x_allow_delete := TRUE;
/* Validate if the Document can be deleted */
X_allow_delete := val_delete (X_po_header_id, X_type_lookup_code);
/* If the doc can be deleted, */
if (X_allow_delete) then
/* Call routine to delete PO notifications */
/*hvadlamu : commenting out the delete part. Adding the Workflow call to stop the process.
This call would also cancel any existing notifications waiting for a response*/
/*po_notifications_sv1.delete_po_notif (x_type_lookup_code,
x_po_header_id); */
SELECT wf_item_type,wf_item_key
INTO x_item_type,x_item_key
FROM PO_HEADERS_ALL /*Bug6632095: using base table instead of view */
WHERE po_header_id = x_po_header_id;
/* when trying to delete a po it could be that it was submitted to
approval workflow and was never approved in which case we
need to stop the approval workflow as well as the reminder workflow */
po_approval_reminder_sv.cancel_notif (x_type_lookup_code,x_po_header_id);
/* Bug 2904413 Need to delete the action history also */
Delete po_action_history
Where OBJECT_TYPE_CODE = decode(x_type_lookup_code,
'STANDARD', 'PO',
'PLANNED','PO','PA') and
OBJECT_SUB_TYPE_CODE = x_type_lookup_code and
OBJECT_ID = x_po_header_id;
/* Delete header attachments */
fnd_attached_documents2_pkg.delete_attachments('PO_HEADERS',
x_po_header_id,
'', '', '', '', 'Y');
po_headers_sv1.delete_children(X_po_header_id, X_type_lookup_code);
PO_MOD_CONTROL_PVT.delete_uda_data(
p_draft_id => -1,
p_entity_id => x_po_header_id,
p_entity_level => 'PO_HEADER',
x_return_status => l_return_status
);
DELETE po_exhibit_details
WHERE po_header_id = x_po_header_id;
po_headers_pkg_s2.delete_row(X_rowid);
/* UPDATE REQ LINK */
po_headers_sv2.update_req_link(X_po_header_id);
X_deleted := TRUE;
return(X_deleted);
X_deleted := FALSE;
return(X_deleted);
po_message_s.sql_error('delete_po', x_progress, sqlcode);
END delete_po;
PROCEDURE NAME: delete_this_release()
===========================================================================*/
PROCEDURE delete_this_release(X_po_header_id IN NUMBER) is
X_progress varchar2(3) := '';
/* Delete the Releases against the PA if they exist */
X_progress := '010';
SELECT prl.po_release_id,
prl.rowid
INTO X_release_id,
X_rowid
FROM PO_RELEASES prl
WHERE prl.po_header_id = x_po_header_id;
po_releases_sv.lock_row_for_status_update (X_release_id);
po_releases_sv.delete_release (X_release_id, X_rowid);
po_message_s.sql_error('delete_po', x_progress, sqlcode);
END delete_this_release;
PROCEDURE NAME: insert_po()- Moved to po_headers_sv11
===========================================================================*/
/*===========================================================================
PROCEDURE NAME: insert_children()
===========================================================================*/
/*
PROCEDURE insert_children() IS
x_progress VARCHAR2(3) := NULL;
po_message_s.sql_error('insert_children', x_progress, sqlcode);
END insert_children; */
PROCEDURE validate_delete_document( p_doc_type IN VARCHAR2
,p_doc_header_id IN NUMBER
,p_doc_approved_date IN DATE
,p_auth_status IN VARCHAR2
,p_style_disp_name IN VARCHAR2
,x_message_text OUT NOCOPY VARCHAR2)
IS
l_some_dists_reserved_flag VARCHAR2(1) := 'N';
l_api_name CONSTANT VARCHAR2(30) := 'validate_delete_document';
d_module CONSTANT VARCHAR2(70) := 'po.plsql.PO_HEADERS_SV1.validate_delete_document';
END validate_delete_document;
PROCEDURE delete_document( p_doc_type IN VARCHAR2
,p_doc_subtype IN VARCHAR2
,p_doc_header_id IN NUMBER
,p_ga_flag IN VARCHAR2
,p_conterms_exist_flag IN VARCHAR2
,x_return_status OUT NOCOPY VARCHAR2)
IS
l_msg_count NUMBER;
l_api_name CONSTANT VARCHAR2(30) := 'delete_document';
d_module CONSTANT VARCHAR2(70) := 'po.plsql.PO_HEADERS_SV1.delete_document';
IF delete_po( x_po_header_id => p_doc_header_id
,x_type_lookup_code => p_doc_subtype
,p_skip_validation => 'Y') THEN
d_pos := 20;
PO_GA_ORG_ASSIGN_PVT.delete_row(p_doc_header_id);
OKC_TERMS_UTIL_GRP.DELETE_DOC(
p_api_version => 1.0,
p_init_msg_list => 'F',
p_commit => 'F',
p_doc_id => p_doc_header_id,
p_doc_type => p_doc_type || '_' || p_doc_subtype,
p_validate_commit =>'F',
x_return_status => x_return_status,
x_msg_data => l_msg_data,
x_msg_count => l_msg_count);
FND_MESSAGE.set_token('PROC_CALLED','OKC_TERMS_UTIL_GRP.delete_doc');
END IF;--PO_HEADERS_SV1.delete_po
PROCEDURE Delete_events_entities(p_doc_entity IN VARCHAR2,
p_doc_id IN NUMBER)
IS
l_event_source_info xla_events_pub_pkg.t_event_source_info;
l_delete_event NUMBER;
l_api_name CONSTANT varchar2(30) := 'Delete_events_entities';
SELECT org_id INTO l_org_id FROM po_releases_all WHERE po_release_id = p_doc_id;
SELECT org_id INTO l_org_id FROM po_headers_all WHERE po_header_id = p_doc_id;
SELECT org_id INTO l_org_id FROM po_requisition_headers_all WHERE requisition_header_id = p_doc_id;
SELECT set_of_books_id INTO l_ledger_id
FROM hr_operating_units hou
WHERE hou.organization_id = l_org_id;
DELETE FROM po_bc_distributions WHERE header_id = p_doc_id
AND APPLIED_TO_ENTITY_CODE = p_doc_entity
AND ae_event_id IN (SELECT event_id FROM xla_events WHERE event_status_code = 'U' AND process_status_code IN ('I', 'D'));
DELETE FROM po_bc_distributions WHERE po_release_id = p_doc_id
AND APPLIED_TO_ENTITY_CODE = p_doc_entity
AND ae_event_id IN (SELECT event_id FROM xla_events WHERE event_status_code = 'U' AND process_status_code IN ('I', 'D'));
l_delete_event := xla_events_pub_pkg.delete_events(p_event_source_info => l_event_source_info,
p_valuation_method => NULL,
p_security_context => l_security_context) ;
PO_DEBUG.debug_var(l_log_head,l_progress,'Exception of event_exists, delete_event',sqlerrm);
l_delete_event := xla_events_pub_pkg.Delete_entity(
p_source_info => l_event_source_info,
p_valuation_method => NULL,
p_security_context => l_security_context);
PO_DEBUG.debug_var(l_log_head,l_progress,'Exception of delete_entity',sqlerrm);
PO_DEBUG.debug_var(l_log_head,l_progress,'Exception Block of Delete_Events_entities',sqlerrm);
END delete_events_entities;