The following lines contain the word 'select', 'insert', 'update' or 'delete':
PROCEDURE update_blanket
( p_doc_rec IN doc_row_type,
x_process_code OUT NOCOPY VARCHAR2
);
PROCEDURE update_quotation
( p_doc_rec IN doc_row_type
);
PROCEDURE update_standard_po
( p_doc_rec IN doc_row_type,
x_process_code OUT NOCOPY VARCHAR2
);
PROCEDURE update_document_status
( p_doc_rec IN doc_row_type,
p_auth_status IN VARCHAR2,
p_status_lookup_code IN VARCHAR2
);
PO_DRAFTS_PVT.update_draft_status
( p_draft_id => l_doc_rec.draft_id,
p_new_status => PO_DRAFTS_PVT.g_STATUS_DRAFT
);
ELSIF (l_doc_rec.action = PO_PDOI_CONSTANTS.g_ACTION_UPDATE) THEN
d_position := 100;
update_blanket(p_doc_rec => l_doc_rec,
x_process_code => x_process_code); -- bug 7277317
ELSIF (l_doc_rec.action = PO_PDOI_CONSTANTS.g_ACTION_UPDATE) THEN
d_position := 130;
update_quotation(p_doc_rec => l_doc_rec);
ELSIF (l_doc_rec.action = PO_PDOI_CONSTANTS.g_ACTION_UPDATE) THEN
d_position := 150;
update_standard_po(p_doc_rec => l_doc_rec,
x_process_code => x_process_code); -- bug 7277317
UPDATE po_headers_interface
SET process_code = l_process_code
WHERE interface_header_id = l_doc_rec.interface_header_id;
PO_DRAFTS_PVT.update_draft_status
( p_draft_id => l_doc_rec.draft_id,
p_new_status => PO_DRAFTS_PVT.g_STATUS_DRAFT
);
DELETE FROM po_lines_draft_all
WHERE draft_id = p_draft_id
AND change_accepted_flag = PO_DRAFTS_PVT.g_chg_accepted_flag_NOTIFY
RETURNING po_line_id
BULK COLLECT
INTO l_po_line_id_tbl;
DELETE FROM po_line_locations_draft_all
WHERE draft_id = p_draft_id
AND po_line_id = l_po_line_id_tbl(i);
DELETE FROM po_attribute_values_draft
WHERE draft_id = p_draft_id
AND po_line_id = l_po_line_id_tbl(i);
DELETE FROM po_attribute_values_tlp_draft
WHERE draft_id = p_draft_id
AND po_line_id = l_po_line_id_tbl(i);
DELETE FROM po_price_diff_draft
WHERE draft_id = p_draft_id
AND entity_id = l_po_line_id_tbl(i)
AND entity_type = 'BLANKET LINE';
DELETE FROM po_price_diff_draft PPDD
WHERE draft_id = p_draft_id
AND entity_type = 'PRICE BREAK'
AND EXISTS (SELECT 1
FROM po_line_locations_draft_all PLLD
WHERE PLLD.draft_id = p_draft_id
AND PLLD.po_line_id = l_po_line_id_tbl(i)
AND PLLD.line_location_id = PPDD.entity_id
UNION ALL
SELECT 1
FROM po_line_locations_all PLLA
WHERE PLLA.po_line_id = l_po_line_id_tbl(i)
AND PLLA.line_location_id = PPDD.entity_id);
l_dft_to_delete_tbl PO_TBL_NUMBER := PO_TBL_NUMBER();
SELECT PHI.interface_header_id,
PHI.action,
PHI.draft_id,
PHI.po_header_id
BULK COLLECT
INTO l_intf_header_id_tbl,
l_action_tbl,
l_dft_id_tbl,
l_po_header_id_tbl
FROM po_headers_interface PHI
WHERE processing_id = -PO_PDOI_PARAMS.g_processing_id
AND processing_round_num = PO_PDOI_PARAMS.g_current_round_num;
IF ( l_action_tbl(i) <> PO_PDOI_CONSTANTS.g_action_UPDATE ) THEN
d_position := 20;
l_dft_to_delete_tbl.EXTEND;
l_dft_to_delete_tbl(l_dft_to_delete_tbl.COUNT) := l_dft_id_tbl(i);
l_dft_to_delete_tbl.EXTEND;
l_dft_to_delete_tbl(l_dft_to_delete_tbl.COUNT) := l_dft_id_tbl(i);
l_dft_to_delete_tbl.EXTEND;
l_dft_to_delete_tbl(l_dft_to_delete_tbl.COUNT) :=
l_dft_exist_chg_check_tbl(i);
FORALL i IN 1..l_dft_to_delete_tbl.COUNT
DELETE po_drafts
WHERE draft_id = l_dft_to_delete_tbl(i);
IF ( p_doc_rec.action <> PO_PDOI_CONSTANTS.g_ACTION_UPDATE ) THEN
-- If action <> update, we need to tell user that the document created
-- has 0 line, and thus the failure
PO_PDOI_ERR_UTL.add_fatal_error
( p_interface_header_id => p_doc_rec.interface_header_id,
p_error_message_name => 'PO_PDOI_INVALID_NUM_OF_LINES',
p_table_name => 'PO_HEADERS_INTERFACE',
p_column_name => 'PO_HEADER_ID',
p_column_value => p_doc_rec.po_header_id,
p_token1_name => 'COLUMN_NAME',
p_token1_value => 'PO_HEADER_ID'
);
update_document_status
( p_doc_rec => p_doc_rec,
p_auth_status => l_new_auth_status,
p_status_lookup_code => NULL
);
PROCEDURE update_blanket
( p_doc_rec IN doc_row_type,
x_process_code OUT NOCOPY VARCHAR2
) IS
d_api_name CONSTANT VARCHAR2(30) := 'update_blanket';
UPDATE po_headers_interface
SET process_code = 'NOTIFIED'
WHERE interface_header_id = p_doc_rec.interface_header_id;
p_any_line_updated => l_doc_info.has_lines_updated,
p_buyer_id => PO_PDOI_PARAMS.g_request.buyer_id,
p_agent_id => p_doc_rec.agent_id,
p_vendor_id => p_doc_rec.vendor_id,
p_vendor_name => p_doc_rec.vendor_name
);
update_document_status
( p_doc_rec => p_doc_rec,
p_auth_status => l_new_auth_status,
p_status_lookup_code => NULL
);
END update_blanket;
update_document_status
( p_doc_rec => p_doc_rec,
p_auth_status => NULL,
p_status_lookup_code => 'A'
);
PROCEDURE update_quotation
( p_doc_rec IN doc_row_type
) IS
d_api_name CONSTANT VARCHAR2(30) := 'update_quotation';
UPDATE po_headers_interface
SET process_code = 'NOTIFIED'
WHERE interface_header_id = p_doc_rec.interface_header_id;
p_any_line_updated => l_doc_info.has_lines_updated,
p_buyer_id => PO_PDOI_PARAMS.g_request.buyer_id,
p_agent_id => p_doc_rec.agent_id,
p_vendor_id => p_doc_rec.vendor_id,
p_vendor_name => p_doc_rec.vendor_name
);
END update_quotation;
update_document_status
( p_doc_rec => p_doc_rec,
p_auth_status => 'INCOMPLETE',
p_status_lookup_code => NULL
);
update_document_status
( p_doc_rec => p_doc_rec,
p_auth_status => 'PRE-APPROVED',
p_status_lookup_code => NULL
);
update_document_status
( p_doc_rec => p_doc_rec,
p_auth_status => l_new_auth_status,
p_status_lookup_code => NULL
);
PROCEDURE update_standard_po
( p_doc_rec IN doc_row_type,
x_process_code OUT NOCOPY VARCHAR2
) IS
d_api_name CONSTANT VARCHAR2(30) := 'update_standard_po';
l_update_auth_status VARCHAR2(1);
l_update_auth_status := FND_API.G_TRUE;
l_update_auth_status := FND_API.G_FALSE;
IF (l_update_auth_status = FND_API.G_TRUE) THEN
d_position := 80;
update_document_status
( p_doc_rec => p_doc_rec,
p_auth_status => l_new_auth_status,
p_status_lookup_code => NULL
);
END update_standard_po;
UPDATE po_headers_all
SET start_date = NVL(start_date, l_expiration_date),
end_date = l_expiration_date,
last_updated_by = FND_GLOBAL.user_id,
last_update_date = SYSDATE
WHERE po_header_id = p_doc_rec.orig_po_header_id;
UPDATE po_headers_draft_all
SET segment1 = l_document_num
WHERE po_header_id = p_doc_rec.po_header_id;
SELECT PLD.po_line_id,
PLD.item_id,
PLD.category_id,
PLI.interface_line_id,
PLI.sourcing_rule_name,
PLI.effective_date,
PLI.expiration_date
BULK COLLECT
INTO x_lines.po_line_id_tbl,
x_lines.item_id_tbl,
x_lines.category_id_tbl,
x_lines.interface_line_id_tbl,
x_lines.sourcing_rule_name_tbl,
x_lines.effective_date_tbl,
x_lines.expiration_date_tbl
FROM po_headers_interface PHI,
po_lines_interface PLI,
po_lines_draft_all PLD
WHERE PHI.interface_header_id = p_doc_rec.interface_header_id
AND PHI.interface_header_id = PLI.interface_header_id
AND PHI.draft_id = PLD.draft_id
AND PLI.po_line_id = PLD.po_line_id
AND NVL(PLI.price_break_flag, 'N') <> 'Y'
AND PLD.item_id IS NOT NULL
AND PLD.order_type_lookup_code = 'QUANTITY'
AND NOT EXISTS
(SELECT 1
FROM po_lines_all PLA
WHERE PLD.po_line_id = PLA.po_line_id);
SELECT vendor_id,
vendor_site_id
INTO l_vendor_id,
l_vendor_site_id
FROM po_headers_all
WHERE po_header_id = p_doc_rec.po_header_id;
p_create_update_code => 'CREATE_UPDATE',
p_interface_error_code => 'PO_DOCS_OPEN_INTERFACE',
x_header_processable_flag => l_header_processable_flag
);
l_delete_processed_draft VARCHAR2(1);
l_delete_processed_draft := FND_API.G_TRUE;
l_delete_processed_draft := FND_API.G_FALSE;
p_delete_processed_draft => l_delete_processed_draft,
p_acceptance_action => NULL,
x_return_status => l_return_status
);
PROCEDURE update_document_status
( p_doc_rec IN doc_row_type,
p_auth_status IN VARCHAR2,
p_status_lookup_code IN VARCHAR2
) IS
d_api_name CONSTANT VARCHAR2(30) := 'update_document_status';
UPDATE po_headers_all
SET authorization_status = p_auth_status,
approved_flag = l_approved_flag,
approved_date = DECODE(l_approved_date,
FND_API.G_MISS_DATE, approved_date,
l_approved_date),
last_update_date = SYSDATE,
last_updated_by = FND_GLOBAL.user_id,
last_update_login = FND_GLOBAL.login_id
WHERE po_header_id = p_doc_rec.po_header_id;
PO_LOG.stmt(d_module, d_position, 'Update shipment approval status');
UPDATE po_line_locations_all
SET approved_flag = 'Y',
approved_date = l_approved_date,
last_update_date = SYSDATE,
last_updated_by = FND_GLOBAL.user_id,
last_update_login = FND_GLOBAL.login_id
WHERE po_header_id = p_doc_rec.po_header_id
AND shipment_type IN ('STANDARD', 'PRICE BREAK')
AND NVL(approved_flag, 'N') <> 'Y';
PO_LOG.stmt(d_module, d_position, 'Update action history');
PO_FORWARD_SV1.update_action_history
( x_object_id => p_doc_rec.po_header_id,
x_object_type_code => PO_PDOI_PARAMS.g_request.document_type,
x_old_employee_id => p_doc_rec.agent_id,
x_action_code => 'APPROVE',
x_note => NULL,
x_user_id => FND_GLOBAL.user_id,
x_login_id => FND_GLOBAL.login_id
);
END update_document_status;
IF (p_doc_rec.action = PO_PDOI_CONSTANTS.g_ACTION_UPDATE AND
PO_PDOI_PARAMS.g_sys.is_federal_instance = 'Y') THEN
l_validate_document := PO_DOCUMENT_FUNDS_PVT.g_parameter_YES;
p_doc_rec.action <> PO_PDOI_CONSTANTS.g_ACTION_UPDATE AND
p_doc_rec.encumbrance_required_flag = 'Y' AND
p_new_auth_status = 'APPROVED') THEN
l_need_to_encumber := FND_API.G_TRUE;
UpdateSourcingRule => PO_PDOI_PARAMS.g_request.create_sourcing_rules_flag
);
PO_DELREC_PVT.create_update_delrec
( p_api_version => 1.0,
x_return_status => l_return_status,
x_msg_count => l_msg_count,
x_msg_data => l_msg_data,
p_action => 'APPROVE',
p_doc_type => 'PO',
p_doc_subtype => 'STANDARD',
p_doc_id => p_doc_rec.po_header_id,
p_line_id => NULL,
p_line_location_id => NULL
);
FOR i IN (SELECT MESSAGE_NAME, TEXT_LINE FROM po_online_report_text_gt WHERE online_report_id = x_online_report_id)
LOOP
x_count := x_count + 1;
update_document_status
( p_doc_rec => p_doc_rec,
p_auth_status => 'INCOMPLETE',
p_status_lookup_code => NULL
);
update_document_status
( p_doc_rec => p_doc_rec,
p_auth_status => 'REQUIRES_REAPPROVAL',
p_status_lookup_code => NULL
);