The following lines contain the word 'select', 'insert', 'update' or 'delete':
select
assignment_budget_value_id,
effective_start_date,
effective_end_date,
business_group_id,
assignment_id,
unit,
value,
rowid
from per_assignment_budget_values_f
where
assignment_id = p_assignment_id and
p_effective_date between effective_start_date and effective_end_date and
business_group_id = p_business_group_id and
unit = p_unit;
insert_budget_values
(p_assignment_id=>p_assignment_id,
p_effective_date=>p_effective_date,
p_unit=>p_unit,
p_business_group_id=>p_business_group_id,
p_value=>p_value,
p_rowid=>null,
p_assignment_budget_value_id=>null);
update_dml
(P_ASSIGNMENT_BUDGET_VALUE_ID=>l_rec.assignment_budget_value_id,
P_EFFECTIVE_END_DATE=>l_rec.effective_end_date,
P_BUSINESS_GROUP_ID=>p_business_group_id,
P_ASSIGNMENT_ID=>p_assignment_id,
P_VALUE=>p_value
);
ELSIF p_datetrack_mode='UPDATE' THEN
-- First end date the current Row
update_dml
(P_ASSIGNMENT_BUDGET_VALUE_ID=>l_rec.assignment_budget_value_id,
P_EFFECTIVE_END_DATE=>(p_effective_date-1),
P_BUSINESS_GROUP_ID=>p_business_group_id,
P_ASSIGNMENT_ID=>p_assignment_id,
P_VALUE=>l_rec.value
);
insert_budget_values
(p_assignment_id=>p_assignment_id,
p_effective_date=>p_effective_date,
p_unit=>p_unit,
p_business_group_id=>p_business_group_id,
p_value=>p_value,
p_rowid=>l_rec.rowid,
p_assignment_budget_value_id=>l_rec.assignment_budget_value_id);
procedure update_dml(P_ASSIGNMENT_BUDGET_VALUE_ID IN NUMBER,
P_EFFECTIVE_END_DATE IN DATE,
P_BUSINESS_GROUP_ID IN NUMBER,
P_ASSIGNMENT_ID IN NUMBER,
P_VALUE IN NUMBER
) is
BEGIN
update per_assignment_budget_values_f
set
effective_end_date = p_effective_end_date,
value = p_value
where assignment_budget_value_id = p_assignment_budget_value_id
and business_group_id = p_business_group_id
and assignment_id = p_assignment_id and
p_effective_end_date between effective_start_date and effective_end_date;
end update_dml;
PROCEDURE insert_budget_values
(p_assignment_id in number,
p_effective_date in date,
p_unit in varchar2,
p_business_group_id in number,
p_value in number,
p_rowid in varchar2,
p_assignment_budget_value_id in number) is
cursor c2 is
select effective_start_date, rowid from per_assignment_budget_values_f
where
assignment_id = p_assignment_id and
business_group_id = p_business_group_id
order by effective_start_date;
insert_dml
(P_ASSIGNMENT_BUDGET_VALUE_ID=>p_assignment_budget_value_id,
p_EFFECTIVE_START_DATE=>p_effective_date,
P_EFFECTIVE_END_DATE=>l_parent_effective_end_date,
P_BUSINESS_GROUP_ID=>p_business_group_id,
P_ASSIGNMENT_ID=>p_assignment_id,
P_UNIT=>p_unit,
P_VALUE=>p_value
);
insert_dml
(P_ASSIGNMENT_BUDGET_VALUE_ID=>l_assignment_budget_value_id,
p_EFFECTIVE_START_DATE=>p_effective_date,
P_EFFECTIVE_END_DATE=>l_parent_effective_end_date,
P_BUSINESS_GROUP_ID=>p_business_group_id,
P_ASSIGNMENT_ID=>p_assignment_id,
P_UNIT=>p_unit,
P_VALUE=>p_value
);
end insert_budget_values;
procedure insert_dml
(P_ASSIGNMENT_BUDGET_VALUE_ID IN NUMBER,
p_EFFECTIVE_START_DATE IN DATE,
P_EFFECTIVE_END_DATE IN DATE,
P_BUSINESS_GROUP_ID IN NUMBER,
P_ASSIGNMENT_ID IN NUMBER,
P_UNIT IN VARCHAR2,
P_VALUE IN NUMBER
) IS
BEGIN
insert into per_assignment_budget_values_f
(ASSIGNMENT_BUDGET_VALUE_ID,
EFFECTIVE_START_DATE,
EFFECTIVE_END_DATE,
BUSINESS_GROUP_ID,
ASSIGNMENT_ID,
UNIT,
VALUE
)
values
(P_ASSIGNMENT_BUDGET_VALUE_ID,
p_EFFECTIVE_START_DATE,
P_EFFECTIVE_END_DATE,
P_BUSINESS_GROUP_ID,
P_ASSIGNMENT_ID,
P_UNIT,
P_VALUE
);
end insert_dml;