The following lines contain the word 'select', 'insert', 'update' or 'delete':
SELECT 0
FROM dual
WHERE NOT exists (SELECT 1 FROM cn_calc_sql_exps WHERE calc_sql_exp_id = p_calc_sql_exp_id)
UNION ALL
SELECT 1
FROM cn_calc_sql_exps
WHERE calc_sql_exp_id = p_calc_sql_exp_id
AND exp_type_code like '%DDT%'
UNION ALL
SELECT 2
FROM cn_calc_sql_exps
WHERE calc_sql_exp_id = p_calc_sql_exp_id
AND (exp_type_code IS NULL OR exp_type_code NOT LIKE '%DDT%');
SELECT 1
FROM cn_rate_dimensions
WHERE name = p_name
AND (p_rate_dimension_id IS NULL OR p_rate_dimension_id <> rate_dimension_id)
--R12 MOAC Changes--Start
AND org_id = p_org_id;
cn_rate_dimensions_pkg.insert_row
(x_rate_dimension_id => x_rate_dimension_id,
x_name => p_name,
x_description => p_description,
x_dim_unit_code => p_dim_unit_code,
x_number_tier => l_number_tier,
--R12 MOAC Changes--Start
x_org_id => p_org_id
--R12 MOAC Changes--End
);
select name into l_dimension_name
from cn_rate_dimensions
where rate_dimension_id = x_rate_dimension_id;
cn_rate_dim_tiers_pkg.insert_row
(x_rate_dim_tier_id => l_temp_id,
x_rate_dimension_id => x_rate_dimension_id,
x_minimum_amount => p_tiers_tbl(i).minimum_amount,
x_maximum_amount => p_tiers_tbl(i).maximum_amount,
x_min_exp_id => p_tiers_tbl(i).min_exp_id,
x_max_exp_id => p_tiers_tbl(i).max_exp_id,
x_string_value => p_tiers_tbl(i).string_value,
x_tier_sequence => p_tiers_tbl(i).tier_sequence,
--R12 MOAC Changes--Start
x_org_id => p_org_id
--R12 MOAC Changes--End
);
PROCEDURE Update_Dimension
(p_api_version IN NUMBER ,
p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
p_commit IN VARCHAR2 := FND_API.G_FALSE ,
p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
p_rate_dimension_id IN CN_RATE_DIMENSIONS.RATE_DIMENSION_ID%TYPE,
p_name IN CN_RATE_DIMENSIONS.NAME%TYPE,
p_description IN CN_RATE_DIMENSIONS.DESCRIPTION%TYPE := NULL,
p_dim_unit_code IN CN_RATE_DIMENSIONS.DIM_UNIT_CODE%TYPE,
p_number_tier IN CN_RATE_DIMENSIONS.NUMBER_TIER%TYPE, -- not used
p_tiers_tbl IN tiers_tbl_type := g_miss_tiers_tbl,
--R12 MOAC Changes--Start
p_org_id IN CN_RATE_DIMENSIONS.ORG_ID%TYPE, --new
p_object_version_number IN OUT NOCOPY CN_RATE_DIMENSIONS.OBJECT_VERSION_NUMBER%TYPE, --Changed
--R12 MOAC Changes--End
x_return_status OUT NOCOPY VARCHAR2 ,
x_msg_count OUT NOCOPY NUMBER ,
x_msg_data OUT NOCOPY VARCHAR2 )
IS
l_api_name CONSTANT VARCHAR2(30) := 'Update_Dimension';
l_delete_flag VARCHAR2(1);
SELECT dim_unit_code
FROM cn_rate_dimensions
WHERE rate_dimension_id = p_rate_dimension_id;
SELECT 1
FROM dual
WHERE exists (SELECT 1
FROM cn_rate_sch_dims rsd
WHERE rsd.rate_dimension_id = p_rate_dimension_id
AND exists (SELECT 1
FROM cn_rt_formula_asgns
WHERE rate_schedule_id = rsd.rate_schedule_id));
SELECT rate_dim_tier_id
FROM cn_rate_dim_tiers
WHERE rate_dimension_id = p_rate_dimension_id;
SAVEPOINT Update_Dimension;
fnd_message.set_name('CN', 'CN_X_UPDATE_DUC1');
fnd_message.set_name('CN', 'CN_X_UPDATE_DUC2');
l_delete_flag := 'Y';
l_delete_flag := 'N';
IF (l_delete_flag = 'Y') THEN
delete_tier(p_api_version => 1.0,
p_rate_dim_tier_id => db_tier.rate_dim_tier_id,
x_return_status => x_return_status,
x_msg_count => x_msg_count,
x_msg_data => x_msg_data);
cn_rate_dim_tiers_pkg.update_row
(x_rate_dim_tier_id => p_tiers_tbl(i).rate_dim_tier_id,
x_rate_dimension_id => p_rate_dimension_id,
x_minimum_amount => p_tiers_tbl(i).minimum_amount,
x_maximum_amount => p_tiers_tbl(i).maximum_amount,
x_min_exp_id => p_tiers_tbl(i).min_exp_id,
x_max_exp_id => p_tiers_tbl(i).max_exp_id,
x_string_value => p_tiers_tbl(i).string_value,
x_tier_sequence => p_tiers_tbl(i).tier_sequence,
x_object_version_number => p_tiers_tbl(i).object_version_number);
select name into l_dimension_name_old
from cn_rate_dimensions
where rate_dimension_id = p_rate_dimension_id;
select dim_unit_code into l_type_old
from cn_rate_dimensions
where rate_dimension_id = p_rate_dimension_id;
select count(*) into l_number_tier from cn_rate_dim_tiers
where rate_dimension_id = p_rate_dimension_id;
cn_rate_dimensions_pkg.update_row
(x_rate_dimension_id => p_rate_dimension_id,
x_name => p_name,
x_description => p_description,
x_dim_unit_code => p_dim_unit_code,
x_number_tier => l_number_tier,
x_object_version_number => p_object_version_number);
fnd_message.set_name('CN', 'CNR12_NOTE_RT_DIM_UPDATE');
fnd_message.set_name('CN', 'CNR12_NOTE_RT_DIM_TYPE_UPDATE');
ROLLBACK TO Update_Dimension;
ROLLBACK TO Update_Dimension;
ROLLBACK TO Update_Dimension;
END Update_Dimension;
PROCEDURE Delete_Dimension
(p_api_version IN NUMBER ,
p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
p_commit IN VARCHAR2 := FND_API.G_FALSE ,
p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
p_rate_dimension_id IN CN_RATE_DIMENSIONS.RATE_DIMENSION_ID%TYPE,
--R12 MOAC Changes--Start
p_object_version_number IN CN_RATE_DIMENSIONS.OBJECT_VERSION_NUMBER%TYPE, --new
--R12 MOAC Changes--End
x_return_status OUT NOCOPY VARCHAR2 ,
x_msg_count OUT NOCOPY NUMBER ,
x_msg_data OUT NOCOPY VARCHAR2 )
IS
l_api_name CONSTANT VARCHAR2(30) := 'Delete_Dimension';
SELECT 1
FROM dual
WHERE exists (SELECT 1
FROM cn_rate_sch_dims
WHERE rate_dimension_id = p_rate_dimension_id);
SAVEPOINT Delete_Dimension;
SELECT org_id INTO l_org_id
FROM cn_rate_dimensions
WHERE rate_dimension_id = p_rate_dimension_id;
SELECT name INTO l_dimension_name
FROM cn_rate_dimensions
WHERE rate_dimension_id = p_rate_dimension_id;
cn_rate_dimensions_pkg.delete_row(p_rate_dimension_id);
fnd_message.set_name('CN', 'CNR12_NOTE_RT_DIM_DELETE');
p_source_object_code => 'CN_DELETED_OBJECTS',
p_notes => l_note_msg,
p_notes_detail => l_note_msg,
p_note_type => 'CN_SYSGEN', -- for system generated
x_jtf_note_id => l_note_id -- returned
);
ROLLBACK TO Delete_Dimension;
ROLLBACK TO Delete_Dimension;
ROLLBACK TO Delete_Dimension;
END Delete_Dimension;
PROCEDURE delete_tier
(p_api_version IN NUMBER ,
p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
p_commit IN VARCHAR2 := FND_API.G_FALSE ,
p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
p_rate_dim_tier_id IN CN_RATE_DIM_TIERS.RATE_DIM_TIER_ID%TYPE,
x_return_status OUT NOCOPY VARCHAR2 ,
x_msg_count OUT NOCOPY NUMBER ,
x_msg_data OUT NOCOPY VARCHAR2 )
IS
l_api_name CONSTANT VARCHAR2(30) := 'Delete_Tier';
SELECT rate_schedule_id
FROM cn_rate_sch_dims
WHERE rate_dimension_id = l_rate_dimension_id;
SELECT 1
FROM dual
WHERE NOT exists (SELECT 1
FROM cn_rate_dim_tiers
WHERE rate_dimension_id = l_rate_dimension_id
AND rate_dim_tier_id <> p_rate_dim_tier_id);
Select minimum_amount, maximum_amount, min_exp_id, max_exp_id,
string_value, org_id
from cn_rate_dim_tiers
where rate_dim_tier_id = p_rate_dim_tier_id;
SAVEPOINT Delete_Tier;
SELECT rate_dimension_id, tier_sequence
INTO l_rate_dimension_id, l_tier_sequence
FROM cn_rate_dim_tiers
WHERE rate_dim_tier_id = p_rate_dim_tier_id;
fnd_message.set_name('CN', 'CN_RECORD_DELETED');
SELECT rate_dim_sequence
INTO l_rate_dim_sequence
FROM cn_rate_sch_dims
WHERE rate_schedule_id = rate_table.rate_schedule_id
AND rate_dimension_id = l_rate_dimension_id;
cn_multi_rate_schedules_pvt.delete_rate_tiers
(p_rate_schedule_id => rate_table.rate_schedule_id,
p_rate_dim_sequence => l_rate_dim_sequence,
p_tier_sequence => l_tier_sequence);
cn_rate_dim_tiers_pkg.delete_row(p_rate_dim_tier_id);
fnd_message.set_name('CN', 'CNR12_NOTE_RT_DIM_TI_DELETE');
select name into l_from from cn_calc_sql_exps
where calc_sql_exp_id = l_old_rec.min_exp_id;
select name into l_to from cn_calc_sql_exps
where calc_sql_exp_id = l_old_rec.max_exp_id;
fnd_message.set_name('CN', 'CNR12_NOTE_RT_DIM_TI_DELETE');
fnd_message.set_name('CN', 'CNR12_NOTE_RT_DIM_TI_ST_DELETE');
update cn_rate_dim_tiers set tier_sequence = tier_sequence - 1
where rate_dimension_id = l_rate_dimension_id
and tier_sequence >= l_tier_sequence;
UPDATE cn_rate_dimensions
SET number_tier = (select count(*) from cn_rate_dim_tiers
where rate_dimension_id = l_rate_dimension_id)
WHERE rate_dimension_id = l_rate_dimension_id;
ROLLBACK TO Delete_Tier;
ROLLBACK TO Delete_Tier;
ROLLBACK TO Delete_Tier;
END Delete_Tier;
PROCEDURE update_tier
(p_api_version IN NUMBER ,
p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
p_commit IN VARCHAR2 := FND_API.G_FALSE ,
p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
p_rate_dim_tier_id IN CN_RATE_DIM_TIERS.RATE_DIM_TIER_ID%TYPE,
p_rate_dimension_id IN CN_RATE_DIM_TIERS.RATE_DIMENSION_ID%TYPE,
p_dim_unit_code IN CN_RATE_DIM_TIERS.DIM_UNIT_CODE%TYPE,
p_minimum_amount IN CN_RATE_DIM_TIERS.MINIMUM_AMOUNT%TYPE := cn_api.g_miss_num,
p_maximum_amount IN CN_RATE_DIM_TIERS.MAXIMUM_AMOUNT%TYPE := cn_api.g_miss_num,
p_min_exp_id IN CN_RATE_DIM_TIERS.MIN_EXP_ID%TYPE := cn_api.g_miss_num,
p_max_exp_id IN CN_RATE_DIM_TIERS.MAX_EXP_ID%TYPE := cn_api.g_miss_num,
p_string_value IN CN_RATE_DIM_TIERS.STRING_VALUE%TYPE := cn_api.g_miss_char,
p_tier_sequence IN CN_RATE_DIM_TIERS.TIER_SEQUENCE%TYPE := cn_api.g_miss_num,
-- R12 MOAC Changes --Start
p_object_version_number IN OUT NOCOPY CN_RATE_DIM_TIERS.OBJECT_VERSION_NUMBER%TYPE, --changed
-- R12 MOAC Changes --End
x_return_status OUT NOCOPY VARCHAR2 ,
x_msg_count OUT NOCOPY NUMBER ,
x_msg_data OUT NOCOPY VARCHAR2 )
IS
l_api_name CONSTANT VARCHAR2(30) := 'Update_Tier';
Select minimum_amount, maximum_amount, min_exp_id, max_exp_id, string_value
from cn_rate_dim_tiers
where rate_dim_tier_id = p_rate_dim_tier_id;
SAVEPOINT Update_tier;
cn_rate_dim_tiers_pkg.update_row
(x_rate_dim_tier_id => p_rate_dim_tier_id,
x_rate_dimension_id => p_rate_dimension_id,
x_minimum_amount => p_minimum_amount,
x_maximum_amount => p_maximum_amount,
x_min_exp_id => p_min_exp_id,
x_max_exp_id => p_max_exp_id,
x_string_value => p_string_value,
x_tier_sequence => p_tier_sequence,
x_object_version_number => p_object_version_number);
fnd_message.set_name('CN', 'CNR12_NOTE_RT_DIM_TI_UPDATE');
select name into l_from_old from cn_calc_sql_exps
where calc_sql_exp_id = l_old_rec.min_exp_id;
select name into l_to_old from cn_calc_sql_exps
where calc_sql_exp_id = l_old_rec.max_exp_id;
select name into l_from_new from cn_calc_sql_exps
where calc_sql_exp_id = p_min_exp_id;
select name into l_to_new from cn_calc_sql_exps
where calc_sql_exp_id = p_max_exp_id;
fnd_message.set_name('CN', 'CNR12_NOTE_RT_DIM_TI_UPDATE');
fnd_message.set_name('CN', 'CNR12_NOTE_RT_DIM_TI_ST_UPDATE');
ROLLBACK TO Update_tier;
ROLLBACK TO Update_tier;
ROLLBACK TO Update_tier;
END Update_tier;
SELECT rate_schedule_id
FROM cn_rate_sch_dims
WHERE rate_dimension_id = p_rate_dimension_id;
SELECT rate_dim_sequence
INTO l_rate_dim_sequence
FROM cn_rate_sch_dims
WHERE rate_dimension_id = p_rate_dimension_id
AND rate_schedule_id = rate_table.rate_schedule_id;
update cn_rate_dim_tiers set tier_sequence = tier_sequence + 1
where rate_dimension_id = p_rate_dimension_id
and tier_sequence >= p_tier_sequence;
cn_rate_dim_tiers_pkg.insert_row
(x_rate_dim_tier_id => x_rate_dim_tier_id,
x_rate_dimension_id => p_rate_dimension_id,
x_minimum_amount => p_minimum_amount,
x_maximum_amount => p_maximum_amount,
x_min_exp_id => p_min_exp_id,
x_max_exp_id => p_max_exp_id,
x_string_value => p_string_value,
x_tier_sequence => p_tier_sequence,
-- R12 MOAC Changes --Start
x_org_id => p_org_id
-- R12 MOAC Changes --End
);
select name into l_from from cn_calc_sql_exps
where calc_sql_exp_id = p_min_exp_id;
select name into l_to from cn_calc_sql_exps
where calc_sql_exp_id = p_max_exp_id;
UPDATE cn_rate_dimensions
SET number_tier = (select count(*) from cn_rate_dim_tiers
where rate_dimension_id = p_rate_dimension_id)
WHERE rate_dimension_id = p_rate_dimension_id;