The following lines contain the word 'select', 'insert', 'update' or 'delete':
SELECT *
FROM qp_price_formulas_vl
WHERE price_formula_id = DECODE (a_retrieve_all_flag,
'Y', price_formula_id, a_price_formula_id)
AND (start_date_active IS NULL OR start_date_active <= SYSDATE)
AND (end_date_active IS NULL OR end_date_active >= SYSDATE);
a_update_flagged_items VARCHAR2)
IS
SELECT *
FROM qp_list_lines
WHERE generate_using_formula_id = a_price_formula_id
AND NVL(reprice_flag, 'N') = DECODE (a_update_flagged_items,
'Y', 'Y', NVL(reprice_flag, 'N'))
FOR UPDATE;
SELECT *
FROM qp_pricing_attributes
WHERE list_line_id = a_list_line_id;
/* Select the Price Formulas which are to be used to update list prices. */
/* Select all or a specific formula depending on the option selected. */
--dbms_output.put_line('looping through the qp_price_formulas_cur');
IF p_update_flagged_items = 'Y' THEN
OPEN qp_list_lines_cursor FOR
SELECT *
FROM qp_list_lines
WHERE generate_using_formula_id = l_formulas_rec.price_formula_id
AND reprice_flag = 'Y'
FOR UPDATE;
SELECT *
FROM qp_list_lines
WHERE generate_using_formula_id = l_formulas_rec.price_formula_id
FOR UPDATE;
l_req_line_attrs_tbl.DELETE; /* Empty the plsql table for each list line */
INSERT INTO qp_preq_line_attrs_formula_tmp
(
line_index,
attribute_type,
context,
attribute,
value_from,
pricing_status_code
)
VALUES
(
0,
'PRODUCT',
l_attributes_rec.product_attribute_context,
l_attributes_rec.product_attribute,
Qp_Number.number_to_canonical(TO_NUMBER(l_attributes_rec.product_attr_value)),
Qp_Preq_Grp.G_STATUS_UNCHANGED
);
INSERT INTO qp_preq_line_attrs_formula_tmp
(
line_index,
attribute_type,
context,
attribute,
value_from,
pricing_status_code
)
VALUES
(
0,
'PRODUCT',
l_attributes_rec.product_attribute_context,
l_attributes_rec.product_attribute,
l_attributes_rec.product_attr_value,
Qp_Preq_Grp.G_STATUS_UNCHANGED
);
INSERT INTO qp_preq_line_attrs_formula_tmp
(
line_index,
attribute_type,
context,
attribute,
value_from,
pricing_status_code
)
VALUES
(
0,
'PRICING',
l_attributes_rec.pricing_attribute_context,
l_attributes_rec.pricing_attribute,
Qp_Number.number_to_canonical(TO_NUMBER(l_attributes_rec.pricing_attr_value_from)),
Qp_Preq_Grp.G_STATUS_UNCHANGED
);
INSERT INTO qp_preq_line_attrs_formula_tmp
(
line_index,
attribute_type,
context,
attribute,
value_from,
pricing_status_code
)
VALUES
(
0,
'PRICING',
l_attributes_rec.pricing_attribute_context,
l_attributes_rec.pricing_attribute,
l_attributes_rec.pricing_attr_value_from,
Qp_Preq_Grp.G_STATUS_UNCHANGED
);
DELETE FROM qp_preq_line_attrs_formula_tmp; -- no need since it is done at the beginning of processing each line
SELECT rounding_factor
INTO l_rounding_factor
FROM qp_list_headers_b
WHERE list_header_id = l_lines_rec.list_header_id;
UPDATE qp_list_lines
SET reprice_flag = NULL,
request_id = l_conc_request_id,
program_application_id = l_conc_program_application_id,
program_id = l_conc_program_id,
last_update_date = l_sysdate,
last_update_login = l_conc_login_id,
operand = l_list_price
WHERE list_line_id = l_lines_rec.list_line_id;
END Update_Formula_Price;