The following lines contain the word 'select', 'insert', 'update' or 'delete':
SELECT
ID,
OBJECT_VERSION_NUMBER,
PDT_ID,
TEMPLATE_NAME,
TEMPLATE_PATH,
VERSION,
START_DATE,
END_DATE,
DESCRIPTION,
CREATED_BY,
CREATION_DATE,
LAST_UPDATED_BY,
LAST_UPDATE_DATE,
LAST_UPDATE_LOGIN
FROM OKL_PRD_PRICE_TMPLS
WHERE OKL_PRD_PRICE_TMPLS.id = p_id;
l_pitv_rec.LAST_UPDATED_BY,
l_pitv_rec.LAST_UPDATE_DATE,
l_pitv_rec.LAST_UPDATE_LOGIN;
/* Scenario 2: The Changed Field-Values include that needs Validation and Update */
-- 1) End_Date is Changed
ELSIF (p_upd_pitv_rec.start_date = G_MISS_DATE AND
(p_upd_pitv_rec.end_date <> G_MISS_DATE
OR p_upd_pitv_rec.end_date IS NULL ) AND
p_upd_pitv_rec.template_name = G_MISS_CHAR ) OR
-- 2) Critical Attributes are Changed but does not mandate new version
-- as Start_Date is Not Changied
(p_upd_pitv_rec.start_date = G_MISS_DATE AND
p_db_pitv_rec.start_date >= p_date AND
(p_upd_pitv_rec.template_name <> G_MISS_CHAR)) OR
-- 3) Start_Date is Changed , but in Future
(p_upd_pitv_rec.start_date <> G_MISS_DATE AND
p_db_pitv_rec.start_date > p_date AND
p_upd_pitv_rec.start_date >= p_date) THEN
l_action := '2';
SELECT from_date,TO_DATE
FROM OKL_PRODUCTS
WHERE id = p_pit_rec.pdt_id;
PROCEDURE check_updates (
p_pitv_rec IN pitv_rec_type,
x_return_status OUT NOCOPY VARCHAR2,
x_msg_data OUT NOCOPY VARCHAR2
) IS
l_pitv_rec pitv_rec_type;
END check_updates;
PROCEDURE insert_prd_price_tmpls( p_api_version IN NUMBER,
p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
x_return_status OUT NOCOPY VARCHAR2,
x_msg_count OUT NOCOPY NUMBER,
x_msg_data OUT NOCOPY VARCHAR2,
p_pitv_rec IN pitv_rec_type,
x_pitv_rec OUT NOCOPY pitv_rec_type
) IS
l_api_version CONSTANT NUMBER := 1;
l_api_name CONSTANT VARCHAR2(30) := 'insert_prd_price_tmpls';
/* public api to insert pricing template*/
okl_prd_price_tmpls_pub.insert_prd_price_tmpls(p_api_version => p_api_version,
p_init_msg_list => p_init_msg_list,
x_return_status => l_return_status,
x_msg_count => x_msg_count,
x_msg_data => x_msg_data,
p_pitv_rec => l_pitv_rec,
x_pitv_rec => x_pitv_rec);
END insert_prd_price_tmpls;
PROCEDURE update_prd_price_tmpls(p_api_version IN NUMBER,
p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
x_return_status OUT NOCOPY VARCHAR2,
x_msg_count OUT NOCOPY NUMBER,
x_msg_data OUT NOCOPY VARCHAR2,
p_pitv_rec IN pitv_rec_type,
x_pitv_rec OUT NOCOPY pitv_rec_type
)
IS
CURSOR l_okl_pitv_pk_csr (p_id IN NUMBER) IS
SELECT
START_DATE,
END_DATE
FROM OKL_PRD_PRICE_TMPLS
WHERE OKL_PRD_PRICE_TMPLS.id = p_id;
l_api_name CONSTANT VARCHAR2(30) := 'update_stream_type';
-- public api to update_prd_price_tmpls
okl_prd_price_tmpls_pub.update_prd_price_tmpls(p_api_version => p_api_version,
p_init_msg_list => p_init_msg_list,
x_return_status => l_return_status,
x_msg_count => x_msg_count,
x_msg_data => x_msg_data,
p_pitv_rec => l_pitv_rec,
x_pitv_rec => x_pitv_rec);
-- public api to update_stream_type *
okl_prd_price_tmpls_pub.update_prd_price_tmpls(p_api_version => p_api_version,
p_init_msg_list => p_init_msg_list,
x_return_status => l_return_status,
x_msg_count => x_msg_count,
x_msg_data => x_msg_data,
p_pitv_rec => l_upd_pitv_rec,
x_pitv_rec => x_pitv_rec);
-- Scenario 2: The Changed Field-Values include that needs Validation and Update *
ELSIF l_action = '2' THEN
check_updates(p_pitv_rec => l_pitv_rec,
x_return_status => l_return_status,
x_msg_data => x_msg_data);
-- public api to update Pricing Template *
okl_prd_price_tmpls_pub.update_prd_price_tmpls(p_api_version => p_api_version,
p_init_msg_list => p_init_msg_list,
x_return_status => l_return_status,
x_msg_count => x_msg_count,
x_msg_data => x_msg_data,
p_pitv_rec => l_upd_pitv_rec,
x_pitv_rec => x_pitv_rec);
-- DO NOT Update Old-record if new Start_Date is after Old End_Date
IF l_upd_pitv_rec.start_date <> G_MISS_DATE
AND l_db_pitv_rec.end_date IS NOT NULL
AND l_upd_pitv_rec.start_date > l_db_pitv_rec.end_date
THEN
NULL;
-- call verify changes to update the database *
IF l_oldversion_enddate > l_db_pitv_rec.end_date THEN
check_updates(p_pitv_rec => l_pitv_rec,
x_return_status => l_return_status,
x_msg_data => x_msg_data);
-- public api to update formulae
okl_prd_price_tmpls_pub.update_prd_price_tmpls(p_api_version => p_api_version,
p_init_msg_list => p_init_msg_list,
x_return_status => l_return_status,
x_msg_count => x_msg_count,
x_msg_data => x_msg_data,
p_pitv_rec => l_pitv_rec,
x_pitv_rec => x_pitv_rec);
-- The earliest START_DATE, when Update, can be TOMORROW only
IF l_upd_pitv_rec.start_date = G_MISS_DATE THEN
--l_pitv_rec.start_date := l_sysdate ;
-- call verify changes to update the database
IF l_pitv_rec.end_date > l_db_pitv_rec.end_date THEN
check_updates(p_pitv_rec => l_pitv_rec,
x_return_status => l_return_status,
x_msg_data => x_msg_data);
-- public api to insert stream type
okl_prd_price_tmpls_pub.insert_prd_price_tmpls(p_api_version => p_api_version,
p_init_msg_list => p_init_msg_list,
x_return_status => l_return_status,
x_msg_count => x_msg_count,
x_msg_data => x_msg_data,
p_pitv_rec => l_pitv_rec,
x_pitv_rec => x_pitv_rec);
END update_prd_price_tmpls;
PROCEDURE insert_prd_price_tmpls(
p_api_version IN NUMBER,
p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
x_return_status OUT NOCOPY VARCHAR2,
x_msg_count OUT NOCOPY NUMBER,
x_msg_data OUT NOCOPY VARCHAR2,
p_pitv_tbl IN pitv_tbl_type,
x_pitv_tbl OUT NOCOPY pitv_tbl_type)
IS
l_api_name CONSTANT VARCHAR2(30) := 'insert_prd_price_tmpls_tbl';
insert_prd_price_tmpls(
p_api_version => p_api_version,
p_init_msg_list => p_init_msg_list,
x_return_status => x_return_status,
x_msg_count => x_msg_count,
x_msg_data => x_msg_data,
p_pitv_rec => p_pitv_tbl(rec_num),
x_pitv_rec => x_pitv_tbl(rec_num) );
END insert_prd_price_tmpls;
PROCEDURE update_prd_price_tmpls(
p_api_version IN NUMBER,
p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
x_return_status OUT NOCOPY VARCHAR2,
x_msg_count OUT NOCOPY NUMBER,
x_msg_data OUT NOCOPY VARCHAR2,
p_pitv_tbl IN pitv_tbl_type,
x_pitv_tbl OUT NOCOPY pitv_tbl_type)
IS
l_api_name CONSTANT VARCHAR2(30) := 'update_prd_price_tmpls_tbl';
update_prd_price_tmpls(
p_api_version => p_api_version,
p_init_msg_list => p_init_msg_list,
x_return_status => x_return_status,
x_msg_count => x_msg_count,
x_msg_data => x_msg_data,
p_pitv_rec => p_pitv_tbl(rec_num),
x_pitv_rec => x_pitv_tbl(rec_num) );
END update_prd_price_tmpls;
SELECT
ID,
OBJECT_VERSION_NUMBER,
PDT_ID,
TEMPLATE_NAME,
TEMPLATE_PATH,
VERSION,
START_DATE,
NVL(END_DATE,G_MISS_DATE) END_DATE,
NVL(DESCRIPTION,G_MISS_CHAR) DESCRIPTION,
CREATED_BY,
CREATION_DATE,
LAST_UPDATED_BY,
LAST_UPDATE_DATE,
NVL(LAST_UPDATE_LOGIN,G_MISS_NUM) LAST_UPDATE_LOGIN
FROM OKL_PRD_PRICE_TMPLS
WHERE OKL_PRD_PRICE_TMPLS.pdt_id = p_pdt_id;
l_pitv_rec.LAST_UPDATED_BY := l_okl_pit_pdt_csr.LAST_UPDATED_BY;
l_pitv_rec.LAST_UPDATE_DATE := l_okl_pit_pdt_csr.LAST_UPDATE_DATE;
l_pitv_rec.LAST_UPDATE_LOGIN := l_okl_pit_pdt_csr.LAST_UPDATE_LOGIN;